vc-create-dashboard 2.2.9 → 2.3.2
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/bundles/create-dashboard.umd.js +21 -36
- package/bundles/create-dashboard.umd.js.map +1 -1
- package/create-dashboard.metadata.json +1 -1
- package/esm2015/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.js +5 -4
- package/esm2015/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.ngfactory.js +15 -13
- package/esm2015/lib/create-dashboard-container/create-dashboard.component.js +17 -15
- package/esm2015/lib/create-dashboard-container/create-dashboard.component.ngfactory.js +3 -3
- package/esm2015/lib/create-dashboard-container/user-list/user-list.component.js +2 -20
- package/fesm2015/create-dashboard.js +21 -36
- package/fesm2015/create-dashboard.js.map +1 -1
- package/package.json +1 -1
|
@@ -232,7 +232,7 @@ function View_CreateDashboardComponent_56(_l) { return i1.ɵvid(0, [(_l()(), i1.
|
|
|
232
232
|
_co.closeToDatePicker();
|
|
233
233
|
var pd_3 = ((_co.datePickerOverlay = false) !== false);
|
|
234
234
|
ad = (pd_3 && ad);
|
|
235
|
-
} return ad; }, i25.View_DatePickerComponent_0, i25.RenderType_DatePickerComponent)), i1.ɵprd(512, null, i26.ɵc, i26.ɵc, [i26.ɵb]), i1.ɵprd(512, null, i26.ɵe, i26.ɵe, [i26.ɵb]), i1.ɵprd(512, null, i26.ɵd, i26.ɵd, [i26.ɵb, i26.ɵe, i26.ɵc]), i1.ɵprd(512, null, i26.ɵa, i26.ɵa, [i26.ɵb, i26.ɵc, i26.ɵd]), i1.ɵdid(10, 4964352, [[2, 4], ["toDatePicker", 4]], 0, i26.DatePickerComponent, [i26.ɵa, i26.ɵf, i1.ElementRef, i1.Renderer2, i26.ɵb, i1.ChangeDetectorRef], { config: [0, "config"], placeholder: [1, "placeholder"] }, { onSelect: "onSelect" }), i1.ɵprd(1024, null, i27.NG_VALIDATORS, function (p0_0) { return [p0_0]; }, [i26.DatePickerComponent]), i1.ɵprd(1024, null, i27.NG_VALUE_ACCESSOR, function (p0_0) { return [p0_0]; }, [i26.DatePickerComponent]), i1.ɵdid(13, 671744, null, 0, i27.NgModel, [[8, null], [6, i27.NG_VALIDATORS], [8, null], [6, i27.NG_VALUE_ACCESSOR]], { model: [0, "model"] }, { update: "ngModelChange" }), i1.ɵprd(2048, null, i27.NgControl, null, [i27.NgModel]), i1.ɵdid(15, 16384, null, 0, i27.NgControlStatus, [[4, i27.NgControl]], null, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CreateDashboardComponent_57)), i1.ɵdid(17, 16384, null, 0, i15.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_11 = _co.toDatePickerConfig; var currVal_12 = "Select Date"; _ck(_v, 10, 0, currVal_11, currVal_12); var currVal_13 = _co.dashboardForm.selectedToDate; _ck(_v, 13, 0, currVal_13); var currVal_14 = _co.datePickerOverlay; _ck(_v, 17, 0, currVal_14); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = !((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedFromDate); _ck(_v, 0, 0, currVal_0); var currVal_1 = i1.ɵunv(_v, 3, 0, _ck(_v, 4, 0, i1.ɵnov(_v.parent.parent, 0), _co.dashboardForm.selectedToDate, "dd MMM yyyy")); var currVal_2 = "To"; _ck(_v, 3, 0, currVal_1, currVal_2); var currVal_3 = i1.ɵnov(_v, 10).theme; var currVal_4 = i1.ɵnov(_v, 15).is("untouched"); var currVal_5 = i1.ɵnov(_v, 15).is("touched"); var currVal_6 = i1.ɵnov(_v, 15).is("pristine"); var currVal_7 = i1.ɵnov(_v, 15).is("dirty"); var currVal_8 = i1.ɵnov(_v, 15).is("valid"); var currVal_9 = i1.ɵnov(_v, 15).is("invalid"); var currVal_10 = i1.ɵnov(_v, 15).is("pending"); _ck(_v, 5, 0, currVal_3, currVal_4, currVal_5, currVal_6, currVal_7, currVal_8, currVal_9, currVal_10); }); }
|
|
235
|
+
} return ad; }, i25.View_DatePickerComponent_0, i25.RenderType_DatePickerComponent)), i1.ɵprd(512, null, i26.ɵc, i26.ɵc, [i26.ɵb]), i1.ɵprd(512, null, i26.ɵe, i26.ɵe, [i26.ɵb]), i1.ɵprd(512, null, i26.ɵd, i26.ɵd, [i26.ɵb, i26.ɵe, i26.ɵc]), i1.ɵprd(512, null, i26.ɵa, i26.ɵa, [i26.ɵb, i26.ɵc, i26.ɵd]), i1.ɵdid(10, 4964352, [[2, 4], ["toDatePicker", 4]], 0, i26.DatePickerComponent, [i26.ɵa, i26.ɵf, i1.ElementRef, i1.Renderer2, i26.ɵb, i1.ChangeDetectorRef], { config: [0, "config"], placeholder: [1, "placeholder"] }, { onSelect: "onSelect" }), i1.ɵprd(1024, null, i27.NG_VALIDATORS, function (p0_0) { return [p0_0]; }, [i26.DatePickerComponent]), i1.ɵprd(1024, null, i27.NG_VALUE_ACCESSOR, function (p0_0) { return [p0_0]; }, [i26.DatePickerComponent]), i1.ɵdid(13, 671744, null, 0, i27.NgModel, [[8, null], [6, i27.NG_VALIDATORS], [8, null], [6, i27.NG_VALUE_ACCESSOR]], { model: [0, "model"] }, { update: "ngModelChange" }), i1.ɵprd(2048, null, i27.NgControl, null, [i27.NgModel]), i1.ɵdid(15, 16384, null, 0, i27.NgControlStatus, [[4, i27.NgControl]], null, null), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CreateDashboardComponent_57)), i1.ɵdid(17, 16384, null, 0, i15.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_11 = _co.toDatePickerConfig; var currVal_12 = "Select Date"; _ck(_v, 10, 0, currVal_11, currVal_12); var currVal_13 = _co.dashboardForm.selectedToDate; _ck(_v, 13, 0, currVal_13); var currVal_14 = _co.datePickerOverlay; _ck(_v, 17, 0, currVal_14); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = !((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedFromDate); _ck(_v, 0, 0, currVal_0); var currVal_1 = i1.ɵunv(_v, 3, 0, _ck(_v, 4, 0, i1.ɵnov(_v.parent.parent, 0), ((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedToDate), "dd MMM yyyy")); var currVal_2 = "To"; _ck(_v, 3, 0, currVal_1, currVal_2); var currVal_3 = i1.ɵnov(_v, 10).theme; var currVal_4 = i1.ɵnov(_v, 15).is("untouched"); var currVal_5 = i1.ɵnov(_v, 15).is("touched"); var currVal_6 = i1.ɵnov(_v, 15).is("pristine"); var currVal_7 = i1.ɵnov(_v, 15).is("dirty"); var currVal_8 = i1.ɵnov(_v, 15).is("valid"); var currVal_9 = i1.ɵnov(_v, 15).is("invalid"); var currVal_10 = i1.ɵnov(_v, 15).is("pending"); _ck(_v, 5, 0, currVal_3, currVal_4, currVal_5, currVal_6, currVal_7, currVal_8, currVal_9, currVal_10); }); }
|
|
236
236
|
function View_CreateDashboardComponent_58(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, "p", [["class", "vx-txt-error"]], null, null, null, null, null)), i1.ɵdid(1, 4734976, null, 0, i18.ScrollInViewDirective, [i1.ElementRef], { appScrollInView: [0, "appScrollInView"] }, null), (_l()(), i1.ɵted(-1, null, [" Select a time-frame."]))], function (_ck, _v) { var currVal_0 = true; _ck(_v, 1, 0, currVal_0); }, null); }
|
|
237
237
|
function View_CreateDashboardComponent_59(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 0, "img", [["alt", ""], ["src", "./assets/images/send-resolution.svg"]], null, null, null, null, null))], null, null); }
|
|
238
238
|
function View_CreateDashboardComponent_60(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 2, ":svg:svg", [["class", "checkIcon"], ["viewBox", "0 0 52 52"], ["xmlns", "http://www.w3.org/2000/svg"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 0, ":svg:circle", [["class", "checkIcon__circle"], ["cx", "26"], ["cy", "26"], ["fill", "none"], ["r", "25"]], null, null, null, null, null)), (_l()(), i1.ɵeld(2, 0, null, null, 0, ":svg:path", [["class", "checkIcon__check"], ["d", "M14.1 27.2l7.1 7.2 16.7-16.8"], ["fill", "none"]], null, null, null, null, null))], null, null); }
|
|
@@ -318,7 +318,7 @@ function View_CreateDashboardComponent_1(_l) { return i1.ɵvid(0, [(_l()(), i1.
|
|
|
318
318
|
} return ad; }, null, null)), (_l()(), i1.ɵted(-1, null, ["Next: Configure Widgets"])), (_l()(), i1.ɵeld(176, 0, null, null, 2, "button", [["class", "close-dialog"], ["type", "button"]], [[8, "disabled", 0]], [[null, "click"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if (("click" === en)) {
|
|
319
319
|
var pd_0 = (_co.close.emit({ mode: "discard" }) !== false);
|
|
320
320
|
ad = (pd_0 && ad);
|
|
321
|
-
} return ad; }, null, null)), (_l()(), i1.ɵeld(177, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["\uEABE"])), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CreateDashboardComponent_64)), i1.ɵdid(180, 16384, null, 0, i15.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_1 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 3, 0, currVal_1); var currVal_2 = _co.vLoader; _ck(_v, 6, 0, currVal_2); var currVal_6 = (!_co.dashboardForm.dashboardName || (_co.activeSelector === "name")); _ck(_v, 12, 0, currVal_6); var currVal_7 = (_co.dashboardForm.dashboardName && (_co.activeSelector !== "name")); _ck(_v, 14, 0, currVal_7); var currVal_15 = _co.dashboardForm.dashboardName; _ck(_v, 25, 0, currVal_15); var currVal_16 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.dashboardName == null) ? null : _co.dashboardForm.dashboardName.length)) > 0); _ck(_v, 29, 0, currVal_16); var currVal_17 = (_co.submitted && ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.dashboardName == null) ? null : _co.dashboardForm.dashboardName.length)) > 30) || !((_co.dashboardForm == null) ? null : _co.dashboardForm.dashboardName))); _ck(_v, 31, 0, currVal_17); var currVal_25 = _co.dashboardDescription; _ck(_v, 34, 0, currVal_25); var currVal_26 = _co.dashboardForm.dashboardDescriptionText; _ck(_v, 36, 0, currVal_26); var currVal_27 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.dashboardDescriptionText == null) ? null : _co.dashboardForm.dashboardDescriptionText.length)) > 0); _ck(_v, 40, 0, currVal_27); var currVal_28 = (_co.submitted && (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.dashboardDescriptionText == null) ? null : _co.dashboardForm.dashboardDescriptionText.length)) > 250)); _ck(_v, 42, 0, currVal_28); var currVal_31 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedViewers == null) ? null : _co.dashboardForm.selectedViewers.length)) == 0) || (_co.activeSelector === "whoCanView")); _ck(_v, 46, 0, currVal_31); var currVal_32 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedViewers == null) ? null : _co.dashboardForm.selectedViewers.length)) > 0) && (_co.activeSelector !== "whoCanView")); _ck(_v, 48, 0, currVal_32); var currVal_33 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedViewers == null) ? null : _co.dashboardForm.selectedViewers.length)) == 0); _ck(_v, 56, 0, currVal_33); var currVal_34 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedViewers == null) ? null : _co.dashboardForm.selectedViewers.length)) > 0); _ck(_v, 58, 0, currVal_34); var currVal_35 = true; _ck(_v, 60, 0, currVal_35); var currVal_36 = i1.ɵunv(_v, 64, 0, i1.ɵnov(_v, 65).transform(((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedViewers), 2)); _ck(_v, 64, 0, currVal_36); var currVal_39 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) == 0) || (_co.activeSelector === "rcList")); _ck(_v, 69, 0, currVal_39); var currVal_40 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) > 0) && (_co.activeSelector !== "rcList")); _ck(_v, 71, 0, currVal_40); var currVal_41 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) == 0); _ck(_v, 77, 0, currVal_41); var currVal_42 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) > 0); _ck(_v, 79, 0, currVal_42); var currVal_43 = true; _ck(_v, 81, 0, currVal_43); var currVal_44 = i1.ɵunv(_v, 85, 0, i1.ɵnov(_v, 86).transform(((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedResponsibilityCenters), 2)); _ck(_v, 85, 0, currVal_44); var currVal_47 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) == 0) || (_co.activeSelector === "responsibilityCategories")); _ck(_v, 90, 0, currVal_47); var currVal_48 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) > 0) && (_co.activeSelector !== "responsibilityCategories")); _ck(_v, 92, 0, currVal_48); var currVal_49 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) == 0); _ck(_v, 98, 0, currVal_49); var currVal_50 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) > 0); _ck(_v, 100, 0, currVal_50); var currVal_51 = true; _ck(_v, 102, 0, currVal_51); var currVal_52 = i1.ɵunv(_v, 106, 0, i1.ɵnov(_v, 107).transform(((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedResponsibilityCategories), 2)); _ck(_v, 106, 0, currVal_52); var currVal_53 = _co.showRiskCategory; _ck(_v, 109, 0, currVal_53); var currVal_55 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.displayCriteria == null) ? null : _co.dashboardForm.displayCriteria.length)) == 0); _ck(_v, 113, 0, currVal_55); var currVal_56 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.displayCriteria == null) ? null : _co.dashboardForm.displayCriteria.length)) > 0); _ck(_v, 115, 0, currVal_56); var currVal_57 = _co.showCriteria; _ck(_v, 121, 0, currVal_57); var currVal_59 = (!((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedFromDate) || !((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedToDate)); _ck(_v, 125, 0, currVal_59); var currVal_60 = (((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedFromDate) && ((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedToDate)); _ck(_v, 127, 0, currVal_60); var currVal_71 = _co.fromDatePickerConfig; var currVal_72 = "Select Date"; _ck(_v, 145, 0, currVal_71, currVal_72); var currVal_73 = _co.dashboardForm.selectedFromDate; _ck(_v, 148, 0, currVal_73); var currVal_74 = _co.datePickerOverlay; _ck(_v, 152, 0, currVal_74); var currVal_75 = !_co.hideToDate; _ck(_v, 154, 0, currVal_75); var currVal_76 = (_co.submitted && (_co.dashboardForm.selectedFromDate && !_co.dashboardForm.selectedToDate)); _ck(_v, 156, 0, currVal_76); var currVal_79 = !_co.dashboardForm.frequencyMessage; _ck(_v, 160, 0, currVal_79); var currVal_80 = _co.dashboardForm.frequencyMessage; _ck(_v, 162, 0, currVal_80); var currVal_81 = !_co.dashboardForm.frequencyMessage; _ck(_v, 170, 0, currVal_81); var currVal_82 = _co.dashboardForm.frequencyMessage; _ck(_v, 172, 0, currVal_82); var currVal_85 = (((_co.submitted && (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) == 0)) && (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) == 0)) && (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedRiskCategories == null) ? null : _co.dashboardForm.selectedRiskCategories.length)) == 0)); _ck(_v, 180, 0, currVal_85); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.animation; _ck(_v, 1, 0, currVal_0); var currVal_3 = _co.disabled; _ck(_v, 7, 0, currVal_3); var currVal_4 = _co.popoverService.stopScroll; _ck(_v, 8, 0, currVal_4); var currVal_5 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 9, 0, currVal_5); var currVal_8 = i1.ɵnov(_v, 27).is("untouched"); var currVal_9 = i1.ɵnov(_v, 27).is("touched"); var currVal_10 = i1.ɵnov(_v, 27).is("pristine"); var currVal_11 = i1.ɵnov(_v, 27).is("dirty"); var currVal_12 = i1.ɵnov(_v, 27).is("valid"); var currVal_13 = i1.ɵnov(_v, 27).is("invalid"); var currVal_14 = i1.ɵnov(_v, 27).is("pending"); _ck(_v, 22, 0, currVal_8, currVal_9, currVal_10, currVal_11, currVal_12, currVal_13, currVal_14); var currVal_18 = i1.ɵnov(_v, 38).is("untouched"); var currVal_19 = i1.ɵnov(_v, 38).is("touched"); var currVal_20 = i1.ɵnov(_v, 38).is("pristine"); var currVal_21 = i1.ɵnov(_v, 38).is("dirty"); var currVal_22 = i1.ɵnov(_v, 38).is("valid"); var currVal_23 = i1.ɵnov(_v, 38).is("invalid"); var currVal_24 = i1.ɵnov(_v, 38).is("pending"); _ck(_v, 33, 0, currVal_18, currVal_19, currVal_20, currVal_21, currVal_22, currVal_23, currVal_24); var currVal_29 = (_co.activeSelector === "whoCanView"); var currVal_30 = ((_co.activeSelector && (_co.activeSelector !== "whoCanView")) && (_co.activeSelector !== "name")); _ck(_v, 43, 0, currVal_29, currVal_30); var currVal_37 = (_co.activeSelector === "rcList"); var currVal_38 = ((_co.activeSelector && (_co.activeSelector !== "rcList")) && (_co.activeSelector !== "name")); _ck(_v, 66, 0, currVal_37, currVal_38); var currVal_45 = (_co.activeSelector === "responsibilityCategories"); var currVal_46 = ((_co.activeSelector && (_co.activeSelector !== "responsibilityCategories")) && (_co.activeSelector !== "name")); _ck(_v, 87, 0, currVal_45, currVal_46); var currVal_54 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 110, 0, currVal_54); var currVal_58 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 122, 0, currVal_58); var currVal_61 = i1.ɵunv(_v, 138, 0, _ck(_v, 139, 0, i1.ɵnov(_v.parent, 0), _co.dashboardForm.selectedFromDate, "dd MMM yyyy")); var currVal_62 = "From"; _ck(_v, 138, 0, currVal_61, currVal_62); var currVal_63 = i1.ɵnov(_v, 145).theme; var currVal_64 = i1.ɵnov(_v, 150).is("untouched"); var currVal_65 = i1.ɵnov(_v, 150).is("touched"); var currVal_66 = i1.ɵnov(_v, 150).is("pristine"); var currVal_67 = i1.ɵnov(_v, 150).is("dirty"); var currVal_68 = i1.ɵnov(_v, 150).is("valid"); var currVal_69 = i1.ɵnov(_v, 150).is("invalid"); var currVal_70 = i1.ɵnov(_v, 150).is("pending"); _ck(_v, 140, 0, currVal_63, currVal_64, currVal_65, currVal_66, currVal_67, currVal_68, currVal_69, currVal_70); var currVal_77 = (_co.activeSelector === "frequency"); var currVal_78 = ((_co.activeSelector && (_co.activeSelector !== "frequency")) && (_co.activeSelector !== "name")); _ck(_v, 157, 0, currVal_77, currVal_78); var currVal_83 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 174, 0, currVal_83); var currVal_84 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 176, 0, currVal_84); }); }
|
|
321
|
+
} return ad; }, null, null)), (_l()(), i1.ɵeld(177, 0, null, null, 1, "i", [["class", "icons"]], null, null, null, null, null)), (_l()(), i1.ɵted(-1, null, ["\uEABE"])), (_l()(), i1.ɵand(16777216, null, null, 1, null, View_CreateDashboardComponent_64)), i1.ɵdid(180, 16384, null, 0, i15.NgIf, [i1.ViewContainerRef, i1.TemplateRef], { ngIf: [0, "ngIf"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_1 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 3, 0, currVal_1); var currVal_2 = _co.vLoader; _ck(_v, 6, 0, currVal_2); var currVal_6 = (!_co.dashboardForm.dashboardName || (_co.activeSelector === "name")); _ck(_v, 12, 0, currVal_6); var currVal_7 = (_co.dashboardForm.dashboardName && (_co.activeSelector !== "name")); _ck(_v, 14, 0, currVal_7); var currVal_15 = _co.dashboardForm.dashboardName; _ck(_v, 25, 0, currVal_15); var currVal_16 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.dashboardName == null) ? null : _co.dashboardForm.dashboardName.length)) > 0); _ck(_v, 29, 0, currVal_16); var currVal_17 = (_co.submitted && ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.dashboardName == null) ? null : _co.dashboardForm.dashboardName.length)) > 30) || !((_co.dashboardForm == null) ? null : _co.dashboardForm.dashboardName))); _ck(_v, 31, 0, currVal_17); var currVal_25 = _co.dashboardDescription; _ck(_v, 34, 0, currVal_25); var currVal_26 = _co.dashboardForm.dashboardDescriptionText; _ck(_v, 36, 0, currVal_26); var currVal_27 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.dashboardDescriptionText == null) ? null : _co.dashboardForm.dashboardDescriptionText.length)) > 0); _ck(_v, 40, 0, currVal_27); var currVal_28 = (_co.submitted && (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.dashboardDescriptionText == null) ? null : _co.dashboardForm.dashboardDescriptionText.length)) > 250)); _ck(_v, 42, 0, currVal_28); var currVal_31 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedViewers == null) ? null : _co.dashboardForm.selectedViewers.length)) == 0) || (_co.activeSelector === "whoCanView")); _ck(_v, 46, 0, currVal_31); var currVal_32 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedViewers == null) ? null : _co.dashboardForm.selectedViewers.length)) > 0) && (_co.activeSelector !== "whoCanView")); _ck(_v, 48, 0, currVal_32); var currVal_33 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedViewers == null) ? null : _co.dashboardForm.selectedViewers.length)) == 0); _ck(_v, 56, 0, currVal_33); var currVal_34 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedViewers == null) ? null : _co.dashboardForm.selectedViewers.length)) > 0); _ck(_v, 58, 0, currVal_34); var currVal_35 = true; _ck(_v, 60, 0, currVal_35); var currVal_36 = i1.ɵunv(_v, 64, 0, i1.ɵnov(_v, 65).transform(((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedViewers), 2)); _ck(_v, 64, 0, currVal_36); var currVal_39 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) == 0) || (_co.activeSelector === "rcList")); _ck(_v, 69, 0, currVal_39); var currVal_40 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) > 0) && (_co.activeSelector !== "rcList")); _ck(_v, 71, 0, currVal_40); var currVal_41 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) == 0); _ck(_v, 77, 0, currVal_41); var currVal_42 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) > 0); _ck(_v, 79, 0, currVal_42); var currVal_43 = true; _ck(_v, 81, 0, currVal_43); var currVal_44 = i1.ɵunv(_v, 85, 0, i1.ɵnov(_v, 86).transform(((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedResponsibilityCenters), 2)); _ck(_v, 85, 0, currVal_44); var currVal_47 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) == 0) || (_co.activeSelector === "responsibilityCategories")); _ck(_v, 90, 0, currVal_47); var currVal_48 = ((((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) > 0) && (_co.activeSelector !== "responsibilityCategories")); _ck(_v, 92, 0, currVal_48); var currVal_49 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) == 0); _ck(_v, 98, 0, currVal_49); var currVal_50 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) > 0); _ck(_v, 100, 0, currVal_50); var currVal_51 = true; _ck(_v, 102, 0, currVal_51); var currVal_52 = i1.ɵunv(_v, 106, 0, i1.ɵnov(_v, 107).transform(((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedResponsibilityCategories), 2)); _ck(_v, 106, 0, currVal_52); var currVal_53 = _co.showRiskCategory; _ck(_v, 109, 0, currVal_53); var currVal_55 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.displayCriteria == null) ? null : _co.dashboardForm.displayCriteria.length)) == 0); _ck(_v, 113, 0, currVal_55); var currVal_56 = (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.displayCriteria == null) ? null : _co.dashboardForm.displayCriteria.length)) > 0); _ck(_v, 115, 0, currVal_56); var currVal_57 = _co.showCriteria; _ck(_v, 121, 0, currVal_57); var currVal_59 = (!((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedFromDate) || !((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedToDate)); _ck(_v, 125, 0, currVal_59); var currVal_60 = (((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedFromDate) && ((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedToDate)); _ck(_v, 127, 0, currVal_60); var currVal_71 = _co.fromDatePickerConfig; var currVal_72 = "Select Date"; _ck(_v, 145, 0, currVal_71, currVal_72); var currVal_73 = _co.dashboardForm.selectedFromDate; _ck(_v, 148, 0, currVal_73); var currVal_74 = _co.datePickerOverlay; _ck(_v, 152, 0, currVal_74); var currVal_75 = !_co.hideToDate; _ck(_v, 154, 0, currVal_75); var currVal_76 = (_co.submitted && (_co.dashboardForm.selectedFromDate && !_co.dashboardForm.selectedToDate)); _ck(_v, 156, 0, currVal_76); var currVal_79 = !_co.dashboardForm.frequencyMessage; _ck(_v, 160, 0, currVal_79); var currVal_80 = _co.dashboardForm.frequencyMessage; _ck(_v, 162, 0, currVal_80); var currVal_81 = !_co.dashboardForm.frequencyMessage; _ck(_v, 170, 0, currVal_81); var currVal_82 = _co.dashboardForm.frequencyMessage; _ck(_v, 172, 0, currVal_82); var currVal_85 = (((_co.submitted && (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCenters == null) ? null : _co.dashboardForm.selectedResponsibilityCenters.length)) == 0)) && (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedResponsibilityCategories == null) ? null : _co.dashboardForm.selectedResponsibilityCategories.length)) == 0)) && (((_co.dashboardForm == null) ? null : ((_co.dashboardForm.selectedRiskCategories == null) ? null : _co.dashboardForm.selectedRiskCategories.length)) == 0)); _ck(_v, 180, 0, currVal_85); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = _co.animation; _ck(_v, 1, 0, currVal_0); var currVal_3 = _co.disabled; _ck(_v, 7, 0, currVal_3); var currVal_4 = _co.popoverService.stopScroll; _ck(_v, 8, 0, currVal_4); var currVal_5 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 9, 0, currVal_5); var currVal_8 = i1.ɵnov(_v, 27).is("untouched"); var currVal_9 = i1.ɵnov(_v, 27).is("touched"); var currVal_10 = i1.ɵnov(_v, 27).is("pristine"); var currVal_11 = i1.ɵnov(_v, 27).is("dirty"); var currVal_12 = i1.ɵnov(_v, 27).is("valid"); var currVal_13 = i1.ɵnov(_v, 27).is("invalid"); var currVal_14 = i1.ɵnov(_v, 27).is("pending"); _ck(_v, 22, 0, currVal_8, currVal_9, currVal_10, currVal_11, currVal_12, currVal_13, currVal_14); var currVal_18 = i1.ɵnov(_v, 38).is("untouched"); var currVal_19 = i1.ɵnov(_v, 38).is("touched"); var currVal_20 = i1.ɵnov(_v, 38).is("pristine"); var currVal_21 = i1.ɵnov(_v, 38).is("dirty"); var currVal_22 = i1.ɵnov(_v, 38).is("valid"); var currVal_23 = i1.ɵnov(_v, 38).is("invalid"); var currVal_24 = i1.ɵnov(_v, 38).is("pending"); _ck(_v, 33, 0, currVal_18, currVal_19, currVal_20, currVal_21, currVal_22, currVal_23, currVal_24); var currVal_29 = (_co.activeSelector === "whoCanView"); var currVal_30 = ((_co.activeSelector && (_co.activeSelector !== "whoCanView")) && (_co.activeSelector !== "name")); _ck(_v, 43, 0, currVal_29, currVal_30); var currVal_37 = (_co.activeSelector === "rcList"); var currVal_38 = ((_co.activeSelector && (_co.activeSelector !== "rcList")) && (_co.activeSelector !== "name")); _ck(_v, 66, 0, currVal_37, currVal_38); var currVal_45 = (_co.activeSelector === "responsibilityCategories"); var currVal_46 = ((_co.activeSelector && (_co.activeSelector !== "responsibilityCategories")) && (_co.activeSelector !== "name")); _ck(_v, 87, 0, currVal_45, currVal_46); var currVal_54 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 110, 0, currVal_54); var currVal_58 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 122, 0, currVal_58); var currVal_61 = i1.ɵunv(_v, 138, 0, _ck(_v, 139, 0, i1.ɵnov(_v.parent, 0), ((_co.dashboardForm == null) ? null : _co.dashboardForm.selectedFromDate), "dd MMM yyyy")); var currVal_62 = "From"; _ck(_v, 138, 0, currVal_61, currVal_62); var currVal_63 = i1.ɵnov(_v, 145).theme; var currVal_64 = i1.ɵnov(_v, 150).is("untouched"); var currVal_65 = i1.ɵnov(_v, 150).is("touched"); var currVal_66 = i1.ɵnov(_v, 150).is("pristine"); var currVal_67 = i1.ɵnov(_v, 150).is("dirty"); var currVal_68 = i1.ɵnov(_v, 150).is("valid"); var currVal_69 = i1.ɵnov(_v, 150).is("invalid"); var currVal_70 = i1.ɵnov(_v, 150).is("pending"); _ck(_v, 140, 0, currVal_63, currVal_64, currVal_65, currVal_66, currVal_67, currVal_68, currVal_69, currVal_70); var currVal_77 = (_co.activeSelector === "frequency"); var currVal_78 = ((_co.activeSelector && (_co.activeSelector !== "frequency")) && (_co.activeSelector !== "name")); _ck(_v, 157, 0, currVal_77, currVal_78); var currVal_83 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 174, 0, currVal_83); var currVal_84 = (_co.activeSelector && (_co.activeSelector !== "name")); _ck(_v, 176, 0, currVal_84); }); }
|
|
322
322
|
function View_CreateDashboardComponent_67(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "app-smiley-dialog", [], null, [["window", "keyup"]], function (_v, en, $event) { var ad = true; if (("window:keyup" === en)) {
|
|
323
323
|
var pd_0 = (i1.ɵnov(_v, 1).handleKeyboardEvent($event) !== false);
|
|
324
324
|
ad = (pd_0 && ad);
|
|
@@ -337,4 +337,4 @@ export function View_CreateDashboardComponent_Host_0(_l) { return i1.ɵvid(0, [(
|
|
|
337
337
|
} return ad; }, View_CreateDashboardComponent_0, RenderType_CreateDashboardComponent)), i1.ɵdid(1, 9027584, null, 0, i39.CreateDashboardComponent, [i5.CreateDashboardService, i4.PaginationService, i1.ChangeDetectorRef, i14.SnackBarService, i20.PopoverService, i36.ConfigureWidgetsService], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
|
|
338
338
|
var CreateDashboardComponentNgFactory = i1.ɵccf("app-create-dashboard", i39.CreateDashboardComponent, View_CreateDashboardComponent_Host_0, { mode: "mode", dashboardId: "dashboardId", createdBy: "createdBy", configureWidget: "configureWidget" }, { close: "close" }, []);
|
|
339
339
|
export { CreateDashboardComponentNgFactory as CreateDashboardComponentNgFactory };
|
|
340
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhc2hib2FyZC5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NyZWF0ZS1kYXNoYm9hcmQuY29tcG9uZW50Lm5nZmFjdG9yeS50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9jcmVhdGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUVDSVksK0tBR2dELFlBRjVDOzt3QkFBMkQ7TUFDM0Q7O3dCQUE2QztNQUZqRCw0VkFHZ0QsbURBQTVDLG1CQUEyQixjQURtQixtQkFBeUIsYUFBQyxtQkFBdUIsWUFGbkcsWUFHZ0QsRUFBNUMsU0FBMkIsRUFEbUIsU0FBeUIsRUFBQyxTQUF1QjttRUFFbkcsd0xBSTRCLFlBRHhCOzt3QkFBa0Q7TUFBQzs7d0JBQTJDO01BSGxHLGdiQUk0QixtREFIeEIsbUJBQXVELDRCQUN2RCxtQkFBNkUsOENBQUMseUJBQXFCLEVBRDNDLHFCQUF3QixFQURwRixZQUk0QixFQUh4QixTQUF1RCxFQUN2RCxTQUE2RSxFQUFDLFNBQXFCLEVBRDNDLFNBQXdCO21FQUlwRix5TEFJeUUsWUFEckU7O3dCQUE0RTtNQUM1RTs7d0JBQW1EO01BSnZELG9ZQUl5RSxtREFIckUsbUJBQTZDLCtCQUFDLG1CQUF5QywwQkFDdkYsNkJBQStCLEVBQUMsbUJBQXFFLGlEQUZ6RyxZQUl5RSxFQUhyRSxTQUE2QyxFQUFDLFNBQXlDLEVBQ3ZGLFNBQStCLEVBQUMsU0FBcUU7bUVBR3pHLDhMQUk4RSxZQUQxRTs7d0JBQWdFO01BQ2hFOzt3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d0Msd0JBRGxCLG1CQUFhLE9BQWpFLFlBR3dCLEVBRitDLFNBQXVDLEVBRDVDLFNBQXFDLEVBQ3RHLFNBQTRCLEVBQUMsU0FBd0MsRUFEbEIsU0FBYTs4TUF4Y2pFLGtPQUErQixJQUMvQix5TEFnY00sSUFFTiwwTEFHb0IsSUFFcEIsMkxBR3dCLGlEQTNjeEIsWUFBK0IsR0FDRCxvQkFBNkIsdUJBQTNELFlBZ2NNLEVBaGN3QixTQUE2QixHQW1jdkQsbUJBQWdCLFdBRHBCLFlBR29CLEVBRmhCLFNBQWdCLEdBSUcsbUJBQTRCLHVCQUFuRCxhQUd3QixFQUhELFNBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIiwiPGFwcC1zbmFjay1iYXI+PC9hcHAtc25hY2stYmFyPlxyXG48ZGl2IGNsYXNzPVwiY3JlYXRlLWRhc2hib2FyZFwiICpuZ0lmPVwiIW9wZW5Db25maWd1cmVXaWRnZXRzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kXCIgW2NsYXNzLmFuaW1hdGUtc2xpZGVJblJpZ2h0XT1cImFuaW1hdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb3JlLW9wdGlvblwiICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IhPT0nbmFtZSdcIj5cclxuICAgICAgICAgICAgPGFwcC11c2VyLWxpc3QgKm5nSWY9XCJhY3RpdmVTZWxlY3Rvcj09PSd3aG9DYW5WaWV3J1wiXHJcbiAgICAgICAgICAgICAgICAoc2F2ZVNlbGVjdGVkVXNlcnMpPVwic2F2ZVNlbGVjdGVkTGlzdCgnd2hvQ2FuVmlldycsJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoY2xvc2VVc2VyTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIiBbdG90YWxQYWdlc109XCJ0b3RhbFBhZ2VzXCIgW3RvdGFsTGlzdF09XCJ0b3RhbExpc3RcIlxyXG4gICAgICAgICAgICAgICAgW2xpc3REZXRhaWxzXT1cImxpc3REZXRhaWxzXCI+PC9hcHAtdXNlci1saXN0PlxyXG4gICAgICAgICAgICA8YXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlciAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J3JjTGlzdCdcIlxyXG4gICAgICAgICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RdPVwicmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdFwiIFtyYWRpb1NlbGVjdGlvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnNdPVwiZGFzaGJvYXJkRm9ybS5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVyc1wiIFtyY0lkS2V5XT1cIidpdGVtX2lkJ1wiXHJcbiAgICAgICAgICAgICAgICAoc2F2ZVNlbGVjdGVkTGlzdCk9XCJzYXZlU2VsZWN0ZWRMaXN0KCdyYycsJGV2ZW50KVwiIChjbG9zZVJjTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIj5cclxuICAgICAgICAgICAgPC9hcHAtcmVzcG9uc2liaWxpdHktY2VudGVyPlxyXG4gICAgICAgICAgICA8YXBwLWNhdGVnb3JpZXMgKm5nSWY9XCJhY3RpdmVTZWxlY3Rvcj09PSdyZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMnXCJcclxuICAgICAgICAgICAgICAgIFtjYXRlZ29yeUxpc3RdPVwicmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzVHJlZVwiIFthbGxDYXRlZ29yaWVzXT1cImFsbENvbXBsaWFuY2VDYXRlZ29yaWVzXCJcclxuICAgICAgICAgICAgICAgIFtjYXRlZ29yeUlkS2V5XT1cIidjYXRlZ29yeV9pZCdcIiBbc2VsZWN0ZWRDYXRlZ29yaWVzXT1cImRhc2hib2FyZEZvcm0uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXNcIlxyXG4gICAgICAgICAgICAgICAgKHNhdmVTZWxlY3RlZENhdGVnb3J5KT1cInNhdmVTZWxlY3RlZExpc3QoJ3Jlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcycsJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoY2xvc2VDYXRlZ29yaWVzTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIj48L2FwcC1jYXRlZ29yaWVzPlxyXG4gICAgICAgICAgICA8YXBwLXJpc2stY2F0ZWdvcmllcyAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J3Jpc2tDYXRlZ29yaWVzJ1wiIFtjYXRlZ29yeUxpc3RdPVwicmlza0NhdGVnb3J5TGlzdFwiXHJcbiAgICAgICAgICAgICAgICBbYWxsQ2F0ZWdvcmllc109XCJhbGxSaXNrQ2F0ZWdvcmllc1wiIFtjYXRlZ29yeUlkS2V5XT1cIidjYXRlZ29yeV9pZCdcIlxyXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkQ2F0ZWdvcmllc109XCJkYXNoYm9hcmRGb3JtLnNlbGVjdGVkUmlza0NhdGVnb3JpZXNcIlxyXG4gICAgICAgICAgICAgICAgKHNhdmVTZWxlY3RlZENhdGVnb3J5KT1cInNhdmVTZWxlY3RlZExpc3QoJ3Jpc2tDYXRlZ29yeScsJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoY2xvc2VDYXRlZ29yaWVzTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIj48L2FwcC1yaXNrLWNhdGVnb3JpZXM+XHJcblxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeSAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J2ZyZXF1ZW5jeSdcIiAoY2xvc2VGcmVxdWVuY3lQb3B1cCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgKHNhdmVGcmVxdWVuY3kpPVwic2F2ZUZyZXF1ZW5jeSgkZXZlbnQpXCIgW3NhdmVkRnJlcXVlbmN5VGFiXT1cImRhc2hib2FyZEZvcm0uc2VsZWN0ZWRGcmVxdWVuY3lUeXBlXCJcclxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwiZGFzaGJvYXJkRm9ybS5mcmVxdWVuY3lEYXRlXCIgW3NhdmVkRnJlcXVlbmNpZXNdPVwiZGFzaGJvYXJkRm9ybS5zZWxlY3RlZEZyZXF1ZW5jaWVzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZGlhbG9nLWNvbnRhaW5lciBzaWRlLWRpYWxvZ1wiPlxyXG5cclxuICAgICAgICAgICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwidkxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZGlhbG9nLWJvZHktY29udGFpbmVyXCIgKHNjcm9sbCk9XCJhbmltYXRlSW1hZ2UoKVwiIFtjbGFzcy5oaWRkZW4tc2Nyb2xsXT1cInBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICduYW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3doYXQuc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkYXNoYm9hcmRGb3JtLmRhc2hib2FyZE5hbWUgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICduYW1lJ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiICpuZ0lmPVwiZGFzaGJvYXJkRm9ybS5kYXNoYm9hcmROYW1lICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5EYXNoYm9hcmQgTmFtZTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiQWRkIGRhc2hib2FyZCBuYW1lIChNYXggbGltaXQ6IDMwIGNoYXJhY3RlcnMpLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhc2hib2FyZEZvcm0uZGFzaGJvYXJkTmFtZVwiIChrZXlkb3duKT1cImFjdGl2ZVNlbGVjdG9yID0gJ25hbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cImFjdGl2YXRlU2VsZWN0b3IoJ25hbWUnLHRydWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJyxmYWxzZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5kYXNoYm9hcmROYW1lPy5sZW5ndGggPiAwXCI+e3szMCAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRGb3JtLmRhc2hib2FyZE5hbWUubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIiBbYXBwU2Nyb2xsSW5WaWV3XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN1Ym1pdHRlZCAmJiggZGFzaGJvYXJkRm9ybT8uZGFzaGJvYXJkTmFtZT8ubGVuZ3RoPjMwIHx8ICFkYXNoYm9hcmRGb3JtPy5kYXNoYm9hcmROYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhkYXNoYm9hcmRGb3JtLmRhc2hib2FyZE5hbWUubGVuZ3RoPjMwKT8nWW91IGhhdmUgZXhjZWVkZWQgdGhlIG1heGltdW0gY2hhcmFjdGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IG9mIDMwIGNoYXJhY3RlcnMuJzonUGxlYXNlIGVudGVyIGEgbmFtZSBmb3IgdGhpcyBEYXNoYm9hcmQuJ319IDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hcngtZWRpdG9yIFtlZGl0b3JDb25maWddPVwiZGFzaGJvYXJkRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRGb3JtLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dFwiPjwvbWFyeC1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhc2hib2FyZEZvcm0/LmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dD8ubGVuZ3RoID4gMFwiPnt7MjUwIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZEZvcm0/LmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dC5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiIFthcHBTY3JvbGxJblZpZXddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3VibWl0dGVkICYmIGRhc2hib2FyZEZvcm0/LmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dD8ubGVuZ3RoPjI1MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3UgaGF2ZSBleGNlZWRlZCB0aGUgbWF4aW11bSBjaGFyYWN0ZXIgbGltaXQgb2YgMjUwIGNoYXJhY3RlcnMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlU2VsZWN0b3IgPT09ICd3aG9DYW5WaWV3J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICd3aG9DYW5WaWV3JyAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hvLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnM/Lmxlbmd0aD09MCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ3dob0NhblZpZXcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRWaWV3ZXJzPy5sZW5ndGg+MCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3dob0NhblZpZXcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+V2hvIGNhbiB2aWV3IHRoaXMgZGFzaGJvYXJkPzxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkVmlld2Vycz8ubGVuZ3RoPT0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiV2hvIGNhbiB2aWV3IHRoaXMgZGFzaGJvYXJkP1wiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcignd2hvQ2FuVmlldycsIHRydWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnM/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXNlciBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnM/LnNsaWNlKDAsMilcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbGlzdERldGFpbHMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKHVzZXIubWVtYmVyX2lkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cInJlbW92ZSgnd2hvQ2FuVmlldycsdXNlcilcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7dXNlci5tZW1iZXJfbmFtZX19PC9zcGFuPjwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRWaWV3ZXJzPy5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwidXNlckxpc3QucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnM/LnNsaWNlKDIpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgIT09ICd3aG9DYW5WaWV3J1wiIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ3dob0NhblZpZXcnLHRydWUpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3VzZXJMaXN0IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdXNlciBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnMgfCBzbGljZTogMjsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbGlzdERldGFpbHMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKHVzZXIubWVtYmVyX2lkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ3dob0NhblZpZXcnLHVzZXIpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdXNlcj8ubWVtYmVyX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ3JjTGlzdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAncmNMaXN0JyAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGg9PTAgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICdyY0xpc3QnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGg+MCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3JjTGlzdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJFU1BPTlNJQklMSVRZIENFTlRFUihTKTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD09MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSB0aGF0IHlvdSB3b3VsZCBsaWtlIGRpc3BsYXllZCBpbiB0aGUgRGFzaGJvYXJkLCBpZiBhbnkuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdyY0xpc3QnLCB0cnVlKVwiIFtjbGFzcy5lcnJvcl09XCJzdWJtaXR0ZWQgJiYgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD09MCAmJiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXM/Lmxlbmd0aD09MCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSaXNrQ2F0ZWdvcmllcz8ubGVuZ3RoPT0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmMgb2YgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/LnNsaWNlKDAsMilcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJyZW1vdmUoJ3JjJyxyYylcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7cmMuaXRlbV9uYW1lfX08L3NwYW4+PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwicmNMaXN0LnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/LnNsaWNlKDIpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgIT09ICdyY0xpc3QnXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcigncmNMaXN0Jyx0cnVlKVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBjOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNyY0xpc3QgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByYyBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVycyB8IHNsaWNlOiAyOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdyYycscmMpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmM/Lml0ZW1fbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAncmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdyZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMnICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXM/Lmxlbmd0aD09MCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ3Jlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9jYXRlZ29yeS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8ubGVuZ3RoPjAgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdyZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SRVNQT05TSUJJTElUWSBDQVRFR09SSUVTPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8ubGVuZ3RoPT0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1wbGFjZWhvbGRlcj1cIlNlbGVjdCB0aGUgUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnkgb3IgQ2F0ZWdvcmllcyB0aGF0IHRoaXMgcmVzcG9uc2liaWxpdHkgcmVsYXRlcyB0by5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ3Jlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcycsIHRydWUpXCIgW2NsYXNzLmVycm9yXT1cInN1Ym1pdHRlZCAmJiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVycz8ubGVuZ3RoPT0wICYmIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8ubGVuZ3RoPT0wICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg9PTBcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzPy5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJDYXRlZ29yeSBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8uc2xpY2UoMCwyKVwiPjxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ3Jlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcycsckNhdGVnb3J5KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3tyQ2F0ZWdvcnkuaXRlbV9uYW1lfX08L3NwYW4+PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzPy5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwickNhdGVnb3J5TGlzdC5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCI+K1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXM/LnNsaWNlKDIpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgIT09ICdyZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMnXCIgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcigncmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzJyx0cnVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3JDYXRlZ29yeUxpc3QgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByQ2F0ZWdvcnkgb2YgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMgfCBzbGljZTogMjsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgncmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzJyxyQ2F0ZWdvcnkpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgckNhdGVnb3J5Py5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ3Jpc2tDYXRlZ29yaWVzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1Jpc2tDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdyaXNrQ2F0ZWdvcmllcycgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICduYW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg9PTAgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICdyaXNrQ2F0ZWdvcmllcydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9jYXRlZ29yeS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg+MCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3Jpc2tDYXRlZ29yaWVzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UklTSyBDQVRFR09SSUVTPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg9PTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSaXNrIENhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcigncmlza0NhdGVnb3JpZXMnLCB0cnVlKVwiIFtjbGFzcy5lcnJvcl09XCJzdWJtaXR0ZWQgJiYgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD09MCAmJiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXM/Lmxlbmd0aD09MCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSaXNrQ2F0ZWdvcmllcz8ubGVuZ3RoPT0wXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJpc2tDYXRlZ29yeSBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5zbGljZSgwLDIpXCI+PGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgncmlza0NhdGVnb3J5JyxyaXNrQ2F0ZWdvcnkpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57e3Jpc2tDYXRlZ29yeS5jYXRlZ29yeV9uYW1lfX08L3NwYW4+PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwicmlza0xpc3QucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5zbGljZSgyKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yICE9PSAncmlza0NhdGVnb3JpZXMnXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcigncmlza0NhdGVnb3JpZXMnLHRydWUpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3Jpc2tMaXN0IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmlza0NhdGVnb3J5IG9mIGRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmlza0NhdGVnb3JpZXMgfCBzbGljZTogMjsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgncmlza0NhdGVnb3J5JyxyaXNrQ2F0ZWdvcnkpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmlza0NhdGVnb3J5Py5jYXRlZ29yeV9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uZGlzcGxheUNyaXRlcmlhPy5sZW5ndGg9PTBcIiBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hvLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImRhc2hib2FyZEZvcm0/LmRpc3BsYXlDcml0ZXJpYT8ubGVuZ3RoPjAgXCIgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5ESVNQTEFZIENSSVRFUklBPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIiAqbmdJZj1cInNob3dDcml0ZXJpYVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbY2hlY2tlZF09XCJkYXNoYm9hcmRGb3JtLmRpc3BsYXlDcml0ZXJpYT09J29yJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwiZGFzaGJvYXJkRm9ybS5kaXNwbGF5Q3JpdGVyaWE9J29yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaG9zZSBJdGVtcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBlaXRoZXIgdGhlIHNlbGVjdGVkIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBvciB0aGUgc2VsZWN0ZWQgQ2F0ZWdvcmllcy48L2FwcC1jcy1yYWRpbz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW2NoZWNrZWRdPVwiZGFzaGJvYXJkRm9ybS5kaXNwbGF5Q3JpdGVyaWE9PSdhbmQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJkYXNoYm9hcmRGb3JtLmRpc3BsYXlDcml0ZXJpYT0nYW5kJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaG9zZSBJdGVtcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBib3RoIHRoZSBzZWxlY3RlZCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgYW5kIHRoZSBzZWxlY3RlZCBDYXRlZ29yaWVzLjwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICAqbmdJZj1cIiFkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZEZyb21EYXRlIHx8ICFkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFRvRGF0ZVwiIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy93aGVuLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZEZyb21EYXRlICYmIGRhc2hib2FyZEZvcm0/LnNlbGVjdGVkVG9EYXRlXCIgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+VElNRUZSQU1FPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsLXN1Yi1sYWJlbFwiPlNlbGVjdCBob3cgbG9uZyB5b3Ugd291bGQgbGlrZSB0aGUgaW5mb3JtYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgdG8gYmUgZGlzcGxheWVkIGZvci4gSWYgbm8gdGltZWZyYW1lIGlzIHNlbGVjdGVkLCB0aGUgaW5mb3JtYXRpb24gd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQgcGVybWFuZW50bHkuPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRhc2hib2FyZEZvcm0uc2VsZWN0ZWRGcm9tRGF0ZSB8IGRhdGU6ICdkZCBNTU0geXl5eSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInRnJvbSdcIiAoY2xpY2spPVwib3BlbkZyb21EYXRlUGlja2VyKClcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjZnJvbURhdGVQaWNrZXIgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRGb3JtLnNlbGVjdGVkRnJvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjbG9zZUZyb21EYXRlUGlja2VyKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiZnJvbURhdGVQaWNrZXJDb25maWdcIj48L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAoY2xpY2spPVwiY2xvc2VGcm9tRGF0ZVBpY2tlcigpXCIgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZWxlY3RcIiAqbmdJZj1cIiFoaWRlVG9EYXRlXCIgW2NsYXNzLmRpc2FibGVkXT1cIiFkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZEZyb21EYXRlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MmQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3ZhbHVlXT1cImRhc2hib2FyZEZvcm0uc2VsZWN0ZWRUb0RhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RvJ1wiIChjbGljayk9XCJvcGVuVG9EYXRlUGlja2VyKClcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjdG9EYXRlUGlja2VyIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkRm9ybS5zZWxlY3RlZFRvRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImNsb3NlVG9EYXRlUGlja2VyKCk7IGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwidG9EYXRlUGlja2VyQ29uZmlnXCI+PC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlVG9EYXRlUGlja2VyKClcIiAqbmdJZj1cImRhdGVQaWNrZXJPdmVybGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIiAgW2FwcFNjcm9sbEluVmlld109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgKGRhc2hib2FyZEZvcm0uc2VsZWN0ZWRGcm9tRGF0ZSAmJiAoIWRhc2hib2FyZEZvcm0uc2VsZWN0ZWRUb0RhdGUpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgYSB0aW1lLWZyYW1lLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAnZnJlcXVlbmN5J1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdmcmVxdWVuY3knICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiIWRhc2hib2FyZEZvcm0uZnJlcXVlbmN5TWVzc2FnZVwiIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9zZW5kLXJlc29sdXRpb24uc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiZGFzaGJvYXJkRm9ybS5mcmVxdWVuY3lNZXNzYWdlXCIgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtYWlsIFN1bW1hcmllcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWwtc3ViLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSB3b3VsZCBsaWtlIHRvIHNlbmQgYSBzdW1tYXJ5IG9mIHRoaXMgRGFzaGJvYXJkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGVhc2Ugc2VsZWN0IGEgZnJlcXVlbmN5KEJ5IGRlZmF1bHQgVkNvbXBseSBzZW5kcyBhIHdlZWtseSBTdW1tYXJ5KS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cIiFkYXNoYm9hcmRGb3JtLmZyZXF1ZW5jeU1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJFbWFpbCBTdW1tYXJpZXNcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ2ZyZXF1ZW5jeScsIHRydWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtLmZyZXF1ZW5jeU1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQgZnJlcXVlbmN5LWxlZnRcIiBbaW5uZXJIVE1MXT1cImRhc2hib2FyZEZvcm0uZnJlcXVlbmN5TWVzc2FnZVwiICBbYXJUb29sdGlwXT1cImRhc2hib2FyZEZvcm0uZnJlcXVlbmN5TWVzc2FnZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldID1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZGFzaGJvYXJkRm9ybS5mcmVxdWVuY3lNZXNzYWdlXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcignZnJlcXVlbmN5Jyx0cnVlKVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBjOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidngtYnRuIGJsb2NrIHByaW1hcnlcIiBbZGlzYWJsZWRdPVwiYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICduYW1lJ1wiIChjbGljayk9XCJjb25maWd1cmVEYXNoYm9hcmQoKVwiPk5leHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBXaWRnZXRzPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWRpYWxvZ1wiIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICduYW1lJ1wiIChjbGljayk9XCJjbG9zZS5lbWl0KHttb2RlOidkaXNjYXJkJ30pXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZWFiZTs8L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2xvYmFsLWNvbmZpcm1hdGlvbi1hbGVydFwiICpuZ0lmPVwic3VibWl0dGVkICYmIGRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGg9PTAgJiYgXHJcbiAgICAgICAgICAgICAgICBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8ubGVuZ3RoPT0wICYmXHJcbiAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSaXNrQ2F0ZWdvcmllcz8ubGVuZ3RoPT0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2xvYmFsLWNvbmZpcm1hdGlvbi1hbGVydC10b3BcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24tYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MzA7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHRcIiAqbmdJZj1cInNob3dSaXNrQ2F0ZWdvcnlcIj5TZWxlY3QgYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsIFJlc3BvbnNpYmlsaXR5IENhdGVnb3J5IG9yIFJpc2sgQ2F0ZWdvcnkuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dFwiICpuZ0lmPVwiIXNob3dSaXNrQ2F0ZWdvcnlcIj5TZWxlY3QgYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgb3IgUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnkuPC9wPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdsb2JhbC1jb25maXJtYXRpb24tYWxlcnQtYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtZXNzYWdlXCI+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZpbGxcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInN1Ym1pdHRlZD1mYWxzZVwiPk9LQVk8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxhcHAtc21pbGV5LWRpYWxvZyBcclxuICAgICpuZ0lmPVwiaXNTbWlsZXlcIlxyXG4gICAgW21lc3NhZ2VdPVwic21pbGV5TWVzc2FnZVwiPlxyXG48L2FwcC1zbWlsZXktZGlhbG9nPlxyXG5cclxuPGFwcC1jb25maWd1cmUtd2lkZ2V0cyAqbmdJZj1cIm9wZW5Db25maWd1cmVXaWRnZXRzXCIgW21vZGVdPVwibW9kZVwiIFtkaXNwbGF5ZWRXaWRnZXRzXT1cImRpc3BsYXllZFdpZGdldHNcIlxyXG4gW3Nob3dSaXNrXT1cInNob3dSaXNrV2lkZ2V0c1wiIFtzaG93Q29tcGxpYW5jZV09XCJzaG93Q29tcGxpYW5jZVdpZGdldHNcIiBbc2VsZWN0ZWRXaWRnZXRzRGF0YV09XCJzZWxlY3RlZFdpZGdldHNcIlxyXG4gICAgKHdpZGdldHNEYXRhTW9kaWZpZWQpPVwic2V0U2VsZWN0ZWRXaWRnZXRzKCRldmVudClcIiAoY2xvc2VDb25maWd1cmVXaWRnZXRzKT1cImNsb3NlQ29uZmlndXJlV2lkZ2V0cygkZXZlbnQpXCI+XHJcbjwvYXBwLWNvbmZpZ3VyZS13aWRnZXRzPiJdfQ==
|
|
340
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhc2hib2FyZC5jb21wb25lbnQubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NyZWF0ZS1kYXNoYm9hcmQuY29tcG9uZW50Lm5nZmFjdG9yeS50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9jcmVhdGUtZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUVDSVksK0tBR2dELFlBRjVDOzt3QkFBMkQ7TUFDM0Q7O3dCQUE2QztNQUZqRCw0VkFHZ0QsbURBQTVDLG1CQUEyQixjQURtQixtQkFBeUIsYUFBQyxtQkFBdUIsWUFGbkcsWUFHZ0QsRUFBNUMsU0FBMkIsRUFEbUIsU0FBeUIsRUFBQyxTQUF1QjttRUFFbkcsd0xBSTRCLFlBRHhCOzt3QkFBa0Q7TUFBQzs7d0JBQTJDO01BSGxHLGdiQUk0QixtREFIeEIsbUJBQXVELDRCQUN2RCxtQkFBNkUsOENBQUMseUJBQXFCLEVBRDNDLHFCQUF3QixFQURwRixZQUk0QixFQUh4QixTQUF1RCxFQUN2RCxTQUE2RSxFQUFDLFNBQXFCLEVBRDNDLFNBQXdCO21FQUlwRix5TEFJeUUsWUFEckU7O3dCQUE0RTtNQUM1RTs7d0JBQW1EO01BSnZELG9ZQUl5RSxtREFIckUsbUJBQTZDLCtCQUFDLG1CQUF5QywwQkFDdkYsNkJBQStCLEVBQUMsbUJBQXFFLGlEQUZ6RyxZQUl5RSxFQUhyRSxTQUE2QyxFQUFDLFNBQXlDLEVBQ3ZGLFNBQStCLEVBQUMsU0FBcUU7bUVBR3pHLDhMQUk4RSxZQUQxRTs7d0JBQWdFO01BQ2hFOzt3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d0Msd0JBRGxCLG1CQUFhLE9BQWpFLFlBR3dCLEVBRitDLFNBQXVDLEVBRDVDLFNBQXFDLEVBQ3RHLFNBQTRCLEVBQUMsU0FBd0MsRUFEbEIsU0FBYTs4TUF4Y2pFLGtPQUErQixJQUMvQix5TEFnY00sSUFFTiwwTEFHb0IsSUFFcEIsMkxBR3dCLGlEQTNjeEIsWUFBK0IsR0FDRCxvQkFBNkIsdUJBQTNELFlBZ2NNLEVBaGN3QixTQUE2QixHQW1jdkQsbUJBQWdCLFdBRHBCLFlBR29CLEVBRmhCLFNBQWdCLEdBSUcsbUJBQTRCLHVCQUFuRCxhQUd3QixFQUhELFNBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIiwiPGFwcC1zbmFjay1iYXI+PC9hcHAtc25hY2stYmFyPlxyXG48ZGl2IGNsYXNzPVwiY3JlYXRlLWRhc2hib2FyZFwiICpuZ0lmPVwiIW9wZW5Db25maWd1cmVXaWRnZXRzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWRhc2hib2FyZC1jb250YWluZXIgdngtZC1mbGV4IHZ4LWp1c3RpZnktZW5kXCIgW2NsYXNzLmFuaW1hdGUtc2xpZGVJblJpZ2h0XT1cImFuaW1hdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb3JlLW9wdGlvblwiICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IhPT0nbmFtZSdcIj5cclxuICAgICAgICAgICAgPGFwcC11c2VyLWxpc3QgKm5nSWY9XCJhY3RpdmVTZWxlY3Rvcj09PSd3aG9DYW5WaWV3J1wiXHJcbiAgICAgICAgICAgICAgICAoc2F2ZVNlbGVjdGVkVXNlcnMpPVwic2F2ZVNlbGVjdGVkTGlzdCgnd2hvQ2FuVmlldycsJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoY2xvc2VVc2VyTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIiBbdG90YWxQYWdlc109XCJ0b3RhbFBhZ2VzXCIgW3RvdGFsTGlzdF09XCJ0b3RhbExpc3RcIlxyXG4gICAgICAgICAgICAgICAgW2xpc3REZXRhaWxzXT1cImxpc3REZXRhaWxzXCI+PC9hcHAtdXNlci1saXN0PlxyXG4gICAgICAgICAgICA8YXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlciAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J3JjTGlzdCdcIlxyXG4gICAgICAgICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RdPVwicmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdFwiIFtyYWRpb1NlbGVjdGlvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnNdPVwiZGFzaGJvYXJkRm9ybS5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVyc1wiIFtyY0lkS2V5XT1cIidpdGVtX2lkJ1wiXHJcbiAgICAgICAgICAgICAgICAoc2F2ZVNlbGVjdGVkTGlzdCk9XCJzYXZlU2VsZWN0ZWRMaXN0KCdyYycsJGV2ZW50KVwiIChjbG9zZVJjTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIj5cclxuICAgICAgICAgICAgPC9hcHAtcmVzcG9uc2liaWxpdHktY2VudGVyPlxyXG4gICAgICAgICAgICA8YXBwLWNhdGVnb3JpZXMgKm5nSWY9XCJhY3RpdmVTZWxlY3Rvcj09PSdyZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMnXCJcclxuICAgICAgICAgICAgICAgIFtjYXRlZ29yeUxpc3RdPVwicmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzVHJlZVwiIFthbGxDYXRlZ29yaWVzXT1cImFsbENvbXBsaWFuY2VDYXRlZ29yaWVzXCJcclxuICAgICAgICAgICAgICAgIFtjYXRlZ29yeUlkS2V5XT1cIidjYXRlZ29yeV9pZCdcIiBbc2VsZWN0ZWRDYXRlZ29yaWVzXT1cImRhc2hib2FyZEZvcm0uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXNcIlxyXG4gICAgICAgICAgICAgICAgKHNhdmVTZWxlY3RlZENhdGVnb3J5KT1cInNhdmVTZWxlY3RlZExpc3QoJ3Jlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcycsJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoY2xvc2VDYXRlZ29yaWVzTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIj48L2FwcC1jYXRlZ29yaWVzPlxyXG4gICAgICAgICAgICA8YXBwLXJpc2stY2F0ZWdvcmllcyAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J3Jpc2tDYXRlZ29yaWVzJ1wiIFtjYXRlZ29yeUxpc3RdPVwicmlza0NhdGVnb3J5TGlzdFwiXHJcbiAgICAgICAgICAgICAgICBbYWxsQ2F0ZWdvcmllc109XCJhbGxSaXNrQ2F0ZWdvcmllc1wiIFtjYXRlZ29yeUlkS2V5XT1cIidjYXRlZ29yeV9pZCdcIlxyXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkQ2F0ZWdvcmllc109XCJkYXNoYm9hcmRGb3JtLnNlbGVjdGVkUmlza0NhdGVnb3JpZXNcIlxyXG4gICAgICAgICAgICAgICAgKHNhdmVTZWxlY3RlZENhdGVnb3J5KT1cInNhdmVTZWxlY3RlZExpc3QoJ3Jpc2tDYXRlZ29yeScsJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoY2xvc2VDYXRlZ29yaWVzTGlzdCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIj48L2FwcC1yaXNrLWNhdGVnb3JpZXM+XHJcblxyXG4gICAgICAgICAgICA8YXBwLWZyZXF1ZW5jeSAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J2ZyZXF1ZW5jeSdcIiAoY2xvc2VGcmVxdWVuY3lQb3B1cCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCcnLCBmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgKHNhdmVGcmVxdWVuY3kpPVwic2F2ZUZyZXF1ZW5jeSgkZXZlbnQpXCIgW3NhdmVkRnJlcXVlbmN5VGFiXT1cImRhc2hib2FyZEZvcm0uc2VsZWN0ZWRGcmVxdWVuY3lUeXBlXCJcclxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwiZGFzaGJvYXJkRm9ybS5mcmVxdWVuY3lEYXRlXCIgW3NhdmVkRnJlcXVlbmNpZXNdPVwiZGFzaGJvYXJkRm9ybS5zZWxlY3RlZEZyZXF1ZW5jaWVzXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyZXF1ZW5jeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZGlhbG9nLWNvbnRhaW5lciBzaWRlLWRpYWxvZ1wiPlxyXG5cclxuICAgICAgICAgICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwidkxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZGlhbG9nLWJvZHktY29udGFpbmVyXCIgKHNjcm9sbCk9XCJhbmltYXRlSW1hZ2UoKVwiIFtjbGFzcy5oaWRkZW4tc2Nyb2xsXT1cInBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICduYW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3doYXQuc3ZnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkYXNoYm9hcmRGb3JtLmRhc2hib2FyZE5hbWUgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICduYW1lJ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiICpuZ0lmPVwiZGFzaGJvYXJkRm9ybS5kYXNoYm9hcmROYW1lICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5EYXNoYm9hcmQgTmFtZTxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiQWRkIGRhc2hib2FyZCBuYW1lIChNYXggbGltaXQ6IDMwIGNoYXJhY3RlcnMpLlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhc2hib2FyZEZvcm0uZGFzaGJvYXJkTmFtZVwiIChrZXlkb3duKT1cImFjdGl2ZVNlbGVjdG9yID0gJ25hbWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cImFjdGl2YXRlU2VsZWN0b3IoJ25hbWUnLHRydWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJyxmYWxzZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5kYXNoYm9hcmROYW1lPy5sZW5ndGggPiAwXCI+e3szMCAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRGb3JtLmRhc2hib2FyZE5hbWUubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ2eC10eHQtZXJyb3JcIiBbYXBwU2Nyb2xsSW5WaWV3XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN1Ym1pdHRlZCAmJiggZGFzaGJvYXJkRm9ybT8uZGFzaGJvYXJkTmFtZT8ubGVuZ3RoPjMwIHx8ICFkYXNoYm9hcmRGb3JtPy5kYXNoYm9hcmROYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhkYXNoYm9hcmRGb3JtLmRhc2hib2FyZE5hbWUubGVuZ3RoPjMwKT8nWW91IGhhdmUgZXhjZWVkZWQgdGhlIG1heGltdW0gY2hhcmFjdGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0IG9mIDMwIGNoYXJhY3RlcnMuJzonUGxlYXNlIGVudGVyIGEgbmFtZSBmb3IgdGhpcyBEYXNoYm9hcmQuJ319IDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hcngtZWRpdG9yIFtlZGl0b3JDb25maWddPVwiZGFzaGJvYXJkRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRGb3JtLmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dFwiPjwvbWFyeC1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhc2hib2FyZEZvcm0/LmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dD8ubGVuZ3RoID4gMFwiPnt7MjUwIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhc2hib2FyZEZvcm0/LmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dC5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiIFthcHBTY3JvbGxJblZpZXddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3VibWl0dGVkICYmIGRhc2hib2FyZEZvcm0/LmRhc2hib2FyZERlc2NyaXB0aW9uVGV4dD8ubGVuZ3RoPjI1MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3UgaGF2ZSBleGNlZWRlZCB0aGUgbWF4aW11bSBjaGFyYWN0ZXIgbGltaXQgb2YgMjUwIGNoYXJhY3RlcnMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlU2VsZWN0b3IgPT09ICd3aG9DYW5WaWV3J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICd3aG9DYW5WaWV3JyAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hvLnN2Z1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnM/Lmxlbmd0aD09MCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ3dob0NhblZpZXcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRWaWV3ZXJzPy5sZW5ndGg+MCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3dob0NhblZpZXcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+V2hvIGNhbiB2aWV3IHRoaXMgZGFzaGJvYXJkPzxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkVmlld2Vycz8ubGVuZ3RoPT0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiV2hvIGNhbiB2aWV3IHRoaXMgZGFzaGJvYXJkP1wiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcignd2hvQ2FuVmlldycsIHRydWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnM/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXNlciBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnM/LnNsaWNlKDAsMilcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbGlzdERldGFpbHMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKHVzZXIubWVtYmVyX2lkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cInJlbW92ZSgnd2hvQ2FuVmlldycsdXNlcilcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7dXNlci5tZW1iZXJfbmFtZX19PC9zcGFuPjwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRWaWV3ZXJzPy5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwidXNlckxpc3QucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnM/LnNsaWNlKDIpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgIT09ICd3aG9DYW5WaWV3J1wiIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ3dob0NhblZpZXcnLHRydWUpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3VzZXJMaXN0IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdXNlciBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFZpZXdlcnMgfCBzbGljZTogMjsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbGlzdERldGFpbHMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKHVzZXIubWVtYmVyX2lkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ3dob0NhblZpZXcnLHVzZXIpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdXNlcj8ubWVtYmVyX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ3JjTGlzdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAncmNMaXN0JyAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGg9PTAgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICdyY0xpc3QnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGg+MCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3JjTGlzdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJFU1BPTlNJQklMSVRZIENFTlRFUihTKTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD09MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSB0aGF0IHlvdSB3b3VsZCBsaWtlIGRpc3BsYXllZCBpbiB0aGUgRGFzaGJvYXJkLCBpZiBhbnkuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdyY0xpc3QnLCB0cnVlKVwiIFtjbGFzcy5lcnJvcl09XCJzdWJtaXR0ZWQgJiYgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD09MCAmJiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXM/Lmxlbmd0aD09MCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSaXNrQ2F0ZWdvcmllcz8ubGVuZ3RoPT0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmMgb2YgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/LnNsaWNlKDAsMilcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJyZW1vdmUoJ3JjJyxyYylcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7cmMuaXRlbV9uYW1lfX08L3NwYW4+PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzPy5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwicmNMaXN0LnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/LnNsaWNlKDIpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgIT09ICdyY0xpc3QnXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcigncmNMaXN0Jyx0cnVlKVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBjOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQ8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNyY0xpc3QgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByYyBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVycyB8IHNsaWNlOiAyOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdyYycscmMpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmM/Lml0ZW1fbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAncmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdyZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMnICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXM/Lmxlbmd0aD09MCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ3Jlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9jYXRlZ29yeS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8ubGVuZ3RoPjAgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdyZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SRVNQT05TSUJJTElUWSBDQVRFR09SSUVTPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8ubGVuZ3RoPT0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1wbGFjZWhvbGRlcj1cIlNlbGVjdCB0aGUgUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnkgb3IgQ2F0ZWdvcmllcyB0aGF0IHRoaXMgcmVzcG9uc2liaWxpdHkgcmVsYXRlcyB0by5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ3Jlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcycsIHRydWUpXCIgW2NsYXNzLmVycm9yXT1cInN1Ym1pdHRlZCAmJiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2VudGVycz8ubGVuZ3RoPT0wICYmIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8ubGVuZ3RoPT0wICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg9PTBcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzPy5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJDYXRlZ29yeSBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcz8uc2xpY2UoMCwyKVwiPjxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ3Jlc3BvbnNpYmlsaXR5Q2F0ZWdvcmllcycsckNhdGVnb3J5KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3tyQ2F0ZWdvcnkuaXRlbV9uYW1lfX08L3NwYW4+PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzPy5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwickNhdGVnb3J5TGlzdC5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCI+K1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXM/LnNsaWNlKDIpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgIT09ICdyZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMnXCIgY2xhc3M9XCJlZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcigncmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzJyx0cnVlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3JDYXRlZ29yeUxpc3QgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByQ2F0ZWdvcnkgb2YgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXMgfCBzbGljZTogMjsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgncmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzJyxyQ2F0ZWdvcnkpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgckNhdGVnb3J5Py5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ3Jpc2tDYXRlZ29yaWVzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1Jpc2tDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdyaXNrQ2F0ZWdvcmllcycgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICduYW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg9PTAgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICdyaXNrQ2F0ZWdvcmllcydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9jYXRlZ29yeS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg+MCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ3Jpc2tDYXRlZ29yaWVzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UklTSyBDQVRFR09SSUVTPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg9PTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXBsYWNlaG9sZGVyPVwiU2VsZWN0IHRoZSBSaXNrIENhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSBkaXNwbGF5ZWQgaW4gdGhlIERhc2hib2FyZCwgaWYgYW55LlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcigncmlza0NhdGVnb3JpZXMnLCB0cnVlKVwiIFtjbGFzcy5lcnJvcl09XCJzdWJtaXR0ZWQgJiYgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD09MCAmJiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNhdGVnb3JpZXM/Lmxlbmd0aD09MCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSaXNrQ2F0ZWdvcmllcz8ubGVuZ3RoPT0wXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJpc2tDYXRlZ29yeSBvZiBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5zbGljZSgwLDIpXCI+PGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgncmlza0NhdGVnb3J5JyxyaXNrQ2F0ZWdvcnkpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57e3Jpc2tDYXRlZ29yeS5jYXRlZ29yeV9uYW1lfX08L3NwYW4+PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGggPiAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwicmlza0xpc3QucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4rXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5zbGljZSgyKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yICE9PSAncmlza0NhdGVnb3JpZXMnXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3Rvcigncmlza0NhdGVnb3JpZXMnLHRydWUpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3Jpc2tMaXN0IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcmlza0NhdGVnb3J5IG9mIGRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmlza0NhdGVnb3JpZXMgfCBzbGljZTogMjsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgncmlza0NhdGVnb3J5JyxyaXNrQ2F0ZWdvcnkpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmlza0NhdGVnb3J5Py5jYXRlZ29yeV9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICBbY2xhc3MuZGlzYWJsZWRdPVwiIGFjdGl2ZVNlbGVjdG9yICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiZGFzaGJvYXJkRm9ybT8uZGlzcGxheUNyaXRlcmlhPy5sZW5ndGg9PTBcIiBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvd2hvLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImRhc2hib2FyZEZvcm0/LmRpc3BsYXlDcml0ZXJpYT8ubGVuZ3RoPjAgXCIgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5ESVNQTEFZIENSSVRFUklBPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIiAqbmdJZj1cInNob3dDcml0ZXJpYVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbY2hlY2tlZF09XCJkYXNoYm9hcmRGb3JtLmRpc3BsYXlDcml0ZXJpYT09J29yJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwiZGFzaGJvYXJkRm9ybS5kaXNwbGF5Q3JpdGVyaWE9J29yJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaG9zZSBJdGVtcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBlaXRoZXIgdGhlIHNlbGVjdGVkIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBvciB0aGUgc2VsZWN0ZWQgQ2F0ZWdvcmllcy48L2FwcC1jcy1yYWRpbz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW2NoZWNrZWRdPVwiZGFzaGJvYXJkRm9ybS5kaXNwbGF5Q3JpdGVyaWE9PSdhbmQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJkYXNoYm9hcmRGb3JtLmRpc3BsYXlDcml0ZXJpYT0nYW5kJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaG9zZSBJdGVtcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBib3RoIHRoZSBzZWxlY3RlZCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocykgYW5kIHRoZSBzZWxlY3RlZCBDYXRlZ29yaWVzLjwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIgYWN0aXZlU2VsZWN0b3IgICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICAqbmdJZj1cIiFkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZEZyb21EYXRlIHx8ICFkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFRvRGF0ZVwiIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy93aGVuLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAgKm5nSWY9XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZEZyb21EYXRlICYmIGRhc2hib2FyZEZvcm0/LnNlbGVjdGVkVG9EYXRlXCIgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+VElNRUZSQU1FPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsLXN1Yi1sYWJlbFwiPlNlbGVjdCBob3cgbG9uZyB5b3Ugd291bGQgbGlrZSB0aGUgaW5mb3JtYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgdG8gYmUgZGlzcGxheWVkIGZvci4gSWYgbm8gdGltZWZyYW1lIGlzIHNlbGVjdGVkLCB0aGUgaW5mb3JtYXRpb24gd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQgcGVybWFuZW50bHkuPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdngtZC1mbGV4IHZ4LWp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRhc2hib2FyZEZvcm0/LnNlbGVjdGVkRnJvbURhdGUgfCBkYXRlOiAnZGQgTU1NIHl5eXknXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0Zyb20nXCIgKGNsaWNrKT1cIm9wZW5Gcm9tRGF0ZVBpY2tlcigpXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHAtZGF0ZS1waWNrZXIgI2Zyb21EYXRlUGlja2VyIFsobmdNb2RlbCldPVwiZGFzaGJvYXJkRm9ybS5zZWxlY3RlZEZyb21EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiY2xvc2VGcm9tRGF0ZVBpY2tlcigpOyBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImZyb21EYXRlUGlja2VyQ29uZmlnXCI+PC9kcC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlRnJvbURhdGVQaWNrZXIoKVwiICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0XCIgKm5nSWY9XCIhaGlkZVRvRGF0ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCIhZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRGcm9tRGF0ZSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFt2YWx1ZV09XCJkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFRvRGF0ZSB8IGRhdGU6ICdkZCBNTU0geXl5eSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVG8nXCIgKGNsaWNrKT1cIm9wZW5Ub0RhdGVQaWNrZXIoKVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRwLWRhdGUtcGlja2VyICN0b0RhdGVQaWNrZXIgWyhuZ01vZGVsKV09XCJkYXNoYm9hcmRGb3JtLnNlbGVjdGVkVG9EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiY2xvc2VUb0RhdGVQaWNrZXIoKTsgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ0b0RhdGVQaWNrZXJDb25maWdcIj48L2RwLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAoY2xpY2spPVwiY2xvc2VUb0RhdGVQaWNrZXIoKVwiICpuZ0lmPVwiZGF0ZVBpY2tlck92ZXJsYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZ4LXR4dC1lcnJvclwiICBbYXBwU2Nyb2xsSW5WaWV3XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN1Ym1pdHRlZCAmJiAoZGFzaGJvYXJkRm9ybS5zZWxlY3RlZEZyb21EYXRlICYmICghZGFzaGJvYXJkRm9ybS5zZWxlY3RlZFRvRGF0ZSkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBhIHRpbWUtZnJhbWUuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiBhY3RpdmVTZWxlY3RvciAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ2ZyZXF1ZW5jeScgJiYgYWN0aXZlU2VsZWN0b3IgIT09ICduYW1lJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCIhZGFzaGJvYXJkRm9ybS5mcmVxdWVuY3lNZXNzYWdlXCIgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL3NlbmQtcmVzb2x1dGlvbi5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJkYXNoYm9hcmRGb3JtLmZyZXF1ZW5jeU1lc3NhZ2VcIiBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1haWwgU3VtbWFyaWVzIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbC1zdWItbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgeW91IHdvdWxkIGxpa2UgdG8gc2VuZCBhIHN1bW1hcnkgb2YgdGhpcyBEYXNoYm9hcmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsZWFzZSBzZWxlY3QgYSBmcmVxdWVuY3koQnkgZGVmYXVsdCBWQ29tcGx5IHNlbmRzIGEgd2Vla2x5IFN1bW1hcnkpLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIWRhc2hib2FyZEZvcm0uZnJlcXVlbmN5TWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVtYWlsIFN1bW1hcmllc1wiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcignZnJlcXVlbmN5JywgdHJ1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImRhc2hib2FyZEZvcm0uZnJlcXVlbmN5TWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCBmcmVxdWVuY3ktbGVmdFwiIFtpbm5lckhUTUxdPVwiZGFzaGJvYXJkRm9ybS5mcmVxdWVuY3lNZXNzYWdlXCIgIFthclRvb2x0aXBdPVwiZGFzaGJvYXJkRm9ybS5mcmVxdWVuY3lNZXNzYWdlXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiB0eXBlPVwiYmxhY2tcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV0gPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJkYXNoYm9hcmRGb3JtLmZyZXF1ZW5jeU1lc3NhZ2VcIiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdmcmVxdWVuY3knLHRydWUpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ2eC1idG4gYmxvY2sgcHJpbWFyeVwiIFtkaXNhYmxlZF09XCJhY3RpdmVTZWxlY3RvciAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCIgKGNsaWNrKT1cImNvbmZpZ3VyZURhc2hib2FyZCgpXCI+TmV4dDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldHM8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtZGlhbG9nXCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJhY3RpdmVTZWxlY3RvciAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCIgKGNsaWNrKT1cImNsb3NlLmVtaXQoe21vZGU6J2Rpc2NhcmQnfSlcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlYWJlOzwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnbG9iYWwtY29uZmlybWF0aW9uLWFsZXJ0XCIgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZGFzaGJvYXJkRm9ybT8uc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnM/Lmxlbmd0aD09MCAmJiBcclxuICAgICAgICAgICAgICAgIGRhc2hib2FyZEZvcm0/LnNlbGVjdGVkUmVzcG9uc2liaWxpdHlDYXRlZ29yaWVzPy5sZW5ndGg9PTAgJiZcclxuICAgICAgICAgICAgICAgICBkYXNoYm9hcmRGb3JtPy5zZWxlY3RlZFJpc2tDYXRlZ29yaWVzPy5sZW5ndGg9PTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnbG9iYWwtY29uZmlybWF0aW9uLWFsZXJ0LXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkzMDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dFwiICpuZ0lmPVwic2hvd1Jpc2tDYXRlZ29yeVwiPlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciwgUmVzcG9uc2liaWxpdHkgQ2F0ZWdvcnkgb3IgUmlzayBDYXRlZ29yeS48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCIhc2hvd1Jpc2tDYXRlZ29yeVwiPlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciBvciBSZXNwb25zaWJpbGl0eSBDYXRlZ29yeS48L3A+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2xvYmFsLWNvbmZpcm1hdGlvbi1hbGVydC1ib3R0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1lc3NhZ2VcIj48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZmlsbFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3VibWl0dGVkPWZhbHNlXCI+T0tBWTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGFwcC1zbWlsZXktZGlhbG9nIFxyXG4gICAgKm5nSWY9XCJpc1NtaWxleVwiXHJcbiAgICBbbWVzc2FnZV09XCJzbWlsZXlNZXNzYWdlXCI+XHJcbjwvYXBwLXNtaWxleS1kaWFsb2c+XHJcblxyXG48YXBwLWNvbmZpZ3VyZS13aWRnZXRzICpuZ0lmPVwib3BlbkNvbmZpZ3VyZVdpZGdldHNcIiBbbW9kZV09XCJtb2RlXCIgW2Rpc3BsYXllZFdpZGdldHNdPVwiZGlzcGxheWVkV2lkZ2V0c1wiXHJcbiBbc2hvd1Jpc2tdPVwic2hvd1Jpc2tXaWRnZXRzXCIgW3Nob3dDb21wbGlhbmNlXT1cInNob3dDb21wbGlhbmNlV2lkZ2V0c1wiIFtzZWxlY3RlZFdpZGdldHNEYXRhXT1cInNlbGVjdGVkV2lkZ2V0c1wiXHJcbiAgICAod2lkZ2V0c0RhdGFNb2RpZmllZCk9XCJzZXRTZWxlY3RlZFdpZGdldHMoJGV2ZW50KVwiIChjbG9zZUNvbmZpZ3VyZVdpZGdldHMpPVwiY2xvc2VDb25maWd1cmVXaWRnZXRzKCRldmVudClcIj5cclxuPC9hcHAtY29uZmlndXJlLXdpZGdldHM+Il19
|
|
@@ -100,12 +100,6 @@ export class UserListComponent {
|
|
|
100
100
|
if (event) {
|
|
101
101
|
this.vLoader = true;
|
|
102
102
|
this.dashboardService.getAllUsers().subscribe((res) => {
|
|
103
|
-
// this.selectedList = [...res];
|
|
104
|
-
// const selectedData = [...res];
|
|
105
|
-
// this.footerDetails.selectedData = this.selectedList;
|
|
106
|
-
// this.selectedIds = selectedData.map((ele: any) => {
|
|
107
|
-
// if (ele[this.listDetails.elementIdKey]) { return ele[this.listDetails.elementIdKey]; }
|
|
108
|
-
// });
|
|
109
103
|
if (res.length > 1) {
|
|
110
104
|
res.forEach((searchElement) => {
|
|
111
105
|
if (!this.selectedIds.includes(searchElement[this.listDetails.elementIdKey])) {
|
|
@@ -119,16 +113,6 @@ export class UserListComponent {
|
|
|
119
113
|
});
|
|
120
114
|
}
|
|
121
115
|
else {
|
|
122
|
-
// this.selectedList = [];
|
|
123
|
-
// this.selectedIds = [];
|
|
124
|
-
// this.footerDetails.selectedData = [];
|
|
125
|
-
// this.searchList.forEach(searchElement => {
|
|
126
|
-
// if (!this.listDetails.nonRemovableUsersList.includes(searchElement[this.listDetails.elementIdKey])) {
|
|
127
|
-
// this.selectedList.push(searchElement);
|
|
128
|
-
// this.selectedIds.push(searchElement[this.listDetails.elementIdKey]);
|
|
129
|
-
// this.footerDetails.selectedData = this.selectedList;
|
|
130
|
-
// }
|
|
131
|
-
// });
|
|
132
116
|
const selectedData = [...new Set(this.selectedList)];
|
|
133
117
|
const index = selectedData.findIndex(ele => ele[this.listDetails.elementIdKey] === this.listDetails.nonRemovableUsersList[0]);
|
|
134
118
|
if (index != -1) {
|
|
@@ -209,8 +193,6 @@ export class UserListComponent {
|
|
|
209
193
|
getUsersList(url) {
|
|
210
194
|
this.vLoader = true;
|
|
211
195
|
this.dashboardService.getOrganizationUsers(url ? url : '').subscribe(res => {
|
|
212
|
-
// console.log(this.selectedList,this.selectedIds)
|
|
213
|
-
// debugger
|
|
214
196
|
this.searchList = res;
|
|
215
197
|
this.vLoader = false;
|
|
216
198
|
});
|
|
@@ -228,7 +210,7 @@ UserListComponent.decorators = [
|
|
|
228
210
|
{ type: Component, args: [{
|
|
229
211
|
selector: 'app-user-list',
|
|
230
212
|
template: "<div class=\"user-list\" [class.animate-slideInRight]=\"animation\">\r\n <div class=\"user-list-head\">\r\n <h3>Who can view this dashboard?</h3>\r\n </div>\r\n <div class=\"user-list-body\">\r\n <div class=\"user-list-search\">\r\n <i class=\"icons\"></i>\r\n <input type=\"text\" [(ngModel)]=\"searchValue\" placeholder=\"Search User(s) who can view this dashboard\" (keyup.enter)=\"setSearchValue()\" (focusout)=\"setSearchValue()\">\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center vx-justify-end\" *ngIf=\"!searchValue\">\r\n <div class=\"pagination-box\" *ngIf=\"totalPages>1 && searchList.length>1\"> \r\n <app-pagination (paginationFilter)=\"paginationFilter($event)\" [limit]=\"limit\" [totalPages]=\"totalPages\" [totalList]=\"totalList\"></app-pagination>\r\n </div>\r\n </div>\r\n <div class=\"user-list-body-top\">\r\n <app-cs-checkbox *ngIf=\"!searchValue && searchList.length>1\" [ngValue]=\"selectedList.length == totalList\" (ngValueChange)=\"selectAllUsers($event)\">\r\n <strong>{{((selectedList.length == totalList) ? 'Deselect All':'Select All')}}</strong>\r\n </app-cs-checkbox>\r\n <app-cs-checkbox *ngIf=\"searchValue && searchList.length>1\" [ngValue]=\"checkSelectAll()\" (ngValueChange)=\"selectAll($event)\">\r\n <strong>{{((selectedList.length == totalList) ? 'Deselect All':'Select All')}}</strong>\r\n </app-cs-checkbox>\r\n </div>\r\n <div class=\"list-of-user\">\r\n <ul class=\"selection-list\" [class.with-pagination]=\"totalPages>1\">\r\n <li *ngFor=\"let data of searchList; let i = index\">\r\n <app-cs-checkbox [disabled]=\"listDetails.nonRemovableUsersList.includes(data[listDetails.elementIdKey])\" [ngValue]=\"selectedList.length>0 && selectedIds.includes(data[listDetails.elementIdKey])\"\r\n (ngValueChange)=\"selectElement(data)\" [arTooltip]=\"data[listDetails.tooltipKey]\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\"\r\n > {{data[listDetails.displayElementKey]}}</app-cs-checkbox>\r\n </li>\r\n <!-- appTooltip=\"{{data[listDetails.tooltipKey]}}\" placement=\"bottom\" delay=\"0\" [tooltipMandatory]=\"false\" -->\r\n </ul>\r\n\r\n <app-no-data *ngIf=\"!vLoader && searchList.length == 0\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No data to display'\">\r\n </app-no-data>\r\n <app-loader-inline *ngIf=\"vLoader\"></app-loader-inline>\r\n\r\n </div>\r\n \r\n\r\n </div>\r\n <div class=\"user-list-footer\">\r\n <app-dashboard-footer \r\n [footerDetails] =\"footerDetails\"\r\n (cancelEvent)=\"closeUserList.emit()\"\r\n (deleteEvent) =\"selectElement($event)\"\r\n (submitEvent)=\"onSubmit()\"\r\n ></app-dashboard-footer>\r\n </div>\r\n\r\n</div>\r\n\r\n",
|
|
231
|
-
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/color/color.css\");@import url(\"https://cdn.v-comply.com/design-system/css/animate/animation.css\");@import url(\"https://cdn.v-comply.com/design-system/css/animate/animate-slide-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/display/display.css\");@import url(\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\");::ng-deep .user-list{background:#fff}::ng-deep .user-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f1f1f1;border-right:none}::ng-deep .user-list-head h3{color:#161b2f;font-size:15px;font-weight:500;margin:0;padding:0;line-height:21px}::ng-deep .user-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 112px);position:relative}::ng-deep .user-list-body-top{display:flex;justify-content:space-between;padding:0 0 20px}::ng-deep .user-list-body-top app-cs-checkbox{display:flex}::ng-deep .user-list-body-top app-cs-checkbox label span.value strong{color:#161b2f;font-size:14px;font-weight:600;white-space:nowrap}::ng-deep .user-list-body ul.selection-list{padding:0;display:flex;align-items:flex-start;flex-wrap:wrap;max-height:calc(100vh -
|
|
213
|
+
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/color/color.css\");@import url(\"https://cdn.v-comply.com/design-system/css/animate/animation.css\");@import url(\"https://cdn.v-comply.com/design-system/css/animate/animate-slide-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/display/display.css\");@import url(\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\");::ng-deep .user-list{background:#fff}::ng-deep .user-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f1f1f1;border-right:none}::ng-deep .user-list-head h3{color:#161b2f;font-size:15px;font-weight:500;margin:0;padding:0;line-height:21px}::ng-deep .user-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 112px);position:relative}::ng-deep .user-list-body-top{display:flex;justify-content:space-between;padding:0 0 20px}::ng-deep .user-list-body-top app-cs-checkbox{display:flex}::ng-deep .user-list-body-top app-cs-checkbox label span.value strong{color:#161b2f;font-size:14px;font-weight:600;white-space:nowrap}::ng-deep .user-list-body ul.selection-list{padding:0;display:flex;align-items:flex-start;flex-wrap:wrap;max-height:calc(100vh - 230px);overflow:auto;margin:0}::ng-deep .user-list-body ul.selection-list::-webkit-scrollbar-track{background-color:#fff}::ng-deep .user-list-body ul.selection-list.with-pagination{max-height:calc(100vh - 270px)}::ng-deep .user-list-body ul.selection-list li{width:50%;padding:0 20px 20px 0;list-style:none}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox,::ng-deep .user-list-body ul.selection-list li app-cs-radio{display:flex}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox label,::ng-deep .user-list-body ul.selection-list li app-cs-radio label{width:100%}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox label span.value,::ng-deep .user-list-body ul.selection-list li app-cs-radio label span.value{width:auto;justify-content:flex-start;flex-wrap:wrap}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox label span.value span.name,::ng-deep .user-list-body ul.selection-list li app-cs-radio label span.value span.name{color:#161b2f;font-weight:400;line-height:20px;display:block;width:100%;font-size:13px}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox label span.value span.position,::ng-deep .user-list-body ul.selection-list li app-cs-radio label span.value span.position{border-radius:2px;display:inline-flex;height:12px;align-items:center;padding:0 2px;text-transform:uppercase;font-size:9px;line-height:12px;font-weight:500}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox label span.value span.position.admin,::ng-deep .user-list-body ul.selection-list li app-cs-radio label span.value span.position.admin{background:#fff9e6;color:#f2bf19}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox label span.value span.position.key-admin,::ng-deep .user-list-body ul.selection-list li app-cs-radio label span.value span.position.key-admin{background:#dff2e1;color:#34aa44}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox label span.value span.position.manager,::ng-deep .user-list-body ul.selection-list li app-cs-radio label span.value span.position.manager{background:#d4e2fc;color:#4681ef}::ng-deep .user-list-body ul.selection-list li app-cs-checkbox label span.value span.position.executive,::ng-deep .user-list-body ul.selection-list li app-cs-radio label span.value span.position.executive{color:#747576;background:#f1f1f1}::ng-deep .user-list-footer{height:70px}::ng-deep .user-list-search{position:relative;margin-bottom:8px}::ng-deep .user-list-search i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .user-list-search input{height:44px;line-height:24px;padding:10px 15px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}"]
|
|
232
214
|
},] }
|
|
233
215
|
];
|
|
234
216
|
UserListComponent.ctorParameters = () => [
|
|
@@ -244,4 +226,4 @@ UserListComponent.propDecorators = {
|
|
|
244
226
|
limit: [{ type: Input }],
|
|
245
227
|
totalList: [{ type: Input }]
|
|
246
228
|
};
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBUW5FLE1BQU0sT0FBTyxpQkFBaUI7SUFzQzVCLFlBQ1UsaUJBQW9DLEVBQ3BDLGdCQUF3QztRQUR4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUF2Q3hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGdCQUFXLEdBQTBCO1lBQzVDLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsVUFBVSxFQUFFLEVBQUU7WUFDZCxpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLHFCQUFxQixFQUFFLEVBQUU7U0FDMUIsQ0FBQztRQUVGLGtCQUFhLEdBQTBCO1lBQ3JDLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixTQUFTLEVBQUUsRUFBRTtZQUNiLFlBQVksRUFBRSxlQUFlO1lBQzdCLFVBQVUsRUFBRSxnQkFBZ0I7WUFDNUIsYUFBYSxFQUFFLEtBQUs7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UUFHdkIsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxRQUFRO1FBQ04sTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pDLENBQUM7OztZQXhRQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLGdwR0FBeUM7O2FBRTFDOzs7WUFQUSxpQkFBaUI7WUFEakIsc0JBQXNCOzs7NEJBVTVCLE1BQU07Z0NBQ04sTUFBTTs0QkFDTixLQUFLOzBCQUNMLEtBQUs7eUJBc0JMLEtBQUs7b0JBQ0wsS0FBSzt3QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRGb290ZXJDb25maWcgfSBmcm9tICcuLi8uLi91aS1raXQvZGFzaGJvYXJkLWZvb3Rlci9kYXNoYm9hcmQtZm9vdGVyLWNvbmZpZyc7XHJcbmltcG9ydCB7IENyZWF0ZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jcmVhdGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BhZ2luYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJMaXN0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4vdXNlci1saXN0LmNvbmZpZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11c2VyLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItbGlzdC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgpIGNsb3NlVXNlckxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNhdmVTZWxlY3RlZFVzZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGUgPSAnJztcclxuICBASW5wdXQoKSBsaXN0RGV0YWlsczogVXNlckxpc3RDb25maWd1cmF0aW9uID0ge1xyXG4gICAgZGlzcGxheUVsZW1lbnRLZXk6ICcnLFxyXG4gICAgZWxlbWVudElkS2V5OiAnJyxcclxuICAgIHRvb2x0aXBLZXk6ICcnLFxyXG4gICAgc2VsZWN0ZWRVc2Vyc0xpc3Q6IFtdLFxyXG4gICAgbm9uUmVtb3ZhYmxlVXNlcnNMaXN0OiBbXVxyXG4gIH07XHJcblxyXG4gIGZvb3RlckRldGFpbHM6IERhc2hib2FyZEZvb3RlckNvbmZpZyA9IHtcclxuICAgIHNlbGVjdGVkRGF0YTogW10sXHJcbiAgICBub25SZW1vdmFibGVMaXN0OiBbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnJyxcclxuICAgIGVsZW1lbnRJZDogJycsXHJcbiAgICBzaW5ndWxhclRleHQ6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgIHBsdXJhbFRleHQ6ICdVc2VycyBzZWxlY3RlZCcsXHJcbiAgICBzaG93RnJlcXVlbmN5OiBmYWxzZSxcclxuICAgIGZyZXF1ZW5jeVRleHQ6ICcnLFxyXG4gICAgaXNEaXNhYmxlZDogZmFsc2VcclxuXHJcbiAgfTtcclxuICB2TG9hZGVyID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHRvdGFsUGFnZXMgPSAxO1xyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTtcclxuICBASW5wdXQoKSB0b3RhbExpc3QgPSAxO1xyXG5cclxuICBzZWFyY2hMaXN0ID0gW107XHJcbiAgc2VhcmNoVmFsdWUgPSAnJztcclxuICBzZWFyY2hGaWx0ZXIgPSAnJztcclxuICBzZWxlY3RlZElkczogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZExpc3Q6IGFueVtdID0gW107XHJcblxyXG5cclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdpbmF0aW9uU2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhc2hib2FyZFNlcnZpY2U6IENyZWF0ZURhc2hib2FyZFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIGlmICh0aGlzLmxpc3REZXRhaWxzLnNlbGVjdGVkVXNlcnNMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZExpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmxpc3REZXRhaWxzLnNlbGVjdGVkVXNlcnNMaXN0KV07XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMubGlzdERldGFpbHMuc2VsZWN0ZWRVc2Vyc0xpc3QpXTtcclxuICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHNlbGVjdGVkRGF0YTtcclxuICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLm5vblJlbW92YWJsZUxpc3QgPSB0aGlzLmxpc3REZXRhaWxzLm5vblJlbW92YWJsZVVzZXJzTGlzdDtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IHNlbGVjdGVkRGF0YS5tYXAoKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pIHsgcmV0dXJuIGVsZVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV07IH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRVc2Vyc0xpc3Qoe1xyXG4gICAgICBwOiB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlID09PSAxID8gJycgOiB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlLFxyXG4gICAgICB0eXBlOiAnJyxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLmRpc3BsYXlFbGVtZW50S2V5ID0gdGhpcy5saXN0RGV0YWlscy5kaXNwbGF5RWxlbWVudEtleTtcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5lbGVtZW50SWQgPSB0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgY2FuY2VsQ2hhbmdlcygpIHtcclxuXHJcbiAgfVxyXG4gIHJlbW92ZUVsZW1lbnQoZXZlbnQ6IGFueSkge1xyXG5cclxuICB9XHJcbiAgc3VibWl0Q2hhbmdlcygpIHtcclxuXHJcbiAgfVxyXG4gIHNlbGVjdEFsbChldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWFyY2hMaXN0LmZvckVhY2goc2VhcmNoRWxlbWVudCA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhzZWFyY2hFbGVtZW50W3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSkpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMaXN0LnB1c2goc2VhcmNoRWxlbWVudCk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goc2VhcmNoRWxlbWVudFt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRMaXN0O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hMaXN0LmZvckVhY2goc2VhcmNoRWxlbWVudCA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmxpc3REZXRhaWxzLm5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhzZWFyY2hFbGVtZW50W3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSkpIHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZExpc3QuZmluZEluZGV4KGVsZSA9PiBlbGVbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldID09PVxyXG4gICAgICAgICAgICBzZWFyY2hFbGVtZW50W3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgY29uc3QgZmlsdGVyZWRMaXN0ID0gWy4uLnRoaXMuc2VsZWN0ZWRMaXN0XTtcclxuICAgICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkTGlzdDtcclxuXHJcbiAgICAgICAgICBjb25zdCBpZEluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoZWxlID0+IGVsZSA9PT0gc2VhcmNoRWxlbWVudFt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaWRJbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3RzIGFsbCBhZG1pbnMgYW5kIG1hbmFnZXJzIGF0IG9uY2UgYnkgbWFraW5nIGFwaSBjYWxsLlxyXG4gICAqIEBwYXJhbSBldmVudCBjb25zaXN0cyBib29sZWFuIHZhbHVlIHRvIHNlbGVjdCBvZiB1bnNlbGVjdC5cclxuICAgKi9cclxuICBzZWxlY3RBbGxVc2VycyhldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy52TG9hZGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldEFsbFVzZXJzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRMaXN0ID0gWy4uLnJlc107XHJcbiAgICAgICAgLy8gY29uc3Qgc2VsZWN0ZWREYXRhID0gWy4uLnJlc107XHJcbiAgICAgICAgLy8gdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRMaXN0O1xyXG5cclxuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkSWRzID0gc2VsZWN0ZWREYXRhLm1hcCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyAgIGlmIChlbGVbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldKSB7IHJldHVybiBlbGVbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldOyB9XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgaWYocmVzLmxlbmd0aD4xKXtcclxuICAgICAgICAgIHJlcy5mb3JFYWNoKChzZWFyY2hFbGVtZW50OmFueSkgPT4ge1xyXG4gIFxyXG4gICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKHNlYXJjaEVsZW1lbnRbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGlzdC5wdXNoKHNlYXJjaEVsZW1lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goc2VhcmNoRWxlbWVudFt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG4gICAgICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZExpc3Q7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudkxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgLy8gdGhpcy5zZWxlY3RlZExpc3QgPSBbXTtcclxuICAgICAgLy8gdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgICAvLyB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gW107XHJcblxyXG4gICAgICAvLyB0aGlzLnNlYXJjaExpc3QuZm9yRWFjaChzZWFyY2hFbGVtZW50ID0+IHtcclxuICAgICAgLy8gICBpZiAoIXRoaXMubGlzdERldGFpbHMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKHNlYXJjaEVsZW1lbnRbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldKSkge1xyXG4gICAgICAvLyAgICAgdGhpcy5zZWxlY3RlZExpc3QucHVzaChzZWFyY2hFbGVtZW50KTtcclxuICAgICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChzZWFyY2hFbGVtZW50W3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSk7XHJcbiAgICAgIC8vICAgICB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZExpc3Q7XHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyB9KTtcclxuXHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMuc2VsZWN0ZWRMaXN0KV07XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VsZWN0ZWREYXRhLmZpbmRJbmRleChlbGUgPT4gZWxlW3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSA9PT0gdGhpcy5saXN0RGV0YWlscy5ub25SZW1vdmFibGVVc2Vyc0xpc3RbMF0pO1xyXG4gICAgICBpZiAoaW5kZXggIT0gLTEpIHtcclxuICAgICAgICBjb25zdCBvd25lciA9IE9iamVjdC5hc3NpZ24oc2VsZWN0ZWREYXRhW2luZGV4XSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZExpc3QucHVzaChvd25lcik7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKG93bmVyLm1lbWJlcl9pZCk7XHJcbiAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRMaXN0O1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4vKipcclxuICogU2VsZWN0cyBjaGVja2VkIGl0ZW0gZnJvbSB0aGUgbGlzdC5cclxuICogSW4gY2FzZSBvZiB1c2VyJ3MgbGlzdCBjYWxjdWxhdGVzIG51bWJlciBvZiBhZG1pbnMvbWFuYWdlcyB0byBzZXQgdmlzaWJpbGl0eShlaXRoZXIgdG8gYWxsIGFkbWlucy8gYWRtaW5zIGFuZCBtYW5hZ2VycylcclxuICogQHBhcmFtIGRhdGEgaXMgdGhlIHNlbGVjdGVkIGVsZW1lbnRcclxuICovXHJcbnNlbGVjdEVsZW1lbnQoZGF0YTogYW55KSB7XHJcbiAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZGF0YVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pKSB7XHJcbiAgICBpZiAoIXRoaXMubGlzdERldGFpbHMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKGRhdGFbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldKSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRMaXN0LmZpbmRJbmRleChlbGUgPT4gZWxlW3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSA9PT0gZGF0YVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZExpc3Q7XHJcblxyXG4gICAgICBjb25zdCBpZEluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoZWxlID0+IGVsZSA9PT0gZGF0YVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaWRJbmRleCwgMSk7XHJcbiAgICB9XHJcblxyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGlzdC5wdXNoKGRhdGEpO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGRhdGFbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldKTtcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkTGlzdDtcclxuXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogSXQgaXMgdXNlZCB0byBzZXQgYW5kIHNlYXJjaCB2YWx1ZSBpbmNhc2Ugb2YgYmFja2VuZCBkcml2ZW4gbGlzdCB0byBkaWZmZXJlbnRpYXRlIHNlYXJjaCBsaXN0IGFuZCBvcmlnaW5hbCBsaXN0XHJcbiAqL1xyXG5zZXRTZWFyY2hWYWx1ZSgpIHtcclxuICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZTtcclxuICB0aGlzLnBhZ2luYXRpb25GaWx0ZXIodHJ1ZSk7XHJcblxyXG59XHJcblxyXG4vKipcclxuKiBpdCBpcyB1c2VkIGNoZWNrIHNlbGVjdCBhbGwgY29uZGl0aW9uIGluY2FzZSBvZiBiYWNrZW5kIGRyaXZlbiBzZWFyY2hcclxuKi9cclxuY2hlY2tTZWxlY3RBbGwoKSB7XHJcbiAgaWYgKHRoaXMuc2VhcmNoTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICBjb25zdCBkYXRhOiBib29sZWFuID0gdGhpcy5zZWFyY2hMaXN0LmV2ZXJ5KGVsZSA9PiB0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuLyoqXHJcbiAqIEZpbHRlciBsaXN0IHVzZXIncyBsaXN0IGJhc2VkIG9uIHBhZ2luYXRpb24gYnkgbWFraW5nIGFwaSBjYWxsXHJcbiAqIEBwYXJhbSBldmVudCBzcGVjaWZpZXMgYSBib29sZWFuIHZhbHVlIHRvIGNhbGwgYXBpXHJcbiAqL1xyXG5wYWdpbmF0aW9uRmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAvLyB0aGlzLnBhZ2luYXRpb25GaWx0ZXJFdmVudC5lbWl0KGV2ZW50KTtcclxuICBpZiAoZXZlbnQpIHtcclxuICAgIHRoaXMudkxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmdldFVzZXJzTGlzdCh7XHJcbiAgICAgIHA6IHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UgPT09IDEgPyAnJyA6IHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UsXHJcbiAgICAgIHR5cGU6ICcnLFxyXG4gICAgICBxOiAoIXRoaXMucGFnaW5hdGlvblNlcnZpY2Uuc2VhcmNoVmFsdWUpID8gJycgOiB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnNlYXJjaFZhbHVlLFxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxufVxyXG4vKipcclxuICogR2V0cyB1c2VyJ3MgbGlzdCAgYnkgbWFraW5nIGFwaSBjYWxsXHJcbiAqIEBwYXJhbSB1cmwgY29udGFpbnMgdXNlcmxpc3QgZmlsdGVyIGRldGFpbHNcclxuICovXHJcbmdldFVzZXJzTGlzdCh1cmw6IGFueSkge1xyXG4gIHRoaXMudkxvYWRlciA9IHRydWU7XHJcblxyXG4gIHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRPcmdhbml6YXRpb25Vc2Vycyh1cmwgPyB1cmwgOiAnJykuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkTGlzdCx0aGlzLnNlbGVjdGVkSWRzKVxyXG4gICAgLy8gZGVidWdnZXJcclxuICAgIHRoaXMuc2VhcmNoTGlzdCA9IHJlcztcclxuICAgIHRoaXMudkxvYWRlciA9IGZhbHNlO1xyXG5cclxuXHJcbiAgfSk7XHJcblxyXG59XHJcbi8qKlxyXG4gKiBvbiBjbGljayBvbiBuZXh0IGJ1dHRvbiBmcm9tIHRoZSBsaXN0LCBpdCBlbWl0cyB0aGUgc2VsZWN0ZWQgbGlzdCBvZiBlbGVtZW50cyB0byBwYXJlbnQgY29tcG9uZW50LlxyXG4gKi9cclxub25TdWJtaXQoKSB7XHJcbiAgY29uc3QgZGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMuc2VsZWN0ZWRMaXN0KV07XHJcbiAgdGhpcy5zYXZlU2VsZWN0ZWRVc2Vycy5lbWl0KGRhdGEpO1xyXG4gIHRoaXMucGFnaW5hdGlvblNlcnZpY2UucmVzZXQoKTtcclxufVxyXG59XHJcbiJdfQ==
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBUW5FLE1BQU0sT0FBTyxpQkFBaUI7SUFzQzVCLFlBQ1UsaUJBQW9DLEVBQ3BDLGdCQUF3QztRQUR4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUF2Q3hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGdCQUFXLEdBQTBCO1lBQzVDLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsVUFBVSxFQUFFLEVBQUU7WUFDZCxpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLHFCQUFxQixFQUFFLEVBQUU7U0FDMUIsQ0FBQztRQUVGLGtCQUFhLEdBQTBCO1lBQ3JDLFlBQVksRUFBRSxFQUFFO1lBQ2hCLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixTQUFTLEVBQUUsRUFBRTtZQUNiLFlBQVksRUFBRSxlQUFlO1lBQzdCLFVBQVUsRUFBRSxnQkFBZ0I7WUFDNUIsYUFBYSxFQUFFLEtBQUs7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LENBQUM7OztZQXZQQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLGdwR0FBeUM7O2FBRTFDOzs7WUFQUSxpQkFBaUI7WUFEakIsc0JBQXNCOzs7NEJBVTVCLE1BQU07Z0NBQ04sTUFBTTs0QkFDTixLQUFLOzBCQUNMLEtBQUs7eUJBc0JMLEtBQUs7b0JBQ0wsS0FBSzt3QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRGb290ZXJDb25maWcgfSBmcm9tICcuLi8uLi91aS1raXQvZGFzaGJvYXJkLWZvb3Rlci9kYXNoYm9hcmQtZm9vdGVyLWNvbmZpZyc7XHJcbmltcG9ydCB7IENyZWF0ZURhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jcmVhdGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BhZ2luYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJMaXN0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4vdXNlci1saXN0LmNvbmZpZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11c2VyLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItbGlzdC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgpIGNsb3NlVXNlckxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNhdmVTZWxlY3RlZFVzZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGlvblR5cGUgPSAnJztcclxuICBASW5wdXQoKSBsaXN0RGV0YWlsczogVXNlckxpc3RDb25maWd1cmF0aW9uID0ge1xyXG4gICAgZGlzcGxheUVsZW1lbnRLZXk6ICcnLFxyXG4gICAgZWxlbWVudElkS2V5OiAnJyxcclxuICAgIHRvb2x0aXBLZXk6ICcnLFxyXG4gICAgc2VsZWN0ZWRVc2Vyc0xpc3Q6IFtdLFxyXG4gICAgbm9uUmVtb3ZhYmxlVXNlcnNMaXN0OiBbXVxyXG4gIH07XHJcblxyXG4gIGZvb3RlckRldGFpbHM6IERhc2hib2FyZEZvb3RlckNvbmZpZyA9IHtcclxuICAgIHNlbGVjdGVkRGF0YTogW10sXHJcbiAgICBub25SZW1vdmFibGVMaXN0OiBbXSxcclxuICAgIGRpc3BsYXlFbGVtZW50S2V5OiAnJyxcclxuICAgIGVsZW1lbnRJZDogJycsXHJcbiAgICBzaW5ndWxhclRleHQ6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgIHBsdXJhbFRleHQ6ICdVc2VycyBzZWxlY3RlZCcsXHJcbiAgICBzaG93RnJlcXVlbmN5OiBmYWxzZSxcclxuICAgIGZyZXF1ZW5jeVRleHQ6ICcnLFxyXG4gICAgaXNEaXNhYmxlZDogZmFsc2VcclxuXHJcbiAgfTtcclxuICB2TG9hZGVyID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHRvdGFsUGFnZXMgPSAxO1xyXG4gIEBJbnB1dCgpIGxpbWl0ID0gMTtcclxuICBASW5wdXQoKSB0b3RhbExpc3QgPSAxO1xyXG5cclxuICBzZWFyY2hMaXN0ID0gW107XHJcbiAgc2VhcmNoVmFsdWUgPSAnJztcclxuICBzZWFyY2hGaWx0ZXIgPSAnJztcclxuICBzZWxlY3RlZElkczogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZExpc3Q6IGFueVtdID0gW107XHJcblxyXG5cclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdpbmF0aW9uU2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhc2hib2FyZFNlcnZpY2U6IENyZWF0ZURhc2hib2FyZFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIGlmICh0aGlzLmxpc3REZXRhaWxzLnNlbGVjdGVkVXNlcnNMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZExpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmxpc3REZXRhaWxzLnNlbGVjdGVkVXNlcnNMaXN0KV07XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMubGlzdERldGFpbHMuc2VsZWN0ZWRVc2Vyc0xpc3QpXTtcclxuICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHNlbGVjdGVkRGF0YTtcclxuICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLm5vblJlbW92YWJsZUxpc3QgPSB0aGlzLmxpc3REZXRhaWxzLm5vblJlbW92YWJsZVVzZXJzTGlzdDtcclxuICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IHNlbGVjdGVkRGF0YS5tYXAoKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pIHsgcmV0dXJuIGVsZVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV07IH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRVc2Vyc0xpc3Qoe1xyXG4gICAgICBwOiB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlID09PSAxID8gJycgOiB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLmN1cnJlbnRQYWdlLFxyXG4gICAgICB0eXBlOiAnJyxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb290ZXJEZXRhaWxzLmRpc3BsYXlFbGVtZW50S2V5ID0gdGhpcy5saXN0RGV0YWlscy5kaXNwbGF5RWxlbWVudEtleTtcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5lbGVtZW50SWQgPSB0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgY2FuY2VsQ2hhbmdlcygpIHtcclxuXHJcbiAgfVxyXG4gIHJlbW92ZUVsZW1lbnQoZXZlbnQ6IGFueSkge1xyXG5cclxuICB9XHJcbiAgc3VibWl0Q2hhbmdlcygpIHtcclxuXHJcbiAgfVxyXG4gIHNlbGVjdEFsbChldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWFyY2hMaXN0LmZvckVhY2goc2VhcmNoRWxlbWVudCA9PiB7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZElkcy5pbmNsdWRlcyhzZWFyY2hFbGVtZW50W3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSkpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMaXN0LnB1c2goc2VhcmNoRWxlbWVudCk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRzLnB1c2goc2VhcmNoRWxlbWVudFt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG4gICAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRMaXN0O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hMaXN0LmZvckVhY2goc2VhcmNoRWxlbWVudCA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmxpc3REZXRhaWxzLm5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhzZWFyY2hFbGVtZW50W3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSkpIHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZExpc3QuZmluZEluZGV4KGVsZSA9PiBlbGVbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldID09PVxyXG4gICAgICAgICAgICBzZWFyY2hFbGVtZW50W3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgY29uc3QgZmlsdGVyZWRMaXN0ID0gWy4uLnRoaXMuc2VsZWN0ZWRMaXN0XTtcclxuICAgICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkTGlzdDtcclxuXHJcbiAgICAgICAgICBjb25zdCBpZEluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoZWxlID0+IGVsZSA9PT0gc2VhcmNoRWxlbWVudFt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaWRJbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3RzIGFsbCBhZG1pbnMgYW5kIG1hbmFnZXJzIGF0IG9uY2UgYnkgbWFraW5nIGFwaSBjYWxsLlxyXG4gICAqIEBwYXJhbSBldmVudCBjb25zaXN0cyBib29sZWFuIHZhbHVlIHRvIHNlbGVjdCBvZiB1bnNlbGVjdC5cclxuICAgKi9cclxuICBzZWxlY3RBbGxVc2VycyhldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy52TG9hZGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmdldEFsbFVzZXJzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICBpZihyZXMubGVuZ3RoPjEpe1xyXG4gICAgICAgICAgcmVzLmZvckVhY2goKHNlYXJjaEVsZW1lbnQ6YW55KSA9PiB7XHJcbiAgXHJcbiAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoc2VhcmNoRWxlbWVudFt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMaXN0LnB1c2goc2VhcmNoRWxlbWVudCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChzZWFyY2hFbGVtZW50W3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkTGlzdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG5cclxuXHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMuc2VsZWN0ZWRMaXN0KV07XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gc2VsZWN0ZWREYXRhLmZpbmRJbmRleChlbGUgPT4gZWxlW3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSA9PT0gdGhpcy5saXN0RGV0YWlscy5ub25SZW1vdmFibGVVc2Vyc0xpc3RbMF0pO1xyXG4gICAgICBpZiAoaW5kZXggIT0gLTEpIHtcclxuICAgICAgICBjb25zdCBvd25lciA9IE9iamVjdC5hc3NpZ24oc2VsZWN0ZWREYXRhW2luZGV4XSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZExpc3QucHVzaChvd25lcik7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKG93bmVyLm1lbWJlcl9pZCk7XHJcbiAgICAgICAgdGhpcy5mb290ZXJEZXRhaWxzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRMaXN0O1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMgPSBbXTtcclxuICAgICAgICB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4vKipcclxuICogU2VsZWN0cyBjaGVja2VkIGl0ZW0gZnJvbSB0aGUgbGlzdC5cclxuICogSW4gY2FzZSBvZiB1c2VyJ3MgbGlzdCBjYWxjdWxhdGVzIG51bWJlciBvZiBhZG1pbnMvbWFuYWdlcyB0byBzZXQgdmlzaWJpbGl0eShlaXRoZXIgdG8gYWxsIGFkbWlucy8gYWRtaW5zIGFuZCBtYW5hZ2VycylcclxuICogQHBhcmFtIGRhdGEgaXMgdGhlIHNlbGVjdGVkIGVsZW1lbnRcclxuICovXHJcbnNlbGVjdEVsZW1lbnQoZGF0YTogYW55KSB7XHJcbiAgaWYgKHRoaXMuc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZGF0YVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pKSB7XHJcbiAgICBpZiAoIXRoaXMubGlzdERldGFpbHMubm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKGRhdGFbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldKSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRMaXN0LmZpbmRJbmRleChlbGUgPT4gZWxlW3RoaXMubGlzdERldGFpbHMuZWxlbWVudElkS2V5XSA9PT0gZGF0YVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLmZvb3RlckRldGFpbHMuc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZExpc3Q7XHJcblxyXG4gICAgICBjb25zdCBpZEluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoZWxlID0+IGVsZSA9PT0gZGF0YVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pO1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZElkcy5zcGxpY2UoaWRJbmRleCwgMSk7XHJcbiAgICB9XHJcblxyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGlzdC5wdXNoKGRhdGEpO1xyXG4gICAgdGhpcy5zZWxlY3RlZElkcy5wdXNoKGRhdGFbdGhpcy5saXN0RGV0YWlscy5lbGVtZW50SWRLZXldKTtcclxuICAgIHRoaXMuZm9vdGVyRGV0YWlscy5zZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkTGlzdDtcclxuXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogSXQgaXMgdXNlZCB0byBzZXQgYW5kIHNlYXJjaCB2YWx1ZSBpbmNhc2Ugb2YgYmFja2VuZCBkcml2ZW4gbGlzdCB0byBkaWZmZXJlbnRpYXRlIHNlYXJjaCBsaXN0IGFuZCBvcmlnaW5hbCBsaXN0XHJcbiAqL1xyXG5zZXRTZWFyY2hWYWx1ZSgpIHtcclxuICB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZTtcclxuICB0aGlzLnBhZ2luYXRpb25GaWx0ZXIodHJ1ZSk7XHJcblxyXG59XHJcblxyXG4vKipcclxuKiBpdCBpcyB1c2VkIGNoZWNrIHNlbGVjdCBhbGwgY29uZGl0aW9uIGluY2FzZSBvZiBiYWNrZW5kIGRyaXZlbiBzZWFyY2hcclxuKi9cclxuY2hlY2tTZWxlY3RBbGwoKSB7XHJcbiAgaWYgKHRoaXMuc2VhcmNoTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICBjb25zdCBkYXRhOiBib29sZWFuID0gdGhpcy5zZWFyY2hMaXN0LmV2ZXJ5KGVsZSA9PiB0aGlzLnNlbGVjdGVkSWRzLmluY2x1ZGVzKGVsZVt0aGlzLmxpc3REZXRhaWxzLmVsZW1lbnRJZEtleV0pKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuLyoqXHJcbiAqIEZpbHRlciBsaXN0IHVzZXIncyBsaXN0IGJhc2VkIG9uIHBhZ2luYXRpb24gYnkgbWFraW5nIGFwaSBjYWxsXHJcbiAqIEBwYXJhbSBldmVudCBzcGVjaWZpZXMgYSBib29sZWFuIHZhbHVlIHRvIGNhbGwgYXBpXHJcbiAqL1xyXG5wYWdpbmF0aW9uRmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAvLyB0aGlzLnBhZ2luYXRpb25GaWx0ZXJFdmVudC5lbWl0KGV2ZW50KTtcclxuICBpZiAoZXZlbnQpIHtcclxuICAgIHRoaXMudkxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmdldFVzZXJzTGlzdCh7XHJcbiAgICAgIHA6IHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UgPT09IDEgPyAnJyA6IHRoaXMucGFnaW5hdGlvblNlcnZpY2UuY3VycmVudFBhZ2UsXHJcbiAgICAgIHR5cGU6ICcnLFxyXG4gICAgICBxOiAoIXRoaXMucGFnaW5hdGlvblNlcnZpY2Uuc2VhcmNoVmFsdWUpID8gJycgOiB0aGlzLnBhZ2luYXRpb25TZXJ2aWNlLnNlYXJjaFZhbHVlLFxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxufVxyXG4vKipcclxuICogR2V0cyB1c2VyJ3MgbGlzdCAgYnkgbWFraW5nIGFwaSBjYWxsXHJcbiAqIEBwYXJhbSB1cmwgY29udGFpbnMgdXNlcmxpc3QgZmlsdGVyIGRldGFpbHNcclxuICovXHJcbmdldFVzZXJzTGlzdCh1cmw6IGFueSkge1xyXG4gIHRoaXMudkxvYWRlciA9IHRydWU7XHJcblxyXG4gIHRoaXMuZGFzaGJvYXJkU2VydmljZS5nZXRPcmdhbml6YXRpb25Vc2Vycyh1cmwgPyB1cmwgOiAnJykuc3Vic2NyaWJlKHJlcyA9PiB7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hMaXN0ID0gcmVzO1xyXG4gICAgdGhpcy52TG9hZGVyID0gZmFsc2U7XHJcblxyXG5cclxuICB9KTtcclxuXHJcbn1cclxuLyoqXHJcbiAqIG9uIGNsaWNrIG9uIG5leHQgYnV0dG9uIGZyb20gdGhlIGxpc3QsIGl0IGVtaXRzIHRoZSBzZWxlY3RlZCBsaXN0IG9mIGVsZW1lbnRzIHRvIHBhcmVudCBjb21wb25lbnQuXHJcbiAqL1xyXG5vblN1Ym1pdCgpIHtcclxuICBjb25zdCBkYXRhID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZExpc3QpXTtcclxuICB0aGlzLnNhdmVTZWxlY3RlZFVzZXJzLmVtaXQoZGF0YSk7XHJcbiAgdGhpcy5wYWdpbmF0aW9uU2VydmljZS5yZXNldCgpO1xyXG59XHJcbn1cclxuIl19
|