ng-miam 9.3.13 → 9.3.15
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/ng-miam.umd.js +301 -261
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +1 -1
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_web-components/meals-planner/meals-planner.component.js +65 -7
- package/esm2015/lib/_web-components/recipe-cards/recipe-card/recipe-card.component.js +146 -159
- package/esm2015/lib/_web-components/recipe-tags/recipe-tags.component.js +21 -32
- package/esm2015/lib/environments/environment.js +3 -3
- package/esm2015/lib/environments/environment.prod.js +3 -3
- package/esm2015/lib/environments/version.js +2 -2
- package/fesm2015/ng-miam.js +233 -200
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts +1 -0
- package/lib/_web-components/meals-planner/meals-planner.component.d.ts.map +1 -1
- package/lib/_web-components/recipe-tags/recipe-tags.component.d.ts +0 -1
- package/lib/_web-components/recipe-tags/recipe-tags.component.d.ts.map +1 -1
- package/lib/environments/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -15,14 +15,14 @@ import * as i6 from "../../recipe-pricing/recipe-pricing.component";
|
|
|
15
15
|
import * as i7 from "../recipe-card-cta/recipe-card-cta.component";
|
|
16
16
|
import * as i8 from "../../../_components/icon/icon.component";
|
|
17
17
|
function RecipeCardComponent_div_1_div_7_ng_miam_like_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
-
i0.ɵɵelement(0, "ng-miam-like-button",
|
|
18
|
+
i0.ɵɵelement(0, "ng-miam-like-button", 33);
|
|
19
19
|
} if (rf & 2) {
|
|
20
|
-
const
|
|
21
|
-
i0.ɵɵproperty("recipe",
|
|
20
|
+
const ctx_r14 = i0.ɵɵnextContext(3);
|
|
21
|
+
i0.ɵɵproperty("recipe", ctx_r14.recipe)("originTrace", ctx_r14.eventTrace);
|
|
22
22
|
} }
|
|
23
23
|
function RecipeCardComponent_div_1_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
-
i0.ɵɵelementStart(0, "div",
|
|
25
|
-
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_div_7_ng_miam_like_button_1_Template, 1, 2, "ng-miam-like-button",
|
|
24
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
25
|
+
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_div_7_ng_miam_like_button_1_Template, 1, 2, "ng-miam-like-button", 28);
|
|
26
26
|
i0.ɵɵpipe(2, "async");
|
|
27
27
|
i0.ɵɵelementEnd();
|
|
28
28
|
} if (rf & 2) {
|
|
@@ -30,236 +30,221 @@ function RecipeCardComponent_div_1_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
30
30
|
i0.ɵɵadvance(1);
|
|
31
31
|
i0.ɵɵproperty("ngIf", !ctx_r2.displayLikesBottom && i0.ɵɵpipeBind1(2, 1, ctx_r2.userService.isLogged$));
|
|
32
32
|
} }
|
|
33
|
-
function
|
|
34
|
-
i0.ɵɵelement(0, "
|
|
33
|
+
function RecipeCardComponent_div_1_div_9_img_1_Template(rf, ctx) { if (rf & 1) {
|
|
34
|
+
i0.ɵɵelement(0, "img", 37);
|
|
35
35
|
} }
|
|
36
|
-
function
|
|
37
|
-
i0.ɵɵ
|
|
38
|
-
i0.ɵɵelement(1, "img", 36);
|
|
39
|
-
i0.ɵɵelementEnd();
|
|
40
|
-
} if (rf & 2) {
|
|
41
|
-
const ctx_r15 = i0.ɵɵnextContext(3);
|
|
42
|
-
i0.ɵɵadvance(1);
|
|
43
|
-
i0.ɵɵproperty("src", ctx_r15.recipe.sponsorLogoUrl, i0.ɵɵsanitizeUrl)("alt", "Logo du sponsor " + ctx_r15.recipe.sponsorName);
|
|
36
|
+
function RecipeCardComponent_div_1_div_9_img_2_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
i0.ɵɵelement(0, "img", 38);
|
|
44
38
|
} }
|
|
45
|
-
function
|
|
46
|
-
i0.ɵɵelementStart(0, "div",
|
|
47
|
-
i0.ɵɵtemplate(1,
|
|
48
|
-
i0.ɵɵtemplate(2,
|
|
39
|
+
function RecipeCardComponent_div_1_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
41
|
+
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_div_9_img_1_Template, 1, 0, "img", 35);
|
|
42
|
+
i0.ɵɵtemplate(2, RecipeCardComponent_div_1_div_9_img_2_Template, 1, 0, "img", 36);
|
|
49
43
|
i0.ɵɵelementEnd();
|
|
50
44
|
} if (rf & 2) {
|
|
51
45
|
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
46
|
+
i0.ɵɵproperty("ngClass", ctx_r3.isDrink ? "drink" : "food");
|
|
52
47
|
i0.ɵɵadvance(1);
|
|
53
|
-
i0.ɵɵproperty("ngIf", !ctx_r3.
|
|
48
|
+
i0.ɵɵproperty("ngIf", !ctx_r3.isDrink);
|
|
54
49
|
i0.ɵɵadvance(1);
|
|
55
|
-
i0.ɵɵproperty("ngIf", ctx_r3.
|
|
56
|
-
} }
|
|
57
|
-
function RecipeCardComponent_div_1_div_9_ng_miam_recipe_promotion_badge_1_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
-
i0.ɵɵelement(0, "ng-miam-recipe-promotion-badge");
|
|
50
|
+
i0.ɵɵproperty("ngIf", ctx_r3.isDrink);
|
|
59
51
|
} }
|
|
60
|
-
function
|
|
61
|
-
i0.ɵɵ
|
|
62
|
-
|
|
63
|
-
function RecipeCardComponent_div_1_div_9_img_3_Template(rf, ctx) { if (rf & 1) {
|
|
64
|
-
i0.ɵɵelement(0, "img", 41);
|
|
65
|
-
} }
|
|
66
|
-
function RecipeCardComponent_div_1_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
-
i0.ɵɵelementStart(0, "div", 37);
|
|
68
|
-
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_div_9_ng_miam_recipe_promotion_badge_1_Template, 1, 0, "ng-miam-recipe-promotion-badge", 33);
|
|
69
|
-
i0.ɵɵtemplate(2, RecipeCardComponent_div_1_div_9_img_2_Template, 1, 0, "img", 38);
|
|
70
|
-
i0.ɵɵtemplate(3, RecipeCardComponent_div_1_div_9_img_3_Template, 1, 0, "img", 39);
|
|
52
|
+
function RecipeCardComponent_div_1_div_10_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
+
i0.ɵɵelementStart(0, "div", 39);
|
|
54
|
+
i0.ɵɵelement(1, "img", 40);
|
|
71
55
|
i0.ɵɵelementEnd();
|
|
72
56
|
} if (rf & 2) {
|
|
73
57
|
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
74
|
-
i0.ɵɵproperty("ngClass", ctx_r4.isDrink ? "drink" : "food");
|
|
75
|
-
i0.ɵɵadvance(1);
|
|
76
|
-
i0.ɵɵproperty("ngIf", ctx_r4.isInPromotion);
|
|
77
58
|
i0.ɵɵadvance(1);
|
|
78
|
-
i0.ɵɵproperty("
|
|
79
|
-
i0.ɵɵadvance(1);
|
|
80
|
-
i0.ɵɵproperty("ngIf", ctx_r4.isDrink);
|
|
59
|
+
i0.ɵɵproperty("src", ctx_r4.recipe.sponsorLogoUrl, i0.ɵɵsanitizeUrl)("alt", "Logo du sponsor " + ctx_r4.recipe.sponsorName);
|
|
81
60
|
} }
|
|
82
|
-
function
|
|
83
|
-
i0.ɵɵ
|
|
61
|
+
function RecipeCardComponent_div_1_ng_miam_recipe_promotion_badge_11_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
+
i0.ɵɵelement(0, "ng-miam-recipe-promotion-badge");
|
|
63
|
+
} }
|
|
64
|
+
function RecipeCardComponent_div_1_div_21_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
84
66
|
i0.ɵɵtext(1);
|
|
85
67
|
i0.ɵɵelementEnd();
|
|
86
68
|
} if (rf & 2) {
|
|
87
|
-
const
|
|
69
|
+
const ctx_r17 = i0.ɵɵnextContext(3);
|
|
88
70
|
i0.ɵɵadvance(1);
|
|
89
|
-
i0.ɵɵtextInterpolate1(" + ",
|
|
71
|
+
i0.ɵɵtextInterpolate1(" + ", ctx_r17.recipe.modifiedIngredients.length - 2, " ");
|
|
90
72
|
} }
|
|
91
|
-
function
|
|
92
|
-
const
|
|
93
|
-
i0.ɵɵelementStart(0, "div",
|
|
94
|
-
i0.ɵɵelementStart(1, "div",
|
|
95
|
-
i0.ɵɵelementStart(2, "img",
|
|
96
|
-
i0.ɵɵlistener("error", function
|
|
73
|
+
function RecipeCardComponent_div_1_div_21_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
75
|
+
i0.ɵɵelementStart(0, "div", 41);
|
|
76
|
+
i0.ɵɵelementStart(1, "div", 42);
|
|
77
|
+
i0.ɵɵelementStart(2, "img", 43);
|
|
78
|
+
i0.ɵɵlistener("error", function RecipeCardComponent_div_1_div_21_Template_img_error_2_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(2); return ($event.target["src"] = ctx_r18.contextService.defaultIngredientPicture); });
|
|
97
79
|
i0.ɵɵelementEnd();
|
|
98
80
|
i0.ɵɵelementEnd();
|
|
99
|
-
i0.ɵɵelementStart(3, "div",
|
|
100
|
-
i0.ɵɵelementStart(4, "img",
|
|
101
|
-
i0.ɵɵlistener("error", function
|
|
81
|
+
i0.ɵɵelementStart(3, "div", 42);
|
|
82
|
+
i0.ɵɵelementStart(4, "img", 43);
|
|
83
|
+
i0.ɵɵlistener("error", function RecipeCardComponent_div_1_div_21_Template_img_error_4_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r20 = i0.ɵɵnextContext(2); return ($event.target["src"] = ctx_r20.contextService.defaultIngredientPicture); });
|
|
102
84
|
i0.ɵɵelementEnd();
|
|
103
85
|
i0.ɵɵelementEnd();
|
|
104
|
-
i0.ɵɵtemplate(5,
|
|
86
|
+
i0.ɵɵtemplate(5, RecipeCardComponent_div_1_div_21_div_5_Template, 2, 1, "div", 44);
|
|
105
87
|
i0.ɵɵelementEnd();
|
|
106
88
|
} if (rf & 2) {
|
|
107
|
-
const
|
|
108
|
-
i0.ɵɵattribute("aria-label",
|
|
89
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
90
|
+
i0.ɵɵattribute("aria-label", ctx_r6.getIngredientsAriaLabel());
|
|
109
91
|
i0.ɵɵadvance(2);
|
|
110
|
-
i0.ɵɵproperty("src",
|
|
92
|
+
i0.ɵɵproperty("src", ctx_r6.ingredientPicture(ctx_r6.recipe.modifiedIngredients[0]), i0.ɵɵsanitizeUrl)("alt", "");
|
|
111
93
|
i0.ɵɵadvance(2);
|
|
112
|
-
i0.ɵɵproperty("src",
|
|
94
|
+
i0.ɵɵproperty("src", ctx_r6.ingredientPicture(ctx_r6.recipe.modifiedIngredients[1]), i0.ɵɵsanitizeUrl)("alt", "");
|
|
113
95
|
i0.ɵɵadvance(1);
|
|
114
|
-
i0.ɵɵproperty("ngIf",
|
|
96
|
+
i0.ɵɵproperty("ngIf", ctx_r6.recipe.modifiedIngredients.length > 2);
|
|
115
97
|
} }
|
|
116
|
-
function
|
|
117
|
-
i0.ɵɵelementStart(0, "div",
|
|
118
|
-
i0.ɵɵelement(1, "img",
|
|
119
|
-
i0.ɵɵelementStart(2, "span",
|
|
98
|
+
function RecipeCardComponent_div_1_div_24_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelementStart(0, "div", 49);
|
|
100
|
+
i0.ɵɵelement(1, "img", 50);
|
|
101
|
+
i0.ɵɵelementStart(2, "span", 51);
|
|
120
102
|
i0.ɵɵtext(3);
|
|
121
103
|
i0.ɵɵelementEnd();
|
|
122
104
|
i0.ɵɵelementEnd();
|
|
123
105
|
} if (rf & 2) {
|
|
124
|
-
const
|
|
125
|
-
i0.ɵɵattribute("aria-label", "Difficult\u00E9: " +
|
|
106
|
+
const ctx_r21 = i0.ɵɵnextContext(3);
|
|
107
|
+
i0.ɵɵattribute("aria-label", "Difficult\u00E9: " + ctx_r21.recipeService.difficultyLevels[ctx_r21.recipe.difficulty - 1].label);
|
|
126
108
|
i0.ɵɵadvance(3);
|
|
127
|
-
i0.ɵɵtextInterpolate(
|
|
109
|
+
i0.ɵɵtextInterpolate(ctx_r21.recipeService.difficultyLevels[ctx_r21.recipe.difficulty - 1].label);
|
|
128
110
|
} }
|
|
129
|
-
function
|
|
130
|
-
i0.ɵɵelementStart(0, "div",
|
|
131
|
-
i0.ɵɵelement(1, "img",
|
|
132
|
-
i0.ɵɵelementStart(2, "span",
|
|
111
|
+
function RecipeCardComponent_div_1_div_24_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
+
i0.ɵɵelementStart(0, "div", 52);
|
|
113
|
+
i0.ɵɵelement(1, "img", 53);
|
|
114
|
+
i0.ɵɵelementStart(2, "span", 51);
|
|
133
115
|
i0.ɵɵtext(3);
|
|
134
116
|
i0.ɵɵelementEnd();
|
|
135
117
|
i0.ɵɵelementEnd();
|
|
136
118
|
} if (rf & 2) {
|
|
137
|
-
const
|
|
138
|
-
i0.ɵɵattribute("aria-label", "Temps de pr\u00E9paration: " +
|
|
119
|
+
const ctx_r22 = i0.ɵɵnextContext(3);
|
|
120
|
+
i0.ɵɵattribute("aria-label", "Temps de pr\u00E9paration: " + ctx_r22.recipe.totalTime);
|
|
139
121
|
i0.ɵɵadvance(3);
|
|
140
|
-
i0.ɵɵtextInterpolate(
|
|
122
|
+
i0.ɵɵtextInterpolate(ctx_r22.recipe.totalTime);
|
|
141
123
|
} }
|
|
142
|
-
function
|
|
143
|
-
i0.ɵɵelementStart(0, "div",
|
|
144
|
-
i0.ɵɵtemplate(1,
|
|
145
|
-
i0.ɵɵtemplate(2,
|
|
124
|
+
function RecipeCardComponent_div_1_div_24_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
+
i0.ɵɵelementStart(0, "div", 46);
|
|
126
|
+
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_div_24_div_1_Template, 4, 2, "div", 47);
|
|
127
|
+
i0.ɵɵtemplate(2, RecipeCardComponent_div_1_div_24_div_2_Template, 4, 2, "div", 48);
|
|
146
128
|
i0.ɵɵelementEnd();
|
|
147
129
|
} if (rf & 2) {
|
|
148
|
-
const
|
|
130
|
+
const ctx_r7 = i0.ɵɵnextContext(2);
|
|
149
131
|
i0.ɵɵadvance(1);
|
|
150
|
-
i0.ɵɵproperty("ngIf",
|
|
132
|
+
i0.ɵɵproperty("ngIf", ctx_r7.recipe.difficulty);
|
|
151
133
|
i0.ɵɵadvance(1);
|
|
152
|
-
i0.ɵɵproperty("ngIf",
|
|
134
|
+
i0.ɵɵproperty("ngIf", ctx_r7.recipe.totalTime);
|
|
153
135
|
} }
|
|
154
|
-
function
|
|
155
|
-
i0.ɵɵelement(0, "ng-miam-recipe-promotion-badge",
|
|
136
|
+
function RecipeCardComponent_div_1_ng_miam_recipe_promotion_badge_26_Template(rf, ctx) { if (rf & 1) {
|
|
137
|
+
i0.ɵɵelement(0, "ng-miam-recipe-promotion-badge", 54);
|
|
156
138
|
} }
|
|
157
|
-
function
|
|
158
|
-
const
|
|
159
|
-
i0.ɵɵelementStart(0, "div",
|
|
160
|
-
i0.ɵɵelementStart(1, "ng-miam-recipe-pricing",
|
|
161
|
-
i0.ɵɵlistener("priceSet", function
|
|
139
|
+
function RecipeCardComponent_div_1_div_27_Template(rf, ctx) { if (rf & 1) {
|
|
140
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
141
|
+
i0.ɵɵelementStart(0, "div", 55);
|
|
142
|
+
i0.ɵɵelementStart(1, "ng-miam-recipe-pricing", 56);
|
|
143
|
+
i0.ɵɵlistener("priceSet", function RecipeCardComponent_div_1_div_27_Template_ng_miam_recipe_pricing_priceSet_1_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return ctx_r23.updateIsInPromotion($event); });
|
|
162
144
|
i0.ɵɵelementEnd();
|
|
163
145
|
i0.ɵɵelementEnd();
|
|
164
146
|
} if (rf & 2) {
|
|
165
|
-
const
|
|
147
|
+
const ctx_r9 = i0.ɵɵnextContext(2);
|
|
166
148
|
i0.ɵɵadvance(1);
|
|
167
|
-
i0.ɵɵproperty("recipeId",
|
|
149
|
+
i0.ɵɵproperty("recipeId", ctx_r9.recipe.id)("serves", ctx_r9.recipe.modifiedGuests || +ctx_r9.recipe.guests)("inViewport", ctx_r9.inViewport);
|
|
168
150
|
} }
|
|
169
|
-
function
|
|
170
|
-
i0.ɵɵelement(0, "ng-miam-like-button",
|
|
151
|
+
function RecipeCardComponent_div_1_ng_miam_like_button_29_Template(rf, ctx) { if (rf & 1) {
|
|
152
|
+
i0.ɵɵelement(0, "ng-miam-like-button", 33);
|
|
171
153
|
} if (rf & 2) {
|
|
172
|
-
const
|
|
173
|
-
i0.ɵɵproperty("recipe",
|
|
154
|
+
const ctx_r10 = i0.ɵɵnextContext(2);
|
|
155
|
+
i0.ɵɵproperty("recipe", ctx_r10.recipe)("originTrace", ctx_r10.eventTrace);
|
|
174
156
|
} }
|
|
175
|
-
function
|
|
176
|
-
const
|
|
177
|
-
i0.ɵɵelementStart(0, "ng-miam-recipe-card-cta",
|
|
178
|
-
i0.ɵɵlistener("displayed", function
|
|
157
|
+
function RecipeCardComponent_div_1_ng_miam_recipe_card_cta_31_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
159
|
+
i0.ɵɵelementStart(0, "ng-miam-recipe-card-cta", 57);
|
|
160
|
+
i0.ɵɵlistener("displayed", function RecipeCardComponent_div_1_ng_miam_recipe_card_cta_31_Template_ng_miam_recipe_card_cta_displayed_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(2); return ctx_r25.displayed.emit(); })("clicked", function RecipeCardComponent_div_1_ng_miam_recipe_card_cta_31_Template_ng_miam_recipe_card_cta_clicked_0_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(2); return ctx_r27.primaryButtonClicked$.emit($event); });
|
|
179
161
|
i0.ɵɵelementEnd();
|
|
180
162
|
} if (rf & 2) {
|
|
181
|
-
const
|
|
182
|
-
i0.ɵɵproperty("recipe",
|
|
163
|
+
const ctx_r11 = i0.ɵɵnextContext(2);
|
|
164
|
+
i0.ɵɵproperty("recipe", ctx_r11.recipe)("previewAllowed", ctx_r11.previewAllowed)("displayGuests", ctx_r11.displayGuests)("helpButtonAllowed", ctx_r11.helpButtonAllowed)("originTrace", ctx_r11.eventTrace);
|
|
183
165
|
} }
|
|
184
|
-
function
|
|
185
|
-
const
|
|
186
|
-
i0.ɵɵelementStart(0, "div",
|
|
187
|
-
i0.ɵɵelementStart(1, "button",
|
|
188
|
-
i0.ɵɵlistener("click", function
|
|
166
|
+
function RecipeCardComponent_div_1_div_32_Template(rf, ctx) { if (rf & 1) {
|
|
167
|
+
const _r29 = i0.ɵɵgetCurrentView();
|
|
168
|
+
i0.ɵɵelementStart(0, "div", 58);
|
|
169
|
+
i0.ɵɵelementStart(1, "button", 59);
|
|
170
|
+
i0.ɵɵlistener("click", function RecipeCardComponent_div_1_div_32_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return ctx_r28.openCatalog.emit(); });
|
|
189
171
|
i0.ɵɵelementStart(2, "span");
|
|
190
|
-
i0.ɵɵi18n(3,
|
|
172
|
+
i0.ɵɵi18n(3, 60);
|
|
191
173
|
i0.ɵɵelementEnd();
|
|
192
174
|
i0.ɵɵelementEnd();
|
|
193
|
-
i0.ɵɵelementStart(4, "button",
|
|
194
|
-
i0.ɵɵlistener("click", function
|
|
195
|
-
i0.ɵɵelement(5, "ng-miam-icon",
|
|
175
|
+
i0.ɵɵelementStart(4, "button", 61);
|
|
176
|
+
i0.ɵɵlistener("click", function RecipeCardComponent_div_1_div_32_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(2); return ctx_r30.removeFromMealsPlanner.emit(); });
|
|
177
|
+
i0.ɵɵelement(5, "ng-miam-icon", 62);
|
|
196
178
|
i0.ɵɵelementEnd();
|
|
197
179
|
i0.ɵɵelementEnd();
|
|
198
180
|
} if (rf & 2) {
|
|
199
|
-
const
|
|
181
|
+
const ctx_r12 = i0.ɵɵnextContext(2);
|
|
200
182
|
i0.ɵɵadvance(5);
|
|
201
|
-
i0.ɵɵproperty("iconName",
|
|
183
|
+
i0.ɵɵproperty("iconName", ctx_r12.icon.Trash);
|
|
202
184
|
} }
|
|
203
|
-
function
|
|
204
|
-
const
|
|
205
|
-
i0.ɵɵelementStart(0, "button",
|
|
206
|
-
i0.ɵɵlistener("click", function
|
|
185
|
+
function RecipeCardComponent_div_1_button_33_Template(rf, ctx) { if (rf & 1) {
|
|
186
|
+
const _r32 = i0.ɵɵgetCurrentView();
|
|
187
|
+
i0.ɵɵelementStart(0, "button", 59);
|
|
188
|
+
i0.ɵɵlistener("click", function RecipeCardComponent_div_1_button_33_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(2); return ctx_r31.addToMealsPlanner.emit(ctx_r31.recipe); });
|
|
207
189
|
i0.ɵɵelementStart(1, "span");
|
|
208
|
-
i0.ɵɵi18n(2,
|
|
190
|
+
i0.ɵɵi18n(2, 63);
|
|
209
191
|
i0.ɵɵelementEnd();
|
|
210
192
|
i0.ɵɵelementEnd();
|
|
211
193
|
} }
|
|
212
194
|
function RecipeCardComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
213
|
-
const
|
|
195
|
+
const _r34 = i0.ɵɵgetCurrentView();
|
|
214
196
|
i0.ɵɵelementStart(0, "div", 2);
|
|
215
|
-
i0.ɵɵlistener("inViewport", function RecipeCardComponent_div_1_Template_div_inViewport_0_listener() { i0.ɵɵrestoreView(
|
|
197
|
+
i0.ɵɵlistener("inViewport", function RecipeCardComponent_div_1_Template_div_inViewport_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(); return ctx_r33.cardInViewport(); });
|
|
216
198
|
i0.ɵɵelementStart(1, "div", 3);
|
|
217
|
-
i0.ɵɵlistener("click", function RecipeCardComponent_div_1_Template_div_click_1_listener() { i0.ɵɵrestoreView(
|
|
199
|
+
i0.ɵɵlistener("click", function RecipeCardComponent_div_1_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r34); const ctx_r35 = i0.ɵɵnextContext(); return ctx_r35.openRecipe(); });
|
|
218
200
|
i0.ɵɵelementStart(2, "div", 4);
|
|
219
201
|
i0.ɵɵelementStart(3, "img", 5);
|
|
220
|
-
i0.ɵɵlistener("error", function RecipeCardComponent_div_1_Template_img_error_3_listener($event) { i0.ɵɵrestoreView(
|
|
202
|
+
i0.ɵɵlistener("error", function RecipeCardComponent_div_1_Template_img_error_3_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r36 = i0.ɵɵnextContext(); return ($event.target["src"] = ctx_r36.contextService.defaultRecipePicture); });
|
|
221
203
|
i0.ɵɵelementEnd();
|
|
222
204
|
i0.ɵɵelementEnd();
|
|
223
205
|
i0.ɵɵelement(4, "div", 6);
|
|
224
206
|
i0.ɵɵelementStart(5, "div", 7);
|
|
225
207
|
i0.ɵɵelementStart(6, "div", 8);
|
|
226
208
|
i0.ɵɵtemplate(7, RecipeCardComponent_div_1_div_7_Template, 3, 3, "div", 9);
|
|
227
|
-
i0.ɵɵ
|
|
228
|
-
i0.ɵɵtemplate(9, RecipeCardComponent_div_1_div_9_Template,
|
|
209
|
+
i0.ɵɵelementStart(8, "div", 10);
|
|
210
|
+
i0.ɵɵtemplate(9, RecipeCardComponent_div_1_div_9_Template, 3, 3, "div", 11);
|
|
211
|
+
i0.ɵɵtemplate(10, RecipeCardComponent_div_1_div_10_Template, 2, 2, "div", 12);
|
|
212
|
+
i0.ɵɵtemplate(11, RecipeCardComponent_div_1_ng_miam_recipe_promotion_badge_11_Template, 1, 0, "ng-miam-recipe-promotion-badge", 13);
|
|
213
|
+
i0.ɵɵelementEnd();
|
|
229
214
|
i0.ɵɵelementEnd();
|
|
230
|
-
i0.ɵɵelementStart(
|
|
231
|
-
i0.ɵɵelementStart(
|
|
232
|
-
i0.ɵɵelementStart(
|
|
233
|
-
i0.ɵɵtext(
|
|
215
|
+
i0.ɵɵelementStart(12, "div", 14);
|
|
216
|
+
i0.ɵɵelementStart(13, "div", 15);
|
|
217
|
+
i0.ɵɵelementStart(14, "span");
|
|
218
|
+
i0.ɵɵtext(15);
|
|
234
219
|
i0.ɵɵelementEnd();
|
|
235
220
|
i0.ɵɵelementEnd();
|
|
236
|
-
i0.ɵɵelementStart(
|
|
237
|
-
i0.ɵɵelementStart(
|
|
238
|
-
i0.ɵɵtext(
|
|
221
|
+
i0.ɵɵelementStart(16, "div", 16);
|
|
222
|
+
i0.ɵɵelementStart(17, "span", 17);
|
|
223
|
+
i0.ɵɵtext(18);
|
|
239
224
|
i0.ɵɵelementEnd();
|
|
240
|
-
i0.ɵɵelement(
|
|
225
|
+
i0.ɵɵelement(19, "img", 18);
|
|
241
226
|
i0.ɵɵelementEnd();
|
|
242
227
|
i0.ɵɵelementEnd();
|
|
243
228
|
i0.ɵɵelementEnd();
|
|
244
229
|
i0.ɵɵelementEnd();
|
|
245
|
-
i0.ɵɵelementStart(18, "div", 17);
|
|
246
|
-
i0.ɵɵlistener("click", function RecipeCardComponent_div_1_Template_div_click_18_listener() { i0.ɵɵrestoreView(_r36); const ctx_r39 = i0.ɵɵnextContext(); return ctx_r39.openRecipe(); });
|
|
247
|
-
i0.ɵɵtemplate(19, RecipeCardComponent_div_1_div_19_Template, 6, 6, "div", 18);
|
|
248
230
|
i0.ɵɵelementStart(20, "div", 19);
|
|
249
|
-
i0.ɵɵ
|
|
250
|
-
i0.ɵɵtemplate(
|
|
231
|
+
i0.ɵɵlistener("click", function RecipeCardComponent_div_1_Template_div_click_20_listener() { i0.ɵɵrestoreView(_r34); const ctx_r37 = i0.ɵɵnextContext(); return ctx_r37.openRecipe(); });
|
|
232
|
+
i0.ɵɵtemplate(21, RecipeCardComponent_div_1_div_21_Template, 6, 6, "div", 20);
|
|
233
|
+
i0.ɵɵelementStart(22, "div", 21);
|
|
251
234
|
i0.ɵɵelementStart(23, "div", 22);
|
|
252
|
-
i0.ɵɵtemplate(24,
|
|
253
|
-
i0.ɵɵ
|
|
235
|
+
i0.ɵɵtemplate(24, RecipeCardComponent_div_1_div_24_Template, 3, 2, "div", 23);
|
|
236
|
+
i0.ɵɵelementStart(25, "div", 24);
|
|
237
|
+
i0.ɵɵtemplate(26, RecipeCardComponent_div_1_ng_miam_recipe_promotion_badge_26_Template, 1, 0, "ng-miam-recipe-promotion-badge", 25);
|
|
238
|
+
i0.ɵɵtemplate(27, RecipeCardComponent_div_1_div_27_Template, 2, 3, "div", 26);
|
|
254
239
|
i0.ɵɵelementEnd();
|
|
255
240
|
i0.ɵɵelementEnd();
|
|
256
|
-
i0.ɵɵelementStart(
|
|
257
|
-
i0.ɵɵtemplate(
|
|
258
|
-
i0.ɵɵpipe(
|
|
259
|
-
i0.ɵɵtemplate(
|
|
241
|
+
i0.ɵɵelementStart(28, "div", 27);
|
|
242
|
+
i0.ɵɵtemplate(29, RecipeCardComponent_div_1_ng_miam_like_button_29_Template, 1, 2, "ng-miam-like-button", 28);
|
|
243
|
+
i0.ɵɵpipe(30, "async");
|
|
244
|
+
i0.ɵɵtemplate(31, RecipeCardComponent_div_1_ng_miam_recipe_card_cta_31_Template, 1, 5, "ng-miam-recipe-card-cta", 29);
|
|
260
245
|
i0.ɵɵelementEnd();
|
|
261
|
-
i0.ɵɵtemplate(
|
|
262
|
-
i0.ɵɵtemplate(
|
|
246
|
+
i0.ɵɵtemplate(32, RecipeCardComponent_div_1_div_32_Template, 6, 1, "div", 30);
|
|
247
|
+
i0.ɵɵtemplate(33, RecipeCardComponent_div_1_button_33_Template, 3, 0, "button", 31);
|
|
263
248
|
i0.ɵɵelementEnd();
|
|
264
249
|
i0.ɵɵelementEnd();
|
|
265
250
|
i0.ɵɵelementEnd();
|
|
@@ -271,10 +256,12 @@ function RecipeCardComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
271
256
|
i0.ɵɵattribute("aria-hidden", true);
|
|
272
257
|
i0.ɵɵadvance(4);
|
|
273
258
|
i0.ɵɵproperty("ngIf", !(ctx_r0.displayBadge && ctx_r0.recipe.sponsorLogoUrl));
|
|
259
|
+
i0.ɵɵadvance(2);
|
|
260
|
+
i0.ɵɵproperty("ngIf", ctx_r0.displayBadge);
|
|
274
261
|
i0.ɵɵadvance(1);
|
|
275
|
-
i0.ɵɵproperty("ngIf",
|
|
262
|
+
i0.ɵɵproperty("ngIf", ctx_r0.recipe.sponsorLogoUrl);
|
|
276
263
|
i0.ɵɵadvance(1);
|
|
277
|
-
i0.ɵɵproperty("ngIf", ctx_r0.
|
|
264
|
+
i0.ɵɵproperty("ngIf", ctx_r0.isInPromotion);
|
|
278
265
|
i0.ɵɵadvance(4);
|
|
279
266
|
i0.ɵɵtextInterpolate(ctx_r0.recipe.attributes["title"]);
|
|
280
267
|
i0.ɵɵadvance(1);
|
|
@@ -290,7 +277,7 @@ function RecipeCardComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
290
277
|
i0.ɵɵadvance(1);
|
|
291
278
|
i0.ɵɵproperty("ngIf", ctx_r0.recipe && ctx_r0.displayPricing);
|
|
292
279
|
i0.ɵɵadvance(2);
|
|
293
|
-
i0.ɵɵproperty("ngIf", ctx_r0.displayLikesBottom && i0.ɵɵpipeBind1(
|
|
280
|
+
i0.ɵɵproperty("ngIf", ctx_r0.displayLikesBottom && i0.ɵɵpipeBind1(30, 19, ctx_r0.userService.isLogged$));
|
|
294
281
|
i0.ɵɵadvance(2);
|
|
295
282
|
i0.ɵɵproperty("ngIf", ctx_r0.previewAllowed && !ctx_r0.addRecipeMode && !ctx_r0.replaceMode);
|
|
296
283
|
i0.ɵɵadvance(1);
|
|
@@ -299,20 +286,20 @@ function RecipeCardComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
299
286
|
i0.ɵɵproperty("ngIf", ctx_r0.addRecipeMode);
|
|
300
287
|
} }
|
|
301
288
|
function RecipeCardComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
302
|
-
const
|
|
289
|
+
const _r39 = i0.ɵɵgetCurrentView();
|
|
303
290
|
i0.ɵɵelementStart(0, "div", 2);
|
|
304
|
-
i0.ɵɵlistener("inViewport", function RecipeCardComponent_div_2_Template_div_inViewport_0_listener() { i0.ɵɵrestoreView(
|
|
305
|
-
i0.ɵɵelementStart(1, "a",
|
|
306
|
-
i0.ɵɵelement(2, "img",
|
|
307
|
-
i0.ɵɵelementStart(3, "div",
|
|
308
|
-
i0.ɵɵelementStart(4, "div",
|
|
291
|
+
i0.ɵɵlistener("inViewport", function RecipeCardComponent_div_2_Template_div_inViewport_0_listener() { i0.ɵɵrestoreView(_r39); const ctx_r38 = i0.ɵɵnextContext(); return ctx_r38.cardInViewport(); });
|
|
292
|
+
i0.ɵɵelementStart(1, "a", 64);
|
|
293
|
+
i0.ɵɵelement(2, "img", 65);
|
|
294
|
+
i0.ɵɵelementStart(3, "div", 66);
|
|
295
|
+
i0.ɵɵelementStart(4, "div", 67);
|
|
309
296
|
i0.ɵɵelementStart(5, "span");
|
|
310
|
-
i0.ɵɵi18n(6,
|
|
297
|
+
i0.ɵɵi18n(6, 68);
|
|
311
298
|
i0.ɵɵelementEnd();
|
|
312
299
|
i0.ɵɵelementEnd();
|
|
313
|
-
i0.ɵɵelementStart(7, "button",
|
|
300
|
+
i0.ɵɵelementStart(7, "button", 69);
|
|
314
301
|
i0.ɵɵelementStart(8, "span");
|
|
315
|
-
i0.ɵɵi18n(9,
|
|
302
|
+
i0.ɵɵi18n(9, 70);
|
|
316
303
|
i0.ɵɵelementEnd();
|
|
317
304
|
i0.ɵɵelementEnd();
|
|
318
305
|
i0.ɵɵelementEnd();
|
|
@@ -583,10 +570,10 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
|
|
|
583
570
|
}
|
|
584
571
|
else {
|
|
585
572
|
i18n_6 = $localize `:␟f51693cf087a834d433fa3835d7b64905fdc57ee␟9008711340501624723:Découvrez nos recettes`;
|
|
586
|
-
} return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-
|
|
573
|
+
} return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], [1, "miam-recipe-card__badges-container"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 4, "ngIf"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 4, "ngIf"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 1, "miam-recipe-card__badge"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 1, "miam-recipe-card__badge"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], ["aria-hidden", "true", 3, "src", "alt", "error"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__difficulty-and-time"], ["class", "miam-recipe-card__difficulty", 4, "ngIf"], ["class", "miam-recipe-card__time", 4, "ngIf"], [1, "miam-recipe-card__difficulty"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/ChefHat.svg", "alt", "", "aria-hidden", "true"], [1, "miam-ds-text", "size-s", "weight-m"], [1, "miam-recipe-card__time"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Clock.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom-promotion"], [1, "miam-recipe-card__price"], [1, "miam-ds-text", "weight-xxl", 3, "recipeId", "serves", "inViewport", "priceSet"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked"], [1, "miam-recipe-card__actions__replace"], [1, "miam-ds-button", "ghost", 3, "click"], i18n_0, ["aria-label", "Supprimer la recette", 1, "miam-ds-button", "ghost", "square", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "iconName"], i18n_2, [1, "miam-recipe-card__redirect", 3, "href"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/Suggestion_Redirect_Background.png", "alt", "D\u00E9couvrez nos recettes"], [1, "miam-recipe-card__redirect__footer"], [1, "miam-recipe-card__redirect__title", "miam-ds-text", "size-l", "weight-xxl"], i18n_4, [1, "miam-recipe-card__redirect__button", "miam-ds-button", "primary"], i18n_6]; }, template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
587
574
|
i0.ɵɵelementStart(0, "div", 0);
|
|
588
575
|
i0.ɵɵlistener("inViewport", function RecipeCardComponent_Template_div_inViewport_0_listener() { return ctx.sendShowEvent(); });
|
|
589
|
-
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_Template,
|
|
576
|
+
i0.ɵɵtemplate(1, RecipeCardComponent_div_1_Template, 34, 21, "div", 1);
|
|
590
577
|
i0.ɵɵtemplate(2, RecipeCardComponent_div_2_Template, 10, 3, "div", 1);
|
|
591
578
|
i0.ɵɵelementEnd();
|
|
592
579
|
} if (rf & 2) {
|
|
@@ -595,7 +582,7 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
|
|
|
595
582
|
i0.ɵɵproperty("ngIf", ctx.recipe);
|
|
596
583
|
i0.ɵɵadvance(1);
|
|
597
584
|
i0.ɵɵproperty("ngIf", ctx.isloaded && !ctx.recipe);
|
|
598
|
-
} }, directives: [i2.InViewportDirective, i3.NgClass, i3.NgIf, i4.LikeButtonComponent, i5.RecipePromotionBadgeComponent, i6.RecipePricingComponent, i7.RecipeCardCtaComponent, i8.IconComponent], pipes: [i3.AsyncPipe], styles: [".miam-recipe-card{position:relative;display:flex;width:var(--m-catalog-card-width,308px);height:500px;flex-direction:column;align-items:flex-start;flex-shrink:0;border-radius:8px;overflow:hidden;cursor:pointer}.miam-recipe-card .miam-recipe-card__container{display:flex;flex-direction:column;height:100%;width:100%;flex-shrink:0;align-self:stretch}.miam-recipe-card .miam-recipe-card__container:hover .miam-recipe-card__top .miam-recipe-card__picture img{transform:scale(1.1)}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top{position:relative;flex:1;height:calc(100% - 72px)}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__picture{width:100%;height:100%;overflow:hidden}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__picture img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .2s}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__gradient{position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(180deg,transparent 43.67%,rgba(0,0,0,.4) 91.33%)}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content{position:absolute;width:100%;height:100%;top:0;left:0;display:flex;flex-direction:column;justify-content:space-between;align-items:stretch}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom{width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding:12px;box-sizing:border-box}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom .miam-recipe-card__title{color:var(--miam-ds-color-neutral-white,#fff);text-shadow:0 2px 8px rgba(0,0,0,.15);text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom .miam-recipe-card__counter{display:flex;padding:4px 8px;align-items:center;gap:4px;border-radius:100px;background:var(--miam-ds-color-neutral-white,#fff);color:var(--miam-color-neutral-black);height:-moz-fit-content;height:fit-content;flex-shrink:0}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom .miam-recipe-card__counter span{line-height:100%}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom .miam-recipe-card__counter img{width:16px;height:16px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container{display:flex;
|
|
585
|
+
} }, directives: [i2.InViewportDirective, i3.NgClass, i3.NgIf, i4.LikeButtonComponent, i5.RecipePromotionBadgeComponent, i6.RecipePricingComponent, i7.RecipeCardCtaComponent, i8.IconComponent], pipes: [i3.AsyncPipe], styles: [".miam-recipe-card{position:relative;display:flex;width:var(--m-catalog-card-width,308px);height:500px;flex-direction:column;align-items:flex-start;flex-shrink:0;border-radius:8px;overflow:hidden;cursor:pointer}.miam-recipe-card .miam-recipe-card__container{display:flex;flex-direction:column;height:100%;width:100%;flex-shrink:0;align-self:stretch}.miam-recipe-card .miam-recipe-card__container:hover .miam-recipe-card__top .miam-recipe-card__picture img{transform:scale(1.1)}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top{position:relative;flex:1;height:calc(100% - 72px)}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__picture{width:100%;height:100%;overflow:hidden}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__picture img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .2s}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__gradient{position:absolute;width:100%;height:100%;top:0;left:0;background:linear-gradient(180deg,transparent 43.67%,rgba(0,0,0,.4) 91.33%)}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content{position:absolute;width:100%;height:100%;top:0;left:0;display:flex;flex-direction:column;justify-content:space-between;align-items:stretch}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom{width:100%;display:flex;justify-content:space-between;align-items:flex-end;padding:12px;box-sizing:border-box}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom .miam-recipe-card__title{color:var(--miam-ds-color-neutral-white,#fff);text-shadow:0 2px 8px rgba(0,0,0,.15);text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom .miam-recipe-card__counter{display:flex;padding:4px 8px;align-items:center;gap:4px;border-radius:100px;background:var(--miam-ds-color-neutral-white,#fff);color:var(--miam-color-neutral-black);height:-moz-fit-content;height:fit-content;flex-shrink:0}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom .miam-recipe-card__counter span{line-height:100%}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__picture__bottom .miam-recipe-card__counter img{width:16px;height:16px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container{display:flex;margin:12px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container .miam-recipe-card__sponsor-container{display:flex;padding:8px 12px;background-color:#fff;border-radius:100px;width:auto;height:auto;box-sizing:border-box}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container .miam-recipe-card__sponsor-container .miam-recipe-card__sponsor-picture{width:auto;height:auto;max-width:80px;max-height:40px;-o-object-fit:contain;object-fit:contain}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container .miam-recipe-card__badge-container,.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container .miam-recipe-card__badges-container{display:flex;flex-direction:column;align-items:flex-start}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container .miam-recipe-card__badge-container>:not(:last-child),.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container .miam-recipe-card__badges-container>:not(:last-child){margin-bottom:4px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container .miam-recipe-card__like .miam-like-button{border-radius:48px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__top .miam-recipe-card__content .miam-recipe-card__top-container .miam-recipe-card__like .miam-like-button.miam-ds-button.primary.reverse.square.small .miam-like-button__icon{height:16px;width:16px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom{display:flex;width:100%;height:72px;flex-direction:column;align-items:flex-start;justify-content:center;box-sizing:border-box;padding:12px;border-radius:0 0 8px 8px;background-color:var(--miam-ds-color-neutral-white,#fff);border-right:1px solid var(--m-color-neutral-200,#d9dde1);border-bottom:1px solid var(--m-color-neutral-200,#d9dde1);border-left:1px solid var(--m-color-neutral-200,#d9dde1)}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions{display:flex;gap:8px;justify-content:space-between;align-items:center;align-self:stretch}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__infos{display:flex;flex-direction:column;align-items:flex-start}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__infos .miam-recipe-card__price-and-promotion .miam-recipe-card__bottom-promotion{display:none}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__cta{display:flex;flex-direction:row;gap:16px;align-items:center}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__difficulty-and-time{display:flex;flex-direction:row;color:var(--miam-ds-color-text-disabled);gap:12px;margin-bottom:4px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__difficulty-and-time .miam-recipe-card__difficulty,.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__difficulty-and-time .miam-recipe-card__time{display:flex}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__difficulty-and-time .miam-recipe-card__difficulty img,.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__difficulty-and-time .miam-recipe-card__time img{margin-right:4px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__price{color:var(--miam-ds-color-primary);line-height:100%;margin-right:4px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__price .miam-recipe-pricing{max-width:70px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__price .miam-recipe-pricing .miam-recipe-pricing__wrapper .miam-recipe-pricing__wrapper__subline{color:rgba(31,53,67,.5);font-weight:500;line-height:100%}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__bottom .miam-recipe-card__actions .miam-recipe-card__actions__replace{display:flex;flex:1;justify-content:space-between;align-items:center}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect{display:flex;flex-direction:column;justify-content:flex-end;flex:1;border-radius:8px;border:1px solid var(--m-color-neutral-200,#d9dde1);box-sizing:border-box;text-decoration:unset}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect img{height:100%;-o-object-fit:cover;object-fit:cover}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect .miam-recipe-card__redirect__footer{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:16px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect .miam-recipe-card__redirect__footer .miam-recipe-card__redirect__button{margin-top:16px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect .miam-recipe-card__redirect__footer .miam-recipe-card__redirect__button span{font-size:14px;font-weight:700;line-height:16px}@media (max-width:1023px){.miam-recipe-card.redirect-card{width:80vw;height:188px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect{flex-direction:row;height:100%}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect img{content:url(https://storage.googleapis.com/assets.miam.tech/generic/images/Suggestion_Redirect_Background_Mobile.png);height:136%;margin:-22px -16px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect .miam-recipe-card__redirect__footer{min-width:156px}.miam-recipe-card .miam-recipe-card__container .miam-recipe-card__redirect .miam-recipe-card__redirect__footer .miam-recipe-card__redirect__title{font-size:16px}}"], encapsulation: 2, changeDetection: 0 });
|
|
599
586
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RecipeCardComponent, [{
|
|
600
587
|
type: Component,
|
|
601
588
|
args: [{
|
|
@@ -646,4 +633,4 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
|
|
|
646
633
|
}], hide: [{
|
|
647
634
|
type: Output
|
|
648
635
|
}] }); })();
|
|
649
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7SUNRbkMsMENBS3NCOzs7SUFGcEIsdUNBQWlCLG1DQUFBOzs7SUFKdkIsK0JBQXFGO0lBQ2pGLGlIQUtzQjs7SUFDMUIsaUJBQU07OztJQUxDLGVBQTREO0lBQTVELHVHQUE0RDs7O0lBUWpFLGlE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QixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNJLG1CQUFtQjtrQkFBNUIsTUFBTTtZQUNHLFNBQVM7a0JBQWxCLE1BQU07WUFDRyxzQkFBc0I7a0JBQS9CLE1BQU07WUFDRyxpQkFBaUI7a0JBQTFCLE1BQU07WUFDRyxXQUFXO2tCQUFwQixNQUFNO1lBQ0csSUFBSTtrQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBza2lwLCBza2lwV2hpbGUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFRyYWNlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9ldmVudC10cmFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlY2lwZSwgU2ltcGxpZmllZEluZ3JlZGllbnQgfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UsIEJhc2tldHNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSwgUmVjaXBlc1NlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFJlY2lwZVByaWNpbmcgfSBmcm9tICcuLi8uLi8uLi9fbW9kZWxzL3JlY2lwZS1wcmljaW5nJztcblxuY29uc3QgcmVjaXBlSW5jbHVkZXMgPSBbJ3JlY2lwZS1wcm92aWRlcicsICdzcG9uc29ycycsICd0YWdzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnbnVtYmVyLW9mLWd1ZXN0cycsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ2RpZmZpY3VsdHknLCAncHJlcGFyYXRpb24tdGltZScsICdjb29raW5nLXRpbWUnLFxuICAgICdyZXN0aW5nLXRpbWUnLCAuLi5yZWNpcGVJbmNsdWRlc10sXG4gIHNwb25zb3JzOiBbJ2xvZ28tdXJsJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnXSxcbiAgJ3JlY2lwZS1wcm92aWRlcic6IFsnbmFtZSddXG59O1xuXG4vKipcbiAqIFRoaXMgaXMgYW4gYW5ndWxhciBjb21wb25lbnQgZGVzaWduIHRvIGJlIGEgd2ViIGNvbXBvbmVudFxuICogdGhhdCdzIHdoeSB3ZSB1c2Ugb25QdXNoU3RyYXRlZ2llIHdpdGggdGhlIGNoYW5nZURldGV0ZWN0b3JSZWZcbiAqIHRvIGF2b2lkIGNvbW1vbiBpc3N1ZVxuICogZ3VpZGUgLT4gaHR0cHM6Ly9uZXRiYXNhbC5jb20vYS1jb21wcmVoZW5zaXZlLWd1aWRlLXRvLWFuZ3VsYXItb25wdXNoLWNoYW5nZS1kZXRlY3Rpb24tc3RyYXRlZ3ktNWJhYzQ5MzA3NGE0XG4gKiBhbmQgYWxzb3cgd2UgdXNlIFNoYWRvd0RvbSB0byBwcm90ZWN0IHN0eWxlIG9mIG91ciBjb21wb25lbnRcbiAqIGFuZCBhbHNvdyBzdHlsZSBvZiB0aGUgcGFyZW50IGFwbGljYXRpb24gdGhhdCB3aWxsIHVzZSBpdFxuICogZG9jIC0+IGh0dHBzOi8vYW5ndWxhci5pby9hcGkvY29yZS9WaWV3RW5jYXBzdWxhdGlvblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBSZWNpcGVDYXJkQ29tcG9uZW50IGV4dGVuZHMgRXZlbnRUcmFjZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcmVjaXBlSWQ6IHN0cmluZztcbiAgQElucHV0KCkgcmVjaXBlOiBSZWNpcGU7XG4gIEBJbnB1dCgpIHJhbmRvbU1vZGVFbmFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHByb2R1Y3RJZHM6IHsgaWQ6IHN0cmluZzsgaGFzSGlnaFdlaWdodD86IGJvb2xlYW4gfVtdO1xuICBASW5wdXQoKSBwcmV2aWV3QWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGhlbHBCdXR0b25BbGxvd2VkID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlzcGxheUluZm9zID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXlQcmljaW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlzcGxheUd1ZXN0cyA9IHRydWU7XG4gIEBJbnB1dCgpIGFkZFJlY2lwZU1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVwbGFjZU1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheVZhcmlhbnQgPSAxO1xuICBASW5wdXQoKSBjb250ZXh0SWQ6IHN0cmluZztcbiAgQElucHV0KCkgc2VydmVzPzogbnVtYmVyOyAvLyBvdmVycmlkZSB0aGUgZGVmYXVsdCBudW1iZXIgb2Ygc2VydmluZ3Mgb2YgdGhlIHJlY2lwZVxuICBAT3V0cHV0KCkgcmVtb3ZlZEZyb21GYXZvcml0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSByZW1vdmVGcm9tTWVhbHNQbGFubmVyID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xuICBAT3V0cHV0KCkgYWRkVG9NZWFsc1BsYW5uZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwZT4oKTtcbiAgQE91dHB1dCgpIG9wZW5DYXRhbG9nID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xuICBAT3V0cHV0KCkgaGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBpY29uID0gSWNvbjtcbiAgYWN0aW9uc09wZW5lZCA9IGZhbHNlO1xuICBpc2xvYWRlZCA9IGZhbHNlO1xuICBpbkJhc2tldCA9IGZhbHNlO1xuICBpblZpZXdwb3J0ID0gZmFsc2U7XG4gIGlzRHJpbmsgPSBmYWxzZTtcbiAgaXNJblByb21vdGlvbiA9IGZhbHNlO1xuXG4gIGRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICBkaXNwbGF5QmFkZ2UgPSBmYWxzZTtcblxuICBwcml2YXRlIGJhc2tldFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByaW1hcnlCdXR0b25DbGlja2VkJCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZWNpcGVTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwdWJsaWMgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHVibGljIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UuZGlzcGxheWVkUmVjaXBlQ2hhbmdlZCQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSkpO1xuICAgIFxuICAgIGlmICh0aGlzLmNvbnRleHRJZCkge1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb1N1Z2dlc3Rpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5VmFyaWFudCgpO1xuICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgdGhpcy5hZnRlclJlY2lwZUxvYWQodGhpcy5yZWNpcGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWNpcGVJZCkge1xuICAgICAgdGhpcy5sb2FkUmVjaXBlRnJvbUlkKCk7XG4gICAgfSBlbHNlIGlmIChzaW1wbGVDaGFuZ2VzLnByb2R1Y3RJZHMgJiYgIXRoaXMucmFuZG9tTW9kZUVuYWJsZSAmJiB0aGlzLmNvbnRleHRJZCkge1xuICAgICAgdGhpcy5yZWdpc3RlclN1Z2dlc3Rpb25Db250ZXh0KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJhbmRvbU1vZGVFbmFibGUpIHtcbiAgICAgIHRoaXMuZmV0Y2hSYW5kb21SZWNpcGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXQkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UucmVsb2FkUmVjaXBlcyQuc3Vic2NyaWJlKHNob3VsZFJlbG9hZCA9PiB7XG4gICAgICBpZiAoc2hvdWxkUmVsb2FkKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBDSEVDSyBESVNQTEFZIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICB1cGRhdGVEaXNwbGF5VmFyaWFudCgpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlzcGxheVZhcmlhbnQpIHtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5kaXNwbGF5QmFkZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAzOlxuICAgICAgICB0aGlzLmRpc3BsYXlCYWRnZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpa2VzQm90dG9tID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZGlzcGxheUJhZGdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpa2VzQm90dG9tID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gRElTUExBWSBSRUNJUEUgREVUQUlMUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgb3BlblJlY2lwZSgpOiB2b2lkIHtcbiAgICAvLyBjb25zdCB2aWRlb0V2ZW50ID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlLnZpZGVvSWQ7XG4gICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmRpc3BsYXlPYmplY3QoXG4gICAgICB0aGlzLnJlY2lwZSxcbiAgICAgIHtcbiAgICAgICAgcHJldmlld0FsbG93ZWQ6IHRoaXMucHJldmlld0FsbG93ZWQsXG4gICAgICAgIGd1ZXN0czogdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMsXG4gICAgICAgIGRpc3BsYXlHdWVzdHM6IHRoaXMuZGlzcGxheUd1ZXN0cyxcbiAgICAgICAgaGVscEJ1dHRvbkFsbG93ZWQ6IHRoaXMuaGVscEJ1dHRvbkFsbG93ZWRcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuZGlzcGxheWVkLmVtaXQoKTtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ3JlY2lwZS5kaXNwbGF5JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZS5pZCxcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMub3JpZ2luVHJhY2UucHJvcHMuY2F0ZWdvcnlfaWRcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBESVNQTEFZIFJFQ0lQRSBERVRBSUxTIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICBpbmdyZWRpZW50UGljdHVyZShpbmdyZWRpZW50OiBTaW1wbGlmaWVkSW5ncmVkaWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGluZ3JlZGllbnQucGljdHVyZSB8fCB0aGlzLmNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgZm9yIGFjY2Vzc2liaWxpdHlcbiAgZ2V0SW5ncmVkaWVudHNBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucmVjaXBlPy5tb2RpZmllZEluZ3JlZGllbnRzIHx8IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGZpcnN0VHdvID0gdGhpcy5yZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5zbGljZSgwLCAyKS5tYXAoaSA9PiBpLm5hbWUpLmpvaW4oJywgJyk7XG5cbiAgICBpZiAodGhpcy5yZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggPD0gMikge1xuICAgICAgcmV0dXJuICdJbmdyw6lkaWVudHMgcHJpbmNpcGF1eDogJyArIGZpcnN0VHdvO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvdGhlcnNDb3VudCA9IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMjtcbiAgICAgIHJldHVybiAnSW5ncsOpZGllbnRzIHByaW5jaXBhdXg6ICcgKyBmaXJzdFR3byArICcgZXQgJyArIG90aGVyc0NvdW50ICsgJyBhdXRyZXMnO1xuICAgIH1cbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU0hPVyBFVkVOVCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgc2VuZFNob3dFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ3JlY2lwZS5zaG93JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZS5pZCxcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMub3JpZ2luVHJhY2UucHJvcHMuY2F0ZWdvcnlfaWRcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2FyZEluVmlld3BvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5pblZpZXdwb3J0ID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB1cGRhdGVJc0luUHJvbW90aW9uKGZldGNoZWRQcmljZTogUmVjaXBlUHJpY2luZykge1xuICAgIHRoaXMuaXNJblByb21vdGlvbiA9IGZldGNoZWRQcmljZVsnZGlzY291bnRlZC1pbmdyZWRpZW50cy1jb3VudCddID4gMDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEZFVENIIFRIRSBSRUNJUEUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIC8qKlxuICAgKiBGZXRjaCBhIHJlY2lwZSBmcm9tIGl0cyBpZC5cbiAgICogSGlkZSB0aGUgY2FyZCBpZiBub25lIGlzIHJldHVybmVkIChjb3VsZCBiZSBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0cyBvciBpdCBpcyBub3Qgc2hhcmVkIHdpdGggdGhlIHN1cHBsaWVyKVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkUmVjaXBlRnJvbUlkKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmdldCh0aGlzLnJlY2lwZUlkLCB7IGluY2x1ZGU6IHJlY2lwZUluY2x1ZGVzLCBmaWVsZHM6IHJlY2lwZVNwYXJzZUZpZWxkcyB9KS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBSZWNpcGUpID0+IHtcbiAgICAgICAgdGhpcy5hZnRlclJlY2lwZUxvYWQocmVzdWx0KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qXG4gICogU3Vic2NyaWJlIHRvIGNvbnRleHQgc3VnZ2VzdGlvbnM7IGhpZGUgY2FyZCBpZiBub25lXG4gICovXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9TdWdnZXN0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMucmVjaXBlU2VydmljZS5vYnNlcnZlU3VnZ2VzdGlvbih0aGlzLmNvbnRleHRJZCkucGlwZShcbiAgICAgICAgc2tpcCgxKVxuICAgICAgKS5zdWJzY3JpYmUoKHN1Z2dlc3Rpb246IFJlY2lwZSkgPT4ge1xuICAgICAgICBpZiAoc3VnZ2VzdGlvbikge1xuICAgICAgICAgIHRoaXMuYWZ0ZXJSZWNpcGVMb2FkKHN1Z2dlc3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNsb2FkZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFmdGVyUmVjaXBlTG9hZChyZXN1bHQ6IFJlY2lwZSk6IHZvaWQge1xuICAgIHRoaXMucmVjaXBlID0gcmVzdWx0O1xuICAgIHRoaXMudXBkYXRlR3Vlc3RzSWZOZWNlc3NhcnkoKTtcbiAgICB0aGlzLmNoZWNrUmVjaXBlSW5CYXNrZXQoKTtcbiAgICB0aGlzLmNoZWNrSXNEcmluaygpO1xuICAgIHRoaXMuaXNsb2FkZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hSYW5kb21SZWNpcGUoKTogT2JzZXJ2YWJsZTxSZWNpcGVbXT4ge1xuICAgIHJldHVybiB0aGlzLnJlY2lwZVNlcnZpY2UuZ2V0UmFuZG9tKHJlY2lwZUluY2x1ZGVzLCByZWNpcGVTcGFyc2VGaWVsZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBndWVzdHMgZnJvbSB0aGUgdmFsdWUgaW4gdGhlIGJhc2tldCBpZiB0aGUgcmVjaXBlIGlzIGluIHRoZSBiYXNrZXRcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlR3Vlc3RzSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0luQmFza2V0KHRoaXMucmVjaXBlLmlkKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShpc0luTGlzdCA9PiB7XG4gICAgICBpZiAoaXNJbkxpc3QgJiYgIXRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzKSB7XG4gICAgICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gdGhpcy5zZXJ2ZXMgfHwgdGhpcy5iYXNrZXRzU2VydmljZS5ndWVzdHNGb3JSZWNpcGUodGhpcy5yZWNpcGUuaWQpIHx8ICt0aGlzLnJlY2lwZS5ndWVzdHM7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgICB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9IHRoaXMuc2VydmVzIHx8ICt0aGlzLnJlY2lwZS5ndWVzdHM7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1JlY2lwZUluQmFza2V0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5iYXNrZXRTdWJzY3JpcHRpb24gJiYgdGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMuYmFza2V0U3Vic2NyaXB0aW9uID0gdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0luQmFza2V0KHRoaXMucmVjaXBlLmlkKS5zdWJzY3JpYmUoaW5CYXNrZXQgPT4ge1xuICAgICAgICB0aGlzLmluQmFza2V0ID0gaW5CYXNrZXQ7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRTdWJzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tJc0RyaW5rKCk6IHZvaWQge1xuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLnJlY2lwZT8ucmVsYXRpb25zaGlwcy50YWdzPy5kYXRhIHx8IFtdO1xuICAgIHRoaXMuaXNEcmluayA9IHRhZ3Muc29tZSh0YWcgPT4gWydtZWFsX3R5cGVfYm9pc3NvbicsICdtZWFsX3R5cGVfY29ja3RhaWwnXS5pbmNsdWRlcyh0YWcuaWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgcmVjaXBlIHN1Z2dlc3Rpb24gY29udGV4dCB3aXRoIHByb2R1Y3QgSURzIGZvciBiYXRjaCBwcm9jZXNzaW5nXG4gICAqL1xuICBwcml2YXRlIHJlZ2lzdGVyU3VnZ2VzdGlvbkNvbnRleHQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRleHRJZCB8fCAhdGhpcy5wcm9kdWN0SWRzIHx8IHRoaXMucHJvZHVjdElkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlY2lwZVNlcnZpY2UucXVldWVTdWdnZXN0aW9uQ29udGV4dCh7XG4gICAgICBjb250ZXh0SWQ6IHRoaXMuY29udGV4dElkLFxuICAgICAgaXRlbUV4dElkczogdGhpcy5wcm9kdWN0SWRzLm1hcChwcm9kdWN0ID0+IHByb2R1Y3QuaWQpXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkXCIgbmdNaWFtSW5WaWV3cG9ydCBbY29uZGl0aW9uXT1cIiEhcmVjaXBlXCIgKGluVmlld3BvcnQpPVwic2VuZFNob3dFdmVudCgpXCJcbiAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3ZhcmlhbnQtMSc6IChkaXNwbGF5VmFyaWFudCAhPT0gMiAmJiBkaXNwbGF5VmFyaWFudCAhPT0gMyksXG4gICAgICAndmFyaWFudC0yJzogKGRpc3BsYXlWYXJpYW50ID09PSAyKSxcbiAgICAgICd2YXJpYW50LTMnOiAoZGlzcGxheVZhcmlhbnQgPT09IDMpLFxuICAgICAgJ2luLWJhc2tldCc6IGluQmFza2V0LFxuICAgICAgJ3JlZGlyZWN0LWNhcmQnOiBpc2xvYWRlZCAmJiAhcmVjaXBlXG4gICAgICB9XCI+XG4gIDwhLS0gTUFJTiBDT05UQUlORVIgLS0+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250YWluZXJcIiAqbmdJZj1cInJlY2lwZVwiXG4gICAgICAgbmdNaWFtSW5WaWV3cG9ydCBbdGhyZXNob2xkXT1cIjBcIiBbZGVib3VuY2VUaW1lXT1cIjBcIiAoaW5WaWV3cG9ydCk9XCJjYXJkSW5WaWV3cG9ydCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RvcFwiIChjbGljayk9XCJvcGVuUmVjaXBlKClcIj5cbiAgICAgIDwhLS0gUElDVFVSRSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBbc3JjXT1cInJlY2lwZT8uYXR0cmlidXRlc1snbWVkaWEtdXJsJ11cIlxuICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRSZWNpcGVQaWN0dXJlXCJcbiAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgW2FsdF09XCJcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gR1JBRElFTlQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZ3JhZGllbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190b3AtY29udGFpbmVyXCI+XG4gICAgICAgICAgPCEtLSBMSUtFIEJVVFRPTiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fbGlrZVwiICpuZ0lmPVwiIShkaXNwbGF5QmFkZ2UgJiYgcmVjaXBlLnNwb25zb3JMb2dvVXJsKVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1saWtlLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRpc3BsYXlMaWtlc0JvdHRvbSAmJiAodXNlclNlcnZpY2UuaXNMb2dnZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX2ljb25cIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIj5cbiAgICAgICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIWRpc3BsYXlCYWRnZSAmJiBpc0luUHJvbW90aW9uKSB8fCByZWNpcGUuc3BvbnNvckxvZ29VcmxcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX3Nwb25zb19hbmRfcHJvbW9fYmFkZ2VcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcm9tb3Rpb24tYmFkZ2UgKm5nSWY9XCIhZGlzcGxheUJhZGdlICYmIGlzSW5Qcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gU1BPTlNPUiAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuc3BvbnNvckxvZ29VcmxcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3Nwb25zb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19zcG9uc29yLXBpY3R1cmVcIiBbc3JjXT1cInJlY2lwZS5zcG9uc29yTG9nb1VybFwiIFthbHRdPVwiJ0xvZ28gZHUgc3BvbnNvciAnICsgcmVjaXBlLnNwb25zb3JOYW1lXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIE1FQUwgLyBEUklOSyBJREVBIEJBREdFIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5QmFkZ2VcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImlzRHJpbmsgPyAnZHJpbmsnIDogJ2Zvb2QnXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlICpuZ0lmPVwiaXNJblByb21vdGlvblwiPjwvbmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFpc0RyaW5rXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaW1hZ2VzL3JlY2lwZV9jYXJkLWJhZGdlLnN2Z1wiXG4gICAgICAgICAgICAgICAgIGFsdD1cIklkw6llIHJlcGFzXCI+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXNEcmlua1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYmFkZ2VcIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zLzkuMC9yZWNpcGUtY2FyZC1iYWRnZS1kcmlua3Muc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiSWTDqWUgYm9pc3NvblwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX2JvdHRvbVwiPlxuICAgICAgICAgIDwhLS0gVElUTEUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RpdGxlIG1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgcmVjaXBlLmF0dHJpYnV0ZXNbJ3RpdGxlJ10gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBDT1VOVEVSIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb3VudGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUG91ciAnICsgKHJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fCByZWNpcGUuZ3Vlc3RzKSArICcgcGVyc29ubmVzJ1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bCBzaXplLW1cIj57eyByZWNpcGUubW9kaWZpZWRHdWVzdHMgfHwgcmVjaXBlLmd1ZXN0cyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9yZWNpcGUtY291bnRlci5zdmdcIiBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIENBUkQgRk9PVEVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19ib3R0b21cIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY29udGV4dFNlcnZpY2UuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgcmVjaXBlPy5tb2RpZmllZEluZ3JlZGllbnRzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZXNcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEluZ3JlZGllbnRzQXJpYUxhYmVsKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5ncmVkaWVudHNfX3BpY3R1cmVcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImluZ3JlZGllbnRQaWN0dXJlKHJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzWzBdKVwiXG4gICAgICAgICAgICBbYWx0XT1cIicnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1sxXSlcIlxuICAgICAgICAgICAgW2FsdF09XCInJ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwiJGV2ZW50LnRhcmdldFsnc3JjJ10gPSBjb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmVcIlxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fbW9yZVwiICpuZ0lmPVwicmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID4gMlwiPlxuICAgICAgICAgICsge3sgcmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNcIj5cbiAgICAgICAgPCEtLSBJTkZPUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9zXCI+XG4gICAgICAgICAgPCEtLSBUSU1FIEFORCBESUZGSUNVTFRZIC0tPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUluZm9zICYmIChyZWNpcGUuZGlmZmljdWx0eSB8fCByZWNpcGUudG90YWxUaW1lKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2RpZmZpY3VsdHktYW5kLXRpbWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuZGlmZmljdWx0eVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZGlmZmljdWx0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RpZmZpY3VsdMOpOiAnICsgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0NoZWZIYXQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWRzLXRleHQgc2l6ZS1zIHdlaWdodC1tXCI+e3sgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUudG90YWxUaW1lXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190aW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInVGVtcHMgZGUgcHLDqXBhcmF0aW9uOiAnICsgcmVjaXBlLnRvdGFsVGltZVwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQ2xvY2suc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQtbVwiPnt7IHJlY2lwZS50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcHJpY2UtYW5kLXByb21vdGlvblwiPlxuICAgICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZSAqbmdJZj1cImlzSW5Qcm9tb3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JvdHRvbS1wcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gUFJJQ0UgLS0+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlICYmIGRpc3BsYXlQcmljaW5nXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19wcmljZVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1kcy10ZXh0IHdlaWdodC14eGxcIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGUuaWRcIlxuICAgICAgICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8ICtyZWNpcGUuZ3Vlc3RzXCJcbiAgICAgICAgICAgICAgICBbaW5WaWV3cG9ydF09XCJpblZpZXdwb3J0XCJcbiAgICAgICAgICAgICAgICAocHJpY2VTZXQpPVwidXBkYXRlSXNJblByb21vdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ1RBIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY3RhXCI+XG4gICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxpa2VzQm90dG9tICYmICh1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luYylcIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZC1jdGFcbiAgICAgICAgICAgICpuZ0lmPVwicHJldmlld0FsbG93ZWQgJiYgIWFkZFJlY2lwZU1vZGUgJiYgIXJlcGxhY2VNb2RlXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPVwicmVjaXBlXCJcbiAgICAgICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCJwcmV2aWV3QWxsb3dlZFwiXG4gICAgICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgICAgIFtoZWxwQnV0dG9uQWxsb3dlZF09XCJoZWxwQnV0dG9uQWxsb3dlZFwiXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICAoZGlzcGxheWVkKT1cImRpc3BsYXllZC5lbWl0KClcIlxuICAgICAgICAgICAgKGNsaWNrZWQpPVwicHJpbWFyeUJ1dHRvbkNsaWNrZWQkLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1yZWNpcGUtY2FyZC1jdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIE9QVElPTk5BTCBDVEFTIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicmVwbGFjZU1vZGVcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX3JlcGxhY2VcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1kcy1idXR0b24gZ2hvc3RcIiAoY2xpY2spPVwib3BlbkNhdGFsb2cuZW1pdCgpXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPkNoYW5nZXI8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0IHNxdWFyZVwiIChjbGljayk9XCJyZW1vdmVGcm9tTWVhbHNQbGFubmVyLmVtaXQoKVwiIGFyaWEtbGFiZWw9XCJTdXBwcmltZXIgbGEgcmVjZXR0ZVwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5UcmFzaFwiIHByaW1hcnlDb2xvcj1cInZhcigtLW0tY29sb3ItcHJpbWFyeSlcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhZGRSZWNpcGVNb2RlXCIgY2xhc3M9XCJtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIChjbGljayk9XCJhZGRUb01lYWxzUGxhbm5lci5lbWl0KHJlY2lwZSlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkFqb3V0ZXI8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEdFTkVSSUMgQ0FSRCAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRhaW5lclwiICpuZ0lmPVwiaXNsb2FkZWQgJiYgIXJlY2lwZVwiXG4gICAgICAgbmdNaWFtSW5WaWV3cG9ydCBbdGhyZXNob2xkXT1cIjBcIiBbZGVib3VuY2VUaW1lXT1cIjBcIiAoaW5WaWV3cG9ydCk9XCJjYXJkSW5WaWV3cG9ydCgpXCI+XG4gICAgPGEgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdFwiIFtocmVmXT1cImNvbnRleHRTZXJ2aWNlLmNhdGFsb2dVcmxcIj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvU3VnZ2VzdGlvbl9SZWRpcmVjdF9CYWNrZ3JvdW5kLnBuZ1wiIGFsdD1cIkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX2Zvb3RlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX3RpdGxlIG1pYW0tZHMtdGV4dCBzaXplLWwgd2VpZ2h0LXh4bFwiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+QmVzb2luIGQnaW5zcGlyYXRpb24gPzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdF9fYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
636
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7SUNRbkMsMENBS3NCOzs7SUFGcEIsdUNBQWlCLG1DQUFBOzs7SUFKdkIsK0JBQXFGO0lBQ2pGLGlIQUtzQjs7SUFDMUIsaUJBQU07OztJQUxDLGVBQTREO0lBQTVELHVHQUE0RDs7O0lBUy9ELDBC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WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDSSxtQkFBbUI7a0JBQTVCLE1BQU07WUFDRyxTQUFTO2tCQUFsQixNQUFNO1lBQ0csc0JBQXNCO2tCQUEvQixNQUFNO1lBQ0csaUJBQWlCO2tCQUExQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLElBQUk7a0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc2tpcCwgc2tpcFdoaWxlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fY29tcG9uZW50cy9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGUsIFNpbXBsaWZpZWRJbmdyZWRpZW50IH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBCYXNrZXRzU2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlLCBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9yZWNpcGUtcHJpY2luZyc7XG5cbmNvbnN0IHJlY2lwZUluY2x1ZGVzID0gWydyZWNpcGUtcHJvdmlkZXInLCAnc3BvbnNvcnMnLCAndGFncyddO1xuY29uc3QgcmVjaXBlU3BhcnNlRmllbGRzID0ge1xuICByZWNpcGVzOiBbJ3RpdGxlJywgJ251bWJlci1vZi1ndWVzdHMnLCAnbWVkaWEtdXJsJywgJ3ZpZGVvLWlkJywgJ2ZpbGlncmFuZS1sb2dvLXVybCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJyxcbiAgICAncmVzdGluZy10aW1lJywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBzcG9uc29yczogWydsb2dvLXVybCddLFxuICB0YWdzOiBbJ3RhZy10eXBlLWlkJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuLyoqXG4gKiBUaGlzIGlzIGFuIGFuZ3VsYXIgY29tcG9uZW50IGRlc2lnbiB0byBiZSBhIHdlYiBjb21wb25lbnRcbiAqIHRoYXQncyB3aHkgd2UgdXNlIG9uUHVzaFN0cmF0ZWdpZSB3aXRoIHRoZSBjaGFuZ2VEZXRldGVjdG9yUmVmXG4gKiB0byBhdm9pZCBjb21tb24gaXNzdWVcbiAqIGd1aWRlIC0+IGh0dHBzOi8vbmV0YmFzYWwuY29tL2EtY29tcHJlaGVuc2l2ZS1ndWlkZS10by1hbmd1bGFyLW9ucHVzaC1jaGFuZ2UtZGV0ZWN0aW9uLXN0cmF0ZWd5LTViYWM0OTMwNzRhNFxuICogYW5kIGFsc293IHdlIHVzZSBTaGFkb3dEb20gdG8gcHJvdGVjdCBzdHlsZSBvZiBvdXIgY29tcG9uZW50XG4gKiBhbmQgYWxzb3cgc3R5bGUgb2YgdGhlIHBhcmVudCBhcGxpY2F0aW9uIHRoYXQgd2lsbCB1c2UgaXRcbiAqIGRvYyAtPiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0VuY2Fwc3VsYXRpb25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2FyZENvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBASW5wdXQoKSByYW5kb21Nb2RlRW5hYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBwcm9kdWN0SWRzOiB7IGlkOiBzdHJpbmc7IGhhc0hpZ2hXZWlnaHQ/OiBib29sZWFuIH1bXTtcbiAgQElucHV0KCkgcHJldmlld0FsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBhZGRSZWNpcGVNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcGxhY2VNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXlWYXJpYW50ID0gMTtcbiAgQElucHV0KCkgY29udGV4dElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlcnZlcz86IG51bWJlcjsgLy8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIHNlcnZpbmdzIG9mIHRoZSByZWNpcGVcbiAgQE91dHB1dCgpIHJlbW92ZWRGcm9tRmF2b3JpdGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlzcGxheWVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlRnJvbU1lYWxzUGxhbm5lciA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcbiAgQE91dHB1dCgpIGFkZFRvTWVhbHNQbGFubmVyID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGU+KCk7XG4gIEBPdXRwdXQoKSBvcGVuQ2F0YWxvZyA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcbiAgQE91dHB1dCgpIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaWNvbiA9IEljb247XG4gIGFjdGlvbnNPcGVuZWQgPSBmYWxzZTtcbiAgaXNsb2FkZWQgPSBmYWxzZTtcbiAgaW5CYXNrZXQgPSBmYWxzZTtcbiAgaW5WaWV3cG9ydCA9IGZhbHNlO1xuICBpc0RyaW5rID0gZmFsc2U7XG4gIGlzSW5Qcm9tb3Rpb24gPSBmYWxzZTtcblxuICBkaXNwbGF5TGlrZXNCb3R0b20gPSBmYWxzZTtcbiAgZGlzcGxheUJhZGdlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBiYXNrZXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuICBwcmltYXJ5QnV0dG9uQ2xpY2tlZCQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcmVjaXBlU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHVibGljIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yZWNpcGVTZXJ2aWNlLmRpc3BsYXllZFJlY2lwZUNoYW5nZWQkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpKTtcbiAgICBcbiAgICBpZiAodGhpcy5jb250ZXh0SWQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9TdWdnZXN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhcmlhbnQoKTtcbiAgICBpZiAodGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMuYWZ0ZXJSZWNpcGVMb2FkKHRoaXMucmVjaXBlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVjaXBlSWQpIHtcbiAgICAgIHRoaXMubG9hZFJlY2lwZUZyb21JZCgpO1xuICAgIH0gZWxzZSBpZiAoc2ltcGxlQ2hhbmdlcy5wcm9kdWN0SWRzICYmICF0aGlzLnJhbmRvbU1vZGVFbmFibGUgJiYgdGhpcy5jb250ZXh0SWQpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJTdWdnZXN0aW9uQ29udGV4dCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yYW5kb21Nb2RlRW5hYmxlKSB7XG4gICAgICB0aGlzLmZldGNoUmFuZG9tUmVjaXBlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0JC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yZWNpcGVTZXJ2aWNlLnJlbG9hZFJlY2lwZXMkLnN1YnNjcmliZShzaG91bGRSZWxvYWQgPT4ge1xuICAgICAgaWYgKHNob3VsZFJlbG9hZCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gQ0hFQ0sgRElTUExBWSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgdXBkYXRlRGlzcGxheVZhcmlhbnQoKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLmRpc3BsYXlWYXJpYW50KSB7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMuZGlzcGxheUJhZGdlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5TGlrZXNCb3R0b20gPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMzpcbiAgICAgICAgdGhpcy5kaXNwbGF5QmFkZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmRpc3BsYXlCYWRnZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIERJU1BMQVkgUkVDSVBFIERFVEFJTFMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIG9wZW5SZWNpcGUoKTogdm9pZCB7XG4gICAgLy8gY29uc3QgdmlkZW9FdmVudCA9IHRoaXMuY29udGV4dFNlcnZpY2UudmlkZW9SZWNpcGVzRW5hYmxlZCAmJiB0aGlzLnJlY2lwZS52aWRlb0lkO1xuICAgIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5T2JqZWN0KFxuICAgICAgdGhpcy5yZWNpcGUsXG4gICAgICB7XG4gICAgICAgIHByZXZpZXdBbGxvd2VkOiB0aGlzLnByZXZpZXdBbGxvd2VkLFxuICAgICAgICBndWVzdHM6IHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzLFxuICAgICAgICBkaXNwbGF5R3Vlc3RzOiB0aGlzLmRpc3BsYXlHdWVzdHMsXG4gICAgICAgIGhlbHBCdXR0b25BbGxvd2VkOiB0aGlzLmhlbHBCdXR0b25BbGxvd2VkXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmRpc3BsYXllZC5lbWl0KCk7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuZGlzcGxheScsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIHJlY2lwZV9pZDogdGhpcy5yZWNpcGUuaWQsXG4gICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLm9yaWdpblRyYWNlLnByb3BzLmNhdGVnb3J5X2lkXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gRElTUExBWSBSRUNJUEUgREVUQUlMUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgaW5ncmVkaWVudFBpY3R1cmUoaW5ncmVkaWVudDogU2ltcGxpZmllZEluZ3JlZGllbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBpbmdyZWRpZW50LnBpY3R1cmUgfHwgdGhpcy5jb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmU7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIGZvciBhY2Nlc3NpYmlsaXR5XG4gIGdldEluZ3JlZGllbnRzQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50cyB8fCB0aGlzLnJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBmaXJzdFR3byA9IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMuc2xpY2UoMCwgMikubWFwKGkgPT4gaS5uYW1lKS5qb2luKCcsICcpO1xuXG4gICAgaWYgKHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIDw9IDIpIHtcbiAgICAgIHJldHVybiAnSW5ncsOpZGllbnRzIHByaW5jaXBhdXg6ICcgKyBmaXJzdFR3bztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3RoZXJzQ291bnQgPSB0aGlzLnJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzLmxlbmd0aCAtIDI7XG4gICAgICByZXR1cm4gJ0luZ3LDqWRpZW50cyBwcmluY2lwYXV4OiAnICsgZmlyc3RUd28gKyAnIGV0ICcgKyBvdGhlcnNDb3VudCArICcgYXV0cmVzJztcbiAgICB9XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIFNIT1cgRVZFTlQgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIHNlbmRTaG93RXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuc2hvdycsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIHJlY2lwZV9pZDogdGhpcy5yZWNpcGUuaWQsXG4gICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLm9yaWdpblRyYWNlLnByb3BzLmNhdGVnb3J5X2lkXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGNhcmRJblZpZXdwb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5WaWV3cG9ydCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdXBkYXRlSXNJblByb21vdGlvbihmZXRjaGVkUHJpY2U6IFJlY2lwZVByaWNpbmcpIHtcbiAgICB0aGlzLmlzSW5Qcm9tb3Rpb24gPSBmZXRjaGVkUHJpY2VbJ2Rpc2NvdW50ZWQtaW5ncmVkaWVudHMtY291bnQnXSA+IDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBGRVRDSCBUSEUgUkVDSVBFIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICAvKipcbiAgICogRmV0Y2ggYSByZWNpcGUgZnJvbSBpdHMgaWQuXG4gICAqIEhpZGUgdGhlIGNhcmQgaWYgbm9uZSBpcyByZXR1cm5lZCAoY291bGQgYmUgYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdHMgb3IgaXQgaXMgbm90IHNoYXJlZCB3aXRoIHRoZSBzdXBwbGllcilcbiAgICovXG4gIHByaXZhdGUgbG9hZFJlY2lwZUZyb21JZCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMucmVjaXBlU2VydmljZS5nZXQodGhpcy5yZWNpcGVJZCwgeyBpbmNsdWRlOiByZWNpcGVJbmNsdWRlcywgZmllbGRzOiByZWNpcGVTcGFyc2VGaWVsZHMgfSkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiByZXN1bHQuaXNfbG9hZGluZyksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKHJlc3VsdDogUmVjaXBlKSA9PiB7XG4gICAgICAgIHRoaXMuYWZ0ZXJSZWNpcGVMb2FkKHJlc3VsdCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKlxuICAqIFN1YnNjcmliZSB0byBjb250ZXh0IHN1Z2dlc3Rpb25zOyBoaWRlIGNhcmQgaWYgbm9uZVxuICAqL1xuICBwcml2YXRlIHN1YnNjcmliZVRvU3VnZ2VzdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnJlY2lwZVNlcnZpY2Uub2JzZXJ2ZVN1Z2dlc3Rpb24odGhpcy5jb250ZXh0SWQpLnBpcGUoXG4gICAgICAgIHNraXAoMSlcbiAgICAgICkuc3Vic2NyaWJlKChzdWdnZXN0aW9uOiBSZWNpcGUpID0+IHtcbiAgICAgICAgaWYgKHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICB0aGlzLmFmdGVyUmVjaXBlTG9hZChzdWdnZXN0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlclJlY2lwZUxvYWQocmVzdWx0OiBSZWNpcGUpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZSA9IHJlc3VsdDtcbiAgICB0aGlzLnVwZGF0ZUd1ZXN0c0lmTmVjZXNzYXJ5KCk7XG4gICAgdGhpcy5jaGVja1JlY2lwZUluQmFza2V0KCk7XG4gICAgdGhpcy5jaGVja0lzRHJpbmsoKTtcbiAgICB0aGlzLmlzbG9hZGVkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUmFuZG9tUmVjaXBlKCk6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICByZXR1cm4gdGhpcy5yZWNpcGVTZXJ2aWNlLmdldFJhbmRvbShyZWNpcGVJbmNsdWRlcywgcmVjaXBlU3BhcnNlRmllbGRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZ3Vlc3RzIGZyb20gdGhlIHZhbHVlIGluIHRoZSBiYXNrZXQgaWYgdGhlIHJlY2lwZSBpcyBpbiB0aGUgYmFza2V0XG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUd1ZXN0c0lmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNJbkJhc2tldCh0aGlzLnJlY2lwZS5pZCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoaXNJbkxpc3QgPT4ge1xuICAgICAgaWYgKGlzSW5MaXN0ICYmICF0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgICB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9IHRoaXMuc2VydmVzIHx8IHRoaXMuYmFza2V0c1NlcnZpY2UuZ3Vlc3RzRm9yUmVjaXBlKHRoaXMucmVjaXBlLmlkKSB8fCArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMpIHtcbiAgICAgICAgdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSB0aGlzLnNlcnZlcyB8fCArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSZWNpcGVJbkJhc2tldCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYmFza2V0U3Vic2NyaXB0aW9uICYmIHRoaXMucmVjaXBlKSB7XG4gICAgICB0aGlzLmJhc2tldFN1YnNjcmlwdGlvbiA9IHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNJbkJhc2tldCh0aGlzLnJlY2lwZS5pZCkuc3Vic2NyaWJlKGluQmFza2V0ID0+IHtcbiAgICAgICAgdGhpcy5pbkJhc2tldCA9IGluQmFza2V0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0U3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSXNEcmluaygpOiB2b2lkIHtcbiAgICBjb25zdCB0YWdzID0gdGhpcy5yZWNpcGU/LnJlbGF0aW9uc2hpcHMudGFncz8uZGF0YSB8fCBbXTtcbiAgICB0aGlzLmlzRHJpbmsgPSB0YWdzLnNvbWUodGFnID0+IFsnbWVhbF90eXBlX2JvaXNzb24nLCAnbWVhbF90eXBlX2NvY2t0YWlsJ10uaW5jbHVkZXModGFnLmlkKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHJlY2lwZSBzdWdnZXN0aW9uIGNvbnRleHQgd2l0aCBwcm9kdWN0IElEcyBmb3IgYmF0Y2ggcHJvY2Vzc2luZ1xuICAgKi9cbiAgcHJpdmF0ZSByZWdpc3RlclN1Z2dlc3Rpb25Db250ZXh0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250ZXh0SWQgfHwgIXRoaXMucHJvZHVjdElkcyB8fCB0aGlzLnByb2R1Y3RJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZWNpcGVTZXJ2aWNlLnF1ZXVlU3VnZ2VzdGlvbkNvbnRleHQoe1xuICAgICAgY29udGV4dElkOiB0aGlzLmNvbnRleHRJZCxcbiAgICAgIGl0ZW1FeHRJZHM6IHRoaXMucHJvZHVjdElkcy5tYXAocHJvZHVjdCA9PiBwcm9kdWN0LmlkKVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZFwiIG5nTWlhbUluVmlld3BvcnQgW2NvbmRpdGlvbl09XCIhIXJlY2lwZVwiIChpblZpZXdwb3J0KT1cInNlbmRTaG93RXZlbnQoKVwiXG4gICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICd2YXJpYW50LTEnOiAoZGlzcGxheVZhcmlhbnQgIT09IDIgJiYgZGlzcGxheVZhcmlhbnQgIT09IDMpLFxuICAgICAgJ3ZhcmlhbnQtMic6IChkaXNwbGF5VmFyaWFudCA9PT0gMiksXG4gICAgICAndmFyaWFudC0zJzogKGRpc3BsYXlWYXJpYW50ID09PSAzKSxcbiAgICAgICdpbi1iYXNrZXQnOiBpbkJhc2tldCxcbiAgICAgICdyZWRpcmVjdC1jYXJkJzogaXNsb2FkZWQgJiYgIXJlY2lwZVxuICAgICAgfVwiPlxuICA8IS0tIE1BSU4gQ09OVEFJTkVSIC0tPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY29udGFpbmVyXCIgKm5nSWY9XCJyZWNpcGVcIlxuICAgICAgIG5nTWlhbUluVmlld3BvcnQgW3RocmVzaG9sZF09XCIwXCIgW2RlYm91bmNlVGltZV09XCIwXCIgKGluVmlld3BvcnQpPVwiY2FyZEluVmlld3BvcnQoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190b3BcIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgICA8IS0tIFBJQ1RVUkUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZVwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW3NyY109XCJyZWNpcGU/LmF0dHJpYnV0ZXNbJ21lZGlhLXVybCddXCJcbiAgICAgICAgICAoZXJyb3IpPVwiJGV2ZW50LnRhcmdldFsnc3JjJ10gPSBjb250ZXh0U2VydmljZS5kZWZhdWx0UmVjaXBlUGljdHVyZVwiXG4gICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgIFthbHRdPVwiXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIEdSQURJRU5UIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2dyYWRpZW50XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fdG9wLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDwhLS0gTElLRSBCVVRUT04gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2xpa2VcIiAqbmdJZj1cIiEoZGlzcGxheUJhZGdlICYmIHJlY2lwZS5zcG9uc29yTG9nb1VybClcIj5cbiAgICAgICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFkaXNwbGF5TGlrZXNCb3R0b20gJiYgKHVzZXJTZXJ2aWNlLmlzTG9nZ2VkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCJcbiAgICAgICAgICAgICAgICBbcmVjaXBlXT0ncmVjaXBlJ1xuICAgICAgICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICAgICAgICAgIDwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYmFkZ2VzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPCEtLSBNRUFMIC8gRFJJTksgSURFQSBCQURHRSAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5QmFkZ2VcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImlzRHJpbmsgPyAnZHJpbmsnIDogJ2Zvb2QnXCI+XG4gICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCIhaXNEcmlua1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYmFkZ2VcIlxuICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaW1hZ2VzL3JlY2lwZV9jYXJkLWJhZGdlLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgYWx0PVwiSWTDqWUgcmVwYXNcIj5cbiAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImlzRHJpbmtcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlXCJcbiAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zLzkuMC9yZWNpcGUtY2FyZC1iYWRnZS1kcmlua3Muc3ZnXCJcbiAgICAgICAgICAgICAgICAgICBhbHQ9XCJJZMOpZSBib2lzc29uXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gU1BPTlNPUiAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuc3BvbnNvckxvZ29VcmxcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3Nwb25zb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19zcG9uc29yLXBpY3R1cmVcIiBbc3JjXT1cInJlY2lwZS5zcG9uc29yTG9nb1VybFwiIFthbHRdPVwiJ0xvZ28gZHUgc3BvbnNvciAnICsgcmVjaXBlLnNwb25zb3JOYW1lXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcm9tb3Rpb24tYmFkZ2UgKm5nSWY9XCJpc0luUHJvbW90aW9uXCI+PC9uZy1taWFtLXJlY2lwZS1wcm9tb3Rpb24tYmFkZ2U+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fYm90dG9tXCI+XG4gICAgICAgICAgPCEtLSBUSVRMRSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fdGl0bGUgbWlhbS1kcy10ZXh0IHdlaWdodC14eGwgc2l6ZS1tXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyByZWNpcGUuYXR0cmlidXRlc1sndGl0bGUnXSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIENPVU5URVIgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvdW50ZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidQb3VyICcgKyAocmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8IHJlY2lwZS5ndWVzdHMpICsgJyBwZXJzb25uZXMnXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbVwiPnt7IHJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fCByZWNpcGUuZ3Vlc3RzIH19PC9zcGFuPlxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL3JlY2lwZS1jb3VudGVyLnN2Z1wiIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gQ0FSRCBGT09URVIgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JvdHRvbVwiIChjbGljayk9XCJvcGVuUmVjaXBlKClcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjb250ZXh0U2VydmljZS5kaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkcyAmJiByZWNpcGU/Lm1vZGlmaWVkSW5ncmVkaWVudHM/Lmxlbmd0aCA+IDFcIlxuICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlc1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0SW5ncmVkaWVudHNBcmlhTGFiZWwoKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZVwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIFtzcmNdPVwiaW5ncmVkaWVudFBpY3R1cmUocmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHNbMF0pXCJcbiAgICAgICAgICAgIFthbHRdPVwiJydcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gY29udGV4dFNlcnZpY2UuZGVmYXVsdEluZ3JlZGllbnRQaWN0dXJlXCJcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5ncmVkaWVudHNfX3BpY3R1cmVcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImluZ3JlZGllbnRQaWN0dXJlKHJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzWzFdKVwiXG4gICAgICAgICAgICBbYWx0XT1cIicnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19tb3JlXCIgKm5nSWY9XCJyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggPiAyXCI+XG4gICAgICAgICAgKyB7eyByZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggLSAyIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYWN0aW9uc1wiPlxuICAgICAgICA8IS0tIElORk9TIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb3NcIj5cbiAgICAgICAgICA8IS0tIFRJTUUgQU5EIERJRkZJQ1VMVFkgLS0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5SW5mb3MgJiYgKHJlY2lwZS5kaWZmaWN1bHR5IHx8IHJlY2lwZS50b3RhbFRpbWUpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZGlmZmljdWx0eS1hbmQtdGltZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZS5kaWZmaWN1bHR5XCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19kaWZmaWN1bHR5XCIgW2F0dHIuYXJpYS1sYWJlbF09XCInRGlmZmljdWx0w6k6ICcgKyByZWNpcGVTZXJ2aWNlLmRpZmZpY3VsdHlMZXZlbHNbcmVjaXBlLmRpZmZpY3VsdHkgLSAxXS5sYWJlbFwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQ2hlZkhhdC5zdmdcIiBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tZHMtdGV4dCBzaXplLXMgd2VpZ2h0LW1cIj57eyByZWNpcGVTZXJ2aWNlLmRpZmZpY3VsdHlMZXZlbHNbcmVjaXBlLmRpZmZpY3VsdHkgLSAxXS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZS50b3RhbFRpbWVcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RpbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidUZW1wcyBkZSBwcsOpcGFyYXRpb246ICcgKyByZWNpcGUudG90YWxUaW1lXCI+XG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9DbG9jay5zdmdcIiBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgc2l6ZS1zIHdlaWdodC1tXCI+e3sgcmVjaXBlLnRvdGFsVGltZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19wcmljZS1hbmQtcHJvbW90aW9uXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlICpuZ0lmPVwiaXNJblByb21vdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYm90dG9tLXByb21vdGlvblwiPjwvbmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlPlxuICAgICAgICAgICAgPCEtLSBQUklDRSAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUgJiYgZGlzcGxheVByaWNpbmdcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3ByaWNlXCI+XG4gICAgICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcmljaW5nXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bFwiXG4gICAgICAgICAgICAgICAgW3JlY2lwZUlkXT1cInJlY2lwZS5pZFwiXG4gICAgICAgICAgICAgICAgW3NlcnZlc109XCJyZWNpcGUubW9kaWZpZWRHdWVzdHMgfHwgK3JlY2lwZS5ndWVzdHNcIlxuICAgICAgICAgICAgICAgIFtpblZpZXdwb3J0XT1cImluVmlld3BvcnRcIlxuICAgICAgICAgICAgICAgIChwcmljZVNldCk9XCJ1cGRhdGVJc0luUHJvbW90aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbmctbWlhbS1yZWNpcGUtcHJpY2luZz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBDVEEgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jdGFcIj5cbiAgICAgICAgICA8bmctbWlhbS1saWtlLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5TGlrZXNCb3R0b20gJiYgKHVzZXJTZXJ2aWNlLmlzTG9nZ2VkJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX2ljb25cIlxuICAgICAgICAgICAgW3JlY2lwZV09J3JlY2lwZSdcbiAgICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1jYXJkLWN0YVxuICAgICAgICAgICAgKm5nSWY9XCJwcmV2aWV3QWxsb3dlZCAmJiAhYWRkUmVjaXBlTW9kZSAmJiAhcmVwbGFjZU1vZGVcIlxuICAgICAgICAgICAgW3JlY2lwZV09XCJyZWNpcGVcIlxuICAgICAgICAgICAgW3ByZXZpZXdBbGxvd2VkXT1cInByZXZpZXdBbGxvd2VkXCJcbiAgICAgICAgICAgIFtkaXNwbGF5R3Vlc3RzXT1cImRpc3BsYXlHdWVzdHNcIlxuICAgICAgICAgICAgW2hlbHBCdXR0b25BbGxvd2VkXT1cImhlbHBCdXR0b25BbGxvd2VkXCJcbiAgICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCJcbiAgICAgICAgICAgIChkaXNwbGF5ZWQpPVwiZGlzcGxheWVkLmVtaXQoKVwiXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJwcmltYXJ5QnV0dG9uQ2xpY2tlZCQuZW1pdCgkZXZlbnQpXCI+XG4gICAgICAgICAgPC9uZy1taWFtLXJlY2lwZS1jYXJkLWN0YT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gT1BUSU9OTkFMIENUQVMgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJyZXBsYWNlTW9kZVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYWN0aW9uc19fcmVwbGFjZVwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIChjbGljayk9XCJvcGVuQ2F0YWxvZy5lbWl0KClcIj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4+Q2hhbmdlcjwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1kcy1idXR0b24gZ2hvc3Qgc3F1YXJlXCIgKGNsaWNrKT1cInJlbW92ZUZyb21NZWFsc1BsYW5uZXIuZW1pdCgpXCIgYXJpYS1sYWJlbD1cIlN1cHByaW1lciBsYSByZWNldHRlXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLlRyYXNoXCIgcHJpbWFyeUNvbG9yPVwidmFyKC0tbS1jb2xvci1wcmltYXJ5KVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFkZFJlY2lwZU1vZGVcIiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0XCIgKGNsaWNrKT1cImFkZFRvTWVhbHNQbGFubmVyLmVtaXQocmVjaXBlKVwiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+QWpvdXRlcjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gR0VORVJJQyBDQVJEIC0tPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY29udGFpbmVyXCIgKm5nSWY9XCJpc2xvYWRlZCAmJiAhcmVjaXBlXCJcbiAgICAgICBuZ01pYW1JblZpZXdwb3J0IFt0aHJlc2hvbGRdPVwiMFwiIFtkZWJvdW5jZVRpbWVdPVwiMFwiIChpblZpZXdwb3J0KT1cImNhcmRJblZpZXdwb3J0KClcIj5cbiAgICA8YSBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3JlZGlyZWN0XCIgW2hyZWZdPVwiY29udGV4dFNlcnZpY2UuY2F0YWxvZ1VybFwiPlxuICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ltYWdlcy9TdWdnZXN0aW9uX1JlZGlyZWN0X0JhY2tncm91bmQucG5nXCIgYWx0PVwiRMOpY291dnJleiBub3MgcmVjZXR0ZXNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdF9fZm9vdGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdF9fdGl0bGUgbWlhbS1kcy10ZXh0IHNpemUtbCB3ZWlnaHQteHhsXCI+XG4gICAgICAgICAgPHNwYW4gaTE4bj5CZXNvaW4gZCdpbnNwaXJhdGlvbiA/PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3JlZGlyZWN0X19idXR0b24gbWlhbS1kcy1idXR0b24gcHJpbWFyeVwiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+RMOpY291dnJleiBub3MgcmVjZXR0ZXM8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9hPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|