@tilde-nlp/ngx-menu 6.1.39 → 6.1.41

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.
@@ -15,8 +15,9 @@ import * as i10 from "@angular/material/button";
15
15
  import * as i11 from "@angular/material/menu";
16
16
  import * as i12 from "../menu-columns/menu-columns.component";
17
17
  import * as i13 from "@ngx-translate/core";
18
+ const _c0 = ["*"];
18
19
  const _forTrack0 = ($index, $item) => $item.label;
19
- const _c0 = (a0, a1) => ({ icon: a0, label: a1 });
20
+ const _c1 = (a0, a1) => ({ icon: a0, label: a1 });
20
21
  function SideNavMenuComponent_a_14_Template(rf, ctx) { if (rf & 1) {
21
22
  const _r2 = i0.ɵɵgetCurrentView();
22
23
  i0.ɵɵelementStart(0, "a", 6);
@@ -36,115 +37,115 @@ function SideNavMenuComponent_a_14_Template(rf, ctx) { if (rf & 1) {
36
37
  i0.ɵɵadvance(2);
37
38
  i0.ɵɵtextInterpolate1(" ", ctx_r2.productName, " ");
38
39
  } }
39
- function SideNavMenuComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
40
+ function SideNavMenuComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
40
41
  i0.ɵɵtext(0);
41
42
  } if (rf & 2) {
42
43
  const ctx_r2 = i0.ɵɵnextContext();
43
44
  i0.ɵɵtextInterpolate1(" ", ctx_r2.userInitials, " ");
44
45
  } }
45
- function SideNavMenuComponent_Conditional_29_Template(rf, ctx) { if (rf & 1) {
46
+ function SideNavMenuComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
46
47
  i0.ɵɵelementStart(0, "mat-icon");
47
48
  i0.ɵɵtext(1, "person");
48
49
  i0.ɵɵelementEnd();
49
50
  } }
50
- function SideNavMenuComponent_ng_container_30_mat_icon_4_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵelementStart(0, "mat-icon", 25);
51
+ function SideNavMenuComponent_ng_container_32_mat_icon_4_Template(rf, ctx) { if (rf & 1) {
52
+ i0.ɵɵelementStart(0, "mat-icon", 26);
52
53
  i0.ɵɵtext(1);
53
54
  i0.ɵɵelementEnd();
54
55
  } if (rf & 2) {
55
56
  i0.ɵɵadvance();
56
57
  i0.ɵɵtextInterpolate("keyboard_arrow_down");
57
58
  } }
58
- function SideNavMenuComponent_ng_container_30_ng_template_5_Template(rf, ctx) { if (rf & 1) {
59
- i0.ɵɵelementStart(0, "mat-icon", 25);
59
+ function SideNavMenuComponent_ng_container_32_ng_template_5_Template(rf, ctx) { if (rf & 1) {
60
+ i0.ɵɵelementStart(0, "mat-icon", 26);
60
61
  i0.ɵɵtext(1);
61
62
  i0.ɵɵelementEnd();
62
63
  } if (rf & 2) {
63
64
  i0.ɵɵadvance();
64
65
  i0.ɵɵtextInterpolate("keyboard_arrow_up");
65
66
  } }
66
- function SideNavMenuComponent_ng_container_30_Template(rf, ctx) { if (rf & 1) {
67
+ function SideNavMenuComponent_ng_container_32_Template(rf, ctx) { if (rf & 1) {
67
68
  i0.ɵɵelementContainerStart(0);
68
- i0.ɵɵelementStart(1, "span", 23);
69
+ i0.ɵɵelementStart(1, "span", 24);
69
70
  i0.ɵɵtext(2);
70
71
  i0.ɵɵpipe(3, "translate");
71
72
  i0.ɵɵelementEnd();
72
- i0.ɵɵtemplate(4, SideNavMenuComponent_ng_container_30_mat_icon_4_Template, 2, 1, "mat-icon", 24)(5, SideNavMenuComponent_ng_container_30_ng_template_5_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
73
+ i0.ɵɵtemplate(4, SideNavMenuComponent_ng_container_32_mat_icon_4_Template, 2, 1, "mat-icon", 25)(5, SideNavMenuComponent_ng_container_32_ng_template_5_Template, 2, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
73
74
  i0.ɵɵelementContainerEnd();
74
75
  } if (rf & 2) {
75
76
  let tmp_5_0;
76
77
  const iconDown_r4 = i0.ɵɵreference(6);
77
78
  const ctx_r2 = i0.ɵɵnextContext();
78
- const state_r5 = i0.ɵɵreference(26);
79
+ const state_r5 = i0.ɵɵreference(28);
79
80
  i0.ɵɵadvance(2);
80
81
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, (tmp_5_0 = ctx_r2.username) !== null && tmp_5_0 !== undefined ? tmp_5_0 : "MENU.ANONYMOUS"), " ");
81
82
  i0.ɵɵadvance(2);
82
83
  i0.ɵɵproperty("ngIf", state_r5.menuOpen)("ngIfElse", iconDown_r4);
83
84
  } }
84
- function SideNavMenuComponent_For_34_Conditional_0_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
85
+ function SideNavMenuComponent_For_36_Conditional_0_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
85
86
  i0.ɵɵelementContainer(0);
86
87
  } }
87
- function SideNavMenuComponent_For_34_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
88
+ function SideNavMenuComponent_For_36_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
88
89
  const _r6 = i0.ɵɵgetCurrentView();
89
- i0.ɵɵelementStart(0, "a", 29);
90
- i0.ɵɵlistener("click", function SideNavMenuComponent_For_34_Conditional_0_Conditional_0_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r6); const item_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.linkCallback(item_r7.link)); });
91
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_34_Conditional_0_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 30);
90
+ i0.ɵɵelementStart(0, "a", 30);
91
+ i0.ɵɵlistener("click", function SideNavMenuComponent_For_36_Conditional_0_Conditional_0_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r6); const item_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.linkCallback(item_r7.link)); });
92
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_36_Conditional_0_Conditional_0_ng_container_1_Template, 1, 0, "ng-container", 31);
92
93
  i0.ɵɵelementEnd();
93
94
  } if (rf & 2) {
94
95
  const item_r7 = i0.ɵɵnextContext(2).$implicit;
95
96
  i0.ɵɵnextContext();
96
- const profileMenuItem_r8 = i0.ɵɵreference(36);
97
+ const profileMenuItem_r8 = i0.ɵɵreference(38);
97
98
  i0.ɵɵproperty("href", item_r7.link.href, i0.ɵɵsanitizeUrl);
98
99
  i0.ɵɵadvance();
99
- i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c0, item_r7.icon, item_r7.label));
100
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c1, item_r7.icon, item_r7.label));
100
101
  } }
101
- function SideNavMenuComponent_For_34_Conditional_0_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
102
+ function SideNavMenuComponent_For_36_Conditional_0_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
102
103
  i0.ɵɵelementContainer(0);
103
104
  } }
104
- function SideNavMenuComponent_For_34_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
105
+ function SideNavMenuComponent_For_36_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
105
106
  const _r9 = i0.ɵɵgetCurrentView();
106
- i0.ɵɵelementStart(0, "a", 31);
107
- i0.ɵɵlistener("click", function SideNavMenuComponent_For_34_Conditional_0_Conditional_1_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const item_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.linkCallback(item_r7.link)); });
108
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_34_Conditional_0_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 30);
107
+ i0.ɵɵelementStart(0, "a", 32);
108
+ i0.ɵɵlistener("click", function SideNavMenuComponent_For_36_Conditional_0_Conditional_1_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const item_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.linkCallback(item_r7.link)); });
109
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_36_Conditional_0_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 31);
109
110
  i0.ɵɵelementEnd();
110
111
  } if (rf & 2) {
111
112
  const item_r7 = i0.ɵɵnextContext(2).$implicit;
112
113
  i0.ɵɵnextContext();
113
- const profileMenuItem_r8 = i0.ɵɵreference(36);
114
+ const profileMenuItem_r8 = i0.ɵɵreference(38);
114
115
  i0.ɵɵproperty("routerLink", item_r7.link.href);
115
116
  i0.ɵɵadvance();
116
- i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c0, item_r7.icon, item_r7.label));
117
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(3, _c1, item_r7.icon, item_r7.label));
117
118
  } }
118
- function SideNavMenuComponent_For_34_Conditional_0_Template(rf, ctx) { if (rf & 1) {
119
- i0.ɵɵtemplate(0, SideNavMenuComponent_For_34_Conditional_0_Conditional_0_Template, 2, 6, "a", 27)(1, SideNavMenuComponent_For_34_Conditional_0_Conditional_1_Template, 2, 6, "a", 28);
119
+ function SideNavMenuComponent_For_36_Conditional_0_Template(rf, ctx) { if (rf & 1) {
120
+ i0.ɵɵtemplate(0, SideNavMenuComponent_For_36_Conditional_0_Conditional_0_Template, 2, 6, "a", 28)(1, SideNavMenuComponent_For_36_Conditional_0_Conditional_1_Template, 2, 6, "a", 29);
120
121
  } if (rf & 2) {
121
122
  const item_r7 = i0.ɵɵnextContext().$implicit;
122
123
  i0.ɵɵconditional(item_r7.link.isExternal ? 0 : 1);
123
124
  } }
124
- function SideNavMenuComponent_For_34_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
125
+ function SideNavMenuComponent_For_36_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
125
126
  i0.ɵɵelementContainer(0);
126
127
  } }
127
- function SideNavMenuComponent_For_34_Conditional_1_Template(rf, ctx) { if (rf & 1) {
128
+ function SideNavMenuComponent_For_36_Conditional_1_Template(rf, ctx) { if (rf & 1) {
128
129
  const _r10 = i0.ɵɵgetCurrentView();
129
- i0.ɵɵelementStart(0, "button", 32);
130
- i0.ɵɵlistener("click", function SideNavMenuComponent_For_34_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const item_r7 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r7.button == null ? null : item_r7.button.callback()); });
131
- i0.ɵɵtemplate(1, SideNavMenuComponent_For_34_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 30);
130
+ i0.ɵɵelementStart(0, "button", 33);
131
+ i0.ɵɵlistener("click", function SideNavMenuComponent_For_36_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const item_r7 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r7.button == null ? null : item_r7.button.callback()); });
132
+ i0.ɵɵtemplate(1, SideNavMenuComponent_For_36_Conditional_1_ng_container_1_Template, 1, 0, "ng-container", 31);
132
133
  i0.ɵɵelementEnd();
133
134
  } if (rf & 2) {
134
135
  const item_r7 = i0.ɵɵnextContext().$implicit;
135
136
  i0.ɵɵnextContext();
136
- const profileMenuItem_r8 = i0.ɵɵreference(36);
137
+ const profileMenuItem_r8 = i0.ɵɵreference(38);
137
138
  i0.ɵɵadvance();
138
- i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c0, item_r7.icon, item_r7.label));
139
+ i0.ɵɵproperty("ngTemplateOutlet", profileMenuItem_r8)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, item_r7.icon, item_r7.label));
139
140
  } }
140
- function SideNavMenuComponent_For_34_Template(rf, ctx) { if (rf & 1) {
141
- i0.ɵɵtemplate(0, SideNavMenuComponent_For_34_Conditional_0_Template, 2, 1)(1, SideNavMenuComponent_For_34_Conditional_1_Template, 2, 5, "button", 26);
141
+ function SideNavMenuComponent_For_36_Template(rf, ctx) { if (rf & 1) {
142
+ i0.ɵɵtemplate(0, SideNavMenuComponent_For_36_Conditional_0_Template, 2, 1)(1, SideNavMenuComponent_For_36_Conditional_1_Template, 2, 5, "button", 27);
142
143
  } if (rf & 2) {
143
144
  const item_r7 = ctx.$implicit;
144
145
  i0.ɵɵconditional(item_r7.link ? 0 : 1);
145
146
  } }
146
- function SideNavMenuComponent_ng_template_35_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
147
- i0.ɵɵelementStart(0, "span", 35);
147
+ function SideNavMenuComponent_ng_template_37_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
148
+ i0.ɵɵelementStart(0, "span", 36);
148
149
  i0.ɵɵtext(1);
149
150
  i0.ɵɵelementEnd();
150
151
  } if (rf & 2) {
@@ -153,20 +154,20 @@ function SideNavMenuComponent_ng_template_35_Conditional_0_Conditional_0_Templat
153
154
  i0.ɵɵadvance();
154
155
  i0.ɵɵtextInterpolate1(" ", icon_r11 == null ? null : icon_r11.name, " ");
155
156
  } }
156
- function SideNavMenuComponent_ng_template_35_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
157
- i0.ɵɵelement(0, "mat-icon", 34);
157
+ function SideNavMenuComponent_ng_template_37_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
158
+ i0.ɵɵelement(0, "mat-icon", 35);
158
159
  } if (rf & 2) {
159
160
  const icon_r11 = i0.ɵɵnextContext(2).icon;
160
161
  i0.ɵɵproperty("svgIcon", icon_r11 == null ? null : icon_r11.name);
161
162
  } }
162
- function SideNavMenuComponent_ng_template_35_Conditional_0_Template(rf, ctx) { if (rf & 1) {
163
- i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_35_Conditional_0_Conditional_0_Template, 2, 3, "span", 33)(1, SideNavMenuComponent_ng_template_35_Conditional_0_Conditional_1_Template, 1, 1, "mat-icon", 34);
163
+ function SideNavMenuComponent_ng_template_37_Conditional_0_Template(rf, ctx) { if (rf & 1) {
164
+ i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_37_Conditional_0_Conditional_0_Template, 2, 3, "span", 34)(1, SideNavMenuComponent_ng_template_37_Conditional_0_Conditional_1_Template, 1, 1, "mat-icon", 35);
164
165
  } if (rf & 2) {
165
166
  const icon_r11 = i0.ɵɵnextContext().icon;
166
167
  i0.ɵɵconditional(!(icon_r11 == null ? null : icon_r11.isCustom) ? 0 : 1);
167
168
  } }
168
- function SideNavMenuComponent_ng_template_35_Template(rf, ctx) { if (rf & 1) {
169
- i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_35_Conditional_0_Template, 2, 1);
169
+ function SideNavMenuComponent_ng_template_37_Template(rf, ctx) { if (rf & 1) {
170
+ i0.ɵɵtemplate(0, SideNavMenuComponent_ng_template_37_Conditional_0_Template, 2, 1);
170
171
  i0.ɵɵtext(1);
171
172
  i0.ɵɵpipe(2, "translate");
172
173
  } if (rf & 2) {
@@ -269,8 +270,9 @@ export class SideNavMenuComponent extends NavBaseComponent {
269
270
  this.userInitials = splittedUsername[0][0] + splittedUsername[1][0];
270
271
  }
271
272
  static { this.ɵfac = function SideNavMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SideNavMenuComponent)(i0.ɵɵdirectiveInject(i1.StrapiLinkService), i0.ɵɵdirectiveInject(i2.DOMService), i0.ɵɵdirectiveInject(i3.MenuItemsService)); }; }
272
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings", productName: "productName" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 37, vars: 35, consts: [["state", "matMenuTrigger"], ["menu", "matMenu"], ["profileMenuItem", ""], ["iconDown", ""], ["fxHide.gt-xs", ""], [1, "mobile-header", 3, "fxHide"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "width", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "menu-product-name"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", 1, "menu-container", 3, "ngClass.lt-sm"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "no-click", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent", "matTooltip"], ["fxHide.lt-sm", ""], ["fxLayout", "column", 1, "menu-wrapper"], ["role", "navigation", 3, "toggleCollapseEvent", "direction", "isOpen", "active"], [1, "profile"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-menu"], [1, "profile-name"], ["class", "profile-arrow spin", 4, "ngIf", "ngIfElse"], [1, "profile-arrow", "spin"], ["mat-menu-item", "", 1, "profile-option"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "href"], [1, "mat-mdc-menu-item", 3, "routerLink"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "click", "href"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "mat-mdc-menu-item", 3, "click", "routerLink"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
273
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideNavMenuComponent, selectors: [["lib-side-nav-menu"]], inputs: { username: "username", menuSettings: "menuSettings", productName: "productName" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 39, vars: 35, consts: [["state", "matMenuTrigger"], ["menu", "matMenu"], ["profileMenuItem", ""], ["iconDown", ""], ["fxHide.gt-xs", ""], [1, "mobile-header", 3, "fxHide"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "click", "libPlausibleEvent", "href"], ["height", "40", "width", "40", "alt", "logo", 1, "menu-logo", 3, "src"], [1, "menu-product-name"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent"], ["fxLayout", "column", 1, "menu-container", 3, "ngClass.lt-sm"], ["fxLayout", "column", "fxFlexFill", "", 1, "content"], ["fxLayout", "row", 1, "menu-container-header", 3, "fxLayoutAlign"], ["fxFlex", "3.125em", "fxLayoutAlign", "start center", 3, "libPlausibleEvent", "no-click", "href", "click", 4, "ngIf"], ["mat-icon-button", "", 1, "toggler", 3, "click", "libPlausibleEvent", "matTooltip"], ["fxHide.lt-sm", ""], ["fxLayout", "column", 1, "menu-wrapper"], ["role", "navigation", 3, "toggleCollapseEvent", "direction", "isOpen", "active"], ["fxFlex", "", "fxLayout", "column"], [1, "profile"], [1, "profile-wrapper", 3, "matMenuTriggerFor"], [1, "profile-icon"], [4, "ngIf"], [1, "profile-menu"], [1, "profile-name"], ["class", "profile-arrow spin", 4, "ngIf", "ngIfElse"], [1, "profile-arrow", "spin"], ["mat-menu-item", "", 1, "profile-option"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "href"], [1, "mat-mdc-menu-item", 3, "routerLink"], ["target", "_blank", 1, "mat-mdc-menu-item", 3, "click", "href"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "mat-mdc-menu-item", 3, "click", "routerLink"], ["mat-menu-item", "", 1, "profile-option", 3, "click"], [1, "material-icons", "profile-option-icon", 3, "material-icons-outlined"], [1, "profile-option-icon", 3, "svgIcon"], [1, "material-icons", "profile-option-icon"]], template: function SideNavMenuComponent_Template(rf, ctx) { if (rf & 1) {
273
274
  const _r1 = i0.ɵɵgetCurrentView();
275
+ i0.ɵɵprojectionDef();
274
276
  i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "a", 6);
275
277
  i0.ɵɵpipe(3, "translate");
276
278
  i0.ɵɵlistener("click", function SideNavMenuComponent_Template_a_click_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.logoClick($event)); });
@@ -299,18 +301,21 @@ export class SideNavMenuComponent extends NavBaseComponent {
299
301
  i0.ɵɵelementStart(22, "div", 16)(23, "menu-columns", 17);
300
302
  i0.ɵɵlistener("toggleCollapseEvent", function SideNavMenuComponent_Template_menu_columns_toggleCollapseEvent_23_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleCollapse()); });
301
303
  i0.ɵɵelementEnd()();
302
- i0.ɵɵelementStart(24, "div", 18)(25, "button", 19, 0)(27, "div", 20);
303
- i0.ɵɵtemplate(28, SideNavMenuComponent_Conditional_28_Template, 1, 1)(29, SideNavMenuComponent_Conditional_29_Template, 2, 0, "mat-icon");
304
+ i0.ɵɵelementStart(24, "div", 18);
305
+ i0.ɵɵprojection(25);
304
306
  i0.ɵɵelementEnd();
305
- i0.ɵɵtemplate(30, SideNavMenuComponent_ng_container_30_Template, 7, 5, "ng-container", 21);
307
+ i0.ɵɵelementStart(26, "div", 19)(27, "button", 20, 0)(29, "div", 21);
308
+ i0.ɵɵtemplate(30, SideNavMenuComponent_Conditional_30_Template, 1, 1)(31, SideNavMenuComponent_Conditional_31_Template, 2, 0, "mat-icon");
306
309
  i0.ɵɵelementEnd();
307
- i0.ɵɵelementStart(31, "mat-menu", 22, 1);
308
- i0.ɵɵrepeaterCreate(33, SideNavMenuComponent_For_34_Template, 2, 1, null, null, _forTrack0);
310
+ i0.ɵɵtemplate(32, SideNavMenuComponent_ng_container_32_Template, 7, 5, "ng-container", 22);
311
+ i0.ɵɵelementEnd();
312
+ i0.ɵɵelementStart(33, "mat-menu", 23, 1);
313
+ i0.ɵɵrepeaterCreate(35, SideNavMenuComponent_For_36_Template, 2, 1, null, null, _forTrack0);
309
314
  i0.ɵɵelementEnd()();
310
- i0.ɵɵtemplate(35, SideNavMenuComponent_ng_template_35_Template, 3, 4, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
315
+ i0.ɵɵtemplate(37, SideNavMenuComponent_ng_template_37_Template, 3, 4, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
311
316
  i0.ɵɵelementEnd()();
312
317
  } if (rf & 2) {
313
- const menu_r13 = i0.ɵɵreference(32);
318
+ const menu_r13 = i0.ɵɵreference(34);
314
319
  i0.ɵɵadvance();
315
320
  i0.ɵɵproperty("fxHide", !ctx.collapsed);
316
321
  i0.ɵɵadvance();
@@ -339,19 +344,19 @@ export class SideNavMenuComponent extends NavBaseComponent {
339
344
  i0.ɵɵtextInterpolate(ctx.collapsed ? "keyboard_double_arrow_right" : "keyboard_double_arrow_left");
340
345
  i0.ɵɵadvance(2);
341
346
  i0.ɵɵproperty("direction", ctx.direction)("isOpen", !ctx.collapsed)("active", ctx.active);
342
- i0.ɵɵadvance(2);
347
+ i0.ɵɵadvance(4);
343
348
  i0.ɵɵproperty("matMenuTriggerFor", menu_r13);
344
349
  i0.ɵɵadvance(3);
345
- i0.ɵɵconditional(ctx.userInitials ? 28 : 29);
350
+ i0.ɵɵconditional(ctx.userInitials ? 30 : 31);
346
351
  i0.ɵɵadvance(2);
347
352
  i0.ɵɵproperty("ngIf", !ctx.collapsed);
348
353
  i0.ɵɵadvance(3);
349
354
  i0.ɵɵrepeater(ctx.menuSettings.userOptions);
350
- } }, dependencies: [i4.DefaultLayoutDirective, i4.DefaultLayoutAlignDirective, i4.FlexFillDirective, i4.DefaultFlexDirective, i5.DefaultShowHideDirective, i5.DefaultClassDirective, i6.RouterLink, i7.NgIf, i7.NgTemplateOutlet, i8.MatTooltip, i9.MatIcon, i10.MatIconButton, i11.MatMenu, i11.MatMenuItem, i11.MatMenuTrigger, i2.PlausibleEventDirective, i12.MenuColumnsComponent, i13.TranslatePipe], styles: ["a[_ngcontent-%COMP%]{text-decoration:none}.no-click[_ngcontent-%COMP%]{pointer-events:none!important}.mobile-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed[_ngcontent-%COMP%]{display:none!important}.mobile.menu-container[_ngcontent-%COMP%]:not(.collapsed){display:block!important;position:fixed;min-width:100vw;min-height:100dvh;z-index:1000}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{position:relative}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:absolute!important;right:0}.menu-product-name[_ngcontent-%COMP%]{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--base-10)}.menu-container[_ngcontent-%COMP%]{max-height:100dvh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100dvh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile[_ngcontent-%COMP%]{position:relative;height:100%;margin-top:100px}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 16px}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px;text-overflow:ellipsis}.collapsed[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{margin:36px 0!important}.mobile[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:60vw}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.profile-arrow[_ngcontent-%COMP%]{position:absolute;right:3px;margin-right:20px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none}[_nghost-%COMP%] .mobile .child-list .menu-item{padding:8px 54px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important} .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px} .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
355
+ } }, dependencies: [i4.DefaultLayoutDirective, i4.DefaultLayoutAlignDirective, i4.FlexFillDirective, i4.DefaultFlexDirective, i5.DefaultShowHideDirective, i5.DefaultClassDirective, i6.RouterLink, i7.NgIf, i7.NgTemplateOutlet, i8.MatTooltip, i9.MatIcon, i10.MatIconButton, i11.MatMenu, i11.MatMenuItem, i11.MatMenuTrigger, i2.PlausibleEventDirective, i12.MenuColumnsComponent, i13.TranslatePipe], styles: ["a[_ngcontent-%COMP%]{text-decoration:none}.no-click[_ngcontent-%COMP%]{pointer-events:none!important}.mobile-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed[_ngcontent-%COMP%]{display:none!important}.mobile.menu-container[_ngcontent-%COMP%]:not(.collapsed){display:block!important;position:fixed;min-width:100vw;min-height:100dvh;z-index:1000}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar{width:5px}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--base-95);background-clip:padding-box}.menu-container[_ngcontent-%COMP%] [_ngcontent-%COMP%]::-webkit-scrollbar-track{background:var(--base-100)}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{position:relative}.mobile[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:absolute!important;right:0}.menu-product-name[_ngcontent-%COMP%]{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--base-10)}.menu-container[_ngcontent-%COMP%]{max-height:100dvh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100dvh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0;max-height:40px}.menu-container.collapsed[_ngcontent-%COMP%] .menu-container-header[_ngcontent-%COMP%]{margin:24px 0 32px!important}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]:not(.collapsed) .menu-logo[_ngcontent-%COMP%]{margin-left:16px;max-width:100%}.menu-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:100%}.menu-container[_ngcontent-%COMP%] .profile[_ngcontent-%COMP%]{position:relative;margin-top:100px}.menu-container[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 0}.menu-container[_ngcontent-%COMP%] .profile-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:145px;overflow:hidden;margin-left:12px;text-overflow:ellipsis}.collapsed[_ngcontent-%COMP%] .profile-wrapper[_ngcontent-%COMP%]{margin:36px 0!important}.mobile[_ngcontent-%COMP%] .profile-name[_ngcontent-%COMP%]{max-width:60vw}.profile-option-icon[_ngcontent-%COMP%]{vertical-align:middle;margin:0 5px 5px 0}[_nghost-%COMP%] .menu-item{display:flex;padding:16px!important;border-radius:4px!important}[_nghost-%COMP%] .child-list .menu-item{padding:8px 46px!important}[_nghost-%COMP%] .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}[_nghost-%COMP%] .active-menu-item{background-color:var(--base-95)!important}[_nghost-%COMP%] .menu-item-title{margin-left:12px}tld-menu-icon[_ngcontent-%COMP%]{margin-right:10px}.profile-arrow[_ngcontent-%COMP%]{position:absolute;right:3px;margin-right:20px}.spin[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spinArrow .3s forwards}[_nghost-%COMP%] button.collapse-btn .mat-mdc-button-persistent-ripple, [_nghost-%COMP%] button.toggler .mat-mdc-button-persistent-ripple{display:none}[_nghost-%COMP%] .mobile .child-list .menu-item{padding:8px 54px!important} .cdk-overlay-container .profile-menu{margin:10px 0!important} .mat-mdc-menu-item .mat-icon{margin-right:5px!important} .collapsed .profile-wrapper{justify-content:center!important} .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px} .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes _ngcontent-%COMP%_spinArrow{to{transform:rotate(180deg)}}"] }); }
351
356
  }
352
357
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SideNavMenuComponent, [{
353
358
  type: Component,
354
- args: [{ selector: 'lib-side-nav-menu', template: "<div fxHide.gt-xs>\r\n <div [fxHide]=\"!collapsed\" class=\"mobile-header\">\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\" [class.no-click]=\"menuSettings?.disableLogoNavigation\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass.lt-sm]=\"'mobile'\" class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [class.no-click]=\"menuSettings?.disableLogoNavigation\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n [matTooltip]=\"(collapsed ? 'MENU.EXPAND' : 'MENU.COLLAPSE') | translate\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon fxHide.gt-xs>close</mat-icon>\r\n <mat-icon fxHide.lt-sm>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"menu-wrapper\" fxLayout=\"column\">\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" [isOpen]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n\r\n <div class=\"profile\">\r\n <button #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n @if (userInitials) {\r\n {{userInitials}}\r\n } @else {\r\n <mat-icon>person</mat-icon>\r\n }\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username ?? 'MENU.ANONYMOUS' | translate }}\r\n </span>\r\n\r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"profile-arrow spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of menuSettings.userOptions; track item.label) {\r\n @if (item.link) {\r\n @if (item.link.isExternal) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\" (click)=\"linkCallback(item.link)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\" (click)=\"linkCallback(item.link)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item.button?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n </div>\r\n\r\n <ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!icon?.isCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n {{icon?.name}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n </ng-template>\r\n</div>\r\n", styles: ["a{text-decoration:none}.no-click{pointer-events:none!important}.mobile-header{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed{display:none!important}.mobile.menu-container:not(.collapsed){display:block!important;position:fixed;min-width:100vw;min-height:100dvh;z-index:1000}.mobile .profile-wrapper{position:relative}.mobile .profile-wrapper mat-icon{position:absolute!important;right:0}.menu-product-name{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--base-10)}.menu-container{max-height:100dvh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100dvh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile{position:relative;height:100%;margin-top:100px}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 16px}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px;text-overflow:ellipsis}.collapsed .profile-wrapper{margin:36px 0!important}.mobile .profile-name{max-width:60vw}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.profile-arrow{position:absolute;right:3px;margin-right:20px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}:host ::ng-deep .mobile .child-list .menu-item{padding:8px 54px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}::ng-deep .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px}::ng-deep .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
359
+ args: [{ selector: 'lib-side-nav-menu', template: "<div fxHide.gt-xs>\r\n <div [fxHide]=\"!collapsed\" class=\"mobile-header\">\r\n <a [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [href]=\"baseUrl\" [class.no-click]=\"menuSettings?.disableLogoNavigation\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass.lt-sm]=\"'mobile'\" class=\"menu-container\" [style.width]=\"sideNavWidth\" fxLayout=\"column\" [class.collapsed]=\"collapsed\">\r\n <div class=\"content\" fxLayout=\"column\" fxFlexFill>\r\n <div class=\"menu-container-header\" fxLayout=\"row\" [fxLayoutAlign]=\"collapsed ? 'center center' : 'space-between center'\">\r\n <a *ngIf=\"!collapsed\" [libPlausibleEvent]=\"LOGOCLICK_PLAUSIBLE_EVENT\" fxFlex=\"3.125em\" [class.no-click]=\"menuSettings?.disableLogoNavigation\" [href]=\"baseUrl\"\r\n [attr.aria-label]=\"'MENU.ARIA_LABELS.LOGO' | translate\" (click)=\"logoClick($event)\" fxLayoutAlign=\"start center\"\r\n >\r\n <img height=\"40\" width=\"40\" class=\"menu-logo\" [src]=\"menuLogoImage\" alt=\"logo\" />\r\n <span class=\"menu-product-name\">\r\n {{ productName }}\r\n </span>\r\n </a>\r\n\r\n <button\r\n mat-icon-button\r\n class=\"toggler\"\r\n [attr.aria-label]=\"'ARIA_LABELS.MENU_TOGGLER' | translate\"\r\n [libPlausibleEvent]=\"collapsed ? EXPAND_PLAUSIBLE_EVENT : COLLAPSE_PLAUSIBLE_EVENT\"\r\n [matTooltip]=\"(collapsed ? 'MENU.EXPAND' : 'MENU.COLLAPSE') | translate\"\r\n (click)=\"toggleCollapse()\"\r\n >\r\n <mat-icon fxHide.gt-xs>close</mat-icon>\r\n <mat-icon fxHide.lt-sm>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"menu-wrapper\" fxLayout=\"column\">\r\n <menu-columns (toggleCollapseEvent)=\"toggleCollapse()\" [direction]=\"direction\" role=\"navigation\" [isOpen]=\"!collapsed\"\r\n [active]=\"active\"></menu-columns>\r\n </div>\r\n <div fxFlex fxLayout=\"column\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"profile\">\r\n <button #state=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"profile-wrapper\">\r\n <div class=\"profile-icon\">\r\n @if (userInitials) {\r\n {{userInitials}}\r\n } @else {\r\n <mat-icon>person</mat-icon>\r\n }\r\n </div>\r\n\r\n <ng-container *ngIf=\"!collapsed\">\r\n <span class=\"profile-name\">\r\n {{ username ?? 'MENU.ANONYMOUS' | translate }}\r\n </span>\r\n\r\n <mat-icon *ngIf=\"state.menuOpen; else iconDown\" class=\"profile-arrow spin\">{{\"keyboard_arrow_down\"}}</mat-icon>\r\n\r\n <ng-template #iconDown>\r\n <mat-icon class=\"profile-arrow spin\">{{\"keyboard_arrow_up\" }}</mat-icon>\r\n </ng-template>\r\n </ng-container>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\" class=\"profile-menu\">\r\n @for (item of menuSettings.userOptions; track item.label) {\r\n @if (item.link) {\r\n @if (item.link.isExternal) {\r\n <a class=\"mat-mdc-menu-item\" [href]=\"item.link.href\" target=\"_blank\" (click)=\"linkCallback(item.link)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n } @else {\r\n <a class=\"mat-mdc-menu-item\" [routerLink]=\"item.link.href\" (click)=\"linkCallback(item.link)\">\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </a>\r\n }\r\n } @else {\r\n <button\r\n mat-menu-item\r\n class=\"profile-option\"\r\n (click)=\"item.button?.callback()\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"profileMenuItem; context: { icon: item.icon, label: item.label }\">\r\n </ng-container>\r\n </button>\r\n }\r\n }\r\n </mat-menu>\r\n </div>\r\n\r\n <ng-template #profileMenuItem let-icon=\"icon\" let-label=\"label\">\r\n @if (icon) {\r\n @if (!icon?.isCustom) {\r\n <span class=\"material-icons profile-option-icon\" [class.material-icons-outlined]=\"icon?.isOutlined\">\r\n {{icon?.name}}\r\n </span>\r\n } @else {\r\n <mat-icon class=\"profile-option-icon\" [svgIcon]=\"icon?.name\"></mat-icon>\r\n }\r\n }\r\n {{ label | translate }}\r\n </ng-template>\r\n</div>\r\n", styles: ["a{text-decoration:none}.no-click{pointer-events:none!important}.mobile-header{display:flex;justify-content:space-between;padding:23px 27px;background-color:#fcfcfc;border:1px solid var(--base-70)}.mobile.menu-container.collapsed{display:none!important}.mobile.menu-container:not(.collapsed){display:block!important;position:fixed;min-width:100vw;min-height:100dvh;z-index:1000}.menu-container ::-webkit-scrollbar{width:5px}.menu-container ::-webkit-scrollbar-thumb{background:var(--base-95);background-clip:padding-box}.menu-container ::-webkit-scrollbar-track{background:var(--base-100)}.mobile .profile-wrapper{position:relative}.mobile .profile-wrapper mat-icon{position:absolute!important;right:0}.menu-product-name{white-space:nowrap;margin-left:12px;font-weight:600;color:var(--base-10)}.menu-container{max-height:100dvh;white-space:nowrap;height:100%;transition:width .2s ease;min-height:100dvh;overflow:auto;background:var(--base-100);border-right:2px solid var(--base-95)}.menu-container .menu-container-header{margin:24px 0;max-height:40px}.menu-container.collapsed .menu-container-header{margin:24px 0 32px!important}.menu-container .content:not(.collapsed){overflow-x:hidden;padding:0 12px}.menu-container .content:not(.collapsed) .menu-logo{margin-left:16px;max-width:100%}.menu-container .divider{width:100%}.menu-container .profile{position:relative;margin-top:100px}.menu-container .profile-wrapper{background:none;color:var(--base-30);display:flex;align-items:center;justify-content:start;width:100%;position:absolute;bottom:0;margin:32px 0}.menu-container .profile-icon{display:flex;justify-content:center;align-items:center;min-width:40px;height:40px;border-radius:100%;color:var(--base-0);background-color:var(--base-70);font-size:16px;font-weight:600}.menu-container .profile-name{max-width:145px;overflow:hidden;margin-left:12px;text-overflow:ellipsis}.collapsed .profile-wrapper{margin:36px 0!important}.mobile .profile-name{max-width:60vw}.profile-option-icon{vertical-align:middle;margin:0 5px 5px 0}:host ::ng-deep .menu-item{display:flex;padding:16px!important;border-radius:4px!important}:host ::ng-deep .child-list .menu-item{padding:8px 46px!important}:host ::ng-deep .collapsed .menu-item{padding:0!important;width:40px;height:40px;border-radius:50%!important}:host ::ng-deep .active-menu-item{background-color:var(--base-95)!important}:host ::ng-deep .menu-item-title{margin-left:12px}tld-menu-icon{margin-right:10px}.profile-arrow{position:absolute;right:3px;margin-right:20px}.spin{animation:spinArrow .3s forwards}:host::ng-deep button.collapse-btn .mat-mdc-button-persistent-ripple,:host::ng-deep button.toggler .mat-mdc-button-persistent-ripple{display:none}:host ::ng-deep .mobile .child-list .menu-item{padding:8px 54px!important}::ng-deep .cdk-overlay-container .profile-menu{margin:10px 0!important}::ng-deep .mat-mdc-menu-item .mat-icon{margin-right:5px!important}::ng-deep .collapsed .profile-wrapper{justify-content:center!important}::ng-deep .profile-menu a{font-weight:400!important;display:flex;align-items:center;gap:5px}::ng-deep .profile-menu a:hover{color:var(--mat-menu-item-label-text-color, var(--mat-app-on-surface))!important;text-decoration:inherit}@keyframes spinArrow{to{transform:rotate(180deg)}}\n"] }]
355
360
  }], () => [{ type: i1.StrapiLinkService }, { type: i2.DOMService }, { type: i3.MenuItemsService }], { username: [{
356
361
  type: Input
357
362
  }], menuSettings: [{
@@ -360,4 +365,4 @@ export class SideNavMenuComponent extends NavBaseComponent {
360
365
  type: Input
361
366
  }] }); })();
362
367
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SideNavMenuComponent, { className: "SideNavMenuComponent", filePath: "lib\\components\\side-nav-menu\\side-nav-menu.component.ts", lineNumber: 15 }); })();
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWVudS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1uYXYtbWVudS9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW5hdi1tZW51L3NpZGUtbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBOEIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ3VCNUQsNEJBRUM7O0lBRHlELGdMQUFTLHdCQUFpQixLQUFDO0lBRW5GLHlCQUFpRjtJQUNqRiwrQkFBZ0M7SUFDOUIsWUFDRjtJQUNGLEFBREUsaUJBQU8sRUFDTDs7O0lBUG1GLDBHQUFzRDtJQUFDLEFBQXhILG9FQUErQywwQ0FBeUY7O0lBRzlHLGVBQXFCO0lBQXJCLDREQUFxQjtJQUVqRSxlQUNGO0lBREUsbURBQ0Y7OztJQXlCRSxZQUNGOzs7SUFERSxvREFDRjs7O0lBQ0UsZ0NBQVU7SUFBQSxzQkFBTTtJQUFBLGlCQUFXOzs7SUFTN0Isb0NBQTJFO0lBQUEsWUFBeUI7SUFBQSxpQkFBVzs7SUFBcEMsY0FBeUI7SUFBekIsMkNBQXlCOzs7SUFHbEcsb0NBQXFDO0lBQUEsWUFBd0I7SUFBQSxpQkFBVzs7SUFBbkMsY0FBd0I7SUFBeEIseUNBQXdCOzs7SUFSakUsNkJBQWlDO0lBQy9CLGdDQUEyQjtJQUN6QixZQUNGOztJQUFBLGlCQUFPO0lBSVAsQUFGQSxnR0FBMkUseUhBRXBEOzs7Ozs7O0lBTHJCLGVBQ0Y7SUFERSxpSkFDRjtJQUVXLGVBQXNCO0lBQUEsQUFBdEIsd0NBQXNCLHlCQUFhOzs7SUFheEMsd0JBRWU7Ozs7SUFIakIsNkJBQXVHO0lBQWxDLHVQQUFTLGlDQUF1QixLQUFDO0lBQ3BHLDJIQUN1RjtJQUV6RixpQkFBSTs7Ozs7SUFKeUIsMERBQXVCO0lBRS9DLGNBQW1DO0lBQUEsQUFBbkMscURBQW1DLG9GQUErQzs7O0lBS3JGLHdCQUVlOzs7O0lBSGpCLDZCQUE2RjtJQUFsQyx1UEFBUyxpQ0FBdUIsS0FBQztJQUMxRiwySEFDdUY7SUFFekYsaUJBQUk7Ozs7O0lBSnlCLDhDQUE2QjtJQUVyRCxjQUFtQztJQUFBLEFBQW5DLHFEQUFtQyxvRkFBK0M7OztJQUh2RixBQU5GLGlHQUE0QixvRkFNbkI7OztJQU5ULGlEQVlDOzs7SUFPRCx3QkFFZTs7OztJQVBmLGtDQUlEO0lBREcseVFBQWlDO0lBRW5DLDZHQUN1RjtJQUV6RixpQkFBUzs7Ozs7SUFGSixjQUFtQztJQUFBLEFBQW5DLHFEQUFtQyxvRkFBK0M7OztJQVByRixBQWRGLDBFQUFpQiwyRUFjUjs7O0lBZFQsc0NBd0JDOzs7SUFRRCxnQ0FBb0c7SUFDbEcsWUFDRjtJQUFBLGlCQUFPOzs7SUFGMEMsd0ZBQWtEO0lBQ2pHLGNBQ0Y7SUFERSx3RUFDRjs7O0lBRUEsK0JBQXdFOzs7SUFBbEMsaUVBQXNCOzs7SUFENUQsQUFKRiw0R0FBdUIsbUdBSWQ7OztJQUpULHdFQU1DOzs7SUFQSCxrRkFBWTtJQVNaLFlBQ0Y7Ozs7O0lBVkUsbUNBUUM7SUFDRCxjQUNGO0lBREUsZ0VBQ0Y7O0FEeEdGLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFDeEQsU0FBUyxDQUFVO0lBQ25CLElBQUksUUFBUSxLQUFLLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDekMsSUFBYSxRQUFRLENBQUMsS0FBSztRQUN6Qiw4RkFBOEY7UUFDOUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUF5Q0QsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUztZQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDbkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztJQUM3RixDQUFDO0lBRUQsWUFDUyxpQkFBb0MsRUFDbEMsVUFBc0IsRUFDdEIsU0FBMkI7UUFFcEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSlYsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBcEQ3QixpQkFBWSxHQUFvQjtZQUN2QyxhQUFhLEVBQUUsT0FBTztZQUN0QixjQUFjLEVBQUUsTUFBTTtZQUN0QixRQUFRLEVBQUUsRUFBRTtZQUNaLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsYUFBYSxFQUFFLEtBQUs7WUFDcEIscUJBQXFCLEVBQUUsS0FBSztTQUM3QixDQUFBO1FBS0QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVULGdDQUEyQixHQUFHLDZCQUE2QixDQUFDO1FBRXJFLHVEQUF1RDtRQUN0QyxnQ0FBMkIsR0FBRyxjQUFjLENBQUM7UUFDN0Msa0NBQTZCLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLGtDQUE2QixHQUFHLGtCQUFrQixDQUFBO1FBRTFELDhCQUF5QixHQUFtQjtZQUNuRCxPQUFPLEVBQUUsSUFBSSxDQUFDLDZCQUE2QjtZQUMzQyxVQUFVLEVBQUUsRUFBRTtTQUNmLENBQUE7UUFFUSwyQkFBc0IsR0FBbUI7WUFDaEQsT0FBTyxFQUFFLElBQUksQ0FBQywyQkFBMkI7WUFDekMsVUFBVSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUMzRSxDQUFBO1FBRVEsNkJBQXdCLEdBQW1CO1lBQ2xELE9BQU8sRUFBRSxJQUFJLENBQUMsMkJBQTJCO1lBQ3pDLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUM7U0FDN0UsQ0FBQTtRQXFCQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFUSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXdCO1FBQ25DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksTUFBTSxJQUFJLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3ZKLENBQUM7SUFFTywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsaURBQWlEO1lBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsT0FBTztRQUNULENBQUM7UUFDRCwrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO3FIQXJIVSxvQkFBb0I7b0VBQXBCLG9CQUFvQjs7WUNaN0IsQUFERixBQURGLDhCQUFrQixhQUNpQyxXQUc5Qzs7WUFEeUQsd0lBQVMscUJBQWlCLEtBQUM7WUFFbkYseUJBQWlGO1lBQ2pGLCtCQUFnQztZQUM5QixZQUNGO1lBQ0YsQUFERSxpQkFBTyxFQUNMO1lBRUosaUNBTUM7O1lBREMsdUlBQVMsb0JBQWdCLEtBQUM7WUFFMUIsZ0NBQVU7WUFBQSxxQkFBSTtZQUdwQixBQURFLEFBREUsQUFEZ0IsaUJBQVcsRUFDbEIsRUFDTCxFQUNGO1lBSUYsQUFERixBQURGLGdDQUFvSSxlQUNoRixlQUN5RTtZQUN2SCxvRUFFQztZQU9ELG1DQU9DOzs7WUFEQyx3SUFBUyxvQkFBZ0IsS0FBQztZQUUxQixvQ0FBdUI7WUFBQSxzQkFBSztZQUFBLGlCQUFXO1lBQ3ZDLHFDQUF1QjtZQUFBLGFBQThFO1lBRXpHLEFBREUsQUFEdUcsaUJBQVcsRUFDekcsRUFDTDtZQUdKLEFBREYsZ0NBQTRDLHdCQUV0QjtZQUROLDBLQUF1QixvQkFBZ0IsS0FBQztZQUV4RCxBQURzQixpQkFBZSxFQUMvQjtZQUlKLEFBREYsQUFERixnQ0FBcUIscUJBQ2dFLGVBQ3ZEO1lBR3RCLEFBRkYscUVBQW9CLG9FQUVYO1lBR2IsaUJBQU07WUFFSiwwRkFBaUM7WUFXbkMsaUJBQVM7WUFFVCx3Q0FBK0M7WUFDN0MsMkZBMEJDO1lBRUwsQUFERSxpQkFBVyxFQUNQO1lBRU4sd0hBQWdFO1lBWWxFLGlCQUFNLEVBaEc4SDs7O1lBdEI3SCxjQUFxQjtZQUFyQix1Q0FBcUI7WUFDNkQsY0FBc0Q7WUFBdEQsb0dBQXNEO1lBQXZFLEFBQWpFLGlFQUErQyx1Q0FBa0M7O1lBR3BDLGVBQXFCO1lBQXJCLHlEQUFxQjtZQUVqRSxlQUNGO1lBREUsZ0RBQ0Y7WUFPQSxjQUFtRjtZQUFuRiw2R0FBbUY7O1lBUWxDLGVBQTRCO1lBQTVCLHlDQUE0QjtZQUFtQiwwQ0FBNkI7WUFBOUgsd0NBQTBCO1lBRXVCLGVBQXNFO1lBQXRFLHdGQUFzRTtZQUNsSCxjQUFnQjtZQUFoQixxQ0FBZ0I7WUFhbEIsY0FBbUY7WUFDbkYsQUFEQSw2R0FBbUYsdUZBQ1g7O1lBSWpELGVBQThFO1lBQTlFLGtHQUE4RTtZQUtoRCxlQUF1QjtZQUM1RSxBQUQrRixBQUExQyx5Q0FBdUIsMEJBQXdDLHNCQUNuRztZQUlXLGVBQTBCO1lBQTFCLDRDQUEwQjtZQUV0RCxlQUlDO1lBSkQsNENBSUM7WUFHWSxlQUFnQjtZQUFoQixxQ0FBZ0I7WUFjL0IsZUEwQkM7WUExQkQsMkNBMEJDOzs7aUZEekZNLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLG1CQUFtQjswR0FPaEIsUUFBUTtrQkFBcEIsS0FBSztZQU1HLFlBQVk7a0JBQXBCLEtBQUs7WUFTRyxXQUFXO2tCQUFuQixLQUFLOztrRkFsQkssb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9NU2VydmljZSwgUGxhdXNpYmxlRXZlbnQsIFJlc29sdXRpb25IZWxwZXIgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBTdHJhcGlMaW5rU2VydmljZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LXN0cmFwaSc7XHJcbmltcG9ydCB7IE5hdkJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9uYXYtYmFzZS9uYXYtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaWRlTmF2U2V0dGluZ3MgfSBmcm9tICcuL21vZGVscy9zaWRlLW5hdi1zZXR0aW5ncy5tb2RlbCc7XHJcbmltcG9ydCB7IE1lbnVJdGVtc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZW51LWl0ZW1zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyTWVudU9wdGlvbkxpbmsgfSBmcm9tICcuL21vZGVscy91c2VyLW1lbnUtb3B0aW9uLWxpbmsubW9kZWwnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpZGUtbmF2LW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVOYXZNZW51Q29tcG9uZW50IGV4dGVuZHMgTmF2QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAjdXNlcm5hbWUhOiBzdHJpbmc7XHJcbiAgZ2V0IHVzZXJuYW1lKCkgeyByZXR1cm4gdGhpcy4jdXNlcm5hbWU7IH1cclxuICBASW5wdXQoKSBzZXQgdXNlcm5hbWUodmFsdWUpIHtcclxuICAgIC8vIGlmIHVzZXJuYW1lIGlzIHBhc3NlZCB3aGl0aCB3aGl0ZXNwYWNlIGluIGJlZ2dpbmluaW5nLCBpdCBicmVha3MgVUksIHNvIHRyaW0gaXQgZm9yIHNhZmV0eS5cclxuICAgIHRoaXMuI3VzZXJuYW1lID0gdmFsdWUudHJpbSgpO1xyXG4gICAgdGhpcy5zZXRVc2VySW5pdGlhbHMoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG1lbnVTZXR0aW5nczogU2lkZU5hdlNldHRpbmdzID0ge1xyXG4gICAgZXhwYW5kZWRXaWR0aDogJzI0MXB4JyxcclxuICAgIGNvbGxhcHNlZFdpZHRoOiAnNTZweCcsXHJcbiAgICBtZW51TG9nbzogJycsXHJcbiAgICBtZW51TG9nb0NvbGxhcHNlZDogJycsXHJcbiAgICBkaXNhYmxlU3RyYXBpOiBmYWxzZSxcclxuICAgIGRpc2FibGVMb2dvTmF2aWdhdGlvbjogZmFsc2VcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHByb2R1Y3ROYW1lITogc3RyaW5nO1xyXG5cclxuICB1c2VySW5pdGlhbHMhOiBzdHJpbmc7XHJcbiAgY29sbGFwc2VkID0gZmFsc2U7XHJcblxyXG4gIHJlYWRvbmx5IENPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSA9IFwiVExEX01FTlVfU0lERV9OQVZfQ09MTEFQU0VEXCI7XHJcblxyXG4gIC8vI3JlZ2lvbiBQbGF1c2libGUgZXZlbnQgdmFyaWFibGVzIGZvciBjb2xsYXBzZSBidXR0b25cclxuICBwcml2YXRlIHJlYWRvbmx5IENPTExBUFNFX1BMQVVTSUJMRV9FVkVOVF9JRCA9IFwiY29sbGFwc2VNZW51XCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBDT0xMQVBTRV9QTEFVU0lCTEVfQUNUSU9OX0tFWSA9IFwiYWN0aW9uXCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBMT0dPQ0xJQ0tfUExBVVNJQkxFX0FDVElPTl9JRCA9IFwidGlsZGVfbG9nb19jbGlja1wiXHJcblxyXG4gIHJlYWRvbmx5IExPR09DTElDS19QTEFVU0lCTEVfRVZFTlQ6IFBsYXVzaWJsZUV2ZW50ID0ge1xyXG4gICAgZXZlbnRJZDogdGhpcy5MT0dPQ0xJQ0tfUExBVVNJQkxFX0FDVElPTl9JRCxcclxuICAgIHByb3BlcnRpZXM6IFtdXHJcbiAgfVxyXG5cclxuICByZWFkb25seSBFWFBBTkRfUExBVVNJQkxFX0VWRU5UOiBQbGF1c2libGVFdmVudCA9IHtcclxuICAgIGV2ZW50SWQ6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UX0lELFxyXG4gICAgcHJvcGVydGllczogW3sga2V5OiB0aGlzLkNPTExBUFNFX1BMQVVTSUJMRV9BQ1RJT05fS0VZLCB2YWx1ZTogXCJleHBhbmRcIiB9XVxyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UOiBQbGF1c2libGVFdmVudCA9IHtcclxuICAgIGV2ZW50SWQ6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UX0lELFxyXG4gICAgcHJvcGVydGllczogW3sga2V5OiB0aGlzLkNPTExBUFNFX1BMQVVTSUJMRV9BQ1RJT05fS0VZLCB2YWx1ZTogXCJjb2xsYXBzZVwiIH1dXHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCBtZW51TG9nb0ltYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWRcclxuICAgICAgPyB0aGlzLm1lbnVTZXR0aW5ncy5tZW51TG9nb0NvbGxhcHNlZCA/PyB0aGlzLm1lbnVTZXR0aW5ncy5tZW51TG9nb1xyXG4gICAgICA6IHRoaXMubWVudVNldHRpbmdzLm1lbnVMb2dvO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNpZGVOYXZXaWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkID8gdGhpcy5tZW51U2V0dGluZ3MuY29sbGFwc2VkV2lkdGggOiB0aGlzLm1lbnVTZXR0aW5ncy5leHBhbmRlZFdpZHRoO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc3RyYXBpTGlua1NlcnZpY2U6IFN0cmFwaUxpbmtTZXJ2aWNlLFxyXG4gICAgcmVhZG9ubHkgZG9tU2VydmljZTogRE9NU2VydmljZSxcclxuICAgIHJlYWRvbmx5IG1lbnVJdGVtczogTWVudUl0ZW1zU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKG1lbnVJdGVtcyk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSBtZW51SXRlbXMubWVudVNoYXJlZENvbmZpZy5iYXNlVXJsIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5nZXRDb2xhcHNlZEZyb21Mb2NhbFN0b3JhZ2UoKTtcclxuICAgIHRoaXMuc2V0VXNlckluaXRpYWxzKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RyYXBpTGlua1NlcnZpY2Uuc3RyYXBpTGlua0NsaWNrKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUNvbGxhcHNlKCkge1xyXG4gICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gIH1cclxuXHJcbiAgbGlua0NhbGxiYWNrKGxpbms6IFVzZXJNZW51T3B0aW9uTGluaykge1xyXG4gICAgaWYgKGxpbmsuY2FsbGJhY2spIHtcclxuICAgICAgbGluay5jYWxsYmFjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb2xhcHNlZEZyb21Mb2NhbFN0b3JhZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29sbGFwc2VkID0gKHRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSkgPT0gJ3RydWUnIHx8IFJlc29sdXRpb25IZWxwZXIuaXNNb2JpbGVSZXMoKSkgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGlmICghdGhpcy5kb21TZXJ2aWNlLmxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRvbVNlcnZpY2UubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DT0xMQVBTRURfTE9DQUxfU1RPUkFHRV9LRVksIHRoaXMuY29sbGFwc2VkLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVc2VySW5pdGlhbHMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudXNlcm5hbWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGRpc3BsYXlpbmcgZmlyc3QgbGV0dGVycyBvZiBuYW1lIGFuZCBzdXJuYW1lXHJcbiAgICBjb25zdCBzcGxpdHRlZFVzZXJuYW1lID0gdGhpcy51c2VybmFtZS5zcGxpdCgnICcpO1xyXG4gICAgaWYgKHNwbGl0dGVkVXNlcm5hbWUubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUgd29yZCwgdXNlIHRoZSBmaXJzdCBsZXR0ZXJcclxuICAgICAgdGhpcy51c2VySW5pdGlhbHMgPSBzcGxpdHRlZFVzZXJuYW1lWzBdWzBdO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBJZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSB3b3JkLCB1c2UgdGhlIGZpcnN0IGxldHRlciBvZiB0aGUgZmlyc3QgdHdvIG5hbWVzXHJcbiAgICB0aGlzLnVzZXJJbml0aWFscyA9IHNwbGl0dGVkVXNlcm5hbWVbMF1bMF0gKyBzcGxpdHRlZFVzZXJuYW1lWzFdWzBdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGZ4SGlkZS5ndC14cz5cclxuICA8ZGl2IFtmeEhpZGVdPVwiIWNvbGxhcHNlZFwiIGNsYXNzPVwibW9iaWxlLWhlYWRlclwiPlxyXG4gICAgPGEgW2xpYlBsYXVzaWJsZUV2ZW50XT1cIkxPR09DTElDS19QTEFVU0lCTEVfRVZFTlRcIiBmeEZsZXg9XCIzLjEyNWVtXCIgW2hyZWZdPVwiYmFzZVVybFwiIFtjbGFzcy5uby1jbGlja109XCJtZW51U2V0dGluZ3M/LmRpc2FibGVMb2dvTmF2aWdhdGlvblwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01FTlUuQVJJQV9MQUJFTFMuTE9HTycgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwibG9nb0NsaWNrKCRldmVudClcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPGltZyBoZWlnaHQ9XCI0MFwiIHdpZHRoPVwiNDBcIiBjbGFzcz1cIm1lbnUtbG9nb1wiIFtzcmNdPVwibWVudUxvZ29JbWFnZVwiIGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtcHJvZHVjdC1uYW1lXCI+XHJcbiAgICAgICAge3sgcHJvZHVjdE5hbWUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9hPlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwidG9nZ2xlclwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FSSUFfTEFCRUxTLk1FTlVfVE9HR0xFUicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBbbGliUGxhdXNpYmxlRXZlbnRdPVwiY29sbGFwc2VkID8gRVhQQU5EX1BMQVVTSUJMRV9FVkVOVCA6IENPTExBUFNFX1BMQVVTSUJMRV9FVkVOVFwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBbbmdDbGFzcy5sdC1zbV09XCInbW9iaWxlJ1wiIGNsYXNzPVwibWVudS1jb250YWluZXJcIiBbc3R5bGUud2lkdGhdPVwic2lkZU5hdldpZHRoXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBbY2xhc3MuY29sbGFwc2VkXT1cImNvbGxhcHNlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXhGaWxsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGFpbmVyLWhlYWRlclwiIGZ4TGF5b3V0PVwicm93XCIgW2Z4TGF5b3V0QWxpZ25dPVwiY29sbGFwc2VkID8gJ2NlbnRlciBjZW50ZXInIDogJ3NwYWNlLWJldHdlZW4gY2VudGVyJ1wiPlxyXG4gICAgICA8YSAqbmdJZj1cIiFjb2xsYXBzZWRcIiBbbGliUGxhdXNpYmxlRXZlbnRdPVwiTE9HT0NMSUNLX1BMQVVTSUJMRV9FVkVOVFwiIGZ4RmxleD1cIjMuMTI1ZW1cIiBbY2xhc3Mubm8tY2xpY2tdPVwibWVudVNldHRpbmdzPy5kaXNhYmxlTG9nb05hdmlnYXRpb25cIiBbaHJlZl09XCJiYXNlVXJsXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNRU5VLkFSSUFfTEFCRUxTLkxPR08nIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImxvZ29DbGljaygkZXZlbnQpXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW1nIGhlaWdodD1cIjQwXCIgd2lkdGg9XCI0MFwiIGNsYXNzPVwibWVudS1sb2dvXCIgW3NyY109XCJtZW51TG9nb0ltYWdlXCIgYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXByb2R1Y3QtbmFtZVwiPlxyXG4gICAgICAgICAge3sgcHJvZHVjdE5hbWUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBjbGFzcz1cInRvZ2dsZXJcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FSSUFfTEFCRUxTLk1FTlVfVE9HR0xFUicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtsaWJQbGF1c2libGVFdmVudF09XCJjb2xsYXBzZWQgPyBFWFBBTkRfUExBVVNJQkxFX0VWRU5UIDogQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UXCJcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCIoY29sbGFwc2VkID8gJ01FTlUuRVhQQU5EJyA6ICdNRU5VLkNPTExBUFNFJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiBmeEhpZGUuZ3QteHM+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDxtYXQtaWNvbiBmeEhpZGUubHQtc20+e3sgY29sbGFwc2VkID8gJ2tleWJvYXJkX2RvdWJsZV9hcnJvd19yaWdodCcgOiAna2V5Ym9hcmRfZG91YmxlX2Fycm93X2xlZnQnIH19PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS13cmFwcGVyXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgICAgPG1lbnUtY29sdW1ucyAodG9nZ2xlQ29sbGFwc2VFdmVudCk9XCJ0b2dnbGVDb2xsYXBzZSgpXCIgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIiByb2xlPVwibmF2aWdhdGlvblwiIFtpc09wZW5dPVwiIWNvbGxhcHNlZFwiXHJcbiAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVcIj48L21lbnUtY29sdW1ucz5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicHJvZmlsZVwiPlxyXG4gICAgPGJ1dHRvbiAjc3RhdGU9XCJtYXRNZW51VHJpZ2dlclwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJwcm9maWxlLXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInByb2ZpbGUtaWNvblwiPlxyXG4gICAgICAgIEBpZiAodXNlckluaXRpYWxzKSB7XHJcbiAgICAgICAgICB7e3VzZXJJbml0aWFsc319XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8bWF0LWljb24+cGVyc29uPC9tYXQtaWNvbj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sbGFwc2VkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9maWxlLW5hbWVcIj5cclxuICAgICAgICAgIHt7IHVzZXJuYW1lID8/ICdNRU5VLkFOT05ZTU9VUycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInN0YXRlLm1lbnVPcGVuOyBlbHNlIGljb25Eb3duXCIgY2xhc3M9XCJwcm9maWxlLWFycm93IHNwaW5cIj57e1wia2V5Ym9hcmRfYXJyb3dfZG93blwifX08L21hdC1pY29uPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25Eb3duPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicHJvZmlsZS1hcnJvdyBzcGluXCI+e3tcImtleWJvYXJkX2Fycm93X3VwXCIgfX08L21hdC1pY29uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwicHJvZmlsZS1tZW51XCI+XHJcbiAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudVNldHRpbmdzLnVzZXJPcHRpb25zOyB0cmFjayBpdGVtLmxhYmVsKSB7XHJcbiAgICAgICAgQGlmIChpdGVtLmxpbmspIHtcclxuICAgICAgICAgIEBpZiAoaXRlbS5saW5rLmlzRXh0ZXJuYWwpIHtcclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXQtbWRjLW1lbnUtaXRlbVwiIFtocmVmXT1cIml0ZW0ubGluay5ocmVmXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKGNsaWNrKT1cImxpbmtDYWxsYmFjayhpdGVtLmxpbmspXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9maWxlTWVudUl0ZW07IGNvbnRleHQ6IHsgaWNvbjogaXRlbS5pY29uLCBsYWJlbDogaXRlbS5sYWJlbCB9XCI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8YSBjbGFzcz1cIm1hdC1tZGMtbWVudS1pdGVtXCIgW3JvdXRlckxpbmtdPVwiaXRlbS5saW5rLmhyZWZcIiAoY2xpY2spPVwibGlua0NhbGxiYWNrKGl0ZW0ubGluaylcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInByb2ZpbGVNZW51SXRlbTsgY29udGV4dDogeyBpY29uOiBpdGVtLmljb24sIGxhYmVsOiBpdGVtLmxhYmVsIH1cIj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICAgIGNsYXNzPVwicHJvZmlsZS1vcHRpb25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5idXR0b24/LmNhbGxiYWNrKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9maWxlTWVudUl0ZW07IGNvbnRleHQ6IHsgaWNvbjogaXRlbS5pY29uLCBsYWJlbDogaXRlbS5sYWJlbCB9XCI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjcHJvZmlsZU1lbnVJdGVtIGxldC1pY29uPVwiaWNvblwiIGxldC1sYWJlbD1cImxhYmVsXCI+XHJcbiAgICBAaWYgKGljb24pIHtcclxuICAgICAgQGlmICghaWNvbj8uaXNDdXN0b20pIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHByb2ZpbGUtb3B0aW9uLWljb25cIiBbY2xhc3MubWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRdPVwiaWNvbj8uaXNPdXRsaW5lZFwiPlxyXG4gICAgICAgICAge3tpY29uPy5uYW1lfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInByb2ZpbGUtb3B0aW9uLWljb25cIiBbc3ZnSWNvbl09XCJpY29uPy5uYW1lXCI+PC9tYXQtaWNvbj5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAge3sgbGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWVudS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1uYXYtbWVudS9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tZW51L3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW5hdi1tZW51L3NpZGUtbmF2LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBOEIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUN1QjVELDRCQUVDOztJQUR5RCxnTEFBUyx3QkFBaUIsS0FBQztJQUVuRix5QkFBaUY7SUFDakYsK0JBQWdDO0lBQzlCLFlBQ0Y7SUFDRixBQURFLGlCQUFPLEVBQ0w7OztJQVBtRiwwR0FBc0Q7SUFBQyxBQUF4SCxvRUFBK0MsMENBQXlGOztJQUc5RyxlQUFxQjtJQUFyQiw0REFBcUI7SUFFakUsZUFDRjtJQURFLG1EQUNGOzs7SUEyQkUsWUFDRjs7O0lBREUsb0RBQ0Y7OztJQUNFLGdDQUFVO0lBQUEsc0JBQU07SUFBQSxpQkFBVzs7O0lBUzdCLG9DQUEyRTtJQUFBLFlBQXlCO0lBQUEsaUJBQVc7O0lBQXBDLGNBQXlCO0lBQXpCLDJDQUF5Qjs7O0lBR2xHLG9DQUFxQztJQUFBLFlBQXdCO0lBQUEsaUJBQVc7O0lBQW5DLGNBQXdCO0lBQXhCLHlDQUF3Qjs7O0lBUmpFLDZCQUFpQztJQUMvQixnQ0FBMkI7SUFDekIsWUFDRjs7SUFBQSxpQkFBTztJQUlQLEFBRkEsZ0dBQTJFLHlIQUVwRDs7Ozs7OztJQUxyQixlQUNGO0lBREUsaUpBQ0Y7SUFFVyxlQUFzQjtJQUFBLEFBQXRCLHdDQUFzQix5QkFBYTs7O0lBYXhDLHdCQUVlOzs7O0lBSGpCLDZCQUF1RztJQUFsQyx1UEFBUyxpQ0FBdUIsS0FBQztJQUNwRywySEFDdUY7SUFFekYsaUJBQUk7Ozs7O0lBSnlCLDBEQUF1QjtJQUUvQyxjQUFtQztJQUFBLEFBQW5DLHFEQUFtQyxvRkFBK0M7OztJQUtyRix3QkFFZTs7OztJQUhqQiw2QkFBNkY7SUFBbEMsdVBBQVMsaUNBQXVCLEtBQUM7SUFDMUYsMkhBQ3VGO0lBRXpGLGlCQUFJOzs7OztJQUp5Qiw4Q0FBNkI7SUFFckQsY0FBbUM7SUFBQSxBQUFuQyxxREFBbUMsb0ZBQStDOzs7SUFIdkYsQUFORixpR0FBNEIsb0ZBTW5COzs7SUFOVCxpREFZQzs7O0lBT0Qsd0JBRWU7Ozs7SUFQZixrQ0FJRDtJQURHLHlRQUFpQztJQUVuQyw2R0FDdUY7SUFFekYsaUJBQVM7Ozs7O0lBRkosY0FBbUM7SUFBQSxBQUFuQyxxREFBbUMsb0ZBQStDOzs7SUFQckYsQUFkRiwwRUFBaUIsMkVBY1I7OztJQWRULHNDQXdCQzs7O0lBUUQsZ0NBQW9HO0lBQ2xHLFlBQ0Y7SUFBQSxpQkFBTzs7O0lBRjBDLHdGQUFrRDtJQUNqRyxjQUNGO0lBREUsd0VBQ0Y7OztJQUVBLCtCQUF3RTs7O0lBQWxDLGlFQUFzQjs7O0lBRDVELEFBSkYsNEdBQXVCLG1HQUlkOzs7SUFKVCx3RUFNQzs7O0lBUEgsa0ZBQVk7SUFTWixZQUNGOzs7OztJQVZFLG1DQVFDO0lBQ0QsY0FDRjtJQURFLGdFQUNGOztBRDFHRixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBQ3hELFNBQVMsQ0FBVTtJQUNuQixJQUFJLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLElBQWEsUUFBUSxDQUFDLEtBQUs7UUFDekIsOEZBQThGO1FBQzlGLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBeUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVM7WUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRO1lBQ25FLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUM7SUFDN0YsQ0FBQztJQUVELFlBQ1MsaUJBQW9DLEVBQ2xDLFVBQXNCLEVBQ3RCLFNBQTJCO1FBRXBDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUpWLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXBEN0IsaUJBQVksR0FBb0I7WUFDdkMsYUFBYSxFQUFFLE9BQU87WUFDdEIsY0FBYyxFQUFFLE1BQU07WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLHFCQUFxQixFQUFFLEtBQUs7U0FDN0IsQ0FBQTtRQUtELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFVCxnQ0FBMkIsR0FBRyw2QkFBNkIsQ0FBQztRQUVyRSx1REFBdUQ7UUFDdEMsZ0NBQTJCLEdBQUcsY0FBYyxDQUFDO1FBQzdDLGtDQUE2QixHQUFHLFFBQVEsQ0FBQztRQUN6QyxrQ0FBNkIsR0FBRyxrQkFBa0IsQ0FBQTtRQUUxRCw4QkFBeUIsR0FBbUI7WUFDbkQsT0FBTyxFQUFFLElBQUksQ0FBQyw2QkFBNkI7WUFDM0MsVUFBVSxFQUFFLEVBQUU7U0FDZixDQUFBO1FBRVEsMkJBQXNCLEdBQW1CO1lBQ2hELE9BQU8sRUFBRSxJQUFJLENBQUMsMkJBQTJCO1lBQ3pDLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7U0FDM0UsQ0FBQTtRQUVRLDZCQUF3QixHQUFtQjtZQUNsRCxPQUFPLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtZQUN6QyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQzdFLENBQUE7UUFxQkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFpQjtRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUF3QjtRQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFTywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2SixDQUFDO0lBRU8sMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1QsQ0FBQztRQUVELCtDQUErQztRQUMvQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xDLGlEQUFpRDtZQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE9BQU87UUFDVCxDQUFDO1FBQ0QsK0VBQStFO1FBQy9FLElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztxSEFySFUsb0JBQW9CO29FQUFwQixvQkFBb0I7OztZQ1o3QixBQURGLEFBREYsOEJBQWtCLGFBQ2lDLFdBRzlDOztZQUR5RCx3SUFBUyxxQkFBaUIsS0FBQztZQUVuRix5QkFBaUY7WUFDakYsK0JBQWdDO1lBQzlCLFlBQ0Y7WUFDRixBQURFLGlCQUFPLEVBQ0w7WUFFSixpQ0FNQzs7WUFEQyx1SUFBUyxvQkFBZ0IsS0FBQztZQUUxQixnQ0FBVTtZQUFBLHFCQUFJO1lBR3BCLEFBREUsQUFERSxBQURnQixpQkFBVyxFQUNsQixFQUNMLEVBQ0Y7WUFJRixBQURGLEFBREYsZ0NBQW9JLGVBQ2hGLGVBQ3lFO1lBQ3ZILG9FQUVDO1lBT0QsbUNBT0M7OztZQURDLHdJQUFTLG9CQUFnQixLQUFDO1lBRTFCLG9DQUF1QjtZQUFBLHNCQUFLO1lBQUEsaUJBQVc7WUFDdkMscUNBQXVCO1lBQUEsYUFBOEU7WUFFekcsQUFERSxBQUR1RyxpQkFBVyxFQUN6RyxFQUNMO1lBR0osQUFERixnQ0FBNEMsd0JBRXRCO1lBRE4sMEtBQXVCLG9CQUFnQixLQUFDO1lBRXhELEFBRHNCLGlCQUFlLEVBQy9CO1lBQ04sZ0NBQThCO1lBQzVCLG1CQUF5QjtZQUMzQixpQkFBTTtZQUdKLEFBREYsQUFERixnQ0FBcUIscUJBQ2dFLGVBQ3ZEO1lBR3RCLEFBRkYscUVBQW9CLG9FQUVYO1lBR2IsaUJBQU07WUFFSiwwRkFBaUM7WUFXbkMsaUJBQVM7WUFFVCx3Q0FBK0M7WUFDN0MsMkZBMEJDO1lBRUwsQUFERSxpQkFBVyxFQUNQO1lBRU4sd0hBQWdFO1lBWWxFLGlCQUFNLEVBbEc4SDs7O1lBdEI3SCxjQUFxQjtZQUFyQix1Q0FBcUI7WUFDNkQsY0FBc0Q7WUFBdEQsb0dBQXNEO1lBQXZFLEFBQWpFLGlFQUErQyx1Q0FBa0M7O1lBR3BDLGVBQXFCO1lBQXJCLHlEQUFxQjtZQUVqRSxlQUNGO1lBREUsZ0RBQ0Y7WUFPQSxjQUFtRjtZQUFuRiw2R0FBbUY7O1lBUWxDLGVBQTRCO1lBQTVCLHlDQUE0QjtZQUFtQiwwQ0FBNkI7WUFBOUgsd0NBQTBCO1lBRXVCLGVBQXNFO1lBQXRFLHdGQUFzRTtZQUNsSCxjQUFnQjtZQUFoQixxQ0FBZ0I7WUFhbEIsY0FBbUY7WUFDbkYsQUFEQSw2R0FBbUYsdUZBQ1g7O1lBSWpELGVBQThFO1lBQTlFLGtHQUE4RTtZQUtoRCxlQUF1QjtZQUM1RSxBQUQrRixBQUExQyx5Q0FBdUIsMEJBQXdDLHNCQUNuRztZQU1XLGVBQTBCO1lBQTFCLDRDQUEwQjtZQUV0RCxlQUlDO1lBSkQsNENBSUM7WUFHWSxlQUFnQjtZQUFoQixxQ0FBZ0I7WUFjL0IsZUEwQkM7WUExQkQsMkNBMEJDOzs7aUZEM0ZNLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLG1CQUFtQjswR0FPaEIsUUFBUTtrQkFBcEIsS0FBSztZQU1HLFlBQVk7a0JBQXBCLEtBQUs7WUFTRyxXQUFXO2tCQUFuQixLQUFLOztrRkFsQkssb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9NU2VydmljZSwgUGxhdXNpYmxlRXZlbnQsIFJlc29sdXRpb25IZWxwZXIgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBTdHJhcGlMaW5rU2VydmljZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LXN0cmFwaSc7XHJcbmltcG9ydCB7IE5hdkJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9uYXYtYmFzZS9uYXYtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaWRlTmF2U2V0dGluZ3MgfSBmcm9tICcuL21vZGVscy9zaWRlLW5hdi1zZXR0aW5ncy5tb2RlbCc7XHJcbmltcG9ydCB7IE1lbnVJdGVtc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZW51LWl0ZW1zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyTWVudU9wdGlvbkxpbmsgfSBmcm9tICcuL21vZGVscy91c2VyLW1lbnUtb3B0aW9uLWxpbmsubW9kZWwnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpZGUtbmF2LW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zaWRlLW5hdi1tZW51LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVOYXZNZW51Q29tcG9uZW50IGV4dGVuZHMgTmF2QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAjdXNlcm5hbWUhOiBzdHJpbmc7XHJcbiAgZ2V0IHVzZXJuYW1lKCkgeyByZXR1cm4gdGhpcy4jdXNlcm5hbWU7IH1cclxuICBASW5wdXQoKSBzZXQgdXNlcm5hbWUodmFsdWUpIHtcclxuICAgIC8vIGlmIHVzZXJuYW1lIGlzIHBhc3NlZCB3aGl0aCB3aGl0ZXNwYWNlIGluIGJlZ2dpbmluaW5nLCBpdCBicmVha3MgVUksIHNvIHRyaW0gaXQgZm9yIHNhZmV0eS5cclxuICAgIHRoaXMuI3VzZXJuYW1lID0gdmFsdWUudHJpbSgpO1xyXG4gICAgdGhpcy5zZXRVc2VySW5pdGlhbHMoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG1lbnVTZXR0aW5nczogU2lkZU5hdlNldHRpbmdzID0ge1xyXG4gICAgZXhwYW5kZWRXaWR0aDogJzI0MXB4JyxcclxuICAgIGNvbGxhcHNlZFdpZHRoOiAnNTZweCcsXHJcbiAgICBtZW51TG9nbzogJycsXHJcbiAgICBtZW51TG9nb0NvbGxhcHNlZDogJycsXHJcbiAgICBkaXNhYmxlU3RyYXBpOiBmYWxzZSxcclxuICAgIGRpc2FibGVMb2dvTmF2aWdhdGlvbjogZmFsc2VcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHByb2R1Y3ROYW1lITogc3RyaW5nO1xyXG5cclxuICB1c2VySW5pdGlhbHMhOiBzdHJpbmc7XHJcbiAgY29sbGFwc2VkID0gZmFsc2U7XHJcblxyXG4gIHJlYWRvbmx5IENPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSA9IFwiVExEX01FTlVfU0lERV9OQVZfQ09MTEFQU0VEXCI7XHJcblxyXG4gIC8vI3JlZ2lvbiBQbGF1c2libGUgZXZlbnQgdmFyaWFibGVzIGZvciBjb2xsYXBzZSBidXR0b25cclxuICBwcml2YXRlIHJlYWRvbmx5IENPTExBUFNFX1BMQVVTSUJMRV9FVkVOVF9JRCA9IFwiY29sbGFwc2VNZW51XCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBDT0xMQVBTRV9QTEFVU0lCTEVfQUNUSU9OX0tFWSA9IFwiYWN0aW9uXCI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBMT0dPQ0xJQ0tfUExBVVNJQkxFX0FDVElPTl9JRCA9IFwidGlsZGVfbG9nb19jbGlja1wiXHJcblxyXG4gIHJlYWRvbmx5IExPR09DTElDS19QTEFVU0lCTEVfRVZFTlQ6IFBsYXVzaWJsZUV2ZW50ID0ge1xyXG4gICAgZXZlbnRJZDogdGhpcy5MT0dPQ0xJQ0tfUExBVVNJQkxFX0FDVElPTl9JRCxcclxuICAgIHByb3BlcnRpZXM6IFtdXHJcbiAgfVxyXG5cclxuICByZWFkb25seSBFWFBBTkRfUExBVVNJQkxFX0VWRU5UOiBQbGF1c2libGVFdmVudCA9IHtcclxuICAgIGV2ZW50SWQ6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UX0lELFxyXG4gICAgcHJvcGVydGllczogW3sga2V5OiB0aGlzLkNPTExBUFNFX1BMQVVTSUJMRV9BQ1RJT05fS0VZLCB2YWx1ZTogXCJleHBhbmRcIiB9XVxyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UOiBQbGF1c2libGVFdmVudCA9IHtcclxuICAgIGV2ZW50SWQ6IHRoaXMuQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UX0lELFxyXG4gICAgcHJvcGVydGllczogW3sga2V5OiB0aGlzLkNPTExBUFNFX1BMQVVTSUJMRV9BQ1RJT05fS0VZLCB2YWx1ZTogXCJjb2xsYXBzZVwiIH1dXHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICByZWFkb25seSBiYXNlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCBtZW51TG9nb0ltYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWRcclxuICAgICAgPyB0aGlzLm1lbnVTZXR0aW5ncy5tZW51TG9nb0NvbGxhcHNlZCA/PyB0aGlzLm1lbnVTZXR0aW5ncy5tZW51TG9nb1xyXG4gICAgICA6IHRoaXMubWVudVNldHRpbmdzLm1lbnVMb2dvO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNpZGVOYXZXaWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkID8gdGhpcy5tZW51U2V0dGluZ3MuY29sbGFwc2VkV2lkdGggOiB0aGlzLm1lbnVTZXR0aW5ncy5leHBhbmRlZFdpZHRoO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc3RyYXBpTGlua1NlcnZpY2U6IFN0cmFwaUxpbmtTZXJ2aWNlLFxyXG4gICAgcmVhZG9ubHkgZG9tU2VydmljZTogRE9NU2VydmljZSxcclxuICAgIHJlYWRvbmx5IG1lbnVJdGVtczogTWVudUl0ZW1zU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKG1lbnVJdGVtcyk7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSBtZW51SXRlbXMubWVudVNoYXJlZENvbmZpZy5iYXNlVXJsIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5nZXRDb2xhcHNlZEZyb21Mb2NhbFN0b3JhZ2UoKTtcclxuICAgIHRoaXMuc2V0VXNlckluaXRpYWxzKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RyYXBpTGlua1NlcnZpY2Uuc3RyYXBpTGlua0NsaWNrKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUNvbGxhcHNlKCkge1xyXG4gICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpO1xyXG4gIH1cclxuXHJcbiAgbGlua0NhbGxiYWNrKGxpbms6IFVzZXJNZW51T3B0aW9uTGluaykge1xyXG4gICAgaWYgKGxpbmsuY2FsbGJhY2spIHtcclxuICAgICAgbGluay5jYWxsYmFjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb2xhcHNlZEZyb21Mb2NhbFN0b3JhZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29sbGFwc2VkID0gKHRoaXMuZG9tU2VydmljZS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkNPTExBUFNFRF9MT0NBTF9TVE9SQUdFX0tFWSkgPT0gJ3RydWUnIHx8IFJlc29sdXRpb25IZWxwZXIuaXNNb2JpbGVSZXMoKSkgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbGFwc2VkRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuICAgIGlmICghdGhpcy5kb21TZXJ2aWNlLmxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRvbVNlcnZpY2UubG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DT0xMQVBTRURfTE9DQUxfU1RPUkFHRV9LRVksIHRoaXMuY29sbGFwc2VkLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVc2VySW5pdGlhbHMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudXNlcm5hbWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGRpc3BsYXlpbmcgZmlyc3QgbGV0dGVycyBvZiBuYW1lIGFuZCBzdXJuYW1lXHJcbiAgICBjb25zdCBzcGxpdHRlZFVzZXJuYW1lID0gdGhpcy51c2VybmFtZS5zcGxpdCgnICcpO1xyXG4gICAgaWYgKHNwbGl0dGVkVXNlcm5hbWUubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUgd29yZCwgdXNlIHRoZSBmaXJzdCBsZXR0ZXJcclxuICAgICAgdGhpcy51c2VySW5pdGlhbHMgPSBzcGxpdHRlZFVzZXJuYW1lWzBdWzBdO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBJZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSB3b3JkLCB1c2UgdGhlIGZpcnN0IGxldHRlciBvZiB0aGUgZmlyc3QgdHdvIG5hbWVzXHJcbiAgICB0aGlzLnVzZXJJbml0aWFscyA9IHNwbGl0dGVkVXNlcm5hbWVbMF1bMF0gKyBzcGxpdHRlZFVzZXJuYW1lWzFdWzBdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGZ4SGlkZS5ndC14cz5cclxuICA8ZGl2IFtmeEhpZGVdPVwiIWNvbGxhcHNlZFwiIGNsYXNzPVwibW9iaWxlLWhlYWRlclwiPlxyXG4gICAgPGEgW2xpYlBsYXVzaWJsZUV2ZW50XT1cIkxPR09DTElDS19QTEFVU0lCTEVfRVZFTlRcIiBmeEZsZXg9XCIzLjEyNWVtXCIgW2hyZWZdPVwiYmFzZVVybFwiIFtjbGFzcy5uby1jbGlja109XCJtZW51U2V0dGluZ3M/LmRpc2FibGVMb2dvTmF2aWdhdGlvblwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ01FTlUuQVJJQV9MQUJFTFMuTE9HTycgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwibG9nb0NsaWNrKCRldmVudClcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPGltZyBoZWlnaHQ9XCI0MFwiIHdpZHRoPVwiNDBcIiBjbGFzcz1cIm1lbnUtbG9nb1wiIFtzcmNdPVwibWVudUxvZ29JbWFnZVwiIGFsdD1cImxvZ29cIiAvPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtcHJvZHVjdC1uYW1lXCI+XHJcbiAgICAgICAge3sgcHJvZHVjdE5hbWUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9hPlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwidG9nZ2xlclwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FSSUFfTEFCRUxTLk1FTlVfVE9HR0xFUicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICBbbGliUGxhdXNpYmxlRXZlbnRdPVwiY29sbGFwc2VkID8gRVhQQU5EX1BMQVVTSUJMRV9FVkVOVCA6IENPTExBUFNFX1BMQVVTSUJMRV9FVkVOVFwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBbbmdDbGFzcy5sdC1zbV09XCInbW9iaWxlJ1wiIGNsYXNzPVwibWVudS1jb250YWluZXJcIiBbc3R5bGUud2lkdGhdPVwic2lkZU5hdldpZHRoXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBbY2xhc3MuY29sbGFwc2VkXT1cImNvbGxhcHNlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZsZXhGaWxsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGFpbmVyLWhlYWRlclwiIGZ4TGF5b3V0PVwicm93XCIgW2Z4TGF5b3V0QWxpZ25dPVwiY29sbGFwc2VkID8gJ2NlbnRlciBjZW50ZXInIDogJ3NwYWNlLWJldHdlZW4gY2VudGVyJ1wiPlxyXG4gICAgICA8YSAqbmdJZj1cIiFjb2xsYXBzZWRcIiBbbGliUGxhdXNpYmxlRXZlbnRdPVwiTE9HT0NMSUNLX1BMQVVTSUJMRV9FVkVOVFwiIGZ4RmxleD1cIjMuMTI1ZW1cIiBbY2xhc3Mubm8tY2xpY2tdPVwibWVudVNldHRpbmdzPy5kaXNhYmxlTG9nb05hdmlnYXRpb25cIiBbaHJlZl09XCJiYXNlVXJsXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNRU5VLkFSSUFfTEFCRUxTLkxPR08nIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImxvZ29DbGljaygkZXZlbnQpXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW1nIGhlaWdodD1cIjQwXCIgd2lkdGg9XCI0MFwiIGNsYXNzPVwibWVudS1sb2dvXCIgW3NyY109XCJtZW51TG9nb0ltYWdlXCIgYWx0PVwibG9nb1wiIC8+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LXByb2R1Y3QtbmFtZVwiPlxyXG4gICAgICAgICAge3sgcHJvZHVjdE5hbWUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBjbGFzcz1cInRvZ2dsZXJcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FSSUFfTEFCRUxTLk1FTlVfVE9HR0xFUicgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtsaWJQbGF1c2libGVFdmVudF09XCJjb2xsYXBzZWQgPyBFWFBBTkRfUExBVVNJQkxFX0VWRU5UIDogQ09MTEFQU0VfUExBVVNJQkxFX0VWRU5UXCJcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCIoY29sbGFwc2VkID8gJ01FTlUuRVhQQU5EJyA6ICdNRU5VLkNPTExBUFNFJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiBmeEhpZGUuZ3QteHM+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDxtYXQtaWNvbiBmeEhpZGUubHQtc20+e3sgY29sbGFwc2VkID8gJ2tleWJvYXJkX2RvdWJsZV9hcnJvd19yaWdodCcgOiAna2V5Ym9hcmRfZG91YmxlX2Fycm93X2xlZnQnIH19PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS13cmFwcGVyXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgICAgPG1lbnUtY29sdW1ucyAodG9nZ2xlQ29sbGFwc2VFdmVudCk9XCJ0b2dnbGVDb2xsYXBzZSgpXCIgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIiByb2xlPVwibmF2aWdhdGlvblwiIFtpc09wZW5dPVwiIWNvbGxhcHNlZFwiXHJcbiAgICAgICAgW2FjdGl2ZV09XCJhY3RpdmVcIj48L21lbnUtY29sdW1ucz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInByb2ZpbGVcIj5cclxuICAgIDxidXR0b24gI3N0YXRlPVwibWF0TWVudVRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwicHJvZmlsZS13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWljb25cIj5cclxuICAgICAgICBAaWYgKHVzZXJJbml0aWFscykge1xyXG4gICAgICAgICAge3t1c2VySW5pdGlhbHN9fVxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPG1hdC1pY29uPnBlcnNvbjwvbWF0LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHJvZmlsZS1uYW1lXCI+XHJcbiAgICAgICAgICB7eyB1c2VybmFtZSA/PyAnTUVOVS5BTk9OWU1PVVMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdGF0ZS5tZW51T3BlbjsgZWxzZSBpY29uRG93blwiIGNsYXNzPVwicHJvZmlsZS1hcnJvdyBzcGluXCI+e3tcImtleWJvYXJkX2Fycm93X2Rvd25cIn19PC9tYXQtaWNvbj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNpY29uRG93bj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInByb2ZpbGUtYXJyb3cgc3BpblwiPnt7XCJrZXlib2FyZF9hcnJvd191cFwiIH19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cInByb2ZpbGUtbWVudVwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIG1lbnVTZXR0aW5ncy51c2VyT3B0aW9uczsgdHJhY2sgaXRlbS5sYWJlbCkge1xyXG4gICAgICAgIEBpZiAoaXRlbS5saW5rKSB7XHJcbiAgICAgICAgICBAaWYgKGl0ZW0ubGluay5pc0V4dGVybmFsKSB7XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwibWF0LW1kYy1tZW51LWl0ZW1cIiBbaHJlZl09XCJpdGVtLmxpbmsuaHJlZlwiIHRhcmdldD1cIl9ibGFua1wiIChjbGljayk9XCJsaW5rQ2FsbGJhY2soaXRlbS5saW5rKVwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvZmlsZU1lbnVJdGVtOyBjb250ZXh0OiB7IGljb246IGl0ZW0uaWNvbiwgbGFiZWw6IGl0ZW0ubGFiZWwgfVwiPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXQtbWRjLW1lbnUtaXRlbVwiIFtyb3V0ZXJMaW5rXT1cIml0ZW0ubGluay5ocmVmXCIgKGNsaWNrKT1cImxpbmtDYWxsYmFjayhpdGVtLmxpbmspXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9maWxlTWVudUl0ZW07IGNvbnRleHQ6IHsgaWNvbjogaXRlbS5pY29uLCBsYWJlbDogaXRlbS5sYWJlbCB9XCI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICBjbGFzcz1cInByb2ZpbGUtb3B0aW9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW0uYnV0dG9uPy5jYWxsYmFjaygpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvZmlsZU1lbnVJdGVtOyBjb250ZXh0OiB7IGljb246IGl0ZW0uaWNvbiwgbGFiZWw6IGl0ZW0ubGFiZWwgfVwiPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICA8L21hdC1tZW51PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3Byb2ZpbGVNZW51SXRlbSBsZXQtaWNvbj1cImljb25cIiBsZXQtbGFiZWw9XCJsYWJlbFwiPlxyXG4gICAgQGlmIChpY29uKSB7XHJcbiAgICAgIEBpZiAoIWljb24/LmlzQ3VzdG9tKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBwcm9maWxlLW9wdGlvbi1pY29uXCIgW2NsYXNzLm1hdGVyaWFsLWljb25zLW91dGxpbmVkXT1cImljb24/LmlzT3V0bGluZWRcIj5cclxuICAgICAgICAgIHt7aWNvbj8ubmFtZX19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwcm9maWxlLW9wdGlvbi1pY29uXCIgW3N2Z0ljb25dPVwiaWNvbj8ubmFtZVwiPjwvbWF0LWljb24+XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==