vcomply-workflow-engine 3.5.9 → 3.6.0
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/time.constants.mjs +2 -2
- package/esm2022/lib/log-an-issue/log-an-issue.component.mjs +28 -12
- package/esm2022/lib/sharedComponents/responsibility-centers-list/rc-list.module.mjs +7 -3
- package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +8 -4
- package/esm2022/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +10 -6
- package/esm2022/lib/workflow/shared/components/list-popup/list-popup.component.mjs +2 -2
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +45 -22
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +1 -1
- package/esm2022/lib/workflow-program/workflow-program.component.mjs +1 -1
- package/esm2022/lib/workflow-risk/workflow-risk.component.mjs +1 -1
- package/esm2022/lib/workflow-services/auth.service.mjs +33 -1
- package/esm2022/lib/workflow-services/responsibility.service.mjs +43 -3
- package/fesm2022/vcomply-workflow-engine.mjs +215 -95
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/sharedComponents/responsibility-centers-list/rc-list.module.d.ts +2 -1
- package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +2 -1
- package/lib/sharedComponents/users-radio-list/users-radio-list.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/lib/workflow-services/auth.service.d.ts +1 -0
- package/lib/workflow-services/responsibility.service.d.ts +10 -5
- package/package.json +1 -1
|
@@ -102,7 +102,7 @@ export class LogAnIssueComponent {
|
|
|
102
102
|
unSelectOnClick: true,
|
|
103
103
|
openOnClick: false,
|
|
104
104
|
openOnFocus: false,
|
|
105
|
-
min:
|
|
105
|
+
min: '',
|
|
106
106
|
};
|
|
107
107
|
this.listData = {
|
|
108
108
|
issueTypeList: [],
|
|
@@ -317,6 +317,15 @@ export class LogAnIssueComponent {
|
|
|
317
317
|
}
|
|
318
318
|
setUserDetails() {
|
|
319
319
|
this.currentUser = this.authService.getUserDetails().user;
|
|
320
|
+
let utcTime;
|
|
321
|
+
this.authService.getUserInfo().subscribe((res) => {
|
|
322
|
+
if (res) {
|
|
323
|
+
utcTime = res?.current_time_utc;
|
|
324
|
+
const updatedDate = this.authService.convertUtcToLocalDateTime(utcTime);
|
|
325
|
+
this.dateConfig = { ...this.dateConfig, min: updatedDate };
|
|
326
|
+
this.changeDetectorRef.detectChanges();
|
|
327
|
+
}
|
|
328
|
+
});
|
|
320
329
|
}
|
|
321
330
|
fetchIssueTypes() {
|
|
322
331
|
this.listLoadingStatus[0] = false;
|
|
@@ -367,7 +376,8 @@ export class LogAnIssueComponent {
|
|
|
367
376
|
}
|
|
368
377
|
setSelectedRC() {
|
|
369
378
|
if (this.reponsibilityData?.rcId &&
|
|
370
|
-
(this.openedFrom === 'COMPLIANCE_WORKROOM' ||
|
|
379
|
+
(this.openedFrom === 'COMPLIANCE_WORKROOM' ||
|
|
380
|
+
this.openedFrom === 'ASSESSMENT')) {
|
|
371
381
|
this.logIssueForm.issueRC = this.reponsibilityData?.rcId?.length
|
|
372
382
|
? this.listData?.rcList.filter((e) => this.reponsibilityData?.rcId.includes(e?.rc_id))
|
|
373
383
|
: [];
|
|
@@ -982,7 +992,8 @@ export class LogAnIssueComponent {
|
|
|
982
992
|
this.assessmentQuestion = {
|
|
983
993
|
questionName: issueData?.linked_assessment_question?.response?.title ?? '',
|
|
984
994
|
questionId: issueData?.linked_assessment_question?.response?.name ?? '',
|
|
985
|
-
questionNumber: issueData?.linked_assessment_question?.response?.question_number ??
|
|
995
|
+
questionNumber: issueData?.linked_assessment_question?.response?.question_number ??
|
|
996
|
+
'',
|
|
986
997
|
assessmentId: issueData?.linked_assessment_question?.assessment_id ?? '',
|
|
987
998
|
};
|
|
988
999
|
}
|
|
@@ -1133,18 +1144,23 @@ export class LogAnIssueComponent {
|
|
|
1133
1144
|
}
|
|
1134
1145
|
}
|
|
1135
1146
|
onTimeChanged(event) {
|
|
1136
|
-
if (!this.validateDate(event
|
|
1147
|
+
if (!this.validateDate(event?.selectedValue, this.logIssueForm?.issueDueDate)) {
|
|
1137
1148
|
return;
|
|
1138
1149
|
}
|
|
1139
|
-
this.logIssueForm.issueDueTime = event
|
|
1150
|
+
this.logIssueForm.issueDueTime = event?.selectedValue;
|
|
1140
1151
|
}
|
|
1141
1152
|
validateDate(time, dateString) {
|
|
1142
|
-
if (this.logIssueForm
|
|
1143
|
-
const isMoment = moment.isMoment(dateString.getTime
|
|
1144
|
-
const currentDate = new Date(isMoment ? dateString?.date?.$d : dateString
|
|
1153
|
+
if (this.logIssueForm?.issueDueDate) {
|
|
1154
|
+
const isMoment = moment.isMoment(dateString.getTime);
|
|
1155
|
+
const currentDate = new Date(isMoment ? dateString?.date?.$d : dateString);
|
|
1145
1156
|
const issueDueDate = currentDate.toDateString().split(' ');
|
|
1146
1157
|
const selectedDate = moment(`${issueDueDate[1]}-${issueDueDate[2]}-${issueDueDate[3]} ${time}`, 'MMM-DD-YYYY HH:mm a').unix();
|
|
1147
|
-
|
|
1158
|
+
const userTimeZone = this.authService?.userDetails?.timezone;
|
|
1159
|
+
const currentDateInTimeZone = new Date().toLocaleString('en-US', {
|
|
1160
|
+
timeZone: userTimeZone,
|
|
1161
|
+
});
|
|
1162
|
+
const currentDateTimeInTimeZone = new Date(currentDateInTimeZone).getTime();
|
|
1163
|
+
if (selectedDate * 1000 < currentDateTimeInTimeZone) {
|
|
1148
1164
|
this.isFutureDate = false;
|
|
1149
1165
|
return false;
|
|
1150
1166
|
}
|
|
@@ -1166,11 +1182,11 @@ export class LogAnIssueComponent {
|
|
|
1166
1182
|
this.commonService.handleDocumentClick(datePickerObject);
|
|
1167
1183
|
}
|
|
1168
1184
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LogAnIssueComponent, deps: [{ token: i1.LogIssueService }, { token: i2.AuthService }, { token: i3.UiKitService }, { token: i4.SnackBarService }, { token: i5.CommonService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1169
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LogAnIssueComponent, selector: "app-log-an-issue", inputs: { openedFrom: "openedFrom", source: "source", issueId: "issueId", reponsibilityData: "reponsibilityData", assessmentQuestion: "assessmentQuestion", issueDetails: "issueDetails", mode: "mode", config: "config", responsibilitiesData: "responsibilitiesData" }, outputs: { pickerChanged: "pickerChanged", populateOption: "populateOption", closeWorkflow: "closeWorkflow", modeChange: "modeChange", disconnectRefresh: "disconnectRefresh" }, host: { listeners: { "document:click": "documentClick($event)" } }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }, { propertyName: "datePickerPopUp", first: true, predicate: ["datePicker"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<!-- <p>log-an-issue works!</p> -->\r\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n isLinkResponsibility) &&\r\n !isLinkQuestionVisible\r\n \"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"link_responsibilities\"\r\n *ngIf=\"\r\n (logIssueForm?.responsibilityLinked?.length === 0 &&\r\n !reponsibilityData?.responsibilityName) ||\r\n activeField === 'LINK_MORE_RESPONSIBILITY'\r\n \"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n isLinkResponsibility) &&\r\n !isLinkQuestionVisible\r\n \"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >{{ linkText }}\r\n <button\r\n class=\"button\"\r\n *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n >\r\n Link More Responsibilities\r\n </button>\r\n </label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Select responsibilities that are linked to this issue\"\r\n readonly\r\n *ngIf=\"\r\n !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n !logIssueForm?.responsibilityLinked?.length\r\n \"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n ['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n ['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n reponsibilityData?.responsibilityName\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n [appTooltip]=\"reponsibilityData?.responsibilityName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ reponsibilityData?.responsibilityName }}</span\r\n >\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n *ngIf=\"!['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\r\n (click)=\"\r\n deleteItem(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n logIssueForm?.responsibilityLinked[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span\r\n *ngIf=\"\r\n !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.responsibilityLinked[0]?.ReportName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.responsibilityLinked[0]?.ReportName }}</span\r\n >\r\n <button\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n logIssueForm?.responsibilityLinked?.length) ||\r\n logIssueForm?.responsibilityLinked?.length > 1\r\n \"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"linkResp.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{\r\n ![\"COMPLIANCE_WORKROOM\"].includes(openedFrom)\r\n ? logIssueForm?.responsibilityLinked?.length - 1\r\n : logIssueForm?.responsibilityLinked?.length\r\n }}\r\n </button>\r\n </div>\r\n <button\r\n *ngIf=\"\r\n activeField !== 'LINK_MORE_RESPONSIBILITY' &&\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <app-popover #linkResp [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let resp of logIssueForm?.responsibilityLinked\r\n | slice\r\n : (!['COMPLIANCE_WORKROOM'].includes(openedFrom) ? 1 : 0)\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n class=\"icons\"\r\n (click)=\"deleteItem('LINK_MORE_RESPONSIBILITY', resp)\"\r\n ></i\r\n >\r\n {{ resp?.ReportName }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-controls.svg\"\r\n alt=\"link_responsibility\"\r\n *ngIf=\"\r\n (logIssueForm?.responsibilityLinked?.length === 0 &&\r\n !reponsibilityData?.responsibilityName) ||\r\n activeField === 'LINK_RESPONSIBILITY'\r\n \"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">{{ linkText }}</label>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n (['ASSESSMENT'].includes(openedFrom) &&\r\n reponsibilityData?.responsibilityName) ||\r\n isLinkQuestionVisible\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n [appTooltip]=\"reponsibilityData?.responsibilityName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ reponsibilityData?.responsibilityName }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"link_assessment_question\"\r\n *ngIf=\"\r\n !assessmentQuestion?.questionName ||\r\n activeField === 'LINK_ASSESSMENT_QUESTION'\r\n \"\r\n />\r\n <svg\r\n *ngIf=\"isLinkQuestionVisible || ['ASSESSMENT'].includes(openedFrom)\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Linked Assessment Question </label>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n (['ASSESSMENT'].includes(openedFrom) &&\r\n assessmentQuestion?.questionName) ||\r\n isLinkQuestionVisible\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n appTooltip=\"{{\r\n assessmentQuestion?.questionNumber +\r\n ': ' +\r\n assessmentQuestion?.questionName\r\n }}\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{\r\n assessmentQuestion?.questionNumber +\r\n \": \" +\r\n assessmentQuestion?.questionName\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"\r\n ['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\r\n openedFrom\r\n ) || isRiskControlVisible\r\n \"\r\n [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_CONTROL_RISK' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n logIssueForm?.linkedControlRisk?.length === 0 ||\r\n activeField === 'ISSUE_CONTROL_RISK'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm?.linkedControlRisk?.length > 0 &&\r\n activeField !== 'ISSUE_CONTROL_RISK'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Select a control or risk</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.linkedControlRisk ||\r\n logIssueForm?.linkedControlRisk?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"\r\n setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\r\n \"\r\n type=\"text\"\r\n placeholder=\"Select a control or risk.\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"\r\n deleteItem(\r\n 'ISSUE_CONTROL_RISK',\r\n logIssueForm?.linkedControlRisk[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.linkedControlRisk[0]?.itemControlName }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\"></i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div> -->\r\n <button\r\n class=\"edit\"\r\n *ngIf=\"activeField !== 'ISSUE_CONTROL_RISK'\"\r\n type=\"button\"\r\n (click)=\"\r\n setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"vx-form-group\"\r\n *ngFor=\"let tag of logIssueForm.issueCustomTag | keyvalue\"\r\n >\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{\r\n tag?.value?.custom_tag_name\r\n }}</label>\r\n <input\r\n type=\"text\"\r\n [placeholder]=\"tag?.value?.custom_tag_name\"\r\n [(ngModel)]=\"tag.value.custom_tag_value\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Title -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_TITLE' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\"\r\n alt=\"name\"\r\n *ngIf=\"\r\n !logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Issue Title <span class=\"required\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Add a name for this issue\"\r\n [(ngModel)]=\"logIssueForm.issueName\"\r\n (focusin)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\r\n (keyup)=\"\r\n logIssueForm.issueName?.trim()?.length > 0\r\n ? removeError('issueName')\r\n : null\r\n \"\r\n (focusout)=\"setActiveFieldSelector('', '')\"\r\n *ngIf=\"\r\n logIssueForm.issueName == '' || activeSelector === 'ISSUE_TITLE'\r\n \"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\r\n \"\r\n >\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{ logIssueForm.issueName }}</span>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n (click)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\r\n type=\"button\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">\r\n Enter a name for this issue.\r\n </p>\r\n <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[0]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file, 'ISSUE_DESCRIPTION')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n file: false,\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description'\r\n }\"\r\n [(ngModel)]=\"logIssueForm.issueDescription\"\r\n (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION', $event)\"\r\n (clickOutside)=\"checkDescription()\"\r\n ></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- issue type start-->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_TITLE' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left checked\">\r\n <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"> Issue Type </label>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n name=\"issue-type\"\r\n [checked]=\"logIssueForm?.issueType === 'issue'\"\r\n (checkedEvent)=\"setIssueType('issue')\"\r\n >Issue\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n name=\"issue-type\"\r\n [checked]=\"logIssueForm?.issueType === 'incident'\"\r\n (checkedEvent)=\"setIssueType('incident')\"\r\n >Incident\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Category -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_CATEGORY' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n logIssueForm?.issueCategory?.length === 0 ||\r\n activeField === 'ISSUE_CATEGORY'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm?.issueCategory?.length > 0 &&\r\n activeField !== 'ISSUE_CATEGORY'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Category</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.issueCategory ||\r\n logIssueForm?.issueCategory?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\r\n type=\"text\"\r\n placeholder=\"Select a category for this issue\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"\r\n deleteItem('ISSUE_CATEGORY', logIssueForm?.issueCategory[0])\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueCategory[0]?.category_name }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\"></i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div> -->\r\n <button\r\n class=\"edit\"\r\n *ngIf=\"activeField !== 'ISSUE_CATEGORY'\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueCategory')\"\r\n >\r\n Select an issue category.\r\n </p>\r\n </div>\r\n <div\r\n class=\"vx-form-group\"\r\n *ngFor=\"let tag of logIssueForm.issueCustomTag\"\r\n >\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{ tag?.name }}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\r\n [class.active]=\"false\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_RC' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\r\n class=\"left\"\r\n [class.checked]=\"logIssueForm?.issueRC?.length > 0\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\"\r\n alt=\"\"\r\n *ngIf=\"logIssueForm?.issueRC?.length === 0\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\" class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Responsibility Center\r\n <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\r\n </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\r\n type=\"text\"\r\n placeholder=\"Select Responsibility Center(s)\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n *ngIf=\"isRCEditable\"\r\n (click)=\"deleteItem('ISSUE_RC', logIssueForm?.issueRC[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueRC[0]?.item_name }}</span\r\n >\r\n <button\r\n *ngIf=\"logIssueForm?.issueRC?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"RC.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ logIssueForm?.issueRC?.slice(1)?.length }}\r\n </button>\r\n </div>\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_RC' && isRCEditable\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">\r\n Select the Responsibility Center associated with this issue.\r\n </p>\r\n </div>\r\n <app-popover #RC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let rc of logIssueForm?.issueRC | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n *ngIf=\"isRCEditable\"\r\n class=\"icons\"\r\n (click)=\"deleteItem('ISSUE_RC', rc)\"\r\n ></i\r\n >\r\n {{ rc?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_WHO' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\"\r\n alt=\"im\"\r\n *ngIf=\"\r\n (logIssueForm?.entrustTo?.length === 0 &&\r\n !logIssueForm?.isAssignToMyself) ||\r\n activeField === 'ISSUE_WHO'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n (logIssueForm?.entrustTo?.length > 0 ||\r\n logIssueForm?.isAssignToMyself) &&\r\n activeField !== 'ISSUE_WHO'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Who? <span class=\"required\">*</span></label\r\n >\r\n <div\r\n class=\"select\"\r\n [class.disabled]=\"logIssueForm?.isAssignToMyself\"\r\n *ngIf=\"\r\n !logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\r\n [disabled]=\"logIssueForm?.isAssignToMyself\"\r\n type=\"text\"\r\n placeholder=\"Who is responsible for completing the responsibility?\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_WHO', logIssueForm?.entrustTo[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.entrustTo[0]?.employee_name }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\"></i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_WHO'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">\r\n Select the person responsible for resolving this issue.\r\n </p>\r\n <div\r\n class=\"switch-row align-right\"\r\n [class.disabled]=\"activeField === 'ISSUE_WHO'\"\r\n >\r\n <app-cs-switch\r\n [disabled]=\"activeField === 'ISSUE_WHO'\"\r\n [(ngValue)]=\"logIssueForm.isAssignToMyself\"\r\n (ngValueChange)=\"assignMyself($event)\"\r\n >OR ASSIGN TO MYSELF</app-cs-switch\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Maximun Time to Resolve -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_DATE_TIME' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME'\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Maximum Time to Resolve <span class=\"required\">*</span></label\r\n >\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"Set a deadline.\"\r\n [value]=\"logIssueForm.issueDueDate | date : 'dd MMM yyyy'\"\r\n (click)=\"openDatePicker()\"\r\n id=\"max-time\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"\r\n datePickerOverlay = false;\r\n closeDatePicker($event);\r\n removeError('issueDueDate')\r\n \"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"logIssueForm.issueDueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n\r\n <div\r\n class=\"picker-group\"\r\n appPopover\r\n (click)=\"timePicker.popover()\"\r\n placement=\"right\"\r\n >\r\n <input\r\n (mouseover)=\"setCurrentTime()\"\r\n [(ngModel)]=\"logIssueForm.issueDueTime\"\r\n [value]=\"logIssueForm.issueDueTime\"\r\n readonly\r\n class=\"time\"\r\n placeholder=\"Select Time\"\r\n type=\"text\"\r\n [min]=\"currentTime\"\r\n />\r\n <i class=\"icons\"></i>\r\n </div>\r\n <app-popover #timePicker [dontCloseonClick]=\"true\">\r\n <app-time-picker\r\n [time]=\"logIssueForm.issueDueTime\"\r\n (onTimeSelection)=\"\r\n onTimeChanged($event); timePicker.closePopover('top')\r\n \"\r\n ></app-time-picker>\r\n </app-popover>\r\n </div>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueDueDate')\"\r\n >\r\n Select the date by which this issue needs to be resolved.\r\n </p>\r\n\r\n <p class=\"error-message\" *ngIf=\"!isFutureDate\">\r\n {{ getDateValidationMessage }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recommended Actions -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recommended-action.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length > 0\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Recommended Actions <span class=\"required\">*</span></label\r\n >\r\n <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[1]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i\r\n class=\"icons\"\r\n (click)=\"deleteFile(file, 'RECOMMENDED_ACTIONS')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [(ngModel)]=\"logIssueForm.issueRecommendation\"\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file: true,\r\n placeholder: 'Recommended actions'\r\n }\"\r\n (ngModelChange)=\"\r\n logIssueForm?.issueRecommendation?.trim()?.length > 0\r\n ? removeError('issueRecommendation')\r\n : null\r\n \"\r\n (clickOutside)=\"checkDescription()\"\r\n (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS', $event)\"\r\n ></vcomply-editor>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueRecommendation')\"\r\n >\r\n Specify the recommended actions to resolve this issue.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\" -->\r\n <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\r\n\r\n <!-- Risk Classification -->\r\n <div class=\"form-group-row\" id=\"risk_classification\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueRiskRating\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueRiskRating\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label\r\n class=\"low\"\r\n *ngFor=\"let class of riskClassification\"\r\n [ngClass]=\"[class.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification\"\r\n [value]=\"class.value\"\r\n [checked]=\"logIssueForm?.issueRiskRating === class.value\"\r\n [(ngModel)]=\"logIssueForm.issueRiskRating\"\r\n />\r\n <span>{{ class.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Exception Type -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg\"\r\n alt=\"im\"\r\n *ngIf=\"logIssueForm?.exceptionType === null\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.exceptionType > -1\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Exception Type</label>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n [value]=\"1\"\r\n name=\"exception-type\"\r\n [checked]=\"logIssueForm?.exceptionType === 1\"\r\n (checkedEvent)=\"setException(1)\"\r\n >Design Exception\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n [value]=\"2\"\r\n name=\"exception-type\"\r\n [checked]=\"logIssueForm?.exceptionType === 2\"\r\n (checkedEvent)=\"setException(2)\"\r\n >Effectiveness Exception\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Priority -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.PRIORITY\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issuePriority\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issuePriority > 0\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Priority</label>\r\n <div class=\"classification\">\r\n <label\r\n *ngFor=\"let priority of riskPrority\"\r\n [ngClass]=\"[priority.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification-priority\"\r\n [value]=\"priority.value\"\r\n [checked]=\"logIssueForm?.issuePriority === priority.value\"\r\n [(ngModel)]=\"logIssueForm.issuePriority\"\r\n />\r\n <span>{{ priority.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Associated Risks -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Associated Risks </label>\r\n <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[2]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file, 'ASSOCIATED_RISKS')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [(ngModel)]=\"logIssueForm.issueAssociatedRisk\"\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file: false,\r\n placeholder: 'Associated Risks'\r\n }\"\r\n (clickOutside)=\"checkDescription()\"\r\n (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS', $event)\"\r\n ></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n [class.active]=\"false\"\r\n *ngIf=\"additionalOptionStatus.OVERSIGHT\"\r\n [class.disabled]=\"\r\n activeField &&\r\n !['ISSUE_CC', 'ISSUE_FCC'].includes(activeField) &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"\r\n logIssueForm?.issueCCUsers?.length > 0 ||\r\n logIssueForm?.failureCCUsers?.length > 0\r\n \"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n (logIssueForm?.issueCCUsers?.length === 0 &&\r\n logIssueForm?.failureCCUsers?.length === 0) ||\r\n activeField === 'ISSUE_CC' ||\r\n activeField === 'ISSUE_FCC'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n *ngIf=\"\r\n logIssueForm?.issueCCUsers?.length > 0 ||\r\n (logIssueForm?.failureCCUsers?.length > 0 &&\r\n activeField !== 'ISSUE_CC') ||\r\n activeField !== 'ISSUE_FCC'\r\n \"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Oversight</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.issueCCUsers ||\r\n logIssueForm?.issueCCUsers?.length === 0\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\r\n placeholder=\"Who should have oversight of this issue?\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_CC', logIssueForm?.issueCCUsers[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueCCUsers[0]?.employee_name }}</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"CC.popover()\"\r\n placement=\"right\"\r\n *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\"\r\n >\r\n +{{ logIssueForm?.issueCCUsers?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\"></i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_CC'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.failureCCUsers ||\r\n logIssueForm?.failureCCUsers?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\r\n type=\"text\"\r\n placeholder=\"Who should be notified if the issue is not resolved?\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_FCC', logIssueForm?.failureCCUsers[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.failureCCUsers[0]?.employee_name }}</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"FCC.popover()\"\r\n placement=\"right\"\r\n *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\"\r\n >\r\n +{{ logIssueForm?.failureCCUsers?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\"></i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_FCC'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <app-popover #CC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let cc of logIssueForm?.issueCCUsers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC', cc)\"\r\n ></i\r\n >\r\n {{ cc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #FCC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let fcc of logIssueForm?.failureCCUsers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC', fcc)\"\r\n ></i\r\n >\r\n {{ fcc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Evidence -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.EVIDENCE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"true\">\r\n <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Evidence</label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\"\r\n >Do you want evidence of completion of the issue to be\r\n uploaded?</span\r\n >\r\n <div class=\"radio-group\">\r\n <app-cs-radio\r\n [name]=\"'file-evidence'\"\r\n [value]=\"1\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 1\"\r\n (checkedEvent)=\"setEvidence(1)\"\r\n >Yes\r\n </app-cs-radio>\r\n <app-cs-radio\r\n [name]=\"'file-evidence'\"\r\n [value]=\"0\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 0\"\r\n (checkedEvent)=\"setEvidence(0)\"\r\n >No\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_CATGORY\"\r\n [itemsList]=\"listData?.categoryList\"\r\n [selectedItems]=\"logIssueForm.issueCategory\"\r\n [identifierKey]=\"'category_id'\"\r\n [displayKey]=\"'category_name'\"\r\n *ngIf=\"activeSelector === 'ISSUE_CATEGORY'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CATEGORY')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\"\r\n>\r\n</app-radio-list>\r\n\r\n<app-responsibility-centers-list\r\n *ngIf=\"activeSelector === 'ISSUE_RC'\"\r\n [responsibilityCentersList]=\"listData?.rcList\"\r\n [radioSelection]=\"false\"\r\n [selectedResponsibilityCenters]=\"logIssueForm?.issueRC\"\r\n [rcIdKey]=\"'item_id'\"\r\n (saveSelectedList)=\"selectorAction($event, 'ISSUE_RC')\"\r\n (closeRcList)=\"fieldDeselector('ISSUE_RC')\"\r\n>\r\n</app-responsibility-centers-list>\r\n\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_WHO\"\r\n [itemsList]=\"listData?.userList\"\r\n [twoColumn]=\"true\"\r\n [selectedItems]=\"logIssueForm.entrustTo\"\r\n [identifierKey]=\"'employee_id'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_WHO'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_WHO')\"\r\n (closeList)=\"fieldDeselector('ISSUE_WHO')\"\r\n></app-radio-list>\r\n\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_TYPE\"\r\n [itemsList]=\"listData?.issueTypeList\"\r\n [selectedItems]=\"logIssueForm.issueType\"\r\n [identifierKey]=\"'issue_id'\"\r\n [displayKey]=\"'issue_type_name'\"\r\n *ngIf=\"activeSelector === 'ISSUE_TYPE'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_TYPE')\"\r\n (closeList)=\"fieldDeselector('ISSUE_TYPE')\"\r\n></app-radio-list>\r\n\r\n<app-checkbox-list\r\n [config]=\"selectorConfig?.ISSUE_CC\"\r\n [twoColumn]=\"true\"\r\n [itemsList]=\"\r\n listData.userList\r\n | userFilter\r\n : 'employee_email'\r\n : logIssueForm.entrustTo\r\n : { employee_email: currentUser?.email }\r\n \"\r\n [selectedItems]=\"logIssueForm.issueCCUsers\"\r\n [identifierKey]=\"'employee_email'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_CC'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\"\r\n></app-checkbox-list>\r\n\r\n<app-checkbox-list\r\n [config]=\"selectorConfig?.ISSUE_FCC\"\r\n [twoColumn]=\"true\"\r\n [itemsList]=\"\r\n listData.userList\r\n | userFilter\r\n : 'employee_email'\r\n : logIssueForm.entrustTo\r\n : { employee_email: currentUser?.email }\r\n \"\r\n [selectedItems]=\"logIssueForm.failureCCUsers\"\r\n [identifierKey]=\"'employee_email'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_FCC'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_FCC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_FCC')\"\r\n></app-checkbox-list>\r\n\r\n<app-responsibility-risk-selector\r\n [loading]=\"isRiskControlLoading\"\r\n *ngIf=\"activeSelector === 'ISSUE_CONTROL_RISK'\"\r\n (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\"\r\n (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CONTROL_RISK')\"\r\n [activeEntity]=\"logIssueForm?.linkageType\"\r\n [listItems]=\"listData?.linkageList\"\r\n [selectedItems]=\"logIssueForm?.linkedControlRisk\"\r\n></app-responsibility-risk-selector>\r\n\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"message\"\r\n [actionButtons]=\"displayActionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n>\r\n</app-smiley-dialog-inline>\r\n\r\n<app-link-responsibility-list\r\n *ngIf=\"activeSelector === 'LINK_MORE_RESPONSIBILITY'\"\r\n [selectedResponsibilityValues]=\"logIssueForm?.responsibilityLinked\"\r\n (closeButton)=\"fieldDeselector('LINK_MORE_RESPONSIBILITY')\"\r\n [respIdKey]=\"'ReportId'\"\r\n [radioSelection]=\"false\"\r\n (selectedResponsibility)=\"selectorAction($event, 'LINK_MORE_RESPONSIBILITY')\"\r\n></app-link-responsibility-list>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .log-an-issue{position:relative}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.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-bottom.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/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\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"], dependencies: [{ kind: "directive", type: i6.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: i6.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i7.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "component", type: i10.CsSwitchComponent, selector: "app-cs-switch", inputs: ["disabled", "ngValue", "value", "tooltipMessage", "position"], outputs: ["ngValueChange"] }, { kind: "directive", type: i11.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i12.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i13.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i14.LineLoaderComponent, selector: "app-line-loader", inputs: ["loaderHeight"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i15.DatePickerComponent, selector: "dp-date-picker", inputs: ["config", "mode", "placeholder", "disabled", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "component", type: i16.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i17.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "directive", type: i18.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: i19.ResponsibilityCentersListComponent, selector: "app-responsibility-centers-list", inputs: ["responsibilityCentersList", "selectedResponsibilityCenters", "rcIdKey", "radioSelection", "pluralText", "singularText"], outputs: ["saveSelectedList", "closeRcList"] }, { kind: "component", type: i20.TimePickerComponent, selector: "app-time-picker", inputs: ["time"], outputs: ["onTimeSelection"] }, { kind: "component", type: i21.CheckboxListComponent, selector: "app-checkbox-list", inputs: ["itemsList", "selectedItems", "identifierKey", "displayKey", "tooltipKey", "config", "twoColumn"], outputs: ["closeList", "saveList"] }, { kind: "component", type: i22.RadioListComponent, selector: "app-radio-list", inputs: ["itemsList", "selectedItems", "identifierKey", "displayKey", "tooltipKey", "config", "twoColumn"], outputs: ["closeList", "saveList"] }, { kind: "directive", type: i23.ScrollInViewDirective, selector: "[appScrollInView]", inputs: ["appScrollInView"] }, { kind: "component", type: i24.ResponsibilityRiskSelectorComponent, selector: "app-responsibility-risk-selector", inputs: ["activeEntity", "listItems", "selectedItems", "loading"], outputs: ["fetchList", "closeList", "saveList"] }, { kind: "component", type: i25.LinkResponsibilityListComponent, selector: "app-link-responsibility-list", inputs: ["onCompletionOfResponsibility", "feature", "respIdKey", "selectedResponsibilityValues", "radioSelection"], outputs: ["closeButton", "selectedResponsibility"] }, { kind: "pipe", type: i8.SlicePipe, name: "slice" }, { kind: "pipe", type: i8.DatePipe, name: "date" }, { kind: "pipe", type: i8.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i26.SpaceBreakerPipe, name: "spaceBreaker" }, { kind: "pipe", type: i27.UserFilterPipe, name: "userFilter" }] }); }
|
|
1185
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LogAnIssueComponent, selector: "app-log-an-issue", inputs: { openedFrom: "openedFrom", source: "source", issueId: "issueId", reponsibilityData: "reponsibilityData", assessmentQuestion: "assessmentQuestion", issueDetails: "issueDetails", mode: "mode", config: "config", responsibilitiesData: "responsibilitiesData" }, outputs: { pickerChanged: "pickerChanged", populateOption: "populateOption", closeWorkflow: "closeWorkflow", modeChange: "modeChange", disconnectRefresh: "disconnectRefresh" }, host: { listeners: { "document:click": "documentClick($event)" } }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }, { propertyName: "datePickerPopUp", first: true, predicate: ["datePicker"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<!-- <p>log-an-issue works!</p> -->\r\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n isLinkResponsibility) &&\r\n !isLinkQuestionVisible\r\n \"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"link_responsibilities\"\r\n *ngIf=\"\r\n (logIssueForm?.responsibilityLinked?.length === 0 &&\r\n !reponsibilityData?.responsibilityName) ||\r\n activeField === 'LINK_MORE_RESPONSIBILITY'\r\n \"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n isLinkResponsibility) &&\r\n !isLinkQuestionVisible\r\n \"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >{{ linkText }}\r\n <button\r\n class=\"button\"\r\n *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n >\r\n Link More Responsibilities\r\n </button>\r\n </label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Select responsibilities that are linked to this issue\"\r\n readonly\r\n *ngIf=\"\r\n !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n !logIssueForm?.responsibilityLinked?.length\r\n \"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n ['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n ['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n reponsibilityData?.responsibilityName\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n [appTooltip]=\"reponsibilityData?.responsibilityName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ reponsibilityData?.responsibilityName }}</span\r\n >\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n *ngIf=\"!['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\r\n (click)=\"\r\n deleteItem(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n logIssueForm?.responsibilityLinked[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span\r\n *ngIf=\"\r\n !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.responsibilityLinked[0]?.ReportName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.responsibilityLinked[0]?.ReportName }}</span\r\n >\r\n <button\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n logIssueForm?.responsibilityLinked?.length) ||\r\n logIssueForm?.responsibilityLinked?.length > 1\r\n \"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"linkResp.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{\r\n ![\"COMPLIANCE_WORKROOM\"].includes(openedFrom)\r\n ? logIssueForm?.responsibilityLinked?.length - 1\r\n : logIssueForm?.responsibilityLinked?.length\r\n }}\r\n </button>\r\n </div>\r\n <button\r\n *ngIf=\"\r\n activeField !== 'LINK_MORE_RESPONSIBILITY' &&\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <app-popover #linkResp [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let resp of logIssueForm?.responsibilityLinked\r\n | slice\r\n : (!['COMPLIANCE_WORKROOM'].includes(openedFrom) ? 1 : 0)\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n class=\"icons\"\r\n (click)=\"deleteItem('LINK_MORE_RESPONSIBILITY', resp)\"\r\n ></i\r\n >\r\n {{ resp?.ReportName }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-controls.svg\"\r\n alt=\"link_responsibility\"\r\n *ngIf=\"\r\n (logIssueForm?.responsibilityLinked?.length === 0 &&\r\n !reponsibilityData?.responsibilityName) ||\r\n activeField === 'LINK_RESPONSIBILITY'\r\n \"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">{{ linkText }}</label>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n (['ASSESSMENT'].includes(openedFrom) &&\r\n reponsibilityData?.responsibilityName) ||\r\n isLinkQuestionVisible\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n [appTooltip]=\"reponsibilityData?.responsibilityName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ reponsibilityData?.responsibilityName }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"link_assessment_question\"\r\n *ngIf=\"\r\n !assessmentQuestion?.questionName ||\r\n activeField === 'LINK_ASSESSMENT_QUESTION'\r\n \"\r\n />\r\n <svg\r\n *ngIf=\"isLinkQuestionVisible || ['ASSESSMENT'].includes(openedFrom)\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Linked Assessment Question </label>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n (['ASSESSMENT'].includes(openedFrom) &&\r\n assessmentQuestion?.questionName) ||\r\n isLinkQuestionVisible\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n appTooltip=\"{{\r\n assessmentQuestion?.questionNumber +\r\n ': ' +\r\n assessmentQuestion?.questionName\r\n }}\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{\r\n assessmentQuestion?.questionNumber +\r\n \": \" +\r\n assessmentQuestion?.questionName\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"\r\n ['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\r\n openedFrom\r\n ) || isRiskControlVisible\r\n \"\r\n [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_CONTROL_RISK' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n logIssueForm?.linkedControlRisk?.length === 0 ||\r\n activeField === 'ISSUE_CONTROL_RISK'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm?.linkedControlRisk?.length > 0 &&\r\n activeField !== 'ISSUE_CONTROL_RISK'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Select a control or risk</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.linkedControlRisk ||\r\n logIssueForm?.linkedControlRisk?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"\r\n setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\r\n \"\r\n type=\"text\"\r\n placeholder=\"Select a control or risk.\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"\r\n deleteItem(\r\n 'ISSUE_CONTROL_RISK',\r\n logIssueForm?.linkedControlRisk[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.linkedControlRisk[0]?.itemControlName }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\"></i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div> -->\r\n <button\r\n class=\"edit\"\r\n *ngIf=\"activeField !== 'ISSUE_CONTROL_RISK'\"\r\n type=\"button\"\r\n (click)=\"\r\n setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"vx-form-group\"\r\n *ngFor=\"let tag of logIssueForm.issueCustomTag | keyvalue\"\r\n >\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{\r\n tag?.value?.custom_tag_name\r\n }}</label>\r\n <input\r\n type=\"text\"\r\n [placeholder]=\"tag?.value?.custom_tag_name\"\r\n [(ngModel)]=\"tag.value.custom_tag_value\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Title -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_TITLE' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\"\r\n alt=\"name\"\r\n *ngIf=\"\r\n !logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Issue Title <span class=\"required\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Add a name for this issue\"\r\n [(ngModel)]=\"logIssueForm.issueName\"\r\n (focusin)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\r\n (keyup)=\"\r\n logIssueForm.issueName?.trim()?.length > 0\r\n ? removeError('issueName')\r\n : null\r\n \"\r\n (focusout)=\"setActiveFieldSelector('', '')\"\r\n *ngIf=\"\r\n logIssueForm.issueName == '' || activeSelector === 'ISSUE_TITLE'\r\n \"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\r\n \"\r\n >\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{ logIssueForm.issueName }}</span>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n (click)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\r\n type=\"button\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">\r\n Enter a name for this issue.\r\n </p>\r\n <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[0]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file, 'ISSUE_DESCRIPTION')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n file: false,\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description'\r\n }\"\r\n [(ngModel)]=\"logIssueForm.issueDescription\"\r\n (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION', $event)\"\r\n (clickOutside)=\"checkDescription()\"\r\n ></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- issue type start-->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_TITLE' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left checked\">\r\n <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"> Issue Type </label>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n name=\"issue-type\"\r\n [checked]=\"logIssueForm?.issueType === 'issue'\"\r\n (checkedEvent)=\"setIssueType('issue')\"\r\n >Issue\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n name=\"issue-type\"\r\n [checked]=\"logIssueForm?.issueType === 'incident'\"\r\n (checkedEvent)=\"setIssueType('incident')\"\r\n >Incident\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Category -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_CATEGORY' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n logIssueForm?.issueCategory?.length === 0 ||\r\n activeField === 'ISSUE_CATEGORY'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm?.issueCategory?.length > 0 &&\r\n activeField !== 'ISSUE_CATEGORY'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Category</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.issueCategory ||\r\n logIssueForm?.issueCategory?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\r\n type=\"text\"\r\n placeholder=\"Select a category for this issue\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"\r\n deleteItem('ISSUE_CATEGORY', logIssueForm?.issueCategory[0])\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueCategory[0]?.category_name }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\"></i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div> -->\r\n <button\r\n class=\"edit\"\r\n *ngIf=\"activeField !== 'ISSUE_CATEGORY'\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueCategory')\"\r\n >\r\n Select an issue category.\r\n </p>\r\n </div>\r\n <div\r\n class=\"vx-form-group\"\r\n *ngFor=\"let tag of logIssueForm.issueCustomTag\"\r\n >\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{ tag?.name }}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\r\n [class.active]=\"false\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_RC' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\r\n class=\"left\"\r\n [class.checked]=\"logIssueForm?.issueRC?.length > 0\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\"\r\n alt=\"\"\r\n *ngIf=\"logIssueForm?.issueRC?.length === 0\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\" class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Responsibility Center\r\n <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\r\n </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\r\n type=\"text\"\r\n placeholder=\"Select Responsibility Center(s)\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n *ngIf=\"isRCEditable\"\r\n (click)=\"deleteItem('ISSUE_RC', logIssueForm?.issueRC[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueRC[0]?.item_name }}</span\r\n >\r\n <button\r\n *ngIf=\"logIssueForm?.issueRC?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"RC.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ logIssueForm?.issueRC?.slice(1)?.length }}\r\n </button>\r\n </div>\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_RC' && isRCEditable\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">\r\n Select the Responsibility Center associated with this issue.\r\n </p>\r\n </div>\r\n <app-popover #RC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let rc of logIssueForm?.issueRC | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n *ngIf=\"isRCEditable\"\r\n class=\"icons\"\r\n (click)=\"deleteItem('ISSUE_RC', rc)\"\r\n ></i\r\n >\r\n {{ rc?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_WHO' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\"\r\n alt=\"im\"\r\n *ngIf=\"\r\n (logIssueForm?.entrustTo?.length === 0 &&\r\n !logIssueForm?.isAssignToMyself) ||\r\n activeField === 'ISSUE_WHO'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n (logIssueForm?.entrustTo?.length > 0 ||\r\n logIssueForm?.isAssignToMyself) &&\r\n activeField !== 'ISSUE_WHO'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Who? <span class=\"required\">*</span></label\r\n >\r\n <div\r\n class=\"select\"\r\n [class.disabled]=\"logIssueForm?.isAssignToMyself\"\r\n *ngIf=\"\r\n !logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\r\n [disabled]=\"logIssueForm?.isAssignToMyself\"\r\n type=\"text\"\r\n placeholder=\"Who is responsible for completing the responsibility?\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_WHO', logIssueForm?.entrustTo[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.entrustTo[0]?.employee_name }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\"></i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_WHO'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">\r\n Select the person responsible for resolving this issue.\r\n </p>\r\n <div\r\n class=\"switch-row align-right\"\r\n [class.disabled]=\"activeField === 'ISSUE_WHO'\"\r\n >\r\n <app-cs-switch\r\n [disabled]=\"activeField === 'ISSUE_WHO'\"\r\n [(ngValue)]=\"logIssueForm.isAssignToMyself\"\r\n (ngValueChange)=\"assignMyself($event)\"\r\n >OR ASSIGN TO MYSELF</app-cs-switch\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Maximun Time to Resolve -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_DATE_TIME' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME'\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Maximum Time to Resolve <span class=\"required\">*</span></label\r\n >\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"Set a deadline.\"\r\n [value]=\"logIssueForm.issueDueDate | date : 'dd MMM yyyy'\"\r\n (click)=\"openDatePicker()\"\r\n id=\"max-time\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"\r\n datePickerOverlay = false;\r\n closeDatePicker($event);\r\n removeError('issueDueDate')\r\n \"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"logIssueForm.issueDueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n\r\n <div\r\n class=\"picker-group\"\r\n appPopover\r\n (click)=\"timePicker.popover()\"\r\n placement=\"right\"\r\n >\r\n <input\r\n (mouseover)=\"setCurrentTime()\"\r\n [(ngModel)]=\"logIssueForm.issueDueTime\"\r\n [value]=\"logIssueForm?.issueDueTime\"\r\n readonly\r\n class=\"time\"\r\n placeholder=\"Select Time\"\r\n type=\"text\"\r\n [min]=\"currentTime\"\r\n />\r\n <i class=\"icons\"></i>\r\n </div>\r\n <app-popover #timePicker [dontCloseonClick]=\"true\">\r\n <app-time-picker\r\n [time]=\"logIssueForm?.issueDueTime\"\r\n (onTimeSelection)=\"\r\n onTimeChanged($event); timePicker.closePopover('top')\r\n \"\r\n ></app-time-picker>\r\n </app-popover>\r\n </div>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueDueDate')\"\r\n >\r\n Select the date by which this issue needs to be resolved.\r\n </p>\r\n\r\n <p class=\"error-message\" *ngIf=\"!isFutureDate\">\r\n {{ getDateValidationMessage }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recommended Actions -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recommended-action.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length > 0\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Recommended Actions <span class=\"required\">*</span></label\r\n >\r\n <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[1]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i\r\n class=\"icons\"\r\n (click)=\"deleteFile(file, 'RECOMMENDED_ACTIONS')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [(ngModel)]=\"logIssueForm.issueRecommendation\"\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file: true,\r\n placeholder: 'Recommended actions'\r\n }\"\r\n (ngModelChange)=\"\r\n logIssueForm?.issueRecommendation?.trim()?.length > 0\r\n ? removeError('issueRecommendation')\r\n : null\r\n \"\r\n (clickOutside)=\"checkDescription()\"\r\n (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS', $event)\"\r\n ></vcomply-editor>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueRecommendation')\"\r\n >\r\n Specify the recommended actions to resolve this issue.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\" -->\r\n <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\r\n\r\n <!-- Risk Classification -->\r\n <div class=\"form-group-row\" id=\"risk_classification\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueRiskRating\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueRiskRating\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label\r\n class=\"low\"\r\n *ngFor=\"let class of riskClassification\"\r\n [ngClass]=\"[class.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification\"\r\n [value]=\"class.value\"\r\n [checked]=\"logIssueForm?.issueRiskRating === class.value\"\r\n [(ngModel)]=\"logIssueForm.issueRiskRating\"\r\n />\r\n <span>{{ class.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Exception Type -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg\"\r\n alt=\"im\"\r\n *ngIf=\"logIssueForm?.exceptionType === null\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.exceptionType > -1\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Exception Type</label>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n [value]=\"1\"\r\n name=\"exception-type\"\r\n [checked]=\"logIssueForm?.exceptionType === 1\"\r\n (checkedEvent)=\"setException(1)\"\r\n >Design Exception\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n [value]=\"2\"\r\n name=\"exception-type\"\r\n [checked]=\"logIssueForm?.exceptionType === 2\"\r\n (checkedEvent)=\"setException(2)\"\r\n >Effectiveness Exception\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Priority -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.PRIORITY\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issuePriority\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issuePriority > 0\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Priority</label>\r\n <div class=\"classification\">\r\n <label\r\n *ngFor=\"let priority of riskPrority\"\r\n [ngClass]=\"[priority.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification-priority\"\r\n [value]=\"priority.value\"\r\n [checked]=\"logIssueForm?.issuePriority === priority.value\"\r\n [(ngModel)]=\"logIssueForm.issuePriority\"\r\n />\r\n <span>{{ priority.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Associated Risks -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Associated Risks </label>\r\n <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[2]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file, 'ASSOCIATED_RISKS')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [(ngModel)]=\"logIssueForm.issueAssociatedRisk\"\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file: false,\r\n placeholder: 'Associated Risks'\r\n }\"\r\n (clickOutside)=\"checkDescription()\"\r\n (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS', $event)\"\r\n ></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n [class.active]=\"false\"\r\n *ngIf=\"additionalOptionStatus.OVERSIGHT\"\r\n [class.disabled]=\"\r\n activeField &&\r\n !['ISSUE_CC', 'ISSUE_FCC'].includes(activeField) &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"\r\n logIssueForm?.issueCCUsers?.length > 0 ||\r\n logIssueForm?.failureCCUsers?.length > 0\r\n \"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n (logIssueForm?.issueCCUsers?.length === 0 &&\r\n logIssueForm?.failureCCUsers?.length === 0) ||\r\n activeField === 'ISSUE_CC' ||\r\n activeField === 'ISSUE_FCC'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n *ngIf=\"\r\n logIssueForm?.issueCCUsers?.length > 0 ||\r\n (logIssueForm?.failureCCUsers?.length > 0 &&\r\n activeField !== 'ISSUE_CC') ||\r\n activeField !== 'ISSUE_FCC'\r\n \"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Oversight</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.issueCCUsers ||\r\n logIssueForm?.issueCCUsers?.length === 0\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\r\n placeholder=\"Who should have oversight of this issue?\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_CC', logIssueForm?.issueCCUsers[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueCCUsers[0]?.employee_name }}</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"CC.popover()\"\r\n placement=\"right\"\r\n *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\"\r\n >\r\n +{{ logIssueForm?.issueCCUsers?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\"></i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_CC'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.failureCCUsers ||\r\n logIssueForm?.failureCCUsers?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\r\n type=\"text\"\r\n placeholder=\"Who should be notified if the issue is not resolved?\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_FCC', logIssueForm?.failureCCUsers[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.failureCCUsers[0]?.employee_name }}</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"FCC.popover()\"\r\n placement=\"right\"\r\n *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\"\r\n >\r\n +{{ logIssueForm?.failureCCUsers?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\"></i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_FCC'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <app-popover #CC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let cc of logIssueForm?.issueCCUsers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC', cc)\"\r\n ></i\r\n >\r\n {{ cc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #FCC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let fcc of logIssueForm?.failureCCUsers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC', fcc)\"\r\n ></i\r\n >\r\n {{ fcc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Evidence -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.EVIDENCE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"true\">\r\n <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Evidence</label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\"\r\n >Do you want evidence of completion of the issue to be\r\n uploaded?</span\r\n >\r\n <div class=\"radio-group\">\r\n <app-cs-radio\r\n [name]=\"'file-evidence'\"\r\n [value]=\"1\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 1\"\r\n (checkedEvent)=\"setEvidence(1)\"\r\n >Yes\r\n </app-cs-radio>\r\n <app-cs-radio\r\n [name]=\"'file-evidence'\"\r\n [value]=\"0\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 0\"\r\n (checkedEvent)=\"setEvidence(0)\"\r\n >No\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_CATGORY\"\r\n [itemsList]=\"listData?.categoryList\"\r\n [selectedItems]=\"logIssueForm.issueCategory\"\r\n [identifierKey]=\"'category_id'\"\r\n [displayKey]=\"'category_name'\"\r\n *ngIf=\"activeSelector === 'ISSUE_CATEGORY'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CATEGORY')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\"\r\n>\r\n</app-radio-list>\r\n\r\n<app-responsibility-centers-list\r\n *ngIf=\"activeSelector === 'ISSUE_RC'\"\r\n [responsibilityCentersList]=\"listData?.rcList\"\r\n [radioSelection]=\"false\"\r\n [selectedResponsibilityCenters]=\"logIssueForm?.issueRC\"\r\n [rcIdKey]=\"'item_id'\"\r\n (saveSelectedList)=\"selectorAction($event, 'ISSUE_RC')\"\r\n (closeRcList)=\"fieldDeselector('ISSUE_RC')\"\r\n>\r\n</app-responsibility-centers-list>\r\n\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_WHO\"\r\n [itemsList]=\"listData?.userList\"\r\n [twoColumn]=\"true\"\r\n [selectedItems]=\"logIssueForm.entrustTo\"\r\n [identifierKey]=\"'employee_id'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_WHO'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_WHO')\"\r\n (closeList)=\"fieldDeselector('ISSUE_WHO')\"\r\n></app-radio-list>\r\n\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_TYPE\"\r\n [itemsList]=\"listData?.issueTypeList\"\r\n [selectedItems]=\"logIssueForm.issueType\"\r\n [identifierKey]=\"'issue_id'\"\r\n [displayKey]=\"'issue_type_name'\"\r\n *ngIf=\"activeSelector === 'ISSUE_TYPE'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_TYPE')\"\r\n (closeList)=\"fieldDeselector('ISSUE_TYPE')\"\r\n></app-radio-list>\r\n\r\n<app-checkbox-list\r\n [config]=\"selectorConfig?.ISSUE_CC\"\r\n [twoColumn]=\"true\"\r\n [itemsList]=\"\r\n listData.userList\r\n | userFilter\r\n : 'employee_email'\r\n : logIssueForm.entrustTo\r\n : { employee_email: currentUser?.email }\r\n \"\r\n [selectedItems]=\"logIssueForm.issueCCUsers\"\r\n [identifierKey]=\"'employee_email'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_CC'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\"\r\n></app-checkbox-list>\r\n\r\n<app-checkbox-list\r\n [config]=\"selectorConfig?.ISSUE_FCC\"\r\n [twoColumn]=\"true\"\r\n [itemsList]=\"\r\n listData.userList\r\n | userFilter\r\n : 'employee_email'\r\n : logIssueForm.entrustTo\r\n : { employee_email: currentUser?.email }\r\n \"\r\n [selectedItems]=\"logIssueForm.failureCCUsers\"\r\n [identifierKey]=\"'employee_email'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_FCC'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_FCC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_FCC')\"\r\n></app-checkbox-list>\r\n\r\n<app-responsibility-risk-selector\r\n [loading]=\"isRiskControlLoading\"\r\n *ngIf=\"activeSelector === 'ISSUE_CONTROL_RISK'\"\r\n (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\"\r\n (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CONTROL_RISK')\"\r\n [activeEntity]=\"logIssueForm?.linkageType\"\r\n [listItems]=\"listData?.linkageList\"\r\n [selectedItems]=\"logIssueForm?.linkedControlRisk\"\r\n></app-responsibility-risk-selector>\r\n\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"message\"\r\n [actionButtons]=\"displayActionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n>\r\n</app-smiley-dialog-inline>\r\n\r\n<app-link-responsibility-list\r\n *ngIf=\"activeSelector === 'LINK_MORE_RESPONSIBILITY'\"\r\n [selectedResponsibilityValues]=\"logIssueForm?.responsibilityLinked\"\r\n (closeButton)=\"fieldDeselector('LINK_MORE_RESPONSIBILITY')\"\r\n [respIdKey]=\"'ReportId'\"\r\n [radioSelection]=\"false\"\r\n (selectedResponsibility)=\"selectorAction($event, 'LINK_MORE_RESPONSIBILITY')\"\r\n></app-link-responsibility-list>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .log-an-issue{position:relative}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.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-bottom.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/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\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"], dependencies: [{ kind: "directive", type: i6.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: i6.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i7.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "component", type: i10.CsSwitchComponent, selector: "app-cs-switch", inputs: ["disabled", "ngValue", "value", "tooltipMessage", "position"], outputs: ["ngValueChange"] }, { kind: "directive", type: i11.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i12.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i13.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i14.LineLoaderComponent, selector: "app-line-loader", inputs: ["loaderHeight"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i15.DatePickerComponent, selector: "dp-date-picker", inputs: ["config", "mode", "placeholder", "disabled", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "component", type: i16.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i17.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "directive", type: i18.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: i19.ResponsibilityCentersListComponent, selector: "app-responsibility-centers-list", inputs: ["responsibilityCentersList", "selectedResponsibilityCenters", "rcIdKey", "radioSelection", "pluralText", "singularText", "loader"], outputs: ["saveSelectedList", "closeRcList"] }, { kind: "component", type: i20.TimePickerComponent, selector: "app-time-picker", inputs: ["time"], outputs: ["onTimeSelection"] }, { kind: "component", type: i21.CheckboxListComponent, selector: "app-checkbox-list", inputs: ["itemsList", "selectedItems", "identifierKey", "displayKey", "tooltipKey", "config", "twoColumn"], outputs: ["closeList", "saveList"] }, { kind: "component", type: i22.RadioListComponent, selector: "app-radio-list", inputs: ["itemsList", "selectedItems", "identifierKey", "displayKey", "tooltipKey", "config", "twoColumn"], outputs: ["closeList", "saveList"] }, { kind: "directive", type: i23.ScrollInViewDirective, selector: "[appScrollInView]", inputs: ["appScrollInView"] }, { kind: "component", type: i24.ResponsibilityRiskSelectorComponent, selector: "app-responsibility-risk-selector", inputs: ["activeEntity", "listItems", "selectedItems", "loading"], outputs: ["fetchList", "closeList", "saveList"] }, { kind: "component", type: i25.LinkResponsibilityListComponent, selector: "app-link-responsibility-list", inputs: ["onCompletionOfResponsibility", "feature", "respIdKey", "selectedResponsibilityValues", "radioSelection"], outputs: ["closeButton", "selectedResponsibility"] }, { kind: "pipe", type: i8.SlicePipe, name: "slice" }, { kind: "pipe", type: i8.DatePipe, name: "date" }, { kind: "pipe", type: i8.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i26.SpaceBreakerPipe, name: "spaceBreaker" }, { kind: "pipe", type: i27.UserFilterPipe, name: "userFilter" }] }); }
|
|
1170
1186
|
}
|
|
1171
1187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LogAnIssueComponent, decorators: [{
|
|
1172
1188
|
type: Component,
|
|
1173
|
-
args: [{ selector: 'app-log-an-issue', template: "<!-- <p>log-an-issue works!</p> -->\r\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n isLinkResponsibility) &&\r\n !isLinkQuestionVisible\r\n \"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"link_responsibilities\"\r\n *ngIf=\"\r\n (logIssueForm?.responsibilityLinked?.length === 0 &&\r\n !reponsibilityData?.responsibilityName) ||\r\n activeField === 'LINK_MORE_RESPONSIBILITY'\r\n \"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n isLinkResponsibility) &&\r\n !isLinkQuestionVisible\r\n \"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >{{ linkText }}\r\n <button\r\n class=\"button\"\r\n *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n >\r\n Link More Responsibilities\r\n </button>\r\n </label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Select responsibilities that are linked to this issue\"\r\n readonly\r\n *ngIf=\"\r\n !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n !logIssueForm?.responsibilityLinked?.length\r\n \"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n ['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n ['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n reponsibilityData?.responsibilityName\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n [appTooltip]=\"reponsibilityData?.responsibilityName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ reponsibilityData?.responsibilityName }}</span\r\n >\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n *ngIf=\"!['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\r\n (click)=\"\r\n deleteItem(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n logIssueForm?.responsibilityLinked[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span\r\n *ngIf=\"\r\n !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.responsibilityLinked[0]?.ReportName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.responsibilityLinked[0]?.ReportName }}</span\r\n >\r\n <button\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n logIssueForm?.responsibilityLinked?.length) ||\r\n logIssueForm?.responsibilityLinked?.length > 1\r\n \"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"linkResp.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{\r\n ![\"COMPLIANCE_WORKROOM\"].includes(openedFrom)\r\n ? logIssueForm?.responsibilityLinked?.length - 1\r\n : logIssueForm?.responsibilityLinked?.length\r\n }}\r\n </button>\r\n </div>\r\n <button\r\n *ngIf=\"\r\n activeField !== 'LINK_MORE_RESPONSIBILITY' &&\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <app-popover #linkResp [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let resp of logIssueForm?.responsibilityLinked\r\n | slice\r\n : (!['COMPLIANCE_WORKROOM'].includes(openedFrom) ? 1 : 0)\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n class=\"icons\"\r\n (click)=\"deleteItem('LINK_MORE_RESPONSIBILITY', resp)\"\r\n ></i\r\n >\r\n {{ resp?.ReportName }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-controls.svg\"\r\n alt=\"link_responsibility\"\r\n *ngIf=\"\r\n (logIssueForm?.responsibilityLinked?.length === 0 &&\r\n !reponsibilityData?.responsibilityName) ||\r\n activeField === 'LINK_RESPONSIBILITY'\r\n \"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">{{ linkText }}</label>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n (['ASSESSMENT'].includes(openedFrom) &&\r\n reponsibilityData?.responsibilityName) ||\r\n isLinkQuestionVisible\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n [appTooltip]=\"reponsibilityData?.responsibilityName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ reponsibilityData?.responsibilityName }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"link_assessment_question\"\r\n *ngIf=\"\r\n !assessmentQuestion?.questionName ||\r\n activeField === 'LINK_ASSESSMENT_QUESTION'\r\n \"\r\n />\r\n <svg\r\n *ngIf=\"isLinkQuestionVisible || ['ASSESSMENT'].includes(openedFrom)\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Linked Assessment Question </label>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n (['ASSESSMENT'].includes(openedFrom) &&\r\n assessmentQuestion?.questionName) ||\r\n isLinkQuestionVisible\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n appTooltip=\"{{\r\n assessmentQuestion?.questionNumber +\r\n ': ' +\r\n assessmentQuestion?.questionName\r\n }}\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{\r\n assessmentQuestion?.questionNumber +\r\n \": \" +\r\n assessmentQuestion?.questionName\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"\r\n ['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\r\n openedFrom\r\n ) || isRiskControlVisible\r\n \"\r\n [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_CONTROL_RISK' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n logIssueForm?.linkedControlRisk?.length === 0 ||\r\n activeField === 'ISSUE_CONTROL_RISK'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm?.linkedControlRisk?.length > 0 &&\r\n activeField !== 'ISSUE_CONTROL_RISK'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Select a control or risk</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.linkedControlRisk ||\r\n logIssueForm?.linkedControlRisk?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"\r\n setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\r\n \"\r\n type=\"text\"\r\n placeholder=\"Select a control or risk.\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"\r\n deleteItem(\r\n 'ISSUE_CONTROL_RISK',\r\n logIssueForm?.linkedControlRisk[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.linkedControlRisk[0]?.itemControlName }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\"></i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div> -->\r\n <button\r\n class=\"edit\"\r\n *ngIf=\"activeField !== 'ISSUE_CONTROL_RISK'\"\r\n type=\"button\"\r\n (click)=\"\r\n setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"vx-form-group\"\r\n *ngFor=\"let tag of logIssueForm.issueCustomTag | keyvalue\"\r\n >\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{\r\n tag?.value?.custom_tag_name\r\n }}</label>\r\n <input\r\n type=\"text\"\r\n [placeholder]=\"tag?.value?.custom_tag_name\"\r\n [(ngModel)]=\"tag.value.custom_tag_value\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Title -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_TITLE' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\"\r\n alt=\"name\"\r\n *ngIf=\"\r\n !logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Issue Title <span class=\"required\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Add a name for this issue\"\r\n [(ngModel)]=\"logIssueForm.issueName\"\r\n (focusin)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\r\n (keyup)=\"\r\n logIssueForm.issueName?.trim()?.length > 0\r\n ? removeError('issueName')\r\n : null\r\n \"\r\n (focusout)=\"setActiveFieldSelector('', '')\"\r\n *ngIf=\"\r\n logIssueForm.issueName == '' || activeSelector === 'ISSUE_TITLE'\r\n \"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\r\n \"\r\n >\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{ logIssueForm.issueName }}</span>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n (click)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\r\n type=\"button\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">\r\n Enter a name for this issue.\r\n </p>\r\n <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[0]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file, 'ISSUE_DESCRIPTION')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n file: false,\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description'\r\n }\"\r\n [(ngModel)]=\"logIssueForm.issueDescription\"\r\n (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION', $event)\"\r\n (clickOutside)=\"checkDescription()\"\r\n ></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- issue type start-->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_TITLE' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left checked\">\r\n <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"> Issue Type </label>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n name=\"issue-type\"\r\n [checked]=\"logIssueForm?.issueType === 'issue'\"\r\n (checkedEvent)=\"setIssueType('issue')\"\r\n >Issue\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n name=\"issue-type\"\r\n [checked]=\"logIssueForm?.issueType === 'incident'\"\r\n (checkedEvent)=\"setIssueType('incident')\"\r\n >Incident\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Category -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_CATEGORY' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n logIssueForm?.issueCategory?.length === 0 ||\r\n activeField === 'ISSUE_CATEGORY'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm?.issueCategory?.length > 0 &&\r\n activeField !== 'ISSUE_CATEGORY'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Category</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.issueCategory ||\r\n logIssueForm?.issueCategory?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\r\n type=\"text\"\r\n placeholder=\"Select a category for this issue\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"\r\n deleteItem('ISSUE_CATEGORY', logIssueForm?.issueCategory[0])\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueCategory[0]?.category_name }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\"></i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div> -->\r\n <button\r\n class=\"edit\"\r\n *ngIf=\"activeField !== 'ISSUE_CATEGORY'\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueCategory')\"\r\n >\r\n Select an issue category.\r\n </p>\r\n </div>\r\n <div\r\n class=\"vx-form-group\"\r\n *ngFor=\"let tag of logIssueForm.issueCustomTag\"\r\n >\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{ tag?.name }}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\r\n [class.active]=\"false\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_RC' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\r\n class=\"left\"\r\n [class.checked]=\"logIssueForm?.issueRC?.length > 0\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\"\r\n alt=\"\"\r\n *ngIf=\"logIssueForm?.issueRC?.length === 0\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\" class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Responsibility Center\r\n <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\r\n </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\r\n type=\"text\"\r\n placeholder=\"Select Responsibility Center(s)\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n *ngIf=\"isRCEditable\"\r\n (click)=\"deleteItem('ISSUE_RC', logIssueForm?.issueRC[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueRC[0]?.item_name }}</span\r\n >\r\n <button\r\n *ngIf=\"logIssueForm?.issueRC?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"RC.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ logIssueForm?.issueRC?.slice(1)?.length }}\r\n </button>\r\n </div>\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_RC' && isRCEditable\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">\r\n Select the Responsibility Center associated with this issue.\r\n </p>\r\n </div>\r\n <app-popover #RC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let rc of logIssueForm?.issueRC | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n *ngIf=\"isRCEditable\"\r\n class=\"icons\"\r\n (click)=\"deleteItem('ISSUE_RC', rc)\"\r\n ></i\r\n >\r\n {{ rc?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_WHO' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\"\r\n alt=\"im\"\r\n *ngIf=\"\r\n (logIssueForm?.entrustTo?.length === 0 &&\r\n !logIssueForm?.isAssignToMyself) ||\r\n activeField === 'ISSUE_WHO'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n (logIssueForm?.entrustTo?.length > 0 ||\r\n logIssueForm?.isAssignToMyself) &&\r\n activeField !== 'ISSUE_WHO'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Who? <span class=\"required\">*</span></label\r\n >\r\n <div\r\n class=\"select\"\r\n [class.disabled]=\"logIssueForm?.isAssignToMyself\"\r\n *ngIf=\"\r\n !logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\r\n [disabled]=\"logIssueForm?.isAssignToMyself\"\r\n type=\"text\"\r\n placeholder=\"Who is responsible for completing the responsibility?\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_WHO', logIssueForm?.entrustTo[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.entrustTo[0]?.employee_name }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\"></i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_WHO'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">\r\n Select the person responsible for resolving this issue.\r\n </p>\r\n <div\r\n class=\"switch-row align-right\"\r\n [class.disabled]=\"activeField === 'ISSUE_WHO'\"\r\n >\r\n <app-cs-switch\r\n [disabled]=\"activeField === 'ISSUE_WHO'\"\r\n [(ngValue)]=\"logIssueForm.isAssignToMyself\"\r\n (ngValueChange)=\"assignMyself($event)\"\r\n >OR ASSIGN TO MYSELF</app-cs-switch\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Maximun Time to Resolve -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_DATE_TIME' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME'\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Maximum Time to Resolve <span class=\"required\">*</span></label\r\n >\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"Set a deadline.\"\r\n [value]=\"logIssueForm.issueDueDate | date : 'dd MMM yyyy'\"\r\n (click)=\"openDatePicker()\"\r\n id=\"max-time\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"\r\n datePickerOverlay = false;\r\n closeDatePicker($event);\r\n removeError('issueDueDate')\r\n \"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"logIssueForm.issueDueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n\r\n <div\r\n class=\"picker-group\"\r\n appPopover\r\n (click)=\"timePicker.popover()\"\r\n placement=\"right\"\r\n >\r\n <input\r\n (mouseover)=\"setCurrentTime()\"\r\n [(ngModel)]=\"logIssueForm.issueDueTime\"\r\n [value]=\"logIssueForm.issueDueTime\"\r\n readonly\r\n class=\"time\"\r\n placeholder=\"Select Time\"\r\n type=\"text\"\r\n [min]=\"currentTime\"\r\n />\r\n <i class=\"icons\"></i>\r\n </div>\r\n <app-popover #timePicker [dontCloseonClick]=\"true\">\r\n <app-time-picker\r\n [time]=\"logIssueForm.issueDueTime\"\r\n (onTimeSelection)=\"\r\n onTimeChanged($event); timePicker.closePopover('top')\r\n \"\r\n ></app-time-picker>\r\n </app-popover>\r\n </div>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueDueDate')\"\r\n >\r\n Select the date by which this issue needs to be resolved.\r\n </p>\r\n\r\n <p class=\"error-message\" *ngIf=\"!isFutureDate\">\r\n {{ getDateValidationMessage }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recommended Actions -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recommended-action.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length > 0\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Recommended Actions <span class=\"required\">*</span></label\r\n >\r\n <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[1]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i\r\n class=\"icons\"\r\n (click)=\"deleteFile(file, 'RECOMMENDED_ACTIONS')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [(ngModel)]=\"logIssueForm.issueRecommendation\"\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file: true,\r\n placeholder: 'Recommended actions'\r\n }\"\r\n (ngModelChange)=\"\r\n logIssueForm?.issueRecommendation?.trim()?.length > 0\r\n ? removeError('issueRecommendation')\r\n : null\r\n \"\r\n (clickOutside)=\"checkDescription()\"\r\n (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS', $event)\"\r\n ></vcomply-editor>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueRecommendation')\"\r\n >\r\n Specify the recommended actions to resolve this issue.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\" -->\r\n <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\r\n\r\n <!-- Risk Classification -->\r\n <div class=\"form-group-row\" id=\"risk_classification\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueRiskRating\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueRiskRating\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label\r\n class=\"low\"\r\n *ngFor=\"let class of riskClassification\"\r\n [ngClass]=\"[class.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification\"\r\n [value]=\"class.value\"\r\n [checked]=\"logIssueForm?.issueRiskRating === class.value\"\r\n [(ngModel)]=\"logIssueForm.issueRiskRating\"\r\n />\r\n <span>{{ class.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Exception Type -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg\"\r\n alt=\"im\"\r\n *ngIf=\"logIssueForm?.exceptionType === null\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.exceptionType > -1\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Exception Type</label>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n [value]=\"1\"\r\n name=\"exception-type\"\r\n [checked]=\"logIssueForm?.exceptionType === 1\"\r\n (checkedEvent)=\"setException(1)\"\r\n >Design Exception\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n [value]=\"2\"\r\n name=\"exception-type\"\r\n [checked]=\"logIssueForm?.exceptionType === 2\"\r\n (checkedEvent)=\"setException(2)\"\r\n >Effectiveness Exception\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Priority -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.PRIORITY\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issuePriority\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issuePriority > 0\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Priority</label>\r\n <div class=\"classification\">\r\n <label\r\n *ngFor=\"let priority of riskPrority\"\r\n [ngClass]=\"[priority.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification-priority\"\r\n [value]=\"priority.value\"\r\n [checked]=\"logIssueForm?.issuePriority === priority.value\"\r\n [(ngModel)]=\"logIssueForm.issuePriority\"\r\n />\r\n <span>{{ priority.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Associated Risks -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Associated Risks </label>\r\n <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[2]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file, 'ASSOCIATED_RISKS')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [(ngModel)]=\"logIssueForm.issueAssociatedRisk\"\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file: false,\r\n placeholder: 'Associated Risks'\r\n }\"\r\n (clickOutside)=\"checkDescription()\"\r\n (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS', $event)\"\r\n ></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n [class.active]=\"false\"\r\n *ngIf=\"additionalOptionStatus.OVERSIGHT\"\r\n [class.disabled]=\"\r\n activeField &&\r\n !['ISSUE_CC', 'ISSUE_FCC'].includes(activeField) &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"\r\n logIssueForm?.issueCCUsers?.length > 0 ||\r\n logIssueForm?.failureCCUsers?.length > 0\r\n \"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n (logIssueForm?.issueCCUsers?.length === 0 &&\r\n logIssueForm?.failureCCUsers?.length === 0) ||\r\n activeField === 'ISSUE_CC' ||\r\n activeField === 'ISSUE_FCC'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n *ngIf=\"\r\n logIssueForm?.issueCCUsers?.length > 0 ||\r\n (logIssueForm?.failureCCUsers?.length > 0 &&\r\n activeField !== 'ISSUE_CC') ||\r\n activeField !== 'ISSUE_FCC'\r\n \"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Oversight</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.issueCCUsers ||\r\n logIssueForm?.issueCCUsers?.length === 0\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\r\n placeholder=\"Who should have oversight of this issue?\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_CC', logIssueForm?.issueCCUsers[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueCCUsers[0]?.employee_name }}</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"CC.popover()\"\r\n placement=\"right\"\r\n *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\"\r\n >\r\n +{{ logIssueForm?.issueCCUsers?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\"></i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_CC'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.failureCCUsers ||\r\n logIssueForm?.failureCCUsers?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\r\n type=\"text\"\r\n placeholder=\"Who should be notified if the issue is not resolved?\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_FCC', logIssueForm?.failureCCUsers[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.failureCCUsers[0]?.employee_name }}</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"FCC.popover()\"\r\n placement=\"right\"\r\n *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\"\r\n >\r\n +{{ logIssueForm?.failureCCUsers?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\"></i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_FCC'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <app-popover #CC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let cc of logIssueForm?.issueCCUsers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC', cc)\"\r\n ></i\r\n >\r\n {{ cc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #FCC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let fcc of logIssueForm?.failureCCUsers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC', fcc)\"\r\n ></i\r\n >\r\n {{ fcc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Evidence -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.EVIDENCE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"true\">\r\n <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Evidence</label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\"\r\n >Do you want evidence of completion of the issue to be\r\n uploaded?</span\r\n >\r\n <div class=\"radio-group\">\r\n <app-cs-radio\r\n [name]=\"'file-evidence'\"\r\n [value]=\"1\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 1\"\r\n (checkedEvent)=\"setEvidence(1)\"\r\n >Yes\r\n </app-cs-radio>\r\n <app-cs-radio\r\n [name]=\"'file-evidence'\"\r\n [value]=\"0\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 0\"\r\n (checkedEvent)=\"setEvidence(0)\"\r\n >No\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_CATGORY\"\r\n [itemsList]=\"listData?.categoryList\"\r\n [selectedItems]=\"logIssueForm.issueCategory\"\r\n [identifierKey]=\"'category_id'\"\r\n [displayKey]=\"'category_name'\"\r\n *ngIf=\"activeSelector === 'ISSUE_CATEGORY'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CATEGORY')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\"\r\n>\r\n</app-radio-list>\r\n\r\n<app-responsibility-centers-list\r\n *ngIf=\"activeSelector === 'ISSUE_RC'\"\r\n [responsibilityCentersList]=\"listData?.rcList\"\r\n [radioSelection]=\"false\"\r\n [selectedResponsibilityCenters]=\"logIssueForm?.issueRC\"\r\n [rcIdKey]=\"'item_id'\"\r\n (saveSelectedList)=\"selectorAction($event, 'ISSUE_RC')\"\r\n (closeRcList)=\"fieldDeselector('ISSUE_RC')\"\r\n>\r\n</app-responsibility-centers-list>\r\n\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_WHO\"\r\n [itemsList]=\"listData?.userList\"\r\n [twoColumn]=\"true\"\r\n [selectedItems]=\"logIssueForm.entrustTo\"\r\n [identifierKey]=\"'employee_id'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_WHO'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_WHO')\"\r\n (closeList)=\"fieldDeselector('ISSUE_WHO')\"\r\n></app-radio-list>\r\n\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_TYPE\"\r\n [itemsList]=\"listData?.issueTypeList\"\r\n [selectedItems]=\"logIssueForm.issueType\"\r\n [identifierKey]=\"'issue_id'\"\r\n [displayKey]=\"'issue_type_name'\"\r\n *ngIf=\"activeSelector === 'ISSUE_TYPE'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_TYPE')\"\r\n (closeList)=\"fieldDeselector('ISSUE_TYPE')\"\r\n></app-radio-list>\r\n\r\n<app-checkbox-list\r\n [config]=\"selectorConfig?.ISSUE_CC\"\r\n [twoColumn]=\"true\"\r\n [itemsList]=\"\r\n listData.userList\r\n | userFilter\r\n : 'employee_email'\r\n : logIssueForm.entrustTo\r\n : { employee_email: currentUser?.email }\r\n \"\r\n [selectedItems]=\"logIssueForm.issueCCUsers\"\r\n [identifierKey]=\"'employee_email'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_CC'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\"\r\n></app-checkbox-list>\r\n\r\n<app-checkbox-list\r\n [config]=\"selectorConfig?.ISSUE_FCC\"\r\n [twoColumn]=\"true\"\r\n [itemsList]=\"\r\n listData.userList\r\n | userFilter\r\n : 'employee_email'\r\n : logIssueForm.entrustTo\r\n : { employee_email: currentUser?.email }\r\n \"\r\n [selectedItems]=\"logIssueForm.failureCCUsers\"\r\n [identifierKey]=\"'employee_email'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_FCC'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_FCC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_FCC')\"\r\n></app-checkbox-list>\r\n\r\n<app-responsibility-risk-selector\r\n [loading]=\"isRiskControlLoading\"\r\n *ngIf=\"activeSelector === 'ISSUE_CONTROL_RISK'\"\r\n (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\"\r\n (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CONTROL_RISK')\"\r\n [activeEntity]=\"logIssueForm?.linkageType\"\r\n [listItems]=\"listData?.linkageList\"\r\n [selectedItems]=\"logIssueForm?.linkedControlRisk\"\r\n></app-responsibility-risk-selector>\r\n\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"message\"\r\n [actionButtons]=\"displayActionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n>\r\n</app-smiley-dialog-inline>\r\n\r\n<app-link-responsibility-list\r\n *ngIf=\"activeSelector === 'LINK_MORE_RESPONSIBILITY'\"\r\n [selectedResponsibilityValues]=\"logIssueForm?.responsibilityLinked\"\r\n (closeButton)=\"fieldDeselector('LINK_MORE_RESPONSIBILITY')\"\r\n [respIdKey]=\"'ReportId'\"\r\n [radioSelection]=\"false\"\r\n (selectedResponsibility)=\"selectorAction($event, 'LINK_MORE_RESPONSIBILITY')\"\r\n></app-link-responsibility-list>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .log-an-issue{position:relative}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.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-bottom.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/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\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"] }]
|
|
1189
|
+
args: [{ selector: 'app-log-an-issue', template: "<!-- <p>log-an-issue works!</p> -->\r\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n isLinkResponsibility) &&\r\n !isLinkQuestionVisible\r\n \"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"link_responsibilities\"\r\n *ngIf=\"\r\n (logIssueForm?.responsibilityLinked?.length === 0 &&\r\n !reponsibilityData?.responsibilityName) ||\r\n activeField === 'LINK_MORE_RESPONSIBILITY'\r\n \"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n isLinkResponsibility) &&\r\n !isLinkQuestionVisible\r\n \"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >{{ linkText }}\r\n <button\r\n class=\"button\"\r\n *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n >\r\n Link More Responsibilities\r\n </button>\r\n </label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Select responsibilities that are linked to this issue\"\r\n readonly\r\n *ngIf=\"\r\n !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n !logIssueForm?.responsibilityLinked?.length\r\n \"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n ['COMPLIANCE_WORKROOM'].includes(openedFrom) ||\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n ['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n reponsibilityData?.responsibilityName\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n [appTooltip]=\"reponsibilityData?.responsibilityName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ reponsibilityData?.responsibilityName }}</span\r\n >\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n *ngIf=\"!['COMPLIANCE_WORKROOM'].includes(openedFrom)\"\r\n (click)=\"\r\n deleteItem(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n logIssueForm?.responsibilityLinked[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span\r\n *ngIf=\"\r\n !['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.responsibilityLinked[0]?.ReportName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.responsibilityLinked[0]?.ReportName }}</span\r\n >\r\n <button\r\n *ngIf=\"\r\n (['COMPLIANCE_WORKROOM'].includes(openedFrom) &&\r\n logIssueForm?.responsibilityLinked?.length) ||\r\n logIssueForm?.responsibilityLinked?.length > 1\r\n \"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"linkResp.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{\r\n ![\"COMPLIANCE_WORKROOM\"].includes(openedFrom)\r\n ? logIssueForm?.responsibilityLinked?.length - 1\r\n : logIssueForm?.responsibilityLinked?.length\r\n }}\r\n </button>\r\n </div>\r\n <button\r\n *ngIf=\"\r\n activeField !== 'LINK_MORE_RESPONSIBILITY' &&\r\n logIssueForm?.responsibilityLinked?.length\r\n \"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"\r\n setActiveFieldSelector(\r\n 'LINK_MORE_RESPONSIBILITY',\r\n 'LINK_MORE_RESPONSIBILITY'\r\n )\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <app-popover #linkResp [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let resp of logIssueForm?.responsibilityLinked\r\n | slice\r\n : (!['COMPLIANCE_WORKROOM'].includes(openedFrom) ? 1 : 0)\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n class=\"icons\"\r\n (click)=\"deleteItem('LINK_MORE_RESPONSIBILITY', resp)\"\r\n ></i\r\n >\r\n {{ resp?.ReportName }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-controls.svg\"\r\n alt=\"link_responsibility\"\r\n *ngIf=\"\r\n (logIssueForm?.responsibilityLinked?.length === 0 &&\r\n !reponsibilityData?.responsibilityName) ||\r\n activeField === 'LINK_RESPONSIBILITY'\r\n \"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">{{ linkText }}</label>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n (['ASSESSMENT'].includes(openedFrom) &&\r\n reponsibilityData?.responsibilityName) ||\r\n isLinkQuestionVisible\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n [appTooltip]=\"reponsibilityData?.responsibilityName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ reponsibilityData?.responsibilityName }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group-row\">\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"left\"\r\n [class.checked]=\"false\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\"\r\n alt=\"link_assessment_question\"\r\n *ngIf=\"\r\n !assessmentQuestion?.questionName ||\r\n activeField === 'LINK_ASSESSMENT_QUESTION'\r\n \"\r\n />\r\n <svg\r\n *ngIf=\"isLinkQuestionVisible || ['ASSESSMENT'].includes(openedFrom)\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n class=\"right\"\r\n >\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Linked Assessment Question </label>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"['ASSESSMENT'].includes(openedFrom) || isLinkQuestionVisible\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span\r\n *ngIf=\"\r\n (['ASSESSMENT'].includes(openedFrom) &&\r\n assessmentQuestion?.questionName) ||\r\n isLinkQuestionVisible\r\n \"\r\n class=\"chipName vx-fs-11 vx-label-txt full-width\"\r\n appTooltip=\"{{\r\n assessmentQuestion?.questionNumber +\r\n ': ' +\r\n assessmentQuestion?.questionName\r\n }}\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{\r\n assessmentQuestion?.questionNumber +\r\n \": \" +\r\n assessmentQuestion?.questionName\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"\r\n ['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\r\n openedFrom\r\n ) || isRiskControlVisible\r\n \"\r\n [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_CONTROL_RISK' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n logIssueForm?.linkedControlRisk?.length === 0 ||\r\n activeField === 'ISSUE_CONTROL_RISK'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm?.linkedControlRisk?.length > 0 &&\r\n activeField !== 'ISSUE_CONTROL_RISK'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Select a control or risk</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.linkedControlRisk ||\r\n logIssueForm?.linkedControlRisk?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"\r\n setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\r\n \"\r\n type=\"text\"\r\n placeholder=\"Select a control or risk.\"\r\n readonly\r\n />\r\n </div>\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\"\r\n >\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"\r\n deleteItem(\r\n 'ISSUE_CONTROL_RISK',\r\n logIssueForm?.linkedControlRisk[0]\r\n )\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.linkedControlRisk[0]?.itemControlName }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\"></i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div> -->\r\n <button\r\n class=\"edit\"\r\n *ngIf=\"activeField !== 'ISSUE_CONTROL_RISK'\"\r\n type=\"button\"\r\n (click)=\"\r\n setActiveFieldSelector('ISSUE_CONTROL_RISK', 'ISSUE_CONTROL_RISK')\r\n \"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"vx-form-group\"\r\n *ngFor=\"let tag of logIssueForm.issueCustomTag | keyvalue\"\r\n >\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{\r\n tag?.value?.custom_tag_name\r\n }}</label>\r\n <input\r\n type=\"text\"\r\n [placeholder]=\"tag?.value?.custom_tag_name\"\r\n [(ngModel)]=\"tag.value.custom_tag_value\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Title -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_TITLE' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\"\r\n alt=\"name\"\r\n *ngIf=\"\r\n !logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Issue Title <span class=\"required\">*</span>\r\n </label>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Add a name for this issue\"\r\n [(ngModel)]=\"logIssueForm.issueName\"\r\n (focusin)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\r\n (keyup)=\"\r\n logIssueForm.issueName?.trim()?.length > 0\r\n ? removeError('issueName')\r\n : null\r\n \"\r\n (focusout)=\"setActiveFieldSelector('', '')\"\r\n *ngIf=\"\r\n logIssueForm.issueName == '' || activeSelector === 'ISSUE_TITLE'\r\n \"\r\n />\r\n <div\r\n class=\"selected\"\r\n *ngIf=\"\r\n logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\r\n \"\r\n >\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{ logIssueForm.issueName }}</span>\r\n </div>\r\n <button\r\n class=\"edit\"\r\n (click)=\"setActiveFieldSelector('ISSUE_TITLE', 'ISSUE_TITLE')\"\r\n type=\"button\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">\r\n Enter a name for this issue.\r\n </p>\r\n <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[0]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file, 'ISSUE_DESCRIPTION')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n file: false,\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description'\r\n }\"\r\n [(ngModel)]=\"logIssueForm.issueDescription\"\r\n (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION', $event)\"\r\n (clickOutside)=\"checkDescription()\"\r\n ></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- issue type start-->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_TITLE' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left checked\">\r\n <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"> Issue Type </label>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n name=\"issue-type\"\r\n [checked]=\"logIssueForm?.issueType === 'issue'\"\r\n (checkedEvent)=\"setIssueType('issue')\"\r\n >Issue\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n name=\"issue-type\"\r\n [checked]=\"logIssueForm?.issueType === 'incident'\"\r\n (checkedEvent)=\"setIssueType('incident')\"\r\n >Incident\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Category -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_CATEGORY' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n logIssueForm?.issueCategory?.length === 0 ||\r\n activeField === 'ISSUE_CATEGORY'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n logIssueForm?.issueCategory?.length > 0 &&\r\n activeField !== 'ISSUE_CATEGORY'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Category</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.issueCategory ||\r\n logIssueForm?.issueCategory?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\r\n type=\"text\"\r\n placeholder=\"Select a category for this issue\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"\r\n deleteItem('ISSUE_CATEGORY', logIssueForm?.issueCategory[0])\r\n \"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueCategory[0]?.category_name }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\"></i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div> -->\r\n <button\r\n class=\"edit\"\r\n *ngIf=\"activeField !== 'ISSUE_CATEGORY'\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CATEGORY', 'ISSUE_CATEGORY')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueCategory')\"\r\n >\r\n Select an issue category.\r\n </p>\r\n </div>\r\n <div\r\n class=\"vx-form-group\"\r\n *ngFor=\"let tag of logIssueForm.issueCustomTag\"\r\n >\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{ tag?.name }}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div\r\n class=\"form-group-row\"\r\n *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\r\n [class.active]=\"false\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_RC' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\"\r\n class=\"left\"\r\n [class.checked]=\"logIssueForm?.issueRC?.length > 0\"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\"\r\n alt=\"\"\r\n *ngIf=\"logIssueForm?.issueRC?.length === 0\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"isRCEditable || logIssueForm?.issueRC?.length\" class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Responsibility Center\r\n <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\r\n </label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\r\n type=\"text\"\r\n placeholder=\"Select Responsibility Center(s)\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n *ngIf=\"isRCEditable\"\r\n (click)=\"deleteItem('ISSUE_RC', logIssueForm?.issueRC[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueRC[0]?.item_name }}</span\r\n >\r\n <button\r\n *ngIf=\"logIssueForm?.issueRC?.length > 1\"\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"RC.popover()\"\r\n placement=\"right\"\r\n >\r\n +{{ logIssueForm?.issueRC?.slice(1)?.length }}\r\n </button>\r\n </div>\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_RC' && isRCEditable\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_RC', 'ISSUE_RC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">\r\n Select the Responsibility Center associated with this issue.\r\n </p>\r\n </div>\r\n <app-popover #RC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let rc of logIssueForm?.issueRC | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i\r\n *ngIf=\"isRCEditable\"\r\n class=\"icons\"\r\n (click)=\"deleteItem('ISSUE_RC', rc)\"\r\n ></i\r\n >\r\n {{ rc?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_WHO' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\"\r\n alt=\"im\"\r\n *ngIf=\"\r\n (logIssueForm?.entrustTo?.length === 0 &&\r\n !logIssueForm?.isAssignToMyself) ||\r\n activeField === 'ISSUE_WHO'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"\r\n (logIssueForm?.entrustTo?.length > 0 ||\r\n logIssueForm?.isAssignToMyself) &&\r\n activeField !== 'ISSUE_WHO'\r\n \"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Who? <span class=\"required\">*</span></label\r\n >\r\n <div\r\n class=\"select\"\r\n [class.disabled]=\"logIssueForm?.isAssignToMyself\"\r\n *ngIf=\"\r\n !logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\r\n [disabled]=\"logIssueForm?.isAssignToMyself\"\r\n type=\"text\"\r\n placeholder=\"Who is responsible for completing the responsibility?\"\r\n readonly\r\n />\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_WHO', logIssueForm?.entrustTo[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.entrustTo[0]?.employee_name }}</span\r\n >\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\"></i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_WHO'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_WHO', 'ISSUE_WHO')\"\r\n >\r\n <i class=\"icons\"></i> Edit\r\n </button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">\r\n Select the person responsible for resolving this issue.\r\n </p>\r\n <div\r\n class=\"switch-row align-right\"\r\n [class.disabled]=\"activeField === 'ISSUE_WHO'\"\r\n >\r\n <app-cs-switch\r\n [disabled]=\"activeField === 'ISSUE_WHO'\"\r\n [(ngValue)]=\"logIssueForm.isAssignToMyself\"\r\n (ngValueChange)=\"assignMyself($event)\"\r\n >OR ASSIGN TO MYSELF</app-cs-switch\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Maximun Time to Resolve -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"\r\n activeField &&\r\n activeField !== 'ISSUE_DATE_TIME' &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME'\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Maximum Time to Resolve <span class=\"required\">*</span></label\r\n >\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n placeholder=\"Set a deadline.\"\r\n [value]=\"logIssueForm.issueDueDate | date : 'dd MMM yyyy'\"\r\n (click)=\"openDatePicker()\"\r\n id=\"max-time\"\r\n />\r\n <i class=\"icons\"></i>\r\n <dp-date-picker\r\n #datePicker\r\n (onSelect)=\"\r\n datePickerOverlay = false;\r\n closeDatePicker($event);\r\n removeError('issueDueDate')\r\n \"\r\n [config]=\"dateConfig\"\r\n [(ngModel)]=\"logIssueForm.issueDueDate\"\r\n >\r\n </dp-date-picker>\r\n <div\r\n class=\"vx-overlay\"\r\n (click)=\"closeDatePicker($event)\"\r\n *ngIf=\"datePickerOverlay\"\r\n ></div>\r\n </div>\r\n\r\n <div\r\n class=\"picker-group\"\r\n appPopover\r\n (click)=\"timePicker.popover()\"\r\n placement=\"right\"\r\n >\r\n <input\r\n (mouseover)=\"setCurrentTime()\"\r\n [(ngModel)]=\"logIssueForm.issueDueTime\"\r\n [value]=\"logIssueForm?.issueDueTime\"\r\n readonly\r\n class=\"time\"\r\n placeholder=\"Select Time\"\r\n type=\"text\"\r\n [min]=\"currentTime\"\r\n />\r\n <i class=\"icons\"></i>\r\n </div>\r\n <app-popover #timePicker [dontCloseonClick]=\"true\">\r\n <app-time-picker\r\n [time]=\"logIssueForm?.issueDueTime\"\r\n (onTimeSelection)=\"\r\n onTimeChanged($event); timePicker.closePopover('top')\r\n \"\r\n ></app-time-picker>\r\n </app-popover>\r\n </div>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueDueDate')\"\r\n >\r\n Select the date by which this issue needs to be resolved.\r\n </p>\r\n\r\n <p class=\"error-message\" *ngIf=\"!isFutureDate\">\r\n {{ getDateValidationMessage }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recommended Actions -->\r\n <div\r\n class=\"form-group-row\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recommended-action.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\"\r\n />\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length > 0\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\"\r\n >Recommended Actions <span class=\"required\">*</span></label\r\n >\r\n <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[1]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i\r\n class=\"icons\"\r\n (click)=\"deleteFile(file, 'RECOMMENDED_ACTIONS')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [(ngModel)]=\"logIssueForm.issueRecommendation\"\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file: true,\r\n placeholder: 'Recommended actions'\r\n }\"\r\n (ngModelChange)=\"\r\n logIssueForm?.issueRecommendation?.trim()?.length > 0\r\n ? removeError('issueRecommendation')\r\n : null\r\n \"\r\n (clickOutside)=\"checkDescription()\"\r\n (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS', $event)\"\r\n ></vcomply-editor>\r\n <p\r\n class=\"error-message\"\r\n *ngIf=\"fieldsWithError.includes('issueRecommendation')\"\r\n >\r\n Specify the recommended actions to resolve this issue.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\" -->\r\n <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\r\n\r\n <!-- Risk Classification -->\r\n <div class=\"form-group-row\" id=\"risk_classification\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueRiskRating\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueRiskRating\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label\r\n class=\"low\"\r\n *ngFor=\"let class of riskClassification\"\r\n [ngClass]=\"[class.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification\"\r\n [value]=\"class.value\"\r\n [checked]=\"logIssueForm?.issueRiskRating === class.value\"\r\n [(ngModel)]=\"logIssueForm.issueRiskRating\"\r\n />\r\n <span>{{ class.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Exception Type -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg\"\r\n alt=\"im\"\r\n *ngIf=\"logIssueForm?.exceptionType === null\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.exceptionType > -1\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Exception Type</label>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n [value]=\"1\"\r\n name=\"exception-type\"\r\n [checked]=\"logIssueForm?.exceptionType === 1\"\r\n (checkedEvent)=\"setException(1)\"\r\n >Design Exception\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n <app-cs-radio\r\n class=\"main-filed\"\r\n [value]=\"2\"\r\n name=\"exception-type\"\r\n [checked]=\"logIssueForm?.exceptionType === 2\"\r\n (checkedEvent)=\"setException(2)\"\r\n >Effectiveness Exception\r\n <!-- <i class=\"icons\"></i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Priority -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.PRIORITY\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issuePriority\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issuePriority > 0\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Priority</label>\r\n <div class=\"classification\">\r\n <label\r\n *ngFor=\"let priority of riskPrority\"\r\n [ngClass]=\"[priority.class]\"\r\n >\r\n <input\r\n type=\"radio\"\r\n name=\"classification-priority\"\r\n [value]=\"priority.value\"\r\n [checked]=\"logIssueForm?.issuePriority === priority.value\"\r\n [(ngModel)]=\"logIssueForm.issuePriority\"\r\n />\r\n <span>{{ priority.name }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Associated Risks -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\"\r\n alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Associated Risks </label>\r\n <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0\">\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let uploadingFile of AttachmentTrack[2]\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ uploadingFile }}</span>\r\n <!-- <button>\r\n <i class=\"icons\"></i>\r\n </button> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\"\r\n >\r\n <div\r\n class=\"file-list\"\r\n *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\"\r\n >\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{ file?.name }}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file, 'ASSOCIATED_RISKS')\"\r\n ></i\r\n >\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor\r\n [(ngModel)]=\"logIssueForm.issueAssociatedRisk\"\r\n [editorConfig]=\"{\r\n mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file: false,\r\n placeholder: 'Associated Risks'\r\n }\"\r\n (clickOutside)=\"checkDescription()\"\r\n (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS', $event)\"\r\n ></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n [class.active]=\"false\"\r\n *ngIf=\"additionalOptionStatus.OVERSIGHT\"\r\n [class.disabled]=\"\r\n activeField &&\r\n !['ISSUE_CC', 'ISSUE_FCC'].includes(activeField) &&\r\n sideSelectorElements.includes(activeField)\r\n \"\r\n >\r\n <div\r\n class=\"left\"\r\n [class.checked]=\"\r\n logIssueForm?.issueCCUsers?.length > 0 ||\r\n logIssueForm?.failureCCUsers?.length > 0\r\n \"\r\n >\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\"\r\n alt=\"\"\r\n *ngIf=\"\r\n (logIssueForm?.issueCCUsers?.length === 0 &&\r\n logIssueForm?.failureCCUsers?.length === 0) ||\r\n activeField === 'ISSUE_CC' ||\r\n activeField === 'ISSUE_FCC'\r\n \"\r\n />\r\n\r\n <svg\r\n class=\"checkIcon\"\r\n *ngIf=\"\r\n logIssueForm?.issueCCUsers?.length > 0 ||\r\n (logIssueForm?.failureCCUsers?.length > 0 &&\r\n activeField !== 'ISSUE_CC') ||\r\n activeField !== 'ISSUE_FCC'\r\n \"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Oversight</label>\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.issueCCUsers ||\r\n logIssueForm?.issueCCUsers?.length === 0\r\n \"\r\n >\r\n <input\r\n type=\"text\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\r\n placeholder=\"Who should have oversight of this issue?\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_CC', logIssueForm?.issueCCUsers[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.issueCCUsers[0]?.employee_name }}</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"CC.popover()\"\r\n placement=\"right\"\r\n *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\"\r\n >\r\n +{{ logIssueForm?.issueCCUsers?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\"></i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_CC'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_CC', 'ISSUE_CC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n\r\n <div\r\n class=\"select\"\r\n *ngIf=\"\r\n !logIssueForm?.failureCCUsers ||\r\n logIssueForm?.failureCCUsers?.length === 0\r\n \"\r\n >\r\n <input\r\n (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\r\n type=\"text\"\r\n placeholder=\"Who should be notified if the issue is not resolved?\"\r\n readonly\r\n />\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n (click)=\"deleteItem('ISSUE_FCC', logIssueForm?.failureCCUsers[0])\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ logIssueForm?.failureCCUsers[0]?.employee_name }}</span\r\n >\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n appPopover\r\n (click)=\"FCC.popover()\"\r\n placement=\"right\"\r\n *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\"\r\n >\r\n +{{ logIssueForm?.failureCCUsers?.slice(1).length }}\r\n </button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\"></i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button\r\n *ngIf=\"activeField !== 'ISSUE_FCC'\"\r\n class=\"edit\"\r\n type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_FCC', 'ISSUE_FCC')\"\r\n >\r\n <i class=\"icons\"></i>Edit\r\n </button>\r\n </div>\r\n </div>\r\n <app-popover #CC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let cc of logIssueForm?.issueCCUsers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC', cc)\"\r\n ></i\r\n >\r\n {{ cc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #FCC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let fcc of logIssueForm?.failureCCUsers | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC', fcc)\"\r\n ></i\r\n >\r\n {{ fcc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Evidence -->\r\n <div\r\n [appScrollInView]=\"scrollToBottom\"\r\n class=\"form-group-row\"\r\n *ngIf=\"additionalOptionStatus.EVIDENCE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"true\">\r\n <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\r\n <svg\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Evidence</label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\"\r\n >Do you want evidence of completion of the issue to be\r\n uploaded?</span\r\n >\r\n <div class=\"radio-group\">\r\n <app-cs-radio\r\n [name]=\"'file-evidence'\"\r\n [value]=\"1\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 1\"\r\n (checkedEvent)=\"setEvidence(1)\"\r\n >Yes\r\n </app-cs-radio>\r\n <app-cs-radio\r\n [name]=\"'file-evidence'\"\r\n [value]=\"0\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 0\"\r\n (checkedEvent)=\"setEvidence(0)\"\r\n >No\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_CATGORY\"\r\n [itemsList]=\"listData?.categoryList\"\r\n [selectedItems]=\"logIssueForm.issueCategory\"\r\n [identifierKey]=\"'category_id'\"\r\n [displayKey]=\"'category_name'\"\r\n *ngIf=\"activeSelector === 'ISSUE_CATEGORY'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CATEGORY')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\"\r\n>\r\n</app-radio-list>\r\n\r\n<app-responsibility-centers-list\r\n *ngIf=\"activeSelector === 'ISSUE_RC'\"\r\n [responsibilityCentersList]=\"listData?.rcList\"\r\n [radioSelection]=\"false\"\r\n [selectedResponsibilityCenters]=\"logIssueForm?.issueRC\"\r\n [rcIdKey]=\"'item_id'\"\r\n (saveSelectedList)=\"selectorAction($event, 'ISSUE_RC')\"\r\n (closeRcList)=\"fieldDeselector('ISSUE_RC')\"\r\n>\r\n</app-responsibility-centers-list>\r\n\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_WHO\"\r\n [itemsList]=\"listData?.userList\"\r\n [twoColumn]=\"true\"\r\n [selectedItems]=\"logIssueForm.entrustTo\"\r\n [identifierKey]=\"'employee_id'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_WHO'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_WHO')\"\r\n (closeList)=\"fieldDeselector('ISSUE_WHO')\"\r\n></app-radio-list>\r\n\r\n<app-radio-list\r\n [config]=\"selectorConfig?.ISSUE_TYPE\"\r\n [itemsList]=\"listData?.issueTypeList\"\r\n [selectedItems]=\"logIssueForm.issueType\"\r\n [identifierKey]=\"'issue_id'\"\r\n [displayKey]=\"'issue_type_name'\"\r\n *ngIf=\"activeSelector === 'ISSUE_TYPE'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_TYPE')\"\r\n (closeList)=\"fieldDeselector('ISSUE_TYPE')\"\r\n></app-radio-list>\r\n\r\n<app-checkbox-list\r\n [config]=\"selectorConfig?.ISSUE_CC\"\r\n [twoColumn]=\"true\"\r\n [itemsList]=\"\r\n listData.userList\r\n | userFilter\r\n : 'employee_email'\r\n : logIssueForm.entrustTo\r\n : { employee_email: currentUser?.email }\r\n \"\r\n [selectedItems]=\"logIssueForm.issueCCUsers\"\r\n [identifierKey]=\"'employee_email'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_CC'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\"\r\n></app-checkbox-list>\r\n\r\n<app-checkbox-list\r\n [config]=\"selectorConfig?.ISSUE_FCC\"\r\n [twoColumn]=\"true\"\r\n [itemsList]=\"\r\n listData.userList\r\n | userFilter\r\n : 'employee_email'\r\n : logIssueForm.entrustTo\r\n : { employee_email: currentUser?.email }\r\n \"\r\n [selectedItems]=\"logIssueForm.failureCCUsers\"\r\n [identifierKey]=\"'employee_email'\"\r\n [displayKey]=\"'employee_name'\"\r\n [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector === 'ISSUE_FCC'\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_FCC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_FCC')\"\r\n></app-checkbox-list>\r\n\r\n<app-responsibility-risk-selector\r\n [loading]=\"isRiskControlLoading\"\r\n *ngIf=\"activeSelector === 'ISSUE_CONTROL_RISK'\"\r\n (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\"\r\n (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\r\n (saveList)=\"selectorAction($event, 'ISSUE_CONTROL_RISK')\"\r\n [activeEntity]=\"logIssueForm?.linkageType\"\r\n [listItems]=\"listData?.linkageList\"\r\n [selectedItems]=\"logIssueForm?.linkedControlRisk\"\r\n></app-responsibility-risk-selector>\r\n\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"message\"\r\n [actionButtons]=\"displayActionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\"\r\n>\r\n</app-smiley-dialog-inline>\r\n\r\n<app-link-responsibility-list\r\n *ngIf=\"activeSelector === 'LINK_MORE_RESPONSIBILITY'\"\r\n [selectedResponsibilityValues]=\"logIssueForm?.responsibilityLinked\"\r\n (closeButton)=\"fieldDeselector('LINK_MORE_RESPONSIBILITY')\"\r\n [respIdKey]=\"'ReportId'\"\r\n [radioSelection]=\"false\"\r\n (selectedResponsibility)=\"selectorAction($event, 'LINK_MORE_RESPONSIBILITY')\"\r\n></app-link-responsibility-list>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .log-an-issue{position:relative}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.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-bottom.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/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\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"] }]
|
|
1174
1190
|
}], ctorParameters: function () { return [{ type: i1.LogIssueService }, { type: i2.AuthService }, { type: i3.UiKitService }, { type: i4.SnackBarService }, { type: i5.CommonService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { openedFrom: [{
|
|
1175
1191
|
type: Input
|
|
1176
1192
|
}], source: [{
|
|
@@ -1209,4 +1225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1209
1225
|
type: HostListener,
|
|
1210
1226
|
args: ['document:click', ['$event']]
|
|
1211
1227
|
}] } });
|
|
1212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuLWlzc3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFJVCxVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHbkMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPM0QsTUFBTSxPQUFPLG1CQUFtQjtJQTZFOUIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDekIsQ0FBQyxDQUFDLDhCQUE4QjtZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUMvQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM1QixDQUFDLENBQUMsSUFBSSxD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RyxJQUFJLENBQUMsZUFBZTtZQUM1QixTQUFTLEVBQUcsSUFBSSxDQUFDLFVBQVU7WUFDM0IsT0FBTyxFQUFHLElBQUksQ0FBQyxpQkFBaUI7U0FDakMsQ0FBQTtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQ3BDLGdCQUFnQixDQUNqQixDQUFBO0lBQ0gsQ0FBQzsrR0FqMkNVLG1CQUFtQjttR0FBbkIsbUJBQW1CLDR1QkFrQ0csVUFBVSxrREMvRDdDLDBqOERBNnJEQTs7NEZEaHFEYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usa0JBQWtCO3FQQUtuQixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQVFHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNrQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBRXZCLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBb3pDNUQsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dJc3N1ZVNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkNoYW5nZXMsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRWRpdG9yQ29uZmlnIH0gZnJvbSAndmNvbXBseS1lZGl0b3InO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmcyLWRhdGUtcGlja2VyJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuaW1wb3J0IHsgSXNzdWVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pc3N1ZS1kYXRhJztcclxuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbG9nLWFuLWlzc3VlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9nLWFuLWlzc3VlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sb2ctYW4taXNzdWUuY29tcG9uZW50Lmxlc3MnLCAnLi4vZm9ybXMubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9nQW5Jc3N1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBvcGVuZWRGcm9tITogYW55O1xyXG4gIEBJbnB1dCgpIHNvdXJjZTogJ1NBUCcgfCAnV09SS1JPT00nIHwgJycgPSAnJztcclxuICBASW5wdXQoKSBpc3N1ZUlkITogYW55O1xyXG4gIEBJbnB1dCgpIHJlcG9uc2liaWxpdHlEYXRhOiBhbnkgPSB7XHJcbiAgICAvLyBvbmx5IHVzZWQgYnkgbG9nIGFuIGlzc3VlXHJcbiAgICByZXNwb25zaWJpbGl0eUlkOiBudWxsLFxyXG4gICAgcmVzcG9uc2liaWxpdHlOYW1lOiAnJyxcclxuICAgIHJjSWQ6IFtdLFxyXG4gICAgcmVzcG9uc2liaWxpdHlPYmplY3RJZDogJycsXHJcbiAgICBkdWVEYXRlSWQ6ICcnLFxyXG4gIH07XHJcbiAgQElucHV0KCkgYXNzZXNzbWVudFF1ZXN0aW9uOiBhbnkgPSB7XHJcbiAgICBxdWVzdGlvbk5hbWU6ICcnLFxyXG4gICAgcXVlc3Rpb25OdW1iZXI6ICcnLFxyXG4gICAgcXVlc3Rpb25JZDogJycsXHJcbiAgICBhc3Nlc3NtZW50SWQ6ICcnLFxyXG4gICAgYXVkaXRlZUlkOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgaXNzdWVEZXRhaWxzID0ge1xyXG4gICAgYXVkaXRQbGFuSWQ6IG51bGwsXHJcbiAgICBhdWRpdFBsYW5OYW1lOiAnJyxcclxuICAgIHJjSWQ6IG51bGwsXHJcbiAgICBhdWRpdE9iaklkOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgbW9kZSA9ICdDUkVBVEUnO1xyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IElzc3VlQ29uZmlndXJhdGlvbjtcclxuICBASW5wdXQoKSByZXNwb25zaWJpbGl0aWVzRGF0YTogYW55O1xyXG4gIEBPdXRwdXQoKSBwaWNrZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwb3B1bGF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSlcclxuICBkYXRlUGlja2VyUG9wVXAhOiBFbGVtZW50UmVmO1xyXG5cclxuICBjdXJyZW50VXNlciE6IGFueTtcclxuICBzY3JvbGxUb0JvdHRvbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGVQaWNrZXJPdmVybGF5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RhdGVFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRGF0ZTogYW55O1xyXG4gIHNob3dTbWlsZXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzbWlsZXlNZXNzYWdlOiBzdHJpbmcgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkLmA7XHJcbiAgaXNzdWVEYXRhITogYW55O1xyXG4gIGlzUmlza0NvbnRyb2xMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbGlua1RleHQ6IHN0cmluZyA9ICcnO1xyXG4gIGFjdGlvbkJ1dHRvbnM6IGFueVtdID0gW1xyXG4gICAgeyBidXR0b25UZXh0OiAnUmVwb3J0IE1vcmUgSXNzdWVzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogJ2FkZE1vcmUnIH0sXHJcbiAgICB7IGJ1dHRvblRleHQ6ICdWaWV3IElzc3VlJywgY2xhc3M6ICdibHVlLWJ0bicsIGlkOiAndmlld0lzc3VlJyB9LFxyXG4gIF07XHJcbiAgY3JlYXRlZERhdGEhOiBhbnk7XHJcbiAgZGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIC8vIG1vZGU6ICdwcmltZScsXHJcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICBsaW5rOiB0cnVlLFxyXG4gICAgcGxhY2Vob2xkZXI6ICdEZXNjcmlwdGlvbicsXHJcbiAgfTtcclxuXHJcbiAgZGF0ZUNvbmZpZyA9IHtcclxuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcclxuICAgIGZvcm1hdDogJ0REJyxcclxuICAgIHVuU2VsZWN0T25DbGljazogdHJ1ZSxcclxuICAgIG9wZW5PbkNsaWNrOiBmYWxzZSxcclxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcclxuICAgIG1pbjogbmV3IERhdGUoKS5nZXREYXRlKCkudG9TdHJpbmcoKSxcclxuICB9O1xyXG4gIGxpc3REYXRhOiBhbnkgPSB7XHJcbiAgICBpc3N1ZVR5cGVMaXN0OiBbXSxcclxuICAgIHVzZXJMaXN0OiBbXSxcclxuICAgIGNhdGVnb3J5TGlzdDogW10sXHJcbiAgICByY0xpc3Q6IFtdLFxyXG4gICAgbGlua2FnZUxpc3Q6IFtdLFxyXG4gIH07XHJcbiAgREVGQVVMVF9USU1FID0gREVGQVVMVF9USU1FO1xyXG5cclxuICBnZXQgbWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdFRElUJ1xyXG4gICAgICA/ICcgVGhlIElzc3VlIGhhcyBiZWVuIHVwZGF0ZWQuJ1xyXG4gICAgICA6IHRoaXMuc21pbGV5TWVzc2FnZTtcclxuICB9XHJcblxyXG4gIGdldCBkaXNwbGF5QWN0aW9uQnV0dG9ucygpIHtcclxuICAgIHJldHVybiAoIVsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSkgJiZcclxuICAgICAgWydDUkVBVEUnXS5pbmNsdWRlcyh0aGlzLm1vZGUpKSB8fFxyXG4gICAgICBbJ0VESVQnXS5pbmNsdWRlcyh0aGlzLm1vZGUpXHJcbiAgICAgID8gdGhpcy5hY3Rpb25CdXR0b25zXHJcbiAgICAgIDogW107XHJcbiAgfVxyXG5cclxuICBsb2dJc3N1ZUZvcm06IGFueSA9IHtcclxuICAgIGlzc3VlTmFtZTogJycsXHJcbiAgICBldmlkZW5jZVJlcXVpcmVkOiAwLFxyXG4gICAgaXNzdWVEZXNjcmlwdGlvbjogJycsXHJcbiAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBbXSxcclxuICAgIGlzc3VlQ2F0ZWdvcnk6IFtdLFxyXG4gICAgaXNzdWVDdXN0b21UYWc6IFtdLFxyXG4gICAgaXNzdWVSQzogW10sXHJcbiAgICBpc3N1ZVR5cGU6ICdpc3N1ZScsXHJcbiAgICBpc0Fzc2lnblRvTXlzZWxmOiBmYWxzZSxcclxuICAgIGVudHJ1c3RUbzogW10sXHJcbiAgICBpc3N1ZUR1ZURhdGU6ICcnLFxyXG4gICAgaXNzdWVEdWVUaW1lOiBERUZBVUxUX1RJTUUsXHJcbiAgICBleGNlcHRpb25UeXBlOiAxLFxyXG4gICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgaXNzdWVQcmlvcml0eTogMSxcclxuICAgIGlzc3VlUmVjb21tZW5kYXRpb246ICcnLFxyXG4gICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICBpc3N1ZUNDVXNlcnM6IFtdLFxyXG4gICAgZmFpbHVyZUNDVXNlcnM6IFtdLFxyXG4gICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgbGlua2FnZVR5cGU6ICdSSVNLJyxcclxuICAgIHJlc3BvbnNpYmlsaXR5TGlua2VkOiBbXSxcclxuICAgIGR1ZURhdGVJZDogJycsXHJcbiAgICBhc3Nlc3NtZW50SWQ6ICcnLFxyXG4gICAgYXVkaXRlZUlkOiBudWxsLFxyXG4gICAgcXVlc3Rpb25JZDogJycsXHJcbiAgICBxdWVzdGlvbk51bWJlcjogJycsXHJcbiAgICB0aXRsZTogJycsXHJcbiAgICBkdWVEYXRlOiAnJyxcclxuICAgIHNvdXJjZTogJycsXHJcbiAgfTtcclxuICBBdHRhY2htZW50VHJhY2s6IGFueSA9IFtbXSwgW10sIFtdXTtcclxuICBhZGRpdGlvbmFsT3B0aW9uU3RhdHVzOiBhbnkgPSB7XHJcbiAgICBFWENFUFRJT05fVFlQRTogZmFsc2UsXHJcbiAgICBFVklERU5DRTogZmFsc2UsXHJcbiAgICBQUklPUklUWTogZmFsc2UsXHJcbiAgICBJU1NVRV9UWVBFOiBmYWxzZSxcclxuICAgIEFTU09DSUFURURfUklTS1M6IGZhbHNlLFxyXG4gICAgT1ZFUlNJR0hUOiBmYWxzZSxcclxuICB9O1xyXG4gIHJpc2tDbGFzc2lmaWNhdGlvbiA9IFtcclxuICAgIHsgbmFtZTogJ0xPVycsIHZhbHVlOiAxLCBjbGFzczogJ2xvdycgfSxcclxuICAgIHsgbmFtZTogJ0xPVy1NZWRpdW0nLCB2YWx1ZTogMiwgY2xhc3M6ICdsb3ctbWVkJyB9LFxyXG4gICAgeyBuYW1lOiAnTWVkaXVtLUhpZ2gnLCB2YWx1ZTogMywgY2xhc3M6ICdtZWQtaGlnaCcgfSxcclxuICAgIHsgbmFtZTogJ0hpZ2gnLCB2YWx1ZTogNCwgY2xhc3M6ICdoaWdoJyB9LFxyXG4gIF07XHJcbiAgcmlza1Byb3JpdHkgPSBbXHJcbiAgICB7IG5hbWU6ICdMT1cnLCB2YWx1ZTogMSwgY2xhc3M6ICdsb3cnIH0sXHJcbiAgICB7IG5hbWU6ICdNRURJVU0nLCB2YWx1ZTogMiwgY2xhc3M6ICdsb3ctbWVkJyB9LFxyXG4gICAgeyBuYW1lOiAnSElHSCcsIHZhbHVlOiAzLCBjbGFzczogJ2hpZ2gnIH0sXHJcbiAgXTtcclxuXHJcbiAgc2lkZVNlbGVjdG9yRWxlbWVudHM6IGFueSA9IFtcclxuICAgICdJU1NVRV9DQVRFR09SWScsXHJcbiAgICAnSVNTVUVfUkMnLFxyXG4gICAgJ0lTU1VFX1dITycsXHJcbiAgICAnSVNTVUVfVFlQRScsXHJcbiAgICAnSVNTVUVfQ0MnLFxyXG4gICAgJ0lTU1VFX0ZDQycsXHJcbiAgICAnSVNTVUVfQ09OVFJPTF9SSVNLJyxcclxuICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLFxyXG4gIF07XHJcbiAgc2VsZWN0b3JDb25maWcgPSB7XHJcbiAgICBJU1NVRV9DQVRHT1JZOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgSXNzdWUgQ2F0ZWdvcnknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ0NhdGVnb3J5IHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggSXNzdWUgQ2F0ZWdvcnknLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gQ2F0ZWdvcmllcyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfUkM6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1Jlc3BvbnNpYmlsaXR5IGNlbnRlciBzZWxlY3RlZCcsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFBsdXJhbDogJ1Jlc3BvbnNpYmlsaXR5IGNlbnRlcnMgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gUmVzcG9uc2liaWxpdHkgQ2VudGVycyBGb3VuZCcsXHJcbiAgICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfV0hPOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgVXNlcicsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX1RZUEU6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBJc3N1ZSBUeXBlJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdJc3N1ZSBUeXBlIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggSXNzdWUgVHlwZScsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBJc3N1ZSBUeXBlcyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfQ0M6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCB1c2VyKHMpJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggVXNlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBVc2VycyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfRkNDOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgdXNlcihzKScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBmaWVsZHNXaXRoRXJyb3I6IGFueSA9IFtdO1xyXG4gIC8vIGhpZGRlbkxpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIGFjdGl2ZUZpZWxkOiBzdHJpbmcgPSAnJztcclxuICBhY3RpdmVTZWxlY3Rvcjogc3RyaW5nID0gJyc7XHJcbiAgbGlzdExvYWRpbmdTdGF0dXM6IGFueVtdID0gW107XHJcbiAgY3VycmVudFRpbWU6IHN0cmluZyA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIGlzUkNQcmVTZWxlY3RlZCxpc1JDVmlzaWJsZSBhcmUgdmFyaWFibGUgdXNlZCB0byBzZXQgdGhlIHZpc2liaWxpdHkgb2YgcmMgZmllbGQgYW5kIGVkaXQgYnV0dG9uIGluIGNlcnRhaW4gY29uZGl0aW9uc1xyXG4gICAqL1xyXG4gIGlzUkNQcmVTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzUkNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc1JDTWFuZGF0b3J5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0YUZvckVkaXQhOiBhbnk7XHJcbiAgaXNSaXNrQ29udHJvbFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0Z1dHVyZURhdGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGlzTGlua1Jlc3BvbnNpYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNMaW5rQXNzZXNzbWVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTGlua1JDOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSQ0VkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNMaW5rUXVlc3Rpb25WaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvZ1NlcnZpY2U6IExvZ0lzc3VlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuc2V0VXNlckRldGFpbHMoKTtcclxuICAgIHRoaXMuZmV0Y2hJc3N1ZVR5cGVzKCk7XHJcbiAgICB0aGlzLmZldGNoVXNlckxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hDYXRlZ29yeUxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hSQ0xpc3QoKTtcclxuICAgIHRoaXMuc2V0TGluaygpO1xyXG4gICAgdGhpcy5zZXRSY0VkaXRhYmxlKCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5mZXRjaENvbnRyb2xSaXNrcygpO1xyXG4gICAgdGhpcy5kZWNpZGVSQ21hbmRhdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgZGVjaWRlUkNtYW5kYXRvcnkoKSB7XHJcbiAgICB0aGlzLmlzUkNNYW5kYXRvcnkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICB9XHJcbiAgZ2V0Q3VycmVudFRpbWUoKSB7XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0b2RheS5nZXREYXRlKCkgPT09IG5ldyBEYXRlKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSkuZ2V0RGF0ZSgpXHJcbiAgICApIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRvZGF5LmdldEhvdXJzKCkgPCAxMiAmJlxyXG4gICAgICAgIHRvZGF5LmdldE1pbnV0ZXMoKSA8IDU5ICYmXHJcbiAgICAgICAgdG9kYXkuZ2V0U2Vjb25kcygpIDwgNTlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgdG9kYXkuZ2V0SG91cnMoKSA6IHRvZGF5LmdldEhvdXJzKClcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gYW1gO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBgJHtcclxuICAgICAgICAgIHRvZGF5LmdldEhvdXJzKCkgLSAxMiA8IDEwXHJcbiAgICAgICAgICAgID8gJzAnICsgKHRvZGF5LmdldEhvdXJzKCkgLSAxMilcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRIb3VycygpIC0gMTJcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gcG1gO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJzAwOjAwIGFtJztcclxuICAgIH1cclxuICB9XHJcbiAgc2V0UmNFZGl0YWJsZSgpIHtcclxuICAgIGlmIChcclxuICAgICAgKCFbJ0NPTVBMSUFOQ0VfV09SS1JPT00nLCdBU1NFU1NNRU5UJ10uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKSAmJlxyXG4gICAgICAgIFsnQ1JFQVRFJ10uaW5jbHVkZXModGhpcy5tb2RlKSkgfHxcclxuICAgICAgKFsnRURJVCddLmluY2x1ZGVzKHRoaXMubW9kZSkgJiZcclxuICAgICAgICAhdGhpcy5sb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGgpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1JDRWRpdGFibGUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JDRWRpdGFibGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0TGluaygpIHtcclxuICAgIGlmIChcclxuICAgICAgWydBU1NFU1NNRU5UJ10uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKSB8fFxyXG4gICAgICB0aGlzLmlzTGlua1F1ZXN0aW9uVmlzaWJsZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubGlua1RleHQgPSAnTGlua2VkIFJlc3BvbnNpYmlsaXR5JztcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIFsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSkgfHxcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxpbmtUZXh0ID0gJ0xpbmtlZCBSZXNwb25zaWJpbGl0aWVzJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGlua1RleHQgPSAnTGluayBSZXNwb25zaWJpbGl0aWVzJztcclxuICAgIH1cclxuICB9XHJcbiAgc2V0VXNlckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyRGV0YWlscygpLnVzZXI7XHJcbiAgfVxyXG4gIGZldGNoSXNzdWVUeXBlcygpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMF0gPSBmYWxzZTtcclxuICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5pc3N1ZVR5cGVMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgZmV0Y2hVc2VyTGlzdCgpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRPcmdQZW9wbGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzFdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCA9IHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAgIChlOiBhbnkpID0+IGU/LmNhdGVnb3J5X25hbWUgIT09ICdVbmNhdGVnb3JpemVkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hSQ0xpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLnJjTGlzdCA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRSQygpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbM10gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZFJDKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkICYmXHJcbiAgICAgICh0aGlzLm9wZW5lZEZyb20gPT09ICdDT01QTElBTkNFX1dPUktST09NJyB8fCB0aGlzLm9wZW5lZEZyb20gPT09ICdBU1NFU1NNRU5UJylcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZD8ubGVuZ3RoXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhPy5yY0xpc3QuZmlsdGVyKChlOiBhbnkpID0+XHJcbiAgICAgICAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQuaW5jbHVkZXMoZT8ucmNfaWQpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkICYmXHJcbiAgICAgIFtcclxuICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLnJjTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+IGUucmNfaWQgPT09IHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICAhKHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQgfHwgdGhpcy5pc3N1ZURldGFpbHM/LnJjSWQpICYmXHJcbiAgICAgIFtcclxuICAgICAgICAnQ09NUExJQU5DRV9XT1JLUk9PTScsXHJcbiAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgJ0VYRUNVVEVfQVVESVRfUExBTicsXHJcbiAgICAgIF0uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNSQ1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSQ1Zpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250cm9sUmlza3MoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICB0aGlzLm9wZW5lZEZyb21cclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGlua2FnZShcclxuICAgICAgICB0aGlzLmlzc3VlRGV0YWlscz8uYXVkaXRPYmpJZCxcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rYWdlVHlwZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlua2FnZShhdWRpdElkOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5pc1Jpc2tDb250cm9sTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0Q29udHJvbFJpc2soYXVkaXRJZCwgdHlwZSk/LnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QgPSBbLi4udGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCwgLi4uZGF0YV07XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCA9IHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgKHRoaW5nOiBhbnksIGluZGV4OiBhbnksIHNlbGY6IGFueSkgPT5cclxuICAgICAgICAgICAgaW5kZXggPT09XHJcbiAgICAgICAgICAgIHNlbGYuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgICh0OiBhbnkpID0+XHJcbiAgICAgICAgICAgICAgICB0Lml0ZW1JZCA9PT0gdGhpbmcuaXRlbUlkICYmIHQuaXRlbVR5cGUgPT09IHRoaW5nLml0ZW1UeXBlXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuaXNSaXNrQ29udHJvbExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzUmlza0NvbnRyb2xMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZnVuY3Rpb2ogY2hlY2sgd2VhdGhlciBhbGwgdGhlIHJlcXVpcmVkIGxpc3RzIGFyZSBsb2FkZWRcclxuICAgKiBJZiBsb2FkZWQgaGlkZXMgdGhlIGxvYWRlciBvdGhlcndpc2Ugc2hvd3MgdGhlIGxvYWRlci5cclxuICAgKi9cclxuICBjaGVja0FsbExpc3RMb2FkZWQoKSB7XHJcbiAgICBpZiAodGhpcy5saXN0TG9hZGluZ1N0YXR1cy5pbmNsdWRlcyhmYWxzZSkpIHtcclxuICAgICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgICB0aGlzLmZldGNoSXNzdWVEZXRhaWxzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBlcnJvciBmcm9tIHRoZSBmaWVsZHMgd2l0aCBlcnJvciB0byByZW1vdmUgdGhlIGVycm9yIG1lc3NhZyBmcm9tIHRoZSBVSVxyXG4gICAqIEBwYXJhbSBlcnJvcktleSBlcnJvciBJZGVudGlmaWVyIHVzZWQgdG8gc2hvdyBlcnJvciBpbiBzcGVjaWZpYyBmaWVsZHMuXHJcbiAgICovXHJcbiAgcmVtb3ZlRXJyb3IoZXJyb3JLZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpZWxkc1dpdGhFcnJvci5pbmRleE9mKGVycm9yS2V5KTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMuZmllbGRzV2l0aEVycm9yLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy5kYXRlUGlja2VyPy5hcGk/Lm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9EQVRFX1RJTUUnLCAnSVNTVUVfREFURV9USU1FJyk7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZVBpY2tlcihldnQ6IGFueSkge1xyXG4gICAgaWYgKCFldnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uJGQpIHtcclxuICAgICAgbGV0IG1vbnRoQXJyYXkgPSBbXHJcbiAgICAgICAgJ0phbicsXHJcbiAgICAgICAgJ0ZlYicsXHJcbiAgICAgICAgJ01hcicsXHJcbiAgICAgICAgJ0FwcicsXHJcbiAgICAgICAgJ0p1bicsXHJcbiAgICAgICAgJ0p1bCcsXHJcbiAgICAgICAgJ0F1ZycsXHJcbiAgICAgICAgJ1NlcCcsXHJcbiAgICAgICAgJ09jdCcsXHJcbiAgICAgICAgJ05vdicsXHJcbiAgICAgICAgJ0RlYycsXHJcbiAgICAgIF07XHJcbiAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uJGQpLmdldERhdGUoKTtcclxuICAgICAgY29uc3QgbW9udGhWYWx1ZSA9IG1vbnRoQXJyYXlbbmV3IERhdGUoZXZ0Py5kYXRlPy4kZCkuZ2V0TW9udGgoKV07XHJcbiAgICAgIGNvbnN0IHllYXJWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uJGQpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSBgJHtkYXRlVmFsdWV9ICR7bW9udGhWYWx1ZX0gJHt5ZWFyVmFsdWV9YDtcclxuICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRGF0ZSh0aGlzLmxvZ0lzc3VlRm9ybT8uaXNzdWVEdWVUaW1lLCBldnQ/LmRhdGU/LiRkKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uJGQpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlID0gZXZ0Py5kYXRlPy4kZDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVBpY2tlcj8uYXBpPy5jbG9zZSgpO1xyXG4gICAgdGhpcy5kYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCcnLCAnJyk7XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKGFjdGl2ZUZpZWxkOiBzdHJpbmcsIGFjdGl2ZVNlbGVjdG9yPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFjdGl2ZUZpZWxkID0gYWN0aXZlRmllbGQ7XHJcbiAgICBhY3RpdmVTZWxlY3RvclxyXG4gICAgICA/ICh0aGlzLmFjdGl2ZVNlbGVjdG9yID0gYWN0aXZlU2VsZWN0b3IpXHJcbiAgICAgIDogKHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJyk7XHJcbiAgICBjb25zdCBzbGlkZXJUeXBlID0gW1xyXG4gICAgICAnSVNTVUVfUkMnLFxyXG4gICAgICAnSVNTVUVfQ0FURUdPUlknLFxyXG4gICAgICAnSVNTVUVfVFlQRScsXHJcbiAgICAgICdJU1NVRV9DQycsXHJcbiAgICAgICdJU1NVRV9GQ0MnLFxyXG4gICAgICAnSVNTVUVfV0hPJyxcclxuICAgICAgJ0lTU1VFX0NPTlRST0xfUklTSycsXHJcbiAgICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgXTtcclxuICAgIGlmIChzbGlkZXJUeXBlLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKSkge1xyXG4gICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpZWxkRGVzZWxlY3Rvcih0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJztcclxuICAgIHRoaXMuYWN0aXZlRmllbGQgPSAnJztcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdG9yQWN0aW9uKGV2dDogYW55LCB0eXBlOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9DQVRFR09SWSc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5ID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCxcclxuICAgICAgICAgICdjYXRlZ29yeV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2lzc3VlQ2F0ZWdvcnknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jdXN0b21fdGFncz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCB0YWc6IGFueSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmN1c3RvbV90YWdzLmZvckVhY2goXHJcbiAgICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0YWcucHVzaCh7IG5hbWU6IGVsZW1lbnQsIHZhbHVlOiAnJyB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnID0gdGFnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICAvL1tcImlzc3VlTmFtZVwiLCBcImlzc3VlQ2F0ZWdvcnlcIiwgXCJpc3N1ZVJDXCIsIFwiZW50cnVzdFRvXCIsIFwiaXNzdWVEdWVEYXRlXCIsIFwiaXNzdWVSZWNvbW1lbmRhdGlvblwiXVxyXG4gICAgICBjYXNlICdJU1NVRV9SQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnJjTGlzdCxcclxuICAgICAgICAgICdyY19pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2lzc3VlUkMnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfV0hPJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUbyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUb1swXT8ubXlfbWVtYmVyX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBpZiAoZXZ0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKCdlbnRydXN0VG8nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfVFlQRSc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEuaXNzdWVUeXBlTGlzdCxcclxuICAgICAgICAgICdpc3N1ZV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NDJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2VycyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0ZDQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2VycyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlICdJU1NVRV9DT05UUk9MX1JJU0snOlxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LFxyXG4gICAgICAgICAgJ2l0ZW1JZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmthZ2VUeXBlID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbVR5cGU7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknOiB7XHJcbiAgICAgICAgdGhpcy5nZXRSQ0RhdGEoZXZ0KTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZXNwb25zaWJpbGl0eUxpbmtlZCA9IGV2dDtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlSXRlbSh0eXBlOiBhbnksIGVsZW1lbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NBVEVHT1JZJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnkuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jYXRlZ29yeV9pZCA9PT0gZWxlbWVudC5jYXRlZ29yeV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnkuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1JDJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5yY19pZCA9PT0gZWxlbWVudC5yY19pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1dITyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8uZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5lbXBsb3llZV9pZCA9PT0gZWxlbWVudC5lbXBsb3llZV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUby5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1RZUEUnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uaXNzdWVfaWQgPT09IGVsZW1lbnQuaXNzdWVfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NDJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2Vycy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2VtYWlsID09PSBlbGVtZW50LmVtcGxveWVlX2VtYWlsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9GQ0MnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5lbXBsb3llZV9lbWFpbCA9PT0gZWxlbWVudC5lbXBsb3llZV9lbWFpbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmZhaWx1cmVDQ1VzZXJzLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9DT05UUk9MX1JJU0snOlxyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uaXRlbUlkID09PSBlbGVtZW50Lml0ZW1JZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLnJlc3BvbnNpYmlsaXR5TGlua2VkLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uUmVwb3J0SWQgPT09IGVsZW1lbnQuUmVwb3J0SWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVzcG9uc2liaWxpdHlMaW5rZWQuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0UkNEYXRhKHRoaXMubG9nSXNzdWVGb3JtLnJlc3BvbnNpYmlsaXR5TGlua2VkKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmNJZChyYzogYW55KSB7XHJcbiAgICBsZXQgcmNJZCA9IHJjPy5yZXNwb25zaWJpbGl0eUNlbnRlckFycj8ubGVuZ3RoXHJcbiAgICAgID8gcmM/LnJlc3BvbnNpYmlsaXR5Q2VudGVyQXJyXHJcbiAgICAgIDogcmM/LnJjX2lkX2Fycj8ubGVuZ3RoXHJcbiAgICAgID8gcmM/LnJjX2lkX2FyclxyXG4gICAgICA6IFtdO1xyXG4gICAgaWYgKHJjPy5yY19pZCkge1xyXG4gICAgICByY0lkID0gWy4uLnJjSWQsIHJjPy5yY19pZF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmNJZDtcclxuICB9XHJcblxyXG4gIGdldFJDRGF0YShldnQ6IGFueSkge1xyXG4gICAgbGV0IHJjU2VsZWN0ZWQ6IGFueVtdID0gW107XHJcbiAgICBpZiAodGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZCkge1xyXG4gICAgICBldnQgPSBbLi4uZXZ0LCB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkXTtcclxuICAgIH1cclxuICAgIGV2dC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgbGV0IHJjSWQ6IGFueVtdID0gdGhpcy5nZXRSY0lkKGVsZW1lbnQpO1xyXG4gICAgICBpZiAodGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3UmNJZHMgPSB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkLmZpbHRlcihcclxuICAgICAgICAgIChlbDogYW55KSA9PiAhcmNJZC5pbmNsdWRlcyhlbClcclxuICAgICAgICApO1xyXG4gICAgICAgIHJjSWQgPSBbLi4ucmNJZCwgLi4ubmV3UmNJZHNdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChyY0lkPy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBuZXdSY1NlbGVjdGVkID0gcmNJZFxyXG4gICAgICAgICAgLm1hcCgocmNJZDogYW55KSA9PlxyXG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhPy5yY0xpc3QuZmluZCgoZWw6IGFueSkgPT4gZWw/LnJjX2lkID09PSByY0lkKVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgKHJjRGF0YSkgPT5cclxuICAgICAgICAgICAgICByY0RhdGEgJiZcclxuICAgICAgICAgICAgICAhcmNTZWxlY3RlZC5zb21lKFxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkRWw6IGFueSkgPT4gc2VsZWN0ZWRFbD8ucmNfaWQgPT09IHJjRGF0YT8ucmNfaWRcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIHJjU2VsZWN0ZWQgPSBbLi4ucmNTZWxlY3RlZCwgLi4ubmV3UmNTZWxlY3RlZF07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHJjU2VsZWN0ZWQ7XHJcbiAgfVxyXG5cclxuICBhc3NpZ25NeXNlbGYoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5yZW1vdmVFcnJvcignZW50cnVzdFRvJyk7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8gPSBbXTtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8gPSB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAoZW1wbGlzdDogYW55KSA9PiBlbXBsaXN0Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRFeGNlcHRpb24odHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5leGNlcHRpb25UeXBlID0gdHlwZTtcclxuICB9XHJcbiAgc2V0RXZpZGVuY2UodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5ldmlkZW5jZVJlcXVpcmVkID0gdHlwZTtcclxuICB9XHJcbiAgc2V0SXNzdWVUeXBlKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlID0gdHlwZTtcclxuICB9XHJcblxyXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1tldmVudC5jb2RlXSA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlkVG9BcnJheShzZWxlY3RlZEl0ZW1zOiBhbnksIGxpc3RJdGVtczogYW55LCBmaWx0ZXJrZXk6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZEl0ZW1zO1xyXG4gICAgY29uc3QgbGlzdCA9IGxpc3RJdGVtcztcclxuICAgIGNvbnN0IGtleSA9IGZpbHRlcmtleTtcclxuICAgIGNvbnN0IHggPSBsaXN0LmZpbHRlcigoZWw6IGFueSkgPT4gc2VsZWN0ZWQuaW5jbHVkZXMoZWxba2V5XSkpO1xyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG4gIC8vL0NvZGUgYmV0d2VlbiA1MDMgdG8gNjA4IGNhbiBiZSBvcHRpbWl6ZWQgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uXHJcbiAgc2VsZWN0RmlsZSh0eXBlOiBzdHJpbmcsIGZpbGVzOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1tpXS5maWxlLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1swXS5wdXNoKG5hbWUpO1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGZpbGVzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrWzFdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXNbaV0uZmlsZSwgdHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbMl0ucHVzaChuYW1lKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCB0cmFja0luZGV4ID0gMDtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICB0cmFja0luZGV4ID0gMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIHRyYWNrSW5kZXggPSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgdHJhY2tJbmRleCA9IDI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcbiAgICBjb25zdCBkZXN0aW5hdGlvblN0cmluZyA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uSWQoKS50b1N0cmluZygpO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLnVwbG9hZEZpbGVzKGZvcm1EYXRhLCBkZXN0aW5hdGlvblN0cmluZyArICcvJykuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLmluZGV4T2YoZmlsZT8ubmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5pbmRleE9mKGZpbGUubmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZmlsZUluZGV4ID0gLTE7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8uc3BsaWNlKGZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICBmaWxlSW5kZXggPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/LnNwbGljZShmaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChjdXJyZW50RmlsZXM6IGFueSkgPT4gY3VycmVudEZpbGVzLm9yZ19maWxlID09PSBmaWxlLm9yZ19maWxlXHJcbiAgICAgICAgICApID8/IC0xO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkSXNzdWUoKSB7XHJcbiAgICBjb25zdCBmb3JtID0gY2xvbmVEZWVwKHRoaXMubG9nSXNzdWVGb3JtKTtcclxuICAgIGlmIChmb3JtLmlzQXNzaWduVG9NeXNlbGYpIHtcclxuICAgICAgZm9ybS5lbnRydXN0VG8gPSB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAoZW1wbGlzdDogYW55KSA9PiBlbXBsaXN0Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzV2l0aEVycm9yID0gW107XHJcbiAgICB0aGlzLmZpZWxkc1dpdGhFcnJvciA9IHRoaXMubG9nU2VydmljZS52YWxpZGF0ZShcclxuICAgICAgZm9ybSxcclxuICAgICAgdGhpcy5vcGVuZWRGcm9tLFxyXG4gICAgICB0aGlzLmlzUkNNYW5kYXRvcnlcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5maWVsZHNXaXRoRXJyb3IubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBQQVlMT0FEID0gdGhpcy5sb2dTZXJ2aWNlLnBheWxvYWRCdWlsZGVyKFxyXG4gICAgICBmb3JtLFxyXG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnQ1JFQVRFJykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgWydDT01QTElBTkNFX1dPUktST09NJywgJ0FTU0VTU01FTlQnXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pICYmXHJcbiAgICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlJZFxyXG4gICAgICApIHtcclxuICAgICAgICBQQVlMT0FELnJlc3BvbnNpYmlsaXRpZXNfTGlua2VkLnB1c2goXHJcbiAgICAgICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eUlkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBQQVlMT0FELmxpbmtlZF9hc3Nlc3NtZW50X2lzc3Vlcy5kdWVfZGF0ZV9pZCA9XHJcbiAgICAgICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5kdWVEYXRlSWQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIFsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSkgJiZcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbj8uYXNzZXNzbWVudElkXHJcbiAgICAgICkge1xyXG4gICAgICAgIFBBWUxPQUQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzLmFzc2Vzc21lbnRfaWQgPVxyXG4gICAgICAgICAgdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb24/LmFzc2Vzc21lbnRJZDtcclxuICAgICAgICBQQVlMT0FELmxpbmtlZF9hc3Nlc3NtZW50X2lzc3Vlcy5xdWVzdGlvbl9pZCA9XHJcbiAgICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbj8ucXVlc3Rpb25JZDtcclxuICAgICAgICBQQVlMT0FELmxpbmtlZF9hc3Nlc3NtZW50X2lzc3Vlcy5hdWRpdGVlX2lkID1cclxuICAgICAgICAgIHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uPy5hdWRpdGVlSWQ7XHJcbiAgICAgICAgUEFZTE9BRC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMucmVzcF9pZCA9XHJcbiAgICAgICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU9iamVjdElkO1xyXG4gICAgICAgIFBBWUxPQUQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzLmR1ZV9kYXRlX2lkID1cclxuICAgICAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGE/LmR1ZURhdGVJZDtcclxuICAgICAgICBQQVlMT0FELnNvdXJjZSA9IHRoaXMuc291cmNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCAnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMoXHJcbiAgICAgICAgICB0aGlzLm9wZW5lZEZyb21cclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rYWdlVHlwZSAmJlxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrLmxlbmd0aCA+IDBcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgWydSSVNLJywgJ1JFU1BPTlNJQklMSVRZJ10uaW5jbHVkZXModGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmthZ2VUeXBlKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3Quc291cmNlX2lkID1cclxuICAgICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1JZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIFtcclxuICAgICAgICAgICdBVURJVF9XT1JLUk9PTScsXHJcbiAgICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgICBdLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNzdWVEZXRhaWxzLmF1ZGl0UGxhbklkKSB7XHJcbiAgICAgICAgICBQQVlMT0FELmxpbmthZ2Vfb2JqZWN0LnNvdXJjZV9pZCA9IHRoaXMuaXNzdWVEZXRhaWxzLmF1ZGl0UGxhbklkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgICF0aGlzLnZhbGlkYXRlRGF0ZShcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlVGltZSxcclxuICAgICAgICAgIG1vbWVudCh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUsICdERCBNTU0gWVlZWScpPy50b0RhdGUoKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIFBBWUxPQUQuSXNzdWVMaW5rYWdlID0gdGhpcy5kYXRhRm9yRWRpdD8ubGlua2FnZV9vYmplY3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5sb2dTZXJ2aWNlLnVwZGF0ZUlzc3VlKFBBWUxPQUQsIHRoaXMuaXNzdWVJZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5zbWlsZXlNZXNzYWdlID0gYFRoZSBpc3N1ZSBoYXMgYmVlbiB1cGRhdGVkLmA7XHJcbiAgICAgICAgICB0aGlzLmlzc3VlRGF0YSA9IHJlcztcclxuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcclxuICAgICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXHJcbiAgICAgICAgICAgICdhbGVydCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdDUkVBVEUnIHx8IHRoaXMubW9kZSA9PT0gJycgfHwgIXRoaXMubW9kZSkge1xyXG4gICAgICB0aGlzLmxvZ1NlcnZpY2UuY3JlYXRlSXNzdWUoUEFZTE9BRCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc3N1ZURhdGEgPSByZXM7XHJcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXHJcbiAgICAgICAgICAgICdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nLFxyXG4gICAgICAgICAgICAnYWxlcnQnXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2xvc2VTbWlsZXkoZXZ0PzogYW55KSB7XHJcbiAgICB0aGlzLnJlc2V0SXNzdWVGb3JtKCk7XHJcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgIHRoaXMuY2xvc2VXb3JrRmxvdyh0aGlzLmlzc3VlRGF0YSwgZmFsc2UpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDbG9zZXMgd29ya2Zsb3cgZW5naW5lXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqIEBwYXJhbSBjb25maXJtXHJcbiAgICovXHJcbiAgY2xvc2VXb3JrRmxvdyhldnQ6IGFueSwgY29uZmlybTogYW55KSB7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dCwgY29uZmlybSB9KTtcclxuICB9XHJcbiAgYWN0aW9uKGV2dDogYW55KSB7XHJcbiAgICBpZiAoZXZ0ID09PSAnYWRkTW9yZScpIHtcclxuICAgICAgdGhpcy5yZXNldElzc3VlRm9ybSgpO1xyXG4gICAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgICAvLyB0aGlzLmNsb3NlV29ya0Zsb3codGhpcy5pc3N1ZURhdGEsIGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoZXZ0ID09PSAndmlld0lzc3VlJykge1xyXG4gICAgICB0aGlzLnZpZXdJc3N1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmlld0lzc3VlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsICs9ICcvaXNzdWUvaXNzdWUtd29ya3Jvb20vJyArIHRoaXMuaXNzdWVEYXRhPy5faWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgKz0gJy9hdWRpdC9pc3N1ZS9pc3N1ZS13b3Jrcm9vbS8nICsgdGhpcy5pc3N1ZURhdGE/Ll9pZDtcclxuICAgIH1cclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUG9wdWxhdGUgdGhlIHRpY2ttYXJrIG9mIG9wdGlvbmFsIGZpZWxkc1xyXG4gICAqL1xyXG4gIHBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKSB7XHJcbiAgICBjb25zdCBhY3RpdmF0ZWRPcHRpb25zID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XHJcbiAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNba2V5XSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGFjdGl2YXRlZE9wdGlvbnMucHVzaChrZXkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZldGNocyBpc3N1ZSBkZXRhaWxzIHdoZW4gaW4gZWRpdCBtb2RlIGJhc2VkIG9uIHRoZSBpbnB1dCBpZCBwYXNzZWRcclxuICAgKi9cclxuICBmZXRjaElzc3VlRGV0YWlscygpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRJc3N1ZURldGFpbHModGhpcy5pc3N1ZUlkKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRm9ybShkYXRhKTtcclxuICAgICAgdGhpcy5zZXRSY0VkaXRhYmxlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUG9wdWxhdGVzIHRoZSBpc3N1ZSBmb3JtIHdoZW4gaW4gZWRpdCBtb2RlXHJcbiAgICogQHBhcmFtIGlzc3VlRGF0YSBpc3N1ZSBkYXRhIGZldGNoZWQgZnJvbSBBUElcclxuICAgKi9cclxuICBhc3luYyBwb3B1bGF0ZUZvcm0oaXNzdWVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZGF0YUZvckVkaXQgPSBpc3N1ZURhdGE7XHJcbiAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgIGlmIChpc3N1ZURhdGE/LmxpbmthZ2VfcmVzcG9uc2liaWxpdHlfZGV0YWlscz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaXNMaW5rUmVzcG9uc2liaWxpdHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YT8ucmNfaWRzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pc0xpbmtSQyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYoaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHM/Lmxlbmd0aCl7XHJcbiAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGEgPSB7XHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlJZDogaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHNbMF0/LlJlcG9ydElkLFxyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5TmFtZTogaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHNbMF0/LlJlcG9ydE5hbWUsXHJcbiAgICAgICAgcmNJZDogaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHNbMF0/LnJjX2lkX2FycixcclxuICAgICAgICByZXNwb25zaWJpbGl0eU9iamVjdElkOiBpc3N1ZURhdGE/LmxpbmthZ2VfcmVzcG9uc2liaWxpdHlfZGV0YWlsc1swXT8uc291cmNlX29iamVjdF9pZCxcclxuICAgICAgICBkdWVEYXRlSWQ6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0xpbmtRdWVzdGlvblZpc2libGUgPSBpc3N1ZURhdGE/LmxpbmtlZF9hc3Nlc3NtZW50X3F1ZXN0aW9uPy5yZXNwb25zZVxyXG4gICAgICA/Lm5hbWVcclxuICAgICAgPyB0cnVlXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgICBjb25zdCBpc3N1ZUR1ZURhdGUgPSBpc3N1ZURhdGE/LmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZVxyXG4gICAgICAuc3BsaXQoJy0nKVxyXG4gICAgICAubWFwKE51bWJlcik7XHJcbiAgICAgIGlmKGlzc3VlRGF0YT8ubGlua2VkX2Fzc2Vzc21lbnRfcXVlc3Rpb24pIHtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbiA9IHtcclxuICAgICAgICAgIHF1ZXN0aW9uTmFtZTpcclxuICAgICAgICAgICAgaXNzdWVEYXRhPy5saW5rZWRfYXNzZXNzbWVudF9xdWVzdGlvbj8ucmVzcG9uc2U/LnRpdGxlID8/ICcnLFxyXG4gICAgICAgICAgcXVlc3Rpb25JZDogaXNzdWVEYXRhPy5saW5rZWRfYXNzZXNzbWVudF9xdWVzdGlvbj8ucmVzcG9uc2U/Lm5hbWUgPz8gJycsXHJcbiAgICAgICAgICBxdWVzdGlvbk51bWJlcjpcclxuICAgICAgICAgICAgaXNzdWVEYXRhPy5saW5rZWRfYXNzZXNzbWVudF9xdWVzdGlvbj8ucmVzcG9uc2U/LnF1ZXN0aW9uX251bWJlciA/PyAnJyxcclxuICAgICAgICAgIGFzc2Vzc21lbnRJZDogaXNzdWVEYXRhPy5saW5rZWRfYXNzZXNzbWVudF9xdWVzdGlvbj8uYXNzZXNzbWVudF9pZCA/PyAnJyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybSA9IHtcclxuICAgICAgaXNzdWVOYW1lOiBpc3N1ZURhdGE/LnRpdGxlID8/ICcnLFxyXG4gICAgICBldmlkZW5jZVJlcXVpcmVkOiBpc3N1ZURhdGE/LmV2aWRlbmNlPy5ldmlkZW5jZV9mbGFnID8/IDAsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb246IGlzc3VlRGF0YT8uZGVzY3JpcHRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5kZXNjcmlwdGlvblswXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM6IGlzc3VlRGF0YT8uZGVzY3JpcHRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5kZXNjcmlwdGlvblswXT8uYXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBpc3N1ZUNhdGVnb3J5OiBpc3N1ZURhdGE/LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhPy5jYXRlZ29yeUxpc3Q/LmZpbHRlcihcclxuICAgICAgICAgICAgKGU6IGFueSkgPT4gZT8uY2F0ZWdvcnlfaWQgPT09IGlzc3VlRGF0YT8uY2F0ZWdvcnlfaWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBpc3N1ZUN1c3RvbVRhZzogaXNzdWVEYXRhPy5jdXN0b21fdGFncyA/PyBbXSxcclxuICAgICAgaXNzdWVSQzogaXNzdWVEYXRhPy5yY19pZHM/Lmxlbmd0aFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YT8ucmNMaXN0Py5maWx0ZXIoKGU6IGFueSkgPT5cclxuICAgICAgICAgICAgaXNzdWVEYXRhPy5yY19pZHM/LmluY2x1ZGVzKGU/LnJjX2lkKVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIHJlc3BvbnNpYmlsaXR5TGlua2VkOiBpc3N1ZURhdGE/LmxpbmthZ2VfcmVzcG9uc2liaWxpdHlfZGV0YWlscz8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmxpbmthZ2VfcmVzcG9uc2liaWxpdHlfZGV0YWlsc1xyXG4gICAgICAgIDogW10sXHJcbiAgICAgIHJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzOiBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb25bMF0/LmF0dGFjaG1lbnRzXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBpc0Fzc2lnblRvTXlzZWxmOlxyXG4gICAgICAgIGlzc3VlRGF0YT8uYXNzaWduZWVfaWQgPT09IHRoaXMuY3VycmVudFVzZXI/LmlkID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBlbnRydXN0VG86IHRoaXMubGlzdERhdGE/LnVzZXJMaXN0Py5maWx0ZXIoXHJcbiAgICAgICAgKGU6IGFueSkgPT4gZT8ubXlfbWVtYmVyX2lkID09PSBpc3N1ZURhdGE/LmFzc2lnbmVlX2lkXHJcbiAgICAgICksXHJcbiAgICAgIGlzc3VlRHVlRGF0ZTogaXNzdWVEYXRhPy5mcmVxdWVuY3lfZGV0YWlscz8uZnJlcXVlbmN5X2RhdGVcclxuICAgICAgICA/IG1vbWVudChcclxuICAgICAgICAgICAgYCR7aXNzdWVEdWVEYXRlWzBdfS0ke2lzc3VlRHVlRGF0ZVsxXX0tJHtpc3N1ZUR1ZURhdGVbMl19YCxcclxuICAgICAgICAgICAgJ1lZWVktTU0tREQnXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiB0aGlzLmxvZ1NlcnZpY2UuY29udmVydEZyb20yNFRvMTJGb3JtYXQoXHJcbiAgICAgICAgaXNzdWVEYXRhPy5mcmVxdWVuY3lfZGV0YWlscz8uZnJlcXVlbmN5X3RpbWVcclxuICAgICAgKSxcclxuICAgICAgZXhjZXB0aW9uVHlwZTogaXNzdWVEYXRhPy5leGNlcHRpb25fdHlwZSA/PyAxLFxyXG4gICAgICBpc3N1ZVJpc2tSYXRpbmc6IGlzc3VlRGF0YT8ucmlza19jbGFzcyA/PyAxLFxyXG4gICAgICBpc3N1ZVByaW9yaXR5OiBpc3N1ZURhdGE/LnByaW9yaXR5ID8/IDEsXHJcbiAgICAgIGlzc3VlUmVjb21tZW5kYXRpb246IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvblswXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlQXNzb2NpYXRlZFJpc2s6IGlzc3VlRGF0YT8uYXNzb2NpYXRlZF9yaXNrPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uYXNzb2NpYXRlZF9yaXNrWzBdPy50ZXh0XHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVDQ1VzZXJzOiBpc3N1ZURhdGEub3ZlcnNlZXI/LmNjX2VtYWlsLmxlbmd0aFxyXG4gICAgICAgID8gYXdhaXQgdGhpcy5nZW5lcmF0ZU92ZXJzZWVyTGlzdChcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YT8udXNlckxpc3QsXHJcbiAgICAgICAgICAgIGlzc3VlRGF0YT8ub3ZlcnNlZXI/LmNjX2VtYWlsXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgZmFpbHVyZUNDVXNlcnM6IGlzc3VlRGF0YT8ub3ZlcnNlZXI/LmZhaWx1cmVfY2NfZW1haWwubGVuZ3RoXHJcbiAgICAgICAgPyBhd2FpdCB0aGlzLmdlbmVyYXRlT3ZlcnNlZXJMaXN0KFxyXG4gICAgICAgICAgICB0aGlzLmxpc3REYXRhPy51c2VyTGlzdCxcclxuICAgICAgICAgICAgaXNzdWVEYXRhPy5vdmVyc2Vlcj8uZmFpbHVyZV9jY19lbWFpbFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGxpbmtlZENvbnRyb2xSaXNrOiBbXSxcclxuICAgICAgbGlua2FnZVR5cGU6ICdSRVNQT05TSUJJTElUWScsXHJcbiAgICAgIGlzc3VlVHlwZTogaXNzdWVEYXRhPy5pc3N1ZVR5cGUgPyBpc3N1ZURhdGE/Lmlzc3VlVHlwZSA6ICdpc3N1ZScsXHJcbiAgICAgIHRpdGxlOiBpc3N1ZURhdGE/LmxpbmtlZF9hc3Nlc3NtZW50X3F1ZXN0aW9uPy5yZXNwb25zZT8udGl0bGUgPz8gJycsXHJcbiAgICAgIHF1ZXN0aW9uTnVtYmVyOlxyXG4gICAgICAgIGlzc3VlRGF0YT8ubGlua2VkX2Fzc2Vzc21lbnRfcXVlc3Rpb24/LnJlc3BvbnNlPy5xdWVzdGlvbl9udW1iZXIgPz8gJycsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkM/Lmxlbmd0aCA+IDBcclxuICAgICAgICA/ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpXHJcbiAgICAgICAgOiAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgICAgIGlzc3VlRGF0YS5saW5rYWdlX29iamVjdD8uc291cmNlID09PSAnR0xPQkFMJyAmJiBpc3N1ZURhdGE/LnJjX2lkXHJcbiAgICAgICAgPyAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSlcclxuICAgICAgICA6ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRPcHRpb25hbEZpZWxkKGlzc3VlRGF0YSk7XHJcbiAgICB0aGlzLnNldExpbmsoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZpc2liaWxpdHkgb2Ygb3B0aW9uYWwgZmllbGRzXHJcbiAgICogQHBhcmFtIGlzc3VlRGF0YSAgaXNzdWUgZGF0YSBmZXRjaGVkIGZyb20gQVBJXHJcbiAgICovXHJcbiAgc2V0T3B0aW9uYWxGaWVsZChpc3N1ZURhdGE6IGFueSkge1xyXG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzID0ge1xyXG4gICAgICBFWENFUFRJT05fVFlQRTogaXNzdWVEYXRhLmV4Y2VwdGlvbl90eXBlID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBFVklERU5DRTogaXNzdWVEYXRhLmV2aWRlbmNlLmV2aWRlbmNlX2ZsYWcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIFBSSU9SSVRZOiBpc3N1ZURhdGEucHJpb3JpdHkgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIElTU1VFX1RZUEU6IGZhbHNlLFxyXG4gICAgICBBU1NPQ0lBVEVEX1JJU0tTOiBpc3N1ZURhdGEuYXNzb2NpYXRlZF9yaXNrLmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmFzc29jaWF0ZWRfcmlza1swXS50ZXh0Lmxlbmd0aFxyXG4gICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICA6IGZhbHNlXHJcbiAgICAgICAgOiBmYWxzZSxcclxuICAgICAgT1ZFUlNJR0hUOlxyXG4gICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlci5jY19lbWFpbC5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyLmZhaWx1cmVfY2NfZW1haWwubGVuZ3RoID4gMFxyXG4gICAgICAgICAgPyB0cnVlXHJcbiAgICAgICAgICA6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgbGlzdCBvZiBzZWxlY3RlZCBvdmVyc2VlclxyXG4gICAqIEBwYXJhbSBhbGxVc2VyTGlzdCBsaXN0IG9mIGFsbCB1c2VycyBpbiB0aGUgb3JnYW56YXRpb25cclxuICAgKiBAcGFyYW0gb3ZlcnNlZXJMaXN0ICBsaXQgb2YgdGhlIG92ZXJzZWVyIHRoYXQgbmVlZHMgdG8gYmUgZmlsdGVyZWRcclxuICAgKiBAcmV0dXJucyAgbGlzdCBvZiBhcnJheSBjb250YWluaW5nIHRoZSB1c2VycyBvYmplY3RzXHJcbiAgICovXHJcbiAgZ2VuZXJhdGVPdmVyc2Vlckxpc3QoYWxsVXNlckxpc3Q6IGFueSwgb3ZlcnNlZXJMaXN0OiBhbnkpIHtcclxuICAgIHJldHVybiBvdmVyc2Vlckxpc3QubWFwKCh1c2VyOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgZm91bmRVc2VyID0gYWxsVXNlckxpc3QuZmluZChcclxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Lm15X21lbWJlcl9pZCA9PT0gdXNlci5tZW1iZXJfaWRcclxuICAgICAgKTtcclxuICAgICAgaWYgKGZvdW5kVXNlcikge1xyXG4gICAgICAgIHJldHVybiBmb3VuZFVzZXI7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXNldHMgaXNzdWUgZm9ybVxyXG4gICAqL1xyXG4gIHJlc2V0SXNzdWVGb3JtKCkge1xyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0gPSB7XHJcbiAgICAgIGlzc3VlTmFtZTogJycsXHJcbiAgICAgIGV2aWRlbmNlUmVxdWlyZWQ6IDAsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb246ICcnLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBbXSxcclxuICAgICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICAgIGlzc3VlQ2F0ZWdvcnk6IFtdLFxyXG4gICAgICBpc3N1ZUN1c3RvbVRhZzogW10sXHJcbiAgICAgIGlzc3VlUkM6IFtdLFxyXG4gICAgICBpc3N1ZVR5cGU6ICdpc3N1ZScsXHJcbiAgICAgIGlzQXNzaWduVG9NeXNlbGY6IGZhbHNlLFxyXG4gICAgICBlbnRydXN0VG86IFtdLFxyXG4gICAgICBpc3N1ZUR1ZURhdGU6ICcnLFxyXG4gICAgICBpc3N1ZUR1ZVRpbWU6IERFRkFVTFRfVElNRSxcclxuICAgICAgZXhjZXB0aW9uVHlwZTogMSxcclxuICAgICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgICBpc3N1ZVByaW9yaXR5OiAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiAnJyxcclxuICAgICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogW10sXHJcbiAgICAgIGZhaWx1cmVDQ1VzZXJzOiBbXSxcclxuICAgICAgcmVzcG9uc2liaWxpdHlMaW5rZWQ6IFtdLFxyXG4gICAgfTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cykpIHtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2tleV0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMuc21pbGV5TWVzc2FnZSA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQuYDtcclxuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5tb2RlQ2hhbmdlLmVtaXQodGhpcy5tb2RlKTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFJDKCk7XHJcbiAgfVxyXG4gIGNoZWNrRGVzY3JpcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbiA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gPSAnJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMudmFsaWRhdGVEYXRlKGV2ZW50LnNlbGVjdGVkVmFsdWUsIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWUgPSBldmVudC5zZWxlY3RlZFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVEYXRlKHRpbWU6IHN0cmluZywgZGF0ZVN0cmluZzogYW55KSB7XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlKSB7XHJcbiAgICAgIGNvbnN0IGlzTW9tZW50ID0gbW9tZW50LmlzTW9tZW50KGRhdGVTdHJpbmcuZ2V0VGltZSgpKTtcclxuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShcclxuICAgICAgICBpc01vbWVudCA/IGRhdGVTdHJpbmc/LmRhdGU/LiRkIDogZGF0ZVN0cmluZy5nZXRUaW1lKClcclxuICAgICAgKTtcclxuICAgICAgY29uc3QgaXNzdWVEdWVEYXRlID0gY3VycmVudERhdGUudG9EYXRlU3RyaW5nKCkuc3BsaXQoJyAnKTtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbW9tZW50KFxyXG4gICAgICAgIGAke2lzc3VlRHVlRGF0ZVsxXX0tJHtpc3N1ZUR1ZURhdGVbMl19LSR7aXNzdWVEdWVEYXRlWzNdfSAke3RpbWV9YCxcclxuICAgICAgICAnTU1NLURELVlZWVkgSEg6bW0gYSdcclxuICAgICAgKS51bml4KCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZERhdGUgKiAxMDAwIDwgRGF0ZS5ub3coKSkge1xyXG4gICAgICAgIHRoaXMuaXNGdXR1cmVEYXRlID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRnV0dXJlRGF0ZSA9IHRydWU7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCBnZXREYXRlVmFsaWRhdGlvbk1lc3NhZ2UoKSB7XHJcbiAgICByZXR1cm4gJ1BsZWFzZSBzZXQgYSBmdXR1cmUgZGF0ZS4nO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIGRvY3VtZW50Q2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0ZVBpY2tlck9iamVjdCA9IHtcclxuICAgICAgZXZlbnQgOiBldmVudCxcclxuICAgICAgY2xhc3MgOiAnbWF4LXRpbWUnLFxyXG4gICAgICBwb3B1cCA6IHRoaXMuZGF0ZVBpY2tlclBvcFVwLFxyXG4gICAgICBjb21wb25lbnQgOiB0aGlzLmRhdGVQaWNrZXIsXHJcbiAgICAgIG92ZXJsYXkgOiB0aGlzLmRhdGVQaWNrZXJPdmVybGF5XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbW1vblNlcnZpY2UuaGFuZGxlRG9jdW1lbnRDbGljayhcclxuICAgICAgZGF0ZVBpY2tlck9iamVjdFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLSA8cD5sb2ctYW4taXNzdWUgd29ya3MhPC9wPiAtLT5cclxuPGRpdiBjbGFzcz1cImxvZy1hbi1pc3N1ZVwiICpuZ0lmPVwiIXNob3dTbWlsZXlcIj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJcclxuICAgICAgICAoWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHxcclxuICAgICAgICAgIGlzTGlua1Jlc3BvbnNpYmlsaXR5KSAmJlxyXG4gICAgICAgICFpc0xpbmtRdWVzdGlvblZpc2libGVcclxuICAgICAgXCJcclxuICAgICAgY2xhc3M9XCJsZWZ0XCJcclxuICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiZmFsc2VcIlxyXG4gICAgPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2xpbmstaXRlbXMuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJsaW5rX3Jlc3BvbnNpYmlsaXRpZXNcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoID09PSAwICYmXHJcbiAgICAgICAgICAgICFyZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlOYW1lKSB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgKFsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pIHx8XHJcbiAgICAgICAgICBpc0xpbmtSZXNwb25zaWJpbGl0eSkgJiZcclxuICAgICAgICAhaXNMaW5rUXVlc3Rpb25WaXNpYmxlXHJcbiAgICAgIFwiXHJcbiAgICAgIGNsYXNzPVwicmlnaHRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPnt7IGxpbmtUZXh0IH19XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKFxyXG4gICAgICAgICAgICAgICAgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScsXHJcbiAgICAgICAgICAgICAgICAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJ1xyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgTGluayBNb3JlIFJlc3BvbnNpYmlsaXRpZXNcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB0byB0aGlzIGlzc3VlXCJcclxuICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiZcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcihcclxuICAgICAgICAgICAgICAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJyxcclxuICAgICAgICAgICAgICAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJ1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICBbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGhcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiZcclxuICAgICAgICAgICAgICAgIHJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWVcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0IGZ1bGwtd2lkdGhcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyByZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlOYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgIGRlbGV0ZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICAgICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkWzBdXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAhWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiZcclxuICAgICAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWRbMF0/LlJlcG9ydE5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkWzBdPy5SZXBvcnROYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAoWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiZcclxuICAgICAgICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoKSB8fFxyXG4gICAgICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoID4gMVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImxpbmtSZXNwLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgK3t7XHJcbiAgICAgICAgICAgICAgICAhW1wiQ09NUExJQU5DRV9XT1JLUk9PTVwiXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVxyXG4gICAgICAgICAgICAgICAgICA/IGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgICAgOiBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGhcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJyAmJlxyXG4gICAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aFxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoXHJcbiAgICAgICAgICAgICAgICAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJyxcclxuICAgICAgICAgICAgICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLXBvcG92ZXIgI2xpbmtSZXNwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3Agb2YgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZFxyXG4gICAgICAgICAgICAgICAgICB8IHNsaWNlXHJcbiAgICAgICAgICAgICAgICAgICAgOiAoIVsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pID8gMSA6IDApXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLCByZXNwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgcmVzcD8uUmVwb3J0TmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJbJ0FTU0VTU01FTlQnXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSB8fCBpc0xpbmtRdWVzdGlvblZpc2libGVcIlxyXG4gICAgICBjbGFzcz1cImxlZnRcIlxyXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJmYWxzZVwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1jb250cm9scy5zdmdcIlxyXG4gICAgICAgIGFsdD1cImxpbmtfcmVzcG9uc2liaWxpdHlcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoID09PSAwICYmXHJcbiAgICAgICAgICAgICFyZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlOYW1lKSB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdMSU5LX1JFU1BPTlNJQklMSVRZJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIlsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKG9wZW5lZEZyb20pIHx8IGlzTGlua1F1ZXN0aW9uVmlzaWJsZVwiXHJcbiAgICAgIGNsYXNzPVwicmlnaHRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57eyBsaW5rVGV4dCB9fTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKG9wZW5lZEZyb20pIHx8IGlzTGlua1F1ZXN0aW9uVmlzaWJsZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgKFsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKG9wZW5lZEZyb20pICYmXHJcbiAgICAgICAgICAgICAgICAgIHJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWUpIHx8XHJcbiAgICAgICAgICAgICAgICBpc0xpbmtRdWVzdGlvblZpc2libGVcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0IGZ1bGwtd2lkdGhcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyByZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlOYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIlsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKG9wZW5lZEZyb20pIHx8IGlzTGlua1F1ZXN0aW9uVmlzaWJsZVwiXHJcbiAgICAgIGNsYXNzPVwibGVmdFwiXHJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwibGlua19hc3Nlc3NtZW50X3F1ZXN0aW9uXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgIWFzc2Vzc21lbnRRdWVzdGlvbj8ucXVlc3Rpb25OYW1lIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0xJTktfQVNTRVNTTUVOVF9RVUVTVElPTidcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgKm5nSWY9XCJpc0xpbmtRdWVzdGlvblZpc2libGUgfHwgWydBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSlcIlxyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiWydBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHwgaXNMaW5rUXVlc3Rpb25WaXNpYmxlXCJcclxuICAgICAgY2xhc3M9XCJyaWdodFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkxpbmtlZCBBc3Nlc3NtZW50IFF1ZXN0aW9uIDwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKG9wZW5lZEZyb20pIHx8IGlzTGlua1F1ZXN0aW9uVmlzaWJsZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgKFsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKG9wZW5lZEZyb20pICYmXHJcbiAgICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRRdWVzdGlvbj8ucXVlc3Rpb25OYW1lKSB8fFxyXG4gICAgICAgICAgICAgICAgaXNMaW5rUXVlc3Rpb25WaXNpYmxlXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCBmdWxsLXdpZHRoXCJcclxuICAgICAgICAgICAgICBhcHBUb29sdGlwPVwie3tcclxuICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRRdWVzdGlvbj8ucXVlc3Rpb25OdW1iZXIgK1xyXG4gICAgICAgICAgICAgICAgICAnOiAnICtcclxuICAgICAgICAgICAgICAgICAgYXNzZXNzbWVudFF1ZXN0aW9uPy5xdWVzdGlvbk5hbWVcclxuICAgICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7XHJcbiAgICAgICAgICAgICAgICBhc3Nlc3NtZW50UXVlc3Rpb24/LnF1ZXN0aW9uTnVtYmVyICtcclxuICAgICAgICAgICAgICAgICAgXCI6IFwiICtcclxuICAgICAgICAgICAgICAgICAgYXNzZXNzbWVudFF1ZXN0aW9uPy5xdWVzdGlvbk5hbWVcclxuICAgICAgICAgICAgICB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiXHJcbiAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICBvcGVuZWRGcm9tXHJcbiAgICAgICkgfHwgaXNSaXNrQ29udHJvbFZpc2libGVcclxuICAgIFwiXHJcbiAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ09OVFJPTF9SSVNLJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImxlZnRcIlxyXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPiAwXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DT05UUk9MX1JJU0snXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlNlbGVjdCBhIGNvbnRyb2wgb3IgcmlzazwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2sgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ09OVFJPTF9SSVNLJywgJ0lTU1VFX0NPTlRST0xfUklTSycpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBjb250cm9sIG9yIHJpc2suXCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgIGRlbGV0ZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gICAgICAgICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ09OVFJPTF9SSVNLJyxsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUNvbnRyb2xOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycsICdJU1NVRV9DT05UUk9MX1JJU0snKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIGxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyB8IGtleXZhbHVlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDwhLS0ge3tsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWd8anNvbn19IC0tPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57e1xyXG4gICAgICAgICAgdGFnPy52YWx1ZT8uY3VzdG9tX3RhZ19uYW1lXHJcbiAgICAgICAgfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRhZz8udmFsdWU/LmN1c3RvbV90YWdfbmFtZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy52YWx1ZS5jdXN0b21fdGFnX3ZhbHVlXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIElzc3VlIFRpdGxlIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGhcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aGF0LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwibmFtZVwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICFsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9USVRMRSdcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5Jc3N1ZSBUaXRsZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgYSBuYW1lIGZvciB0aGlzIGlzc3VlXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZVwiXHJcbiAgICAgICAgICAoZm9jdXNpbik9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9USVRMRScsICdJU1NVRV9USVRMRScpXCJcclxuICAgICAgICAgIChrZXl1cCk9XCJcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZT8udHJpbSgpPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgPyByZW1vdmVFcnJvcignaXNzdWVOYW1lJylcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoZm9jdXNvdXQpPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignJywgJycpXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUgPT0gJycgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9USVRMRSdcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUubGVuZ3RoICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnSVNTVUVfVElUTEUnXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfVElUTEUnLCAnSVNTVUVfVElUTEUnKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZU5hbWUnKVwiPlxyXG4gICAgICAgICAgRW50ZXIgYSBuYW1lIGZvciB0aGlzIGlzc3VlLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzBdPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzBdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyB1cGxvYWRpbmdGaWxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50c1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdJU1NVRV9ERVNDUklQVElPTicpXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIntcclxuICAgICAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICAgICAgZmlsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdEZXNjcmlwdGlvbidcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnSVNTVUVfREVTQ1JJUFRJT04nLCAkZXZlbnQpXCJcclxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcclxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBpc3N1ZSB0eXBlIHN0YXJ0LS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdCBjaGVja2VkXCI+XHJcbiAgICAgIDwhLS0gPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9USVRMRSdcIj4gLS0+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj4gSXNzdWUgVHlwZSA8L2xhYmVsPlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1maWxlZFwiXHJcbiAgICAgICAgICBuYW1lPVwiaXNzdWUtdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlVHlwZSA9PT0gJ2lzc3VlJ1wiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldElzc3VlVHlwZSgnaXNzdWUnKVwiXHJcbiAgICAgICAgICA+SXNzdWVcclxuICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxyXG4gICAgICAgICAgbmFtZT1cImlzc3VlLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGUgPT09ICdpbmNpZGVudCdcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRJc3N1ZVR5cGUoJ2luY2lkZW50JylcIlxyXG4gICAgICAgICAgPkluY2lkZW50XHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gSXNzdWUgQ2F0ZWdvcnkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0FURUdPUlknXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWScgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA9PT0gMCB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DQVRFR09SWSdcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPklzc3VlIENhdGVnb3J5PC9sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5IHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0FURUdPUlknLCAnSVNTVUVfQ0FURUdPUlknKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBjYXRlZ29yeSBmb3IgdGhpcyBpc3N1ZVwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICBkZWxldGVJdGVtKCdJU1NVRV9DQVRFR09SWScsIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXSlcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQVRFR09SWScsbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJ1wiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0FURUdPUlknLCAnSVNTVUVfQ0FURUdPUlknKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cFxyXG4gICAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZUNhdGVnb3J5JylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNlbGVjdCBhbiBpc3N1ZSBjYXRlZ29yeS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIGxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8IS0tIHt7bG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnfGpzb259fSAtLT5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+e3sgdGFnPy5uYW1lIH19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwidGFnPy5uYW1lXCIgWyhuZ01vZGVsKV09XCJ0YWcudmFsdWVcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFJlc3BvbnNpYmlsaXR5IENlbnRlciAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiaXNSQ0VkaXRhYmxlIHx8IGxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoXCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cImlzUkNFZGl0YWJsZSB8fCBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aFwiXHJcbiAgICAgIGNsYXNzPVwibGVmdFwiXHJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMFwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID09PSAwXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDAgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9SQydcIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJpc1JDRWRpdGFibGUgfHwgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGhcIiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+UmVzcG9uc2liaWxpdHkgQ2VudGVyXHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgKm5nSWY9XCJpc1JDTWFuZGF0b3J5XCI+Kjwvc3Bhbj5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVSQyB8fCBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9SQycsICdJU1NVRV9SQycpXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocylcIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1JDRWRpdGFibGVcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9SQycsIGxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1swXSlcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1swXT8uaXRlbV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdPy5pdGVtX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJSQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICt7eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/LnNsaWNlKDEpPy5sZW5ndGggfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJyAmJiBpc1JDRWRpdGFibGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1JDJywgJ0lTU1VFX1JDJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlUkMnKVwiPlxyXG4gICAgICAgICAgU2VsZWN0IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaXNzdWUuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFwcC1wb3BvdmVyICNSQyBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgIGxldCByYyBvZiBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkMgfCBzbGljZSA6IDE7XHJcbiAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNSQ0VkaXRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfUkMnLCByYylcIlxyXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHJjPy5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBXaG8gLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfV0hPJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doby5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgKGxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZikgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA+IDAgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmKSAmJlxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5XaG8/IDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5lbnRydXN0VG8gfHwgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1dITycsICdJU1NVRV9XSE8nKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGZcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIGlzIHJlc3BvbnNpYmxlIGZvciBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eT9cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfV0hPJywgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1dITycsbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9XSE8nLCAnSVNTVUVfV0hPJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdlbnRydXN0VG8nKVwiPlxyXG4gICAgICAgICAgU2VsZWN0IHRoZSBwZXJzb24gcmVzcG9uc2libGUgZm9yIHJlc29sdmluZyB0aGlzIGlzc3VlLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInN3aXRjaC1yb3cgYWxpZ24tcmlnaHRcIlxyXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGFwcC1jcy1zd2l0Y2hcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgICAgICAgICAgIFsobmdWYWx1ZSldPVwibG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGZcIlxyXG4gICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJhc3NpZ25NeXNlbGYoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID5PUiBBU1NJR04gVE8gTVlTRUxGPC9hcHAtY3Mtc3dpdGNoXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gTWF4aW11biBUaW1lIHRvIFJlc29sdmUgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfREFURV9USU1FJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZVwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doZW4uc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9EQVRFX1RJTUUnXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZSAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0RBVEVfVElNRSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPk1heGltdW0gVGltZSB0byBSZXNvbHZlIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcclxuICAgICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtdGltZS1waWNrZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaWNrZXItZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXQgYSBkZWFkbGluZS5cIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCJcclxuICAgICAgICAgICAgICBpZD1cIm1heC10aW1lXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAjZGF0ZVBpY2tlclxyXG4gICAgICAgICAgICAgIChvblNlbGVjdCk9XCJcclxuICAgICAgICAgICAgICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjbG9zZURhdGVQaWNrZXIoJGV2ZW50KTtcclxuICAgICAgICAgICAgICAgIHJlbW92ZUVycm9yKCdpc3N1ZUR1ZURhdGUnKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW2NvbmZpZ109XCJkYXRlQ29uZmlnXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LW92ZXJsYXlcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURhdGVQaWNrZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJwaWNrZXItZ3JvdXBcIlxyXG4gICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aW1lUGlja2VyLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJzZXRDdXJyZW50VGltZSgpXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lXCJcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidGltZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGltZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIFttaW5dPVwiY3VycmVudFRpbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxhcHAtdGltZS1waWNrZXJcclxuICAgICAgICAgICAgICBbdGltZV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lXCJcclxuICAgICAgICAgICAgICAob25UaW1lU2VsZWN0aW9uKT1cIlxyXG4gICAgICAgICAgICAgICAgb25UaW1lQ2hhbmdlZCgkZXZlbnQpOyB0aW1lUGlja2VyLmNsb3NlUG9wb3ZlcigndG9wJylcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+PC9hcHAtdGltZS1waWNrZXI+XHJcbiAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlRHVlRGF0ZScpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBTZWxlY3QgdGhlIGRhdGUgYnkgd2hpY2ggdGhpcyBpc3N1ZSBuZWVkcyB0byBiZSByZXNvbHZlZC5cclxuICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiIWlzRnV0dXJlRGF0ZVwiPlxyXG4gICAgICAgICAge3sgZ2V0RGF0ZVZhbGlkYXRpb25NZXNzYWdlIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFJlY29tbWVuZGVkIEFjdGlvbnMgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjb21tZW5kZWQtYWN0aW9uLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIShsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvbiB8IHNwYWNlQnJlYWtlcikubGVuZ3RoXCJcclxuICAgICAgLz5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIihsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvbiB8IHNwYWNlQnJlYWtlcikubGVuZ3RoID4gMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+UmVjb21tZW5kZWQgQWN0aW9ucyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJBdHRhY2htZW50VHJhY2tbMV0/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXBsb2FkaW5nRmlsZSBvZiBBdHRhY2htZW50VHJhY2tbMV1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLWxpbmUtbG9hZGVyIFtsb2FkZXJIZWlnaHRdPVwiMlwiPjwvYXBwLWxpbmUtbG9hZGVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgbG9nSXNzdWVGb3JtPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50c1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZmlsZT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsICdSRUNPTU1FTkRFRF9BQ1RJT05TJylcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb25cIlxyXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgZmlsZTogdHJ1ZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdSZWNvbW1lbmRlZCBhY3Rpb25zJ1xyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZVJlY29tbWVuZGF0aW9uPy50cmltKCk/Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICA/IHJlbW92ZUVycm9yKCdpc3N1ZVJlY29tbWVuZGF0aW9uJylcclxuICAgICAgICAgICAgICA6IG51bGxcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cImNoZWNrRGVzY3JpcHRpb24oKVwiXHJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnUkVDT01NRU5ERURfQUNUSU9OUycsICRldmVudClcIlxyXG4gICAgICAgID48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgU3BlY2lmeSB0aGUgcmVjb21tZW5kZWQgYWN0aW9ucyB0byByZXNvbHZlIHRoaXMgaXNzdWUuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tICpuZ0lmPVwiIWhpZGRlbkxpc3QuaW5jbHVkZXMoJ1JJU0tfQ0xBU1NJRklDQVRJT04nKVwiICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiIC0tPlxyXG4gIDwhLS0gcmVtb3ZlZCB0aGUgYWJvdmUgY29uZGl0aW9uIHNpbmNlIFJpc2sgQ2xhc3NpZmljYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCBieSBkZWZhdWx0IGluIGxvZyBhbiBpc3N1ZSBmb3JtIC0tPlxyXG5cclxuICA8IS0tIFJpc2sgQ2xhc3NpZmljYXRpb24gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgaWQ9XCJyaXNrX2NsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJpc2tSYXRpbmdcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yaXNrcy5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlUmlza1JhdGluZ1wiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJpc2tSYXRpbmdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmlzayBDbGFzc2lmaWNhdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgY2xhc3M9XCJsb3dcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2xhc3Mgb2Ygcmlza0NsYXNzaWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW2NsYXNzLmNsYXNzXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgbmFtZT1cImNsYXNzaWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwiY2xhc3MudmFsdWVcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSaXNrUmF0aW5nID09PSBjbGFzcy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSaXNrUmF0aW5nXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4+e3sgY2xhc3MubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRXhjZXB0aW9uIFR5cGUgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5FWENFUFRJT05fVFlQRVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA+IC0xXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IG51bGxcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA+IC0xXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXhjZXB0aW9uIFR5cGU8L2xhYmVsPlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1maWxlZFwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwiMVwiXHJcbiAgICAgICAgICBuYW1lPVwiZXhjZXB0aW9uLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID09PSAxXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXhjZXB0aW9uKDEpXCJcclxuICAgICAgICAgID5EZXNpZ24gRXhjZXB0aW9uXHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCIyXCJcclxuICAgICAgICAgIG5hbWU9XCJleGNlcHRpb24tdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IDJcIlxyXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFeGNlcHRpb24oMilcIlxyXG4gICAgICAgICAgPkVmZmVjdGl2ZW5lc3MgRXhjZXB0aW9uXHJcbiAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUHJpb3JpdHkgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5QUklPUklUWVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eVwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5ID4gMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlByaW9yaXR5PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xhc3NpZmljYXRpb25cIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJpb3JpdHkgb2Ygcmlza1Byb3JpdHlcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJbcHJpb3JpdHkuY2xhc3NdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY2xhc3NpZmljYXRpb24tcHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJwcmlvcml0eS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5ID09PSBwcmlvcml0eS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVQcmlvcml0eVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHByaW9yaXR5Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEFzc29jaWF0ZWQgUmlza3MgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlQXNzb2NpYXRlZFJpc2tcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3NvY2lhdGVkLXJpc2tzLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVBc3NvY2lhdGVkUmlzay50cmltKCkubGVuZ3RoXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQXNzb2NpYXRlZFJpc2sudHJpbSgpLmxlbmd0aFwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkFzc29jaWF0ZWQgUmlza3MgPC9sYWJlbD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzJdPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzJdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyB1cGxvYWRpbmdGaWxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGU/Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCAnQVNTT0NJQVRFRF9SSVNLUycpXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrXCJcclxuICAgICAgICAgIFtlZGl0b3JDb25maWddPVwie1xyXG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgIGZpbGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0Fzc29jaWF0ZWQgUmlza3MnXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcclxuICAgICAgICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdBU1NPQ0lBVEVEX1JJU0tTJywgJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gT3ZlcnNlZXIgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLk9WRVJTSUdIVFwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgICFbJ0lTU1VFX0NDJywgJ0lTU1VFX0ZDQyddLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKSAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImxlZnRcIlxyXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJcclxuICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgIGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDBcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPT09IDApIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NDJyB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9GQ0MnXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwIHx8XHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NDJykgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfRkNDJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPk92ZXJzaWdodDwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzIHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPT09IDBcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NDJywgJ0lTU1VFX0NDJylcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldobyBzaG91bGQgaGF2ZSBvdmVyc2lnaHQgb2YgdGhpcyBpc3N1ZT9cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NDJywgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0pXCJcclxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJDQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAxXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICt7eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RoIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0MnLGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIiB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiQ0MucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0MnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQycsICdJU1NVRV9DQycpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2VycyB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPT09IDBcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9GQ0MnLCAnSVNTVUVfRkNDJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV2hvIHNob3VsZCBiZSBub3RpZmllZCBpZiB0aGUgaXNzdWUgaXMgbm90IHJlc29sdmVkP1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLCBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdKVwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIkZDQy5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgK3t7IGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aCB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiIHR5cGU9XCJidXR0b25cIiBhcHBQb3BvdmVyIChjbGljayk9XCJGQ0MucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09ICdJU1NVRV9GQ0MnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9GQ0MnLCAnSVNTVUVfRkNDJylcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLXBvcG92ZXIgI0NDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IGNjIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQycsIGNjKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgY2M/LmVtcGxveWVlX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjRkNDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IGZjYyBvZiBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLCBmY2MpXCJcclxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBmY2M/LmVtcGxveWVlX25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBFdmlkZW5jZSAtLT5cclxuICA8ZGl2XHJcbiAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLkVWSURFTkNFXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwidHJ1ZVwiPlxyXG4gICAgICA8IS0tIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2Zvcm1hdC1ldmlkZW5jZS5zdmdcIiBhbHQ9XCJpbVwiPiAtLT5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXZpZGVuY2U8L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZm9ybWF0XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIlxyXG4gICAgICAgICAgICA+RG8geW91IHdhbnQgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgaXNzdWUgdG8gYmVcclxuICAgICAgICAgICAgdXBsb2FkZWQ/PC9zcGFuXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidmaWxlLWV2aWRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXZpZGVuY2VSZXF1aXJlZCA9PT0gMVwiXHJcbiAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSgxKVwiXHJcbiAgICAgICAgICAgICAgPlllc1xyXG4gICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidmaWxlLWV2aWRlbmNlJ1wiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIjBcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXZpZGVuY2VSZXF1aXJlZCA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSgwKVwiXHJcbiAgICAgICAgICAgICAgPk5vXHJcbiAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG48YXBwLXJhZGlvLWxpc3RcclxuICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9DQVRHT1JZXCJcclxuICBbaXRlbXNMaXN0XT1cImxpc3REYXRhPy5jYXRlZ29yeUxpc3RcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5XCJcclxuICBbaWRlbnRpZmllcktleV09XCInY2F0ZWdvcnlfaWQnXCJcclxuICBbZGlzcGxheUtleV09XCInY2F0ZWdvcnlfbmFtZSdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9DQVRFR09SWSdcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9DQVRFR09SWScpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ0FURUdPUlknKVwiXHJcbj5cclxuPC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0XHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX1JDJ1wiXHJcbiAgW3Jlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RdPVwibGlzdERhdGE/LnJjTGlzdFwiXHJcbiAgW3JhZGlvU2VsZWN0aW9uXT1cImZhbHNlXCJcclxuICBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnNdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDXCJcclxuICBbcmNJZEtleV09XCInaXRlbV9pZCdcIlxyXG4gIChzYXZlU2VsZWN0ZWRMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX1JDJylcIlxyXG4gIChjbG9zZVJjTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX1JDJylcIlxyXG4+XHJcbjwvYXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdD5cclxuXHJcbjxhcHAtcmFkaW8tbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1dIT1wiXHJcbiAgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8udXNlckxpc3RcIlxyXG4gIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmVudHJ1c3RUb1wiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2VtcGxveWVlX2lkJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCJcclxuICBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfV0hPJ1wiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX1dITycpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfV0hPJylcIlxyXG4+PC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtcmFkaW8tbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1RZUEVcIlxyXG4gIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/Lmlzc3VlVHlwZUxpc3RcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGVcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidpc3N1ZV9pZCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidpc3N1ZV90eXBlX25hbWUnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfVFlQRSdcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9UWVBFJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9UWVBFJylcIlxyXG4+PC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtY2hlY2tib3gtbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX0NDXCJcclxuICBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gIFtpdGVtc0xpc3RdPVwiXHJcbiAgICBsaXN0RGF0YS51c2VyTGlzdFxyXG4gICAgICB8IHVzZXJGaWx0ZXJcclxuICAgICAgICA6ICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICA6IGxvZ0lzc3VlRm9ybS5lbnRydXN0VG9cclxuICAgICAgICA6IHsgZW1wbG95ZWVfZW1haWw6IGN1cnJlbnRVc2VyPy5lbWFpbCB9XHJcbiAgXCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzXCJcclxuICBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIlxyXG4gIFt0b29sdGlwS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9DQydcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9DQycpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ0MnKVwiXHJcbj48L2FwcC1jaGVja2JveC1saXN0PlxyXG5cclxuPGFwcC1jaGVja2JveC1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfRkNDXCJcclxuICBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gIFtpdGVtc0xpc3RdPVwiXHJcbiAgICBsaXN0RGF0YS51c2VyTGlzdFxyXG4gICAgICB8IHVzZXJGaWx0ZXJcclxuICAgICAgICA6ICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICA6IGxvZ0lzc3VlRm9ybS5lbnRydXN0VG9cclxuICAgICAgICA6IHsgZW1wbG95ZWVfZW1haWw6IGN1cnJlbnRVc2VyPy5lbWFpbCB9XHJcbiAgXCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnNcIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiXHJcbiAgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0ZDQydcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9GQ0MnKVwiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX0ZDQycpXCJcclxuPjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcblxyXG48YXBwLXJlc3BvbnNpYmlsaXR5LXJpc2stc2VsZWN0b3JcclxuICBbbG9hZGluZ109XCJpc1Jpc2tDb250cm9sTG9hZGluZ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snKVwiXHJcbiAgKGZldGNoTGlzdCk9XCJnZXRMaW5rYWdlKGlzc3VlRGV0YWlscz8uYXVkaXRPYmpJZCwgJGV2ZW50KVwiXHJcbiAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwgJ0lTU1VFX0NPTlRST0xfUklTSycpXCJcclxuICBbYWN0aXZlRW50aXR5XT1cImxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGVcIlxyXG4gIFtsaXN0SXRlbXNdPVwibGlzdERhdGE/LmxpbmthZ2VMaXN0XCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrXCJcclxuPjwvYXBwLXJlc3BvbnNpYmlsaXR5LXJpc2stc2VsZWN0b3I+XHJcblxyXG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lXHJcbiAgKm5nSWY9XCJzaG93U21pbGV5XCJcclxuICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICBbYWN0aW9uQnV0dG9uc109XCJkaXNwbGF5QWN0aW9uQnV0dG9uc1wiXHJcbiAgKGFjdGlvbik9XCJhY3Rpb24oJGV2ZW50KVwiXHJcbiAgKGNsb3NlU21pbGV5KT1cImNsb3NlU21pbGV5KCRldmVudClcIlxyXG4+XHJcbjwvYXBwLXNtaWxleS1kaWFsb2ctaW5saW5lPlxyXG5cclxuPGFwcC1saW5rLXJlc3BvbnNpYmlsaXR5LWxpc3RcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJ1wiXHJcbiAgW3NlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXNdPVwibG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZFwiXHJcbiAgKGNsb3NlQnV0dG9uKT1cImZpZWxkRGVzZWxlY3RvcignTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJylcIlxyXG4gIFtyZXNwSWRLZXldPVwiJ1JlcG9ydElkJ1wiXHJcbiAgW3JhZGlvU2VsZWN0aW9uXT1cImZhbHNlXCJcclxuICAoc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknKVwiXHJcbj48L2FwcC1saW5rLXJlc3BvbnNpYmlsaXR5LWxpc3Q+XHJcbiJdfQ==
|
|
1228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuLWlzc3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFJVCxVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHbkMsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPM0QsTUFBTSxPQUFPLG1CQUFtQjtJQTZFOUIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDekIsQ0FBQyxDQUFDLDhCQUE4QjtZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUMvQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM1QixDQUFDLENBQUMsSUFBSSxD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QUExQixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ2tCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFFdkIsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkEwMEM1RCxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ0lzc3VlU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2xvZy1pc3N1ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQgeyBJc3N1ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lzc3VlLWRhdGEnO1xyXG5pbXBvcnQgeyBERUZBVUxUX1RJTUUgfSBmcm9tICcuLi9jb25zdGFudHMvdGltZS5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1sb2ctYW4taXNzdWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2ctYW4taXNzdWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dBbklzc3VlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIG9wZW5lZEZyb20hOiBhbnk7XHJcbiAgQElucHV0KCkgc291cmNlOiAnU0FQJyB8ICdXT1JLUk9PTScgfCAnJyA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzc3VlSWQhOiBhbnk7XHJcbiAgQElucHV0KCkgcmVwb25zaWJpbGl0eURhdGE6IGFueSA9IHtcclxuICAgIC8vIG9ubHkgdXNlZCBieSBsb2cgYW4gaXNzdWVcclxuICAgIHJlc3BvbnNpYmlsaXR5SWQ6IG51bGwsXHJcbiAgICByZXNwb25zaWJpbGl0eU5hbWU6ICcnLFxyXG4gICAgcmNJZDogW10sXHJcbiAgICByZXNwb25zaWJpbGl0eU9iamVjdElkOiAnJyxcclxuICAgIGR1ZURhdGVJZDogJycsXHJcbiAgfTtcclxuICBASW5wdXQoKSBhc3Nlc3NtZW50UXVlc3Rpb246IGFueSA9IHtcclxuICAgIHF1ZXN0aW9uTmFtZTogJycsXHJcbiAgICBxdWVzdGlvbk51bWJlcjogJycsXHJcbiAgICBxdWVzdGlvbklkOiAnJyxcclxuICAgIGFzc2Vzc21lbnRJZDogJycsXHJcbiAgICBhdWRpdGVlSWQ6IG51bGwsXHJcbiAgfTtcclxuICBASW5wdXQoKSBpc3N1ZURldGFpbHMgPSB7XHJcbiAgICBhdWRpdFBsYW5JZDogbnVsbCxcclxuICAgIGF1ZGl0UGxhbk5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICAgIGF1ZGl0T2JqSWQ6IG51bGwsXHJcbiAgfTtcclxuICBASW5wdXQoKSBtb2RlID0gJ0NSRUFURSc7XHJcbiAgQElucHV0KCkgY29uZmlnITogSXNzdWVDb25maWd1cmF0aW9uO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpYmlsaXRpZXNEYXRhOiBhbnk7XHJcbiAgQE91dHB1dCgpIHBpY2tlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHBvcHVsYXRlT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRhdGVQaWNrZXJQb3BVcCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGN1cnJlbnRVc2VyITogYW55O1xyXG4gIHNjcm9sbFRvQm90dG9tOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0ZVBpY2tlck92ZXJsYXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGF0ZUVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWREYXRlOiBhbnk7XHJcbiAgc2hvd1NtaWxleTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNtaWxleU1lc3NhZ2U6IHN0cmluZyA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQuYDtcclxuICBpc3N1ZURhdGEhOiBhbnk7XHJcbiAgaXNSaXNrQ29udHJvbExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsaW5rVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgYWN0aW9uQnV0dG9uczogYW55W10gPSBbXHJcbiAgICB7IGJ1dHRvblRleHQ6ICdSZXBvcnQgTW9yZSBJc3N1ZXMnLCBjbGFzczogJ3doaXRlLWJ0bicsIGlkOiAnYWRkTW9yZScgfSxcclxuICAgIHsgYnV0dG9uVGV4dDogJ1ZpZXcgSXNzdWUnLCBjbGFzczogJ2JsdWUtYnRuJywgaWQ6ICd2aWV3SXNzdWUnIH0sXHJcbiAgXTtcclxuICBjcmVhdGVkRGF0YSE6IGFueTtcclxuICBkZXNjcmlwdGlvbjogRWRpdG9yQ29uZmlnID0ge1xyXG4gICAgLy8gbW9kZTogJ3ByaW1lJyxcclxuICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgIGxpbms6IHRydWUsXHJcbiAgICBwbGFjZWhvbGRlcjogJ0Rlc2NyaXB0aW9uJyxcclxuICB9O1xyXG5cclxuICBkYXRlQ29uZmlnID0ge1xyXG4gICAgZGlzYWJsZUtleXByZXNzOiB0cnVlLFxyXG4gICAgZm9ybWF0OiAnREQnLFxyXG4gICAgdW5TZWxlY3RPbkNsaWNrOiB0cnVlLFxyXG4gICAgb3Blbk9uQ2xpY2s6IGZhbHNlLFxyXG4gICAgb3Blbk9uRm9jdXM6IGZhbHNlLFxyXG4gICAgbWluOiAnJyxcclxuICB9O1xyXG4gIGxpc3REYXRhOiBhbnkgPSB7XHJcbiAgICBpc3N1ZVR5cGVMaXN0OiBbXSxcclxuICAgIHVzZXJMaXN0OiBbXSxcclxuICAgIGNhdGVnb3J5TGlzdDogW10sXHJcbiAgICByY0xpc3Q6IFtdLFxyXG4gICAgbGlua2FnZUxpc3Q6IFtdLFxyXG4gIH07XHJcbiAgREVGQVVMVF9USU1FID0gREVGQVVMVF9USU1FO1xyXG5cclxuICBnZXQgbWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdFRElUJ1xyXG4gICAgICA/ICcgVGhlIElzc3VlIGhhcyBiZWVuIHVwZGF0ZWQuJ1xyXG4gICAgICA6IHRoaXMuc21pbGV5TWVzc2FnZTtcclxuICB9XHJcblxyXG4gIGdldCBkaXNwbGF5QWN0aW9uQnV0dG9ucygpIHtcclxuICAgIHJldHVybiAoIVsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSkgJiZcclxuICAgICAgWydDUkVBVEUnXS5pbmNsdWRlcyh0aGlzLm1vZGUpKSB8fFxyXG4gICAgICBbJ0VESVQnXS5pbmNsdWRlcyh0aGlzLm1vZGUpXHJcbiAgICAgID8gdGhpcy5hY3Rpb25CdXR0b25zXHJcbiAgICAgIDogW107XHJcbiAgfVxyXG5cclxuICBsb2dJc3N1ZUZvcm06IGFueSA9IHtcclxuICAgIGlzc3VlTmFtZTogJycsXHJcbiAgICBldmlkZW5jZVJlcXVpcmVkOiAwLFxyXG4gICAgaXNzdWVEZXNjcmlwdGlvbjogJycsXHJcbiAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBbXSxcclxuICAgIGlzc3VlQ2F0ZWdvcnk6IFtdLFxyXG4gICAgaXNzdWVDdXN0b21UYWc6IFtdLFxyXG4gICAgaXNzdWVSQzogW10sXHJcbiAgICBpc3N1ZVR5cGU6ICdpc3N1ZScsXHJcbiAgICBpc0Fzc2lnblRvTXlzZWxmOiBmYWxzZSxcclxuICAgIGVudHJ1c3RUbzogW10sXHJcbiAgICBpc3N1ZUR1ZURhdGU6ICcnLFxyXG4gICAgaXNzdWVEdWVUaW1lOiBERUZBVUxUX1RJTUUsXHJcbiAgICBleGNlcHRpb25UeXBlOiAxLFxyXG4gICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgaXNzdWVQcmlvcml0eTogMSxcclxuICAgIGlzc3VlUmVjb21tZW5kYXRpb246ICcnLFxyXG4gICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICBpc3N1ZUNDVXNlcnM6IFtdLFxyXG4gICAgZmFpbHVyZUNDVXNlcnM6IFtdLFxyXG4gICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgbGlua2FnZVR5cGU6ICdSSVNLJyxcclxuICAgIHJlc3BvbnNpYmlsaXR5TGlua2VkOiBbXSxcclxuICAgIGR1ZURhdGVJZDogJycsXHJcbiAgICBhc3Nlc3NtZW50SWQ6ICcnLFxyXG4gICAgYXVkaXRlZUlkOiBudWxsLFxyXG4gICAgcXVlc3Rpb25JZDogJycsXHJcbiAgICBxdWVzdGlvbk51bWJlcjogJycsXHJcbiAgICB0aXRsZTogJycsXHJcbiAgICBkdWVEYXRlOiAnJyxcclxuICAgIHNvdXJjZTogJycsXHJcbiAgfTtcclxuICBBdHRhY2htZW50VHJhY2s6IGFueSA9IFtbXSwgW10sIFtdXTtcclxuICBhZGRpdGlvbmFsT3B0aW9uU3RhdHVzOiBhbnkgPSB7XHJcbiAgICBFWENFUFRJT05fVFlQRTogZmFsc2UsXHJcbiAgICBFVklERU5DRTogZmFsc2UsXHJcbiAgICBQUklPUklUWTogZmFsc2UsXHJcbiAgICBJU1NVRV9UWVBFOiBmYWxzZSxcclxuICAgIEFTU09DSUFURURfUklTS1M6IGZhbHNlLFxyXG4gICAgT1ZFUlNJR0hUOiBmYWxzZSxcclxuICB9O1xyXG4gIHJpc2tDbGFzc2lmaWNhdGlvbiA9IFtcclxuICAgIHsgbmFtZTogJ0xPVycsIHZhbHVlOiAxLCBjbGFzczogJ2xvdycgfSxcclxuICAgIHsgbmFtZTogJ0xPVy1NZWRpdW0nLCB2YWx1ZTogMiwgY2xhc3M6ICdsb3ctbWVkJyB9LFxyXG4gICAgeyBuYW1lOiAnTWVkaXVtLUhpZ2gnLCB2YWx1ZTogMywgY2xhc3M6ICdtZWQtaGlnaCcgfSxcclxuICAgIHsgbmFtZTogJ0hpZ2gnLCB2YWx1ZTogNCwgY2xhc3M6ICdoaWdoJyB9LFxyXG4gIF07XHJcbiAgcmlza1Byb3JpdHkgPSBbXHJcbiAgICB7IG5hbWU6ICdMT1cnLCB2YWx1ZTogMSwgY2xhc3M6ICdsb3cnIH0sXHJcbiAgICB7IG5hbWU6ICdNRURJVU0nLCB2YWx1ZTogMiwgY2xhc3M6ICdsb3ctbWVkJyB9LFxyXG4gICAgeyBuYW1lOiAnSElHSCcsIHZhbHVlOiAzLCBjbGFzczogJ2hpZ2gnIH0sXHJcbiAgXTtcclxuXHJcbiAgc2lkZVNlbGVjdG9yRWxlbWVudHM6IGFueSA9IFtcclxuICAgICdJU1NVRV9DQVRFR09SWScsXHJcbiAgICAnSVNTVUVfUkMnLFxyXG4gICAgJ0lTU1VFX1dITycsXHJcbiAgICAnSVNTVUVfVFlQRScsXHJcbiAgICAnSVNTVUVfQ0MnLFxyXG4gICAgJ0lTU1VFX0ZDQycsXHJcbiAgICAnSVNTVUVfQ09OVFJPTF9SSVNLJyxcclxuICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLFxyXG4gIF07XHJcbiAgc2VsZWN0b3JDb25maWcgPSB7XHJcbiAgICBJU1NVRV9DQVRHT1JZOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgSXNzdWUgQ2F0ZWdvcnknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ0NhdGVnb3J5IHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggSXNzdWUgQ2F0ZWdvcnknLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gQ2F0ZWdvcmllcyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfUkM6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1Jlc3BvbnNpYmlsaXR5IGNlbnRlciBzZWxlY3RlZCcsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFBsdXJhbDogJ1Jlc3BvbnNpYmlsaXR5IGNlbnRlcnMgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gUmVzcG9uc2liaWxpdHkgQ2VudGVycyBGb3VuZCcsXHJcbiAgICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfV0hPOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgVXNlcicsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX1RZUEU6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBJc3N1ZSBUeXBlJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdJc3N1ZSBUeXBlIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggSXNzdWUgVHlwZScsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBJc3N1ZSBUeXBlcyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfQ0M6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCB1c2VyKHMpJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggVXNlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBVc2VycyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfRkNDOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgdXNlcihzKScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBmaWVsZHNXaXRoRXJyb3I6IGFueSA9IFtdO1xyXG4gIC8vIGhpZGRlbkxpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIGFjdGl2ZUZpZWxkOiBzdHJpbmcgPSAnJztcclxuICBhY3RpdmVTZWxlY3Rvcjogc3RyaW5nID0gJyc7XHJcbiAgbGlzdExvYWRpbmdTdGF0dXM6IGFueVtdID0gW107XHJcbiAgY3VycmVudFRpbWU6IHN0cmluZyA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIGlzUkNQcmVTZWxlY3RlZCxpc1JDVmlzaWJsZSBhcmUgdmFyaWFibGUgdXNlZCB0byBzZXQgdGhlIHZpc2liaWxpdHkgb2YgcmMgZmllbGQgYW5kIGVkaXQgYnV0dG9uIGluIGNlcnRhaW4gY29uZGl0aW9uc1xyXG4gICAqL1xyXG4gIGlzUkNQcmVTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzUkNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBpc1JDTWFuZGF0b3J5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGF0YUZvckVkaXQhOiBhbnk7XHJcbiAgaXNSaXNrQ29udHJvbFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0Z1dHVyZURhdGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGlzTGlua1Jlc3BvbnNpYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNMaW5rQXNzZXNzbWVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTGlua1JDOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSQ0VkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNMaW5rUXVlc3Rpb25WaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvZ1NlcnZpY2U6IExvZ0lzc3VlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuc2V0VXNlckRldGFpbHMoKTtcclxuICAgIHRoaXMuZmV0Y2hJc3N1ZVR5cGVzKCk7XHJcbiAgICB0aGlzLmZldGNoVXNlckxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hDYXRlZ29yeUxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hSQ0xpc3QoKTtcclxuICAgIHRoaXMuc2V0TGluaygpO1xyXG4gICAgdGhpcy5zZXRSY0VkaXRhYmxlKCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5mZXRjaENvbnRyb2xSaXNrcygpO1xyXG4gICAgdGhpcy5kZWNpZGVSQ21hbmRhdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgZGVjaWRlUkNtYW5kYXRvcnkoKSB7XHJcbiAgICB0aGlzLmlzUkNNYW5kYXRvcnkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICB9XHJcbiAgZ2V0Q3VycmVudFRpbWUoKSB7XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0b2RheS5nZXREYXRlKCkgPT09IG5ldyBEYXRlKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSkuZ2V0RGF0ZSgpXHJcbiAgICApIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRvZGF5LmdldEhvdXJzKCkgPCAxMiAmJlxyXG4gICAgICAgIHRvZGF5LmdldE1pbnV0ZXMoKSA8IDU5ICYmXHJcbiAgICAgICAgdG9kYXkuZ2V0U2Vjb25kcygpIDwgNTlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgdG9kYXkuZ2V0SG91cnMoKSA6IHRvZGF5LmdldEhvdXJzKClcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gYW1gO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBgJHtcclxuICAgICAgICAgIHRvZGF5LmdldEhvdXJzKCkgLSAxMiA8IDEwXHJcbiAgICAgICAgICAgID8gJzAnICsgKHRvZGF5LmdldEhvdXJzKCkgLSAxMilcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRIb3VycygpIC0gMTJcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gcG1gO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJzAwOjAwIGFtJztcclxuICAgIH1cclxuICB9XHJcbiAgc2V0UmNFZGl0YWJsZSgpIHtcclxuICAgIGlmIChcclxuICAgICAgKCFbJ0NPTVBMSUFOQ0VfV09SS1JPT00nLCAnQVNTRVNTTUVOVCddLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSkgJiZcclxuICAgICAgICBbJ0NSRUFURSddLmluY2x1ZGVzKHRoaXMubW9kZSkpIHx8XHJcbiAgICAgIChbJ0VESVQnXS5pbmNsdWRlcyh0aGlzLm1vZGUpICYmXHJcbiAgICAgICAgIXRoaXMubG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNSQ0VkaXRhYmxlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSQ0VkaXRhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldExpbmsoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIFsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSkgfHxcclxuICAgICAgdGhpcy5pc0xpbmtRdWVzdGlvblZpc2libGVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxpbmtUZXh0ID0gJ0xpbmtlZCBSZXNwb25zaWJpbGl0eSc7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pIHx8XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5saW5rVGV4dCA9ICdMaW5rZWQgUmVzcG9uc2liaWxpdGllcyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxpbmtUZXh0ID0gJ0xpbmsgUmVzcG9uc2liaWxpdGllcyc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldFVzZXJEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlckRldGFpbHMoKS51c2VyO1xyXG4gICAgbGV0IHV0Y1RpbWU7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJJbmZvKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdXRjVGltZSA9IHJlcz8uY3VycmVudF90aW1lX3V0YztcclxuICAgICAgICBjb25zdCB1cGRhdGVkRGF0ZSA9IHRoaXMuYXV0aFNlcnZpY2UuY29udmVydFV0Y1RvTG9jYWxEYXRlVGltZSh1dGNUaW1lKTtcclxuICAgICAgICB0aGlzLmRhdGVDb25maWcgPSB7IC4uLnRoaXMuZGF0ZUNvbmZpZywgbWluOiB1cGRhdGVkRGF0ZSB9O1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZmV0Y2hJc3N1ZVR5cGVzKCkge1xyXG4gICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRJc3N1ZVR5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzBdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmlzc3VlVHlwZUxpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzBdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBmZXRjaFVzZXJMaXN0KCkge1xyXG4gICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1sxXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldE9yZ1Blb3BsZSgpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1sxXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmZXRjaENhdGVnb3J5TGlzdCgpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMl0gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRJc3N1ZUNhdGVnb3JpZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMl0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0ID0gcmVzPy5kYXRhO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0ID0gdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgKGU6IGFueSkgPT4gZT8uY2F0ZWdvcnlfbmFtZSAhPT0gJ1VuY2F0ZWdvcml6ZWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMl0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmZXRjaFJDTGlzdCgpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbM10gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbM10gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEucmNMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFJDKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1szXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGVkUkMoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQgJiZcclxuICAgICAgKHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nIHx8XHJcbiAgICAgICAgdGhpcy5vcGVuZWRGcm9tID09PSAnQVNTRVNTTUVOVCcpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQ/Lmxlbmd0aFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YT8ucmNMaXN0LmZpbHRlcigoZTogYW55KSA9PlxyXG4gICAgICAgICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkLmluY2x1ZGVzKGU/LnJjX2lkKVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW107XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZCAmJlxyXG4gICAgICBbXHJcbiAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgJ0VYRUNVVEVfQVVESVRfUExBTicsXHJcbiAgICAgIF0uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMgPSB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YS5yY0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAoZTogYW55KSA9PiBlLnJjX2lkID09PSB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgISh0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkIHx8IHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkKSAmJlxyXG4gICAgICBbXHJcbiAgICAgICAgJ0NPTVBMSUFOQ0VfV09SS1JPT00nLFxyXG4gICAgICAgICdBVURJVF9XT1JLUk9PTScsXHJcbiAgICAgICAgJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLFxyXG4gICAgICAgICdFWEVDVVRFX0FVRElUX1BMQU4nLFxyXG4gICAgICBdLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzUkNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUkNWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZldGNoQ29udHJvbFJpc2tzKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICBbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCAnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMoXHJcbiAgICAgICAgdGhpcy5vcGVuZWRGcm9tXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmdldExpbmthZ2UoXHJcbiAgICAgICAgdGhpcy5pc3N1ZURldGFpbHM/LmF1ZGl0T2JqSWQsXHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2FnZVR5cGVcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldExpbmthZ2UoYXVkaXRJZDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaXNSaXNrQ29udHJvbExvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldENvbnRyb2xSaXNrKGF1ZGl0SWQsIHR5cGUpPy5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0ID0gWy4uLnRoaXMubGlzdERhdGEubGlua2FnZUxpc3QsIC4uLmRhdGFdO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QgPSB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LmZpbHRlcihcclxuICAgICAgICAgICh0aGluZzogYW55LCBpbmRleDogYW55LCBzZWxmOiBhbnkpID0+XHJcbiAgICAgICAgICAgIGluZGV4ID09PVxyXG4gICAgICAgICAgICBzZWxmLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAodDogYW55KSA9PlxyXG4gICAgICAgICAgICAgICAgdC5pdGVtSWQgPT09IHRoaW5nLml0ZW1JZCAmJiB0Lml0ZW1UeXBlID09PSB0aGluZy5pdGVtVHlwZVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmlzUmlza0NvbnRyb2xMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Jpc2tDb250cm9sTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBUaGlzIGZ1bmN0aW9qIGNoZWNrIHdlYXRoZXIgYWxsIHRoZSByZXF1aXJlZCBsaXN0cyBhcmUgbG9hZGVkXHJcbiAgICogSWYgbG9hZGVkIGhpZGVzIHRoZSBsb2FkZXIgb3RoZXJ3aXNlIHNob3dzIHRoZSBsb2FkZXIuXHJcbiAgICovXHJcbiAgY2hlY2tBbGxMaXN0TG9hZGVkKCkge1xyXG4gICAgaWYgKHRoaXMubGlzdExvYWRpbmdTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgdGhpcy5mZXRjaElzc3VlRGV0YWlscygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgZXJyb3IgZnJvbSB0aGUgZmllbGRzIHdpdGggZXJyb3IgdG8gcmVtb3ZlIHRoZSBlcnJvciBtZXNzYWcgZnJvbSB0aGUgVUlcclxuICAgKiBAcGFyYW0gZXJyb3JLZXkgZXJyb3IgSWRlbnRpZmllciB1c2VkIHRvIHNob3cgZXJyb3IgaW4gc3BlY2lmaWMgZmllbGRzLlxyXG4gICAqL1xyXG4gIHJlbW92ZUVycm9yKGVycm9yS2V5OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWVsZHNXaXRoRXJyb3IuaW5kZXhPZihlcnJvcktleSk7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLmZpZWxkc1dpdGhFcnJvci5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuRGF0ZVBpY2tlcigpIHtcclxuICAgIHRoaXMuZGF0ZVBpY2tlcj8uYXBpPy5vcGVuKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfREFURV9USU1FJywgJ0lTU1VFX0RBVEVfVElNRScpO1xyXG4gIH1cclxuICBjbG9zZURhdGVQaWNrZXIoZXZ0OiBhbnkpIHtcclxuICAgIGlmICghZXZ0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldnQ/LmRhdGU/LiRkKSB7XHJcbiAgICAgIGxldCBtb250aEFycmF5ID0gW1xyXG4gICAgICAgICdKYW4nLFxyXG4gICAgICAgICdGZWInLFxyXG4gICAgICAgICdNYXInLFxyXG4gICAgICAgICdBcHInLFxyXG4gICAgICAgICdKdW4nLFxyXG4gICAgICAgICdKdWwnLFxyXG4gICAgICAgICdBdWcnLFxyXG4gICAgICAgICdTZXAnLFxyXG4gICAgICAgICdPY3QnLFxyXG4gICAgICAgICdOb3YnLFxyXG4gICAgICAgICdEZWMnLFxyXG4gICAgICBdO1xyXG4gICAgICBjb25zdCBkYXRlVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/LiRkKS5nZXREYXRlKCk7XHJcbiAgICAgIGNvbnN0IG1vbnRoVmFsdWUgPSBtb250aEFycmF5W25ldyBEYXRlKGV2dD8uZGF0ZT8uJGQpLmdldE1vbnRoKCldO1xyXG4gICAgICBjb25zdCB5ZWFyVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/LiRkKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICBjb25zdCBkYXRlU3RyID0gYCR7ZGF0ZVZhbHVlfSAke21vbnRoVmFsdWV9ICR7eWVhclZhbHVlfWA7XHJcbiAgICAgIGlmICghdGhpcy52YWxpZGF0ZURhdGUodGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlVGltZSwgZXZ0Py5kYXRlPy4kZCkpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChldnQ/LmRhdGU/LiRkKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSA9IGV2dD8uZGF0ZT8uJGQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2V0QWN0aXZlRmllbGRTZWxlY3RvcignJywgJycpO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcihhY3RpdmVGaWVsZDogc3RyaW5nLCBhY3RpdmVTZWxlY3Rvcj86IHN0cmluZykge1xyXG4gICAgdGhpcy5hY3RpdmVGaWVsZCA9IGFjdGl2ZUZpZWxkO1xyXG4gICAgYWN0aXZlU2VsZWN0b3JcclxuICAgICAgPyAodGhpcy5hY3RpdmVTZWxlY3RvciA9IGFjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICA6ICh0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJycpO1xyXG4gICAgY29uc3Qgc2xpZGVyVHlwZSA9IFtcclxuICAgICAgJ0lTU1VFX1JDJyxcclxuICAgICAgJ0lTU1VFX0NBVEVHT1JZJyxcclxuICAgICAgJ0lTU1VFX1RZUEUnLFxyXG4gICAgICAnSVNTVUVfQ0MnLFxyXG4gICAgICAnSVNTVUVfRkNDJyxcclxuICAgICAgJ0lTU1VFX1dITycsXHJcbiAgICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gICAgICAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJyxcclxuICAgIF07XHJcbiAgICBpZiAoc2xpZGVyVHlwZS5pbmNsdWRlcyhhY3RpdmVGaWVsZCkpIHtcclxuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWVsZERlc2VsZWN0b3IodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJyc7XHJcbiAgICB0aGlzLmFjdGl2ZUZpZWxkID0gJyc7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RvckFjdGlvbihldnQ6IGFueSwgdHlwZTogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfQ0FURUdPUlknOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeSA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QsXHJcbiAgICAgICAgICAnY2F0ZWdvcnlfaWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBpZiAoZXZ0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKCdpc3N1ZUNhdGVnb3J5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY3VzdG9tX3RhZ3M/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgdGFnOiBhbnkgPSBbXTtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jdXN0b21fdGFncy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGFnLnB1c2goeyBuYW1lOiBlbGVtZW50LCB2YWx1ZTogJycgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyA9IHRhZztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWcgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgLy9bXCJpc3N1ZU5hbWVcIiwgXCJpc3N1ZUNhdGVnb3J5XCIsIFwiaXNzdWVSQ1wiLCBcImVudHJ1c3RUb1wiLCBcImlzc3VlRHVlRGF0ZVwiLCBcImlzc3VlUmVjb21tZW5kYXRpb25cIl1cclxuICAgICAgY2FzZSAnSVNTVUVfUkMnOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS5yY0xpc3QsXHJcbiAgICAgICAgICAncmNfaWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBpZiAoZXZ0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKCdpc3N1ZVJDJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1dITyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8gPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAnZW1wbG95ZWVfaWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG9bMF0/Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGYgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgaWYgKGV2dD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcignZW50cnVzdFRvJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1RZUEUnOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmlzc3VlVHlwZUxpc3QsXHJcbiAgICAgICAgICAnaXNzdWVfaWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9DQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnMgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAnZW1wbG95ZWVfZW1haWwnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9GQ0MnOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnMgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAnZW1wbG95ZWVfZW1haWwnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSAnSVNTVUVfQ09OVFJPTF9SSVNLJzpcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rZWRDb250cm9sUmlzayA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCxcclxuICAgICAgICAgICdpdGVtSWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rYWdlVHlwZSA9XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1UeXBlO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJzoge1xyXG4gICAgICAgIHRoaXMuZ2V0UkNEYXRhKGV2dCk7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVzcG9uc2liaWxpdHlMaW5rZWQgPSBldnQ7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUl0ZW0odHlwZTogYW55LCBlbGVtZW50OiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9DQVRFR09SWSc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5LmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uY2F0ZWdvcnlfaWQgPT09IGVsZW1lbnQuY2F0ZWdvcnlfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5LnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9SQyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0ucmNfaWQgPT09IGVsZW1lbnQucmNfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9XSE8nOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uZW1wbG95ZWVfaWQgPT09IGVsZW1lbnQuZW1wbG95ZWVfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8uc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGYgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9UWVBFJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmlzc3VlX2lkID09PSBlbGVtZW50Lmlzc3VlX2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9DQyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5lbXBsb3llZV9lbWFpbCA9PT0gZWxlbWVudC5lbXBsb3llZV9lbWFpbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2Vycy5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfRkNDJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmZhaWx1cmVDQ1VzZXJzLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uZW1wbG95ZWVfZW1haWwgPT09IGVsZW1lbnQuZW1wbG95ZWVfZW1haWxcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2Vycy5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfQ09OVFJPTF9SSVNLJzpcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rZWRDb250cm9sUmlzay5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLml0ZW1JZCA9PT0gZWxlbWVudC5pdGVtSWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rZWRDb250cm9sUmlzay5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWSc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5yZXNwb25zaWJpbGl0eUxpbmtlZC5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLlJlcG9ydElkID09PSBlbGVtZW50LlJlcG9ydElkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ID4gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlc3BvbnNpYmlsaXR5TGlua2VkLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdldFJDRGF0YSh0aGlzLmxvZ0lzc3VlRm9ybS5yZXNwb25zaWJpbGl0eUxpbmtlZCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJjSWQocmM6IGFueSkge1xyXG4gICAgbGV0IHJjSWQgPSByYz8ucmVzcG9uc2liaWxpdHlDZW50ZXJBcnI/Lmxlbmd0aFxyXG4gICAgICA/IHJjPy5yZXNwb25zaWJpbGl0eUNlbnRlckFyclxyXG4gICAgICA6IHJjPy5yY19pZF9hcnI/Lmxlbmd0aFxyXG4gICAgICA/IHJjPy5yY19pZF9hcnJcclxuICAgICAgOiBbXTtcclxuICAgIGlmIChyYz8ucmNfaWQpIHtcclxuICAgICAgcmNJZCA9IFsuLi5yY0lkLCByYz8ucmNfaWRdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJjSWQ7XHJcbiAgfVxyXG5cclxuICBnZXRSQ0RhdGEoZXZ0OiBhbnkpIHtcclxuICAgIGxldCByY1NlbGVjdGVkOiBhbnlbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQpIHtcclxuICAgICAgZXZ0ID0gWy4uLmV2dCwgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZF07XHJcbiAgICB9XHJcbiAgICBldnQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGxldCByY0lkOiBhbnlbXSA9IHRoaXMuZ2V0UmNJZChlbGVtZW50KTtcclxuICAgICAgaWYgKHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQ/Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IG5ld1JjSWRzID0gdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZC5maWx0ZXIoXHJcbiAgICAgICAgICAoZWw6IGFueSkgPT4gIXJjSWQuaW5jbHVkZXMoZWwpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByY0lkID0gWy4uLnJjSWQsIC4uLm5ld1JjSWRzXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmNJZD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3UmNTZWxlY3RlZCA9IHJjSWRcclxuICAgICAgICAgIC5tYXAoKHJjSWQ6IGFueSkgPT5cclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YT8ucmNMaXN0LmZpbmQoKGVsOiBhbnkpID0+IGVsPy5yY19pZCA9PT0gcmNJZClcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChyY0RhdGEpID0+XHJcbiAgICAgICAgICAgICAgcmNEYXRhICYmXHJcbiAgICAgICAgICAgICAgIXJjU2VsZWN0ZWQuc29tZShcclxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEVsOiBhbnkpID0+IHNlbGVjdGVkRWw/LnJjX2lkID09PSByY0RhdGE/LnJjX2lkXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICByY1NlbGVjdGVkID0gWy4uLnJjU2VsZWN0ZWQsIC4uLm5ld1JjU2VsZWN0ZWRdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMgPSByY1NlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgYXNzaWduTXlzZWxmKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2VudHJ1c3RUbycpO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvID0gW107XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvID0gdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKGVtcGxpc3Q6IGFueSkgPT4gZW1wbGlzdC5teV9tZW1iZXJfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0RXhjZXB0aW9uKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZXhjZXB0aW9uVHlwZSA9IHR5cGU7XHJcbiAgfVxyXG4gIHNldEV2aWRlbmNlKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZXZpZGVuY2VSZXF1aXJlZCA9IHR5cGU7XHJcbiAgfVxyXG4gIHNldElzc3VlVHlwZSh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZSA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNbZXZlbnQuY29kZV0gPSBldmVudC5jaGVja2VkO1xyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBpZFRvQXJyYXkoc2VsZWN0ZWRJdGVtczogYW55LCBsaXN0SXRlbXM6IGFueSwgZmlsdGVya2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRJdGVtcztcclxuICAgIGNvbnN0IGxpc3QgPSBsaXN0SXRlbXM7XHJcbiAgICBjb25zdCBrZXkgPSBmaWx0ZXJrZXk7XHJcbiAgICBjb25zdCB4ID0gbGlzdC5maWx0ZXIoKGVsOiBhbnkpID0+IHNlbGVjdGVkLmluY2x1ZGVzKGVsW2tleV0pKTtcclxuICAgIHJldHVybiB4O1xyXG4gIH1cclxuICAvLy9Db2RlIGJldHdlZW4gNTAzIHRvIDYwOCBjYW4gYmUgb3B0aW1pemVkIHRvIHJlbW92ZSBkdXBsaWNhdGlvblxyXG4gIHNlbGVjdEZpbGUodHlwZTogc3RyaW5nLCBmaWxlczogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbMF0ucHVzaChuYW1lKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1tpXS5maWxlLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1sxXS5wdXNoKG5hbWUpO1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGZpbGVzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrWzJdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXNbaV0uZmlsZSwgdHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlKGZpbGU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgdHJhY2tJbmRleCA9IDA7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgdHJhY2tJbmRleCA9IDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICB0cmFja0luZGV4ID0gMTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgIHRyYWNrSW5kZXggPSAyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xyXG4gICAgY29uc3QgZGVzdGluYXRpb25TdHJpbmcgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCkudG9TdHJpbmcoKTtcclxuICAgIHRoaXMubG9nU2VydmljZS51cGxvYWRGaWxlcyhmb3JtRGF0YSwgZGVzdGluYXRpb25TdHJpbmcgKyAnLycpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5pbmRleE9mKGZpbGU/Lm5hbWUpO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgJ0lTU1VFX0RFU0NSSVBUSU9OJzoge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FzZSAnQVNTT0NJQVRFRF9SSVNLUyc6IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uaW5kZXhPZihmaWxlLm5hbWUpO1xyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmlsZShmaWxlOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IGZpbGVJbmRleCA9IC0xO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0RFU0NSSVBUSU9OJzoge1xyXG4gICAgICAgIGZpbGVJbmRleCA9XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChjdXJyZW50RmlsZXM6IGFueSkgPT4gY3VycmVudEZpbGVzLm9yZ19maWxlID09PSBmaWxlLm9yZ19maWxlXHJcbiAgICAgICAgICApID8/IC0xO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/LnNwbGljZShmaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChjdXJyZW50RmlsZXM6IGFueSkgPT4gY3VycmVudEZpbGVzLm9yZ19maWxlID09PSBmaWxlLm9yZ19maWxlXHJcbiAgICAgICAgICApID8/IC0xO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgIGZpbGVJbmRleCA9XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cz8uZmluZEluZGV4KFxyXG4gICAgICAgICAgICAoY3VycmVudEZpbGVzOiBhbnkpID0+IGN1cnJlbnRGaWxlcy5vcmdfZmlsZSA9PT0gZmlsZS5vcmdfZmlsZVxyXG4gICAgICAgICAgKSA/PyAtMTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cz8uc3BsaWNlKGZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZElzc3VlKCkge1xyXG4gICAgY29uc3QgZm9ybSA9IGNsb25lRGVlcCh0aGlzLmxvZ0lzc3VlRm9ybSk7XHJcbiAgICBpZiAoZm9ybS5pc0Fzc2lnblRvTXlzZWxmKSB7XHJcbiAgICAgIGZvcm0uZW50cnVzdFRvID0gdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKGVtcGxpc3Q6IGFueSkgPT4gZW1wbGlzdC5teV9tZW1iZXJfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpZWxkc1dpdGhFcnJvciA9IFtdO1xyXG4gICAgdGhpcy5maWVsZHNXaXRoRXJyb3IgPSB0aGlzLmxvZ1NlcnZpY2UudmFsaWRhdGUoXHJcbiAgICAgIGZvcm0sXHJcbiAgICAgIHRoaXMub3BlbmVkRnJvbSxcclxuICAgICAgdGhpcy5pc1JDTWFuZGF0b3J5XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuZmllbGRzV2l0aEVycm9yLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgUEFZTE9BRCA9IHRoaXMubG9nU2VydmljZS5wYXlsb2FkQnVpbGRlcihcclxuICAgICAgZm9ybSxcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0NSRUFURScpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIFsnQ09NUExJQU5DRV9XT1JLUk9PTScsICdBU1NFU1NNRU5UJ10uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKSAmJlxyXG4gICAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5SWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgUEFZTE9BRC5yZXNwb25zaWJpbGl0aWVzX0xpbmtlZC5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlJZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgUEFZTE9BRC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMuZHVlX2RhdGVfaWQgPVxyXG4gICAgICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8uZHVlRGF0ZUlkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBbJ0FTU0VTU01FTlQnXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pICYmXHJcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb24/LmFzc2Vzc21lbnRJZFxyXG4gICAgICApIHtcclxuICAgICAgICBQQVlMT0FELmxpbmtlZF9hc3Nlc3NtZW50X2lzc3Vlcy5hc3Nlc3NtZW50X2lkID1cclxuICAgICAgICAgIHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uPy5hc3Nlc3NtZW50SWQ7XHJcbiAgICAgICAgUEFZTE9BRC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMucXVlc3Rpb25faWQgPVxyXG4gICAgICAgICAgdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb24/LnF1ZXN0aW9uSWQ7XHJcbiAgICAgICAgUEFZTE9BRC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMuYXVkaXRlZV9pZCA9XHJcbiAgICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbj8uYXVkaXRlZUlkO1xyXG4gICAgICAgIFBBWUxPQUQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzLnJlc3BfaWQgPVxyXG4gICAgICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlPYmplY3RJZDtcclxuICAgICAgICBQQVlMT0FELmxpbmtlZF9hc3Nlc3NtZW50X2lzc3Vlcy5kdWVfZGF0ZV9pZCA9XHJcbiAgICAgICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5kdWVEYXRlSWQ7XHJcbiAgICAgICAgUEFZTE9BRC5zb3VyY2UgPSB0aGlzLnNvdXJjZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxyXG4gICAgICAgICAgdGhpcy5vcGVuZWRGcm9tXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGUgJiZcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzay5sZW5ndGggPiAwXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIFsnUklTSycsICdSRVNQT05TSUJJTElUWSddLmluY2x1ZGVzKHRoaXMubG9nSXNzdWVGb3JtPy5saW5rYWdlVHlwZSlcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBQQVlMT0FELmxpbmthZ2Vfb2JqZWN0LnNvdXJjZV9pZCA9XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtSWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBbXHJcbiAgICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICAgJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLFxyXG4gICAgICAgICAgJ0VYRUNVVEVfQVVESVRfUExBTicsXHJcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzc3VlRGV0YWlscy5hdWRpdFBsYW5JZCkge1xyXG4gICAgICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdC5zb3VyY2VfaWQgPSB0aGlzLmlzc3VlRGV0YWlscy5hdWRpdFBsYW5JZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICAhdGhpcy52YWxpZGF0ZURhdGUoXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWUsXHJcbiAgICAgICAgICBtb21lbnQodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlLCAnREQgTU1NIFlZWVknKT8udG9EYXRlKClcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICBQQVlMT0FELklzc3VlTGlua2FnZSA9IHRoaXMuZGF0YUZvckVkaXQ/LmxpbmthZ2Vfb2JqZWN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubG9nU2VydmljZS51cGRhdGVJc3N1ZShQQVlMT0FELCB0aGlzLmlzc3VlSWQpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vIHRoaXMuc21pbGV5TWVzc2FnZSA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gdXBkYXRlZC5gO1xyXG4gICAgICAgICAgdGhpcy5pc3N1ZURhdGEgPSByZXM7XHJcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXHJcbiAgICAgICAgICAgICdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nLFxyXG4gICAgICAgICAgICAnYWxlcnQnXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSAnQ1JFQVRFJyB8fCB0aGlzLm1vZGUgPT09ICcnIHx8ICF0aGlzLm1vZGUpIHtcclxuICAgICAgdGhpcy5sb2dTZXJ2aWNlLmNyZWF0ZUlzc3VlKFBBWUxPQUQpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXNzdWVEYXRhID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxyXG4gICAgICAgICAgICAnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/JyxcclxuICAgICAgICAgICAgJ2FsZXJ0J1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNsb3NlU21pbGV5KGV2dD86IGFueSkge1xyXG4gICAgdGhpcy5yZXNldElzc3VlRm9ybSgpO1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya0Zsb3codGhpcy5pc3N1ZURhdGEsIGZhbHNlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIHdvcmtmbG93IGVuZ2luZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gY29uZmlybVxyXG4gICAqL1xyXG4gIGNsb3NlV29ya0Zsb3coZXZ0OiBhbnksIGNvbmZpcm06IGFueSkge1xyXG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoeyBldnQsIGNvbmZpcm0gfSk7XHJcbiAgfVxyXG4gIGFjdGlvbihldnQ6IGFueSkge1xyXG4gICAgaWYgKGV2dCA9PT0gJ2FkZE1vcmUnKSB7XHJcbiAgICAgIHRoaXMucmVzZXRJc3N1ZUZvcm0oKTtcclxuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgICAgLy8gdGhpcy5jbG9zZVdvcmtGbG93KHRoaXMuaXNzdWVEYXRhLCBmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKGV2dCA9PT0gJ3ZpZXdJc3N1ZScpIHtcclxuICAgICAgdGhpcy52aWV3SXNzdWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZpZXdJc3N1ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XHJcbiAgICBsZXQgdXJsOiBzdHJpbmc7XHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsID0gJ2h0dHA6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XHJcbiAgICAgIHVybCArPSAnL2lzc3VlL2lzc3VlLXdvcmtyb29tLycgKyB0aGlzLmlzc3VlRGF0YT8uX2lkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXJsICs9ICcvYXVkaXQvaXNzdWUvaXNzdWUtd29ya3Jvb20vJyArIHRoaXMuaXNzdWVEYXRhPy5faWQ7XHJcbiAgICB9XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvcHVsYXRlIHRoZSB0aWNrbWFyayBvZiBvcHRpb25hbCBmaWVsZHNcclxuICAgKi9cclxuICBwb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCkge1xyXG4gICAgY29uc3QgYWN0aXZhdGVkT3B0aW9ucyA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzKSkge1xyXG4gICAgICBpZiAodGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2tleV0gPT09IHRydWUpIHtcclxuICAgICAgICBhY3RpdmF0ZWRPcHRpb25zLnB1c2goa2V5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5wb3B1bGF0ZU9wdGlvbi5lbWl0KGFjdGl2YXRlZE9wdGlvbnMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGZXRjaHMgaXNzdWUgZGV0YWlscyB3aGVuIGluIGVkaXQgbW9kZSBiYXNlZCBvbiB0aGUgaW5wdXQgaWQgcGFzc2VkXHJcbiAgICovXHJcbiAgZmV0Y2hJc3N1ZURldGFpbHMoKSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVEZXRhaWxzKHRoaXMuaXNzdWVJZCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZvcm0oZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0UmNFZGl0YWJsZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFBvcHVsYXRlcyB0aGUgaXNzdWUgZm9ybSB3aGVuIGluIGVkaXQgbW9kZVxyXG4gICAqIEBwYXJhbSBpc3N1ZURhdGEgaXNzdWUgZGF0YSBmZXRjaGVkIGZyb20gQVBJXHJcbiAgICovXHJcbiAgYXN5bmMgcG9wdWxhdGVGb3JtKGlzc3VlRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmRhdGFGb3JFZGl0ID0gaXNzdWVEYXRhO1xyXG4gICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICBpZiAoaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmlzTGlua1Jlc3BvbnNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGE/LnJjX2lkcz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaXNMaW5rUkMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGE/LmxpbmthZ2VfcmVzcG9uc2liaWxpdHlfZGV0YWlscz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGEgPSB7XHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlJZDpcclxuICAgICAgICAgIGlzc3VlRGF0YT8ubGlua2FnZV9yZXNwb25zaWJpbGl0eV9kZXRhaWxzWzBdPy5SZXBvcnRJZCxcclxuICAgICAgICByZXNwb25zaWJpbGl0eU5hbWU6XHJcbiAgICAgICAgICBpc3N1ZURhdGE/LmxpbmthZ2VfcmVzcG9uc2liaWxpdHlfZGV0YWlsc1swXT8uUmVwb3J0TmFtZSxcclxuICAgICAgICByY0lkOiBpc3N1ZURhdGE/LmxpbmthZ2VfcmVzcG9uc2liaWxpdHlfZGV0YWlsc1swXT8ucmNfaWRfYXJyLFxyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5T2JqZWN0SWQ6XHJcbiAgICAgICAgICBpc3N1ZURhdGE/LmxpbmthZ2VfcmVzcG9uc2liaWxpdHlfZGV0YWlsc1swXT8uc291cmNlX29iamVjdF9pZCxcclxuICAgICAgICBkdWVEYXRlSWQ6ICcnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0xpbmtRdWVzdGlvblZpc2libGUgPSBpc3N1ZURhdGE/LmxpbmtlZF9hc3Nlc3NtZW50X3F1ZXN0aW9uPy5yZXNwb25zZVxyXG4gICAgICA/Lm5hbWVcclxuICAgICAgPyB0cnVlXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgICBjb25zdCBpc3N1ZUR1ZURhdGUgPSBpc3N1ZURhdGE/LmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZVxyXG4gICAgICAuc3BsaXQoJy0nKVxyXG4gICAgICAubWFwKE51bWJlcik7XHJcbiAgICBpZiAoaXNzdWVEYXRhPy5saW5rZWRfYXNzZXNzbWVudF9xdWVzdGlvbikge1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvbiA9IHtcclxuICAgICAgICBxdWVzdGlvbk5hbWU6XHJcbiAgICAgICAgICBpc3N1ZURhdGE/LmxpbmtlZF9hc3Nlc3NtZW50X3F1ZXN0aW9uPy5yZXNwb25zZT8udGl0bGUgPz8gJycsXHJcbiAgICAgICAgcXVlc3Rpb25JZDogaXNzdWVEYXRhPy5saW5rZWRfYXNzZXNzbWVudF9xdWVzdGlvbj8ucmVzcG9uc2U/Lm5hbWUgPz8gJycsXHJcbiAgICAgICAgcXVlc3Rpb25OdW1iZXI6XHJcbiAgICAgICAgICBpc3N1ZURhdGE/LmxpbmtlZF9hc3Nlc3NtZW50X3F1ZXN0aW9uPy5yZXNwb25zZT8ucXVlc3Rpb25fbnVtYmVyID8/XHJcbiAgICAgICAgICAnJyxcclxuICAgICAgICBhc3Nlc3NtZW50SWQ6XHJcbiAgICAgICAgICBpc3N1ZURhdGE/LmxpbmtlZF9hc3Nlc3NtZW50X3F1ZXN0aW9uPy5hc3Nlc3NtZW50X2lkID8/ICcnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0gPSB7XHJcbiAgICAgIGlzc3VlTmFtZTogaXNzdWVEYXRhPy50aXRsZSA/PyAnJyxcclxuICAgICAgZXZpZGVuY2VSZXF1aXJlZDogaXNzdWVEYXRhPy5ldmlkZW5jZT8uZXZpZGVuY2VfZmxhZyA/PyAwLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uOiBpc3N1ZURhdGE/LmRlc2NyaXB0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uZGVzY3JpcHRpb25bMF0/LnRleHRcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzOiBpc3N1ZURhdGE/LmRlc2NyaXB0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uZGVzY3JpcHRpb25bMF0/LmF0dGFjaG1lbnRzXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgaXNzdWVDYXRlZ29yeTogaXNzdWVEYXRhPy5jYXRlZ29yeV9pZFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YT8uY2F0ZWdvcnlMaXN0Py5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+IGU/LmNhdGVnb3J5X2lkID09PSBpc3N1ZURhdGE/LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgaXNzdWVDdXN0b21UYWc6IGlzc3VlRGF0YT8uY3VzdG9tX3RhZ3MgPz8gW10sXHJcbiAgICAgIGlzc3VlUkM6IGlzc3VlRGF0YT8ucmNfaWRzPy5sZW5ndGhcclxuICAgICAgICA/IHRoaXMubGlzdERhdGE/LnJjTGlzdD8uZmlsdGVyKChlOiBhbnkpID0+XHJcbiAgICAgICAgICAgIGlzc3VlRGF0YT8ucmNfaWRzPy5pbmNsdWRlcyhlPy5yY19pZClcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICByZXNwb25zaWJpbGl0eUxpbmtlZDogaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHM/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5saW5rYWdlX3Jlc3BvbnNpYmlsaXR5X2RldGFpbHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICByZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50czogaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvbj8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uWzBdPy5hdHRhY2htZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgICAgaXNBc3NpZ25Ub015c2VsZjpcclxuICAgICAgICBpc3N1ZURhdGE/LmFzc2lnbmVlX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyPy5pZCA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOiB0aGlzLmxpc3REYXRhPy51c2VyTGlzdD8uZmlsdGVyKFxyXG4gICAgICAgIChlOiBhbnkpID0+IGU/Lm15X21lbWJlcl9pZCA9PT0gaXNzdWVEYXRhPy5hc3NpZ25lZV9pZFxyXG4gICAgICApLFxyXG4gICAgICBpc3N1ZUR1ZURhdGU6IGlzc3VlRGF0YT8uZnJlcXVlbmN5X2RldGFpbHM/LmZyZXF1ZW5jeV9kYXRlXHJcbiAgICAgICAgPyBtb21lbnQoXHJcbiAgICAgICAgICAgIGAke2lzc3VlRHVlRGF0ZVswXX0tJHtpc3N1ZUR1ZURhdGVbMV19LSR7aXNzdWVEdWVEYXRlWzJdfWAsXHJcbiAgICAgICAgICAgICdZWVlZLU1NLUREJ1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlRHVlVGltZTogdGhpcy5sb2dTZXJ2aWNlLmNvbnZlcnRGcm9tMjRUbzEyRm9ybWF0KFxyXG4gICAgICAgIGlzc3VlRGF0YT8uZnJlcXVlbmN5X2RldGFpbHM/LmZyZXF1ZW5jeV90aW1lXHJcbiAgICAgICksXHJcbiAgICAgIGV4Y2VwdGlvblR5cGU6IGlzc3VlRGF0YT8uZXhjZXB0aW9uX3R5cGUgPz8gMSxcclxuICAgICAgaXNzdWVSaXNrUmF0aW5nOiBpc3N1ZURhdGE/LnJpc2tfY2xhc3MgPz8gMSxcclxuICAgICAgaXNzdWVQcmlvcml0eTogaXNzdWVEYXRhPy5wcmlvcml0eSA/PyAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb25bMF0/LnRleHRcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlzaz8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlza1swXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5jY19lbWFpbC5sZW5ndGhcclxuICAgICAgICA/IGF3YWl0IHRoaXMuZ2VuZXJhdGVPdmVyc2Vlckxpc3QoXHJcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGE/LnVzZXJMaXN0LFxyXG4gICAgICAgICAgICBpc3N1ZURhdGE/Lm92ZXJzZWVyPy5jY19lbWFpbFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGZhaWx1cmVDQ1VzZXJzOiBpc3N1ZURhdGE/Lm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aFxyXG4gICAgICAgID8gYXdhaXQgdGhpcy5nZW5lcmF0ZU92ZXJzZWVyTGlzdChcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YT8udXNlckxpc3QsXHJcbiAgICAgICAgICAgIGlzc3VlRGF0YT8ub3ZlcnNlZXI/LmZhaWx1cmVfY2NfZW1haWxcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBsaW5rZWRDb250cm9sUmlzazogW10sXHJcbiAgICAgIGxpbmthZ2VUeXBlOiAnUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICBpc3N1ZVR5cGU6IGlzc3VlRGF0YT8uaXNzdWVUeXBlID8gaXNzdWVEYXRhPy5pc3N1ZVR5cGUgOiAnaXNzdWUnLFxyXG4gICAgICB0aXRsZTogaXNzdWVEYXRhPy5saW5rZWRfYXNzZXNzbWVudF9xdWVzdGlvbj8ucmVzcG9uc2U/LnRpdGxlID8/ICcnLFxyXG4gICAgICBxdWVzdGlvbk51bWJlcjpcclxuICAgICAgICBpc3N1ZURhdGE/LmxpbmtlZF9hc3Nlc3NtZW50X3F1ZXN0aW9uPy5yZXNwb25zZT8ucXVlc3Rpb25fbnVtYmVyID8/ICcnLFxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDPy5sZW5ndGggPiAwXHJcbiAgICAgICAgPyAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSB0cnVlKVxyXG4gICAgICAgIDogKHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgICBpc3N1ZURhdGEubGlua2FnZV9vYmplY3Q/LnNvdXJjZSA9PT0gJ0dMT0JBTCcgJiYgaXNzdWVEYXRhPy5yY19pZFxyXG4gICAgICAgID8gKHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gZmFsc2UpXHJcbiAgICAgICAgOiAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSB0cnVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0T3B0aW9uYWxGaWVsZChpc3N1ZURhdGEpO1xyXG4gICAgdGhpcy5zZXRMaW5rKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIG9wdGlvbmFsIGZpZWxkc1xyXG4gICAqIEBwYXJhbSBpc3N1ZURhdGEgIGlzc3VlIGRhdGEgZmV0Y2hlZCBmcm9tIEFQSVxyXG4gICAqL1xyXG4gIHNldE9wdGlvbmFsRmllbGQoaXNzdWVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cyA9IHtcclxuICAgICAgRVhDRVBUSU9OX1RZUEU6IGlzc3VlRGF0YS5leGNlcHRpb25fdHlwZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgRVZJREVOQ0U6IGlzc3VlRGF0YS5ldmlkZW5jZS5ldmlkZW5jZV9mbGFnID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBQUklPUklUWTogaXNzdWVEYXRhLnByaW9yaXR5ID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBJU1NVRV9UWVBFOiBmYWxzZSxcclxuICAgICAgQVNTT0NJQVRFRF9SSVNLUzogaXNzdWVEYXRhLmFzc29jaWF0ZWRfcmlzay5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YS5hc3NvY2lhdGVkX3Jpc2tbMF0udGV4dC5sZW5ndGhcclxuICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgOiBmYWxzZVxyXG4gICAgICAgIDogZmFsc2UsXHJcbiAgICAgIE9WRVJTSUdIVDpcclxuICAgICAgICBpc3N1ZURhdGEub3ZlcnNlZXIuY2NfZW1haWwubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlci5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgOiBmYWxzZSxcclxuICAgIH07XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGxpc3Qgb2Ygc2VsZWN0ZWQgb3ZlcnNlZXJcclxuICAgKiBAcGFyYW0gYWxsVXNlckxpc3QgbGlzdCBvZiBhbGwgdXNlcnMgaW4gdGhlIG9yZ2FuemF0aW9uXHJcbiAgICogQHBhcmFtIG92ZXJzZWVyTGlzdCAgbGl0IG9mIHRoZSBvdmVyc2VlciB0aGF0IG5lZWRzIHRvIGJlIGZpbHRlcmVkXHJcbiAgICogQHJldHVybnMgIGxpc3Qgb2YgYXJyYXkgY29udGFpbmluZyB0aGUgdXNlcnMgb2JqZWN0c1xyXG4gICAqL1xyXG4gIGdlbmVyYXRlT3ZlcnNlZXJMaXN0KGFsbFVzZXJMaXN0OiBhbnksIG92ZXJzZWVyTGlzdDogYW55KSB7XHJcbiAgICByZXR1cm4gb3ZlcnNlZXJMaXN0Lm1hcCgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvdW5kVXNlciA9IGFsbFVzZXJMaXN0LmZpbmQoXHJcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5teV9tZW1iZXJfaWQgPT09IHVzZXIubWVtYmVyX2lkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChmb3VuZFVzZXIpIHtcclxuICAgICAgICByZXR1cm4gZm91bmRVc2VyO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVzZXRzIGlzc3VlIGZvcm1cclxuICAgKi9cclxuICByZXNldElzc3VlRm9ybSgpIHtcclxuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtID0ge1xyXG4gICAgICBpc3N1ZU5hbWU6ICcnLFxyXG4gICAgICBldmlkZW5jZVJlcXVpcmVkOiAwLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50czogW10sXHJcbiAgICAgIHJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgICAgYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBpc3N1ZUNhdGVnb3J5OiBbXSxcclxuICAgICAgaXNzdWVDdXN0b21UYWc6IFtdLFxyXG4gICAgICBpc3N1ZVJDOiBbXSxcclxuICAgICAgaXNzdWVUeXBlOiAnaXNzdWUnLFxyXG4gICAgICBpc0Fzc2lnblRvTXlzZWxmOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOiBbXSxcclxuICAgICAgaXNzdWVEdWVEYXRlOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiBERUZBVUxUX1RJTUUsXHJcbiAgICAgIGV4Y2VwdGlvblR5cGU6IDEsXHJcbiAgICAgIGlzc3VlUmlza1JhdGluZzogMSxcclxuICAgICAgaXNzdWVQcmlvcml0eTogMSxcclxuICAgICAgaXNzdWVSZWNvbW1lbmRhdGlvbjogJycsXHJcbiAgICAgIGlzc3VlQXNzb2NpYXRlZFJpc2s6ICcnLFxyXG4gICAgICBpc3N1ZUNDVXNlcnM6IFtdLFxyXG4gICAgICBmYWlsdXJlQ0NVc2VyczogW10sXHJcbiAgICAgIHJlc3BvbnNpYmlsaXR5TGlua2VkOiBbXSxcclxuICAgIH07XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XHJcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1trZXldID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnNtaWxleU1lc3NhZ2UgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkLmA7XHJcbiAgICB0aGlzLm1vZGUgPSAnQ1JFQVRFJztcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHRoaXMubW9kZSk7XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRSQygpO1xyXG4gIH1cclxuICBjaGVja0Rlc2NyaXB0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb24gPSAnJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uID0gJyc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlzayA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlzayA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UaW1lQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLnZhbGlkYXRlRGF0ZShldmVudD8uc2VsZWN0ZWRWYWx1ZSwgdGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWUgPSBldmVudD8uc2VsZWN0ZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlRGF0ZSh0aW1lOiBzdHJpbmcsIGRhdGVTdHJpbmc6IGFueSkge1xyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUpIHtcclxuICAgICAgY29uc3QgaXNNb21lbnQgPSBtb21lbnQuaXNNb21lbnQoZGF0ZVN0cmluZy5nZXRUaW1lKTtcclxuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShcclxuICAgICAgICBpc01vbWVudCA/IGRhdGVTdHJpbmc/LmRhdGU/LiRkIDogZGF0ZVN0cmluZ1xyXG4gICAgICApO1xyXG4gICAgICBjb25zdCBpc3N1ZUR1ZURhdGUgPSBjdXJyZW50RGF0ZS50b0RhdGVTdHJpbmcoKS5zcGxpdCgnICcpO1xyXG4gICAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBtb21lbnQoXHJcbiAgICAgICAgYCR7aXNzdWVEdWVEYXRlWzFdfS0ke2lzc3VlRHVlRGF0ZVsyXX0tJHtpc3N1ZUR1ZURhdGVbM119ICR7dGltZX1gLFxyXG4gICAgICAgICdNTU0tREQtWVlZWSBISDptbSBhJ1xyXG4gICAgICApLnVuaXgoKTtcclxuICAgICAgY29uc3QgdXNlclRpbWVab25lID0gdGhpcy5hdXRoU2VydmljZT8udXNlckRldGFpbHM/LnRpbWV6b25lO1xyXG4gICAgICBjb25zdCBjdXJyZW50RGF0ZUluVGltZVpvbmUgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcclxuICAgICAgICB0aW1lWm9uZTogdXNlclRpbWVab25lLFxyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY3VycmVudERhdGVUaW1lSW5UaW1lWm9uZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIGN1cnJlbnREYXRlSW5UaW1lWm9uZVxyXG4gICAgICApLmdldFRpbWUoKTtcclxuICAgICAgaWYgKHNlbGVjdGVkRGF0ZSAqIDEwMDAgPCBjdXJyZW50RGF0ZVRpbWVJblRpbWVab25lKSB7XHJcbiAgICAgICAgdGhpcy5pc0Z1dHVyZURhdGUgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaXNGdXR1cmVEYXRlID0gdHJ1ZTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldERhdGVWYWxpZGF0aW9uTWVzc2FnZSgpIHtcclxuICAgIHJldHVybiAnUGxlYXNlIHNldCBhIGZ1dHVyZSBkYXRlLic7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgZG9jdW1lbnRDbGljayhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRlUGlja2VyT2JqZWN0ID0ge1xyXG4gICAgICBldmVudCA6IGV2ZW50LFxyXG4gICAgICBjbGFzcyA6ICdtYXgtdGltZScsXHJcbiAgICAgIHBvcHVwIDogdGhpcy5kYXRlUGlja2VyUG9wVXAsXHJcbiAgICAgIGNvbXBvbmVudCA6IHRoaXMuZGF0ZVBpY2tlcixcclxuICAgICAgb3ZlcmxheSA6IHRoaXMuZGF0ZVBpY2tlck92ZXJsYXlcclxuICAgIH1cclxuICAgIHRoaXMuY29tbW9uU2VydmljZS5oYW5kbGVEb2N1bWVudENsaWNrKFxyXG4gICAgICBkYXRlUGlja2VyT2JqZWN0XHJcbiAgICApXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIDxwPmxvZy1hbi1pc3N1ZSB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwibG9nLWFuLWlzc3VlXCIgKm5nSWY9XCIhc2hvd1NtaWxleVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIlxyXG4gICAgICAgIChbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSB8fFxyXG4gICAgICAgICAgaXNMaW5rUmVzcG9uc2liaWxpdHkpICYmXHJcbiAgICAgICAgIWlzTGlua1F1ZXN0aW9uVmlzaWJsZVxyXG4gICAgICBcIlxyXG4gICAgICBjbGFzcz1cImxlZnRcIlxyXG4gICAgICBbY2xhc3MuY2hlY2tlZF09XCJmYWxzZVwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1pdGVtcy5zdmdcIlxyXG4gICAgICAgIGFsdD1cImxpbmtfcmVzcG9uc2liaWxpdGllc1wiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICAgICAgIXJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWUpIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWSdcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJcclxuICAgICAgICAoWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHxcclxuICAgICAgICAgIGlzTGlua1Jlc3BvbnNpYmlsaXR5KSAmJlxyXG4gICAgICAgICFpc0xpbmtRdWVzdGlvblZpc2libGVcclxuICAgICAgXCJcclxuICAgICAgY2xhc3M9XCJyaWdodFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+e3sgbGlua1RleHQgfX1cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAqbmdJZj1cIlsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoXHJcbiAgICAgICAgICAgICAgICAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJyxcclxuICAgICAgICAgICAgICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBMaW5rIE1vcmUgUmVzcG9uc2liaWxpdGllc1xyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHRvIHRoaXMgaXNzdWVcIlxyXG4gICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSAmJlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICBzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKFxyXG4gICAgICAgICAgICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICAgICAgICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIFsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pIHx8XHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSAmJlxyXG4gICAgICAgICAgICAgICAgcmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgZnVsbC13aWR0aFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IHJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgZGVsZXRlSXRlbShcclxuICAgICAgICAgICAgICAgICAgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScsXHJcbiAgICAgICAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWRbMF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICFbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSAmJlxyXG4gICAgICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZFswXT8uUmVwb3J0TmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWRbMF0/LlJlcG9ydE5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIChbJ0NPTVBMSUFOQ0VfV09SS1JPT00nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSAmJlxyXG4gICAgICAgICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGgpIHx8XHJcbiAgICAgICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGggPiAxXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwibGlua1Jlc3AucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAre3tcclxuICAgICAgICAgICAgICAgICFbXCJDT01QTElBTkNFX1dPUktST09NXCJdLmluY2x1ZGVzKG9wZW5lZEZyb20pXHJcbiAgICAgICAgICAgICAgICAgID8gbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICAgICAgICA6IGxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWQ/Lmxlbmd0aFxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknICYmXHJcbiAgICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5yZXNwb25zaWJpbGl0eUxpbmtlZD8ubGVuZ3RoXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcihcclxuICAgICAgICAgICAgICAgICdMSU5LX01PUkVfUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICAgICAgICAgICAgJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWSdcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxhcHAtcG9wb3ZlciAjbGlua1Jlc3AgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICBsZXQgcmVzcCBvZiBsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkXHJcbiAgICAgICAgICAgICAgICAgIHwgc2xpY2VcclxuICAgICAgICAgICAgICAgICAgICA6ICghWydDT01QTElBTkNFX1dPUktST09NJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgPyAxIDogMClcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScsIHJlc3ApXCJcclxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyByZXNwPy5SZXBvcnROYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cIlsnQVNTRVNTTUVOVCddLmluY2x1ZGVzKG9wZW5lZEZyb20pIHx8IGlzTGlua1F1ZXN0aW9uVmlzaWJsZVwiXHJcbiAgICAgIGNsYXNzPVwibGVmdFwiXHJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWNvbnRyb2xzLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwibGlua19yZXNwb25zaWJpbGl0eVwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/LnJlc3BvbnNpYmlsaXR5TGlua2VkPy5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICAgICAgIXJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWUpIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0xJTktfUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiWydBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHwgaXNMaW5rUXVlc3Rpb25WaXNpYmxlXCJcclxuICAgICAgY2xhc3M9XCJyaWdodFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7IGxpbmtUZXh0IH19PC9sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcclxuICAgICAgICAgICpuZ0lmPVwiWydBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHwgaXNMaW5rUXVlc3Rpb25WaXNpYmxlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAoWydBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiZcclxuICAgICAgICAgICAgICAgICAgcmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZSkgfHxcclxuICAgICAgICAgICAgICAgIGlzTGlua1F1ZXN0aW9uVmlzaWJsZVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgZnVsbC13aWR0aFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IHJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiWydBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHwgaXNMaW5rUXVlc3Rpb25WaXNpYmxlXCJcclxuICAgICAgY2xhc3M9XCJsZWZ0XCJcclxuICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiZmFsc2VcIlxyXG4gICAgPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2xpbmstaXRlbXMuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJsaW5rX2Fzc2Vzc21lbnRfcXVlc3Rpb25cIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAhYXNzZXNzbWVudFF1ZXN0aW9uPy5xdWVzdGlvbk5hbWUgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnTElOS19BU1NFU1NNRU5UX1FVRVNUSU9OJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICAqbmdJZj1cImlzTGlua1F1ZXN0aW9uVmlzaWJsZSB8fCBbJ0FTU0VTU01FTlQnXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVwiXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJbJ0FTU0VTU01FTlQnXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSB8fCBpc0xpbmtRdWVzdGlvblZpc2libGVcIlxyXG4gICAgICBjbGFzcz1cInJpZ2h0XCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+TGlua2VkIEFzc2Vzc21lbnQgUXVlc3Rpb24gPC9sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcclxuICAgICAgICAgICpuZ0lmPVwiWydBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHwgaXNMaW5rUXVlc3Rpb25WaXNpYmxlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAoWydBU1NFU1NNRU5UJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgJiZcclxuICAgICAgICAgICAgICAgICAgYXNzZXNzbWVudFF1ZXN0aW9uPy5xdWVzdGlvbk5hbWUpIHx8XHJcbiAgICAgICAgICAgICAgICBpc0xpbmtRdWVzdGlvblZpc2libGVcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0IGZ1bGwtd2lkdGhcIlxyXG4gICAgICAgICAgICAgIGFwcFRvb2x0aXA9XCJ7e1xyXG4gICAgICAgICAgICAgICAgYXNzZXNzbWVudFF1ZXN0aW9uPy5xdWVzdGlvbk51bWJlciArXHJcbiAgICAgICAgICAgICAgICAgICc6ICcgK1xyXG4gICAgICAgICAgICAgICAgICBhc3Nlc3NtZW50UXVlc3Rpb24/LnF1ZXN0aW9uTmFtZVxyXG4gICAgICAgICAgICAgIH19XCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3tcclxuICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRRdWVzdGlvbj8ucXVlc3Rpb25OdW1iZXIgK1xyXG4gICAgICAgICAgICAgICAgICBcIjogXCIgK1xyXG4gICAgICAgICAgICAgICAgICBhc3Nlc3NtZW50UXVlc3Rpb24/LnF1ZXN0aW9uTmFtZVxyXG4gICAgICAgICAgICAgIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxyXG4gICAgICAgIG9wZW5lZEZyb21cclxuICAgICAgKSB8fCBpc1Jpc2tDb250cm9sVmlzaWJsZVxyXG4gICAgXCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DT05UUk9MX1JJU0snXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DT05UUk9MX1JJU0snICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibGVmdFwiXHJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDBcIlxyXG4gICAgPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NPTlRST0xfUklTSydcclxuICAgICAgICBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DT05UUk9MX1JJU0snXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+U2VsZWN0IGEgY29udHJvbCBvciByaXNrPC9sYWJlbD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzayB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPT09IDBcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICBzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snLCAnSVNTVUVfQ09OVFJPTF9SSVNLJylcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIGNvbnRyb2wgb3Igcmlzay5cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcclxuICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgZGVsZXRlSXRlbShcclxuICAgICAgICAgICAgICAgICAgJ0lTU1VFX0NPTlRST0xfUklTSycsXHJcbiAgICAgICAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF1cclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPnt7IGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1Db250cm9sTmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DT05UUk9MX1JJU0snLGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1wiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ09OVFJPTF9SSVNLJywgJ0lTU1VFX0NPTlRST0xfUklTSycpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBjOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgbG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnIHwga2V5dmFsdWVcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSB7e2xvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZ3xqc29ufX0gLS0+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7XHJcbiAgICAgICAgICB0YWc/LnZhbHVlPy5jdXN0b21fdGFnX25hbWVcclxuICAgICAgICB9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidGFnPy52YWx1ZT8uY3VzdG9tX3RhZ19uYW1lXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnLnZhbHVlLmN1c3RvbV90YWdfdmFsdWVcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gSXNzdWUgVGl0bGUgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aFwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doYXQuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJuYW1lXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgIWxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX1RJVExFJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9USVRMRSdcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPklzc3VlIFRpdGxlIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFkZCBhIG5hbWUgZm9yIHRoaXMgaXNzdWVcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lXCJcclxuICAgICAgICAgIChmb2N1c2luKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1RJVExFJywgJ0lTU1VFX1RJVExFJylcIlxyXG4gICAgICAgICAgKGtleXVwKT1cIlxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lPy50cmltKCk/Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICA/IHJlbW92ZUVycm9yKCdpc3N1ZU5hbWUnKVxyXG4gICAgICAgICAgICAgIDogbnVsbFxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChmb2N1c291dCk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCcnLCAnJylcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZSA9PSAnJyB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX1RJVExFJ1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWRcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS5sZW5ndGggJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdJU1NVRV9USVRMRSdcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57eyBsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9USVRMRScsICdJU1NVRV9USVRMRScpXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlTmFtZScpXCI+XHJcbiAgICAgICAgICBFbnRlciBhIG5hbWUgZm9yIHRoaXMgaXNzdWUuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJBdHRhY2htZW50VHJhY2tbMF0/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXBsb2FkaW5nRmlsZSBvZiBBdHRhY2htZW50VHJhY2tbMF1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IHVwbG9hZGluZ0ZpbGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFwcC1saW5lLWxvYWRlciBbbG9hZGVySGVpZ2h0XT1cIjJcIj48L2FwcC1saW5lLWxvYWRlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgbG9nSXNzdWVGb3JtPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBmaWxlPy5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoZmlsZSwgJ0lTU1VFX0RFU0NSSVBUSU9OJylcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8dmNvbXBseS1lZGl0b3JcclxuICAgICAgICAgIFtlZGl0b3JDb25maWddPVwie1xyXG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgICAgICAgICBmaWxlOiBmYWxzZSxcclxuICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0Rlc2NyaXB0aW9uJ1xyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZURlc2NyaXB0aW9uXCJcclxuICAgICAgICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdJU1NVRV9ERVNDUklQVElPTicsICRldmVudClcIlxyXG4gICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJjaGVja0Rlc2NyaXB0aW9uKClcIlxyXG4gICAgICAgID48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIGlzc3VlIHR5cGUgc3RhcnQtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9USVRMRScgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0IGNoZWNrZWRcIj5cclxuICAgICAgPCEtLSA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aGF0LnN2Z1wiIGFsdD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX1RJVExFJ1wiPiAtLT5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPiBJc3N1ZSBUeXBlIDwvbGFiZWw+XHJcbiAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcclxuICAgICAgICAgIG5hbWU9XCJpc3N1ZS10eXBlXCJcclxuICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVUeXBlID09PSAnaXNzdWUnXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0SXNzdWVUeXBlKCdpc3N1ZScpXCJcclxuICAgICAgICAgID5Jc3N1ZVxyXG4gICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZjs8L2k+IC0tPlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1maWxlZFwiXHJcbiAgICAgICAgICBuYW1lPVwiaXNzdWUtdHlwZVwiXHJcbiAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlVHlwZSA9PT0gJ2luY2lkZW50J1wiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldElzc3VlVHlwZSgnaW5jaWRlbnQnKVwiXHJcbiAgICAgICAgICA+SW5jaWRlbnRcclxuICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBJc3N1ZSBDYXRlZ29yeSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DQVRFR09SWSdcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJyAmJlxyXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NBVEVHT1JZJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0FURUdPUlknXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+SXNzdWUgQ2F0ZWdvcnk8L2xhYmVsPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnkgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPT09IDBcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQVRFR09SWScsICdJU1NVRV9DQVRFR09SWScpXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIGNhdGVnb3J5IGZvciB0aGlzIGlzc3VlXCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgIGRlbGV0ZUl0ZW0oJ0lTU1VFX0NBVEVHT1JZJywgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NBVEVHT1JZJyxsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmNhdGVnb3J5X25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ0FURUdPUlknXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQVRFR09SWScsICdJU1NVRV9DQVRFR09SWScpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlQ2F0ZWdvcnknKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgU2VsZWN0IGFuIGlzc3VlIGNhdGVnb3J5LlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCB0YWcgb2YgbG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnXCJcclxuICAgICAgPlxyXG4gICAgICAgIDwhLS0ge3tsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWd8anNvbn19IC0tPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57eyB0YWc/Lm5hbWUgfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJ0YWc/Lm5hbWVcIiBbKG5nTW9kZWwpXT1cInRhZy52YWx1ZVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUmVzcG9uc2liaWxpdHkgQ2VudGVyIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgKm5nSWY9XCJpc1JDRWRpdGFibGUgfHwgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGhcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXHJcbiAgICAgIGFjdGl2ZUZpZWxkICYmXHJcbiAgICAgIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfUkMnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiaXNSQ0VkaXRhYmxlIHx8IGxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoXCJcclxuICAgICAgY2xhc3M9XCJsZWZ0XCJcclxuICAgICAgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAwXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJ1wiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImlzUkNFZGl0YWJsZSB8fCBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aFwiIGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcclxuICAgICAgICAgID5SZXNwb25zaWJpbGl0eSBDZW50ZXJcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiAqbmdJZj1cImlzUkNNYW5kYXRvcnlcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVJDIHx8IGxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID09PSAwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1JDJywgJ0lTU1VFX1JDJylcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKVwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImlzUkNFZGl0YWJsZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1JDJywgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdKVwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdPy5pdGVtX25hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkNbMF0/Lml0ZW1fbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlJDLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgK3t7IGxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8uc2xpY2UoMSk/Lmxlbmd0aCB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfUkMnICYmIGlzUkNFZGl0YWJsZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfUkMnLCAnSVNTVUVfUkMnKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVSQycpXCI+XHJcbiAgICAgICAgICBTZWxlY3QgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBpc3N1ZS5cclxuICAgICAgICA8L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLXBvcG92ZXIgI1JDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgbGV0IHJjIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVSQyB8IHNsaWNlIDogMTtcclxuICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1JDRWRpdGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9SQycsIHJjKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgcmM/Lml0ZW1fbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFdobyAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9XSE8nICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hvLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAobG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA9PT0gMCAmJlxyXG4gICAgICAgICAgICAhbG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmKSB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXHJcbiAgICAgICAgXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIChsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGYpICYmXHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1dITydcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPldobz8gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdFwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmXCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbyB8fCBsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfV0hPJywgJ0lTU1VFX1dITycpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvZ0lzc3VlRm9ybT8uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaG8gaXMgcmVzcG9uc2libGUgZm9yIGNvbXBsZXRpbmcgdGhlIHJlc3BvbnNpYmlsaXR5P1wiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5lbnRydXN0VG8/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9XSE8nLCBsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXSlcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+e3sgbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0/LmVtcGxveWVlX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfV0hPJyxsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uZW50cnVzdFRvWzBdPy5lbXBsb3llZV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1dITydcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1dITycsICdJU1NVRV9XSE8nKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2VudHJ1c3RUbycpXCI+XHJcbiAgICAgICAgICBTZWxlY3QgdGhlIHBlcnNvbiByZXNwb25zaWJsZSBmb3IgcmVzb2x2aW5nIHRoaXMgaXNzdWUuXHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic3dpdGNoLXJvdyBhbGlnbi1yaWdodFwiXHJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YXBwLWNzLXN3aXRjaFxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXCJcclxuICAgICAgICAgICAgWyhuZ1ZhbHVlKV09XCJsb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZlwiXHJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cImFzc2lnbk15c2VsZigkZXZlbnQpXCJcclxuICAgICAgICAgICAgPk9SIEFTU0lHTiBUTyBNWVNFTEY8L2FwcC1jcy1zd2l0Y2hcclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBNYXhpbXVuIFRpbWUgdG8gUmVzb2x2ZSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcclxuICAgICAgYWN0aXZlRmllbGQgJiZcclxuICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9EQVRFX1RJTUUnICYmXHJcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVxyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEdWVEYXRlXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hlbi5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlRGF0ZSB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0RBVEVfVElNRSdcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEdWVEYXRlICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfREFURV9USU1FJ1wiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXHJcbiAgICAgICAgICA+TWF4aW11bSBUaW1lIHRvIFJlc29sdmUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS10aW1lLXBpY2tlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBpY2tlci1ncm91cFwiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNldCBhIGRlYWRsaW5lLlwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxyXG4gICAgICAgICAgICAgIGlkPVwibWF4LXRpbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgICNkYXRlUGlja2VyXHJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIlxyXG4gICAgICAgICAgICAgICAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgcmVtb3ZlRXJyb3IoJ2lzc3VlRHVlRGF0ZScpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbY29uZmlnXT1cImRhdGVDb25maWdcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtb3ZlcmxheVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInBpY2tlci1ncm91cFwiXHJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInRpbWVQaWNrZXIucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAobW91c2VvdmVyKT1cInNldEN1cnJlbnRUaW1lKClcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlRHVlVGltZVwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVEdWVUaW1lXCJcclxuICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidGltZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGltZVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIFttaW5dPVwiY3VycmVudFRpbWVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxhcHAtdGltZS1waWNrZXJcclxuICAgICAgICAgICAgICBbdGltZV09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRHVlVGltZVwiXHJcbiAgICAgICAgICAgICAgKG9uVGltZVNlbGVjdGlvbik9XCJcclxuICAgICAgICAgICAgICAgIG9uVGltZUNoYW5nZWQoJGV2ZW50KTsgdGltZVBpY2tlci5jbG9zZVBvcG92ZXIoJ3RvcCcpXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPjwvYXBwLXRpbWUtcGlja2VyPlxyXG4gICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cFxyXG4gICAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZUR1ZURhdGUnKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgU2VsZWN0IHRoZSBkYXRlIGJ5IHdoaWNoIHRoaXMgaXNzdWUgbmVlZHMgdG8gYmUgcmVzb2x2ZWQuXHJcbiAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIiFpc0Z1dHVyZURhdGVcIj5cclxuICAgICAgICAgIHt7IGdldERhdGVWYWxpZGF0aW9uTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBSZWNvbW1lbmRlZCBBY3Rpb25zIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSZWNvbW1lbmRhdGlvblwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3JlY29tbWVuZGVkLWFjdGlvbi5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiEobG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gfCBzcGFjZUJyZWFrZXIpLmxlbmd0aFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCIobG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gfCBzcGFjZUJyZWFrZXIpLmxlbmd0aCA+IDBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxyXG4gICAgICAgICAgPlJlY29tbWVuZGVkIEFjdGlvbnMgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzFdPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saXN0XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzFdXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyB1cGxvYWRpbmdGaWxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFwcC1saW5lLWxvYWRlciBbbG9hZGVySGVpZ2h0XT1cIjJcIj48L2FwcC1saW5lLWxvYWRlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHNcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGZpbGU/Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCAnUkVDT01NRU5ERURfQUNUSU9OUycpXCJcclxuICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uXCJcclxuICAgICAgICAgIFtlZGl0b3JDb25maWddPVwie1xyXG4gICAgICAgICAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgIGZpbGU6IHRydWUsXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnUmVjb21tZW5kZWQgYWN0aW9ucydcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiXHJcbiAgICAgICAgICAgIGxvZ0lzc3VlRm9ybT8uaXNzdWVSZWNvbW1lbmRhdGlvbj8udHJpbSgpPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgPyByZW1vdmVFcnJvcignaXNzdWVSZWNvbW1lbmRhdGlvbicpXHJcbiAgICAgICAgICAgICAgOiBudWxsXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJjaGVja0Rlc2NyaXB0aW9uKClcIlxyXG4gICAgICAgICAgKHNlbmRTYXZlZEZpbGVzKT1cInNlbGVjdEZpbGUoJ1JFQ09NTUVOREVEX0FDVElPTlMnLCAkZXZlbnQpXCJcclxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgICA8cFxyXG4gICAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZVJlY29tbWVuZGF0aW9uJylcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFNwZWNpZnkgdGhlIHJlY29tbWVuZGVkIGFjdGlvbnMgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSAqbmdJZj1cIiFoaWRkZW5MaXN0LmluY2x1ZGVzKCdSSVNLX0NMQVNTSUZJQ0FUSU9OJylcIiAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIiAtLT5cclxuICA8IS0tIHJlbW92ZWQgdGhlIGFib3ZlIGNvbmRpdGlvbiBzaW5jZSBSaXNrIENsYXNzaWZpY2F0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgYnkgZGVmYXVsdCBpbiBsb2cgYW4gaXNzdWUgZm9ybSAtLT5cclxuXHJcbiAgPCEtLSBSaXNrIENsYXNzaWZpY2F0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIGlkPVwicmlza19jbGFzc2lmaWNhdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSaXNrUmF0aW5nXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmlza3Muc3ZnXCJcclxuICAgICAgICBhbHQ9XCJpbVwiXHJcbiAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVJpc2tSYXRpbmdcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSaXNrUmF0aW5nXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJpc2sgQ2xhc3NpZmljYXRpb248L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbGFzc2lmaWNhdGlvblwiPlxyXG4gICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgIGNsYXNzPVwibG93XCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNsYXNzIG9mIHJpc2tDbGFzc2lmaWNhdGlvblwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltjbGFzcy5jbGFzc11cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJjbGFzc2lmaWNhdGlvblwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImNsYXNzLnZhbHVlXCJcclxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUmlza1JhdGluZyA9PT0gY2xhc3MudmFsdWVcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlUmlza1JhdGluZ1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGNsYXNzLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIEV4Y2VwdGlvbiBUeXBlIC0tPlxyXG4gIDxkaXZcclxuICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVhDRVBUSU9OX1RZUEVcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPiAtMVwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2V4Y2VwdGlvbi10eXBlLnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiaW1cIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID09PSBudWxsXCJcclxuICAgICAgLz5cclxuXHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPiAtMVwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkV4Y2VwdGlvbiBUeXBlPC9sYWJlbD5cclxuICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgbmFtZT1cImV4Y2VwdGlvbi10eXBlXCJcclxuICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA9PT0gMVwiXHJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV4Y2VwdGlvbigxKVwiXHJcbiAgICAgICAgICA+RGVzaWduIEV4Y2VwdGlvblxyXG4gICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZjs8L2k+IC0tPlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1maWxlZFwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwiMlwiXHJcbiAgICAgICAgICBuYW1lPVwiZXhjZXB0aW9uLXR5cGVcIlxyXG4gICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID09PSAyXCJcclxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXhjZXB0aW9uKDIpXCJcclxuICAgICAgICAgID5FZmZlY3RpdmVuZXNzIEV4Y2VwdGlvblxyXG4gICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZjs8L2k+IC0tPlxyXG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFByaW9yaXR5IC0tPlxyXG4gIDxkaXZcclxuICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuUFJJT1JJVFlcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHlcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9wcmlvcml0eS5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHlcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eSA+IDBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Qcmlvcml0eTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHByaW9yaXR5IG9mIHJpc2tQcm9yaXR5XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW3ByaW9yaXR5LmNsYXNzXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgbmFtZT1cImNsYXNzaWZpY2F0aW9uLXByaW9yaXR5XCJcclxuICAgICAgICAgICAgICBbdmFsdWVdPVwicHJpb3JpdHkudmFsdWVcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eSA9PT0gcHJpb3JpdHkudmFsdWVcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlUHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBwcmlvcml0eS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBBc3NvY2lhdGVkIFJpc2tzIC0tPlxyXG4gIDxkaXZcclxuICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1wiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrXCI+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzb2NpYXRlZC1yaXNrcy5zdmdcIlxyXG4gICAgICAgIGFsdD1cImltXCJcclxuICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlQXNzb2NpYXRlZFJpc2sudHJpbSgpLmxlbmd0aFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUFzc29jaWF0ZWRSaXNrLnRyaW0oKS5sZW5ndGhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Bc3NvY2lhdGVkIFJpc2tzIDwvbGFiZWw+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1syXT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbGUtbGlzdFwiXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB1cGxvYWRpbmdGaWxlIG9mIEF0dGFjaG1lbnRUcmFja1syXVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgdXBsb2FkaW5nRmlsZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWxpc3RcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBsb2dJc3N1ZUZvcm0/LmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBmaWxlPy5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoZmlsZSwgJ0FTU09DSUFURURfUklTS1MnKVwiXHJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDx2Y29tcGx5LWVkaXRvclxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlza1wiXHJcbiAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cIntcclxuICAgICAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgICAgICBmaWxlOiBmYWxzZSxcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdBc3NvY2lhdGVkIFJpc2tzJ1xyXG4gICAgICAgICAgfVwiXHJcbiAgICAgICAgICAoY2xpY2tPdXRzaWRlKT1cImNoZWNrRGVzY3JpcHRpb24oKVwiXHJcbiAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnQVNTT0NJQVRFRF9SSVNLUycsICRldmVudClcIlxyXG4gICAgICAgID48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIE92ZXJzZWVyIC0tPlxyXG4gIDxkaXZcclxuICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICBbY2xhc3MuYWN0aXZlXT1cImZhbHNlXCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5PVkVSU0lHSFRcIlxyXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxyXG4gICAgICBhY3RpdmVGaWVsZCAmJlxyXG4gICAgICAhWydJU1NVRV9DQycsICdJU1NVRV9GQ0MnXS5pbmNsdWRlcyhhY3RpdmVGaWVsZCkgJiZcclxuICAgICAgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJsZWZ0XCJcclxuICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiXHJcbiAgICAgICAgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDAgfHxcclxuICAgICAgICBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAwXHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2Z1wiXHJcbiAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgKGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPT09IDAgJiZcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID09PSAwKSB8fFxyXG4gICAgICAgICAgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DQycgfHxcclxuICAgICAgICAgIGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfRkNDJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8c3ZnXHJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgICAgKGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQycpIHx8XHJcbiAgICAgICAgICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0ZDQydcclxuICAgICAgICBcIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5PdmVyc2lnaHQ8L2xhYmVsPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0XCJcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICFsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2VycyB8fFxyXG4gICAgICAgICAgICBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQycsICdJU1NVRV9DQycpXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJXaG8gc2hvdWxkIGhhdmUgb3ZlcnNpZ2h0IG9mIHRoaXMgaXNzdWU/XCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQycsIGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdKVwiXHJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiQ0MucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAre3sgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aCB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NDJyxsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAxXCIgdHlwZT1cImJ1dHRvblwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIkNDLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7bG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NDJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0MnLCAnSVNTVUVfQ0MnKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxyXG4gICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgIWxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnMgfHxcclxuICAgICAgICAgICAgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfRkNDJywgJ0lTU1VFX0ZDQycpXCJcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIldobyBzaG91bGQgYmUgbm90aWZpZWQgaWYgdGhlIGlzc3VlIGlzIG5vdCByZXNvbHZlZD9cIlxyXG4gICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfRkNDJywgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXSlcIlxyXG4gICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID57eyBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJGQ0MucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAxXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICt7eyBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGggfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIiB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiRkNDLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7bG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfRkNDJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfRkNDJywgJ0lTU1VFX0ZDQycpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGFwcC1wb3BvdmVyICNDQyBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgIGxldCBjYyBvZiBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2VycyB8IHNsaWNlIDogMTtcclxuICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0MnLCBjYylcIlxyXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGNjPy5lbXBsb3llZV9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICA8YXBwLXBvcG92ZXIgI0ZDQyBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgIGxldCBmY2Mgb2YgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2VycyB8IHNsaWNlIDogMTtcclxuICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfRkNDJywgZmNjKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgZmNjPy5lbXBsb3llZV9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRXZpZGVuY2UgLS0+XHJcbiAgPGRpdlxyXG4gICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5FVklERU5DRVwiXHJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cInRydWVcIj5cclxuICAgICAgPCEtLSA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9mb3JtYXQtZXZpZGVuY2Uuc3ZnXCIgYWx0PVwiaW1cIj4gLS0+XHJcbiAgICAgIDxzdmdcclxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L3N2Zz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkV2aWRlbmNlPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWZvcm1hdFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgPkRvIHlvdSB3YW50IGV2aWRlbmNlIG9mIGNvbXBsZXRpb24gb2YgdGhlIGlzc3VlIHRvIGJlXHJcbiAgICAgICAgICAgIHVwbG9hZGVkPzwvc3BhblxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgICAgICBbbmFtZV09XCInZmlsZS1ldmlkZW5jZSdcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCIxXCJcclxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV2aWRlbmNlUmVxdWlyZWQgPT09IDFcIlxyXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXZpZGVuY2UoMSlcIlxyXG4gICAgICAgICAgICAgID5ZZXNcclxuICAgICAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cclxuICAgICAgICAgICAgICBbbmFtZV09XCInZmlsZS1ldmlkZW5jZSdcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCIwXCJcclxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV2aWRlbmNlUmVxdWlyZWQgPT09IDBcIlxyXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXZpZGVuY2UoMClcIlxyXG4gICAgICAgICAgICAgID5Ob1xyXG4gICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cclxuPGFwcC1yYWRpby1saXN0XHJcbiAgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfQ0FUR09SWVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8uY2F0ZWdvcnlMaXN0XCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeVwiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2NhdGVnb3J5X2lkJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2NhdGVnb3J5X25hbWUnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfQ0FURUdPUlknXCJcclxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfQ0FURUdPUlknKVwiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX0NBVEVHT1JZJylcIlxyXG4+XHJcbjwvYXBwLXJhZGlvLWxpc3Q+XHJcblxyXG48YXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdFxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9SQydcIlxyXG4gIFtyZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XT1cImxpc3REYXRhPy5yY0xpc3RcIlxyXG4gIFtyYWRpb1NlbGVjdGlvbl09XCJmYWxzZVwiXHJcbiAgW3NlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1wiXHJcbiAgW3JjSWRLZXldPVwiJ2l0ZW1faWQnXCJcclxuICAoc2F2ZVNlbGVjdGVkTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9SQycpXCJcclxuICAoY2xvc2VSY0xpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9SQycpXCJcclxuPlxyXG48L2FwcC1yZXNwb25zaWJpbGl0eS1jZW50ZXJzLWxpc3Q+XHJcblxyXG48YXBwLXJhZGlvLWxpc3RcclxuICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9XSE9cIlxyXG4gIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/LnVzZXJMaXN0XCJcclxuICBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5lbnRydXN0VG9cIlxyXG4gIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9pZCdcIlxyXG4gIFtkaXNwbGF5S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiXHJcbiAgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX1dITydcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9XSE8nKVwiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX1dITycpXCJcclxuPjwvYXBwLXJhZGlvLWxpc3Q+XHJcblxyXG48YXBwLXJhZGlvLWxpc3RcclxuICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9UWVBFXCJcclxuICBbaXRlbXNMaXN0XT1cImxpc3REYXRhPy5pc3N1ZVR5cGVMaXN0XCJcclxuICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uaXNzdWVUeXBlXCJcclxuICBbaWRlbnRpZmllcktleV09XCInaXNzdWVfaWQnXCJcclxuICBbZGlzcGxheUtleV09XCInaXNzdWVfdHlwZV9uYW1lJ1wiXHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX1RZUEUnXCJcclxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfVFlQRScpXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfVFlQRScpXCJcclxuPjwvYXBwLXJhZGlvLWxpc3Q+XHJcblxyXG48YXBwLWNoZWNrYm94LWxpc3RcclxuICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9DQ1wiXHJcbiAgW3R3b0NvbHVtbl09XCJ0cnVlXCJcclxuICBbaXRlbXNMaXN0XT1cIlxyXG4gICAgbGlzdERhdGEudXNlckxpc3RcclxuICAgICAgfCB1c2VyRmlsdGVyXHJcbiAgICAgICAgOiAnZW1wbG95ZWVfZW1haWwnXHJcbiAgICAgICAgOiBsb2dJc3N1ZUZvcm0uZW50cnVzdFRvXHJcbiAgICAgICAgOiB7IGVtcGxveWVlX2VtYWlsOiBjdXJyZW50VXNlcj8uZW1haWwgfVxyXG4gIFwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2Vyc1wiXHJcbiAgW2lkZW50aWZpZXJLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCJcclxuICBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfQ0MnXCJcclxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfQ0MnKVwiXHJcbiAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX0NDJylcIlxyXG4+PC9hcHAtY2hlY2tib3gtbGlzdD5cclxuXHJcbjxhcHAtY2hlY2tib3gtbGlzdFxyXG4gIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX0ZDQ1wiXHJcbiAgW3R3b0NvbHVtbl09XCJ0cnVlXCJcclxuICBbaXRlbXNMaXN0XT1cIlxyXG4gICAgbGlzdERhdGEudXNlckxpc3RcclxuICAgICAgfCB1c2VyRmlsdGVyXHJcbiAgICAgICAgOiAnZW1wbG95ZWVfZW1haWwnXHJcbiAgICAgICAgOiBsb2dJc3N1ZUZvcm0uZW50cnVzdFRvXHJcbiAgICAgICAgOiB7IGVtcGxveWVlX2VtYWlsOiBjdXJyZW50VXNlcj8uZW1haWwgfVxyXG4gIFwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmZhaWx1cmVDQ1VzZXJzXCJcclxuICBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIlxyXG4gIFt0b29sdGlwS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9GQ0MnXCJcclxuICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnSVNTVUVfRkNDJylcIlxyXG4gIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9GQ0MnKVwiXHJcbj48L2FwcC1jaGVja2JveC1saXN0PlxyXG5cclxuPGFwcC1yZXNwb25zaWJpbGl0eS1yaXNrLXNlbGVjdG9yXHJcbiAgW2xvYWRpbmddPVwiaXNSaXNrQ29udHJvbExvYWRpbmdcIlxyXG4gICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdJU1NVRV9DT05UUk9MX1JJU0snXCJcclxuICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ09OVFJPTF9SSVNLJylcIlxyXG4gIChmZXRjaExpc3QpPVwiZ2V0TGlua2FnZShpc3N1ZURldGFpbHM/LmF1ZGl0T2JqSWQsICRldmVudClcIlxyXG4gIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsICdJU1NVRV9DT05UUk9MX1JJU0snKVwiXHJcbiAgW2FjdGl2ZUVudGl0eV09XCJsb2dJc3N1ZUZvcm0/LmxpbmthZ2VUeXBlXCJcclxuICBbbGlzdEl0ZW1zXT1cImxpc3REYXRhPy5saW5rYWdlTGlzdFwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1wiXHJcbj48L2FwcC1yZXNwb25zaWJpbGl0eS1yaXNrLXNlbGVjdG9yPlxyXG5cclxuPGFwcC1zbWlsZXktZGlhbG9nLWlubGluZVxyXG4gICpuZ0lmPVwic2hvd1NtaWxleVwiXHJcbiAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgW2FjdGlvbkJ1dHRvbnNdPVwiZGlzcGxheUFjdGlvbkJ1dHRvbnNcIlxyXG4gIChhY3Rpb24pPVwiYWN0aW9uKCRldmVudClcIlxyXG4gIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCJcclxuPlxyXG48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cclxuXHJcbjxhcHAtbGluay1yZXNwb25zaWJpbGl0eS1saXN0XHJcbiAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWSdcIlxyXG4gIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzXT1cImxvZ0lzc3VlRm9ybT8ucmVzcG9uc2liaWxpdHlMaW5rZWRcIlxyXG4gIChjbG9zZUJ1dHRvbik9XCJmaWVsZERlc2VsZWN0b3IoJ0xJTktfTU9SRV9SRVNQT05TSUJJTElUWScpXCJcclxuICBbcmVzcElkS2V5XT1cIidSZXBvcnRJZCdcIlxyXG4gIFtyYWRpb1NlbGVjdGlvbl09XCJmYWxzZVwiXHJcbiAgKHNlbGVjdGVkUmVzcG9uc2liaWxpdHkpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCAnTElOS19NT1JFX1JFU1BPTlNJQklMSVRZJylcIlxyXG4+PC9hcHAtbGluay1yZXNwb25zaWJpbGl0eS1saXN0PlxyXG4iXX0=
|