-
Notifications
You must be signed in to change notification settings - Fork 5
/
3_Final_Report_Team_K-2.html
370 lines (342 loc) · 844 KB
/
3_Final_Report_Team_K-2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Team K - Zichen (Zoe) Huang, Jiaying (Claire) Wu, Chen (Cici) Chen" />
<title>Advertising Response Measurement - Final Report</title>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7IH0KICAvLyAgIG1ldGhvZDI6IGZ1bmN0aW9uKCkgeyBjb25zb2xlLmxvZygnYTInKTsgfQogIC8vIH07CiAgLy8gdmFyIGIgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2IxJyk7IH0KICAvLyB9OwogIC8vIGRlbGVnYXRlTWV0aG9kKGEsIGIsICJtZXRob2QxIik7CiAgLy8gZGVsZWdhdGVNZXRob2QoYSwgYiwgIm1ldGhvZDIiKTsKICAvLyBhLm1ldGhvZDEoKTsKICAvLyBhLm1ldGhvZDIoKTsKICAvLwogIC8vIFRoZSBvdXRwdXQgd291bGQgYmUgImIxIiwgImEyIi4KICBmdW5jdGlvbiBkZWxlZ2F0ZU1ldGhvZChkZWxlZ2F0b3IsIGRlbGVnYXRlZSwgbWV0aG9kTmFtZSkgewogICAgdmFyIGluaGVyaXRlZCA9IGRlbGVnYXRvclttZXRob2ROYW1lXTsKICAgIGRlbGVnYXRvclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgdGFyZ2V0ID0gZGVsZWdhdGVlOwogICAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGVlW21ldGhvZE5hbWVdOwoKICAgICAgLy8gVGhlIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBkZWxlZ2F0ZWUuIEluc3RlYWQsCiAgICAgIC8vIGNhbGwgdGhlIG1ldGhvZCBvbiB0aGUgZGVsZWdhdG9yLCBpZiBpdCBleGlzdHMuCiAgICAgIGlmICghbWV0aG9kKSB7CiAgICAgICAgdGFyZ2V0ID0gZGVsZWdhdG9yOwogICAgICAgIG1ldGhvZCA9IGluaGVyaXRlZDsKICAgICAgfQoKICAgICAgaWYgKG1ldGhvZCkgewogICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpOwogICAgICB9CiAgICB9OwogIH0KCiAgLy8gSW1wbGVtZW50IGEgdmFndWUgZmFjc2ltaWxpZSBvZiBqUXVlcnkncyBkYXRhIG1ldGhvZAogIGZ1bmN0aW9uIGVsZW1lbnREYXRhKGVsLCBuYW1lLCB2YWx1ZSkgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewogICAgICByZXR1cm4gZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV07CiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewogICAgICBlbFsiaHRtbHdpZGdldF9kYXRhXyIgKyBuYW1lXSA9IHZhbHVlOwogICAgICByZXR1cm4gZWw7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGVsZW1lbnREYXRhOiAiICsKICAgICAgICBhcmd1bWVudHMubGVuZ3RoKTsKICAgIH0KICB9CgogIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ0NjE3MC9lc2NhcGUtc3RyaW5nLWZvci11c2UtaW4tamF2YXNjcmlwdC1yZWdleAogIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHsKICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCAiXFwkJiIpOwogIH0KCiAgZnVuY3Rpb24gaGFzQ2xhc3MoZWwsIGNsYXNzTmFtZSkgewogICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgiXFxiIiArIGVzY2FwZVJlZ0V4cChjbGFzc05hbWUpICsgIlxcYiIpOwogICAgcmV0dXJuIHJlLnRlc3QoZWwuY2xhc3NOYW1lKTsKICB9CgogIC8vIGVsZW1lbnRzIC0gYXJyYXkgKG9yIGFycmF5LWxpa2Ugb2JqZWN0KSBvZiBIVE1MIGVsZW1lbnRzCiAgLy8gY2xhc3NOYW1lIC0gY2xhc3MgbmFtZSB0byB0ZXN0IGZvcgogIC8vIGluY2x1ZGUgLSBpZiB0cnVlLCBvbmx5IHJldHVybiBlbGVtZW50cyB3aXRoIGdpdmVuIGNsYXNzTmFtZTsKICAvLyAgIGlmIGZhbHNlLCBvbmx5IHJldHVybiBlbGVtZW50cyAqd2l0aG91dCogZ2l2ZW4gY2xhc3NOYW1lCiAgZnVuY3Rpb24gZmlsdGVyQnlDbGFzcyhlbGVtZW50cywgY2xhc3NOYW1lLCBpbmNsdWRlKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudHNbaV0sIGNsYXNzTmFtZSkgPT0gaW5jbHVkZSkKICAgICAgICByZXN1bHRzLnB1c2goZWxlbWVudHNbaV0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICBmdW5jdGlvbiBvbihvYmosIGV2ZW50TmFtZSwgZnVuYykgewogICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgfSBlbHNlIGlmIChvYmouYXR0YWNoRXZlbnQpIHsKICAgICAgb2JqLmF0dGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBvZmYob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcikKICAgICAgb2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jLCBmYWxzZSk7CiAgICBlbHNlIGlmIChvYmouZGV0YWNoRXZlbnQpIHsKICAgICAgb2JqLmRldGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICAvLyBUcmFuc2xhdGUgYXJyYXkgb2YgdmFsdWVzIHRvIHRvcC9yaWdodC9ib3R0b20vbGVmdCwgYXMgdXN1YWwgd2l0aAogIC8vIHRoZSAicGFkZGluZyIgQ1NTIHByb3BlcnR5CiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmcKICBmdW5jdGlvbiB1bnBhY2tQYWRkaW5nKHZhbHVlKSB7CiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIpCiAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMF0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzBdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDIpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDMpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDQpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzNdfTsKICAgIH0KICB9CgogIC8vIENvbnZlcnQgYW4gdW5wYWNrZWQgcGFkZGluZyBvYmplY3QgdG8gYSBDU1MgdmFsdWUKICBmdW5jdGlvbiBwYWRkaW5nVG9Dc3MocGFkZGluZ09iaikgewogICAgcmV0dXJuIHBhZGRpbmdPYmoudG9wICsgInB4ICIgKyBwYWRkaW5nT2JqLnJpZ2h0ICsgInB4ICIgKyBwYWRkaW5nT2JqLmJvdHRvbSArICJweCAiICsgcGFkZGluZ09iai5sZWZ0ICsgInB4IjsKICB9CgogIC8vIE1ha2VzIGEgbnVtYmVyIHN1aXRhYmxlIGZvciBDU1MKICBmdW5jdGlvbiBweCh4KSB7CiAgICBpZiAodHlwZW9mKHgpID09PSAibnVtYmVyIikKICAgICAgcmV0dXJuIHggKyAicHgiOwogICAgZWxzZQogICAgICByZXR1cm4geDsKICB9CgogIC8vIFJldHJpZXZlcyBydW50aW1lIHdpZGdldCBzaXppbmcgaW5mb3JtYXRpb24gZm9yIGFuIGVsZW1lbnQuCiAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBlaXRoZXIgbnVsbCwgb3IgYW4gb2JqZWN0IHdpdGggZmlsbCwgcGFkZGluZywKICAvLyBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQgZmllbGRzLgogIGZ1bmN0aW9uIHNpemluZ1BvbGljeShlbCkgewogICAgdmFyIHNpemluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vaHRtbHdpZGdldC1zaXppbmcnXSIpOwogICAgaWYgKCFzaXppbmdFbCkKICAgICAgcmV0dXJuIG51bGw7CiAgICB2YXIgc3AgPSBKU09OLnBhcnNlKHNpemluZ0VsLnRleHRDb250ZW50IHx8IHNpemluZ0VsLnRleHQgfHwgInt9Iik7CiAgICBpZiAodmlld2VyTW9kZSkgewogICAgICByZXR1cm4gc3Audmlld2VyOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHNwLmJyb3dzZXI7CiAgICB9CiAgfQoKICAvLyBAcGFyYW0gdGFza3MgQXJyYXkgb2Ygc3RyaW5ncyAob3IgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2Ugbm8tb3ApLgogIC8vICAgRWFjaCBlbGVtZW50IG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCB5aWVsZHMgYQogIC8vICAgZnVuY3Rpb24uIE9yLCBjYW4gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoICJjb2RlIiBhbmQgImRhdGEiCiAgLy8gICBwcm9wZXJ0aWVzOyBpbiB0aGlzIGNhc2UsIHRoZSAiY29kZSIgcHJvcGVydHkgc2hvdWxkIGJlIGEgc3RyaW5nCiAgLy8gICBvZiBKUyB0aGF0J3MgYW4gZXhwciB0aGF0IHlpZWxkcyBhIGZ1bmN0aW9uLCBhbmQgImRhdGEiIHNob3VsZCBiZQogIC8vICAgYW4gb2JqZWN0IHRoYXQgd2lsbCBiZSBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdoZW4gdGhhdAogIC8vICAgZnVuY3Rpb24gaXMgY2FsbGVkLgogIC8vIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB0aGF0IHdpbGwgYmUgInRoaXMiIGZvciBlYWNoIGZ1bmN0aW9uCiAgLy8gICBleGVjdXRpb24uCiAgLy8gQHBhcmFtIGFyZ3MgQXJyYXkgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb25zLiAoVGhlCiAgLy8gICBzYW1lIGFyZ3VtZW50cyB3aWxsIGJlIHBhc3NlZCB0byBhbGwgZnVuY3Rpb25zLikKICBmdW5jdGlvbiBldmFsQW5kUnVuKHRhc2tzLCB0YXJnZXQsIGFyZ3MpIHsKICAgIGlmICh0YXNrcykgewogICAgICBmb3JFYWNoKHRhc2tzLCBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdmFyIHRoZXNlQXJncyA9IGFyZ3M7CiAgICAgICAgaWYgKHR5cGVvZih0YXNrKSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIHRoZXNlQXJncyA9IHRoZXNlQXJncy5jb25jYXQoW3Rhc2suZGF0YV0pOwogICAgICAgICAgdGFzayA9IHRhc2suY29kZTsKICAgICAgICB9CiAgICAgICAgdmFyIHRhc2tGdW5jID0gZXZhbCgiKCIgKyB0YXNrICsgIikiKTsKICAgICAgICBpZiAodHlwZW9mKHRhc2tGdW5jKSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXNrIG11c3QgYmUgYSBmdW5jdGlvbiEgU291cmNlOlxuIiArIHRhc2spOwogICAgICAgIH0KICAgICAgICB0YXNrRnVuYy5hcHBseSh0YXJnZXQsIHRoZXNlQXJncyk7CiAgICAgIH0pOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5pdFNpemluZyhlbCkgewogICAgdmFyIHNpemluZyA9IHNpemluZ1BvbGljeShlbCk7CiAgICBpZiAoIXNpemluZykKICAgICAgcmV0dXJuOwoKICAgIHZhciBjZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHRtbHdpZGdldF9jb250YWluZXIiKTsKICAgIGlmICghY2VsKQogICAgICByZXR1cm47CgogICAgaWYgKHR5cGVvZihzaXppbmcucGFkZGluZykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gIjAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcgPSBwYWRkaW5nVG9Dc3ModW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZykpOwogICAgfQoKICAgIGlmIChzaXppbmcuZmlsbCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGlmIChjZWwpIHsKICAgICAgICBjZWwuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIHZhciBwYWQgPSB1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKTsKICAgICAgICBjZWwuc3R5bGUudG9wID0gcGFkLnRvcCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLnJpZ2h0ID0gcGFkLnJpZ2h0ICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUuYm90dG9tID0gcGFkLmJvdHRvbSArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmxlZnQgPSBwYWQubGVmdCArICJweCI7CiAgICAgICAgZWwuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwoKICAgIH0gZWxzZSB7CiAgICAgIGVsLnN0eWxlLndpZHRoID0gcHgoc2l6aW5nLndpZHRoKTsKICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gcHgoc2l6aW5nLmhlaWdodCk7CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKICAgIH0KICB9CgogIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBtZXRob2RzCiAgdmFyIGRlZmF1bHRzID0gewogICAgZmluZDogZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGwoc2NvcGUsICIuIiArIHRoaXMubmFtZSk7CiAgICB9LAogICAgcmVuZGVyRXJyb3I6IGZ1bmN0aW9uKGVsLCBlcnIpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwoKICAgICAgdGhpcy5jbGVhckVycm9yKGVsKTsKCiAgICAgIC8vIEFkZCBhbGwgdGhlc2UgZXJyb3IgY2xhc3NlcywgYXMgU2hpbnkgZG9lcwogICAgICB2YXIgZXJyQ2xhc3MgPSAic2hpbnktb3V0cHV0LWVycm9yIjsKICAgICAgaWYgKGVyci50eXBlICE9PSBudWxsKSB7CiAgICAgICAgLy8gdXNlIHRoZSBjbGFzc2VzIG9mIHRoZSBlcnJvciBjb25kaXRpb24gYXMgQ1NTIGNsYXNzIG5hbWVzCiAgICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgIiArICQubWFwKGFzQXJyYXkoZXJyLnR5cGUpLCBmdW5jdGlvbih0eXBlKSB7CiAgICAgICAgICByZXR1cm4gZXJyQ2xhc3MgKyAiLSIgKyB0eXBlOwogICAgICAgIH0pLmpvaW4oIiAiKTsKICAgICAgfQogICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiBodG1sd2lkZ2V0cy1lcnJvciI7CgogICAgICAvLyBJcyBlbCBpbmxpbmUgb3IgYmxvY2s/IElmIGlubGluZSBvciBpbmxpbmUtYmxvY2ssIGp1c3QgZGlzcGxheTpub25lIGl0CiAgICAgIC8vIGFuZCBhZGQgYW4gaW5saW5lIGVycm9yLgogICAgICB2YXIgZGlzcGxheSA9ICRlbC5jc3MoImRpc3BsYXkiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgZGlzcGxheSk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICAkZWwuaGlkZSgpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvclNwYW4gPSAkKCI8c3Bhbj4iKS5hZGRDbGFzcyhlcnJDbGFzcyk7CiAgICAgICAgICBlcnJvclNwYW4udGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JTcGFuKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIikgewogICAgICAgIC8vIElmIGJsb2NrLCBhZGQgYW4gZXJyb3IganVzdCBhZnRlciB0aGUgZWwsIHNldCB2aXNpYmlsaXR5Om5vbmUgb24gdGhlCiAgICAgICAgLy8gZWwsIGFuZCBwb3NpdGlvbiB0aGUgZXJyb3IgdG8gYmUgb24gdG9wIG9mIHRoZSBlbC4KICAgICAgICAvLyBNYXJrIGl0IHdpdGggYSB1bmlxdWUgSUQgYW5kIENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyLgogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yRGl2ID0gJCgiPGRpdj4iKS5hZGRDbGFzcyhlcnJDbGFzcykuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpCiAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgIC8vIHNldHRpbmcgd2lkdGggY2FuIHB1c2ggb3V0IHRoZSBwYWdlIHNpemUsIGZvcmNpbmcgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGJhcnMgdG8gYXBwZWFyIGFuZCBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IKICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgdG8gc2hyaW5rOyBzbyB1c2UgbWF4LXdpZHRoIGluc3RlYWQKICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIGVycm9yRGl2LnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yRGl2KTsKCiAgICAgICAgICAvLyBSZWFsbHkgZHVtYiB3YXkgdG8ga2VlcCB0aGUgc2l6ZS9wb3NpdGlvbiBvZiB0aGUgZXJyb3IgaW4gc3luYyB3aXRoCiAgICAgICAgICAvLyB0aGUgcGFyZW50IGVsZW1lbnQgYXMgdGhlIHdpbmRvdyBpcyByZXNpemVkIG9yIHdoYXRldmVyLgogICAgICAgICAgdmFyIGludElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZXJyb3JEaXZbMF0ucGFyZW50RWxlbWVudCkgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50SWQpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlcnJvckRpdgogICAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNsZWFyRXJyb3I6IGZ1bmN0aW9uKGVsKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgbnVsbCk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICBpZiAoZGlzcGxheSkKICAgICAgICAgICRlbC5jc3MoImRpc3BsYXkiLCBkaXNwbGF5KTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpewogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaW5oZXJpdCIpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaXppbmc6IHt9CiAgfTsKCiAgLy8gQ2FsbGVkIGJ5IHdpZGdldCBiaW5kaW5ncyB0byByZWdpc3RlciBhIG5ldyB0eXBlIG9mIHdpZGdldC4gVGhlIGRlZmluaXRpb24KICAvLyBvYmplY3QgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogIC8vIC0gbmFtZSAocmVxdWlyZWQpIC0gQSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgYmluZGluZyBuYW1lLCB3aGljaCB3aWxsIGJlCiAgLy8gICB1c2VkIGJ5IGRlZmF1bHQgYXMgdGhlIENTUyBjbGFzc25hbWUgdG8gbG9vayBmb3IuCiAgLy8gLSBpbml0aWFsaXplIChvcHRpb25hbCkgLSBBIGZ1bmN0aW9uKGVsKSB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICB3aWRnZXQgZWxlbWVudDsgaWYgYSB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIHRoaXJkCiAgLy8gICB2YWx1ZSB0byByZW5kZXJWYWx1ZS4KICAvLyAtIHJlbmRlclZhbHVlIChyZXF1aXJlZCkgLSBBIGZ1bmN0aW9uKGVsLCBkYXRhLCBpbml0VmFsdWUpIHRoYXQgd2lsbCBiZQogIC8vICAgY2FsbGVkIHdpdGggZGF0YS4gU3RhdGljIGNvbnRleHRzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIGVsZW1lbnQ7IFNoaW55IGFwcHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIKICAvLyAgIGVsZW1lbnQsIGFzIHRoZSBkYXRhIGNoYW5nZXMuCiAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldCA9IGZ1bmN0aW9uKGRlZmluaXRpb24pIHsKICAgIGlmICghZGVmaW5pdGlvbi5uYW1lKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIG5hbWUiKTsKICAgIH0KICAgIGlmICghZGVmaW5pdGlvbi50eXBlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHR5cGUiKTsKICAgIH0KICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb3V0cHV0IHdpZGdldHMKICAgIGlmIChkZWZpbml0aW9uLnR5cGUgIT09ICJvdXRwdXQiKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHdpZGdldCB0eXBlICciICsgZGVmaW5pdGlvbi50eXBlICsgIiciKTsKICAgIH0KICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IC5uYW1lIGlzIGEgdmFsaWQgQ1NTIGNsYXNzbmFtZQoKICAgIC8vIFN1cHBvcnQgbmV3LXN0eWxlIGluc3RhbmNlLWJvdW5kIGRlZmluaXRpb25zLiBPbGQtc3R5bGUgY2xhc3MtYm91bmQKICAgIC8vIGRlZmluaXRpb25zIGhhdmUgb25lIHdpZGdldCAib2JqZWN0IiBwZXIgd2lkZ2V0IHBlciB0eXBlL2NsYXNzIG9mCiAgICAvLyB3aWRnZXQ7IHRoZSByZW5kZXJWYWx1ZSBhbmQgcmVzaXplIG1ldGhvZHMgb24gc3VjaCB3aWRnZXQgb2JqZWN0cwogICAgLy8gdGFrZSBlbCBhbmQgaW5zdGFuY2UgYXJndW1lbnRzLCBiZWNhdXNlIHRoZSB3aWRnZXQgb2JqZWN0IGNhbid0CiAgICAvLyBzdG9yZSB0aGVtLiBOZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbnMgaGF2ZSBvbmUgd2lkZ2V0CiAgICAvLyBvYmplY3QgcGVyIHdpZGdldCBpbnN0YW5jZTsgdGhlIGRlZmluaXRpb24gdGhhdCdzIHBhc3NlZCBpbiBkb2Vzbid0CiAgICAvLyBwcm92aWRlIHJlbmRlclZhbHVlIG9yIHJlc2l6ZSBtZXRob2RzIGF0IGFsbCwganVzdCB0aGUgc2luZ2xlIG1ldGhvZAogICAgLy8gICBmYWN0b3J5KGVsLCB3aWR0aCwgaGVpZ2h0KQogICAgLy8gd2hpY2ggcmV0dXJucyBhbiBvYmplY3QgdGhhdCBoYXMgcmVuZGVyVmFsdWUoeCkgYW5kIHJlc2l6ZSh3LCBoKS4KICAgIC8vIFRoaXMgZW5hYmxlcyBhIGZhciBtb3JlIG5hdHVyYWwgcHJvZ3JhbW1pbmcgc3R5bGUgZm9yIHRoZSB3aWRnZXQKICAgIC8vIGF1dGhvciwgd2hvIGNhbiBzdG9yZSBwZXItaW5zdGFuY2Ugc3RhdGUgdXNpbmcgZWl0aGVyIE9PLXN0eWxlCiAgICAvLyBpbnN0YW5jZSBmaWVsZHMgb3IgZnVuY3Rpb25hbC1zdHlsZSBjbG9zdXJlIHZhcmlhYmxlcyAoSSBndWVzcyB0aGlzCiAgICAvLyBpcyBpbiBjb250cmFzdCB0byB3aGF0IGNhbiBvbmx5IGJlIGNhbGxlZCBDLXN0eWxlIHBzZXVkby1PTyB3aGljaCBpcwogICAgLy8gd2hhdCB3ZSByZXF1aXJlZCBiZWZvcmUpLgogICAgaWYgKGRlZmluaXRpb24uZmFjdG9yeSkgewogICAgICBkZWZpbml0aW9uID0gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmaW5pdGlvbik7CiAgICB9CgogICAgaWYgKCFkZWZpbml0aW9uLnJlbmRlclZhbHVlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHJlbmRlclZhbHVlIGZ1bmN0aW9uIik7CiAgICB9CgogICAgLy8gRm9yIHN0YXRpYyByZW5kZXJpbmcgKG5vbi1TaGlueSksIHVzZSBhIHNpbXBsZSB3aWRnZXQgcmVnaXN0cmF0aW9uCiAgICAvLyBzY2hlbWUuIFdlIGFsc28gdXNlIHRoaXMgc2NoZW1lIGZvciBTaGlueSBhcHBzL2RvY3VtZW50cyB0aGF0IGFsc28KICAgIC8vIGNvbnRhaW4gc3RhdGljIHdpZGdldHMuCiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgLy8gTWVyZ2UgZGVmYXVsdHMgaW50byB0aGUgZGVmaW5pdGlvbjsgZG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uLgogICAgdmFyIHN0YXRpY0JpbmRpbmcgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKICAgIG92ZXJyaWRlTWV0aG9kKHN0YXRpY0JpbmRpbmcsICJmaW5kIiwgZnVuY3Rpb24oc3VwZXJmdW5jKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gc3VwZXJmdW5jKHNjb3BlKTsKICAgICAgICAvLyBGaWx0ZXIgb3V0IFNoaW55IG91dHB1dHMsIHdlIG9ubHkgd2FudCB0aGUgc3RhdGljIGtpbmQKICAgICAgICByZXR1cm4gZmlsdGVyQnlDbGFzcyhyZXN1bHRzLCAiaHRtbC13aWRnZXQtb3V0cHV0IiwgZmFsc2UpOwogICAgICB9OwogICAgfSk7CiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cy5wdXNoKHN0YXRpY0JpbmRpbmcpOwoKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gU2hpbnkgaXMgcnVubmluZy4gUmVnaXN0ZXIgdGhlIGRlZmluaXRpb24gd2l0aCBhbiBvdXRwdXQgYmluZGluZy4KICAgICAgLy8gVGhlIGRlZmluaXRpb24gaXRzZWxmIHdpbGwgbm90IGJlIHRoZSBvdXRwdXQgYmluZGluZywgaW5zdGVhZAogICAgICAvLyB3ZSB3aWxsIG1ha2UgYW4gb3V0cHV0IGJpbmRpbmcgb2JqZWN0IHRoYXQgZGVsZWdhdGVzIHRvIHRoZQogICAgICAvLyBkZWZpbml0aW9uLiBUaGlzIGlzIGJlY2F1c2Ugd2UgZm9vbGlzaGx5IHVzZWQgdGhlIHNhbWUgbWV0aG9kCiAgICAgIC8vIG5hbWUgKHJlbmRlclZhbHVlKSBmb3IgaHRtbHdpZGdldHMgZGVmaW5pdGlvbiBhbmQgU2hpbnkgYmluZGluZ3MKICAgICAgLy8gYnV0IHRoZXkgYWN0dWFsbHkgaGF2ZSBxdWl0ZSBkaWZmZXJlbnQgc2VtYW50aWNzICh0aGUgU2hpbnkKICAgICAgLy8gYmluZGluZ3MgcmVjZWl2ZSBkYXRhIHRoYXQgaW5jbHVkZXMgbG90cyBvZiBtZXRhZGF0YSB0aGF0IGl0CiAgICAgIC8vIHN0cmlwcyBvZmYgYmVmb3JlIGNhbGxpbmcgaHRtbHdpZGdldHMgcmVuZGVyVmFsdWUpLiBXZSBjYW4ndAogICAgICAvLyBqdXN0IGlnbm9yZSB0aGUgZGlmZmVyZW5jZSBiZWNhdXNlIGluIHNvbWUgd2lkZ2V0cyBpdCdzIGhlbHBmdWwKICAgICAgLy8gdG8gY2FsbCB0aGlzLnJlbmRlclZhbHVlKCkgZnJvbSBpbnNpZGUgb2YgcmVzaXplKCksIGFuZCBpZgogICAgICAvLyB3ZSdyZSBub3QgZGVsZWdhdGluZywgdGhlbiB0aGF0IGNhbGwgd2lsbCBnbyB0byB0aGUgU2hpbnkKICAgICAgLy8gdmVyc2lvbiBpbnN0ZWFkIG9mIHRoZSBodG1sd2lkZ2V0cyB2ZXJzaW9uLgoKICAgICAgLy8gTWVyZ2UgZGVmYXVsdHMgd2l0aCBkZWZpbml0aW9uLCB3aXRob3V0IG11dGF0aW5nIGVpdGhlci4KICAgICAgdmFyIGJpbmRpbmdEZWYgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKCiAgICAgIC8vIFRoaXMgb2JqZWN0IHdpbGwgYmUgb3VyIGFjdHVhbCBTaGlueSBiaW5kaW5nLgogICAgICB2YXIgc2hpbnlCaW5kaW5nID0gbmV3IFNoaW55Lk91dHB1dEJpbmRpbmcoKTsKCiAgICAgIC8vIFdpdGggYSBmZXcgZXhjZXB0aW9ucywgd2UnbGwgd2FudCB0byBzaW1wbHkgdXNlIHRoZSBiaW5kaW5nRGVmJ3MKICAgICAgLy8gdmVyc2lvbiBvZiBtZXRob2RzIGlmIHRoZXkgYXJlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0bwogICAgICAvLyBTaGlueSdzIGRlZmF1bHRzLiBOT1RFOiBJZiBTaGlueSdzIG91dHB1dCBiaW5kaW5ncyBnYWluIGFkZGl0aW9uYWwKICAgICAgLy8gbWV0aG9kcyBpbiB0aGUgZnV0dXJlLCBhbmQgd2Ugd2FudCB0aGVtIHRvIGJlIG92ZXJyaWRlYWJsZSBieQogICAgICAvLyBIVE1MV2lkZ2V0IGJpbmRpbmcgZGVmaW5pdGlvbnMsIHRoZW4gd2UnbGwgbmVlZCB0byBhZGQgdGhlbSB0byB0aGlzCiAgICAgIC8vIGxpc3QuCiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgImdldElkIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgIm9uVmFsdWVDaGFuZ2UiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAib25WYWx1ZUVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgInJlbmRlckVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgImNsZWFyRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAic2hvd1Byb2dyZXNzIik7CgogICAgICAvLyBUaGUgZmluZCwgcmVuZGVyVmFsdWUsIGFuZCByZXNpemUgYXJlIGhhbmRsZWQgZGlmZmVyZW50bHksIGJlY2F1c2Ugd2UKICAgICAgLy8gd2FudCB0byBhY3R1YWxseSBkZWNvcmF0ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJpbmRpbmdEZWYgbWV0aG9kcy4KCiAgICAgIHNoaW55QmluZGluZy5maW5kID0gZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgICB2YXIgcmVzdWx0cyA9IGJpbmRpbmdEZWYuZmluZChzY29wZSk7CgogICAgICAgIC8vIE9ubHkgcmV0dXJuIGVsZW1lbnRzIHRoYXQgYXJlIFNoaW55IG91dHB1dHMsIG5vdCBzdGF0aWMgb25lcwogICAgICAgIHZhciBkeW5hbWljUmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKCIuaHRtbC13aWRnZXQtb3V0cHV0Iik7CgogICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3aGF0ZXZlciBjYXVzZWQgU2hpbnkgdG8gdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICAvLyBuZXcgZHluYW1pYyBvdXRwdXRzLCBhbHNvIGNhdXNlZCB0aGVyZSB0byBiZSBuZXcgc3RhdGljIG91dHB1dHMuCiAgICAgICAgLy8gU2luY2UgdGhlcmUgbWlnaHQgYmUgbG90cyBvZiBkaWZmZXJlbnQgaHRtbHdpZGdldHMgYmluZGluZ3MsIHdlCiAgICAgICAgLy8gc2NoZWR1bGUgZXhlY3V0aW9uIGZvciBsYXRlci0tbm8gbmVlZCB0byBzdGF0aWNSZW5kZXIgbXVsdGlwbGUKICAgICAgICAvLyB0aW1lcy4KICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT09IGR5bmFtaWNSZXN1bHRzLmxlbmd0aCkKICAgICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyKCk7CgogICAgICAgIHJldHVybiBkeW5hbWljUmVzdWx0czsKICAgICAgfTsKCiAgICAgIC8vIFdyYXAgcmVuZGVyVmFsdWUgdG8gaGFuZGxlIGluaXRpYWxpemF0aW9uLCB3aGljaCB1bmZvcnR1bmF0ZWx5IGlzbid0CiAgICAgIC8vIHN1cHBvcnRlZCBuYXRpdmVseSBieSBTaGlueSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuCgogICAgICBzaGlueUJpbmRpbmcucmVuZGVyVmFsdWUgPSBmdW5jdGlvbihlbCwgZGF0YSkgewogICAgICAgIFNoaW55LnJlbmRlckRlcGVuZGVuY2llcyhkYXRhLmRlcHMpOwogICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgZGF0YS5ldmFscyAmJiBpIDwgZGF0YS5ldmFscy5sZW5ndGg7IGkrKykgewogICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1tpXSk7CiAgICAgICAgfQogICAgICAgIGlmICghYmluZGluZ0RlZi5yZW5kZXJPbk51bGxWYWx1ZSkgewogICAgICAgICAgaWYgKGRhdGEueCA9PT0gbnVsbCkgewogICAgICAgICAgICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaW5oZXJpdCI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICBpbml0U2l6aW5nKGVsKTsKCiAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIiwgdHJ1ZSk7CiAgICAgICAgICBpZiAoYmluZGluZ0RlZi5pbml0aWFsaXplKSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSBiaW5kaW5nRGVmLmluaXRpYWxpemUoZWwsIGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICAgIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiLCByZXN1bHQpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBiaW5kaW5nRGVmLnJlbmRlclZhbHVlKGVsLCBkYXRhLngsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSk7CiAgICAgICAgZXZhbEFuZFJ1bihkYXRhLmpzSG9va3MucmVuZGVyLCBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiksIFtlbCwgZGF0YS54XSk7CiAgICAgIH07CgogICAgICAvLyBPbmx5IG92ZXJyaWRlIHJlc2l6ZSBpZiBiaW5kaW5nRGVmIGltcGxlbWVudHMgaXQKICAgICAgaWYgKGJpbmRpbmdEZWYucmVzaXplKSB7CiAgICAgICAgc2hpbnlCaW5kaW5nLnJlc2l6ZSA9IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgICAvLyBTaGlueSBjYW4gY2FsbCByZXNpemUgYmVmb3JlIGluaXRpYWxpemUvcmVuZGVyVmFsdWUgaGF2ZSBiZWVuCiAgICAgICAgICAvLyBjYWxsZWQsIHdoaWNoIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3Igd2lkZ2V0cy4KICAgICAgICAgIGlmIChlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgICAgYmluZGluZ0RlZi5yZXNpemUoZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQoKICAgICAgU2hpbnkub3V0cHV0QmluZGluZ3MucmVnaXN0ZXIoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLm5hbWUpOwogICAgfQogIH07CgogIHZhciBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU3RhdGljUmVuZGVyKCkgewogICAgaWYgKCFzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQpIHsKICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfQoKICAvLyBSZW5kZXIgc3RhdGljIHdpZGdldHMgYWZ0ZXIgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKICAvLyBTdGF0aWNhbGx5IHJlbmRlciBhbGwgZWxlbWVudHMgdGhhdCBhcmUgb2YgdGhpcyB3aWRnZXQncyBjbGFzcwogIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIgPSBmdW5jdGlvbigpIHsKICAgIHZhciBiaW5kaW5ncyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgZm9yRWFjaChiaW5kaW5ncywgZnVuY3Rpb24oYmluZGluZykgewogICAgICB2YXIgbWF0Y2hlcyA9IGJpbmRpbmcuZmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICBmb3JFYWNoKG1hdGNoZXMsIGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgdmFyIHNpemVPYmogPSBpbml0U2l6aW5nKGVsLCBiaW5kaW5nKTsKCiAgICAgICAgaWYgKGhhc0NsYXNzKGVsLCAiaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lICsgIiBodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiOwoKICAgICAgICB2YXIgaW5pdFJlc3VsdDsKICAgICAgICBpZiAoYmluZGluZy5pbml0aWFsaXplKSB7CiAgICAgICAgICBpbml0UmVzdWx0ID0gYmluZGluZy5pbml0aWFsaXplKGVsLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICApOwogICAgICAgICAgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIsIGluaXRSZXN1bHQpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJpbmRpbmcucmVzaXplKSB7CiAgICAgICAgICB2YXIgbGFzdFNpemUgPSB7CiAgICAgICAgICAgIHc6IHNpemVPYmogPyBzaXplT2JqLmdldFdpZHRoKCkgOiBlbC5vZmZzZXRXaWR0aCwKICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgIH07CiAgICAgICAgICB2YXIgcmVzaXplSGFuZGxlciA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIHNpemUgPSB7CiAgICAgICAgICAgICAgdzogc2l6ZU9iaiA/IHNpemVPYmouZ2V0V2lkdGgoKSA6IGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgIGg6IHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGlmIChzaXplLncgPT09IDAgJiYgc2l6ZS5oID09PSAwKQogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gbGFzdFNpemUudyAmJiBzaXplLmggPT09IGxhc3RTaXplLmgpCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBsYXN0U2l6ZSA9IHNpemU7CiAgICAgICAgICAgIGJpbmRpbmcucmVzaXplKGVsLCBzaXplLncsIHNpemUuaCwgaW5pdFJlc3VsdCk7CiAgICAgICAgICB9OwoKICAgICAgICAgIG9uKHdpbmRvdywgInJlc2l6ZSIsIHJlc2l6ZUhhbmRsZXIpOwoKICAgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciBjYXNlcyB3aGVyZSB3ZSdyZSBydW5uaW5nIGluIGEgU2hpbnkKICAgICAgICAgIC8vIGFwcCwgYnV0IHRoZSB3aWRnZXQgaXRzZWxmIGlzIG5vdCBhIFNoaW55IG91dHB1dCwgYnV0CiAgICAgICAgICAvLyByYXRoZXIgYSBzaW1wbGUgc3RhdGljIHdpZGdldC4gT25lIGV4YW1wbGUgb2YgdGhpcyBpcwogICAgICAgICAgLy8gYW4gcm1hcmtkb3duIGRvY3VtZW50IHRoYXQgaGFzIHJ1bnRpbWU6c2hpbnkgYW5kIHdpZGdldAogICAgICAgICAgLy8gdGhhdCBpc24ndCBpbiBhIHJlbmRlciBmdW5jdGlvbi4gU2hpbnkgb25seSBrbm93cyB0bwogICAgICAgICAgLy8gY2FsbCByZXNpemUgaGFuZGxlcnMgZm9yIFNoaW55IG91dHB1dHMsIG5vdCBmb3Igc3RhdGljCiAgICAgICAgICAvLyB3aWRnZXRzLCBzbyB3ZSBkbyBpdCBvdXJzZWx2ZXMuCiAgICAgICAgICBpZiAod2luZG93LmpRdWVyeSkgewogICAgICAgICAgICB3aW5kb3cualF1ZXJ5KGRvY3VtZW50KS5vbigKICAgICAgICAgICAgICAic2hvd24uaHRtbHdpZGdldHMgc2hvd24uYnMudGFiLmh0bWx3aWRnZXRzIHNob3duLmJzLmNvbGxhcHNlLmh0bWx3aWRnZXRzIiwKICAgICAgICAgICAgICByZXNpemVIYW5kbGVyCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKAogICAgICAgICAgICAgICJoaWRkZW4uaHRtbHdpZGdldHMgaGlkZGVuLmJzLnRhYi5odG1sd2lkZ2V0cyBoaWRkZW4uYnMuY29sbGFwc2UuaHRtbHdpZGdldHMiLAogICAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBmb3IgdGhlIHNwZWNpZmljIGNhc2Ugb2YgaW9zbGlkZXMsIHdoaWNoCiAgICAgICAgICAvLyBmbGlwcyBzbGlkZXMgYmV0d2VlbiBkaXNwbGF5Om5vbmUgYW5kIGRpc3BsYXk6YmxvY2suCiAgICAgICAgICAvLyBJZGVhbGx5IHdlIHdvdWxkIG5vdCBoYXZlIHRvIGhhdmUgaW9zbGlkZS1zcGVjaWZpYyBjb2RlCiAgICAgICAgICAvLyBoZXJlLCBidXQgcmF0aGVyIGhhdmUgaW9zbGlkZXMgcmFpc2UgYSBnZW5lcmljIGV2ZW50LAogICAgICAgICAgLy8gYnV0IHRoZSBybWFya2Rvd24gcGFja2FnZSBqdXN0IHdlbnQgdG8gQ1JBTiBzbyB0aGUKICAgICAgICAgIC8vIHdpbmRvdyB0byBnZXR0aW5nIHRoYXQgZml4ZWQgbWF5IGJlIGxvbmcuCiAgICAgICAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgICAgICAgLy8gSXQncyBPSyB0byBsaW1pdCB0aGlzIHRvIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyCiAgICAgICAgICAgIC8vIGJyb3dzZXJzIGJlY2F1c2UgaW9zbGlkZXMgaXRzZWxmIG9ubHkgc3VwcG9ydHMKICAgICAgICAgICAgLy8gc3VjaCBicm93c2Vycy4KICAgICAgICAgICAgb24oZG9jdW1lbnQsICJzbGlkZWVudGVyIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICAgIG9uKGRvY3VtZW50LCAic2xpZGVsZWF2ZSIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdmFyIHNjcmlwdERhdGEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJzY3JpcHRbZGF0YS1mb3I9JyIgKyBlbC5pZCArICInXVt0eXBlPSdhcHBsaWNhdGlvbi9qc29uJ10iKTsKICAgICAgICBpZiAoc2NyaXB0RGF0YSkgewogICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKHNjcmlwdERhdGEudGV4dENvbnRlbnQgfHwgc2NyaXB0RGF0YS50ZXh0KTsKICAgICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgICAgZm9yICh2YXIgayA9IDA7IGRhdGEuZXZhbHMgJiYgayA8IGRhdGEuZXZhbHMubGVuZ3RoOyBrKyspIHsKICAgICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1trXSk7CiAgICAgICAgICB9CiAgICAgICAgICBiaW5kaW5nLnJlbmRlclZhbHVlKGVsLCBkYXRhLngsIGluaXRSZXN1bHQpOwogICAgICAgICAgZXZhbEFuZFJ1bihkYXRhLmpzSG9va3MucmVuZGVyLCBpbml0UmVzdWx0LCBbZWwsIGRhdGEueF0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKCiAgICBpbnZva2VQb3N0UmVuZGVySGFuZGxlcnMoKTsKICB9CgogIC8vIFdhaXQgdW50aWwgYWZ0ZXIgdGhlIGRvY3VtZW50IGhhcyBsb2FkZWQgdG8gcmVuZGVyIHRoZSB3aWRnZXRzLgogIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBhcmd1bWVudHMuY2FsbGVlLCBmYWxzZSk7CiAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgIH0sIGZhbHNlKTsKICB9IGVsc2UgaWYgKGRvY3VtZW50LmF0dGFjaEV2ZW50KSB7CiAgICBkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiKSB7CiAgICAgICAgZG9jdW1lbnQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGFyZ3VtZW50cy5jYWxsZWUpOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfQogICAgfSk7CiAgfQoKCiAgd2luZG93LkhUTUxXaWRnZXRzLmdldEF0dGFjaG1lbnRVcmwgPSBmdW5jdGlvbihkZXBuYW1lLCBrZXkpIHsKICAgIC8vIElmIG5vIGtleSwgZGVmYXVsdCB0byB0aGUgZmlyc3QgaXRlbQogICAgaWYgKHR5cGVvZihrZXkpID09PSAidW5kZWZpbmVkIikKICAgICAga2V5ID0gMTsKCiAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRlcG5hbWUgKyAiLSIgKyBrZXkgKyAiLWF0dGFjaG1lbnQiKTsKICAgIGlmICghbGluaykgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0dGFjaG1lbnQgIiArIGRlcG5hbWUgKyAiLyIgKyBrZXkgKyAiIG5vdCBmb3VuZCBpbiBkb2N1bWVudCIpOwogICAgfQogICAgcmV0dXJuIGxpbmsuZ2V0QXR0cmlidXRlKCJocmVmIik7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLmRhdGFmcmFtZVRvRDMgPSBmdW5jdGlvbihkZikgewogICAgdmFyIG5hbWVzID0gW107CiAgICB2YXIgbGVuZ3RoOwogICAgZm9yICh2YXIgbmFtZSBpbiBkZikgewogICAgICAgIGlmIChkZi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkKICAgICAgICAgICAgbmFtZXMucHVzaChuYW1lKTsKICAgICAgICBpZiAodHlwZW9mKGRmW25hbWVdKSAhPT0gIm9iamVjdCIgfHwgdHlwZW9mKGRmW25hbWVdLmxlbmd0aCkgPT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyIpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGxlbmd0aCkgIT09ICJ1bmRlZmluZWQiICYmIGxlbmd0aCAhPT0gZGZbbmFtZV0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyBvZiB0aGUgc2FtZSBsZW5ndGgiKTsKICAgICAgICB9CiAgICAgICAgbGVuZ3RoID0gZGZbbmFtZV0ubGVuZ3RoOwogICAgfQogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHZhciBpdGVtOwogICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbGVuZ3RoOyByb3crKykgewogICAgICAgIGl0ZW0gPSB7fTsKICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBuYW1lcy5sZW5ndGg7IGNvbCsrKSB7CiAgICAgICAgICAgIGl0ZW1bbmFtZXNbY29sXV0gPSBkZltuYW1lc1tjb2xdXVtyb3ddOwogICAgICAgIH0KICAgICAgICByZXN1bHRzLnB1c2goaXRlbSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9OwoKICB3aW5kb3cuSFRNTFdpZGdldHMudHJhbnNwb3NlQXJyYXkyRCA9IGZ1bmN0aW9uKGFycmF5KSB7CiAgICAgIGlmIChhcnJheS5sZW5ndGggPT09IDApIHJldHVybiBhcnJheTsKICAgICAgdmFyIG5ld0FycmF5ID0gYXJyYXlbMF0ubWFwKGZ1bmN0aW9uKGNvbCwgaSkgewogICAgICAgICAgcmV0dXJuIGFycmF5Lm1hcChmdW5jdGlvbihyb3cpIHsKICAgICAgICAgICAgICByZXR1cm4gcm93W2ldCiAgICAgICAgICB9KQogICAgICB9KTsKICAgICAgcmV0dXJuIG5ld0FycmF5OwogIH07CiAgLy8gU3BsaXQgdmFsdWUgYXQgc3BsaXRDaGFyLCBidXQgYWxsb3cgc3BsaXRDaGFyIHRvIGJlIGVzY2FwZWQKICAvLyB1c2luZyBlc2NhcGVDaGFyLiBBbnkgb3RoZXIgY2hhcmFjdGVycyBlc2NhcGVkIGJ5IGVzY2FwZUNoYXIKICAvLyB3aWxsIGJlIGluY2x1ZGVkIGFzIHVzdWFsIChpbmNsdWRpbmcgZXNjYXBlQ2hhciBpdHNlbGYpLgogIGZ1bmN0aW9uIHNwbGl0V2l0aEVzY2FwZSh2YWx1ZSwgc3BsaXRDaGFyLCBlc2NhcGVDaGFyKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdmFyIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgIHZhciBjdXJyZW50UmVzdWx0ID0gIiI7CiAgICBmb3IgKHZhciBwb3MgPSAwOyBwb3MgPCB2YWx1ZS5sZW5ndGg7IHBvcysrKSB7CiAgICAgIGlmICghZXNjYXBlTW9kZSkgewogICAgICAgIGlmICh2YWx1ZVtwb3NdID09PSBzcGxpdENoYXIpIHsKICAgICAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW3Bvc10gPT09IGVzY2FwZUNoYXIpIHsKICAgICAgICAgIGVzY2FwZU1vZGUgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjdXJyZW50UmVzdWx0ICs9IHZhbHVlW3Bvc107CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICBlc2NhcGVNb2RlID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmIChjdXJyZW50UmVzdWx0ICE9PSAiIikgewogICAgICByZXN1bHRzLnB1c2goY3VycmVudFJlc3VsdCk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9CiAgLy8gRnVuY3Rpb24gYXV0aG9yZWQgYnkgWWlodWkvSkogQWxsYWlyZQogIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlciA9IGZ1bmN0aW9uKG8sIG1lbWJlcikgewogICAgdmFyIHBhcnRzID0gc3BsaXRXaXRoRXNjYXBlKG1lbWJlciwgJy4nLCAnXFwnKTsKICAgIGZvciAodmFyIGkgPSAwLCBsID0gcGFydHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgIHZhciBwYXJ0ID0gcGFydHNbaV07CiAgICAgIC8vIHBhcnQgbWF5IGJlIGEgY2hhcmFjdGVyIG9yICdudW1lcmljJyBtZW1iZXIgbmFtZQogICAgICBpZiAobyAhPT0gbnVsbCAmJiB0eXBlb2YgbyA9PT0gIm9iamVjdCIgJiYgcGFydCBpbiBvKSB7CiAgICAgICAgaWYgKGkgPT0gKGwgLSAxKSkgeyAvLyBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSB0aGVuIGV2YWx1bGF0ZQogICAgICAgICAgaWYgKHR5cGVvZiBvW3BhcnRdID09PSAic3RyaW5nIikKICAgICAgICAgICAgb1twYXJ0XSA9IGV2YWwoIigiICsgb1twYXJ0XSArICIpIik7CiAgICAgICAgfSBlbHNlIHsgLy8gb3RoZXJ3aXNlIGNvbnRpbnVlIHRvIG5leHQgZW1iZWRkZWQgb2JqZWN0CiAgICAgICAgICBvID0gb1twYXJ0XTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9OwoKICAvLyBSZXRyaWV2ZSB0aGUgSFRNTFdpZGdldCBpbnN0YW5jZSAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlIG9mIGFuCiAgLy8gSFRNTFdpZGdldCBiaW5kaW5nJ3MgaW5pdGlhbGl6ZSgpIG9yIGZhY3RvcnkoKSBmdW5jdGlvbikKICAvLyBhc3NvY2lhdGVkIHdpdGggYW4gZWxlbWVudCwgb3IgbnVsbCBpZiBub25lLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uKGVsKSB7CiAgICByZXR1cm4gZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpOwogIH07CgogIC8vIEZpbmRzIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBzY29wZSB0aGF0IG1hdGNoZXMgdGhlIHNlbGVjdG9yLAogIC8vIGFuZCByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlIChpLmUuIHRoZSByZXR1cm4gdmFsdWUgb2YKICAvLyBhbiBIVE1MV2lkZ2V0IGJpbmRpbmcncyBpbml0aWFsaXplKCkgb3IgZmFjdG9yeSgpIGZ1bmN0aW9uKQogIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGVsZW1lbnQsIGlmIGFueS4gSWYgbm8gZWxlbWVudCBtYXRjaGVzIHRoZQogIC8vIHNlbGVjdG9yLCBvciB0aGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBoYXMgbm8gSFRNTFdpZGdldAogIC8vIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCBpdCwgdGhlbiBudWxsIGlzIHJldHVybmVkLgogIC8vCiAgLy8gVGhlIHNjb3BlIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgZGVmYXVsdHMgdG8gd2luZG93LmRvY3VtZW50LgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5maW5kID0gZnVuY3Rpb24oc2NvcGUsIHNlbGVjdG9yKSB7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHNlbGVjdG9yID0gc2NvcGU7CiAgICAgIHNjb3BlID0gZG9jdW1lbnQ7CiAgICB9CgogICAgdmFyIGVsID0gc2NvcGUucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CiAgICBpZiAoZWwgPT09IG51bGwpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlKGVsKTsKICAgIH0KICB9OwoKICAvLyBGaW5kcyBhbGwgZWxlbWVudHMgaW4gdGhlIHNjb3BlIHRoYXQgbWF0Y2ggdGhlIHNlbGVjdG9yLCBhbmQKICAvLyByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlcyAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogIC8vIGFuIEhUTUxXaWRnZXQgYmluZGluZydzIGluaXRpYWxpemUoKSBvciBmYWN0b3J5KCkgZnVuY3Rpb24pCiAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBlbGVtZW50cywgaW4gYW4gYXJyYXkuIElmIGVsZW1lbnRzIHRoYXQKICAvLyBtYXRjaCB0aGUgc2VsZWN0b3IgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIEhUTUxXaWRnZXQKICAvLyBpbnN0YW5jZSwgdGhlIHJldHVybmVkIGFycmF5IHdpbGwgY29udGFpbiBudWxscy4KICAvLwogIC8vIFRoZSBzY29wZSBhcmd1bWVudCBpcyBvcHRpb25hbCwgYW5kIGRlZmF1bHRzIHRvIHdpbmRvdy5kb2N1bWVudC4KICB3aW5kb3cuSFRNTFdpZGdldHMuZmluZEFsbCA9IGZ1bmN0aW9uKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgewogICAgICBzZWxlY3RvciA9IHNjb3BlOwogICAgICBzY29wZSA9IGRvY3VtZW50OwogICAgfQoKICAgIHZhciBub2RlcyA9IHNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKICAgICAgcmVzdWx0cy5wdXNoKHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZShub2Rlc1tpXSkpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgdmFyIHBvc3RSZW5kZXJIYW5kbGVycyA9IFtdOwogIGZ1bmN0aW9uIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpIHsKICAgIHdoaWxlIChwb3N0UmVuZGVySGFuZGxlcnMubGVuZ3RoKSB7CiAgICAgIHZhciBoYW5kbGVyID0gcG9zdFJlbmRlckhhbmRsZXJzLnNoaWZ0KCk7CiAgICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgaGFuZGxlcigpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZWdpc3RlciB0aGUgZ2l2ZW4gY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBhZnRlciB0aGUKICAvLyBuZXh0IHRpbWUgc3RhdGljIHdpZGdldHMgYXJlIHJlbmRlcmVkLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlciA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICBwb3N0UmVuZGVySGFuZGxlcnMucHVzaChjYWxsYmFjayk7CiAgfTsKCiAgLy8gVGFrZXMgYSBuZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbiwgYW5kIHJldHVybnMgYW4KICAvLyBvbGQtc3R5bGUgY2xhc3MtYm91bmQgZGVmaW5pdGlvbi4gVGhpcyBzYXZlcyB1cyBmcm9tIGhhdmluZwogIC8vIHRvIHJld3JpdGUgYWxsIHRoZSBsb2dpYyBpbiB0aGlzIGZpbGUgdG8gYWNjb21vZGF0ZSBib3RoCiAgLy8gdHlwZXMgb2YgZGVmaW5pdGlvbnMuCiAgZnVuY3Rpb24gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmbikgewogICAgdmFyIHJlc3VsdCA9IHsKICAgICAgbmFtZTogZGVmbi5uYW1lLAogICAgICB0eXBlOiBkZWZuLnR5cGUsCiAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgcmV0dXJuIGRlZm4uZmFjdG9yeShlbCwgd2lkdGgsIGhlaWdodCk7CiAgICAgIH0sCiAgICAgIHJlbmRlclZhbHVlOiBmdW5jdGlvbihlbCwgeCwgaW5zdGFuY2UpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVuZGVyVmFsdWUoeCk7CiAgICAgIH0sCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICAgICAgcmV0dXJuIGluc3RhbmNlLnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICAgfQogICAgfTsKCiAgICBpZiAoZGVmbi5maW5kKQogICAgICByZXN1bHQuZmluZCA9IGRlZm4uZmluZDsKICAgIGlmIChkZWZuLnJlbmRlckVycm9yKQogICAgICByZXN1bHQucmVuZGVyRXJyb3IgPSBkZWZuLnJlbmRlckVycm9yOwogICAgaWYgKGRlZm4uY2xlYXJFcnJvcikKICAgICAgcmVzdWx0LmNsZWFyRXJyb3IgPSBkZWZuLmNsZWFyRXJyb3I7CgogICAgcmV0dXJuIHJlc3VsdDsKICB9Cn0pKCk7Cgo="></script>
<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMi40IHwgKGMpIGpRdWVyeSBGb3VuZGF0aW9uIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihhLGIpeyJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWEuZG9jdW1lbnQ/YihhLCEwKTpmdW5jdGlvbihhKXtpZighYS5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gYihhKX06YihhKX0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnRoaXMsZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPWEuZG9jdW1lbnQsZT1jLnNsaWNlLGY9Yy5jb25jYXQsZz1jLnB1c2gsaD1jLmluZGV4T2YsaT17fSxqPWkudG9TdHJpbmcsaz1pLmhhc093blByb3BlcnR5LGw9e30sbT0iMS4xMi40IixuPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBuLmZuLmluaXQoYSxiKX0sbz0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2cscD0vXi1tcy0vLHE9Ly0oW1xkYS16XSkvZ2kscj1mdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O24uZm49bi5wcm90b3R5cGU9e2pxdWVyeTptLGNvbnN0cnVjdG9yOm4sc2VsZWN0b3I6IiIsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YT8wPmE/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdOmUuY2FsbCh0aGlzKX0scHVzaFN0YWNrOmZ1bmN0aW9uKGEpe3ZhciBiPW4ubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVybiBiLnByZXZPYmplY3Q9dGhpcyxiLmNvbnRleHQ9dGhpcy5jb250ZXh0LGJ9LGVhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZWFjaCh0aGlzLGEpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4ubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aCxjPSthKygwPmE/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYz49MCYmYj5jP1t0aGlzW2NdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDpnLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbi5leHRlbmQ9bi5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG4uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihuLmlzUGxhaW5PYmplY3QoYyl8fChiPW4uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbi5pc0FycmF5KGEpP2E6W10pOmY9YSYmbi5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1uLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbi5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKG0rTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW4udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bi50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXt2YXIgYj1hJiZhLnRvU3RyaW5nKCk7cmV0dXJuIW4uaXNBcnJheShhKSYmYi1wYXJzZUZsb2F0KGIpKzE+PTB9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZighYXx8Im9iamVjdCIhPT1uLnR5cGUoYSl8fGEubm9kZVR5cGV8fG4uaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFrLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWsuY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWlmKCFsLm93bkZpcnN0KWZvcihiIGluIGEpcmV0dXJuIGsuY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxrLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aVtqLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZuLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UocCwibXMtIikucmVwbGFjZShxLHIpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTA7aWYocyhhKSl7Zm9yKGM9YS5sZW5ndGg7Yz5kO2QrKylpZihiLmNhbGwoYVtkXSxkLGFbZF0pPT09ITEpYnJlYWt9ZWxzZSBmb3IoZCBpbiBhKWlmKGIuY2FsbChhW2RdLGQsYVtkXSk9PT0hMSlicmVhaztyZXR1cm4gYX0sdHJpbTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT8iIjooYSsiIikucmVwbGFjZShvLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8W107cmV0dXJuIG51bGwhPWEmJihzKE9iamVjdChhKSk/bi5tZXJnZShjLCJzdHJpbmciPT10eXBlb2YgYT9bYV06YSk6Zy5jYWxsKGMsYSkpLGN9LGluQXJyYXk6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2lmKGIpe2lmKGgpcmV0dXJuIGguY2FsbChiLGEsYyk7Zm9yKGQ9Yi5sZW5ndGgsYz1jPzA+Yz9NYXRoLm1heCgwLGQrYyk6YzowO2Q+YztjKyspaWYoYyBpbiBiJiZiW2NdPT09YSlyZXR1cm4gY31yZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgYz0rYi5sZW5ndGgsZD0wLGU9YS5sZW5ndGg7d2hpbGUoYz5kKWFbZSsrXT1iW2QrK107aWYoYyE9PWMpd2hpbGUodm9pZCAwIT09YltkXSlhW2UrK109YltkKytdO3JldHVybiBhLmxlbmd0aD1lLGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCxlPVtdLGY9MCxnPWEubGVuZ3RoLGg9IWM7Zz5mO2YrKylkPSFiKGFbZl0sZiksZCE9PWgmJmUucHVzaChhW2ZdKTtyZXR1cm4gZX0sbWFwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGc9MCxoPVtdO2lmKHMoYSkpZm9yKGQ9YS5sZW5ndGg7ZD5nO2crKyllPWIoYVtnXSxnLGMpLG51bGwhPWUmJmgucHVzaChlKTtlbHNlIGZvcihnIGluIGEpZT1iKGFbZ10sZyxjKSxudWxsIT1lJiZoLnB1c2goZSk7cmV0dXJuIGYuYXBwbHkoW10saCl9LGd1aWQ6MSxwcm94eTpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGImJihmPWFbYl0sYj1hLGE9Ziksbi5pc0Z1bmN0aW9uKGEpPyhjPWUuY2FsbChhcmd1bWVudHMsMiksZD1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsYy5jb25jYXQoZS5jYWxsKGFyZ3VtZW50cykpKX0sZC5ndWlkPWEuZ3VpZD1hLmd1aWR8fG4uZ3VpZCsrLGQpOnZvaWQgMH0sbm93OmZ1bmN0aW9uKCl7cmV0dXJuK25ldyBEYXRlfSxzdXBwb3J0Omx9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYobi5mbltTeW1ib2wuaXRlcmF0b3JdPWNbU3ltYm9sLml0ZXJhdG9yXSksbi5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe2lbIltvYmplY3QgIitiKyJdIl09Yi50b0xvd2VyQ2FzZSgpfSk7ZnVuY3Rpb24gcyhhKXt2YXIgYj0hIWEmJiJsZW5ndGgiaW4gYSYmYS5sZW5ndGgsYz1uLnR5cGUoYSk7cmV0dXJuImZ1bmN0aW9uIj09PWN8fG4uaXNXaW5kb3coYSk/ITE6ImFycmF5Ij09PWN8fDA9PT1ifHwibnVtYmVyIj09dHlwZW9mIGImJmI+MCYmYi0xIGluIGF9dmFyIHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdT0ic2l6emxlIisxKm5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9Z2EoKSx6PWdhKCksQT1nYSgpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPTE8PDMxLEQ9e30uaGFzT3duUHJvcGVydHksRT1bXSxGPUUucG9wLEc9RS5wdXNoLEg9RS5wdXNoLEk9RS5zbGljZSxKPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtkPmM7YysrKWlmKGFbY109PT1iKXJldHVybiBjO3JldHVybi0xfSxLPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTD0iW1xceDIwXFx0XFxyXFxuXFxmXSIsTT0iKD86XFxcXC58W1xcdy1dfFteXFx4MDAtXFx4YTBdKSsiLE49IlxcWyIrTCsiKigiK00rIikoPzoiK0wrIiooWypeJHwhfl0/PSkiK0wrIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitNKyIpKXwpIitMKyIqXFxdIixPPSI6KCIrTSsiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrTisiKSopfC4qKVxcKXwpIixQPW5ldyBSZWdFeHAoTCsiKyIsImciKSxRPW5ldyBSZWdFeHAoIl4iK0wrIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTCsiKyQiLCJnIiksUj1uZXcgUmVnRXhwKCJeIitMKyIqLCIrTCsiKiIpLFM9bmV3IFJlZ0V4cCgiXiIrTCsiKihbPit+XXwiK0wrIikiK0wrIioiKSxUPW5ldyBSZWdFeHAoIj0iK0wrIiooW15cXF0nXCJdKj8pIitMKyIqXFxdIiwiZyIpLFU9bmV3IFJlZ0V4cChPKSxWPW5ldyBSZWdFeHAoIl4iK00rIiQiKSxXPXtJRDpuZXcgUmVnRXhwKCJeIygiK00rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK04pLFBTRVVETzpuZXcgUmVnRXhwKCJeIitPKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK0wrIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK0wrIiooPzooWystXXwpIitMKyIqKFxcZCspfCkpIitMKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitLKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTCsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitMKyIqKCg/Oi1cXGQpP1xcZCopIitMKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxYPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksWT0vXmhcZCQvaSxaPS9eW157XStce1xzKlxbbmF0aXZlIFx3LywkPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sXz0vWyt+XS8sYWE9Lyd8XFwvZyxiYT1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK0wrIj98KCIrTCsiKXwuKSIsImlnIiksY2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9LGRhPWZ1bmN0aW9uKCl7bSgpfTt0cnl7SC5hcHBseShFPUkuY2FsbCh2LmNoaWxkTm9kZXMpLHYuY2hpbGROb2RlcyksRVt2LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChlYSl7SD17YXBwbHk6RS5sZW5ndGg/ZnVuY3Rpb24oYSxiKXtHLmFwcGx5KGEsSS5jYWxsKGIpKX06ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxlbmd0aCxkPTA7d2hpbGUoYVtjKytdPWJbZCsrXSk7YS5sZW5ndGg9Yy0xfX19ZnVuY3Rpb24gZmEoYSxiLGQsZSl7dmFyIGYsaCxqLGssbCxvLHIscyx3PWImJmIub3duZXJEb2N1bWVudCx4PWI/Yi5ub2RlVHlwZTo5O2lmKGQ9ZHx8W10sInN0cmluZyIhPXR5cGVvZiBhfHwhYXx8MSE9PXgmJjkhPT14JiYxMSE9PXgpcmV0dXJuIGQ7aWYoIWUmJigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixwKSl7aWYoMTEhPT14JiYobz0kLmV4ZWMoYSkpKWlmKGY9b1sxXSl7aWYoOT09PXgpe2lmKCEoaj1iLmdldEVsZW1lbnRCeUlkKGYpKSlyZXR1cm4gZDtpZihqLmlkPT09ZilyZXR1cm4gZC5wdXNoKGopLGR9ZWxzZSBpZih3JiYoaj13LmdldEVsZW1lbnRCeUlkKGYpKSYmdChiLGopJiZqLmlkPT09ZilyZXR1cm4gZC5wdXNoKGopLGR9ZWxzZXtpZihvWzJdKXJldHVybiBILmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksZDtpZigoZj1vWzNdKSYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEguYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZikpLGR9aWYoYy5xc2EmJiFBW2ErIiAiXSYmKCFxfHwhcS50ZXN0KGEpKSl7aWYoMSE9PXgpdz1iLHM9YTtlbHNlIGlmKCJvYmplY3QiIT09Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXsoaz1iLmdldEF0dHJpYnV0ZSgiaWQiKSk/az1rLnJlcGxhY2UoYWEsIlxcJCYiKTpiLnNldEF0dHJpYnV0ZSgiaWQiLGs9dSkscj1nKGEpLGg9ci5sZW5ndGgsbD1WLnRlc3Qoayk/IiMiK2s6IltpZD0nIitrKyInXSI7d2hpbGUoaC0tKXJbaF09bCsiICIrcWEocltoXSk7cz1yLmpvaW4oIiwiKSx3PV8udGVzdChhKSYmb2EoYi5wYXJlbnROb2RlKXx8Yn1pZihzKXRyeXtyZXR1cm4gSC5hcHBseShkLHcucXVlcnlTZWxlY3RvckFsbChzKSksZH1jYXRjaCh5KXt9ZmluYWxseXtrPT09dSYmYi5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gaShhLnJlcGxhY2UoUSwiJDEiKSxiLGQsZSl9ZnVuY3Rpb24gZ2EoKXt2YXIgYT1bXTtmdW5jdGlvbiBiKGMsZSl7cmV0dXJuIGEucHVzaChjKyIgIik+ZC5jYWNoZUxlbmd0aCYmZGVsZXRlIGJbYS5zaGlmdCgpXSxiW2MrIiAiXT1lfXJldHVybiBifWZ1bmN0aW9uIGhhKGEpe3JldHVybiBhW3VdPSEwLGF9ZnVuY3Rpb24gaWEoYSl7dmFyIGI9bi5jcmVhdGVFbGVtZW50KCJkaXYiKTt0cnl7cmV0dXJuISFhKGIpfWNhdGNoKGMpe3JldHVybiExfWZpbmFsbHl7Yi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYiksYj1udWxsfX1mdW5jdGlvbiBqYShhLGIpe3ZhciBjPWEuc3BsaXQoInwiKSxlPWMubGVuZ3RoO3doaWxlKGUtLSlkLmF0dHJIYW5kbGVbY1tlXV09Yn1mdW5jdGlvbiBrYShhLGIpe3ZhciBjPWImJmEsZD1jJiYxPT09YS5ub2RlVHlwZSYmMT09PWIubm9kZVR5cGUmJih+Yi5zb3VyY2VJbmRleHx8QyktKH5hLnNvdXJjZUluZGV4fHxDKTtpZihkKXJldHVybiBkO2lmKGMpd2hpbGUoYz1jLm5leHRTaWJsaW5nKWlmKGM9PT1iKXJldHVybi0xO3JldHVybiBhPzE6LTF9ZnVuY3Rpb24gbGEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YyYmYi50eXBlPT09YX19ZnVuY3Rpb24gbWEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PWN8fCJidXR0b24iPT09YykmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG5hKGEpe3JldHVybiBoYShmdW5jdGlvbihiKXtyZXR1cm4gYj0rYixoYShmdW5jdGlvbihjLGQpe3ZhciBlLGY9YShbXSxjLmxlbmd0aCxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSljW2U9ZltnXV0mJihjW2VdPSEoZFtlXT1jW2VdKSl9KX0pfWZ1bmN0aW9uIG9hKGEpe3JldHVybiBhJiYidW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmF9Yz1mYS5zdXBwb3J0PXt9LGY9ZmEuaXNYTUw9ZnVuY3Rpb24oYSl7dmFyIGI9YSYmKGEub3duZXJEb2N1bWVudHx8YSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiBiPyJIVE1MIiE9PWIubm9kZU5hbWU6ITF9LG09ZmEuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZSxnPWE/YS5vd25lckRvY3VtZW50fHxhOnY7cmV0dXJuIGchPT1uJiY5PT09Zy5ub2RlVHlwZSYmZy5kb2N1bWVudEVsZW1lbnQ/KG49ZyxvPW4uZG9jdW1lbnRFbGVtZW50LHA9IWYobiksKGU9bi5kZWZhdWx0VmlldykmJmUudG9wIT09ZSYmKGUuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZGEsITEpOmUuYXR0YWNoRXZlbnQmJmUuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixkYSkpLGMuYXR0cmlidXRlcz1pYShmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGFzc05hbWU9ImkiLCFhLmdldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIil9KSxjLmdldEVsZW1lbnRzQnlUYWdOYW1lPWlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmFwcGVuZENoaWxkKG4uY3JlYXRlQ29tbWVudCgiIikpLCFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3RofSksYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPVoudGVzdChuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpLGMuZ2V0QnlJZD1pYShmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFuLmdldEVsZW1lbnRzQnlOYW1lfHwhbi5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50QnlJZCYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYz9bY106W119fSxkLmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoYmEsY2EpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoImlkIik9PT1ifX0pOihkZWxldGUgZC5maW5kLklELGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShiYSxjYSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGVOb2RlJiZhLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIGMmJmMudmFsdWU9PT1ifX0pLGQuZmluZC5UQUc9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50c0J5VGFnTmFtZT9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOmMucXNhP2IucXVlcnlTZWxlY3RvckFsbChhKTp2b2lkIDB9OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPTAsZj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO2lmKCIqIj09PWEpe3doaWxlKGM9ZltlKytdKTE9PT1jLm5vZGVUeXBlJiZkLnB1c2goYyk7cmV0dXJuIGR9cmV0dXJuIGZ9LGQuZmluZC5DTEFTUz1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGEsYil7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT1aLnRlc3Qobi5xdWVyeVNlbGVjdG9yQWxsKSkmJihpYShmdW5jdGlvbihhKXtvLmFwcGVuZENoaWxkKGEpLmlubmVySFRNTD0iPGEgaWQ9JyIrdSsiJz48L2E+PHNlbGVjdCBpZD0nIit1KyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGEucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnEucHVzaCgiWypeJF09IitMKyIqKD86Jyd8XCJcIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHEucHVzaCgiXFxbIitMKyIqKD86dmFsdWV8IitLKyIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrdSsiLV0iKS5sZW5ndGh8fHEucHVzaCgifj0iKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrdSsiKyoiKS5sZW5ndGh8fHEucHVzaCgiLiMuK1srfl0iKX0pLGlhKGZ1bmN0aW9uKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtiLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGEuYXBwZW5kQ2hpbGQoYikuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGEucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnEucHVzaCgibmFtZSIrTCsiKlsqXiR8IX5dPz0iKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjplbmFibGVkIikubGVuZ3RofHxxLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4IikscS5wdXNoKCIsLio6Iil9KSksKGMubWF0Y2hlc1NlbGVjdG9yPVoudGVzdChzPW8ubWF0Y2hlc3x8by53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fG8ubW96TWF0Y2hlc1NlbGVjdG9yfHxvLm9NYXRjaGVzU2VsZWN0b3J8fG8ubXNNYXRjaGVzU2VsZWN0b3IpKSYmaWEoZnVuY3Rpb24oYSl7Yy5kaXNjb25uZWN0ZWRNYXRjaD1zLmNhbGwoYSwiZGl2Iikscy5jYWxsKGEsIltzIT0nJ106eCIpLHIucHVzaCgiIT0iLE8pfSkscT1xLmxlbmd0aCYmbmV3IFJlZ0V4cChxLmpvaW4oInwiKSkscj1yLmxlbmd0aCYmbmV3IFJlZ0V4cChyLmpvaW4oInwiKSksYj1aLnRlc3Qoby5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiksdD1ifHxaLnRlc3Qoby5jb250YWlucyk/ZnVuY3Rpb24oYSxiKXt2YXIgYz05PT09YS5ub2RlVHlwZT9hLmRvY3VtZW50RWxlbWVudDphLGQ9YiYmYi5wYXJlbnROb2RlO3JldHVybiBhPT09ZHx8ISghZHx8MSE9PWQubm9kZVR5cGV8fCEoYy5jb250YWlucz9jLmNvbnRhaW5zKGQpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZCkpKX06ZnVuY3Rpb24oYSxiKXtpZihiKXdoaWxlKGI9Yi5wYXJlbnROb2RlKWlmKGI9PT1hKXJldHVybiEwO3JldHVybiExfSxCPWI/ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBkPSFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSFiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiBkP2Q6KGQ9KGEub3duZXJEb2N1bWVudHx8YSk9PT0oYi5vd25lckRvY3VtZW50fHxiKT9hLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpOjEsMSZkfHwhYy5zb3J0RGV0YWNoZWQmJmIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSk9PT1kP2E9PT1ufHxhLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYSk/LTE6Yj09PW58fGIub3duZXJEb2N1bWVudD09PXYmJnQodixiKT8xOms/SihrLGEpLUooayxiKTowOjQmZD8tMToxKX06ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBjLGQ9MCxlPWEucGFyZW50Tm9kZSxmPWIucGFyZW50Tm9kZSxnPVthXSxoPVtiXTtpZighZXx8IWYpcmV0dXJuIGE9PT1uPy0xOmI9PT1uPzE6ZT8tMTpmPzE6az9KKGssYSktSihrLGIpOjA7aWYoZT09PWYpcmV0dXJuIGthKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWcudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaC51bnNoaWZ0KGMpO3doaWxlKGdbZF09PT1oW2RdKWQrKztyZXR1cm4gZD9rYShnW2RdLGhbZF0pOmdbZF09PT12Py0xOmhbZF09PT12PzE6MH0sbik6bn0sZmEubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBmYShhLG51bGwsbnVsbCxiKX0sZmEubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFQsIj0nJDEnXSIpLGMubWF0Y2hlc1NlbGVjdG9yJiZwJiYhQVtiKyIgIl0mJighcnx8IXIudGVzdChiKSkmJighcXx8IXEudGVzdChiKSkpdHJ5e3ZhciBkPXMuY2FsbChhLGIpO2lmKGR8fGMuZGlzY29ubmVjdGVkTWF0Y2h8fGEuZG9jdW1lbnQmJjExIT09YS5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gZH1jYXRjaChlKXt9cmV0dXJuIGZhKGIsbixudWxsLFthXSkubGVuZ3RoPjB9LGZhLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLHQoYSxiKX0sZmEuYXR0cj1mdW5jdGlvbihhLGIpeyhhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKTt2YXIgZT1kLmF0dHJIYW5kbGVbYi50b0xvd2VyQ2FzZSgpXSxmPWUmJkQuY2FsbChkLmF0dHJIYW5kbGUsYi50b0xvd2VyQ2FzZSgpKT9lKGEsYiwhcCk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1mP2Y6Yy5hdHRyaWJ1dGVzfHwhcD9hLmdldEF0dHJpYnV0ZShiKTooZj1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZmLnNwZWNpZmllZD9mLnZhbHVlOm51bGx9LGZhLmVycm9yPWZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIithKX0sZmEudW5pcXVlU29ydD1mdW5jdGlvbihhKXt2YXIgYixkPVtdLGU9MCxmPTA7aWYobD0hYy5kZXRlY3REdXBsaWNhdGVzLGs9IWMuc29ydFN0YWJsZSYmYS5zbGljZSgwKSxhLnNvcnQoQiksbCl7d2hpbGUoYj1hW2YrK10pYj09PWFbZl0mJihlPWQucHVzaChmKSk7d2hpbGUoZS0tKWEuc3BsaWNlKGRbZV0sMSl9cmV0dXJuIGs9bnVsbCxhfSxlPWZhLmdldFRleHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz0iIixkPTAsZj1hLm5vZGVUeXBlO2lmKGYpe2lmKDE9PT1mfHw5PT09Znx8MTE9PT1mKXtpZigic3RyaW5nIj09dHlwZW9mIGEudGV4dENvbnRlbnQpcmV0dXJuIGEudGV4dENvbnRlbnQ7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWMrPWUoYSl9ZWxzZSBpZigzPT09Znx8ND09PWYpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2Ugd2hpbGUoYj1hW2QrK10pYys9ZShiKTtyZXR1cm4gY30sZD1mYS5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpoYSxtYXRjaDpXLGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7Ij4iOntkaXI6InBhcmVudE5vZGUiLGZpcnN0OiEwfSwiICI6e2RpcjoicGFyZW50Tm9kZSJ9LCIrIjp7ZGlyOiJwcmV2aW91c1NpYmxpbmciLGZpcnN0OiEwfSwifiI6e2RpcjoicHJldmlvdXNTaWJsaW5nIn19LHByZUZpbHRlcjp7QVRUUjpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnJlcGxhY2UoYmEsY2EpLGFbM109KGFbM118fGFbNF18fGFbNV18fCIiKS5yZXBsYWNlKGJhLGNhKSwifj0iPT09YVsyXSYmKGFbM109IiAiK2FbM10rIiAiKSxhLnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKGEpe3JldHVybiBhWzFdPWFbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PWFbMV0uc2xpY2UoMCwzKT8oYVszXXx8ZmEuZXJyb3IoYVswXSksYVs0XT0rKGFbNF0/YVs1XSsoYVs2XXx8MSk6MiooImV2ZW4iPT09YVszXXx8Im9kZCI9PT1hWzNdKSksYVs1XT0rKGFbN10rYVs4XXx8Im9kZCI9PT1hWzNdKSk6YVszXSYmZmEuZXJyb3IoYVswXSksYX0sUFNFVURPOmZ1bmN0aW9uKGEpe3ZhciBiLGM9IWFbNl0mJmFbMl07cmV0dXJuIFcuQ0hJTEQudGVzdChhWzBdKT9udWxsOihhWzNdP2FbMl09YVs0XXx8YVs1XXx8IiI6YyYmVS50ZXN0KGMpJiYoYj1nKGMsITApKSYmKGI9Yy5pbmRleE9mKCIpIixjLmxlbmd0aC1iKS1jLmxlbmd0aCkmJihhWzBdPWFbMF0uc2xpY2UoMCxiKSxhWzJdPWMuc2xpY2UoMCxiKSksYS5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShiYSxjYSkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1hP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1ifX0sQ0xBU1M6ZnVuY3Rpb24oYSl7dmFyIGI9eVthKyIgIl07cmV0dXJuIGJ8fChiPW5ldyBSZWdFeHAoIihefCIrTCsiKSIrYSsiKCIrTCsifCQpIikpJiZ5KGEsZnVuY3Rpb24oYSl7cmV0dXJuIGIudGVzdCgic3RyaW5nIj09dHlwZW9mIGEuY2xhc3NOYW1lJiZhLmNsYXNzTmFtZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGU9ZmEuYXR0cihkLGEpO3JldHVybiBudWxsPT1lPyIhPSI9PT1iOmI/KGUrPSIiLCI9Ij09PWI/ZT09PWM6IiE9Ij09PWI/ZSE9PWM6Il49Ij09PWI/YyYmMD09PWUuaW5kZXhPZihjKToiKj0iPT09Yj9jJiZlLmluZGV4T2YoYyk+LTE6IiQ9Ij09PWI/YyYmZS5zbGljZSgtYy5sZW5ndGgpPT09Yzoifj0iPT09Yj8oIiAiK2UucmVwbGFjZShQLCIgIikrIiAiKS5pbmRleE9mKGMpPi0xOiJ8PSI9PT1iP2U9PT1jfHxlLnNsaWNlKDAsYy5sZW5ndGgrMSk9PT1jKyItIjohMSk6ITB9fSxDSElMRDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSJudGgiIT09YS5zbGljZSgwLDMpLGc9Imxhc3QiIT09YS5zbGljZSgtNCksaD0ib2YtdHlwZSI9PT1iO3JldHVybiAxPT09ZCYmMD09PWU/ZnVuY3Rpb24oYSl7cmV0dXJuISFhLnBhcmVudE5vZGV9OmZ1bmN0aW9uKGIsYyxpKXt2YXIgaixrLGwsbSxuLG8scD1mIT09Zz8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLHE9Yi5wYXJlbnROb2RlLHI9aCYmYi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHM9IWkmJiFoLHQ9ITE7aWYocSl7aWYoZil7d2hpbGUocCl7bT1iO3doaWxlKG09bVtwXSlpZihoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpcmV0dXJuITE7bz1wPSJvbmx5Ij09PWEmJiFvJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKG89W2c/cS5maXJzdENoaWxkOnEubGFzdENoaWxkXSxnJiZzKXttPXEsbD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLHQ9biYmalsyXSxtPW4mJnEuY2hpbGROb2Rlc1tuXTt3aGlsZShtPSsrbiYmbSYmbVtwXXx8KHQ9bj0wKXx8by5wb3AoKSlpZigxPT09bS5ub2RlVHlwZSYmKyt0JiZtPT09Yil7a1thXT1bdyxuLHRdO2JyZWFrfX1lbHNlIGlmKHMmJihtPWIsbD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLHQ9biksdD09PSExKXdoaWxlKG09KytuJiZtJiZtW3BdfHwodD1uPTApfHxvLnBvcCgpKWlmKChoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpJiYrK3QmJihzJiYobD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksa1thXT1bdyx0XSksbT09PWIpKWJyZWFrO3JldHVybiB0LT1lLHQ9PT1kfHx0JWQ9PT0wJiZ0L2Q+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT1kLnBzZXVkb3NbYV18fGQuc2V0RmlsdGVyc1thLnRvTG93ZXJDYXNlKCldfHxmYS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2EpO3JldHVybiBlW3VdP2UoYik6ZS5sZW5ndGg+MT8oYz1bYSxhLCIiLGJdLGQuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShhLnRvTG93ZXJDYXNlKCkpP2hhKGZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1lKGEsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pZD1KKGEsZltnXSksYVtkXT0hKGNbZF09ZltnXSl9KTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLDAsYyl9KTplfX0scHNldWRvczp7bm90OmhhKGZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9W10sZD1oKGEucmVwbGFjZShRLCIkMSIpKTtyZXR1cm4gZFt1XT9oYShmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnPWQoYSxudWxsLGUsW10pLGg9YS5sZW5ndGg7d2hpbGUoaC0tKShmPWdbaF0pJiYoYVtoXT0hKGJbaF09ZikpfSk6ZnVuY3Rpb24oYSxlLGYpe3JldHVybiBiWzBdPWEsZChiLG51bGwsZixjKSxiWzBdPW51bGwsIWMucG9wKCl9fSksaGFzOmhhKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZmEoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczpoYShmdW5jdGlvbihhKXtyZXR1cm4gYT1hLnJlcGxhY2UoYmEsY2EpLGZ1bmN0aW9uKGIpe3JldHVybihiLnRleHRDb250ZW50fHxiLmlubmVyVGV4dHx8ZShiKSkuaW5kZXhPZihhKT4tMX19KSxsYW5nOmhhKGZ1bmN0aW9uKGEpe3JldHVybiBWLnRlc3QoYXx8IiIpfHxmYS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIithKSxhPWEucmVwbGFjZShiYSxjYSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihiKXt2YXIgYztkbyBpZihjPXA/Yi5sYW5nOmIuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxiLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBjPWMudG9Mb3dlckNhc2UoKSxjPT09YXx8MD09PWMuaW5kZXhPZihhKyItIik7d2hpbGUoKGI9Yi5wYXJlbnROb2RlKSYmMT09PWIubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihiKXt2YXIgYz1hLmxvY2F0aW9uJiZhLmxvY2F0aW9uLmhhc2g7cmV0dXJuIGMmJmMuc2xpY2UoMSk9PT1iLmlkfSxyb290OmZ1bmN0aW9uKGEpe3JldHVybiBhPT09b30sZm9jdXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1uLmFjdGl2ZUVsZW1lbnQmJighbi5oYXNGb2N1c3x8bi5oYXNGb2N1cygpKSYmISEoYS50eXBlfHxhLmhyZWZ8fH5hLnRhYkluZGV4KX0sZW5hYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSExfSxkaXNhYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSEwfSxjaGVja2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmISFhLmNoZWNrZWR8fCJvcHRpb24iPT09YiYmISFhLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxhLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKGEpe2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZylpZihhLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hZC5wc2V1ZG9zLmVtcHR5KGEpfSxoZWFkZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIFkudGVzdChhLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFgudGVzdChhLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmImJ1dHRvbiI9PT1hLnR5cGV8fCJidXR0b24iPT09Yn0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4iaW5wdXQiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1hLnR5cGUmJihudWxsPT0oYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09Yi50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6bmEoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0Om5hKGZ1bmN0aW9uKGEsYil7cmV0dXJuW2ItMV19KSxlcTpuYShmdW5jdGlvbihhLGIsYyl7cmV0dXJuWzA+Yz9jK2I6Y119KSxldmVuOm5hKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksb2RkOm5hKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksbHQ6bmEoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wPmM/YytiOmM7LS1kPj0wOylhLnB1c2goZCk7cmV0dXJuIGF9KSxndDpuYShmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzsrK2Q8YjspYS5wdXNoKGQpO3JldHVybiBhfSl9fSxkLnBzZXVkb3MubnRoPWQucHNldWRvcy5lcTtmb3IoYiBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlkLnBzZXVkb3NbYl09bGEoYik7Zm9yKGIgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlkLnBzZXVkb3NbYl09bWEoYik7ZnVuY3Rpb24gcGEoKXt9cGEucHJvdG90eXBlPWQuZmlsdGVycz1kLnBzZXVkb3MsZC5zZXRGaWx0ZXJzPW5ldyBwYSxnPWZhLnRva2VuaXplPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaCxpLGosaz16W2ErIiAiXTtpZihrKXJldHVybiBiPzA6ay5zbGljZSgwKTtoPWEsaT1bXSxqPWQucHJlRmlsdGVyO3doaWxlKGgpe2MmJiEoZT1SLmV4ZWMoaCkpfHwoZSYmKGg9aC5zbGljZShlWzBdLmxlbmd0aCl8fGgpLGkucHVzaChmPVtdKSksYz0hMSwoZT1TLmV4ZWMoaCkpJiYoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZVswXS5yZXBsYWNlKFEsIiAiKX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2ZvcihnIGluIGQuZmlsdGVyKSEoZT1XW2ddLmV4ZWMoaCkpfHxqW2ddJiYhKGU9altnXShlKSl8fChjPWUuc2hpZnQoKSxmLnB1c2goe3ZhbHVlOmMsdHlwZTpnLG1hdGNoZXM6ZX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2lmKCFjKWJyZWFrfXJldHVybiBiP2gubGVuZ3RoOmg/ZmEuZXJyb3IoYSk6eihhLGkpLnNsaWNlKDApfTtmdW5jdGlvbiBxYShhKXtmb3IodmFyIGI9MCxjPWEubGVuZ3RoLGQ9IiI7Yz5iO2IrKylkKz1hW2JdLnZhbHVlO3JldHVybiBkfWZ1bmN0aW9uIHJhKGEsYixjKXt2YXIgZD1iLmRpcixlPWMmJiJwYXJlbnROb2RlIj09PWQsZj14Kys7cmV0dXJuIGIuZmlyc3Q/ZnVuY3Rpb24oYixjLGYpe3doaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSlyZXR1cm4gYShiLGMsZil9OmZ1bmN0aW9uKGIsYyxnKXt2YXIgaCxpLGosaz1bdyxmXTtpZihnKXt3aGlsZShiPWJbZF0paWYoKDE9PT1iLm5vZGVUeXBlfHxlKSYmYShiLGMsZykpcmV0dXJuITB9ZWxzZSB3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpe2lmKGo9Ylt1XXx8KGJbdV09e30pLGk9altiLnVuaXF1ZUlEXXx8KGpbYi51bmlxdWVJRF09e30pLChoPWlbZF0pJiZoWzBdPT09dyYmaFsxXT09PWYpcmV0dXJuIGtbMl09aFsyXTtpZihpW2RdPWssa1syXT1hKGIsYyxnKSlyZXR1cm4hMH19fWZ1bmN0aW9uIHNhKGEpe3JldHVybiBhLmxlbmd0aD4xP2Z1bmN0aW9uKGIsYyxkKXt2YXIgZT1hLmxlbmd0aDt3aGlsZShlLS0paWYoIWFbZV0oYixjLGQpKXJldHVybiExO3JldHVybiEwfTphWzBdfWZ1bmN0aW9uIHRhKGEsYixjKXtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2U+ZDtkKyspZmEoYSxiW2RdLGMpO3JldHVybiBjfWZ1bmN0aW9uIHVhKGEsYixjLGQsZSl7Zm9yKHZhciBmLGc9W10saD0wLGk9YS5sZW5ndGgsaj1udWxsIT1iO2k+aDtoKyspKGY9YVtoXSkmJihjJiYhYyhmLGQsZSl8fChnLnB1c2goZiksaiYmYi5wdXNoKGgpKSk7cmV0dXJuIGd9ZnVuY3Rpb24gdmEoYSxiLGMsZCxlLGYpe3JldHVybiBkJiYhZFt1XSYmKGQ9dmEoZCkpLGUmJiFlW3VdJiYoZT12YShlLGYpKSxoYShmdW5jdGlvbihmLGcsaCxpKXt2YXIgaixrLGwsbT1bXSxuPVtdLG89Zy5sZW5ndGgscD1mfHx0YShifHwiKiIsaC5ub2RlVHlwZT9baF06aCxbXSkscT0hYXx8IWYmJmI/cDp1YShwLG0sYSxoLGkpLHI9Yz9lfHwoZj9hOm98fGQpP1tdOmc6cTtpZihjJiZjKHEscixoLGkpLGQpe2o9dWEocixuKSxkKGosW10saCxpKSxrPWoubGVuZ3RoO3doaWxlKGstLSkobD1qW2tdKSYmKHJbbltrXV09IShxW25ba11dPWwpKX1pZihmKXtpZihlfHxhKXtpZihlKXtqPVtdLGs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiZqLnB1c2gocVtrXT1sKTtlKG51bGwscj1bXSxqLGkpfWs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiYoaj1lP0ooZixsKTptW2tdKT4tMSYmKGZbal09IShnW2pdPWwpKX19ZWxzZSByPXVhKHI9PT1nP3Iuc3BsaWNlKG8sci5sZW5ndGgpOnIpLGU/ZShudWxsLGcscixpKTpILmFwcGx5KGcscil9KX1mdW5jdGlvbiB3YShhKXtmb3IodmFyIGIsYyxlLGY9YS5sZW5ndGgsZz1kLnJlbGF0aXZlW2FbMF0udHlwZV0saD1nfHxkLnJlbGF0aXZlWyIgIl0saT1nPzE6MCxrPXJhKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09Yn0saCwhMCksbD1yYShmdW5jdGlvbihhKXtyZXR1cm4gSihiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7dmFyIGU9IWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSk7cmV0dXJuIGI9bnVsbCxlfV07Zj5pO2krKylpZihjPWQucmVsYXRpdmVbYVtpXS50eXBlXSltPVtyYShzYShtKSxjKV07ZWxzZXtpZihjPWQuZmlsdGVyW2FbaV0udHlwZV0uYXBwbHkobnVsbCxhW2ldLm1hdGNoZXMpLGNbdV0pe2ZvcihlPSsraTtmPmU7ZSsrKWlmKGQucmVsYXRpdmVbYVtlXS50eXBlXSlicmVhaztyZXR1cm4gdmEoaT4xJiZzYShtKSxpPjEmJnFhKGEuc2xpY2UoMCxpLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09YVtpLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoUSwiJDEiKSxjLGU+aSYmd2EoYS5zbGljZShpLGUpKSxmPmUmJndhKGE9YS5zbGljZShlKSksZj5lJiZxYShhKSl9bS5wdXNoKGMpfXJldHVybiBzYShtKX1mdW5jdGlvbiB4YShhLGIpe3ZhciBjPWIubGVuZ3RoPjAsZT1hLmxlbmd0aD4wLGY9ZnVuY3Rpb24oZixnLGgsaSxrKXt2YXIgbCxvLHEscj0wLHM9IjAiLHQ9ZiYmW10sdT1bXSx2PWoseD1mfHxlJiZkLmZpbmQuVEFHKCIqIixrKSx5PXcrPW51bGw9PXY/MTpNYXRoLnJhbmRvbSgpfHwuMSx6PXgubGVuZ3RoO2ZvcihrJiYoaj1nPT09bnx8Z3x8ayk7cyE9PXomJm51bGwhPShsPXhbc10pO3MrKyl7aWYoZSYmbCl7bz0wLGd8fGwub3duZXJEb2N1bWVudD09PW58fChtKGwpLGg9IXApO3doaWxlKHE9YVtvKytdKWlmKHEobCxnfHxuLGgpKXtpLnB1c2gobCk7YnJlYWt9ayYmKHc9eSl9YyYmKChsPSFxJiZsKSYmci0tLGYmJnQucHVzaChsKSl9aWYocis9cyxjJiZzIT09cil7bz0wO3doaWxlKHE9YltvKytdKXEodCx1LGcsaCk7aWYoZil7aWYocj4wKXdoaWxlKHMtLSl0W3NdfHx1W3NdfHwodVtzXT1GLmNhbGwoaSkpO3U9dWEodSl9SC5hcHBseShpLHUpLGsmJiFmJiZ1Lmxlbmd0aD4wJiZyK2IubGVuZ3RoPjEmJmZhLnVuaXF1ZVNvcnQoaSl9cmV0dXJuIGsmJih3PXksaj12KSx0fTtyZXR1cm4gYz9oYShmKTpmfXJldHVybiBoPWZhLmNvbXBpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9W10sZj1BW2ErIiAiXTtpZighZil7Ynx8KGI9ZyhhKSksYz1iLmxlbmd0aDt3aGlsZShjLS0pZj13YShiW2NdKSxmW3VdP2QucHVzaChmKTplLnB1c2goZik7Zj1BKGEseGEoZSxkKSksZi5zZWxlY3Rvcj1hfXJldHVybiBmfSxpPWZhLnNlbGVjdD1mdW5jdGlvbihhLGIsZSxmKXt2YXIgaSxqLGssbCxtLG49ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEsbz0hZiYmZyhhPW4uc2VsZWN0b3J8fGEpO2lmKGU9ZXx8W10sMT09PW8ubGVuZ3RoKXtpZihqPW9bMF09b1swXS5zbGljZSgwKSxqLmxlbmd0aD4yJiYiSUQiPT09KGs9alswXSkudHlwZSYmYy5nZXRCeUlkJiY5PT09Yi5ub2RlVHlwZSYmcCYmZC5yZWxhdGl2ZVtqWzFdLnR5cGVdKXtpZihiPShkLmZpbmQuSUQoay5tYXRjaGVzWzBdLnJlcGxhY2UoYmEsY2EpLGIpfHxbXSlbMF0sIWIpcmV0dXJuIGU7biYmKGI9Yi5wYXJlbnROb2RlKSxhPWEuc2xpY2Uoai5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1XLm5lZWRzQ29udGV4dC50ZXN0KGEpPzA6ai5sZW5ndGg7d2hpbGUoaS0tKXtpZihrPWpbaV0sZC5yZWxhdGl2ZVtsPWsudHlwZV0pYnJlYWs7aWYoKG09ZC5maW5kW2xdKSYmKGY9bShrLm1hdGNoZXNbMF0ucmVwbGFjZShiYSxjYSksXy50ZXN0KGpbMF0udHlwZSkmJm9hKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoai5zcGxpY2UoaSwxKSxhPWYubGVuZ3RoJiZxYShqKSwhYSlyZXR1cm4gSC5hcHBseShlLGYpLGU7YnJlYWt9fX1yZXR1cm4obnx8aChhLG8pKShmLGIsIXAsZSwhYnx8Xy50ZXN0KGEpJiZvYShiLnBhcmVudE5vZGUpfHxiKSxlfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9aWEoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImRpdiIpKX0pLGlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGphKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGlucHV0Lz4iLGEuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGphKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGlhKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxqYShLLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6YVtiXT09PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZkLnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxmYX0oYSk7bi5maW5kPXQsbi5leHByPXQuc2VsZWN0b3JzLG4uZXhwclsiOiJdPW4uZXhwci5wc2V1ZG9zLG4udW5pcXVlU29ydD1uLnVuaXF1ZT10LnVuaXF1ZVNvcnQsbi50ZXh0PXQuZ2V0VGV4dCxuLmlzWE1MRG9jPXQuaXNYTUwsbi5jb250YWlucz10LmNvbnRhaW5zO3ZhciB1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPXZvaWQgMCE9PWM7d2hpbGUoKGE9YVtiXSkmJjkhPT1hLm5vZGVUeXBlKWlmKDE9PT1hLm5vZGVUeXBlKXtpZihlJiZuKGEpLmlzKGMpKWJyZWFrO2QucHVzaChhKX1yZXR1cm4gZH0sdj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGluZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY30sdz1uLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LHg9L148KFtcdy1dKylccypcLz8+KD86PFwvXDE+fCkkLyx5PS9eLlteOiNcW1wuLF0qJC87ZnVuY3Rpb24geihhLGIsYyl7aWYobi5pc0Z1bmN0aW9uKGIpKXJldHVybiBuLmdyZXAoYSxmdW5jdGlvbihhLGQpe3JldHVybiEhYi5jYWxsKGEsZCxhKSE9PWN9KTtpZihiLm5vZGVUeXBlKXJldHVybiBuLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gYT09PWIhPT1jfSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKXtpZih5LnRlc3QoYikpcmV0dXJuIG4uZmlsdGVyKGIsYSxjKTtiPW4uZmlsdGVyKGIsYSl9cmV0dXJuIG4uZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBuLmluQXJyYXkoYSxiKT4tMSE9PWN9KX1uLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYxPT09ZC5ub2RlVHlwZT9uLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGQsYSk/W2RdOltdOm4uZmluZC5tYXRjaGVzKGEsbi5ncmVwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfSkpfSxuLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjPVtdLGQ9dGhpcyxlPWQubGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gdGhpcy5wdXNoU3RhY2sobihhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2U+YjtiKyspaWYobi5jb250YWlucyhkW2JdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihiPTA7ZT5iO2IrKyluLmZpbmQoYSxkW2JdLGMpO3JldHVybiBjPXRoaXMucHVzaFN0YWNrKGU+MT9uLnVuaXF1ZShjKTpjKSxjLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3I/dGhpcy5zZWxlY3RvcisiICIrYTphLGN9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeih0aGlzLGF8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeih0aGlzLGF8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEheih0aGlzLCJzdHJpbmciPT10eXBlb2YgYSYmdy50ZXN0KGEpP24oYSk6YXx8W10sITEpLmxlbmd0aH19KTt2YXIgQSxCPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKikpJC8sQz1uLmZuLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYz1jfHxBLCJzdHJpbmciPT10eXBlb2YgYSl7aWYoZT0iPCI9PT1hLmNoYXJBdCgwKSYmIj4iPT09YS5jaGFyQXQoYS5sZW5ndGgtMSkmJmEubGVuZ3RoPj0zP1tudWxsLGEsbnVsbF06Qi5leGVjKGEpLCFlfHwhZVsxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk/KGJ8fGMpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGVbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIG4/YlswXTpiLG4ubWVyZ2UodGhpcyxuLnBhcnNlSFRNTChlWzFdLGImJmIubm9kZVR5cGU/Yi5vd25lckRvY3VtZW50fHxiOmQsITApKSx4LnRlc3QoZVsxXSkmJm4uaXNQbGFpbk9iamVjdChiKSlmb3IoZSBpbiBiKW4uaXNGdW5jdGlvbih0aGlzW2VdKT90aGlzW2VdKGJbZV0pOnRoaXMuYXR0cihlLGJbZV0pO3JldHVybiB0aGlzfWlmKGY9ZC5nZXRFbGVtZW50QnlJZChlWzJdKSxmJiZmLnBhcmVudE5vZGUpe2lmKGYuaWQhPT1lWzJdKXJldHVybiBBLmZpbmQoYSk7dGhpcy5sZW5ndGg9MSx0aGlzWzBdPWZ9cmV0dXJuIHRoaXMuY29udGV4dD1kLHRoaXMuc2VsZWN0b3I9YSx0aGlzfXJldHVybiBhLm5vZGVUeXBlPyh0aGlzLmNvbnRleHQ9dGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6bi5pc0Z1bmN0aW9uKGEpPyJ1bmRlZmluZWQiIT10eXBlb2YgYy5yZWFkeT9jLnJlYWR5KGEpOmEobik6KHZvaWQgMCE9PWEuc2VsZWN0b3ImJih0aGlzLnNlbGVjdG9yPWEuc2VsZWN0b3IsdGhpcy5jb250ZXh0PWEuY29udGV4dCksbi5tYWtlQXJyYXkoYSx0aGlzKSl9O0MucHJvdG90eXBlPW4uZm4sQT1uKGQpO3ZhciBEPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLEU9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07bi5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYixjPW4oYSx0aGlzKSxkPWMubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7ZD5iO2IrKylpZihuLmNvbnRhaW5zKHRoaXMsY1tiXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPTAsZT10aGlzLmxlbmd0aCxmPVtdLGc9dy50ZXN0KGEpfHwic3RyaW5nIiE9dHlwZW9mIGE/bihhLGJ8fHRoaXMuY29udGV4dCk6MDtlPmQ7ZCsrKWZvcihjPXRoaXNbZF07YyYmYyE9PWI7Yz1jLnBhcmVudE5vZGUpaWYoYy5ub2RlVHlwZTwxMSYmKGc/Zy5pbmRleChjKT4tMToxPT09Yy5ub2RlVHlwZSYmbi5maW5kLm1hdGNoZXNTZWxlY3RvcihjLGEpKSl7Zi5wdXNoKGMpO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjayhmLmxlbmd0aD4xP24udW5pcXVlU29ydChmKTpmKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP24uaW5BcnJheSh0aGlzWzBdLG4oYSkpOm4uaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobi51bmlxdWVTb3J0KG4ubWVyZ2UodGhpcy5nZXQoKSxuKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWE/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoYSkpfX0pO2Z1bmN0aW9uIEYoYSxiKXtkbyBhPWFbYl07d2hpbGUoYSYmMSE9PWEubm9kZVR5cGUpO3JldHVybiBhfW4uZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtyZXR1cm4gYiYmMTEhPT1iLm5vZGVUeXBlP2I6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gdShhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHUoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEYoYSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gRihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gdShhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB1KGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB1KGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdShhLCJwcmV2aW91c1NpYmxpbmciLGMpfSxzaWJsaW5nczpmdW5jdGlvbihhKXtyZXR1cm4gdigoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIHYoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG4ubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDpuLm1lcmdlKFtdLGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe24uZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1uLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlwZW9mIGQmJihlPW4uZmlsdGVyKGQsZSkpLHRoaXMubGVuZ3RoPjEmJihFW2FdfHwoZT1uLnVuaXF1ZVNvcnQoZSkpLEQudGVzdChhKSYmKGU9ZS5yZXZlcnNlKCkpKSx0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgRz0vXFMrL2c7ZnVuY3Rpb24gSChhKXt2YXIgYj17fTtyZXR1cm4gbi5lYWNoKGEubWF0Y2goRyl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9bi5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/SChhKTpuLmV4dGVuZCh7fSxhKTt2YXIgYixjLGQsZSxmPVtdLGc9W10saD0tMSxpPWZ1bmN0aW9uKCl7Zm9yKGU9YS5vbmNlLGQ9Yj0hMDtnLmxlbmd0aDtoPS0xKXtjPWcuc2hpZnQoKTt3aGlsZSgrK2g8Zi5sZW5ndGgpZltoXS5hcHBseShjWzBdLGNbMV0pPT09ITEmJmEuc3RvcE9uRmFsc2UmJihoPWYubGVuZ3RoLGM9ITEpfWEubWVtb3J5fHwoYz0hMSksYj0hMSxlJiYoZj1jP1tdOiIiKX0saj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIGYmJihjJiYhYiYmKGg9Zi5sZW5ndGgtMSxnLnB1c2goYykpLGZ1bmN0aW9uIGQoYil7bi5lYWNoKGIsZnVuY3Rpb24oYixjKXtuLmlzRnVuY3Rpb24oYyk/YS51bmlxdWUmJmouaGFzKGMpfHxmLnB1c2goYyk6YyYmYy5sZW5ndGgmJiJzdHJpbmciIT09bi50eXBlKGMpJiZkKGMpfSl9KGFyZ3VtZW50cyksYyYmIWImJmkoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIG4uZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oYSxiKXt2YXIgYzt3aGlsZSgoYz1uLmluQXJyYXkoYixmLGMpKT4tMSlmLnNwbGljZShjLDEpLGg+PWMmJmgtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4gYT9uLmluQXJyYXkoYSxmKT4tMTpmLmxlbmd0aD4wfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBmJiYoZj1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBlPWc9W10sZj1jPSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIWZ9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxjfHxqLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWV9LGZpcmVXaXRoOmZ1bmN0aW9uKGEsYyl7cmV0dXJuIGV8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sZy5wdXNoKGMpLGJ8fGkoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBqLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBqfSxuLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRvbmUiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbi5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBuLkRlZmVycmVkKGZ1bmN0aW9uKGMpe24uZWFjaChiLGZ1bmN0aW9uKGIsZil7dmFyIGc9bi5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1nJiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZuLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5wcm9ncmVzcyhjLm5vdGlmeSkuZG9uZShjLnJlc29sdmUpLmZhaWwoYy5yZWplY3QpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJvbWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP24uZXh0ZW5kKGEsZCk6ZH19LGU9e307cmV0dXJuIGQucGlwZT1kLnRoZW4sbi5lYWNoKGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNhbGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1lLmNhbGwoYXJndW1lbnRzKSxkPWMubGVuZ3RoLGY9MSE9PWR8fGEmJm4uaXNGdW5jdGlvbihhLnByb21pc2UpP2Q6MCxnPTE9PT1mP2E6bi5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXtiW2FdPXRoaXMsY1thXT1hcmd1bWVudHMubGVuZ3RoPjE/ZS5jYWxsKGFyZ3VtZW50cyk6ZCxjPT09aT9nLm5vdGlmeVdpdGgoYixjKTotLWZ8fGcucmVzb2x2ZVdpdGgoYixjKX19LGksaixrO2lmKGQ+MSlmb3IoaT1uZXcgQXJyYXkoZCksaj1uZXcgQXJyYXkoZCksaz1uZXcgQXJyYXkoZCk7ZD5iO2IrKyljW2JdJiZuLmlzRnVuY3Rpb24oY1tiXS5wcm9taXNlKT9jW2JdLnByb21pc2UoKS5wcm9ncmVzcyhoKGIsaixpKSkuZG9uZShoKGIsayxjKSkuZmFpbChnLnJlamVjdCk6LS1mO3JldHVybiBmfHxnLnJlc29sdmVXaXRoKGssYyksZy5wcm9taXNlKCl9fSk7dmFyIEk7bi5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gbi5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxuLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9uLnJlYWR5V2FpdCsrOm4ucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXsoYT09PSEwPy0tbi5yZWFkeVdhaXQ6bi5pc1JlYWR5KXx8KG4uaXNSZWFkeT0hMCxhIT09ITAmJi0tbi5yZWFkeVdhaXQ+MHx8KEkucmVzb2x2ZVdpdGgoZCxbbl0pLG4uZm4udHJpZ2dlckhhbmRsZXImJihuKGQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpLG4oZCkub2ZmKCJyZWFkeSIpKSkpfX0pO2Z1bmN0aW9uIEooKXtkLmFkZEV2ZW50TGlzdGVuZXI/KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSyksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixLKSk6KGQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsSyksYS5kZXRhY2hFdmVudCgib25sb2FkIixLKSl9ZnVuY3Rpb24gSygpeyhkLmFkZEV2ZW50TGlzdGVuZXJ8fCJsb2FkIj09PWEuZXZlbnQudHlwZXx8ImNvbXBsZXRlIj09PWQucmVhZHlTdGF0ZSkmJihKKCksbi5yZWFkeSgpKX1uLnJlYWR5LnByb21pc2U9ZnVuY3Rpb24oYil7aWYoIUkpaWYoST1uLkRlZmVycmVkKCksImNvbXBsZXRlIj09PWQucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09ZC5yZWFkeVN0YXRlJiYhZC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwpYS5zZXRUaW1lb3V0KG4ucmVhZHkpO2Vsc2UgaWYoZC5hZGRFdmVudExpc3RlbmVyKWQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSyksYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixLKTtlbHNle2QuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsSyksYS5hdHRhY2hFdmVudCgib25sb2FkIixLKTt2YXIgYz0hMTt0cnl7Yz1udWxsPT1hLmZyYW1lRWxlbWVudCYmZC5kb2N1bWVudEVsZW1lbnR9Y2F0Y2goZSl7fWMmJmMuZG9TY3JvbGwmJiFmdW5jdGlvbiBmKCl7aWYoIW4uaXNSZWFkeSl7dHJ5e2MuZG9TY3JvbGwoImxlZnQiKX1jYXRjaChiKXtyZXR1cm4gYS5zZXRUaW1lb3V0KGYsNTApfUooKSxuLnJlYWR5KCl9fSgpfXJldHVybiBJLnByb21pc2UoYil9LG4ucmVhZHkucHJvbWlzZSgpO3ZhciBMO2ZvcihMIGluIG4obCkpYnJlYWs7bC5vd25GaXJzdD0iMCI9PT1MLGwuaW5saW5lQmxvY2tOZWVkc0xheW91dD0hMSxuKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGU7Yz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZChiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGIuc3R5bGUuem9vbSYmKGIuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTppbmxpbmU7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzoxcHg7d2lkdGg6MXB4O3pvb206MSIsbC5pbmxpbmVCbG9ja05lZWRzTGF5b3V0PWE9Mz09PWIub2Zmc2V0V2lkdGgsYSYmKGMuc3R5bGUuem9vbT0xKSksYy5yZW1vdmVDaGlsZChlKSl9KSxmdW5jdGlvbigpe3ZhciBhPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2wuZGVsZXRlRXhwYW5kbz0hMX1hPW51bGx9KCk7dmFyIE09ZnVuY3Rpb24oYSl7dmFyIGI9bi5ub0RhdGFbKGEubm9kZU5hbWUrIiAiKS50b0xvd2VyQ2FzZSgpXSxjPSthLm5vZGVUeXBlfHwxO3JldHVybiAxIT09YyYmOSE9PWM/ITE6IWJ8fGIhPT0hMCYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKT09PWJ9LE49L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxPPS8oW0EtWl0pL2c7ZnVuY3Rpb24gUChhLGIsYyl7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpe3ZhciBkPSJkYXRhLSIrYi5yZXBsYWNlKE8sIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpOLnRlc3QoYyk/bi5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9bi5kYXRhKGEsYixjKX1lbHNlIGM9dm9pZCAwOwp9cmV0dXJuIGN9ZnVuY3Rpb24gUShhKXt2YXIgYjtmb3IoYiBpbiBhKWlmKCgiZGF0YSIhPT1ifHwhbi5pc0VtcHR5T2JqZWN0KGFbYl0pKSYmInRvSlNPTiIhPT1iKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFIoYSxiLGQsZSl7aWYoTShhKSl7dmFyIGYsZyxoPW4uZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP24uY2FjaGU6YSxrPWk/YVtoXTphW2hdJiZoO2lmKGsmJmpba10mJihlfHxqW2tdLmRhdGEpfHx2b2lkIDAhPT1kfHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIGt8fChrPWk/YVtoXT1jLnBvcCgpfHxuLmd1aWQrKzpoKSxqW2tdfHwoaltrXT1pP3t9Ont0b0pTT046bi5ub29wfSksIm9iamVjdCIhPXR5cGVvZiBiJiYiZnVuY3Rpb24iIT10eXBlb2YgYnx8KGU/altrXT1uLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1uLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbi5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbi5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFMoYSxiLGMpe2lmKE0oYSkpe3ZhciBkLGUsZj1hLm5vZGVUeXBlLGc9Zj9uLmNhY2hlOmEsaD1mP2Fbbi5leHBhbmRvXTpuLmV4cGFuZG87aWYoZ1toXSl7aWYoYiYmKGQ9Yz9nW2hdOmdbaF0uZGF0YSkpe24uaXNBcnJheShiKT9iPWIuY29uY2F0KG4ubWFwKGIsbi5jYW1lbENhc2UpKTpiIGluIGQ/Yj1bYl06KGI9bi5jYW1lbENhc2UoYiksYj1iIGluIGQ/W2JdOmIuc3BsaXQoIiAiKSksZT1iLmxlbmd0aDt3aGlsZShlLS0pZGVsZXRlIGRbYltlXV07aWYoYz8hUShkKTohbi5pc0VtcHR5T2JqZWN0KGQpKXJldHVybn0oY3x8KGRlbGV0ZSBnW2hdLmRhdGEsUShnW2hdKSkpJiYoZj9uLmNsZWFuRGF0YShbYV0sITApOmwuZGVsZXRlRXhwYW5kb3x8ZyE9Zy53aW5kb3c/ZGVsZXRlIGdbaF06Z1toXT12b2lkIDApfX19bi5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP24uY2FjaGVbYVtuLmV4cGFuZG9dXTphW24uZXhwYW5kb10sISFhJiYhUShhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFIoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBSKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUyhhLGIsITApfX0pLG4uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bi5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbi5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW4uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLFAoZixkLGVbZF0pKSk7bi5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXtuLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXtuLmRhdGEodGhpcyxhLGIpfSk6Zj9QKGYsYSxuLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1uLl9kYXRhKGEsYiksYyYmKCFkfHxuLmlzQXJyYXkoYyk/ZD1uLl9kYXRhKGEsYixuLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW4ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bi5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXtuLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbi5fZGF0YShhLGMpfHxuLl9kYXRhKGEsYyx7ZW1wdHk6bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bi5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbi5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxuLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bi5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1uLnF1ZXVlKHRoaXMsYSxiKTtuLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm4uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe24uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1uLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW4uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSksZnVuY3Rpb24oKXt2YXIgYTtsLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxlO3JldHVybiBjPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoYiksInVuZGVmaW5lZCIhPXR5cGVvZiBiLnN0eWxlLnpvb20mJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChlKSxhKTp2b2lkIDB9fSgpO3ZhciBUPS9bKy1dPyg/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLFU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK1QrIikoW2EteiVdKikkIiwiaSIpLFY9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxXPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9Ynx8YSwibm9uZSI9PT1uLmNzcyhhLCJkaXNwbGF5Iil8fCFuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKX07ZnVuY3Rpb24gWChhLGIsYyxkKXt2YXIgZSxmPTEsZz0yMCxoPWQ/ZnVuY3Rpb24oKXtyZXR1cm4gZC5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gbi5jc3MoYSxiLCIiKX0saT1oKCksaj1jJiZjWzNdfHwobi5jc3NOdW1iZXJbYl0/IiI6InB4Iiksaz0obi5jc3NOdW1iZXJbYl18fCJweCIhPT1qJiYraSkmJlUuZXhlYyhuLmNzcyhhLGIpKTtpZihrJiZrWzNdIT09ail7aj1qfHxrWzNdLGM9Y3x8W10saz0raXx8MTtkbyBmPWZ8fCIuNSIsay89ZixuLnN0eWxlKGEsYixrK2opO3doaWxlKGYhPT0oZj1oKCkvaSkmJjEhPT1mJiYtLWcpfXJldHVybiBjJiYoaz0ra3x8K2l8fDAsZT1jWzFdP2srKGNbMV0rMSkqY1syXTorY1syXSxkJiYoZC51bml0PWosZC5zdGFydD1rLGQuZW5kPWUpKSxlfXZhciBZPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1uLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYylZKGEsYixoLGNbaF0sITAsZixnKX1lbHNlIGlmKHZvaWQgMCE9PWQmJihlPSEwLG4uaXNGdW5jdGlvbihkKXx8KGc9ITApLGomJihnPyhiLmNhbGwoYSxkKSxiPW51bGwpOihqPWIsYj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGouY2FsbChuKGEpLGMpfSkpLGIpKWZvcig7aT5oO2grKyliKGFbaF0sYyxnP2Q6ZC5jYWxsKGFbaF0saCxiKGFbaF0sYykpKTtyZXR1cm4gZT9hOmo/Yi5jYWxsKGEpOmk/YihhWzBdLGMpOmZ9LFo9L14oPzpjaGVja2JveHxyYWRpbykkL2ksJD0vPChbXHc6LV0rKS8sXz0vXiR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2ksYWE9L15ccysvLGJhPSJhYmJyfGFydGljbGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8ZGlhbG9nfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1haW58bWFya3xtZXRlcnxuYXZ8b3V0cHV0fHBpY3R1cmV8cHJvZ3Jlc3N8c2VjdGlvbnxzdW1tYXJ5fHRlbXBsYXRlfHRpbWV8dmlkZW8iO2Z1bmN0aW9uIGNhKGEpe3ZhciBiPWJhLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfSFmdW5jdGlvbigpe3ZhciBhPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksYj1kLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxjPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTthLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixsLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUsbC50Ym9keT0hYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsbC5odG1sU2VyaWFsaXplPSEhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxsLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09ZC5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxjLnR5cGU9ImNoZWNrYm94IixjLmNoZWNrZWQ9ITAsYi5hcHBlbmRDaGlsZChjKSxsLmFwcGVuZENoZWNrZWQ9Yy5jaGVja2VkLGEuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixsLm5vQ2xvbmVDaGVja2VkPSEhYS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYi5hcHBlbmRDaGlsZChhKSxjPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksYy5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksYy5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksYS5hcHBlbmRDaGlsZChjKSxsLmNoZWNrQ2xvbmU9YS5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsbC5ub0Nsb25lRXZlbnQ9ISFhLmFkZEV2ZW50TGlzdGVuZXIsYVtuLmV4cGFuZG9dPTEsbC5hdHRyaWJ1dGVzPSFhLmdldEF0dHJpYnV0ZShuLmV4cGFuZG8pfSgpO3ZhciBkYT17b3B0aW9uOlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sbGVnZW5kOlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLHBhcmFtOlsxLCI8b2JqZWN0PiIsIjwvb2JqZWN0PiJdLHRoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6bC5odG1sU2VyaWFsaXplP1swLCIiLCIiXTpbMSwiWDxkaXY+IiwiPC9kaXY+Il19O2RhLm9wdGdyb3VwPWRhLm9wdGlvbixkYS50Ym9keT1kYS50Zm9vdD1kYS5jb2xncm91cD1kYS5jYXB0aW9uPWRhLnRoZWFkLGRhLnRoPWRhLnRkO2Z1bmN0aW9uIGVhKGEsYil7dmFyIGMsZCxlPTAsZj0idW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWU/YS5nZXRFbGVtZW50c0J5VGFnTmFtZShifHwiKiIpOiJ1bmRlZmluZWQiIT10eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsP2EucXVlcnlTZWxlY3RvckFsbChifHwiKiIpOnZvaWQgMDtpZighZilmb3IoZj1bXSxjPWEuY2hpbGROb2Rlc3x8YTtudWxsIT0oZD1jW2VdKTtlKyspIWJ8fG4ubm9kZU5hbWUoZCxiKT9mLnB1c2goZCk6bi5tZXJnZShmLGVhKGQsYikpO3JldHVybiB2b2lkIDA9PT1ifHxiJiZuLm5vZGVOYW1lKGEsYik/bi5tZXJnZShbYV0sZik6Zn1mdW5jdGlvbiBmYShhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW4uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG4uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX12YXIgZ2E9Lzx8JiM/XHcrOy8saGE9Lzx0Ym9keS9pO2Z1bmN0aW9uIGlhKGEpe1oudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIGphKGEsYixjLGQsZSl7Zm9yKHZhciBmLGcsaCxpLGosayxtLG89YS5sZW5ndGgscD1jYShiKSxxPVtdLHI9MDtvPnI7cisrKWlmKGc9YVtyXSxnfHwwPT09ZylpZigib2JqZWN0Ij09PW4udHlwZShnKSluLm1lcmdlKHEsZy5ub2RlVHlwZT9bZ106Zyk7ZWxzZSBpZihnYS50ZXN0KGcpKXtpPWl8fHAuYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaj0oJC5leGVjKGcpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLG09ZGFbal18fGRhLl9kZWZhdWx0LGkuaW5uZXJIVE1MPW1bMV0rbi5odG1sUHJlZmlsdGVyKGcpK21bMl0sZj1tWzBdO3doaWxlKGYtLSlpPWkubGFzdENoaWxkO2lmKCFsLmxlYWRpbmdXaGl0ZXNwYWNlJiZhYS50ZXN0KGcpJiZxLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShhYS5leGVjKGcpWzBdKSksIWwudGJvZHkpe2c9InRhYmxlIiE9PWp8fGhhLnRlc3QoZyk/Ijx0YWJsZT4iIT09bVsxXXx8aGEudGVzdChnKT8wOmk6aS5maXJzdENoaWxkLGY9ZyYmZy5jaGlsZE5vZGVzLmxlbmd0aDt3aGlsZShmLS0pbi5ub2RlTmFtZShrPWcuY2hpbGROb2Rlc1tmXSwidGJvZHkiKSYmIWsuY2hpbGROb2Rlcy5sZW5ndGgmJmcucmVtb3ZlQ2hpbGQoayl9bi5tZXJnZShxLGkuY2hpbGROb2RlcyksaS50ZXh0Q29udGVudD0iIjt3aGlsZShpLmZpcnN0Q2hpbGQpaS5yZW1vdmVDaGlsZChpLmZpcnN0Q2hpbGQpO2k9cC5sYXN0Q2hpbGR9ZWxzZSBxLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShnKSk7aSYmcC5yZW1vdmVDaGlsZChpKSxsLmFwcGVuZENoZWNrZWR8fG4uZ3JlcChlYShxLCJpbnB1dCIpLGlhKSxyPTA7d2hpbGUoZz1xW3IrK10paWYoZCYmbi5pbkFycmF5KGcsZCk+LTEpZSYmZS5wdXNoKGcpO2Vsc2UgaWYoaD1uLmNvbnRhaW5zKGcub3duZXJEb2N1bWVudCxnKSxpPWVhKHAuYXBwZW5kQ2hpbGQoZyksInNjcmlwdCIpLGgmJmZhKGkpLGMpe2Y9MDt3aGlsZShnPWlbZisrXSlfLnRlc3QoZy50eXBlfHwiIikmJmMucHVzaChnKX1yZXR1cm4gaT1udWxsLHB9IWZ1bmN0aW9uKCl7dmFyIGIsYyxlPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKGIgaW57c3VibWl0OiEwLGNoYW5nZTohMCxmb2N1c2luOiEwfSljPSJvbiIrYiwobFtiXT1jIGluIGEpfHwoZS5zZXRBdHRyaWJ1dGUoYywidCIpLGxbYl09ZS5hdHRyaWJ1dGVzW2NdLmV4cGFuZG89PT0hMSk7ZT1udWxsfSgpO3ZhciBrYT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksbGE9L15rZXkvLG1hPS9eKD86bW91c2V8cG9pbnRlcnxjb250ZXh0bWVudXxkcmFnfGRyb3ApfGNsaWNrLyxuYT0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sb2E9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIHBhKCl7cmV0dXJuITB9ZnVuY3Rpb24gcWEoKXtyZXR1cm4hMX1mdW5jdGlvbiByYSgpe3RyeXtyZXR1cm4gZC5hY3RpdmVFbGVtZW50fWNhdGNoKGEpe319ZnVuY3Rpb24gc2EoYSxiLGMsZCxlLGYpe3ZhciBnLGg7aWYoIm9iamVjdCI9PXR5cGVvZiBiKXsic3RyaW5nIiE9dHlwZW9mIGMmJihkPWR8fGMsYz12b2lkIDApO2ZvcihoIGluIGIpc2EoYSxoLGMsZCxiW2hdLGYpO3JldHVybiBhfWlmKG51bGw9PWQmJm51bGw9PWU/KGU9YyxkPWM9dm9pZCAwKTpudWxsPT1lJiYoInN0cmluZyI9PXR5cGVvZiBjPyhlPWQsZD12b2lkIDApOihlPWQsZD1jLGM9dm9pZCAwKSksZT09PSExKWU9cWE7ZWxzZSBpZighZSlyZXR1cm4gYTtyZXR1cm4gMT09PWYmJihnPWUsZT1mdW5jdGlvbihhKXtyZXR1cm4gbigpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZS5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1uLmd1aWQrKykpLGEuZWFjaChmdW5jdGlvbigpe24uZXZlbnQuYWRkKHRoaXMsYixlLGQsYyl9KX1uLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxvLHAscSxyPW4uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW4uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Ygbnx8YSYmbi5ldmVudC50cmlnZ2VyZWQ9PT1hLnR5cGU/dm9pZCAwOm4uZXZlbnQuZGlzcGF0Y2guYXBwbHkoay5lbGVtLGFyZ3VtZW50cyl9LGsuZWxlbT1hKSxiPShifHwiIikubWF0Y2goRyl8fFsiIl0saD1iLmxlbmd0aDt3aGlsZShoLS0pZj1vYS5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW4uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm4uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChtPWdbb10pfHwobT1nW29dPVtdLG0uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP20uc3BsaWNlKG0uZGVsZWdhdGVDb3VudCsrLDAsbCk6bS5wdXNoKGwpLG4uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG8scCxxLHI9bi5oYXNEYXRhKGEpJiZuLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEcpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9b2EuZXhlYyhiW2pdKXx8W10sbz1xPWhbMV0scD0oaFsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLG8pe2w9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShkP2wuZGVsZWdhdGVUeXBlOmwuYmluZFR5cGUpfHxvLG09a1tvXXx8W10saD1oWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitwLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLGk9Zj1tLmxlbmd0aDt3aGlsZShmLS0pZz1tW2ZdLCFlJiZxIT09Zy5vcmlnVHlwZXx8YyYmYy5ndWlkIT09Zy5ndWlkfHxoJiYhaC50ZXN0KGcubmFtZXNwYWNlKXx8ZCYmZCE9PWcuc2VsZWN0b3ImJigiKioiIT09ZHx8IWcuc2VsZWN0b3IpfHwobS5zcGxpY2UoZiwxKSxnLnNlbGVjdG9yJiZtLmRlbGVnYXRlQ291bnQtLSxsLnJlbW92ZSYmbC5yZW1vdmUuY2FsbChhLGcpKTtpJiYhbS5sZW5ndGgmJihsLnRlYXJkb3duJiZsLnRlYXJkb3duLmNhbGwoYSxwLHIuaGFuZGxlKSE9PSExfHxuLnJlbW92ZUV2ZW50KGEsbyxyLmhhbmRsZSksZGVsZXRlIGtbb10pfWVsc2UgZm9yKG8gaW4gayluLmV2ZW50LnJlbW92ZShhLG8rYltqXSxjLGQsITApO24uaXNFbXB0eU9iamVjdChrKSYmKGRlbGV0ZSByLmhhbmRsZSxuLl9yZW1vdmVEYXRhKGEsImV2ZW50cyIpKX19LHRyaWdnZXI6ZnVuY3Rpb24oYixjLGUsZil7dmFyIGcsaCxpLGosbCxtLG8scD1bZXx8ZF0scT1rLmNhbGwoYiwidHlwZSIpP2IudHlwZTpiLHI9ay5jYWxsKGIsIm5hbWVzcGFjZSIpP2IubmFtZXNwYWNlLnNwbGl0KCIuIik6W107aWYoaT1tPWU9ZXx8ZCwzIT09ZS5ub2RlVHlwZSYmOCE9PWUubm9kZVR5cGUmJiFuYS50ZXN0KHErbi5ldmVudC50cmlnZ2VyZWQpJiYocS5pbmRleE9mKCIuIik+LTEmJihyPXEuc3BsaXQoIi4iKSxxPXIuc2hpZnQoKSxyLnNvcnQoKSksaD1xLmluZGV4T2YoIjoiKTwwJiYib24iK3EsYj1iW24uZXhwYW5kb10/YjpuZXcgbi5FdmVudChxLCJvYmplY3QiPT10eXBlb2YgYiYmYiksYi5pc1RyaWdnZXI9Zj8yOjMsYi5uYW1lc3BhY2U9ci5qb2luKCIuIiksYi5ybmFtZXNwYWNlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Iuam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1lKSxjPW51bGw9PWM/W2JdOm4ubWFrZUFycmF5KGMsW2JdKSxsPW4uZXZlbnQuc3BlY2lhbFtxXXx8e30sZnx8IWwudHJpZ2dlcnx8bC50cmlnZ2VyLmFwcGx5KGUsYykhPT0hMSkpe2lmKCFmJiYhbC5ub0J1YmJsZSYmIW4uaXNXaW5kb3coZSkpe2ZvcihqPWwuZGVsZWdhdGVUeXBlfHxxLG5hLnRlc3QoaitxKXx8KGk9aS5wYXJlbnROb2RlKTtpO2k9aS5wYXJlbnROb2RlKXAucHVzaChpKSxtPWk7bT09PShlLm93bmVyRG9jdW1lbnR8fGQpJiZwLnB1c2gobS5kZWZhdWx0Vmlld3x8bS5wYXJlbnRXaW5kb3d8fGEpfW89MDt3aGlsZSgoaT1wW28rK10pJiYhYi5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWIudHlwZT1vPjE/ajpsLmJpbmRUeXBlfHxxLGc9KG4uX2RhdGEoaSwiZXZlbnRzIil8fHt9KVtiLnR5cGVdJiZuLl9kYXRhKGksImhhbmRsZSIpLGcmJmcuYXBwbHkoaSxjKSxnPWgmJmlbaF0sZyYmZy5hcHBseSYmTShpKSYmKGIucmVzdWx0PWcuYXBwbHkoaSxjKSxiLnJlc3VsdD09PSExJiZiLnByZXZlbnREZWZhdWx0KCkpO2lmKGIudHlwZT1xLCFmJiYhYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKCFsLl9kZWZhdWx0fHxsLl9kZWZhdWx0LmFwcGx5KHAucG9wKCksYyk9PT0hMSkmJk0oZSkmJmgmJmVbcV0mJiFuLmlzV2luZG93KGUpKXttPWVbaF0sbSYmKGVbaF09bnVsbCksbi5ldmVudC50cmlnZ2VyZWQ9cTt0cnl7ZVtxXSgpfWNhdGNoKHMpe31uLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbSYmKGVbaF09bSl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1uLmV2ZW50LmZpeChhKTt2YXIgYixjLGQsZixnLGg9W10saT1lLmNhbGwoYXJndW1lbnRzKSxqPShuLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1uLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1uLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGM9MDt3aGlsZSgoZz1mLmhhbmRsZXJzW2MrK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKWEucm5hbWVzcGFjZSYmIWEucm5hbWVzcGFjZS50ZXN0KGcubmFtZXNwYWNlKXx8KGEuaGFuZGxlT2JqPWcsYS5kYXRhPWcuZGF0YSxkPSgobi5ldmVudC5zcGVjaWFsW2cub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxnLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1kJiYoYS5yZXN1bHQ9ZCk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoImNsaWNrIiE9PWEudHlwZXx8aXNOYU4oYS5idXR0b24pfHxhLmJ1dHRvbjwxKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZD1bXSxjPTA7aD5jO2MrKylmPWJbY10sZT1mLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1kW2VdJiYoZFtlXT1mLm5lZWRzQ29udGV4dD9uKGUsdGhpcykuaW5kZXgoaSk+LTE6bi5maW5kKGUsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxkW2VdJiZkLnB1c2goZik7ZC5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmR9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW24uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxlLGY9YS50eXBlLGc9YSxoPXRoaXMuZml4SG9va3NbZl07aHx8KHRoaXMuZml4SG9va3NbZl09aD1tYS50ZXN0KGYpP3RoaXMubW91c2VIb29rczpsYS50ZXN0KGYpP3RoaXMua2V5SG9va3M6e30pLGU9aC5wcm9wcz90aGlzLnByb3BzLmNvbmNhdChoLnByb3BzKTp0aGlzLnByb3BzLGE9bmV3IG4uRXZlbnQoZyksYj1lLmxlbmd0aDt3aGlsZShiLS0pYz1lW2JdLGFbY109Z1tjXTtyZXR1cm4gYS50YXJnZXR8fChhLnRhcmdldD1nLnNyY0VsZW1lbnR8fGQpLDM9PT1hLnRhcmdldC5ub2RlVHlwZSYmKGEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGUpLGEubWV0YUtleT0hIWEubWV0YUtleSxoLmZpbHRlcj9oLmZpbHRlcihhLGcpOmF9LHByb3BzOiJhbHRLZXkgYnViYmxlcyBjYW5jZWxhYmxlIGN0cmxLZXkgY3VycmVudFRhcmdldCBkZXRhaWwgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGc9Yi5idXR0b24saD1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihlPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fGQsZj1lLmRvY3VtZW50RWxlbWVudCxjPWUuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZiYmZi5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShmJiZmLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGYmJmYuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGYmJmYuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmgmJihhLnJlbGF0ZWRUYXJnZXQ9aD09PWEudGFyZ2V0P2IudG9FbGVtZW50OmgpLGEud2hpY2h8fHZvaWQgMD09PWd8fChhLndoaWNoPTEmZz8xOjImZz8zOjQmZz8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09cmEoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1yYSgpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBuLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbi5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW4uZXh0ZW5kKG5ldyBuLkV2ZW50LGMse3R5cGU6YSxpc1NpbXVsYXRlZDohMH0pO24uZXZlbnQudHJpZ2dlcihkLG51bGwsYiksZC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbi5yZW1vdmVFdmVudD1kLnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgYVtkXSYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbi5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygbi5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/cGE6cWEpOnRoaXMudHlwZT1hLGImJm4uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG4ubm93KCksdm9pZCh0aGlzW24uZXhwYW5kb109ITApKTpuZXcgbi5FdmVudChhLGIpfSxuLkV2ZW50LnByb3RvdHlwZT17Y29uc3RydWN0b3I6bi5FdmVudCxpc0RlZmF1bHRQcmV2ZW50ZWQ6cWEsaXNQcm9wYWdhdGlvblN0b3BwZWQ6cWEsaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6cWEscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9cGEsYSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1wYSxhJiYhdGhpcy5pc1NpbXVsYXRlZCYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9cGEsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG4uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXtuLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybiBlJiYoZT09PWR8fG4uY29udGFpbnMoZCxlKSl8fChhLnR5cGU9Zi5vcmlnVHlwZSxjPWYuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWIpLGN9fX0pLGwuc3VibWl0fHwobi5ldmVudC5zcGVjaWFsLnN1Ym1pdD17c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ub2RlTmFtZSh0aGlzLCJmb3JtIik/ITE6dm9pZCBuLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fc3VibWl0IGtleXByZXNzLl9zdWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGM9bi5ub2RlTmFtZShiLCJpbnB1dCIpfHxuLm5vZGVOYW1lKGIsImJ1dHRvbiIpP24ucHJvcChiLCJmb3JtIik6dm9pZCAwO2MmJiFuLl9kYXRhKGMsInN1Ym1pdCIpJiYobi5ldmVudC5hZGQoYywic3VibWl0Ll9zdWJtaXQiLGZ1bmN0aW9uKGEpe2EuX3N1Ym1pdEJ1YmJsZT0hMH0pLG4uX2RhdGEoYywic3VibWl0IiwhMCkpfSl9LHBvc3REaXNwYXRjaDpmdW5jdGlvbihhKXthLl9zdWJtaXRCdWJibGUmJihkZWxldGUgYS5fc3VibWl0QnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZuLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG4ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbi5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxsLmNoYW5nZXx8KG4uZXZlbnQuc3BlY2lhbC5jaGFuZ2U9e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIGthLnRlc3QodGhpcy5ub2RlTmFtZSk/KCJjaGVja2JveCIhPT10aGlzLnR5cGUmJiJyYWRpbyIhPT10aGlzLnR5cGV8fChuLmV2ZW50LmFkZCh0aGlzLCJwcm9wZXJ0eWNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXsiY2hlY2tlZCI9PT1hLm9yaWdpbmFsRXZlbnQucHJvcGVydHlOYW1lJiYodGhpcy5fanVzdENoYW5nZWQ9ITApfSksbi5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdENoYW5nZWQmJiFhLmlzVHJpZ2dlciYmKHRoaXMuX2p1c3RDaGFuZ2VkPSExKSxuLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMsYSl9KSksITEpOnZvaWQgbi5ldmVudC5hZGQodGhpcywiYmVmb3JlYWN0aXZhdGUuX2NoYW5nZSIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQ7a2EudGVzdChiLm5vZGVOYW1lKSYmIW4uX2RhdGEoYiwiY2hhbmdlIikmJihuLmV2ZW50LmFkZChiLCJjaGFuZ2UuX2NoYW5nZSIsZnVuY3Rpb24oYSl7IXRoaXMucGFyZW50Tm9kZXx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fG4uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcy5wYXJlbnROb2RlLGEpfSksbi5fZGF0YShiLCJjaGFuZ2UiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBuLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFrYS50ZXN0KHRoaXMubm9kZU5hbWUpfX0pLGwuZm9jdXNpbnx8bi5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe24uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxuLmV2ZW50LmZpeChhKSl9O24uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1uLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbi5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW4uX2RhdGEoZCxiKS0xO2U/bi5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG4uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG4uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gc2EodGhpcyxhLGIsYyxkKX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBzYSh0aGlzLGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixuKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuIGIhPT0hMSYmImZ1bmN0aW9uIiE9dHlwZW9mIGJ8fChjPWIsYj12b2lkIDApLGM9PT0hMSYmKGM9cWEpLHRoaXMuZWFjaChmdW5jdGlvbigpe24uZXZlbnQucmVtb3ZlKHRoaXMsYSxjLGIpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXNbMF07cmV0dXJuIGM/bi5ldmVudC50cmlnZ2VyKGEsYixjLCEwKTp2b2lkIDB9fSk7dmFyIHRhPS8galF1ZXJ5XGQrPSIoPzpudWxsfFxkKykiL2csdWE9bmV3IFJlZ0V4cCgiPCg/OiIrYmErIilbXFxzLz5dIiwiaSIpLHZhPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzotXSspW14+XSopXC8+L2dpLHdhPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLHhhPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLHlhPS9edHJ1ZVwvKC4qKS8semE9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLEFhPWNhKGQpLEJhPUFhLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudCgiZGl2IikpO2Z1bmN0aW9uIENhKGEsYil7cmV0dXJuIG4ubm9kZU5hbWUoYSwidGFibGUiKSYmbi5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiBEYShhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bi5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24gRWEoYSl7dmFyIGI9eWEuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiBGYShhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZuLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW4uX2RhdGEoYSksZz1uLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyluLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW4uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBHYShhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWwubm9DbG9uZUV2ZW50JiZiW24uZXhwYW5kb10pe2U9bi5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyluLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobi5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oRGEoYikudGV4dD1hLnRleHQsRWEoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGwuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFuLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmWi50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOiJpbnB1dCIhPT1jJiYidGV4dGFyZWEiIT09Y3x8KGIuZGVmYXVsdFZhbHVlPWEuZGVmYXVsdFZhbHVlKX19ZnVuY3Rpb24gSGEoYSxiLGMsZCl7Yj1mLmFwcGx5KFtdLGIpO3ZhciBlLGcsaCxpLGosayxtPTAsbz1hLmxlbmd0aCxwPW8tMSxxPWJbMF0scj1uLmlzRnVuY3Rpb24ocSk7aWYocnx8bz4xJiYic3RyaW5nIj09dHlwZW9mIHEmJiFsLmNoZWNrQ2xvbmUmJnhhLnRlc3QocSkpcmV0dXJuIGEuZWFjaChmdW5jdGlvbihlKXt2YXIgZj1hLmVxKGUpO3ImJihiWzBdPXEuY2FsbCh0aGlzLGUsZi5odG1sKCkpKSxIYShmLGIsYyxkKX0pO2lmKG8mJihrPWphKGIsYVswXS5vd25lckRvY3VtZW50LCExLGEsZCksZT1rLmZpcnN0Q2hpbGQsMT09PWsuY2hpbGROb2Rlcy5sZW5ndGgmJihrPWUpLGV8fGQpKXtmb3IoaT1uLm1hcChlYShrLCJzY3JpcHQiKSxEYSksaD1pLmxlbmd0aDtvPm07bSsrKWc9ayxtIT09cCYmKGc9bi5jbG9uZShnLCEwLCEwKSxoJiZuLm1lcmdlKGksZWEoZywic2NyaXB0IikpKSxjLmNhbGwoYVttXSxnLG0pO2lmKGgpZm9yKGo9aVtpLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG4ubWFwKGksRWEpLG09MDtoPm07bSsrKWc9aVttXSxfLnRlc3QoZy50eXBlfHwiIikmJiFuLl9kYXRhKGcsImdsb2JhbEV2YWwiKSYmbi5jb250YWlucyhqLGcpJiYoZy5zcmM/bi5fZXZhbFVybCYmbi5fZXZhbFVybChnLnNyYyk6bi5nbG9iYWxFdmFsKChnLnRleHR8fGcudGV4dENvbnRlbnR8fGcuaW5uZXJIVE1MfHwiIikucmVwbGFjZSh6YSwiIikpKTtrPWU9bnVsbH1yZXR1cm4gYX1mdW5jdGlvbiBJYShhLGIsYyl7Zm9yKHZhciBkLGU9Yj9uLmZpbHRlcihiLGEpOmEsZj0wO251bGwhPShkPWVbZl0pO2YrKyljfHwxIT09ZC5ub2RlVHlwZXx8bi5jbGVhbkRhdGEoZWEoZCkpLGQucGFyZW50Tm9kZSYmKGMmJm4uY29udGFpbnMoZC5vd25lckRvY3VtZW50LGQpJiZmYShlYShkLCJzY3JpcHQiKSksZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpKTtyZXR1cm4gYX1uLmV4dGVuZCh7aHRtbFByZWZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKHZhLCI8JDE+PC8kMj4iKX0sY2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1uLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihsLmh0bWw1Q2xvbmV8fG4uaXNYTUxEb2MoYSl8fCF1YS50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KEJhLmlubmVySFRNTD1hLm91dGVySFRNTCxCYS5yZW1vdmVDaGlsZChmPUJhLmZpcnN0Q2hpbGQpKSwhKGwubm9DbG9uZUV2ZW50JiZsLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxuLmlzWE1MRG9jKGEpKSlmb3IoZD1lYShmKSxoPWVhKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmR2EoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8ZWEoYSksZD1kfHxlYShmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUZhKGUsZFtnXSk7ZWxzZSBGYShhLGYpO3JldHVybiBkPWVhKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJmZhKGQsIWkmJmVhKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGNsZWFuRGF0YTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgZCxlLGYsZyxoPTAsaT1uLmV4cGFuZG8saj1uLmNhY2hlLGs9bC5hdHRyaWJ1dGVzLG09bi5ldmVudC5zcGVjaWFsO251bGwhPShkPWFbaF0pO2grKylpZigoYnx8TShkKSkmJihmPWRbaV0sZz1mJiZqW2ZdKSl7aWYoZy5ldmVudHMpZm9yKGUgaW4gZy5ldmVudHMpbVtlXT9uLmV2ZW50LnJlbW92ZShkLGUpOm4ucmVtb3ZlRXZlbnQoZCxlLGcuaGFuZGxlKTtqW2ZdJiYoZGVsZXRlIGpbZl0sa3x8InVuZGVmaW5lZCI9PXR5cGVvZiBkLnJlbW92ZUF0dHJpYnV0ZT9kW2ldPXZvaWQgMDpkLnJlbW92ZUF0dHJpYnV0ZShpKSxjLnB1c2goZikpfX19KSxuLmZuLmV4dGVuZCh7ZG9tTWFuaXA6SGEsZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiBJYSh0aGlzLGEsITApfSxyZW1vdmU6ZnVuY3Rpb24oYSl7cmV0dXJuIElhKHRoaXMsYSl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9uLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxkKS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIEhhKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj1DYSh0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPUNhKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm4uY2xlYW5EYXRhKGVhKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbi5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbi5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UodGEsIiIpOnZvaWQgMDtpZigic3RyaW5nIj09dHlwZW9mIGEmJiF3YS50ZXN0KGEpJiYobC5odG1sU2VyaWFsaXplfHwhdWEudGVzdChhKSkmJihsLmxlYWRpbmdXaGl0ZXNwYWNlfHwhYWEudGVzdChhKSkmJiFkYVsoJC5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1uLmh0bWxQcmVmaWx0ZXIoYSk7dHJ5e2Zvcig7ZD5jO2MrKyliPXRoaXNbY118fHt9LDE9PT1iLm5vZGVUeXBlJiYobi5jbGVhbkRhdGEoZWEoYiwhMSkpLGIuaW5uZXJIVE1MPWEpO2I9MH1jYXRjaChlKXt9fWImJnRoaXMuZW1wdHkoKS5hcHBlbmQoYSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5wYXJlbnROb2RlO24uaW5BcnJheSh0aGlzLGEpPDAmJihuLmNsZWFuRGF0YShlYSh0aGlzKSksYyYmYy5yZXBsYWNlQ2hpbGQoYix0aGlzKSl9LGEpfX0pLG4uZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhKXtmb3IodmFyIGMsZD0wLGU9W10sZj1uKGEpLGg9Zi5sZW5ndGgtMTtoPj1kO2QrKyljPWQ9PT1oP3RoaXM6dGhpcy5jbG9uZSghMCksbihmW2RdKVtiXShjKSxnLmFwcGx5KGUsYy5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBKYSxLYT17SFRNTDoiYmxvY2siLEJPRFk6ImJsb2NrIn07ZnVuY3Rpb24gTGEoYSxiKXt2YXIgYz1uKGIuY3JlYXRlRWxlbWVudChhKSkuYXBwZW5kVG8oYi5ib2R5KSxkPW4uY3NzKGNbMF0sImRpc3BsYXkiKTtyZXR1cm4gYy5kZXRhY2goKSxkfWZ1bmN0aW9uIE1hKGEpe3ZhciBiPWQsYz1LYVthXTtyZXR1cm4gY3x8KGM9TGEoYSxiKSwibm9uZSIhPT1jJiZjfHwoSmE9KEphfHxuKCI8aWZyYW1lIGZyYW1lYm9yZGVyPScwJyB3aWR0aD0nMCcgaGVpZ2h0PScwJy8+IikpLmFwcGVuZFRvKGIuZG9jdW1lbnRFbGVtZW50KSxiPShKYVswXS5jb250ZW50V2luZG93fHxKYVswXS5jb250ZW50RG9jdW1lbnQpLmRvY3VtZW50LGIud3JpdGUoKSxiLmNsb3NlKCksYz1MYShhLGIpLEphLmRldGFjaCgpKSxLYVthXT1jKSxjfXZhciBOYT0vXm1hcmdpbi8sT2E9bmV3IFJlZ0V4cCgiXigiK1QrIikoPyFweClbYS16JV0rJCIsImkiKSxQYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX0sUWE9ZC5kb2N1bWVudEVsZW1lbnQ7IWZ1bmN0aW9uKCl7dmFyIGIsYyxlLGYsZyxoLGk9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxqPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoai5zdHlsZSl7ai5zdHlsZS5jc3NUZXh0PSJmbG9hdDpsZWZ0O29wYWNpdHk6LjUiLGwub3BhY2l0eT0iMC41Ij09PWouc3R5bGUub3BhY2l0eSxsLmNzc0Zsb2F0PSEhai5zdHlsZS5jc3NGbG9hdCxqLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsai5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGwuY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1qLnN0eWxlLmJhY2tncm91bmRDbGlwLGk9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpLnN0eWxlLmNzc1RleHQ9ImJvcmRlcjowO3dpZHRoOjhweDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHg7cGFkZGluZzowO21hcmdpbi10b3A6MXB4O3Bvc2l0aW9uOmFic29sdXRlIixqLmlubmVySFRNTD0iIixpLmFwcGVuZENoaWxkKGopLGwuYm94U2l6aW5nPSIiPT09ai5zdHlsZS5ib3hTaXppbmd8fCIiPT09ai5zdHlsZS5Nb3pCb3hTaXppbmd8fCIiPT09ai5zdHlsZS5XZWJraXRCb3hTaXppbmcsbi5leHRlbmQobCx7cmVsaWFibGVIaWRkZW5PZmZzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxmfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksZX0scGl4ZWxNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksY30scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksYn0scmVsaWFibGVNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksZ30scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxofX0pO2Z1bmN0aW9uIGsoKXt2YXIgayxsLG09ZC5kb2N1bWVudEVsZW1lbnQ7bS5hcHBlbmRDaGlsZChpKSxqLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7dG9wOjElO3dpZHRoOjUwJSIsYj1lPWg9ITEsYz1nPSEwLGEuZ2V0Q29tcHV0ZWRTdHlsZSYmKGw9YS5nZXRDb21wdXRlZFN0eWxlKGopLGI9IjElIiE9PShsfHx7fSkudG9wLGg9IjJweCI9PT0obHx8e30pLm1hcmdpbkxlZnQsZT0iNHB4Ij09PShsfHx7d2lkdGg6IjRweCJ9KS53aWR0aCxqLnN0eWxlLm1hcmdpblJpZ2h0PSI1MCUiLGM9IjRweCI9PT0obHx8e21hcmdpblJpZ2h0OiI0cHgifSkubWFyZ2luUmlnaHQsaz1qLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudCgiZGl2IikpLGsuc3R5bGUuY3NzVGV4dD1qLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsay5zdHlsZS5tYXJnaW5SaWdodD1rLnN0eWxlLndpZHRoPSIwIixqLnN0eWxlLndpZHRoPSIxcHgiLGc9IXBhcnNlRmxvYXQoKGEuZ2V0Q29tcHV0ZWRTdHlsZShrKXx8e30pLm1hcmdpblJpZ2h0KSxqLnJlbW92ZUNoaWxkKGspKSxqLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGY9MD09PWouZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgsZiYmKGouc3R5bGUuZGlzcGxheT0iIixqLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQ+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiIsai5jaGlsZE5vZGVzWzBdLnN0eWxlLmJvcmRlckNvbGxhcHNlPSJzZXBhcmF0ZSIsaz1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpLGtbMF0uc3R5bGUuY3NzVGV4dD0ibWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowO2Rpc3BsYXk6bm9uZSIsZj0wPT09a1swXS5vZmZzZXRIZWlnaHQsZiYmKGtbMF0uc3R5bGUuZGlzcGxheT0iIixrWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGY9MD09PWtbMF0ub2Zmc2V0SGVpZ2h0KSksbS5yZW1vdmVDaGlsZChpKX19fSgpO3ZhciBSYSxTYSxUYT0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhSYT1mdW5jdGlvbihiKXt2YXIgYz1iLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIGMmJmMub3BlbmVyfHwoYz1hKSxjLmdldENvbXB1dGVkU3R5bGUoYil9LFNhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuc3R5bGU7cmV0dXJuIGM9Y3x8UmEoYSksZz1jP2MuZ2V0UHJvcGVydHlWYWx1ZShiKXx8Y1tiXTp2b2lkIDAsIiIhPT1nJiZ2b2lkIDAhPT1nfHxuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8KGc9bi5zdHlsZShhLGIpKSxjJiYhbC5waXhlbE1hcmdpblJpZ2h0KCkmJk9hLnRlc3QoZykmJk5hLnRlc3QoYikmJihkPWgud2lkdGgsZT1oLm1pbldpZHRoLGY9aC5tYXhXaWR0aCxoLm1pbldpZHRoPWgubWF4V2lkdGg9aC53aWR0aD1nLGc9Yy53aWR0aCxoLndpZHRoPWQsaC5taW5XaWR0aD1lLGgubWF4V2lkdGg9Ziksdm9pZCAwPT09Zz9nOmcrIiJ9KTpRYS5jdXJyZW50U3R5bGUmJihSYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5jdXJyZW50U3R5bGV9LFNhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuc3R5bGU7cmV0dXJuIGM9Y3x8UmEoYSksZz1jP2NbYl06dm9pZCAwLG51bGw9PWcmJmgmJmhbYl0mJihnPWhbYl0pLE9hLnRlc3QoZykmJiFUYS50ZXN0KGIpJiYoZD1oLmxlZnQsZT1hLnJ1bnRpbWVTdHlsZSxmPWUmJmUubGVmdCxmJiYoZS5sZWZ0PWEuY3VycmVudFN0eWxlLmxlZnQpLGgubGVmdD0iZm9udFNpemUiPT09Yj8iMWVtIjpnLGc9aC5waXhlbExlZnQrInB4IixoLmxlZnQ9ZCxmJiYoZS5sZWZ0PWYpKSx2b2lkIDA9PT1nP2c6ZysiInx8ImF1dG8ifSk7ZnVuY3Rpb24gVWEoYSxiKXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEoKT92b2lkIGRlbGV0ZSB0aGlzLmdldDoodGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19dmFyIFZhPS9hbHBoYVwoW14pXSpcKS9pLFdhPS9vcGFjaXR5XHMqPVxzKihbXildKikvaSxYYT0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sWWE9bmV3IFJlZ0V4cCgiXigiK1QrIikoLiopJCIsImkiKSxaYT17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sJGE9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LF9hPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl0sYWI9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZTtmdW5jdGlvbiBiYihhKXtpZihhIGluIGFiKXJldHVybiBhO3ZhciBiPWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zbGljZSgxKSxjPV9hLmxlbmd0aDt3aGlsZShjLS0paWYoYT1fYVtjXStiLGEgaW4gYWIpcmV0dXJuIGF9ZnVuY3Rpb24gY2IoYSxiKXtmb3IodmFyIGMsZCxlLGY9W10sZz0wLGg9YS5sZW5ndGg7aD5nO2crKylkPWFbZ10sZC5zdHlsZSYmKGZbZ109bi5fZGF0YShkLCJvbGRkaXNwbGF5IiksYz1kLnN0eWxlLmRpc3BsYXksYj8oZltnXXx8Im5vbmUiIT09Y3x8KGQuc3R5bGUuZGlzcGxheT0iIiksIiI9PT1kLnN0eWxlLmRpc3BsYXkmJlcoZCkmJihmW2ddPW4uX2RhdGEoZCwib2xkZGlzcGxheSIsTWEoZC5ub2RlTmFtZSkpKSk6KGU9VyhkKSwoYyYmIm5vbmUiIT09Y3x8IWUpJiZuLl9kYXRhKGQsIm9sZGRpc3BsYXkiLGU/YzpuLmNzcyhkLCJkaXNwbGF5IikpKSk7Zm9yKGc9MDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoYiYmIm5vbmUiIT09ZC5zdHlsZS5kaXNwbGF5JiYiIiE9PWQuc3R5bGUuZGlzcGxheXx8KGQuc3R5bGUuZGlzcGxheT1iP2ZbZ118fCIiOiJub25lIikpO3JldHVybiBhfWZ1bmN0aW9uIGRiKGEsYixjKXt2YXIgZD1ZYS5leGVjKGIpO3JldHVybiBkP01hdGgubWF4KDAsZFsxXS0oY3x8MCkpKyhkWzJdfHwicHgiKTpifWZ1bmN0aW9uIGViKGEsYixjLGQsZSl7Zm9yKHZhciBmPWM9PT0oZD8iYm9yZGVyIjoiY29udGVudCIpPzQ6IndpZHRoIj09PWI/MTowLGc9MDs0PmY7Zis9MikibWFyZ2luIj09PWMmJihnKz1uLmNzcyhhLGMrVltmXSwhMCxlKSksZD8oImNvbnRlbnQiPT09YyYmKGctPW4uY3NzKGEsInBhZGRpbmciK1ZbZl0sITAsZSkpLCJtYXJnaW4iIT09YyYmKGctPW4uY3NzKGEsImJvcmRlciIrVltmXSsiV2lkdGgiLCEwLGUpKSk6KGcrPW4uY3NzKGEsInBhZGRpbmciK1ZbZl0sITAsZSksInBhZGRpbmciIT09YyYmKGcrPW4uY3NzKGEsImJvcmRlciIrVltmXSsiV2lkdGgiLCEwLGUpKSk7cmV0dXJuIGd9ZnVuY3Rpb24gZmIoYSxiLGMpe3ZhciBkPSEwLGU9IndpZHRoIj09PWI/YS5vZmZzZXRXaWR0aDphLm9mZnNldEhlaWdodCxmPVJhKGEpLGc9bC5ib3hTaXppbmcmJiJib3JkZXItYm94Ij09PW4uY3NzKGEsImJveFNpemluZyIsITEsZik7aWYoMD49ZXx8bnVsbD09ZSl7aWYoZT1TYShhLGIsZiksKDA+ZXx8bnVsbD09ZSkmJihlPWEuc3R5bGVbYl0pLE9hLnRlc3QoZSkpcmV0dXJuIGU7ZD1nJiYobC5ib3hTaXppbmdSZWxpYWJsZSgpfHxlPT09YS5zdHlsZVtiXSksZT1wYXJzZUZsb2F0KGUpfHwwfXJldHVybiBlK2ViKGEsYixjfHwoZz8iYm9yZGVyIjoiY29udGVudCIpLGQsZikrInB4In1uLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpe3ZhciBjPVNhKGEsIm9wYWNpdHkiKTtyZXR1cm4iIj09PWM/IjEiOmN9fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6eyJmbG9hdCI6bC5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0In0sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZSxmLGcsaD1uLmNhbWVsQ2FzZShiKSxpPWEuc3R5bGU7aWYoYj1uLmNzc1Byb3BzW2hdfHwobi5jc3NQcm9wc1toXT1iYihoKXx8aCksZz1uLmNzc0hvb2tzW2JdfHxuLmNzc0hvb2tzW2hdLHZvaWQgMD09PWMpcmV0dXJuIGcmJiJnZXQiaW4gZyYmdm9pZCAwIT09KGU9Zy5nZXQoYSwhMSxkKSk/ZTppW2JdO2lmKGY9dHlwZW9mIGMsInN0cmluZyI9PT1mJiYoZT1VLmV4ZWMoYykpJiZlWzFdJiYoYz1YKGEsYixlKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiPT09ZiYmKGMrPWUmJmVbM118fChuLmNzc051bWJlcltoXT8iIjoicHgiKSksbC5jbGVhckNsb25lU3R5bGV8fCIiIT09Y3x8MCE9PWIuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwoaVtiXT0iaW5oZXJpdCIpLCEoZyYmInNldCJpbiBnJiZ2b2lkIDA9PT0oYz1nLnNldChhLGMsZCkpKSkpdHJ5e2lbYl09Y31jYXRjaChqKXt9fX0sY3NzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZyxoPW4uY2FtZWxDYXNlKGIpO3JldHVybiBiPW4uY3NzUHJvcHNbaF18fChuLmNzc1Byb3BzW2hdPWJiKGgpfHxoKSxnPW4uY3NzSG9va3NbYl18fG4uY3NzSG9va3NbaF0sZyYmImdldCJpbiBnJiYoZj1nLmdldChhLCEwLGMpKSx2b2lkIDA9PT1mJiYoZj1TYShhLGIsZCkpLCJub3JtYWwiPT09ZiYmYiBpbiAkYSYmKGY9JGFbYl0pLCIiPT09Y3x8Yz8oZT1wYXJzZUZsb2F0KGYpLGM9PT0hMHx8aXNGaW5pdGUoZSk/ZXx8MDpmKTpmfX0pLG4uZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYSxjLGQpe3JldHVybiBjP1hhLnRlc3Qobi5jc3MoYSwiZGlzcGxheSIpKSYmMD09PWEub2Zmc2V0V2lkdGg/UGEoYSxaYSxmdW5jdGlvbigpe3JldHVybiBmYihhLGIsZCl9KTpmYihhLGIsZCk6dm9pZCAwfSxzZXQ6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPWQmJlJhKGEpO3JldHVybiBkYihhLGMsZD9lYihhLGIsZCxsLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bi5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSxlKTowKX19fSksbC5vcGFjaXR5fHwobi5jc3NIb29rcy5vcGFjaXR5PXtnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gV2EudGVzdCgoYiYmYS5jdXJyZW50U3R5bGU/YS5jdXJyZW50U3R5bGUuZmlsdGVyOmEuc3R5bGUuZmlsdGVyKXx8IiIpPy4wMSpwYXJzZUZsb2F0KFJlZ0V4cC4kMSkrIiI6Yj8iMSI6IiJ9LHNldDpmdW5jdGlvbihhLGIpe3ZhciBjPWEuc3R5bGUsZD1hLmN1cnJlbnRTdHlsZSxlPW4uaXNOdW1lcmljKGIpPyJhbHBoYShvcGFjaXR5PSIrMTAwKmIrIikiOiIiLGY9ZCYmZC5maWx0ZXJ8fGMuZmlsdGVyfHwiIjtjLnpvb209MSwoYj49MXx8IiI9PT1iKSYmIiI9PT1uLnRyaW0oZi5yZXBsYWNlKFZhLCIiKSkmJmMucmVtb3ZlQXR0cmlidXRlJiYoYy5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpLCIiPT09Ynx8ZCYmIWQuZmlsdGVyKXx8KGMuZmlsdGVyPVZhLnRlc3QoZik/Zi5yZXBsYWNlKFZhLGUpOmYrIiAiK2UpfX0pLG4uY3NzSG9va3MubWFyZ2luUmlnaHQ9VWEobC5yZWxpYWJsZU1hcmdpblJpZ2h0LGZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/UGEoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sU2EsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLG4uY3NzSG9va3MubWFyZ2luTGVmdD1VYShsLnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihhLGIpe3JldHVybiBiPyhwYXJzZUZsb2F0KFNhKGEsIm1hcmdpbkxlZnQiKSl8fChuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKT9hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtUGEoYSx7Cm1hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSk6MCkpKyJweCI6dm9pZCAwfSksbi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND5kO2QrKyllW2ErVltkXStiXT1mW2RdfHxmW2QtMl18fGZbMF07cmV0dXJuIGV9fSxOYS50ZXN0KGEpfHwobi5jc3NIb29rc1thK2JdLnNldD1kYil9KSxuLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihuLmlzQXJyYXkoYikpe2ZvcihkPVJhKGEpLGU9Yi5sZW5ndGg7ZT5nO2crKylmW2JbZ11dPW4uY3NzKGEsYltnXSwhMSxkKTtyZXR1cm4gZn1yZXR1cm4gdm9pZCAwIT09Yz9uLnN0eWxlKGEsYixjKTpuLmNzcyhhLGIpfSxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE/YT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtXKHRoaXMpP24odGhpcykuc2hvdygpOm4odGhpcykuaGlkZSgpfSl9fSk7ZnVuY3Rpb24gZ2IoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IGdiLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9bi5Ud2Vlbj1nYixnYi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmdiLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fG4uZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobi5jc3NOdW1iZXJbY10/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBhPWdiLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBhJiZhLmdldD9hLmdldCh0aGlzKTpnYi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oYSl7dmFyIGIsYz1nYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWI9bi5lYXNpbmdbdGhpcy5lYXNpbmddKGEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmEsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9Yj1hLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSpiK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLGMmJmMuc2V0P2Muc2V0KHRoaXMpOmdiLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LGdiLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1nYi5wcm90b3R5cGUsZ2IucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiAxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsIT1hLmVsZW1bYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW2EucHJvcF0/YS5lbGVtW2EucHJvcF06KGI9bi5jc3MoYS5lbGVtLGEucHJvcCwiIiksYiYmImF1dG8iIT09Yj9iOjApfSxzZXQ6ZnVuY3Rpb24oYSl7bi5meC5zdGVwW2EucHJvcF0/bi5meC5zdGVwW2EucHJvcF0oYSk6MSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbD09YS5lbGVtLnN0eWxlW24uY3NzUHJvcHNbYS5wcm9wXV0mJiFuLmNzc0hvb2tzW2EucHJvcF0/YS5lbGVtW2EucHJvcF09YS5ub3c6bi5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0sZ2IucHJvcEhvb2tzLnNjcm9sbFRvcD1nYi5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxuLmVhc2luZz17bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9LG4uZng9Z2IucHJvdG90eXBlLmluaXQsbi5meC5zdGVwPXt9O3ZhciBoYixpYixqYj0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sa2I9L3F1ZXVlSG9va3MkLztmdW5jdGlvbiBsYigpe3JldHVybiBhLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtoYj12b2lkIDB9KSxoYj1uLm5vdygpfWZ1bmN0aW9uIG1iKGEsYil7dmFyIGMsZD17aGVpZ2h0OmF9LGU9MDtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWM9VltlXSxkWyJtYXJnaW4iK2NdPWRbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihkLm9wYWNpdHk9ZC53aWR0aD1hKSxkfWZ1bmN0aW9uIG5iKGEsYixjKXtmb3IodmFyIGQsZT0ocWIudHdlZW5lcnNbYl18fFtdKS5jb25jYXQocWIudHdlZW5lcnNbIioiXSksZj0wLGc9ZS5sZW5ndGg7Zz5mO2YrKylpZihkPWVbZl0uY2FsbChjLGIsYSkpcmV0dXJuIGR9ZnVuY3Rpb24gb2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbT10aGlzLG89e30scD1hLnN0eWxlLHE9YS5ub2RlVHlwZSYmVyhhKSxyPW4uX2RhdGEoYSwiZnhzaG93Iik7Yy5xdWV1ZXx8KGg9bi5fcXVldWVIb29rcyhhLCJmeCIpLG51bGw9PWgudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsaT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8aSgpfSksaC51bnF1ZXVlZCsrLG0uYWx3YXlzKGZ1bmN0aW9uKCl7bS5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS0sbi5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSwxPT09YS5ub2RlVHlwZSYmKCJoZWlnaHQiaW4gYnx8IndpZHRoImluIGIpJiYoYy5vdmVyZmxvdz1bcC5vdmVyZmxvdyxwLm92ZXJmbG93WCxwLm92ZXJmbG93WV0saj1uLmNzcyhhLCJkaXNwbGF5Iiksaz0ibm9uZSI9PT1qP24uX2RhdGEoYSwib2xkZGlzcGxheSIpfHxNYShhLm5vZGVOYW1lKTpqLCJpbmxpbmUiPT09ayYmIm5vbmUiPT09bi5jc3MoYSwiZmxvYXQiKSYmKGwuaW5saW5lQmxvY2tOZWVkc0xheW91dCYmImlubGluZSIhPT1NYShhLm5vZGVOYW1lKT9wLnpvb209MTpwLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYocC5vdmVyZmxvdz0iaGlkZGVuIixsLnNocmlua1dyYXBCbG9ja3MoKXx8bS5hbHdheXMoZnVuY3Rpb24oKXtwLm92ZXJmbG93PWMub3ZlcmZsb3dbMF0scC5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXSxwLm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpO2ZvcihkIGluIGIpaWYoZT1iW2RdLGpiLmV4ZWMoZSkpe2lmKGRlbGV0ZSBiW2RdLGY9Znx8InRvZ2dsZSI9PT1lLGU9PT0ocT8iaGlkZSI6InNob3ciKSl7aWYoInNob3ciIT09ZXx8IXJ8fHZvaWQgMD09PXJbZF0pY29udGludWU7cT0hMH1vW2RdPXImJnJbZF18fG4uc3R5bGUoYSxkKX1lbHNlIGo9dm9pZCAwO2lmKG4uaXNFbXB0eU9iamVjdChvKSkiaW5saW5lIj09PSgibm9uZSI9PT1qP01hKGEubm9kZU5hbWUpOmopJiYocC5kaXNwbGF5PWopO2Vsc2V7cj8iaGlkZGVuImluIHImJihxPXIuaGlkZGVuKTpyPW4uX2RhdGEoYSwiZnhzaG93Iix7fSksZiYmKHIuaGlkZGVuPSFxKSxxP24oYSkuc2hvdygpOm0uZG9uZShmdW5jdGlvbigpe24oYSkuaGlkZSgpfSksbS5kb25lKGZ1bmN0aW9uKCl7dmFyIGI7bi5fcmVtb3ZlRGF0YShhLCJmeHNob3ciKTtmb3IoYiBpbiBvKW4uc3R5bGUoYSxiLG9bYl0pfSk7Zm9yKGQgaW4gbylnPW5iKHE/cltkXTowLGQsbSksZCBpbiByfHwocltkXT1nLnN0YXJ0LHEmJihnLmVuZD1nLnN0YXJ0LGcuc3RhcnQ9IndpZHRoIj09PWR8fCJoZWlnaHQiPT09ZD8xOjApKX19ZnVuY3Rpb24gcGIoYSxiKXt2YXIgYyxkLGUsZixnO2ZvcihjIGluIGEpaWYoZD1uLmNhbWVsQ2FzZShjKSxlPWJbZF0sZj1hW2NdLG4uaXNBcnJheShmKSYmKGU9ZlsxXSxmPWFbY109ZlswXSksYyE9PWQmJihhW2RdPWYsZGVsZXRlIGFbY10pLGc9bi5jc3NIb29rc1tkXSxnJiYiZXhwYW5kImluIGcpe2Y9Zy5leHBhbmQoZiksZGVsZXRlIGFbZF07Zm9yKGMgaW4gZiljIGluIGF8fChhW2NdPWZbY10sYltjXT1lKX1lbHNlIGJbZF09ZX1mdW5jdGlvbiBxYihhLGIsYyl7dmFyIGQsZSxmPTAsZz1xYi5wcmVmaWx0ZXJzLmxlbmd0aCxoPW4uRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7Zm9yKHZhciBiPWhifHxsYigpLGM9TWF0aC5tYXgoMCxqLnN0YXJ0VGltZStqLmR1cmF0aW9uLWIpLGQ9Yy9qLmR1cmF0aW9ufHwwLGY9MS1kLGc9MCxpPWoudHdlZW5zLmxlbmd0aDtpPmc7ZysrKWoudHdlZW5zW2ddLnJ1bihmKTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2osZixjXSksMT5mJiZpP2M6KGgucmVzb2x2ZVdpdGgoYSxbal0pLCExKX0saj1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpuLmV4dGVuZCh7fSxiKSxvcHRzOm4uZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpuLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOmhifHxsYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9bi5Ud2VlbihhLGoub3B0cyxiLGMsai5vcHRzLnNwZWNpYWxFYXNpbmdbYl18fGoub3B0cy5lYXNpbmcpO3JldHVybiBqLnR3ZWVucy5wdXNoKGQpLGR9LHN0b3A6ZnVuY3Rpb24oYil7dmFyIGM9MCxkPWI/ai50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDtkPmM7YysrKWoudHdlZW5zW2NdLnJ1bigxKTtyZXR1cm4gYj8oaC5ub3RpZnlXaXRoKGEsW2osMSwwXSksaC5yZXNvbHZlV2l0aChhLFtqLGJdKSk6aC5yZWplY3RXaXRoKGEsW2osYl0pLHRoaXN9fSksaz1qLnByb3BzO2ZvcihwYihrLGoub3B0cy5zcGVjaWFsRWFzaW5nKTtnPmY7ZisrKWlmKGQ9cWIucHJlZmlsdGVyc1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIG4uaXNGdW5jdGlvbihkLnN0b3ApJiYobi5fcXVldWVIb29rcyhqLmVsZW0sai5vcHRzLnF1ZXVlKS5zdG9wPW4ucHJveHkoZC5zdG9wLGQpKSxkO3JldHVybiBuLm1hcChrLG5iLGopLG4uaXNGdW5jdGlvbihqLm9wdHMuc3RhcnQpJiZqLm9wdHMuc3RhcnQuY2FsbChhLGopLG4uZngudGltZXIobi5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixxdWV1ZTpqLm9wdHMucXVldWV9KSksai5wcm9ncmVzcyhqLm9wdHMucHJvZ3Jlc3MpLmRvbmUoai5vcHRzLmRvbmUsai5vcHRzLmNvbXBsZXRlKS5mYWlsKGoub3B0cy5mYWlsKS5hbHdheXMoai5vcHRzLmFsd2F5cyl9bi5BbmltYXRpb249bi5leHRlbmQocWIse3R3ZWVuZXJzOnsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpO3JldHVybiBYKGMuZWxlbSxhLFUuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtuLmlzRnVuY3Rpb24oYSk/KGI9YSxhPVsiKiJdKTphPWEubWF0Y2goRyk7Zm9yKHZhciBjLGQ9MCxlPWEubGVuZ3RoO2U+ZDtkKyspYz1hW2RdLHFiLnR3ZWVuZXJzW2NdPXFiLnR3ZWVuZXJzW2NdfHxbXSxxYi50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltvYl0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9xYi5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6cWIucHJlZmlsdGVycy5wdXNoKGEpfX0pLG4uc3BlZWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEmJiJvYmplY3QiPT10eXBlb2YgYT9uLmV4dGVuZCh7fSxhKTp7Y29tcGxldGU6Y3x8IWMmJmJ8fG4uaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiZifHxiJiYhbi5pc0Z1bmN0aW9uKGIpJiZifTtyZXR1cm4gZC5kdXJhdGlvbj1uLmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2YgZC5kdXJhdGlvbj9kLmR1cmF0aW9uOmQuZHVyYXRpb24gaW4gbi5meC5zcGVlZHM/bi5meC5zcGVlZHNbZC5kdXJhdGlvbl06bi5meC5zcGVlZHMuX2RlZmF1bHQsbnVsbCE9ZC5xdWV1ZSYmZC5xdWV1ZSE9PSEwfHwoZC5xdWV1ZT0iZngiKSxkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oKXtuLmlzRnVuY3Rpb24oZC5vbGQpJiZkLm9sZC5jYWxsKHRoaXMpLGQucXVldWUmJm4uZGVxdWV1ZSh0aGlzLGQucXVldWUpfSxkfSxuLmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmZpbHRlcihXKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxkKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uLmlzRW1wdHlPYmplY3QoYSksZj1uLnNwZWVkKGIsYyxkKSxnPWZ1bmN0aW9uKCl7dmFyIGI9cWIodGhpcyxuLmV4dGVuZCh7fSxhKSxmKTsoZXx8bi5fZGF0YSh0aGlzLCJmaW5pc2giKSkmJmIuc3RvcCghMCl9O3JldHVybiBnLmZpbmlzaD1nLGV8fGYucXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5xdWV1ZShmLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1mdW5jdGlvbihhKXt2YXIgYj1hLnN0b3A7ZGVsZXRlIGEuc3RvcCxiKGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZhIT09ITEmJnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ITAsZT1udWxsIT1hJiZhKyJxdWV1ZUhvb2tzIixmPW4udGltZXJzLGc9bi5fZGF0YSh0aGlzKTtpZihlKWdbZV0mJmdbZV0uc3RvcCYmZChnW2VdKTtlbHNlIGZvcihlIGluIGcpZ1tlXSYmZ1tlXS5zdG9wJiZrYi50ZXN0KGUpJiZkKGdbZV0pO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtIT09dGhpc3x8bnVsbCE9YSYmZltlXS5xdWV1ZSE9PWF8fChmW2VdLmFuaW0uc3RvcChjKSxiPSExLGYuc3BsaWNlKGUsMSkpOyFiJiZjfHxuLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1uLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1uLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbi5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxuLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bi5mbltiXTtuLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUobWIoYiwhMCksYSxkLGUpfX0pLG4uZWFjaCh7c2xpZGVEb3duOm1iKCJzaG93Iiksc2xpZGVVcDptYigiaGlkZSIpLHNsaWRlVG9nZ2xlOm1iKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxuLnRpbWVycz1bXSxuLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW4udGltZXJzLGM9MDtmb3IoaGI9bi5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxuLmZ4LnN0b3AoKSxoYj12b2lkIDB9LG4uZngudGltZXI9ZnVuY3Rpb24oYSl7bi50aW1lcnMucHVzaChhKSxhKCk/bi5meC5zdGFydCgpOm4udGltZXJzLnBvcCgpfSxuLmZ4LmludGVydmFsPTEzLG4uZnguc3RhcnQ9ZnVuY3Rpb24oKXtpYnx8KGliPWEuc2V0SW50ZXJ2YWwobi5meC50aWNrLG4uZnguaW50ZXJ2YWwpKX0sbi5meC5zdG9wPWZ1bmN0aW9uKCl7YS5jbGVhckludGVydmFsKGliKSxpYj1udWxsfSxuLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxuLmZuLmRlbGF5PWZ1bmN0aW9uKGIsYyl7cmV0dXJuIGI9bi5meD9uLmZ4LnNwZWVkc1tiXXx8YjpiLGM9Y3x8ImZ4Iix0aGlzLnF1ZXVlKGMsZnVuY3Rpb24oYyxkKXt2YXIgZT1hLnNldFRpbWVvdXQoYyxiKTtkLnN0b3A9ZnVuY3Rpb24oKXthLmNsZWFyVGltZW91dChlKX19KX0sZnVuY3Rpb24oKXt2YXIgYSxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGY9ZS5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksYy5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxjLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxiLnNldEF0dHJpYnV0ZSgidHlwZSIsImNoZWNrYm94IiksYy5hcHBlbmRDaGlsZChiKSxhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxhLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGwuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWMuY2xhc3NOYW1lLGwuc3R5bGU9L3RvcC8udGVzdChhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksbC5ocmVmTm9ybWFsaXplZD0iL2EiPT09YS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxsLmNoZWNrT249ISFiLnZhbHVlLGwub3B0U2VsZWN0ZWQ9Zi5zZWxlY3RlZCxsLmVuY3R5cGU9ISFkLmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGUuZGlzYWJsZWQ9ITAsbC5vcHREaXNhYmxlZD0hZi5kaXNhYmxlZCxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxsLmlucHV0PSIiPT09Yi5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYi52YWx1ZT0idCIsYi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGwucmFkaW9WYWx1ZT0idCI9PT1iLnZhbHVlfSgpO3ZhciByYj0vXHIvZyxzYj0vW1x4MjBcdFxyXG5cZl0rL2c7bi5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBkPW4uaXNGdW5jdGlvbihhKSx0aGlzLmVhY2goZnVuY3Rpb24oYyl7dmFyIGU7MT09PXRoaXMubm9kZVR5cGUmJihlPWQ/YS5jYWxsKHRoaXMsYyxuKHRoaXMpLnZhbCgpKTphLG51bGw9PWU/ZT0iIjoibnVtYmVyIj09dHlwZW9mIGU/ZSs9IiI6bi5pc0FycmF5KGUpJiYoZT1uLm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOmErIiJ9KSksYj1uLnZhbEhvb2tzW3RoaXMudHlwZV18fG4udmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYic2V0ImluIGImJnZvaWQgMCE9PWIuc2V0KHRoaXMsZSwidmFsdWUiKXx8KHRoaXMudmFsdWU9ZSkpfSk7aWYoZSlyZXR1cm4gYj1uLnZhbEhvb2tzW2UudHlwZV18fG4udmFsSG9va3NbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGUsInZhbHVlIikpP2M6KGM9ZS52YWx1ZSwic3RyaW5nIj09dHlwZW9mIGM/Yy5yZXBsYWNlKHJiLCIiKTpudWxsPT1jPyIiOmMpfX19KSxuLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW4uZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI/YjpuLnRyaW0obi50ZXh0KGEpKS5yZXBsYWNlKHNiLCIgIil9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXtmb3IodmFyIGIsYyxkPWEub3B0aW9ucyxlPWEuc2VsZWN0ZWRJbmRleCxmPSJzZWxlY3Qtb25lIj09PWEudHlwZXx8MD5lLGc9Zj9udWxsOltdLGg9Zj9lKzE6ZC5sZW5ndGgsaT0wPmU/aDpmP2U6MDtoPmk7aSsrKWlmKGM9ZFtpXSwoYy5zZWxlY3RlZHx8aT09PWUpJiYobC5vcHREaXNhYmxlZD8hYy5kaXNhYmxlZDpudWxsPT09Yy5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikpJiYoIWMucGFyZW50Tm9kZS5kaXNhYmxlZHx8IW4ubm9kZU5hbWUoYy5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoYj1uKGMpLnZhbCgpLGYpcmV0dXJuIGI7Zy5wdXNoKGIpfXJldHVybiBnfSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9YS5vcHRpb25zLGY9bi5tYWtlQXJyYXkoYiksZz1lLmxlbmd0aDt3aGlsZShnLS0paWYoZD1lW2ddLG4uaW5BcnJheShuLnZhbEhvb2tzLm9wdGlvbi5nZXQoZCksZik+LTEpdHJ5e2Quc2VsZWN0ZWQ9Yz0hMH1jYXRjaChoKXtkLnNjcm9sbEhlaWdodH1lbHNlIGQuc2VsZWN0ZWQ9ITE7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGV9fX19KSxuLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtuLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbi5pc0FycmF5KGIpP2EuY2hlY2tlZD1uLmluQXJyYXkobihhKS52YWwoKSxiKT4tMTp2b2lkIDB9fSxsLmNoZWNrT258fChuLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIHRiLHViLHZiPW4uZXhwci5hdHRySGFuZGxlLHdiPS9eKD86Y2hlY2tlZHxzZWxlY3RlZCkkL2kseGI9bC5nZXRTZXRBdHRyaWJ1dGUseWI9bC5pbnB1dDtuLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBZKHRoaXMsbi5hdHRyLGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9YS5ub2RlVHlwZTtpZigzIT09ZiYmOCE9PWYmJjIhPT1mKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU/bi5wcm9wKGEsYixjKTooMT09PWYmJm4uaXNYTUxEb2MoYSl8fChiPWIudG9Mb3dlckNhc2UoKSxlPW4uYXR0ckhvb2tzW2JdfHwobi5leHByLm1hdGNoLmJvb2wudGVzdChiKT91Yjp0YikpLHZvaWQgMCE9PWM/bnVsbD09PWM/dm9pZCBuLnJlbW92ZUF0dHIoYSxiKTplJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDooYS5zZXRBdHRyaWJ1dGUoYixjKyIiKSxjKTplJiYiZ2V0ImluIGUmJm51bGwhPT0oZD1lLmdldChhLGIpKT9kOihkPW4uZmluZC5hdHRyKGEsYiksbnVsbD09ZD92b2lkIDA6ZCkpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFsLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZuLm5vZGVOYW1lKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPTAsZj1iJiZiLm1hdGNoKEcpO2lmKGYmJjE9PT1hLm5vZGVUeXBlKXdoaWxlKGM9ZltlKytdKWQ9bi5wcm9wRml4W2NdfHxjLG4uZXhwci5tYXRjaC5ib29sLnRlc3QoYyk/eWImJnhifHwhd2IudGVzdChjKT9hW2RdPSExOmFbbi5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtkXT0hMTpuLmF0dHIoYSxjLCIiKSxhLnJlbW92ZUF0dHJpYnV0ZSh4Yj9jOmQpfX0pLHViPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiPT09ITE/bi5yZW1vdmVBdHRyKGEsYyk6eWImJnhifHwhd2IudGVzdChjKT9hLnNldEF0dHJpYnV0ZSgheGImJm4ucHJvcEZpeFtjXXx8YyxjKTphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYyldPWFbY109ITAsY319LG4uZWFjaChuLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPXZiW2JdfHxuLmZpbmQuYXR0cjt5YiYmeGJ8fCF3Yi50ZXN0KGIpP3ZiW2JdPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmO3JldHVybiBkfHwoZj12YltiXSx2YltiXT1lLGU9bnVsbCE9YyhhLGIsZCk/Yi50b0xvd2VyQ2FzZSgpOm51bGwsdmJbYl09ZiksZX06dmJbYl09ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYildP2IudG9Mb3dlckNhc2UoKTpudWxsfX0pLHliJiZ4Ynx8KG4uYXR0ckhvb2tzLnZhbHVlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuLm5vZGVOYW1lKGEsImlucHV0Iik/dm9pZChhLmRlZmF1bHRWYWx1ZT1iKTp0YiYmdGIuc2V0KGEsYixjKX19KSx4Ynx8KHRiPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZ2V0QXR0cmlidXRlTm9kZShjKTtyZXR1cm4gZHx8YS5zZXRBdHRyaWJ1dGVOb2RlKGQ9YS5vd25lckRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZShjKSksZC52YWx1ZT1iKz0iIiwidmFsdWUiPT09Y3x8Yj09PWEuZ2V0QXR0cmlidXRlKGMpP2I6dm9pZCAwfX0sdmIuaWQ9dmIubmFtZT12Yi5jb29yZHM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBjP3ZvaWQgMDooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiYiIiE9PWQudmFsdWU/ZC52YWx1ZTpudWxsfSxuLnZhbEhvb2tzLmJ1dHRvbj17Z2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpO3JldHVybiBjJiZjLnNwZWNpZmllZD9jLnZhbHVlOnZvaWQgMH0sc2V0OnRiLnNldH0sbi5hdHRySG9va3MuY29udGVudGVkaXRhYmxlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3RiLnNldChhLCIiPT09Yj8hMTpiLGMpfX0sbi5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSxmdW5jdGlvbihhLGIpe24uYXR0ckhvb2tzW2JdPXtzZXQ6ZnVuY3Rpb24oYSxjKXtyZXR1cm4iIj09PWM/KGEuc2V0QXR0cmlidXRlKGIsImF1dG8iKSxjKTp2b2lkIDB9fX0pKSxsLnN0eWxlfHwobi5hdHRySG9va3Muc3R5bGU9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fHx2b2lkIDB9LHNldDpmdW5jdGlvbihhLGIpe3JldHVybiBhLnN0eWxlLmNzc1RleHQ9YisiIn19KTt2YXIgemI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9ufG9iamVjdCkkL2ksQWI9L14oPzphfGFyZWEpJC9pO24uZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxuLnByb3AsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9bi5wcm9wRml4W2FdfHxhLHRoaXMuZWFjaChmdW5jdGlvbigpe3RyeXt0aGlzW2FdPXZvaWQgMCxkZWxldGUgdGhpc1thXX1jYXRjaChiKXt9fSl9fSksbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1hLm5vZGVUeXBlO2lmKDMhPT1mJiY4IT09ZiYmMiE9PWYpcmV0dXJuIDE9PT1mJiZuLmlzWE1MRG9jKGEpfHwoYj1uLnByb3BGaXhbYl18fGIsZT1uLnByb3BIb29rc1tiXSksdm9pZCAwIT09Yz9lJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDphW2JdPWM6ZSYmImdldCJpbiBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDphW2JdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bi5maW5kLmF0dHIoYSwidGFiaW5kZXgiKTtyZXR1cm4gYj9wYXJzZUludChiLDEwKTp6Yi50ZXN0KGEubm9kZU5hbWUpfHxBYi50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDotMX19fSxwcm9wRml4OnsiZm9yIjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIn19KSxsLmhyZWZOb3JtYWxpemVkfHxuLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXtuLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxsLm9wdFNlbGVjdGVkfHwobi5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH0sc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtiJiYoYi5zZWxlY3RlZEluZGV4LGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pLG4uZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7bi5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pLGwuZW5jdHlwZXx8KG4ucHJvcEZpeC5lbmN0eXBlPSJlbmNvZGluZyIpO3ZhciBCYj0vW1x0XHJcblxmXS9nO2Z1bmN0aW9uIENiKGEpe3JldHVybiBuLmF0dHIoYSwiY2xhc3MiKXx8IiJ9bi5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk9MDtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLGIsQ2IodGhpcykpKX0pO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKWQuaW5kZXhPZigiICIrZisiICIpPDAmJihkKz1mKyIgIik7aD1uLnRyaW0oZCksZSE9PWgmJm4uYXR0cihjLCJjbGFzcyIsaCl9fXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaCxpPTA7aWYobi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bih0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxiLENiKHRoaXMpKSl9KTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5hdHRyKCJjbGFzcyIsIiIpO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKXdoaWxlKGQuaW5kZXhPZigiICIrZisiICIpPi0xKWQ9ZC5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9bi50cmltKGQpLGUhPT1oJiZuLmF0dHIoYywiY2xhc3MiLGgpfX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6bi5pc0Z1bmN0aW9uKGEpP3RoaXMuZWFjaChmdW5jdGlvbihjKXtuKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsQ2IodGhpcyksYiksYil9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYixkLGUsZjtpZigic3RyaW5nIj09PWMpe2Q9MCxlPW4odGhpcyksZj1hLm1hdGNoKEcpfHxbXTt3aGlsZShiPWZbZCsrXSllLmhhc0NsYXNzKGIpP2UucmVtb3ZlQ2xhc3MoYik6ZS5hZGRDbGFzcyhiKX1lbHNlIHZvaWQgMCE9PWEmJiJib29sZWFuIiE9PWN8fChiPUNiKHRoaXMpLGImJm4uX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIsYiksbi5hdHRyKHRoaXMsImNsYXNzIixifHxhPT09ITE/IiI6bi5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTA7Yj0iICIrYSsiICI7d2hpbGUoYz10aGlzW2QrK10paWYoMT09PWMubm9kZVR5cGUmJigiICIrQ2IoYykrIiAiKS5yZXBsYWNlKEJiLCIgIikuaW5kZXhPZihiKT4tMSlyZXR1cm4hMDtyZXR1cm4hMX19KSxuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEsYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MD90aGlzLm9uKGIsbnVsbCxhLGMpOnRoaXMudHJpZ2dlcihiKX19KSxuLmZuLmV4dGVuZCh7aG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7dmFyIERiPWEubG9jYXRpb24sRWI9bi5ub3coKSxGYj0vXD8vLEdiPS8oLCl8KFxbfHspfCh9fF0pfCIoPzpbXiJcXFxyXG5dfFxcWyJcXFwvYmZucnRdfFxcdVtcZGEtZkEtRl17NH0pKiJccyo6P3x0cnVlfGZhbHNlfG51bGx8LT8oPyEwXGQpXGQrKD86XC5cZCt8KSg/OltlRV1bKy1dP1xkK3wpL2c7bi5wYXJzZUpTT049ZnVuY3Rpb24oYil7aWYoYS5KU09OJiZhLkpTT04ucGFyc2UpcmV0dXJuIGEuSlNPTi5wYXJzZShiKyIiKTt2YXIgYyxkPW51bGwsZT1uLnRyaW0oYisiIik7cmV0dXJuIGUmJiFuLnRyaW0oZS5yZXBsYWNlKEdiLGZ1bmN0aW9uKGEsYixlLGYpe3JldHVybiBjJiZiJiYoZD0wKSwwPT09ZD9hOihjPWV8fGIsZCs9IWYtIWUsIiIpfSkpP0Z1bmN0aW9uKCJyZXR1cm4gIitlKSgpOm4uZXJyb3IoIkludmFsaWQgSlNPTjogIitiKX0sbi5wYXJzZVhNTD1mdW5jdGlvbihiKXt2YXIgYyxkO2lmKCFifHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIG51bGw7dHJ5e2EuRE9NUGFyc2VyPyhkPW5ldyBhLkRPTVBhcnNlcixjPWQucGFyc2VGcm9tU3RyaW5nKGIsInRleHQveG1sIikpOihjPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bi5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIEhiPS8jLiokLyxJYj0vKFs/Jl0pXz1bXiZdKi8sSmI9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxLYj0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxMYj0vXig/OkdFVHxIRUFEKSQvLE1iPS9eXC9cLy8sTmI9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sT2I9e30sUGI9e30sUWI9IiovIi5jb25jYXQoIioiKSxSYj1EYi5ocmVmLFNiPU5iLmV4ZWMoUmIudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIFRiKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEcpfHxbXTtpZihuLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gVWIoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09UGI7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxuLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBWYihhLGIpe3ZhciBjLGQsZT1uLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZuLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gWGIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1uLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6UmIsdHlwZToiR0VUIixpc0xvY2FsOktiLnRlc3QoU2JbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6UWIsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLGh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6bi5wYXJzZUpTT04sInRleHQgeG1sIjpuLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9WYihWYihhLG4uYWpheFNldHRpbmdzKSxiKTpWYihuLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpUYihPYiksYWpheFRyYW5zcG9ydDpUYihQYiksYWpheDpmdW5jdGlvbihiLGMpeyJvYmplY3QiPT10eXBlb2YgYiYmKGM9YixiPXZvaWQgMCksYz1jfHx7fTt2YXIgZCxlLGYsZyxoLGksaixrLGw9bi5hamF4U2V0dXAoe30sYyksbT1sLmNvbnRleHR8fGwsbz1sLmNvbnRleHQmJihtLm5vZGVUeXBlfHxtLmpxdWVyeSk/bihtKTpuLmV2ZW50LHA9bi5EZWZlcnJlZCgpLHE9bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iikscj1sLnN0YXR1c0NvZGV8fHt9LHM9e30sdD17fSx1PTAsdj0iY2FuY2VsZWQiLHc9e3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihhKXt2YXIgYjtpZigyPT09dSl7aWYoIWspe2s9e307d2hpbGUoYj1KYi5leGVjKGcpKWtbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdfWI9a1thLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIDI9PT11P2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihhLGIpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTtyZXR1cm4gdXx8KGE9dFtjXT10W2NdfHxhLHNbYV09YiksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gdXx8KGwubWltZVR5cGU9YSksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbihhKXt2YXIgYjtpZihhKWlmKDI+dSlmb3IoYiBpbiBhKXJbYl09W3JbYl0sYVtiXV07ZWxzZSB3LmFsd2F5cyhhW3cuc3RhdHVzXSk7cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHY7cmV0dXJuIGomJmouYWJvcnQoYikseSgwLGIpLHRoaXN9fTtpZihwLnByb21pc2UodykuY29tcGxldGU9cS5hZGQsdy5zdWNjZXNzPXcuZG9uZSx3LmVycm9yPXcuZmFpbCxsLnVybD0oKGJ8fGwudXJsfHxSYikrIiIpLnJlcGxhY2UoSGIsIiIpLnJlcGxhY2UoTWIsU2JbMV0rIi8vIiksbC50eXBlPWMubWV0aG9kfHxjLnR5cGV8fGwubWV0aG9kfHxsLnR5cGUsbC5kYXRhVHlwZXM9bi50cmltKGwuZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChHKXx8WyIiXSxudWxsPT1sLmNyb3NzRG9tYWluJiYoZD1OYi5leGVjKGwudXJsLnRvTG93ZXJDYXNlKCkpLGwuY3Jvc3NEb21haW49ISghZHx8ZFsxXT09PVNiWzFdJiZkWzJdPT09U2JbMl0mJihkWzNdfHwoImh0dHA6Ij09PWRbMV0/IjgwIjoiNDQzIikpPT09KFNiWzNdfHwoImh0dHA6Ij09PVNiWzFdPyI4MCI6IjQ0MyIpKSkpLGwuZGF0YSYmbC5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiBsLmRhdGEmJihsLmRhdGE9bi5wYXJhbShsLmRhdGEsbC50cmFkaXRpb25hbCkpLFViKE9iLGwsYyx3KSwyPT09dSlyZXR1cm4gdztpPW4uZXZlbnQmJmwuZ2xvYmFsLGkmJjA9PT1uLmFjdGl2ZSsrJiZuLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLGwudHlwZT1sLnR5cGUudG9VcHBlckNhc2UoKSxsLmhhc0NvbnRlbnQ9IUxiLnRlc3QobC50eXBlKSxmPWwudXJsLGwuaGFzQ29udGVudHx8KGwuZGF0YSYmKGY9bC51cmwrPShGYi50ZXN0KGYpPyImIjoiPyIpK2wuZGF0YSxkZWxldGUgbC5kYXRhKSxsLmNhY2hlPT09ITEmJihsLnVybD1JYi50ZXN0KGYpP2YucmVwbGFjZShJYiwiJDFfPSIrRWIrKyk6ZisoRmIudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0ViKyspKSxsLmlmTW9kaWZpZWQmJihuLmxhc3RNb2RpZmllZFtmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsbi5sYXN0TW9kaWZpZWRbZl0pLG4uZXRhZ1tmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixuLmV0YWdbZl0pKSwobC5kYXRhJiZsLmhhc0NvbnRlbnQmJmwuY29udGVudFR5cGUhPT0hMXx8Yy5jb250ZW50VHlwZSkmJncuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixsLmNvbnRlbnRUeXBlKSx3LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsbC5kYXRhVHlwZXNbMF0mJmwuYWNjZXB0c1tsLmRhdGFUeXBlc1swXV0/bC5hY2NlcHRzW2wuZGF0YVR5cGVzWzBdXSsoIioiIT09bC5kYXRhVHlwZXNbMF0/IiwgIitRYisiOyBxPTAuMDEiOiIiKTpsLmFjY2VwdHNbIioiXSk7Zm9yKGUgaW4gbC5oZWFkZXJzKXcuc2V0UmVxdWVzdEhlYWRlcihlLGwuaGVhZGVyc1tlXSk7aWYobC5iZWZvcmVTZW5kJiYobC5iZWZvcmVTZW5kLmNhbGwobSx3LGwpPT09ITF8fDI9PT11KSlyZXR1cm4gdy5hYm9ydCgpO3Y9ImFib3J0Ijtmb3IoZSBpbntzdWNjZXNzOjEsZXJyb3I6MSxjb21wbGV0ZToxfSl3W2VdKGxbZV0pO2lmKGo9VWIoUGIsbCxjLHcpKXtpZih3LnJlYWR5U3RhdGU9MSxpJiZvLnRyaWdnZXIoImFqYXhTZW5kIixbdyxsXSksMj09PXUpcmV0dXJuIHc7bC5hc3luYyYmbC50aW1lb3V0PjAmJihoPWEuc2V0VGltZW91dChmdW5jdGlvbigpe3cuYWJvcnQoInRpbWVvdXQiKX0sbC50aW1lb3V0KSk7dHJ5e3U9MSxqLnNlbmQocyx5KX1jYXRjaCh4KXtpZighKDI+dSkpdGhyb3cgeDt5KC0xLHgpfX1lbHNlIHkoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHkoYixjLGQsZSl7dmFyIGsscyx0LHYseCx5PWM7MiE9PXUmJih1PTIsaCYmYS5jbGVhclRpbWVvdXQoaCksaj12b2lkIDAsZz1lfHwiIix3LnJlYWR5U3RhdGU9Yj4wPzQ6MCxrPWI+PTIwMCYmMzAwPmJ8fDMwND09PWIsZCYmKHY9V2IobCx3LGQpKSx2PVhiKGwsdix3LGspLGs/KGwuaWZNb2RpZmllZCYmKHg9dy5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpLHgmJihuLmxhc3RNb2RpZmllZFtmXT14KSx4PXcuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSx4JiYobi5ldGFnW2ZdPXgpKSwyMDQ9PT1ifHwiSEVBRCI9PT1sLnR5cGU/eT0ibm9jb250ZW50IjozMDQ9PT1iP3k9Im5vdG1vZGlmaWVkIjooeT12LnN0YXRlLHM9di5kYXRhLHQ9di5lcnJvcixrPSF0KSk6KHQ9eSwhYiYmeXx8KHk9ImVycm9yIiwwPmImJihiPTApKSksdy5zdGF0dXM9Yix3LnN0YXR1c1RleHQ9KGN8fHkpKyIiLGs/cC5yZXNvbHZlV2l0aChtLFtzLHksd10pOnAucmVqZWN0V2l0aChtLFt3LHksdF0pLHcuc3RhdHVzQ29kZShyKSxyPXZvaWQgMCxpJiZvLnRyaWdnZXIoaz8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt3LGwsaz9zOnRdKSxxLmZpcmVXaXRoKG0sW3cseV0pLGkmJihvLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3csbF0pLC0tbi5hY3RpdmV8fG4uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB3fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbi5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG4uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG4uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe25bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG4uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG4uYWpheChuLmV4dGVuZCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0sbi5pc1BsYWluT2JqZWN0KGEpJiZhKSl9fSksbi5fZXZhbFVybD1mdW5jdGlvbihhKXtyZXR1cm4gbi5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSwidGhyb3dzIjohMH0pfSxuLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLndyYXBBbGwoYS5jYWxsKHRoaXMsYikpfSk7aWYodGhpc1swXSl7dmFyIGI9bihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzO3doaWxlKGEuZmlyc3RDaGlsZCYmMT09PWEuZmlyc3RDaGlsZC5ub2RlVHlwZSlhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiBuLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe24odGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPW4odGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9bi5pc0Z1bmN0aW9uKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7bih0aGlzKS53cmFwQWxsKGI/YS5jYWxsKHRoaXMsYyk6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChmdW5jdGlvbigpe24ubm9kZU5hbWUodGhpcywiYm9keSIpfHxuKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KS5lbmQoKX19KTtmdW5jdGlvbiBZYihhKXtyZXR1cm4gYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxuLmNzcyhhLCJkaXNwbGF5Iil9ZnVuY3Rpb24gWmIoYSl7aWYoIW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50fHxkLGEpKXJldHVybiEwO3doaWxlKGEmJjE9PT1hLm5vZGVUeXBlKXtpZigibm9uZSI9PT1ZYihhKXx8ImhpZGRlbiI9PT1hLnR5cGUpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9cmV0dXJuITF9bi5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiBsLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpP2Eub2Zmc2V0V2lkdGg8PTAmJmEub2Zmc2V0SGVpZ2h0PD0wJiYhYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aDpaYihhKX0sbi5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hbi5leHByLmZpbHRlcnMuaGlkZGVuKGEpfTt2YXIgJGI9LyUyMC9nLF9iPS9cW1xdJC8sYWM9L1xyP1xuL2csYmM9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLGNjPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtmdW5jdGlvbiBkYyhhLGIsYyxkKXt2YXIgZTtpZihuLmlzQXJyYXkoYikpbi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHxfYi50ZXN0KGEpP2QoYSxlKTpkYyhhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lP2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09bi50eXBlKGIpKWQoYSxiKTtlbHNlIGZvcihlIGluIGIpZGMoYSsiWyIrZSsiXSIsYltlXSxjLGQpfW4ucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9ZnVuY3Rpb24oYSxiKXtiPW4uaXNGdW5jdGlvbihiKT9iKCk6bnVsbD09Yj8iIjpiLGRbZC5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChhKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpfTtpZih2b2lkIDA9PT1iJiYoYj1uLmFqYXhTZXR0aW5ncyYmbi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLG4uaXNBcnJheShhKXx8YS5qcXVlcnkmJiFuLmlzUGxhaW5PYmplY3QoYSkpbi5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSlkYyhjLGFbY10sYixlKTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZSgkYiwiKyIpfSxuLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG4ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1uLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9uLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFuKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmY2MudGVzdCh0aGlzLm5vZGVOYW1lKSYmIWJjLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFaLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7dmFyIGM9bih0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09Yz9udWxsOm4uaXNBcnJheShjKT9uLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoYWMsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKGFjLCJcclxuIil9fSkuZ2V0KCl9fSksbi5hamF4U2V0dGluZ3MueGhyPXZvaWQgMCE9PWEuQWN0aXZlWE9iamVjdD9mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTG9jYWw/aWMoKTpkLmRvY3VtZW50TW9kZT44P2hjKCk6L14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmaGMoKXx8aWMoKX06aGM7dmFyIGVjPTAsZmM9e30sZ2M9bi5hamF4U2V0dGluZ3MueGhyKCk7YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib251bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIGZjKWZjW2FdKHZvaWQgMCwhMCl9KSxsLmNvcnM9ISFnYyYmIndpdGhDcmVkZW50aWFscyJpbiBnYyxnYz1sLmFqYXg9ISFnYyxnYyYmbi5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGIpe2lmKCFiLmNyb3NzRG9tYWlufHxsLmNvcnMpe3ZhciBjO3JldHVybntzZW5kOmZ1bmN0aW9uKGQsZSl7dmFyIGYsZz1iLnhocigpLGg9KytlYztpZihnLm9wZW4oYi50eXBlLGIudXJsLGIuYXN5bmMsYi51c2VybmFtZSxiLnBhc3N3b3JkKSxiLnhockZpZWxkcylmb3IoZiBpbiBiLnhockZpZWxkcylnW2ZdPWIueGhyRmllbGRzW2ZdO2IubWltZVR5cGUmJmcub3ZlcnJpZGVNaW1lVHlwZSYmZy5vdmVycmlkZU1pbWVUeXBlKGIubWltZVR5cGUpLGIuY3Jvc3NEb21haW58fGRbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGRbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZiBpbiBkKXZvaWQgMCE9PWRbZl0mJmcuc2V0UmVxdWVzdEhlYWRlcihmLGRbZl0rIiIpO2cuc2VuZChiLmhhc0NvbnRlbnQmJmIuZGF0YXx8bnVsbCksYz1mdW5jdGlvbihhLGQpe3ZhciBmLGksajtpZihjJiYoZHx8ND09PWcucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIGZjW2hdLGM9dm9pZCAwLGcub25yZWFkeXN0YXRlY2hhbmdlPW4ubm9vcCxkKTQhPT1nLnJlYWR5U3RhdGUmJmcuYWJvcnQoKTtlbHNle2o9e30sZj1nLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGcucmVzcG9uc2VUZXh0JiYoai50ZXh0PWcucmVzcG9uc2VUZXh0KTt0cnl7aT1nLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1mfHwhYi5pc0xvY2FsfHxiLmNyb3NzRG9tYWluPzEyMjM9PT1mJiYoZj0yMDQpOmY9ai50ZXh0PzIwMDo0MDR9aiYmZShmLGksaixnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYi5hc3luYz80PT09Zy5yZWFkeVN0YXRlP2Euc2V0VGltZW91dChjKTpnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mY1toXT1jOmMoKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKHZvaWQgMCwhMCl9fX19KTtmdW5jdGlvbiBoYygpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYil7fX1mdW5jdGlvbiBpYygpe3RyeXtyZXR1cm4gbmV3IGEuQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKX1jYXRjaChiKXt9fW4uYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBuLmdsb2JhbEV2YWwoYSksYX19fSksbi5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG4uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPWQuaGVhZHx8bigiaGVhZCIpWzBdfHxkLmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihlLGYpe2I9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxmKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgamM9W10sa2M9Lyg9KVw/KD89JnwkKXxcP1w/LztuLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9amMucG9wKCl8fG4uZXhwYW5kbysiXyIrRWIrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG4uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGtjLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYwPT09KGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYma2MudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW4uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGtjLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPShGYi50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bi5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP24oYSkucmVtb3ZlUHJvcChlKTphW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssamMucHVzaChlKSksZyYmbi5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbi5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fGQ7dmFyIGU9eC5leGVjKGEpLGY9IWMmJltdO3JldHVybiBlP1tiLmNyZWF0ZUVsZW1lbnQoZVsxXSldOihlPWphKFthXSxiLGYpLGYmJmYubGVuZ3RoJiZuKGYpLnJlbW92ZSgpLG4ubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9O3ZhciBsYz1uLmZuLmxvYWQ7bi5mbi5sb2FkPWZ1bmN0aW9uKGEsYixjKXtpZigic3RyaW5nIiE9dHlwZW9mIGEmJmxjKXJldHVybiBsYy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGQsZSxmLGc9dGhpcyxoPWEuaW5kZXhPZigiICIpO3JldHVybiBoPi0xJiYoZD1uLnRyaW0oYS5zbGljZShoLGEubGVuZ3RoKSksYT1hLnNsaWNlKDAsaCkpLG4uaXNGdW5jdGlvbihiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09dHlwZW9mIGImJihlPSJQT1NUIiksZy5sZW5ndGg+MCYmbi5hamF4KHt1cmw6YSx0eXBlOmV8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2Y9YXJndW1lbnRzLGcuaHRtbChkP24oIjxkaXY+IikuYXBwZW5kKG4ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuYWx3YXlzKGMmJmZ1bmN0aW9uKGEsYil7Zy5lYWNoKGZ1bmN0aW9uKCl7Yy5hcHBseSh0aGlzLGZ8fFthLnJlc3BvbnNlVGV4dCxiLGFdKX0pfSksdGhpc30sbi5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm9uKGIsYSl9fSksbi5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZ3JlcChuLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PWIuZWxlbX0pLmxlbmd0aH07ZnVuY3Rpb24gbWMoYSl7cmV0dXJuIG4uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1uLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW4uY3NzKGEsInBvc2l0aW9uIiksbD1uKGEpLG09e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1uLmNzcyhhLCJ0b3AiKSxpPW4uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZuLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbi5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLG4uZXh0ZW5kKHt9LGgpKSksbnVsbCE9Yi50b3AmJihtLnRvcD1iLnRvcC1oLnRvcCtnKSxudWxsIT1iLmxlZnQmJihtLmxlZnQ9Yi5sZWZ0LWgubGVmdCtlKSwidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxtKTpsLmNzcyhtKX19LG4uZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09YT90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihiKXtuLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLGIpfSk7dmFyIGIsYyxkPXt0b3A6MCxsZWZ0OjB9LGU9dGhpc1swXSxmPWUmJmUub3duZXJEb2N1bWVudDtpZihmKXJldHVybiBiPWYuZG9jdW1lbnRFbGVtZW50LG4uY29udGFpbnMoYixlKT8oInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCYmKGQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksYz1tYyhmKSx7dG9wOmQudG9wKyhjLnBhZ2VZT2Zmc2V0fHxiLnNjcm9sbFRvcCktKGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoYy5wYWdlWE9mZnNldHx8Yi5zY3JvbGxMZWZ0KS0oYi5jbGllbnRMZWZ0fHwwKX0pOmR9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYixjPXt0b3A6MCxsZWZ0OjB9LGQ9dGhpc1swXTtyZXR1cm4iZml4ZWQiPT09bi5jc3MoZCwicG9zaXRpb24iKT9iPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6KGE9dGhpcy5vZmZzZXRQYXJlbnQoKSxiPXRoaXMub2Zmc2V0KCksbi5ub2RlTmFtZShhWzBdLCJodG1sIil8fChjPWEub2Zmc2V0KCkpLGMudG9wKz1uLmNzcyhhWzBdLCJib3JkZXJUb3BXaWR0aCIsITApLGMubGVmdCs9bi5jc3MoYVswXSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpLHt0b3A6Yi50b3AtYy50b3Atbi5jc3MoZCwibWFyZ2luVG9wIiwhMCksbGVmdDpiLmxlZnQtYy5sZWZ0LW4uY3NzKGQsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShhJiYhbi5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bi5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxRYX0pfX0pLG4uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO24uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9bWMoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bihmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bihmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbi5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bi5jc3NIb29rc1tiXT1VYShsLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1TYShhLGIpLE9hLnRlc3QoYyk/bihhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxuLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe24uZWFjaCh7CnBhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6YiwiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZCl7bi5mbltkXT1mdW5jdGlvbihkLGUpe3ZhciBmPWFyZ3VtZW50cy5sZW5ndGgmJihjfHwiYm9vbGVhbiIhPXR5cGVvZiBkKSxnPWN8fChkPT09ITB8fGU9PT0hMD8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihiLGMsZCl7dmFyIGU7cmV0dXJuIG4uaXNXaW5kb3coYik/Yi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWIubm9kZVR5cGU/KGU9Yi5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoYi5ib2R5WyJzY3JvbGwiK2FdLGVbInNjcm9sbCIrYV0sYi5ib2R5WyJvZmZzZXQiK2FdLGVbIm9mZnNldCIrYV0sZVsiY2xpZW50IithXSkpOnZvaWQgMD09PWQ/bi5jc3MoYixjLGcpOm4uc3R5bGUoYixjLGQsZyl9LGIsZj9kOnZvaWQgMCxmLG51bGwpfX0pfSksbi5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLm9uKGEsbnVsbCxiLGMpfSx1bmJpbmQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5vZmYoYSxudWxsLGIpfSxkZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5vbihiLGEsYyxkKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMub2ZmKGEsIioqIik6dGhpcy5vZmYoYixhfHwiKioiLGMpfX0pLG4uZm4uc2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sbi5mbi5hbmRTZWxmPW4uZm4uYWRkQmFjaywiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gbn0pO3ZhciBuYz1hLmpRdWVyeSxvYz1hLiQ7cmV0dXJuIG4ubm9Db25mbGljdD1mdW5jdGlvbihiKXtyZXR1cm4gYS4kPT09biYmKGEuJD1vYyksYiYmYS5qUXVlcnk9PT1uJiYoYS5qUXVlcnk9bmMpLG59LGJ8fChhLmpRdWVyeT1hLiQ9biksbn0pOwo="></script>
<link href="data:text/css;charset=utf-8,%2Edt%2Dcrosstalk%2Dfade%20%7B%0Aopacity%3A%200%2E2%3B%0A%7D%0Ahtml%20body%20div%2EDTS%20div%2EdataTables%5FscrollBody%20%7B%0Abackground%3A%20none%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewoKLy8gc29tZSBoZWxwZXIgZnVuY3Rpb25zOiB1c2luZyBhIGdsb2JhbCBvYmplY3QgRFRXaWRnZXQgc28gdGhhdCBpdCBjYW4gYmUgdXNlZAovLyBpbiBKUygpIGNvZGUsIGUuZy4gZGF0YXRhYmxlKG9wdGlvbnMgPSBsaXN0KGZvbyA9IEpTKCdjb2RlJykpKTsgdW5saWtlIFIncwovLyBkeW5hbWljIHNjb3BpbmcsIHdoZW4gJ2NvZGUnIGlzIGV2YWwoKSdlZCwgSmF2YVNjcmlwdCBkb2VzIG5vdCBrbm93IG9iamVjdHMKLy8gZnJvbSB0aGUgInBhcmVudCBmcmFtZSIsIGUuZy4gSlMoJ0RUV2lkZ2V0Jykgd2lsbCBub3Qgd29yayB1bmxlc3MgaXQgd2FzIG1hZGUKLy8gYSBnbG9iYWwgb2JqZWN0CnZhciBEVFdpZGdldCA9IHt9OwoKLy8gMTIzNDU2NjY2Ljc4OTAgLT4gMTIzLDQ1Niw2NjYuNzg5MAp2YXIgbWFya0ludGVydmFsID0gZnVuY3Rpb24oZCwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaywgcHJlY2lzaW9uKSB7CiAgeCA9IHByZWNpc2lvbiA/IGQudG9QcmVjaXNpb24oZGlnaXRzKSA6IGQudG9GaXhlZChkaWdpdHMpOwogIGlmICghL14tP1tcZC5dKyQvLnRlc3QoeCkpIHJldHVybiB4OwogIHZhciB4diA9IHguc3BsaXQoJy4nKTsKICBpZiAoeHYubGVuZ3RoID4gMikgcmV0dXJuIHg7ICAvLyBzaG91bGQgaGF2ZSBhdCBtb3N0IG9uZSBkZWNpbWFsIHBvaW50CiAgeHZbMF0gPSB4dlswXS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcQig/PShcXGR7JyArIGludGVydmFsICsgJ30pKyg/IVxcZCkpJywgJ2cnKSwgbWFyayk7CiAgcmV0dXJuIHh2LmpvaW4oZGVjTWFyayk7Cn07CgpEVFdpZGdldC5mb3JtYXRDdXJyZW5jeSA9IGZ1bmN0aW9uKHRoaXosIHJvdywgZGF0YSwgY29sLCBjdXJyZW5jeSwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaywgYmVmb3JlKSB7CiAgdmFyIGQgPSBwYXJzZUZsb2F0KGRhdGFbY29sXSk7CiAgaWYgKGlzTmFOKGQpKSByZXR1cm47CiAgdmFyIHJlcyA9IG1hcmtJbnRlcnZhbChkLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrKTsKICByZXMgPSBiZWZvcmUgPyAoL14tLy50ZXN0KHJlcykgPyAnLScgKyBjdXJyZW5jeSArIHJlcy5yZXBsYWNlKC9eLS8sICcnKSA6IGN1cnJlbmN5ICsgcmVzKSA6CiAgICByZXMgKyBjdXJyZW5jeTsKICAkKHRoaXouYXBpKCkuY2VsbChyb3csIGNvbCkubm9kZSgpKS5odG1sKHJlcyk7Cn07CgpEVFdpZGdldC5mb3JtYXRTdHJpbmcgPSBmdW5jdGlvbih0aGl6LCByb3csIGRhdGEsIGNvbCwgcHJlZml4LCBzdWZmaXgpIHsKICB2YXIgZCA9IGRhdGFbY29sXTsKICBpZiAoZCA9PT0gbnVsbCkgcmV0dXJuOwogIHZhciBjZWxsID0gJCh0aGl6LmFwaSgpLmNlbGwocm93LCBjb2wpLm5vZGUoKSk7CiAgY2VsbC5odG1sKHByZWZpeCArIGNlbGwuaHRtbCgpICsgc3VmZml4KTsKfTsKCkRUV2lkZ2V0LmZvcm1hdFBlcmNlbnRhZ2UgPSBmdW5jdGlvbih0aGl6LCByb3csIGRhdGEsIGNvbCwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaykgewogIHZhciBkID0gcGFyc2VGbG9hdChkYXRhW2NvbF0pOwogIGlmIChpc05hTihkKSkgcmV0dXJuOwogICQodGhpei5hcGkoKS5jZWxsKHJvdywgY29sKS5ub2RlKCkpCiAgLmh0bWwobWFya0ludGVydmFsKGQgKiAxMDAsIGRpZ2l0cywgaW50ZXJ2YWwsIG1hcmssIGRlY01hcmspICsgJyUnKTsKfTsKCkRUV2lkZ2V0LmZvcm1hdFJvdW5kID0gZnVuY3Rpb24odGhpeiwgcm93LCBkYXRhLCBjb2wsIGRpZ2l0cywgaW50ZXJ2YWwsIG1hcmssIGRlY01hcmspIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YVtjb2xdKTsKICBpZiAoaXNOYU4oZCkpIHJldHVybjsKICAkKHRoaXouYXBpKCkuY2VsbChyb3csIGNvbCkubm9kZSgpKS5odG1sKG1hcmtJbnRlcnZhbChkLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrKSk7Cn07CgpEVFdpZGdldC5mb3JtYXRTaWduaWYgPSBmdW5jdGlvbih0aGl6LCByb3csIGRhdGEsIGNvbCwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaykgewogIHZhciBkID0gcGFyc2VGbG9hdChkYXRhW2NvbF0pOwogIGlmIChpc05hTihkKSkgcmV0dXJuOwogICQodGhpei5hcGkoKS5jZWxsKHJvdywgY29sKS5ub2RlKCkpCiAgICAuaHRtbChtYXJrSW50ZXJ2YWwoZCwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaywgdHJ1ZSkpOwp9OwoKRFRXaWRnZXQuZm9ybWF0RGF0ZSA9IGZ1bmN0aW9uKHRoaXosIHJvdywgZGF0YSwgY29sLCBtZXRob2QsIHBhcmFtcykgewogIHZhciBkID0gZGF0YVtjb2xdOwogIGlmIChkID09PSBudWxsKSByZXR1cm47CiAgLy8gKG5ldyBEYXRlKCcyMDE1LTEwLTI4JykpLnRvRGF0ZVN0cmluZygpIG1heSByZXR1cm4gMjAxNS0xMC0yNyBiZWNhdXNlIHRoZQogIC8vIGFjdHVhbCB0aW1lIGNyZWF0ZWQgY291bGQgYmUgbGlrZSAnVHVlIE9jdCAyNyAyMDE1IDE5OjAwOjAwIEdNVC0wNTAwIChDRFQpJywKICAvLyBpLmUuIHRoZSBkYXRlLW9ubHkgc3RyaW5nIGlzIHRyZWF0ZWQgYXMgVVRDIHRpbWUgaW5zdGVhZCBvZiBsb2NhbCB0aW1lCiAgaWYgKChtZXRob2QgPT09ICd0b0RhdGVTdHJpbmcnIHx8IG1ldGhvZCA9PT0gJ3RvTG9jYWxlRGF0ZVN0cmluZycpICYmIC9eXGR7NCx9XERcZHsyfVxEXGR7Mn0kLy50ZXN0KGQpKSB7CiAgICBkID0gZC5zcGxpdCgvXEQvKTsKICAgIGQgPSBuZXcgRGF0ZShkWzBdLCBkWzFdIC0gMSwgZFsyXSk7CiAgfSBlbHNlIHsKICAgIGQgPSBuZXcgRGF0ZShkKTsKICB9CiAgJCh0aGl6LmFwaSgpLmNlbGwocm93LCBjb2wpLm5vZGUoKSkuaHRtbChkW21ldGhvZF0uYXBwbHkoZCwgcGFyYW1zKSk7Cn07Cgp3aW5kb3cuRFRXaWRnZXQgPSBEVFdpZGdldDsKCnZhciB0cmFuc3Bvc2VBcnJheTJEID0gZnVuY3Rpb24oYSkgewogIHJldHVybiBhLmxlbmd0aCA9PT0gMCA/IGEgOiBIVE1MV2lkZ2V0cy50cmFuc3Bvc2VBcnJheTJEKGEpOwp9OwoKdmFyIGNyb3NzdGFsa1BsdWdpbnNJbnN0YWxsZWQgPSBmYWxzZTsKCmZ1bmN0aW9uIG1heWJlSW5zdGFsbENyb3NzdGFsa1BsdWdpbnMoKSB7CiAgaWYgKGNyb3NzdGFsa1BsdWdpbnNJbnN0YWxsZWQpCiAgICByZXR1cm47CiAgY3Jvc3N0YWxrUGx1Z2luc0luc3RhbGxlZCA9IHRydWU7CgogICQuZm4uZGF0YVRhYmxlLmV4dC5hZm5GaWx0ZXJpbmcucHVzaCgKICAgIGZ1bmN0aW9uKG9TZXR0aW5ncywgYURhdGEsIGlEYXRhSW5kZXgpIHsKICAgICAgdmFyIGN0ZmlsdGVyID0gb1NldHRpbmdzLm5UYWJsZS5jdGZpbHRlcjsKICAgICAgaWYgKGN0ZmlsdGVyICYmICFjdGZpbHRlcltpRGF0YUluZGV4XSkKICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICB2YXIgY3RzZWxlY3QgPSBvU2V0dGluZ3MublRhYmxlLmN0c2VsZWN0OwogICAgICBpZiAoY3RzZWxlY3QgJiYgIWN0c2VsZWN0W2lEYXRhSW5kZXhdKQogICAgICAgIHJldHVybiBmYWxzZTsKCiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICk7Cn0KCkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogImRhdGF0YWJsZXMiLAogIHR5cGU6ICJvdXRwdXQiLAogIHJlbmRlck9uTnVsbFZhbHVlOiB0cnVlLAogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAkKGVsKS5odG1sKCcmbmJzcDsnKTsKICAgIHJldHVybiB7CiAgICAgIGRhdGE6IG51bGwsCiAgICAgIGN0ZmlsdGVySGFuZGxlOiBuZXcgY3Jvc3N0YWxrLkZpbHRlckhhbmRsZSgpLAogICAgICBjdGZpbHRlclN1YnNjcmlwdGlvbjogbnVsbCwKICAgICAgY3RzZWxlY3RIYW5kbGU6IG5ldyBjcm9zc3RhbGsuU2VsZWN0aW9uSGFuZGxlKCksCiAgICAgIGN0c2VsZWN0U3Vic2NyaXB0aW9uOiBudWxsCiAgICB9OwogIH0sCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCBkYXRhLCBpbnN0YW5jZSkgewogICAgaWYgKGVsLm9mZnNldFdpZHRoID09PSAwIHx8IGVsLm9mZnNldEhlaWdodCA9PT0gMCkgewogICAgICBpbnN0YW5jZS5kYXRhID0gZGF0YTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaW5zdGFuY2UuZGF0YSA9IG51bGw7CiAgICB2YXIgJGVsID0gJChlbCk7CiAgICAkZWwuZW1wdHkoKTsKCiAgICBpZiAoZGF0YSA9PT0gbnVsbCkgewogICAgICAkZWwuYXBwZW5kKCcmbmJzcDsnKTsKICAgICAgLy8gY2xlYXIgcHJldmlvdXMgU2hpbnkgaW5wdXRzIChpZiBhbnkpCiAgICAgIGZvciAodmFyIGkgaW4gaW5zdGFuY2UuY2xlYXJJbnB1dHMpIGluc3RhbmNlLmNsZWFySW5wdXRzW2ldKCk7CiAgICAgIGluc3RhbmNlLmNsZWFySW5wdXRzID0ge307CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgY3Jvc3N0YWxrT3B0aW9ucyA9IGRhdGEuY3Jvc3N0YWxrT3B0aW9uczsKICAgIGlmICghY3Jvc3N0YWxrT3B0aW9ucykgY3Jvc3N0YWxrT3B0aW9ucyA9IHsKICAgICAgJ2tleSc6IG51bGwsICdncm91cCc6IG51bGwKICAgIH07CiAgICBpZiAoY3Jvc3N0YWxrT3B0aW9ucy5ncm91cCkgewogICAgICBtYXliZUluc3RhbGxDcm9zc3RhbGtQbHVnaW5zKCk7CiAgICAgIGluc3RhbmNlLmN0ZmlsdGVySGFuZGxlLnNldEdyb3VwKGNyb3NzdGFsa09wdGlvbnMuZ3JvdXApOwogICAgICBpbnN0YW5jZS5jdHNlbGVjdEhhbmRsZS5zZXRHcm91cChjcm9zc3RhbGtPcHRpb25zLmdyb3VwKTsKICAgIH0KCiAgICAvLyBJZiB3ZSBhcmUgaW4gYSBmbGV4ZGFzaGJvYXJkIHNjcm9sbCBsYXlvdXQgdGhlbiB3ZToKICAgIC8vICAoYSkgQWx3YXlzIHdhbnQgdG8gdXNlIHBhZ2luYXRpb24gKG90aGVyd2lzZSB3ZSdsbCBoYXZlCiAgICAvLyAgICAgIGEgImRvdWJsZSBzY3JvbGwgYmFyIiBlZmZlY3Qgb24gdGhlIHBob25lKTsgYW5kCiAgICAvLyAgKGIpIE5ldmVyIHdhbnQgdG8gZmlsbCB0aGUgY29udGFpbmVyICh3ZSB3YW50IHRoZSBwYWdpbmF0aW9uCiAgICAvLyAgICAgIGxldmVsIHRvIGRldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyKQogICAgaWYgKHdpbmRvdy5GbGV4RGFzaGJvYXJkICYmICF3aW5kb3cuRmxleERhc2hib2FyZC5pc0ZpbGxQYWdlKCkpIHsKICAgICAgZGF0YS5vcHRpb25zLmJQYWdpbmF0ZSA9IHRydWU7CiAgICAgIGRhdGEuZmlsbENvbnRhaW5lciA9IGZhbHNlOwogICAgfQoKICAgIC8vIGlmIHdlIGFyZSBpbiB0aGUgdmlld2VyIHRoZW4gd2UgYWx3YXlzIHdhbnQgdG8gZmlsbENvbnRhaW5lciBhbmQKICAgIC8vIGFuZCBhdXRvSGlkZU5hdmlnYXRpb24gKHVubGVzcyB0aGUgdXNlciBoYXMgZXhwbGljaXRseSBzZXQgdGhlc2UpCiAgICBpZiAod2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUpIHsKICAgICAgaWYgKCFkYXRhLmhhc093blByb3BlcnR5KCJmaWxsQ29udGFpbmVyIikpCiAgICAgICAgZGF0YS5maWxsQ29udGFpbmVyID0gdHJ1ZTsKICAgICAgaWYgKCFkYXRhLmhhc093blByb3BlcnR5KCJhdXRvSGlkZU5hdmlnYXRpb24iKSkKICAgICAgICBkYXRhLmF1dG9IaWRlTmF2aWdhdGlvbiA9IHRydWU7CiAgICB9CgogICAgLy8gcHJvcGFnYXRlIGZpbGxDb250YWluZXIgdG8gaW5zdGFuY2UgKHNvIHdlIGhhdmUgaXQgaW4gcmVzaXplKQogICAgaW5zdGFuY2UuZmlsbENvbnRhaW5lciA9IGRhdGEuZmlsbENvbnRhaW5lcjsKCiAgICB2YXIgY2VsbHMgPSBkYXRhLmRhdGE7CgogICAgaWYgKGNlbGxzIGluc3RhbmNlb2YgQXJyYXkpIGNlbGxzID0gdHJhbnNwb3NlQXJyYXkyRChjZWxscyk7CgogICAgJGVsLmFwcGVuZChkYXRhLmNvbnRhaW5lcik7CiAgICB2YXIgJHRhYmxlID0gJGVsLmZpbmQoJ3RhYmxlJyk7CiAgICBpZiAoZGF0YS5jbGFzcykgJHRhYmxlLmFkZENsYXNzKGRhdGEuY2xhc3MpOwogICAgaWYgKGRhdGEuY2FwdGlvbikgJHRhYmxlLnByZXBlbmQoZGF0YS5jYXB0aW9uKTsKCiAgICBpZiAoIWRhdGEuc2VsZWN0aW9uKSBkYXRhLnNlbGVjdGlvbiA9IHsKICAgICAgbW9kZTogJ25vbmUnLCBzZWxlY3RlZDogbnVsbCwgdGFyZ2V0OiAncm93JwogICAgfTsKICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgZGF0YS5zZWxlY3Rpb24ubW9kZSAhPT0gJ25vbmUnICYmCiAgICAgICAgZGF0YS5zZWxlY3Rpb24udGFyZ2V0ID09PSAncm93K2NvbHVtbicpIHsKICAgICAgaWYgKCR0YWJsZS5jaGlsZHJlbigndGZvb3QnKS5sZW5ndGggPT09IDApIHsKICAgICAgICAkdGFibGUuYXBwZW5kKCQoJzx0Zm9vdD4nKSk7CiAgICAgICAgJHRhYmxlLmZpbmQoJ3RoZWFkIHRyJykuY2xvbmUoKS5hcHBlbmRUbygkdGFibGUuZmluZCgndGZvb3QnKSk7CiAgICAgIH0KICAgIH0KCiAgICAvLyBjb2x1bW4gZmlsdGVycwogICAgdmFyIGZpbHRlclJvdzsKICAgIHN3aXRjaCAoZGF0YS5maWx0ZXIpIHsKICAgICAgY2FzZSAndG9wJzoKICAgICAgICAkdGFibGUuY2hpbGRyZW4oJ3RoZWFkJykuYXBwZW5kKGRhdGEuZmlsdGVySFRNTCk7CiAgICAgICAgZmlsdGVyUm93ID0gJHRhYmxlLmZpbmQoJ3RoZWFkIHRyOmxhc3QgdGQnKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAnYm90dG9tJzoKICAgICAgICBpZiAoJHRhYmxlLmNoaWxkcmVuKCd0Zm9vdCcpLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgJHRhYmxlLmFwcGVuZCgkKCc8dGZvb3Q+JykpOwogICAgICAgIH0KICAgICAgICAkdGFibGUuY2hpbGRyZW4oJ3Rmb290JykucHJlcGVuZChkYXRhLmZpbHRlckhUTUwpOwogICAgICAgIGZpbHRlclJvdyA9ICR0YWJsZS5maW5kKCd0Zm9vdCB0cjpmaXJzdCB0ZCcpOwogICAgICAgIGJyZWFrOwogICAgfQoKICAgIHZhciBvcHRpb25zID0geyBzZWFyY2hEZWxheTogMTAwMCB9OwogICAgaWYgKGNlbGxzICE9PSBudWxsKSAkLmV4dGVuZChvcHRpb25zLCB7CiAgICAgIGRhdGE6IGNlbGxzCiAgICB9KTsKCiAgICAvLyBvcHRpb25zIGZvciBmaWxsQ29udGFpbmVyCiAgICB2YXIgYm9vdHN0cmFwQWN0aXZlID0gdHlwZW9mKCQuZm4ucG9wb3ZlcikgIT0gJ3VuZGVmaW5lZCc7CiAgICBpZiAoaW5zdGFuY2UuZmlsbENvbnRhaW5lcikgewoKICAgICAgLy8gZm9yY2Ugc2Nyb2xsWC9zY3JvbGxZIGFuZCB0dXJuIG9mZiBhdXRvV2lkdGgKICAgICAgb3B0aW9ucy5zY3JvbGxYID0gdHJ1ZTsKICAgICAgb3B0aW9ucy5zY3JvbGxZID0gIjEwMHB4IjsgLy8gY2FuIGJlIGFueSB2YWx1ZSwgd2UnbGwgYWRqdXN0IGJlbG93CgogICAgICAvLyBpZiB3ZSBhcmVuJ3QgcGFnaW5hdGluZyB0aGVuIG1vdmUgYXJvdW5kIHRoZSBpbmZvL2ZpbHRlciBjb250cm9scwogICAgICAvLyB0byBzYXZlIHNwYWNlIGF0IHRoZSBib3R0b20gYW5kIHJlcGhyYXNlIHRoZSBpbmZvIGNhbGxiYWNrCiAgICAgIGlmIChkYXRhLm9wdGlvbnMuYlBhZ2luYXRlID09PSBmYWxzZSkgewoKICAgICAgICAvLyB3ZSBrbm93IGhvdyB0byBkbyB0aGlzIGNsZWFubHkgZm9yIGJvb3RzdHJhcCwgbm90IHNvIG11Y2gKICAgICAgICAvLyBmb3Igb3RoZXIgdGhlbWVzL2xheW91dHMKICAgICAgICBpZiAoYm9vdHN0cmFwQWN0aXZlKSB7CiAgICAgICAgICBvcHRpb25zLmRvbSA9ICI8J3Jvdyc8J2NvbC1zbS00J2k+PCdjb2wtc20tOCdmPj4iICsKICAgICAgICAgICAgICAgICAgICAgICAgIjwncm93JzwnY29sLXNtLTEyJ3RyPj4iOwogICAgICAgIH0KCiAgICAgICAgb3B0aW9ucy5mbkluZm9DYWxsYmFjayA9IGZ1bmN0aW9uKG9TZXR0aW5ncywgaVN0YXJ0LCBpRW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaU1heCwgaVRvdGFsLCBzUHJlKSB7CiAgICAgICAgICByZXR1cm4gTnVtYmVyKGlUb3RhbCkudG9Mb2NhbGVTdHJpbmcoKSArICIgcmVjb3JkcyI7CiAgICAgICAgfTsKICAgICAgfQogICAgfQoKICAgIC8vIGF1dG8gaGlkZSBuYXZpZ2F0aW9uIGlmIHJlcXVlc3RlZAogICAgaWYgKGRhdGEuYXV0b0hpZGVOYXZpZ2F0aW9uID09PSB0cnVlKSB7CiAgICAgIGlmIChib290c3RyYXBBY3RpdmUgJiYgZGF0YS5vcHRpb25zLmJQYWdpbmF0ZSAhPT0gZmFsc2UpIHsKICAgICAgICAvLyBzdHJpcCBhbGwgbmF2IGlmIGxlbmd0aCA+PSBjZWxscwogICAgICAgIGlmICgoY2VsbHMgaW5zdGFuY2VvZiBBcnJheSkgJiYgZGF0YS5vcHRpb25zLmlEaXNwbGF5TGVuZ3RoID49IGNlbGxzLmxlbmd0aCkKICAgICAgICAgIG9wdGlvbnMuZG9tID0gIjwncm93JzwnY29sLXNtLTEyJ3RyPj4iOwogICAgICAgIC8vIGFsdGVybmF0aXZlbHkgbGVhbiB0aGluZ3Mgb3V0IGZvciBmbGV4ZGFzaGJvYXJkIG1vYmlsZSBwb3J0cmFpdAogICAgICAgIGVsc2UgaWYgKHdpbmRvdy5GbGV4RGFzaGJvYXJkICYmIHdpbmRvdy5GbGV4RGFzaGJvYXJkLmlzTW9iaWxlUGhvbmUoKSkKICAgICAgICAgIG9wdGlvbnMuZG9tID0gIjwncm93JzwnY29sLXNtLTEyJ2Y+PiIgKwogICAgICAgICAgICAgICAgICAgICAgICAiPCdyb3cnPCdjb2wtc20tMTIndHI+PiIgICsKICAgICAgICAgICAgICAgICAgICAgICAgIjwncm93JzwnY29sLXNtLTEyJ3A+PiI7CiAgICAgIH0KICAgIH0KCiAgICAkLmV4dGVuZCh0cnVlLCBvcHRpb25zLCBkYXRhLm9wdGlvbnMgfHwge30pOwoKICAgIHZhciBzZWFyY2hDb2xzID0gb3B0aW9ucy5zZWFyY2hDb2xzOwogICAgaWYgKHNlYXJjaENvbHMpIHsKICAgICAgc2VhcmNoQ29scyA9IHNlYXJjaENvbHMubWFwKGZ1bmN0aW9uKHgpIHsKICAgICAgICByZXR1cm4geCA9PT0gbnVsbCA/ICcnIDogeC5zZWFyY2g7CiAgICAgIH0pOwogICAgICAvLyBGSVhNRTogdGhpcyBtZWFucyBJIGRvbid0IHJlc3BlY3QgdGhlIGVzY2FwZVJlZ2V4IHNldHRpbmcKICAgICAgZGVsZXRlIG9wdGlvbnMuc2VhcmNoQ29sczsKICAgIH0KCiAgICAvLyBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nPwogICAgdmFyIHNlcnZlciA9IG9wdGlvbnMuc2VydmVyU2lkZSA9PT0gdHJ1ZTsKCiAgICAvLyB1c2UgdGhlIGRhdGFTcmMgZnVuY3Rpb24gdG8gcHJlLXByb2Nlc3MgSlNPTiBkYXRhIHJldHVybmVkIGZyb20gUgogICAgdmFyIERUX3Jvd3NfYWxsID0gW10sIERUX3Jvd3NfY3VycmVudCA9IFtdOwogICAgaWYgKHNlcnZlciAmJiBIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgdHlwZW9mIG9wdGlvbnMuYWpheCA9PT0gJ29iamVjdCcgJiYKICAgICAgICAvXnNlc3Npb25cL1tcZGEtel0rXC9kYXRhb2JqLy50ZXN0KG9wdGlvbnMuYWpheC51cmwpICYmICFvcHRpb25zLmFqYXguZGF0YVNyYykgewogICAgICBvcHRpb25zLmFqYXguZGF0YVNyYyA9IGZ1bmN0aW9uKGpzb24pIHsKICAgICAgICBEVF9yb3dzX2FsbCA9ICQubWFrZUFycmF5KGpzb24uRFRfcm93c19hbGwpOwogICAgICAgIERUX3Jvd3NfY3VycmVudCA9ICQubWFrZUFycmF5KGpzb24uRFRfcm93c19jdXJyZW50KTsKICAgICAgICB2YXIgZGF0YSA9IGpzb24uZGF0YTsKICAgICAgICBpZiAoIWNvbFJlb3JkZXJFbmFibGVkKCkpIHJldHVybiBkYXRhOwogICAgICAgIHZhciB0YWJsZSA9ICR0YWJsZS5EYXRhVGFibGUoKSwgb3JkZXIgPSB0YWJsZS5jb2xSZW9yZGVyLm9yZGVyKCksIGZsYWcgPSB0cnVlLCBpLCBqLCByb3c7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IG9yZGVyLmxlbmd0aDsgKytpKSBpZiAob3JkZXJbaV0gIT09IGkpIGZsYWcgPSBmYWxzZTsKICAgICAgICBpZiAoZmxhZykgcmV0dXJuIGRhdGE7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHsKICAgICAgICAgIHJvdyA9IGRhdGFbaV0uc2xpY2UoKTsKICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBvcmRlci5sZW5ndGg7ICsraikgZGF0YVtpXVtqXSA9IHJvd1tvcmRlcltqXV07CiAgICAgICAgfQogICAgICAgIHJldHVybiBkYXRhOwogICAgICB9OwogICAgfQoKICAgIHZhciB0aGl6ID0gdGhpczsKICAgIGlmIChpbnN0YW5jZS5maWxsQ29udGFpbmVyKSAkdGFibGUub24oJ2luaXQuZHQnLCBmdW5jdGlvbihlKSB7CiAgICAgIHRoaXouZmlsbEF2YWlsYWJsZUhlaWdodChlbCwgJChlbCkuaW5uZXJIZWlnaHQoKSk7CiAgICB9KTsKICAgIC8vIElmIHRoZSBwYWdlIGNvbnRhaW5zIHNlcnZlcmFsIGRhdGF0YWJsZXMgYW5kIG9uZSBvZiB3aGljaCBlbmFibGVzIGNvbFJlb3JkZXIsCiAgICAvLyB0aGUgdGFibGUuY29sUmVvcmRlci5vcmRlcigpIGZ1bmN0aW9uIHdpbGwgZXhpc3QgYnV0IHRocm93cyBlcnJvciB3aGVuIGNhbGxlZC4KICAgIC8vIFNvIGl0IHNlZW1zIGxpa2UgdGhlIG9ubHkgd2F5IHRvIGtub3cgaWYgY29sUmVvcmRlciBpcyBlbmFibGVkIG9yIG5vdCBpcyB0bwogICAgLy8gY2hlY2sgdGhlIG9wdGlvbnMuCiAgICB2YXIgY29sUmVvcmRlckVuYWJsZWQgPSBmdW5jdGlvbigpIHsgcmV0dXJuICJjb2xSZW9yZGVyIiBpbiBvcHRpb25zOyB9OwogICAgdmFyIHRhYmxlID0gJHRhYmxlLkRhdGFUYWJsZShvcHRpb25zKTsKICAgICRlbC5kYXRhKCdkYXRhdGFibGUnLCB0YWJsZSk7CgogICAgLy8gVW5yZWdpc3RlciBwcmV2aW91cyBDcm9zc3RhbGsgZXZlbnQgc3Vic2NyaXB0aW9ucywgaWYgdGhleSBleGlzdAogICAgaWYgKGluc3RhbmNlLmN0ZmlsdGVyU3Vic2NyaXB0aW9uKSB7CiAgICAgIGluc3RhbmNlLmN0ZmlsdGVySGFuZGxlLm9mZigiY2hhbmdlIiwgaW5zdGFuY2UuY3RmaWx0ZXJTdWJzY3JpcHRpb24pOwogICAgICBpbnN0YW5jZS5jdGZpbHRlclN1YnNjcmlwdGlvbiA9IG51bGw7CiAgICB9CiAgICBpZiAoaW5zdGFuY2UuY3RzZWxlY3RTdWJzY3JpcHRpb24pIHsKICAgICAgaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUub2ZmKCJjaGFuZ2UiLCBpbnN0YW5jZS5jdHNlbGVjdFN1YnNjcmlwdGlvbik7CiAgICAgIGluc3RhbmNlLmN0c2VsZWN0U3Vic2NyaXB0aW9uID0gbnVsbDsKICAgIH0KCiAgICBpZiAoIWNyb3NzdGFsa09wdGlvbnMuZ3JvdXApIHsKICAgICAgJHRhYmxlWzBdLmN0ZmlsdGVyID0gbnVsbDsKICAgICAgJHRhYmxlWzBdLmN0c2VsZWN0ID0gbnVsbDsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBrZXkgPSBjcm9zc3RhbGtPcHRpb25zLmtleTsKICAgICAgZnVuY3Rpb24ga2V5c1RvTWF0Y2hlcyhrZXlzKSB7CiAgICAgICAgaWYgKCFrZXlzKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIHNlbGVjdGVkS2V5cyA9IHt9OwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHNlbGVjdGVkS2V5c1trZXlzW2ldXSA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgbWF0Y2hlcyA9IHt9OwogICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBrZXkubGVuZ3RoOyBqKyspIHsKICAgICAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1trZXlbal1dKQogICAgICAgICAgICAgIG1hdGNoZXNbal0gPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIG1hdGNoZXM7CiAgICAgICAgfQogICAgICB9CgogICAgICBmdW5jdGlvbiBhcHBseUNyb3NzdGFsa0ZpbHRlcihlKSB7CiAgICAgICAgJHRhYmxlWzBdLmN0ZmlsdGVyID0ga2V5c1RvTWF0Y2hlcyhlLnZhbHVlKTsKICAgICAgICB0YWJsZS5kcmF3KCk7CiAgICAgIH0KICAgICAgaW5zdGFuY2UuY3RmaWx0ZXJTdWJzY3JpcHRpb24gPSBpbnN0YW5jZS5jdGZpbHRlckhhbmRsZS5vbigiY2hhbmdlIiwgYXBwbHlDcm9zc3RhbGtGaWx0ZXIpOwogICAgICBhcHBseUNyb3NzdGFsa0ZpbHRlcih7dmFsdWU6IGluc3RhbmNlLmN0ZmlsdGVySGFuZGxlLmZpbHRlcmVkS2V5c30pOwoKICAgICAgZnVuY3Rpb24gYXBwbHlDcm9zc3RhbGtTZWxlY3Rpb24oZSkgewogICAgICAgIGlmIChlLnNlbmRlciAhPT0gaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUpIHsKICAgICAgICAgIHRhYmxlCiAgICAgICAgICAgIC5yb3dzKCcuJyArIHNlbENsYXNzLCB7c2VhcmNoOiAnYXBwbGllZCd9KQogICAgICAgICAgICAubm9kZXMoKQogICAgICAgICAgICAudG8kKCkKICAgICAgICAgICAgLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgIGlmIChzZWxlY3RlZFJvd3MpCiAgICAgICAgICAgIGNoYW5nZUlucHV0KCdyb3dzX3NlbGVjdGVkJywgc2VsZWN0ZWRSb3dzKCksIHZvaWQgMCwgdHJ1ZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoZS5zZW5kZXIgIT09IGluc3RhbmNlLmN0c2VsZWN0SGFuZGxlICYmIGUudmFsdWUgJiYgZS52YWx1ZS5sZW5ndGgpIHsKICAgICAgICAgIHZhciBtYXRjaGVzID0ga2V5c1RvTWF0Y2hlcyhlLnZhbHVlKTsKCiAgICAgICAgICAvLyBwZXJzaXN0ZW50IHNlbGVjdGlvbiB3aXRoIHBsb3RseSAoJiBsZWFmbGV0KQogICAgICAgICAgdmFyIGN0T3B0cyA9IGNyb3NzdGFsay52YXIoInBsb3RseUNyb3NzdGFsa09wdHMiKS5nZXQoKSB8fCB7fTsKICAgICAgICAgIGlmIChjdE9wdHMucGVyc2lzdGVudCA9PT0gdHJ1ZSkgewogICAgICAgICAgICB2YXIgbWF0Y2hlcyA9ICQuZXh0ZW5kKG1hdGNoZXMsICR0YWJsZVswXS5jdHNlbGVjdCk7CiAgICAgICAgICB9CgogICAgICAgICAgJHRhYmxlWzBdLmN0c2VsZWN0ID0gbWF0Y2hlczsKICAgICAgICAgIHRhYmxlLmRyYXcoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCR0YWJsZVswXS5jdHNlbGVjdCkgewogICAgICAgICAgICAkdGFibGVbMF0uY3RzZWxlY3QgPSBudWxsOwogICAgICAgICAgICB0YWJsZS5kcmF3KCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGluc3RhbmNlLmN0c2VsZWN0U3Vic2NyaXB0aW9uID0gaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUub24oImNoYW5nZSIsIGFwcGx5Q3Jvc3N0YWxrU2VsZWN0aW9uKTsKICAgICAgLy8gVE9ETzogVGhpcyBuZXh0IGxpbmUgZG9lc24ndCBzZWVtIHRvIHdvcmsgd2hlbiByZW5kZXJEYXRhVGFibGUgaXMgdXNlZAogICAgICBhcHBseUNyb3NzdGFsa1NlbGVjdGlvbih7dmFsdWU6IGluc3RhbmNlLmN0c2VsZWN0SGFuZGxlLnZhbHVlfSk7CiAgICB9CgogICAgdmFyIGluQXJyYXkgPSBmdW5jdGlvbih2YWwsIGFycmF5KSB7CiAgICAgIHJldHVybiAkLmluQXJyYXkodmFsLCAkLm1ha2VBcnJheShhcnJheSkpID4gLTE7CiAgICB9OwoKICAgIC8vIGVuY29kZSArIHRvICUyQiB3aGVuIHNlYXJjaGluZyBpbiB0aGUgdGFibGUgb24gc2VydmVyIHNpZGUsIGJlY2F1c2UKICAgIC8vIHNoaW55OjpwYXJzZVF1ZXJ5U3RyaW5nKCkgdHJlYXRzICsgYXMgc3BhY2VzLCBhbmQgRGF0YVRhYmxlcyBkb2VzIG5vdAogICAgLy8gZW5jb2RlICsgdG8gJTJCIChvciAlIHRvICUyNSkgd2hlbiBzZW5kaW5nIHRoZSByZXF1ZXN0CiAgICB2YXIgZW5jb2RlX3BsdXMgPSBmdW5jdGlvbih4KSB7CiAgICAgIHJldHVybiBzZXJ2ZXIgPyB4LnJlcGxhY2UoLyUvZywgJyUyNScpLnJlcGxhY2UoL1wrL2csICclMkInKSA6IHg7CiAgICB9OwoKICAgIC8vIHNlYXJjaCB0aGUgaS10aCBjb2x1bW4KICAgIHZhciBzZWFyY2hDb2x1bW4gPSBmdW5jdGlvbihpLCB2YWx1ZSkgewogICAgICB2YXIgcmVnZXggPSBmYWxzZSwgY2kgPSB0cnVlOwogICAgICBpZiAob3B0aW9ucy5zZWFyY2gpIHsKICAgICAgICByZWdleCA9IG9wdGlvbnMuc2VhcmNoLnJlZ2V4LAogICAgICAgIGNpID0gb3B0aW9ucy5zZWFyY2guY2FzZUluc2Vuc2l0aXZlICE9PSBmYWxzZTsKICAgICAgfQogICAgICByZXR1cm4gdGFibGUuY29sdW1uKGkpLnNlYXJjaChlbmNvZGVfcGx1cyh2YWx1ZSksIHJlZ2V4LCAhcmVnZXgsIGNpKTsKICAgIH07CgogICAgaWYgKGRhdGEuZmlsdGVyICE9PSAnbm9uZScpIHsKCiAgICAgIGZpbHRlclJvdy5lYWNoKGZ1bmN0aW9uKGksIHRkKSB7CgogICAgICAgIHZhciAkdGQgPSAkKHRkKSwgdHlwZSA9ICR0ZC5kYXRhKCd0eXBlJyksIGZpbHRlcjsKICAgICAgICB2YXIgJGlucHV0ID0gJHRkLmNoaWxkcmVuKCdkaXYnKS5maXJzdCgpLmNoaWxkcmVuKCdpbnB1dCcpOwogICAgICAgICRpbnB1dC5wcm9wKCdkaXNhYmxlZCcsICF0YWJsZS5zZXR0aW5ncygpWzBdLmFvQ29sdW1uc1tpXS5iU2VhcmNoYWJsZSB8fCB0eXBlID09PSAnZGlzYWJsZWQnKTsKICAgICAgICAkaW5wdXQub24oJ2lucHV0IGJsdXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICRpbnB1dC5uZXh0KCdzcGFuJykudG9nZ2xlKEJvb2xlYW4oJGlucHV0LnZhbCgpKSk7CiAgICAgICAgfSk7CiAgICAgICAgLy8gQm9vdHN0cmFwIHNldHMgcG9pbnRlci1ldmVudHMgdG8gbm9uZSBhbmQgd2Ugd29uJ3QgYmUgYWJsZSB0byBjbGljawogICAgICAgIC8vIHRoZSBjbGVhciBidXR0b24KICAgICAgICAkaW5wdXQubmV4dCgnc3BhbicpLmNzcygncG9pbnRlci1ldmVudHMnLCAnYXV0bycpLmhpZGUoKS5jbGljayhmdW5jdGlvbigpIHsKICAgICAgICAgICQodGhpcykuaGlkZSgpLnByZXYoJ2lucHV0JykudmFsKCcnKS50cmlnZ2VyKCdpbnB1dCcpLmZvY3VzKCk7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIHNlYXJjaENvbDsgIC8vIHNlYXJjaCBzdHJpbmcgZm9yIHRoaXMgY29sdW1uCiAgICAgICAgaWYgKHNlYXJjaENvbHMgJiYgc2VhcmNoQ29sc1tpXSkgewogICAgICAgICAgc2VhcmNoQ29sID0gc2VhcmNoQ29sc1tpXTsKICAgICAgICAgICRpbnB1dC52YWwoc2VhcmNoQ29sKS50cmlnZ2VyKCdpbnB1dCcpOwogICAgICAgIH0KICAgICAgICB2YXIgJHggPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmxhc3QoKTsKCiAgICAgICAgLy8gcmVtb3ZlIHRoZSBvdmVyZmxvdzogaGlkZGVuIGF0dHJpYnV0ZSBvZiB0aGUgc2Nyb2xsSGVhZAogICAgICAgIC8vIChvdGhlcndpc2UgdGhlIHNjcm9sbGluZyB0YWJsZSBib2R5IG9ic2N1cmVzIHRoZSBmaWx0ZXJzKQogICAgICAgIHZhciBzY3JvbGxIZWFkID0gJChlbCkuZmluZCgnLmRhdGFUYWJsZXNfc2Nyb2xsSGVhZCwuZGF0YVRhYmxlc19zY3JvbGxGb290Jyk7CiAgICAgICAgdmFyIGNzc092ZXJmbG93ID0gc2Nyb2xsSGVhZC5jc3MoJ292ZXJmbG93Jyk7CiAgICAgICAgaWYgKGNzc092ZXJmbG93ID09PSAnaGlkZGVuJykgewogICAgICAgICAgJHgub24oJ3Nob3cgaGlkZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgc2Nyb2xsSGVhZC5jc3MoJ292ZXJmbG93JywgZS50eXBlID09PSAnc2hvdycgPyAnJyA6IGNzc092ZXJmbG93KTsKICAgICAgICAgIH0pOwogICAgICAgICAgJHguY3NzKCd6LWluZGV4JywgMjUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGluQXJyYXkodHlwZSwgWydmYWN0b3InLCAnbG9naWNhbCddKSkgewogICAgICAgICAgJGlucHV0Lm9uKHsKICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICRpbnB1dC5wYXJlbnQoKS5oaWRlKCk7ICR4LnNob3coKS50cmlnZ2VyKCdzaG93Jyk7IGZpbHRlclswXS5zZWxlY3RpemUuZm9jdXMoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlmICgkaW5wdXQudmFsKCkgPT09ICcnKSBmaWx0ZXJbMF0uc2VsZWN0aXplLnNldFZhbHVlKFtdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgJGlucHV0MiA9ICR4LmNoaWxkcmVuKCdzZWxlY3QnKTsKICAgICAgICAgIGZpbHRlciA9ICRpbnB1dDIuc2VsZWN0aXplKHsKICAgICAgICAgICAgb3B0aW9uczogJGlucHV0Mi5kYXRhKCdvcHRpb25zJykubWFwKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgICAgICByZXR1cm4gKHt0ZXh0OiB2LCB2YWx1ZTogdn0pOwogICAgICAgICAgICB9KSwKICAgICAgICAgICAgcGx1Z2luczogWydyZW1vdmVfYnV0dG9uJ10sCiAgICAgICAgICAgIGhpZGVTZWxlY3RlZDogdHJ1ZSwKICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB2YWx1ZSA9IFtdOyAvLyBjb21wYXRpYmlsaXR5IHdpdGggalF1ZXJ5IDMuMAogICAgICAgICAgICAgICRpbnB1dC52YWwodmFsdWUubGVuZ3RoID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogJycpOwogICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgpICRpbnB1dC50cmlnZ2VyKCdpbnB1dCcpOwogICAgICAgICAgICAgICRpbnB1dC5hdHRyKCd0aXRsZScsICRpbnB1dC52YWwoKSk7CiAgICAgICAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgICAgICAgdGFibGUuY29sdW1uKGkpLnNlYXJjaCh2YWx1ZS5sZW5ndGggPyBlbmNvZGVfcGx1cyhKU09OLnN0cmluZ2lmeSh2YWx1ZSkpIDogJycpLmRyYXcoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8gdHVybiBvZmYgZmlsdGVyIGlmIG5vdGhpbmcgc2VsZWN0ZWQKICAgICAgICAgICAgICAkdGQuZGF0YSgnZmlsdGVyJywgdmFsdWUubGVuZ3RoID4gMCk7CiAgICAgICAgICAgICAgdGFibGUuZHJhdygpOyAgLy8gcmVkcmF3IHRhYmxlLCBhbmQgZmlsdGVycyB3aWxsIGJlIGFwcGxpZWQKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBpZiAoc2VhcmNoQ29sKSBmaWx0ZXJbMF0uc2VsZWN0aXplLnNldFZhbHVlKEpTT04ucGFyc2Uoc2VhcmNoQ29sKSk7CiAgICAgICAgICBmaWx0ZXJbMF0uc2VsZWN0aXplLm9uKCdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICR4LmhpZGUoKS50cmlnZ2VyKCdoaWRlJyk7ICRpbnB1dC5wYXJlbnQoKS5zaG93KCk7ICRpbnB1dC50cmlnZ2VyKCdibHVyJyk7CiAgICAgICAgICB9KTsKICAgICAgICAgIGZpbHRlci5uZXh0KCdkaXYnKS5jc3MoJ21hcmdpbi1ib3R0b20nLCAnYXV0bycpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2NoYXJhY3RlcicpIHsKICAgICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgc2VhcmNoQ29sdW1uKGksICRpbnB1dC52YWwoKSkuZHJhdygpOwogICAgICAgICAgfTsKICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgZnVuID0gJC5mbi5kYXRhVGFibGUudXRpbC50aHJvdHRsZShmdW4sIG9wdGlvbnMuc2VhcmNoRGVsYXkpOwogICAgICAgICAgfQogICAgICAgICAgJGlucHV0Lm9uKCdpbnB1dCcsIGZ1bik7CiAgICAgICAgfSBlbHNlIGlmIChpbkFycmF5KHR5cGUsIFsnbnVtYmVyJywgJ2ludGVnZXInLCAnZGF0ZScsICd0aW1lJ10pKSB7CiAgICAgICAgICB2YXIgJHgwID0gJHg7CiAgICAgICAgICAkeCA9ICR4MC5jaGlsZHJlbignZGl2JykuZmlyc3QoKTsKICAgICAgICAgICR4MC5jc3MoewogICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZmZmJywKICAgICAgICAgICAgJ2JvcmRlcic6ICcxcHggI2RkZCBzb2xpZCcsCiAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsCiAgICAgICAgICAgICdwYWRkaW5nJzogJzIwcHggMjBweCAxMHB4IDIwcHgnCiAgICAgICAgICB9KTsKICAgICAgICAgIHZhciAkc3BhbnMgPSAkeDAuY2hpbGRyZW4oJ3NwYW4nKS5jc3MoewogICAgICAgICAgICAnbWFyZ2luLXRvcCc6ICcxMHB4JywKICAgICAgICAgICAgJ3doaXRlLXNwYWNlJzogJ25vd3JhcCcKICAgICAgICAgIH0pOwogICAgICAgICAgdmFyICRzcGFuMSA9ICRzcGFucy5maXJzdCgpLCAkc3BhbjIgPSAkc3BhbnMubGFzdCgpOwogICAgICAgICAgdmFyIHIxID0gKyR4LmRhdGEoJ21pbicpLCByMiA9ICskeC5kYXRhKCdtYXgnKTsKICAgICAgICAgIC8vIHdoZW4gdGhlIG51bWJlcnMgYXJlIHRvbyBzbWFsbCBvciBoYXZlIG1hbnkgZGVjaW1hbCBwbGFjZXMsIHRoZQogICAgICAgICAgLy8gc2xpZGVyIG1heSBoYXZlIG51bWVyaWMgcHJlY2lzaW9uIHByb2JsZW1zICgjMTUwKQogICAgICAgICAgdmFyIHNjYWxlID0gTWF0aC5wb3coMTAsIE1hdGgubWF4KDAsICskeC5kYXRhKCdzY2FsZScpIHx8IDApKTsKICAgICAgICAgIHIxID0gTWF0aC5yb3VuZChyMSAqIHNjYWxlKTsgcjIgPSBNYXRoLnJvdW5kKHIyICogc2NhbGUpOwogICAgICAgICAgdmFyIHNjYWxlQmFjayA9IGZ1bmN0aW9uKHgsIHNjYWxlKSB7CiAgICAgICAgICAgIGlmIChzY2FsZSA9PT0gMSkgcmV0dXJuIHg7CiAgICAgICAgICAgIHZhciBkID0gTWF0aC5yb3VuZChNYXRoLmxvZyhzY2FsZSkgLyBNYXRoLmxvZygxMCkpOwogICAgICAgICAgICAvLyB0byBhdm9pZCBwcm9ibGVtcyBsaWtlIDMuNDIzLzEwMCAtPiAwLjAzNDIzMDAwMDAwMDAwMDAwMwogICAgICAgICAgICByZXR1cm4gKHggLyBzY2FsZSkudG9GaXhlZChkKTsKICAgICAgICAgIH07CiAgICAgICAgICAkaW5wdXQub24oewogICAgICAgICAgICBmb2N1czogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgJHgwLnNob3coKS50cmlnZ2VyKCdzaG93Jyk7CiAgICAgICAgICAgICAgLy8gZmlyc3QsIG1ha2Ugc3VyZSB0aGUgc2xpZGVyIGRpdiBsZWF2ZXMgYXQgbGVhc3QgMjBweCBiZXR3ZWVuCiAgICAgICAgICAgICAgLy8gdGhlIHR3byAoc2xpZGVyIHZhbHVlKSBzcGFuJ3MKICAgICAgICAgICAgICAkeDAud2lkdGgoTWF0aC5tYXgoMTYwLCAkc3BhbjEub3V0ZXJXaWR0aCgpICsgJHNwYW4yLm91dGVyV2lkdGgoKSArIDIwKSk7CiAgICAgICAgICAgICAgLy8gdGhlbiwgaWYgdGhlIGlucHV0IGlzIHJlYWxseSB3aWRlLCBtYWtlIHRoZSBzbGlkZXIgdGhlIHNhbWUKICAgICAgICAgICAgICAvLyB3aWR0aCBhcyB0aGUgaW5wdXQKICAgICAgICAgICAgICBpZiAoJHgwLm91dGVyV2lkdGgoKSA8ICRpbnB1dC5vdXRlcldpZHRoKCkpIHsKICAgICAgICAgICAgICAgICR4MC5vdXRlcldpZHRoKCRpbnB1dC5vdXRlcldpZHRoKCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIHNsaWRlciBkaXYgZG9lcyBub3QgcmVhY2ggYmV5b25kIHRoZSByaWdodCBtYXJnaW4KICAgICAgICAgICAgICBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPCAkeDAub2Zmc2V0KCkubGVmdCArICR4MC53aWR0aCgpKSB7CiAgICAgICAgICAgICAgICAkeDAub2Zmc2V0KHsKICAgICAgICAgICAgICAgICAgJ2xlZnQnOiAkaW5wdXQub2Zmc2V0KCkubGVmdCArICRpbnB1dC5vdXRlcldpZHRoKCkgLSAkeDAub3V0ZXJXaWR0aCgpCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGJsdXI6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICR4MC5oaWRlKCkudHJpZ2dlcignaGlkZScpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnB1dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKCRpbnB1dC52YWwoKSA9PT0gJycpIGZpbHRlci52YWwoW3IxLCByMl0pOwogICAgICAgICAgICB9LAogICAgICAgICAgICBjaGFuZ2U6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciB2ID0gJGlucHV0LnZhbCgpLnJlcGxhY2UoL1xzL2csICcnKTsKICAgICAgICAgICAgICBpZiAodiA9PT0gJycpIHJldHVybjsKICAgICAgICAgICAgICB2ID0gdi5zcGxpdCgnLi4uJyk7CiAgICAgICAgICAgICAgaWYgKHYubGVuZ3RoICE9PSAyKSB7CiAgICAgICAgICAgICAgICAkaW5wdXQucGFyZW50KCkuYWRkQ2xhc3MoJ2hhcy1lcnJvcicpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodlswXSA9PT0gJycpIHZbMF0gPSByMTsKICAgICAgICAgICAgICBpZiAodlsxXSA9PT0gJycpIHZbMV0gPSByMjsKICAgICAgICAgICAgICAkaW5wdXQucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2hhcy1lcnJvcicpOwogICAgICAgICAgICAgIC8vIHRyZWF0IGRhdGUgYXMgVVRDIHRpbWUgYXQgbWlkbmlnaHQKICAgICAgICAgICAgICB2YXIgc3RyVGltZSA9IGZ1bmN0aW9uKHgpIHsKICAgICAgICAgICAgICAgIHZhciBzID0gdHlwZSA9PT0gJ2RhdGUnID8gJ1QwMDowMDowMFonIDogJyc7CiAgICAgICAgICAgICAgICB2YXIgdCA9IG5ldyBEYXRlKHggKyBzKS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICAvLyBhZGQgMTAgbWludXRlcyB0byBkYXRlIHNpbmNlIGl0IGRvZXMgbm90IGh1cnQgdGhlIGRhdGUsIGFuZAogICAgICAgICAgICAgICAgLy8gaXQgaGVscHMgYXZvaWQgdGhlIHRyaWNreSBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIHByb2JsZW1zLAogICAgICAgICAgICAgICAgLy8gZS5nLiBzb21ldGltZXMgdGhlIGRhdGUgbWF5IGJlIGEgZmV3IG1pbGxpc2Vjb25kcyBlYXJsaWVyCiAgICAgICAgICAgICAgICAvLyB0aGFuIHRoZSBtaWRuaWdodCBkdWUgdG8gcHJlY2lzaW9uIHByb2JsZW1zIGluIG5vVWlTbGlkZXIKICAgICAgICAgICAgICAgIHJldHVybiB0eXBlID09PSAnZGF0ZScgPyB0ICsgMzYwMDAwMCA6IHQ7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBpZiAoaW5BcnJheSh0eXBlLCBbJ2RhdGUnLCAndGltZSddKSkgewogICAgICAgICAgICAgICAgdlswXSA9IHN0clRpbWUodlswXSk7CiAgICAgICAgICAgICAgICB2WzFdID0gc3RyVGltZSh2WzFdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHZbMF0gIT0gcjEpIHZbMF0gKj0gc2NhbGU7CiAgICAgICAgICAgICAgaWYgKHZbMV0gIT0gcjIpIHZbMV0gKj0gc2NhbGU7CiAgICAgICAgICAgICAgZmlsdGVyLnZhbCh2KTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgZm9ybWF0RGF0ZSA9IGZ1bmN0aW9uKGQsIGlzb0ZtdCkgewogICAgICAgICAgICBkID0gc2NhbGVCYWNrKGQsIHNjYWxlKTsKICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSByZXR1cm4gZDsKICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdpbnRlZ2VyJykgcmV0dXJuIHBhcnNlSW50KGQpOwogICAgICAgICAgICB2YXIgeCA9IG5ldyBEYXRlKCtkKTsKICAgICAgICAgICAgdmFyIGZtdCA9ICgnZmlsdGVyRGF0ZUZtdCcgaW4gZGF0YSkgPyBkYXRhLmZpbHRlckRhdGVGbXRbaV0gOiB1bmRlZmluZWQ7CiAgICAgICAgICAgIGlmIChmbXQgIT09IHVuZGVmaW5lZCAmJiBpc29GbXQgPT09IGZhbHNlKSByZXR1cm4geFtmbXQubWV0aG9kXS5hcHBseSh4LCBmbXQucGFyYW1zKTsKICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdkYXRlJykgewogICAgICAgICAgICAgIHZhciBwYWQwID0gZnVuY3Rpb24oeCkgewogICAgICAgICAgICAgICAgcmV0dXJuICgnMCcgKyB4KS5zdWJzdHIoLTIsIDIpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgcmV0dXJuIHguZ2V0VVRDRnVsbFllYXIoKSArICctJyArIHBhZDAoMSArIHguZ2V0VVRDTW9udGgoKSkKICAgICAgICAgICAgICAgICAgICAgICsgJy0nICsgcGFkMCh4LmdldFVUQ0RhdGUoKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIHgudG9JU09TdHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfTsKICAgICAgICAgIHZhciBvcHRzID0gdHlwZSA9PT0gJ2RhdGUnID8geyBzdGVwOiA2MCAqIDYwICogMTAwMCB9IDoKICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PT0gJ2ludGVnZXInID8geyBzdGVwOiAxIH0gOiB7fTsKICAgICAgICAgIGZpbHRlciA9ICR4Lm5vVWlTbGlkZXIoJC5leHRlbmQoewogICAgICAgICAgICBzdGFydDogW3IxLCByMl0sCiAgICAgICAgICAgIHJhbmdlOiB7bWluOiByMSwgbWF4OiByMn0sCiAgICAgICAgICAgIGNvbm5lY3Q6IHRydWUKICAgICAgICAgIH0sIG9wdHMpKTsKICAgICAgICAgIGlmIChzY2FsZSA+IDEpIChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHQxID0gcjEsIHQyID0gcjI7CiAgICAgICAgICAgIHZhciB2YWwgPSBmaWx0ZXIudmFsKCk7CiAgICAgICAgICAgIHdoaWxlICh2YWxbMF0gPiByMSB8fCB2YWxbMV0gPCByMikgewogICAgICAgICAgICAgIGlmICh2YWxbMF0gPiByMSkgewogICAgICAgICAgICAgICAgdDEgLT0gdmFsWzBdIC0gcjE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh2YWxbMV0gPCByMikgewogICAgICAgICAgICAgICAgdDIgKz0gcjIgLSB2YWxbMV07CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZpbHRlciA9ICR4Lm5vVWlTbGlkZXIoJC5leHRlbmQoewogICAgICAgICAgICAgICAgc3RhcnQ6IFt0MSwgdDJdLAogICAgICAgICAgICAgICAgcmFuZ2U6IHttaW46IHQxLCBtYXg6IHQyfSwKICAgICAgICAgICAgICAgIGNvbm5lY3Q6IHRydWUKICAgICAgICAgICAgICB9LCBvcHRzKSwgdHJ1ZSk7CiAgICAgICAgICAgICAgdmFsID0gZmlsdGVyLnZhbCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHIxICA9IHQxOyByMiA9IHQyOwogICAgICAgICAgfSkoKTsKICAgICAgICAgIHZhciB1cGRhdGVTbGlkZXJUZXh0ID0gZnVuY3Rpb24odjEsIHYyKSB7CiAgICAgICAgICAgICRzcGFuMS50ZXh0KGZvcm1hdERhdGUodjEsIGZhbHNlKSk7ICRzcGFuMi50ZXh0KGZvcm1hdERhdGUodjIsIGZhbHNlKSk7CiAgICAgICAgICB9OwogICAgICAgICAgdXBkYXRlU2xpZGVyVGV4dChyMSwgcjIpOwogICAgICAgICAgdmFyIHVwZGF0ZVNsaWRlciA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIHZhbCA9IGZpbHRlci52YWwoKTsKICAgICAgICAgICAgLy8gdHVybiBvZmYgZmlsdGVyIGlmIGluIGZ1bGwgcmFuZ2UKICAgICAgICAgICAgJHRkLmRhdGEoJ2ZpbHRlcicsIHZhbFswXSA+IHIxIHx8IHZhbFsxXSA8IHIyKTsKICAgICAgICAgICAgdmFyIHYxID0gZm9ybWF0RGF0ZSh2YWxbMF0pLCB2MiA9IGZvcm1hdERhdGUodmFsWzFdKSwgaXZhbDsKICAgICAgICAgICAgaWYgKCR0ZC5kYXRhKCdmaWx0ZXInKSkgewogICAgICAgICAgICAgIGl2YWwgPSB2MSArICcgLi4uICcgKyB2MjsKICAgICAgICAgICAgICAkaW5wdXQuYXR0cigndGl0bGUnLCBpdmFsKS52YWwoaXZhbCkudHJpZ2dlcignaW5wdXQnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAkaW5wdXQuYXR0cigndGl0bGUnLCAnJykudmFsKCcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB1cGRhdGVTbGlkZXJUZXh0KHZhbFswXSwgdmFsWzFdKTsKICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ3NsaWRlJykgcmV0dXJuOyAgLy8gbm8gc2VhcmNoaW5nIHdoZW4gc2xpZGluZyBvbmx5CiAgICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgICB0YWJsZS5jb2x1bW4oaSkuc2VhcmNoKCR0ZC5kYXRhKCdmaWx0ZXInKSA/IGl2YWwgOiAnJykuZHJhdygpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB0YWJsZS5kcmF3KCk7CiAgICAgICAgICB9OwogICAgICAgICAgZmlsdGVyLm9uKHsKICAgICAgICAgICAgc2V0OiB1cGRhdGVTbGlkZXIsCiAgICAgICAgICAgIHNsaWRlOiB1cGRhdGVTbGlkZXIKICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgLy8gc2VydmVyLXNpZGUgcHJvY2Vzc2luZyB3aWxsIGJlIGhhbmRsZWQgYnkgUiAob3Igd2hhdGV2ZXIgc2VydmVyCiAgICAgICAgLy8gbGFuZ3VhZ2UgeW91IHVzZSk7IHRoZSBmb2xsb3dpbmcgY29kZSBpcyBvbmx5IG5lZWRlZCBmb3IgY2xpZW50LXNpZGUKICAgICAgICAvLyBwcm9jZXNzaW5nCiAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgLy8gaWYgYSBzZWFyY2ggc3RyaW5nIGhhcyBiZWVuIHByZS1zZXQsIHNlYXJjaCBub3cKICAgICAgICAgIGlmIChzZWFyY2hDb2wpIHNlYXJjaENvbHVtbihpLCBzZWFyY2hDb2wpLmRyYXcoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHZhciBjdXN0b21GaWx0ZXIgPSBmdW5jdGlvbihzZXR0aW5ncywgZGF0YSwgZGF0YUluZGV4KSB7CiAgICAgICAgICAvLyB0aGVyZSBpcyBubyB3YXkgdG8gYXR0YWNoIGEgc2VhcmNoIGZ1bmN0aW9uIHRvIGEgc3BlY2lmaWMgdGFibGUsCiAgICAgICAgICAvLyBhbmQgd2UgbmVlZCB0byBtYWtlIHN1cmUgYSBnbG9iYWwgc2VhcmNoIGZ1bmN0aW9uIGlzIG5vdCBhcHBsaWVkIHRvCiAgICAgICAgICAvLyBhbGwgdGFibGVzIChpLmUuIGEgcmFuZ2UgZmlsdGVyIGluIGEgcHJldmlvdXMgdGFibGUgc2hvdWxkIG5vdCBiZQogICAgICAgICAgLy8gYXBwbGllZCB0byB0aGUgY3VycmVudCB0YWJsZSk7IHdlIHVzZSB0aGUgc2V0dGluZ3Mgb2JqZWN0IHRvCiAgICAgICAgICAvLyBkZXRlcm1pbmUgaWYgd2Ugd2FudCB0byBwZXJmb3JtIHNlYXJjaGluZyBvbiB0aGUgY3VycmVudCB0YWJsZSwKICAgICAgICAgIC8vIHNpbmNlIHNldHRpbmdzLnNUYWJsZUlkIHdpbGwgYmUgZGlmZmVyZW50IHRvIGRpZmZlcmVudCB0YWJsZXMKICAgICAgICAgIGlmICh0YWJsZS5zZXR0aW5ncygpWzBdICE9PSBzZXR0aW5ncykgcmV0dXJuIHRydWU7CiAgICAgICAgICAvLyBubyBmaWx0ZXIgb24gdGhpcyBjb2x1bW4gb3Igbm8gbmVlZCB0byBmaWx0ZXIgdGhpcyBjb2x1bW4KICAgICAgICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSAndW5kZWZpbmVkJyB8fCAhJHRkLmRhdGEoJ2ZpbHRlcicpKSByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICB2YXIgciA9IGZpbHRlci52YWwoKSwgdiwgcjAsIHIxOwogICAgICAgICAgdmFyIGlfZGF0YSA9IGZ1bmN0aW9uKGkpIHsKICAgICAgICAgICAgaWYgKCFjb2xSZW9yZGVyRW5hYmxlZCgpKSByZXR1cm4gaTsKICAgICAgICAgICAgdmFyIG9yZGVyID0gdGFibGUuY29sUmVvcmRlci5vcmRlcigpLCBrOwogICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgb3JkZXIubGVuZ3RoOyArK2spIGlmIChvcmRlcltrXSA9PT0gaSkgcmV0dXJuIGs7CiAgICAgICAgICAgIHJldHVybiBpOyAvLyBpbiB0aGVvcnkgaXQgd2lsbCBuZXZlciBiZSBoZXJlLi4uCiAgICAgICAgICB9CiAgICAgICAgICB2ID0gZGF0YVtpX2RhdGEoaSldOwogICAgICAgICAgaWYgKHR5cGUgPT09ICdudW1iZXInIHx8IHR5cGUgPT09ICdpbnRlZ2VyJykgewogICAgICAgICAgICB2ID0gcGFyc2VGbG9hdCh2KTsKICAgICAgICAgICAgLy8gaG93IHRvIGhhbmRsZSBOYU4/IGN1cnJlbnRseSBleGNsdWRlIHRoZXNlIHJvd3MKICAgICAgICAgICAgaWYgKGlzTmFOKHYpKSByZXR1cm4oZmFsc2UpOwogICAgICAgICAgICByMCA9IHBhcnNlRmxvYXQoc2NhbGVCYWNrKHJbMF0sIHNjYWxlKSkKICAgICAgICAgICAgcjEgPSBwYXJzZUZsb2F0KHNjYWxlQmFjayhyWzFdLCBzY2FsZSkpOwogICAgICAgICAgICBpZiAodiA+PSByMCAmJiB2IDw9IHIxKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2RhdGUnIHx8IHR5cGUgPT09ICd0aW1lJykgewogICAgICAgICAgICB2ID0gbmV3IERhdGUodik7CiAgICAgICAgICAgIHIwID0gbmV3IERhdGUoclswXSAvIHNjYWxlKTsgcjEgPSBuZXcgRGF0ZShyWzFdIC8gc2NhbGUpOwogICAgICAgICAgICBpZiAodiA+PSByMCAmJiB2IDw9IHIxKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ZhY3RvcicpIHsKICAgICAgICAgICAgaWYgKHIubGVuZ3RoID09PSAwIHx8IGluQXJyYXkodiwgcikpIHJldHVybiB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbG9naWNhbCcpIHsKICAgICAgICAgICAgaWYgKHIubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgaWYgKGluQXJyYXkodiA9PT0gJycgPyAnbmEnIDogdiwgcikpIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH07CgogICAgICAgICQuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2gucHVzaChjdXN0b21GaWx0ZXIpOwoKICAgICAgICAvLyBzZWFyY2ggZm9yIHRoZSBwcmVzZXQgc2VhcmNoIHN0cmluZ3MgaWYgaXQgaXMgbm9uLWVtcHR5CiAgICAgICAgaWYgKHNlYXJjaENvbCkgewogICAgICAgICAgaWYgKGluQXJyYXkodHlwZSwgWydmYWN0b3InLCAnbG9naWNhbCddKSkgewogICAgICAgICAgICBmaWx0ZXJbMF0uc2VsZWN0aXplLnNldFZhbHVlKEpTT04ucGFyc2Uoc2VhcmNoQ29sKSk7CiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdjaGFyYWN0ZXInKSB7CiAgICAgICAgICAgICRpbnB1dC50cmlnZ2VyKCdpbnB1dCcpOwogICAgICAgICAgfSBlbHNlIGlmIChpbkFycmF5KHR5cGUsIFsnbnVtYmVyJywgJ2ludGVnZXInLCAnZGF0ZScsICd0aW1lJ10pKSB7CiAgICAgICAgICAgICRpbnB1dC50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICB9KTsKCiAgICB9CgogICAgLy8gaGlnaGxpZ2h0IHNlYXJjaCBrZXl3b3JkcwogICAgdmFyIGhpZ2hsaWdodCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgYm9keSA9ICQodGFibGUudGFibGUoKS5ib2R5KCkpOwogICAgICAvLyByZW1vdmluZyB0aGUgb2xkIGhpZ2hsaWdodGluZyBmaXJzdAogICAgICBib2R5LnVuaGlnaGxpZ2h0KCk7CgogICAgICAvLyBkb24ndCBoaWdobGlnaHQgdGhlICJub3QgZm91bmQiIHJvdywgc28gd2UgZ2V0IHRoZSByb3dzIHVzaW5nIHRoZSBhcGkKICAgICAgaWYgKHRhYmxlLnJvd3MoeyBmaWx0ZXI6ICdhcHBsaWVkJyB9KS5kYXRhKCkubGVuZ3RoID09PSAwKSByZXR1cm47CiAgICAgIC8vIGhpZ2hsaWdodCBnbG9hbCBzZWFyY2gga2V5d29yZHMKICAgICAgYm9keS5oaWdobGlnaHQoJC50cmltKHRhYmxlLnNlYXJjaCgpKS5zcGxpdCgvXHMrLykpOwogICAgICAvLyB0aGVuIGhpZ2hsaWdodCBrZXl3b3JkcyBmcm9tIGluZGl2aWR1YWwgY29sdW1uIGZpbHRlcnMKICAgICAgaWYgKGZpbHRlclJvdykgZmlsdGVyUm93LmVhY2goZnVuY3Rpb24oaSwgdGQpIHsKICAgICAgICB2YXIgJHRkID0gJCh0ZCksIHR5cGUgPSAkdGQuZGF0YSgndHlwZScpOwogICAgICAgIGlmICh0eXBlICE9PSAnY2hhcmFjdGVyJykgcmV0dXJuOwogICAgICAgIHZhciAkaW5wdXQgPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCkuY2hpbGRyZW4oJ2lucHV0Jyk7CiAgICAgICAgdmFyIGNvbHVtbiA9IHRhYmxlLmNvbHVtbihpKS5ub2RlcygpLnRvJCgpLAogICAgICAgICAgICB2YWwgPSAkLnRyaW0oJGlucHV0LnZhbCgpKTsKICAgICAgICBpZiAodHlwZSAhPT0gJ2NoYXJhY3RlcicgfHwgdmFsID09PSAnJykgcmV0dXJuOwogICAgICAgIGNvbHVtbi5oaWdobGlnaHQodmFsLnNwbGl0KC9ccysvKSk7CiAgICAgIH0pOwogICAgfTsKCiAgICBpZiAob3B0aW9ucy5zZWFyY2hIaWdobGlnaHQpIHsKICAgICAgdGFibGUKICAgICAgLm9uKCdkcmF3LmR0LmR0aCBjb2x1bW4tdmlzaWJpbGl0eS5kdC5kdGggY29sdW1uLXJlb3JkZXIuZHQuZHRoJywgaGlnaGxpZ2h0KQogICAgICAub24oJ2Rlc3Ryb3knLCBmdW5jdGlvbigpIHsKICAgICAgICAvLyByZW1vdmUgZXZlbnQgaGFuZGxlcgogICAgICAgIHRhYmxlLm9mZignZHJhdy5kdC5kdGggY29sdW1uLXZpc2liaWxpdHkuZHQuZHRoIGNvbHVtbi1yZW9yZGVyLmR0LmR0aCcpOwogICAgICB9KTsKCiAgICAgIC8vIGluaXRpYWwgaGlnaGxpZ2h0IGZvciBzdGF0ZSBzYXZlZCBjb25kaXRpb25zIGFuZCBpbml0aWFsIHN0YXRlcwogICAgICBoaWdobGlnaHQoKTsKICAgIH0KCiAgICAvLyBydW4gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIHRoZSB0YWJsZSBpbnN0YW5jZQogICAgaWYgKHR5cGVvZiBkYXRhLmNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSBkYXRhLmNhbGxiYWNrKHRhYmxlKTsKCiAgICAvLyBkb3VibGUgY2xpY2sgdG8gZWRpdCB0aGUgY2VsbAogICAgaWYgKGRhdGEuZWRpdGFibGUpIHRhYmxlLm9uKCdkYmxjbGljay5kdCcsICd0Ym9keSB0ZCcsIGZ1bmN0aW9uKCkgewogICAgICB2YXIgJGlucHV0ID0gJCgnPGlucHV0IHR5cGU9InRleHQiPicpOwogICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpLCB2YWx1ZSA9IHRhYmxlLmNlbGwodGhpcykuZGF0YSgpLCBodG1sID0gJHRoaXMuaHRtbCgpOwogICAgICB2YXIgY2hhbmdlZCA9IGZhbHNlOwogICAgICAkaW5wdXQudmFsKHZhbHVlKTsKICAgICAgJHRoaXMuZW1wdHkoKS5hcHBlbmQoJGlucHV0KTsKICAgICAgJGlucHV0LmNzcygnd2lkdGgnLCAnMTAwJScpLmZvY3VzKCkub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgIHZhciB2YWx1ZU5ldyA9ICRpbnB1dC52YWwoKTsKICAgICAgICBpZiAodmFsdWVOZXcgIT0gdmFsdWUpIHsKICAgICAgICAgIHRhYmxlLmNlbGwoJHRoaXMpLmRhdGEodmFsdWVOZXcpOwogICAgICAgICAgaWYgKEhUTUxXaWRnZXRzLnNoaW55TW9kZSkgY2hhbmdlSW5wdXQoJ2NlbGxfZWRpdCcsIGNlbGxJbmZvKCR0aGlzKSk7CiAgICAgICAgICAvLyBmb3Igc2VydmVyLXNpZGUgcHJvY2Vzc2luZywgdXNlcnMgaGF2ZSB0byBjYWxsIHJlcGxhY2VEYXRhKCkgdG8gdXBkYXRlIHRoZSB0YWJsZQogICAgICAgICAgaWYgKCFzZXJ2ZXIpIHRhYmxlLmRyYXcoZmFsc2UpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAkdGhpcy5odG1sKGh0bWwpOwogICAgICAgIH0KICAgICAgICAkaW5wdXQucmVtb3ZlKCk7CiAgICAgIH0pLm9uKCdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKCFjaGFuZ2VkKSAkaW5wdXQudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgIH0pOwogICAgfSk7CgogICAgLy8gaW50ZXJhY3Rpb24gd2l0aCBzaGlueQogICAgaWYgKCFIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgIWNyb3NzdGFsa09wdGlvbnMuZ3JvdXApIHJldHVybjsKCiAgICB2YXIgbWV0aG9kcyA9IHt9OwogICAgdmFyIHNoaW55RGF0YSA9IHt9OwoKICAgIG1ldGhvZHMudXBkYXRlQ2FwdGlvbiA9IGZ1bmN0aW9uKGNhcHRpb24pIHsKICAgICAgaWYgKCFjYXB0aW9uKSByZXR1cm47CiAgICAgICR0YWJsZS5jaGlsZHJlbignY2FwdGlvbicpLnJlcGxhY2VXaXRoKGNhcHRpb24pOwogICAgfQoKICAgIC8vIHJlZ2lzdGVyIGNsZWFyIGZ1bmN0aW9ucyB0byByZW1vdmUgaW5wdXQgdmFsdWVzIHdoZW4gdGhlIHRhYmxlIGlzIHJlbW92ZWQKICAgIGluc3RhbmNlLmNsZWFySW5wdXRzID0ge307CgogICAgdmFyIGNoYW5nZUlucHV0ID0gZnVuY3Rpb24oaWQsIHZhbHVlLCB0eXBlLCBub0Nyb3NzdGFsaykgewogICAgICB2YXIgZXZlbnQgPSBpZDsKICAgICAgaWQgPSBlbC5pZCArICdfJyArIGlkOwogICAgICBpZiAodHlwZSkgaWQgPSBpZCArICc6JyArIHR5cGU7CiAgICAgIC8vIGRvIG5vdCB1cGRhdGUgaWYgdGhlIG5ldyB2YWx1ZSBpcyB0aGUgc2FtZSBhcyBvbGQgdmFsdWUKICAgICAgaWYgKHNoaW55RGF0YS5oYXNPd25Qcm9wZXJ0eShpZCkgJiYgc2hpbnlEYXRhW2lkXSA9PT0gSlNPTi5zdHJpbmdpZnkodmFsdWUpKQogICAgICAgIHJldHVybjsKICAgICAgc2hpbnlEYXRhW2lkXSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTsKICAgICAgaWYgKEhUTUxXaWRnZXRzLnNoaW55TW9kZSkgewogICAgICAgIFNoaW55Lm9uSW5wdXRDaGFuZ2UoaWQsIHZhbHVlKTsKICAgICAgICBpZiAoIWluc3RhbmNlLmNsZWFySW5wdXRzW2lkXSkgaW5zdGFuY2UuY2xlYXJJbnB1dHNbaWRdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBTaGlueS5vbklucHV0Q2hhbmdlKGlkLCBudWxsKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIEhBQ0sKICAgICAgaWYgKGV2ZW50ID09PSAicm93c19zZWxlY3RlZCIgJiYgIW5vQ3Jvc3N0YWxrKSB7CiAgICAgICAgaWYgKGNyb3NzdGFsa09wdGlvbnMuZ3JvdXApIHsKICAgICAgICAgIHZhciBrZXlzID0gY3Jvc3N0YWxrT3B0aW9ucy5rZXk7CiAgICAgICAgICB2YXIgc2VsZWN0ZWRLZXlzID0gbnVsbDsKICAgICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICBzZWxlY3RlZEtleXMgPSBbXTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSBhcnJheSdzIGNvbnRlbnRzIHVzZSAxLWJhc2VkIHJvdyBudW1iZXJzLCBzbyB3ZSBtdXN0CiAgICAgICAgICAgICAgLy8gY29udmVydCB0byAwLWJhc2VkIGJlZm9yZSBpbmRleGluZyBpbnRvIHRoZSBrZXlzIGFycmF5LgogICAgICAgICAgICAgIHNlbGVjdGVkS2V5cy5wdXNoKGtleXNbdmFsdWVbaV0gLSAxXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGluc3RhbmNlLmN0c2VsZWN0SGFuZGxlLnNldChzZWxlY3RlZEtleXMpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKCiAgICB2YXIgYWRkT25lID0gZnVuY3Rpb24oeCkgewogICAgICByZXR1cm4geC5tYXAoZnVuY3Rpb24oaSkgeyByZXR1cm4gMSArIGk7IH0pOwogICAgfTsKCiAgICB2YXIgdW5pcXVlID0gZnVuY3Rpb24oeCkgewogICAgICB2YXIgdXggPSBbXTsKICAgICAgJC5lYWNoKHgsIGZ1bmN0aW9uKGksIGVsKXsKICAgICAgICBpZiAoJC5pbkFycmF5KGVsLCB1eCkgPT09IC0xKSB1eC5wdXNoKGVsKTsKICAgICAgfSk7CiAgICAgIHJldHVybiB1eDsKICAgIH0KCiAgICAvLyBjaGFuZ2UgdGhlIHJvdyBpbmRleCBvZiBhIGNlbGwKICAgIHZhciB0d2Vha0NlbGxJbmRleCA9IGZ1bmN0aW9uKGNlbGwpIHsKICAgICAgdmFyIGluZm8gPSBjZWxsLmluZGV4KCk7CiAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICBpbmZvLnJvdyA9IERUX3Jvd3NfY3VycmVudFtpbmZvLnJvd107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaW5mby5yb3cgKz0gMTsKICAgICAgfQogICAgICByZXR1cm4ge3JvdzogaW5mby5yb3csIGNvbDogaW5mby5jb2x1bW59OwogICAgfQoKICAgIHZhciBzZWxNb2RlID0gZGF0YS5zZWxlY3Rpb24ubW9kZSwgc2VsVGFyZ2V0ID0gZGF0YS5zZWxlY3Rpb24udGFyZ2V0OwogICAgaWYgKGluQXJyYXkoc2VsTW9kZSwgWydzaW5nbGUnLCAnbXVsdGlwbGUnXSkpIHsKICAgICAgdmFyIHNlbENsYXNzID0gZGF0YS5zdHlsZSA9PT0gJ2Jvb3RzdHJhcCcgPyAnYWN0aXZlJyA6ICdzZWxlY3RlZCc7CiAgICAgIHZhciBzZWxlY3RlZCA9IGRhdGEuc2VsZWN0aW9uLnNlbGVjdGVkLCBzZWxlY3RlZDEsIHNlbGVjdGVkMjsKICAgICAgLy8gc2VsZWN0ZWQxOiByb3cgaW5kaWNlczsgc2VsZWN0ZWQyOiBjb2x1bW4gaW5kaWNlcwogICAgICBpZiAoc2VsZWN0ZWQgPT09IG51bGwpIHsKICAgICAgICBzZWxlY3RlZDEgPSBzZWxlY3RlZDIgPSBbXTsKICAgICAgfSBlbHNlIGlmIChzZWxUYXJnZXQgPT09ICdyb3cnKSB7CiAgICAgICAgc2VsZWN0ZWQxID0gJC5tYWtlQXJyYXkoc2VsZWN0ZWQpOwogICAgICB9IGVsc2UgaWYgKHNlbFRhcmdldCA9PT0gJ2NvbHVtbicpIHsKICAgICAgICBzZWxlY3RlZDIgPSAkLm1ha2VBcnJheShzZWxlY3RlZCk7CiAgICAgIH0gZWxzZSBpZiAoc2VsVGFyZ2V0ID09PSAncm93K2NvbHVtbicpIHsKICAgICAgICBzZWxlY3RlZDEgPSAkLm1ha2VBcnJheShzZWxlY3RlZC5yb3dzKTsKICAgICAgICBzZWxlY3RlZDIgPSAkLm1ha2VBcnJheShzZWxlY3RlZC5jb2xzKTsKICAgICAgfQoKICAgICAgLy8gQWZ0ZXIgdXNlcnMgcmVvcmRlciB0aGUgcm93cyBvciBmaWx0ZXIgdGhlIHRhYmxlLCB3ZSBjYW5ub3QgdXNlIHRoZSB0YWJsZSBpbmRleAogICAgICAvLyBkaXJlY3RseS4gSW5zdGVhZCwgd2UgbmVlZCB0aGlzIGZ1bmN0aW9uIHRvIGZpbmQgb3V0IHRoZSByb3dzIGJldHdlZW4gdGhlIHR3byBjbGlja3MuCiAgICAgIC8vIElmIHVzZXIgZmlsdGVyIHRoZSB0YWJsZSBhZ2FpbiBiZXR3ZWVuIHRoZSBzdGFydCBjbGljayBhbmQgdGhlIGVuZCBjbGljaywgdGhlIGJlaGF2aW9yCiAgICAgIC8vIHdvdWxkIGJlIHVuZGVmaW5lZCwgYnV0IGl0IHNob3VsZCBub3QgYmUgYSBwcm9ibGVtLgogICAgICB2YXIgc2hpZnRTZWxSb3dzSW5kZXggPSBmdW5jdGlvbihzdGFydCwgZW5kKSB7CiAgICAgICAgdmFyIGluZGV4ZXMgPSBzZXJ2ZXIgPyBEVF9yb3dzX2FsbCA6IHRhYmxlLnJvd3MoeyBzZWFyY2g6ICdhcHBsaWVkJyB9KS5pbmRleGVzKCkudG9BcnJheSgpOwogICAgICAgIHN0YXJ0ID0gaW5kZXhlcy5pbmRleE9mKHN0YXJ0KTsgZW5kID0gaW5kZXhlcy5pbmRleE9mKGVuZCk7CiAgICAgICAgLy8gaWYgc3RhcnQgaXMgbGFyZ2VyIHRoYW4gZW5kLCB3ZSBuZWVkIHRvIHN3YXAKICAgICAgICBpZiAoc3RhcnQgPiBlbmQpIHsKICAgICAgICAgIHZhciB0bXAgPSBlbmQ7IGVuZCA9IHN0YXJ0OyBzdGFydCA9IHRtcDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGluZGV4ZXMuc2xpY2Uoc3RhcnQsIGVuZCArIDEpOwogICAgICB9CgogICAgICB2YXIgc2VydmVyUm93SW5kZXggPSBmdW5jdGlvbihjbGllbnRSb3dJbmRleCkgewogICAgICAgIHJldHVybiBzZXJ2ZXIgPyBEVF9yb3dzX2N1cnJlbnRbY2xpZW50Um93SW5kZXhdIDogY2xpZW50Um93SW5kZXggKyAxOwogICAgICB9CgogICAgICAvLyByb3csIGNvbHVtbiwgb3IgY2VsbCBzZWxlY3Rpb24KICAgICAgdmFyIGxhc3RDbGlja2VkUm93OwogICAgICBpZiAoaW5BcnJheShzZWxUYXJnZXQsIFsncm93JywgJ3Jvdytjb2x1bW4nXSkpIHsKICAgICAgICB2YXIgc2VsZWN0ZWRSb3dzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3MoJy4nICsgc2VsQ2xhc3MpOwogICAgICAgICAgdmFyIGlkeCA9IHJvd3MuaW5kZXhlcygpLnRvQXJyYXkoKTsKICAgICAgICAgIGlmICghc2VydmVyKSByZXR1cm4gYWRkT25lKGlkeCk7CiAgICAgICAgICBpZHggPSBpZHgubWFwKGZ1bmN0aW9uKGkpIHsKICAgICAgICAgICAgcmV0dXJuIERUX3Jvd3NfY3VycmVudFtpXTsKICAgICAgICAgIH0pOwogICAgICAgICAgc2VsZWN0ZWQxID0gc2VsTW9kZSA9PT0gJ211bHRpcGxlJyA/IHVuaXF1ZShzZWxlY3RlZDEuY29uY2F0KGlkeCkpIDogaWR4OwogICAgICAgICAgcmV0dXJuIHNlbGVjdGVkMTsKICAgICAgICB9CiAgICAgICAgdGFibGUub24oJ21vdXNlZG93bi5kdCcsICd0Ym9keSB0cicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksIHRoaXNSb3cgPSB0YWJsZS5yb3codGhpcyk7CiAgICAgICAgICBpZiAoc2VsTW9kZSA9PT0gJ211bHRpcGxlJykgewogICAgICAgICAgICBpZiAoZS5zaGlmdEtleSAmJiBsYXN0Q2xpY2tlZFJvdyAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgLy8gc2VsZWN0IG9yIGRlLXNlbGVjdCBkZXBlbmRzIG9uIHRoZSBsYXN0IGNsaWNrZWQgcm93J3Mgc3RhdHVzCiAgICAgICAgICAgICAgdmFyIGZsYWdTZWwgPSAhJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgIHZhciBjcnRDbGlja2VkUm93ID0gc2VydmVyUm93SW5kZXgodGhpc1Jvdy5pbmRleCgpKTsKICAgICAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgICAgICB2YXIgcm93c0luZGV4ID0gc2hpZnRTZWxSb3dzSW5kZXgobGFzdENsaWNrZWRSb3csIGNydENsaWNrZWRSb3cpOwogICAgICAgICAgICAgICAgLy8gdXBkYXRlIGN1cnJlbnQgcGFnZSdzIHNlbENsYXNzCiAgICAgICAgICAgICAgICByb3dzSW5kZXgubWFwKGZ1bmN0aW9uKGkpIHsKICAgICAgICAgICAgICAgICAgdmFyIHJvd0luZGV4ID0gRFRfcm93c19jdXJyZW50LmluZGV4T2YoaSk7CiAgICAgICAgICAgICAgICAgIGlmIChyb3dJbmRleCA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHJvdyA9IHRhYmxlLnJvdyhyb3dJbmRleCkubm9kZXMoKS50byQoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgZmxhZ1Jvd1NlbCA9ICFyb3cuaGFzQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICAgICAgIGlmIChmbGFnU2VsID09PSBmbGFnUm93U2VsKSByb3cudG9nZ2xlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBzZWxlY3RlZDEKICAgICAgICAgICAgICAgIGlmIChmbGFnU2VsKSB7CiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkMSA9IHVuaXF1ZShzZWxlY3RlZDEuY29uY2F0KHJvd3NJbmRleCkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQxID0gc2VsZWN0ZWQxLmZpbHRlcihmdW5jdGlvbihpbmRleCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAhaW5BcnJheShpbmRleCwgcm93c0luZGV4KTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGpzIHN0YXJ0cyBmcm9tIDAKICAgICAgICAgICAgICAgIHNoaWZ0U2VsUm93c0luZGV4KGxhc3RDbGlja2VkUm93IC0gMSwgY3J0Q2xpY2tlZFJvdyAtIDEpLm1hcChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgICB2YXIgcm93ID0gdGFibGUucm93KHZhbHVlKS5ub2RlcygpLnRvJCgpOwogICAgICAgICAgICAgICAgICB2YXIgZmxhZ1Jvd1NlbCA9ICFyb3cuaGFzQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICAgICBpZiAoZmxhZ1NlbCA9PT0gZmxhZ1Jvd1NlbCkgcm93LnRvZ2dsZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgJHRoaXMudG9nZ2xlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpKSB7CiAgICAgICAgICAgICAgJHRoaXMucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRhYmxlLiQoJ3RyLicgKyBzZWxDbGFzcykucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHNlcnZlciAmJiAhJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpKSB7CiAgICAgICAgICAgIHZhciBpZCA9IERUX3Jvd3NfY3VycmVudFt0aGlzUm93LmluZGV4KCldOwogICAgICAgICAgICAvLyByZW1vdmUgaWQgZnJvbSBzZWxlY3RlZDEgc2luY2UgaXRzIGNsYXNzIC5zZWxlY3RlZCBoYXMgYmVlbiByZW1vdmVkCiAgICAgICAgICAgIGlmIChpbkFycmF5KGlkLCBzZWxlY3RlZDEpKSBzZWxlY3RlZDEuc3BsaWNlKCQuaW5BcnJheShpZCwgc2VsZWN0ZWQxKSwgMSk7CiAgICAgICAgICB9CiAgICAgICAgICBjaGFuZ2VJbnB1dCgncm93c19zZWxlY3RlZCcsIHNlbGVjdGVkUm93cygpKTsKICAgICAgICAgIGNoYW5nZUlucHV0KCdyb3dfbGFzdF9jbGlja2VkJywgc2VydmVyUm93SW5kZXgodGhpc1Jvdy5pbmRleCgpKSk7CiAgICAgICAgICBsYXN0Q2xpY2tlZFJvdyA9IHNlcnZlclJvd0luZGV4KHRoaXNSb3cuaW5kZXgoKSk7CiAgICAgICAgfSk7CiAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBzZWxlY3RlZDEpOwogICAgICAgIHZhciBzZWxlY3RSb3dzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB0YWJsZS4kKCd0ci4nICsgc2VsQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgIGlmIChzZWxlY3RlZDEubGVuZ3RoID09PSAwKSByZXR1cm47CiAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgIHRhYmxlLnJvd3Moe3BhZ2U6ICdjdXJyZW50J30pLmV2ZXJ5KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlmIChpbkFycmF5KERUX3Jvd3NfY3VycmVudFt0aGlzLmluZGV4KCldLCBzZWxlY3RlZDEpKSB7CiAgICAgICAgICAgICAgICAkKHRoaXMubm9kZSgpKS5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhciBzZWxlY3RlZDAgPSBzZWxlY3RlZDEubWFwKGZ1bmN0aW9uKGkpIHsgcmV0dXJuIGkgLSAxOyB9KTsKICAgICAgICAgICAgJCh0YWJsZS5yb3dzKHNlbGVjdGVkMCkubm9kZXMoKSkuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzZWxlY3RSb3dzKCk7ICAvLyBpbiBjYXNlIHVzZXJzIGhhdmUgc3BlY2lmaWVkIHByZS1zZWxlY3RlZCByb3dzCiAgICAgICAgLy8gcmVzdG9yZSBzZWxlY3RlZCByb3dzIGFmdGVyIHRoZSB0YWJsZSBpcyByZWRyYXduIChlLmcuIHNvcnQvc2VhcmNoL3BhZ2UpOwogICAgICAgIC8vIGNsaWVudC1zaWRlIHRhYmxlcyB3aWxsIHByZXNlcnZlIHRoZSBzZWxlY3Rpb25zIGF1dG9tYXRpY2FsbHk7IGZvcgogICAgICAgIC8vIHNlcnZlci1zaWRlIHRhYmxlcywgd2UgaGF2ZSB0byAqcmVhbCogcm93IGluZGljZXMgYXJlIGluIGBzZWxlY3RlZDFgCiAgICAgICAgaWYgKHNlcnZlcikgdGFibGUub24oJ2RyYXcuZHQnLCBzZWxlY3RSb3dzKTsKICAgICAgICBtZXRob2RzLnNlbGVjdFJvd3MgPSBmdW5jdGlvbihzZWxlY3RlZCkgewogICAgICAgICAgc2VsZWN0ZWQxID0gJC5tYWtlQXJyYXkoc2VsZWN0ZWQpOwogICAgICAgICAgc2VsZWN0Um93cygpOwogICAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBzZWxlY3RlZDEpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGluQXJyYXkoc2VsVGFyZ2V0LCBbJ2NvbHVtbicsICdyb3crY29sdW1uJ10pKSB7CiAgICAgICAgaWYgKHNlbFRhcmdldCA9PT0gJ3Jvdytjb2x1bW4nKSB7CiAgICAgICAgICAkKHRhYmxlLmNvbHVtbnMoKS5mb290ZXIoKSkuY3NzKCdjdXJzb3InLCAncG9pbnRlcicpOwogICAgICAgIH0KICAgICAgICB0YWJsZS5vbignY2xpY2suZHQnLCBzZWxUYXJnZXQgPT09ICdjb2x1bW4nID8gJ3Rib2R5IHRkJyA6ICd0Zm9vdCB0ciB0aCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGNvbElkeCA9IHNlbFRhcmdldCA9PT0gJ2NvbHVtbicgPyB0YWJsZS5jZWxsKHRoaXMpLmluZGV4KCkuY29sdW1uIDoKICAgICAgICAgICAgICAkLmluQXJyYXkodGhpcywgdGFibGUuY29sdW1ucygpLmZvb3RlcigpKSwKICAgICAgICAgICAgICB0aGlzQ29sID0gJCh0YWJsZS5jb2x1bW4oY29sSWR4KS5ub2RlcygpKTsKICAgICAgICAgIGlmIChjb2xJZHggPT09IC0xKSByZXR1cm47CiAgICAgICAgICBpZiAodGhpc0NvbC5oYXNDbGFzcyhzZWxDbGFzcykpIHsKICAgICAgICAgICAgdGhpc0NvbC5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIHNlbGVjdGVkMi5zcGxpY2UoJC5pbkFycmF5KGNvbElkeCwgc2VsZWN0ZWQyKSwgMSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoc2VsTW9kZSA9PT0gJ3NpbmdsZScpICQodGFibGUuY2VsbHMoKS5ub2RlcygpKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIHRoaXNDb2wuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICBzZWxlY3RlZDIgPSBzZWxNb2RlID09PSAnc2luZ2xlJyA/IFtjb2xJZHhdIDogdW5pcXVlKHNlbGVjdGVkMi5jb25jYXQoW2NvbElkeF0pKTsKICAgICAgICAgIH0KICAgICAgICAgIGNoYW5nZUlucHV0KCdjb2x1bW5zX3NlbGVjdGVkJywgc2VsZWN0ZWQyKTsKICAgICAgICB9KTsKICAgICAgICBjaGFuZ2VJbnB1dCgnY29sdW1uc19zZWxlY3RlZCcsIHNlbGVjdGVkMik7CiAgICAgICAgdmFyIHNlbGVjdENvbHMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHRhYmxlLmNvbHVtbnMoKS5ub2RlcygpLmZsYXR0ZW4oKS50byQoKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICBpZiAoc2VsZWN0ZWQyLmxlbmd0aCA+IDApCiAgICAgICAgICAgIHRhYmxlLmNvbHVtbnMoc2VsZWN0ZWQyKS5ub2RlcygpLmZsYXR0ZW4oKS50byQoKS5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgfQogICAgICAgIHNlbGVjdENvbHMoKTsgIC8vIGluIGNhc2UgdXNlcnMgaGF2ZSBzcGVjaWZpZWQgcHJlLXNlbGVjdGVkIGNvbHVtbnMKICAgICAgICBpZiAoc2VydmVyKSB0YWJsZS5vbignZHJhdy5kdCcsIHNlbGVjdENvbHMpOwogICAgICAgIG1ldGhvZHMuc2VsZWN0Q29sdW1ucyA9IGZ1bmN0aW9uKHNlbGVjdGVkKSB7CiAgICAgICAgICBzZWxlY3RlZDIgPSAkLm1ha2VBcnJheShzZWxlY3RlZCk7CiAgICAgICAgICBzZWxlY3RDb2xzKCk7CiAgICAgICAgICBjaGFuZ2VJbnB1dCgnY29sdW1uc19zZWxlY3RlZCcsIHNlbGVjdGVkMik7CiAgICAgICAgfQogICAgICB9CgogICAgICBpZiAoc2VsVGFyZ2V0ID09PSAnY2VsbCcpIHsKICAgICAgICB2YXIgc2VsZWN0ZWQzOwogICAgICAgIGlmIChzZWxlY3RlZCA9PT0gbnVsbCkgewogICAgICAgICAgc2VsZWN0ZWQzID0gW107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHNlbGVjdGVkMyA9IHNlbGVjdGVkOwogICAgICAgIH0KICAgICAgICB2YXIgZmluZEluZGV4ID0gZnVuY3Rpb24oaWopIHsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0ZWQzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChpalswXSA9PT0gc2VsZWN0ZWQzW2ldWzBdICYmIGlqWzFdID09PSBzZWxlY3RlZDNbaV1bMV0pIHJldHVybiBpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICB0YWJsZS5vbignY2xpY2suZHQnLCAndGJvZHkgdGQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksIGluZm8gPSB0d2Vha0NlbGxJbmRleCh0YWJsZS5jZWxsKHRoaXMpKTsKICAgICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcyhzZWxDbGFzcykpIHsKICAgICAgICAgICAgJHRoaXMucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICBzZWxlY3RlZDMuc3BsaWNlKGZpbmRJbmRleChbaW5mby5yb3csIGluZm8uY29sXSksIDEpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHNlbE1vZGUgPT09ICdzaW5nbGUnKSAkKHRhYmxlLmNlbGxzKCkubm9kZXMoKSkucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAkdGhpcy5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIHNlbGVjdGVkMyA9IHNlbE1vZGUgPT09ICdzaW5nbGUnID8gW1tpbmZvLnJvdywgaW5mby5jb2xdXSA6CiAgICAgICAgICAgICAgdW5pcXVlKHNlbGVjdGVkMy5jb25jYXQoW1tpbmZvLnJvdywgaW5mby5jb2xdXSkpOwogICAgICAgICAgfQogICAgICAgICAgY2hhbmdlSW5wdXQoJ2NlbGxzX3NlbGVjdGVkJywgdHJhbnNwb3NlQXJyYXkyRChzZWxlY3RlZDMpLCAnc2hpbnkubWF0cml4Jyk7CiAgICAgICAgfSk7CiAgICAgICAgY2hhbmdlSW5wdXQoJ2NlbGxzX3NlbGVjdGVkJywgdHJhbnNwb3NlQXJyYXkyRChzZWxlY3RlZDMpLCAnc2hpbnkubWF0cml4Jyk7CiAgICAgICAgdmFyIHNlbGVjdENlbGxzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB0YWJsZS4kKCd0ZC4nICsgc2VsQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgIGlmIChzZWxlY3RlZDMubGVuZ3RoID09PSAwKSByZXR1cm47CiAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgIHRhYmxlLmNlbGxzKHtwYWdlOiAnY3VycmVudCd9KS5ldmVyeShmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YXIgaW5mbyA9IHR3ZWFrQ2VsbEluZGV4KHRoaXMpOwogICAgICAgICAgICAgIGlmIChmaW5kSW5kZXgoW2luZm8ucm93LCBpbmZvLmNvbF0sIHNlbGVjdGVkMykgPiAtMSkKICAgICAgICAgICAgICAgICQodGhpcy5ub2RlKCkpLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzZWxlY3RlZDMubWFwKGZ1bmN0aW9uKGlqKSB7CiAgICAgICAgICAgICAgJCh0YWJsZS5jZWxsKGlqWzBdIC0gMSwgaWpbMV0pLm5vZGUoKSkuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHNlbGVjdENlbGxzKCk7ICAvLyBpbiBjYXNlIHVzZXJzIGhhdmUgc3BlY2lmaWVkIHByZS1zZWxlY3RlZCBjb2x1bW5zCiAgICAgICAgaWYgKHNlcnZlcikgdGFibGUub24oJ2RyYXcuZHQnLCBzZWxlY3RDZWxscyk7CiAgICAgICAgbWV0aG9kcy5zZWxlY3RDZWxscyA9IGZ1bmN0aW9uKHNlbGVjdGVkKSB7CiAgICAgICAgICBzZWxlY3RlZDMgPSBzZWxlY3RlZCA/IHNlbGVjdGVkIDogW107CiAgICAgICAgICBzZWxlY3RDZWxscygpOwogICAgICAgICAgY2hhbmdlSW5wdXQoJ2NlbGxzX3NlbGVjdGVkJywgdHJhbnNwb3NlQXJyYXkyRChzZWxlY3RlZDMpLCAnc2hpbnkubWF0cml4Jyk7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgLy8gZXhwb3NlIHNvbWUgdGFibGUgaW5mbyB0byBTaGlueQogICAgdmFyIHVwZGF0ZVRhYmxlSW5mbyA9IGZ1bmN0aW9uKGUsIHNldHRpbmdzKSB7CiAgICAgIC8vIFRPRE86IGlzIGFueW9uZSBpbnRlcmVzdGVkIGluIHRoZSBwYWdlIGluZm8/CiAgICAgIC8vIGNoYW5nZUlucHV0KCdwYWdlX2luZm8nLCB0YWJsZS5wYWdlLmluZm8oKSk7CiAgICAgIHZhciB1cGRhdGVSb3dJbmZvID0gZnVuY3Rpb24oaWQsIG1vZGlmaWVyKSB7CiAgICAgICAgdmFyIGlkeDsKICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICBpZHggPSBtb2RpZmllci5wYWdlID09PSAnY3VycmVudCcgPyBEVF9yb3dzX2N1cnJlbnQgOiBEVF9yb3dzX2FsbDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIHJvd3MgPSB0YWJsZS5yb3dzKCQuZXh0ZW5kKHsKICAgICAgICAgICAgc2VhcmNoOiAnYXBwbGllZCcsCiAgICAgICAgICAgIHBhZ2U6ICdhbGwnCiAgICAgICAgICB9LCBtb2RpZmllcikpOwogICAgICAgICAgaWR4ID0gYWRkT25lKHJvd3MuaW5kZXhlcygpLnRvQXJyYXkoKSk7CiAgICAgICAgfQogICAgICAgIGNoYW5nZUlucHV0KCdyb3dzJyArICdfJyArIGlkLCBpZHgpOwogICAgICB9OwogICAgICB1cGRhdGVSb3dJbmZvKCdjdXJyZW50Jywge3BhZ2U6ICdjdXJyZW50J30pOwogICAgICB1cGRhdGVSb3dJbmZvKCdhbGwnLCB7fSk7CiAgICB9CiAgICB0YWJsZS5vbignZHJhdy5kdCcsIHVwZGF0ZVRhYmxlSW5mbyk7CiAgICB1cGRhdGVUYWJsZUluZm8oKTsKCiAgICAvLyBzdGF0ZSBpbmZvCiAgICB0YWJsZS5vbignZHJhdy5kdCBjb2x1bW4tdmlzaWJpbGl0eS5kdCcsIGZ1bmN0aW9uKCkgewogICAgICBjaGFuZ2VJbnB1dCgnc3RhdGUnLCB0YWJsZS5zdGF0ZSgpKTsKICAgIH0pOwogICAgY2hhbmdlSW5wdXQoJ3N0YXRlJywgdGFibGUuc3RhdGUoKSk7CgogICAgLy8gc2VhcmNoIGluZm8KICAgIHZhciB1cGRhdGVTZWFyY2hJbmZvID0gZnVuY3Rpb24oKSB7CiAgICAgIGNoYW5nZUlucHV0KCdzZWFyY2gnLCB0YWJsZS5zZWFyY2goKSk7CiAgICAgIGlmIChmaWx0ZXJSb3cpIGNoYW5nZUlucHV0KCdzZWFyY2hfY29sdW1ucycsIGZpbHRlclJvdy50b0FycmF5KCkubWFwKGZ1bmN0aW9uKHRkKSB7CiAgICAgICAgcmV0dXJuICQodGQpLmZpbmQoJ2lucHV0JykuZmlyc3QoKS52YWwoKTsKICAgICAgfSkpOwogICAgfQogICAgdGFibGUub24oJ2RyYXcuZHQnLCB1cGRhdGVTZWFyY2hJbmZvKTsKICAgIHVwZGF0ZVNlYXJjaEluZm8oKTsKCiAgICB2YXIgY2VsbEluZm8gPSBmdW5jdGlvbih0aGl6KSB7CiAgICAgIHZhciBpbmZvID0gdHdlYWtDZWxsSW5kZXgodGFibGUuY2VsbCh0aGl6KSk7CiAgICAgIGluZm8udmFsdWUgPSB0YWJsZS5jZWxsKHRoaXopLmRhdGEoKTsKICAgICAgcmV0dXJuIGluZm87CiAgICB9CiAgICAvLyB0aGUgY3VycmVudCBjZWxsIGNsaWNrZWQgb24KICAgIHRhYmxlLm9uKCdjbGljay5kdCcsICd0Ym9keSB0ZCcsIGZ1bmN0aW9uKCkgewogICAgICBjaGFuZ2VJbnB1dCgnY2VsbF9jbGlja2VkJywgY2VsbEluZm8odGhpcykpOwogICAgfSkKICAgIGNoYW5nZUlucHV0KCdjZWxsX2NsaWNrZWQnLCB7fSk7CgogICAgLy8gZG8gbm90IHRyaWdnZXIgdGFibGUgc2VsZWN0aW9uIHdoZW4gY2xpY2tpbmcgb24gbGlua3MgdW5sZXNzIHRoZXkgaGF2ZSBjbGFzc2VzCiAgICB0YWJsZS5vbignY2xpY2suZHQnLCAndGJvZHkgdGQgYScsIGZ1bmN0aW9uKGUpIHsKICAgICAgaWYgKHRoaXMuY2xhc3NOYW1lID09PSAnJykgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgIH0pOwoKICAgIG1ldGhvZHMuYWRkUm93ID0gZnVuY3Rpb24oZGF0YSwgcm93bmFtZSkgewogICAgICB2YXIgZGF0YTAgPSB0YWJsZS5yb3coMCkuZGF0YSgpLCBuID0gZGF0YTAubGVuZ3RoLCBkID0gbiAtIGRhdGEubGVuZ3RoOwogICAgICBpZiAoZCA9PT0gMSkgewogICAgICAgIGRhdGEgPSByb3duYW1lLmNvbmNhdChkYXRhKQogICAgICB9IGVsc2UgaWYgKGQgIT09IDApIHsKICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgICBjb25zb2xlLmxvZyhkYXRhMCk7CiAgICAgICAgdGhyb3cgJ05ldyBkYXRhIG11c3QgYmUgb2YgdGhlIHNhbWUgbGVuZ3RoIGFzIGN1cnJlbnQgZGF0YSAoJyArIG4gKyAnKSc7CiAgICAgIH07CiAgICAgIHRhYmxlLnJvdy5hZGQoZGF0YSkuZHJhdygpOwogICAgfQoKICAgIG1ldGhvZHMudXBkYXRlU2VhcmNoID0gZnVuY3Rpb24oa2V5d29yZHMpIHsKICAgICAgaWYgKGtleXdvcmRzLmdsb2JhbCAhPT0gbnVsbCkKICAgICAgICAkKHRhYmxlLnRhYmxlKCkuY29udGFpbmVyKCkpLmZpbmQoJ2lucHV0W3R5cGU9c2VhcmNoXScpLmZpcnN0KCkKICAgICAgICAgICAgIC52YWwoa2V5d29yZHMuZ2xvYmFsKS50cmlnZ2VyKCdpbnB1dCcpOwogICAgICB2YXIgY29sdW1ucyA9IGtleXdvcmRzLmNvbHVtbnM7CiAgICAgIGlmICghZmlsdGVyUm93IHx8IGNvbHVtbnMgPT09IG51bGwpIHJldHVybjsKICAgICAgZmlsdGVyUm93LnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24odGQsIGkpIHsKICAgICAgICB2YXIgdiA9IHR5cGVvZiBjb2x1bW5zID09PSAnc3RyaW5nJyA/IGNvbHVtbnMgOiBjb2x1bW5zW2ldOwogICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdUaGUgc2VhcmNoIGtleXdvcmQgZm9yIGNvbHVtbiAnICsgaSArICcgaXMgdW5kZWZpbmVkJykKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJCh0ZCkuZmluZCgnaW5wdXQnKS5maXJzdCgpLnZhbCh2KTsKICAgICAgICBzZWFyY2hDb2x1bW4oaSwgdik7CiAgICAgIH0pOwogICAgICB0YWJsZS5kcmF3KCk7CiAgICB9CgogICAgbWV0aG9kcy5oaWRlQ29scyA9IGZ1bmN0aW9uKGhpZGUsIHJlc2V0KSB7CiAgICAgIGlmIChyZXNldCkgdGFibGUuY29sdW1ucygpLnZpc2libGUodHJ1ZSwgZmFsc2UpOwogICAgICB0YWJsZS5jb2x1bW5zKGhpZGUpLnZpc2libGUoZmFsc2UpOwogICAgfQoKICAgIG1ldGhvZHMuc2hvd0NvbHMgPSBmdW5jdGlvbihzaG93LCByZXNldCkgewogICAgICBpZiAocmVzZXQpIHRhYmxlLmNvbHVtbnMoKS52aXNpYmxlKGZhbHNlLCBmYWxzZSk7CiAgICAgIHRhYmxlLmNvbHVtbnMoc2hvdykudmlzaWJsZSh0cnVlKTsKICAgIH0KCiAgICBtZXRob2RzLmNvbFJlb3JkZXIgPSBmdW5jdGlvbihvcmRlciwgb3JpZ09yZGVyKSB7CiAgICAgIHRhYmxlLmNvbFJlb3JkZXIub3JkZXIob3JkZXIsIG9yaWdPcmRlcik7CiAgICB9CgogICAgbWV0aG9kcy5zZWxlY3RQYWdlID0gZnVuY3Rpb24ocGFnZSkgewogICAgICBpZiAodGFibGUucGFnZS5pbmZvKCkucGFnZXMgPCBwYWdlIHx8IHBhZ2UgPCAxKSB7CiAgICAgICAgdGhyb3cgJ1NlbGVjdGVkIHBhZ2UgaXMgb3V0IG9mIHJhbmdlJzsKICAgICAgfTsKICAgICAgdGFibGUucGFnZShwYWdlIC0gMSkuZHJhdyhmYWxzZSk7CiAgICB9CgogICAgbWV0aG9kcy5yZWxvYWREYXRhID0gZnVuY3Rpb24ocmVzZXRQYWdpbmcsIGNsZWFyU2VsZWN0aW9uKSB7CiAgICAgIC8vIGVtcHR5IHNlbGVjdGlvbnMgZmlyc3QgaWYgbmVjZXNzYXJ5CiAgICAgIGlmIChtZXRob2RzLnNlbGVjdFJvd3MgJiYgaW5BcnJheSgncm93JywgY2xlYXJTZWxlY3Rpb24pKSBtZXRob2RzLnNlbGVjdFJvd3MoW10pOwogICAgICBpZiAobWV0aG9kcy5zZWxlY3RDb2x1bW5zICYmIGluQXJyYXkoJ2NvbHVtbicsIGNsZWFyU2VsZWN0aW9uKSkgbWV0aG9kcy5zZWxlY3RDb2x1bW5zKFtdKTsKICAgICAgaWYgKG1ldGhvZHMuc2VsZWN0Q2VsbHMgJiYgaW5BcnJheSgnY2VsbCcsIGNsZWFyU2VsZWN0aW9uKSkgbWV0aG9kcy5zZWxlY3RDZWxscyhbXSk7CiAgICAgIHRhYmxlLmFqYXgucmVsb2FkKG51bGwsIHJlc2V0UGFnaW5nKTsKICAgIH0KCiAgICB0YWJsZS5zaGlueU1ldGhvZHMgPSBtZXRob2RzOwogIH0sCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5kYXRhKSB0aGlzLnJlbmRlclZhbHVlKGVsLCBpbnN0YW5jZS5kYXRhLCBpbnN0YW5jZSk7CgogICAgLy8gZHluYW1pY2FsbHkgYWRqdXN0IGhlaWdodCBpZiBmaWxsQ29udGFpbmVyID0gVFJVRQogICAgaWYgKGluc3RhbmNlLmZpbGxDb250YWluZXIpCiAgICAgIHRoaXMuZmlsbEF2YWlsYWJsZUhlaWdodChlbCwgaGVpZ2h0KTsKCiAgICB0aGlzLmFkanVzdFdpZHRoKGVsKTsKICB9LAoKICAvLyBkeW5hbWljYWxseSBzZXQgdGhlIHNjcm9sbCBib2R5IHRvIGZpbGwgYXZhaWxhYmxlIGhlaWdodAogIC8vICh1c2VkIHdpdGggZmlsbENvbnRhaW5lciA9IFRSVUUpCiAgZmlsbEF2YWlsYWJsZUhlaWdodDogZnVuY3Rpb24oZWwsIGF2YWlsYWJsZUhlaWdodCkgewoKICAgIC8vIHNlZSBob3cgbXVjaCBvZiB0aGUgdGFibGUgaXMgb2NjdXBpZWQgYnkgaGVhZGVyL2Zvb3RlciBlbGVtZW50cwogICAgLy8gYW5kIHVzZSB0aGF0IHRvIGNvbXB1dGUgYSB0YXJnZXQgc2Nyb2xsIGJvZHkgaGVpZ2h0CiAgICB2YXIgZHRXcmFwcGVyID0gJChlbCkuZmluZCgnZGl2LmRhdGFUYWJsZXNfd3JhcHBlcicpOwogICAgdmFyIGR0U2Nyb2xsQm9keSA9ICQoZWwpLmZpbmQoJCgnZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keScpKTsKICAgIHZhciBmcmFtaW5nSGVpZ2h0ID0gZHRXcmFwcGVyLmlubmVySGVpZ2h0KCkgLSBkdFNjcm9sbEJvZHkuaW5uZXJIZWlnaHQoKTsKICAgIHZhciBzY3JvbGxCb2R5SGVpZ2h0ID0gYXZhaWxhYmxlSGVpZ2h0IC0gZnJhbWluZ0hlaWdodDsKCiAgICAvLyBzZXQgdGhlIGhlaWdodAogICAgZHRTY3JvbGxCb2R5LmhlaWdodChzY3JvbGxCb2R5SGVpZ2h0ICsgJ3B4Jyk7CiAgfSwKCiAgLy8gYWRqdXN0IHRoZSB3aWR0aCBvZiBjb2x1bW5zOyByZW1vdmUgdGhlIGhhcmQtY29kZWQgd2lkdGhzIG9uIHRhYmxlIGFuZCB0aGUKICAvLyBzY3JvbGwgaGVhZGVyIHdoZW4gc2Nyb2xsWC9ZIGFyZSBlbmFibGVkCiAgYWRqdXN0V2lkdGg6IGZ1bmN0aW9uKGVsKSB7CiAgICB2YXIgJGVsID0gJChlbCksIHRhYmxlID0gJGVsLmRhdGEoJ2RhdGF0YWJsZScpOwogICAgaWYgKHRhYmxlKSB0YWJsZS5jb2x1bW5zLmFkanVzdCgpOwogICAgJGVsLmZpbmQoJy5kYXRhVGFibGVzX3Njcm9sbEhlYWRJbm5lcicpLmNzcygnd2lkdGgnLCAnJykKICAgICAgICAuY2hpbGRyZW4oJ3RhYmxlJykuY3NzKCdtYXJnaW4tbGVmdCcsICcnKTsKICB9Cn0pOwoKICBpZiAoIUhUTUxXaWRnZXRzLnNoaW55TW9kZSkgcmV0dXJuOwoKICBTaGlueS5hZGRDdXN0b21NZXNzYWdlSGFuZGxlcignZGF0YXRhYmxlLWNhbGxzJywgZnVuY3Rpb24oZGF0YSkgewogICAgdmFyIGlkID0gZGF0YS5pZDsKICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKICAgIHZhciB0YWJsZSA9IGVsID8gJChlbCkuZGF0YSgnZGF0YXRhYmxlJykgOiBudWxsOwogICAgaWYgKCF0YWJsZSkgewogICAgICBjb25zb2xlLmxvZygiQ291bGRuJ3QgZmluZCB0YWJsZSB3aXRoIGlkICIgKyBpZCk7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgbWV0aG9kcyA9IHRhYmxlLnNoaW55TWV0aG9kcywgY2FsbCA9IGRhdGEuY2FsbDsKICAgIGlmIChtZXRob2RzW2NhbGwubWV0aG9kXSkgewogICAgICBtZXRob2RzW2NhbGwubWV0aG9kXS5hcHBseSh0YWJsZSwgY2FsbC5hcmdzKTsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnNvbGUubG9nKCJVbmtub3duIG1ldGhvZCAiICsgY2FsbC5tZXRob2QpOwogICAgfQogIH0pOwoKfSkoKTsK"></script>
<link href="data:text/css;charset=utf-8,table%2EdataTable%7Bwidth%3A100%25%3Bmargin%3A0%20auto%3Bclear%3Aboth%3Bborder%2Dcollapse%3Aseparate%3Bborder%2Dspacing%3A0%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20tfoot%20th%7Bfont%2Dweight%3Abold%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20thead%20td%7Bpadding%3A10px%2018px%3Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20th%3Aactive%2Ctable%2EdataTable%20thead%20td%3Aactive%7Boutline%3Anone%7Dtable%2EdataTable%20tfoot%20th%2Ctable%2EdataTable%20tfoot%20td%7Bpadding%3A10px%2018px%206px%2018px%3Bborder%2Dtop%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20%2Esorting%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bcursor%3Apointer%3B%2Acursor%3Ahand%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bbackground%2Dposition%3Acenter%20right%7Dtable%2EdataTable%20thead%20%2Esorting%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7XQMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL%2BTq%2FQCM1oNiJidwox0355mXnG%2FDrEtIQ6azioNZQxI0ykPhTQIwhCR%2BBmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P%2BGtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS%2FgDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM%2BwTENuQahAvEO9DMwiGdwAxOymGJQLxTyD%2BjgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA%2FBOIv2PBIPFEUgxjB%2BIdQPwfC94HxLykus4GiD%2BhGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL%2BAuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAW0lEQVQoz2NgoCm4w3Vnwh02wspK7%2Fy6k01Ikdadx3f%2B37l9RxmfIsY7c4GKQHDiHUbcyhzvvIMq%2B3THBpci3jv7oIpAcMcdduzKEu%2F8vPMdDn%2FeiWQYBYMKAAC3ykIEuYQJUgAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAWUlEQVQoz2NgGAWDCtyJvPPzznc4%2FHknEbsy9js77vyHw313eHGZZ3PnE1TRuzuOuK1lvDMRqmzuHUZ87lO%2Bcxuo6PEdLUIeyb7z604pYf%2By3Zlwh4u2YQoAc7ZCBHH4jigAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20tbody%20tr%7Bbackground%2Dcolor%3A%23ffffff%7Dtable%2EdataTable%20tbody%20tr%2Eselected%7Bbackground%2Dcolor%3A%23B0BED9%7Dtable%2EdataTable%20tbody%20th%2Ctable%2EdataTable%20tbody%20td%7Bpadding%3A8px%2010px%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%3Bborder%2Dright%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20th%3Afirst%2Dchild%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20td%3Afirst%2Dchild%7Bborder%2Dleft%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%7Bbackground%2Dcolor%3A%23f9f9f9%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%7Bbackground%2Dcolor%3A%23acbad4%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%7Bbackground%2Dcolor%3A%23f6f6f6%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%7Bbackground%2Dcolor%3A%23aab7d1%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fafafa%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23acbad5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23f1f1f1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23f3f3f3%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F3%7Bbackground%2Dcolor%3Awhitesmoke%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a6b4cd%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a8b5cf%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a9b7d1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23fafafa%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23fcfcfc%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fefefe%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23acbad5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23aebcd6%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23afbdd8%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23eaeaea%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23ececec%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23efefef%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a2aec7%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a3b0c9%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a5b2cb%7Dtable%2EdataTable%2Eno%2Dfooter%7Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%2Enowrap%20th%2Ctable%2EdataTable%2Enowrap%20td%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ecompact%20thead%20th%2Ctable%2EdataTable%2Ecompact%20thead%20td%7Bpadding%3A4px%2017px%204px%204px%7Dtable%2EdataTable%2Ecompact%20tfoot%20th%2Ctable%2EdataTable%2Ecompact%20tfoot%20td%7Bpadding%3A4px%7Dtable%2EdataTable%2Ecompact%20tbody%20th%2Ctable%2EdataTable%2Ecompact%20tbody%20td%7Bpadding%3A4px%7Dtable%2EdataTable%20th%2Edt%2Dleft%2Ctable%2EdataTable%20td%2Edt%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20th%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2EdataTables%5Fempty%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20th%2Edt%2Dright%2Ctable%2EdataTable%20td%2Edt%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20th%2Edt%2Djustify%2Ctable%2EdataTable%20td%2Edt%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20th%2Edt%2Dnowrap%2Ctable%2EdataTable%20td%2Edt%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dleft%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dcenter%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dright%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Djustify%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dnowrap%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ctable%2EdataTable%20th%2Ctable%2EdataTable%20td%7Bbox%2Dsizing%3Acontent%2Dbox%7D%2EdataTables%5Fwrapper%7Bposition%3Arelative%3Bclear%3Aboth%3B%2Azoom%3A1%3Bzoom%3A1%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%7Bfloat%3Aleft%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Aright%3Btext%2Dalign%3Aright%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%20input%7Bmargin%2Dleft%3A0%2E5em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%7Bclear%3Aboth%3Bfloat%3Aleft%3Bpadding%2Dtop%3A0%2E755em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Aright%3Btext%2Dalign%3Aright%3Bpadding%2Dtop%3A0%2E25em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%7Bbox%2Dsizing%3Aborder%2Dbox%3Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A1%2E5em%3Bpadding%3A0%2E5em%201em%3Bmargin%2Dleft%3A2px%3Btext%2Dalign%3Acenter%3Btext%2Ddecoration%3Anone%20%21important%3Bcursor%3Apointer%3B%2Acursor%3Ahand%3Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A2px%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%3Ahover%7Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20%23979797%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23fff%29%2C%20color%2Dstop%28100%25%2C%20%23dcdcdc%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Ahover%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Aactive%7Bcursor%3Adefault%3Bcolor%3A%23666%20%21important%3Bborder%3A1px%20solid%20transparent%3Bbackground%3Atransparent%3Bbox%2Dshadow%3Anone%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Ahover%7Bcolor%3Awhite%20%21important%3Bborder%3A1px%20solid%20%23111%3Bbackground%2Dcolor%3A%23585858%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23585858%29%2C%20color%2Dstop%28100%25%2C%20%23111%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23585858%200%25%2C%20%23111%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Aactive%7Boutline%3Anone%3Bbackground%2Dcolor%3A%232b2b2b%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%232b2b2b%29%2C%20color%2Dstop%28100%25%2C%20%230c0c0c%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbox%2Dshadow%3Ainset%200%200%203px%20%23111%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Eellipsis%7Bpadding%3A0%201em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%7Bposition%3Aabsolute%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A100%25%3Bheight%3A40px%3Bmargin%2Dleft%3A%2D50%25%3Bmargin%2Dtop%3A%2D25px%3Bpadding%2Dtop%3A20px%3Btext%2Dalign%3Acenter%3Bfont%2Dsize%3A1%2E2em%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20color%2Dstop%280%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%2C%20color%2Dstop%2825%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%2875%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%28100%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20right%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bcolor%3A%23333%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%7Bclear%3Aboth%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%7B%2Amargin%2Dtop%3A%2D1px%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Eth%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Etd%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Eth%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Etd%7Bvertical%2Dalign%3Amiddle%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Eth%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Etd%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Eth%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Etd%3Ediv%2EdataTables%5Fsizing%7Bheight%3A0%3Boverflow%3Ahidden%3Bmargin%3A0%20%21important%3Bpadding%3A0%20%21important%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20%2EdataTables%5FscrollBody%7Bborder%2Dbottom%3A1px%20solid%20%23111%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollHead%20table%2EdataTable%2C%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollBody%3Etable%7Bborder%2Dbottom%3Anone%7D%2EdataTables%5Fwrapper%3Aafter%7Bvisibility%3Ahidden%3Bdisplay%3Ablock%3Bcontent%3A%22%22%3Bclear%3Aboth%3Bheight%3A0%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20767px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bmargin%2Dtop%3A0%2E5em%7D%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20640px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bmargin%2Dtop%3A0%2E5em%7D%7D%0A" rel="stylesheet" />
<link href="data:text/css;charset=utf-8,%0Atable%2EdataTable%20tr%2Eselected%20td%2C%20table%2EdataTable%20td%2Eselected%20%7B%0Abackground%2Dcolor%3A%20%23b0bed9%20%21important%3B%0A%7D%0A%0A%2EdataTables%5FscrollBody%20%2EdataTables%5Fsizing%20%7B%0Avisibility%3A%20hidden%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyohCiBEYXRhVGFibGVzIDEuMTAuMTYKIMKpMjAwOC0yMDE3IFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiovCihmdW5jdGlvbihoKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbihFKXtyZXR1cm4gaChFLHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKEUsRyl7RXx8KEU9d2luZG93KTtHfHwoRz0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3c/cmVxdWlyZSgianF1ZXJ5Iik6cmVxdWlyZSgianF1ZXJ5IikoRSkpO3JldHVybiBoKEcsRSxFLmRvY3VtZW50KX06aChqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGgsRSxHLGspe2Z1bmN0aW9uIFgoYSl7dmFyIGIsYyxkPXt9O2guZWFjaChhLGZ1bmN0aW9uKGUpe2lmKChiPWUubWF0Y2goL14oW15BLVpdKz8pKFtBLVpdKS8pKSYmLTEhPT0iYSBhYSBhaSBhbyBhcyBiIGZuIGkgbSBvIHMgIi5pbmRleE9mKGJbMV0rIiAiKSljPWUucmVwbGFjZShiWzBdLGJbMl0udG9Mb3dlckNhc2UoKSksCmRbY109ZSwibyI9PT1iWzFdJiZYKGFbZV0pfSk7YS5faHVuZ2FyaWFuTWFwPWR9ZnVuY3Rpb24gSShhLGIsYyl7YS5faHVuZ2FyaWFuTWFwfHxYKGEpO3ZhciBkO2guZWFjaChiLGZ1bmN0aW9uKGUpe2Q9YS5faHVuZ2FyaWFuTWFwW2VdO2lmKGQhPT1rJiYoY3x8YltkXT09PWspKSJvIj09PWQuY2hhckF0KDApPyhiW2RdfHwoYltkXT17fSksaC5leHRlbmQoITAsYltkXSxiW2VdKSxJKGFbZF0sYltkXSxjKSk6YltkXT1iW2VdfSl9ZnVuY3Rpb24gQ2EoYSl7dmFyIGI9bS5kZWZhdWx0cy5vTGFuZ3VhZ2UsYz1hLnNaZXJvUmVjb3JkczshYS5zRW1wdHlUYWJsZSYmKGMmJiJObyBkYXRhIGF2YWlsYWJsZSBpbiB0YWJsZSI9PT1iLnNFbXB0eVRhYmxlKSYmRihhLGEsInNaZXJvUmVjb3JkcyIsInNFbXB0eVRhYmxlIik7IWEuc0xvYWRpbmdSZWNvcmRzJiYoYyYmIkxvYWRpbmcuLi4iPT09Yi5zTG9hZGluZ1JlY29yZHMpJiZGKGEsYSwic1plcm9SZWNvcmRzIiwic0xvYWRpbmdSZWNvcmRzIik7CmEuc0luZm9UaG91c2FuZHMmJihhLnNUaG91c2FuZHM9YS5zSW5mb1Rob3VzYW5kcyk7KGE9YS5zRGVjaW1hbCkmJmNiKGEpfWZ1bmN0aW9uIGRiKGEpe0EoYSwib3JkZXJpbmciLCJiU29ydCIpO0EoYSwib3JkZXJNdWx0aSIsImJTb3J0TXVsdGkiKTtBKGEsIm9yZGVyQ2xhc3NlcyIsImJTb3J0Q2xhc3NlcyIpO0EoYSwib3JkZXJDZWxsc1RvcCIsImJTb3J0Q2VsbHNUb3AiKTtBKGEsIm9yZGVyIiwiYWFTb3J0aW5nIik7QShhLCJvcmRlckZpeGVkIiwiYWFTb3J0aW5nRml4ZWQiKTtBKGEsInBhZ2luZyIsImJQYWdpbmF0ZSIpO0EoYSwicGFnaW5nVHlwZSIsInNQYWdpbmF0aW9uVHlwZSIpO0EoYSwicGFnZUxlbmd0aCIsImlEaXNwbGF5TGVuZ3RoIik7QShhLCJzZWFyY2hpbmciLCJiRmlsdGVyIik7ImJvb2xlYW4iPT09dHlwZW9mIGEuc1Njcm9sbFgmJihhLnNTY3JvbGxYPWEuc1Njcm9sbFg/IjEwMCUiOiIiKTsiYm9vbGVhbiI9PT10eXBlb2YgYS5zY3JvbGxYJiYoYS5zY3JvbGxYPQphLnNjcm9sbFg/IjEwMCUiOiIiKTtpZihhPWEuYW9TZWFyY2hDb2xzKWZvcih2YXIgYj0wLGM9YS5sZW5ndGg7YjxjO2IrKylhW2JdJiZJKG0ubW9kZWxzLm9TZWFyY2gsYVtiXSl9ZnVuY3Rpb24gZWIoYSl7QShhLCJvcmRlcmFibGUiLCJiU29ydGFibGUiKTtBKGEsIm9yZGVyRGF0YSIsImFEYXRhU29ydCIpO0EoYSwib3JkZXJTZXF1ZW5jZSIsImFzU29ydGluZyIpO0EoYSwib3JkZXJEYXRhVHlwZSIsInNvcnREYXRhVHlwZSIpO3ZhciBiPWEuYURhdGFTb3J0OyJudW1iZXIiPT09dHlwZW9mIGImJiFoLmlzQXJyYXkoYikmJihhLmFEYXRhU29ydD1bYl0pfWZ1bmN0aW9uIGZiKGEpe2lmKCFtLl9fYnJvd3Nlcil7dmFyIGI9e307bS5fX2Jyb3dzZXI9Yjt2YXIgYz1oKCI8ZGl2Lz4iKS5jc3Moe3Bvc2l0aW9uOiJmaXhlZCIsdG9wOjAsbGVmdDotMSpoKEUpLnNjcm9sbExlZnQoKSxoZWlnaHQ6MSx3aWR0aDoxLG92ZXJmbG93OiJoaWRkZW4ifSkuYXBwZW5kKGgoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIiwKdG9wOjEsbGVmdDoxLHdpZHRoOjEwMCxvdmVyZmxvdzoic2Nyb2xsIn0pLmFwcGVuZChoKCI8ZGl2Lz4iKS5jc3Moe3dpZHRoOiIxMDAlIixoZWlnaHQ6MTB9KSkpLmFwcGVuZFRvKCJib2R5IiksZD1jLmNoaWxkcmVuKCksZT1kLmNoaWxkcmVuKCk7Yi5iYXJXaWR0aD1kWzBdLm9mZnNldFdpZHRoLWRbMF0uY2xpZW50V2lkdGg7Yi5iU2Nyb2xsT3ZlcnNpemU9MTAwPT09ZVswXS5vZmZzZXRXaWR0aCYmMTAwIT09ZFswXS5jbGllbnRXaWR0aDtiLmJTY3JvbGxiYXJMZWZ0PTEhPT1NYXRoLnJvdW5kKGUub2Zmc2V0KCkubGVmdCk7Yi5iQm91bmRpbmc9Y1swXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD8hMDohMTtjLnJlbW92ZSgpfWguZXh0ZW5kKGEub0Jyb3dzZXIsbS5fX2Jyb3dzZXIpO2Eub1Njcm9sbC5pQmFyV2lkdGg9bS5fX2Jyb3dzZXIuYmFyV2lkdGh9ZnVuY3Rpb24gZ2IoYSxiLGMsZCxlLGYpe3ZhciBnLGo9ITE7YyE9PWsmJihnPWMsaj0hMCk7Zm9yKDtkIT09CmU7KWEuaGFzT3duUHJvcGVydHkoZCkmJihnPWo/YihnLGFbZF0sZCxhKTphW2RdLGo9ITAsZCs9Zik7cmV0dXJuIGd9ZnVuY3Rpb24gRGEoYSxiKXt2YXIgYz1tLmRlZmF1bHRzLmNvbHVtbixkPWEuYW9Db2x1bW5zLmxlbmd0aCxjPWguZXh0ZW5kKHt9LG0ubW9kZWxzLm9Db2x1bW4sYyx7blRoOmI/YjpHLmNyZWF0ZUVsZW1lbnQoInRoIiksc1RpdGxlOmMuc1RpdGxlP2Muc1RpdGxlOmI/Yi5pbm5lckhUTUw6IiIsYURhdGFTb3J0OmMuYURhdGFTb3J0P2MuYURhdGFTb3J0OltkXSxtRGF0YTpjLm1EYXRhP2MubURhdGE6ZCxpZHg6ZH0pO2EuYW9Db2x1bW5zLnB1c2goYyk7Yz1hLmFvUHJlU2VhcmNoQ29scztjW2RdPWguZXh0ZW5kKHt9LG0ubW9kZWxzLm9TZWFyY2gsY1tkXSk7amEoYSxkLGgoYikuZGF0YSgpKX1mdW5jdGlvbiBqYShhLGIsYyl7dmFyIGI9YS5hb0NvbHVtbnNbYl0sZD1hLm9DbGFzc2VzLGU9aChiLm5UaCk7aWYoIWIuc1dpZHRoT3JpZyl7Yi5zV2lkdGhPcmlnPQplLmF0dHIoIndpZHRoIil8fG51bGw7dmFyIGY9KGUuYXR0cigic3R5bGUiKXx8IiIpLm1hdGNoKC93aWR0aDpccyooXGQrW3B4ZW0lXSspLyk7ZiYmKGIuc1dpZHRoT3JpZz1mWzFdKX1jIT09ayYmbnVsbCE9PWMmJihlYihjKSxJKG0uZGVmYXVsdHMuY29sdW1uLGMpLGMubURhdGFQcm9wIT09ayYmIWMubURhdGEmJihjLm1EYXRhPWMubURhdGFQcm9wKSxjLnNUeXBlJiYoYi5fc01hbnVhbFR5cGU9Yy5zVHlwZSksYy5jbGFzc05hbWUmJiFjLnNDbGFzcyYmKGMuc0NsYXNzPWMuY2xhc3NOYW1lKSxjLnNDbGFzcyYmZS5hZGRDbGFzcyhjLnNDbGFzcyksaC5leHRlbmQoYixjKSxGKGIsYywic1dpZHRoIiwic1dpZHRoT3JpZyIpLGMuaURhdGFTb3J0IT09ayYmKGIuYURhdGFTb3J0PVtjLmlEYXRhU29ydF0pLEYoYixjLCJhRGF0YVNvcnQiKSk7dmFyIGc9Yi5tRGF0YSxqPVEoZyksaT1iLm1SZW5kZXI/UShiLm1SZW5kZXIpOm51bGwsYz1mdW5jdGlvbihhKXtyZXR1cm4ic3RyaW5nIj09PQp0eXBlb2YgYSYmLTEhPT1hLmluZGV4T2YoIkAiKX07Yi5fYkF0dHJTcmM9aC5pc1BsYWluT2JqZWN0KGcpJiYoYyhnLnNvcnQpfHxjKGcudHlwZSl8fGMoZy5maWx0ZXIpKTtiLl9zZXR0ZXI9bnVsbDtiLmZuR2V0RGF0YT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9aihhLGIsayxjKTtyZXR1cm4gaSYmYj9pKGQsYixhLGMpOmR9O2IuZm5TZXREYXRhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUihnKShhLGIsYyl9OyJudW1iZXIiIT09dHlwZW9mIGcmJihhLl9yb3dSZWFkT2JqZWN0PSEwKTthLm9GZWF0dXJlcy5iU29ydHx8KGIuYlNvcnRhYmxlPSExLGUuYWRkQ2xhc3MoZC5zU29ydGFibGVOb25lKSk7YT0tMSE9PWguaW5BcnJheSgiYXNjIixiLmFzU29ydGluZyk7Yz0tMSE9PWguaW5BcnJheSgiZGVzYyIsYi5hc1NvcnRpbmcpOyFiLmJTb3J0YWJsZXx8IWEmJiFjPyhiLnNTb3J0aW5nQ2xhc3M9ZC5zU29ydGFibGVOb25lLGIuc1NvcnRpbmdDbGFzc0pVST0iIik6YSYmIWM/KGIuc1NvcnRpbmdDbGFzcz0KZC5zU29ydGFibGVBc2MsYi5zU29ydGluZ0NsYXNzSlVJPWQuc1NvcnRKVUlBc2NBbGxvd2VkKTohYSYmYz8oYi5zU29ydGluZ0NsYXNzPWQuc1NvcnRhYmxlRGVzYyxiLnNTb3J0aW5nQ2xhc3NKVUk9ZC5zU29ydEpVSURlc2NBbGxvd2VkKTooYi5zU29ydGluZ0NsYXNzPWQuc1NvcnRhYmxlLGIuc1NvcnRpbmdDbGFzc0pVST1kLnNTb3J0SlVJKX1mdW5jdGlvbiBZKGEpe2lmKCExIT09YS5vRmVhdHVyZXMuYkF1dG9XaWR0aCl7dmFyIGI9YS5hb0NvbHVtbnM7RWEoYSk7Zm9yKHZhciBjPTAsZD1iLmxlbmd0aDtjPGQ7YysrKWJbY10ublRoLnN0eWxlLndpZHRoPWJbY10uc1dpZHRofWI9YS5vU2Nyb2xsOygiIiE9PWIuc1l8fCIiIT09Yi5zWCkmJmthKGEpO3IoYSxudWxsLCJjb2x1bW4tc2l6aW5nIixbYV0pfWZ1bmN0aW9uIFooYSxiKXt2YXIgYz1sYShhLCJiVmlzaWJsZSIpO3JldHVybiJudW1iZXIiPT09dHlwZW9mIGNbYl0/Y1tiXTpudWxsfWZ1bmN0aW9uICQoYSxiKXt2YXIgYz0KbGEoYSwiYlZpc2libGUiKSxjPWguaW5BcnJheShiLGMpO3JldHVybi0xIT09Yz9jOm51bGx9ZnVuY3Rpb24gYWEoYSl7dmFyIGI9MDtoLmVhY2goYS5hb0NvbHVtbnMsZnVuY3Rpb24oYSxkKXtkLmJWaXNpYmxlJiYibm9uZSIhPT1oKGQublRoKS5jc3MoImRpc3BsYXkiKSYmYisrfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gbGEoYSxiKXt2YXIgYz1bXTtoLm1hcChhLmFvQ29sdW1ucyxmdW5jdGlvbihhLGUpe2FbYl0mJmMucHVzaChlKX0pO3JldHVybiBjfWZ1bmN0aW9uIEZhKGEpe3ZhciBiPWEuYW9Db2x1bW5zLGM9YS5hb0RhdGEsZD1tLmV4dC50eXBlLmRldGVjdCxlLGYsZyxqLGksaCxsLHEsdDtlPTA7Zm9yKGY9Yi5sZW5ndGg7ZTxmO2UrKylpZihsPWJbZV0sdD1bXSwhbC5zVHlwZSYmbC5fc01hbnVhbFR5cGUpbC5zVHlwZT1sLl9zTWFudWFsVHlwZTtlbHNlIGlmKCFsLnNUeXBlKXtnPTA7Zm9yKGo9ZC5sZW5ndGg7ZzxqO2crKyl7aT0wO2ZvcihoPWMubGVuZ3RoO2k8aDtpKyspe3RbaV09PT0KayYmKHRbaV09QihhLGksZSwidHlwZSIpKTtxPWRbZ10odFtpXSxhKTtpZighcSYmZyE9PWQubGVuZ3RoLTEpYnJlYWs7aWYoImh0bWwiPT09cSlicmVha31pZihxKXtsLnNUeXBlPXE7YnJlYWt9fWwuc1R5cGV8fChsLnNUeXBlPSJzdHJpbmciKX19ZnVuY3Rpb24gaGIoYSxiLGMsZCl7dmFyIGUsZixnLGosaSxuLGw9YS5hb0NvbHVtbnM7aWYoYilmb3IoZT1iLmxlbmd0aC0xOzA8PWU7ZS0tKXtuPWJbZV07dmFyIHE9bi50YXJnZXRzIT09az9uLnRhcmdldHM6bi5hVGFyZ2V0cztoLmlzQXJyYXkocSl8fChxPVtxXSk7Zj0wO2ZvcihnPXEubGVuZ3RoO2Y8ZztmKyspaWYoIm51bWJlciI9PT10eXBlb2YgcVtmXSYmMDw9cVtmXSl7Zm9yKDtsLmxlbmd0aDw9cVtmXTspRGEoYSk7ZChxW2ZdLG4pfWVsc2UgaWYoIm51bWJlciI9PT10eXBlb2YgcVtmXSYmMD5xW2ZdKWQobC5sZW5ndGgrcVtmXSxuKTtlbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIHFbZl0pe2o9MDtmb3IoaT1sLmxlbmd0aDtqPAppO2orKykoIl9hbGwiPT1xW2ZdfHxoKGxbal0ublRoKS5oYXNDbGFzcyhxW2ZdKSkmJmQoaixuKX19aWYoYyl7ZT0wO2ZvcihhPWMubGVuZ3RoO2U8YTtlKyspZChlLGNbZV0pfX1mdW5jdGlvbiBNKGEsYixjLGQpe3ZhciBlPWEuYW9EYXRhLmxlbmd0aCxmPWguZXh0ZW5kKCEwLHt9LG0ubW9kZWxzLm9Sb3cse3NyYzpjPyJkb20iOiJkYXRhIixpZHg6ZX0pO2YuX2FEYXRhPWI7YS5hb0RhdGEucHVzaChmKTtmb3IodmFyIGc9YS5hb0NvbHVtbnMsaj0wLGk9Zy5sZW5ndGg7ajxpO2orKylnW2pdLnNUeXBlPW51bGw7YS5haURpc3BsYXlNYXN0ZXIucHVzaChlKTtiPWEucm93SWRGbihiKTtiIT09ayYmKGEuYUlkc1tiXT1mKTsoY3x8IWEub0ZlYXR1cmVzLmJEZWZlclJlbmRlcikmJkdhKGEsZSxjLGQpO3JldHVybiBlfWZ1bmN0aW9uIG1hKGEsYil7dmFyIGM7YiBpbnN0YW5jZW9mIGh8fChiPWgoYikpO3JldHVybiBiLm1hcChmdW5jdGlvbihiLGUpe2M9SGEoYSxlKTtyZXR1cm4gTShhLApjLmRhdGEsZSxjLmNlbGxzKX0pfWZ1bmN0aW9uIEIoYSxiLGMsZCl7dmFyIGU9YS5pRHJhdyxmPWEuYW9Db2x1bW5zW2NdLGc9YS5hb0RhdGFbYl0uX2FEYXRhLGo9Zi5zRGVmYXVsdENvbnRlbnQsaT1mLmZuR2V0RGF0YShnLGQse3NldHRpbmdzOmEscm93OmIsY29sOmN9KTtpZihpPT09aylyZXR1cm4gYS5pRHJhd0Vycm9yIT1lJiZudWxsPT09aiYmKEooYSwwLCJSZXF1ZXN0ZWQgdW5rbm93biBwYXJhbWV0ZXIgIisoImZ1bmN0aW9uIj09dHlwZW9mIGYubURhdGE/IntmdW5jdGlvbn0iOiInIitmLm1EYXRhKyInIikrIiBmb3Igcm93ICIrYisiLCBjb2x1bW4gIitjLDQpLGEuaURyYXdFcnJvcj1lKSxqO2lmKChpPT09Z3x8bnVsbD09PWkpJiZudWxsIT09aiYmZCE9PWspaT1qO2Vsc2UgaWYoImZ1bmN0aW9uIj09PXR5cGVvZiBpKXJldHVybiBpLmNhbGwoZyk7cmV0dXJuIG51bGw9PT1pJiYiZGlzcGxheSI9PWQ/IiI6aX1mdW5jdGlvbiBpYihhLGIsYyxkKXthLmFvQ29sdW1uc1tjXS5mblNldERhdGEoYS5hb0RhdGFbYl0uX2FEYXRhLApkLHtzZXR0aW5nczphLHJvdzpiLGNvbDpjfSl9ZnVuY3Rpb24gSWEoYSl7cmV0dXJuIGgubWFwKGEubWF0Y2goLyhcXC58W15cLl0pKy9nKXx8WyIiXSxmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9cXFwuL2csIi4iKX0pfWZ1bmN0aW9uIFEoYSl7aWYoaC5pc1BsYWluT2JqZWN0KGEpKXt2YXIgYj17fTtoLmVhY2goYSxmdW5jdGlvbihhLGMpe2MmJihiW2FdPVEoYykpfSk7cmV0dXJuIGZ1bmN0aW9uKGEsYyxmLGcpe3ZhciBqPWJbY118fGIuXztyZXR1cm4gaiE9PWs/aihhLGMsZixnKTphfX1pZihudWxsPT09YSlyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGF9O2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlyZXR1cm4gZnVuY3Rpb24oYixjLGYsZyl7cmV0dXJuIGEoYixjLGYsZyl9O2lmKCJzdHJpbmciPT09dHlwZW9mIGEmJigtMSE9PWEuaW5kZXhPZigiLiIpfHwtMSE9PWEuaW5kZXhPZigiWyIpfHwtMSE9PWEuaW5kZXhPZigiKCIpKSl7dmFyIGM9ZnVuY3Rpb24oYSwKYixmKXt2YXIgZyxqO2lmKCIiIT09Zil7aj1JYShmKTtmb3IodmFyIGk9MCxuPWoubGVuZ3RoO2k8bjtpKyspe2Y9altpXS5tYXRjaChiYSk7Zz1qW2ldLm1hdGNoKFUpO2lmKGYpe2pbaV09altpXS5yZXBsYWNlKGJhLCIiKTsiIiE9PWpbaV0mJihhPWFbaltpXV0pO2c9W107ai5zcGxpY2UoMCxpKzEpO2o9ai5qb2luKCIuIik7aWYoaC5pc0FycmF5KGEpKXtpPTA7Zm9yKG49YS5sZW5ndGg7aTxuO2krKylnLnB1c2goYyhhW2ldLGIsaikpfWE9ZlswXS5zdWJzdHJpbmcoMSxmWzBdLmxlbmd0aC0xKTthPSIiPT09YT9nOmcuam9pbihhKTticmVha31lbHNlIGlmKGcpe2pbaV09altpXS5yZXBsYWNlKFUsIiIpO2E9YVtqW2ldXSgpO2NvbnRpbnVlfWlmKG51bGw9PT1hfHxhW2pbaV1dPT09aylyZXR1cm4gazthPWFbaltpXV19fXJldHVybiBhfTtyZXR1cm4gZnVuY3Rpb24oYixlKXtyZXR1cm4gYyhiLGUsYSl9fXJldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gYlthXX19ZnVuY3Rpb24gUihhKXtpZihoLmlzUGxhaW5PYmplY3QoYSkpcmV0dXJuIFIoYS5fKTsKaWYobnVsbD09PWEpcmV0dXJuIGZ1bmN0aW9uKCl7fTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpcmV0dXJuIGZ1bmN0aW9uKGIsZCxlKXthKGIsInNldCIsZCxlKX07aWYoInN0cmluZyI9PT10eXBlb2YgYSYmKC0xIT09YS5pbmRleE9mKCIuIil8fC0xIT09YS5pbmRleE9mKCJbIil8fC0xIT09YS5pbmRleE9mKCIoIikpKXt2YXIgYj1mdW5jdGlvbihhLGQsZSl7dmFyIGU9SWEoZSksZjtmPWVbZS5sZW5ndGgtMV07Zm9yKHZhciBnLGosaT0wLG49ZS5sZW5ndGgtMTtpPG47aSsrKXtnPWVbaV0ubWF0Y2goYmEpO2o9ZVtpXS5tYXRjaChVKTtpZihnKXtlW2ldPWVbaV0ucmVwbGFjZShiYSwiIik7YVtlW2ldXT1bXTtmPWUuc2xpY2UoKTtmLnNwbGljZSgwLGkrMSk7Zz1mLmpvaW4oIi4iKTtpZihoLmlzQXJyYXkoZCkpe2o9MDtmb3Iobj1kLmxlbmd0aDtqPG47aisrKWY9e30sYihmLGRbal0sZyksYVtlW2ldXS5wdXNoKGYpfWVsc2UgYVtlW2ldXT1kO3JldHVybn1qJiYoZVtpXT1lW2ldLnJlcGxhY2UoVSwKIiIpLGE9YVtlW2ldXShkKSk7aWYobnVsbD09PWFbZVtpXV18fGFbZVtpXV09PT1rKWFbZVtpXV09e307YT1hW2VbaV1dfWlmKGYubWF0Y2goVSkpYVtmLnJlcGxhY2UoVSwiIildKGQpO2Vsc2UgYVtmLnJlcGxhY2UoYmEsIiIpXT1kfTtyZXR1cm4gZnVuY3Rpb24oYyxkKXtyZXR1cm4gYihjLGQsYSl9fXJldHVybiBmdW5jdGlvbihiLGQpe2JbYV09ZH19ZnVuY3Rpb24gSmEoYSl7cmV0dXJuIEQoYS5hb0RhdGEsIl9hRGF0YSIpfWZ1bmN0aW9uIG5hKGEpe2EuYW9EYXRhLmxlbmd0aD0wO2EuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aD0wO2EuYWlEaXNwbGF5Lmxlbmd0aD0wO2EuYUlkcz17fX1mdW5jdGlvbiBvYShhLGIsYyl7Zm9yKHZhciBkPS0xLGU9MCxmPWEubGVuZ3RoO2U8ZjtlKyspYVtlXT09Yj9kPWU6YVtlXT5iJiZhW2VdLS07IC0xIT1kJiZjPT09ayYmYS5zcGxpY2UoZCwxKX1mdW5jdGlvbiBjYShhLGIsYyxkKXt2YXIgZT1hLmFvRGF0YVtiXSxmLGc9ZnVuY3Rpb24oYyxkKXtmb3IoO2MuY2hpbGROb2Rlcy5sZW5ndGg7KWMucmVtb3ZlQ2hpbGQoYy5maXJzdENoaWxkKTsKYy5pbm5lckhUTUw9QihhLGIsZCwiZGlzcGxheSIpfTtpZigiZG9tIj09PWN8fCghY3x8ImF1dG8iPT09YykmJiJkb20iPT09ZS5zcmMpZS5fYURhdGE9SGEoYSxlLGQsZD09PWs/azplLl9hRGF0YSkuZGF0YTtlbHNle3ZhciBqPWUuYW5DZWxscztpZihqKWlmKGQhPT1rKWcoaltkXSxkKTtlbHNle2M9MDtmb3IoZj1qLmxlbmd0aDtjPGY7YysrKWcoaltjXSxjKX19ZS5fYVNvcnREYXRhPW51bGw7ZS5fYUZpbHRlckRhdGE9bnVsbDtnPWEuYW9Db2x1bW5zO2lmKGQhPT1rKWdbZF0uc1R5cGU9bnVsbDtlbHNle2M9MDtmb3IoZj1nLmxlbmd0aDtjPGY7YysrKWdbY10uc1R5cGU9bnVsbDtLYShhLGUpfX1mdW5jdGlvbiBIYShhLGIsYyxkKXt2YXIgZT1bXSxmPWIuZmlyc3RDaGlsZCxnLGosaT0wLG4sbD1hLmFvQ29sdW1ucyxxPWEuX3Jvd1JlYWRPYmplY3QsZD1kIT09az9kOnE/e306W10sdD1mdW5jdGlvbihhLGIpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpe3ZhciBjPWEuaW5kZXhPZigiQCIpOwotMSE9PWMmJihjPWEuc3Vic3RyaW5nKGMrMSksUihhKShkLGIuZ2V0QXR0cmlidXRlKGMpKSl9fSxtPWZ1bmN0aW9uKGEpe2lmKGM9PT1rfHxjPT09aSlqPWxbaV0sbj1oLnRyaW0oYS5pbm5lckhUTUwpLGomJmouX2JBdHRyU3JjPyhSKGoubURhdGEuXykoZCxuKSx0KGoubURhdGEuc29ydCxhKSx0KGoubURhdGEudHlwZSxhKSx0KGoubURhdGEuZmlsdGVyLGEpKTpxPyhqLl9zZXR0ZXJ8fChqLl9zZXR0ZXI9UihqLm1EYXRhKSksai5fc2V0dGVyKGQsbikpOmRbaV09bjtpKyt9O2lmKGYpZm9yKDtmOyl7Zz1mLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7aWYoIlREIj09Z3x8IlRIIj09ZyltKGYpLGUucHVzaChmKTtmPWYubmV4dFNpYmxpbmd9ZWxzZXtlPWIuYW5DZWxscztmPTA7Zm9yKGc9ZS5sZW5ndGg7ZjxnO2YrKyltKGVbZl0pfWlmKGI9Yi5maXJzdENoaWxkP2I6Yi5uVHIpKGI9Yi5nZXRBdHRyaWJ1dGUoImlkIikpJiZSKGEucm93SWQpKGQsYik7cmV0dXJue2RhdGE6ZCxjZWxsczplfX0KZnVuY3Rpb24gR2EoYSxiLGMsZCl7dmFyIGU9YS5hb0RhdGFbYl0sZj1lLl9hRGF0YSxnPVtdLGosaSxuLGwscTtpZihudWxsPT09ZS5uVHIpe2o9Y3x8Ry5jcmVhdGVFbGVtZW50KCJ0ciIpO2UublRyPWo7ZS5hbkNlbGxzPWc7ai5fRFRfUm93SW5kZXg9YjtLYShhLGUpO2w9MDtmb3IocT1hLmFvQ29sdW1ucy5sZW5ndGg7bDxxO2wrKyl7bj1hLmFvQ29sdW1uc1tsXTtpPWM/ZFtsXTpHLmNyZWF0ZUVsZW1lbnQobi5zQ2VsbFR5cGUpO2kuX0RUX0NlbGxJbmRleD17cm93OmIsY29sdW1uOmx9O2cucHVzaChpKTtpZigoIWN8fG4ubVJlbmRlcnx8bi5tRGF0YSE9PWwpJiYoIWguaXNQbGFpbk9iamVjdChuLm1EYXRhKXx8bi5tRGF0YS5fIT09bCsiLmRpc3BsYXkiKSlpLmlubmVySFRNTD1CKGEsYixsLCJkaXNwbGF5Iik7bi5zQ2xhc3MmJihpLmNsYXNzTmFtZSs9IiAiK24uc0NsYXNzKTtuLmJWaXNpYmxlJiYhYz9qLmFwcGVuZENoaWxkKGkpOiFuLmJWaXNpYmxlJiZjJiZpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSk7Cm4uZm5DcmVhdGVkQ2VsbCYmbi5mbkNyZWF0ZWRDZWxsLmNhbGwoYS5vSW5zdGFuY2UsaSxCKGEsYixsKSxmLGIsbCl9cihhLCJhb1Jvd0NyZWF0ZWRDYWxsYmFjayIsbnVsbCxbaixmLGJdKX1lLm5Uci5zZXRBdHRyaWJ1dGUoInJvbGUiLCJyb3ciKX1mdW5jdGlvbiBLYShhLGIpe3ZhciBjPWIublRyLGQ9Yi5fYURhdGE7aWYoYyl7dmFyIGU9YS5yb3dJZEZuKGQpO2UmJihjLmlkPWUpO2QuRFRfUm93Q2xhc3MmJihlPWQuRFRfUm93Q2xhc3Muc3BsaXQoIiAiKSxiLl9fcm93Yz1iLl9fcm93Yz9xYShiLl9fcm93Yy5jb25jYXQoZSkpOmUsaChjKS5yZW1vdmVDbGFzcyhiLl9fcm93Yy5qb2luKCIgIikpLmFkZENsYXNzKGQuRFRfUm93Q2xhc3MpKTtkLkRUX1Jvd0F0dHImJmgoYykuYXR0cihkLkRUX1Jvd0F0dHIpO2QuRFRfUm93RGF0YSYmaChjKS5kYXRhKGQuRFRfUm93RGF0YSl9fWZ1bmN0aW9uIGpiKGEpe3ZhciBiLGMsZCxlLGYsZz1hLm5USGVhZCxqPWEublRGb290LGk9MD09PQpoKCJ0aCwgdGQiLGcpLmxlbmd0aCxuPWEub0NsYXNzZXMsbD1hLmFvQ29sdW1ucztpJiYoZT1oKCI8dHIvPiIpLmFwcGVuZFRvKGcpKTtiPTA7Zm9yKGM9bC5sZW5ndGg7YjxjO2IrKylmPWxbYl0sZD1oKGYublRoKS5hZGRDbGFzcyhmLnNDbGFzcyksaSYmZC5hcHBlbmRUbyhlKSxhLm9GZWF0dXJlcy5iU29ydCYmKGQuYWRkQ2xhc3MoZi5zU29ydGluZ0NsYXNzKSwhMSE9PWYuYlNvcnRhYmxlJiYoZC5hdHRyKCJ0YWJpbmRleCIsYS5pVGFiSW5kZXgpLmF0dHIoImFyaWEtY29udHJvbHMiLGEuc1RhYmxlSWQpLExhKGEsZi5uVGgsYikpKSxmLnNUaXRsZSE9ZFswXS5pbm5lckhUTUwmJmQuaHRtbChmLnNUaXRsZSksTWEoYSwiaGVhZGVyIikoYSxkLGYsbik7aSYmZGEoYS5hb0hlYWRlcixnKTtoKGcpLmZpbmQoIj50ciIpLmF0dHIoInJvbGUiLCJyb3ciKTtoKGcpLmZpbmQoIj50cj50aCwgPnRyPnRkIikuYWRkQ2xhc3Mobi5zSGVhZGVyVEgpO2goaikuZmluZCgiPnRyPnRoLCA+dHI+dGQiKS5hZGRDbGFzcyhuLnNGb290ZXJUSCk7CmlmKG51bGwhPT1qKXthPWEuYW9Gb290ZXJbMF07Yj0wO2ZvcihjPWEubGVuZ3RoO2I8YztiKyspZj1sW2JdLGYublRmPWFbYl0uY2VsbCxmLnNDbGFzcyYmaChmLm5UZikuYWRkQ2xhc3MoZi5zQ2xhc3MpfX1mdW5jdGlvbiBlYShhLGIsYyl7dmFyIGQsZSxmLGc9W10saj1bXSxpPWEuYW9Db2x1bW5zLmxlbmd0aCxuO2lmKGIpe2M9PT1rJiYoYz0hMSk7ZD0wO2ZvcihlPWIubGVuZ3RoO2Q8ZTtkKyspe2dbZF09YltkXS5zbGljZSgpO2dbZF0ublRyPWJbZF0ublRyO2ZvcihmPWktMTswPD1mO2YtLSkhYS5hb0NvbHVtbnNbZl0uYlZpc2libGUmJiFjJiZnW2RdLnNwbGljZShmLDEpO2oucHVzaChbXSl9ZD0wO2ZvcihlPWcubGVuZ3RoO2Q8ZTtkKyspe2lmKGE9Z1tkXS5uVHIpZm9yKDtmPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChmKTtmPTA7Zm9yKGI9Z1tkXS5sZW5ndGg7ZjxiO2YrKylpZihuPWk9MSxqW2RdW2ZdPT09ayl7YS5hcHBlbmRDaGlsZChnW2RdW2ZdLmNlbGwpOwpmb3IoaltkXVtmXT0xO2dbZCtpXSE9PWsmJmdbZF1bZl0uY2VsbD09Z1tkK2ldW2ZdLmNlbGw7KWpbZCtpXVtmXT0xLGkrKztmb3IoO2dbZF1bZituXSE9PWsmJmdbZF1bZl0uY2VsbD09Z1tkXVtmK25dLmNlbGw7KXtmb3IoYz0wO2M8aTtjKyspaltkK2NdW2Yrbl09MTtuKyt9aChnW2RdW2ZdLmNlbGwpLmF0dHIoInJvd3NwYW4iLGkpLmF0dHIoImNvbHNwYW4iLG4pfX19fWZ1bmN0aW9uIE4oYSl7dmFyIGI9cihhLCJhb1ByZURyYXdDYWxsYmFjayIsInByZURyYXciLFthXSk7aWYoLTEhPT1oLmluQXJyYXkoITEsYikpQyhhLCExKTtlbHNle3ZhciBiPVtdLGM9MCxkPWEuYXNTdHJpcGVDbGFzc2VzLGU9ZC5sZW5ndGgsZj1hLm9MYW5ndWFnZSxnPWEuaUluaXREaXNwbGF5U3RhcnQsaj0ic3NwIj09eShhKSxpPWEuYWlEaXNwbGF5O2EuYkRyYXdpbmc9ITA7ZyE9PWsmJi0xIT09ZyYmKGEuX2lEaXNwbGF5U3RhcnQ9aj9nOmc+PWEuZm5SZWNvcmRzRGlzcGxheSgpPzA6ZyxhLmlJbml0RGlzcGxheVN0YXJ0PQotMSk7dmFyIGc9YS5faURpc3BsYXlTdGFydCxuPWEuZm5EaXNwbGF5RW5kKCk7aWYoYS5iRGVmZXJMb2FkaW5nKWEuYkRlZmVyTG9hZGluZz0hMSxhLmlEcmF3KyssQyhhLCExKTtlbHNlIGlmKGope2lmKCFhLmJEZXN0cm95aW5nJiYha2IoYSkpcmV0dXJufWVsc2UgYS5pRHJhdysrO2lmKDAhPT1pLmxlbmd0aCl7Zj1qP2EuYW9EYXRhLmxlbmd0aDpuO2ZvcihqPWo/MDpnO2o8ZjtqKyspe3ZhciBsPWlbal0scT1hLmFvRGF0YVtsXTtudWxsPT09cS5uVHImJkdhKGEsbCk7bD1xLm5UcjtpZigwIT09ZSl7dmFyIHQ9ZFtjJWVdO3EuX3NSb3dTdHJpcGUhPXQmJihoKGwpLnJlbW92ZUNsYXNzKHEuX3NSb3dTdHJpcGUpLmFkZENsYXNzKHQpLHEuX3NSb3dTdHJpcGU9dCl9cihhLCJhb1Jvd0NhbGxiYWNrIixudWxsLFtsLHEuX2FEYXRhLGMsal0pO2IucHVzaChsKTtjKyt9fWVsc2UgYz1mLnNaZXJvUmVjb3JkcywxPT1hLmlEcmF3JiYiYWpheCI9PXkoYSk/Yz1mLnNMb2FkaW5nUmVjb3JkczoKZi5zRW1wdHlUYWJsZSYmMD09PWEuZm5SZWNvcmRzVG90YWwoKSYmKGM9Zi5zRW1wdHlUYWJsZSksYlswXT1oKCI8dHIvPiIseyJjbGFzcyI6ZT9kWzBdOiIifSkuYXBwZW5kKGgoIjx0ZCAvPiIse3ZhbGlnbjoidG9wIixjb2xTcGFuOmFhKGEpLCJjbGFzcyI6YS5vQ2xhc3Nlcy5zUm93RW1wdHl9KS5odG1sKGMpKVswXTtyKGEsImFvSGVhZGVyQ2FsbGJhY2siLCJoZWFkZXIiLFtoKGEublRIZWFkKS5jaGlsZHJlbigidHIiKVswXSxKYShhKSxnLG4saV0pO3IoYSwiYW9Gb290ZXJDYWxsYmFjayIsImZvb3RlciIsW2goYS5uVEZvb3QpLmNoaWxkcmVuKCJ0ciIpWzBdLEphKGEpLGcsbixpXSk7ZD1oKGEublRCb2R5KTtkLmNoaWxkcmVuKCkuZGV0YWNoKCk7ZC5hcHBlbmQoaChiKSk7cihhLCJhb0RyYXdDYWxsYmFjayIsImRyYXciLFthXSk7YS5iU29ydGVkPSExO2EuYkZpbHRlcmVkPSExO2EuYkRyYXdpbmc9ITF9fWZ1bmN0aW9uIFMoYSxiKXt2YXIgYz1hLm9GZWF0dXJlcyxkPWMuYkZpbHRlcjsKYy5iU29ydCYmbGIoYSk7ZD9mYShhLGEub1ByZXZpb3VzU2VhcmNoKTphLmFpRGlzcGxheT1hLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOyEwIT09YiYmKGEuX2lEaXNwbGF5U3RhcnQ9MCk7YS5fZHJhd0hvbGQ9YjtOKGEpO2EuX2RyYXdIb2xkPSExfWZ1bmN0aW9uIG1iKGEpe3ZhciBiPWEub0NsYXNzZXMsYz1oKGEublRhYmxlKSxjPWgoIjxkaXYvPiIpLmluc2VydEJlZm9yZShjKSxkPWEub0ZlYXR1cmVzLGU9aCgiPGRpdi8+Iix7aWQ6YS5zVGFibGVJZCsiX3dyYXBwZXIiLCJjbGFzcyI6Yi5zV3JhcHBlcisoYS5uVEZvb3Q/IiI6IiAiK2Iuc05vRm9vdGVyKX0pO2EubkhvbGRpbmc9Y1swXTthLm5UYWJsZVdyYXBwZXI9ZVswXTthLm5UYWJsZVJlaW5zZXJ0QmVmb3JlPWEublRhYmxlLm5leHRTaWJsaW5nO2Zvcih2YXIgZj1hLnNEb20uc3BsaXQoIiIpLGcsaixpLG4sbCxxLGs9MDtrPGYubGVuZ3RoO2srKyl7Zz1udWxsO2o9ZltrXTtpZigiPCI9PWope2k9aCgiPGRpdi8+IilbMF07Cm49ZltrKzFdO2lmKCInIj09bnx8JyInPT1uKXtsPSIiO2ZvcihxPTI7ZltrK3FdIT1uOylsKz1mW2srcV0scSsrOyJIIj09bD9sPWIuc0pVSUhlYWRlcjoiRiI9PWwmJihsPWIuc0pVSUZvb3Rlcik7LTEhPWwuaW5kZXhPZigiLiIpPyhuPWwuc3BsaXQoIi4iKSxpLmlkPW5bMF0uc3Vic3RyKDEsblswXS5sZW5ndGgtMSksaS5jbGFzc05hbWU9blsxXSk6IiMiPT1sLmNoYXJBdCgwKT9pLmlkPWwuc3Vic3RyKDEsbC5sZW5ndGgtMSk6aS5jbGFzc05hbWU9bDtrKz1xfWUuYXBwZW5kKGkpO2U9aChpKX1lbHNlIGlmKCI+Ij09aillPWUucGFyZW50KCk7ZWxzZSBpZigibCI9PWomJmQuYlBhZ2luYXRlJiZkLmJMZW5ndGhDaGFuZ2UpZz1uYihhKTtlbHNlIGlmKCJmIj09aiYmZC5iRmlsdGVyKWc9b2IoYSk7ZWxzZSBpZigiciI9PWomJmQuYlByb2Nlc3NpbmcpZz1wYihhKTtlbHNlIGlmKCJ0Ij09ailnPXFiKGEpO2Vsc2UgaWYoImkiPT1qJiZkLmJJbmZvKWc9cmIoYSk7ZWxzZSBpZigicCI9PQpqJiZkLmJQYWdpbmF0ZSlnPXNiKGEpO2Vsc2UgaWYoMCE9PW0uZXh0LmZlYXR1cmUubGVuZ3RoKXtpPW0uZXh0LmZlYXR1cmU7cT0wO2ZvcihuPWkubGVuZ3RoO3E8bjtxKyspaWYoaj09aVtxXS5jRmVhdHVyZSl7Zz1pW3FdLmZuSW5pdChhKTticmVha319ZyYmKGk9YS5hYW5GZWF0dXJlcyxpW2pdfHwoaVtqXT1bXSksaVtqXS5wdXNoKGcpLGUuYXBwZW5kKGcpKX1jLnJlcGxhY2VXaXRoKGUpO2EubkhvbGRpbmc9bnVsbH1mdW5jdGlvbiBkYShhLGIpe3ZhciBjPWgoYikuY2hpbGRyZW4oInRyIiksZCxlLGYsZyxqLGksbixsLHEsazthLnNwbGljZSgwLGEubGVuZ3RoKTtmPTA7Zm9yKGk9Yy5sZW5ndGg7ZjxpO2YrKylhLnB1c2goW10pO2Y9MDtmb3IoaT1jLmxlbmd0aDtmPGk7ZisrKXtkPWNbZl07Zm9yKGU9ZC5maXJzdENoaWxkO2U7KXtpZigiVEQiPT1lLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCl8fCJUSCI9PWUubm9kZU5hbWUudG9VcHBlckNhc2UoKSl7bD0xKmUuZ2V0QXR0cmlidXRlKCJjb2xzcGFuIik7CnE9MSplLmdldEF0dHJpYnV0ZSgicm93c3BhbiIpO2w9IWx8fDA9PT1sfHwxPT09bD8xOmw7cT0hcXx8MD09PXF8fDE9PT1xPzE6cTtnPTA7Zm9yKGo9YVtmXTtqW2ddOylnKys7bj1nO2s9MT09PWw/ITA6ITE7Zm9yKGo9MDtqPGw7aisrKWZvcihnPTA7ZzxxO2crKylhW2YrZ11bbitqXT17Y2VsbDplLHVuaXF1ZTprfSxhW2YrZ10ublRyPWR9ZT1lLm5leHRTaWJsaW5nfX19ZnVuY3Rpb24gcmEoYSxiLGMpe3ZhciBkPVtdO2N8fChjPWEuYW9IZWFkZXIsYiYmKGM9W10sZGEoYyxiKSkpO2Zvcih2YXIgYj0wLGU9Yy5sZW5ndGg7YjxlO2IrKylmb3IodmFyIGY9MCxnPWNbYl0ubGVuZ3RoO2Y8ZztmKyspaWYoY1tiXVtmXS51bmlxdWUmJighZFtmXXx8IWEuYlNvcnRDZWxsc1RvcCkpZFtmXT1jW2JdW2ZdLmNlbGw7cmV0dXJuIGR9ZnVuY3Rpb24gc2EoYSxiLGMpe3IoYSwiYW9TZXJ2ZXJQYXJhbXMiLCJzZXJ2ZXJQYXJhbXMiLFtiXSk7aWYoYiYmaC5pc0FycmF5KGIpKXt2YXIgZD17fSwKZT0vKC4qPylcW1xdJC87aC5lYWNoKGIsZnVuY3Rpb24oYSxiKXt2YXIgYz1iLm5hbWUubWF0Y2goZSk7Yz8oYz1jWzBdLGRbY118fChkW2NdPVtdKSxkW2NdLnB1c2goYi52YWx1ZSkpOmRbYi5uYW1lXT1iLnZhbHVlfSk7Yj1kfXZhciBmLGc9YS5hamF4LGo9YS5vSW5zdGFuY2UsaT1mdW5jdGlvbihiKXtyKGEsbnVsbCwieGhyIixbYSxiLGEuanFYSFJdKTtjKGIpfTtpZihoLmlzUGxhaW5PYmplY3QoZykmJmcuZGF0YSl7Zj1nLmRhdGE7dmFyIG49aC5pc0Z1bmN0aW9uKGYpP2YoYixhKTpmLGI9aC5pc0Z1bmN0aW9uKGYpJiZuP246aC5leHRlbmQoITAsYixuKTtkZWxldGUgZy5kYXRhfW49e2RhdGE6YixzdWNjZXNzOmZ1bmN0aW9uKGIpe3ZhciBjPWIuZXJyb3J8fGIuc0Vycm9yO2MmJkooYSwwLGMpO2EuanNvbj1iO2koYil9LGRhdGFUeXBlOiJqc29uIixjYWNoZTohMSx0eXBlOmEuc1NlcnZlck1ldGhvZCxlcnJvcjpmdW5jdGlvbihiLGMpe3ZhciBkPXIoYSxudWxsLCJ4aHIiLApbYSxudWxsLGEuanFYSFJdKTstMT09PWguaW5BcnJheSghMCxkKSYmKCJwYXJzZXJlcnJvciI9PWM/SihhLDAsIkludmFsaWQgSlNPTiByZXNwb25zZSIsMSk6ND09PWIucmVhZHlTdGF0ZSYmSihhLDAsIkFqYXggZXJyb3IiLDcpKTtDKGEsITEpfX07YS5vQWpheERhdGE9YjtyKGEsbnVsbCwicHJlWGhyIixbYSxiXSk7YS5mblNlcnZlckRhdGE/YS5mblNlcnZlckRhdGEuY2FsbChqLGEuc0FqYXhTb3VyY2UsaC5tYXAoYixmdW5jdGlvbihhLGIpe3JldHVybntuYW1lOmIsdmFsdWU6YX19KSxpLGEpOmEuc0FqYXhTb3VyY2V8fCJzdHJpbmciPT09dHlwZW9mIGc/YS5qcVhIUj1oLmFqYXgoaC5leHRlbmQobix7dXJsOmd8fGEuc0FqYXhTb3VyY2V9KSk6aC5pc0Z1bmN0aW9uKGcpP2EuanFYSFI9Zy5jYWxsKGosYixpLGEpOihhLmpxWEhSPWguYWpheChoLmV4dGVuZChuLGcpKSxnLmRhdGE9Zil9ZnVuY3Rpb24ga2IoYSl7cmV0dXJuIGEuYkFqYXhEYXRhR2V0PyhhLmlEcmF3KyssQyhhLAohMCksc2EoYSx0YihhKSxmdW5jdGlvbihiKXt1YihhLGIpfSksITEpOiEwfWZ1bmN0aW9uIHRiKGEpe3ZhciBiPWEuYW9Db2x1bW5zLGM9Yi5sZW5ndGgsZD1hLm9GZWF0dXJlcyxlPWEub1ByZXZpb3VzU2VhcmNoLGY9YS5hb1ByZVNlYXJjaENvbHMsZyxqPVtdLGksbixsLGs9VihhKTtnPWEuX2lEaXNwbGF5U3RhcnQ7aT0hMSE9PWQuYlBhZ2luYXRlP2EuX2lEaXNwbGF5TGVuZ3RoOi0xO3ZhciB0PWZ1bmN0aW9uKGEsYil7ai5wdXNoKHtuYW1lOmEsdmFsdWU6Yn0pfTt0KCJzRWNobyIsYS5pRHJhdyk7dCgiaUNvbHVtbnMiLGMpO3QoInNDb2x1bW5zIixEKGIsInNOYW1lIikuam9pbigiLCIpKTt0KCJpRGlzcGxheVN0YXJ0IixnKTt0KCJpRGlzcGxheUxlbmd0aCIsaSk7dmFyIHBhPXtkcmF3OmEuaURyYXcsY29sdW1uczpbXSxvcmRlcjpbXSxzdGFydDpnLGxlbmd0aDppLHNlYXJjaDp7dmFsdWU6ZS5zU2VhcmNoLHJlZ2V4OmUuYlJlZ2V4fX07Zm9yKGc9MDtnPGM7ZysrKW49YltnXSwKbD1mW2ddLGk9ImZ1bmN0aW9uIj09dHlwZW9mIG4ubURhdGE/ImZ1bmN0aW9uIjpuLm1EYXRhLHBhLmNvbHVtbnMucHVzaCh7ZGF0YTppLG5hbWU6bi5zTmFtZSxzZWFyY2hhYmxlOm4uYlNlYXJjaGFibGUsb3JkZXJhYmxlOm4uYlNvcnRhYmxlLHNlYXJjaDp7dmFsdWU6bC5zU2VhcmNoLHJlZ2V4OmwuYlJlZ2V4fX0pLHQoIm1EYXRhUHJvcF8iK2csaSksZC5iRmlsdGVyJiYodCgic1NlYXJjaF8iK2csbC5zU2VhcmNoKSx0KCJiUmVnZXhfIitnLGwuYlJlZ2V4KSx0KCJiU2VhcmNoYWJsZV8iK2csbi5iU2VhcmNoYWJsZSkpLGQuYlNvcnQmJnQoImJTb3J0YWJsZV8iK2csbi5iU29ydGFibGUpO2QuYkZpbHRlciYmKHQoInNTZWFyY2giLGUuc1NlYXJjaCksdCgiYlJlZ2V4IixlLmJSZWdleCkpO2QuYlNvcnQmJihoLmVhY2goayxmdW5jdGlvbihhLGIpe3BhLm9yZGVyLnB1c2goe2NvbHVtbjpiLmNvbCxkaXI6Yi5kaXJ9KTt0KCJpU29ydENvbF8iK2EsYi5jb2wpO3QoInNTb3J0RGlyXyIrCmEsYi5kaXIpfSksdCgiaVNvcnRpbmdDb2xzIixrLmxlbmd0aCkpO2I9bS5leHQubGVnYWN5LmFqYXg7cmV0dXJuIG51bGw9PT1iP2Euc0FqYXhTb3VyY2U/ajpwYTpiP2o6cGF9ZnVuY3Rpb24gdWIoYSxiKXt2YXIgYz10YShhLGIpLGQ9Yi5zRWNobyE9PWs/Yi5zRWNobzpiLmRyYXcsZT1iLmlUb3RhbFJlY29yZHMhPT1rP2IuaVRvdGFsUmVjb3JkczpiLnJlY29yZHNUb3RhbCxmPWIuaVRvdGFsRGlzcGxheVJlY29yZHMhPT1rP2IuaVRvdGFsRGlzcGxheVJlY29yZHM6Yi5yZWNvcmRzRmlsdGVyZWQ7aWYoZCl7aWYoMSpkPGEuaURyYXcpcmV0dXJuO2EuaURyYXc9MSpkfW5hKGEpO2EuX2lSZWNvcmRzVG90YWw9cGFyc2VJbnQoZSwxMCk7YS5faVJlY29yZHNEaXNwbGF5PXBhcnNlSW50KGYsMTApO2Q9MDtmb3IoZT1jLmxlbmd0aDtkPGU7ZCsrKU0oYSxjW2RdKTthLmFpRGlzcGxheT1hLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpO2EuYkFqYXhEYXRhR2V0PSExO04oYSk7YS5fYkluaXRDb21wbGV0ZXx8CnVhKGEsYik7YS5iQWpheERhdGFHZXQ9ITA7QyhhLCExKX1mdW5jdGlvbiB0YShhLGIpe3ZhciBjPWguaXNQbGFpbk9iamVjdChhLmFqYXgpJiZhLmFqYXguZGF0YVNyYyE9PWs/YS5hamF4LmRhdGFTcmM6YS5zQWpheERhdGFQcm9wO3JldHVybiJkYXRhIj09PWM/Yi5hYURhdGF8fGJbY106IiIhPT1jP1EoYykoYik6Yn1mdW5jdGlvbiBvYihhKXt2YXIgYj1hLm9DbGFzc2VzLGM9YS5zVGFibGVJZCxkPWEub0xhbmd1YWdlLGU9YS5vUHJldmlvdXNTZWFyY2gsZj1hLmFhbkZlYXR1cmVzLGc9JzxpbnB1dCB0eXBlPSJzZWFyY2giIGNsYXNzPSInK2Iuc0ZpbHRlcklucHV0KyciLz4nLGo9ZC5zU2VhcmNoLGo9ai5tYXRjaCgvX0lOUFVUXy8pP2oucmVwbGFjZSgiX0lOUFVUXyIsZyk6aitnLGI9aCgiPGRpdi8+Iix7aWQ6IWYuZj9jKyJfZmlsdGVyIjpudWxsLCJjbGFzcyI6Yi5zRmlsdGVyfSkuYXBwZW5kKGgoIjxsYWJlbC8+IikuYXBwZW5kKGopKSxmPWZ1bmN0aW9uKCl7dmFyIGI9IXRoaXMudmFsdWU/CiIiOnRoaXMudmFsdWU7YiE9ZS5zU2VhcmNoJiYoZmEoYSx7c1NlYXJjaDpiLGJSZWdleDplLmJSZWdleCxiU21hcnQ6ZS5iU21hcnQsYkNhc2VJbnNlbnNpdGl2ZTplLmJDYXNlSW5zZW5zaXRpdmV9KSxhLl9pRGlzcGxheVN0YXJ0PTAsTihhKSl9LGc9bnVsbCE9PWEuc2VhcmNoRGVsYXk/YS5zZWFyY2hEZWxheToic3NwIj09PXkoYSk/NDAwOjAsaT1oKCJpbnB1dCIsYikudmFsKGUuc1NlYXJjaCkuYXR0cigicGxhY2Vob2xkZXIiLGQuc1NlYXJjaFBsYWNlaG9sZGVyKS5vbigia2V5dXAuRFQgc2VhcmNoLkRUIGlucHV0LkRUIHBhc3RlLkRUIGN1dC5EVCIsZz9OYShmLGcpOmYpLm9uKCJrZXlwcmVzcy5EVCIsZnVuY3Rpb24oYSl7aWYoMTM9PWEua2V5Q29kZSlyZXR1cm4hMX0pLmF0dHIoImFyaWEtY29udHJvbHMiLGMpO2goYS5uVGFibGUpLm9uKCJzZWFyY2guZHQuRFQiLGZ1bmN0aW9uKGIsYyl7aWYoYT09PWMpdHJ5e2lbMF0hPT1HLmFjdGl2ZUVsZW1lbnQmJmkudmFsKGUuc1NlYXJjaCl9Y2F0Y2goZCl7fX0pOwpyZXR1cm4gYlswXX1mdW5jdGlvbiBmYShhLGIsYyl7dmFyIGQ9YS5vUHJldmlvdXNTZWFyY2gsZT1hLmFvUHJlU2VhcmNoQ29scyxmPWZ1bmN0aW9uKGEpe2Quc1NlYXJjaD1hLnNTZWFyY2g7ZC5iUmVnZXg9YS5iUmVnZXg7ZC5iU21hcnQ9YS5iU21hcnQ7ZC5iQ2FzZUluc2Vuc2l0aXZlPWEuYkNhc2VJbnNlbnNpdGl2ZX07RmEoYSk7aWYoInNzcCIhPXkoYSkpe3ZiKGEsYi5zU2VhcmNoLGMsYi5iRXNjYXBlUmVnZXghPT1rPyFiLmJFc2NhcGVSZWdleDpiLmJSZWdleCxiLmJTbWFydCxiLmJDYXNlSW5zZW5zaXRpdmUpO2YoYik7Zm9yKGI9MDtiPGUubGVuZ3RoO2IrKyl3YihhLGVbYl0uc1NlYXJjaCxiLGVbYl0uYkVzY2FwZVJlZ2V4IT09az8hZVtiXS5iRXNjYXBlUmVnZXg6ZVtiXS5iUmVnZXgsZVtiXS5iU21hcnQsZVtiXS5iQ2FzZUluc2Vuc2l0aXZlKTt4YihhKX1lbHNlIGYoYik7YS5iRmlsdGVyZWQ9ITA7cihhLG51bGwsInNlYXJjaCIsW2FdKX1mdW5jdGlvbiB4YihhKXtmb3IodmFyIGI9Cm0uZXh0LnNlYXJjaCxjPWEuYWlEaXNwbGF5LGQsZSxmPTAsZz1iLmxlbmd0aDtmPGc7ZisrKXtmb3IodmFyIGo9W10saT0wLG49Yy5sZW5ndGg7aTxuO2krKyllPWNbaV0sZD1hLmFvRGF0YVtlXSxiW2ZdKGEsZC5fYUZpbHRlckRhdGEsZSxkLl9hRGF0YSxpKSYmai5wdXNoKGUpO2MubGVuZ3RoPTA7aC5tZXJnZShjLGopfX1mdW5jdGlvbiB3YihhLGIsYyxkLGUsZil7aWYoIiIhPT1iKXtmb3IodmFyIGc9W10saj1hLmFpRGlzcGxheSxkPU9hKGIsZCxlLGYpLGU9MDtlPGoubGVuZ3RoO2UrKyliPWEuYW9EYXRhW2pbZV1dLl9hRmlsdGVyRGF0YVtjXSxkLnRlc3QoYikmJmcucHVzaChqW2VdKTthLmFpRGlzcGxheT1nfX1mdW5jdGlvbiB2YihhLGIsYyxkLGUsZil7dmFyIGQ9T2EoYixkLGUsZiksZj1hLm9QcmV2aW91c1NlYXJjaC5zU2VhcmNoLGc9YS5haURpc3BsYXlNYXN0ZXIsaixlPVtdOzAhPT1tLmV4dC5zZWFyY2gubGVuZ3RoJiYoYz0hMCk7aj15YihhKTtpZigwPj1iLmxlbmd0aClhLmFpRGlzcGxheT0KZy5zbGljZSgpO2Vsc2V7aWYoanx8Y3x8Zi5sZW5ndGg+Yi5sZW5ndGh8fDAhPT1iLmluZGV4T2YoZil8fGEuYlNvcnRlZClhLmFpRGlzcGxheT1nLnNsaWNlKCk7Yj1hLmFpRGlzcGxheTtmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKWQudGVzdChhLmFvRGF0YVtiW2NdXS5fc0ZpbHRlclJvdykmJmUucHVzaChiW2NdKTthLmFpRGlzcGxheT1lfX1mdW5jdGlvbiBPYShhLGIsYyxkKXthPWI/YTpQYShhKTtjJiYoYT0iXig/PS4qPyIraC5tYXAoYS5tYXRjaCgvIlteIl0rInxbXiBdKy9nKXx8WyIiXSxmdW5jdGlvbihhKXtpZignIic9PT1hLmNoYXJBdCgwKSl2YXIgYj1hLm1hdGNoKC9eIiguKikiJC8pLGE9Yj9iWzFdOmE7cmV0dXJuIGEucmVwbGFjZSgnIicsIiIpfSkuam9pbigiKSg/PS4qPyIpKyIpLiokIik7cmV0dXJuIFJlZ0V4cChhLGQ/ImkiOiIiKX1mdW5jdGlvbiB5YihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjLGQsZSxmLGcsaixpLGgsbD1tLmV4dC50eXBlLnNlYXJjaDtjPSExOwpkPTA7Zm9yKGY9YS5hb0RhdGEubGVuZ3RoO2Q8ZjtkKyspaWYoaD1hLmFvRGF0YVtkXSwhaC5fYUZpbHRlckRhdGEpe2o9W107ZT0wO2ZvcihnPWIubGVuZ3RoO2U8ZztlKyspYz1iW2VdLGMuYlNlYXJjaGFibGU/KGk9QihhLGQsZSwiZmlsdGVyIiksbFtjLnNUeXBlXSYmKGk9bFtjLnNUeXBlXShpKSksbnVsbD09PWkmJihpPSIiKSwic3RyaW5nIiE9PXR5cGVvZiBpJiZpLnRvU3RyaW5nJiYoaT1pLnRvU3RyaW5nKCkpKTppPSIiLGkuaW5kZXhPZiYmLTEhPT1pLmluZGV4T2YoIiYiKSYmKHZhLmlubmVySFRNTD1pLGk9V2I/dmEudGV4dENvbnRlbnQ6dmEuaW5uZXJUZXh0KSxpLnJlcGxhY2UmJihpPWkucmVwbGFjZSgvW1xyXG5dL2csIiIpKSxqLnB1c2goaSk7aC5fYUZpbHRlckRhdGE9ajtoLl9zRmlsdGVyUm93PWouam9pbigiICAiKTtjPSEwfXJldHVybiBjfWZ1bmN0aW9uIHpiKGEpe3JldHVybntzZWFyY2g6YS5zU2VhcmNoLHNtYXJ0OmEuYlNtYXJ0LHJlZ2V4OmEuYlJlZ2V4LApjYXNlSW5zZW5zaXRpdmU6YS5iQ2FzZUluc2Vuc2l0aXZlfX1mdW5jdGlvbiBBYihhKXtyZXR1cm57c1NlYXJjaDphLnNlYXJjaCxiU21hcnQ6YS5zbWFydCxiUmVnZXg6YS5yZWdleCxiQ2FzZUluc2Vuc2l0aXZlOmEuY2FzZUluc2Vuc2l0aXZlfX1mdW5jdGlvbiByYihhKXt2YXIgYj1hLnNUYWJsZUlkLGM9YS5hYW5GZWF0dXJlcy5pLGQ9aCgiPGRpdi8+Iix7ImNsYXNzIjphLm9DbGFzc2VzLnNJbmZvLGlkOiFjP2IrIl9pbmZvIjpudWxsfSk7Y3x8KGEuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46QmIsc05hbWU6ImluZm9ybWF0aW9uIn0pLGQuYXR0cigicm9sZSIsInN0YXR1cyIpLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpLGgoYS5uVGFibGUpLmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLGIrIl9pbmZvIikpO3JldHVybiBkWzBdfWZ1bmN0aW9uIEJiKGEpe3ZhciBiPWEuYWFuRmVhdHVyZXMuaTtpZigwIT09Yi5sZW5ndGgpe3ZhciBjPWEub0xhbmd1YWdlLGQ9YS5faURpc3BsYXlTdGFydCsKMSxlPWEuZm5EaXNwbGF5RW5kKCksZj1hLmZuUmVjb3Jkc1RvdGFsKCksZz1hLmZuUmVjb3Jkc0Rpc3BsYXkoKSxqPWc/Yy5zSW5mbzpjLnNJbmZvRW1wdHk7ZyE9PWYmJihqKz0iICIrYy5zSW5mb0ZpbHRlcmVkKTtqKz1jLnNJbmZvUG9zdEZpeDtqPUNiKGEsaik7Yz1jLmZuSW5mb0NhbGxiYWNrO251bGwhPT1jJiYoaj1jLmNhbGwoYS5vSW5zdGFuY2UsYSxkLGUsZixnLGopKTtoKGIpLmh0bWwoail9fWZ1bmN0aW9uIENiKGEsYil7dmFyIGM9YS5mbkZvcm1hdE51bWJlcixkPWEuX2lEaXNwbGF5U3RhcnQrMSxlPWEuX2lEaXNwbGF5TGVuZ3RoLGY9YS5mblJlY29yZHNEaXNwbGF5KCksZz0tMT09PWU7cmV0dXJuIGIucmVwbGFjZSgvX1NUQVJUXy9nLGMuY2FsbChhLGQpKS5yZXBsYWNlKC9fRU5EXy9nLGMuY2FsbChhLGEuZm5EaXNwbGF5RW5kKCkpKS5yZXBsYWNlKC9fTUFYXy9nLGMuY2FsbChhLGEuZm5SZWNvcmRzVG90YWwoKSkpLnJlcGxhY2UoL19UT1RBTF8vZyxjLmNhbGwoYSwKZikpLnJlcGxhY2UoL19QQUdFXy9nLGMuY2FsbChhLGc/MTpNYXRoLmNlaWwoZC9lKSkpLnJlcGxhY2UoL19QQUdFU18vZyxjLmNhbGwoYSxnPzE6TWF0aC5jZWlsKGYvZSkpKX1mdW5jdGlvbiBnYShhKXt2YXIgYixjLGQ9YS5pSW5pdERpc3BsYXlTdGFydCxlPWEuYW9Db2x1bW5zLGY7Yz1hLm9GZWF0dXJlczt2YXIgZz1hLmJEZWZlckxvYWRpbmc7aWYoYS5iSW5pdGlhbGlzZWQpe21iKGEpO2piKGEpO2VhKGEsYS5hb0hlYWRlcik7ZWEoYSxhLmFvRm9vdGVyKTtDKGEsITApO2MuYkF1dG9XaWR0aCYmRWEoYSk7Yj0wO2ZvcihjPWUubGVuZ3RoO2I8YztiKyspZj1lW2JdLGYuc1dpZHRoJiYoZi5uVGguc3R5bGUud2lkdGg9dihmLnNXaWR0aCkpO3IoYSxudWxsLCJwcmVJbml0IixbYV0pO1MoYSk7ZT15KGEpO2lmKCJzc3AiIT1lfHxnKSJhamF4Ij09ZT9zYShhLFtdLGZ1bmN0aW9uKGMpe3ZhciBmPXRhKGEsYyk7Zm9yKGI9MDtiPGYubGVuZ3RoO2IrKylNKGEsZltiXSk7YS5pSW5pdERpc3BsYXlTdGFydD0KZDtTKGEpO0MoYSwhMSk7dWEoYSxjKX0sYSk6KEMoYSwhMSksdWEoYSkpfWVsc2Ugc2V0VGltZW91dChmdW5jdGlvbigpe2dhKGEpfSwyMDApfWZ1bmN0aW9uIHVhKGEsYil7YS5fYkluaXRDb21wbGV0ZT0hMDsoYnx8YS5vSW5pdC5hYURhdGEpJiZZKGEpO3IoYSxudWxsLCJwbHVnaW4taW5pdCIsW2EsYl0pO3IoYSwiYW9Jbml0Q29tcGxldGUiLCJpbml0IixbYSxiXSl9ZnVuY3Rpb24gUWEoYSxiKXt2YXIgYz1wYXJzZUludChiLDEwKTthLl9pRGlzcGxheUxlbmd0aD1jO1JhKGEpO3IoYSxudWxsLCJsZW5ndGgiLFthLGNdKX1mdW5jdGlvbiBuYihhKXtmb3IodmFyIGI9YS5vQ2xhc3NlcyxjPWEuc1RhYmxlSWQsZD1hLmFMZW5ndGhNZW51LGU9aC5pc0FycmF5KGRbMF0pLGY9ZT9kWzBdOmQsZD1lP2RbMV06ZCxlPWgoIjxzZWxlY3QvPiIse25hbWU6YysiX2xlbmd0aCIsImFyaWEtY29udHJvbHMiOmMsImNsYXNzIjpiLnNMZW5ndGhTZWxlY3R9KSxnPTAsaj1mLmxlbmd0aDtnPGo7ZysrKWVbMF1bZ109Cm5ldyBPcHRpb24oIm51bWJlciI9PT10eXBlb2YgZFtnXT9hLmZuRm9ybWF0TnVtYmVyKGRbZ10pOmRbZ10sZltnXSk7dmFyIGk9aCgiPGRpdj48bGFiZWwvPjwvZGl2PiIpLmFkZENsYXNzKGIuc0xlbmd0aCk7YS5hYW5GZWF0dXJlcy5sfHwoaVswXS5pZD1jKyJfbGVuZ3RoIik7aS5jaGlsZHJlbigpLmFwcGVuZChhLm9MYW5ndWFnZS5zTGVuZ3RoTWVudS5yZXBsYWNlKCJfTUVOVV8iLGVbMF0ub3V0ZXJIVE1MKSk7aCgic2VsZWN0IixpKS52YWwoYS5faURpc3BsYXlMZW5ndGgpLm9uKCJjaGFuZ2UuRFQiLGZ1bmN0aW9uKCl7UWEoYSxoKHRoaXMpLnZhbCgpKTtOKGEpfSk7aChhLm5UYWJsZSkub24oImxlbmd0aC5kdC5EVCIsZnVuY3Rpb24oYixjLGQpe2E9PT1jJiZoKCJzZWxlY3QiLGkpLnZhbChkKX0pO3JldHVybiBpWzBdfWZ1bmN0aW9uIHNiKGEpe3ZhciBiPWEuc1BhZ2luYXRpb25UeXBlLGM9bS5leHQucGFnZXJbYl0sZD0iZnVuY3Rpb24iPT09dHlwZW9mIGMsZT1mdW5jdGlvbihhKXtOKGEpfSwKYj1oKCI8ZGl2Lz4iKS5hZGRDbGFzcyhhLm9DbGFzc2VzLnNQYWdpbmcrYilbMF0sZj1hLmFhbkZlYXR1cmVzO2R8fGMuZm5Jbml0KGEsYixlKTtmLnB8fChiLmlkPWEuc1RhYmxlSWQrIl9wYWdpbmF0ZSIsYS5hb0RyYXdDYWxsYmFjay5wdXNoKHtmbjpmdW5jdGlvbihhKXtpZihkKXt2YXIgYj1hLl9pRGlzcGxheVN0YXJ0LGk9YS5faURpc3BsYXlMZW5ndGgsaD1hLmZuUmVjb3Jkc0Rpc3BsYXkoKSxsPS0xPT09aSxiPWw/MDpNYXRoLmNlaWwoYi9pKSxpPWw/MTpNYXRoLmNlaWwoaC9pKSxoPWMoYixpKSxrLGw9MDtmb3Ioaz1mLnAubGVuZ3RoO2w8aztsKyspTWEoYSwicGFnZUJ1dHRvbiIpKGEsZi5wW2xdLGwsaCxiLGkpfWVsc2UgYy5mblVwZGF0ZShhLGUpfSxzTmFtZToicGFnaW5hdGlvbiJ9KSk7cmV0dXJuIGJ9ZnVuY3Rpb24gU2EoYSxiLGMpe3ZhciBkPWEuX2lEaXNwbGF5U3RhcnQsZT1hLl9pRGlzcGxheUxlbmd0aCxmPWEuZm5SZWNvcmRzRGlzcGxheSgpOzA9PT1mfHwtMT09PQplP2Q9MDoibnVtYmVyIj09PXR5cGVvZiBiPyhkPWIqZSxkPmYmJihkPTApKToiZmlyc3QiPT1iP2Q9MDoicHJldmlvdXMiPT1iPyhkPTA8PWU/ZC1lOjAsMD5kJiYoZD0wKSk6Im5leHQiPT1iP2QrZTxmJiYoZCs9ZSk6Imxhc3QiPT1iP2Q9TWF0aC5mbG9vcigoZi0xKS9lKSplOkooYSwwLCJVbmtub3duIHBhZ2luZyBhY3Rpb246ICIrYiw1KTtiPWEuX2lEaXNwbGF5U3RhcnQhPT1kO2EuX2lEaXNwbGF5U3RhcnQ9ZDtiJiYocihhLG51bGwsInBhZ2UiLFthXSksYyYmTihhKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gcGIoYSl7cmV0dXJuIGgoIjxkaXYvPiIse2lkOiFhLmFhbkZlYXR1cmVzLnI/YS5zVGFibGVJZCsiX3Byb2Nlc3NpbmciOm51bGwsImNsYXNzIjphLm9DbGFzc2VzLnNQcm9jZXNzaW5nfSkuaHRtbChhLm9MYW5ndWFnZS5zUHJvY2Vzc2luZykuaW5zZXJ0QmVmb3JlKGEublRhYmxlKVswXX1mdW5jdGlvbiBDKGEsYil7YS5vRmVhdHVyZXMuYlByb2Nlc3NpbmcmJmgoYS5hYW5GZWF0dXJlcy5yKS5jc3MoImRpc3BsYXkiLApiPyJibG9jayI6Im5vbmUiKTtyKGEsbnVsbCwicHJvY2Vzc2luZyIsW2EsYl0pfWZ1bmN0aW9uIHFiKGEpe3ZhciBiPWgoYS5uVGFibGUpO2IuYXR0cigicm9sZSIsImdyaWQiKTt2YXIgYz1hLm9TY3JvbGw7aWYoIiI9PT1jLnNYJiYiIj09PWMuc1kpcmV0dXJuIGEublRhYmxlO3ZhciBkPWMuc1gsZT1jLnNZLGY9YS5vQ2xhc3NlcyxnPWIuY2hpbGRyZW4oImNhcHRpb24iKSxqPWcubGVuZ3RoP2dbMF0uX2NhcHRpb25TaWRlOm51bGwsaT1oKGJbMF0uY2xvbmVOb2RlKCExKSksbj1oKGJbMF0uY2xvbmVOb2RlKCExKSksbD1iLmNoaWxkcmVuKCJ0Zm9vdCIpO2wubGVuZ3RofHwobD1udWxsKTtpPWgoIjxkaXYvPiIseyJjbGFzcyI6Zi5zU2Nyb2xsV3JhcHBlcn0pLmFwcGVuZChoKCI8ZGl2Lz4iLHsiY2xhc3MiOmYuc1Njcm9sbEhlYWR9KS5jc3Moe292ZXJmbG93OiJoaWRkZW4iLHBvc2l0aW9uOiJyZWxhdGl2ZSIsYm9yZGVyOjAsd2lkdGg6ZD8hZD9udWxsOnYoZCk6IjEwMCUifSkuYXBwZW5kKGgoIjxkaXYvPiIsCnsiY2xhc3MiOmYuc1Njcm9sbEhlYWRJbm5lcn0pLmNzcyh7ImJveC1zaXppbmciOiJjb250ZW50LWJveCIsd2lkdGg6Yy5zWElubmVyfHwiMTAwJSJ9KS5hcHBlbmQoaS5yZW1vdmVBdHRyKCJpZCIpLmNzcygibWFyZ2luLWxlZnQiLDApLmFwcGVuZCgidG9wIj09PWo/ZzpudWxsKS5hcHBlbmQoYi5jaGlsZHJlbigidGhlYWQiKSkpKSkuYXBwZW5kKGgoIjxkaXYvPiIseyJjbGFzcyI6Zi5zU2Nyb2xsQm9keX0pLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiYXV0byIsd2lkdGg6IWQ/bnVsbDp2KGQpfSkuYXBwZW5kKGIpKTtsJiZpLmFwcGVuZChoKCI8ZGl2Lz4iLHsiY2xhc3MiOmYuc1Njcm9sbEZvb3R9KS5jc3Moe292ZXJmbG93OiJoaWRkZW4iLGJvcmRlcjowLHdpZHRoOmQ/IWQ/bnVsbDp2KGQpOiIxMDAlIn0pLmFwcGVuZChoKCI8ZGl2Lz4iLHsiY2xhc3MiOmYuc1Njcm9sbEZvb3RJbm5lcn0pLmFwcGVuZChuLnJlbW92ZUF0dHIoImlkIikuY3NzKCJtYXJnaW4tbGVmdCIsCjApLmFwcGVuZCgiYm90dG9tIj09PWo/ZzpudWxsKS5hcHBlbmQoYi5jaGlsZHJlbigidGZvb3QiKSkpKSk7dmFyIGI9aS5jaGlsZHJlbigpLGs9YlswXSxmPWJbMV0sdD1sP2JbMl06bnVsbDtpZihkKWgoZikub24oInNjcm9sbC5EVCIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLnNjcm9sbExlZnQ7ay5zY3JvbGxMZWZ0PWE7bCYmKHQuc2Nyb2xsTGVmdD1hKX0pO2goZikuY3NzKGUmJmMuYkNvbGxhcHNlPyJtYXgtaGVpZ2h0IjoiaGVpZ2h0IixlKTthLm5TY3JvbGxIZWFkPWs7YS5uU2Nyb2xsQm9keT1mO2EublNjcm9sbEZvb3Q9dDthLmFvRHJhd0NhbGxiYWNrLnB1c2goe2ZuOmthLHNOYW1lOiJzY3JvbGxpbmcifSk7cmV0dXJuIGlbMF19ZnVuY3Rpb24ga2EoYSl7dmFyIGI9YS5vU2Nyb2xsLGM9Yi5zWCxkPWIuc1hJbm5lcixlPWIuc1ksYj1iLmlCYXJXaWR0aCxmPWgoYS5uU2Nyb2xsSGVhZCksZz1mWzBdLnN0eWxlLGo9Zi5jaGlsZHJlbigiZGl2IiksaT1qWzBdLnN0eWxlLG49ai5jaGlsZHJlbigidGFibGUiKSwKaj1hLm5TY3JvbGxCb2R5LGw9aChqKSxxPWouc3R5bGUsdD1oKGEublNjcm9sbEZvb3QpLmNoaWxkcmVuKCJkaXYiKSxtPXQuY2hpbGRyZW4oInRhYmxlIiksbz1oKGEublRIZWFkKSxwPWgoYS5uVGFibGUpLHM9cFswXSxyPXMuc3R5bGUsdT1hLm5URm9vdD9oKGEublRGb290KTpudWxsLHg9YS5vQnJvd3NlcixUPXguYlNjcm9sbE92ZXJzaXplLFhiPUQoYS5hb0NvbHVtbnMsIm5UaCIpLE8sSyxQLHcsVGE9W10seT1bXSx6PVtdLEE9W10sQixDPWZ1bmN0aW9uKGEpe2E9YS5zdHlsZTthLnBhZGRpbmdUb3A9IjAiO2EucGFkZGluZ0JvdHRvbT0iMCI7YS5ib3JkZXJUb3BXaWR0aD0iMCI7YS5ib3JkZXJCb3R0b21XaWR0aD0iMCI7YS5oZWlnaHQ9MH07Sz1qLnNjcm9sbEhlaWdodD5qLmNsaWVudEhlaWdodDtpZihhLnNjcm9sbEJhclZpcyE9PUsmJmEuc2Nyb2xsQmFyVmlzIT09aylhLnNjcm9sbEJhclZpcz1LLFkoYSk7ZWxzZXthLnNjcm9sbEJhclZpcz1LO3AuY2hpbGRyZW4oInRoZWFkLCB0Zm9vdCIpLnJlbW92ZSgpOwp1JiYoUD11LmNsb25lKCkucHJlcGVuZFRvKHApLE89dS5maW5kKCJ0ciIpLFA9UC5maW5kKCJ0ciIpKTt3PW8uY2xvbmUoKS5wcmVwZW5kVG8ocCk7bz1vLmZpbmQoInRyIik7Sz13LmZpbmQoInRyIik7dy5maW5kKCJ0aCwgdGQiKS5yZW1vdmVBdHRyKCJ0YWJpbmRleCIpO2N8fChxLndpZHRoPSIxMDAlIixmWzBdLnN0eWxlLndpZHRoPSIxMDAlIik7aC5lYWNoKHJhKGEsdyksZnVuY3Rpb24oYixjKXtCPVooYSxiKTtjLnN0eWxlLndpZHRoPWEuYW9Db2x1bW5zW0JdLnNXaWR0aH0pO3UmJkgoZnVuY3Rpb24oYSl7YS5zdHlsZS53aWR0aD0iIn0sUCk7Zj1wLm91dGVyV2lkdGgoKTtpZigiIj09PWMpe3Iud2lkdGg9IjEwMCUiO2lmKFQmJihwLmZpbmQoInRib2R5IikuaGVpZ2h0KCk+ai5vZmZzZXRIZWlnaHR8fCJzY3JvbGwiPT1sLmNzcygib3ZlcmZsb3cteSIpKSlyLndpZHRoPXYocC5vdXRlcldpZHRoKCktYik7Zj1wLm91dGVyV2lkdGgoKX1lbHNlIiIhPT1kJiYoci53aWR0aD0KdihkKSxmPXAub3V0ZXJXaWR0aCgpKTtIKEMsSyk7SChmdW5jdGlvbihhKXt6LnB1c2goYS5pbm5lckhUTUwpO1RhLnB1c2godihoKGEpLmNzcygid2lkdGgiKSkpfSxLKTtIKGZ1bmN0aW9uKGEsYil7aWYoaC5pbkFycmF5KGEsWGIpIT09LTEpYS5zdHlsZS53aWR0aD1UYVtiXX0sbyk7aChLKS5oZWlnaHQoMCk7dSYmKEgoQyxQKSxIKGZ1bmN0aW9uKGEpe0EucHVzaChhLmlubmVySFRNTCk7eS5wdXNoKHYoaChhKS5jc3MoIndpZHRoIikpKX0sUCksSChmdW5jdGlvbihhLGIpe2Euc3R5bGUud2lkdGg9eVtiXX0sTyksaChQKS5oZWlnaHQoMCkpO0goZnVuY3Rpb24oYSxiKXthLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZGF0YVRhYmxlc19zaXppbmciIHN0eWxlPSJoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47Ij4nK3pbYl0rIjwvZGl2PiI7YS5zdHlsZS53aWR0aD1UYVtiXX0sSyk7dSYmSChmdW5jdGlvbihhLGIpe2EuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJkYXRhVGFibGVzX3NpemluZyIgc3R5bGU9ImhlaWdodDowO292ZXJmbG93OmhpZGRlbjsiPicrCkFbYl0rIjwvZGl2PiI7YS5zdHlsZS53aWR0aD15W2JdfSxQKTtpZihwLm91dGVyV2lkdGgoKTxmKXtPPWouc2Nyb2xsSGVpZ2h0Pmoub2Zmc2V0SGVpZ2h0fHwic2Nyb2xsIj09bC5jc3MoIm92ZXJmbG93LXkiKT9mK2I6ZjtpZihUJiYoai5zY3JvbGxIZWlnaHQ+ai5vZmZzZXRIZWlnaHR8fCJzY3JvbGwiPT1sLmNzcygib3ZlcmZsb3cteSIpKSlyLndpZHRoPXYoTy1iKTsoIiI9PT1jfHwiIiE9PWQpJiZKKGEsMSwiUG9zc2libGUgY29sdW1uIG1pc2FsaWdubWVudCIsNil9ZWxzZSBPPSIxMDAlIjtxLndpZHRoPXYoTyk7Zy53aWR0aD12KE8pO3UmJihhLm5TY3JvbGxGb290LnN0eWxlLndpZHRoPXYoTykpOyFlJiZUJiYocS5oZWlnaHQ9dihzLm9mZnNldEhlaWdodCtiKSk7Yz1wLm91dGVyV2lkdGgoKTtuWzBdLnN0eWxlLndpZHRoPXYoYyk7aS53aWR0aD12KGMpO2Q9cC5oZWlnaHQoKT5qLmNsaWVudEhlaWdodHx8InNjcm9sbCI9PWwuY3NzKCJvdmVyZmxvdy15Iik7ZT0icGFkZGluZyIrCih4LmJTY3JvbGxiYXJMZWZ0PyJMZWZ0IjoiUmlnaHQiKTtpW2VdPWQ/YisicHgiOiIwcHgiO3UmJihtWzBdLnN0eWxlLndpZHRoPXYoYyksdFswXS5zdHlsZS53aWR0aD12KGMpLHRbMF0uc3R5bGVbZV09ZD9iKyJweCI6IjBweCIpO3AuY2hpbGRyZW4oImNvbGdyb3VwIikuaW5zZXJ0QmVmb3JlKHAuY2hpbGRyZW4oInRoZWFkIikpO2wuc2Nyb2xsKCk7aWYoKGEuYlNvcnRlZHx8YS5iRmlsdGVyZWQpJiYhYS5fZHJhd0hvbGQpai5zY3JvbGxUb3A9MH19ZnVuY3Rpb24gSChhLGIsYyl7Zm9yKHZhciBkPTAsZT0wLGY9Yi5sZW5ndGgsZyxqO2U8Zjspe2c9YltlXS5maXJzdENoaWxkO2ZvcihqPWM/Y1tlXS5maXJzdENoaWxkOm51bGw7ZzspMT09PWcubm9kZVR5cGUmJihjP2EoZyxqLGQpOmEoZyxkKSxkKyspLGc9Zy5uZXh0U2libGluZyxqPWM/ai5uZXh0U2libGluZzpudWxsO2UrK319ZnVuY3Rpb24gRWEoYSl7dmFyIGI9YS5uVGFibGUsYz1hLmFvQ29sdW1ucyxkPWEub1Njcm9sbCwKZT1kLnNZLGY9ZC5zWCxnPWQuc1hJbm5lcixqPWMubGVuZ3RoLGk9bGEoYSwiYlZpc2libGUiKSxuPWgoInRoIixhLm5USGVhZCksbD1iLmdldEF0dHJpYnV0ZSgid2lkdGgiKSxrPWIucGFyZW50Tm9kZSx0PSExLG0sbyxwPWEub0Jyb3dzZXIsZD1wLmJTY3JvbGxPdmVyc2l6ZTsobT1iLnN0eWxlLndpZHRoKSYmLTEhPT1tLmluZGV4T2YoIiUiKSYmKGw9bSk7Zm9yKG09MDttPGkubGVuZ3RoO20rKylvPWNbaVttXV0sbnVsbCE9PW8uc1dpZHRoJiYoby5zV2lkdGg9RGIoby5zV2lkdGhPcmlnLGspLHQ9ITApO2lmKGR8fCF0JiYhZiYmIWUmJmo9PWFhKGEpJiZqPT1uLmxlbmd0aClmb3IobT0wO208ajttKyspaT1aKGEsbSksbnVsbCE9PWkmJihjW2ldLnNXaWR0aD12KG4uZXEobSkud2lkdGgoKSkpO2Vsc2V7aj1oKGIpLmNsb25lKCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikucmVtb3ZlQXR0cigiaWQiKTtqLmZpbmQoInRib2R5IHRyIikucmVtb3ZlKCk7dmFyIHM9aCgiPHRyLz4iKS5hcHBlbmRUbyhqLmZpbmQoInRib2R5IikpOwpqLmZpbmQoInRoZWFkLCB0Zm9vdCIpLnJlbW92ZSgpO2ouYXBwZW5kKGgoYS5uVEhlYWQpLmNsb25lKCkpLmFwcGVuZChoKGEublRGb290KS5jbG9uZSgpKTtqLmZpbmQoInRmb290IHRoLCB0Zm9vdCB0ZCIpLmNzcygid2lkdGgiLCIiKTtuPXJhKGEsai5maW5kKCJ0aGVhZCIpWzBdKTtmb3IobT0wO208aS5sZW5ndGg7bSsrKW89Y1tpW21dXSxuW21dLnN0eWxlLndpZHRoPW51bGwhPT1vLnNXaWR0aE9yaWcmJiIiIT09by5zV2lkdGhPcmlnP3Yoby5zV2lkdGhPcmlnKToiIixvLnNXaWR0aE9yaWcmJmYmJmgoblttXSkuYXBwZW5kKGgoIjxkaXYvPiIpLmNzcyh7d2lkdGg6by5zV2lkdGhPcmlnLG1hcmdpbjowLHBhZGRpbmc6MCxib3JkZXI6MCxoZWlnaHQ6MX0pKTtpZihhLmFvRGF0YS5sZW5ndGgpZm9yKG09MDttPGkubGVuZ3RoO20rKyl0PWlbbV0sbz1jW3RdLGgoRWIoYSx0KSkuY2xvbmUoITEpLmFwcGVuZChvLnNDb250ZW50UGFkZGluZykuYXBwZW5kVG8ocyk7aCgiW25hbWVdIiwKaikucmVtb3ZlQXR0cigibmFtZSIpO289aCgiPGRpdi8+IikuY3NzKGZ8fGU/e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDowLGhlaWdodDoxLHJpZ2h0OjAsb3ZlcmZsb3c6ImhpZGRlbiJ9Ont9KS5hcHBlbmQoaikuYXBwZW5kVG8oayk7ZiYmZz9qLndpZHRoKGcpOmY/KGouY3NzKCJ3aWR0aCIsImF1dG8iKSxqLnJlbW92ZUF0dHIoIndpZHRoIiksai53aWR0aCgpPGsuY2xpZW50V2lkdGgmJmwmJmoud2lkdGgoay5jbGllbnRXaWR0aCkpOmU/ai53aWR0aChrLmNsaWVudFdpZHRoKTpsJiZqLndpZHRoKGwpO2ZvcihtPWU9MDttPGkubGVuZ3RoO20rKylrPWgoblttXSksZz1rLm91dGVyV2lkdGgoKS1rLndpZHRoKCksaz1wLmJCb3VuZGluZz9NYXRoLmNlaWwoblttXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCk6ay5vdXRlcldpZHRoKCksZSs9ayxjW2lbbV1dLnNXaWR0aD12KGstZyk7Yi5zdHlsZS53aWR0aD12KGUpO28ucmVtb3ZlKCl9bCYmKGIuc3R5bGUud2lkdGg9CnYobCkpO2lmKChsfHxmKSYmIWEuX3Jlc3pFdnQpYj1mdW5jdGlvbigpe2goRSkub24oInJlc2l6ZS5EVC0iK2Euc0luc3RhbmNlLE5hKGZ1bmN0aW9uKCl7WShhKX0pKX0sZD9zZXRUaW1lb3V0KGIsMUUzKTpiKCksYS5fcmVzekV2dD0hMH1mdW5jdGlvbiBEYihhLGIpe2lmKCFhKXJldHVybiAwO3ZhciBjPWgoIjxkaXYvPiIpLmNzcygid2lkdGgiLHYoYSkpLmFwcGVuZFRvKGJ8fEcuYm9keSksZD1jWzBdLm9mZnNldFdpZHRoO2MucmVtb3ZlKCk7cmV0dXJuIGR9ZnVuY3Rpb24gRWIoYSxiKXt2YXIgYz1GYihhLGIpO2lmKDA+YylyZXR1cm4gbnVsbDt2YXIgZD1hLmFvRGF0YVtjXTtyZXR1cm4hZC5uVHI/aCgiPHRkLz4iKS5odG1sKEIoYSxjLGIsImRpc3BsYXkiKSlbMF06ZC5hbkNlbGxzW2JdfWZ1bmN0aW9uIEZiKGEsYil7Zm9yKHZhciBjLGQ9LTEsZT0tMSxmPTAsZz1hLmFvRGF0YS5sZW5ndGg7ZjxnO2YrKyljPUIoYSxmLGIsImRpc3BsYXkiKSsiIixjPWMucmVwbGFjZShZYiwKIiIpLGM9Yy5yZXBsYWNlKC8mbmJzcDsvZywiICIpLGMubGVuZ3RoPmQmJihkPWMubGVuZ3RoLGU9Zik7cmV0dXJuIGV9ZnVuY3Rpb24gdihhKXtyZXR1cm4gbnVsbD09PWE/IjBweCI6Im51bWJlciI9PXR5cGVvZiBhPzA+YT8iMHB4IjphKyJweCI6YS5tYXRjaCgvXGQkLyk/YSsicHgiOmF9ZnVuY3Rpb24gVihhKXt2YXIgYixjLGQ9W10sZT1hLmFvQ29sdW1ucyxmLGcsaixpO2I9YS5hYVNvcnRpbmdGaXhlZDtjPWguaXNQbGFpbk9iamVjdChiKTt2YXIgbj1bXTtmPWZ1bmN0aW9uKGEpe2EubGVuZ3RoJiYhaC5pc0FycmF5KGFbMF0pP24ucHVzaChhKTpoLm1lcmdlKG4sYSl9O2guaXNBcnJheShiKSYmZihiKTtjJiZiLnByZSYmZihiLnByZSk7ZihhLmFhU29ydGluZyk7YyYmYi5wb3N0JiZmKGIucG9zdCk7Zm9yKGE9MDthPG4ubGVuZ3RoO2ErKyl7aT1uW2FdWzBdO2Y9ZVtpXS5hRGF0YVNvcnQ7Yj0wO2ZvcihjPWYubGVuZ3RoO2I8YztiKyspZz1mW2JdLGo9ZVtnXS5zVHlwZXx8CiJzdHJpbmciLG5bYV0uX2lkeD09PWsmJihuW2FdLl9pZHg9aC5pbkFycmF5KG5bYV1bMV0sZVtnXS5hc1NvcnRpbmcpKSxkLnB1c2goe3NyYzppLGNvbDpnLGRpcjpuW2FdWzFdLGluZGV4Om5bYV0uX2lkeCx0eXBlOmosZm9ybWF0dGVyOm0uZXh0LnR5cGUub3JkZXJbaisiLXByZSJdfSl9cmV0dXJuIGR9ZnVuY3Rpb24gbGIoYSl7dmFyIGIsYyxkPVtdLGU9bS5leHQudHlwZS5vcmRlcixmPWEuYW9EYXRhLGc9MCxqLGk9YS5haURpc3BsYXlNYXN0ZXIsaDtGYShhKTtoPVYoYSk7Yj0wO2ZvcihjPWgubGVuZ3RoO2I8YztiKyspaj1oW2JdLGouZm9ybWF0dGVyJiZnKyssR2IoYSxqLmNvbCk7aWYoInNzcCIhPXkoYSkmJjAhPT1oLmxlbmd0aCl7Yj0wO2ZvcihjPWkubGVuZ3RoO2I8YztiKyspZFtpW2JdXT1iO2c9PT1oLmxlbmd0aD9pLnNvcnQoZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGcsaixpPWgubGVuZ3RoLGs9ZlthXS5fYVNvcnREYXRhLG09ZltiXS5fYVNvcnREYXRhO2ZvcihnPQowO2c8aTtnKyspaWYoaj1oW2ddLGM9a1tqLmNvbF0sZT1tW2ouY29sXSxjPWM8ZT8tMTpjPmU/MTowLDAhPT1jKXJldHVybiJhc2MiPT09ai5kaXI/YzotYztjPWRbYV07ZT1kW2JdO3JldHVybiBjPGU/LTE6Yz5lPzE6MH0pOmkuc29ydChmdW5jdGlvbihhLGIpe3ZhciBjLGcsaixpLGs9aC5sZW5ndGgsbT1mW2FdLl9hU29ydERhdGEsbz1mW2JdLl9hU29ydERhdGE7Zm9yKGo9MDtqPGs7aisrKWlmKGk9aFtqXSxjPW1baS5jb2xdLGc9b1tpLmNvbF0saT1lW2kudHlwZSsiLSIraS5kaXJdfHxlWyJzdHJpbmctIitpLmRpcl0sYz1pKGMsZyksMCE9PWMpcmV0dXJuIGM7Yz1kW2FdO2c9ZFtiXTtyZXR1cm4gYzxnPy0xOmM+Zz8xOjB9KX1hLmJTb3J0ZWQ9ITB9ZnVuY3Rpb24gSGIoYSl7Zm9yKHZhciBiLGMsZD1hLmFvQ29sdW1ucyxlPVYoYSksYT1hLm9MYW5ndWFnZS5vQXJpYSxmPTAsZz1kLmxlbmd0aDtmPGc7ZisrKXtjPWRbZl07dmFyIGo9Yy5hc1NvcnRpbmc7Yj1jLnNUaXRsZS5yZXBsYWNlKC88Lio/Pi9nLAoiIik7dmFyIGk9Yy5uVGg7aS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtc29ydCIpO2MuYlNvcnRhYmxlJiYoMDxlLmxlbmd0aCYmZVswXS5jb2w9PWY/KGkuc2V0QXR0cmlidXRlKCJhcmlhLXNvcnQiLCJhc2MiPT1lWzBdLmRpcj8iYXNjZW5kaW5nIjoiZGVzY2VuZGluZyIpLGM9altlWzBdLmluZGV4KzFdfHxqWzBdKTpjPWpbMF0sYis9ImFzYyI9PT1jP2Euc1NvcnRBc2NlbmRpbmc6YS5zU29ydERlc2NlbmRpbmcpO2kuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixiKX19ZnVuY3Rpb24gVWEoYSxiLGMsZCl7dmFyIGU9YS5hYVNvcnRpbmcsZj1hLmFvQ29sdW1uc1tiXS5hc1NvcnRpbmcsZz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuX2lkeDtjPT09ayYmKGM9aC5pbkFycmF5KGFbMV0sZikpO3JldHVybiBjKzE8Zi5sZW5ndGg/YysxOmI/bnVsbDowfTsibnVtYmVyIj09PXR5cGVvZiBlWzBdJiYoZT1hLmFhU29ydGluZz1bZV0pO2MmJmEub0ZlYXR1cmVzLmJTb3J0TXVsdGk/KGM9aC5pbkFycmF5KGIsCkQoZSwiMCIpKSwtMSE9PWM/KGI9ZyhlW2NdLCEwKSxudWxsPT09YiYmMT09PWUubGVuZ3RoJiYoYj0wKSxudWxsPT09Yj9lLnNwbGljZShjLDEpOihlW2NdWzFdPWZbYl0sZVtjXS5faWR4PWIpKTooZS5wdXNoKFtiLGZbMF0sMF0pLGVbZS5sZW5ndGgtMV0uX2lkeD0wKSk6ZS5sZW5ndGgmJmVbMF1bMF09PWI/KGI9ZyhlWzBdKSxlLmxlbmd0aD0xLGVbMF1bMV09ZltiXSxlWzBdLl9pZHg9Yik6KGUubGVuZ3RoPTAsZS5wdXNoKFtiLGZbMF1dKSxlWzBdLl9pZHg9MCk7UyhhKTsiZnVuY3Rpb24iPT10eXBlb2YgZCYmZChhKX1mdW5jdGlvbiBMYShhLGIsYyxkKXt2YXIgZT1hLmFvQ29sdW1uc1tjXTtWYShiLHt9LGZ1bmN0aW9uKGIpeyExIT09ZS5iU29ydGFibGUmJihhLm9GZWF0dXJlcy5iUHJvY2Vzc2luZz8oQyhhLCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VWEoYSxjLGIuc2hpZnRLZXksZCk7InNzcCIhPT15KGEpJiZDKGEsITEpfSwwKSk6VWEoYSxjLGIuc2hpZnRLZXksZCkpfSl9CmZ1bmN0aW9uIHdhKGEpe3ZhciBiPWEuYUxhc3RTb3J0LGM9YS5vQ2xhc3Nlcy5zU29ydENvbHVtbixkPVYoYSksZT1hLm9GZWF0dXJlcyxmLGc7aWYoZS5iU29ydCYmZS5iU29ydENsYXNzZXMpe2U9MDtmb3IoZj1iLmxlbmd0aDtlPGY7ZSsrKWc9YltlXS5zcmMsaChEKGEuYW9EYXRhLCJhbkNlbGxzIixnKSkucmVtb3ZlQ2xhc3MoYysoMj5lP2UrMTozKSk7ZT0wO2ZvcihmPWQubGVuZ3RoO2U8ZjtlKyspZz1kW2VdLnNyYyxoKEQoYS5hb0RhdGEsImFuQ2VsbHMiLGcpKS5hZGRDbGFzcyhjKygyPmU/ZSsxOjMpKX1hLmFMYXN0U29ydD1kfWZ1bmN0aW9uIEdiKGEsYil7dmFyIGM9YS5hb0NvbHVtbnNbYl0sZD1tLmV4dC5vcmRlcltjLnNTb3J0RGF0YVR5cGVdLGU7ZCYmKGU9ZC5jYWxsKGEub0luc3RhbmNlLGEsYiwkKGEsYikpKTtmb3IodmFyIGYsZz1tLmV4dC50eXBlLm9yZGVyW2Muc1R5cGUrIi1wcmUiXSxqPTAsaT1hLmFvRGF0YS5sZW5ndGg7ajxpO2orKylpZihjPWEuYW9EYXRhW2pdLApjLl9hU29ydERhdGF8fChjLl9hU29ydERhdGE9W10pLCFjLl9hU29ydERhdGFbYl18fGQpZj1kP2Vbal06QihhLGosYiwic29ydCIpLGMuX2FTb3J0RGF0YVtiXT1nP2coZik6Zn1mdW5jdGlvbiB4YShhKXtpZihhLm9GZWF0dXJlcy5iU3RhdGVTYXZlJiYhYS5iRGVzdHJveWluZyl7dmFyIGI9e3RpbWU6K25ldyBEYXRlLHN0YXJ0OmEuX2lEaXNwbGF5U3RhcnQsbGVuZ3RoOmEuX2lEaXNwbGF5TGVuZ3RoLG9yZGVyOmguZXh0ZW5kKCEwLFtdLGEuYWFTb3J0aW5nKSxzZWFyY2g6emIoYS5vUHJldmlvdXNTZWFyY2gpLGNvbHVtbnM6aC5tYXAoYS5hb0NvbHVtbnMsZnVuY3Rpb24oYixkKXtyZXR1cm57dmlzaWJsZTpiLmJWaXNpYmxlLHNlYXJjaDp6YihhLmFvUHJlU2VhcmNoQ29sc1tkXSl9fSl9O3IoYSwiYW9TdGF0ZVNhdmVQYXJhbXMiLCJzdGF0ZVNhdmVQYXJhbXMiLFthLGJdKTthLm9TYXZlZFN0YXRlPWI7YS5mblN0YXRlU2F2ZUNhbGxiYWNrLmNhbGwoYS5vSW5zdGFuY2UsYSwKYil9fWZ1bmN0aW9uIEliKGEsYixjKXt2YXIgZCxlLGY9YS5hb0NvbHVtbnMsYj1mdW5jdGlvbihiKXtpZihiJiZiLnRpbWUpe3ZhciBnPXIoYSwiYW9TdGF0ZUxvYWRQYXJhbXMiLCJzdGF0ZUxvYWRQYXJhbXMiLFthLGJdKTtpZigtMT09PWguaW5BcnJheSghMSxnKSYmKGc9YS5pU3RhdGVEdXJhdGlvbiwhKDA8ZyYmYi50aW1lPCtuZXcgRGF0ZS0xRTMqZykmJiEoYi5jb2x1bW5zJiZmLmxlbmd0aCE9PWIuY29sdW1ucy5sZW5ndGgpKSl7YS5vTG9hZGVkU3RhdGU9aC5leHRlbmQoITAse30sYik7Yi5zdGFydCE9PWsmJihhLl9pRGlzcGxheVN0YXJ0PWIuc3RhcnQsYS5pSW5pdERpc3BsYXlTdGFydD1iLnN0YXJ0KTtiLmxlbmd0aCE9PWsmJihhLl9pRGlzcGxheUxlbmd0aD1iLmxlbmd0aCk7Yi5vcmRlciE9PWsmJihhLmFhU29ydGluZz1bXSxoLmVhY2goYi5vcmRlcixmdW5jdGlvbihiLGMpe2EuYWFTb3J0aW5nLnB1c2goY1swXT49Zi5sZW5ndGg/WzAsY1sxXV06Yyl9KSk7Yi5zZWFyY2ghPT0KayYmaC5leHRlbmQoYS5vUHJldmlvdXNTZWFyY2gsQWIoYi5zZWFyY2gpKTtpZihiLmNvbHVtbnMpe2Q9MDtmb3IoZT1iLmNvbHVtbnMubGVuZ3RoO2Q8ZTtkKyspZz1iLmNvbHVtbnNbZF0sZy52aXNpYmxlIT09ayYmKGZbZF0uYlZpc2libGU9Zy52aXNpYmxlKSxnLnNlYXJjaCE9PWsmJmguZXh0ZW5kKGEuYW9QcmVTZWFyY2hDb2xzW2RdLEFiKGcuc2VhcmNoKSl9cihhLCJhb1N0YXRlTG9hZGVkIiwic3RhdGVMb2FkZWQiLFthLGJdKX19YygpfTtpZihhLm9GZWF0dXJlcy5iU3RhdGVTYXZlKXt2YXIgZz1hLmZuU3RhdGVMb2FkQ2FsbGJhY2suY2FsbChhLm9JbnN0YW5jZSxhLGIpO2chPT1rJiZiKGcpfWVsc2UgYygpfWZ1bmN0aW9uIHlhKGEpe3ZhciBiPW0uc2V0dGluZ3MsYT1oLmluQXJyYXkoYSxEKGIsIm5UYWJsZSIpKTtyZXR1cm4tMSE9PWE/YlthXTpudWxsfWZ1bmN0aW9uIEooYSxiLGMsZCl7Yz0iRGF0YVRhYmxlcyB3YXJuaW5nOiAiKyhhPyJ0YWJsZSBpZD0iK2Euc1RhYmxlSWQrCiIgLSAiOiIiKStjO2QmJihjKz0iLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGVycm9yLCBwbGVhc2Ugc2VlIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC90bi8iK2QpO2lmKGIpRS5jb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coYyk7ZWxzZSBpZihiPW0uZXh0LGI9Yi5zRXJyTW9kZXx8Yi5lcnJNb2RlLGEmJnIoYSxudWxsLCJlcnJvciIsW2EsZCxjXSksImFsZXJ0Ij09YilhbGVydChjKTtlbHNle2lmKCJ0aHJvdyI9PWIpdGhyb3cgRXJyb3IoYyk7ImZ1bmN0aW9uIj09dHlwZW9mIGImJmIoYSxkLGMpfX1mdW5jdGlvbiBGKGEsYixjLGQpe2guaXNBcnJheShjKT9oLmVhY2goYyxmdW5jdGlvbihjLGQpe2guaXNBcnJheShkKT9GKGEsYixkWzBdLGRbMV0pOkYoYSxiLGQpfSk6KGQ9PT1rJiYoZD1jKSxiW2NdIT09ayYmKGFbZF09YltjXSkpfWZ1bmN0aW9uIEpiKGEsYixjKXt2YXIgZCxlO2ZvcihlIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShlKSYmKGQ9YltlXSwKaC5pc1BsYWluT2JqZWN0KGQpPyhoLmlzUGxhaW5PYmplY3QoYVtlXSl8fChhW2VdPXt9KSxoLmV4dGVuZCghMCxhW2VdLGQpKTphW2VdPWMmJiJkYXRhIiE9PWUmJiJhYURhdGEiIT09ZSYmaC5pc0FycmF5KGQpP2Quc2xpY2UoKTpkKTtyZXR1cm4gYX1mdW5jdGlvbiBWYShhLGIsYyl7aChhKS5vbigiY2xpY2suRFQiLGIsZnVuY3Rpb24oYil7YS5ibHVyKCk7YyhiKX0pLm9uKCJrZXlwcmVzcy5EVCIsYixmdW5jdGlvbihhKXsxMz09PWEud2hpY2gmJihhLnByZXZlbnREZWZhdWx0KCksYyhhKSl9KS5vbigic2VsZWN0c3RhcnQuRFQiLGZ1bmN0aW9uKCl7cmV0dXJuITF9KX1mdW5jdGlvbiB6KGEsYixjLGQpe2MmJmFbYl0ucHVzaCh7Zm46YyxzTmFtZTpkfSl9ZnVuY3Rpb24gcihhLGIsYyxkKXt2YXIgZT1bXTtiJiYoZT1oLm1hcChhW2JdLnNsaWNlKCkucmV2ZXJzZSgpLGZ1bmN0aW9uKGIpe3JldHVybiBiLmZuLmFwcGx5KGEub0luc3RhbmNlLGQpfSkpO251bGwhPT1jJiYoYj1oLkV2ZW50KGMrCiIuZHQiKSxoKGEublRhYmxlKS50cmlnZ2VyKGIsZCksZS5wdXNoKGIucmVzdWx0KSk7cmV0dXJuIGV9ZnVuY3Rpb24gUmEoYSl7dmFyIGI9YS5faURpc3BsYXlTdGFydCxjPWEuZm5EaXNwbGF5RW5kKCksZD1hLl9pRGlzcGxheUxlbmd0aDtiPj1jJiYoYj1jLWQpO2ItPWIlZDtpZigtMT09PWR8fDA+YiliPTA7YS5faURpc3BsYXlTdGFydD1ifWZ1bmN0aW9uIE1hKGEsYil7dmFyIGM9YS5yZW5kZXJlcixkPW0uZXh0LnJlbmRlcmVyW2JdO3JldHVybiBoLmlzUGxhaW5PYmplY3QoYykmJmNbYl0/ZFtjW2JdXXx8ZC5fOiJzdHJpbmciPT09dHlwZW9mIGM/ZFtjXXx8ZC5fOmQuX31mdW5jdGlvbiB5KGEpe3JldHVybiBhLm9GZWF0dXJlcy5iU2VydmVyU2lkZT8ic3NwIjphLmFqYXh8fGEuc0FqYXhTb3VyY2U/ImFqYXgiOiJkb20ifWZ1bmN0aW9uIGhhKGEsYil7dmFyIGM9W10sYz1LYi5udW1iZXJzX2xlbmd0aCxkPU1hdGguZmxvb3IoYy8yKTtiPD1jP2M9VygwLGIpOmE8PWQ/KGM9VygwLApjLTIpLGMucHVzaCgiZWxsaXBzaXMiKSxjLnB1c2goYi0xKSk6KGE+PWItMS1kP2M9VyhiLShjLTIpLGIpOihjPVcoYS1kKzIsYStkLTEpLGMucHVzaCgiZWxsaXBzaXMiKSxjLnB1c2goYi0xKSksYy5zcGxpY2UoMCwwLCJlbGxpcHNpcyIpLGMuc3BsaWNlKDAsMCwwKSk7Yy5EVF9lbD0ic3BhbiI7cmV0dXJuIGN9ZnVuY3Rpb24gY2IoYSl7aC5lYWNoKHtudW06ZnVuY3Rpb24oYil7cmV0dXJuIHphKGIsYSl9LCJudW0tZm10IjpmdW5jdGlvbihiKXtyZXR1cm4gemEoYixhLFdhKX0sImh0bWwtbnVtIjpmdW5jdGlvbihiKXtyZXR1cm4gemEoYixhLEFhKX0sImh0bWwtbnVtLWZtdCI6ZnVuY3Rpb24oYil7cmV0dXJuIHphKGIsYSxBYSxXYSl9fSxmdW5jdGlvbihiLGMpe3gudHlwZS5vcmRlcltiK2ErIi1wcmUiXT1jO2IubWF0Y2goL15odG1sXC0vKSYmKHgudHlwZS5zZWFyY2hbYithXT14LnR5cGUuc2VhcmNoLmh0bWwpfSl9ZnVuY3Rpb24gTGIoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9Clt5YSh0aGlzW20uZXh0LmlBcGlJbmRleF0pXS5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIG0uZXh0LmludGVybmFsW2FdLmFwcGx5KHRoaXMsYil9fXZhciBtPWZ1bmN0aW9uKGEpe3RoaXMuJD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmFwaSghMCkuJChhLGIpfTt0aGlzLl89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvd3MoYSxiKS5kYXRhKCl9O3RoaXMuYXBpPWZ1bmN0aW9uKGEpe3JldHVybiBhP25ldyBzKHlhKHRoaXNbeC5pQXBpSW5kZXhdKSk6bmV3IHModGhpcyl9O3RoaXMuZm5BZGREYXRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5hcGkoITApLGQ9aC5pc0FycmF5KGEpJiYoaC5pc0FycmF5KGFbMF0pfHxoLmlzUGxhaW5PYmplY3QoYVswXSkpP2Mucm93cy5hZGQoYSk6Yy5yb3cuYWRkKGEpOyhiPT09a3x8YikmJmMuZHJhdygpO3JldHVybiBkLmZsYXR0ZW4oKS50b0FycmF5KCl9O3RoaXMuZm5BZGp1c3RDb2x1bW5TaXppbmc9CmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXBpKCEwKS5jb2x1bW5zLmFkanVzdCgpLGM9Yi5zZXR0aW5ncygpWzBdLGQ9Yy5vU2Nyb2xsO2E9PT1rfHxhP2IuZHJhdyghMSk6KCIiIT09ZC5zWHx8IiIhPT1kLnNZKSYma2EoYyl9O3RoaXMuZm5DbGVhclRhYmxlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXBpKCEwKS5jbGVhcigpOyhhPT09a3x8YSkmJmIuZHJhdygpfTt0aGlzLmZuQ2xvc2U9ZnVuY3Rpb24oYSl7dGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZC5oaWRlKCl9O3RoaXMuZm5EZWxldGVSb3c9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuYXBpKCEwKSxhPWQucm93cyhhKSxlPWEuc2V0dGluZ3MoKVswXSxoPWUuYW9EYXRhW2FbMF1bMF1dO2EucmVtb3ZlKCk7YiYmYi5jYWxsKHRoaXMsZSxoKTsoYz09PWt8fGMpJiZkLmRyYXcoKTtyZXR1cm4gaH07dGhpcy5mbkRlc3Ryb3k9ZnVuY3Rpb24oYSl7dGhpcy5hcGkoITApLmRlc3Ryb3koYSl9O3RoaXMuZm5EcmF3PWZ1bmN0aW9uKGEpe3RoaXMuYXBpKCEwKS5kcmF3KGEpfTsKdGhpcy5mbkZpbHRlcj1mdW5jdGlvbihhLGIsYyxkLGUsaCl7ZT10aGlzLmFwaSghMCk7bnVsbD09PWJ8fGI9PT1rP2Uuc2VhcmNoKGEsYyxkLGgpOmUuY29sdW1uKGIpLnNlYXJjaChhLGMsZCxoKTtlLmRyYXcoKX07dGhpcy5mbkdldERhdGE9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmFwaSghMCk7aWYoYSE9PWspe3ZhciBkPWEubm9kZU5hbWU/YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOiIiO3JldHVybiBiIT09a3x8InRkIj09ZHx8InRoIj09ZD9jLmNlbGwoYSxiKS5kYXRhKCk6Yy5yb3coYSkuZGF0YSgpfHxudWxsfXJldHVybiBjLmRhdGEoKS50b0FycmF5KCl9O3RoaXMuZm5HZXROb2Rlcz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmFwaSghMCk7cmV0dXJuIGEhPT1rP2Iucm93KGEpLm5vZGUoKTpiLnJvd3MoKS5ub2RlcygpLmZsYXR0ZW4oKS50b0FycmF5KCl9O3RoaXMuZm5HZXRQb3NpdGlvbj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmFwaSghMCksYz1hLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7CnJldHVybiJUUiI9PWM/Yi5yb3coYSkuaW5kZXgoKToiVEQiPT1jfHwiVEgiPT1jPyhhPWIuY2VsbChhKS5pbmRleCgpLFthLnJvdyxhLmNvbHVtblZpc2libGUsYS5jb2x1bW5dKTpudWxsfTt0aGlzLmZuSXNPcGVuPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFwaSghMCkucm93KGEpLmNoaWxkLmlzU2hvd24oKX07dGhpcy5mbk9wZW49ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLmFwaSghMCkucm93KGEpLmNoaWxkKGIsYykuc2hvdygpLmNoaWxkKClbMF19O3RoaXMuZm5QYWdlQ2hhbmdlPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5hcGkoITApLnBhZ2UoYSk7KGI9PT1rfHxiKSYmYy5kcmF3KCExKX07dGhpcy5mblNldENvbHVtblZpcz1mdW5jdGlvbihhLGIsYyl7YT10aGlzLmFwaSghMCkuY29sdW1uKGEpLnZpc2libGUoYik7KGM9PT1rfHxjKSYmYS5jb2x1bW5zLmFkanVzdCgpLmRyYXcoKX07dGhpcy5mblNldHRpbmdzPWZ1bmN0aW9uKCl7cmV0dXJuIHlhKHRoaXNbeC5pQXBpSW5kZXhdKX07CnRoaXMuZm5Tb3J0PWZ1bmN0aW9uKGEpe3RoaXMuYXBpKCEwKS5vcmRlcihhKS5kcmF3KCl9O3RoaXMuZm5Tb3J0TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuYXBpKCEwKS5vcmRlci5saXN0ZW5lcihhLGIsYyl9O3RoaXMuZm5VcGRhdGU9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgaD10aGlzLmFwaSghMCk7Yz09PWt8fG51bGw9PT1jP2gucm93KGIpLmRhdGEoYSk6aC5jZWxsKGIsYykuZGF0YShhKTsoZT09PWt8fGUpJiZoLmNvbHVtbnMuYWRqdXN0KCk7KGQ9PT1rfHxkKSYmaC5kcmF3KCk7cmV0dXJuIDB9O3RoaXMuZm5WZXJzaW9uQ2hlY2s9eC5mblZlcnNpb25DaGVjazt2YXIgYj10aGlzLGM9YT09PWssZD10aGlzLmxlbmd0aDtjJiYoYT17fSk7dGhpcy5vQXBpPXRoaXMuaW50ZXJuYWw9eC5pbnRlcm5hbDtmb3IodmFyIGUgaW4gbS5leHQuaW50ZXJuYWwpZSYmKHRoaXNbZV09TGIoZSkpO3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPXt9LGc9MTxkP0piKGUsYSwhMCk6CmEsaj0wLGksZT10aGlzLmdldEF0dHJpYnV0ZSgiaWQiKSxuPSExLGw9bS5kZWZhdWx0cyxxPWgodGhpcyk7aWYoInRhYmxlIiE9dGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKUoobnVsbCwwLCJOb24tdGFibGUgbm9kZSBpbml0aWFsaXNhdGlvbiAoIit0aGlzLm5vZGVOYW1lKyIpIiwyKTtlbHNle2RiKGwpO2ViKGwuY29sdW1uKTtJKGwsbCwhMCk7SShsLmNvbHVtbixsLmNvbHVtbiwhMCk7SShsLGguZXh0ZW5kKGcscS5kYXRhKCkpKTt2YXIgdD1tLnNldHRpbmdzLGo9MDtmb3IoaT10Lmxlbmd0aDtqPGk7aisrKXt2YXIgbz10W2pdO2lmKG8ublRhYmxlPT10aGlzfHxvLm5USGVhZC5wYXJlbnROb2RlPT10aGlzfHxvLm5URm9vdCYmby5uVEZvb3QucGFyZW50Tm9kZT09dGhpcyl7dmFyIHM9Zy5iUmV0cmlldmUhPT1rP2cuYlJldHJpZXZlOmwuYlJldHJpZXZlO2lmKGN8fHMpcmV0dXJuIG8ub0luc3RhbmNlO2lmKGcuYkRlc3Ryb3khPT1rP2cuYkRlc3Ryb3k6bC5iRGVzdHJveSl7by5vSW5zdGFuY2UuZm5EZXN0cm95KCk7CmJyZWFrfWVsc2V7SihvLDAsIkNhbm5vdCByZWluaXRpYWxpc2UgRGF0YVRhYmxlIiwzKTtyZXR1cm59fWlmKG8uc1RhYmxlSWQ9PXRoaXMuaWQpe3Quc3BsaWNlKGosMSk7YnJlYWt9fWlmKG51bGw9PT1lfHwiIj09PWUpdGhpcy5pZD1lPSJEYXRhVGFibGVzX1RhYmxlXyIrbS5leHQuX3VuaXF1ZSsrO3ZhciBwPWguZXh0ZW5kKCEwLHt9LG0ubW9kZWxzLm9TZXR0aW5ncyx7c0Rlc3Ryb3lXaWR0aDpxWzBdLnN0eWxlLndpZHRoLHNJbnN0YW5jZTplLHNUYWJsZUlkOmV9KTtwLm5UYWJsZT10aGlzO3Aub0FwaT1iLmludGVybmFsO3Aub0luaXQ9Zzt0LnB1c2gocCk7cC5vSW5zdGFuY2U9MT09PWIubGVuZ3RoP2I6cS5kYXRhVGFibGUoKTtkYihnKTtnLm9MYW5ndWFnZSYmQ2EoZy5vTGFuZ3VhZ2UpO2cuYUxlbmd0aE1lbnUmJiFnLmlEaXNwbGF5TGVuZ3RoJiYoZy5pRGlzcGxheUxlbmd0aD1oLmlzQXJyYXkoZy5hTGVuZ3RoTWVudVswXSk/Zy5hTGVuZ3RoTWVudVswXVswXTpnLmFMZW5ndGhNZW51WzBdKTsKZz1KYihoLmV4dGVuZCghMCx7fSxsKSxnKTtGKHAub0ZlYXR1cmVzLGcsImJQYWdpbmF0ZSBiTGVuZ3RoQ2hhbmdlIGJGaWx0ZXIgYlNvcnQgYlNvcnRNdWx0aSBiSW5mbyBiUHJvY2Vzc2luZyBiQXV0b1dpZHRoIGJTb3J0Q2xhc3NlcyBiU2VydmVyU2lkZSBiRGVmZXJSZW5kZXIiLnNwbGl0KCIgIikpO0YocCxnLFsiYXNTdHJpcGVDbGFzc2VzIiwiYWpheCIsImZuU2VydmVyRGF0YSIsImZuRm9ybWF0TnVtYmVyIiwic1NlcnZlck1ldGhvZCIsImFhU29ydGluZyIsImFhU29ydGluZ0ZpeGVkIiwiYUxlbmd0aE1lbnUiLCJzUGFnaW5hdGlvblR5cGUiLCJzQWpheFNvdXJjZSIsInNBamF4RGF0YVByb3AiLCJpU3RhdGVEdXJhdGlvbiIsInNEb20iLCJiU29ydENlbGxzVG9wIiwiaVRhYkluZGV4IiwiZm5TdGF0ZUxvYWRDYWxsYmFjayIsImZuU3RhdGVTYXZlQ2FsbGJhY2siLCJyZW5kZXJlciIsInNlYXJjaERlbGF5Iiwicm93SWQiLFsiaUNvb2tpZUR1cmF0aW9uIiwiaVN0YXRlRHVyYXRpb24iXSwKWyJvU2VhcmNoIiwib1ByZXZpb3VzU2VhcmNoIl0sWyJhb1NlYXJjaENvbHMiLCJhb1ByZVNlYXJjaENvbHMiXSxbImlEaXNwbGF5TGVuZ3RoIiwiX2lEaXNwbGF5TGVuZ3RoIl1dKTtGKHAub1Njcm9sbCxnLFtbInNTY3JvbGxYIiwic1giXSxbInNTY3JvbGxYSW5uZXIiLCJzWElubmVyIl0sWyJzU2Nyb2xsWSIsInNZIl0sWyJiU2Nyb2xsQ29sbGFwc2UiLCJiQ29sbGFwc2UiXV0pO0YocC5vTGFuZ3VhZ2UsZywiZm5JbmZvQ2FsbGJhY2siKTt6KHAsImFvRHJhd0NhbGxiYWNrIixnLmZuRHJhd0NhbGxiYWNrLCJ1c2VyIik7eihwLCJhb1NlcnZlclBhcmFtcyIsZy5mblNlcnZlclBhcmFtcywidXNlciIpO3oocCwiYW9TdGF0ZVNhdmVQYXJhbXMiLGcuZm5TdGF0ZVNhdmVQYXJhbXMsInVzZXIiKTt6KHAsImFvU3RhdGVMb2FkUGFyYW1zIixnLmZuU3RhdGVMb2FkUGFyYW1zLCJ1c2VyIik7eihwLCJhb1N0YXRlTG9hZGVkIixnLmZuU3RhdGVMb2FkZWQsInVzZXIiKTt6KHAsImFvUm93Q2FsbGJhY2siLApnLmZuUm93Q2FsbGJhY2ssInVzZXIiKTt6KHAsImFvUm93Q3JlYXRlZENhbGxiYWNrIixnLmZuQ3JlYXRlZFJvdywidXNlciIpO3oocCwiYW9IZWFkZXJDYWxsYmFjayIsZy5mbkhlYWRlckNhbGxiYWNrLCJ1c2VyIik7eihwLCJhb0Zvb3RlckNhbGxiYWNrIixnLmZuRm9vdGVyQ2FsbGJhY2ssInVzZXIiKTt6KHAsImFvSW5pdENvbXBsZXRlIixnLmZuSW5pdENvbXBsZXRlLCJ1c2VyIik7eihwLCJhb1ByZURyYXdDYWxsYmFjayIsZy5mblByZURyYXdDYWxsYmFjaywidXNlciIpO3Aucm93SWRGbj1RKGcucm93SWQpO2ZiKHApO3ZhciB1PXAub0NsYXNzZXM7aC5leHRlbmQodSxtLmV4dC5jbGFzc2VzLGcub0NsYXNzZXMpO3EuYWRkQ2xhc3ModS5zVGFibGUpO3AuaUluaXREaXNwbGF5U3RhcnQ9PT1rJiYocC5pSW5pdERpc3BsYXlTdGFydD1nLmlEaXNwbGF5U3RhcnQscC5faURpc3BsYXlTdGFydD1nLmlEaXNwbGF5U3RhcnQpO251bGwhPT1nLmlEZWZlckxvYWRpbmcmJihwLmJEZWZlckxvYWRpbmc9CiEwLGU9aC5pc0FycmF5KGcuaURlZmVyTG9hZGluZykscC5faVJlY29yZHNEaXNwbGF5PWU/Zy5pRGVmZXJMb2FkaW5nWzBdOmcuaURlZmVyTG9hZGluZyxwLl9pUmVjb3Jkc1RvdGFsPWU/Zy5pRGVmZXJMb2FkaW5nWzFdOmcuaURlZmVyTG9hZGluZyk7dmFyIHY9cC5vTGFuZ3VhZ2U7aC5leHRlbmQoITAsdixnLm9MYW5ndWFnZSk7di5zVXJsJiYoaC5hamF4KHtkYXRhVHlwZToianNvbiIsdXJsOnYuc1VybCxzdWNjZXNzOmZ1bmN0aW9uKGEpe0NhKGEpO0kobC5vTGFuZ3VhZ2UsYSk7aC5leHRlbmQodHJ1ZSx2LGEpO2dhKHApfSxlcnJvcjpmdW5jdGlvbigpe2dhKHApfX0pLG49ITApO251bGw9PT1nLmFzU3RyaXBlQ2xhc3NlcyYmKHAuYXNTdHJpcGVDbGFzc2VzPVt1LnNTdHJpcGVPZGQsdS5zU3RyaXBlRXZlbl0pO3ZhciBlPXAuYXNTdHJpcGVDbGFzc2VzLHg9cS5jaGlsZHJlbigidGJvZHkiKS5maW5kKCJ0ciIpLmVxKDApOy0xIT09aC5pbkFycmF5KCEwLGgubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIHguaGFzQ2xhc3MoYSl9KSkmJgooaCgidGJvZHkgdHIiLHRoaXMpLnJlbW92ZUNsYXNzKGUuam9pbigiICIpKSxwLmFzRGVzdHJveVN0cmlwZXM9ZS5zbGljZSgpKTtlPVtdO3Q9dGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGhlYWQiKTswIT09dC5sZW5ndGgmJihkYShwLmFvSGVhZGVyLHRbMF0pLGU9cmEocCkpO2lmKG51bGw9PT1nLmFvQ29sdW1ucyl7dD1bXTtqPTA7Zm9yKGk9ZS5sZW5ndGg7ajxpO2orKyl0LnB1c2gobnVsbCl9ZWxzZSB0PWcuYW9Db2x1bW5zO2o9MDtmb3IoaT10Lmxlbmd0aDtqPGk7aisrKURhKHAsZT9lW2pdOm51bGwpO2hiKHAsZy5hb0NvbHVtbkRlZnMsdCxmdW5jdGlvbihhLGIpe2phKHAsYSxiKX0pO2lmKHgubGVuZ3RoKXt2YXIgdz1mdW5jdGlvbihhLGIpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiZGF0YS0iK2IpIT09bnVsbD9iOm51bGx9O2goeFswXSkuY2hpbGRyZW4oInRoLCB0ZCIpLmVhY2goZnVuY3Rpb24oYSxiKXt2YXIgYz1wLmFvQ29sdW1uc1thXTtpZihjLm1EYXRhPT09CmEpe3ZhciBkPXcoYiwic29ydCIpfHx3KGIsIm9yZGVyIiksZT13KGIsImZpbHRlciIpfHx3KGIsInNlYXJjaCIpO2lmKGQhPT1udWxsfHxlIT09bnVsbCl7Yy5tRGF0YT17XzphKyIuZGlzcGxheSIsc29ydDpkIT09bnVsbD9hKyIuQGRhdGEtIitkOmssdHlwZTpkIT09bnVsbD9hKyIuQGRhdGEtIitkOmssZmlsdGVyOmUhPT1udWxsP2ErIi5AZGF0YS0iK2U6a307amEocCxhKX19fSl9dmFyIFQ9cC5vRmVhdHVyZXMsZT1mdW5jdGlvbigpe2lmKGcuYWFTb3J0aW5nPT09ayl7dmFyIGE9cC5hYVNvcnRpbmc7aj0wO2ZvcihpPWEubGVuZ3RoO2o8aTtqKyspYVtqXVsxXT1wLmFvQ29sdW1uc1tqXS5hc1NvcnRpbmdbMF19d2EocCk7VC5iU29ydCYmeihwLCJhb0RyYXdDYWxsYmFjayIsZnVuY3Rpb24oKXtpZihwLmJTb3J0ZWQpe3ZhciBhPVYocCksYj17fTtoLmVhY2goYSxmdW5jdGlvbihhLGMpe2JbYy5zcmNdPWMuZGlyfSk7cihwLG51bGwsIm9yZGVyIixbcCxhLGJdKTtIYihwKX19KTsKeihwLCJhb0RyYXdDYWxsYmFjayIsZnVuY3Rpb24oKXsocC5iU29ydGVkfHx5KHApPT09InNzcCJ8fFQuYkRlZmVyUmVuZGVyKSYmd2EocCl9LCJzYyIpO3ZhciBhPXEuY2hpbGRyZW4oImNhcHRpb24iKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5fY2FwdGlvblNpZGU9aCh0aGlzKS5jc3MoImNhcHRpb24tc2lkZSIpfSksYj1xLmNoaWxkcmVuKCJ0aGVhZCIpO2IubGVuZ3RoPT09MCYmKGI9aCgiPHRoZWFkLz4iKS5hcHBlbmRUbyhxKSk7cC5uVEhlYWQ9YlswXTtiPXEuY2hpbGRyZW4oInRib2R5Iik7Yi5sZW5ndGg9PT0wJiYoYj1oKCI8dGJvZHkvPiIpLmFwcGVuZFRvKHEpKTtwLm5UQm9keT1iWzBdO2I9cS5jaGlsZHJlbigidGZvb3QiKTtpZihiLmxlbmd0aD09PTAmJmEubGVuZ3RoPjAmJihwLm9TY3JvbGwuc1ghPT0iInx8cC5vU2Nyb2xsLnNZIT09IiIpKWI9aCgiPHRmb290Lz4iKS5hcHBlbmRUbyhxKTtpZihiLmxlbmd0aD09PTB8fGIuY2hpbGRyZW4oKS5sZW5ndGg9PT0wKXEuYWRkQ2xhc3ModS5zTm9Gb290ZXIpOwplbHNlIGlmKGIubGVuZ3RoPjApe3AublRGb290PWJbMF07ZGEocC5hb0Zvb3RlcixwLm5URm9vdCl9aWYoZy5hYURhdGEpZm9yKGo9MDtqPGcuYWFEYXRhLmxlbmd0aDtqKyspTShwLGcuYWFEYXRhW2pdKTtlbHNlKHAuYkRlZmVyTG9hZGluZ3x8eShwKT09ImRvbSIpJiZtYShwLGgocC5uVEJvZHkpLmNoaWxkcmVuKCJ0ciIpKTtwLmFpRGlzcGxheT1wLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpO3AuYkluaXRpYWxpc2VkPXRydWU7bj09PWZhbHNlJiZnYShwKX07Zy5iU3RhdGVTYXZlPyhULmJTdGF0ZVNhdmU9ITAseihwLCJhb0RyYXdDYWxsYmFjayIseGEsInN0YXRlX3NhdmUiKSxJYihwLGcsZSkpOmUoKX19KTtiPW51bGw7cmV0dXJuIHRoaXN9LHgscyxvLHUsWGE9e30sTWI9L1tcclxuXS9nLEFhPS88Lio/Pi9nLFpiPS9eXGR7Miw0fVtcLlwvXC1dXGR7MSwyfVtcLlwvXC1dXGR7MSwyfShbVCBdezF9XGR7MSwyfVs6XC5dXGR7Mn0oW1wuOl1cZHsyfSk/KT8kLywkYj1SZWdFeHAoIihcXC98XFwufFxcKnxcXCt8XFw/fFxcfHxcXCh8XFwpfFxcW3xcXF18XFx7fFxcfXxcXFxcfFxcJHxcXF58XFwtKSIsCiJnIiksV2E9L1snLCTCo+KCrMKlJVx1MjAwOVx1MjAyRlx1MjBCRFx1MjBhOVx1MjBCQXJma10vZ2ksTD1mdW5jdGlvbihhKXtyZXR1cm4hYXx8ITA9PT1hfHwiLSI9PT1hPyEwOiExfSxOYj1mdW5jdGlvbihhKXt2YXIgYj1wYXJzZUludChhLDEwKTtyZXR1cm4haXNOYU4oYikmJmlzRmluaXRlKGEpP2I6bnVsbH0sT2I9ZnVuY3Rpb24oYSxiKXtYYVtiXXx8KFhhW2JdPVJlZ0V4cChQYShiKSwiZyIpKTtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiBhJiYiLiIhPT1iP2EucmVwbGFjZSgvXC4vZywiIikucmVwbGFjZShYYVtiXSwiLiIpOmF9LFlhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ic3RyaW5nIj09PXR5cGVvZiBhO2lmKEwoYSkpcmV0dXJuITA7YiYmZCYmKGE9T2IoYSxiKSk7YyYmZCYmKGE9YS5yZXBsYWNlKFdhLCIiKSk7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQoYSkpJiZpc0Zpbml0ZShhKX0sUGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBMKGEpPyEwOiEoTChhKXx8InN0cmluZyI9PT0KdHlwZW9mIGEpP251bGw6WWEoYS5yZXBsYWNlKEFhLCIiKSxiLGMpPyEwOm51bGx9LEQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9MCxmPWEubGVuZ3RoO2lmKGMhPT1rKWZvcig7ZTxmO2UrKylhW2VdJiZhW2VdW2JdJiZkLnB1c2goYVtlXVtiXVtjXSk7ZWxzZSBmb3IoO2U8ZjtlKyspYVtlXSYmZC5wdXNoKGFbZV1bYl0pO3JldHVybiBkfSxpYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1bXSxmPTAsZz1iLmxlbmd0aDtpZihkIT09aylmb3IoO2Y8ZztmKyspYVtiW2ZdXVtjXSYmZS5wdXNoKGFbYltmXV1bY11bZF0pO2Vsc2UgZm9yKDtmPGc7ZisrKWUucHVzaChhW2JbZl1dW2NdKTtyZXR1cm4gZX0sVz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ7Yj09PWs/KGI9MCxkPWEpOihkPWIsYj1hKTtmb3IodmFyIGU9YjtlPGQ7ZSsrKWMucHVzaChlKTtyZXR1cm4gY30sUWI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspYVtjXSYmYi5wdXNoKGFbY10pOwpyZXR1cm4gYn0scWE9ZnVuY3Rpb24oYSl7dmFyIGI7YTp7aWYoISgyPmEubGVuZ3RoKSl7Yj1hLnNsaWNlKCkuc29ydCgpO2Zvcih2YXIgYz1iWzBdLGQ9MSxlPWIubGVuZ3RoO2Q8ZTtkKyspe2lmKGJbZF09PT1jKXtiPSExO2JyZWFrIGF9Yz1iW2RdfX1iPSEwfWlmKGIpcmV0dXJuIGEuc2xpY2UoKTtiPVtdO3ZhciBlPWEubGVuZ3RoLGYsZz0wLGQ9MDthOmZvcig7ZDxlO2QrKyl7Yz1hW2RdO2ZvcihmPTA7ZjxnO2YrKylpZihiW2ZdPT09Yyljb250aW51ZSBhO2IucHVzaChjKTtnKyt9cmV0dXJuIGJ9O20udXRpbD17dGhyb3R0bGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iIT09az9iOjIwMCxkLGU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxnPStuZXcgRGF0ZSxqPWFyZ3VtZW50cztkJiZnPGQrYz8oY2xlYXJUaW1lb3V0KGUpLGU9c2V0VGltZW91dChmdW5jdGlvbigpe2Q9azthLmFwcGx5KGIsail9LGMpKTooZD1nLGEuYXBwbHkoYixqKSl9fSxlc2NhcGVSZWdleDpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKCRiLAoiXFwkMSIpfX07dmFyIEE9ZnVuY3Rpb24oYSxiLGMpe2FbYl0hPT1rJiYoYVtjXT1hW2JdKX0sYmE9L1xbLio/XF0kLyxVPS9cKFwpJC8sUGE9bS51dGlsLmVzY2FwZVJlZ2V4LHZhPWgoIjxkaXY+IilbMF0sV2I9dmEudGV4dENvbnRlbnQhPT1rLFliPS88Lio/Pi9nLE5hPW0udXRpbC50aHJvdHRsZSxSYj1bXSx3PUFycmF5LnByb3RvdHlwZSxhYz1mdW5jdGlvbihhKXt2YXIgYixjLGQ9bS5zZXR0aW5ncyxlPWgubWFwKGQsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRhYmxlfSk7aWYoYSl7aWYoYS5uVGFibGUmJmEub0FwaSlyZXR1cm5bYV07aWYoYS5ub2RlTmFtZSYmInRhYmxlIj09PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gYj1oLmluQXJyYXkoYSxlKSwtMSE9PWI/W2RbYl1dOm51bGw7aWYoYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzKXJldHVybiBhLnNldHRpbmdzKCkudG9BcnJheSgpOyJzdHJpbmciPT09dHlwZW9mIGE/Yz1oKGEpOmEgaW5zdGFuY2VvZgpoJiYoYz1hKX1lbHNlIHJldHVybltdO2lmKGMpcmV0dXJuIGMubWFwKGZ1bmN0aW9uKCl7Yj1oLmluQXJyYXkodGhpcyxlKTtyZXR1cm4tMSE9PWI/ZFtiXTpudWxsfSkudG9BcnJheSgpfTtzPWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgcykpcmV0dXJuIG5ldyBzKGEsYik7dmFyIGM9W10sZD1mdW5jdGlvbihhKXsoYT1hYyhhKSkmJihjPWMuY29uY2F0KGEpKX07aWYoaC5pc0FycmF5KGEpKWZvcih2YXIgZT0wLGY9YS5sZW5ndGg7ZTxmO2UrKylkKGFbZV0pO2Vsc2UgZChhKTt0aGlzLmNvbnRleHQ9cWEoYyk7YiYmaC5tZXJnZSh0aGlzLGIpO3RoaXMuc2VsZWN0b3I9e3Jvd3M6bnVsbCxjb2xzOm51bGwsb3B0czpudWxsfTtzLmV4dGVuZCh0aGlzLHRoaXMsUmIpfTttLkFwaT1zO2guZXh0ZW5kKHMucHJvdG90eXBlLHthbnk6ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMuY291bnQoKX0sY29uY2F0OncuY29uY2F0LGNvbnRleHQ6W10sY291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mbGF0dGVuKCkubGVuZ3RofSwKZWFjaDpmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2I8YztiKyspYS5jYWxsKHRoaXMsdGhpc1tiXSxiLHRoaXMpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQ7cmV0dXJuIGIubGVuZ3RoPmE/bmV3IHMoYlthXSx0aGlzW2FdKTpudWxsfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYody5maWx0ZXIpYj13LmZpbHRlci5jYWxsKHRoaXMsYSx0aGlzKTtlbHNlIGZvcih2YXIgYz0wLGQ9dGhpcy5sZW5ndGg7YzxkO2MrKylhLmNhbGwodGhpcyx0aGlzW2NdLGMsdGhpcykmJmIucHVzaCh0aGlzW2NdKTtyZXR1cm4gbmV3IHModGhpcy5jb250ZXh0LGIpfSxmbGF0dGVuOmZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIG5ldyBzKHRoaXMuY29udGV4dCxhLmNvbmNhdC5hcHBseShhLHRoaXMudG9BcnJheSgpKSl9LGpvaW46dy5qb2luLGluZGV4T2Y6dy5pbmRleE9mfHxmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1ifHwwLApkPXRoaXMubGVuZ3RoO2M8ZDtjKyspaWYodGhpc1tjXT09PWEpcmV0dXJuIGM7cmV0dXJuLTF9LGl0ZXJhdG9yOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVtdLGYsZyxqLGgsbixsPXRoaXMuY29udGV4dCxtLG8sdT10aGlzLnNlbGVjdG9yOyJzdHJpbmciPT09dHlwZW9mIGEmJihkPWMsYz1iLGI9YSxhPSExKTtnPTA7Zm9yKGo9bC5sZW5ndGg7ZzxqO2crKyl7dmFyIHI9bmV3IHMobFtnXSk7aWYoInRhYmxlIj09PWIpZj1jLmNhbGwocixsW2ddLGcpLGYhPT1rJiZlLnB1c2goZik7ZWxzZSBpZigiY29sdW1ucyI9PT1ifHwicm93cyI9PT1iKWY9Yy5jYWxsKHIsbFtnXSx0aGlzW2ddLGcpLGYhPT1rJiZlLnB1c2goZik7ZWxzZSBpZigiY29sdW1uIj09PWJ8fCJjb2x1bW4tcm93cyI9PT1ifHwicm93Ij09PWJ8fCJjZWxsIj09PWIpe289dGhpc1tnXTsiY29sdW1uLXJvd3MiPT09YiYmKG09QmEobFtnXSx1Lm9wdHMpKTtoPTA7Zm9yKG49by5sZW5ndGg7aDxuO2grKylmPW9baF0sZj0KImNlbGwiPT09Yj9jLmNhbGwocixsW2ddLGYucm93LGYuY29sdW1uLGcsaCk6Yy5jYWxsKHIsbFtnXSxmLGcsaCxtKSxmIT09ayYmZS5wdXNoKGYpfX1yZXR1cm4gZS5sZW5ndGh8fGQ/KGE9bmV3IHMobCxhP2UuY29uY2F0LmFwcGx5KFtdLGUpOmUpLGI9YS5zZWxlY3RvcixiLnJvd3M9dS5yb3dzLGIuY29scz11LmNvbHMsYi5vcHRzPXUub3B0cyxhKTp0aGlzfSxsYXN0SW5kZXhPZjp3Lmxhc3RJbmRleE9mfHxmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmluZGV4T2YuYXBwbHkodGhpcy50b0FycmF5LnJldmVyc2UoKSxhcmd1bWVudHMpfSxsZW5ndGg6MCxtYXA6ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYody5tYXApYj13Lm1hcC5jYWxsKHRoaXMsYSx0aGlzKTtlbHNlIGZvcih2YXIgYz0wLGQ9dGhpcy5sZW5ndGg7YzxkO2MrKyliLnB1c2goYS5jYWxsKHRoaXMsdGhpc1tjXSxjKSk7cmV0dXJuIG5ldyBzKHRoaXMuY29udGV4dCxiKX0scGx1Y2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBiW2FdfSl9LApwb3A6dy5wb3AscHVzaDp3LnB1c2gscmVkdWNlOncucmVkdWNlfHxmdW5jdGlvbihhLGIpe3JldHVybiBnYih0aGlzLGEsYiwwLHRoaXMubGVuZ3RoLDEpfSxyZWR1Y2VSaWdodDp3LnJlZHVjZVJpZ2h0fHxmdW5jdGlvbihhLGIpe3JldHVybiBnYih0aGlzLGEsYix0aGlzLmxlbmd0aC0xLC0xLC0xKX0scmV2ZXJzZTp3LnJldmVyc2Usc2VsZWN0b3I6bnVsbCxzaGlmdDp3LnNoaWZ0LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBzKHRoaXMuY29udGV4dCx0aGlzKX0sc29ydDp3LnNvcnQsc3BsaWNlOncuc3BsaWNlLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdy5zbGljZS5jYWxsKHRoaXMpfSx0byQ6ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzKX0sdG9KUXVlcnk6ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzKX0sdW5pcXVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBzKHRoaXMuY29udGV4dCxxYSh0aGlzKSl9LHVuc2hpZnQ6dy51bnNoaWZ0fSk7cy5leHRlbmQ9ZnVuY3Rpb24oYSwKYixjKXtpZihjLmxlbmd0aCYmYiYmKGIgaW5zdGFuY2VvZiBzfHxiLl9fZHRfd3JhcHBlcikpe3ZhciBkLGUsZixnPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD1iLmFwcGx5KGEsYXJndW1lbnRzKTtzLmV4dGVuZChkLGQsYy5tZXRob2RFeHQpO3JldHVybiBkfX07ZD0wO2ZvcihlPWMubGVuZ3RoO2Q8ZTtkKyspZj1jW2RdLGJbZi5uYW1lXT0iZnVuY3Rpb24iPT09dHlwZW9mIGYudmFsP2coYSxmLnZhbCxmKTpoLmlzUGxhaW5PYmplY3QoZi52YWwpP3t9OmYudmFsLGJbZi5uYW1lXS5fX2R0X3dyYXBwZXI9ITAscy5leHRlbmQoYSxiW2YubmFtZV0sZi5wcm9wRXh0KX19O3MucmVnaXN0ZXI9bz1mdW5jdGlvbihhLGIpe2lmKGguaXNBcnJheShhKSlmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspcy5yZWdpc3RlcihhW2NdLGIpO2Vsc2UgZm9yKHZhciBlPWEuc3BsaXQoIi4iKSxmPVJiLGcsaixjPTAsZD1lLmxlbmd0aDtjPGQ7YysrKXtnPShqPS0xIT09CmVbY10uaW5kZXhPZigiKCkiKSk/ZVtjXS5yZXBsYWNlKCIoKSIsIiIpOmVbY107dmFyIGk7YTp7aT0wO2Zvcih2YXIgbj1mLmxlbmd0aDtpPG47aSsrKWlmKGZbaV0ubmFtZT09PWcpe2k9ZltpXTticmVhayBhfWk9bnVsbH1pfHwoaT17bmFtZTpnLHZhbDp7fSxtZXRob2RFeHQ6W10scHJvcEV4dDpbXX0sZi5wdXNoKGkpKTtjPT09ZC0xP2kudmFsPWI6Zj1qP2kubWV0aG9kRXh0OmkucHJvcEV4dH19O3MucmVnaXN0ZXJQbHVyYWw9dT1mdW5jdGlvbihhLGIsYyl7cy5yZWdpc3RlcihhLGMpO3MucmVnaXN0ZXIoYixmdW5jdGlvbigpe3ZhciBhPWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBhPT09dGhpcz90aGlzOmEgaW5zdGFuY2VvZiBzP2EubGVuZ3RoP2guaXNBcnJheShhWzBdKT9uZXcgcyhhLmNvbnRleHQsYVswXSk6YVswXTprOmF9KX07bygidGFibGVzKCkiLGZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpe2I9czt2YXIgYz10aGlzLmNvbnRleHQ7aWYoIm51bWJlciI9PT0KdHlwZW9mIGEpYT1bY1thXV07ZWxzZSB2YXIgZD1oLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5UYWJsZX0pLGE9aChkKS5maWx0ZXIoYSkubWFwKGZ1bmN0aW9uKCl7dmFyIGE9aC5pbkFycmF5KHRoaXMsZCk7cmV0dXJuIGNbYV19KS50b0FycmF5KCk7Yj1uZXcgYihhKX1lbHNlIGI9dGhpcztyZXR1cm4gYn0pO28oInRhYmxlKCkiLGZ1bmN0aW9uKGEpe3ZhciBhPXRoaXMudGFibGVzKGEpLGI9YS5jb250ZXh0O3JldHVybiBiLmxlbmd0aD9uZXcgcyhiWzBdKTphfSk7dSgidGFibGVzKCkubm9kZXMoKSIsInRhYmxlKCkubm9kZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRhYmxlfSwxKX0pO3UoInRhYmxlcygpLmJvZHkoKSIsInRhYmxlKCkuYm9keSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRCb2R5fSwxKX0pO3UoInRhYmxlcygpLmhlYWRlcigpIiwKInRhYmxlKCkuaGVhZGVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtyZXR1cm4gYS5uVEhlYWR9LDEpfSk7dSgidGFibGVzKCkuZm9vdGVyKCkiLCJ0YWJsZSgpLmZvb3RlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRGb290fSwxKX0pO3UoInRhYmxlcygpLmNvbnRhaW5lcnMoKSIsInRhYmxlKCkuY29udGFpbmVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtyZXR1cm4gYS5uVGFibGVXcmFwcGVyfSwxKX0pO28oImRyYXcoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXsicGFnZSI9PT1hP04oYik6KCJzdHJpbmciPT09dHlwZW9mIGEmJihhPSJmdWxsLWhvbGQiPT09YT8hMTohMCksUyhiLCExPT09YSkpfSl9KTtvKCJwYWdlKCkiLGZ1bmN0aW9uKGEpe3JldHVybiBhPT09Cms/dGhpcy5wYWdlLmluZm8oKS5wYWdlOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtTYShiLGEpfSl9KTtvKCJwYWdlLmluZm8oKSIsZnVuY3Rpb24oKXtpZigwPT09dGhpcy5jb250ZXh0Lmxlbmd0aClyZXR1cm4gazt2YXIgYT10aGlzLmNvbnRleHRbMF0sYj1hLl9pRGlzcGxheVN0YXJ0LGM9YS5vRmVhdHVyZXMuYlBhZ2luYXRlP2EuX2lEaXNwbGF5TGVuZ3RoOi0xLGQ9YS5mblJlY29yZHNEaXNwbGF5KCksZT0tMT09PWM7cmV0dXJue3BhZ2U6ZT8wOk1hdGguZmxvb3IoYi9jKSxwYWdlczplPzE6TWF0aC5jZWlsKGQvYyksc3RhcnQ6YixlbmQ6YS5mbkRpc3BsYXlFbmQoKSxsZW5ndGg6YyxyZWNvcmRzVG90YWw6YS5mblJlY29yZHNUb3RhbCgpLHJlY29yZHNEaXNwbGF5OmQsc2VydmVyU2lkZToic3NwIj09PXkoYSl9fSk7bygicGFnZS5sZW4oKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1rPzAhPT10aGlzLmNvbnRleHQubGVuZ3RoP3RoaXMuY29udGV4dFswXS5faURpc3BsYXlMZW5ndGg6Cms6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe1FhKGIsYSl9KX0pO3ZhciBTYj1mdW5jdGlvbihhLGIsYyl7aWYoYyl7dmFyIGQ9bmV3IHMoYSk7ZC5vbmUoImRyYXciLGZ1bmN0aW9uKCl7YyhkLmFqYXguanNvbigpKX0pfWlmKCJzc3AiPT15KGEpKVMoYSxiKTtlbHNle0MoYSwhMCk7dmFyIGU9YS5qcVhIUjtlJiY0IT09ZS5yZWFkeVN0YXRlJiZlLmFib3J0KCk7c2EoYSxbXSxmdW5jdGlvbihjKXtuYShhKTtmb3IodmFyIGM9dGEoYSxjKSxkPTAsZT1jLmxlbmd0aDtkPGU7ZCsrKU0oYSxjW2RdKTtTKGEsYik7QyhhLCExKX0pfX07bygiYWpheC5qc29uKCkiLGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jb250ZXh0O2lmKDA8YS5sZW5ndGgpcmV0dXJuIGFbMF0uanNvbn0pO28oImFqYXgucGFyYW1zKCkiLGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jb250ZXh0O2lmKDA8YS5sZW5ndGgpcmV0dXJuIGFbMF0ub0FqYXhEYXRhfSk7bygiYWpheC5yZWxvYWQoKSIsZnVuY3Rpb24oYSwKYil7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihjKXtTYihjLCExPT09YixhKX0pfSk7bygiYWpheC51cmwoKSIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jb250ZXh0O2lmKGE9PT1rKXtpZigwPT09Yi5sZW5ndGgpcmV0dXJuIGs7Yj1iWzBdO3JldHVybiBiLmFqYXg/aC5pc1BsYWluT2JqZWN0KGIuYWpheCk/Yi5hamF4LnVybDpiLmFqYXg6Yi5zQWpheFNvdXJjZX1yZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe2guaXNQbGFpbk9iamVjdChiLmFqYXgpP2IuYWpheC51cmw9YTpiLmFqYXg9YX0pfSk7bygiYWpheC51cmwoKS5sb2FkKCkiLGZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihjKXtTYihjLCExPT09YixhKX0pfSk7dmFyIFphPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9W10sZyxqLGksbixsLG07aT10eXBlb2YgYjtpZighYnx8InN0cmluZyI9PT1pfHwiZnVuY3Rpb24iPT09Cml8fGIubGVuZ3RoPT09ayliPVtiXTtpPTA7Zm9yKG49Yi5sZW5ndGg7aTxuO2krKyl7aj1iW2ldJiZiW2ldLnNwbGl0JiYhYltpXS5tYXRjaCgvW1xbXCg6XS8pP2JbaV0uc3BsaXQoIiwiKTpbYltpXV07bD0wO2ZvcihtPWoubGVuZ3RoO2w8bTtsKyspKGc9Yygic3RyaW5nIj09PXR5cGVvZiBqW2xdP2gudHJpbShqW2xdKTpqW2xdKSkmJmcubGVuZ3RoJiYoZj1mLmNvbmNhdChnKSl9YT14LnNlbGVjdG9yW2FdO2lmKGEubGVuZ3RoKXtpPTA7Zm9yKG49YS5sZW5ndGg7aTxuO2krKylmPWFbaV0oZCxlLGYpfXJldHVybiBxYShmKX0sJGE9ZnVuY3Rpb24oYSl7YXx8KGE9e30pO2EuZmlsdGVyJiZhLnNlYXJjaD09PWsmJihhLnNlYXJjaD1hLmZpbHRlcik7cmV0dXJuIGguZXh0ZW5kKHtzZWFyY2g6Im5vbmUiLG9yZGVyOiJjdXJyZW50IixwYWdlOiJhbGwifSxhKX0sYWI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aDtiPGM7YisrKWlmKDA8YVtiXS5sZW5ndGgpcmV0dXJuIGFbMF09CmFbYl0sYVswXS5sZW5ndGg9MSxhLmxlbmd0aD0xLGEuY29udGV4dD1bYS5jb250ZXh0W2JdXSxhO2EubGVuZ3RoPTA7cmV0dXJuIGF9LEJhPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9W10sZz1hLmFpRGlzcGxheTtjPWEuYWlEaXNwbGF5TWFzdGVyO3ZhciBqPWIuc2VhcmNoO2Q9Yi5vcmRlcjtlPWIucGFnZTtpZigic3NwIj09eShhKSlyZXR1cm4icmVtb3ZlZCI9PT1qP1tdOlcoMCxjLmxlbmd0aCk7aWYoImN1cnJlbnQiPT1lKXtjPWEuX2lEaXNwbGF5U3RhcnQ7Zm9yKGQ9YS5mbkRpc3BsYXlFbmQoKTtjPGQ7YysrKWYucHVzaChnW2NdKX1lbHNlIGlmKCJjdXJyZW50Ij09ZHx8ImFwcGxpZWQiPT1kKWY9Im5vbmUiPT1qP2Muc2xpY2UoKToiYXBwbGllZCI9PWo/Zy5zbGljZSgpOmgubWFwKGMsZnVuY3Rpb24oYSl7cmV0dXJuLTE9PT1oLmluQXJyYXkoYSxnKT9hOm51bGx9KTtlbHNlIGlmKCJpbmRleCI9PWR8fCJvcmlnaW5hbCI9PWQpe2M9MDtmb3IoZD1hLmFvRGF0YS5sZW5ndGg7YzwKZDtjKyspIm5vbmUiPT1qP2YucHVzaChjKTooZT1oLmluQXJyYXkoYyxnKSwoLTE9PT1lJiYicmVtb3ZlZCI9PWp8fDA8PWUmJiJhcHBsaWVkIj09aikmJmYucHVzaChjKSl9cmV0dXJuIGZ9O28oInJvd3MoKSIsZnVuY3Rpb24oYSxiKXthPT09az9hPSIiOmguaXNQbGFpbk9iamVjdChhKSYmKGI9YSxhPSIiKTt2YXIgYj0kYShiKSxjPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihjKXt2YXIgZT1iLGY7cmV0dXJuIFphKCJyb3ciLGEsZnVuY3Rpb24oYSl7dmFyIGI9TmIoYSk7aWYoYiE9PW51bGwmJiFlKXJldHVybltiXTtmfHwoZj1CYShjLGUpKTtpZihiIT09bnVsbCYmaC5pbkFycmF5KGIsZikhPT0tMSlyZXR1cm5bYl07aWYoYT09PW51bGx8fGE9PT1rfHxhPT09IiIpcmV0dXJuIGY7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBoLm1hcChmLGZ1bmN0aW9uKGIpe3ZhciBlPWMuYW9EYXRhW2JdO3JldHVybiBhKGIsZS5fYURhdGEsZS5uVHIpP2I6bnVsbH0pOwpiPVFiKGlhKGMuYW9EYXRhLGYsIm5UciIpKTtpZihhLm5vZGVOYW1lKXtpZihhLl9EVF9Sb3dJbmRleCE9PWspcmV0dXJuW2EuX0RUX1Jvd0luZGV4XTtpZihhLl9EVF9DZWxsSW5kZXgpcmV0dXJuW2EuX0RUX0NlbGxJbmRleC5yb3ddO2I9aChhKS5jbG9zZXN0KCIqW2RhdGEtZHQtcm93XSIpO3JldHVybiBiLmxlbmd0aD9bYi5kYXRhKCJkdC1yb3ciKV06W119aWYodHlwZW9mIGE9PT0ic3RyaW5nIiYmYS5jaGFyQXQoMCk9PT0iIyIpe3ZhciBpPWMuYUlkc1thLnJlcGxhY2UoL14jLywiIildO2lmKGkhPT1rKXJldHVybltpLmlkeF19cmV0dXJuIGgoYikuZmlsdGVyKGEpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLl9EVF9Sb3dJbmRleH0pLnRvQXJyYXkoKX0sYyxlKX0sMSk7Yy5zZWxlY3Rvci5yb3dzPWE7Yy5zZWxlY3Rvci5vcHRzPWI7cmV0dXJuIGN9KTtvKCJyb3dzKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihhLApiKXtyZXR1cm4gYS5hb0RhdGFbYl0ublRyfHxrfSwxKX0pO28oInJvd3MoKS5kYXRhKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoITAsInJvd3MiLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGlhKGEuYW9EYXRhLGIsIl9hRGF0YSIpfSwxKX0pO3UoInJvd3MoKS5jYWNoZSgpIiwicm93KCkuY2FjaGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24oYixjKXt2YXIgZD1iLmFvRGF0YVtjXTtyZXR1cm4ic2VhcmNoIj09PWE/ZC5fYUZpbHRlckRhdGE6ZC5fYVNvcnREYXRhfSwxKX0pO3UoInJvd3MoKS5pbnZhbGlkYXRlKCkiLCJyb3coKS5pbnZhbGlkYXRlKCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGIsYyl7Y2EoYixjLGEpfSl9KTt1KCJyb3dzKCkuaW5kZXhlcygpIiwicm93KCkuaW5kZXgoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihhLApiKXtyZXR1cm4gYn0sMSl9KTt1KCJyb3dzKCkuaWRzKCkiLCJyb3coKS5pZCgpIixmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz10aGlzLmNvbnRleHQsZD0wLGU9Yy5sZW5ndGg7ZDxlO2QrKylmb3IodmFyIGY9MCxnPXRoaXNbZF0ubGVuZ3RoO2Y8ZztmKyspe3ZhciBoPWNbZF0ucm93SWRGbihjW2RdLmFvRGF0YVt0aGlzW2RdW2ZdXS5fYURhdGEpO2IucHVzaCgoITA9PT1hPyIjIjoiIikraCl9cmV0dXJuIG5ldyBzKGMsYil9KTt1KCJyb3dzKCkucmVtb3ZlKCkiLCJyb3coKS5yZW1vdmUoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24oYixjLGQpe3ZhciBlPWIuYW9EYXRhLGY9ZVtjXSxnLGgsaSxuLGw7ZS5zcGxpY2UoYywxKTtnPTA7Zm9yKGg9ZS5sZW5ndGg7ZzxoO2crKylpZihpPWVbZ10sbD1pLmFuQ2VsbHMsbnVsbCE9PWkublRyJiYoaS5uVHIuX0RUX1Jvd0luZGV4PWcpLG51bGwhPT1sKXtpPTA7Zm9yKG49bC5sZW5ndGg7aTwKbjtpKyspbFtpXS5fRFRfQ2VsbEluZGV4LnJvdz1nfW9hKGIuYWlEaXNwbGF5TWFzdGVyLGMpO29hKGIuYWlEaXNwbGF5LGMpO29hKGFbZF0sYywhMSk7MDxiLl9pUmVjb3Jkc0Rpc3BsYXkmJmIuX2lSZWNvcmRzRGlzcGxheS0tO1JhKGIpO2M9Yi5yb3dJZEZuKGYuX2FEYXRhKTtjIT09ayYmZGVsZXRlIGIuYUlkc1tjXX0pO3RoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtmb3IodmFyIGM9MCxkPWEuYW9EYXRhLmxlbmd0aDtjPGQ7YysrKWEuYW9EYXRhW2NdLmlkeD1jfSk7cmV0dXJuIHRoaXN9KTtvKCJyb3dzLmFkZCgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7dmFyIGMsZixnLGg9W107Zj0wO2ZvcihnPWEubGVuZ3RoO2Y8ZztmKyspYz1hW2ZdLGMubm9kZU5hbWUmJiJUUiI9PT1jLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk/aC5wdXNoKG1hKGIsYylbMF0pOmgucHVzaChNKGIsYykpO3JldHVybiBofSwxKSxjPXRoaXMucm93cygtMSk7CmMucG9wKCk7aC5tZXJnZShjLGIpO3JldHVybiBjfSk7bygicm93KCkiLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGFiKHRoaXMucm93cyhhLGIpKX0pO28oInJvdygpLmRhdGEoKSIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jb250ZXh0O2lmKGE9PT1rKXJldHVybiBiLmxlbmd0aCYmdGhpcy5sZW5ndGg/YlswXS5hb0RhdGFbdGhpc1swXV0uX2FEYXRhOms7YlswXS5hb0RhdGFbdGhpc1swXV0uX2FEYXRhPWE7Y2EoYlswXSx0aGlzWzBdLCJkYXRhIik7cmV0dXJuIHRoaXN9KTtvKCJyb3coKS5ub2RlKCkiLGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jb250ZXh0O3JldHVybiBhLmxlbmd0aCYmdGhpcy5sZW5ndGg/YVswXS5hb0RhdGFbdGhpc1swXV0ublRyfHxudWxsOm51bGx9KTtvKCJyb3cuYWRkKCkiLGZ1bmN0aW9uKGEpe2EgaW5zdGFuY2VvZiBoJiZhLmxlbmd0aCYmKGE9YVswXSk7dmFyIGI9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe3JldHVybiBhLm5vZGVOYW1lJiYKIlRSIj09PWEubm9kZU5hbWUudG9VcHBlckNhc2UoKT9tYShiLGEpWzBdOk0oYixhKX0pO3JldHVybiB0aGlzLnJvdyhiWzBdKX0pO3ZhciBiYj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGV4dDtpZihjLmxlbmd0aCYmKGM9Y1swXS5hb0RhdGFbYiE9PWs/YjphWzBdXSkmJmMuX2RldGFpbHMpYy5fZGV0YWlscy5yZW1vdmUoKSxjLl9kZXRhaWxzU2hvdz1rLGMuX2RldGFpbHM9a30sVGI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRleHQ7aWYoYy5sZW5ndGgmJmEubGVuZ3RoKXt2YXIgZD1jWzBdLmFvRGF0YVthWzBdXTtpZihkLl9kZXRhaWxzKXsoZC5fZGV0YWlsc1Nob3c9Yik/ZC5fZGV0YWlscy5pbnNlcnRBZnRlcihkLm5Ucik6ZC5fZGV0YWlscy5kZXRhY2goKTt2YXIgZT1jWzBdLGY9bmV3IHMoZSksZz1lLmFvRGF0YTtmLm9mZigiZHJhdy5kdC5EVF9kZXRhaWxzIGNvbHVtbi12aXNpYmlsaXR5LmR0LkRUX2RldGFpbHMgZGVzdHJveS5kdC5EVF9kZXRhaWxzIik7MDxEKGcsCiJfZGV0YWlscyIpLmxlbmd0aCYmKGYub24oImRyYXcuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oYSxiKXtlPT09YiYmZi5yb3dzKHtwYWdlOiJjdXJyZW50In0pLmVxKDApLmVhY2goZnVuY3Rpb24oYSl7YT1nW2FdO2EuX2RldGFpbHNTaG93JiZhLl9kZXRhaWxzLmluc2VydEFmdGVyKGEublRyKX0pfSksZi5vbigiY29sdW1uLXZpc2liaWxpdHkuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oYSxiKXtpZihlPT09Yilmb3IodmFyIGMsZD1hYShiKSxmPTAsaD1nLmxlbmd0aDtmPGg7ZisrKWM9Z1tmXSxjLl9kZXRhaWxzJiZjLl9kZXRhaWxzLmNoaWxkcmVuKCJ0ZFtjb2xzcGFuXSIpLmF0dHIoImNvbHNwYW4iLGQpfSksZi5vbigiZGVzdHJveS5kdC5EVF9kZXRhaWxzIixmdW5jdGlvbihhLGIpe2lmKGU9PT1iKWZvcih2YXIgYz0wLGQ9Zy5sZW5ndGg7YzxkO2MrKylnW2NdLl9kZXRhaWxzJiZiYihmLGMpfSkpfX19O28oInJvdygpLmNoaWxkKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jb250ZXh0OwppZihhPT09aylyZXR1cm4gYy5sZW5ndGgmJnRoaXMubGVuZ3RoP2NbMF0uYW9EYXRhW3RoaXNbMF1dLl9kZXRhaWxzOms7aWYoITA9PT1hKXRoaXMuY2hpbGQuc2hvdygpO2Vsc2UgaWYoITE9PT1hKWJiKHRoaXMpO2Vsc2UgaWYoYy5sZW5ndGgmJnRoaXMubGVuZ3RoKXt2YXIgZD1jWzBdLGM9Y1swXS5hb0RhdGFbdGhpc1swXV0sZT1bXSxmPWZ1bmN0aW9uKGEsYil7aWYoaC5pc0FycmF5KGEpfHxhIGluc3RhbmNlb2YgaClmb3IodmFyIGM9MCxrPWEubGVuZ3RoO2M8aztjKyspZihhW2NdLGIpO2Vsc2UgYS5ub2RlTmFtZSYmInRyIj09PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9lLnB1c2goYSk6KGM9aCgiPHRyPjx0ZC8+PC90cj4iKS5hZGRDbGFzcyhiKSxoKCJ0ZCIsYykuYWRkQ2xhc3MoYikuaHRtbChhKVswXS5jb2xTcGFuPWFhKGQpLGUucHVzaChjWzBdKSl9O2YoYSxiKTtjLl9kZXRhaWxzJiZjLl9kZXRhaWxzLmRldGFjaCgpO2MuX2RldGFpbHM9aChlKTtjLl9kZXRhaWxzU2hvdyYmCmMuX2RldGFpbHMuaW5zZXJ0QWZ0ZXIoYy5uVHIpfXJldHVybiB0aGlzfSk7byhbInJvdygpLmNoaWxkLnNob3coKSIsInJvdygpLmNoaWxkKCkuc2hvdygpIl0sZnVuY3Rpb24oKXtUYih0aGlzLCEwKTtyZXR1cm4gdGhpc30pO28oWyJyb3coKS5jaGlsZC5oaWRlKCkiLCJyb3coKS5jaGlsZCgpLmhpZGUoKSJdLGZ1bmN0aW9uKCl7VGIodGhpcywhMSk7cmV0dXJuIHRoaXN9KTtvKFsicm93KCkuY2hpbGQucmVtb3ZlKCkiLCJyb3coKS5jaGlsZCgpLnJlbW92ZSgpIl0sZnVuY3Rpb24oKXtiYih0aGlzKTtyZXR1cm4gdGhpc30pO28oInJvdygpLmNoaWxkLmlzU2hvd24oKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoJiZ0aGlzLmxlbmd0aD9hWzBdLmFvRGF0YVt0aGlzWzBdXS5fZGV0YWlsc1Nob3d8fCExOiExfSk7dmFyIGJjPS9eKFteOl0rKToobmFtZXx2aXNJZHh8dmlzaWJsZSkkLyxVYj1mdW5jdGlvbihhLGIsYyxkLGUpe2Zvcih2YXIgYz0KW10sZD0wLGY9ZS5sZW5ndGg7ZDxmO2QrKyljLnB1c2goQihhLGVbZF0sYikpO3JldHVybiBjfTtvKCJjb2x1bW5zKCkiLGZ1bmN0aW9uKGEsYil7YT09PWs/YT0iIjpoLmlzUGxhaW5PYmplY3QoYSkmJihiPWEsYT0iIik7dmFyIGI9JGEoYiksYz10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7dmFyIGU9YSxmPWIsZz1jLmFvQ29sdW1ucyxqPUQoZywic05hbWUiKSxpPUQoZywiblRoIik7cmV0dXJuIFphKCJjb2x1bW4iLGUsZnVuY3Rpb24oYSl7dmFyIGI9TmIoYSk7aWYoYT09PSIiKXJldHVybiBXKGcubGVuZ3RoKTtpZihiIT09bnVsbClyZXR1cm5bYj49MD9iOmcubGVuZ3RoK2JdO2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIil7dmFyIGU9QmEoYyxmKTtyZXR1cm4gaC5tYXAoZyxmdW5jdGlvbihiLGYpe3JldHVybiBhKGYsVWIoYyxmLDAsMCxlKSxpW2ZdKT9mOm51bGx9KX12YXIgaz10eXBlb2YgYT09PSJzdHJpbmciP2EubWF0Y2goYmMpOiIiO2lmKGspc3dpdGNoKGtbMl0pe2Nhc2UgInZpc0lkeCI6Y2FzZSAidmlzaWJsZSI6Yj0KcGFyc2VJbnQoa1sxXSwxMCk7aWYoYjwwKXt2YXIgbT1oLm1hcChnLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYlZpc2libGU/YjpudWxsfSk7cmV0dXJuW21bbS5sZW5ndGgrYl1dfXJldHVybltaKGMsYildO2Nhc2UgIm5hbWUiOnJldHVybiBoLm1hcChqLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1rWzFdP2I6bnVsbH0pO2RlZmF1bHQ6cmV0dXJuW119aWYoYS5ub2RlTmFtZSYmYS5fRFRfQ2VsbEluZGV4KXJldHVyblthLl9EVF9DZWxsSW5kZXguY29sdW1uXTtiPWgoaSkuZmlsdGVyKGEpLm1hcChmdW5jdGlvbigpe3JldHVybiBoLmluQXJyYXkodGhpcyxpKX0pLnRvQXJyYXkoKTtpZihiLmxlbmd0aHx8IWEubm9kZU5hbWUpcmV0dXJuIGI7Yj1oKGEpLmNsb3Nlc3QoIipbZGF0YS1kdC1jb2x1bW5dIik7cmV0dXJuIGIubGVuZ3RoP1tiLmRhdGEoImR0LWNvbHVtbiIpXTpbXX0sYyxmKX0sMSk7Yy5zZWxlY3Rvci5jb2xzPWE7Yy5zZWxlY3Rvci5vcHRzPWI7cmV0dXJuIGN9KTt1KCJjb2x1bW5zKCkuaGVhZGVyKCkiLAoiY29sdW1uKCkuaGVhZGVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5hb0NvbHVtbnNbYl0ublRofSwxKX0pO3UoImNvbHVtbnMoKS5mb290ZXIoKSIsImNvbHVtbigpLmZvb3RlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYW9Db2x1bW5zW2JdLm5UZn0sMSl9KTt1KCJjb2x1bW5zKCkuZGF0YSgpIiwiY29sdW1uKCkuZGF0YSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4tcm93cyIsVWIsMSl9KTt1KCJjb2x1bW5zKCkuZGF0YVNyYygpIiwiY29sdW1uKCkuZGF0YVNyYygpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYW9Db2x1bW5zW2JdLm1EYXRhfSwxKX0pO3UoImNvbHVtbnMoKS5jYWNoZSgpIiwiY29sdW1uKCkuY2FjaGUoKSIsCmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4tcm93cyIsZnVuY3Rpb24oYixjLGQsZSxmKXtyZXR1cm4gaWEoYi5hb0RhdGEsZiwic2VhcmNoIj09PWE/Il9hRmlsdGVyRGF0YSI6Il9hU29ydERhdGEiLGMpfSwxKX0pO3UoImNvbHVtbnMoKS5ub2RlcygpIiwiY29sdW1uKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uLXJvd3MiLGZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGlhKGEuYW9EYXRhLGUsImFuQ2VsbHMiLGIpfSwxKX0pO3UoImNvbHVtbnMoKS52aXNpYmxlKCkiLCJjb2x1bW4oKS52aXNpYmxlKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihiLGMpe2lmKGE9PT1rKXJldHVybiBiLmFvQ29sdW1uc1tjXS5iVmlzaWJsZTt2YXIgZj1iLmFvQ29sdW1ucyxnPWZbY10saj1iLmFvRGF0YSxpLG4sbDtpZihhIT09ayYmZy5iVmlzaWJsZSE9PWEpe2lmKGEpe3ZhciBtPQpoLmluQXJyYXkoITAsRChmLCJiVmlzaWJsZSIpLGMrMSk7aT0wO2ZvcihuPWoubGVuZ3RoO2k8bjtpKyspbD1qW2ldLm5UcixmPWpbaV0uYW5DZWxscyxsJiZsLmluc2VydEJlZm9yZShmW2NdLGZbbV18fG51bGwpfWVsc2UgaChEKGIuYW9EYXRhLCJhbkNlbGxzIixjKSkuZGV0YWNoKCk7Zy5iVmlzaWJsZT1hO2VhKGIsYi5hb0hlYWRlcik7ZWEoYixiLmFvRm9vdGVyKTt4YShiKX19KTthIT09ayYmKHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYyxlKXtyKGMsbnVsbCwiY29sdW1uLXZpc2liaWxpdHkiLFtjLGUsYSxiXSl9KSwoYj09PWt8fGIpJiZ0aGlzLmNvbHVtbnMuYWRqdXN0KCkpO3JldHVybiBjfSk7dSgiY29sdW1ucygpLmluZGV4ZXMoKSIsImNvbHVtbigpLmluZGV4KCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGIsYyl7cmV0dXJuInZpc2libGUiPT09YT8kKGIsYyk6Y30sMSl9KTtvKCJjb2x1bW5zLmFkanVzdCgpIiwKZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe1koYSl9LDEpfSk7bygiY29sdW1uLmluZGV4KCkiLGZ1bmN0aW9uKGEsYil7aWYoMCE9PXRoaXMuY29udGV4dC5sZW5ndGgpe3ZhciBjPXRoaXMuY29udGV4dFswXTtpZigiZnJvbVZpc2libGUiPT09YXx8InRvRGF0YSI9PT1hKXJldHVybiBaKGMsYik7aWYoImZyb21EYXRhIj09PWF8fCJ0b1Zpc2libGUiPT09YSlyZXR1cm4gJChjLGIpfX0pO28oImNvbHVtbigpIixmdW5jdGlvbihhLGIpe3JldHVybiBhYih0aGlzLmNvbHVtbnMoYSxiKSl9KTtvKCJjZWxscygpIixmdW5jdGlvbihhLGIsYyl7aC5pc1BsYWluT2JqZWN0KGEpJiYoYS5yb3c9PT1rPyhjPWEsYT1udWxsKTooYz1iLGI9bnVsbCkpO2guaXNQbGFpbk9iamVjdChiKSYmKGM9YixiPW51bGwpO2lmKG51bGw9PT1ifHxiPT09aylyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe3ZhciBkPWEsZT0kYShjKSxmPQpiLmFvRGF0YSxnPUJhKGIsZSksaj1RYihpYShmLGcsImFuQ2VsbHMiKSksaT1oKFtdLmNvbmNhdC5hcHBseShbXSxqKSksbCxuPWIuYW9Db2x1bW5zLmxlbmd0aCxtLG8sdSxzLHIsdjtyZXR1cm4gWmEoImNlbGwiLGQsZnVuY3Rpb24oYSl7dmFyIGM9dHlwZW9mIGE9PT0iZnVuY3Rpb24iO2lmKGE9PT1udWxsfHxhPT09a3x8Yyl7bT1bXTtvPTA7Zm9yKHU9Zy5sZW5ndGg7bzx1O28rKyl7bD1nW29dO2ZvcihzPTA7czxuO3MrKyl7cj17cm93OmwsY29sdW1uOnN9O2lmKGMpe3Y9ZltsXTthKHIsQihiLGwscyksdi5hbkNlbGxzP3YuYW5DZWxsc1tzXTpudWxsKSYmbS5wdXNoKHIpfWVsc2UgbS5wdXNoKHIpfX1yZXR1cm4gbX1pZihoLmlzUGxhaW5PYmplY3QoYSkpcmV0dXJuW2FdO2M9aS5maWx0ZXIoYSkubWFwKGZ1bmN0aW9uKGEsYil7cmV0dXJue3JvdzpiLl9EVF9DZWxsSW5kZXgucm93LGNvbHVtbjpiLl9EVF9DZWxsSW5kZXguY29sdW1ufX0pLnRvQXJyYXkoKTtpZihjLmxlbmd0aHx8CiFhLm5vZGVOYW1lKXJldHVybiBjO3Y9aChhKS5jbG9zZXN0KCIqW2RhdGEtZHQtcm93XSIpO3JldHVybiB2Lmxlbmd0aD9be3Jvdzp2LmRhdGEoImR0LXJvdyIpLGNvbHVtbjp2LmRhdGEoImR0LWNvbHVtbiIpfV06W119LGIsZSl9KTt2YXIgZD10aGlzLmNvbHVtbnMoYixjKSxlPXRoaXMucm93cyhhLGMpLGYsZyxqLGksbixsPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhLGIpe2Y9W107Zz0wO2ZvcihqPWVbYl0ubGVuZ3RoO2c8ajtnKyspe2k9MDtmb3Iobj1kW2JdLmxlbmd0aDtpPG47aSsrKWYucHVzaCh7cm93OmVbYl1bZ10sY29sdW1uOmRbYl1baV19KX1yZXR1cm4gZn0sMSk7aC5leHRlbmQobC5zZWxlY3Rvcix7Y29sczpiLHJvd3M6YSxvcHRzOmN9KTtyZXR1cm4gbH0pO3UoImNlbGxzKCkubm9kZXMoKSIsImNlbGwoKS5ub2RlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4oYT1hLmFvRGF0YVtiXSkmJgphLmFuQ2VsbHM/YS5hbkNlbGxzW2NdOmt9LDEpfSk7bygiY2VsbHMoKS5kYXRhKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gQihhLGIsYyl9LDEpfSk7dSgiY2VsbHMoKS5jYWNoZSgpIiwiY2VsbCgpLmNhY2hlKCkiLGZ1bmN0aW9uKGEpe2E9InNlYXJjaCI9PT1hPyJfYUZpbHRlckRhdGEiOiJfYVNvcnREYXRhIjtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYixjLGQpe3JldHVybiBiLmFvRGF0YVtjXVthXVtkXX0sMSl9KTt1KCJjZWxscygpLnJlbmRlcigpIiwiY2VsbCgpLnJlbmRlcigpIixmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYixjLGQpe3JldHVybiBCKGIsYyxkLGEpfSwxKX0pO3UoImNlbGxzKCkuaW5kZXhlcygpIiwiY2VsbCgpLmluZGV4KCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGEsCmIsYyl7cmV0dXJue3JvdzpiLGNvbHVtbjpjLGNvbHVtblZpc2libGU6JChhLGMpfX0sMSl9KTt1KCJjZWxscygpLmludmFsaWRhdGUoKSIsImNlbGwoKS5pbnZhbGlkYXRlKCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7Y2EoYixjLGEsZCl9KX0pO28oImNlbGwoKSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhYih0aGlzLmNlbGxzKGEsYixjKSl9KTtvKCJjZWxsKCkuZGF0YSgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQsYz10aGlzWzBdO2lmKGE9PT1rKXJldHVybiBiLmxlbmd0aCYmYy5sZW5ndGg/QihiWzBdLGNbMF0ucm93LGNbMF0uY29sdW1uKTprO2liKGJbMF0sY1swXS5yb3csY1swXS5jb2x1bW4sYSk7Y2EoYlswXSxjWzBdLnJvdywiZGF0YSIsY1swXS5jb2x1bW4pO3JldHVybiB0aGlzfSk7bygib3JkZXIoKSIsZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNvbnRleHQ7aWYoYT09PWspcmV0dXJuIDAhPT0KYy5sZW5ndGg/Y1swXS5hYVNvcnRpbmc6azsibnVtYmVyIj09PXR5cGVvZiBhP2E9W1thLGJdXTphLmxlbmd0aCYmIWguaXNBcnJheShhWzBdKSYmKGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtiLmFhU29ydGluZz1hLnNsaWNlKCl9KX0pO28oIm9yZGVyLmxpc3RlbmVyKCkiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGQpe0xhKGQsYSxiLGMpfSl9KTtvKCJvcmRlci5maXhlZCgpIixmdW5jdGlvbihhKXtpZighYSl7dmFyIGI9dGhpcy5jb250ZXh0LGI9Yi5sZW5ndGg/YlswXS5hYVNvcnRpbmdGaXhlZDprO3JldHVybiBoLmlzQXJyYXkoYik/e3ByZTpifTpifXJldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7Yi5hYVNvcnRpbmdGaXhlZD1oLmV4dGVuZCghMCx7fSxhKX0pfSk7byhbImNvbHVtbnMoKS5vcmRlcigpIiwKImNvbHVtbigpLm9yZGVyKCkiXSxmdW5jdGlvbihhKXt2YXIgYj10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyxkKXt2YXIgZT1bXTtoLmVhY2goYltkXSxmdW5jdGlvbihiLGMpe2UucHVzaChbYyxhXSl9KTtjLmFhU29ydGluZz1lfSl9KTtvKCJzZWFyY2goKSIsZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5jb250ZXh0O3JldHVybiBhPT09az8wIT09ZS5sZW5ndGg/ZVswXS5vUHJldmlvdXNTZWFyY2guc1NlYXJjaDprOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLm9GZWF0dXJlcy5iRmlsdGVyJiZmYShlLGguZXh0ZW5kKHt9LGUub1ByZXZpb3VzU2VhcmNoLHtzU2VhcmNoOmErIiIsYlJlZ2V4Om51bGw9PT1iPyExOmIsYlNtYXJ0Om51bGw9PT1jPyEwOmMsYkNhc2VJbnNlbnNpdGl2ZTpudWxsPT09ZD8hMDpkfSksMSl9KX0pO3UoImNvbHVtbnMoKS5zZWFyY2goKSIsImNvbHVtbigpLnNlYXJjaCgpIixmdW5jdGlvbihhLApiLGMsZCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oZSxmKXt2YXIgZz1lLmFvUHJlU2VhcmNoQ29scztpZihhPT09aylyZXR1cm4gZ1tmXS5zU2VhcmNoO2Uub0ZlYXR1cmVzLmJGaWx0ZXImJihoLmV4dGVuZChnW2ZdLHtzU2VhcmNoOmErIiIsYlJlZ2V4Om51bGw9PT1iPyExOmIsYlNtYXJ0Om51bGw9PT1jPyEwOmMsYkNhc2VJbnNlbnNpdGl2ZTpudWxsPT09ZD8hMDpkfSksZmEoZSxlLm9QcmV2aW91c1NlYXJjaCwxKSl9KX0pO28oInN0YXRlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGV4dC5sZW5ndGg/dGhpcy5jb250ZXh0WzBdLm9TYXZlZFN0YXRlOm51bGx9KTtvKCJzdGF0ZS5jbGVhcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7YS5mblN0YXRlU2F2ZUNhbGxiYWNrLmNhbGwoYS5vSW5zdGFuY2UsYSx7fSl9KX0pO28oInN0YXRlLmxvYWRlZCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHQubGVuZ3RoPwp0aGlzLmNvbnRleHRbMF0ub0xvYWRlZFN0YXRlOm51bGx9KTtvKCJzdGF0ZS5zYXZlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXt4YShhKX0pfSk7bS52ZXJzaW9uQ2hlY2s9bS5mblZlcnNpb25DaGVjaz1mdW5jdGlvbihhKXtmb3IodmFyIGI9bS52ZXJzaW9uLnNwbGl0KCIuIiksYT1hLnNwbGl0KCIuIiksYyxkLGU9MCxmPWEubGVuZ3RoO2U8ZjtlKyspaWYoYz1wYXJzZUludChiW2VdLDEwKXx8MCxkPXBhcnNlSW50KGFbZV0sMTApfHwwLGMhPT1kKXJldHVybiBjPmQ7cmV0dXJuITB9O20uaXNEYXRhVGFibGU9bS5mbklzRGF0YVRhYmxlPWZ1bmN0aW9uKGEpe3ZhciBiPWgoYSkuZ2V0KDApLGM9ITE7aWYoYSBpbnN0YW5jZW9mIG0uQXBpKXJldHVybiEwO2guZWFjaChtLnNldHRpbmdzLGZ1bmN0aW9uKGEsZSl7dmFyIGY9ZS5uU2Nyb2xsSGVhZD9oKCJ0YWJsZSIsZS5uU2Nyb2xsSGVhZClbMF06bnVsbCxnPWUublNjcm9sbEZvb3Q/CmgoInRhYmxlIixlLm5TY3JvbGxGb290KVswXTpudWxsO2lmKGUublRhYmxlPT09Ynx8Zj09PWJ8fGc9PT1iKWM9ITB9KTtyZXR1cm4gY307bS50YWJsZXM9bS5mblRhYmxlcz1mdW5jdGlvbihhKXt2YXIgYj0hMTtoLmlzUGxhaW5PYmplY3QoYSkmJihiPWEuYXBpLGE9YS52aXNpYmxlKTt2YXIgYz1oLm1hcChtLnNldHRpbmdzLGZ1bmN0aW9uKGIpe2lmKCFhfHxhJiZoKGIublRhYmxlKS5pcygiOnZpc2libGUiKSlyZXR1cm4gYi5uVGFibGV9KTtyZXR1cm4gYj9uZXcgcyhjKTpjfTttLmNhbWVsVG9IdW5nYXJpYW49STtvKCIkKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5yb3dzKGIpLm5vZGVzKCksYz1oKGMpO3JldHVybiBoKFtdLmNvbmNhdChjLmZpbHRlcihhKS50b0FycmF5KCksYy5maW5kKGEpLnRvQXJyYXkoKSkpfSk7aC5lYWNoKFsib24iLCJvbmUiLCJvZmYiXSxmdW5jdGlvbihhLGIpe28oYisiKCkiLGZ1bmN0aW9uKCl7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTsKYVswXT1oLm1hcChhWzBdLnNwbGl0KC9ccy8pLGZ1bmN0aW9uKGEpe3JldHVybiFhLm1hdGNoKC9cLmR0XGIvKT9hKyIuZHQiOmF9KS5qb2luKCIgIik7dmFyIGQ9aCh0aGlzLnRhYmxlcygpLm5vZGVzKCkpO2RbYl0uYXBwbHkoZCxhKTtyZXR1cm4gdGhpc30pfSk7bygiY2xlYXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe25hKGEpfSl9KTtvKCJzZXR0aW5ncygpIixmdW5jdGlvbigpe3JldHVybiBuZXcgcyh0aGlzLmNvbnRleHQsdGhpcy5jb250ZXh0KX0pO28oImluaXQoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoP2FbMF0ub0luaXQ6bnVsbH0pO28oImRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBEKGEuYW9EYXRhLCJfYURhdGEiKX0pLmZsYXR0ZW4oKX0pO28oImRlc3Ryb3koKSIsZnVuY3Rpb24oYSl7YT1hfHwKITE7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXt2YXIgYz1iLm5UYWJsZVdyYXBwZXIucGFyZW50Tm9kZSxkPWIub0NsYXNzZXMsZT1iLm5UYWJsZSxmPWIublRCb2R5LGc9Yi5uVEhlYWQsaj1iLm5URm9vdCxpPWgoZSksZj1oKGYpLGs9aChiLm5UYWJsZVdyYXBwZXIpLGw9aC5tYXAoYi5hb0RhdGEsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRyfSksbztiLmJEZXN0cm95aW5nPSEwO3IoYiwiYW9EZXN0cm95Q2FsbGJhY2siLCJkZXN0cm95IixbYl0pO2F8fChuZXcgcyhiKSkuY29sdW1ucygpLnZpc2libGUoITApO2sub2ZmKCIuRFQiKS5maW5kKCI6bm90KHRib2R5ICopIikub2ZmKCIuRFQiKTtoKEUpLm9mZigiLkRULSIrYi5zSW5zdGFuY2UpO2UhPWcucGFyZW50Tm9kZSYmKGkuY2hpbGRyZW4oInRoZWFkIikuZGV0YWNoKCksaS5hcHBlbmQoZykpO2omJmUhPWoucGFyZW50Tm9kZSYmKGkuY2hpbGRyZW4oInRmb290IikuZGV0YWNoKCksaS5hcHBlbmQoaikpOwpiLmFhU29ydGluZz1bXTtiLmFhU29ydGluZ0ZpeGVkPVtdO3dhKGIpO2gobCkucmVtb3ZlQ2xhc3MoYi5hc1N0cmlwZUNsYXNzZXMuam9pbigiICIpKTtoKCJ0aCwgdGQiLGcpLnJlbW92ZUNsYXNzKGQuc1NvcnRhYmxlKyIgIitkLnNTb3J0YWJsZUFzYysiICIrZC5zU29ydGFibGVEZXNjKyIgIitkLnNTb3J0YWJsZU5vbmUpO2YuY2hpbGRyZW4oKS5kZXRhY2goKTtmLmFwcGVuZChsKTtnPWE/InJlbW92ZSI6ImRldGFjaCI7aVtnXSgpO2tbZ10oKTshYSYmYyYmKGMuaW5zZXJ0QmVmb3JlKGUsYi5uVGFibGVSZWluc2VydEJlZm9yZSksaS5jc3MoIndpZHRoIixiLnNEZXN0cm95V2lkdGgpLnJlbW92ZUNsYXNzKGQuc1RhYmxlKSwobz1iLmFzRGVzdHJveVN0cmlwZXMubGVuZ3RoKSYmZi5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oYSl7aCh0aGlzKS5hZGRDbGFzcyhiLmFzRGVzdHJveVN0cmlwZXNbYSVvXSl9KSk7Yz1oLmluQXJyYXkoYixtLnNldHRpbmdzKTstMSE9PWMmJm0uc2V0dGluZ3Muc3BsaWNlKGMsCjEpfSl9KTtoLmVhY2goWyJjb2x1bW4iLCJyb3ciLCJjZWxsIl0sZnVuY3Rpb24oYSxiKXtvKGIrInMoKS5ldmVyeSgpIixmdW5jdGlvbihhKXt2YXIgZD10aGlzLnNlbGVjdG9yLm9wdHMsZT10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKGIsZnVuY3Rpb24oZixnLGgsaSxuKXthLmNhbGwoZVtiXShnLCJjZWxsIj09PWI/aDpkLCJjZWxsIj09PWI/ZDprKSxnLGgsaSxuKX0pfSl9KTtvKCJpMThuKCkiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmNvbnRleHRbMF0sYT1RKGEpKGQub0xhbmd1YWdlKTthPT09ayYmKGE9Yik7YyE9PWsmJmguaXNQbGFpbk9iamVjdChhKSYmKGE9YVtjXSE9PWs/YVtjXTphLl8pO3JldHVybiBhLnJlcGxhY2UoIiVkIixjKX0pO20udmVyc2lvbj0iMS4xMC4xNiI7bS5zZXR0aW5ncz1bXTttLm1vZGVscz17fTttLm1vZGVscy5vU2VhcmNoPXtiQ2FzZUluc2Vuc2l0aXZlOiEwLHNTZWFyY2g6IiIsYlJlZ2V4OiExLGJTbWFydDohMH07bS5tb2RlbHMub1Jvdz0Ke25UcjpudWxsLGFuQ2VsbHM6bnVsbCxfYURhdGE6W10sX2FTb3J0RGF0YTpudWxsLF9hRmlsdGVyRGF0YTpudWxsLF9zRmlsdGVyUm93Om51bGwsX3NSb3dTdHJpcGU6IiIsc3JjOm51bGwsaWR4Oi0xfTttLm1vZGVscy5vQ29sdW1uPXtpZHg6bnVsbCxhRGF0YVNvcnQ6bnVsbCxhc1NvcnRpbmc6bnVsbCxiU2VhcmNoYWJsZTpudWxsLGJTb3J0YWJsZTpudWxsLGJWaXNpYmxlOm51bGwsX3NNYW51YWxUeXBlOm51bGwsX2JBdHRyU3JjOiExLGZuQ3JlYXRlZENlbGw6bnVsbCxmbkdldERhdGE6bnVsbCxmblNldERhdGE6bnVsbCxtRGF0YTpudWxsLG1SZW5kZXI6bnVsbCxuVGg6bnVsbCxuVGY6bnVsbCxzQ2xhc3M6bnVsbCxzQ29udGVudFBhZGRpbmc6bnVsbCxzRGVmYXVsdENvbnRlbnQ6bnVsbCxzTmFtZTpudWxsLHNTb3J0RGF0YVR5cGU6InN0ZCIsc1NvcnRpbmdDbGFzczpudWxsLHNTb3J0aW5nQ2xhc3NKVUk6bnVsbCxzVGl0bGU6bnVsbCxzVHlwZTpudWxsLHNXaWR0aDpudWxsLApzV2lkdGhPcmlnOm51bGx9O20uZGVmYXVsdHM9e2FhRGF0YTpudWxsLGFhU29ydGluZzpbWzAsImFzYyJdXSxhYVNvcnRpbmdGaXhlZDpbXSxhamF4Om51bGwsYUxlbmd0aE1lbnU6WzEwLDI1LDUwLDEwMF0sYW9Db2x1bW5zOm51bGwsYW9Db2x1bW5EZWZzOm51bGwsYW9TZWFyY2hDb2xzOltdLGFzU3RyaXBlQ2xhc3NlczpudWxsLGJBdXRvV2lkdGg6ITAsYkRlZmVyUmVuZGVyOiExLGJEZXN0cm95OiExLGJGaWx0ZXI6ITAsYkluZm86ITAsYkxlbmd0aENoYW5nZTohMCxiUGFnaW5hdGU6ITAsYlByb2Nlc3Npbmc6ITEsYlJldHJpZXZlOiExLGJTY3JvbGxDb2xsYXBzZTohMSxiU2VydmVyU2lkZTohMSxiU29ydDohMCxiU29ydE11bHRpOiEwLGJTb3J0Q2VsbHNUb3A6ITEsYlNvcnRDbGFzc2VzOiEwLGJTdGF0ZVNhdmU6ITEsZm5DcmVhdGVkUm93Om51bGwsZm5EcmF3Q2FsbGJhY2s6bnVsbCxmbkZvb3RlckNhbGxiYWNrOm51bGwsZm5Gb3JtYXROdW1iZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9TdHJpbmcoKS5yZXBsYWNlKC9cQig/PShcZHszfSkrKD8hXGQpKS9nLAp0aGlzLm9MYW5ndWFnZS5zVGhvdXNhbmRzKX0sZm5IZWFkZXJDYWxsYmFjazpudWxsLGZuSW5mb0NhbGxiYWNrOm51bGwsZm5Jbml0Q29tcGxldGU6bnVsbCxmblByZURyYXdDYWxsYmFjazpudWxsLGZuUm93Q2FsbGJhY2s6bnVsbCxmblNlcnZlckRhdGE6bnVsbCxmblNlcnZlclBhcmFtczpudWxsLGZuU3RhdGVMb2FkQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBKU09OLnBhcnNlKCgtMT09PWEuaVN0YXRlRHVyYXRpb24/c2Vzc2lvblN0b3JhZ2U6bG9jYWxTdG9yYWdlKS5nZXRJdGVtKCJEYXRhVGFibGVzXyIrYS5zSW5zdGFuY2UrIl8iK2xvY2F0aW9uLnBhdGhuYW1lKSl9Y2F0Y2goYil7fX0sZm5TdGF0ZUxvYWRQYXJhbXM6bnVsbCxmblN0YXRlTG9hZGVkOm51bGwsZm5TdGF0ZVNhdmVDYWxsYmFjazpmdW5jdGlvbihhLGIpe3RyeXsoLTE9PT1hLmlTdGF0ZUR1cmF0aW9uP3Nlc3Npb25TdG9yYWdlOmxvY2FsU3RvcmFnZSkuc2V0SXRlbSgiRGF0YVRhYmxlc18iK2Euc0luc3RhbmNlKwoiXyIrbG9jYXRpb24ucGF0aG5hbWUsSlNPTi5zdHJpbmdpZnkoYikpfWNhdGNoKGMpe319LGZuU3RhdGVTYXZlUGFyYW1zOm51bGwsaVN0YXRlRHVyYXRpb246NzIwMCxpRGVmZXJMb2FkaW5nOm51bGwsaURpc3BsYXlMZW5ndGg6MTAsaURpc3BsYXlTdGFydDowLGlUYWJJbmRleDowLG9DbGFzc2VzOnt9LG9MYW5ndWFnZTp7b0FyaWE6e3NTb3J0QXNjZW5kaW5nOiI6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGFzY2VuZGluZyIsc1NvcnREZXNjZW5kaW5nOiI6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGRlc2NlbmRpbmcifSxvUGFnaW5hdGU6e3NGaXJzdDoiRmlyc3QiLHNMYXN0OiJMYXN0IixzTmV4dDoiTmV4dCIsc1ByZXZpb3VzOiJQcmV2aW91cyJ9LHNFbXB0eVRhYmxlOiJObyBkYXRhIGF2YWlsYWJsZSBpbiB0YWJsZSIsc0luZm86IlNob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMiLHNJbmZvRW1wdHk6IlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyIsCnNJbmZvRmlsdGVyZWQ6IihmaWx0ZXJlZCBmcm9tIF9NQVhfIHRvdGFsIGVudHJpZXMpIixzSW5mb1Bvc3RGaXg6IiIsc0RlY2ltYWw6IiIsc1Rob3VzYW5kczoiLCIsc0xlbmd0aE1lbnU6IlNob3cgX01FTlVfIGVudHJpZXMiLHNMb2FkaW5nUmVjb3JkczoiTG9hZGluZy4uLiIsc1Byb2Nlc3Npbmc6IlByb2Nlc3NpbmcuLi4iLHNTZWFyY2g6IlNlYXJjaDoiLHNTZWFyY2hQbGFjZWhvbGRlcjoiIixzVXJsOiIiLHNaZXJvUmVjb3JkczoiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCJ9LG9TZWFyY2g6aC5leHRlbmQoe30sbS5tb2RlbHMub1NlYXJjaCksc0FqYXhEYXRhUHJvcDoiZGF0YSIsc0FqYXhTb3VyY2U6bnVsbCxzRG9tOiJsZnJ0aXAiLHNlYXJjaERlbGF5Om51bGwsc1BhZ2luYXRpb25UeXBlOiJzaW1wbGVfbnVtYmVycyIsc1Njcm9sbFg6IiIsc1Njcm9sbFhJbm5lcjoiIixzU2Nyb2xsWToiIixzU2VydmVyTWV0aG9kOiJHRVQiLHJlbmRlcmVyOm51bGwscm93SWQ6IkRUX1Jvd0lkIn07ClgobS5kZWZhdWx0cyk7bS5kZWZhdWx0cy5jb2x1bW49e2FEYXRhU29ydDpudWxsLGlEYXRhU29ydDotMSxhc1NvcnRpbmc6WyJhc2MiLCJkZXNjIl0sYlNlYXJjaGFibGU6ITAsYlNvcnRhYmxlOiEwLGJWaXNpYmxlOiEwLGZuQ3JlYXRlZENlbGw6bnVsbCxtRGF0YTpudWxsLG1SZW5kZXI6bnVsbCxzQ2VsbFR5cGU6InRkIixzQ2xhc3M6IiIsc0NvbnRlbnRQYWRkaW5nOiIiLHNEZWZhdWx0Q29udGVudDpudWxsLHNOYW1lOiIiLHNTb3J0RGF0YVR5cGU6InN0ZCIsc1RpdGxlOm51bGwsc1R5cGU6bnVsbCxzV2lkdGg6bnVsbH07WChtLmRlZmF1bHRzLmNvbHVtbik7bS5tb2RlbHMub1NldHRpbmdzPXtvRmVhdHVyZXM6e2JBdXRvV2lkdGg6bnVsbCxiRGVmZXJSZW5kZXI6bnVsbCxiRmlsdGVyOm51bGwsYkluZm86bnVsbCxiTGVuZ3RoQ2hhbmdlOm51bGwsYlBhZ2luYXRlOm51bGwsYlByb2Nlc3Npbmc6bnVsbCxiU2VydmVyU2lkZTpudWxsLGJTb3J0Om51bGwsYlNvcnRNdWx0aTpudWxsLApiU29ydENsYXNzZXM6bnVsbCxiU3RhdGVTYXZlOm51bGx9LG9TY3JvbGw6e2JDb2xsYXBzZTpudWxsLGlCYXJXaWR0aDowLHNYOm51bGwsc1hJbm5lcjpudWxsLHNZOm51bGx9LG9MYW5ndWFnZTp7Zm5JbmZvQ2FsbGJhY2s6bnVsbH0sb0Jyb3dzZXI6e2JTY3JvbGxPdmVyc2l6ZTohMSxiU2Nyb2xsYmFyTGVmdDohMSxiQm91bmRpbmc6ITEsYmFyV2lkdGg6MH0sYWpheDpudWxsLGFhbkZlYXR1cmVzOltdLGFvRGF0YTpbXSxhaURpc3BsYXk6W10sYWlEaXNwbGF5TWFzdGVyOltdLGFJZHM6e30sYW9Db2x1bW5zOltdLGFvSGVhZGVyOltdLGFvRm9vdGVyOltdLG9QcmV2aW91c1NlYXJjaDp7fSxhb1ByZVNlYXJjaENvbHM6W10sYWFTb3J0aW5nOm51bGwsYWFTb3J0aW5nRml4ZWQ6W10sYXNTdHJpcGVDbGFzc2VzOm51bGwsYXNEZXN0cm95U3RyaXBlczpbXSxzRGVzdHJveVdpZHRoOjAsYW9Sb3dDYWxsYmFjazpbXSxhb0hlYWRlckNhbGxiYWNrOltdLGFvRm9vdGVyQ2FsbGJhY2s6W10sCmFvRHJhd0NhbGxiYWNrOltdLGFvUm93Q3JlYXRlZENhbGxiYWNrOltdLGFvUHJlRHJhd0NhbGxiYWNrOltdLGFvSW5pdENvbXBsZXRlOltdLGFvU3RhdGVTYXZlUGFyYW1zOltdLGFvU3RhdGVMb2FkUGFyYW1zOltdLGFvU3RhdGVMb2FkZWQ6W10sc1RhYmxlSWQ6IiIsblRhYmxlOm51bGwsblRIZWFkOm51bGwsblRGb290Om51bGwsblRCb2R5Om51bGwsblRhYmxlV3JhcHBlcjpudWxsLGJEZWZlckxvYWRpbmc6ITEsYkluaXRpYWxpc2VkOiExLGFvT3BlblJvd3M6W10sc0RvbTpudWxsLHNlYXJjaERlbGF5Om51bGwsc1BhZ2luYXRpb25UeXBlOiJ0d29fYnV0dG9uIixpU3RhdGVEdXJhdGlvbjowLGFvU3RhdGVTYXZlOltdLGFvU3RhdGVMb2FkOltdLG9TYXZlZFN0YXRlOm51bGwsb0xvYWRlZFN0YXRlOm51bGwsc0FqYXhTb3VyY2U6bnVsbCxzQWpheERhdGFQcm9wOm51bGwsYkFqYXhEYXRhR2V0OiEwLGpxWEhSOm51bGwsanNvbjprLG9BamF4RGF0YTprLGZuU2VydmVyRGF0YTpudWxsLAphb1NlcnZlclBhcmFtczpbXSxzU2VydmVyTWV0aG9kOm51bGwsZm5Gb3JtYXROdW1iZXI6bnVsbCxhTGVuZ3RoTWVudTpudWxsLGlEcmF3OjAsYkRyYXdpbmc6ITEsaURyYXdFcnJvcjotMSxfaURpc3BsYXlMZW5ndGg6MTAsX2lEaXNwbGF5U3RhcnQ6MCxfaVJlY29yZHNUb3RhbDowLF9pUmVjb3Jkc0Rpc3BsYXk6MCxvQ2xhc3Nlczp7fSxiRmlsdGVyZWQ6ITEsYlNvcnRlZDohMSxiU29ydENlbGxzVG9wOm51bGwsb0luaXQ6bnVsbCxhb0Rlc3Ryb3lDYWxsYmFjazpbXSxmblJlY29yZHNUb3RhbDpmdW5jdGlvbigpe3JldHVybiJzc3AiPT15KHRoaXMpPzEqdGhpcy5faVJlY29yZHNUb3RhbDp0aGlzLmFpRGlzcGxheU1hc3Rlci5sZW5ndGh9LGZuUmVjb3Jkc0Rpc3BsYXk6ZnVuY3Rpb24oKXtyZXR1cm4ic3NwIj09eSh0aGlzKT8xKnRoaXMuX2lSZWNvcmRzRGlzcGxheTp0aGlzLmFpRGlzcGxheS5sZW5ndGh9LGZuRGlzcGxheUVuZDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX2lEaXNwbGF5TGVuZ3RoLApiPXRoaXMuX2lEaXNwbGF5U3RhcnQsYz1iK2EsZD10aGlzLmFpRGlzcGxheS5sZW5ndGgsZT10aGlzLm9GZWF0dXJlcyxmPWUuYlBhZ2luYXRlO3JldHVybiBlLmJTZXJ2ZXJTaWRlPyExPT09Znx8LTE9PT1hP2IrZDpNYXRoLm1pbihiK2EsdGhpcy5faVJlY29yZHNEaXNwbGF5KTohZnx8Yz5kfHwtMT09PWE/ZDpjfSxvSW5zdGFuY2U6bnVsbCxzSW5zdGFuY2U6bnVsbCxpVGFiSW5kZXg6MCxuU2Nyb2xsSGVhZDpudWxsLG5TY3JvbGxGb290Om51bGwsYUxhc3RTb3J0OltdLG9QbHVnaW5zOnt9LHJvd0lkRm46bnVsbCxyb3dJZDpudWxsfTttLmV4dD14PXtidXR0b25zOnt9LGNsYXNzZXM6e30sYnVpbGRlcjoiLXNvdXJjZS0iLGVyck1vZGU6ImFsZXJ0IixmZWF0dXJlOltdLHNlYXJjaDpbXSxzZWxlY3Rvcjp7Y2VsbDpbXSxjb2x1bW46W10scm93OltdfSxpbnRlcm5hbDp7fSxsZWdhY3k6e2FqYXg6bnVsbH0scGFnZXI6e30scmVuZGVyZXI6e3BhZ2VCdXR0b246e30saGVhZGVyOnt9fSwKb3JkZXI6e30sdHlwZTp7ZGV0ZWN0OltdLHNlYXJjaDp7fSxvcmRlcjp7fX0sX3VuaXF1ZTowLGZuVmVyc2lvbkNoZWNrOm0uZm5WZXJzaW9uQ2hlY2ssaUFwaUluZGV4OjAsb0pVSUNsYXNzZXM6e30sc1ZlcnNpb246bS52ZXJzaW9ufTtoLmV4dGVuZCh4LHthZm5GaWx0ZXJpbmc6eC5zZWFyY2gsYVR5cGVzOngudHlwZS5kZXRlY3Qsb2ZuU2VhcmNoOngudHlwZS5zZWFyY2gsb1NvcnQ6eC50eXBlLm9yZGVyLGFmblNvcnREYXRhOngub3JkZXIsYW9GZWF0dXJlczp4LmZlYXR1cmUsb0FwaTp4LmludGVybmFsLG9TdGRDbGFzc2VzOnguY2xhc3NlcyxvUGFnaW5hdGlvbjp4LnBhZ2VyfSk7aC5leHRlbmQobS5leHQuY2xhc3Nlcyx7c1RhYmxlOiJkYXRhVGFibGUiLHNOb0Zvb3Rlcjoibm8tZm9vdGVyIixzUGFnZUJ1dHRvbjoicGFnaW5hdGVfYnV0dG9uIixzUGFnZUJ1dHRvbkFjdGl2ZToiY3VycmVudCIsc1BhZ2VCdXR0b25EaXNhYmxlZDoiZGlzYWJsZWQiLHNTdHJpcGVPZGQ6Im9kZCIsCnNTdHJpcGVFdmVuOiJldmVuIixzUm93RW1wdHk6ImRhdGFUYWJsZXNfZW1wdHkiLHNXcmFwcGVyOiJkYXRhVGFibGVzX3dyYXBwZXIiLHNGaWx0ZXI6ImRhdGFUYWJsZXNfZmlsdGVyIixzSW5mbzoiZGF0YVRhYmxlc19pbmZvIixzUGFnaW5nOiJkYXRhVGFibGVzX3BhZ2luYXRlIHBhZ2luZ18iLHNMZW5ndGg6ImRhdGFUYWJsZXNfbGVuZ3RoIixzUHJvY2Vzc2luZzoiZGF0YVRhYmxlc19wcm9jZXNzaW5nIixzU29ydEFzYzoic29ydGluZ19hc2MiLHNTb3J0RGVzYzoic29ydGluZ19kZXNjIixzU29ydGFibGU6InNvcnRpbmciLHNTb3J0YWJsZUFzYzoic29ydGluZ19hc2NfZGlzYWJsZWQiLHNTb3J0YWJsZURlc2M6InNvcnRpbmdfZGVzY19kaXNhYmxlZCIsc1NvcnRhYmxlTm9uZToic29ydGluZ19kaXNhYmxlZCIsc1NvcnRDb2x1bW46InNvcnRpbmdfIixzRmlsdGVySW5wdXQ6IiIsc0xlbmd0aFNlbGVjdDoiIixzU2Nyb2xsV3JhcHBlcjoiZGF0YVRhYmxlc19zY3JvbGwiLHNTY3JvbGxIZWFkOiJkYXRhVGFibGVzX3Njcm9sbEhlYWQiLApzU2Nyb2xsSGVhZElubmVyOiJkYXRhVGFibGVzX3Njcm9sbEhlYWRJbm5lciIsc1Njcm9sbEJvZHk6ImRhdGFUYWJsZXNfc2Nyb2xsQm9keSIsc1Njcm9sbEZvb3Q6ImRhdGFUYWJsZXNfc2Nyb2xsRm9vdCIsc1Njcm9sbEZvb3RJbm5lcjoiZGF0YVRhYmxlc19zY3JvbGxGb290SW5uZXIiLHNIZWFkZXJUSDoiIixzRm9vdGVyVEg6IiIsc1NvcnRKVUlBc2M6IiIsc1NvcnRKVUlEZXNjOiIiLHNTb3J0SlVJOiIiLHNTb3J0SlVJQXNjQWxsb3dlZDoiIixzU29ydEpVSURlc2NBbGxvd2VkOiIiLHNTb3J0SlVJV3JhcHBlcjoiIixzU29ydEljb246IiIsc0pVSUhlYWRlcjoiIixzSlVJRm9vdGVyOiIifSk7dmFyIEtiPW0uZXh0LnBhZ2VyO2guZXh0ZW5kKEtiLHtzaW1wbGU6ZnVuY3Rpb24oKXtyZXR1cm5bInByZXZpb3VzIiwibmV4dCJdfSxmdWxsOmZ1bmN0aW9uKCl7cmV0dXJuWyJmaXJzdCIsInByZXZpb3VzIiwibmV4dCIsImxhc3QiXX0sbnVtYmVyczpmdW5jdGlvbihhLGIpe3JldHVybltoYShhLApiKV19LHNpbXBsZV9udW1iZXJzOmZ1bmN0aW9uKGEsYil7cmV0dXJuWyJwcmV2aW91cyIsaGEoYSxiKSwibmV4dCJdfSxmdWxsX251bWJlcnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm5bImZpcnN0IiwicHJldmlvdXMiLGhhKGEsYiksIm5leHQiLCJsYXN0Il19LGZpcnN0X2xhc3RfbnVtYmVyczpmdW5jdGlvbihhLGIpe3JldHVyblsiZmlyc3QiLGhhKGEsYiksImxhc3QiXX0sX251bWJlcnM6aGEsbnVtYmVyc19sZW5ndGg6N30pO2guZXh0ZW5kKCEwLG0uZXh0LnJlbmRlcmVyLHtwYWdlQnV0dG9uOntfOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1hLm9DbGFzc2VzLGo9YS5vTGFuZ3VhZ2Uub1BhZ2luYXRlLGk9YS5vTGFuZ3VhZ2Uub0FyaWEucGFnaW5hdGV8fHt9LG4sbCxtPTAsbz1mdW5jdGlvbihiLGQpe3ZhciBrLHMsdSxyLHY9ZnVuY3Rpb24oYil7U2EoYSxiLmRhdGEuYWN0aW9uLHRydWUpfTtrPTA7Zm9yKHM9ZC5sZW5ndGg7azxzO2srKyl7cj1kW2tdO2lmKGguaXNBcnJheShyKSl7dT0KaCgiPCIrKHIuRFRfZWx8fCJkaXYiKSsiLz4iKS5hcHBlbmRUbyhiKTtvKHUscil9ZWxzZXtuPW51bGw7bD0iIjtzd2l0Y2gocil7Y2FzZSAiZWxsaXBzaXMiOmIuYXBwZW5kKCc8c3BhbiBjbGFzcz0iZWxsaXBzaXMiPiYjeDIwMjY7PC9zcGFuPicpO2JyZWFrO2Nhc2UgImZpcnN0IjpuPWouc0ZpcnN0O2w9cisoZT4wPyIiOiIgIitnLnNQYWdlQnV0dG9uRGlzYWJsZWQpO2JyZWFrO2Nhc2UgInByZXZpb3VzIjpuPWouc1ByZXZpb3VzO2w9cisoZT4wPyIiOiIgIitnLnNQYWdlQnV0dG9uRGlzYWJsZWQpO2JyZWFrO2Nhc2UgIm5leHQiOm49ai5zTmV4dDtsPXIrKGU8Zi0xPyIiOiIgIitnLnNQYWdlQnV0dG9uRGlzYWJsZWQpO2JyZWFrO2Nhc2UgImxhc3QiOm49ai5zTGFzdDtsPXIrKGU8Zi0xPyIiOiIgIitnLnNQYWdlQnV0dG9uRGlzYWJsZWQpO2JyZWFrO2RlZmF1bHQ6bj1yKzE7bD1lPT09cj9nLnNQYWdlQnV0dG9uQWN0aXZlOiIifWlmKG4hPT1udWxsKXt1PWgoIjxhPiIseyJjbGFzcyI6Zy5zUGFnZUJ1dHRvbisKIiAiK2wsImFyaWEtY29udHJvbHMiOmEuc1RhYmxlSWQsImFyaWEtbGFiZWwiOmlbcl0sImRhdGEtZHQtaWR4IjptLHRhYmluZGV4OmEuaVRhYkluZGV4LGlkOmM9PT0wJiZ0eXBlb2Ygcj09PSJzdHJpbmciP2Euc1RhYmxlSWQrIl8iK3I6bnVsbH0pLmh0bWwobikuYXBwZW5kVG8oYik7VmEodSx7YWN0aW9uOnJ9LHYpO20rK319fX0sczt0cnl7cz1oKGIpLmZpbmQoRy5hY3RpdmVFbGVtZW50KS5kYXRhKCJkdC1pZHgiKX1jYXRjaCh1KXt9byhoKGIpLmVtcHR5KCksZCk7cyE9PWsmJmgoYikuZmluZCgiW2RhdGEtZHQtaWR4PSIrcysiXSIpLmZvY3VzKCl9fX0pO2guZXh0ZW5kKG0uZXh0LnR5cGUuZGV0ZWN0LFtmdW5jdGlvbihhLGIpe3ZhciBjPWIub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBZYShhLGMpPyJudW0iK2M6bnVsbH0sZnVuY3Rpb24oYSl7aWYoYSYmIShhIGluc3RhbmNlb2YgRGF0ZSkmJiFaYi50ZXN0KGEpKXJldHVybiBudWxsO3ZhciBiPURhdGUucGFyc2UoYSk7CnJldHVybiBudWxsIT09YiYmIWlzTmFOKGIpfHxMKGEpPyJkYXRlIjpudWxsfSxmdW5jdGlvbihhLGIpe3ZhciBjPWIub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBZYShhLGMsITApPyJudW0tZm10IitjOm51bGx9LGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIFBiKGEsYyk/Imh0bWwtbnVtIitjOm51bGx9LGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIFBiKGEsYywhMCk/Imh0bWwtbnVtLWZtdCIrYzpudWxsfSxmdW5jdGlvbihhKXtyZXR1cm4gTChhKXx8InN0cmluZyI9PT10eXBlb2YgYSYmLTEhPT1hLmluZGV4T2YoIjwiKT8iaHRtbCI6bnVsbH1dKTtoLmV4dGVuZChtLmV4dC50eXBlLnNlYXJjaCx7aHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gTChhKT9hOiJzdHJpbmciPT09dHlwZW9mIGE/YS5yZXBsYWNlKE1iLCIgIikucmVwbGFjZShBYSwiIik6IiJ9LHN0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gTChhKT8KYToic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZShNYiwiICIpOmF9fSk7dmFyIHphPWZ1bmN0aW9uKGEsYixjLGQpe2lmKDAhPT1hJiYoIWF8fCItIj09PWEpKXJldHVybi1JbmZpbml0eTtiJiYoYT1PYihhLGIpKTthLnJlcGxhY2UmJihjJiYoYT1hLnJlcGxhY2UoYywiIikpLGQmJihhPWEucmVwbGFjZShkLCIiKSkpO3JldHVybiAxKmF9O2guZXh0ZW5kKHgudHlwZS5vcmRlcix7ImRhdGUtcHJlIjpmdW5jdGlvbihhKXtyZXR1cm4gRGF0ZS5wYXJzZShhKXx8LUluZmluaXR5fSwiaHRtbC1wcmUiOmZ1bmN0aW9uKGEpe3JldHVybiBMKGEpPyIiOmEucmVwbGFjZT9hLnJlcGxhY2UoLzwuKj8+L2csIiIpLnRvTG93ZXJDYXNlKCk6YSsiIn0sInN0cmluZy1wcmUiOmZ1bmN0aW9uKGEpe3JldHVybiBMKGEpPyIiOiJzdHJpbmciPT09dHlwZW9mIGE/YS50b0xvd2VyQ2FzZSgpOiFhLnRvU3RyaW5nPyIiOmEudG9TdHJpbmcoKX0sInN0cmluZy1hc2MiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8CmI/LTE6YT5iPzE6MH0sInN0cmluZy1kZXNjIjpmdW5jdGlvbihhLGIpe3JldHVybiBhPGI/MTphPmI/LTE6MH19KTtjYigiIik7aC5leHRlbmQoITAsbS5leHQucmVuZGVyZXIse2hlYWRlcjp7XzpmdW5jdGlvbihhLGIsYyxkKXtoKGEublRhYmxlKS5vbigib3JkZXIuZHQuRFQiLGZ1bmN0aW9uKGUsZixnLGgpe2lmKGE9PT1mKXtlPWMuaWR4O2IucmVtb3ZlQ2xhc3MoYy5zU29ydGluZ0NsYXNzKyIgIitkLnNTb3J0QXNjKyIgIitkLnNTb3J0RGVzYykuYWRkQ2xhc3MoaFtlXT09ImFzYyI/ZC5zU29ydEFzYzpoW2VdPT0iZGVzYyI/ZC5zU29ydERlc2M6Yy5zU29ydGluZ0NsYXNzKX19KX0sanF1ZXJ5dWk6ZnVuY3Rpb24oYSxiLGMsZCl7aCgiPGRpdi8+IikuYWRkQ2xhc3MoZC5zU29ydEpVSVdyYXBwZXIpLmFwcGVuZChiLmNvbnRlbnRzKCkpLmFwcGVuZChoKCI8c3Bhbi8+IikuYWRkQ2xhc3MoZC5zU29ydEljb24rIiAiK2Muc1NvcnRpbmdDbGFzc0pVSSkpLmFwcGVuZFRvKGIpOwpoKGEublRhYmxlKS5vbigib3JkZXIuZHQuRFQiLGZ1bmN0aW9uKGUsZixnLGgpe2lmKGE9PT1mKXtlPWMuaWR4O2IucmVtb3ZlQ2xhc3MoZC5zU29ydEFzYysiICIrZC5zU29ydERlc2MpLmFkZENsYXNzKGhbZV09PSJhc2MiP2Quc1NvcnRBc2M6aFtlXT09ImRlc2MiP2Quc1NvcnREZXNjOmMuc1NvcnRpbmdDbGFzcyk7Yi5maW5kKCJzcGFuLiIrZC5zU29ydEljb24pLnJlbW92ZUNsYXNzKGQuc1NvcnRKVUlBc2MrIiAiK2Quc1NvcnRKVUlEZXNjKyIgIitkLnNTb3J0SlVJKyIgIitkLnNTb3J0SlVJQXNjQWxsb3dlZCsiICIrZC5zU29ydEpVSURlc2NBbGxvd2VkKS5hZGRDbGFzcyhoW2VdPT0iYXNjIj9kLnNTb3J0SlVJQXNjOmhbZV09PSJkZXNjIj9kLnNTb3J0SlVJRGVzYzpjLnNTb3J0aW5nQ2xhc3NKVUkpfX0pfX19KTt2YXIgVmI9ZnVuY3Rpb24oYSl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYT9hLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywKIiZxdW90OyIpOmF9O20ucmVuZGVyPXtudW1iZXI6ZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm57ZGlzcGxheTpmdW5jdGlvbihmKXtpZigibnVtYmVyIiE9PXR5cGVvZiBmJiYic3RyaW5nIiE9PXR5cGVvZiBmKXJldHVybiBmO3ZhciBnPTA+Zj8iLSI6IiIsaD1wYXJzZUZsb2F0KGYpO2lmKGlzTmFOKGgpKXJldHVybiBWYihmKTtoPWgudG9GaXhlZChjKTtmPU1hdGguYWJzKGgpO2g9cGFyc2VJbnQoZiwxMCk7Zj1jP2IrKGYtaCkudG9GaXhlZChjKS5zdWJzdHJpbmcoMik6IiI7cmV0dXJuIGcrKGR8fCIiKStoLnRvU3RyaW5nKCkucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZyxhKStmKyhlfHwiIil9fX0sdGV4dDpmdW5jdGlvbigpe3JldHVybntkaXNwbGF5OlZifX19O2guZXh0ZW5kKG0uZXh0LmludGVybmFsLHtfZm5FeHRlcm5BcGlGdW5jOkxiLF9mbkJ1aWxkQWpheDpzYSxfZm5BamF4VXBkYXRlOmtiLF9mbkFqYXhQYXJhbWV0ZXJzOnRiLF9mbkFqYXhVcGRhdGVEcmF3OnViLApfZm5BamF4RGF0YVNyYzp0YSxfZm5BZGRDb2x1bW46RGEsX2ZuQ29sdW1uT3B0aW9uczpqYSxfZm5BZGp1c3RDb2x1bW5TaXppbmc6WSxfZm5WaXNpYmxlVG9Db2x1bW5JbmRleDpaLF9mbkNvbHVtbkluZGV4VG9WaXNpYmxlOiQsX2ZuVmlzYmxlQ29sdW1uczphYSxfZm5HZXRDb2x1bW5zOmxhLF9mbkNvbHVtblR5cGVzOkZhLF9mbkFwcGx5Q29sdW1uRGVmczpoYixfZm5IdW5nYXJpYW5NYXA6WCxfZm5DYW1lbFRvSHVuZ2FyaWFuOkksX2ZuTGFuZ3VhZ2VDb21wYXQ6Q2EsX2ZuQnJvd3NlckRldGVjdDpmYixfZm5BZGREYXRhOk0sX2ZuQWRkVHI6bWEsX2ZuTm9kZVRvRGF0YUluZGV4OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGIuX0RUX1Jvd0luZGV4IT09az9iLl9EVF9Sb3dJbmRleDpudWxsfSxfZm5Ob2RlVG9Db2x1bW5JbmRleDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGguaW5BcnJheShjLGEuYW9EYXRhW2JdLmFuQ2VsbHMpfSxfZm5HZXRDZWxsRGF0YTpCLF9mblNldENlbGxEYXRhOmliLApfZm5TcGxpdE9iak5vdGF0aW9uOklhLF9mbkdldE9iamVjdERhdGFGbjpRLF9mblNldE9iamVjdERhdGFGbjpSLF9mbkdldERhdGFNYXN0ZXI6SmEsX2ZuQ2xlYXJUYWJsZTpuYSxfZm5EZWxldGVJbmRleDpvYSxfZm5JbnZhbGlkYXRlOmNhLF9mbkdldFJvd0VsZW1lbnRzOkhhLF9mbkNyZWF0ZVRyOkdhLF9mbkJ1aWxkSGVhZDpqYixfZm5EcmF3SGVhZDplYSxfZm5EcmF3Ok4sX2ZuUmVEcmF3OlMsX2ZuQWRkT3B0aW9uc0h0bWw6bWIsX2ZuRGV0ZWN0SGVhZGVyOmRhLF9mbkdldFVuaXF1ZVRoczpyYSxfZm5GZWF0dXJlSHRtbEZpbHRlcjpvYixfZm5GaWx0ZXJDb21wbGV0ZTpmYSxfZm5GaWx0ZXJDdXN0b206eGIsX2ZuRmlsdGVyQ29sdW1uOndiLF9mbkZpbHRlcjp2YixfZm5GaWx0ZXJDcmVhdGVTZWFyY2g6T2EsX2ZuRXNjYXBlUmVnZXg6UGEsX2ZuRmlsdGVyRGF0YTp5YixfZm5GZWF0dXJlSHRtbEluZm86cmIsX2ZuVXBkYXRlSW5mbzpCYixfZm5JbmZvTWFjcm9zOkNiLF9mbkluaXRpYWxpc2U6Z2EsCl9mbkluaXRDb21wbGV0ZTp1YSxfZm5MZW5ndGhDaGFuZ2U6UWEsX2ZuRmVhdHVyZUh0bWxMZW5ndGg6bmIsX2ZuRmVhdHVyZUh0bWxQYWdpbmF0ZTpzYixfZm5QYWdlQ2hhbmdlOlNhLF9mbkZlYXR1cmVIdG1sUHJvY2Vzc2luZzpwYixfZm5Qcm9jZXNzaW5nRGlzcGxheTpDLF9mbkZlYXR1cmVIdG1sVGFibGU6cWIsX2ZuU2Nyb2xsRHJhdzprYSxfZm5BcHBseVRvQ2hpbGRyZW46SCxfZm5DYWxjdWxhdGVDb2x1bW5XaWR0aHM6RWEsX2ZuVGhyb3R0bGU6TmEsX2ZuQ29udmVydFRvV2lkdGg6RGIsX2ZuR2V0V2lkZXN0Tm9kZTpFYixfZm5HZXRNYXhMZW5TdHJpbmc6RmIsX2ZuU3RyaW5nVG9Dc3M6dixfZm5Tb3J0RmxhdHRlbjpWLF9mblNvcnQ6bGIsX2ZuU29ydEFyaWE6SGIsX2ZuU29ydExpc3RlbmVyOlVhLF9mblNvcnRBdHRhY2hMaXN0ZW5lcjpMYSxfZm5Tb3J0aW5nQ2xhc3Nlczp3YSxfZm5Tb3J0RGF0YTpHYixfZm5TYXZlU3RhdGU6eGEsX2ZuTG9hZFN0YXRlOkliLF9mblNldHRpbmdzRnJvbU5vZGU6eWEsCl9mbkxvZzpKLF9mbk1hcDpGLF9mbkJpbmRBY3Rpb246VmEsX2ZuQ2FsbGJhY2tSZWc6eixfZm5DYWxsYmFja0ZpcmU6cixfZm5MZW5ndGhPdmVyZmxvdzpSYSxfZm5SZW5kZXJlcjpNYSxfZm5EYXRhU291cmNlOnksX2ZuUm93QXR0cmlidXRlczpLYSxfZm5DYWxjdWxhdGVFbmQ6ZnVuY3Rpb24oKXt9fSk7aC5mbi5kYXRhVGFibGU9bTttLiQ9aDtoLmZuLmRhdGFUYWJsZVNldHRpbmdzPW0uc2V0dGluZ3M7aC5mbi5kYXRhVGFibGVFeHQ9bS5leHQ7aC5mbi5EYXRhVGFibGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGgodGhpcykuZGF0YVRhYmxlKGEpLmFwaSgpfTtoLmVhY2gobSxmdW5jdGlvbihhLGIpe2guZm4uRGF0YVRhYmxlW2FdPWJ9KTtyZXR1cm4gaC5mbi5kYXRhVGFibGV9KTsK"></script>
<link href="data:text/css;charset=utf-8,%0A%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20%2D30px%3B%0Amargin%2Dright%3A%20%2D30px%3B%0Awhite%2Dspace%3A%20normal%3B%0A%7D%0A%0Abody%20%3E%20%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20auto%3B%0Amargin%2Dright%3A%20auto%3B%0A%7D%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%2Dright%3A%2012px%3B%0Avertical%2Dalign%3A%20top%3B%0A%7D%0A%40media%20only%20screen%20and%20%28max%2Dwidth%3A480px%29%20%7B%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20block%3B%0Apadding%2Dright%3A%20inherit%3B%0A%7D%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,IWZ1bmN0aW9uIGEoYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtpZighY1tnXSl7aWYoIWJbZ10pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFoJiZpKXJldHVybiBpKGcsITApO2lmKGYpcmV0dXJuIGYoZywhMCk7dmFyIGo9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrZysiJyIpO3Rocm93IGouY29kZT0iTU9EVUxFX05PVF9GT1VORCIsan12YXIgaz1jW2ddPXtleHBvcnRzOnt9fTtiW2ddWzBdLmNhbGwoay5leHBvcnRzLGZ1bmN0aW9uKGEpe3ZhciBjPWJbZ11bMV1bYV07cmV0dXJuIGUoYz9jOmEpfSxrLGsuZXhwb3J0cyxhLGIsYyxkKX1yZXR1cm4gY1tnXS5leHBvcnRzfWZvcih2YXIgZj0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxnPTA7ZzxkLmxlbmd0aDtnKyspZShkW2ddKTtyZXR1cm4gZX0oezE6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkLmVudW1lcmFibGU9ZC5lbnVtZXJhYmxlfHwhMSxkLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gZCYmKGQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGQua2V5LGQpfX1yZXR1cm4gZnVuY3Rpb24oYixjLGQpe3JldHVybiBjJiZhKGIucHJvdG90eXBlLGMpLGQmJmEoYixkKSxifX0oKSxmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2QodGhpcyxhKSx0aGlzLl90eXBlcz17fSx0aGlzLl9zZXE9MH1yZXR1cm4gZShhLFt7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl90eXBlc1thXTtjfHwoYz10aGlzLl90eXBlc1thXT17fSk7dmFyIGQ9InN1YiIrdGhpcy5fc2VxKys7cmV0dXJuIGNbZF09YixkfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX3R5cGVzW2FdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBiKXtmb3IodmFyIGQgaW4gYylpZihjLmhhc093blByb3BlcnR5KGQpJiZjW2RdPT09YilyZXR1cm4gZGVsZXRlIGNbZF0sZDtyZXR1cm4hMX1pZigic3RyaW5nIj09dHlwZW9mIGIpcmV0dXJuISghY3x8IWNbYl0pJiYoZGVsZXRlIGNbYl0sYik7dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHR5cGUgZm9yIGxpc3RlbmVyIil9fSx7a2V5OiJ0cmlnZ2VyIix2YWx1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5fdHlwZXNbYV07Zm9yKHZhciBlIGluIGQpZC5oYXNPd25Qcm9wZXJ0eShlKSYmZFtlXS5jYWxsKGMsYil9fV0pLGF9KCk7Yy5kZWZhdWx0PWZ9LHt9XSwyOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7aWYoYSYmYS5fX2VzTW9kdWxlKXJldHVybiBhO3ZhciBiPXt9O2lmKG51bGwhPWEpZm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJihiW2NdPWFbY10pO3JldHVybiBiLmRlZmF1bHQ9YSxifWZ1bmN0aW9uIGUoYSl7cmV0dXJuIGEmJmEuX19lc01vZHVsZT9hOntkZWZhdWx0OmF9fWZ1bmN0aW9uIGYoYSxiKXtpZighKGEgaW5zdGFuY2VvZiBiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBnKGEpe3ZhciBiPWEudmFyKCJmaWx0ZXJzZXQiKSxjPWIuZ2V0KCk7cmV0dXJuIGN8fChjPW5ldyBtLmRlZmF1bHQsYi5zZXQoYykpLGN9ZnVuY3Rpb24gaCgpe3JldHVybiByKyt9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGMuRmlsdGVySGFuZGxlPXZvaWQgMDt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkLmVudW1lcmFibGU9ZC5lbnVtZXJhYmxlfHwhMSxkLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gZCYmKGQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGQua2V5LGQpfX1yZXR1cm4gZnVuY3Rpb24oYixjLGQpe3JldHVybiBjJiZhKGIucHJvdG90eXBlLGMpLGQmJmEoYixkKSxifX0oKSxqPWEoIi4vZXZlbnRzIiksaz1lKGopLGw9YSgiLi9maWx0ZXJzZXQiKSxtPWUobCksbj1hKCIuL2dyb3VwIiksbz1lKG4pLHA9YSgiLi91dGlsIikscT1kKHApLHI9MTtjLkZpbHRlckhhbmRsZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtmKHRoaXMsYSksdGhpcy5fZXZlbnRSZWxheT1uZXcgay5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IHEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPXEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sYyksdGhpcy5faWQ9ImZpbHRlciIraCgpLHRoaXMuc2V0R3JvdXAoYil9cmV0dXJuIGkoYSxbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYodGhpcy5fZ3JvdXAhPT1hJiYodGhpcy5fZ3JvdXB8fGEpJiYodGhpcy5fZmlsdGVyVmFyJiYodGhpcy5fZmlsdGVyVmFyLm9mZigiY2hhbmdlIix0aGlzLl92YXJPbkNoYW5nZVN1YiksdGhpcy5jbGVhcigpLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZmlsdGVyVmFyPW51bGwsdGhpcy5fZmlsdGVyU2V0PW51bGwpLHRoaXMuX2dyb3VwPWEsYSkpe2E9KDAsby5kZWZhdWx0KShhKSx0aGlzLl9maWx0ZXJTZXQ9ZyhhKSx0aGlzLl9maWx0ZXJWYXI9KDAsby5kZWZhdWx0KShhKS52YXIoImZpbHRlciIpO3ZhciBjPXRoaXMuX2ZpbHRlclZhci5vbigiY2hhbmdlIixmdW5jdGlvbihhKXtiLl9ldmVudFJlbGF5LnRyaWdnZXIoImNoYW5nZSIsYSxiKX0pO3RoaXMuX3Zhck9uQ2hhbmdlU3ViPWN9fX0se2tleToiX21lcmdlRXh0cmFJbmZvIix2YWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gcS5leHRlbmQoe30sdGhpcy5fZXh0cmFJbmZvP3RoaXMuX2V4dHJhSW5mbzpudWxsLGE/YTpudWxsKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5jbGVhcigpLHRoaXMuc2V0R3JvdXAobnVsbCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oYSl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LmNsZWFyKHRoaXMuX2lkKSx0aGlzLl9vbkNoYW5nZShhKSl9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGEsYil7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LnVwZGF0ZSh0aGlzLl9pZCxhKSx0aGlzLl9vbkNoYW5nZShiKSl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vbihhLGIpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLl9lbWl0dGVyLm9mZihhLGIpfX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihhKXt0aGlzLl9maWx0ZXJTZXQmJnRoaXMuX2ZpbHRlclZhci5zZXQodGhpcy5fZmlsdGVyU2V0LnZhbHVlLHRoaXMuX21lcmdlRXh0cmFJbmZvKGEpKX19LHtrZXk6ImZpbHRlcmVkS2V5cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpbHRlclNldD90aGlzLl9maWx0ZXJTZXQudmFsdWU6bnVsbH19XSksYX0oKX0seyIuL2V2ZW50cyI6MSwiLi9maWx0ZXJzZXQiOjMsIi4vZ3JvdXAiOjQsIi4vdXRpbCI6MTF9XSwzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXtpZighKGEgaW5zdGFuY2VvZiBiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBlKGEsYil7cmV0dXJuIGE9PT1iPzA6YTxiPy0xOmE+Yj8xOnZvaWQgMH1PYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107ZC5lbnVtZXJhYmxlPWQuZW51bWVyYWJsZXx8ITEsZC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGQmJihkLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxkLmtleSxkKX19cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYyYmYShiLnByb3RvdHlwZSxjKSxkJiZhKGIsZCksYn19KCksZz1hKCIuL3V0aWwiKSxoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2QodGhpcyxhKSx0aGlzLnJlc2V0KCl9cmV0dXJuIGYoYSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFuZGxlcz17fSx0aGlzLl9rZXlzPXt9LHRoaXMuX3ZhbHVlPW51bGwsdGhpcy5fYWN0aXZlSGFuZGxlcz0wfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihhLGIpe251bGwhPT1iJiYoYj1iLnNsaWNlKDApLGIuc29ydChlKSk7dmFyIGM9KDAsZy5kaWZmU29ydGVkTGlzdHMpKHRoaXMuX2hhbmRsZXNbYV0sYiksZD1jLmFkZGVkLGY9Yy5yZW1vdmVkO3RoaXMuX2hhbmRsZXNbYV09Yjtmb3IodmFyIGg9MDtoPGQubGVuZ3RoO2grKyl0aGlzLl9rZXlzW2RbaF1dPSh0aGlzLl9rZXlzW2RbaF1dfHwwKSsxO2Zvcih2YXIgaT0wO2k8Zi5sZW5ndGg7aSsrKXRoaXMuX2tleXNbZltpXV0tLTt0aGlzLl91cGRhdGVWYWx1ZShiKX19LHtrZXk6Il91cGRhdGVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fYWxsS2V5cyxiPU9iamVjdC5rZXlzKHRoaXMuX2hhbmRsZXMpLmxlbmd0aDtpZigwPT09Yil0aGlzLl92YWx1ZT1udWxsO2Vsc2V7dGhpcy5fdmFsdWU9W107Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMuX2tleXNbYVtjXV07ZD09PWImJnRoaXMuX3ZhbHVlLnB1c2goYVtjXSl9fX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbihhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMuX2hhbmRsZXNbYV0pe3ZhciBiPXRoaXMuX2hhbmRsZXNbYV07Ynx8KGI9W10pO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXRoaXMuX2tleXNbYltjXV0tLTtkZWxldGUgdGhpcy5faGFuZGxlc1thXSx0aGlzLl91cGRhdGVWYWx1ZSgpfX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9fSx7a2V5OiJfYWxsS2V5cyIsZ2V0OmZ1bmN0aW9uKCl7dmFyIGE9T2JqZWN0LmtleXModGhpcy5fa2V5cyk7cmV0dXJuIGEuc29ydChlKSxhfX1dKSxhfSgpO2MuZGVmYXVsdD1ofSx7Ii4vdXRpbCI6MTF9XSw0OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3JldHVybiBhJiZhLl9fZXNNb2R1bGU/YTp7ZGVmYXVsdDphfX1mdW5jdGlvbiBlKGEsYil7aWYoIShhIGluc3RhbmNlb2YgYikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gZihhKXtpZihhJiYic3RyaW5nIj09dHlwZW9mIGEpcmV0dXJuIGsuaGFzT3duUHJvcGVydHkoYSl8fChrW2FdPW5ldyBsKGEpKSxrW2FdO2lmKCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2YgYT8idW5kZWZpbmVkIjpoKGEpKSYmYS5fdmFycyYmYS52YXIpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSYmMT09YS5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgYVswXSlyZXR1cm4gZihhWzBdKTt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZ3JvdXBOYW1lIGFyZ3VtZW50Iil9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2QuZW51bWVyYWJsZT1kLmVudW1lcmFibGV8fCExLGQuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBkJiYoZC53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsZC5rZXksZCl9fXJldHVybiBmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGMmJmEoYi5wcm90b3R5cGUsYyksZCYmYShiLGQpLGJ9fSgpLGg9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhfTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmYS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmYSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGF9O2MuZGVmYXVsdD1mO3ZhciBpPWEoIi4vdmFyIiksaj1kKGkpO2IuX19jcm9zc3RhbGtfZ3JvdXBzPWIuX19jcm9zc3RhbGtfZ3JvdXBzfHx7fTt2YXIgaz1iLl9fY3Jvc3N0YWxrX2dyb3VwcyxsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtlKHRoaXMsYSksdGhpcy5uYW1lPWIsdGhpcy5fdmFycz17fX1yZXR1cm4gZyhhLFt7a2V5OiJ2YXIiLHZhbHVlOmZ1bmN0aW9uKGEpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhciBuYW1lIik7cmV0dXJuIHRoaXMuX3ZhcnMuaGFzT3duUHJvcGVydHkoYSl8fCh0aGlzLl92YXJzW2FdPW5ldyBqLmRlZmF1bHQodGhpcyxhKSksdGhpcy5fdmFyc1thXX19LHtrZXk6ImhhcyIsdmFsdWU6ZnVuY3Rpb24oYSl7aWYoIWF8fCJzdHJpbmciIT10eXBlb2YgYSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFyIG5hbWUiKTtyZXR1cm4gdGhpcy5fdmFycy5oYXNPd25Qcm9wZXJ0eShhKX19XSksYX0oKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL3ZhciI6MTJ9XSw1OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3JldHVybiBhJiZhLl9fZXNNb2R1bGU/YTp7ZGVmYXVsdDphfX1mdW5jdGlvbiBlKGEpe3JldHVybiBrLnZhcihhKX1mdW5jdGlvbiBmKGEpe3JldHVybiBrLmhhcyhhKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGc9YSgiLi9ncm91cCIpLGg9ZChnKSxpPWEoIi4vc2VsZWN0aW9uIiksaj1hKCIuL2ZpbHRlciIpO2EoIi4vaW5wdXQiKSxhKCIuL2lucHV0X3NlbGVjdGl6ZSIpLGEoIi4vaW5wdXRfY2hlY2tib3hncm91cCIpLGEoIi4vaW5wdXRfc2xpZGVyIik7dmFyIGs9KDAsaC5kZWZhdWx0KSgiZGVmYXVsdCIpO2IuU2hpbnkmJmIuU2hpbnkuYWRkQ3VzdG9tTWVzc2FnZUhhbmRsZXIoInVwZGF0ZS1jbGllbnQtdmFsdWUiLGZ1bmN0aW9uKGEpeyJzdHJpbmciPT10eXBlb2YgYS5ncm91cD8oMCxoLmRlZmF1bHQpKGEuZ3JvdXApLnZhcihhLm5hbWUpLnNldChhLnZhbHVlKTplKGEubmFtZSkuc2V0KGEudmFsdWUpfSk7dmFyIGw9e2dyb3VwOmguZGVmYXVsdCx2YXI6ZSxoYXM6ZixTZWxlY3Rpb25IYW5kbGU6aS5TZWxlY3Rpb25IYW5kbGUsRmlsdGVySGFuZGxlOmouRmlsdGVySGFuZGxlfTtjLmRlZmF1bHQ9bCxiLmNyb3NzdGFsaz1sfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2dyb3VwIjo0LCIuL2lucHV0Ijo2LCIuL2lucHV0X2NoZWNrYm94Z3JvdXAiOjcsIi4vaW5wdXRfc2VsZWN0aXplIjo4LCIuL2lucHV0X3NsaWRlciI6OSwiLi9zZWxlY3Rpb24iOjEwfV0sNjpbZnVuY3Rpb24oYSxiLGMpeyhmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtpW2IuY2xhc3NOYW1lXT1iLGEuZG9jdW1lbnQmJiJjb21wbGV0ZSIhPT1hLmRvY3VtZW50LnJlYWR5U3RhdGU/aChmdW5jdGlvbigpe2QoKX0pOmEuZG9jdW1lbnQmJnNldFRpbWVvdXQoZCwxMDApfWZ1bmN0aW9uIGQoKXtPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWlbYV07aCgiLiIrYi5jbGFzc05hbWUpLm5vdCgiLmNyb3NzdGFsay1pbnB1dC1ib3VuZCIpLmVhY2goZnVuY3Rpb24oYSxjKXtnKGIsYyl9KX0pfWZ1bmN0aW9uIGUoYSl7cmV0dXJuIGEucmVwbGFjZSgvKFshIiMkJSYnKCkqKywuXC86Ozw9Pj9AXFtcXFxdXmB7fH1+XSkvZywiXFwkMSIpfWZ1bmN0aW9uIGYoYSl7dmFyIGI9aChhKTtPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGIuaGFzQ2xhc3MoYykmJiFiLmhhc0NsYXNzKCJjcm9zc3RhbGstaW5wdXQtYm91bmQiKSl7dmFyIGQ9aVtjXTtnKGQsYSl9fSl9ZnVuY3Rpb24gZyhhLGIpe3ZhciBjPWgoYikuZmluZCgic2NyaXB0W3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXVtkYXRhLWZvcj0nIitlKGIuaWQpKyInXSIpLGQ9SlNPTi5wYXJzZShjWzBdLmlubmVyVGV4dCksZj1hLmZhY3RvcnkoYixkKTtoKGIpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIsZiksaChiKS5hZGRDbGFzcygiY3Jvc3N0YWxrLWlucHV0LWJvdW5kIil9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGMucmVnaXN0ZXI9Yjt2YXIgaD1hLmpRdWVyeSxpPXt9O2EuU2hpbnkmJiFmdW5jdGlvbigpe3ZhciBiPW5ldyBhLlNoaW55LklucHV0QmluZGluZyxjPWEualF1ZXJ5O2MuZXh0ZW5kKGIse2ZpbmQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGMoYSkuZmluZCgiLmNyb3NzdGFsay1pbnB1dCIpfSxpbml0aWFsaXplOmZ1bmN0aW9uKGEpe2MoYSkuaGFzQ2xhc3MoImNyb3NzdGFsay1pbnB1dC1ib3VuZCIpfHxmKGEpfSxnZXRJZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pZH0sZ2V0VmFsdWU6ZnVuY3Rpb24oYSl7fSxzZXRWYWx1ZTpmdW5jdGlvbihhLGIpe30scmVjZWl2ZU1lc3NhZ2U6ZnVuY3Rpb24oYSxiKXt9LHN1YnNjcmliZTpmdW5jdGlvbihhLGIpe2MoYSkuZGF0YSgiY3Jvc3N0YWxrLWluc3RhbmNlIikucmVzdW1lKCl9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKGEpe2MoYSkuZGF0YSgiY3Jvc3N0YWxrLWluc3RhbmNlIikuc3VzcGVuZCgpfX0pLGEuU2hpbnkuaW5wdXRCaW5kaW5ncy5yZWdpc3RlcihiLCJjcm9zc3RhbGsuaW5wdXRCaW5kaW5nIil9KCl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHt9XSw3OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEpe2lmKGEmJmEuX19lc01vZHVsZSlyZXR1cm4gYTt2YXIgYj17fTtpZihudWxsIT1hKWZvcih2YXIgYyBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGMpJiYoYltjXT1hW2NdKTtyZXR1cm4gYi5kZWZhdWx0PWEsYn12YXIgZD1hKCIuL2lucHV0IiksZT1jKGQpLGY9YSgiLi9maWx0ZXIiKSxnPWIualF1ZXJ5O2UucmVnaXN0ZXIoe2NsYXNzTmFtZToiY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAiLGZhY3Rvcnk6ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgZi5GaWx0ZXJIYW5kbGUoYi5ncm91cCksZD12b2lkIDAsZT1nKGEpO3JldHVybiBlLm9uKCJjaGFuZ2UiLCJpbnB1dFt0eXBlPSdjaGVja2JveCddIixmdW5jdGlvbigpe3ZhciBhPWUuZmluZCgiaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkIik7MD09PWEubGVuZ3RoPyhkPW51bGwsYy5jbGVhcigpKTohZnVuY3Rpb24oKXt2YXIgZT17fTthLmVhY2goZnVuY3Rpb24oKXtiLm1hcFt0aGlzLnZhbHVlXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2VbYV09ITB9KX0pO3ZhciBmPU9iamVjdC5rZXlzKGUpO2Yuc29ydCgpLGQ9ZixjLnNldChmKX0oKX0pLHtzdXNwZW5kOmZ1bmN0aW9uKCl7Yy5jbGVhcigpfSxyZXN1bWU6ZnVuY3Rpb24oKXtkJiZjLnNldChkKX19fX0pfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2lucHV0Ijo2fV0sODpbZnVuY3Rpb24oYSxiLGMpeyhmdW5jdGlvbihiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhKXtpZihhJiZhLl9fZXNNb2R1bGUpcmV0dXJuIGE7dmFyIGI9e307aWYobnVsbCE9YSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmKGJbY109YVtjXSk7cmV0dXJuIGIuZGVmYXVsdD1hLGJ9dmFyIGQ9YSgiLi9pbnB1dCIpLGU9YyhkKSxmPWEoIi4vdXRpbCIpLGc9YyhmKSxoPWEoIi4vZmlsdGVyIiksaT1iLmpRdWVyeTtlLnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1zZWxlY3QiLGZhY3Rvcnk6ZnVuY3Rpb24oYSxiKXt2YXIgYz1be3ZhbHVlOiIiLGxhYmVsOiIoQWxsKSJ9XSxkPWcuZGF0YWZyYW1lVG9EMyhiLml0ZW1zKSxlPXtvcHRpb25zOmMuY29uY2F0KGQpLHZhbHVlRmllbGQ6InZhbHVlIixsYWJlbEZpZWxkOiJsYWJlbCIsc2VhcmNoRmllbGQ6ImxhYmVsIn0sZj1pKGEpLmZpbmQoInNlbGVjdCIpWzBdLGo9aShmKS5zZWxlY3RpemUoZSlbMF0uc2VsZWN0aXplLGs9bmV3IGguRmlsdGVySGFuZGxlKGIuZ3JvdXApLGw9dm9pZCAwO3JldHVybiBqLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7MD09PWouaXRlbXMubGVuZ3RoPyhsPW51bGwsay5jbGVhcigpKTohZnVuY3Rpb24oKXt2YXIgYT17fTtqLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oYyl7Yi5tYXBbY10uZm9yRWFjaChmdW5jdGlvbihiKXthW2JdPSEwfSl9KTt2YXIgYz1PYmplY3Qua2V5cyhhKTtjLnNvcnQoKSxsPWMsay5zZXQoYyl9KCl9KSx7c3VzcGVuZDpmdW5jdGlvbigpe2suY2xlYXIoKX0scmVzdW1lOmZ1bmN0aW9uKCl7bCYmay5zZXQobCl9fX19KX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2ZpbHRlciI6MiwiLi9pbnB1dCI6NiwiLi91dGlsIjoxMX1dLDk6W2Z1bmN0aW9uKGEsYixjKXsoZnVuY3Rpb24oYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYSl7aWYoYSYmYS5fX2VzTW9kdWxlKXJldHVybiBhO3ZhciBiPXt9O2lmKG51bGwhPWEpZm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJihiW2NdPWFbY10pO3JldHVybiBiLmRlZmF1bHQ9YSxifWZ1bmN0aW9uIGQoYSxiKXtmb3IodmFyIGM9YS50b1N0cmluZygpO2MubGVuZ3RoPGI7KWM9IjAiK2M7cmV0dXJuIGN9ZnVuY3Rpb24gZShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIERhdGU/YS5nZXRVVENGdWxsWWVhcigpKyItIitkKGEuZ2V0VVRDTW9udGgoKSsxLDIpKyItIitkKGEuZ2V0VVRDRGF0ZSgpLDIpOm51bGx9dmFyIGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsYil7dmFyIGM9W10sZD0hMCxlPSExLGY9dm9pZCAwO3RyeXtmb3IodmFyIGcsaD1hW1N5bWJvbC5pdGVyYXRvcl0oKTshKGQ9KGc9aC5uZXh0KCkpLmRvbmUpJiYoYy5wdXNoKGcudmFsdWUpLCFifHxjLmxlbmd0aCE9PWIpO2Q9ITApO31jYXRjaChhKXtlPSEwLGY9YX1maW5hbGx5e3RyeXshZCYmaC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihlKXRocm93IGZ9fXJldHVybiBjfXJldHVybiBmdW5jdGlvbihiLGMpe2lmKEFycmF5LmlzQXJyYXkoYikpcmV0dXJuIGI7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChiKSlyZXR1cm4gYShiLGMpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX19KCksZz1hKCIuL2lucHV0IiksaD1jKGcpLGk9YSgiLi9maWx0ZXIiKSxqPWIualF1ZXJ5LGs9Yi5zdHJmdGltZTtoLnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1zbGlkZXIiLGZhY3Rvcnk6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7dmFyIGE9aC5kYXRhKCJpb25SYW5nZVNsaWRlciIpLnJlc3VsdCxiPXZvaWQgMCxjPWguZGF0YSgiZGF0YS10eXBlIik7cmV0dXJuIGI9ImRhdGUiPT09Yz9mdW5jdGlvbihhKXtyZXR1cm4gZShuZXcgRGF0ZSgrYSkpfToiZGF0ZXRpbWUiPT09Yz9mdW5jdGlvbihhKXtyZXR1cm4rYS8xZTN9OmZ1bmN0aW9uKGEpe3JldHVybithfSwiZG91YmxlIj09PWguZGF0YSgiaW9uUmFuZ2VTbGlkZXIiKS5vcHRpb25zLnR5cGU/W2IoYS5mcm9tKSxiKGEudG8pXTpiKGEuZnJvbSl9dmFyIGQ9bmV3IGkuRmlsdGVySGFuZGxlKGIuZ3JvdXApLGc9e30saD1qKGEpLmZpbmQoImlucHV0IiksbD1oLmRhdGEoImRhdGEtdHlwZSIpLG09aC5kYXRhKCJ0aW1lLWZvcm1hdCIpLG49dm9pZCAwO2lmKCJkYXRlIj09PWwpbj1rLnV0YygpLGcucHJldHRpZnk9ZnVuY3Rpb24oYSl7cmV0dXJuIG4obSxuZXcgRGF0ZShhKSl9O2Vsc2UgaWYoImRhdGV0aW1lIj09PWwpe3ZhciBvPWguZGF0YSgidGltZXpvbmUiKTtuPW8/ay50aW1lem9uZShvKTprLGcucHJldHRpZnk9ZnVuY3Rpb24oYSl7cmV0dXJuIG4obSxuZXcgRGF0ZShhKSl9fWguaW9uUmFuZ2VTbGlkZXIoZyk7dmFyIHA9bnVsbDtyZXR1cm4gaC5vbigiY2hhbmdlLmNyb3NzdGFsa1NsaWRlcklucHV0IixmdW5jdGlvbihhKXtpZighaC5kYXRhKCJ1cGRhdGluZyIpJiYhaC5kYXRhKCJhbmltYXRpbmciKSl7Zm9yKHZhciBlPWMoKSxnPWYoZSwyKSxpPWdbMF0saj1nWzFdLGs9W10sbD0wO2w8Yi52YWx1ZXMubGVuZ3RoO2wrKyl7dmFyIG09Yi52YWx1ZXNbbF07bT49aSYmbTw9aiYmay5wdXNoKGIua2V5c1tsXSl9ay5zb3J0KCksZC5zZXQoaykscD1rfX0pLHtzdXNwZW5kOmZ1bmN0aW9uKCl7ZC5jbGVhcigpfSxyZXN1bWU6ZnVuY3Rpb24oKXtwJiZkLnNldChwKX19fX0pfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2lucHV0Ijo2fV0sMTA6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtpZihhJiZhLl9fZXNNb2R1bGUpcmV0dXJuIGE7dmFyIGI9e307aWYobnVsbCE9YSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmKGJbY109YVtjXSk7cmV0dXJuIGIuZGVmYXVsdD1hLGJ9ZnVuY3Rpb24gZShhKXtyZXR1cm4gYSYmYS5fX2VzTW9kdWxlP2E6e2RlZmF1bHQ6YX19ZnVuY3Rpb24gZihhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxjLlNlbGVjdGlvbkhhbmRsZT12b2lkIDA7dmFyIGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107ZC5lbnVtZXJhYmxlPWQuZW51bWVyYWJsZXx8ITEsZC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGQmJihkLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxkLmtleSxkKX19cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYyYmYShiLnByb3RvdHlwZSxjKSxkJiZhKGIsZCksYn19KCksaD1hKCIuL2V2ZW50cyIpLGk9ZShoKSxqPWEoIi4vZ3JvdXAiKSxrPWUoaiksbD1hKCIuL3V0aWwiKSxtPWQobCk7Yy5TZWxlY3Rpb25IYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7dmFyIGI9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsYz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbDtmKHRoaXMsYSksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IG0uU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX3Zhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPW0uZXh0ZW5kKHtzZW5kZXI6dGhpc30sYyksdGhpcy5zZXRHcm91cChiKX1yZXR1cm4gZyhhLFt7a2V5OiJzZXRHcm91cCIsdmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztpZih0aGlzLl9ncm91cCE9PWEmJih0aGlzLl9ncm91cHx8YSkmJih0aGlzLl92YXImJih0aGlzLl92YXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLl92YXI9bnVsbCx0aGlzLl92YXJPbkNoYW5nZVN1Yj1udWxsKSx0aGlzLl9ncm91cD1hLGEpKXt0aGlzLl92YXI9KDAsay5kZWZhdWx0KShhKS52YXIoInNlbGVjdGlvbiIpO3ZhciBjPXRoaXMuX3Zhci5vbigiY2hhbmdlIixmdW5jdGlvbihhKXtiLl9ldmVudFJlbGF5LnRyaWdnZXIoImNoYW5nZSIsYSxiKX0pO3RoaXMuX3Zhck9uQ2hhbmdlU3ViPWN9fX0se2tleToiX21lcmdlRXh0cmFJbmZvIix2YWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gbS5leHRlbmQoe30sdGhpcy5fZXh0cmFJbmZvP3RoaXMuX2V4dHJhSW5mbzpudWxsLGE/YTpudWxsKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oYSxiKXt0aGlzLl92YXImJnRoaXMuX3Zhci5zZXQoYSx0aGlzLl9tZXJnZUV4dHJhSW5mbyhiKSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oYSl7dGhpcy5fdmFyJiZ0aGlzLnNldCh2b2lkIDAsdGhpcy5fbWVyZ2VFeHRyYUluZm8oYSkpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuX2VtaXR0ZXIub24oYSxiKX19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vZmYoYSxiKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5zZXRHcm91cChudWxsKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFyP3RoaXMuX3Zhci5nZXQoKTpudWxsfX1dKSxhfSgpfSx7Ii4vZXZlbnRzIjoxLCIuL2dyb3VwIjo0LCIuL3V0aWwiOjExfV0sMTE6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGUoYSl7Zm9yKHZhciBiPWFyZ3VtZW50cy5sZW5ndGgsYz1BcnJheShiPjE/Yi0xOjApLGQ9MTtkPGI7ZCsrKWNbZC0xXT1hcmd1bWVudHNbZF07Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV07aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBmJiZudWxsIT09Zilmb3IodmFyIGcgaW4gZilmLmhhc093blByb3BlcnR5KGcpJiYoYVtnXT1mW2ddKX1yZXR1cm4gYX1mdW5jdGlvbiBmKGEpe2Zvcih2YXIgYj0xO2I8YS5sZW5ndGg7YisrKWlmKGFbYl08PWFbYi0xXSl0aHJvdyBuZXcgRXJyb3IoIkxpc3QgaXMgbm90IHNvcnRlZCBvciBjb250YWlucyBkdXBsaWNhdGUiKX1mdW5jdGlvbiBnKGEsYil7dmFyIGM9MCxkPTA7YXx8KGE9W10pLGJ8fChiPVtdKTt2YXIgZT1bXSxnPVtdO2ZvcihmKGEpLGYoYik7YzxhLmxlbmd0aCYmZDxiLmxlbmd0aDspYVtjXT09PWJbZF0/KGMrKyxkKyspOmFbY108YltkXT9lLnB1c2goYVtjKytdKTpnLnB1c2goYltkKytdKTtyZXR1cm4gYzxhLmxlbmd0aCYmKGU9ZS5jb25jYXQoYS5zbGljZShjKSkpLGQ8Yi5sZW5ndGgmJihnPWcuY29uY2F0KGIuc2xpY2UoZCkpKSx7cmVtb3ZlZDplLGFkZGVkOmd9fWZ1bmN0aW9uIGgoYSl7dmFyIGI9W10sYz12b2lkIDA7Zm9yKHZhciBkIGluIGEpe2lmKGEuaGFzT3duUHJvcGVydHkoZCkmJmIucHVzaChkKSwib2JqZWN0IiE9PWooYVtkXSl8fCJ1bmRlZmluZWQiPT10eXBlb2YgYVtkXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjJiZjIT09YVtkXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpO2M9YVtkXS5sZW5ndGh9Zm9yKHZhciBlPVtdLGY9dm9pZCAwLGc9MDtnPGM7ZysrKXtmPXt9O2Zvcih2YXIgaD0wO2g8Yi5sZW5ndGg7aCsrKWZbYltoXV09YVtiW2hdXVtnXTtlLnB1c2goZil9cmV0dXJuIGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2QuZW51bWVyYWJsZT1kLmVudW1lcmFibGV8fCExLGQuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBkJiYoZC53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsZC5rZXksZCl9fXJldHVybiBmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGMmJmEoYi5wcm90b3R5cGUsYyksZCYmYShiLGQpLGJ9fSgpLGo9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhfTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmYS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmYSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGF9O2MuZXh0ZW5kPWUsYy5jaGVja1NvcnRlZD1mLGMuZGlmZlNvcnRlZExpc3RzPWcsYy5kYXRhZnJhbWVUb0QzPWg7Yy5TdWJzY3JpcHRpb25UcmFja2VyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtkKHRoaXMsYSksdGhpcy5fZW1pdHRlcj1iLHRoaXMuX3N1YnM9e319cmV0dXJuIGkoYSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5fZW1pdHRlci5vbihhLGIpO3JldHVybiB0aGlzLl9zdWJzW2NdPWEsY319LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9lbWl0dGVyLm9mZihhLGIpO3JldHVybiBjJiZkZWxldGUgdGhpcy5fc3Vic1tjXSxjfX0se2tleToicmVtb3ZlQWxsTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLl9zdWJzO3RoaXMuX3N1YnM9e30sT2JqZWN0LmtleXMoYikuZm9yRWFjaChmdW5jdGlvbihjKXthLl9lbWl0dGVyLm9mZihiW2NdLGMpfSl9fV0pLGF9KCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxiLGMpeyhmdW5jdGlvbihiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtyZXR1cm4gYSYmYS5fX2VzTW9kdWxlP2E6e2RlZmF1bHQ6YX19ZnVuY3Rpb24gZShhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGF9OmZ1bmN0aW9uKGEpe3JldHVybiBhJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZhLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZhIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgYX0sZz1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkLmVudW1lcmFibGU9ZC5lbnVtZXJhYmxlfHwhMSxkLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gZCYmKGQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGQua2V5LGQpfX1yZXR1cm4gZnVuY3Rpb24oYixjLGQpe3JldHVybiBjJiZhKGIucHJvdG90eXBlLGMpLGQmJmEoYixkKSxifX0oKSxoPWEoIi4vZXZlbnRzIiksaT1kKGgpLGo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtlKHRoaXMsYSksdGhpcy5fZ3JvdXA9Yix0aGlzLl9uYW1lPWMsdGhpcy5fdmFsdWU9ZCx0aGlzLl9ldmVudHM9bmV3IGkuZGVmYXVsdH1yZXR1cm4gZyhhLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihhLGMpe2lmKHRoaXMuX3ZhbHVlIT09YSl7dmFyIGQ9dGhpcy5fdmFsdWU7dGhpcy5fdmFsdWU9YTt2YXIgZT17fTtpZihjJiYib2JqZWN0Ij09PSgidW5kZWZpbmVkIj09dHlwZW9mIGM/InVuZGVmaW5lZCI6ZihjKSkpZm9yKHZhciBnIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShnKSYmKGVbZ109Y1tnXSk7ZS5vbGRWYWx1ZT1kLGUudmFsdWU9YSx0aGlzLl9ldmVudHMudHJpZ2dlcigiY2hhbmdlIixlLHRoaXMpLGIuU2hpbnkmJmIuU2hpbnkub25JbnB1dENoYW5nZSYmYi5TaGlueS5vbklucHV0Q2hhbmdlKCIuY2xpZW50VmFsdWUtIisobnVsbCE9PXRoaXMuX2dyb3VwLm5hbWU/dGhpcy5fZ3JvdXAubmFtZSsiLSI6IiIpK3RoaXMuX25hbWUsInVuZGVmaW5lZCI9PXR5cGVvZiBhP251bGw6YSl9fX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuX2V2ZW50cy5vbihhLGIpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLl9ldmVudHMub2ZmKGEsYil9fV0pLGF9KCk7Yy5kZWZhdWx0PWp9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9ldmVudHMiOjF9XX0se30sWzVdKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3Jvc3N0YWxrLm1pbi5qcy5tYXA="></script>
<link href="data:text/css;charset=utf-8,%40font%2Dface%7Bfont%2Dfamily%3A%27Open%20Sans%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A400%3Bsrc%3Alocal%28%27Open%20Sans%27%29%2Clocal%28OpenSans%29%2Curl%28data%3Aapplication%2Ffont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAE8YABIAAAAAhWwAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABlAAAABYAAAAWABAA3UdQT1MAAAGsAAAADAAAAAwAFQAKR1NVQgAAAbgAAABZAAAAdN3O3ptPUy8yAAACFAAAAF8AAABgoT6eyWNtYXAAAAJ0AAAAmAAAAMyvDbOdY3Z0IAAAAwwAAABZAAAAog9NGKRmcGdtAAADaAAABJsAAAe0fmG2EWdhc3AAAAgEAAAAEAAAABAAFQAjZ2x5ZgAACBQAADWFAABReBn1yj5oZWFkAAA9nAAAADYAAAA293bipmhoZWEAAD3UAAAAHwAAACQNzAapaG10eAAAPfQAAAIIAAADbLTLWYhrZXJuAAA%2F%2FAAAChcAAB6Qo%2Buk42xvY2EAAEoUAAABuQAAAbz3ewp%2FbWF4cAAAS9AAAAAgAAAAIAJ2AgpuYW1lAABL8AAAAKwAAAEyFNwvSnBvc3QAAEycAAABhgAAAiiYDmoRcHJlcAAATiQAAADyAAABCUO3lqQAAQAAAAwAAAAAAAAAAgABAAAA3AABAAAAAQAAAAoACgAKAAB4AR3HNcJBAQDA8d%2BrLzDatEXOrqDd4S2ayUX1beTyDwEyyrqCbXrY%2BxPD8ylAsF0tUn%2F4nlj89Z9A7%2BtETl5RXdNNZGDm%2BvXYXWjgLDRzEhoLBAYv0%2F0NHAAAAHgBY2Bm2cY4gYGVgYN1FqsxAwOjPIRmvsiQxviRg4mJm42NmZWFiYnlAQPTewcGhWgGBgYNBiAwdAx2ZgAK%2FP%2FLJv9PhKGFo5cpQoGBcT5IjsWDdRuQUmBgBgD40BA5AHgBY2BgYGRgBmIGBh4GFoYDQFqHQYGBBcjzYPBkqGM4zXCe4T%2BjIWMw0zGmW0x3FEQUpBTkFJQU1BSsFFwUShTWKAn9%2Fw%2FUpQBU7cWwgOEMwwWg6iCoamEFCQUZsGpLhOr%2Fjxn6%2Fz%2F6f5CB9%2F%2Fe%2Fz3%2Fc%2F7%2B%2Bvv877MHGx6sfbDmwcoHyx5MedD9IOGByr39QHeRAABARzfieAFjE2EQZ%2FBj3QYkS1m3sZ5lQAEsHgwiDBMZGP6%2FAfEQ5D8REAnUJfxnyv%2B3%2F1r%2Fv%2Fq3Eigi8W8PA1mAA0J1MzQy3GWYwdDP0Mcwk6GDoZGRn6ELAE09H%2F8AAAB4AXVUR3fbxhPfhRqr%2F6Cr3h8pi4wpN9K9V4QEYCrq7b2F0gC1R%2BXkS3rjKWXlfJeBfaF88jH1M6TfoqNzdWaXxZ0NM7%2FftJ2ZpXfzzeVILi0uzM%2FNzkxPTU68Md64GQZ%2Bvfa6d%2BP6tatXLl%2B6eOH8uVMnTxyvVg4fGisfhNfcV0f3luz%2F7Srmc9nMyPDQ4IDFWUUgjwMcKItSmEAASaNaEcFo069WAghjFIlAegyOQaNhIEhQxALHEqIeg2P0yHLjKUuvY%2Bn1LbktrrKrOgUI%2FMUH0ebLc5Lk73yIBO4YeUrL5GGUIimuSx6mKl2tCDD8oKmCmGrkaT5Xh%2Fp6rlphaS5PYp4kPAy3Un74OjeCdTi4nFosU6Qg%2BqRBsoazczLwHdeNqpVx3AW%2BoVjdhMThOo6YkGJTl862RFq5r263bbYSHyuswVrylsSBhHzVQKDU11g6hkfAxyOf%2FDVKJ1%2FHCvgBHtNRJ%2Bb7eSYepeQ4VLZBqAeMjgM7%2FzyJJF1kuGw%2FYFpEq458Xrr65YTUa6VCEKGKVdJ%2B2FoBYYNKCwV1K6B2s1mJnPB7Ww6GtyO04ya%2FHHWPHs5P4J65NyVa5VA0E0LocwPci45b6tvMvohm1BYc1h12Xd2GrbbHVkjB1pzs6IKtOHeYd%2BJYhFasmfs9Zt%2BSZlo9pu8eg0utWZAKB8vjaxBQx7cSbK3Qdr2nBwM27vrXcUHtLolLJyJjK3CAbDcFDo3hsPZ63IH2RrsoWyskdB47jiKitFtcAgqj4wQQxN3PB81RCiCo0Y1jnUVYlOj5JHhJd2JBevIEeSQxDWzTN8PEE3AL90KtP11dVrC5II1L1w331pHFq10vPBGYeyUCFRvB7PAEzMltdubhb%2BlZ4dw9w86yyNfG%2B%2Bu0ZWOBkmsb%2BGrsrKGIN4R0XPQimnAEcj3CI6ZDR35zzHJEZlcW5cQCTMwty4umkB5B4ajHwVNhQDqdMLSAmClnhLScgYgMbQJESALUrtIvjpQz9LVxuIPSiYgQkjusZ01l4BERrPtdO9KfDErKQLne6EUbJlXHqTccNzL163tuES26ickjo5va6FIkCyIyaFEYA%2BlejuqlFxLWIYKmQG9W0tlMe0yXu80wPe%2FOavEJrd8srSFziSal30wMj5H2mH7T6H218RQ93qOFysDEgtLBoRuQUeXjyPQKexdLjoa4vtAQJiBsEXYutEo9T1%2Fm5mUdBMbXFCzIq8Z6Yl5%2B7nyic%2B1mE3xisVatpBarpcC%2FmUs9%2Fs3Csty2GRPfLMo7FrfqcS1KDxIntwVjnkEtjRJoFKEVHWmelIyxd7Y9xlqGHTSA0VfbnBks08M4W21bHczuJBrTiYixiBnsMF7PepCwTAdrGcy8UqZb5uWGvIyX9QpW0XJSrqE7hNzjjGU5u1vgRe6k5DVv4DZvpVnP6Vi0yMKLOhUvPUq9tCzvFhi5mV9KVNMvWpfRJg1bggjEml6Uz6KmiiN92dh%2BGg19OHK4TmOC61TIcAFzsF7DPNQ0fkPjNzr4sMZHaEX5fk7uLZr9LHK9AW9KF2wU%2F%2F%2FBUfaOnlREfyrK%2Frv6Hyn3ISkAAAEAAwAIAAoADQAH%2F%2F8AD3gBhXwHfFRV1vg5974yvZdMQspkSIYkQkgmhdAyIIQQWsSADCLSpajUiMgiAkuJNGmhKyJGDCyybCiyiGBHRGQtyLIuf2UX19UPy7oWyFz%2B972ZBxOE72N%2BL2%2BYd%2Bbe0%2B5p99wBAscBBIN4ACjI4D4oUJEIVAbIL8wPYX4oP1TQ3um3%2B0v5dZz2bj44nsyKLhYPXKkaL1wCAhuuXcQ69dsWyAu7qF5PBMFqQzQRkzQgYvIQCuXleXYHlCXl2x1YZg%2BF7HxMDNAQLQoVetwuKZCZjRUTQqc%2Ff7RjebisqAeuEQJXmpZUdA%2F3KgcgsJA2kL1xDNPDZqCyQAWdXiIy5YOHThUq4%2FKB1XFpgPr5heVtJuSQvJzxOeKB6HfEplzKWCEA4Sc%2BVgqkw8bwIF16K7fg0ttNJr3DajEKBqfT5UlNkwXJKyD4hCRRlFySwU%2BTvTTJkJTh1wkms6l%2FpBWa08Fmt%2FWP%2BNz2AWYcYEez3WwXvU5qECE%2FVB5ylJXl5993Hyc3zw6hkHaPoerldxVjh7eMX%2FF3hYWxu0KF382pcKpXsV%2B9QlS93Mj%2FSz%2FujinsVE1dDTszcEk1u4LpPdjXmDdw6UAsqFlUg7rmf2J%2Bd3aGLmC757GBuEe55mHNXGxifZVrLtuNNUBhwbU6wSQ5IAOyoS2MCxcH7VmpXkHIdZlFP4BPtOvFdvlZZsncL0Kl1pZcS99Iam5eK1erfhFvrkviL9HDKc5X6OV%2FChUq7aGEvw5U6QuFVCbEhOSSZHegODM7WOzxhOzZ2cVFJaXFIbfHK2cH7WlELuK3EnR5vHZJEkzvHZw35S933n0ucur5ky%2FMO7SraN2mrVuqGiNPnIt%2BNnTy6HF4fMkfvf%2B6EEjfkpWPh7rtXrJgp%2BNAk9hzQScj6194%2F%2ByxlZE72Ow0KvcdloMLbPcBiDD%2B2jdSW%2FEk6MENfk55AfQMtwabaPC0aZWZ2a6Nob1NKgxRc3qemb%2FaF0jtk3xZPtkpc4Xjr3KVXE7WDfpi%2BsfVJ1RotwUyJVFVbE4ZV3JUPi0pLsq%2B%2BXMM4A9Vd%2B%2FYcXcVvrtx7bLN61av2oINVTU11dU1NVV4cuPaFRvXrV7xDGPNH6%2BheQJpbMQaHLiz8R9fXb5w8dLl5vO7XnzhD7uef37Xxa8u%2F%2F3ipa9pxpUqrt5AYeq1b8QPxVNg5BQWw13h9k4PpEqB3Lx2eW0DlmxfqkdfUhoy9Y6EnNZgW0t7MZ%2F6smlubka%2BI0NfFckQoDwPkjih%2Bd4yrpTleTdRqoinJE6Ts7AULcTt8mRxQbYjMeLcXMpYwucgMgaCkrrMn668Z97YBwZHJm%2F%2B%2FhnWZ%2FKwOzazl5c2DerS%2Bo2Xth9eshXXd7jTu7NHHeb98%2BVHfqw%2F%2Bz%2FCmp5zhvSZe3e%2FkSOubt2EO3tExnWrrbsy%2F51x94%2BaWFa%2F84V1k%2Fbfx2Z1fWE0%2B2It%2B2zfxGEfAaBiMbBctRiug0CpIBLFUpyK2R%2BOumYgYrZB%2BcZAdoT4%2BTfM0CpsksEggGCxGoNUsV4J5sVpc5SGJE6pwxvIJgM3r97%2B1Kq1S7et2UQKUI%2Fv7znOCn%2F8jpW80ohvKaN24aOatFEFAx8XLFYDFYItR0UbkQMljuIiEgx5HMS0efW2pWtXPbVdGZb9yjruPIInv%2FsR3z%2F%2BEisAhMFkrmCRXGCB9uEUKgoomw16o95qEwxoJiaT2cDtl84CUP5G4XWJOTBmWLK8olOmNOjMKhUpWZWHK5LZgl9279229we2OBUX50kuVjv5QDo7PBwnsvrhWJF%2BYDIuVagZDxeFHOF1MEKbsBMEQS%2BKJjOVdXJ1BKw61EH%2BfeqSTzTz3I7ZA3Zuv%2Bwhshy3sDFL2TjctJR6n2SDsfFJ3A0I5ewXfAgugw7s%2B0XQG0SAfFVWHOEsr6TyphSHW5NHFc9J6Wa%2B7B3Dfp42HguHAUINniPlZCpQ%2Fl0CogDIrW%2F8u85iv7sGv8ZzGzYAxjwV%2FMCxTwobJQCTWU8HRPQeruaaXpRqestVdUOXso7dupeF7px4Z8%2Bed3arKFc44AIg51W9ch4kIIiUEocmSk4sBpCcj15oUDRJXYYExl37RmirrkIv55rLASYJJF%2BS3t0nopeptU%2BE%2BmLrLK%2BlPgQyid3mCBU6UP1rVz8R2n770zc%2FXf7x8s%2FNn9fvaFi3rmFHPfmMLWRP4lycho%2FjNPY4W82Os88wiJ34K4tdAIQjAOQkx8YArcM2PaAOjSZBL8uolzAJFFvGDXd8ej67P2AvKpUkOYghcnK7zl300RBcsExwzJ%2Fhbrd7GuYBwhgAIYtbTx%2F3%2Bd4klJ3gtKCQnGIz9InYZEzqG8EkjSzNavCB%2FcXYlcQshhyMsZrI6PYLWc3lOG%2FvlA4rHr%2F3uTFD3r38%2Fr%2B3fMKOke9W4oJ9G566u7au84CpOz%2Fct5R99wF7W6dIYjjnawrHIAh3hlungFOWgXoyzVKbHOr1eD19Il6vISsrrU8kSzbY%2B0QMGpdjgYh60zDTHJKHoyP4404pw27zB4o1o62gq%2BBLL299am8j%2Bzv774zj995%2FdgTOZsOfWr3rnTWPj2h8qGbo1%2FM%2F%2FkYYvmxfms7TtPrM54E7ns4vwBw0rFy%2FaNJjRRVTet31OgCBPABhongUDOCAzuE0h6gnxChToCJ1ulB0iH0jeqvscFBZotflk%2BhMQ5oJDqhrC%2Fl%2F%2FFxmAUlGYeK5Z6Jl5MDec2yJQdc%2Bl5ViNduL1avoZ805eGll04jy6COKheT8S%2BU6kQwdw%2BlW6nPpXF4qtEoBziwAye3mMnRLkqlPRLqZdQlsKxTcLghkqhzjrLL5M%2BWgUwldSkjbL1HPLrCf51d8MHbv66zu%2FmcGl5Kz0YNZ0%2Bmcf759kbEB29qGGrZiYWop2b2R9fYqnKnlWOVzqXqgNfQIB5LtRr8fQLLT7CyT0ZLaL2K0WFzU5e0TcfmojkckcgvcyhJ4pNlr8Bd63VyEhIbiGhfIBFGTq8R9lqcWB2Dl1G79Rn%2F9i8n08OU3L%2F760UX2E369YuvqVUPrI9VryFR8CXc5V%2FrYefbW7svv%2FYNdxUHv%2FOnFVQ1V8yse2Dde0UcAIY%2FzU4L0sA1FEQg3jJT0jVAJFBlqbOOrALk1dCOmkuHNF%2BmpaKOYunHhldNAlZhEyFGpz4R20C%2Bc47Vmu%2B6gqXo9lewuq5TfXrLnZORk9Ink5JjAlNwvYvJBoF8E5N8qd9nN3jrmj7mOx8OPLDXqolpgwv0zZkpuzaeTynf%2BvWjNvnr22b%2BbsfDJR7%2Be%2BcL6dQ1bXlu3CDvOWfHIMytnrhJPHt7x4L7eg%2F48%2B8C5U0euLuu%2Ff8ozr1xteHTRssdGru8V3kwfeHTMsN937%2FzksLEzFdlO5NQpNsMLWdAtnJlizzQYAAQu26AljUvWZbEQlyuJi1Ymcr8Iaal2jjKNg5qJ9Ctqx02jMyDFKHJw8TpUIvjHKhXZQlZ0%2FIwe1eO%2B%2B6%2FRVHpg2mv%2FuPbBuguPMtfKLU%2BtuXfjkIFraEVzg2tlMuZg6O57%2FvXBP1C3kZ3H9od2PPV81RMVE%2FaNAy3HEcaokRS34Ta%2BLAA8XotzQMRiizkRDVfN87X0JXae6NzkVR6Znehb6J8XL%2BY3IKovXMjn0oEDMrkmmc2iXu9yGm0DIkab6hgTZklwj%2FT6FDccpXsmn6Rjlxv%2BknyrTFMR8%2BU%2FcF9%2BDiRwh%2FUCiChwdeXD58cDhSwsRjeikNNcTo83%2F0AtP2DDKLywji1nhxSezMTjgo9eVHOy3LBbJgIQ0OsEsToiIFRHrIjI4wHOlfxEz6a4ZOTXTLq9eTjdTofW1bEH6up%2Bg5GIBDhGEr2BkRNVlMZTa%2FP3HKVyrMMKrF3H%2FKPYUAWjlGsXaRnXrxTIhrJwqp%2FbMtnphFYWIdgGoLWtddqASGuPzdA7YhNaqFZLvVJSEa48LZwUd4YSN4mJ%2Baq%2FctSSXgtmD6gf2emV91%2F9KNj38bHd9l3PX0tq19dMnzFw3OSsgsWjj%2BzqPXn0w4On3e9nZ%2BNJLYFZ1yqkQ2ITFEM5zzwyA%2B1KLJ1kVwpAjsvSTgx3S%2BrQQeiisxv5Ky%2B9kGbnqUmllmSFEhOP6%2FG4ug6C2nJQUPdSt0td36R1IFMgbsUalrqlQAbw4KK1v1BwIH%2FudKqm8NCQbeMHP2LUtVk3rv7Fb4712N3Tt%2FDeaWvZt3%2B8wA7swe6Y%2F5cvjv3I1rHJn%2BAyhLM44ODVn14%2F7bBUDpq%2Fhpxb8c388XfdM%2BrU3veu%2BTws17Pv7O79aFvzMnvxc3aaHRq8sAZX4jgUsP7CfvYntoNhGYquJiAAAKJNPAIyWLjk0ojFqENR0SwqyILNaiG9I0bRYhFECoKD518xh6iplZYz%2B5W8H0OIlBsz%2FtURB6IHmnaT7itJORvb6A94cnbjGZYvHrnSg0zENwfPGTGddQIKJwCEo9xyW8ALGdA7nO0UUg1Wn89iEGQLjwd01iRrUlXEarWAxVcVsTjAWxUBevt4QnM9%2FgxBMbluwe4SAjxpj%2FmcgN0ef3cCt2IAhVVLsR%2F7%2BTIjjZjU9PTeY1ew4I9%2FOvhn8cCeI%2FNf9BnK2Pk3%2FkZ7TF00%2B6HoquhndauXPAGAMIdb09Oqr8gOu6jFpbdQb5IDekccglHi%2FHK2DL%2B4emRymUNIE3%2BRo3WokKfbtNP37Cs0%2F7rxjQ0X2Cvs2Rex%2FNNLuysbxBB7lX3FPmdvl64rwyU44QusOVSzuj8AUTgmDuEc04FdsYcWQQ8COJyiuSoiUsFSFREct4ppwc9rSBlA%2BZuAPZTBx2Az2Uo2CY%2FhIHysic%2F1z59PI%2FdU5CtWz%2BaJB9gi9gKmYebVKZgHgMq89Bc%2Br1GJWSSDAQXQoWAyS%2FreEUlCQsTeEUKRr3B03DZmUZBwxy%2F6S%2FMZmh%2BdTYZHt5OF4oH1LKc%2BeilhJj0UhpMlAKQ6pAbjTRPxSW45Q0CbAac3asPzwaNfrY9LTuyi2ilOhUvnI8SSohNapUJK7wiAaDLZe0dMgujtHRGdt4%2B8%2FHaphRyV9%2Brq5lT1xe9nfPc0a2IrDuKQL%2F%2F9bve3DrL%2Fso%2FQj0kbVrGXCYuWZWXjUhzzD7xn%2F%2BD6GvYau8Q%2BZe8H8LUY7WK6yuVQ2KdHBJ0giCCaTTraO6LTiQaJoshJV81RgnG%2FQbydi5f%2FDYnpjc2ssZGSRrI3Ws1z7dXkYQC8NoLNxfFqVpwaNht1OotVT4GzFDJj9GrpGI15%2BJJiPpxLMg0v6dVv9AONx9jclFWuR6fyFGvI0TNxvRC%2BUjHmnkjBViRGg4Ix0Yn6RGzLWkgJZRVRDKHw1TvRrzc2NpL1J6JN5M0l0dc5snnk4%2BjCBF0QIT1soQCCJCMFzgtw3EBXxTekkO0%2B0aio0pV%2FbIp9V%2BKIgpPrUZJOFCUev%2FJSmsuNBjuVjDK1gKQgp2DnLbuZlRjwuJUAn2MY4nce4COtZjadZSsCntbhh6zRomMm0bbpo%2Bbh4oGrVQLPOume7Uev%2FBCXo1IDsUG7sFsvcaytVpDB7jBS2aqjKCdypaUI4xPzabNJKZdj%2BWvNn%2BtsW4%2FRVB2xkGeEk582NR%2FnE3ZMwaxy2guAqFp99FZ5bu%2BIXqDW3hHqvLVNiOltBiTmueJRtpW9oZgjHIE9sBOOujo9%2Bv1%2Ffvn5h%2F9Eeb77LHuYa%2B94HIt1bArbxs6yU1iIuRjEAnYqZp%2BE8erqdUBRONnA%2Bc75DE6XQaiKGAySLDuqIjKVEtavhpXmSgW%2FmlplYChutYXx7Ay7tLsRZ5PWUePGL949euKoYPr7t1HOh2jK6mdXrVC5wHaoXLBCCp%2BZp8MeAIEa%2BOqmZtns6x0xC7KTL2yZM%2BMtlRs3J6I2pViG8q258sX7OOxndrH0tpz5ki3rzuqxivyf%2FDnN%2BWMCN1SGs8yIxKS3y0aDQdYTwePVm8EMVRGzmVDK5UepkSi6cntnp2Ku8ktw20SOf5bGNm4BcRXyGdhfcfkJ9jQ7%2FVXTzl2vfEZGRLeJB94%2Fzf4%2BLjqZjFi9cuWqJwDVHIFw29ha4V6a0wSQ5BSFrGxTGvV4uH30CFSfoEoJiY4mt0CGlozy8D%2Bo5jgx%2B6jmBbwy4BEI%2B9d3rHnZ0I%2FGN%2B7usnL1ey%2BxM389WLx%2F1%2BINHRbWXfoDLjz%2B6Z07su%2BYN73vyIFFvd959sV3qtf2nfFA35F3FQw8AoDgABCGcv7JvJ7iABSRUp1epgK3CYLmFeJ5qGYSi7k3IEsbWYFQyQrE9PWqJzjM14yPj2OHrLDdhgYZZafDrqOCmQ8UpzGUuFzsLkUnVHMYs4uij%2F2F%2FcJfFxrfee3ld8QDzf2vsC8wo5nuaa44%2BMabh%2BghQAAA4XW1%2FpMcNqJgMuooCJQqiPLlrxWvQhjgF8%2F%2FSgXTwej3O6M%2FNmF1x8zWHdVaFh%2F5uU3bnwXkmg1yXz6aT6km%2BQwpyW6LRdQn2Q0U9TGTotqUGOKqNclWAjJldKcyenwSZ0h8cyc75y5CT3v2xU42u%2BnL9p6UYpSa0Nne7yy%2B1EQ%2F7PaW6%2Fdbm0N88llHNx18ic5qnrv59RXv0YUK93QAQr1q9QNhhyCJ3ORLiskXFJMvtDT5KhocAz63Yu7rj%2FPIY0oTXmKdjuAkfHg%2F60QWROeQZnI4%2Bgq5M9oX4lybrUY5GWGrIBJRpnoDiChTUeOcJmE%2BqKL%2BGCJdcNEhlrSb%2BQ6T8%2BR887zoCZJPFyv1ZQBBscZ6pWKmQyqDLKBgMIoCNwcUdUrMcuuKmVot8AvlzU6qi9roq82%2F0LSFwoaNC69OAIQGdoRMVnSRY2mRUFAYoxcJlTDIOdBSfeJRD5nMSvEEu4B%2BdkS6svyKX6HWC0A%2Bi1c2Kd5c2XRy3h0mgYbo%2F4spg%2FKNEDuCzdrMFFACSacHOUgFevPMXj5rMb9CfMoLfOrSA%2BKF5b9KyigFJCgExOMgQVJYD1TWiQQEwrO%2BG5rpVFUTC3DfaPxsA1vG9pEg3dQ8jnwV9QJea2Zv0k3XKtUKsJLHIlEqwBgjmU%2FLQUfRp9mbCwCxTjhHHZIf9OA8AILRID2BkJ%2Bs1ZoxwDW1OMStBHU83G1fm5MZ0%2B4QzhUdK3f33F8MRKk50lPCUEXzoVc4K1NnTEvz%2BRw6yqMpYkzrFSFGI7jd1ooIt4LJFRHRA24o%2F98LVH4tX7NllapJZ7zS6LZn8QVeLKsVKjrQrxv43GPPvUychyc%2FVveH0F3HR77xCrNs%2FmPDWy89tOWB3js3Y1%2Bb1GPe7Jq5dxTuORZ11TZuHC3LD00fOhwI7OVWtVZygRPSeVUt0%2BD1Wq2mVGqiGX4zmNwOu8HOhccRljzgqoiArYV5DSXF1SDB1sddEk825YBijeRQiVcrvHAqyJ5Pv%2F3%2Bk0l%2F7GwKzGzQ6Wa811i%2FqXFjfb0wlJ1jP%2FDXxwMGLpdcbNHcsTuWvv7ll29fOPPJXwAQpnMOLxWGxbIaK6VuPU3ySmaOmQ0cHDPPzVmNGM9qlJ1DHgNzu6hmOGTcZXYV9f8d8HTbUOn8QrbvuW11Tz3swiw0oRPvyPQu96Sywe9%2B2mlNGRBlVqGU88fB%2BdM97E%2BVvGCx2CV7ht%2FhtgIgmqhez9mjt1FnRYR6bscerSYTkLTqvTcUDPLPA6osi%2BJOiG7ST%2F%2Fn2W%2B%2F%2B%2BTCTLMsNCxmTzdu3Ny4evOmNS9gNlr5647tA%2Frh0V%2B%2Fmfny%2B4Gv3r54%2Bi%2BfxLF0cN44IRk6hdOTDF4jpdzqtkrxGit4uRskyaUyyqIw6paZQyiRZQ632%2B%2BJsUuivNbh53Kb%2Bx%2F2JYp%2Fe%2F%2B7qFl8eecf%2FzBk65bfb7WQLstc2AZl1GMH9v3fJxx%2Fp2pttp%2F%2Bc%2FeGrS8oUksFoBYpHVxK3cVlMjkJ4UaSuj0GvhQMgKIsVkScspUqq0GtY98IAxWmOZS1p2QNgeJSXkPW3DX3mE%2BzrxreeANH3lObN6LH8KHopW83l9G3%2B3TugmsDC9PnPNkLgEKQuYQCzplcKIVu8HC4a56vQ5YpvYtY4ESnSHIzW6Vn%2BQzd72xlLbYWV0R0nXpFDJm6XKvOqvPk5pJekVxrm%2FJekTY2T7teEU9KnHUa%2Bzj%2F8pXd%2BrzbxD1uragaVBdAqDC%2BjaAUkrJv%2FOXKcGMXmJOnbhQXF%2FF3QsHJVnf87VhB3sSqoa%2Fte5X9jf3r7FdPzMgtC%2FccNOnTtwb3ZPb6ZWdOPLzh7amPD50%2F4z8%2F1T4uVE5ICkzt9ewxXYdBbfPqVx54ddvqMauTndXFnYfmBnY%2B2PS66ypEhs2ZFOn5IO08%2FZFvfn4cEPYCCD24nnuUzM5i0nFz7dF7vEkWvcMhVEQcNgOA3q0Y7xjlCatesVT2mALbtRUfM1P06cfm%2F%2BGZhgadoWD%2FjBMnyJuLfn%2Fkk%2BjrfHXnDOow4N5XP4gWAxDYDoDjxAtAwcr9tZ3PJCDa7Ga5MmImVlQ04%2F3EwqZSIqAJJVQc3NDQ1CG3TceObXI7CJWYU1Zc0qFDaSkAubaKudSxTZAEd4Q9TqPRrNP5kj22yognrLcC1z6ISzW5xSTOhATTljhb3v2det7Zv%2FeNGZnLt9g16B6h%2BaqNHZHv0yaP8TSV89QGJTzetxgMRqNOEkSdYHeYAGw2nY7KRje1xiKGfD5zeUyFyuJsRTUiQi0bdclYkzcER73JeuD5E2zOnB07dKSgy2icydpGlxLpQTZOcjW%2FXTo9NjcO5nNT4GQCoiASQHfca2tMVBjHYVRo6SRfJQGoCAfcdruDiz%2BgdwRo66xWHrfb4RPMPm5p0302p1UPDkUPuCLEt534Igi1bHVIVIgEzfAqepHh1bRDypryyOa1DVNmblnVsDhFl79rIuIAXcHhmYdfJicWLNj3cnSLcv%2Fzx9HjQmV99dDDg8e8%2BheuMZq2cnxdUBBOApeiri69x23S22xcWW02g%2FV2ytpSV72Jmrp7m4JG6NDUt95RNPXwJ%2Bq8d0XUSWM2dhSfU9EknsU6wSyDnOwzeLgds1GbYvxvmcVylSHFilGFxE4PYRT74fKaf%2FwOTZcvobX5lZ3PPffii88%2F10Cy2I%2FswyeR%2FAFNmMfeZ1f%2F8rfzH545p1j5vdyW1apU%2B6E8nOEzCrKsS3foHJkBwQhWq7siYrXprboUaHXDzMdZ0GLBqpaeO2hPAhMUr62Y%2BgRHrThpU8Niry7c%2BPBf%2F%2Bf7yzvryabGFc8%2B6xowcMRg1kUqqh9azT5h%2F1GcNr14%2BGTWl29fevfUeYVXHNNSlVexqMKW6qHJyT6bL8OfnOK1pqalecxOp8wtv80MFRHz%2F%2BY2VT5yJ1l63Ul6r3vQ0njtQyL9GzaIW15cvXnjnI8uf%2FfJ57P0SQsajObpM%2Fd9mHXp3YunT59birloRDO2a6z%2F9T38eEzFCzE9okGOpw1ywy6zXm8wEF4DsZrB4FYtg03rc2nRkaE5IY15ZEfvjt4eRQtfaahz6rrsFoaZNlk%2FfTbaJFSenDQjlrnS6XyW1twOtIplrqLzeuZaEfHYJKq%2Frj%2F5t8pdueG5kbsG25Hfpq50%2Bj%2Fe%2F%2BtjA%2FbXzF82%2BdmN88r%2FevSPL3Z6ftEjj7Yds%2BJ13jSzsaHnpjbt7h4Uvrdr2aAH%2ByzaXLm4R1W3O7p2KO71FCCkX%2FuG7BQrwKPWJlwu3jPioEKS1%2BC0OXtFLGGbVeaCkj1xU3kqIVjV5ONWqo52xVGXhtxKNuHyEMcdA5NSJuSy17ZurRiBXdlrw2vN8lyzHQeQZdU9%2F83mRWePngiAsIOvrjKhElx8fh86ZZPJ4DS4PSaz2aZzWdVV7TFqEbMS%2F4daVmW0rJcrhBY127EvX9TPNNQl6UP7Z7zztlAZLeMO6GMSvnpozV2Dj54hp7RcjgiVau%2BHAQ0ms6hHK6jhiJZl%2BNX0NFTicIYQt7ER%2B76ptuiMte%2FtYyP4oI%2F8o0cx9iPtrx6K5UpSgI%2FWinsblz4lNc3rsZipYBZ0yQ7ubnTuxCyYK7c2A1U2Z2Rlk8LhUHSq1BmbsoRPKeSfcBbp2qSdPsY%2B3jNxsk5nLHCcaHqjg0snBF7dzc6QBZ3OvHR%2FdK5QyUaz6j5l%2B4tJbXTp7trW9eRvHClACAIIOpXGzLBdFiVAUWlxQZ3RLaD1pnQ4ngmjmhUfYgteQT9m%2FJktwFVH2Cn27hFSQLxsGO6IfhU9jUdYD0AgfL1LfHw3z%2FsVMqnHK5jB7OBLO0UHfIJCVam1GRJo46KKOdrSUrLvuwFOnfnuS%2FtYTsWfl%2FStKu2xq3cXzuCVn9wf%2Bpn87mrGy5vtC03HtkAsZ6YPCZW3yJl7RUQr6npF0P2%2F5cz0oeZ%2FksHR0%2BTL6D5y31Q6eN685sPxrixetlPl5%2FYlJxu9AFbZRbmnpqlpTq09K3F7TdV%2FbpXcPJZTfEtxCddDvj7d3EK4ZLfHjedrpx794PFH58%2F49MClCxdM44aRZaRxE%2BaPjywnw0Zg4ebdS6Xj7NzZoCl4FhAvMxuZrfluorSo0RSABN%2BtlHzx8nKeJv3cDAiV7Ijaw5Oq4OwWDQ4H8UFqqsXiE2laujso0QScEzYFFXSDxYr7U7DPVNCV5Dj2pcRw4eKhDx%2BZ%2F9jjp45OnvHwVFIePIvB49LSPRvZ%2ByPvJcsjvOq5cRenZNg4zJn2qEvdpyXVQg6tAS%2FXAzu1JvkcpuoIdVglCaojEuTngS3pjfw38rSkOlOZT8nQVNOmbD9lKoU5HFg8t2TMUz2mRrqPyi95omTcisrHK%2FsMJSfuLFn%2FUKvsVinhsvqH%2FRkZSeoOPFuKdcJwrcuYCALV8343AGpSu4xtNPOWXcZcCQNO1%2FXt0PNKk%2FGszp3Ly0IVZPfVC2Lfxb3C5ZVhQDjK7fd5dVemazjNozNTahCARxo62irVJxKnwUz4SzDKgg%2B07k9ljt9sw2apra1KOJCldLR6NAOuqD89OWHNwpPHcdniPisKChY%2BtHv7My8sX%2FFdifTO%2Bxlov4LNXXfvoH7vstCH5z462QkQypUYSDzBpV4Zzk5y6s3mZI%2BdGD1OMS3dlORL6h%2FR%2B3xOcNr6RpxJIPa5uRWkRdPQzZ6Nm29lf5Lfinl2ypuduEqQxqONXTatnD0HG9jQblU05erVU2%2B99f%2FEEzUL%2B%2F1uGTs397MxS%2B7YtDz%2FxwtzsfO%2BU4psZqMkeIVtnHNByAibW0GmBSxtctLd7iwZeNSYn1gJchaVBku9il8r9co82Ja9clCxDnKwNLs0IXQ6VLV4%2BOLx8%2BeOq7t%2FUVXVgmF14%2BYuGrN42MKqeVtnzHh627QZW8mHj01aNmxh794Lhz059ZEFD%2FCHvfj7JZN%2BN2XbM1Onbd8BiscDEJT9Fw8MDrdzWGSj0WYS9URPTS6LW%2FYmGSwW2So5HBScbqsz3UmsTqvThG7JlATlWg%2B33RHrzL7lpjuGUOGj1uaovjBEKnH2HjYCJfY6dmGv72BvYGd%2BARu7j1wgZ5vZ3Ma57Ec08RslQBKsgaxUVYkkUR726QUqUDlmFjgmiYqtbgjFLYRiI5p%2FYebmnxVpXPuF1kupUABdeGdcdiE4pdy0Dj5fmkmCgNS13E07lbRqK%2Fn1%2FmCviN%2Btt%2FWK6OGGznh%2Fs4t9I39VVFmLztSUlwuwZdCiRC2l%2FKk33lG0dHD%2FqprTbw5%2FZmTxqMV9Z8yYvelw%2FcCqjf%2F%2B6K9P9H9t4KLl7R%2BcvmJR99W%2Ff6Ggbs3LPQbRnMF1WW0mD5q1NDW4IJjSKdy5prTH%2BklDl%2BfctXrZxm5rs9r27dWuY8e8oqHTRvWb0MVZPfnuKWXOMUCwWLTQ8eKH6u5TWpiTanKAI8lnpW495N90QCAhzctKeI%2FFxVnZpaXZWcU4pzgrq7Q0K6tYnFrUrl1RYUFBYfwOQGEM7xzvEdt5hxKeSwWDXmrNT0936a1esbSDZAKH1ZRuIuCwOYjJYXKk5AWcoRQByhNPBdhblgFRMxHuG90bnN2obu8KDjc3eYHM1py5DiFU2NqhNXTQOXMWz10weE77sRWvffDZq0880vHB5vXv4PB3les1tv2D02z76xP2YNvdezD3pT3s7N497JOXhMCeTTu3t%2F2dq9X3n575qfMjIXZI%2FQ7b%2Fu6brOGD0zj0rT%2BwD%2F%2BwB3P2xr8GQKCCushU8W1OdzqUhlt5pRQDokeJazP8rQwGh88D1EYJNTvSOakf3feGku9qVGpqG4xTV8ojfbXWGSt18iYUtdZJXEnDlt0%2FedPztWvHjM%2BbtnB%2BHauecmLUlAeov2bk6HHjJkhCcGFoRIcJs1jnI2OaCgRBqd8NhFraSI%2BCBGbICTupxI21YNTrBbMkWKwmUYegHGS5WbPRiyhjVuw2EAfPVEriM1kjLsUhtexzTK9lO0kQ1%2Fdk29mzvXB9yo23qh9EHfeDXhAhJWwiKKAki0J1RCSQr20nattixUJOXfM71Bv9Hhc%2BCdeuaV3LRAIbAAjXdUoX16r7wqGgF3iOLui5Zpn1JodXKu1gsnFoi9Pi0DmtjnQHAR63E4fT4bythikCCP22ZKVVoUS%2Bhp0Bqm51Fnr%2BL2UjHz5YPXLwfRNx36B%2Bl3eeXrwWxYbNVy%2F8n%2BpGrtwd7tNtSfXsNFaLo9jTdPZ89ub%2FpXB47YrkEiRpzW3r%2BoJ09UfBJLnmAoG5dBi5LJ5U83Z%2F2GIGp7L7nGwzHPNQhS3J7yWaAKe27LkytvA6c%2FfPn39g4Oqa%2Bfun195VPX3qwLunC2vmH9i%2FoGZlTdOCgdOm3l0zdZoiv%2FGASic8yQYLAMhwBiA6Q93NqCLLub9OUmpcstOLaHGCwAsItnQvZqjyadHEUVx6cz%2B0JMt%2Bsjy645vIQH91edGont0XbPj9msiaPXiIVI2%2FNHhk35IePbMLh0yeP6V6%2FZPPA4KflKlzBqAsnGkVRaCONIPUOstxn%2FMhJ%2BnrRKMzxUmcTl2yP92s88eVhKvIfTe2KDHRmKtlyd%2F2PpPpA3vsPbRzw4w1sz%2F8snbmA6Or7%2Bw%2BpUPP8mXDl2wVvqx%2BwJu%2F%2FYmVHWb32L5q0oAeXXrkBYa2LZl5056LnkfvwhP6xD0X5YAIN3pyAOvaT85494494cnCD133dnN3O1oEqNZDegiV4IHicLJoMOhs4HS6dC6%2BLeC2ulLMRKks6LWkMWHX6XqfaELKyMnTOhsGs13PNCxJNkz%2BZ%2F0Qg6GhAeewK698pKaNLwyr2caOScrsU1mzMEJygRWCYYcgIoBopDa7TidSq4jaQa%2F8RJkG7MortqVTEvILI6Z9PL1rzacn%2F%2Fov0pY1S3t%2FraYhx5WrKDBA2ED6Yh0dqvitsEECMJuofkCEQsyAJOqq2jzatUOseZR82L1nz%2B7xMwlZzIVNAOBQIge7xQhgUfrILXa7jtog%2F71CzQq3qDNoZYbSkOzBpo31obZtOw24a8BDQx4ubWIXRk7UT9S1Kckrtu%2BbHgSEvqQKP1d3kPleHwFKDSZuX2mGBGlK3sc5EGO7FpnEzw8MXLlQ8pQsvpNv4K4ld9471NP2%2FhFAoDt1kaPi26q3zgo7lONnEnBvHfMfbr3iP964r4XTTjgzJSYsWHJ0V%2F3qF3eu3%2FB8lN07fsKwYRMeGCZM3nHw8LPP7T%2Bw%2FTH%2Bb%2FYjjwCBau4hdsY9BF%2BZRr1AgMrEoJdu5R%2F4fBhELEUxdqM72c5aTGef1%2BIQVnvjPTGxCb3wfhzek01IufGW24c%2BAOIZzq8gnCYLACAbHrsGKMNHNDV6EPR%2FosTBA8ziYuCw7Tjs%2BThseQz2CwV2Ou3PYeV9xMZBVchkAMkvnuAQM34FFf4CxEZ9KD5qXmxUIBBiM2mNMBxSoY3Sba1zpQWwlbVVwCXk5EIqmmhqKj93lzEgkm2zG3tH7IEWecP9w%2B9rGZ4ohslCYnXDUm9MGF2J0ihbnJBfkf59Rs7q4vv9Y9X1ozq9%2BdbRTwPhSMnYbk2zOnXtXqqkXKHH1tZM7NOvw5ip2e0XjzjcWDEhMjB%2FyIz70jFvcU%2FeGRvmVKrdoPJ0bltbq9R1v%2FYaDgTdn4hNzIa84ltA1MLCGETS7SCOQSAGkdoSIv86xGsg3HKMrOsQE6CUQxiaKGmtgtyAkWIwIMNxKIN5QK4xAIk3MIIVnNA%2FfAdPM%2BwIOhPaRNEtuvROycm7kHm7iMHM7wabASUqOtByowkglmHm5an5G8bOiYau9y%2FSAF7vYVQ2zqR5UUeUXdxLDtMT0SMkNXqR9Lhag0cfURpetbZG%2FAvZr2jRHOZSOkc5ztkqzrMIAf55rM9N5VmbON8PqhxBs8aRmyFqoTwG4b4dxLFrV2MQyS0hsq5DTACHylWC%2FhhXgUA%2BgFip9id54Z5wod3t1glmAKcgCUk%2BrogS11erXC6%2FJJ%2BWL8jcIsuyoNfbqiJ6Kri17tNEXW55EDWhHZV7uVhLarxnM5QhVqpNqbM3bcJ9eBf%2Bbn%2F07S9xNlt4lIyKtaWSunqyntWxHSQcba5nhhhNYrmqS%2B3jurSmJdWx7jiVLwUx3sKsmLb5bgdRi4YYhP92EMegKQaR3RIiX4PgeGy65RhZ1yEmwMdxnW4b5z7CQrQJJmEDGMEX1st6ino0mXXgy0%2B0x2rMHLeOu0ewbTh8BHua7RiLw9m2MThS2DCa%2F3fbaLyfPTsaR%2BCIsWwrAOXzv877434CJ6RAQFkZnnRvmsAPExtcAA6rqFMCF0%2Ba32f2945YHTpRoDazQHnjnES1lrm3%2BFq4%2BYgL%2Fygm0lglwc7fxSoM1BZEj3qKzovZ1zsLv1479tEH9ykddGe2jnx04rGmh6Mjpu%2F9zy%2FNwbFk68SdWpPhmOUDNr2FDyl9dMMXV699l61D26bmvgOVZjp2ZRN9qTc7xVdOrI9LlUxpXLoVMfk7Nb7fDFELp2MQKbeDOAZzYhAZLSGyrkNMgA3xlRNMtEfCbHWUTvF5CmKjOFSQeO%2FfrHjvH9%2BpMOtFUbKDBB6vWeALiC8fs96sl2LdkZoVarkRrHVH8v9lCDcaJGexM%2BzzQ42NZ9GHnuYrO3mL5LvvUdvFy4zXWq%2FB6ei%2FV%2B5Y9yQAqv0oW6R0aK94ppxcMTUAXpMJUu25YkGhw5Hbrl12RaQd5LrV3S5tj%2Bvm0xpaZCBL2vZIQjWCo6Q2%2F2lnOTKUqE%2F1UYJv5ZAOKb36Lxv32p%2BOTCrfUnn27ofnjujZq094yVz2TcPf%2Fv7%2B58IPi6dX3OnPyC0L3b917LZdPTcF8w%2F0mVQxcHZN%2BcTisqHF1YMuXO0r7Nv3562c52pXkOTnPL8TACXovgLUVWlXOH6L57V56vN2t3t%2B7FP1eajFc%2FGz689fe%2BUW3xc%2FvP58whegruiOKsCNGRZehzj%2BcwyiTQwCqAIhKbtXOVDENWdkOJQLre3tedlIaF%2BWlJTe3ghi5y4pbYNtKyK%2BAqGgV6RD66BdECyZQU%2BxzqKriLgsNtBaO9R97viBxZsNL1corarUot3Jy%2F%2BqHSkOv7bLFExMz5TiAMaaVIb%2Fwg7NmPnUc0VVb4%2Ba%2F3xO8a6Hj%2F0reqcOO967tWbwurHswpy73lz03Mt7Jg1ZtfPpwzvoK7OWGon8BOY%2F%2ByddrEUqp%2Fie%2B4eMYP%2F9%2ByRWGwjyVpav5k5sXH9%2F5MVNo2XdQ6Sw4ektO5V1zXc4lW4kzreeMU%2BJFaqnVDtxVIn1ikl8vyqRVppEbn5e21993vp2z4%2F9rD7PafGcS1R7PsEQk1d7TaLX%2FgqAo9URXolZHHYXKGOgqI3xIgApTICovZYRgzDHIa79iUMMSoA4xl6IQTg0iG84RDrHQ4OYwA4CqBbHZ9d89VRlx1zyq6euqsJ5fsnUqhXwYN5jsTttkj7YRp9eETFSj91nsfLIR0%2B9LqSttY3QmLJw6%2F3b430QyITiIlAqxdlBMcj%2FlHpUk%2B6gRVqnV4kwil39%2Be%2FsK5T%2F9sUYXdkp9n3vr4YN77ll3OW%2Bpzc8v7NpC3vppe0vPUtC7Ev2FzR%2FcQmlWcInr25%2BcGHXgtrefZ6cNHMlm8b%2BtaaRbXjh4Aku21jXgbraqmOrzaLyJC1RNqNUrt0Vk%2F1HquySb%2Fe8drD6PPN2z4%2Bp45Ngi%2Bd8fu35a9%2Ff4vtcJtrzCSkx3Wh3fS2Ph2YhR9gJVO1CD4WTPAaDTSACKjsZTifKZjMqJ%2FQQ8tX1yhOfG8nPjUN6iccXE96Pp8ejezqVFHXsFCrqot3J8iefZP%2Fq3KW8Y1m4nPwYfwOUY3tEGCUsjvv7PvxEa3orl8vQ6iZn76u47uxt1M%2Bb2Kjnf3P2ZWVxBdGcfXw7QXSpTl4Si1SnX6L2X2yaUjNt%2BDw0Xd40o6Z25NzmV4rxTJ9pvAljfYjl95r63Iuxboyetf0XbEBQGjL6zuy7cMOvu8aRRcWffLRjTHRO6DzXjNjutSq5e2KSf0PVDI8mmZuf107VNOfWz4851OeBFs%2B5ZLXnE%2FyxtZarrfrYDqw6wr2xGWIjpKsAWu%2BI2t%2BVyXex0jOkFJfNZpfsrQMOsKeYPHqqT%2BNdjB7q5euvRZPnb3oYUWsXUUomXo%2FW9JUVbx7J4HugOKR748Sz333%2Fyd8fMwk63mSElTs38OYRzF9LmyID2Efsvwpjn83sV86KdcDaFQ1NOXQi58u3ce%2FZMxo1nF6Nmgn7Y%2FTmxejV%2BpuEyuv9TaJArLfsb%2BIw6gkU6UvxFLggHe4Ot0uSrE5nKpjtqZKY4bc6eDxpBaOR51hGGj%2BVwg8UUAc4b5zk4det2ia1fWVJO2TlvZF9aafq7NnSl1EYN4y9zJ7BYRgeN5RaonxdR8%2BRfs09fmXXEH%2Becs89LqzDiTgeF3ljSZmwlZ1m55QTGn6hNi32qy1yujAU0iAXCmBQuG26zkI8nqx8t7tVlk4oDOW1Mbbh0RHvSCKixdiunWg32pIyxcyKCIieFj7YoVjVRAeseV9R9a0q5rdyvYktTFkxnyvWs%2FNzup6pu8B%2BROnrBae6djz2%2BInL0aAOq4Y%2Fe8%2BQDVf9G154buPm5xvWCb3mrjKRjN%2B7vp4xEwtQh3q8Y%2Ba0KbPYz19MYDO5tw1mkLIPz3985rOPP%2F10x9NP7wBEE68Q7pH8YFF6wGWwWXmN0KJs3CSfKkwsE%2FIgzx1QzhIE0DR3nLfB89CcmUMWLuFF2u%2BWPJGTu3C%2Bt3TBoiIAgpP5iG2lhdp%2BkEMyxSpMejflw753u9KSrHUfcfpp29njxj46a8zY3z3YPRTq3rmsqJu4b9TM2lGjps8c3qFLlw78AkQdn%2Bk78TN1N5wPn%2BSzg2gC%2FnKrZc73En4mKLYb3o4vKU6BwvQ0olRTQpJEXXkDB%2FTOLAxZRpmn39tucP%2FKjIL21tHmqcL5rLZZnbvMquO3Tl1n1aldEci5Ff%2FFEyCCePMvngykw%2BK%2FeMIh5f8VUtYgffQ49lB7%2BR0HUNTpQenhP6WBBkscHEs5y%2BQZ1WF29yx63DMUTVyicNM3RdTpRZly061Rq55Od5RisXIk%2FbGKDPGARzmLjqmfcouq%2Fe4LkcAKAEQZizSpY1khOWwS0KwXbHbQUZP2M1%2Bx3pUgbyrhA%2FvjeGG9tcNjs9M6maNnb2B4FnXTeR1Tw7TF6DZldL0ZRcHuMIs2WRn9LW10DWe%2Fei9JQJ4ELUkjOsxJ7m6%2BQYbnXvbTY2Ow6D6FHh%2F7lTTBZZSVLOtqB8g4iCCHzeZK%2BdC1Y38ymWJ3vb5SBnteXszG7cAfyXB6EYzgPBD%2FURrIP3Wr6u%2BOqQ9OmDF94qRp5JtZj%2F9u9sx5C%2Ficym8TiHvgB8gGOwAEwU4c%2FM4nELJA1RaoJelK5ZPTbBAIlYikk0WuCInpvPM3e2CJ%2B16ASv2UpGqjUBAIkMRRWhRNSeqtK6QAyGYBkJXxUyYgEkE7ZYLxAQJIVjbPWkkXx4%2BZIJRzr1gnnuT0TQ2Xp3rTPZ5kI5Hl5NZ2wZDslYJtjN4kb%2F%2BILklMTUvtHyFp1rT0tPw0qqdJaUlpzsxM6BvJlJ0W3iDhg5ZN3bwwdMsfKruRW2ZQbuRlt9evdcorVpPyolGwuJT%2FdUDsCHUKOz4AWfRHQvA065Z1snHLxtW7%2FoddaNewgZANO4LY%2Bn9OPN%2BrQSxmD80rC7ed1%2FRm9%2FpuaEacl3tH9TwUsfXIpYPVzprl6o4iBXdYT0AUtDAtYc3y%2BEuJtrjkUwGEVlI650ylKvE%2B5ABA%2FHNTwuf9lc%2BBgItUcf0%2FAgZwQedwuks0ypTyaYjSqY%2BiqLe60l3E5aIWOZ1mxPuV70toergeGwR4g0v8V2eKi0otVJZJ05xV7GHcsHQO%2B0ESk9LSjDup6913x%2FKzVKdeX9THFGzb1v5TDDfpQ45bECoJ9%2B43cBcf0nCXXr%2FF8%2F43notvxJ6rVEnqc1TWG05X9cp%2BAAQRKWiHl2Knck80KgqljCAC4Aq1QvJpPHP6XaxCImp1FiUv6pwAUXstt2Ud9NrbHGJCAsQx9ufEKktsFtJBzroOMYF9EK%2FV%2BGK1mv8PflNJUQAAAAABAAAAARmahXJJOF8PPPUACQgAAAAAAMk1MYsAAAAAyehMTPua%2FdUJoghiAAAACQACAAAAAAAAeAFjYGRg4Oj9u4KBgXPN71n%2FqjkXAUVQwU0Ap6sHhAB4AW2SA6wYQRRF786%2B2d3atm3b9ldQ27atsG6D2mFt2zaC2ra2d%2FYbSU7u6C3OG7mIowAgGQFlKIBldiXM1CVQQRZiurMEffRtDLVOYqbqhBBSS%2Fohgnt9rG%2BooxYiTOXDMvUBGbnWixwgPUgnUoLMJCOj5n1IP3Oe1ImajzZpD0YOtxzG6rSALoOzOiUm6ps4K8NJPs6vc%2F4cZ1UBv4u85FoRnHWr4azjkRqYKFej8hP3eqCfDER61uyT44DbBzlkBTwZD8h8%2FsMabOD3ZmFWkAiUs5f4f2SFNZfv6iTPscW%2BjOHynEzEcLULuaQbivCdW5SDNcrx50uFYLzFHYotZl1umvNM1tgNWX%2BV%2F3gdebi3ThTgVEMWKYci4kHZhxBie3TYx3rHbGr%2BPdo7x4dIHTKe5DFn%2BO%2Fj%2BW2VnE3ooW6isf0LIUENvZs1gf%2FLHojJwdpplCP5gn%2F5gi26FoYa19ZVFOJ6Sxuoz%2Fq2Ti20IKVJdnqvYJwnhfPH%2F2f6YHoQF30aZaK9J8T026RxH5fA%2FWPW%2F8IW4zkpnIfoFLifGB86v0ffm5nbyRs5iaHR3hNBD0HSfTzoPugRM%2BhdN0x052KoHLBS0tdgpidAiEesDsgWYO73RWQz2LWIwjqnMe%2FuYISQtlbyf2NlT9Q9PoBcBnrO6I5ELoMeyHkNnIXGdv809H%2FDXNOTeAEc0jWMJFcQxvFnto%2F5LjEvHrdbmh2Kji9aPL4839TcKPNAa6mlZUyOmZk6lzbPJ3bo56%2F%2FCz%2BVaqqrat5rY8x7xnzxl3nvo%2B27jFnz8c%2FmI9Nmh2XBdMsilrBitsnD9rI8aiN5DI%2FjSftC9mIf9pMfIB4kHiI%2BhWfQY5aPAYYYYYwpcyfpMMX0aZzBWZzDeVygchGXcBlX8ApexWt4HW%2FgLbzNbnfwLt7DJ%2Fp0TX4%2BUucji1hCnY%2FU%2BcijVB7D46jzkb3Yh%2F3kB4gHiYeIT%2BEZ9JjlY4AhRhhjytxJOkwxfRpncBbncB4XqFzEJVzGFbyCV%2FEaXscbeAtvs9sdvIv3cjmftWavuWs2mg6byt3ooIsFOyx77Kos2kiWsIK%2FUVPDOjawiQmO4CgdxnAcJzClz2PVbNKsy2ZzvoncjQ66qE2kNpHaRJawgr9RU8M6NrCJCY6gNpFjOI4TmNIn36TNfGSH5RrssKtyN%2B59b410iF0sUFO0l2UJtY%2F8jU9rWMcGNjHBEUypf0z8mm7vZLvZaC%2FLzdhmV2XBvpBF25IlLJOvEFfRI%2BNjgCFGGGNK5Rs6Z7Ij%2F45yNzro4m9Ywzo2sIkJjuBj2ZnvLDdjGxntLLWzLGGZfIW4ih4ZHwMMMcIYUyq1s8xkl97bH0y3JkZyM36j%2F%2B58rvTQxwBDjDDGNzyVyX35Ccjd6KCLv2EN69jAJiY4go%2Flfr05F%2BUa7CCzGx10sYA9tiWLxCWs2BfyN%2BIa1rGBTUxwBEfpMIbjOIEpfdjHvGaTd9LJb0duRp2S1O1I3Y4sYZl8hbiKHhkfAwwxwhhTKt%2FQOZPfmY3%2F%2FSs3Y5tNpTpL9ZQeGR8DDDHCGN%2FwbCbdfHO5GbW51OZSm8sSlslXiKvokfExwBAjjDGlUpvLTBY0K5KbiDcT672SbXZY6k7lbnTQxQI1h%2B1FeZTKY3gcT2KvTWUf9pMZIB4kHiI%2BxcQzxGfpfA7P4wW8yG4eT%2FkYYIgRxvgb9TWsYwObmOAITlI%2Fxf7TOIOzOIfzuEDlIi7hMq7gFbyK1%2FA63sBbeJtvdwfv4j28zyaP8QmVL%2FimL%2FENJ5PJHt3RqtyMbbYlPfQxwBAjjPEN9ZksqkMqN6PuV7bZy7LDtuRudNDFwzx1FI%2FhcTzJp73Yh%2F3kB4gHiYeIT%2BEZ9JjlY4AhRhjjb1TWsI4NbGKCIzjJlCmcxhmcxTmcxwVcxCVcxhW8glfxGl7HG3gLbzPxDt7Fe%2FgY%2F%2Begvq0YCAEoCNa1n%2BKVyTUl3Q0uIhoe%2B3DnRfV7nXGOc5zjHOc4xznOcY5znOMc5zjHOc5xjnOc4xznOMc5znGOc5zjHOc4xznOcY5znOMc5zjHOc5xjnOc4xznOMc5znGOc5zjHOc4xznOcY5znOM8XZouTZemS1OAKcAUYAowBZgCTAHm3x31O7p3vNf5c1iXeBkEAQDFcbsJX0IqFBwK7tyEgkPC3R0K7hrXzsIhePPK%2F7c77jPM1yxSPua0WmuDzNcuNmuLtmq7sbyfsUu7De%2Fxu9fvvvDNfN3ioN9j5pq0ximd1hmd1TmlX7iky7qiq7qmG3pgXYd6pMd6oqd6pud6oZd6pdd6p%2Ff6oI%2F6pC%2FKSxvf9F0%2F1LFl1naRcwwzrAu7AHNarbW6oEu6rCu6qmu6ob9Y7xu%2BkbfHH1ZopCk25RVrhXKn4LCO6KiOGfvpd%2BR3is15xXmVWKGRptgaysQKpUwc1hEdVcpEysTI7xTbKHMcKzTSFDtCmVihkab4z0FdI0QQBAEUbRz6XLh3Lc7VcI%2FWN54IuxXFS97oH58%2BMBoclE1usbHHW77wlW985wcHHHLEMSecsUuPXMNRqfzib3pcllj5xd%2B0lSVW5nNIL3nF6389h%2BY5NG3Thja0oQ1taEMb2tCGNrQn%2BQwjrcwxM93gJre4Y89mvsdb3vGeD3zkE5%2F5wle%2B8Z0fHHDIEceccMaOX67wNz3747gObCQAQhCKdjlRzBVD5be7rwAmfOMQsUvPLj279OzSYBks49Ibl97In%2FHCuNDGO%2BNOW6qlWqqlWqqlWqqlWqqYUkwpphTzifnEfII92IM92IM92IM92IM92IM92I%2FD4%2FA4PA6Pw%2BPwODwOj8M%2Ff7kaaDXQyt7K3mqglcCVwNVAq4FWA60GWglZCVkJWQlZCVkJWQlZDbQyqhpoNdAPh3NAwCAAwwDM%2B7b2sg8kCjIO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO47AO67AO67AO67AO67AO67AO67AO67AO67AO67AO67AO63AO53AO53AO53AO53AO53AO53AO53AO53AO53AO53AO5xCHOMQhDnGIQxziEIc4xCEOcYhDHOIQhzjEIQ5xiEMd6lCHOtShDnWoQx3qUIc61KEOdahDHepQhzrUoQ6%2Fh%2BP6RpIjiKEoyOPvCARUoK9LctP5ZqXTop7q%2F6H%2F0H%2B4P9yfPz82bdm2Y9ee%2FT355bS3%2FdivDW9reFtDb4beDL0ZejP0ZujN0JuhN0Nvht4MvRl6M%2FRm6M3w1of3PVnJSlaykpWsZCUrWclKVrKSlaxkJStZySpWsYpVrGIVq1jFKlaxilWsYhWrWMUqVrGa1axmNatZzWpWs5rVrGY1q1nNalazmtWsYQ1rWMMa1rCGNaxhDWtYwxrWsIY1rGENa1nLWtaylrWsZS1rWcta1rKWtaxlLWtZyzrWsY51rGMd61jHOtaxjnWsYx3rWMc61rEeTf1o6kdTP%2F84rpMqCKAYhmH8Cfy2JjuLCPiYPDH1Y%2BrH1I%2BpH1M%2Fpn5M%2FZh6FEZhFEZhFEZhFEZhFEZhFFZhFVZhFVZhFVZhFVZhFVbhFE7hFE7hFE7hFE7hFE7hFCKgCChPHQFlc7I52ZxsTgQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQti5bl63L1mXrsnXZuggoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCyt5GQBFQBPTlwD7OEIaBKAxSOrmJVZa2TsJcwJ6r0%2F%2B9sBOGnTDshOF%2BDndyXG7k7vfh9%2Bn35fft978Thp2wKuqqqKtarmq58cYbb7zzzjvvfPDBBx988sknn3zxxRdfPHnyVPip8FPhp8JPhZ8KP78czLdxBDAMAMFc%2FbdAk4AERoMS5CpQOW82uWyPHexkJzvZyU52spOd7GQnu9jFLnaxi13sYhe72MVudrOb3exmN7vZzW52s8EGG2ywwQYbbLDBBnvZy172spe97GUve9nLJptssskmm2yyySabbLHFFltsscUWW2yxxX6%2B7P%2BrH%2Fqtf6%2B2Z3u2Z3u2Z3u2Z3u2Z3s%2BO66jKoYBGASA%2FiUFeLO2tqfgvhIgVkOshvj%2F8f%2FjF8VqiL8dqyG%2Bd4klllhiiSWWWGKJJY444ogjjjjiiCOO%2BPua0gPv7paRAHgBLcEDFOsGAADAurFtJw%2Fbt23btm3btm3btm3btq27UCik%2F1sq1CH0I9wl%2FDTSONInsjxyKcpGc0VrRNtGx0dXRF%2FFpFiV2KbYl3j%2B%2BJz4vkTaxKjEgcSXpJzMm6yb3ALkAnoCV0ARLAcOBjdCAJQJqgWNhJZDT2EbbgTPhz8h%2BZFJyDbkFSqgVdGh6Br0BhbFFCwHVhNrj43DXuH58V74WcIkahHvyDRkLXIGeY18SxWl%2BlMHaIVuSc%2Bh3zHpmNbMJOYuy7DF2E7sFvYMJ3Clf%2B3DHecNvjm%2Fm38g1BYmioxYS5wqbhZ3S0Wl2tJkab50U04pl5CHy9vlmwqlZFJaK4uVnco55YlaUK2kNla7qEPV6epi9aMW01jN0zJohbRZ2mptj3ZWu6e91wE9vT5LX63v0c%2Fq9%2FUPRiZjprHS2GmcNG4ar8yIOcycZC4yN5mHzMvmE%2FOrhVq6NcCaYC2wNlgHrAvWQ%2Ft%2Fe6w9115r77XP2fecrE4xp65zwM3lNnZnuBfdZ17E071sXj6vrTfP2%2BHd8F74lJ%2FeL%2BHv86%2F6D%2F23Qfogf1A%2BqB10CAYGk4LFwdaf2C%2BJfQAAAAABAAAA3QCKABYAVgAFAAIAEAAvAFwAAAEOAPgAAwABeAFljgNuBEAUhr%2FajBr3AHVY27btds0L7MH3Wysz897PZIAO7mihqbWLJoahiJvpl%2BWxc4HRIm6tyrQxwkMRtzNIooj7uSDDMRE%2BCdk859Ud50z%2BTZKAPMaqyjsm%2BHDGzI37GlqiNTu%2Ftj7E00x5rrBBXDWMWdUJdMrtUveHhCfCHJOeNB4m9CK%2Bd91PWZgY37oBfov%2FiTvjKgfsss4mR5w7x5kxPZUFNtEoQ3gBbMEDjJYBAADQ9%2F3nu2zbtm3b5p9t17JdQ7Zt21zmvGXXvJrZe0LA37Cw%2F3lDEBISIVKUaDFixYmXIJHEkkgqmeRSSCmV1NJIK530Msgok8yyyCqb7HLIKZfc8sgrn%2FwKKKiwIooqprgSSiqltDLKKqe8CiqqpLIqqqqmuhpqqqW2Ouqqp74GGmqksSaaaqa5FlpqpbU22mqnvQ466qSzLrrqprs9NpthprNWeWeWReZba6ctQYR5QaTplvvhp4VWm%2BOyt75bZ5fffvljk71uum6fHnpaopfbervhlvfCHnngof36%2BGappx57oq%2BPPpurv34GGGSgwTYYYpihhhthlJFGG%2BODscYbZ4JJJjphoykmm2qaT7445ZkDDnrujRcOOeyY46444qirZtvtnPPOBFG%2BBtFBTBAbxAXxQYJC7rvjrnv%2FxpJXmpPDXpqXaWDg6MKZX5ZaVJycX5TK4lpalA8SdnMyMITSRjxp%2BaVFxaUFqUWZ%2BUVQQWMobcKUlgYAHQ14sAAAeAFNSzVaxFAQfhP9tprgntWkeR2PGvd1GRwqaiyhxd1bTpGXbm%2FBPdAbrFaMzy%2BT75H4YoxiYFN0UaWoDWhP2IGtZtNuNJMW0fS8E3XHLHJEiga66lFTq0cNtR5dXhLRpSbXJTpJB5U00XSrgOqEGqjqwvxA9GsekiJBw2KIekUPdQCSJZAQ86hE8QMVxDoqhgKMQDDaZ6csYH9Msxic9YIOVXgLK2XO01WzXkrLSGFTwp10yq05WdyQxp1ktLG5FgK8rF8%2FP7PpkbQcLa%2FJ2Mh6Wu42D2sk7GXT657H%2BY7nH%2FNW%2BNzz%2Bf9ov%2F07DXE7QQYAAA%3D%3D%29%20format%28%22woff%22%29%7D%40font%2Dface%7Bfont%2Dfamily%3A%27Open%20Sans%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A700%3Bsrc%3Alocal%28%27Open%20Sans%20Bold%27%29%2Clocal%28OpenSans%2DBold%29%2Curl%28data%3Aapplication%2Ffont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAFIkABIAAAAAjFQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABlAAAABYAAAAWABAA3UdQT1MAAAGsAAAADAAAAAwAFQAKR1NVQgAAAbgAAABZAAAAdN3O3ptPUy8yAAACFAAAAGAAAABgonWhGGNtYXAAAAJ0AAAAmAAAAMyvDbOdY3Z0IAAAAwwAAABdAAAAqhMtGpRmcGdtAAADbAAABKQAAAfgu3OkdWdhc3AAAAgQAAAADAAAAAwACAAbZ2x5ZgAACBwAADiOAABYHAyUF61oZWFkAABArAAAADYAAAA29%2BHHDmhoZWEAAEDkAAAAHwAAACQOKQeIaG10eAAAQQQAAAICAAADbOuUTaVrZXJuAABDCAAAChcAAB6Qo%2Buk42xvY2EAAE0gAAABugAAAbyyH8b%2FbWF4cAAATtwAAAAgAAAAIAJoAh9uYW1lAABO%2FAAAALcAAAFcGJAzWHBvc3QAAE%2B0AAABhgAAAiiYDmoRcHJlcAAAUTwAAADnAAAA%2BMgJ%2FGsAAQAAAAwAAAAAAAAAAgABAAAA3AABAAAAAQAAAAoACgAKAAB4AR3HNcJBAQDA8d%2BrLzDatEXOrqDd4S2ayUX1beTyDwEyyrqCbXrY%2BxPD8ylAsF0tUn%2F4nlj89Z9A7%2BtETl5RXdNNZGDm%2BvXYXWjgLDRzEhoLBAYv0%2F0NHAAAAAADBQ8CvAAFAAgFmgUzAAABHwWaBTMAAAPRAGYB%2FAgCAgsIBgMFBAICBOAAAu9AACBbAAAAKAAAAAAxQVNDACAAIP%2F9Bh%2F%2BFACECI0CWCAAAZ8AAAAABF4FtgAAACAAA3gBY2BgYGRgBmIGBh4GFoYDQFqHQYGBBcjzYPBkqGM4zXCe4T%2BjIWMw0zGmW0x3FEQUpBTkFJQU1BSsFFwUShTWKAn9%2Fw%2FUpQBU7cWwgOEMwwWg6iCoamEFCQUZsGpLhOr%2Fjxn6%2Fz%2F6f5CB9%2F%2Fe%2Fz3%2Fc%2F7%2B%2Bvv877MHGx6sfbDmwcoHyx5MedD9IOGByr39QHeRAABARzfieAFjE2EQZ2Bg3QYkS1m3sZ5lQAEscUDxagaG%2F29APAT5TwRIgnSJ%2Fpny%2F%2FW%2F%2Fv8P%2Fu0Bigj9C2MgC3BAqKcM3xgZGLUZLjNsYmQCsoGY4S3DfYZNDAyMIQAKyCHTAAAAeAGNVEd320YQ3oUaqwO66gUpi6wpN9K9V4QEYCquKnxvoTRA7VE5%2BZLemEvKyvkvA%2BtC%2BeRj6m9Iv0VH5%2BrMLEiml1XhzPdNn3n0rj6%2FEKn2%2FNzszO1bN29cv%2FbcdOtqGPjNxrPelcuXLl44f%2B7smdOnjh09crhe279vqrpXPuM%2BPbmzYj%2B2rVws5HMT42OjIxZnNQE8DmCkKiphIgOZtOo1EUx2%2FHotkGEMIhGAH6NTstUykExAxAKmEqSGMFl6aLn6J0svs%2FSGltwWF9lFSiEFfO1L0eMLMwrlT30ZCdgy8g2S0cMoZVRcFz1MVVStCCB8raOD2Md4abHQlM2VQr3G0kIRxSJKsF%2FeSfn%2By9wI1v7gfGqxXBmDUKdBsgy3Z1TgO64b1WvTsE36hmJNExLGmzBhQoo1Kp2ti7T2QN%2Ft2WwxPlRalsvJCwpGEvTVI4HWH0HlEByQPhx468dJ7HwFatIP4BBFvTY7zHPtt5Qcxqq2FPohw3bk1s9%2FRJI%2BMl61HzISwWoCn1UuPSfEWWsdShHqWCe9R91FKWyp01JJ3wlw3Oy2Ao74%2FXUHwrsR2HGHn4%2F6rYez12DHzPMKrGooOgki%2BHtFumcdtzK0uf1PNMOxwDhN2HVpDOs9jy2iAt0ZlemCLTr3mHfkUARWTMyDAbOrTUx3wAzdY%2BniaOaUhtHq9LIMcOLrCXQXQSSv0GKkDdt%2BcVypt1fEuSORsRUwgrZrAsamYJy8fu%2BAd0Mu2iYFhexjy9FIVLaLcxLDUJxABnH%2F97XOJAYQOOjWoewQ5hV4Pgpe0t9YkB49gh5JjAtb880y4Yi8AztlY7hdKitYm1PGpe8GO5vA4qW%2BFxwJfMosAk2X9n9X2cVVfnA36pzHNHJGbbITj75NTwpn4wQ7ySKfAu9u4kVOBVotr8LTsbMMIl4VynHBizBEJNVKBAfMNA9867j0InNX8%2BranLw2s6DOmqIHBIbDfQR%2FCiOVk4XBY4VcNSeU5YxEaGgjIEIUZOMi%2FoeJag4mEB3PUOweCaG4wwbWWAYcEMGKn9mR%2FsegY3R6zdYg2jipGKfZctzINQ%2FvxkJa9BOjR44W0OpTKAskcnjLTcKyuU%2FSVIWSKzKSHQHebYW9mfGYjfSHYfbT3%2Bv877XhsIwGzEUaleEwITyE2u%2F0q0Yfqq0%2F0dMDWuicvDanKbjsB2RY%2BTQwOnfvbMUhiNPFyDCRwhZhdjE69Ty6FjoOoeX0spZz6qKxxu%2Bed523KNd2do1fm2%2FUa6nFGqnkH8%2BkHv94bkFt2oyJj%2BfVPYtbzbgRpXuRU5uCMc%2BgFqEIGkWQQpFmUckZe2fTY6xr2FEDGH2px5nBcgOMs6WelWF2lmiKEiFjITOaMd7AehSxXIZ1DWZeymhkXmHMy3l5r2SVLSflBN1D5D5nLM%2FZRomXuZOi16yBe7yb5j0ns%2BiihRdlFbd%2FS91eUBslhm7mPyZq0MNzmezgspUUgVimQ3kn6ug48mntu3E1%2BMuBy8u4JnkZCxkvQUGuNKAoG4RfIfxKho8TPoEnyndzdO%2Fi7m8Dpwt4XrnSBvH45462t2hTEX4Bafun%2Bq8jIzK%2FAAEAAgAIAAr%2F%2FwAPeAF8egd8lFXW9zn3PmX6PNMnPZNJMRRDMkzmDYgZMRRDCEmMMUPJIgZEepHlRYyIiNhRUdYuS4ksy9reLDYsdOmLLC%2FLy7L2CgKrrCJkLt%2B9T2YyYPl%2BD8804J5zT%2Fn%2FzznPBQKbACSTvAEoqJAdtUhUJpQYjBJVAUrKSkIOJ1ZUOEKOUGkfV8ARiPB7E72m87WJZF58ibzhXPVE6QsAAnMufI4H9XXsUBh1UpOJSJLmQNWqNsasLkKhsrKnA%2FT1HCF9PQzSAPYtD5V5PW4lmFeIK86EcCRbObLp2lGjGxpH4%2Bf0wLkjjU3NDSNGxYSMxbSdDkzomhE1SypQalCISvniob1lDuTL7injC1O%2BMr%2FxmeJtxeRt%2FiJviJ8mmrjFOr0BJCZ3QAbkQFu0ypCZ45HcRqNJQkiT%2FLKsOO02s2Ryudze7CxVUnw%2Bv9%2BtmKTcgEEymzPRlgN2e5rHaeOXyeeiisnJFagMOSsqSkr45kL8Tr450SfM5%2Fy1V66pGvBwTV1BcYcDEX67QjQkbo8cigTplyVI2OHh%2F6zdXHO4%2BiR6SjoxMPzo8O21h2tPx7O2lmylNV%2FtY5Nwubj3fXUA%2F8BuFveBr74CoNB84V6pSnFCLhRCL7g7OijfR7Oy3FalR49AcXYRFBnsQUcgkAYO6H15j6wiAGu%2BI%2BAo6pleFDAWKJZMX%2BaImNunWOpiskIVH796ewAqEzvV9gqX9nQ4Qd8S%2F1V%2FScSM%2FrmsTP9FfNUNIvzuVlRPMFxY5PB6fY6iwsJw3%2FJIOOTx%2BlT%2BWzaR%2BxYWecrR7fWFFanqi%2F33nnn9%2Bv%2BMvXr7mk933%2Fv5Gy3PrN6yZjg7WFV1D5s2oGoh7nx%2Bk2vvTrkeDT0HKlieXvvakkfecj%2F5uKnhm6iNHRk27a6bevTL%2BclH3ulVkX3cBTJUXjip%2FCDvBiO4wQ95PB6qo%2Flen0%2BWTRpofo8nLa04mB3UgpeX5PbMLEzzKz4%2FtapOlXt5a1llpXhN7FF7r8zJ37o%2FiN15Q2XhvsE8RdajOqwFyrwFGETXr%2F0F9u9dNnZsWW9869X1azow9qe%2Fkpc7D52mPRf%2F%2FHcJFrR1npvf9sWX336EO7%2F9x7lqeUMn6frt8y%2B%2F%2FZD%2FJjzecOGEAnxvWdzjpTAzWtHbGjRhlhdMXqvLVZSWnl5kpSoChLJVtcwXSPea8vNLSrT0dEnTegyPaZIUqIlJLnSKhAV%2FpfBuhb9EbE53bYVIM%2F3S45hfiZ%2B7th8IFPHN5QuXcscms1vF8kiAZ2qBsEEEFQX7FnJDeNy%2B8nIF2JLZ7%2F77DPtk3rJhVV9vefPD%2B57CzCF98cr82%2Bs631s4%2FvbxrKPf1XjT0Iqrh%2F%2BuafTMxR%2B9e%2B%2BmxqZnxzzx5l8embstxo7PeX0Ju3DjoqYJA7C611hyd3hAtH%2FzpD5jAAVm4DM6Zjj5C5WIAIu9DuxCIB0kuvEBAKGBbSTz%2BL%2B3Qm7UZjaZqCSBqtrN%2BVQgmAMTua3joeaMhBTicTt9wULS8PSj5x58eNk9Z5c9RUrRiPte3MTKzvyHRd5Yh9vFygP4yq3JlfmyfHG%2Bso1LyP%2F5yqgRNVjuDPclRSGvk7Q%2B%2FejZJY89%2FOA5sTT7ifVb%2Bzru%2FOEM7tv0EisFhErSJGUpbrBBOOo3ms0ypVZUVc0umUyqilarYrDxpN1aJrKQuykJwvwz%2FyPMUOCTXSqlRa6CiEzJy8U4J8DWf%2FjpM%2FeeOMZeLMKpxYqbPTyx088Oz8MKtnMuFqefm4gzAKEZPpUqpG1g5qivGRSjkSKAxWo2giJRKOFCysqS4vjNhQXCAa4Bxz1HEI%2ByNlx0FBextqOk9SjezW49yhaIHbGzuBtOggKe1wgFWVapDCXbdSNt5ghfoNCgMxLA3X1v%2B%2BdV%2Beg%2FvIsdR9MJYWVcS5rISqDg%2BCuVQQLkSiTc7QoHPANIGq49dw6wi7GwgmvujZoUrrSRNsaMLqjsmfjnkYu4aU6SlJZ28xECNyqt0mMrM2pBricBidueiNS5iDcRA0ir4h%2By4yQgGJP%2FDwLVF05IQ%2BW9XLoPLou6LYoTFPCnGT0jYkaV2kfEaBok8y%2B1kkYCeeDQnIEyQI2nUrlDE3kkDT3PzsfZhXMoxZHGw2OmTRl7w%2BSpLeQoW8gexttwNi7C6ewO9hD7%2FusTaELr8eOAMA%2BA1nJtTNAj6jJKAAZEs8WgqihJRgX9wJHOkYoXkf8iwR2RiKKqRRiitWw3lYdnr30cDzNae%2F8Tw%2F1L3sS5gFALINXpKDQgmp1pQxW86M3O8aoqMTlNtTGnSjATM2tjXEgCYfS3hKyuCkFHkzBeScI6WKhFVxLuD%2BEQLt4TkOo6CU5f1drrhvrrVly%2FdspDayfe%2B8EtQx7fuJG0HcbZLyyc1r%2B5qXbojtE1xa0dt4x%2F5c31r9hA6MYtP5DrVgijoiV5Po6KKs3MBOCVStFlgez8bG57v8%2Fvq4tZ%2FGilfr8pX7VqJm1EzJQGeg3j5%2FxX8ruWMbrG4oduFyXxMEFyQlkpkMeJTvhKbCMY1j%2Fo2ykPlEmSr335KxvYPvbZydev29P65KNrX58%2Bc92zfxv6%2BKil76PnU1Sl6fe%2Bl694%2F%2FzIweMjUO1ZPnH2TU3fxqa09%2Bl%2F6OHXAQgEAaSZuhddMDiaZ1epkRAzpTKAxyVzrnGh7JLreGi7qF1VqO5WvoGQ0DwF584uo3cpz4sCBzc9T9SAQPKgoqI082X2QfxhshCzXmZ5Jmoo6MvOYAk7gCWH6cudN5%2B98oSroZZNBoRWbuEw1ygDmqI9OZ36aJrbbTPYqIFmZrldRpdFA27ONADF4%2FHXxjyKYhkRU9LgYsIJ6e%2BpgHAkGUjkgUhLSBg2N9w3IMwpylMaKScT%2Fn6efcC%2BPLN8xActmMGOhu%2B4bH6EpsV%2FyAgOoO0n9%2F%2BHnR2B5h7hr455LAPJ1%2Bwc%2B1i1AYGhXOs6eQf4IR%2BuigYUp8WSlweZTnAWFNpz6mJ2u4d60kbEPGnUwENEvUTbVJbqTCjIAQJlPo8IXEUNdQEJcCAhMvd%2Fgvy8Q3E6TmsbErv%2B%2BZ2tRuuN%2F7f1X%2BzsNyv%2FvYhoN066sbVlcRuZiq%2FiWvuP7rEb%2F7LuhyPfsFPLMffdxfMnz7%2B1fu5qEc0RPdM6QIHLo14FgCDKRFYNMiWU1MaoAsLfupYpQwobhpDby4OfkoJ4iZQWPyy9jNLm8wLSdEtUyzvBB3lwOVwbLXYqnl6U%2Bo3%2BQo%2FHnp1ttBtL%2BihOZyBQXGwBS0Z9zJIGwfoYXGwTYYlLnVeWdKFwoCSqAj0%2FLqoW8qk7kShFiku3kK9cfCPVHyDedt%2FqpeyLL06zk4uXtU1DyfXfE2fPmrng0Ccjbhg%2Bflxtq7zz3ZUzXhrU%2FO6sjqN73mrbXD2iY%2FKzm89vbBp7Y%2F3VcwaOI3vqq674XdnlYysH1Ym8GajvcgekQQFURnOzZJfFEgyCCwqLtNy6mKZRrzd9RMyrUkMdR%2BNfdbfu7DIBzCIaw0J5kS16edcXuNOdBXwbyU1J1ewxtvTOqxtHP%2F3%2BJIOl3xOz3v0nmr9Y%2Bf2d8VNjp4xrbbm7jQ5mdazJdtYzasufW2r%2B83%2FH0fEE%2B3DTXbdNum1%2BHfd4stOSZuvMURh1OXnyAPjtnsaYXeumMPAnaOwXTOb4NVYT72PqU%2BxG7xcf6mPNQAQX6%2FIUcHKmcllV1UUlBRXFZdIaYyZNUjgzJ6Rpm8u6mKrApzM0vUgYbrTrbF2SFHbS18Xa5GhSmF5P7JYqZODSiqKajIK%2FVYNEqQIEZRigFxShVFwJURhGD6JU0ZlDP443kvW7ccNSPH2abWFfCns140peoYDeNeZHHSqlRgkMcp00ViJSV30QKhkjagSue7JMQH4304%2FFkrTgKC9Tjh69VLueUScBrhFPNVAUJJTKEur6Ce0u1dCFuorNZH28UayJb2IaDjjNtKWsWmioXPicrpB365FYFc3LTU9PA%2BB2dlqdhUV2QCMFCAazGmNBl900ImaXkg7mVCR4KJVkyfpRJFR5F86oRckaXOFoe0m%2F7W6YevPVY5uWvzf1w3P7vm99YGyIHU4139VjH6ob1tLvqqpxR9u2r5m2onVI9RVXsHUX9eMTLkxQdnCc6AuVEIv2VCsq3G5XOGzt77rMZaWBtEDvNOgN0au8hkhEMg3QTPzqkVUq5feAklS7rOucMleiPU7ivc6kQtuiYCqrfNTdlVF8fxLxCKgtj3iUQC44%2BjrzOa06UfyDSESH3x2j106vnpWmTXnhlT1o%2BUfT%2Fqt9NdGau79%2FZhf73%2BexCP2T2Pz%2FZefZXez6I%2FgIyv%2FEkRs7Yf3IFpM1FG27n5x%2B%2BNQ9Q%2FotPPTGQSQBH%2FPd%2F9Yf%2Fvjjne1sx152gh0p6f3eKHwYW3%2FEZZ93sA627uCCpcfMzwj7AIC8WN4IKljh6miAWKkBQZHNZgqip6CSZLOSmpjVSs0yBZocIpTouZRiZWGortKL8gsDiITjI5Uik%2BLHJ7FXiYTziRJnywoMgWdwNFstbzxXRcbikdvy72CqiPvXAaQznI%2Ft4Idczsm9VLdbktKzzeY83vfZ7QGDlqalDY9ZNLRSTbODPb0mZneCvyYG9BLcSxY9KQVDSTe5ArmSp7voCQYwWfE4HPqnwOu4AyOYNn%2FC%2FfPZh2fjx7C84%2FaZ8xev2nXHraxT3vDKpkVrHaacdQ%2B%2B%2FxGdXTuy8Zr4NrZo3PgNgDCXI%2FUBnh9eKI36VZeLN%2BNWnxscUBNzSKpskmtiJleyNBOvSfVEKuQRD2%2B0Iw4l2BUdoTI%2BZiikBS%2B9h9OfOtrxL7aJvdiOkQOHDrc2tEs72U%2FHmW846xyGi3DSZ3j9azd1FvUDImwoz%2BE2NIBd1OtGAIdVkjTZUhOTqWTlLbMzaamUcEELnGVzAbVA0BHKleew8ew2Ng534wR8gL3Dxq5ZjO%2FxGuQP7A55A7ubrcHDnUMBdY8RLs0Mg6L5BgnAqphMiBbFWBOzKNxLAnII3zehaKqJofOXXkp5iCsitPAkbol0bqDV8RN4ijmIm4tl7zK2BLqkUsalGqFvNN1AqVkBQDQJoSl5QlZS0MVSLhaCX7P9dHD8OHKMEwKWxLu8KBdxL6ZDTbQo3e8nNquVEFemy2DIsGlmjQdbOr9BNkt%2Br%2BzlsmTu1FB3wd0z5VlnstgW8BBwKLpv9YJL5RlPdMKNOALkU1L14E93sr%2ByVfg43vTxgZtW%2FGXnd1vevKGVHafhuOnyAlyMU3AcPjDybB377rOT591Y2mUHeYJu%2FUg004jIzW%2BQJFm2GGhNrMaABoNsUijK3QmbMnfKFN2XPIHtjr%2FNdmE5uRrDZG78Xj5t2EIGAOCFiawBT%2BozgRw%2BbSAGXiPLwM0MRsr79e4NCw4Rxa5IJL6kRnJurq0bOKEZy79hDV4k7gVL5JHn1l4AdgYS%2BtfxVS0wMJpjIcRkNiOAzUBl2cq%2FUrNZoXwP3VtwpgBXF1eWAOXEQAdVfSMRDKBcx1awhYvEZm7FB7CZETKxJf4D39CN6%2FHf8XkJ6VIlly6LPUkqBVCQArccJKJUl6GXoPq6r3PD1MsbzldfSPxvRcyR3dAvmukGo9nI1bbxUPHKisdJjEQxq9QGilBcN36X0mUp6hA6Y9DpEYujXuXykscVRBpkK4wudhzbcaSC07GdfUgtRrZEms9Wzok3cw1WSi3nqklH6R3oPr8kYcedOm6WR9NMYETFagVwUFlRVM1MVW5RVLtHv11adI%2FEnAKwL1KEcM%2FJO9nv43fpSiwh81U7%2BqQGdrQtXseFv4FZvycdQPQ8%2BVKfDHgE0jgAfBZF8RpdNTGjRO01Mer6daQROSBexQQy16Hxpkj%2Bkj3BXubXE3gz1vNr%2FPlDb76Bs9nSNzaSY%2BxxdivejVP5tZCj0mP%2FOYvf4smfoAvtpHU62rkEFkhGowdsNrvdbQXBV3ZNM9TENGr%2FTSzoRn%2FZLXHoEyAo4ckJSx%2Bau%2BBBspEdYacX8yA6iCb0UGXmlKkTd504Fz8rb%2FgchAXYat0CdkjjEZynUFmSCDVIJg9AhmYypVOVEwBXRFK5UWSV22N7Ev4uHU92T9OQe%2BLX7PPaKziWzWZnfL9pJMZW1bO5OPS3LSUP1S3lg9poocvnk0ySppm8njQw8cTzu4wWMA6PAZgtFm40C%2FWaRcikzJbSWfPzuXKqQ0sxKLdfgl3BF0A82brsgaXLW7gB12EPzH7oTqxuZWvZKtp73M0Tm%2BPz4vvlDUeOLdxZwVwPk1KRVS2cQX0ce4s4n%2BRlpKcHICC7LeCGy4rdAbAELNlGX3ZNzCdRYyq%2BuhvwVHHWrRpn%2BIvGGoVFl%2FMhDadWMcJP9LZen9cr%2Bdin7JuOx%2FZeN2FqnzFL7767DtWvZu2f2TrnyermlsJrn977BC7f%2Flkz5g4srx3e8%2Borqypveeqmzf8qL%2F13n8KGgcUDKqrHbRP6FwNIYiqrimdLCgBFNBhVKlHOuxSdv3y2lARgcoLtYrOlOn53IGEMEF7k%2BdXC13JCQdThQHSbDQaX08hRhsdSYuuXVBAOtyLx4BHI6%2B6CYLnlEXbyLfYFex%2FD9zz7BAf0ztqVZ%2B7EwHn6YufCPz33%2FDraBqjXfyHBI2K%2BRonRKAOiVZYkC3BDJ%2Bq9VNpUJOaj%2BsXtVx6h57CC2dmLTMMKdPlKFXO0a4DY%2BdTwvZeN%2FqJLhrqRy8gSsx%2BT0e52yQh%2Bv2ynlszMrKwci9mcnemSzdRvt6NJiOSi%2BEtCbgo1UyM3WkiKOMKJUtMlGvCIi78nPihD2fPbzWFJ6WPdxqngfix9q9Sr9HQdwoJDth5mUy%2Fnm1hKoRixV%2FmpUJxwVT85trLi1EAa6twb%2BaS%2B9uuhNBsStmnSbVMVzTXLnPpUo6oYTYpJ0C2VLGYDkWXJqFCUkhDL9evG%2BooUZ3VpjZj8Izex59h6fnXg56wfNmF%2FDGMtC5Pi%2BGHyHdka%2F47Y4j27dJCYyF2B7wZVlZEQEERvNFFF4QqiSgVDdslOjEH5Z65AarLLowIDZAGWchEZbA%2FLwDo6mozsXBTfQUqoXleVJiZ0RugfzTJISFUVEExmlYuSRP1I0IAGUcZdOgxNpl1qFqqPbALSzPPvkbfjTVJ6vIrs30m%2FRXi%2F0ykkLWUbyWw9T7KjVgXRIIFRJlTBfN2EuvH0BNZX4iUpmc0y8bOPPmIblXMHz60Xa1gA6MDkVFt%2FZIKYnGpfnBa6sUmAHY9%2FmJhqI4S4fJ%2BQL55xoKIY%2BVYNoOZTiaaCvQtCfCFHMMy1CH34IX7GMmfKjQd%2FUoR8AzFIA%2BR3QIHeUTdBWVYkSTznFd6SVJko0DW%2BxLKLeyTRZYcwiGjADQ%2FjqVO8uP6KGOiGzmqyKN4maq1OtpHWXhja9SRIRonoRhEaJZ5K0NrOFyl%2F%2FvMAAGKNdIQ%2BqATAwK1gBjVKRVTIdwCUpB%2FrioP0XWLww7EvHPD6PGRL5ZkqbKpcLx3ptW2gZ%2Fz7GYIdmjju9pfm6E8Zq6OFTovBQvLy%2FP78LIMhaEkbFrNYZLfbPjjm5jWdnDM4JnvBk0Az%2Fy%2BZVYSeXlcUJWdMvMcN9%2B1u8h0omny9N6YT%2BhuGr1r0xzd%2BOr%2F5xbv%2FOn7T8Y9PswO%2FX3znY5MWPHHDsNfXvfono1K6rn7f%2BK3vx32E27h55MJbxwOBFVznDsUNTsjh7BvIojRg1Mw2n89szrWA2WPUFFDSh8QUL7iGxEC7mCz83SHi7H5mUeZ0aISzRVANCgTlw1AfH9d2D8WobftHX%2B7YNsMT%2BhpLLZbJM2ZOJJNvaZk%2BQ5rNdrPv2XH2t6XzFTdbPuiJ9jP3rwh0PPOXNWvWAMLoCyfoMWk2eDi6esRYymclxCubh8RkDexcM%2B%2BlZZJuOTk32SdwmnJoYkjgUBQyIf4DZqJx81Mjh9525cmTzcuHVf%2FBTQZgFvauOZFVwBH49ZIydr4kH4iQK81M2CcaDRi9Gi%2BobTZhqFy7xwIOIyi6fTTdPt5ft4%2BoT4Q%2BecShOXlPGioU%2FBLkji3iOnVPiAnZ9vHnOw9ON%2Fmw7Jv%2B1omT5kyVp7dNmDnLjWVoRx7zq9vG4YSfTjyy5vt7ViWNk9BynD61y%2BDMEKROSUpzOLKcJlOm3%2BOkzuoYFVUUVMesmuoZHFNTel5aloiry3bI3RbgrbNeR4XKwOMJ6AVAxMMtOP2GaQZcT2aVs%2B%2FY3zDt7LdoiJfID985vmNc3Qb61PyZM%2Bd3NmAPdGAahth3Jx%2B789Eel5%2B4rCjB7nSOkgMeuCKa7SZElSn1%2BqwAPhndyHVz283akJgZqJ4bgp8v7QVDiRwWFgxH9KfOeieocBWpiZ1l%2B9eu3bj%2Fufm1o2uv6ocGOq9zCZ23rKHh3ZdLPsoafsVgoKAwtzSV26sYyiEKd0SrzFlZAwZIfRwOUqzmSkGUpIHpPXr4fJFg8Kp0K1jRqlj7qv2GxYy5Eke5wr7FpDpWXFxYWDksVqi5e1fH3BkXz%2Bn4pxIOWz79gRHv0LneqJs2FQ76ewKfPao%2BpSsqEvmsj%2BykQFfCF6ZeRcGFyUQK8v26El%2F4WGzqS33OfxjpXbL2ndc3sTfYvm9%2BvP3WksHVg5tvOnmsZKGTFc2buvrNabOfa5w5%2Fdrrmura10otT%2FceNqZjJ5Xzew187smt%2F1i1bPw9We5Roeh1xYVrZ732vkM6L1UOHVlb2WcEHT5q0qRRuwBhBYC0lmeDB8LRdATw2Y0Wg8Fo9Nolp1MaEnNqJkCjR6D%2FJfU5336yUOPaKqJJEuCQeFQirWX7O%2B6YxfZjqapqE%2F61bQ958LsXt8S%2F40CwpeDekav%2Fvh0ILAPAD7lsA1jEZFcyGsFksprtJg9Rr4kR6DJ%2FZWoO7uobKtNnnyJUlrW3X3ttO14phMgLHn98yIjzPqkFgFxoY259XSt4oSTqd%2FL0JgaDT%2FNcE9PAaBctOk%2FsjOTEKYEwCRGJxwB6tajQpMDBcxoHXzN8CJbum6GLZe60066mRmnd%2BeJXN6mThXRIWPMH%2FUn%2BNdGgxLmTUKrIsmYzWa0Gg8lkN4P41WCzUcXkofbu2oTf3cjSZdpuokXRuGOyi1dx22KswGZWhYd5AffOIrF9jYxdh40sI74Et93MVivueDXr0gYPcG0ouF4DRIkAevQioLvExgPivyvuhO7qQJ5BQRgeLXS7XPrsKDMzI6PAajSaTPkuq9WRKzu46XwOzWzPRJNH7%2BG7krl7%2BOC8ePqbjJDCRIiEfKFykdziVfBd8q%2Bke9n%2B%2BuvnTGL7vy529F437Xwso%2FdL097ZwvbVXz9jOnlw3rz12%2BLfSS1Lh1%2B%2FurZpy%2BF4kfhtxYuQjGCut1tMFxHAq6vrscoOoatQFU0Xx29SyV%2FXLRG8TS0ierkyof%2BZtWWXEPbn7boC9dce3JHE5yf0pzhpostXLJYMcLnSvcYhMa9mp0Nidu8vu%2FxUrvPeVQMOCCQs6MzrxGVT5986ecr8W6dQmX3ELvzxh7swGyl%2FI6Xt6%2F70Qnv7mhfYKbbnQTS8jE7s8wA7B4LrOep1cC1ckMMn1Hl%2BRVFNlKpZmqrlcuQEq9U9hBOEwa5mQEaKzBKmSBWoSQVlTvPepDFCnPndRKFJtuemosq2GZrG9p%2FtaZv8wfaPbt58TGf7vePdSx%2Fwsv5K9SPtbB87%2FT%2Fs7H10mU722JDgM67pTN1euaIq8dIsyh%2BTpOUZ%2Bfg6PcNnz%2FZanE5V4I0FhsQsv8m6iSfIBUmS5S2dL8HBXl8ook%2BLIkFBaLdMkafPPzxZ2v7R5zsmPXeFIQMJ22e1lq48uri9oOMZ9uLa9lNYiho3Z9%2B6xqU%2FbcBDAybXN3ZFFJ3LddVEh0mcejw5BCxZZVnUS7wGFxqlMrTMRy%2BJIqpdWewrCD%2B6iu3%2Fsre97yvSbCP7xLR8SXyH1LKxZTYkqp%2F1XIZ4dpmjpLktAEU5bnchWNw5lhxTli9rcMynUdPgGPX%2BvJ2%2F2BgiqPTHK2HB5clePsGgXCkPt082oetPnbx1%2FbDrDtW395oycuG8yJd%2F3%2FXu6MZHa5Zcv2zRrf2wZn1HILfzsvKx%2Bb0rCstHz73%2B8VXN%2F8y%2F%2FJriK%2FqHR%2F%2B30LeE6xuRa8AjToRYDHa7y2UyEIfB4fWZnHbn4JjVYrfL3HVyQt3QpktOVnRhgnBcxKOXvoLpIyFPwCO6cjK3bsas9tdeeHRt8xasYDuu%2BTD4aeiNN0jGwgknTn4e%2F%2FyqK4UOT%2FGc4zM%2BcENZ1E8cDrfby3t%2Fj9NoJ7JNtumyPcmJ1sVDgItr7tQYgH%2BgrxdrpR2zt72PpSLjsXRp7XUHt5Mj8dki4Ynt%2FEpI9JkPcrlm6BV1m0GWiYgIK0G0GNEuC5llKWndDU1X%2Fx0SbTfiOtaElf%2FINyryZYexkjVJLfFF86aMXUzaumS4AZRtXEaWOMsoSyaOIVng81ETVTMyMjNzVEXJ9plMVLbbMxQ7yDqidR3RdPz2LIDSIO1WQ8wBsin%2FpGskRZpuUfew19lm7LMwJ1eRcrT7sG6R5NCsqBgvN92NPdk7uARPdt4vtTDH4m9q1lxH%2FPGvvE03jMkcer4XnuKKI5gApOW6bWqi%2BYoMaKSUSAQlGWWzQVWtfIZmMSoUAA1mj4T2S2cBqaROkYZeq3KlhdkClOu%2FmD2BI48cxZHsMWxja46fYO2kPwmyZ7A1fiy%2BDRewhcJLzK17ycs1KTC73ZrXK0koahm%2FJgob%2FpNT8no0p9XJMTHDAFyVskQJkKKvhBlTUzxHyokifvTqgNsSaw9mmBRz7n4cwoqu%2BvcfR9RErqqfl%2Bfkfr2%2FYcZNo8ic866XXnR8Z72xNZI450HXce2MIn%2BoKqkIYDYgmvQhAm8c7YR%2FMwyOoefSIULSSMJGySlCWEwR6LrOB4nC0uhAZiCmDrLp6%2B3xekDI4T38Id7D54ipCHUbcnIcfn%2BuNTMzIFGXy8qjKd9qSbTzYosp2hbbF7bnuBrm%2BREWRw08Coc18VTQ4xFQ6%2BEJhDmL2m6%2Fc%2FOZG4cpn31T3XpmM9quH32qucGAVz7Z9jEdXMUObcyzBF8xskNVg%2BknbU8BIO5gJWSlYgMK7tcIpZJMAaCyhONDYlbqCOKOo0cV29lA1ylOauB7yBN7yOHlOmgGQ75bkoI52TabW3Z7qCzl%2F3%2F2IIuHzuFynuSi2BZnlftyiBSnzxyCyzwcrImh4e0Xbhz2%2B9mfKtWtL7xTP39x26LeM2aFPyFVQ7CnuWmyw5K3EXsOrqIfh2dPY5tNjY2nGm7QTxGQIqmCtoEHIlG%2FAg4zmKnd7qNeu82mSJSaHQ5QoCRU1lYi9ElBdqqp5pwa1sv%2FRAMmELwQB0baym968pqFwxaOC99ePv7pgf89chFZcXX5l1NzcyPRii%2Bnphf8lzhBwpbiQanl0rP6Dg26zurbad4v56mukCugE0Wi7Vh7JsTasSV5lIO0dJbKBcljHAhLOdJqfN6cwad7QYchPV3OyCA%2Bn4mYMrPSXCNiBtuIGMiGNH4pGWmKygXqpwH4S8%2BePzvOII575nOCTh4R15lS69q26gmSEBt94OCr7YtF6z7vlm8b7mpdcN%2BrL%2FfHcyhjZk77c8arjmflv%2FBn9kZObzbAuFFEB4A0ST%2Bd2BztZXeaidFqTfd6iV%2FzO51ado7Fn%2BavjxnT0sDFqcleG3P6QR7xs%2BNNXUfUIJTSVqjbjT%2BpBpRfbpXXFSKawsFwiBuQbNyyZcyzs2sbcS679w9k3%2Fmvbhr%2B6qufy7sbvojGrt10dOm6WtZ5ttes1keObtl5BAjMBCYFpHXcnkW8R87TLC6j7EsnBrDZ8jIhM%2FOyYp9LSycWo2xQPZ4ctYBHz%2FYyHc11H2qb9S%2BiA4oURXyC3SM%2B0WGqPrVIoJJaFCmMXFRdbixfuGzBqEk3j1qwfGE43Pbogt%2BNn93Y9siC8v1T6%2BqnzxxRO50cnPC7BcsWhCMLly6MTZs8uu2RtlBo%2FiNtYyYOnz6ttm7aDBHpCoDEp%2BPghZnR%2F7I53U6Plce2UaYyMYkJqxeRED%2FHBp%2FidDkbYkCRuuwmm93WEFPtdgt6FMsl5xX9mtiW3kNfypcpEhAfkgPKkCfoEXdAGF7cGCBD0YAVbOGWH374gX38448%2FvsOW4BViZBv3vHrfq8eO8RdyHMhFiKNCMGoniiKGmUaJSlTVsUcEbCpFdAhyJGBIAFHnAbag8wAAgUm89lnw%2F0o5D7g2jvTvPzOzu9KCJNSFaAKEBMYHAokSuQpiY04OODjYsWxCcjbkNaluuPdyiXuaS0jHpPfeE0N68fVO%2FObSe%2B8uy39mVlqEzr76oeyi%2BbG7U3bK83yfkUZBGZwCMyKlaRaXRRTLC6E4JyfkAld4DKmpsbkrK0ttpSafxzc15nHqTVNjepQycUvmivi5NiuyMYtA0qyNo3NOVr9OFfZJmt75WUW7VMhOWtE4fsubj9zRP33SzuaW6LxFB3rWTJj4xSuvXdHyYsOAb%2Fbpj257c%2BOS5s4tvmrim7appHXPputbn8kPlVdURssit194%2FxklXdGr7p3261Hh7uKKUGH0uu2nzi8Pxya1V5qmAUYu4UfygiRwVi0%2FYrQaWIvIdGcQ4pBB7dzU9snCdpLZJF%2FSOXJNjdRPPa0uMhVd2TKurqk5Mq5FXFPXEB0%2F7ucNExvqGieOb6wDIIw7lSbR99oBPqhmvm9ikm0mm7%2Fc7yzPc%2BbV1IrpYEmnX1mlhbZglpActKMVbEo36zBrHWyifBGnSASrw44ZvIhr6bwgFCxiuH4R45HIul%2Bc91p4c3j55tf%2FfvilPddGFx5b8zJqf5X9DCi9v%2Fm10vvcrj6U09uHsg%2F0Ke%2F29invHSBfX7VJ%2BTAv99nwkcNvfNd82xjlI%2F4%2FSu%2BrLyi3%2FObXaPaLTJb0b6xlBfCX%2BDHKMLqgAOoieZk65HLlmXXU56PLK%2FRmGI2e9HQbys4GEGweShSEA0F1mAtak3BQbR1SPGxVVo3K6irbp3YM1ToJV3pGr452r7n58XnrWi6tr79h3tY9yqTy%2FKbYvMvxsYvGRLrPu%2FBCWegef0l%2BcNcmpeGP%2FqIz6oqkNPas06Fd6BEEkMAIbZHRaUaDTKd2RMKCgERqGDdkGNkrBpBGCE4XBIMoIpOMsR4lWko4kLBqJI%2BK5j8Faab66Q897w8yR4ALIR3yqYfpaPGg8hFyDSo70RG06A12%2FoayC49HL1E%2Fs9K3DL2QNXzKGb8fhTCZCCJkRZgzSkcQkogAAdYJoQTf6LXQWZQQHjx2hLz1I7pgEIaGErEHWAIzAAhaezTEW%2BS5kUqBYFHUgcViJEbamxB9uT%2FROLFE8QLBIegdsp5%2BnaSN8spKbara53ErgY4FlFnoIwadmhP5X7VaYcvuz5QHAu8h%2FcO3K%2Bs89eFTJuceP%2Bdft9utd0xUFqDpyj3kqh3K1%2BH6uhrlzX%2FZctHQEckuSNLhJG8MjPTGCNLRbwWDZH%2BFr%2F6Jm7D5hAmyIDMiQ0ZGTrbVkMkqRQ3FUq17vL06HSowmDyctbXd2N5201ln3XjW5a88G6uvnz2nLjJHWMg%2B7W0766bZL10emd02YWJ7G%2BNFAYSwiCGdcx%2BZGTqdRB35BoSomd9sMRrSZYQkAYOKeoYC8S5MM5WnxriwyfZwnAs9I2%2Fh3kG0RVlFY12UNylYiiCAo%2FgZTriVRKwOA5LAgiyuTNnkwQ4Hyucer4lJXb96j39EPHUF%2BJnjK%2F5%2BbriipGXeqiuf3np9%2B4YudA6O3jbYEQv6S2bt37Cle8be7rMBwVgcxo%2BIr4APJkRy7enY7QbIl%2FLTzVK65C8mdrvDIed4PSa5IIE5pbQ8dlABTRX6S6xu1DgHrezj3QjuuaN9%2Fn1P7N541ards5oXtJ3REgwFWsOdE%2Fb9v3W9wlu7a432i6at2N7wzOzzq6tvrAr76ePuDExYn%2BqLI0JEDyCnCdwXdyjui3uFjR%2FVNMjMIUk6ao6YiGZWHZ0i%2FDX75U5H1aEgAOK2LmrkhkxmMUmXJFnOsjrBQR%2FdrXNlOGl7yiCq4Y2Z%2BzTTkbYwT8qwtv73xo0CxS6XhZtDZ7WvpVaAD0ZnlC6fNWF%2Bvigy%2Byj67YoVdz%2FPrAF7Z8wo%2F9mM65SDUhQQLFSOCbslO2RAIOJINwsiAoTMFr0emUykKWYSWc8XiHtk4gMlbe5qgAb7UsMIa0IFwu6bbumd0PqX1%2F72IW5Tjkmn%2F3QfCVmPHEWCwiKd8Cj0e7KGEUURmUU6Ebk1RiCQCHSypSLhfEr%2F%2B2Eqe2hQsaNeALBCVcRlNjI7Fh1Y7Gaz0W60ySYW9pXNXt9QQI0EXB1%2F3PjAIiZPQYprQ3RWgnr3Xd88KXuOu%2FGW5v7s6Kwj6xc5btOZJpzh7hmf2cktXDiKGxPRSYI8MjopD%2BWfMDoJeePRSb4QbvyciNkVzReismdxFD2z4Oyi0vHr6MwOwnTUfEt8ic9KPBFjIvYqgzhkDw%2FxTGK3kxc9YlKPgt969IarH3%2FwwP4nFG9dY%2BPEiY2NdULbnf0v3Hr7wAu3dHR2dnTMm5cy6s2OlKZTy49OL2AW1Ib01FNiGh70BD7YIdHEB79%2FOej1B9UBL%2B6NL0aoFonqQehRdg4ip%2FLxIFqsSMPn2KuMXYbaUNsyJZw1fMrGrnIA6Qpa2n5Y%2BTuAYvg1fgUA6eAP5Nrjj4L8IMFW%2BuJUVye0D51Au5h8T7W6B7CZSZlyNlXeJ75ClUs8XEnM8as%2BEb9qmXpVwDBeWUH%2BLLTzNU5DpKiQug4YJk0jh0pMoyDbnI1lQp0JPk9rzJdhoRy8xZvKwaN4g9Cm5HHsnddbrUub3bCVWHLF4ldiF1wYPjM27aFzzp37w3lvHP3F7rOrUcnw6jY6d1dT86yJ4eiY0sOnTO6%2F%2FYLru%2Bj0cyyamXhHhoZU2lu3GPuhiOexHiQ0HfQPYqfoh9HVJ1B0w2%2F%2FheIgzFQV2SMV52iKgYTCOlIxU1N0cUXaQwR7uWRYkxbXSNDfPYvXhpfEa4MpdD7OPtrg4sg4yUbMNmIRLCjNZEJsvgbgEETRbiYUvqb4syENGQkj%2FJFkkzkxTAQrMmlscsKiQLvUAAeUNb8G7yQ062PCs0QKkEYsI9rR6nzH9imOvcoLeLew9%2FghbKIUT%2BhoLlq5jiPvcYqZDnXNrC6WKXZGjNP8%2BVlGYAXOBfY556p5%2BZaodTT0KC89ZE%2BUXqqiG9pSFPdShT1JcXDoO1XhHnmNmZqia%2BgnXgMYFag1wGbucZ7cAJnQGCmivUCW3ep0GlBamtthAIqVWwGovcRJi9eKLYy8TgmP0%2BBgddahWmkscQqUlpiPo4MhBwPPA1tV5FzFz7cKwm9%2Bd%2BCzzzahATIdd1Du%2FG5GoOPWnR9%2BofQoyl1qHsRXeDuriLez36eUA%2BdUeTlUxtt7N1fgvJMpulHDv1AchOdUhXek4hxNMZBQZI1UzNQUXVzB2vvoeGkj2IAMglnogXTIjaRLBGTZYORGZXcgqMUn8260FqnLBlSM7lL%2BuB%2BVocqr6Rhetkf5tfL7vfj3qKxH%2BSMavZf%2B%2BVuaSiUAhD7DLeIHkgA2yIZCCEdyXJ4cuz0tB9LAW%2BTMK3Ab3QxXJQWpdOWImbyK8arGGFaJqpEG2V2IO%2FyqihEFV1Wm94Xts3tnv8iA1RevaL1x1sDRP56CjrR2UWL1%2FZBiOG0%2BWqzyvXWXXHDpANrEwNWGNfM3DSi%2FfHYJ%2Frbsp%2B8e6j5uKR4aUmlIXgO18Vocrdaz1uOkKrqR6V8oDkKPqsgfqZipKbq4gr0RJcl9kqDwq4yNv3kb1KtYuCSJSmbrqZpIDiOjjbIoSpJTMDbFZEdTTJAFWdIRyZowKGrdjOZBjePIDroW0tZGwh2UUz1yNcPaH1CQ4fikjst3rbt0NcHv%2FagMUij5c2Vc18rz5%2FNZJM3JfMkD1dAaGU3tegXFxQDlWSZTbXkgUGPKKtBBcbEui2SWhkqnxEIQcFgyozFLwnGq7ZUx0g03TH%2FaTYLqcnOkuuX8iaFL8zhXsVAn4a3SSDRSWl1%2FRVfoo3fmXTau%2BubIbfnTo2vnNjQ0TVjXsWQjbb4%2BhL9FfuGvkV%2BcNqai1JldVTJn7srmu%2B7JLfy6KLhqVGhcaeOylsh5lbWnl49r6TrnKPVMv%2FLO%2FazH5ASbVEBr5VQ%2BUtQfAPb2jbbEazY1vfvCE6Xna%2BkHfxhi6RUj001a%2BkAasPTikemClt4lAX%2B3T%2BGCYcUDmqJ%2FlKrwqwogTCEpQjeUQBBOgS2RydU1JDM%2FP2g3GoNBuabG7%2FGMKZPlsC%2FfW50fjVVXsyDp7OxQNJZtNo6aSoF3p%2BS0NFDHPHgbYiBJgQZGv%2FERLZmZ0t5q6wkJKnqMhzBz8MufZG0ZXsZRzHYYrWJk1TDShwoZfiVWbn2rce4L19%2F03NdfPRtr2nHzvKc%2Femdx%2Fd3LDyM4XkaJq%2Bcfm%2FbY8bqFq1fv6FyOvX%2B1oHvwefbOru7Y0zcz5q91cn3Tq52bInXKZx9RCGvWp8UlOEsQzpxD6T%2F05acLVrNap952xtZhP0xWx0%2B0iY%2BfnCrjtT1FbQ2389oqStRWanr34n%2BeflDP00eNTBe09C6rWpeVidoeugYAvcGv8LTaXynTgF0DGRLXuBwA%2Fy5J0T00eaRi6JdU8UmS4qDyuqqwJBTvUMXlkqApuriC9Vdu9UkSBIfk5fPVpZGx4MYuV46oJ%2BkEY0tOTnr6qEKLpcQNmZh%2BSJ2ImdjppB56CnnSKS02%2BRpiJifBU2MEnYC8izsQ2clwI9I%2B1YYLf3Gtkw8SVgdtm4XAwyNdtX46hDAvXCL2GCmnN3ZetuitjjuuvUr5%2F0PfKX9DwuFDDfpT17zfga0rz19x8fIFq84TXdXF99Wdtr1n%2Fm5lz4fKh8pLyPrJR8gyV%2Bhdtuva4%2FMv2Lj1ih27%2Blg74MwMf2tPV9%2FaEPAZUHI97ucl3KK2k5t4PReeOJ319ZfAyRW8pRiS%2BgUt3aSlD6jpeSPTBS29y6C2pIDWK8yCw0JYeIl7wbKhNGJ1pqWZBQEIyYUcNwVKAXHz0vPBYdBQiw8WTxJRTWOGj2%2BK1tf%2FPFpXNzVaf2ojO%2BKOwcEvTpva%2FPOG6c1EmNrUMqWhpRkIfcaHKAN0OZ81eEfOGnzxWQOjb0jBFAZx%2FC%2BzhmCNsJ9hQWsvOLVn0n5GBm1eUrt%2FzK5jR21o%2FOiJKy9AhwzKa%2F6alefjSoYJlXV2dVyL7IwUqpp%2BQes1ytH2RjTouvnWlnFKMOP2oSGVpeD1c2ZST4ByefGmpvMavgVOruA1XMnTC0emC1p6V0B9A0u1np977PkV5qi9zXh%2BBQ8XJOgmziYWsLhqD%2B1vHQZzli2Dxi8VWsCcbXDIRM6dEpOdxEnL%2BCQocxLLTDtnDWdWTT4Wyh0nAU7ot8Herhf%2F%2FuZLf5xv0ulUfvGjOONEDrXMYEgzK%2BCtE9qVsXpQVixvbB7mnLQ8CVqeut5Qc%2F0zNdcJKk9oH6byMk5M5VGJGk2mO108BE7wQmekxuJwGFF%2Bvs6WAeDL0umKLHa6drMgI7HQX0YznaWSNBddcwhCLotpRQ5tBcd%2BThplmiAy%2BBMMx2M6XcOLuERnVGvx%2B3WnH9vn31Wm9Cv3oTPQhPGbvaRDW9Q9dstdd%2FXVrfR7t8jpaBvqQuejTSZZXeCR145%2B8%2B1PDivZbnPyN%2BhT3SphMXhgNARhQWRMoMKEHQ6%2FX19RkWu3V%2BXr9aEchzvgiMYCATCbfxaNmc3YJNDOmfLEZnDT4VwQvFNiQupwHj45Cp00iOdT56kG4bniI7dDo6KTeT2fSk%2BLtyhf7dl5pPfHLSgb4QUvT7nsi2%2BR%2BbhTt2fL%2BU90tDx99FwN5Pu4fbWMBnC3%2FZprdiD9%2FciByqY1XcvYaf26naXlbOCeHGf7BhavuJhFHD0h%2FFXwSAVgZP0Zi5ozAMh6jE0ZWF4vsh39sg5pyx2NKqQzEZ2XGU%2BdFNAgrdc1Ne977elTUafn6kbhr2ed0XJ29tMLqh5sYBENqFX4M4lKD8Q9ehmS1eqmkUWyR8ay7CDxvRTYHVKNZ7qk8YhEdy1YcOklCy%2B67Pqa0tKaiorSGvGlCzavv%2BiCDZu7ykKhsrKqKkDwa%2BHPgkEygQuqIm4KNEUEQjLdBhvobPTrYvM6MzavFyCQ9fpZmoNENQebXw6qkISXvbF5mNVHiE23yjF6xRM27knfvXTUtKZoET%2B%2FfAk7F%2Buray7vKyjOr%2BKHAr4bGHqI3IN7%2BG5S%2BAS7SU0nbeih999Xlbp%2FqtQllG7Sj%2Fp4jIw7kiaIOqTTySBou5KZB5gLq7jGWhvCumKTs7N6sN5L%2Bp1zkG2h8t3HkHQFCVwRmQhIknSCRC8wvD8WUrffQHtNwbWDkz3iI84XlPdRySFI3luLeVIwEfnuWhIEtNuffHstwOzeZBl%2F%2BgzwRczUIGsiggSSZNFlkHRtI0Z%2BoT8E%2BbOoWSnwxY%2FoUzVPdILhSZyRP8ezp2Vz%2BE4SGJn%2FndpNDXwrMFMaMYjsRi%2BqN9Luoz60qB5QH885cqO31JNM8Ua1DBJFgVlJkOt5SRihMGIaeQcIpN7Ap91gROGgt0eWkkvbi2wunXrfKIyCdLA9wszuRplAgHssUq3uc6%2FavnXvvku37cGf9hzou3r%2FLbcAELbTizQXhfm75mXsYF6m6kEvys4gbKuXAofMQuS5LUhtbJnmP9AJy8gdX3yp56m7v%2BAps89kZzPacGPqPmctKUf%2BVkA7vpHbtCsijrgDV9RLQAg9pa0JI9VZmsxW0W%2FVN5vqlE12xKZeO24nRzp2bfoHPRPEf7z2SBs4vvHEBm8ApCxj83oe25YVSSeAEcaCFtqW8B8j5EX48mN%2F%2FIKMjge2AeK7BW0S%2B6EYdkQaJaL3%2BXI8RW5ntmywWIrSafaLika5cnP12dklBpdLzpRy83Knx0heRt66PJxOMvMy82yFPiiEabFCndlkMzXHbNp2YiNNoxZenyxzKUghO%2FCtQOhvro%2FH5DgKdA420DrVfS4oWELdb%2F7qWvq7BuL7XXhXXu9CVyrtGKN5yj0hZNq9ecn93ynPj9q6VMBLtvjQpG%2Be6ps7ebnwys5f3ucNFDzwTXgIxqK0Tx5wFVff9zVyT%2F%2FQ4%2BXsWgfzjp%2B0n6MTYDbdHRriMbs%2FSh7wQyNfQ04lboD45x8nfd7MPgcMBhzF34tPQRpYGbthFXUmWnBEBixim90k62TJikTRaiW6PJLPDTwBLSYu4RpNwn%2B8DhpfWI1CfA%2BzWrZnHP5%2BzefKBrTh0zXKHkmuzliH39q3rwfXHT%2FUN3Nu1gWuZ9Wn05u0pyuGRuJWn14KAMTT4QTpzcPp0q6k3PF0dS8BvtMDAcsjIIiIQGKXQLYPAt8FgTU2uvZ8EQDruB3sL%2FEV7krVDmZIWNNupYoPkxTdQ3NGKoYYgS4mKQ4q76sKS0JxHADfqZupKbq4gq9wuaT6%2FwCVeR0IAAAAAQAAAAEZmiehT9dfDzz1AAkIAAAAAADJQhegAAAAAMnoSqH7DP2oCo0IjQABAAkAAgAAAAAAAHgBY2BkYODo%2FbuCgYGr9zfPv0quXqAIKrgJAJZXBsIAeAFtkQOsGEEQhv%2Fbnd272rZtG0Ft27ZtW1G9dYMiamrbZlgrqN17M89K8uVfTna%2FoRs4AwCUGVBCU0zQl7DAlEIZWoPOfhXUs0BbVQAL1CG0ZepQd9STPdUW9dQ61FGN%2BU5LpOW1pswUpmU0hZj%2BTGOmWnQ2lPNyV2rEoO%2FA%2BmUw0CwATG8cNjkwyXzEYZrG9Of5NUyy%2BXBY7Q4Hm9a8tgCH%2FWU4bOcwPfmsjc7GvDcYPWk7StjU2G8qAf5xwHQE6D%2BzHRXUbqzi96bmrEQNEeim4V965jWnB%2Bho0sNRHnTn7E5H0V3nQAlaAGsawqkxWKfGhDPoO2Ts%2FGdwsk5fIecd011vh9O%2FOaegHO9toBWAfYLM5JBSxvoNquliyEeDvUucbeXvMd55vIqRtTGMJTnzAkP5bdnsXvTX6VGOPkbfYe%2ByRgh%2F6xHoLms6QDmmlvyFPThTB2PEtbczfMbr3XUu1JD7fmqUjaYre68jzpPD3wJIH6QH0RyQ5L6Ui%2FGeGFqDOZLiPj7iXnpkDsKJ5%2BTwO3LmEe8JYecb2fcazoXMC%2FEd4z0J7EFS3MdH3EuPJJX07gom%2Bff4%2FDMcpS1ee85bBLQNGO84cgiqPerpVcghUBEeK%2FS1jzBBfUZbwUv5X%2F7bkOlslqCEwJ5TBw4lBFsBJdRuHA4vYk%2Fown8RLYvLrQAAeAEc0jWMJFcQxvFnto%2F5LjEvHrdbmh2Kji9aPL4839TcKPNAa6mlZUyOmZk6lzbPJ3bo56%2F%2FCz%2BVaqqrat5rY8x7xnzxl3nvo%2B27jFnz8c%2FmI9Nmh2XBdMsilrBitsnD9rI8aiN5DI%2FjSftC9mIf9pMfIB4kHiI%2BhWfQY5aPAYYYYYwpcyfpMMX0aZzBWZzDeVygchGXcBlX8ApexWt4HW%2FgLbzNbnfwLt7DJ%2Fp0TX4%2BUucji1hCnY%2FU%2BcijVB7D46jzkb3Yh%2F3kB4gHiYeIT%2BEZ9JjlY4AhRhhjytxJOkwxfRpncBbncB4XqFzEJVzGFbyCV%2FEaXscbeAtvs9sdvIv3cjmftWavuWs2mg6byt3ooIsFOyx77Kos2kiWsIK%2FUVPDOjawiQmO4CgdxnAcJzClz2PVbNKsy2ZzvoncjQ66qE2kNpHaRJawgr9RU8M6NrCJCY6gNpFjOI4TmNIn36TNfGSH5RrssKtyN%2B59b410iF0sUFO0l2UJtY%2F8jU9rWMcGNjHBEUypf0z8mm7vZLvZaC%2FLzdhmV2XBvpBF25IlLJOvEFfRI%2BNjgCFGGGNK5Rs6Z7Ij%2F45yNzro4m9Ywzo2sIkJjuBj2ZnvLDdjGxntLLWzLGGZfIW4ih4ZHwMMMcIYUyq1s8xkl97bH0y3JkZyM36j%2F%2B58rvTQxwBDjDDGNzyVyX35Ccjd6KCLv2EN69jAJiY4go%2Flfr05F%2BUa7CCzGx10sYA9tiWLxCWs2BfyN%2BIa1rGBTUxwBEfpMIbjOIEpfdjHvGaTd9LJb0duRp2S1O1I3Y4sYZl8hbiKHhkfAwwxwhhTKt%2FQOZPfmY3%2F%2FSs3Y5tNpTpL9ZQeGR8DDDHCGN%2FwbCbdfHO5GbW51OZSm8sSlslXiKvokfExwBAjjDGlUpvLTBY0K5KbiDcT672SbXZY6k7lbnTQxQI1h%2B1FeZTKY3gcT2KvTWUf9pMZIB4kHiI%2BxcQzxGfpfA7P4wW8yG4eT%2FkYYIgRxvgb9TWsYwObmOAITlI%2Fxf7TOIOzOIfzuEDlIi7hMq7gFbyK1%2FA63sBbeJtvdwfv4j28zyaP8QmVL%2FimL%2FENJ5PJHt3RqtyMbbYlPfQxwBAjjPEN9ZksqkMqN6PuV7bZy7LDtuRudNDFwzx1FI%2FhcTzJp73Yh%2F3kB4gHiYeIT%2BEZ9JjlY4AhRhjjb1TWsI4NbGKCIzjJlCmcxhmcxTmcxwVcxCVcxhW8glfxGl7HG3gLbzPxDt7Fe%2FgY%2F%2Begvq0YCAEoCNa1n%2BKVyTUl3Q0uIhoe%2B3DnRfV7nXGOc5zjHOc4xznOcY5znOMc5zjHOc5xjnOc4xznOMc5znGOc5zjHOc4xznOcY5znOMc5zjHOc5xjnOc4xznOMc5znGOc5zjHOc4xznOcY5znOM8XZouTZemS1OAKcAUYAowBZgCTAHm3x31O7p3vNf5c1iXeBkEAQDFcbsJX0IqFBwK7tyEgkPC3R0K7hrXzsIhePPK%2F7c77jPM1yxSPua0WmuDzNcuNmuLtmq7sbyfsUu7De%2Fxu9fvvvDNfN3ioN9j5pq0ximd1hmd1TmlX7iky7qiq7qmG3pgXYd6pMd6oqd6pud6oZd6pdd6p%2Ff6oI%2F6pC%2FKSxvf9F0%2F1LFl1naRcwwzrAu7AHNarbW6oEu6rCu6qmu6ob9Y7xu%2BkbfHH1ZopCk25RVrhXKn4LCO6KiOGfvpd%2BR3is15xXmVWKGRptgaysQKpUwc1hEdVcpEysTI7xTbKHMcKzTSFDtCmVihkab4z0FdI0QQBAEUbRz6XLh3Lc7VcI%2FWN54IuxXFS97oH58%2BMBoclE1usbHHW77wlW985wcHHHLEMSecsUuPXMNRqfzib3pcllj5xd%2B0lSVW5nNIL3nF6389h%2BY5NG3Thja0oQ1taEMb2tCGNrQn%2BQwjrcwxM93gJre4Y89mvsdb3vGeD3zkE5%2F5wle%2B8Z0fHHDIEceccMaOX67wNz3747gObCQAQhCKdjlRzBVD5be7rwAmfOMQsUvPLj279OzSYBks49Ibl97In%2FHCuNDGO%2BNOW6qlWqqlWqqlWqqlWqqYUkwpphTzifnEfII92IM92IM92IM92IM92IM92I%2FD4%2FA4PA6Pw%2BPwODwOj8M%2Ff7kaaDXQyt7K3mqglcCVwNVAq4FWA60GWglZCVkJWQlZCVkJWQlZDbQyqhpoNdAPh3NAwCAAwwDM%2B7b2sg8kCjIO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO4zAO47AO67AO67AO67AO67AO67AO67AO67AO67AO67AO67AO63AO53AO53AO53AO53AO53AO53AO53AO53AO53AO53AO5xCHOMQhDnGIQxziEIc4xCEOcYhDHOIQhzjEIQ5xiEMd6lCHOtShDnWoQx3qUIc61KEOdahDHepQhzrUoQ6%2Fh%2BP6RpIjiKEoyOPvCARUoK9LctP5ZqXTop7q%2F6H%2F0H%2B4P9yfPz82bdm2Y9ee%2FT355bS3%2FdivDW9reFtDb4beDL0ZejP0ZujN0JuhN0Nvht4MvRl6M%2FRm6M3w1of3PVnJSlaykpWsZCUrWclKVrKSlaxkJStZySpWsYpVrGIVq1jFKlaxilWsYhWrWMUqVrGa1axmNatZzWpWs5rVrGY1q1nNalazmtWsYQ1rWMMa1rCGNaxhDWtYwxrWsIY1rGENa1nLWtaylrWsZS1rWcta1rKWtaxlLWtZyzrWsY51rGMd61jHOtaxjnWsYx3rWMc61rEeTf1o6kdTP%2F84rpMqCKAYhmH8Cfy2JjuLCPiYPDH1Y%2BrH1I%2BpH1M%2Fpn5M%2FZh6FEZhFEZhFEZhFEZhFEZhFFZhFVZhFVZhFVZhFVZhFVbhFE7hFE7hFE7hFE7hFE7hFCKgCChPHQFlc7I52ZxsTgQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQti5bl63L1mXrsnXZuggoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCyt5GQBFQBPTlwD7OEIaBKAxSOrmJVZa2TsJcwJ6r0%2F%2B9sBOGnTDshOF%2BDndyXG7k7vfh9%2Bn35fft978Thp2wKuqqqKtarmq58cYbb7zzzjvvfPDBBx988sknn3zxxRdfPHnyVPip8FPhp8JPhZ8KP78czLdxBDAMAMFc%2FbdAk4AERoMS5CpQOW82uWyPHexkJzvZyU52spOd7GQnu9jFLnaxi13sYhe72MVudrOb3exmN7vZzW52s8EGG2ywwQYbbLDBBnvZy172spe97GUve9nLJptssskmm2yyySabbLHFFltsscUWW2yxxX6%2B7P%2BrH%2Fqtf6%2B2Z3u2Z3u2Z3u2Z3u2Z3s%2BO66jKoYBGASA%2FiUFeLO2tqfgvhIgVkOshvj%2F8f%2FjF8VqiL8dqyG%2Bd4klllhiiSWWWGKJJY444ogjjjjiiCOO%2BPua0gPv7paRAHgBLcEDlNxQAADArI3Ydv7Vtm3btm3btm3btm3bD7VvBoIgLXVVqCf0ztXT9dzd3j3cvcX90CN5Snmae%2Fp45np2e356gbeH94HP8Q3x3feH%2FX38NwJwoHigQ2Ba4GBQCK4NfgxVDE0OnQr7w1nCI8P7wi8jdqR4ZGzkRDQSLRmdH%2F0UqxTrEVsbux%2FPHe8b3xh%2FlgglzESJRJfE6MS6ZChZJzkj%2BRouCA9GJKQuMhI5hsZRHR2A7kZ%2FYZWxldhtPDPeFd%2BIPybyE0OIy2SIrEy2IneSX8mvFKB6UpfodPQYeiOTjmnK3GOzsCPYpexaLjdXiRvBHeJ%2B8BX5Lvxe%2FqOACmWEnsJ60SsyYjqxiLhE3CoeE6%2BLL8RvUlRqJXWThkszpJXSbjkq83JaOZ9cXm4gd5IXKZACK4qSSSmiVFWmq0lVUtOr%2BdXyagO1oxbRSM3UsmnFtOpaC62nNkqbo7M60HPppfXaemu9j77X4IwUI49RxqhrtDWOGzeM92Y985lFWWWtcdZia4d10%2FpiU3YZu6%2B91j7rME5xp5szGVAgDcgBioDhYDpYDjaDE%2BAmeAW%2Bp8R%2FA5ajfCcAAAABAAAA3QCKABYAWAAFAAIAEAAvAFwAAAEAAQsAAwABeAF9jgNuRAEYhL%2FaDGoc4DluVNtug5pr8xh7jj3jTpK18pszwBDP9NHTP0IPs1DOexlmtpz3sc9iOe9nmddyPsA8%2BXI%2BqI1COZ%2FkliIXhPkiyDo3vCnG2CaEn0%2B2lH%2BgmfIvotowZa3769ULZST4K%2BcujqTb%2Fj36S4w%2FQmgDF0tWvalemNWLX%2BKSMBvYkhQSLG2FZR%2BafmERIsqPpn7%2ByvxjfMlsTjlihz3OuZE38bTtlAAa%2FTAFAHgBbMEDjJYBAADQ9%2F3nu2zbtm3b5p9t17JdQ7Zt21zmvGXXvJrZe0LA37Cw%2F3lDEBISIVKUaDFixYmXIJHEkkgqmeRSSCmV1NJIK530Msgok8yyyCqb7HLIKZfc8sgrn%2FwKKKiwIooqprgSSiqltDLKKqe8CiqqpLIqqqqmuhpqqqW2Ouqqp74GGmqksSaaaqa5FlpqpbU22mqnvQ466qSzLrrqprs9NpthprNWeWeWReZba6ctQYR5QaTplvvhp4VWm%2BOyt75bZ5fffvljk71uum6fHnpaopfbervhlvfCHnngof36%2BGappx57oq%2BPPpurv34GGGSgwTYYYpihhhthlJFGG%2BODscYbZ4JJJjphoykmm2qaT7445ZkDDnrujRcOOeyY46444qirZtvtnPPOBFG%2BBtFBTBAbxAXxQYJC7rvjrnv%2FxpJXmpPDXpqXaWDg6MKZX5ZaVJycX5TK4lpalA8SdnMyMITSRjxp%2BaVFxaUFqUWZ%2BUVQQWMobcKUlgYAHQ14sAAAeAFFSzVCLEEQ7fpjH113V1ybGPd1KRyiibEhxt1vsj3ZngE9AIfgBmMR5fVk8qElsRjHOHAYW%2BQwyumxct4bKxXkWDEvx7JjdszQNAZcekzi9Zho8oV8NCbnIT%2FfEXNRJwqmlaemnQMbN8E1OE7Mzb%2FP%2F8xzKZrEMA2hl3rQATa0Uxs2bN%2B2f8M2AEpwj5yQBvklvJ3AqRcEaMKrWq%2F19eWakl7NsZbyJoNblqlZc7KywcRbRnBjc00FeF6%2Fenoi05EcG62tsXhkPcdk87BHVC%2BZXleUPrOsUHaUI2tb4y%2F8OwbsTEAJAA%3D%3D%29%20format%28%22woff%22%29%7D%2A%7Bbox%2Dsizing%3Aborder%2Dbox%7Dbody%7Bpadding%3A0%3Bmargin%3A0%3Bfont%2Dfamily%3A%22Open%20Sans%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A16px%3Bline%2Dheight%3A1%2E5%3Bcolor%3A%23606c71%7Da%7Bcolor%3A%231e6bb8%3Btext%2Ddecoration%3Anone%7Da%3Ahover%7Btext%2Ddecoration%3Aunderline%7D%2Epage%2Dheader%7Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23159957%3Bbackground%2Dimage%3Alinear%2Dgradient%28120deg%2C%23155799%2C%23159957%29%3Bpadding%3A1%2E5rem%202rem%7D%2Eproject%2Dname%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A%2E1rem%3Bfont%2Dsize%3A2rem%7D%2Eproject%2Dtagline%7Bmargin%2Dbottom%3A2rem%3Bfont%2Dweight%3A400%3Bopacity%3A%2E7%3Bfont%2Dsize%3A1%2E5rem%7D%2Eproject%2Dauthor%2C%2Eproject%2Ddate%7Bfont%2Dweight%3A400%3Bopacity%3A%2E7%3Bfont%2Dsize%3A1%2E2rem%7D%40media%20screen%20and%20%28max%2Dwidth%3A%2042em%29%7B%2Epage%2Dheader%7Bpadding%3A1rem%7D%2Eproject%2Dname%7Bfont%2Dsize%3A1%2E75rem%7D%2Eproject%2Dtagline%7Bfont%2Dsize%3A1%2E2rem%7D%2Eproject%2Dauthor%2C%2Eproject%2Ddate%7Bfont%2Dsize%3A1rem%7D%7D%2Emain%2Dcontent%3Afirst%2Dchild%7Bmargin%2Dtop%3A0%7D%2Emain%2Dcontent%20img%7Bmax%2Dwidth%3A100%25%7D%2Emain%2Dcontent%20h1%2C%2Emain%2Dcontent%20h2%2C%2Emain%2Dcontent%20h3%2C%2Emain%2Dcontent%20h4%2C%2Emain%2Dcontent%20h5%2C%2Emain%2Dcontent%20h6%7Bmargin%2Dtop%3A2rem%3Bmargin%2Dbottom%3A1rem%3Bfont%2Dweight%3A400%3Bcolor%3A%23159957%7D%2Emain%2Dcontent%20p%7Bmargin%2Dbottom%3A1em%7D%2Emain%2Dcontent%20code%7Bpadding%3A2px%204px%3Bfont%2Dfamily%3AConsolas%2C%22Liberation%20Mono%22%2CMenlo%2CCourier%2Cmonospace%3Bcolor%3A%23383e41%3Bbackground%2Dcolor%3A%23f3f6fa%3Bborder%2Dradius%3A%2E3rem%7D%2Emain%2Dcontent%20pre%7Bpadding%3A%2E8rem%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A1rem%3Bfont%3A1rem%20Consolas%2C%22Liberation%20Mono%22%2CMenlo%2CCourier%2Cmonospace%3Bcolor%3A%23567482%3Bword%2Dwrap%3Anormal%3Bbackground%2Dcolor%3A%23f3f6fa%3Bborder%3Asolid%201px%20%23dce6f0%3Bborder%2Dradius%3A%2E3rem%3Bline%2Dheight%3A1%2E45%3Boverflow%3Aauto%7D%2Emain%2Dcontent%20pre%3E%20code%7Bpadding%3A0%3Bmargin%3A0%3Bfont%2Dsize%3A1rem%3Bcolor%3A%23567482%3Bword%2Dbreak%3Anormal%3Bwhite%2Dspace%3Apre%3Bbackground%3Atransparent%3Bborder%3A0%7D%2Emain%2Dcontent%20pre%20code%2C%2Emain%2Dcontent%20pre%20tt%7Bdisplay%3Ainline%3Bpadding%3A0%3Bline%2Dheight%3Ainherit%3Bword%2Dwrap%3Anormal%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Emain%2Dcontent%20pre%20code%3Abefore%2C%2Emain%2Dcontent%20pre%20code%3Aafter%2C%2Emain%2Dcontent%20pre%20tt%3Abefore%2C%2Emain%2Dcontent%20pre%20tt%3Aafter%7Bcontent%3Anormal%7D%2Emain%2Dcontent%20ul%2C%2Emain%2Dcontent%20ol%7Bmargin%2Dtop%3A0%7D%2Emain%2Dcontent%20blockquote%7Bpadding%3A0%201rem%3Bmargin%2Dleft%3A0%3Bfont%2Dsize%3A1%2E2rem%3Bcolor%3A%23819198%3Bborder%2Dleft%3A%2E3rem%20solid%20%23dce6f0%7D%2Emain%2Dcontent%20blockquote%3E%3Afirst%2Dchild%7Bmargin%2Dtop%3A0%7D%2Emain%2Dcontent%20blockquote%3E%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7D%2Emain%2Dcontent%20table%7Bwidth%3A100%25%3Boverflow%3Aauto%3Bword%2Dbreak%3Anormal%3Bword%2Dbreak%3Akeep%2Dall%3Bborder%2Dcollapse%3Acollapse%3Bborder%2Dspacing%3A0%3Bmargin%3A1rem%200%7D%2Emain%2Dcontent%20table%20th%7Bfont%2Dweight%3A700%3Bbackground%2Dcolor%3A%234CAF50%3Bcolor%3A%23fff%7D%2Emain%2Dcontent%20table%20th%2C%2Emain%2Dcontent%20table%20td%7Bpadding%3A%2E5rem%201rem%3Bborder%2Dbottom%3A1px%20solid%20%23e9ebec%3Btext%2Dalign%3Aleft%7D%2Emain%2Dcontent%20table%20tr%3Anth%2Dchild%28odd%29%7Bbackground%2Dcolor%3A%23f2f2f2%7D%2Emain%2Dcontent%20dl%7Bpadding%3A0%7D%2Emain%2Dcontent%20dl%20dt%7Bpadding%3A0%3Bmargin%2Dtop%3A1rem%3Bfont%2Dsize%3A1rem%3Bfont%2Dweight%3A700%7D%2Emain%2Dcontent%20dl%20dd%7Bpadding%3A0%3Bmargin%2Dbottom%3A1rem%7D%2Emain%2Dcontent%20hr%7Bmargin%3A1rem%200%3Bborder%3A0%3Bheight%3A1px%3Bbackground%3A%23aaa%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2C%23eee%2C%23aaa%2C%23eee%29%7D%2Emain%2Dcontent%2C%2Etoc%7Bmax%2Dwidth%3A64rem%3Bpadding%3A2rem%204rem%3Bmargin%3A0%20auto%3Bfont%2Dsize%3A1%2E1rem%7D%2Etoc%7Bpadding%2Dbottom%3A0%7D%2Etoc%20ul%7Bmargin%2Dbottom%3A0%7D%40media%20screen%20and%20%28min%2Dwidth%3A%2042em%29%20and%20%28max%2Dwidth%3A%2064em%29%7B%2Etoc%7Bpadding%3A2rem%202rem%200%7D%2Emain%2Dcontent%7Bpadding%3A2rem%7D%7D%40media%20screen%20and%20%28max%2Dwidth%3A%2042em%29%7B%2Etoc%7Bpadding%3A2rem%201rem%200%3Bfont%2Dsize%3A1rem%7D%2Emain%2Dcontent%7Bpadding%3A2rem%201rem%3Bfont%2Dsize%3A1rem%7D%2Emain%2Dcontent%20pre%2C%2Emain%2Dcontent%20pre%3E%20code%7Bfont%2Dsize%3A%2E9rem%7D%2Emain%2Dcontent%20blockquote%7Bfont%2Dsize%3A1%2E1rem%7D%7D%2Esite%2Dfooter%7Bpadding%2Dtop%3A2rem%3Bmargin%2Dtop%3A2rem%3Bborder%2Dtop%3Asolid%201px%20%23eff0f1%3Bfont%2Dsize%3A1rem%7D%2Esite%2Dfooter%2Downer%7Bdisplay%3Ablock%3Bfont%2Dweight%3A700%7D%2Esite%2Dfooter%2Dcredits%7Bcolor%3A%23819198%7D%0Acode%20%3E%20span%2Ekw%20%7B%20color%3A%20%23a71d5d%3B%20font%2Dweight%3A%20normal%3B%20%7D%20%0Acode%20%3E%20span%2Edt%20%7B%20color%3A%20%23795da3%3B%20%7D%20%0Acode%20%3E%20span%2Edv%20%7B%20color%3A%20%230086b3%3B%20%7D%20%0Acode%20%3E%20span%2Ebn%20%7B%20color%3A%20%230086b3%3B%20%7D%20%0Acode%20%3E%20span%2Efl%20%7B%20color%3A%20%230086b3%3B%20%7D%20%0Acode%20%3E%20span%2Ech%20%7B%20color%3A%20%234070a0%3B%20%7D%20%0Acode%20%3E%20span%2Est%20%7B%20color%3A%20%23183691%3B%20%7D%20%0Acode%20%3E%20span%2Eco%20%7B%20color%3A%20%23969896%3B%20font%2Dstyle%3A%20italic%3B%20%7D%20%0Acode%20%3E%20span%2Eot%20%7B%20color%3A%20%23007020%3B%20%7D%20%0A" rel="stylesheet" type="text/css" />
</head>
<body>
<section class="page-header">
<h1 class="title toc-ignore project-name">Advertising Response Measurement - Final Report</h1>
<h4 class="author project-author">Team K - Zichen (Zoe) Huang, Jiaying (Claire) Wu, Chen (Cici) Chen</h4>
<h4 class="date project-date">5/8/2019</h4>
</section>
<section class="main-content">
<div id="introduction" class="section level1">
<h1>Introduction</h1>
<p>The ultimate goal of any marketing activities is to increase sales, either in short-term or long-term, and ideally each campaign or marketing channel should be evaluated based on the incremental profit, which is the additional sales we produce with advertising over what we would have sold without advertising, relative to its cost. While marketing efforts seem intangible as it is hard to land causal relationships between marketing events and transactions, advanced statistical methods could definitely shed the lights of tangible marketing impact on business growth, and guide the direction for future practice.</p>
<p>By analyzing the correlations between marketing activities and the transactions, weakness and strengths of various channels, seasonality of consumer’s response, the marketing team could evaluate the cost efficiency and thus move forward to optimize the resources allocation for marketing spending, and strategically plan marketing events to improve the effectiveness of marketing efforts.</p>
<p>Among diverse marketing activities, advertising is a major mean for branding and informing. Both online (emails, social media, displays, etc.) and offline (direct mails) advertisements play an indispensable role in marketing. As placing ads is expensive in terms of the cost of time, recourses, and budget, one most frequently asked question from the management team is that: how does my advertising work? With this question in mind, our team leveraged four methods to tackle the advertising effectiveness measurement problem. The methods are last-click attribution analysis, holdout testing (experimentation), marketing mix models and model-based attribution analysis. The main goal of this project is to evaluate the <strong>effectiveness of different advertising channels</strong> from four different perspectives. Meanwhile, we would learn from the advantages and disadvantages of the approaches and gain a more comprehensive understanding of mix modeling methods for continuous study.</p>
</div>
<div id="sources-of-data" class="section level1">
<h1>Sources of Data</h1>
<p>The full dataset could be found in the submission files. As dataset related to advertisement responses and transaction records is very sensitive, we could hardly find real or original open data. The dataset we used for this project is a synthetic one simulated by the Elea McDonnell Feit, Marketing Professor of Drexel University, and is organized from three perspectives: customer, impressions, and transactions. Data generation method could be found here: <a href="https://github.com/eleafeit/ad_response_tutorial/blob/master/R%20code/AdResponseDataGeneration.R">https://github.com/eleafeit/ad_response_tutorial/blob/master/R%20code/AdResponseDataGeneration.R</a>. The whole raw digital advertising dataset describes 10,000 customers as well as potential customers of a retailer, and the retailer uses four different advertising channels - display ads, social media ads, email ads, and direct mail ads for its marketing promotion.</p>
</div>
<div id="examination-of-the-data" class="section level1">
<h1>Examination of the Data</h1>
<p>We will be working with a simulated data set related to social media sites. The data are stored in following three files: <strong>customer.csv</strong>, <strong>impressions.csv</strong>, and <strong>transactions.csv</strong>. The first row of the data set includes the column names, and each subsequent row includes one observation of values. Here is a selection of 10 lines from each data file:</p>
<div id="inspect-customer-file" class="section level2">
<h2>Inspect customer file</h2>
<p><strong>customer.csv</strong>: Information about the users with some fields from their profiles. Each row in the file represents a customer, 10,000 rows; the columns describe some basic information about each customer including id number, whether the customer has made a purchase prior to the observation period, and whether the customer is eligible to receive emails or direct mails.</p>
<div id="htmlwidget-49c968e2f00b87e48d74" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-49c968e2f00b87e48d74">{"x":{"filter":"none","data":[["1","2","3","4","5","6","7","8","9","10"],[1,2,3,4,5,6,7,8,9,10],[0,1,1,0,1,0,0,1,0,0],[0,1,1,0,1,0,0,1,0,0],[1,1,0,0,1,0,1,1,1,0]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>id<\/th>\n <th>past.purchase<\/th>\n <th>email<\/th>\n <th>direct<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[1,2,3,4]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<ul>
<li><p><strong>past.purchase</strong>: in the original dataset, the type of <em>past.purchase</em> is <em>int</em>, but this variable records whether the customer has made a purchase prior to the observation period so we decided to convert it into <em>factor</em>.</p></li>
<li><p><strong>email</strong>: in the original dataset, the type of <em>email</em> is <em>int</em>, but this variable records whether the customer is eligible to receive emails so we decided to convert it into <em>factor</em>.</p></li>
<li><p><strong>direct</strong>: in the original dataset, the type of <em>direct</em> is <em>int</em>, but this variable records whether the customer is eligible to receive direct mails so we decided to convert it into <em>factor</em>.</p></li>
</ul>
</div>
<div id="inspect-impression-file" class="section level2">
<h2>Inspect impression file</h2>
<p><strong>impressions.csv</strong>: Information about which users are connected to other users. Each row is an exposure of marketing communication to a specific customer, 501,336 rows; the columns describe the information about the customer’s impression towards an advertisement including id number for the customer, date of impression, the channel of the ad exposure, and whether the customer clicked on the ad.</p>
<div id="htmlwidget-f474ad921ae63e0a53f4" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-f474ad921ae63e0a53f4">{"x":{"filter":"none","data":[["1","2","3","4","5","6","7","8","9","10"],[1,1,1,1,1,1,1,1,1,1],["2017-01-06","2017-02-03","2017-01-01","2017-01-02","2017-01-05","2017-01-06","2017-01-06","2017-01-07","2017-01-07","2017-01-07"],["direct","direct","social","social","social","social","social","social","social","social"],[0,0,0,0,0,0,0,0,0,0]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>id<\/th>\n <th>date<\/th>\n <th>channel<\/th>\n <th>click<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[1,4]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<ul>
<li><p><strong>date</strong>: in the original dataset, the type of <em>date</em> is <em>chr</em>, and we decided to convert it into <em>date</em>.</p></li>
<li><p><strong>channel</strong>: in the original dataset, the type of <em>channel</em> is <em>chr</em>, and we decided to convert it into <em>factor</em>.</p></li>
<li><p><strong>click</strong>: in the original dataset, the type of <em>click</em> is <em>int</em>, but this variable records whether the customer clicked on the ad so we decided to convert it into <em>factor</em>.</p></li>
</ul>
</div>
<div id="inspect-transactions-file" class="section level2">
<h2>Inspect transactions file</h2>
<p><strong>transactions.csv</strong>: Information about history of the user’s account registrations (logins) over time. Each row is a transaction made by a customer; columns record the basic information of a transaction including customer id, date of the transaction, channel of the last ad impression the customer saw before the transaction, and channel of the last ad the customer clicked before the transaction.</p>
<div id="htmlwidget-e3b1a3fea7b58b984a25" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-e3b1a3fea7b58b984a25">{"x":{"filter":"none","data":[["1","2","3","4","5","6","7","8","9","10"],[1,2,3,4,5,6,7,8,9,10],[2,2,3,3,5,5,5,5,5,5],["2017-01-04","2017-02-12","2017-02-02","2017-02-14","2017-01-04","2017-01-13","2017-01-20","2017-01-26","2017-01-31","2017-02-06"],["email","email","email","email","display","display","display","display","display","display"],["none","none","none","none","email","email","email","email","email","display"]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>V1<\/th>\n <th>id<\/th>\n <th>date<\/th>\n <th>last.touch<\/th>\n <th>last.click<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[1,2]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<ul>
<li><p><strong>V1</strong>: in the original dataset, <em>V1</em> only represents the row number, so it is safe for us to remove this variable.</p></li>
<li><p><strong>date</strong>: in the original dataset, the type of <em>date</em> is <em>chr</em>, and we decided to convert it into <em>date</em>.</p></li>
<li><p><strong>last.touch</strong>: in the original dataset, the type of <em>last.touch</em> is <em>chr</em>, and we decided to convert it into <em>factor</em>.</p></li>
<li><p><strong>last.touch</strong>: in the original dataset, the type of <em>last.touch</em> is <em>chr</em>, and we decided to convert it into <em>factor</em>.</p></li>
<li><p><strong>last.click</strong>: in the original dataset, the type of <em>last.click</em> is <em>chr</em>, and we decided to convert it into <em>factor</em>.</p></li>
</ul>
</div>
</div>
<div id="method-1-last-touch-analysis" class="section level1">
<h1>Method 1: Last Touch Analysis</h1>
<p><strong>Attribution rules with last-touch analysis</strong></p>
<div id="investigation" class="section level3">
<h3>1. Investigation</h3>
<p>Based on last-touch attribution, we are able to find the last ad the user clicked on prior to the conversion so that we can get the sales attributed to each channel. In this case, information about the last click and the last touch is stored in the transaction file. By doing a quick crosstab on the transaction table, we are able to calculate the number of transactions attached to each channel by last touch.</p>
<pre><code>last.touch
direct display email none social
2594 5252 7145 846 6596 </code></pre>
<p><img src="data:image/png;base64,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HvzBo48+ahdffHHwrix7v2nTJuvatau7/k033WT6yox055132k8//eSyuuuuu6xTp04Rsz1+/Lj9+OOPdt5556U7Jhb74JOGDh1qn376qds1ffp0y507tz3wwAP23XffWenSpU3fV/FI4e4hXFnicW3yRACB+AkQgMbPlpwRSEqBhQsX2uuvv+7KdvPNN2dJAHrgwAEbPHiwDRs2zJYsWXLCAPTnn3+2mTNnxmR5xx13xHRcIg76/fffA+W+6KKLMuWSq1atshdeeMF8Pp/LT46RAtAvv/zS7rnnHjv77LPtzTffDFw/I/aBk/xvli9fHrgf7/qLFi1y+8qXLx98aKa9j3QP4cqSaRclIwQQSIgAAWhCmLkIAggEC/z3v/+1QYMGBe+K+F41mqpt89I333xjCxYscJtXX321Va5c2fvIatSoEXifHd+MGTMmEHzq/ubPn2+LFy+2+vXrp7vdP/3pT26fAtDglBH74PMaNmxoO3fudLty5coV/FHc3ke6h6woS9xukowRyKECBKA59MFz2whkVODYsWO2ZcsW27t3r5UsWdLOOOOMiFns2bPHNm/e7I4rU6ZMSAAZ8aQIH1x//fWmLy/169cvEICqhq9169beR2FfVe7169dblSpVLE+ePGGPOdmdyvvXX391QXAseavmcN26dVapUiXLmzdjv351rVdffdUVtWLFivbbb7+59y+++KI9//zzJ3sLJzxvw4YNrqw6SNb6ipZULnWpKFKkSLRDT/rzWMpyMs9d39uqIY5Xje5J3zAnIpANBf5ftUI2vDluCQEEMkdg4MCBpkBSgU+dOnWsXLlydtZZZ9nnn38ecoF3333XqlevbiVKlHBNvwpSK1SoYM8880zgODUZB9d+qn9iPP7DV3/Fdu3auSC4WrVqdtppp9mll15qK1asCJRFb5YuXeqCJQVM6m8anNq2bes+q1u3bvBuW7t2rctbecqhbNmydt1119n48eNDjvM2FHg+9thjrr+rji9atKipu8Dhw4e9Q6K+fvLJJ7Zx40Z33L///W8755xz3Pu33nrLBU1eBuqTGRz8vffee277ueeec831key/+uqrgMOUKVNc1wzVLitwV83n7bffHvhcwV3aNG3aNDvzzDNdwKoAVN0O1GUgOHXp0sXlcfrppwfvtjlz5gTyVneBE92DTjxRWWJ97rfccou7pmpZ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CCCAAAIIIIAAAghErQGdO3euHT9+3FatWuXWWC9btqy9/vrrbrnMO+64w03RBCMCCCCAAAIIIIAAArEKRK0B3bRpkzVt2tSKFClixYsXNy13+c0337glMh999FEbNWqUHT16NNbrcRwCCCCAAAIIIIBADheIGoCeddZZtmbNmgDT2Wef7ZbM1A5vdaQNGzYEPucNAggggAACCCCAAAInEogagDZv3tz19+zevbtpxLu21QSvteGHDh1qapJn2csTEfMZAggggAACCCCAQLBA1ABUA45efvll+/TTT23z5s2mfp/qE1q/fn3r37+/3Xbbba45PjhT3iOAAAIIIIAAAgggEEkg6iAkjXb/448/7JdffrHChQubluFcuHChTZs2zRo1amTVqlWLlDf7EUAAAQQQQAABBBBIJxA1AJ0yZYp169bNNB1T0aJFXQYlSpSwzp07p8uMHQgggAACCCCAAAIIRBOI2gRfpkwZlwfLcUaj5HMEEEAAAQQQQACBWASi1oA2aNDAunTpYhdddJFde+21Vr16dStQoEBI3vfff3/INhsIIIAAAggggAACCEQSiBqAfv/99zZhwgR3/jvvvBM2HwLQsCzsRAABBBBAAAEEEAgjEDUAvfzyy+3AgQNhTmUXAggggAACCCCAAAIZFwjbB3TBggX2wgsvZDw3zkAAAQQQQAABBBBAIIpA2AB09uzZNmDAgCin8jECCCCAQEYENIdyZiSfz5cZ2ZAHAgggkGUCYQPQLCsNF0YAAQSyoYD6z59zzjluAGepUqXs+uuvt7RLGN96662mpY7TfnldoI4cOWIPPfSQVaxY0YoXL24dO3YMLIscjkznadBoz549w33MPgQQQCBLBaL2Ac3S0nFxBBBAIMUFJk+e7GYSuemmm2zEiBG2YsUKGzJkiF1xxRWm7k758+d3d6jV5urWrWtNmzYNueN8+fK57bvvvttee+01t/pcp06d7NVXX7WrrrrK5s+fbzVq1Ag5RxsPPvigrV69Ot1+diCAAALJIBAxANW673/5y19iKuPYsWNjOo6DEEAAgZwmoKCzatWq9sorr7hliy+++GIrVqyY3XDDDfb111+7Ke527tzpakRffPFFF5imNdq4caONGjXKbrnlFnv66afdx5oa74cffrB//OMf9vnnn4ecMmPGDHv33XetfPnyIfvZQAABBJJFIGIA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" /><!-- --></p>
</div>
<div id="results-and-interpretation" class="section level3">
<h3>2. Results and Interpretation</h3>
<p>Seen from the result, the incremental sales for social media ads are 6596.</p>
<p>Please refer to the dashboard for last touch analysis result for subgroups of transactions to see if some channels are not available, which channel of the rest is the best choice.</p>
<p>Also, we can see if the incremental sales for different ads would be different if we take time into consideration. For example, we can subset out the transactions based on date and then crosstab.</p>
<pre><code>last.touch
direct display email none social
1669 2682 4081 258 328 </code></pre>
<p><img src="data:image/png;base64,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GwYNGmQnnHBC5Kp8e75y5Urr3r27O/4ll1xi+smL1Lt3b/vhhx9cVn369LGzzjorYba7du2yb7/91ho3bpxjn1TsI180dOhQe+edd9yq999/34oWLWo33HCDffnll1apUiXT31UQKd41xDuXII5NngggEJwAAWhwtuSMQIEUmDNnjj3//PPu3Hr06JEvAeiff/5p9913nz388MP2zTff5BqA/vjjjzZt2rSULK+++uqU9kvHTn/99Vf4vI8//vg8OeTPP/9sI0eOtFAo5PKTY6IAdNasWdavXz879NBDbdy4ceHj7459+EXek/nz54evxz/+119/7dZVq1Ytctc8e57oGuKdS54dlIwQQCAtAgSgaWHmIAggECnw0EMP2T333BO5KuFzlWiqtM1Pn332mc2ePdstdu7c2Q444AB/kx188MHh55n4ZOzYseHgU9f3+eef29y5c61JkyY5LvfYY4916xSARqbdsY98XdOmTe23335zq4oUKRK5KbDnia4hP84lsIskYwSyVIAANEtvPJeNwO4K7Ny501avXm2bN2+2ChUq2P77758wi02bNtmqVavcfpUrV44KIBO+KMGGc8891/TjpzvvvDMcgKqEr127dv6muI8676VLl1qtWrWsWLFicff5pyuV96+//uqC4FTyVsnhkiVLrGbNmla8+O79+9Wx/v3vf7tTrVGjhi1fvtw9HzVqlI0YMeKfXkKur1u2bJk7V+0ka/0kSzovNanYZ599ku36j7enci7/5L7rb1slxEGV6P7jC+aFCGSgwP9frJCBF8clIYBA3ggMGTLEFEgq8GnQoIFVrVrVDjroIPvf//4XdYD//Oc/VrduXStfvryr+lWQWr16dXv88cfD+6nKOLL0U+0Tg/jAV3vFjh07uiC4Tp06tvfee9tJJ51kCxYsCJ+Lnnz33XcuWFLApPamkalDhw5uW8OGDSNX2+LFi13eylMOVapUsW7dutnEiROj9vMXFHjefffdrr2r9i9btqypucC2bdv8XZI+vv3227ZixQq33+23326NGjVyz1988UUXNPkZqE1mZPA3fvx4t/zkk0+66vpE9p988knYYfLkya5phkqXFbir5POqq64Kb1dwF5vee+89O/DAA13AqgBUzQ7UZCAyXXDBBS6P/fbbL3K1ffjhh+G81Vwgt2vQC3M7l1Tv+xVXXOGOqVJW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3nlzRgVE4Pfff7fGjRvb3nvvbWvXrrXVq1eHz6xhw4Z25JFH2rhx48LrDj/8cFcS+swzz7h12q6S07ffftst79y50w488EBr27atPf/8827d5s2brXfv3vbiiy9avXr17Ndff7UtW7aE8+QJAggggAACCBQuAUpAC9f9KnBnO3DgQGvUqJGdc845Uee2bNkymz9/vp155plR67t06WJTpkwJr6tUqZJt2rQpvKzvQ3///beVK1cuvO7LL7+0mTNnmkpAr7rqKitSpEh4G08QQAABBBBAoPAJEIAWvntWYM743XfftQkTJtjIkSNznNNPP/3k1tWoUSNqm5ZVUup3OFKV+pw5c+zmm282VeVffvnltm3bNrv00kvDr1Mp6YIFC0zBKwkBBBBAAAEECr9A8cJ/CVxBfgio1FLB4oMPPmixQabOR1XzSirhjEwVKlQwVbOvX7/eqlSpYl27drX+/fvbAw884H60rzoaHXXUUeGX7bvvvuHnPEEAAQQQQACBwi9AAFr472G+XMGAAQPs0EMPtSuuuCLu8YsX/78/rUTV5du3b3ev69Gjh02aNMnUGemkk05y7TzVIemPP/4w9awnIYAAAggggEDmCRCAZt49DfyKVPWu4ZXUkcgfVumXX34xBZVarlu3rlWrVs2dx8aNG6POZ8OGDW5ZbTxVCqp87r77brv++uvdenVoUvvR+++/nwA0So4FBBBAAAEEMkeAADRz7mXaruTrr792QyGp9DI2tWnTxoYOHWoXXnih27Ry5cqoXVatWuXG8SxbtqxNnjzZtQXt3Llz1D5q66mxQBctWmR16tSJ2sYCAggggAACCBR+ATohFf57mPYrUE/0JUuWRP1ce+21LrDU+l69erkS0MMOO8wFmZEn+NZbb7khlrSuVq1abtN3330XuYsrRS1WrFi4FDVqIwsIIIAAAgggUOgFKAEt9Lcw/Reg6vPIYZJ0BuXLl7eiRYuGg0qtU1tOBaZq26kfDVb//fff2yuvvKLNbvgmzZKktp7qkNSkSRNX8qnxPlW6utdee7n9+IUAAggggAACmSVAAJpZ97NAXU3Pnj1NwzGdf/75tmPHDmvQoIGNGjUqXK2uDkqqaleJart27Vy1vko+1bv+4YcfLlDXwskggAACCCCAQN4JMBNS3lmSUwKBv/76y9asWRNVOhq7q3q9L1++3GrXrm2l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EEAgoQABaEIaNiCAAAIIIIAAAggEIUAAGoQqeSKAAAIIIIAAAggkFCAATUjDBgQQQAABBBBAAIEgBAhAg1AlTwQQQAABBBBAAIGEAgSgCWnYgAACCCCAAAIIIBCEAAFoEKrkiQACCCCAAAIIIJBQgAA0IQ0bEEAAAQQQQAABBIIQIAANQpU8EUAAAQQQQAABBBIKEIAmpGEDAggggAACCCCAQBACBKBBqJInAggggAACCCCAQEIBAtCENGxAAAEEEEAAAQQQCEKAADQIVfJEAAEEEEAAAQQQSChAAJqQhg0IIIAAAggggAACQQgQgAahSp4IIIAAAggggAACCQUIQBPSsAEBBBBAAAEEEEAgCAEC0CBUyRMBBBBAAAEEEEAgoUDKAWgoFApnsmbNGnvjjTds5cqV4XU8QQABBBBAAAEEEEAgFYGUAtARI0ZYw4YNXX4///yz1a9f38444ww74IAD7J133knlOOyDAAIIIIAAAggggIATSBqALliwwPr3728nnHCCqRT0wQcftOLFi9usWbOsT58+1rNnTygRQAABBBBAAAEEEEhZIGkA+tlnn1ndunVt5MiRVqRIEZs0aZJ17drVWrZsaTfffLMtW7bMVq1alfIB2REBBBBAAAEEEEAguwWSBqDr16+3KlWqOKV58+bZihUrrEOHDm5527ZtrjS0TJkyKSlGtiPN7QWp7Jdsn2Tbczs+2xBAAAEEEEAAAQSCE0gagDZp0sRmz55tM2bMsIcfftj22msvO+mkk2zz5s12zz33WPPmza1cuXK5nuGiRYvsuuuus1q1alnVqlXtoosucq+PfNEff/xhN910kx1yyCFWsWJFV8qq4DcypbLPV199Zd27d7cKFSpYnTp1bMiQIZFZ8BwBBBBAAAEEEEAgnwWKJzt+mzZt7LTTTrMTTzzR7frEE09Y2bJlrUePHq46fvTo0cmysMsuu8y2bt1qo0aNsr/++stuu+02V4r6ySefhF9766232pQpU1xVf8mSJa1fv37Wvn17mzNnjqv6147J9tmyZYt169bNBcXTpk2zuXPnunaqRYsWdccMH4wnCCCAAAIIIIAAAvkmkDQA1ZlNmDDBvv/+e9t3332tZs2a7mTVAWnYsGFJSz/fffdd+/DDD+2LL76wo446yr12+/btdv7559tPP/3kSjy/+eYbGz58uL322msu6NRO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xYsXtwMPPNDuvfde+/vvv8P7LV++3M466ywrW7as7b333ta+fXv7/vvvw9t5kn4BAtD0m3NEBBBAAAEEEEhBYPTo0XbXXXfZxRdfbO+9955Vq1bN2rVrZz/88EP41b1797axY8da3759bdasWXbhhRfaoEGD3Ou0k0o8zzzzTPv666/t6aeftldffdU2bdpkp5xyim3evDmcD0/SK1A8vYfjaAgggAACCCCAQHKBrVu32t133229evUyBZlKjRo1ciWdr732mt16660ukBw3bpxdf/31bln7qLT0xx9/NAWvQ4YMsUWLFtkXX3xhzzzzjJ177rnaxZWCqjT1ww8/tNNOO82t41d6BQhA0+vN0RBAAIEoAbVZK1p0zyujVMpTpEiRqLxZQKAwC+y11172zTffWKlSpcKXsWHDBtu2bZuVKFHCrdu5c6c99dRTdtJJJ4X30ZODDjrIpkyZ4ko/y5cv795jkaWdfvV8uXLlol7HQvoE9vy/XvrOlSMhgAACGSGgtmennnqq6cOvTJkydtRRR7nqxciLUzXhoYcemuNH6/1EuzZfgsdMFahcubJrt6m2oCqtvPrqq61KlSp29tlnu0uuWLGiXXnllS7g9A30pe7ll1+25s2buy9llSpVsosuusgefvhhVwWv0tPrrrvOjj76aGvVqpX/Mh7TLEAJaJrBORwCCGS3wG+//WYnn3yy7b///jZy5EjTB+zjjz9unTp1sk8//dSOPPJIB6S2bFu2bLFLL700CkwlO0p+u7b169e7D1UFs3feeadr1/btt9+64DbqhSwgUIgF1BHppptuclegqvTatWsnvJpbbrnFVq5caQo0/TR8+HBXNd+zZ0+3SqWi8+bNc52W/H14TK8AAWh6vTkaAghkucDrr79uKrmcOHGiK4ERh9qs1ahRw5599tlwADp37lzX2WLw4MFxxWjXFpeFlRkqcP7551vHjh3thRdecKWgK1assNtvvz3H1arN6NChQ+3BBx+0Y445xm1ftWqVHXfccaaSUL3/1BNepaHaPnXqVGvcuHGOfFgRvABV8MEbcwQEEEAgLKASTrVZU/Wfn1R6qZJQ9cz1k0pnmjZt6hbjjW1IuzZfisdsEDjggAPs8MMPd8GlagtGjBjhagEir/2GG26wO+64wx544AE3LJO/bdKkSbZw4UJTZ6UuXbpY27Zt7b///a+r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" /><!-- --></p>
<p>Seen from the result, in February, the incremental sales are far lower attached to social media ads. Probably, this is because that social media ads were ended at the end of January. Please refer to the dashboard to see the difference in different period of time.</p>
</div>
<div id="assumptions" class="section level3">
<h3>3. Assumptions</h3>
<p>When we do this, one assumption is that we ignore all the customers who didn’t make a real transaction. Also, we assumed that all the sales are counted as incremental, which means that consumers who saw ads would not have bought if they hadn’t seen the ads.</p>
</div>
</div>
<div id="method-2-holdout-test-analysis" class="section level1">
<h1>Method 2: Holdout Test Analysis</h1>
<div id="investigation-1" class="section level3">
<h3>1. Investigation</h3>
<p>Holdout testing, also called randomized controlled trial, is an experiment that randomly select the customers for the control group not exposed to an ad and see if there is any difference between people who received ads and those who didn’t so that we can know if the ads is effective.</p>
<p>There was an email on 2017-01-03, 2017-01-17, 2017-01-24, 2017-01-31, 2017-02-07, 2017-02-14, and 2017-02-21 that included a holdout group by randomly selecting the customers for the control group to be not exposed to an email ad.</p>
<p>Here, we picked 2017-01-31 to analyze the result of holdout test for the first 10 days.</p>
<pre><code> consumed
group FALSE TRUE
control group 702 470
test group 2613 2216</code></pre>
<p><img src="data:image/png;base64,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8s0339jRRx/tdj3++OPtxBNPLPNlOp6OqzJx4kSrUaNGmfsXcuPHH39s9evXtw033LDcalesWGHvvvuutW/fvtx9C7FDZR9vZdu8aNEiu+222+zVV1+177//3r2XevToYYcffniJquR866232rRp06xRo0a211572cknn1xmrB977DG7/PLLXV0vvPCCrbfeem75q6++suuuu67EMdIrmjVrZhdccEF6VanL99xzjz3zzDP29ddf2/bbb2+nn366bbnllqXuX1q7Sn1BasPixYvtjjvusNdee83mzp1r2267rZ111lklfg5TL7Hfcrx0PSwjEKxAjoIAAt4LRH9cc9EvIffvP//5T4n2jhw5Mtl+1113ldhekRWffPJJUsfFF19c7kv69euX7L98+fJy9y/EDlEikBsyZEhunXXWyX3wwQflVvnSSy/ldtppp9yxxx5b7r6F2KGyj7eybf7iiy9yzZs3T+IWv6f0GH34KFJdlKDmoiS/xL69evXKRUl2kX3jJ1HCmqtbt27ymgULFsSbclESm6xPHze9vM022yT7l7VwzDHHlKgr+jCS+/e//533ZWW1K+8LUis///zznNqVbqeW69Spk/vXv/6V2vN/i7/leP+rhSUEwhbgFHz0m4SCAALZENAI2h//+EdbunRphRrcpUsXe/PNNyu0byF2quzjrWybTz31VNNIpEarDzvsMDdS2bp1a1fN/fffb2PGjEmqHDRokM2bN8/WX399GzZsmO2///5u2z//+U976qmnkv3ihbffftt69uxpP/zwQ7yqyOOaa65pG2+8cYl/GlmNi0YWyysaVR09erTbbe+997bLLrvMoqTXomQ37+hpee0q73hXXXWVG0GvVauWnXLKKXbRRRc5E42KRh/C7JdffilSxW89XpHKeIJAwAIkoAEHl64hkBaIRiktGpkxPa5K+fXXXy0aJTWdYq5o+a3HrOhxfst+CxcutGiUq9wqlODMmjXLvv3225UyKLfi/+7w3XffudO7Fd1f+6ntc+bMqdBLfvzxR3v22WfdvkqUH374YbvkkkvsoYceSl4fb3/rrbds0qRJbr2mdFx66aVuvwYNGrh1f/7zn5PXaOGMM86wHXfc0ZR8lVbatm3rnGWd/hdP9VDyeeedd5b28mR9fGwlnWPHjrWhQ4fawIED3fYpU6bYyy+/nOxbkXYlO+dZ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CCDgtQAJqNfhoXEIIIAAAggggEB4AiSg4cWUHiGAAAIIIIAAAl4LkIB6HR4ahwACCCCAAAIIhCdAAhpeTFdrj3766Sf79ttvK3yMt99+2x588MEK78+OCCBQuQKffPLJKh1wVV+3SgfjRQggEJwACWhwIV29HTrrrLPsjTfeqPBBPvjgA3v22WcrvD87IoBA5Ql8/vnn1qdPn5U+4Kq+bqUPxAsQQCBYgZrDohJs7+hYEYEVK1bYfffdZw888IDVrFnTWrZs6bb/5z//sTvuuMN+/fVX22yzzaxGjRo2ceJEmzdvnv3tb39zy23btrWvvvrKbr75Zvv++++tY8eO9tBDD9kPP/xgf//7361Tp05uZPSuu+6yDz/80LbaaiurVauWzZgxwz0/5JBDirTlyy+/tNtuu83VuXjxYvfaRYsW2Ztvvunq086bbLKJS15Vf+PGja1Ro0aujhEjRljr1q1trbXWsvfff9+mTJliLVq0cK/76KOP3GPt2rXd64sclCcIIFBE4M4773Q/YxtttJFts802pp/Bu+++2/3ctmnTxv0ML1y40P7yl7/YuHHj3O+ILbfc0oq/Ll3p1KlT7fbbb7f11lvPXn31Vfez+/LLL9unn35q+tnV75g111zT/R565plnbIsttnD76uzKyJEjrUOHDq46fXD98ccfbcGCBe73wvjx411b9XuhXr166UOyjAACGRRgBDSDQVvVJp9//vn25JNP2t57721DhgyxyZMnuz82p512mvul/8gjj9jJJ5/sqn/iiSesb9++LtFT4nrcccdZgwYNXBKoZHSDDTZwyeitt95qdevWtY8//ti6du1qTZo0cYmrEtRcLpe3qfqjcuCBB1qdOnVMf9x69Ojh/lBNnz7djjnmGLdef6D69evnEuadd97ZBgwYYKNGjXL13Xjjje51eqLX/POf/7Rly5bZ6aefbvqD1r17d1OfXnvttbzHZyUCCPy/gJJM/RzqZ1ofBJX81a9f3y1369bN7XT22We7xLNnz5528cUX20svvWTp16Ut3333Xfe7on379u7nUr83NGVnwoQJdu6557rfH/p9og+s+hCqD446zuzZs12yef311yfV6TVvvfWWzZw503r16mVrr722+9B88MEHuw++yY4sIIBAJgVqZbLVNHqVBJTA6Ze5RhL1B0cJ4gUXXGCXX3657bvvvrb/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gAACCFR3ARLQAr0DRowYYZMnT3a1jRkzxgYPHpzUPHz48GSZBQQQQAABBBBAoLoLkIBW93cA/UcAAQQQQAABBCpZgAS0ksE5HAIIIIAAAgggUN0FSECr+zuA/iOAAAIIIIAAApUsUKuSjxf04c477zwbNmyYLViwwJYuXWrjx493/f3mm2+C7jedQwABBBBAAAEEVkaABHRltMrYd9CgQXbKKaeUsQebEEAAAQQQQAABBCTAKfgCvQ+aNGliW221ldWtW9fatm1rG2+8sU2ZMsU++ugja9OmTYGOQjUIIIAAAggggED2BUhACxTDefPm2dZbb20333yzq7FXr172+OOPm+4BetFFFxXoKFSDAAIIIIAAAghkX4BT8AWK4a233mpHHHGEXXXVVfb222/bJ598YrNmzbLly5db69at7eqrr7Y11iDfLxA31SCAAAIIIIBAhgXIiAoUvPfff9/23ntvV9sTTzxhBx10kEs411xzTdtggw1s/vz5BToS1SCAAAIIIIAAAtkWIAEtUPxatGhhU6dOdbWNGzfOevbs6Za//fZbmzt3rjVo0KBAR6IaBBBAAAEEEEAg2wIkoAWKX//+/d38T51u14jn7rvvbi+88ILtueeedsEFFxToKFSDAAIIIIAAAghkX4A5oAWKYbNmzWz27Nnun66G13zP2rVr22233WZdu3Yt0FGoBgEEEEAAAQQQyL4AI6AFjKHme+pK+Phio44dO7rk84YbbijgUagKAQQQQAABBBDItgAJaCXE7/rrr6+Eo3AIBBBAAAEEEEAgGwIkoNmIE61EAAEEEEAAAQSCESABDSaUdAQBBBBAAAEEEMiGABchFShON910k40ZMyZvbd99913e9axEAAEEEEAAAQSqowAJaIGi3qNHD9NFR/lKLpfLt5p1CCCAAAIIIIBAtRQgAS1Q2Fu2bGn6ly76fvh7773Xbr/9dve1nOltLCOAAAIIIIAAAtVVgDmgqyHyU6ZMsX79+lmrVq1MyzfffPNqOApVIoAAAggggAAC2RRgBLRAcVuyZImNHj3a3Xhe9wE95JBDrHPnzqXOCy3QYakGAQQQQAABBBDInAAJaIFCdskll9jEiRPd6fZdd93VvvrqK3vttdcKVDvVIIAAAggggAAC4QiQgBYolmeffbb76s1jjz3W2rdvbwcccECBaqYaBBBAAAEEEEAg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gAACCCCAAAIIVL1AphPQu+++2/SPggACCCCAAAIIIJAdgSDmgOr2S3HRLZh0b9ClS5fGq3hEAAEEEEAAAQQQ8Egg0wnozz//bL1797ZzzjnHkeprOdu3b28HHHCAtWvXzubNm+cRNU1BAAEEEEAAAQQQkECmE9AbbrjBnn32WevSpYstX77chg4dagceeKC98cYbbh7olVdeSZQRQAABBBBAAAEEPBPIdAI6efJkO/PMM+2oo46yV1991XQD+nPPPdd22mkndx/Q119/3TNumoMAAggggAACCCCQ6QRUp9h103kVzfusXbu2de3a1T3X7Zg22GADt8x/CCCAAAIIIIAAAv4IZDoB3W677ezBBx+0qVOn2qhRo2y//faztdde290bVN+CtO+++/ojTUsQQAABBBBAAAEEnECmE9CBAwfa559/7k65L1q0yK666irXqU6dOtl6661nvXr1IswIIIAAAggggAACnglk+j6gLVu2tFmzZpluvdS2bVuXdMp3/Pjx1q1bN6tRo4Zn3DQHAQQQQAABBBBAINMJqMK3zjrrWMeOHYtEsnv37kWe8wQBBBBAAAEEEEDAH4HMJ6C33XabPfLII7ZgwQJ3K6Y07d57723Dhw9Pr2IZAQQQQAABBBBAoIoFMp2A3nXXXe42TBoBbdOmja211lpFOHWKnoIAAggggAACCCDgl0CmE1CNfOpCo7Fjx/qlSmuqpcD8+fNtwoQJ1bLvdBoBBBBAoHSBuXPn2uabb176DtVwS6YTUMVr2223rYZho8u+CeiDkG4HtmTJEt+aRnsQQAABBKpYoHnz5jZ48OAqboVfh890Aqqv3dT3v19yySW2xhqZvqOUX+8KWrPSApr+ce21167063gBAggggAAC1VEg0wnoLrvsYroISXNAdcFRgwYNisRQ80J79OhRZB1PEEAAAQQQQAABBKpWINMJ6IgRI+yLL75wgrNnzy4heeihh5KAllBhBQIIIIAAAgggULUCmU5Adfpd/ygIIIAAAggggAAC2RHIdAIaM//yyy/2wQcf2DfffGNbb721NW3aNN7EIwKVIvDDDz/Y0UcfzVzkStHmIAgggEC2BH7++We77777rEmTJtlq+GpsbeYT0HHjxln//v3tq6++SpiaNWtmI0eOtP333z9ZxwICq1PgX//6l33//fduLvLqPA51I4AAAghkT0BfGX7LLbfYFVdckb3Gr6YWZzoBffPNN+3II4+0rl272oUXXmi77767SwJGjRplmv/53HPPWefOnVcTHdUiUFSgTp06pgvjKAgggAACCKQFPv300/RTliOBTCeg+jTRunVrmzhxotWoUSMJqK6InzFjho0ePZoENFFhAQEEEEAAAQQQ8EMg0zfPfP/9961v375Fks+YtV+/fjZlypT4KY8IIIAAAggggAACnghkOgHVNwuMHz8+L6XWb7TRRnm3sRIBBBBAAAEEEECg6gQynYBqlHPy5Ml2+eWX25dffmnLly+3OXPm2J/+9Cd76qmn7Nhjj606WY6MAAIIIIAAAgggkFcg03NADzroILvuuutsyJAhdumll7pT8blczvS1iEOHDnUXKOXtNSsRQAABBBBAAAEEqkwg0wmo1M4//3zr06eP6Yr4Tz75xJ1211dzbrrpplWGyoERQAABBBBAAAEEShfI9Cl4dWvBggU2duxY95WbAwYMsJYtW9o999xjixYtKr3XbEEAAQQQQAABBBCoMoFMj4Dq24+6dOli6623np199tkOccWKFe7rOW+++WabNGmStWvXrspwC3Vg9WnZsmVunmuh6qSeignIXf4UBBBAAAEEECicQKYT0IceesglmI8//ngiotPvOhV/wAEH2B//+Ed3L9BkY0YXdFP90047zXTVP6VyBb7++mu7/vrrK/egHA0BBBBAAIHABTKdgOoG9ErOateuXSRMugjpqKOOciOhRTZk9Inudap/FAQQQAABBBBAIASBTM8B3Wqrrdz8z3yBmDBhAhci5YNhHQIIIIAAAgggUMUCmU5ADz/8cHvllVds4MCBNm3aNHcP0Lffftsuu+wy02l53SeUggACCCCAAAIIIOCXQKZPwes733UF/HHHHWfXXnttIlunTh33/LDDDkvWsYAAAggggAACCCDgh0CmE1ARag7oDz/8YDNmzLBZs2ZZkyZNbJtttrF69er5IVyAVqh/o0ePLkBNVLEqAr1797YGDRqsykt5DQIIIIAAAgjkEch8Aqo+1apVy7bddlv3L08fM7/q+OOPt5deesl23XXXzPclax1YvHixPfDAA/bCCy9krem0FwEEEEAAAW8FgkhAvdUtUMN0Vf9JJ51kXbt2LVCNVFNRgSlTprj5xRXdn/0QQAABBBBAoHyBTF+EVH732AMBBBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwESUN8iQnsQQAABBBBAAIHABUhAAw8w3UMAAQQQQAABBHwTIAH1LSK0BwEEEEAAAQQQCFyABDTwANM9BBBAAAEEEEDANwES0AJF5L333rM5c+a42nK5nK1YsSKp+ZZbbkmWWUAAAQQQQAABBKq7AAlogd4BI0aMsMmTJ7vaxowZY4MHD05qHj58eLLMAgIIIIAAAgggUN0FSECr+zuA/iOAAAIIIIAAApUsQAJayeAcDgEEEEAAAQQQqO4CJKDV/R1A/xFAAAEEEEAAgUoWqFXJxwv6cOedd54NGzbMFixYYEuXLrXx48e7/n7zzTdB95vOIYAAAggggAACKyNAAroyWmXsO2jQIDvllFPK2INNCCCAAAIIIIAAAhIgAS3Q++CBBx4wXf0elxo1aljTpk1txx13tIEDB8areUQAAQQQQAABBKq9AAlogd4CPXr0sI4dOya16V6g8+fPNyWmffv2tdGjRyfbWEAAAQQQQAABBKqzAAlogaLfsmVL07/ipVu3brbZZpvZr7/+arVqwV3ch+cIIIAAAgggUP0EuAp+Nce8Tp061rBhQ1uyZMlqPhLVI4AAAggggAAC2RAgAV3NcXr++efdETbccMPVfCSqRwABBBBAAAEEsiHAOeECxemaa66xUaNGJbVpDuh3331ntWvXtrFjxybrWUAAAQQQQAABBKq7AAlogd4BJ5xwgh100EFJbboKvnnz5la3bt1kHQsIIIAAAggggAAC3IapYO8B3XJJ//KVadOm2fbbb59vE+sQQAABBBBAAIFqJ8Ac0AKFXKfcL7zwQuvUqZMNHz7c1bps2TLTDeq7d+9eoKNQDQIIIIAAAgggkH0BEtACxfD++++3l156yTQXdNKkSfbEE0+4xFOjn/pHQQABBBBAAAEEEPh/AeaAFuidMGPGDDv99NNd0vnjjz/akUceaVdffbUNGDCgQEegGgQQQAABBBBAIAwBRkALFMfFixdb48aNXW3169c33YCe5LNAuFSDAAIIIIAAAkEJkICupnAqCaUggAACCCCAAAIIlBTgFHxJk1Vec+qpp5q++Uin4OfNm2fbbLNNUte7776bLLOAAAIIIIAAAghUZwES0AJFv0+fPtarVy+rV69egWqkGgQQQAABBBBAIEwBEtACxXXMmDHWuXNn22233QpUI9UggAACCCCAAAJhCjAHNMy40isEEEAAAQQQQMBbAUZACxiayy+/3G6//fa8NU6cODHvelYigAACCCCAAALVTYAEtIARP/zww2333XcvYI1UhQACCCCAAAIIhCdAAlrAmOqq97322quANVIVAggggAACCCAQngBzQAsU0y222MIaNWpUoNqoBgEEEEAAAQQQCFeAEdACxbZ///4FqolqEEAAAQQQQACBsAUYAQ07vvQOAQQQQAABBBDwToAE1LuQ0CAEEEAAAQQQQCBsARLQsONL7xBAAAEEEEAAAe8ESEC9CwkNQgABBBBAAAEEwhYgAQ07vvQOAQQQQAABBBDwToAE1LuQ0CAEEEAAAQQQQCBsARLQsONL7xBAAAEEEEAAAe8ESEC9CwkN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rlixInkeLyxYsCBedI+6cGmzzTYrso4nCCCAgG8CJKC+RYT2IIBAJgQ6d+5sr776qn3//fdJe3UKPV9ymewQLbRr187eeOONIsmrEsuJEyda+/bt3a516tRxj+m633333XQ1yfKLL76YLKseXUG//fbbJ+tYQAABBHwUIAH1MSq0CQEEvBc4/fTTbf3113dzN++880674oor7JBDDrF49LK0DuhKeZXjjz/ePv30U3dVuy4k+uyzz9wtnbRNieiaa65pQ4YMcRcsKak85ZRTTBc5FS8XXHCBuxpeo7G6GEmP8TGK78tzBBBAwBcBElBfIkE7EEAgUwIbbLCB6V6cbdq0sUGDBtn9999vt956q2n0UrdWKq3o1P3TTz9tmguqK9abNGlikyZNsocffth22WUX9zLd0/Ovf/2raXRTV9jrPqE6Rr5T64ceeqjttttu7kImjaLqPqHF56GW1hbWI4AAAlUlUCMXlao6OMdFAAEEsiqgG8frlHd8KyX148cff3SjoiNHjrS+ffuW2zWdYtevYN2MPl9Zvny5Gxlt0aKFrbFG0fGCp556yl3xrkRWFz+pLt3YnoIAAghkQaDob7QstJg2IoAAAh4IaNRSo5Ovvfaaa41uTK9vOtJp8j322KNCLdRIZ2nJpyrQBUwa9SyefBavXMck+SyuwnMEEPBZgBvR+xwd2oYAAt4K6Cs3J0yYYF27djXd6/Pbb79133j06KOP2qabbuptu2kYAggg4IMAp+B9iAJtQACBzAroqzc1V1NzO3XxkL52szLK4sWL3TxSzUHVBUsUBBBAIEsCJKBZihZtRQABBBBAAAEEAhBgDmgAQaQLCCCAAAIIIIBAlgRIQLMULdqKAAIIIIAAAggEIEACGkAQ6QICCCCAAAIIIJAlARLQLEWLtiKAAAIIIIAAAgEIkIAGEES6gAACCCCAAAIIZEmABDRL0aKtCCCAAAIIIIBAAAIkoAEEkS4ggAACCCCAAAJZEiABzVK0aCsCCCCAAAIIIBCAAAloAEGkCwgggAACCCCAQJYESECzFC3aigACCCCAAAIIBCBAAhpAEOkCAggggAACCCCQJQES0CxFi7YigAACCCCAAAIBCJCABhBEuoAAAggggAACCGRJgAQ0S9GirQgggAACCCCAQAACJKABBJEuIIAAAggggAACWRIgAc1StGgrAggggAACCCAQgAAJaABBpAsIIIAAAggggECWBEhAsxQt2ooAAggggAACCAQgQAIaQBDpAgIIIIAAAgggkCUBEtAsRYu2IoAAAggggAACAQiQgAYQRLqAAAIIIIAAAghkSYAENEvRoq0IIIAAAggggEAAAiSgAQSRLiCAAAIIIIAAAlkSIAHNUrRoKwIIIIAAAgggEIAACWgAQaQLCCCAAAIIIIBAlgRIQLMULdqKAAIIIIAAAggEIEACGkAQ6QICCCCAAAIIIJAlARLQLEWLtiKAAAIIIIAAAgEIkIAGEES6gAACCCCAAAIIZEmABDRL0aKtCCCAAAIIIIBAAAIkoAEEkS4ggAACCCCAAAJZEiABzVK0aCsCCCCAAAIIIBCAAAloAEGkCwgggAACCCCAQJYESECzFC3aigACCCCAAAIIBCBAAhpAEOkCAggggAACCCCQJQES0CxFi7YigAACCCCAAAIBCJCABhBEuoAAAggggAACCGRJgAQ0S9GirQgggAACCCCAQAACJKABBJEuIIAAAggggAACWRIgAc1StGgrAggggAACCCAQgAAJaABBpAsIIIAAAggggECWBEhAsxQt2ooAAggggAACCAQgQAIaQBDpAgIIIIAAAgggkCUBEtAsRYu2IoAAAggggAACAQiQgAYQRLqAAAIIIIAAAghkSYAENEvRoq0IIIAAAggggEAAAiSgAQSRLiCAAAIIIIAAAlkSIAHNUrRoKwIIIIAAAgggEIAACWgAQaQLCCCAAAIIIIBAlgRIQLMULdqKAAIIIIAAAggEIEACGkAQ6QICCCCAAAIIIJAlARLQLEWLtiKAAAIIIIAAAgEIkIAGEES6gAACCCCAAAIIZEmABDRL0aKtCCCAAAIIIIBAAAIkoAEEkS4ggAACCCCAAAJZEiABzVK0aCsCCCCAAAIIIBCAAAloAEGkCwgggAACCCCAQJYESECzFC3aigACCCCAAAIIBCDwf+46beBtqwyJAAAAAElFTkSuQmCC" /><!-- --></p>
</div>
<div id="results-and-interpretation-1" class="section level3">
<h3>2. Results and Interpretation</h3>
<p>Seen from the table as well as the plot, it is obvious that the proportion of people made actual consumption in test group who have received the email ads is higher than that in control group who didn’t receive any email ads. Below is a proptest for more detailed information about the comparison of conversion rate between these two groups.</p>
<pre><code>
2-sample test for equality of proportions with continuity
correction
data: ttable[, "TRUE"] out of xtabs(~group, data = total.tab)
X-squared = 12.541, df = 1, p-value = 0.0003981
alternative hypothesis: two.sided
95 percent confidence interval:
-0.08978269 -0.02595789
sample estimates:
prop 1 prop 2
0.4010239 0.4588942 </code></pre>
<pre><code>diff.prop 2 ci1 ci2
0.05787029 0.08978269 0.02595789 </code></pre>
<pre><code>
2-sample test for equality of proportions with continuity
correction
data: ttable[, "TRUE"] out of xtabs(~group, data = total.tab)
X-squared = 12.541, df = 1, p-value = 0.0003981
alternative hypothesis: two.sided
95 percent confidence interval:
-0.08978269 -0.02595789
sample estimates:
prop 1 prop 2
0.4010239 0.4588942 </code></pre>
<pre><code>diff.prop 2 ci1 ci2
0.05787029 0.08978269 0.02595789 </code></pre>
<p>Seen from this example, the test group had a 45.89% conversion rate in the first 10 days after the email was sent, while the hold out group had a 40.1% conversion rate. The email on 2017-01-31 produced incremental sales. The incremental increase in conversion rate is between +2.60% and +8.98% (95% confidence interval). Please refer to the dashboard to see the difference about how much advertising increases sales with different experiment date and different window period. One inference we can get from the dashboard is that ad response is often greatest just after exposure and then falls off over time.</p>
</div>
<div id="assumptions-1" class="section level3">
<h3>3. Assumptions</h3>
<p>By randomly selecting the customers for the control group, we assumed that the two groups are the same on average. Both the treatment and control groups are assured to be similar in their propensity to transaction and response to ads, which is also called probabilistically equivalent.</p>
</div>
</div>
<div id="method-3-marketing-mix-modeling" class="section level1">
<h1>Method 3: Marketing Mix Modeling</h1>
<p>Based on our datasets, the data points are usually categorical response or logical response, but before we go deep into the logical regression, we want to do linear regression first to find the correlation between total sales to advertising spending on that same day/week/month.</p>
<div id="investigation-2" class="section level3">
<h3>1. Investigation</h3>
<p>We did some research about marketing mix model before we started to build our models.</p>
<p>A “marketing mix model” or “MMM” is a regression relating advertising spending or total impressions to some response such as “sales (transactions)”. Marketing mix modeling (MMM) is also a statistical analysis utilizing marketing time series data to estimate the impact of various marketing strategies on sales and then predict the impact of future sets of marketing mix or tactics. It is often used to optimize advertising mix and promotional tactics with respect to sales revenue or profit.</p>
<p>In order to investigate the relationships or correlations between total sales (transactions) and impression factors (four different advertising channels - display ads, social media ads, email ads, and direct mail ads) within a specific time period, we implemented linear regression model for marketing mix modeling.</p>
<p>A simple marketing mix model for our case could be represented as follows: <span class="math display">\[sales_t = \beta_0 + \beta_1display_t + \beta_2social_t + \beta_3email_t + \beta_4direct_t + \epsilon_t\]</span></p>
<p>the <span class="math inline">\(\beta\)</span>’s represent the unknown relationship between advertising spending and sales. For instance, <span class="math inline">\(\beta_1\)</span> means the increase in sales we will gain for each additional display impression unit while holding other impression factors fixed.</p>
<p>We have built five different linear models to see whether there are some thoughtful results which may help us understand the relationship between sales and advertising spending better.</p>
<ul>
<li>Model 1: Basic regression including email.holdout</li>
<li>Model 2: Add in a day of week variable</li>
<li>Model 3: Taking the advertising effect into consideration</li>
<li>Model 4: Interactions terms (<span class="math inline">\(Email \times Social\)</span>)</li>
<li>Model 5: Interactions terms (<span class="math inline">\(Direct \times Social\)</span>)</li>
</ul>
<p>When we fit models, it will be more convenient to put the transactions and impressions data together in the same data frame. Also, it will be easy to do regression when we put the necessary variables together, so we did some data preparations before modeling.</p>
<p>so let’s take a look at our summarized data, exploration plots, and the corresponding correlation matrix.</p>
<ul>
<li><p>Summarized data <div id="htmlwidget-f6e6b0cb067ac237513b" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-f6e6b0cb067ac237513b">{"x":{"filter":"none","data":[["2017-01-01","2017-01-02","2017-01-03","2017-01-04","2017-01-05","2017-01-06","2017-01-07","2017-01-08","2017-01-09","2017-01-10"],[325,357,589,479,403,498,564,586,556,660],[0,0,0,0,0,4974,0,0,0,0],[3786,3792,3656,3731,3770,3611,3719,3780,3744,3685],[0,0,4798,0,0,0,0,0,0,4765],[0,0,1203,0,0,0,0,0,0,1236],[7481,7416,7505,7648,7620,7614,7552,7504,7446,7595],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","Monday","Tuesday"],[0,0,4798,2399,1199.5,599.75,299.875,149.9375,74.96875,4802.484375],[3786,4927.8,5134.34,5271.302,5351.3906,5216.41718,5283.925154,5365.1775462,5353.55326386,5291.065979158],[0,0,0,0,0,4974,3730.5,2797.875,2098.40625,1573.8046875],[7481,9660.3,10403.09,10768.927,10850.6781,10869.20343,10812.761029,10747.8283087,10670.34849261,10796.104547783],[0,0,49914025.82,25834655.873,13015388.38095,6518804.7571425,3242476.71357137,1611502.50703571,799942.688555356,51848123.4015943],[0,0,0,0,0,54063417.86082,40337005.0186845,30071080.129204,22390725.9665709,16990959.944041]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Sales<\/th>\n <th>Direct<\/th>\n <th>Display<\/th>\n <th>Email<\/th>\n <th>Email Holdout<\/th>\n <th>Social<\/th>\n <th>Day of Week<\/th>\n <th>Email ad.effect<\/th>\n <th>Display ad.effect<\/th>\n <th>Direct ad.effect<\/th>\n <th>Social ad.effect<\/th>\n <th>Email&Social<\/th>\n <th>Direct&Social<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[1,2,3,4,5,6,8,9,10,11,12,13]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script></p></li>
<li><p>Exploration plots <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAGACAYAAABsocicAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VQNcC+8AAEAASURBVHgB7N0JvFXj/sfxb5pUmkshTUqIKFJRKmNcuYTMLpdrJkOizFPmDJcM1/BHcs0zoVxEIRUiJU0oJE1KpeH8f7+17Dqddp1pn73XXvvzvDqdPa71PO9nn99e61nPUC7PkkgIIIAAAggggAACCCCAAAIIIIAAAggggEAMBTaJYZkoEgIIIIAAAggggAACCCCAAAIIIIAAAgggEAjQAMoHAQEEEEAAAQQQQAABBBBAAAEEEEAAAQRiK0ADaGyrloIhgAACCCCAAAIIIIAAAggggAACCCCAAA2gfAYQQAABBBBAAAEEEEAAAQQQQAABBBBAILYCNIDGtmopGAIIIIAAAggggAACCCCAAAIIIIAAAgjQAMpnAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRiK0ADaGyrloIhgAACCCCAAAIIIIAAAggggAACCCCAAA2gfAYQQAABBBBAAAEEEEAAAQQQQAABBBBAILYCNIDGtmopGAIIIIAAAggggAACCCCAAAIIIIAAAgjQAMpnAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRiK0ADaGyrloIhgAACCCCAAAIIIIAAAggggAACCCCAAA2gfAYQQAABBBBAAAEEEEAAAQQQQAABBBBAILYCNIDGtmopGAIIIIAAAggggAACCCCAAAIIIIAAAgjQAMpnAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRiK0ADaGyrloIhgAACCCCAAAIIIIAAAggggAACCCCAAA2gfAYQQAABBBBAAAEEEEAAAQQQQAABBBBAILYCNIDGtmopGAIIIIAAAggggAACCCCAAAIIIIAAAgjQAMpnAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRiK0ADaGyrloIhgAACCCCAAAIIIIAAAggggAACCCCAAA2gfAYQQAABBBBAAAEEEEAAAQQQQAABBBBAILYCFWJbMgpWYoHly5dryZIla95fvXp1VaxYcc19v5F4TbLn1nlhIXfy8vI0f/58Va5cWdWqVSvk1el7esGCBZoxY4a22GILNWjQoEg7TpVJkXbGixBAIKsEShJTCitgcWLO77//rpUrV6p27dqFbbbYz5ekbFGN/cUuPG9AAIGUCiTiWmKjyY4zE69J9lzifdn4uySxNK4W2Vh/5BmBKAr48d+KFSvWy1q5cuVSekxY8LiuLGOTl+fbb79VlSpV1LhxY1WoUHiTVsH8rQfCAzkjQA/QnKnqohf04YcfVt26ddf8eOOkB5dHH310zUb+85//BM+//vrrax4ryY05c+YE2znttNNK8vaUv+eXX35Rt27dgi+Etm3bqmHDhtp3333166+/FrqvVJkUuiNegAACWSNQmphSWCGLE3MOPvhgbb755oVtsljPl6ZsUYv9xSo4L0YAgTITSOcxaLJCeCPkBRdcoIULFyZ7ukweK00sLc73QJlkno0igECkBf7+97+vOafPf36f6mPCgsd1ZRGbVq9ercsuuyzoNLXjjjtqm222UfPmzfX2228XWgcF81foG3hBbAUKby6PbdEpWGEChx56qNq3b6/ffvtNTz31lP75z38GPTWPPfZYtWvXTv369VPLli0L20xWPd+3b1+9//77uvDCC4MyPvfcc3rppZeC+0888URWlYXMIoBA5gXKMqZkOg6XZdkyX3PkAAEEMimQqWPQ008/Xc8884yuvPLKtBWfWJo2anaEQM4KXHHFFdpss83WlH+TTVLbD85HcnrbwC677LJmH6m+4R2vBg4cqH322UcnnHBCMFrz2muv1VFHHaXZs2cHPUJTvU+2Fz8BGkDjV6cpK9H++++vM888M9je2Wefre23314ePL0BdNWqVVq6dGnw21/w888/6+WXX9YHH3wQ9BY94IADgp6U/tytt94qv2Kzxx576JFHHlHVqlWDANmkSRN/er306quvavjw4fIr4r7PPn36BEM3PcD51Z5Eb9GPP/5YQ4cODYLennvuuWY7fhXotddeCxpsE0HYe6+OHz9evo1atWqteW3BGxMmTNCmm26qc845R82aNdMhhxyiAQMGaOutt17z0mT5S7ZN72r/0EMPacSIEapXr57+9a9/aeeddw62szGvNTviBgIIZL1AUWKKx0e/wPLee++p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41m2bC+VT0l0W69sLwX5RwABBBBAAAEEkgv4iu/3H5P8uSg9Sg/QKNUGeUEAAQQQQAABBBBAAAEEEEAAAQQQQACBlArQAJpSTjaGAAIIIIAAAggggAACCCCAAAIIIIAAAlESoAE0SrVBXhBAAAEEEEAAAQQQQAABBBBAAAEEEEAgpQI0gKaUk40hgAACCCCAAAIIIIAAAggggAACCCCAQJQEaACNUm2QFwQQQAABBBBAAAEEEEAAAQQQQAABBBBIqQANoCnlZGMIIIAAAggggAACCCCAAAIIIIAAAgggECUBGkCjVBvkBQEEEEAAAQQQQAABBBBAAAEEEEAAAQRSKkADaEo52RgCCCCAAAIIIIAAAggggAACCCCAAAIIREmABtAo1QZ5QQABBBBAAAEEEEAAAQQQQAABBBBAAIGUCtAAmlJONoYAAggggAACCCCAAAIIIIAAAggggAACURKgATRKtUFeEEAAAQQQQAABBBBAAAEEEEAAAQQQQCClAjSAppSTjSGAAAIIIIAAAggggAACCCCAAAIIIIBAlARoAI1SbZAXBBBAAAEEEEAAAQQQQAABBBBAAAEEEEipAA2gKeVkYwgggAACCCCAAAIIIIAAAggggAACCCAQJQEaQKNUG+QFAQQQQAABBBBAAAEEEEAAAQQQQAABBFIqQANoSjnZGAIIIIAAAggggAACCCCAAAIIIIAAAghESYAG0CjVBnlBAAEEEEAAAQQQQAABBBBAAAEEEEAAgZQK0ACaUk42hgACCCCAAAIIIIAAAggggAACCCCAAAJREqABNEq1QV4QQAABBBBAAAEEEEAAAQQQQAABBBBAIKUCNICmlJONIYAAAggggAACCCCAAAIIIIAAAggggECUBCpkKjOLFy/W2LFjNWfOHNWsWVPNmjVTy5YtM5Ud9osAAghkjQDxM2uqiowigEDEBIifEasQsoMAAlkjQPzMmqoiowggsAGBjDSADh06VJdddpnatm2runXratmyZZo2bVrQEDpkyBDVqVNnA9nlYQQQQCC3BYifuV3/lB4BBEouQPwsuR3vRACB3BYgfuZ2/VN6BOIikPYG0NWrV6t///767LPPVL9+/XUcBw4cqCeeeEJ9+vRZ53HuIIAAAghIxE8+BQgggEDJBIifJXPjXQgggADxk88AAgjERSDtc4CuWrUq6PVZq1at9Qwb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" /><!-- --></p></li>
</ul>
<p><img src="data:image/png;base64,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x4+3rydOnCgVKmT293ut/9/+9jdb37///e9y3nnnhdqSiif5+fly+eWXFzl0dna21KpVSzp06CB//etfpXr16kXyJLphyZIlUrt2bcnJyUn0reRHAIE0CRCApgmaYhDIZIEffvhBPvnkE19VvOaaa3zlK6uZpk2bZgO3ww8/XF5++eVQM7///vuQoeM4oe2Z+mTLli2h+v7hD39IeTV37doVKi9aYa+//rr85z//kaeeekrOOuusaFnibvv111/lgQcekIcffli+/fZbAtC4YmRAoPQECEBLz56SEcgYAR3RDB+xmz59usycOdPW74ILLpAmTZqE6tqyZcvQ8/L45OSTT7bN1gA0PB177LGyceNGuykrKyt8F88jBPQzpEHmnj17RIPGL7/8UhYtWiTLli2TSy+9VBYuXCiNGzeOeFf8l//617/k/vvvj5+RHAggUOoCBKCl3gVUAIHSF9BTo+GnR++6665QAKqnaU8//fS4lVy5cmWRoGHv3r2ydu1a+eWXX+Sggw6SQw45JO5xdPRw+fLl0qBBA9HTs15JR/DWrFljj1u3bt1CAXT4exKtg+ZfsWKFDborVqwYfqiYz9XJPaXtlVFPQ2ugX6dOHa8sRbarnQZp6uGV/Fp4vd/drqOUavq73/1OUhlEH3fccXa00y1XzfUzN3ToUNvWm266SV577TV3d+hx69atsnr1aqlcubLUr19fqlWrFtrn94l+vjTQrVevXlJO9/stl3wIIFBYILMvUipcV14hgECGCOiI1YEHHmj/ffDBB9K6dWsbsGng4o4C3nvvvaKBYaNGjeSII46wAUOzZs1k8uTJoVYsXrw4dJz3339f9PrSgw8+WJo2bSo1atSQK6+80gYkoTeYJxqYtGjRwl43qKOQGtQ2bNhQHnvssfBs9rmfOrhvWrp0qeTm5soBBxwgWk+tx+9//3t5++23bZZvvvnG1tXNr6eM1UBPG2v6y1/+EmqLBlRu2rFjhw1M1UCDHjXR0b1///vfoteShqc//elP9hg6yqqjgCeccIINsLV9avLxxx+HZ0/IotAbI15ogNunTx+pWbOmLUevn9T6uZcS6Olst79vuOGGQu/W92pArfvDv8QUyhTnhQb6Q4YMEXd0/Y033pCdO3eG3qUWnTt3tvXTz1rz5s1t//fr1y+UT0dOw0c/9frc8KBdg+sbb7zRnpbX/tXPV7t27ezoa6ggniCAQPoEzC8YEgIIIFBI4M4779SLGO0/M6Gm0D598cUXX4T2mwAw9NxMJLF533vvvdA2M6nEMQFN6LUZvXJMQGHz/fzzz6HtrVq1ss9N4OeYUcLQ9ltuucXm1f+0LmZkLpTPBGqOmcBiX+t2E9yG8vqtg77BBJ+OCb5CZVatWjX0XI87ZswY5+uvvw5tc2300QRqtkwTDIX2m1PLdpsJPp3u3buHtoe/T5+biT82n/tf7969bV41MCPGjlqF26mlGUW12ROxcI8f/hjeh1WqVLHlhhto/e65557QW9q2bWvzmCDacdunO00gHmqfCRxD+SOfmFHlUL7LLrsscrd93bNnz1Ce+fPn220mmHc6duwY2m6C8UKfDxM423znnHNOKI/rrO1xkxnFD+03wWfoGJUqVXImTJjgZuMRAQTSJMAIqPlNRUIAgeIL6Cn24cOH21n0OuKoSUcHdRTtzDPPlM2bN8v69etFZ9prKigokKlTp9rn4f/paKiOpq5bt07mzp0bOr06bty4UDYdGTO/G+2Ip5Zrgih7yrhr165y9tlny4IFC0J5E6mDnvLVU906EqeTYHQUd968eXaUTMu744475Oijj5affvopdHy9NlZf6yitVxo0aJDojHhNOsKoE5U+//xzOe200+w2HfX93//+Z5+H/6en6nX0Ux/1X9++fe3u7du3y5QpU+zzRCzCjx3tuY7E6siyttsEY6Frfh988EHbH/oet53aP59++mnoMKNHj7bPdSa7mpQkhV9rrNeEatI+1lPvetpdR8/z8vJk06ZN9jIB3e9OnnvmmWfk+uuv10026Wjx7Nmz7XO1mjRpkn0+cOBAexpf+05HSfU61Ntuu23/m/gfAQTSJsA1oGmjpiAEyqbAueeeK5GnZV966SXbWA02NXBYtWqVDTxdAQ1KI5Oe7jajWHbzUUcdJXqdoAaqGoC5yV1WR493/PHH24BHr0/VIC/yek2/ddDgSwNBTdqWP//5z/a5Bpxm5NNeC6mBihkVDZ0i1gx6Ctc9ZWzfEOU/97h6ivq5554L1VGDJb2MQNOzzz4reuo9MmlQ77bXjIzKiy++aLO4Hu4+PxaRx458raf83dPnZ5xxhmjgrIGanl6fMWOGdenVq5fcfPPNth81oFN3DYj1S4MmM6opZiQ18tAJvVZjN7mfkVNPPdV+sXA/S7t377Yz3PVSBr1W2M2nlymEX1urlyzoqXpNb731ln3Uz8jtt99uL7PQfVdffbX97OrlFfrlQC+TICGAQHoEGAFNjzOlIFBmBTQQjJbMKXDRJZv0ulC9DlRHGd2ko4qRSQOG8KTXI2rSa/fcpMGhXpupSYMGvWZUrw3Uayt19MsNztz8fuqgE47c6w3NZQDuW+2jBmPmFLo9fqEdPl7oWpQaIGnSwDY8QNbgRwNcTboeZzwP10Lzux6JWuh7vZKOVIenNm3ahF7qyLQmDfjOP/98+1wDOh05/PDDD20Qqht1hLekSSeyuckN0PW1jnrqNam6WoNaaJ/PmjXLZo1m5x7DfXRHrnUCWLdu3US/4Og/DfLdpJ8DEgIIpE+AADR91pSEQJkU0FOvkenaa6+1o5M6uqcjoDpC+vjjj4eyhS/55G4MH/3SbeEBm5tHRxx1eSgdiQsPWPXUsU4G0oBRAyNNfusQPhHIDe7c8kryGD5D21xnWORQ7ixz9zE8g24LH00sqUX4saM9j7QP7x/tPze5p+H1kgo99e2eftdg0V2eys1bnEf3tLu+1x1d1gC9ffv2cuutt8pXX31lR14feeQR29eaL7yu+jpa0olgmtTRnUylj/rFRS910H/hE8eiHYNtCCCQXIGivxWTe3yOhgACZVwgcqkkHa164oknbKv11LKebtY0Z84c+6j/RQsaogVioTeEPdFZ6jrjXO88pKOMes2iBiS6mL5eO6qnUvX6U791OPTQQ22wp8GnmfgSVpLYMnSk9cgjjxS9W5AGLW6KN/KmywRpkKyz63UkVgNdt926DJBeY6pJj+237W7Z7qMfC3ek1X1PtEdtY3gKd3BPY+t+vc5W26VLNeklAe4lBldccUX424v1XE/1u9e3mklHoVFnvXZYr/fVgFzr5Y6MutehuqaRhYb3j85618+FfjnROutoria97lcD7PAvC5HH4TUCCKRGgBHQ1LhyVATKjUDk6NyPP/4Yanv4NXnhk222bdsWypPIE70uVIMHfdT1IDWwGDBggD3F7R5H1xtNpA4awLh33tFJLroWpV5XqCOtuqyPXu+o15O6wac7IqjXXuqpe3fZKbf88Ee9flGTXhqgI7IaeOrEGL3lpJv0OsTiJL8Wfo6tbXSvk9TJOrqguyYd3dZg0E06kusGm6+88oq4/ajXqCaS9EvKO++8Y5e4euGFF+wkIL0MQING7Q/3y4Me0+1L/Zxp32rSkVJ38pFep+omt2/0tZ7O10BZ04UXXmgfNQAdNmyYvYxBvxDodu1XvYmABqMkBBBIo4D5gSchgAAChQQSWYbJzBov9F4TkDlmgoxd8saM7DkmCHPMKGPotfn15phT8vY94cswmXUgCx1HlyjSvLrMkptMIBhahsmMvDqnnHKKY4JQm0/zXnTRRTZrInXQN2g9dIkjPYb+M8FO6Lm2wQRobhUcs/ZooX1mhrzd1y/KMkxmtrZjTu+G8ocfV8vRpYPCk7sMk5YZnkwwHDqGuW7R7vJrEX6c8OfhyzC5/eP2m+tgAtHwt9jnZqWBUF00ny6F5SeFL8PkHj/y0QSfjlmQvtDh9LWbT5eA0uWUTKAZ+hzoPnXWZGbyh/KqoR7PTFpyzOi2Y4LM0D5d5ip8+bDnn3/evp//EEAgfQKMgJrfXiQEEEiegI5S6Yiazko2v8rks88+s9fXvfvuu6Hlh8KXVkqkZB1p0+WVdLayzobWJY30NLxew6iLjI8cOdIeLtE66GldPQ2tk1tM4BK6HlBPz48aNUp69OgRqqZZG7PQKVudCe6VdARRlwPSayd18Xn3OkOtn460jh071uutcbf7tYh7IJNB3XRk071WUk/t66QfnQ0fmdRer5l0U0knH+kIpE560oXkddRZF6QPTzpr3awPaje5S0DpjHsdQXWT+3nSSVLuqLN+9rQdGzZssHfU0uWcdDkrXb1AR6T1n1m31l5mYb48uIfiEQEE0iRgv2anqSyKQQCBciSgpzt1BrVeu6eBXLKTBiN6GlyDPA3uok30KU4d9JSuGRG1s+31TjoakEYmDdQ0j7YrfIZ6ZL7I13o9qJ5i1pUBkpn8WPgpT4NpvUxAVwOIvLQi/P16ylqv6dW+1dPc2gepTnqpg55WP+ywwwp9AYhWrq4+oF9Q9ItFZP9pYKqn8LXO7rWg0Y7BNgQQSK0AAWhqfTk6AgggUCYE9JpbDc7/+9//2tFRbZSOTOoIMQkBBBBIVIAANFEx8iOAAALlUOCPf/yjvVuS23Qd/dS1OMPXDHX38YgAAgjEE+Aa0HhC7EcAAQQQsNfd6ixzXXZLbz6gyxkRfPLBQACB4gowAlpcOd6HAAIIlDMBvX5SU+R1leWMgeYigEASBFiIPgmIHAIBBBAoDwIEnuWhl2kjAukR4BR8epwpBQEEEEAAAQQQQOA3AQJQPgoIIIAAAggggAACaRUgAE0rN4UhgAACCCCAAAIIEIDyGUAAAQQQQAABBBBIqwABaFq5KQwBBBBAAAEEEECAAJTPAAIIIIAAAggggEBaBQhA08pNYQgggAACCCCAAAIEoHwGEEAAAQQQQAABBNIqQACaVm4KQwABBBBAAAEEECAA5TOAAAIIIIAAAgggkFYBAtC0clMYAggggAACCCCAAAEonwEEEEAAAQQQQACBtAoQgKaVm8IQQAABBBBAAAEECED5DCCAAAIIIIAAAgikVYAANK3cFIYAAggggAACCCBAAMpnAAEEEEAAAQQQQCCtAgSgaeWmMAQQQAABBBBAAAECUD4DCCCAAAIIIIAAAmkVIABNKzeFIYAAAggggAACCBCA8hlAAAEEEEAAAQQQSKsAAWhauSkMAQQQQAABBBBAgACUzwACCCCAAAIIIIBAWgUIQNPKTWEIIIAAAggggAACBKB8BhBAAAEEEEAAAQTSKhD4ANRxHMnPz5eNGzemFY7CEEAAAQQQQAABBIonEMgANC8vTwYPHixNmzaV7OxsqVevntSpU0dycnKkbdu2MmjQINm2bVvxRHgXAggggAACCCCAQEoFsswIopPSEpJ88GXLlknnzp0lKytLevToIc2bN5fatWvb1zoKumTJEhk9erRosyZNmiQtWrRIcg04HAIIIIAAAggggEBJBAIXgF533XUyd+5cmThxolSpUiVq2wsKCiQ3N1dOPvlkGTJkSNQ8bEQAAQQQQAABBBAoHYHAnYKfM2eO9OnTxzP4VMbKlStLv379ZPz48aWjSqkIIIAAAggggAACngKBC0A7deokU6dO9WyQu2Py5MnSqFEj9yWPCCCAAAIIIIAAAhkiUClD6uG7Gj179hQNQteuXSu9evWy13jqBKQKFSrYmfBLly6VUaNGybhx4+xpet8HJiMCCCCAAAIIIIBAWgQCdw2oqvz8888yYMAA+fTTT2Xfvn1FoLp37y633367dOvWrcg+NiCAAAIIIIAAAgiUrkAgA1CXbPfu3bJ8+XLRUU+deNSwYUNp3LixXZLJzcMjAggggAACCCCAQGYJBDoAVUpdbmn9+vVSsWJFuxxTZvFSGwQQQAABBBBAAIFIgcBNQtIGsBB9ZDfyGgEEEEAAAQQQCI5A4EZAWYg+OB8uaooAAggggAACCEQTCFwAmuqF6GfOnCmvv/56NKtC22bNmiX33XefnHTSSYW28wIBBBBAAAEEEEAgtkDglmHShej79u3rayH6ESNGJHwnpKpVq8ohhxwSW83s1Zn4GzZsiJuPDAgggAACCCCAAAKFBQIXgLoL0ffv379wSyJeFXch+qOOOkr0X7w0ZswYqVu3brxs7EcAAQQQQAABBBCIEAhcAMpC9BE9yEsEEEAAAQQQQCBgAoELQNu1ayfz5s2zC9HrqXivhegnTJggXbp0CVh3UF0EEEAAAQQQQKDsCwQuANUuadmypUyaNElYiL7sf0BpIQIIIIAAAgiUPYHABaArV660i843aNBAsrOzbTCqASkJAQQQQAABBBBAIBgCgVuI/rbbbpPmzZvL8OHD7V2QgsFMLRFAAAEEEEAAAQRcgcAFoFrxAw44QG655RY588wz7V2R3MbwiAACCCCAAAIIIJD5AoEMQDt27CgzZsyQ/Px8adWqleiSTLo+KAkBBBBAAAEEEEAg8wUCGYAqa9u2bW0QqiOhuibnscceKyeffLI8//zz8t1339kJSpnPTw0RQAABBBBAAIHyJxDYAFS7qnLlynL33XfLqlWr5OWXX7avr7rqKjn66KPtafrrr7++/PUoLUYAAQQQQAABBDJcIHCz4KN56u0ze/XqZf/pLPlvv/1WFixYIDk5OdGysw0BBBBAAAEEEECgFAXKRAAa7te4cWPRf7m5ueGbeY4AAggggAACCCCQIQKBC0DvuOMOKSgoyBA+qoEAAggggAACCCCQqEDgAtDWrVsn2kbyI4AAAggggAACCGSQQKAnIWWQI1UpRYGFa0SOulfk+S9LsRIUjQACCCCAAAK+BQhAfVORMVMFvjcB6OYdIt8sz9QaUi8EEEAAAQQQCBcgAA3X4DkCCCCAAAIIIIBAygUIQFNOTAEIIIAAAggggAAC4QIEoOEaPEcAAQQQQAABBBBIuQABaMqJKQABBBBAAAEEEEAgXIAANFyD5wgggAACCCCAAAIpFyAATTkxBSCAAAIIIIAAAgiECxCAhmvwHAEEEEAAAQQQQCDlAgSgKSemAAQQQAABBBBAAIFwAQLQcA2eI4AAAggggAACCKRcgAA05cQUgAACCCCAAAIIIBAuEPgA1HEcyc/Pl40bN4a3i+cIIIAAAggggAACGSoQyAA0Ly9PBg8eLE2bNpXs7GypV6+e1KlTR3JycqRt27YyaNAg2bZtW4aSUy0EEEAAAQQQQKB8C1QKWvOXLVsmnTt3lqysLOnRo4c0b95cateubV/rKOiSJUtk9OjRMmbMGJk0aZK0aNEiaE2kvggggAACCCCAQJkWCFwAOmzYMDvyOXHiRKlSpUrUzhk6dKjk5ubKyJEjZciQIVHzsBEBBBBAAAEEEECgdAQCdwp+zpw50qdPH8/gUxkrV64s/fr1k/Hjx5eOKqUigAACCCCAAAIIeAoELgDt1KmTTJ061bNB7o7JkydLo0aN3Jc8IoAAAggggAACCGSIQOBOwffs2VM0CF27dq306tXLXuOpE5AqVKhgZ8IvXbpURo0aJePGjRM9TU9CAAEEEEAAAQQQyCyBwAWg7dq1k3nz5smAAQOkb9++sm/fviKi3bt3lwkTJkiXLl2K7GMDAggggAACCCCAQOkKBC4AVa6WLVvaGe67d++W5cuXi456FhQUSMOGDaVx48Z2SabSZaV0BBBAAAEEEEAAAS+BQAagbmN0DVBdZknX/6xYsaJdjsndxyMCCCCAAAIIIIBAZgoEbhKSMrIQfWZ+mKgVAggggAACCCDgRyBwI6AsRO+nW8mDAAIIIIAAAghkrkDgAtBUL0S/cOFC0SWc4qU1a9Zw//l4SOxHAAEEEEAAAQSiCAQuANWF6HX2u9ddkLSN7kL0I0aMSPhOSJs3b5b58+dHoSq8aceOHbJr167CG3mFAAIIIIAAAgggEFcgcAGouxB9//79YzauuAvRn3jiiaL/4qVZs2ZJgwYN4mVjPwIIIIAAAggggECEQOACUBaij+hBXiKAAAIIIIAAAgETCFwAykL0sT9hb84SaV5XpP3vYudjLwIIIIAAAgggUFoCgQtAFYqF6KN/XPI2i9w4WqT1ISKTboieJ9O2Lt0gkpUlcmjtTKsZ9UEAAQQQQACBVAkEMgB1MXQheg1G9Z+mdevWxZyc5L6vrD7u2rO/Zbt/ewxCO899XKSCWY322zuCUFvqiAACCCCAAALJEAjkQvRff/21nHfeebJ161Zr8N5770nTpk3lkEMOkVq1akn79u3l888/T4YPx0ihgOOIbNkpsml7Cgvh0AgggAACCCCQcQKBC0CnT59uZ6nv3bvXYn711Vdy8cUX2/u/6xqhjzzyiBx44IFy5plnEoRm3MeNCiGAAAIIIIAAAiKBOwX/6quv2tHPsWPH2v57+umnpX79+qKBaaVK+5tz/fXXS/fu3eWFF16QU045hX5GoEwKLFgt8vQXIjefIdKoVplsIo1CAAEEECijAoEbAZ05c6acffbZoe7QheMvvPDCUPDp7tDlmnTRehICZVVg9GwR/Td+QVltIe1CYP9n/Ns8JBBAoKwJBC4APeaYY+TNN9+UnTvNxYMmde3aVXQ01D0lr9scc3Hhhx9+KEcccYS+JCFQJgX27dvfrL2/PZbJRtKoci2weL3IwDdFbn2nXDPQeATKpEDgTsEPHjzYTjI64YQT5LbbbhO9M9Lhhx8uXbp0kSuvvFJq1Kgho0aNko8++kimTp1aJjuNRiGAAALlQcBd2cN9LA9tpo0IlBeBwAWghx56qHz22Wdy3333Se/evQuNfLoB57HHHmtHRXU2PAkBBBBAAAEEEEAgswQCF4AqX5s2beSVV16RESNGyJIlSyQvL0+2bNkiDRs2lCZNmkjr1q0zS7mc1ua7VSKL8kUubFtOAWg2AggggAACCEQVCGQA6rakTp06dvmlDh06uJt4zCCBm94S0SC0XRPudJRB3RL4qmw1l3/rXb8Orx/4ptAABBBAoNwKBG4SUrntqQA23L1ua1dBACtPlTNWYKC53Wz3x0R+XpexVaRiCCCAAAJxBAhA4wCxu/QF9DT+5h2lXw9qkBkCG3/dX4+N3EErMzqEWiCAAALFECAALQYab0mfwKotIt2Giwx4JX1lUhICCCCAAAIIpFaAADS1vhy9hAJbzMjnPnPP+A3bSngg3o4AAggggAACGSNAAJoxXUFFEEAAAQQQQACB8iFAAFo++plWIoAAAggggAACGSNAAJoxXUFFEEAAAQQQQACB8iFAAFo++plWIoAAAggggAACGSNAAJoxXUFFUinwi1m8/LWZItt3p7IUjo0AAggggAACfgQIQP0okSfwAs9PE9E7M70yI/BNoQEIIIAAAggEXoAANPBdSAP8COz47W5M7qOf95AHAQQQQAABBFIjQACaGleOigACCCCAAAIIIOAhEPgA1HEcyc/Pl40bN3o0kc0IIIAAAggggAACmSQQyAA0Ly9PBg8eLE2bNpXs7GypV6+e1KlTR3JycqRt27YyaNAg2baNW+dk0geNuiCAAAIIIIAAAq5AJfdJUB6XLVsmnTt3lqysLOnRo4c0b95cateubV/rKOiSJUtk9OjRMmbMGJk0aZK0aNEiKE2jnggggAACCCCAQLkQCFwAOmzYMDvyOXHiRKlSpUrUTho6dKjk5ubKyJEjZciQIVHzsBEBBBBAAAEEEECgdAQCdwp+zpw50qdPH8/gUxkrV64s/fr1k/Hjx5eOKqUigAACZVhg3VaRsfNE9u0rw42kaQggkFKBwAWgnTp1kqlTp8ZFmTx5sjRq1ChuPjIggAACCCQm8M+PRP76msjkHxN7H7kRQAABVyBwp+B79uwpGoSuXbtWevXqZa/x1AlIFSpUsDPhly5dKqNGjZJx48aJnqYnIYAAAggkV2C7u64udxZLLixHQ6AcCQQuAG3Xrp3MmzdPBgwYIH379jWngIqeA+revbtMmDBBunTpUo66kqYiUFRgxtL9o1Q3niaSHbif9qLtYQsCCCCAQNkQCOSfpJYtW9oZ7rt375bly5eLjnoWFBRIw4YNpXHjxnZJprLRPbQCgZIJPPqJyKc/iZzSUqRT85Idi3cjgAACCCCQLIFABqBu43UNUF1mSdf/rFixol2Oyd3HIwIIiOz57QTB3qInCuAJmMDo2SK7zKnvXh0DVnGqiwACCEQRCNwkJG0DC9FH6Uk2IYBAmRa47R2Rwebfnr1lupk0DgEEyolA4EZAWYi+nHwyaSYCCBQScEex9zoigfvFXaglvEAAAQQC+Hss1QvRr1y50k5yivfh2LRpk2zdahbDIyGAAAIIIIAAAggkJBC4L9K6EL3Ofve6C5K23l2IfsSIEQnfCWnhwoXy+OOPx0XUZaD01p/lNT07TUQnuIzpL3JYvfKqQLsRQMBLYIqZ/LZgtcg1p3rlYDsCCJRngcAFoO5C9P37m8gnRiruQvS6hJP+i5dOOukkOfTQQ+NlK7P7ZywT2firyMI1BKBltpNpGAIlELjvQ5Hvze+Hs9qINK9bggPxVgQQKJMCgQtAWYi+TH4OaRQCCJQxAXcFBiZNlbGOpTkIJEkgcAEoC9Enqec5DAIIIIAAAgggUEoCgQtA1YmF6Evp00KxCCCAAAIIIIBAEgQCGYC67daF6DUY1X/bt2+X77//3k4MqlWrll2Y3s3HIwIIIIAAAggggEDmCARuIfqHH35Y7rzzzkKCDzzwgL0LUocOHaRVq1bSunVrey/4Qpl4gQACCCBQ5gR27Bb59ySRH9eWuabRIATKtEDgAtB58+bJN998E+qU559/Xm6//Xbp3LmzPPvss/LII4/Ye8FfdNFFoks2kYoKTP5h/wz2onvYggACCARLYJL5faYB6BOfBave1BaB8i4Q6FPw2nnPPPOMnHjiiTJx4sRQXw4cOFCOO+44GT58uLzwwguh7TwR+eJnkT4vivz+WJHhPRBBAAEEgi1Q8NutSd1Z98FuDbVHoPwIBG4ENLJrNm/eLL17947cLLpO6Ny5c4tsL+8btu7aL7Dtt8fy7kH7y6bAY+YmCXeMLZtto1UIIIBAWRAIZAC6Y8cOKSgosP4XXnih5OXlFekLPU1fty6rHxeBYQMC5UDgqc9FXvhKZOvOctBYmogAAggEUCBwAWhWVpZ8+umnUqNGDenYsaO9HvSxxx6T2bNnW369l/s111wjL730klx22WUB7BKqjAACJRXY5+w/wm8PJT0c70cAAQQQSLJA4ALQp59+2gabTz75pOjtMHft2iWVKlWSRYsWWZoPPvhAdJ+egr/66quTzMXhEEAAAQQQQAABBEoqELhJSLr2p94NSf/169cv1P49e/bY5+eff76ce+650rhx49A+niCAAAIIZJ7AQnOv+ApZIq0Oyby6USMEEEitQOACUC8OHQXV1LBhQ68sbEcAAQQQyCCBi54SqWgC0Pl3ZVClqAoCCKRFwPcpeMf5v6up1q1bJ++++66sXr06LZWkEAQQQACBsiWgf1J0NY4tTBQrWx1LaxDwKeArAH3iiSekTZs29pB6raXeaUgXem/SpImMHz/eZ1FkQwABBBBAAAEEEEDAXH4TD+HHH3+UG264Qbp06SI6Cjps2DA76WfatGly7bXX2sk+8Y7BfgQQQAABBBBAAAEEXIG4Aej06dOlRYsWdma5LoH03nvvySWXXGJnoN96662iyx6tWWOuJCchgAACCCCAAAIIIOBDIG4AumHDBjn44IPtofQ+7KtWrZKzzjrLvnaXQKpevbqPosiCAAIIIIAAAggggICPU/Bt27aVmTNnypQpU+Thhx+WatWqyRlnnCG//PKL3H///XLCCSdIzZo1sUQAAQQQQAABBBBAwJdA3GWYunXrJuedd5507drVHnDEiBH2LkRXXXWVPR2vC8OTEEAAAQQQQCA5ArpCwLTFIsc2EamenZxjchQEMk0gbgCqFX7jjTdkwYIFkpOTE1rgXScgDR8+nNHPTOtR6oMAAgggEGiB8QtE+o8S+XNnkbvOCXRTqDwCngK+AlCdfHTkkUcWOkj79u0LveYFAggggAACCJRcYMuO/cdwH0t+RI6AQOYJ+ApAdcklHe3UGe+7d+8u0gq9RpSEAAIIIIAAAggggIAfgbgB6IoVK+Tss8+2p99POukkTrn7USUPAggggAACCCCAgKdA3AB00qRJUqFCBdElmA466CDPA7EDAQQQQAABBBBAAAE/AnHXAdW7HzVu3Dhjg0+tX35+vmzcuNFPe8mDAAIIIIAAAhkoMGelyN/eEFnzSwZWjiolXSBuAKrLMC1evFjmz5+f9MKLe8C8vDwZPHiwNG3aVLKzs6VevXpSp04de5mArls6aNAg2bZtW3EPz/sQKFcC/xgrcvmzInv3latm01gEEMgwgTe+EXlrjsikhRlWMaqTEoG4p+CrVq0qPXv2tPeCv/zyy+1oaMWKFQtV5pZbbin0OpUvli1bJp07dxadmd+jRw9p3ry51K5d277WUdAlS5bI6NGjZcyYMaKXD+htREkIIOAtMO47kXzzfW3DryL1anjnYw8CCCCQSoF9Zv1TTe7j/lf8X1YF4gagc+fOlTfffNO2/+WXX47qkM4AdNiwYXbkc+LEiVKlSpWo9Rk6dKjk5ubKyJEjZciQIVHzsBGBSIHF60W++FmkV0eRinHPDUS+m9cIIIAAAggg4Fcg7p9Zve/7li1bYv7zW1gy8s2ZM0f69OnjGXxqGZUrV5Z+/frJ+PHjk1EkxygnAg9NELndnI7+YlE5aTDNRAABBBBAoJQE4gag4fXSJZk++eQTWbhwoezbVzoXjHXq1EmmTp0aXq2ozydPniyNGjWKuo+NCEQT2Lln/9bdvz1Gy8M2BBBAAAEEECi5QNxT8FqETkL605/+ZINPt8jq1avLgAED5OGHH7bXX7rbU/2o16NqELp27Vrp1auXvcZTJyDpUlF6DejSpUtl1KhRMm7cONHT9CQEEEAAAQQQQACBzBKIG4DqnY8uuugiO6tcZ56fe+65UqlSJfnss8/kgQcesLPQ//nPf6atVe3atbNrkmrw27dv36gjsd27d5cJEybYiVNpqxgFIYAAAggggAACCPgSiBuA6ijit99+a/8dddRRoYPqXZF0JrqOgKYzANUKtGzZ0s5w1+B4+fLldtSzoKBAGjZsaGfp64goCQEEEEAAAQQQQCAzBeIGoD/++KN06NBBwoNPtyk60UdHRXXpo2bNmrmb0/aoa4DqMks5OTmiS0PpckwkBBBAAAEEEEAAgcwWiDsJSSfy6MxznYAUmd5//30b+NWvXz9yV0pfsxB9Snk5OAIIIIAAAgggkFKBuCOgugyTntK++uqr5aGHHpIjjjhCdu3aJZ9//rldY/Piiy+WatWqpbSS4QdnIfpwjdQ8/2a5yG3vitx3vkjHpqkpg6MigAACCCCAQPkViBuA1qxZU95++23p3bu3HHvssfa6T73/uiad7PPEE0+kVS/VC9HrmqerVq2K26bt27fLzp074+YLYobPzWLsC1aLTPmJADSI/UedEUAAAQQQyHSBuAGoNkAnHOlEpK+//tquAaq352zTpo107GhuGZPmpJcD6Ox3r7sgaXXchehHjBiR8J2QdP3Qf/zjH3Fbpcs9rVy5Mm4+MiCAAAIIIIAAAggUFogagGqgqYFY//79ZfPmzaFbcYa/dc2aNTaPbrv11lvDd6X0ubsQvdYtViruQvR6SYH+i5c0KNfZ+CQEEEAAAQQQQACBxAQ8A9AHH3zQBmI60qfPY6V0BqAsRB+rJ9iHAAIIIIBA2RbYa27EWDHuFOqybVAWWhc1AL3uuutE/2lq3bq1bNq0KWPaykL0GdMVVAQBBBBAAIG0CtwxVmTMbJHJA0Ua5KS1aApLskDUADS8jB07dtjT8A0aNAjfbJ/rPj1d36VLlyL7UrmBhehTqcuxEUAAAQQQyEyB+WaC7NZdIivMuBgBaGb2kd9axR3E1mspzz/frMcTJc2cOVO6du1q78EeZXfKN+lC9BqM6mz83Nxc+1xnp5MQQAABBBBAAAEEMlcg6gioLi/Up08fe//3/Px8+fnnn+Wcc84p1ApdimnhwoWiyzQddNBBhfaV1ou33npLbrzxRlm/fn1pVYFyEUAAAQQQQAABBOIIRA1AdZmls88+W8aOHSuVKlWya3/qaGN40vvAd+7c2S6JpM/Tlf71r3/Ze79HK++HH36QX3/9NXT96nHHHSdXXXVVtKxsQwABBBBAAAEEECglgagBqNZFAzf9p9d4vvzyy/LYY4+VUhULF/vNN9/Ia6+9Zkdd9Tah4UmXjCooKJApU6bYzbHWCg1/H88RQAABBBBAAAEE0icQ9xpQXWz+0UcflVdeeUUWL14cqtlf//pXewo+tCFNT0aNGiVDhw61gaZeJjB37ly7SL4ulK/ba9WqFXr98MMPp6lWFIMAAggggAACCCDgVyBuAKoH0vvB9+vXT3TxeU16/acGfkcddZQMHz7cbkvXfxUqVJDbbrtNPv30U3n22WelW7duoveHJyGAAALlWaBgr8iVI0Ue+6Q8K9B2BBAIikDcAPSnn36yp7S/++470bsQadJrPqdOnSr//ve/7W0rd+/enfb2tm/fXmbNmiVHHnmkHHPMMfLiiy+mvQ4UiAACCGSKwMrNIh8vFHlzVqbUiHoggAAC3gKe14C6b5k0aZJ06NBBWrVq5W4KPfbu3VtuuOEGWb58eanclrJ69eryxBNPyLnnnmuvV61WrVqobjxBAAEEypOAOTFFQgABBAIjEHcE9PDDD7cTkVasWFGkUe+//75UrFhRIicDFcmY4g0agOo1oHp/dr1TEgkBBBBAAAEEEEAgcwXijoCeeOKJUr9+fbniiivkrrvusiOhuk7ojBkz5I477pAePXpIJow81qtXT1599dXMlaZmCCCAAAIIJEngl50iE80lF+ceJVIl7l/yJBXKYRBIokDcEVBdE3TatGn2bkenn366NGnSRA477DDp2bOnnHDCCfYUeBLrw6EQQAABBEpRYNIPIofdLfLRglKsBEXHFXjyc5G/vSEymmt+41qRITMFfH1v0qBz3rx5snLlSpkzZ4497a6n5ps1a5aZrSqjtZqzUqRgj8jxTctoA2lWxgpMMyuw5VQVObJhxlaRiiVJ4Ns8kR0FIvPM41ltknRQDpN0ge3mfuiafk3/HOD9BfM/AiUU8BWAumU0btxY9F942rRpU8bcijO8XmXxee/nRbabXzY/DRGpGHfsuiwKlJ82zTVfNi5/VuSOXJHeHUu33fqZ+4OpS/2aIl8PTm1dfl4n8upMkeu6ihxUPbVlcfTyJbDY3KG5ed3y1WZai0AmC/gKQCdOnCiPP/64vcf63r1msTmT9HH79u3y448/yq5dv30Vy+SWloG6aSCw2/Dv2UcAWga6M2YTvjdL7m4zP1azzdy/0g5Ad5lR931mhrV+/lKdXvhKRP+1OFik5/GpLo3jlxeBF740X+beE3nk9yI9jisvraadCGS2QNxxNJ39fsEFF9jrQCtXrmxPxeukJL3tpa4N+sADD2R2C6kdAggERkC/XGna+9vj/lep+T9/6/4gPzVH56iZJLDml/21cR8zqW7UBYHyKhB3BPSLL76Qffv2yaJFi+yo58EHHywjR46UAw44QK655ppCt+csr4i0G4FEBHaYkcRrXxc5rXXpj24mUu+ylPdXM7p8srlT7+GHiIy9piy1jLYggAACwRCIOwK6evVqO9v9wAMPlJycHGnQoIFMnz7d3g3p7rvvlmeeecbelz0YzaWWCJS+wA/mOscJ34u8bq51JJWOwBazhI1eUrB6S+mUT6kIIIBAeReIG4DqTPclS5aEnHT2u96GU9NBBx1kH3V2PAkBBPwJuHesMZdVkgIuoNfHvv+tmYnMZfAB70mqjwAC6RaIG4Dq3YX0es9+/fqJznjX13oKXpdleuihh0RPyTdt2jTd9aY8BBBAoNQF3vhG5C/m/hdPf1HqVaECCCCAQKAE4gagOuHo2WeflfHjx8uaNWvsdZ96TWjbtm1lyJAhMmDAAHs6PlCtprIIIIBAEgTcNRh1xQISAggggIB/gbiTkPRQervNCy+80C5Ar/d+nzVrlnz88cfSvn17ad68uf/SyIkAAuVW4JvlIv1GitxznsjF7YLBoLOm6x4gUqliMOpLLRFAAIGgCMQdAXUbokswafCpaffu3ZKdnZ0R94B368cjAghktoDeYWfTdpGZJhANQtK1WI9/UOQfY4NQW+qIAAIIBEvAVwD6xBNPSJs2++/JpssxtW7dWi666CJ7X3g9NU9CAAEEypqAjn7qhLG8zWWtZbQHAQQQKH2BuAGo3unohhtukC5duphfxo4MGzZMKlWqZBemv/baa6V///6l2gqtU35+vmzcuLFU60HhCCCAQDSBLTtEPjbLbplL50kIIIAAAr8JxA1Adc3PFi1ayJNPPmknG7333ntyySWX2Nnwt956q+gSTDo5KZ0pLy9PBg8ebGff66UA9erVkzp16th1SnVy1KBBg2Tbtm3prFKJy/rKrHT15Of7R1xKfDAOgEApCOidhQr236m3FErP3CKHfSxy5UsiH5kglIQAAgggsF8g7iSkDRs22KWWNLsuvbRq1So566yz7Lv1HvA6Glq9evX9R0vD/8uWLZPOnTvbYFgnR+kkqNq1a9vXOgqqa5aOHj1axowZI5MmTbLBcxqqVeIihporGWatEDm1pUibBiU+HAdAIK0CSzaIdH3ETC5qKzK8R1qLzvjC3Bny7mPGV5gKIoAAAmkQiBuA6ojibbfdJlOmTJHnnnvOTjw644wz5JdffpH777/f3iWpZs2aaajq/iL0EgBdd3TixIlSpUqVqOUOHTpUcnNz7XqlulRUEJI7cuTeCzsIdaaOCLgCa8wdhfT+7Su5XtIl4REBBBBAIIZA3FPw3bp1k/POO0+6du1qAzpdfL5GjRoycOBAeeedd+zp7hjHT/quOXPmSJ8+fTyDTy1QZ+zrwvlMkEo6f7k/4DJzqbEuJ0RCIJkCq0wA/+XiZB6RYyGAAAKZLRA3ANXqv/HGG/Ldd9/JihUr5LrrrrMt0glIOiP+4osvTmsLO3XqFLoVaKyCJ0+eLI0aNYqVhX0IJCzQ/2WRi54S2RDjEuPRs0U+nJ/woXlDORYY+KZZb/l/IovXl2MEmo4AAuVKIO4peNXIysqSI488shCMLkJfGqlnz56iQejatWulV69e9hpPnYBUoUIFOxN+6dKlMmrUKBk3bpw9TV8adaTMsiuw1dzxRpfm0Tvg1InSzN3m3uAaTNQwV4fkFv6RiZKbTQjsF9i6c/8j14nyiUAAgfIi4CsAnTZtmgwfPtzOeNdF6CPTzJkzIzel7HW7du3sZCi9BWjfvn3N0iZF1zbp3r27TJgwwS4dlbKKcGAEogjodZCaCop+LPfv4H8EEEAAAQQQkLgBqJ52P/vss+0SRyeddJKkc8KRV/+0bNnSznDXYFhnxc+dO9cGorpAfuPGje2STF7vZTsCCCBQXgX0TlS3viNymTmBdXrr8qpAuxFAIBME4gagupSRnt7WJZgOOuigTKiz6Dqgjz32mLz++uv2+Z495rynSRoc6wx5HQHV2e8HHnhgRtSXSiCAAAKZIPD1UpEPvjOL4pvLSAhAM6FHqAMC5VcgbgCqdxrSUcVMCT7L6jqg5fcjSMsRQCBdAhp4atLrmEkIIIBAaQrEDUB1GSad8T5//vwiE5FKo+KpXgd07969Eu0618i26rWnGpyTEEAAAQQQQAABBBITiBuAVq1aVXTmud4L/vLLL7ejoRUrVixUyi233FLodSpf6DqgOvnIaxF6LdtdB3TEiBH2VHwi9XnllVdEJzjFSzt37pQFCxbYW5LGy8t+BBBAAAEEEEAAgf8TiBuA6gSfN98068qY9PLLL//fO8OepTMAddcB7d+/f1gNij4t7jqgV1xxhei/eEknZEUuTRXvPexHAAEEEEAAAQQQkPiz4PW+71u2mNt0ZEhiHdAM6QiqgQACCCCAAAIIFFMg7ghovONu2rQprROUWAc0Xo+wHwEEEEAAAQQQyGwBXwHoxIkT5fHHH5f169eLTtLRpI/bt2+XH3/8UXbtMreHSWMKXwd0+fLlonc/KigokIYNG7IOaBr7gaIQQAABBBBAAIHiCMQNQHUh+gsuuEBq1Khhr3mcPXu2nHnmmXZWvAafDz/8cHHKTcp7srOzRYNR/adJg+I1a9Yk5dgcBAEEEEAAAQQQQCA1AhXiHfaLL76wdxlatGiRvP3223aJopEjR8rChQvtbPHFixfHO0TS92uQ6c5w13pouvvuu6V+/fp2BFRHQt99992kl8sBEUAAAQQQQAABBEouEDcAXb16tZxwwgn2rkI5OTnSoEEDmT59umRlZdmg75lnnrGnv0teFX9H0ODz5JNPlr///e/y0EMPic6K1zroc50wpfesb9SokVx66aWSznvU+6s9uRBAAAEEEEAAAQTiBqDNmjWTJUuWhKQOP/xwmTp1qn3t3h1p5cqVof2pfqKn/PWWm3pHJL3+Mzc3V/785z+LLgWly0TdcMMNMmPGDDn++ONFF60nIYAAAggggAACCGSWQNwAVNe73Lx5s/Tr1090xru+1lPwem94HXU8+OCD7f3X09Wsr7/+2tZFT7PXqVNHbr/9dlu0LpIfnnSx+u+//z58E88RQAABBBBAAAEEMkAgbgCq11U+++yzMn78eDvB55prrrHXhLZt29beZUjvGqSn49OVtFxdHN9Nuhi8jnTq5QHhSSdL1atXL3wTzxFAAAEEEEAAAQQyQCDuLHgd/dyzZ4/89NNPUr16ddHbcM6aNUs+/vhjad++vTRv3jytzdCRTr0/vd6H/Z577pEmTZrITTfdFKqDXg7w4IMPygsvvCD//e9/Q9t5ggACCCCAAAIIIJAZAnFHQD/44AN7L3i9G5J7D/hatWpJjx490h58KplOQHrjjTdET8VrUByZRo0aZdcsvf766+XKK6+M3M1rBBBAAAEEEEAAgVIWiDsCWrduXVtFDUAbN25cytXdX/xFF10k559/fmhR/PBK9e7dW/T6T710gIQAAggggAACCCCQeQJxA1C99aXef/3UU0+Viy++WFq0aCFVqlQp1BJdEindSUdj3RHZ8LJ1CSYSAggggAACCCCAQOYKxA1AdTLPO++8Y1vw6quvRm1JaQSgUSvCRgQQQAABBBAICewsEKlaOfSSJwhkjEDcAPTss8+WX3/9NWMqTEUQQAABBBBAIL7A3e+LjPpaZOINIk3rxM9fVnK8+JXI+m0ig7qXlRaVzXZEnYSkdxB68skny2aLaRUCCCCAAALlQOCHtSI794is2FQOGhvWxGEfizwyWWTbrrCNPM04gagB6JQpU+wSRxlXWyqEAAIIIIAAAgjEENi7b//OfU6MTOwqdYGoAWip14oKIIAAAggggAACCJRZAQLQMtu1NAwBBBBAAAEEEMhMAc9JSHrf98suu8xXrXVheBICCCCAAAIIBEtgyAcii9eLPH+FSIUUDkktXCNyw5sig88UOa11sIyobWoEPAPQgoKCQvdcT03xHBUBBBBAAAEESkvg3Xki67aaWeNmsZt6NVJXi6+WiMxfLTL5BwLQ1CkH68ieAWi9evXkhx/MJ4WEAAIIIIAAAkkTeHuOyJENRFodkrRDFvtATpon6qS5uGK78MbUC6RwwD31lacEBBBAAAEE0iWwabvI0g0lK+17cyr6enPV2u1jS3acdL5bl3HSdTVJCCRTgAA0mZocCwEEEECgzAr0eUGk23ARDUSLm/TORJrcx/2vMvd/redpps2/fyZz65jJNVv7i8irM0R2m/VYSYUFogagRx55pFx++eWFc/IKAQQQQACBciyg10kW7BXZurP8IOwwAaj+YwS0eH2uC+Lf/LbIRwuK9/6y/K6o14Dq7Tf1HwkBBBBAAAEEEECgeALuSLfekYpUWCDqCGjhLJn9yjFXUOfn58vGjRszu6LUDgEEEEAAAQQQQMAKBDIAzcvLk8GDB0vTpk0lOztbdMZ+nTp1JCcnR9q2bSuDBg2Sbdu4YprPOAIIIIAAAgggkIkCUU/BZ2JF3TotW7ZMOnfuLFlZWdKjRw9p3ry51K5d277WUdAlS5bI6NGjZcyYMTJp0iRp0aKF+1YeEUAAAQQQSKnA6i0ilSuK1D0wpcVw8BQL6HWvD00QOauNyInNohe2xkwwGvGpyNWdRJrXjZ6Hrd4CgQtAhw0bZkc+J06cKFWqVInasqFDh0pubq6MHDlShgwZEjUPGxFAAAEEEHAFxswWecXMVn7yjyIHF3NB9r37RE5/VKRWNZFpN7tH5jGIAjOWijwzdf9dorwC0LFmEf8XvxI5INssq8W0mYS7OXCn4OfMmSN9+vTxDD5VoHLlytKvXz8ZP358wiC8AQEEEECg/Am8/63I9KUic/OK33ZdaucXM0N+HVeAFR8xQ96597cV8/VLhVfa5yOP13vZbm79GjSETp06ydSp5mtJnDR58mRp1KhRnFzsRgABBBBAQMS9Q0+67wyEPQLlVSBwp+B79uwpGoSuXbtWevXqZa/x1AlIFSpUsDPhly5dKqNGjZJx48aJnqYnIYAAAggggAACCGSWQOAC0Hbt2sm8efNkwIAB0rdvX9m3r+j4ePfu3WXChAnSpUuXzNKmNggggAACCCCAAAISuABU+6xly5Z2hvvu3btl+fLloqOeBQUF0rBhQ2ncuLFdkom+RQABBBBAAAEEogk8PkXk0Noi5x0dbS/b0iEQyADUhdE1QHWZJV3/s2LFinY5JncfjwgggAACCCCAQKTAuq0iD3wk0qhWZgSgi9eLLMoXOeOIyJqW7deBm4Sk3cFC9GX7Q0kvzlCSAAAsoUlEQVTrEEAAAQQQSJXAnt+u3ItyBV+qiox53JvfErnyJZGf18XMVuZ2Bm4ElIXoy9xnkAYhgAACCCBQbgW2797f9O1m8fvylAIXgKZ6IfrXXntNBg4cGPczoHddWrhwoZx44olx85IBAQQQQACBsiqgdwQ6a4TIHzqI3HZWWW0l7Uq2QOACUF2IXme/e90FSYHchehHjBiR8J2QLrroIunWrVtc53POOcdOhoqbkQwIIIAAAgiUYYEl5hrGDb+KfLO8DDeSpiVdIHABqLsQff/+/WNiFHch+qpVq4r+i5d0AlSlSoHji9cs9iOAAAIIIIAAAikXCFwExUL0Kf9MUAACCCCAAAIIIJBSgcAFoCxEn9LPAwdHAAEEEEAAAQRSLhC4AFRF3IXod+3aJStWrIi6EP2OHTtE/1WrVi3liBSAAAIIIIAAAggg4F8gkOuAjhw5Upo1ayY1a9aUK664wgaZubm50rZt29BdkPRUvU5WIiGAAAIIIIAAAghklkDgAtCPP/7YBpaHHnqo3HzzzZKfny+nnnqq/Oc//8ksWWqDAAIIIIAAAgggEFUgcKfgn3rqKTnrrLNk/PjxtkH33nuv3H333XL99ddLjRo1GPWM2s1sRAABBBBAAAEEMkcgcAGo3gkp/NR6VlaW3HPPPbJ3717RpZkaNWok3bt3zxxhaoIAAggggAACCCBQSCBwp+AbNmwousZnZLr//vvlD3/4g/z+97+XefPmRe7mNQIIIIAAAggggECGCAQuANXJRe+9954d7Zw9e3Yhxueee066du0qXbp0kW+//bbQPl4ggAACCCCAAAIIZIZA4ALQyy+/XO666y556aWX7L9wRr0z0euvvy56O81FixaF7+I5AggggAACCCCAQIYIBO4aUHW788477Qz4zZs3F2HUe8Q///zz8pe//EXWrl1bZD8bEEAAAQQQQAABBEpXIJABqJLp/drr16/vqXfCCSd47mMHAggggAACCCCAQOkJBO4UfOlRUTICCCCAAAIIIIBAMgQIQJOhyDEQQAABBBBAAAEEfAsQgPqmIiMCCCCAAAIIIIBAMgQIQJOhyDEQQAABBBBAAAEEfAsQgPqmIiMCCCCAAAIIIIBAMgQIQJOhyDEQQAABBBBAAAEEfAsQgPqmIiMCCCCAAAIIIIBAMgQIQJOhyDEQQAABBBBAAAEEfAsQgPqmIiMCCCCAAAIIIIBAMgQIQJOhyDEQQAABBBBAAAEEfAsQgPqmIiMCCCCAAAIIIIBAMgQIQJOhyDEQQAABBBBAAAEEfAsQgPqmIiMCCCCAAAIIIIBAMgQCH4A6jiP5+fmycePGZHhwDAQQQAABBBBAAIEUCwQyAM3Ly5PBgwdL06ZNJTs7W+rVqyd16tSRnJwcadu2rQwaNEi2bduWYjoOjwACCCCAAAIIIFAcgUrFeVNpvmfZsmXSuXNnycrKkh49ekjz5s2ldu3a9rWOgi5ZskRGjx4tY8aMkUmTJkmLFi1Ks7qUjQACCCCAAAIIIBAhELgAdNiwYXbkc+LEiVKlSpWI5ux/OXToUMnNzZWRI0fKkCFDouZhIwIIIIAAAggggEDpCATuFPycOXOkT58+nsGnMlauXFn69esn48ePLx1VSkUAAQQQQAABBBDwFAhcANqpUyeZOnWqZ4PcHZMnT5ZGjRq5L3lEAAEEEEAAAQQQyBCBwJ2C79mzp2gQunbtWunVq5e9xlMnIFWoUMHOhF+6dKmMGjVKxo0bJ3qanoQAAggggAACCCCQWQKBC0DbtWsn8+bNkwEDBkjfvn1l3759RUS7d+8uEyZMkC5duhTZxwYEEEAAAQQQQACB0hUIXACqXC1btrQz3Hfv3i3Lly8XHfUsKCiQhg0bSuPGje2STKXLSukIIIAAAggggAACXgKBDEDdxugaoLrMkq7/WbFiRbsck7uPRwQQQAABBBBAAIHMFAjcJCRlZCH6zPwwUSsEEEAAAQQQQMCPQOBGQFmI3k+3kgcBBBBAAAEEEMhcgcAFoKleiP7999+X++67L26PzZ8/XxYvXiwnnnhi3LxkQAABBBBAAAEEEPg/gcAFoLoQvc5+97oLkjbNXYh+xIgRCd8JSQPKRx999P+EPJ5dffXVUr9+fY+9bEYAAQQQQAABBBDwEghcAOouRN+/f3+vNtntxV2Ivm7duqL/4qUaNWpI9erV42VjPwIIIIAAAggggECEQOACUBaij+hBXiKAAAIIIIAAAgETCFwAykL0AfuEUV0EEEAAAQQQQCBCIHABqNafhegjepGXCCCAAAIIIIBAgAQCGYC6vroQvQaj+o+EAAIIIIAAAgggEAyBQC5EHwxaaokAAggggAACCCAQTYAANJoK2xBAAAEEEEAAAQRSJhC4ALRDhw52+SNdAinev969e6cMjgMjgAACCCCAAAIIFE8gcNeAPvLII3LppZfK7t275Y477pAKFbxj6FatWhVPhXchgAACCCCAAAIIpEwgcAHoKaecIl988YXockx79+6Vm266KWU4HBgBBBBAAAEEEEAg+QLew4fJLytpR9SRzXvvvdfes33Dhg1JOy4HQgABBBBAAAEEEEi9QOBGQF2SgQMHynHHHWdHQd1tPCKAAAIIIIAAAghkvkBgA9CKFStKt27dMl+YGiKAAAIIIIAAAggUEgjkKfhCLeAFAggggAACCCCAQKAECEAD1V1UFgEEEEAAAQQQCL4AAWjw+5AWIIAAAggggAACgRIgAA1Ud1FZBBBAAAEEEEAg+AIEoMHvQ1qAAAIIIIAAAggESoAANFDdRWURQAABBBBAAIHgCxCABr8PaQECCCCAAAIIIBAoAQLQQHUXlUUAAQQQQAABBIIvQAAa/D6kBQgggAACCCCAQKAECEAD1V1UFgEEEEAAAQQQCL4AAWjw+5AWIIAAAggggAACgRIgAA1Ud1FZBBBAAAEEEEAg+AIEoMHvQ1qAAAIIIIAAAggESoAANFDdRWURQAABBBBAAIHgCxCABr8PaQECCCCAAAIIIBAoAQLQQHUXlUUAAQQQQAABBIIvQAAa/D6kBQgggAACCCCAQKAECEAD1V1UFgEEEEAAAQQQCL4AAWjw+5AWIIAAAggggAACgRIgAA1Ud1FZBBBAAAEEEEAg+AIEoMHvQ1qAAAIIIIAAAggESoAANFDdRWURQAABBBBAAIHgCwQ+AHUcR/Lz82Xjxo3B7w1agAACCCCAAAIIlAOBQAageXl5MnjwYGnatKlkZ2dLvXr1pE6dOpKTkyNt27aVQYMGybZt28pB99FEBBBAAAEEEEAgeAKVglblZcuWSefOnSUrK0t69OghzZs3l9q1a9vXOgq6ZMkSGT16tIwZM0YmTZokLVq0CFoTqS8CCCCAAAIIIFCmBQIXgA4bNsyOfE6cOFGqVKkStXOGDh0qubm5MnLkSBkyZEjUPF4bp0yZIk8++aTX7tD2n376SVasWCEnnnhiaFsynmT5OIhXHhOTx00+soibJ9bx/ORxKxPrOJon3v54eUr6/lA93ScxHv22280X41Ah55h5YhzIbbf7GO04sfa5+f3k0bx+8sWorlucr3aHMsd4EquseHWN9V63SDdPrGP5yeMez8+je7xYeb3yxKqnezyv97r79dHNE+t4fvK4x4x1HFueezD3DVEeYx0j1j73UL7yuJljPLpVjXc8N1+MQ4WcY+aJcSC3Du5jtOPE2ufm95NH8/rJF6O6bnG+2h3KHONJrLLi1TXWe90i3TyxjuUnj3s8P4/u8fzkLQt5AheAzpkzR/r27esZfGqnVK5cWfr16ycjRoxIOAD93e9+JxdeeGHcvtWR13bt2sXN5zfDxeZQOdVEWhzs/Y7LO4hs3yWS7dFrjXJETmslctzvvI/RrolIh0NFzj3KO8+ph4l8vFCkmzmWVzrnSJFVW0xZ5nhe6RLTpulLRJocFD2H/mBfdpxIxRgXgjStI3JqS5HOMQayO5j2aj1yTZ28krbl859Fupi2eaVzjxbZvEOkbWOvHCKXHisyL0+kfs3oeapli1zUVqSW6UuvdFg9kZNNe8443CuHyAnN9rfprCO885xu3j9jWWyb802bdu8ROaqh93F+b9q0eL1I3QOi59G26OelUa3o+3XrEQ1ETjJ1vuAY7zydmosca2zPiNGmM82++av2H8vrSBeaMipXFGld3yvH/s/Vmq0iNatGz1OvhoiW1fqQ6Pt169HGrGNTkfOMoVfSz2U706bTW3vl2P+5VF89llfi5z+6DD//0V10Kz//3jb6d6Ws/fx7tza4e7LMJB4nSNW/5ZZbZN26dfLCCy/ErPZVV10lmzdvlrfeeitmPnYigAACCCCAAAIIpFfAYywtvZVIpLSePXtKp06dZO3atdKrVy97jadOQKpQoYKdCb906VIZNWqUjBs3TvQ0PQkBBBBAAAEEEEAgswQCNwKqfD///LMMGDBAPv30U9m3b18R0e7du8vtt98u3bp1K7KPDQgggAACCCCAAAKlKxDIANQl2717tyxfvlx01LOgoEAaNmwojRs3tksyuXl4RAABBBBAAAEEEMgsgUAHoJlFSW0QQAABBBBAAAEE/AjEmH/s5+3kQQABBBBAAAEEEEAgMQEC0MS8yI0AAggggAACCCBQQgEC0BIC8nYEEEAAAQQQQACBxAQIQBPzIjcCCCCAAAIIIIBACQUCtw5oCdubsW+fOnWqvPzyy3LUUd63KNIZ/3v37pVmzcwtZzzS999/b1cBqFfP3G7HI33zzTfSunVrOfDAAz1yiHz22Wdy6qmneu7fvn27LFiwQDp0MLdn8kj5+fmi/9q0aeORQ+wKBlnmlkiHHmpuz+SRtBxtT926dT1ymDsCzZhh7apVM7ftiZJ0uS41PuWUU6Ls3b9p27Zt8uOPP8pxx5nbaHgkXX9Wb3Cgfl5p8eLF9m5cTZp43ybq22+/lUaNGknt2rW9DiPTp0+3d9vyuuXsnj17bJ6TTz7Z8xi//PKLaH1i3bVr9erVom0/7DDv20Tp0mdqq3X2SnPnzrX9WKuW9y2TvvzyS/uZ0buVRUu6soV+Pk866aRou+22TZs22dvgHnOM922X8vLyZOfOnXadYK8DaV/XrFlT6tf3vqXS7Nmz7TE0n1f64osvbH0rVjS3Z4qStB7z5s2Tjh07Rtm7f9PGjRtl1apV/PxHEeLnv0oUFRF+/svWz7/+bf9//+//Re3rsrqRADRDelZvMfrhhx+K1x8xrab+YdY/0PoHzStNmDBBmjZtKq1amXtPeqSxY8eKrpUaK6B744037H4NDqMl/YM5fvx4OeAAj/s3mjdp0KL/vI6hx9UgS28icPzxx0crxm7TcrQ9LVqY+x56pHfeecf+QvYKfvSH+80334zZZg2WJ0+ebAMtj2Jk4cKFsnLlyqjrz7rvmTZtmlStWjVmIKt9rQFUrMD77bfftnY1apj7RkZJu3btkjFjxsQMYjW41Pp4BbF62O+++07Wr19v/aIUYzfpFxK1jRX0ffDBBzbIihWkan21Ll5fFPSLjd69zKsftTIrVqyQWbNm2SDfq74aDGvwrT8vXkn7WoPPWF+Q3n//fencuXPMIHX06NE2kPUKqrUe+vn06ketny4lp/3Az3/R3uLnn5//8E9FWf351wGm8haAit6Kk1T6Au+9955z3nnnxazIAw884Nx6660x85g7RTnmTlAx85ggwjF/oGPmMUGhY4I2zzxmVMI54ogjPPfrDhPEOj169IiZ56677nKGDBkSM88ll1zimMAlZh4zeueYES3PPCZYc7Kzsz336w4T4Dtm9DNmnhdffNHp06dPzDw333yz89BDD8XMk5ub65i7dcXMY0ZQHfNLyTOPGYl1cnJyPPfrDjM655gR0ph5nnzyScfc2CFmnuuuu84ZMWJEzDxdu3Z1Pvnkk5h5zJcexwT6nnnWrFnjHHLIIZ77dYe5w5lz+umnx8zzyCOPOAMHDoyZ5+qrr3b+97//xcxzwgknOF999VXMPOZLmGNGkD3zLFmyxDFfCj336w5+/r15+PmPbsPPf3QX3VoWf/69WxvcPVwDGv7ViucIIIAAAggggAACKRcgAE05MQUggAACCCCAAAIIhAsQgIZr8BwBBBBAAAEEEEAg5QIEoCknpgAEEEAAAQQQQACBcAEC0HANniOAAAIIIIAAAgikXIAANOXEFIAAAggggAACCCAQLkAAGq7BcwQQQAABBBBAAIGUCxCAppyYAhBAAAEEEEAAAQQKCQR3CdOyVXNztxRHF6yOldatW+eYO9vEymIXLje3KoyZRxds37FjR8w85taBMfebuzE5P/zwQ8w8ulDysmXLYubRhcfN7S1j5jF3iXG2bNkSM4+5Q5Gji817JXMrTsfc/tJrt91u7sLj/PTTTzHzqG2sxeH1zdpH2lexkva19nmsZG6r6pg7+Xhm0RsFmLvneO7XHb/++qtj7kYVM8+GDRscc3enmHnMrS0dc7ekmHkWLVoUc0F2ffP8+fMdcwtBz+MUFBQ4epODWGnr1q2Oub1orCx2sXtza8uYecwdVRxzR6+YefTzoJ+LWEk/V/r58krah9qXsRI//946/PxHt+HnP7qLbtWbXZS1n3/v1gZ3T5ZWvVBEygsEEEAAAQQQQAABBFIowCn4FOJyaAQQQAABBBBAAIGiAgSgRU3YggACCCCAAAIIIJBCAQLQFOJyaAQQQAABBBBAAIGiAgSgRU3YggACCCCAAAIIIJBCAQLQFOJyaAQQQAABBBBAAIGiAgSgRU3YggACCCCAAAIIIJBCAQLQFOJyaAQQQAABBBBAAIGiAgSgRU3YggACCCCAAAIIIJBCAQLQFOJyaAQQQAABBBBAAIGiAgSgRU3YggACCCCAAAIIIJBCgXIbgJp7N8dl9XuXUnNf9bjHKk6GVJafymP7bWt57wN1MvcJF3NPZ08yP0aeb/axw8/xS/uzksryk9l+H9xRsySzDvE+T1Er4GOjnz7w045oRfk5tp880Y6dyLZ49fdbhyD2gTrp7yGte2mmeH2gdfPTD6nqAz/l+2mDl3FJ3ut1zEzeXq4C0F9//VVuuukmadiwoVSqVEkOPfRQGTp0qOzZs6dQH7344ovStWtXqV69unTs2FE+/fTTQvvDXzz33HNSt27d8E1y7733SqtWraL+O+eccwrljfaipOVHO6a7LZXHdsuI9/jqq6/KUUcdJVWqVJHatWvL5ZdfLitXriz0tpLWc+bMmVH93X756aefCpUX+aKk5UceL9rrJUuW2M/i+PHjC+32+zkt9KYEX/jpg9mzZ0uvXr3koIMOkubNm9vPtVcx0X4OStoHJS3fq6663U/7P/roI+nRo4fUqFFDjjzySHnkkUdiHTLhfX7qkIhBtM9TOvrATzui4fhpW6r7YMGCBaK/k2vWrGl/33fo0EE+/vjjQtX1U0/3DdH6QPd16tTJ8/fRY4895r496qOf8ovbB26BGvhccMEF8uc//9ndFPXx+uuvl0MOOSTqvuJu9NMH27Ztk8GDB8thhx1m/2ZccsklsmHDhqhFpqIP/JRf3D7w0/4xY8bI4YcfXuSfbg90Mt8myk3q06ePY/6YOvfff7/z5ZdfOrfffrtjAlHnjjvuCBlMmTLFyc7OdkaMGOGYH3znL3/5i1O1alVn7ty5oTzuk7ffftvmrVatmrvJPr7//vvOnXfeWeif+cF1zAfFufLKKwvljXyRjPIjj+m+TuWx3TLiPb733nvWoW/fvo4J7J2nn37aMcGNc/TRRzu7du2yb09GPZcuXVrI3+0P8+XDady4sbN582bPqiajfM+D/7Zj8eLFjgnCrYV+XsKTn89peP5En/vpAxME23754x//6MyaNct5/vnnHfOFzLnvvvuKFOf1c1CSPkhG+UUq+tsGP+1ftmyZY74gOQMGDHC++uor51//+pf9XfHwww97HTah7X7qkIiB1+cp1X3gpx3RYPy0LdV9YAIYp1GjRs5xxx3njBo1yjHBrnPuuec6lStXdr755htbbT/1dNvn1Qe6/8EHHyzy++j00093srKynA8++MA9RJFHP+UXtw/cwnbu3Gn/zunfJ/297JUmT55s61uvXj2vLAlv99MHelD9+9miRQvHfDlw9Pdz27ZtnXbt2jkmcC5UZir6wE/5xe0Dv+3/+9//7jRp0qTIZ8j9nBZCCNALHc4uF0kDjgoVKjg333xzofZeeumlTvgP1BFHHOGYUZ9CeTRQuOqqq0LbtmzZYvPoD6wZUXMiA9BQxrAnf/rTnxwziuLoL5RYKVXla5mpPHasNoXvO/vss52mTZsW+sXx2muv2UBMf7FoSlU99Q+MfuHQLx+xUqrKd8t84oknnAMOOMBp3bp1kQDU7+fUPVZxHv30wd133+2YUSHHXF4SKmLIkCGOGe139A+WpuL8HPjtg1SVr/X20379edU/eOa0pL7FJjPqYv/wua9L8uinDn4MtA6xPk/R6pjMPvDTjmh18NO2VPfBs88+a3/+vv7661AV9TN94IEHOtddd53d5qeemjHRPvjll19sQBH59yhUkd+e+Cm/uH2gRZgRcqdNmzZOrVq17N9BrwBU66u/t/VvWPjfy8j6JvraTx/MmzfP/u1+5513Qoc3o4a278zZo9C2VPWBn/KL2wd+2q8N1C8r/fr1C7W1rDwpNwGoftN46qmnHP2GFJ7MKXkbQOo3qRUrVtgP9ejRo8OzOP/4xz+c+vXrh7bpN0Fz+t7RH4h///vfdmQotDPKk0mTJtlvjm6AFSWL3ZSq8vXgqTy2V3uibTenDOxIQ/i+6dOnW/exY8emrJ7mFIrtM/0mHSulw0lHXW699VZn0aJFtt3hI6B+Pqex6u9nX7w+0GOceOKJjrk0otDh5syZY+v7+eef2+2J/hz47YNUle82xk/7NfBetWqV+xb7aE6jOuYUbaFtxX3hpw5++kDLj/V5iqxfsvvATzsi66Cv/bQt1X2gZ7j++9//FqmeBlpXXHGF3e6nnpoxkT7Q/Ndcc40N6MK/4On2yOSn/OL2gZalZ/jOOOMMx5y2tn3iFYCaU/POeeed5+iX0GQGoH76QM866FlI9wyZa6SDP+G/z1PVB37KL24f+Gm/tvfggw92Hn30Udv08C/FrkVQH8tNABqtg7Qj9UNrrve0u/UPqo5qRo6Q6TerihUrhkZDdJTK/WGIF4Cai6HtSIqOtMZLqSjfLTOVx3bLKO7j3/72NzsyqX/wU1XPQYMG2RG9TZs2xaxmqsoPL3TdunX2pRvshgeg4fnc55GfU3d7Mh/D+0CPqyOdetonPOXn59ufjzfffNNuTuTnQN/gtw80byrK1+N6pcj2h+cz1wvbP7x6BsVcGxy+K6nPI+vgx0ArkMjnKdl9EA0gsh3R8vhtm/vedPWBfrnSvwGPP/64LdpvPRPpg2nTptkBCT3zEy/5LT/yOH76QN/j1lufa7AbLQDVEXMdITXX6Sc9ANVyI1NkH2iwrqefI5P+3b7ssstCm922+Pm9mkgf+C0/VJHfnvjtg8j3RbZ/9erV9jOp9ejWrZu9ROTYY491Pvvss8i3Bu51JfPDVm7TbbfdJqZz5a233rIGW7dutY916tQpZKKTMEwQYC96Nt9EJCcnp9D+WC/GjRsnZqRLzLWOsbLZfako3y00lcd2yyjO49SpU8WMTIsJdqRBgwYyY8YMe5hk9oE5ZSz/+9//xFzPKOYXacxqpsNJP0OJpMjPaSLv9ZM3sg/0PeaUm0T2gWu3du1ae9hEfg4S6YNUlG8r7PFftPa7Wc3IkJ34oK/NCJD07NnT3ZXUx2h18NMHWgm/n6dU9EEkQrR2RObR137bpnnT1Qf6s3/ttdfaiR7m9L8W7buefvtAj2mCWzGjiKITaeKlRJzcY/ntA80fr97mkgS5+uqrZdiwYWIGa9wiUvbo1Qc6WTUy6d9l93eR7ovXlvD3J9oHfsoPP34ifRD+vmjtN/NPbBY95l//+lc57bTT7N9MfTTXgMoxxxwTfohAPS+3AaiZTCEPPfSQ/cHSme6adGa8JnNhuH2M/K84S1SMHDlSzLVkYr65FDpcXl6eFBQUhLbpH/dklZ/KY4cqnIQnZnKHnH/++WK+eYs5tWOPmCyD8OqZSyVEf5H2798/fLOk0smMDor+c5OZ2FCsX+DRPqfuMZPxGK0P9Lha38ifA/d1+OfWbx28+sDLKRnlex07vM5e7Xfz6B+177//XsxogzzwwAP2s6rvcT+nbr6SPHrVIRkG4fVKdR9Ea4dXHyTStnT0gQZ6+gVj+fLldtUTMxHV0iVSz3Brr+caYJhJe2KuMbU/Y26+ZDjpsaL1gf686u+68KTBpLYtXho4cGChgDxe/pLsj9UH5uxDkUPr76Pi/E326oNYTomUX9w+8Gq/mZNgB7B0RQ53EED/lulqPvfcc4+YSwaL2ARlQ9FeDUrNS1BPc+G3mFnRYmYm2mWZ3EPpCJwm/WUQnsxpW/tSl+pIJJnr+cScXrXfIN0/3u77zUXL0qxZs9A/XYojWeWn8thu/Uv6aE51S/fu3cXMZLRG5hofe8hkGYTXT5dU0nLat28fvllS6WRWUQj1rfazlpVo8vqcJnocr/xefaD5zTXP4n7u3fe7Pxe6LFGiyasPvJySUb7Xsd26x2q/m8dMSLF/gHV5Gl2yTUcc9A9MslKsOiTDILyeqewDr3Z49UEibUt1H+jvaR0g0OVwdAkmM8M6xJZIPUNvivFEg4Xt27eLO8LqZk2Gk1cf6Bm48L81+vznn392i/Z8nDBhguhnRkf9zYol9p+ORmvQp6/NqW7P9ya6I9E+0OPr76dE/ybr+7z6wMsp2mfAq/zi9kGs9v/ud7+zgydu8Kll61JYp556qrijo7otiKncjYDqOqC6np+e9o1c80w/aJr0tHx4WrNmjV3rM9E/vObCZDvKaWavhR/OPte1QsP/wJtrOkLrq5W0/FQeu0hDirHhk08+saMNZ555ppjroMQNPvVQye6D9evX2z8q0dZwTKWTrqlnlnsK6ejpokRSrM9pIsfxyhurD/Q92g/6uQ9P7udSR/QTSbH6wMspGeV7HVvrHq/9OuKpfWaWBws11UzWsM/NrGnp3LlzaHtxn8SrQzIM3Lqlsg9itcOrD/y0LR19sHHjRvtFWH20PDMj3CWzj37qWegNcV688sorcsopp4Qu63Czl8RJjxGrD/RLva7TG5509CxeMpMOdY6ImBVgimTVgF3PIOqX5JKmeH2g9TfXn9vL4MxcjFBx+vvJXAcaeu33iVcfeDn5Lb+4fRCv/Toqb+ZH2LMv4W3Uv5t+RrHD35NxzwN31WoJKqxrselEglgXf+syE7r2X3jSdeLCL3YO3xdrEpJeNKyz5RNJySw/stxUHjuyLK/X3333nV01QNeXNDcAiJotmfU030jtBdw6095vSmb5scr0uljez+c01nHj7fPTB7r8izn1WaiP/vnPf9qJXOZUUZEiYv0cFKcPkll+ZGX9tF/XpdUL/cPTCy+8YD9L7777bvjmYj33U4dEDbw+T1rBVPWBn3ZEA/LTtlT3gU7uM5df2d/Rul5qtOSnnuHvi9UHmk8nFenKK36Tn/KL2weRdYichKRLUularOH/brzxRtsG3ab7S5r89IG2zwROzsSJE0PFuSuIuBMiQzvMk2T3gZ/yi9sHftqvnwFzBtUxlwKFmmkGr+xkJHe1htCOgD0pN7PgdQafLqSty6jo4ueR/3S2uiZdlkOXfNClmPQHzJx2s6/1Ax8txfrDay4StmsORnuf17Zklh9ZRiqPHVmW12tz2t0ue2UuOSjSBwsXLrRvS2Y99Vj6yyta0ORVx2SW71WGbo/2i9Lv5zTWcePt89MHuiKB+XbtmEkZjvmGbm8aYC7Ed4YPHx718LF+DorTB8ksP7LCftr/n//8x35uzCi5Y0ZaHDNqYhfmNxf8O+7visjjJvLaTx0SNYj2eXLrlKo+8NMOtw7hj37aluo+0GX59HeDLkUU+ffATB611fVTz/B2xeoDM8pqyzOjkeFvifncT/nF7YPIgiMD0Mj9+jrZyzD56QMtV2d/63rcP/zwg52Nr39bzVmIQutJaz5Nye4DPWa88ovbB37ar23WtcZ1uSxdCs9MvHJ69+5tb5Qxf/58rV5gU7kJQHUNLf1l4/XP/Tano3K6/Iz+8dW8uii5uQ7Gs4Nj/eHVu+5ELmXjeaDfdiSz/MiyUnnsyLKivdZfpl7+ut3MVLdvS2Y9b7jhhqhLeESrn7stmeW7x4z2GO0Xpd/PabTj+dnmtw/0WLo8lI7YaN9o8KlrAapNtBTr56A4fZDM8sPrm0j79e5Zejck9zNrLhlxvEbKwsuI9zyROiTSB9E+T25dUtEHibTDrUf4o5+2paoPtB4nn3xyqG/dPnYfzzrrrFBV/dTTzRyrD8wsZlte5DJ/7nu9HmOVX9I+CC+zNAJQv32gX8x1HV7tHzMB0AZjuhh9tJSKPohVfkn6wG/79TNgrgUNfV5btmzp6FJSQU9Z2gDTqaQIAV2yxKwrJnoBcGmkVJafymMn06q061na5SfTsrjH0l8P5nSbvZ41mTO//dantMs36/3aZYD0mrn/3969hOrUhXEAf9xJBuSeZKKEkuQaMpKkiES5ZWbibqBMKDNKmCgxwUAxQAkDJq4xUBRKYsCAkksuuX7W+jon+pDP18dey2/Xe5xz9n7f86zfc+hv77X2+zMLHn50nN877ncb/J8//0deWw8+pa7f/Pfwe7+fv3JfmqubVqR/7bZIv6KO3/nz0+/ApyAc6Q4NaRFSDZsAWkMXjYEAAQIECBAgUJDAH3kbpoL6o1QCBAgQIECAQHUCAmh1LTUgAgQIECBAgECzBQTQZvdHdQQIECBAgACB6gQE0OpaakAECBAgQIAAgWYLCKDN7o/qCBAgQIAAAQLVCQig1bXUgAgQIECAAAECzRYQQJvdH9URIECAAAECBKoTEECra6kBESBAgAABAgSaLSCANrs/qiNAgAABAgQIVCcggFbXUgMiQIAAAQIECDRbQABtdn9UR4AAAQIECBCoTkAAra6lBkSAAAECBAgQaLaAANrs/qiOAAECBAgQIFCdgABaXUsNiAABAgQIECDQbAEBtNn9UR0BAgQIECBAoDoBAbS6lhoQAQIECBAgQKDZAgJos/ujOgIECBAgQIBAdQICaHUtNSACBAgQIECAQLMFBNBm90d1BAgQIECAAIHqBATQ6lpqQAQIECBAgACBZgsIoM3uj+oIECBAgAABAtUJCKDVtdSACBAgQIAAAQLNFhBAm90f1REgQIAAAQIEqhMQQKtrqQERIECAAAECBJotIIA2uz+qI0CAAAECBAhUJyCAVtdSAyJA4HcITJo0Kdq0adP66NSpUwwYMCBmzZoVly9f/qmSLl26FGfPnv2p53oSAQIEmiwggDa5O2ojQKAogSFDhsS+ffvyY8eOHbFkyZK4du1ajB07Ns6cOfOvxvLu3bsYP3583L59+189z8EECBAoQaB9CUWqkQABAiUI9O3bNxYuXPhFqStWrIhp06bF0qVLcxjt1q3bF/u/9cXHjx8jPWwECBCoUcAZ0Bq7akwECDRGoE+fPpHOht67dy9OnDjRWtedO3di9uzZMWjQoEihdNSoUXHgwIG8/+XLlzFu3Lj8+caNG2Px4sWtz9uzZ0+MHDkyP2fMmDFx9OjR1n0+IUCAQCkCAmgpnVInAQLFCkycODE6duwYN2/ezGN4+vRpDpyPHj2KTZs2xbZt26Jz58757On169fzscuXL8/HTp06NebPn58/37JlSyxbtiyGDh0a+/fvj/S6aY7p4cOHi7VROAECf6aAS/B/Zt+NmgCBXyiQFif16tUrbt26lX/qhQsXonfv3vmM58CBA/P3pkyZEoMHD460b/jw4bFgwYJ82X7ChAkxffr0ePLkSWzevDkWLVoUe/fuzc+ZOXNmPHjwINavXx9z5sz5hSPyowgQIPDfBATQ/+bn2QQIEPghgefPn0f79n//k5vmhLaE0fT9GzduRFrx3rZt20iX37+2Xb16NZ49exYjRoyI8+fPtx6SQuvBgwcjnU1NIddGgACBEgQE0BK6pEYCBIoWePz4cQ6Pab5ny7Z9+/bYuXNnpLmgXbp0iXSm83sLj9Ic0rStWrWq5SW++PPu3bsC6BciviBAoMkC5oA2uTtqI0CgCoHTp0/ncaTFQ2lLC4lWr16d52+eO3cuX14/cuRI3vetle89evTI+y9evBgfPnz4x2P06NF5vw8ECBAoQUAALaFLaiRAoFiBdIl9w4YNebX7jBkz8jiOHz+eFxJt3bo13+uzQ4cOkS6xp/D5/v37fEy6HJ+2lq+HDRuWb3KfLrd/fsP7Xbt2xdy5c+P169f5eB8IECBQgoBL8CV0SY0ECBQhkBYE7d69O9f64sWLSJfFDx06lOdnHjt2LNq1a5f3TZ48OdIZz3Rz+rSS/cqVK3nRUdrZMgc0HZtWxp86dSovSko3s583b15egNS/f/+8GCktWFq3bl2sXbs2H5tf3AcCBAgUINDm0/+43em4gEYpkQCBZgukt+L8/G0z01nNfv36Rbo0nkJiy3090yjSivZ0Y/qTJ0/G27dvo2fPnpHOhqZ3UUpnPtMZ0rStWbMmzxPt3r17PHz4MM8jXblyZb4FU3qnpPT66axqmk+a5pHaCBAgUIqAAFpKp9RJgEB1AulsZ1qglN4z/lvbq1ev8nzPrl27th7y5s2buH//fr6sny7H2wgQIFCagABaWsfUS4AAAQIECBAoXMAipMIbqHwCBAgQIECAQGkCAmhpHVMvAQIECBAgQKBwAQG08AYqnwABAgQIECBQmoAAWlrH1EuAAAECBAgQKFxAAC28gconQIAAAQIECJQmIICW1jH1EiBAgAABAgQKFxBAC2+g8gkQIECAAAECpQkIoKV1TL0ECBAgQIAAgcIFBNDCG6h8AgQIECBAgEBpAgJoaR1TLwECBAgQIECgcAEBtPAGKp8AAQIECBAgUJqAAFpax9RLgAABAgQIEChcQAAtvIHKJ0CAAAECBAiUJiCAltYx9RIgQIAAAQIEChcQQAtvoPIJECBAgAABAqUJCKCldUy9BAgQIECAAIHCBQTQwhuofAIECBAgQIBAaQICaGkdUy8BAgQIECBAoHABAbTwBiqfAAECBAgQIFCagABaWsfUS4AAAQIECBAoXEAALbyByidAgAABAgQIlCYggJbWMfUSIECAAAECBAoX+AtH5+d+AG1zpQAAAABJRU5ErkJggg==" style="display: block; margin: auto;" /></p>
<p>Those plots gave us a general idea about how’s the relationship between impression factors and sales, the Display channel tends to show a different trend compared to others, which will be explored more in the following model building part.</p>
<ul>
<li>Correlation matrix <div id="htmlwidget-246a695e27233b7744db" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-246a695e27233b7744db">{"x":{"filter":"none","data":[["Sales","Direct","Display","Email","Email Holdout","Social"],[1,0.07,-0.028,0.529,0.533,0.395],[0.07,1,-0.235,-0.077,-0.077,-0.007],[-0.028,-0.235,1,-0.068,-0.071,0.142],[0.529,-0.077,-0.068,1,1,-0.025],[0.533,-0.077,-0.071,1,1,-0.02],[0.395,-0.007,0.142,-0.025,-0.02,1]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Sales<\/th>\n <th>Direct<\/th>\n <th>Display<\/th>\n <th>Email<\/th>\n <th>Email Holdout<\/th>\n <th>Social<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[1,2,3,4,5,6]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script></li>
</ul>
<p>Based on the correlation matrix, it can be easily found that Email, Email Holdout and Social seems to have a big impact on Sales. They have positive correlations, which are 0.529, 0.533, and 0.395, and the other two factors seem to have a slight impact.</p>
</div>
<div id="results-and-interpretation-2" class="section level3">
<h3>2. Results and Interpretation</h3>
<p>By utilizing two datasets <code>impressions</code> and <code>transactions</code>, we can have observations of the sales and other advertising data for different impression channels, which will give us the data to estimate these unknown parameters of the model, and the process will be shown below.</p>
<p><strong>Model 1: Basic regression including email.holdout relating transactions to impressions</strong></p>
<p>The model 1 can be written as <span class="math display">\[Sales_t=\beta_0 + \beta_1Direct_t+\beta_2Display_t+\beta_3 Email_t+\beta_4 Email.holdout_t+\beta_5Social_t+\epsilon_t\]</span></p>
<div id="htmlwidget-0b71cc1f8f3420c0e55f" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-0b71cc1f8f3420c0e55f">{"x":{"filter":"none","data":[["1","2","3","4","5","6"],["(Intercept)","Direct","Display","Email","`Email Holdout`","Social"],[438.501,0.015,-0.035,-0.162,0.805,0.013],[940.623,0.014,0.252,0.322,1.29,0.003],[0.466,1.049,-0.14,-0.502,0.624,3.747],[0.643,0.299,0.889,0.618,0.535,0],[-1405.085,-0.013,-0.53,-0.792,-1.723,0.006],[2282.088,0.042,0.459,0.469,3.334,0.019]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Variable<\/th>\n <th>Estimate<\/th>\n <th>Std. Error<\/th>\n <th>t value<\/th>\n <th>Pr(>|t|)<\/th>\n <th>Coef.Lower.95<\/th>\n <th>Coef.Upper.95<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6,7]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<ul>
<li><p><span class="math inline">\(Sales_t=438.501+0.015Direct_t-0.035Display_t-0.162Email_t+0.805Email.holdout_t+0.013Social_t\)</span></p></li>
<li><p>From the above output, there is only one statistically significant effect, which is social impressions, and we gain 0.013 additional transactions for each social impression.</p></li>
<li><p>The estimated effect of Email and Display is negative but they are not significant.</p></li>
</ul>
<p><strong>Model 2: Add the Day of Week variable</strong></p>
<p>Besides advertising impressions, we introduced a new variable into the linear regression model - the Day of Week, which enable us to inspect the relationships between sales and marketing channels across the week rather than within the same day.</p>
<p>The Model 2 can be written as <span class="math display">\[Sales_t=\beta_0 + \beta_1Direct_t+\beta_2Display_t+\beta_3 Email_t+\beta_4Social_t+\beta_iDay.of.Week(i\ is\ different\ weekdays)+\epsilon_t\]</span></p>
<div id="htmlwidget-aa186246d072cfcfcb70" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-aa186246d072cfcfcb70">{"x":{"filter":"none","data":[["1","2","3","4","5","6","7","8","9","10","11"],["(Intercept)","Direct","Display","Email","Social","`Day of Week`Monday","`Day of Week`Saturday","`Day of Week`Sunday","`Day of Week`Thursday","`Day of Week`Tuesday","`Day of Week`Wednesday"],[348.192,0.0295,-0.0311,-0.9607,0.0128,71.4052,64.4455,55.2939,67.6637,4877.2293,171.0869],[891.9491,0.0142,0.2391,1.4635,0.0031,45.6163,45.6013,44.5984,45.341,7029.9972,45.336],[0.3904,2.0852,-0.1302,-0.6564,4.1445,1.5653,1.4132,1.2398,1.4923,0.6938,3.7737],[0.6981,0.0426,0.897,0.5148,0.0001,0.1244,0.1643,0.2213,0.1424,0.4913,0.0005],[-1399.996,0.0018,-0.4997,-3.8291,0.0067,-18.0012,-24.9315,-32.1173,-21.2031,-8901.312,82.2298],[2096.38,0.0573,0.4374,1.9077,0.0188,160.8116,153.8224,142.7051,156.5305,18655.7706,259.9439]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Variable<\/th>\n <th>Estimate<\/th>\n <th>Std. Error<\/th>\n <th>t value<\/th>\n <th>Pr(>|t|)<\/th>\n <th>Coef.Lower.95<\/th>\n <th>Coef.Upper.95<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6,7]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<p>When the new variable added into the model, it changed the coefficients of our model. Also, it can be noticed that there is no Friday, and it is just a coincidence that there is no Friday in the subdata which we merged from the original data that meets our assumptions in modeling for transactions and impressions.</p>
<p>In Model 2, we found a significant association between direct impressions and transactions, as well as social impressions and transactions.</p>
<p>For instance, Direct impression has 29.5 additional transactions per thousand direct impressions, and Social social 12.8 additional transactions per thousand impressions.</p>
<p><strong>Model 3: Taking the advertising effect into consideration</strong></p>
<p>Now we have Model 1 and Model 2, and these two models assume that an impression on specific time t has an effect on the number of transactions on a specific time t and that those impressions have no effect on sales on other days.</p>
<p>However, this is not really happened in the marketing area, just like the results from the email holdout test, it suggests that email impression last about three days! It is easy for us to understand that an advertisement had its biggest advertising effect right after it is shown to the users and then the effect wears over time.</p>
<p>The following picture shows how’s advertising effect looks like, and we usually use an exponential decay function to describe how the effect of the advertisements drops.</p>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VQNcC+8AAEAASURBVHgB7Z0HnBRF2off3kWSEiVJRlQUUEAJgihBFFRO8YDTAwTUM54RA3rynWfAhJ6gd4jZMysiKsrhCSgoHCAoggGVnBFFQJC401+9hTM3u8wys7sTunue+v2a7q6urnrrqWH/XdlxjRMcBCAAAQhAAAJpJZCT1tRIDAIQgAAEIAABSwAB5ocAAQhAAAIQyAABBDgD0EkSAhCAAAQggADzG4AABCAAAQhkgAACnAHoJAkBCEAAAhBAgPkNQAACEIAABDJAAAHOAHSShAAEIAABCCDA/AYgAAEIQAACGSCAAGcAOklCAAIQgAAEEGB+AxCAAAQgAIEMEECAMwCdJCEAAQhAAAIIML8BCEAAAhCAQAYIIMAZgE6SEIAABCAAAQSY3wAEIAABCEAgAwQQ4AxAJ0kIQAACEIAAAsxvAAIQgAAEIJABAghwBqCTJAQgAAEIQAAB5jcAAQhAAAIQyAABBDgD0EkSAhCAAAQggADzG4AABCAAAQhkgAACnAHoJAkBCEAAAhBAgPkNQAACEIAABDJAAAHOAHSShAAEIAABCCDA/AYgAAEIQAACGSCAAGcAOklCAAIQgAAEEGB+AxCAAAQgAIEMEECAMwCdJCEAAQhAAAIIML8BCEAAAhCAQAYIIMAZgE6SEIAABCAAAQSY3wAEIAABCEAgAwQQ4AxAJ0kIQAACEIAAAsxvAAIQgAAEIJABAghwBqCTZHoIXHnlldK1a1d7jBs3rsiJPvDAA5H3Xdct8vvJfiEUCsmCBQsi0W7YsCFi37PPPhvxT/SipO8nmk6ywymHv/zlL9KiRQs59NBDpV27djJ58mSbzNy5c+Wss86SmjVrSuPGjWXAgAHJTj5ffAXLJN9DbiAQh0CpOM95DAFfEliyZImMGTNGwsK5fft26d27d5Hy8s0338iHH35o39F4HMcp0vvJDDxz5ky55ppr5Oijj5YXX3zRRr1z586IfSeddFKRkyvp+0VOMEkv3HvvvaJH2M2ZM0fKli0rv/zyi5x++uny888/20c//PCDNGrUKBws6edYZZL0RIgw0AQQ4EAXb/Zm7plnnomIr1LQP9JffPGFrTX5kUpYYFWAw658+fJy9tln29tjjjkm7J3wuaTvJ5xQkgPOmjXLxliqVCnRGm/lypWldu3atnUgLL4XXnih3HPPPfl+A0k2Q2KVSbLTIL5gE0CAg12+WZm7vLw8ee6552ze69SpI2vWrLHXjz/+uIwePbpQJnv37pXVq1dL/fr1JScnub0zW7dulS1btki9evUKTT/6gYZVGypUqBDtne+6evXq8vbbb+fzi77R/GjelUetWrVEBTfaxXs/Oqzar60Ihx12WLT3ftcbN26Ugw46yIrifg8T9IjHKlyeRx11VL4PqrC/JnPGGWfYPBdMUlsyVqxYITVq1NiPR8Gwym3VqlW2zHJzcws+5h4CJSdgfpA4CASKwIQJE7TD1h6PPfaY27x5c3tdsWJFd9u2bfvl1QiLe8kll7imGdOGM6LnDh8+3B04cGAkHvPH2P3ss8/cgw8+2B6mDzJfPLt373aNuNpn3bt3jzwzzZTuscce65rmaxuXqa251157rWuafyNh9KJnz5723XPPPdc1fc+u+YPvGiFzTT+29Q/nx9T67P2jjz7qrly50l6rTXfeeWckvvXr17sXXHCBq2HD72n63bp1s++EAxb2/sUXX2zj7dChg2ua4d22bdu65mPAxtWgQQP3P//5TziKyHnatGmuEUQbRsOafll36dKlrumjtXEpz3guHivTz2vjCtuiZ837Kaec4pq+frdMmTKR/Oq1Pps0aZJNVnlfd911rpatMtF3TR+yq2kWdMuWLXN79OgRia9KlSqu6b5w33zzTRvU1Lpt3GG20WVSMC7uIXAgAtpEg4NAoAicc8459o9s6dKl3Z9++skdMWJE5A/zU089tV9e9Y9t+I+pClX4j3T0H3QVYHUtW7a0YU2Tpxv2U/+33norEsfzzz+vXu7UqVOtkIbjrlSpUiRMp06dbJjwPyqOGs7USiNirfd///vfI++E4wn7L1++PPJs2LBh4aisIGkYFQYV/+gPgC5durhm4JANW9j7ZuBSxBYVH/0QqFq1aiQtU5N2TU03kt7s2bPz5VM/dDR9U+uO+P/tb3+LhI91kQir999/P2JDNIs2bdq47du3j/nsvffes8mdeuqpkedavmERV0bRHxTKJGy/phH+KNNr/W2YwXyu6c6IxBVth5YVDgJFIYAAF4UWYT1PYN26dZGan9Ym1a1duzYiBFqbi3ZTpkyJ/DHVP+JfffWVa5pA3b/+9a8Rf/0jGxZbrVGH/+iqIISdpqX+Klg7duxwTfNvpOatQqS1pj179rgjR46MvP/OO++EX7e103C8WvNUUdCasNbYv//++8g7ps/X3pu+TjeWgGpew/GYJvdI/C+//LLbqlUrd/DgwbZmqg9iva/+YQHWePTjZPPmzTb/gwYNisT9xhtvaFDrtAYanaa2BmjNskmTJhH/22+//bfQ+58SZaVctdbetGlTG6/pD7f3WuM3I7rdJ598MpKe5l3D6juvvfZaxF9rwcrUDNJzjzvuOOt/wgknRIzq06eP9dMWCI3j119/dc3I88hHmelrt3EWViaRiLiAQAIEEOAEIBHEPwTuu+++yB/bcJOhWm/6BCP+n3/+eSRDWnMMi4eKVLTTP7bhZ2EBVnE+5JBDrH///v1t8B9//NHWEjWsGals/bTpNvzu1VdfHYlWRbhatWr22R/+8IeIf7gGrO98+umnEf/wRTiucJrqH0tA1T4VDw2vNT1tRv/Xv/7l6odJQRfrfQ0TLcCLFi2KvPbBBx9E8qQfIup27doVqU2q4EY7M1I5Ev5AAlxUVuFWCK3ZR7voVgitqYbdeeedZ+1QLmZkdNjbHTVqVMS+r7/+2n5khGu8+qET7fSDSPOvQh92scok/IwzBBIhkNyRJuYXiYNAJgk8/fTTNnnTXCimliKmxmmPcuXKRcx64oknItemnzJyrVNYop2paUXf2msjatKvXz97PX78eDv1xQi3GGG1fqYv2Z417bDTOcimH9oeRjzE1MrsIx3gU9CZJlHRMMV1ap8RfPu6TssxzeFiaq52lLDOlzW17iJF3bBhw0h40zQbuTbCa6+NiIvOhVVnPiLsOfxPQZ5h/4Ln4rIqGE9h9+H4TbOzmCb4SFnobyPstCz00KlZ6nSAV7Q77bTTbP508BYOAskiwCjoZJEknowTMAOBrOiqIebrU4YOHRrTppdeeklMv7CYQTr55vbqfbQzTa/Rt5Hryy67TFTETfOkHYWs8akzTdj2j7teh0VWr3X0sak166V1KsbqYo0o1nAqwiVxpi/STpFRG6dPny4qlspDp2KZ/nEZO3asmKbWuEnoR4zpB4+EMzXIyHX4QsOEXUG7Tf97+NEBz8VldcBIox6G41f7o8tBr8OCalo4Ih8S+mr4AyMqGi4hkHQCJfufnnRziBACxScQrv1qDDrdR2s80U5rhJs2bRKd5vLqq6+KGe0rRxxxRCTIl19+Ka1bt7b3Kq6ffPJJ5Fn0xfHHH2/D6RxUMxrZCps+v/TSSyPBoheAMCOc5eGHH4480xWodKWmWM4MHIvlHfFTIY3nVExM86yYJlnLwPTHiumzFdNsbF/VvCciwPHS0ec6ZUuFTdMsyOvdd99NJIp8i2UUhVVCkZtAWha6qIpOy1KbTBeAfVV/BzplKtw6ojV5/eBQ8TVjAfJFr6uizZs3T5o1ayZDhgzJJ+SJlEm+yLiBwG8E8v+FAgsEfEpAa6sqMuq0+dAMwBFtHo0+zICrSO50TrC66GZS/cOq8eihSx0eqBaktWB1WqtUZ0Y4i+nTtdf6jzYjqzipU8FTAVBnRvva+am6eESsOcmxapn6ngqFOjPIyjaT6odELKfN3SooumDHHXfcYVeI0uU477rrLgmLu6adLKeCFV5hTAVKr3X1MG19iP4gOlB6xWV1oDijn2mtX50KsLZ8aLmq2Kq/1oLN4DT7UaYfbGYKmQ2r5aQLeehvQT+0zDQqef311+WFF16IiG+iZWIj5B8IxCJgvt5wEPA9gX/+85+RATXRc2ILZkxHApv/B/YID8YKj3xVf52WovNH9VrnvIbDhgdhhePTkbTR01V0vm5Bp4O6jKBG4tBBXeHpL3qt84/DLjwIyzRLh73ynXXEb9gWnQ6jg8fMx0XELzwNyTS32mlH4bCah5NPPtk1omzD6tQsnTakLtb76h8ehKXpRDsdyR2OV0dzh923337rqt3hZ+GzTg8KX8ebhlQUVkawbbyJDsIygmtHgIdt0alepgUiYptZRzucFXfx4sWuTrMKh40uP+VhRDgSNlaZRB5yAYEECFADNv/TcP4nYOb32kxon6QRkEIzpM3OYReuBevaytp8rH2YWkvSmpCuNWymrISD7nfW/mIzIjniH938HPb84x//KGYhCFsjV7u0FmymKcn5559va+sFV6YKvxfrbD4qIk2l+lybyGM5XRNZa2+6FKPWTnXVp48//tj2SWtNc+LEiWKmYsV6tdh+2uKgzc/arK0rbun9LbfcElmzWiMO174LSySZrAqmoWmrfToYTQep6Wpdemh3gzYtDx48OPKKbuCgNfmOHTva8QHatK7OfMiI9vX37ds3EjbRMom8wAUEChCwn7gF/LiFQFYS0ME6ZhUkKyAFBxSVFIj2P+syl2aqzn5904nGrfaZGpoVg+gRyYW9ryN6NU0Va20OT2bTc3SaH330kd2VSEUq2i4VsnCfuja3X3HFFdGvFXqdDFaFRW4qJaIbdSiLcF9wYWF16U3lrUt26oA5/Ygq6IpaJgXf5z67CSDA2V3+5B4CJSZgFuKwtWyNSPtYdRtI7avWPujwzk3aj2oWvChxWkQAgSARQICDVJrkBQIZIPDKK69E5kbHSt6sEiZmUZRYj/CDQFYTQICzuvjJPASSQ8BsgGGnWun0He1f1dHFDc0iHtrfff311+frv05OisQCAf8TQID9X4bkAAKeIqADlwqbTuUpQzEGAhkmgABnuABIHgIQgAAEspMA05Cys9zJNQQgAAEIZJgAApzhAiB5CEAAAhDITgIIcHaWO7mGAAQgAIEME0CAM1wAJA8BCEAAAtlJAAHOznIn1xCAAAQgkGECCHCGC4DkIQABCEAgOwkgwNlZ7uQaAhCAAAQyTAABznABkDwEIAABCGQnAQQ4O8udXEMAAhCAQIYJIMAZLgCShwAEIACB7CSAAGdnuZNrCEAAAhDIMAEEOMMFQPIQgAAEIJCdBBDg7Cx3cg0BCEAAAhkmgABnuABIHgIQgAAEspMAApyd5U6uIQABCEAgwwQQ4AwXAMlDAAIQgEB2EkCAs7PcyTUEIAABCGSYAAKc4QIgeQhAAAIQyE4CCHB2lju5hgAEIACBDBNAgDNcACQPAQhAAALZSQABzs5yJ9cQgAAEIJBhAghwhguA5CEAAQhAIDsJIMDZWe7kGgIQgAAEMkwAAc5wAZA8BCAAAQhkJwEEODvLnVxDAAIQgECGCZTKcPq+Tf6RRx6Rxx57TCpVquTbPGA4BCAAgaASKFu2rEyYMEEqVKjg2Sw6rnGetc7DhrVp00buvvtuBNjDZYRpEIBA9hLo0qWLzJo1S1q0aOFZCNSAi1k0pUqVkooVK8qJJ55YzBh4DQIQgAAEUkXgqKOOSlXUSYvX933AWoHfuHGjbNq0KWlQiAgCEIAABCCQagK+FOA1a9bI0KFDpWHDhlK6dGmpUaOGHHroobY5WJsbbrjhBtm2bVuq2RE/BCAAAQhAoNgEfNcEvWLFCunYsaM4jiN9+/aVww8/XKpWrWrvtRa8bNkyeeONN2TcuHEyZcoUady4cbHh8CIEIAABCEAgVQR8J8AjRoywNd/JkydLmTJlYnK555575IwzzpDnn39e7rjjjphh8IQABCAAAQhkkoDvmqDnz58vAwcOLFR8FeZBBx0kgwcPlkmTJmWSLWlDAAIQgAAECiXgOwHu0KGDzJgxo9AMhR9MnTpV6tSpE77lDAEIQAACEPAUAd81Qffr109UhDds2CD9+/e3fbw6ACsnJ8eOhF6+fLm89NJLMnHiRNFmahwEIAABCEDAiwR8J8AtW7aUBQsWyGWXXSaDBg2SUCi0H9du3brJf/7zH+nUqdN+z/CAAAQgAAEIeIGA7wRYoR1xxBF2hPPu3btl5cqVorXePXv2SO3ataVu3bp2SlJx4c6dO1dee+21uK9//fXXsnDhQmnfvn3csIkEcHfuFDOnShxTk8dBAAIQgEDwCfhSgMPFonOAVYz1SJbT9UNr1qwZN7qdRjC3bNkSN1yiAUJ9zhfn8kvF6Xlmoq8QDgIQgAAEfEzA1wKcCu7NmzcXPeI5nd5UuXLleMESf24+JsTU6HEQgAAEIJAdBGjv9Eo565zmXbu8Yg12QAACEIBAign4ToBbt24t5cuXT+gYMGBAivElMXoEOIkwiQoCEICA9wn4rgn64Ycflt69e5vW2t0ybNgwO/2oMMx+2A0jYjtN0BEUXEAAAhDIBgK+E+CTTz5ZPvnkE9HpSHl5eXLjjTcGo5yoAQejHMkFBCAAgQQJ+K4JWvOlNdu77rpL7r77bvnpp58SzKrHg5Uxg7B2MQjL46WEeRCAAASSRsB3NeBwzq+77jo5/vjjbS047OfrM03Qvi4+jIcABCBQVAK+FeDc3Fzp0qVLUfPr2fCOaYJ2GQXt2fLBMAhAAALJJuDLJuhkQ/BEfNSAPVEMGAEBCEAgXQQQ4HSRjpcOg7DiEeI5BCAAgUARQIC9UpwMwvJKSWAHBCAAgbQQQIDTgjmBRGiCTgASQSAAAQgEhwAC7JWypAnaKyWBHRCAAATSQgABTgvmBBJBgBOARBAIQAACwSGAAHulLGmC9kpJYAcEIACBtBBAgNOCOYFEqAEnAIkgEIAABIJDAAH2SlmWPsjsB7zHK9ZgBwQgAAEIpJgAApxiwIlGz0pYiZIiHAQgAIFgEECAvVKONEF7pSSwAwIQgEBaCCDAacGcQCIMwkoAEkEgAAEIBIcAAuyVsqQG7JWSwA4IQAACaSGAAKcFcwKJsBRlApAIAgEIQCA4BBBgr5QlTdBeKQnsgAAEIJAWAghwWjAnkAhN0AlAIggEIACB4BBAgL1SlmXLiuxhHrBXigM7IAABCKSaAAKcasKJxq8CvH17oqEJBwEIQAACPieAAHukAJ2DzEpYeXnihkIesQgzIAABCEAglQQQ4FTSLWrc5cqJ7NhR1LcIDwEIQAACPiSAAHup0LQZeudOL1mELRCAAAQgkCICCHCKwBYrWgS4WNh4CQIQgIAfCSDAXio1BNhLpYEtEIAABFJKAAFOKd4iRl62jGmC3lXElwgOAQhAAAJ+JIAAe6nUqAF7qTSwBQIQgEBKCSDAKcVbxMgR4CICIzgEIAAB/xJAgD1Udo4RYJdR0B4qEUyBAAQgkDoCCHDq2BY9ZvqAi86MNyAAAQj4lAAC7KWCownaS6WBLRCAAARSSgABTineIkaOABcRGMEhAAEI+JcAAuylskOAvVQa2AIBCEAgpQQQ4JTiLWLkCHARgREcAhCAgH8JIMBeKjsGYXmpNLAFAhCAQEoJIMApxVvEyKkBFxEYwSEAAQj4lwAC7KGyYx6whwoDUyAAAQikmAACnGLARYqeGnCRcBEYAhCAgJ8JIMBeKj36gL1UGtgCAQhAIKUEEOCU4i1i5OXLi+xiN6QiUiM4BCAAAV8SQIC9VGxlzHaEv/7qJYuwBQIQgAAEUkQAAU4R2GJFqzVgBLhY6HgJAhCAgN8IIMBeKrFy5UR27PSSRdgCAQhAAAIpIoAApwhscaJ1ypcTlxpwcdDxDgQgAAHfEUCAvVRktga8w0sWYQsEIAABCKSIQKAEOBQKyZIlS2Tv3r0pwpXiaOkDTjFgoocABCDgHQK+FOAvv/xSLr/8crnoootk2rRpluZDDz0ktWrVkiOOOEKqVKkiTzzxhHcoJ2pJubL0ASfKinAQgAAEfE6glN/sV/Ft06aNlC5dWqpVqyavvvqqjBo1Sv72t7/J+eefL6eeeqqMHTtWrrjiCmnUqJGcdtpp/skiNWD/lBWWQgACECghAd8J8H333SetWrWSDz74QMobwbr55pvl0ksvldtvv92KsPJQIT7rrLNk9OjRRRZgbcKeOXNmXKx79uyRbdu2xQ1XpAD0ARcJF4EhAAEI+JmA7wT4u+++k4EDB8rBBx9suV9wwQXy4IMPSt++ffOVQ58+fWTkyJH5/BK5Wbt2rRX3eGHz8vLMlN0kL5qBAMfDznMIQAACgSHgOwGuXbu2TJ06Va666ipbCHqt7qOPPpJmzZrZa/1Hm6rr1q0buU/04uSTTxY94rnx48dLjRo14gUr0nNHV8IyNWvXDCZzcnzZPV+k/BIYAhCAQDYT8J0A6+CrM844w/YDax/wlClTZMiQITJ8+HA7+rlbt27y73//2/YLP/vss/4r23A/8CGH+M92LIYABCAAgYQJ+E6Ae/ToIa+//roV2C1bttjRzoMHD5YNGzbI9ddfL67riuM49lqbp33nEGDfFRkGQwACECgOAd8JsGZS+3sL9vm++OKLMmLECPnss8+kefPm0qBBg+LwyPw79ANnvgywAAIQgEAaCPhSgAvjcthhh9nRz4U994W/WY5SfmU1LF+UFUZCAAIQKAEBRvqUAF5KXqUGnBKsRAoBCEDAawQQYK+VCALstRLBHghAAAIpIYAApwRr8SN1zOhndwdN0MUnyJsQgAAE/EEAAfZaOWkf8C9JXmHLa3nEHghAAAIQEATYaz8CXeFr+3avWYU9EIAABCCQZAIIcJKBljg6BLjECIkAAhCAgB8IIMBeK6WDy5sacJLXmPZaHrEHAhCAAARogvbcb4AasOeKBIMgAAEIpIIANeBUUC1BnI4RYJc+4BIQ5FUIQAAC/iCAAHutnGiC9lqJYA8EIACBlBBAgFOCtQSR0gRdAni8CgEIQMA/BBBgr5UVAuy1EsEeCEAAAikhgACnBGsJIkWASwCPVyEAAQj4hwAC7LWyog/YayWCPRCAAARSQgABTgnW4kfKKOjis+NNCEAAAn4igAB7rbRogvZaiWAPBCAAgZQQQIBTgrUEkdIEXQJ4vAoBCEDAPwTiCvAOszXeunXrYuZIn02bNi3mMzyLSYAacDHB8RoEIAABfxGIK8BTp06V3/3udzFzNXfuXOncubNs2rQp5nM8i0HA7Acs7AdcDHC8AgEIQMBfBErFMnfnzp0ycOBA2bZtm2zcuFEWL14sZ555Zr6gruvKokWLpGLFilKlSpV8z7gpPgGnnNkP2Aiwm5cnTm5u8SPiTQhAAAIQ8DSBmDXgsmXLSo8ePaR06dJSqlQpcRzHXut9+NAwHTt2lHHjxtnnns6l34yrUEHkl1/8ZjX2QgACEIBAEQjErAHr+xdddJE95syZIy+++KI88sgjRYiWoCUiEBbgypVLFA0vQwACEICAdwnErAFHm9u2bVsZNWqUvPzyy7J06dLIoyuvvNI2QUc8uEgegQqmH/iXbcmLj5ggAAEIQMBzBOIKsFrcvXt3GTx4sKxfv95mQPt/v/jiC2nevLmMHDnSc5nyvUE6EMv0v+MgAAEIQCC4BOIK8Pfff2+nGn355ZfSoUMHS0L7hGfMmCF///vf5bbbbpPdu3cHl1AGcuaYJmiXPuAMkCdJCEAAAukjEFeAp0yZIq1bt5ajjjpqP6sGDBggv/76q6xcuXK/Z3iUgABN0CWAx6sQgAAE/EEgrgAfffTRogOxVq1atV+O3n33Xck1U2Xq1Kmz3zM8SkAgPAirBFHwKgQgAAEIeJtAXAE+8cQTpVatWnLBBReILsqxevVqOy/4lVdekWHDhknfvn2lnM5dxSWPAH3AyWNJTBCAAAQ8SqDQaUhhe3W+78yZM+Wss86SU089Nextz3369JHRo0fn8+MmCQRogk4CRKKAAAQg4G0CcQVYza9Xr54sWLDA1n7nz59vm521abpRo0bezp1PrWMQlk8LDrMhAAEIFIFAQgIcjk+XnKxfv74cfvjhctBBB4W9OSebgPYBL1+e7FiJDwIQgAAEPEQgbh+w2qr9vtrcfIjpm2zRooV8/fXXMnToULnxxhvtKGgP5ScYplQ0Arz912DkhVxAAAIQgEBMAnEFWOf4nn322fLdd9/Jww8/LOXLl7cRnXzyyfLUU0/JddddFzNiPEtAwGxwIT//XIIIeBUCEIAABLxOIG4T9OTJk2XNmjVWgCtVqiS33367zVPv3r3tTkiDBg0SXRlLF+fAJYmA1oC3shlDkmgSDQQgAAFPEohbA9aVsJo1ayYqvgVdmzZtZN26daa7cnnBR9yXgIBjWLtbtpQgBl6FAAQgAAGvE4grwDrSWZed1H2BC7pXX33VblfIQhwFyZTwXpugt24tYSS8DgEIQAACXiYQtwm6a9euUrduXTnzzDNlyJAhEgqFRGvFEyZMkDFjxki/fv3sHsFezqTvbKtkBHgLAuy7csNgCEAAAkUgEFeAdeTz+PHj7W5IKrbqdA1odb169bJbFdob/kkeAWrAyWNJTBCAAAQ8SiCuAKvdxx13nMydO1fmzZtna7+lS5e2/cLHHHOMR7Plb7McXYpyxw5x8/LEMWtt4yAAAQhAIHgEYgrwzTffLNu3b5d//vOfdqcjFd/f//73ooOu9MClgYAOetOBWFWrpiExkoAABCAAgXQTiDkIa5vZDF5ru+oWLlwo99xzT7rtIj2aofkNQAACEAg0gZg14C5dushjjz0mtWvXlgpmWUSdB9y2bdtCQeh2hbgkE2AgVpKBEh0EIAABbxGIKcC6xeBrr71mpx8tWrRINm3aZPuBvWV6wK2hBhzwAiZ7EIBAthOIKcDRfcAqxFtMX6QuO4lLHwGnSmVxzWpYrC+WPuakBAEIQCCdBGIKsPYBf/bZZ9YOnYa0d+/edNpEWkpAB2GZlgccBCAAAQgEk0BMAaYP2AOFbbZ+lJ83e8AQTIAABCAAgVQQiCnAfu0D/uGHH+xuTVpr972rbGrAmxFg35cjGYAABCBQCIGYAqxh//CHP9jjo48+kkcffdRTfcA66vrOO++UV155xY7S1mUxr776almxYoXkmoUrdM/ikSNHim6Z6FfnmBqwu3KlX83HbghAAAIQiEMg5jzg6Hc6d+4s48aNs166OMeCBQtE+4h37doVHSxt17Nnz5YTTzxR8swqUepmzZol5557rhx66KEyYsQIu2ex1oBPP/10+fjjj9NmV9ITsjVgdkRKOlcihAAEIOARAoXWgKPtW716tVx33XURIVYRfPnll+1OSFoTLV++fHTwlF5rrbdnz57yzjvv2HSeeOIJqVWrlqhNpUrty47Whrt16ybPPfdckWvBOuVqZQI1T/0A2L17d+ryavuAf05d/MQMAQhAAAIZJRBXgFVkzj77bDsS+uGHH5bbbrvNGqzNuxdffLHZNW+rqAimy+mymOFNITTNzaaf9JxzzomIb9gODaNLaRbVffLJJ3L77bfHfU1bALTPOWXO1IDdzdSAU8aXiCEAAQhkmEBcAZ48ebJdCeu7774zM2MqRcSpd+/eUtEsFjFo0CBxXVccJz0zVnVjiLFjx8pFF10kZcuWFW0i16bnRx55xPb/Kk+159///rcUZ7MI/djQI57TFcJ0m8ZUOe0Dlp+pAaeKL/FCAAIQyDSBuAKse/82a9bMim9BY3VjhnXr1sny5culUaNGBR+n5H7o0KFywgknSLt27eTWW2+VDh06yNFHHy2dOnWSCy+80A7Keumll+T999+3K3mlxIh0REofcDookwYEIACBjBGIK8AqrDNmzJCNGzdK9erV8xn66quv2qbfOnXq5PNP5U2DBg1k+vTpcvfdd9t9icODsTRNtVNdq1atbB+xCrVvne6CpLsh4SAAAQhAIJAE4gpw165dbVPrmWeeKUOGDJFQKGT3BNapP2PGjLH9sbo/cDpd06ZN7SAwnR61bNky20Suy2Xq5hH16tWTJk2apNOclKTlmCZusyekuHv2iHPQQSlJg0ghAAEIQCBzBOIKsE7pGT9+vAwePDgy+GnAgAHW4l69esmoUaMyZr1OPdKjdevWGbMhpQlrLViXo6xZM6XJEDkEIAABCKSfQFwBVpN04JOOPtY9grVPWGu82i9cnEFO6c+ij1M81AjwTwiwj0sQ0yEAAQgUSiAhAda3c3JyRAdd6YFLEwFTu5effkpTYiQDAQhAAALpJBB3Jax0GkNa+Qk4Vc1ylJuYipSfCncQgAAEgkEAAfZyOVID9nLpYBsEIACBEhFAgEuEL8UvmxqwUANOMWSihwAEIJAZAghwZrgnlKpjasAufcAJsSIQBCAAAb8RSGgQ1syZM+32fropQ6wNCHSENC4FBKqZQVgrVqYgYqKEAAQgAIFME4grwKtWrZIePXrYpSjbt29v13/OtNFZk772Aadyw4esAUlGIQABCHiPQFwBnjJlip2CpPsAV9ENAnBpI+BUryahjT+mLT0SggAEIACB9BGI2wesOwvprj+Ib/oKJZKSrr1t1uDGQQACEIBA8AjEFeAuXbrI0qVL5auvvgpe7r2eI+0D/pGFOLxeTNgHAQhAoDgE4jZB6567urm9bvd33nnn2dpwbm5uvrRuvvnmfPfcJImA9gFv3ixuXp44BZgnKQWigQAEIACBDBGIK8BffPGFjB071pr34osvxjQTAY6JpcSejuOI6IYMOhWpRo0Sx0cEEIAABCDgHQJxBbh79+5mW1r2pc1YkZmBWKIDsRDgjBUBCUMAAhBIBYG4AhydqE5JWrx4sRx22GFy1FFH2dHR0c+5TgGBakaAf2QkdArIEiUEIACBjBKIOwhLrdNBWF27dpX69evbs25DWMFsGD9kyBDRUdK41BFwatUU9wdGQqeOMDFDAAIQyAyBuDVgXfmqV69esm3bNhk6dKicddZZUqpUKZk+fbrce++9dm/g++67LzPWZ0Oq2vS8bn025JQ8QgACEMgqAnEFePLkybJw4UJ7NG/ePAJHV8XSQUIPPfSQIMARLEm/cGrWEHfDhqTHS4QQgAAEIJBZAnGboL/77jtp3bq1RItv2OTBgweblRJ/kGXLloW9OCebgBFg2fBDsmMlPghAAAIQyDCBuAJcp04dmT9/vugArILu3XffFZ0TXKtWrYKPuE8WgZo1jQBTA04WTuKBAAQg4BUCcQVYpyEdahaEuPjii60Q79q1S7Zu3Srvvfee3HHHHXLuuedKuXLlvJKfwNmxrwmaGnDgCpYMQQACWU8gbh9wxYoVZfz48TJgwABp1aqV7fcNj3zu1q2bjB49OushphQATdApxUvkEIAABDJFIK4Aq2E64EoHYs2ZM0cWLVokujxl06ZNpW3btpmyO3vSNXOuaYLOnuImpxCAQPYQSEiAFUf58uWlc+fO9sgePJnPqVOmjMIX1yxH6eja0DgIQAACEAgEgZgCrDXdqVOnyiWXXGL2AtgcWQu6sBzfcssthT3CPxkEDjOD3HQuMAKcDJrEAQEIQMATBAoV4Pvvv98OsFq+fLno9YEcAnwgOiV/5tSuLe7ateI0b1byyIgBAhCAAAQ8QSCmAF911VWih7omTZrIzz//7Aljs9aIcA04awGQcQhAAALBIxB3GlI4y+GRz3qvi2+8/fbbsm7duvBjzqkkUNsMxFoL61QiJm4IQAAC6SaQkADrVCMd9axuyZIltlas60PXq1dPJk2alG6bsy49x4yEdlkPOuvKnQxDAALBJhBXgHUpymuvvVY6depkdz4aMWKE3Yxh5syZ8uc//9kO1Ao2Ig/krm4dMwiLGrAHSgITIAABCCSNQFwBnj17tjRu3FjGjBljF+GYMGGC/P73v7dzg3Xw1erVq2X9enbrSVqJxIjIqWMGYa3cfynQGEHxggAEIAABnxCIK8A/mfmn1atXt9lZsGCBrDWjcXV5SnW6LKVuTahzhHEpJKA14NVrUpgAUUMAAhCAQLoJxBXgFi1ayNy5c2XatGl260Fd9/m0006z60EPHz5c2rVrJ7pcJS6FBHQ1LDPwzc3LS2EiRA0BCEAAAukkEHMaUrQBXbp0kZ49e0ZWwHr00UelQoUKctFFF4k2Rz/xxBPRwblOAQHH7DgluiuSaX0wI99SkAJRQgACEIBAugnEFWA16PXXX5evv/5aKlWqJHXr1rU26gCskSNHUvtNV4nVM9xXrUaA08WbdCAAAQikmEDcJmhN33EcOw0pLL46D1gHX23fvj3F5hF9mIBjBNhdY2rAOAhAAAIQCASBhASYecAeKOv6pul5+QoPGIIJEIAABCCQDAJxBZh5wMnAXPI4nAb1xV2xsuQREQMEIAABCHiCQFwBZh6wJ8pJpEEDkRXUgD1SGpgBAQhAoMQE4gow84BLzDgpETimCZrFOJKCkkggAAEIeIJAXAFmHrAnykmkoakBsxqWRwoDMyAAAQiUnEDcaUjMAy455GTE4FSuLGYxbnE3bRKnatVkREkcEIAABCCQQQJxBVhtYx5wBksoOunDG4ksXSaCAEdT4RoCEICALwnEbYLWXOk84GbNmkmVKlVE14Petm2bNG/enEU40lzkTqOG4i5bnuZUSQ4CEIAABFJBICEB1kU3+vTpI4cccohon7CuijV06FC58cYb5ddff02FXcQZi0C4BhzrGX4QgAAEIOArAnEFePfu3XL22WeLzgd++OGHIzsfnXzyyfLUU0/Jdddd56sM+9lYp/Hh1ID9XIDYDgEIQCCKQFwBnjx5sqxZs0Y+/vhjK7a6/aC63r17y9ixY+Xdd981Y4PcqCgzd6lLY65aFeB9c7UGvHhJ5gCTMgQgAAEIJI1AXAH+/vvvbf+vbsRQ0LVp00bWrVsny5cvL/goI/dvvvmmtGrVKiNppyNR58gjxP1+cTqSIg0IQAACEEgxgbijoBs1aiQzZsyQjRs3SvXq1fOZ8+qrr4rWiOvUMRvGp8k9+OCDhQr+t99+azeIuOqqq6w1xx9/vN02MU2mpT6Z+vVFNmwQd9cuccqUSX16pAABCEAAAikjEFeAu3btarcgPPPMM2XIkCESCoVEa8W6F/CYMWOkX79+Urp06ZQZWDDiefPmiQq/jsguKPybN2+WPXv2yLRp0+xrZYopUppHLzq7L7AuyLFkqUjTY7xoIjZBAAIQgECCBOIKsI58Hj9+vAwePNiKrcY7YMAAG32vXr1k1KhRCSaVnGAvvfSSHHfccXLPPffIwIED5YYbbpCcnH0t6S+88IJcf/31snDhwmIn9txzz8nFF18c930V6WXLzJzcNDvnqCPFNf3ADgKcZvIkBwEIQCC5BOL2AWut8quvvrLN0HPmzBEVQB18pVORVJgr6wpNaXQqtrfeeqt89NFH8vTTT4uu1LUiiZsU6IdGXl5e3EM/TLR5Pu3OCLB8syjtyZIgBCAAAQgkl0DcGvB7771na7w6ulgHXenhBXfCCSfIZ599Zucia434kUceidSEvWBfqmxwmhwl7n9npyp64oUABCAAgTQRiCvA1apVs6Zs2bLF9gWnya6EkilfvryMHj1azjrrLDvYqly5cgm95+dAztFNJPTs837OArZDAAIQgIAhEFeAW7Zsaft+TznlFDn33HOlcePGUnBwkw7OyqRTAdZ+32uvvdaO1s6kLSlP2wiwMBUp5ZhJAAIQgECqCcQV4M8//1zeeusta8crr7wS055MC7AaVaNGDSnMvphG+9TT0alguiuSmY7k1Kzp01xgNgQgAAEIxBXgHj162Lm1oPIQgWZNxf3qawTYQ0WCKRCAAASKSiDuKOjoCHeZBSC0Rhzo5R6jM+zRa8cIsBgBxkEAAhCAgH8JJCTAugqWLsShU290dan6ZkUmbfLVzRlw6SfgNDtG3G++TX/CpAgBCEAAAkkjELcJWndD0qlHZcuWtYtedOvWze4PPHPmTPnb3/4mmzZtkrvuuitpBhFRfAJO82YSevm1+AEJAQEIQAACniUQV4B1F6QNZsDPkiVLpHbt2pGMnHrqqVKhQgUZPny43HHHHVkxBzeS+UxfHHesyMIv7S5UjuNk2hrShwAEIACBYhCI2wSt+wBrrTdafMPpnH/++fLjjz/K6tWrw16c00DAMetgi+5O5ZFdqNKQZZKAAAQgEDgCcQVY5//OmjVLli41GwAUcM8884w0bNjQ9gkXeMRtigk4LY8Td+FXKU6F6CEAAQhAIFUE4jZBV61aVTp27Gj3BFYx1mlJOhhr9uzZopsf/P73v5cHHnggYt+FF16437aFkYdcJI9ACyPAn30ucnbP5MVJTBCAAAQgkDYCcQV4wYIFMnXqVLvloNaE9Qg7HZg1ceJEe4T9dFWqgvsGh59xTh4B5/hW4j73fPIiJCYIQAACEEgrgbgC3L17d9F1oHHeIuAc31JC19/kLaOwBgIQgAAEEiYQV4DDMem2hFr73bt3b9grcu7Zk2bQCIw0XTim7122bhX3hx/EMXOycRCAAAQg4C8CCQlw7969ZcKECbJnz56YuXPN2sS49BNw2rYRd85ccXqemf7ESRECEIAABEpEIK4Af/rpp1Z8n332WWnfvr1dkKNEKfJy8gi0OUHcT+eKIMDJY0pMEIAABNJEIK4A66b3TZs2lf79+6fJJJJJlIDTrq24ox9PNDjhIAABCEDAQwTizgPu3LmzfPPNN2zA4KFCC5vitDNN0LNm2xWxwn6cIQABCEDAHwTi1oCbNGkiY8aMkbZt28rvfvc7uy50weUP//SnP/kjtwGz0g6+MvO0ZZHZmOGYowOWO7IDAQhAINgE4grwL7/8Io8//risX79ennzySXsURIIAFySSvnvnpPbi/neWOAhw+qCTEgQgAIEkEIjbBD1lyhSZM2eOjB07VnQqko6ELngkwQ6iKCYBK8DTPynm27wGAQhAAAKZIhBXgHWzhebNm0ufPn3M+v+VpFSpUvsdmTKedEWcjieJ+8lMUEAAAhCAgM8IxBVg3XZw2bJlMTdj8FleA2mu06ypmKXKxF23LpD5I1MQgAAEgkogbh9w+fLlRRfiaNOmjfTq1UsaNGiw31zgm2++Oah8fJEv55SO4k79SJz+f/SFvRgJAQhAAAIicQV4/vz5Mn78eMvqjTfeiMkMAY6JJW2eTpdO4n40XQQBThtzEoIABCBQUgJxBZjNGEqKOPXvO6d2ldCDI1OfEClAAAIQgEDSCMTtA05aSkSUMgJ2CtLu3eIuWZKyNIgYAhCAAASSS6BQAQ6FQpLokVyTiK04BJzup4n7wZTivMo7EIAABCCQAQIxBfihhx6S3NzchI8M2E2SBQhYAZ44qYAvtxCAAAQg4FUCMfuAddejv/71r161GbtiEFABDl32Z3HNQinOQQfFCIEXBCAAAQh4iUBMAe7QoYPogfMPAadKFZFjm5vpSB+K0/10/xiOpRCAAASylEDMJugsZeH7bOec3VPc92iG9n1BkgEIQCArCCDAASpm55zfifvmW2xPGKAyJSsQgEBwCSDAASpbp8lRIhUriMz7LEC5IisQgAAEgkkAAQ5YuTq9z5XQa2MDliuyAwEIQCB4BBDggJVpzh/6iDvurYDliuxAAAIQCB4BBDhgZeqYkdBSprS4s2YHLGdkBwIQgECwCCDAwSpPm5ucAf0k9MprAcwZWYIABCAQHAIIcHDKMpITp//54r70ql2UI+LJBQQgAAEIeIoAAuyp4kiOMU7DhqJN0S5LUyYHKLFAAAIQSAEBBDgFUL0QpXPhQHGffNoLpmADBCAAAQjEIIAAx4ASBC9HR0P/d7a4a9cGITvkAQIQgEDgCCDAgSvSfRlyypYVZ2B/CY15MqA5JFsQgAAE/E0AAfZ3+R3Q+pzLLxX38afE3b37gOF4CAEIQAAC6SeAAKefedpS1KUpneNbifv6G2lLk4QgAAEIQCAxAghwYpx8G8q5/moJPfCQb+3HcAhAAAJBJYAAB7Vkf8tXzumnieTkSGjS+wHPKdmDAAQg4C8CCLC/yqtY1ubccpOE7h1RrHd5CQIQgAAEUkMAAU4NV0/F6pzXV2T9enGnTfeUXRgDAQhAIJsJIMBZUPqO40jO7cMk7y9/zYLckkUIQAAC/iDgawF2XbdQyjt27BA9cPsIOH88T+SXXyTE8pT8JCAAAQh4goAvBfj555+XRo0aSVmz2ET79u1lxowZ+8Hs16+fDBo0aD//bPWwteB775bQ0L+IGwplKwbyDQEIQMAzBHwnwB988IEV1gYNGshNN90kGzdulFNOOUX+8Y9/eAaqVw3JOesMcWrUEPepZ7xqInZBAAIQyBoCpfyW08cff1y6d+8ukyZNsqbfddddcvvtt8vVV18tFSpUKHGtd/z48TJs2LC4WLZv3y6rV6+OG85rAXJGPSR53YwQm7WincqVvWYe9kAAAhDIGgK+E+AVK1bkE1ltWr3zzjslLy9PLrnkEqlTp45069at2AXYtWtXGTt2bNz327RpIzVMbdJvzmneTJzz+kjolmGSO4ZWA7+VH/ZCAALBIeA7Aa5du7ZMnTpVrrrqqnylMHz4cFm1apX06dNHpk+fnu9ZUW4qVaokesRzOWZxi9KlS8cL5snnOcPNB8sxLcSdMVOckzp40kaMggAEIBB0Ar7rA9bBVRMmTLC13c8//zxf+TzzzDPSuXNn6dSpkyxcuDDfM27+R8A55BDJGf2I5F1kNmvYufN/D7iCAAQgAIG0EfCdAJ933nny17/+VV544QV7RJMqVaqUvPbaa9KrVy9ZsmRJ9COuCxDI+d1Z4rRpLaFb4/d3F3iVWwhAAAIQSAIB3wmw5vn//u//ZPPmzXLzzTfvh6BMmTLy7LPPyqxZs2TAgAH7PcfjfwRy/jFS3DffltAHk//nyRUEIAABCKSFgO/6gMNUdA5wrVq1wrf7ndu1a7efHx75Cego6NwXnpG8Pw4U57NZ4tSsmT8AdxCAAAQgkDICvqwBp4xGFkbsnHKy5FxxqeT9oT8LdGRh+ZNlCEAgcwQQ4Myx90zKzm23iFOxgoRu2L9J3zNGYggEIACBgBFAgANWoMXJjl2m8qV/iTvpPxJilaziIOQdCEAAAkUm4Ns+4CLnlBcOSMCpWFFyJ74teSd1EalfT3JOP+2A4XkIAQhAAAIlI0ANuGT8AvW2Yza4yB3/uoQuuEjcOZ8GKm9kBgIQgIDXCCDAXiuRDNvjtGsrOc8/LXk9z5XQy69m2BqShwAEIBBcAjRBB7dsi52znO6nizNpguSd0F7ENE3n9Dyz2HHxIgQgAAEIxCZADTg2l6z3dY5vJTnvjpfQoItpjs76XwMAIACBVBBAgFNBNSBx6v7BOS//a19z9L/fD0iuyAYEIAABbxBAgL1RDp61Qpujc3+rCYeeeMqzdmIYBCAAAb8RQID9VmIZsNdp20Zy53wioZGPSt6frxXX7L2MgwAEIACBkhFAgEvGL2vedho2lNzZn4isWCF5nU8Td/36rMk7GYUABCCQCgIIcCqoBjROp0IF0xz9lmjfcF7z4yU0iX7hgBY12YIABNJAAAFOA+SgJZFzy02S+/YbErr86n1N0r/+GrQskh8IQAACKSeAAKcccTATcE7qILkL5ops2yZ5x7WW0EfTgplRcgUBCEAgRQQQ4BSBzYZo7frR/3pacv7xsIT6D5a8Cy8R96efsiHr5BECEIBAiQkgwCVGSAQ5PbpL7vdfidSoLnlHNpPQo/9kpDQ/CwhAAAJxCCDAcQDxODECTvnyknv/PZI7c5rd1jCvybESGv92Yi8TCgIQgEAWEkCAs7DQU5ll5+gmkvve25Lz+D8kdPe9sveEExktnUrgxA0BCPiWAALs26LztuE5p3aVUvNmSc5tt0jo5r/I3tbtJfT2BG8bjXUQgAAE0kgAAU4j7GxMKuf3vaTUgnmSM+xWCd03QvZqH7FZ0tLduTMbcZBnCEAAAhECCHAEBRepJJDT62wp9d/pkvvsE/v6iGs3lLybbhF3yZJUJkvcEIAABDxLAAH2bNEE0zCn40mS++brkjt/jshBB0le+06Sd2oPCb3yGrXiYBY5uYIABAohgAAXAgbv1BJw6teX3Hvuktx1K8T58+XiPv+S5Jla8d7Lr5LQ1A9TmzixQwACEPAAAQTYA4WQzSY4ubmi/cS5/35Hcr/5QpymR0volmGyt1Z9ybtmiLjTposbCmUzIvIOAQgElAACHNCC9WO2nJo1Jfeaq6TUnBmS+99p4tQ+TPLMCOo8FWOzylborXfEZd1pPxYtNkMAAjEIIMAxoOCVeQJOo0aimz6UMlsg5n42S5zWx4s75sl9YnzamRL6+yhxFyzMvKFYAAEIQKCYBEoV8z1eg0DaCDh165p+4itEzKHTl9zJU8V9/wMJ9f2jyNZfxOnSSZyuncXpdIo4Rx6RNrtICAIQgEBJCCDAJaHHu2kn4JQtK07PM0X0MM5ds2afIH80XULD7xfZvVuck9qLc/JJ4rQ/UaRlC3FK8TNPe0GRIAQgEJcAf5niIiKAlwk4deqIM+gCET2Mc1evFnf6J+LOnCWhZ/4lstjMM27VUpy2rc3RRpwTWonTuLGXs4RtEIBAlhBAgLOkoLMlm7a5ut/5InoYZwdtfTpX3NmfivvGmxIaepvIli3iGFGWVqZ2rDXkFseJHHM0NeVs+ZGQTwh4hAAC7JGCwIzUENBdmkT7hs0Rdu6mTeLO+0xk/gJxJ06S0L0PiCxbLtLkKHGaN7OHND3GTomSww8Xx3HCr3KGAAQgkDQCCHDSUBKRXwg4VauKc1o3ET1+c67pO5avvhb3y6/sIWa96tDXi0TWrhU5orER42NEjjpSdLcnO9BLrytXDr/OGQIQgECRCSDARUbGC0Ek4JQuva+vWJumo5zdNOK778X9xojxom/tOtahhx8RWbJ0XyitNTdquE+kD28kYq7tfb164uQwy09wEIBAoQQQ4ELR8AACIjrqWo47VhxzFHTuTz/ZQV6uivHSZeKakdhiltQM6cCvjRtFzMIijopy/XoiDeqLU7eOSMMG4hhxFnPtVKhQMEruIQCBLCKAAGdRYZPV5BJwDj1UxBxOu7b7Rezu3SuyapW4K1aKLF9hrs3o7FlzRN58W0LLl4usWy+Sl7dPmGvV2ifStYxgq0gfdpg4dWqLq/d6rbVzHAQgEDgCCHDgipQMeYGAnXtsVvNyzFGYc7duFVlt5jGbqVNWkPV60XciH0yR0A+mBp1rmrA/nSeiAqzCXK2aFWZ7NuIsNarvq2VXr2bONUSqV6dWXRhs/CHgQQIIsAcLBZOyg4BTsaJI04r7BngdIMvu5s0i6zeIu97Umjf8sO9am7jN1Cr58UcJmWfy06Z9A8a0Vq2Dww4ztepKlcRRoTaDzsSItA4+k2qm1l6lijiHmmu9N2frf4D0eQQBCKSGAAKcGq7ECoGkEbCjrY2o6gjseM7ds2df//OPP4lrxNkK8w9GtH/eLLaveq6pUW80oq21b61lmznRYsJKFSPa2ietQq0fBirQem8E297rcyPoVrwrGn8j4qJnFXn1x0EAAkUmgAAXGRkvQMC7BJyDDhKpXdseThHMdFWIf/55n1CbedKyxQi03m/eIq6ev/1eRP2NcIe0tr1tmw0bOVc4ROQQc6hQH3ywOCrQB5ffJ9TmXiqZmr4KuoZTgdewh5hw1s/4a1i91nfp8y5CyRHUzwQQYD+XHrZDIEkEbC1Wa7INzcjvYsTpqiBrrdpsjqFn27/927X8Yvx+2Sa6AIqsXLWv1r19uw0bsmfz3q879r2v201qM7qKsYq0CrM56wIpojV59dPFVX57ZhdaUYEvZ0arq1+5cvtEvLw5/3Ztn2kYHdGuAs/a4MWjduI3AAAS5klEQVQoYV5JBQEEOBVUiRMCWUbAUfHTw1S+1RVHxPe9aZYPVQFW0VZR32aE2oiyu8MI9G9CLuHrHWZnLA2zwfSBbzfCrWKuAm7O7s5d4uq9htVn6q/XYYFXEVeBtocRZj0bP6dMGXM21yrWGkbvVdzNvaNh9F4/CrSWHr6359JiPwb0ub5rz/queUfD6vvqj4NAFAEEOAoGlxCAQOYJOLm5+waSRa00VhJBL5gjNxT6nxirKBshD4uzXXglfK/PzPaX9rk97xDbVK+D4YzAyy5zqKDrKmqmBh8K32s/vPrvMVPR9ANBPyj0rFPT1OmHiuZRBV5r4yroelaxNv6O1tZLmed61sVcwuH0ufrXPsy2HuwLZ94ra4Re4wsLvwq+dkWU2Xe2HxV6H+2vHwiapp712W/PWTxmXxGl619TAjgIQAAC2UPAioyKmx4FXDKFvkDU9tbOD1cxV7GOHEbA9VqFXPe7tuffnut1OJwKuwq/qZG7pnnffgzoR0Ke+aDQOFXotdav5/C9+ZgI6b1+ELjuvrN+gGirgDr9MFCn8aj/XhNWa/y6/rkKv55V+PVDQP31rEIf5W9bBnJMOBVz/RBQoQ9/ENh7I/Aq9iry5mzHKei9hrNn46/hfnse+SAIhzFpOq2PF8dMswuaQ4CDVqLkBwIQ8CwB2/8cbq4vxMpUfwQUkmzE21XB19p6+KwfAXpojV4/AvTQ58bPfizo/W5zqNBHPcsf9rd39D0TxrY0aJeCjafAuxpHOB49m3id226x89wjRgbkAgEOSEGSDQhAAALJIGCbrLU2G6OFoGD8mf5YKGiP3+5Ne4K/nWuaVTaaRQk26QhLHAQgAAEIQMAnBHwpwGvWrJGhQ4dKw4YNTTdCaalRo4ZZkvdQsyZAJWnRooXccMMNpmvjt74NnxQEZkIAAhCAQHYR8F0T9IoVK6Rjx45mDIAjffv2NfulH25W1DPL6Zl7rQUvW7ZM3njjDRk3bpxMmTJFGjdunF0lSm4hAAEIQMAXBHwnwCNGjLA138mTJ5tBd6afIoa755575IwzzpDnn39e7rjjjhghCveaNm2ajBkzpvAAvz3ZaUYZ/qALA+AgAAEIQAACxSDgOwGeP3++DBo0qFDxVQYHmeHsgwcPlkcffbTIAly/fn0555xz4qKcPn26HHnkkXHDEQACEIAABCAQi4DvBLhDhw4yY8YMueSSS2LlJ+I3depUqVOnTuQ+0YtGZvs4PeK5UaNGST3dWB0HAQhAAAIQKAYB3wlwv379REV4g1l+rn///raPVwdg5ZjJ2toHvHz5cnnppZdk4sSJos3UOAhAAAIQgIAXCfhOgFu2bCkLFiyQyy67zDZFh3T1lgKuW7du8p///Ec6depU4Am3EIAABCAAAW8Q8J0AK7YjjjjCjnDebVZiWblypa317jErptQ227DVrVvXTknyBl6sgAAEIAABCMQm4EsBDmdF5wCrGOuBgwAEIAABCPiJgC8X4vATYGyFAAQgAAEIxCKAAMeigh8EIAABCEAgxQQQ4BQDJnoIQAACEIBALAIIcCwq+EEAAhCAAARSTMDXg7BSzOaA0e8ye2V++OGHMm/evAOGi374xRdfyOLFi6V6ADeWjs5nItc//vij2Yu7lFSuXDmR4IEOs3btWsuhvG6AnuVO13rX2Qy6ml02O93lbenSpaxlb34E+rd269at0rt37yL9JPywQx4CXKQi/V/g0aNHy3PPPWdF5H++B7769NNPZdWqVfYPzIFDBv/punXr7E5WuohKtjtdPKZatWpyiG7UnuXu22+/lS1btiDARoC//vprs+f97iz/RYjouvv6kdqsWbMisbj22mulefPmRXon3YEd86XlpjvRbE3vsccek4ULF4qKd7Y7/c+hO1Vdc8012Y5CevToIddff710794961noFqO6IUqDBg2ymoWKTpUqVWTHjh1ZzUEzr+v/X3jhhfL5558HjgV9wIErUjIEAQhAAAJ+IIAA+6GUsBECEIAABAJHAAEOXJGSIQhAAAIQ8AMBBNgPpYSNEIAABCAQOAIIcOCKlAxBAAIQgIAfCCDAfiglbIQABCAAgcARQIADV6RkCAIQgAAE/EAAAfZDKWEjBCAAAQgEjgALcaSxSHVpNJ1YX6dOnTSm6s2kdGWbMmXKCCthiSxbtswuT8pKWCKLFi2yC7SwFKUrX331ledXckrHXxddlERXEDzyyCPTkVxa00CA04qbxCAAAQhAAAL7CNAEzS8BAhCAAAQgkAECCHAGoJMkBCAAAQhAAAHmNwABCEAAAhDIAAEEOAPQSRICEIAABCCAAPMbgAAEIAABCGSAAAKcAegkCQEIQAACEECA+Q1AAAIQgAAEMkAAAc4AdJKEAAQgAAEIIMD8BiAAAQhAAAIZIIAAZwA6SUIAAhCAAAQQ4DT+BlzXTWNq3k9q9+7dkpeX531DU2xhKBRKcQr+iZ7/I/4pKywtOQEEuOQM48bw+eefS//+/aVKlSpy+OGHy1133RX3naAH0A0IateuLZMmTQp6VmPmb/v27XLjjTdaBqVKlZIGDRrIPffcI3v37o0ZPsiee/bskYcfflhOPPFE0Q0pOnXqJLNnzw5ylhPKm/5GGjduLFdddVVC4YMWaNy4cXL00Ufvd6h/UFypoGTEq/n49ddfpU+fPtKuXTv58MMP5YsvvpA///nPkpOTI7fddptXzU6pXSq+Z599tvz0008pTcfLkV955ZUyYcIEK8Jdu3a117fffrvdLSvbPtCeeOIJueOOO+wHSMuWLeWRRx6RU089VebOnWv/+Hq5HFNp28033yxLly5NZRKejnvmzJmifz8HDx6cz85GjRrlu/f1jWnywaWQgPmj6lasWNE12xBGUjF/bNxq1aq5ZputiF+2XIwePdo9+OCD3SZNmmh7vPvuu+9mS9Yj+dy8ebNrPsDcm266KeKnF71793Zr1KiRzy/oN+YPrFurVi3XiE0kq1u2bLG/keHDh0f8su1i8uTJbtWqVd3DDjvMNR/s2ZZ9m1/zEeYa8Q103mmCTvHn0/vvvy9nnHGGlC1bNpLSOeecIz/++KN8+umnEb9suTB/VOXqq6+WiRMnZkuW98un9ns/9thjcsUVV+R7pl/2v/zyi5i/OPn8g3xTrlw5WbhwoQwbNiySzZ9//ll27dol2bonsP4GLr74Ytssr/tlO44TYZNNFwsWLJBWrVrZLAd1nAQCnOJf9OLFi6VOnTr5Ugnfr1+/Pp9/Ntxof/i9994rpUuXzobsxsyjqdnIpZdeKtFNafoH5pVXXrFdFdn2B9e0BkmFChVE+4KnT59uP0yqV68uffv2jckv6J5DhgyRpk2bysCBA4Oe1ULzp38bN27cKIsWLRLtotEKzPHHHy8ff/xxoe/48QF9wCkuta1bt4p+xUa7ypUr29sNGzZEe2fFtf5hxe1P4NZbb5V169bJm2++uf/DLPHRgVhDhw61uX366aelYcOGWZLz/2VTByW+/vrr8uWXX/7PMwuvdKyMuhkzZoiOl1ARfvzxx+153rx5ctxxxwWCCgKc4mLUZrSCNZrwvX7x4yBw9913ywMPPCAjRoyQtm3bZi2QP/7xj7a75oUXXrC14LVr1+Zrmg46GDM2QP70pz/Z30K9evWCnt0D5u+YY44RHZynrSDhCssll1xiZw3ceeed8sYbbxzwfb88pAk6xSVlBpiI9mlFO/2Ppk6b3XDZTcAMxJL/+7//k/vvv9+OiM5mGio6xx57rBWgs846S8yAvazqD9ffgnbNHHnkkfLRRx/ZY9u2bbJ69Wp7bQZtZs3Po379+qKCGxZfzXjNmjXllFNOsTNJggKCGnCKS1IFuGBfrzY1qtM5frjsJaDzgLXZVZvWtE84G50Z8SyffPKJdOzYUSpVqhRB0K1bNxk/frwVn2ypDc6fP190ip5OwYp2y5cvl7feekv0rPPFs8GtXLlStAVE54ZHO+0LDtLgPGrA0aWbgmv9Q6L9OtErPr333ntipibJCSeckIIUidIPBLTJWcX35Zdfzlrx1XLSj9OePXvaUeHR5ab/R8qXL2+bHKP9g3yt88JXrFiR7zjqqKNk0KBB1q9u3bpBzn6+vD3zzDPSoUMHOwgr/EBbDqdMmSKtW7cOe/n+jACnuAgvu+wy0R/Otddea5uip02bZpvYtB+DJugUw/do9GvWrLELT+ioTh2k9+STT+Y7smlsgJkPble+GjlypLzzzju21qOLcuj0vRtuuEFyc3M9WorJN0tby7TpNfrQJmn9O6F+2cSiX79+duTzNddcY5ucf/jhBzt9URcwuuWWW5IPP1MxBnqWs0cyp4tN6MIbpozt5HrT3OiaJQc9Yl1mzFi1alXWLsQxatQom3f9PcQ6dCGKbHKmqdHt0aNHhEWZMmVcs0qca9YKzyYMMfPavHlz1yxFGfNZ0D3176b58Ij8Lo444gjXrI4VqGw7mptMiX82pauYtXlJm5F07V8cBCCQn8CmTZvs3E9dLz1I/Xz5c8ldUQjo300dhKYtAToIK2gOAQ5aiZIfCEAAAhDwBQH6gH1RTBgJAQhAAAJBI4AAB61EyQ8EIAABCPiCAALsi2LCSAhAAAIQCBoBBDhoJUp+IAABCEDAFwQQYF8UE0ZCAAIQgEDQCCDAQStR8gMBCEAAAr4ggAD7opgwEgIQgAAEgkYAAQ5aiZIfCEAAAhDwBQEE2BfFhJEQgAAEIBA0Aghw0EqU/EAAAhCAgC8IIMC+KCaMhAAEIACBoBFAgINWouQHAhCAAAR8QQAB9kUxYSQEIAABCASNAAIctBIlPxCAAAQg4AsCCLAvigkjIQABCEAgaAQQ4KCVKPmBAAQgAAFfEECAfVFMGAkBCEAAAkEjgAAHrUTJDwQgAAEI+IIAAuyLYsJICEAAAhAIGgEEOGglSn4gAAEIQMAXBBBgXxQTRkIAAhCAQNAIIMBBK1HyAwEIQAACviCAAPuimDASAhCAAASCRgABDlqJkh8IQAACEPAFAQTYF8WEkRCAAAQgEDQCCHDQSpT8ZB2BiRMniuM4BzzatWtnuVSpUkXuv//+rGNEhiHgRQKlvGgUNkEAAokTaNmypbzwwguRF8aOHSvvvPNOPr9q1arZ5+eff740b948EpYLCEAgcwQc17jMJU/KEIBAsgkMGzZMhg8fLvzXTjZZ4oNAcgnQBJ1cnsQGAU8T6Ny5szz33HPWxv/+979y4oknyldffSWnnXaaVK1aVU4//XRZtmyZzJs3Tzp16iS1atWSq666SlavXp0vX08//bS0atVKKlSoIG3btrU17nwBuIEABOISQIDjIiIABIJD4IsvvpANGzbYDG3dulU+/fRT6dGjh7Rv315uu+020efnnnuu9O3bV9q0aSNam37++efln//8ZwTCiBEj5PLLL5emTZvKiy++KB07dpRevXrJuHHjImG4gAAE4hOgDzg+I0JAILAEQqGQFVMVX3UbN260g7Tuu+8+GTp0qPVbvny5vPfee3LvvffK5s2b5e6775YLLrhAnnnmGfv8nHPOkbVr18ott9wivXv3tn78AwEIxCeAAMdnRAgIBJrAySefHMnfsccea6/PPPPMiF/t2rVl8eLF9n7+/PmiNecWLVrIzJkzI2GOPPJIee2116yAV69ePeLPBQQgUDgBBLhwNjyBQFYQqFOnTiSfOTn7eqUaNGgQ8cvNzY1cr1ixwl5fd911Eb/oC60tI8DRRLiGQOEEEODC2fAEAllBIFpg42VYB2qpmzVrlh18VTC8zkfGQQACiRFgEFZinAgFAQgYAs2aNbMLfmhzc/TiH2PGjLEDt3bu3AknCEAgQQIIcIKgCAYBCIgcfvjhct5559kBWA8++KAdUf3WW2/JjTfeaEdFly1bFkwQgECCBBDgBEERDAIQ2Efg8ccft1OVbr31VjtP+Morr5T+/fuL3uMgAIHECbASVuKsCAkBCEQR2L17t6xZs0YaNmxom6OjHnEJAQgkQAABTgASQSAAAQhAAALJJkATdLKJEh8EIAABCEAgAQIIcAKQCAIBCEAAAhBINgEEONlEiQ8CEIAABCCQAAEEOAFIBIEABCAAAQgkmwACnGyixAcBCEAAAhBIgAACnAAkgkAAAhCAAASSTQABTjZR4oMABCAAAQgkQAABTgASQSAAAQhAAALJJoAAJ5so8UEAAhCAAAQSIIAAJwCJIBCAAAQgAIFkE0CAk02U+CAAAQhAAAIJEECAE4BEEAhAAAIQgECyCSDAySZKfBCAAAQgAIEECCDACUAiCAQgAAEIQCDZBBDgZBMlPghAAAIQgEACBBDgBCARBAIQgAAEIJBsAghwsokSHwQgAAEIQCABAghwApAIAgEIQAACEEg2AQQ42USJDwIQgAAEIJAAAQQ4AUgEgQAEIAABCCSbAAKcbKLEBwEIQAACEEiAAAKcACSCQAACEIAABJJN4P8B6PhiiAmwQcYAAAAASUVORK5CYII=" style="display: block; margin: auto;" /></p>
<p>Additionally, markets defined a term named advertising adstock, which describes the prolonged or lagged effect of advertising on consumer purchase behavior. It is also known as ‘advertising carry-over’. Adstock is an important component of marketing-mix models. An ad stock variable is created by computing the exponential decay of the impressions on each day and then sum up the total stock from impressions on previous days.</p>
<p>In order to make the report easy to understand, we will simply call this phenomenon as a advertising effect. In Model 3, we will count advertising effect into consideration.</p>
<p>By using R, we can transform the original impression factors into the new variables corresponding to four different channels, and their plots could be shown below:</p>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAGACAYAAABsocicAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VQNcC+8AAEAASURBVHgB7J0JvFVV2f8fVEBA5lHFARTFAcIBFSc0jYjCsbCywZGyTBoN5E2tjN5865++lWKpvW+iZfliiZkDlpoayuCUUwaKggMqVxEUnPiv3zos7r77rn0595y9nj2c3/p87j3n7LPPWuv5rn32Wfu3n+dZHdabIiwkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkUEICm5XQJppEAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAApYABVAeCCRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAqUlQAG0tENLw0iABEiABEiABEiABEiABEiABEiABEiABEiABCiA8hggARIgARIgARIgARIgARIgARIgARIgARIgARIoLQEKoKUdWhpGAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAZTHAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQGkJUAAt7dDSMBIgARIgARIgARIgARIgARIgARIgARIgARIgAQqgPAZIgARIgARIgARIgARIgARIgARIgARIgARIgARKS4ACaGmHloaRAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlQAOUxQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkUFoCFEBLO7Q0jARIgARIgARIgARIgARIgARIgARIgARIgARIgAIojwESIAESIAESIAESIAESIAESIAESIAESIAESIIHSEqAAWtqhpWEkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIUQHkMkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJlJYABdDSDi0NIwESIAESIAESIAESIAESIAESIAESIAESIAESoADKY4AESIAESIAESIAESIAESIAESIAESIAESIAESKC0BCiAlnZoaRgJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAFUB4DJEACJEACJEACJEACJEACJEACJEACJEACJEACpSVAAbS0Q0vDSIAESIAESIAESIAESIAESIAESIAESIAESIAEKIDyGCABEiABEiABEiABEiABEiABEiABEiABEiABEigtAQqgpR1aGkYCJEACJEACJEACJEACJEACJEACJEACJEACJEABlMcACZAACZAACZAACZAACZAACZAACZAACZAACZBAaQlQAC3t0NIwEiABEiABEiABEiABEiABEiABEiABEiABEiABCqA8BkiABEiABEiABEiABEiABEiABEiABEiABEiABEpLgAJoaYeWhpEACZAACZAACZAACZAACZAACZAACZAACZAACVAA5TFAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRQWgIUQEs7tDSMBEiABEiABEiABEiABEiABEiABEiABEiABEiAAiiPARIgARIgARIgARIgARIgARIgARIgARIgARIggdISoABa2qGlYSRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAhRAeQyQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmUlgAF0NIOLQ0jARIgARIgARIgARIgARIgARIgARIgARIgARKgAMpjgARIgARIgARIgARIgARIgARIgARIgARIgARIoLQEKICWdmhpGAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAVQHgMkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAKlJUABtLRDS8NIgARIgARIgARIgARIgARIgARIgARIgARIgAQogPIYIAESIAESIAESIAESIAESIAESIAESIAESIAESKC0BCqClHVoaRgIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAGUxwAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEBpCVAALe3Q0jASIAESIAESIAESIAESIAESIAESIAESIAESIAEKoDwGSIAESIAESIAESIAESIAESIAESIAESIAESIAESkuAAmhph5aGkQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJUADlMUACJEACJEACJEACJEACJEACJEACJEACJEACJFBaAhRASzu0NIwESIAESIAESIAESIAESIAESIAESIAESIAESGCLrBCsXr1aFi5cKCtWrJCePXvKkCFDZNiwYVl1h+2SAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmUkEAmAug111wj06dPl7322kv69u0ra9eulSVLllghdNasWdKnT58SoqZJJEACJEACJEACJEACJEACJEACJEACJEACJEAC2gQ6rDdFs9H333/fensuWLBA+vfv36LpGTNmSLdu3WTKlCkttvMFCZAACZAACZAACZAACZAACZAACZAACZAACZAACdRCQD0H6HvvvWe9Pnv16tWqv4MHDxZlPbZVH7iBBEiABEiABEiABEiABEiABEiABEiABEiABEigPATUQ+A7duwokyZNkrFjx8r48eOlX79+sm7dOlm8eLHMnTtX5s+fXx66tIQESIAESIAESIAESIAESIAESIAESIAESIAESCBTAuoh8M7ahx9+WObNmydLly6VLl262LD4Y489Vrp27ep24SMJkAAJkAAJkAAJkAAJpEaAi3CmhpIVkQAJkAAJkAAJkEChCKh7gDo6Q4cOlaamJundu/fGVeApfjo6fCQBEiABEiABEiABEkiTABfhTJMm6yIBEiABEiABEiCBYhHIxAM01AR0zZo1cs455wjC7FlIgAQak8DEiRNtio3GtL52q3n+rJ0dP0kCZSFQ5vNnyEU4ef4syzeAdpBA7QTKfP6sncqmP8nz56YZcQ8SKDsBzfOnugcoJqDTpk2TpFXgr7rqqppXgT/vvPPsIkqDBg0q+zFC+0iABDwEkE/4sMMO42JqHjab2sTz56YI8X0SKDeBsp8/N7UI58qVK2seYJ4/a0bHD5JAKQiU/fwZcpB4/gxJl3WTQP4JaJ8/1QXQkBPQDh06yHbbbSff/OY38z/S7CEJkEDqBJYtWyaXXnpp6vXmrcIQOex4/szbKLM/JKBLoOznz5CLcPL8qXussjUSyBuBsp8/Q/Lm+TMkXdZNAvknoH3+VBdAQ05A8z+87CEJkAAJ1EcgVAqR+nrFT5MACZBA/glMnTpVJkyY0GIRzjFjxsiFF17IRTjzP3zsIQmQAAmQAAmQAAnURUBdAEVv652A7rDDDvLss896DR8+fLh861vf8r7HjSRAAiRQZAIhU4gUmQv7TgIkQALVEuAinNWS4n4kQAIkQAIkQAIkUC4CmQigQFjPBHTp0qXeURg9erQMHDjQ+x43kgAJkEDRCYRMIVJ0Nuw/CZAACWyKAD3oN0WI75MACZAACZAACZBAeQlkIoByAlreA4qWkQAJhCPAFCLh2LJmEiCBchOgB325x5fWkQAJkAAJkAAJkMCmCKgLoJyAbmpI+D4JkAAJJBOoN4VIcs18hwRIgATKS4Ae9OUdW1pGAiRAAiRAAiRAAtUQUBdAOQGtZli4DwmQAAkkE6gnhUhyrXyHBEiABMpLgB705R1bWkYCJEACJEACJEAC1RBQF0A5Aa1mWLgPCZAACfgJMIWInwu3kgAJkMCmCNTrQT927Fh5/vnnWzWzbNky2WOPPbgIZysy3EACJEACJEACJEAC+SGgLoDC9HonoPnBx56QQL4JPGqu07buKdKnW777yd5VR4ApRKrjxL1aE1jxhsgrq0V237r1e9xCAo1EoB4P+t/85jfyzjvvtMJ13HHHSd++fVtt19iA73WPLUU6ZTKj17CwcdtY8opIZzOu2/ZqXAa0nARIIB0C69eL/GuFyK5trBf9xIsi/3xB5ON7pdMmayGBPBLIZLr08ssvy8iRI+0fLuhvu+02gWdo586d88iIfSoRgf+dJzL9BpFlM0pkVBumnDJL5CuHiXxmvzZ24luFIcAUIoUZqtx19NK7RK6ebya/5+eua+wQCagRqNeDfocddvD2FfNXzGOzKIf+P5HzPipywj5ZtM42QxI4/0aR/t1FfnJ8yFZYNwmQQNYEmt4UeeF1kdfeEsHz18wfbmwdOVykS6f6e/eyuQn+qStFnn5V5O/fENnGOMfEy3NNIhMvFRnUQ+T/HhCZcbTIkL7xvVq/fnFV5TOt3+EWEsgngUwE0L333luee+45efvtt2XUqFGy/fbb24njGWecIXfeeacMGjQon7RK2qvB54jcbU6GO1ZxkksLwTvviTz5ksie26RVY3X1dDHXJz3ND4p2uespkc06iBy8s27L75u7feve1W2TrYUjkEYKkZkzZ8qqVWa2Eiu33nqrDB9uZlospSTwmLmj/+bbIm+sFemewTmwlFBpVKEIlNWD3kwt5HVz0cxSPgIdzOBybMs3rrQoOwLwqn7VeM2/9IYIImOWvSYywlyLfnBXc33Ypf5+vfe+ERj/XREyP7zbpsXLeU+LzLpf5I5/VUTEXl1Fepu/XqYv6N83ZoscNLTSP9zkqsXTH9egZ/1B5LPGGQZ1f+VaketOF8H5JVq+M8fsd7jIlw4VueJeI4ZeInLyGNOHI6N7tXyOeeXkq0UOHSbyzTb2i35q8csiNz8m8rwRfJ9bKfKsEV7/bbY9dI5I362ie/I5CYQhkIkA6ky5/vrrZdy4cXLRRRfZTZdccolcdtllct5557ld+KhEYG3riK6gLeMu0/if63tiZiUI/m5hBae6AGp+iN/OQACFqH7X10WG9gt6GDVk5aeeeqpMmDBB5s2bJ88884wsX75ctt12W5k/f750725cRTZRXnvtNWlqMl/AWFmxYoV07WpmRiylI4AJ+QPLREYb57WFz4octkvpTKRBJLBJAmX1oDf3Oa3X0CYBcIfCEUDI6ipz04qFBEigdgL4Ht3+pMiv7hGBALq18XAcaP4GmCnzdr1FbnhY5OzrRUZuK/IhI1p+ZA+RHfpU354JZpXHXzKi4iKR6x8SGWxSVvQzQh7qPHRnkQl7ihxu5l0vGd+DV9ZU0hEhdQmiErfYvBKl98Oj/TencQPk1sdFrrqvEsF4+xSRYQOq6xuu/y4x0T/47KWfFBljhFT09foHRa6ZL3KiEURdmfuEESFXGEYnimy+mRE1Dxb52AiRk/5X5BbT/h+/INI15omKuj5v3j9giMjfDN+nDdsfH29E346u1uZHeJ7eYNjMeURk5ZsiR4+sXCMeZoRTjMEFf6nMU+HxykICoQlkIoCuN2ci3IlHyNBuu5kzzYay0047CcLjsy64QITX3IHmRKFZvvqHyskmiy+/tpcgfoyyKBBA12YgCOJH4h3zp12yEnxhJ0QXlvQJOA96eGs6D/qVK1fKvvvuW5UHPXIw+8pf//rXzHLY+frDbekReNR4f2KCiUnqAvP7RgE0PbasqTgE0vCgz6O1HUynVpmLZJbyEYCHFkJiWUiABNpPANchv/6HyJXGmxGelacdJHKMEd42MwJftHzxkMp1/92LRW4zYt8xMyvrJ0Ckm2j+fOHi7vNPGdHwa9eJvGwEzeP3Epk9udn5w4mXEFjPNd6VSGfRr1tFHEV/fvpxkX13cDX5H+GV+om9K38IS0cYO9rY3iPQLl0pct/TIg+aG974Q6TlGDPvu+2s5rUgYPt/HWfqu7wi9kIEhhPUf9xQ2d7RCLKuwO5bzWehT5w2ywi2nxeJvv+T2yssp44zzjYmsvNbs0WOu0zkfz5XEZiXNVXE5T89XBF9IQQjrB434+Pep7AHzlEsJKBBIBMBdM899xTkUUKo+4svviiTJ0+WP//5z3LWWWfJTTfdpGF3m238YVHlLo22ALpgqcge27TZtWBvagugThyDMBj/IQpmpKnYtRuyDV/dECKz8MR8z7SrPbbO/qzade2X/ZEe9GUf4fTsu/+ZyoRzn+1FLjceECwk0KgEyrgIp/mZZ5h0iQ9oitslHlyaFpTAd/9ciXr52QkimP+0VbDY2BG7Vv7gjXmPEUMh3I37b5Hhgyrh4/AMdSHouJ687O/Gs9L8nTuhsmhQXNSLipfvGoEQ3p71FAisCDmfZMTLP36xOe8m6p5p+nG5EXoP3knkA4ONEDmqkmZuS483prVn/4ro+Uvj8fnzO0VGmc8csrO/d8hBPPkakSlGCP35pMp1O8L8f7vACKRfqbze0gir4Ix88x//VSXUHl6fHzWiJ3JUQ4iN84m2Bq9ZCKYsJKBBIBMB9Oabb7a2IXzz0UcfNV+IDtKnTx+56667ZPBg8w3MuFixypxMtIv11jN3YbIo2mLVu+aHAwXemHGX+so7Yf5n6XmahQAKe7XH1o1cVu269sv6mHcP+rJyL7JduLmGsC5cAHz5d5UQKM0bT0Vmx76Xi0BZF+FkmHS5jlNnDeZwHFtHg48kUD0BCIVwaIJQ2Naq574aIdQhZRn+4LH4VxPefaXxJD33RuOBua/5Gy1ypplL4fr1L182Ie8mwmZTpV7x09X/WSNcrnEi6BcqixrB83JbIyDefGazKOr2T3qccrhZYOliI/I+ZDw2jW3wEk0qCIm/5JMmVP/XRjQ1nqzIE/qV3xvR9VMVb9bo5844tOIBC6H4ECPGVms3GD68PFoTn5NAOAKZCKDOnB133FHwh3LggQfaxzz8yypsGN56cCHPomiLVRsFUCP4agqgYJxFwTGVVei9tvCKO5Eob2Uk5ldaL+//vHvQl5d8cS27f6nJHfWRyh35QT0ruar22Lq49rDnJFArAZdCpEyLcHYwMBgmXesRke/PQYihAJrvMWLv8kkA0S5Y2Ki94mfcGoR8f3j3yh/yhyKfJlZK/9aRxivUiJFZFITs49ruAzMqiyXNOKoSqt+evsDj9WLjzXmUseWcD1dC/tv6PPb/9eeMZ+kvK4sjnTKmklbJ9xnwam+BgIsFqVhIQINApgKohoG1tAG39nUZiDdZCK8uJFx7EaSoAFrLGNX6maw8QO0xZX6stEsWx5TLdaotqmuzzaq9vHvQZ8WlkdvFee3kq0S+97HWeaGeXWnCjgwc5ABFQe4lm26FAmgFCP83JIEypRDBfV2KZOU8jN2cFY8QQ1lIIGsCq1evloULFwoWzuzZs6cMGTJEhg0blnW3WrSP8+Ev7zb5J89osbnuF1jYFeHc8IDEaupZFvQBed0Rzt5jy9p6svd27VuMeKvOIr8/TeTF15vnlLW13PpTmKMyB2hrLtwShgAFUA9XTDSyEG9su8rCqxMite11XoLaXpFZeYBmdUxlkQM0K1Hd81Uu5SaEcPbv3996z2+//fZyyy23CBb32HprKlqlHPAqjMJqoljBc0jfyuQ8+hF4f47esXnLviYMHrmtPn9A8zY+I4FGIVDGFCIdzOBhsQ2W8hFwc9Y31tUucpSPCi3KisA111wj06dPl7322ssumrl27VpZsmSJFUJnzZpl09ll1bdou8jNOc6k/YFgGaJkLX46m/bb0T3Te+zVpeJ1mnaL/bcSWW3Oc4ge9K0in3Z7rK+xCVAA9Yx/VuHKEI60BcGNQmRGwqu252lUnPMlhvYcDqlswiRWOxQdHc/EA3RDCLz22KYyUAWopIwhnAXAnusuznta5NCdK/mupppQJoQquQJvT3h9ugIB9OK/uVd8JIHGIlDWFCIUQMt5HMNJAV5XGN9avbzKSYZWaRN436xaO23aNFmwYIG9CR9tf8aMGXLVVVfJlClTopszed70ZiWn5S1mcR6W4hCAhztWnX/ehMHv1L84/WZPi0nApLVliRPIQjRCH9CutkjmPECzEF47mbwq2u2+48Q55XD0rDxAzXxF3Zs5KjLHv1t8nR4BF8KJkPg5c+bYiedll12WXgOsKTMCuAvenhsI/zAC6GG7iIzcVuTP/2zZbawAv19EAMXE8g0THrbijZb78RUJNAIBnC+fe+45+cMf/iAzZ85ssQjn8OHDC4nATB3t77z77S2kEey0lwCcFOBt9poRdVhIIEsC7733nvX67NXLJGuMFSxgDO/6PJRf3GnyWn6guoWJ8tBf9qGZABZCYhh8Mw8+C0cg4icSrpGi1YxJpLYQCUZoN7NQ9Aw8QOHi3p6L/DSOI3eBYNs1bvxaBR6g2rbCNndhpGUn2slKZNa0Mcu2yhjCmSXPPLZ9+E9FjjBazH8eU13v4AH6yX3NhN9cl1x+r0lSP6ryOSyMsvw1kd23bq4Hd9mxGjw8Qyfs2bydz0igkQjsuGM+F+GsZQxwIxvegfAS7NOtlhr4mbwSwNgi5JQevnkdocbpF1ItTZo0ScaOHSvjx4+Xfv36ybp162Tx4sUyd+5cmT9/fuYwXjY3dq8x3fjrVzPvCjtQAwHMYbkQUg3g+JF2E6AHqAdZFqKR64a6AGomVyja4hwmdV066bcLcQ4CgLa9WXmAZiHmO5E5i4XEKkdzuf+7EM4f/OAHcsEFF9i77jfeeKOcccYZcsIJJ5Tb+AawDjffXlgl8sjy6oxducaEDJmE9HsakRM5r542q5Q+taLyWYice20nsnnsl37fHUTmm/dYSIAEik8AXoIQybgSfPHHMm4B5lPWA9SI2ywkkDWBqVOnWs/5QYMGyfLly2XNmjUyZswYWbRokXTv3j3r7slld4t8Zj+RQT0y7wo7UAMBCKC4ac9CAqEJ0APUQxhhw1l5gGq360Lg1YVXM2HPygN0S3PUa9trhUhjs3bJIp0DVoHfDCKzcpoBbbZZtcdV4LMir9Puw0b43MOImf8yIuabb4t0NTeK2ioIf99/R/OdMyIndE54gs66X+S7ZkX4eP5PVw/ygP7wFveq+I/gdMe/RD5kBOCOJrUKCwk0EgHM4yiSlXPEcdO+F0LgKYCWc4ALaNXQoUOlqalJevfuvXEV+K5dzUGag4KUP2ePy0FH2IWaCCAE/m9mLsdCAqEJUAD1EIZolIV4k4VYhYnzFuaqWdsjEu1ioQ5tzphMQlDQthdexc4z0nPIBd2kLaqbNEFi87sqp1UICjGHlZcphDOHeDPrEjwzIWhi4Qs8Hzus7a4g/P2AIc37nDhaZPzPRaaZxZCwAvzXPtj8nns2ajuRx16o3AiKLpjk3i/a45MviUy+RuQ7HxH5wiFF6z37SwL1EcDcESIZw6Tr45jHT2/0AGUO0DwOT8P1Kc+rwONG6GMviuAGL0sxCTAEvpjjVsReUwD1jFpWQpXNE6nsNYfQqU4ZCJEQQOGpox0mjbHNyvPUc6ipbFIXmQ1je0xRAFUZXzZSLgIQPY81Cfx7mJDWfyypTgC98NhmBriDjrD3Gx6uhNHvbZ7HC86BuwwUeXiZWSF+x/i7xXt911OVsLef3ykyaZ+KN1zxrGCPSaD9BHBTFykubAg8RbL2A8z5JxBR04ceoDkfpcboXt5XgYf35we2FdnSzG9YikkA89flTcXsO3tdLAKImGOJEcDd9CxKFnkiIURm4a2XlfCKyaTNPaosNCOtAkoW4noW4f4Qt7WF1wph/ieBYhOAAIocnWOGiNy7pG1bEBb57EqREdu03A85sJALCyu+dzOepL4CL4kFz/reKd62O/9tvF53F5k4QuSiv/r7f+vjIjf9UwS/PSwkUBYCLoqnp7lhQg/Qsoxqsx2IqKF3bzMPPsuOQN5Xgcd86cCh2fFhy/UTQO7WV0xee9zYYyGBkAToAeqh6wRQiFbIq6ZVMgmBNycZG4qu7K2XlfAKATKLHKAQXlHeMpwR2qpRIKijaAug+OGCB6i2d2/FWv4ngeISWGIWMEKKjq17VrwYEc71lgnrwk0bX7nv6YpYukUs7+WRZgX5U2eJnGC8IZPKrsYD9ObHRM44NGmPYmxfvU7kn8+btAFGMIYQPPanIiePEdmxb3P/r39Q5Lw/V85J/zfZLBgVE4yb9+QzEigWAcxprAcovQSLNXBV9hZzZeZ3rRIWdwtKIO+rwEMAnT4+KAJWHpgAfssGmrW0sLDnDn0CN8bqG5qAorxXHM6YcKBArNIsmMhq52uErTYUXdkjcqMHqDJjiHNZrD7vhFfN3KPuDpq2EAlbO9MDVPPUwbZKQgDen6ON9ycKwrhGbtv2au3x/J+VT1YEkb98WeTLY92W1o8QSZFs/u7Frd8r0hZc9CDMH2H9fbeq5ACdcXOzBQiPP9+In9edJvLj44zg+9vK4lLNe/AZCRSXAH7nO5qZPEPgizuGbfUcc3SMLb1726LE97QI5HUVeNwIfeIlkX221yLBdkIRQBj8MobBh8LLejcQoADqORQgzuEuhKZYhW5k4gFqJldZ5GvEpM6G3isLrxDnssgBiosUCBqaxxRszYIxbM3imPJ8lbmJBIITeMHcqU6rRAVQ1IkweKzynlTwHvbxlRFGPB3az/dOZdtAE2r0u1NFzvq9yE/mmt8fc76IF3iPv/yGCUlaLbLShCU1mRyD2jcG432Kv77TCJzRhaJOP0jkgedMeL8Rkx9ZbkTga0UuP7GS83TiyIrA/J058Vr4mgSKSQC/85ubG45WADUpMVjKRQBzZesByvyu5RrYAluDVeB33XVXGTVqlOy33372L+tV4HEzeJ/tKtceBUbLrhsCXAiJh4EGAYbAeyhjwmFFMmVxDl3RDle2nphm8qx9UQvGCL3X9k6EOJeFAOqEV83xRdg9hEjcGdVM5wBbbQ7QdzxfLm4igRoJvGpEOHj45anAYx+h5pMPFjnmA/X3DEn8TzHh266MGSryX7e5Vy0f31grsvhlk/R/cMvt7Xl18E4it5wpcqYRCU+4wgiFnxHp0EFk7hNmuwmPh/ckziHrTaU4hyCtBhbrwyJLh+5s/oaJ7GZC6TVTxcTtQx9nfrp5K240Tf2w+fujyKtGtP3J8S0XerrgKJEP/0xkjlkkCoIoCwkUmcBGD1CGwBd5GBP7jjk6coAi3zMLCWRNIK+rwDP/Z9ZHRnrt0wM0PZasKZmAubRhiRPAhAMXUZpileuDdpsQyWwOUHMhr1nAOIuFciDOWU9MZXut8Gry+Gl7gG5hPJmdvcgtqFHcMaUtqmvYxjayIQBPvo/8ouLp96l9jYC1e+X8kU1vmlv9z1tFtu0l8r2bKt/tT5q+1VrgXbnCeFsON4KiKwjneuwFfx7Q+54xod/mfZxH6yn9Tb6l354icvHfRI6aKQKP1oOM8Dp+D5EfHVvxLIvWj5ykd/278vfFayo3WD49urIKO3KXapbnTJjUG+YGz+6DWrY6wfT9N/eJTDlcZNxuLd/DefDST4l86sqKkIvJNgsJFJWA9QA1v/M9t2SYdFHHsK1+w1mA3r1tEeJ7WgTSWAV+7733lmXLlrXqclNTk+yxxx7yrW99q9V71WyAAPr9j1WzJ/fJOwF4gGJ+y0ICIQlQAPXQdR6gmgIOBEF43mi2CdOtt545Ct4wnjKaBYyzCJOGONeji64QCa7grO1VDNEVi6OY6yIr5msJoLAVY7vKeKixkEAaBH5+p8gM47nX3RzMELa+aPI4Hr6LyFUnpVF7bXVgwaLfLxS542sVEe6Eyysh4rUuKoTwdwieUW9KnDOwYA9Waz9k55b9RMhXUvh7yz03/Qptfu2IyoJKWB0+adEl1IT3IEDjD+WZV43n6D0iR1xshFPjUQoR+IhdK++F/o/wd3ii4rczWtDHP30xuqXlczCdOs6E//9B5P9Ob/35lnu3/erFVSIDjGdydNza/gTfJYH0CGAuhRud9BJMj2measL4uoVKcZ0QX/AuT31lX8pNYFOrwK9cuXKTAObOnSuoJ17GjRsngwbF7mTGd0p4jfy4mI+N2i5hB24uFAEIoLNfK1SX2dkCEjAyBUucgBNANb31bLiyEavQtg1pMs81CtqyC9a8o9FacxuwE55La4z3jmbBBFJbiIR9GF9clGsK3GCMCyP8oV0tRyccU8g9qu3NrHkcsa3aCSCUb8/vm/yM/1HJbbapmjC5hdD1X2YBmx5GAD12VEV0+9z/itz4iMjHRmyqhjDvn3+jEdAOF+lnxC/83XCGyCQjgqLUIoLG839WajIi51AReDfEBdB/mG3fmeD2Sucx3kY1tWK1dYSVnzPeiIkPiPznLSLXzDfjdaxIn27V1FD7Pgh/H7dBiG1vLSfsY8Ljbxf51wqRXSNet+2pByL0x39VESh26lext6e5wXbZp5NrOeYykQefM8fwBcn78B0SqJaAE8Vw3HGhnGqpFWc/O74RgRu/NSwkkAWBNFaB79Onj7frW2yxhcllbC4caij4HcaN23qjYWpomh8JQABROYjuYSGBkATMzypLnEAWAqgLY9rSSNKawqv1AM1ArIJIBls1BUGMcxZja9t1wqsRIrWKmzhndUxpHsdaTNlO/QR+a8QxhEovfLa6uuYYkfOwYRXx030Cotu5Rvz77zvcFt1HrJ7+tPF8PHlMc7uDelS8Dn9xp8j/M8JaewsE0H13aP0peHligh8t8HZ4aHklhDu6Pcvn8DD/7P4it36lsvgSPEJvfzJcj/Dbdc/iigdoLa3Ak+oz+4n8z7xaPl25Ufm16yoepP80Yv6Pjzdi6N6VBZjuNv3yFZyT/20EV3isYmEpFhKol4C70clV4Oslmc/PY3wh7HB88zk+jdarPK4Cz/yf5ToKkVYKqZh8C3OWy1JakyUBCqAe+rhIgbfe2nc9bwbaZL0+zWjYfI2KIpn11lMWXYHQCq+mXW0vQUwms8jvattVttddGGVxTLmQrUBfF1ZbYAK/X2TyeRqvvWoF0OuMVyGEpXg5cnjlPAIxUrPgnHnuHJHvfqy1xwFW6507ReTq+0Xa0y8spvTP501Oz+1aWwLPBrznbhbB6/XQ/1cRgPE9y1uBuDfdeIPO/JTxhDWpCk76TZiJ7IPLRLYxE+UB3WsnAAH0jw9W8pi2t5bfLagIvfsbgRrzhZHbmuN0L5EvHFJJjeCrD7lThxpP0aNHilz/kG8PbiOB9hHAXApRHvid38x895Cjl6UcBJwAgHMqBNDXmVaoHANbcCvytgq8FUB3KjhUdn8jAdzw6Wuih158Y+MmPiGB1AlQAPUghXCkvVI4JrHw/scFraYoiHZtLk5FsRfIrfBq7NUUmdGuFbfNhYK2d6I9piCqK4rb1gM0g2MKtuIHTNNWjC1L/gk8bLwWcVyM3UVk0XOb7u/SlZXcTvAA9ZWvHCbyszt874Tb9ut/iAzpK/LBhDyX8ARFCPRZvxdZ1lRdP8BlWH8RX55eiGt7bCOCkPdpfzK5UG8WufnMysrz1dWezV4QBhdOrQi3WGE+6XftqRUiX/1DxaM2qadYfX71upbvIvwd+T/rKRBPx5pj67pF7asFx/BFfxX59rjWnzvOpGi49fHW/cWefzSiJ1I4QChFugAWEqiXANLruLyQCIPnauH1Es3P5zG2LqwXAigWymMhgSwJYBX4ESNGyMUXXyy33nqrXHXVVXLSSSfJhAkTpJocoGn3Hd+JZ8088QPbpl0z68uSAFeCz5J+Y7RNAdQzzhCOcCGqKeBk5gFqJljI1/i+ucCEGKpVrPCagUiWhbgNplkIr7DVeYZoHsuw1XqAKovqWscu26mdwB+M0PQJ480JT0fkQXQeLkk1QiQ6ZmTzBX58v4kjzF3i10XmPxN/J/3X8MBE/y/4i8j5xvuzrYJQduQHPe3qZOEv+vmk/J9uH4TBI+cpJvu3nlVZGMm9l+dHLFr1u1MquTGnGEEYQma0II3AJ404iv3wPjxh4wUebd+7SWT4d03OzrnNAs+d/66Il/H92/v68we0Pwz+f+eZY3j7itdnvD14ASOX6g0Pt3wHdtxmhNGjzDF74NBKCPy/Xmq5D1+RQHsJYC6F33kULoRU4VCW/xjbzTeMLXO8lmVUi2uHWwX+/vvvl9mzZ8uvfvUrK4Dec889cvDBB9vn2tbB+3P/HZu/J9rts70wBLAQ0rLXwtTNWkkABDb8tBJGlEAWIpmb6NhwZc9FYLR/aT537cLj1YVYpll/Ul120Sfj7aopzKEvVoiEuK3I2LZrJrJWVFds1wqgRmTWPqbQLrwWcGxtSuBKOj64vXwEcJPn+gcrAihEInjfPbmibTvhmecLf3efwsXhl8eGywWKYxgLMH39OiN4zTDC540ivzTenQhj3lQ5/SCRHftUvBs3te/fjZi3347Je33zSCP+HV8JK9+qc/J+eXwH4Zv/PckIfmsMvz8393C5mdyecLkIbPv+RJGBPcxCSjc0v49n+E361K8rN+ju/obJC7XKrDT/XxVB9NHn22bWsqbkV1hkCn3EhVQ1BZ6ol9wl8i3T76SCBZauXdjyXXiF7rO9Ce3aqrJiPDxFkd6hrfKGCXn9k/Ea/fSVInjOQgJxAjivRj1AuRBSnFBxX7ub2LCA4nZxx7EsPd/UKvDr43c4FQxn+LsC5AyaoAdoBtAbrEkKoJ4Bx4QSolFSyJ7nI3VvcqEu2gvWwFaIVTb03lxsahUICzb0XrFN2IYJJRivU2wXtuIC2wqRiu26yXMm7ZpjSltU1zp22U5tBG5/orLa9na9K5+HGLTo2eS64NXZ2ZyHkVuxrQKP0kdfqPy1tV9734PH3ilXVVY1Hz5I5K6vmzbOFRm/R/U1/fTjIljE6VIjmCWVm/5p6jYC6AFDkvaoeDdAVCtqwe/LlZ8VweJAYPGSETInGfHzi4cYgXN0xaqLP1FZQOh/TIoBFPw2TTYetBCRz/+oeexrFho6znhRGg9YLAIF4RvntjTKSQeIwKuzmvKruyuLcu0yMHnvw3ephOUtfrl5H+T8PMaInq64MHjfNSNyyCJtwD7/KTLb3DSAx+iXfuc+yUcSaCbgfuexhQvlNHMpwzPcsHfevfQALcOIFtuG6Crw3/ve9+SSSy6Rn/70p3LmmWfKjBkz5NRTT1U38OFl6dwIVe84G2yTAD1A28TDN1MgsFkKdZSuCghW6jlAzUQH3kzq7Rpb0a4Vyd7VG0pc3CL0PgtPTO0FrtwFira4bSfPhrF2XtmN9hpxQtvDV+8IZkvtJfAH4+0GsdIVhMG3lQf0/4zwc3xEMHKfiz/iRgqEtJ/dEX+n9euX32i9zbdl5RrTVyPQwVP1L2dW8m32Nx6r7S041/zzO2ZRHOPJeua1rb34IAaea7xK7z9bpJ/xDCxz6bGlWRzqZONBawTED15kvBqN8HnKgc0Ww0P+fz4n8tO/VrwxkUMVN+cgeuIGkitY+Aj7QQBNq0CMhBfui6varhEpCK64V+QbR7a9H35Tjzd1YtxR8Ll5T1cW/6psEYGAijG/Z4nbUnn81T0mt+gfRT6/v8hD5xhh9vMipx8s8sjzIvWEzGNew1I+AhhXHG8oViSjp3AFRgn+27mUOQeiUNyucOD/bAnkbRX4V81cDfM0lnIRoAdoucYzj9ZsmDblsWvZ9QnemOqCoGkTF3vq7RohsqM5CrTFOUzaIVxoemLiiMKEUltkdnfxMxMiDWdNIdLZq30sZ3fGYMubIgAB6J7FIh8b0bwnPECTVoKH9/2chysiUvMnkp99dj8RrI5++5P+fV54XWTcfxtR6TebXiUZCfWPurSSx/GiT/jra89WXLj+5cuVPJfjflaxGakhphqRCykB5pxRWc28PXUWdd+BRkSeazw4b/mKEfUOam0FvIMvP7HiHdqnm/EWNSvJu/De+N74vUyrdDNpBY75gBFojeelrzyyXOSHt4iMuEDko3uKbN/Ht1fLbZ/cp5IzFr91fzZevoftIoJ2ogUiaXQxJITEw8N00TSRCaYdCOgo+O04ZYzh8ffK6/b+R67VM37b3k9x/yIQsFE8G2byFMmKMGLV9xFzKczPURgCX+HA/9kTGDlypEyePFl+8IMfyH/8x3/IiSeeKF27ZqNCIrVOPzNXYCkXAXqAlms882iNmVazxAngggUiWXzV2fh+ab5uIRophkk77wFtUTAzD1AzobQeoIqMox6RK6r0QEvj2MrqmHJeC9qiehrMWEcYAhD6PjRcJJq/EmHlSHKO3IZYBCda5j5hQt8Hi2zdM7o1+Tm+09eeWhEVf3Gnydn5QZGDd64suoNV2+FViDDnVaatb10v8vMT/HVB/Dx6pvn8ESKfNR54aRXcDPjh0Ub4e0zk1FnGg9DUjxyY13+htSiWVpt5rAeenMiB2VYZvaM5Lma0tUeY9yYbL8uDf1IJr0fYqYuMuONfJmen6TfE+5vPrH4Bqp0HiGxrjl/kkMXq7z7B99gPmGPzdpEZ5thYsLSS23T26ZX8uHErP2eO3wP/q5I+APlSqy2/nS/yg5tN3ROr/QT3KxIBN4dDn60A+laRes++tkUAcynn3YuxZX7XtmjxvUYjgBzhuM6Jzx8bjUMZ7aUHaBlHNV82ZSaArl69WhYuXCgrVqyQnj17ypAhQ2TYsGG5oANxDuF4r6zW685GkcyMiOpiRMbWLDxPMWlHu2ANb6jNNtzlDk0cnG0OUONhplWsEGls1faI3HhMGfFFM9VAC+FVkbPWeLKd9hPA6unTPtzyc7iwG2VEToTBj42d+pEH8jPGq7M95aCdjNj0NSM2Gc9RLKYDD0IIV/j7oxEad+pfObd+6GIjZD3aOpfnUiN+HvRjEXh9IiQ6RPnw7pWcpvAmRBi3u7gN0RbrbB8B5Bi99JPmN8n8RuD3CX/wnD9xtMge27SvLrf3JOMFetV9Io+/IIK8oPGCtArwhJ79gMk1e6vJk/oZEQinvgIBBMclQvDPGe/bo+W2N98WQRoBiPoQ2ocl1NvyU3xVNAL2d97ML1DgJfjES5Xn/F98Am4OB0vw/UckBQsJZEVg1apVsvvuu8ubb75p0tKYiVWsfPvb35azzz47tjXcy1fNNfqmbqiGa501hyQAp6ytjGME0lbVkn4qZN9YdzkIZCKAXnPNNTJ9+nTZa6+9pG/fvrJ27VpZsmSJFUJnzZolffpUEV8WiL9btVpdrDJCIEL9sOiH5uJLznsAIXaaYdI2bMvY6zhDcNYoEOey9ADVZOwujGzofRYer8rHlMbxwzbaTwB5C3HhdsjOrT9r84A+21IAxYJGCNlFqHF7C26kYHXtY0aK3PCIyJp1RsDar7kWTKogcJ5+tcj+Q5pzR6G94y4TOftD4cRP1wt4tWJVdJb8EZhojps0y9HGw3PanyrHFFK++ApEceT8RH5UeL+2VZAL9CM/F5lyeLLnML5rv5lncofeJwIP00uMqJvUdltt8b1iEHA3HNFb6wFqxp+lHATczXNYw/yu5RjTIlvRo0cPufHGG23I+9133y29e/fO1ByGv2eKP3jjLgyeAmhw1A3ZQMKUPByL943COG3aNFmwYIH079+/RUNYRe6qq66SKVOmtNiu+WLjauzmQlldrDIX79phwy3sVfTWc8Krs1dNADVePRAENb1snRDpbNU6nt2FEUQfbXshbFtxW1F41eLKdtpH4L5nKqtYexwGrPcbPOSiBTkQke8wKfdjdN+k5xBCkdPRV/bdofLedOMlCnHo+dcrOSenftisvG089lhIIC0CWPjpJ8dXvH6T6kSqhWrTLSBHKm4kXG3C2hGyHy3LmszxfFcl3B75Q//3cyZn6bbRPfi8jASiXoJcKbxcIxwdW4rb5RrbolozatQoe40OR6Yvf/nLmZqBKM3+W2XaBTYekADmO5jX7LVdwEZYdcMSUBdA33vvPev12atXr1bQBw8eLCtXmnitDEtcmNPqykaRTFl4hb2dMhCrshJeIQp2Np6nqiHhhjFyykEQ1PTujR5TmqFTTnh13r1a3yG2k08CWOgIoqOvwAP069dVcnVCIEW4y62Pi5z/Md/e6W379jiRIy+uLLR04W0VMYniZ3p8WVMzgbSPqzMOreSRxU2C99ebdA6Pifxugcg/jec00kYgDQQ9Jpr5l/2Z+52HnVwop1yj7a5HOLblGteiW4MFkPJQIIAyBD4PIxGmD0hL9JwRQFlIIAQBdQG0Y8eOMmnSJBk7dqyMHz9e+vXrJ+vWrZPFixfL3LlzZf5849qQYbGh2VmJVRva1RTnYG/3zvqep25ip+4VacTIjuaoV/XuNYytAKrdrhNeTbvaHqDw3qMHaIYnshw1/cAyE3Ie81Zz3YNQgwT2S16p5Oj8HxO6C89NeLuELDg2f3aCyMRLRc6d4F+gJmT7rJsEaiUw0nh17miyBGHBJiwgBi/PT+5r8oeaUHoc1yybJpDnHPSb7n3LPdwNR2ylB2hLNkV/5RwFYAdy5ncyf0jr0s3M2VlIoNEJQADtt1WjUyiv/Tjnaeoh5SVJy3wEjDSiX6ZOnSoTJkyQefPmydKlS6VLly4yZswYufDCC6VrV5PFPcOSmTAXEclWKuZwgr1ZiFVRoVlVjIQAak6qECTfNiH/GrnRnIcGLk5VhcgNx5R2XllrL8R8ZcE3w9MGm04ggFXXsdr5bgMTdjCbsQgMvES3NUEBs+6vLNiSvHd67yCsJovVxtOzgDU1KoHfnCRyoVk06bSDKt+bRuVQi915zkFfiz1uzorPMky6FoL5/YwJmGuxUJ7z8KUAmt8xY8/0CLy6RmRQD7322JIuAaSrW21u+LCQQAgCmQigMGTo0KHS1NRkkyi7VeCzFj/Rr+jiPJpiVbRdTUEQ7brwbM07LS2EV8XcoxvFOSNGwl4VAdQw7piBd+9G4VVZiHQeKdrCK76/LPki8MBzlZXekZMzqextBFCsBI/jFavCD+2XtCe3kwAJgADyOp/3UbJoL4G856Bvrz3YP+ol2NN4068yF4zrTWoEX87lWurnZ7IjEB1b9MIK3G/xpkd2I8KW80QAHqB7bJOnHrEvaRKAALrSiNwsJBCCQCYCaJ7vwFthLgOxKqt2nSCovVJ4C+H1nRCHtr9OcIYHqAvPxiIVoQsYb45jKiMh0tka2k5XvzumtO117fMxPwQWPSuCPJ9tFbx/rclhiMWSvj+xrT35HgmQAAnUTiDvOehrsczNHfFZ3GhCSqPXjed96DQitfSVn2kfAYwt5o6u0MPXkeAjCYhwFfhyHwVI+aG5bka5adK6OAF1ATTvd+Bxx9WGhCuLVRvbhWeioiBoxSonCCp6YrpJuxVeldqFZ+JmZqEVFNV2N4iu2h6RG4XIDd6uFcvD/7ceoO6YUjyWw1vGFtpLAB6gnxrd9qf2NHfwH3tRZNgAk9dwp7b35bskQAIkUCuBvOegr8Uu/N76RDIKoLXQzNdn3BzO9Yo5Xh0JPpKAyKvMAVrqw0DzOr3UIGmcl0Dk3qL3/dQ3buoO/HrE7mRYnDCn7TXn2tX+wrtwZW1vvSwE32g4keb4ugsUbcaYPMPbVf2Ywk0Ec2axjJXE7QxPGWy6DQLI7Ykcn20VHKPdOolgVWsWEiABEghJADnoZ86cKYMGDZLly5fLmjVrbA76RYsWSffuZlW2ghX3O++6TZHMkSj+o5ufO0tcDlD3mo8k0MgE4AHat1sjEyi37UhRh7U6WEggBAF1D9A07sA/8sgjduX4OBBMZLGifD3FhmabC3Jt8aZFu4pec/YO8wZ7V7xRD7n2fdZN7DRFwWg4kWa7TnjVFF0xGhuF1wy8im2aAXN2wSI4LI1J4OlXRbqacMwBVWgKT57fmIxoNQmQgD6BvOagr4UE5nAtPEDNOqKvmTyRLMUn4ObnzhLkeH2dY+tw8LGBCcBXCosgcRX48h4EcN5520Q4sJBACALqAiiMqHcV+HPOOUdefNHETMYKVpTv1Mm4EtVR7ITDea8pCpHOA1RTmAOmFvYq3mlxEztNURAiMxYjQtFs1wmv2qI6GDshUjutAi7IbMi/CVFhaUwCyP+5z3aNaTutJgESyCeBPOegr4UY5jWYN7pCD1BHoviP7rrAWUIPUEeCj41OADd5tjKX+7jGYSknAQigmteu5aRIq5IIRKZNSbuE2V7PHfg5c+Z4OzV69GgZOHCg971qNzrPRO2wYesBmoHw2sJeRcE3C+HVCpEbfixxwaCVXNkJr/ihft/ctXSCaLXHZK37gTGESE2xF33FMZWF8ForJ34uDAGs7I4V3llIgARIIA8E8p6DvhZG8fkEF8qphWI+P+OuC1zvMLbLX3Ov+EgCjUsAK8D33apx7W8Ey20IvLmeZCGBEAQyEUDzfAfeCXNZiFVZ5E209hphrksWC+VAnFO8w+OESHyRNL0xoxco4PyWEZq3MqHBoQvsBV9tMT8r4TU0T9bfPgJYAOmYke37DPcmARIggVAENpWDfuXKlaGaDlavm8O5BqwAyjBph6PQj+56xBlBcduR4GOjE4AAyvD3ch8FWAWeOUDLPcZZWqcugOb9Drz1iDRfOhRNscq1a4VITU9MI5JBeN0sgzyRaFdzZfSoEKnpFWmF1w3HlBUjlQRQZ6+mrfjeWA9QM7baojraZskHAYSt/OslkRHb5qM/7AUJkAAJpJGD/pVXXhEIqfHyzjvvyLvvKuYR2tABO3c0v7euIExaM5+7a5eP6RNw1wWuZoxtE8Vth4OPDUzA5v/kAkilPgI09YFSg6RxXgLqAmje78BH77g64UjDWw/tZhE27OzdrINurg03sYOH4ptve4/N1De6xYhQMdqFJ6ZGcUIk2tL0PHXCq2absBHHVBah92ibJR8E/vm8yLABleM9Hz1iL0iABEig/hz048ePl2XLlrVC+eqrr2YjgJrfW9xMdgUL5Ty1wr3iY5EJuPm5s4H5XR0JPjY6AYbAl/8I6EwP0PIPcoYWqgugadyBD8nLTjg2eOtphmdHRSMtYQ4cnb1wNVdv10zaIc6tNCv5aRQ4bbjVUjXvLMWFV62kzk54hSemVr5TjKMTXm0Ca32HGI1DiW1sggDzf24CEN8mARLIjEA9OegXLFjg7XcaOei9FW9io/udd7txoRxHoviPrcbW5AB97c3i20ULSKBeAq9gBXh6gNaLMdefRw7Qda2DLXLdZ3auOATUBVCgqXcV+JB4o3dcnQdoyPZc3Vnma7Sh6DjRKIpVTnjVDJPOWojEWGumOIjaC4EbwiuO6dDFTdo1byCEton1t48ABNAjh7fvM9ybBEiABEITyHMO+lpsdzcc3WeZJ9KRKP5jdA4Ha+gBWvwxpQXpEIAH6G6D0qmLteSTgEsZl8/esVdFJ5CJAApoI0eOtH94vmrVKlm0aJF07WoS3GRcovmUNEOHnWgEgUzVExM5QI04pmkrhtgJzZois2OM9jXbjV6gaHJuZa8RuNF+6OIm7RDWtbxdQ9vE+ttHYNGzImd/qH2f4d4kQAIkEJJA3nPQ12J79Hcen6dIVgvFfH4mPrY9THqD1SZl1Psm7cFmkbQH+ew9e0UC4QhwEaRwbPNSM1eBz8tIlLMf6gIoEsXPnj27Bc3ly5fLb3/7W/nmN78pe+65p+yxxx4t3td84TwT0aamB5sTyTCpgXCElc/w5Q9dshAi168XwR/C0TXDpC3jDZPGrIRIa69S7lF3TOEY2ij4mhCq0MVN2q0AquhVHNou1l8dASzAsWadyNB+1e3PvUiABEhAg0Dec9DXwsDdcHSfZQi8I1H8x6hDBqzpYHL1I8fr62tFemfvL1J8wLSgsAQYAl/Yoau647he5irwVePiju0koCCxtezReqN8/eQnP5EXXnhBJk6caN9samoSrKx55513ylZbbZWtAAqPyIxFMifOqQigG+zVFntbMFYSBJ0wh4MOJ9bXlFbTzIPwqj2+HSFuG29TeoC2PP81wit4f+69fSNYShtJgASKRCDvOehrYYl5jZtP4fM2BF5pblNLf/mZ6glEHTLcpzC+TSYPKAVQR4SPjUjgVRMC32+rRrS8cWxG6jbN1HyNQ5aWgsAGqU8PRqdOneTee++Vk046SVauXCnf//735dxzz5UPfOADcskll8hHP/pRvc54WnIekXhLVTQyk1isAm/bVRSOnL0bPQQrXQj6PzqpU2VsxN4sGEeFV03OUeFVc9Enay/SKhiRmQJo0K9SLit/2KwAvw8F0FyODTtFAo1OADlbCmhhAABAAElEQVToZ86cKYMGDRJEH61Zs0bGjBlj0zB17969cHgwn3KLO6LzXTuZFENmrkPPmcINZasOu/l59A16+EZp8HmjEuAq8OUfeTgqUQAt/zhnZaG6BygM3WKLLazwec8998hRRx0lH//4x7Oyv1W7LcQ5TSEy6nmqKBzZEBuIVbBVKVw5OqnTbDfqKaEpzrUIRVcc2xbCq2K7TnjVFF1bfZG5ITMCT78iMm63zJpnwyRAAiTQJoG85qBvs9MJb2IO527sul2cSDageHquM4GPhgDGFoJ2tDDHa5QGn2dBYPXq1bJw4UJZsWKF9OzZU4YMGSLDhg1T6wpu7rxpIgfhDc1SXgJYn+R9ky6POY/LO8ZZWpaJAOoMPuigg+Tmm2+WKVOmyMCBA93mTB+tIJhBCHxmwuuG8ClMoCGYaZxoWjFWCoFHriycUFE0PTFbCJGKonoL4VWxXWevpshcGVX+zwOBp18VGcL8n3kYCvaBBEggQiDvOegjXa36KeaOUQ9QfNCtBE8BtGqMudwx6izgOujG1r3mIwloErjmmmtk+vTpstdee0nfvn1l7dq1smTJEiuEzpo1S/r06RO8O8z/GRxxbhrAdSS8QLvEbgTlpoPsSGEJZCqAghpCjq688srcAMxMiIx6gGp7Y24QBd0K9N06hx2OKGNNF3cIcy5Xlma70UUKNNt1QiRGU9PT1tmLHLYYaw1RPewRy9rbQwAeoEP6tucT3JcESIAEwhPIew76Wgh4RTKzQI5WjvNa+szPVEfAzlk3zM/dJ+gB6kjwUZvA+2YyP23aNFmwYIH079+/RfMzZsyQq666yjo0tXgjwAvk/+zL/J8ByOavSlwzIzqVAmj+xqboPcpcAM0bwOhkUtODLdquFcmUvCKj7TqvyOACKEK2ol62SrbCIzIrD9BORtRGcYwrr8L+d0IkWlEVXg1n55GiJaqHJcnaqyXwslkBHsI3LtJYSIAESCBPBFwO+u9+97vy1FNPyS9+8QsbxomLeuSgL2KJRtS4/tuVwrkQksNR2Ec7Z42t1ODSGxTWKHa8sATee+896/XZq1evVjYMHjzYruvR6o0AG+gBGgBqTqvE9QTzWed0cAreLQqgsQGMTiY1xSorREbDs7XycUKMVG4XtjqBTFNkjnqAqnpEGsbdN3jVarbbygNUS2g249vimDLthhbVY19jvsyIgA1/p/dnRvTZLAmQwKYI5DkH/ab67ns/ehPbvY8VwukB6mgU99E3tgiBf+H14trEnheXQMeOHWXSpEkyduxYGT9+vPTr10/WrVsnixcvlrlz58r8+fNVjMMCSP3pAarCOutGrABqrqFZSCBtArF7i2lXX7z6shQiXXi2piiYhRiJNuMCmcaREr2bDs9ErRXKo2FMmmNrc4A6T1tzq0PT3qjAzVX8NI7ufLQBAXQo83/mYzDYCxIggUQCLgf9I488kpsc9ImdbeMNe9PeEyZNAbQNaAV5K3oT23UZAmjTm+4VH0lAl8DUqVNl5syZMmjQIFm+fLmsWbNGxowZI4sWLbIp7TR6wxXgNSjnow3NiNh8WMxeaBGgB2iMdNQDFF88rUlkVHjVFOdgb4twdAXPU7S5USDTzne6QRDE2Gqteh8VXuEBusKECWuUFsKrouDbQnhVHF8NpmyjbQLPGAF0R3qAtg2J75IACeSCQN5y0NcCxc4dY64M8ABdxRD4WnDm6jN2LhUTtxECv2ptrrrJzjQYgaFDh0pTU5P07t174yrwXbuaA1OpQADt102pMTaTKQErgNIDNNMxKGvjFEBjIxudTNpw5VWxHQK9bNWughAJU9DuRjESoqBCmHQ8NyUmeevXi3ToEAjuhmqjnhKanphZjW0L4VVR8H3fjGU01+pbCsdU2CMnf7WvXr1aFi5caPPX9ezZU4YMGSLDhg3LvKNYAOkje2TeDXaABEiABBqCgM9LsK8RBx55viHML7WRvrHtZ0J/X1K6Lik1XBpXE4E8rAL/6hqRXQfW1H1+qGAEOpkbQMwBWrBBK0h3KYDGBgpiFTwwUVRFMiMCbgyBV/TWg73a4ejxSZ3jHHqVt1ZCpJIwZ9vdcBdf053feoC6EHilYwqiqxPUtb9D9kvbAP/yMAFNwrzEeIAOYQh8Eh5uJwESIIFUCURvKLuKkR8PC9KxFJtA4tgaDzgWEtAmkJdV4BkCrz3y2bXX2Vy7Mo1advzL3DIF0NjoQqxyAo71AFUSyaITHQiCGl5zEMjgdek8L7UW6LFhPZGQLdeuigC6QYh0bcaGP8jLaFoFm95AybsXx1TUE1Mj5D8qMgOm5ncoyODlrNK8TECTsCwxHqDMAZpEh9tJgARIIF0CZmHmjXNWV3P/7kYApUjmcBT2Me4sAEOsuM2xLeyYFrnjXAW+yKNXzL7TA7SY41aEXlMAjY2SzYmZgUgWncRqiUZeIVJB8LWTug2MgR/2QvDtHRuLtF9GxTlNT8yoB6jW2IJdVHhFuxp5o6Jtog+Ws5Lgi/bKXvIyAfVxRlhet04iW3X2vcttJEACJEACaROIzmtc3RTJHIliP8bnU7AGcznMq143OV57mgWRWEhAi0BeVoF/1dwAQCoIlvITwLnubXOTj4UE0iZAATRGFJPJrD1AtUSj+N1lrXZbCa/mKNTIPRqdTFohUkmYi16guHD/2GEX5GVUeNUa26itMEpT8A0CMWeV5mUC6sOCFeAZ/u4jw20kQAIkEIZA9HfetWA9QBkC73AU9tE3tjAGAjfCgCmAFnZoC9txrAI/YcIEmTdvnixdulS6dOliV4G/8MILpZqFkE488UR56aWXWtn/5JNPCm7wV1Pg3U4BtBpSxd8H164a+kDxSdGC9hKgABojFhXnNMWqqBgJ0QiTm9AlGnaPtrTEqqitmu1GJ5PIe4rFeuJ9CcE8LrxqpDeAHVExUutYtrbGvHs1Qu9DjFte66x3AhrKLiyANIQrwIfCy3pJgARIoBWB6O+8exOpdjDHQdRHjy3dVj4WjYBvbGEDBO4VRuDeqX/RLGJ/y0CgnlXgv/SlL8natebEFCvYjlXlN1Xg+YxrVQhjLOUn0MmMMz1Ayz/OWVjIU0iMelQQ0xIE0YUWwqs5uWuIRtGwe/RBSySLC69q3onm5qJbaAr24iIBYmTokN2o8KplK+yLC68ad9HiE3bN7xBsbpRSzwQ0FCPrAUoBNBRe1ksCJEACrQjgd94tZBl9cwDygBqRjAJolEqxnkevR6I9dx6g0W18TgIaBOpdhPOggw7ydrNHjx7Wm9T7ZmQjVoDv1y2ygU9LTYA5QEs9vJkaRwE0ht8KkRs82CAIaq0+honOxgVrTLsaYlVciNQSq+KTOq124+KcFSM1BNCI8GptzSL0XklUj4q9+Gppieqxr3GpX9Y7AQ0F5xkTAj9xRKjaWS8JkAAJkECcAH5zXdqm6HsIEUWoKL0Eo1SK9TzqGBHtOQTQFQpRYtE2+ZwE8rAIJ1eAb6zj0HqAKl0zNxZZWksBNHYMRMU5iFVa4cqY6DjvRC1BMGorMGiJc1GRWbNdXCjARle07I0Kr1pjCxuj4ehO7HW2h3qM2oo2NO0NZVOe6s3DBDSJB3OAJpHhdhIgARIIQyD+m+taoZegI1Hcx6hjRNQKjm2UBp9rEcjDIpwQQJn/U2vEs2/HOtFQAM1+IErYAwqgsUGNekVqCWTogp3EOs9TJW+9+N1lnGg0Vgr3Cq/GEzN0iYaEoy0t78QWY6vk3Qv7ohdGWsdyVHRFHzRD/tFe2UseJqBJjJkDNIkMt5MACZBAGALxeY1rxeWJdK/5WDwCUceIaO8xtgufjW7hcxIITyAPi3AyBD78OOepBXqA5mk0ytUXCqCx8YyKc1oCGbrQSqxSEASjtqIPnY3wuk4hrMYnvGqE/EeFSNiLHKBq7W6GFnU9IqP2anliRo9jZ+/qddZ0/kuBQB4moD4zXnhdpLtZbKNbZ9+73EYCJEACJBCCAH5zfTlA4SWIEHiW4hKwHqAb5o5RK+gBGqXB55oEsl6EkyHwmqOdfVtcBCn7MShrDyiAxkY2Gp6tJRqhC7iL7yaxWsJr1Fb0QavdVsKrOQo1cq3GxTl4J2osNhX1itT0iIzaqzW2cW8UfIcwYWFJj0C9E9BDDjlEli9f3qpD2Lbrrru22l7NBoa/V0OJ+5AACZBAegTeN+InSocOlcfof4hkDyyLbuHzohHAHK6t/K5Fs4f9LQeB3XbbTUaMGGHOOx3kySeflKeeekpwc16jvGIWQdqpn0ZLbCMPBHDNTCeaPIxE+fpgDi2WKIGoOOdWCY++H+p5dKJjPTEVcl7E7y5rCb6thFctT8xInlWMo5a9USESd7PwGhcum3nu7Kd1fK1fL4I/N3mGrVmIzFrCa1rcilJPPavAYxGld99tfYI5+uijZeutt64JAcPfa8LGD5EACZBAzQSiKZvilSBMGqvAsxSXQHyu7CwZwLF1KPioTODqq6+W73znO+b6Yr1ccMEFcu6558r+++8v3/jGN+Tee++Vvn37Bu3Rq8ahYv8dgzbBynNEAALoSiN6s5BA2gQogMaI2gnHBmEKAhUWJnrbaAUQrkIW6wG6oV0t0QiTZ7fyPGyzIeGtdZHUzY6KzKjcCpEK7UaFSNV2Y8KrE9ZDhgvjOHaLallbzfGrEu6Pdjfkst3IWCGdA9pqlFLvKvDbbbedF1Xnzp1rvotvPUDDznu9feZGEiABEmhUAvG5VJQDQ+CjNIr5PGl8MbZcBb6YY1rkXkP0nDlzpjz44IPy+OOPy2GHHWajifr06SMQRq+99lr50pe+FNREpPXgIkhBEeeq8k7melLDeSdXRrMzKgQCy3oqNqTaSHzC4cS54AJoJNRFyzMRtrYQyZQ8MeNeC1r2RkPRcdCotZvAOaQAasXemBD5loIQ2UpkNmcY/nild4rK6yrwEECPG5WenayJBEiABEigbQLRG/bxPSmAxokU73V8PuUswPVIt04iTW+K9O7qtvKRBMISwCKcCHvv0aOHDBo0SLp27Wr/0Oq2224rzz77bNgOmNoRAt+vW/Bm2EBOCGimjcuJyeyGEgEKoDHQcXHOfvkgHJkFPkIWTHScyOpE15DtoW7rJRgRyWCrRk7MVsKraffNt0Nb23KhKbSmdWL1Cq+BPV7jE2etY8q2Gzmm0K6G8Br+6MlHC3ldBf4ZI4DuSA/QfBwk7AUJkEBDEIjfsI8azRD4KI1iPo/Pp6JWwAsO+dUpgEap8HlIAltssYUcccQRMnLkSGlqapLJkyfLxIkTZdy4cXLFFVfIbbfdFrJ5WzdC4OkBGhxzbhqALoIoXBYSSJsABdAYUXODa2PeRLylIRxhEhtNYp/F6uTWVgigCl6CceEVjDVyfGAy6Raa2ji2Cva2EiMVOLdajEihTTBtZSu8ivnjBTSplDyuAo9csxBAh1IATWWMWQkJkAAJVEOgLYEMN3gxl3ztLZFeXaqpjfvkjUB8PhXtH/KArnhDZNiA6FY+J4GwBM477zw5+eSTZcstt5QBAwbI7NmzZfHixfK3v/2t5hzy1fYYc83JB4v0oQdotcgKvx9+x942ugwLCaRNwBxaLFECcQ9QK4AGFsniYUxaOUBbiWQQqwLbCtY+D1ANkQyTSbcoEPqhxtm02yovZmBRMH5hpJXPttUxpSS8YjwbpdS7CnzanF54vXKB3cWE5LGQAAmQAAnoEMDvbccNueN9LVovQSOSUQD10cn/NjufikTURHvsPECj2/icBDQIbL/99hubOe644zY+D/0EjkJnHR66FdafJwI2MlVBl8iTzeyLDgEKoDHO8ZAiDZEsLlZpeJ3C7PjdZa12rQdoZNKuITJbe3GxEJlMqrULATRqr4Io6LswcuPrUi3EDv1UXnqPZf54pcLWVfLyyy/bECSEISEnKMKO4BmKRYyyKEuM9+eQflm0zDZJgARIoHEJ4Pc2elM3TsJ6CZqQ0Z3pJRhHU4jX8Tl6tNPM8RqlweckQAJlJGBD4OkBWsahzdwmCqCxIWjljangFRmf5OAuF1Y+gzcmRKtQJX53WVMQhLDsihPm3OtQj/GLBc0coNrCa9xWMHXj2yNgPtu48KrFONQxk8d69957b3nuuefk7bffllGjRgnuxkMAPeOMM+TOO++0yek1+/30K0YAZfi7JnK2RQIkQAKtbmLHkUAkQ55IlmISiDtkRK2gABqlweckQAJlJAAthDlAyziy2dsU8UvLvjN56IENz457CYYOVzZ3N6Ih0uCgIRzFhVeNNmGbbTfOWMFLMC7OZSW8arQLxlHRVfOYinqkONEV7bOkS+D666+3yedvvvlmmTNnjkyZMkUuu+yydBupojasAE8BtApQ3IUESIAEUiQQv4kdrxoLISFPJEsxCcQdMqJWWAGUYxtFwuckQAIlI9DZOIGtC6zBlAwZzamSAAXQGKhW4dka4cqxEGl0SUM4ylKI1A4JB1PYm4U45xVeAwu+aDNqq+YxFRVeNcRe2NZIZb3JBI/Qd4S877bbbhtN32mnnTY+13yCBZB26q/ZItsiARIgARKwc7g2ZvH0AC32MfK+WfQl7hzhLIK4/TK9ex0OPpIACZSQQGd6gJZwVPNhUiQQWbdDq1evloULF8qKFSukZ8+eMmTIEBk2bJhuJzytxRfo0ViR3d7Fj01iNYSj+ORZI98pkMeFVy3PU3s3Pep5qiBuO3ujYqSGvfHFvNAPjfGNC68aQj5sa6Sy5557yg477GBD3V988UWZPHmy/PnPf5azzjpLbrrpJnUUr5tVhkOmVVA3iA2SAAmQQAEIxOdS8S5DAJ2/NL6Vr4tAAHOpzUw6rKTCEPgkMtxOAiRQFgLIAbqOOUDLMpy5siMTAfSaa66R6dOny1577SV9+/aVtWvXypIlS6wQOmvWLOnTp09mkCAcRe+4QqwKvUJ5XIiE8RrCUVx4xYkGfTHOZYJVw0OVuL0atsKWeD4ltKvhWg97owsPadgbtxX2a7QLW1t4gOL7E9jbFbblqTz++OOyaNEiOfHEEzd266KLLpJ99tlHDjnkkI3ban2CkHeUZ555Rh599FHpYJIG45x51113yeDBg2uttubP4cZC9PiuuSJ+kARIgARIoGoC8blU/IPwEmQO0DiVYrz23cSO9tx6gDIEPoqEz0mABEpGANcWzAFaskHNiTnm0NItCN2cNm2aLFiwQPr3bxk3OWPGDLnqqqtsLjvdXjW3FhcFVUQjIyBERVf0RsVbz4hV8Xbh8fqWEay6BVxQ2stYIcdHfEKpwRhCJBa1ihaNdq23a0zERruhBV9ckEW9XbVE9SjfrJ6/++67cvzxx8tTTz0lq1atkosvvth2BSHrTz/9tNxzzz2pdm3HHXcU/KEceOCB9jGLfzimkKichQRIgARIQI/Ae2buGP29jbfcz3iAMkw6TqUYr303saM9t+kN1oiY6UWrOWZ0Pz4nARIggaIS0IiYLCob9rs+AuoC6Htmxgavz169erXqObyXVq5c2Wq75gZ7Rz1yMW8F0MDiXFyYg71qwmtcJDMCKDz2ggqgMeFVw1YwjU8o0S7E3pDFK0RuYByyXWtr5DhGWyrHsrkg6+g7psx3qGunkBZnX/cWW2whl19+ub2589BDD8nHP/5x40m9mbzzzjvWM7Nbt27ZdzJAD96mB2gAqqySBEggFIG8pmBqr72+uWO0jgEUQKM4CvXcN3eMGoBIm+7GUaHpTZE+5ZxaRM3lcxIggQYkAAGUHqANOPAKJqsLoB07dpRJkybJ2LFjZfz48dKvXz9Zt26dLF68WObOnSvz589XMDu5iXhIkYY4Fxfm0DsNsSpuq21Xw0sQHq8RkUzDIxK2xSeUGoyzGtu4rXZstYTXyNi6YwqietkFUNgKr/aPfOQjNicnQtXPPPNMOeWUU6RHjx6CMPgylneMuB1Ne1BGG2kTCZBAOQjkOQVTewn75hfROugBGqVRrOe+m9hxC9z4UgCNk2nc16FTMDUuWVqeBQFEl4WOXMzCLraZPYGYVFHpEE6gV199dYve4eL973//e4tttb6YOnWqzJw50y7isXz5clmzZo2MGTPG5s3r3t0kLcqwtArPNoJg6ByGXrFKod24tyuwa4iCceG1sxHmNE5w8Qmlhmu9z0NDo13fhRGEZhWP15jnqcZCYhmeMlo1/dhjj1lP9i996Uv2vSuuuEJeeeUVwXm1jAUJynFMs5AACZBAvQRCzj9dCqb7779fZs+eLb/61a9s2iWkJzn44IPt83r7r/n5+Fwq3jZS0GxlIi/gJchSLAKbGltYw4WQijWmIXuLFExHH320TcP07W9/W/bbbz/7N3r0aLngggtkwIABIZtn3SQQhIDG9XKQjrPS3BNocdmqmcNu6NCh0tTUJL179964CnzXrl0zB4ZJR9SbCYJg6CTyPrFKQxSMi72AD3tDi2R2YhcRyTL1AA0cAu/L0aVxTHmFVwWh2Xcsa4jqmZ84Ih2A2IlzGcLfUdwiRbjRU8aC8BTmAC3jyNImEtAjoDH/zHsKpvbS9s3h4nX0Mz4FL5vFcnpnP72Od42v2yBQzdhyIaQ2ADbYW42agqnBhrnhzMU6Je+bPMehF2duOLA0WFoIoFon0LyGIEG8wYI1+HNFQ7yxHqARQRBta4iCcSFSrd14CLwR5pBHMHQy97g4p8HYJ0RqtBu3VWtsYW9cDNMQ1WFfXsoBBxwgZ599tnzmM58R3H1/4IEH7CJI++67b166mGo/7PmrxS9JqtWzMhIggQYgoDH/zHsKpvYOs28OF68DeUBXrBbZZWD8Hb7OMwE7tt4YveZe0wO0mQWfNWYKJo57+QngmhlRol1Kvo5E+UcyXxa2+nl1OeyWLVsmyGEHT80f/ehHMn369FR6nucQJN+EQ0usiubEBGgrvAb2TvTaa8TI0CH/vkm7Bue4GKnB2CtEKjD2iuoK7frsbbQQhk6dOsltt90mhx12mLz00kvy6U9/2uY3TuUEmsNK4AHaOXYDJ4fdZJdIgARyTiD0/BPm5zkFU3uHB16C8UUH43UgT2ToKKZ4m3xdPwHfXCpeKwXQOBG+brQUTBzx8hPANeRac53BQgJpEmglgKLykCfQTYUgrYcbYEbFF3KiEYoOYQ5u3tFi8yYG/sJ77d1wpyXal7SfJwqvge2Nh6NrCHO+/K4aY+ubPGfmzawgvKZ9jNZbH3IZYzGkQw89VIYPH27D4OutM6+fx8QE3yUWEiABEqiXQMj5p+sbbuzvuuuuMmrUqI258vKQgsn1r9pHzKU2987im2ugSNbMokjPfDex4/1nCHycCF83Wgomjnj5CSCXNVeCL/84a1vovWwNeQJNIwRp1qxZ8sYbJqlRrKxYsUK6dOkS21r9S68wZwiF9oiEWNVQHqCxEHiMkAuT7l39cLV7z4bzAI1dGEGkeu2tdmNr1we8wqvCd6hdnVTY+bTTTpMXXnhB3nzzTTn99NPtCvDz5s3bmBdUoQsqTWC8kTJkQ7pTlTbZCAmQQHkJhJx/glpeUzDVMqK+OWu8HopkcSLFeO27Loj3nOJ2nAhfN1oKJo54+QlYAdToBiwkkCYBrwAa+gSKECSEh1533XXy4IMPSo8ePWTEiBF2Ffhq7sI/8cQTdpXlOIi33npL1q1bF99c9WvrERnzxNQIk8ad3rgHKELCgy9G5GsX3nqBPTF9k3YNb8y4OJeVRyRsDc04biu+BNbeVVV/HWra0efxqvEdqqmzgT70zDPPyOrVq+WGG26QI4880obAL1y4UO677z4ZM2ZMoFazqZbh79lwZ6skUFYCIeefLgXTggULBOH20TJjxgy7CvyUKVOim3P93DdnjXcYItmSV+Jb+TrvBHyRYfE+UwCNE+Frl4Lp2muvlSVLltj55+GHH04wJFBYAlYfCJwSsLBw2PGaCXgF0NAnUN8d+NmzZ8vtt98u8O7s06dPmwZdcMEF3vfnz5/falLr3TFho0+Y0xDJMImN53FCu6G99RLtDXyi8U3aNUSyuDiHkyq2hVxdzncXXyXfKY6puJgP4TXw2CYKr4FF9YSvdCab4fXZu3dLX2YIot26dcukPyEbXWeOM9ydZSEBEiCBNAiEnH9uKgXTypUr0zBBrQ7fHC7eOD1A40SK8do3d4z3nPld40T4GgRcCqZHHnmk9CmYOOLlJ2AFUHOtwUICaRJIvHQNdQLN8x14O5mMi0YK+QvRbjyPk4rwatrNQiTzTdo1RMH3TXpZn6dtyNXlfHfxNcTeRCEysABqRebYd6jR7t7tvvvusnTpUvnCF75gw+BPPvlkeyd+5MiRaZ67c1EXPEApgOZiKNgJEigNgVDzzzRSMP3lL3+xqU3isJuamtRvcvl+5+P9opdgnEgxXsNRIH5dEO85xhYLXGHpBKSiYSEBEGiUFEwc7cYg0MlcUzIHaGOMtaaViQJoqBNonu/AZyXMod24EKkhGvmEV9tuYG89yzkmkoUWBSHM+SaTTmju0inM1853F9+1GabFSq3xfKfYqjG2vgsyDXtDsqy2buT83Mwkwxw4cKDMmTNH7rjjDuuRfvDBB8u4ceOqraZQ+/kE70IZwM6SAAnkjkCo+ScMRQqmCRMmCHIy40YV8sYjNcmFF14o1aRgQmqTl19+uRWzV199VXr16tVqe8gNvt/5eHsUQONEivG6mrHFDf0eW4qsXCPS14ihLCTQSCmYONqNQUBjMerGIEkrowS8AmjIE2gad+CjBqT53IZmxxaOCS3Mof++O70aohHajQuvKvYawde76FNA4dUnboM97EWu1ZYBy3gnnQKBqJXXqYJXcaLwGtoD1CPma3j3pjNa9dVy44032gtjiJ133nmnfOMb35Ajjjiivkpz/ml4T3eO3czIeZfZPRIggRwTCDn/dGZjFXh4bCJVSc+ePWXIkCFViZ/4/KWXXuqqafE4evRoe/OrxcbAL3w3HONN0kswTqQYr6sZW1gyoLvICuMFSgG0GOMaupeNlIIpNEvWnw8C9ADNxziUrRdeATT0CbTeO/ChBiHRMzGgMAdb0G4rIdKMTOh8jWg37hUJQXB17etIVTU0PuE1tMerT9xGZ0OLcz7hVcMTM1F4DXwsZyW8VnXgBd7pkEMOEfzNnDlTsCDb5Zdf3qLF3/zmN4KL5DIVhsCXaTRpCwlkTyD0/NOXgx6LhUAIrSYHffaEmnuA3/n43LH53cozegnGiRTjtW/u6Ou5E7h973Fb4xFopBRMjTe6jWkxrpnfNr91LCSQJgGvAKpxAkU+PJcTD6u6L1u2zIYipWlce+uywlzcAzRDITK4AIrJc9xeI4Aip1DIkiS8hlwZPWkyGdq13ie8anjZ+oTILgqep1Z49RxToUX1kMdrtXXjAvqhhx6Sxx9/XO6991754he/2OKj2uGRLRoP9KKaC/BATbNaEiCBEhIIOf/Mcw76WoayWi9BuxASvQRrQZzZZ3xzR19nMLYr3vC9w22NREAzBRMW9Vy4cKGsWLFiowf9sGHDGgk3bVUkgHUGEG3GQgJpEmghgGqdQK+77jo566yzZMCAAfL1r39dpk+fbsXQKVOm2LxMSICfRclCmIOdVkTwiEYhBUG067VXQ/D1Ca+B27WTSU+obhYeoKHbdMdUPM0A7qKFPqas8BrjDME3tKgOm7Mu0RB45JLr379/1l0K3j7uyuK4YiEBEiCBeghozD/znIO+FnZJN3bjddFLME4k/6/t2MbmUr5ec2x9VBpvW3T+GTIFU5k86BvvKCmmxRpRk8Ukw17XQ6DFpavGCXS9Wa7w/PPPl0WLFsn9998vkyZNkueff1769Okjv/zlL+X3v/+9nHrqqfXYVPNnMeGIhxNpiFU+cU7DS9DnvaXRrld4DeydmHShENpe39jibhb68775M2vmBCmoH8dutGgcy14PUNOPRrh714gh8BhXrgIf/ZbxOQmQQC0ENOafec5BXwszzC+6VrGAI0Qy5IlkKQ4BO3esYn5ox5YeoMUZ2EA91Zh/ls2DPtBQsNqUCTAHaMpAWZ0l0EIi0TiBvvPOO9K3b18ZNGiQHHXUUQKvT4ifKEhEf88999jnWfzDhCOeExMCFURRu9hHC1rp9dAnzmmIVb7wKbQbWqxKFF4Durhbxp676VYADd2uZxKLcHQsvtStc3rHUbQmn72hxV607wu912g3antWz4cPHy4vvviiXf2dIfBZjQLbJQESKCIBjfknuMRz0COcE1FHCOns1q1bodD55o4+A+gl6KOS721Vj60JmHvypXzbwt6FJ6CRgqlsHvThR4UtpEEAThZYb4CFBNIk0ELS0ziBdurUSUaNGiUTJ06UG264QX70ox9Ze/70pz/ZVZNvuummNO1rV13veDxAUYETI0OFemYlVvnshVgFYS5k8Qmv1sU9YLtJk0mVdj3Cq3PpDyaAGjE/HgIfWuzFMYNjqtWq9+YsEzqfbcjjtT11b7755nbld6z+vnz5cnnkkUcEOe222WYb2WKLFqfb9lSb233tIkie4zu3HWbHSIAEcklAY/4Jw5NSMO23336ZpmCqZVB8KWd89TBPpI9Kvrf55sm+Hvcz3r0v07vXh6ahtkU96EOlYCqbB31DHSAFNtZqMBRACzyC+ex6iytyjRMoMFx88cV2otmhQ4eNVOAVetddd1mhYONG5SdJEw7nwdazS5gOQZyDi3e0OIEsui3t5z57tUSyeKoB5xGZto2uPl8oOt4LbW+S8Bp6QSKfqB5a7AVPX9gWGIcW1dF2nsppp50myGmHFY1PP/10ueiii+w5b7NQOQ8yMj6kZ3xGJrFZEiCBDAhozD/znIKpFuS+lDO+euAB+tQK3zvcllcCvkgpX18HUAD1YWm4bZoe9Icddpi9kfTggw9Kjx49ZMSIETatHYRXFhJImwA9QNMmyvpAoIUAqnUCRcMHHHAAHjaWgw8+eOPzrJ7YCYcnXDm4SIY8TkYkihbbZkCPSLTls9d5u0b7kvbzJOG16c20W2quL0mIDG2vTxBEr4IfU/DEjB3LoduEXT7hVaNdtJ2X8swzzwjCKuHhfuSRR8qnP/1pG1553333yZgxY/LSzVT6Ue1FWiqNsRISIIHSEtCYf+Y5BVMtA5s0r4nXRQ/QOJH8v/bNk329pgeoj0rjbdNKweRbBGn27Nly++23y6xZszamtGu8EaDFoQhYAdToJCwkkCaBFgKo1gk0TQPSrCtpwhFajMxKNLL2xjxPQ9uK8YJoEvd4hRAZ0kuwTSEyoNDsG1swAGdte+F1+/76Sp7OeK5b9CmN4rsg0/BmTqPvadUBr8/evXu3qA6CaNHyy7UwIOEFVoHH5ISFBEiABOohEJ9/Hn300fLYY4/JrrvuanPG9+vXr57q7WfznIKpFuOS5hfxugb1YJh0nEneX/vmUr4+DzA5QF9/a0P0TWw+79uf28pLIHQKJi6CVN5jJ8+W4Rpy9bo895B9KyKBmI+YWQRoQw6773znO/L2229bz6W33nrLXtAj/0eZS5I3U2gBxyfOIURaZTGi2BEQ2lasfI4SyX5gX4cWXpMmk6Ht9Y0tDA7ueerJxYl2VVINxI6p0GMLu/JUkPNz6dKl8oUvfMGGwZ988snyxBNPyMiRI/PUzVT6ghyg+A6xkAAJkEC9BNz8E+fPadOmyWWXXSaPP/64QAzFe2kUpGCaPn26mYO0TsG0yy67pNGEWh1J84t4B7Yz9+OeeTW+la/zTABz1niqKF9/cRgPNCLo8td973JbIxJACqbJkyfbNTbuvvtuOfDAAwXiZb1lU4sgIcUICwmkTQDXGFwEKW2qrC/x0rVRcthFD4FMPUBjohH6hS89vAQhWoUoPntDi1W+hZdgm203YJJje6HguX4KbW+S8Bq8XeOZFw+BB2ccU+vMMbVVyNXnY8dyaLEXduWtzJkzx64G379/f0F6j3HjxuWti6n0Bx6g1VykpdIYKyEBEig9AY0UInlMwVTLwPrmcL568HuP8zTSDPVmmj4fotxtw5y12kgdCNzPNYns0Cd3ZrBDygRCnj+5CJLyYLI5SwARo6Edwoi68Qh4BdCQJ9A8I04U5wylkKtYW5HMJ85taDeUAOqzN7QQmTRhd8JcqOMjSYgM7hGZ4Ilp7Q0p+KLdmBAJtqHH1yc0hxZ7Qx0z9dTrPJmwGnyZC+7KxtNZlNle2kYCJBCWQCOlEKmXpG8Ol1Tn4F7GS/A1CqBJfPK2vVoPUPR72w1jmzcb2B99AqHPn1OnTpUJEybYRT3hqd+lSxeb2/7CCy+UahZB+t73vidNTUatj5Vnn302NS//WNV8WXACoa+XC46H3a+RgFcADX0CrbGvwT+WJM6FFo2SQu9DC0fvee4wh27T2pqFMJcgRMLeoIsvJXhihua8KVE91JfJJzRbWwOKvaFsYb2bJmAFUO+vyKY/yz1IgARIIE7Al0JkyZIlpUwhEre9va+T5qy+egZv8BLccxvfu9yWNwKYS1XrAYqxXdZaU8qbSeyPAgGN8+fQoUOtiIlc9z179pQhQ4ZUJX7C/MGDB9uV4+MoOnfuLGVPsxe3ma+rI8BV4KvjxL3aR8B76apxAm1fN3X2zkyITJjohBaOfN4DocOVkybsodv1CXM4qnBnaW1AcS5RiDTCa9B2E4RXeLxqezOH9u7VOTuwFR+BdeY4w/iykAAJkEBaBBolhUi9vKrNAYp24AG6zHiAshSDAOaO1UZXYGzve6YYdrGX4QmEPH/6VoHHDSoIodWsAn/KKad4AVx99dW2Du+b3NjQBHCNgXRbLCSQJoHES9eQJ9A0DUizrqzEuSSvyNDCkc9e3GnBxAv5sjfzeGrWyzsrkTnpQkHFE9PDUaVdT1oFHFNBhVdz3MRD70ML+fUek2l9fu3atfLKK68kVod8oLjLXaaC73O3TmWyiLaQAAlkTaBRUojUyznpBquvXngJLqeXoA9NLrdhztq1yvz/GNv/eyCXZrBTGRAIdf7kKvAZDCabrDgqmbUrWEggTQKJAmioE2ianU+7riQhMrRY5RMiYVto4ahNe41XZNcAwgZsjQtkGrYmXSgE9zzFJNbDMXi7bXEO+EPiywEK0RXHWihRPe3zQK31zZs3T7761a/ajyOPMlKJ7LnnnvLkk0/a8KDbbrtNRo0aVWv1ufwcQ+BzOSzsFAmQQAMQsPMazw1Wn+nIE3n/M753uC2PBJLmrL6+0rvXR4Xb0iawqVXgV65cmXaTrI8ExIbAm2tIFhJIk0CiAJpmI0WpK0mItGHDAcOkrRDp8dbTEF638LULL0EjkvmEu3rHEmH3vjZDe7tCmOvouVAIzTjpAsXaG/CYatPjNWS7bQmvgUT1eo/JtD5/2GGHyYMPPigQP08++WS58cYbpVu3brJu3To59thjS+f9CW5YmbGz5xySFlPWQwIkQAIk4CeQ9Dvv29utFO57j9vyRyDpesTXU4jbL7xe/pvMPtu5TY8AV4HXY82WmgkgFQicLVhIIE0CFEAjNJOESBs2HNBrLmmiE9pLEPb6vDFD5onM0gPUl1BeRYj0CERZCa/B2004ptyxHEJUj3yFc/H0qaeesp6fED9REPa+6667WmF0t912y0Uf0+pE0jkzrfpZDwmQQGMQaMQUIvWObNINVl+9bhV433vclj8C9rfVc9Pe19OOZo7Z10w3XnxDZJuevj24rewEtM6f9a4CX/ZxoH3pE+AiSOkzZY1G/4pC0DqBRtvM0/NEITLwgjW+xYjAJbRYlYUYaUXXjARBTBLjxTIOeGcp6QIF7a5eF+9Neq99oeioPbjgm+ABGlJUT49aOjUddNBB8rWvfU3OPPNM2XvvvWX+/PmC8Pgf/OAH6TSQo1oYAp+jwWBXSKDABBoxhUi9w2XncJ55ja/ePkYgQ/7vNWbe0a1cqah95hZ+W9L1SJJhbiV4CqBJhMq9XfP8ud1228nIkSMt0IceekheeOEFk+LKTP5ZSCAAATjQINqMhQTSJNDi/iJOoB/72MfsH3LXDR06VI466ijrvbTXXnvJ448/nmbbuasrKyEyKYwptDiXFI6Odt8K5PGaKAhuCLsPdVCAsc8D1DIOZCtsgb2Jwmvgdn3evaHtfX99coqDkIsvhTpuaqm3a9euctddd8mQIUOs+Anvz7/+9a82D2gt9eX5M1iZEaI6CwmQAAnUQ8ClEPnjH/8omG82NTXJokWLBHnlRo8eXcoUIvXwwmeToniS6mWuyCQy+dve3ugKjm3+xlCzR1rnzxkzZshnP/tZa9qRRx5pb/Rfeumlst9++8nSpUs1TWZbDUIAHqDrzLUGCwmkSaCFAKp1Ak3TgDTrSvSIDC3OJXjNubDhNG2M1gV7feJcSC/BtsReiCnrjYAWoiQKkQpj6xVeFdr15VoNeUxhwu6zFeMZWngNcczUU2f37t1l0qRJcvbZZ8vEiRNl8eLF8uKLL9ZTZS4/Cw9Q3zkkl51lp0iABHJPoK0UIrnvvHIHk+asSd1gHtAkMvnbXqsHaP4sYY80CYQ8f77zzjuCG1Rz5syxN/kHDRokf//73+VPf/qTTJs2TX79619rmsq2GoQAQ+AbZKCVzTQyTOvS1gm0bDnsotZDwOnuCQ0KLd5YUdATxhSyXbS5WYeo9c3Pg7abIPaidQiv8BJEuHTaBQKoT5zrbNoK6VoPzj6BCIyDtpvAOejYwtYWt1SaR9G22yAhDKtWrbIeTFj8CBNGhAZ16dJFbr/9dsGEsUwFNy0wOWEhARIggTQINFIKkXp5Jc1rkurFYjnLX0t6l9vzRABj64viSeojPED/+XzSu9zeKARCnj8333xzO6fF3HazzTZr4ZXfo0cP+16jcKadegRCOmXpWcGW8kbAK1fgBPq3v/3NurZfeeWVcsYZZ8gdd9whY8eOzVv/U+2PvZueJEQGFG+SJjohv/RJbQJoSC/BJLE3dLs2nMhztIe0FTYlXaAEbzdBeA19TPlEZju2RvBdGzDkH23kpfzjH/+Qww8/XBYuXCjwqkd+pAMOOEAwQSxbsTlAPefMstlJe0iABHQINFIKkXqJMky6XoL5/Tzmjr6b50k9Rg7Q55qS3uX2RiEQ8vwJ0fOkk06SMWPGWE0Ac9xPfOIT8tWvflW+/vWvy+mnn94omGmnIgFct3IVeEXgDdKU13fHnUDhzo4FPJDDDnk/sL3MBZNJ3x3X4GIV7vR6RISg3noJbWJ8g7frESJDt5sUTtSlU2BPzASvSDAOlWcVLJOEV3jXhlp8qa0Je+jvEGzOS8Ekceutt5aBAwfKkiVLZIsttrA3jyCMHnPMMXnpZir9sB6gnnNXKpWzEhIggYYk4FKIvPvuu9aDHilEBg8eXDoP+noHN2lek1QvRLJHH0t6l9vzRCBpDpfUR+YATSLTeNtDnj+nTJkiH/3oR+WGG26QI444wnqCYr2Q888/X3r1Mm7ILCSQMoFO5hojZMRkyt1ldQUh4BVA0feQJ9C8ssGEwyuABvZeS2oXYlUokSypTYzNViYNwJuBvPVsuwmCSVcjRoZaKCfJU6LnliKvrxVzkWVSAiQIs/Ucr7DX5xWZlfDay9zDeDaQlwC8e322gh/sbZQ7ePvvv7+9I47J4U477STnnHOO3HzzzXLdddfVcyjl8rPWAzTxVySXXWanSIAEckygkVKI1DsMSQt3JtWLHKDLAv3+J7XJ7bURsNFS7ZiTulXga2uNnyoLAY3z584772w9PsvCjHbkm0DIyMV8W87ehSTg/XnFCXT48OHWzR2hm/g77rjj5I033gjZl8zrThLnIMyFvPuAiY4v1AXtvvV2GCx2cpUgRPY2ItnKNYHaTRCZ0VqvLuHaTfKU6GDyoPYwgi9E0BAlSXjtHdBW2JEkvILx62+FsNSsSGvG1nccozW0+2qgYyqMNbXXilD3W265xXos/eIXvzALe62Xc889V3CXvGyFOUDLNqK0hwSyJdBIKUTqJZ00r0mqFzlAl72W9C6354lA0vVIUh/hMNHNzGVfWZ20B7c3AgGePxthlBvLRkTIvm8WSIajEgsJpEXAK4A26gk06Y4rBMFXAoo3iWIVhMg30xrqlvXYyZV39CtiVVOodhPSDKB3PbMS5wzn1wKJgkkXKLA1VJtgmSS8Qoh8LdDYJtmK/sDzNKS9aCNPBeGauEvet29f+eEPf1i60HfHmjlAHQk+kgAJpEGgrRQiadRfpjramsf57BzYvfI7HPKGvq9dbms/gfaOLVqAhy/zgLafdZk+wfNnmUaTtjgCSKPG3y1Hg49pEPBKYI16ArUTDo9XZEjRCINoPUA9IxGy3SSxF/0JKUQmMUa7IUWytsS5kPYmeUWGtBUsk+wNKbxa0dVzHNuxDSz4og0WfQL0ANVnzhZJoMwEkEJk9uzZdpENl0LkiiuukJEjR5bZ7JpsayuSx1chIl626cmV4H1s8ratrTl6Ul+RB3Q5PXyT8DTEdp4/G2KYG85IhMGHSpHXcDBpsCXglSsa9QSadMc1tFgFkcy3CBI8T0N5zSXZiqMipL1tTepCCr5JHpHW3gy8IpFnFauig0eIkoXwakVXzw0E2BdSZA7Br546165dK++9F2hg6+lYgM/SAzQAVFZJAg1MoJFSiNQ7zG3N45LqZq7IJDL52l7L2DLFQb7GMIve8PyZBXW2GZpAJyOANso6EqFZsv4KAe/yFe4Eigt55LD78Y9/XNocdtEDIUmcQ15DrEK2Zl0lx070M2k8T2oXgmDQUPQEsSqkENnWpC6k8JrkEYnxCynOteUVCYEb49vfhKWlXZLszcrWkMdU2uzqre+pp56yOZOPPfZY+fznPy977LFHvVXm9vNcBCm3Q8OOkUBhCSCFiCtIIcLiJ5D0O+/fu7KVq4W3RSc/77V1QzmplxC3n34l6V1ubxQCPH82ykg3jp1WAG0Mv5LGGdSMLfUKoOhTI55ArTiXJApu8MZEkvG0S1K7VjQKlJuyLSEypEiWZCuYot1QK5S2JUQGF14TjinHOYQACnsh2sdLd3P8vrXB89TndRzfvz2v27oYC8m4PX3U2HfEiBHy/9s7E3ApiuvtH5R93xdBFBFQFBRxQ1BccTcxLtEYl5ioUaPExA2N+jdGo36aqFFDoiGLK66J+x5xVxaNuCMgILKDINsF5X711ty+3Dt3Zrq6q3qZ6beeZ2Cmp7uqzq96+la/feqcd999Vx5++GE599xzZdWqVXLiiSfK8ccfLx07doyjC7G1oZfAFzjPYusAGyIBEiCBjBIoNa8phoQCaDEy6doeZmwRA/SVaemyg70hARIgAVsCOhO8undlIQFXBAougXdVebnVU8wTE3Yga3dUyWOKiZGeQBYFx1JCZJRiVSnGUXoJlhTn1NhGlhldCZFNivzKohK4vUx5iPeVX7ANIuiKCLLeF1t2jz5EZWu+fWn53Lp1a+39+ec//1kQUuSiiy6SPffcU84++2yBZ32lFMYArZSRpB0kQALlRgCZcYM+yISX4Nxl5WZp9vpbas5ajAaWwDMGaDE63E4CJFCuBLQASg/Qch2+VPa7qAdoKnsbcaeKCZFoFqLgsqi8MdWPunEBkQwT2xZNRL5Rekmb5m6NL2lr1GJvEY+xKGOe6qfpRdqFODd/hVu+Xm2lJrFR2VtKiES/vHY7tvJ66eZ/hL3ctMB5jNqjFLfd9N5dLStXrpRx48bJ3XffLdXV1XLKKafInDlzpEOHDnLmmWfKPffcIz/96U/dNZhQTco0nWwLIUJYSIAESMAFgY8//limTJkiJ5xwQm11N910kwwdOlQ/RKrdmPE3mNMU+3tbCg08QOcwUU4pRKn4rtQcvVgH6d1bjEzlb//f//6nQ9YVs/T888+X/v37F/ua20kg1QSwopExQFM9RGXXuXoCaNYvoKW8IqP2xkR8i0LF88Z0LoAWEV3Rh3ZKbF2h4p1C4CjkRVion6bbSk3q0G5USZ9KCZFg/MkCUwuC7VdKjMQ5FYW9pWxF7yFGRhFbtpSt3nkcjF557j1z5kz54osvBJmLsRy+bjnttNMEMZYroVR9WzjMQiXYRhtIgATiJfDtt9/KUUcdJYihvGLFCrn55pt1B/AQCdfU119/Pd4Opby1UnOpUl1nEqRSdNLznV4tFfDhIuaUKFjR5L3PbeG/lU6ga9eucuCBBxY1s9LCLxU1lF9UJAEmQarIYU3UqHqyW9YvoKUmlFF5sEGsKiUyeu0ito/LUkrs3UR58WGZ9HLleYr2XZaSS+Br4qy6bM+rq5Q4B+E1qiXwSXhF+sWOikrMLyW81s16H3TJnjeG5fI/RM/rrrtO5s+fr2/cN6iYBMuWLdNxlXfaaScnZsDLdPLkybJw4UJp166d9OnTR/r16+ekbtNKuPzdlBT3IwES8CPQuHFjufPOO2XSpEmCh/FHH320bKImI+vXr9fXzlatHC9Z8OtQyr8v9fe2VNd7qOdvi1aKhBHYStXL79wSKHU/Uqol3Csglj4F0FKUKu+7Hj166AdIsAzXTMw/8VDJm3/iPQsJlCsBvQSep3C5Dl8q+11PAMUF89NPP5Vjjz1WrrrqqgYdRjbjzp07N9geZkMabuDz+11qQhiVB5ufWBVVu7C1WGxKcPFEMucCqBJ8iwlgntibPy4uPuNmoVCYAdQdFWPUXUp4japdvxujqNo1PZc7twaZyi3wXhoyZIhUVVXpiSgmoC1atJAXX3xRunfvbm34vffeK5deeqluo1OnTjqm6IwZM7QQimX3cT3pZwZ466FkBSRAAnUIdOnSRQ4++GB58skn5ZlnnpFf/OIXcuqpp2qveSyDZ9lIwO/v7cY967/D/At/gxH2B96gLOkkUMpJoVSPEQf0SxXiYLvNSu3F7yqVQNTzz0rlRrvSTQACKJwuWEjAFYF6Auhmm20m++yzj+Cm+phjjmnQBianLkpabuDzbSn1xFWLcxHEAPUVq5QHZhTeibC1VPwoT4zcwnHS6sQ8QEst+Y+IMc6vUuMLkfmLJflnof1nfWNUYumUJ27bt1S/hlK2Yk/vnKp0AfTNN9/U19Grr75aZ4FHzM8f/ehHTpa+Q0wdM2aM9pLKvx5fc801ctddd8no0aPrD0xEn5gBPiKwrJYEMkzgo48+kqVLl8pZZ52lKSCUyIknniiIDbrttttmmEx90/Xf2xJ/5+vvXf8TvATnKC9BCqD1uaTpU6n7kVL9ZBzQUnQq/7so55+VT48WppUAlsAj7BYLCbgiUE8A7datm+CFglgi+S70cKu3LWm6gc+3paQ4F5VYpYTIUklEIBpFEa8Rk6uS7Ua0HL3UpA79QaDjVSr+aCu1BN9lwc1CEp6npbw0PEHQpZ2oS9taJBkRvo+qXT/hVbcbwUME2JSmgmWbWI6Eayk8M7G0c+TIkYKJ6fe//32rrn6nYirgAVX79srNI6/06tVLCwd5myP7qD1AQ96AR9YpVkwCJFDWBBYvXiwtW7bUy99hSCMVIwhe7atWrXJmVxpXIAU1rtRcyq8uimR+hJL/vtT9SKneMcZrKTqV/12U88/Kp0cL00qAS+DTOjLl2696AqhnRpQu9Gm6gffs9f4vNaGMzGtOeSaW9MSMSoj0aTcqe8EYme2LFW95tmsBFOJc0SXwSmSOwssWNpYUXiMaWyy7Lyb2ok8Y26/UEinXxUh4zYAAuttuu8kvf/lL2W+//aRv375yySWX6OWcDz30kDXyJk2a6BAlEFQPOuggHZIES+2nT58uL7zwgkycONG6DdMKuATelBT3IwESMCWw++67y4UXXig//vGPZZdddpF3331Xx1LeeeedTasouV9aVyCV7HSBL8MKZKgKy6TnRjAHKNBNbgpJQN+PhHjACHF78uyQjfKwsicQ5fyz7OHQgLIlwCzwZTt0qe14QQE0Shf6NN3A54+KnlAWmXB4wlz+MbafS8WIRN3wmlusAta7LphclfQAVe1+QA3UiwAAQABJREFUvdp1qyrwvmq3pOCLdpVIhgm6y1JKnGvRVGSDyni/Vjk4Ny8hzobpTxLCaylbYUMHJbx+NC+MNaWP8RNeo/oNle5V/N8iy/uzzz6rY3PedtttcsMNN8jll18uW221lZPOXHzxxXLIIYfIW2+9JbNmzdLxRYcNGybXX3+99pxy0ohBJTi3MSlhIQESIAFXBJo2bSrPP/+8jB8/XnvQI3wIQjO5KGlegRTUPi2QlVjpUao+iGTvfllqD36XNIGw40sP0KRHLtn2o55/JmsdW88qAWaBz+rIR2d3QQE0ahd63MDvvffeAo+o9957T8fGQ+bkKVOmxHoDn4+11ISjQ0SCIMQqP0Hw80X5PbX/7CdEQiSDEOm6QGROQnj1E+c8j1fXAmgpMRLidhThDbToWkKYiqrdUrbiPNJL4CMQ1V2fo2HrQ+ZiCJ6FylNPPSUDBw6U/v37F/o68DaIqcgs36FDh9os8Fg2GmepggBa8C9InL1gWyRAApVGoE2bNjoZ0tSpU2WbbbbRy+Bd2JjmFUhB7Sv1wN6vLsQAfWyq3178PkkCfvcGxfrG8AbFyFT2dnjKP/300wWTGD/66KP6OoprKQsJlCOB5upeYy1jgJbj0KW2zwVvX6N2oS+0BOmRRx7RWZLjzGKcPypaAC0iHMF7bVkEgiDEqlLZ2KPymvNrF4Lgwm/yCdl/9hNeo7LXb7mY1263tvY21q2hlPCqBcEIzqlSQj76psXetXV76ea9n/DqicxuWktfLV27dtWxk4v1zFV29kLXT2aBL0ad20mABMqNwM9+9jOZN2+erF69Wk477TRBBnh4vOPhvE1J8wqkoHb5/Z0vVR+8BOeqJEgs6SWA+VSYFRZIMrl6ncga9cLqJpZsEMhPYgxvd1wv161bJ/Cqz0+amQ0qtLJSCNADtFJGMj12FBRAo3ShT/MSpFITyqi81/ye8kYlGvm1C3s/W+D+RDURXqOIx6nHtoi4DSujHN9iHq9Rja2v2KvGNorwBr4eoOohQhRZ792fpeFqROKjo446Sh8MT6P//ve/egknnrqPGDHC+uYdFafp+ql/yyV+U+Eo8igSIIEsE/jiiy8ESYoee+wx2X///QVL4CdPnixvv/22INSHbUnrCqSgdvn9vS1Vn44BulykWoX+UTmmWFJGQGlXuoQdGwjcc5TA3b9bygxjdyIjUDeJ8TPPPKM9Pn/xi1/IqaeeqldZHnbYYZG1zYpJIGoCWgBVD4VYSMAVgaKP05FRGJmG8QT+rLPOkqFDhwqSbdgWvyVI1ZiRJVRKLc9GUp516seHm36XxU9EiEqY82tXi3MReAmaCK9RiHOlxG2MZxT24nzapMTNBRIVISHUN445G9kagecpzqliiabAOKpzGXWnqXz77bc6QdGVV14pH374oVx00UVy5JFHCq59tiVN188qtRylGQVQ2yHl8SRAAnUIYM6J0B51CwTRVq1a1d0U+j086I8//nj9cKpTp076uowVSEcffbQsXbo0dL1xH1hqdYlfX5BRt4vyFGQiJD9SyXyPsS324NykR307i8xYbLIn96k0Ah999JG+juG+HeVvf/ubLF68WD7++ONKM5X2ZIgAs8BnaLBjMrWgByiETmQZXr58uU6w4fXljjvu0EKo9znM/2leggThyC8eJ8S5Lm3CWF74GF/PROU1F0UszqSESD/hVYtkEYhzSXhF+gmROCO8pfdtmhc+P8Js1baWEKa8NsPUXeoYP3uj8ngt1ackvsNSzS222ELuvPPO2uZPOukkef3112Wvvfaq3RbmjYvr52uvvSZr1jT8ka1YsUJ7Cpj2i1ngTUlxPxIgAVMCiJWM5G5nnHGGXgb/k5/8RIuVgwcPNq2i6H5p8qAv2knDL2w8QNFEv64in6hVPvAWZEkXAb/5uV9v+3ZRK7gWihy0nd+e/L7SCEDsRDx4L1xII+VGjPBLq1atqjRTaU+GCEAAXcpTOEMjHr2pBQXQV199VRAH9Oabb46kB7ZZjC+44AJZsmRJg75h6ZR30W/wpcEG7QFa1Cd2o1jlXAAt0WZUyZf8njBHJZL5TezQ7uwIYlP5iXNRCK9+4jZOSc8rEkkJXBU/W/GHZFPlmeo6RpSf8BpVYi1X3FzV07p1a/nmm4YBdCFeuii218+xY8fKwoXq7iivzJ8/X9B30wKPeCZBMqXF/UiABEwJPP744/Lyyy/ruHUIHzJq1CjTQ0vu5+dBX04eoPh7W+qBfUkQ6st+SiRDgs39mRfFD1Xs3/vN4fw61F+J269M89uL31cigd13310uvPBC+fGPfyy77LKLIDnSzJkzZeedd65Ec2lTRgggHjJWnbGQgCsCBQXQ7bffXoufmAy6StyR32GbLMa77rqrjhGVXydi7jVvHt6VDpOOUhNKT6zKb9fmsxaNSgigCGL+nYoKoJebFhytcK37CZFReev5Cq8qPmUkMUCxPDtmr0iTSSzOKdf26nZL2IozBkIzknq5DJLvZy9sjSLrfbhfQHRHYfnmO++8I9ttt53sscceegKKJEWbbrqp/PWvf5Wf//zn+gFT2B4sWrRI4A2FFzyann/+eYG42qyZitNhUJBorlDBZBlxpEwLvLnDJGkwrZ/7kQAJZI8Akh8hhh08P/fbbz+nAFx40DvtkEVlfnMpv6rhATp5tt9e/D4JAn73BX59wtje+brfXvy+Egkg4RHmhOPHj9ee84ihvM8++zg1FSFJEJcZD9LbtWsnffr0kX79+jltg5WRQF0CXAJflwbfuyBQUFKD6Ill8LgZ7tmzZ207999/v+Dpkm2xzWJ8zDHHFOzC7bffLm3ahF+fDgGnVNwdLYA2XDlasC+mG43EKiUcYem9ywzlfkvRo/I89RNeoxCZMRZ+4hwEX3hDuCx+HpFoKwpPWz9b0a4ncG/WDp/cFL9zWbfpON6pm567rQVJ5G655ZbaSo844oja93iD+Mo2ZaeddpI5c+bo7J477rij9O7dWwugZ555pkyYMEG6d+9uU73xsXgoQw9QY1zckQRIwIDAp59+Kg8//LAWQA12D7yLrQf9b3/7W1m2rOEyldmzZ+uHXIE7FPIAv7mUX7XwErx/kt9e/D4JAn5zKb8+wbt3uprPMsmVH6nK/B73wXvuuaeeIyKvBh6Uuyq29++u+sF6skVAJ0GiB2i2Bj1iawsKoIgR17hxY8GScjzd8UqLFkolsixpjcGEySQyLpbKuhjFEl6IZE1KeIACtyeSuRRA/SbPUXme+gmvnmei5WnW4HC/CWUUwquJEBmFV6SJ90BU9pbyCIyizQYDnYIN8ADFEnh4VOIaeskllwgycF5xxRVOe/foo4/qpaE33XSTrhcPgP7yl784b6dYp3UMUB9P42LHcjsJkAAJFCKA1UEQQXEDv/XWW9eGNcKyzgEDBhQ6JPA2mxVIeICFh1z5BR74rsKc5Ndd6LOeS/nMHQsd523rp5z9ESeSJX0ETOaOpXqNpK0dWuUywffuWGpPfleJBLD8HXPPYcOGyX333Sd/+MMf5Mknn9T39Tb2pvX+3cYmHlseBOABirBbLCTgikBBARQeRHjV9f501WBaYzCZTCbhweY6IREmOqWW3YN7FMKRib1eu3EKr55noqvzzavHb0Lpicze/i7+NxEio7BX2+ojTEVlb8sSYS7rZr13mfTJxVi5rAM375hwPvHEEzoW02WXXSbjxo3TS4aGDh1q3ZT3RB833Ntuu21tfX379hUsj4+r6GuIz3kWV1/YDgmQQGUQQBzi//f//l8DY5Cx3UWx9WA69dRTC3bjnnvuqecwUHAnhxv9HmL7NYX5HR50z1su0mOjn4PfYfw+BgImc0e/bsDDFwI3BVA/UpX1PYTPtWvXChyZvHL88cfLxIkTtSDqbQvzf1rv38PYwmPKiwA8QBkDtLzGLO29LSiAYgKKjMUIPo8n5Yhdh4KlQ7ZP4NMag8lkMukJgi4HFWJVqWX3aEu363jpPezFE5VSxRPJXAqgfsJrFIxho55QlhBrIhMifTw0YO9SFd7AZTGZPLdToXKTij2KhwiVLIB+8skn8oMf/EAvP0Jmdbz/7LPP5KuvvhIXAihiNCPLPB5SIXHR6aefrp/un3vuufLUU0+5PJVK1uU6LnHJxvglCZBARRNAso6nn35ajj32WIF3e37ZZpttpHPnzvmbA32uJA8mkwedfnAgkk1TIhkFUD9S8X7v98DepDdMcmVCqfL2Qe6O9u3b1zMMD49ceKen9f69nrH8UJEEGAO0Ioc1UaMKSmCIH3LDDTc06Jjt5NOr0DYGk1ePy/9NAspDEHQdJxKCYKnkPLDREyKd2oul9yUEQbQVhSjoJzRDGFuz3l+wDMrCb0IZhfDqJ7rCBoztjCVBrSm9v5+tXrvOvZlxLvsIvt455TLrfWka8X+L5EdXXnmlvP/++/pmHjf2//znP+WNN95w0hkkCEHBk/4PP/xQL7fH+1deecU6vmiQDjILfBBa3JcESKAUgc0220wn68DNeqE47126qMCGlqWSPJhMHnT64dpaIZ2mFg3sxfwlfqhi/d5k7ujXISa58iNUmd8jRvx7770nZ5xxhvb4fPvtt/Vc9NZbb3VicBrv350YxkpSTQDh1RB2i4UEXBGoJ4AuWLBAL6GEh9Hhhx8umCx63p+PPfaYrFq1SlwtQ0I98IaC95JXZs2aJWvWrBE86Y+7KFMTWYoOQdBPNII459pbz0+IBH8tCjr2PDURmj2RrFNrd2eB381CFLaaCJGere4srUn45CNuR3FOmdgbVXItl/xs60LcuhtvvFGmTp2qr29vvvmmIPM6YoPalvXr18sjjzxSr5o777xTx3mCQIBrNwTYOAoe3rRuFkdLbIMESKDSCSDpJl4oiJmMRJwI8+GyVJIHk8nfWz928AD9ZIHfXvw+bgKuxpZJruIeuXS0hyzwf/7zn+Wdd97RceIRksllsYmh7LIfrCs7BJgEKTtjHZel9fy13nrrLX3RROPz5s2T4cOH1/bjgQcekJkzZ9Z+tnkD79JRo0bJCSecIIcccogWVlEfLtrjx4+3qTr0sSbCXFSemCYC6DLHy6SN7FXCK7LPuyzGQrNj4dVvQgkhcoXKUI6sma6KbtNAiHTN2E/shX0QQF2fU0b2Ko9X156nrsbLZT377LOPYEl68+bNtVeTi6Xv6B/if0JcPf/883XGd2R9R2ynxYsX68/wBI2r4GmsXxiNuPrCdkiABMqfAK5jJ554ohZCkXQTq45OO+00fX1zZR08mMaOHatDiMydO1fPP5EsZMqUKYLVT+VSTB5i+9kCL0EmQvKjFP/3TsZWPUvg2MY/dkm3OGfOHP2wfcyYMXLggQfqFUJ4cO6qIIbyoEGD5Oabb5bnnntO7rrrLjnllFP0vTyW37OQQBQEmit3PcYAjYJsduus5wEaBwbcwCO+E7yjNtlkE71U9Mgjj9QJQ+Jov1gbJhOOyLz16snQDXsI4dX1U3rYayK8uharTITXDo5FMoiaG9SrVKgBJKJqqRICfFMl0lYtw3dR/ERXtBGFqG4iREZyLhsugXd9TrkYKxd11I1hd9VVVzWoEhNSW+/2pk2b6qX0WGI/bdo0ue2222ThwoWCupEFPs6CyQiWpbCQAAmQgC0BzA3x4OjQQw+Vl19+Wfr166fjJt9yyy1yxBFHOAshgn6mbQVSGHYuktBBAEUMUJZ0ETCZJ/v1GA+5meTKj1LlfI/rJ+Inf/nll4JVR1dffbX8+9//1ist77jjDvnvf//LLPCVM9yZs0QnQVL3mCwk4IpA7AIoltU3atRIi58w4oorrtDJlU4++WTZd999XdkVuB6/5DyoUC+TduwRaRLrJ4p2dexRA+HVtVhlKjS7bBeCIAROv+JxdiaAGgiCus2YvV3BISnh1WPsNxbl+H1+DDs8da8beN5FDDtwady4sUBgRaI6CANHH310Irhc3IAn0nE2SgIkkDoCkyZN0h6f1157bW3fevfurePRI67d9OnTpW/fvrXfhX2DFUh///vfdYgnLOV88MEHpVWrVnoFEjxCMScth2Iyl/Kzo6tyeN2g5kdLVipR2GHIIb92+X1pAiYrpUrXkPuWSa5MKFXGPsj6jofhr776qvpNb9AempMnTxZcQ7/3ve8J3u+2225WxlZSDGUrEDw4dgJcAh878opvMHYBFDfvWA6Kp/z/+Mc/BKIAJrxnn322nngicHMSxWQy6dozEXYm5SWoPUB9vLcgVrleQpOE0AyRuYmBAOraK9LEEzMKQdB0CbzzpfeGXsWus94ncb0o1Cbi1yFmMpa+Y2nQokWLpGPHjgIP99///vfO4id7bSNECRIijR49ujZ2nvddHP9jCTwmJSwkQAIkYEsAN+/w+ixUPG9QWwE0rSuQCtnst82FlyDa6FezVHoYBVA/5LF9b3JfYNIZL8QBk1yZ0CrvfT777DMZOXKkfkCOcHY9e/bU4ies2nLLLbVnqK0A6iKGMsLprVypnrjkFYQ/adlSLf9jIYECBJgFvgAUbrIi0OD29b777tPLj+C9BFd6L6EGnowjFpOLgtgheFqF5ZxewVLOESNG6Jh53rY4/zfxZmqnlkYvr4kTqZxYnZSkRDITD1DXgiCAGQmvjpfAg7GRB6jrdg2E11YqxwOyaZucf6YnnMk5FcXYmgivaHem46z3plyi3i/OJZyeLYhZN27cOO9jrP9XqfOWMUBjRc7GSKBiCXz77bf1PObrGoobb3g12Za0rkAKY5eeSxk82PWr2/MSHLaV3578Pi4CJnM4k7706+I+fJZJu9wnfgIQObHkHQX/w+sTBddN3G/XTTisvwj5D2Io77333vLQQw/pbPNt27bVMUERQ9lEwISn/5IlDW8CIIquXatusFlIoAAB3GswC3wBMNwUmkA9ARRL0HGhLFZwgXVVIHbml+OPPz5/U2yfTSaTKmSptFGCFURQeO65KHqi4zOJjUKsMrE3imXSSQivYNzEx9sVY+k6QznaNRJe1bkEb8wujvIvmAiRUYytybkcRbsufocu6ohrCaeLvrqow6Vo76I/rIMESKC8CSAJJkJ75JfZs2c7eQCf1hVI+faafMbfeZP5hV9dWyuRbNoiv734fZwETOZSJv2BB+hjU0325D7lTgCi5HXXXSf9+/eXqqoqgRconJjguIR794EDBzoxEUmQLr30UhkyZIhe1QTR8pFHHpEXX3xR7r77br3qqVRD119/fcGvd9llF70itOCX3Jh5Asg3wCRImT8NnAKoJ4DCm8jVRdJpL2OoDMuJSiXJ8brgLVl2JoCqSaxvMiLHnomwxcTexIRXJQjOdphM0PRGAfa6jj1qIrx6oqAzARTnsp+orryZkfAJTjUQ9l0ULbz6CM3e78dFe2mrI44lnGmymUvg0zQa7AsJlDcBJEDCTXSxsvXWWxf7KtD2NK5ACmRAzc6mD3b96oYH6Iuf+u3F7+MkYPIQ26Q/GNvPFpjsyX3KnQDCLyH00qeffipbbLGFXk05b9487fl5yCGH6NwbtjbCmxQJN/GwPz+m/TXXXKMzwiMkEwsJuCbAJfCuibK+egJolnGYeESCj2tR0MSLCkvvIxGrfISvKMQqE+EVguD7c92djaaxsjwh0lXLpsKra864MWrRpLQVjVQIh7Y13syIbeuimHgtwNbljpM+uei7izriWMLpop+u6oAA2sxH8HbVFushARKobAJYSrnDDjvEYmTaViCFMRp/b114gHpL4MP0gcdEQ0DPpRz8bcVDdZUcnEmuohmmVNY6YMCA2n716NFDx6Cv3WD5hkmQLAHy8NAE4KC2QV3LXDrthO4MD6wIAhRAa4ZRL802mHC4FskgvPpNYiFWefFHnYpVPvZGkvTJxOMVnphqSbirYsIYbYGxywQ9mMQaeYBG4Hnqd05pe2vEyDjPKfx+llWoAAqmUS/hRBtpKYgByiRIaRkN9oMESCBLBDC/wLJA27JZe/WAXYV1WqFebdUciCV5AqYOGSY9ZZIrE0rcx4SAiyRIJu1wHxIoRKC5UqywDL7FxvQxhXbjNhIwIkABtAaTfuLq4xGJXV1768E70WQSi3aXKVHQqVjlY68nuuIJMkRYF8XkybZm7FAk0162PrbCNohzMxrG5g5tNmw1ESJd2wvPUyPhVdnresm/39J717+f0IMTwYFxLeGMoOuhqlyvJiIm51moynkQCZAACZBAUQL4O9/SZ6VH0YPzvvC8QIf2zvuCHxMhoB0yDOasJp3zxpZJrkxocR8/AkiChCX1iDE6a9YsadGihQwbNkwQ29MkCZJf/fyeBIoRwDL4tRRAi+Hh9oAEKIDWADONuROJB6jBJNb10nsTexEbsrV60gLPALTvopgIza4FQe0BauAp4ZpxEOHVtRBpIry6ttdEeI0i672L89JFHXEu4XTRX9s61tED1BYhjycBEiCBUARMHiabVoxkOYgVSQHUlFi0+5nMk017wCRXpqS4nymBwYMHC14oK1asENMM8Kb1cz8SKEQAK86YCb4QGW4LQ4ACaA010wmHaw82LZIZiHOuhVdje2u8BJ0JoEo08fUSdOyZaCxEKpE3iaX3kZxTBt4DrtvFOWUivHrtukr6FObCx2PsCWApCmOA2nNkDSRAAiQQlIDJQ2zTOiGAMhO8Ka3o9zMN22TSE3iAMsmVCSnu40dg/fr1OuN73f3mzp0r9913n5x//vmy/fbby3bbbVf3a74nAWcEtACqNAQWEnBBgAJoDUU9mTQRIpVINn+FC/S5OkwnOp5o5KplU3udewliyb/PWefaVmPGUQivBucUGM9Y7GpkRZKyV3uAmgivNZwpgLob8yRq0g8WfH7LSfSLbZIACZBApRMwfYhtwgEi2b/eNtmT+8RBwNQxwqQv3hJ4k325DwmUIlCt4qHdeOONguzyhx9+uN512bJlsnjxYpkwYYK0bt2aAmgpgPzOigDCBdID1AohD65DgLevNTBMJ5PwxPxkQR2Clm+NvRMdi3PG9ipxzpVXJIQ5k1iiyPbWXIUFWFmlluCrTOW2xTgLPGx1GHs0KSHSdPIModllRvagHqC248rjkyWAiYhJ/OJke8nWSYAESKDyCJjOL0ws10vgF5rsyX3iIOBybJnkKo4Ry0YbTZs2lTfeeEOuvPJKmTZtmtx2222ycOFCGTNmjNx+++3ZgEArEyMAXQAxQFlIwAUBA38tF82kvw4tCBp467n2TiyHdl2JZKaiK84Wl5y/Uy7zQZZmuzpbAwmvq121GsADVAmgSKzlqgQSXlVcWZbyJqCXwPMRWnkPIntPAiRQlgRM/96aGNe7g8jilSJr1pnszX2iJmA6dzTtB71ATUlxPz8CjRs3lquuukrOOeccOeKII+SZZ57xO4Tfk4ATAvQAdYKRldQQoABaA8JUnNPCnEMvQdM4TlEsRfeLxQk0LmOPmtqq23XonWg6mayboKfmtLD6z/QpvuuxNbXXdbum9uI35FJ4tRokHhyagMsb8NCd4IEkQAIkkEECpn9vTdAg4WXfzowDasIqjn1cji366yW5iqPvbCMbBIYPH67Fz6lTp0q3bt2yYTStTJQAkyAlir/iGqf/Ts2QmopzLgVBNG3qAdpBLYH/aJ6780/ba+jx6kqsMhWZYSU4L3MkNAeZTHqepy7iU5oKRBjbRJbeKyHSZbumwqvr35C7XwVrCkKAWeCD0OK+JEACJOCOQJD5lEmrA3uIfPiVyOCeJntznygJmN6PmPZhu83U/cN80725HwmYEWjTpo2MGzfObGfuRQKWBJopxQorz1hIwAUBeoDWUDQVIl17zZlOYl17zZm269JeU9EVQ+IJkS5Oci1EGp7pLu01FV5dj62p8OrSVoyTqb2u23VxjrCO4ARwnmFCwkICJEACJBAvAczhmhg8xDbt1U6bi0yabbo394uSgOn9iGkfhvRSYzvLdG/uRwIkQALpI4D7DThesJCACwKGspCLptJdh+kTV5fCHIgEateRR2RS7ZqKruifS5HMVJhDu3p8HXE2FV5h6woVE1MlWHRSTO117Ylpaq/r35ATaKwkEAEkQDIJoRGoUu5MAiRAAiRgRADzKZPY5kaVqZ2GKAH03Tmme3O/KAkEmSub9GN75QE6TSW5WrveZG/uQwIkQALpI4Al8PQATd+4lGuPKIDWjJzphANZyDZp5C5YvGm7rsWqJNrVbRp6LLi019QjEqeCSwHUVIjETUzLpiLfqKz3LkpSQqS212B8XY6tC16sIzgBLn8PzoxHkAAJkIArAnh47tIDdNvuIrOXiax0NA9xZWcW68FcyuUDRty39FdhGqfOzSJN2kwCJFAJBLgEvhJGMT02UACtGYug4pyr+JSmy8Jde82ZtuvSE9NUdMWQuBYiTSeTLsW5wMKro4zspsIrGC935O2KMTMVXl2eU2iXJX4C8ABFRkYWEiABEiCB+AlgPuXSA7Sxup4PUp6C782J3xa2WJ8A5lKmc9b6Rxb/hBAHUzi2xQHxGxIggVQTYBb4VA9P2XWOAmjNkJkuRcfuLsVIU1HQpTAHG4zbRaIcR8JcEMYuRTIk58Hk3qS4HFtTIRL9cm2viWdIC+V1+p1adu9qSYGpvS4Zm4wp93FPgB6g7pmyRhIgARIwJWA6hzOtD/tRJAtCK7p9tQeo4ZzVtBcMcWBKivuRAAmkkQCzwKdxVMq3TxRAa8ZOTyYNJxwuxUjTdiFo4enHKkfLk0zbdeklaNomhsSlSKYnk4ZnehJCpLbXYSb475T3gKlniEvOplngXWe9r/kJ878YCdADNEbYbIoESIAE8ggEeaCcd2jRjxDJ6CVYFE9sX0TiAdpbZPKc2ExgQyRAAiTglEBzFQN0LbPAO2Wa5coMZaHKR6TFOUMaTkUyJVY1MWzXufBq0C7adLncPwlb9WQyAXE7iPDawaGnrakQiV+1y3MKSZxMhNd2zZVXscOl95V/dUqfhVoAZQb49A0Me0QCJJAJAkHmrKZAdlIiGQVQU1rR7RfF2PbplMtdsGBFdP1mzSRAAiQQFQF6gEZFNpv1Gkhg2QAT5Gm6S6+5IEtdXIpkaNdkmTSS84ANBA/bgkmdiUCGdlzbahpPybW4bdquSyESY2vK2ZW9OD9MbUWbLrPe256XPD44gSp1TUBAchYSIAESIIH4Cei/84YPdk17t1m73AP52UtNj+B+URAIMocL0j5DHAShxX1JgATSREALoOreg4UEXBCgAFpDMcgTVy2AOvJgC7LUxZU3JgRNZLI3La7EOTA2EV3RL4hkrrwEAzF26ImJSaxp7FHX9hp72jrirG01vJqASQuVldRV1nvT85j7uSOA35Tpb9ldq6yJBEiABEgABPQ12PBvbhBi9AINQiuafaP6+8qxjWa8WCsJkED0BJgFPnrGWWohgulTeeLTHqCGT9NdCYIgFUQ4cuWtF2SJNProyuMVjE09E10yLgtxOyHhFWPrIhN8kERTOKdcncuoiyV+AlwCHz9ztkgCJEACHoFIvQRne63w/yQIRDW2TISUxGiyTRIgARcEIIC6WI3qoi+so/wJUACtGcPAIpmjzOhBhCNXQmTQyZUrMTKI8Nq6mQp2vD63/N72ZxZI3HbkEYk+BxG3E/MqVvYuc3AuB7EVbFydy6iLJX4CmIQ0M3xgFH/v2CIJkAAJVDaBIPOpICQokgWhFc2+Qe5HgvQAY/u/L3Nz0yDHcV8SIAESSJoAEkFXOQjHl7QdbD8dBCiA1oxDkOXZrrzm0LQW5wxHwZkQieWrhm2ij0ha48JLMCnhNchk0hVjcAsibrv0iAwiRrqyV4cZCCCIuWoXnFniJ7COS+Djh84WSYAESKCGwHcBVtQEgbZDT5GP59PTJggz1/vqOWuA+ZRp+23VXH6z9iKfLDA9gvuRAAmQQDoIMAZoOsahUnoRQAarFJML24EJR5Dl2c4yoweIE+nKS1ALkQEmVx1UJngX8TiDxqxy5SUYZDLpqk2cZUmI22g3CeE1iMiMPrpMcoX6WOIlwCXw8fJmayRAAiRQl0DQv7l1jy31voVKfLlVF5EP5pXai99FSSDI3DFoP3QipNlBj+L+JEACJJAsAR0DVK0MZSEBFwQogNZQxITDNKmHa5HM1BvTVbtBhUhXCXoCe4A6Wo4e5EYBCXqaqwQ9K6vsf15lIbyCsYMl8EEn7K7OKftRYg1hCMADFE9jWUiABEiABOInEGR+EbR3FMmCEnO7f+RjO8dtf1kbCZAACURNQMcAVfceLCTgggAF0BqKmHAE8QB14RGJpoO062qZdCgh0oFIFjSzpRZ819if5mHEORdL/vUk1vAXBltdtOmdU0Gyz7toN4it6COXwNuf10nWoAXQAF7kSfaVbZMACZBApREI+jc3iP0QQN+lSBYEmdN9ObZOcbIyEiCBCiAADWTF2gowhCakgkBiPjwrV66UyZMny8KFC6Vdu3bSp08f6devX2JQtAdoALHKhdccjA0iCroSjYIGz8cS+OmL7YcmsPDqaOm9nkwGEGs61rTbU8VKsilBhFeMrdOwCobncsdWbsIbaFsDMIbgu3ilDV0emyQBLoFPkj7bJgESyDqBIPOLoKwggP7xpaBHcX9XBILOlYO0u013kblf54QExARlIQESIIFyINCltcj8FeXQU/axHAgkIoDee++9cumll8qQIUOkU6dOsnbtWpkxY4YWQu+++27p2LFj7Owgkpl6gLZRkwYIl0HEy2IGBZno6FicDjwxgwbP795W5OVpxSww3x5UeEW7Cxxc7ILeKPTqIPLFEpHtepjbVmjPIE/xW6q4WwiFgKdbtpPSIPb2VrbOdCBuB7EVrLq0UYH4VaIFlvIkoAXQAIJ3eVrJXpMACVQigbQ9gA/DOOiD3SBt9FUxQPGQf4l6SNlJ3XSyxEtA31sYPsQO2jPc5wxWia7eUx6+eyXncxK029yfBEgg4wS6KU1goQNNIOMYaX4NgdgF0A0bNsiYMWNk0qRJ0qWLmmXVKddcc43cddddMnr06Dpb43kbVMyESAbhqH83u/4FEQX7dHLjiRmkTVi3hWp31lI7O3F0ELEX+/dWOvh7X+KdXQkqzm2p2oUAaluCekXCXpxTO/Syaxn2msazhQfod9U5L1B4ZYYtQW/GwPifDoTXsP3lcXYEuATejh+PJgESSIZAGh/AhyERdF4TpI1GjUSGKC/QKUokO2DbIEdyXxcEMFc2DWMUpr2deufGlgJoGHo8hgRIIAkCcAJbuU6EK9CSoF95bUb0jLE4qO+U+yG8Ptu3b7i+uFevXlJdrdSYBEpQcQ5i5Bcxi4LwEoT3qa0LeFBbIVbNVrbaDk1QkXlLMHYhRAacTKJdF4Jv0BsUfU5Z2ouxxc0LXqbFBeegtqLNmZa2mtrH/dwT4ATEPVPWSAIkEC0B7wH8O++8I4888ojccccd+qH766+/LiNGjNDvo+2Bu9qDrPQI0ypEsncdPIAO03bWj8F8ynRFWhhWQ9RDdhfOBWHa5jEkQAIkEJZA1zbKC/SbsEfzOBLYSCB2D9AmTZrIscceKyNHjpSDDjpIOnfuLFVVVTJ9+nR54YUXZOLEiRt7F+O7wF6RjrwEIQo2DbCU1BOrsDw8bAm6vKaFEl4RfHjeCpHN2oVtNbgHKITXWQ5EsqA3Cluodp+YGt5O70gtCgYYWxeetkGFSPTV47yjhedpUG/XzmpZHbwIXSz593jz//gIMAt8fKzZEgmQgBsCfg/gly518FTbTVd9a8HfetOVHr6VFdhhr61FLntc5MIDCnzJTZESwHwKIZGiKsP7ivzyIZGqb0WQWZmFBEiABMqBQFd177hQhWbBKlwWErAhkMifvosvvlgOOeQQeeutt2TWrFnSokULGTZsmFx//fXSsqXycU6gBPaKVB5sny+y66iKBqBLIG+9GuF19z7h2w5qK1qCKAgx0kYADSq8oq0lq0TWrhdp3iS8vWGESBfevUHFSAiR78wKbyeODCr24pjEhFf1G4KHL+JRsZQXAfyWW1j8JsvLWvaWBEigEgik9QF8ULZh5o5B2xiqPEDnLMt528DrhiU+Apg7RukBCocGxLh/c4bI3v3js4stkQAJkIANAe0BusKmBh5LAjkCET5jLI14q622kgEDBsiOO+4ou+66q34lJX6ip0HFOc8Ts7SVpb8N6nWK2tCu7fJsbWsAz0S0qwVQS+eIoMLrJursxFMeLL+3KUGFyF4qOgNc7LHM16YE9YpMSojE2NqGGggjvHqepzaMeWwyBOA50jSRx2fJ2MtWSYAEKoMAHsCPHTtWunfvLnPnzpVVq1bpB/BTpkyRNm3KQ+kLM3cMOnoQ4EaqJDkvfRr0SO5vSyDMHD1om/sNEHmRYxsUG/dXBJBEbsKECfLggw/Kc889J9OmOciSS7IkYEAAAugi5QHKQgK2BBK5hU1jEHotzgUQBV0IkaFEIyWAPvOR3bDD1sYBpW8X8SnDTOq8WKs2yaaCcsbEH96nX34tslXn8KyDCq8uRPWgoiusgwD68Lvh7cSRQW3FMbCXcUBBovyKjgEa4HpZfhayxyRAApVKAA/gly1bJh06dJB27dpJnz59Elt9FIZx0IfJYdrAMfsqkez5j0WO2zlsDTwuDIE4xhdje9o9IlcdHqaHPCarBNJ4/57Vscii3RBAFygHJRYSsCUQuwDqBaFPZRb4AKLg5soz8avlNUuOQwoBYUUjW289eA8EzTAJ70QXwivExSDFiXdiCMHXE+esBFC1TDiI0NxDxXVdvkZkjcpyh7irYUrYc8rWq1i3G/B3gLFFllmW8iPAGKDlN2bsMQmQgEgl3MCH+TsfZuz3VcujEQc0zIPVMO3xmByBOMZ3oFoCj/BSMxbbPejnmGWHQFrv37MzArQUAugHX5EDCdgTCChH2TfoF4S+XLLAI/g8EhHNUV6CYUuYSSVEI9vEQGE8QF14J4ZZtuVkWTiEyBDinC3noJNYxIKFsG4jRoYRIiG8Lq2JtWp1Lge8mrg4p8L2l8fZEaAHqB0/Hk0CJBA/Ae8GvtyzwAdd1RKWdCeVcKKvWgVjG5s8bPtZPS7MPC4Mq/224TL4MNyyekxa79+zOh5ZtJseoFkc9Whsjt0DNK1B6EOJczViJJZphylBBTK00UHliNpECWUQrDq2CtNqLt5pEoIghNemAROnQCSzjUEVhjPatREiMTJhBG5PFNyme7ixDWNr3VirYUMNhJmwu2AcjhKPsiVAD1BbgjyeBEggbgJ+N/DlkgU+zN/bsKyxVBpzsD22ClsDjwtKIMw8Lmgb2B8evv98Wy2FHx7maB6TNQJpvX/P2jhk2d4uiAH6TZYJ0HZXBGIXQNFx2yzwo0aNknnz5jVgMH36dFm/Xq3pCFG+U16CQZdne2JViOb0IWEnsWgXsRPDCqBhPEAhvMJDcdnqnAgbxmbEAG3TLNiRLhLlhOEMT9vXpwfra/7eYSax2l6LpE9hPUNsY62GsbWu52nzgMJ4Pmt+jpcAPUDj5c3WSIAE7AlUyg08/s43CbjiIiw9CKC/fljkNweHrYHHBSUQ5n4kaBvYf8+tRc59UGS1CrvUMmTYpTDt8pjyJWB7/16+lrPnaSDQTQmgSFLMQgK2BBIRQNFpmyD0t956q6xbp/5i55XjjjtOunbtmrfV7GMYD1DbxEBhRCNY4y0LH9rbzLb8vSBEBolN6R3vCa8QQ8MULbwGXIqOJeFzVaxVHBtUoPb6GIazDjVgIUSibd1uQHvB+JMFXs+D/x+mTbQCe21iy4YRXuF5ujm8qBXnAd2C28ojkiOAawizwCfHny2TAAmEI2B7A3/44YfL/PnzGzT+0UcfhX4A36Aynw34Ox92PuRTdYOvd+yVy7o7V4V76tm+wdfcEAGBMPcjYbrRSjkkDNlc5LXpIqO2DVMDj8kiAZv79yzyos3uCHRRYVkWMgu8O6AZrikRAdQ2CH3//mrdRoHSokULado03GPMMAIbRKM3ZxboiOGmMKIRqnbieRrCe0CLgsrzdCc1YQpTwgivEFkQ8wMZ2dF+mKK9JQIKkRCZZythrro65/kaql11kxJUaEa7z6qsq2FLWM8QtItg+GFLWOEVHq8QXimAhiWfzHFV3yoBNOBvKpmeslUSIAESqE/A5gb+mmuukaqqqvoVqk8nnXSSdOnSpcH2KDbov7ch5nBh+oKVP/spL9AXP1E27h6mBh4TlECY+5GgbXj7Y2wR4oACqEeE/5ciYHv/XqpufkcCfgSgCWAlqU0YQL82+H02CMQugHpB6Ms9CzxOD1shEoIgkikFLfA8ffXzoEdt3F8LryHahb02cTHDTto9zqEF0BDeEi3Ukmx4us5T3qebhfR6wCQ26Ph6tm4crWDvwnqGgO1/1SQ4bLER823OqbD95XF2BBgD1I4fjyYBEkiGgO0N/KBBgwp2vFWrVtKsmbozi6GEncOF7RqWwT/8LgXQsPyCHqfvDWISuCGA3vFa0B5y/ywSSOv9exbHIss2Iw4olsGHDQOYZXa0fSOBmP7EbmzQLwh9klngAycGUoKg5yW40ULzdxDIgnoIonaIVVbLlUO260KcC8oY9trGAbXxivwi5DJ4tIlkVUHL5kpsnb8il6gq6LHYHwJoUNEVx1nHHrU4pxDPlqW8CKxXHqBhzrPyspK9JQESqCQC3g182WeBD/n3NuxYjuyXW+0Ez3+W6AlsUCuPwsyVw/Ssr3JaRlufNIzqEKY6HlPBBNJ6/17ByGlaAQJYFco4oAXAcFMgArF7gKY1CH2Y5dnwEsQTiK+Ul2CY2EiI8xNmkqOFyJDCHM4O7YkZwgMUwut9kwKdX/V2tvEStBHJbLwiZylxLkz207AxnHA+IDnQnGUqTm7neviMPoBxmNhgvdXYIsxA2KVXYYVXnFPPWyz5N4LCnZwTqFLnWbPY/3o4N4MVkgAJZIiA3w18uWSBD/t3OuxQt2shsl0PJYLOENm7cASqsFXzuDwCYR+e51UT6KMOcaBWAG3TPdBh3DljBFzcv7///vsFQ4isWrVK1q5dmzGiNDcMga6MAxoGG4/JI5DILaxtEPo8G5x8tPXGDCOAhm0TTz+QtXFllUjrECuutAAawvc3KQ9QiGQTZ4Uf5rChBmy8Im1uULwkV2EE0LDCK+KqdFZ/VCDmI/FU0BJWeLU9p4L2k/u7IcAs8G44shYSIIH4CLi4gY+vt8VbCvt3vniN/t9gGTxiRVIA9Wdls0dSY3vbBJGzR9r0nMdmgYDt/ftvfvObgknkZs2aFVsIkSyMUyXbqD1AV1SyhbQtDgKJCKAwbPDgwfoVh5EmbWDSEdobU3kJDu9r0kr9fbTXaQhPTNSylVp+P1MlrRnUs36dJp/CemJ2V56J36gHdBBfW4bINRVWePUEQRPbCu0TVoyEOPf0h4Vq9N9mE8MJgi88T8OUsLaiLS/UQCgBVP1+wiyJRlvz1B8yfU6G/C2E4cRj7Ajo8zuxvx52fefRJEAC2SVgewOfBnLfhVzpYdN3eAn+7G6R3x5uUwuP9SNgM4fzq7vY98P6iJwzXmTZ6lzs+2L7cTsJgIBNErnHHnusIMRddtlFunXrVvA7biSBugQggCJUHAsJ2BDgLWwNPUw6wgg4NsvRwwqC6LInCoYSQEOKvbpdJc4h/uhAtRwqaAkrvCLpk03M07BP1ME4bAxQPYkNKejZ2GsjvOJcRqiBEVsHHdlcWIUwS+/xm4OwPkctv4fdLOVBAB6gzUKe3+VhIXtJAiRQqQTS9gA+KOewc5qg7dTdH3O+tmop/CvTRPZSMUFZoiFgc18QtkctlEPDQduJ3K9CXJ25V9haeFwWCNgmkcsCI9oYLQEIoP+bG20brL3yCcQugK5YsUIGDhwoq1evlkaNGmaJueiii+TCCy+MlTyEuTAJa9BJeM09PjVcd8MKgrrdGrEqTMu27YYWQEMKr/A2bdM898QHYlnQEvaJuo0npo0QiXbfnBnUytz+YW3F0drepeHahb3NQ15NPM4UQM3Zr1y5UiZPniwLFy6Udu3aSZ8+faRfv/juShEDFGETWEiABEiABOIlYPN33qanx++ciwNPAdSGYulj9fw8gYeLGNtfPUwBtPToZPtbL4ncpEmTpEsXlT2rTrnmmmvkrrvuktGjR9fZyrck4J4AssAv+sZ9vawxWwRiv4Vt27atPPHEE3LCCSfIa6+9Jh06hAg46HiMbJ642sQwtGpXiWRT5oQDYdOujUjmQngNI4CGFSM7tMzxDbMsyOYGxeac0raGnDyj3f+8H+6cSsrecL0t76PS8ASeWeDL+xxi70kgiwTS+AA+zDjYzOHCtOcd8/0dRK59lkulPR5R/J/U2O68Rc6aSSrevvc+CvtYZ/kSqJQkcuU7Auw5CHRTAugCCqA8GSwJxC6Aor877rijfkqEG/mzzz7b0gT7w/WEw0I0Cpuh3OZJL5ZnP/q/cLbD3uYqg32YApHs4/lhjqzJPh8i+RJa8xIS7a5iFQUtWpyzGF94vHpiqGnbNkvUMLazlSdmdbUoL2nTFnP72QiRnidmsBZze9sKr7NCep6G6Ws5H5OWJ/Dr6AFazqcR+04CmSSQxgfwYQbC5mFymPa8Y5ANfr9t1NzzPZFT9/C28n+XBJIaW9jwo11E7p1IAdTleFZSXZWSRK6SxiSLttADNIuj7t7mkHKUfUdOP/30VIifsMTmiSuWZkNMDOOOjXbDxB1Fn23iRNpMsCCAhhZ8Qy6Bh73WXpEhz3Qv1ir6EKTYJClooc4nCK7zlgdpMbevjfBqM7Y2wivE7bDnVHBC5X2E3xP4aqjmMZQqFQM0bMiDGLrHJkiABEigIIG6D+AL7lAGG20e2tuad5xaKo1YkSzRELC5H7Ht0dFDcok/V1XZ1sTjK5UAksiNHTtWunfvLnPnzpVVq1bJsGHDZMqUKdKmjXLNYyGBiAm0Vw/i1qp7kLXrI26I1Vc0gUQ8QNNG1MYTE7Z4YiSeSgQpmOiESRyDNnqoWJhLV+UuAEG9OW0mzzZegjYTO7T73MdB6G7c10ac88Z2Y21m72yESLTgJWDarL1Ze95eNrZCzG+mrgiLV4p0bu3VaPa/jb1hRWaznlXWXml4Ag9vX1y3gnonV9ZI0BoSIIFyJYAH8OVc8He+cciHurZ2D99K5BslkL0/V2RwT9vaeHw+AZs5XH5dQT9j3rdHX5HHVCik45U3KAsJFCLQqVMnGTp0qNS9js6aNUvWrFkj22yjXMRZSCBiAkiEtPAbkd5KG2AhgTAEEppChelqdMfYCHPolfZODLGEN2xsSrS5iRq5zdUPP8zSYRt7eylBDrE30PegxUZothHJrMQ5xThMBnrbSWxYodlmKTrGE+dymHPKxl54gHpL/oOeU1ncP+kn8LbnWBbHjDaTAAmQgCsCuAYnJYDiwddxQ3PJkFzZw3o2Ekj676uX6Gpjj/iOBDYSuOGGG2TUqFE6j8chhxyiPUDx7fPPPy/jx4/fuCPfkUCEBBAHFAIoCwmEJUABVJGzWRIO8BCrkhDJIByFadfG3sYqluZm7UTmLAt+ytkIr2E9MbEiGK+wnrZaiIxZ3AZZbW+Idm2ESLQb9ly2mbS3aCqC2GLzVqAHLCYEttpqKxkwYICOp7zrrrsKXi1b1mTtMqnAYh8sf28WMqauRbM8lARIgARIQBGwmUu5AHisEkD/o2LQcwmiC5r168AcLilxGz3Zp39ufv/5wvr94icSQIilRx99VKZOnSqffPKJ7LbbbnLkkUfKunXrCIcEYiWAFbcUQGNFXnGNUQBVQ2o7mQwbn9JGNMKZGFYUtLU3rEhmI7wiJiaETGRkD1JsPSXCep66ECJnLQliaW5ffU5Z/KrDnsu29oZtNzih8j8CyeMGDRokN998szz33HNy1113ySmnnCJ4Gr90aQjVPCCSdUoAbcrgKQGpcXcSIAEScEPAZjWNix70UA/Bh/YWefIDF7WxjroEMD8P+8C+bj1h36PtHyqB+17GeQ2LsGKPQwz6RsoFfBMsQVTliiuukJ122klOPvlkdX8WT/z5ioVLwwIR8JbABzqIO5NAHQIWUkmdWsr8re1kMqx4YysaeXEig+JPyl5b4TUMZ9un6Yi1unyNyJqADzhtxW3YGiYxkO05hXbDLIG3FV61p20IwTfouV/u+3tZ4N955x155JFH5I477tAC6Ouvvy4jRozQ76O20fbcjrp/rJ8ESIAEKpmA7VzKBRsmQ3JBsWEdGNuwyVEb1hZuyw9VoquH3w0X6ipcizyqHAg0btxYx/489NBDZdGiRbrL1157rXTs2FGLoeVgA/tYGQS6qnjFC1W+ChYSCEuAAqgiZzuZxFL0UKKR5UQnjCCIE8Xa3pAima3wGsYbE/E/sWw/bEG8KwRZ/iKgY52t8Bp2bG3FqbDevbbCa9gl/2HHtVyPS0MW+HUq/hySZbGQAAmQAAnET8D2762LHu83QGSa0kCm53QQF1WyDkUA8+QkPUAxCJiPbd1F5NmPOCQkUJ8AVh6NGTNGmjZVsatqym233SY33nijDB482NvE/0kgUgL0AI0UbyYq522sGmYtCFqIZJ3UkwjU8bXyFGyvYhmaFi0IWkjQYUUy9NXmCTNEstenm1q5cT9b4TXMkn9bIRK997wTt+2+0Ra/d7bCK2JiYoyWqCdcOL9Mi+2NkbY1oNiLvrkQXp/+0NTK7O6XhizwiAHKJfDZPQdpOQmQQLIEbBI7uup58yYiZ48UufoZkXEnuqqV9aRhbDEKv95f5IJHRA4aaOdEwBGtPAJYbZRfjj/++PxN/EwCkRGAALrom8iqZ8UZIEABVA2yrTCH88QTI3fsZX7W6HYthNfeHVRGdpU4JqhnJdq1ecIMj8jZYZMgWdo7cZY5X+wJYc7GAxR1hPHwdSG8epyDCKC2k+cuSmxds15kZZVI62aw3qxYC6/K4yBMYi2z3lXWXsgCj3ifb731lsyaNUtatGghw4YNk+uvv94oEdKZZ55Zu3ypLpnPP//cKI6Trdhdt02+JwESIAESCEbA9u9tsNaK733iriJjXxF5f67I4J7F9+M35gTSMrZ7bCXSS91jPDBF5Ee7mPefe5IACZBA1AQggC6gABo15oqunwKoGl5bT0ycITuoyd+U2SKBBFCIcxYeoBAx+3dT7c4R2XVL9MKswF4bD9ABXUUWK8/Er5bnMsKbtWovNMPGP7xk2lpuPxfi9vC+Ine+IXLGnuZtuxBed1P2vvq5yJDNzdvF5Lmp8swIWxDbfFgfkf9+KnJ4gNUstsLrQOVd+7laShfUizqsneV+HLLAL1u2TDp06CDt2rWTPn36GImfsPuII46Q1atXN0CwZMkS2XrrrRtsz9+gkyBZPMjIr4+fSYAESIAEzAm4mLOat1Z8T3iBjt5H5PrnRO7+SfH9+I05ARdzVvPWSu954QEiP79P5OghXPVRmhS/JQESiJMAssDTAzRO4pXXFgVQNaa2npg4LfbqJ3L/JJFT9zA/SVxMdPZW7b48LaAAaukBCpFsT6WTvKLaRSB802IrvPZVMYkaqcY+X6jiEykR1qS4uFHAk/Cz7s95RrZQE36TAiHSRtxGGzinbn1Z5Fx1g2FaILy2CeC5WajekardCUp4DSKA2notYEn17n1EXlPtHjaoUK+4zSOALPCXXnqpDBkyRDp16iRr166VGTNmaCH07rvv1gHpvX0L/X/wwQcX2qw9Srt29f9hYQk8Y4AWRMiNJEACJBA5ARdzVledPF55B946QWTSLJGdt3BVa3brcTFndUVvaG+RbZWTxb0TRU4Z5qpW1kMCJEACdgSQBGmRcsSqrla6QCO7unh0NgkoKYtFC3OWJCAIvv2FCMQB0+JiErt3fyWAfmbaYm4/F/Z6wmuQlmGvzdJ7tKXtVcKraXEhMrdSguIOvUTenGHaaiMXzqUAAC2GSURBVM3Se8tzCoLg1K9yy9FNW9bCq6V3HhhPCHhO6WXRlvZCeIWYz1KcALPAF2fDb0iABEggCwRczGtcccJqIsSLvE55gbLYE3BxX2Dfi401XHCAyC0vi6xdv3Eb35EACZBAkgQQ2g65MpasSrIXbLucCVhKFuVs+sa+uxDm2jYXGdhDiaAzN9br987Fk96d1RPaGYtFlga4CLiwF96J8NbboERN0+JCeNXeiQFEMs3YUhCEfXvVeLwa26q42HqAwtsUT+CDJJzSS+8tf9VbdRaBl+805WlrWpISXk37Vyn7pSULPJMgVcoZRTtIgATKjYCLuaNLm7FEep4KifTadJe1ZrMu29U0rqkN6pmbh/7zLdc1sz4SIAESCE+gG+OAhofHI0UtPGWBIGgTE9Mj6HlFQhw0KS6e9OIpCJZov6LEyO/vYNKqfcZutNK9rUg39frfXPMYlS6EV3janvdQztPWZBmuZmwpCMJeeEWe+wDemRVXwqt3Th2oMnGaFGf2qnMY3pj9/FdE6265El7hIfzZglxsWxN7s7ZPGrLAIwaoyW8va2NDe0mABEggDgKu/s676iv+bp9/QC4W6IgzXdWazXpcrKZxTe585eF7zJ0iJ+4m0rKp69pZHwmQAAkEJ1AbB1Q5n7GQQFACDqShoE2mb3+IVbZLs2FV0OXoriax+yhxLsgyeFdPmAN7Yyqh2dZzDJ6226qEOe98YXYeacYOPEAHbbYx8ZNJy67GVjMOsBzdlb0Q8RHj1bRoD1AHV5OgIQ5M+1dJ+yEL/NixY6V79+4yd+5cWbVqlc4CP2XKFGnTRj0SjbisU9dLFw+MIu4mqycBEiCBiiTgYsWFazCHbS+yYq3IiyqBIkt4Aq7m5+F70PDIASoOKJJj3vl6w++4hQRIgASSIAAP0IXMBJ8E+opo04FkUf4cIBq5uKEfrEQy/BixFMikuFrG5IlGCAZsUmwzdntteN6J3udS/2NS5ypQsW7XUBR0JUSi70HESFdC5DZK7F2rPO6+WFKK7sbvXJ1TI/rmYtrC28+k4JyCN7JtCSqq27ZXrscPHjxYTj/9dLn66qvl3HPPlZ49expngbe1mVngbQnyeBIgARIIT8DFiovwrRc+En//b/iBigf6cLCQTIVry+5W7QHqYC7lmuCVhykB9A0Vl36u65pZHwmQAAkEJwAPUAqgwbnxiBwBCqCKA8QqFx6giJsIAcfUG9PVRGfzDrnM3x/NMzutXT1h3nVLEbT5jXrq71dcLusZqTxeJxh6J7paig77tDj3uZ+lue9dCa+oLbDg62DyjODS26in/u98kbPH71+XwuvEWQy4X4z3+vXrZfz48fVed955p1xwwQV624cffljsUGfbtQDK4CnOeLIiEiABEghCwOX8Iki7fvsiC/wxO4lc9G+/Pfl9MQKu5ufF6g+7HWGvfqtE0HNUKKggyV7DtsfjSIAESKAUga4UQEvh4Xc+BCiAKkAuxTl4Y5qKcy4nOp4XqM94669d2du8icguasJrEvjepa07qqDs81fkXn72urxRgAD6qhJeTRI/uRIEYV+QsXVt74Qggq8D4bWNCnGwHZKJfeE3stn8vlq5ed94441y/vnny4QJE/Rr4sSJsnjxYv3+iy+iB1ellsAzBmg2zz9aTQIkkDwBl/Mp19ZcoOJFIjHnQ++6rjkb9bmcw7kmhjwDWJV07bOua2Z9JEACJBCMQNfWygN0ZbBjuDcJeAQogCoSLieTWiRTohHq9CuulqKjHS2SGS4L1/Y6EKvQrvaKNPDGdGkrPG1HqGRIJjEqXQqRSPrUvV0u8RNsL1X0JNYRYyR+emtmTqgv1Sa+c2mv6djqdrEE3tHVJIjHqx+PSvu+adOm8sYbb8gpp5wiS5culauuukouv/xy2WGHHeT222+XQw89NHKT16uwCC5ChkTeUTZAAiRAAhVIwNXqoSjQIM77LceKXPmkyFeG4aCi6Ee51om5Y5r/vv7+eyL/eT83Jy1Xxuw3CZBA+ROgB2j5j2GSFjiSLJI0wb5tl5NJ/CB7thd570v/fkGIdCUa7aEClCMj+6oq/3ZdeYCiJVOx6jtHiaY863S7BsKr66fpeyUgvHZoKdK3s8gktTTcr7gUXodsLvLlMpFFBkGmnQqvAbyo/XhU4veNGzfWwuc555wjRxxxhDzzzDOxmokkSLbJzGLtMBsjARIggQoi4PKhfRRYsIrj9BEi5z0kYhqbPop+lGOdmEu5CMkVle2YjyLW6+gHRVYa3G9E1Q/WSwIkkG0C0FtM7k+zTYnWFyNAAVSRcT2ZhDfmfw28MSFEuhJAWzQV2UkJVq/PKDbUG7e7tLe/ihMJ0Q1LnkoVlx6gaAfeifAA9VuO7lIQRLumy9FdC6+mcU9dCpGYhA/vqzgbLIN3aW/QZGIYlyyW4cOHa/Fz6tSp0q2b+iHGVBD/q5kj7+aYusxmSIAESKBiCLieT0UB5sw9RVYrgeyfb0VRe+XW6XIuFRWlfQeIYGXSb5+KqgXWSwIkQAKlCXRWS+AXqSXw0DRYSCAoAQqgipjryaReOmwggOJH6yJztjfopsvgI7HXxxvTpegKe3uopeh4+vP+V571hf93KQiihd22FPlAten35Nu58KoE35d9GKN/rifPpsvgNWdHohhCHOyl7DWNpQu7s1ratGkj48aNk7/85S+xIXDpMR9bp9kQCZAACVQIAdfzqSiwYG57+/FqOfzLIk9MjaKFyqzT9dwxKkpXqmg7yAh//fNRtcB6SYAESKA4ASTrHbSZyEufFt+H35BAMQIUQBUZ15NJZEf/bKHIstXFsOe2u/QARY2mYlUky9F9BF+Xy+49qiZCs+vJZG3iJx+vSNfCK7x7Zy0RWeIT8Nm1vQg1ACHSbxmba+HVNMSBdy7w//gIMAt8fKzZEgmQAAnkE3A9v8iv39XnzTuI3PMTkUseUwkkfeZMrtos93pcz6Wi4tGqWW5sH/ufyN/fjKoV1ksCJEACxQkcvJ3IUx8W/57fkEAxAhRAFRnXHk0IYD5sK/8Jn2uxaluVnXHtepGZSigrVVx7gO6pRLI3fZL0uBaZYZ/JcvQoJpNaePWZzLseW3hTYDm6X1Z21/b2UjcweMr28fxSZ1SN56nqo6sCxq8q4dUvxIGr9liPOQHEAGUWeHNe3JMESIAEXBJwPb9w2bf8ujAvvfMEkbPuV3HqDWLj5x+ftc/lIm5jXDq2Ehn/M5HbJoj8WwmhLCRAAiQQJ4GDlAD6/Me5BMBxtsu2yp8ABVA1hlGIc6O2FXlgcukTxLVYhdYOMGjXtb3tlUC2c2+R+ycVt9e1yIyW4Gk7e6nIR/OKtxvFZPKwQbklXaWCL0cxtmjXL56WttehEAmyP9hR5FY1wS1VXNvbra3I1l1FHuPSuVLYE/kOHqBpzlKbCBQ2SgIkQAIxEXD99zbqbmOu9sejRQ69XeQTn4epUfcl7fXrsXU8h4vSZiR9vVd5+V7+hMjYV6NsiXWTAAmQQH0Cm6lweFt2EnlLOWGxkEAQAhRAFa0olmcfN1Rk7nKR59STiWIFYpVrIeGC/UX+pYLOz1LCYLEShb2XHaIyQ74g8s3awq1CdHWV8MlroUUTkfOVvZc97m1p+H8Uk0lM+I7dKWdvwxZzW6IQXr83OPeUq9ST9ihujM4YkfvjUsx7A8vj8XKdufT/VIypq54SWaO8mlnSQ4BZ4NMzFuwJCZBA9gi4fogdB8H9t8kJZfvfIjJlThwtlmcb5Ti2SIb6zNkiv3uanqDledax1yRQvgQOGijy9Efl23/2PBkCFEAV9ygmHEjkAgHnt08Wd82GWOVaNOqksqKdobJvXvNM8RNqgxKrXCZfQktY5oQJbjFPQSy7d90m2v2hEpq/XiPybJGLXxRCJNo9d5/cBfezBfjUsEQhRDZqJHKFOqcwtsjEXahEYW+LpiIQ1otl/ISg7lrchm1DNs95+f6VXgWFhjqxbToGaBl5qCQGig2TAAmQQAQEoniIHUE3G1SJ5IZ/+7HIyf8U+Q+XTDfggw3lOrabKceAZ38hcrWan/7hRf+48QWN50YSIAESCEjgkO3VAxgVB9QvV0XAarl7hROgAKoGWE84IrihRxzDLZRr9r/eLnwWaQ/QCEbgdOWxN2W2yKRZDduFra5FV6+VCw5QQdHfEfnqa2/Lxv+j8ABF7RCaLzs49+QZPPNLFEIk2kBczF+MzE328tvEZy1ERnBO7bqlynrXU2TcG4VaVe1G4GmLliA0L12di7WS37JuMwJb0c6YA0XueF2kVLiB/P7wc7QE6AEaLV/WTgIkQAKlCOj5VER/c0u16+K7A5W3zoMqbuTvn829eNNan2oUDhn1W4ju03YqI/PTyhMUiTPPuDeXkyC61lgzCZAACYhs1Tl3T86VBTwbghCIQH4L0nw69o1ywnG5Whr+x5dEVqxtaCuEoyjESGQqv1gJR/+nvE/zS1QCGdrpruI2nry7yHXP5beaE5mj8ABFS0iGhGQ990xs2C7sdR1mwGvlFGXrZwtF3pjhbdn4f5ScLz1I5PZXRJYpQTK/RCW8Qmj+DYRm9XQfv5e6JUpbe3dU4QaU+Hqj8ihgSQcBeoCmYxzYCxIggWwSwIPsKFZdxEVzm+5KKFPegnhQf+Z9IktWxtVy+tuJcj4Vh/Wd1So0CNxtmqv48X8Vmb4ojlbZBgmQQJYJIBv808wGn+VTILDtFEAVMtdZ0euOwgAVGwc/zJtfqrs19z4qz1PUjsQ1mEg99n79drVAFuGon7WXyCufi3zwVV67qi9RTtghNEMkW1mV1666UYhCZEYrTRvnPBQRpzLfiwHsoxJe8bQL8UD/WEAUjHLyvN8AkW5tRO6b1JBxlGM7WoUbePIDkWlKbGZJngA9QJMfA/aABEgguwS0B2iE87g4yHZoqeYSp+YenO99k8jd7zScR8XRj7S1EdVD7DjtxNz4xqNEjh6i5qpjc04RaxnLPc4hYFskkCkCh1AAzdR4uzC2zKdQLhDkPNqiFHAQP/Evr4nMWVa/v1F6niJe5JWHipx1f/14kVEKZLCuVTORXyt7T1IxnuqWqIVXxCA9QMUgvfQ/dVvNicBRCZFo6QglRGIcH3q3YbtRCa9o6Vf75TxeZy5p2G5UnrZoCULzxf8WWb1uY7v6nIpwOR7CDSDmKgLssyRPgB6gyY8Be0ACJJBdAvibG+X8Ii6ymKv832E5j8EHp4gc/mdmiY96jh7X2KKdU/cQeXG0yBdqnjryjyIvfRpn62yLBEggKwQQfgP34h/Pz4rFtNOWAAVQRTDq5URdlNcclkuf+0AuNqQ3aFF6nqKN3fqItFaCZN0l6XE8Xf7RziILv8k90fdsjWNSh6XhD78n8u4cr9WcABr1jcIfjxY57yEV+3R5nXaV52mUwmvHViI/GSZythK4IUh5JWrO26s/Mv265kRQz+sV51STiK8kP1G/H4xjsUz0nv38P3oC9ACNnjFbIAESIIFiBKJcPVSszSi3Y0n8v88Q+fGuKt7433LzqWIJJqPsRxrqxhwuyrlj3DZ2U6Gx/ny8yA0/UPH6H88lwHpzRty9YHskQAKVToDL4Ct9hN3aF7Fs4bazUdWmlxNF6MGGfv9WPeVuo8TIU/610Xsuaq9ItDtljMjLnylvUBUPFIJV1AIZ2kS8yIkXidz00sZkPXEIrxAF7z815336+nT0pCbBVcRnOZ48wTMSS30+X5hrF5yjFl4h+G6uYp/++B8i36ytaTdi4RWtPPOL3BN9iL4Y1zhshafIuBNFduiVs5P/JkeAHqDJsWfLJEACJBDl6qGk6GLV0nHq4fmEX4n06aRif/8tJ5a9NTOpHiXTbhzzqSQs23Nr5QH6S5GDBopc+KjIobeJPDE1iZ6wTRIggUokgGXwf36lEi2jTVEQiFgaiqLL7uuM2gMUPYYo+PeTVLyjdiouzh25oO9xiJEtm4o8qp6sv/el8hYcr7wFlWAV5RJpb3R6KDv/83Nl85si1z4bj/CKtkeoSdadJ4j8/D6Rx1X807huFE4fobwiR4kcpcZ28uycMBi1VyRuGP58XM4jE+3C6zaOyXOzxiLjf6aywq9SS5zuyoVYqCSPBe8c5v+FCWgBVJ0DLCRAAiRAAvETiGPuGL9VuRbb14S8eftCkVHbilzwiIqjf2vuxnbu10n1Kr5243CMiM+a+i1h7nj8LipPgBK5EdbojtdFht+Qu0fg0tX6rPiJBEggGIFdthRZs17k7Yw9NAtGiXt7BCiAKhLaAzQGEvAIxDKQfQfkYh3hhxqHGIkYivf/NOcNeY4SQTdVwlkcpWd7lYTpTJHXpos8MDkeW2EXlv4jC+WVKjkRJsxxiXNHqYDvNx2T8/L9ek30HqCwFcL61UeIHLa9ikeq4mfhnIpaeEW7LZrkBH143UJsRj9YskFAL4GP2GM+GyRpJQmQAAkEJ6AF0Aq/BkMsO0EtiZ9wnshvDs6tOjnwT7mVNv9QD9YrdYl8FsYWD+8PVJ6gcJLA8vgNanXayf8U2ecmkT+9nAtjhfsyFhIgARIIQgChVH56t4i3CjTIsdw3WwQoW6jxRizOOIRI79Q6f3/ljTlSBFkRmyshKY6CyeRf1ESjq4pHCq/QuAoyfUKMnDRbZEDXuFoVQUwpTK7+o7xAkSAprrJPf5F/nSzy4TwReMHGVfA0/bz9cmI+MnDGUSDoQ/AdqPh2bR1Hi2wjDQQYAzQNo8A+kAAJZJVAJXuA5o8pHq4O76ti2R+pVjJdIjJazXU+UPOrk/+lQuJcnYuDjgfs8CCE92S5lyyNLcZqcE+RSw4SeUeFzYKDCFYWwet3+6tyzgTj3lChvObkHu6X+9iy/yRAAtES2HkLkb/9WOSMe0We+zjatlh7eROISSpJN6QklpzgyfauW4pAmIyrYCJ5p7oweHEq42q3hRJc379UZPmauFrMtQMP1A8vE4EHbJxlyOa5ydxmMQqgsO+HQ0V2URf/qGOP5rP80w9z3hn52/m5MglwCXxljiutIgESKA8Ces66aXn01WUv4aiAFVR4oXy5LLfCCKuMbntFrfhRnwd0U6KaihXer4uKJdpZZCv16qXmgnHPi3I9DP5vXGGbgvcs+iOG9hbBC2XJSpE3ZihPLvV6YEruvmWLTkoY7aEeuqsXxhaxYnt3jPc+Ktc7/ksCJJBWAlgFet+pufwYVYerFbeD09pT9itJAjHKb/XNXLlypUyePFkWLlwo7dq1kz59+ki/fv3q7xTTp6SWnCCbdhJl6wTaxcS1UwJegnGLn954xi1+eu1isp9E2VJNRFmyQYBL4LMxzrSSBCqVQJrmn2EYZ81LsBijXioJJBIn4YWyZl1u9c0HX6kl8ioh5fOfiMxYLLLoGxE8EO/eNrcyB6tzMEfrqFYoIYxPJ/XqouanbZqLxLWCJtfjhv8iJ0EcYYwatpyuLbhfgHDhiRfg8ukC5f2rxhb/QxzF2CLMFTLN49WjZnwx1hhbjKt+qbraqbGFMwaLPYFyv37aE2ANaScwSHmWP3yaijn8dxVz+HORvfuLIBFbW3UdYCEBEEhEAL333nvl0ksvlSFDhkinTp1k7dq1MmPGDC2E3n333dKxo3qkV6JUVVWpjObVDfbYsGFDwe35O+LpOZa9eyWOJEheW/yfBEiABMqZALPAl/Pose8kkG0CaZt/NlLDkT+bzd+W/xlz2HLxaIzzbIPAhSWQeNUtVd/mhLKvlovMq3lBIIWX4RK15BqvpatFvlYvcMVNMh6et1L1IWQUXq2a5T5j1RZCV+mXeg/BFHHmm6pXM7W9sToeL2zDC/XplxpE/Z3atol6r181+2J8vc+I476p2oelPgGw3H6z3KvuN/CYxbh+pYTQeSty4ztnqVo2P7tmXOuMLR4ctFXj2laNJf5HLHs9xupza/XCGHpji+/wWY+tGmMIqQdvV7flbL5P+vqZTeq0OgwBOHs9errIsx+rPCiTVJi4h3Le48O3EmmvHpB0Vr/pzurhCH7b3vUa1/Pm6oU4xXjhuuzlTcFnFP1fzfvclty2un/H8XXdz95xdbfl7+P3uZzrAMc4Vzx741LqfzXM8RaIlGPGjJFJkyZJly5qjUqdcs0118hdd90lo0ePrrO14dvBgwfL7Nnqr1tegTA6cODAvK0NP946IRdo2/sGk6ObjvY+8X8SIAESIIFiBC4epW7keINWDA+3kwAJpJRAGuefuKnKf57f4EYobx8IarhJYzEjgBsvrI4xWSEDAXKFCte0skr9v1ZktfIqxWuVeiFuP97j/7XqvgHbIJ5iVQQeDMKZAu+1k4X6H8l98BkiHV4Q4DDW2A/f4YXP2O69R71Y2s1iRgC/hc2VJzBefgVjhDHFa5UaX4wxxhBjinGHBzH4e+O8VG3zxrS9EkyzLoCm4frpN8b8ngTqEsAqgZ/ukXtB60GGeMQURviU99T/i9X1e5l68IXv1qsXrtf4zeN67V2jUR8+q0t1rqg3+LuN772S/3c8/zP2y98W9HNZ1aE6WweP/pv2QmlpD+bFWmKfQn333Xfa67N9e7VGIa/06tVLli5Vj+58yqefflpwjwsuuEC6dlWSv0/55b4ieLGQAAmQAAkEI3DWyGD7c28SIAESSAMBzj/TMArp7gM8//BSoURZKowAvLvg8YUXS3ACabh+Bu81jyCBHAE8CNurX+5FJiQQuwDapEkTOfbYY2XkyJFy0EEHSefOnQWem9OnT5cXXnhBJk6cyFEhARIgARIgARIgARIgAWcEOP90hpIVkQAJZIwAr58ZG3CaSwIVTEAtHoi/XHzxxTJ27Fjp3r27zJ07V1atWiXDhg2TKVOmSJs2beLvEFskARIgARIgARIgARKoaAKcf1b08NI4EiCBCAnw+hkhXFZNAiQQG4HYPUA9yxDHEy8WEiABEiABEiABEiABEoiDAOefcVBmGyRAApVIgNfPShxV2kQC2SKQiAdothDTWhIgARIgARIgARIgARIgARIgARIgARIgARIggaQIUABNijzbJQESIAESIAESIAESIAESIAESIAESIAESIAESiJwABdDIEbMBEiABEiABEiABEiABEiABEiABEiABEiABEiCBpAhQAE2KPNslARIgARIgARIgARIgARIgARIgARIgARIgARKInEBiSZCismzt2rUyc+bM2upXrFihP3fq1Kl2W1rfLF26VFq1aiXNmjVLaxd1v7799ltZtmyZdOnSJdX9ROcw/ptuuqnmmvbOzps3T3r06JH2bsrKlSs1z8033zx1fa2qqpLvvvsudf0qlw7x+hn9SPH6GQ1jXj/tufL6aceQ1087fiZH8/ppQin4Prx+BmeWfwSvn/lEgn3m9TMYrzB78/oZhpr/Mbx++jPy2yPu62dFCaDf+973ZM8995Rx48bVcl6+fLl8/fXXWgSr3ZjSNxBuGjVqJJtskm7H3Orqai0yNW6c/tOHTN2f7Bs2bJAmTZqkUqxdvXq1jBw50r3RGaiR1894BpnXT/ecy4kpr5/uxz8NNfL6Gc8olNNvnfNP9+cEr5/umaahRl4/4xkFXj/dcy4nprx+bhz/Rmrgqjd+rLx3L7zwglx33XXy/PPPp964ww8/XM444ww57LDDUt3XGTNmyAEHHCDTp09PdT/RuXPPPVf69esn55xzTqr7ip8hPFVxcUp7uemmm2TWrFnyxz/+Me1dZf8sCfD6aQmwwOG8fhaAYrmJ109LgDw8EgK8frrHyuune6a8frpnyhrtCfD6ac8wvwZeP/OJ2H/m9dOeYRI1pNvVMAkibJMESIAESIAESIAESIAESIAESIAESIAESIAESKBiCFAArZihpCEkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAL5BCiA5hPhZxIgARIgARIgARIgARIgARIgARIgARIgARIggYohQAG0YoaShpAACZAACZAACZAACZAACZAACZAACZAACZAACeQToACaT4SfSYAESIAESIAESIAESIAESIAESIAESIAESIAEKoZAxWeBX7FihcyfP1/69++f+kGbNm2adO3aVdq1a5fqvlZVVclnn30mgwYNSnU/0bnZs2dL8+bNNde0d3bSpEmy8847p72bsmDBAlm3bp1svvnmqe8rO2hHgNdPO36Fjub1sxAV+228ftozZA1uCfD66ZYnauP10z1T1MjrZzRcWWt4Arx+hmdX7EheP4uRsdvO66cdvySOrngBNAmobJMESIAESIAESIAESIAESIAESIAESIAESIAESCAdBLgEPh3jwF6QAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlEQIACaARQWSUJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEA6CFAATcc4sBckQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIREKAAGgFUVkkCJEACJEACJEACJEACJEACJEACJEACJEACJJAOAhRA0zEO7AUJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEAEBCiARgCVVZIACZAACZAACZAACZAACZAACZAACZAACZAACaSDAAXQdIwDe0ECJEACJEACJEACJEACJEACJEACJEACJEACJBABgU3/T5UI6k1FlatWrZJ7771X/v3vf0vPnj2lU6dOqehX3U7Mnz9f93Ho0KG1m999910ZO3aszJkzRwYPHiyNGjWq/S6JN8uXL5eHHnpInnrqKenRo4d07NhRdyONfGfMmKHZvffeezJo0CBp0qSJ7mvamHrjuGzZMrnllltkxIgRqWX6yCOPyJNPPilvvPGGfu2www7StGlT+fLLL+Wvf/2rvPnmm5p1s2bNPLP4fwUQSOPvOx8rr5/5ROw+8/ppx6/Q0bx+FqJS+dt4/XQzxpx/uuFYqBbOPwtR4bY0EOD1080o8PrphmOhWnj9LESlfLZVtAfomWeeKZ988on06tVLDjvsMFm6dGmqRuaLL76Qww8/XJ5++unafn388cfyk5/8RCAy4cbpqquuqv0uqTdHHHGELFy4UAYOHCiHHHKI4CYZJW18cTE69NBDZbvtttNjfcwxx+h+ppGp7pj65+c//7n84x//8D6mjik6dumll8omm2yiRU8InxDk165dK9///velffv2mjXes1QWgbT9vvPp8vqZT8TuM6+fdvyKHc3rZzEylb2d108348v5pxuOhWrh/LMQFW5LAwFeP92MAq+fbjgWqoXXz0JUymhbdYUWJdhVDxgwoNa6iy66qPr222+v/Zz0myVLllRvu+221ermqFqJR7XdOfvss6uV16r+rJ7cVCvxtva7JN4sXry4+te//nVt08phuPqaa66pTiNfJXZXP/HEE7qv4NuhQwf9Pm1MPZj/+te/qk877bTqbbbZRm9KI9OVK1dW9+vXz+ty7f8PPvhg9emnn177ebfddqv+6KOPaj/zTXkTSOO5WJcor591abh5z+unG451a+H1sy6N7Lzn9dPNWHP+6YZjoVo4/yxEhdvSQIDXTzejwOunG46FauH1sxCV8tpWsR6gM2fOFCXc1ErReO95LtZuTPBN27ZtBcu0R40aVa8X6GP//v31NuyDgqUASRWEDbjhhht081VVVfLoo4/KLrvsImnkqwRv7QH67LPPCrw/L7nkEt3vtDFFp+C9Nm7cOLniiit0H/FPGplOnTpV1qxZIwcffLD2Sr7zzjt1f+syxYa0/b50J/lPaAJpPBfrGsPrZ10abt7z+umGY91aeP2sSyM773n9dDPWnH+64ZhfC+ef+UT4OU0EeP10Mxq8frrhmF8Lr5/5RMrzc8UKoFjO17Jly9pRad68uRZyajck/KZx48Z6SXF+N9Lab4hgcKWHYLv//vtLWvsJnlimjZiqjz/+uKxevTp1fd2wYYMo70lRHsm1MUrR7zQybdeunVx++eU6TMMLL7wgv/vd7+Srr75KZV/BkMUNgTSei3Ut4/WzLg2373n9dMeT1093LMupJl4/3Y4W55/ueHL+6Y4la4qGAK+fbrny+umOJ6+f7lgmXVPjpDsQVfvdu3evF/MT8T979+4dVXPO6s3vN7wuO3fu7Kz+MBV98803OlYphM/f/OY3uor8fqaB77fffivr16+XffbZR78OPPBAefnllyW/r0kzhRctYtMi/xj6MnfuXBk9erSceuqpqTtn1fJ82XrrrfWYd+nSRXN96aWXGjBNw/iHObd5TGEC+b+Zchnf/H4n/VsHXV4/C59jYbfy+hmWHI+Li0D+dYjXz/Dkef0Mz67Qkbx+FqLCbWkiwOunu9Hg9dMdS9TE66dbnknWVrEeoBBusEx30aJF8t133+kM5ipOYZKsjdrea6+9tOcidkbW7b59+xodF9VOeNqBxEc/+tGPasVPtJVGvir+p5x88skaBcYcbupDhgyRtDHdd9995bHHHpMxY8bIueeeK1imgGDKaWSKRFzHHXecZgpx+dVXX5X99ttPM33mmWe04Iwsg++//77uv96R/5Q9gTSeiyZQ0/Zb5/XTZNSC7cPrZzBe3Dt+Arx+umHO66cbjnVr4fWzLg2+TyMBXj/djAqvn2441q2F18+6NMr8fXmFLA3WWyTE2XPPPat32mmn6vPOOy/YwTHtPWHChHpJkNTTGp0YB/1W2cyrP/jgg5h6UrgZJYBVqwzg1T179qx9qSXReue08VUX+2rlRVmtPFWrhw8fXn3LLbfofqaNaV3SCxYsqE2ChO1pZHrSSSdVq4t+dZ8+faqvvvrq2u5ff/311SNGjNDJvO65557a7XxTGQTSdi4WosrrZyEq4bbx+hmOW6mjwJTXz1KEKvc7Xj/tx5bzT3uGpWrg/LMUHX6XJAFeP+3p8/ppz7BUDbx+lqKT/u8aoYtlruH6dh9xIOvGA/U9IAU7IPFRq1atUtAT/y6kjS/6g5ivSrit13kyrYcj0AcwLRR3EUuMsX3TTTcNVB93Lh8Caft9m5Djb92EUuF9eP0szMVmK6+fNvTK+1heP6Mdv7Tx5fXT/Xjz+umeabnUmLbftwk3zj9NKBXeh9fPwlxstvL6WZheJgTQwqZzKwmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQKUTqO8iV+nW0j4SIAESIAESIAESIAESIAESIAESIAESIAESIIFMEaAAmqnhprEkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkkC0CFECzNd60lgRIgARIgARIgARIgARIgARIgARIgARIgAQyRYACaKaGm8aSAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQLYIUADN1njTWhIgARIgARIgARIgARIgARIgARIgARIgARLIFAEKoJkabhpLAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAtkiQAE0W+NNa0mABEiABEiABEiABEiABEiABEiABEiABEggUwQogGZquGksCZAACZAACZAACZAACZAACZAACZAACZAACWSLAAXQbI03rSUBEiABEiABEiABEiABEiABEiABEiABEiCBTBGgAJqp4aaxJEACJEACJEACJEACJEACJEACJEACJEACJJAtAhRAszXetJYESIAESIAESIAESIAESIAESIAESIAESIAEMkWAAmimhpvGkgAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEC2CFAAzdZ401oSIAESIAESIAESIAESIAESIAESIAESIAESyBQBCqCZGm4aSwIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQALZIkABNFvjTWtJgARIgARIgARIgARIgARIgARIgARIgARIIFMEGmfKWhpblgTOO++8Bv3eZJNN5Pe//71cd911ctlllzX4nhtIgARIgAREeP3kWUACJEAC4Qjw+hmOG48iARIgAV4/eQ6klQAF0LSODPtVS2CPPfbQ78ePHy+NGzeWo446Sho1aqS3tWrVqnY/viEBEiABEqhPgNfP+jz4iQRIgARMCfD6aUqK+5EACZBAfQK8ftbnwU/pIUABND1jwZ4UIXDMMcfob95//31p1qyZeJ/Xr1+vP+PLv//977LjjjvKAw88oP8/4IAD5LbbbpMePXrICSecIC1atNB1TJw4UZ5++mldx7bbbqu38R8SIAESqFQC3vWS189KHWHaRQIkEBUBXj+jIst6SYAEKp0Ar5+VPsLlax9jgJbv2GW+51VVVXL99ddrDrfeeqtce+21MmLECLn88su1l+j2228vzz//vNx///16n9/97nfypz/9SXbffXf51a9+JQ8++GDmGRIACZBANgnw+pnNcafVJEAC9gR4/bRnyBpIgASySYDXz2yOe5qspgCaptFgX6wInH/++XLooYfKgQceKPvvv78ceeSR8sMf/lDeeOMNXe99990nP/jBD2TTTTeVo48+Wu69916r9ngwCZAACVQKAV4/K2UkaQcJkEDcBHj9jJs42yMBEqgUArx+VspIlo8dXAJfPmPFnvoQ6NKli96jadOm0rNnT/0eMUM3bNgga9askTlz5sh7771XGz90+PDhPjXyaxIgARLIBgFeP7MxzrSSBEjAPQFeP90zZY0kQALZIMDrZzbGOU1WUgBN02iwL1YEvMRIhSpBDNA999xTRo0aJQjK/Nprr8mLL75YaFduIwESIIHMEeD1M3NDToNJgAQcEeD10xFIVkMCJJA5Arx+Zm7IEzeYAmjiQ8AOxEXgiiuukCuvvFK+/fZbWbVqldx+++1xNc12SIAESKCsCfD6WdbDx86TAAkkSIDXzwThs2kSIIGyJsDrZ1kPXyo736halVT2jJ0igYgIQPxs1apVRLWzWhIgARKoXAK8flbu2NIyEiCBaAnw+hktX9ZOAiRQuQR4/azcsY3bMgqgcRNneyRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAArERYBb42FCzIRIgARIgARIgARIgARIgARIgARIgARIgARIggbgJUACNmzjbIwESIAESIAESIAESIAESIAESIAESIAESIAESiI0ABdDYULMhEiABEiABEiABEiABEiABEiABEiABEiABEiCBuAlQAI2bONsjARIgARIgARIgARIgARIgARIgARIgARIgARKIjQAF0NhQsyESIAESIAESIAESIAESIAESIAESIAESIAESIIG4CVAAjZs42yMBEiABEiABEiABEiABEiABEiABEiABEiABEoiNAAXQ2FCzIRIgARIgARIgARIgARIgARIgARIgARIgARIggbgJUACNmzjbIwESIAESIAESIAESIAESIAESIAESIAESIAESiI0ABdDYULMhEiABEiABEiABEiABEiABEiABEiABEiABEiCBuAlQAI2bONsjARIgARIgARIgARIgARIgARIgARIgARIgARKIjQAF0NhQsyESIAESIAESIAESIAESIAESIAESIAESIAESIIG4CVAAjZs42yMBEiABEiABEiABEiABEiABEiABEiABEiABEoiNAAXQ2FCzIRIgARIgARIgARIgARIgARIgARIgARIgARIggbgJUACNmzjbIwESIAESIAESIAESIAESIAESIAESIAESIAESiI3A/wcPim53QdRQjAAAAABJRU5ErkJggg==" /><!-- --></p>
<p>The Model 3 can be written as</p>
<p><span class="math inline">\(Sales_t=\beta_0 + \beta_1Direct.ad.effect_t+\beta_2Display.ad.effect_t+\beta_3 Email.ad.effect_t+\beta_4Social.ad.effect_t+\epsilon_t\)</span></p>
<p>In order to make the results more precisely, we will remove first few observations to allow for the “Warmup” of the advertising effect based on the theory of advertising effect.</p>
<div id="htmlwidget-c1a1b5007938619c5a1c" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-c1a1b5007938619c5a1c">{"x":{"filter":"none","data":[["1","2","3","4","5"],["(Intercept)","`Direct ad.effect`","`Display ad.effect`","`Email ad.effect`","`Social ad.effect`"],[199.476,0.056,0.004,0.052,0.009],[704.798,0.007,0.132,0.004,0.001],[0.283,7.777,0.028,11.931,6.658],[0.779,0,0.978,0,0],[-1181.902,0.042,-0.256,0.044,0.007],[1580.854,0.071,0.263,0.061,0.012]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Variable<\/th>\n <th>Estimate<\/th>\n <th>Std. Error<\/th>\n <th>t value<\/th>\n <th>Pr(>|t|)<\/th>\n <th>Coef.Lower.95<\/th>\n <th>Coef.Upper.95<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6,7]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<ul>
<li><p>Positive effects for all forms of advertising.</p></li>
<li><p>Email and Direct appears to have a similar influence on sales at about 0.056 and 0.052 additional sales.</p></li>
<li><p>All effects are statistically significant except for Display. Display still has a high standard error after the adjustment of advertising effect and it indicates that we do not have a precise estimate of its effect. This happened because daily display impressions are pretty much the same every day.</p></li>
</ul>
<p><strong>Model 4: Interactions (<span class="math inline">\(Email \times Social\)</span>)</strong></p>
<p>Until now, we have three models, what’s else that we need to consider? Interactions occured when there is an extra effect to have two advertising channels or impressions active meanwhile.</p>
<p>We model this by adding an extra interaction term into our basic model, and we take <span class="math inline">\(Email \times Social\)</span> as an example, which could be shown below:</p>
<p><span class="math inline">\(Sales_t=\beta_0 + \beta_1Direct.ad.effect_t+\beta_2Display.ad.effect_t+\beta_3 Email.ad.effect_t+\beta_4Social.ad.effect_t+\beta_5 (Email \times Social)+\epsilon_t\)</span></p>
<div id="htmlwidget-3eab6ac91a6ffce4e22c" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-3eab6ac91a6ffce4e22c">{"x":{"filter":"none","data":[["1","2","3","4","5","6"],["(Intercept)","`Direct ad.effect`","`Display ad.effect`","`Email ad.effect`","`Social ad.effect`","`Email&Social`"],[204.787,0.056,0.003,0.05,0.009,0],[710.729,0.007,0.133,0.006,0.002,0],[0.288,7.494,0.025,8.066,4.625,0.542],[0.775,0,0.98,0,0,0.591],[-1188.217,0.041,-0.258,0.038,0.005,-0],[1597.791,0.07,0.265,0.062,0.012,0]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Variable<\/th>\n <th>Estimate<\/th>\n <th>Std. Error<\/th>\n <th>t value<\/th>\n <th>Pr(>|t|)<\/th>\n <th>Coef.Lower.95<\/th>\n <th>Coef.Upper.95<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6,7]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<p>There is no significant interaction effect between Email and Social at the significant level at 0.05 as its p-value is larger than 0.05.</p>
<p><strong>Model 5: Interactions (<span class="math inline">\(Direct \times Social\)</span>)</strong></p>
<p>Similarly, we did the interaction factor in Model 5, which consider the interaction between Direct and Social impression factors.</p>
<div id="htmlwidget-21a757a85230c8177782" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-21a757a85230c8177782">{"x":{"filter":"none","data":[["1","2","3","4","5","6"],["(Intercept)","`Email ad.effect`","`Display ad.effect`","`Direct ad.effect`","`Social ad.effect`","`Direct&Social`"],[359.094,0.053,-0.027,0.058,0.01,-0],[796.468,0.005,0.15,0.008,0.002,0],[0.451,11.448,-0.178,7.441,5.423,-0.446],[0.654,0,0.86,0,0,0.658],[-1201.955,0.044,-0.321,0.042,0.006,-0],[1920.142,0.062,0.267,0.073,0.013,0]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Variable<\/th>\n <th>Estimate<\/th>\n <th>Std. Error<\/th>\n <th>t value<\/th>\n <th>Pr(>|t|)<\/th>\n <th>Coef.Lower.95<\/th>\n <th>Coef.Upper.95<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6,7]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<p>There is no significant interaction effect between Direct and Social at the significant level at 0.05 as its p-value is larger than 0.05.</p>
<p>There are different combinations in our case, and we will show the entire combinations in our reporting engine that you can choose whatever interaction terms you want eventually.</p>
</div>
<div id="assumptions-2" class="section level3">
<h3>3. Assumptions</h3>
<p>In our case, we assumed a decay rate for each channel when we created the advertising effect variables. We selected a small decay rate for display and social and a larger rate for email due to our intuition, which is reasonable as people normally have a short memory in display and social ads while having a slightly longer memory in email impressions.</p>
<p>We assume that there are no holiday effects in our modeling process. Take a holiday advertising as an example, the causality is actually reversed as the retailers are buying more ads as they know there will be a high demand than usual, so sales now have an influence on advertising impressions. As we want to know an ordinary result, it is reasonable to think that our simulation data does not include the holidays’ factor.</p>
</div>
</div>
<div id="method-4-model-based-attribution-analysis" class="section level1">
<h1>Method 4: Model-based Attribution Analysis</h1>
<div id="investigation-3" class="section level3">
<h3>1. Investigation</h3>
<p>Different from the MMM method, model-based attribution analysis focuses on the <strong>user level</strong> by connecting the transactions of customers to their prior advertising impressions. By implementing this method, we could get a sense of how the advertising impressions could impact the user’s purchasing behavior. To investigate this relationship, we firstly used the visualization to have a rough but quick idea.</p>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAAHgCAYAAABjDaZnAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VQNcC+8AAEAASURBVHgB7N0LnFxleTj+J5CAICF3iBrBgOEiGAlqIVaMVsV4wbuxlbbWtmIplaiNmhD/XkqNgtVqvYV6aW3S/OxFbStYkEi94DUXKxQFMQElEQgKGBJIgM3+5z06YXeym92dnZ2Z857v+XzCzpw558z7fJ/hmd3znMu43toUJgIECBAgQIAAAQIECBAgQIAAAQIECBAgQCArgQOyikYwBAgQIECAAAECBAgQIECAAAECBAgQIECAQCGgAeCDQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEMhTQAMgwqUIiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIaAD4DBAgQIECAAAECBAgQIECAAAECBAgQIEAgQwENgAyTKiQCBAgQIECAAAECBAgQIECAAAECBAgQIKAB4DNAgAABAgQIECBAgAABAgQIECBAgAABAgQyFNAAyDCpQiJAgAABAgQIECBAgAABAgQIECBAgAABAhoAPgMECBAgQIAAAQIECBAgQIAAAQIECBAgQCBDAQ2ADJMqJAIECBAgQIAAAQIECBAgQIAAAQIECBAgoAHgM0CAAAECBAgQIECAAAECBAgQIECAAAECBDIU0ADIMKlCIkCAAAECBAgQIECAAAECBAgQIECAAAECGgA+AwQIECBAgAABAgQIECBAgAABAgQIECBAIEMBDYAMkyokAgQIECBAgAABAgQIECBAgAABAgQIECCgAeAzQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEMhTQAMgwqUIiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIaAD4DBAgQIECAAAECBAgQIECAAAECBAgQIEAgQwENgAyTKiQCBAgQIECAAAECBAgQIECAAAECBAgQIKAB4DNAgAABAgQIECBAgAABAgQIECBAgAABAgQyFNAAyDCpQiJAgAABAgQIECBAgAABAgQIECBAgAABAhoAPgMECBAgQIAAAQIECBAgQIAAAQIECBAgQCBDgfEZxiSkzAXuueeeeOCBB4ooDzjggJg0aVKMGzeuX9S7d++OnTt3xsSJE2PChAn9XhvLJ729vXHXXXcVb3HwwQfHwx/+8OLxYPMHG0vf8Y8fP77YZt/tDbae+QQIECAwsEC9rg70aqu/K9L31IMPPhhTpkyJev1XwweSN48AAQKtE6jX2/oWB6q79WUGeq2+3nB/9q31w13HcgQIECCwf4Gf/exnsX379pg9e/be/Sn7X2PoV4dbr/f3HVF/Lb1b3++QweYPPapfL7Fnz564++6742EPe1gceuihMdyxDnf7liNQF3AGQF3Cz9IInHXWWTFt2rTiX9q5kgrlGWecEf/7v/+7N4ZPfOITxeuXXXbZ3nmtevCDH/wg3vWudw24uVtvvXXv2J7xjGfsXebqq6/eO/9P/uRP9s4f7EHf8W/btq1Y95xzzhlscfMJECBAYAiBT3/603vrcP07pP6z1d8VL3jBC+KII44oRqSGD5EYLxMgQKBFAr/4xS/61fnDDjssDj/88DjvvPPiV7/6VfEurazJfWt9i0KwGQIECFRWYO3atTFz5sw4+uij4/GPf3xRz9/2tre1xGO49Xp/3xGt2tfTGNDNN99cxPqGN7yheGm4Y23cjucEhhJwBsBQQl7vWoG3v/3tkc4A2LRpU3z2s5+NtMP9xz/+ccyYMSNOPfXUeMtb3hJz5sxp6fhTdzZtu+/O/cHeYMOGDcWR+6lJ8ZWvfGWwxQacP1bjH/DNzCRAgECFBF70ohfFU57ylH4Rn3TSSf2ej/bJ7/3e7+3zHqPdpvUJECBAYHgCxxxzTKQDZ9JRlF/96lfjYx/7WGzdujX+4z/+oziaNP2NcMoppwxvY5YiQIAAgTEXuP/+++OlL31p0bT9wAc+UBwJ/zd/8zfx7ne/O37rt34rXvjCF45qDK3+3Xw0+3qGCqTVYx3q/bxeHQENgOrkOrtIX//618f06dOLuNIO8ze+8Y3x/ve/P9773vdGT09P3HfffcXP2267LVasWBELFy6M//7v/y4uCfS+972vOM0qfan85Cc/iZNPPjne9KY3FZcMShtM637oQx+KjRs3xoknnhgvfvGLY968eZHWS02A1Gi44IILiu0OBJvW+dGPfhT/8z//U3yRpQZAfV59+XRa25o1a+Kb3/xmcQrZU5/61PijP/qj4uW+468v7ycBAgQIjF7g2c9+dnE0aOOW0tE36Q+OV7ziFfGtb30rvv/97xffG+l5+l5Jzeb0h8nLX/7yYtX91fD0R8yuXbsa38JzAgQIEGiDwFFHHRVvfetb977Tb//2b8d//ud/Fr/Xp4OD0u/59cuJpp9f+tKX4oorrigu3Xb66afHH/zBHxR/L1x55ZXxxS9+sWgm/NM//VPRRHjVq14Vz3/+8/duu++DH/7wh/H5z38+0tnCj370oyPtxHnyk59c/P2QGhAXX3xxHHTQQcX3QxrfcccdN+D3Ud9tekyAAIEqCKTfw1PTNu3s//M///Ni/0jaf/K5z32uuOJD3SAdhb9q1apIO+BTnU3LpqZvffrCF75Q1Pt0lYj0O3/63T1dLrrxd/PB6nV9O/v7Wd+vs799PWn973znO/GpT32q+M557nOfG2efffbezX7961+PdHZyupTQS17ykr3z04NWjrXfhj0hULtelYlAqQQWLFjQW/s/t/eOO+7YO+4bbrihmPe85z2vmPfhD3+4eF77Aui97rrrise1U4B7a0fj99b+COi99957e4899tjeWsHtfc5zntN7yCGH9M6dO7e3ds3m3trO99758+cX66Sfj3jEI3prpxD31r6Uel/5ylcW89PzNI7GqfbLffF6bUd+sc1zzz23t/ZF1lu7D0Fv7cupeC1tI01//Md/XMyvFfzeE044oXit1hAoXus7/loDo3it9gdH8Zr/ECBAgMDIBWpHgBa19Mwzz+xdtmzZ3n+1U4uLjX37298uXp88eXJv7Q+G3tofE8Xz2h8XxfNaw7m39gdE7/e+971i+f3V8Kc97Wm9tfu3FMup4SPPlTUIECDQjEDt0g1F3X7605/eb/ULL7ywmP+P//iPvY01+SMf+UhRr1/96lf31hq+xXLLly8v1q8dQFQ8r51d3PukJz2pt3Zvr+J57eCd4vW+tb52iaHeRz3qUcW/l73sZb3pu6S2A6r4O6B21nKxXq2ZUKxXOxOheF47EKnfOD0hQIBAVQXSPpi0Pybt50n7bH73d3+399/+7d96a/d13EuS9rWkfThpmSc84Qm9Bx54YFGXa5eCLpZJNTW9VmsC9z7xiU8sHn/84x8vXhtuvW78jtj75rUHI9nXUzv7rBhf+l6oHehZjOWd73xnsbnagUa9tStZFPuLnvWsZxU/07hf+9rXjmisfcfmMYHhCLgHQO3/NFP5BdJlf9K0ZcuWQYNJ12O+/fbb46qrrop//ud/Lo7mTEf0X3755cVRn9dcc01xlE+69lxtR1D86Z/+aXEUaDr6Jx2Zn47cSUfsp+m0004rTike7M3S0T3pEhNpW6m7m44uqv0x0m/x2h8aka47/e///u977ylw7bXX9lvGEwIECBBorcCXv/zleM973rP3Xzois++Ujv5My6TvhzTV/sAonqdTkGu/WBVnBqT5anhSMBEgQKD7Ber3ZLnlllv2GWz6nT/93l7bwV9caiKdmXv++ef3Wy6dCbZu3briaM70Qm2nVL/X05P0/ZAuNZSOCP3MZz5TXK4inQl24403Ft8X6QjUf/3Xfy3WS7/713Zc9TsadJ8NmkGAAIEKCaRLO6f9MrUDbIorLqRLPKfamy7Tma7YkKYPfvCDxT6cf/iHfyju/5j2tdQaBLF06dLi9Vqzt7iWfjprN9XsxYsXF5eMLl7s85/91es+iw36cDj7etIVKNKVI9I4vvGNb8Tv/M7vRLr6RDq6v9Z4Ll5Ll6VL+5rSuAebRjvWwbZrfjUFNACqmffsok43a0nTIx/5yEFjSzvka0fiF7/kX3/99cVyaQfP8ccfX+wISjPSpX1qZxMUr9WvEZ2+dGpH5I/4es5ph3/6pT+d2pV+yU83Ku47pdPSPvnJTxaXMarfGDh9gZkIECBAYOwE0i/d6Zfp+r/du3f3e7PHPe5xxfOpU6cWP9Ml4tJU/36p12k1vGDxHwIECHS9QDoAKE31Ot53wLUzwqJ2xlakS4umS/Kkg37SZRv6TrUjNIun6fvgyCOPjEsvvbTvy8XjSZMmRe3I0Ui/06f7f6VLAaUpfWeky1PUzhwuLkuRLh+XLiuULk2RbnZpIkCAAIFfC6Qbt6dGau1KD8VBlOkyaunSQGlneppSbU7N1NpZVsXzVFfTJaFrZwAU9Tfd7D1dQijV9LRcahik+8E0Tvur143LDvZ8qH09aX9Tamqk5dL+pnRp0R07dhQHld50003F+GpnJRSbr/8c6L1aMdaBtmteNQU0AKqZ9+yiTtftTFO6zuZgU+203b0vpeu2pem8886LdE3PdEZAOgIofcnUd/qkZkCa0rXo0v0AUtFOXyRpSjuOhppSsU9Tum5d7RS04oY2xYzaf1LxTzcSTvcJSJ3u7373u8VL6UvCRIAAAQKdE6hdEq5483q9P/TQQ/s9T0/U8ILEfwgQIFAKgXRWV6rp6Sj/xikd6JPOwE1H5f/Zn/1ZpOtL1y7hWdwPoL5s7XKixcP0N8Evf/nLqH9P1F9PP//lX/4lXve610VqIqejT9ONhtNU/93+Na95TaSd/0uWLIm0k+oP//APi9f9hwABAgSiuEl77ZLNUbsEW3HQZjp4Mp2xm6ZUU9M0e/bsYj9MfT9NahTceeedRWO2dtm1ot7WX0vLr169OtI9ARqnoep14/IDPd/fvp60fNrflA4+TfcASPub0tH+qYGRmsjTpk0r4khXmEhTaggMNrVirINt2/zqCbgJcPVynk3Ef/3Xf10czZ9O501H2dSu1V/8Uj1YgKkTXJ/STVjS9F//9V9Fl/jv/u7vilN20474dHpW6j6n03fTTcTSzSDTl0e6eVi6EXC6UUsq0um0tNq16eqb3Odn6j6nHUe1+w1E/QuivlA6Giid/pU6uum9Unc6TWlZEwECBAiMnUCq+42Xi6vdF2DAHTqDjUINH0zGfAIECHReYPPmzZGO7E+X4EmXX0iX9UlH9teuL11cDrTvCBcuXFgcaZou65OO3r/66quLl9PZu/Vp5cqVxd8Z6bKetfuFRe2eY/WX9v686667isfp75F0xkHaaZOm+u/26Qbyf/EXfxGf+MQnioOCXvziFxev+w8BAgQIRHHZtHSk/Ec/+tFI9bR2rf+9l1ur3bOxIHrhC19Y7ExPzdrUqE37Y9JldlLtTmfmpt/n08GVb37zm+Mxj3lMcQmgtL+m8Sa7Q9Xr4eRjf/t60vrpeyIdpJp2/L/gBS8o9hvV7vtYXI463Ug+nUmWLieaYmm8HGnf92/FWPtuz+NqCzjcuNr5L3X06aj8dB21r371q5GKaLrmZuoaD2dKpwCny++ku7+nHf61mzrGX/3VXxWnZ6Vf3NOXSZrSXeW/8pWvFI2F9IWTpnQn+dQASH9IpGv7DzbVrw2XXk9H+/edUuc3HRmUTld7/OMfXzQD0n0M0n0ITAQIECAwdgLpSND3vve9/f6lnUMjmdTwkWhZlgABAu0V+NnPflbU+HQpiXREfzqiNF3+baApLZMu+5muNZ1+pt/H06U/62eBpXXSTqV0X4B0FGf6myNtr3F61ateFekyDu9617vimc985t5Lf9Z/t08HBS1atKhYLTUDBjqLoHGbnhMgQKAqAulsqdqN2oud9emo/VRn0z6XN73pTfHWt761YEiX/rnkkkuKul5v2L7jHe8oruqQFkgN1nRZoLSPKJ1tlRoHF1100T6EQ9XrfVYYYMb+9vWkxdP9JH//938/0oGmaX9T2v/0t3/7t8VZCum1tC8pHWiaHqerUAw2tWKsg23b/OoJjKtdymToa5lUz0XEFRJIR+mknTkDTem1dOOwvn8EpOXSNT7TqVvptK7RTPfdd1/U7nhfnAUwmu1YlwABAgTaL6CGt9/cOxIgQGAsBNL9YNLZuRMnTty7+XT5iQsuuCDSjSbT5SjSJYDS7//7m9LlKNIZvn3PIKgvn3bypIOM0kFLjWcH15fxkwABAlUXSGdapcv7pAMzB5vSfpp0/f+Bam26zFraT1O/jOdg29hfvR5snZHOT98r6dKh9ctM910/jTNdXSKdvTDU1I6xDjUGr5df4KFropQ/FhEQaEpgsJ3/aWODvdaqm3Y5+qeplFmJAAECXSGghndFGgyCAAECoxZIO2HSv8GmdLTnUDv/07oD7eRJO/0vvPDC4szjdB8CO/8HUzafAAECUdzEd387/5PRYPtp0mupCTucaaB6PZz1RrJM+u4Y7H2GO870foNtYyRjsSwBDQCfAQIECBAgQIAAAQIECBAg0EcgHfX/zne+M4455pg+c0f+MK1/6qmnFte4Xrx48cg3YA0CBAgQIECAwCgFXAJolIBWJ0CAAAECBAgQIECAAAECBAgQIECAAAEC3SjgJsDdmBVjIkCAAAECBAgQIECAAAECBAgQIECAAAECoxTQABgloNUJECBAgAABAgQIECBAgAABAgQIECBAgEA3CmgAdGNWjIkAAQIECBAgQIAAAQIECBAgQIAAAQIECIxSQANglIBWJ0CAAAECBAgQIECAAAECBAgQIECAAAEC3SigAdCNWTEmAgQIECBAgAABAgQIECBAgAABAgQIECAwSgENgFECWp0AAQIECBAgQIAAAQIECBAgQIAAAQIECHSjgAZAN2bFmAgQIECAAAECBAgQIECAAAECBAgQIECAwCgFNABGCWh1AgQIECBAgAABAgQIECBAgAABAgQIECDQjQIaAN2YFWMiQIAAAQIECBAgQIAAAQIECBAgQIAAAQKjFNAA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ECBAgED5BdT/8udQBAQIEGhGQP1vRs06BAgQKL+A+l/+HIqAAIE8BNp+BsCECRNi0aJFsWDBgli4cGFMnz49du/eHZs2bYq1a9fGunXr8pAVBQECBAj0E1D/+3F4QoAAgcoIqP+VSbVACRAg0E9A/e/H4QkBAgQ6JtD2MwBSpEuXLo2VK1fGzJkzY+vWrbFz586YP39+bNy4MSZOnNgxDG9MgAABAmMroP6Pra+tEyBAoFsF1P9uzYxxESBAYGwF1P+x9bV1AgQIDEeg7WcA1Ac1d+7cSP9MBAgQIFAtAfW/WvkWLQECBOoC6n9dwk8CBAhUS0D9r1a+RUuAQPcJdOQMgO5jMCICBAgQIECAAAECBAgQIECAAAECBAgQIJCXgAZAXvkUDQECBAgQIECAAAECBAgQIECAAAECBAgQKAQ0AHwQCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAhgIaABkmVUgECBAgQIAAAQIECBAgQIAAAQIECBBopUBvb8SO3a3com21Q0ADoB3K3oMAAQIECBAgQIAAAQIECBAgQIAAAQIlFthyd8SzPlTiACo6dA2AiiZe2AQIECBAgAABAgQIECBAgAABAgQIECCQt4AGQN75FR0BAgQIECBAgAABAgQIECBAgAABAgQIVFRAA6CiiRc2AQIECBAgQIAAAQIECBAgQIAAAQIECOQtoAGQd35FR4AAAQIECBAgQIAAAQIECBAgQIAAAQIVFdAAqGjihU2AAAECBAgQIECAAAECBAgQIECAAAECeQtoAOSdX9ERIECAAAECBAgQIECAAAECBAgQIECAQEUFNAAqmnhhEyBAgAABAgQIECBAgAABAgQIECBAgEDeAhoAeedXdAQIECBAgAABAgQIECBAgAABAgQIECBQUQENgIomXtgECBAgQIAAAQIECBAgQIAAAQIECBAgkLeABkDe+RUdAQIECBAgQIAAAQIECBAgQIAAAQIECFRUQAOgookXNgECBAgQIECAAAECBAgQIECAAAECBAjkLaABkHd+RUeAAAECBAgQIECAAAECBAgQIECAAAECFRXQAKho4oVNgAABAgQIECBAgAABAgQIECBAgAABAnkLaADknV/RESBAgAABAgQIECBAgAABAgQIECBAgEBFBTQAKpp4YRMgQIAAAQIECBAgQIAAAQIECBAgQIBA3gIaAHnnV3QECBAgQIAAAQIECBAgQIAAAQIECBAgUFEBDYCKJl7YBAgQIECAAAECBAgQIECAAAECBAgQIJC3gAZA3vkVHQECBAgQIECAAAECBAgQIECAAAECBAhUVEADoKKJFzYBAgQIECBAgAABAgQIECBAgAABAgQI5C2gAZB3fkVHgAABAgQIECBAgAABAgQIECBAgAABAhUV0ACoaOKFTYAAAQIECBAgQIAAAQIECBAgQIAAAQJ5C2gA5J1f0REgQIAAAQIECBAgQIAAAQIECBAgQIBARQU0ACqaeGETIECAAAECBAgQIECAAAECBAgQIECAQN4CGgB551d0BAgQIECAAAECBAgQIECAAAECBAgQIFBRAQ2AiiZe2AQIECBAgAABAgQIECBAgAABAgQIECCQt4AGQN75FR0BAgQIECBAgAABAgQIECBAgAABAgQIVFRAA6CiiRc2AQIECBAgQIAAAQIECBAgQIAAAQIECOQtoAGQd35FR4AAAQIECBAgQIAAAQIECBAgQIAAAQIVFdAAqGjihU2AAAECBAgQIECAAAECBAgQIECAAAECeQtoAOSdX9ERIECAAAECBAgQIECAAAECBAgQIECAQEUFNAAqmnhhEyBAgAABAgQIECBAgAABAgQIECBAgEDeAhoAeedXdAQIECBAgAABAgQIECBAgAABAgQIECBQUQENgIomXtgECBAgQIAAAQIECBAgQIAAAQIECBAgkLeABkDe+RUdAQIECBAgQIAAAQIECBAgQIAAAQIECFRUQAOgookXNgECBAgQIECAAAECBAgQIECAAAECBAjkLaABkHd+RUeAAAECBAgQIECAAAECBAgQIECAAAECFRXQAKho4oVNgAABAgQIECBAgAABAgQIECBAgAABAnkLaADknV/RESBAgAABAgQIECBAgAABAgQIECBAgEBFBTQAKpp4YRMgQIAAAQIECBAgQIAAAQIECBAgQIBA3gIaAHnnV3QECBAgQIAAAQIECBAgQIAAAQIECBAgUFEBDYCKJl7YBAgQIECAAAECBAgQIECAAAECBAgQIJC3gAZA3vkVHQECBAgQIECAAAECBAgQIECAAAECBAhUVEADoKKJFzYBAgQIECBAgAABAgQIECBAgAABAgQI5C2gAZB3fkVHgAABAgQIECBAgAABAgQIECBAgAABAhUV0ACoaOKFTYAAAQIECBAgQIAAAQIECBAgQIAAAQJ5C2gA5J1f0REgQIAAAQIECBAgQIAAAQIECBAgQIBARQU0ACqaeGETIECAAAECBAgQIECAAAECBAgQIECAQN4CGgB551d0BAgQIECAAAECBAgQIECAAAECBAgQIFBRAQ2AiiZe2AQIECBAgAABAgQIECBAgAABAgQIECCQt4AGQN75FR0BAgQIECBAgAABAgQIECBAgAABAgQIVFRAA6CiiRc2AQIECBAgQIAAAQIECBAgQIAAAQIECOQtoAGQd35FR4AAAQIECBAgQIAAAQIECBAgQIAAAQIVFdAAqGjihU2AAAECBAgQIECAAAECBAgQIECAAAECeQtoAOSdX9ERIECAAAECBAgQIECAAAECBAgQIECAQEUFNAAqmnhhEyBAgAABAgQIECBAgAABAgQIECBAgEDeAhoAeedXdAQIECBAgAABAgQIECBAgAABAgQIECBQUQENgIomXtgECBAgQIAAAQIECBAgQIAAAQIECBAgkLeABkDe+RUdAQIECBAgQIAAAQIECBAgQIAAAQIECFRUQAOgookXNgECBAgQIECAAAECBAgQIECAAAECBAjkLaABkHd+RUeAAAECBAgQIECAAAECBAgQIECAAAECFRXQAKho4oVNgAABAgQIECBAgAABAgQIECBAgAABAnkLaADknV/RESBAgAABAgQIECBAgAABAgQIECBAgEBFBTQAKpp4YRMgQIAAAQIECBAgQIAAAQIECBAgQIBA3gIaAHnnV3QECBAgQIAAAQIECBAgQIAAAQIECBAgUFEBDYCKJl7YBAgQIECAAAECBAgQIECAAAECBAgQIJC3gAZA3vkVHQECBAgQIECAAAECBAgQIECAAAECBAhUVEADoKKJFzYBAgQIECBAgAABAgQIECBAgAABAgQI5C2gAZB3fkVHgAABAgQIECBAgAABAgQIECBAgAABAhUV0ACoaOKFTYAAAQIECBAgQIAAAQIECBAgQIAAAQJ5C2gA5J1f0REgQIAAAQIECBAgQIAAAQIECBAgQIBARQU0ACqaeGETIECAAAECBAgQIECAAIEyCLzgYxH37CrDSI2RAAECBAh0n4AGQPflxIgIECBAgAABAgQIECBAgACB3wjc9IuInl4cBAgQIECAQDMCGgDNqFmHAAECBAgQIECAAAECBAgQIECA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TJw4sWMY3pgAAQIExlZA/R9bX1snQIBAtwqo/92aGeMiQIDA2Aqo/2Pra+sECBAYjkDbzwCoD2ru3LmR/pkIECBAoFoC6n+18i1aAgQI1AXU/7qEnwQIEKiWgPpfrXyLlgCB7hPoyBkA3cdgRAQIECBAgAABAgQIECBAgAABAgQIECBAIC8BDYC88ikaAgQIECBAgAABAgQIECBAgAABAgQIECBQCGgA+CAQIECAAAECBAgQIECAAAECBAgQIECAAIEMBTQAMkyqkAgQIECAAAECBAgQIECAAAECBAgQIECAgAaAzwABAgQIECBAgAABAgQIECBAgAABAgQIEMhQQAMgw6QKiQABAgQIECBAgAABAgQIECBAgAABAgQIaAD4DBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQwFNAAyTKqQCBAgQIAAAQIECBAgQIAAAQIECBAgQICABoDPAAECBAgQIECAAAECBAgQIECAAAECBAgQyFBAAyDDpAqJAAECBAgQIECAAAECBAgQIECAAAECBAhoAPgMECBAgAABAgQIECBAgAABAgQIECBAgACBDAU0ADJMqpAIECBAgAABAgQIECBAgAABAgQIECBAgIAGgM8AAQIECBAgQIAAAQIECBAgQIAAAQIECBDIUEADIMOkCokAAQIECBAgQIAAAQIECBAgQIAAAQIECGgA+AwQIECAAAECBAgQIECAAAECBAgQIECAAIEMBTQAMkyqkAgQIECAAAECBAgQIECAAAECBAgQIECAgAaAzwABAgQIECBAgAABAgQIECBAgAABAgQIEMhQQAMgw6QKiQABAgQIECBAgAABAgQIECBAgAABAgQIaAD4DBAgQIAAAQIECBBoscD1t0Wsu7nFG7U5AgQIECBAgAABAgQIjFBAA2CEYBYnQIAAAQIECBAgMJTAt2+K+M9rhlrK6wQIECBAgAABAgQIEBhbAQ2AsfW1dQIECBAgQIAAAQIECBAgQIAAAQIECBAg0BEBDYCOsHtTAgQIECBAgAABAgQIECBAgAABAgQIECAwtgIaAGPra+sECBAgQIAAAQIECBAgQIAAAQIECBAgQKAjAhoAHWH3pgQIECBAgAABAgQIECBAgAABAgQIECBAYGwFNADG1tfWCRAgQIAAAQIECBAgQIAAAQIECBAokcANt0fc90CJBmyoBPYjoAGw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LCYLESBAgAABAgQIECBAgAABAgQIEBidwBv/PeKXO0a3jW5b+4e3Rux6sNtGZTwECNQFNADqEn4SIECAAAECBAgQIECAAAECBAgQGEOBb26ys3wMeW2aAIEBBDQABkAxiwABAgQIECBAgAABAgQIECBAgEBd4Me3R/zszvozPwkQIFAeAQ2A8uTKSAkQIECAAAECBAgQIECAAAECBDog8P/WR1z+ww68sbckQIDAKAU0AEYJaHUCBAgQIECAAAECBAgQIECAAAEC7RJIN9z9+6vb9W7ep9MCV/4o4tJrOz0K719mAQ2AMmfP2AkQIECAAAECBAgQIECAAAECBColcEftJsL/8YNKhVzpYH90W8R1tRstmwg0K6AB0Kyc9QgQIECAAAECBAgQIECAAAECBAgQIECAQBcLaAB0cXIMjQABAgQIECBAgAABAgQIECBAgAABAgQINCugAdCsnPUIECBAgAABAgQIECBAgAABAgQIECBAgEAXC2gAdHFyDI0AAQIECBAgQIAAAQIECBAgQIAAAQIECDQroAHQrJz1CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAFwtoAHRxcgyNAAECBAgQIECAAAECBAgQIECAAAECBAg0K6AB0Kyc9QgQIECAAAECBAgQIECAAAECBAgQIECAQBcLdKQBcMcdd+wl2bNnT1xxxRVx1VVXRU9Pz975HhAgQIBAfgLqf345FREBAgSGI6D+D0fJMgQIEMhPQP3PL6ciIkCgfALjOzHkU089NW655Za4//7745RTTomjjjoqJkyYEOeee2587Wtfi5kzZ3ZiWN6TAAECBMZYQP0fY2CbJ0CAQJcKqP9dmhjDIkCAwBgLqP9jDGzzBAgQGIZAR84AqI/rC1/4Qpx55plx+eWXxxe/+MVYvHhxXHLJJfWX/SRAgACBTAXU/0wTKywCBAgMIaD+DwHk5VILPP6vI+69v9QhGDyBMRNQ/8eM1oYJECAwpEBHGgC9vb2RLv1z8MEHx4knnrh3kMcee+zexx4QIECAQH4C6n9+ORURAQIEhiOg/g9HyTJlF9j9YETtT10TAQJ9BNT/PhgeEiBAoEMCHbkE0MknnxxHH310camf2267Lc4555y47LLL4vzzz48vfelLHaLwtgQIECAw1gLq/1gL2z4BAgS6U0D97868GBUBAgTGWkD9H2th2ydA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ECBAgAABAgQIEKiigAZAFbMuZgIECBAgQIAAAQIECBAgQIAAAQIECBDIXkADIPsUC5AAAQIECBAgQIAAAQIECBAgQIAAAQIEqihQ2QbAAz0Rv7qviikXMwECBAgQIECAAAECBAgQIECAAAECBAhUQaCyDYD/vSXi1f9UhRSLkQABAgQIECBAgAABAgQIECBAgAABAgSqKFDZBkAVky1mAgQIECBAgAABAgQIECBAgAABAgQIEKiOgAZAdXItUgIECBAgQIAAAQIECBAgQIAAAQIECBCokIAGQIWSLVQCBAgQIECAAAECVRW47/6Im39Z1ejFTYAAAQIECBAgUFUBDYCqZl7cBAgQIECAAAECBCok8H8/j3jDv1coYKESIECAAAECBAgQqAloAPgYECBAgAABAgQIECBAgAABAgQIECBAgACBDAU0ADJMqpAIECBAYHCBX+yIWHv94K97hQABAgQIECBAgAABAgQIECCQi4AGQC6ZFAcBAgQIDEvgpl9EfORrw1rUQgQIECBAgAABAgQIECBAgACBUgtoAJQ6fQZPgAABAgQIECBAgAABAgQIECBAgAABAgQGFtAAGNjFXAIECBAgQIAAAQIECBAgQIAAgZILbN8Vcc3Wkgdh+KUU2HZPxIrLSzl0g85MQAMgs4QKhwABAgQIECBAgAABAgQIECBA4NcCN9wW8fZLaRBov8A9tebT5T9s//t6RwKNAhoAjSKeEyBAgAABAgQIECBAgAABAgQIECBAgACBDAQ0ADJIohAIECBAgAABAgQIECBAgAABAgQIECBAgECjgAZAo4jnBAgQIECAAAECBAgQIECAAAECBAgQIEAgAwENgAySKAQCBAgQIECAAAECBAgQIECAAAECBAgQINAooAHQKOI5AQIECBAgQIAAAQIECBAgQIAAAQIECBDIQEADIIMkCoEAAQIECBAgQIAAAQIECBAgQIAAAQIECDQKaAA0inhOgAABAgQIECBAgAABAgQIECBAgAABAgQyENAAyCCJQiBAgAABAgQIECBAgAABAgQIECBAgAABAo0CGgCNIp4TIECAAAECBAgQIECAAAECBAgQIECAAIEMBDQAMkiiEAgQIECAAAECBAgQIECAAAECBAgQIECAQKOABkCjiOcECBAgQIAAAQIECBAgQIAAAQIECBAgQCADAQ2ADJIoBAIECBAgQIAAAQIECBAgQIAAAQIECBAg0CigAdAo4jkBAgQIECBAgAABAgQIECBAgAABAgQIEMhAQAMggyQKgQABAgQIECBAgAABAgQIECBAgAABAgQINApoADSKeE6AAAECBAgQIECAAAECBAgQIECAAAECBDIQ0ADIIIlCIECAAAECBAgQIECAAAECBAgQIECAAAECjQIaAI0inhMgQIAAAQIECBAgQIAAAQIECBAgQIAAgQwENAAySKIQCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAo4AGQKOI5wQIECBAgAABAgQIECBAgAABAgQIECBAIAMBDYAMkigEAgQIECBAgAABAgQIECBAgAABAgQIECDQKKAB0CjiOQECBAgQIECAAAECBAgQIECAAAECBAgQyEBAAyCDJAqBAAECBAgQIECAAAECBAgQIECAAAECBAg0CmgANIp4ToAAAQIECBAgQIAAAQIECBAgQIAAAQIEMhDQAMggiUIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKNAhoAjSKeEyBAgAABAgQIECBAgAABAgQIECBAgACBDAQ0ADJIohAIECBAgAABAgQIECBAgAABAgQIECBAgECjgAZAo4jnBAgQIECAAAECBAgQIECAAAECBAgQIEAgAwENgAySKAQCBAgQIECAAAECBAgQIECAAAECBAgQINAooAHQKOI5AQIECBAgQIAAAQIECBAgQIAAAQIECBDIQEADIIMkCoEAAQIECBAgQIAAAQIECBAgQIAAAQIECDQKaAA0inhOgAABAgQIECBAgAABAgQIECBAgAABAgQyENAAyCCJQiBAgAABAgQIECBAgAABAgQIECBAgAABAo0CGgCNIp4TIECAAAECBAgQIECAAAECBAgQIECAAIEMBDQAMkiiEAgQIECAAAECBAgQIECAAAECBAgQIECAQKOABkCjiOcECBAgQIAAAQIECBAgQIAAAQIECBAgQCADAQ2ADJIoBAIECBAgQIAAAQIECBAgQIAAAQIECBAg0CigAdAo4jkBAgQIECBAgAABAgQIECBAgAABAgQIEMhAQAMggyQKgQABAgQIECBAgAABAgQIECBAgAABAgQINApoADSKeE6AAAECBAgQIECAAAECBAgQIECAAAECBDIQ0ADIIIlCIECAAAECBAgQIECAAAECBAgQIECAAAECjQIaAI0inhMgQIAAAQIECBAgQIAAAQIECBAgQIAAgQwENAAySKIQCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAo4AGQKOI5wQIECBAgAABAgQIECBAgAABAgQIECBAIAMBDYAMkigEAgQIECBAgAABAgQIECBAgAABAgQIECDQKKAB0CjiOQECBAgQIECAAAECBAgQIECAAAECBAgQyEBAAyCDJAqBAAECBAgQIECAAAECBAgQIECAAAECBAg0CmgANIp4ToAAAQIECBAgQIAAAQIECBAgQIAAAQIEMhDQAMggiUIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKNAhoAjSKeEyBAgAABAgQIECBAgAABAgQIECBAgACBDAQ0ADJIohAIECBAgAABAgQIECBAgAABAgQIECBAgECjgAZAo4jnBAgQIECAAAECBAgQIECAAAECBAgQIEAgAwENgAySKAQCBAgQIECAAAECBAgQIECAAAECBAgQINAooAHQKOI5AQIECBAgQIAAAQIECBAgQIAAAQIECBDIQEADIIMkCoEAAQIECBAgQIAAAQIECBAgQIAAAQIECDQKaAA0inhOgAABAgQIECBAgAABAgQIECBAgAABAgQyENAAyCCJQiBAgAABAgQIECBAgAABAgQIECBAgAABAo0CGgCNIp4TIECAAAECBAgQIECAAAECBAgQIECAAIEMBDQAMkiiEAgQIECAAAECBAgQIECAAAECBAgQIECAQKOABkCjiOcECBAgQIAAAQIECBAgQIAAAQIECBAgQCADAQ2ADJIoBAIECBAgQIAAAQIECBAgQIAAAQIECBAg0CigAdAo4jkBAgQIECBAgAABAgQIECBAgAABAgQIEMhAQAMggyQKgQABAgQIECBAgAABAgQIECBAgAABAgQINApoADSKeE6AAAECBAgQIECAAAECBAgQIECAAAECBDIQ0ADIIIlCIECAAAECBAgQIECAAAECBAgQIECAAAECjQIaAI0inhMgQIAAAQIECBAgQIAAAQIECBAgQIAAgQwExncqhh07dsSGDRti27ZtMWnSpJg9e3bMmTOnU8PxvgQIECDQJgH1v03Q3oYAAQJdJqD+d1lCDIcAAQJtElD/2wTtbQgQIDCIQEcaAGvWrInly5fHvHnzYtq0abFr167YvHlz0QhYvXp1TJ06dZDhmk2AAAEC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" style="display: block; margin: auto;" /></p>
<p>The above four plots are telling the purchasing tendency in a very straightforward way. First, users of the online retailer convert more on days they get <strong>emails</strong> or <strong>direct mails</strong>. To be more specific, the channels of email and direct mail are more likely to bring more transactions to the store. (Email may bring even more transactions than direct mail.)</p>
<p>Additionally, we could also see that with more Display and Social Media advertisements, transactions may increase accordingly, and too many ads (around 10) on these two platforms would decrease transactions. However, there are fluctuations as reflected from the plots for Display and Social Media. We then implemented model-based analysis to further verify our findings.</p>
</div>
<div id="results-and-interpretation-3" class="section level3">
<h3>2. Results and Interpretation</h3>
<p>By implementing the logistic regression model on the dependent variable as transactions and the independent variables as the different advertising channels and whether or not the user has purchased before, we obtained the model summary as below:</p>
<div id="htmlwidget-99557df47be3ea9b6925" style="width:100%;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-99557df47be3ea9b6925">{"x":{"filter":"none","data":[["1","2","3","4","5","6"],["(Intercept)","direct","display","email","social","past.purchase1"],[-4.023,0.413,0.101,0.762,0.18,0.957],[0.014,0.042,0.007,0.02,0.005,0.016],[-287.078,9.896,15.291,38.099,33.621,61.079],[0,0,0,0,0,0],[0.018,1.511,1.106,2.143,1.197,2.604],[0.017,1.392,1.092,2.061,1.185,2.526],[0.018,1.639,1.12,2.229,1.21,2.686]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/th>\n <th>rn<\/th>\n <th>Estimate<\/th>\n <th>Std. Error<\/th>\n <th>z value<\/th>\n <th>Pr(>|z|)<\/th>\n <th>Odds.Ratio<\/th>\n <th>OR.Lower.95<\/th>\n <th>OR.Upper.95<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6,7,8]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
<p>From the statistical significance perspective, all the four channels and the binary past purchase record have significant impacts on the online retail transactions.</p>
<p>From the odds ratio perspective, we could tell that <strong>email</strong> has the highest positive impact on the transaction - each email could increase 114% of probability for the transaction. The second highest channel is <strong>direct mail</strong> - each direct mail could increase 51% of probability for the transaction. Another notable fact is that the customers who have purchased before will significantly and positively impact the transactions - they are 160% more likely to purchase.</p>
<p>Relating these findings to future marketing strategy, we would recommend the retailer to encourage the users with more than one purchase record to register for memberships, and design the email sending and tracking system specifically for those super users. In this way, we could match up the regular customer group with the most effective advertising channel and would likely to maximize the efficiency of the marketing efforts.</p>
</div>
<div id="assumptions-3" class="section level3">
<h3>3. Assumptions</h3>
<p>In this analysis method, we assumed that direct mail, email, social media, and display are the only four channels that the retailer applied for its marketing promotion, such that the effectivenesses are only compared between these four channels. Furthermore, there are no special events (holiday, big discounts, etc.) happening in the same time period (as the date in the dataset) so that the impact of the advertisement would not be influenced by other factors.</p>
</div>
</div>
<div id="limitations-and-uncertainties" class="section level1">
<h1>Limitations and Uncertainties</h1>
<p>For these four methods, each of them has its own advantages and disadvantages:</p>
<table>
<colgroup>
<col width="28%"></col>
<col width="35%"></col>
<col width="35%"></col>
</colgroup>
<thead>
<tr class="header">
<th>Method</th>
<th>Advantages</th>
<th>Disadvantages</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Attribution rules</td>
<td>Easy to compute and understand</td>
<td>Ignores non-transaction customers</td>
</tr>
<tr class="even">
<td>Holdout testing</td>
<td>Simple analysis</td>
<td>requires planning in advance</td>
</tr>
<tr class="odd">
<td>Marketing-mix modeling</td>
<td>Radically reduces data size</td>
<td>sensitive to model assumptions</td>
</tr>
<tr class="even">
<td>Model-based attribution</td>
<td>More flexible</td>
<td>requires large dataset</td>
</tr>
</tbody>
</table>
<p>Limitations and uncertainties of this case mainly come from four aspects:</p>
<p>Firstly, this dataset is not a real one but simulated for training only, which means the result may not be a good reveal of reality;</p>
<p>Secondly, this case is limited by marketing channels provided in the original dataset so that we cannot exclude the impact of other marketing channels, such as friends’ recommendation; also in our analysis, we count all the sales as incremental, assuming that customers who saw ads would not have made a transaction if they hadn’t seen these ads in the first place;</p>
<p>Thirdly, each holdout test was conducted on Tuesday. Therefore, it is hard to see whether there would be any difference if the holdout test was conducted on other days during a week.</p>
<p>Last, the dataset is not large enough and especially after combining the data, the informative data is not enough.</p>
</div>
<div id="areas-of-future-investigation" class="section level1">
<h1>Areas of Future Investigation</h1>
<p>By using last-click attribution, experiments(holdout testing), marketing mix models and attribution models, we are likely to find out the reasons behind the increasing or decreasing sales as mentioned above.</p>
<p>However, there are still rooms for us to make additional contributions based on this theory when applied to reality in the future. Correlation is a complicated magic that people may spend a long time on it. Also, it will be interesting to focus on the trends on different channels besides the impression factors we mentioned before.</p>
<p>We may be able to explore more about the connections among different channels. With the rapid development of the social media and the internet, the traditional way of advertising has been changed a lot. What we studied in our project is just a small projection about what is really happened every single day in our real life. The simple theories used here is still useful in many areas of today’s world.</p>
<p>Moreover, breaking down each advertising channel would give us a more explicit and detailed overview of the effectiveness across different promotion platforms. For example, having data aggregated from social media channels - Facebook, Instagram, Snapchat, LinkedIn, etc., we could investigate the advertising platform with the highest cost efficiency, or ARPPU (average revenue per paid user), and the time slots with highest response rate.</p>
<p>Additionally, adding back the users’ profile data would also largely increase the potential of learning the user response behaviors at a granular level. Customer information such as age, gender, education level, and personal income would help us do customer segmentation before implementing the analyses, which would distill more insights of advertisement response from different user groups.</p>
<p>There are still a lot of potential areas of future investigation, such as Marketing optimization. Marketing Optimization services and tools can help improve efficiency and profitability by pinpointing the level of marketing activity required to maximize your sales and profit and minimize costs. Methods we utilized before could be excellently generalized in this service in reality. It helps the retailers plan budgets, manage multi-channels, create pricing strategies and produce optimal revenue for a single brand.</p>
<p>Marketing data could be quantified by using these different methods and thanks to these methods, we will be able to understand that why every dollar spent in advertising is actually working for your business.</p>
</div>
<div id="references" class="section level1">
<h1>References</h1>
<ul>
<li>Marketing mix modeling. (2019, April 24). Retrieved from <a href="https://en.wikipedia.org/wiki/Marketing_mix_modeling" class="uri">https://en.wikipedia.org/wiki/Marketing_mix_modeling</a></li>
<li>Lohse, A. (n.d.). TV Effectiveness Analysis is Incomplete Without Ad-stock Consideration. Retrieved from <a href="https://www.martechadvisor.com/articles/ads/tv-effectiveness-analysis-is-incomplete-without-adstock-consideration/" class="uri">https://www.martechadvisor.com/articles/ads/tv-effectiveness-analysis-is-incomplete-without-adstock-consideration/</a></li>
<li>Marketing Optimization. (n.d.). Retrieved from <a href="https://analyticpartners.com/marketing-optimization/?gclid=CjwKCAjwk7rmBRAaEiwAhDGhxMBUlY0olF0IYV-oplCVBS1f4HbT8dV4p2aRmEaUghp50RSXM1-sExoCXLIQAvD_BwE" class="uri">https://analyticpartners.com/marketing-optimization/?gclid=CjwKCAjwk7rmBRAaEiwAhDGhxMBUlY0olF0IYV-oplCVBS1f4HbT8dV4p2aRmEaUghp50RSXM1-sExoCXLIQAvD_BwE</a></li>
</ul>
</div>
</section>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>