@datagrok/bio 0.0.4 → 0.0.8
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/.eslintignore +2 -0
- package/.eslintrc.json +51 -0
- package/dist/package.js +861 -8
- package/package.json +41 -29
- package/src/package.ts +18 -7
- package/webpack.config.js +14 -6
package/dist/package.js
CHANGED
|
@@ -1,8 +1,830 @@
|
|
|
1
|
-
var
|
|
1
|
+
var bio;
|
|
2
2
|
/******/ (() => { // webpackBootstrap
|
|
3
3
|
/******/ "use strict";
|
|
4
4
|
/******/ var __webpack_modules__ = ({
|
|
5
5
|
|
|
6
|
+
/***/ "./node_modules/@datagrok-libraries/bio/src/aminoacids.js":
|
|
7
|
+
/*!****************************************************************!*\
|
|
8
|
+
!*** ./node_modules/@datagrok-libraries/bio/src/aminoacids.js ***!
|
|
9
|
+
\****************************************************************/
|
|
10
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
11
|
+
|
|
12
|
+
__webpack_require__.r(__webpack_exports__);
|
|
13
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
14
|
+
/* harmony export */ "Aminoacids": () => (/* binding */ Aminoacids),
|
|
15
|
+
/* harmony export */ "AminoacidsPalettes": () => (/* binding */ AminoacidsPalettes)
|
|
16
|
+
/* harmony export */ });
|
|
17
|
+
/* harmony import */ var _seq_palettes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./seq-palettes */ "./node_modules/@datagrok-libraries/bio/src/seq-palettes.js");
|
|
18
|
+
|
|
19
|
+
class AminoacidsPalettes extends _seq_palettes__WEBPACK_IMPORTED_MODULE_0__.SeqPaletteBase {
|
|
20
|
+
static get Lesk() {
|
|
21
|
+
if (this.lesk === void 0) {
|
|
22
|
+
this.lesk = this.makePalette([
|
|
23
|
+
[['G', 'A', 'S', 'T'], 'orange'],
|
|
24
|
+
[['C', 'V', 'I', 'L', 'P', 'F', 'Y', 'M', 'W'], 'all_green'],
|
|
25
|
+
[['N', 'Q', 'H'], 'magenta'],
|
|
26
|
+
[['D', 'E'], 'red'],
|
|
27
|
+
[['K', 'R'], 'all_blue'],
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
return this.lesk;
|
|
31
|
+
}
|
|
32
|
+
static get GrokGroups() {
|
|
33
|
+
if (this.grokGroups === void 0) {
|
|
34
|
+
this.grokGroups = this.makePalette([
|
|
35
|
+
[['C', 'U'], 'yellow'],
|
|
36
|
+
[['G', 'P'], 'red'],
|
|
37
|
+
[['A', 'V', 'I', 'L', 'M', 'F', 'Y', 'W'], 'all_green'],
|
|
38
|
+
[['R', 'H', 'K'], 'light_blue'],
|
|
39
|
+
[['D', 'E'], 'dark_blue'],
|
|
40
|
+
[['S', 'T', 'N', 'Q'], 'orange'],
|
|
41
|
+
]);
|
|
42
|
+
}
|
|
43
|
+
return this.grokGroups;
|
|
44
|
+
}
|
|
45
|
+
static get RasMol() {
|
|
46
|
+
if (this.rasMol === void 0) {
|
|
47
|
+
this.rasMol = {
|
|
48
|
+
// http://acces.ens-lyon.fr/biotic/rastop/help/colour.htm
|
|
49
|
+
'D': '#E60A0A',
|
|
50
|
+
'E': '#E60A0A',
|
|
51
|
+
'C': '#E6E600',
|
|
52
|
+
'M': '#E6E600',
|
|
53
|
+
'K': '#145AFF',
|
|
54
|
+
'R': '#145AFF',
|
|
55
|
+
'S': '#FA9600',
|
|
56
|
+
'T': '#FA9600',
|
|
57
|
+
'F': '#3232AA',
|
|
58
|
+
'Y': '#3232AA',
|
|
59
|
+
'N': '#00DCDC',
|
|
60
|
+
'Q': '#00DCDC',
|
|
61
|
+
'G': '#EBEBEB',
|
|
62
|
+
'L': '#0F820F',
|
|
63
|
+
'V': '#0F820F',
|
|
64
|
+
'I': '#0F820F',
|
|
65
|
+
'A': '#C8C8C8',
|
|
66
|
+
'W': '#B45AB4',
|
|
67
|
+
'H': '#8282D2',
|
|
68
|
+
'P': '#DC9682',
|
|
69
|
+
'others': '#BEA06E',
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return this.rasMol;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
class Aminoacids {
|
|
76
|
+
static getPalette(scheme = 'grok') {
|
|
77
|
+
switch (scheme) {
|
|
78
|
+
case 'grok':
|
|
79
|
+
return AminoacidsPalettes.GrokGroups;
|
|
80
|
+
case 'lesk':
|
|
81
|
+
return AminoacidsPalettes.Lesk;
|
|
82
|
+
default:
|
|
83
|
+
throw new Error(`ChemPalette: scheme \`${scheme}\` does not exist`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns divided amino acid with its content in the bracket, if the content is number, then its omitted
|
|
88
|
+
*
|
|
89
|
+
* @param {string} c raw amino
|
|
90
|
+
* @return {[string, string]} outer and inner content
|
|
91
|
+
*/
|
|
92
|
+
static getInnerOuter(c) {
|
|
93
|
+
let isInner = 0;
|
|
94
|
+
let inner = '';
|
|
95
|
+
let outer = '';
|
|
96
|
+
for (const char of c) {
|
|
97
|
+
if (char == '(')
|
|
98
|
+
isInner++;
|
|
99
|
+
else if (char == ')')
|
|
100
|
+
isInner--;
|
|
101
|
+
else if (isInner)
|
|
102
|
+
inner += char;
|
|
103
|
+
else
|
|
104
|
+
outer += char;
|
|
105
|
+
}
|
|
106
|
+
return !isNaN(parseInt(inner)) ? [outer, ''] : [outer, inner];
|
|
107
|
+
}
|
|
108
|
+
static getColorAAPivot(monomer = '', scheme = 'grok') {
|
|
109
|
+
var _a, _b, _c;
|
|
110
|
+
//const chemPaletteInstance = AAPalettes.GrokGroups();
|
|
111
|
+
const chemPaletteInstance = this.getPalette(scheme);
|
|
112
|
+
let [outerMonomer, innerMonomer] = this.getInnerOuter(monomer);
|
|
113
|
+
outerMonomer = (outerMonomer.length > 6 ? `${outerMonomer.slice(0, 3)}...` : outerMonomer);
|
|
114
|
+
innerMonomer = (innerMonomer.length > 6 ? `${innerMonomer.slice(0, 3)}...` : innerMonomer);
|
|
115
|
+
if (monomer.length == 1 || monomer[1] == '(') {
|
|
116
|
+
const amino = (_a = monomer[0]) === null || _a === void 0 ? void 0 : _a.toUpperCase();
|
|
117
|
+
return amino in chemPaletteInstance ?
|
|
118
|
+
[chemPaletteInstance[amino], amino, innerMonomer, 1] :
|
|
119
|
+
[this.undefinedColor, outerMonomer, innerMonomer, 1];
|
|
120
|
+
}
|
|
121
|
+
if (monomer[0] == 'd' && monomer[1] in chemPaletteInstance) {
|
|
122
|
+
if (monomer.length == 2 || monomer[2] == '(') {
|
|
123
|
+
const amino = (_b = monomer[1]) === null || _b === void 0 ? void 0 : _b.toUpperCase();
|
|
124
|
+
return amino in chemPaletteInstance ?
|
|
125
|
+
[chemPaletteInstance[amino], amino, innerMonomer, 2] :
|
|
126
|
+
[this.undefinedColor, outerMonomer, innerMonomer, 2];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (monomer.substring(0, 3) in this.AAFullNames) {
|
|
130
|
+
if (monomer.length == 3 || monomer[3] == '(') {
|
|
131
|
+
const amino = this.AAFullNames[monomer.substring(0, 3)];
|
|
132
|
+
return amino in chemPaletteInstance ?
|
|
133
|
+
[chemPaletteInstance[amino], amino, innerMonomer, 3] :
|
|
134
|
+
[this.undefinedColor, outerMonomer, innerMonomer, 3];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (((_c = monomer[0]) === null || _c === void 0 ? void 0 : _c.toLowerCase()) == monomer[0]) {
|
|
138
|
+
if (monomer.substring(1, 3) in this.AAFullNames) {
|
|
139
|
+
if (monomer.length == 4 || monomer[4] == '(') {
|
|
140
|
+
const amino = this.AAFullNames[monomer.substring(1, 3)];
|
|
141
|
+
return amino in chemPaletteInstance ?
|
|
142
|
+
[chemPaletteInstance[amino], amino, innerMonomer, 4] :
|
|
143
|
+
[this.undefinedColor, outerMonomer, innerMonomer, 4];
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return [this.undefinedColor, outerMonomer, innerMonomer, 0];
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
Aminoacids.SemType = 'Aminoacids';
|
|
151
|
+
Aminoacids.SemTypeMultipleAlignment = 'AminoacidsMultipleAlignment';
|
|
152
|
+
Aminoacids.undefinedColor = 'rgb(100,100,100)';
|
|
153
|
+
Aminoacids.Names = {
|
|
154
|
+
'G': 'Glycine',
|
|
155
|
+
'L': 'Leucine',
|
|
156
|
+
'Y': 'Tyrosine',
|
|
157
|
+
'S': 'Serine',
|
|
158
|
+
'E': 'Glutamic acid',
|
|
159
|
+
'Q': 'Glutamine',
|
|
160
|
+
'D': 'Aspartic acid',
|
|
161
|
+
'N': 'Asparagine',
|
|
162
|
+
'F': 'Phenylalanine',
|
|
163
|
+
'A': 'Alanine',
|
|
164
|
+
'K': 'Lysine',
|
|
165
|
+
'R': 'Arginine',
|
|
166
|
+
'H': 'Histidine',
|
|
167
|
+
'C': 'Cysteine',
|
|
168
|
+
'V': 'Valine',
|
|
169
|
+
'P': 'Proline',
|
|
170
|
+
'W': 'Tryptophan',
|
|
171
|
+
'I': 'Isoleucine',
|
|
172
|
+
'M': 'Methionine',
|
|
173
|
+
'T': 'Threonine',
|
|
174
|
+
};
|
|
175
|
+
Aminoacids.AASmiles = {
|
|
176
|
+
'G': 'NCC(=O)O',
|
|
177
|
+
'L': 'N[C@H](CC(C)C)C(=O)O',
|
|
178
|
+
'Y': 'NC(CC1=CC=C(O)C=C1)C(=O)O',
|
|
179
|
+
'S': 'NC(CO)C(=O)O',
|
|
180
|
+
'E': 'N[C@@H](CCC(O)=O)C(=O)O',
|
|
181
|
+
'Q': 'N[C@@H](CCC(N)=O)C(=O)O',
|
|
182
|
+
'D': 'N[C@@H](CC(O)=O)C(=O)O',
|
|
183
|
+
'N': 'N[C@@H](CC(N)=O)C(=O)O',
|
|
184
|
+
'F': 'NC(CC1=CC=CC=C1)C(=O)O',
|
|
185
|
+
'A': 'N[C@H](C)C(=O)O',
|
|
186
|
+
'K': 'NC(CCCCN)C(=O)O',
|
|
187
|
+
'R': 'N[C@H](CCCNC(=N)C)C(=O)O',
|
|
188
|
+
'H': 'NC(CC1=CN=C[N]1)C(=O)O',
|
|
189
|
+
'C': 'N[C@@H](CS)C(=O)O',
|
|
190
|
+
'V': 'NC(C(C)C)C(=O)O',
|
|
191
|
+
'P': 'N(CCC1)C1C(=O)O',
|
|
192
|
+
'W': 'N[C@@H](Cc1c2ccccc2n([H])c1)C(=O)O',
|
|
193
|
+
'I': 'N[C@H]([C@H](C)CC)C(=O)O',
|
|
194
|
+
'M': 'NC(CCSC)C(=O)O',
|
|
195
|
+
'T': 'NC(C(O)C)C(=O)O',
|
|
196
|
+
};
|
|
197
|
+
Aminoacids.AASmilesTruncated = {
|
|
198
|
+
'G': '*C*',
|
|
199
|
+
'L': 'CC(C)C[C@H](*)*',
|
|
200
|
+
'Y': 'C1=CC(=CC=C1CC(*)*)O',
|
|
201
|
+
'S': 'OCC(*)C*',
|
|
202
|
+
'E': '*[C@@H](CCC(O)=O)*',
|
|
203
|
+
'Q': '*N[C@@H](CCC(N)=O)*',
|
|
204
|
+
'D': '*[C@@H](CC(O)=O)*',
|
|
205
|
+
'N': '*[C@@H](CC(N)=O)*',
|
|
206
|
+
'F': 'C1=CC=C(C=C1)CC(*)*',
|
|
207
|
+
'A': 'C[C@H](*)*',
|
|
208
|
+
'K': 'C(CCN)CC(*)*',
|
|
209
|
+
'R': '*[C@H](CCCNC(=N)C)*',
|
|
210
|
+
'H': 'C1=C(NC=N1)CC(*)*',
|
|
211
|
+
'C': 'C([C@@H](*)*)S',
|
|
212
|
+
'V': 'CC(C)C(*)*',
|
|
213
|
+
'P': 'C1CCN(*)C1*',
|
|
214
|
+
'W': '*[C@@H](Cc1c2ccccc2n([H])c1)*',
|
|
215
|
+
'I': 'CC[C@H](C)[C@H](*)*',
|
|
216
|
+
'M': 'CSCCC(*)*',
|
|
217
|
+
'T': 'CC(O)C(*)*',
|
|
218
|
+
};
|
|
219
|
+
/** TODO: Full?
|
|
220
|
+
*/
|
|
221
|
+
Aminoacids.AAFullNames = {
|
|
222
|
+
'Ala': 'A',
|
|
223
|
+
'Arg': 'R',
|
|
224
|
+
'Asn': 'N',
|
|
225
|
+
'Asp': 'D',
|
|
226
|
+
'Cys': 'C',
|
|
227
|
+
'Gln': 'Q',
|
|
228
|
+
'Glu': 'E',
|
|
229
|
+
'Gly': 'G',
|
|
230
|
+
'His': 'H',
|
|
231
|
+
'Ile': 'I',
|
|
232
|
+
'Leu': 'L',
|
|
233
|
+
'Lys': 'K',
|
|
234
|
+
'Met': 'M',
|
|
235
|
+
'Phe': 'F',
|
|
236
|
+
'Pro': 'P',
|
|
237
|
+
'Ser': 'S',
|
|
238
|
+
'Thr': 'T',
|
|
239
|
+
'Trp': 'W',
|
|
240
|
+
'Tyr': 'Y',
|
|
241
|
+
'Val': 'V',
|
|
242
|
+
};
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pbm9hY2lkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFtaW5vYWNpZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFhLGNBQWMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBRzdDLE1BQU0sS0FBSyxJQUFJO1FBQ3BCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQztnQkFDNUQsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDO2dCQUM1QixDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUM7YUFDekIsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUlNLE1BQU0sS0FBSyxVQUFVO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDO2dCQUN0QixDQUFDLENBQUMsR0FBRyxF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QUFFLGFBQWE7SUFDbEIsR0FBRyxFQUFFLCtCQUErQjtJQUNwQyxHQUFHLEVBQUUscUJBQXFCO0lBQzFCLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLEdBQUcsRUFBRSxZQUFZO0NBQ2xCLENBQUM7QUFFRjtHQUNHO0FBQ1csc0JBQVcsR0FBcUI7SUFDNUMsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUUsR0FBRztDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuXG5pbXBvcnQge1N0cmluZ0RpY3Rpb25hcnl9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zJztcbmltcG9ydCB7U2VxUGFsZXR0ZSwgU2VxUGFsZXR0ZUJhc2V9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcblxuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHNQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgbGVzazogU2VxUGFsZXR0ZTtcblxuICBwdWJsaWMgc3RhdGljIGdldCBMZXNrKCk6IFNlcVBhbGV0dGUge1xuICAgIGlmICh0aGlzLmxlc2sgPT09IHZvaWQgMCkge1xuICAgICAgdGhpcy5sZXNrID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgIFtbJ0cnLCAnQScsICdTJywgJ1QnXSwgJ29yYW5nZSddLFxuICAgICAgICBbWydDJywgJ1YnLCAnSScsICdMJywgJ1AnLCAnRicsICdZJywgJ00nLCAnVyddLCAnYWxsX2dyZWVuJ10sXG4gICAgICAgIFtbJ04nLCAnUScsICdIJ10sICdtYWdlbnRhJ10sXG4gICAgICAgIFtbJ0QnLCAnRSddLCAncmVkJ10sXG4gICAgICAgIFtbJ0snLCAnUiddLCAnYWxsX2JsdWUnXSxcbiAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sZXNrO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ3Jva0dyb3VwczogU2VxUGFsZXR0ZTtcblxuICBwdWJsaWMgc3RhdGljIGdldCBHcm9rR3JvdXBzKCk6IFNlcVBhbGV0dGUge1xuICAgIGlmICh0aGlzLmdyb2tHcm91cHMgPT09IHZvaWQgMCkge1xuICAgICAgdGhpcy5ncm9rR3JvdXBzID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgIFtbJ0MnLCAnVSddLCAneWVsbG93J10sXG4gICAgICAgIFtbJ0cnLCAnUCddLCAncmVkJ10sXG4gICAgICAgIFtbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLCAnYWxsX2dyZWVuJ10sXG4gICAgICAgIFtbJ1InLCAnSCcsICdLJ10sICdsaWdodF9ibHVlJ10sXG4gICAgICAgIFtbJ0QnLCAnRSddLCAnZGFya19ibHVlJ10sXG4gICAgICAgIFtbJ1MnLCAnVCcsICdOJywgJ1EnXSwgJ29yYW5nZSddLFxuICAgICAgXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdyb2tHcm91cHM7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByYXNNb2w6IFNlcVBhbGV0dGU7XG5cbiAgcHVibGljIHN0YXRpYyBnZXQgUmFzTW9sKCk6IFNlcVBhbGV0dGUge1xuICAgIGlmICh0aGlzLnJhc01vbCA9PT0gdm9pZCAwKSB7XG4gICAgICB0aGlzLnJhc01vbCA9IHtcbiAgICAgICAgLy8gaHR0cDovL2FjY2VzLmVucy1seW9uLmZyL2Jpb3RpYy9yYXN0b3AvaGVscC9jb2xvdXIuaHRtXG4gICAgICAgICdEJzogJyNFNjBBMEEnLCAvLyBhc3AsIGFzcGFydGljIGFjaWQsIGFzcFxuICAgICAgICAnRSc6ICcjRTYwQTBBJywgLy8gZ2x1LCBnbHV0YW1pYyBhY2lkXG4gICAgICAgICdDJzogJyNFNkU2MDAnLCAvLyBjeXMsIGN5c3RlaW5lXG4gICAgICAgICdNJzogJyNFNkU2MDAnLCAvLyBtZXQsIG1ldGhpb25pbmVcbiAgICAgICAgJ0snOiAnIzE0NUFGRicsIC8vIGx5cywgbHlzaW5lXG4gICAgICAgICdSJzogJyMxNDVBRkYnLCAvLyBhcmcsIGFyZ2luaW5lXG4gICAgICAgICdTJzogJyNGQTk2MDAnLCAvLyBzZXIsIHNlcmluZVxuICAgICAgICAnVCc6ICcjRkE5NjAwJywgLy8gdGhyLCB0aHJlb25pbmVcbiAgICAgICAgJ0YnOiAnIzMyMzJBQScsIC8vIHBoZSwgcGhlbnlsYWxhbmluZVxuICAgICAgICAnWSc6ICcjMzIzMkFBJywgLy8gdHlyLCB0eXJvc2luZVxuICAgICAgICAnTic6ICcjMDBEQ0RDJywgLy8gYXNuLCBhc3BhcmFnaW5lXG4gICAgICAgICdRJzogJyMwMERDREMnLCAvLyBnbG4sIGdsdXRhbWluZVxuICAgICAgICAnRyc6ICcjRUJFQkVCJywgLy8gZ2x5LCBnbHljaW5lXG4gICAgICAgICdMJzogJyMwRjgyMEYnLCAvLyBsZXUsIGxldWNpbmVcbiAgICAgICAgJ1YnOiAnIzBGODIwRicsIC8vIHZhbCwgdmFsaW5lXG4gICAgICAgICdJJzogJyMwRjgyMEYnLCAvLyBpbGUsIGlzb2xldWNpbmVcbiAgICAgICAgJ0EnOiAnI0M4QzhDOCcsIC8vIGFsYSwgYWxhbmluZVxuICAgICAgICAnVyc6ICcjQjQ1QUI0JywgLy8gdHJwLCB0cnlwdG9waGFuXG4gICAgICAgICdIJzogJyM4MjgyRDInLCAvLyBoaXMsIGhpc3RpZGluZVxuICAgICAgICAnUCc6ICcjREM5NjgyJywgLy8gcHJvLCBwcm9saW5lXG4gICAgICAgICdvdGhlcnMnOiAnI0JFQTA2RScsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yYXNNb2w7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHMge1xuICBzdGF0aWMgcmVhZG9ubHkgU2VtVHlwZTogc3RyaW5nID0gJ0FtaW5vYWNpZHMnO1xuXG4gIHN0YXRpYyByZWFkb25seSBTZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQ6IHN0cmluZyA9ICdBbWlub2FjaWRzTXVsdGlwbGVBbGlnbm1lbnQnO1xuXG4gIHN0YXRpYyB1bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcblxuICBwdWJsaWMgc3RhdGljIE5hbWVzOiBTdHJpbmdEaWN0aW9uYXJ5ID0ge1xuICAgICdHJzogJ0dseWNpbmUnLFxuICAgICdMJzogJ0xldWNpbmUnLFxuICAgICdZJzogJ1R5cm9zaW5lJyxcbiAgICAnUyc6ICdTZXJpbmUnLFxuICAgICdFJzogJ0dsdXRhbWljIGFjaWQnLFxuICAgICdRJzogJ0dsdXRhbWluZScsXG4gICAgJ0QnOiAnQXNwYXJ0aWMgYWNpZCcsXG4gICAgJ04nOiAnQXNwYXJhZ2luZScsXG4gICAgJ0YnOiAnUGhlbnlsYWxhbmluZScsXG4gICAgJ0EnOiAnQWxhbmluZScsXG4gICAgJ0snOiAnTHlzaW5lJyxcbiAgICAnUic6ICdBcmdpbmluZScsXG4gICAgJ0gnOiAnSGlzdGlkaW5lJyxcbiAgICAnQyc6ICdDeXN0ZWluZScsXG4gICAgJ1YnOiAnVmFsaW5lJyxcbiAgICAnUCc6ICdQcm9saW5lJyxcbiAgICAnVyc6ICdUcnlwdG9waGFuJyxcbiAgICAnSSc6ICdJc29sZXVjaW5lJyxcbiAgICAnTSc6ICdNZXRoaW9uaW5lJyxcbiAgICAnVCc6ICdUaHJlb25pbmUnLFxuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgQUFTbWlsZXM6IFN0cmluZ0RpY3Rpb25hcnkgPSB7XG4gICAgJ0cnOiAnTkNDKD1PKU8nLFxuICAgICdMJzogJ05bQ0BIXShDQyhDKUMpQyg9TylPJyxcbiAgICAnWSc6ICdOQyhDQzE9Q0M9QyhPKUM9QzEpQyg9TylPJyxcbiAgICAnUyc6ICdOQyhDTylDKD1PKU8nLFxuICAgICdFJzogJ05bQ0BASF0oQ0NDKE8pPU8pQyg9TylPJyxcbiAgICAnUSc6ICdOW0NAQEhdKENDQyhOKT1PKUMoPU8pTycsXG4gICAgJ0QnOiAnTltDQEBIXShDQyhPKT1PKUMoPU8pTycsXG4gICAgJ04nOiAnTltDQEBIXShDQyhOKT1PKUMoPU8pTycsXG4gICAgJ0YnOiAnTkMoQ0MxPUNDPUNDPUMxKUMoPU8pTycsXG4gICAgJ0EnOiAnTltDQEhdKEMpQyg9TylPJyxcbiAgICAnSyc6ICdOQyhDQ0NDTilDKD1PKU8nLFxuICAgICdSJzogJ05bQ0BIXShDQ0NOQyg9TilDKUMoPU8pTycsXG4gICAgJ0gnOiAnTkMoQ0MxPUNOPUNbTl0xKUMoPU8pTycsXG4gICAgJ0MnOiAnTltDQEBIXShDUylDKD1PKU8nLFxuICAgICdWJzogJ05DKEMoQylDKUMoPU8pTycsXG4gICAgJ1AnOiAnTihDQ0MxKUMxQyg9TylPJyxcbiAgICAnVyc6ICdOW0NAQEhdKENjMWMyY2NjY2MybihbSF0pYzEpQyg9TylPJyxcbiAgICAnSSc6ICdOW0NASF0oW0NASF0oQylDQylDKD1PKU8nLFxuICAgICdNJzogJ05DKENDU0MpQyg9TylPJyxcbiAgICAnVCc6ICdOQyhDKE8pQylDKD1PKU8nLFxuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgQUFTbWlsZXNUcnVuY2F0ZWQ6IFN0cmluZ0RpY3Rpb25hcnkgPSB7XG4gICAgJ0cnOiAnKkMqJyxcbiAgICAnTCc6ICdDQyhDKUNbQ0BIXSgqKSonLFxuICAgICdZJzogJ0MxPUNDKD1DQz1DMUNDKCopKilPJyxcbiAgICAnUyc6ICdPQ0MoKilDKicsXG4gICAgJ0UnOiAnKltDQEBIXShDQ0MoTyk9TykqJyxcbiAgICAnUSc6ICcqTltDQEBIXShDQ0MoTik9TykqJyxcbiAgICAnRCc6ICcqW0NAQEhdKENDKE8pPU8pKicsXG4gICAgJ04nOiAnKltDQEBIXShDQyhOKT1PKSonLFxuICAgICdGJzogJ0MxPUNDPUMoQz1DMSlDQygqKSonLFxuICAgICdBJzogJ0NbQ0BIXSgqKSonLFxuICAgICdLJzogJ0MoQ0NOKUNDKCopKicsXG4gICAgJ1InOiAnKltDQEhdKENDQ05DKD1OKUMpKicsXG4gICAgJ0gnOiAnQzE9QyhOQz1OMSlDQygqKSonLFxuICAgICdDJzogJ0MoW0NAQEhdKCopKilTJyxcbiAgICAnVic6ICdDQyhDKUMoKikqJyxcbiAgICAnUCc6ICdDMUNDTigqKUMxKicsXG4gICAgJ1cnOiAnKltDQEBIXShDYzFjMmNjY2NjMm4oW0hdKWMxKSonLFxuICAgICdJJzogJ0NDW0NASF0oQylbQ0BIXSgqKSonLFxuICAgICdNJzogJ0NTQ0NDKCopKicsXG4gICAgJ1QnOiAnQ0MoTylDKCopKicsXG4gIH07XG5cbiAgLyoqIFRPRE86IEZ1bGw/XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEFBRnVsbE5hbWVzOiBTdHJpbmdEaWN0aW9uYXJ5ID0ge1xuICAgICdBbGEnOiAnQScsXG4gICAgJ0FyZyc6ICdSJyxcbiAgICAnQXNuJzogJ04nLFxuICAgICdBc3AnOiAnRCcsXG4gICAgJ0N5cyc6ICdDJyxcbiAgICAnR2xuJzogJ1EnLFxuICAgICdHbHUnOiAnRScsXG4gICAgJ0dseSc6ICdHJyxcbiAgICAnSGlzJzogJ0gnLFxuICAgICdJbGUnOiAnSScsXG4gICAgJ0xldSc6ICdMJyxcbiAgICAnTHlzJzogJ0snLFxuICAgICdNZXQnOiAnTScsXG4gICAgJ1BoZSc6ICdGJyxcbiAgICAnUHJvJzogJ1AnLFxuICAgICdTZXInOiAnUycsXG4gICAgJ1Rocic6ICdUJyxcbiAgICAnVHJwJzogJ1cnLFxuICAgICdUeXInOiAnWScsXG4gICAgJ1ZhbCc6ICdWJyxcbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIGdldFBhbGV0dGUoc2NoZW1lOiBzdHJpbmcgPSAnZ3JvaycpOiBTZXFQYWxldHRlIHtcbiAgICBzd2l0Y2ggKHNjaGVtZSkge1xuICAgIGNhc2UgJ2dyb2snOlxuICAgICAgcmV0dXJuIEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzO1xuICAgIGNhc2UgJ2xlc2snOlxuICAgICAgcmV0dXJuIEFtaW5vYWNpZHNQYWxldHRlcy5MZXNrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENoZW1QYWxldHRlOiBzY2hlbWUgXFxgJHtzY2hlbWV9XFxgIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgZGl2aWRlZCBhbWlubyBhY2lkIHdpdGggaXRzIGNvbnRlbnQgaW4gdGhlIGJyYWNrZXQsIGlmIHRoZSBjb250ZW50IGlzIG51bWJlciwgdGhlbiBpdHMgb21pdHRlZFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYyByYXcgYW1pbm9cbiAgICogQHJldHVybiB7W3N0cmluZywgc3RyaW5nXX0gb3V0ZXIgYW5kIGlubmVyIGNvbnRlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW5uZXJPdXRlcihjOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddIHtcbiAgICBsZXQgaXNJbm5lciA9IDA7XG4gICAgbGV0IGlubmVyID0gJyc7XG4gICAgbGV0IG91dGVyID0gJyc7XG5cbiAgICBmb3IgKGNvbnN0IGNoYXIgb2YgYykge1xuICAgICAgaWYgKGNoYXIgPT0gJygnKVxuICAgICAgICBpc0lubmVyKys7XG4gICAgICBlbHNlIGlmIChjaGFyID09ICcpJylcbiAgICAgICAgaXNJbm5lci0tO1xuICAgICAgZWxzZSBpZiAoaXNJbm5lcilcbiAgICAgICAgaW5uZXIgKz0gY2hhcjtcbiAgICAgIGVsc2VcbiAgICAgICAgb3V0ZXIgKz0gY2hhcjtcbiAgICB9XG5cbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlSW50KGlubmVyKSkgPyBbb3V0ZXIsICcnXSA6IFtvdXRlciwgaW5uZXJdO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRDb2xvckFBUGl2b3QobW9ub21lcjogc3RyaW5nID0gJycsIHNjaGVtZTogJ2dyb2snID0gJ2dyb2snKTogW3N0cmluZywgc3RyaW5nLCBzdHJpbmcsIG51bWJlcl0ge1xuICAgIC8vY29uc3QgY2hlbVBhbGV0dGVJbnN0YW5jZSA9IEFBUGFsZXR0ZXMuR3Jva0dyb3VwcygpO1xuICAgIGNvbnN0IGNoZW1QYWxldHRlSW5zdGFuY2UgPSB0aGlzLmdldFBhbGV0dGUoc2NoZW1lKTtcbiAgICBsZXQgW291dGVyTW9ub21lciwgaW5uZXJNb25vbWVyXSA9IHRoaXMuZ2V0SW5uZXJPdXRlcihtb25vbWVyKTtcbiAgICBvdXRlck1vbm9tZXIgPSAob3V0ZXJNb25vbWVyLmxlbmd0aCA+IDYgPyBgJHtvdXRlck1vbm9tZXIuc2xpY2UoMCwgMyl9Li4uYCA6IG91dGVyTW9ub21lcik7XG4gICAgaW5uZXJNb25vbWVyID0gKGlubmVyTW9ub21lci5sZW5ndGggPiA2ID8gYCR7aW5uZXJNb25vbWVyLnNsaWNlKDAsIDMpfS4uLmAgOiBpbm5lck1vbm9tZXIpO1xuXG4gICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDEgfHwgbW9ub21lclsxXSA9PSAnKCcpIHtcbiAgICAgIGNvbnN0IGFtaW5vID0gbW9ub21lclswXT8udG9VcHBlckNhc2UoKSE7XG4gICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlW2FtaW5vXSwgYW1pbm8sIGlubmVyTW9ub21lciwgMV0gOlxuICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDFdO1xuICAgIH1cblxuICAgIGlmIChtb25vbWVyWzBdID09ICdkJyAmJiBtb25vbWVyWzFdISBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlKSB7XG4gICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMiB8fCBtb25vbWVyWzJdID09ICcoJykge1xuICAgICAgICBjb25zdCBhbWlubyA9IG1vbm9tZXJbMV0/LnRvVXBwZXJDYXNlKCkhO1xuICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2VbYW1pbm9dLCBhbWlubywgaW5uZXJNb25vbWVyLCAyXSA6XG4gICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAyXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9ub21lci5zdWJzdHJpbmcoMCwgMykgaW4gdGhpcy5BQUZ1bGxOYW1lcykge1xuICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDMgfHwgbW9ub21lclszXSA9PSAnKCcpIHtcbiAgICAgICAgY29uc3QgYW1pbm8gPSB0aGlzLkFBRnVsbE5hbWVzW21vbm9tZXIuc3Vic3RyaW5nKDAsIDMpXTtcbiAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlW2FtaW5vXSwgYW1pbm8sIGlubmVyTW9ub21lciwgM10gOlxuICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgM107XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vbm9tZXJbMF0/LnRvTG93ZXJDYXNlKCkgPT0gbW9ub21lclswXSkge1xuICAgICAgaWYgKG1vbm9tZXIuc3Vic3RyaW5nKDEsIDMpIGluIHRoaXMuQUFGdWxsTmFtZXMpIHtcbiAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDQgfHwgbW9ub21lcls0XSA9PSAnKCcpIHtcbiAgICAgICAgICBjb25zdCBhbWlubyA9IHRoaXMuQUFGdWxsTmFtZXNbbW9ub21lci5zdWJzdHJpbmcoMSwgMyldO1xuICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlW2FtaW5vXSwgYW1pbm8sIGlubmVyTW9ub21lciwgNF0gOlxuICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCA0XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDBdO1xuICB9XG59XG4iXX0=
|
|
244
|
+
|
|
245
|
+
/***/ }),
|
|
246
|
+
|
|
247
|
+
/***/ "./node_modules/@datagrok-libraries/bio/src/nucleotides.js":
|
|
248
|
+
/*!*****************************************************************!*\
|
|
249
|
+
!*** ./node_modules/@datagrok-libraries/bio/src/nucleotides.js ***!
|
|
250
|
+
\*****************************************************************/
|
|
251
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
252
|
+
|
|
253
|
+
__webpack_require__.r(__webpack_exports__);
|
|
254
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
255
|
+
/* harmony export */ "Nucleotides": () => (/* binding */ Nucleotides),
|
|
256
|
+
/* harmony export */ "NucleotidesPalettes": () => (/* binding */ NucleotidesPalettes)
|
|
257
|
+
/* harmony export */ });
|
|
258
|
+
/* harmony import */ var _seq_palettes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./seq-palettes */ "./node_modules/@datagrok-libraries/bio/src/seq-palettes.js");
|
|
259
|
+
|
|
260
|
+
class NucleotidesPalettes extends _seq_palettes__WEBPACK_IMPORTED_MODULE_0__.SeqPaletteBase {
|
|
261
|
+
static get Chromatogram() {
|
|
262
|
+
if (this.chromatogram === void 0) {
|
|
263
|
+
this.chromatogram = {
|
|
264
|
+
'A': 'green',
|
|
265
|
+
'C': 'blue',
|
|
266
|
+
'G': 'black',
|
|
267
|
+
'T': 'red', 'U': 'red',
|
|
268
|
+
'others': 'gray',
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
return this.chromatogram;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
class Nucleotides {
|
|
275
|
+
}
|
|
276
|
+
Nucleotides.SemType = 'MultipleAlignment';
|
|
277
|
+
Nucleotides.SemTypeMultipleAlignment = 'NucleotidesMultipleAlignment';
|
|
278
|
+
Nucleotides.Names = {
|
|
279
|
+
'A': 'Adenine',
|
|
280
|
+
'C': 'Cytosine',
|
|
281
|
+
'G': 'Guanine',
|
|
282
|
+
'T': 'Thymine',
|
|
283
|
+
'U': 'Uracil',
|
|
284
|
+
};
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVjbGVvdGlkZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJudWNsZW90aWRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQWEsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNBQWM7SUFHOUMsTUFBTSxLQUFLLFlBQVk7UUFDNUIsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUc7Z0JBQ2xCLEdBQUcsRUFBRSxPQUFPO2dCQUNaLEdBQUcsRUFBRSxNQUFNO2dCQUNYLEdBQUcsRUFBRSxPQUFPO2dCQUNaLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUs7Z0JBQ3RCLFFBQVEsRUFBRSxNQUFNO2FBQ2pCLENBQUM7U0FDSDtRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sV0FBVzs7QUFDTixtQkFBTyxHQUFXLG1CQUFtQixDQUFDO0FBRXRDLG9DQUF3QixHQUFXLDhCQUE4QixDQUFDO0FBRXBFLGlCQUFLLEdBQXFCO0lBQ3RDLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFVBQVU7SUFDZixHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFFBQVE7Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcblxuaW1wb3J0IHtTdHJpbmdEaWN0aW9uYXJ5fSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy90eXBlLWRlY2xhcmF0aW9ucyc7XG5pbXBvcnQge1NlcVBhbGV0dGUsIFNlcVBhbGV0dGVCYXNlfSBmcm9tICcuL3NlcS1wYWxldHRlcyc7XG5cbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlc1BhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICBwcml2YXRlIHN0YXRpYyBjaHJvbWF0b2dyYW06IFNlcVBhbGV0dGU7XG5cbiAgcHVibGljIHN0YXRpYyBnZXQgQ2hyb21hdG9ncmFtKCk6IFNlcVBhbGV0dGUge1xuICAgIGlmICh0aGlzLmNocm9tYXRvZ3JhbSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aGlzLmNocm9tYXRvZ3JhbSA9IHtcbiAgICAgICAgJ0EnOiAnZ3JlZW4nLFxuICAgICAgICAnQyc6ICdibHVlJyxcbiAgICAgICAgJ0cnOiAnYmxhY2snLCAvLyBvcmFuZ2UgP1xuICAgICAgICAnVCc6ICdyZWQnLCAnVSc6ICdyZWQnLFxuICAgICAgICAnb3RoZXJzJzogJ2dyYXknLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2hyb21hdG9ncmFtO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlcyB7XG4gIHN0YXRpYyByZWFkb25seSBTZW1UeXBlOiBzdHJpbmcgPSAnTXVsdGlwbGVBbGlnbm1lbnQnO1xuXG4gIHN0YXRpYyByZWFkb25seSBTZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQ6IHN0cmluZyA9ICdOdWNsZW90aWRlc011bHRpcGxlQWxpZ25tZW50JztcblxuICBwdWJsaWMgc3RhdGljIE5hbWVzOiBTdHJpbmdEaWN0aW9uYXJ5ID0ge1xuICAgICdBJzogJ0FkZW5pbmUnLFxuICAgICdDJzogJ0N5dG9zaW5lJyxcbiAgICAnRyc6ICdHdWFuaW5lJyxcbiAgICAnVCc6ICdUaHltaW5lJyxcbiAgICAnVSc6ICdVcmFjaWwnLFxuICB9O1xufVxuIl19
|
|
286
|
+
|
|
287
|
+
/***/ }),
|
|
288
|
+
|
|
289
|
+
/***/ "./node_modules/@datagrok-libraries/bio/src/seq-palettes.js":
|
|
290
|
+
/*!******************************************************************!*\
|
|
291
|
+
!*** ./node_modules/@datagrok-libraries/bio/src/seq-palettes.js ***!
|
|
292
|
+
\******************************************************************/
|
|
293
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
294
|
+
|
|
295
|
+
__webpack_require__.r(__webpack_exports__);
|
|
296
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
297
|
+
/* harmony export */ "SeqPaletteBase": () => (/* binding */ SeqPaletteBase)
|
|
298
|
+
/* harmony export */ });
|
|
299
|
+
class SeqPaletteBase {
|
|
300
|
+
static makePalette(dt, simplified = false) {
|
|
301
|
+
const palette = {};
|
|
302
|
+
dt.forEach((cp) => {
|
|
303
|
+
const objList = cp[0];
|
|
304
|
+
const colour = cp[1];
|
|
305
|
+
objList.forEach((obj, ind) => {
|
|
306
|
+
palette[obj] = this.colourPalette[colour][simplified ? 0 : ind];
|
|
307
|
+
});
|
|
308
|
+
});
|
|
309
|
+
return palette;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/** Palette with shades of primary colors
|
|
313
|
+
*/
|
|
314
|
+
SeqPaletteBase.colourPalette = {
|
|
315
|
+
'orange': ['rgb(255,187,120)', 'rgb(245,167,100)', 'rgb(235,137,70)', 'rgb(205, 111, 71)'],
|
|
316
|
+
'all_green': ['rgb(44,160,44)', 'rgb(74,160,74)', 'rgb(23,103,57)', 'rgb(30,110,96)', 'rgb(60,131,95)',
|
|
317
|
+
'rgb(24,110,79)', 'rgb(152,223,138)', 'rgb(182, 223, 138)', 'rgb(152, 193, 138)'],
|
|
318
|
+
'all_blue': ['rgb(31,119,180)', 'rgb(23,190,207)', 'rgb(122, 102, 189)', 'rgb(158,218,229)', 'rgb(141, 124, 217)',
|
|
319
|
+
'rgb(31, 120, 150)'],
|
|
320
|
+
'magenta': ['rgb(162,106,192)', 'rgb(197,165,224)', 'rgb(208,113,218)'],
|
|
321
|
+
'red': ['rgb(214,39,40)', 'rgb(255,152,150)'],
|
|
322
|
+
'st_blue': ['rgb(23,190,207)', 'rgb(158,218,229)', 'rgb(31,119,180)'],
|
|
323
|
+
'dark_blue': ['rgb(31,119,180)', 'rgb(31, 120, 150)'],
|
|
324
|
+
'light_blue': ['rgb(23,190,207)', 'rgb(158,218,229)', 'rgb(108, 218, 229)', 'rgb(23,190,227)'],
|
|
325
|
+
'lilac_blue': ['rgb(124,102,211)', 'rgb(149,134,217)', 'rgb(97, 81, 150)'],
|
|
326
|
+
'dark_green': ['rgb(23,103,57)', 'rgb(30,110,96)', 'rgb(60,131,95)', 'rgb(24,110,79)'],
|
|
327
|
+
'green': ['rgb(44,160,44)', 'rgb(74,160,74)'],
|
|
328
|
+
'light_green': ['rgb(152,223,138)', 'rgb(182, 223, 138)', 'rgb(152, 193, 138)'],
|
|
329
|
+
'st_green': ['rgb(44,160,44)', 'rgb(152,223,138)', 'rgb(39, 174, 96)', 'rgb(74,160,74)'],
|
|
330
|
+
'pink': ['rgb(247,182,210)'],
|
|
331
|
+
'brown': ['rgb(140,86,75)', 'rgb(102, 62, 54)'],
|
|
332
|
+
'gray': ['rgb(127,127,127)', 'rgb(199,199,199)', 'rgb(196,156,148)', 'rgb(222, 222, 180)'],
|
|
333
|
+
'yellow': ['rgb(188,189,34)'],
|
|
334
|
+
'white': ['rgb(230,230,230)'],
|
|
335
|
+
};
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxLXBhbGV0dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VxLXBhbGV0dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sT0FBTyxjQUFjO0lBMEJmLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBd0IsRUFBRSxVQUFVLEdBQUcsS0FBSztRQUN2RSxNQUFNLE9BQU8sR0FBOEIsRUFBRSxDQUFDO1FBQzlDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNoQixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7QUFuQ0Q7R0FDRztBQUNZLDRCQUFhLEdBQWdDO0lBQzFELFFBQVEsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDO0lBQzFGLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNwRyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQztJQUNuRixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0I7UUFDL0csbUJBQW1CLENBQUM7SUFDdEIsU0FBUyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7SUFDdkUsS0FBSyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUM7SUFDN0MsU0FBUyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUM7SUFDckUsV0FBVyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUM7SUFDckQsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7SUFDOUYsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7SUFDMUUsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDdEYsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDN0MsYUFBYSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUM7SUFDL0UsVUFBVSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUM7SUFDeEYsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDNUIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUM7SUFDL0MsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUM7SUFDMUYsUUFBUSxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDN0IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Q0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VxUGFsZXR0ZSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbSBNb25vbWVyIGNoYXJhY3RlclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IENvbG9yXG4gICAqL1xuICBbbTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU2VxUGFsZXR0ZUJhc2Uge1xuICAvKiogUGFsZXR0ZSB3aXRoIHNoYWRlcyBvZiBwcmltYXJ5IGNvbG9yc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgY29sb3VyUGFsZXR0ZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge1xuICAgICdvcmFuZ2UnOiBbJ3JnYigyNTUsMTg3LDEyMCknLCAncmdiKDI0NSwxNjcsMTAwKScsICdyZ2IoMjM1LDEzNyw3MCknLCAncmdiKDIwNSwgMTExLCA3MSknXSxcbiAgICAnYWxsX2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KScsICdyZ2IoMjMsMTAzLDU3KScsICdyZ2IoMzAsMTEwLDk2KScsICdyZ2IoNjAsMTMxLDk1KScsXG4gICAgICAncmdiKDI0LDExMCw3OSknLCAncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMTgyLCAyMjMsIDEzOCknLCAncmdiKDE1MiwgMTkzLCAxMzgpJ10sXG4gICAgJ2FsbF9ibHVlJzogWydyZ2IoMzEsMTE5LDE4MCknLCAncmdiKDIzLDE5MCwyMDcpJywgJ3JnYigxMjIsIDEwMiwgMTg5KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigxNDEsIDEyNCwgMjE3KScsXG4gICAgICAncmdiKDMxLCAxMjAsIDE1MCknXSxcbiAgICAnbWFnZW50YSc6IFsncmdiKDE2MiwxMDYsMTkyKScsICdyZ2IoMTk3LDE2NSwyMjQpJywgJ3JnYigyMDgsMTEzLDIxOCknXSxcbiAgICAncmVkJzogWydyZ2IoMjE0LDM5LDQwKScsICdyZ2IoMjU1LDE1MiwxNTApJ10sXG4gICAgJ3N0X2JsdWUnOiBbJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigzMSwxMTksMTgwKSddLFxuICAgICdkYXJrX2JsdWUnOiBbJ3JnYigzMSwxMTksMTgwKScsICdyZ2IoMzEsIDEyMCwgMTUwKSddLFxuICAgICdsaWdodF9ibHVlJzogWydyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTA4LCAyMTgsIDIyOSknLCAncmdiKDIzLDE5MCwyMjcpJ10sXG4gICAgJ2xpbGFjX2JsdWUnOiBbJ3JnYigxMjQsMTAyLDIxMSknLCAncmdiKDE0OSwxMzQsMjE3KScsICdyZ2IoOTcsIDgxLCAxNTApJ10sXG4gICAgJ2RhcmtfZ3JlZW4nOiBbJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJywgJ3JnYigyNCwxMTAsNzkpJ10sXG4gICAgJ2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KSddLFxuICAgICdsaWdodF9ncmVlbic6IFsncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMTgyLCAyMjMsIDEzOCknLCAncmdiKDE1MiwgMTkzLCAxMzgpJ10sXG4gICAgJ3N0X2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigzOSwgMTc0LCA5NiknLCAncmdiKDc0LDE2MCw3NCknXSxcbiAgICAncGluayc6IFsncmdiKDI0NywxODIsMjEwKSddLFxuICAgICdicm93bic6IFsncmdiKDE0MCw4Niw3NSknLCAncmdiKDEwMiwgNjIsIDU0KSddLFxuICAgICdncmF5JzogWydyZ2IoMTI3LDEyNywxMjcpJywgJ3JnYigxOTksMTk5LDE5OSknLCAncmdiKDE5NiwxNTYsMTQ4KScsICdyZ2IoMjIyLCAyMjIsIDE4MCknXSxcbiAgICAneWVsbG93JzogWydyZ2IoMTg4LDE4OSwzNCknXSxcbiAgICAnd2hpdGUnOiBbJ3JnYigyMzAsMjMwLDIzMCknXSxcbiAgfTtcblxuICBwcm90ZWN0ZWQgc3RhdGljIG1ha2VQYWxldHRlKGR0OiBbc3RyaW5nW10sIHN0cmluZ11bXSwgc2ltcGxpZmllZCA9IGZhbHNlKSB7XG4gICAgY29uc3QgcGFsZXR0ZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGR0LmZvckVhY2goKGNwKSA9PiB7XG4gICAgICBjb25zdCBvYmpMaXN0ID0gY3BbMF07XG4gICAgICBjb25zdCBjb2xvdXIgPSBjcFsxXTtcbiAgICAgIG9iakxpc3QuZm9yRWFjaCgob2JqLCBpbmQpID0+IHtcbiAgICAgICAgcGFsZXR0ZVtvYmpdID0gdGhpcy5jb2xvdXJQYWxldHRlW2NvbG91cl1bc2ltcGxpZmllZCA/IDAgOiBpbmRdO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHBhbGV0dGU7XG4gIH1cbn1cbiJdfQ==
|
|
337
|
+
|
|
338
|
+
/***/ }),
|
|
339
|
+
|
|
340
|
+
/***/ "./node_modules/@datagrok-libraries/bio/src/viewers/web-logo.js":
|
|
341
|
+
/*!**********************************************************************!*\
|
|
342
|
+
!*** ./node_modules/@datagrok-libraries/bio/src/viewers/web-logo.js ***!
|
|
343
|
+
\**********************************************************************/
|
|
344
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
345
|
+
|
|
346
|
+
__webpack_require__.r(__webpack_exports__);
|
|
347
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
348
|
+
/* harmony export */ "PositionInfo": () => (/* binding */ PositionInfo),
|
|
349
|
+
/* harmony export */ "PositionMonomerInfo": () => (/* binding */ PositionMonomerInfo),
|
|
350
|
+
/* harmony export */ "WebLogo": () => (/* binding */ WebLogo)
|
|
351
|
+
/* harmony export */ });
|
|
352
|
+
/* harmony import */ var datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! datagrok-api/ui */ "datagrok-api/ui");
|
|
353
|
+
/* harmony import */ var datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__);
|
|
354
|
+
/* harmony import */ var datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! datagrok-api/dg */ "datagrok-api/dg");
|
|
355
|
+
/* harmony import */ var datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__);
|
|
356
|
+
/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ "rxjs");
|
|
357
|
+
/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_2__);
|
|
358
|
+
/* harmony import */ var _aminoacids__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../aminoacids */ "./node_modules/@datagrok-libraries/bio/src/aminoacids.js");
|
|
359
|
+
/* harmony import */ var _nucleotides__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../nucleotides */ "./node_modules/@datagrok-libraries/bio/src/nucleotides.js");
|
|
360
|
+
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
361
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
362
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
363
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
364
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
365
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
366
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
367
|
+
});
|
|
368
|
+
};
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
HTMLCanvasElement.prototype.getCursorPosition = function (event) {
|
|
375
|
+
const rect = this.getBoundingClientRect();
|
|
376
|
+
return new datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.Point(event.clientX - rect.left, event.clientY - rect.top);
|
|
377
|
+
};
|
|
378
|
+
datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.Rect.prototype.contains = function (x, y) {
|
|
379
|
+
return this.left <= x && x <= this.right && this.top <= y && y <= this.bottom;
|
|
380
|
+
};
|
|
381
|
+
class PositionMonomerInfo {
|
|
382
|
+
constructor() {
|
|
383
|
+
this.count = 0;
|
|
384
|
+
this.bounds = new datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.Rect(0, 0, 0, 0);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
class PositionInfo {
|
|
388
|
+
/** freq = {}, rowCount = 0
|
|
389
|
+
* @param {string} name Name of position ('111A', '111.1', etc)
|
|
390
|
+
*/
|
|
391
|
+
constructor(name) {
|
|
392
|
+
this.name = name;
|
|
393
|
+
this.freq = {};
|
|
394
|
+
this.rowCount = 0;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
class WebLogo extends datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.JsViewer {
|
|
398
|
+
constructor() {
|
|
399
|
+
super();
|
|
400
|
+
this.initialized = false;
|
|
401
|
+
// private readonly colorScheme: ColorScheme = ColorSchemes[NucleotidesWebLogo.residuesSet];
|
|
402
|
+
this.cp = null;
|
|
403
|
+
this.axisHeight = 12;
|
|
404
|
+
this.seqCol = null;
|
|
405
|
+
// private maxLength: number = 100;
|
|
406
|
+
this.positions = [];
|
|
407
|
+
this.rowsMasked = 0;
|
|
408
|
+
this.rowsNull = 0;
|
|
409
|
+
this.positionNames = [];
|
|
410
|
+
this.startPosition = -1;
|
|
411
|
+
this.endPosition = -1;
|
|
412
|
+
this.textBaseline = 'top';
|
|
413
|
+
this.positionWidth = this.float('positionWidth', 16 /*,
|
|
414
|
+
{editor: 'slider', min: 4, max: 64, postfix: 'px'}*/);
|
|
415
|
+
this.minHeight = this.float('minHeight', 50 /*,
|
|
416
|
+
{editor: 'slider', min: 25, max: 250, postfix: 'px'}*/);
|
|
417
|
+
this.maxHeight = this.float('maxHeight', 100 /*,
|
|
418
|
+
{editor: 'slider', min: 25, max: 500, postfix: 'px'}*/);
|
|
419
|
+
this.considerNullSequences = this.bool('considerNullSequences', false);
|
|
420
|
+
this.sequenceColumnName = this.string('sequenceColumnName', null);
|
|
421
|
+
this.startPositionName = this.string('startPositionName', null);
|
|
422
|
+
this.endPositionName = this.string('endPositionName', null);
|
|
423
|
+
this.fixWidth = this.bool('fixWidth', false);
|
|
424
|
+
this.verticalAlignment = this.string('verticalAlignment', 'middle', { choices: ['top', 'middle', 'bottom'] });
|
|
425
|
+
this.horizontalAlignment = this.string('horizontalAlignment', 'center', { choices: ['left', 'center', 'right'] });
|
|
426
|
+
}
|
|
427
|
+
/** For startPosition equals to endPosition Length is 1 */
|
|
428
|
+
get Length() {
|
|
429
|
+
return this.startPosition <= this.endPosition ? this.endPosition - this.startPosition + 1 : 0;
|
|
430
|
+
}
|
|
431
|
+
init() {
|
|
432
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
433
|
+
if (this.initialized)
|
|
434
|
+
alert('WebLogo second initialization!');
|
|
435
|
+
this.initialized = true;
|
|
436
|
+
this.helpUrl = '/help/visualize/viewers/web-logo.md';
|
|
437
|
+
this.msgHost = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.div('No message');
|
|
438
|
+
this.msgHost.style.display = 'none';
|
|
439
|
+
this.canvas = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.canvas();
|
|
440
|
+
this.canvas.style.width = '100%';
|
|
441
|
+
this.host = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.div([this.msgHost, this.canvas]);
|
|
442
|
+
// this.slider = ui.rangeSlider(0, 20, 2, 5);
|
|
443
|
+
// this.slider.root.style.width = '100%';
|
|
444
|
+
// this.slider.root.style.height = '12px';
|
|
445
|
+
const getMonomer = (p) => {
|
|
446
|
+
const jPos = Math.floor(p.x / this.positionWidth);
|
|
447
|
+
const position = this.positions[jPos];
|
|
448
|
+
if (position === void 0)
|
|
449
|
+
return [jPos, null, null];
|
|
450
|
+
const monomer = Object.keys(position.freq)
|
|
451
|
+
.find((m) => position.freq[m].bounds.contains(p.x, p.y));
|
|
452
|
+
if (monomer === undefined)
|
|
453
|
+
return [jPos, null, null];
|
|
454
|
+
return [jPos, monomer, position.freq[monomer]];
|
|
455
|
+
};
|
|
456
|
+
this.canvas.onmouseover = (e) => {
|
|
457
|
+
};
|
|
458
|
+
this.subs.push(rxjs__WEBPACK_IMPORTED_MODULE_2__.fromEvent(this.canvas, 'mousemove').subscribe((e) => {
|
|
459
|
+
if (!this.canvas)
|
|
460
|
+
return;
|
|
461
|
+
const args = e;
|
|
462
|
+
const [jPos, monomer] = getMonomer(this.canvas.getCursorPosition(args));
|
|
463
|
+
if (this.dataFrame && this.seqCol && monomer) {
|
|
464
|
+
datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.tooltip.showRowGroup(this.dataFrame, (iRow) => {
|
|
465
|
+
const seq = this.seqCol.get(iRow);
|
|
466
|
+
const mSeq = seq ? seq[this.startPosition + jPos] : null;
|
|
467
|
+
return mSeq === monomer;
|
|
468
|
+
}, args.x + 16, args.y + 16);
|
|
469
|
+
}
|
|
470
|
+
else {
|
|
471
|
+
datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.tooltip.hide();
|
|
472
|
+
}
|
|
473
|
+
}));
|
|
474
|
+
this.subs.push(rxjs__WEBPACK_IMPORTED_MODULE_2__.fromEvent(this.canvas, 'mousedown').subscribe((e) => {
|
|
475
|
+
if (!this.canvas || e.button != 0)
|
|
476
|
+
return;
|
|
477
|
+
const args = e;
|
|
478
|
+
const [jPos, monomer] = getMonomer(this.canvas.getCursorPosition(args));
|
|
479
|
+
// prevents deselect all rows if we miss monomer bounds
|
|
480
|
+
if (this.dataFrame && this.seqCol && monomer) {
|
|
481
|
+
this.dataFrame.selection.init((iRow) => {
|
|
482
|
+
const seq = this.seqCol.get(iRow);
|
|
483
|
+
const mSeq = seq ? seq[this.startPosition + jPos] : null;
|
|
484
|
+
return mSeq === monomer;
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
}));
|
|
488
|
+
this.subs.push(datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.onSizeChanged(this.root).subscribe(this.rootOnSizeChanged.bind(this)));
|
|
489
|
+
this.root.append(this.host);
|
|
490
|
+
// this.root.appendChild(this.slider.root);
|
|
491
|
+
this.render(true);
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
rootOnSizeChanged(args) {
|
|
495
|
+
this.render(true);
|
|
496
|
+
// console.debug(`WebLogo.onRootSizeChanged() ` +
|
|
497
|
+
// `root.width=${this.root.clientWidth}, root.height=${this.root.clientHeight}, ` +
|
|
498
|
+
// `canvas.width=${this.canvas.width}, canvas.height=${this.canvas.height} .`);
|
|
499
|
+
}
|
|
500
|
+
/** Assigns {@link seqCol} and {@link cp} based on {@link sequenceColumnName} and calls {@link render}().
|
|
501
|
+
*/
|
|
502
|
+
updateSeqCol() {
|
|
503
|
+
if (this.dataFrame) {
|
|
504
|
+
this.seqCol = this.sequenceColumnName ? this.dataFrame.col(this.sequenceColumnName) : null;
|
|
505
|
+
if (this.seqCol == null) {
|
|
506
|
+
this.seqCol = this.pickUpSeqCol(this.dataFrame);
|
|
507
|
+
this.sequenceColumnName = this.seqCol ? this.seqCol.name : null;
|
|
508
|
+
}
|
|
509
|
+
if (this.seqCol) {
|
|
510
|
+
const maxLength = Math.max(...this.seqCol.categories.map((s) => s.length));
|
|
511
|
+
// Get position names from data column tag 'positionNames'
|
|
512
|
+
const positionNamesTxt = this.seqCol.getTag('positionNames');
|
|
513
|
+
// Fallback if 'positionNames' tag is not provided
|
|
514
|
+
this.positionNames = positionNamesTxt ? positionNamesTxt.split(', ').map((n) => n.trim()) :
|
|
515
|
+
[...Array(maxLength).keys()].map((jPos) => `${jPos + 1}`);
|
|
516
|
+
this.startPosition = this.startPositionName && this.positionNames ?
|
|
517
|
+
this.positionNames.indexOf(this.startPositionName) : 0;
|
|
518
|
+
this.endPosition = this.endPositionName && this.positionNames ?
|
|
519
|
+
this.positionNames.indexOf(this.endPositionName) : (maxLength - 1);
|
|
520
|
+
this.cp = this.pickUpPalette(this.seqCol);
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
this.cp = null;
|
|
524
|
+
this.positionNames = [];
|
|
525
|
+
this.startPosition = -1;
|
|
526
|
+
this.endPosition = -1;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
this.render();
|
|
530
|
+
}
|
|
531
|
+
onPropertyChanged(property) {
|
|
532
|
+
// console.debug(`WebLogo.onPropertyChanged( ${property.name} = '' })`);
|
|
533
|
+
super.onPropertyChanged(property);
|
|
534
|
+
switch (property.name) {
|
|
535
|
+
case 'considerNullSequences':
|
|
536
|
+
this.render(true);
|
|
537
|
+
break;
|
|
538
|
+
case 'sequenceColumnName':
|
|
539
|
+
this.updateSeqCol();
|
|
540
|
+
break;
|
|
541
|
+
case 'startPositionName':
|
|
542
|
+
this.updateSeqCol();
|
|
543
|
+
break;
|
|
544
|
+
case 'endPositionName':
|
|
545
|
+
this.updateSeqCol();
|
|
546
|
+
break;
|
|
547
|
+
case 'positionWidth':
|
|
548
|
+
this.render(true);
|
|
549
|
+
break;
|
|
550
|
+
case 'minHeight':
|
|
551
|
+
this.render(true);
|
|
552
|
+
break;
|
|
553
|
+
case 'maxHeight':
|
|
554
|
+
this.render(true);
|
|
555
|
+
break;
|
|
556
|
+
case 'fixWidth':
|
|
557
|
+
this.render(true);
|
|
558
|
+
break;
|
|
559
|
+
case 'verticalAlignment':
|
|
560
|
+
this.render(true);
|
|
561
|
+
break;
|
|
562
|
+
case 'horizontalAlignment':
|
|
563
|
+
this.render(true);
|
|
564
|
+
break;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
onTableAttached() {
|
|
568
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
569
|
+
// console.debug(`WebLogo.onTableAttached( dataFrame = ${this.dataFrame ? 'data' : 'null'} )`);
|
|
570
|
+
this.updateSeqCol();
|
|
571
|
+
if (this.dataFrame !== void 0) {
|
|
572
|
+
this.subs.push(this.dataFrame.selection.onChanged.subscribe((_) => this.render()));
|
|
573
|
+
this.subs.push(this.dataFrame.filter.onChanged.subscribe((_) => this.render()));
|
|
574
|
+
}
|
|
575
|
+
yield this.init();
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
_nullSequence(fillerResidue = 'X') {
|
|
579
|
+
if (this.considerNullSequences)
|
|
580
|
+
return new Array(this.Length).fill(fillerResidue).join('');
|
|
581
|
+
return '';
|
|
582
|
+
}
|
|
583
|
+
_calculate() {
|
|
584
|
+
if (!this.canvas || !this.host || !this.seqCol || !this.dataFrame ||
|
|
585
|
+
this.startPosition === -1 || this.endPosition === -1)
|
|
586
|
+
return;
|
|
587
|
+
this.calcSize();
|
|
588
|
+
this.positions = new Array(this.Length);
|
|
589
|
+
for (let jPos = 0; jPos < this.Length; jPos++) {
|
|
590
|
+
const posName = this.positionNames[this.startPosition + jPos];
|
|
591
|
+
this.positions[jPos] = new PositionInfo(posName);
|
|
592
|
+
}
|
|
593
|
+
// 2022-05-05 askalkin instructed to show WebLogo based on filter (not selection)
|
|
594
|
+
const indices = this.dataFrame.filter.getSelectedIndexes();
|
|
595
|
+
// const indices = this.dataFrame.selection.trueCount > 0 ? this.dataFrame.selection.getSelectedIndexes() :
|
|
596
|
+
// this.dataFrame.filter.getSelectedIndexes();
|
|
597
|
+
this.rowsMasked = indices.length;
|
|
598
|
+
this.rowsNull = 0;
|
|
599
|
+
for (const i of indices) {
|
|
600
|
+
let s = (this.seqCol.get(i));
|
|
601
|
+
if (!s) {
|
|
602
|
+
s = this._nullSequence();
|
|
603
|
+
++this.rowsNull;
|
|
604
|
+
}
|
|
605
|
+
else {
|
|
606
|
+
for (let jPos = 0; jPos < this.Length; jPos++) {
|
|
607
|
+
const pmInfo = this.positions[jPos].freq;
|
|
608
|
+
const m = s[this.startPosition + jPos] || '-';
|
|
609
|
+
if (!(m in pmInfo))
|
|
610
|
+
pmInfo[m] = new PositionMonomerInfo();
|
|
611
|
+
pmInfo[m].count++;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
//#region Polish freq counts
|
|
616
|
+
for (let jPos = 0; jPos < this.Length; jPos++) {
|
|
617
|
+
// delete this.positions[jPos].freq['-'];
|
|
618
|
+
this.positions[jPos].rowCount = 0;
|
|
619
|
+
for (const m in this.positions[jPos].freq)
|
|
620
|
+
this.positions[jPos].rowCount += this.positions[jPos].freq[m].count;
|
|
621
|
+
}
|
|
622
|
+
//#endregion
|
|
623
|
+
const maxHeight = this.canvas.height - this.axisHeight;
|
|
624
|
+
// console.debug(`WebLogo._calculate() maxHeight=${maxHeight}.`);
|
|
625
|
+
//#region Calculate screen
|
|
626
|
+
for (let jPos = 0; jPos < this.Length; jPos++) {
|
|
627
|
+
const freq = this.positions[jPos].freq;
|
|
628
|
+
const rowCount = this.positions[jPos].rowCount;
|
|
629
|
+
let y = this.axisHeight;
|
|
630
|
+
const entries = Object.entries(freq).sort((a, b) => {
|
|
631
|
+
if (a[0] !== '-' && b[0] !== '-')
|
|
632
|
+
return b[1].count - a[1].count;
|
|
633
|
+
else if (a[0] === '-' && b[0] === '-')
|
|
634
|
+
return 0;
|
|
635
|
+
else if (a[0] === '-')
|
|
636
|
+
return -1;
|
|
637
|
+
else /* (b[0] === '-') */
|
|
638
|
+
return +1;
|
|
639
|
+
});
|
|
640
|
+
for (const entry of entries) {
|
|
641
|
+
const pmInfo = entry[1];
|
|
642
|
+
// const m: string = entry[0];
|
|
643
|
+
const h = maxHeight * pmInfo.count / rowCount;
|
|
644
|
+
pmInfo.bounds = new datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.Rect(jPos * this.positionWidth, y, this.positionWidth, h);
|
|
645
|
+
y += h;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
//#endregion
|
|
649
|
+
}
|
|
650
|
+
// reflect changes made to filter/selection
|
|
651
|
+
render(recalc = true) {
|
|
652
|
+
var _a;
|
|
653
|
+
if (this.msgHost) {
|
|
654
|
+
if (this.seqCol && !this.cp) {
|
|
655
|
+
this.msgHost.innerText = `Unknown palette (column semType: '${this.seqCol.semType}').`;
|
|
656
|
+
this.msgHost.style.display = '';
|
|
657
|
+
}
|
|
658
|
+
else {
|
|
659
|
+
this.msgHost.style.display = 'none';
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
if (!this.canvas || !this.seqCol || !this.dataFrame || !this.cp ||
|
|
663
|
+
this.startPosition === -1 || this.endPosition === -1)
|
|
664
|
+
return;
|
|
665
|
+
const g = this.canvas.getContext('2d');
|
|
666
|
+
if (!g)
|
|
667
|
+
return;
|
|
668
|
+
if (recalc)
|
|
669
|
+
this._calculate();
|
|
670
|
+
// let rowCount = this.rowsMasked;
|
|
671
|
+
// if (!this.considerNullSequences)
|
|
672
|
+
// rowCount -= this.rowsNull;
|
|
673
|
+
g.resetTransform();
|
|
674
|
+
g.fillStyle = 'white';
|
|
675
|
+
g.fillRect(0, 0, this.canvas.width, this.canvas.height);
|
|
676
|
+
g.textBaseline = this.textBaseline;
|
|
677
|
+
//#region Plot positionNames
|
|
678
|
+
g.resetTransform();
|
|
679
|
+
g.fillStyle = 'black';
|
|
680
|
+
g.textAlign = 'center';
|
|
681
|
+
g.font = '10px Roboto, Roboto Local, sans-serif';
|
|
682
|
+
const posNameMaxWidth = Math.max(...this.positions.map((pos) => g.measureText(pos.name).width));
|
|
683
|
+
const hScale = posNameMaxWidth < (this.positionWidth - 2) ? 1 : (this.positionWidth - 2) / posNameMaxWidth;
|
|
684
|
+
for (let jPos = 0; jPos < this.Length; jPos++) {
|
|
685
|
+
const pos = this.positions[jPos];
|
|
686
|
+
g.resetTransform();
|
|
687
|
+
g.setTransform(hScale, 0, 0, 1, jPos * this.positionWidth + this.positionWidth / 2, 0);
|
|
688
|
+
g.fillText(pos.name, 0, 0);
|
|
689
|
+
}
|
|
690
|
+
//#endregion Plot positionNames
|
|
691
|
+
for (let jPos = 0; jPos < this.Length; jPos++) {
|
|
692
|
+
for (const [monomer, pmInfo] of Object.entries(this.positions[jPos].freq)) {
|
|
693
|
+
if (monomer !== '-') {
|
|
694
|
+
const b = pmInfo.bounds;
|
|
695
|
+
const fontStyle = '16px Roboto, Roboto Local, sans-serif';
|
|
696
|
+
// Hacks to scale uppercase characters to target rectangle
|
|
697
|
+
const uppercaseLetterAscent = 0.25;
|
|
698
|
+
const uppercaseLetterHeight = 12.2;
|
|
699
|
+
g.resetTransform();
|
|
700
|
+
g.strokeStyle = 'lightgray';
|
|
701
|
+
g.lineWidth = 1;
|
|
702
|
+
g.rect(b.left, b.top, b.width, b.height);
|
|
703
|
+
g.fillStyle = (_a = this.cp[monomer]) !== null && _a !== void 0 ? _a : this.cp['other'];
|
|
704
|
+
g.textAlign = 'left';
|
|
705
|
+
g.font = fontStyle;
|
|
706
|
+
//g.fillRect(b.left, b.top, b.width, b.height);
|
|
707
|
+
const mTm = g.measureText(monomer);
|
|
708
|
+
// if (mM.actualBoundingBoxAscent != 0)
|
|
709
|
+
// console.debug(`m: ${m}, mM.actualBoundingBoxAscent: ${mM.actualBoundingBoxAscent}`);
|
|
710
|
+
g.setTransform(b.width / mTm.width, 0, 0, b.height / uppercaseLetterHeight, b.left, b.top);
|
|
711
|
+
g.fillText(monomer, 0, -uppercaseLetterAscent);
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
calcSize() {
|
|
717
|
+
if (!this.canvas || !this.host)
|
|
718
|
+
return;
|
|
719
|
+
const width = this.Length * this.positionWidth;
|
|
720
|
+
this.canvas.width = width;
|
|
721
|
+
this.canvas.style.width = `${width}px`;
|
|
722
|
+
const height = Math.min(this.maxHeight, Math.max(this.minHeight, this.root.clientHeight));
|
|
723
|
+
// const canvasHeight: number = width > this.root.clientWidth ? height - 8 : height;
|
|
724
|
+
this.host.style.setProperty('height', `${height}px`);
|
|
725
|
+
const canvasHeight = this.host.clientHeight;
|
|
726
|
+
this.canvas.height = canvasHeight;
|
|
727
|
+
this.canvas.style.setProperty('height', `${canvasHeight}px`);
|
|
728
|
+
// Adjust host and root width
|
|
729
|
+
if (this.fixWidth) {
|
|
730
|
+
// full width for canvas host and root
|
|
731
|
+
this.root.style.width = this.host.style.width = `${width}px`;
|
|
732
|
+
this.root.style.height /*= this.host.style.height*/ = `${height}px`;
|
|
733
|
+
this.host.style.setProperty('overflow', 'hidden', 'important');
|
|
734
|
+
}
|
|
735
|
+
else {
|
|
736
|
+
// allow scroll canvas in root
|
|
737
|
+
this.root.style.width = this.host.style.width = '100%';
|
|
738
|
+
this.host.style.overflowX = 'auto!important';
|
|
739
|
+
this.host.style.setProperty('overflow', null);
|
|
740
|
+
this.host.style.setProperty('text-align', this.horizontalAlignment);
|
|
741
|
+
// vertical alignment
|
|
742
|
+
let hostTopMargin = 0;
|
|
743
|
+
switch (this.verticalAlignment) {
|
|
744
|
+
case 'top':
|
|
745
|
+
hostTopMargin = 0;
|
|
746
|
+
break;
|
|
747
|
+
case 'middle':
|
|
748
|
+
hostTopMargin = Math.max(0, (this.root.clientHeight - height) / 2);
|
|
749
|
+
break;
|
|
750
|
+
case 'bottom':
|
|
751
|
+
hostTopMargin = Math.max(0, this.root.clientHeight - height);
|
|
752
|
+
break;
|
|
753
|
+
}
|
|
754
|
+
this.host.style.setProperty('margin-top', `${hostTopMargin}px`, 'important');
|
|
755
|
+
if (this.root.clientHeight < height) {
|
|
756
|
+
this.host.style.setProperty('height', `${this.root.clientHeight}px`);
|
|
757
|
+
this.host.style.setProperty('overflow-y', null);
|
|
758
|
+
}
|
|
759
|
+
else {
|
|
760
|
+
this.host.style.setProperty('overflow-y', 'hidden', 'important');
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
// console.debug(
|
|
764
|
+
// `this.root.style.height = ${this.root.style.height}\n` +
|
|
765
|
+
// `this.root.clientHeight = ${this.root.clientHeight}\n` +
|
|
766
|
+
// `this.host.style.height = ${this.host.style.height}\n` +
|
|
767
|
+
// `this.host.clientHeight = ${this.host.clientHeight}\n` +
|
|
768
|
+
// '\n' +
|
|
769
|
+
// `this.canvas.height = ${this.canvas.height}\n` +
|
|
770
|
+
// `this.canvas.style.height = ${this.canvas.style.height}`);
|
|
771
|
+
}
|
|
772
|
+
/**
|
|
773
|
+
* @param {DG.Column} seqCol Column to look for a palette
|
|
774
|
+
* @param {number} minLength minimum length of sequence to detect palette (empty strings are allowed)
|
|
775
|
+
* @return {SeqPalette} Palette corresponding to the alphabet of the sequences in the column
|
|
776
|
+
*/
|
|
777
|
+
pickUpPalette(seqCol, minLength = 0) {
|
|
778
|
+
let res = null;
|
|
779
|
+
switch (seqCol.semType) {
|
|
780
|
+
case _aminoacids__WEBPACK_IMPORTED_MODULE_3__.Aminoacids.SemTypeMultipleAlignment:
|
|
781
|
+
res = _aminoacids__WEBPACK_IMPORTED_MODULE_3__.AminoacidsPalettes.GrokGroups;
|
|
782
|
+
break;
|
|
783
|
+
case _nucleotides__WEBPACK_IMPORTED_MODULE_4__.Nucleotides.SemTypeMultipleAlignment:
|
|
784
|
+
res = _nucleotides__WEBPACK_IMPORTED_MODULE_4__.NucleotidesPalettes.Chromatogram;
|
|
785
|
+
break;
|
|
786
|
+
}
|
|
787
|
+
if (res === null) {
|
|
788
|
+
// The alphabet of nucleotides is a smaller set, so we check it first.
|
|
789
|
+
const alphabet = Object.assign(Object.assign({}, _nucleotides__WEBPACK_IMPORTED_MODULE_4__.Nucleotides.Names), { '-': 'gap' });
|
|
790
|
+
res = datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.Detector.sampleCategories(seqCol, (s) => {
|
|
791
|
+
return !s || (s.length > minLength && s.split('').every((n) => n in alphabet));
|
|
792
|
+
}) ? _nucleotides__WEBPACK_IMPORTED_MODULE_4__.NucleotidesPalettes.Chromatogram : null;
|
|
793
|
+
}
|
|
794
|
+
if (res === null) {
|
|
795
|
+
// And then check for amino acids alphabet.
|
|
796
|
+
const alphabet = Object.assign(Object.assign({}, _aminoacids__WEBPACK_IMPORTED_MODULE_3__.Aminoacids.Names), { '-': 'gap' });
|
|
797
|
+
res = datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.Detector.sampleCategories(seqCol, (s) => {
|
|
798
|
+
return !s || (s.length > minLength && s.split('').every((n) => n in alphabet));
|
|
799
|
+
}) ? _aminoacids__WEBPACK_IMPORTED_MODULE_3__.AminoacidsPalettes.GrokGroups : null;
|
|
800
|
+
}
|
|
801
|
+
return res;
|
|
802
|
+
}
|
|
803
|
+
/** First try to find column with semType 'alignedSequence'.
|
|
804
|
+
* Next look for column with data alphabet corresponding to any of the known palettes.
|
|
805
|
+
* @param {DG.DataFrame} dataFrame
|
|
806
|
+
* @return {DG.Column} The column we were looking for or null
|
|
807
|
+
*/
|
|
808
|
+
pickUpSeqCol(dataFrame) {
|
|
809
|
+
let res = dataFrame.columns.toList()
|
|
810
|
+
.find((c) => c.semType == 'alignedSequence') || null;
|
|
811
|
+
if (res == null) {
|
|
812
|
+
for (const col of dataFrame.columns) {
|
|
813
|
+
const cp = this.pickUpPalette(col, 5);
|
|
814
|
+
if (cp !== null) {
|
|
815
|
+
res = col;
|
|
816
|
+
break;
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
return res;
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
WebLogo.residuesSet = 'nucleotides';
|
|
824
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWxvZ28uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3ZWItbG9nby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFJN0IsT0FBTyxFQUFDLFVBQVUsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFpQmhFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxVQUFTLEtBQWlCO0lBQ3hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQzFDLE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzRSxDQUFDLENBQUM7QUFFRixFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBUyxDQUFTLEVBQUUsQ0FBUztJQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ2hGLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxtQkFBbUI7SUFTOUI7UUFDRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxD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QUMzQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxZQUFZLENBQUMsU0FBdUI7UUFDMUMsSUFBSSxHQUFHLEdBQXFCLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2FBQ25ELElBQUksQ0FBQyxDQUFDLENBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUVsRSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDZixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUU7Z0JBQ25DLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUNmLEdBQUcsR0FBRyxHQUFHLENBQUM7b0JBQ1YsTUFBTTtpQkFDUDthQUNGO1NBQ0Y7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7O0FBN2dCYSxtQkFBVyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5cbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7U3RyaW5nRGljdGlvbmFyeX0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMnO1xuXG5pbXBvcnQge0FtaW5vYWNpZHMsIEFtaW5vYWNpZHNQYWxldHRlc30gZnJvbSAnLi4vYW1pbm9hY2lkcyc7XG5pbXBvcnQge051Y2xlb3RpZGVzLCBOdWNsZW90aWRlc1BhbGV0dGVzfSBmcm9tICcuLi9udWNsZW90aWRlcyc7XG5pbXBvcnQge1NlcVBhbGV0dGV9IGZyb20gJy4uL3NlcS1wYWxldHRlcyc7XG5cbi8vIFVzaW5nIGNvbG9yIHNjaGVtZXMgZnJvbSBjaGVtLXBhbGV0dGVcblxuZGVjbGFyZSBtb2R1bGUgJ2RhdGFncm9rLWFwaS9zcmMvZ3JpZCcge1xuICBpbnRlcmZhY2UgUmVjdCB7XG4gICAgY29udGFpbnMoeDogbnVtYmVyLCB5OiBudW1iZXIpOiBib29sZWFuO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxDYW52YXNFbGVtZW50IHtcbiAgICBnZXRDdXJzb3JQb3NpdGlvbihldmVudDogTW91c2VFdmVudCk6IERHLlBvaW50O1xuICB9XG59XG5cbkhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5nZXRDdXJzb3JQb3NpdGlvbiA9IGZ1bmN0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogREcuUG9pbnQge1xuICBjb25zdCByZWN0ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgcmV0dXJuIG5ldyBERy5Qb2ludChldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0LCBldmVudC5jbGllbnRZIC0gcmVjdC50b3ApO1xufTtcblxuREcuUmVjdC5wcm90b3R5cGUuY29udGFpbnMgPSBmdW5jdGlvbih4OiBudW1iZXIsIHk6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gdGhpcy5sZWZ0IDw9IHggJiYgeCA8PSB0aGlzLnJpZ2h0ICYmIHRoaXMudG9wIDw9IHkgJiYgeSA8PSB0aGlzLmJvdHRvbTtcbn07XG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvbk1vbm9tZXJJbmZvIHtcbiAgLyoqIFNlcXVlbmNlcyBjb3VudCB3aXRoIG1vbm9tZXIgaW4gcG9zaXRpb25cbiAgICovXG4gIGNvdW50OiBudW1iZXI7XG5cbiAgLyoqIFJlbWVtYmVyIHNjcmVlbiBjb29yZHMgcmVjdFxuICAgKi9cbiAgYm91bmRzOiBERy5SZWN0O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY291bnQgPSAwO1xuICAgIHRoaXMuYm91bmRzID0gbmV3IERHLlJlY3QoMCwgMCwgMCwgMCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uSW5mbyB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIGZyZXE6IHsgW206IHN0cmluZ106IFBvc2l0aW9uTW9ub21lckluZm8gfTtcbiAgcm93Q291bnQ6IG51bWJlcjtcblxuICAvKiogZnJlcSA9IHt9LCByb3dDb3VudCA9IDBcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBwb3NpdGlvbiAoJzExMUEnLCAnMTExLjEnLCBldGMpXG4gICAqL1xuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuZnJlcSA9IHt9O1xuICAgIHRoaXMucm93Q291bnQgPSAwO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXZWJMb2dvIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICBwdWJsaWMgc3RhdGljIHJlc2lkdWVzU2V0ID0gJ251Y2xlb3RpZGVzJztcblxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gcHJpdmF0ZSByZWFkb25seSBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUgPSBDb2xvclNjaGVtZXNbTnVjbGVvdGlkZXNXZWJMb2dvLnJlc2lkdWVzU2V0XTtcbiAgcHJvdGVjdGVkIGNwOiBTZXFQYWxldHRlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBob3N0PzogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgbXNnSG9zdD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGNhbnZhcz86IEhUTUxDYW52YXNFbGVtZW50O1xuICBwcml2YXRlIHNsaWRlcj86IERHLlJhbmdlU2xpZGVyO1xuICBwcml2YXRlIHRleHRCYXNlbGluZTogQ2FudmFzVGV4dEJhc2VsaW5lO1xuXG4gIHByaXZhdGUgYXhpc0hlaWdodDogbnVtYmVyID0gMTI7XG5cbiAgcHJpdmF0ZSBzZXFDb2w6IERHLkNvbHVtbiB8IG51bGwgPSBudWxsO1xuICAvLyBwcml2YXRlIG1heExlbmd0aDogbnVtYmVyID0gMTAwO1xuICBwcml2YXRlIHBvc2l0aW9uczogUG9zaXRpb25JbmZvW10gPSBbXTtcblxuICBwcml2YXRlIHJvd3NNYXNrZWQ6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgcm93c051bGw6IG51bWJlciA9IDA7XG5cbiAgLy8gVmlld2VyJ3MgcHJvcGVydGllcyAobGlrZWx5IHRoZXkgc2hvdWxkIGJlIHB1YmxpYyBzbyB0aGF0IHRoZXkgY2FuIGJlIHNldCBvdXRzaWRlKVxuICBwdWJsaWMgcG9zaXRpb25XaWR0aDogbnVtYmVyO1xuICBwdWJsaWMgbWluSGVpZ2h0OiBudW1iZXI7XG4gIHB1YmxpYyBtYXhIZWlnaHQ6IG51bWJlcjtcbiAgcHVibGljIGNvbnNpZGVyTnVsbFNlcXVlbmNlczogYm9vbGVhbjtcbiAgcHVibGljIHNlcXVlbmNlQ29sdW1uTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgcHVibGljIHN0YXJ0UG9zaXRpb25OYW1lOiBzdHJpbmcgfCBudWxsO1xuICBwdWJsaWMgZW5kUG9zaXRpb25OYW1lOiBzdHJpbmcgfCBudWxsO1xuICBwdWJsaWMgZml4V2lkdGg6IGJvb2xlYW47XG4gIHB1YmxpYyB2ZXJ0aWNhbEFsaWdubWVudDogc3RyaW5nIHwgbnVsbDtcbiAgcHVibGljIGhvcml6b250YWxBbGlnbm1lbnQ6IHN0cmluZyB8IG51bGw7XG5cbiAgcHJpdmF0ZSBwb3NpdGlvbk5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgc3RhcnRQb3NpdGlvbjogbnVtYmVyID0gLTE7XG5cbiAgcHJpdmF0ZSBlbmRQb3NpdGlvbjogbnVtYmVyID0gLTE7XG5cbiAgLyoqIEZvciBzdGFydFBvc2l0aW9uIGVxdWFscyB0byBlbmRQb3NpdGlvbiBMZW5ndGggaXMgMSAqL1xuICBwcml2YXRlIGdldCBMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydFBvc2l0aW9uIDw9IHRoaXMuZW5kUG9zaXRpb24gPyB0aGlzLmVuZFBvc2l0aW9uIC0gdGhpcy5zdGFydFBvc2l0aW9uICsgMSA6IDA7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy50ZXh0QmFzZWxpbmUgPSAndG9wJztcblxuICAgIHRoaXMucG9zaXRpb25XaWR0aCA9IHRoaXMuZmxvYXQoJ3Bvc2l0aW9uV2lkdGgnLCAxNi8qLFxuICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogNCwgbWF4OiA2NCwgcG9zdGZpeDogJ3B4J30qLyk7XG4gICAgdGhpcy5taW5IZWlnaHQgPSB0aGlzLmZsb2F0KCdtaW5IZWlnaHQnLCA1MC8qLFxuICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogMjUsIG1heDogMjUwLCBwb3N0Zml4OiAncHgnfSovKTtcbiAgICB0aGlzLm1heEhlaWdodCA9IHRoaXMuZmxvYXQoJ21heEhlaWdodCcsIDEwMC8qLFxuICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogMjUsIG1heDogNTAwLCBwb3N0Zml4OiAncHgnfSovKTtcblxuICAgIHRoaXMuY29uc2lkZXJOdWxsU2VxdWVuY2VzID0gdGhpcy5ib29sKCdjb25zaWRlck51bGxTZXF1ZW5jZXMnLCBmYWxzZSk7XG4gICAgdGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUgPSB0aGlzLnN0cmluZygnc2VxdWVuY2VDb2x1bW5OYW1lJywgbnVsbCk7XG5cbiAgICB0aGlzLnN0YXJ0UG9zaXRpb25OYW1lID0gdGhpcy5zdHJpbmcoJ3N0YXJ0UG9zaXRpb25OYW1lJywgbnVsbCk7XG4gICAgdGhpcy5lbmRQb3NpdGlvbk5hbWUgPSB0aGlzLnN0cmluZygnZW5kUG9zaXRpb25OYW1lJywgbnVsbCk7XG5cbiAgICB0aGlzLmZpeFdpZHRoID0gdGhpcy5ib29sKCdmaXhXaWR0aCcsIGZhbHNlKTtcblxuICAgIHRoaXMudmVydGljYWxBbGlnbm1lbnQgPSB0aGlzLnN0cmluZygndmVydGljYWxBbGlnbm1lbnQnLCAnbWlkZGxlJyxcbiAgICAgIHtjaG9pY2VzOiBbJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJ119KTtcbiAgICB0aGlzLmhvcml6b250YWxBbGlnbm1lbnQgPSB0aGlzLnN0cmluZygnaG9yaXpvbnRhbEFsaWdubWVudCcsICdjZW50ZXInLFxuICAgICAge2Nob2ljZXM6IFsnbGVmdCcsICdjZW50ZXInLCAncmlnaHQnXX0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKVxuICAgICAgYWxlcnQoJ1dlYkxvZ28gc2Vjb25kIGluaXRpYWxpemF0aW9uIScpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5oZWxwVXJsID0gJy9oZWxwL3Zpc3VhbGl6ZS92aWV3ZXJzL3dlYi1sb2dvLm1kJztcblxuICAgIHRoaXMubXNnSG9zdCA9IHVpLmRpdignTm8gbWVzc2FnZScpO1xuICAgIHRoaXMubXNnSG9zdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG4gICAgdGhpcy5jYW52YXMgPSB1aS5jYW52YXMoKTtcbiAgICB0aGlzLmNhbnZhcy5zdHlsZS53aWR0aCA9ICcxMDAlJztcblxuICAgIHRoaXMuaG9zdCA9IHVpLmRpdihbdGhpcy5tc2dIb3N0LCB0aGlzLmNhbnZhc10pO1xuXG4gICAgLy8gdGhpcy5zbGlkZXIgPSB1aS5yYW5nZVNsaWRlcigwLCAyMCwgMiwgNSk7XG4gICAgLy8gdGhpcy5zbGlkZXIucm9vdC5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAvLyB0aGlzLnNsaWRlci5yb290LnN0eWxlLmhlaWdodCA9ICcxMnB4JztcblxuICAgIGNvbnN0IGdldE1vbm9tZXIgPSAocDogREcuUG9pbnQpOiBbbnVtYmVyLCBzdHJpbmcgfCBudWxsLCBQb3NpdGlvbk1vbm9tZXJJbmZvIHwgbnVsbF0gPT4ge1xuICAgICAgY29uc3QgalBvcyA9IE1hdGguZmxvb3IocC54IC8gdGhpcy5wb3NpdGlvbldpZHRoKTtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbnNbalBvc107XG5cbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gdm9pZCAwKVxuICAgICAgICByZXR1cm4gW2pQb3MsIG51bGwsIG51bGxdO1xuXG4gICAgICBjb25zdCBtb25vbWVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBPYmplY3Qua2V5cyhwb3NpdGlvbi5mcmVxKVxuICAgICAgICAuZmluZCgobSkgPT4gcG9zaXRpb24uZnJlcVttXS5ib3VuZHMuY29udGFpbnMocC54LCBwLnkpKTtcbiAgICAgIGlmIChtb25vbWVyID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBbalBvcywgbnVsbCwgbnVsbF07XG5cbiAgICAgIHJldHVybiBbalBvcywgbW9ub21lciwgcG9zaXRpb24uZnJlcVttb25vbWVyXV07XG4gICAgfTtcblxuICAgIHRoaXMuY2FudmFzLm9ubW91c2VvdmVyID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcblxuICAgIH07XG5cbiAgICB0aGlzLnN1YnMucHVzaChyeGpzLmZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmNhbnZhcywgJ21vdXNlbW92ZScpLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmNhbnZhcylcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgICBjb25zdCBhcmdzID0gZSBhcyBNb3VzZUV2ZW50O1xuICAgICAgY29uc3QgW2pQb3MsIG1vbm9tZXJdID0gZ2V0TW9ub21lcih0aGlzLmNhbnZhcy5nZXRDdXJzb3JQb3NpdGlvbihhcmdzKSk7XG5cbiAgICAgIGlmICh0aGlzLmRhdGFGcmFtZSAmJiB0aGlzLnNlcUNvbCAmJiBtb25vbWVyKSB7XG4gICAgICAgIHVpLnRvb2x0aXAuc2hvd1Jvd0dyb3VwKHRoaXMuZGF0YUZyYW1lLCAoaVJvdykgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlcSA9IHRoaXMuc2VxQ29sIS5nZXQoaVJvdyk7XG4gICAgICAgICAgY29uc3QgbVNlcSA9IHNlcSA/IHNlcVt0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXSA6IG51bGw7XG4gICAgICAgICAgcmV0dXJuIG1TZXEgPT09IG1vbm9tZXI7XG4gICAgICAgIH0sIGFyZ3MueCArIDE2LCBhcmdzLnkgKyAxNik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1aS50b29sdGlwLmhpZGUoKTtcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICB0aGlzLnN1YnMucHVzaChyeGpzLmZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmNhbnZhcywgJ21vdXNlZG93bicpLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCBlLmJ1dHRvbiAhPSAwKVxuICAgICAgICByZXR1cm47XG5cbiAgICAgIGNvbnN0IGFyZ3MgPSBlIGFzIE1vdXNlRXZlbnQ7XG4gICAgICBjb25zdCBbalBvcywgbW9ub21lcl0gPSBnZXRNb25vbWVyKHRoaXMuY2FudmFzLmdldEN1cnNvclBvc2l0aW9uKGFyZ3MpKTtcblxuICAgICAgLy8gcHJldmVudHMgZGVzZWxlY3QgYWxsIHJvd3MgaWYgd2UgbWlzcyBtb25vbWVyIGJvdW5kc1xuICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIG1vbm9tZXIpIHtcbiAgICAgICAgdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLmluaXQoKGlSb3cpID0+IHtcbiAgICAgICAgICBjb25zdCBzZXEgPSB0aGlzLnNlcUNvbCEuZ2V0KGlSb3cpO1xuICAgICAgICAgIGNvbnN0IG1TZXEgPSBzZXEgPyBzZXFbdGhpcy5zdGFydFBvc2l0aW9uICsgalBvc10gOiBudWxsO1xuICAgICAgICAgIHJldHVybiBtU2VxID09PSBtb25vbWVyO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICB0aGlzLnN1YnMucHVzaCh1aS5vblNpemVDaGFuZ2VkKHRoaXMucm9vdCkuc3Vic2NyaWJlKHRoaXMucm9vdE9uU2l6ZUNoYW5nZWQuYmluZCh0aGlzKSkpO1xuXG4gICAgdGhpcy5yb290LmFwcGVuZCh0aGlzLmhvc3QpO1xuICAgIC8vIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLnNsaWRlci5yb290KTtcblxuICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICB9XG5cbiAgcm9vdE9uU2l6ZUNoYW5nZWQoYXJnczogYW55KSB7XG4gICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG5cbiAgICAvLyBjb25zb2xlLmRlYnVnKGBXZWJMb2dvLm9uUm9vdFNpemVDaGFuZ2VkKCkgYCArXG4gICAgLy8gICBgcm9vdC53aWR0aD0ke3RoaXMucm9vdC5jbGllbnRXaWR0aH0sIHJvb3QuaGVpZ2h0PSR7dGhpcy5yb290LmNsaWVudEhlaWdodH0sIGAgK1xuICAgIC8vICAgYGNhbnZhcy53aWR0aD0ke3RoaXMuY2FudmFzLndpZHRofSwgY2FudmFzLmhlaWdodD0ke3RoaXMuY2FudmFzLmhlaWdodH0gLmApO1xuICB9XG5cbiAgLyoqIEFzc2lnbnMge0BsaW5rIHNlcUNvbH0gYW5kIHtAbGluayBjcH0gYmFzZWQgb24ge0BsaW5rIHNlcXVlbmNlQ29sdW1uTmFtZX0gYW5kIGNhbGxzIHtAbGluayByZW5kZXJ9KCkuXG4gICAqL1xuICB1cGRhdGVTZXFDb2woKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YUZyYW1lKSB7XG4gICAgICB0aGlzLnNlcUNvbCA9IHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lID8gdGhpcy5kYXRhRnJhbWUuY29sKHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lKSA6IG51bGw7XG4gICAgICBpZiAodGhpcy5zZXFDb2wgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnNlcUNvbCA9IHRoaXMucGlja1VwU2VxQ29sKHRoaXMuZGF0YUZyYW1lKTtcbiAgICAgICAgdGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUgPSB0aGlzLnNlcUNvbCA/IHRoaXMuc2VxQ29sLm5hbWUgOiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuc2VxQ29sKSB7XG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IE1hdGgubWF4KC4uLnRoaXMuc2VxQ29sLmNhdGVnb3JpZXMubWFwKChzKSA9PiBzLmxlbmd0aCkpO1xuXG4gICAgICAgIC8vIEdldCBwb3NpdGlvbiBuYW1lcyBmcm9tIGRhdGEgY29sdW1uIHRhZyAncG9zaXRpb25OYW1lcydcbiAgICAgICAgY29uc3QgcG9zaXRpb25OYW1lc1R4dCA9IHRoaXMuc2VxQ29sLmdldFRhZygncG9zaXRpb25OYW1lcycpO1xuICAgICAgICAvLyBGYWxsYmFjayBpZiAncG9zaXRpb25OYW1lcycgdGFnIGlzIG5vdCBwcm92aWRlZFxuICAgICAgICB0aGlzLnBvc2l0aW9uTmFtZXMgPSBwb3NpdGlvbk5hbWVzVHh0ID8gcG9zaXRpb25OYW1lc1R4dC5zcGxpdCgnLCAnKS5tYXAoKG4pID0+IG4udHJpbSgpKSA6XG4gICAgICAgICAgWy4uLkFycmF5KG1heExlbmd0aCkua2V5cygpXS5tYXAoKGpQb3MpID0+IGAke2pQb3MgKyAxfWApO1xuXG4gICAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IHRoaXMuc3RhcnRQb3NpdGlvbk5hbWUgJiYgdGhpcy5wb3NpdGlvbk5hbWVzID9cbiAgICAgICAgICB0aGlzLnBvc2l0aW9uTmFtZXMuaW5kZXhPZih0aGlzLnN0YXJ0UG9zaXRpb25OYW1lKSA6IDA7XG4gICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSB0aGlzLmVuZFBvc2l0aW9uTmFtZSAmJiB0aGlzLnBvc2l0aW9uTmFtZXMgP1xuICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmRleE9mKHRoaXMuZW5kUG9zaXRpb25OYW1lKSA6IChtYXhMZW5ndGggLSAxKTtcblxuICAgICAgICB0aGlzLmNwID0gdGhpcy5waWNrVXBQYWxldHRlKHRoaXMuc2VxQ29sKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3AgPSBudWxsO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID0gLTE7XG4gICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIG9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5OiBERy5Qcm9wZXJ0eSk6IHZvaWQge1xuICAgIC8vIGNvbnNvbGUuZGVidWcoYFdlYkxvZ28ub25Qcm9wZXJ0eUNoYW5nZWQoICR7cHJvcGVydHkubmFtZX0gPSAnJyB9KWApO1xuICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5KTtcblxuICAgIHN3aXRjaCAocHJvcGVydHkubmFtZSkge1xuICAgIGNhc2UgJ2NvbnNpZGVyTnVsbFNlcXVlbmNlcyc6XG4gICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3NlcXVlbmNlQ29sdW1uTmFtZSc6XG4gICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRQb3NpdGlvbk5hbWUnOlxuICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2VuZFBvc2l0aW9uTmFtZSc6XG4gICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncG9zaXRpb25XaWR0aCc6XG4gICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ21pbkhlaWdodCc6XG4gICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ21heEhlaWdodCc6XG4gICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2ZpeFdpZHRoJzpcbiAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndmVydGljYWxBbGlnbm1lbnQnOlxuICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdob3Jpem9udGFsQWxpZ25tZW50JzpcbiAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25UYWJsZUF0dGFjaGVkKCkge1xuICAgIC8vIGNvbnNvbGUuZGVidWcoYFdlYkxvZ28ub25UYWJsZUF0dGFjaGVkKCBkYXRhRnJhbWUgPSAke3RoaXMuZGF0YUZyYW1lID8gJ2RhdGEnIDogJ251bGwnfSApYCk7XG4gICAgdGhpcy51cGRhdGVTZXFDb2woKTtcblxuICAgIGlmICh0aGlzLmRhdGFGcmFtZSAhPT0gdm9pZCAwKSB7XG4gICAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24ub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4gdGhpcy5yZW5kZXIoKSkpO1xuICAgICAgdGhpcy5zdWJzLnB1c2godGhpcy5kYXRhRnJhbWUuZmlsdGVyLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKF8pID0+IHRoaXMucmVuZGVyKCkpKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfbnVsbFNlcXVlbmNlKGZpbGxlclJlc2lkdWUgPSAnWCcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvbnNpZGVyTnVsbFNlcXVlbmNlcylcbiAgICAgIHJldHVybiBuZXcgQXJyYXkodGhpcy5MZW5ndGgpLmZpbGwoZmlsbGVyUmVzaWR1ZSkuam9pbignJyk7XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2NhbGN1bGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuY2FudmFzIHx8ICF0aGlzLmhvc3QgfHwgIXRoaXMuc2VxQ29sIHx8ICF0aGlzLmRhdGFGcmFtZSB8fFxuICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID09PSAtMSB8fCB0aGlzLmVuZFBvc2l0aW9uID09PSAtMSlcbiAgICAgIHJldHVybjtcblxuICAgIHRoaXMuY2FsY1NpemUoKTtcblxuICAgIHRoaXMucG9zaXRpb25zID0gbmV3IEFycmF5KHRoaXMuTGVuZ3RoKTtcbiAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgIGNvbnN0IHBvc05hbWU6IHN0cmluZyA9IHRoaXMucG9zaXRpb25OYW1lc1t0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXTtcbiAgICAgIHRoaXMucG9zaXRpb25zW2pQb3NdID0gbmV3IFBvc2l0aW9uSW5mbyhwb3NOYW1lKTtcbiAgICB9XG5cbiAgICAvLyAyMDIyLTA1LTA1IGFza2Fsa2luIGluc3RydWN0ZWQgdG8gc2hvdyBXZWJMb2dvIGJhc2VkIG9uIGZpbHRlciAobm90IHNlbGVjdGlvbilcbiAgICBjb25zdCBpbmRpY2VzID0gdGhpcy5kYXRhRnJhbWUuZmlsdGVyLmdldFNlbGVjdGVkSW5kZXhlcygpO1xuICAgIC8vIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24udHJ1ZUNvdW50ID4gMCA/IHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5nZXRTZWxlY3RlZEluZGV4ZXMoKSA6XG4gICAgLy8gICB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG5cbiAgICB0aGlzLnJvd3NNYXNrZWQgPSBpbmRpY2VzLmxlbmd0aDtcbiAgICB0aGlzLnJvd3NOdWxsID0gMDtcblxuICAgIGZvciAoY29uc3QgaSBvZiBpbmRpY2VzKSB7XG4gICAgICBsZXQgczogc3RyaW5nID0gPHN0cmluZz4odGhpcy5zZXFDb2wuZ2V0KGkpKTtcblxuICAgICAgaWYgKCFzKSB7XG4gICAgICAgIHMgPSB0aGlzLl9udWxsU2VxdWVuY2UoKTtcbiAgICAgICAgKyt0aGlzLnJvd3NOdWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgY29uc3QgcG1JbmZvID0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcTtcbiAgICAgICAgICBjb25zdCBtOiBzdHJpbmcgPSBzW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIHx8ICctJztcbiAgICAgICAgICBpZiAoIShtIGluIHBtSW5mbykpXG4gICAgICAgICAgICBwbUluZm9bbV0gPSBuZXcgUG9zaXRpb25Nb25vbWVySW5mbygpO1xuXG4gICAgICAgICAgcG1JbmZvW21dLmNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyNyZWdpb24gUG9saXNoIGZyZXEgY291bnRzXG4gICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAvLyBkZWxldGUgdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVsnLSddO1xuXG4gICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudCA9IDA7XG4gICAgICBmb3IgKGNvbnN0IG0gaW4gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSlcbiAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgKz0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVttXS5jb3VudDtcbiAgICB9XG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICBjb25zdCBtYXhIZWlnaHQgPSB0aGlzLmNhbnZhcy5oZWlnaHQgLSB0aGlzLmF4aXNIZWlnaHQ7XG4gICAgLy8gY29uc29sZS5kZWJ1ZyhgV2ViTG9nby5fY2FsY3VsYXRlKCkgbWF4SGVpZ2h0PSR7bWF4SGVpZ2h0fS5gKTtcblxuICAgIC8vI3JlZ2lvbiBDYWxjdWxhdGUgc2NyZWVuXG4gICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICBjb25zdCBmcmVxOiB7IFtjOiBzdHJpbmddOiBQb3NpdGlvbk1vbm9tZXJJbmZvIH0gPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxO1xuICAgICAgY29uc3Qgcm93Q291bnQgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudDtcblxuICAgICAgbGV0IHk6IG51bWJlciA9IHRoaXMuYXhpc0hlaWdodDtcblxuICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGZyZXEpLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGFbMF0gIT09ICctJyAmJiBiWzBdICE9PSAnLScpXG4gICAgICAgICAgcmV0dXJuIGJbMV0uY291bnQgLSBhWzFdLmNvdW50O1xuICAgICAgICBlbHNlIGlmIChhWzBdID09PSAnLScgJiYgYlswXSA9PT0gJy0nKVxuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICBlbHNlIGlmIChhWzBdID09PSAnLScpXG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICBlbHNlIC8qIChiWzBdID09PSAnLScpICovXG4gICAgICAgICAgcmV0dXJuICsxO1xuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgY29uc3QgcG1JbmZvOiBQb3NpdGlvbk1vbm9tZXJJbmZvID0gZW50cnlbMV07XG4gICAgICAgIC8vIGNvbnN0IG06IHN0cmluZyA9IGVudHJ5WzBdO1xuICAgICAgICBjb25zdCBoOiBudW1iZXIgPSBtYXhIZWlnaHQgKiBwbUluZm8uY291bnQgLyByb3dDb3VudDtcblxuICAgICAgICBwbUluZm8uYm91bmRzID0gbmV3IERHLlJlY3QoalBvcyAqIHRoaXMucG9zaXRpb25XaWR0aCwgeSwgdGhpcy5wb3NpdGlvbldpZHRoLCBoKTtcbiAgICAgICAgeSArPSBoO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyNlbmRyZWdpb25cbiAgfVxuXG4gIC8vIHJlZmxlY3QgY2hhbmdlcyBtYWRlIHRvIGZpbHRlci9zZWxlY3Rpb25cbiAgcmVuZGVyKHJlY2FsYyA9IHRydWUpIHtcbiAgICBpZiAodGhpcy5tc2dIb3N0KSB7XG4gICAgICBpZiAodGhpcy5zZXFDb2wgJiYgIXRoaXMuY3ApIHtcbiAgICAgICAgdGhpcy5tc2dIb3N0IS5pbm5lclRleHQgPSBgVW5rbm93biBwYWxldHRlIChjb2x1bW4gc2VtVHlwZTogJyR7dGhpcy5zZXFDb2wuc2VtVHlwZX0nKS5gO1xuICAgICAgICB0aGlzLm1zZ0hvc3QhLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubXNnSG9zdCEuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY2FudmFzIHx8ICF0aGlzLnNlcUNvbCB8fCAhdGhpcy5kYXRhRnJhbWUgfHwgIXRoaXMuY3AgfHxcbiAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gLTEgfHwgdGhpcy5lbmRQb3NpdGlvbiA9PT0gLTEpXG4gICAgICByZXR1cm47XG5cbiAgICBjb25zdCBnID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBpZiAoIWcpIHJldHVybjtcblxuICAgIGlmIChyZWNhbGMpXG4gICAgICB0aGlzLl9jYWxjdWxhdGUoKTtcblxuICAgIC8vIGxldCByb3dDb3VudCA9IHRoaXMucm93c01hc2tlZDtcbiAgICAvLyBpZiAoIXRoaXMuY29uc2lkZXJOdWxsU2VxdWVuY2VzKVxuICAgIC8vICAgcm93Q291bnQgLT0gdGhpcy5yb3dzTnVsbDtcblxuICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICBnLmZpbGxTdHlsZSA9ICd3aGl0ZSc7XG4gICAgZy5maWxsUmVjdCgwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KTtcbiAgICBnLnRleHRCYXNlbGluZSA9IHRoaXMudGV4dEJhc2VsaW5lO1xuXG4gICAgLy8jcmVnaW9uIFBsb3QgcG9zaXRpb25OYW1lc1xuICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICBnLmZpbGxTdHlsZSA9ICdibGFjayc7XG4gICAgZy50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICBnLmZvbnQgPSAnMTBweCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZic7XG4gICAgY29uc3QgcG9zTmFtZU1heFdpZHRoID0gTWF0aC5tYXgoLi4udGhpcy5wb3NpdGlvbnMubWFwKChwb3MpID0+IGcubWVhc3VyZVRleHQocG9zLm5hbWUpLndpZHRoKSk7XG4gICAgY29uc3QgaFNjYWxlID0gcG9zTmFtZU1heFdpZHRoIDwgKHRoaXMucG9zaXRpb25XaWR0aCAtIDIpID8gMSA6ICh0aGlzLnBvc2l0aW9uV2lkdGggLSAyKSAvIHBvc05hbWVNYXhXaWR0aDtcblxuICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgY29uc3QgcG9zOiBQb3NpdGlvbkluZm8gPSB0aGlzLnBvc2l0aW9uc1tqUG9zXTtcbiAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgIGcuc2V0VHJhbnNmb3JtKFxuICAgICAgICBoU2NhbGUsIDAsIDAsIDEsXG4gICAgICAgIGpQb3MgKiB0aGlzLnBvc2l0aW9uV2lkdGggKyB0aGlzLnBvc2l0aW9uV2lkdGggLyAyLCAwKTtcbiAgICAgIGcuZmlsbFRleHQocG9zLm5hbWUsIDAsIDApO1xuICAgIH1cbiAgICAvLyNlbmRyZWdpb24gUGxvdCBwb3NpdGlvbk5hbWVzXG5cbiAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgIGZvciAoY29uc3QgW21vbm9tZXIsIHBtSW5mb10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSkpIHtcbiAgICAgICAgaWYgKG1vbm9tZXIgIT09ICctJykge1xuICAgICAgICAgIGNvbnN0IGIgPSBwbUluZm8uYm91bmRzO1xuXG4gICAgICAgICAgY29uc3QgZm9udFN0eWxlID0gJzE2cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWYnO1xuICAgICAgICAgIC8vIEhhY2tzIHRvIHNjYWxlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHRvIHRhcmdldCByZWN0YW5nbGVcbiAgICAgICAgICBjb25zdCB1cHBlcmNhc2VMZXR0ZXJBc2NlbnQgPSAwLjI1O1xuICAgICAgICAgIGNvbnN0IHVwcGVyY2FzZUxldHRlckhlaWdodCA9IDEyLjI7XG5cbiAgICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgICAgZy5zdHJva2VTdHlsZSA9ICdsaWdodGdyYXknO1xuICAgICAgICAgIGcubGluZVdpZHRoID0gMTtcbiAgICAgICAgICBnLnJlY3QoYi5sZWZ0LCBiLnRvcCwgYi53aWR0aCwgYi5oZWlnaHQpO1xuICAgICAgICAgIGcuZmlsbFN0eWxlID0gdGhpcy5jcFttb25vbWVyXSA/PyB0aGlzLmNwWydvdGhlciddO1xuICAgICAgICAgIGcudGV4dEFsaWduID0gJ2xlZnQnO1xuICAgICAgICAgIGcuZm9udCA9IGZvbnRTdHlsZTtcbiAgICAgICAgICAvL2cuZmlsbFJlY3QoYi5sZWZ0LCBiLnRvcCwgYi53aWR0aCwgYi5oZWlnaHQpO1xuICAgICAgICAgIGNvbnN0IG1UbTogVGV4dE1ldHJpY3MgPSBnLm1lYXN1cmVUZXh0KG1vbm9tZXIpO1xuXG4gICAgICAgICAgLy8gaWYgKG1NLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50ICE9IDApXG4gICAgICAgICAgLy8gICBjb25zb2xlLmRlYnVnKGBtOiAke219LCBtTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudDogJHttTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudH1gKTtcblxuICAgICAgICAgIGcuc2V0VHJhbnNmb3JtKFxuICAgICAgICAgICAgYi53aWR0aCAvIG1UbS53aWR0aCwgMCwgMCwgYi5oZWlnaHQgLyB1cHBlcmNhc2VMZXR0ZXJIZWlnaHQsXG4gICAgICAgICAgICBiLmxlZnQsIGIudG9wKTtcbiAgICAgICAgICBnLmZpbGxUZXh0KG1vbm9tZXIsIDAsIC11cHBlcmNhc2VMZXR0ZXJBc2NlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYWxjU2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMuY2FudmFzIHx8ICF0aGlzLmhvc3QpXG4gICAgICByZXR1cm47XG5cbiAgICBjb25zdCB3aWR0aDogbnVtYmVyID0gdGhpcy5MZW5ndGggKiB0aGlzLnBvc2l0aW9uV2lkdGg7XG4gICAgdGhpcy5jYW52YXMud2lkdGggPSB3aWR0aDtcbiAgICB0aGlzLmNhbnZhcy5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcblxuICAgIGNvbnN0IGhlaWdodCA9IE1hdGgubWluKHRoaXMubWF4SGVpZ2h0LCBNYXRoLm1heCh0aGlzLm1pbkhlaWdodCwgdGhpcy5yb290LmNsaWVudEhlaWdodCkpO1xuICAgIC8vIGNvbnN0IGNhbnZhc0hlaWdodDogbnVtYmVyID0gd2lkdGggPiB0aGlzLnJvb3QuY2xpZW50V2lkdGggPyBoZWlnaHQgLSA4IDogaGVpZ2h0O1xuICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XG4gICAgY29uc3QgY2FudmFzSGVpZ2h0OiBudW1iZXIgPSB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0O1xuICAgIHRoaXMuY2FudmFzLmhlaWdodCA9IGNhbnZhc0hlaWdodDtcbiAgICB0aGlzLmNhbnZhcy5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7Y2FudmFzSGVpZ2h0fXB4YCk7XG5cbiAgICAvLyBBZGp1c3QgaG9zdCBhbmQgcm9vdCB3aWR0aFxuICAgIGlmICh0aGlzLmZpeFdpZHRoKSB7XG4gICAgICAvLyBmdWxsIHdpZHRoIGZvciBjYW52YXMgaG9zdCBhbmQgcm9vdFxuICAgICAgdGhpcy5yb290LnN0eWxlLndpZHRoID0gdGhpcy5ob3N0LnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgICAgdGhpcy5yb290LnN0eWxlLmhlaWdodCAvKj0gdGhpcy5ob3N0LnN0eWxlLmhlaWdodCovID0gYCR7aGVpZ2h0fXB4YDtcbiAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cnLCAnaGlkZGVuJywgJ2ltcG9ydGFudCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBhbGxvdyBzY3JvbGwgY2FudmFzIGluIHJvb3RcbiAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgIHRoaXMuaG9zdC5zdHlsZS5vdmVyZmxvd1ggPSAnYXV0byFpbXBvcnRhbnQnO1xuICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsIG51bGwpO1xuXG4gICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ3RleHQtYWxpZ24nLCB0aGlzLmhvcml6b250YWxBbGlnbm1lbnQpO1xuXG4gICAgICAvLyB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICAgIGxldCBob3N0VG9wTWFyZ2luID0gMDtcbiAgICAgIHN3aXRjaCAodGhpcy52ZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgaG9zdFRvcE1hcmdpbiA9IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbWlkZGxlJzpcbiAgICAgICAgaG9zdFRvcE1hcmdpbiA9IE1hdGgubWF4KDAsICh0aGlzLnJvb3QuY2xpZW50SGVpZ2h0IC0gaGVpZ2h0KSAvIDIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIGhvc3RUb3BNYXJnaW4gPSBNYXRoLm1heCgwLCB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0IC0gaGVpZ2h0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ21hcmdpbi10b3AnLCBgJHtob3N0VG9wTWFyZ2lufXB4YCwgJ2ltcG9ydGFudCcpO1xuXG4gICAgICBpZiAodGhpcy5yb290LmNsaWVudEhlaWdodCA8IGhlaWdodCkge1xuICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke3RoaXMucm9vdC5jbGllbnRIZWlnaHR9cHhgKTtcbiAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdy15JywgbnVsbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93LXknLCAnaGlkZGVuJywgJ2ltcG9ydGFudCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNvbnNvbGUuZGVidWcoXG4gICAgLy8gICBgdGhpcy5yb290LnN0eWxlLmhlaWdodCA9ICR7dGhpcy5yb290LnN0eWxlLmhlaWdodH1cXG5gICtcbiAgICAvLyAgIGB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLnJvb3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgIC8vICAgYHRoaXMuaG9zdC5zdHlsZS5oZWlnaHQgPSAke3RoaXMuaG9zdC5zdHlsZS5oZWlnaHR9XFxuYCArXG4gICAgLy8gICBgdGhpcy5ob3N0LmNsaWVudEhlaWdodCA9ICR7dGhpcy5ob3N0LmNsaWVudEhlaWdodH1cXG5gICtcbiAgICAvLyAgICdcXG4nICtcbiAgICAvLyAgIGB0aGlzLmNhbnZhcy5oZWlnaHQgICAgICAgPSAke3RoaXMuY2FudmFzLmhlaWdodH1cXG5gICtcbiAgICAvLyAgIGB0aGlzLmNhbnZhcy5zdHlsZS5oZWlnaHQgPSAke3RoaXMuY2FudmFzLnN0eWxlLmhlaWdodH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gc2VxQ29sIENvbHVtbiB0byBsb29rIGZvciBhIHBhbGV0dGVcbiAgICogQHBhcmFtIHtudW1iZXJ9ICBtaW5MZW5ndGggbWluaW11bSBsZW5ndGggb2Ygc2VxdWVuY2UgdG8gZGV0ZWN0IHBhbGV0dGUgKGVtcHR5IHN0cmluZ3MgYXJlIGFsbG93ZWQpXG4gICAqIEByZXR1cm4ge1NlcVBhbGV0dGV9IFBhbGV0dGUgY29ycmVzcG9uZGluZyB0byB0aGUgYWxwaGFiZXQgb2YgdGhlIHNlcXVlbmNlcyBpbiB0aGUgY29sdW1uXG4gICAqL1xuICBwcml2YXRlIHBpY2tVcFBhbGV0dGUoc2VxQ29sOiBERy5Db2x1bW4sIG1pbkxlbmd0aDogbnVtYmVyID0gMCk6IFNlcVBhbGV0dGUgfCBudWxsIHtcbiAgICBsZXQgcmVzOiBTZXFQYWxldHRlIHwgbnVsbCA9IG51bGw7XG4gICAgc3dpdGNoIChzZXFDb2wuc2VtVHlwZSkge1xuICAgIGNhc2UgQW1pbm9hY2lkcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQ6XG4gICAgICByZXMgPSBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTnVjbGVvdGlkZXMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50OlxuICAgICAgcmVzID0gTnVjbGVvdGlkZXNQYWxldHRlcy5DaHJvbWF0b2dyYW07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKHJlcyA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhlIGFscGhhYmV0IG9mIG51Y2xlb3RpZGVzIGlzIGEgc21hbGxlciBzZXQsIHNvIHdlIGNoZWNrIGl0IGZpcnN0LlxuICAgICAgY29uc3QgYWxwaGFiZXQgPSB7Li4uTnVjbGVvdGlkZXMuTmFtZXMsIC4uLnsnLSc6ICdnYXAnfX07XG4gICAgICByZXMgPSBERy5EZXRlY3Rvci5zYW1wbGVDYXRlZ29yaWVzKHNlcUNvbCwgKHMpID0+IHtcbiAgICAgICAgcmV0dXJuICFzIHx8IChzLmxlbmd0aCA+IG1pbkxlbmd0aCAmJiBzLnNwbGl0KCcnKS5ldmVyeSgobikgPT4gbiBpbiBhbHBoYWJldCkpO1xuICAgICAgfSkgPyBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbSA6IG51bGw7XG4gICAgfVxuICAgIGlmIChyZXMgPT09IG51bGwpIHtcbiAgICAgIC8vIEFuZCB0aGVuIGNoZWNrIGZvciBhbWlubyBhY2lkcyBhbHBoYWJldC5cbiAgICAgIGNvbnN0IGFscGhhYmV0ID0gey4uLkFtaW5vYWNpZHMuTmFtZXMsIC4uLnsnLSc6ICdnYXAnfX07XG4gICAgICByZXMgPSBERy5EZXRlY3Rvci5zYW1wbGVDYXRlZ29yaWVzKHNlcUNvbCwgKHMpID0+IHtcbiAgICAgICAgcmV0dXJuICFzIHx8IChzLmxlbmd0aCA+IG1pbkxlbmd0aCAmJiBzLnNwbGl0KCcnKS5ldmVyeSgobikgPT4gbiBpbiBhbHBoYWJldCkpO1xuICAgICAgfSkgPyBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcyA6IG51bGw7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvKiogRmlyc3QgdHJ5IHRvIGZpbmQgY29sdW1uIHdpdGggc2VtVHlwZSAnYWxpZ25lZFNlcXVlbmNlJy5cbiAgICogTmV4dCBsb29rIGZvciBjb2x1bW4gd2l0aCBkYXRhIGFscGhhYmV0IGNvcnJlc3BvbmRpbmcgdG8gYW55IG9mIHRoZSBrbm93biBwYWxldHRlcy5cbiAgICogQHBhcmFtIHtERy5EYXRhRnJhbWV9IGRhdGFGcmFtZVxuICAgKiBAcmV0dXJuIHtERy5Db2x1bW59IFRoZSBjb2x1bW4gd2Ugd2VyZSBsb29raW5nIGZvciBvciBudWxsXG4gICAqL1xuICBwcml2YXRlIHBpY2tVcFNlcUNvbChkYXRhRnJhbWU6IERHLkRhdGFGcmFtZSk6IERHLkNvbHVtbiB8IG51bGwge1xuICAgIGxldCByZXM6IERHLkNvbHVtbiB8IG51bGwgPSBkYXRhRnJhbWUuY29sdW1ucy50b0xpc3QoKVxuICAgICAgLmZpbmQoKGM6IERHLkNvbHVtbikgPT4gYy5zZW1UeXBlID09ICdhbGlnbmVkU2VxdWVuY2UnKSB8fCBudWxsO1xuXG4gICAgaWYgKHJlcyA9PSBudWxsKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbCBvZiBkYXRhRnJhbWUuY29sdW1ucykge1xuICAgICAgICBjb25zdCBjcCA9IHRoaXMucGlja1VwUGFsZXR0ZShjb2wgYXMgREcuQ29sdW1uLCA1KTtcbiAgICAgICAgaWYgKGNwICE9PSBudWxsKSB7XG4gICAgICAgICAgcmVzID0gY29sO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cbiJdfQ==
|
|
825
|
+
|
|
826
|
+
/***/ }),
|
|
827
|
+
|
|
6
828
|
/***/ "./src/seq_align.ts":
|
|
7
829
|
/*!**************************!*\
|
|
8
830
|
!*** ./src/seq_align.ts ***!
|
|
@@ -523,6 +1345,26 @@ class SequenceAlignment {
|
|
|
523
1345
|
|
|
524
1346
|
module.exports = DG;
|
|
525
1347
|
|
|
1348
|
+
/***/ }),
|
|
1349
|
+
|
|
1350
|
+
/***/ "rxjs":
|
|
1351
|
+
/*!***********************!*\
|
|
1352
|
+
!*** external "rxjs" ***!
|
|
1353
|
+
\***********************/
|
|
1354
|
+
/***/ ((module) => {
|
|
1355
|
+
|
|
1356
|
+
module.exports = rxjs;
|
|
1357
|
+
|
|
1358
|
+
/***/ }),
|
|
1359
|
+
|
|
1360
|
+
/***/ "datagrok-api/ui":
|
|
1361
|
+
/*!*********************!*\
|
|
1362
|
+
!*** external "ui" ***!
|
|
1363
|
+
\*********************/
|
|
1364
|
+
/***/ ((module) => {
|
|
1365
|
+
|
|
1366
|
+
module.exports = ui;
|
|
1367
|
+
|
|
526
1368
|
/***/ })
|
|
527
1369
|
|
|
528
1370
|
/******/ });
|
|
@@ -602,30 +1444,41 @@ var __webpack_exports__ = {};
|
|
|
602
1444
|
__webpack_require__.r(__webpack_exports__);
|
|
603
1445
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
604
1446
|
/* harmony export */ "_package": () => (/* binding */ _package),
|
|
605
|
-
/* harmony export */ "sequenceAlignment": () => (/* binding */ sequenceAlignment)
|
|
1447
|
+
/* harmony export */ "sequenceAlignment": () => (/* binding */ sequenceAlignment),
|
|
1448
|
+
/* harmony export */ "webLogoViewer": () => (/* binding */ webLogoViewer)
|
|
606
1449
|
/* harmony export */ });
|
|
607
1450
|
/* harmony import */ var datagrok_api_dg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! datagrok-api/dg */ "datagrok-api/dg");
|
|
608
1451
|
/* harmony import */ var datagrok_api_dg__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(datagrok_api_dg__WEBPACK_IMPORTED_MODULE_0__);
|
|
609
1452
|
/* harmony import */ var _seq_align__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./seq_align */ "./src/seq_align.ts");
|
|
1453
|
+
/* harmony import */ var _datagrok_libraries_bio_src_viewers_web_logo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @datagrok-libraries/bio/src/viewers/web-logo */ "./node_modules/@datagrok-libraries/bio/src/viewers/web-logo.js");
|
|
610
1454
|
|
|
611
1455
|
|
|
612
|
-
|
|
1456
|
+
const _package = new datagrok_api_dg__WEBPACK_IMPORTED_MODULE_0__.Package();
|
|
1457
|
+
|
|
613
1458
|
//name: sequenceAlignment
|
|
614
1459
|
//input: string alignType {choices: ['Local alignment', 'Global alignment']}
|
|
1460
|
+
// eslint-disable-next-line max-len
|
|
615
1461
|
//input: string alignTable {choices: ['AUTO', 'NUCLEOTIDES', 'BLOSUM45', 'BLOSUM50','BLOSUM62','BLOSUM80','BLOSUM90','PAM30','PAM70','PAM250','SCHNEIDER','TRANS']}
|
|
616
1462
|
//input: double gap
|
|
617
1463
|
//input: string seq1
|
|
618
1464
|
//input: string seq2
|
|
619
|
-
//output: object res
|
|
1465
|
+
//output: object res
|
|
620
1466
|
function sequenceAlignment(alignType, alignTable, gap, seq1, seq2) {
|
|
621
|
-
|
|
622
|
-
|
|
1467
|
+
const toAlign = new _seq_align__WEBPACK_IMPORTED_MODULE_1__.SequenceAlignment(seq1, seq2, gap, alignTable);
|
|
1468
|
+
const res = alignType == 'Local alignment' ? toAlign.smithWaterman() : toAlign.needlemanWunch();
|
|
623
1469
|
return res;
|
|
624
1470
|
}
|
|
1471
|
+
//name: WebLogo
|
|
1472
|
+
//description: WebLogo viewer
|
|
1473
|
+
//tags: viewer, panel
|
|
1474
|
+
//output: viewer result
|
|
1475
|
+
function webLogoViewer() {
|
|
1476
|
+
return new _datagrok_libraries_bio_src_viewers_web_logo__WEBPACK_IMPORTED_MODULE_2__.WebLogo();
|
|
1477
|
+
}
|
|
625
1478
|
|
|
626
1479
|
})();
|
|
627
1480
|
|
|
628
|
-
|
|
1481
|
+
bio = __webpack_exports__;
|
|
629
1482
|
/******/ })()
|
|
630
1483
|
;
|
|
631
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnQkFBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixlQUFlO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZUFBZTtBQUN2QztBQUNBLDRCQUE0QixlQUFlO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG1CQUFtQjtBQUMzQztBQUNBLDRCQUE0QixtQkFBbUI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0JBQWdCO0FBQ3hDLDRCQUE0QixnQkFBZ0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsbUJBQW1CO0FBQzNDO0FBQ0EsNEJBQTRCLG1CQUFtQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4Qyw0QkFBNEIsZ0JBQWdCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUNoZkE7Ozs7OztVQ0FBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7Ozs7O1dDdEJBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQSxpQ0FBaUMsV0FBVztXQUM1QztXQUNBOzs7OztXQ1BBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNOc0M7QUFDVTtBQUN6QyxtQkFBbUIsb0RBQVU7QUFDcEM7QUFDQSwyQkFBMkI7QUFDM0IsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCxzQkFBc0IseURBQWlCO0FBQ3ZDO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL3NlcXVlbmNlczEvLi9zcmMvc2VxX2FsaWduLnRzIiwid2VicGFjazovL3NlcXVlbmNlczEvZXh0ZXJuYWwgdmFyIFwiREdcIiIsIndlYnBhY2s6Ly9zZXF1ZW5jZXMxL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL3NlcXVlbmNlczEvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vc2VxdWVuY2VzMS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vc2VxdWVuY2VzMS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3NlcXVlbmNlczEvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9zZXF1ZW5jZXMxLy4vc3JjL3BhY2thZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgQ2VsbCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAwO1xuICAgICAgICB0aGlzLnBhcmVudEkgPSAwO1xuICAgICAgICB0aGlzLnBhcmVudEogPSAwO1xuICAgIH1cbn1cbjtcbmV4cG9ydCBjbGFzcyBBbGlnbmVkIHtcbiAgICBjb25zdHJ1Y3RvcihzZXExXywgc2VxMl8sIHNjb3JlXykge1xuICAgICAgICB0aGlzLnNlcTEgPSBzZXExXztcbiAgICAgICAgdGhpcy5zZXEyID0gc2VxMl87XG4gICAgICAgIHRoaXMuc2NvcmUgPSBzY29yZV87XG4gICAgfVxufVxuO1xuZXhwb3J0IGNsYXNzIFNlcXVlbmNlQWxpZ25tZW50IHtcbiAgICBjb25zdHJ1Y3RvcihzZXExXywgc2VxMl8sIGdhcF8sIGFsaWduR3JpZF8gPSBcIlwiKSB7XG4gICAgICAgIHRoaXMuc2VxMSA9ICcnO1xuICAgICAgICB0aGlzLnNlcTIgPSAnJztcbiAgICAgICAgdGhpcy5nYXAgPSAxO1xuICAgICAgICB0aGlzLmxlbjEgPSAwO1xuICAgICAgICB0aGlzLmxlbjIgPSAwO1xuICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICB0aGlzLmFsaWduR3JpZCA9IFtdO1xuICAgICAgICB0aGlzLnNjb3JlcyA9IFtdO1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0ge307XG4gICAgICAgIHRoaXMuQkxPU1VNNDUgPSBbWzUsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCAwLCAtMiwgLTIsIDAsIC0xLCAtMSwgMCwgLTVdLFxuICAgICAgICAgICAgWy0yLCA3LCAwLCAtMSwgLTMsIDEsIDAsIC0yLCAwLCAtMywgLTIsIDMsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTIsIC0xLCAtMiwgLTEsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDYsIDIsIC0yLCAwLCAwLCAwLCAxLCAtMiwgLTMsIDAsIC0yLCAtMiwgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDQsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAyLCA3LCAtMywgMCwgMiwgLTEsIDAsIC00LCAtMywgMCwgLTMsIC00LCAtMSwgMCwgLTEsIC00LCAtMiwgLTMsIDUsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMiwgLTMsIDEyLCAtMywgLTMsIC0zLCAtMywgLTMsIC0yLCAtMywgLTIsIC0yLCAtNCwgLTEsIC0xLCAtNSwgLTMsIC0xLCAtMiwgLTMsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA2LCAyLCAtMiwgMSwgLTIsIC0yLCAxLCAwLCAtNCwgLTEsIDAsIC0xLCAtMiwgLTEsIC0zLCAwLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtMywgMiwgNiwgLTIsIDAsIC0zLCAtMiwgMSwgLTIsIC0zLCAwLCAwLCAtMSwgLTMsIC0yLCAtMywgMSwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTEsIC0zLCAtMiwgLTIsIDcsIC0yLCAtNCwgLTMsIC0yLCAtMiwgLTMsIC0yLCAwLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAwLCAxLCAwLCAtMywgMSwgMCwgLTIsIDEwLCAtMywgLTIsIC0xLCAwLCAtMiwgLTIsIC0xLCAtMiwgLTMsIDIsIC0zLCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC00LCAtMywgLTIsIC0zLCAtNCwgLTMsIDUsIDIsIC0zLCAyLCAwLCAtMiwgLTIsIC0xLCAtMiwgMCwgMywgLTMsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTMsIC0zLCAtMiwgLTIsIC0yLCAtMywgLTIsIDIsIDUsIC0zLCAyLCAxLCAtMywgLTMsIC0xLCAtMiwgMCwgMSwgLTMsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAwLCAtMywgMSwgMSwgLTIsIC0xLCAtMywgLTMsIDUsIC0xLCAtMywgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMiwgMCwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0yLCAtMywgLTIsIDAsIC0yLCAtMiwgMCwgMiwgMiwgLTEsIDYsIDAsIC0yLCAtMiwgLTEsIC0yLCAwLCAxLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMiwgLTQsIC0yLCAtNCwgLTMsIC0zLCAtMiwgMCwgMSwgLTMsIDAsIDgsIC0zLCAtMiwgLTEsIDEsIDMsIDAsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtMSwgLTQsIC0xLCAwLCAtMiwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMywgOSwgLTEsIC0xLCAtMywgLTMsIC0zLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIDAsIC0xLCAwLCAwLCAwLCAtMSwgLTIsIC0zLCAtMSwgLTIsIC0yLCAtMSwgNCwgMiwgLTQsIC0yLCAtMSwgMCwgMCwgMCwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyLCA1LCAtMywgLTEsIDAsIDAsIC0xLCAwLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtNCwgLTQsIC01LCAtMiwgLTMsIC0yLCAtMywgLTIsIC0yLCAtMiwgLTIsIDEsIC0zLCAtNCwgLTMsIDE1LCAzLCAtMywgLTQsIC0yLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMywgMiwgMCwgMCwgLTEsIDAsIDMsIC0zLCAtMiwgLTEsIDMsIDgsIC0xLCAtMiwgLTIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTIsIC0zLCAtMywgLTEsIC0zLCAtMywgLTMsIC0zLCAzLCAxLCAtMiwgMSwgMCwgLTMsIC0xLCAwLCAtMywgLTEsIDUsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIDQsIDUsIC0yLCAwLCAxLCAtMSwgMCwgLTMsIC0zLCAwLCAtMiwgLTMsIC0yLCAwLCAwLCAtNCwgLTIsIC0zLCA0LCAyLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAxLCAtMywgNCwgNCwgLTIsIDAsIC0zLCAtMiwgMSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0yLCAtMiwgLTMsIDIsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAwLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNNTAgPSBbWzUsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTMsIC0xLCAxLCAwLCAtMywgLTIsIDAsIC0yLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgNywgLTEsIC0yLCAtNCwgMSwgMCwgLTMsIDAsIC00LCAtMywgMywgLTIsIC0zLCAtMywgLTEsIC0xLCAtMywgLTEsIC0zLCAtMSwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIDcsIDIsIC0yLCAwLCAwLCAwLCAxLCAtMywgLTQsIDAsIC0yLCAtNCwgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDQsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAyLCA4LCAtNCwgMCwgMiwgLTEsIC0xLCAtNCwgLTQsIC0xLCAtNCwgLTUsIC0xLCAwLCAtMSwgLTUsIC0zLCAtNCwgNSwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTQsIC0yLCAtNCwgMTMsIC0zLCAtMywgLTMsIC0zLCAtMiwgLTIsIC0zLCAtMiwgLTIsIC00LCAtMSwgLTEsIC01LCAtMywgLTEsIC0zLCAtMywgLTIsIC01XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgMCwgLTMsIDcsIDIsIC0yLCAxLCAtMywgLTIsIDIsIDAsIC00LCAtMSwgMCwgLTEsIC0xLCAtMSwgLTMsIDAsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDIsIC0zLCAyLCA2LCAtMywgMCwgLTQsIC0zLCAxLCAtMiwgLTMsIC0xLCAtMSwgLTEsIC0zLCAtMiwgLTMsIDEsIDUsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTMsIDAsIC0xLCAtMywgLTIsIC0zLCA4LCAtMiwgLTQsIC00LCAtMiwgLTMsIC00LCAtMiwgMCwgLTIsIC0zLCAtMywgLTQsIC0xLCAtMiwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgLTEsIC0zLCAxLCAwLCAtMiwgMTAsIC00LCAtMywgMCwgLTEsIC0xLCAtMiwgLTEsIC0yLCAtMywgMiwgLTQsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC00LCAtMywgLTQsIC0yLCAtMywgLTQsIC00LCAtNCwgNSwgMiwgLTMsIDIsIDAsIC0zLCAtMywgLTEsIC0zLCAtMSwgNCwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC00LCAtMiwgLTIsIC0zLCAtNCwgLTMsIDIsIDUsIC0zLCAzLCAxLCAtNCwgLTMsIC0xLCAtMiwgLTEsIDEsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgLTEsIC0zLCAyLCAxLCAtMiwgMCwgLTMsIC0zLCA2LCAtMiwgLTQsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMywgMCwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtNCwgLTIsIDAsIC0yLCAtMywgLTEsIDIsIDMsIC0yLCA3LCAwLCAtMywgLTIsIC0xLCAtMSwgMCwgMSwgLTMsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTQsIC01LCAtMiwgLTQsIC0zLCAtNCwgLTEsIDAsIDEsIC00LCAwLCA4LCAtNCwgLTMsIC0yLCAxLCA0LCAtMSwgLTQsIC00LCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC0xLCAtNCwgLTEsIC0xLCAtMiwgLTIsIC0zLCAtNCwgLTEsIC0zLCAtNCwgMTAsIC0xLCAtMSwgLTQsIC0zLCAtMywgLTIsIC0xLCAtMiwgLTVdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAwLCAtMSwgMCwgLTEsIDAsIC0xLCAtMywgLTMsIDAsIC0yLCAtMywgLTEsIDUsIDIsIC00LCAtMiwgLTIsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDIsIDUsIC0zLCAtMiwgMCwgMCwgLTEsIDAsIC01XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNSwgLTUsIC0xLCAtMywgLTMsIC0zLCAtMywgLTIsIC0zLCAtMSwgMSwgLTQsIC00LCAtMywgMTUsIDIsIC0zLCAtNSwgLTIsIC0zLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0zLCAyLCAtMSwgLTEsIC0yLCAwLCA0LCAtMywgLTIsIC0yLCAyLCA4LCAtMSwgLTMsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMywgLTQsIC0xLCAtMywgLTMsIC00LCAtNCwgNCwgMSwgLTMsIDEsIC0xLCAtMywgLTIsIDAsIC0zLCAtMSwgNSwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgNCwgNSwgLTMsIDAsIDEsIC0xLCAwLCAtNCwgLTQsIDAsIC0zLCAtNCwgLTIsIDAsIDAsIC01LCAtMywgLTQsIDUsIDIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDEsIC0zLCA0LCA1LCAtMiwgMCwgLTMsIC0zLCAxLCAtMSwgLTQsIC0xLCAwLCAtMSwgLTIsIC0yLCAtMywgMiwgNSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgMCwgLTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTYyID0gW1s0LCAtMSwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCAwLCAtMywgLTIsIDAsIC0yLCAtMSwgMCwgLTRdLFxuICAgICAgICAgICAgWy0xLCA1LCAwLCAtMiwgLTMsIDEsIDAsIC0yLCAwLCAtMywgLTIsIDIsIC0xLCAtMywgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMywgLTEsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIDAsIDYsIDEsIC0zLCAwLCAwLCAwLCAxLCAtMywgLTMsIDAsIC0yLCAtMywgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDMsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0yLCAxLCA2LCAtMywgMCwgMiwgLTEsIC0xLCAtMywgLTQsIC0xLCAtMywgLTMsIC0xLCAwLCAtMSwgLTQsIC0zLCAtMywgNCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC0zLCA5LCAtMywgLTQsIC0zLCAtMywgLTEsIC0xLCAtMywgLTEsIC0yLCAtMywgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMywgLTMsIC0yLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA1LCAyLCAtMiwgMCwgLTMsIC0yLCAxLCAwLCAtMywgLTEsIDAsIC0xLCAtMiwgLTEsIC0yLCAwLCAzLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtNCwgMiwgNSwgLTIsIDAsIC0zLCAtMywgMSwgLTIsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDEsIDQsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0xLCAtMywgLTIsIC0yLCA2LCAtMiwgLTQsIC00LCAtMiwgLTMsIC0zLCAtMiwgMCwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgLTEsIC0zLCAwLCAwLCAtMiwgOCwgLTMsIC0zLCAtMSwgLTIsIC0xLCAtMiwgLTEsIC0yLCAtMiwgMiwgLTMsIDAsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMywgLTMsIC0xLCAtMywgLTMsIC00LCAtMywgNCwgMiwgLTMsIDEsIDAsIC0zLCAtMiwgLTEsIC0zLCAtMSwgMywgLTMsIC0zLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTMsIC00LCAtMSwgLTIsIC0zLCAtNCwgLTMsIDIsIDQsIC0yLCAyLCAwLCAtMywgLTIsIC0xLCAtMiwgLTEsIDEsIC00LCAtMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMiwgMCwgLTEsIC0zLCAxLCAxLCAtMiwgLTEsIC0zLCAtMiwgNSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDAsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMiwgLTMsIC0xLCAwLCAtMiwgLTMsIC0yLCAxLCAyLCAtMSwgNSwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAxLCAtMywgLTEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTMsIC0yLCAtMywgLTMsIC0zLCAtMSwgMCwgMCwgLTMsIDAsIDYsIC00LCAtMiwgLTIsIDEsIDMsIC0xLCAtMywgLTMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTEsIC0zLCAtMSwgLTEsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC00LCA3LCAtMSwgLTEsIC00LCAtMywgLTIsIC0yLCAtMSwgLTIsIC00XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgMCwgLTEsIDAsIDAsIDAsIC0xLCAtMiwgLTIsIDAsIC0xLCAtMiwgLTEsIDQsIDEsIC0zLCAtMiwgLTIsIDAsIDAsIDAsIC00XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgNSwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC00XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNCwgLTIsIC0yLCAtMywgLTIsIC0yLCAtMywgLTIsIC0zLCAtMSwgMSwgLTQsIC0zLCAtMiwgMTEsIDIsIC0zLCAtNCwgLTMsIC0yLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMiwgLTMsIC0yLCAtMSwgLTIsIC0zLCAyLCAtMSwgLTEsIC0yLCAtMSwgMywgLTMsIC0yLCAtMiwgMiwgNywgLTEsIC0zLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC0zLCAtMSwgLTIsIC0yLCAtMywgLTMsIDMsIDEsIC0yLCAxLCAtMSwgLTIsIC0yLCAwLCAtMywgLTEsIDQsIC0zLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDMsIDQsIC0zLCAwLCAxLCAtMSwgMCwgLTMsIC00LCAwLCAtMywgLTMsIC0yLCAwLCAtMSwgLTQsIC0zLCAtMywgNCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMSwgLTMsIDMsIDQsIC0yLCAwLCAtMywgLTMsIDEsIC0xLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAxLCA0LCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgMCwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTgwID0gW1s3LCAtMywgLTMsIC0zLCAtMSwgLTIsIC0yLCAwLCAtMywgLTMsIC0zLCAtMSwgLTIsIC00LCAtMSwgMiwgMCwgLTUsIC00LCAtMSwgLTMsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0zLCA5LCAtMSwgLTMsIC02LCAxLCAtMSwgLTQsIDAsIC01LCAtNCwgMywgLTMsIC01LCAtMywgLTIsIC0yLCAtNSwgLTQsIC00LCAtMiwgMCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTEsIDksIDIsIC01LCAwLCAtMSwgLTEsIDEsIC02LCAtNiwgMCwgLTQsIC02LCAtNCwgMSwgMCwgLTcsIC00LCAtNSwgNSwgLTEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0zLCAyLCAxMCwgLTcsIC0xLCAyLCAtMywgLTIsIC03LCAtNywgLTIsIC02LCAtNiwgLTMsIC0xLCAtMiwgLTgsIC02LCAtNiwgNiwgMSwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTYsIC01LCAtNywgMTMsIC01LCAtNywgLTYsIC03LCAtMiwgLTMsIC02LCAtMywgLTQsIC02LCAtMiwgLTIsIC01LCAtNSwgLTIsIC02LCAtNywgLTQsIC04XSxcbiAgICAgICAgICAgIFstMiwgMSwgMCwgLTEsIC01LCA5LCAzLCAtNCwgMSwgLTUsIC00LCAyLCAtMSwgLTUsIC0zLCAtMSwgLTEsIC00LCAtMywgLTQsIC0xLCA1LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTEsIDIsIC03LCAzLCA4LCAtNCwgMCwgLTYsIC02LCAxLCAtNCwgLTYsIC0yLCAtMSwgLTIsIC02LCAtNSwgLTQsIDEsIDYsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTQsIC0xLCAtMywgLTYsIC00LCAtNCwgOSwgLTQsIC03LCAtNywgLTMsIC01LCAtNiwgLTUsIC0xLCAtMywgLTYsIC02LCAtNiwgLTIsIC00LCAtMywgLThdLFxuICAgICAgICAgICAgWy0zLCAwLCAxLCAtMiwgLTcsIDEsIDAsIC00LCAxMiwgLTYsIC01LCAtMSwgLTQsIC0yLCAtNCwgLTIsIC0zLCAtNCwgMywgLTUsIC0xLCAwLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNSwgLTYsIC03LCAtMiwgLTUsIC02LCAtNywgLTYsIDcsIDIsIC01LCAyLCAtMSwgLTUsIC00LCAtMiwgLTUsIC0zLCA0LCAtNiwgLTYsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtNiwgLTcsIC0zLCAtNCwgLTYsIC03LCAtNSwgMiwgNiwgLTQsIDMsIDAsIC01LCAtNCwgLTMsIC00LCAtMiwgMSwgLTcsIC01LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAtMiwgLTYsIDIsIDEsIC0zLCAtMSwgLTUsIC00LCA4LCAtMywgLTUsIC0yLCAtMSwgLTEsIC02LCAtNCwgLTQsIC0xLCAxLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC02LCAtMywgLTEsIC00LCAtNSwgLTQsIDIsIDMsIC0zLCA5LCAwLCAtNCwgLTMsIC0xLCAtMywgLTMsIDEsIC01LCAtMywgLTIsIC04XSxcbiAgICAgICAgICAgIFstNCwgLTUsIC02LCAtNiwgLTQsIC01LCAtNiwgLTYsIC0yLCAtMSwgMCwgLTUsIDAsIDEwLCAtNiwgLTQsIC00LCAwLCA0LCAtMiwgLTYsIC02LCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTQsIC0zLCAtNiwgLTMsIC0yLCAtNSwgLTQsIC01LCAtNSwgLTIsIC00LCAtNiwgMTIsIC0yLCAtMywgLTcsIC02LCAtNCwgLTQsIC0yLCAtMywgLThdLFxuICAgICAgICAgICAgWzIsIC0yLCAxLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0yLCAtNCwgLTQsIC0xLCAtMywgLTQsIC0yLCA3LCAyLCAtNiwgLTMsIC0zLCAwLCAtMSwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTIsIC0yLCAtMSwgLTIsIC0zLCAtMywgLTIsIC0zLCAtMSwgLTEsIC00LCAtMywgMiwgOCwgLTUsIC0zLCAwLCAtMSwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNywgLTgsIC01LCAtNCwgLTYsIC02LCAtNCwgLTUsIC00LCAtNiwgLTMsIDAsIC03LCAtNiwgLTUsIDE2LCAzLCAtNSwgLTgsIC01LCAtNSwgLThdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTQsIC02LCAtNSwgLTMsIC01LCAtNiwgMywgLTMsIC0yLCAtNCwgLTMsIDQsIC02LCAtMywgLTMsIDMsIDExLCAtMywgLTUsIC00LCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtNCwgLTUsIC02LCAtMiwgLTQsIC00LCAtNiwgLTUsIDQsIDEsIC00LCAxLCAtMiwgLTQsIC0zLCAwLCAtNSwgLTMsIDcsIC02LCAtNCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTIsIDUsIDYsIC02LCAtMSwgMSwgLTIsIC0xLCAtNiwgLTcsIC0xLCAtNSwgLTYsIC00LCAwLCAtMSwgLTgsIC01LCAtNiwgNiwgMCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMiwgMCwgLTEsIDEsIC03LCA1LCA2LCAtNCwgMCwgLTYsIC01LCAxLCAtMywgLTYsIC0yLCAtMSwgLTIsIC01LCAtNCwgLTQsIDAsIDYsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTMsIC00LCAtMiwgLTIsIC0zLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0xLCAtNSwgLTMsIC0yLCAtMywgLTEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNOTAgPSBbWzUsIC0yLCAtMiwgLTMsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMiwgLTIsIC0xLCAtMiwgLTMsIC0xLCAxLCAwLCAtNCwgLTMsIC0xLCAtMiwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTIsIDYsIC0xLCAtMywgLTUsIDEsIC0xLCAtMywgMCwgLTQsIC0zLCAyLCAtMiwgLTQsIC0zLCAtMSwgLTIsIC00LCAtMywgLTMsIC0yLCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMSwgNywgMSwgLTQsIDAsIC0xLCAtMSwgMCwgLTQsIC00LCAwLCAtMywgLTQsIC0zLCAwLCAwLCAtNSwgLTMsIC00LCA0LCAtMSwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMywgLTMsIDEsIDcsIC01LCAtMSwgMSwgLTIsIC0yLCAtNSwgLTUsIC0xLCAtNCwgLTUsIC0zLCAtMSwgLTIsIC02LCAtNCwgLTUsIDQsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC01LCAtNCwgLTUsIDksIC00LCAtNiwgLTQsIC01LCAtMiwgLTIsIC00LCAtMiwgLTMsIC00LCAtMiwgLTIsIC00LCAtNCwgLTIsIC00LCAtNSwgLTMsIC02XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgLTEsIC00LCA3LCAyLCAtMywgMSwgLTQsIC0zLCAxLCAwLCAtNCwgLTIsIC0xLCAtMSwgLTMsIC0zLCAtMywgLTEsIDQsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMSwgMSwgLTYsIDIsIDYsIC0zLCAtMSwgLTQsIC00LCAwLCAtMywgLTUsIC0yLCAtMSwgLTEsIC01LCAtNCwgLTMsIDAsIDQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbMCwgLTMsIC0xLCAtMiwgLTQsIC0zLCAtMywgNiwgLTMsIC01LCAtNSwgLTIsIC00LCAtNSwgLTMsIC0xLCAtMywgLTQsIC01LCAtNSwgLTIsIC0zLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAwLCAwLCAtMiwgLTUsIDEsIC0xLCAtMywgOCwgLTQsIC00LCAtMSwgLTMsIC0yLCAtMywgLTIsIC0yLCAtMywgMSwgLTQsIC0xLCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTQsIC01LCAtMiwgLTQsIC00LCAtNSwgLTQsIDUsIDEsIC00LCAxLCAtMSwgLTQsIC0zLCAtMSwgLTQsIC0yLCAzLCAtNSwgLTQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtNCwgLTUsIC0yLCAtMywgLTQsIC01LCAtNCwgMSwgNSwgLTMsIDIsIDAsIC00LCAtMywgLTIsIC0zLCAtMiwgMCwgLTUsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAyLCAwLCAtMSwgLTQsIDEsIDAsIC0yLCAtMSwgLTQsIC0zLCA2LCAtMiwgLTQsIC0yLCAtMSwgLTEsIC01LCAtMywgLTMsIC0xLCAxLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTMsIC00LCAtMiwgMCwgLTMsIC00LCAtMywgMSwgMiwgLTIsIDcsIC0xLCAtMywgLTIsIC0xLCAtMiwgLTIsIDAsIC00LCAtMiwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMywgLTQsIC00LCAtNSwgLTMsIC00LCAtNSwgLTUsIC0yLCAtMSwgMCwgLTQsIC0xLCA3LCAtNCwgLTMsIC0zLCAwLCAzLCAtMiwgLTQsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTMsIC0zLCAtNCwgLTIsIC0yLCAtMywgLTMsIC00LCAtNCwgLTIsIC0zLCAtNCwgOCwgLTIsIC0yLCAtNSwgLTQsIC0zLCAtMywgLTIsIC0yLCAtNl0sXG4gICAgICAgICAgICBbMSwgLTEsIDAsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMywgLTIsIDUsIDEsIC00LCAtMywgLTIsIDAsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMiwgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTMsIC0yLCAxLCA2LCAtNCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTQsIC00LCAtNSwgLTYsIC00LCAtMywgLTUsIC00LCAtMywgLTQsIC0zLCAtNSwgLTIsIDAsIC01LCAtNCwgLTQsIDExLCAyLCAtMywgLTYsIC00LCAtMywgLTZdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTMsIC00LCAtNCwgLTMsIC00LCAtNSwgMSwgLTIsIC0yLCAtMywgLTIsIDMsIC00LCAtMywgLTIsIDIsIDgsIC0zLCAtNCwgLTMsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtNCwgLTUsIC0yLCAtMywgLTMsIC01LCAtNCwgMywgMCwgLTMsIDAsIC0yLCAtMywgLTIsIC0xLCAtMywgLTMsIDUsIC00LCAtMywgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTIsIDQsIDQsIC00LCAtMSwgMCwgLTIsIC0xLCAtNSwgLTUsIC0xLCAtNCwgLTQsIC0zLCAwLCAtMSwgLTYsIC00LCAtNCwgNCwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgMCwgLTEsIDAsIC01LCA0LCA0LCAtMywgMCwgLTQsIC00LCAxLCAtMiwgLTQsIC0yLCAtMSwgLTEsIC00LCAtMywgLTMsIDAsIDQsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTIsIC0zLCAtMSwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMywgLTIsIC0yLCAtMiwgLTEsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAxXV07XG4gICAgICAgIHRoaXMuTlVDTEVPVElERVMgPSBbWzEsIC0xLCAtMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAxLCAtMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAtMSwgMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTEsIDFdXTtcbiAgICAgICAgdGhpcy5QQU0zMCA9IFtbNiwgLTcsIC00LCAtMywgLTYsIC00LCAtMiwgLTIsIC03LCAtNSwgLTYsIC03LCAtNSwgLTgsIC0yLCAwLCAtMSwgLTEzLCAtOCwgLTIsIC0zLCAtMywgLTMsIC0xN10sXG4gICAgICAgICAgICBbLTcsIDgsIC02LCAtMTAsIC04LCAtMiwgLTksIC05LCAtMiwgLTUsIC04LCAwLCAtNCwgLTksIC00LCAtMywgLTYsIC0yLCAtMTAsIC04LCAtNywgLTQsIC02LCAtMTddLFxuICAgICAgICAgICAgWy00LCAtNiwgOCwgMiwgLTExLCAtMywgLTIsIC0zLCAwLCAtNSwgLTcsIC0xLCAtOSwgLTksIC02LCAwLCAtMiwgLTgsIC00LCAtOCwgNiwgLTMsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtMTAsIDIsIDgsIC0xNCwgLTIsIDIsIC0zLCAtNCwgLTcsIC0xMiwgLTQsIC0xMSwgLTE1LCAtOCwgLTQsIC01LCAtMTUsIC0xMSwgLTgsIDYsIDEsIC01LCAtMTddLFxuICAgICAgICAgICAgWy02LCAtOCwgLTExLCAtMTQsIDEwLCAtMTQsIC0xNCwgLTksIC03LCAtNiwgLTE1LCAtMTQsIC0xMywgLTEzLCAtOCwgLTMsIC04LCAtMTUsIC00LCAtNiwgLTEyLCAtMTQsIC05LCAtMTddLFxuICAgICAgICAgICAgWy00LCAtMiwgLTMsIC0yLCAtMTQsIDgsIDEsIC03LCAxLCAtOCwgLTUsIC0zLCAtNCwgLTEzLCAtMywgLTUsIC01LCAtMTMsIC0xMiwgLTcsIC0zLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTksIC0yLCAyLCAtMTQsIDEsIDgsIC00LCAtNSwgLTUsIC05LCAtNCwgLTcsIC0xNCwgLTUsIC00LCAtNiwgLTE3LCAtOCwgLTYsIDEsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtOSwgLTMsIC0zLCAtOSwgLTcsIC00LCA2LCAtOSwgLTExLCAtMTAsIC03LCAtOCwgLTksIC02LCAtMiwgLTYsIC0xNSwgLTE0LCAtNSwgLTMsIC01LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNywgLTIsIDAsIC00LCAtNywgMSwgLTUsIC05LCA5LCAtOSwgLTYsIC02LCAtMTAsIC02LCAtNCwgLTYsIC03LCAtNywgLTMsIC02LCAtMSwgLTEsIC01LCAtMTddLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC03LCAtNiwgLTgsIC01LCAtMTEsIC05LCA4LCAtMSwgLTYsIC0xLCAtMiwgLTgsIC03LCAtMiwgLTE0LCAtNiwgMiwgLTYsIC02LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNiwgLTgsIC03LCAtMTIsIC0xNSwgLTUsIC05LCAtMTAsIC02LCAtMSwgNywgLTgsIDEsIC0zLCAtNywgLTgsIC03LCAtNiwgLTcsIC0yLCAtOSwgLTcsIC02LCAtMTddLFxuICAgICAgICAgICAgWy03LCAwLCAtMSwgLTQsIC0xNCwgLTMsIC00LCAtNywgLTYsIC02LCAtOCwgNywgLTIsIC0xNCwgLTYsIC00LCAtMywgLTEyLCAtOSwgLTksIC0yLCAtNCwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTUsIC00LCAtOSwgLTExLCAtMTMsIC00LCAtNywgLTgsIC0xMCwgLTEsIDEsIC0yLCAxMSwgLTQsIC04LCAtNSwgLTQsIC0xMywgLTExLCAtMSwgLTEwLCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTgsIC05LCAtOSwgLTE1LCAtMTMsIC0xMywgLTE0LCAtOSwgLTYsIC0yLCAtMywgLTE0LCAtNCwgOSwgLTEwLCAtNiwgLTksIC00LCAyLCAtOCwgLTEwLCAtMTMsIC04LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTYsIC04LCAtOCwgLTMsIC01LCAtNiwgLTQsIC04LCAtNywgLTYsIC04LCAtMTAsIDgsIC0yLCAtNCwgLTE0LCAtMTMsIC02LCAtNywgLTQsIC01LCAtMTddLFxuICAgICAgICAgICAgWzAsIC0zLCAwLCAtNCwgLTMsIC01LCAtNCwgLTIsIC02LCAtNywgLTgsIC00LCAtNSwgLTYsIC0yLCA2LCAwLCAtNSwgLTcsIC02LCAtMSwgLTUsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy0xLCAtNiwgLTIsIC01LCAtOCwgLTUsIC02LCAtNiwgLTcsIC0yLCAtNywgLTMsIC00LCAtOSwgLTQsIDAsIDcsIC0xMywgLTYsIC0zLCAtMywgLTYsIC00LCAtMTddLFxuICAgICAgICAgICAgWy0xMywgLTIsIC04LCAtMTUsIC0xNSwgLTEzLCAtMTcsIC0xNSwgLTcsIC0xNCwgLTYsIC0xMiwgLTEzLCAtNCwgLTE0LCAtNSwgLTEzLCAxMywgLTUsIC0xNSwgLTEwLCAtMTQsIC0xMSwgLTE3XSxcbiAgICAgICAgICAgIFstOCwgLTEwLCAtNCwgLTExLCAtNCwgLTEyLCAtOCwgLTE0LCAtMywgLTYsIC03LCAtOSwgLTExLCAyLCAtMTMsIC03LCAtNiwgLTUsIDEwLCAtNywgLTYsIC05LCAtNywgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTgsIC04LCAtOCwgLTYsIC03LCAtNiwgLTUsIC02LCAyLCAtMiwgLTksIC0xLCAtOCwgLTYsIC02LCAtMywgLTE1LCAtNywgNywgLTgsIC02LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTcsIDYsIDYsIC0xMiwgLTMsIDEsIC0zLCAtMSwgLTYsIC05LCAtMiwgLTEwLCAtMTAsIC03LCAtMSwgLTMsIC0xMCwgLTYsIC04LCA2LCAwLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0zLCAxLCAtMTQsIDYsIDYsIC01LCAtMSwgLTYsIC03LCAtNCwgLTUsIC0xMywgLTQsIC01LCAtNiwgLTE0LCAtOSwgLTYsIDAsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtNiwgLTMsIC01LCAtOSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNiwgLTUsIC01LCAtOCwgLTUsIC0zLCAtNCwgLTExLCAtNywgLTUsIC01LCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIDFdXTtcbiAgICAgICAgdGhpcy5QQU03MCA9IFtbNSwgLTQsIC0yLCAtMSwgLTQsIC0yLCAtMSwgMCwgLTQsIC0yLCAtNCwgLTQsIC0zLCAtNiwgMCwgMSwgMSwgLTksIC01LCAtMSwgLTEsIC0xLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstNCwgOCwgLTMsIC02LCAtNSwgMCwgLTUsIC02LCAwLCAtMywgLTYsIDIsIC0yLCAtNywgLTIsIC0xLCAtNCwgMCwgLTcsIC01LCAtNCwgLTIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgNiwgMywgLTcsIC0xLCAwLCAtMSwgMSwgLTMsIC01LCAwLCAtNSwgLTYsIC0zLCAxLCAwLCAtNiwgLTMsIC01LCA1LCAtMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC02LCAzLCA2LCAtOSwgMCwgMywgLTEsIC0xLCAtNSwgLTgsIC0yLCAtNywgLTEwLCAtNCwgLTEsIC0yLCAtMTAsIC03LCAtNSwgNSwgMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIC01LCAtNywgLTksIDksIC05LCAtOSwgLTYsIC01LCAtNCwgLTEwLCAtOSwgLTksIC04LCAtNSwgLTEsIC01LCAtMTEsIC0yLCAtNCwgLTgsIC05LCAtNiwgLTExXSxcbiAgICAgICAgICAgIFstMiwgMCwgLTEsIDAsIC05LCA3LCAyLCAtNCwgMiwgLTUsIC0zLCAtMSwgLTIsIC05LCAtMSwgLTMsIC0zLCAtOCwgLTgsIC00LCAtMSwgNSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC01LCAwLCAzLCAtOSwgMiwgNiwgLTIsIC0yLCAtNCwgLTYsIC0yLCAtNCwgLTksIC0zLCAtMiwgLTMsIC0xMSwgLTYsIC00LCAyLCA1LCAtMywgLTExXSxcbiAgICAgICAgICAgIFswLCAtNiwgLTEsIC0xLCAtNiwgLTQsIC0yLCA2LCAtNiwgLTYsIC03LCAtNSwgLTYsIC03LCAtMywgMCwgLTMsIC0xMCwgLTksIC0zLCAtMSwgLTMsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAwLCAxLCAtMSwgLTUsIDIsIC0yLCAtNiwgOCwgLTYsIC00LCAtMywgLTYsIC00LCAtMiwgLTMsIC00LCAtNSwgLTEsIC00LCAwLCAxLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0zLCAtNSwgLTQsIC01LCAtNCwgLTYsIC02LCA3LCAxLCAtNCwgMSwgMCwgLTUsIC00LCAtMSwgLTksIC00LCAzLCAtNCwgLTQsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAtNiwgLTUsIC04LCAtMTAsIC0zLCAtNiwgLTcsIC00LCAxLCA2LCAtNSwgMiwgLTEsIC01LCAtNiwgLTQsIC00LCAtNCwgMCwgLTYsIC00LCAtNCwgLTExXSxcbiAgICAgICAgICAgIFstNCwgMiwgMCwgLTIsIC05LCAtMSwgLTIsIC01LCAtMywgLTQsIC01LCA2LCAwLCAtOSwgLTQsIC0yLCAtMSwgLTcsIC03LCAtNiwgLTEsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMywgLTIsIC01LCAtNywgLTksIC0yLCAtNCwgLTYsIC02LCAxLCAyLCAwLCAxMCwgLTIsIC01LCAtMywgLTIsIC04LCAtNywgMCwgLTYsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNiwgLTcsIC02LCAtMTAsIC04LCAtOSwgLTksIC03LCAtNCwgMCwgLTEsIC05LCAtMiwgOCwgLTcsIC00LCAtNiwgLTIsIDQsIC01LCAtNywgLTksIC01LCAtMTFdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMywgLTQsIC01LCAtMSwgLTMsIC0zLCAtMiwgLTUsIC01LCAtNCwgLTUsIC03LCA3LCAwLCAtMiwgLTksIC05LCAtMywgLTQsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgLTEsIC0xLCAtMywgLTIsIDAsIC0zLCAtNCwgLTYsIC0yLCAtMywgLTQsIDAsIDUsIDIsIC0zLCAtNSwgLTMsIDAsIC0yLCAtMSwgLTExXSxcbiAgICAgICAgICAgIFsxLCAtNCwgMCwgLTIsIC01LCAtMywgLTMsIC0zLCAtNCwgLTEsIC00LCAtMSwgLTIsIC02LCAtMiwgMiwgNiwgLTgsIC00LCAtMSwgLTEsIC0zLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstOSwgMCwgLTYsIC0xMCwgLTExLCAtOCwgLTExLCAtMTAsIC01LCAtOSwgLTQsIC03LCAtOCwgLTIsIC05LCAtMywgLTgsIDEzLCAtMywgLTEwLCAtNywgLTEwLCAtNywgLTExXSxcbiAgICAgICAgICAgIFstNSwgLTcsIC0zLCAtNywgLTIsIC04LCAtNiwgLTksIC0xLCAtNCwgLTQsIC03LCAtNywgNCwgLTksIC01LCAtNCwgLTMsIDksIC01LCAtNCwgLTcsIC01LCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNSwgLTUsIC01LCAtNCwgLTQsIC00LCAtMywgLTQsIDMsIDAsIC02LCAwLCAtNSwgLTMsIC0zLCAtMSwgLTEwLCAtNSwgNiwgLTUsIC00LCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTQsIDUsIDUsIC04LCAtMSwgMiwgLTEsIDAsIC00LCAtNiwgLTEsIC02LCAtNywgLTQsIDAsIC0xLCAtNywgLTQsIC01LCA1LCAxLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0xLCAyLCAtOSwgNSwgNSwgLTMsIDEsIC00LCAtNCwgLTIsIC0zLCAtOSwgLTIsIC0yLCAtMywgLTEwLCAtNywgLTQsIDEsIDUsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTIsIC0zLCAtNiwgLTIsIC0zLCAtMywgLTMsIC0zLCAtNCwgLTMsIC0zLCAtNSwgLTMsIC0xLCAtMiwgLTcsIC01LCAtMiwgLTIsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgMV1dO1xuICAgICAgICB0aGlzLlBBTTI1MCA9IFtbMiwgLTIsIDAsIDAsIC0yLCAwLCAwLCAxLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0zLCAxLCAxLCAxLCAtNiwgLTMsIDAsIDAsIDAsIDAsIC04XSxcbiAgICAgICAgICAgIFstMiwgNiwgMCwgLTEsIC00LCAxLCAtMSwgLTMsIDIsIC0yLCAtMywgMywgMCwgLTQsIDAsIDAsIC0xLCAyLCAtNCwgLTIsIC0xLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIDAsIDIsIDIsIC00LCAxLCAxLCAwLCAyLCAtMiwgLTMsIDEsIC0yLCAtMywgMCwgMSwgMCwgLTQsIC0yLCAtMiwgMiwgMSwgMCwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAyLCA0LCAtNSwgMiwgMywgMSwgMSwgLTIsIC00LCAwLCAtMywgLTYsIC0xLCAwLCAwLCAtNywgLTQsIC0yLCAzLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTQsIC01LCAxMiwgLTUsIC01LCAtMywgLTMsIC0yLCAtNiwgLTUsIC01LCAtNCwgLTMsIDAsIC0yLCAtOCwgMCwgLTIsIC00LCAtNSwgLTMsIC04XSxcbiAgICAgICAgICAgIFswLCAxLCAxLCAyLCAtNSwgNCwgMiwgLTEsIDMsIC0yLCAtMiwgMSwgLTEsIC01LCAwLCAtMSwgLTEsIC01LCAtNCwgLTIsIDEsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDEsIDMsIC01LCAyLCA0LCAwLCAxLCAtMiwgLTMsIDAsIC0yLCAtNSwgLTEsIDAsIDAsIC03LCAtNCwgLTIsIDMsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMSwgLTMsIDAsIDEsIC0zLCAtMSwgMCwgNSwgLTIsIC0zLCAtNCwgLTIsIC0zLCAtNSwgMCwgMSwgMCwgLTcsIC01LCAtMSwgMCwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMiwgMiwgMSwgLTMsIDMsIDEsIC0yLCA2LCAtMiwgLTIsIDAsIC0yLCAtMiwgMCwgLTEsIC0xLCAtMywgMCwgLTIsIDEsIDIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0zLCAtMiwgNSwgMiwgLTIsIDIsIDEsIC0yLCAtMSwgMCwgLTUsIC0xLCA0LCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTQsIC02LCAtMiwgLTMsIC00LCAtMiwgMiwgNiwgLTMsIDQsIDIsIC0zLCAtMywgLTIsIC0yLCAtMSwgMiwgLTMsIC0zLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAzLCAxLCAwLCAtNSwgMSwgMCwgLTIsIDAsIC0yLCAtMywgNSwgMCwgLTUsIC0xLCAwLCAwLCAtMywgLTQsIC0yLCAxLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAwLCAtMiwgLTMsIC01LCAtMSwgLTIsIC0zLCAtMiwgMiwgNCwgMCwgNiwgMCwgLTIsIC0yLCAtMSwgLTQsIC0yLCAyLCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtMywgLTYsIC00LCAtNSwgLTUsIC01LCAtMiwgMSwgMiwgLTUsIDAsIDksIC01LCAtMywgLTMsIDAsIDcsIC0xLCAtNCwgLTUsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMSwgMCwgMCwgLTEsIC0zLCAwLCAtMSwgMCwgMCwgLTIsIC0zLCAtMSwgLTIsIC01LCA2LCAxLCAwLCAtNiwgLTUsIC0xLCAtMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFsxLCAwLCAxLCAwLCAwLCAtMSwgMCwgMSwgLTEsIC0xLCAtMywgMCwgLTIsIC0zLCAxLCAyLCAxLCAtMiwgLTMsIC0xLCAwLCAwLCAwLCAtOF0sXG4gICAgICAgICAgICBbMSwgLTEsIDAsIDAsIC0yLCAtMSwgMCwgMCwgLTEsIDAsIC0yLCAwLCAtMSwgLTMsIDAsIDEsIDMsIC01LCAtMywgMCwgMCwgLTEsIDAsIC04XSxcbiAgICAgICAgICAgIFstNiwgMiwgLTQsIC03LCAtOCwgLTUsIC03LCAtNywgLTMsIC01LCAtMiwgLTMsIC00LCAwLCAtNiwgLTIsIC01LCAxNywgMCwgLTYsIC01LCAtNiwgLTQsIC04XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0yLCAtNCwgMCwgLTQsIC00LCAtNSwgMCwgLTEsIC0xLCAtNCwgLTIsIDcsIC01LCAtMywgLTMsIDAsIDEwLCAtMiwgLTMsIC00LCAtMiwgLThdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0xLCAtMiwgNCwgMiwgLTIsIDIsIC0xLCAtMSwgLTEsIDAsIC02LCAtMiwgNCwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAyLCAzLCAtNCwgMSwgMywgMCwgMSwgLTIsIC0zLCAxLCAtMiwgLTQsIC0xLCAwLCAwLCAtNSwgLTMsIC0yLCAzLCAyLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIDAsIDEsIDMsIC01LCAzLCAzLCAwLCAyLCAtMiwgLTMsIDAsIC0yLCAtNSwgMCwgMCwgLTEsIC02LCAtNCwgLTIsIDIsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDAsIDAsIC00LCAtMiwgLTEsIC0xLCAtMSwgLTEsIC04XSxcbiAgICAgICAgICAgIFstOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIDFdXTtcbiAgICAgICAgdGhpcy5TQ0hORUlERVIgPSBbWzExLjYsIC0yLjcsIDkuNywgLTEuNywgLTIuNywgLTYuNCwgLTMuOSwgLTUuNiwgNS4xLCAtNS4wLCAzLjYsIC00LjIsIC02LjMsIC0xMy4wLCAtNy4xLCAtMTEuNSwgMC40LCAtNi4wLCAtMS45LCAtNS4zLCAtOC41LCAtMTEuMiwgLTguOSwgLTEwLjgsIDIuMSwgMC4wLCAxLjQsIDAuMiwgLTEwLjIsIC0xMy41LCAtMTMuMCwgLTEyLjUsIC0yLjYsIC04LjUsIC01LjAsIC04LjEsIC02LjMsIC05LjksIC03LjUsIC05LjAsIC03LjEsIC0xMC4yLCAtOC4yLCAtOS4yLCAtOC4yLCAtMTIuNSwgLTExLjEsIC0xMS40LCAtNTAuMCwgLTE0LjgsIC01MC4wLCAtMTMuOCwgLTcuMywgLTEwLjEsIC04LjQsIC05LjEsIC01MC4wLCAtMTMuMCwgLTEzLjUsIC0xMi40LCAtMTAuNywgLTE4LjEsIC0xMS44LCAtMTcuMixdLFxuICAgICAgICAgICAgWy0yLjcsIDEzLjAsIC0zLjMsIDEwLjksIC0zLjUsIC0wLjQsIC0zLjMsIC0xLjgsIC01LjQsIDQuNiwgLTUuNSwgMy4wLCAtMTAuMiwgLTcuOSwgLTkuOSwgLTkuNiwgLTUuMCwgMC41LCAtNS41LCAtMS4wLCAtMTAuMywgLTguMSwgLTkuNCwgLTkuNiwgLTguMSwgLTUuMCwgLTcuMywgLTYuMywgLTEzLjQsIC0xMS4zLCAtMTQuNCwgLTEyLjksIC02LjMsIDAuOCwgLTYuNCwgLTEuMSwgLTcuNCwgLTUuMCwgLTYuMiwgLTYuNSwgLTUuNiwgLTEuNiwgLTQuNywgLTMuMCwgLTEwLjgsIC04LjcsIC0xMS45LCAtMTAuMCwgLTUwLjAsIC02LjIsIC01MC4wLCAtNy41LCAtNi4zLCAtNC4zLCAtNi4yLCAtNS40LCAtNTAuMCwgLTcuMCwgLTE2LjMsIC04LjIsIC0xMy4yLCAtMTIuMywgLTEzLjEsIC0xMy4zLF0sXG4gICAgICAgICAgICBbOS43LCAtMy4zLCAxMS42LCAtMi44LCAtNC41LCAtNi43LCAtMy4xLCAtNi45LCAzLjMsIC01LjUsIDQuOCwgLTUuMSwgLTguOSwgLTEzLjIsIC01LjcsIC0xMi42LCAtMS41LCAtNi4xLCAtMC42LCAtNi4xLCAtMTAuMCwgLTExLjgsIC04LjYsIC0xMS45LCAxLjIsIDAuNSwgMi4yLCAwLjEsIC0xMS44LCAtMTQuMCwgLTExLjksIC0xMy40LCAtNC45LCAtOS4xLCAtMy40LCAtOC45LCAtOC4wLCAtMTAuMCwgLTcuMiwgLTEwLjAsIC05LjEsIC0xMC4yLCAtNy4xLCAtOS45LCAtMTAuMSwgLTEzLjAsIC0xMC42LCAtMTIuNywgLTUwLjAsIC0xNC45LCAtNTAuMCwgLTE0LjQsIC04LjksIC0xMC44LCAtOC45LCAtMTAuNCwgLTUwLjAsIC0xMy4xLCAtMTEuOCwgLTEzLjAsIC0xMi40LCAtMTkuNCwgLTExLjUsIC0xNy44LF0sXG4gICAgICAgICAgICBbLTEuNywgMTAuOSwgLTIuOCwgMTIuOSwgLTIuNywgLTIuMiwgLTIuOCwgMC4yLCAtNC44LCAyLjksIC01LjIsIDUuMiwgLTkuMSwgLTkuNSwgLTkuMCwgLTcuMCwgLTQuMCwgLTEuMCwgLTUuMCwgMS4wLCAtOS4wLCAtOC44LCAtOC45LCAtNy43LCAtNy4wLCAtNi44LCAtNy4xLCAtNC4zLCAtMTIuNCwgLTEyLjksIC0xMy45LCAtMTAuMCwgLTQuOSwgLTAuNywgLTUuNiwgMS40LCAtNi4wLCAtNi41LCAtNi4yLCAtNC44LCAtNS4xLCAtMy4yLCAtNS4wLCAtMS4yLCAtOS44LCAtOS45LCAtMTEuMywgLTguMiwgLTUwLjAsIC03LjYsIC01MC4wLCAtNS4xLCAtNS41LCAtNS44LCAtNS45LCAtNC4yLCAtNTAuMCwgLTguMywgLTE1LjUsIC01LjksIC0xMS42LCAtMTQuMiwgLTEyLjAsIC0xMS42LF0sXG4gICAgICAgICAgICBbLTIuNywgLTMuNSwgLTQuNSwgLTIuNywgMTEuNywgOS4wLCAxMC42LCA5LjYsIC0zLjIsIC0wLjcsIC01LjEsIC0wLjQsIDAuNywgLTQuNiwgLTAuNCwgLTMuNiwgLTQuOCwgLTguOSwgLTYuNSwgLTcuOCwgLTEuNCwgLTQuMSwgLTIuOSwgLTMuMywgLTguMCwgLTkuMSwgLTguMCwgLTguMiwgLTYuMCwgLTkuMywgLTcuNywgLTguNSwgLTYuNCwgLTEwLjEsIC03LjUsIC04LjYsIDIuOCwgLTAuNywgMC45LCAwLjEsIC01LjksIC03LjMsIC02LjUsIC02LjUsIC0wLjQsIC0zLjksIC0yLjYsIC0zLjEsIC01MC4wLCAtMTQuNiwgLTUwLjAsIC0xMi42LCAyLjksIDAuMSwgMS44LCAxLjAsIC01MC4wLCAtOS4yLCAtMTMuNiwgLTcuNywgLTQuOCwgLTEyLjIsIC02LjIsIC0xMS4wLF0sXG4gICAgICAgICAgICBbLTYuNCwgLTAuNCwgLTYuNywgLTIuMiwgOS4wLCAxMi4zLCA5LjgsIDkuNiwgLTcuMSwgMi40LCAtNy4yLCAwLjMsIC0yLjksIC0xLjIsIC0zLjAsIC0zLjMsIC03LjYsIC02LjcsIC04LjEsIC03LjksIC00LjksIC0xLjksIC00LjUsIC0zLjgsIC05LjUsIC03LjgsIC05LjMsIC04LjksIC05LjQsIC03LjEsIC05LjAsIC05LjAsIC05LjQsIC03LjUsIC05LjMsIC05LjIsIC0wLjcsIDIuNiwgMC4yLCAtMC4xLCAtOC4wLCAtNC42LCAtNy43LCAtNi4xLCAtMy42LCAtMS4wLCAtNC4xLCAtMy4xLCAtNTAuMCwgLTExLjYsIC01MC4wLCAtMTEuNiwgMC4yLCAyLjMsIDAuNCwgMC41LCAtNTAuMCwgLTYuNSwgLTE1LjMsIC03LjgsIC04LjQsIC05LjUsIC04LjMsIC0xMS4xLF0sXG4gICAgICAgICAgICBbLTMuOSwgLTMuMywgLTMuMSwgLTIuOCwgMTAuNiwgOS44LCAxMi4yLCA5LjgsIC00LjksIDAuMSwgLTMuNiwgLTAuMiwgLTEuNywgLTQuMSwgMC45LCAtMy41LCAtNS45LCAtOC45LCAtNS42LCAtOC41LCAtMy45LCAtMy45LCAtMi4yLCAtNC41LCAtNy4zLCAtNy41LCAtNi40LCAtOC41LCAtNy4xLCAtOC4yLCAtNi43LCAtNy44LCAtNy45LCAtOS4xLCAtNy4xLCAtOS40LCAwLjksIC0wLjIsIDIuNSwgLTAuMywgLTYuOSwgLTYuNSwgLTUuNSwgLTYuOCwgLTEuNywgLTMuNCwgLTEuNywgLTIuOCwgLTUwLjAsIC0xMy4wLCAtNTAuMCwgLTExLjUsIDEuNSwgMC43LCAyLjcsIDAuNiwgLTUwLjAsIC04LjksIC0xMi4xLCAtNy40LCAtNi4xLCAtMTEuNSwgLTUuNCwgLTEwLjQsXSxcbiAgICAgICAgICAgIFstNS42LCAtMS44LCAtNi45LCAwLjIsIDkuNiwgOS42LCA5LjgsIDExLjYsIC02LjYsIDAuOSwgLTcuMiwgMi41LCAtMi4zLCAtMy40LCAtMi4zLCAtMC42LCAtNi41LCAtOC4yLCAtOC4wLCAtNi4zLCAtMy43LCAtMy41LCAtMy45LCAtMS42LCAtOS45LCAtOC45LCAtOS42LCAtNy4wLCAtOC42LCAtOC45LCAtOC44LCAtNi44LCAtOC42LCAtOC4yLCAtOC44LCAtNi44LCAwLjMsIDAuMSwgMC4yLCAyLjQsIC03LjQsIC02LjIsIC02LjksIC00LjQsIC0yLjksIC0yLjksIC0zLjUsIC0wLjksIC01MC4wLCAtMTIuMiwgLTUwLjAsIC0xMC4xLCAxLjIsIDAuNiwgMS4yLCAyLjQsIC01MC4wLCAtNy42LCAtMTYuMSwgLTUuOCwgLTcuMiwgLTEwLjgsIC03LjQsIC05LjAsXSxcbiAgICAgICAgICAgIFs1LjEsIC01LjQsIDMuMywgLTQuOCwgLTMuMiwgLTcuMSwgLTQuOSwgLTYuNiwgMTMuMywgLTIuOCwgMTEuMiwgLTEuOSwgLTUuNywgLTEyLjUsIC03LjIsIC0xMS42LCAtMC43LCAtNC44LCAtMy4xLCAtNC4zLCAtMTAuMCwgLTExLjYsIC04LjgsIC0xMS43LCAxMC41LCA3LjcsIDkuMSwgOC41LCAtOS44LCAtMTIuNywgLTExLjcsIC0xMS44LCAtNi4zLCAtMTEuNCwgLTguOCwgLTExLjAsIC03LjUsIC0xMC4zLCAtOC4zLCAtOS45LCAtMS45LCAtNi43LCAtNC4xLCAtNi40LCAtNy45LCAtMTIuNSwgLTExLjQsIC0xMS43LCAtNTAuMCwgLTE0LjAsIC01MC4wLCAtMTMuMiwgLTguNSwgLTEwLjQsIC05LjEsIC05LjYsIC01MC4wLCAtOS44LCAtNy43LCAtOC44LCAtMTAuMywgLTE3LjksIC0xMS44LCAtMTYuMCxdLFxuICAgICAgICAgICAgWy01LjAsIDQuNiwgLTUuNSwgMi45LCAtMC43LCAyLjQsIDAuMSwgMC45LCAtMi44LCAxMi44LCAtMi42LCAxMS4wLCAtOC40LCAtNi4zLCAtOC4zLCAtNy43LCAtNi4xLCAtMi45LCAtNi41LCAtNC4yLCAtOC41LCAtNS45LCAtNy41LCAtNy43LCAtNS41LCAtMi40LCAtNS41LCAtNC4xLCAtMTIuOSwgLTEwLjMsIC0xMi43LCAtMTEuMywgLTcuNCwgLTMuMSwgLTcuNCwgLTQuOSwgLTQuNCwgLTEuOCwgLTMuNSwgLTMuNSwgLTEuNiwgMy4wLCAtMC44LCAwLjksIC04LjQsIC02LjMsIC05LjYsIC03LjMsIC01MC4wLCAtOS4wLCAtNTAuMCwgLTkuNywgLTIuMywgLTAuMiwgLTEuMiwgLTEuNSwgLTUwLjAsIC0wLjcsIC0xMy4zLCAtMi4wLCAtMTEuOCwgLTExLjksIC0xMi4zLCAtMTIuNyxdLFxuICAgICAgICAgICAgWzMuNiwgLTUuNSwgNC44LCAtNS4yLCAtNS4xLCAtNy4yLCAtMy42LCAtNy4yLCAxMS4yLCAtMi42LCAxMy40LCAtMi4xLCAtNy43LCAtMTIuNSwgLTUuMywgLTExLjksIC0yLjIsIC00LjQsIC0xLjksIC00LjgsIC0xMC4yLCAtMTEuNSwgLTguMSwgLTEyLjAsIDkuMywgOC4yLCAxMC4wLCA4LjAsIC0xMC44LCAtMTEuOSwgLTEwLjcsIC0xMi40LCAtOC4yLCAtMTEuOCwgLTYuOSwgLTExLjUsIC04LjQsIC05LjksIC03LjEsIC0xMC42LCAtNC43LCAtNi44LCAtMS4yLCAtNy4wLCAtOS44LCAtMTEuNiwgLTkuNiwgLTEyLjEsIC01MC4wLCAtMTQuMSwgLTUwLjAsIC0xMi43LCAtMTAuMCwgLTEwLjgsIC04LjgsIC0xMC41LCAtNTAuMCwgLTkuMiwgLTQuMiwgLTkuMywgLTExLjAsIC0xOC4yLCAtMTEuMSwgLTE2LjEsXSxcbiAgICAgICAgICAgIFstNC4yLCAzLjAsIC01LjEsIDUuMiwgLTAuNCwgMC4zLCAtMC4yLCAyLjUsIC0xLjksIDExLjAsIC0yLjEsIDEzLjIsIC03LjYsIC04LjUsIC04LjAsIC01LjMsIC01LjYsIC00LjUsIC02LjgsIC0yLjQsIC03LjgsIC03LjksIC03LjksIC02LjIsIC01LjcsIC01LjEsIC01LjQsIC0yLjEsIC0xMi40LCAtMTIuMywgLTEzLjEsIC0xMC4xLCAtNi42LCAtNC40LCAtNi45LCAtMi42LCAtMy42LCAtMy44LCAtMy43LCAtMi4wLCAtMS40LCAwLjgsIC0wLjksIDMuMCwgLTguMiwgLTguMSwgLTkuMiwgLTUuOCwgLTUwLjAsIC0xMC4xLCAtNTAuMCwgLTcuNCwgLTEuNywgLTIuMCwgLTEuNSwgLTAuNSwgLTUwLjAsIC0yLjEsIC0xMi42LCAtMC40LCAtMTEuNiwgLTEzLjksIC0xMS40LCAtMTEuMSxdLFxuICAgICAgICAgICAgWy02LjMsIC0xMC4yLCAtOC45LCAtOS4xLCAwLjcsIC0yLjksIC0xLjcsIC0yLjMsIC01LjcsIC04LjQsIC03LjcsIC03LjYsIDEzLjIsIDkuNiwgMy41LCA5LjcsIC04LjcsIC0xMi40LCAtMTAuNywgLTEwLjcsIC03LjgsIC0xMC4yLCAtOC44LCAtOS42LCAtOS41LCAtMTEuOSwgLTEwLjksIC0xMC41LCAyLjMsIC0wLjQsIC0wLjIsIC0wLjMsIC05LjcsIC0xNS41LCAtMTEuNCwgLTEzLjcsIC0zLjAsIC02LjQsIC00LjEsIC01LjQsIC05LjYsIC0xMS45LCAtMTAuNSwgLTExLjgsIDYuMiwgMy4zLCAzLjcsIDMuNiwgLTUwLjAsIC0xMy42LCAtNTAuMCwgLTExLjksIC01LjYsIC04LjgsIC03LjIsIC04LjksIC01MC4wLCAtMTIuNCwgLTE0LjEsIC0xMS42LCAyLjgsIC02LjQsIDAuNSwgLTUuMixdLFxuICAgICAgICAgICAgWy0xMy4wLCAtNy45LCAtMTMuMiwgLTkuNSwgLTQuNiwgLTEuMiwgLTQuMSwgLTMuNCwgLTEyLjUsIC02LjMsIC0xMi41LCAtOC41LCA5LjYsIDEyLjcsIDAuMiwgMTAuNSwgLTEyLjQsIC0xMS42LCAtMTMuMiwgLTEyLjAsIC0xMi40LCAtMTAuMSwgLTExLjYsIC0xMi4wLCAtMTUuMSwgLTEzLjEsIC0xNC4zLCAtMTMuNCwgLTEuNCwgMS40LCAtMS42LCAtMC41LCAtMTQuOSwgLTE0LjMsIC0xNS4yLCAtMTYuOCwgLTcuNywgLTQuNywgLTYuMywgLTYuNiwgLTE0LjYsIC0xMC44LCAtMTIuOCwgLTEzLjAsIDIuMywgNi4wLCAyLjUsIDMuNiwgLTUwLjAsIC0xMS4yLCAtNTAuMCwgLTExLjksIC0xMC41LCAtOS4yLCAtMTAuNSwgLTEwLjUsIC01MC4wLCAtMTAuMywgLTE2LjIsIC0xMS4zLCAtMS43LCAtMy43LCAtMi41LCAtNS40LF0sXG4gICAgICAgICAgICBbLTcuMSwgLTkuOSwgLTUuNywgLTkuMCwgLTAuNCwgLTMuMCwgMC45LCAtMi4zLCAtNy4yLCAtOC4zLCAtNS4zLCAtOC4wLCAzLjUsIDAuMiwgMTQuMywgMS4wLCAtNy4zLCAtMTEuMiwgLTYuOSwgLTkuNywgLTguNSwgLTEwLjIsIC03LjcsIC05LjgsIC0xMC4wLCAtMTAuNCwgLTguNCwgLTEwLjIsIDEuMCwgLTAuNiwgMS43LCAtMC41LCAtMTEuMSwgLTE0LjgsIC05LjcsIC0xNC41LCAtMy43LCAtNS44LCAtMy4xLCAtNS42LCAtMTAuNCwgLTExLjUsIC04LjIsIC0xMS4xLCAwLjYsIC0xLjYsIDEuNiwgLTEuMSwgLTUwLjAsIC0xMi40LCAtNTAuMCwgLTExLjUsIC01LjUsIC04LjAsIC00LjksIC03LjIsIC01MC4wLCAtMTIuNCwgLTEwLjMsIC0xMS42LCAwLjcsIC02LjgsIDIuNCwgLTYuMCxdLFxuICAgICAgICAgICAgWy0xMS41LCAtOS42LCAtMTIuNiwgLTcuMCwgLTMuNiwgLTMuMywgLTMuNSwgLTAuNiwgLTExLjYsIC03LjcsIC0xMS45LCAtNS4zLCA5LjcsIDEwLjUsIDEuMCwgMTIuNiwgLTEyLjAsIC0xMi4yLCAtMTIuNSwgLTkuNywgLTExLjEsIC0xMS4yLCAtMTEuOSwgLTkuNCwgLTEyLjksIC0xNC4zLCAtMTQuMCwgLTExLjksIC0xLjAsIC0wLjQsIC0xLjYsIDEuMiwgLTEzLjksIC0xNS40LCAtMTMuNywgLTEyLjYsIC02LjIsIC02LjcsIC02LjMsIC00LjQsIC0xMy4wLCAtMTIuMiwgLTEzLjAsIC0xMC40LCAyLjksIDMuOCwgMi41LCA1LjgsIC01MC4wLCAtMTIuNSwgLTUwLjAsIC0xMC4yLCAtOS42LCAtOS43LCAtOS42LCAtOC4zLCAtNTAuMCwgLTExLjYsIC0xNS40LCAtOS40LCAtMS4xLCAtNS40LCAtMS42LCAtMy4zLF0sXG4gICAgICAgICAgICBbMC40LCAtNS4wLCAtMS41LCAtNC4wLCAtNC44LCAtNy42LCAtNS45LCAtNi41LCAtMC43LCAtNi4xLCAtMi4yLCAtNS42LCAtOC43LCAtMTIuNCwgLTcuMywgLTEyLjAsIDEyLjgsIDIuMywgMTAuMiwgMy4wLCAwLjAsIC0zLjQsIC0wLjcsIC0zLjIsIDIuNSwgLTAuOCwgMC45LCAwLjIsIC0zLjAsIC03LjIsIC01LjcsIC02LjEsIC0wLjIsIC02LjYsIC0xLjgsIC02LjAsIC01LjMsIC04LjIsIC01LjcsIC03LjYsIC02LjcsIC05LjYsIC03LjUsIC05LjMsIC03LjEsIC0xMC41LCAtOS42LCAtOS40LCAtNTAuMCwgLTguMSwgLTUwLjAsIC03LjIsIC00LjMsIC02LjgsIC01LjcsIC02LjMsIC01MC4wLCAtOS41LCAtOS42LCAtOC45LCAtNi4yLCAtMTIuOCwgLTYuOCwgLTExLjgsXSxcbiAgICAgICAgICAgIFstNi4wLCAwLjUsIC02LjEsIC0xLjAsIC04LjksIC02LjcsIC04LjksIC04LjIsIC00LjgsIC0yLjksIC00LjQsIC00LjUsIC0xMi40LCAtMTEuNiwgLTExLjIsIC0xMi4yLCAyLjMsIDE0LjYsIDEuOSwgMTIuOSwgLTUuNSwgLTIuNiwgLTQuMSwgLTQuNywgLTEuMiwgMy4wLCAtMS4xLCAxLjYsIC04LjAsIC00LjcsIC04LjcsIC02LjAsIC04LjIsIC00LjcsIC03LjgsIC02LjcsIC0xMC4wLCAtOC4zLCAtOC45LCAtOS45LCAtMTAuOCwgLTcuMSwgLTEwLjAsIC05LjIsIC0xMS42LCAtMTAuMSwgLTEyLjMsIC0xMS45LCAtNTAuMCwgMi4yLCAtNTAuMCwgMC45LCAtNy45LCAtNS45LCAtNy40LCAtNi45LCAtNTAuMCwgLTQuNiwgLTExLjYsIC01LjYsIC05LjcsIC01LjksIC05LjksIC03LjMsXSxcbiAgICAgICAgICAgIFstMS45LCAtNS41LCAtMC42LCAtNS4wLCAtNi41LCAtOC4xLCAtNS42LCAtOC4wLCAtMy4xLCAtNi41LCAtMS45LCAtNi44LCAtMTAuNywgLTEzLjIsIC02LjksIC0xMi41LCAxMC4yLCAxLjksIDExLjksIDIuMSwgLTIuMywgLTQuMSwgLTAuNSwgLTQuNiwgLTAuMSwgLTAuOSwgMi40LCAtMC44LCAtNS4xLCAtNi45LCAtNC44LCAtNi43LCAtMi4zLCAtNy4xLCAtMC44LCAtNy4yLCAtNy4yLCAtOC4wLCAtNS42LCAtOC41LCAtOS40LCAtOS43LCAtNy4yLCAtOS44LCAtOS4yLCAtMTEuMSwgLTkuNSwgLTEwLjcsIC01MC4wLCAtOC43LCAtNTAuMCwgLTguNiwgLTYuMSwgLTcuNSwgLTUuNSwgLTcuNywgLTUwLjAsIC0xMC40LCAtNy43LCAtMTAuMCwgLTcuMywgLTEzLjYsIC02LjQsIC0xMy4zLF0sXG4gICAgICAgICAgICBbLTUuMywgLTEuMCwgLTYuMSwgMS4wLCAtNy44LCAtNy45LCAtOC41LCAtNi4zLCAtNC4zLCAtNC4yLCAtNC44LCAtMi40LCAtMTAuNywgLTEyLjAsIC05LjcsIC05LjcsIDMuMCwgMTIuOSwgMi4xLCAxNC43LCAtNC45LCAtMy44LCAtNC4wLCAtMi40LCAtMS4wLCAwLjgsIC0xLjMsIDMuNCwgLTcuNiwgLTUuNywgLTguMSwgLTMuNSwgLTYuOCwgLTUuOCwgLTcuMiwgLTQuMiwgLTguOSwgLTEwLjIsIC04LjQsIC04LjIsIC05LjksIC04LjQsIC05LjcsIC02LjQsIC0xMS4xLCAtMTEuMSwgLTExLjgsIC0xMC4wLCAtNTAuMCwgMC40LCAtNTAuMCwgMi42LCAtNy4yLCAtNy4wLCAtNy40LCAtNS4xLCAtNTAuMCwgLTUuNywgLTkuOCwgLTMuMiwgLTguNCwgLTcuNCwgLTguOSwgLTUuOSxdLFxuICAgICAgICAgICAgWy04LjUsIC0xMC4zLCAtMTAuMCwgLTkuMCwgLTEuNCwgLTQuOSwgLTMuOSwgLTMuNywgLTEwLjAsIC04LjUsIC0xMC4yLCAtNy44LCAtNy44LCAtMTIuNCwgLTguNSwgLTExLjEsIDAuMCwgLTUuNSwgLTIuMywgLTQuOSwgMTIuNiwgMTAuMCwgMTEuMSwgMTAuNSwgLTYuMCwgLTguMywgLTYuOSwgLTcuNSwgLTIuMiwgLTcuNCwgLTUuMywgLTUuOSwgLTguOSwgLTEyLjUsIC05LjQsIC0xMS42LCAtMC43LCAtMy45LCAtMi4zLCAtMy4wLCAtOS4xLCAtOS44LCAtOS4yLCAtOS41LCAtNS42LCAtOS4wLCAtOC4wLCAtOC41LCAtNTAuMCwgLTE1LjMsIC01MC4wLCAtMTQuMSwgMi4zLCAtMS40LCAwLjMsIC0wLjUsIC01MC4wLCAtMTMuNiwgLTE0LjMsIC0xMS41LCAtNS4zLCAtMTMuNywgLTYuMSwgLTEyLjcsXSxcbiAgICAgICAgICAgIFstMTEuMiwgLTguMSwgLTExLjgsIC04LjgsIC00LjEsIC0xLjksIC0zLjksIC0zLjUsIC0xMS42LCAtNS45LCAtMTEuNSwgLTcuOSwgLTEwLjIsIC0xMC4xLCAtMTAuMiwgLTExLjIsIC0zLjQsIC0yLjYsIC00LjEsIC0zLjgsIDEwLjAsIDEzLjEsIDEwLjcsIDEwLjYsIC04LjEsIC01LjIsIC04LjAsIC02LjcsIC02LjEsIC0zLjcsIC03LjUsIC01LjYsIC0xMS4xLCAtMTAuMywgLTEwLjYsIC0xMS45LCAtMy4yLCAtMS4wLCAtMi4yLCAtMi44LCAtMTAuNSwgLTguMSwgLTkuNCwgLTkuNSwgLTguMywgLTYuOSwgLTkuNCwgLTguOCwgLTUwLjAsIC0xMS4zLCAtNTAuMCwgLTEyLjgsIC0wLjYsIDIuMiwgLTAuMywgMC4xLCAtNTAuMCwgLTEwLjEsIC0xNy41LCAtMTEuMSwgLTguNiwgLTkuOSwgLTguNiwgLTExLjksXSxcbiAgICAgICAgICAgIFstOC45LCAtOS40LCAtOC42LCAtOC45LCAtMi45LCAtNC41LCAtMi4yLCAtMy45LCAtOC44LCAtNy41LCAtOC4xLCAtNy45LCAtOC44LCAtMTEuNiwgLTcuNywgLTExLjksIC0wLjcsIC00LjEsIC0wLjUsIC00LjAsIDExLjEsIDEwLjcsIDEzLjIsIDEwLjQsIC01LjcsIC01LjgsIC0zLjUsIC02LjEsIC0zLjYsIC02LjUsIC0zLjMsIC01LjUsIC05LjQsIC0xMS4wLCAtOC43LCAtMTEuMiwgLTEuOCwgLTIuNywgMC43LCAtMy4wLCAtOS4xLCAtOC4yLCAtNy4zLCAtOS40LCAtNy4yLCAtOC4yLCAtNy4yLCAtOC4yLCAtNTAuMCwgLTEzLjIsIC01MC4wLCAtMTMuMywgMC41LCAtMC45LCAxLjgsIC0wLjYsIC01MC4wLCAtMTEuNCwgLTExLjEsIC0xMC41LCAtNi4xLCAtMTIuOSwgLTUuMCwgLTExLjksXSxcbiAgICAgICAgICAgIFstMTAuOCwgLTkuNiwgLTExLjksIC03LjcsIC0zLjMsIC0zLjgsIC00LjUsIC0xLjYsIC0xMS43LCAtNy43LCAtMTIuMCwgLTYuMiwgLTkuNiwgLTEyLjAsIC05LjgsIC05LjQsIC0zLjIsIC00LjcsIC00LjYsIC0yLjQsIDEwLjUsIDEwLjYsIDEwLjQsIDEyLjYsIC04LjIsIC03LjksIC05LjAsIC00LjcsIC02LjEsIC02LjAsIC03LjUsIC0yLjksIC0xMC45LCAtMTIuMiwgLTExLjIsIC0xMC45LCAtMi40LCAtMi45LCAtMi43LCAtMC45LCAtMTAuNCwgLTkuNywgLTEwLjIsIC04LjAsIC04LjQsIC05LjEsIC05LjMsIC02LjUsIC01MC4wLCAtMTMuMywgLTUwLjAsIC0xMS4wLCAtMC4wLCAtMC40LCAtMC40LCAyLjMsIC01MC4wLCAtMTAuOSwgLTE3LjIsIC04LjMsIC04LjMsIC0xMi43LCAtNy44LCAtOS4zLF0sXG4gICAgICAgICAgICBbMi4xLCAtOC4xLCAxLjIsIC03LjAsIC04LjAsIC05LjUsIC03LjMsIC05LjksIDEwLjUsIC01LjUsIDkuMywgLTUuNywgLTkuNSwgLTE1LjEsIC0xMC4wLCAtMTIuOSwgMi41LCAtMS4yLCAtMC4xLCAtMS4wLCAtNi4wLCAtOC4xLCAtNS43LCAtOC4yLCAxMy44LCAxMS4zLCAxMS44LCAxMi4xLCAtNi4wLCAtOS4xLCAtOS4wLCAtOS41LCAtOC45LCAtMTMuNCwgLTEwLjAsIC0xMy4xLCAtOS45LCAtMTEuNywgLTkuOCwgLTEyLjgsIC01LjksIC05LjQsIC02LjUsIC04LjEsIC0xMC43LCAtMTQuMCwgLTEzLjMsIC0xMy45LCAtNTAuMCwgLTExLjksIC01MC4wLCAtOS43LCAtOC45LCAtMTAuOCwgLTkuMCwgLTExLjEsIC01MC4wLCAtNi41LCAtNS4zLCAtNi4zLCAtMTAuNSwgLTE2LjIsIC0xMC40LCAtMTUuMixdLFxuICAgICAgICAgICAgWzAuMCwgLTUuMCwgMC41LCAtNi44LCAtOS4xLCAtNy44LCAtNy41LCAtOC45LCA3LjcsIC0yLjQsIDguMiwgLTUuMSwgLTExLjksIC0xMy4xLCAtMTAuNCwgLTE0LjMsIC0wLjgsIDMuMCwgLTAuOSwgMC44LCAtOC4zLCAtNS4yLCAtNS44LCAtNy45LCAxMS4zLCAxNS4wLCAxMS4yLCAxMi44LCAtOS43LCAtNS4zLCAtOS4yLCAtNy44LCAtMTEuNywgLTEwLjYsIC0xMC4xLCAtMTIuMiwgLTExLjcsIC04LjgsIC04LjksIC0xMS44LCAtOS4zLCAtNS4wLCAtOC4wLCAtOC4yLCAtMTMuNiwgLTExLjQsIC0xMi44LCAtMTMuMCwgLTUwLjAsIC03LjIsIC01MC4wLCAtOC40LCAtMTEuMCwgLTcuNywgLTguNywgLTEwLjIsIC01MC4wLCAtMS41LCAtNy4xLCAtNC45LCAtMTEuMiwgLTExLjYsIC0xMS42LCAtMTUuMCxdLFxuICAgICAgICAgICAgWzEuNCwgLTcuMywgMi4yLCAtNy4xLCAtOC4wLCAtOS4zLCAtNi40LCAtOS42LCA5LjEsIC01LjUsIDEwLjAsIC01LjQsIC0xMC45LCAtMTQuMywgLTguNCwgLTE0LjAsIDAuOSwgLTEuMSwgMi40LCAtMS4zLCAtNi45LCAtOC4wLCAtMy41LCAtOS4wLCAxMS44LCAxMS4yLCAxMy40LCAxMS40LCAtNy4zLCAtOC44LCAtNi41LCAtOC41LCAtMTAuMCwgLTEyLjUsIC03LjgsIC0xMi41LCAtOS42LCAtMTEuMCwgLTcuMSwgLTEwLjcsIC03LjksIC04LjAsIC00LjMsIC05LjQsIC0xMS40LCAtMTIuMywgLTEwLjksIC0xMi45LCAtNTAuMCwgLTExLjgsIC01MC4wLCAtMTEuMiwgLTkuNCwgLTkuOCwgLTcuMywgLTEwLjUsIC01MC4wLCAtNi4yLCAtMi4yLCAtNi43LCAtOS44LCAtMTUuMiwgLTguNSwgLTE0LjksXSxcbiAgICAgICAgICAgIFswLjIsIC02LjMsIDAuMSwgLTQuMywgLTguMiwgLTguOSwgLTguNSwgLTcuMCwgOC41LCAtNC4xLCA4LjAsIC0yLjEsIC0xMC41LCAtMTMuNCwgLTEwLjIsIC0xMS45LCAwLjIsIDEuNiwgLTAuOCwgMy40LCAtNy41LCAtNi43LCAtNi4xLCAtNC43LCAxMi4xLCAxMi44LCAxMS40LCAxNC43LCAtOC43LCAtNy40LCAtOS40LCAtNS4zLCAtOS45LCAtMTEuOCwgLTEwLjUsIC0xMC4zLCAtOS45LCAtMTAuMSwgLTkuMywgLTkuMywgLTguMSwgLTcuMiwgLTguMCwgLTUuMiwgLTEyLjAsIC0xMi4xLCAtMTIuNiwgLTEwLjksIC01MC4wLCAtNy45LCAtNTAuMCwgLTUuMywgLTkuMywgLTguOCwgLTguOSwgLTcuMCwgLTUwLjAsIC0zLjYsIC03LjEsIC0xLjIsIC0xMC4yLCAtMTIuNywgLTkuOSwgLTExLjAsXSxcbiAgICAgICAgICAgIFstMTAuMiwgLTEzLjQsIC0xMS44LCAtMTIuNCwgLTYuMCwgLTkuNCwgLTcuMSwgLTguNiwgLTkuOCwgLTEyLjksIC0xMC44LCAtMTIuNCwgMi4zLCAtMS40LCAxLjAsIC0xLjAsIC0zLjAsIC04LjAsIC01LjEsIC03LjYsIC0yLjIsIC02LjEsIC0zLjYsIC02LjEsIC02LjAsIC05LjcsIC03LjMsIC04LjcsIDExLjIsIDcuOSwgOC45LCA4LjEsIC0xMi4xLCAtMTcuNCwgLTEzLjIsIC0xNi44LCAtNi4zLCAtOS41LCAtNy41LCAtOC44LCAtMTIuNywgLTE1LjIsIC0xMy4xLCAtMTQuMiwgMC4wLCAtMy4xLCAtMS44LCAtMy4xLCAtNTAuMCwgLTEwLjcsIC01MC4wLCAtOS4zLCAtNC42LCAtOC45LCAtNS45LCAtOC4zLCAtNTAuMCwgLTEyLjgsIC05LjYsIC0xMC42LCA5LjUsIC0zLjIsIDguMiwgLTIuOCxdLFxuICAgICAgICAgICAgWy0xMy41LCAtMTEuMywgLTE0LjAsIC0xMi45LCAtOS4zLCAtNy4xLCAtOC4yLCAtOC45LCAtMTIuNywgLTEwLjMsIC0xMS45LCAtMTIuMywgLTAuNCwgMS40LCAtMC42LCAtMC40LCAtNy4yLCAtNC43LCAtNi45LCAtNS43LCAtNy40LCAtMy43LCAtNi41LCAtNi4wLCAtOS4xLCAtNS4zLCAtOC44LCAtNy40LCA3LjksIDExLjksIDcuOCwgOS4zLCAtMTUuMiwgLTE1LjEsIC0xNC42LCAtMTcuMiwgLTkuNywgLTcuMywgLTguMiwgLTkuMiwgLTE1LjAsIC0xMi44LCAtMTQuMSwgLTE0LjksIC0yLjgsIDAuMiwgLTIuOSwgLTIuMywgLTUwLjAsIC03LjQsIC01MC4wLCAtOC43LCAtOS40LCAtNy4zLCAtOS40LCAtOS40LCAtNTAuMCwgLTguMCwgLTExLjksIC05LjcsIDYuNSwgMC41LCA2LjQsIC0xLjgsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTE0LjQsIC0xMS45LCAtMTMuOSwgLTcuNywgLTkuMCwgLTYuNywgLTguOCwgLTExLjcsIC0xMi43LCAtMTAuNywgLTEzLjEsIC0wLjIsIC0xLjYsIDEuNywgLTEuNiwgLTUuNywgLTguNywgLTQuOCwgLTguMSwgLTUuMywgLTcuNSwgLTMuMywgLTcuNSwgLTkuMCwgLTkuMiwgLTYuNSwgLTkuNCwgOC45LCA3LjgsIDEwLjEsIDcuOCwgLTE0LjMsIC0xNy43LCAtMTMuMCwgLTE3LjgsIC04LjAsIC05LjQsIC02LjIsIC05LjIsIC0xNS4xLCAtMTQuOSwgLTEyLjIsIC0xNC45LCAtMS44LCAtMy4yLCAtMC44LCAtMy4yLCAtNTAuMCwgLTEwLjgsIC01MC4wLCAtOS45LCAtNy4zLCAtOS42LCAtNi40LCAtOS40LCAtNTAuMCwgLTEyLjMsIC04LjcsIC0xMS4zLCA3LjYsIC0zLjMsIDguNywgLTIuOSxdLFxuICAgICAgICAgICAgWy0xMi41LCAtMTIuOSwgLTEzLjQsIC0xMC4wLCAtOC41LCAtOS4wLCAtNy44LCAtNi44LCAtMTEuOCwgLTExLjMsIC0xMi40LCAtMTAuMSwgLTAuMywgLTAuNSwgLTAuNSwgMS4yLCAtNi4xLCAtNi4wLCAtNi43LCAtMy41LCAtNS45LCAtNS42LCAtNS41LCAtMi45LCAtOS41LCAtNy44LCAtOC41LCAtNS4zLCA4LjEsIDkuMywgNy44LCAxMS44LCAtMTQuNCwgLTE1LjcsIC0xNC41LCAtMTQuNiwgLTguNCwgLTguNywgLTcuOSwgLTcuMSwgLTE0LjMsIC0xMy44LCAtMTMuOCwgLTEyLjMsIC0yLjQsIC0yLjIsIC0yLjksIC0wLjIsIC01MC4wLCAtOC45LCAtNTAuMCwgLTcuMSwgLTguMSwgLTkuMSwgLTguNywgLTYuNiwgLTUwLjAsIC05LjcsIC0xMS40LCAtOC4wLCA2LjgsIC0xLjgsIDYuOSwgMC40LF0sXG4gICAgICAgICAgICBbLTIuNiwgLTYuMywgLTQuOSwgLTQuOSwgLTYuNCwgLTkuNCwgLTcuOSwgLTguNiwgLTYuMywgLTcuNCwgLTguMiwgLTYuNiwgLTkuNywgLTE0LjksIC0xMS4xLCAtMTMuOSwgLTAuMiwgLTguMiwgLTIuMywgLTYuOCwgLTguOSwgLTExLjEsIC05LjQsIC0xMC45LCAtOC45LCAtMTEuNywgLTEwLjAsIC05LjksIC0xMi4xLCAtMTUuMiwgLTE0LjMsIC0xNC40LCAxMS4xLCAyLjksIDkuMiwgMy41LCAtMy4wLCAtNy4wLCAtNC4zLCAtNi4yLCAtMi4yLCAtNi42LCAtMy43LCAtNS43LCAtNi4wLCAtMTAuNCwgLTguNiwgLTkuNSwgLTUwLjAsIC0xNS41LCAtNTAuMCwgLTEzLjksIC03LjgsIC0xMC41LCAtOC43LCAtOS42LCAtNTAuMCwgLTE2LjUsIC0xNy4xLCAtMTQuOCwgLTEyLjEsIC0xOC45LCAtMTIuNCwgLTE3LjQsXSxcbiAgICAgICAgICAgIFstOC41LCAwLjgsIC05LjEsIC0wLjcsIC0xMC4xLCAtNy41LCAtOS4xLCAtOC4yLCAtMTEuNCwgLTMuMSwgLTExLjgsIC00LjQsIC0xNS41LCAtMTQuMywgLTE0LjgsIC0xNS40LCAtNi42LCAtNC43LCAtNy4xLCAtNS44LCAtMTIuNSwgLTEwLjMsIC0xMS4wLCAtMTIuMiwgLTEzLjQsIC0xMC42LCAtMTIuNSwgLTExLjgsIC0xNy40LCAtMTUuMSwgLTE3LjcsIC0xNS43LCAyLjksIDEyLjUsIDMuMSwgMTAuMywgLTcuNywgLTUuMiwgLTYuMiwgLTcuMywgLTUuNCwgLTEuNywgLTUuNCwgLTMuNywgLTExLjYsIC05LjEsIC0xMy4wLCAtMTAuOCwgLTUwLjAsIC0xMC4zLCAtNTAuMCwgLTExLjIsIC05LjgsIC04LjMsIC05LjEsIC05LjcsIC01MC4wLCAtMTIuNywgLTIwLjYsIC0xMy4xLCAtMTYuMCwgLTE2LjYsIC0xNy4wLCAtMTguNCxdLFxuICAgICAgICAgICAgWy01LjAsIC02LjQsIC0zLjQsIC01LjYsIC03LjUsIC05LjMsIC03LjEsIC04LjgsIC04LjgsIC03LjQsIC02LjksIC02LjksIC0xMS40LCAtMTUuMiwgLTkuNywgLTEzLjcsIC0xLjgsIC03LjgsIC0wLjgsIC03LjIsIC05LjQsIC0xMC42LCAtOC43LCAtMTEuMiwgLTEwLjAsIC0xMC4xLCAtNy44LCAtMTAuNSwgLTEzLjIsIC0xNC42LCAtMTMuMCwgLTE0LjUsIDkuMiwgMy4xLCAxMC44LCAzLjAsIC00LjUsIC02LjcsIC0yLjcsIC02LjcsIC01LjAsIC02LjgsIC0yLjUsIC02LjcsIC03LjUsIC0xMC40LCAtNy40LCAtMTAuMiwgLTUwLjAsIC0xNS41LCAtNTAuMCwgLTE0LjIsIC04LjksIC0xMC4yLCAtOC41LCAtMTAuMCwgLTUwLjAsIC0xNS42LCAtMTUuMywgLTE1LjUsIC0xMy4wLCAtMTguOCwgLTEyLjYsIC0xOC4zLF0sXG4gICAgICAgICAgICBbLTguMSwgLTEuMSwgLTguOSwgMS40LCAtOC42LCAtOS4yLCAtOS40LCAtNi44LCAtMTEuMCwgLTQuOSwgLTExLjUsIC0yLjYsIC0xMy43LCAtMTYuOCwgLTE0LjUsIC0xMi42LCAtNi4wLCAtNi43LCAtNy4yLCAtNC4yLCAtMTEuNiwgLTExLjksIC0xMS4yLCAtMTAuOSwgLTEzLjEsIC0xMi4yLCAtMTIuNSwgLTEwLjMsIC0xNi44LCAtMTcuMiwgLTE3LjgsIC0xNC42LCAzLjUsIDEwLjMsIDMuMCwgMTIuNCwgLTYuOSwgLTcuNSwgLTYuOCwgLTQuOSwgLTUuNCwgLTQuMiwgLTUuNCwgLTEuMywgLTEwLjgsIC0xMS41LCAtMTIuNCwgLTguMiwgLTUwLjAsIC0xMi41LCAtNTAuMCwgLTguOSwgLTkuMiwgLTEwLjAsIC05LjQsIC03LjksIC01MC4wLCAtMTQuMywgLTE5LjksIC0xMS40LCAtMTYuMiwgLTE5LjIsIC0xNS44LCAtMTUuOSxdLFxuICAgICAgICAgICAgWy02LjMsIC03LjQsIC04LjAsIC02LjAsIDIuOCwgLTAuNywgMC45LCAwLjMsIC03LjUsIC00LjQsIC04LjQsIC0zLjYsIC0zLjAsIC03LjcsIC0zLjcsIC02LjIsIC01LjMsIC0xMC4wLCAtNy4yLCAtOC45LCAtMC43LCAtMy4yLCAtMS44LCAtMi40LCAtOS45LCAtMTEuNywgLTkuNiwgLTkuOSwgLTYuMywgLTkuNywgLTguMCwgLTguNCwgLTMuMCwgLTcuNywgLTQuNSwgLTYuOSwgMTEuMywgOC4yLCA5LjQsIDkuMSwgLTEuMCwgLTMuMywgLTEuOCwgLTIuNCwgMS41LCAtMi4xLCAtMC40LCAtMS4xLCAtNTAuMCwgLTE0LjUsIC01MC4wLCAtMTIuOSwgMi44LCAtMC4wLCAxLjQsIDAuNywgLTUwLjAsIC04LjcsIC0xNC4xLCAtNy41LCAtNS4yLCAtMTIuNSwgLTYuNSwgLTEwLjcsXSxcbiAgICAgICAgICAgIFstOS45LCAtNS4wLCAtMTAuMCwgLTYuNSwgLTAuNywgMi42LCAtMC4yLCAwLjEsIC0xMC4zLCAtMS44LCAtOS45LCAtMy44LCAtNi40LCAtNC43LCAtNS44LCAtNi43LCAtOC4yLCAtOC4zLCAtOC4wLCAtMTAuMiwgLTMuOSwgLTEuMCwgLTIuNywgLTIuOSwgLTExLjcsIC04LjgsIC0xMS4wLCAtMTAuMSwgLTkuNSwgLTcuMywgLTkuNCwgLTguNywgLTcuMCwgLTUuMiwgLTYuNywgLTcuNSwgOC4yLCAxMS42LCA4LjgsIDkuMSwgLTMuNywgLTAuOSwgLTMuMSwgLTMuMCwgLTIuMCwgMS4yLCAtMi4zLCAtMS4zLCAtNTAuMCwgLTEyLjEsIC01MC4wLCAtMTIuNiwgMC4xLCAyLjUsIDAuNywgMC42LCAtNTAuMCwgLTYuMCwgLTE0LjgsIC03LjUsIC04LjYsIC05LjQsIC04LjUsIC0xMS4yLF0sXG4gICAgICAgICAgICBbLTcuNSwgLTYuMiwgLTcuMiwgLTYuMiwgMC45LCAwLjIsIDIuNSwgMC4yLCAtOC4zLCAtMy41LCAtNy4xLCAtMy43LCAtNC4xLCAtNi4zLCAtMy4xLCAtNi4zLCAtNS43LCAtOC45LCAtNS42LCAtOC40LCAtMi4zLCAtMi4yLCAwLjcsIC0yLjcsIC05LjgsIC04LjksIC03LjEsIC05LjMsIC03LjUsIC04LjIsIC02LjIsIC03LjksIC00LjMsIC02LjIsIC0yLjcsIC02LjgsIDkuNCwgOC44LCAxMi4xLCA4LjgsIC0yLjEsIC0yLjAsIDAuMSwgLTIuNCwgMC4wLCAtMS4xLCAxLjMsIC0wLjgsIC01MC4wLCAtMTEuOSwgLTUwLjAsIC0xMi42LCAxLjIsIDAuNywgMy41LCAwLjgsIC01MC4wLCAtNy4xLCAtMTIuNCwgLTcuMSwgLTcuMSwgLTEwLjYsIC01LjAsIC0xMC42LF0sXG4gICAgICAgICAgICBbLTkuMCwgLTYuNSwgLTEwLjAsIC00LjgsIDAuMSwgLTAuMSwgLTAuMywgMi40LCAtOS45LCAtMy41LCAtMTAuNiwgLTIuMCwgLTUuNCwgLTYuNiwgLTUuNiwgLTQuNCwgLTcuNiwgLTkuOSwgLTguNSwgLTguMiwgLTMuMCwgLTIuOCwgLTMuMCwgLTAuOSwgLTEyLjgsIC0xMS44LCAtMTAuNywgLTkuMywgLTguOCwgLTkuMiwgLTkuMiwgLTcuMSwgLTYuMiwgLTcuMywgLTYuNywgLTQuOSwgOS4xLCA5LjEsIDguOCwgMTEuMiwgLTMuMSwgLTMuMCwgLTMuMywgLTEuMCwgLTEuMSwgLTEuNCwgLTIuMCwgMS4yLCAtNTAuMCwgLTEyLjgsIC01MC4wLCAtMTAuOSwgMC44LCAwLjUsIDAuNywgMi4zLCAtNTAuMCwgLTcuNSwgLTE2LjUsIC01LjksIC03LjgsIC0xMS4xLCAtNy44LCAtOS4wLF0sXG4gICAgICAgICAgICBbLTcuMSwgLTUuNiwgLTkuMSwgLTUuMSwgLTUuOSwgLTguMCwgLTYuOSwgLTcuNCwgLTEuOSwgLTEuNiwgLTQuNywgLTEuNCwgLTkuNiwgLTE0LjYsIC0xMC40LCAtMTMuMCwgLTYuNywgLTEwLjgsIC05LjQsIC05LjksIC05LjEsIC0xMC41LCAtOS4xLCAtMTAuNCwgLTUuOSwgLTkuMywgLTcuOSwgLTguMSwgLTEyLjcsIC0xNS4wLCAtMTUuMSwgLTE0LjMsIC0yLjIsIC01LjQsIC01LjAsIC01LjQsIC0xLjAsIC0zLjcsIC0yLjEsIC0zLjEsIDEyLjgsIDkuNiwgMTEuMSwgMTAuMSwgLTQuOCwgLTkuNCwgLTguMSwgLTguNiwgLTUwLjAsIC0xOC4zLCAtNTAuMCwgLTE1LjQsIC01LjksIC03LjUsIC02LjYsIC03LjEsIC01MC4wLCAtOS41LCAtMTEuNywgLTguNCwgLTEyLjUsIC0xNy4zLCAtMTMuMiwgLTE1LjQsXSxcbiAgICAgICAgICAgIFstMTAuMiwgLTEuNiwgLTEwLjIsIC0zLjIsIC03LjMsIC00LjYsIC02LjUsIC02LjIsIC02LjcsIDMuMCwgLTYuOCwgMC44LCAtMTEuOSwgLTEwLjgsIC0xMS41LCAtMTIuMiwgLTkuNiwgLTcuMSwgLTkuNywgLTguNCwgLTkuOCwgLTguMSwgLTguMiwgLTkuNywgLTkuNCwgLTUuMCwgLTguMCwgLTcuMiwgLTE1LjIsIC0xMi44LCAtMTQuOSwgLTEzLjgsIC02LjYsIC0xLjcsIC02LjgsIC00LjIsIC0zLjMsIC0wLjksIC0yLjAsIC0zLjAsIDkuNiwgMTIuOCwgOS43LCAxMC41LCAtOC41LCAtNS42LCAtOS4zLCAtNy44LCAtNTAuMCwgLTEyLjcsIC01MC4wLCAtMTMuOCwgLTYuOCwgLTUuMSwgLTUuMywgLTYuNSwgLTUwLjAsIC00LjEsIC0xMi44LCAtNS44LCAtMTQuNCwgLTE0LjEsIC0xMy42LCAtMTQuOCxdLFxuICAgICAgICAgICAgWy04LjIsIC00LjcsIC03LjEsIC01LjAsIC02LjUsIC03LjcsIC01LjUsIC02LjksIC00LjEsIC0wLjgsIC0xLjIsIC0wLjksIC0xMC41LCAtMTIuOCwgLTguMiwgLTEzLjAsIC03LjUsIC0xMC4wLCAtNy4yLCAtOS43LCAtOS4yLCAtOS40LCAtNy4zLCAtMTAuMiwgLTYuNSwgLTguMCwgLTQuMywgLTguMCwgLTEzLjEsIC0xNC4xLCAtMTIuMiwgLTEzLjgsIC0zLjcsIC01LjQsIC0yLjUsIC01LjQsIC0xLjgsIC0zLjEsIDAuMSwgLTMuMywgMTEuMSwgOS43LCAxMi45LCA5LjgsIC01LjUsIC04LjEsIC01LjQsIC03LjgsIC01MC4wLCAtMTYuNCwgLTUwLjAsIC0xNC44LCAtNS45LCAtNy4xLCAtNC43LCAtNy4yLCAtNTAuMCwgLTguNCwgLTYuNCwgLTguMSwgLTEyLjEsIC0xNi4yLCAtMTAuMywgLTE1LjgsXSxcbiAgICAgICAgICAgIFstOS4yLCAtMy4wLCAtOS45LCAtMS4yLCAtNi41LCAtNi4xLCAtNi44LCAtNC40LCAtNi40LCAwLjksIC03LjAsIDMuMCwgLTExLjgsIC0xMy4wLCAtMTEuMSwgLTEwLjQsIC05LjMsIC05LjIsIC05LjgsIC02LjQsIC05LjUsIC05LjUsIC05LjQsIC04LjAsIC04LjEsIC04LjIsIC05LjQsIC01LjIsIC0xNC4yLCAtMTQuOSwgLTE0LjksIC0xMi4zLCAtNS43LCAtMy43LCAtNi43LCAtMS4zLCAtMi40LCAtMy4wLCAtMi40LCAtMS4wLCAxMC4xLCAxMC41LCA5LjgsIDEzLjEsIC03LjIsIC04LjAsIC04LjQsIC01LjAsIC01MC4wLCAtMTQuNywgLTUwLjAsIC0xMS40LCAtNi4zLCAtNi43LCAtNS44LCAtNS4wLCAtNTAuMCwgLTYuMSwgLTEzLjQsIC0zLjYsIC0xMy4wLCAtMTYuMCwgLTEzLjcsIC0xMy4zLF0sXG4gICAgICAgICAgICBbLTguMiwgLTEwLjgsIC0xMC4xLCAtOS44LCAtMC40LCAtMy42LCAtMS43LCAtMi45LCAtNy45LCAtOC40LCAtOS44LCAtOC4yLCA2LjIsIDIuMywgMC42LCAyLjksIC03LjEsIC0xMS42LCAtOS4yLCAtMTEuMSwgLTUuNiwgLTguMywgLTcuMiwgLTguNCwgLTEwLjcsIC0xMy42LCAtMTEuNCwgLTEyLjAsIDAuMCwgLTIuOCwgLTEuOCwgLTIuNCwgLTYuMCwgLTExLjYsIC03LjUsIC0xMC44LCAxLjUsIC0yLjAsIDAuMCwgLTEuMSwgLTQuOCwgLTguNSwgLTUuNSwgLTcuMiwgMTEuOSwgOC42LCAxMC4wLCA5LjAsIC01MC4wLCAtMTQuMiwgLTUwLjAsIC0xMi44LCAtNC4xLCAtNy40LCAtNS43LCAtNi41LCAtNTAuMCwgLTExLjAsIC0xNC4zLCAtOS45LCAxLjQsIC03LjksIC0wLjcsIC02LjgsXSxcbiAgICAgICAgICAgIFstMTIuNSwgLTguNywgLTEzLjAsIC05LjksIC0zLjksIC0xLjAsIC0zLjQsIC0yLjksIC0xMi41LCAtNi4zLCAtMTEuNiwgLTguMSwgMy4zLCA2LjAsIC0xLjYsIDMuOCwgLTEwLjUsIC0xMC4xLCAtMTEuMSwgLTExLjEsIC05LjAsIC02LjksIC04LjIsIC05LjEsIC0xNC4wLCAtMTEuNCwgLTEyLjMsIC0xMi4xLCAtMy4xLCAwLjIsIC0zLjIsIC0yLjIsIC0xMC40LCAtOS4xLCAtMTAuNCwgLTExLjUsIC0yLjEsIDEuMiwgLTEuMSwgLTEuNCwgLTkuNCwgLTUuNiwgLTguMSwgLTguMCwgOC42LCAxMi40LCA4LjYsIDkuNSwgLTUwLjAsIC0xMC40LCAtNTAuMCwgLTExLjYsIC03LjIsIC01LjcsIC03LjUsIC03LjQsIC01MC4wLCAtOC42LCAtMTUuNywgLTkuNywgLTMuMCwgLTMuNywgLTMuMiwgLTUuOSxdLFxuICAgICAgICAgICAgWy0xMS4xLCAtMTEuOSwgLTEwLjYsIC0xMS4zLCAtMi42LCAtNC4xLCAtMS43LCAtMy41LCAtMTEuNCwgLTkuNiwgLTkuNiwgLTkuMiwgMy43LCAyLjUsIDEuNiwgMi41LCAtOS42LCAtMTIuMywgLTkuNSwgLTExLjgsIC04LjAsIC05LjQsIC03LjIsIC05LjMsIC0xMy4zLCAtMTIuOCwgLTEwLjksIC0xMi42LCAtMS44LCAtMi45LCAtMC44LCAtMi45LCAtOC42LCAtMTMuMCwgLTcuNCwgLTEyLjQsIC0wLjQsIC0yLjMsIDEuMywgLTIuMCwgLTguMSwgLTkuMywgLTUuNCwgLTguNCwgMTAuMCwgOC42LCAxMS40LCA4LjksIC01MC4wLCAtMTMuNywgLTUwLjAsIC0xMy4yLCAtNi4xLCAtOC4xLCAtNS41LCAtNy41LCAtNTAuMCwgLTExLjMsIC0xMi43LCAtMTAuMSwgLTEuNiwgLTcuOCwgLTAuMywgLTcuMixdLFxuICAgICAgICAgICAgWy0xMS40LCAtMTAuMCwgLTEyLjcsIC04LjIsIC0zLjEsIC0zLjEsIC0yLjgsIC0wLjksIC0xMS43LCAtNy4zLCAtMTIuMSwgLTUuOCwgMy42LCAzLjYsIC0xLjEsIDUuOCwgLTkuNCwgLTExLjksIC0xMC43LCAtMTAuMCwgLTguNSwgLTguOCwgLTguMiwgLTYuNSwgLTEzLjksIC0xMy4wLCAtMTIuOSwgLTEwLjksIC0zLjEsIC0yLjMsIC0zLjIsIC0wLjIsIC05LjUsIC0xMC44LCAtMTAuMiwgLTguMiwgLTEuMSwgLTEuMywgLTAuOCwgMS4yLCAtOC42LCAtNy44LCAtNy44LCAtNS4wLCA5LjAsIDkuNSwgOC45LCAxMi4wLCAtNTAuMCwgLTEzLjAsIC01MC4wLCAtMTAuMywgLTYuMiwgLTcuMCwgLTcuMSwgLTUuNCwgLTUwLjAsIC05LjMsIC0xNC4wLCAtOC4yLCAtMi40LCAtNi4zLCAtMi40LCAtMy45LF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzMuMywgLTUwLjAsIDMwLjYsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjkuMiwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTQuOCwgLTYuMiwgLTE0LjksIC03LjYsIC0xNC42LCAtMTEuNiwgLTEzLjAsIC0xMi4yLCAtMTQuMCwgLTkuMCwgLTE0LjEsIC0xMC4xLCAtMTMuNiwgLTExLjIsIC0xMi40LCAtMTIuNSwgLTguMSwgMi4yLCAtOC43LCAwLjQsIC0xNS4zLCAtMTEuMywgLTEzLjIsIC0xMy4zLCAtMTEuOSwgLTcuMiwgLTExLjgsIC03LjksIC0xMC43LCAtNy40LCAtMTAuOCwgLTguOSwgLTE1LjUsIC0xMC4zLCAtMTUuNSwgLTEyLjUsIC0xNC41LCAtMTIuMSwgLTExLjksIC0xMi44LCAtMTguMywgLTEyLjcsIC0xNi40LCAtMTQuNywgLTE0LjIsIC0xMC40LCAtMTMuNywgLTEzLjAsIC01MC4wLCAxNS4xLCAtNTAuMCwgMTMuMywgLTkuOSwgLTUuOCwgLTguOSwgLTcuNiwgLTUwLjAsIC0xLjUsIC03LjgsIC0zLjAsIC04LjEsIDMuNiwgLTkuNCwgMi4wLF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzAuNiwgLTUwLjAsIDM1LjIsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjguNSwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTMuOCwgLTcuNSwgLTE0LjQsIC01LjEsIC0xMi42LCAtMTEuNiwgLTExLjUsIC0xMC4xLCAtMTMuMiwgLTkuNywgLTEyLjcsIC03LjQsIC0xMS45LCAtMTEuOSwgLTExLjUsIC0xMC4yLCAtNy4yLCAwLjksIC04LjYsIDIuNiwgLTE0LjEsIC0xMi44LCAtMTMuMywgLTExLjAsIC05LjcsIC04LjQsIC0xMS4yLCAtNS4zLCAtOS4zLCAtOC43LCAtOS45LCAtNy4xLCAtMTMuOSwgLTExLjIsIC0xNC4yLCAtOC45LCAtMTIuOSwgLTEyLjYsIC0xMi42LCAtMTAuOSwgLTE1LjQsIC0xMy44LCAtMTQuOCwgLTExLjQsIC0xMi44LCAtMTEuNiwgLTEzLjIsIC0xMC4zLCAtNTAuMCwgMTMuMywgLTUwLjAsIDE1LjIsIC04LjYsIC03LjAsIC04LjQsIC00LjgsIC01MC4wLCAtMy4wLCAtNy4xLCAtMC4xLCAtNy4zLCAyLjMsIC04LjcsIDMuOSxdLFxuICAgICAgICAgICAgWy03LjMsIC02LjMsIC04LjksIC01LjUsIDIuOSwgMC4yLCAxLjUsIDEuMiwgLTguNSwgLTIuMywgLTEwLjAsIC0xLjcsIC01LjYsIC0xMC41LCAtNS41LCAtOS42LCAtNC4zLCAtNy45LCAtNi4xLCAtNy4yLCAyLjMsIC0wLjYsIDAuNSwgLTAuMCwgLTguOSwgLTExLjAsIC05LjQsIC05LjMsIC00LjYsIC05LjQsIC03LjMsIC04LjEsIC03LjgsIC05LjgsIC04LjksIC05LjIsIDIuOCwgMC4xLCAxLjIsIDAuOCwgLTUuOSwgLTYuOCwgLTUuOSwgLTYuMywgLTQuMSwgLTcuMiwgLTYuMSwgLTYuMiwgLTUwLjAsIC05LjksIC01MC4wLCAtOC42LCAxMi41LCA5LjQsIDExLjAsIDkuOCwgLTUwLjAsIC00LjgsIC04LjcsIC0zLjUsIC0wLjAsIC04LjYsIC0yLjEsIC03LjAsXSxcbiAgICAgICAgICAgIFstMTAuMSwgLTQuMywgLTEwLjgsIC01LjgsIDAuMSwgMi4zLCAwLjcsIDAuNiwgLTEwLjQsIC0wLjIsIC0xMC44LCAtMi4wLCAtOC44LCAtOS4yLCAtOC4wLCAtOS43LCAtNi44LCAtNS45LCAtNy41LCAtNy4wLCAtMS40LCAyLjIsIC0wLjksIC0wLjQsIC0xMC44LCAtNy43LCAtOS44LCAtOC44LCAtOC45LCAtNy4zLCAtOS42LCAtOS4xLCAtMTAuNSwgLTguMywgLTEwLjIsIC0xMC4wLCAtMC4wLCAyLjUsIDAuNywgMC41LCAtNy41LCAtNS4xLCAtNy4xLCAtNi43LCAtNy40LCAtNS43LCAtOC4xLCAtNy4wLCAtNTAuMCwgLTUuOCwgLTUwLjAsIC03LjAsIDkuNCwgMTIuNywgMTAuMSwgMTAuMCwgLTUwLjAsIC0xLjUsIC0xMS4zLCAtMy4zLCAtNS40LCAtNC4yLCAtNS42LCAtNi44LF0sXG4gICAgICAgICAgICBbLTguNCwgLTYuMiwgLTguOSwgLTUuOSwgMS44LCAwLjQsIDIuNywgMS4yLCAtOS4xLCAtMS4yLCAtOC44LCAtMS41LCAtNy4yLCAtMTAuNSwgLTQuOSwgLTkuNiwgLTUuNywgLTcuNCwgLTUuNSwgLTcuNCwgMC4zLCAtMC4zLCAxLjgsIC0wLjQsIC05LjAsIC04LjcsIC03LjMsIC04LjksIC01LjksIC05LjQsIC02LjQsIC04LjcsIC04LjcsIC05LjEsIC04LjUsIC05LjQsIDEuNCwgMC43LCAzLjUsIDAuNywgLTYuNiwgLTUuMywgLTQuNywgLTUuOCwgLTUuNywgLTcuNSwgLTUuNSwgLTcuMSwgLTUwLjAsIC04LjksIC01MC4wLCAtOC40LCAxMS4wLCAxMC4xLCAxMy4yLCAxMC4yLCAtNTAuMCwgLTQuMiwgLTYuMSwgLTMuNiwgLTMuNSwgLTguNCwgLTEuMiwgLTYuOCxdLFxuICAgICAgICAgICAgWy05LjEsIC01LjQsIC0xMC40LCAtNC4yLCAxLjAsIDAuNSwgMC42LCAyLjQsIC05LjYsIC0xLjUsIC0xMC41LCAtMC41LCAtOC45LCAtMTAuNSwgLTcuMiwgLTguMywgLTYuMywgLTYuOSwgLTcuNywgLTUuMSwgLTAuNSwgMC4xLCAtMC42LCAyLjMsIC0xMS4xLCAtMTAuMiwgLTEwLjUsIC03LjAsIC04LjMsIC05LjQsIC05LjQsIC02LjYsIC05LjYsIC05LjcsIC0xMC4wLCAtNy45LCAwLjcsIDAuNiwgMC44LCAyLjMsIC03LjEsIC02LjUsIC03LjIsIC01LjAsIC02LjUsIC03LjQsIC03LjUsIC01LjQsIC01MC4wLCAtNy42LCAtNTAuMCwgLTQuOCwgOS44LCAxMC4wLCAxMC4yLCAxMi4xLCAtNTAuMCwgLTMuMSwgLTExLjQsIC0wLjcsIC00LjYsIC02LjYsIC00LjksIC0zLjksXSxcbiAgICAgICAgICAgIFstNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAyOS4yLCAtNTAuMCwgMjguNSwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAzMy4zLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCxdLFxuICAgICAgICAgICAgWy0xMy4wLCAtNy4wLCAtMTMuMSwgLTguMywgLTkuMiwgLTYuNSwgLTguOSwgLTcuNiwgLTkuOCwgLTAuNywgLTkuMiwgLTIuMSwgLTEyLjQsIC0xMC4zLCAtMTIuNCwgLTExLjYsIC05LjUsIC00LjYsIC0xMC40LCAtNS43LCAtMTMuNiwgLTEwLjEsIC0xMS40LCAtMTAuOSwgLTYuNSwgLTEuNSwgLTYuMiwgLTMuNiwgLTEyLjgsIC04LjAsIC0xMi4zLCAtOS43LCAtMTYuNSwgLTEyLjcsIC0xNS42LCAtMTQuMywgLTguNywgLTYuMCwgLTcuMSwgLTcuNSwgLTkuNSwgLTQuMSwgLTguNCwgLTYuMSwgLTExLjAsIC04LjYsIC0xMS4zLCAtOS4zLCAtNTAuMCwgLTEuNSwgLTUwLjAsIC0zLjAsIC00LjgsIC0xLjUsIC00LjIsIC0zLjEsIC01MC4wLCAxNi40LCAtNS4xLCAxNC4yLCAtMTAuMSwgLTQuMywgLTEwLjAsIC01LjQsXSxcbiAgICAgICAgICAgIFstMTMuNSwgLTE2LjMsIC0xMS44LCAtMTUuNSwgLTEzLjYsIC0xNS4zLCAtMTIuMSwgLTE2LjEsIC03LjcsIC0xMy4zLCAtNC4yLCAtMTIuNiwgLTE0LjEsIC0xNi4yLCAtMTAuMywgLTE1LjQsIC05LjYsIC0xMS42LCAtNy43LCAtOS44LCAtMTQuMywgLTE3LjUsIC0xMS4xLCAtMTcuMiwgLTUuMywgLTcuMSwgLTIuMiwgLTcuMSwgLTkuNiwgLTExLjksIC04LjcsIC0xMS40LCAtMTcuMSwgLTIwLjYsIC0xNS4zLCAtMTkuOSwgLTE0LjEsIC0xNC44LCAtMTIuNCwgLTE2LjUsIC0xMS43LCAtMTIuOCwgLTYuNCwgLTEzLjQsIC0xNC4zLCAtMTUuNywgLTEyLjcsIC0xNC4wLCAtNTAuMCwgLTcuOCwgLTUwLjAsIC03LjEsIC04LjcsIC0xMS4zLCAtNi4xLCAtMTEuNCwgLTUwLjAsIC01LjEsIDE4LjYsIC00LjgsIC04LjYsIC04LjEsIC00LjUsIC03LjMsXSxcbiAgICAgICAgICAgIFstMTIuNCwgLTguMiwgLTEzLjAsIC01LjksIC03LjcsIC03LjgsIC03LjQsIC01LjgsIC04LjgsIC0yLjAsIC05LjMsIC0wLjQsIC0xMS42LCAtMTEuMywgLTExLjYsIC05LjQsIC04LjksIC01LjYsIC0xMC4wLCAtMy4yLCAtMTEuNSwgLTExLjEsIC0xMC41LCAtOC4zLCAtNi4zLCAtNC45LCAtNi43LCAtMS4yLCAtMTAuNiwgLTkuNywgLTExLjMsIC04LjAsIC0xNC44LCAtMTMuMSwgLTE1LjUsIC0xMS40LCAtNy41LCAtNy41LCAtNy4xLCAtNS45LCAtOC40LCAtNS44LCAtOC4xLCAtMy42LCAtOS45LCAtOS43LCAtMTAuMSwgLTguMiwgLTUwLjAsIC0zLjAsIC01MC4wLCAtMC4xLCAtMy41LCAtMy4zLCAtMy42LCAtMC43LCAtNTAuMCwgMTQuMiwgLTQuOCwgMTYuNCwgLTguOSwgLTUuOCwgLTguOSwgLTMuNCxdLFxuICAgICAgICAgICAgWy0xMC43LCAtMTMuMiwgLTEyLjQsIC0xMS42LCAtNC44LCAtOC40LCAtNi4xLCAtNy4yLCAtMTAuMywgLTExLjgsIC0xMS4wLCAtMTEuNiwgMi44LCAtMS43LCAwLjcsIC0xLjEsIC02LjIsIC05LjcsIC03LjMsIC04LjQsIC01LjMsIC04LjYsIC02LjEsIC04LjMsIC0xMC41LCAtMTEuMiwgLTkuOCwgLTEwLjIsIDkuNSwgNi41LCA3LjYsIDYuOCwgLTEyLjEsIC0xNi4wLCAtMTMuMCwgLTE2LjIsIC01LjIsIC04LjYsIC03LjEsIC03LjgsIC0xMi41LCAtMTQuNCwgLTEyLjEsIC0xMy4wLCAxLjQsIC0zLjAsIC0xLjYsIC0yLjQsIC01MC4wLCAtOC4xLCAtNTAuMCwgLTcuMywgLTAuMCwgLTUuNCwgLTMuNSwgLTQuNiwgLTUwLjAsIC0xMC4xLCAtOC42LCAtOC45LCAxMy4yLCAtMC45LCA5LjcsIC0wLjMsXSxcbiAgICAgICAgICAgIFstMTguMSwgLTEyLjMsIC0xOS40LCAtMTQuMiwgLTEyLjIsIC05LjUsIC0xMS41LCAtMTAuOCwgLTE3LjksIC0xMS45LCAtMTguMiwgLTEzLjksIC02LjQsIC0zLjcsIC02LjgsIC01LjQsIC0xMi44LCAtNS45LCAtMTMuNiwgLTcuNCwgLTEzLjcsIC05LjksIC0xMi45LCAtMTIuNywgLTE2LjIsIC0xMS42LCAtMTUuMiwgLTEyLjcsIC0zLjIsIDAuNSwgLTMuMywgLTEuOCwgLTE4LjksIC0xNi42LCAtMTguOCwgLTE5LjIsIC0xMi41LCAtOS40LCAtMTAuNiwgLTExLjEsIC0xNy4zLCAtMTQuMSwgLTE2LjIsIC0xNi4wLCAtNy45LCAtMy43LCAtNy44LCAtNi4zLCAtNTAuMCwgMy42LCAtNTAuMCwgMi4zLCAtOC42LCAtNC4yLCAtOC40LCAtNi42LCAtNTAuMCwgLTQuMywgLTguMSwgLTUuOCwgLTAuOSwgMTQuMiwgLTEuOCwgMTEuNixdLFxuICAgICAgICAgICAgWy0xMS44LCAtMTMuMSwgLTExLjUsIC0xMi4wLCAtNi4yLCAtOC4zLCAtNS40LCAtNy40LCAtMTEuOCwgLTEyLjMsIC0xMS4xLCAtMTEuNCwgMC41LCAtMi41LCAyLjQsIC0xLjYsIC02LjgsIC05LjksIC02LjQsIC04LjksIC02LjEsIC04LjYsIC01LjAsIC03LjgsIC0xMC40LCAtMTEuNiwgLTguNSwgLTkuOSwgOC4yLCA2LjQsIDguNywgNi45LCAtMTIuNCwgLTE3LjAsIC0xMi42LCAtMTUuOCwgLTYuNSwgLTguNSwgLTUuMCwgLTcuOCwgLTEzLjIsIC0xMy42LCAtMTAuMywgLTEzLjcsIC0wLjcsIC0zLjIsIC0wLjMsIC0yLjQsIC01MC4wLCAtOS40LCAtNTAuMCwgLTguNywgLTIuMSwgLTUuNiwgLTEuMiwgLTQuOSwgLTUwLjAsIC0xMC4wLCAtNC41LCAtOC45LCA5LjcsIC0xLjgsIDExLjMsIC0wLjksXSxcbiAgICAgICAgICAgIFstMTcuMiwgLTEzLjMsIC0xNy44LCAtMTEuNiwgLTExLjAsIC0xMS4xLCAtMTAuNCwgLTkuMCwgLTE2LjAsIC0xMi43LCAtMTYuMSwgLTExLjEsIC01LjIsIC01LjQsIC02LjAsIC0zLjMsIC0xMS44LCAtNy4zLCAtMTMuMywgLTUuOSwgLTEyLjcsIC0xMS45LCAtMTEuOSwgLTkuMywgLTE1LjIsIC0xNS4wLCAtMTQuOSwgLTExLjAsIC0yLjgsIC0xLjgsIC0yLjksIDAuNCwgLTE3LjQsIC0xOC40LCAtMTguMywgLTE1LjksIC0xMC43LCAtMTEuMiwgLTEwLjYsIC05LjAsIC0xNS40LCAtMTQuOCwgLTE1LjgsIC0xMy4zLCAtNi44LCAtNS45LCAtNy4yLCAtMy45LCAtNTAuMCwgMi4wLCAtNTAuMCwgMy45LCAtNy4wLCAtNi44LCAtNi44LCAtMy45LCAtNTAuMCwgLTUuNCwgLTcuMywgLTMuNCwgLTAuMywgMTEuNiwgLTAuOSwgMTQuMSxdXTtcbiAgICAgICAgdGhpcy5UUkFOUyA9IFtbNSwgMCwgMCwgNF0sXG4gICAgICAgICAgICBbMCwgNSwgNCwgMF0sXG4gICAgICAgICAgICBbMCwgNCwgNSwgMF0sXG4gICAgICAgICAgICBbNCwgMCwgMCwgNV1dO1xuICAgICAgICB0aGlzLkNPTkJMTyA9IHsgJ0EnOiAwLCAnUic6IDEsICdOJzogMiwgJ0QnOiAzLCAnQyc6IDQsICdRJzogNSwgJ0UnOiA2LCAnRyc6IDcsICdIJzogOCwgJ0knOiA5LCAnTCc6IDEwLCAnSyc6IDExLCAnTSc6IDEyLCAnRic6IDEzLCAnUCc6IDE0LCAnUyc6IDE1LCAnVCc6IDE2LCAnVyc6IDE3LCAnWSc6IDE4LCAnVic6IDE5LCAnQic6IDIwLCAnWic6IDIxLCAnWCc6IDIyLCAnKic6IDIzIH07XG4gICAgICAgIHRoaXMuQ09OTlVDTCA9IHsgJ0EnOiAwLCAnVCc6IDEsICdDJzogMiwgJ0cnOiAzIH07XG4gICAgICAgIHRoaXMuQ09OU0NITiA9IHsgJ0FBQSc6IDAsICdBQUMnOiAxLCAnQUFHJzogMiwgJ0FBVCc6IDMsICdBQ0EnOiA0LCAnQUNDJzogNSwgJ0FDRyc6IDYsICdBQ1QnOiA3LCAnQUdBJzogOCwgJ0FHQyc6IDksICdBR0cnOiAxMCwgJ0FHVCc6IDExLCAnQVRBJzogMTIsICdBVEMnOiAxMywgJ0FURyc6IDE0LCAnQVRUJzogMTUsICdDQUEnOiAxNiwgJ0NBQyc6IDE3LCAnQ0FHJzogMTgsICdDQVQnOiAxOSwgJ0NDQSc6IDIwLCAnQ0NDJzogMjEsICdDQ0cnOiAyMiwgJ0NDVCc6IDIzLCAnQ0dBJzogMjQsICdDR0MnOiAyNSwgJ0NHRyc6IDI2LCAnQ0dUJzogMjcsICdDVEEnOiAyOCwgJ0NUQyc6IDI5LCAnQ1RHJzogMzAsICdDVFQnOiAzMSwgJ0dBQSc6IDMyLCAnR0FDJzogMzMsICdHQUcnOiAzNCwgJ0dBVCc6IDM1LCAnR0NBJzogMzYsICdHQ0MnOiAzNywgJ0dDRyc6IDM4LCAnR0NUJzogMzksICdHR0EnOiA0MCwgJ0dHQyc6IDQxLCAnR0dHJzogNDIsICdHR1QnOiA0MywgJ0dUQSc6IDQ0LCAnR1RDJzogNDUsICdHVEcnOiA0NiwgJ0dUVCc6IDQ3LCAnVEFBJzogNDgsICdUQUMnOiA0OSwgJ1RBRyc6IDUwLCAnVEFUJzogNTEsICdUQ0EnOiA1MiwgJ1RDQyc6IDUzLCAnVENHJzogNTQsICdUQ1QnOiA1NSwgJ1RHQSc6IDU2LCAnVEdDJzogNTcsICdUR0cnOiA1OCwgJ1RHVCc6IDU5LCAnVFRBJzogNjAsICdUVEMnOiA2MSwgJ1RURyc6IDYyLCAnVFRUJzogNjMgfTtcbiAgICAgICAgdGhpcy5zZXRNZXRob2QoYWxpZ25HcmlkXyk7XG4gICAgICAgIHRoaXMuc2V0U2VxdWVuY2VzKHNlcTFfLCBzZXEyXyk7XG4gICAgICAgIHRoaXMuc2V0R2FwKGdhcF8pO1xuICAgIH1cbiAgICBmaWxsTmVlZGxlbWFuKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0udmFsdWUgPSAtaSAqIHRoaXMuZ2FwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0ucGFyZW50SSA9IGkgLSAxO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0ucGFyZW50SiA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4yOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnZhbHVlID0gLWkgKiB0aGlzLmdhcDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbMF1baV0ucGFyZW50SiA9IGkgLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZpbGxPbmUoaSwgaikge1xuICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9IE1hdGgubWF4KHRoaXMuZHBHcmlkW2kgLSAxXVtqIC0gMV0udmFsdWUgKyB0aGlzLnNjb3Jlc1tpIC0gMV1baiAtIDFdLCBNYXRoLm1heCh0aGlzLmRwR3JpZFtpIC0gMV1bal0udmFsdWUgLSB0aGlzLmdhcCwgdGhpcy5kcEdyaWRbaV1baiAtIDFdLnZhbHVlIC0gdGhpcy5nYXApKTtcbiAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID09IHRoaXMuZHBHcmlkW2kgLSAxXVtqIC0gMV0udmFsdWUgKyB0aGlzLnNjb3Jlc1tpIC0gMV1baiAtIDFdKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gaSAtIDE7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gaiAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPT0gdGhpcy5kcEdyaWRbaSAtIDFdW2pdLnZhbHVlIC0gdGhpcy5nYXApIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSBpIC0gMTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSBqO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IGk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gaiAtIDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ3JpZEZyb21OYW1lKHBhdGgpIHtcbiAgICAgICAgc3dpdGNoIChwYXRoKSB7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU00NSc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTQ1O1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNNTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU01MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTYyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNNjI7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU04MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTgwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNOTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU05MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BBTTMwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNMzA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQQU03MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTcwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUEFNMjUwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNMjUwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTlVDTEVPVElERVMnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5OVUNMRU9USURFUztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05OVUNMO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdUUkFOUyc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlRSQU5TO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTk5VQ0w7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1NDSE5FSURFUic6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlNDSE5FSURFUjtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05TQ0hOO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsU2NvcmVzKCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdFJlc3VsdChpLCBqKSB7XG4gICAgICAgIGxldCByZXMxID0gXCJcIiwgcmVzMiA9IFwiXCIsIGdhcFMgPSBcIlwiO1xuICAgICAgICBsZXQgdG90YWwgPSB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0ZXA7IGkrKykge1xuICAgICAgICAgICAgZ2FwUyArPSAnfCc7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGkgPiAwIHx8IGogPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9PSBpKSB7XG4gICAgICAgICAgICAgICAgcmVzMSA9IGdhcFMgKyByZXMxO1xuICAgICAgICAgICAgICAgIHJlczIgPSB0aGlzLnNlcTIuc3Vic3RyKChqIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9PSBqKSB7XG4gICAgICAgICAgICAgICAgcmVzMiA9IGdhcFMgKyByZXMyO1xuICAgICAgICAgICAgICAgIHJlczEgPSB0aGlzLnNlcTEuc3Vic3RyKChpIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgLSAxID49IDApXG4gICAgICAgICAgICAgICAgICAgIHJlczEgPSB0aGlzLnNlcTEuc3Vic3RyKChpIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMxO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgcmVzMSA9IGdhcFMgKyByZXMxO1xuICAgICAgICAgICAgICAgIGlmIChqIC0gMSA+PSAwKVxuICAgICAgICAgICAgICAgICAgICByZXMyID0gdGhpcy5zZXEyLnN1YnN0cigoaiAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMjtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHJlczIgPSBnYXBTICsgcmVzMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB0ZW1wSSA9IGk7XG4gICAgICAgICAgICBpID0gdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50STtcbiAgICAgICAgICAgIGogPSB0aGlzLmRwR3JpZFt0ZW1wSV1bal0ucGFyZW50SjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEFsaWduZWQocmVzMSwgcmVzMiwgdG90YWwpO1xuICAgIH1cbiAgICBmaWxsU2NvcmVzKCkge1xuICAgICAgICB0aGlzLnNjb3JlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnNjb3Jlcy5wdXNoKFtdKTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5sZW4yOyBqKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjb3Jlc1tpXS5wdXNoKHRoaXMuYWxpZ25HcmlkW3RoaXMuY29ubmVjdGlvbnNbdGhpcy5zZXExLnN1YnN0cihpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApXV1bdGhpcy5jb25uZWN0aW9uc1t0aGlzLnNlcTIuc3Vic3RyKGogKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCldXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHlwZVJlYygpIHtcbiAgICAgICAgaWYgKC9bQVRHQ10qLy50ZXN0KHRoaXMuc2VxMSkgJiYgL1tBVEdDXSovLnRlc3QodGhpcy5zZXEyKSlcbiAgICAgICAgICAgIHJldHVybiBcIk5VQ0xFT1RJREVTXCI7XG4gICAgICAgIGlmICgvW0FSTkRDUUVHSElMS01GUFNUV1lWQlpYKl0qLy50ZXN0KHRoaXMuc2VxMSkgJiYgL1tBUk5EQ1FFR0hJTEtNRlBTVFdZVkJaWCpdKi8udGVzdCh0aGlzLnNlcTIpKVxuICAgICAgICAgICAgcmV0dXJuIFwiQkxPU1VNNjJcIjtcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJDYW4ndCByZWNvZ25pemUgc2VxdWVuY2UgdHlwZVwiKTtcbiAgICB9XG4gICAgbmVlZGxlbWFuV3VuY2goKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xICsgMTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMiArIDE7IGorKylcbiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgQ2VsbCgpKTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbGxOZWVkbGVtYW4oKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAxOyBqIDw9IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxsT25lKGksIGopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdFJlc3VsdCh0aGlzLmxlbjEsIHRoaXMubGVuMik7XG4gICAgfVxuICAgIHNtaXRoV2F0ZXJtYW4oKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xICsgMTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMiArIDE7IGorKylcbiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgQ2VsbCgpKTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYmVzdFZhbCA9IDA7XG4gICAgICAgIGxldCBiZXN0SSA9IDAsIGJlc3RKID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAxOyBqIDw9IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxsT25lKGksIGopO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmRwR3JpZFt0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJXVt0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKXS52YWx1ZSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID4gYmVzdFZhbCkge1xuICAgICAgICAgICAgICAgICAgICBiZXN0VmFsID0gdGhpcy5kcEdyaWRbaV1bal0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RJID0gaTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdEogPSBqO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RSZXN1bHQoYmVzdEksIGJlc3RKKTtcbiAgICB9XG4gICAgc2V0U2VxdWVuY2VzKHNlcTFfLCBzZXEyXykge1xuICAgICAgICB0aGlzLnNlcTEgPSBzZXExXztcbiAgICAgICAgdGhpcy5zZXEyID0gc2VxMl87XG4gICAgICAgIHRoaXMubGVuMSA9IHRoaXMuc2VxMS5sZW5ndGggLyB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMubGVuMiA9IHRoaXMuc2VxMi5sZW5ndGggLyB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMuZmlsbFNjb3JlcygpO1xuICAgIH1cbiAgICBzZXRHYXAoZ2FwXykge1xuICAgICAgICB0aGlzLmdhcCA9IGdhcF87XG4gICAgfVxuICAgIHNldE1ldGhvZChhbGlnbkdyaWRfID0gXCJcIikge1xuICAgICAgICBpZiAoYWxpZ25HcmlkXyA9PSBcIkFVVE9cIikge1xuICAgICAgICAgICAgYWxpZ25HcmlkXyA9IHRoaXMudHlwZVJlYygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JpZEZyb21OYW1lKGFsaWduR3JpZF8pO1xuICAgIH1cbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gREc7IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBTZXF1ZW5jZUFsaWdubWVudCB9IGZyb20gJy4vc2VxX2FsaWduJztcbmV4cG9ydCBsZXQgX3BhY2thZ2UgPSBuZXcgREcuUGFja2FnZSgpO1xuLy9uYW1lOiBzZXF1ZW5jZUFsaWdubWVudFxuLy9pbnB1dDogc3RyaW5nIGFsaWduVHlwZSB7Y2hvaWNlczogWydMb2NhbCBhbGlnbm1lbnQnLCAnR2xvYmFsIGFsaWdubWVudCddfVxuLy9pbnB1dDogc3RyaW5nIGFsaWduVGFibGUge2Nob2ljZXM6IFsnQVVUTycsICdOVUNMRU9USURFUycsICdCTE9TVU00NScsICdCTE9TVU01MCcsJ0JMT1NVTTYyJywnQkxPU1VNODAnLCdCTE9TVU05MCcsJ1BBTTMwJywnUEFNNzAnLCdQQU0yNTAnLCdTQ0hORUlERVInLCdUUkFOUyddfVxuLy9pbnB1dDogZG91YmxlIGdhcFxuLy9pbnB1dDogc3RyaW5nIHNlcTFcbi8vaW5wdXQ6IHN0cmluZyBzZXEyXG4vL291dHB1dDogb2JqZWN0IHJlcyBcbmV4cG9ydCBmdW5jdGlvbiBzZXF1ZW5jZUFsaWdubWVudChhbGlnblR5cGUsIGFsaWduVGFibGUsIGdhcCwgc2VxMSwgc2VxMikge1xuICAgIGxldCB0b0FsaWduID0gbmV3IFNlcXVlbmNlQWxpZ25tZW50KHNlcTEsIHNlcTIsIGdhcCwgYWxpZ25UYWJsZSk7XG4gICAgbGV0IHJlcyA9IGFsaWduVHlwZSA9PSAnTG9jYWwgYWxpZ25tZW50JyA/IHRvQWxpZ24uc21pdGhXYXRlcm1hbigpIDogdG9BbGlnbi5uZWVkbGVtYW5XdW5jaCgpO1xuICAgIHJldHVybiByZXM7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
|
|
1484
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4Qix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0JBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGVBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixlQUFlO0FBQ3ZDO0FBQ0EsNEJBQTRCLGVBQWU7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsbUJBQW1CO0FBQzNDO0FBQ0EsNEJBQTRCLG1CQUFtQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnQkFBZ0I7QUFDeEMsNEJBQTRCLGdCQUFnQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixtQkFBbUI7QUFDM0M7QUFDQSw0QkFBNEIsbUJBQW1CO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0JBQWdCO0FBQ3hDLDRCQUE0QixnQkFBZ0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ2hmQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7Ozs7O0FDQUE7Ozs7OztVQ0FBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7Ozs7O1dDdEJBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQSxpQ0FBaUMsV0FBVztXQUM1QztXQUNBOzs7OztXQ1BBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ05zQztBQUNVO0FBQ3pDLHFCQUFxQixvREFBVTtBQUNpQztBQUN2RTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1Asd0JBQXdCLHlEQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsZUFBZSxpRkFBTztBQUN0QiIsInNvdXJjZXMiOlsid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvYW1pbm9hY2lkcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL251Y2xlb3RpZGVzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvc2VxLXBhbGV0dGVzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nby5qcyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvc2VxX2FsaWduLnRzIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJER1wiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJyeGpzXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcInVpXCIiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL2Jpby8uL3NyYy9wYWNrYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHNQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IExlc2soKSB7XG4gICAgICAgIGlmICh0aGlzLmxlc2sgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5sZXNrID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgICAgICAgICAgW1snRycsICdBJywgJ1MnLCAnVCddLCAnb3JhbmdlJ10sXG4gICAgICAgICAgICAgICAgW1snQycsICdWJywgJ0knLCAnTCcsICdQJywgJ0YnLCAnWScsICdNJywgJ1cnXSwgJ2FsbF9ncmVlbiddLFxuICAgICAgICAgICAgICAgIFtbJ04nLCAnUScsICdIJ10sICdtYWdlbnRhJ10sXG4gICAgICAgICAgICAgICAgW1snRCcsICdFJ10sICdyZWQnXSxcbiAgICAgICAgICAgICAgICBbWydLJywgJ1InXSwgJ2FsbF9ibHVlJ10sXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sZXNrO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEdyb2tHcm91cHMoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyb2tHcm91cHMgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5ncm9rR3JvdXBzID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgICAgICAgICAgW1snQycsICdVJ10sICd5ZWxsb3cnXSxcbiAgICAgICAgICAgICAgICBbWydHJywgJ1AnXSwgJ3JlZCddLFxuICAgICAgICAgICAgICAgIFtbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLCAnYWxsX2dyZWVuJ10sXG4gICAgICAgICAgICAgICAgW1snUicsICdIJywgJ0snXSwgJ2xpZ2h0X2JsdWUnXSxcbiAgICAgICAgICAgICAgICBbWydEJywgJ0UnXSwgJ2RhcmtfYmx1ZSddLFxuICAgICAgICAgICAgICAgIFtbJ1MnLCAnVCcsICdOJywgJ1EnXSwgJ29yYW5nZSddLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Jva0dyb3VwcztcbiAgICB9XG4gICAgc3RhdGljIGdldCBSYXNNb2woKSB7XG4gICAgICAgIGlmICh0aGlzLnJhc01vbCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLnJhc01vbCA9IHtcbiAgICAgICAgICAgICAgICAvLyBodHRwOi8vYWNjZXMuZW5zLWx5b24uZnIvYmlvdGljL3Jhc3RvcC9oZWxwL2NvbG91ci5odG1cbiAgICAgICAgICAgICAgICAnRCc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnRSc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnQyc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnTSc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnSyc6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUic6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUyc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnVCc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnRic6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnWSc6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnTic6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnUSc6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnRyc6ICcjRUJFQkVCJyxcbiAgICAgICAgICAgICAgICAnTCc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnVic6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnSSc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnQSc6ICcjQzhDOEM4JyxcbiAgICAgICAgICAgICAgICAnVyc6ICcjQjQ1QUI0JyxcbiAgICAgICAgICAgICAgICAnSCc6ICcjODI4MkQyJyxcbiAgICAgICAgICAgICAgICAnUCc6ICcjREM5NjgyJyxcbiAgICAgICAgICAgICAgICAnb3RoZXJzJzogJyNCRUEwNkUnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yYXNNb2w7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHMge1xuICAgIHN0YXRpYyBnZXRQYWxldHRlKHNjaGVtZSA9ICdncm9rJykge1xuICAgICAgICBzd2l0Y2ggKHNjaGVtZSkge1xuICAgICAgICAgICAgY2FzZSAnZ3Jvayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzO1xuICAgICAgICAgICAgY2FzZSAnbGVzayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFtaW5vYWNpZHNQYWxldHRlcy5MZXNrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENoZW1QYWxldHRlOiBzY2hlbWUgXFxgJHtzY2hlbWV9XFxgIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBkaXZpZGVkIGFtaW5vIGFjaWQgd2l0aCBpdHMgY29udGVudCBpbiB0aGUgYnJhY2tldCwgaWYgdGhlIGNvbnRlbnQgaXMgbnVtYmVyLCB0aGVuIGl0cyBvbWl0dGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYyByYXcgYW1pbm9cbiAgICAgKiBAcmV0dXJuIHtbc3RyaW5nLCBzdHJpbmddfSBvdXRlciBhbmQgaW5uZXIgY29udGVudFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRJbm5lck91dGVyKGMpIHtcbiAgICAgICAgbGV0IGlzSW5uZXIgPSAwO1xuICAgICAgICBsZXQgaW5uZXIgPSAnJztcbiAgICAgICAgbGV0IG91dGVyID0gJyc7XG4gICAgICAgIGZvciAoY29uc3QgY2hhciBvZiBjKSB7XG4gICAgICAgICAgICBpZiAoY2hhciA9PSAnKCcpXG4gICAgICAgICAgICAgICAgaXNJbm5lcisrO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2hhciA9PSAnKScpXG4gICAgICAgICAgICAgICAgaXNJbm5lci0tO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNJbm5lcilcbiAgICAgICAgICAgICAgICBpbm5lciArPSBjaGFyO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG91dGVyICs9IGNoYXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFpc05hTihwYXJzZUludChpbm5lcikpID8gW291dGVyLCAnJ10gOiBbb3V0ZXIsIGlubmVyXTtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbG9yQUFQaXZvdChtb25vbWVyID0gJycsIHNjaGVtZSA9ICdncm9rJykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgLy9jb25zdCBjaGVtUGFsZXR0ZUluc3RhbmNlID0gQUFQYWxldHRlcy5Hcm9rR3JvdXBzKCk7XG4gICAgICAgIGNvbnN0IGNoZW1QYWxldHRlSW5zdGFuY2UgPSB0aGlzLmdldFBhbGV0dGUoc2NoZW1lKTtcbiAgICAgICAgbGV0IFtvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lcl0gPSB0aGlzLmdldElubmVyT3V0ZXIobW9ub21lcik7XG4gICAgICAgIG91dGVyTW9ub21lciA9IChvdXRlck1vbm9tZXIubGVuZ3RoID4gNiA/IGAke291dGVyTW9ub21lci5zbGljZSgwLCAzKX0uLi5gIDogb3V0ZXJNb25vbWVyKTtcbiAgICAgICAgaW5uZXJNb25vbWVyID0gKGlubmVyTW9ub21lci5sZW5ndGggPiA2ID8gYCR7aW5uZXJNb25vbWVyLnNsaWNlKDAsIDMpfS4uLmAgOiBpbm5lck1vbm9tZXIpO1xuICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMSB8fCBtb25vbWVyWzFdID09ICcoJykge1xuICAgICAgICAgICAgY29uc3QgYW1pbm8gPSAoX2EgPSBtb25vbWVyWzBdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZVthbWlub10sIGFtaW5vLCBpbm5lck1vbm9tZXIsIDFdIDpcbiAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDFdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVyWzBdID09ICdkJyAmJiBtb25vbWVyWzFdIGluIGNoZW1QYWxldHRlSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGlmIChtb25vbWVyLmxlbmd0aCA9PSAyIHx8IG1vbm9tZXJbMl0gPT0gJygnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYW1pbm8gPSAoX2IgPSBtb25vbWVyWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlW2FtaW5vXSwgYW1pbm8sIGlubmVyTW9ub21lciwgMl0gOlxuICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDJdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVyLnN1YnN0cmluZygwLCAzKSBpbiB0aGlzLkFBRnVsbE5hbWVzKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMyB8fCBtb25vbWVyWzNdID09ICcoJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygwLCAzKV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZVthbWlub10sIGFtaW5vLCBpbm5lck1vbm9tZXIsIDNdIDpcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAzXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKChfYyA9IG1vbm9tZXJbMF0pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50b0xvd2VyQ2FzZSgpKSA9PSBtb25vbWVyWzBdKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5zdWJzdHJpbmcoMSwgMykgaW4gdGhpcy5BQUZ1bGxOYW1lcykge1xuICAgICAgICAgICAgICAgIGlmIChtb25vbWVyLmxlbmd0aCA9PSA0IHx8IG1vbm9tZXJbNF0gPT0gJygnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygxLCAzKV07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlW2FtaW5vXSwgYW1pbm8sIGlubmVyTW9ub21lciwgNF0gOlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCA0XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMF07XG4gICAgfVxufVxuQW1pbm9hY2lkcy5TZW1UeXBlID0gJ0FtaW5vYWNpZHMnO1xuQW1pbm9hY2lkcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQgPSAnQW1pbm9hY2lkc011bHRpcGxlQWxpZ25tZW50JztcbkFtaW5vYWNpZHMudW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG5BbWlub2FjaWRzLk5hbWVzID0ge1xuICAgICdHJzogJ0dseWNpbmUnLFxuICAgICdMJzogJ0xldWNpbmUnLFxuICAgICdZJzogJ1R5cm9zaW5lJyxcbiAgICAnUyc6ICdTZXJpbmUnLFxuICAgICdFJzogJ0dsdXRhbWljIGFjaWQnLFxuICAgICdRJzogJ0dsdXRhbWluZScsXG4gICAgJ0QnOiAnQXNwYXJ0aWMgYWNpZCcsXG4gICAgJ04nOiAnQXNwYXJhZ2luZScsXG4gICAgJ0YnOiAnUGhlbnlsYWxhbmluZScsXG4gICAgJ0EnOiAnQWxhbmluZScsXG4gICAgJ0snOiAnTHlzaW5lJyxcbiAgICAnUic6ICdBcmdpbmluZScsXG4gICAgJ0gnOiAnSGlzdGlkaW5lJyxcbiAgICAnQyc6ICdDeXN0ZWluZScsXG4gICAgJ1YnOiAnVmFsaW5lJyxcbiAgICAnUCc6ICdQcm9saW5lJyxcbiAgICAnVyc6ICdUcnlwdG9waGFuJyxcbiAgICAnSSc6ICdJc29sZXVjaW5lJyxcbiAgICAnTSc6ICdNZXRoaW9uaW5lJyxcbiAgICAnVCc6ICdUaHJlb25pbmUnLFxufTtcbkFtaW5vYWNpZHMuQUFTbWlsZXMgPSB7XG4gICAgJ0cnOiAnTkNDKD1PKU8nLFxuICAgICdMJzogJ05bQ0BIXShDQyhDKUMpQyg9TylPJyxcbiAgICAnWSc6ICdOQyhDQzE9Q0M9QyhPKUM9QzEpQyg9TylPJyxcbiAgICAnUyc6ICdOQyhDTylDKD1PKU8nLFxuICAgICdFJzogJ05bQ0BASF0oQ0NDKE8pPU8pQyg9TylPJyxcbiAgICAnUSc6ICdOW0NAQEhdKENDQyhOKT1PKUMoPU8pTycsXG4gICAgJ0QnOiAnTltDQEBIXShDQyhPKT1PKUMoPU8pTycsXG4gICAgJ04nOiAnTltDQEBIXShDQyhOKT1PKUMoPU8pTycsXG4gICAgJ0YnOiAnTkMoQ0MxPUNDPUNDPUMxKUMoPU8pTycsXG4gICAgJ0EnOiAnTltDQEhdKEMpQyg9TylPJyxcbiAgICAnSyc6ICdOQyhDQ0NDTilDKD1PKU8nLFxuICAgICdSJzogJ05bQ0BIXShDQ0NOQyg9TilDKUMoPU8pTycsXG4gICAgJ0gnOiAnTkMoQ0MxPUNOPUNbTl0xKUMoPU8pTycsXG4gICAgJ0MnOiAnTltDQEBIXShDUylDKD1PKU8nLFxuICAgICdWJzogJ05DKEMoQylDKUMoPU8pTycsXG4gICAgJ1AnOiAnTihDQ0MxKUMxQyg9TylPJyxcbiAgICAnVyc6ICdOW0NAQEhdKENjMWMyY2NjY2MybihbSF0pYzEpQyg9TylPJyxcbiAgICAnSSc6ICdOW0NASF0oW0NASF0oQylDQylDKD1PKU8nLFxuICAgICdNJzogJ05DKENDU0MpQyg9TylPJyxcbiAgICAnVCc6ICdOQyhDKE8pQylDKD1PKU8nLFxufTtcbkFtaW5vYWNpZHMuQUFTbWlsZXNUcnVuY2F0ZWQgPSB7XG4gICAgJ0cnOiAnKkMqJyxcbiAgICAnTCc6ICdDQyhDKUNbQ0BIXSgqKSonLFxuICAgICdZJzogJ0MxPUNDKD1DQz1DMUNDKCopKilPJyxcbiAgICAnUyc6ICdPQ0MoKilDKicsXG4gICAgJ0UnOiAnKltDQEBIXShDQ0MoTyk9TykqJyxcbiAgICAnUSc6ICcqTltDQEBIXShDQ0MoTik9TykqJyxcbiAgICAnRCc6ICcqW0NAQEhdKENDKE8pPU8pKicsXG4gICAgJ04nOiAnKltDQEBIXShDQyhOKT1PKSonLFxuICAgICdGJzogJ0MxPUNDPUMoQz1DMSlDQygqKSonLFxuICAgICdBJzogJ0NbQ0BIXSgqKSonLFxuICAgICdLJzogJ0MoQ0NOKUNDKCopKicsXG4gICAgJ1InOiAnKltDQEhdKENDQ05DKD1OKUMpKicsXG4gICAgJ0gnOiAnQzE9QyhOQz1OMSlDQygqKSonLFxuICAgICdDJzogJ0MoW0NAQEhdKCopKilTJyxcbiAgICAnVic6ICdDQyhDKUMoKikqJyxcbiAgICAnUCc6ICdDMUNDTigqKUMxKicsXG4gICAgJ1cnOiAnKltDQEBIXShDYzFjMmNjY2NjMm4oW0hdKWMxKSonLFxuICAgICdJJzogJ0NDW0NASF0oQylbQ0BIXSgqKSonLFxuICAgICdNJzogJ0NTQ0NDKCopKicsXG4gICAgJ1QnOiAnQ0MoTylDKCopKicsXG59O1xuLyoqIFRPRE86IEZ1bGw/XG4gKi9cbkFtaW5vYWNpZHMuQUFGdWxsTmFtZXMgPSB7XG4gICAgJ0FsYSc6ICdBJyxcbiAgICAnQXJnJzogJ1InLFxuICAgICdBc24nOiAnTicsXG4gICAgJ0FzcCc6ICdEJyxcbiAgICAnQ3lzJzogJ0MnLFxuICAgICdHbG4nOiAnUScsXG4gICAgJ0dsdSc6ICdFJyxcbiAgICAnR2x5JzogJ0cnLFxuICAgICdIaXMnOiAnSCcsXG4gICAgJ0lsZSc6ICdJJyxcbiAgICAnTGV1JzogJ0wnLFxuICAgICdMeXMnOiAnSycsXG4gICAgJ01ldCc6ICdNJyxcbiAgICAnUGhlJzogJ0YnLFxuICAgICdQcm8nOiAnUCcsXG4gICAgJ1Nlcic6ICdTJyxcbiAgICAnVGhyJzogJ1QnLFxuICAgICdUcnAnOiAnVycsXG4gICAgJ1R5cic6ICdZJyxcbiAgICAnVmFsJzogJ1YnLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVlXMXBibTloWTJsa2N5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW1GdGFXNXZZV05wWkhNdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJTMEVzVDBGQlR5eEZRVUZoTEdOQlFXTXNSVUZCUXl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlJURkVMRTFCUVUwc1QwRkJUeXhyUWtGQmJVSXNVMEZCVVN4alFVRmpPMGxCUnpkRExFMUJRVTBzUzBGQlN5eEpRVUZKTzFGQlEzQkNMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUzBGQlN5eExRVUZMTEVOQlFVTXNSVUZCUlR0WlFVTjRRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNN1owSkJRek5DTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNN1owSkJRMmhETEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJRenRuUWtGRE5VUXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNVMEZCVXl4RFFVRkRPMmRDUVVNMVFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF6dG5Ra0ZEYmtJc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4VlFVRlZMRU5CUVVNN1lVRkRla0lzUTBGQlF5eERRVUZETzFOQlEwbzdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU03U1VGRGJrSXNRMEZCUXp0SlFVbE5MRTFCUVUwc1MwRkJTeXhWUVVGVk8xRkJRekZDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRlZCUVZVc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU01UWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTTdaMEpCUTJwRExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1VVRkJVU3hEUVVGRE8yZENRVU4wUWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXp0blFrRkRia0lzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTTdaMEpCUTNaRUxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGbEJRVmtzUTBGQlF6dG5Ra0ZETDBJc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNN1owSkJRM3BDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNN1lVRkRha01zUTBGQlF5eERRVUZETzFOQlEwbzdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU03U1VGRGVrSXNRMEZCUXp0SlFVbE5MRTFCUVUwc1MwRkJTeXhOUVVGTk8xRkJRM1JDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU14UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSE8yZENRVU5hTEhsRVFVRjVSRHRuUWtGRGVrUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1owSkJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdaMEpCUTJRc1IwRkJSeXhGUVVGRkxGTkJRVk03WjBKQlEyUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1owSkJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdaMEpCUTJRc1IwRkJSeXhGUVVGRkxGTkJRVk03WjBKQlEyUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1owSkJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdaMEpCUTJRc1IwRkJSeXhGUVVGRkxGTkJRVk03WjBKQlEyUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1owSkJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdaMEpCUTJRc1IwRkJSeXhGUVVGRkxGTkJRVk03WjBKQlEyUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1owSkJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdaMEpCUTJRc1IwRkJSeXhGUVVGRkxGTkJRVk03WjBKQlEyUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1owSkJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdaMEpCUTJRc1IwRkJSeXhGUVVGRkxGTkJRVk03WjBKQlEyUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1owSkJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdaMEpCUTJRc1VVRkJVU3hGUVVGRkxGTkJRVk03WVVGRGNFSXNRMEZCUXp0VFFVTklPMUZCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEzSkNMRU5CUVVNN1EwRkRSanRCUVVWRUxFMUJRVTBzVDBGQlR5eFZRVUZWTzBsQmNVZGtMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQmFVSXNUVUZCVFR0UlFVTTVReXhSUVVGUkxFMUJRVTBzUlVGQlJUdFpRVU5vUWl4TFFVRkxMRTFCUVUwN1owSkJRMVFzVDBGQlR5eHJRa0ZCYTBJc1EwRkJReXhWUVVGVkxFTkJRVU03V1VGRGRrTXNTMEZCU3l4TlFVRk5PMmRDUVVOVUxFOUJRVThzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRMnBETzJkQ1FVTkZMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZVVKQlFYbENMRTFCUVUwc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0VFFVTnlSVHRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5KTEUxQlFVMHNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJVenRSUVVOdVF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRhRUlzU1VGQlNTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTJZc1NVRkJTU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlJXWXNTMEZCU3l4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFVkJRVVU3V1VGRGNFSXNTVUZCU1N4SlFVRkpMRWxCUVVrc1IwRkJSenRuUWtGRFlpeFBRVUZQTEVWQlFVVXNRMEZCUXp0cFFrRkRVQ3hKUVVGSkxFbEJRVWtzU1VGQlNTeEhRVUZITzJkQ1FVTnNRaXhQUVVGUExFVkJRVVVzUTBGQlF6dHBRa0ZEVUN4SlFVRkpMRTlCUVU4N1owSkJRMlFzUzBGQlN5eEpRVUZKTEVsQlFVa3NRMEZCUXpzN1owSkJSV1FzUzBGQlN5eEpRVUZKTEVsQlFVa3NRMEZCUXp0VFFVTnFRanRSUVVWRUxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVOb1JTeERRVUZETzBsQlJVMHNUVUZCVFN4RFFVRkRMR1ZCUVdVc1EwRkJReXhWUVVGclFpeEZRVUZGTEVWQlFVVXNVMEZCYVVJc1RVRkJUVHM3VVVGRGVrVXNjMFJCUVhORU8xRkJRM1JFTEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRmxCUVZrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRMMFFzV1VGQldTeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE0wWXNXVUZCV1N4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZGTTBZc1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTzFsQlF6VkRMRTFCUVUwc1MwRkJTeXhIUVVGSExFMUJRVUVzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl3d1EwRkJSU3hYUVVGWExFVkJRVWNzUTBGQlF6dFpRVU42UXl4UFFVRlBMRXRCUVVzc1NVRkJTU3h0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMmRDUVVOdVF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZEVRc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRGVFUTdVVUZGUkN4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJSU3hKUVVGSkxHMUNRVUZ0UWl4RlFVRkZPMWxCUXpORUxFbEJRVWtzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NSVUZCUlR0blFrRkROVU1zVFVGQlRTeExRVUZMTEVkQlFVY3NUVUZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExEQkRRVUZGTEZkQlFWY3NSVUZCUnl4RFFVRkRPMmRDUVVONlF5eFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzI5Q1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGRFUXNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRlRVE3VTBGRFJqdFJRVVZFTEVsQlFVa3NUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSVHRaUVVNdlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRVZCUVVVN1owSkJRelZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZUVRc1QwRkJUeXhMUVVGTExFbEJRVWtzYlVKQlFXMUNMRU5CUVVNc1EwRkJRenR2UWtGRGJrTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTNSRUxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEzaEVPMU5CUTBZN1VVRkZSQ3hKUVVGSkxFTkJRVUVzVFVGQlFTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMREJEUVVGRkxGZEJRVmNzUlVGQlJTeExRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSVHRaUVVNelF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVN1owSkJReTlETEVsQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSVHR2UWtGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTjRSQ3hQUVVGUExFdEJRVXNzU1VGQlNTeHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8zZENRVU51UXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRkRVFzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRmxCUVZrc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdhVUpCUTNoRU8yRkJRMFk3VTBGRFJqdFJRVVZFTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRPVVFzUTBGQlF6czdRVUZ3VEdVc2EwSkJRVThzUjBGQlZ5eFpRVUZaTEVOQlFVTTdRVUZGTDBJc2JVTkJRWGRDTEVkQlFWY3NOa0pCUVRaQ0xFTkJRVU03UVVGRk1VVXNlVUpCUVdNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0QlFVVTNRaXhuUWtGQlN5eEhRVUZ4UWp0SlFVTjBReXhIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMGxCUTJRc1IwRkJSeXhGUVVGRkxGVkJRVlU3U1VGRFppeEhRVUZITEVWQlFVVXNVVUZCVVR0SlFVTmlMRWRCUVVjc1JVRkJSU3hsUVVGbE8wbEJRM0JDTEVkQlFVY3NSVUZCUlN4WFFVRlhPMGxCUTJoQ0xFZEJRVWNzUlVGQlJTeGxRVUZsTzBsQlEzQkNMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4bFFVRmxPMGxCUTNCQ0xFZEJRVWNzUlVGQlJTeFRRVUZUTzBsQlEyUXNSMEZCUnl4RlFVRkZMRkZCUVZFN1NVRkRZaXhIUVVGSExFVkJRVVVzVlVGQlZUdEpRVU5tTEVkQlFVY3NSVUZCUlN4WFFVRlhPMGxCUTJoQ0xFZEJRVWNzUlVGQlJTeFZRVUZWTzBsQlEyWXNSMEZCUnl4RlFVRkZMRkZCUVZFN1NVRkRZaXhIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4WlFVRlpPMGxCUTJwQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4WFFVRlhPME5CUTJwQ0xFTkJRVU03UVVGRldTeHRRa0ZCVVN4SFFVRnhRanRKUVVONlF5eEhRVUZITEVWQlFVVXNWVUZCVlR0SlFVTm1MRWRCUVVjc1JVRkJSU3h6UWtGQmMwSTdTVUZETTBJc1IwRkJSeXhGUVVGRkxESkNRVUV5UWp0SlFVTm9ReXhIUVVGSExFVkJRVVVzWTBGQll6dEpRVU51UWl4SFFVRkhMRVZCUVVVc2VVSkJRWGxDTzBsQlF6bENMRWRCUVVjc1JVRkJSU3g1UWtGQmVVSTdTVUZET1VJc1IwRkJSeXhGUVVGRkxIZENRVUYzUWp0SlFVTTNRaXhIUVVGSExFVkJRVVVzZDBKQlFYZENPMGxCUXpkQ0xFZEJRVWNzUlVGQlJTeDNRa0ZCZDBJN1NVRkROMElzUjBGQlJ5eEZRVUZGTEdsQ1FVRnBRanRKUVVOMFFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN3d1FrRkJNRUk3U1VGREwwSXNSMEZCUnl4RlFVRkZMSGRDUVVGM1FqdEpRVU0zUWl4SFFVRkhMRVZCUVVVc2JVSkJRVzFDTzBsQlEzaENMRWRCUVVjc1JVRkJSU3hwUWtGQmFVSTdTVUZEZEVJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzYjBOQlFXOURPMGxCUTNwRExFZEJRVWNzUlVGQlJTd3dRa0ZCTUVJN1NVRkRMMElzUjBGQlJ5eEZRVUZGTEdkQ1FVRm5RanRKUVVOeVFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wTkJRM1pDTEVOQlFVTTdRVUZGV1N3MFFrRkJhVUlzUjBGQmNVSTdTVUZEYkVRc1IwRkJSeXhGUVVGRkxFdEJRVXM3U1VGRFZpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN4elFrRkJjMEk3U1VGRE0wSXNSMEZCUnl4RlFVRkZMRlZCUVZVN1NVRkRaaXhIUVVGSExFVkJRVVVzYjBKQlFXOUNPMGxCUTNwQ0xFZEJRVWNzUlVGQlJTeHhRa0ZCY1VJN1NVRkRNVUlzUjBGQlJ5eEZRVUZGTEcxQ1FVRnRRanRKUVVONFFpeEhRVUZITEVWQlFVVXNiVUpCUVcxQ08wbEJRM2hDTEVkQlFVY3NSVUZCUlN4eFFrRkJjVUk3U1VGRE1VSXNSMEZCUnl4RlFVRkZMRmxCUVZrN1NVRkRha0lzUjBGQlJ5eEZRVUZGTEdOQlFXTTdTVUZEYmtJc1IwRkJSeXhGUVVGRkxIRkNRVUZ4UWp0SlFVTXhRaXhIUVVGSExFVkJRVVVzYlVKQlFXMUNPMGxCUTNoQ0xFZEJRVWNzUlVGQlJTeG5Ra0ZCWjBJN1NVRkRja0lzUjBGQlJ5eEZRVUZGTEZsQlFWazdTVUZEYWtJc1IwRkJSeXhGUVVGRkxHRkJRV0U3U1VGRGJFSXNSMEZCUnl4RlFVRkZMQ3RDUVVFclFqdEpRVU53UXl4SFFVRkhMRVZCUVVVc2NVSkJRWEZDTzBsQlF6RkNMRWRCUVVjc1JVRkJSU3hYUVVGWE8wbEJRMmhDTEVkQlFVY3NSVUZCUlN4WlFVRlpPME5CUTJ4Q0xFTkJRVU03UVVGRlJqdEhRVU5ITzBGQlExY3NjMEpCUVZjc1IwRkJjVUk3U1VGRE5VTXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dERRVU5ZTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdlMU4wY21sdVowUnBZM1JwYjI1aGNubDlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3VTJWeFVHRnNaWFIwWlN3Z1UyVnhVR0ZzWlhSMFpVSmhjMlY5SUdaeWIyMGdKeTR2YzJWeExYQmhiR1YwZEdWekp6dGNibHh1Wlhod2IzSjBJR05zWVhOeklFRnRhVzV2WVdOcFpITlFZV3hsZEhSbGN5QmxlSFJsYm1SeklGTmxjVkJoYkdWMGRHVkNZWE5sSUh0Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2JHVnphem9nVTJWeFVHRnNaWFIwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkQ0JNWlhOcktDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbXhsYzJzZ1BUMDlJSFp2YVdRZ01Da2dlMXh1SUNBZ0lDQWdkR2hwY3k1c1pYTnJJRDBnZEdocGN5NXRZV3RsVUdGc1pYUjBaU2hiWEc0Z0lDQWdJQ0FnSUZ0YkowY25MQ0FuUVNjc0lDZFRKeXdnSjFRblhTd2dKMjl5WVc1blpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkREp5d2dKMVluTENBblNTY3NJQ2RNSnl3Z0oxQW5MQ0FuUmljc0lDZFpKeXdnSjAwbkxDQW5WeWRkTENBbllXeHNYMmR5WldWdUoxMHNYRzRnSUNBZ0lDQWdJRnRiSjA0bkxDQW5VU2NzSUNkSUoxMHNJQ2R0WVdkbGJuUmhKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowUW5MQ0FuUlNkZExDQW5jbVZrSjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMHNuTENBblVpZGRMQ0FuWVd4c1gySnNkV1VuWFN4Y2JpQWdJQ0FnSUYwcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1c1pYTnJPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdaM0p2YTBkeWIzVndjem9nVTJWeFVHRnNaWFIwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkQ0JIY205clIzSnZkWEJ6S0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtZHliMnRIY205MWNITWdQVDA5SUhadmFXUWdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NW5jbTlyUjNKdmRYQnpJRDBnZEdocGN5NXRZV3RsVUdGc1pYUjBaU2hiWEc0Z0lDQWdJQ0FnSUZ0YkowTW5MQ0FuVlNkZExDQW5lV1ZzYkc5M0oxMHNYRzRnSUNBZ0lDQWdJRnRiSjBjbkxDQW5VQ2RkTENBbmNtVmtKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowRW5MQ0FuVmljc0lDZEpKeXdnSjB3bkxDQW5UU2NzSUNkR0p5d2dKMWtuTENBblZ5ZGRMQ0FuWVd4c1gyZHlaV1Z1SjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMUluTENBblNDY3NJQ2RMSjEwc0lDZHNhV2RvZEY5aWJIVmxKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowUW5MQ0FuUlNkZExDQW5aR0Z5YTE5aWJIVmxKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkoxTW5MQ0FuVkNjc0lDZE9KeXdnSjFFblhTd2dKMjl5WVc1blpTZGRMRnh1SUNBZ0lDQWdYU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWR5YjJ0SGNtOTFjSE03WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJ5WVhOTmIydzZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdVbUZ6VFc5c0tDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbkpoYzAxdmJDQTlQVDBnZG05cFpDQXdLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuSmhjMDF2YkNBOUlIdGNiaUFnSUNBZ0lDQWdMeThnYUhSMGNEb3ZMMkZqWTJWekxtVnVjeTFzZVc5dUxtWnlMMkpwYjNScFl5OXlZWE4wYjNBdmFHVnNjQzlqYjJ4dmRYSXVhSFJ0WEc0Z0lDQWdJQ0FnSUNkRUp6b2dKeU5GTmpCQk1FRW5MQ0F2THlCaGMzQXNJR0Z6Y0dGeWRHbGpJR0ZqYVdRc0lHRnpjRnh1SUNBZ0lDQWdJQ0FuUlNjNklDY2pSVFl3UVRCQkp5d2dMeThnWjJ4MUxDQm5iSFYwWVcxcFl5QmhZMmxrWEc0Z0lDQWdJQ0FnSUNkREp6b2dKeU5GTmtVMk1EQW5MQ0F2THlCamVYTXNJR041YzNSbGFXNWxYRzRnSUNBZ0lDQWdJQ2ROSnpvZ0p5TkZOa1UyTURBbkxDQXZMeUJ0WlhRc0lHMWxkR2hwYjI1cGJtVmNiaUFnSUNBZ0lDQWdKMHNuT2lBbkl6RTBOVUZHUmljc0lDOHZJR3g1Y3l3Z2JIbHphVzVsWEc0Z0lDQWdJQ0FnSUNkU0p6b2dKeU14TkRWQlJrWW5MQ0F2THlCaGNtY3NJR0Z5WjJsdWFXNWxYRzRnSUNBZ0lDQWdJQ2RUSnpvZ0p5TkdRVGsyTURBbkxDQXZMeUJ6WlhJc0lITmxjbWx1WlZ4dUlDQWdJQ0FnSUNBblZDYzZJQ2NqUmtFNU5qQXdKeXdnTHk4Z2RHaHlMQ0IwYUhKbGIyNXBibVZjYmlBZ0lDQWdJQ0FnSjBZbk9pQW5Jek15TXpKQlFTY3NJQzh2SUhCb1pTd2djR2hsYm5sc1lXeGhibWx1WlZ4dUlDQWdJQ0FnSUNBbldTYzZJQ2NqTXpJek1rRkJKeXdnTHk4Z2RIbHlMQ0IwZVhKdmMybHVaVnh1SUNBZ0lDQWdJQ0FuVGljNklDY2pNREJFUTBSREp5d2dMeThnWVhOdUxDQmhjM0JoY21GbmFXNWxYRzRnSUNBZ0lDQWdJQ2RSSnpvZ0p5TXdNRVJEUkVNbkxDQXZMeUJuYkc0c0lHZHNkWFJoYldsdVpWeHVJQ0FnSUNBZ0lDQW5SeWM2SUNjalJVSkZRa1ZDSnl3Z0x5OGdaMng1TENCbmJIbGphVzVsWEc0Z0lDQWdJQ0FnSUNkTUp6b2dKeU13UmpneU1FWW5MQ0F2THlCc1pYVXNJR3hsZFdOcGJtVmNiaUFnSUNBZ0lDQWdKMVluT2lBbkl6QkdPREl3Umljc0lDOHZJSFpoYkN3Z2RtRnNhVzVsWEc0Z0lDQWdJQ0FnSUNkSkp6b2dKeU13UmpneU1FWW5MQ0F2THlCcGJHVXNJR2x6YjJ4bGRXTnBibVZjYmlBZ0lDQWdJQ0FnSjBFbk9pQW5JME00UXpoRE9DY3NJQzh2SUdGc1lTd2dZV3hoYm1sdVpWeHVJQ0FnSUNBZ0lDQW5WeWM2SUNjalFqUTFRVUkwSnl3Z0x5OGdkSEp3TENCMGNubHdkRzl3YUdGdVhHNGdJQ0FnSUNBZ0lDZElKem9nSnlNNE1qZ3lSREluTENBdkx5Qm9hWE1zSUdocGMzUnBaR2x1WlZ4dUlDQWdJQ0FnSUNBblVDYzZJQ2NqUkVNNU5qZ3lKeXdnTHk4Z2NISnZMQ0J3Y205c2FXNWxYRzRnSUNBZ0lDQWdJQ2R2ZEdobGNuTW5PaUFuSTBKRlFUQTJSU2NzWEc0Z0lDQWdJQ0I5TzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WVhOTmIydzdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklFRnRhVzV2WVdOcFpITWdlMXh1SUNCemRHRjBhV01nY21WaFpHOXViSGtnVTJWdFZIbHdaVG9nYzNSeWFXNW5JRDBnSjBGdGFXNXZZV05wWkhNbk8xeHVYRzRnSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JUWlcxVWVYQmxUWFZzZEdsd2JHVkJiR2xuYm0xbGJuUTZJSE4wY21sdVp5QTlJQ2RCYldsdWIyRmphV1J6VFhWc2RHbHdiR1ZCYkdsbmJtMWxiblFuTzF4dVhHNGdJSE4wWVhScFl5QjFibVJsWm1sdVpXUkRiMnh2Y2lBOUlDZHlaMklvTVRBd0xERXdNQ3d4TURBcEp6dGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRTVoYldWek9pQlRkSEpwYm1kRWFXTjBhVzl1WVhKNUlEMGdlMXh1SUNBZ0lDZEhKem9nSjBkc2VXTnBibVVuTEZ4dUlDQWdJQ2RNSnpvZ0oweGxkV05wYm1VbkxGeHVJQ0FnSUNkWkp6b2dKMVI1Y205emFXNWxKeXhjYmlBZ0lDQW5VeWM2SUNkVFpYSnBibVVuTEZ4dUlDQWdJQ2RGSnpvZ0owZHNkWFJoYldsaklHRmphV1FuTEZ4dUlDQWdJQ2RSSnpvZ0owZHNkWFJoYldsdVpTY3NYRzRnSUNBZ0owUW5PaUFuUVhOd1lYSjBhV01nWVdOcFpDY3NYRzRnSUNBZ0owNG5PaUFuUVhOd1lYSmhaMmx1WlNjc1hHNGdJQ0FnSjBZbk9pQW5VR2hsYm5sc1lXeGhibWx1WlNjc1hHNGdJQ0FnSjBFbk9pQW5RV3hoYm1sdVpTY3NYRzRnSUNBZ0owc25PaUFuVEhsemFXNWxKeXhjYmlBZ0lDQW5VaWM2SUNkQmNtZHBibWx1WlNjc1hHNGdJQ0FnSjBnbk9pQW5TR2x6ZEdsa2FXNWxKeXhjYmlBZ0lDQW5ReWM2SUNkRGVYTjBaV2x1WlNjc1hHNGdJQ0FnSjFZbk9pQW5WbUZzYVc1bEp5eGNiaUFnSUNBblVDYzZJQ2RRY205c2FXNWxKeXhjYmlBZ0lDQW5WeWM2SUNkVWNubHdkRzl3YUdGdUp5eGNiaUFnSUNBblNTYzZJQ2RKYzI5c1pYVmphVzVsSnl4Y2JpQWdJQ0FuVFNjNklDZE5aWFJvYVc5dWFXNWxKeXhjYmlBZ0lDQW5WQ2M2SUNkVWFISmxiMjVwYm1VbkxGeHVJQ0I5TzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1FVRlRiV2xzWlhNNklGTjBjbWx1WjBScFkzUnBiMjVoY25rZ1BTQjdYRzRnSUNBZ0owY25PaUFuVGtOREtEMVBLVThuTEZ4dUlDQWdJQ2RNSnpvZ0owNWJRMEJJWFNoRFF5aERLVU1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5XU2M2SUNkT1F5aERRekU5UTBNOVF5aFBLVU05UXpFcFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVXljNklDZE9ReWhEVHlsREtEMVBLVThuTEZ4dUlDQWdJQ2RGSnpvZ0owNWJRMEJBU0Ywb1EwTkRLRThwUFU4cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVVNjNklDZE9XME5BUUVoZEtFTkRReWhPS1QxUEtVTW9QVThwVHljc1hHNGdJQ0FnSjBRbk9pQW5UbHREUUVCSVhTaERReWhQS1QxUEtVTW9QVThwVHljc1hHNGdJQ0FnSjA0bk9pQW5UbHREUUVCSVhTaERReWhPS1QxUEtVTW9QVThwVHljc1hHNGdJQ0FnSjBZbk9pQW5Ua01vUTBNeFBVTkRQVU5EUFVNeEtVTW9QVThwVHljc1hHNGdJQ0FnSjBFbk9pQW5UbHREUUVoZEtFTXBReWc5VHlsUEp5eGNiaUFnSUNBblN5YzZJQ2RPUXloRFEwTkRUaWxES0QxUEtVOG5MRnh1SUNBZ0lDZFNKem9nSjA1YlEwQklYU2hEUTBOT1F5ZzlUaWxES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMGduT2lBblRrTW9RME14UFVOT1BVTmJUbDB4S1VNb1BVOHBUeWNzWEc0Z0lDQWdKME1uT2lBblRsdERRRUJJWFNoRFV5bERLRDFQS1U4bkxGeHVJQ0FnSUNkV0p6b2dKMDVES0VNb1F5bERLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxQW5PaUFuVGloRFEwTXhLVU14UXlnOVR5bFBKeXhjYmlBZ0lDQW5WeWM2SUNkT1cwTkFRRWhkS0VOak1XTXlZMk5qWTJNeWJpaGJTRjBwWXpFcFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuU1NjNklDZE9XME5BU0Ywb1cwTkFTRjBvUXlsRFF5bERLRDFQS1U4bkxGeHVJQ0FnSUNkTkp6b2dKMDVES0VORFUwTXBReWc5VHlsUEp5eGNiaUFnSUNBblZDYzZJQ2RPUXloREtFOHBReWxES0QxUEtVOG5MRnh1SUNCOU8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdRVUZUYldsc1pYTlVjblZ1WTJGMFpXUTZJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0I3WEc0Z0lDQWdKMGNuT2lBbktrTXFKeXhjYmlBZ0lDQW5UQ2M2SUNkRFF5aERLVU5iUTBCSVhTZ3FLU29uTEZ4dUlDQWdJQ2RaSnpvZ0owTXhQVU5ES0QxRFF6MURNVU5ES0NvcEtpbFBKeXhjYmlBZ0lDQW5VeWM2SUNkUFEwTW9LaWxES2ljc1hHNGdJQ0FnSjBVbk9pQW5LbHREUUVCSVhTaERRME1vVHlrOVR5a3FKeXhjYmlBZ0lDQW5VU2M2SUNjcVRsdERRRUJJWFNoRFEwTW9UaWs5VHlrcUp5eGNiaUFnSUNBblJDYzZJQ2NxVzBOQVFFaGRLRU5ES0U4cFBVOHBLaWNzWEc0Z0lDQWdKMDRuT2lBbktsdERRRUJJWFNoRFF5aE9LVDFQS1NvbkxGeHVJQ0FnSUNkR0p6b2dKME14UFVORFBVTW9RejFETVNsRFF5Z3FLU29uTEZ4dUlDQWdJQ2RCSnpvZ0owTmJRMEJJWFNncUtTb25MRnh1SUNBZ0lDZExKem9nSjBNb1EwTk9LVU5ES0NvcEtpY3NYRzRnSUNBZ0oxSW5PaUFuS2x0RFFFaGRLRU5EUTA1REtEMU9LVU1wS2ljc1hHNGdJQ0FnSjBnbk9pQW5RekU5UXloT1F6MU9NU2xEUXlncUtTb25MRnh1SUNBZ0lDZERKem9nSjBNb1cwTkFRRWhkS0NvcEtpbFRKeXhjYmlBZ0lDQW5WaWM2SUNkRFF5aERLVU1vS2lrcUp5eGNiaUFnSUNBblVDYzZJQ2RETVVORFRpZ3FLVU14S2ljc1hHNGdJQ0FnSjFjbk9pQW5LbHREUUVCSVhTaERZekZqTW1OalkyTmpNbTRvVzBoZEtXTXhLU29uTEZ4dUlDQWdJQ2RKSnpvZ0owTkRXME5BU0Ywb1F5bGJRMEJJWFNncUtTb25MRnh1SUNBZ0lDZE5Kem9nSjBOVFEwTkRLQ29wS2ljc1hHNGdJQ0FnSjFRbk9pQW5RME1vVHlsREtDb3BLaWNzWEc0Z0lIMDdYRzVjYmlBZ0x5b3FJRlJQUkU4NklFWjFiR3cvWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRUZCUm5Wc2JFNWhiV1Z6T2lCVGRISnBibWRFYVdOMGFXOXVZWEo1SUQwZ2UxeHVJQ0FnSUNkQmJHRW5PaUFuUVNjc1hHNGdJQ0FnSjBGeVp5YzZJQ2RTSnl4Y2JpQWdJQ0FuUVhOdUp6b2dKMDRuTEZ4dUlDQWdJQ2RCYzNBbk9pQW5SQ2NzWEc0Z0lDQWdKME41Y3ljNklDZERKeXhjYmlBZ0lDQW5SMnh1SnpvZ0oxRW5MRnh1SUNBZ0lDZEhiSFVuT2lBblJTY3NYRzRnSUNBZ0owZHNlU2M2SUNkSEp5eGNiaUFnSUNBblNHbHpKem9nSjBnbkxGeHVJQ0FnSUNkSmJHVW5PaUFuU1Njc1hHNGdJQ0FnSjB4bGRTYzZJQ2RNSnl4Y2JpQWdJQ0FuVEhsekp6b2dKMHNuTEZ4dUlDQWdJQ2ROWlhRbk9pQW5UU2NzWEc0Z0lDQWdKMUJvWlNjNklDZEdKeXhjYmlBZ0lDQW5VSEp2SnpvZ0oxQW5MRnh1SUNBZ0lDZFRaWEluT2lBblV5Y3NYRzRnSUNBZ0oxUm9jaWM2SUNkVUp5eGNiaUFnSUNBblZISndKem9nSjFjbkxGeHVJQ0FnSUNkVWVYSW5PaUFuV1Njc1hHNGdJQ0FnSjFaaGJDYzZJQ2RXSnl4Y2JpQWdmVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRGQmhiR1YwZEdVb2MyTm9aVzFsT2lCemRISnBibWNnUFNBblozSnZheWNwT2lCVFpYRlFZV3hsZEhSbElIdGNiaUFnSUNCemQybDBZMmdnS0hOamFHVnRaU2tnZTF4dUlDQWdJR05oYzJVZ0oyZHliMnNuT2x4dUlDQWdJQ0FnY21WMGRYSnVJRUZ0YVc1dllXTnBaSE5RWVd4bGRIUmxjeTVIY205clIzSnZkWEJ6TzF4dUlDQWdJR05oYzJVZ0oyeGxjMnNuT2x4dUlDQWdJQ0FnY21WMGRYSnVJRUZ0YVc1dllXTnBaSE5RWVd4bGRIUmxjeTVNWlhOck8xeHVJQ0FnSUdSbFptRjFiSFE2WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRU5vWlcxUVlXeGxkSFJsT2lCelkyaGxiV1VnWEZ4Z0pIdHpZMmhsYldWOVhGeGdJR1J2WlhNZ2JtOTBJR1Y0YVhOMFlDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdaR2wyYVdSbFpDQmhiV2x1YnlCaFkybGtJSGRwZEdnZ2FYUnpJR052Ym5SbGJuUWdhVzRnZEdobElHSnlZV05yWlhRc0lHbG1JSFJvWlNCamIyNTBaVzUwSUdseklHNTFiV0psY2l3Z2RHaGxiaUJwZEhNZ2IyMXBkSFJsWkZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1l5QnlZWGNnWVcxcGJtOWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1czTjBjbWx1Wnl3Z2MzUnlhVzVuWFgwZ2IzVjBaWElnWVc1a0lHbHVibVZ5SUdOdmJuUmxiblJjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwU1c1dVpYSlBkWFJsY2loak9pQnpkSEpwYm1jcE9pQmJjM1J5YVc1bkxDQnpkSEpwYm1kZElIdGNiaUFnSUNCc1pYUWdhWE5KYm01bGNpQTlJREE3WEc0Z0lDQWdiR1YwSUdsdWJtVnlJRDBnSnljN1hHNGdJQ0FnYkdWMElHOTFkR1Z5SUQwZ0p5YzdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR05vWVhJZ2IyWWdZeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHTm9ZWElnUFQwZ0p5Z25LVnh1SUNBZ0lDQWdJQ0JwYzBsdWJtVnlLeXM3WEc0Z0lDQWdJQ0JsYkhObElHbG1JQ2hqYUdGeUlEMDlJQ2NwSnlsY2JpQWdJQ0FnSUNBZ2FYTkpibTVsY2kwdE8xeHVJQ0FnSUNBZ1pXeHpaU0JwWmlBb2FYTkpibTVsY2lsY2JpQWdJQ0FnSUNBZ2FXNXVaWElnS3owZ1kyaGhjanRjYmlBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ2IzVjBaWElnS3owZ1kyaGhjanRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z0lXbHpUbUZPS0hCaGNuTmxTVzUwS0dsdWJtVnlLU2tnUHlCYmIzVjBaWElzSUNjblhTQTZJRnR2ZFhSbGNpd2dhVzV1WlhKZE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUkRiMnh2Y2tGQlVHbDJiM1FvYlc5dWIyMWxjam9nYzNSeWFXNW5JRDBnSnljc0lITmphR1Z0WlRvZ0oyZHliMnNuSUQwZ0oyZHliMnNuS1RvZ1czTjBjbWx1Wnl3Z2MzUnlhVzVuTENCemRISnBibWNzSUc1MWJXSmxjbDBnZTF4dUlDQWdJQzh2WTI5dWMzUWdZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaU0E5SUVGQlVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2N5Z3BPMXh1SUNBZ0lHTnZibk4wSUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1BTQjBhR2x6TG1kbGRGQmhiR1YwZEdVb2MyTm9aVzFsS1R0Y2JpQWdJQ0JzWlhRZ1cyOTFkR1Z5VFc5dWIyMWxjaXdnYVc1dVpYSk5iMjV2YldWeVhTQTlJSFJvYVhNdVoyVjBTVzV1WlhKUGRYUmxjaWh0YjI1dmJXVnlLVHRjYmlBZ0lDQnZkWFJsY2sxdmJtOXRaWElnUFNBb2IzVjBaWEpOYjI1dmJXVnlMbXhsYm1kMGFDQStJRFlnUHlCZ0pIdHZkWFJsY2sxdmJtOXRaWEl1YzJ4cFkyVW9NQ3dnTXlsOUxpNHVZQ0E2SUc5MWRHVnlUVzl1YjIxbGNpazdYRzRnSUNBZ2FXNXVaWEpOYjI1dmJXVnlJRDBnS0dsdWJtVnlUVzl1YjIxbGNpNXNaVzVuZEdnZ1BpQTJJRDhnWUNSN2FXNXVaWEpOYjI1dmJXVnlMbk5zYVdObEtEQXNJRE1wZlM0dUxtQWdPaUJwYm01bGNrMXZibTl0WlhJcE8xeHVYRzRnSUNBZ2FXWWdLRzF2Ym05dFpYSXViR1Z1WjNSb0lEMDlJREVnZkh3Z2JXOXViMjFsY2xzeFhTQTlQU0FuS0NjcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdGdGFXNXZJRDBnYlc5dWIyMWxjbHN3WFQ4dWRHOVZjSEJsY2tOaGMyVW9LU0U3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZVzFwYm04Z2FXNGdZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaU0EvWEc0Z0lDQWdJQ0FnSUZ0amFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObFcyRnRhVzV2WFN3Z1lXMXBibThzSUdsdWJtVnlUVzl1YjIxbGNpd2dNVjBnT2x4dUlDQWdJQ0FnSUNCYmRHaHBjeTUxYm1SbFptbHVaV1JEYjJ4dmNpd2diM1YwWlhKTmIyNXZiV1Z5TENCcGJtNWxjazF2Ym05dFpYSXNJREZkTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodGIyNXZiV1Z5V3pCZElEMDlJQ2RrSnlBbUppQnRiMjV2YldWeVd6RmRJU0JwYmlCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObEtTQjdYRzRnSUNBZ0lDQnBaaUFvYlc5dWIyMWxjaTVzWlc1bmRHZ2dQVDBnTWlCOGZDQnRiMjV2YldWeVd6SmRJRDA5SUNjb0p5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmhiV2x1YnlBOUlHMXZibTl0WlhKYk1WMC9MblJ2VlhCd1pYSkRZWE5sS0NraE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXMXBibThnYVc0Z1kyaGxiVkJoYkdWMGRHVkpibk4wWVc1alpTQS9YRzRnSUNBZ0lDQWdJQ0FnVzJOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJWYllXMXBibTlkTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQXlYU0E2WEc0Z0lDQWdJQ0FnSUNBZ1czUm9hWE11ZFc1a1pXWnBibVZrUTI5c2IzSXNJRzkxZEdWeVRXOXViMjFsY2l3Z2FXNXVaWEpOYjI1dmJXVnlMQ0F5WFR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JXOXViMjFsY2k1emRXSnpkSEpwYm1jb01Dd2dNeWtnYVc0Z2RHaHBjeTVCUVVaMWJHeE9ZVzFsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzF2Ym05dFpYSXViR1Z1WjNSb0lEMDlJRE1nZkh3Z2JXOXViMjFsY2xzelhTQTlQU0FuS0NjcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1lXMXBibThnUFNCMGFHbHpMa0ZCUm5Wc2JFNWhiV1Z6VzIxdmJtOXRaWEl1YzNWaWMzUnlhVzVuS0RBc0lETXBYVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR0Z0YVc1dklHbHVJR05vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlVnUDF4dUlDQWdJQ0FnSUNBZ0lGdGphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxXMkZ0YVc1dlhTd2dZVzFwYm04c0lHbHVibVZ5VFc5dWIyMWxjaXdnTTEwZ09seHVJQ0FnSUNBZ0lDQWdJRnQwYUdsekxuVnVaR1ZtYVc1bFpFTnZiRzl5TENCdmRYUmxjazF2Ym05dFpYSXNJR2x1Ym1WeVRXOXViMjFsY2l3Z00xMDdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRzF2Ym05dFpYSmJNRjAvTG5SdlRHOTNaWEpEWVhObEtDa2dQVDBnYlc5dWIyMWxjbHN3WFNrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzF2Ym05dFpYSXVjM1ZpYzNSeWFXNW5LREVzSURNcElHbHVJSFJvYVhNdVFVRkdkV3hzVG1GdFpYTXBJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMXZibTl0WlhJdWJHVnVaM1JvSUQwOUlEUWdmSHdnYlc5dWIyMWxjbHMwWFNBOVBTQW5LQ2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCaGJXbHVieUE5SUhSb2FYTXVRVUZHZFd4c1RtRnRaWE5iYlc5dWIyMWxjaTV6ZFdKemRISnBibWNvTVN3Z015bGRPMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJoYldsdWJ5QnBiaUJqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sSUQ5Y2JpQWdJQ0FnSUNBZ0lDQWdJRnRqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sVzJGdGFXNXZYU3dnWVcxcGJtOHNJR2x1Ym1WeVRXOXViMjFsY2l3Z05GMGdPbHh1SUNBZ0lDQWdJQ0FnSUNBZ1czUm9hWE11ZFc1a1pXWnBibVZrUTI5c2IzSXNJRzkxZEdWeVRXOXViMjFsY2l3Z2FXNXVaWEpOYjI1dmJXVnlMQ0EwWFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJiZEdocGN5NTFibVJsWm1sdVpXUkRiMnh2Y2l3Z2IzVjBaWEpOYjI1dmJXVnlMQ0JwYm01bGNrMXZibTl0WlhJc0lEQmRPMXh1SUNCOVhHNTlYRzRpWFgwPSIsImltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIE51Y2xlb3RpZGVzUGFsZXR0ZXMgZXh0ZW5kcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIGdldCBDaHJvbWF0b2dyYW0oKSB7XG4gICAgICAgIGlmICh0aGlzLmNocm9tYXRvZ3JhbSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLmNocm9tYXRvZ3JhbSA9IHtcbiAgICAgICAgICAgICAgICAnQSc6ICdncmVlbicsXG4gICAgICAgICAgICAgICAgJ0MnOiAnYmx1ZScsXG4gICAgICAgICAgICAgICAgJ0cnOiAnYmxhY2snLFxuICAgICAgICAgICAgICAgICdUJzogJ3JlZCcsICdVJzogJ3JlZCcsXG4gICAgICAgICAgICAgICAgJ290aGVycyc6ICdncmF5JyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY2hyb21hdG9ncmFtO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlcyB7XG59XG5OdWNsZW90aWRlcy5TZW1UeXBlID0gJ011bHRpcGxlQWxpZ25tZW50Jztcbk51Y2xlb3RpZGVzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudCA9ICdOdWNsZW90aWRlc011bHRpcGxlQWxpZ25tZW50Jztcbk51Y2xlb3RpZGVzLk5hbWVzID0ge1xuICAgICdBJzogJ0FkZW5pbmUnLFxuICAgICdDJzogJ0N5dG9zaW5lJyxcbiAgICAnRyc6ICdHdWFuaW5lJyxcbiAgICAnVCc6ICdUaHltaW5lJyxcbiAgICAnVSc6ICdVcmFjaWwnLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJuVmpiR1Z2ZEdsa1pYTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKdWRXTnNaVzkwYVdSbGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZMUVN4UFFVRlBMRVZCUVdFc1kwRkJZeXhGUVVGRExFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkZNVVFzVFVGQlRTeFBRVUZQTEcxQ1FVRnZRaXhUUVVGUkxHTkJRV003U1VGSE9VTXNUVUZCVFN4TFFVRkxMRmxCUVZrN1VVRkROVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1N4TFFVRkxMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRMmhETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjN1owSkJRMnhDTEVkQlFVY3NSVUZCUlN4UFFVRlBPMmRDUVVOYUxFZEJRVWNzUlVGQlJTeE5RVUZOTzJkQ1FVTllMRWRCUVVjc1JVRkJSU3hQUVVGUE8yZENRVU5hTEVkQlFVY3NSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFdEJRVXM3WjBKQlEzUkNMRkZCUVZFc1JVRkJSU3hOUVVGTk8yRkJRMnBDTEVOQlFVTTdVMEZEU0R0UlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dEpRVU16UWl4RFFVRkRPME5CUTBZN1FVRkZSQ3hOUVVGTkxFOUJRVThzVjBGQlZ6czdRVUZEVGl4dFFrRkJUeXhIUVVGWExHMUNRVUZ0UWl4RFFVRkRPMEZCUlhSRExHOURRVUYzUWl4SFFVRlhMRGhDUVVFNFFpeERRVUZETzBGQlJYQkZMR2xDUVVGTExFZEJRWEZDTzBsQlEzUkRMRWRCUVVjc1JVRkJSU3hUUVVGVE8wbEJRMlFzUjBGQlJ5eEZRVUZGTEZWQlFWVTdTVUZEWml4SFFVRkhMRVZCUVVVc1UwRkJVenRKUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzBsQlEyUXNSMEZCUnl4RlFVRkZMRkZCUVZFN1EwRkRaQ3hEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFRkSEpwYm1kRWFXTjBhVzl1WVhKNWZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5YzdYRzVwYlhCdmNuUWdlMU5sY1ZCaGJHVjBkR1VzSUZObGNWQmhiR1YwZEdWQ1lYTmxmU0JtY205dElDY3VMM05sY1Mxd1lXeGxkSFJsY3ljN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCT2RXTnNaVzkwYVdSbGMxQmhiR1YwZEdWeklHVjRkR1Z1WkhNZ1UyVnhVR0ZzWlhSMFpVSmhjMlVnZTF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCamFISnZiV0YwYjJkeVlXMDZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdRMmh5YjIxaGRHOW5jbUZ0S0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtTm9jbTl0WVhSdlozSmhiU0E5UFQwZ2RtOXBaQ0F3S1NCN1hHNGdJQ0FnSUNCMGFHbHpMbU5vY205dFlYUnZaM0poYlNBOUlIdGNiaUFnSUNBZ0lDQWdKMEVuT2lBblozSmxaVzRuTEZ4dUlDQWdJQ0FnSUNBblF5YzZJQ2RpYkhWbEp5eGNiaUFnSUNBZ0lDQWdKMGNuT2lBbllteGhZMnNuTENBdkx5QnZjbUZ1WjJVZ1AxeHVJQ0FnSUNBZ0lDQW5WQ2M2SUNkeVpXUW5MQ0FuVlNjNklDZHlaV1FuTEZ4dUlDQWdJQ0FnSUNBbmIzUm9aWEp6SnpvZ0oyZHlZWGtuTEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WTJoeWIyMWhkRzluY21GdE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCT2RXTnNaVzkwYVdSbGN5QjdYRzRnSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JUWlcxVWVYQmxPaUJ6ZEhKcGJtY2dQU0FuVFhWc2RHbHdiR1ZCYkdsbmJtMWxiblFuTzF4dVhHNGdJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQlRaVzFVZVhCbFRYVnNkR2x3YkdWQmJHbG5ibTFsYm5RNklITjBjbWx1WnlBOUlDZE9kV05zWlc5MGFXUmxjMDExYkhScGNHeGxRV3hwWjI1dFpXNTBKenRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUU1aGJXVnpPaUJUZEhKcGJtZEVhV04wYVc5dVlYSjVJRDBnZTF4dUlDQWdJQ2RCSnpvZ0owRmtaVzVwYm1VbkxGeHVJQ0FnSUNkREp6b2dKME41ZEc5emFXNWxKeXhjYmlBZ0lDQW5SeWM2SUNkSGRXRnVhVzVsSnl4Y2JpQWdJQ0FuVkNjNklDZFVhSGx0YVc1bEp5eGNiaUFnSUNBblZTYzZJQ2RWY21GamFXd25MRnh1SUNCOU8xeHVmVnh1SWwxOSIsImV4cG9ydCBjbGFzcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIG1ha2VQYWxldHRlKGR0LCBzaW1wbGlmaWVkID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgcGFsZXR0ZSA9IHt9O1xuICAgICAgICBkdC5mb3JFYWNoKChjcCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JqTGlzdCA9IGNwWzBdO1xuICAgICAgICAgICAgY29uc3QgY29sb3VyID0gY3BbMV07XG4gICAgICAgICAgICBvYmpMaXN0LmZvckVhY2goKG9iaiwgaW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFsZXR0ZVtvYmpdID0gdGhpcy5jb2xvdXJQYWxldHRlW2NvbG91cl1bc2ltcGxpZmllZCA/IDAgOiBpbmRdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGFsZXR0ZTtcbiAgICB9XG59XG4vKiogUGFsZXR0ZSB3aXRoIHNoYWRlcyBvZiBwcmltYXJ5IGNvbG9yc1xuICovXG5TZXFQYWxldHRlQmFzZS5jb2xvdXJQYWxldHRlID0ge1xuICAgICdvcmFuZ2UnOiBbJ3JnYigyNTUsMTg3LDEyMCknLCAncmdiKDI0NSwxNjcsMTAwKScsICdyZ2IoMjM1LDEzNyw3MCknLCAncmdiKDIwNSwgMTExLCA3MSknXSxcbiAgICAnYWxsX2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KScsICdyZ2IoMjMsMTAzLDU3KScsICdyZ2IoMzAsMTEwLDk2KScsICdyZ2IoNjAsMTMxLDk1KScsXG4gICAgICAgICdyZ2IoMjQsMTEwLDc5KScsICdyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigxODIsIDIyMywgMTM4KScsICdyZ2IoMTUyLCAxOTMsIDEzOCknXSxcbiAgICAnYWxsX2JsdWUnOiBbJ3JnYigzMSwxMTksMTgwKScsICdyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDEyMiwgMTAyLCAxODkpJywgJ3JnYigxNTgsMjE4LDIyOSknLCAncmdiKDE0MSwgMTI0LCAyMTcpJyxcbiAgICAgICAgJ3JnYigzMSwgMTIwLCAxNTApJ10sXG4gICAgJ21hZ2VudGEnOiBbJ3JnYigxNjIsMTA2LDE5MiknLCAncmdiKDE5NywxNjUsMjI0KScsICdyZ2IoMjA4LDExMywyMTgpJ10sXG4gICAgJ3JlZCc6IFsncmdiKDIxNCwzOSw0MCknLCAncmdiKDI1NSwxNTIsMTUwKSddLFxuICAgICdzdF9ibHVlJzogWydyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMzEsMTE5LDE4MCknXSxcbiAgICAnZGFya19ibHVlJzogWydyZ2IoMzEsMTE5LDE4MCknLCAncmdiKDMxLCAxMjAsIDE1MCknXSxcbiAgICAnbGlnaHRfYmx1ZSc6IFsncmdiKDIzLDE5MCwyMDcpJywgJ3JnYigxNTgsMjE4LDIyOSknLCAncmdiKDEwOCwgMjE4LCAyMjkpJywgJ3JnYigyMywxOTAsMjI3KSddLFxuICAgICdsaWxhY19ibHVlJzogWydyZ2IoMTI0LDEwMiwyMTEpJywgJ3JnYigxNDksMTM0LDIxNyknLCAncmdiKDk3LCA4MSwgMTUwKSddLFxuICAgICdkYXJrX2dyZWVuJzogWydyZ2IoMjMsMTAzLDU3KScsICdyZ2IoMzAsMTEwLDk2KScsICdyZ2IoNjAsMTMxLDk1KScsICdyZ2IoMjQsMTEwLDc5KSddLFxuICAgICdncmVlbic6IFsncmdiKDQ0LDE2MCw0NCknLCAncmdiKDc0LDE2MCw3NCknXSxcbiAgICAnbGlnaHRfZ3JlZW4nOiBbJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDE4MiwgMjIzLCAxMzgpJywgJ3JnYigxNTIsIDE5MywgMTM4KSddLFxuICAgICdzdF9ncmVlbic6IFsncmdiKDQ0LDE2MCw0NCknLCAncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMzksIDE3NCwgOTYpJywgJ3JnYig3NCwxNjAsNzQpJ10sXG4gICAgJ3BpbmsnOiBbJ3JnYigyNDcsMTgyLDIxMCknXSxcbiAgICAnYnJvd24nOiBbJ3JnYigxNDAsODYsNzUpJywgJ3JnYigxMDIsIDYyLCA1NCknXSxcbiAgICAnZ3JheSc6IFsncmdiKDEyNywxMjcsMTI3KScsICdyZ2IoMTk5LDE5OSwxOTkpJywgJ3JnYigxOTYsMTU2LDE0OCknLCAncmdiKDIyMiwgMjIyLCAxODApJ10sXG4gICAgJ3llbGxvdyc6IFsncmdiKDE4OCwxODksMzQpJ10sXG4gICAgJ3doaXRlJzogWydyZ2IoMjMwLDIzMCwyMzApJ10sXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWeExYQmhiR1YwZEdWekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzJWeExYQmhiR1YwZEdWekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVmxCTEUxQlFVMHNUMEZCVHl4alFVRmpPMGxCTUVKbUxFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCZDBJc1JVRkJSU3hWUVVGVkxFZEJRVWNzUzBGQlN6dFJRVU4yUlN4TlFVRk5MRTlCUVU4c1IwRkJPRUlzUlVGQlJTeERRVUZETzFGQlF6bERMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlR0WlFVTm9RaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRkRUlzVFVGQlRTeE5RVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0pDTEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdaMEpCUXpOQ0xFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnNSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5NTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1QwRkJUeXhQUVVGUExFTkJRVU03U1VGRGFrSXNRMEZCUXpzN1FVRnVRMFE3UjBGRFJ6dEJRVU5aTERSQ1FVRmhMRWRCUVdkRE8wbEJRekZFTEZGQlFWRXNSVUZCUlN4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMRzFDUVVGdFFpeERRVUZETzBsQlF6RkdMRmRCUVZjc1JVRkJSU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxHZENRVUZuUWl4RlFVRkZMR2RDUVVGblFqdFJRVU53Unl4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4dlFrRkJiMElzUTBGQlF6dEpRVU51Uml4VlFVRlZMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMEk3VVVGREwwY3NiVUpCUVcxQ0xFTkJRVU03U1VGRGRFSXNVMEZCVXl4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYTBKQlFXdENMRU5CUVVNN1NVRkRka1VzUzBGQlN5eEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzYTBKQlFXdENMRU5CUVVNN1NVRkROME1zVTBGQlV5eEZRVUZGTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTTdTVUZEY2tVc1YwRkJWeXhGUVVGRkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc2JVSkJRVzFDTEVOQlFVTTdTVUZEY2tRc1dVRkJXU3hGUVVGRkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNiMEpCUVc5Q0xFVkJRVVVzYVVKQlFXbENMRU5CUVVNN1NVRkRPVVlzV1VGQldTeEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTTdTVUZETVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRU5CUVVNN1NVRkRkRVlzVDBGQlR5eEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRU5CUVVNN1NVRkROME1zWVVGQllTeEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzYjBKQlFXOUNMRVZCUVVVc2IwSkJRVzlDTEVOQlFVTTdTVUZETDBVc1ZVRkJWU3hGUVVGRkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzWjBKQlFXZENMRU5CUVVNN1NVRkRlRVlzVFVGQlRTeEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03U1VGRE5VSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU03U1VGREwwTXNUVUZCVFN4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2IwSkJRVzlDTEVOQlFVTTdTVUZETVVZc1VVRkJVU3hGUVVGRkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNN1NVRkROMElzVDBGQlR5eEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU03UTBGRE9VSXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJR2R5YjJzZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyZHliMnNuTzF4dWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQXFJR0Z6SUVSSElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOWtaeWM3WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1UyVnhVR0ZzWlhSMFpTQjdYRzRnSUM4cUtseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYlNCTmIyNXZiV1Z5SUdOb1lYSmhZM1JsY2x4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJRU52Ykc5eVhHNGdJQ0FxTDF4dUlDQmJiVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5PMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTJWeFVHRnNaWFIwWlVKaGMyVWdlMXh1SUNBdktpb2dVR0ZzWlhSMFpTQjNhWFJvSUhOb1lXUmxjeUJ2WmlCd2NtbHRZWEo1SUdOdmJHOXljMXh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdZMjlzYjNWeVVHRnNaWFIwWlRvZ2V5QmJhMlY1T2lCemRISnBibWRkT2lCemRISnBibWRiWFNCOUlEMGdlMXh1SUNBZ0lDZHZjbUZ1WjJVbk9pQmJKM0puWWlneU5UVXNNVGczTERFeU1Da25MQ0FuY21kaUtESTBOU3d4Tmpjc01UQXdLU2NzSUNkeVoySW9Nak0xTERFek55dzNNQ2tuTENBbmNtZGlLREl3TlN3Z01URXhMQ0EzTVNrblhTeGNiaUFnSUNBbllXeHNYMmR5WldWdUp6b2dXeWR5WjJJb05EUXNNVFl3TERRMEtTY3NJQ2R5WjJJb056UXNNVFl3TERjMEtTY3NJQ2R5WjJJb01qTXNNVEF6TERVM0tTY3NJQ2R5WjJJb016QXNNVEV3TERrMktTY3NJQ2R5WjJJb05qQXNNVE14TERrMUtTY3NYRzRnSUNBZ0lDQW5jbWRpS0RJMExERXhNQ3czT1NrbkxDQW5jbWRpS0RFMU1pd3lNak1zTVRNNEtTY3NJQ2R5WjJJb01UZ3lMQ0F5TWpNc0lERXpPQ2tuTENBbmNtZGlLREUxTWl3Z01Ua3pMQ0F4TXpncEoxMHNYRzRnSUNBZ0oyRnNiRjlpYkhWbEp6b2dXeWR5WjJJb016RXNNVEU1TERFNE1Da25MQ0FuY21kaUtESXpMREU1TUN3eU1EY3BKeXdnSjNKbllpZ3hNaklzSURFd01pd2dNVGc1S1Njc0lDZHlaMklvTVRVNExESXhPQ3d5TWprcEp5d2dKM0puWWlneE5ERXNJREV5TkN3Z01qRTNLU2NzWEc0Z0lDQWdJQ0FuY21kaUtETXhMQ0F4TWpBc0lERTFNQ2tuWFN4Y2JpQWdJQ0FuYldGblpXNTBZU2M2SUZzbmNtZGlLREUyTWl3eE1EWXNNVGt5S1Njc0lDZHlaMklvTVRrM0xERTJOU3d5TWpRcEp5d2dKM0puWWlneU1EZ3NNVEV6TERJeE9Da25YU3hjYmlBZ0lDQW5jbVZrSnpvZ1d5ZHlaMklvTWpFMExETTVMRFF3S1Njc0lDZHlaMklvTWpVMUxERTFNaXd4TlRBcEoxMHNYRzRnSUNBZ0ozTjBYMkpzZFdVbk9pQmJKM0puWWlneU15d3hPVEFzTWpBM0tTY3NJQ2R5WjJJb01UVTRMREl4T0N3eU1qa3BKeXdnSjNKbllpZ3pNU3d4TVRrc01UZ3dLU2RkTEZ4dUlDQWdJQ2RrWVhKclgySnNkV1VuT2lCYkozSm5ZaWd6TVN3eE1Ua3NNVGd3S1Njc0lDZHlaMklvTXpFc0lERXlNQ3dnTVRVd0tTZGRMRnh1SUNBZ0lDZHNhV2RvZEY5aWJIVmxKem9nV3lkeVoySW9Nak1zTVRrd0xESXdOeWtuTENBbmNtZGlLREUxT0N3eU1UZ3NNakk1S1Njc0lDZHlaMklvTVRBNExDQXlNVGdzSURJeU9Ta25MQ0FuY21kaUtESXpMREU1TUN3eU1qY3BKMTBzWEc0Z0lDQWdKMnhwYkdGalgySnNkV1VuT2lCYkozSm5ZaWd4TWpRc01UQXlMREl4TVNrbkxDQW5jbWRpS0RFME9Td3hNelFzTWpFM0tTY3NJQ2R5WjJJb09UY3NJRGd4TENBeE5UQXBKMTBzWEc0Z0lDQWdKMlJoY210ZlozSmxaVzRuT2lCYkozSm5ZaWd5TXl3eE1ETXNOVGNwSnl3Z0ozSm5ZaWd6TUN3eE1UQXNPVFlwSnl3Z0ozSm5ZaWcyTUN3eE16RXNPVFVwSnl3Z0ozSm5ZaWd5TkN3eE1UQXNOemtwSjEwc1hHNGdJQ0FnSjJkeVpXVnVKem9nV3lkeVoySW9ORFFzTVRZd0xEUTBLU2NzSUNkeVoySW9OelFzTVRZd0xEYzBLU2RkTEZ4dUlDQWdJQ2RzYVdkb2RGOW5jbVZsYmljNklGc25jbWRpS0RFMU1pd3lNak1zTVRNNEtTY3NJQ2R5WjJJb01UZ3lMQ0F5TWpNc0lERXpPQ2tuTENBbmNtZGlLREUxTWl3Z01Ua3pMQ0F4TXpncEoxMHNYRzRnSUNBZ0ozTjBYMmR5WldWdUp6b2dXeWR5WjJJb05EUXNNVFl3TERRMEtTY3NJQ2R5WjJJb01UVXlMREl5TXl3eE16Z3BKeXdnSjNKbllpZ3pPU3dnTVRjMExDQTVOaWtuTENBbmNtZGlLRGMwTERFMk1DdzNOQ2tuWFN4Y2JpQWdJQ0FuY0dsdWF5YzZJRnNuY21kaUtESTBOeXd4T0RJc01qRXdLU2RkTEZ4dUlDQWdJQ2RpY205M2JpYzZJRnNuY21kaUtERTBNQ3c0Tml3M05Ta25MQ0FuY21kaUtERXdNaXdnTmpJc0lEVTBLU2RkTEZ4dUlDQWdJQ2RuY21GNUp6b2dXeWR5WjJJb01USTNMREV5Tnl3eE1qY3BKeXdnSjNKbllpZ3hPVGtzTVRrNUxERTVPU2tuTENBbmNtZGlLREU1Tml3eE5UWXNNVFE0S1Njc0lDZHlaMklvTWpJeUxDQXlNaklzSURFNE1Da25YU3hjYmlBZ0lDQW5lV1ZzYkc5M0p6b2dXeWR5WjJJb01UZzRMREU0T1N3ek5Da25YU3hjYmlBZ0lDQW5kMmhwZEdVbk9pQmJKM0puWWlneU16QXNNak13TERJek1Da25YU3hjYmlBZ2ZUdGNibHh1SUNCd2NtOTBaV04wWldRZ2MzUmhkR2xqSUcxaGEyVlFZV3hsZEhSbEtHUjBPaUJiYzNSeWFXNW5XMTBzSUhOMGNtbHVaMTFiWFN3Z2MybHRjR3hwWm1sbFpDQTlJR1poYkhObEtTQjdYRzRnSUNBZ1kyOXVjM1FnY0dGc1pYUjBaVG9nZXlCYmEyVjVPaUJ6ZEhKcGJtZGRPaUJ6ZEhKcGJtY2dmU0E5SUh0OU8xeHVJQ0FnSUdSMExtWnZja1ZoWTJnb0tHTndLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0J2WW1wTWFYTjBJRDBnWTNCYk1GMDdYRzRnSUNBZ0lDQmpiMjV6ZENCamIyeHZkWElnUFNCamNGc3hYVHRjYmlBZ0lDQWdJRzlpYWt4cGMzUXVabTl5UldGamFDZ29iMkpxTENCcGJtUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2NHRnNaWFIwWlZ0dlltcGRJRDBnZEdocGN5NWpiMnh2ZFhKUVlXeGxkSFJsVzJOdmJHOTFjbDFiYzJsdGNHeHBabWxsWkNBL0lEQWdPaUJwYm1SZE8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUhCaGJHVjBkR1U3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFtaW5vYWNpZHMsIEFtaW5vYWNpZHNQYWxldHRlcyB9IGZyb20gJy4uL2FtaW5vYWNpZHMnO1xuaW1wb3J0IHsgTnVjbGVvdGlkZXMsIE51Y2xlb3RpZGVzUGFsZXR0ZXMgfSBmcm9tICcuLi9udWNsZW90aWRlcyc7XG5IVE1MQ2FudmFzRWxlbWVudC5wcm90b3R5cGUuZ2V0Q3Vyc29yUG9zaXRpb24gPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4gbmV3IERHLlBvaW50KGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQsIGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCk7XG59O1xuREcuUmVjdC5wcm90b3R5cGUuY29udGFpbnMgPSBmdW5jdGlvbiAoeCwgeSkge1xuICAgIHJldHVybiB0aGlzLmxlZnQgPD0geCAmJiB4IDw9IHRoaXMucmlnaHQgJiYgdGhpcy50b3AgPD0geSAmJiB5IDw9IHRoaXMuYm90dG9tO1xufTtcbmV4cG9ydCBjbGFzcyBQb3NpdGlvbk1vbm9tZXJJbmZvIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XG4gICAgICAgIHRoaXMuYm91bmRzID0gbmV3IERHLlJlY3QoMCwgMCwgMCwgMCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFBvc2l0aW9uSW5mbyB7XG4gICAgLyoqIGZyZXEgPSB7fSwgcm93Q291bnQgPSAwXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgTmFtZSBvZiBwb3NpdGlvbiAoJzExMUEnLCAnMTExLjEnLCBldGMpXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobmFtZSkge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmZyZXEgPSB7fTtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IDA7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFdlYkxvZ28gZXh0ZW5kcyBERy5Kc1ZpZXdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWFkb25seSBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUgPSBDb2xvclNjaGVtZXNbTnVjbGVvdGlkZXNXZWJMb2dvLnJlc2lkdWVzU2V0XTtcbiAgICAgICAgdGhpcy5jcCA9IG51bGw7XG4gICAgICAgIHRoaXMuYXhpc0hlaWdodCA9IDEyO1xuICAgICAgICB0aGlzLnNlcUNvbCA9IG51bGw7XG4gICAgICAgIC8vIHByaXZhdGUgbWF4TGVuZ3RoOiBudW1iZXIgPSAxMDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25zID0gW107XG4gICAgICAgIHRoaXMucm93c01hc2tlZCA9IDA7XG4gICAgICAgIHRoaXMucm93c051bGwgPSAwO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID0gLTE7XG4gICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSAtMTtcbiAgICAgICAgdGhpcy50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICAgICAgdGhpcy5wb3NpdGlvbldpZHRoID0gdGhpcy5mbG9hdCgncG9zaXRpb25XaWR0aCcsIDE2IC8qLFxuICAgICAgICAgIHtlZGl0b3I6ICdzbGlkZXInLCBtaW46IDQsIG1heDogNjQsIHBvc3RmaXg6ICdweCd9Ki8pO1xuICAgICAgICB0aGlzLm1pbkhlaWdodCA9IHRoaXMuZmxvYXQoJ21pbkhlaWdodCcsIDUwIC8qLFxuICAgICAgICAgIHtlZGl0b3I6ICdzbGlkZXInLCBtaW46IDI1LCBtYXg6IDI1MCwgcG9zdGZpeDogJ3B4J30qLyk7XG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy5mbG9hdCgnbWF4SGVpZ2h0JywgMTAwIC8qLFxuICAgICAgICAgIHtlZGl0b3I6ICdzbGlkZXInLCBtaW46IDI1LCBtYXg6IDUwMCwgcG9zdGZpeDogJ3B4J30qLyk7XG4gICAgICAgIHRoaXMuY29uc2lkZXJOdWxsU2VxdWVuY2VzID0gdGhpcy5ib29sKCdjb25zaWRlck51bGxTZXF1ZW5jZXMnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lID0gdGhpcy5zdHJpbmcoJ3NlcXVlbmNlQ29sdW1uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb25OYW1lID0gdGhpcy5zdHJpbmcoJ3N0YXJ0UG9zaXRpb25OYW1lJywgbnVsbCk7XG4gICAgICAgIHRoaXMuZW5kUG9zaXRpb25OYW1lID0gdGhpcy5zdHJpbmcoJ2VuZFBvc2l0aW9uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLmZpeFdpZHRoID0gdGhpcy5ib29sKCdmaXhXaWR0aCcsIGZhbHNlKTtcbiAgICAgICAgdGhpcy52ZXJ0aWNhbEFsaWdubWVudCA9IHRoaXMuc3RyaW5nKCd2ZXJ0aWNhbEFsaWdubWVudCcsICdtaWRkbGUnLCB7IGNob2ljZXM6IFsndG9wJywgJ21pZGRsZScsICdib3R0b20nXSB9KTtcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsQWxpZ25tZW50ID0gdGhpcy5zdHJpbmcoJ2hvcml6b250YWxBbGlnbm1lbnQnLCAnY2VudGVyJywgeyBjaG9pY2VzOiBbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0J10gfSk7XG4gICAgfVxuICAgIC8qKiBGb3Igc3RhcnRQb3NpdGlvbiBlcXVhbHMgdG8gZW5kUG9zaXRpb24gTGVuZ3RoIGlzIDEgKi9cbiAgICBnZXQgTGVuZ3RoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydFBvc2l0aW9uIDw9IHRoaXMuZW5kUG9zaXRpb24gPyB0aGlzLmVuZFBvc2l0aW9uIC0gdGhpcy5zdGFydFBvc2l0aW9uICsgMSA6IDA7XG4gICAgfVxuICAgIGluaXQoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZClcbiAgICAgICAgICAgICAgICBhbGVydCgnV2ViTG9nbyBzZWNvbmQgaW5pdGlhbGl6YXRpb24hJyk7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaGVscFVybCA9ICcvaGVscC92aXN1YWxpemUvdmlld2Vycy93ZWItbG9nby5tZCc7XG4gICAgICAgICAgICB0aGlzLm1zZ0hvc3QgPSB1aS5kaXYoJ05vIG1lc3NhZ2UnKTtcbiAgICAgICAgICAgIHRoaXMubXNnSG9zdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSB1aS5jYW52YXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgdGhpcy5ob3N0ID0gdWkuZGl2KFt0aGlzLm1zZ0hvc3QsIHRoaXMuY2FudmFzXSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNsaWRlciA9IHVpLnJhbmdlU2xpZGVyKDAsIDIwLCAyLCA1KTtcbiAgICAgICAgICAgIC8vIHRoaXMuc2xpZGVyLnJvb3Quc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICAgICAgICAvLyB0aGlzLnNsaWRlci5yb290LnN0eWxlLmhlaWdodCA9ICcxMnB4JztcbiAgICAgICAgICAgIGNvbnN0IGdldE1vbm9tZXIgPSAocCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGpQb3MgPSBNYXRoLmZsb29yKHAueCAvIHRoaXMucG9zaXRpb25XaWR0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uc1tqUG9zXTtcbiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPT09IHZvaWQgMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtqUG9zLCBudWxsLCBudWxsXTtcbiAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyID0gT2JqZWN0LmtleXMocG9zaXRpb24uZnJlcSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbmQoKG0pID0+IHBvc2l0aW9uLmZyZXFbbV0uYm91bmRzLmNvbnRhaW5zKHAueCwgcC55KSk7XG4gICAgICAgICAgICAgICAgaWYgKG1vbm9tZXIgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtqUG9zLCBudWxsLCBudWxsXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW2pQb3MsIG1vbm9tZXIsIHBvc2l0aW9uLmZyZXFbbW9ub21lcl1dO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzLm9ubW91c2VvdmVyID0gKGUpID0+IHtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaChyeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlbW92ZScpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW52YXMpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmdzID0gZTtcbiAgICAgICAgICAgICAgICBjb25zdCBbalBvcywgbW9ub21lcl0gPSBnZXRNb25vbWVyKHRoaXMuY2FudmFzLmdldEN1cnNvclBvc2l0aW9uKGFyZ3MpKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUgJiYgdGhpcy5zZXFDb2wgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgICAgICB1aS50b29sdGlwLnNob3dSb3dHcm91cCh0aGlzLmRhdGFGcmFtZSwgKGlSb3cpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcSA9IHRoaXMuc2VxQ29sLmdldChpUm93KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1TZXEgPSBzZXEgPyBzZXFbdGhpcy5zdGFydFBvc2l0aW9uICsgalBvc10gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1TZXEgPT09IG1vbm9tZXI7XG4gICAgICAgICAgICAgICAgICAgIH0sIGFyZ3MueCArIDE2LCBhcmdzLnkgKyAxNik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB1aS50b29sdGlwLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaChyeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlZG93bicpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW52YXMgfHwgZS5idXR0b24gIT0gMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtqUG9zLCBtb25vbWVyXSA9IGdldE1vbm9tZXIodGhpcy5jYW52YXMuZ2V0Q3Vyc29yUG9zaXRpb24oYXJncykpO1xuICAgICAgICAgICAgICAgIC8vIHByZXZlbnRzIGRlc2VsZWN0IGFsbCByb3dzIGlmIHdlIG1pc3MgbW9ub21lciBib3VuZHNcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUgJiYgdGhpcy5zZXFDb2wgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uaW5pdCgoaVJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxID0gdGhpcy5zZXFDb2wuZ2V0KGlSb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbVNlcSA9IHNlcSA/IHNlcVt0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbVNlcSA9PT0gbW9ub21lcjtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2godWkub25TaXplQ2hhbmdlZCh0aGlzLnJvb3QpLnN1YnNjcmliZSh0aGlzLnJvb3RPblNpemVDaGFuZ2VkLmJpbmQodGhpcykpKTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5hcHBlbmQodGhpcy5ob3N0KTtcbiAgICAgICAgICAgIC8vIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLnNsaWRlci5yb290KTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcm9vdE9uU2l6ZUNoYW5nZWQoYXJncykge1xuICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgLy8gY29uc29sZS5kZWJ1ZyhgV2ViTG9nby5vblJvb3RTaXplQ2hhbmdlZCgpIGAgK1xuICAgICAgICAvLyAgIGByb290LndpZHRoPSR7dGhpcy5yb290LmNsaWVudFdpZHRofSwgcm9vdC5oZWlnaHQ9JHt0aGlzLnJvb3QuY2xpZW50SGVpZ2h0fSwgYCArXG4gICAgICAgIC8vICAgYGNhbnZhcy53aWR0aD0ke3RoaXMuY2FudmFzLndpZHRofSwgY2FudmFzLmhlaWdodD0ke3RoaXMuY2FudmFzLmhlaWdodH0gLmApO1xuICAgIH1cbiAgICAvKiogQXNzaWducyB7QGxpbmsgc2VxQ29sfSBhbmQge0BsaW5rIGNwfSBiYXNlZCBvbiB7QGxpbmsgc2VxdWVuY2VDb2x1bW5OYW1lfSBhbmQgY2FsbHMge0BsaW5rIHJlbmRlcn0oKS5cbiAgICAgKi9cbiAgICB1cGRhdGVTZXFDb2woKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFGcmFtZSkge1xuICAgICAgICAgICAgdGhpcy5zZXFDb2wgPSB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSA/IHRoaXMuZGF0YUZyYW1lLmNvbCh0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VxQ29sID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcUNvbCA9IHRoaXMucGlja1VwU2VxQ29sKHRoaXMuZGF0YUZyYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSA9IHRoaXMuc2VxQ29sID8gdGhpcy5zZXFDb2wubmFtZSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5zZXFDb2wpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhMZW5ndGggPSBNYXRoLm1heCguLi50aGlzLnNlcUNvbC5jYXRlZ29yaWVzLm1hcCgocykgPT4gcy5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICAvLyBHZXQgcG9zaXRpb24gbmFtZXMgZnJvbSBkYXRhIGNvbHVtbiB0YWcgJ3Bvc2l0aW9uTmFtZXMnXG4gICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb25OYW1lc1R4dCA9IHRoaXMuc2VxQ29sLmdldFRhZygncG9zaXRpb25OYW1lcycpO1xuICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIGlmICdwb3NpdGlvbk5hbWVzJyB0YWcgaXMgbm90IHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzID0gcG9zaXRpb25OYW1lc1R4dCA/IHBvc2l0aW9uTmFtZXNUeHQuc3BsaXQoJywgJykubWFwKChuKSA9PiBuLnRyaW0oKSkgOlxuICAgICAgICAgICAgICAgICAgICBbLi4uQXJyYXkobWF4TGVuZ3RoKS5rZXlzKCldLm1hcCgoalBvcykgPT4gYCR7alBvcyArIDF9YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID0gdGhpcy5zdGFydFBvc2l0aW9uTmFtZSAmJiB0aGlzLnBvc2l0aW9uTmFtZXMgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uTmFtZXMuaW5kZXhPZih0aGlzLnN0YXJ0UG9zaXRpb25OYW1lKSA6IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9IHRoaXMuZW5kUG9zaXRpb25OYW1lICYmIHRoaXMucG9zaXRpb25OYW1lcyA/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmRleE9mKHRoaXMuZW5kUG9zaXRpb25OYW1lKSA6IChtYXhMZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gdGhpcy5waWNrVXBQYWxldHRlKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY3AgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IC0xO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICBvblByb3BlcnR5Q2hhbmdlZChwcm9wZXJ0eSkge1xuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKGBXZWJMb2dvLm9uUHJvcGVydHlDaGFuZ2VkKCAke3Byb3BlcnR5Lm5hbWV9ID0gJycgfSlgKTtcbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpO1xuICAgICAgICBzd2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NvbnNpZGVyTnVsbFNlcXVlbmNlcyc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZXF1ZW5jZUNvbHVtbk5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VxQ29sKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGFydFBvc2l0aW9uTmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VuZFBvc2l0aW9uTmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Bvc2l0aW9uV2lkdGgnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWluSGVpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21heEhlaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaXhXaWR0aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2ZXJ0aWNhbEFsaWdubWVudCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdob3Jpem9udGFsQWxpZ25tZW50JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblRhYmxlQXR0YWNoZWQoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmRlYnVnKGBXZWJMb2dvLm9uVGFibGVBdHRhY2hlZCggZGF0YUZyYW1lID0gJHt0aGlzLmRhdGFGcmFtZSA/ICdkYXRhJyA6ICdudWxsJ30gKWApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFGcmFtZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2godGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKF8pID0+IHRoaXMucmVuZGVyKCkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFGcmFtZS5maWx0ZXIub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4gdGhpcy5yZW5kZXIoKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeWllbGQgdGhpcy5pbml0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfbnVsbFNlcXVlbmNlKGZpbGxlclJlc2lkdWUgPSAnWCcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uc2lkZXJOdWxsU2VxdWVuY2VzKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLkxlbmd0aCkuZmlsbChmaWxsZXJSZXNpZHVlKS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBfY2FsY3VsYXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMuY2FudmFzIHx8ICF0aGlzLmhvc3QgfHwgIXRoaXMuc2VxQ29sIHx8ICF0aGlzLmRhdGFGcmFtZSB8fFxuICAgICAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID09PSAtMSB8fCB0aGlzLmVuZFBvc2l0aW9uID09PSAtMSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5jYWxjU2l6ZSgpO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IG5ldyBBcnJheSh0aGlzLkxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgcG9zTmFtZSA9IHRoaXMucG9zaXRpb25OYW1lc1t0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXTtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25zW2pQb3NdID0gbmV3IFBvc2l0aW9uSW5mbyhwb3NOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICAvLyAyMDIyLTA1LTA1IGFza2Fsa2luIGluc3RydWN0ZWQgdG8gc2hvdyBXZWJMb2dvIGJhc2VkIG9uIGZpbHRlciAobm90IHNlbGVjdGlvbilcbiAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLmZpbHRlci5nZXRTZWxlY3RlZEluZGV4ZXMoKTtcbiAgICAgICAgLy8gY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi50cnVlQ291bnQgPiAwID8gdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLmdldFNlbGVjdGVkSW5kZXhlcygpIDpcbiAgICAgICAgLy8gICB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgIHRoaXMucm93c01hc2tlZCA9IGluZGljZXMubGVuZ3RoO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIGluZGljZXMpIHtcbiAgICAgICAgICAgIGxldCBzID0gKHRoaXMuc2VxQ29sLmdldChpKSk7XG4gICAgICAgICAgICBpZiAoIXMpIHtcbiAgICAgICAgICAgICAgICBzID0gdGhpcy5fbnVsbFNlcXVlbmNlKCk7XG4gICAgICAgICAgICAgICAgKyt0aGlzLnJvd3NOdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBtSW5mbyA9IHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBzW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIHx8ICctJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEobSBpbiBwbUluZm8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgcG1JbmZvW21dID0gbmV3IFBvc2l0aW9uTW9ub21lckluZm8oKTtcbiAgICAgICAgICAgICAgICAgICAgcG1JbmZvW21dLmNvdW50Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI3JlZ2lvbiBQb2xpc2ggZnJlcSBjb3VudHNcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICAvLyBkZWxldGUgdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVsnLSddO1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtIGluIHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXEpXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgKz0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVttXS5jb3VudDtcbiAgICAgICAgfVxuICAgICAgICAvLyNlbmRyZWdpb25cbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gdGhpcy5jYW52YXMuaGVpZ2h0IC0gdGhpcy5heGlzSGVpZ2h0O1xuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKGBXZWJMb2dvLl9jYWxjdWxhdGUoKSBtYXhIZWlnaHQ9JHttYXhIZWlnaHR9LmApO1xuICAgICAgICAvLyNyZWdpb24gQ2FsY3VsYXRlIHNjcmVlblxuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZyZXEgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxO1xuICAgICAgICAgICAgY29uc3Qgcm93Q291bnQgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudDtcbiAgICAgICAgICAgIGxldCB5ID0gdGhpcy5heGlzSGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGZyZXEpLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYVswXSAhPT0gJy0nICYmIGJbMF0gIT09ICctJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJbMV0uY291bnQgLSBhWzFdLmNvdW50O1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFbMF0gPT09ICctJyAmJiBiWzBdID09PSAnLScpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFbMF0gPT09ICctJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgIGVsc2UgLyogKGJbMF0gPT09ICctJykgKi9cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICsxO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwbUluZm8gPSBlbnRyeVsxXTtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBtOiBzdHJpbmcgPSBlbnRyeVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBoID0gbWF4SGVpZ2h0ICogcG1JbmZvLmNvdW50IC8gcm93Q291bnQ7XG4gICAgICAgICAgICAgICAgcG1JbmZvLmJvdW5kcyA9IG5ldyBERy5SZWN0KGpQb3MgKiB0aGlzLnBvc2l0aW9uV2lkdGgsIHksIHRoaXMucG9zaXRpb25XaWR0aCwgaCk7XG4gICAgICAgICAgICAgICAgeSArPSBoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvblxuICAgIH1cbiAgICAvLyByZWZsZWN0IGNoYW5nZXMgbWFkZSB0byBmaWx0ZXIvc2VsZWN0aW9uXG4gICAgcmVuZGVyKHJlY2FsYyA9IHRydWUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGhpcy5tc2dIb3N0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXFDb2wgJiYgIXRoaXMuY3ApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1zZ0hvc3QuaW5uZXJUZXh0ID0gYFVua25vd24gcGFsZXR0ZSAoY29sdW1uIHNlbVR5cGU6ICcke3RoaXMuc2VxQ29sLnNlbVR5cGV9JykuYDtcbiAgICAgICAgICAgICAgICB0aGlzLm1zZ0hvc3Quc3R5bGUuZGlzcGxheSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5zZXFDb2wgfHwgIXRoaXMuZGF0YUZyYW1lIHx8ICF0aGlzLmNwIHx8XG4gICAgICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPT09IC0xIHx8IHRoaXMuZW5kUG9zaXRpb24gPT09IC0xKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBnID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgaWYgKCFnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAocmVjYWxjKVxuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlKCk7XG4gICAgICAgIC8vIGxldCByb3dDb3VudCA9IHRoaXMucm93c01hc2tlZDtcbiAgICAgICAgLy8gaWYgKCF0aGlzLmNvbnNpZGVyTnVsbFNlcXVlbmNlcylcbiAgICAgICAgLy8gICByb3dDb3VudCAtPSB0aGlzLnJvd3NOdWxsO1xuICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgIGcuZmlsbFN0eWxlID0gJ3doaXRlJztcbiAgICAgICAgZy5maWxsUmVjdCgwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgZy50ZXh0QmFzZWxpbmUgPSB0aGlzLnRleHRCYXNlbGluZTtcbiAgICAgICAgLy8jcmVnaW9uIFBsb3QgcG9zaXRpb25OYW1lc1xuICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgIGcuZmlsbFN0eWxlID0gJ2JsYWNrJztcbiAgICAgICAgZy50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICAgICAgZy5mb250ID0gJzEwcHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWYnO1xuICAgICAgICBjb25zdCBwb3NOYW1lTWF4V2lkdGggPSBNYXRoLm1heCguLi50aGlzLnBvc2l0aW9ucy5tYXAoKHBvcykgPT4gZy5tZWFzdXJlVGV4dChwb3MubmFtZSkud2lkdGgpKTtcbiAgICAgICAgY29uc3QgaFNjYWxlID0gcG9zTmFtZU1heFdpZHRoIDwgKHRoaXMucG9zaXRpb25XaWR0aCAtIDIpID8gMSA6ICh0aGlzLnBvc2l0aW9uV2lkdGggLSAyKSAvIHBvc05hbWVNYXhXaWR0aDtcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICBjb25zdCBwb3MgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXTtcbiAgICAgICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgIGcuc2V0VHJhbnNmb3JtKGhTY2FsZSwgMCwgMCwgMSwgalBvcyAqIHRoaXMucG9zaXRpb25XaWR0aCArIHRoaXMucG9zaXRpb25XaWR0aCAvIDIsIDApO1xuICAgICAgICAgICAgZy5maWxsVGV4dChwb3MubmFtZSwgMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8jZW5kcmVnaW9uIFBsb3QgcG9zaXRpb25OYW1lc1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW21vbm9tZXIsIHBtSW5mb10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSkpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lciAhPT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGIgPSBwbUluZm8uYm91bmRzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb250U3R5bGUgPSAnMTZweCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZic7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhhY2tzIHRvIHNjYWxlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHRvIHRhcmdldCByZWN0YW5nbGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVyQXNjZW50ID0gMC4yNTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVySGVpZ2h0ID0gMTIuMjtcbiAgICAgICAgICAgICAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBnLnN0cm9rZVN0eWxlID0gJ2xpZ2h0Z3JheSc7XG4gICAgICAgICAgICAgICAgICAgIGcubGluZVdpZHRoID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZy5yZWN0KGIubGVmdCwgYi50b3AsIGIud2lkdGgsIGIuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgZy5maWxsU3R5bGUgPSAoX2EgPSB0aGlzLmNwW21vbm9tZXJdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLmNwWydvdGhlciddO1xuICAgICAgICAgICAgICAgICAgICBnLnRleHRBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICAgICAgZy5mb250ID0gZm9udFN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAvL2cuZmlsbFJlY3QoYi5sZWZ0LCBiLnRvcCwgYi53aWR0aCwgYi5oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtVG0gPSBnLm1lYXN1cmVUZXh0KG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiAobU0uYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQgIT0gMClcbiAgICAgICAgICAgICAgICAgICAgLy8gICBjb25zb2xlLmRlYnVnKGBtOiAke219LCBtTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudDogJHttTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudH1gKTtcbiAgICAgICAgICAgICAgICAgICAgZy5zZXRUcmFuc2Zvcm0oYi53aWR0aCAvIG1UbS53aWR0aCwgMCwgMCwgYi5oZWlnaHQgLyB1cHBlcmNhc2VMZXR0ZXJIZWlnaHQsIGIubGVmdCwgYi50b3ApO1xuICAgICAgICAgICAgICAgICAgICBnLmZpbGxUZXh0KG1vbm9tZXIsIDAsIC11cHBlcmNhc2VMZXR0ZXJBc2NlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjYWxjU2l6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5ob3N0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuTGVuZ3RoICogdGhpcy5wb3NpdGlvbldpZHRoO1xuICAgICAgICB0aGlzLmNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgICAgICB0aGlzLmNhbnZhcy5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5taW4odGhpcy5tYXhIZWlnaHQsIE1hdGgubWF4KHRoaXMubWluSGVpZ2h0LCB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0KSk7XG4gICAgICAgIC8vIGNvbnN0IGNhbnZhc0hlaWdodDogbnVtYmVyID0gd2lkdGggPiB0aGlzLnJvb3QuY2xpZW50V2lkdGggPyBoZWlnaHQgLSA4IDogaGVpZ2h0O1xuICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0O1xuICAgICAgICB0aGlzLmNhbnZhcy5oZWlnaHQgPSBjYW52YXNIZWlnaHQ7XG4gICAgICAgIHRoaXMuY2FudmFzLnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBgJHtjYW52YXNIZWlnaHR9cHhgKTtcbiAgICAgICAgLy8gQWRqdXN0IGhvc3QgYW5kIHJvb3Qgd2lkdGhcbiAgICAgICAgaWYgKHRoaXMuZml4V2lkdGgpIHtcbiAgICAgICAgICAgIC8vIGZ1bGwgd2lkdGggZm9yIGNhbnZhcyBob3N0IGFuZCByb290XG4gICAgICAgICAgICB0aGlzLnJvb3Quc3R5bGUud2lkdGggPSB0aGlzLmhvc3Quc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XG4gICAgICAgICAgICB0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0IC8qPSB0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0Ki8gPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsICdoaWRkZW4nLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBhbGxvdyBzY3JvbGwgY2FudmFzIGluIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5vdmVyZmxvd1ggPSAnYXV0byFpbXBvcnRhbnQnO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCd0ZXh0LWFsaWduJywgdGhpcy5ob3Jpem9udGFsQWxpZ25tZW50KTtcbiAgICAgICAgICAgIC8vIHZlcnRpY2FsIGFsaWdubWVudFxuICAgICAgICAgICAgbGV0IGhvc3RUb3BNYXJnaW4gPSAwO1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21pZGRsZSc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RUb3BNYXJnaW4gPSBNYXRoLm1heCgwLCAodGhpcy5yb290LmNsaWVudEhlaWdodCAtIGhlaWdodCkgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IE1hdGgubWF4KDAsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSBoZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLXRvcCcsIGAke2hvc3RUb3BNYXJnaW59cHhgLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICBpZiAodGhpcy5yb290LmNsaWVudEhlaWdodCA8IGhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7dGhpcy5yb290LmNsaWVudEhlaWdodH1weGApO1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cteScsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdy15JywgJ2hpZGRlbicsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKFxuICAgICAgICAvLyAgIGB0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLnJvb3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLmhvc3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgICdcXG4nICtcbiAgICAgICAgLy8gICBgdGhpcy5jYW52YXMuaGVpZ2h0ICAgICAgID0gJHt0aGlzLmNhbnZhcy5oZWlnaHR9XFxuYCArXG4gICAgICAgIC8vICAgYHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodCA9ICR7dGhpcy5jYW52YXMuc3R5bGUuaGVpZ2h0fWApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gc2VxQ29sIENvbHVtbiB0byBsb29rIGZvciBhIHBhbGV0dGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gIG1pbkxlbmd0aCBtaW5pbXVtIGxlbmd0aCBvZiBzZXF1ZW5jZSB0byBkZXRlY3QgcGFsZXR0ZSAoZW1wdHkgc3RyaW5ncyBhcmUgYWxsb3dlZClcbiAgICAgKiBAcmV0dXJuIHtTZXFQYWxldHRlfSBQYWxldHRlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFscGhhYmV0IG9mIHRoZSBzZXF1ZW5jZXMgaW4gdGhlIGNvbHVtblxuICAgICAqL1xuICAgIHBpY2tVcFBhbGV0dGUoc2VxQ29sLCBtaW5MZW5ndGggPSAwKSB7XG4gICAgICAgIGxldCByZXMgPSBudWxsO1xuICAgICAgICBzd2l0Y2ggKHNlcUNvbC5zZW1UeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFtaW5vYWNpZHMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50OlxuICAgICAgICAgICAgICAgIHJlcyA9IEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBOdWNsZW90aWRlcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQ6XG4gICAgICAgICAgICAgICAgcmVzID0gTnVjbGVvdGlkZXNQYWxldHRlcy5DaHJvbWF0b2dyYW07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gVGhlIGFscGhhYmV0IG9mIG51Y2xlb3RpZGVzIGlzIGEgc21hbGxlciBzZXQsIHNvIHdlIGNoZWNrIGl0IGZpcnN0LlxuICAgICAgICAgICAgY29uc3QgYWxwaGFiZXQgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIE51Y2xlb3RpZGVzLk5hbWVzKSwgeyAnLSc6ICdnYXAnIH0pO1xuICAgICAgICAgICAgcmVzID0gREcuRGV0ZWN0b3Iuc2FtcGxlQ2F0ZWdvcmllcyhzZXFDb2wsIChzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFzIHx8IChzLmxlbmd0aCA+IG1pbkxlbmd0aCAmJiBzLnNwbGl0KCcnKS5ldmVyeSgobikgPT4gbiBpbiBhbHBoYWJldCkpO1xuICAgICAgICAgICAgfSkgPyBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbSA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQW5kIHRoZW4gY2hlY2sgZm9yIGFtaW5vIGFjaWRzIGFscGhhYmV0LlxuICAgICAgICAgICAgY29uc3QgYWxwaGFiZXQgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIEFtaW5vYWNpZHMuTmFtZXMpLCB7ICctJzogJ2dhcCcgfSk7XG4gICAgICAgICAgICByZXMgPSBERy5EZXRlY3Rvci5zYW1wbGVDYXRlZ29yaWVzKHNlcUNvbCwgKHMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXMgfHwgKHMubGVuZ3RoID4gbWluTGVuZ3RoICYmIHMuc3BsaXQoJycpLmV2ZXJ5KChuKSA9PiBuIGluIGFscGhhYmV0KSk7XG4gICAgICAgICAgICB9KSA/IEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzIDogbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICAvKiogRmlyc3QgdHJ5IHRvIGZpbmQgY29sdW1uIHdpdGggc2VtVHlwZSAnYWxpZ25lZFNlcXVlbmNlJy5cbiAgICAgKiBOZXh0IGxvb2sgZm9yIGNvbHVtbiB3aXRoIGRhdGEgYWxwaGFiZXQgY29ycmVzcG9uZGluZyB0byBhbnkgb2YgdGhlIGtub3duIHBhbGV0dGVzLlxuICAgICAqIEBwYXJhbSB7REcuRGF0YUZyYW1lfSBkYXRhRnJhbWVcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59IFRoZSBjb2x1bW4gd2Ugd2VyZSBsb29raW5nIGZvciBvciBudWxsXG4gICAgICovXG4gICAgcGlja1VwU2VxQ29sKGRhdGFGcmFtZSkge1xuICAgICAgICBsZXQgcmVzID0gZGF0YUZyYW1lLmNvbHVtbnMudG9MaXN0KClcbiAgICAgICAgICAgIC5maW5kKChjKSA9PiBjLnNlbVR5cGUgPT0gJ2FsaWduZWRTZXF1ZW5jZScpIHx8IG51bGw7XG4gICAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgZGF0YUZyYW1lLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcCA9IHRoaXMucGlja1VwUGFsZXR0ZShjb2wsIDUpO1xuICAgICAgICAgICAgICAgIGlmIChjcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXMgPSBjb2w7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbn1cbldlYkxvZ28ucmVzaWR1ZXNTZXQgPSAnbnVjbGVvdGlkZXMnO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZDJWaUxXeHZaMjh1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjNaV0l0Ykc5bmJ5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZEUVN4UFFVRlBMRXRCUVVzc1JVRkJSU3hOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUTNSRExFOUJRVThzUzBGQlN5eEZRVUZGTEUxQlFVMHNhVUpCUVdsQ0xFTkJRVU03UVVGRmRFTXNUMEZCVHl4TFFVRkxMRWxCUVVrc1RVRkJUU3hOUVVGTkxFTkJRVU03UVVGSk4wSXNUMEZCVHl4RlFVRkRMRlZCUVZVc1JVRkJSU3hyUWtGQmEwSXNSVUZCUXl4TlFVRk5MR1ZCUVdVc1EwRkJRenRCUVVNM1JDeFBRVUZQTEVWQlFVTXNWMEZCVnl4RlFVRkZMRzFDUVVGdFFpeEZRVUZETEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGcFFtaEZMR2xDUVVGcFFpeERRVUZETEZOQlFWTXNRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eFZRVUZUTEV0QlFXbENPMGxCUTNoRkxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUlVGQlJTeERRVUZETzBsQlF6RkRMRTlCUVU4c1NVRkJTU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU16UlN4RFFVRkRMRU5CUVVNN1FVRkZSaXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJVeXhEUVVGVExFVkJRVVVzUTBGQlV6dEpRVU40UkN4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEyaEdMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzVDBGQlR5eHRRa0ZCYlVJN1NVRlRPVUk3VVVGRFJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVObUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hETEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhaUVVGWk8wbEJTM1pDT3p0UFFVVkhPMGxCUTBnc1dVRkJXU3hKUVVGWk8xRkJRM1JDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMllzU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRjRUlzUTBGQlF6dERRVU5HTzBGQlJVUXNUVUZCVFN4UFFVRlBMRTlCUVZFc1UwRkJVU3hGUVVGRkxFTkJRVU1zVVVGQlVUdEpRVGhEZEVNN1VVRkRSU3hMUVVGTExFVkJRVVVzUTBGQlF6dFJRVFZEUml4blFrRkJWeXhIUVVGWkxFdEJRVXNzUTBGQlF6dFJRVVZ5UXl3MFJrRkJORVk3VVVGRGJFWXNUMEZCUlN4SFFVRnpRaXhKUVVGSkxFTkJRVU03VVVGUkwwSXNaVUZCVlN4SFFVRlhMRVZCUVVVc1EwRkJRenRSUVVWNFFpeFhRVUZOTEVkQlFYRkNMRWxCUVVrc1EwRkJRenRSUVVONFF5eHRRMEZCYlVNN1VVRkRNMElzWTBGQlV5eEhRVUZ0UWl4RlFVRkZMRU5CUVVNN1VVRkZMMElzWlVGQlZTeEhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhoUVVGUkxFZEJRVmNzUTBGQlF5eERRVUZETzFGQlkzSkNMR3RDUVVGaExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlJUZENMR3RDUVVGaExFZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGTTBJc1owSkJRVmNzUjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFWVXZRaXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVVXhRaXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hGUVVGRkxFVkJRVVVzUTBGQlFUczRSRUZEUnl4RFFVRkRMRU5CUVVNN1VVRkRlRVFzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeEZRVUZGTEVOQlFVRTdaMFZCUTJFc1EwRkJReXhEUVVGRE8xRkJRekZFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNSMEZCUnl4RFFVRkJPMmRGUVVOWkxFTkJRVU1zUTBGQlF6dFJRVVV4UkN4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOMlJTeEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4dlFrRkJiMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVVnNSU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU5vUlN4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGTlVRc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVUzUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4UlFVRlJMRVZCUTJoRkxFVkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RlFVRkZMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTTdVVUZETVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRVZCUVVVc1VVRkJVU3hGUVVOd1JTeEZRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFVkJRVVVzVDBGQlR5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRPMGxCUXpWRExFTkJRVU03U1VFM1FrUXNNRVJCUVRCRU8wbEJRekZFTEVsQlFWa3NUVUZCVFR0UlFVTm9RaXhQUVVGUExFbEJRVWtzUTBGQlF5eGhRVUZoTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJoSExFTkJRVU03U1VFMFFtRXNTVUZCU1RzN1dVRkRhRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnp0blFrRkRiRUlzUzBGQlN5eERRVUZETEdkRFFVRm5ReXhEUVVGRExFTkJRVU03V1VGRk1VTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU03V1VGRGVFSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXh4UTBGQmNVTXNRMEZCUXp0WlFVVnlSQ3hKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03V1VGRGNFTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXp0WlFVVndReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVNeFFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETzFsQlJXcERMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZhRVFzTmtOQlFUWkRPMWxCUXpkRExIbERRVUY1UXp0WlFVTjZReXd3UTBGQk1FTTdXVUZGTVVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzUTBGQlF5eERRVUZYTEVWQlFYVkVMRVZCUVVVN1owSkJRM1JHTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03WjBKQlEyeEVMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJSWFJETEVsQlFVa3NVVUZCVVN4TFFVRkxMRXRCUVVzc1EwRkJRenR2UWtGRGNrSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUlRWQ0xFMUJRVTBzVDBGQlR5eEhRVUYxUWl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTTdjVUpCUXpORUxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF6TkVMRWxCUVVrc1QwRkJUeXhMUVVGTExGTkJRVk03YjBKQlEzWkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVVMVFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRha1FzUTBGQlF5eERRVUZETzFsQlJVWXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFZEJRVWNzUTBGQlF5eERRVUZoTEVWQlFVVXNSVUZCUlR0WlFVVTFReXhEUVVGRExFTkJRVU03V1VGRlJpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZoTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCWVN4RlFVRkZMRVZCUVVVN1owSkJRemxHTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUVHR2UWtGRFpDeFBRVUZQTzJkQ1FVVlVMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRV1VzUTBGQlF6dG5Ra0ZETjBJc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVVjRSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hQUVVGUExFVkJRVVU3YjBKQlF6VkRMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJUdDNRa0ZETDBNc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03ZDBKQlEyNURMRTFCUVUwc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenQzUWtGRGVrUXNUMEZCVHl4SlFVRkpMRXRCUVVzc1QwRkJUeXhEUVVGRE8yOUNRVU14UWl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dHBRa0ZET1VJN2NVSkJRVTA3YjBKQlEwd3NSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dHBRa0ZEYmtJN1dVRkRTQ3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlJVb3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCWVN4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVdFc1JVRkJSU3hGUVVGRk8yZENRVU01Uml4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNN2IwSkJReTlDTEU5QlFVODdaMEpCUlZRc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlpTeERRVUZETzJkQ1FVTTNRaXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUlhoRkxIVkVRVUYxUkR0blFrRkRka1FzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFbEJRVWtzVDBGQlR5eEZRVUZGTzI5Q1FVTTFReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJUdDNRa0ZEY2tNc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03ZDBKQlEyNURMRTFCUVUwc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenQzUWtGRGVrUXNUMEZCVHl4SlFVRkpMRXRCUVVzc1QwRkJUeXhEUVVGRE8yOUNRVU14UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRwUWtGRFNqdFpRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZTaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZGZWtZc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRelZDTERKRFFVRXlRenRaUVVVelF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM0JDTEVOQlFVTTdTMEZCUVR0SlFVVkVMR2xDUVVGcFFpeERRVUZETEVsQlFWTTdVVUZEZWtJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVVnNRaXhwUkVGQmFVUTdVVUZEYWtRc2NVWkJRWEZHTzFGQlEzSkdMR2xHUVVGcFJqdEpRVU51Uml4RFFVRkRPMGxCUlVRN1QwRkRSenRKUVVOSUxGbEJRVms3VVVGRFZpeEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVN1dVRkRiRUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRNMFlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWxCUVVrc1JVRkJSVHRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRGFFUXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03WVVGRGFrVTdXVUZEUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVU3WjBKQlEyWXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUlRORkxEQkVRVUV3UkR0blFrRkRNVVFzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRuUWtGRE4wUXNhMFJCUVd0RU8yZENRVU5zUkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVONlJpeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVVUxUkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdiMEpCUTJwRkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzcEVMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03YjBKQlF6ZEVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJSWEpGTEVsQlFVa3NRMEZCUXl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1lVRkRNME03YVVKQlFVMDdaMEpCUTB3c1NVRkJTU3hEUVVGRExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdaMEpCUTJZc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eEZRVUZGTEVOQlFVTTdaMEpCUTNoQ0xFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM2hDTEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGRrSTdVMEZEUmp0UlFVTkVMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU5vUWl4RFFVRkRPMGxCUlVRc2FVSkJRV2xDTEVOQlFVTXNVVUZCY1VJN1VVRkRja01zZDBWQlFYZEZPMUZCUTNoRkxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVVZzUXl4UlFVRlJMRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVU3V1VGRGRrSXNTMEZCU3l4MVFrRkJkVUk3WjBKQlF6RkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEc5Q1FVRnZRanRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8yZENRVU53UWl4TlFVRk5PMWxCUTFJc1MwRkJTeXh0UWtGQmJVSTdaMEpCUTNSQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NhVUpCUVdsQ08yZENRVU53UWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03WjBKQlEzQkNMRTFCUVUwN1dVRkRVaXhMUVVGTExHVkJRV1U3WjBKQlEyeENMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEZkQlFWYzdaMEpCUTJRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRiRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NWMEZCVnp0blFrRkRaQ3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4VlFVRlZPMmRDUVVOaUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJRMnhDTEUxQlFVMDdXVUZEVWl4TFFVRkxMRzFDUVVGdFFqdG5Ra0ZEZEVJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRiRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NjVUpCUVhGQ08yZENRVU40UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhOUVVGTk8xTkJRMUE3U1VGRFNDeERRVUZETzBsQlJVc3NaVUZCWlRzN1dVRkRia0lzSzBaQlFTdEdPMWxCUXk5R0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0WlFVVndRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUVVVN1owSkJRemRDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTI1R0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGFrWTdXVUZGUkN4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU53UWl4RFFVRkRPMHRCUVVFN1NVRkZVeXhoUVVGaExFTkJRVU1zWVVGQllTeEhRVUZITEVkQlFVYzdVVUZEZWtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNPMWxCUXpWQ0xFOUJRVThzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRk4wUXNUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkRXaXhEUVVGRE8wbEJSVk1zVlVGQlZUdFJRVU5zUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNN1dVRkRMMFFzU1VGQlNTeERRVUZETEdGQlFXRXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTndSQ3hQUVVGUE8xRkJSVlFzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUldoQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEzaERMRXRCUVVzc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTzFsQlF6ZERMRTFCUVUwc1QwRkJUeXhIUVVGWExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU4wUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xTkJRMnhFTzFGQlJVUXNhVVpCUVdsR08xRkJRMnBHTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU03VVVGRE0wUXNNa2RCUVRKSE8xRkJRek5ITEdkRVFVRm5SRHRSUVVWb1JDeEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRGFrTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRmJFSXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hQUVVGUExFVkJRVVU3V1VGRGRrSXNTVUZCU1N4RFFVRkRMRWRCUVcxQ0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVVUzUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhGUVVGRk8yZENRVU5PTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hGUVVGRkxFTkJRVU03WjBKQlEzcENMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dGhRVU5xUWp0cFFrRkJUVHRuUWtGRFRDeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHR2UWtGRE4wTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN2IwSkJRM3BETEUxQlFVMHNRMEZCUXl4SFFVRlhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJRenR2UWtGRGRFUXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF6dDNRa0ZEYUVJc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVVzUTBGQlF6dHZRa0ZGZUVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMmxDUVVOdVFqdGhRVU5HTzFOQlEwWTdVVUZGUkN3MFFrRkJORUk3VVVGRE5VSXNTMEZCU3l4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRExFVkJRVVVzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVU3V1VGRE4wTXNlVU5CUVhsRE8xbEJSWHBETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnNReXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNUdG5Ra0ZEZGtNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzFOQlEzWkZPMUZCUTBRc1dVRkJXVHRSUVVWYUxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTTdVVUZEZGtRc2FVVkJRV2xGTzFGQlJXcEZMREJDUVVFd1FqdFJRVU14UWl4TFFVRkxMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJUdFpRVU0zUXl4TlFVRk5MRWxCUVVrc1IwRkJlVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRE4wVXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1dVRkZMME1zU1VGQlNTeERRVUZETEVkQlFWY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJRenRaUVVWb1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZEYWtRc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITzI5Q1FVTTVRaXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0eFFrRkROVUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVOdVF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0eFFrRkRUaXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVOdVFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOUUxHOUNRVUZ2UWp0dlFrRkRka0lzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMGdzUzBGQlN5eE5RVUZOTEV0QlFVc3NTVUZCU1N4UFFVRlBMRVZCUVVVN1owSkJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRjNRaXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpkRExEaENRVUU0UWp0blFrRkRPVUlzVFVGQlRTeERRVUZETEVkQlFWY3NVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzVVVGQlVTeERRVUZETzJkQ1FVVjBSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRha1lzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0aFFVTlNPMU5CUTBZN1VVRkRSQ3haUVVGWk8wbEJRMlFzUTBGQlF6dEpRVVZFTERKRFFVRXlRenRKUVVNelF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWxCUVVrN08xRkJRMnhDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVOb1FpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTXpRaXhKUVVGSkxFTkJRVU1zVDBGQlVTeERRVUZETEZOQlFWTXNSMEZCUnl4eFEwRkJjVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRXRCUVVzc1EwRkJRenRuUWtGRGVFWXNTVUZCU1N4RFFVRkRMRTlCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTnNRenRwUWtGQlRUdG5Ra0ZEVEN4SlFVRkpMRU5CUVVNc1QwRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRPMkZCUTNSRE8xTkJRMFk3VVVGRlJDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdXVUZETjBRc1NVRkJTU3hEUVVGRExHRkJRV0VzUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU53UkN4UFFVRlBPMUZCUlZRc1RVRkJUU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGRrTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkJSU3hQUVVGUE8xRkJSV1lzU1VGQlNTeE5RVUZOTzFsQlExSXNTVUZCU1N4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8xRkJSWEJDTEd0RFFVRnJRenRSUVVOc1F5eHRRMEZCYlVNN1VVRkRia01zSzBKQlFTdENPMUZCUlM5Q0xFTkJRVU1zUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXp0UlFVTjBRaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU40UkN4RFFVRkRMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTTdVVUZGYmtNc05FSkJRVFJDTzFGQlF6VkNMRU5CUVVNc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFJRVU51UWl4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExFOUJRVThzUTBGQlF6dFJRVU4wUWl4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExGRkJRVkVzUTBGQlF6dFJRVU4yUWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExIVkRRVUYxUXl4RFFVRkRPMUZCUTJwRUxFMUJRVTBzWlVGQlpTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTm9SeXhOUVVGTkxFMUJRVTBzUjBGQlJ5eGxRVUZsTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhsUVVGbExFTkJRVU03VVVGRk0wY3NTMEZCU3l4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRExFVkJRVVVzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVU3V1VGRE4wTXNUVUZCVFN4SFFVRkhMRWRCUVdsQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRMME1zUTBGQlF5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMWxCUTI1Q0xFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlExb3NUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVU5tTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM3BFTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkROVUk3VVVGRFJDd3JRa0ZCSzBJN1VVRkZMMElzUzBGQlN5eEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVN1dVRkROME1zUzBGQlN5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlR0blFrRkRla1VzU1VGQlNTeFBRVUZQTEV0QlFVc3NSMEZCUnl4RlFVRkZPMjlDUVVOdVFpeE5RVUZOTEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRE8yOUNRVVY0UWl4TlFVRk5MRk5CUVZNc1IwRkJSeXgxUTBGQmRVTXNRMEZCUXp0dlFrRkRNVVFzTUVSQlFUQkVPMjlDUVVNeFJDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGSExFbEJRVWtzUTBGQlF6dHZRa0ZEYmtNc1RVRkJUU3h4UWtGQmNVSXNSMEZCUnl4SlFVRkpMRU5CUVVNN2IwSkJSVzVETEVOQlFVTXNRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenR2UWtGRGJrSXNRMEZCUXl4RFFVRkRMRmRCUVZjc1IwRkJSeXhYUVVGWExFTkJRVU03YjBKQlF6VkNMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETzI5Q1FVTm9RaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dHZRa0ZEZWtNc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eE5RVUZCTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHMURRVUZKTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03YjBKQlEyNUVMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzVFVGQlRTeERRVUZETzI5Q1FVTnlRaXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXp0dlFrRkRia0lzSzBOQlFTdERPMjlDUVVNdlF5eE5RVUZOTEVkQlFVY3NSMEZCWjBJc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0dlFrRkZhRVFzZFVOQlFYVkRPMjlDUVVOMlF5eDVSa0ZCZVVZN2IwSkJSWHBHTEVOQlFVTXNRMEZCUXl4WlFVRlpMRU5CUTFvc1EwRkJReXhEUVVGRExFdEJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4eFFrRkJjVUlzUlVGRE0wUXNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdiMEpCUTJwQ0xFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN2FVSkJRMmhFTzJGQlEwWTdVMEZEUmp0SlFVTklMRU5CUVVNN1NVRkZUeXhSUVVGUk8xRkJRMlFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNUdFpRVU0xUWl4UFFVRlBPMUZCUlZRc1RVRkJUU3hMUVVGTExFZEJRVmNzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRE8xRkJRM1pFTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU14UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NSMEZCUnl4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVWMlF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU14Uml4dlJrRkJiMFk3VVVGRGNFWXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGNrUXNUVUZCVFN4WlFVRlpMRWRCUVZjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTTdVVUZEY0VRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NXVUZCV1N4RFFVRkRPMUZCUTJ4RExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eFpRVUZaTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUlRkRUxEWkNRVUUyUWp0UlFVTTNRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVTdXVUZEYWtJc2MwTkJRWE5ETzFsQlEzUkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NSMEZCUnl4TFFVRkxMRWxCUVVrc1EwRkJRenRaUVVNM1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zTkVKQlFUUkNMRWRCUVVjc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF6dFpRVU53UlN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFRRVU5vUlR0aFFVRk5PMWxCUTB3c09FSkJRVGhDTzFsQlF6bENMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NUVUZCVFN4RFFVRkRPMWxCUTNaRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1IwRkJSeXhuUWtGQlowSXNRMEZCUXp0WlFVTTNReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFsQlJUbERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4WlFVRlpMRVZCUVVVc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1dVRkZjRVVzY1VKQlFYRkNPMWxCUTNKQ0xFbEJRVWtzWVVGQllTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTjBRaXhSUVVGUkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSVHRuUWtGRGFFTXNTMEZCU3l4TFFVRkxPMjlDUVVOU0xHRkJRV0VzUjBGQlJ5eERRVUZETEVOQlFVTTdiMEpCUTJ4Q0xFMUJRVTA3WjBKQlExSXNTMEZCU3l4UlFVRlJPMjlDUVVOWUxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTnVSU3hOUVVGTk8yZENRVU5TTEV0QlFVc3NVVUZCVVR0dlFrRkRXQ3hoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNN2IwSkJRemRFTEUxQlFVMDdZVUZEVUR0WlFVTkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4WlFVRlpMRVZCUVVVc1IwRkJSeXhoUVVGaExFbEJRVWtzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0WlFVVTNSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4SFFVRkhMRTFCUVUwc1JVRkJSVHRuUWtGRGJrTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRja1VzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0aFFVTnFSRHRwUWtGQlRUdG5Ra0ZEVEN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dGhRVU5zUlR0VFFVTkdPMUZCUlVRc2FVSkJRV2xDTzFGQlEycENMRFpFUVVFMlJEdFJRVU0zUkN3MlJFRkJOa1E3VVVGRE4wUXNOa1JCUVRaRU8xRkJRemRFTERaRVFVRTJSRHRSUVVNM1JDeFhRVUZYTzFGQlExZ3NNa1JCUVRKRU8xRkJRek5FTEN0RVFVRXJSRHRKUVVOcVJTeERRVUZETzBsQlJVUTdPenM3VDBGSlJ6dEpRVU5MTEdGQlFXRXNRMEZCUXl4TlFVRnBRaXhGUVVGRkxGbEJRVzlDTEVOQlFVTTdVVUZETlVRc1NVRkJTU3hIUVVGSExFZEJRWE5DTEVsQlFVa3NRMEZCUXp0UlFVTnNReXhSUVVGUkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVWQlFVVTdXVUZEZUVJc1MwRkJTeXhWUVVGVkxFTkJRVU1zZDBKQlFYZENPMmRDUVVOMFF5eEhRVUZITEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zVlVGQlZTeERRVUZETzJkQ1FVTndReXhOUVVGTk8xbEJRMUlzUzBGQlN5eFhRVUZYTEVOQlFVTXNkMEpCUVhkQ08yZENRVU4yUXl4SFFVRkhMRWRCUVVjc2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RFFVRkRPMmRDUVVOMlF5eE5RVUZOTzFOQlExQTdVVUZEUkN4SlFVRkpMRWRCUVVjc1MwRkJTeXhKUVVGSkxFVkJRVVU3V1VGRGFFSXNjMFZCUVhORk8xbEJRM1JGTEUxQlFVMHNVVUZCVVN4dFEwRkJUeXhYUVVGWExFTkJRVU1zUzBGQlN5eEhRVUZMTEVWQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1JVRkJReXhEUVVGRExFTkJRVU03V1VGRGVrUXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUXk5RExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExGTkJRVk1zU1VGQlNTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYWtZc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMU5CUXpsRE8xRkJRMFFzU1VGQlNTeEhRVUZITEV0QlFVc3NTVUZCU1N4RlFVRkZPMWxCUTJoQ0xESkRRVUV5UXp0WlFVTXpReXhOUVVGTkxGRkJRVkVzYlVOQlFVOHNWVUZCVlN4RFFVRkRMRXRCUVVzc1IwRkJTeXhGUVVGRExFZEJRVWNzUlVGQlJTeExRVUZMTEVWQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNoRUxFZEJRVWNzUjBGQlJ5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU12UXl4UFFVRlBMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4VFFVRlRMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBHTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dFRRVU16UXp0UlFVTkVMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzUTBGQlF6dEpRVVZFT3pzN08wOUJTVWM3U1VGRFN5eFpRVUZaTEVOQlFVTXNVMEZCZFVJN1VVRkRNVU1zU1VGQlNTeEhRVUZITEVkQlFYRkNMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTzJGQlEyNUVMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVmtzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1NVRkJTU3hwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJRenRSUVVWc1JTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SlFVRkpMRVZCUVVVN1dVRkRaaXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEZOQlFWTXNRMEZCUXl4UFFVRlBMRVZCUVVVN1owSkJRMjVETEUxQlFVMHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUjBGQlowSXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJrUXNTVUZCU1N4RlFVRkZMRXRCUVVzc1NVRkJTU3hGUVVGRk8yOUNRVU5tTEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNN2IwSkJRMVlzVFVGQlRUdHBRa0ZEVUR0aFFVTkdPMU5CUTBZN1VVRkRSQ3hQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEVOQlFVTTdPMEZCTjJkQ1lTeHRRa0ZCVnl4SFFVRkhMR0ZCUVdFc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklHZHliMnNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJkeWIyc25PMXh1YVcxd2IzSjBJQ29nWVhNZ2RXa2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMM1ZwSnp0Y2JtbHRjRzl5ZENBcUlHRnpJRVJISUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5a1p5YzdYRzVjYm1sdGNHOXlkQ0FxSUdGeklISjRhbk1nWm5KdmJTQW5jbmhxY3ljN1hHNWNibWx0Y0c5eWRDQjdVM1J5YVc1blJHbGpkR2x2Ym1GeWVYMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTW5PMXh1WEc1cGJYQnZjblFnZTBGdGFXNXZZV05wWkhNc0lFRnRhVzV2WVdOcFpITlFZV3hsZEhSbGMzMGdabkp2YlNBbkxpNHZZVzFwYm05aFkybGtjeWM3WEc1cGJYQnZjblFnZTA1MVkyeGxiM1JwWkdWekxDQk9kV05zWlc5MGFXUmxjMUJoYkdWMGRHVnpmU0JtY205dElDY3VMaTl1ZFdOc1pXOTBhV1JsY3ljN1hHNXBiWEJ2Y25RZ2UxTmxjVkJoYkdWMGRHVjlJR1p5YjIwZ0p5NHVMM05sY1Mxd1lXeGxkSFJsY3ljN1hHNWNiaTh2SUZWemFXNW5JR052Ykc5eUlITmphR1Z0WlhNZ1puSnZiU0JqYUdWdExYQmhiR1YwZEdWY2JseHVaR1ZqYkdGeVpTQnRiMlIxYkdVZ0oyUmhkR0ZuY205ckxXRndhUzl6Y21NdlozSnBaQ2NnZTF4dUlDQnBiblJsY21aaFkyVWdVbVZqZENCN1hHNGdJQ0FnWTI5dWRHRnBibk1vZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJcE9pQmliMjlzWldGdU8xeHVJQ0I5WEc1OVhHNWNibVJsWTJ4aGNtVWdaMnh2WW1Gc0lIdGNiaUFnYVc1MFpYSm1ZV05sSUVoVVRVeERZVzUyWVhORmJHVnRaVzUwSUh0Y2JpQWdJQ0JuWlhSRGRYSnpiM0pRYjNOcGRHbHZiaWhsZG1WdWREb2dUVzkxYzJWRmRtVnVkQ2s2SUVSSExsQnZhVzUwTzF4dUlDQjlYRzU5WEc1Y2JraFVUVXhEWVc1MllYTkZiR1Z0Wlc1MExuQnliM1J2ZEhsd1pTNW5aWFJEZFhKemIzSlFiM05wZEdsdmJpQTlJR1oxYm1OMGFXOXVLR1YyWlc1ME9pQk5iM1Z6WlVWMlpXNTBLVG9nUkVjdVVHOXBiblFnZTF4dUlDQmpiMjV6ZENCeVpXTjBJRDBnZEdocGN5NW5aWFJDYjNWdVpHbHVaME5zYVdWdWRGSmxZM1FvS1R0Y2JpQWdjbVYwZFhKdUlHNWxkeUJFUnk1UWIybHVkQ2hsZG1WdWRDNWpiR2xsYm5SWUlDMGdjbVZqZEM1c1pXWjBMQ0JsZG1WdWRDNWpiR2xsYm5SWklDMGdjbVZqZEM1MGIzQXBPMXh1ZlR0Y2JseHVSRWN1VW1WamRDNXdjbTkwYjNSNWNHVXVZMjl1ZEdGcGJuTWdQU0JtZFc1amRHbHZiaWg0T2lCdWRXMWlaWElzSUhrNklHNTFiV0psY2lrNklHSnZiMnhsWVc0Z2UxeHVJQ0J5WlhSMWNtNGdkR2hwY3k1c1pXWjBJRHc5SUhnZ0ppWWdlQ0E4UFNCMGFHbHpMbkpwWjJoMElDWW1JSFJvYVhNdWRHOXdJRHc5SUhrZ0ppWWdlU0E4UFNCMGFHbHpMbUp2ZEhSdmJUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2SUh0Y2JpQWdMeW9xSUZObGNYVmxibU5sY3lCamIzVnVkQ0IzYVhSb0lHMXZibTl0WlhJZ2FXNGdjRzl6YVhScGIyNWNiaUFnSUNvdlhHNGdJR052ZFc1ME9pQnVkVzFpWlhJN1hHNWNiaUFnTHlvcUlGSmxiV1Z0WW1WeUlITmpjbVZsYmlCamIyOXlaSE1nY21WamRGeHVJQ0FnS2k5Y2JpQWdZbTkxYm1Sek9pQkVSeTVTWldOME8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtDa2dlMXh1SUNBZ0lIUm9hWE11WTI5MWJuUWdQU0F3TzF4dUlDQWdJSFJvYVhNdVltOTFibVJ6SUQwZ2JtVjNJRVJITGxKbFkzUW9NQ3dnTUN3Z01Dd2dNQ2s3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRkJ2YzJsMGFXOXVTVzVtYnlCN1hHNGdJSEIxWW14cFl5QnlaV0ZrYjI1c2VTQnVZVzFsT2lCemRISnBibWM3WEc0Z0lHWnlaWEU2SUhzZ1cyMDZJSE4wY21sdVoxMDZJRkJ2YzJsMGFXOXVUVzl1YjIxbGNrbHVabThnZlR0Y2JpQWdjbTkzUTI5MWJuUTZJRzUxYldKbGNqdGNibHh1SUNBdktpb2dabkpsY1NBOUlIdDlMQ0J5YjNkRGIzVnVkQ0E5SURCY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRzVoYldVZ1RtRnRaU0J2WmlCd2IzTnBkR2x2YmlBb0p6RXhNVUVuTENBbk1URXhMakVuTENCbGRHTXBYRzRnSUNBcUwxeHVJQ0JqYjI1emRISjFZM1J2Y2lodVlXMWxPaUJ6ZEhKcGJtY3BJSHRjYmlBZ0lDQjBhR2x6TG01aGJXVWdQU0J1WVcxbE8xeHVJQ0FnSUhSb2FYTXVabkpsY1NBOUlIdDlPMXh1SUNBZ0lIUm9hWE11Y205M1EyOTFiblFnUFNBd08xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCWFpXSk1iMmR2SUdWNGRHVnVaSE1nUkVjdVNuTldhV1YzWlhJZ2UxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklISmxjMmxrZFdWelUyVjBJRDBnSjI1MVkyeGxiM1JwWkdWekp6dGNibHh1SUNCd2NtbDJZWFJsSUdsdWFYUnBZV3hwZW1Wa09pQmliMjlzWldGdUlEMGdabUZzYzJVN1hHNWNiaUFnTHk4Z2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCamIyeHZjbE5qYUdWdFpUb2dRMjlzYjNKVFkyaGxiV1VnUFNCRGIyeHZjbE5qYUdWdFpYTmJUblZqYkdWdmRHbGtaWE5YWldKTWIyZHZMbkpsYzJsa2RXVnpVMlYwWFR0Y2JpQWdjSEp2ZEdWamRHVmtJR053T2lCVFpYRlFZV3hsZEhSbElId2diblZzYkNBOUlHNTFiR3c3WEc1Y2JpQWdjSEpwZG1GMFpTQm9iM04wUHpvZ1NGUk5URVJwZGtWc1pXMWxiblE3WEc0Z0lIQnlhWFpoZEdVZ2JYTm5TRzl6ZEQ4NklFaFVUVXhGYkdWdFpXNTBPMXh1SUNCd2NtbDJZWFJsSUdOaGJuWmhjejg2SUVoVVRVeERZVzUyWVhORmJHVnRaVzUwTzF4dUlDQndjbWwyWVhSbElITnNhV1JsY2o4NklFUkhMbEpoYm1kbFUyeHBaR1Z5TzF4dUlDQndjbWwyWVhSbElIUmxlSFJDWVhObGJHbHVaVG9nUTJGdWRtRnpWR1Y0ZEVKaGMyVnNhVzVsTzF4dVhHNGdJSEJ5YVhaaGRHVWdZWGhwYzBobGFXZG9kRG9nYm5WdFltVnlJRDBnTVRJN1hHNWNiaUFnY0hKcGRtRjBaU0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dQU0J1ZFd4c08xeHVJQ0F2THlCd2NtbDJZWFJsSUcxaGVFeGxibWQwYURvZ2JuVnRZbVZ5SUQwZ01UQXdPMXh1SUNCd2NtbDJZWFJsSUhCdmMybDBhVzl1Y3pvZ1VHOXphWFJwYjI1SmJtWnZXMTBnUFNCYlhUdGNibHh1SUNCd2NtbDJZWFJsSUhKdmQzTk5ZWE5yWldRNklHNTFiV0psY2lBOUlEQTdYRzRnSUhCeWFYWmhkR1VnY205M2MwNTFiR3c2SUc1MWJXSmxjaUE5SURBN1hHNWNiaUFnTHk4Z1ZtbGxkMlZ5SjNNZ2NISnZjR1Z5ZEdsbGN5QW9iR2xyWld4NUlIUm9aWGtnYzJodmRXeGtJR0psSUhCMVlteHBZeUJ6YnlCMGFHRjBJSFJvWlhrZ1kyRnVJR0psSUhObGRDQnZkWFJ6YVdSbEtWeHVJQ0J3ZFdKc2FXTWdjRzl6YVhScGIyNVhhV1IwYURvZ2JuVnRZbVZ5TzF4dUlDQndkV0pzYVdNZ2JXbHVTR1ZwWjJoME9pQnVkVzFpWlhJN1hHNGdJSEIxWW14cFl5QnRZWGhJWldsbmFIUTZJRzUxYldKbGNqdGNiaUFnY0hWaWJHbGpJR052Ym5OcFpHVnlUblZzYkZObGNYVmxibU5sY3pvZ1ltOXZiR1ZoYmp0Y2JpQWdjSFZpYkdsaklITmxjWFZsYm1ObFEyOXNkVzF1VG1GdFpUb2djM1J5YVc1bklId2diblZzYkR0Y2JpQWdjSFZpYkdsaklITjBZWEowVUc5emFYUnBiMjVPWVcxbE9pQnpkSEpwYm1jZ2ZDQnVkV3hzTzF4dUlDQndkV0pzYVdNZ1pXNWtVRzl6YVhScGIyNU9ZVzFsT2lCemRISnBibWNnZkNCdWRXeHNPMXh1SUNCd2RXSnNhV01nWm1sNFYybGtkR2c2SUdKdmIyeGxZVzQ3WEc0Z0lIQjFZbXhwWXlCMlpYSjBhV05oYkVGc2FXZHViV1Z1ZERvZ2MzUnlhVzVuSUh3Z2JuVnNiRHRjYmlBZ2NIVmliR2xqSUdodmNtbDZiMjUwWVd4QmJHbG5ibTFsYm5RNklITjBjbWx1WnlCOElHNTFiR3c3WEc1Y2JpQWdjSEpwZG1GMFpTQndiM05wZEdsdmJrNWhiV1Z6T2lCemRISnBibWRiWFNBOUlGdGRPMXh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhjblJRYjNOcGRHbHZiam9nYm5WdFltVnlJRDBnTFRFN1hHNWNiaUFnY0hKcGRtRjBaU0JsYm1SUWIzTnBkR2x2YmpvZ2JuVnRZbVZ5SUQwZ0xURTdYRzVjYmlBZ0x5b3FJRVp2Y2lCemRHRnlkRkJ2YzJsMGFXOXVJR1Z4ZFdGc2N5QjBieUJsYm1SUWIzTnBkR2x2YmlCTVpXNW5kR2dnYVhNZ01TQXFMMXh1SUNCd2NtbDJZWFJsSUdkbGRDQk1aVzVuZEdnb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpkR0Z5ZEZCdmMybDBhVzl1SUR3OUlIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z1B5QjBhR2x6TG1WdVpGQnZjMmwwYVc5dUlDMGdkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnTVNBNklEQTdYRzRnSUgxY2JseHVJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dVhHNGdJQ0FnZEdocGN5NTBaWGgwUW1GelpXeHBibVVnUFNBbmRHOXdKenRjYmx4dUlDQWdJSFJvYVhNdWNHOXphWFJwYjI1WGFXUjBhQ0E5SUhSb2FYTXVabXh2WVhRb0ozQnZjMmwwYVc5dVYybGtkR2duTENBeE5pOHFMRnh1SUNBZ0lDQWdlMlZrYVhSdmNqb2dKM05zYVdSbGNpY3NJRzFwYmpvZ05Dd2diV0Y0T2lBMk5Dd2djRzl6ZEdacGVEb2dKM0I0SjMwcUx5azdYRzRnSUNBZ2RHaHBjeTV0YVc1SVpXbG5hSFFnUFNCMGFHbHpMbVpzYjJGMEtDZHRhVzVJWldsbmFIUW5MQ0ExTUM4cUxGeHVJQ0FnSUNBZ2UyVmthWFJ2Y2pvZ0ozTnNhV1JsY2ljc0lHMXBiam9nTWpVc0lHMWhlRG9nTWpVd0xDQndiM04wWm1sNE9pQW5jSGduZlNvdktUdGNiaUFnSUNCMGFHbHpMbTFoZUVobGFXZG9kQ0E5SUhSb2FYTXVabXh2WVhRb0oyMWhlRWhsYVdkb2RDY3NJREV3TUM4cUxGeHVJQ0FnSUNBZ2UyVmthWFJ2Y2pvZ0ozTnNhV1JsY2ljc0lHMXBiam9nTWpVc0lHMWhlRG9nTlRBd0xDQndiM04wWm1sNE9pQW5jSGduZlNvdktUdGNibHh1SUNBZ0lIUm9hWE11WTI5dWMybGtaWEpPZFd4c1UyVnhkV1Z1WTJWeklEMGdkR2hwY3k1aWIyOXNLQ2RqYjI1emFXUmxjazUxYkd4VFpYRjFaVzVqWlhNbkxDQm1ZV3h6WlNrN1hHNGdJQ0FnZEdocGN5NXpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVWdQU0IwYUdsekxuTjBjbWx1WnlnbmMyVnhkV1Z1WTJWRGIyeDFiVzVPWVcxbEp5d2diblZzYkNrN1hHNWNiaUFnSUNCMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI1T1lXMWxJRDBnZEdocGN5NXpkSEpwYm1jb0ozTjBZWEowVUc5emFYUnBiMjVPWVcxbEp5d2diblZzYkNrN1hHNGdJQ0FnZEdocGN5NWxibVJRYjNOcGRHbHZiazVoYldVZ1BTQjBhR2x6TG5OMGNtbHVaeWduWlc1a1VHOXphWFJwYjI1T1lXMWxKeXdnYm5Wc2JDazdYRzVjYmlBZ0lDQjBhR2x6TG1acGVGZHBaSFJvSUQwZ2RHaHBjeTVpYjI5c0tDZG1hWGhYYVdSMGFDY3NJR1poYkhObEtUdGNibHh1SUNBZ0lIUm9hWE11ZG1WeWRHbGpZV3hCYkdsbmJtMWxiblFnUFNCMGFHbHpMbk4wY21sdVp5Z25kbVZ5ZEdsallXeEJiR2xuYm0xbGJuUW5MQ0FuYldsa1pHeGxKeXhjYmlBZ0lDQWdJSHRqYUc5cFkyVnpPaUJiSjNSdmNDY3NJQ2R0YVdSa2JHVW5MQ0FuWW05MGRHOXRKMTE5S1R0Y2JpQWdJQ0IwYUdsekxtaHZjbWw2YjI1MFlXeEJiR2xuYm0xbGJuUWdQU0IwYUdsekxuTjBjbWx1WnlnbmFHOXlhWHB2Ym5SaGJFRnNhV2R1YldWdWRDY3NJQ2RqWlc1MFpYSW5MRnh1SUNBZ0lDQWdlMk5vYjJsalpYTTZJRnNuYkdWbWRDY3NJQ2RqWlc1MFpYSW5MQ0FuY21sbmFIUW5YWDBwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJwYm1sMEtDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG1sdWFYUnBZV3hwZW1Wa0tWeHVJQ0FnSUNBZ1lXeGxjblFvSjFkbFlreHZaMjhnYzJWamIyNWtJR2x1YVhScFlXeHBlbUYwYVc5dUlTY3BPMXh1WEc0Z0lDQWdkR2hwY3k1cGJtbDBhV0ZzYVhwbFpDQTlJSFJ5ZFdVN1hHNGdJQ0FnZEdocGN5NW9aV3h3VlhKc0lEMGdKeTlvWld4d0wzWnBjM1ZoYkdsNlpTOTJhV1YzWlhKekwzZGxZaTFzYjJkdkxtMWtKenRjYmx4dUlDQWdJSFJvYVhNdWJYTm5TRzl6ZENBOUlIVnBMbVJwZGlnblRtOGdiV1Z6YzJGblpTY3BPMXh1SUNBZ0lIUm9hWE11YlhOblNHOXpkQzV6ZEhsc1pTNWthWE53YkdGNUlEMGdKMjV2Ym1Vbk8xeHVYRzRnSUNBZ2RHaHBjeTVqWVc1MllYTWdQU0IxYVM1allXNTJZWE1vS1R0Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3k1emRIbHNaUzUzYVdSMGFDQTlJQ2N4TURBbEp6dGNibHh1SUNBZ0lIUm9hWE11YUc5emRDQTlJSFZwTG1ScGRpaGJkR2hwY3k1dGMyZEliM04wTENCMGFHbHpMbU5oYm5aaGMxMHBPMXh1WEc0Z0lDQWdMeThnZEdocGN5NXpiR2xrWlhJZ1BTQjFhUzV5WVc1blpWTnNhV1JsY2lnd0xDQXlNQ3dnTWl3Z05TazdYRzRnSUNBZ0x5OGdkR2hwY3k1emJHbGtaWEl1Y205dmRDNXpkSGxzWlM1M2FXUjBhQ0E5SUNjeE1EQWxKenRjYmlBZ0lDQXZMeUIwYUdsekxuTnNhV1JsY2k1eWIyOTBMbk4wZVd4bExtaGxhV2RvZENBOUlDY3hNbkI0Snp0Y2JseHVJQ0FnSUdOdmJuTjBJR2RsZEUxdmJtOXRaWElnUFNBb2NEb2dSRWN1VUc5cGJuUXBPaUJiYm5WdFltVnlMQ0J6ZEhKcGJtY2dmQ0J1ZFd4c0xDQlFiM05wZEdsdmJrMXZibTl0WlhKSmJtWnZJSHdnYm5Wc2JGMGdQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhbEJ2Y3lBOUlFMWhkR2d1Wm14dmIzSW9jQzU0SUM4Z2RHaHBjeTV3YjNOcGRHbHZibGRwWkhSb0tUdGNiaUFnSUNBZ0lHTnZibk4wSUhCdmMybDBhVzl1SUQwZ2RHaHBjeTV3YjNOcGRHbHZibk5iYWxCdmMxMDdYRzVjYmlBZ0lDQWdJR2xtSUNod2IzTnBkR2x2YmlBOVBUMGdkbTlwWkNBd0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cycFFiM01zSUc1MWJHd3NJRzUxYkd4ZE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCdGIyNXZiV1Z5T2lCemRISnBibWNnZkNCMWJtUmxabWx1WldRZ1BTQlBZbXBsWTNRdWEyVjVjeWh3YjNOcGRHbHZiaTVtY21WeEtWeHVJQ0FnSUNBZ0lDQXVabWx1WkNnb2JTa2dQVDRnY0c5emFYUnBiMjR1Wm5KbGNWdHRYUzVpYjNWdVpITXVZMjl1ZEdGcGJuTW9jQzU0TENCd0xua3BLVHRjYmlBZ0lDQWdJR2xtSUNodGIyNXZiV1Z5SUQwOVBTQjFibVJsWm1sdVpXUXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmJhbEJ2Y3l3Z2JuVnNiQ3dnYm5Wc2JGMDdYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQmJhbEJ2Y3l3Z2JXOXViMjFsY2l3Z2NHOXphWFJwYjI0dVpuSmxjVnR0YjI1dmJXVnlYVjA3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJSFJvYVhNdVkyRnVkbUZ6TG05dWJXOTFjMlZ2ZG1WeUlEMGdLR1U2SUUxdmRYTmxSWFpsYm5RcElEMCtJSHRjYmx4dUlDQWdJSDA3WEc1Y2JpQWdJQ0IwYUdsekxuTjFZbk11Y0hWemFDaHllR3B6TG1aeWIyMUZkbVZ1ZER4TmIzVnpaVVYyWlc1MFBpaDBhR2x6TG1OaGJuWmhjeXdnSjIxdmRYTmxiVzkyWlNjcExuTjFZbk5qY21saVpTZ29aVG9nVFc5MWMyVkZkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0NGMGFHbHpMbU5oYm5aaGN5bGNiaUFnSUNBZ0lDQWdjbVYwZFhKdU8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCaGNtZHpJRDBnWlNCaGN5Qk5iM1Z6WlVWMlpXNTBPMXh1SUNBZ0lDQWdZMjl1YzNRZ1cycFFiM01zSUcxdmJtOXRaWEpkSUQwZ1oyVjBUVzl1YjIxbGNpaDBhR2x6TG1OaGJuWmhjeTVuWlhSRGRYSnpiM0pRYjNOcGRHbHZiaWhoY21kektTazdYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbVJoZEdGR2NtRnRaU0FtSmlCMGFHbHpMbk5sY1VOdmJDQW1KaUJ0YjI1dmJXVnlLU0I3WEc0Z0lDQWdJQ0FnSUhWcExuUnZiMngwYVhBdWMyaHZkMUp2ZDBkeWIzVndLSFJvYVhNdVpHRjBZVVp5WVcxbExDQW9hVkp2ZHlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE5sY1NBOUlIUm9hWE11YzJWeFEyOXNJUzVuWlhRb2FWSnZkeWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlZObGNTQTlJSE5sY1NBL0lITmxjVnQwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lCcVVHOXpYU0E2SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzFUWlhFZ1BUMDlJRzF2Ym05dFpYSTdYRzRnSUNBZ0lDQWdJSDBzSUdGeVozTXVlQ0FySURFMkxDQmhjbWR6TG5rZ0t5QXhOaWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IxYVM1MGIyOXNkR2x3TG1ocFpHVW9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLU2s3WEc1Y2JpQWdJQ0IwYUdsekxuTjFZbk11Y0hWemFDaHllR3B6TG1aeWIyMUZkbVZ1ZER4TmIzVnpaVVYyWlc1MFBpaDBhR2x6TG1OaGJuWmhjeXdnSjIxdmRYTmxaRzkzYmljcExuTjFZbk5qY21saVpTZ29aVG9nVFc5MWMyVkZkbVZ1ZENrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0NGMGFHbHpMbU5oYm5aaGN5QjhmQ0JsTG1KMWRIUnZiaUFoUFNBd0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdGeVozTWdQU0JsSUdGeklFMXZkWE5sUlhabGJuUTdYRzRnSUNBZ0lDQmpiMjV6ZENCYmFsQnZjeXdnYlc5dWIyMWxjbDBnUFNCblpYUk5iMjV2YldWeUtIUm9hWE11WTJGdWRtRnpMbWRsZEVOMWNuTnZjbEJ2YzJsMGFXOXVLR0Z5WjNNcEtUdGNibHh1SUNBZ0lDQWdMeThnY0hKbGRtVnVkSE1nWkdWelpXeGxZM1FnWVd4c0lISnZkM01nYVdZZ2QyVWdiV2x6Y3lCdGIyNXZiV1Z5SUdKdmRXNWtjMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVaR0YwWVVaeVlXMWxJQ1ltSUhSb2FYTXVjMlZ4UTI5c0lDWW1JRzF2Ym05dFpYSXBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWtZWFJoUm5KaGJXVXVjMlZzWldOMGFXOXVMbWx1YVhRb0tHbFNiM2NwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnpaWEVnUFNCMGFHbHpMbk5sY1VOdmJDRXVaMlYwS0dsU2IzY3BPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzFUWlhFZ1BTQnpaWEVnUHlCelpYRmJkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnYWxCdmMxMGdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnRVMlZ4SUQwOVBTQnRiMjV2YldWeU8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLU2s3WEc1Y2JpQWdJQ0IwYUdsekxuTjFZbk11Y0hWemFDaDFhUzV2YmxOcGVtVkRhR0Z1WjJWa0tIUm9hWE11Y205dmRDa3VjM1ZpYzJOeWFXSmxLSFJvYVhNdWNtOXZkRTl1VTJsNlpVTm9ZVzVuWldRdVltbHVaQ2gwYUdsektTa3BPMXh1WEc0Z0lDQWdkR2hwY3k1eWIyOTBMbUZ3Y0dWdVpDaDBhR2x6TG1odmMzUXBPMXh1SUNBZ0lDOHZJSFJvYVhNdWNtOXZkQzVoY0hCbGJtUkRhR2xzWkNoMGFHbHpMbk5zYVdSbGNpNXliMjkwS1R0Y2JseHVJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQjlYRzVjYmlBZ2NtOXZkRTl1VTJsNlpVTm9ZVzVuWldRb1lYSm5jem9nWVc1NUtTQjdYRzRnSUNBZ2RHaHBjeTV5Wlc1a1pYSW9kSEoxWlNrN1hHNWNiaUFnSUNBdkx5QmpiMjV6YjJ4bExtUmxZblZuS0dCWFpXSk1iMmR2TG05dVVtOXZkRk5wZW1WRGFHRnVaMlZrS0NrZ1lDQXJYRzRnSUNBZ0x5OGdJQ0JnY205dmRDNTNhV1IwYUQwa2UzUm9hWE11Y205dmRDNWpiR2xsYm5SWGFXUjBhSDBzSUhKdmIzUXVhR1ZwWjJoMFBTUjdkR2hwY3k1eWIyOTBMbU5zYVdWdWRFaGxhV2RvZEgwc0lHQWdLMXh1SUNBZ0lDOHZJQ0FnWUdOaGJuWmhjeTUzYVdSMGFEMGtlM1JvYVhNdVkyRnVkbUZ6TG5kcFpIUm9mU3dnWTJGdWRtRnpMbWhsYVdkb2REMGtlM1JvYVhNdVkyRnVkbUZ6TG1obGFXZG9kSDBnTG1BcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xSUVGemMybG5ibk1nZTBCc2FXNXJJSE5sY1VOdmJIMGdZVzVrSUh0QWJHbHVheUJqY0gwZ1ltRnpaV1FnYjI0Z2UwQnNhVzVySUhObGNYVmxibU5sUTI5c2RXMXVUbUZ0WlgwZ1lXNWtJR05oYkd4eklIdEFiR2x1YXlCeVpXNWtaWEo5S0NrdVhHNGdJQ0FxTDF4dUlDQjFjR1JoZEdWVFpYRkRiMndvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVaR0YwWVVaeVlXMWxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTmxjVU52YkNBOUlIUm9hWE11YzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsSUQ4Z2RHaHBjeTVrWVhSaFJuSmhiV1V1WTI5c0tIUm9hWE11YzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsS1NBNklHNTFiR3c3WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV6WlhGRGIyd2dQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTmxjVU52YkNBOUlIUm9hWE11Y0dsamExVndVMlZ4UTI5c0tIUm9hWE11WkdGMFlVWnlZVzFsS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VnUFNCMGFHbHpMbk5sY1VOdmJDQS9JSFJvYVhNdWMyVnhRMjlzTG01aGJXVWdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdWMyVnhRMjlzS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcxaGVFeGxibWQwYUNBOUlFMWhkR2d1YldGNEtDNHVMblJvYVhNdWMyVnhRMjlzTG1OaGRHVm5iM0pwWlhNdWJXRndLQ2h6S1NBOVBpQnpMbXhsYm1kMGFDa3BPMXh1WEc0Z0lDQWdJQ0FnSUM4dklFZGxkQ0J3YjNOcGRHbHZiaUJ1WVcxbGN5Qm1jbTl0SUdSaGRHRWdZMjlzZFcxdUlIUmhaeUFuY0c5emFYUnBiMjVPWVcxbGN5ZGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NHOXphWFJwYjI1T1lXMWxjMVI0ZENBOUlIUm9hWE11YzJWeFEyOXNMbWRsZEZSaFp5Z25jRzl6YVhScGIyNU9ZVzFsY3ljcE8xeHVJQ0FnSUNBZ0lDQXZMeUJHWVd4c1ltRmpheUJwWmlBbmNHOXphWFJwYjI1T1lXMWxjeWNnZEdGbklHbHpJRzV2ZENCd2NtOTJhV1JsWkZ4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhNZ1BTQndiM05wZEdsdmJrNWhiV1Z6VkhoMElEOGdjRzl6YVhScGIyNU9ZVzFsYzFSNGRDNXpjR3hwZENnbkxDQW5LUzV0WVhBb0tHNHBJRDArSUc0dWRISnBiU2dwS1NBNlhHNGdJQ0FnSUNBZ0lDQWdXeTR1TGtGeWNtRjVLRzFoZUV4bGJtZDBhQ2t1YTJWNWN5Z3BYUzV0WVhBb0tHcFFiM01wSUQwK0lHQWtlMnBRYjNNZ0t5QXhmV0FwTzF4dVhHNGdJQ0FnSUNBZ0lIUm9hWE11YzNSaGNuUlFiM05wZEdsdmJpQTlJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiazVoYldVZ0ppWWdkR2hwY3k1d2IzTnBkR2x2Yms1aGJXVnpJRDljYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhNdWFXNWtaWGhQWmloMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI1T1lXMWxLU0E2SURBN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z1BTQjBhR2x6TG1WdVpGQnZjMmwwYVc5dVRtRnRaU0FtSmlCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhNZ1AxeHVJQ0FnSUNBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeTVwYm1SbGVFOW1LSFJvYVhNdVpXNWtVRzl6YVhScGIyNU9ZVzFsS1NBNklDaHRZWGhNWlc1bmRHZ2dMU0F4S1R0Y2JseHVJQ0FnSUNBZ0lDQjBhR2x6TG1Od0lEMGdkR2hwY3k1d2FXTnJWWEJRWVd4bGRIUmxLSFJvYVhNdWMyVnhRMjlzS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZM0FnUFNCdWRXeHNPMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVRtRnRaWE1nUFNCYlhUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJRDBnTFRFN1hHNGdJQ0FnSUNBZ0lIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z1BTQXRNVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTV5Wlc1a1pYSW9LVHRjYmlBZ2ZWeHVYRzRnSUc5dVVISnZjR1Z5ZEhsRGFHRnVaMlZrS0hCeWIzQmxjblI1T2lCRVJ5NVFjbTl3WlhKMGVTazZJSFp2YVdRZ2UxeHVJQ0FnSUM4dklHTnZibk52YkdVdVpHVmlkV2NvWUZkbFlreHZaMjh1YjI1UWNtOXdaWEowZVVOb1lXNW5aV1FvSUNSN2NISnZjR1Z5ZEhrdWJtRnRaWDBnUFNBbkp5QjlLV0FwTzF4dUlDQWdJSE4xY0dWeUxtOXVVSEp2Y0dWeWRIbERhR0Z1WjJWa0tIQnliM0JsY25SNUtUdGNibHh1SUNBZ0lITjNhWFJqYUNBb2NISnZjR1Z5ZEhrdWJtRnRaU2tnZTF4dUlDQWdJR05oYzJVZ0oyTnZibk5wWkdWeVRuVnNiRk5sY1hWbGJtTmxjeWM2WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM05sY1hWbGJtTmxRMjlzZFcxdVRtRnRaU2M2WEc0Z0lDQWdJQ0IwYUdsekxuVndaR0YwWlZObGNVTnZiQ2dwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuYzNSaGNuUlFiM05wZEdsdmJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjJWdVpGQnZjMmwwYVc5dVRtRnRaU2M2WEc0Z0lDQWdJQ0IwYUdsekxuVndaR0YwWlZObGNVTnZiQ2dwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuY0c5emFYUnBiMjVYYVdSMGFDYzZYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJR05oYzJVZ0oyMXBia2hsYVdkb2RDYzZYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJR05oYzJVZ0oyMWhlRWhsYVdkb2RDYzZYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJR05oYzJVZ0oyWnBlRmRwWkhSb0p6cGNiaUFnSUNBZ0lIUm9hWE11Y21WdVpHVnlLSFJ5ZFdVcE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdZMkZ6WlNBbmRtVnlkR2xqWVd4QmJHbG5ibTFsYm5Rbk9seHVJQ0FnSUNBZ2RHaHBjeTV5Wlc1a1pYSW9kSEoxWlNrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkb2IzSnBlbTl1ZEdGc1FXeHBaMjV0Wlc1MEp6cGNiaUFnSUNBZ0lIUm9hWE11Y21WdVpHVnlLSFJ5ZFdVcE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnWVhONWJtTWdiMjVVWVdKc1pVRjBkR0ZqYUdWa0tDa2dlMXh1SUNBZ0lDOHZJR052Ym5OdmJHVXVaR1ZpZFdjb1lGZGxZa3h2WjI4dWIyNVVZV0pzWlVGMGRHRmphR1ZrS0NCa1lYUmhSbkpoYldVZ1BTQWtlM1JvYVhNdVpHRjBZVVp5WVcxbElEOGdKMlJoZEdFbklEb2dKMjUxYkd3bmZTQXBZQ2s3WEc0Z0lDQWdkR2hwY3k1MWNHUmhkR1ZUWlhGRGIyd29LVHRjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbVJoZEdGR2NtRnRaU0FoUFQwZ2RtOXBaQ0F3S1NCN1hHNGdJQ0FnSUNCMGFHbHpMbk4xWW5NdWNIVnphQ2gwYUdsekxtUmhkR0ZHY21GdFpTNXpaV3hsWTNScGIyNHViMjVEYUdGdVoyVmtMbk4xWW5OamNtbGlaU2dvWHlrZ1BUNGdkR2hwY3k1eVpXNWtaWElvS1NrcE8xeHVJQ0FnSUNBZ2RHaHBjeTV6ZFdKekxuQjFjMmdvZEdocGN5NWtZWFJoUm5KaGJXVXVabWxzZEdWeUxtOXVRMmhoYm1kbFpDNXpkV0p6WTNKcFltVW9LRjhwSUQwK0lIUm9hWE11Y21WdVpHVnlLQ2twS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1sdWFYUW9LVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCZmJuVnNiRk5sY1hWbGJtTmxLR1pwYkd4bGNsSmxjMmxrZFdVZ1BTQW5XQ2NwT2lCemRISnBibWNnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbU52Ym5OcFpHVnlUblZzYkZObGNYVmxibU5sY3lsY2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1FYSnlZWGtvZEdocGN5NU1aVzVuZEdncExtWnBiR3dvWm1sc2JHVnlVbVZ6YVdSMVpTa3VhbTlwYmlnbkp5azdYRzVjYmlBZ0lDQnlaWFIxY200Z0p5YzdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnWDJOaGJHTjFiR0YwWlNncElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdVkyRnVkbUZ6SUh4OElDRjBhR2x6TG1odmMzUWdmSHdnSVhSb2FYTXVjMlZ4UTI5c0lIeDhJQ0YwYUdsekxtUmhkR0ZHY21GdFpTQjhmRnh1SUNBZ0lDQWdkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJRDA5UFNBdE1TQjhmQ0IwYUdsekxtVnVaRkJ2YzJsMGFXOXVJRDA5UFNBdE1TbGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JseHVJQ0FnSUhSb2FYTXVZMkZzWTFOcGVtVW9LVHRjYmx4dUlDQWdJSFJvYVhNdWNHOXphWFJwYjI1eklEMGdibVYzSUVGeWNtRjVLSFJvYVhNdVRHVnVaM1JvS1R0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JxVUc5eklEMGdNRHNnYWxCdmN5QThJSFJvYVhNdVRHVnVaM1JvT3lCcVVHOXpLeXNwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSEJ2YzA1aGJXVTZJSE4wY21sdVp5QTlJSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjMXQwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lCcVVHOXpYVHRjYmlBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kSUQwZ2JtVjNJRkJ2YzJsMGFXOXVTVzVtYnlod2IzTk9ZVzFsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlBeU1ESXlMVEExTFRBMUlHRnphMkZzYTJsdUlHbHVjM1J5ZFdOMFpXUWdkRzhnYzJodmR5QlhaV0pNYjJkdklHSmhjMlZrSUc5dUlHWnBiSFJsY2lBb2JtOTBJSE5sYkdWamRHbHZiaWxjYmlBZ0lDQmpiMjV6ZENCcGJtUnBZMlZ6SUQwZ2RHaHBjeTVrWVhSaFJuSmhiV1V1Wm1sc2RHVnlMbWRsZEZObGJHVmpkR1ZrU1c1a1pYaGxjeWdwTzF4dUlDQWdJQzh2SUdOdmJuTjBJR2x1WkdsalpYTWdQU0IwYUdsekxtUmhkR0ZHY21GdFpTNXpaV3hsWTNScGIyNHVkSEoxWlVOdmRXNTBJRDRnTUNBL0lIUm9hWE11WkdGMFlVWnlZVzFsTG5ObGJHVmpkR2x2Ymk1blpYUlRaV3hsWTNSbFpFbHVaR1Y0WlhNb0tTQTZYRzRnSUNBZ0x5OGdJQ0IwYUdsekxtUmhkR0ZHY21GdFpTNW1hV3gwWlhJdVoyVjBVMlZzWldOMFpXUkpibVJsZUdWektDazdYRzVjYmlBZ0lDQjBhR2x6TG5KdmQzTk5ZWE5yWldRZ1BTQnBibVJwWTJWekxteGxibWQwYUR0Y2JpQWdJQ0IwYUdsekxuSnZkM05PZFd4c0lEMGdNRHRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYVNCdlppQnBibVJwWTJWektTQjdYRzRnSUNBZ0lDQnNaWFFnY3pvZ2MzUnlhVzVuSUQwZ1BITjBjbWx1Wno0b2RHaHBjeTV6WlhGRGIyd3VaMlYwS0drcEtUdGNibHh1SUNBZ0lDQWdhV1lnS0NGektTQjdYRzRnSUNBZ0lDQWdJSE1nUFNCMGFHbHpMbDl1ZFd4c1UyVnhkV1Z1WTJVb0tUdGNiaUFnSUNBZ0lDQWdLeXQwYUdsekxuSnZkM05PZFd4c08xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjRzFKYm1adklEMGdkR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1Wm5KbGNUdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRPaUJ6ZEhKcGJtY2dQU0J6VzNSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBcklHcFFiM05kSUh4OElDY3RKenRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9JU2h0SUdsdUlIQnRTVzVtYnlrcFhHNGdJQ0FnSUNBZ0lDQWdJQ0J3YlVsdVptOWJiVjBnUFNCdVpYY2dVRzl6YVhScGIyNU5iMjV2YldWeVNXNW1ieWdwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdjRzFKYm1adlcyMWRMbU52ZFc1MEt5czdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeU55WldkcGIyNGdVRzlzYVhOb0lHWnlaWEVnWTI5MWJuUnpYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQXZMeUJrWld4bGRHVWdkR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1Wm5KbGNWc25MU2RkTzF4dVhHNGdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXliM2REYjNWdWRDQTlJREE3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUcwZ2FXNGdkR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1Wm5KbGNTbGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1Y205M1EyOTFiblFnS3owZ2RHaHBjeTV3YjNOcGRHbHZibk5iYWxCdmMxMHVabkpsY1Z0dFhTNWpiM1Z1ZER0Y2JpQWdJQ0I5WEc0Z0lDQWdMeThqWlc1a2NtVm5hVzl1WEc1Y2JpQWdJQ0JqYjI1emRDQnRZWGhJWldsbmFIUWdQU0IwYUdsekxtTmhiblpoY3k1b1pXbG5hSFFnTFNCMGFHbHpMbUY0YVhOSVpXbG5hSFE3WEc0Z0lDQWdMeThnWTI5dWMyOXNaUzVrWldKMVp5aGdWMlZpVEc5bmJ5NWZZMkZzWTNWc1lYUmxLQ2tnYldGNFNHVnBaMmgwUFNSN2JXRjRTR1ZwWjJoMGZTNWdLVHRjYmx4dUlDQWdJQzh2STNKbFoybHZiaUJEWVd4amRXeGhkR1VnYzJOeVpXVnVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbWNtVnhPaUI3SUZ0ak9pQnpkSEpwYm1kZE9pQlFiM05wZEdsdmJrMXZibTl0WlhKSmJtWnZJSDBnUFNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNW1jbVZ4TzF4dUlDQWdJQ0FnWTI5dWMzUWdjbTkzUTI5MWJuUWdQU0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1eWIzZERiM1Z1ZER0Y2JseHVJQ0FnSUNBZ2JHVjBJSGs2SUc1MWJXSmxjaUE5SUhSb2FYTXVZWGhwYzBobGFXZG9kRHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdaVzUwY21sbGN5QTlJRTlpYW1WamRDNWxiblJ5YVdWektHWnlaWEVwTG5OdmNuUW9LR0VzSUdJcElEMCtJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHRmJNRjBnSVQwOUlDY3RKeUFtSmlCaVd6QmRJQ0U5UFNBbkxTY3BYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR0piTVYwdVkyOTFiblFnTFNCaFd6RmRMbU52ZFc1ME8xeHVJQ0FnSUNBZ0lDQmxiSE5sSUdsbUlDaGhXekJkSUQwOVBTQW5MU2NnSmlZZ1lsc3dYU0E5UFQwZ0p5MG5LVnh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUF3TzF4dUlDQWdJQ0FnSUNCbGJITmxJR2xtSUNoaFd6QmRJRDA5UFNBbkxTY3BYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQzB4TzF4dUlDQWdJQ0FnSUNCbGJITmxJQzhxSUNoaVd6QmRJRDA5UFNBbkxTY3BJQ292WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNzeE8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR1Z1ZEhKNUlHOW1JR1Z1ZEhKcFpYTXBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjRzFKYm1adk9pQlFiM05wZEdsdmJrMXZibTl0WlhKSmJtWnZJRDBnWlc1MGNubGJNVjA3WEc0Z0lDQWdJQ0FnSUM4dklHTnZibk4wSUcwNklITjBjbWx1WnlBOUlHVnVkSEo1V3pCZE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCb09pQnVkVzFpWlhJZ1BTQnRZWGhJWldsbmFIUWdLaUJ3YlVsdVptOHVZMjkxYm5RZ0x5QnliM2REYjNWdWREdGNibHh1SUNBZ0lDQWdJQ0J3YlVsdVptOHVZbTkxYm1SeklEMGdibVYzSUVSSExsSmxZM1FvYWxCdmN5QXFJSFJvYVhNdWNHOXphWFJwYjI1WGFXUjBhQ3dnZVN3Z2RHaHBjeTV3YjNOcGRHbHZibGRwWkhSb0xDQm9LVHRjYmlBZ0lDQWdJQ0FnZVNBclBTQm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNBdkx5TmxibVJ5WldkcGIyNWNiaUFnZlZ4dVhHNGdJQzh2SUhKbFpteGxZM1FnWTJoaGJtZGxjeUJ0WVdSbElIUnZJR1pwYkhSbGNpOXpaV3hsWTNScGIyNWNiaUFnY21WdVpHVnlLSEpsWTJGc1l5QTlJSFJ5ZFdVcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1dGMyZEliM04wS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1elpYRkRiMndnSmlZZ0lYUm9hWE11WTNBcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dGMyZEliM04wSVM1cGJtNWxjbFJsZUhRZ1BTQmdWVzVyYm05M2JpQndZV3hsZEhSbElDaGpiMngxYlc0Z2MyVnRWSGx3WlRvZ0p5UjdkR2hwY3k1elpYRkRiMnd1YzJWdFZIbHdaWDBuS1M1Z08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG0xelowaHZjM1FoTG5OMGVXeGxMbVJwYzNCc1lYa2dQU0FuSnp0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViWE5uU0c5emRDRXVjM1I1YkdVdVpHbHpjR3hoZVNBOUlDZHViMjVsSnp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTJGdWRtRnpJSHg4SUNGMGFHbHpMbk5sY1VOdmJDQjhmQ0FoZEdocGN5NWtZWFJoUm5KaGJXVWdmSHdnSVhSb2FYTXVZM0FnZkh4Y2JpQWdJQ0FnSUhSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBOVBUMGdMVEVnZkh3Z2RHaHBjeTVsYm1SUWIzTnBkR2x2YmlBOVBUMGdMVEVwWEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzVjYmlBZ0lDQmpiMjV6ZENCbklEMGdkR2hwY3k1allXNTJZWE11WjJWMFEyOXVkR1Y0ZENnbk1tUW5LVHRjYmlBZ0lDQnBaaUFvSVdjcElISmxkSFZ5Ymp0Y2JseHVJQ0FnSUdsbUlDaHlaV05oYkdNcFhHNGdJQ0FnSUNCMGFHbHpMbDlqWVd4amRXeGhkR1VvS1R0Y2JseHVJQ0FnSUM4dklHeGxkQ0J5YjNkRGIzVnVkQ0E5SUhSb2FYTXVjbTkzYzAxaGMydGxaRHRjYmlBZ0lDQXZMeUJwWmlBb0lYUm9hWE11WTI5dWMybGtaWEpPZFd4c1UyVnhkV1Z1WTJWektWeHVJQ0FnSUM4dklDQWdjbTkzUTI5MWJuUWdMVDBnZEdocGN5NXliM2R6VG5Wc2JEdGNibHh1SUNBZ0lHY3VjbVZ6WlhSVWNtRnVjMlp2Y20wb0tUdGNiaUFnSUNCbkxtWnBiR3hUZEhsc1pTQTlJQ2QzYUdsMFpTYzdYRzRnSUNBZ1p5NW1hV3hzVW1WamRDZ3dMQ0F3TENCMGFHbHpMbU5oYm5aaGN5NTNhV1IwYUN3Z2RHaHBjeTVqWVc1MllYTXVhR1ZwWjJoMEtUdGNiaUFnSUNCbkxuUmxlSFJDWVhObGJHbHVaU0E5SUhSb2FYTXVkR1Y0ZEVKaGMyVnNhVzVsTzF4dVhHNGdJQ0FnTHk4amNtVm5hVzl1SUZCc2IzUWdjRzl6YVhScGIyNU9ZVzFsYzF4dUlDQWdJR2N1Y21WelpYUlVjbUZ1YzJadmNtMG9LVHRjYmlBZ0lDQm5MbVpwYkd4VGRIbHNaU0E5SUNkaWJHRmpheWM3WEc0Z0lDQWdaeTUwWlhoMFFXeHBaMjRnUFNBblkyVnVkR1Z5Snp0Y2JpQWdJQ0JuTG1admJuUWdQU0FuTVRCd2VDQlNiMkp2ZEc4c0lGSnZZbTkwYnlCTWIyTmhiQ3dnYzJGdWN5MXpaWEpwWmljN1hHNGdJQ0FnWTI5dWMzUWdjRzl6VG1GdFpVMWhlRmRwWkhSb0lEMGdUV0YwYUM1dFlYZ29MaTR1ZEdocGN5NXdiM05wZEdsdmJuTXViV0Z3S0Nod2IzTXBJRDArSUdjdWJXVmhjM1Z5WlZSbGVIUW9jRzl6TG01aGJXVXBMbmRwWkhSb0tTazdYRzRnSUNBZ1kyOXVjM1FnYUZOallXeGxJRDBnY0c5elRtRnRaVTFoZUZkcFpIUm9JRHdnS0hSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUNBdElESXBJRDhnTVNBNklDaDBhR2x6TG5CdmMybDBhVzl1VjJsa2RHZ2dMU0F5S1NBdklIQnZjMDVoYldWTllYaFhhV1IwYUR0Y2JseHVJQ0FnSUdadmNpQW9iR1YwSUdwUWIzTWdQU0F3T3lCcVVHOXpJRHdnZEdocGN5NU1aVzVuZEdnN0lHcFFiM01yS3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY0c5ek9pQlFiM05wZEdsdmJrbHVabThnUFNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhUdGNiaUFnSUNBZ0lHY3VjbVZ6WlhSVWNtRnVjMlp2Y20wb0tUdGNiaUFnSUNBZ0lHY3VjMlYwVkhKaGJuTm1iM0p0S0Z4dUlDQWdJQ0FnSUNCb1UyTmhiR1VzSURBc0lEQXNJREVzWEc0Z0lDQWdJQ0FnSUdwUWIzTWdLaUIwYUdsekxuQnZjMmwwYVc5dVYybGtkR2dnS3lCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdnZ0x5QXlMQ0F3S1R0Y2JpQWdJQ0FnSUdjdVptbHNiRlJsZUhRb2NHOXpMbTVoYldVc0lEQXNJREFwTzF4dUlDQWdJSDFjYmlBZ0lDQXZMeU5sYm1SeVpXZHBiMjRnVUd4dmRDQndiM05wZEdsdmJrNWhiV1Z6WEc1Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JxVUc5eklEMGdNRHNnYWxCdmN5QThJSFJvYVhNdVRHVnVaM1JvT3lCcVVHOXpLeXNwSUh0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1cyMXZibTl0WlhJc0lIQnRTVzVtYjEwZ2IyWWdUMkpxWldOMExtVnVkSEpwWlhNb2RHaHBjeTV3YjNOcGRHbHZibk5iYWxCdmMxMHVabkpsY1NrcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0cxdmJtOXRaWElnSVQwOUlDY3RKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdJZ1BTQndiVWx1Wm04dVltOTFibVJ6TzF4dVhHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1ptOXVkRk4wZVd4bElEMGdKekUyY0hnZ1VtOWliM1J2TENCU2IySnZkRzhnVEc5allXd3NJSE5oYm5NdGMyVnlhV1luTzF4dUlDQWdJQ0FnSUNBZ0lDOHZJRWhoWTJ0eklIUnZJSE5qWVd4bElIVndjR1Z5WTJGelpTQmphR0Z5WVdOMFpYSnpJSFJ2SUhSaGNtZGxkQ0J5WldOMFlXNW5iR1ZjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IxY0hCbGNtTmhjMlZNWlhSMFpYSkJjMk5sYm5RZ1BTQXdMakkxTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhWd2NHVnlZMkZ6WlV4bGRIUmxja2hsYVdkb2RDQTlJREV5TGpJN1hHNWNiaUFnSUNBZ0lDQWdJQ0JuTG5KbGMyVjBWSEpoYm5ObWIzSnRLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1p5NXpkSEp2YTJWVGRIbHNaU0E5SUNkc2FXZG9kR2R5WVhrbk8xeHVJQ0FnSUNBZ0lDQWdJR2N1YkdsdVpWZHBaSFJvSUQwZ01UdGNiaUFnSUNBZ0lDQWdJQ0JuTG5KbFkzUW9ZaTVzWldaMExDQmlMblJ2Y0N3Z1lpNTNhV1IwYUN3Z1lpNW9aV2xuYUhRcE8xeHVJQ0FnSUNBZ0lDQWdJR2N1Wm1sc2JGTjBlV3hsSUQwZ2RHaHBjeTVqY0Z0dGIyNXZiV1Z5WFNBL1B5QjBhR2x6TG1Od1d5ZHZkR2hsY2lkZE8xeHVJQ0FnSUNBZ0lDQWdJR2N1ZEdWNGRFRnNhV2R1SUQwZ0oyeGxablFuTzF4dUlDQWdJQ0FnSUNBZ0lHY3VabTl1ZENBOUlHWnZiblJUZEhsc1pUdGNiaUFnSUNBZ0lDQWdJQ0F2TDJjdVptbHNiRkpsWTNRb1lpNXNaV1owTENCaUxuUnZjQ3dnWWk1M2FXUjBhQ3dnWWk1b1pXbG5hSFFwTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxVWJUb2dWR1Y0ZEUxbGRISnBZM01nUFNCbkxtMWxZWE4xY21WVVpYaDBLRzF2Ym05dFpYSXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0x5OGdhV1lnS0cxTkxtRmpkSFZoYkVKdmRXNWthVzVuUW05NFFYTmpaVzUwSUNFOUlEQXBYRzRnSUNBZ0lDQWdJQ0FnTHk4Z0lDQmpiMjV6YjJ4bExtUmxZblZuS0dCdE9pQWtlMjE5TENCdFRTNWhZM1IxWVd4Q2IzVnVaR2x1WjBKdmVFRnpZMlZ1ZERvZ0pIdHRUUzVoWTNSMVlXeENiM1Z1WkdsdVowSnZlRUZ6WTJWdWRIMWdLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lHY3VjMlYwVkhKaGJuTm1iM0p0S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdZaTUzYVdSMGFDQXZJRzFVYlM1M2FXUjBhQ3dnTUN3Z01Dd2dZaTVvWldsbmFIUWdMeUIxY0hCbGNtTmhjMlZNWlhSMFpYSklaV2xuYUhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpTG14bFpuUXNJR0l1ZEc5d0tUdGNiaUFnSUNBZ0lDQWdJQ0JuTG1acGJHeFVaWGgwS0cxdmJtOXRaWElzSURBc0lDMTFjSEJsY21OaGMyVk1aWFIwWlhKQmMyTmxiblFwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCallXeGpVMmw2WlNncElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdVkyRnVkbUZ6SUh4OElDRjBhR2x6TG1odmMzUXBYRzRnSUNBZ0lDQnlaWFIxY200N1hHNWNiaUFnSUNCamIyNXpkQ0IzYVdSMGFEb2diblZ0WW1WeUlEMGdkR2hwY3k1TVpXNW5kR2dnS2lCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdnN1hHNGdJQ0FnZEdocGN5NWpZVzUyWVhNdWQybGtkR2dnUFNCM2FXUjBhRHRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTV6ZEhsc1pTNTNhV1IwYUNBOUlHQWtlM2RwWkhSb2ZYQjRZRHRjYmx4dUlDQWdJR052Ym5OMElHaGxhV2RvZENBOUlFMWhkR2d1YldsdUtIUm9hWE11YldGNFNHVnBaMmgwTENCTllYUm9MbTFoZUNoMGFHbHpMbTFwYmtobGFXZG9kQ3dnZEdocGN5NXliMjkwTG1Oc2FXVnVkRWhsYVdkb2RDa3BPMXh1SUNBZ0lDOHZJR052Ym5OMElHTmhiblpoYzBobGFXZG9kRG9nYm5WdFltVnlJRDBnZDJsa2RHZ2dQaUIwYUdsekxuSnZiM1F1WTJ4cFpXNTBWMmxrZEdnZ1B5Qm9aV2xuYUhRZ0xTQTRJRG9nYUdWcFoyaDBPMXh1SUNBZ0lIUm9hWE11YUc5emRDNXpkSGxzWlM1elpYUlFjbTl3WlhKMGVTZ25hR1ZwWjJoMEp5d2dZQ1I3YUdWcFoyaDBmWEI0WUNrN1hHNGdJQ0FnWTI5dWMzUWdZMkZ1ZG1GelNHVnBaMmgwT2lCdWRXMWlaWElnUFNCMGFHbHpMbWh2YzNRdVkyeHBaVzUwU0dWcFoyaDBPMXh1SUNBZ0lIUm9hWE11WTJGdWRtRnpMbWhsYVdkb2RDQTlJR05oYm5aaGMwaGxhV2RvZER0Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3k1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmFHVnBaMmgwSnl3Z1lDUjdZMkZ1ZG1GelNHVnBaMmgwZlhCNFlDazdYRzVjYmlBZ0lDQXZMeUJCWkdwMWMzUWdhRzl6ZENCaGJtUWdjbTl2ZENCM2FXUjBhRnh1SUNBZ0lHbG1JQ2gwYUdsekxtWnBlRmRwWkhSb0tTQjdYRzRnSUNBZ0lDQXZMeUJtZFd4c0lIZHBaSFJvSUdadmNpQmpZVzUyWVhNZ2FHOXpkQ0JoYm1RZ2NtOXZkRnh1SUNBZ0lDQWdkR2hwY3k1eWIyOTBMbk4wZVd4bExuZHBaSFJvSUQwZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5kcFpIUm9JRDBnWUNSN2QybGtkR2g5Y0hoZ08xeHVJQ0FnSUNBZ2RHaHBjeTV5YjI5MExuTjBlV3hsTG1obGFXZG9kQ0F2S2owZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG1obGFXZG9kQ292SUQwZ1lDUjdhR1ZwWjJoMGZYQjRZRHRjYmlBZ0lDQWdJSFJvYVhNdWFHOXpkQzV6ZEhsc1pTNXpaWFJRY205d1pYSjBlU2duYjNabGNtWnNiM2NuTENBbmFHbGtaR1Z1Snl3Z0oybHRjRzl5ZEdGdWRDY3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBdkx5QmhiR3h2ZHlCelkzSnZiR3dnWTJGdWRtRnpJR2x1SUhKdmIzUmNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1M2FXUjBhQ0E5SUhSb2FYTXVhRzl6ZEM1emRIbHNaUzUzYVdSMGFDQTlJQ2N4TURBbEp6dGNiaUFnSUNBZ0lIUm9hWE11YUc5emRDNXpkSGxzWlM1dmRtVnlabXh2ZDFnZ1BTQW5ZWFYwYnlGcGJYQnZjblJoYm5Rbk8xeHVJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5ObGRGQnliM0JsY25SNUtDZHZkbVZ5Wm14dmR5Y3NJRzUxYkd3cE8xeHVYRzRnSUNBZ0lDQjBhR2x6TG1odmMzUXVjM1I1YkdVdWMyVjBVSEp2Y0dWeWRIa29KM1JsZUhRdFlXeHBaMjRuTENCMGFHbHpMbWh2Y21sNmIyNTBZV3hCYkdsbmJtMWxiblFwTzF4dVhHNGdJQ0FnSUNBdkx5QjJaWEowYVdOaGJDQmhiR2xuYm0xbGJuUmNiaUFnSUNBZ0lHeGxkQ0JvYjNOMFZHOXdUV0Z5WjJsdUlEMGdNRHRjYmlBZ0lDQWdJSE4zYVhSamFDQW9kR2hwY3k1MlpYSjBhV05oYkVGc2FXZHViV1Z1ZENrZ2UxeHVJQ0FnSUNBZ1kyRnpaU0FuZEc5d0p6cGNiaUFnSUNBZ0lDQWdhRzl6ZEZSdmNFMWhjbWRwYmlBOUlEQTdYRzRnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ1kyRnpaU0FuYldsa1pHeGxKenBjYmlBZ0lDQWdJQ0FnYUc5emRGUnZjRTFoY21kcGJpQTlJRTFoZEdndWJXRjRLREFzSUNoMGFHbHpMbkp2YjNRdVkyeHBaVzUwU0dWcFoyaDBJQzBnYUdWcFoyaDBLU0F2SURJcE8xeHVJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUdOaGMyVWdKMkp2ZEhSdmJTYzZYRzRnSUNBZ0lDQWdJR2h2YzNSVWIzQk5ZWEpuYVc0Z1BTQk5ZWFJvTG0xaGVDZ3dMQ0IwYUdsekxuSnZiM1F1WTJ4cFpXNTBTR1ZwWjJoMElDMGdhR1ZwWjJoMEtUdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMGFHbHpMbWh2YzNRdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyMWhjbWRwYmkxMGIzQW5MQ0JnSkh0b2IzTjBWRzl3VFdGeVoybHVmWEI0WUN3Z0oybHRjRzl5ZEdGdWRDY3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV5YjI5MExtTnNhV1Z1ZEVobGFXZG9kQ0E4SUdobGFXZG9kQ2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbWh2YzNRdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyaGxhV2RvZENjc0lHQWtlM1JvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhSOWNIaGdLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NW9iM04wTG5OMGVXeGxMbk5sZEZCeWIzQmxjblI1S0NkdmRtVnlabXh2ZHkxNUp5d2diblZzYkNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbWh2YzNRdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyOTJaWEptYkc5M0xYa25MQ0FuYUdsa1pHVnVKeXdnSjJsdGNHOXlkR0Z1ZENjcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklHTnZibk52YkdVdVpHVmlkV2NvWEc0Z0lDQWdMeThnSUNCZ2RHaHBjeTV5YjI5MExuTjBlV3hsTG1obGFXZG9kQ0E5SUNSN2RHaHBjeTV5YjI5MExuTjBlV3hsTG1obGFXZG9kSDFjWEc1Z0lDdGNiaUFnSUNBdkx5QWdJR0IwYUdsekxuSnZiM1F1WTJ4cFpXNTBTR1ZwWjJoMElEMGdKSHQwYUdsekxuSnZiM1F1WTJ4cFpXNTBTR1ZwWjJoMGZWeGNibUFnSzF4dUlDQWdJQzh2SUNBZ1lIUm9hWE11YUc5emRDNXpkSGxzWlM1b1pXbG5hSFFnUFNBa2UzUm9hWE11YUc5emRDNXpkSGxzWlM1b1pXbG5hSFI5WEZ4dVlDQXJYRzRnSUNBZ0x5OGdJQ0JnZEdocGN5NW9iM04wTG1Oc2FXVnVkRWhsYVdkb2RDQTlJQ1I3ZEdocGN5NW9iM04wTG1Oc2FXVnVkRWhsYVdkb2RIMWNYRzVnSUN0Y2JpQWdJQ0F2THlBZ0lDZGNYRzRuSUN0Y2JpQWdJQ0F2THlBZ0lHQjBhR2x6TG1OaGJuWmhjeTVvWldsbmFIUWdJQ0FnSUNBZ1BTQWtlM1JvYVhNdVkyRnVkbUZ6TG1obGFXZG9kSDFjWEc1Z0lDdGNiaUFnSUNBdkx5QWdJR0IwYUdsekxtTmhiblpoY3k1emRIbHNaUzVvWldsbmFIUWdQU0FrZTNSb2FYTXVZMkZ1ZG1GekxuTjBlV3hsTG1obGFXZG9kSDFnS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwUkhMa052YkhWdGJuMGdjMlZ4UTI5c0lFTnZiSFZ0YmlCMGJ5QnNiMjlySUdadmNpQmhJSEJoYkdWMGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUNCdGFXNU1aVzVuZEdnZ2JXbHVhVzExYlNCc1pXNW5kR2dnYjJZZ2MyVnhkV1Z1WTJVZ2RHOGdaR1YwWldOMElIQmhiR1YwZEdVZ0tHVnRjSFI1SUhOMGNtbHVaM01nWVhKbElHRnNiRzkzWldRcFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTFObGNWQmhiR1YwZEdWOUlGQmhiR1YwZEdVZ1kyOXljbVZ6Y0c5dVpHbHVaeUIwYnlCMGFHVWdZV3h3YUdGaVpYUWdiMllnZEdobElITmxjWFZsYm1ObGN5QnBiaUIwYUdVZ1kyOXNkVzF1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUhCcFkydFZjRkJoYkdWMGRHVW9jMlZ4UTI5c09pQkVSeTVEYjJ4MWJXNHNJRzFwYmt4bGJtZDBhRG9nYm5WdFltVnlJRDBnTUNrNklGTmxjVkJoYkdWMGRHVWdmQ0J1ZFd4c0lIdGNiaUFnSUNCc1pYUWdjbVZ6T2lCVFpYRlFZV3hsZEhSbElId2diblZzYkNBOUlHNTFiR3c3WEc0Z0lDQWdjM2RwZEdOb0lDaHpaWEZEYjJ3dWMyVnRWSGx3WlNrZ2UxeHVJQ0FnSUdOaGMyVWdRVzFwYm05aFkybGtjeTVUWlcxVWVYQmxUWFZzZEdsd2JHVkJiR2xuYm0xbGJuUTZYRzRnSUNBZ0lDQnlaWE1nUFNCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2N6dGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJR05oYzJVZ1RuVmpiR1Z2ZEdsa1pYTXVVMlZ0Vkhsd1pVMTFiSFJwY0d4bFFXeHBaMjV0Wlc1ME9seHVJQ0FnSUNBZ2NtVnpJRDBnVG5WamJHVnZkR2xrWlhOUVlXeGxkSFJsY3k1RGFISnZiV0YwYjJkeVlXMDdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0I5WEc0Z0lDQWdhV1lnS0hKbGN5QTlQVDBnYm5Wc2JDa2dlMXh1SUNBZ0lDQWdMeThnVkdobElHRnNjR2hoWW1WMElHOW1JRzUxWTJ4bGIzUnBaR1Z6SUdseklHRWdjMjFoYkd4bGNpQnpaWFFzSUhOdklIZGxJR05vWldOcklHbDBJR1pwY25OMExseHVJQ0FnSUNBZ1kyOXVjM1FnWVd4d2FHRmlaWFFnUFNCN0xpNHVUblZqYkdWdmRHbGtaWE11VG1GdFpYTXNJQzR1TG5zbkxTYzZJQ2RuWVhBbmZYMDdYRzRnSUNBZ0lDQnlaWE1nUFNCRVJ5NUVaWFJsWTNSdmNpNXpZVzF3YkdWRFlYUmxaMjl5YVdWektITmxjVU52YkN3Z0tITXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNGeklIeDhJQ2h6TG14bGJtZDBhQ0ErSUcxcGJreGxibWQwYUNBbUppQnpMbk53YkdsMEtDY25LUzVsZG1WeWVTZ29iaWtnUFQ0Z2JpQnBiaUJoYkhCb1lXSmxkQ2twTzF4dUlDQWdJQ0FnZlNrZ1B5Qk9kV05zWlc5MGFXUmxjMUJoYkdWMGRHVnpMa05vY205dFlYUnZaM0poYlNBNklHNTFiR3c3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h5WlhNZ1BUMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lDOHZJRUZ1WkNCMGFHVnVJR05vWldOcklHWnZjaUJoYldsdWJ5QmhZMmxrY3lCaGJIQm9ZV0psZEM1Y2JpQWdJQ0FnSUdOdmJuTjBJR0ZzY0doaFltVjBJRDBnZXk0dUxrRnRhVzV2WVdOcFpITXVUbUZ0WlhNc0lDNHVMbnNuTFNjNklDZG5ZWEFuZlgwN1hHNGdJQ0FnSUNCeVpYTWdQU0JFUnk1RVpYUmxZM1J2Y2k1ellXMXdiR1ZEWVhSbFoyOXlhV1Z6S0hObGNVTnZiQ3dnS0hNcElEMCtJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQ0Z6SUh4OElDaHpMbXhsYm1kMGFDQStJRzFwYmt4bGJtZDBhQ0FtSmlCekxuTndiR2wwS0NjbktTNWxkbVZ5ZVNnb2Jpa2dQVDRnYmlCcGJpQmhiSEJvWVdKbGRDa3BPMXh1SUNBZ0lDQWdmU2tnUHlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2N5QTZJRzUxYkd3N1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaWE03WEc0Z0lIMWNibHh1SUNBdktpb2dSbWx5YzNRZ2RISjVJSFJ2SUdacGJtUWdZMjlzZFcxdUlIZHBkR2dnYzJWdFZIbHdaU0FuWVd4cFoyNWxaRk5sY1hWbGJtTmxKeTVjYmlBZ0lDb2dUbVY0ZENCc2IyOXJJR1p2Y2lCamIyeDFiVzRnZDJsMGFDQmtZWFJoSUdGc2NHaGhZbVYwSUdOdmNuSmxjM0J2Ym1ScGJtY2dkRzhnWVc1NUlHOW1JSFJvWlNCcmJtOTNiaUJ3WVd4bGRIUmxjeTVjYmlBZ0lDb2dRSEJoY21GdElIdEVSeTVFWVhSaFJuSmhiV1Y5SUdSaGRHRkdjbUZ0WlZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFUnk1RGIyeDFiVzU5SUZSb1pTQmpiMngxYlc0Z2QyVWdkMlZ5WlNCc2IyOXJhVzVuSUdadmNpQnZjaUJ1ZFd4c1hHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElIQnBZMnRWY0ZObGNVTnZiQ2hrWVhSaFJuSmhiV1U2SUVSSExrUmhkR0ZHY21GdFpTazZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dlMXh1SUNBZ0lHeGxkQ0J5WlhNNklFUkhMa052YkhWdGJpQjhJRzUxYkd3Z1BTQmtZWFJoUm5KaGJXVXVZMjlzZFcxdWN5NTBiMHhwYzNRb0tWeHVJQ0FnSUNBZ0xtWnBibVFvS0dNNklFUkhMa052YkhWdGJpa2dQVDRnWXk1elpXMVVlWEJsSUQwOUlDZGhiR2xuYm1Wa1UyVnhkV1Z1WTJVbktTQjhmQ0J1ZFd4c08xeHVYRzRnSUNBZ2FXWWdLSEpsY3lBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHTnZiQ0J2WmlCa1lYUmhSbkpoYldVdVkyOXNkVzF1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCamNDQTlJSFJvYVhNdWNHbGphMVZ3VUdGc1pYUjBaU2hqYjJ3Z1lYTWdSRWN1UTI5c2RXMXVMQ0ExS1R0Y2JpQWdJQ0FnSUNBZ2FXWWdLR053SUNFOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVZ6SUQwZ1kyOXNPMXh1SUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCeVpYTTdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImNsYXNzIENlbGwge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gMDtcbiAgICAgICAgdGhpcy5wYXJlbnRJID0gMDtcbiAgICAgICAgdGhpcy5wYXJlbnRKID0gMDtcbiAgICB9XG59XG47XG5leHBvcnQgY2xhc3MgQWxpZ25lZCB7XG4gICAgY29uc3RydWN0b3Ioc2VxMV8sIHNlcTJfLCBzY29yZV8pIHtcbiAgICAgICAgdGhpcy5zZXExID0gc2VxMV87XG4gICAgICAgIHRoaXMuc2VxMiA9IHNlcTJfO1xuICAgICAgICB0aGlzLnNjb3JlID0gc2NvcmVfO1xuICAgIH1cbn1cbjtcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZUFsaWdubWVudCB7XG4gICAgY29uc3RydWN0b3Ioc2VxMV8sIHNlcTJfLCBnYXBfLCBhbGlnbkdyaWRfID0gXCJcIikge1xuICAgICAgICB0aGlzLnNlcTEgPSAnJztcbiAgICAgICAgdGhpcy5zZXEyID0gJyc7XG4gICAgICAgIHRoaXMuZ2FwID0gMTtcbiAgICAgICAgdGhpcy5sZW4xID0gMDtcbiAgICAgICAgdGhpcy5sZW4yID0gMDtcbiAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSBbXTtcbiAgICAgICAgdGhpcy5zY29yZXMgPSBbXTtcbiAgICAgICAgdGhpcy5kcEdyaWQgPSBbXTtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHt9O1xuICAgICAgICB0aGlzLkJMT1NVTTQ1ID0gW1s1LCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgMCwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC01XSxcbiAgICAgICAgICAgIFstMiwgNywgMCwgLTEsIC0zLCAxLCAwLCAtMiwgMCwgLTMsIC0yLCAzLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0yLCAtMSwgLTIsIC0xLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCA2LCAyLCAtMiwgMCwgMCwgMCwgMSwgLTIsIC0zLCAwLCAtMiwgLTIsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCA0LCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgMiwgNywgLTMsIDAsIDIsIC0xLCAwLCAtNCwgLTMsIDAsIC0zLCAtNCwgLTEsIDAsIC0xLCAtNCwgLTIsIC0zLCA1LCAxLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC0zLCAxMiwgLTMsIC0zLCAtMywgLTMsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTQsIC0xLCAtMSwgLTUsIC0zLCAtMSwgLTIsIC0zLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0xLCAxLCAwLCAwLCAtMywgNiwgMiwgLTIsIDEsIC0yLCAtMiwgMSwgMCwgLTQsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMywgMCwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMiwgLTMsIDIsIDYsIC0yLCAwLCAtMywgLTIsIDEsIC0yLCAtMywgMCwgMCwgLTEsIC0zLCAtMiwgLTMsIDEsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0xLCAtMywgLTIsIC0yLCA3LCAtMiwgLTQsIC0zLCAtMiwgLTIsIC0zLCAtMiwgMCwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgMCwgLTMsIDEsIDAsIC0yLCAxMCwgLTMsIC0yLCAtMSwgMCwgLTIsIC0yLCAtMSwgLTIsIC0zLCAyLCAtMywgMCwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0yLCAtNCwgLTMsIC0yLCAtMywgLTQsIC0zLCA1LCAyLCAtMywgMiwgMCwgLTIsIC0yLCAtMSwgLTIsIDAsIDMsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0zLCAtMywgLTIsIC0yLCAtMiwgLTMsIC0yLCAyLCA1LCAtMywgMiwgMSwgLTMsIC0zLCAtMSwgLTIsIDAsIDEsIC0zLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgMCwgLTMsIDEsIDEsIC0yLCAtMSwgLTMsIC0zLCA1LCAtMSwgLTMsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTIsIDAsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMiwgLTMsIC0yLCAwLCAtMiwgLTIsIDAsIDIsIDIsIC0xLCA2LCAwLCAtMiwgLTIsIC0xLCAtMiwgMCwgMSwgLTIsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTIsIC00LCAtMiwgLTQsIC0zLCAtMywgLTIsIDAsIDEsIC0zLCAwLCA4LCAtMywgLTIsIC0xLCAxLCAzLCAwLCAtMywgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTEsIC00LCAtMSwgMCwgLTIsIC0yLCAtMiwgLTMsIC0xLCAtMiwgLTMsIDksIC0xLCAtMSwgLTMsIC0zLCAtMywgLTIsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAwLCAtMSwgMCwgMCwgMCwgLTEsIC0yLCAtMywgLTEsIC0yLCAtMiwgLTEsIDQsIDIsIC00LCAtMiwgLTEsIDAsIDAsIDAsIC01XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMiwgNSwgLTMsIC0xLCAwLCAwLCAtMSwgMCwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTQsIC00LCAtNSwgLTIsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTIsIC0yLCAxLCAtMywgLTQsIC0zLCAxNSwgMywgLTMsIC00LCAtMiwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTEsIC0yLCAtMiwgLTMsIC0xLCAtMiwgLTMsIDIsIDAsIDAsIC0xLCAwLCAzLCAtMywgLTIsIC0xLCAzLCA4LCAtMSwgLTIsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMywgLTMsIC0xLCAtMywgLTMsIC0zLCAtMywgMywgMSwgLTIsIDEsIDAsIC0zLCAtMSwgMCwgLTMsIC0xLCA1LCAtMywgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCA0LCA1LCAtMiwgMCwgMSwgLTEsIDAsIC0zLCAtMywgMCwgLTIsIC0zLCAtMiwgMCwgMCwgLTQsIC0yLCAtMywgNCwgMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMSwgLTMsIDQsIDQsIC0yLCAwLCAtMywgLTIsIDEsIC0xLCAtMywgLTEsIDAsIC0xLCAtMiwgLTIsIC0zLCAyLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMCwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTUwID0gW1s1LCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0zLCAtMSwgMSwgMCwgLTMsIC0yLCAwLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIDcsIC0xLCAtMiwgLTQsIDEsIDAsIC0zLCAwLCAtNCwgLTMsIDMsIC0yLCAtMywgLTMsIC0xLCAtMSwgLTMsIC0xLCAtMywgLTEsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCA3LCAyLCAtMiwgMCwgMCwgMCwgMSwgLTMsIC00LCAwLCAtMiwgLTQsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCA0LCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgMiwgOCwgLTQsIDAsIDIsIC0xLCAtMSwgLTQsIC00LCAtMSwgLTQsIC01LCAtMSwgMCwgLTEsIC01LCAtMywgLTQsIDUsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC00LCAtMiwgLTQsIDEzLCAtMywgLTMsIC0zLCAtMywgLTIsIC0yLCAtMywgLTIsIC0yLCAtNCwgLTEsIC0xLCAtNSwgLTMsIC0xLCAtMywgLTMsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA3LCAyLCAtMiwgMSwgLTMsIC0yLCAyLCAwLCAtNCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0zLCAwLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtMywgMiwgNiwgLTMsIDAsIC00LCAtMywgMSwgLTIsIC0zLCAtMSwgLTEsIC0xLCAtMywgLTIsIC0zLCAxLCA1LCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0zLCAwLCAtMSwgLTMsIC0yLCAtMywgOCwgLTIsIC00LCAtNCwgLTIsIC0zLCAtNCwgLTIsIDAsIC0yLCAtMywgLTMsIC00LCAtMSwgLTIsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTIsIDAsIDEsIC0xLCAtMywgMSwgMCwgLTIsIDEwLCAtNCwgLTMsIDAsIC0xLCAtMSwgLTIsIC0xLCAtMiwgLTMsIDIsIC00LCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtNCwgLTMsIC00LCAtMiwgLTMsIC00LCAtNCwgLTQsIDUsIDIsIC0zLCAyLCAwLCAtMywgLTMsIC0xLCAtMywgLTEsIDQsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC00LCAtNCwgLTIsIC0yLCAtMywgLTQsIC0zLCAyLCA1LCAtMywgMywgMSwgLTQsIC0zLCAtMSwgLTIsIC0xLCAxLCAtNCwgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDMsIDAsIC0xLCAtMywgMiwgMSwgLTIsIDAsIC0zLCAtMywgNiwgLTIsIC00LCAtMSwgMCwgLTEsIC0zLCAtMiwgLTMsIDAsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTQsIC0yLCAwLCAtMiwgLTMsIC0xLCAyLCAzLCAtMiwgNywgMCwgLTMsIC0yLCAtMSwgLTEsIDAsIDEsIC0zLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNSwgLTIsIC00LCAtMywgLTQsIC0xLCAwLCAxLCAtNCwgMCwgOCwgLTQsIC0zLCAtMiwgMSwgNCwgLTEsIC00LCAtNCwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0yLCAtMSwgLTQsIC0xLCAtMSwgLTIsIC0yLCAtMywgLTQsIC0xLCAtMywgLTQsIDEwLCAtMSwgLTEsIC00LCAtMywgLTMsIC0yLCAtMSwgLTIsIC01XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgMCwgLTEsIDAsIC0xLCAwLCAtMSwgLTMsIC0zLCAwLCAtMiwgLTMsIC0xLCA1LCAyLCAtNCwgLTIsIC0yLCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAyLCA1LCAtMywgLTIsIDAsIDAsIC0xLCAwLCAtNV0sXG4gICAgICAgICAgICBbLTMsIC0zLCAtNCwgLTUsIC01LCAtMSwgLTMsIC0zLCAtMywgLTMsIC0yLCAtMywgLTEsIDEsIC00LCAtNCwgLTMsIDE1LCAyLCAtMywgLTUsIC0yLCAtMywgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMywgMiwgLTEsIC0xLCAtMiwgMCwgNCwgLTMsIC0yLCAtMiwgMiwgOCwgLTEsIC0zLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC00LCAtMSwgLTMsIC0zLCAtNCwgLTQsIDQsIDEsIC0zLCAxLCAtMSwgLTMsIC0yLCAwLCAtMywgLTEsIDUsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDQsIDUsIC0zLCAwLCAxLCAtMSwgMCwgLTQsIC00LCAwLCAtMywgLTQsIC0yLCAwLCAwLCAtNSwgLTMsIC00LCA1LCAyLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAxLCAtMywgNCwgNSwgLTIsIDAsIC0zLCAtMywgMSwgLTEsIC00LCAtMSwgMCwgLTEsIC0yLCAtMiwgLTMsIDIsIDUsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIDAsIC0zLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIDFdXTtcbiAgICAgICAgdGhpcy5CTE9TVU02MiA9IFtbNCwgLTEsIC0yLCAtMiwgMCwgLTEsIC0xLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgMCwgLTMsIC0yLCAwLCAtMiwgLTEsIDAsIC00XSxcbiAgICAgICAgICAgIFstMSwgNSwgMCwgLTIsIC0zLCAxLCAwLCAtMiwgMCwgLTMsIC0yLCAyLCAtMSwgLTMsIC0yLCAtMSwgLTEsIC0zLCAtMiwgLTMsIC0xLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAwLCA2LCAxLCAtMywgMCwgMCwgMCwgMSwgLTMsIC0zLCAwLCAtMiwgLTMsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCAzLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMiwgMSwgNiwgLTMsIDAsIDIsIC0xLCAtMSwgLTMsIC00LCAtMSwgLTMsIC0zLCAtMSwgMCwgLTEsIC00LCAtMywgLTMsIDQsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTMsIC0zLCAtMywgOSwgLTMsIC00LCAtMywgLTMsIC0xLCAtMSwgLTMsIC0xLCAtMiwgLTMsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTMsIC0zLCAtMiwgLTRdLFxuICAgICAgICAgICAgWy0xLCAxLCAwLCAwLCAtMywgNSwgMiwgLTIsIDAsIC0zLCAtMiwgMSwgMCwgLTMsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMiwgMCwgMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMiwgLTQsIDIsIDUsIC0yLCAwLCAtMywgLTMsIDEsIC0yLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAxLCA0LCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMSwgLTMsIC0yLCAtMiwgNiwgLTIsIC00LCAtNCwgLTIsIC0zLCAtMywgLTIsIDAsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIDAsIDEsIC0xLCAtMywgMCwgMCwgLTIsIDgsIC0zLCAtMywgLTEsIC0yLCAtMSwgLTIsIC0xLCAtMiwgLTIsIDIsIC0zLCAwLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTMsIC0zLCAtMSwgLTMsIC0zLCAtNCwgLTMsIDQsIDIsIC0zLCAxLCAwLCAtMywgLTIsIC0xLCAtMywgLTEsIDMsIC0zLCAtMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0zLCAtNCwgLTEsIC0yLCAtMywgLTQsIC0zLCAyLCA0LCAtMiwgMiwgMCwgLTMsIC0yLCAtMSwgLTIsIC0xLCAxLCAtNCwgLTMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDIsIDAsIC0xLCAtMywgMSwgMSwgLTIsIC0xLCAtMywgLTIsIDUsIC0xLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAwLCAxLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTIsIC0zLCAtMSwgMCwgLTIsIC0zLCAtMiwgMSwgMiwgLTEsIDUsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgMSwgLTMsIC0xLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTMsIC0zLCAtMiwgLTMsIC0zLCAtMywgLTEsIDAsIDAsIC0zLCAwLCA2LCAtNCwgLTIsIC0yLCAxLCAzLCAtMSwgLTMsIC0zLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0xLCAtMywgLTEsIC0xLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0yLCAtNCwgNywgLTEsIC0xLCAtNCwgLTMsIC0yLCAtMiwgLTEsIC0yLCAtNF0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIDAsIC0xLCAwLCAwLCAwLCAtMSwgLTIsIC0yLCAwLCAtMSwgLTIsIC0xLCA0LCAxLCAtMywgLTIsIC0yLCAwLCAwLCAwLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDEsIDUsIC0yLCAtMiwgMCwgLTEsIC0xLCAwLCAtNF0sXG4gICAgICAgICAgICBbLTMsIC0zLCAtNCwgLTQsIC0yLCAtMiwgLTMsIC0yLCAtMiwgLTMsIC0yLCAtMywgLTEsIDEsIC00LCAtMywgLTIsIDExLCAyLCAtMywgLTQsIC0zLCAtMiwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTIsIC0zLCAtMiwgLTEsIC0yLCAtMywgMiwgLTEsIC0xLCAtMiwgLTEsIDMsIC0zLCAtMiwgLTIsIDIsIDcsIC0xLCAtMywgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTMsIC0zLCAtMywgLTEsIC0yLCAtMiwgLTMsIC0zLCAzLCAxLCAtMiwgMSwgLTEsIC0yLCAtMiwgMCwgLTMsIC0xLCA0LCAtMywgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0xLCAzLCA0LCAtMywgMCwgMSwgLTEsIDAsIC0zLCAtNCwgMCwgLTMsIC0zLCAtMiwgMCwgLTEsIC00LCAtMywgLTMsIDQsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDEsIC0zLCAzLCA0LCAtMiwgMCwgLTMsIC0zLCAxLCAtMSwgLTMsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMiwgMSwgNCwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMSwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIDAsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIDFdXTtcbiAgICAgICAgdGhpcy5CTE9TVU04MCA9IFtbNywgLTMsIC0zLCAtMywgLTEsIC0yLCAtMiwgMCwgLTMsIC0zLCAtMywgLTEsIC0yLCAtNCwgLTEsIDIsIDAsIC01LCAtNCwgLTEsIC0zLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMywgOSwgLTEsIC0zLCAtNiwgMSwgLTEsIC00LCAwLCAtNSwgLTQsIDMsIC0zLCAtNSwgLTMsIC0yLCAtMiwgLTUsIC00LCAtNCwgLTIsIDAsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0xLCA5LCAyLCAtNSwgMCwgLTEsIC0xLCAxLCAtNiwgLTYsIDAsIC00LCAtNiwgLTQsIDEsIDAsIC03LCAtNCwgLTUsIDUsIC0xLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtMywgMiwgMTAsIC03LCAtMSwgMiwgLTMsIC0yLCAtNywgLTcsIC0yLCAtNiwgLTYsIC0zLCAtMSwgLTIsIC04LCAtNiwgLTYsIDYsIDEsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC02LCAtNSwgLTcsIDEzLCAtNSwgLTcsIC02LCAtNywgLTIsIC0zLCAtNiwgLTMsIC00LCAtNiwgLTIsIC0yLCAtNSwgLTUsIC0yLCAtNiwgLTcsIC00LCAtOF0sXG4gICAgICAgICAgICBbLTIsIDEsIDAsIC0xLCAtNSwgOSwgMywgLTQsIDEsIC01LCAtNCwgMiwgLTEsIC01LCAtMywgLTEsIC0xLCAtNCwgLTMsIC00LCAtMSwgNSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTEsIC0xLCAyLCAtNywgMywgOCwgLTQsIDAsIC02LCAtNiwgMSwgLTQsIC02LCAtMiwgLTEsIC0yLCAtNiwgLTUsIC00LCAxLCA2LCAtMiwgLThdLFxuICAgICAgICAgICAgWzAsIC00LCAtMSwgLTMsIC02LCAtNCwgLTQsIDksIC00LCAtNywgLTcsIC0zLCAtNSwgLTYsIC01LCAtMSwgLTMsIC02LCAtNiwgLTYsIC0yLCAtNCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMywgMCwgMSwgLTIsIC03LCAxLCAwLCAtNCwgMTIsIC02LCAtNSwgLTEsIC00LCAtMiwgLTQsIC0yLCAtMywgLTQsIDMsIC01LCAtMSwgMCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTUsIC02LCAtNywgLTIsIC01LCAtNiwgLTcsIC02LCA3LCAyLCAtNSwgMiwgLTEsIC01LCAtNCwgLTIsIC01LCAtMywgNCwgLTYsIC02LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTYsIC03LCAtMywgLTQsIC02LCAtNywgLTUsIDIsIDYsIC00LCAzLCAwLCAtNSwgLTQsIC0zLCAtNCwgLTIsIDEsIC03LCAtNSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgLTIsIC02LCAyLCAxLCAtMywgLTEsIC01LCAtNCwgOCwgLTMsIC01LCAtMiwgLTEsIC0xLCAtNiwgLTQsIC00LCAtMSwgMSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC00LCAtNiwgLTMsIC0xLCAtNCwgLTUsIC00LCAyLCAzLCAtMywgOSwgMCwgLTQsIC0zLCAtMSwgLTMsIC0zLCAxLCAtNSwgLTMsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTQsIC01LCAtNiwgLTYsIC00LCAtNSwgLTYsIC02LCAtMiwgLTEsIDAsIC01LCAwLCAxMCwgLTYsIC00LCAtNCwgMCwgNCwgLTIsIC02LCAtNiwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC00LCAtMywgLTYsIC0zLCAtMiwgLTUsIC00LCAtNSwgLTUsIC0yLCAtNCwgLTYsIDEyLCAtMiwgLTMsIC03LCAtNiwgLTQsIC00LCAtMiwgLTMsIC04XSxcbiAgICAgICAgICAgIFsyLCAtMiwgMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMiwgLTQsIC00LCAtMSwgLTMsIC00LCAtMiwgNywgMiwgLTYsIC0zLCAtMywgMCwgLTEsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0yLCAtMiwgLTEsIC0yLCAtMywgLTMsIC0yLCAtMywgLTEsIC0xLCAtNCwgLTMsIDIsIDgsIC01LCAtMywgMCwgLTEsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTcsIC04LCAtNSwgLTQsIC02LCAtNiwgLTQsIC01LCAtNCwgLTYsIC0zLCAwLCAtNywgLTYsIC01LCAxNiwgMywgLTUsIC04LCAtNSwgLTUsIC04XSxcbiAgICAgICAgICAgIFstNCwgLTQsIC00LCAtNiwgLTUsIC0zLCAtNSwgLTYsIDMsIC0zLCAtMiwgLTQsIC0zLCA0LCAtNiwgLTMsIC0zLCAzLCAxMSwgLTMsIC01LCAtNCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTQsIC01LCAtNiwgLTIsIC00LCAtNCwgLTYsIC01LCA0LCAxLCAtNCwgMSwgLTIsIC00LCAtMywgMCwgLTUsIC0zLCA3LCAtNiwgLTQsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0yLCA1LCA2LCAtNiwgLTEsIDEsIC0yLCAtMSwgLTYsIC03LCAtMSwgLTUsIC02LCAtNCwgMCwgLTEsIC04LCAtNSwgLTYsIDYsIDAsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTIsIDAsIC0xLCAxLCAtNywgNSwgNiwgLTQsIDAsIC02LCAtNSwgMSwgLTMsIC02LCAtMiwgLTEsIC0yLCAtNSwgLTQsIC00LCAwLCA2LCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0zLCAtNCwgLTIsIC0yLCAtMywgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMSwgLTUsIC0zLCAtMiwgLTMsIC0xLCAtMiwgLThdLFxuICAgICAgICAgICAgWy04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTkwID0gW1s1LCAtMiwgLTIsIC0zLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTIsIC0yLCAtMSwgLTIsIC0zLCAtMSwgMSwgMCwgLTQsIC0zLCAtMSwgLTIsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0yLCA2LCAtMSwgLTMsIC01LCAxLCAtMSwgLTMsIDAsIC00LCAtMywgMiwgLTIsIC00LCAtMywgLTEsIC0yLCAtNCwgLTMsIC0zLCAtMiwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDcsIDEsIC00LCAwLCAtMSwgLTEsIDAsIC00LCAtNCwgMCwgLTMsIC00LCAtMywgMCwgMCwgLTUsIC0zLCAtNCwgNCwgLTEsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTMsIC0zLCAxLCA3LCAtNSwgLTEsIDEsIC0yLCAtMiwgLTUsIC01LCAtMSwgLTQsIC01LCAtMywgLTEsIC0yLCAtNiwgLTQsIC01LCA0LCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtNSwgLTQsIC01LCA5LCAtNCwgLTYsIC00LCAtNSwgLTIsIC0yLCAtNCwgLTIsIC0zLCAtNCwgLTIsIC0yLCAtNCwgLTQsIC0yLCAtNCwgLTUsIC0zLCAtNl0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIC0xLCAtNCwgNywgMiwgLTMsIDEsIC00LCAtMywgMSwgMCwgLTQsIC0yLCAtMSwgLTEsIC0zLCAtMywgLTMsIC0xLCA0LCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTEsIDEsIC02LCAyLCA2LCAtMywgLTEsIC00LCAtNCwgMCwgLTMsIC01LCAtMiwgLTEsIC0xLCAtNSwgLTQsIC0zLCAwLCA0LCAtMiwgLTZdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMSwgLTIsIC00LCAtMywgLTMsIDYsIC0zLCAtNSwgLTUsIC0yLCAtNCwgLTUsIC0zLCAtMSwgLTMsIC00LCAtNSwgLTUsIC0yLCAtMywgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgMCwgMCwgLTIsIC01LCAxLCAtMSwgLTMsIDgsIC00LCAtNCwgLTEsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTMsIDEsIC00LCAtMSwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC00LCAtNSwgLTIsIC00LCAtNCwgLTUsIC00LCA1LCAxLCAtNCwgMSwgLTEsIC00LCAtMywgLTEsIC00LCAtMiwgMywgLTUsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC01LCAtMiwgLTMsIC00LCAtNSwgLTQsIDEsIDUsIC0zLCAyLCAwLCAtNCwgLTMsIC0yLCAtMywgLTIsIDAsIC01LCAtNCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgMiwgMCwgLTEsIC00LCAxLCAwLCAtMiwgLTEsIC00LCAtMywgNiwgLTIsIC00LCAtMiwgLTEsIC0xLCAtNSwgLTMsIC0zLCAtMSwgMSwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTIsIC0zLCAtNCwgLTIsIDAsIC0zLCAtNCwgLTMsIDEsIDIsIC0yLCA3LCAtMSwgLTMsIC0yLCAtMSwgLTIsIC0yLCAwLCAtNCwgLTIsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTMsIC00LCAtNCwgLTUsIC0zLCAtNCwgLTUsIC01LCAtMiwgLTEsIDAsIC00LCAtMSwgNywgLTQsIC0zLCAtMywgMCwgMywgLTIsIC00LCAtNCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0zLCAtMywgLTQsIC0yLCAtMiwgLTMsIC0zLCAtNCwgLTQsIC0yLCAtMywgLTQsIDgsIC0yLCAtMiwgLTUsIC00LCAtMywgLTMsIC0yLCAtMiwgLTZdLFxuICAgICAgICAgICAgWzEsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTMsIC0yLCA1LCAxLCAtNCwgLTMsIC0yLCAwLCAtMSwgLTEsIC02XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTIsIC0yLCAtMSwgLTEsIC0zLCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0zLCAtMiwgMSwgNiwgLTQsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTUsIC02LCAtNCwgLTMsIC01LCAtNCwgLTMsIC00LCAtMywgLTUsIC0yLCAwLCAtNSwgLTQsIC00LCAxMSwgMiwgLTMsIC02LCAtNCwgLTMsIC02XSxcbiAgICAgICAgICAgIFstMywgLTMsIC0zLCAtNCwgLTQsIC0zLCAtNCwgLTUsIDEsIC0yLCAtMiwgLTMsIC0yLCAzLCAtNCwgLTMsIC0yLCAyLCA4LCAtMywgLTQsIC0zLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTQsIC01LCAtMiwgLTMsIC0zLCAtNSwgLTQsIDMsIDAsIC0zLCAwLCAtMiwgLTMsIC0yLCAtMSwgLTMsIC0zLCA1LCAtNCwgLTMsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0yLCA0LCA0LCAtNCwgLTEsIDAsIC0yLCAtMSwgLTUsIC01LCAtMSwgLTQsIC00LCAtMywgMCwgLTEsIC02LCAtNCwgLTQsIDQsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIDAsIC0xLCAwLCAtNSwgNCwgNCwgLTMsIDAsIC00LCAtNCwgMSwgLTIsIC00LCAtMiwgLTEsIC0xLCAtNCwgLTMsIC0zLCAwLCA0LCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMiwgLTIsIC0xLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgMV1dO1xuICAgICAgICB0aGlzLk5VQ0xFT1RJREVTID0gW1sxLCAtMSwgLTEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgMSwgLTEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgLTEsIDEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0xLCAxXV07XG4gICAgICAgIHRoaXMuUEFNMzAgPSBbWzYsIC03LCAtNCwgLTMsIC02LCAtNCwgLTIsIC0yLCAtNywgLTUsIC02LCAtNywgLTUsIC04LCAtMiwgMCwgLTEsIC0xMywgLTgsIC0yLCAtMywgLTMsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy03LCA4LCAtNiwgLTEwLCAtOCwgLTIsIC05LCAtOSwgLTIsIC01LCAtOCwgMCwgLTQsIC05LCAtNCwgLTMsIC02LCAtMiwgLTEwLCAtOCwgLTcsIC00LCAtNiwgLTE3XSxcbiAgICAgICAgICAgIFstNCwgLTYsIDgsIDIsIC0xMSwgLTMsIC0yLCAtMywgMCwgLTUsIC03LCAtMSwgLTksIC05LCAtNiwgMCwgLTIsIC04LCAtNCwgLTgsIDYsIC0zLCAtMywgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTEwLCAyLCA4LCAtMTQsIC0yLCAyLCAtMywgLTQsIC03LCAtMTIsIC00LCAtMTEsIC0xNSwgLTgsIC00LCAtNSwgLTE1LCAtMTEsIC04LCA2LCAxLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNiwgLTgsIC0xMSwgLTE0LCAxMCwgLTE0LCAtMTQsIC05LCAtNywgLTYsIC0xNSwgLTE0LCAtMTMsIC0xMywgLTgsIC0zLCAtOCwgLTE1LCAtNCwgLTYsIC0xMiwgLTE0LCAtOSwgLTE3XSxcbiAgICAgICAgICAgIFstNCwgLTIsIC0zLCAtMiwgLTE0LCA4LCAxLCAtNywgMSwgLTgsIC01LCAtMywgLTQsIC0xMywgLTMsIC01LCAtNSwgLTEzLCAtMTIsIC03LCAtMywgNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTIsIC05LCAtMiwgMiwgLTE0LCAxLCA4LCAtNCwgLTUsIC01LCAtOSwgLTQsIC03LCAtMTQsIC01LCAtNCwgLTYsIC0xNywgLTgsIC02LCAxLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTksIC0zLCAtMywgLTksIC03LCAtNCwgNiwgLTksIC0xMSwgLTEwLCAtNywgLTgsIC05LCAtNiwgLTIsIC02LCAtMTUsIC0xNCwgLTUsIC0zLCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTcsIC0yLCAwLCAtNCwgLTcsIDEsIC01LCAtOSwgOSwgLTksIC02LCAtNiwgLTEwLCAtNiwgLTQsIC02LCAtNywgLTcsIC0zLCAtNiwgLTEsIC0xLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNSwgLTUsIC01LCAtNywgLTYsIC04LCAtNSwgLTExLCAtOSwgOCwgLTEsIC02LCAtMSwgLTIsIC04LCAtNywgLTIsIC0xNCwgLTYsIDIsIC02LCAtNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTYsIC04LCAtNywgLTEyLCAtMTUsIC01LCAtOSwgLTEwLCAtNiwgLTEsIDcsIC04LCAxLCAtMywgLTcsIC04LCAtNywgLTYsIC03LCAtMiwgLTksIC03LCAtNiwgLTE3XSxcbiAgICAgICAgICAgIFstNywgMCwgLTEsIC00LCAtMTQsIC0zLCAtNCwgLTcsIC02LCAtNiwgLTgsIDcsIC0yLCAtMTQsIC02LCAtNCwgLTMsIC0xMiwgLTksIC05LCAtMiwgLTQsIC01LCAtMTddLFxuICAgICAgICAgICAgWy01LCAtNCwgLTksIC0xMSwgLTEzLCAtNCwgLTcsIC04LCAtMTAsIC0xLCAxLCAtMiwgMTEsIC00LCAtOCwgLTUsIC00LCAtMTMsIC0xMSwgLTEsIC0xMCwgLTUsIC01LCAtMTddLFxuICAgICAgICAgICAgWy04LCAtOSwgLTksIC0xNSwgLTEzLCAtMTMsIC0xNCwgLTksIC02LCAtMiwgLTMsIC0xNCwgLTQsIDksIC0xMCwgLTYsIC05LCAtNCwgMiwgLTgsIC0xMCwgLTEzLCAtOCwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC02LCAtOCwgLTgsIC0zLCAtNSwgLTYsIC00LCAtOCwgLTcsIC02LCAtOCwgLTEwLCA4LCAtMiwgLTQsIC0xNCwgLTEzLCAtNiwgLTcsIC00LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFswLCAtMywgMCwgLTQsIC0zLCAtNSwgLTQsIC0yLCAtNiwgLTcsIC04LCAtNCwgLTUsIC02LCAtMiwgNiwgMCwgLTUsIC03LCAtNiwgLTEsIC01LCAtMywgLTE3XSxcbiAgICAgICAgICAgIFstMSwgLTYsIC0yLCAtNSwgLTgsIC01LCAtNiwgLTYsIC03LCAtMiwgLTcsIC0zLCAtNCwgLTksIC00LCAwLCA3LCAtMTMsIC02LCAtMywgLTMsIC02LCAtNCwgLTE3XSxcbiAgICAgICAgICAgIFstMTMsIC0yLCAtOCwgLTE1LCAtMTUsIC0xMywgLTE3LCAtMTUsIC03LCAtMTQsIC02LCAtMTIsIC0xMywgLTQsIC0xNCwgLTUsIC0xMywgMTMsIC01LCAtMTUsIC0xMCwgLTE0LCAtMTEsIC0xN10sXG4gICAgICAgICAgICBbLTgsIC0xMCwgLTQsIC0xMSwgLTQsIC0xMiwgLTgsIC0xNCwgLTMsIC02LCAtNywgLTksIC0xMSwgMiwgLTEzLCAtNywgLTYsIC01LCAxMCwgLTcsIC02LCAtOSwgLTcsIC0xN10sXG4gICAgICAgICAgICBbLTIsIC04LCAtOCwgLTgsIC02LCAtNywgLTYsIC01LCAtNiwgMiwgLTIsIC05LCAtMSwgLTgsIC02LCAtNiwgLTMsIC0xNSwgLTcsIDcsIC04LCAtNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTMsIC03LCA2LCA2LCAtMTIsIC0zLCAxLCAtMywgLTEsIC02LCAtOSwgLTIsIC0xMCwgLTEwLCAtNywgLTEsIC0zLCAtMTAsIC02LCAtOCwgNiwgMCwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTMsIC00LCAtMywgMSwgLTE0LCA2LCA2LCAtNSwgLTEsIC02LCAtNywgLTQsIC01LCAtMTMsIC00LCAtNSwgLTYsIC0xNCwgLTksIC02LCAwLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTYsIC0zLCAtNSwgLTksIC01LCAtNSwgLTUsIC01LCAtNSwgLTYsIC01LCAtNSwgLTgsIC01LCAtMywgLTQsIC0xMSwgLTcsIC01LCAtNSwgLTUsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAxXV07XG4gICAgICAgIHRoaXMuUEFNNzAgPSBbWzUsIC00LCAtMiwgLTEsIC00LCAtMiwgLTEsIDAsIC00LCAtMiwgLTQsIC00LCAtMywgLTYsIDAsIDEsIDEsIC05LCAtNSwgLTEsIC0xLCAtMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIDgsIC0zLCAtNiwgLTUsIDAsIC01LCAtNiwgMCwgLTMsIC02LCAyLCAtMiwgLTcsIC0yLCAtMSwgLTQsIDAsIC03LCAtNSwgLTQsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIDYsIDMsIC03LCAtMSwgMCwgLTEsIDEsIC0zLCAtNSwgMCwgLTUsIC02LCAtMywgMSwgMCwgLTYsIC0zLCAtNSwgNSwgLTEsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNiwgMywgNiwgLTksIDAsIDMsIC0xLCAtMSwgLTUsIC04LCAtMiwgLTcsIC0xMCwgLTQsIC0xLCAtMiwgLTEwLCAtNywgLTUsIDUsIDIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAtNSwgLTcsIC05LCA5LCAtOSwgLTksIC02LCAtNSwgLTQsIC0xMCwgLTksIC05LCAtOCwgLTUsIC0xLCAtNSwgLTExLCAtMiwgLTQsIC04LCAtOSwgLTYsIC0xMV0sXG4gICAgICAgICAgICBbLTIsIDAsIC0xLCAwLCAtOSwgNywgMiwgLTQsIDIsIC01LCAtMywgLTEsIC0yLCAtOSwgLTEsIC0zLCAtMywgLTgsIC04LCAtNCwgLTEsIDUsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNSwgMCwgMywgLTksIDIsIDYsIC0yLCAtMiwgLTQsIC02LCAtMiwgLTQsIC05LCAtMywgLTIsIC0zLCAtMTEsIC02LCAtNCwgMiwgNSwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbMCwgLTYsIC0xLCAtMSwgLTYsIC00LCAtMiwgNiwgLTYsIC02LCAtNywgLTUsIC02LCAtNywgLTMsIDAsIC0zLCAtMTAsIC05LCAtMywgLTEsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNCwgMCwgMSwgLTEsIC01LCAyLCAtMiwgLTYsIDgsIC02LCAtNCwgLTMsIC02LCAtNCwgLTIsIC0zLCAtNCwgLTUsIC0xLCAtNCwgMCwgMSwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTUsIC00LCAtNSwgLTQsIC02LCAtNiwgNywgMSwgLTQsIDEsIDAsIC01LCAtNCwgLTEsIC05LCAtNCwgMywgLTQsIC00LCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNCwgLTYsIC01LCAtOCwgLTEwLCAtMywgLTYsIC03LCAtNCwgMSwgNiwgLTUsIDIsIC0xLCAtNSwgLTYsIC00LCAtNCwgLTQsIDAsIC02LCAtNCwgLTQsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIDIsIDAsIC0yLCAtOSwgLTEsIC0yLCAtNSwgLTMsIC00LCAtNSwgNiwgMCwgLTksIC00LCAtMiwgLTEsIC03LCAtNywgLTYsIC0xLCAtMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTMsIC0yLCAtNSwgLTcsIC05LCAtMiwgLTQsIC02LCAtNiwgMSwgMiwgMCwgMTAsIC0yLCAtNSwgLTMsIC0yLCAtOCwgLTcsIDAsIC02LCAtMywgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTYsIC03LCAtNiwgLTEwLCAtOCwgLTksIC05LCAtNywgLTQsIDAsIC0xLCAtOSwgLTIsIDgsIC03LCAtNCwgLTYsIC0yLCA0LCAtNSwgLTcsIC05LCAtNSwgLTExXSxcbiAgICAgICAgICAgIFswLCAtMiwgLTMsIC00LCAtNSwgLTEsIC0zLCAtMywgLTIsIC01LCAtNSwgLTQsIC01LCAtNywgNywgMCwgLTIsIC05LCAtOSwgLTMsIC00LCAtMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIC0xLCAtMSwgLTMsIC0yLCAwLCAtMywgLTQsIC02LCAtMiwgLTMsIC00LCAwLCA1LCAyLCAtMywgLTUsIC0zLCAwLCAtMiwgLTEsIC0xMV0sXG4gICAgICAgICAgICBbMSwgLTQsIDAsIC0yLCAtNSwgLTMsIC0zLCAtMywgLTQsIC0xLCAtNCwgLTEsIC0yLCAtNiwgLTIsIDIsIDYsIC04LCAtNCwgLTEsIC0xLCAtMywgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTksIDAsIC02LCAtMTAsIC0xMSwgLTgsIC0xMSwgLTEwLCAtNSwgLTksIC00LCAtNywgLTgsIC0yLCAtOSwgLTMsIC04LCAxMywgLTMsIC0xMCwgLTcsIC0xMCwgLTcsIC0xMV0sXG4gICAgICAgICAgICBbLTUsIC03LCAtMywgLTcsIC0yLCAtOCwgLTYsIC05LCAtMSwgLTQsIC00LCAtNywgLTcsIDQsIC05LCAtNSwgLTQsIC0zLCA5LCAtNSwgLTQsIC03LCAtNSwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTUsIC01LCAtNSwgLTQsIC00LCAtNCwgLTMsIC00LCAzLCAwLCAtNiwgMCwgLTUsIC0zLCAtMywgLTEsIC0xMCwgLTUsIDYsIC01LCAtNCwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC00LCA1LCA1LCAtOCwgLTEsIDIsIC0xLCAwLCAtNCwgLTYsIC0xLCAtNiwgLTcsIC00LCAwLCAtMSwgLTcsIC00LCAtNSwgNSwgMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMSwgMiwgLTksIDUsIDUsIC0zLCAxLCAtNCwgLTQsIC0yLCAtMywgLTksIC0yLCAtMiwgLTMsIC0xMCwgLTcsIC00LCAxLCA1LCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0yLCAtMywgLTYsIC0yLCAtMywgLTMsIC0zLCAtMywgLTQsIC0zLCAtMywgLTUsIC0zLCAtMSwgLTIsIC03LCAtNSwgLTIsIC0yLCAtMywgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIDFdXTtcbiAgICAgICAgdGhpcy5QQU0yNTAgPSBbWzIsIC0yLCAwLCAwLCAtMiwgMCwgMCwgMSwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMywgMSwgMSwgMSwgLTYsIC0zLCAwLCAwLCAwLCAwLCAtOF0sXG4gICAgICAgICAgICBbLTIsIDYsIDAsIC0xLCAtNCwgMSwgLTEsIC0zLCAyLCAtMiwgLTMsIDMsIDAsIC00LCAwLCAwLCAtMSwgMiwgLTQsIC0yLCAtMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAwLCAyLCAyLCAtNCwgMSwgMSwgMCwgMiwgLTIsIC0zLCAxLCAtMiwgLTMsIDAsIDEsIDAsIC00LCAtMiwgLTIsIDIsIDEsIDAsIC04XSxcbiAgICAgICAgICAgIFswLCAtMSwgMiwgNCwgLTUsIDIsIDMsIDEsIDEsIC0yLCAtNCwgMCwgLTMsIC02LCAtMSwgMCwgMCwgLTcsIC00LCAtMiwgMywgMywgLTEsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC00LCAtNSwgMTIsIC01LCAtNSwgLTMsIC0zLCAtMiwgLTYsIC01LCAtNSwgLTQsIC0zLCAwLCAtMiwgLTgsIDAsIC0yLCAtNCwgLTUsIC0zLCAtOF0sXG4gICAgICAgICAgICBbMCwgMSwgMSwgMiwgLTUsIDQsIDIsIC0xLCAzLCAtMiwgLTIsIDEsIC0xLCAtNSwgMCwgLTEsIC0xLCAtNSwgLTQsIC0yLCAxLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAxLCAzLCAtNSwgMiwgNCwgMCwgMSwgLTIsIC0zLCAwLCAtMiwgLTUsIC0xLCAwLCAwLCAtNywgLTQsIC0yLCAzLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzEsIC0zLCAwLCAxLCAtMywgLTEsIDAsIDUsIC0yLCAtMywgLTQsIC0yLCAtMywgLTUsIDAsIDEsIDAsIC03LCAtNSwgLTEsIDAsIDAsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIDIsIDIsIDEsIC0zLCAzLCAxLCAtMiwgNiwgLTIsIC0yLCAwLCAtMiwgLTIsIDAsIC0xLCAtMSwgLTMsIDAsIC0yLCAxLCAyLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMywgLTIsIDUsIDIsIC0yLCAyLCAxLCAtMiwgLTEsIDAsIC01LCAtMSwgNCwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTMsIC00LCAtNiwgLTIsIC0zLCAtNCwgLTIsIDIsIDYsIC0zLCA0LCAyLCAtMywgLTMsIC0yLCAtMiwgLTEsIDIsIC0zLCAtMywgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMywgMSwgMCwgLTUsIDEsIDAsIC0yLCAwLCAtMiwgLTMsIDUsIDAsIC01LCAtMSwgMCwgMCwgLTMsIC00LCAtMiwgMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMCwgLTIsIC0zLCAtNSwgLTEsIC0yLCAtMywgLTIsIDIsIDQsIDAsIDYsIDAsIC0yLCAtMiwgLTEsIC00LCAtMiwgMiwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTMsIC02LCAtNCwgLTUsIC01LCAtNSwgLTIsIDEsIDIsIC01LCAwLCA5LCAtNSwgLTMsIC0zLCAwLCA3LCAtMSwgLTQsIC01LCAtMiwgLThdLFxuICAgICAgICAgICAgWzEsIDAsIDAsIC0xLCAtMywgMCwgLTEsIDAsIDAsIC0yLCAtMywgLTEsIC0yLCAtNSwgNiwgMSwgMCwgLTYsIC01LCAtMSwgLTEsIDAsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMSwgMCwgMSwgMCwgMCwgLTEsIDAsIDEsIC0xLCAtMSwgLTMsIDAsIC0yLCAtMywgMSwgMiwgMSwgLTIsIC0zLCAtMSwgMCwgMCwgMCwgLThdLFxuICAgICAgICAgICAgWzEsIC0xLCAwLCAwLCAtMiwgLTEsIDAsIDAsIC0xLCAwLCAtMiwgMCwgLTEsIC0zLCAwLCAxLCAzLCAtNSwgLTMsIDAsIDAsIC0xLCAwLCAtOF0sXG4gICAgICAgICAgICBbLTYsIDIsIC00LCAtNywgLTgsIC01LCAtNywgLTcsIC0zLCAtNSwgLTIsIC0zLCAtNCwgMCwgLTYsIC0yLCAtNSwgMTcsIDAsIC02LCAtNSwgLTYsIC00LCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtMiwgLTQsIDAsIC00LCAtNCwgLTUsIDAsIC0xLCAtMSwgLTQsIC0yLCA3LCAtNSwgLTMsIC0zLCAwLCAxMCwgLTIsIC0zLCAtNCwgLTIsIC04XSxcbiAgICAgICAgICAgIFswLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMSwgLTIsIDQsIDIsIC0yLCAyLCAtMSwgLTEsIC0xLCAwLCAtNiwgLTIsIDQsIC0yLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMSwgMiwgMywgLTQsIDEsIDMsIDAsIDEsIC0yLCAtMywgMSwgLTIsIC00LCAtMSwgMCwgMCwgLTUsIC0zLCAtMiwgMywgMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAwLCAxLCAzLCAtNSwgMywgMywgMCwgMiwgLTIsIC0zLCAwLCAtMiwgLTUsIDAsIDAsIC0xLCAtNiwgLTQsIC0yLCAyLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAwLCAwLCAtNCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAxXV07XG4gICAgICAgIHRoaXMuU0NITkVJREVSID0gW1sxMS42LCAtMi43LCA5LjcsIC0xLjcsIC0yLjcsIC02LjQsIC0zLjksIC01LjYsIDUuMSwgLTUuMCwgMy42LCAtNC4yLCAtNi4zLCAtMTMuMCwgLTcuMSwgLTExLjUsIDAuNCwgLTYuMCwgLTEuOSwgLTUuMywgLTguNSwgLTExLjIsIC04LjksIC0xMC44LCAyLjEsIDAuMCwgMS40LCAwLjIsIC0xMC4yLCAtMTMuNSwgLTEzLjAsIC0xMi41LCAtMi42LCAtOC41LCAtNS4wLCAtOC4xLCAtNi4zLCAtOS45LCAtNy41LCAtOS4wLCAtNy4xLCAtMTAuMiwgLTguMiwgLTkuMiwgLTguMiwgLTEyLjUsIC0xMS4xLCAtMTEuNCwgLTUwLjAsIC0xNC44LCAtNTAuMCwgLTEzLjgsIC03LjMsIC0xMC4xLCAtOC40LCAtOS4xLCAtNTAuMCwgLTEzLjAsIC0xMy41LCAtMTIuNCwgLTEwLjcsIC0xOC4xLCAtMTEuOCwgLTE3LjIsXSxcbiAgICAgICAgICAgIFstMi43LCAxMy4wLCAtMy4zLCAxMC45LCAtMy41LCAtMC40LCAtMy4zLCAtMS44LCAtNS40LCA0LjYsIC01LjUsIDMuMCwgLTEwLjIsIC03LjksIC05LjksIC05LjYsIC01LjAsIDAuNSwgLTUuNSwgLTEuMCwgLTEwLjMsIC04LjEsIC05LjQsIC05LjYsIC04LjEsIC01LjAsIC03LjMsIC02LjMsIC0xMy40LCAtMTEuMywgLTE0LjQsIC0xMi45LCAtNi4zLCAwLjgsIC02LjQsIC0xLjEsIC03LjQsIC01LjAsIC02LjIsIC02LjUsIC01LjYsIC0xLjYsIC00LjcsIC0zLjAsIC0xMC44LCAtOC43LCAtMTEuOSwgLTEwLjAsIC01MC4wLCAtNi4yLCAtNTAuMCwgLTcuNSwgLTYuMywgLTQuMywgLTYuMiwgLTUuNCwgLTUwLjAsIC03LjAsIC0xNi4zLCAtOC4yLCAtMTMuMiwgLTEyLjMsIC0xMy4xLCAtMTMuMyxdLFxuICAgICAgICAgICAgWzkuNywgLTMuMywgMTEuNiwgLTIuOCwgLTQuNSwgLTYuNywgLTMuMSwgLTYuOSwgMy4zLCAtNS41LCA0LjgsIC01LjEsIC04LjksIC0xMy4yLCAtNS43LCAtMTIuNiwgLTEuNSwgLTYuMSwgLTAuNiwgLTYuMSwgLTEwLjAsIC0xMS44LCAtOC42LCAtMTEuOSwgMS4yLCAwLjUsIDIuMiwgMC4xLCAtMTEuOCwgLTE0LjAsIC0xMS45LCAtMTMuNCwgLTQuOSwgLTkuMSwgLTMuNCwgLTguOSwgLTguMCwgLTEwLjAsIC03LjIsIC0xMC4wLCAtOS4xLCAtMTAuMiwgLTcuMSwgLTkuOSwgLTEwLjEsIC0xMy4wLCAtMTAuNiwgLTEyLjcsIC01MC4wLCAtMTQuOSwgLTUwLjAsIC0xNC40LCAtOC45LCAtMTAuOCwgLTguOSwgLTEwLjQsIC01MC4wLCAtMTMuMSwgLTExLjgsIC0xMy4wLCAtMTIuNCwgLTE5LjQsIC0xMS41LCAtMTcuOCxdLFxuICAgICAgICAgICAgWy0xLjcsIDEwLjksIC0yLjgsIDEyLjksIC0yLjcsIC0yLjIsIC0yLjgsIDAuMiwgLTQuOCwgMi45LCAtNS4yLCA1LjIsIC05LjEsIC05LjUsIC05LjAsIC03LjAsIC00LjAsIC0xLjAsIC01LjAsIDEuMCwgLTkuMCwgLTguOCwgLTguOSwgLTcuNywgLTcuMCwgLTYuOCwgLTcuMSwgLTQuMywgLTEyLjQsIC0xMi45LCAtMTMuOSwgLTEwLjAsIC00LjksIC0wLjcsIC01LjYsIDEuNCwgLTYuMCwgLTYuNSwgLTYuMiwgLTQuOCwgLTUuMSwgLTMuMiwgLTUuMCwgLTEuMiwgLTkuOCwgLTkuOSwgLTExLjMsIC04LjIsIC01MC4wLCAtNy42LCAtNTAuMCwgLTUuMSwgLTUuNSwgLTUuOCwgLTUuOSwgLTQuMiwgLTUwLjAsIC04LjMsIC0xNS41LCAtNS45LCAtMTEuNiwgLTE0LjIsIC0xMi4wLCAtMTEuNixdLFxuICAgICAgICAgICAgWy0yLjcsIC0zLjUsIC00LjUsIC0yLjcsIDExLjcsIDkuMCwgMTAuNiwgOS42LCAtMy4yLCAtMC43LCAtNS4xLCAtMC40LCAwLjcsIC00LjYsIC0wLjQsIC0zLjYsIC00LjgsIC04LjksIC02LjUsIC03LjgsIC0xLjQsIC00LjEsIC0yLjksIC0zLjMsIC04LjAsIC05LjEsIC04LjAsIC04LjIsIC02LjAsIC05LjMsIC03LjcsIC04LjUsIC02LjQsIC0xMC4xLCAtNy41LCAtOC42LCAyLjgsIC0wLjcsIDAuOSwgMC4xLCAtNS45LCAtNy4zLCAtNi41LCAtNi41LCAtMC40LCAtMy45LCAtMi42LCAtMy4xLCAtNTAuMCwgLTE0LjYsIC01MC4wLCAtMTIuNiwgMi45LCAwLjEsIDEuOCwgMS4wLCAtNTAuMCwgLTkuMiwgLTEzLjYsIC03LjcsIC00LjgsIC0xMi4yLCAtNi4yLCAtMTEuMCxdLFxuICAgICAgICAgICAgWy02LjQsIC0wLjQsIC02LjcsIC0yLjIsIDkuMCwgMTIuMywgOS44LCA5LjYsIC03LjEsIDIuNCwgLTcuMiwgMC4zLCAtMi45LCAtMS4yLCAtMy4wLCAtMy4zLCAtNy42LCAtNi43LCAtOC4xLCAtNy45LCAtNC45LCAtMS45LCAtNC41LCAtMy44LCAtOS41LCAtNy44LCAtOS4zLCAtOC45LCAtOS40LCAtNy4xLCAtOS4wLCAtOS4wLCAtOS40LCAtNy41LCAtOS4zLCAtOS4yLCAtMC43LCAyLjYsIDAuMiwgLTAuMSwgLTguMCwgLTQuNiwgLTcuNywgLTYuMSwgLTMuNiwgLTEuMCwgLTQuMSwgLTMuMSwgLTUwLjAsIC0xMS42LCAtNTAuMCwgLTExLjYsIDAuMiwgMi4zLCAwLjQsIDAuNSwgLTUwLjAsIC02LjUsIC0xNS4zLCAtNy44LCAtOC40LCAtOS41LCAtOC4zLCAtMTEuMSxdLFxuICAgICAgICAgICAgWy0zLjksIC0zLjMsIC0zLjEsIC0yLjgsIDEwLjYsIDkuOCwgMTIuMiwgOS44LCAtNC45LCAwLjEsIC0zLjYsIC0wLjIsIC0xLjcsIC00LjEsIDAuOSwgLTMuNSwgLTUuOSwgLTguOSwgLTUuNiwgLTguNSwgLTMuOSwgLTMuOSwgLTIuMiwgLTQuNSwgLTcuMywgLTcuNSwgLTYuNCwgLTguNSwgLTcuMSwgLTguMiwgLTYuNywgLTcuOCwgLTcuOSwgLTkuMSwgLTcuMSwgLTkuNCwgMC45LCAtMC4yLCAyLjUsIC0wLjMsIC02LjksIC02LjUsIC01LjUsIC02LjgsIC0xLjcsIC0zLjQsIC0xLjcsIC0yLjgsIC01MC4wLCAtMTMuMCwgLTUwLjAsIC0xMS41LCAxLjUsIDAuNywgMi43LCAwLjYsIC01MC4wLCAtOC45LCAtMTIuMSwgLTcuNCwgLTYuMSwgLTExLjUsIC01LjQsIC0xMC40LF0sXG4gICAgICAgICAgICBbLTUuNiwgLTEuOCwgLTYuOSwgMC4yLCA5LjYsIDkuNiwgOS44LCAxMS42LCAtNi42LCAwLjksIC03LjIsIDIuNSwgLTIuMywgLTMuNCwgLTIuMywgLTAuNiwgLTYuNSwgLTguMiwgLTguMCwgLTYuMywgLTMuNywgLTMuNSwgLTMuOSwgLTEuNiwgLTkuOSwgLTguOSwgLTkuNiwgLTcuMCwgLTguNiwgLTguOSwgLTguOCwgLTYuOCwgLTguNiwgLTguMiwgLTguOCwgLTYuOCwgMC4zLCAwLjEsIDAuMiwgMi40LCAtNy40LCAtNi4yLCAtNi45LCAtNC40LCAtMi45LCAtMi45LCAtMy41LCAtMC45LCAtNTAuMCwgLTEyLjIsIC01MC4wLCAtMTAuMSwgMS4yLCAwLjYsIDEuMiwgMi40LCAtNTAuMCwgLTcuNiwgLTE2LjEsIC01LjgsIC03LjIsIC0xMC44LCAtNy40LCAtOS4wLF0sXG4gICAgICAgICAgICBbNS4xLCAtNS40LCAzLjMsIC00LjgsIC0zLjIsIC03LjEsIC00LjksIC02LjYsIDEzLjMsIC0yLjgsIDExLjIsIC0xLjksIC01LjcsIC0xMi41LCAtNy4yLCAtMTEuNiwgLTAuNywgLTQuOCwgLTMuMSwgLTQuMywgLTEwLjAsIC0xMS42LCAtOC44LCAtMTEuNywgMTAuNSwgNy43LCA5LjEsIDguNSwgLTkuOCwgLTEyLjcsIC0xMS43LCAtMTEuOCwgLTYuMywgLTExLjQsIC04LjgsIC0xMS4wLCAtNy41LCAtMTAuMywgLTguMywgLTkuOSwgLTEuOSwgLTYuNywgLTQuMSwgLTYuNCwgLTcuOSwgLTEyLjUsIC0xMS40LCAtMTEuNywgLTUwLjAsIC0xNC4wLCAtNTAuMCwgLTEzLjIsIC04LjUsIC0xMC40LCAtOS4xLCAtOS42LCAtNTAuMCwgLTkuOCwgLTcuNywgLTguOCwgLTEwLjMsIC0xNy45LCAtMTEuOCwgLTE2LjAsXSxcbiAgICAgICAgICAgIFstNS4wLCA0LjYsIC01LjUsIDIuOSwgLTAuNywgMi40LCAwLjEsIDAuOSwgLTIuOCwgMTIuOCwgLTIuNiwgMTEuMCwgLTguNCwgLTYuMywgLTguMywgLTcuNywgLTYuMSwgLTIuOSwgLTYuNSwgLTQuMiwgLTguNSwgLTUuOSwgLTcuNSwgLTcuNywgLTUuNSwgLTIuNCwgLTUuNSwgLTQuMSwgLTEyLjksIC0xMC4zLCAtMTIuNywgLTExLjMsIC03LjQsIC0zLjEsIC03LjQsIC00LjksIC00LjQsIC0xLjgsIC0zLjUsIC0zLjUsIC0xLjYsIDMuMCwgLTAuOCwgMC45LCAtOC40LCAtNi4zLCAtOS42LCAtNy4zLCAtNTAuMCwgLTkuMCwgLTUwLjAsIC05LjcsIC0yLjMsIC0wLjIsIC0xLjIsIC0xLjUsIC01MC4wLCAtMC43LCAtMTMuMywgLTIuMCwgLTExLjgsIC0xMS45LCAtMTIuMywgLTEyLjcsXSxcbiAgICAgICAgICAgIFszLjYsIC01LjUsIDQuOCwgLTUuMiwgLTUuMSwgLTcuMiwgLTMuNiwgLTcuMiwgMTEuMiwgLTIuNiwgMTMuNCwgLTIuMSwgLTcuNywgLTEyLjUsIC01LjMsIC0xMS45LCAtMi4yLCAtNC40LCAtMS45LCAtNC44LCAtMTAuMiwgLTExLjUsIC04LjEsIC0xMi4wLCA5LjMsIDguMiwgMTAuMCwgOC4wLCAtMTAuOCwgLTExLjksIC0xMC43LCAtMTIuNCwgLTguMiwgLTExLjgsIC02LjksIC0xMS41LCAtOC40LCAtOS45LCAtNy4xLCAtMTAuNiwgLTQuNywgLTYuOCwgLTEuMiwgLTcuMCwgLTkuOCwgLTExLjYsIC05LjYsIC0xMi4xLCAtNTAuMCwgLTE0LjEsIC01MC4wLCAtMTIuNywgLTEwLjAsIC0xMC44LCAtOC44LCAtMTAuNSwgLTUwLjAsIC05LjIsIC00LjIsIC05LjMsIC0xMS4wLCAtMTguMiwgLTExLjEsIC0xNi4xLF0sXG4gICAgICAgICAgICBbLTQuMiwgMy4wLCAtNS4xLCA1LjIsIC0wLjQsIDAuMywgLTAuMiwgMi41LCAtMS45LCAxMS4wLCAtMi4xLCAxMy4yLCAtNy42LCAtOC41LCAtOC4wLCAtNS4zLCAtNS42LCAtNC41LCAtNi44LCAtMi40LCAtNy44LCAtNy45LCAtNy45LCAtNi4yLCAtNS43LCAtNS4xLCAtNS40LCAtMi4xLCAtMTIuNCwgLTEyLjMsIC0xMy4xLCAtMTAuMSwgLTYuNiwgLTQuNCwgLTYuOSwgLTIuNiwgLTMuNiwgLTMuOCwgLTMuNywgLTIuMCwgLTEuNCwgMC44LCAtMC45LCAzLjAsIC04LjIsIC04LjEsIC05LjIsIC01LjgsIC01MC4wLCAtMTAuMSwgLTUwLjAsIC03LjQsIC0xLjcsIC0yLjAsIC0xLjUsIC0wLjUsIC01MC4wLCAtMi4xLCAtMTIuNiwgLTAuNCwgLTExLjYsIC0xMy45LCAtMTEuNCwgLTExLjEsXSxcbiAgICAgICAgICAgIFstNi4zLCAtMTAuMiwgLTguOSwgLTkuMSwgMC43LCAtMi45LCAtMS43LCAtMi4zLCAtNS43LCAtOC40LCAtNy43LCAtNy42LCAxMy4yLCA5LjYsIDMuNSwgOS43LCAtOC43LCAtMTIuNCwgLTEwLjcsIC0xMC43LCAtNy44LCAtMTAuMiwgLTguOCwgLTkuNiwgLTkuNSwgLTExLjksIC0xMC45LCAtMTAuNSwgMi4zLCAtMC40LCAtMC4yLCAtMC4zLCAtOS43LCAtMTUuNSwgLTExLjQsIC0xMy43LCAtMy4wLCAtNi40LCAtNC4xLCAtNS40LCAtOS42LCAtMTEuOSwgLTEwLjUsIC0xMS44LCA2LjIsIDMuMywgMy43LCAzLjYsIC01MC4wLCAtMTMuNiwgLTUwLjAsIC0xMS45LCAtNS42LCAtOC44LCAtNy4yLCAtOC45LCAtNTAuMCwgLTEyLjQsIC0xNC4xLCAtMTEuNiwgMi44LCAtNi40LCAwLjUsIC01LjIsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTcuOSwgLTEzLjIsIC05LjUsIC00LjYsIC0xLjIsIC00LjEsIC0zLjQsIC0xMi41LCAtNi4zLCAtMTIuNSwgLTguNSwgOS42LCAxMi43LCAwLjIsIDEwLjUsIC0xMi40LCAtMTEuNiwgLTEzLjIsIC0xMi4wLCAtMTIuNCwgLTEwLjEsIC0xMS42LCAtMTIuMCwgLTE1LjEsIC0xMy4xLCAtMTQuMywgLTEzLjQsIC0xLjQsIDEuNCwgLTEuNiwgLTAuNSwgLTE0LjksIC0xNC4zLCAtMTUuMiwgLTE2LjgsIC03LjcsIC00LjcsIC02LjMsIC02LjYsIC0xNC42LCAtMTAuOCwgLTEyLjgsIC0xMy4wLCAyLjMsIDYuMCwgMi41LCAzLjYsIC01MC4wLCAtMTEuMiwgLTUwLjAsIC0xMS45LCAtMTAuNSwgLTkuMiwgLTEwLjUsIC0xMC41LCAtNTAuMCwgLTEwLjMsIC0xNi4yLCAtMTEuMywgLTEuNywgLTMuNywgLTIuNSwgLTUuNCxdLFxuICAgICAgICAgICAgWy03LjEsIC05LjksIC01LjcsIC05LjAsIC0wLjQsIC0zLjAsIDAuOSwgLTIuMywgLTcuMiwgLTguMywgLTUuMywgLTguMCwgMy41LCAwLjIsIDE0LjMsIDEuMCwgLTcuMywgLTExLjIsIC02LjksIC05LjcsIC04LjUsIC0xMC4yLCAtNy43LCAtOS44LCAtMTAuMCwgLTEwLjQsIC04LjQsIC0xMC4yLCAxLjAsIC0wLjYsIDEuNywgLTAuNSwgLTExLjEsIC0xNC44LCAtOS43LCAtMTQuNSwgLTMuNywgLTUuOCwgLTMuMSwgLTUuNiwgLTEwLjQsIC0xMS41LCAtOC4yLCAtMTEuMSwgMC42LCAtMS42LCAxLjYsIC0xLjEsIC01MC4wLCAtMTIuNCwgLTUwLjAsIC0xMS41LCAtNS41LCAtOC4wLCAtNC45LCAtNy4yLCAtNTAuMCwgLTEyLjQsIC0xMC4zLCAtMTEuNiwgMC43LCAtNi44LCAyLjQsIC02LjAsXSxcbiAgICAgICAgICAgIFstMTEuNSwgLTkuNiwgLTEyLjYsIC03LjAsIC0zLjYsIC0zLjMsIC0zLjUsIC0wLjYsIC0xMS42LCAtNy43LCAtMTEuOSwgLTUuMywgOS43LCAxMC41LCAxLjAsIDEyLjYsIC0xMi4wLCAtMTIuMiwgLTEyLjUsIC05LjcsIC0xMS4xLCAtMTEuMiwgLTExLjksIC05LjQsIC0xMi45LCAtMTQuMywgLTE0LjAsIC0xMS45LCAtMS4wLCAtMC40LCAtMS42LCAxLjIsIC0xMy45LCAtMTUuNCwgLTEzLjcsIC0xMi42LCAtNi4yLCAtNi43LCAtNi4zLCAtNC40LCAtMTMuMCwgLTEyLjIsIC0xMy4wLCAtMTAuNCwgMi45LCAzLjgsIDIuNSwgNS44LCAtNTAuMCwgLTEyLjUsIC01MC4wLCAtMTAuMiwgLTkuNiwgLTkuNywgLTkuNiwgLTguMywgLTUwLjAsIC0xMS42LCAtMTUuNCwgLTkuNCwgLTEuMSwgLTUuNCwgLTEuNiwgLTMuMyxdLFxuICAgICAgICAgICAgWzAuNCwgLTUuMCwgLTEuNSwgLTQuMCwgLTQuOCwgLTcuNiwgLTUuOSwgLTYuNSwgLTAuNywgLTYuMSwgLTIuMiwgLTUuNiwgLTguNywgLTEyLjQsIC03LjMsIC0xMi4wLCAxMi44LCAyLjMsIDEwLjIsIDMuMCwgMC4wLCAtMy40LCAtMC43LCAtMy4yLCAyLjUsIC0wLjgsIDAuOSwgMC4yLCAtMy4wLCAtNy4yLCAtNS43LCAtNi4xLCAtMC4yLCAtNi42LCAtMS44LCAtNi4wLCAtNS4zLCAtOC4yLCAtNS43LCAtNy42LCAtNi43LCAtOS42LCAtNy41LCAtOS4zLCAtNy4xLCAtMTAuNSwgLTkuNiwgLTkuNCwgLTUwLjAsIC04LjEsIC01MC4wLCAtNy4yLCAtNC4zLCAtNi44LCAtNS43LCAtNi4zLCAtNTAuMCwgLTkuNSwgLTkuNiwgLTguOSwgLTYuMiwgLTEyLjgsIC02LjgsIC0xMS44LF0sXG4gICAgICAgICAgICBbLTYuMCwgMC41LCAtNi4xLCAtMS4wLCAtOC45LCAtNi43LCAtOC45LCAtOC4yLCAtNC44LCAtMi45LCAtNC40LCAtNC41LCAtMTIuNCwgLTExLjYsIC0xMS4yLCAtMTIuMiwgMi4zLCAxNC42LCAxLjksIDEyLjksIC01LjUsIC0yLjYsIC00LjEsIC00LjcsIC0xLjIsIDMuMCwgLTEuMSwgMS42LCAtOC4wLCAtNC43LCAtOC43LCAtNi4wLCAtOC4yLCAtNC43LCAtNy44LCAtNi43LCAtMTAuMCwgLTguMywgLTguOSwgLTkuOSwgLTEwLjgsIC03LjEsIC0xMC4wLCAtOS4yLCAtMTEuNiwgLTEwLjEsIC0xMi4zLCAtMTEuOSwgLTUwLjAsIDIuMiwgLTUwLjAsIDAuOSwgLTcuOSwgLTUuOSwgLTcuNCwgLTYuOSwgLTUwLjAsIC00LjYsIC0xMS42LCAtNS42LCAtOS43LCAtNS45LCAtOS45LCAtNy4zLF0sXG4gICAgICAgICAgICBbLTEuOSwgLTUuNSwgLTAuNiwgLTUuMCwgLTYuNSwgLTguMSwgLTUuNiwgLTguMCwgLTMuMSwgLTYuNSwgLTEuOSwgLTYuOCwgLTEwLjcsIC0xMy4yLCAtNi45LCAtMTIuNSwgMTAuMiwgMS45LCAxMS45LCAyLjEsIC0yLjMsIC00LjEsIC0wLjUsIC00LjYsIC0wLjEsIC0wLjksIDIuNCwgLTAuOCwgLTUuMSwgLTYuOSwgLTQuOCwgLTYuNywgLTIuMywgLTcuMSwgLTAuOCwgLTcuMiwgLTcuMiwgLTguMCwgLTUuNiwgLTguNSwgLTkuNCwgLTkuNywgLTcuMiwgLTkuOCwgLTkuMiwgLTExLjEsIC05LjUsIC0xMC43LCAtNTAuMCwgLTguNywgLTUwLjAsIC04LjYsIC02LjEsIC03LjUsIC01LjUsIC03LjcsIC01MC4wLCAtMTAuNCwgLTcuNywgLTEwLjAsIC03LjMsIC0xMy42LCAtNi40LCAtMTMuMyxdLFxuICAgICAgICAgICAgWy01LjMsIC0xLjAsIC02LjEsIDEuMCwgLTcuOCwgLTcuOSwgLTguNSwgLTYuMywgLTQuMywgLTQuMiwgLTQuOCwgLTIuNCwgLTEwLjcsIC0xMi4wLCAtOS43LCAtOS43LCAzLjAsIDEyLjksIDIuMSwgMTQuNywgLTQuOSwgLTMuOCwgLTQuMCwgLTIuNCwgLTEuMCwgMC44LCAtMS4zLCAzLjQsIC03LjYsIC01LjcsIC04LjEsIC0zLjUsIC02LjgsIC01LjgsIC03LjIsIC00LjIsIC04LjksIC0xMC4yLCAtOC40LCAtOC4yLCAtOS45LCAtOC40LCAtOS43LCAtNi40LCAtMTEuMSwgLTExLjEsIC0xMS44LCAtMTAuMCwgLTUwLjAsIDAuNCwgLTUwLjAsIDIuNiwgLTcuMiwgLTcuMCwgLTcuNCwgLTUuMSwgLTUwLjAsIC01LjcsIC05LjgsIC0zLjIsIC04LjQsIC03LjQsIC04LjksIC01LjksXSxcbiAgICAgICAgICAgIFstOC41LCAtMTAuMywgLTEwLjAsIC05LjAsIC0xLjQsIC00LjksIC0zLjksIC0zLjcsIC0xMC4wLCAtOC41LCAtMTAuMiwgLTcuOCwgLTcuOCwgLTEyLjQsIC04LjUsIC0xMS4xLCAwLjAsIC01LjUsIC0yLjMsIC00LjksIDEyLjYsIDEwLjAsIDExLjEsIDEwLjUsIC02LjAsIC04LjMsIC02LjksIC03LjUsIC0yLjIsIC03LjQsIC01LjMsIC01LjksIC04LjksIC0xMi41LCAtOS40LCAtMTEuNiwgLTAuNywgLTMuOSwgLTIuMywgLTMuMCwgLTkuMSwgLTkuOCwgLTkuMiwgLTkuNSwgLTUuNiwgLTkuMCwgLTguMCwgLTguNSwgLTUwLjAsIC0xNS4zLCAtNTAuMCwgLTE0LjEsIDIuMywgLTEuNCwgMC4zLCAtMC41LCAtNTAuMCwgLTEzLjYsIC0xNC4zLCAtMTEuNSwgLTUuMywgLTEzLjcsIC02LjEsIC0xMi43LF0sXG4gICAgICAgICAgICBbLTExLjIsIC04LjEsIC0xMS44LCAtOC44LCAtNC4xLCAtMS45LCAtMy45LCAtMy41LCAtMTEuNiwgLTUuOSwgLTExLjUsIC03LjksIC0xMC4yLCAtMTAuMSwgLTEwLjIsIC0xMS4yLCAtMy40LCAtMi42LCAtNC4xLCAtMy44LCAxMC4wLCAxMy4xLCAxMC43LCAxMC42LCAtOC4xLCAtNS4yLCAtOC4wLCAtNi43LCAtNi4xLCAtMy43LCAtNy41LCAtNS42LCAtMTEuMSwgLTEwLjMsIC0xMC42LCAtMTEuOSwgLTMuMiwgLTEuMCwgLTIuMiwgLTIuOCwgLTEwLjUsIC04LjEsIC05LjQsIC05LjUsIC04LjMsIC02LjksIC05LjQsIC04LjgsIC01MC4wLCAtMTEuMywgLTUwLjAsIC0xMi44LCAtMC42LCAyLjIsIC0wLjMsIDAuMSwgLTUwLjAsIC0xMC4xLCAtMTcuNSwgLTExLjEsIC04LjYsIC05LjksIC04LjYsIC0xMS45LF0sXG4gICAgICAgICAgICBbLTguOSwgLTkuNCwgLTguNiwgLTguOSwgLTIuOSwgLTQuNSwgLTIuMiwgLTMuOSwgLTguOCwgLTcuNSwgLTguMSwgLTcuOSwgLTguOCwgLTExLjYsIC03LjcsIC0xMS45LCAtMC43LCAtNC4xLCAtMC41LCAtNC4wLCAxMS4xLCAxMC43LCAxMy4yLCAxMC40LCAtNS43LCAtNS44LCAtMy41LCAtNi4xLCAtMy42LCAtNi41LCAtMy4zLCAtNS41LCAtOS40LCAtMTEuMCwgLTguNywgLTExLjIsIC0xLjgsIC0yLjcsIDAuNywgLTMuMCwgLTkuMSwgLTguMiwgLTcuMywgLTkuNCwgLTcuMiwgLTguMiwgLTcuMiwgLTguMiwgLTUwLjAsIC0xMy4yLCAtNTAuMCwgLTEzLjMsIDAuNSwgLTAuOSwgMS44LCAtMC42LCAtNTAuMCwgLTExLjQsIC0xMS4xLCAtMTAuNSwgLTYuMSwgLTEyLjksIC01LjAsIC0xMS45LF0sXG4gICAgICAgICAgICBbLTEwLjgsIC05LjYsIC0xMS45LCAtNy43LCAtMy4zLCAtMy44LCAtNC41LCAtMS42LCAtMTEuNywgLTcuNywgLTEyLjAsIC02LjIsIC05LjYsIC0xMi4wLCAtOS44LCAtOS40LCAtMy4yLCAtNC43LCAtNC42LCAtMi40LCAxMC41LCAxMC42LCAxMC40LCAxMi42LCAtOC4yLCAtNy45LCAtOS4wLCAtNC43LCAtNi4xLCAtNi4wLCAtNy41LCAtMi45LCAtMTAuOSwgLTEyLjIsIC0xMS4yLCAtMTAuOSwgLTIuNCwgLTIuOSwgLTIuNywgLTAuOSwgLTEwLjQsIC05LjcsIC0xMC4yLCAtOC4wLCAtOC40LCAtOS4xLCAtOS4zLCAtNi41LCAtNTAuMCwgLTEzLjMsIC01MC4wLCAtMTEuMCwgLTAuMCwgLTAuNCwgLTAuNCwgMi4zLCAtNTAuMCwgLTEwLjksIC0xNy4yLCAtOC4zLCAtOC4zLCAtMTIuNywgLTcuOCwgLTkuMyxdLFxuICAgICAgICAgICAgWzIuMSwgLTguMSwgMS4yLCAtNy4wLCAtOC4wLCAtOS41LCAtNy4zLCAtOS45LCAxMC41LCAtNS41LCA5LjMsIC01LjcsIC05LjUsIC0xNS4xLCAtMTAuMCwgLTEyLjksIDIuNSwgLTEuMiwgLTAuMSwgLTEuMCwgLTYuMCwgLTguMSwgLTUuNywgLTguMiwgMTMuOCwgMTEuMywgMTEuOCwgMTIuMSwgLTYuMCwgLTkuMSwgLTkuMCwgLTkuNSwgLTguOSwgLTEzLjQsIC0xMC4wLCAtMTMuMSwgLTkuOSwgLTExLjcsIC05LjgsIC0xMi44LCAtNS45LCAtOS40LCAtNi41LCAtOC4xLCAtMTAuNywgLTE0LjAsIC0xMy4zLCAtMTMuOSwgLTUwLjAsIC0xMS45LCAtNTAuMCwgLTkuNywgLTguOSwgLTEwLjgsIC05LjAsIC0xMS4xLCAtNTAuMCwgLTYuNSwgLTUuMywgLTYuMywgLTEwLjUsIC0xNi4yLCAtMTAuNCwgLTE1LjIsXSxcbiAgICAgICAgICAgIFswLjAsIC01LjAsIDAuNSwgLTYuOCwgLTkuMSwgLTcuOCwgLTcuNSwgLTguOSwgNy43LCAtMi40LCA4LjIsIC01LjEsIC0xMS45LCAtMTMuMSwgLTEwLjQsIC0xNC4zLCAtMC44LCAzLjAsIC0wLjksIDAuOCwgLTguMywgLTUuMiwgLTUuOCwgLTcuOSwgMTEuMywgMTUuMCwgMTEuMiwgMTIuOCwgLTkuNywgLTUuMywgLTkuMiwgLTcuOCwgLTExLjcsIC0xMC42LCAtMTAuMSwgLTEyLjIsIC0xMS43LCAtOC44LCAtOC45LCAtMTEuOCwgLTkuMywgLTUuMCwgLTguMCwgLTguMiwgLTEzLjYsIC0xMS40LCAtMTIuOCwgLTEzLjAsIC01MC4wLCAtNy4yLCAtNTAuMCwgLTguNCwgLTExLjAsIC03LjcsIC04LjcsIC0xMC4yLCAtNTAuMCwgLTEuNSwgLTcuMSwgLTQuOSwgLTExLjIsIC0xMS42LCAtMTEuNiwgLTE1LjAsXSxcbiAgICAgICAgICAgIFsxLjQsIC03LjMsIDIuMiwgLTcuMSwgLTguMCwgLTkuMywgLTYuNCwgLTkuNiwgOS4xLCAtNS41LCAxMC4wLCAtNS40LCAtMTAuOSwgLTE0LjMsIC04LjQsIC0xNC4wLCAwLjksIC0xLjEsIDIuNCwgLTEuMywgLTYuOSwgLTguMCwgLTMuNSwgLTkuMCwgMTEuOCwgMTEuMiwgMTMuNCwgMTEuNCwgLTcuMywgLTguOCwgLTYuNSwgLTguNSwgLTEwLjAsIC0xMi41LCAtNy44LCAtMTIuNSwgLTkuNiwgLTExLjAsIC03LjEsIC0xMC43LCAtNy45LCAtOC4wLCAtNC4zLCAtOS40LCAtMTEuNCwgLTEyLjMsIC0xMC45LCAtMTIuOSwgLTUwLjAsIC0xMS44LCAtNTAuMCwgLTExLjIsIC05LjQsIC05LjgsIC03LjMsIC0xMC41LCAtNTAuMCwgLTYuMiwgLTIuMiwgLTYuNywgLTkuOCwgLTE1LjIsIC04LjUsIC0xNC45LF0sXG4gICAgICAgICAgICBbMC4yLCAtNi4zLCAwLjEsIC00LjMsIC04LjIsIC04LjksIC04LjUsIC03LjAsIDguNSwgLTQuMSwgOC4wLCAtMi4xLCAtMTAuNSwgLTEzLjQsIC0xMC4yLCAtMTEuOSwgMC4yLCAxLjYsIC0wLjgsIDMuNCwgLTcuNSwgLTYuNywgLTYuMSwgLTQuNywgMTIuMSwgMTIuOCwgMTEuNCwgMTQuNywgLTguNywgLTcuNCwgLTkuNCwgLTUuMywgLTkuOSwgLTExLjgsIC0xMC41LCAtMTAuMywgLTkuOSwgLTEwLjEsIC05LjMsIC05LjMsIC04LjEsIC03LjIsIC04LjAsIC01LjIsIC0xMi4wLCAtMTIuMSwgLTEyLjYsIC0xMC45LCAtNTAuMCwgLTcuOSwgLTUwLjAsIC01LjMsIC05LjMsIC04LjgsIC04LjksIC03LjAsIC01MC4wLCAtMy42LCAtNy4xLCAtMS4yLCAtMTAuMiwgLTEyLjcsIC05LjksIC0xMS4wLF0sXG4gICAgICAgICAgICBbLTEwLjIsIC0xMy40LCAtMTEuOCwgLTEyLjQsIC02LjAsIC05LjQsIC03LjEsIC04LjYsIC05LjgsIC0xMi45LCAtMTAuOCwgLTEyLjQsIDIuMywgLTEuNCwgMS4wLCAtMS4wLCAtMy4wLCAtOC4wLCAtNS4xLCAtNy42LCAtMi4yLCAtNi4xLCAtMy42LCAtNi4xLCAtNi4wLCAtOS43LCAtNy4zLCAtOC43LCAxMS4yLCA3LjksIDguOSwgOC4xLCAtMTIuMSwgLTE3LjQsIC0xMy4yLCAtMTYuOCwgLTYuMywgLTkuNSwgLTcuNSwgLTguOCwgLTEyLjcsIC0xNS4yLCAtMTMuMSwgLTE0LjIsIDAuMCwgLTMuMSwgLTEuOCwgLTMuMSwgLTUwLjAsIC0xMC43LCAtNTAuMCwgLTkuMywgLTQuNiwgLTguOSwgLTUuOSwgLTguMywgLTUwLjAsIC0xMi44LCAtOS42LCAtMTAuNiwgOS41LCAtMy4yLCA4LjIsIC0yLjgsXSxcbiAgICAgICAgICAgIFstMTMuNSwgLTExLjMsIC0xNC4wLCAtMTIuOSwgLTkuMywgLTcuMSwgLTguMiwgLTguOSwgLTEyLjcsIC0xMC4zLCAtMTEuOSwgLTEyLjMsIC0wLjQsIDEuNCwgLTAuNiwgLTAuNCwgLTcuMiwgLTQuNywgLTYuOSwgLTUuNywgLTcuNCwgLTMuNywgLTYuNSwgLTYuMCwgLTkuMSwgLTUuMywgLTguOCwgLTcuNCwgNy45LCAxMS45LCA3LjgsIDkuMywgLTE1LjIsIC0xNS4xLCAtMTQuNiwgLTE3LjIsIC05LjcsIC03LjMsIC04LjIsIC05LjIsIC0xNS4wLCAtMTIuOCwgLTE0LjEsIC0xNC45LCAtMi44LCAwLjIsIC0yLjksIC0yLjMsIC01MC4wLCAtNy40LCAtNTAuMCwgLTguNywgLTkuNCwgLTcuMywgLTkuNCwgLTkuNCwgLTUwLjAsIC04LjAsIC0xMS45LCAtOS43LCA2LjUsIDAuNSwgNi40LCAtMS44LF0sXG4gICAgICAgICAgICBbLTEzLjAsIC0xNC40LCAtMTEuOSwgLTEzLjksIC03LjcsIC05LjAsIC02LjcsIC04LjgsIC0xMS43LCAtMTIuNywgLTEwLjcsIC0xMy4xLCAtMC4yLCAtMS42LCAxLjcsIC0xLjYsIC01LjcsIC04LjcsIC00LjgsIC04LjEsIC01LjMsIC03LjUsIC0zLjMsIC03LjUsIC05LjAsIC05LjIsIC02LjUsIC05LjQsIDguOSwgNy44LCAxMC4xLCA3LjgsIC0xNC4zLCAtMTcuNywgLTEzLjAsIC0xNy44LCAtOC4wLCAtOS40LCAtNi4yLCAtOS4yLCAtMTUuMSwgLTE0LjksIC0xMi4yLCAtMTQuOSwgLTEuOCwgLTMuMiwgLTAuOCwgLTMuMiwgLTUwLjAsIC0xMC44LCAtNTAuMCwgLTkuOSwgLTcuMywgLTkuNiwgLTYuNCwgLTkuNCwgLTUwLjAsIC0xMi4zLCAtOC43LCAtMTEuMywgNy42LCAtMy4zLCA4LjcsIC0yLjksXSxcbiAgICAgICAgICAgIFstMTIuNSwgLTEyLjksIC0xMy40LCAtMTAuMCwgLTguNSwgLTkuMCwgLTcuOCwgLTYuOCwgLTExLjgsIC0xMS4zLCAtMTIuNCwgLTEwLjEsIC0wLjMsIC0wLjUsIC0wLjUsIDEuMiwgLTYuMSwgLTYuMCwgLTYuNywgLTMuNSwgLTUuOSwgLTUuNiwgLTUuNSwgLTIuOSwgLTkuNSwgLTcuOCwgLTguNSwgLTUuMywgOC4xLCA5LjMsIDcuOCwgMTEuOCwgLTE0LjQsIC0xNS43LCAtMTQuNSwgLTE0LjYsIC04LjQsIC04LjcsIC03LjksIC03LjEsIC0xNC4zLCAtMTMuOCwgLTEzLjgsIC0xMi4zLCAtMi40LCAtMi4yLCAtMi45LCAtMC4yLCAtNTAuMCwgLTguOSwgLTUwLjAsIC03LjEsIC04LjEsIC05LjEsIC04LjcsIC02LjYsIC01MC4wLCAtOS43LCAtMTEuNCwgLTguMCwgNi44LCAtMS44LCA2LjksIDAuNCxdLFxuICAgICAgICAgICAgWy0yLjYsIC02LjMsIC00LjksIC00LjksIC02LjQsIC05LjQsIC03LjksIC04LjYsIC02LjMsIC03LjQsIC04LjIsIC02LjYsIC05LjcsIC0xNC45LCAtMTEuMSwgLTEzLjksIC0wLjIsIC04LjIsIC0yLjMsIC02LjgsIC04LjksIC0xMS4xLCAtOS40LCAtMTAuOSwgLTguOSwgLTExLjcsIC0xMC4wLCAtOS45LCAtMTIuMSwgLTE1LjIsIC0xNC4zLCAtMTQuNCwgMTEuMSwgMi45LCA5LjIsIDMuNSwgLTMuMCwgLTcuMCwgLTQuMywgLTYuMiwgLTIuMiwgLTYuNiwgLTMuNywgLTUuNywgLTYuMCwgLTEwLjQsIC04LjYsIC05LjUsIC01MC4wLCAtMTUuNSwgLTUwLjAsIC0xMy45LCAtNy44LCAtMTAuNSwgLTguNywgLTkuNiwgLTUwLjAsIC0xNi41LCAtMTcuMSwgLTE0LjgsIC0xMi4xLCAtMTguOSwgLTEyLjQsIC0xNy40LF0sXG4gICAgICAgICAgICBbLTguNSwgMC44LCAtOS4xLCAtMC43LCAtMTAuMSwgLTcuNSwgLTkuMSwgLTguMiwgLTExLjQsIC0zLjEsIC0xMS44LCAtNC40LCAtMTUuNSwgLTE0LjMsIC0xNC44LCAtMTUuNCwgLTYuNiwgLTQuNywgLTcuMSwgLTUuOCwgLTEyLjUsIC0xMC4zLCAtMTEuMCwgLTEyLjIsIC0xMy40LCAtMTAuNiwgLTEyLjUsIC0xMS44LCAtMTcuNCwgLTE1LjEsIC0xNy43LCAtMTUuNywgMi45LCAxMi41LCAzLjEsIDEwLjMsIC03LjcsIC01LjIsIC02LjIsIC03LjMsIC01LjQsIC0xLjcsIC01LjQsIC0zLjcsIC0xMS42LCAtOS4xLCAtMTMuMCwgLTEwLjgsIC01MC4wLCAtMTAuMywgLTUwLjAsIC0xMS4yLCAtOS44LCAtOC4zLCAtOS4xLCAtOS43LCAtNTAuMCwgLTEyLjcsIC0yMC42LCAtMTMuMSwgLTE2LjAsIC0xNi42LCAtMTcuMCwgLTE4LjQsXSxcbiAgICAgICAgICAgIFstNS4wLCAtNi40LCAtMy40LCAtNS42LCAtNy41LCAtOS4zLCAtNy4xLCAtOC44LCAtOC44LCAtNy40LCAtNi45LCAtNi45LCAtMTEuNCwgLTE1LjIsIC05LjcsIC0xMy43LCAtMS44LCAtNy44LCAtMC44LCAtNy4yLCAtOS40LCAtMTAuNiwgLTguNywgLTExLjIsIC0xMC4wLCAtMTAuMSwgLTcuOCwgLTEwLjUsIC0xMy4yLCAtMTQuNiwgLTEzLjAsIC0xNC41LCA5LjIsIDMuMSwgMTAuOCwgMy4wLCAtNC41LCAtNi43LCAtMi43LCAtNi43LCAtNS4wLCAtNi44LCAtMi41LCAtNi43LCAtNy41LCAtMTAuNCwgLTcuNCwgLTEwLjIsIC01MC4wLCAtMTUuNSwgLTUwLjAsIC0xNC4yLCAtOC45LCAtMTAuMiwgLTguNSwgLTEwLjAsIC01MC4wLCAtMTUuNiwgLTE1LjMsIC0xNS41LCAtMTMuMCwgLTE4LjgsIC0xMi42LCAtMTguMyxdLFxuICAgICAgICAgICAgWy04LjEsIC0xLjEsIC04LjksIDEuNCwgLTguNiwgLTkuMiwgLTkuNCwgLTYuOCwgLTExLjAsIC00LjksIC0xMS41LCAtMi42LCAtMTMuNywgLTE2LjgsIC0xNC41LCAtMTIuNiwgLTYuMCwgLTYuNywgLTcuMiwgLTQuMiwgLTExLjYsIC0xMS45LCAtMTEuMiwgLTEwLjksIC0xMy4xLCAtMTIuMiwgLTEyLjUsIC0xMC4zLCAtMTYuOCwgLTE3LjIsIC0xNy44LCAtMTQuNiwgMy41LCAxMC4zLCAzLjAsIDEyLjQsIC02LjksIC03LjUsIC02LjgsIC00LjksIC01LjQsIC00LjIsIC01LjQsIC0xLjMsIC0xMC44LCAtMTEuNSwgLTEyLjQsIC04LjIsIC01MC4wLCAtMTIuNSwgLTUwLjAsIC04LjksIC05LjIsIC0xMC4wLCAtOS40LCAtNy45LCAtNTAuMCwgLTE0LjMsIC0xOS45LCAtMTEuNCwgLTE2LjIsIC0xOS4yLCAtMTUuOCwgLTE1LjksXSxcbiAgICAgICAgICAgIFstNi4zLCAtNy40LCAtOC4wLCAtNi4wLCAyLjgsIC0wLjcsIDAuOSwgMC4zLCAtNy41LCAtNC40LCAtOC40LCAtMy42LCAtMy4wLCAtNy43LCAtMy43LCAtNi4yLCAtNS4zLCAtMTAuMCwgLTcuMiwgLTguOSwgLTAuNywgLTMuMiwgLTEuOCwgLTIuNCwgLTkuOSwgLTExLjcsIC05LjYsIC05LjksIC02LjMsIC05LjcsIC04LjAsIC04LjQsIC0zLjAsIC03LjcsIC00LjUsIC02LjksIDExLjMsIDguMiwgOS40LCA5LjEsIC0xLjAsIC0zLjMsIC0xLjgsIC0yLjQsIDEuNSwgLTIuMSwgLTAuNCwgLTEuMSwgLTUwLjAsIC0xNC41LCAtNTAuMCwgLTEyLjksIDIuOCwgLTAuMCwgMS40LCAwLjcsIC01MC4wLCAtOC43LCAtMTQuMSwgLTcuNSwgLTUuMiwgLTEyLjUsIC02LjUsIC0xMC43LF0sXG4gICAgICAgICAgICBbLTkuOSwgLTUuMCwgLTEwLjAsIC02LjUsIC0wLjcsIDIuNiwgLTAuMiwgMC4xLCAtMTAuMywgLTEuOCwgLTkuOSwgLTMuOCwgLTYuNCwgLTQuNywgLTUuOCwgLTYuNywgLTguMiwgLTguMywgLTguMCwgLTEwLjIsIC0zLjksIC0xLjAsIC0yLjcsIC0yLjksIC0xMS43LCAtOC44LCAtMTEuMCwgLTEwLjEsIC05LjUsIC03LjMsIC05LjQsIC04LjcsIC03LjAsIC01LjIsIC02LjcsIC03LjUsIDguMiwgMTEuNiwgOC44LCA5LjEsIC0zLjcsIC0wLjksIC0zLjEsIC0zLjAsIC0yLjAsIDEuMiwgLTIuMywgLTEuMywgLTUwLjAsIC0xMi4xLCAtNTAuMCwgLTEyLjYsIDAuMSwgMi41LCAwLjcsIDAuNiwgLTUwLjAsIC02LjAsIC0xNC44LCAtNy41LCAtOC42LCAtOS40LCAtOC41LCAtMTEuMixdLFxuICAgICAgICAgICAgWy03LjUsIC02LjIsIC03LjIsIC02LjIsIDAuOSwgMC4yLCAyLjUsIDAuMiwgLTguMywgLTMuNSwgLTcuMSwgLTMuNywgLTQuMSwgLTYuMywgLTMuMSwgLTYuMywgLTUuNywgLTguOSwgLTUuNiwgLTguNCwgLTIuMywgLTIuMiwgMC43LCAtMi43LCAtOS44LCAtOC45LCAtNy4xLCAtOS4zLCAtNy41LCAtOC4yLCAtNi4yLCAtNy45LCAtNC4zLCAtNi4yLCAtMi43LCAtNi44LCA5LjQsIDguOCwgMTIuMSwgOC44LCAtMi4xLCAtMi4wLCAwLjEsIC0yLjQsIDAuMCwgLTEuMSwgMS4zLCAtMC44LCAtNTAuMCwgLTExLjksIC01MC4wLCAtMTIuNiwgMS4yLCAwLjcsIDMuNSwgMC44LCAtNTAuMCwgLTcuMSwgLTEyLjQsIC03LjEsIC03LjEsIC0xMC42LCAtNS4wLCAtMTAuNixdLFxuICAgICAgICAgICAgWy05LjAsIC02LjUsIC0xMC4wLCAtNC44LCAwLjEsIC0wLjEsIC0wLjMsIDIuNCwgLTkuOSwgLTMuNSwgLTEwLjYsIC0yLjAsIC01LjQsIC02LjYsIC01LjYsIC00LjQsIC03LjYsIC05LjksIC04LjUsIC04LjIsIC0zLjAsIC0yLjgsIC0zLjAsIC0wLjksIC0xMi44LCAtMTEuOCwgLTEwLjcsIC05LjMsIC04LjgsIC05LjIsIC05LjIsIC03LjEsIC02LjIsIC03LjMsIC02LjcsIC00LjksIDkuMSwgOS4xLCA4LjgsIDExLjIsIC0zLjEsIC0zLjAsIC0zLjMsIC0xLjAsIC0xLjEsIC0xLjQsIC0yLjAsIDEuMiwgLTUwLjAsIC0xMi44LCAtNTAuMCwgLTEwLjksIDAuOCwgMC41LCAwLjcsIDIuMywgLTUwLjAsIC03LjUsIC0xNi41LCAtNS45LCAtNy44LCAtMTEuMSwgLTcuOCwgLTkuMCxdLFxuICAgICAgICAgICAgWy03LjEsIC01LjYsIC05LjEsIC01LjEsIC01LjksIC04LjAsIC02LjksIC03LjQsIC0xLjksIC0xLjYsIC00LjcsIC0xLjQsIC05LjYsIC0xNC42LCAtMTAuNCwgLTEzLjAsIC02LjcsIC0xMC44LCAtOS40LCAtOS45LCAtOS4xLCAtMTAuNSwgLTkuMSwgLTEwLjQsIC01LjksIC05LjMsIC03LjksIC04LjEsIC0xMi43LCAtMTUuMCwgLTE1LjEsIC0xNC4zLCAtMi4yLCAtNS40LCAtNS4wLCAtNS40LCAtMS4wLCAtMy43LCAtMi4xLCAtMy4xLCAxMi44LCA5LjYsIDExLjEsIDEwLjEsIC00LjgsIC05LjQsIC04LjEsIC04LjYsIC01MC4wLCAtMTguMywgLTUwLjAsIC0xNS40LCAtNS45LCAtNy41LCAtNi42LCAtNy4xLCAtNTAuMCwgLTkuNSwgLTExLjcsIC04LjQsIC0xMi41LCAtMTcuMywgLTEzLjIsIC0xNS40LF0sXG4gICAgICAgICAgICBbLTEwLjIsIC0xLjYsIC0xMC4yLCAtMy4yLCAtNy4zLCAtNC42LCAtNi41LCAtNi4yLCAtNi43LCAzLjAsIC02LjgsIDAuOCwgLTExLjksIC0xMC44LCAtMTEuNSwgLTEyLjIsIC05LjYsIC03LjEsIC05LjcsIC04LjQsIC05LjgsIC04LjEsIC04LjIsIC05LjcsIC05LjQsIC01LjAsIC04LjAsIC03LjIsIC0xNS4yLCAtMTIuOCwgLTE0LjksIC0xMy44LCAtNi42LCAtMS43LCAtNi44LCAtNC4yLCAtMy4zLCAtMC45LCAtMi4wLCAtMy4wLCA5LjYsIDEyLjgsIDkuNywgMTAuNSwgLTguNSwgLTUuNiwgLTkuMywgLTcuOCwgLTUwLjAsIC0xMi43LCAtNTAuMCwgLTEzLjgsIC02LjgsIC01LjEsIC01LjMsIC02LjUsIC01MC4wLCAtNC4xLCAtMTIuOCwgLTUuOCwgLTE0LjQsIC0xNC4xLCAtMTMuNiwgLTE0LjgsXSxcbiAgICAgICAgICAgIFstOC4yLCAtNC43LCAtNy4xLCAtNS4wLCAtNi41LCAtNy43LCAtNS41LCAtNi45LCAtNC4xLCAtMC44LCAtMS4yLCAtMC45LCAtMTAuNSwgLTEyLjgsIC04LjIsIC0xMy4wLCAtNy41LCAtMTAuMCwgLTcuMiwgLTkuNywgLTkuMiwgLTkuNCwgLTcuMywgLTEwLjIsIC02LjUsIC04LjAsIC00LjMsIC04LjAsIC0xMy4xLCAtMTQuMSwgLTEyLjIsIC0xMy44LCAtMy43LCAtNS40LCAtMi41LCAtNS40LCAtMS44LCAtMy4xLCAwLjEsIC0zLjMsIDExLjEsIDkuNywgMTIuOSwgOS44LCAtNS41LCAtOC4xLCAtNS40LCAtNy44LCAtNTAuMCwgLTE2LjQsIC01MC4wLCAtMTQuOCwgLTUuOSwgLTcuMSwgLTQuNywgLTcuMiwgLTUwLjAsIC04LjQsIC02LjQsIC04LjEsIC0xMi4xLCAtMTYuMiwgLTEwLjMsIC0xNS44LF0sXG4gICAgICAgICAgICBbLTkuMiwgLTMuMCwgLTkuOSwgLTEuMiwgLTYuNSwgLTYuMSwgLTYuOCwgLTQuNCwgLTYuNCwgMC45LCAtNy4wLCAzLjAsIC0xMS44LCAtMTMuMCwgLTExLjEsIC0xMC40LCAtOS4zLCAtOS4yLCAtOS44LCAtNi40LCAtOS41LCAtOS41LCAtOS40LCAtOC4wLCAtOC4xLCAtOC4yLCAtOS40LCAtNS4yLCAtMTQuMiwgLTE0LjksIC0xNC45LCAtMTIuMywgLTUuNywgLTMuNywgLTYuNywgLTEuMywgLTIuNCwgLTMuMCwgLTIuNCwgLTEuMCwgMTAuMSwgMTAuNSwgOS44LCAxMy4xLCAtNy4yLCAtOC4wLCAtOC40LCAtNS4wLCAtNTAuMCwgLTE0LjcsIC01MC4wLCAtMTEuNCwgLTYuMywgLTYuNywgLTUuOCwgLTUuMCwgLTUwLjAsIC02LjEsIC0xMy40LCAtMy42LCAtMTMuMCwgLTE2LjAsIC0xMy43LCAtMTMuMyxdLFxuICAgICAgICAgICAgWy04LjIsIC0xMC44LCAtMTAuMSwgLTkuOCwgLTAuNCwgLTMuNiwgLTEuNywgLTIuOSwgLTcuOSwgLTguNCwgLTkuOCwgLTguMiwgNi4yLCAyLjMsIDAuNiwgMi45LCAtNy4xLCAtMTEuNiwgLTkuMiwgLTExLjEsIC01LjYsIC04LjMsIC03LjIsIC04LjQsIC0xMC43LCAtMTMuNiwgLTExLjQsIC0xMi4wLCAwLjAsIC0yLjgsIC0xLjgsIC0yLjQsIC02LjAsIC0xMS42LCAtNy41LCAtMTAuOCwgMS41LCAtMi4wLCAwLjAsIC0xLjEsIC00LjgsIC04LjUsIC01LjUsIC03LjIsIDExLjksIDguNiwgMTAuMCwgOS4wLCAtNTAuMCwgLTE0LjIsIC01MC4wLCAtMTIuOCwgLTQuMSwgLTcuNCwgLTUuNywgLTYuNSwgLTUwLjAsIC0xMS4wLCAtMTQuMywgLTkuOSwgMS40LCAtNy45LCAtMC43LCAtNi44LF0sXG4gICAgICAgICAgICBbLTEyLjUsIC04LjcsIC0xMy4wLCAtOS45LCAtMy45LCAtMS4wLCAtMy40LCAtMi45LCAtMTIuNSwgLTYuMywgLTExLjYsIC04LjEsIDMuMywgNi4wLCAtMS42LCAzLjgsIC0xMC41LCAtMTAuMSwgLTExLjEsIC0xMS4xLCAtOS4wLCAtNi45LCAtOC4yLCAtOS4xLCAtMTQuMCwgLTExLjQsIC0xMi4zLCAtMTIuMSwgLTMuMSwgMC4yLCAtMy4yLCAtMi4yLCAtMTAuNCwgLTkuMSwgLTEwLjQsIC0xMS41LCAtMi4xLCAxLjIsIC0xLjEsIC0xLjQsIC05LjQsIC01LjYsIC04LjEsIC04LjAsIDguNiwgMTIuNCwgOC42LCA5LjUsIC01MC4wLCAtMTAuNCwgLTUwLjAsIC0xMS42LCAtNy4yLCAtNS43LCAtNy41LCAtNy40LCAtNTAuMCwgLTguNiwgLTE1LjcsIC05LjcsIC0zLjAsIC0zLjcsIC0zLjIsIC01LjksXSxcbiAgICAgICAgICAgIFstMTEuMSwgLTExLjksIC0xMC42LCAtMTEuMywgLTIuNiwgLTQuMSwgLTEuNywgLTMuNSwgLTExLjQsIC05LjYsIC05LjYsIC05LjIsIDMuNywgMi41LCAxLjYsIDIuNSwgLTkuNiwgLTEyLjMsIC05LjUsIC0xMS44LCAtOC4wLCAtOS40LCAtNy4yLCAtOS4zLCAtMTMuMywgLTEyLjgsIC0xMC45LCAtMTIuNiwgLTEuOCwgLTIuOSwgLTAuOCwgLTIuOSwgLTguNiwgLTEzLjAsIC03LjQsIC0xMi40LCAtMC40LCAtMi4zLCAxLjMsIC0yLjAsIC04LjEsIC05LjMsIC01LjQsIC04LjQsIDEwLjAsIDguNiwgMTEuNCwgOC45LCAtNTAuMCwgLTEzLjcsIC01MC4wLCAtMTMuMiwgLTYuMSwgLTguMSwgLTUuNSwgLTcuNSwgLTUwLjAsIC0xMS4zLCAtMTIuNywgLTEwLjEsIC0xLjYsIC03LjgsIC0wLjMsIC03LjIsXSxcbiAgICAgICAgICAgIFstMTEuNCwgLTEwLjAsIC0xMi43LCAtOC4yLCAtMy4xLCAtMy4xLCAtMi44LCAtMC45LCAtMTEuNywgLTcuMywgLTEyLjEsIC01LjgsIDMuNiwgMy42LCAtMS4xLCA1LjgsIC05LjQsIC0xMS45LCAtMTAuNywgLTEwLjAsIC04LjUsIC04LjgsIC04LjIsIC02LjUsIC0xMy45LCAtMTMuMCwgLTEyLjksIC0xMC45LCAtMy4xLCAtMi4zLCAtMy4yLCAtMC4yLCAtOS41LCAtMTAuOCwgLTEwLjIsIC04LjIsIC0xLjEsIC0xLjMsIC0wLjgsIDEuMiwgLTguNiwgLTcuOCwgLTcuOCwgLTUuMCwgOS4wLCA5LjUsIDguOSwgMTIuMCwgLTUwLjAsIC0xMy4wLCAtNTAuMCwgLTEwLjMsIC02LjIsIC03LjAsIC03LjEsIC01LjQsIC01MC4wLCAtOS4zLCAtMTQuMCwgLTguMiwgLTIuNCwgLTYuMywgLTIuNCwgLTMuOSxdLFxuICAgICAgICAgICAgWy01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDMzLjMsIC01MC4wLCAzMC42LCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDI5LjIsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLF0sXG4gICAgICAgICAgICBbLTE0LjgsIC02LjIsIC0xNC45LCAtNy42LCAtMTQuNiwgLTExLjYsIC0xMy4wLCAtMTIuMiwgLTE0LjAsIC05LjAsIC0xNC4xLCAtMTAuMSwgLTEzLjYsIC0xMS4yLCAtMTIuNCwgLTEyLjUsIC04LjEsIDIuMiwgLTguNywgMC40LCAtMTUuMywgLTExLjMsIC0xMy4yLCAtMTMuMywgLTExLjksIC03LjIsIC0xMS44LCAtNy45LCAtMTAuNywgLTcuNCwgLTEwLjgsIC04LjksIC0xNS41LCAtMTAuMywgLTE1LjUsIC0xMi41LCAtMTQuNSwgLTEyLjEsIC0xMS45LCAtMTIuOCwgLTE4LjMsIC0xMi43LCAtMTYuNCwgLTE0LjcsIC0xNC4yLCAtMTAuNCwgLTEzLjcsIC0xMy4wLCAtNTAuMCwgMTUuMSwgLTUwLjAsIDEzLjMsIC05LjksIC01LjgsIC04LjksIC03LjYsIC01MC4wLCAtMS41LCAtNy44LCAtMy4wLCAtOC4xLCAzLjYsIC05LjQsIDIuMCxdLFxuICAgICAgICAgICAgWy01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDMwLjYsIC01MC4wLCAzNS4yLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDI4LjUsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLF0sXG4gICAgICAgICAgICBbLTEzLjgsIC03LjUsIC0xNC40LCAtNS4xLCAtMTIuNiwgLTExLjYsIC0xMS41LCAtMTAuMSwgLTEzLjIsIC05LjcsIC0xMi43LCAtNy40LCAtMTEuOSwgLTExLjksIC0xMS41LCAtMTAuMiwgLTcuMiwgMC45LCAtOC42LCAyLjYsIC0xNC4xLCAtMTIuOCwgLTEzLjMsIC0xMS4wLCAtOS43LCAtOC40LCAtMTEuMiwgLTUuMywgLTkuMywgLTguNywgLTkuOSwgLTcuMSwgLTEzLjksIC0xMS4yLCAtMTQuMiwgLTguOSwgLTEyLjksIC0xMi42LCAtMTIuNiwgLTEwLjksIC0xNS40LCAtMTMuOCwgLTE0LjgsIC0xMS40LCAtMTIuOCwgLTExLjYsIC0xMy4yLCAtMTAuMywgLTUwLjAsIDEzLjMsIC01MC4wLCAxNS4yLCAtOC42LCAtNy4wLCAtOC40LCAtNC44LCAtNTAuMCwgLTMuMCwgLTcuMSwgLTAuMSwgLTcuMywgMi4zLCAtOC43LCAzLjksXSxcbiAgICAgICAgICAgIFstNy4zLCAtNi4zLCAtOC45LCAtNS41LCAyLjksIDAuMiwgMS41LCAxLjIsIC04LjUsIC0yLjMsIC0xMC4wLCAtMS43LCAtNS42LCAtMTAuNSwgLTUuNSwgLTkuNiwgLTQuMywgLTcuOSwgLTYuMSwgLTcuMiwgMi4zLCAtMC42LCAwLjUsIC0wLjAsIC04LjksIC0xMS4wLCAtOS40LCAtOS4zLCAtNC42LCAtOS40LCAtNy4zLCAtOC4xLCAtNy44LCAtOS44LCAtOC45LCAtOS4yLCAyLjgsIDAuMSwgMS4yLCAwLjgsIC01LjksIC02LjgsIC01LjksIC02LjMsIC00LjEsIC03LjIsIC02LjEsIC02LjIsIC01MC4wLCAtOS45LCAtNTAuMCwgLTguNiwgMTIuNSwgOS40LCAxMS4wLCA5LjgsIC01MC4wLCAtNC44LCAtOC43LCAtMy41LCAtMC4wLCAtOC42LCAtMi4xLCAtNy4wLF0sXG4gICAgICAgICAgICBbLTEwLjEsIC00LjMsIC0xMC44LCAtNS44LCAwLjEsIDIuMywgMC43LCAwLjYsIC0xMC40LCAtMC4yLCAtMTAuOCwgLTIuMCwgLTguOCwgLTkuMiwgLTguMCwgLTkuNywgLTYuOCwgLTUuOSwgLTcuNSwgLTcuMCwgLTEuNCwgMi4yLCAtMC45LCAtMC40LCAtMTAuOCwgLTcuNywgLTkuOCwgLTguOCwgLTguOSwgLTcuMywgLTkuNiwgLTkuMSwgLTEwLjUsIC04LjMsIC0xMC4yLCAtMTAuMCwgLTAuMCwgMi41LCAwLjcsIDAuNSwgLTcuNSwgLTUuMSwgLTcuMSwgLTYuNywgLTcuNCwgLTUuNywgLTguMSwgLTcuMCwgLTUwLjAsIC01LjgsIC01MC4wLCAtNy4wLCA5LjQsIDEyLjcsIDEwLjEsIDEwLjAsIC01MC4wLCAtMS41LCAtMTEuMywgLTMuMywgLTUuNCwgLTQuMiwgLTUuNiwgLTYuOCxdLFxuICAgICAgICAgICAgWy04LjQsIC02LjIsIC04LjksIC01LjksIDEuOCwgMC40LCAyLjcsIDEuMiwgLTkuMSwgLTEuMiwgLTguOCwgLTEuNSwgLTcuMiwgLTEwLjUsIC00LjksIC05LjYsIC01LjcsIC03LjQsIC01LjUsIC03LjQsIDAuMywgLTAuMywgMS44LCAtMC40LCAtOS4wLCAtOC43LCAtNy4zLCAtOC45LCAtNS45LCAtOS40LCAtNi40LCAtOC43LCAtOC43LCAtOS4xLCAtOC41LCAtOS40LCAxLjQsIDAuNywgMy41LCAwLjcsIC02LjYsIC01LjMsIC00LjcsIC01LjgsIC01LjcsIC03LjUsIC01LjUsIC03LjEsIC01MC4wLCAtOC45LCAtNTAuMCwgLTguNCwgMTEuMCwgMTAuMSwgMTMuMiwgMTAuMiwgLTUwLjAsIC00LjIsIC02LjEsIC0zLjYsIC0zLjUsIC04LjQsIC0xLjIsIC02LjgsXSxcbiAgICAgICAgICAgIFstOS4xLCAtNS40LCAtMTAuNCwgLTQuMiwgMS4wLCAwLjUsIDAuNiwgMi40LCAtOS42LCAtMS41LCAtMTAuNSwgLTAuNSwgLTguOSwgLTEwLjUsIC03LjIsIC04LjMsIC02LjMsIC02LjksIC03LjcsIC01LjEsIC0wLjUsIDAuMSwgLTAuNiwgMi4zLCAtMTEuMSwgLTEwLjIsIC0xMC41LCAtNy4wLCAtOC4zLCAtOS40LCAtOS40LCAtNi42LCAtOS42LCAtOS43LCAtMTAuMCwgLTcuOSwgMC43LCAwLjYsIDAuOCwgMi4zLCAtNy4xLCAtNi41LCAtNy4yLCAtNS4wLCAtNi41LCAtNy40LCAtNy41LCAtNS40LCAtNTAuMCwgLTcuNiwgLTUwLjAsIC00LjgsIDkuOCwgMTAuMCwgMTAuMiwgMTIuMSwgLTUwLjAsIC0zLjEsIC0xMS40LCAtMC43LCAtNC42LCAtNi42LCAtNC45LCAtMy45LF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjkuMiwgLTUwLjAsIDI4LjUsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzMuMywgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTcuMCwgLTEzLjEsIC04LjMsIC05LjIsIC02LjUsIC04LjksIC03LjYsIC05LjgsIC0wLjcsIC05LjIsIC0yLjEsIC0xMi40LCAtMTAuMywgLTEyLjQsIC0xMS42LCAtOS41LCAtNC42LCAtMTAuNCwgLTUuNywgLTEzLjYsIC0xMC4xLCAtMTEuNCwgLTEwLjksIC02LjUsIC0xLjUsIC02LjIsIC0zLjYsIC0xMi44LCAtOC4wLCAtMTIuMywgLTkuNywgLTE2LjUsIC0xMi43LCAtMTUuNiwgLTE0LjMsIC04LjcsIC02LjAsIC03LjEsIC03LjUsIC05LjUsIC00LjEsIC04LjQsIC02LjEsIC0xMS4wLCAtOC42LCAtMTEuMywgLTkuMywgLTUwLjAsIC0xLjUsIC01MC4wLCAtMy4wLCAtNC44LCAtMS41LCAtNC4yLCAtMy4xLCAtNTAuMCwgMTYuNCwgLTUuMSwgMTQuMiwgLTEwLjEsIC00LjMsIC0xMC4wLCAtNS40LF0sXG4gICAgICAgICAgICBbLTEzLjUsIC0xNi4zLCAtMTEuOCwgLTE1LjUsIC0xMy42LCAtMTUuMywgLTEyLjEsIC0xNi4xLCAtNy43LCAtMTMuMywgLTQuMiwgLTEyLjYsIC0xNC4xLCAtMTYuMiwgLTEwLjMsIC0xNS40LCAtOS42LCAtMTEuNiwgLTcuNywgLTkuOCwgLTE0LjMsIC0xNy41LCAtMTEuMSwgLTE3LjIsIC01LjMsIC03LjEsIC0yLjIsIC03LjEsIC05LjYsIC0xMS45LCAtOC43LCAtMTEuNCwgLTE3LjEsIC0yMC42LCAtMTUuMywgLTE5LjksIC0xNC4xLCAtMTQuOCwgLTEyLjQsIC0xNi41LCAtMTEuNywgLTEyLjgsIC02LjQsIC0xMy40LCAtMTQuMywgLTE1LjcsIC0xMi43LCAtMTQuMCwgLTUwLjAsIC03LjgsIC01MC4wLCAtNy4xLCAtOC43LCAtMTEuMywgLTYuMSwgLTExLjQsIC01MC4wLCAtNS4xLCAxOC42LCAtNC44LCAtOC42LCAtOC4xLCAtNC41LCAtNy4zLF0sXG4gICAgICAgICAgICBbLTEyLjQsIC04LjIsIC0xMy4wLCAtNS45LCAtNy43LCAtNy44LCAtNy40LCAtNS44LCAtOC44LCAtMi4wLCAtOS4zLCAtMC40LCAtMTEuNiwgLTExLjMsIC0xMS42LCAtOS40LCAtOC45LCAtNS42LCAtMTAuMCwgLTMuMiwgLTExLjUsIC0xMS4xLCAtMTAuNSwgLTguMywgLTYuMywgLTQuOSwgLTYuNywgLTEuMiwgLTEwLjYsIC05LjcsIC0xMS4zLCAtOC4wLCAtMTQuOCwgLTEzLjEsIC0xNS41LCAtMTEuNCwgLTcuNSwgLTcuNSwgLTcuMSwgLTUuOSwgLTguNCwgLTUuOCwgLTguMSwgLTMuNiwgLTkuOSwgLTkuNywgLTEwLjEsIC04LjIsIC01MC4wLCAtMy4wLCAtNTAuMCwgLTAuMSwgLTMuNSwgLTMuMywgLTMuNiwgLTAuNywgLTUwLjAsIDE0LjIsIC00LjgsIDE2LjQsIC04LjksIC01LjgsIC04LjksIC0zLjQsXSxcbiAgICAgICAgICAgIFstMTAuNywgLTEzLjIsIC0xMi40LCAtMTEuNiwgLTQuOCwgLTguNCwgLTYuMSwgLTcuMiwgLTEwLjMsIC0xMS44LCAtMTEuMCwgLTExLjYsIDIuOCwgLTEuNywgMC43LCAtMS4xLCAtNi4yLCAtOS43LCAtNy4zLCAtOC40LCAtNS4zLCAtOC42LCAtNi4xLCAtOC4zLCAtMTAuNSwgLTExLjIsIC05LjgsIC0xMC4yLCA5LjUsIDYuNSwgNy42LCA2LjgsIC0xMi4xLCAtMTYuMCwgLTEzLjAsIC0xNi4yLCAtNS4yLCAtOC42LCAtNy4xLCAtNy44LCAtMTIuNSwgLTE0LjQsIC0xMi4xLCAtMTMuMCwgMS40LCAtMy4wLCAtMS42LCAtMi40LCAtNTAuMCwgLTguMSwgLTUwLjAsIC03LjMsIC0wLjAsIC01LjQsIC0zLjUsIC00LjYsIC01MC4wLCAtMTAuMSwgLTguNiwgLTguOSwgMTMuMiwgLTAuOSwgOS43LCAtMC4zLF0sXG4gICAgICAgICAgICBbLTE4LjEsIC0xMi4zLCAtMTkuNCwgLTE0LjIsIC0xMi4yLCAtOS41LCAtMTEuNSwgLTEwLjgsIC0xNy45LCAtMTEuOSwgLTE4LjIsIC0xMy45LCAtNi40LCAtMy43LCAtNi44LCAtNS40LCAtMTIuOCwgLTUuOSwgLTEzLjYsIC03LjQsIC0xMy43LCAtOS45LCAtMTIuOSwgLTEyLjcsIC0xNi4yLCAtMTEuNiwgLTE1LjIsIC0xMi43LCAtMy4yLCAwLjUsIC0zLjMsIC0xLjgsIC0xOC45LCAtMTYuNiwgLTE4LjgsIC0xOS4yLCAtMTIuNSwgLTkuNCwgLTEwLjYsIC0xMS4xLCAtMTcuMywgLTE0LjEsIC0xNi4yLCAtMTYuMCwgLTcuOSwgLTMuNywgLTcuOCwgLTYuMywgLTUwLjAsIDMuNiwgLTUwLjAsIDIuMywgLTguNiwgLTQuMiwgLTguNCwgLTYuNiwgLTUwLjAsIC00LjMsIC04LjEsIC01LjgsIC0wLjksIDE0LjIsIC0xLjgsIDExLjYsXSxcbiAgICAgICAgICAgIFstMTEuOCwgLTEzLjEsIC0xMS41LCAtMTIuMCwgLTYuMiwgLTguMywgLTUuNCwgLTcuNCwgLTExLjgsIC0xMi4zLCAtMTEuMSwgLTExLjQsIDAuNSwgLTIuNSwgMi40LCAtMS42LCAtNi44LCAtOS45LCAtNi40LCAtOC45LCAtNi4xLCAtOC42LCAtNS4wLCAtNy44LCAtMTAuNCwgLTExLjYsIC04LjUsIC05LjksIDguMiwgNi40LCA4LjcsIDYuOSwgLTEyLjQsIC0xNy4wLCAtMTIuNiwgLTE1LjgsIC02LjUsIC04LjUsIC01LjAsIC03LjgsIC0xMy4yLCAtMTMuNiwgLTEwLjMsIC0xMy43LCAtMC43LCAtMy4yLCAtMC4zLCAtMi40LCAtNTAuMCwgLTkuNCwgLTUwLjAsIC04LjcsIC0yLjEsIC01LjYsIC0xLjIsIC00LjksIC01MC4wLCAtMTAuMCwgLTQuNSwgLTguOSwgOS43LCAtMS44LCAxMS4zLCAtMC45LF0sXG4gICAgICAgICAgICBbLTE3LjIsIC0xMy4zLCAtMTcuOCwgLTExLjYsIC0xMS4wLCAtMTEuMSwgLTEwLjQsIC05LjAsIC0xNi4wLCAtMTIuNywgLTE2LjEsIC0xMS4xLCAtNS4yLCAtNS40LCAtNi4wLCAtMy4zLCAtMTEuOCwgLTcuMywgLTEzLjMsIC01LjksIC0xMi43LCAtMTEuOSwgLTExLjksIC05LjMsIC0xNS4yLCAtMTUuMCwgLTE0LjksIC0xMS4wLCAtMi44LCAtMS44LCAtMi45LCAwLjQsIC0xNy40LCAtMTguNCwgLTE4LjMsIC0xNS45LCAtMTAuNywgLTExLjIsIC0xMC42LCAtOS4wLCAtMTUuNCwgLTE0LjgsIC0xNS44LCAtMTMuMywgLTYuOCwgLTUuOSwgLTcuMiwgLTMuOSwgLTUwLjAsIDIuMCwgLTUwLjAsIDMuOSwgLTcuMCwgLTYuOCwgLTYuOCwgLTMuOSwgLTUwLjAsIC01LjQsIC03LjMsIC0zLjQsIC0wLjMsIDExLjYsIC0wLjksIDE0LjEsXV07XG4gICAgICAgIHRoaXMuVFJBTlMgPSBbWzUsIDAsIDAsIDRdLFxuICAgICAgICAgICAgWzAsIDUsIDQsIDBdLFxuICAgICAgICAgICAgWzAsIDQsIDUsIDBdLFxuICAgICAgICAgICAgWzQsIDAsIDAsIDVdXTtcbiAgICAgICAgdGhpcy5DT05CTE8gPSB7ICdBJzogMCwgJ1InOiAxLCAnTic6IDIsICdEJzogMywgJ0MnOiA0LCAnUSc6IDUsICdFJzogNiwgJ0cnOiA3LCAnSCc6IDgsICdJJzogOSwgJ0wnOiAxMCwgJ0snOiAxMSwgJ00nOiAxMiwgJ0YnOiAxMywgJ1AnOiAxNCwgJ1MnOiAxNSwgJ1QnOiAxNiwgJ1cnOiAxNywgJ1knOiAxOCwgJ1YnOiAxOSwgJ0InOiAyMCwgJ1onOiAyMSwgJ1gnOiAyMiwgJyonOiAyMyB9O1xuICAgICAgICB0aGlzLkNPTk5VQ0wgPSB7ICdBJzogMCwgJ1QnOiAxLCAnQyc6IDIsICdHJzogMyB9O1xuICAgICAgICB0aGlzLkNPTlNDSE4gPSB7ICdBQUEnOiAwLCAnQUFDJzogMSwgJ0FBRyc6IDIsICdBQVQnOiAzLCAnQUNBJzogNCwgJ0FDQyc6IDUsICdBQ0cnOiA2LCAnQUNUJzogNywgJ0FHQSc6IDgsICdBR0MnOiA5LCAnQUdHJzogMTAsICdBR1QnOiAxMSwgJ0FUQSc6IDEyLCAnQVRDJzogMTMsICdBVEcnOiAxNCwgJ0FUVCc6IDE1LCAnQ0FBJzogMTYsICdDQUMnOiAxNywgJ0NBRyc6IDE4LCAnQ0FUJzogMTksICdDQ0EnOiAyMCwgJ0NDQyc6IDIxLCAnQ0NHJzogMjIsICdDQ1QnOiAyMywgJ0NHQSc6IDI0LCAnQ0dDJzogMjUsICdDR0cnOiAyNiwgJ0NHVCc6IDI3LCAnQ1RBJzogMjgsICdDVEMnOiAyOSwgJ0NURyc6IDMwLCAnQ1RUJzogMzEsICdHQUEnOiAzMiwgJ0dBQyc6IDMzLCAnR0FHJzogMzQsICdHQVQnOiAzNSwgJ0dDQSc6IDM2LCAnR0NDJzogMzcsICdHQ0cnOiAzOCwgJ0dDVCc6IDM5LCAnR0dBJzogNDAsICdHR0MnOiA0MSwgJ0dHRyc6IDQyLCAnR0dUJzogNDMsICdHVEEnOiA0NCwgJ0dUQyc6IDQ1LCAnR1RHJzogNDYsICdHVFQnOiA0NywgJ1RBQSc6IDQ4LCAnVEFDJzogNDksICdUQUcnOiA1MCwgJ1RBVCc6IDUxLCAnVENBJzogNTIsICdUQ0MnOiA1MywgJ1RDRyc6IDU0LCAnVENUJzogNTUsICdUR0EnOiA1NiwgJ1RHQyc6IDU3LCAnVEdHJzogNTgsICdUR1QnOiA1OSwgJ1RUQSc6IDYwLCAnVFRDJzogNjEsICdUVEcnOiA2MiwgJ1RUVCc6IDYzIH07XG4gICAgICAgIHRoaXMuc2V0TWV0aG9kKGFsaWduR3JpZF8pO1xuICAgICAgICB0aGlzLnNldFNlcXVlbmNlcyhzZXExXywgc2VxMl8pO1xuICAgICAgICB0aGlzLnNldEdhcChnYXBfKTtcbiAgICB9XG4gICAgZmlsbE5lZWRsZW1hbigpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnZhbHVlID0gLWkgKiB0aGlzLmdhcDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnBhcmVudEkgPSBpIC0gMTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnBhcmVudEogPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMjsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFswXVtpXS52YWx1ZSA9IC1pICogdGhpcy5nYXA7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFswXVtpXS5wYXJlbnRJID0gMDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnBhcmVudEogPSBpIC0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmaWxsT25lKGksIGopIHtcbiAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPSBNYXRoLm1heCh0aGlzLmRwR3JpZFtpIC0gMV1baiAtIDFdLnZhbHVlICsgdGhpcy5zY29yZXNbaSAtIDFdW2ogLSAxXSwgTWF0aC5tYXgodGhpcy5kcEdyaWRbaSAtIDFdW2pdLnZhbHVlIC0gdGhpcy5nYXAsIHRoaXMuZHBHcmlkW2ldW2ogLSAxXS52YWx1ZSAtIHRoaXMuZ2FwKSk7XG4gICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9PSB0aGlzLmRwR3JpZFtpIC0gMV1baiAtIDFdLnZhbHVlICsgdGhpcy5zY29yZXNbaSAtIDFdW2ogLSAxXSkge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IGkgLSAxO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IGogLSAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID09IHRoaXMuZHBHcmlkW2kgLSAxXVtqXS52YWx1ZSAtIHRoaXMuZ2FwKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gaSAtIDE7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gajtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSBpO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IGogLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdyaWRGcm9tTmFtZShwYXRoKSB7XG4gICAgICAgIHN3aXRjaCAocGF0aCkge1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNNDUnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU00NTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTUwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNNTA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU02Mic6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTYyO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNODAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU04MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTkwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNOTA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQQU0zMCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTMwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUEFNNzAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5QQU03MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BBTTI1MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTI1MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ05VQ0xFT1RJREVTJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuTlVDTEVPVElERVM7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OTlVDTDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVFJBTlMnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5UUkFOUztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05OVUNMO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTQ0hORUlERVInOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5TQ0hORUlERVI7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OU0NITjtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsbFNjb3JlcygpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RSZXN1bHQoaSwgaikge1xuICAgICAgICBsZXQgcmVzMSA9IFwiXCIsIHJlczIgPSBcIlwiLCBnYXBTID0gXCJcIjtcbiAgICAgICAgbGV0IHRvdGFsID0gdGhpcy5kcEdyaWRbaV1bal0udmFsdWU7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGVwOyBpKyspIHtcbiAgICAgICAgICAgIGdhcFMgKz0gJ3wnO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpID4gMCB8fCBqID4gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPT0gaSkge1xuICAgICAgICAgICAgICAgIHJlczEgPSBnYXBTICsgcmVzMTtcbiAgICAgICAgICAgICAgICByZXMyID0gdGhpcy5zZXEyLnN1YnN0cigoaiAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPT0gaikge1xuICAgICAgICAgICAgICAgIHJlczIgPSBnYXBTICsgcmVzMjtcbiAgICAgICAgICAgICAgICByZXMxID0gdGhpcy5zZXExLnN1YnN0cigoaSAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpIC0gMSA+PSAwKVxuICAgICAgICAgICAgICAgICAgICByZXMxID0gdGhpcy5zZXExLnN1YnN0cigoaSAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHJlczEgPSBnYXBTICsgcmVzMTtcbiAgICAgICAgICAgICAgICBpZiAoaiAtIDEgPj0gMClcbiAgICAgICAgICAgICAgICAgICAgcmVzMiA9IHRoaXMuc2VxMi5zdWJzdHIoKGogLSAxKSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKSArIHJlczI7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICByZXMyID0gZ2FwUyArIHJlczI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgdGVtcEkgPSBpO1xuICAgICAgICAgICAgaSA9IHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEk7XG4gICAgICAgICAgICBqID0gdGhpcy5kcEdyaWRbdGVtcEldW2pdLnBhcmVudEo7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBbGlnbmVkKHJlczEsIHJlczIsIHRvdGFsKTtcbiAgICB9XG4gICAgZmlsbFNjb3JlcygpIHtcbiAgICAgICAgdGhpcy5zY29yZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5zY29yZXMucHVzaChbXSk7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY29yZXNbaV0ucHVzaCh0aGlzLmFsaWduR3JpZFt0aGlzLmNvbm5lY3Rpb25zW3RoaXMuc2VxMS5zdWJzdHIoaSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKV1dW3RoaXMuY29ubmVjdGlvbnNbdGhpcy5zZXEyLnN1YnN0cihqICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHR5cGVSZWMoKSB7XG4gICAgICAgIGlmICgvW0FUR0NdKi8udGVzdCh0aGlzLnNlcTEpICYmIC9bQVRHQ10qLy50ZXN0KHRoaXMuc2VxMikpXG4gICAgICAgICAgICByZXR1cm4gXCJOVUNMRU9USURFU1wiO1xuICAgICAgICBpZiAoL1tBUk5EQ1FFR0hJTEtNRlBTVFdZVkJaWCpdKi8udGVzdCh0aGlzLnNlcTEpICYmIC9bQVJORENRRUdISUxLTUZQU1RXWVZCWlgqXSovLnRlc3QodGhpcy5zZXEyKSlcbiAgICAgICAgICAgIHJldHVybiBcIkJMT1NVTTYyXCI7XG4gICAgICAgIHRocm93IEVycm9yKFwiQ2FuJ3QgcmVjb2duaXplIHNlcXVlbmNlIHR5cGVcIik7XG4gICAgfVxuICAgIG5lZWRsZW1hbld1bmNoKCkge1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMSArIDE7IGkrKykge1xuICAgICAgICAgICAgbGV0IHJvdyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbjIgKyAxOyBqKyspXG4gICAgICAgICAgICAgICAgcm93LnB1c2gobmV3IENlbGwoKSk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZC5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsTmVlZGxlbWFuKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSB0aGlzLmxlbjI7IGorKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsbE9uZShpLCBqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RSZXN1bHQodGhpcy5sZW4xLCB0aGlzLmxlbjIpO1xuICAgIH1cbiAgICBzbWl0aFdhdGVybWFuKCkge1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMSArIDE7IGkrKykge1xuICAgICAgICAgICAgbGV0IHJvdyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbjIgKyAxOyBqKyspXG4gICAgICAgICAgICAgICAgcm93LnB1c2gobmV3IENlbGwoKSk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZC5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGJlc3RWYWwgPSAwO1xuICAgICAgICBsZXQgYmVzdEkgPSAwLCBiZXN0SiA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSB0aGlzLmxlbjI7IGorKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsbE9uZShpLCBqKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SV1bdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50Sl0udmFsdWUgPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA+IGJlc3RWYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdFZhbCA9IHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0SSA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RKID0gajtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RydWN0UmVzdWx0KGJlc3RJLCBiZXN0Sik7XG4gICAgfVxuICAgIHNldFNlcXVlbmNlcyhzZXExXywgc2VxMl8pIHtcbiAgICAgICAgdGhpcy5zZXExID0gc2VxMV87XG4gICAgICAgIHRoaXMuc2VxMiA9IHNlcTJfO1xuICAgICAgICB0aGlzLmxlbjEgPSB0aGlzLnNlcTEubGVuZ3RoIC8gdGhpcy5zdGVwO1xuICAgICAgICB0aGlzLmxlbjIgPSB0aGlzLnNlcTIubGVuZ3RoIC8gdGhpcy5zdGVwO1xuICAgICAgICB0aGlzLmZpbGxTY29yZXMoKTtcbiAgICB9XG4gICAgc2V0R2FwKGdhcF8pIHtcbiAgICAgICAgdGhpcy5nYXAgPSBnYXBfO1xuICAgIH1cbiAgICBzZXRNZXRob2QoYWxpZ25HcmlkXyA9IFwiXCIpIHtcbiAgICAgICAgaWYgKGFsaWduR3JpZF8gPT0gXCJBVVRPXCIpIHtcbiAgICAgICAgICAgIGFsaWduR3JpZF8gPSB0aGlzLnR5cGVSZWMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyaWRGcm9tTmFtZShhbGlnbkdyaWRfKTtcbiAgICB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IERHOyIsIm1vZHVsZS5leHBvcnRzID0gcnhqczsiLCJtb2R1bGUuZXhwb3J0cyA9IHVpOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgU2VxdWVuY2VBbGlnbm1lbnQgfSBmcm9tICcuL3NlcV9hbGlnbic7XG5leHBvcnQgY29uc3QgX3BhY2thZ2UgPSBuZXcgREcuUGFja2FnZSgpO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3dlYi1sb2dvJztcbi8vbmFtZTogc2VxdWVuY2VBbGlnbm1lbnRcbi8vaW5wdXQ6IHN0cmluZyBhbGlnblR5cGUge2Nob2ljZXM6IFsnTG9jYWwgYWxpZ25tZW50JywgJ0dsb2JhbCBhbGlnbm1lbnQnXX1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4vL2lucHV0OiBzdHJpbmcgYWxpZ25UYWJsZSB7Y2hvaWNlczogWydBVVRPJywgJ05VQ0xFT1RJREVTJywgJ0JMT1NVTTQ1JywgJ0JMT1NVTTUwJywnQkxPU1VNNjInLCdCTE9TVU04MCcsJ0JMT1NVTTkwJywnUEFNMzAnLCdQQU03MCcsJ1BBTTI1MCcsJ1NDSE5FSURFUicsJ1RSQU5TJ119XG4vL2lucHV0OiBkb3VibGUgZ2FwXG4vL2lucHV0OiBzdHJpbmcgc2VxMVxuLy9pbnB1dDogc3RyaW5nIHNlcTJcbi8vb3V0cHV0OiBvYmplY3QgcmVzXG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2VBbGlnbm1lbnQoYWxpZ25UeXBlLCBhbGlnblRhYmxlLCBnYXAsIHNlcTEsIHNlcTIpIHtcbiAgICBjb25zdCB0b0FsaWduID0gbmV3IFNlcXVlbmNlQWxpZ25tZW50KHNlcTEsIHNlcTIsIGdhcCwgYWxpZ25UYWJsZSk7XG4gICAgY29uc3QgcmVzID0gYWxpZ25UeXBlID09ICdMb2NhbCBhbGlnbm1lbnQnID8gdG9BbGlnbi5zbWl0aFdhdGVybWFuKCkgOiB0b0FsaWduLm5lZWRsZW1hbld1bmNoKCk7XG4gICAgcmV0dXJuIHJlcztcbn1cbi8vbmFtZTogV2ViTG9nb1xuLy9kZXNjcmlwdGlvbjogV2ViTG9nbyB2aWV3ZXJcbi8vdGFnczogdmlld2VyLCBwYW5lbFxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB3ZWJMb2dvVmlld2VyKCkge1xuICAgIHJldHVybiBuZXcgV2ViTG9nbygpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9
|