@tilde-nlp/ngx-common 6.1.74 → 6.1.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/terminology/components/terminology-panel/terminology-collection-list/terminology-collection-card/terminology-collection-card.component.mjs +85 -42
- package/esm2022/lib/terminology/services/terminology/terminology.service.mjs +3 -3
- package/fesm2022/tilde-nlp-ngx-common.mjs +86 -43
- package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -14,18 +14,18 @@ import * as i10 from "../../../../../pipes/date-ago/date-ago.pipe";
|
|
|
14
14
|
const _c0 = a0 => ({ termCount: a0 });
|
|
15
15
|
const _c1 = a0 => ({ date: a0 });
|
|
16
16
|
function TerminologyCollectionCardComponent_ng_container_0_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
-
i0.ɵɵelementStart(0, "span",
|
|
17
|
+
i0.ɵɵelementStart(0, "span", 15);
|
|
18
18
|
i0.ɵɵtext(1);
|
|
19
19
|
i0.ɵɵelementEnd();
|
|
20
20
|
} if (rf & 2) {
|
|
21
|
-
let
|
|
21
|
+
let tmp_3_0;
|
|
22
22
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
23
|
-
i0.ɵɵproperty("matTooltip", (
|
|
23
|
+
i0.ɵɵproperty("matTooltip", (tmp_3_0 = ctx_r1.collection.name) !== null && tmp_3_0 !== undefined ? tmp_3_0 : "");
|
|
24
24
|
i0.ɵɵadvance();
|
|
25
25
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.collection.name, " ");
|
|
26
26
|
} }
|
|
27
27
|
function TerminologyCollectionCardComponent_ng_container_0_span_7_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
-
i0.ɵɵelementStart(0, "span",
|
|
28
|
+
i0.ɵɵelementStart(0, "span", 16);
|
|
29
29
|
i0.ɵɵtext(1);
|
|
30
30
|
i0.ɵɵelementEnd();
|
|
31
31
|
} if (rf & 2) {
|
|
@@ -34,7 +34,7 @@ function TerminologyCollectionCardComponent_ng_container_0_span_7_Template(rf, c
|
|
|
34
34
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.collection.name, " ");
|
|
35
35
|
} }
|
|
36
36
|
function TerminologyCollectionCardComponent_ng_container_0_span_8_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
-
i0.ɵɵelementStart(0, "span",
|
|
37
|
+
i0.ɵɵelementStart(0, "span", 17);
|
|
38
38
|
i0.ɵɵtext(1);
|
|
39
39
|
i0.ɵɵpipe(2, "translate");
|
|
40
40
|
i0.ɵɵelementEnd();
|
|
@@ -43,8 +43,40 @@ function TerminologyCollectionCardComponent_ng_container_0_span_8_Template(rf, c
|
|
|
43
43
|
i0.ɵɵadvance();
|
|
44
44
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r1.localizationKey + "DEFAULT"));
|
|
45
45
|
} }
|
|
46
|
-
function
|
|
47
|
-
i0.ɵɵelementStart(0, "span"
|
|
46
|
+
function TerminologyCollectionCardComponent_ng_container_0_ng_container_10_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
i0.ɵɵelementStart(0, "span");
|
|
48
|
+
i0.ɵɵtext(1);
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
} if (rf & 2) {
|
|
51
|
+
const lang_r3 = ctx.$implicit;
|
|
52
|
+
i0.ɵɵadvance();
|
|
53
|
+
i0.ɵɵtextInterpolate(lang_r3.id);
|
|
54
|
+
} }
|
|
55
|
+
function TerminologyCollectionCardComponent_ng_container_0_ng_container_10_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
+
i0.ɵɵelementContainerStart(0);
|
|
57
|
+
i0.ɵɵtemplate(1, TerminologyCollectionCardComponent_ng_container_0_ng_container_10_span_1_Template, 2, 1, "span", 18);
|
|
58
|
+
i0.ɵɵelementContainerEnd();
|
|
59
|
+
} if (rf & 2) {
|
|
60
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
61
|
+
i0.ɵɵadvance();
|
|
62
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.collection.termCollection.languages);
|
|
63
|
+
} }
|
|
64
|
+
function TerminologyCollectionCardComponent_ng_container_0_ng_template_11_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
+
i0.ɵɵelementStart(0, "span");
|
|
66
|
+
i0.ɵɵtext(1);
|
|
67
|
+
i0.ɵɵelementEnd();
|
|
68
|
+
i0.ɵɵelementStart(2, "span");
|
|
69
|
+
i0.ɵɵtext(3);
|
|
70
|
+
i0.ɵɵelementEnd();
|
|
71
|
+
} if (rf & 2) {
|
|
72
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
73
|
+
i0.ɵɵadvance();
|
|
74
|
+
i0.ɵɵtextInterpolate(ctx_r1.sourceLanguageCode);
|
|
75
|
+
i0.ɵɵadvance(2);
|
|
76
|
+
i0.ɵɵtextInterpolate(ctx_r1.targetLanguageCode);
|
|
77
|
+
} }
|
|
78
|
+
function TerminologyCollectionCardComponent_ng_container_0_span_13_Template(rf, ctx) { if (rf & 1) {
|
|
79
|
+
i0.ɵɵelementStart(0, "span", 19);
|
|
48
80
|
i0.ɵɵtext(1);
|
|
49
81
|
i0.ɵɵpipe(2, "translate");
|
|
50
82
|
i0.ɵɵelementEnd();
|
|
@@ -53,8 +85,8 @@ function TerminologyCollectionCardComponent_ng_container_0_span_9_Template(rf, c
|
|
|
53
85
|
i0.ɵɵadvance();
|
|
54
86
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, ctx_r1.localizationKey + "TERMS_IN_USE", i0.ɵɵpureFunction1(4, _c0, ctx_r1.collection.termCount)), " ");
|
|
55
87
|
} }
|
|
56
|
-
function
|
|
57
|
-
i0.ɵɵelementStart(0, "span",
|
|
88
|
+
function TerminologyCollectionCardComponent_ng_container_0_span_14_Template(rf, ctx) { if (rf & 1) {
|
|
89
|
+
i0.ɵɵelementStart(0, "span", 19);
|
|
58
90
|
i0.ɵɵtext(1);
|
|
59
91
|
i0.ɵɵpipe(2, "dateAgo");
|
|
60
92
|
i0.ɵɵpipe(3, "translate");
|
|
@@ -64,7 +96,7 @@ function TerminologyCollectionCardComponent_ng_container_0_span_10_Template(rf,
|
|
|
64
96
|
i0.ɵɵadvance();
|
|
65
97
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 3, ctx_r1.localizationKey + "LAST_UPDATED", i0.ɵɵpureFunction1(6, _c1, i0.ɵɵpipeBind1(2, 1, ctx_r1.collection.lastUpdated))), " ");
|
|
66
98
|
} }
|
|
67
|
-
function
|
|
99
|
+
function TerminologyCollectionCardComponent_ng_container_0_div_16_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
68
100
|
i0.ɵɵelementStart(0, "span");
|
|
69
101
|
i0.ɵɵtext(1);
|
|
70
102
|
i0.ɵɵpipe(2, "uppercase");
|
|
@@ -75,20 +107,20 @@ function TerminologyCollectionCardComponent_ng_container_0_div_12_span_3_Templat
|
|
|
75
107
|
i0.ɵɵadvance();
|
|
76
108
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, ctx_r1.localizationKey + "ERRORS." + i0.ɵɵpipeBind1(2, 1, ctx_r1.collection.mtCollection == null ? null : ctx_r1.collection.mtCollection.subStatus)), " ");
|
|
77
109
|
} }
|
|
78
|
-
function
|
|
79
|
-
i0.ɵɵelementStart(0, "div",
|
|
110
|
+
function TerminologyCollectionCardComponent_ng_container_0_div_16_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "span", 21);
|
|
80
112
|
i0.ɵɵtext(2, " error ");
|
|
81
113
|
i0.ɵɵelementEnd();
|
|
82
|
-
i0.ɵɵtemplate(3,
|
|
114
|
+
i0.ɵɵtemplate(3, TerminologyCollectionCardComponent_ng_container_0_div_16_span_3_Template, 4, 5, "span", 1);
|
|
83
115
|
i0.ɵɵelementEnd();
|
|
84
116
|
} if (rf & 2) {
|
|
85
117
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
86
118
|
i0.ɵɵadvance(3);
|
|
87
119
|
i0.ɵɵproperty("ngIf", (ctx_r1.collection.mtCollection == null ? null : ctx_r1.collection.mtCollection.subStatus) === ctx_r1.collectionImportingErrorSubStatus);
|
|
88
120
|
} }
|
|
89
|
-
function
|
|
90
|
-
i0.ɵɵelementStart(0, "span",
|
|
91
|
-
i0.ɵɵelement(1, "mat-spinner",
|
|
121
|
+
function TerminologyCollectionCardComponent_ng_container_0_span_17_Template(rf, ctx) { if (rf & 1) {
|
|
122
|
+
i0.ɵɵelementStart(0, "span", 22);
|
|
123
|
+
i0.ɵɵelement(1, "mat-spinner", 23);
|
|
92
124
|
i0.ɵɵelementStart(2, "span");
|
|
93
125
|
i0.ɵɵtext(3);
|
|
94
126
|
i0.ɵɵpipe(4, "translate");
|
|
@@ -98,12 +130,12 @@ function TerminologyCollectionCardComponent_ng_container_0_span_13_Template(rf,
|
|
|
98
130
|
i0.ɵɵadvance(3);
|
|
99
131
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 1, ctx_r1.tooltipLocalizationKey + "IMPORTING"), " ");
|
|
100
132
|
} }
|
|
101
|
-
function
|
|
102
|
-
const
|
|
103
|
-
i0.ɵɵelementStart(0, "button",
|
|
133
|
+
function TerminologyCollectionCardComponent_ng_container_0_button_18_Template(rf, ctx) { if (rf & 1) {
|
|
134
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
135
|
+
i0.ɵɵelementStart(0, "button", 24);
|
|
104
136
|
i0.ɵɵpipe(1, "translate");
|
|
105
|
-
i0.ɵɵlistener("click", function
|
|
106
|
-
i0.ɵɵelementStart(2, "span",
|
|
137
|
+
i0.ɵɵlistener("click", function TerminologyCollectionCardComponent_ng_container_0_button_18_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.attach(ctx_r1.collection); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
138
|
+
i0.ɵɵelementStart(2, "span", 25)(3, "mat-icon", 26);
|
|
107
139
|
i0.ɵɵtext(4, "sync");
|
|
108
140
|
i0.ɵɵelementEnd();
|
|
109
141
|
i0.ɵɵtext(5);
|
|
@@ -115,10 +147,10 @@ function TerminologyCollectionCardComponent_ng_container_0_button_14_Template(rf
|
|
|
115
147
|
i0.ɵɵadvance(5);
|
|
116
148
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 4, ctx_r1.localizationKey + "SYNC"), " ");
|
|
117
149
|
} }
|
|
118
|
-
function
|
|
119
|
-
i0.ɵɵelementStart(0, "a",
|
|
150
|
+
function TerminologyCollectionCardComponent_ng_container_0_ng_container_19_a_1_Template(rf, ctx) { if (rf & 1) {
|
|
151
|
+
i0.ɵɵelementStart(0, "a", 28);
|
|
120
152
|
i0.ɵɵpipe(1, "translate");
|
|
121
|
-
i0.ɵɵelementStart(2, "mat-icon",
|
|
153
|
+
i0.ɵɵelementStart(2, "mat-icon", 29);
|
|
122
154
|
i0.ɵɵtext(3, "edit");
|
|
123
155
|
i0.ɵɵelementEnd()();
|
|
124
156
|
} if (rf & 2) {
|
|
@@ -126,9 +158,9 @@ function TerminologyCollectionCardComponent_ng_container_0_ng_container_15_a_1_T
|
|
|
126
158
|
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 2, ctx_r1.tooltipLocalizationKey + "EDIT"));
|
|
127
159
|
i0.ɵɵattribute("href", ctx_r1.getEditLink(ctx_r1.collection), i0.ɵɵsanitizeUrl);
|
|
128
160
|
} }
|
|
129
|
-
function
|
|
161
|
+
function TerminologyCollectionCardComponent_ng_container_0_ng_container_19_Template(rf, ctx) { if (rf & 1) {
|
|
130
162
|
i0.ɵɵelementContainerStart(0);
|
|
131
|
-
i0.ɵɵtemplate(1,
|
|
163
|
+
i0.ɵɵtemplate(1, TerminologyCollectionCardComponent_ng_container_0_ng_container_19_a_1_Template, 4, 4, "a", 27);
|
|
132
164
|
i0.ɵɵelementContainerEnd();
|
|
133
165
|
} if (rf & 2) {
|
|
134
166
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -138,33 +170,39 @@ function TerminologyCollectionCardComponent_ng_container_0_ng_container_15_Templ
|
|
|
138
170
|
function TerminologyCollectionCardComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
139
171
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
140
172
|
i0.ɵɵelementContainerStart(0);
|
|
141
|
-
i0.ɵɵelementStart(1, "div",
|
|
173
|
+
i0.ɵɵelementStart(1, "div", 2)(2, "mat-radio-button", 3);
|
|
142
174
|
i0.ɵɵpipe(3, "translate");
|
|
143
175
|
i0.ɵɵlistener("click", function TerminologyCollectionCardComponent_ng_container_0_Template_mat_radio_button_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectGlossary(ctx_r1.collection)); });
|
|
144
|
-
i0.ɵɵelementStart(4, "div",
|
|
145
|
-
i0.ɵɵtemplate(6, TerminologyCollectionCardComponent_ng_container_0_span_6_Template, 2, 2, "span",
|
|
176
|
+
i0.ɵɵelementStart(4, "div", 2)(5, "div", 4);
|
|
177
|
+
i0.ɵɵtemplate(6, TerminologyCollectionCardComponent_ng_container_0_span_6_Template, 2, 2, "span", 5)(7, TerminologyCollectionCardComponent_ng_container_0_span_7_Template, 2, 1, "span", 6);
|
|
178
|
+
i0.ɵɵelementEnd();
|
|
179
|
+
i0.ɵɵtemplate(8, TerminologyCollectionCardComponent_ng_container_0_span_8_Template, 3, 3, "span", 7);
|
|
146
180
|
i0.ɵɵelementEnd();
|
|
147
|
-
i0.ɵɵ
|
|
181
|
+
i0.ɵɵelementStart(9, "div", 8);
|
|
182
|
+
i0.ɵɵtemplate(10, TerminologyCollectionCardComponent_ng_container_0_ng_container_10_Template, 2, 1, "ng-container", 9)(11, TerminologyCollectionCardComponent_ng_container_0_ng_template_11_Template, 4, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
148
183
|
i0.ɵɵelementEnd();
|
|
149
|
-
i0.ɵɵtemplate(
|
|
150
|
-
i0.ɵɵelementStart(
|
|
151
|
-
i0.ɵɵtemplate(
|
|
184
|
+
i0.ɵɵtemplate(13, TerminologyCollectionCardComponent_ng_container_0_span_13_Template, 3, 6, "span", 10)(14, TerminologyCollectionCardComponent_ng_container_0_span_14_Template, 4, 8, "span", 10);
|
|
185
|
+
i0.ɵɵelementStart(15, "div", 11);
|
|
186
|
+
i0.ɵɵtemplate(16, TerminologyCollectionCardComponent_ng_container_0_div_16_Template, 4, 1, "div", 12)(17, TerminologyCollectionCardComponent_ng_container_0_span_17_Template, 5, 3, "span", 13)(18, TerminologyCollectionCardComponent_ng_container_0_button_18_Template, 7, 6, "button", 14);
|
|
152
187
|
i0.ɵɵelementEnd()();
|
|
153
|
-
i0.ɵɵtemplate(
|
|
188
|
+
i0.ɵɵtemplate(19, TerminologyCollectionCardComponent_ng_container_0_ng_container_19_Template, 2, 1, "ng-container", 1);
|
|
154
189
|
i0.ɵɵelementEnd();
|
|
155
190
|
i0.ɵɵelementContainerEnd();
|
|
156
191
|
} if (rf & 2) {
|
|
192
|
+
const currentDirection_r5 = i0.ɵɵreference(12);
|
|
157
193
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
158
194
|
i0.ɵɵadvance(2);
|
|
159
195
|
i0.ɵɵclassProp("mat-mdc-radio-checked", ctx_r1.collection.default || ctx_r1.collection === ctx_r1.selected);
|
|
160
|
-
i0.ɵɵproperty("disabled", ctx_r1.isSelectionDisabled)("matTooltip", ctx_r1.collection.termTooltipKey ? i0.ɵɵpipeBind1(3,
|
|
196
|
+
i0.ɵɵproperty("disabled", ctx_r1.isSelectionDisabled)("matTooltip", ctx_r1.collection.termTooltipKey ? i0.ɵɵpipeBind1(3, 15, ctx_r1.tooltipLocalizationKey + ctx_r1.collection.termTooltipKey) : "");
|
|
161
197
|
i0.ɵɵadvance(4);
|
|
162
198
|
i0.ɵɵproperty("ngIf", !ctx_r1.collection.termTooltipKey);
|
|
163
199
|
i0.ɵɵadvance();
|
|
164
200
|
i0.ɵɵproperty("ngIf", ctx_r1.collection.termTooltipKey);
|
|
165
201
|
i0.ɵɵadvance();
|
|
166
202
|
i0.ɵɵproperty("ngIf", ctx_r1.collection.default);
|
|
167
|
-
i0.ɵɵadvance();
|
|
203
|
+
i0.ɵɵadvance(2);
|
|
204
|
+
i0.ɵɵproperty("ngIf", ctx_r1.collection.termCollection)("ngIfElse", currentDirection_r5);
|
|
205
|
+
i0.ɵɵadvance(3);
|
|
168
206
|
i0.ɵɵproperty("ngIf", ctx_r1.collection.termCount);
|
|
169
207
|
i0.ɵɵadvance();
|
|
170
208
|
i0.ɵɵproperty("ngIf", ctx_r1.collection.lastUpdated);
|
|
@@ -198,21 +236,26 @@ export class TerminologyCollectionCardComponent {
|
|
|
198
236
|
this.terminologyService.sync(collection, this.engineId).subscribe();
|
|
199
237
|
}
|
|
200
238
|
getEditLink(collection) {
|
|
201
|
-
|
|
239
|
+
// Collections with terms that shouldn't be translated.
|
|
240
|
+
if (collection.termCollection?.languages && collection.termCollection?.languages.length === 1) {
|
|
241
|
+
return this.terminologyCollection.getEditLink(collection.termCollection.id);
|
|
242
|
+
}
|
|
243
|
+
// Adds both source and target languages to the collection.
|
|
244
|
+
return this.terminologyCollection.getEditLink(collection.termCollection.id, this.sourceLanguageCode, this.targetLanguageCode);
|
|
202
245
|
}
|
|
203
246
|
isCollectionDisabled(collection) {
|
|
204
247
|
return collection.termId !== null && collection.termEntries <= 0 || collection.default;
|
|
205
248
|
}
|
|
206
249
|
static { this.ɵfac = function TerminologyCollectionCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TerminologyCollectionCardComponent)(i0.ɵɵdirectiveInject(i1.TerminologyService), i0.ɵɵdirectiveInject(i1.TerminologyCollectionService)); }; }
|
|
207
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TerminologyCollectionCardComponent, selectors: [["lib-terminology-collection-card"]], inputs: { collection: "collection", selected: "selected", localizationKey: "localizationKey", tooltipLocalizationKey: "tooltipLocalizationKey", sourceLanguageCode: "sourceLanguageCode", engineId: "engineId", targetLanguageCode: "targetLanguageCode", hasEditPermissions: "hasEditPermissions" }, outputs: { glossarySelectEvent: "glossarySelectEvent" }, decls: 1, vars: 1, consts: [[4, "ngIf"], ["fxLayout", "row", "fxLayoutAlign", "start center"], ["fxFlex", "", "fxLayoutAlign", "center center", 3, "click", "disabled", "matTooltip"], [1, "collection-label"], ["class", "text-m-semi-bold", 3, "matTooltip", 4, "ngIf"], ["class", "text-m-semi-bold", 4, "ngIf"], ["class", "default-badge", 4, "ngIf"], ["class", "collection-label-block text-s", 4, "ngIf"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.5rem", 1, "collection-label-block", "collection-status-labels", "text-s"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.25rem", 4, "ngIf"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.5rem", 4, "ngIf"], ["mat-button", "", "color", "primary", 3, "matTooltip", "click", 4, "ngIf"], [1, "text-m-semi-bold", 3, "matTooltip"], [1, "text-m-semi-bold"], [1, "default-badge"], [1, "collection-label-block", "text-s"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.25rem"], ["color", "accent", 1, "material-icons", "collection-list-error"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.5rem"], ["color", "accent", "diameter", "20"], ["mat-button", "", "color", "primary", 3, "click", "matTooltip"], ["fxLayout", "row", "fxLayoutAlign", "start center", 1, "text-s"], [1, "pt-1"], ["class", "collection-list-edit", "mat-icon-button", "", "target", "_blank", 3, "matTooltip", 4, "ngIf"], ["mat-icon-button", "", "target", "_blank", 1, "collection-list-edit", 3, "matTooltip"], [1, "material-icons"]], template: function TerminologyCollectionCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
208
|
-
i0.ɵɵtemplate(0, TerminologyCollectionCardComponent_ng_container_0_Template,
|
|
250
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TerminologyCollectionCardComponent, selectors: [["lib-terminology-collection-card"]], inputs: { collection: "collection", selected: "selected", localizationKey: "localizationKey", tooltipLocalizationKey: "tooltipLocalizationKey", sourceLanguageCode: "sourceLanguageCode", engineId: "engineId", targetLanguageCode: "targetLanguageCode", hasEditPermissions: "hasEditPermissions" }, outputs: { glossarySelectEvent: "glossarySelectEvent" }, decls: 1, vars: 1, consts: [["currentDirection", ""], [4, "ngIf"], ["fxLayout", "row", "fxLayoutAlign", "start center"], ["fxFlex", "", "fxLayoutAlign", "center center", 3, "click", "disabled", "matTooltip"], [1, "collection-label"], ["class", "text-m-semi-bold", 3, "matTooltip", 4, "ngIf"], ["class", "text-m-semi-bold", 4, "ngIf"], ["class", "default-badge", 4, "ngIf"], [1, "collection-languages"], [4, "ngIf", "ngIfElse"], ["class", "collection-label-block text-s", 4, "ngIf"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.5rem", 1, "collection-label-block", "collection-status-labels", "text-s"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.25rem", 4, "ngIf"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.5rem", 4, "ngIf"], ["mat-button", "", "color", "primary", 3, "matTooltip", "click", 4, "ngIf"], [1, "text-m-semi-bold", 3, "matTooltip"], [1, "text-m-semi-bold"], [1, "default-badge"], [4, "ngFor", "ngForOf"], [1, "collection-label-block", "text-s"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.25rem"], ["color", "accent", 1, "material-icons", "collection-list-error"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "0.5rem"], ["color", "accent", "diameter", "20"], ["mat-button", "", "color", "primary", 3, "click", "matTooltip"], ["fxLayout", "row", "fxLayoutAlign", "start center", 1, "text-s"], [1, "pt-1"], ["class", "collection-list-edit", "mat-icon-button", "", "target", "_blank", 3, "matTooltip", 4, "ngIf"], ["mat-icon-button", "", "target", "_blank", 1, "collection-list-edit", 3, "matTooltip"], [1, "material-icons", "material-icons-outlined"]], template: function TerminologyCollectionCardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
251
|
+
i0.ɵɵtemplate(0, TerminologyCollectionCardComponent_ng_container_0_Template, 20, 17, "ng-container", 1);
|
|
209
252
|
} if (rf & 2) {
|
|
210
253
|
i0.ɵɵproperty("ngIf", ctx.collection);
|
|
211
|
-
} }, dependencies: [i2.NgIf, i3.DefaultLayoutDirective, i3.DefaultLayoutGapDirective, i3.DefaultLayoutAlignDirective, i3.DefaultFlexDirective, i4.MatButton, i4.MatIconAnchor, i5.MatIcon, i6.MatProgressSpinner, i7.MatRadioButton, i8.MatTooltip, i2.UpperCasePipe, i9.TranslatePipe, i10.DateAgoPipe] }); }
|
|
254
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.DefaultLayoutDirective, i3.DefaultLayoutGapDirective, i3.DefaultLayoutAlignDirective, i3.DefaultFlexDirective, i4.MatButton, i4.MatIconAnchor, i5.MatIcon, i6.MatProgressSpinner, i7.MatRadioButton, i8.MatTooltip, i2.UpperCasePipe, i9.TranslatePipe, i10.DateAgoPipe], styles: [".collection-languages[_ngcontent-%COMP%]{display:flex;gap:2px}.collection-languages[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;border-radius:100px;padding-right:8px;padding-left:8px;color:var(--base-40);background-color:var(--base-70)}"] }); }
|
|
212
255
|
}
|
|
213
256
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TerminologyCollectionCardComponent, [{
|
|
214
257
|
type: Component,
|
|
215
|
-
args: [{ selector: 'lib-terminology-collection-card', template: "<ng-container *ngIf=\"collection\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button\r\n fxFlex\r\n fxLayoutAlign=\"center center\"\r\n [class.mat-mdc-radio-checked]=\"collection.default || collection === selected\"\r\n [disabled]=\"isSelectionDisabled\"\r\n [matTooltip]=\"collection.termTooltipKey ? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\"\r\n (click)=\"selectGlossary(collection)\"\r\n >\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <div class=\"collection-label\">\r\n <span *ngIf=\"!collection.termTooltipKey\" class=\"text-m-semi-bold\" [matTooltip]=\"collection.name ?? ''\">\r\n {{ collection.name }}\r\n </span>\r\n\r\n <span *ngIf=\"collection.termTooltipKey\" class=\"text-m-semi-bold\">\r\n {{ collection.name }}\r\n </span>\r\n </div>\r\n \r\n <span *ngIf=\"collection.default\" class=\"default-badge\" >{{ localizationKey + \"DEFAULT\" | translate }}</span>\r\n </div>\r\n \r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + \"TERMS_IN_USE\" | translate : { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + \"LAST_UPDATED\" | translate : { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n \r\n <div class=\"collection-label-block collection-status-labels text-s\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.5rem\">\r\n <div *ngIf=\"collection.mtStatus && collection.mtStatus === collectionErrorStatus\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.25rem\">\r\n <span color=\"accent\" class=\"material-icons collection-list-error\"> error </span>\r\n \r\n <span *ngIf=\"collection.mtCollection?.subStatus === collectionImportingErrorSubStatus\">\r\n {{ localizationKey + \"ERRORS.\" + (collection.mtCollection?.subStatus | uppercase) | translate }}\r\n </span>\r\n </div>\r\n \r\n <span *ngIf=\"collection.isImporting\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.5rem\">\r\n <mat-spinner color=\"accent\" diameter=\"20\"> </mat-spinner>\r\n <span>\r\n {{ tooltipLocalizationKey + \"IMPORTING\" | translate }}\r\n </span>\r\n </span>\r\n \r\n <button *ngIf=\"collection.syncButtonVisible\" mat-button color=\"primary\" (click)=\"attach(collection); $event.stopPropagation()\" [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\">\r\n <span fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"text-s\">\r\n <mat-icon class=\"pt-1\">sync</mat-icon>\r\n {{ localizationKey + \"SYNC\" | translate }}\r\n </span>\r\n </button>\r\n </div>\r\n </mat-radio-button>\r\n\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <a\r\n class=\"collection-list-edit\"\r\n mat-icon-button\r\n target=\"_blank\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'EDIT' | translate\"\r\n [attr.href]=\"getEditLink(collection)\"\r\n *ngIf=\"collection.termCollection\"\r\n >\r\n <mat-icon class=\"material-icons\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n" }]
|
|
258
|
+
args: [{ selector: 'lib-terminology-collection-card', template: "<ng-container *ngIf=\"collection\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <mat-radio-button\r\n fxFlex\r\n fxLayoutAlign=\"center center\"\r\n [class.mat-mdc-radio-checked]=\"collection.default || collection === selected\"\r\n [disabled]=\"isSelectionDisabled\"\r\n [matTooltip]=\"collection.termTooltipKey ? (tooltipLocalizationKey + collection.termTooltipKey | translate) : ''\"\r\n (click)=\"selectGlossary(collection)\"\r\n >\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <div class=\"collection-label\">\r\n <span *ngIf=\"!collection.termTooltipKey\" class=\"text-m-semi-bold\" [matTooltip]=\"collection.name ?? ''\">\r\n {{ collection.name }}\r\n </span>\r\n\r\n <span *ngIf=\"collection.termTooltipKey\" class=\"text-m-semi-bold\">\r\n {{ collection.name }}\r\n </span>\r\n </div>\r\n \r\n <span *ngIf=\"collection.default\" class=\"default-badge\" >{{ localizationKey + \"DEFAULT\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"collection-languages\">\r\n <ng-container *ngIf=\"collection.termCollection; else currentDirection\">\r\n <span *ngFor=\"let lang of collection.termCollection.languages\">{{lang.id}}</span>\r\n </ng-container>\r\n\r\n <ng-template #currentDirection>\r\n <span>{{sourceLanguageCode}}</span>\r\n <span>{{targetLanguageCode}}</span>\r\n </ng-template>\r\n </div>\r\n \r\n <span *ngIf=\"collection.termCount\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + \"TERMS_IN_USE\" | translate : { termCount: collection.termCount } }}\r\n </span>\r\n <span *ngIf=\"collection.lastUpdated\" class=\"collection-label-block text-s\">\r\n {{ localizationKey + \"LAST_UPDATED\" | translate : { date: collection.lastUpdated | dateAgo } }}\r\n </span>\r\n \r\n <div class=\"collection-label-block collection-status-labels text-s\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.5rem\">\r\n <div *ngIf=\"collection.mtStatus && collection.mtStatus === collectionErrorStatus\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.25rem\">\r\n <span color=\"accent\" class=\"material-icons collection-list-error\"> error </span>\r\n \r\n <span *ngIf=\"collection.mtCollection?.subStatus === collectionImportingErrorSubStatus\">\r\n {{ localizationKey + \"ERRORS.\" + (collection.mtCollection?.subStatus | uppercase) | translate }}\r\n </span>\r\n </div>\r\n \r\n <span *ngIf=\"collection.isImporting\" fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"0.5rem\">\r\n <mat-spinner color=\"accent\" diameter=\"20\"> </mat-spinner>\r\n <span>\r\n {{ tooltipLocalizationKey + \"IMPORTING\" | translate }}\r\n </span>\r\n </span>\r\n \r\n <button *ngIf=\"collection.syncButtonVisible\" mat-button color=\"primary\" (click)=\"attach(collection); $event.stopPropagation()\" [matTooltip]=\"tooltipLocalizationKey + 'SYNC' | translate\">\r\n <span fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"text-s\">\r\n <mat-icon class=\"pt-1\">sync</mat-icon>\r\n {{ localizationKey + \"SYNC\" | translate }}\r\n </span>\r\n </button>\r\n </div>\r\n </mat-radio-button>\r\n\r\n <ng-container *ngIf=\"hasEditPermissions\">\r\n <a\r\n class=\"collection-list-edit\"\r\n mat-icon-button\r\n target=\"_blank\"\r\n [matTooltip]=\"tooltipLocalizationKey + 'EDIT' | translate\"\r\n [attr.href]=\"getEditLink(collection)\"\r\n *ngIf=\"collection.termCollection\"\r\n >\r\n <mat-icon class=\"material-icons material-icons-outlined\">edit</mat-icon>\r\n </a>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n", styles: [".collection-languages{display:flex;gap:2px}.collection-languages span{font-size:12px;border-radius:100px;padding-right:8px;padding-left:8px;color:var(--base-40);background-color:var(--base-70)}\n"] }]
|
|
216
259
|
}], () => [{ type: i1.TerminologyService }, { type: i1.TerminologyCollectionService }], { collection: [{
|
|
217
260
|
type: Input
|
|
218
261
|
}], selected: [{
|
|
@@ -233,4 +276,4 @@ export class TerminologyCollectionCardComponent {
|
|
|
233
276
|
type: Output
|
|
234
277
|
}] }); })();
|
|
235
278
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TerminologyCollectionCardComponent, { className: "TerminologyCollectionCardComponent", filePath: "lib\\terminology\\components\\terminology-panel\\terminology-collection-list\\terminology-collection-card\\terminology-collection-card.component.ts", lineNumber: 11 }); })();
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3ktY29sbGVjdGlvbi1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS9jb21wb25lbnRzL3Rlcm1pbm9sb2d5LXBhbmVsL3Rlcm1pbm9sb2d5LWNvbGxlY3Rpb24tbGlzdC90ZXJtaW5vbG9neS1jb2xsZWN0aW9uLWNhcmQvdGVybWlub2xvZ3ktY29sbGVjdGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS9jb21wb25lbnRzL3Rlcm1pbm9sb2d5LXBhbmVsL3Rlcm1pbm9sb2d5LWNvbGxlY3Rpb24tbGlzdC90ZXJtaW5vbG9neS1jb2xsZWN0aW9uLWNhcmQvdGVybWlub2xvZ3ktY29sbGVjdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1U1RSxnQ0FBdUc7SUFDckcsWUFDRjtJQUFBLGlCQUFPOzs7O0lBRjJELGdIQUFvQztJQUNwRyxjQUNGO0lBREUsdURBQ0Y7OztJQUVBLGdDQUFpRTtJQUMvRCxZQUNGO0lBQUEsaUJBQU87OztJQURMLGNBQ0Y7SUFERSx1REFDRjs7O0lBR0YsZ0NBQXdEO0lBQUEsWUFBNkM7O0lBQUEsaUJBQU87OztJQUFwRCxjQUE2QztJQUE3Qyw4RUFBNkM7OztJQUd2RyxnQ0FBeUU7SUFDdkUsWUFDRjs7SUFBQSxpQkFBTzs7O0lBREwsY0FDRjtJQURFLHVK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VUFBOEI7UUFDeEMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsRUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzSSxDQUFDO0lBRU8sb0JBQW9CLENBQUMsVUFBOEI7UUFDekQsT0FBTyxVQUFVLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxVQUFVLENBQUMsV0FBcUIsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQTtJQUNsRyxDQUFDO21JQXZDVSxrQ0FBa0M7b0VBQWxDLGtDQUFrQztZQ1YvQyx1R0FBaUM7O1lBQWxCLHFDQUFnQjs7O2lGRFVsQixrQ0FBa0M7Y0FMOUMsU0FBUzsyQkFDRSxpQ0FBaUM7OEZBS2xDLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLHNCQUFzQjtrQkFBOUIsS0FBSztZQUNHLGtCQUFrQjtrQkFBMUIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFDSSxtQkFBbUI7a0JBQTVCLE1BQU07O2tGQVRJLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbWJpbmVkQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEVuZ2luZVRlcm1Db2xsZWN0aW9uU3ViU3RhdHVzLCBNdENvbGxlY3Rpb25TdGF0dXMgfSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IFRlcm1pbm9sb2d5Q29sbGVjdGlvblNlcnZpY2UsIFRlcm1pbm9sb2d5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRlcm1pbm9sb2d5LWNvbGxlY3Rpb24tY2FyZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rlcm1pbm9sb2d5LWNvbGxlY3Rpb24tY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVybWlub2xvZ3ktY29sbGVjdGlvbi1jYXJkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRlcm1pbm9sb2d5Q29sbGVjdGlvbkNhcmRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNvbGxlY3Rpb24hOiBDb21iaW5lZENvbGxlY3Rpb247XHJcbiAgQElucHV0KCkgc2VsZWN0ZWQhOiBDb21iaW5lZENvbGxlY3Rpb24gfCBudWxsO1xyXG4gIEBJbnB1dCgpIGxvY2FsaXphdGlvbktleSE6IHN0cmluZztcclxuICBASW5wdXQoKSB0b29sdGlwTG9jYWxpemF0aW9uS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNvdXJjZUxhbmd1YWdlQ29kZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBlbmdpbmVJZCE6IHN0cmluZztcclxuICBASW5wdXQoKSB0YXJnZXRMYW5ndWFnZUNvZGUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGFzRWRpdFBlcm1pc3Npb25zITogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgZ2xvc3NhcnlTZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tYmluZWRDb2xsZWN0aW9uPigpO1xyXG5cclxuICBjb2xsZWN0aW9uRXJyb3JTdGF0dXMgPSBNdENvbGxlY3Rpb25TdGF0dXMuRVJST1JcclxuXHJcbiAgY29sbGVjdGlvbkltcG9ydGluZ0Vycm9yU3ViU3RhdHVzID0gRW5naW5lVGVybUNvbGxlY3Rpb25TdWJTdGF0dXMuRVJST1JfSU1QT1JUSU5HO1xyXG5cclxuICBnZXQgaXNTZWxlY3Rpb25EaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzQ29sbGVjdGlvbkRpc2FibGVkKHRoaXMuY29sbGVjdGlvbik7XHJcbiAgfVxyXG4gIFxyXG4gIGNvbnN0cnVjdG9yIChwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5Q29sbGVjdGlvbjogVGVybWlub2xvZ3lDb2xsZWN0aW9uU2VydmljZSkge31cclxuXHJcbiAgc2VsZWN0R2xvc3NhcnkoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0NvbGxlY3Rpb25EaXNhYmxlZChjb2xsZWN0aW9uKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nbG9zc2FyeVNlbGVjdEV2ZW50LmVtaXQoY29sbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBhdHRhY2goY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlcm1pbm9sb2d5U2VydmljZS5zeW5jKGNvbGxlY3Rpb24sIHRoaXMuZW5naW5lSWQpLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdExpbmsoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXJtaW5vbG9neUNvbGxlY3Rpb24uZ2V0RWRpdExpbmsoY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbj8uaWQgYXMgc3RyaW5nLCB0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZSwgdGhpcy50YXJnZXRMYW5ndWFnZUNvZGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0NvbGxlY3Rpb25EaXNhYmxlZChjb2xsZWN0aW9uOiBDb21iaW5lZENvbGxlY3Rpb24pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBjb2xsZWN0aW9uLnRlcm1JZCAhPT0gbnVsbCAmJiBjb2xsZWN0aW9uLnRlcm1FbnRyaWVzIGFzIG51bWJlciA8PSAwIHx8IGNvbGxlY3Rpb24uZGVmYXVsdFxyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29sbGVjdGlvblwiPlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICA8bWF0LXJhZGlvLWJ1dHRvblxyXG4gICAgICBmeEZsZXhcclxuICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICBbY2xhc3MubWF0LW1kYy1yYWRpby1jaGVja2VkXT1cImNvbGxlY3Rpb24uZGVmYXVsdCB8fCBjb2xsZWN0aW9uID09PSBzZWxlY3RlZFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1NlbGVjdGlvbkRpc2FibGVkXCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwiY29sbGVjdGlvbi50ZXJtVG9vbHRpcEtleSA/ICh0b29sdGlwTG9jYWxpemF0aW9uS2V5ICsgY29sbGVjdGlvbi50ZXJtVG9vbHRpcEtleSB8IHRyYW5zbGF0ZSkgOiAnJ1wiXHJcbiAgICAgIChjbGljayk9XCJzZWxlY3RHbG9zc2FyeShjb2xsZWN0aW9uKVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxlY3Rpb24tbGFiZWxcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXlcIiBjbGFzcz1cInRleHQtbS1zZW1pLWJvbGRcIiBbbWF0VG9vbHRpcF09XCJjb2xsZWN0aW9uLm5hbWUgPz8gJydcIj5cclxuICAgICAgICAgICAge3sgY29sbGVjdGlvbi5uYW1lIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2xsZWN0aW9uLnRlcm1Ub29sdGlwS2V5XCIgY2xhc3M9XCJ0ZXh0LW0tc2VtaS1ib2xkXCI+XHJcbiAgICAgICAgICAgIHt7IGNvbGxlY3Rpb24ubmFtZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY29sbGVjdGlvbi5kZWZhdWx0XCIgY2xhc3M9XCJkZWZhdWx0LWJhZGdlXCIgPnt7IGxvY2FsaXphdGlvbktleSArIFwiREVGQVVMVFwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgPHNwYW4gKm5nSWY9XCJjb2xsZWN0aW9uLnRlcm1Db3VudFwiIGNsYXNzPVwiY29sbGVjdGlvbi1sYWJlbC1ibG9jayB0ZXh0LXNcIj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIlRFUk1TX0lOX1VTRVwiIHwgdHJhbnNsYXRlIDogeyB0ZXJtQ291bnQ6IGNvbGxlY3Rpb24udGVybUNvdW50IH0gfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvbGxlY3Rpb24ubGFzdFVwZGF0ZWRcIiBjbGFzcz1cImNvbGxlY3Rpb24tbGFiZWwtYmxvY2sgdGV4dC1zXCI+XHJcbiAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgXCJMQVNUX1VQREFURURcIiB8IHRyYW5zbGF0ZSA6IHsgZGF0ZTogY29sbGVjdGlvbi5sYXN0VXBkYXRlZCB8IGRhdGVBZ28gfSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsLWJsb2NrIGNvbGxlY3Rpb24tc3RhdHVzLWxhYmVscyB0ZXh0LXNcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb2xsZWN0aW9uLm10U3RhdHVzICYmIGNvbGxlY3Rpb24ubXRTdGF0dXMgPT09IGNvbGxlY3Rpb25FcnJvclN0YXR1c1wiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMC4yNXJlbVwiPlxyXG4gICAgICAgICAgPHNwYW4gY29sb3I9XCJhY2NlbnRcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGNvbGxlY3Rpb24tbGlzdC1lcnJvclwiPiBlcnJvciA8L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uPy5zdWJTdGF0dXMgPT09IGNvbGxlY3Rpb25JbXBvcnRpbmdFcnJvclN1YlN0YXR1c1wiPlxyXG4gICAgICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkVSUk9SUy5cIiArIChjb2xsZWN0aW9uLm10Q29sbGVjdGlvbj8uc3ViU3RhdHVzIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY29sbGVjdGlvbi5pc0ltcG9ydGluZ1wiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICA8bWF0LXNwaW5uZXIgY29sb3I9XCJhY2NlbnRcIiBkaWFtZXRlcj1cIjIwXCI+IDwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge3sgdG9vbHRpcExvY2FsaXphdGlvbktleSArIFwiSU1QT1JUSU5HXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbGxlY3Rpb24uc3luY0J1dHRvblZpc2libGVcIiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhdHRhY2goY29sbGVjdGlvbik7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXBMb2NhbGl6YXRpb25LZXkgKyAnU1lOQycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgIDxzcGFuIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGNsYXNzPVwidGV4dC1zXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInB0LTFcIj5zeW5jPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgXCJTWU5DXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1yYWRpby1idXR0b24+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0VkaXRQZXJtaXNzaW9uc1wiPlxyXG4gICAgICA8YVxyXG4gICAgICAgIGNsYXNzPVwiY29sbGVjdGlvbi1saXN0LWVkaXRcIlxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcExvY2FsaXphdGlvbktleSArICdFRElUJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2F0dHIuaHJlZl09XCJnZXRFZGl0TGluayhjb2xsZWN0aW9uKVwiXHJcbiAgICAgICAgKm5nSWY9XCJjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3ktY29sbGVjdGlvbi1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS9jb21wb25lbnRzL3Rlcm1pbm9sb2d5LXBhbmVsL3Rlcm1pbm9sb2d5LWNvbGxlY3Rpb24tbGlzdC90ZXJtaW5vbG9neS1jb2xsZWN0aW9uLWNhcmQvdGVybWlub2xvZ3ktY29sbGVjdGlvbi1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS9jb21wb25lbnRzL3Rlcm1pbm9sb2d5LXBhbmVsL3Rlcm1pbm9sb2d5LWNvbGxlY3Rpb24tbGlzdC90ZXJtaW5vbG9neS1jb2xsZWN0aW9uLWNhcmQvdGVybWlub2xvZ3ktY29sbGVjdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1U1RSxnQ0FBdUc7SUFDckcsWUFDRjtJQUFBLGlCQUFPOzs7O0lBRjJELGdIQUFvQztJQUNwRyxjQUNGO0lBREUsdURBQ0Y7OztJQUVBLGdDQUFpRTtJQUMvRCxZQUNGO0lBQUEsaUJBQU87OztJQURMLGNBQ0Y7SUFERSx1REFDRjs7O0lBR0YsZ0NBQXdEO0lBQUEsWUFBNkM7O0lBQUEsaUJBQU87OztJQUFwRCxjQUE2QztJQUE3Qyw4RUFBNkM7OztJQUtuRyw0QkFBK0Q7SUFBQSxZQUFXO0lBQUEsaUJBQU87OztJQUFsQixjQUFXO0lBQVgsZ0NB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QyxVQUFVO2tCQUFsQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFDRyxzQkFBc0I7a0JBQTlCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csa0JBQWtCO2tCQUExQixLQUFLO1lBQ0ksbUJBQW1CO2tCQUE1QixNQUFNOztrRkFUSSxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21iaW5lZENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBFbmdpbmVUZXJtQ29sbGVjdGlvblN1YlN0YXR1cywgTXRDb2xsZWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBUZXJtaW5vbG9neUNvbGxlY3Rpb25TZXJ2aWNlLCBUZXJtaW5vbG9neVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10ZXJtaW5vbG9neS1jb2xsZWN0aW9uLWNhcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXJtaW5vbG9neS1jb2xsZWN0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Rlcm1pbm9sb2d5LWNvbGxlY3Rpb24tY2FyZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neUNvbGxlY3Rpb25DYXJkQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb2xsZWN0aW9uITogQ29tYmluZWRDb2xsZWN0aW9uO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkITogQ29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbDtcclxuICBASW5wdXQoKSBsb2NhbGl6YXRpb25LZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdG9vbHRpcExvY2FsaXphdGlvbktleSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzb3VyY2VMYW5ndWFnZUNvZGUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZW5naW5lSWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGFyZ2V0TGFuZ3VhZ2VDb2RlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGhhc0VkaXRQZXJtaXNzaW9ucyE6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGdsb3NzYXJ5U2VsZWN0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmVkQ29sbGVjdGlvbj4oKTtcclxuXHJcbiAgY29sbGVjdGlvbkVycm9yU3RhdHVzID0gTXRDb2xsZWN0aW9uU3RhdHVzLkVSUk9SXHJcblxyXG4gIGNvbGxlY3Rpb25JbXBvcnRpbmdFcnJvclN1YlN0YXR1cyA9IEVuZ2luZVRlcm1Db2xsZWN0aW9uU3ViU3RhdHVzLkVSUk9SX0lNUE9SVElORztcclxuXHJcbiAgZ2V0IGlzU2VsZWN0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0NvbGxlY3Rpb25EaXNhYmxlZCh0aGlzLmNvbGxlY3Rpb24pO1xyXG4gIH1cclxuICBcclxuICBjb25zdHJ1Y3RvciAocHJpdmF0ZSByZWFkb25seSB0ZXJtaW5vbG9neVNlcnZpY2U6IFRlcm1pbm9sb2d5U2VydmljZSwgcHJpdmF0ZSByZWFkb25seSB0ZXJtaW5vbG9neUNvbGxlY3Rpb246IFRlcm1pbm9sb2d5Q29sbGVjdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIHNlbGVjdEdsb3NzYXJ5KGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNDb2xsZWN0aW9uRGlzYWJsZWQoY29sbGVjdGlvbikpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ2xvc3NhcnlTZWxlY3RFdmVudC5lbWl0KGNvbGxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgYXR0YWNoKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy50ZXJtaW5vbG9neVNlcnZpY2Uuc3luYyhjb2xsZWN0aW9uLCB0aGlzLmVuZ2luZUlkKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRMaW5rKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IHN0cmluZyB7XHJcbiAgICAvLyBDb2xsZWN0aW9ucyB3aXRoIHRlcm1zIHRoYXQgc2hvdWxkbid0IGJlIHRyYW5zbGF0ZWQuXHJcbiAgICBpZiAoY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbj8ubGFuZ3VhZ2VzICYmIGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24/Lmxhbmd1YWdlcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lDb2xsZWN0aW9uLmdldEVkaXRMaW5rKGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24uaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFkZHMgYm90aCBzb3VyY2UgYW5kIHRhcmdldCBsYW5ndWFnZXMgdG8gdGhlIGNvbGxlY3Rpb24uIFxyXG4gICAgcmV0dXJuIHRoaXMudGVybWlub2xvZ3lDb2xsZWN0aW9uLmdldEVkaXRMaW5rKGNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24hLmlkLCB0aGlzLnNvdXJjZUxhbmd1YWdlQ29kZSwgIHRoaXMudGFyZ2V0TGFuZ3VhZ2VDb2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNDb2xsZWN0aW9uRGlzYWJsZWQoY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gY29sbGVjdGlvbi50ZXJtSWQgIT09IG51bGwgJiYgY29sbGVjdGlvbi50ZXJtRW50cmllcyBhcyBudW1iZXIgPD0gMCB8fCBjb2xsZWN0aW9uLmRlZmF1bHRcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbGxlY3Rpb25cIj5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxyXG4gICAgPG1hdC1yYWRpby1idXR0b25cclxuICAgICAgZnhGbGV4XHJcbiAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgW2NsYXNzLm1hdC1tZGMtcmFkaW8tY2hlY2tlZF09XCJjb2xsZWN0aW9uLmRlZmF1bHQgfHwgY29sbGVjdGlvbiA9PT0gc2VsZWN0ZWRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNTZWxlY3Rpb25EaXNhYmxlZFwiXHJcbiAgICAgIFttYXRUb29sdGlwXT1cImNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXkgPyAodG9vbHRpcExvY2FsaXphdGlvbktleSArIGNvbGxlY3Rpb24udGVybVRvb2x0aXBLZXkgfCB0cmFuc2xhdGUpIDogJydcIlxyXG4gICAgICAoY2xpY2spPVwic2VsZWN0R2xvc3NhcnkoY29sbGVjdGlvbilcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFjb2xsZWN0aW9uLnRlcm1Ub29sdGlwS2V5XCIgY2xhc3M9XCJ0ZXh0LW0tc2VtaS1ib2xkXCIgW21hdFRvb2x0aXBdPVwiY29sbGVjdGlvbi5uYW1lID8/ICcnXCI+XHJcbiAgICAgICAgICAgIHt7IGNvbGxlY3Rpb24ubmFtZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sbGVjdGlvbi50ZXJtVG9vbHRpcEtleVwiIGNsYXNzPVwidGV4dC1tLXNlbWktYm9sZFwiPlxyXG4gICAgICAgICAgICB7eyBjb2xsZWN0aW9uLm5hbWUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvbGxlY3Rpb24uZGVmYXVsdFwiIGNsYXNzPVwiZGVmYXVsdC1iYWRnZVwiID57eyBsb2NhbGl6YXRpb25LZXkgKyBcIkRFRkFVTFRcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi1sYW5ndWFnZXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbjsgZWxzZSBjdXJyZW50RGlyZWN0aW9uXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGFuZyBvZiBjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uLmxhbmd1YWdlc1wiPnt7bGFuZy5pZH19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2N1cnJlbnREaXJlY3Rpb24+XHJcbiAgICAgICAgICA8c3Bhbj57e3NvdXJjZUxhbmd1YWdlQ29kZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+e3t0YXJnZXRMYW5ndWFnZUNvZGV9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgPHNwYW4gKm5nSWY9XCJjb2xsZWN0aW9uLnRlcm1Db3VudFwiIGNsYXNzPVwiY29sbGVjdGlvbi1sYWJlbC1ibG9jayB0ZXh0LXNcIj5cclxuICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIlRFUk1TX0lOX1VTRVwiIHwgdHJhbnNsYXRlIDogeyB0ZXJtQ291bnQ6IGNvbGxlY3Rpb24udGVybUNvdW50IH0gfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvbGxlY3Rpb24ubGFzdFVwZGF0ZWRcIiBjbGFzcz1cImNvbGxlY3Rpb24tbGFiZWwtYmxvY2sgdGV4dC1zXCI+XHJcbiAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgXCJMQVNUX1VQREFURURcIiB8IHRyYW5zbGF0ZSA6IHsgZGF0ZTogY29sbGVjdGlvbi5sYXN0VXBkYXRlZCB8IGRhdGVBZ28gfSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLWxhYmVsLWJsb2NrIGNvbGxlY3Rpb24tc3RhdHVzLWxhYmVscyB0ZXh0LXNcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIiBmeExheW91dEdhcD1cIjAuNXJlbVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb2xsZWN0aW9uLm10U3RhdHVzICYmIGNvbGxlY3Rpb24ubXRTdGF0dXMgPT09IGNvbGxlY3Rpb25FcnJvclN0YXR1c1wiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMC4yNXJlbVwiPlxyXG4gICAgICAgICAgPHNwYW4gY29sb3I9XCJhY2NlbnRcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGNvbGxlY3Rpb24tbGlzdC1lcnJvclwiPiBlcnJvciA8L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbGxlY3Rpb24ubXRDb2xsZWN0aW9uPy5zdWJTdGF0dXMgPT09IGNvbGxlY3Rpb25JbXBvcnRpbmdFcnJvclN1YlN0YXR1c1wiPlxyXG4gICAgICAgICAgICB7eyBsb2NhbGl6YXRpb25LZXkgKyBcIkVSUk9SUy5cIiArIChjb2xsZWN0aW9uLm10Q29sbGVjdGlvbj8uc3ViU3RhdHVzIHwgdXBwZXJjYXNlKSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY29sbGVjdGlvbi5pc0ltcG9ydGluZ1wiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4TGF5b3V0R2FwPVwiMC41cmVtXCI+XHJcbiAgICAgICAgICA8bWF0LXNwaW5uZXIgY29sb3I9XCJhY2NlbnRcIiBkaWFtZXRlcj1cIjIwXCI+IDwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge3sgdG9vbHRpcExvY2FsaXphdGlvbktleSArIFwiSU1QT1JUSU5HXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgXHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbGxlY3Rpb24uc3luY0J1dHRvblZpc2libGVcIiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhdHRhY2goY29sbGVjdGlvbik7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXBMb2NhbGl6YXRpb25LZXkgKyAnU1lOQycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgIDxzcGFuIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGNsYXNzPVwidGV4dC1zXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInB0LTFcIj5zeW5jPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAge3sgbG9jYWxpemF0aW9uS2V5ICsgXCJTWU5DXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1yYWRpby1idXR0b24+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0VkaXRQZXJtaXNzaW9uc1wiPlxyXG4gICAgICA8YVxyXG4gICAgICAgIGNsYXNzPVwiY29sbGVjdGlvbi1saXN0LWVkaXRcIlxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcExvY2FsaXphdGlvbktleSArICdFRElUJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2F0dHIuaHJlZl09XCJnZXRFZGl0TGluayhjb2xsZWN0aW9uKVwiXHJcbiAgICAgICAgKm5nSWY9XCJjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIG1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
@@ -244,11 +244,11 @@ export class TerminologyService {
|
|
|
244
244
|
this.engines[engineId].isAnyImporting = true;
|
|
245
245
|
}
|
|
246
246
|
const existing = CombinedCollection.findExistingCollectionFromList(this.engines[engineId].collections, collection);
|
|
247
|
-
//
|
|
247
|
+
// Displaying collection if one of the engine languages is included.
|
|
248
248
|
if (!existing && collection.source === EngineTermCollectionSource.TILDE_TERM) {
|
|
249
249
|
let hasLanguages = true;
|
|
250
250
|
for (let i = 0; i < this.engines[engineId].engineLanguages.length; i++) {
|
|
251
|
-
if (!collection.termCollection?.languages?.find((lang) =>
|
|
251
|
+
if (!collection.termCollection?.languages?.find((lang) => this.engines[engineId].engineLanguages.includes(lang.id))) {
|
|
252
252
|
hasLanguages = false;
|
|
253
253
|
break;
|
|
254
254
|
}
|
|
@@ -320,4 +320,4 @@ export class TerminologyService {
|
|
|
320
320
|
providedIn: 'root',
|
|
321
321
|
}]
|
|
322
322
|
}], () => [{ type: i1.TerminologyConfigService }, { type: i2.AlertService }, { type: i3.TerminologyCollectionService }, { type: i4.TerminologyApiService }], null); })();
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS9zZXJ2aWNlcy90ZXJtaW5vbG9neS90ZXJtaW5vbG9neS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBUWxELE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsSUFBSSxlQUFlLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFDO0lBQzlELElBQUksb0JBQW9CLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUM7SUFJaEYsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxDQUNMLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07WUFDOUIsSUFBSSxDQUFDLG9CQUFvQjtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUNtQixNQUFnQyxFQUNoQyxLQUFtQixFQUNuQixpQkFBK0MsRUFDL0MsS0FBNEI7UUFINUIsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFDaEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQThC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QUM7WUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTyxzQ0FBc0M7UUFDNUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQzttSEEvWlUsa0JBQWtCO3VFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZqQixNQUFNOztpRkFFUCxrQkFBa0I7Y0FIOUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGZvcmtKb2luLCBvZiwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UsIE10Q29sbGVjdGlvblN0YXR1cyB9IGZyb20gJy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgQ29tYmluZWRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lFbmdpbmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVybWlub2xvZ3ktZW5naW5lLm1vZGVsJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vdGVybWlub2xvZ3ktYXBpL3Rlcm1pbm9sb2d5LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lDb2xsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3Rlcm1pbm9sb2d5LWNvbGxlY3Rpb24vdGVybWlub2xvZ3ktY29sbGVjdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBlbmdpbmVzOiB7IFtlbmdpbmVJZDogc3RyaW5nXTogVGVybWlub2xvZ3lFbmdpbmUgfSA9IHt9O1xyXG5cclxuICBwcml2YXRlIHJldHJhbnNsYXRlU3ViamVjdCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgcHJpdmF0ZSBlbmdpbmVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmVuZ2luZXMpO1xyXG4gIHByaXZhdGUgdXBkYXRlZEVuZ2luZXNTdWJqZWN0ID0gbmV3IFN1YmplY3Q8eyBbZW5naW5lSWQ6IHN0cmluZ106IFRlcm1pbm9sb2d5RW5naW5lIH0+KCk7XHJcblxyXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQoKSB7IHJldHVybiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmlzQXV0aCB9XHJcbiAgZ2V0IGNhbkNyZWF0ZUNvbGxlY3Rpb25zKCkgeyByZXR1cm4gdGhpcy5jb25maWcudGVybUNvbmZpZy5jYW5DcmVhdGVDb2xsZWN0aW9uIH1cclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IExPQ0FMX1NUT1JBR0VfS0VZID0gJ3N5c3RlbUxhc3RDb2xsZWN0aW9ucyc7XHJcblxyXG4gIGdldCBoYXNFZGl0UGVybWlzc2lvbnMoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmNvbmZpZz8udGVybUNvbmZpZy5pc0F1dGggJiZcclxuICAgICAgdGhpcy5jYW5DcmVhdGVDb2xsZWN0aW9ucyAmJlxyXG4gICAgICB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmlzVGVybVBvcnRhbFN1cHBvcnRlZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRlcm1pbm9sb2d5Q29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnQ6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybUNvbGxlY3Rpb25BcGk6IFRlcm1pbm9sb2d5Q29sbGVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG10QXBpOiBUZXJtaW5vbG9neUFwaVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBnZXRSZXRyYW5zbGF0ZVNpZ25hbCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLnJldHJhbnNsYXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0RW5naW5lcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZW5naW5lcyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgaGFzQW55Q29sbGVjdGlvbnMoc3lzdGVtSWQ6IHN0cmluZyk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbmdpbmVzW3N5c3RlbUlkXT8uY29sbGVjdGlvbnMuc2l6ZSA+IDAgfVxyXG5cclxuICBnZXRFbmdpbmVzV2l0aFNlbGVjdGVkQ29sbGVjdGlvbkNoYW5nZSgpOiBPYnNlcnZhYmxlPHsgW2VuZ2luZUlkOiBzdHJpbmddOiBUZXJtaW5vbG9neUVuZ2luZSB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkRW5naW5lc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRFbmdpbmUoXHJcbiAgICBlbmdpbmVJZDogc3RyaW5nLFxyXG4gICAgbGFuZ3VhZ2VzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsLFxyXG4gICAgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UsXHJcbiAgICB0ZXJtQ29sbGVjdGlvbnMgPSB0cnVlLFxyXG4gICAgbXRDb2xsZWN0aW9ucyA9IHRydWUsXHJcbiAgICBzZWxlY3RlZENvbGxlY3Rpb24/OiBDb21iaW5lZENvbGxlY3Rpb24sXHJcbiAgICBhdXRvUmVmcmVzaD86IGJvb2xlYW5cclxuICApIHtcclxuICAgIGNvbnN0IGVuZ2luZUV4aXN0cyA9IHRoaXMuZW5naW5lc1tlbmdpbmVJZF0gPz8gbnVsbDtcclxuXHJcbiAgICBpZiAoIWVuZ2luZUV4aXN0cykge1xyXG4gICAgICBjb25zdCBuZXdFbmdpbmU6IFRlcm1pbm9sb2d5RW5naW5lID0ge1xyXG4gICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZENvbGxlY3Rpb24gfHwgbnVsbCxcclxuICAgICAgICBpc0ltcG9ydGluZzogZmFsc2UsXHJcbiAgICAgICAgaXNBbnlJbXBvcnRpbmc6IGZhbHNlLFxyXG4gICAgICAgIGhhc0FueUNvbGxlY3Rpb25zOiBmYWxzZSxcclxuICAgICAgICBpc1JlZnJlc2hpbmdDb2xsZWN0aW9uczogZmFsc2UsXHJcbiAgICAgICAgY29sbGVjdGlvbnM6IG5ldyBTZXQ8Q29tYmluZWRDb2xsZWN0aW9uPixcclxuICAgICAgICByZWZyZXNoTXRDb2xsZWN0aW9uczogbXRDb2xsZWN0aW9ucyxcclxuICAgICAgICByZWZyZXNoVGVybUNvbGxlY3Rpb25zOiB0ZXJtQ29sbGVjdGlvbnMsXHJcbiAgICAgICAgZW5naW5lTGFuZ3VhZ2VzOiBsYW5ndWFnZXMgfHwgW10sXHJcbiAgICAgICAgaXNTb2Z0QXV0b1JlZnJlc2hPbjogZmFsc2UsXHJcbiAgICAgICAgaGFyZEF1dG9SZWZyZXNoOiBhdXRvUmVmcmVzaCA/PyBmYWxzZSxcclxuICAgICAgICByZWZyZXNoVGltZW91dDogMFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXSA9IG5ld0VuZ2luZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVuZ2luZUV4aXN0cy5oYXJkQXV0b1JlZnJlc2ggPSBhdXRvUmVmcmVzaCA/PyBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5sb2FkQ29sbGVjdGlvbnMoZW5naW5lSWQsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZENvbGxlY3Rpb24oZW5naW5lSWQ6IHN0cmluZywgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbCwgc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXSkge1xyXG4gICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkID0gY29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlKGVuZ2luZUlkKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJldHJhbnNsYXRlU3ViamVjdC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgbG9hZENvbGxlY3Rpb25zKGVuZ2luZUlkOiBzdHJpbmcsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHsgW2VuZ2luZUlkOiBzdHJpbmddOiBUZXJtaW5vbG9neUVuZ2luZTsgfT4ge1xyXG4gICAgLy8gY2xlYXIgdGltZW91dCBzaW5jZSB0aGlzIHJlZnJlc2ggcmVwbGFjZXMgc2NoZWR1bGVkXHJcbiAgICB0aGlzLmNsZWFyVGltZW91dChlbmdpbmVJZCk7XHJcblxyXG4gICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXSA9IHsgLi4udGhpcy5lbmdpbmVzW2VuZ2luZUlkXSwgaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM6IHRydWUgfVxyXG5cclxuICAgIGxldCB0ZXJtUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdO1xyXG4gICAgbGV0IG10QXBpUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdO1xyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbltdPltdID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMuZW5naW5lc1tlbmdpbmVJZF0ucmVmcmVzaFRlcm1Db2xsZWN0aW9ucykge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMudGVybUNvbGxlY3Rpb25BcGlcclxuICAgICAgICAgIC5nZXRDb2xsZWN0aW9uTGlzdCgpXHJcbiAgICAgICAgICAucGlwZSh0YXAoKHJlc3BvbnNlKSA9PiAodGVybVJlc3BvbnNlID0gcmVzcG9uc2UpKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnJlZnJlc2hNdENvbGxlY3Rpb25zKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5tdEFwaVxyXG4gICAgICAgICAgLmdldExpc3QoZW5naW5lSWQpXHJcbiAgICAgICAgICAucGlwZSh0YXAoKHJlc3BvbnNlKSA9PiAobXRBcGlSZXNwb25zZSA9IHJlc3BvbnNlKSkpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBmb3JrSm9pbihvYnNlcnZhYmxlcykuc3Vic2NyaWJlKHtcclxuICAgICAgLy8gZG8gbm90IG5lZWQgcmVzcG9uc2UgYmVjYXVlIHJlc3BvbnNlcyBhcmUgc2F2ZWQgaW4gcGlwZSBtZXRob2RzXHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmlzQW55SW1wb3J0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgLy8gbm90ZSB0aGF0IHRlcm1SZXNwb25zZSBhbmQgbXRhcGlyZXNwb25zZSBnZXRzIGNoYW5nZWQgZHVyaW5nIHJlbW92ZSBtZXRob2RcclxuICAgICAgICB0aGlzLnJlbW92ZURlbGV0ZWQodGVybVJlc3BvbnNlLCBtdEFwaVJlc3BvbnNlLCBlbmdpbmVJZCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGpvaW5lZCA9IFtdO1xyXG4gICAgICAgIGlmIChtdEFwaVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBqb2luZWQucHVzaCguLi5tdEFwaVJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRlcm1SZXNwb25zZSkge1xyXG4gICAgICAgICAgam9pbmVkLnB1c2goLi4udGVybVJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWRkQ29sbGVjdGlvbnMoam9pbmVkLCBlbmdpbmVJZCk7XHJcbiAgICAgICAgaWYgKHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UoZW5naW5lSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZVJlZnJlc2goZW5naW5lSWQsIG51bGwpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIC8vIGl0IGlzIGVub3VnaCB0byBzaG93IGVycm9yIG9ubHkgaW4gY29uc29sZS4gTm8gc3BlY2lhbCB0aGluZyBpcyBuZWNlc3NhcnkuXHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5lbmdpbmVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sbGVjdGlvbnMoKTogT2JzZXJ2YWJsZTx7IFtlbmdpbmVJZDogc3RyaW5nXTogVGVybWlub2xvZ3lFbmdpbmUgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0QXV0b1JlZnJlc2goZW5naW5lSWQ6IHN0cmluZywgbGFuZ3VhZ2VzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsLCBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UgPSBmYWxzZSwgdGVybUNvbGxlY3Rpb25zID0gdHJ1ZSwgbXRDb2xsZWN0aW9ucyA9IHRydWUpIHtcclxuICAgIHJldHVybiB0aGlzLnNldEVuZ2luZShlbmdpbmVJZCwgbGFuZ3VhZ2VzID8/IHRoaXMuZW5naW5lc1tlbmdpbmVJZF0/LmVuZ2luZUxhbmd1YWdlcywgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0ZXJtQ29sbGVjdGlvbnMsIG10Q29sbGVjdGlvbnMsIHVuZGVmaW5lZCwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBzdG9wQXV0b1JlZnJlc2goZW5naW5lSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoZW5naW5lSWQpO1xyXG5cclxuICAgIGlmICh0aGlzLmVuZ2luZXNbZW5naW5lSWRdKSB7XHJcbiAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uaXNTb2Z0QXV0b1JlZnJlc2hPbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmhhcmRBdXRvUmVmcmVzaCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlKFxyXG4gICAgc291cmNlTGFuZ3VhZ2U6IHN0cmluZyxcclxuICAgIHRhcmdldExhbmd1YWdlOiBzdHJpbmcsXHJcbiAgICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLFxyXG4gICAgZW5naW5lSWQ6IHN0cmluZyxcclxuICAgIHJlZGlyZWN0VG9FZGl0ID0gdHJ1ZVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUNvbGxlY3Rpb25BcGlcclxuICAgICAgLmNyZWF0ZUNvbGxlY3Rpb24oW3NvdXJjZUxhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZV0sIGNvbGxlY3Rpb25OYW1lKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKGNvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgIGlmIChyZWRpcmVjdFRvRWRpdCkge1xyXG4gICAgICAgICAgICB3aW5kb3cub3BlbihcclxuICAgICAgICAgICAgICB0aGlzLnRlcm1Db2xsZWN0aW9uQXBpLmdldEVkaXRMaW5rKFxyXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbj8uaWQgPz8gJycsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2VMYW5ndWFnZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldExhbmd1YWdlXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAnX2JsYW5rJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0/LmNvbGxlY3Rpb25zPy5hZGQoY29sbGVjdGlvbik7XHJcblxyXG4gICAgICAgICAgdGhpcy5sb2FkQ29sbGVjdGlvbnMoZW5naW5lSWQpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZElkRm9yVHJhbnNsYXRpb24oZW5naW5lSWQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmVuZ2luZXNbZW5naW5lSWRdPy5zZWxlY3RlZDtcclxuICAgIGlmIChcclxuICAgICAgc2VsZWN0ZWQ/Lm10Q29sbGVjdGlvbiAmJlxyXG4gICAgICAoc2VsZWN0ZWQubXRDb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHx8XHJcbiAgICAgICAgc2VsZWN0ZWQubXRDb2xsZWN0aW9uLnN0YXR1cyA9PT0gTXRDb2xsZWN0aW9uU3RhdHVzLlJFQURZKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZC5tdENvbGxlY3Rpb24uaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUlmTmVjZXNzYXJ5KFxyXG4gICAgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLFxyXG4gICAgZW5naW5lSWQ6IHN0cmluZyxcclxuICAgIGlzRWRpdGVkID0gZmFsc2VcclxuICApOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgLy8gY29sbGVjdGlvbiBpcyBub3QgaW1wb3J0ZWQgYW5kIHNob3VsZCBiZSBhdHRhY2hlZCB0byBlbmdpbmVcclxuICAgIGlmIChjb2xsZWN0aW9uLmlzRWRpdGVkKCkgfHwgaXNFZGl0ZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXRBcGkuYWRkKGVuZ2luZUlkLCBjb2xsZWN0aW9uKS5waXBlKFxyXG4gICAgICAgIHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHVwZGF0ZWRDb2xsZWN0aW9uKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9mKGNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBoYW5kbGVBZGRUb0VuZ2luZUVycm9yKGVycm9yOiBhbnksIGVuZ2luZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWxlcnQudW5oYW5kZWxlZEVycm9yKGVycm9yKTtcclxuICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uc2VsZWN0ZWQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3luYyhcclxuICAgIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbixcclxuICAgIGVuZ2luZUlkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMubXRBcGkuc3luYyhlbmdpbmVJZCwgY29sbGVjdGlvbikucGlwZShcclxuICAgICAgdGFwKCh1cGRhdGVkQ29sbGVjdGlvbikgPT4ge1xyXG4gICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHVwZGF0ZWRDb2xsZWN0aW9uKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdENvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBlbmdpbmVJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdEFwaS5yZW1vdmUoZW5naW5lSWQsIGNvbGxlY3Rpb24pLnBpcGUoXHJcbiAgICAgIHRhcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShyZXNwb25zZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWRkVG9FbmdpbmVWYWxpZGF0aW9uKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFjb2xsZWN0aW9uIHx8ICFjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJUcnlpbmcgdG8gYXR0YWNoIGNvbGxlY3Rpb24gdGhhdCBoYXMgbm8gdGlsZGUgdGVybSBpZC5cIik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJUaW1lb3V0KGVuZ2luZUlkOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmVuZ2luZXNbZW5naW5lSWRdPy5yZWZyZXNoVGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5yZWZyZXNoVGltZW91dCk7XHJcbiAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0ucmVmcmVzaFRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UoZW5naW5lSWQ6IHN0cmluZykge1xyXG4gICAgLy8gSWYgbm8gY29sbGVjdGlvbnMgb3Igc2VsZWN0ZWQgaXMgYWxyZWFkeSBzZXQsIGl0IHNob3VsZCBub3QgYmUgY2hhbmdlZCBmcm9tIGxvY2Fsc3RvcmFnZSB2YWx1ZS4gKFVzdWFsbHksIGxvY2Fsc3RvcmFnZSBzaG91bGQgaGF2ZSB0aGUgc2FtZSB2YWx1ZSkuXHJcbiAgICBpZiAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5jb2xsZWN0aW9ucz8uc2l6ZSA9PT0gMCB8fCB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRDb2xsZWN0aW9uT3V0c2lkZVNlcnZpY2UoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHN0b3JlZElkID0gdGhpcy5yZWFkTG9jYWxTdG9yYWdlKCk/LltlbmdpbmVJZF07XHJcblxyXG4gICAgaWYgKCFzdG9yZWRJZCkge1xyXG4gICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZENvbGxlY3Rpb25PdXRzaWRlU2VydmljZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXhpc3RpbmcgPSBBcnJheS5mcm9tKHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uY29sbGVjdGlvbnMpLmZpbmQoXHJcbiAgICAgIChpdGVtKSA9PiBpdGVtLm10Q29sbGVjdGlvbj8uaWQgPT09IHN0b3JlZElkIHx8IGl0ZW0udGVybUNvbGxlY3Rpb24/LmlkID09PSBzdG9yZWRJZCk7XHJcbiAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkID0gZXhpc3RpbmcgYXMgQ29tYmluZWRDb2xsZWN0aW9uO1xyXG5cclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRDb2xsZWN0aW9uT3V0c2lkZVNlcnZpY2UoKTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHJlbW92ZURlbGV0ZWQodGVybVJlc3BvbnNlOiBDb21iaW5lZENvbGxlY3Rpb25bXSwgbXRSZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW10sIGVuZ2luZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIGNvbnN0IHRlcm1FeGlzdGluZ0l4ID0gQ29tYmluZWRDb2xsZWN0aW9uLmZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QodGVybVJlc3BvbnNlLCBjb2xsZWN0aW9uKTtcclxuICAgICAgY29uc3QgbXRFeGlzdGluZ0l4ID0gQ29tYmluZWRDb2xsZWN0aW9uLmZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QobXRSZXNwb25zZSwgY29sbGVjdGlvbik7XHJcblxyXG4gICAgICBpZiAodGVybUV4aXN0aW5nSXggPT09IG51bGwgJiYgbXRFeGlzdGluZ0l4ID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXT8uY29sbGVjdGlvbnMuZGVsZXRlKGNvbGxlY3Rpb24pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXT8uc2VsZWN0ZWQgPT09IGNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZENvbGxlY3Rpb25PdXRzaWRlU2VydmljZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGVybUV4aXN0aW5nSXggIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nVGVybSA9IHRlcm1SZXNwb25zZVt0ZXJtRXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZ1Rlcm0pO1xyXG4gICAgICAgICAgdGVybVJlc3BvbnNlLnNwbGljZSh0ZXJtRXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24uZGVsZXRlVGVybXMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtdEV4aXN0aW5nSXggIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nTXQgPSBtdFJlc3BvbnNlW210RXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZ010KTtcclxuICAgICAgICAgIG10UmVzcG9uc2Uuc3BsaWNlKG10RXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24uZGVsZXRlTVQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ29sbGVjdGlvbnMobmV3Q29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4sIGVuZ2luZUlkOiBzdHJpbmcpIHtcclxuICAgIC8vIHNldHMgY29sbGVjdGlvbiBsaXN0IHRvIHRoaXMgdmFsdWUgYXQgdGhlIGVuZCwgc28gZGVsZXRlZCBjb2xsZWN0aW9ucyBhcmUgbm90IGluIHRoZSBsaXN0LlxyXG4gICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIG5ld0NvbGxlY3Rpb25zKSB7XHJcbiAgICAgIC8vIFVzZXIgc2hvdWxkbid0IHNlZSBmYWlsZWQgY29sbGVjdGlvbnMgaWYgaGUgY2FuJ3QgcmV0cnkgdG8gaW1wb3J0IHRoZW0uXHJcbiAgICAgIGlmICghdGhpcy5oYXNFZGl0UGVybWlzc2lvbnMgJiYgY29sbGVjdGlvbi5tdFN0YXR1cyA9PT0gTXRDb2xsZWN0aW9uU3RhdHVzLkVSUk9SIHx8IGNvbGxlY3Rpb24ubXRTdGF0dXMgPT09IE10Q29sbGVjdGlvblN0YXR1cy5ERUxFVElORykge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29sbGVjdGlvbi5pc0ltcG9ydGluZykge1xyXG4gICAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uaXNBbnlJbXBvcnRpbmcgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBleGlzdGluZzogQ29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdDb2xsZWN0aW9uRnJvbUxpc3QodGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5jb2xsZWN0aW9ucywgY29sbGVjdGlvbik7XHJcblxyXG4gICAgICAvLyBJZiB0ZXJtIGFwaSBkb2Vzbid0IGhhdmUgZW5naW5lIGxhbmd1YWdlcywgY29sbGVjdGlvbiBzaG91bGQgbm90IGJlIHNob3duIChpZiBpdCBpcyBub3QgYWxyZWFkeSBpbXBvcnRlZCBzb21laG93KTtcclxuICAgICAgaWYgKCFleGlzdGluZyAmJiBjb2xsZWN0aW9uLnNvdXJjZSA9PT0gRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UuVElMREVfVEVSTSkge1xyXG4gICAgICAgIGxldCBoYXNMYW5ndWFnZXMgPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5lbmdpbmVMYW5ndWFnZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIWNvbGxlY3Rpb24udGVybUNvbGxlY3Rpb24/Lmxhbmd1YWdlcz8uZmluZChcclxuICAgICAgICAgICAgICAobGFuZykgPT4gbGFuZy5pZCA9PT0gdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5lbmdpbmVMYW5ndWFnZXNbaV1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGhhc0xhbmd1YWdlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghaGFzTGFuZ3VhZ2VzKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghZXhpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmNvbGxlY3Rpb25zLmFkZChjb2xsZWN0aW9uKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBleGlzdGluZy51cGRhdGUoY29sbGVjdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmhhc0FueUNvbGxlY3Rpb25zID0gdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5jb2xsZWN0aW9ucy5zaXplID4gMDtcclxuXHJcbiAgICB0aGlzLmVuZ2luZVN1YmplY3QubmV4dCh0aGlzLmVuZ2luZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZVJlZnJlc2goZW5naW5lSWQ6IHN0cmluZywgdGltZW91dD86IG51bWJlciB8IG51bGwsKSB7XHJcbiAgICAvLyBpZiBtZW51IGlzIGNsb3NlZCBhbmQgc2VsZWN0ZWQgY29sbGVjdGlvbiBpcyBub3QgaW1wb3J0aW5nIGFueW1vcmUgLSBhdXRvIHJlZnJlc2hpbmcgc2hvdWxkIGJlIGNhbmNlbGxlZC5cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuZW5naW5lc1tlbmdpbmVJZF0uaGFyZEF1dG9SZWZyZXNoICYmXHJcbiAgICAgICF0aGlzLmVuZ2luZXNbZW5naW5lSWRdPy5pc0ltcG9ydGluZyAmJlxyXG4gICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmlzU29mdEF1dG9SZWZyZXNoT25cclxuICAgICkge1xyXG4gICAgICB0aGlzLnN0b3BBdXRvUmVmcmVzaChlbmdpbmVJZCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiBoYXJkIGF1dG8gcmVmcmVzaG8gb24sIGF1dG8gcmVmcmVzaCBzaG91bGQgYmUgb24uIElmIGhhcmQgYXV0b3JlZmVyZXNoIGlzIG9mZiAsIHJlZnJlc2ggbmVlZHMgdG8gYmUgZG9uZSBvbmx5IGlmIHNlbGVjdGVkIGlzIGltcG9ydGluZy5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5oYXJkQXV0b1JlZnJlc2ggfHxcclxuICAgICAgKHRoaXMuZW5naW5lc1tlbmdpbmVJZF0gJiZcclxuICAgICAgICAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5pc1NvZnRBdXRvUmVmcmVzaE9uIHx8IHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uc2VsZWN0ZWQ/LmlzSW1wb3J0aW5nKSlcclxuICAgICkge1xyXG4gICAgICBjb25zdCB0aW1lb3V0TXMgPVxyXG4gICAgICAgIHRpbWVvdXQgPz9cclxuICAgICAgICAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5pc0FueUltcG9ydGluZ1xyXG4gICAgICAgICAgPyB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLnJlZnJlc2hUaW1lb3V0TXNXaGVuSW1wb3J0aW5nXHJcbiAgICAgICAgICA6IHRoaXMuY29uZmlnLnRlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNcyk7XHJcbiAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0ucmVmcmVzaFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnJlZnJlc2hUaW1lb3V0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxvYWRDb2xsZWN0aW9ucyhlbmdpbmVJZCk7XHJcbiAgICAgIH0sIHRpbWVvdXRNcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0b3JlU2VsZWN0ZWRJbkxvY2FsU3RvcmFnZShlbmdpbmVJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgbG9jYWxTdG9yYWdlT2JqZWN0ID0gdGhpcy5yZWFkTG9jYWxTdG9yYWdlKCk7XHJcblxyXG4gICAgaWYgKCFsb2NhbFN0b3JhZ2VPYmplY3QpIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgbG9jYWxTdG9yYWdlT2JqZWN0ID0ge30gYXMgYW55O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBsb2NhbFN0b3JhZ2VPYmplY3RbZW5naW5lSWRdID0gdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5zZWxlY3RlZCA/IHRoaXMuZW5naW5lc1tlbmdpbmVJZF0/LnNlbGVjdGVkPy5tdENvbGxlY3Rpb24/LmlkIDogbnVsbDtcclxuICAgIFxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkobG9jYWxTdG9yYWdlT2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgcmVhZExvY2FsU3RvcmFnZSgpOiBhbnkge1xyXG4gICAgY29uc3QgZGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuTE9DQUxfU1RPUkFHRV9LRVkpIGFzIHN0cmluZztcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZENvbGxlY3Rpb25PdXRzaWRlU2VydmljZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlZEVuZ2luZXNTdWJqZWN0Lm5leHQodGhpcy5lbmdpbmVzKTtcclxuICB9XHJcbn1cclxuIl19
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWlub2xvZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi90ZXJtaW5vbG9neS9zZXJ2aWNlcy90ZXJtaW5vbG9neS90ZXJtaW5vbG9neS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7O0FBUWxELE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsSUFBSSxlQUFlLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFDO0lBQzlELElBQUksb0JBQW9CLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUM7SUFJaEYsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxDQUNMLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07WUFDOUIsSUFBSSxDQUFDLG9CQUFvQjtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUNtQixNQUFnQyxFQUNoQyxLQUFtQixFQUNuQixpQkFBK0MsRUFDL0MsS0FBNEI7UUFINUIsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFDaEMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQThC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QUM7WUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTyxzQ0FBc0M7UUFDNUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQzttSEEvWlUsa0JBQWtCO3VFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZqQixNQUFNOztpRkFFUCxrQkFBa0I7Y0FIOUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGZvcmtKb2luLCBvZiwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRW5naW5lVGVybUNvbGxlY3Rpb25Tb3VyY2UsIE10Q29sbGVjdGlvblN0YXR1cyB9IGZyb20gJy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgQ29tYmluZWRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lFbmdpbmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVybWlub2xvZ3ktZW5naW5lLm1vZGVsJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vdGVybWlub2xvZ3ktYXBpL3Rlcm1pbm9sb2d5LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVybWlub2xvZ3lDb2xsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3Rlcm1pbm9sb2d5LWNvbGxlY3Rpb24vdGVybWlub2xvZ3ktY29sbGVjdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXJtaW5vbG9neVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBlbmdpbmVzOiB7IFtlbmdpbmVJZDogc3RyaW5nXTogVGVybWlub2xvZ3lFbmdpbmUgfSA9IHt9O1xyXG5cclxuICBwcml2YXRlIHJldHJhbnNsYXRlU3ViamVjdCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgcHJpdmF0ZSBlbmdpbmVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmVuZ2luZXMpO1xyXG4gIHByaXZhdGUgdXBkYXRlZEVuZ2luZXNTdWJqZWN0ID0gbmV3IFN1YmplY3Q8eyBbZW5naW5lSWQ6IHN0cmluZ106IFRlcm1pbm9sb2d5RW5naW5lIH0+KCk7XHJcblxyXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQoKSB7IHJldHVybiB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmlzQXV0aCB9XHJcbiAgZ2V0IGNhbkNyZWF0ZUNvbGxlY3Rpb25zKCkgeyByZXR1cm4gdGhpcy5jb25maWcudGVybUNvbmZpZy5jYW5DcmVhdGVDb2xsZWN0aW9uIH1cclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IExPQ0FMX1NUT1JBR0VfS0VZID0gJ3N5c3RlbUxhc3RDb2xsZWN0aW9ucyc7XHJcblxyXG4gIGdldCBoYXNFZGl0UGVybWlzc2lvbnMoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmNvbmZpZz8udGVybUNvbmZpZy5pc0F1dGggJiZcclxuICAgICAgdGhpcy5jYW5DcmVhdGVDb2xsZWN0aW9ucyAmJlxyXG4gICAgICB0aGlzLmNvbmZpZy50ZXJtQ29uZmlnLmlzVGVybVBvcnRhbFN1cHBvcnRlZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRlcm1pbm9sb2d5Q29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnQ6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybUNvbGxlY3Rpb25BcGk6IFRlcm1pbm9sb2d5Q29sbGVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG10QXBpOiBUZXJtaW5vbG9neUFwaVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBnZXRSZXRyYW5zbGF0ZVNpZ25hbCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLnJldHJhbnNsYXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0RW5naW5lcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZW5naW5lcyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgaGFzQW55Q29sbGVjdGlvbnMoc3lzdGVtSWQ6IHN0cmluZyk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbmdpbmVzW3N5c3RlbUlkXT8uY29sbGVjdGlvbnMuc2l6ZSA+IDAgfVxyXG5cclxuICBnZXRFbmdpbmVzV2l0aFNlbGVjdGVkQ29sbGVjdGlvbkNoYW5nZSgpOiBPYnNlcnZhYmxlPHsgW2VuZ2luZUlkOiBzdHJpbmddOiBUZXJtaW5vbG9neUVuZ2luZSB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy51cGRhdGVkRW5naW5lc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRFbmdpbmUoXHJcbiAgICBlbmdpbmVJZDogc3RyaW5nLFxyXG4gICAgbGFuZ3VhZ2VzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsLFxyXG4gICAgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlID0gZmFsc2UsXHJcbiAgICB0ZXJtQ29sbGVjdGlvbnMgPSB0cnVlLFxyXG4gICAgbXRDb2xsZWN0aW9ucyA9IHRydWUsXHJcbiAgICBzZWxlY3RlZENvbGxlY3Rpb24/OiBDb21iaW5lZENvbGxlY3Rpb24sXHJcbiAgICBhdXRvUmVmcmVzaD86IGJvb2xlYW5cclxuICApIHtcclxuICAgIGNvbnN0IGVuZ2luZUV4aXN0cyA9IHRoaXMuZW5naW5lc1tlbmdpbmVJZF0gPz8gbnVsbDtcclxuXHJcbiAgICBpZiAoIWVuZ2luZUV4aXN0cykge1xyXG4gICAgICBjb25zdCBuZXdFbmdpbmU6IFRlcm1pbm9sb2d5RW5naW5lID0ge1xyXG4gICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZENvbGxlY3Rpb24gfHwgbnVsbCxcclxuICAgICAgICBpc0ltcG9ydGluZzogZmFsc2UsXHJcbiAgICAgICAgaXNBbnlJbXBvcnRpbmc6IGZhbHNlLFxyXG4gICAgICAgIGhhc0FueUNvbGxlY3Rpb25zOiBmYWxzZSxcclxuICAgICAgICBpc1JlZnJlc2hpbmdDb2xsZWN0aW9uczogZmFsc2UsXHJcbiAgICAgICAgY29sbGVjdGlvbnM6IG5ldyBTZXQ8Q29tYmluZWRDb2xsZWN0aW9uPixcclxuICAgICAgICByZWZyZXNoTXRDb2xsZWN0aW9uczogbXRDb2xsZWN0aW9ucyxcclxuICAgICAgICByZWZyZXNoVGVybUNvbGxlY3Rpb25zOiB0ZXJtQ29sbGVjdGlvbnMsXHJcbiAgICAgICAgZW5naW5lTGFuZ3VhZ2VzOiBsYW5ndWFnZXMgfHwgW10sXHJcbiAgICAgICAgaXNTb2Z0QXV0b1JlZnJlc2hPbjogZmFsc2UsXHJcbiAgICAgICAgaGFyZEF1dG9SZWZyZXNoOiBhdXRvUmVmcmVzaCA/PyBmYWxzZSxcclxuICAgICAgICByZWZyZXNoVGltZW91dDogMFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXSA9IG5ld0VuZ2luZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVuZ2luZUV4aXN0cy5oYXJkQXV0b1JlZnJlc2ggPSBhdXRvUmVmcmVzaCA/PyBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5sb2FkQ29sbGVjdGlvbnMoZW5naW5lSWQsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZENvbGxlY3Rpb24oZW5naW5lSWQ6IHN0cmluZywgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbCwgc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXSkge1xyXG4gICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkID0gY29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlKGVuZ2luZUlkKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJldHJhbnNsYXRlU3ViamVjdC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgbG9hZENvbGxlY3Rpb25zKGVuZ2luZUlkOiBzdHJpbmcsIHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHsgW2VuZ2luZUlkOiBzdHJpbmddOiBUZXJtaW5vbG9neUVuZ2luZTsgfT4ge1xyXG4gICAgLy8gY2xlYXIgdGltZW91dCBzaW5jZSB0aGlzIHJlZnJlc2ggcmVwbGFjZXMgc2NoZWR1bGVkXHJcbiAgICB0aGlzLmNsZWFyVGltZW91dChlbmdpbmVJZCk7XHJcblxyXG4gICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXSA9IHsgLi4udGhpcy5lbmdpbmVzW2VuZ2luZUlkXSwgaXNSZWZyZXNoaW5nQ29sbGVjdGlvbnM6IHRydWUgfVxyXG5cclxuICAgIGxldCB0ZXJtUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdO1xyXG4gICAgbGV0IG10QXBpUmVzcG9uc2U6IENvbWJpbmVkQ29sbGVjdGlvbltdO1xyXG5cclxuICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbltdPltdID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMuZW5naW5lc1tlbmdpbmVJZF0ucmVmcmVzaFRlcm1Db2xsZWN0aW9ucykge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMudGVybUNvbGxlY3Rpb25BcGlcclxuICAgICAgICAgIC5nZXRDb2xsZWN0aW9uTGlzdCgpXHJcbiAgICAgICAgICAucGlwZSh0YXAoKHJlc3BvbnNlKSA9PiAodGVybVJlc3BvbnNlID0gcmVzcG9uc2UpKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnJlZnJlc2hNdENvbGxlY3Rpb25zKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5tdEFwaVxyXG4gICAgICAgICAgLmdldExpc3QoZW5naW5lSWQpXHJcbiAgICAgICAgICAucGlwZSh0YXAoKHJlc3BvbnNlKSA9PiAobXRBcGlSZXNwb25zZSA9IHJlc3BvbnNlKSkpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBmb3JrSm9pbihvYnNlcnZhYmxlcykuc3Vic2NyaWJlKHtcclxuICAgICAgLy8gZG8gbm90IG5lZWQgcmVzcG9uc2UgYmVjYXVlIHJlc3BvbnNlcyBhcmUgc2F2ZWQgaW4gcGlwZSBtZXRob2RzXHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmlzQW55SW1wb3J0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgLy8gbm90ZSB0aGF0IHRlcm1SZXNwb25zZSBhbmQgbXRhcGlyZXNwb25zZSBnZXRzIGNoYW5nZWQgZHVyaW5nIHJlbW92ZSBtZXRob2RcclxuICAgICAgICB0aGlzLnJlbW92ZURlbGV0ZWQodGVybVJlc3BvbnNlLCBtdEFwaVJlc3BvbnNlLCBlbmdpbmVJZCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGpvaW5lZCA9IFtdO1xyXG4gICAgICAgIGlmIChtdEFwaVJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBqb2luZWQucHVzaCguLi5tdEFwaVJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRlcm1SZXNwb25zZSkge1xyXG4gICAgICAgICAgam9pbmVkLnB1c2goLi4udGVybVJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWRkQ29sbGVjdGlvbnMoam9pbmVkLCBlbmdpbmVJZCk7XHJcbiAgICAgICAgaWYgKHNldFNlbGVjdGVkRnJvbUxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UoZW5naW5lSWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmlzUmVmcmVzaGluZ0NvbGxlY3Rpb25zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZVJlZnJlc2goZW5naW5lSWQsIG51bGwpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5pc1JlZnJlc2hpbmdDb2xsZWN0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIC8vIGl0IGlzIGVub3VnaCB0byBzaG93IGVycm9yIG9ubHkgaW4gY29uc29sZS4gTm8gc3BlY2lhbCB0aGluZyBpcyBuZWNlc3NhcnkuXHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5lbmdpbmVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sbGVjdGlvbnMoKTogT2JzZXJ2YWJsZTx7IFtlbmdpbmVJZDogc3RyaW5nXTogVGVybWlub2xvZ3lFbmdpbmUgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0QXV0b1JlZnJlc2goZW5naW5lSWQ6IHN0cmluZywgbGFuZ3VhZ2VzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsLCBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UgPSBmYWxzZSwgdGVybUNvbGxlY3Rpb25zID0gdHJ1ZSwgbXRDb2xsZWN0aW9ucyA9IHRydWUpIHtcclxuICAgIHJldHVybiB0aGlzLnNldEVuZ2luZShlbmdpbmVJZCwgbGFuZ3VhZ2VzID8/IHRoaXMuZW5naW5lc1tlbmdpbmVJZF0/LmVuZ2luZUxhbmd1YWdlcywgc2V0U2VsZWN0ZWRGcm9tTG9jYWxTdG9yYWdlLCB0ZXJtQ29sbGVjdGlvbnMsIG10Q29sbGVjdGlvbnMsIHVuZGVmaW5lZCwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBzdG9wQXV0b1JlZnJlc2goZW5naW5lSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5jbGVhclRpbWVvdXQoZW5naW5lSWQpO1xyXG5cclxuICAgIGlmICh0aGlzLmVuZ2luZXNbZW5naW5lSWRdKSB7XHJcbiAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uaXNTb2Z0QXV0b1JlZnJlc2hPbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmhhcmRBdXRvUmVmcmVzaCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlKFxyXG4gICAgc291cmNlTGFuZ3VhZ2U6IHN0cmluZyxcclxuICAgIHRhcmdldExhbmd1YWdlOiBzdHJpbmcsXHJcbiAgICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nLFxyXG4gICAgZW5naW5lSWQ6IHN0cmluZyxcclxuICAgIHJlZGlyZWN0VG9FZGl0ID0gdHJ1ZVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMudGVybUNvbGxlY3Rpb25BcGlcclxuICAgICAgLmNyZWF0ZUNvbGxlY3Rpb24oW3NvdXJjZUxhbmd1YWdlLCB0YXJnZXRMYW5ndWFnZV0sIGNvbGxlY3Rpb25OYW1lKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKGNvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgIGlmIChyZWRpcmVjdFRvRWRpdCkge1xyXG4gICAgICAgICAgICB3aW5kb3cub3BlbihcclxuICAgICAgICAgICAgICB0aGlzLnRlcm1Db2xsZWN0aW9uQXBpLmdldEVkaXRMaW5rKFxyXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbj8uaWQgPz8gJycsXHJcbiAgICAgICAgICAgICAgICBzb3VyY2VMYW5ndWFnZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldExhbmd1YWdlXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAnX2JsYW5rJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0/LmNvbGxlY3Rpb25zPy5hZGQoY29sbGVjdGlvbik7XHJcblxyXG4gICAgICAgICAgdGhpcy5sb2FkQ29sbGVjdGlvbnMoZW5naW5lSWQpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZElkRm9yVHJhbnNsYXRpb24oZW5naW5lSWQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmVuZ2luZXNbZW5naW5lSWRdPy5zZWxlY3RlZDtcclxuICAgIGlmIChcclxuICAgICAgc2VsZWN0ZWQ/Lm10Q29sbGVjdGlvbiAmJlxyXG4gICAgICAoc2VsZWN0ZWQubXRDb2xsZWN0aW9uLmxhc3RVcGRhdGVkIHx8XHJcbiAgICAgICAgc2VsZWN0ZWQubXRDb2xsZWN0aW9uLnN0YXR1cyA9PT0gTXRDb2xsZWN0aW9uU3RhdHVzLlJFQURZKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBzZWxlY3RlZC5tdENvbGxlY3Rpb24uaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUlmTmVjZXNzYXJ5KFxyXG4gICAgY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLFxyXG4gICAgZW5naW5lSWQ6IHN0cmluZyxcclxuICAgIGlzRWRpdGVkID0gZmFsc2VcclxuICApOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgLy8gY29sbGVjdGlvbiBpcyBub3QgaW1wb3J0ZWQgYW5kIHNob3VsZCBiZSBhdHRhY2hlZCB0byBlbmdpbmVcclxuICAgIGlmIChjb2xsZWN0aW9uLmlzRWRpdGVkKCkgfHwgaXNFZGl0ZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXRBcGkuYWRkKGVuZ2luZUlkLCBjb2xsZWN0aW9uKS5waXBlKFxyXG4gICAgICAgIHRhcCgodXBkYXRlZENvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHVwZGF0ZWRDb2xsZWN0aW9uKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9mKGNvbGxlY3Rpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBoYW5kbGVBZGRUb0VuZ2luZUVycm9yKGVycm9yOiBhbnksIGVuZ2luZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWxlcnQudW5oYW5kZWxlZEVycm9yKGVycm9yKTtcclxuICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uc2VsZWN0ZWQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgc3luYyhcclxuICAgIGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbixcclxuICAgIGVuZ2luZUlkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMubXRBcGkuc3luYyhlbmdpbmVJZCwgY29sbGVjdGlvbikucGlwZShcclxuICAgICAgdGFwKCh1cGRhdGVkQ29sbGVjdGlvbikgPT4ge1xyXG4gICAgICAgIGNvbGxlY3Rpb24udXBkYXRlKHVwZGF0ZWRDb2xsZWN0aW9uKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNdENvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29tYmluZWRDb2xsZWN0aW9uLCBlbmdpbmVJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdEFwaS5yZW1vdmUoZW5naW5lSWQsIGNvbGxlY3Rpb24pLnBpcGUoXHJcbiAgICAgIHRhcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShyZXNwb25zZSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWRkVG9FbmdpbmVWYWxpZGF0aW9uKGNvbGxlY3Rpb246IENvbWJpbmVkQ29sbGVjdGlvbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFjb2xsZWN0aW9uIHx8ICFjb2xsZWN0aW9uLnRlcm1Db2xsZWN0aW9uKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJUcnlpbmcgdG8gYXR0YWNoIGNvbGxlY3Rpb24gdGhhdCBoYXMgbm8gdGlsZGUgdGVybSBpZC5cIik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJUaW1lb3V0KGVuZ2luZUlkOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmVuZ2luZXNbZW5naW5lSWRdPy5yZWZyZXNoVGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5yZWZyZXNoVGltZW91dCk7XHJcbiAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0ucmVmcmVzaFRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZEZyb21Mb2NhbFN0b3JhZ2UoZW5naW5lSWQ6IHN0cmluZykge1xyXG4gICAgLy8gSWYgbm8gY29sbGVjdGlvbnMgb3Igc2VsZWN0ZWQgaXMgYWxyZWFkeSBzZXQsIGl0IHNob3VsZCBub3QgYmUgY2hhbmdlZCBmcm9tIGxvY2Fsc3RvcmFnZSB2YWx1ZS4gKFVzdWFsbHksIGxvY2Fsc3RvcmFnZSBzaG91bGQgaGF2ZSB0aGUgc2FtZSB2YWx1ZSkuXHJcbiAgICBpZiAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5jb2xsZWN0aW9ucz8uc2l6ZSA9PT0gMCB8fCB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRDb2xsZWN0aW9uT3V0c2lkZVNlcnZpY2UoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHN0b3JlZElkID0gdGhpcy5yZWFkTG9jYWxTdG9yYWdlKCk/LltlbmdpbmVJZF07XHJcblxyXG4gICAgaWYgKCFzdG9yZWRJZCkge1xyXG4gICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZENvbGxlY3Rpb25PdXRzaWRlU2VydmljZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXhpc3RpbmcgPSBBcnJheS5mcm9tKHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uY29sbGVjdGlvbnMpLmZpbmQoXHJcbiAgICAgIChpdGVtKSA9PiBpdGVtLm10Q29sbGVjdGlvbj8uaWQgPT09IHN0b3JlZElkIHx8IGl0ZW0udGVybUNvbGxlY3Rpb24/LmlkID09PSBzdG9yZWRJZCk7XHJcbiAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkID0gZXhpc3RpbmcgYXMgQ29tYmluZWRDb2xsZWN0aW9uO1xyXG5cclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRDb2xsZWN0aW9uT3V0c2lkZVNlcnZpY2UoKTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHJlbW92ZURlbGV0ZWQodGVybVJlc3BvbnNlOiBDb21iaW5lZENvbGxlY3Rpb25bXSwgbXRSZXNwb25zZTogQ29tYmluZWRDb2xsZWN0aW9uW10sIGVuZ2luZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmNvbGxlY3Rpb25zKSB7XHJcbiAgICAgIGNvbnN0IHRlcm1FeGlzdGluZ0l4ID0gQ29tYmluZWRDb2xsZWN0aW9uLmZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QodGVybVJlc3BvbnNlLCBjb2xsZWN0aW9uKTtcclxuICAgICAgY29uc3QgbXRFeGlzdGluZ0l4ID0gQ29tYmluZWRDb2xsZWN0aW9uLmZpbmRFeGlzdGluZ0luZGV4RnJvbUxpc3QobXRSZXNwb25zZSwgY29sbGVjdGlvbik7XHJcblxyXG4gICAgICBpZiAodGVybUV4aXN0aW5nSXggPT09IG51bGwgJiYgbXRFeGlzdGluZ0l4ID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXT8uY29sbGVjdGlvbnMuZGVsZXRlKGNvbGxlY3Rpb24pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXT8uc2VsZWN0ZWQgPT09IGNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZENvbGxlY3Rpb25PdXRzaWRlU2VydmljZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGVybUV4aXN0aW5nSXggIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nVGVybSA9IHRlcm1SZXNwb25zZVt0ZXJtRXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZ1Rlcm0pO1xyXG4gICAgICAgICAgdGVybVJlc3BvbnNlLnNwbGljZSh0ZXJtRXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24uZGVsZXRlVGVybXMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtdEV4aXN0aW5nSXggIT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nTXQgPSBtdFJlc3BvbnNlW210RXhpc3RpbmdJeF07XHJcbiAgICAgICAgICBjb2xsZWN0aW9uLnVwZGF0ZShleGlzdGluZ010KTtcclxuICAgICAgICAgIG10UmVzcG9uc2Uuc3BsaWNlKG10RXhpc3RpbmdJeCwgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbGxlY3Rpb24uZGVsZXRlTVQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ29sbGVjdGlvbnMobmV3Q29sbGVjdGlvbnM6IEl0ZXJhYmxlPENvbWJpbmVkQ29sbGVjdGlvbj4sIGVuZ2luZUlkOiBzdHJpbmcpIHtcclxuICAgIC8vIHNldHMgY29sbGVjdGlvbiBsaXN0IHRvIHRoaXMgdmFsdWUgYXQgdGhlIGVuZCwgc28gZGVsZXRlZCBjb2xsZWN0aW9ucyBhcmUgbm90IGluIHRoZSBsaXN0LlxyXG4gICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIG5ld0NvbGxlY3Rpb25zKSB7XHJcbiAgICAgIC8vIFVzZXIgc2hvdWxkbid0IHNlZSBmYWlsZWQgY29sbGVjdGlvbnMgaWYgaGUgY2FuJ3QgcmV0cnkgdG8gaW1wb3J0IHRoZW0uXHJcbiAgICAgIGlmICghdGhpcy5oYXNFZGl0UGVybWlzc2lvbnMgJiYgY29sbGVjdGlvbi5tdFN0YXR1cyA9PT0gTXRDb2xsZWN0aW9uU3RhdHVzLkVSUk9SIHx8IGNvbGxlY3Rpb24ubXRTdGF0dXMgPT09IE10Q29sbGVjdGlvblN0YXR1cy5ERUxFVElORykge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29sbGVjdGlvbi5pc0ltcG9ydGluZykge1xyXG4gICAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uaXNBbnlJbXBvcnRpbmcgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBleGlzdGluZzogQ29tYmluZWRDb2xsZWN0aW9uIHwgbnVsbCA9IENvbWJpbmVkQ29sbGVjdGlvbi5maW5kRXhpc3RpbmdDb2xsZWN0aW9uRnJvbUxpc3QodGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5jb2xsZWN0aW9ucywgY29sbGVjdGlvbik7XHJcblxyXG4gICAgICAvLyBEaXNwbGF5aW5nIGNvbGxlY3Rpb24gaWYgb25lIG9mIHRoZSBlbmdpbmUgbGFuZ3VhZ2VzIGlzIGluY2x1ZGVkLlxyXG4gICAgICBpZiAoIWV4aXN0aW5nICYmIGNvbGxlY3Rpb24uc291cmNlID09PSBFbmdpbmVUZXJtQ29sbGVjdGlvblNvdXJjZS5USUxERV9URVJNKSB7XHJcbiAgICAgICAgbGV0IGhhc0xhbmd1YWdlcyA9IHRydWU7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmVuZ2luZUxhbmd1YWdlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAhY29sbGVjdGlvbi50ZXJtQ29sbGVjdGlvbj8ubGFuZ3VhZ2VzPy5maW5kKFxyXG4gICAgICAgICAgICAgIChsYW5nKSA9PiB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmVuZ2luZUxhbmd1YWdlcy5pbmNsdWRlcyhsYW5nLmlkKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgaGFzTGFuZ3VhZ2VzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFoYXNMYW5ndWFnZXMpIHtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFleGlzdGluZykge1xyXG4gICAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uY29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGV4aXN0aW5nLnVwZGF0ZShjb2xsZWN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uaGFzQW55Q29sbGVjdGlvbnMgPSB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmNvbGxlY3Rpb25zLnNpemUgPiAwO1xyXG5cclxuICAgIHRoaXMuZW5naW5lU3ViamVjdC5uZXh0KHRoaXMuZW5naW5lcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjaGVkdWxlUmVmcmVzaChlbmdpbmVJZDogc3RyaW5nLCB0aW1lb3V0PzogbnVtYmVyIHwgbnVsbCwpIHtcclxuICAgIC8vIGlmIG1lbnUgaXMgY2xvc2VkIGFuZCBzZWxlY3RlZCBjb2xsZWN0aW9uIGlzIG5vdCBpbXBvcnRpbmcgYW55bW9yZSAtIGF1dG8gcmVmcmVzaGluZyBzaG91bGQgYmUgY2FuY2VsbGVkLlxyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5oYXJkQXV0b1JlZnJlc2ggJiZcclxuICAgICAgIXRoaXMuZW5naW5lc1tlbmdpbmVJZF0/LmlzSW1wb3J0aW5nICYmXHJcbiAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0uaXNTb2Z0QXV0b1JlZnJlc2hPblxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc3RvcEF1dG9SZWZyZXNoKGVuZ2luZUlkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIGhhcmQgYXV0byByZWZyZXNobyBvbiwgYXV0byByZWZyZXNoIHNob3VsZCBiZSBvbi4gSWYgaGFyZCBhdXRvcmVmZXJlc2ggaXMgb2ZmICwgcmVmcmVzaCBuZWVkcyB0byBiZSBkb25lIG9ubHkgaWYgc2VsZWN0ZWQgaXMgaW1wb3J0aW5nLlxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmhhcmRBdXRvUmVmcmVzaCB8fFxyXG4gICAgICAodGhpcy5lbmdpbmVzW2VuZ2luZUlkXSAmJlxyXG4gICAgICAgICh0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmlzU29mdEF1dG9SZWZyZXNoT24gfHwgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5zZWxlY3RlZD8uaXNJbXBvcnRpbmcpKVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IHRpbWVvdXRNcyA9XHJcbiAgICAgICAgdGltZW91dCA/P1xyXG4gICAgICAgICh0aGlzLmVuZ2luZXNbZW5naW5lSWRdLmlzQW55SW1wb3J0aW5nXHJcbiAgICAgICAgICA/IHRoaXMuY29uZmlnLnRlcm1Db25maWcucmVmcmVzaFRpbWVvdXRNc1doZW5JbXBvcnRpbmdcclxuICAgICAgICAgIDogdGhpcy5jb25maWcudGVybUNvbmZpZy5yZWZyZXNoVGltZW91dE1zKTtcclxuICAgICAgdGhpcy5lbmdpbmVzW2VuZ2luZUlkXS5yZWZyZXNoVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW5naW5lc1tlbmdpbmVJZF0ucmVmcmVzaFRpbWVvdXQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMubG9hZENvbGxlY3Rpb25zKGVuZ2luZUlkKTtcclxuICAgICAgfSwgdGltZW91dE1zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RvcmVTZWxlY3RlZEluTG9jYWxTdG9yYWdlKGVuZ2luZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBsb2NhbFN0b3JhZ2VPYmplY3QgPSB0aGlzLnJlYWRMb2NhbFN0b3JhZ2UoKTtcclxuXHJcbiAgICBpZiAoIWxvY2FsU3RvcmFnZU9iamVjdCkge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBsb2NhbFN0b3JhZ2VPYmplY3QgPSB7fSBhcyBhbnk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGxvY2FsU3RvcmFnZU9iamVjdFtlbmdpbmVJZF0gPSB0aGlzLmVuZ2luZXNbZW5naW5lSWRdLnNlbGVjdGVkID8gdGhpcy5lbmdpbmVzW2VuZ2luZUlkXT8uc2VsZWN0ZWQ/Lm10Q29sbGVjdGlvbj8uaWQgOiBudWxsO1xyXG4gICAgXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShsb2NhbFN0b3JhZ2VPYmplY3QpKTtcclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJpdmF0ZSByZWFkTG9jYWxTdG9yYWdlKCk6IGFueSB7XHJcbiAgICBjb25zdCBkYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSkgYXMgc3RyaW5nO1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkQ29sbGVjdGlvbk91dHNpZGVTZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVkRW5naW5lc1N1YmplY3QubmV4dCh0aGlzLmVuZ2luZXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
|