@ptsecurity/mosaic 14.10.7 → 14.10.9
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/core/formatters/date/templates/tk-TM.d.ts +2 -0
- package/esm2020/core/formatters/date/formatter.mjs +18 -3
- package/esm2020/core/formatters/date/templates/tk-TM.mjs +358 -0
- package/esm2020/core/version.mjs +2 -2
- package/esm2020/form-field/form-field.mjs +6 -5
- package/fesm2015/ptsecurity-mosaic-core.mjs +429 -57
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +5 -4
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +429 -57
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +5 -4
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/form-field/form-field.d.ts +1 -1
- package/package.json +4 -4
@@ -0,0 +1,358 @@
|
|
1
|
+
const SECONDS_TEMPLATE = `{
|
2
|
+
SHOW_MILLISECONDS,
|
3
|
+
select,
|
4
|
+
yes{:{SECONDS}{MILLISECONDS}}
|
5
|
+
other{{
|
6
|
+
SHOW_SECONDS,
|
7
|
+
select,
|
8
|
+
yes{:{SECONDS}}
|
9
|
+
other{}
|
10
|
+
}}
|
11
|
+
}`;
|
12
|
+
const START_SECONDS_TEMPLATE = `{
|
13
|
+
SHOW_MILLISECONDS,
|
14
|
+
select,
|
15
|
+
yes{:{SECONDS}{MILLISECONDS}-dan}
|
16
|
+
other{{
|
17
|
+
SHOW_SECONDS,
|
18
|
+
select,
|
19
|
+
yes{:{SECONDS}-dan}
|
20
|
+
other{-den}
|
21
|
+
}}
|
22
|
+
}`;
|
23
|
+
const END_SECONDS_TEMPLATE = `{
|
24
|
+
SHOW_MILLISECONDS,
|
25
|
+
select,
|
26
|
+
yes{:{SECONDS}{MILLISECONDS}-a çenli}
|
27
|
+
other{{
|
28
|
+
SHOW_SECONDS,
|
29
|
+
select,
|
30
|
+
yes{:{SECONDS}-a çenli}
|
31
|
+
other{-e çenli}
|
32
|
+
}}
|
33
|
+
}`;
|
34
|
+
export const tkTM = {
|
35
|
+
relativeTemplates: {
|
36
|
+
short: {
|
37
|
+
BEFORE_YESTERDAY: `{CURRENT_YEAR, select, yes{{SHORT_DATE}, {TIME}} other{{SHORT_DATE}, {YEAR}}}${SECONDS_TEMPLATE}`,
|
38
|
+
YESTERDAY: `Düýn, {TIME}${SECONDS_TEMPLATE}`,
|
39
|
+
TODAY: `Şu gün, {TIME}${SECONDS_TEMPLATE}`,
|
40
|
+
TOMORROW: `Ertir, {TIME}${SECONDS_TEMPLATE}`,
|
41
|
+
AFTER_TOMORROW: `{CURRENT_YEAR, select, yes{{SHORT_DATE}, {TIME}} other{{SHORT_DATE}, {YEAR}}}${SECONDS_TEMPLATE}`
|
42
|
+
},
|
43
|
+
long: {
|
44
|
+
BEFORE_YESTERDAY: `{CURRENT_YEAR, select, yes{{DATE}, {TIME}} other{{DATE}, {YEAR}}}${SECONDS_TEMPLATE}`,
|
45
|
+
YESTERDAY: `Düýn, {TIME}${SECONDS_TEMPLATE}`,
|
46
|
+
TODAY: `Şu gün, {TIME}${SECONDS_TEMPLATE}`,
|
47
|
+
TOMORROW: `Ertir, {TIME}${SECONDS_TEMPLATE}`,
|
48
|
+
AFTER_TOMORROW: `{CURRENT_YEAR, select, yes{{DATE}, {TIME}} other{{DATE}, {YEAR}}}${SECONDS_TEMPLATE}`
|
49
|
+
}
|
50
|
+
},
|
51
|
+
absoluteTemplates: {
|
52
|
+
short: {
|
53
|
+
DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE}, {YEAR}}}',
|
54
|
+
DATETIME: `{
|
55
|
+
CURRENT_YEAR,
|
56
|
+
select,
|
57
|
+
yes{{SHORT_DATE}, {TIME}}
|
58
|
+
other{{SHORT_DATE}, {YEAR} {TIME}}
|
59
|
+
}${SECONDS_TEMPLATE}`
|
60
|
+
},
|
61
|
+
long: {
|
62
|
+
DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE}, {YEAR}}}',
|
63
|
+
DATETIME: `{
|
64
|
+
CURRENT_YEAR,
|
65
|
+
select,
|
66
|
+
yes{{DATE}, {TIME}}
|
67
|
+
other{{DATE}, {YEAR} {TIME}}
|
68
|
+
}${SECONDS_TEMPLATE}`
|
69
|
+
}
|
70
|
+
},
|
71
|
+
rangeTemplates: {
|
72
|
+
closedRange: {
|
73
|
+
short: {
|
74
|
+
START_DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE}, {YEAR}}}',
|
75
|
+
END_DATE: `{
|
76
|
+
SAME_MONTH,
|
77
|
+
select,
|
78
|
+
yes{{DAY}}
|
79
|
+
other{{
|
80
|
+
CURRENT_YEAR,
|
81
|
+
select,
|
82
|
+
yes{{SHORT_DATE}}
|
83
|
+
other{{SHORT_DATE}, {YEAR}}
|
84
|
+
}}
|
85
|
+
}`,
|
86
|
+
DATE: `{
|
87
|
+
SAME_MONTH,
|
88
|
+
select,
|
89
|
+
yes{{START_DATE}{DASH}{END_DATE}}
|
90
|
+
other{{START_DATE}{LONG_DASH}{END_DATE}}
|
91
|
+
}`,
|
92
|
+
START_DATETIME: `{
|
93
|
+
SAME_DAY,
|
94
|
+
select,
|
95
|
+
yes{{TIME}}
|
96
|
+
other{{
|
97
|
+
CURRENT_YEAR,
|
98
|
+
select,
|
99
|
+
yes{{SHORT_DATE}, {TIME}}
|
100
|
+
other{{SHORT_DATE}, {YEAR}, {TIME}}
|
101
|
+
}}
|
102
|
+
}${SECONDS_TEMPLATE}`,
|
103
|
+
END_DATETIME: `{
|
104
|
+
SAME_DAY,
|
105
|
+
select,
|
106
|
+
yes{{
|
107
|
+
CURRENT_YEAR,
|
108
|
+
select,
|
109
|
+
yes{{TIME}${SECONDS_TEMPLATE} {SHORT_DATE}}
|
110
|
+
other{{TIME}${SECONDS_TEMPLATE} {SHORT_DATE}, {YEAR}}
|
111
|
+
}}
|
112
|
+
other{{
|
113
|
+
CURRENT_YEAR,
|
114
|
+
select,
|
115
|
+
yes{{SHORT_DATE}, {TIME}}
|
116
|
+
other{{SHORT_DATE}, {YEAR}, {TIME}}
|
117
|
+
}${SECONDS_TEMPLATE}}
|
118
|
+
}`,
|
119
|
+
DATETIME: `{
|
120
|
+
SAME_DAY,
|
121
|
+
select,
|
122
|
+
yes{{START_DATETIME}{DASH}{END_DATETIME}}
|
123
|
+
other{{START_DATETIME}{LONG_DASH}{END_DATETIME}}
|
124
|
+
}`
|
125
|
+
},
|
126
|
+
middle: {
|
127
|
+
START_DATE: `{
|
128
|
+
SAME_MONTH,
|
129
|
+
select,
|
130
|
+
yes{{DAY}}
|
131
|
+
other{{
|
132
|
+
CURRENT_YEAR,
|
133
|
+
select,
|
134
|
+
yes{{DATE}}
|
135
|
+
other{{DATE}, {YEAR}}
|
136
|
+
}}
|
137
|
+
}`,
|
138
|
+
END_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE}, {YEAR}}}',
|
139
|
+
DATE: `{
|
140
|
+
SAME_MONTH,
|
141
|
+
select,
|
142
|
+
yes{{START_DATE}{DASH}{END_DATE}}
|
143
|
+
other{{START_DATE}{LONG_DASH}{END_DATE}}
|
144
|
+
}`,
|
145
|
+
START_DATETIME: `{
|
146
|
+
SAME_DAY,
|
147
|
+
select,
|
148
|
+
yes{{TIME}}
|
149
|
+
other{{
|
150
|
+
CURRENT_YEAR,
|
151
|
+
select,
|
152
|
+
yes{{DATE}, {TIME}}
|
153
|
+
other{{DATE}, {YEAR} {TIME}}
|
154
|
+
}}
|
155
|
+
}${SECONDS_TEMPLATE}`,
|
156
|
+
END_DATETIME: `{
|
157
|
+
SAME_DAY,
|
158
|
+
select,
|
159
|
+
yes{{
|
160
|
+
CURRENT_YEAR,
|
161
|
+
select,
|
162
|
+
yes{{TIME}${SECONDS_TEMPLATE} {DATE}}
|
163
|
+
other{{TIME}${SECONDS_TEMPLATE} {DATE}, {YEAR}}
|
164
|
+
}}
|
165
|
+
other{{
|
166
|
+
CURRENT_YEAR,
|
167
|
+
select,
|
168
|
+
yes{{DATE}, {TIME}}
|
169
|
+
other{{DATE}, {YEAR} {TIME}}
|
170
|
+
}${SECONDS_TEMPLATE}}
|
171
|
+
}`,
|
172
|
+
DATETIME: `{
|
173
|
+
SAME_DAY,
|
174
|
+
select,
|
175
|
+
yes{{START_DATETIME}{DASH}{END_DATETIME}}
|
176
|
+
other{{START_DATETIME}{LONG_DASH}{END_DATETIME}}
|
177
|
+
}`
|
178
|
+
},
|
179
|
+
long: {
|
180
|
+
START_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE}, {YEAR}}}',
|
181
|
+
END_DATE: `{
|
182
|
+
SAME_MONTH,
|
183
|
+
select,
|
184
|
+
yes{{DAY}}
|
185
|
+
other{{
|
186
|
+
CURRENT_YEAR,
|
187
|
+
select,
|
188
|
+
yes{{DATE}}
|
189
|
+
other{{DATE}, {YEAR}}
|
190
|
+
}}
|
191
|
+
}`,
|
192
|
+
DATE: `{
|
193
|
+
SAME_MONTH,
|
194
|
+
select,
|
195
|
+
yes{{START_DATE}{DASH}{END_DATE}}
|
196
|
+
other{{START_DATE}{LONG_DASH}{END_DATE}}
|
197
|
+
}`,
|
198
|
+
START_DATETIME: `{
|
199
|
+
SAME_DAY,
|
200
|
+
select,
|
201
|
+
yes{{
|
202
|
+
CURRENT_YEAR,
|
203
|
+
select,
|
204
|
+
yes{{DATE},{NBSP}{TIME}}
|
205
|
+
other{{DATE}, {YEAR}{NBSP}{TIME}}
|
206
|
+
}}
|
207
|
+
other{{
|
208
|
+
CURRENT_YEAR,
|
209
|
+
select,
|
210
|
+
yes{{DATE}, {TIME}}
|
211
|
+
other{{DATE}, {YEAR} {TIME}}
|
212
|
+
}}
|
213
|
+
}${START_SECONDS_TEMPLATE}`,
|
214
|
+
END_DATETIME: `{
|
215
|
+
SAME_DAY,
|
216
|
+
select,
|
217
|
+
yes{{NBSP}{TIME}}
|
218
|
+
other{{
|
219
|
+
CURRENT_YEAR,
|
220
|
+
select,
|
221
|
+
yes{{DATE}, {TIME}}
|
222
|
+
other{{DATE}, {YEAR} {TIME}}
|
223
|
+
}}
|
224
|
+
}${END_SECONDS_TEMPLATE}`,
|
225
|
+
DATETIME: `{
|
226
|
+
SAME_DAY,
|
227
|
+
select,
|
228
|
+
yes{{START_DATETIME}{END_DATETIME}}
|
229
|
+
other{{START_DATETIME}{NBSP}{END_DATETIME}}
|
230
|
+
}`
|
231
|
+
}
|
232
|
+
},
|
233
|
+
openedRange: {
|
234
|
+
short: {
|
235
|
+
START_DATE: `{
|
236
|
+
CURRENT_YEAR,
|
237
|
+
select,
|
238
|
+
yes{{SHORT_DATE}}
|
239
|
+
other{{SHORT_DATE} {YEAR}}
|
240
|
+
}`,
|
241
|
+
END_DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE} {YEAR}}}',
|
242
|
+
DATE: `{
|
243
|
+
RANGE_TYPE,
|
244
|
+
select,
|
245
|
+
onlyStart{{START_DATE}-den}
|
246
|
+
other{{END_DATE}-e çenli}
|
247
|
+
}`,
|
248
|
+
START_DATETIME: `{
|
249
|
+
CURRENT_YEAR,
|
250
|
+
select,
|
251
|
+
yes{{SHORT_DATE}, {TIME}}
|
252
|
+
other{{SHORT_DATE} {YEAR} {TIME}}
|
253
|
+
}${START_SECONDS_TEMPLATE}`,
|
254
|
+
END_DATETIME: `{
|
255
|
+
CURRENT_YEAR,
|
256
|
+
select,
|
257
|
+
yes{{SHORT_DATE}, {TIME}}
|
258
|
+
other{{SHORT_DATE} {YEAR} {TIME}}
|
259
|
+
}${END_SECONDS_TEMPLATE}`,
|
260
|
+
DATETIME: `{
|
261
|
+
RANGE_TYPE,
|
262
|
+
select,
|
263
|
+
onlyStart{{START_DATETIME}}
|
264
|
+
other{{END_DATETIME}}
|
265
|
+
}`
|
266
|
+
},
|
267
|
+
long: {
|
268
|
+
START_DATE: `{
|
269
|
+
CURRENT_YEAR,
|
270
|
+
select,
|
271
|
+
yes{{DATE}}
|
272
|
+
other{{DATE} {YEAR}}
|
273
|
+
}`,
|
274
|
+
END_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE} {YEAR}}}',
|
275
|
+
DATE: `{
|
276
|
+
RANGE_TYPE,
|
277
|
+
select,
|
278
|
+
onlyStart{{START_DATE}-den}
|
279
|
+
other{{END_DATE}-e çenli}
|
280
|
+
}`,
|
281
|
+
START_DATETIME: `{
|
282
|
+
CURRENT_YEAR,
|
283
|
+
select,
|
284
|
+
yes{{DATE}, {TIME}}
|
285
|
+
other{{DATE} {YEAR} {TIME}}
|
286
|
+
}${START_SECONDS_TEMPLATE}`,
|
287
|
+
END_DATETIME: `{
|
288
|
+
CURRENT_YEAR,
|
289
|
+
select,
|
290
|
+
yes{{DATE}, {TIME}}
|
291
|
+
other{{DATE} {YEAR} {TIME}}
|
292
|
+
}${END_SECONDS_TEMPLATE}`,
|
293
|
+
DATETIME: `{
|
294
|
+
RANGE_TYPE,
|
295
|
+
select,
|
296
|
+
onlyStart{{START_DATETIME}}
|
297
|
+
other{{END_DATETIME}}
|
298
|
+
}`
|
299
|
+
}
|
300
|
+
}
|
301
|
+
},
|
302
|
+
durationTemplates: {
|
303
|
+
shortest: {
|
304
|
+
FULL: '{D}{SHOW_MILLISECONDS, select, yes{,{MILLISECONDS, number, ::integer-width/000}} other {}}',
|
305
|
+
ONLY_MINUTES: '{HOURS}:{MINUTES, number, ::integer-width/00}'
|
306
|
+
},
|
307
|
+
long: {
|
308
|
+
SEPARATOR: ' ',
|
309
|
+
YEARS: `{years, plural,
|
310
|
+
=1 {# ýyl}
|
311
|
+
other {# ýyllar}
|
312
|
+
}`,
|
313
|
+
MONTHS: `{months, plural,
|
314
|
+
=1 {# aý}
|
315
|
+
other {# aýlar}
|
316
|
+
}`,
|
317
|
+
WEEKS: `{weeks, plural,
|
318
|
+
=1 {# hepde}
|
319
|
+
other {# hepdeler}
|
320
|
+
}`,
|
321
|
+
DAYS: `{days, plural,
|
322
|
+
=1 {# gün}
|
323
|
+
other {# günler}
|
324
|
+
}`,
|
325
|
+
HOURS: `{hours, plural,
|
326
|
+
=1 {# sagat}
|
327
|
+
other {# sagat}
|
328
|
+
}`,
|
329
|
+
MINUTES: `{minutes, plural,
|
330
|
+
=1 {# minut}
|
331
|
+
other {# minut}
|
332
|
+
}`,
|
333
|
+
SECONDS: `{seconds, plural,
|
334
|
+
=1 {# sekunt}
|
335
|
+
other {# sekunt}
|
336
|
+
}`,
|
337
|
+
YEARS_FRACTION: `{years} ýyllar`,
|
338
|
+
MONTHS_FRACTION: `{months} aýlar`
|
339
|
+
},
|
340
|
+
short: {
|
341
|
+
SEPARATOR: ' ',
|
342
|
+
YEARS: `{years} ý`,
|
343
|
+
MONTHS: `{months} aý`,
|
344
|
+
WEEKS: `{weeks} hep`,
|
345
|
+
DAYS: `{days} g`,
|
346
|
+
HOURS: `{hours} s`,
|
347
|
+
MINUTES: `{minutes} min`,
|
348
|
+
SECONDS: `{SHOW_MILLISECONDS, select, yes
|
349
|
+
{{seconds}.{milliseconds, number, ::integer-width/000} sek}
|
350
|
+
other
|
351
|
+
{{seconds} sek}
|
352
|
+
}`,
|
353
|
+
YEARS_FRACTION: '{years} ý',
|
354
|
+
MONTHS_FRACTION: '{months} aý'
|
355
|
+
}
|
356
|
+
}
|
357
|
+
};
|
358
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGstVE0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9tb3NhaWMvY29yZS9mb3JtYXR0ZXJzL2RhdGUvdGVtcGxhdGVzL3RrLVRNLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sZ0JBQWdCLEdBQUc7Ozs7Ozs7Ozs7RUFVdkIsQ0FBQztBQUVILE1BQU0sc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7RUFVN0IsQ0FBQztBQUVILE1BQU0sb0JBQW9CLEdBQUc7Ozs7Ozs7Ozs7RUFVM0IsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBb0I7SUFDakMsaUJBQWlCLEVBQUU7UUFDZixLQUFLLEVBQUU7WUFDSCxnQkFBZ0IsRUFBRSxnRkFBZ0YsZ0JBQWdCLEVBQUU7WUFDcEgsU0FBUyxFQUFFLGVBQWUsZ0JBQWdCLEVBQUU7WUFDNUMsS0FBSyxFQUFFLGlCQUFpQixnQkFBZ0IsRUFBRTtZQUMxQyxRQUFRLEVBQUUsZ0JBQWdCLGdCQUFnQixFQUFFO1lBQzVDLGNBQWMsRUFBRSxnRkFBZ0YsZ0JBQWdCLEVBQUU7U0FDckg7UUFDRCxJQUFJLEVBQUU7WUFDRixnQkFBZ0IsRUFBRSxvRUFBb0UsZ0JBQWdCLEVBQUU7WUFDeEcsU0FBUyxFQUFFLGVBQWUsZ0JBQWdCLEVBQUU7WUFDNUMsS0FBSyxFQUFFLGlCQUFpQixnQkFBZ0IsRUFBRTtZQUMxQyxRQUFRLEVBQUUsZ0JBQWdCLGdCQUFnQixFQUFFO1lBQzVDLGNBQWMsRUFBRSxvRUFBb0UsZ0JBQWdCLEVBQUU7U0FDekc7S0FDSjtJQUNELGlCQUFpQixFQUFFO1FBQ2YsS0FBSyxFQUFFO1lBQ0gsSUFBSSxFQUFFLHVFQUF1RTtZQUM3RSxRQUFRLEVBQUU7Ozs7O2VBS1AsZ0JBQWdCLEVBQUU7U0FDeEI7UUFDRCxJQUFJLEVBQUU7WUFDRixJQUFJLEVBQUUsMkRBQTJEO1lBQ2pFLFFBQVEsRUFBRTs7Ozs7ZUFLUCxnQkFBZ0IsRUFB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cm9tICcuLi9mb3JtYXR0ZXInO1xuXG5cbmNvbnN0IFNFQ09ORFNfVEVNUExBVEUgPSBge1xuICAgIFNIT1dfTUlMTElTRUNPTkRTLFxuICAgIHNlbGVjdCxcbiAgICAgICAgeWVzezp7U0VDT05EU317TUlMTElTRUNPTkRTfX1cbiAgICAgICAgb3RoZXJ7e1xuICAgICAgICAgICAgU0hPV19TRUNPTkRTLFxuICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgIHllc3s6e1NFQ09ORFN9fVxuICAgICAgICAgICAgICAgIG90aGVye31cbiAgICAgICAgfX1cbn1gO1xuXG5jb25zdCBTVEFSVF9TRUNPTkRTX1RFTVBMQVRFID0gYHtcbiAgICBTSE9XX01JTExJU0VDT05EUyxcbiAgICBzZWxlY3QsXG4gICAgICAgIHllc3s6e1NFQ09ORFN9e01JTExJU0VDT05EU30tZGFufVxuICAgICAgICBvdGhlcnt7XG4gICAgICAgICAgICBTSE9XX1NFQ09ORFMsXG4gICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgeWVzezp7U0VDT05EU30tZGFufVxuICAgICAgICAgICAgICAgIG90aGVyey1kZW59XG4gICAgICAgIH19XG59YDtcblxuY29uc3QgRU5EX1NFQ09ORFNfVEVNUExBVEUgPSBge1xuICAgIFNIT1dfTUlMTElTRUNPTkRTLFxuICAgIHNlbGVjdCxcbiAgICAgICAgeWVzezp7U0VDT05EU317TUlMTElTRUNPTkRTfS1hIMOnZW5saX1cbiAgICAgICAgb3RoZXJ7e1xuICAgICAgICAgICAgU0hPV19TRUNPTkRTLFxuICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgIHllc3s6e1NFQ09ORFN9LWEgw6dlbmxpfVxuICAgICAgICAgICAgICAgIG90aGVyey1lIMOnZW5saX1cbiAgICAgICAgfX1cbn1gO1xuXG5leHBvcnQgY29uc3QgdGtUTTogRm9ybWF0dGVyQ29uZmlnID0ge1xuICAgIHJlbGF0aXZlVGVtcGxhdGVzOiB7XG4gICAgICAgIHNob3J0OiB7XG4gICAgICAgICAgICBCRUZPUkVfWUVTVEVSREFZOiBge0NVUlJFTlRfWUVBUiwgc2VsZWN0LCB5ZXN7e1NIT1JUX0RBVEV9LCB7VElNRX19IG90aGVye3tTSE9SVF9EQVRFfSwge1lFQVJ9fX0ke1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgIFlFU1RFUkRBWTogYETDvMO9biwge1RJTUV9JHtTRUNPTkRTX1RFTVBMQVRFfWAsXG4gICAgICAgICAgICBUT0RBWTogYMWedSBnw7xuLCB7VElNRX0ke1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgIFRPTU9SUk9XOiBgRXJ0aXIsIHtUSU1FfSR7U0VDT05EU19URU1QTEFURX1gLFxuICAgICAgICAgICAgQUZURVJfVE9NT1JST1c6IGB7Q1VSUkVOVF9ZRUFSLCBzZWxlY3QsIHllc3t7U0hPUlRfREFURX0sIHtUSU1FfX0gb3RoZXJ7e1NIT1JUX0RBVEV9LCB7WUVBUn19fSR7U0VDT05EU19URU1QTEFURX1gXG4gICAgICAgIH0sXG4gICAgICAgIGxvbmc6IHtcbiAgICAgICAgICAgIEJFRk9SRV9ZRVNURVJEQVk6IGB7Q1VSUkVOVF9ZRUFSLCBzZWxlY3QsIHllc3t7REFURX0sIHtUSU1FfX0gb3RoZXJ7e0RBVEV9LCB7WUVBUn19fSR7U0VDT05EU19URU1QTEFURX1gLFxuICAgICAgICAgICAgWUVTVEVSREFZOiBgRMO8w71uLCB7VElNRX0ke1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgIFRPREFZOiBgxZ51IGfDvG4sIHtUSU1FfSR7U0VDT05EU19URU1QTEFURX1gLFxuICAgICAgICAgICAgVE9NT1JST1c6IGBFcnRpciwge1RJTUV9JHtTRUNPTkRTX1RFTVBMQVRFfWAsXG4gICAgICAgICAgICBBRlRFUl9UT01PUlJPVzogYHtDVVJSRU5UX1lFQVIsIHNlbGVjdCwgeWVze3tEQVRFfSwge1RJTUV9fSBvdGhlcnt7REFURX0sIHtZRUFSfX19JHtTRUNPTkRTX1RFTVBMQVRFfWBcbiAgICAgICAgfVxuICAgIH0sXG4gICAgYWJzb2x1dGVUZW1wbGF0ZXM6IHtcbiAgICAgICAgc2hvcnQ6IHtcbiAgICAgICAgICAgIERBVEU6ICd7Q1VSUkVOVF9ZRUFSLCBzZWxlY3QsIHllc3t7U0hPUlRfREFURX19IG90aGVye3tTSE9SVF9EQVRFfSwge1lFQVJ9fX0nLFxuICAgICAgICAgICAgREFURVRJTUU6IGB7XG4gICAgICAgICAgICAgICAgQ1VSUkVOVF9ZRUFSLFxuICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgeWVze3tTSE9SVF9EQVRFfSwge1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICBvdGhlcnt7U0hPUlRfREFURX0sIHtZRUFSfSB7VElNRX19XG4gICAgICAgICAgICB9JHtTRUNPTkRTX1RFTVBMQVRFfWBcbiAgICAgICAgfSxcbiAgICAgICAgbG9uZzoge1xuICAgICAgICAgICAgREFURTogJ3tDVVJSRU5UX1lFQVIsIHNlbGVjdCwgeWVze3tEQVRFfX0gb3RoZXJ7e0RBVEV9LCB7WUVBUn19fScsXG4gICAgICAgICAgICBEQVRFVElNRTogYHtcbiAgICAgICAgICAgICAgICBDVVJSRU5UX1lFQVIsXG4gICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICB5ZXN7e0RBVEV9LCB7VElNRX19XG4gICAgICAgICAgICAgICAgICAgIG90aGVye3tEQVRFfSwge1lFQVJ9IHtUSU1FfX1cbiAgICAgICAgICAgIH0ke1NFQ09ORFNfVEVNUExBVEV9YFxuICAgICAgICB9XG4gICAgfSxcbiAgICByYW5nZVRlbXBsYXRlczoge1xuICAgICAgICBjbG9zZWRSYW5nZToge1xuICAgICAgICAgICAgc2hvcnQ6IHtcbiAgICAgICAgICAgICAgICBTVEFSVF9EQVRFOiAne0NVUlJFTlRfWUVBUiwgc2VsZWN0LCB5ZXN7e1NIT1JUX0RBVEV9fSBvdGhlcnt7U0hPUlRfREFURX0sIHtZRUFSfX19JyxcbiAgICAgICAgICAgICAgICBFTkRfREFURTogYHtcbiAgICAgICAgICAgICAgICAgICAgU0FNRV9NT05USCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tEQVl9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVUlJFTlRfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7U0hPUlRfREFURX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tTSE9SVF9EQVRFfSwge1lFQVJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgICBEQVRFOiBge1xuICAgICAgICAgICAgICAgICAgICBTQU1FX01PTlRILFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e1NUQVJUX0RBVEV9e0RBU0h9e0VORF9EQVRFfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tTVEFSVF9EQVRFfXtMT05HX0RBU0h9e0VORF9EQVRFfX1cbiAgICAgICAgICAgICAgICB9YCxcblxuICAgICAgICAgICAgICAgIFNUQVJUX0RBVEVUSU1FOiBge1xuICAgICAgICAgICAgICAgICAgICBTQU1FX0RBWSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVVJSRU5UX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e1NIT1JUX0RBVEV9LCB7VElNRX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tTSE9SVF9EQVRFfSwge1lFQVJ9LCB7VElNRX19XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIH0ke1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgICAgICBFTkRfREFURVRJTUU6IGB7XG4gICAgICAgICAgICAgICAgICAgIFNBTUVfREFZLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVUlJFTlRfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7VElNRX0ke1NFQ09ORFNfVEVNUExBVEV9IHtTSE9SVF9EQVRFfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e1RJTUV9JHtTRUNPTkRTX1RFTVBMQVRFfSB7U0hPUlRfREFURX0sIHtZRUFSfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VSUkVOVF9ZRUFSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tTSE9SVF9EQVRFfSwge1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7U0hPUlRfREFURX0sIHtZRUFSfSwge1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfSR7U0VDT05EU19URU1QTEFURX19XG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICAgREFURVRJTUU6IGB7XG4gICAgICAgICAgICAgICAgICAgIFNBTUVfREFZLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e1NUQVJUX0RBVEVUSU1FfXtEQVNIfXtFTkRfREFURVRJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e1NUQVJUX0RBVEVUSU1FfXtMT05HX0RBU0h9e0VORF9EQVRFVElNRX19XG4gICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtaWRkbGU6IHtcbiAgICAgICAgICAgICAgICBTVEFSVF9EQVRFOiBge1xuICAgICAgICAgICAgICAgICAgICBTQU1FX01PTlRILFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e0RBWX19XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VSUkVOVF9ZRUFSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tEQVRFfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e0RBVEV9LCB7WUVBUn19XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIEVORF9EQVRFOiAne0NVUlJFTlRfWUVBUiwgc2VsZWN0LCB5ZXN7e0RBVEV9fSBvdGhlcnt7REFURX0sIHtZRUFSfX19JyxcbiAgICAgICAgICAgICAgICBEQVRFOiBge1xuICAgICAgICAgICAgICAgICAgICBTQU1FX01PTlRILFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e1NUQVJUX0RBVEV9e0RBU0h9e0VORF9EQVRFfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tTVEFSVF9EQVRFfXtMT05HX0RBU0h9e0VORF9EQVRFfX1cbiAgICAgICAgICAgICAgICB9YCxcblxuICAgICAgICAgICAgICAgIFNUQVJUX0RBVEVUSU1FOiBge1xuICAgICAgICAgICAgICAgICAgICBTQU1FX0RBWSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVVJSRU5UX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e0RBVEV9LCB7VElNRX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tEQVRFfSwge1lFQVJ9IHtUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgfSR7U0VDT05EU19URU1QTEFURX1gLFxuICAgICAgICAgICAgICAgIEVORF9EQVRFVElNRTogYHtcbiAgICAgICAgICAgICAgICAgICAgU0FNRV9EQVksXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VSUkVOVF9ZRUFSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tUSU1FfSR7U0VDT05EU19URU1QTEFURX0ge0RBVEV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7VElNRX0ke1NFQ09ORFNfVEVNUExBVEV9IHtEQVRFfSwge1lFQVJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVVJSRU5UX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e0RBVEV9LCB7VElNRX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tEQVRFfSwge1lFQVJ9IHtUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0ke1NFQ09ORFNfVEVNUExBVEV9fVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIERBVEVUSU1FOiBge1xuICAgICAgICAgICAgICAgICAgICBTQU1FX0RBWSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tTVEFSVF9EQVRFVElNRX17REFTSH17RU5EX0RBVEVUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tTVEFSVF9EQVRFVElNRX17TE9OR19EQVNIfXtFTkRfREFURVRJTUV9fVxuICAgICAgICAgICAgICAgIH1gXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9uZzoge1xuICAgICAgICAgICAgICAgIFNUQVJUX0RBVEU6ICd7Q1VSUkVOVF9ZRUFSLCBzZWxlY3QsIHllc3t7REFURX19IG90aGVye3tEQVRFfSwge1lFQVJ9fX0nLFxuICAgICAgICAgICAgICAgIEVORF9EQVRFOiBge1xuICAgICAgICAgICAgICAgICAgICBTQU1FX01PTlRILFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e0RBWX19XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VSUkVOVF9ZRUFSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tEQVRFfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e0RBVEV9LCB7WUVBUn19XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIERBVEU6IGB7XG4gICAgICAgICAgICAgICAgICAgIFNBTUVfTU9OVEgsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7U1RBUlRfREFURX17REFTSH17RU5EX0RBVEV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e1NUQVJUX0RBVEV9e0xPTkdfREFTSH17RU5EX0RBVEV9fVxuICAgICAgICAgICAgICAgIH1gLFxuXG4gICAgICAgICAgICAgICAgU1RBUlRfREFURVRJTUU6IGB7XG4gICAgICAgICAgICAgICAgICAgIFNBTUVfREFZLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVUlJFTlRfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7REFURX0se05CU1B9e1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7REFURX0sIHtZRUFSfXtOQlNQfXtUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VSUkVOVF9ZRUFSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tEQVRFfSwge1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7REFURX0sIHtZRUFSfSB7VElNRX19XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIH0ke1NUQVJUX1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgICAgICBFTkRfREFURVRJTUU6IGB7XG4gICAgICAgICAgICAgICAgICAgIFNBTUVfREFZLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ZXN7e05CU1B9e1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVUlJFTlRfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7REFURX0sIHtUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e0RBVEV9LCB7WUVBUn0ge1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB9JHtFTkRfU0VDT05EU19URU1QTEFURX1gLFxuICAgICAgICAgICAgICAgIERBVEVUSU1FOiBge1xuICAgICAgICAgICAgICAgICAgICBTQU1FX0RBWSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tTVEFSVF9EQVRFVElNRX17RU5EX0RBVEVUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tTVEFSVF9EQVRFVElNRX17TkJTUH17RU5EX0RBVEVUSU1FfX1cbiAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvcGVuZWRSYW5nZToge1xuICAgICAgICAgICAgc2hvcnQ6IHtcbiAgICAgICAgICAgICAgICBTVEFSVF9EQVRFOiBge1xuICAgICAgICAgICAgICAgICAgICBDVVJSRU5UX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7U0hPUlRfREFURX19XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7U0hPUlRfREFURX0ge1lFQVJ9fVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIEVORF9EQVRFOiAne0NVUlJFTlRfWUVBUiwgc2VsZWN0LCB5ZXN7e1NIT1JUX0RBVEV9fSBvdGhlcnt7U0hPUlRfREFURX0ge1lFQVJ9fX0nLFxuICAgICAgICAgICAgICAgIERBVEU6IGB7XG4gICAgICAgICAgICAgICAgICAgIFJBTkdFX1RZUEUsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ubHlTdGFydHt7U1RBUlRfREFURX0tZGVufVxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e0VORF9EQVRFfS1lIMOnZW5saX1cbiAgICAgICAgICAgICAgICB9YCxcblxuICAgICAgICAgICAgICAgIFNUQVJUX0RBVEVUSU1FOiBge1xuICAgICAgICAgICAgICAgICAgICBDVVJSRU5UX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7U0hPUlRfREFURX0sIHtUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tTSE9SVF9EQVRFfSB7WUVBUn0ge1RJTUV9fVxuICAgICAgICAgICAgICAgIH0ke1NUQVJUX1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgICAgICBFTkRfREFURVRJTUU6IGB7XG4gICAgICAgICAgICAgICAgICAgIENVUlJFTlRfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tTSE9SVF9EQVRFfSwge1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e1NIT1JUX0RBVEV9IHtZRUFSfSB7VElNRX19XG4gICAgICAgICAgICAgICAgfSR7RU5EX1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgICAgICBEQVRFVElNRTogYHtcbiAgICAgICAgICAgICAgICAgICAgUkFOR0VfVFlQRSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgb25seVN0YXJ0e3tTVEFSVF9EQVRFVElNRX19XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7RU5EX0RBVEVUSU1FfX1cbiAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxvbmc6IHtcbiAgICAgICAgICAgICAgICBTVEFSVF9EQVRFOiBge1xuICAgICAgICAgICAgICAgICAgICBDVVJSRU5UX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7REFURX19XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7REFURX0ge1lFQVJ9fVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICAgIEVORF9EQVRFOiAne0NVUlJFTlRfWUVBUiwgc2VsZWN0LCB5ZXN7e0RBVEV9fSBvdGhlcnt7REFURX0ge1lFQVJ9fX0nLFxuICAgICAgICAgICAgICAgIERBVEU6IGB7XG4gICAgICAgICAgICAgICAgICAgIFJBTkdFX1RZUEUsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ubHlTdGFydHt7U1RBUlRfREFURX0tZGVufVxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e0VORF9EQVRFfS1lIMOnZW5saX1cbiAgICAgICAgICAgICAgICB9YCxcblxuICAgICAgICAgICAgICAgIFNUQVJUX0RBVEVUSU1FOiBge1xuICAgICAgICAgICAgICAgICAgICBDVVJSRU5UX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHllc3t7REFURX0sIHtUSU1FfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG90aGVye3tEQVRFfSB7WUVBUn0ge1RJTUV9fVxuICAgICAgICAgICAgICAgIH0ke1NUQVJUX1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgICAgICBFTkRfREFURVRJTUU6IGB7XG4gICAgICAgICAgICAgICAgICAgIENVUlJFTlRfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgeWVze3tEQVRFfSwge1RJTUV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ7e0RBVEV9IHtZRUFSfSB7VElNRX19XG4gICAgICAgICAgICAgICAgfSR7RU5EX1NFQ09ORFNfVEVNUExBVEV9YCxcbiAgICAgICAgICAgICAgICBEQVRFVElNRTogYHtcbiAgICAgICAgICAgICAgICAgICAgUkFOR0VfVFlQRSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgb25seVN0YXJ0e3tTVEFSVF9EQVRFVElNRX19XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlcnt7RU5EX0RBVEVUSU1FfX1cbiAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBkdXJhdGlvblRlbXBsYXRlczoge1xuICAgICAgICBzaG9ydGVzdDoge1xuICAgICAgICAgICAgRlVMTDogJ3tEfXtTSE9XX01JTExJU0VDT05EUywgc2VsZWN0LCB5ZXN7LHtNSUxMSVNFQ09ORFMsIG51bWJlciwgOjppbnRlZ2VyLXdpZHRoLzAwMH19IG90aGVyIHt9fScsXG4gICAgICAgICAgICBPTkxZX01JTlVURVM6ICd7SE9VUlN9OntNSU5VVEVTLCBudW1iZXIsIDo6aW50ZWdlci13aWR0aC8wMH0nXG4gICAgICAgIH0sXG4gICAgICAgIGxvbmc6IHtcbiAgICAgICAgICAgIFNFUEFSQVRPUjogJyAnLFxuICAgICAgICAgICAgWUVBUlM6IGB7eWVhcnMsIHBsdXJhbCxcbiAgICAgICAgICAgICAgICA9MSB7IyDDvXlsfVxuICAgICAgICAgICAgICAgIG90aGVyIHsjIMO9eWxsYXJ9XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIE1PTlRIUzogYHttb250aHMsIHBsdXJhbCxcbiAgICAgICAgICAgICAgICA9MSB7IyBhw719XG4gICAgICAgICAgICAgICAgb3RoZXIgeyMgYcO9bGFyfVxuICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICBXRUVLUzogYHt3ZWVrcywgcGx1cmFsLFxuICAgICAgICAgICAgICAgID0xIHsjIGhlcGRlfVxuICAgICAgICAgICAgICAgIG90aGVyIHsjIGhlcGRlbGVyfVxuICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICBEQVlTOiBge2RheXMsIHBsdXJhbCxcbiAgICAgICAgICAgICAgICA9MSB7IyBnw7xufVxuICAgICAgICAgICAgICAgIG90aGVyIHsjIGfDvG5sZXJ9XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIEhPVVJTOiBge2hvdXJzLCBwbHVyYWwsXG4gICAgICAgICAgICAgICAgPTEgeyMgc2FnYXR9XG4gICAgICAgICAgICAgICAgb3RoZXIgeyMgc2FnYXR9XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIE1JTlVURVM6IGB7bWludXRlcywgcGx1cmFsLFxuICAgICAgICAgICAgICAgID0xIHsjIG1pbnV0fVxuICAgICAgICAgICAgICAgIG90aGVyIHsjIG1pbnV0fVxuICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICBTRUNPTkRTOiBge3NlY29uZHMsIHBsdXJhbCxcbiAgICAgICAgICAgICAgICA9MSB7IyBzZWt1bnR9XG4gICAgICAgICAgICAgICAgb3RoZXIgeyMgc2VrdW50fVxuICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICBZRUFSU19GUkFDVElPTjogYHt5ZWFyc30gw715bGxhcmAsXG4gICAgICAgICAgICBNT05USFNfRlJBQ1RJT046IGB7bW9udGhzfSBhw71sYXJgXG4gICAgICAgIH0sXG4gICAgICAgIHNob3J0OiB7XG4gICAgICAgICAgICBTRVBBUkFUT1I6ICcgJyxcbiAgICAgICAgICAgIFlFQVJTOiBge3llYXJzfSDDvWAsXG4gICAgICAgICAgICBNT05USFM6IGB7bW9udGhzfSBhw71gLFxuICAgICAgICAgICAgV0VFS1M6IGB7d2Vla3N9IGhlcGAsXG4gICAgICAgICAgICBEQVlTOiBge2RheXN9IGdgLFxuICAgICAgICAgICAgSE9VUlM6IGB7aG91cnN9IHNgLFxuICAgICAgICAgICAgTUlOVVRFUzogYHttaW51dGVzfSBtaW5gLFxuICAgICAgICAgICAgU0VDT05EUzogYHtTSE9XX01JTExJU0VDT05EUywgc2VsZWN0LCB5ZXNcbiAgICAgICAgICAgICAgICB7e3NlY29uZHN9LnttaWxsaXNlY29uZHMsIG51bWJlciwgOjppbnRlZ2VyLXdpZHRoLzAwMH0gc2VrfVxuICAgICAgICAgICAgICAgIG90aGVyXG4gICAgICAgICAgICAgICAge3tzZWNvbmRzfSBzZWt9XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIFlFQVJTX0ZSQUNUSU9OOiAne3llYXJzfSDDvScsXG4gICAgICAgICAgICBNT05USFNfRlJBQ1RJT046ICd7bW9udGhzfSBhw70nXG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19
|
package/esm2020/core/version.mjs
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
import { Version } from '@angular/core';
|
2
|
-
export const VERSION = new Version('14.10.
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
export const VERSION = new Version('14.10.9+sha-c909c3e');
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlcnNpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNC4xMC45K3NoYS1jOTA5YzNlJyk7XG4iXX0=
|
@@ -44,7 +44,9 @@ export class McFormField extends McFormFieldMixinBase {
|
|
44
44
|
this.hovered = false;
|
45
45
|
this.canCleanerClearByEsc = true;
|
46
46
|
this.$unsubscribe = new Subject();
|
47
|
-
this.runFocusMonitor()
|
47
|
+
this.runFocusMonitor = () => {
|
48
|
+
this.focusMonitor.monitor(this.elementRef.nativeElement, true);
|
49
|
+
};
|
48
50
|
}
|
49
51
|
get hasHint() {
|
50
52
|
return this.hint?.length > 0;
|
@@ -109,6 +111,8 @@ export class McFormField extends McFormFieldMixinBase {
|
|
109
111
|
this.validateControlChild();
|
110
112
|
}
|
111
113
|
ngAfterViewInit() {
|
114
|
+
Promise.resolve()
|
115
|
+
.then(this.runFocusMonitor);
|
112
116
|
// Avoid animations on load.
|
113
117
|
this.changeDetectorRef.detectChanges();
|
114
118
|
}
|
@@ -156,9 +160,6 @@ export class McFormField extends McFormFieldMixinBase {
|
|
156
160
|
this.$unsubscribe.complete();
|
157
161
|
this.stopFocusMonitor();
|
158
162
|
}
|
159
|
-
runFocusMonitor() {
|
160
|
-
this.focusMonitor.monitor(this.elementRef.nativeElement, true);
|
161
|
-
}
|
162
163
|
stopFocusMonitor() {
|
163
164
|
this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
|
164
165
|
}
|
@@ -267,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
267
268
|
}, {
|
268
269
|
type: Self
|
269
270
|
}] }]; } });
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9tb3NhaWMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFJSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLGNBQWMsRUFFZCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQ0gsaUNBQWlDLEVBQ2pDLG1EQUFtRCxFQUN0RCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFR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Q0FBQyxnQkFBZ0IsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUs7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFBRSxPQUFPLEtBQUssQ0FBQztTQUFFO1FBRWxDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1RCxDQUFDOztzSEFwQlEsTUFBTSxrQkFJQSxTQUFTOzBHQUpmLE1BQU07MkZBQU4sTUFBTTtrQkFMbEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtpQkFDN0I7OzBCQUtRLFNBQVM7MkJBQUMsU0FBUzs7MEJBQ25CLFFBQVE7OzBCQUFJLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVTQ0FQRSwgRjggfSBmcm9tICdAcHRzZWN1cml0eS9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgQ2FuQ29sb3IsIENhbkNvbG9yQ3RvciwgbWl4aW5Db2xvciB9IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9jb3JlJztcbmltcG9ydCB7IEVNUFRZLCBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE1jQ2xlYW5lciB9IGZyb20gJy4vY2xlYW5lcic7XG5pbXBvcnQgeyBNY0Zvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbCc7XG5pbXBvcnQge1xuICAgIGdldE1jRm9ybUZpZWxkTWlzc2luZ0NvbnRyb2xFcnJvcixcbiAgICBnZXRNY0Zvcm1GaWVsZFlvdUNhbk5vdFVzZUNsZWFuZXJJbk51bWJlcklucHV0RXJyb3Jcbn0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9ycyc7XG5pbXBvcnQgeyBNY0hpbnQgfSBmcm9tICcuL2hpbnQnO1xuaW1wb3J0IHsgTWNQYXNzd29yZEhpbnQgfSBmcm9tICcuL3Bhc3N3b3JkLWhpbnQnO1xuaW1wb3J0IHsgTWNQcmVmaXggfSBmcm9tICcuL3ByZWZpeCc7XG5pbXBvcnQgeyBNY1N0ZXBwZXIgfSBmcm9tICcuL3N0ZXBwZXInO1xuaW1wb3J0IHsgTWNTdWZmaXggfSBmcm9tICcuL3N1ZmZpeCc7XG5cblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5qZWN0IGFuIGluc3RhbmNlcyBvZiBgTWF0Rm9ybUZpZWxkYC4gSXQgc2VydmVzXG4gKiBhcyBhbHRlcm5hdGl2ZSB0b2tlbiB0byB0aGUgYWN0dWFsIGBNYXRGb3JtRmllbGRgIGNsYXNzIHdoaWNoIHdvdWxkIGNhdXNlIHVubmVjZXNzYXJ5XG4gKiByZXRlbnRpb24gb2YgdGhlIGBNYXRGb3JtRmllbGRgIGNsYXNzIGFuZCBpdHMgY29tcG9uZW50IG1ldGFkYXRhLlxuICovXG5leHBvcnQgY29uc3QgTUNfRk9STV9GSUVMRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNY0Zvcm1GaWVsZD4oJ01jRm9ybUZpZWxkJyk7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY2xhc3MgTWNGb3JtRmllbGRCYXNlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBNY0Zvcm1GaWVsZE1peGluQmFzZTogQ2FuQ29sb3JDdG9yICYgdHlwZW9mIE1jRm9ybUZpZWxkQmFzZSA9IG1peGluQ29sb3IoTWNGb3JtRmllbGRCYXNlKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYy1mb3JtLWZpZWxkJyxcbiAgICBleHBvcnRBczogJ21jRm9ybUZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2Zvcm0tZmllbGQuaHRtbCcsXG4gICAgLy8gTWNJbnB1dCBpcyBhIGRpcmVjdGl2ZSBhbmQgY2FuJ3QgaGF2ZSBzdHlsZXMsIHNvIHdlIG5lZWQgdG8gaW5jbHVkZSBpdHMgc3R5bGVzIGhlcmUuXG4gICAgLy8gVGhlIE1jSW5wdXQgc3R5bGVzIGFyZSBmYWlybHkgbWluaW1hbCBzbyBpdCBzaG91bGRuJ3QgYmUgYSBiaWcgZGVhbCBmb3IgcGVvcGxlIHdob1xuICAgIC8vIGFyZW4ndCB1c2luZyBNY0lucHV0LlxuICAgIHN0eWxlVXJsczogW1xuICAgICAgICAnZm9ybS1maWVsZC5zY3NzJyxcbiAgICAgICAgJy4uL2lucHV0L2lucHV0LnNjc3MnLFxuICAgICAgICAnLi4vdGltZXBpY2tlci90aW1lcGlja2VyLnNjc3MnLFxuICAgICAgICAnLi4vZGF0ZXBpY2tlci9kYXRlcGlja2VyLWlucHV0LnNjc3MnLFxuICAgICAgICAnLi4vdGV4dGFyZWEvdGV4dGFyZWEuc2NzcydcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdtYy1mb3JtLWZpZWxkJyxcbiAgICAgICAgJ1tjbGFzcy5tYy1mb3JtLWZpZWxkX2ludmFsaWRdJzogJ2NvbnRyb2wuZXJyb3JTdGF0ZScsXG4gICAgICAgICdbY2xhc3MubWMtZm9ybS1maWVsZF9oYXMtcHJlZml4XSc6ICdoYXNQcmVmaXgnLFxuICAgICAgICAnW2NsYXNzLm1jLWZvcm0tZmllbGRfaGFzLXN1ZmZpeF0nOiAnaGFzU3VmZml4JyxcbiAgICAgICAgJ1tjbGFzcy5tYy1mb3JtLWZpZWxkX2hhcy1jbGVhbmVyXSc6ICdjYW5TaG93Q2xlYW5lcicsXG4gICAgICAgICdbY2xhc3MubWMtZm9ybS1maWVsZF9oYXMtc3RlcHBlcl0nOiAnY2FuU2hvd1N0ZXBwZXInLFxuXG4gICAgICAgICdbY2xhc3MubWMtZGlzYWJsZWRdJzogJ2NvbnRyb2wuZGlzYWJsZWQnLFxuXG4gICAgICAgICdbY2xhc3MubmctdW50b3VjaGVkXSc6ICdzaG91bGRGb3J3YXJkKFwidW50b3VjaGVkXCIpJyxcbiAgICAgICAgJ1tjbGFzcy5uZy10b3VjaGVkXSc6ICdzaG91bGRGb3J3YXJkKFwidG91Y2hlZFwiKScsXG4gICAgICAgICdbY2xhc3MubmctcHJpc3RpbmVdJzogJ3Nob3VsZEZvcndhcmQoXCJwcmlzdGluZVwiKScsXG4gICAgICAgICdbY2xhc3MubmctZGlydHldJzogJ3Nob3VsZEZvcndhcmQoXCJkaXJ0eVwiKScsXG4gICAgICAgICdbY2xhc3MubmctdmFsaWRdJzogJ3Nob3VsZEZvcndhcmQoXCJ2YWxpZFwiKScsXG4gICAgICAgICdbY2xhc3MubmctaW52YWxpZF0nOiAnc2hvdWxkRm9yd2FyZChcImludmFsaWRcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLXBlbmRpbmddJzogJ3Nob3VsZEZvcndhcmQoXCJwZW5kaW5nXCIpJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5RG93bigkZXZlbnQpJyxcbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdvbkhvdmVyQ2hhbmdlZCh0cnVlKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnb25Ib3ZlckNoYW5nZWQoZmFsc2UpJ1xuICAgIH0sXG4gICAgaW5wdXRzOiBbJ2NvbG9yJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1DX0ZPUk1fRklFTEQsIHVzZUV4aXN0aW5nOiBNY0Zvcm1GaWVsZCB9XVxufSlcbmV4cG9ydCBjbGFzcyBNY0Zvcm1GaWVsZCBleHRlbmRzIE1jRm9ybUZpZWxkTWl4aW5CYXNlIGltcGxlbWVudHNcbiAgICBBZnRlckNvbnRlbnRJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBDYW5Db2xvciwgT25EZXN0cm95IHtcblxuICAgIEBDb250ZW50Q2hpbGQoTWNGb3JtRmllbGRDb250cm9sLCB7IHN0YXRpYzogZmFsc2UgfSkgY29udHJvbDogTWNGb3JtRmllbGRDb250cm9sPGFueT47XG4gICAgQENvbnRlbnRDaGlsZChNY1N0ZXBwZXIsIHsgc3RhdGljOiBmYWxzZSB9KSBzdGVwcGVyOiBNY1N0ZXBwZXI7XG4gICAgQENvbnRlbnRDaGlsZChNY0NsZWFuZXIsIHsgc3RhdGljOiBmYWxzZSB9KSBjbGVhbmVyOiBNY0NsZWFuZXIgfCBudWxsO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihNY0hpbnQpIGhpbnQ6IFF1ZXJ5TGlzdDxNY0hpbnQ+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTWNQYXNzd29yZEhpbnQpIHBhc3N3b3JkSGludHM6IFF1ZXJ5TGlzdDxNY1Bhc3N3b3JkSGludD47XG4gICAgQENvbnRlbnRDaGlsZHJlbihNY1N1ZmZpeCkgc3VmZml4OiBRdWVyeUxpc3Q8TWNTdWZmaXg+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTWNQcmVmaXgpIHByZWZpeDogUXVlcnlMaXN0PE1jUHJlZml4PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2Nvbm5lY3Rpb25Db250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb25uZWN0aW9uQ29udGFpbmVyUmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLy8gVW5pcXVlIGlkIGZvciB0aGUgaW50ZXJuYWwgZm9ybSBmaWVsZCBsYWJlbC5cbiAgICBsYWJlbElkID0gYG1jLWZvcm0tZmllbGQtbGFiZWwtJHtuZXh0VW5pcXVlSWQrK31gO1xuXG4gICAgaG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY2FuQ2xlYW5lckNsZWFyQnlFc2M6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSAkdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGhhc0hpbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhpbnQ/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1Bhc3N3b3JkU3RyZW5ndGhFcnJvcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFzc3dvcmRIaW50cz8uc29tZSgoaGludCkgPT4gaGludC5oYXNFcnJvcik7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1N1ZmZpeCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VmZml4Py5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldCBoYXNQcmVmaXgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZWZpeD8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jbGVhbmVyO1xuICAgIH1cblxuICAgIGdldCBoYXNTdGVwcGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnN0ZXBwZXI7XG4gICAgfVxuXG4gICAgZ2V0IGNhblNob3dDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDbGVhbmVyICYmXG4gICAgICAgIHRoaXMuY29udHJvbD8ubmdDb250cm9sXG4gICAgICAgICAgICA/IHRoaXMuY29udHJvbC5uZ0NvbnRyb2wudmFsdWUgJiYgIXRoaXMuY29udHJvbC5kaXNhYmxlZFxuICAgICAgICAgICAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmRpc2FibGVkO1xuICAgIH1cblxuICAgIGdldCBjYW5TaG93U3RlcHBlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzU3RlcHBlciAmJlxuICAgICAgICAgICAgIXRoaXMuZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICh0aGlzLmNvbnRyb2w/LmZvY3VzZWQgfHwgdGhpcy5ob3ZlcmVkKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuXG4gICAgICAgIHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAoKHRoaXMuY29udHJvbCBhcyBhbnkpLm51bWJlcklucHV0ICYmIHRoaXMuaGFzQ2xlYW5lcikge1xuICAgICAgICAgICAgdGhpcy5jbGVhbmVyID0gbnVsbDtcbiAgICAgICAgICAgIHRocm93IGdldE1jRm9ybUZpZWxkWW91Q2FuTm90VXNlQ2xlYW5lckluTnVtYmVySW5wdXRFcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWxpZGF0ZUNvbnRyb2xDaGlsZCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbFR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG1jLWZvcm0tZmllbGQtdHlwZS0ke3RoaXMuY29udHJvbC5jb250cm9sVHlwZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byBjaGFuZ2VzIGluIHRoZSBjaGlsZCBjb250cm9sIHN0YXRlIGluIG9yZGVyIHRvIHVwZGF0ZSB0aGUgZm9ybSBmaWVsZCBVSS5cbiAgICAgICAgdGhpcy5jb250cm9sLnN0YXRlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzdGF0ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGF0ZT8uZm9jdXNlZCAmJiB0aGlzLmhhc1Bhc3N3b3JkU3RyZW5ndGhFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wubmdDb250cm9sPy5jb250cm9sPy5zZXRFcnJvcnMoeyBwYXNzd29yZFN0cmVuZ3RoOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5oYXNTdGVwcGVyKSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXBwZXIuY29ubmVjdFRvKCh0aGlzLmNvbnRyb2wgYXMgYW55KS5udW1iZXJJbnB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSdW4gY2hhbmdlIGRldGVjdGlvbiBpZiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICAgICAgY29uc3QgdmFsdWVDaGFuZ2VzID0gdGhpcy5jb250cm9sLm5nQ29udHJvbD8udmFsdWVDaGFuZ2VzIHx8IEVNUFRZO1xuXG4gICAgICAgIG1lcmdlKHZhbHVlQ2hhbmdlcylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiR1bnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUNvbnRyb2xDaGlsZCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gQXZvaWQgYW5pbWF0aW9ucyBvbiBsb2FkLlxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBjbGVhclZhbHVlKCRldmVudCkge1xuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5jb250cm9sPy5uZ0NvbnRyb2w/LnJlc2V0KCk7XG4gICAgICAgIHRoaXMuY29udHJvbD8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbkNvbnRhaW5lckNsaWNrKCRldmVudCkge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sLm9uQ29udGFpbmVyQ2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5vbkNvbnRhaW5lckNsaWNrKCRldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRlcHJlY2F0aW9uXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbFR5cGUgPT09ICdpbnB1dC1wYXNzd29yZCcgJiYgZXZlbnQuYWx0S2V5ICYmIGV2ZW50LmtleUNvZGUgPT09IEY4KSB7XG4gICAgICAgICAgICAodGhpcy5jb250cm9sIGFzIHVua25vd24gYXMgeyB0b2dnbGVUeXBlKCk6IHZvaWQgfSkudG9nZ2xlVHlwZSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgICAgICBpZiAodGhpcy5jYW5DbGVhbmVyQ2xlYXJCeUVzYyAmJiBldmVudC5rZXlDb2RlID09PSBFU0NBUEUgJiYgdGhpcy5jb250cm9sLmZvY3VzZWQgJiYgdGhpcy5oYXNDbGVhbmVyKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbD8ucmVzZXQoKTtcblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSG92ZXJDaGFuZ2VkKGlzSG92ZXJlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoaXNIb3ZlcmVkICE9PSB0aGlzLmhvdmVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaG92ZXJlZCA9IGlzSG92ZXJlZDtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFuIEVsZW1lbnRSZWYgZm9yIHRoZSBlbGVtZW50IHRoYXQgYSBvdmVybGF5IGF0dGFjaGVkIHRvIHRoZSBmb3JtLWZpZWxkIHNob3VsZCBiZVxuICAgICAqIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8uXG4gICAgICovXG4gICAgZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbkNvbnRhaW5lclJlZiB8fCB0aGlzLmVsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgLyoqIERldGVybWluZXMgd2hldGhlciBhIGNsYXNzIGZyb20gdGhlIE5nQ29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkIHRvIHRoZSBob3N0IGVsZW1lbnQuICovXG4gICAgc2hvdWxkRm9yd2FyZChwcm9wOiBrZXlvZiBOZ0NvbnRyb2wpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgbmdDb250cm9sID0gdGhpcy5jb250cm9sPy5uZ0NvbnRyb2w7XG5cbiAgICAgICAgcmV0dXJuIG5nQ29udHJvbCAmJiBuZ0NvbnRyb2xbcHJvcF07XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuJHVuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy4kdW5zdWJzY3JpYmUuY29tcGxldGUoKTtcblxuICAgICAgICB0aGlzLnN0b3BGb2N1c01vbml0b3IoKTtcbiAgICB9XG5cbiAgICBydW5Gb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpO1xuICAgIH1cblxuICAgIHN0b3BGb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKiogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBmb3JtIGZpZWxkJ3MgY29udHJvbCBpcyBtaXNzaW5nLiAqL1xuICAgIHByb3RlY3RlZCB2YWxpZGF0ZUNvbnRyb2xDaGlsZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRocm93IGdldE1jRm9ybUZpZWxkTWlzc2luZ0NvbnRyb2xFcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ21jLWZvcm0tZmllbGRbbWNGb3JtRmllbGRXaXRob3V0Qm9yZGVyc10nLFxuICAgIGV4cG9ydEFzOiAnbWNGb3JtRmllbGRXaXRob3V0Qm9yZGVycycsXG4gICAgaG9zdDogeyBjbGFzczogJ21jLWZvcm0tZmllbGRfd2l0aG91dC1ib3JkZXJzJyB9XG59KVxuZXhwb3J0IGNsYXNzIE1jRm9ybUZpZWxkV2l0aG91dEJvcmRlcnMge31cblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1ttY0lucHV0XSwgW21jVGV4dGFyZWFdJyxcbiAgICBleHBvcnRBczogJ01jVHJpbScsXG4gICAgaG9zdDogeyBjbGFzczogJ21jLXRyaW0nIH1cbn0pXG5leHBvcnQgY2xhc3MgTWNUcmltIHtcbiAgICBwcml2YXRlIG9yaWdpbmFsOiAoZm46IGFueSkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAQXR0cmlidXRlKCduby10cmltJykgcHJpdmF0ZSByZWFkb25seSBub1RyaW06IGJvb2xlYW4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICAgICkge1xuICAgICAgICB0aGlzLm5vVHJpbSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShub1RyaW0pO1xuXG4gICAgICAgIGlmICh0aGlzLm5vVHJpbSB8fCAhdGhpcy5uZ0NvbnRyb2w/LnZhbHVlQWNjZXNzb3IpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5vcmlnaW5hbCA9IHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPbkNoYW5nZTtcblxuICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25DaGFuZ2UgPSB0aGlzLnJlZ2lzdGVyT25DaGFuZ2U7XG4gICAgfVxuXG4gICAgdHJpbSh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5ub1RyaW0pIHsgcmV0dXJuIHZhbHVlOyB9XG5cbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyT25DaGFuZ2UgPSAoZm4pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZ2luYWwuY2FsbCh0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yLCAodmFsdWUpID0+IGZuKHRoaXMudHJpbSh2YWx1ZSkpKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWMtZm9ybS1maWVsZF9fY29udGFpbmVyXCIgKGNsaWNrKT1cIm9uQ29udGFpbmVyQ2xpY2soJGV2ZW50KVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cIm1jLWZvcm0tZmllbGRfX3ByZWZpeFwiICpuZ0lmPVwiaGFzUHJlZml4XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttY1ByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWMtZm9ybS1maWVsZF9faW5maXhcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm1jLWZvcm0tZmllbGRfX3N1ZmZpeFwiICpuZ0lmPVwiaGFzU3VmZml4XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttY1N1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWMtZm9ybS1maWVsZF9fY2xlYW5lclwiXG4gICAgICAgICAqbmdJZj1cImNhblNob3dDbGVhbmVyICYmICFoYXNTdWZmaXhcIlxuICAgICAgICAgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYy1jbGVhbmVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWMtcGFzc3dvcmQtdG9nZ2xlXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCJjYW5TaG93U3RlcHBlclwiIHNlbGVjdD1cIm1jLXN0ZXBwZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1jLWZvcm0tZmllbGRfX2hpbnRcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYy1oaW50LCBtYy1wYXNzd29yZC1oaW50XCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9tb3NhaWMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFJSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLGNBQWMsRUFFZCxRQUFRLEVBQ1IsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQ0gsaUNBQWlDLEVBQ2pDLG1EQUFtRCxFQUN0RCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFR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Q0FBQztRQUU5RCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFLO1FBQ04sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUVsQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUQsQ0FBQzs7c0hBcEJRLE1BQU0sa0JBSUEsU0FBUzswR0FKZixNQUFNOzJGQUFOLE1BQU07a0JBTGxCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7aUJBQzdCOzswQkFLUSxTQUFTOzJCQUFDLFNBQVM7OzBCQUNuQixRQUFROzswQkFBSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFU0NBUEUsIEY4IH0gZnJvbSAnQHB0c2VjdXJpdHkvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IENhbkNvbG9yLCBDYW5Db2xvckN0b3IsIG1peGluQ29sb3IgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNY0NsZWFuZXIgfSBmcm9tICcuL2NsZWFuZXInO1xuaW1wb3J0IHsgTWNGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuaW1wb3J0IHtcbiAgICBnZXRNY0Zvcm1GaWVsZE1pc3NpbmdDb250cm9sRXJyb3IsXG4gICAgZ2V0TWNGb3JtRmllbGRZb3VDYW5Ob3RVc2VDbGVhbmVySW5OdW1iZXJJbnB1dEVycm9yXG59IGZyb20gJy4vZm9ybS1maWVsZC1lcnJvcnMnO1xuaW1wb3J0IHsgTWNIaW50IH0gZnJvbSAnLi9oaW50JztcbmltcG9ydCB7IE1jUGFzc3dvcmRIaW50IH0gZnJvbSAnLi9wYXNzd29yZC1oaW50JztcbmltcG9ydCB7IE1jUHJlZml4IH0gZnJvbSAnLi9wcmVmaXgnO1xuaW1wb3J0IHsgTWNTdGVwcGVyIH0gZnJvbSAnLi9zdGVwcGVyJztcbmltcG9ydCB7IE1jU3VmZml4IH0gZnJvbSAnLi9zdWZmaXgnO1xuXG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGluamVjdCBhbiBpbnN0YW5jZXMgb2YgYE1hdEZvcm1GaWVsZGAuIEl0IHNlcnZlc1xuICogYXMgYWx0ZXJuYXRpdmUgdG9rZW4gdG8gdGhlIGFjdHVhbCBgTWF0Rm9ybUZpZWxkYCBjbGFzcyB3aGljaCB3b3VsZCBjYXVzZSB1bm5lY2Vzc2FyeVxuICogcmV0ZW50aW9uIG9mIHRoZSBgTWF0Rm9ybUZpZWxkYCBjbGFzcyBhbmQgaXRzIGNvbXBvbmVudCBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1DX0ZPUk1fRklFTEQgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWNGb3JtRmllbGQ+KCdNY0Zvcm1GaWVsZCcpO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNsYXNzIE1jRm9ybUZpZWxkQmFzZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgTWNGb3JtRmllbGRNaXhpbkJhc2U6IENhbkNvbG9yQ3RvciAmIHR5cGVvZiBNY0Zvcm1GaWVsZEJhc2UgPSBtaXhpbkNvbG9yKE1jRm9ybUZpZWxkQmFzZSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWMtZm9ybS1maWVsZCcsXG4gICAgZXhwb3J0QXM6ICdtY0Zvcm1GaWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICdmb3JtLWZpZWxkLmh0bWwnLFxuICAgIC8vIE1jSW5wdXQgaXMgYSBkaXJlY3RpdmUgYW5kIGNhbid0IGhhdmUgc3R5bGVzLCBzbyB3ZSBuZWVkIHRvIGluY2x1ZGUgaXRzIHN0eWxlcyBoZXJlLlxuICAgIC8vIFRoZSBNY0lucHV0IHN0eWxlcyBhcmUgZmFpcmx5IG1pbmltYWwgc28gaXQgc2hvdWxkbid0IGJlIGEgYmlnIGRlYWwgZm9yIHBlb3BsZSB3aG9cbiAgICAvLyBhcmVuJ3QgdXNpbmcgTWNJbnB1dC5cbiAgICBzdHlsZVVybHM6IFtcbiAgICAgICAgJ2Zvcm0tZmllbGQuc2NzcycsXG4gICAgICAgICcuLi9pbnB1dC9pbnB1dC5zY3NzJyxcbiAgICAgICAgJy4uL3RpbWVwaWNrZXIvdGltZXBpY2tlci5zY3NzJyxcbiAgICAgICAgJy4uL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci1pbnB1dC5zY3NzJyxcbiAgICAgICAgJy4uL3RleHRhcmVhL3RleHRhcmVhLnNjc3MnXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWMtZm9ybS1maWVsZCcsXG4gICAgICAgICdbY2xhc3MubWMtZm9ybS1maWVsZF9pbnZhbGlkXSc6ICdjb250cm9sLmVycm9yU3RhdGUnLFxuICAgICAgICAnW2NsYXNzLm1jLWZvcm0tZmllbGRfaGFzLXByZWZpeF0nOiAnaGFzUHJlZml4JyxcbiAgICAgICAgJ1tjbGFzcy5tYy1mb3JtLWZpZWxkX2hhcy1zdWZmaXhdJzogJ2hhc1N1ZmZpeCcsXG4gICAgICAgICdbY2xhc3MubWMtZm9ybS1maWVsZF9oYXMtY2xlYW5lcl0nOiAnY2FuU2hvd0NsZWFuZXInLFxuICAgICAgICAnW2NsYXNzLm1jLWZvcm0tZmllbGRfaGFzLXN0ZXBwZXJdJzogJ2NhblNob3dTdGVwcGVyJyxcblxuICAgICAgICAnW2NsYXNzLm1jLWRpc2FibGVkXSc6ICdjb250cm9sLmRpc2FibGVkJyxcblxuICAgICAgICAnW2NsYXNzLm5nLXVudG91Y2hlZF0nOiAnc2hvdWxkRm9yd2FyZChcInVudG91Y2hlZFwiKScsXG4gICAgICAgICdbY2xhc3MubmctdG91Y2hlZF0nOiAnc2hvdWxkRm9yd2FyZChcInRvdWNoZWRcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLXByaXN0aW5lXSc6ICdzaG91bGRGb3J3YXJkKFwicHJpc3RpbmVcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLWRpcnR5XSc6ICdzaG91bGRGb3J3YXJkKFwiZGlydHlcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLXZhbGlkXSc6ICdzaG91bGRGb3J3YXJkKFwidmFsaWRcIiknLFxuICAgICAgICAnW2NsYXNzLm5nLWludmFsaWRdJzogJ3Nob3VsZEZvcndhcmQoXCJpbnZhbGlkXCIpJyxcbiAgICAgICAgJ1tjbGFzcy5uZy1wZW5kaW5nXSc6ICdzaG91bGRGb3J3YXJkKFwicGVuZGluZ1wiKScsXG5cbiAgICAgICAgJyhrZXlkb3duKSc6ICdvbktleURvd24oJGV2ZW50KScsXG4gICAgICAgICcobW91c2VlbnRlciknOiAnb25Ib3ZlckNoYW5nZWQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ29uSG92ZXJDaGFuZ2VkKGZhbHNlKSdcbiAgICB9LFxuICAgIGlucHV0czogWydjb2xvciddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNQ19GT1JNX0ZJRUxELCB1c2VFeGlzdGluZzogTWNGb3JtRmllbGQgfV1cbn0pXG5leHBvcnQgY2xhc3MgTWNGb3JtRmllbGQgZXh0ZW5kcyBNY0Zvcm1GaWVsZE1peGluQmFzZSBpbXBsZW1lbnRzXG4gICAgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgQ2FuQ29sb3IsIE9uRGVzdHJveSB7XG5cbiAgICBAQ29udGVudENoaWxkKE1jRm9ybUZpZWxkQ29udHJvbCwgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRyb2w6IE1jRm9ybUZpZWxkQ29udHJvbDxhbnk+O1xuICAgIEBDb250ZW50Q2hpbGQoTWNTdGVwcGVyLCB7IHN0YXRpYzogZmFsc2UgfSkgc3RlcHBlcjogTWNTdGVwcGVyO1xuICAgIEBDb250ZW50Q2hpbGQoTWNDbGVhbmVyLCB7IHN0YXRpYzogZmFsc2UgfSkgY2xlYW5lcjogTWNDbGVhbmVyIHwgbnVsbDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oTWNIaW50KSBoaW50OiBRdWVyeUxpc3Q8TWNIaW50PjtcbiAgICBAQ29udGVudENoaWxkcmVuKE1jUGFzc3dvcmRIaW50KSBwYXNzd29yZEhpbnRzOiBRdWVyeUxpc3Q8TWNQYXNzd29yZEhpbnQ+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTWNTdWZmaXgpIHN1ZmZpeDogUXVlcnlMaXN0PE1jU3VmZml4PjtcbiAgICBAQ29udGVudENoaWxkcmVuKE1jUHJlZml4KSBwcmVmaXg6IFF1ZXJ5TGlzdDxNY1ByZWZpeD47XG5cbiAgICBAVmlld0NoaWxkKCdjb25uZWN0aW9uQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgY29ubmVjdGlvbkNvbnRhaW5lclJlZjogRWxlbWVudFJlZjtcblxuICAgIC8vIFVuaXF1ZSBpZCBmb3IgdGhlIGludGVybmFsIGZvcm0gZmllbGQgbGFiZWwuXG4gICAgbGFiZWxJZCA9IGBtYy1mb3JtLWZpZWxkLWxhYmVsLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIGhvdmVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNhbkNsZWFuZXJDbGVhckJ5RXNjOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgJHVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBoYXNIaW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oaW50Py5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldCBoYXNQYXNzd29yZFN0cmVuZ3RoRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhc3N3b3JkSGludHM/LnNvbWUoKGhpbnQpID0+IGhpbnQuaGFzRXJyb3IpO1xuICAgIH1cblxuICAgIGdldCBoYXNTdWZmaXgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1ZmZpeD8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBnZXQgaGFzUHJlZml4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVmaXg/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NsZWFuZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY2xlYW5lcjtcbiAgICB9XG5cbiAgICBnZXQgaGFzU3RlcHBlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zdGVwcGVyO1xuICAgIH1cblxuICAgIGdldCBjYW5TaG93Q2xlYW5lcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2xlYW5lciAmJlxuICAgICAgICB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbFxuICAgICAgICAgICAgPyB0aGlzLmNvbnRyb2wubmdDb250cm9sLnZhbHVlICYmICF0aGlzLmNvbnRyb2wuZGlzYWJsZWRcbiAgICAgICAgICAgIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sPy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgY2FuU2hvd1N0ZXBwZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1N0ZXBwZXIgJiZcbiAgICAgICAgICAgICF0aGlzLmRpc2FibGVkICYmXG4gICAgICAgICAgICAodGhpcy5jb250cm9sPy5mb2N1c2VkIHx8IHRoaXMuaG92ZXJlZCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvclxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmICgodGhpcy5jb250cm9sIGFzIGFueSkubnVtYmVySW5wdXQgJiYgdGhpcy5oYXNDbGVhbmVyKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFuZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhyb3cgZ2V0TWNGb3JtRmllbGRZb3VDYW5Ob3RVc2VDbGVhbmVySW5OdW1iZXJJbnB1dEVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbGlkYXRlQ29udHJvbENoaWxkKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbWMtZm9ybS1maWVsZC10eXBlLSR7dGhpcy5jb250cm9sLmNvbnRyb2xUeXBlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gdGhlIGNoaWxkIGNvbnRyb2wgc3RhdGUgaW4gb3JkZXIgdG8gdXBkYXRlIHRoZSBmb3JtIGZpZWxkIFVJLlxuICAgICAgICB0aGlzLmNvbnRyb2wuc3RhdGVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YXRlPy5mb2N1c2VkICYmIHRoaXMuaGFzUGFzc3dvcmRTdHJlbmd0aEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldEVycm9ycyh7IHBhc3N3b3JkU3RyZW5ndGg6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc1N0ZXBwZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcHBlci5jb25uZWN0VG8oKHRoaXMuY29udHJvbCBhcyBhbnkpLm51bWJlcklucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGlmIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZXMgPSB0aGlzLmNvbnRyb2wubmdDb250cm9sPy52YWx1ZUNoYW5nZXMgfHwgRU1QVFk7XG5cbiAgICAgICAgbWVyZ2UodmFsdWVDaGFuZ2VzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuJHVuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQ29udHJvbENoaWxkKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgLnRoZW4odGhpcy5ydW5Gb2N1c01vbml0b3IpO1xuICAgICAgICAvLyBBdm9pZCBhbmltYXRpb25zIG9uIGxvYWQuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGNsZWFyVmFsdWUoJGV2ZW50KSB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbD8ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5jb250cm9sPy5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uQ29udGFpbmVyQ2xpY2soJGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wub25Db250YWluZXJDbGljaykge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLm9uQ29udGFpbmVyQ2xpY2soJGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGVwcmVjYXRpb25cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sVHlwZSA9PT0gJ2lucHV0LXBhc3N3b3JkJyAmJiBldmVudC5hbHRLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gRjgpIHtcbiAgICAgICAgICAgICh0aGlzLmNvbnRyb2wgYXMgdW5rbm93biBhcyB7IHRvZ2dsZVR5cGUoKTogdm9pZCB9KS50b2dnbGVUeXBlKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRlcHJlY2F0aW9uXG4gICAgICAgIGlmICh0aGlzLmNhbkNsZWFuZXJDbGVhckJ5RXNjICYmIGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSAmJiB0aGlzLmNvbnRyb2wuZm9jdXNlZCAmJiB0aGlzLmhhc0NsZWFuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubmdDb250cm9sPy5yZXNldCgpO1xuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ib3ZlckNoYW5nZWQoaXNIb3ZlcmVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0hvdmVyZWQgIT09IHRoaXMuaG92ZXJlZCkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlcmVkID0gaXNIb3ZlcmVkO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYW4gRWxlbWVudFJlZiBmb3IgdGhlIGVsZW1lbnQgdGhhdCBhIG92ZXJsYXkgYXR0YWNoZWQgdG8gdGhlIGZvcm0tZmllbGQgc2hvdWxkIGJlXG4gICAgICogcG9zaXRpb25lZCByZWxhdGl2ZSB0by5cbiAgICAgKi9cbiAgICBnZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uQ29udGFpbmVyUmVmIHx8IHRoaXMuZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgY2xhc3MgZnJvbSB0aGUgTmdDb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQgdG8gdGhlIGhvc3QgZWxlbWVudC4gKi9cbiAgICBzaG91bGRGb3J3YXJkKHByb3A6IGtleW9mIE5nQ29udHJvbCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBuZ0NvbnRyb2wgPSB0aGlzLmNvbnRyb2w/Lm5nQ29udHJvbDtcblxuICAgICAgICByZXR1cm4gbmdDb250cm9sICYmIG5nQ29udHJvbFtwcm9wXTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy4kdW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLiR1bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgICAgIHRoaXMuc3RvcEZvY3VzTW9uaXRvcigpO1xuICAgIH1cblxuICAgIHJ1bkZvY3VzTW9uaXRvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgc3RvcEZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIGZvcm0gZmllbGQncyBjb250cm9sIGlzIG1pc3NpbmcuICovXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlQ29udHJvbENoaWxkKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhyb3cgZ2V0TWNGb3JtRmllbGRNaXNzaW5nQ29udHJvbEVycm9yKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnbWMtZm9ybS1maWVsZFttY0Zvcm1GaWVsZFdpdGhvdXRCb3JkZXJzXScsXG4gICAgZXhwb3J0QXM6ICdtY0Zvcm1GaWVsZFdpdGhvdXRCb3JkZXJzJyxcbiAgICBob3N0OiB7IGNsYXNzOiAnbWMtZm9ybS1maWVsZF93aXRob3V0LWJvcmRlcnMnIH1cbn0pXG5leHBvcnQgY2xhc3MgTWNGb3JtRmllbGRXaXRob3V0Qm9yZGVycyB7fVxuXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW21jSW5wdXRdLCBbbWNUZXh0YXJlYV0nLFxuICAgIGV4cG9ydEFzOiAnTWNUcmltJyxcbiAgICBob3N0OiB7IGNsYXNzOiAnbWMtdHJpbScgfVxufSlcbmV4cG9ydCBjbGFzcyBNY1RyaW0ge1xuICAgIHByaXZhdGUgb3JpZ2luYWw6IChmbjogYW55KSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBBdHRyaWJ1dGUoJ25vLXRyaW0nKSBwcml2YXRlIHJlYWRvbmx5IG5vVHJpbTogYm9vbGVhbixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sXG4gICAgKSB7XG4gICAgICAgIHRoaXMubm9UcmltID0gY29lcmNlQm9vbGVhblByb3BlcnR5KG5vVHJpbSk7XG5cbiAgICAgICAgaWYgKHRoaXMubm9UcmltIHx8ICF0aGlzLm5nQ29udHJvbD8udmFsdWVBY2Nlc3NvcikgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLm9yaWdpbmFsID0gdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3Nvci5yZWdpc3Rlck9uQ2hhbmdlO1xuXG4gICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IucmVnaXN0ZXJPbkNoYW5nZSA9IHRoaXMucmVnaXN0ZXJPbkNoYW5nZTtcbiAgICB9XG5cbiAgICB0cmltKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLm5vVHJpbSkgeyByZXR1cm4gdmFsdWU7IH1cblxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnRyaW0oKSA6IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJPbkNoYW5nZSA9IChmbikgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmlnaW5hbC5jYWxsKHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IsICh2YWx1ZSkgPT4gZm4odGhpcy50cmltKHZhbHVlKSkpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYy1mb3JtLWZpZWxkX19jb250YWluZXJcIiAoY2xpY2spPVwib25Db250YWluZXJDbGljaygkZXZlbnQpXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWMtZm9ybS1maWVsZF9fcHJlZml4XCIgKm5nSWY9XCJoYXNQcmVmaXhcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21jUHJlZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYy1mb3JtLWZpZWxkX19pbmZpeFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWMtZm9ybS1maWVsZF9fc3VmZml4XCIgKm5nSWY9XCJoYXNTdWZmaXhcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21jU3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtYy1mb3JtLWZpZWxkX19jbGVhbmVyXCJcbiAgICAgICAgICpuZ0lmPVwiY2FuU2hvd0NsZWFuZXIgJiYgIWhhc1N1ZmZpeFwiXG4gICAgICAgICAoY2xpY2spPVwiY2xlYXJWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1jLWNsZWFuZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYy1wYXNzd29yZC10b2dnbGVcIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGVudCAqbmdJZj1cImNhblNob3dTdGVwcGVyXCIgc2VsZWN0PVwibWMtc3RlcHBlclwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWMtZm9ybS1maWVsZF9faGludFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1jLWhpbnQsIG1jLXBhc3N3b3JkLWhpbnRcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|