vcomply-workflow-engine 3.4.23 → 3.4.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +2 -4
- package/esm2020/lib/add-multiple-risk/add-multiple-risk.component.mjs +2 -3
- package/esm2020/lib/formgroup/cs-select/cs-select.component.mjs +5 -5
- package/esm2020/lib/formgroup/cs-switch/cs-switch.component.mjs +1 -4
- package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +1 -11
- package/esm2020/lib/more-option/more-option.component.mjs +5 -6
- package/esm2020/lib/pipes/filter.pipe.mjs +1 -2
- package/esm2020/lib/pipes/search.pipe.mjs +3 -5
- package/esm2020/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +3 -7
- package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +1 -5
- package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +1 -7
- package/esm2020/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +80 -36
- package/esm2020/lib/sharedComponents/assessment-list/assessment-list.component.mjs +27 -21
- package/esm2020/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +7 -4
- package/esm2020/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +3 -4
- package/esm2020/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +3 -9
- package/esm2020/lib/sharedComponents/bulk-view/bulk-view.component.mjs +9 -7
- package/esm2020/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +6 -8
- package/esm2020/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +93 -27
- package/esm2020/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +11 -9
- package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +13 -12
- package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +28 -19
- package/esm2020/lib/sharedComponents/floating-bar/floating-bar.component.mjs +8 -8
- package/esm2020/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +35 -37
- package/esm2020/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +7 -7
- package/esm2020/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +1 -12
- package/esm2020/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +1 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +1 -13
- package/esm2020/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +1 -7
- package/esm2020/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +1 -26
- package/esm2020/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +1 -15
- package/esm2020/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +1 -14
- package/esm2020/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +14 -8
- package/esm2020/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +1 -13
- package/esm2020/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +1 -18
- package/esm2020/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +1 -12
- package/esm2020/lib/sharedComponents/frequency/frequency.service.mjs +2 -11
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +2 -2
- package/esm2020/lib/sharedComponents/group-users-list/group-users-list.component.mjs +1 -3
- package/esm2020/lib/sharedComponents/link-program/link-program/link-program.component.mjs +48 -38
- package/esm2020/lib/sharedComponents/link-program/restapi.service.mjs +31 -16
- package/esm2020/lib/sharedComponents/no-data/no-data.component.mjs +2 -4
- package/esm2020/lib/sharedComponents/owner-list/owner-list.component.mjs +12 -10
- package/esm2020/lib/sharedComponents/program-listing/program-listing.component.mjs +127 -58
- package/esm2020/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +4 -7
- package/esm2020/lib/sharedComponents/risk-classification/risk-classification.component.mjs +11 -6
- package/esm2020/lib/sharedComponents/select-approvers/select-approvers.component.mjs +1 -2
- package/esm2020/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +2 -3
- package/esm2020/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +1 -4
- package/esm2020/lib/ui-kit/popover/popover-longpress.directive.mjs +1 -3
- package/esm2020/lib/ui-kit/popover/popover.component.mjs +26 -12
- package/esm2020/lib/ui-kit/tooltip/tooltip.directive.mjs +8 -5
- package/esm2020/lib/workflow/shared/components/attributes/attributes.component.mjs +1 -2
- package/esm2020/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +1 -4
- package/esm2020/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +1 -2
- package/esm2020/lib/workflow/shared/components/list-popup/list-popup.component.mjs +1 -4
- package/esm2020/lib/workflow/shared/components/table-card/table-card.component.mjs +4 -8
- package/esm2020/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +245 -108
- package/esm2020/lib/workflow-assessment/workflow-assessment.component.mjs +2 -4
- package/esm2020/lib/workflow-compliance/workflow-compliance.component.mjs +10 -8
- package/esm2020/lib/workflow-engine-container/workflow-engine-container.component.mjs +1 -5
- package/esm2020/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +45 -45
- package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +43 -25
- package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +4 -4
- package/esm2020/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +1 -2
- package/esm2020/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +25 -14
- package/esm2020/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +6 -3
- package/esm2020/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +25 -19
- package/esm2020/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +1 -4
- package/esm2020/lib/workflow-program/workflow-program.component.mjs +232 -110
- package/esm2020/lib/workflow-services/add-risk.service.mjs +1 -2
- package/esm2020/lib/workflow-services/assessment.service.mjs +1 -5
- package/esm2020/lib/workflow-services/programs.service.mjs +173 -57
- package/fesm2015/vcomply-workflow-engine.mjs +1376 -934
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +1386 -939
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +4 -5
- package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +2 -3
- package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +2 -3
- package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +2 -4
- package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
- package/lib/sharedComponents/link-program/restapi.service.d.ts +3 -3
- package/lib/sharedComponents/no-data/no-data.component.d.ts +2 -4
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
- package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +2 -3
- package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +2 -3
- package/lib/workflow/shared/components/table-card/table-card.component.d.ts +2 -5
- package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +8 -9
- package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +2 -4
- package/package.json +1 -1
package/esm2020/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ViewChild } from '@angular/core';
|
|
2
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { Component, Input, Output, EventEmitter, } from '@angular/core';
|
|
3
3
|
import { cloneDeep } from 'lodash-es';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/forms";
|
|
@@ -22,8 +22,7 @@ export class CategoryMultiSelectComponent {
|
|
|
22
22
|
this.closeList = new EventEmitter();
|
|
23
23
|
this.closeCategoriesList = new EventEmitter();
|
|
24
24
|
}
|
|
25
|
-
ngOnChanges() {
|
|
26
|
-
}
|
|
25
|
+
ngOnChanges() { }
|
|
27
26
|
ngOnInit() {
|
|
28
27
|
this.animation = true;
|
|
29
28
|
setTimeout(() => {
|
|
@@ -31,12 +30,11 @@ export class CategoryMultiSelectComponent {
|
|
|
31
30
|
}, 300);
|
|
32
31
|
this.selectedIds = [];
|
|
33
32
|
if (this.selectedCategories) {
|
|
34
|
-
this.selectedCategories.forEach(element => {
|
|
33
|
+
this.selectedCategories.forEach((element) => {
|
|
35
34
|
this.selectedIds.push(element[this.categoryIdKey]);
|
|
36
35
|
});
|
|
37
36
|
}
|
|
38
37
|
this.setList();
|
|
39
|
-
console.log(this.selectedCategories);
|
|
40
38
|
setTimeout(() => {
|
|
41
39
|
this.blockWidth = this.listBlock.nativeElement.offsetWidth;
|
|
42
40
|
}, 10);
|
|
@@ -59,7 +57,7 @@ export class CategoryMultiSelectComponent {
|
|
|
59
57
|
selectAll(mode, activeTab) {
|
|
60
58
|
if (mode) {
|
|
61
59
|
const list = [...this.categoryList[activeTab].list];
|
|
62
|
-
list.forEach(element => {
|
|
60
|
+
list.forEach((element) => {
|
|
63
61
|
if (!this.selectedIds.includes(element[this.categoryIdKey])) {
|
|
64
62
|
this.selectedIds.push(element[this.categoryIdKey]);
|
|
65
63
|
}
|
|
@@ -67,7 +65,7 @@ export class CategoryMultiSelectComponent {
|
|
|
67
65
|
}
|
|
68
66
|
else {
|
|
69
67
|
const list = [...this.categoryList[activeTab].list];
|
|
70
|
-
list.forEach(element => {
|
|
68
|
+
list.forEach((element) => {
|
|
71
69
|
if (this.selectedIds.includes(element[this.categoryIdKey])) {
|
|
72
70
|
let idIndex = this.selectedIds.findIndex((id) => id == element[this.categoryIdKey]);
|
|
73
71
|
this.selectedIds.splice(idIndex, 1);
|
|
@@ -165,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
165
163
|
}], closeCategoriesList: [{
|
|
166
164
|
type: Output
|
|
167
165
|
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2F0ZWdvcnktbXVsdGlzZWxlY3QvY2F0ZWdvcnktbXVsdGktc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2F0ZWdvcnktbXVsdGlzZWxlY3QvY2F0ZWdvcnktbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7O0FBRXRDLDJDQUEyQztBQU0zQyxNQUFNLE9BQU8sNEJBQTRCO0lBa0J2QztRQWZTLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBRzFCLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQUV4QyxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR1IseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR25ELENBQUM7SUFFRCxXQUFXO0lBR1gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FB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RCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzt5SEFySlUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsaWRDVnpDLDAzSkF3Rk07MkZEOUVPLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSwyQkFBMkI7MEVBS0ssU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUMvQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBUUksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBDYXRlZ29yeUxpc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NhdGVnb3J5TGlzdCc7XHJcbi8vIGltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC1lcy9pc0VxdWFsJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2F0ZWdvcnktbXVsdGktc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2F0ZWdvcnktbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYXRlZ29yeS1tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhdGVnb3J5TXVsdGlTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZCgnbGlzdEJsb2NrJyx7IHN0YXRpYzogZmFsc2UgfSkgbGlzdEJsb2NrITogRWxlbWVudFJlZjtcclxuICBASW5wdXQoKSBjYXRlZ29yeUxpc3Q6IGFueTtcclxuICBASW5wdXQoKSBhbGxDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBjYXRlZ29yeUlkS2V5OiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yaWVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBzZWFyY2ggPSAnJztcclxuICBhY3RpdmVUYWI6IGFueSA9ICcnO1xyXG4gIHNlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIGJsb2NrV2lkdGg6IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIHNhdmVTZWxlY3RlZENhdGVnb3J5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlQ2F0ZWdvcmllc0xpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGVsZW1lbnRbdGhpcy5jYXRlZ29yeUlkS2V5XSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KClcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzKVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYmxvY2tXaWR0aCA9ICB0aGlzLmxpc3RCbG9jay5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgfSwgMTApO1xyXG5cclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3J5KG1vZGU6IGFueSwgYWN0aXZlVGFiOiBhbnksIGNhdGVnb3J5OiBhbnkpIHtcclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudCA9PSBjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlRXZlbnQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwobW9kZTogYW55LCBhY3RpdmVUYWI6IGFueSkge1xyXG5cclxuICAgIGlmIChtb2RlKSB7XHJcbiAgICAgIGNvbnN0IGxpc3QgPSBbLi4udGhpcy5jYXRlZ29yeUxpc3RbYWN0aXZlVGFiXS5saXN0XTtcclxuICAgICAgbGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbGlzdCA9IFsuLi50aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3RdO1xyXG4gICAgICBsaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgICAgbGV0IGlkSW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCgoaWQ6IGFueSkgPT4gaWQgPT0gZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGlkSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIHNldExpc3QoKSB7XHJcbiAgICBjb25zdCBkYXRhOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGNhdGVnb3J5TGlzdCA9IGNsb25lRGVlcCh0aGlzLmFsbENhdGVnb3JpZXMpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZElkcyk7XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5yZWd1bGF0aW9ucy5zZWxlY3RlZExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5zZWxlY3RlZExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuc2VsZWN0ZWRMaXN0ID0gW107XHJcblxyXG4gICAgY2F0ZWdvcnlMaXN0LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIGRhdGEucHVzaChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcmllcyA9IGRhdGE7XHJcblxyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnJlZ3VsYXRpb25zLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RhbmRhcmRzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRBY3RpdmVUYWIoKSB7XHJcbiAgICBpZiAodGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAncmVndWxhdGlvbnMnXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdzdGFuZGFyZHMnXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2F0ZWdvcnlMaXN0LmludGVybmFsQ29udHJvbHMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnaW50ZXJuYWxDb250cm9scydcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ290aGVycydcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ3JlZ3VsYXRpb25zJ1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYjogYW55KSB7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5jYXRlZ29yeUxpc3RbYWN0aXZlVGFiXS5saXN0LmV2ZXJ5KCh1c2VyOiBhbnkpID0+IHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXModXNlclt0aGlzLmNhdGVnb3J5SWRLZXldKSk7XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLnNhdmVTZWxlY3RlZENhdGVnb3J5LmVtaXQodGhpcy5zZWxlY3RlZENhdGVnb3JpZXMpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlQ2F0ZWdvcmllc0xpc3QuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbXVsdGktc2VsZWN0XCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LW11bHRpLXNlbGVjdC1oZWFkXCI+XHJcbiAgICA8aDMgY2xhc3M9XCJjYXRlZ29yeS1tdWx0aS1zZWxlY3QtdGl0bGVcIj5TZWxlY3QgUHJvZ3JhbXM8L2gzPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1tdWx0aS1zZWxlY3QtYm9keVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkLXJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAncmVndWxhdGlvbnMnXCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdyZWd1bGF0aW9ucydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgPGxhYmVsPlJFR1VMQVRJT05TPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICB7e2NhdGVnb3J5TGlzdD8ucmVndWxhdGlvbnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RofX1cclxuICAgICAgICAgICAge3soY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8ucmVndWxhdGlvbnM/Lmxpc3Q/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIiAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ3N0YW5kYXJkcydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgPGxhYmVsPlNUQU5EQVJEUzwvbGFiZWw+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cImNhdGVnb3J5TGlzdD8uc3RhbmRhcmRzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5zdGFuZGFyZHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RofX1cclxuICAgICAgICAgICAge3soY2F0ZWdvcnlMaXN0Py5zdGFuZGFyZHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoPT0xKT8nQ2F0ZWdvcnknOidDYXRlZ29yaWVzJ319IHNlbGVjdGVkXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3tjYXRlZ29yeUxpc3Q/LnN0YW5kYXJkcz8ubGlzdD8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxDb250cm9scydcIlxyXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAnaW50ZXJuYWxDb250cm9scydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgPGxhYmVsPklOVEVSTkFMIENPTlRST0xTPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5pbnRlcm5hbENvbnRyb2xzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5pbnRlcm5hbENvbnRyb2xzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aH19XHJcbiAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8ubGlzdD8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiIChjbGljayk9XCJhY3RpdmVUYWIgPSAnb3RoZXJzJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+T1RIRVJTPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoICE9IDBcIj5cclxuICAgICAgICAgICAge3tjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICB7eyhjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8ub3RoZXJzPy5saXN0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2tcIj5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFJlc3BvbnNpYmlsaXR5IENhdGVnb3J5XCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiYm9keS10b3BcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb25cIj48L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdCB8IGZpbHRlcjogc2VhcmNoKSBhcyBzZWFyY2hMaXN0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5LXRvcFwiICpuZ0lmPVwic2VhcmNoTGlzdD8ubGVuZ3RoID4gMCAmJiBzZWFyY2gudHJpbSgpPy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cImNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYilcIiAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50LGFjdGl2ZVRhYilcIj5cclxuICAgICAgICAgIDxzdHJvbmc+e3tjaGVja1NlbGVjdEFsbChhY3RpdmVUYWIpID8gJ0Rlc2VsZWN0IEFsbCcgOiAnU2VsZWN0IEFsbCd9fTwvc3Ryb25nPlxyXG4gICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHVsIGNsYXNzPVwiY2F0ZWdvcmllc1wiICpuZ0lmPVwic2VhcmNoTGlzdD8ubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHNlYXJjaExpc3RcIiA+XHJcbiAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cInNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W2NhdGVnb3J5SWRLZXldKVwiXHJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdENhdGVnb3J5KCRldmVudCxhY3RpdmVUYWIsY2F0ZWdvcnkpXCI+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImNhdGVnb3J5LW5hbWVcIiAjbGlzdEJsb2NrPlxyXG4gICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZW50aXR5IG9mIGNhdGVnb3J5LmNhdGVnb3J5X25hbWU7IGxldCBqID0gaW5kZXhcIiBbYXBwVG9vbHRpcF09XCJlbnRpdHlcIiBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwiYmxvY2tXaWR0aCAvIGNhdGVnb3J5LmNhdGVnb3J5X25hbWUubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiICpuZ0lmPVwiaiAhPT0gMFwiPiYjeGU5MTA7PC9pPnt7IGVudGl0eSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiXHJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIENhdGVnb3JpZXMgRm91bmQnXCI+PC9hcHAtbm8tZGF0YT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1tdWx0aS1zZWxlY3QtZm9vdGVyXCI+XHJcbiAgICA8YXBwLWZsb2F0aW5nLWJhciBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkQ2F0ZWdvcmllc1wiIFtkaXNwbGF5RWxlbWVudEtleV09XCInaXRlbV9uYW1lJ1wiXHJcbiAgICAgIFtzaW5ndWxhclRleHRdPVwiJ1Byb2dyYW0gc2VsZWN0ZWQnXCIgW3BsdXJhbFRleHRdPVwiJ1Byb2dyYW1zIHNlbGVjdGVkJ1wiXHJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiIChkZWxldGVFdmVudCk9XCJkZWxldGVFdmVudCgkZXZlbnQpXCIgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCJcclxuICAgICAgW2lzRGlzYWJsZWRdPVwic2VsZWN0ZWRDYXRlZ29yaWVzPy5sZW5ndGggPT09IDAgfHwgIGNhdGVnb3J5TGlzdFthY3RpdmVUYWJdPy5saXN0Py5sZW5ndGggPT09IDBcIj5cclxuICAgIDwvYXBwLWZsb2F0aW5nLWJhcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2F0ZWdvcnktbXVsdGlzZWxlY3QvY2F0ZWdvcnktbXVsdGktc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2F0ZWdvcnktbXVsdGlzZWxlY3QvY2F0ZWdvcnktbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7QUFFdEMsMkNBQTJDO0FBTTNDLE1BQU0sT0FBTyw0QkFBNEI7SUFrQnZDO1FBZlMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFHMUIsdUJBQWtCLEdBQVUsRUFBRSxDQUFDO1FBRXhDLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHUix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFcEMsQ0FBQztJQUVoQixXQUFXLEtBQUksQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLFNB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QkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzt5SEFwSlUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsaWRDbEJ6QywwM0pBd0ZNOzJGRHRFTyw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsMkJBQTJCOzBFQUtNLFNBQVM7c0JBQW5ELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDaEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQVFJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgQ2F0ZWdvcnlMaXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jYXRlZ29yeUxpc3QnO1xyXG4vLyBpbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gtZXMvaXNFcXVhbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNhdGVnb3J5LW11bHRpLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhdGVnb3J5LW11bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2F0ZWdvcnktbXVsdGktc2VsZWN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeU11bHRpU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ2xpc3RCbG9jaycsIHsgc3RhdGljOiBmYWxzZSB9KSBsaXN0QmxvY2shOiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIGNhdGVnb3J5TGlzdDogYW55O1xyXG4gIEBJbnB1dCgpIGFsbENhdGVnb3JpZXM6IGFueVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGNhdGVnb3J5SWRLZXk6IGFueTtcclxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XHJcblxyXG4gIHNlYXJjaCA9ICcnO1xyXG4gIGFjdGl2ZVRhYjogYW55ID0gJyc7XHJcbiAgc2VsZWN0ZWRJZHM6IGFueVtdID0gW107XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgYmxvY2tXaWR0aDogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgc2F2ZVNlbGVjdGVkQ2F0ZWdvcnkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VDYXRlZ29yaWVzTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJsb2NrV2lkdGggPSB0aGlzLmxpc3RCbG9jay5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgfSwgMTApO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q2F0ZWdvcnkobW9kZTogYW55LCBhY3RpdmVUYWI6IGFueSwgY2F0ZWdvcnk6IGFueSkge1xyXG4gICAgaWYgKG1vZGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleChcclxuICAgICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV1cclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVFdmVudChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxyXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50ID09IGV2ZW50W3RoaXMuY2F0ZWdvcnlJZEtleV1cclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLnNldExpc3QoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFsbChtb2RlOiBhbnksIGFjdGl2ZVRhYjogYW55KSB7XHJcbiAgICBpZiAobW9kZSkge1xyXG4gICAgICBjb25zdCBsaXN0ID0gWy4uLnRoaXMuY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdF07XHJcbiAgICAgIGxpc3QuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbGlzdCA9IFsuLi50aGlzLmNhdGVnb3J5TGlzdFthY3RpdmVUYWJdLmxpc3RdO1xyXG4gICAgICBsaXN0LmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgICBsZXQgaWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAoaWQ6IGFueSkgPT4gaWQgPT0gZWxlbWVudFt0aGlzLmNhdGVnb3J5SWRLZXldXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaWRJbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TGlzdCgpIHtcclxuICAgIGNvbnN0IGRhdGE6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgY2F0ZWdvcnlMaXN0ID0gY2xvbmVEZWVwKHRoaXMuYWxsQ2F0ZWdvcmllcyk7XHJcbiAgICBjb25zdCBzZWxlY3RlZElkcyA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkSWRzKTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnJlZ3VsYXRpb25zLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RhbmRhcmRzLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jYXRlZ29yeUxpc3QuaW50ZXJuYWxDb250cm9scy5zZWxlY3RlZExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QgPSBbXTtcclxuXHJcbiAgICBjYXRlZ29yeUxpc3QuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhlbGVtZW50W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgZGF0YS5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yaWVzID0gZGF0YTtcclxuXHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5yZWd1bGF0aW9ucy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0LnB1c2goY2F0ZWdvcnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2F0ZWdvcnlMaXN0LnN0YW5kYXJkcy5saXN0LmZvckVhY2goKGNhdGVnb3J5OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W3RoaXMuY2F0ZWdvcnlJZEtleV0pKSB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3Quc3RhbmRhcmRzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLmxpc3QuZm9yRWFjaCgoY2F0ZWdvcnk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJZHMuaW5jbHVkZXMoY2F0ZWdvcnlbdGhpcy5jYXRlZ29yeUlkS2V5XSkpIHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdC5pbnRlcm5hbENvbnRyb2xzLnNlbGVjdGVkTGlzdC5wdXNoKGNhdGVnb3J5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNhdGVnb3J5TGlzdC5vdGhlcnMubGlzdC5mb3JFYWNoKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChzZWxlY3RlZElkcy5pbmNsdWRlcyhjYXRlZ29yeVt0aGlzLmNhdGVnb3J5SWRLZXldKSkge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0Lm90aGVycy5zZWxlY3RlZExpc3QucHVzaChjYXRlZ29yeSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRhYikge1xyXG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYigpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRBY3RpdmVUYWIoKSB7XHJcbiAgICBpZiAodGhpcy5jYXRlZ29yeUxpc3QucmVndWxhdGlvbnMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAncmVndWxhdGlvbnMnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNhdGVnb3J5TGlzdC5zdGFuZGFyZHMuc2VsZWN0ZWRMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSAnc3RhbmRhcmRzJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYXRlZ29yeUxpc3QuaW50ZXJuYWxDb250cm9scy5zZWxlY3RlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdpbnRlcm5hbENvbnRyb2xzJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jYXRlZ29yeUxpc3Qub3RoZXJzLnNlbGVjdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gJ290aGVycyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZVRhYiA9ICdyZWd1bGF0aW9ucyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1NlbGVjdEFsbChhY3RpdmVUYWI6IGFueSkge1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdC5ldmVyeSgodXNlcjogYW55KSA9PlxyXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKHVzZXJbdGhpcy5jYXRlZ29yeUlkS2V5XSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLnNhdmVTZWxlY3RlZENhdGVnb3J5LmVtaXQodGhpcy5zZWxlY3RlZENhdGVnb3JpZXMpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlQ2F0ZWdvcmllc0xpc3QuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktbXVsdGktc2VsZWN0XCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LW11bHRpLXNlbGVjdC1oZWFkXCI+XHJcbiAgICA8aDMgY2xhc3M9XCJjYXRlZ29yeS1tdWx0aS1zZWxlY3QtdGl0bGVcIj5TZWxlY3QgUHJvZ3JhbXM8L2gzPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1tdWx0aS1zZWxlY3QtYm9keVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkLXJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAncmVndWxhdGlvbnMnXCIgKGNsaWNrKT1cImFjdGl2ZVRhYiA9ICdyZWd1bGF0aW9ucydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgPGxhYmVsPlJFR1VMQVRJT05TPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGggIT0gMFwiPlxyXG4gICAgICAgICAgICB7e2NhdGVnb3J5TGlzdD8ucmVndWxhdGlvbnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RofX1cclxuICAgICAgICAgICAge3soY2F0ZWdvcnlMaXN0Py5yZWd1bGF0aW9ucz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8ucmVndWxhdGlvbnM/Lmxpc3Q/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIiAoY2xpY2spPVwiYWN0aXZlVGFiID0gJ3N0YW5kYXJkcydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgPGxhYmVsPlNUQU5EQVJEUzwvbGFiZWw+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cImNhdGVnb3J5TGlzdD8uc3RhbmRhcmRzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5zdGFuZGFyZHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RofX1cclxuICAgICAgICAgICAge3soY2F0ZWdvcnlMaXN0Py5zdGFuZGFyZHM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoPT0xKT8nQ2F0ZWdvcnknOidDYXRlZ29yaWVzJ319IHNlbGVjdGVkXHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3tjYXRlZ29yeUxpc3Q/LnN0YW5kYXJkcz8ubGlzdD8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnaW50ZXJuYWxDb250cm9scydcIlxyXG4gICAgICAgIChjbGljayk9XCJhY3RpdmVUYWIgPSAnaW50ZXJuYWxDb250cm9scydcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgPGxhYmVsPklOVEVSTkFMIENPTlRST0xTPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5pbnRlcm5hbENvbnRyb2xzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aCAhPSAwXCI+XHJcbiAgICAgICAgICAgIHt7Y2F0ZWdvcnlMaXN0Py5pbnRlcm5hbENvbnRyb2xzPy5zZWxlY3RlZExpc3Q/Lmxlbmd0aH19XHJcbiAgICAgICAgICAgIHt7KGNhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8uaW50ZXJuYWxDb250cm9scz8ubGlzdD8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiIChjbGljayk9XCJhY3RpdmVUYWIgPSAnb3RoZXJzJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICA8bGFiZWw+T1RIRVJTPC9sYWJlbD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5vdGhlcnM/LnNlbGVjdGVkTGlzdD8ubGVuZ3RoICE9IDBcIj5cclxuICAgICAgICAgICAge3tjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGh9fVxyXG4gICAgICAgICAgICB7eyhjYXRlZ29yeUxpc3Q/Lm90aGVycz8uc2VsZWN0ZWRMaXN0Py5sZW5ndGg9PTEpPydDYXRlZ29yeSc6J0NhdGVnb3JpZXMnfX0gc2VsZWN0ZWRcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2NhdGVnb3J5TGlzdD8ub3RoZXJzPy5saXN0Py5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2tcIj5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFJlc3BvbnNpYmlsaXR5IENhdGVnb3J5XCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiYm9keS10b3BcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb25cIj48L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdCB8IGZpbHRlcjogc2VhcmNoKSBhcyBzZWFyY2hMaXN0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5LXRvcFwiICpuZ0lmPVwic2VhcmNoTGlzdD8ubGVuZ3RoID4gMCAmJiBzZWFyY2gudHJpbSgpPy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cImNoZWNrU2VsZWN0QWxsKGFjdGl2ZVRhYilcIiAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50LGFjdGl2ZVRhYilcIj5cclxuICAgICAgICAgIDxzdHJvbmc+e3tjaGVja1NlbGVjdEFsbChhY3RpdmVUYWIpID8gJ0Rlc2VsZWN0IEFsbCcgOiAnU2VsZWN0IEFsbCd9fTwvc3Ryb25nPlxyXG4gICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHVsIGNsYXNzPVwiY2F0ZWdvcmllc1wiICpuZ0lmPVwic2VhcmNoTGlzdD8ubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIHNlYXJjaExpc3RcIiA+XHJcbiAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94IFtuZ1ZhbHVlXT1cInNlbGVjdGVkSWRzLmluY2x1ZGVzKGNhdGVnb3J5W2NhdGVnb3J5SWRLZXldKVwiXHJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdENhdGVnb3J5KCRldmVudCxhY3RpdmVUYWIsY2F0ZWdvcnkpXCI+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImNhdGVnb3J5LW5hbWVcIiAjbGlzdEJsb2NrPlxyXG4gICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZW50aXR5IG9mIGNhdGVnb3J5LmNhdGVnb3J5X25hbWU7IGxldCBqID0gaW5kZXhcIiBbYXBwVG9vbHRpcF09XCJlbnRpdHlcIiBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiIFtzdHlsZS5tYXgtd2lkdGgucHhdPVwiYmxvY2tXaWR0aCAvIGNhdGVnb3J5LmNhdGVnb3J5X25hbWUubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiICpuZ0lmPVwiaiAhPT0gMFwiPiYjeGU5MTA7PC9pPnt7IGVudGl0eSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCJzZWFyY2hMaXN0Lmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiXHJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIENhdGVnb3JpZXMgRm91bmQnXCI+PC9hcHAtbm8tZGF0YT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1tdWx0aS1zZWxlY3QtZm9vdGVyXCI+XHJcbiAgICA8YXBwLWZsb2F0aW5nLWJhciBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkQ2F0ZWdvcmllc1wiIFtkaXNwbGF5RWxlbWVudEtleV09XCInaXRlbV9uYW1lJ1wiXHJcbiAgICAgIFtzaW5ndWxhclRleHRdPVwiJ1Byb2dyYW0gc2VsZWN0ZWQnXCIgW3BsdXJhbFRleHRdPVwiJ1Byb2dyYW1zIHNlbGVjdGVkJ1wiXHJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiIChkZWxldGVFdmVudCk9XCJkZWxldGVFdmVudCgkZXZlbnQpXCIgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCJcclxuICAgICAgW2lzRGlzYWJsZWRdPVwic2VsZWN0ZWRDYXRlZ29yaWVzPy5sZW5ndGggPT09IDAgfHwgIGNhdGVnb3J5TGlzdFthY3RpdmVUYWJdPy5saXN0Py5sZW5ndGggPT09IDBcIj5cclxuICAgIDwvYXBwLWZsb2F0aW5nLWJhcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cloneDeep } from 'lodash-es';
|
|
2
|
-
import { Component, EventEmitter, Output, Input } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, Output, Input, } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../../ui-kit/snack-bar/snack-bar.service";
|
|
5
5
|
import * as i2 from "@angular/common";
|
|
@@ -21,49 +21,50 @@ export class CheckpointsComponent {
|
|
|
21
21
|
text: 'Text',
|
|
22
22
|
type: 'textbox',
|
|
23
23
|
description: 'Select a text area.',
|
|
24
|
-
icon: ''
|
|
24
|
+
icon: '',
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
text: 'Dropdown',
|
|
28
28
|
type: 'select',
|
|
29
29
|
description: 'Choose an option from a multiple select box.',
|
|
30
|
-
icon: ''
|
|
30
|
+
icon: '',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
text: 'Single selection',
|
|
34
34
|
type: 'radio',
|
|
35
35
|
description: 'Select only one option with a radio button.',
|
|
36
|
-
icon: ''
|
|
36
|
+
icon: '',
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
text: 'Multiple selection',
|
|
40
40
|
type: 'checkbox',
|
|
41
41
|
description: 'Select multiple options using a checkbox.',
|
|
42
|
-
icon: ''
|
|
42
|
+
icon: '',
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
text: 'Date',
|
|
46
46
|
type: 'date',
|
|
47
47
|
description: 'Select date from a date picker.',
|
|
48
|
-
icon: ''
|
|
48
|
+
icon: '',
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
text: 'Upload File',
|
|
52
52
|
type: 'upload',
|
|
53
53
|
description: 'Upload documents & files.',
|
|
54
|
-
icon: ''
|
|
55
|
-
}
|
|
54
|
+
icon: '',
|
|
55
|
+
},
|
|
56
56
|
];
|
|
57
57
|
}
|
|
58
58
|
ngOnInit() {
|
|
59
|
-
console.log("checkpointInstruction ==>", this.checkpointInstruction, this.checkpointData);
|
|
60
59
|
setTimeout(() => {
|
|
61
60
|
this.animation = false;
|
|
62
61
|
}, 300);
|
|
63
|
-
this.checkpointData =
|
|
62
|
+
this.checkpointData =
|
|
63
|
+
this.checkpointData && this.checkpointData != ''
|
|
64
|
+
? cloneDeep(this.checkpointData)
|
|
65
|
+
: [];
|
|
64
66
|
}
|
|
65
67
|
addQuestion(evt, index) {
|
|
66
|
-
console.log(evt);
|
|
67
68
|
switch (evt) {
|
|
68
69
|
case 'textbox': {
|
|
69
70
|
this.createTextBox(index);
|
|
@@ -94,16 +95,34 @@ export class CheckpointsComponent {
|
|
|
94
95
|
createTextBox(index) {
|
|
95
96
|
// this.gotoLastOption();
|
|
96
97
|
if (index === undefined) {
|
|
97
|
-
this.checkpointData.push({
|
|
98
|
+
this.checkpointData.push({
|
|
99
|
+
type: 'textbox',
|
|
100
|
+
id: 'textbox_1',
|
|
101
|
+
required: false,
|
|
102
|
+
label: '',
|
|
103
|
+
options: [],
|
|
104
|
+
});
|
|
98
105
|
}
|
|
99
106
|
else {
|
|
100
|
-
this.checkpointData.splice(index + 1, 0, {
|
|
107
|
+
this.checkpointData.splice(index + 1, 0, {
|
|
108
|
+
type: 'textbox',
|
|
109
|
+
id: `textbox_{index+1}`,
|
|
110
|
+
required: false,
|
|
111
|
+
label: '',
|
|
112
|
+
options: [],
|
|
113
|
+
});
|
|
101
114
|
}
|
|
102
115
|
}
|
|
103
116
|
createSelect(index) {
|
|
104
117
|
// this.gotoLastOption();
|
|
105
118
|
if (index === undefined) {
|
|
106
|
-
this.checkpointData.push({
|
|
119
|
+
this.checkpointData.push({
|
|
120
|
+
type: 'select',
|
|
121
|
+
id: 'select_1',
|
|
122
|
+
required: false,
|
|
123
|
+
label: '',
|
|
124
|
+
options: [{ label: '', value: 1, is_selected: false }],
|
|
125
|
+
});
|
|
107
126
|
}
|
|
108
127
|
else {
|
|
109
128
|
this.checkpointData.splice(index + 1, 0, {
|
|
@@ -118,16 +137,34 @@ export class CheckpointsComponent {
|
|
|
118
137
|
createRadio(index) {
|
|
119
138
|
// this.gotoLastOption();
|
|
120
139
|
if (index === undefined) {
|
|
121
|
-
this.checkpointData.push({
|
|
140
|
+
this.checkpointData.push({
|
|
141
|
+
type: 'radio',
|
|
142
|
+
id: 'radio_1',
|
|
143
|
+
required: false,
|
|
144
|
+
label: '',
|
|
145
|
+
options: [{ label: '', value: 1, is_selected: false }],
|
|
146
|
+
});
|
|
122
147
|
}
|
|
123
148
|
else {
|
|
124
|
-
this.checkpointData.splice(index + 1, 0, {
|
|
149
|
+
this.checkpointData.splice(index + 1, 0, {
|
|
150
|
+
type: 'radio',
|
|
151
|
+
id: 'radio_{index+1}',
|
|
152
|
+
required: false,
|
|
153
|
+
label: '',
|
|
154
|
+
options: [{ label: '', value: 1, is_selected: false }],
|
|
155
|
+
});
|
|
125
156
|
}
|
|
126
157
|
}
|
|
127
158
|
createCheckBox(index) {
|
|
128
159
|
// this.gotoLastOption();
|
|
129
160
|
if (index === undefined) {
|
|
130
|
-
this.checkpointData.push({
|
|
161
|
+
this.checkpointData.push({
|
|
162
|
+
type: 'checkbox',
|
|
163
|
+
id: 'checkbox_1',
|
|
164
|
+
required: false,
|
|
165
|
+
label: '',
|
|
166
|
+
options: [{ label: '', value: 1, is_selected: false, required: 0 }],
|
|
167
|
+
});
|
|
131
168
|
}
|
|
132
169
|
else {
|
|
133
170
|
this.checkpointData.splice(index + 1, 0, {
|
|
@@ -142,23 +179,52 @@ export class CheckpointsComponent {
|
|
|
142
179
|
createDate(index) {
|
|
143
180
|
// this.gotoLastOption();
|
|
144
181
|
if (index === undefined) {
|
|
145
|
-
this.checkpointData.push({
|
|
182
|
+
this.checkpointData.push({
|
|
183
|
+
type: 'date',
|
|
184
|
+
id: 'date_1',
|
|
185
|
+
required: false,
|
|
186
|
+
label: '',
|
|
187
|
+
options: [],
|
|
188
|
+
});
|
|
146
189
|
}
|
|
147
190
|
else {
|
|
148
|
-
this.checkpointData.splice(index + 1, 0, {
|
|
191
|
+
this.checkpointData.splice(index + 1, 0, {
|
|
192
|
+
type: 'date',
|
|
193
|
+
id: 'date_{index+1}',
|
|
194
|
+
required: false,
|
|
195
|
+
label: '',
|
|
196
|
+
options: [],
|
|
197
|
+
});
|
|
149
198
|
}
|
|
150
199
|
}
|
|
151
200
|
createUpload(index) {
|
|
152
201
|
// this.gotoLastOption();
|
|
153
202
|
if (index === undefined) {
|
|
154
|
-
this.checkpointData.push({
|
|
203
|
+
this.checkpointData.push({
|
|
204
|
+
type: 'upload',
|
|
205
|
+
id: 'upload_1',
|
|
206
|
+
required: false,
|
|
207
|
+
label: '',
|
|
208
|
+
options: [],
|
|
209
|
+
});
|
|
155
210
|
}
|
|
156
211
|
else {
|
|
157
|
-
this.checkpointData.splice(index + 1, 0, {
|
|
212
|
+
this.checkpointData.splice(index + 1, 0, {
|
|
213
|
+
type: 'upload',
|
|
214
|
+
id: 'upload_{index+1}',
|
|
215
|
+
required: false,
|
|
216
|
+
label: '',
|
|
217
|
+
options: [],
|
|
218
|
+
});
|
|
158
219
|
}
|
|
159
220
|
}
|
|
160
221
|
createOption(i, j, type) {
|
|
161
|
-
this.checkpointData[i].options.splice(j + 1, 0, {
|
|
222
|
+
this.checkpointData[i].options.splice(j + 1, 0, {
|
|
223
|
+
label: '',
|
|
224
|
+
id: '',
|
|
225
|
+
value: 0,
|
|
226
|
+
is_selected: false,
|
|
227
|
+
});
|
|
162
228
|
for (let k = 0; k <= this.checkpointData[i].options.length - 1; k++) {
|
|
163
229
|
this.checkpointData[i].options[k].value = k + 1;
|
|
164
230
|
}
|
|
@@ -198,17 +264,18 @@ export class CheckpointsComponent {
|
|
|
198
264
|
this.checkpointData.splice(index + 1, 0, COPY_ARR);
|
|
199
265
|
}
|
|
200
266
|
save() {
|
|
201
|
-
console.log(this.validateCheckpoint());
|
|
202
267
|
if (this.validateCheckpoint() === false) {
|
|
203
268
|
this.snackbar.show('Please fill in the details.', 'alert');
|
|
204
269
|
}
|
|
205
270
|
else {
|
|
206
271
|
this.errorIndex = -1;
|
|
207
|
-
this.saveCheckPoint.emit({
|
|
272
|
+
this.saveCheckPoint.emit({
|
|
273
|
+
checkpointInstruction: this.checkpointInstruction,
|
|
274
|
+
checkpointDetails: this.checkpointData,
|
|
275
|
+
});
|
|
208
276
|
}
|
|
209
277
|
}
|
|
210
278
|
close() {
|
|
211
|
-
console.log('closed');
|
|
212
279
|
this.closeCheckPoint.emit();
|
|
213
280
|
}
|
|
214
281
|
validateCheckpoint() {
|
|
@@ -228,7 +295,6 @@ export class CheckpointsComponent {
|
|
|
228
295
|
}
|
|
229
296
|
}
|
|
230
297
|
checkpointDescription(event) {
|
|
231
|
-
console.log("description ==>", event);
|
|
232
298
|
this.checkpointInstruction = event;
|
|
233
299
|
}
|
|
234
300
|
}
|
|
@@ -246,4 +312,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
246
312
|
}], checkpointInstruction: [{
|
|
247
313
|
type: Input
|
|
248
314
|
}] } });
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9jaGVja3BvaW50L2NoZWNrcG9pbnRzL2NoZWNrcG9pbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2hlY2twb2ludC9jaGVja3BvaW50cy9jaGVja3BvaW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBcUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUWxHLE1BQU0sT0FBTyxvQkFBb0I7SUE2Qy9CLFlBQW9CLFFBQXlCLEVBQVUsR0FBc0I7UUFBekQsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVDbkUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ1IsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFDekIsMEJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoQixxQkFBZ0IsR0FBRztZQUNqQjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUztnQkFDZixXQUFXLEVBQUUscUJBQXFCO2dCQUNsQyxJQUFJLEVBQUUsVUFBVTthQUNqQjtZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFV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RUFBRSxFQUFFO29CQUM5RCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7d0JBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO3dCQUNwQixPQUFPLEtBQUssQ0FBQztxQkFDZDtpQkFDRjthQUNGO1NBQ0E7SUFDSCxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVTtRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUE7SUFDcEMsQ0FBQzs7aUhBdE9VLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHdPQ1RqQyxpL0NBaUJBOzJGRFJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7c0lBS2pCLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFFRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2hlY2twb2ludHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja3BvaW50cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2twb2ludHMuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2twb2ludHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNoZWNrUG9pbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNhdmVDaGVja1BvaW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGFuaW1hdGlvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2hlY2twb2ludERhdGE6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNoZWNrcG9pbnRJbnN0cnVjdGlvbiA9ICcnO1xyXG4gIGVycm9ySW5kZXggPSAtMTtcclxuICBxdWVzdGlvblR5cGVMaXN0ID0gW1xyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnVGV4dCcsXHJcbiAgICAgIHR5cGU6ICd0ZXh0Ym94JyxcclxuICAgICAgZGVzY3JpcHRpb246ICdTZWxlY3QgYSB0ZXh0IGFyZWEuJyxcclxuICAgICAgaWNvbjogJyYjeGVhY2U7J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDogJ0Ryb3Bkb3duJyxcclxuICAgICAgdHlwZTogJ3NlbGVjdCcsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ2hvb3NlIGFuIG9wdGlvbiBmcm9tIGEgbXVsdGlwbGUgc2VsZWN0IGJveC4nLFxyXG4gICAgICBpY29uOiAnJiN4ZWFiOTsnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnU2luZ2xlIHNlbGVjdGlvbicsXHJcbiAgICAgIHR5cGU6ICdyYWRpbycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2VsZWN0IG9ubHkgb25lIG9wdGlvbiB3aXRoIGEgcmFkaW8gYnV0dG9uLicsXHJcbiAgICAgIGljb246ICcmI3hlYWI1OydcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6ICdNdWx0aXBsZSBzZWxlY3Rpb24nLFxyXG4gICAgICB0eXBlOiAnY2hlY2tib3gnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJ1NlbGVjdCBtdWx0aXBsZSBvcHRpb25zIHVzaW5nIGEgY2hlY2tib3guJyxcclxuICAgICAgaWNvbjogJyYjeGVhYjQ7J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdGV4dDogJ0RhdGUnLFxyXG4gICAgICB0eXBlOiAnZGF0ZScsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2VsZWN0IGRhdGUgZnJvbSBhIGRhdGUgcGlja2VyLicsXHJcbiAgICAgIGljb246ICcmI3hlYWJhOydcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6ICdVcGxvYWQgRmlsZScsXHJcbiAgICAgIHR5cGU6ICd1cGxvYWQnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJ1VwbG9hZCBkb2N1bWVudHMgJiBmaWxlcy4nLFxyXG4gICAgICBpY29uOiAnJiN4ZWE5NzsnXHJcbiAgICB9XHJcbiAgXTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNuYWNrYmFyOiBTbmFja0JhclNlcnZpY2UsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJjaGVja3BvaW50SW5zdHJ1Y3Rpb24gPT0+XCIsIHRoaXMuY2hlY2twb2ludEluc3RydWN0aW9uLHRoaXMuY2hlY2twb2ludERhdGEpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgICB9LCAzMDApO1xyXG4gICAgdGhpcy5jaGVja3BvaW50RGF0YSA9IHRoaXMuY2hlY2twb2ludERhdGEgJiYgdGhpcy5jaGVja3BvaW50RGF0YSAhPSAnJyA/IGNsb25lRGVlcCh0aGlzLmNoZWNrcG9pbnREYXRhKSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgYWRkUXVlc3Rpb24oZXZ0OiBhbnksIGluZGV4PzogbnVtYmVyKXtcclxuICAgY29uc29sZS5sb2coZXZ0KTtcclxuICAgc3dpdGNoIChldnQpe1xyXG4gICAgIGNhc2UgJ3RleHRib3gnIDoge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlVGV4dEJveChpbmRleCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgfVxyXG4gICAgIGNhc2UgJ3NlbGVjdCcgOiB7XHJcbiAgICAgIHRoaXMuY3JlYXRlU2VsZWN0KGluZGV4KTtcclxuICAgICAgYnJlYWs7XHJcbiAgIH1cclxuICAgICAgY2FzZSAncmFkaW8nIDoge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlUmFkaW8oaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgICBjYXNlICdjaGVja2JveCcgOiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVDaGVja0JveChpbmRleCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnZGF0ZScgOiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVEYXRlKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfWNhc2UgJ3VwbG9hZCcgOiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVVcGxvYWQoaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgY3JlYXRlVGV4dEJveChpbmRleD86IG51bWJlcikge1xyXG4gICAgLy8gdGhpcy5nb3RvTGFzdE9wdGlvbigpO1xyXG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YS5wdXNoKHsgdHlwZTogJ3RleHRib3gnLCBpZDogJ3RleHRib3hfMScsIHJlcXVpcmVkOiBmYWxzZSwgbGFiZWw6ICcnLCBvcHRpb25zOiBbXSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEuc3BsaWNlKGluZGV4ICsgMSwgMCwgeyB0eXBlOiAndGV4dGJveCcsIGlkOiBgdGV4dGJveF97aW5kZXgrMX1gLCByZXF1aXJlZDogZmFsc2UsIGxhYmVsOiAnJywgb3B0aW9uczogW10gfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTZWxlY3QoaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIC8vIHRoaXMuZ290b0xhc3RPcHRpb24oKTtcclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEucHVzaCh7IHR5cGU6ICdzZWxlY3QnLCBpZDogJ3NlbGVjdF8xJywgcmVxdWlyZWQ6IGZhbHNlLCBsYWJlbDogJycsIG9wdGlvbnM6IFt7IGxhYmVsOiAnJywgdmFsdWU6IDEsIGlzX3NlbGVjdGVkOiBmYWxzZSB9XSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEuc3BsaWNlKGluZGV4ICsgMSwgMCwge1xyXG4gICAgICAgIHR5cGU6ICdzZWxlY3QnLFxyXG4gICAgICAgIGlkOiAnc2VsZWN0X3tpbmRleCsxfScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICBvcHRpb25zOiBbeyBsYWJlbDogJycsIHZhbHVlOiAxLCBpc19zZWxlY3RlZDogZmFsc2UgfV0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlUmFkaW8oaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIC8vIHRoaXMuZ290b0xhc3RPcHRpb24oKTtcclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEucHVzaCh7IHR5cGU6ICdyYWRpbycsIGlkOiAncmFkaW9fMScsIHJlcXVpcmVkOiBmYWxzZSwgbGFiZWw6ICcnLCBvcHRpb25zOiBbeyBsYWJlbDogJycsIHZhbHVlOiAxLCBpc19zZWxlY3RlZDogZmFsc2UgfV0gfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhLnNwbGljZShpbmRleCArIDEsIDAsIHsgdHlwZTogJ3JhZGlvJywgaWQ6ICdyYWRpb197aW5kZXgrMX0nLCByZXF1aXJlZDogZmFsc2UsIGxhYmVsOiAnJywgb3B0aW9uczogW3sgbGFiZWw6ICcnLCB2YWx1ZTogMSwgaXNfc2VsZWN0ZWQ6IGZhbHNlIH1dIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ2hlY2tCb3goaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIC8vIHRoaXMuZ290b0xhc3RPcHRpb24oKTtcclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEucHVzaCh7IHR5cGU6ICdjaGVja2JveCcsIGlkOiAnY2hlY2tib3hfMScsIHJlcXVpcmVkOiBmYWxzZSwgbGFiZWw6ICcnLCBvcHRpb25zOiBbeyBsYWJlbDogJycsIHZhbHVlOiAxLCBpc19zZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwIH1dIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCB7XHJcbiAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgICBpZDogJ2NoZWNrYm94X3tpbmRleCsxfScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICBvcHRpb25zOiBbeyBsYWJlbDogJycsIHZhbHVlOiAxLCBpc19zZWxlY3RlZDogZmFsc2UsIHJlcXVpcmVkOiAwIH1dLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZURhdGUoaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIC8vIHRoaXMuZ290b0xhc3RPcHRpb24oKTtcclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEucHVzaCh7IHR5cGU6ICdkYXRlJywgaWQ6ICdkYXRlXzEnLCByZXF1aXJlZDogZmFsc2UsIGxhYmVsOiAnJywgb3B0aW9uczogW10gfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhLnNwbGljZShpbmRleCArIDEsIDAsIHsgdHlwZTogJ2RhdGUnLCBpZDogJ2RhdGVfe2luZGV4KzF9JywgcmVxdWlyZWQ6IGZhbHNlLCBsYWJlbDogJycsIG9wdGlvbnM6IFtdIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlVXBsb2FkKGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICAvLyB0aGlzLmdvdG9MYXN0T3B0aW9uKCk7XHJcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhLnB1c2goeyB0eXBlOiAndXBsb2FkJywgaWQ6ICd1cGxvYWRfMScsIHJlcXVpcmVkOiBmYWxzZSwgbGFiZWw6ICcnLCBvcHRpb25zOiBbXSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEuc3BsaWNlKGluZGV4ICsgMSwgMCwgeyB0eXBlOiAndXBsb2FkJywgaWQ6ICd1cGxvYWRfe2luZGV4KzF9JywgcmVxdWlyZWQ6IGZhbHNlLCBsYWJlbDogJycsIG9wdGlvbnM6IFtdIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgY3JlYXRlT3B0aW9uKGk6IG51bWJlciwgajogbnVtYmVyLCB0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMuY2hlY2twb2ludERhdGFbaV0ub3B0aW9ucy5zcGxpY2UoaiArIDEsIDAsIHsgbGFiZWw6ICcnLCBpZDogJycsIHZhbHVlOiAwLCBpc19zZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgICBmb3IgKGxldCBrID0gMDsgayA8PSB0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnMubGVuZ3RoIC0gMTsgaysrKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGFbaV0ub3B0aW9uc1trXS52YWx1ZSA9IGsgKyAxO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IEVMOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0eXBlICsgJy0nICsgaSArICcnICsgKGogKyAxKSk7XHJcbiAgICAgIGlmIChFTCkgeyBFTC5mb2N1cygpOyB9XHJcbiAgICB9LCAxMCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlT3B0aW9uKGk6IG51bWJlciwgajogbnVtYmVyLCB0eXBlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2twb2ludERhdGFbaV0ub3B0aW9ucy5zcGxpY2UoaiwgMSk7XHJcbiAgICBmb3IgKGxldCBrID0gMDsgayA8PSB0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnMubGVuZ3RoIC0gMTsgaysrKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGFbaV0ub3B0aW9uc1trXS52YWx1ZSA9IGsgKyAxO1xyXG4gICAgfVxyXG4gICAgaWYgKGogLSAxID49IDApIHtcclxuICAgICAgY29uc3QgRUw6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHR5cGUgKyAnLScgKyBpICsgJycgKyAoaiAtIDEpKTtcclxuICAgICAgaWYgKEVMKSB7IEVMLmZvY3VzKCk7IH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IEVMOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0eXBlICsgJy0nICsgaSArICcnICsgMCk7XHJcbiAgICAgIGlmIChFTCkgeyBFTC5mb2N1cygpOyB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVRdWVzdGlvbihpbmRleDogbnVtYmVyKXtcclxuICAgIHRoaXMuY2hlY2twb2ludERhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICB9XHJcblxyXG4gIGNvcHlRdWVzdGlvbihpbmRleDogbnVtYmVyKXtcclxuICAgIGNvbnN0IENPUFlfQVJSID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNoZWNrcG9pbnREYXRhW2luZGV4XSkpO1xyXG4gICAgdGhpcy5jaGVja3BvaW50RGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCBDT1BZX0FSUik7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2F2ZSgpe1xyXG4gICAgY29uc29sZS5sb2codGhpcy52YWxpZGF0ZUNoZWNrcG9pbnQoKSk7XHJcbiAgICBpZiAodGhpcy52YWxpZGF0ZUNoZWNrcG9pbnQoKSA9PT0gZmFsc2Upe1xyXG4gICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ1BsZWFzZSBmaWxsIGluIHRoZSBkZXRhaWxzLicsICdhbGVydCcpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5lcnJvckluZGV4ID0gLTE7XHJcbiAgICAgIHRoaXMuc2F2ZUNoZWNrUG9pbnQuZW1pdCh7Y2hlY2twb2ludEluc3RydWN0aW9uOiB0aGlzLmNoZWNrcG9pbnRJbnN0cnVjdGlvbiwgY2hlY2twb2ludERldGFpbHM6IHRoaXMuY2hlY2twb2ludERhdGF9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGNsb3NlKCl7XHJcbiAgICBjb25zb2xlLmxvZygnY2xvc2VkJyk7XHJcbiAgICB0aGlzLmNsb3NlQ2hlY2tQb2ludC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUNoZWNrcG9pbnQoKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLmNoZWNrcG9pbnREYXRhLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5jaGVja3BvaW50RGF0YVtpXS5sYWJlbC50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvckluZGV4ID0gaTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY2hlY2twb2ludERhdGFbaV0ub3B0aW9ucy5sZW5ndGggPiAwKXtcclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAodGhpcy5jaGVja3BvaW50RGF0YVtpXS5vcHRpb25zW2pdLmxhYmVsLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JJbmRleCA9IGk7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja3BvaW50RGVzY3JpcHRpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJkZXNjcmlwdGlvbiA9PT5cIiwgZXZlbnQpXHJcbiAgICB0aGlzLmNoZWNrcG9pbnRJbnN0cnVjdGlvbiA9IGV2ZW50XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIDxwPmNoZWNrcG9pbnRzIHdvcmtzITwvcD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJjaGVja3BvaW50c1wiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLWhlYWRcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJjaGVja3BvaW50cy10aXRsZVwiPkFkZCBDaGVja3BvaW50czwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGVja3BvaW50cy1ib2R5XCIgW2NsYXNzLmFsaWduLWNlbnRlcl09XCJjaGVja3BvaW50RGF0YT8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgPGFwcC1jaGVja3BvaW50cy1saXN0ICpuZ0lmPVwiY2hlY2twb2ludERhdGE/Lmxlbmd0aCA9PT0gMFwiIChjcmVhdGVRdWVzdGlvbik9XCJhZGRRdWVzdGlvbigkZXZlbnQpXCIgW3F1ZXN0aW9uVHlwZUxpc3RdPVwicXVlc3Rpb25UeXBlTGlzdFwiPjwvYXBwLWNoZWNrcG9pbnRzLWxpc3Q+XHJcbiAgICAgICAgPGFwcC1jaGVja3BvaW50cy1xdWVzdGlvbnMgKm5nSWY9XCJjaGVja3BvaW50RGF0YT8ubGVuZ3RoID4gMFwiIFtjaGVja3BvaW50SW5zdHJ1Y3Rpb25dPVwiY2hlY2twb2ludEluc3RydWN0aW9uXCIgW2Vycm9ySW5kZXhdPSdlcnJvckluZGV4JyBbY2hlY2twb2ludERhdGFdPVwiY2hlY2twb2ludERhdGFcIiBbcXVlc3Rpb25UeXBlTGlzdF09XCJxdWVzdGlvblR5cGVMaXN0XCJcclxuICAgICAgICAgICAoY3JlYXRlUXVlc3Rpb24pPVwiYWRkUXVlc3Rpb24oJGV2ZW50KVwiIChkZWxldGVRdWVzdGlvbik9XCJyZW1vdmVRdWVzdGlvbigkZXZlbnQpXCIgKGNvcHlRdWVzdGlvbik9XCJjb3B5UXVlc3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgKGJsYW5rUXVlc3Rpb24pPVwiYWRkUXVlc3Rpb24oJGV2ZW50LnR5cGUsJGV2ZW50LmluZGV4KVwiIChjcmVhdGVPcHRpb24pPVwiY3JlYXRlT3B0aW9uKCRldmVudC5xdWVzdGlvbkluZGV4LCRldmVudC5vcHRpb25JbmRleCwkZXZlbnQudHlwZSlcIlxyXG4gICAgICAgICAgIChyZW1vdmVPcHRpb24pPVwiZGVsZXRlT3B0aW9uKCRldmVudC5xdWVzdGlvbkluZGV4LCRldmVudC5vcHRpb25JbmRleCwkZXZlbnQudHlwZSlcIiAodXBkYXRlRGVzY3JpcHRpb24pPVwiY2hlY2twb2ludERlc2NyaXB0aW9uKCRldmVudClcIj48L2FwcC1jaGVja3BvaW50cy1xdWVzdGlvbnM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaGVja3BvaW50cy1mb290ZXJcIj5cclxuICAgICAgICA8YXBwLWNoZWNrcG9pbnQtZmxvYXRpbmctYmFyIFtjb3VudF09XCJjaGVja3BvaW50RGF0YS5sZW5ndGhcIiAoc2F2ZUxpc3QpPVwic2F2ZSgpXCIgW3BsdXJhbFRleHRdPVwiJ0NoZWNrcG9pbnRzIHNlbGVjdGVkLidcIiBbc2luZ3VsYXJUZXh0XT1cIidDaGVja3BvaW50IHNlbGVjdGVkLidcIlxyXG4gICAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2UoKVwiID48L2FwcC1jaGVja3BvaW50LWZsb2F0aW5nLWJhcj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9jaGVja3BvaW50L2NoZWNrcG9pbnRzL2NoZWNrcG9pbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvY2hlY2twb2ludC9jaGVja3BvaW50cy9jaGVja3BvaW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLE1BQU0sRUFFTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFRdkIsTUFBTSxPQUFPLG9CQUFvQjtJQTZDL0IsWUFDVSxRQUF5QixFQUN6QixHQUFzQjtRQUR0QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTlDdEIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ1IsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFDekIsMEJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoQixxQkFBZ0IsR0FBRztZQUNqQjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUztnQkFDZixXQUFXLEVBQUUscUJBQXFCO2dCQUNsQyxJQUFJLEVBQUUsVUFBVTthQUNqQjtZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsOENBQThDO2dCQUMzRCxJQUFJLEVBQUUsVUFBVTthQUNqQjtZQUNEO2dCQUNFLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLElBQUksRUFBRSxPQUFPO2dCQUNiLFdBQVcsRUFBRSw2Q0FBNkM7Z0JBQzFELElBQUksRUFBRSxVQUFVO2FBQ2pCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFdBQVcsRUFBRSwyQ0FBMkM7Z0JBQ3hELElBQUksRUFBRSxVQUFVO2FBQ2pCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLE1BQU07Z0JBQ1osV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsSUFBSSxFQUFFLFVBQVU7YUFDakI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLDJCQUEyQjtnQkFDeEMsSUFBSSxFQUFFLFVBQVU7YUFDakI7U0FDRixDQUFDO0lBSUMsQ0FBQztJQUVKLFFBQVE7UUFDTixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLGNBQWM7WUFDakIsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLEVBQUU7Z0JBQzlDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBUSxFQUFFLEtBQWM7UUFDbEMsUUFBUSxHQUFHLEVBQUU7WUFDWCxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLE1BQU07YUFDUDtZQUNELEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsTUFBTTthQUNQO1lBQ0QsS0FBSyxPQUFPLENBQUMsQ0FBQztnQkFDWixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QixNQUFNO2FBQ1A7WUFDRCxLQUFLLFVBQVUsQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLE1BQU07YUFDUDtZQUNELEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkIsTUFBTTthQUNQO1lBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQztnQkFDYixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QixNQUFNO2FBQ1A7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYztRQUMxQix5QkFBeUI7UUFDekIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJLEVBQUUsU0FBUztnQkFDZixFQUFFLEVBQUUsV0FBVztnQkFDZixRQUFRLEVBQUUsS0FBSztnQkFDZixLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsRUFBRTthQUNaLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsRUFBRSxFQUFFLG1CQUFtQjtnQkFDdkIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYztRQUN6Qix5QkFBeUI7UUFDekIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxFQUFFLEVBQUUsVUFBVTtnQkFDZCxRQUFRLEVBQUUsS0FBSztnQkFDZixLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDdkQsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsUUFBUTtnQkFDZCxFQUFFLEVBQUUsa0JBQWtCO2dCQUN0QixRQUFRLEVBQUUsS0FBSztnQkFDZixLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDdkQsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWM7UUFDeEIseUJBQXlCO1FBQ3pCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDdkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsRUFBRSxFQUFFLFNBQVM7Z0JBQ2IsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3ZELENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsRUFBRSxFQUFFLGlCQUFpQjtnQkFDckIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3ZELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFjO1FBQzNCLHlCQUF5QjtRQUN6QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksRUFBRSxVQUFVO2dCQUNoQixFQUFFLEVBQUUsWUFBWTtnQkFDaEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDcEUsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsRUFBRSxFQUFFLG9CQUFvQjtnQkFDeEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDcEUsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDdkIseUJBQXlCO1FBQ3pCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDdkIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osRUFBRSxFQUFFLFFBQVE7Z0JBQ1osUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ3ZDLElBQUksRUFBRSxNQUFNO2dCQUNaLEVBQUUsRUFBRSxnQkFBZ0I7Z0JBQ3BCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLEtBQUssRUFBRSxFQUFFO2dCQUNULE9BQU8sRUFBRSxFQUFFO2FBQ1osQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWM7UUFDekIseUJBQXlCO1FBQ3pCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ3ZDLElBQUksRUFBRSxRQUFRO2dCQUNkLEVBQUUsRUFBRSxrQkFBa0I7Z0JBQ3RCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLEtBQUssRUFBRSxFQUFFO2dCQUNULE9BQU8sRUFBRSxFQUFFO2FBQ1osQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsSUFBUztRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDOUMsS0FBSyxFQUFFLEVBQUU7WUFDVCxFQUFFLEVBQUUsRUFBRTtZQUNOLEtBQUssRUFBRSxDQUFDO1lBQ1IsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDakQ7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxFQUFFLEdBQVEsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxJQUFJLEVBQUUsRUFBRTtnQkFDTixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDWjtRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxJQUFTO1FBQzFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25FLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNkLE1BQU0sRUFBRSxHQUFRLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkUsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ1o7U0FDRjthQUFNO1lBQ0wsTUFBTSxFQUFFLEdBQVEsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ1o7U0FDRjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssS0FBSyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCO2dCQUNqRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYzthQUN2QyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUM5RCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7d0JBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO3dCQUNwQixPQUFPLEtBQUssQ0FBQztxQkFDZDtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVTtRQUM5QixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7O2lIQXpTVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix3T0NoQmpDLGkvQ0FpQkE7MkZERGEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjtzSUFLakIsZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUVFLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5wdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2hlY2twb2ludHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja3BvaW50cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2twb2ludHMuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrcG9pbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgY2xvc2VDaGVja1BvaW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzYXZlQ2hlY2tQb2ludCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNoZWNrcG9pbnREYXRhOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBjaGVja3BvaW50SW5zdHJ1Y3Rpb24gPSAnJztcclxuICBlcnJvckluZGV4ID0gLTE7XHJcbiAgcXVlc3Rpb25UeXBlTGlzdCA9IFtcclxuICAgIHtcclxuICAgICAgdGV4dDogJ1RleHQnLFxyXG4gICAgICB0eXBlOiAndGV4dGJveCcsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2VsZWN0IGEgdGV4dCBhcmVhLicsXHJcbiAgICAgIGljb246ICcmI3hlYWNlOycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnRHJvcGRvd24nLFxyXG4gICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgZGVzY3JpcHRpb246ICdDaG9vc2UgYW4gb3B0aW9uIGZyb20gYSBtdWx0aXBsZSBzZWxlY3QgYm94LicsXHJcbiAgICAgIGljb246ICcmI3hlYWI5OycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnU2luZ2xlIHNlbGVjdGlvbicsXHJcbiAgICAgIHR5cGU6ICdyYWRpbycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2VsZWN0IG9ubHkgb25lIG9wdGlvbiB3aXRoIGEgcmFkaW8gYnV0dG9uLicsXHJcbiAgICAgIGljb246ICcmI3hlYWI1OycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnTXVsdGlwbGUgc2VsZWN0aW9uJyxcclxuICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgZGVzY3JpcHRpb246ICdTZWxlY3QgbXVsdGlwbGUgb3B0aW9ucyB1c2luZyBhIGNoZWNrYm94LicsXHJcbiAgICAgIGljb246ICcmI3hlYWI0OycsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0ZXh0OiAnRGF0ZScsXHJcbiAgICAgIHR5cGU6ICdkYXRlJyxcclxuICAgICAgZGVzY3JpcHRpb246ICdTZWxlY3QgZGF0ZSBmcm9tIGEgZGF0ZSBwaWNrZXIuJyxcclxuICAgICAgaWNvbjogJyYjeGVhYmE7JyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHRleHQ6ICdVcGxvYWQgRmlsZScsXHJcbiAgICAgIHR5cGU6ICd1cGxvYWQnLFxyXG4gICAgICBkZXNjcmlwdGlvbjogJ1VwbG9hZCBkb2N1bWVudHMgJiBmaWxlcy4nLFxyXG4gICAgICBpY29uOiAnJiN4ZWE5NzsnLFxyXG4gICAgfSxcclxuICBdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzbmFja2JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIHRoaXMuY2hlY2twb2ludERhdGEgPVxyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhICYmIHRoaXMuY2hlY2twb2ludERhdGEgIT0gJydcclxuICAgICAgICA/IGNsb25lRGVlcCh0aGlzLmNoZWNrcG9pbnREYXRhKVxyXG4gICAgICAgIDogW107XHJcbiAgfVxyXG5cclxuICBhZGRRdWVzdGlvbihldnQ6IGFueSwgaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIHN3aXRjaCAoZXZ0KSB7XHJcbiAgICAgIGNhc2UgJ3RleHRib3gnOiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVUZXh0Qm94KGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdzZWxlY3QnOiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVTZWxlY3QoaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ3JhZGlvJzoge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlUmFkaW8oaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2NoZWNrYm94Jzoge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlQ2hlY2tCb3goaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ2RhdGUnOiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVEYXRlKGluZGV4KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICd1cGxvYWQnOiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVVcGxvYWQoaW5kZXgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVUZXh0Qm94KGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICAvLyB0aGlzLmdvdG9MYXN0T3B0aW9uKCk7XHJcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICd0ZXh0Ym94JyxcclxuICAgICAgICBpZDogJ3RleHRib3hfMScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICBvcHRpb25zOiBbXSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhLnNwbGljZShpbmRleCArIDEsIDAsIHtcclxuICAgICAgICB0eXBlOiAndGV4dGJveCcsXHJcbiAgICAgICAgaWQ6IGB0ZXh0Ym94X3tpbmRleCsxfWAsXHJcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICBvcHRpb25zOiBbXSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTZWxlY3QoaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIC8vIHRoaXMuZ290b0xhc3RPcHRpb24oKTtcclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXHJcbiAgICAgICAgaWQ6ICdzZWxlY3RfMScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICBvcHRpb25zOiBbeyBsYWJlbDogJycsIHZhbHVlOiAxLCBpc19zZWxlY3RlZDogZmFsc2UgfV0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCB7XHJcbiAgICAgICAgdHlwZTogJ3NlbGVjdCcsXHJcbiAgICAgICAgaWQ6ICdzZWxlY3Rfe2luZGV4KzF9JyxcclxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgIG9wdGlvbnM6IFt7IGxhYmVsOiAnJywgdmFsdWU6IDEsIGlzX3NlbGVjdGVkOiBmYWxzZSB9XSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVSYWRpbyhpbmRleD86IG51bWJlcikge1xyXG4gICAgLy8gdGhpcy5nb3RvTGFzdE9wdGlvbigpO1xyXG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YS5wdXNoKHtcclxuICAgICAgICB0eXBlOiAncmFkaW8nLFxyXG4gICAgICAgIGlkOiAncmFkaW9fMScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICBvcHRpb25zOiBbeyBsYWJlbDogJycsIHZhbHVlOiAxLCBpc19zZWxlY3RlZDogZmFsc2UgfV0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCB7XHJcbiAgICAgICAgdHlwZTogJ3JhZGlvJyxcclxuICAgICAgICBpZDogJ3JhZGlvX3tpbmRleCsxfScsXHJcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICBvcHRpb25zOiBbeyBsYWJlbDogJycsIHZhbHVlOiAxLCBpc19zZWxlY3RlZDogZmFsc2UgfV0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ2hlY2tCb3goaW5kZXg/OiBudW1iZXIpIHtcclxuICAgIC8vIHRoaXMuZ290b0xhc3RPcHRpb24oKTtcclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGEucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgICBpZDogJ2NoZWNrYm94XzEnLFxyXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgb3B0aW9uczogW3sgbGFiZWw6ICcnLCB2YWx1ZTogMSwgaXNfc2VsZWN0ZWQ6IGZhbHNlLCByZXF1aXJlZDogMCB9XSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhLnNwbGljZShpbmRleCArIDEsIDAsIHtcclxuICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxyXG4gICAgICAgIGlkOiAnY2hlY2tib3hfe2luZGV4KzF9JyxcclxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgIG9wdGlvbnM6IFt7IGxhYmVsOiAnJywgdmFsdWU6IDEsIGlzX3NlbGVjdGVkOiBmYWxzZSwgcmVxdWlyZWQ6IDAgfV0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlRGF0ZShpbmRleD86IG51bWJlcikge1xyXG4gICAgLy8gdGhpcy5nb3RvTGFzdE9wdGlvbigpO1xyXG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YS5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnZGF0ZScsXHJcbiAgICAgICAgaWQ6ICdkYXRlXzEnLFxyXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgb3B0aW9uczogW10sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCB7XHJcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICAgIGlkOiAnZGF0ZV97aW5kZXgrMX0nLFxyXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgb3B0aW9uczogW10sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlVXBsb2FkKGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICAvLyB0aGlzLmdvdG9MYXN0T3B0aW9uKCk7XHJcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICd1cGxvYWQnLFxyXG4gICAgICAgIGlkOiAndXBsb2FkXzEnLFxyXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgb3B0aW9uczogW10sXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja3BvaW50RGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCB7XHJcbiAgICAgICAgdHlwZTogJ3VwbG9hZCcsXHJcbiAgICAgICAgaWQ6ICd1cGxvYWRfe2luZGV4KzF9JyxcclxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgIG9wdGlvbnM6IFtdLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZU9wdGlvbihpOiBudW1iZXIsIGo6IG51bWJlciwgdHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnMuc3BsaWNlKGogKyAxLCAwLCB7XHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgaWQ6ICcnLFxyXG4gICAgICB2YWx1ZTogMCxcclxuICAgICAgaXNfc2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgfSk7XHJcbiAgICBmb3IgKGxldCBrID0gMDsgayA8PSB0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnMubGVuZ3RoIC0gMTsgaysrKSB7XHJcbiAgICAgIHRoaXMuY2hlY2twb2ludERhdGFbaV0ub3B0aW9uc1trXS52YWx1ZSA9IGsgKyAxO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IEVMOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0eXBlICsgJy0nICsgaSArICcnICsgKGogKyAxKSk7XHJcbiAgICAgIGlmIChFTCkge1xyXG4gICAgICAgIEVMLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZU9wdGlvbihpOiBudW1iZXIsIGo6IG51bWJlciwgdHlwZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5jaGVja3BvaW50RGF0YVtpXS5vcHRpb25zLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnMuc3BsaWNlKGosIDEpO1xyXG4gICAgZm9yIChsZXQgayA9IDA7IGsgPD0gdGhpcy5jaGVja3BvaW50RGF0YVtpXS5vcHRpb25zLmxlbmd0aCAtIDE7IGsrKykge1xyXG4gICAgICB0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnNba10udmFsdWUgPSBrICsgMTtcclxuICAgIH1cclxuICAgIGlmIChqIC0gMSA+PSAwKSB7XHJcbiAgICAgIGNvbnN0IEVMOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0eXBlICsgJy0nICsgaSArICcnICsgKGogLSAxKSk7XHJcbiAgICAgIGlmIChFTCkge1xyXG4gICAgICAgIEVMLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IEVMOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0eXBlICsgJy0nICsgaSArICcnICsgMCk7XHJcbiAgICAgIGlmIChFTCkge1xyXG4gICAgICAgIEVMLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVF1ZXN0aW9uKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuY2hlY2twb2ludERhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICB9XHJcblxyXG4gIGNvcHlRdWVzdGlvbihpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBDT1BZX0FSUiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGVja3BvaW50RGF0YVtpbmRleF0pKTtcclxuICAgIHRoaXMuY2hlY2twb2ludERhdGEuc3BsaWNlKGluZGV4ICsgMSwgMCwgQ09QWV9BUlIpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICh0aGlzLnZhbGlkYXRlQ2hlY2twb2ludCgpID09PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLnNuYWNrYmFyLnNob3coJ1BsZWFzZSBmaWxsIGluIHRoZSBkZXRhaWxzLicsICdhbGVydCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lcnJvckluZGV4ID0gLTE7XHJcbiAgICAgIHRoaXMuc2F2ZUNoZWNrUG9pbnQuZW1pdCh7XHJcbiAgICAgICAgY2hlY2twb2ludEluc3RydWN0aW9uOiB0aGlzLmNoZWNrcG9pbnRJbnN0cnVjdGlvbixcclxuICAgICAgICBjaGVja3BvaW50RGV0YWlsczogdGhpcy5jaGVja3BvaW50RGF0YSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jbG9zZUNoZWNrUG9pbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVDaGVja3BvaW50KCkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5jaGVja3BvaW50RGF0YS5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuY2hlY2twb2ludERhdGFbaV0ubGFiZWwudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuZXJyb3JJbmRleCA9IGk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNoZWNrcG9pbnREYXRhW2ldLm9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5jaGVja3BvaW50RGF0YVtpXS5vcHRpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jaGVja3BvaW50RGF0YVtpXS5vcHRpb25zW2pdLmxhYmVsLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvckluZGV4ID0gaTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2twb2ludERlc2NyaXB0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY2hlY2twb2ludEluc3RydWN0aW9uID0gZXZlbnQ7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+Y2hlY2twb2ludHMgd29ya3MhPC9wPiAtLT5cclxuPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzXCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2hlY2twb2ludHMtaGVhZFwiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cImNoZWNrcG9pbnRzLXRpdGxlXCI+QWRkIENoZWNrcG9pbnRzPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLWJvZHlcIiBbY2xhc3MuYWxpZ24tY2VudGVyXT1cImNoZWNrcG9pbnREYXRhPy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICA8YXBwLWNoZWNrcG9pbnRzLWxpc3QgKm5nSWY9XCJjaGVja3BvaW50RGF0YT8ubGVuZ3RoID09PSAwXCIgKGNyZWF0ZVF1ZXN0aW9uKT1cImFkZFF1ZXN0aW9uKCRldmVudClcIiBbcXVlc3Rpb25UeXBlTGlzdF09XCJxdWVzdGlvblR5cGVMaXN0XCI+PC9hcHAtY2hlY2twb2ludHMtbGlzdD5cclxuICAgICAgICA8YXBwLWNoZWNrcG9pbnRzLXF1ZXN0aW9ucyAqbmdJZj1cImNoZWNrcG9pbnREYXRhPy5sZW5ndGggPiAwXCIgW2NoZWNrcG9pbnRJbnN0cnVjdGlvbl09XCJjaGVja3BvaW50SW5zdHJ1Y3Rpb25cIiBbZXJyb3JJbmRleF09J2Vycm9ySW5kZXgnIFtjaGVja3BvaW50RGF0YV09XCJjaGVja3BvaW50RGF0YVwiIFtxdWVzdGlvblR5cGVMaXN0XT1cInF1ZXN0aW9uVHlwZUxpc3RcIlxyXG4gICAgICAgICAgIChjcmVhdGVRdWVzdGlvbik9XCJhZGRRdWVzdGlvbigkZXZlbnQpXCIgKGRlbGV0ZVF1ZXN0aW9uKT1cInJlbW92ZVF1ZXN0aW9uKCRldmVudClcIiAoY29weVF1ZXN0aW9uKT1cImNvcHlRdWVzdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgICAoYmxhbmtRdWVzdGlvbik9XCJhZGRRdWVzdGlvbigkZXZlbnQudHlwZSwkZXZlbnQuaW5kZXgpXCIgKGNyZWF0ZU9wdGlvbik9XCJjcmVhdGVPcHRpb24oJGV2ZW50LnF1ZXN0aW9uSW5kZXgsJGV2ZW50Lm9wdGlvbkluZGV4LCRldmVudC50eXBlKVwiXHJcbiAgICAgICAgICAgKHJlbW92ZU9wdGlvbik9XCJkZWxldGVPcHRpb24oJGV2ZW50LnF1ZXN0aW9uSW5kZXgsJGV2ZW50Lm9wdGlvbkluZGV4LCRldmVudC50eXBlKVwiICh1cGRhdGVEZXNjcmlwdGlvbik9XCJjaGVja3BvaW50RGVzY3JpcHRpb24oJGV2ZW50KVwiPjwvYXBwLWNoZWNrcG9pbnRzLXF1ZXN0aW9ucz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNoZWNrcG9pbnRzLWZvb3RlclwiPlxyXG4gICAgICAgIDxhcHAtY2hlY2twb2ludC1mbG9hdGluZy1iYXIgW2NvdW50XT1cImNoZWNrcG9pbnREYXRhLmxlbmd0aFwiIChzYXZlTGlzdCk9XCJzYXZlKClcIiBbcGx1cmFsVGV4dF09XCInQ2hlY2twb2ludHMgc2VsZWN0ZWQuJ1wiIFtzaW5ndWxhclRleHRdPVwiJ0NoZWNrcG9pbnQgc2VsZWN0ZWQuJ1wiXHJcbiAgICAgICAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCIgPjwvYXBwLWNoZWNrcG9pbnQtZmxvYXRpbmctYmFyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|