-
Notifications
You must be signed in to change notification settings - Fork 5
/
5_Presentation_K_final-1.html
229 lines (226 loc) · 998 KB
/
5_Presentation_K_final-1.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
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<meta name="author" content="Team K" />
<meta name="font-size-adjustment" content="-2" />
<title>Advertising Response Measurement</title>
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
div.sourceCode { overflow-x: auto; }
table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
margin: 0; padding: 0; vertical-align: baseline; border: none; }
table.sourceCode { width: 100%; line-height: 100%; }
td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
td.sourceCode { padding-left: 5px; }
code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
code > span.dt { color: #902000; } /* DataType */
code > span.dv { color: #40a070; } /* DecVal */
code > span.bn { color: #40a070; } /* BaseN */
code > span.fl { color: #40a070; } /* Float */
code > span.ch { color: #4070a0; } /* Char */
code > span.st { color: #4070a0; } /* String */
code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
code > span.ot { color: #007020; } /* Other */
code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
code > span.fu { color: #06287e; } /* Function */
code > span.er { color: #ff0000; font-weight: bold; } /* Error */
code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
code > span.cn { color: #880000; } /* Constant */
code > span.sc { color: #4070a0; } /* SpecialChar */
code > span.vs { color: #4070a0; } /* VerbatimString */
code > span.ss { color: #bb6688; } /* SpecialString */
code > span.im { } /* Import */
code > span.va { color: #19177c; } /* Variable */
code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code > span.op { color: #666666; } /* Operator */
code > span.bu { } /* BuiltIn */
code > span.ex { } /* Extension */
code > span.pp { color: #bc7a00; } /* Preprocessor */
code > span.at { color: #7d9029; } /* Attribute */
code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
</style>
<link href="data:text/css;charset=utf-8,%0Abody%0A%7B%0Amargin%3A%200%200%200%200%3B%0Apadding%3A%200%200%200%200%3B%0Awidth%3A%20100%25%3B%0Aheight%3A%20100%25%3B%0Acolor%3A%20black%3B%0Abackground%2Dcolor%3A%20white%3B%0Afont%2Dfamily%3A%20%22Gill%20Sans%20MT%22%2C%20%22Gill%20Sans%22%2C%20GillSans%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2014pt%3B%0A%7D%0Adiv%2Etoolbar%20%7B%0Aposition%3A%20fixed%3B%20z%2Dindex%3A%20200%3B%0Atop%3A%20auto%3B%20bottom%3A%200%3B%20left%3A%200%3B%20right%3A%200%3B%0Aheight%3A%201%2E2em%3B%20text%2Dalign%3A%20right%3B%0Apadding%2Dleft%3A%201em%3B%0Apadding%2Dright%3A%201em%3B%20font%2Dsize%3A%2060%25%3B%0Acolor%3A%20DimGray%3B%0Abackground%2Dcolor%3A%20rgb%28240%2C240%2C240%29%3B%0Aborder%2Dtop%3A%20solid%201px%20rgb%28180%2C180%2C180%29%3B%0A%7D%0Adiv%2Etoolbar%20span%2Ecopyright%20%7B%0Acolor%3A%20DimGray%3B%0Amargin%2Dleft%3A%200%2E5em%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%201000%3B%0Abottom%3A%201%2E2em%3B%0Awidth%3A%20100%25%3B%0Abackground%2Dcolor%3A%20rgb%28200%2C200%2C200%29%3B%0Aopacity%3A%200%2E35%3B%0Abackground%2Dcolor%3A%20rgb%28200%2C200%2C200%2C%200%2E35%29%3B%0Acursor%3A%20pointer%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20p%2Ehelp%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20p%2Eclose%20%7B%0Atext%2Dalign%3A%20right%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Adiv%2Eslidy%5Ftoc%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%20300%3B%0Awidth%3A%2060%25%3B%0Amax%2Dwidth%3A%2030em%3B%0Aheight%3A%2030em%3B%0Aoverflow%3A%20auto%3B%0Atop%3A%20auto%3B%0Aright%3A%20auto%3B%0Aleft%3A%204em%3B%0Abottom%3A%204em%3B%0Apadding%3A%201em%3B%0Abackground%3A%20rgb%28240%2C240%2C240%29%3B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%2Dwidth%3A%202px%3B%0Afont%2Dsize%3A%2060%25%3B%0A%7D%0Adiv%2Eslidy%5Ftoc%20%2Etoc%5Fheading%20%7B%0Atext%2Dalign%3A%20center%3B%0Awidth%3A%20100%25%3B%0Amargin%3A%200%3B%0Amargin%2Dbottom%3A%201em%3B%0Aborder%2Dbottom%2Dstyle%3A%20solid%3B%0Aborder%2Dbottom%2Dcolor%3A%20rgb%28180%2C180%2C180%29%3B%0Aborder%2Dbottom%2Dwidth%3A%201px%3B%0A%7D%0Adiv%2Eslide%20%7B%0Az%2Dindex%3A%2020%3B%0Amargin%3A%200%200%200%200%3B%0Apadding%2Dtop%3A%200%3B%0Apadding%2Dbottom%3A%200%3B%0Apadding%2Dleft%3A%2020px%3B%0Apadding%2Dright%3A%2020px%3B%0Aborder%2Dwidth%3A%200%3B%0Aclear%3A%20both%3B%0Atop%3A%200%3B%0Abottom%3A%200%3B%0Aleft%3A%200%3B%0Aright%3A%200%3B%0Aline%2Dheight%3A%20120%25%3B%0Abackground%2Dcolor%3A%20transparent%3B%0A%7D%0Adiv%2Ebackground%20%7B%0Adisplay%3A%20none%3B%0A%7D%0Adiv%2Ehandout%20%7B%0Amargin%2Dleft%3A%2020px%3B%0Amargin%2Dright%3A%2020px%3B%0A%7D%0Adiv%2Eslide%2Etitlepage%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Adiv%2Eslide%2Etitlepage%20h1%20%7B%0Apadding%2Dtop%3A%2010%25%3B%0Amargin%2Dright%3A%200%3B%0A%7D%0Adiv%2Eslide%20h1%20%7B%0Apadding%2Dleft%3A%200%3B%0Apadding%2Dright%3A%2020pt%3B%0Apadding%2Dtop%3A%204pt%3B%0Apadding%2Dbottom%3A%204pt%3B%0Amargin%2Dtop%3A%200%3B%0Amargin%2Dleft%3A%200%3B%0Amargin%2Dright%3A%2060pt%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0Adisplay%3A%20block%3B%20font%2Dsize%3A%20160%25%3B%0Aline%2Dheight%3A%201%2E2em%3B%0Abackground%3A%20transparent%3B%0A%7D%0A%40media%20screen%20and%20%28max%2Ddevice%2Dwidth%3A%201024px%29%0A%7B%0Adiv%2Eslide%20%7B%20font%2Dsize%3A%20100%25%3B%20%7D%0A%7D%0A%40media%20screen%20and%20%28max%2Ddevice%2Dwidth%3A%20800px%29%0A%7B%0Adiv%2Eslide%20%7B%20font%2Dsize%3A%20200%25%3B%20%7D%0Adiv%2Eslidy%5Ftoc%20%7B%0Atop%3A%201em%3B%0Aleft%3A%201em%3B%0Aright%3A%20auto%3B%0Awidth%3A%2080%25%3B%0Afont%2Dsize%3A%20180%25%3B%0A%7D%0A%7D%0Adiv%2Etoc%2Dheading%20%7B%0Awidth%3A%20100%25%3B%0Aborder%2Dbottom%3A%20solid%201px%20rgb%28180%2C180%2C180%29%3B%0Amargin%2Dbottom%3A%201em%3B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Aimg%20%7B%0Aimage%2Drendering%3A%20optimize%2Dquality%3B%0A%7D%0Apre%20%7B%0Afont%2Dsize%3A%2080%25%3B%0Afont%2Dweight%3A%20bold%3B%0Aline%2Dheight%3A%20120%25%3B%0Apadding%2Dtop%3A%200%2E2em%3B%0Apadding%2Dbottom%3A%200%2E2em%3B%0Apadding%2Dleft%3A%201em%3B%0Apadding%2Dright%3A%201em%3B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%2Dleft%2Dwidth%3A%201em%3B%0Aborder%2Dtop%2Dwidth%3A%20thin%3B%0Aborder%2Dright%2Dwidth%3A%20thin%3B%0Aborder%2Dbottom%2Dwidth%3A%20thin%3B%0Aborder%2Dcolor%3A%20%2395ABD0%3B%0Acolor%3A%20%2300428C%3B%0Abackground%2Dcolor%3A%20%23E4E5E7%3B%0A%7D%0Ali%20pre%20%7B%20margin%2Dleft%3A%200%3B%20%7D%0Ablockquote%20%7B%20font%2Dstyle%3A%20italic%20%7D%0Aimg%20%7B%20background%2Dcolor%3A%20transparent%20%7D%0Ap%2Ecopyright%20%7B%20font%2Dsize%3A%20smaller%20%7D%0A%2Ecenter%20%7B%20text%2Dalign%3A%20center%20%7D%0A%2Efootnote%20%7B%20font%2Dsize%3A%20smaller%3B%20margin%2Dleft%3A%202em%3B%20%7D%0Aa%20img%20%7B%20border%2Dwidth%3A%200%3B%20border%2Dstyle%3A%20none%20%7D%0Aa%3Avisited%20%7B%20color%3A%20navy%20%7D%0Aa%3Alink%20%7B%20color%3A%20navy%20%7D%0Aa%3Ahover%20%7B%20color%3A%20red%3B%20text%2Ddecoration%3A%20underline%20%7D%0Aa%3Aactive%20%7B%20color%3A%20red%3B%20text%2Ddecoration%3A%20underline%20%7D%0Aa%20%7Btext%2Ddecoration%3A%20none%7D%0A%2Etoolbar%20a%3Alink%20%7Bcolor%3A%20blue%7D%0A%2Etoolbar%20a%3Avisited%20%7Bcolor%3A%20blue%7D%0A%2Etoolbar%20a%3Aactive%20%7Bcolor%3A%20red%7D%0A%2Etoolbar%20a%3Ahover%20%7Bcolor%3A%20red%7D%0Aul%20%7B%20list%2Dstyle%2Dtype%3A%20square%3B%20%7D%0Aul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20disc%3B%20%7D%0Aul%20ul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20circle%3B%20%7D%0Aul%20ul%20ul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20disc%3B%20%7D%0Ali%20%7B%20margin%2Dleft%3A%200%2E5em%3B%20margin%2Dtop%3A%200%2E5em%3B%20%7D%0Ali%20li%20%7B%20font%2Dsize%3A%2085%25%3B%20font%2Dstyle%3A%20italic%20%7D%0Ali%20li%20li%20%7B%20font%2Dsize%3A%2085%25%3B%20font%2Dstyle%3A%20normal%20%7D%0Adiv%20dt%0A%7B%0Amargin%2Dleft%3A%200%3B%0Amargin%2Dtop%3A%201em%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Adiv%20dd%0A%7B%0Amargin%2Dleft%3A%202em%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0A%7D%0Ap%2Cpre%2Cul%2Col%2Cblockquote%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%2Cdl%2Ctable%20%7B%0Amargin%2Dleft%3A%201em%3B%0Amargin%2Dright%3A%201em%3B%0A%7D%0Ap%2Esubhead%20%7B%20font%2Dweight%3A%20bold%3B%20margin%2Dtop%3A%202em%3B%20%7D%0A%2Esmaller%20%7B%20font%2Dsize%3A%20smaller%20%7D%0A%2Ebigger%20%7B%20font%2Dsize%3A%20130%25%20%7D%0Atd%2Cth%20%7B%20padding%3A%200%2E2em%20%7D%0Aul%20%7B%0Amargin%3A%200%2E5em%201%2E5em%200%2E5em%201%2E5em%3B%0Apadding%3A%200%3B%0A%7D%0Aol%20%7B%0Amargin%3A%200%2E5em%201%2E5em%200%2E5em%201%2E5em%3B%0Apadding%3A%200%3B%0A%7D%0Aul%20%7B%20list%2Dstyle%2Dtype%3A%20square%3B%20%7D%0Aul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20disc%3B%20%7D%0Aul%20ul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20circle%3B%20%7D%0Aul%20ul%20ul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20disc%3B%20%7D%0Aul%20li%20%7B%20list%2Dstyle%3A%20square%3B%0Amargin%3A%200%2E1em%200em%200%2E6em%200%3B%0Apadding%3A%200%200%200%200%3B%0Aline%2Dheight%3A%20140%25%3B%0A%7D%0Aol%20li%20%7B%20margin%3A%200%2E1em%200em%200%2E6em%201%2E5em%3B%0Apadding%3A%200%200%200%200px%3B%0Aline%2Dheight%3A%20140%25%3B%0Alist%2Dstyle%2Dtype%3A%20decimal%3B%0A%7D%0Ali%20ul%20li%20%7B%20font%2Dsize%3A%2085%25%3B%20font%2Dstyle%3A%20italic%3B%0Alist%2Dstyle%2Dtype%3A%20disc%3B%0Abackground%3A%20transparent%3B%0Apadding%3A%200%200%200%200%3B%0A%7D%0Ali%20li%20ul%20li%20%7B%20font%2Dsize%3A%2085%25%3B%20font%2Dstyle%3A%20normal%3B%0Alist%2Dstyle%2Dtype%3A%20circle%3B%0Abackground%3A%20transparent%3B%0Apadding%3A%200%200%200%200%3B%0A%7D%0Ali%20li%20li%20ul%20li%20%7B%0Alist%2Dstyle%2Dtype%3A%20disc%3B%0Abackground%3A%20transparent%3B%0Apadding%3A%200%200%200%200%3B%0A%7D%0Ali%20ol%20li%20%7B%0Alist%2Dstyle%2Dtype%3A%20decimal%3B%0A%7D%0Ali%20li%20ol%20li%20%7B%0Alist%2Dstyle%2Dtype%3A%20decimal%3B%0A%7D%0A%0Aol%2Eoutline%20li%3Ahover%20%7B%20cursor%3A%20pointer%20%7D%0Aol%2Eoutline%20li%2Enofold%3Ahover%20%7B%20cursor%3A%20default%20%7D%0Aul%2Eoutline%20li%3Ahover%20%7B%20cursor%3A%20pointer%20%7D%0Aul%2Eoutline%20li%2Enofold%3Ahover%20%7B%20cursor%3A%20default%20%7D%0Aol%2Eoutline%20%7B%20list%2Dstyle%3Adecimal%3B%20%7D%0Aol%2Eoutline%20ol%20%7B%20list%2Dstyle%2Dtype%3Alower%2Dalpha%20%7D%0Aol%2Eoutline%20li%2Enofold%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAIACAMzMzOvr%2FywAAAAACQAJAAACD4SPoRvG614Dctb4MEMcFAA7%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aol%2Eoutline%20li%2Eunfolded%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAKEDAMPD%2F8zMzOvr%2F%2F%2F%2F%2FywAAAAACQAJAAACEYyPoivG614LAlg7ZZbxoR8UADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aol%2Eoutline%20li%2Efolded%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAKEDAMPD%2F8zMzOvr%2F%2F%2F%2F%2FywAAAAACQAJAAACFIyPoiu2sJyCyoF7W3hxz850CFIAADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aol%2Eoutline%20li%2Eunfolded%3Ahover%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAKEDAAAAAAAA%2F8PD%2F%2F%2F%2F%2FywAAAAACQAJAAACEYSPoivG614DIlg7ZZbxoQ8UADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aol%2Eoutline%20li%2Efolded%3Ahover%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAKEDAAAAAAAA%2F8PD%2F%2F%2F%2F%2FywAAAAACQAJAAACFISPoiu2sZyCyoV7G3hxz850CFIAADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Enofold%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAIACAMzMzOvr%2FywAAAAACQAJAAACD4SPoRvG614Dctb4MEMcFAA7%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Eunfolded%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAKEDAMPD%2F8zMzOvr%2F%2F%2F%2F%2FywAAAAACQAJAAACEYyPoivG614LAlg7ZZbxoR8UADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Efolded%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAKEDAMPD%2F8zMzOvr%2F%2F%2F%2F%2FywAAAAACQAJAAACFIyPoiu2sJyCyoF7W3hxz850CFIAADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Eunfolded%3Ahover%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAKEDAAAAAAAA%2F8PD%2F%2F%2F%2F%2FywAAAAACQAJAAACEYSPoivG614DIlg7ZZbxoQ8UADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Efolded%3Ahover%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhCQAJAKEDAAAAAAAA%2F8PD%2F%2F%2F%2F%2FywAAAAACQAJAAACFISPoiu2sZyCyoV7G3hxz850CFIAADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0A%0Aa%2Etitleslide%20%7B%20font%2Dweight%3A%20bold%3B%20font%2Dstyle%3A%20italic%20%7D%0A%0Aimg%2Ehidden%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Adiv%2Einitial%5Fprompt%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Adiv%2Eslide%20%7B%0Avisibility%3A%20visible%3B%0Aposition%3A%20inherit%3B%0A%7D%0Adiv%2Ehandout%20%7B%0Aborder%2Dtop%2Dstyle%3A%20solid%3B%0Aborder%2Dtop%2Dwidth%3A%20thin%3B%0Aborder%2Dtop%2Dcolor%3A%20black%3B%0A%7D%0A%40media%20screen%20%7B%0A%2Ehidden%20%7B%20display%3A%20none%3B%20visibility%3A%20visible%20%7D%0Adiv%2Eslide%2Ehidden%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Adiv%2Ehandout%2Ehidden%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Adiv%2Ebackground%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Abody%2Esingle%5Fslide%20div%2Einitial%5Fprompt%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Abody%2Esingle%5Fslide%20div%2Ebackground%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Abody%2Esingle%5Fslide%20div%2Ebackground%2Ehidden%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Abody%2Esingle%5Fslide%20%2Einvisible%20%7B%20visibility%3A%20hidden%20%7D%0Abody%2Esingle%5Fslide%20%2Ehidden%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Abody%2Esingle%5Fslide%20div%2Eslide%20%7B%20position%3A%20absolute%20%7D%0Abody%2Esingle%5Fslide%20div%2Ehandout%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0A%7D%0A%40media%20print%20%7B%0A%2Ehidden%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Adiv%2Eslide%20pre%20%7B%20font%2Dsize%3A%2060%25%3B%20padding%2Dleft%3A%200%2E5em%3B%20%7D%0Adiv%2Etoolbar%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%3B%20%7D%0Adiv%2Eslidy%5Ftoc%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%3B%20%7D%0Adiv%2Ebackground%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%3B%20%7D%0Adiv%2Eslide%20%7B%20page%2Dbreak%2Dbefore%3A%20always%20%7D%0A%0Adiv%2Eslide%2Efirst%2Dslide%20%7B%20page%2Dbreak%2Dbefore%3A%20avoid%20%7D%0A%7D%0A%0A%0A%2Ejslider%20table%20%7B%0Amargin%2Dleft%3A%200em%3B%0Amargin%2Dright%3A%200em%3B%0A%7D%0A%0Atable%2EdataTable%2C%20%2Eshiny%2Ddatatable%2Doutput%20div%20%7B%0Afont%2Dsize%3A%2014pt%3B%0A%7D%0A%0A%2EdataTables%5Finfo%2C%20%2EdataTables%5Fpaginate%20%7B%0Afont%2Dsize%3A%2019px%3B%0A%7D%0A%0Apre%2EsourceCode%2C%20code%2EsourceCode%20%7B%0Afont%2Dsize%3A%2080%25%3B%0A%7D%0A%0Alabel%2C%20button%2C%20input%2C%20select%2C%20textarea%20%7B%0Afont%2Dsize%3A%2014pt%3B%0A%7D%0A%0Aul%2Enav%2C%20ul%2Enav%20li%20%7B%0Alist%2Dstyle%2Dtype%3A%20none%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,Lyogc2xpZHkuanMKCiAgIENvcHlyaWdodCAoYykgMjAwNS0yMDEzIFczQyAoTUlULCBFUkNJTSwgS2VpbyksIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgIFczQyBsaWFiaWxpdHksIHRyYWRlbWFyaywgZG9jdW1lbnQgdXNlIGFuZCBzb2Z0d2FyZSBsaWNlbnNpbmcKICAgcnVsZXMgYXBwbHksIHNlZToKCiAgIGh0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvY29weXJpZ2h0LWRvY3VtZW50cwogICBodHRwOi8vd3d3LnczLm9yZy9Db25zb3J0aXVtL0xlZ2FsL2NvcHlyaWdodC1zb2Z0d2FyZQoKICAgRGVmaW5lcyBzaW5nbGUgbmFtZSAidzNjX3NsaWR5IiBpbiBnbG9iYWwgbmFtZXNwYWNlCiAgIEFkZHMgZXZlbnQgaGFuZGxlcnMgd2l0aG91dCB0cmFtcGxpbmcgb24gYW55IG90aGVycwoqLwoKLy8gdGhlIHNsaWR5IG9iamVjdCBpbXBsZW1lbnRhdGlvbgp2YXIgdzNjX3NsaWR5ID0gewogIC8vIGNsYXNzaWZ5IHdoaWNoIGtpbmQgb2YgYnJvd3NlciB3ZSdyZSBydW5uaW5nIHVuZGVyCiAgbnNfcG9zOiAodHlwZW9mIHdpbmRvdy5wYWdlWU9mZnNldCE9J3VuZGVmaW5lZCcpLAogIGtodG1sOiAoKG5hdmlnYXRvci51c2VyQWdlbnQpLmluZGV4T2YoIktIVE1MIikgPj0gMCA/IHRydWUgOiBmYWxzZSksCiAgb3BlcmE6ICgobmF2aWdhdG9yLnVzZXJBZ2VudCkuaW5kZXhPZigiT3BlcmEiKSA+PSAwID8gdHJ1ZSA6IGZhbHNlKSwKICBpcGFkOiAoKG5hdmlnYXRvci51c2VyQWdlbnQpLmluZGV4T2YoImlQYWQiKSA+PSAwID8gdHJ1ZSA6IGZhbHNlKSwKICBpcGhvbmU6ICgobmF2aWdhdG9yLnVzZXJBZ2VudCkuaW5kZXhPZigiaVBob25lIikgPj0gMCA/IHRydWUgOiBmYWxzZSksCiAgYW5kcm9pZDogKChuYXZpZ2F0b3IudXNlckFnZW50KS5pbmRleE9mKCJBbmRyb2lkIikgPj0gMCA/IHRydWUgOiBmYWxzZSksCiAgaWU6ICh0eXBlb2YgZG9jdW1lbnQuYWxsICE9ICJ1bmRlZmluZWQiICYmICF0aGlzLm9wZXJhKSwKICBpZTY6ICghdGhpcy5uc19wb3MgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDYiKSAhPSAtMSksCiAgaWU3OiAoIXRoaXMubnNfcG9zICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTVNJRSA3IikgIT0gLTEpLAogIGllODogKCF0aGlzLm5zX3BvcyAmJiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUgOCIpICE9IC0xKSwKICBpZTk6ICghdGhpcy5uc19wb3MgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDkiKSAhPSAtMSksCgogIC8vIGRhdGEgZm9yIHN3aXBlIGFuZCBkb3VibGUgdGFwIGRldGVjdGlvbiBvbiB0b3VjaCBzY3JlZW5zCiAgbGFzdF90YXA6IDAsCiAgcHJldl90YXA6IDAsCiAgc3RhcnRfeDogMCwKICBzdGFydF95OiAwLAogIGRlbHRhX3g6IDAsCiAgZGVsdGFfeTogMCwKCiAgLy8gYXJlIHdlIHJ1bm5pbmcgYXMgWEhUTUw/IChkb2Vzbid0IHdvcmsgb24gT3BlcmEpCiAgaXNfeGh0bWw6IC94bWwvLnRlc3QoZG9jdW1lbnQuY29udGVudFR5cGUpLAoKICBzbGlkZV9udW1iZXI6IDAsIC8vIGludGVnZXIgc2xpZGUgY291bnQ6IDAsIDEsIDIsIC4uLgogIHNsaWRlX251bWJlcl9lbGVtZW50OiBudWxsLCAvLyBlbGVtZW50IGNvbnRhaW5pbmcgc2xpZGUgbnVtYmVyCiAgc2xpZGVzOiBbXSwgLy8gc2V0IHRvIGFycmF5IG9mIHNsaWRlIGRpdidzCiAgbm90ZXM6IFtdLCAvLyBzZXQgdG8gYXJyYXkgb2YgaGFuZG91dCBkaXYncwogIGJhY2tncm91bmRzOiBbXSwgLy8gc2V0IHRvIGFycmF5IG9mIGJhY2tncm91bmQgZGl2J3MKICBvYnNlcnZlcnM6IFtdLCAvLyBsaXN0IG9mIG9ic2VydmVyIGZ1bmN0aW9ucwogIHRvb2xiYXI6IG51bGwsIC8vIGVsZW1lbnQgY29udGFpbmluZyB0b29sYmFyCiAgdGl0bGU6IG51bGwsIC8vIGRvY3VtZW50IHRpdGxlCiAgbGFzdF9zaG93bjogbnVsbCwgLy8gbGFzdCBpbmNyZW1lbnRhbGx5IHNob3duIGl0ZW0KICBlb3M6IG51bGwsICAvLyBzcGFuIGVsZW1lbnQgZm9yIGVuZCBvZiBzbGlkZSBpbmRpY2F0b3IKICB0b2M6IG51bGwsIC8vIHRhYmxlIG9mIGNvbnRlbnRzCiAgb3V0bGluZTogbnVsbCwgLy8gb3V0bGluZSBlbGVtZW50IHdpdGggdGhlIGZvY3VzCiAgc2VsZWN0ZWRfdGV4dF9sZW46IDAsIC8vIGxlbmd0aCBvZiBkcmFnIHNlbGVjdGlvbiBvbiBkb2N1bWVudAogIHZpZXdfYWxsOiAwLCAgLy8gMSB0byB2aWV3IGFsbCBzbGlkZXMgKyBoYW5kb3V0cwogIHdhbnRfdG9vbGJhcjogdHJ1ZSwgIC8vIHVzZXIgcHJlZmVyZW5jZSB0byBzaG93L2hpZGUgdG9vbGJhcgogIG1vdXNlX2NsaWNrX2VuYWJsZWQ6IHRydWUsIC8vIGVuYWJsZXMgbGVmdCBjbGljayBmb3IgbmV4dCBzbGlkZQogIHNjcm9sbF9oYWNrOiAwLCAvLyBJRSB3b3JrIGFyb3VuZCBmb3IgcG9zaXRpb246IGZpeGVkCiAgZGlzYWJsZV9zbGlkZV9jbGljazogZmFsc2UsICAvLyB1c2VkIGJ5IGNsaWNrZWQgYW5jaG9ycwoKICBsYW5nOiAiZW4iLCAvLyB1cGRhdGVkIHRvIGxhbmd1YWdlIHNwZWNpZmllZCBieSBodG1sIGZpbGUKCiAgaGVscF9hbmNob3I6IG51bGwsIC8vIHVzZWQgZm9yIGtleWJvYXJkIGZvY3VzIGhhY2sgaW4gc2hvd1Rvb2xiYXIoKQogIGhlbHBfcGFnZTogImh0dHA6Ly93d3cudzMub3JnL1RhbGtzL1Rvb2xzL1NsaWR5Mi9oZWxwL2hlbHAuaHRtbCIsCiAgaGVscF90ZXh0OiAiTmF2aWdhdGUgd2l0aCBtb3VzZSBjbGljaywgc3BhY2UgYmFyLCBDdXJzb3IgTGVmdC9SaWdodCwgIiArCiAgICAgICAgICAgICAib3IgUGcgVXAgYW5kIFBnIERuLiBVc2UgUyBhbmQgQiB0byBjaGFuZ2UgZm9udCBzaXplLiIsCgogIHNpemVfaW5kZXg6IDAsCiAgc2l6ZV9hZGp1c3RtZW50OiAwLAogIHNpemVzOiAgbmV3IEFycmF5KCIxMHB0IiwgIjEycHQiLCAiMTRwdCIsICIxNnB0IiwgIjE4cHQiLCAiMjBwdCIsCiAgICAgICAgICAgICAgICAgICAgIjIycHQiLCAiMjRwdCIsICIyNnB0IiwgIjI4cHQiLCAiMzBwdCIsICIzMnB0IiksCgogIC8vIG5lZWRlZCBmb3IgZWZmaWNpZW50IHJlc2l6aW5nCiAgbGFzdF93aWR0aDogMCwKICBsYXN0X2hlaWdodDogMCwKCgogIC8vIE5lZWRlZCBmb3IgY3Jvc3MgYnJvd3NlciBzdXBwb3J0IGZvciByZWxhdGl2ZSB3aWR0aC9oZWlnaHQgb24KICAvLyBvYmplY3QgZWxlbWVudHMuIFRoZSB3b3JrIGFyb3VuZCBpcyB0byBzYXZlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzCiAgLy8gYW5kIHRoZW4gdG8gcmVjb21wdXRlIGFic29sdXRlIHdpZHRoL2hlaWdodCBkaW1lbnNpb25zIG9uIHJlc2l6aW5nCiAgIG9iamVjdHM6IFtdLAoKICAvLyBhdHRhY2ggaW5pdGlhbGlhdGlvbiBldmVudCBoYW5kbGVycwogIHNldF91cDogZnVuY3Rpb24gKCkgewogICAgdmFyIGluaXQgPSBmdW5jdGlvbigpIHsgdzNjX3NsaWR5LmluaXQoKTsgfTsKICAgIGlmICh0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgIT0gInVuZGVmaW5lZCIpCiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgaW5pdCwgZmFsc2UpOwogICAgZWxzZQogICAgICB3aW5kb3cuYXR0YWNoRXZlbnQoIm9ubG9hZCIsIGluaXQpOwogIH0sCgogIGhpZGVfc2xpZGVzOiBmdW5jdGlvbiAoKSB7CiAgICBpZiAoZG9jdW1lbnQuYm9keSAmJiAhdzNjX3NsaWR5LmluaXRpYWxpemVkKQogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgIGVsc2UKICAgICAgc2V0VGltZW91dCh3M2Nfc2xpZHkuaGlkZV9zbGlkZXMsIDUwKTsKICB9LAoKICAvLyBoYWNrIHRvIHBlcnN1YWRlIElFIHRvIGNvbXB1dGUgY29ycmVjdCBkb2N1bWVudCBoZWlnaHQKICAvLyBhcyBuZWVkZWQgZm9yIHNpbXVsYXRpbmcgZml4ZWQgcG9zaXRpb25pbmcgb2YgdG9vbGJhcgogIGllX2hhY2s6IGZ1bmN0aW9uICgpIHsKICAgIHdpbmRvdy5yZXNpemVCeSgwLC0xKTsKICAgIHdpbmRvdy5yZXNpemVCeSgwLCAxKTsKICB9LAoKICBpbml0OiBmdW5jdGlvbiAoKSB7CiAgICAvL2FsZXJ0KCJzbGlkeSBzdGFydGluZyB0ZXN0IDEwIik7CiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSI7CiAgICB0aGlzLmluaXRfbG9jYWxpemF0aW9uKCk7CiAgICB0aGlzLmFkZF90b29sYmFyKCk7CiAgICB0aGlzLndyYXBfaW1wbGljaXRfc2xpZGVzKCk7CiAgICB0aGlzLmNvbGxlY3Rfc2xpZGVzKCk7CiAgICB0aGlzLmNvbGxlY3Rfbm90ZXMoKTsKICAgIHRoaXMuY29sbGVjdF9iYWNrZ3JvdW5kcygpOwogICAgdGhpcy5vYmplY3RzID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0Iik7CiAgICB0aGlzLnBhdGNoX2FuY2hvcnMoKTsKICAgIHRoaXMuc2xpZGVfbnVtYmVyID0gdGhpcy5maW5kX3NsaWRlX251bWJlcihsb2NhdGlvbi5ocmVmKTsKICAgIHdpbmRvdy5vZmZzY3JlZW5idWZmZXJpbmcgPSB0cnVlOwogICAgdGhpcy5zaXplX2FkanVzdG1lbnQgPSB0aGlzLmZpbmRfc2l6ZV9hZGp1c3QoKTsKICAgIHRoaXMudGltZV9sZWZ0ID0gdGhpcy5maW5kX2R1cmF0aW9uKCk7CiAgICB0aGlzLmhpZGVfaW1hZ2VfdG9vbGJhcigpOyAgLy8gc3VwcHJlc3MgSUUgaW1hZ2UgdG9vbGJhciBwb3B1cAogICAgdGhpcy5pbml0X291dGxpbmVyKCk7ICAvLyBhY3RpdmF0ZSBmb2xkL3VuZm9sZCBzdXBwb3J0CiAgICB0aGlzLnRpdGxlID0gZG9jdW1lbnQudGl0bGU7CiAgICB0aGlzLmtleWJvYXJkbGVzcyA9ICh0aGlzLmlwYWR8fHRoaXMuaXBob25lfHx0aGlzLmFuZHJvaWQpOwoKICAgIGlmICh0aGlzLmtleWJvYXJkbGVzcykKICAgIHsKICAgICAgdzNjX3NsaWR5LnJlbW92ZV9jbGFzcyh3M2Nfc2xpZHkudG9vbGJhciwgImhpZGRlbiIpCiAgICAgIHRoaXMud2FudF90b29sYmFyID0gMDsKICAgIH0KCiAgICAvLyB3b3JrIGFyb3VuZCBmb3Igb3BlcmEgYnVnCiAgICB0aGlzLmlzX3hodG1sID0gKGRvY3VtZW50LmJvZHkudGFnTmFtZSA9PSAiQk9EWSIgPyBmYWxzZSA6IHRydWUpOwoKICAgIGlmICh0aGlzLnNsaWRlcy5sZW5ndGggPiAwKQogICAgewogICAgICB2YXIgc2xpZGUgPSB0aGlzLnNsaWRlc1t0aGlzLnNsaWRlX251bWJlcl07CiAgIAogICAgICBpZiAodGhpcy5zbGlkZV9udW1iZXIgPiAwKQogICAgICB7CiAgICAgICAgdGhpcy5zZXRfdmlzaWJpbGl0eV9hbGxfaW5jcmVtZW50YWwoInZpc2libGUiKTsKICAgICAgICB0aGlzLmxhc3Rfc2hvd24gPSB0aGlzLnByZXZpb3VzX2luY3JlbWVudGFsX2l0ZW0obnVsbCk7CiAgICAgICAgdGhpcy5zZXRfZW9zX3N0YXR1cyh0cnVlKTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICB0aGlzLmxhc3Rfc2hvd24gPSBudWxsOwogICAgICAgIHRoaXMuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJoaWRkZW4iKTsKICAgICAgICB0aGlzLnNldF9lb3Nfc3RhdHVzKCF0aGlzLm5leHRfaW5jcmVtZW50YWxfaXRlbSh0aGlzLmxhc3Rfc2hvd24pKTsKICAgICAgfQoKICAgICAgdGhpcy5zZXRfbG9jYXRpb24oKTsKICAgICAgdGhpcy5hZGRfY2xhc3ModGhpcy5zbGlkZXNbMF0sICJmaXJzdC1zbGlkZSIpOwogICAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZShzbGlkZSk7CiAgICB9CgogICAgdGhpcy50b2MgPSB0aGlzLnRhYmxlX29mX2NvbnRlbnRzKCk7CgogICAgdGhpcy5hZGRfaW5pdGlhbF9wcm9tcHQoKTsKCiAgICAvLyBiaW5kIGV2ZW50IGhhbmRsZXJzIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCBjdXN0b20gcGFnZSBzY3JpcHRzCiAgICAvLyBUYXAgZXZlbnRzIGJlaGF2ZSB0b28gd2VpcmRseSB0byBzdXBwb3J0IGNsaWNrcyByZWxpYWJseSBvbgogICAgLy8gaVBob25lIGFuZCBpUGFkLCBzbyBleGNsdWRlIHRoZXNlIGZyb20gY2xpY2sgaGFuZGxlcgoKICAgIGlmICghdGhpcy5rZXlib2FyZGxlc3MpCiAgICB7CiAgICAgIHRoaXMuYWRkX2xpc3RlbmVyKGRvY3VtZW50LmJvZHksICJjbGljayIsIHRoaXMubW91c2VfYnV0dG9uX2NsaWNrKTsKICAgICAgdGhpcy5hZGRfbGlzdGVuZXIoZG9jdW1lbnQuYm9keSwgIm1vdXNlZG93biIsIHRoaXMubW91c2VfYnV0dG9uX2Rvd24pOwogICAgfQoKICAgIHRoaXMuYWRkX2xpc3RlbmVyKGRvY3VtZW50LCAia2V5ZG93biIsIHRoaXMua2V5X2Rvd24pOwogICAgdGhpcy5hZGRfbGlzdGVuZXIoZG9jdW1lbnQsICJrZXlwcmVzcyIsIHRoaXMua2V5X3ByZXNzKTsKICAgIHRoaXMuYWRkX2xpc3RlbmVyKHdpbmRvdywgInJlc2l6ZSIsIHRoaXMucmVzaXplZCk7CiAgICB0aGlzLmFkZF9saXN0ZW5lcih3aW5kb3csICJzY3JvbGwiLCB0aGlzLnNjcm9sbGVkKTsKICAgIHRoaXMuYWRkX2xpc3RlbmVyKHdpbmRvdywgInVubG9hZCIsIHRoaXMudW5sb2FkZWQpOwoKICAgIHRoaXMuYWRkX2xpc3RlbmVyKGRvY3VtZW50LCAiZ2VzdHVyZWNoYW5nZSIsIGZ1bmN0aW9uICgpCiAgICB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0pOwoKICAgIHRoaXMuYXR0YWNoX3RvdWNoX2hhbmRlcnModGhpcy5zbGlkZXMpOwoKICAgIC8vIHRoaXMgc2VlbXMgdG8gYmUgYSBkZWJ1Z2dpbmcgaGFjawogICAgLy9pZiAoIWRvY3VtZW50LmJvZHkub25jbGljaykKICAgIC8vICBkb2N1bWVudC5ib2R5Lm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7IH07CgogICAgdGhpcy5zaW5nbGVfc2xpZGVfdmlldygpOwoKICAgIC8vdGhpcy5zZXRfbG9jYXRpb24oKTsKCiAgICB0aGlzLnJlc2l6ZWQoKTsKCiAgICBpZiAodGhpcy5pZTcpCiAgICAgIHNldFRpbWVvdXQodzNjX3NsaWR5LmllX2hhY2ssIDEwMCk7CgogICAgdGhpcy5zaG93X3Rvb2xiYXIoKTsKCiAgICAvLyBmb3IgYmFjayBidXR0b24gZGV0ZWN0aW9uCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7IHczY19zbGlkeS5jaGVja19sb2NhdGlvbigpOyB9LCAyMDApOwogICAgdzNjX3NsaWR5LmluaXRpYWxpemVkID0gdHJ1ZTsKICB9LAoKICAvLyBjcmVhdGUgZGl2IGVsZW1lbnQgd2l0aCBsaW5rcyB0byBlYWNoIHNsaWRlCiAgdGFibGVfb2ZfY29udGVudHM6IGZ1bmN0aW9uICgpIHsKICAgIHZhciB0b2MgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJkaXYiKTsKICAgIHRoaXMuYWRkX2NsYXNzKHRvYywgInNsaWR5X3RvYyBoaWRkZW4iKTsKICAgIC8vdG9jLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCAiMCIpOwoKICAgIHZhciBoZWFkaW5nID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiZGl2Iik7CiAgICB0aGlzLmFkZF9jbGFzcyhoZWFkaW5nLCAidG9jLWhlYWRpbmciKTsKICAgIGhlYWRpbmcuaW5uZXJIVE1MID0gdGhpcy5sb2NhbGl6ZSgiVGFibGUgb2YgQ29udGVudHMiKTsKCiAgICB0b2MuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CiAgICB2YXIgcHJldmlvdXMgPSBudWxsOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zbGlkZXMubGVuZ3RoOyArK2kpCiAgICB7CiAgICAgIHZhciB0aXRsZSA9IHRoaXMuaGFzX2NsYXNzKHRoaXMuc2xpZGVzW2ldLCAidGl0bGUiKTsKICAgICAgdmFyIG51bSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKChpICsgMSkgKyAiLiAiKTsKCiAgICAgIHRvYy5hcHBlbmRDaGlsZChudW0pOwoKICAgICAgdmFyIGEgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJhIik7CiAgICAgIGEuc2V0QXR0cmlidXRlKCJocmVmIiwgIiMoIiArIChpKzEpICsgIikiKTsKCiAgICAgIGlmICh0aXRsZSkKICAgICAgICB0aGlzLmFkZF9jbGFzcyhhLCAidGl0bGVzbGlkZSIpOwoKICAgICAgdmFyIG5hbWUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnNsaWRlX25hbWUoaSkpOwogICAgICBhLmFwcGVuZENoaWxkKG5hbWUpOwogICAgICBhLm9uY2xpY2sgPSB3M2Nfc2xpZHkudG9jX2NsaWNrOwogICAgICBhLm9ua2V5ZG93biA9IHczY19zbGlkeS50b2Nfa2V5X2Rvd247CiAgICAgIGEucHJldmlvdXMgPSBwcmV2aW91czsKCiAgICAgIGlmIChwcmV2aW91cykKICAgICAgICBwcmV2aW91cy5uZXh0ID0gYTsKCiAgICAgIHRvYy5hcHBlbmRDaGlsZChhKTsKCiAgICAgIGlmIChpID09IDApCiAgICAgICAgdG9jLmZpcnN0ID0gYTsKCiAgICAgIGlmIChpIDwgdGhpcy5zbGlkZXMubGVuZ3RoIC0gMSkKICAgICAgewogICAgICAgIHZhciBiciA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoImJyIik7CiAgICAgICAgdG9jLmFwcGVuZENoaWxkKGJyKTsKICAgICAgfQoKICAgICAgcHJldmlvdXMgPSBhOwogICAgfQoKICAgIHRvYy5mb2N1cyA9IGZ1bmN0aW9uICgpIHsKICAgICAgaWYgKHRoaXMuZmlyc3QpCiAgICAgICAgdGhpcy5maXJzdC5mb2N1cygpOwogICAgfQoKICAgIHRvYy5vbm1vdXNldXAgPSB3M2Nfc2xpZHkubW91c2VfYnV0dG9uX3VwOwoKICAgIHRvYy5vbmNsaWNrID0gZnVuY3Rpb24gKGUpIHsKICAgICAgZXx8KGU9d2luZG93LmV2ZW50KTsKCiAgICAgIGlmICh3M2Nfc2xpZHkuc2VsZWN0ZWRfdGV4dF9sZW4gPD0gMCkKICAgICAgICAgdzNjX3NsaWR5LmhpZGVfdGFibGVfb2ZfY29udGVudHModHJ1ZSk7CgogICAgICB3M2Nfc2xpZHkuc3RvcF9wcm9wYWdhdGlvbihlKTsKICAgIAogICAgICBpZiAoZS5jYW5jZWwgIT0gdW5kZWZpbmVkKQogICAgICAgIGUuY2FuY2VsID0gdHJ1ZTsKICAgICAgCiAgICAgIGlmIChlLnJldHVyblZhbHVlICE9IHVuZGVmaW5lZCkKICAgICAgICBlLnJldHVyblZhbHVlID0gZmFsc2U7CiAgICAgIAogICAgICByZXR1cm4gZmFsc2U7CiAgICB9OwoKICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRvYywgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKICAgIHJldHVybiB0b2M7CiAgfSwKCiAgaXNfc2hvd25fdG9jOiBmdW5jdGlvbiAoKSB7CiAgICByZXR1cm4gIXczY19zbGlkeS5oYXNfY2xhc3ModzNjX3NsaWR5LnRvYywgImhpZGRlbiIpOwogIH0sCgogIHNob3dfdGFibGVfb2ZfY29udGVudHM6IGZ1bmN0aW9uICgpIHsKICAgIHczY19zbGlkeS5yZW1vdmVfY2xhc3ModzNjX3NsaWR5LnRvYywgImhpZGRlbiIpOwogICAgdmFyIHRvYyA9IHczY19zbGlkeS50b2M7CiAgICB0b2MuZm9jdXMoKTsKCiAgICBpZiAodzNjX3NsaWR5LmllNyAmJiB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID09IDApCiAgICAgIHNldFRpbWVvdXQodzNjX3NsaWR5LmllX2hhY2ssIDEwMCk7CiAgfSwKCiAgaGlkZV90YWJsZV9vZl9jb250ZW50czogZnVuY3Rpb24gKGZvY3VzKSB7CiAgICB3M2Nfc2xpZHkuYWRkX2NsYXNzKHczY19zbGlkeS50b2MsICJoaWRkZW4iKTsKCiAgICBpZiAoZm9jdXMgJiYgIXczY19zbGlkeS5vcGVyYSAmJgogICAgICAgICF3M2Nfc2xpZHkuaGFzX2NsYXNzKHczY19zbGlkeS50b2MsICJoaWRkZW4iKSkKICAgICAgdzNjX3NsaWR5LnNldF9mb2N1cygpOwogIH0sCgogIHRvZ2dsZV90YWJsZV9vZl9jb250ZW50czogZnVuY3Rpb24gKCkgewogICAgaWYgKHczY19zbGlkeS5pc19zaG93bl90b2MoKSkKICAgICAgdzNjX3NsaWR5LmhpZGVfdGFibGVfb2ZfY29udGVudHModHJ1ZSk7CiAgICBlbHNlCiAgICAgIHczY19zbGlkeS5zaG93X3RhYmxlX29mX2NvbnRlbnRzKCk7CiAgfSwKCiAgLy8gY2FsbGVkIG9uIGNsaWNraW5nIHRvYyBlbnRyeQogIHRvY19jbGljazogZnVuY3Rpb24gKGUpIHsKICAgIGlmICghZSkKICAgICAgZSA9IHdpbmRvdy5ldmVudDsKCiAgICB2YXIgdGFyZ2V0ID0gdzNjX3NsaWR5LmdldF90YXJnZXQoZSk7CgogICAgaWYgKHRhcmdldCAmJiB0YXJnZXQubm9kZVR5cGUgPT0gMSkKICAgIHsKICAgICAgdmFyIHVyaSA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKCiAgICAgIGlmICh1cmkpCiAgICAgIHsKICAgICAgICAvL2FsZXJ0KCJnb2luZyB0byAiICsgdXJpKTsKICAgICAgICB2YXIgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgIHczY19zbGlkeS5oaWRlX3NsaWRlKHNsaWRlKTsKICAgICAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID0gdzNjX3NsaWR5LmZpbmRfc2xpZGVfbnVtYmVyKHVyaSk7CiAgICAgICAgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgIHczY19zbGlkeS5sYXN0X3Nob3duID0gbnVsbDsKICAgICAgICB3M2Nfc2xpZHkuc2V0X2xvY2F0aW9uKCk7CiAgICAgICAgdzNjX3NsaWR5LnNldF92aXNpYmlsaXR5X2FsbF9pbmNyZW1lbnRhbCgiaGlkZGVuIik7CiAgICAgICAgdzNjX3NsaWR5LnNldF9lb3Nfc3RhdHVzKCF3M2Nfc2xpZHkubmV4dF9pbmNyZW1lbnRhbF9pdGVtKHczY19zbGlkeS5sYXN0X3Nob3duKSk7CiAgICAgICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgICAgIC8vdGFyZ2V0LmZvY3VzKCk7CgogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgIGlmICghdzNjX3NsaWR5Lm9wZXJhKQogICAgICAgICAgICB3M2Nfc2xpZHkuc2V0X2ZvY3VzKCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChlKQogICAgICAgIHsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICB3M2Nfc2xpZHkuaGlkZV90YWJsZV9vZl9jb250ZW50cyh0cnVlKTsKICAgIGlmICh3M2Nfc2xpZHkuaWU3KSB3M2Nfc2xpZHkuaWVfaGFjaygpOwogICAgdzNjX3NsaWR5LnN0b3BfcHJvcGFnYXRpb24oZSk7CiAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChlKTsKICB9LAoKICAvLyBjYWxsZWQgb25rZXlkb3duIGZvciB0b2MgZW50cnkKICB0b2Nfa2V5X2Rvd246IGZ1bmN0aW9uIChldmVudCkgewogICAgdmFyIGtleTsKCiAgICBpZiAoIWV2ZW50KQogICAgICB2YXIgZXZlbnQgPSB3aW5kb3cuZXZlbnQ7CgogICAgLy8ga2x1ZGdlIGFyb3VuZCBOUy9JRSBkaWZmZXJlbmNlcyAKICAgIGlmICh3aW5kb3cuZXZlbnQpCiAgICAgIGtleSA9IHdpbmRvdy5ldmVudC5rZXlDb2RlOwogICAgZWxzZSBpZiAoZXZlbnQud2hpY2gpCiAgICAgIGtleSA9IGV2ZW50LndoaWNoOwogICAgZWxzZQogICAgICByZXR1cm4gdHJ1ZTsgLy8gWWlrZXMhIHVua25vd24gYnJvd3NlcgoKICAgIC8vIGlnbm9yZSBldmVudCBpZiBrZXkgdmFsdWUgaXMgemVybwogICAgLy8gYXMgZm9yIGFsdCBvbiBPcGVyYSBhbmQgS29ucXVlcm9yCiAgICBpZiAoIWtleSkKICAgICAgcmV0dXJuIHRydWU7CgogICAgLy8gY2hlY2sgZm9yIGNvbmN1cnJlbnQgY29udHJvbC9jb21tYW5kL2FsdCBrZXkKICAgIC8vIGJ1dCBhcmUgdGhlc2Ugb25seSBwcmVzZW50IG9uIG1vdXNlIGV2ZW50cz8KCiAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkpCiAgICAgIHJldHVybiB0cnVlOwoKICAgIGlmIChrZXkgPT0gMTMpCiAgICB7CiAgICAgIHZhciB1cmkgPSB0aGlzLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwoKICAgICAgaWYgKHVyaSkKICAgICAgewogICAgICAgIC8vYWxlcnQoImdvaW5nIHRvICIgKyB1cmkpOwogICAgICAgdmFyIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICB3M2Nfc2xpZHkuaGlkZV9zbGlkZShzbGlkZSk7CiAgICAgICAgdzNjX3NsaWR5LnNsaWRlX251bWJlciA9IHczY19zbGlkeS5maW5kX3NsaWRlX251bWJlcih1cmkpOwogICAgICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IG51bGw7CiAgICAgICAgdzNjX3NsaWR5LnNldF9sb2NhdGlvbigpOwogICAgICAgIHczY19zbGlkeS5zZXRfdmlzaWJpbGl0eV9hbGxfaW5jcmVtZW50YWwoImhpZGRlbiIpOwogICAgICAgIHczY19zbGlkeS5zZXRfZW9zX3N0YXR1cyghdzNjX3NsaWR5Lm5leHRfaW5jcmVtZW50YWxfaXRlbSh3M2Nfc2xpZHkubGFzdF9zaG93bikpOwogICAgICAgIHczY19zbGlkeS5zaG93X3NsaWRlKHNsaWRlKTsKICAgICAgICAvL3RhcmdldC5mb2N1cygpOwoKICAgICAgICB0cnkKICAgICAgICB7CiAgICAgICAgICBpZiAoIXczY19zbGlkeS5vcGVyYSkKICAgICAgICAgICAgdzNjX3NsaWR5LnNldF9mb2N1cygpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoZSkKICAgICAgICB7CiAgICAgICAgfQogICAgICB9CgogICAgICB3M2Nfc2xpZHkuaGlkZV90YWJsZV9vZl9jb250ZW50cyh0cnVlKTsKCiAgICAgIGlmIChzZWxmLmllNykKICAgICAgIHczY19zbGlkeS5pZV9oYWNrKCk7CgogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CgogICAgaWYgKGtleSA9PSA0MCAmJiB0aGlzLm5leHQpCiAgICB7CiAgICAgIHRoaXMubmV4dC5mb2N1cygpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CgogICAgaWYgKGtleSA9PSAzOCAmJiB0aGlzLnByZXZpb3VzKQogICAgewogICAgICB0aGlzLnByZXZpb3VzLmZvY3VzKCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KCiAgICByZXR1cm4gdHJ1ZTsKICB9LAoKICB0b3VjaHN0YXJ0OiBmdW5jdGlvbiAoZSkKICB7CiAgICAvLyBhIGRvdWJsZSB0b3VjaCBvZnRlbiBzdGFydHMgd2l0aCBhCiAgICAvLyBzaW5nbGUgdG91Y2ggZHVlIHRvIGZpbmdlcnMgdG91Y2hpbmcKICAgIC8vIGRvd24gYXQgc2xpZ2h0bHkgZGlmZmVyZW50IHRpbWVzCiAgICAvLyB0aHVzIGF2b2lkIGNhbGxpbmcgcHJldmVudERlZmF1bHQgaGVyZQogICAgdGhpcy5wcmV2X3RhcCA9IHRoaXMubGFzdF90YXA7CiAgICB0aGlzLmxhc3RfdGFwID0gKG5ldyBEYXRlKS5nZXRUaW1lKCk7CgogICAgdmFyIHRhcF9kZWxheSA9IHRoaXMubGFzdF90YXAgLSB0aGlzLnByZXZfdGFwOwoKICAgIGlmICh0YXBfZGVsYXkgPD0gMjAwKQogICAgewogICAgICAvLyBkb3VibGUgdGFwCiAgICB9CgogICAgdmFyIHRvdWNoID0gZS50b3VjaGVzWzBdOwoKICAgIHRoaXMucGFnZVggPSB0b3VjaC5wYWdlWDsKICAgIHRoaXMucGFnZVkgPSB0b3VjaC5wYWdlWTsKICAgIHRoaXMuc2NyZWVuWCA9IHRvdWNoLnNjcmVlblg7CiAgICB0aGlzLnNjcmVlblkgPSB0b3VjaC5zY3JlZW5ZOwogICAgdGhpcy5jbGllbnRYID0gdG91Y2guY2xpZW50WDsKICAgIHRoaXMuY2xpZW50WSA9IHRvdWNoLmNsaWVudFk7CgogICAgdGhpcy5kZWx0YV94ID0gdGhpcy5kZWx0YV95ID0gMDsKICB9LAoKICB0b3VjaG1vdmU6IGZ1bmN0aW9uIChlKQogIHsKICAgIC8vIG92ZXJyaWRlIG5hdGl2ZSBnZXN0dXJlcyBmb3Igc2luZ2xlIHRvdWNoCiAgICBpZiAoZS50b3VjaGVzLmxlbmd0aCA+IDEpCiAgICAgIHJldHVybjsKCiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB2YXIgdG91Y2ggPSBlLnRvdWNoZXNbMF07CiAgICB0aGlzLmRlbHRhX3ggPSB0b3VjaC5wYWdlWCAtIHRoaXMucGFnZVg7CiAgICB0aGlzLmRlbHRhX3kgPSB0b3VjaC5wYWdlWSAtIHRoaXMucGFnZVk7CiAgfSwKCiAgdG91Y2hlbmQ6IGZ1bmN0aW9uIChlKQogIHsKICAgIC8vIGRlZmF1bHQgYmVoYXZpb3IgZm9yIG11bHRpLXRvdWNoCiAgICBpZiAoZS50b3VjaGVzLmxlbmd0aCA+IDEpCiAgICAgIHJldHVybjsKCiAgICB2YXIgZGVsYXkgPSAobmV3IERhdGUpLmdldFRpbWUoKSAtIHRoaXMubGFzdF90YXA7CiAgICB2YXIgZHggPSB0aGlzLmRlbHRhX3g7CiAgICB2YXIgZHkgPSB0aGlzLmRlbHRhX3k7CiAgICB2YXIgYWJzX2R4ID0gTWF0aC5hYnMoZHgpOwogICAgdmFyIGFic19keSA9IE1hdGguYWJzKGR5KTsKCiAgICBpZiAoZGVsYXkgPCA1MDAgJiYgKGFic19keCA+IDEwMCB8fCBhYnNfZHkgPiAxMDApKQogICAgewogICAgICBpZiAoYWJzX2R4ID4gMC41ICogYWJzX2R5KQogICAgICB7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKICAgICAgICBpZiAoZHggPCAwKQogICAgICAgICAgdzNjX3NsaWR5Lm5leHRfc2xpZGUodHJ1ZSk7CiAgICAgICAgZWxzZQogICAgICAgICAgdzNjX3NsaWR5LnByZXZpb3VzX3NsaWRlKHRydWUpOwogICAgICB9CiAgICAgIGVsc2UgaWYgKGFic19keSA+IDIgKiBhYnNfZHgpCiAgICAgIHsKICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgdzNjX3NsaWR5LnRvZ2dsZV90YWJsZV9vZl9jb250ZW50cygpOwogICAgICB9CiAgICB9CiAgfSwKCiAgLy8gIyMjIE9CU09MRVRFICMjIwogIGJlZm9yZV9wcmludDogZnVuY3Rpb24gKCkgewogICAgdGhpcy5zaG93X2FsbF9zbGlkZXMoKTsKICAgIHRoaXMuaGlkZV90b29sYmFyKCk7CiAgICBhbGVydCgiYmVmb3JlIHByaW50Iik7CiAgfSwKCiAgLy8gIyMjIE9CU09MRVRFICMjIwogIGFmdGVyX3ByaW50OiBmdW5jdGlvbiAoKSB7CiAgICBpZiAoIXRoaXMudmlld19hbGwpCiAgICB7CiAgICAgIHRoaXMuc2luZ2xlX3NsaWRlX3ZpZXcoKTsKICAgICAgdGhpcy5zaG93X3Rvb2xiYXIoKTsKICAgIH0KICAgIGFsZXJ0KCJhZnRlciBwcmludCIpOwogIH0sCgogIC8vICMjIyBPQlNPTEVURSAjIyMKICBwcmludF9zbGlkZXM6IGZ1bmN0aW9uICgpIHsKICAgIHRoaXMuYmVmb3JlX3ByaW50KCk7CiAgICB3aW5kb3cucHJpbnQoKTsKICAgIHRoaXMuYWZ0ZXJfcHJpbnQoKTsKICB9LAoKICAvLyAjIyMgT0JTT0xFVEUgPz8gIyMjCiAgdG9nZ2xlX3ZpZXc6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLnZpZXdfYWxsKQogICAgewogICAgICB0aGlzLnNpbmdsZV9zbGlkZV92aWV3KCk7CiAgICAgIHRoaXMuc2hvd190b29sYmFyKCk7CiAgICAgIHRoaXMudmlld19hbGwgPSAwOwogICAgfQogICAgZWxzZQogICAgewogICAgICB0aGlzLnNob3dfYWxsX3NsaWRlcygpOwogICAgICB0aGlzLmhpZGVfdG9vbGJhcigpOwogICAgICB0aGlzLnZpZXdfYWxsID0gMTsKICAgIH0KICB9LAoKICAvLyBwcmVwYXJlIGZvciBwcmludGluZyAgIyMjIE9CU09MRVRFICMjIwogIHNob3dfYWxsX3NsaWRlczogZnVuY3Rpb24gKCkgewogICAgdGhpcy5yZW1vdmVfY2xhc3MoZG9jdW1lbnQuYm9keSwgInNpbmdsZV9zbGlkZSIpOwogICAgdGhpcy5zZXRfdmlzaWJpbGl0eV9hbGxfaW5jcmVtZW50YWwoInZpc2libGUiKTsKICB9LAoKICAvLyByZXN0b3JlIGFmdGVyIHByaW50aW5nICAjIyMgT0JTT0xFVEUgIyMjCiAgc2luZ2xlX3NsaWRlX3ZpZXc6IGZ1bmN0aW9uICgpIHsKICAgIHRoaXMuYWRkX2NsYXNzKGRvY3VtZW50LmJvZHksICJzaW5nbGVfc2xpZGUiKTsKICAgIHRoaXMuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJ2aXNpYmxlIik7CiAgICB0aGlzLmxhc3Rfc2hvd24gPSB0aGlzLnByZXZpb3VzX2luY3JlbWVudGFsX2l0ZW0obnVsbCk7CiAgfSwKCiAgLy8gc3VwcHJlc3MgSUUncyBpbWFnZSB0b29sYmFyIHBvcCB1cAogIGhpZGVfaW1hZ2VfdG9vbGJhcjogZnVuY3Rpb24gKCkgewogICAgaWYgKCF0aGlzLm5zX3BvcykKICAgIHsKICAgICAgdmFyIGltYWdlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTUciKTsKCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VzLmxlbmd0aDsgKytpKQogICAgICAgIGltYWdlc1tpXS5zZXRBdHRyaWJ1dGUoImdhbGxlcnlpbWciLCAibm8iKTsKICAgIH0KICB9LAoKICB1bmxvYWRlZDogZnVuY3Rpb24gKGUpIHsKICAgIC8vYWxlcnQoInVubG9hZGVkIik7CiAgfSwKCiAgLy8gU2FmYXJpIGFuZCBLb25xdWVyb3IgZG9uJ3QgeWV0IHN1cHBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSgpCiAgLy8gYW5kIHRoZXkgYWx3YXlzIHJlbG9hZCBwYWdlIHdoZW4gbG9jYXRpb24uaHJlZiBpcyB1cGRhdGVkCiAgaXNfS0hUTUw6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBhZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CiAgICByZXR1cm4gKGFnZW50LmluZGV4T2YoIktIVE1MIikgPj0gMCA/IHRydWUgOiBmYWxzZSk7CiAgfSwKCiAgLy8gZmluZCBzbGlkZSBuYW1lIGZyb20gZmlyc3QgaDEgZWxlbWVudAogIC8vIGRlZmF1bHQgdG8gZG9jdW1lbnQgdGl0bGUgKyBzbGlkZSBudW1iZXIKICBzbGlkZV9uYW1lOiBmdW5jdGlvbiAoaW5kZXgpIHsKICAgIHZhciBuYW1lID0gbnVsbDsKICAgIHZhciBzbGlkZSA9IHRoaXMuc2xpZGVzW2luZGV4XTsKCiAgICB2YXIgaGVhZGluZyA9IHRoaXMuZmluZF9oZWFkaW5nKHNsaWRlKTsKCiAgICBpZiAoaGVhZGluZykKICAgICAgbmFtZSA9IHRoaXMuZXh0cmFjdF90ZXh0KGhlYWRpbmcpOwoKICAgIGlmICghbmFtZSkKICAgICAgbmFtZSA9IHRoaXMudGl0bGUgKyAiKCIgKyAoaW5kZXggKyAxKSArICIpIjsKCiAgICBuYW1lLnJlcGxhY2UoL1wmL2csICImYW1wOyIpOwogICAgbmFtZS5yZXBsYWNlKC9cPC9nLCAiJmx0OyIpOwogICAgbmFtZS5yZXBsYWNlKC9cPi9nLCAiJmd0OyIpOwoKICAgIHJldHVybiBuYW1lOwogIH0sCgogIC8vIGZpbmQgZmlyc3QgaDEgZWxlbWVudCBpbiBET00gdHJlZQogIGZpbmRfaGVhZGluZzogZnVuY3Rpb24gKG5vZGUpIHsKICAgIGlmICghbm9kZSB8fCBub2RlLm5vZGVUeXBlICE9IDEpCiAgICAgIHJldHVybiBudWxsOwoKICAgIGlmIChub2RlLm5vZGVOYW1lID09ICJIMSIgfHwgbm9kZS5ub2RlTmFtZSA9PSAiaDEiKQogICAgICByZXR1cm4gbm9kZTsKCiAgICB2YXIgY2hpbGQgPSBub2RlLmZpcnN0Q2hpbGQ7CgogICAgd2hpbGUgKGNoaWxkKQogICAgewogICAgICBub2RlID0gdGhpcy5maW5kX2hlYWRpbmcoY2hpbGQpOwoKICAgICAgaWYgKG5vZGUpCiAgICAgICAgcmV0dXJuIG5vZGU7CgogICAgICBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nOwogICAgfQoKICAgIHJldHVybiBudWxsOwogIH0sCgogIC8vIHJlY3Vyc2l2ZWx5IGV4dHJhY3QgdGV4dCBmcm9tIERPTSB0cmVlCiAgZXh0cmFjdF90ZXh0OiBmdW5jdGlvbiAobm9kZSkgewogICAgaWYgKCFub2RlKQogICAgICByZXR1cm4gIiI7CgogICAgLy8gdGV4dCBub2RlcwogICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMykKICAgICAgcmV0dXJuIG5vZGUubm9kZVZhbHVlOwoKICAgIC8vIGVsZW1lbnRzCiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAxKQogICAgewogICAgICBub2RlID0gbm9kZS5maXJzdENoaWxkOwogICAgICB2YXIgdGV4dCA9ICIiOwoKICAgICAgd2hpbGUgKG5vZGUpCiAgICAgIHsKICAgICAgICB0ZXh0ID0gdGV4dCArIHRoaXMuZXh0cmFjdF90ZXh0KG5vZGUpOwogICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOwogICAgICB9CgogICAgICByZXR1cm4gdGV4dDsKICAgIH0KCiAgICByZXR1cm4gIiI7CiAgfSwKCiAgLy8gZmluZCBjb3B5cmlnaHQgdGV4dCBmcm9tIG1ldGEgZWxlbWVudAogIGZpbmRfY29weXJpZ2h0OiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgbmFtZSwgY29udGVudDsKICAgIHZhciBtZXRhID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm1ldGEiKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1ldGEubGVuZ3RoOyArK2kpCiAgICB7CiAgICAgIG5hbWUgPSBtZXRhW2ldLmdldEF0dHJpYnV0ZSgibmFtZSIpOwogICAgICBjb250ZW50ID0gbWV0YVtpXS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKTsKCiAgICAgIGlmIChuYW1lID09ICJjb3B5cmlnaHQiKQogICAgICAgIHJldHVybiBjb250ZW50OwogICAgfQoKICAgIHJldHVybiBudWxsOwogIH0sCgogIGZpbmRfc2l6ZV9hZGp1c3Q6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBuYW1lLCBjb250ZW50LCBvZmZzZXQ7CiAgICB2YXIgbWV0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRhIik7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXRhLmxlbmd0aDsgKytpKQogICAgewogICAgICBuYW1lID0gbWV0YVtpXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKTsKICAgICAgY29udGVudCA9IG1ldGFbaV0uZ2V0QXR0cmlidXRlKCJjb250ZW50Iik7CgogICAgICBpZiAobmFtZSA9PSAiZm9udC1zaXplLWFkanVzdG1lbnQiKQogICAgICAgIHJldHVybiAxICogY29udGVudDsKICAgIH0KCiAgICByZXR1cm4gMTsKICB9LAoKICAvLyA8bWV0YSBuYW1lPSJkdXJhdGlvbiIgY29udGVudD0iMjAiIC8+ICBmb3IgMjAgbWludXRlcwogIGZpbmRfZHVyYXRpb246IGZ1bmN0aW9uICgpIHsKICAgIHZhciBuYW1lLCBjb250ZW50LCBvZmZzZXQ7CiAgICB2YXIgbWV0YSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJtZXRhIik7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXRhLmxlbmd0aDsgKytpKQogICAgewogICAgICBuYW1lID0gbWV0YVtpXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKTsKICAgICAgY29udGVudCA9IG1ldGFbaV0uZ2V0QXR0cmlidXRlKCJjb250ZW50Iik7CgogICAgICBpZiAobmFtZSA9PSAiZHVyYXRpb24iKQogICAgICAgIHJldHVybiA2MDAwMCAqIGNvbnRlbnQ7CiAgICB9CgogICAgcmV0dXJuIG51bGw7CiAgfSwKCiAgcmVwbGFjZV9ieV9ub25fYnJlYWtpbmdfc3BhY2U6IGZ1bmN0aW9uIChzdHIpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKQogICAgICBzdHJbaV0gPSAxNjA7CiAgfSwKCiAgLy8gIyMjIENIRUNLIE1FICMjIyBpcyB1c2Ugb2YgImxpIiBva2F5IGZvciB0ZXh0L2h0bWw/CiAgLy8gZm9yIFhIVE1MIGRvIHdlIGFsc28gbmVlZCB0byBzcGVjaWZ5IG5hbWVzcGFjZT8KICBpbml0X291dGxpbmVyOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaXRlbXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGkiKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKQogICAgewogICAgICB2YXIgdGFyZ2V0ID0gaXRlbXNbaV07CgogICAgICBpZiAoIXRoaXMuaGFzX2NsYXNzKHRhcmdldC5wYXJlbnROb2RlLCAib3V0bGluZSIpKQogICAgICAgIGNvbnRpbnVlOwoKICAgICAgdGFyZ2V0Lm9uY2xpY2sgPSB0aGlzLm91dGxpbmVfY2xpY2s7Ci8qICMjIyBtb3JlIHdvcmsgbmVlZGVkIGZvciBJRTYKICAgICAgaWYgKCF0aGlzLm5zX3BvcykKICAgICAgewogICAgICAgIHRhcmdldC5vbm1vdXNlb3ZlciA9IHRoaXMuaG92ZXJfb3V0bGluZTsKICAgICAgICB0YXJnZXQub25tb3VzZW91dCA9IHRoaXMudW5ob3Zlcl9vdXRsaW5lOwogICAgICB9CiovCiAgICAgIGlmICh0aGlzLmZvbGRhYmxlKHRhcmdldCkpCiAgICAgIHsKICAgICAgICB0YXJnZXQuZm9sZGFibGUgPSB0cnVlOwogICAgICAgIHRhcmdldC5vbmZvY3VzID0gZnVuY3Rpb24gKCkge3czY19zbGlkeS5vdXRsaW5lID0gdGhpczt9OwogICAgICAgIHRhcmdldC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7dzNjX3NsaWR5Lm91dGxpbmUgPSBudWxsO307CgogICAgICAgIGlmICghdGFyZ2V0LmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSkKICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwgIjAiKTsKCiAgICAgICAgaWYgKHRoaXMuaGFzX2NsYXNzKHRhcmdldCwgImV4cGFuZCIpKQogICAgICAgICAgdGhpcy51bmZvbGQodGFyZ2V0KTsKICAgICAgICBlbHNlCiAgICAgICAgICB0aGlzLmZvbGQodGFyZ2V0KTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICB0aGlzLmFkZF9jbGFzcyh0YXJnZXQsICJub2ZvbGQiKTsKICAgICAgICB0YXJnZXQudmlzaWJsZSA9IHRydWU7CiAgICAgICAgdGFyZ2V0LmZvbGRhYmxlID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9LAoKICBmb2xkYWJsZTogZnVuY3Rpb24gKGl0ZW0pIHsKICAgIGlmICghaXRlbSB8fCBpdGVtLm5vZGVUeXBlICE9IDEpCiAgICAgIHJldHVybiBmYWxzZTsKCiAgICB2YXIgbm9kZSA9IGl0ZW0uZmlyc3RDaGlsZDsKCiAgICB3aGlsZSAobm9kZSkKICAgIHsKICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSAmJiB0aGlzLmlzX2Jsb2NrKG5vZGUpKQogICAgICAgIHJldHVybiB0cnVlOwoKICAgICAgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7CiAgICB9CgogICAgcmV0dXJuIGZhbHNlOwogIH0sCgogIC8vICMjIyBDSEVDSyBNRSAjIyMgc3dpdGNoIHRvIGFkZC9yZW1vdmUgImhpZGRlbiIgY2xhc3MKICBmb2xkOiBmdW5jdGlvbiAoaXRlbSkgewogICAgaWYgKGl0ZW0pCiAgICB7CiAgICAgIHRoaXMucmVtb3ZlX2NsYXNzKGl0ZW0sICJ1bmZvbGRlZCIpOwogICAgICB0aGlzLmFkZF9jbGFzcyhpdGVtLCAiZm9sZGVkIik7CiAgICB9CgogICAgdmFyIG5vZGUgPSBpdGVtID8gaXRlbS5maXJzdENoaWxkIDogbnVsbDsKCiAgICB3aGlsZSAobm9kZSkKICAgIHsKICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSAmJiB0aGlzLmlzX2Jsb2NrKG5vZGUpKSAvLyBlbGVtZW50CiAgICAgIHsKICAgICAgICAgdzNjX3NsaWR5LmFkZF9jbGFzcyhub2RlLCAiaGlkZGVuIik7CiAgICAgIH0KCiAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nOwogICAgfQoKICAgIGl0ZW0udmlzaWJsZSA9IGZhbHNlOwogIH0sCgogIC8vICMjIyBDSEVDSyBNRSAjIyMgc3dpdGNoIHRvIGFkZC9yZW1vdmUgImhpZGRlbiIgY2xhc3MKICB1bmZvbGQ6IGZ1bmN0aW9uIChpdGVtKSB7CiAgICBpZiAoaXRlbSkKICAgIHsKICAgICAgdGhpcy5hZGRfY2xhc3MoaXRlbSwgInVuZm9sZGVkIik7CiAgICAgIHRoaXMucmVtb3ZlX2NsYXNzKGl0ZW0sICJmb2xkZWQiKTsKICAgIH0KCiAgICB2YXIgbm9kZSA9IGl0ZW0gPyBpdGVtLmZpcnN0Q2hpbGQgOiBudWxsOwoKICAgIHdoaWxlIChub2RlKQogICAgewogICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAxICYmIHRoaXMuaXNfYmxvY2sobm9kZSkpIC8vIGVsZW1lbnQKICAgICAgewogICAgICAgIHczY19zbGlkeS5yZW1vdmVfY2xhc3Mobm9kZSwgImhpZGRlbiIpOwogICAgICB9CgogICAgICBub2RlID0gbm9kZS5uZXh0U2libGluZzsKICAgIH0KCiAgICBpdGVtLnZpc2libGUgPSB0cnVlOwogIH0sCgogIG91dGxpbmVfY2xpY2s6IGZ1bmN0aW9uIChlKSB7CiAgICBpZiAoIWUpCiAgICAgIGUgPSB3aW5kb3cuZXZlbnQ7CgogICAgdmFyIHJpZ2h0Y2xpY2sgPSBmYWxzZTsKICAgIHZhciB0YXJnZXQgPSB3M2Nfc2xpZHkuZ2V0X3RhcmdldChlKTsKCiAgICB3aGlsZSAodGFyZ2V0ICYmIHRhcmdldC52aXNpYmxlID09IHVuZGVmaW5lZCkKICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudE5vZGU7CgogICAgaWYgKCF0YXJnZXQpCiAgICAgIHJldHVybiB0cnVlOwoKICAgIGlmIChlLndoaWNoKQogICAgICByaWdodGNsaWNrID0gKGUud2hpY2ggPT0gMyk7CiAgICBlbHNlIGlmIChlLmJ1dHRvbikKICAgICAgcmlnaHRjbGljayA9IChlLmJ1dHRvbiA9PSAyKTsKCiAgICBpZiAoIXJpZ2h0Y2xpY2sgJiYgdGFyZ2V0LnZpc2libGUgIT0gdW5kZWZpbmVkKQogICAgewogICAgICBpZiAodGFyZ2V0LmZvbGRhYmxlKQogICAgICB7CiAgICAgICAgaWYgKHRhcmdldC52aXNpYmxlKQogICAgICAgICAgdzNjX3NsaWR5LmZvbGQodGFyZ2V0KTsKICAgICAgICBlbHNlCiAgICAgICAgICB3M2Nfc2xpZHkudW5mb2xkKHRhcmdldCk7CiAgICAgIH0KCiAgICAgIHczY19zbGlkeS5zdG9wX3Byb3BhZ2F0aW9uKGUpOwogICAgICBlLmNhbmNlbCA9IHRydWU7CiAgICAgIGUucmV0dXJuVmFsdWUgPSBmYWxzZTsKICAgIH0KCiAgICByZXR1cm4gZmFsc2U7CiAgfSwKCiAgYWRkX2luaXRpYWxfcHJvbXB0OiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgcHJvbXB0ID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiZGl2Iik7CiAgICBwcm9tcHQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJpbml0aWFsX3Byb21wdCIpOwoKICAgIHZhciBwMSA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoInAiKTsKICAgIHByb21wdC5hcHBlbmRDaGlsZChwMSk7CiAgICBwMS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImhlbHAiKTsKCiAgICBpZiAodGhpcy5rZXlib2FyZGxlc3MpCiAgICAgIHAxLmlubmVySFRNTCA9ICJzd2lwZSBsZWZ0IHRvIG1vdmUgdG8gbmV4dCBzbGlkZSI7CiAgICBlbHNlCiAgICAgIHAxLmlubmVySFRNTCA9ICJTcGFjZSwgUmlnaHQgQXJyb3cgb3Igc3dpcGUgbGVmdCB0byBtb3ZlIHRvICIgKwogICAgICAgICAgICAgICAgICAgICAibmV4dCBzbGlkZSwgY2xpY2sgaGVscCBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzIjsKCiAgICB0aGlzLmFkZF9saXN0ZW5lcihwcm9tcHQsICJjbGljayIsIGZ1bmN0aW9uIChlKSB7CiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocHJvbXB0KTsKICAgICAgdzNjX3NsaWR5LnN0b3BfcHJvcGFnYXRpb24oZSk7CiAgICAKICAgICAgaWYgKGUuY2FuY2VsICE9IHVuZGVmaW5lZCkKICAgICAgICBlLmNhbmNlbCA9IHRydWU7CiAgICAgIAogICAgICBpZiAoZS5yZXR1cm5WYWx1ZSAhPSB1bmRlZmluZWQpCiAgICAgICAgZS5yZXR1cm5WYWx1ZSA9IGZhbHNlOwogICAgICAKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSk7CgogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwcm9tcHQpOwogICAgdGhpcy5pbml0aWFsX3Byb21wdCA9IHByb21wdDsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwcm9tcHQpO30sIDUwMDApOwogIH0sCgogIGFkZF90b29sYmFyOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgY291bnRlciwgcGFnZTsKCiAgICAgdGhpcy50b29sYmFyID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy50b29sYmFyLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAidG9vbGJhciIpOwoKICAgICAvLyBhIHJlYXNvbmFibHkgYmVoYXZlZCBicm93c2VyCiAgICAgaWYgKHRoaXMubnNfcG9zIHx8ICF0aGlzLmllNikKICAgICB7CiAgICAgICB2YXIgcmlnaHQgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJkaXYiKTsKICAgICAgIHJpZ2h0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodCIpOwoKICAgICAgIGNvdW50ZXIgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJzcGFuIikKICAgICAgIGNvdW50ZXIuaW5uZXJIVE1MID0gdGhpcy5sb2NhbGl6ZSgic2xpZGUiKSArICIgbi9tIjsKICAgICAgIHJpZ2h0LmFwcGVuZENoaWxkKGNvdW50ZXIpOwogICAgICAgdGhpcy50b29sYmFyLmFwcGVuZENoaWxkKHJpZ2h0KTsKCiAgICAgICB2YXIgbGVmdCA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoImRpdiIpOwogICAgICAgbGVmdC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgInRleHQtYWxpZ246IGxlZnQiKTsKCiAgICAgICAvLyBnbG9iYWwgZW5kIG9mIHNsaWRlIGluZGljYXRvcgogICAgICAgdGhpcy5lb3MgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJzcGFuIik7CiAgICAgICB0aGlzLmVvcy5pbm5lckhUTUwgPSAiKiAiOwogICAgICAgbGVmdC5hcHBlbmRDaGlsZCh0aGlzLmVvcyk7CgogICAgICAgdmFyIGhlbHAgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJhIik7CiAgICAgICBoZWxwLnNldEF0dHJpYnV0ZSgiaHJlZiIsIHRoaXMuaGVscF9wYWdlKTsKICAgICAgIGhlbHAuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIHRoaXMubG9jYWxpemUodGhpcy5oZWxwX3RleHQpKTsKICAgICAgIGhlbHAuaW5uZXJIVE1MID0gdGhpcy5sb2NhbGl6ZSgiaGVscD8iKTsKICAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoaGVscCk7CiAgICAgICBoZWxwLnN0eWxlLmRpc3BsYXk9Im5vbmUiOyAKICAgICAgIHRoaXMuaGVscF9hbmNob3IgPSBoZWxwOyAgLy8gc2F2ZSBmb3IgZm9jdXMgaGFjawoKICAgICAgIHZhciBnYXAxID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKTsKICAgICAgIGxlZnQuYXBwZW5kQ2hpbGQoZ2FwMSk7CgogICAgICAgdmFyIGNvbnRlbnRzID0gdGhpcy5jcmVhdGVfZWxlbWVudCgiYSIpOwogICAgICAgY29udGVudHMuc2V0QXR0cmlidXRlKCJocmVmIiwgImphdmFzY3JpcHQ6dzNjX3NsaWR5LnRvZ2dsZV90YWJsZV9vZl9jb250ZW50cygpIik7CiAgICAgICBjb250ZW50cy5zZXRBdHRyaWJ1dGUoInRpdGxlIiwgdGhpcy5sb2NhbGl6ZSgidGFibGUgb2YgY29udGVudHMiKSk7CiAgICAgICBjb250ZW50cy5pbm5lckhUTUwgPSB0aGlzLmxvY2FsaXplKCJDb250ZW50cyIpOwogICAgICAgbGVmdC5hcHBlbmRDaGlsZChjb250ZW50cyk7CgogICAgICAgdmFyIGdhcDIgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIpOwogICAgICAgbGVmdC5hcHBlbmRDaGlsZChnYXAyKTsKCiAgICAgICB2YXIgY29weXJpZ2h0ID0gdGhpcy5maW5kX2NvcHlyaWdodCgpOwoKICAgICAgIGlmIChjb3B5cmlnaHQpCiAgICAgICB7CiAgICAgICAgIHZhciBzcGFuID0gdGhpcy5jcmVhdGVfZWxlbWVudCgic3BhbiIpOwogICAgICAgICBzcGFuLmNsYXNzTmFtZSA9ICJjb3B5cmlnaHQiOwogICAgICAgICBzcGFuLmlubmVySFRNTCA9IGNvcHlyaWdodDsKICAgICAgICAgbGVmdC5hcHBlbmRDaGlsZChzcGFuKTsKICAgICAgIH0KCiAgICAgICB0aGlzLnRvb2xiYXIuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsICIwIik7CiAgICAgICB0aGlzLnRvb2xiYXIuYXBwZW5kQ2hpbGQobGVmdCk7CiAgICAgfQogICAgIGVsc2UgLy8gSUU2IHNvIG5lZWQgdG8gd29yayBhcm91bmQgaXRzIHBvb3IgQ1NTIHN1cHBvcnQKICAgICB7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUucG9zaXRpb24gPSAodGhpcy5pZTcgPyAiZml4ZWQiIDogImFic29sdXRlIik7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUuekluZGV4ID0gIjIwMCI7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUud2lkdGggPSAiOTkuOSUiOwogICAgICAgdGhpcy50b29sYmFyLnN0eWxlLmhlaWdodCA9ICIxLjJlbSI7CiAgICAgICB0aGlzLnRvb2xiYXIuc3R5bGUudG9wID0gImF1dG8iOwogICAgICAgdGhpcy50b29sYmFyLnN0eWxlLmJvdHRvbSA9ICIwIjsKICAgICAgIHRoaXMudG9vbGJhci5zdHlsZS5sZWZ0ID0gIjAiOwogICAgICAgdGhpcy50b29sYmFyLnN0eWxlLnJpZ2h0ID0gIjAiOwogICAgICAgdGhpcy50b29sYmFyLnN0eWxlLnRleHRBbGlnbiA9ICJsZWZ0IjsKICAgICAgIHRoaXMudG9vbGJhci5zdHlsZS5mb250U2l6ZSA9ICI2MCUiOwogICAgICAgdGhpcy50b29sYmFyLnN0eWxlLmNvbG9yID0gInJlZCI7CiAgICAgICB0aGlzLnRvb2xiYXIuYm9yZGVyV2lkdGggPSAwOwogICAgICAgdGhpcy50b29sYmFyLmNsYXNzTmFtZSA9ICJ0b29sYmFyIjsKICAgICAgIHRoaXMudG9vbGJhci5zdHlsZS5iYWNrZ3JvdW5kID0gInJnYigyNDAsMjQwLDI0MCkiOwoKICAgICAgIC8vIHdvdWxkIGxpa2UgdG8gaGF2ZSBoZWxwIHRleHQgbGVmdCBhbGlnbmVkCiAgICAgICAvLyBhbmQgcGFnZSBjb3VudGVyIHJpZ2h0IGFsaWduZWQsIGZsb2F0aW5nCiAgICAgICAvLyBkaXYncyBkb24ndCB3b3JrLCBzbyBpbnN0ZWFkIHVzZSBuZXN0ZWQKICAgICAgIC8vIGFic29sdXRlbHkgcG9zaXRpb25lZCBkaXYncy4KCiAgICAgICB2YXIgc3AgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJzcGFuIik7CiAgICAgICBzcC5pbm5lckhUTUwgPSAiJm5ic3A7Jm5ic3A7KiZuYnNwOyI7CiAgICAgICB0aGlzLnRvb2xiYXIuYXBwZW5kQ2hpbGQoc3ApOwogICAgICAgdGhpcy5lb3MgPSBzcDsgIC8vIGVuZCBvZiBzbGlkZSBpbmRpY2F0b3IKCiAgICAgICB2YXIgaGVscCA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoImEiKTsKICAgICAgIGhlbHAuc2V0QXR0cmlidXRlKCJocmVmIiwgdGhpcy5oZWxwX3BhZ2UpOwogICAgICAgaGVscC5zZXRBdHRyaWJ1dGUoInRpdGxlIiwgdGhpcy5sb2NhbGl6ZSh0aGlzLmhlbHBfdGV4dCkpOwogICAgICAgaGVscC5pbm5lckhUTUwgPSB0aGlzLmxvY2FsaXplKCJoZWxwPyIpOwogICAgICAgdGhpcy50b29sYmFyLmFwcGVuZENoaWxkKGhlbHApOwogICAgICAgdGhpcy5oZWxwX2FuY2hvciA9IGhlbHA7ICAvLyBzYXZlIGZvciBmb2N1cyBoYWNrCgogICAgICAgdmFyIGdhcDEgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIpOwogICAgICAgdGhpcy50b29sYmFyLmFwcGVuZENoaWxkKGdhcDEpOwoKICAgICAgIHZhciBjb250ZW50cyA9IHRoaXMuY3JlYXRlX2VsZW1lbnQoImEiKTsKICAgICAgIGNvbnRlbnRzLnNldEF0dHJpYnV0ZSgiaHJlZiIsICJqYXZhc2NyaXB0OnRvZ2dsZVRhYmxlT2ZDb250ZW50cygpIik7CiAgICAgICBjb250ZW50cy5zZXRBdHRyaWJ1dGUoInRpdGxlIiwgdGhpcy5sb2NhbGl6ZSgidGFibGUgb2YgY29udGVudHMiLmxvY2FsaXplKSk7CiAgICAgICBjb250ZW50cy5pbm5lckhUTUwgPSB0aGlzLmxvY2FsaXplKCJjb250ZW50cz8iKTsKICAgICAgIHRoaXMudG9vbGJhci5hcHBlbmRDaGlsZChjb250ZW50cyk7CgogICAgICAgdmFyIGdhcDIgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIpOwogICAgICAgdGhpcy50b29sYmFyLmFwcGVuZENoaWxkKGdhcDIpOwoKICAgICAgIHZhciBjb3B5cmlnaHQgPSB0aGlzLmZpbmRfY29weXJpZ2h0KCk7CgogICAgICAgaWYgKGNvcHlyaWdodCkKICAgICAgIHsKICAgICAgICAgdmFyIHNwYW4gPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJzcGFuIik7CiAgICAgICAgIHNwYW4uaW5uZXJIVE1MID0gY29weXJpZ2h0OwogICAgICAgICBzcGFuLnN0eWxlLmNvbG9yID0gImJsYWNrIjsKICAgICAgICAgc3Bhbi5zdHlsZS5tYXJnaW5MZWZ0ID0gIjAuNWVtIjsKICAgICAgICAgdGhpcy50b29sYmFyLmFwcGVuZENoaWxkKHNwYW4pOwogICAgICAgfQoKICAgICAgIGNvdW50ZXIgPSB0aGlzLmNyZWF0ZV9lbGVtZW50KCJkaXYiKQogICAgICAgY291bnRlci5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CiAgICAgICBjb3VudGVyLnN0eWxlLndpZHRoID0gImF1dG8iOyAvLyIyMCUiOwogICAgICAgY291bnRlci5zdHlsZS5oZWlnaHQgPSAiMS4yZW0iOwogICAgICAgY291bnRlci5zdHlsZS50b3AgPSAiYXV0byI7CiAgICAgICBjb3VudGVyLnN0eWxlLmJvdHRvbSA9IDA7CiAgICAgICBjb3VudGVyLnN0eWxlLnJpZ2h0ID0gIjAiOwogICAgICAgY291bnRlci5zdHlsZS50ZXh0QWxpZ24gPSAicmlnaHQiOwogICAgICAgY291bnRlci5zdHlsZS5jb2xvciA9ICJyZWQiOwogICAgICAgY291bnRlci5zdHlsZS5iYWNrZ3JvdW5kID0gInJnYigyNDAsMjQwLDI0MCkiOwoKICAgICAgIGNvdW50ZXIuaW5uZXJIVE1MID0gdGhpcy5sb2NhbGl6ZSgic2xpZGUiKSArICIgbi9tIjsKICAgICAgIHRoaXMudG9vbGJhci5hcHBlbmRDaGlsZChjb3VudGVyKTsKICAgICB9CgogICAgIC8vIGVuc3VyZSB0aGF0IGNsaWNrIGlzbid0IHBhc3NlZCB0aHJvdWdoIHRvIHRoZSBwYWdlCiAgICAgdGhpcy50b29sYmFyLm9uY2xpY2sgPQogICAgICAgICBmdW5jdGlvbiAoZSkgewogICAgICAgICAgIGlmICghZSkKICAgICAgICAgICAgIGUgPSB3aW5kb3cuZXZlbnQ7CgogICAgICAgICAgIHZhciB0YXJnZXQgPSBlLnRhcmdldDsKCiAgICAgICAgICAgaWYgKCF0YXJnZXQgJiYgZS5zcmNFbGVtZW50KQogICAgICAgICAgICAgdGFyZ2V0ID0gZS5zcmNFbGVtZW50OwoKICAgICAgICAgICAvLyB3b3JrIGFyb3VuZCBTYWZhcmkgYnVnCiAgICAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQubm9kZVR5cGUgPT0gMykKICAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldC5wYXJlbnROb2RlOwoKICAgICAgICAgICB3M2Nfc2xpZHkuc3RvcF9wcm9wYWdhdGlvbihlKTsKCiAgICAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPSAiYSIpCiAgICAgICAgICAgICB3M2Nfc2xpZHkubW91c2VfYnV0dG9uX2NsaWNrKGUpOwogICAgICAgICB9OwoKICAgICB0aGlzLnNsaWRlX251bWJlcl9lbGVtZW50ID0gY291bnRlcjsKICAgICB0aGlzLnNldF9lb3Nfc3RhdHVzKGZhbHNlKTsKICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudG9vbGJhcik7CiAgfSwKCiAgLy8gd3lzaXd5ZyBlZGl0b3JzIG1ha2UgaXQgaGFyZCB0byB1c2UgZGl2IGVsZW1lbnRzCiAgLy8gZS5nLiBhbWF5YSBsb3NlcyB0aGUgZGl2IHdoZW4geW91IGNvcHkgYW5kIHBhc3RlCiAgLy8gdGhpcyBmdW5jdGlvbiB3cmFwcyBkaXYgZWxlbWVudHMgYXJvdW5kIGltcGxpY2l0CiAgLy8gc2xpZGVzIHdoaWNoIHN0YXJ0IHdpdGggYW4gaDEgZWxlbWVudCBhbmQgY29udGludWUKICAvLyB1cCB0byB0aGUgbmV4dCBoZWFkaW5nIG9yIGRpdiBlbGVtZW50CiAgd3JhcF9pbXBsaWNpdF9zbGlkZXM6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBpLCBoZWFkaW5nLCBub2RlLCBuZXh0LCBkaXY7CiAgICB2YXIgaGVhZGluZ3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaDEiKTsKCiAgICBpZiAoIWhlYWRpbmdzKQogICAgICByZXR1cm47CgogICAgZm9yIChpID0gMDsgaSA8IGhlYWRpbmdzLmxlbmd0aDsgKytpKQogICAgewogICAgICBoZWFkaW5nID0gaGVhZGluZ3NbaV07CgogICAgICBpZiAoaGVhZGluZy5wYXJlbnROb2RlICE9IGRvY3VtZW50LmJvZHkpCiAgICAgICAgY29udGludWU7CgogICAgICBub2RlID0gaGVhZGluZy5uZXh0U2libGluZzsKCiAgICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICB0aGlzLmFkZF9jbGFzcyhkaXYsICJzbGlkZSIpOwogICAgICBkb2N1bWVudC5ib2R5LnJlcGxhY2VDaGlsZChkaXYsIGhlYWRpbmcpOwogICAgICBkaXYuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CgogICAgICB3aGlsZSAobm9kZSkKICAgICAgewogICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDEpIC8vIGFuIGVsZW1lbnQKICAgICAgICB7CiAgICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIkgxIiB8fCBub2RlLm5vZGVOYW1lID09ICJoMSIpCiAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gIkRJViIgfHwgbm9kZS5ub2RlTmFtZSA9PSAiZGl2IikKICAgICAgICAgICB7CiAgICAgICAgICAgICBpZiAodGhpcy5oYXNfY2xhc3Mobm9kZSwgInNsaWRlIikpCiAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgIGlmICh0aGlzLmhhc19jbGFzcyhub2RlLCAiaGFuZG91dCIpKQogICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBuZXh0ID0gbm9kZS5uZXh0U2libGluZzsKICAgICAgICBub2RlID0gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChub2RlKTsKICAgICAgICBkaXYuYXBwZW5kQ2hpbGQobm9kZSk7CiAgICAgICAgbm9kZSA9IG5leHQ7CiAgICAgIH0gCiAgICB9CiAgfSwKCiAgYXR0YWNoX3RvdWNoX2hhbmRlcnM6IGZ1bmN0aW9uKHNsaWRlcykKICB7CiAgICB2YXIgaSwgc2xpZGU7CgogICAgZm9yIChpID0gMDsgaSA8IHNsaWRlcy5sZW5ndGg7ICsraSkKICAgIHsKICAgICAgc2xpZGUgPSBzbGlkZXNbaV07CiAgICAgIHRoaXMuYWRkX2xpc3RlbmVyKHNsaWRlLCAidG91Y2hzdGFydCIsIHRoaXMudG91Y2hzdGFydCk7CiAgICAgIHRoaXMuYWRkX2xpc3RlbmVyKHNsaWRlLCAidG91Y2htb3ZlIiwgdGhpcy50b3VjaG1vdmUpOwogICAgICB0aGlzLmFkZF9saXN0ZW5lcihzbGlkZSwgInRvdWNoZW5kIiwgdGhpcy50b3VjaGVuZCk7CiAgICB9CiAgfSwKCi8vIHJldHVybiBuZXcgYXJyYXkgb2YgYWxsIHNsaWRlcwogIGNvbGxlY3Rfc2xpZGVzOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgc2xpZGVzID0gbmV3IEFycmF5KCk7CiAgICB2YXIgZGl2cyA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7ICsraSkKICAgIHsKICAgICAgZGl2ID0gZGl2cy5pdGVtKGkpOwoKICAgICAgaWYgKHRoaXMuaGFzX2NsYXNzKGRpdiwgInNsaWRlIikpCiAgICAgIHsKICAgICAgICAvLyBhZGQgc2xpZGUgdG8gY29sbGVjdGlvbgogICAgICAgIHNsaWRlc1tzbGlkZXMubGVuZ3RoXSA9IGRpdjsKCiAgICAgICAgLy8gaGlkZSBlYWNoIHNsaWRlIGFzIGl0IGlzIGZvdW5kCiAgICAgICAgdGhpcy5hZGRfY2xhc3MoZGl2LCAiaGlkZGVuIik7CgogICAgICAgIC8vIGFkZCBkdW1teSA8YnIvPiBhdCBlbmQgZm9yIHNjcm9sbGluZyBoYWNrCiAgICAgICAgdmFyIG5vZGUxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKTsKICAgICAgICBkaXYuYXBwZW5kQ2hpbGQobm9kZTEpOwogICAgICAgIHZhciBub2RlMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIik7CiAgICAgICAgZGl2LmFwcGVuZENoaWxkKG5vZGUyKTsKICAgICAgfQogICAgICBlbHNlIGlmICh0aGlzLmhhc19jbGFzcyhkaXYsICJiYWNrZ3JvdW5kIikpCiAgICAgIHsgIC8vIHdvcmsgYXJvdW5kIGZvciBGaXJlZm94IFNWRyByZWxvYWQgYnVnCiAgICAgICAgLy8gd2hpY2ggb3RoZXJ3aXNlIHJlcGxhY2VzIDFzdCBTVkcgZ3JhcGhpYyB3aXRoIDJuZAogICAgICAgIGRpdi5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgfQogICAgfQoKICAgIHRoaXMuc2xpZGVzID0gc2xpZGVzOwogIH0sCgogIC8vIHJldHVybiBuZXcgYXJyYXkgb2YgYWxsIDxkaXYgY2xhc3M9ImhhbmRvdXQiPgogIGNvbGxlY3Rfbm90ZXM6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBub3RlcyA9IG5ldyBBcnJheSgpOwogICAgdmFyIGRpdnMgPSBkb2N1bWVudC5ib2R5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyArK2kpCiAgICB7CiAgICAgIGRpdiA9IGRpdnMuaXRlbShpKTsKCiAgICAgIGlmICh0aGlzLmhhc19jbGFzcyhkaXYsICJoYW5kb3V0IikpCiAgICAgIHsKICAgICAgICAvLyBhZGQgbm90ZSB0byBjb2xsZWN0aW9uCiAgICAgICAgbm90ZXNbbm90ZXMubGVuZ3RoXSA9IGRpdjsKCiAgICAgICAgLy8gYW5kIGhpZGUgaXQKICAgICAgICB0aGlzLmFkZF9jbGFzcyhkaXYsICJoaWRkZW4iKTsKICAgICAgfQogICAgfQoKICAgIHRoaXMubm90ZXMgPSBub3RlczsKICB9LAoKICAvLyByZXR1cm4gbmV3IGFycmF5IG9mIGFsbCA8ZGl2IGNsYXNzPSJiYWNrZ3JvdW5kIj4KICAvLyBpbmNsdWRpbmcgbmFtZWQgYmFja2dyb3VuZHMgZS5nLiBjbGFzcz0iYmFja2dyb3VuZCB0aXRsZXBhZ2UiCiAgY29sbGVjdF9iYWNrZ3JvdW5kczogZnVuY3Rpb24gKCkgewogICAgdmFyIGJhY2tncm91bmRzID0gbmV3IEFycmF5KCk7CiAgICB2YXIgZGl2cyA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7ICsraSkKICAgIHsKICAgICAgZGl2ID0gZGl2cy5pdGVtKGkpOwoKICAgICAgaWYgKHRoaXMuaGFzX2NsYXNzKGRpdiwgImJhY2tncm91bmQiKSkKICAgICAgewogICAgICAgIC8vIGFkZCBiYWNrZ3JvdW5kIHRvIGNvbGxlY3Rpb24KICAgICAgICBiYWNrZ3JvdW5kc1tiYWNrZ3JvdW5kcy5sZW5ndGhdID0gZGl2OwoKICAgICAgICAvLyBhbmQgaGlkZSBpdAogICAgICAgIHRoaXMuYWRkX2NsYXNzKGRpdiwgImhpZGRlbiIpOwogICAgICB9CiAgICB9CgogICAgdGhpcy5iYWNrZ3JvdW5kcyA9IGJhY2tncm91bmRzOwogIH0sCgogIC8vIHNldCBjbGljayBoYW5kbGVycyBvbiBhbGwgYW5jaG9ycwogIHBhdGNoX2FuY2hvcnM6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBzZWxmID0gdzNjX3NsaWR5OwogICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgLy8gY29tcGFyZSB0aGlzLmhyZWYgd2l0aCBsb2NhdGlvbi5ocmVmCiAgICAgIC8vIGZvciBsaW5rIHRvIGFub3RoZXIgc2xpZGUgaW4gdGhpcyBkb2MKCiAgICAgIGlmIChzZWxmLnBhZ2VfYWRkcmVzcyh0aGlzLmhyZWYpID09IHNlbGYucGFnZV9hZGRyZXNzKGxvY2F0aW9uLmhyZWYpKQogICAgICB7CiAgICAgICAgLy8geWVzLCBzbyBmaW5kIG5ldyBzbGlkZSBudW1iZXIKICAgICAgICB2YXIgbmV3c2xpZGVudW0gPSBzZWxmLmZpbmRfc2xpZGVfbnVtYmVyKHRoaXMuaHJlZik7CgogICAgICAgIGlmIChuZXdzbGlkZW51bSAhPSBzZWxmLnNsaWRlX251bWJlcikKICAgICAgICB7CiAgICAgICAgICB2YXIgc2xpZGUgPSBzZWxmLnNsaWRlc1tzZWxmLnNsaWRlX251bWJlcl07CiAgICAgICAgICBzZWxmLmhpZGVfc2xpZGUoc2xpZGUpOwogICAgICAgICAgc2VsZi5zbGlkZV9udW1iZXIgPSBuZXdzbGlkZW51bTsKICAgICAgICAgIHNsaWRlID0gc2VsZi5zbGlkZXNbc2VsZi5zbGlkZV9udW1iZXJdOwogICAgICAgICAgc2VsZi5zaG93X3NsaWRlKHNsaWRlKTsKICAgICAgICAgIHNlbGYuc2V0X2xvY2F0aW9uKCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVsc2UKICAgICAgICB3M2Nfc2xpZHkuc3RvcF9wcm9wYWdhdGlvbihldmVudCk7CgovLyAgICAgIGVsc2UgaWYgKHRoaXMudGFyZ2V0ID09IG51bGwpCi8vICAgICAgICBsb2NhdGlvbi5ocmVmID0gdGhpcy5ocmVmOwoKICAgICAgdGhpcy5ibHVyKCk7CiAgICAgIHNlbGYuZGlzYWJsZV9zbGlkZV9jbGljayA9IHRydWU7CiAgICB9OwoKICAgIHZhciBhbmNob3JzID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYW5jaG9ycy5sZW5ndGg7ICsraSkKICAgIHsKICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKQogICAgICAgIGFuY2hvcnNbaV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBoYW5kbGVyLCBmYWxzZSk7CiAgICAgIGVsc2UKICAgICAgICBhbmNob3JzW2ldLmF0dGFjaEV2ZW50KCJvbmNsaWNrIiwgaGFuZGxlcik7CiAgICB9CiAgfSwKCiAgLy8gIyMjIENIRUNLIE1FICMjIyBzZWUgd2hpY2ggZnVuY3Rpb25zIGFyZSBpbnZva2VkIHZpYSBzZXRUaW1lb3V0CiAgLy8gZWl0aGVyIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgZm9yIHVzZSBvZiB3M2Nfc2xpZHkgdnMgdGhpcwogIHNob3dfc2xpZGVfbnVtYmVyOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgdGltZXIgPSB3M2Nfc2xpZHkuZ2V0X3RpbWVyKCk7CiAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyX2VsZW1lbnQuaW5uZXJIVE1MID0gdGltZXIgKyB3M2Nfc2xpZHkubG9jYWxpemUoInNsaWRlIikgKyAiICIgKwogICAgICAgICAgICh3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyICsgMSkgKyAiLyIgKyB3M2Nfc2xpZHkuc2xpZGVzLmxlbmd0aDsKICB9LAoKICAvLyBldmVyeSAyMDBtUyBjaGVjayBpZiB0aGUgbG9jYXRpb24gaGFzIGJlZW4gY2hhbmdlZCBhcyBhCiAgLy8gcmVzdWx0IG9mIHRoZSB1c2VyIGFjdGl2YXRpbmcgdGhlIEJhY2sgYnV0dG9uL21lbnUgaXRlbQogIC8vIGRvZXNuJ3Qgd29yayBmb3IgT3BlcmEgPCA5LjUKICBjaGVja19sb2NhdGlvbjogZnVuY3Rpb24gKCkgewogICAgdmFyIGhhc2ggPSBsb2NhdGlvbi5oYXNoOwoKICAgIGlmICh3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID4gMCAmJiAoaGFzaCA9PSAiIiB8fCBoYXNoID09ICIjIikpCiAgICAgIHczY19zbGlkeS5nb3RvX3NsaWRlKDApOwogICAgZWxzZSBpZiAoaGFzaC5sZW5ndGggPiAyICYmIGhhc2ggIT0gIiMoIisodzNjX3NsaWR5LnNsaWRlX251bWJlcisxKSsiKSIpCiAgICB7CiAgICAgIHZhciBudW0gPSBwYXJzZUludChsb2NhdGlvbi5oYXNoLnN1YnN0cigyKSk7CgogICAgICBpZiAoIWlzTmFOKG51bSkpCiAgICAgICAgdzNjX3NsaWR5LmdvdG9fc2xpZGUobnVtLTEpOwogICAgfQoKICAgIGlmICh3M2Nfc2xpZHkudGltZV9sZWZ0ICYmIHczY19zbGlkeS5zbGlkZV9udW1iZXIgPiAwKQogICAgewogICAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZV9udW1iZXIoKTsKCiAgICAgIGlmICh3M2Nfc2xpZHkudGltZV9sZWZ0ID4gMCkKICAgICAgICB3M2Nfc2xpZHkudGltZV9sZWZ0IC09IDIwMDsKICAgIH0gCiAgfSwKCiAgZ2V0X3RpbWVyOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgdGltZXIgPSAiIjsKICAgIGlmICh3M2Nfc2xpZHkudGltZV9sZWZ0KQogICAgewogICAgICB2YXIgbWlucywgc2VjczsKICAgICAgc2VjcyA9IE1hdGguZmxvb3IodzNjX3NsaWR5LnRpbWVfbGVmdC8xMDAwKTsKICAgICAgbWlucyA9IE1hdGguZmxvb3Ioc2VjcyAvIDYwKTsKICAgICAgc2VjcyA9IHNlY3MgJSA2MDsKICAgICAgdGltZXIgPSAobWlucyA/IG1pbnMrIm0iIDogIiIpICsgc2VjcyArICJzICI7CiAgICB9CgogICAgcmV0dXJuIHRpbWVyOwogIH0sCgogIC8vIHRoaXMgZG9lc24ndCBwdXNoIGxvY2F0aW9uIG9udG8gaGlzdG9yeSBzdGFjayBmb3IgSUUKICAvLyBmb3Igd2hpY2ggYSBoaWRkZW4gaWZyYW1lIGhhY2sgaXMgbmVlZGVkOiBsb2FkIHBhZ2UgaW50bwogIC8vIHRoZSBpZnJhbWUgd2l0aCBzY3JpcHQgdGhhdCBzZXQncyBwYXJlbnQncyBsb2NhdGlvbi5oYXNoCiAgLy8gYnV0IHRoYXQgd29uJ3Qgd29yayBmb3Igc3RhbmRhbG9uZSB1c2UgdW5sZXNzIHdlIGNhbgogIC8vIGNyZWF0ZSB0aGUgcGFnZSBkeW5hbWljYWxseSB2aWEgYSBqYXZhc2NyaXB0OiBVUkwKICAvLyAjIyMgdXNlIGhpc3RvcnkucHVzaFN0YXRlIGlmIGF2YWlsYWJsZQogIHNldF9sb2NhdGlvbjogZnVuY3Rpb24gKCkgewogICAgIHZhciB1cmkgPSB3M2Nfc2xpZHkucGFnZV9hZGRyZXNzKGxvY2F0aW9uLmhyZWYpOwogICAgIHZhciBoYXNoID0gIiMoIiArICh3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyKzEpICsgIikiOwoKICAgICBpZiAodzNjX3NsaWR5LnNsaWRlX251bWJlciA+PSAwKQogICAgICAgdXJpID0gdXJpICsgaGFzaDsKCiAgICAgaWYgKHR5cGVvZihoaXN0b3J5LnB1c2hTdGF0ZSkgIT0gInVuZGVmaW5lZCIgJiYgbG9jYXRpb24ucHJvdG9jb2wgIT09ICJmaWxlOiIpCiAgICAgewogICAgICAgZG9jdW1lbnQudGl0bGUgPSB3M2Nfc2xpZHkudGl0bGUgKyAiICgiICsgKHczY19zbGlkeS5zbGlkZV9udW1iZXIrMSkgKyAiKSI7CiAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZSgwLCBkb2N1bWVudC50aXRsZSwgaGFzaCk7CiAgICAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZV9udW1iZXIoKTsKICAgICAgIHczY19zbGlkeS5ub3RpZnlfb2JzZXJ2ZXJzKCk7CiAgICAgICByZXR1cm47CiAgICAgfQoKICAgICBpZiAodzNjX3NsaWR5LmllICYmICh3M2Nfc2xpZHkuaWU2IHx8IHczY19zbGlkeS5pZTcpKQogICAgICAgdzNjX3NsaWR5LnB1c2hfaGFzaChoYXNoKTsKCiAgICAgaWYgKHVyaSAhPSBsb2NhdGlvbi5ocmVmKSAvLyAmJiAha2h0bWwKICAgICAgICBsb2NhdGlvbi5ocmVmID0gdXJpOwoKICAgICBpZiAodGhpcy5raHRtbCkKICAgICAgICBoYXNoID0gIigiICsgKHczY19zbGlkeS5zbGlkZV9udW1iZXIrMSkgKyAiKSI7CgogICAgIGlmICghdGhpcy5pZSAmJiBsb2NhdGlvbi5oYXNoICE9IGhhc2ggJiYgbG9jYXRpb24uaGFzaCAhPSAiIikKICAgICAgIGxvY2F0aW9uLmhhc2ggPSBoYXNoOwoKICAgICBkb2N1bWVudC50aXRsZSA9IHczY19zbGlkeS50aXRsZSArICIgKCIgKyAodzNjX3NsaWR5LnNsaWRlX251bWJlcisxKSArICIpIjsKICAgICB3M2Nfc2xpZHkuc2hvd19zbGlkZV9udW1iZXIoKTsKICAgICB3M2Nfc2xpZHkubm90aWZ5X29ic2VydmVycygpOwogIH0sCgogIG5vdGlmeV9vYnNlcnZlcnM6IGZ1bmN0aW9uICgpCiAgewogICAgdmFyIHNsaWRlID0gdGhpcy5zbGlkZXNbdGhpcy5zbGlkZV9udW1iZXJdOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vYnNlcnZlcnMubGVuZ3RoOyArK2kpCiAgICAgIHRoaXMub2JzZXJ2ZXJzW2ldKHRoaXMuc2xpZGVfbnVtYmVyKzEsIHRoaXMuZmluZF9oZWFkaW5nKHNsaWRlKS5pbm5lclRleHQsIGxvY2F0aW9uLmhyZWYpOwogIH0sCgogIGFkZF9vYnNlcnZlcjogZnVuY3Rpb24gKG9ic2VydmVyKQogIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vYnNlcnZlcnMubGVuZ3RoOyArK2kpCiAgICB7CiAgICAgIGlmIChvYnNlcnZlciA9PSB0aGlzLm9ic2VydmVyc1tpXSkKICAgICAgICByZXR1cm47CiAgICB9CgogICAgdGhpcy5vYnNlcnZlcnMucHVzaChvYnNlcnZlcik7CiAgfSwKCiAgcmVtb3ZlX29ic2VydmVyOiBmdW5jdGlvbiAobykKICB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub2JzZXJ2ZXJzLmxlbmd0aDsgKytpKQogICAgewogICAgICBpZiAob2JzZXJ2ZXIgPT0gdGhpcy5vYnNlcnZlcnNbaV0pCiAgICAgIHsKICAgICAgICB0aGlzLm9ic2VydmVycy5zcGxpY2UoaSwxKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQogIH0sCgogIHBhZ2VfYWRkcmVzczogZnVuY3Rpb24gKHVyaSkgewogICAgdmFyIGkgPSB1cmkuaW5kZXhPZigiIyIpOwoKICAgIGlmIChpIDwgMCkKICAgICAgaSA9IHVyaS5pbmRleE9mKCIlMjMiKTsKCiAgICAvLyBjaGVjayBpZiBhbmNob3IgaXMgZW50aXJlIHBhZ2UKCiAgICBpZiAoaSA8IDApCiAgICAgIHJldHVybiB1cmk7ICAvLyB5ZXMKCiAgICByZXR1cm4gdXJpLnN1YnN0cigwLCBpKTsKICB9LAoKICAvLyBvbmx5IHVzZWQgZm9yIElFNiBhbmQgSUU3CiAgb25fZnJhbWVfbG9hZGVkOiBmdW5jdGlvbiAoaGFzaCkgewogICAgbG9jYXRpb24uaGFzaCA9IGhhc2g7CiAgICB2YXIgdXJpID0gdzNjX3NsaWR5LnBhZ2VfYWRkcmVzcyhsb2NhdGlvbi5ocmVmKTsKICAgIGxvY2F0aW9uLmhyZWYgPSB1cmkgKyBoYXNoOwogIH0sCgogIC8vIGhpc3RvcnkgaGFjayB3aXRoIHRoYW5rcyB0byBCZXJ0cmFuZCBMZSBSb3kKICBwdXNoX2hhc2g6IGZ1bmN0aW9uIChoYXNoKSB7CiAgICBpZiAoaGFzaCA9PSAiIikgaGFzaCA9ICIjKDEpIjsKICAgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSBoYXNoOwoKICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGlzdG9yeUZyYW1lIikuY29udGVudFdpbmRvdy5kb2N1bWVudDsKICAgIGRvYy5vcGVuKCJqYXZhc2NyaXB0Oic8aHRtbD48L2h0bWw+JyIpOwogICAgZG9jLndyaXRlKCI8aHRtbD48aGVhZD48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj53aW5kb3cucGFyZW50LnczY19zbGlkeS5vbl9mcmFtZV9sb2FkZWQoJyIrCiAgICAgIChoYXNoKSArICInKTs8L3NjcmlwdD48L2hlYWQ+PGJvZHk+aGVsbG8gbXVtPC9ib2R5PjwvaHRtbD4iKTsKICAgICAgZG9jLmNsb3NlKCk7CiAgfSwKCiAgLy8gZmluZCBjdXJyZW50IHNsaWRlIGJhc2VkIHVwb24gbG9jYXRpb24KICAvLyBmaXJzdCBmaW5kIHRhcmdldCBhbmNob3IgYW5kIHRoZW4gbG9vawogIC8vIGZvciBhc3NvY2lhdGVkIGRpdiBlbGVtZW50IGVuY2xvc2luZyBpdAogIC8vIGZpbmFsbHkgbWFwIHRoYXQgdG8gc2xpZGUgbnVtYmVyCiAgZmluZF9zbGlkZV9udW1iZXI6IGZ1bmN0aW9uICh1cmkpIHsKICAgIC8vIGZpcnN0IGdldCBhbmNob3IgZnJvbSBwYWdlIGxvY2F0aW9uCgogICAgdmFyIGkgPSB1cmkuaW5kZXhPZigiIyIpOwoKICAgIC8vIGNoZWNrIGlmIGFuY2hvciBpcyBlbnRpcmUgcGFnZQogICAgaWYgKGkgPCAwKQogICAgICByZXR1cm4gMDsgIC8vIHllcwoKICAgIHZhciBhbmNob3IgPSB1bmVzY2FwZSh1cmkuc3Vic3RyKGkrMSkpOwoKICAgIC8vIG5vdyB1c2UgYW5jaG9yIGFzIFhNTCBJRCB0byBmaW5kIHRhcmdldAogICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGFuY2hvcik7CgogICAgaWYgKCF0YXJnZXQpCiAgICB7CiAgICAgIC8vIGRvZXMgYW5jaG9yIGxvb2sgbGlrZSAiKDIpIiBmb3Igc2xpZGUgMiA/PwogICAgICAvLyB3aGVyZSBmaXJzdCBzbGlkZSBpcyAoMSkKICAgICAgdmFyIHJlID0gL1woKFxkKStcKS87CgogICAgICBpZiAoYW5jaG9yLm1hdGNoKHJlKSkKICAgICAgewogICAgICAgIHZhciBudW0gPSBwYXJzZUludChhbmNob3Iuc3Vic3RyaW5nKDEsIGFuY2hvci5sZW5ndGgtMSkpOwoKICAgICAgICBpZiAobnVtID4gdGhpcy5zbGlkZXMubGVuZ3RoKQogICAgICAgICAgbnVtID0gMTsKCiAgICAgICAgaWYgKC0tbnVtIDwgMCkKICAgICAgICAgIG51bSA9IDA7CgogICAgICAgIHJldHVybiBudW07CiAgICAgIH0KCiAgICAgIC8vIGFjY2VwdCBbMl0gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiAgICAgIHJlID0gL1xbKFxkKStcXS87CgogICAgICBpZiAoYW5jaG9yLm1hdGNoKHJlKSkKICAgICAgewogICAgICAgICB2YXIgbnVtID0gcGFyc2VJbnQoYW5jaG9yLnN1YnN0cmluZygxLCBhbmNob3IubGVuZ3RoLTEpKTsKCiAgICAgICAgIGlmIChudW0gPiB0aGlzLnNsaWRlcy5sZW5ndGgpCiAgICAgICAgICAgIG51bSA9IDE7CgogICAgICAgICBpZiAoLS1udW0gPCAwKQogICAgICAgICAgICBudW0gPSAwOwoKICAgICAgICAgcmV0dXJuIG51bTsKICAgICAgfQoKICAgICAgLy8gb2ggZGVhciB1bmtub3duIGFuY2hvcgogICAgICByZXR1cm4gMDsKICAgIH0KCiAgICAvLyBzZWFyY2ggZm9yIGVuY2xvc2luZyBzbGlkZQoKICAgIHdoaWxlICh0cnVlKQogICAgewogICAgICAvLyBicm93c2VyIGNvZXJjZXMgaHRtbCBlbGVtZW50cyB0byB1cHBlcmNhc2UhCiAgICAgIGlmICh0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PSAiZGl2IiAmJgogICAgICAgICAgICB0aGlzLmhhc19jbGFzcyh0YXJnZXQsICJzbGlkZSIpKQogICAgICB7CiAgICAgICAgLy8gZm91bmQgdGhlIHNsaWRlIGVsZW1lbnQKICAgICAgICBicmVhazsKICAgICAgfQoKICAgICAgLy8gb3RoZXJ3aXNlIHRyeSBwYXJlbnQgZWxlbWVudCBpZiBhbnkKCiAgICAgIHRhcmdldCA9IHRhcmdldC5wYXJlbnROb2RlOwoKICAgICAgaWYgKCF0YXJnZXQpCiAgICAgIHsKICAgICAgICByZXR1cm4gMDsgICAvLyBubyBsdWNrIQogICAgICB9CiAgICB9OwoKICAgIGZvciAoaSA9IDA7IGkgPCBzbGlkZXMubGVuZ3RoOyArK2kpCiAgICB7CiAgICAgIGlmIChzbGlkZXNbaV0gPT0gdGFyZ2V0KQogICAgICAgIHJldHVybiBpOyAgLy8gc3VjY2VzcwogICAgfQoKICAgIC8vIG9oIGRlYXIgc3RpbGwgbm8gbHVjawogICAgcmV0dXJuIDA7CiAgfSwKCiAgcHJldmlvdXNfc2xpZGU6IGZ1bmN0aW9uIChpbmNyZW1lbnRhbCkgewogICAgaWYgKCF3M2Nfc2xpZHkudmlld19hbGwpCiAgICB7CiAgICAgIHZhciBzbGlkZTsKCiAgICAgIGlmICgoaW5jcmVtZW50YWwgfHwgdzNjX3NsaWR5LnNsaWRlX251bWJlciA9PSAwKSAmJiB3M2Nfc2xpZHkubGFzdF9zaG93biAhPSBudWxsKQogICAgICB7CiAgICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSB3M2Nfc2xpZHkuaGlkZV9wcmV2aW91c19pdGVtKHczY19zbGlkeS5sYXN0X3Nob3duKTsKICAgICAgICB3M2Nfc2xpZHkuc2V0X2Vvc19zdGF0dXMoZmFsc2UpOwogICAgICB9CiAgICAgIGVsc2UgaWYgKHczY19zbGlkeS5zbGlkZV9udW1iZXIgPiAwKQogICAgICB7CiAgICAgICAgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgIHczY19zbGlkeS5oaWRlX3NsaWRlKHNsaWRlKTsKCiAgICAgICAgdzNjX3NsaWR5LnNsaWRlX251bWJlciA9IHczY19zbGlkeS5zbGlkZV9udW1iZXIgLSAxOwogICAgICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICB3M2Nfc2xpZHkuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJ2aXNpYmxlIik7CiAgICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSB3M2Nfc2xpZHkucHJldmlvdXNfaW5jcmVtZW50YWxfaXRlbShudWxsKTsKICAgICAgICB3M2Nfc2xpZHkuc2V0X2Vvc19zdGF0dXModHJ1ZSk7CiAgICAgICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgICB9CgogICAgICB3M2Nfc2xpZHkuc2V0X2xvY2F0aW9uKCk7CgogICAgICBpZiAoIXczY19zbGlkeS5uc19wb3MpCiAgICAgICAgdzNjX3NsaWR5LnJlZnJlc2hfdG9vbGJhcigyMDApOwogICAgfQogIH0sCgogIG5leHRfc2xpZGU6IGZ1bmN0aW9uIChpbmNyZW1lbnRhbCkgewogICAgaWYgKCF3M2Nfc2xpZHkudmlld19hbGwpCiAgICB7CiAgICAgIHZhciBzbGlkZSwgbGFzdCA9IHczY19zbGlkeS5sYXN0X3Nob3duOwoKICAgICAgaWYgKGluY3JlbWVudGFsIHx8IHczY19zbGlkeS5zbGlkZV9udW1iZXIgPT0gdzNjX3NsaWR5LnNsaWRlcy5sZW5ndGggLSAxKQogICAgICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IHczY19zbGlkeS5yZXZlYWxfbmV4dF9pdGVtKHczY19zbGlkeS5sYXN0X3Nob3duKTsKCiAgICAgIGlmICgoIWluY3JlbWVudGFsIHx8IHczY19zbGlkeS5sYXN0X3Nob3duID09IG51bGwpICYmCiAgICAgICAgICAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyIDwgdzNjX3NsaWR5LnNsaWRlcy5sZW5ndGggLSAxKQogICAgICB7CiAgICAgICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwoKICAgICAgICAgdzNjX3NsaWR5LnNsaWRlX251bWJlciA9IHczY19zbGlkeS5zbGlkZV9udW1iZXIgKyAxOwogICAgICAgICBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICAgICAgIHczY19zbGlkeS5sYXN0X3Nob3duID0gbnVsbDsKICAgICAgICAgdzNjX3NsaWR5LnNldF92aXNpYmlsaXR5X2FsbF9pbmNyZW1lbnRhbCgiaGlkZGVuIik7CiAgICAgICAgIHczY19zbGlkeS5zaG93X3NsaWRlKHNsaWRlKTsKICAgICAgfQogICAgICBlbHNlIGlmICghdzNjX3NsaWR5Lmxhc3Rfc2hvd24pCiAgICAgIHsKICAgICAgICAgaWYgKGxhc3QgJiYgaW5jcmVtZW50YWwpCiAgICAgICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSBsYXN0OwogICAgICB9CgogICAgICB3M2Nfc2xpZHkuc2V0X2xvY2F0aW9uKCk7CgogICAgICB3M2Nfc2xpZHkuc2V0X2Vvc19zdGF0dXMoIXczY19zbGlkeS5uZXh0X2luY3JlbWVudGFsX2l0ZW0odzNjX3NsaWR5Lmxhc3Rfc2hvd24pKTsKCiAgICAgIGlmICghdzNjX3NsaWR5Lm5zX3BvcykKICAgICAgICAgdzNjX3NsaWR5LnJlZnJlc2hfdG9vbGJhcigyMDApOwogICAgIH0KICB9LAoKICAvLyB0byBmaXJzdCBzbGlkZSB3aXRoIG5vdGhpbmcgcmV2ZWFsZWQKICAvLyBpLmUuIHN0YXRlIGF0IHN0YXJ0IG9mIHByZXNlbnRhdGlvbgogIGZpcnN0X3NsaWRlOiBmdW5jdGlvbiAoKSB7CiAgICAgaWYgKCF3M2Nfc2xpZHkudmlld19hbGwpCiAgICAgewogICAgICAgdmFyIHNsaWRlOwoKICAgICAgIGlmICh3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyICE9IDApCiAgICAgICB7CiAgICAgICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwoKICAgICAgICAgdzNjX3NsaWR5LnNsaWRlX251bWJlciA9IDA7CiAgICAgICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSBudWxsOwogICAgICAgICB3M2Nfc2xpZHkuc2V0X3Zpc2liaWxpdHlfYWxsX2luY3JlbWVudGFsKCJoaWRkZW4iKTsKICAgICAgICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgICAgfQoKICAgICAgIHczY19zbGlkeS5zZXRfZW9zX3N0YXR1cygKICAgICAgICAgIXczY19zbGlkeS5uZXh0X2luY3JlbWVudGFsX2l0ZW0odzNjX3NsaWR5Lmxhc3Rfc2hvd24pKTsKICAgICAgIHczY19zbGlkeS5zZXRfbG9jYXRpb24oKTsKICAgICB9CiAgfSwKCiAgLy8gZ290byBsYXN0IHNsaWRlIHdpdGggZXZlcnl0aGluZyByZXZlYWxlZAogIC8vIGkuZS4gc3RhdGUgYXQgZW5kIG9mIHByZXNlbnRhdGlvbgogIGxhc3Rfc2xpZGU6IGZ1bmN0aW9uICgpIHsKICAgIGlmICghdzNjX3NsaWR5LnZpZXdfYWxsKQogICAgewogICAgICB2YXIgc2xpZGU7CgogICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IG51bGw7IC8vcmV2ZWFsTmV4dEl0ZW0obGFzdFNob3duKTsKCiAgICAgIGlmICh3M2Nfc2xpZHkubGFzdF9zaG93biA9PSBudWxsICYmCiAgICAgICAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyIDwgdzNjX3NsaWR5LnNsaWRlcy5sZW5ndGggLSAxKQogICAgICB7CiAgICAgICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgICAgICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwogICAgICAgICB3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyID0gdzNjX3NsaWR5LnNsaWRlcy5sZW5ndGggLSAxOwogICAgICAgICBzbGlkZSA9IHczY19zbGlkeS5zbGlkZXNbdzNjX3NsaWR5LnNsaWRlX251bWJlcl07CiAgICAgICAgIHczY19zbGlkeS5zZXRfdmlzaWJpbGl0eV9hbGxfaW5jcmVtZW50YWwoInZpc2libGUiKTsKICAgICAgICAgdzNjX3NsaWR5Lmxhc3Rfc2hvd24gPSB3M2Nfc2xpZHkucHJldmlvdXNfaW5jcmVtZW50YWxfaXRlbShudWxsKTsKCiAgICAgICAgIHczY19zbGlkeS5zaG93X3NsaWRlKHNsaWRlKTsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAgdzNjX3NsaWR5LnNldF92aXNpYmlsaXR5X2FsbF9pbmNyZW1lbnRhbCgidmlzaWJsZSIpOwogICAgICAgICB3M2Nfc2xpZHkubGFzdF9zaG93biA9IHczY19zbGlkeS5wcmV2aW91c19pbmNyZW1lbnRhbF9pdGVtKG51bGwpOwogICAgICB9CgogICAgICB3M2Nfc2xpZHkuc2V0X2Vvc19zdGF0dXModHJ1ZSk7CiAgICAgIHczY19zbGlkeS5zZXRfbG9jYXRpb24oKTsKICAgIH0KICB9LAoKCiAgLy8gIyMjIGNoZWNrIHRoaXMgYW5kIGNvbnNpZGVyIGFkZC9yZW1vdmUgY2xhc3MKICBzZXRfZW9zX3N0YXR1czogZnVuY3Rpb24gKHN0YXRlKSB7CiAgICBpZiAodGhpcy5lb3MpCiAgICAgIHRoaXMuZW9zLnN0eWxlLmNvbG9yID0gKHN0YXRlID8gInJnYigyNDAsMjQwLDI0MCkiIDogInJlZCIpOwogIH0sCgogIC8vIGZpcnN0IHNsaWRlIGlzIDAKICBnb3RvX3NsaWRlOiBmdW5jdGlvbiAobnVtKSB7CiAgICAvL2FsZXJ0KCJnb2luZyB0byBzbGlkZSAiICsgKG51bSsxKSk7CiAgICB2YXIgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwogICAgdzNjX3NsaWR5LnNsaWRlX251bWJlciA9IG51bTsKICAgIHNsaWRlID0gdzNjX3NsaWR5LnNsaWRlc1t3M2Nfc2xpZHkuc2xpZGVfbnVtYmVyXTsKICAgIHczY19zbGlkeS5sYXN0X3Nob3duID0gbnVsbDsKICAgIHczY19zbGlkeS5zZXRfdmlzaWJpbGl0eV9hbGxfaW5jcmVtZW50YWwoImhpZGRlbiIpOwogICAgdzNjX3NsaWR5LnNldF9lb3Nfc3RhdHVzKCF3M2Nfc2xpZHkubmV4dF9pbmNyZW1lbnRhbF9pdGVtKHczY19zbGlkeS5sYXN0X3Nob3duKSk7CiAgICBkb2N1bWVudC50aXRsZSA9IHczY19zbGlkeS50aXRsZSArICIgKCIgKyAodzNjX3NsaWR5LnNsaWRlX251bWJlcisxKSArICIpIjsKICAgIHczY19zbGlkeS5zaG93X3NsaWRlKHNsaWRlKTsKICAgIHczY19zbGlkeS5zaG93X3NsaWRlX251bWJlcigpOwogIH0sCgoKICBzaG93X3NsaWRlOiBmdW5jdGlvbiAoc2xpZGUpIHsKICAgIHRoaXMuc3luY19iYWNrZ3JvdW5kKHNsaWRlKTsKICAgIHRoaXMucmVtb3ZlX2NsYXNzKHNsaWRlLCAiaGlkZGVuIik7CgogICAgLy8gd29yayBhcm91bmQgSUU5IG9iamVjdCByZW5kZXJpbmcgYnVnCiAgICBzZXRUaW1lb3V0KCJ3aW5kb3cuc2Nyb2xsVG8oMCwwKTsiLCAxKTsKICB9LAoKICBoaWRlX3NsaWRlOiBmdW5jdGlvbiAoc2xpZGUpIHsKICAgIHRoaXMuYWRkX2NsYXNzKHNsaWRlLCAiaGlkZGVuIik7CiAgfSwKCiAgc2V0X2ZvY3VzOiBmdW5jdGlvbiAoZWxlbWVudCkKICB7CiAgICBpZiAoZWxlbWVudCkKICAgICAgZWxlbWVudC5mb2N1cygpOwogICAgZWxzZQogICAgewogICAgICB3M2Nfc2xpZHkuaGVscF9hbmNob3IuZm9jdXMoKTsKCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgdzNjX3NsaWR5LmhlbHBfYW5jaG9yLmJsdXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfSwKCiAgLy8gc2hvdyBqdXN0IHRoZSBiYWNrZ3JvdW5kcyBwZXJ0aW5lbnQgdG8gdGhpcyBzbGlkZQogIC8vIHdoZW4gc2xpZGUgYmFja2dyb3VuZC1jb2xvciBpcyB0cmFuc3BhcmVudAogIC8vIHRoaXMgc2hvdWxkIG5vdyB3b3JrIHdpdGggcmdiYSBjb2xvciB2YWx1ZXMKICBzeW5jX2JhY2tncm91bmQ6IGZ1bmN0aW9uIChzbGlkZSkgewogICAgdmFyIGJhY2tncm91bmQ7CiAgICB2YXIgYmdDb2xvcjsKCiAgICBpZiAoc2xpZGUuY3VycmVudFN0eWxlKQogICAgICBiZ0NvbG9yID0gc2xpZGUuY3VycmVudFN0eWxlWyJiYWNrZ3JvdW5kQ29sb3IiXTsKICAgIGVsc2UgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3KQogICAgewogICAgICB2YXIgc3R5bGVzID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShzbGlkZSxudWxsKTsKCiAgICAgIGlmIChzdHlsZXMpCiAgICAgICAgYmdDb2xvciA9IHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCJiYWNrZ3JvdW5kLWNvbG9yIik7CiAgICAgIGVsc2UgLy8gYnJva2VuIGltcGxlbWVudGF0aW9uIHByb2JhYmx5IGR1ZSBTYWZhcmkgb3IgS29ucXVlcm9yCiAgICAgIHsKICAgICAgICAvL2FsZXJ0KCJkZWZlY3RpdmUgaW1wbGVtZW50YXRpb24gb2YgZ2V0Q29tcHV0ZWRTdHlsZSgpIik7CiAgICAgICAgYmdDb2xvciA9ICJ0cmFuc3BhcmVudCI7CiAgICAgIH0KICAgIH0KICAgIGVsc2UKICAgICAgYmdDb2xvciA9PSAidHJhbnNwYXJlbnQiOwoKICAgIGlmIChiZ0NvbG9yID09ICJ0cmFuc3BhcmVudCIgfHwKICAgICAgICBiZ0NvbG9yLmluZGV4T2YoInJnYmEiKSA+PSAwIHx8CiAgICAgICAgYmdDb2xvci5pbmRleE9mKCJvcGFjaXR5IikgPj0gMCkKICAgIHsKICAgICAgdmFyIHNsaWRlQ2xhc3MgPSB0aGlzLmdldF9jbGFzc19saXN0KHNsaWRlKTsKCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5iYWNrZ3JvdW5kcy5sZW5ndGg7IGkrKykKICAgICAgewogICAgICAgIGJhY2tncm91bmQgPSB0aGlzLmJhY2tncm91bmRzW2ldOwoKICAgICAgICB2YXIgYmdDbGFzcyA9IHRoaXMuZ2V0X2NsYXNzX2xpc3QoYmFja2dyb3VuZCk7CgogICAgICAgIGlmICh0aGlzLm1hdGNoaW5nX2JhY2tncm91bmQoc2xpZGVDbGFzcywgYmdDbGFzcykpCiAgICAgICAgICB0aGlzLnJlbW92ZV9jbGFzcyhiYWNrZ3JvdW5kLCAiaGlkZGVuIik7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5hZGRfY2xhc3MoYmFja2dyb3VuZCwgImhpZGRlbiIpOwogICAgICB9CiAgICB9CiAgICBlbHNlIC8vIGZvcmNpYmx5IGhpZGUgYWxsIGJhY2tncm91bmRzCiAgICAgIHRoaXMuaGlkZV9iYWNrZ3JvdW5kcygpOwogIH0sCgogIGhpZGVfYmFja2dyb3VuZHM6IGZ1bmN0aW9uICgpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5iYWNrZ3JvdW5kcy5sZW5ndGg7IGkrKykKICAgIHsKICAgICAgYmFja2dyb3VuZCA9IHRoaXMuYmFja2dyb3VuZHNbaV07CiAgICAgIHRoaXMuYWRkX2NsYXNzKGJhY2tncm91bmQsICJoaWRkZW4iKTsKICAgIH0KICB9LAoKICAvLyBjb21wYXJlIGNsYXNzZXMgZm9yIHNsaWRlIGFuZCBiYWNrZ3JvdW5kCiAgbWF0Y2hpbmdfYmFja2dyb3VuZDogZnVuY3Rpb24gKHNsaWRlQ2xhc3MsIGJnQ2xhc3MpIHsKICAgIHZhciBpLCBjb3VudCwgcGF0dGVybiwgcmVzdWx0OwoKICAgIC8vIGRlZmluZSBwYXR0ZXJuIGFzIHJlZ3VsYXIgZXhwcmVzc2lvbgogICAgcGF0dGVybiA9IC9cdysvZzsKCiAgICAvLyBjaGVjayBiYWNrZ3JvdW5kIGNsYXNzIG5hbWVzCiAgICByZXN1bHQgPSBiZ0NsYXNzLm1hdGNoKHBhdHRlcm4pOwoKICAgIGZvciAoaSA9IGNvdW50ID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykKICAgIHsKICAgICAgaWYgKHJlc3VsdFtpXSA9PSAiaGlkZGVuIikKICAgICAgICBjb250aW51ZTsKCiAgICAgIGlmIChyZXN1bHRbaV0gPT0gImJhY2tncm91bmQiKQoJY29udGludWU7CgogICAgICArK2NvdW50OwogICAgfQoKICAgIGlmIChjb3VudCA9PSAwKSAgLy8gZGVmYXVsdCBtYXRjaAogICAgICByZXR1cm4gdHJ1ZTsKCiAgICAvLyBjaGVjayBmb3IgbWF0Y2hlcyBhbmQgcGxhY2UgcmVzdWx0IGluIGFycmF5CiAgICByZXN1bHQgPSBzbGlkZUNsYXNzLm1hdGNoKHBhdHRlcm4pOwoKICAgIC8vIG5vdyBjaGVjayBpZiBkZXNpcmVkIG5hbWUgaXMgcHJlc2VudCBmb3IgYmFja2dyb3VuZAogICAgZm9yIChpID0gY291bnQgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKQogICAgewogICAgICBpZiAocmVzdWx0W2ldID09ICJoaWRkZW4iKQogICAgICAgIGNvbnRpbnVlOwoKICAgICAgaWYgKHRoaXMuaGFzX3Rva2VuKGJnQ2xhc3MsIHJlc3VsdFtpXSkpCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgcmV0dXJuIGZhbHNlOwogIH0sCgogIHJlc2l6ZWQ6IGZ1bmN0aW9uICgpIHsKICAgICB2YXIgd2lkdGggPSAwOwoKICAgICBpZiAoIHR5cGVvZiggd2luZG93LmlubmVyV2lkdGggKSA9PSAnbnVtYmVyJyApCiAgICAgICB3aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOyAgLy8gTm9uIElFIGJyb3dzZXIKICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKQogICAgICAgd2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7ICAvLyBJRTYKICAgICBlbHNlIGlmIChkb2N1bWVudC5ib2R5ICYmIGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgpCiAgICAgICB3aWR0aCA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg7IC8vIElFNAoKICAgICB2YXIgaGVpZ2h0ID0gMDsKCiAgICAgaWYgKCB0eXBlb2YoIHdpbmRvdy5pbm5lckhlaWdodCApID09ICdudW1iZXInICkKICAgICAgIGhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDsgIC8vIE5vbiBJRSBicm93c2VyCiAgICAgZWxzZSBpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpCiAgICAgICBoZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OyAgLy8gSUU2CiAgICAgZWxzZSBpZiAoZG9jdW1lbnQuYm9keSAmJiBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCkKICAgICAgIGhlaWdodCA9IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OyAvLyBJRTQKCiAgICAgaWYgKGhlaWdodCAmJiAod2lkdGgvaGVpZ2h0ID4gMS4wNSoxMDI0Lzc2OCkpCiAgICAgewogICAgICAgd2lkdGggPSBoZWlnaHQgKiAxMDI0LjAvNzY4OwogICAgIH0KCiAgICAgLy8gSUUgZmlyZXMgb25yZXNpemUgZXZlbiB3aGVuIG9ubHkgZm9udCBzaXplIGlzIGNoYW5nZWQhCiAgICAgLy8gc28gd2UgZG8gYSBjaGVjayB0byBhdm9pZCBibG9ja2luZyA8IGFuZCA+IGFjdGlvbnMKICAgICBpZiAod2lkdGggIT0gdzNjX3NsaWR5Lmxhc3Rfd2lkdGggfHwgaGVpZ2h0ICE9IHczY19zbGlkeS5sYXN0X2hlaWdodCkKICAgICB7CiAgICAgICBpZiAod2lkdGggPj0gMTEwMCkKICAgICAgICAgdzNjX3NsaWR5LnNpemVfaW5kZXggPSA1OyAgICAvLyA0CiAgICAgICBlbHNlIGlmICh3aWR0aCA+PSAxMDAwKQogICAgICAgICB3M2Nfc2xpZHkuc2l6ZV9pbmRleCA9IDQ7ICAgIC8vIDMKICAgICAgIGVsc2UgaWYgKHdpZHRoID49IDgwMCkKICAgICAgICAgdzNjX3NsaWR5LnNpemVfaW5kZXggPSAzOyAgICAvLyAyCiAgICAgICBlbHNlIGlmICh3aWR0aCA+PSA2MDApCiAgICAgICAgIHczY19zbGlkeS5zaXplX2luZGV4ID0gMjsgICAgLy8gMQogICAgICAgZWxzZSBpZiAod2lkdGgpCiAgICAgICAgIHczY19zbGlkeS5zaXplX2luZGV4ID0gMDsKCiAgICAgICAvLyBhZGQgaW4gZm9udCBzaXplIGFkanVzdG1lbnQgZnJvbSBtZXRhIGVsZW1lbnQgZS5nLgogICAgICAgLy8gPG1ldGEgbmFtZT0iZm9udC1zaXplLWFkanVzdG1lbnQiIGNvbnRlbnQ9Ii0yIiAvPgogICAgICAgLy8gdXNlZnVsIHdoZW4gc2xpZGVzIGhhdmUgdG9vIG11Y2ggY29udGVudCA7LSkKCiAgICAgICBpZiAoMCA8PSB3M2Nfc2xpZHkuc2l6ZV9pbmRleCArIHczY19zbGlkeS5zaXplX2FkanVzdG1lbnQgJiYKICAgICAgICAgICAgIHczY19zbGlkeS5zaXplX2luZGV4ICsgdzNjX3NsaWR5LnNpemVfYWRqdXN0bWVudCA8IHczY19zbGlkeS5zaXplcy5sZW5ndGgpCiAgICAgICAgIHczY19zbGlkeS5zaXplX2luZGV4ID0gdzNjX3NsaWR5LnNpemVfaW5kZXggKyB3M2Nfc2xpZHkuc2l6ZV9hZGp1c3RtZW50OwoKICAgICAgIC8vIGVuYWJsZXMgY3Jvc3MgYnJvd3NlciB1c2Ugb2YgcmVsYXRpdmUgd2lkdGgvaGVpZ2h0CiAgICAgICAvLyBvbiBvYmplY3QgZWxlbWVudHMgZm9yIHVzZSB3aXRoIFNWRyBhbmQgRmxhc2ggbWVkaWEKICAgICAgIHczY19zbGlkeS5hZGp1c3Rfb2JqZWN0X2RpbWVuc2lvbnMod2lkdGgsIGhlaWdodCk7CgogICAgICAgaWYgKGRvY3VtZW50LmJvZHkuc3R5bGUuZm9udFNpemUgIT0gdzNjX3NsaWR5LnNpemVzW3czY19zbGlkeS5zaXplX2luZGV4XSkKICAgICAgIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5mb250U2l6ZSA9IHczY19zbGlkeS5zaXplc1t3M2Nfc2xpZHkuc2l6ZV9pbmRleF07CiAgICAgICB9CgogICAgICAgdzNjX3NsaWR5Lmxhc3Rfd2lkdGggPSB3aWR0aDsKICAgICAgIHczY19zbGlkeS5sYXN0X2hlaWdodCA9IGhlaWdodDsKCiAgICAgICAvLyBmb3JjZSByZWZsb3cgdG8gd29yayBhcm91bmQgTW96aWxsYSBidWcKICAgICAgIGlmICh3M2Nfc2xpZHkubnNfcG9zKQogICAgICAgewogICAgICAgICB2YXIgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgICAgICB3M2Nfc2xpZHkuaGlkZV9zbGlkZShzbGlkZSk7CiAgICAgICAgIHczY19zbGlkeS5zaG93X3NsaWRlKHNsaWRlKTsKICAgICAgIH0KCiAgICAgICAvLyBmb3JjZSBjb3JyZWN0IHBvc2l0aW9uaW5nIG9mIHRvb2xiYXIKICAgICAgIHczY19zbGlkeS5yZWZyZXNoX3Rvb2xiYXIoMjAwKTsKICAgICB9CiAgfSwKCiAgc2Nyb2xsZWQ6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh3M2Nfc2xpZHkudG9vbGJhciAmJiAhdzNjX3NsaWR5Lm5zX3BvcyAmJiAhdzNjX3NsaWR5LmllNykKICAgIHsKICAgICAgdzNjX3NsaWR5LmhhY2tfb2Zmc2V0ID0gdzNjX3NsaWR5LnNjcm9sbF94X29mZnNldCgpOwogICAgICAvLyBoaWRlIHRvb2xiYXIKICAgICAgdzNjX3NsaWR5LnRvb2xiYXIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCiAgICAgIC8vIG1ha2UgaXQgcmVhcHBlYXIgbGF0ZXIKICAgICAgaWYgKHczY19zbGlkeS5zY3JvbGxoYWNrID09IDAgJiYgIXczY19zbGlkeS52aWV3X2FsbCkKICAgICAgewogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge3czY19zbGlkeS5zaG93X3Rvb2xiYXIoKTsgfSwgMTAwMCk7CiAgICAgICAgdzNjX3NsaWR5LnNjcm9sbGhhY2sgPSAxOwogICAgICB9CiAgICB9CiAgfSwKCiAgaGlkZV90b29sYmFyOiBmdW5jdGlvbiAoKSB7CiAgICB3M2Nfc2xpZHkuYWRkX2NsYXNzKHczY19zbGlkeS50b29sYmFyLCAiaGlkZGVuIik7CiAgICB3aW5kb3cuZm9jdXMoKTsKICB9LAoKICAvLyB1c2VkIHRvIGVuc3VyZSBJRSByZWZyZXNoZXMgdG9vbGJhciBpbiBjb3JyZWN0IHBvc2l0aW9uCiAgcmVmcmVzaF90b29sYmFyOiBmdW5jdGlvbiAoaW50ZXJ2YWwpIHsKICAgIGlmICghdzNjX3NsaWR5Lm5zX3BvcyAmJiAhdzNjX3NsaWR5LmllNykKICAgIHsKICAgICAgdzNjX3NsaWR5LmhpZGVfdG9vbGJhcigpOwogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHt3M2Nfc2xpZHkuc2hvd190b29sYmFyKCk7fSwgaW50ZXJ2YWwpOwogICAgfQogIH0sCgogIC8vIHJlc3RvcmVzIHRvb2xiYXIgYWZ0ZXIgc2hvcnQgZGVsYXkKICBzaG93X3Rvb2xiYXI6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh3M2Nfc2xpZHkud2FudF90b29sYmFyKQogICAgewogICAgICB3M2Nfc2xpZHkudG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCiAgICAgIGlmICghdzNjX3NsaWR5Lm5zX3BvcykKICAgICAgewogICAgICAgIC8vIGFkanVzdCBwb3NpdGlvbiB0byBhbGxvdyBmb3Igc2Nyb2xsaW5nCiAgICAgICAgdmFyIHhvZmZzZXQgPSB3M2Nfc2xpZHkuc2Nyb2xsX3hfb2Zmc2V0KCk7CiAgICAgICAgdzNjX3NsaWR5LnRvb2xiYXIuc3R5bGUubGVmdCA9IHhvZmZzZXQ7CiAgICAgICAgdzNjX3NsaWR5LnRvb2xiYXIuc3R5bGUucmlnaHQgPSB4b2Zmc2V0OwoKICAgICAgICAvLyBkZXRlcm1pbmUgdmVydGljYWwgc2Nyb2xsIG9mZnNldAogICAgICAgIC8vdmFyIHlvZmZzZXQgPSBzY3JvbGxZT2Zmc2V0KCk7CgogICAgICAgIC8vIGJvdHRvbSBpcyBkb2MgaGVpZ2h0IC0gd2luZG93IGhlaWdodCAtIHNjcm9sbCBvZmZzZXQKICAgICAgICAvL3ZhciBib3R0b20gPSBkb2N1bWVudEhlaWdodCgpIC0gbGFzdEhlaWdodCAtIHlvZmZzZXQKCiAgICAgICAgLy9pZiAoeW9mZnNldCA+IDAgfHwgZG9jdW1lbnRIZWlnaHQoKSA+IGxhc3RIZWlnaHQpCiAgICAgICAgLy8gICBib3R0b20gKz0gMTY7ICAvLyBhbGxvdyBmb3IgaGVpZ2h0IG9mIHNjcm9sbGJhcgoKICAgICAgICB3M2Nfc2xpZHkudG9vbGJhci5zdHlsZS5ib3R0b20gPSAwOyAvL2JvdHRvbTsKICAgICAgfQoKICAgICAgdzNjX3NsaWR5LnJlbW92ZV9jbGFzcyh3M2Nfc2xpZHkudG9vbGJhciwgImhpZGRlbiIpOwogICAgfQoKICAgIHczY19zbGlkeS5zY3JvbGxoYWNrID0gMDsKCgogICAgLy8gc2V0IHRoZSBrZXlib2FyZCBmb2N1cyB0byB0aGUgaGVscCBsaW5rIG9uIHRoZQogICAgLy8gdG9vbGJhciB0byBlbnN1cmUgdGhhdCBkb2N1bWVudCBoYXMgdGhlIGZvY3VzCiAgICAvLyBJRSBkb2Vzbid0IGFsd2F5cyB3b3JrIHdpdGggd2luZG93LmZvY3VzKCkKICAgIC8vIGFuZCB0aGlzIGhhY2sgaGFzIGJlbmVmaXQgb2YgRW50ZXIgZm9yIGhlbHAKCiAgICB0cnkKICAgIHsKICAgICAgaWYgKCF3M2Nfc2xpZHkub3BlcmEpCiAgICAgICAgdzNjX3NsaWR5LnNldF9mb2N1cygpOwogICAgfQogICAgY2F0Y2ggKGUpCiAgICB7CiAgICB9CiAgfSwKCi8vIGludm9rZWQgdmlhIEYga2V5CiAgdG9nZ2xlX3Rvb2xiYXI6IGZ1bmN0aW9uICgpIHsKICAgIGlmICghdzNjX3NsaWR5LnZpZXdfYWxsKQogICAgewogICAgICBpZiAodzNjX3NsaWR5Lmhhc19jbGFzcyh3M2Nfc2xpZHkudG9vbGJhciwgImhpZGRlbiIpKQogICAgICB7CiAgICAgICAgdzNjX3NsaWR5LnJlbW92ZV9jbGFzcyh3M2Nfc2xpZHkudG9vbGJhciwgImhpZGRlbiIpCiAgICAgICAgdzNjX3NsaWR5LndhbnRfdG9vbGJhciA9IDE7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7CiAgICAgICAgdzNjX3NsaWR5LmFkZF9jbGFzcyh3M2Nfc2xpZHkudG9vbGJhciwgImhpZGRlbiIpCiAgICAgICAgdzNjX3NsaWR5LndhbnRfdG9vbGJhciA9IDA7CiAgICAgIH0KICAgIH0KICB9LAoKICBzY3JvbGxfeF9vZmZzZXQ6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh3aW5kb3cucGFnZVhPZmZzZXQpCiAgICAgIHJldHVybiBzZWxmLnBhZ2VYT2Zmc2V0OwoKICAgIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgCiAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCkKICAgICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0OwoKICAgIGlmIChkb2N1bWVudC5ib2R5KQogICAgICByZXR1cm4gZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0OwoKICAgIHJldHVybiAwOwogIH0sCgogIHNjcm9sbF95X29mZnNldDogZnVuY3Rpb24gKCkgewogICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCkKICAgICAgcmV0dXJuIHNlbGYucGFnZVlPZmZzZXQ7CgogICAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiAKICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApCiAgICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wOwoKICAgIGlmIChkb2N1bWVudC5ib2R5KQogICAgICByZXR1cm4gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CgogICAgcmV0dXJuIDA7CiAgfSwKCiAgLy8gbG9va2luZyBmb3IgYSB3YXkgdG8gZGV0ZXJtaW5lIGhlaWdodCBvZiBzbGlkZSBjb250ZW50CiAgLy8gdGhlIHNsaWRlIGl0c2VsZiBpcyBzZXQgdG8gdGhlIGhlaWdodCBvZiB0aGUgd2luZG93CiAgb3B0aW1pemVfZm9udF9zaXplOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwoKICAgIC8vdmFyIGRoID0gZG9jdW1lbnRIZWlnaHQoKTsgLy9nZXREb2NIZWlnaHQoZG9jdW1lbnQpOwogICAgdmFyIGRoID0gc2xpZGUuc2Nyb2xsSGVpZ2h0OwogICAgdmFyIHdoID0gZ2V0V2luZG93SGVpZ2h0KCk7CiAgICB2YXIgdSA9IDEwMCAqIGRoIC8gd2g7CgogICAgYWxlcnQoIndpbmRvdyB1dGlsaXphdGlvbiA9ICIgKyB1ICsgIiUgKGRvYyAiCiAgICAgICsgZGggKyAiIHdpbiAiICsgd2ggKyAiKSIpOwogIH0sCgogIC8vIGZyb20gZG9jdW1lbnQgb2JqZWN0CiAgZ2V0X2RvY19oZWlnaHQ6IGZ1bmN0aW9uIChkb2MpIHsKICAgIGlmICghZG9jKQogICAgICBkb2MgPSBkb2N1bWVudDsKCiAgICBpZiAoZG9jICYmIGRvYy5ib2R5ICYmIGRvYy5ib2R5Lm9mZnNldEhlaWdodCkKICAgICAgcmV0dXJuIGRvYy5ib2R5Lm9mZnNldEhlaWdodDsgIC8vIG5zL2dlY2tvIHN5bnRheAoKICAgIGlmIChkb2MgJiYgZG9jLmJvZHkgJiYgZG9jLmJvZHkuc2Nyb2xsSGVpZ2h0KQogICAgICByZXR1cm4gZG9jLmJvZHkuc2Nyb2xsSGVpZ2h0OwoKICAgIGFsZXJ0KCJjb3VsZG4ndCBkZXRlcm1pbmUgZG9jdW1lbnQgaGVpZ2h0Iik7CiAgfSwKCiAgZ2V0X3dpbmRvd19oZWlnaHQ6IGZ1bmN0aW9uICgpIHsKICAgIGlmICggdHlwZW9mKCB3aW5kb3cuaW5uZXJIZWlnaHQgKSA9PSAnbnVtYmVyJyApCiAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQ7ICAvLyBOb24gSUUgYnJvd3NlcgoKICAgIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkKICAgICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7ICAvLyBJRTYKCiAgICBpZiAoZG9jdW1lbnQuYm9keSAmJiBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCkKICAgICAgcmV0dXJuIGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0OyAvLyBJRTQKICB9LAoKICBkb2N1bWVudF9oZWlnaHQ6IGZ1bmN0aW9uICgpIHsKICAgIHZhciBzaCwgb2g7CgogICAgc2ggPSBkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodDsKICAgIG9oID0gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CgogICAgaWYgKHNoICYmIG9oKQogICAgewogICAgICByZXR1cm4gKHNoID4gb2ggPyBzaCA6IG9oKTsKICAgIH0KCiAgICAvLyBubyBpZGVhIQogICAgcmV0dXJuIDA7CiAgfSwKCiAgc21hbGxlcjogZnVuY3Rpb24gKCkgewogICAgaWYgKHczY19zbGlkeS5zaXplX2luZGV4ID4gMCkKICAgIHsKICAgICAgLS13M2Nfc2xpZHkuc2l6ZV9pbmRleDsKICAgIH0KCiAgICB3M2Nfc2xpZHkudG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgZG9jdW1lbnQuYm9keS5zdHlsZS5mb250U2l6ZSA9IHczY19zbGlkeS5zaXplc1t3M2Nfc2xpZHkuc2l6ZV9pbmRleF07CiAgICB2YXIgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwogICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7dzNjX3NsaWR5LnNob3dfdG9vbGJhcigpOyB9LCA1MCk7CiAgfSwKCiAgYmlnZ2VyOiBmdW5jdGlvbiAoKSB7CiAgICBpZiAodzNjX3NsaWR5LnNpemVfaW5kZXggPCB3M2Nfc2xpZHkuc2l6ZXMubGVuZ3RoIC0gMSkKICAgIHsKICAgICAgKyt3M2Nfc2xpZHkuc2l6ZV9pbmRleDsKICAgIH0KCiAgICB3M2Nfc2xpZHkudG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgZG9jdW1lbnQuYm9keS5zdHlsZS5mb250U2l6ZSA9IHczY19zbGlkeS5zaXplc1t3M2Nfc2xpZHkuc2l6ZV9pbmRleF07CiAgICB2YXIgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwogICAgdzNjX3NsaWR5LmhpZGVfc2xpZGUoc2xpZGUpOwogICAgdzNjX3NsaWR5LnNob3dfc2xpZGUoc2xpZGUpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7dzNjX3NsaWR5LnNob3dfdG9vbGJhcigpOyB9LCA1MCk7CiAgfSwKCiAgLy8gZW5hYmxlcyBjcm9zcyBicm93c2VyIHVzZSBvZiByZWxhdGl2ZSB3aWR0aC9oZWlnaHQKICAvLyBvbiBvYmplY3QgZWxlbWVudHMgZm9yIHVzZSB3aXRoIFNWRyBhbmQgRmxhc2ggbWVkaWEKICAvLyB3aXRoIHRoYW5rcyB0byBJdmFuIEhlcm1hbiBmb3IgdGhlIHN1Z2dlc3Rpb24KICBhZGp1c3Rfb2JqZWN0X2RpbWVuc2lvbnM6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7CiAgICBmb3IoIHZhciBpID0gMDsgaSA8IHczY19zbGlkeS5vYmplY3RzLmxlbmd0aDsgaSsrICkKICAgIHsKICAgICAgdmFyIG9iaiA9IHRoaXMub2JqZWN0c1tpXTsKICAgICAgdmFyIG1pbWVUeXBlID0gb2JqLmdldEF0dHJpYnV0ZSgidHlwZSIpOwoKICAgICAgaWYgKG1pbWVUeXBlID09ICJpbWFnZS9zdmcreG1sIiB8fCBtaW1lVHlwZSA9PSAiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giKQogICAgICB7CiAgICAgICAgaWYgKCAhb2JqLmluaXRpYWxXaWR0aCApIAogICAgICAgICAgb2JqLmluaXRpYWxXaWR0aCA9IG9iai5nZXRBdHRyaWJ1dGUoIndpZHRoIik7CgogICAgICAgIGlmICggIW9iai5pbml0aWFsSGVpZ2h0ICkgCiAgICAgICAgICBvYmouaW5pdGlhbEhlaWdodCA9IG9iai5nZXRBdHRyaWJ1dGUoImhlaWdodCIpOwoKICAgICAgICBpZiAoIG9iai5pbml0aWFsV2lkdGggJiYgb2JqLmluaXRpYWxXaWR0aC5jaGFyQXQob2JqLmluaXRpYWxXaWR0aC5sZW5ndGgtMSkgPT0gIiUiICkKICAgICAgICB7CiAgICAgICAgICB2YXIgdyA9IHBhcnNlSW50KG9iai5pbml0aWFsV2lkdGguc2xpY2UoMCwgb2JqLmluaXRpYWxXaWR0aC5sZW5ndGgtMSkpOwogICAgICAgICAgdmFyIG5ld1cgPSB3aWR0aCAqICh3LzEwMC4wKTsKICAgICAgICAgIG9iai5zZXRBdHRyaWJ1dGUoIndpZHRoIixuZXdXKTsKICAgICAgICB9CgogICAgICAgIGlmICggb2JqLmluaXRpYWxIZWlnaHQgJiYKICAgICAgICAgICAgIG9iai5pbml0aWFsSGVpZ2h0LmNoYXJBdChvYmouaW5pdGlhbEhlaWdodC5sZW5ndGgtMSkgPT0gIiUiICkKICAgICAgICB7CiAgICAgICAgICB2YXIgaCA9IHBhcnNlSW50KG9iai5pbml0aWFsSGVpZ2h0LnNsaWNlKDAsIG9iai5pbml0aWFsSGVpZ2h0Lmxlbmd0aC0xKSk7CiAgICAgICAgICB2YXIgbmV3SCA9IGhlaWdodCAqIChoLzEwMC4wKTsKICAgICAgICAgIG9iai5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIG5ld0gpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCgogIC8vIG5lZWRlZCBmb3IgT3BlcmEgdG8gaW5oaWJpdCBkZWZhdWx0IGJlaGF2aW9yCiAgLy8gc2luY2UgT3BlcmEgZGVsaXZlcnMga2V5UHJlc3MgZXZlbiBpZiBrZXlEb3duCiAgLy8gd2FzIGNhbmNlbGxlZAogIGtleV9wcmVzczogZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBpZiAoIWV2ZW50KQogICAgICBldmVudCA9IHdpbmRvdy5ldmVudDsKCiAgICBpZiAoIXczY19zbGlkeS5rZXlfd2FudGVkKQogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CgogICAgcmV0dXJuIHRydWU7CiAgfSwKCiAgLy8gIFNlZSBlLmcuIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvanMvZXZlbnRzL2tleXMuaHRtbCBmb3Iga2V5Y29kZXMKICBrZXlfZG93bjogZnVuY3Rpb24gKGV2ZW50KSB7CiAgICB2YXIga2V5LCB0YXJnZXQsIHRhZzsKCiAgICB3M2Nfc2xpZHkua2V5X3dhbnRlZCA9IHRydWU7CgogICAgaWYgKCFldmVudCkKICAgICAgZXZlbnQgPSB3aW5kb3cuZXZlbnQ7CgogICAgLy8ga2x1ZGdlIGFyb3VuZCBOUy9JRSBkaWZmZXJlbmNlcyAKICAgIGlmICh3aW5kb3cuZXZlbnQpCiAgICB7CiAgICAgIGtleSA9IHdpbmRvdy5ldmVudC5rZXlDb2RlOwogICAgICB0YXJnZXQgPSB3aW5kb3cuZXZlbnQuc3JjRWxlbWVudDsKICAgIH0KICAgIGVsc2UgaWYgKGV2ZW50LndoaWNoKQogICAgewogICAgICBrZXkgPSBldmVudC53aGljaDsKICAgICAgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0OwogICAgfQogICAgZWxzZQogICAgICByZXR1cm4gdHJ1ZTsgLy8gWWlrZXMhIHVua25vd24gYnJvd3NlcgoKICAgIC8vIGlnbm9yZSBldmVudCBpZiBrZXkgdmFsdWUgaXMgemVybwogICAgLy8gYXMgZm9yIGFsdCBvbiBPcGVyYSBhbmQgS29ucXVlcm9yCiAgICBpZiAoIWtleSkKICAgICAgIHJldHVybiB0cnVlOwoKICAgIC8vIGF2b2lkIGludGVyZmVyaW5nIHdpdGgga2V5c3Ryb2tlCiAgICAvLyBiZWhhdmlvciBmb3Igbm9uLXNsaWR5IGNocm9tZSBlbGVtZW50cwogICAgaWYgKCF3M2Nfc2xpZHkuc2xpZHlfY2hyb21lKHRhcmdldCkgJiYKICAgICAgICB3M2Nfc2xpZHkuc3BlY2lhbF9lbGVtZW50KHRhcmdldCkpCiAgICAgIHJldHVybiB0cnVlOwoKICAgIC8vIGNoZWNrIGZvciBjb25jdXJyZW50IGNvbnRyb2wvY29tbWFuZC9hbHQga2V5CiAgICAvLyBidXQgYXJlIHRoZXNlIG9ubHkgcHJlc2VudCBvbiBtb3VzZSBldmVudHM/CgogICAgaWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm1ldGFLZXkpCiAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAvLyBkaXNtaXNzIHRhYmxlIG9mIGNvbnRlbnRzIGlmIHZpc2libGUKICAgIGlmICh3M2Nfc2xpZHkuaXNfc2hvd25fdG9jKCkgJiYga2V5ICE9IDkgJiYga2V5ICE9IDE2ICYmIGtleSAhPSAzOCAmJiBrZXkgIT0gNDApCiAgICB7CiAgICAgIHczY19zbGlkeS5oaWRlX3RhYmxlX29mX2NvbnRlbnRzKHRydWUpOwoKICAgICAgaWYgKGtleSA9PSAyNyB8fCBrZXkgPT0gODQgfHwga2V5ID09IDY3KQogICAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KCiAgICBpZiAoa2V5ID09IDM0KSAvLyBQYWdlIERvd24KICAgIHsKICAgICAgaWYgKHczY19zbGlkeS52aWV3X2FsbCkKICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAgIHczY19zbGlkeS5uZXh0X3NsaWRlKGZhbHNlKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDMzKSAvLyBQYWdlIFVwCiAgICB7CiAgICAgIGlmICh3M2Nfc2xpZHkudmlld19hbGwpCiAgICAgICAgcmV0dXJuIHRydWU7CgogICAgICB3M2Nfc2xpZHkucHJldmlvdXNfc2xpZGUoZmFsc2UpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMzIpIC8vIHNwYWNlIGJhcgogICAgewogICAgICB3M2Nfc2xpZHkubmV4dF9zbGlkZSh0cnVlKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDM3KSAvLyBMZWZ0IGFycm93CiAgICB7CiAgICAgIHczY19zbGlkeS5wcmV2aW91c19zbGlkZSghZXZlbnQuc2hpZnRLZXkpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMzYpIC8vIEhvbWUKICAgIHsKICAgICAgdzNjX3NsaWR5LmZpcnN0X3NsaWRlKCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSAzNSkgLy8gRW5kCiAgICB7CiAgICAgIHczY19zbGlkeS5sYXN0X3NsaWRlKCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSAzOSkgLy8gUmlnaHQgYXJyb3cKICAgIHsKICAgICAgdzNjX3NsaWR5Lm5leHRfc2xpZGUoIWV2ZW50LnNoaWZ0S2V5KTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDEzKSAvLyBFbnRlcgogICAgewogICAgICBpZiAodzNjX3NsaWR5Lm91dGxpbmUpCiAgICAgIHsKICAgICAgICBpZiAodzNjX3NsaWR5Lm91dGxpbmUudmlzaWJsZSkKICAgICAgICAgIHczY19zbGlkeS5mb2xkKHczY19zbGlkeS5vdXRsaW5lKTsKICAgICAgICBlbHNlCiAgICAgICAgICB3M2Nfc2xpZHkudW5mb2xkKHczY19zbGlkeS5vdXRsaW5lKTsKICAgICAgICAgIAogICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgICB9CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMTg4KSAgLy8gPCBmb3Igc21hbGxlciBmb250cwogICAgewogICAgICB3M2Nfc2xpZHkuc21hbGxlcigpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMTkwKSAgLy8gPiBmb3IgbGFyZ2VyIGZvbnRzCiAgICB7CiAgICAgIHczY19zbGlkeS5iaWdnZXIoKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDE4OSB8fCBrZXkgPT0gMTA5KSAgLy8gLSBmb3Igc21hbGxlciBmb250cwogICAgewogICAgICB3M2Nfc2xpZHkuc21hbGxlcigpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gMTg3IHx8IGtleSA9PSAxOTEgfHwga2V5ID09IDEwNykgIC8vID0gKyAgZm9yIGxhcmdlciBmb250cwogICAgewogICAgICB3M2Nfc2xpZHkuYmlnZ2VyKCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSA4MykgIC8vIFMgZm9yIHNtYWxsZXIgZm9udHMKICAgIHsKICAgICAgdzNjX3NsaWR5LnNtYWxsZXIoKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDY2KSAgLy8gQiBmb3IgbGFyZ2VyIGZvbnRzCiAgICB7CiAgICAgIHczY19zbGlkeS5iaWdnZXIoKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDkwKSAgLy8gWiBmb3IgbGFzdCBzbGlkZQogICAgewogICAgICB3M2Nfc2xpZHkubGFzdF9zbGlkZSgpOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICBlbHNlIGlmIChrZXkgPT0gNzApICAvLyBGIGZvciB0b2dnbGUgdG9vbGJhcgogICAgewogICAgICB3M2Nfc2xpZHkudG9nZ2xlX3Rvb2xiYXIoKTsKICAgICAgcmV0dXJuIHczY19zbGlkeS5jYW5jZWwoZXZlbnQpOwogICAgfQogICAgZWxzZSBpZiAoa2V5ID09IDY1KSAgLy8gQSBmb3IgdG9nZ2xlIHZpZXcgc2luZ2xlL2FsbCBzbGlkZXMKICAgIHsKICAgICAgdzNjX3NsaWR5LnRvZ2dsZV92aWV3KCk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSA3NSkgIC8vIHRvZ2dsZSBhY3Rpb24gb2YgbGVmdCBjbGljayBmb3IgbmV4dCBwYWdlCiAgICB7CiAgICAgIHczY19zbGlkeS5tb3VzZV9jbGlja19lbmFibGVkID0gIXczY19zbGlkeS5tb3VzZV9jbGlja19lbmFibGVkOwogICAgICB2YXIgYWxlcnRfbXNnID0gKHczY19zbGlkeS5tb3VzZV9jbGlja19lbmFibGVkID8KICAgICAgICAgICAgICAgICJlbmFibGVkIiA6ICJkaXNhYmxlZCIpICsgICIgbW91c2UgY2xpY2sgYWR2YW5jZSI7CgogICAgICBhbGVydCh3M2Nfc2xpZHkubG9jYWxpemUoYWxlcnRfbXNnKSk7CiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSA4NCB8fCBrZXkgPT0gNjcpICAvLyBUIG9yIEMgZm9yIHRhYmxlIG9mIGNvbnRlbnRzCiAgICB7CiAgICAgIGlmICh3M2Nfc2xpZHkudG9jKQogICAgICAgIHczY19zbGlkeS50b2dnbGVfdGFibGVfb2ZfY29udGVudHMoKTsKCiAgICAgIHJldHVybiB3M2Nfc2xpZHkuY2FuY2VsKGV2ZW50KTsKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSA3MikgLy8gSCBmb3IgaGVscAogICAgewogICAgICB3aW5kb3cubG9jYXRpb24gPSB3M2Nfc2xpZHkuaGVscF9wYWdlOwogICAgICByZXR1cm4gdzNjX3NsaWR5LmNhbmNlbChldmVudCk7CiAgICB9CiAgICAvL2Vsc2UgYWxlcnQoImtleSBjb2RlIGlzICIrIGtleSk7CgogICAgcmV0dXJuIHRydWU7CiAgfSwKCiAgLy8gc2FmZSBmb3IgYm90aCB0ZXh0L2h0bWwgYW5kIGFwcGxpY2F0aW9uL3hodG1sK3htbAogIGNyZWF0ZV9lbGVtZW50OiBmdW5jdGlvbiAobmFtZSkgewogICAgaWYgKHRoaXMueGh0bWwgJiYgKHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMgIT0gJ3VuZGVmaW5lZCcpKQogICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgbmFtZSkKCiAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKTsKICB9LAoKICBnZXRfZWxlbWVudF9zdHlsZTogZnVuY3Rpb24gKGVsZW0sIElFU3R5bGVQcm9wLCBDU1NTdHlsZVByb3ApIHsKICAgIGlmIChlbGVtLmN1cnJlbnRTdHlsZSkKICAgIHsKICAgICAgcmV0dXJuIGVsZW0uY3VycmVudFN0eWxlW0lFU3R5bGVQcm9wXTsKICAgIH0KICAgIGVsc2UgaWYgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKQogICAgewogICAgICB2YXIgY29tcFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbSwgIiIpOwogICAgICByZXR1cm4gY29tcFN0eWxlLmdldFByb3BlcnR5VmFsdWUoQ1NTU3R5bGVQcm9wKTsKICAgIH0KICAgIHJldHVybiAiIjsKICB9LAoKICAvLyB0aGUgc3RyaW5nIHN0ciBpcyBhIHdoaXRlc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2YgdG9rZW5zCiAgLy8gdGVzdCBpZiBzdHIgY29udGFpbnMgYSBwYXJ0aWN1bGFyIHRva2VuLCBlLmcuICJzbGlkZSIKICBoYXNfdG9rZW46IGZ1bmN0aW9uIChzdHIsIHRva2VuKSB7CiAgICBpZiAoc3RyKQogICAgewogICAgICAvLyBkZWZpbmUgcGF0dGVybiBhcyByZWd1bGFyIGV4cHJlc3Npb24KICAgICAgdmFyIHBhdHRlcm4gPSAvXHcrL2c7CgogICAgICAvLyBjaGVjayBmb3IgbWF0Y2hlcwogICAgICAvLyBwbGFjZSByZXN1bHQgaW4gYXJyYXkKICAgICAgdmFyIHJlc3VsdCA9IHN0ci5tYXRjaChwYXR0ZXJuKTsKCiAgICAgIC8vIG5vdyBjaGVjayBpZiBkZXNpcmVkIHRva2VuIGlzIHByZXNlbnQKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspCiAgICAgIHsKICAgICAgICBpZiAocmVzdWx0W2ldID09IHRva2VuKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZmFsc2U7CiAgfSwKCiAgZ2V0X2NsYXNzX2xpc3Q6IGZ1bmN0aW9uIChlbGVtZW50KSB7CiAgICBpZiAodHlwZW9mIGVsZW1lbnQuY2xhc3NOYW1lICE9ICd1bmRlZmluZWQnKQogICAgICByZXR1cm4gZWxlbWVudC5jbGFzc05hbWU7CgogICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpOwogIH0sCgogIGhhc19jbGFzczogZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUpIHsKICAgIGlmIChlbGVtZW50Lm5vZGVUeXBlICE9IDEpCiAgICAgIHJldHVybiBmYWxzZTsKCiAgICB2YXIgcmVnZXhwID0gbmV3IFJlZ0V4cCgiKF58ICkiICsgbmFtZSArICJcVyoiKTsKCiAgICBpZiAodHlwZW9mIGVsZW1lbnQuY2xhc3NOYW1lICE9ICd1bmRlZmluZWQnKQogICAgICByZXR1cm4gcmVnZXhwLnRlc3QoZWxlbWVudC5jbGFzc05hbWUpOwoKICAgIHJldHVybiByZWdleHAudGVzdChlbGVtZW50LmdldEF0dHJpYnV0ZSgiY2xhc3MiKSk7CiAgfSwKCiAgcmVtb3ZlX2NsYXNzOiBmdW5jdGlvbiAoZWxlbWVudCwgbmFtZSkgewogICAgdmFyIHJlZ2V4cCA9IG5ldyBSZWdFeHAoIihefCApIiArIG5hbWUgKyAiXFcqIik7CiAgICB2YXIgY2xzdmFsID0gIiI7CgogICAgaWYgKHR5cGVvZiBlbGVtZW50LmNsYXNzTmFtZSAhPSAndW5kZWZpbmVkJykKICAgIHsKICAgICAgY2xzdmFsID0gZWxlbWVudC5jbGFzc05hbWU7CgogICAgICBpZiAoY2xzdmFsKQogICAgICB7CiAgICAgICAgY2xzdmFsID0gY2xzdmFsLnJlcGxhY2UocmVnZXhwLCAiIik7CiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBjbHN2YWw7CiAgICAgIH0KICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgY2xzdmFsID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoImNsYXNzIik7CgogICAgICBpZiAoY2xzdmFsKQogICAgICB7CiAgICAgICAgY2xzdmFsID0gY2xzdmFsLnJlcGxhY2UocmVnZXhwLCAiIik7CiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgY2xzdmFsKTsKICAgICAgfQogICAgfQogIH0sCgogIGFkZF9jbGFzczogZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUpIHsKICAgIGlmICghdGhpcy5oYXNfY2xhc3MoZWxlbWVudCwgbmFtZSkpCiAgICB7CiAgICAgIGlmICh0eXBlb2YgZWxlbWVudC5jbGFzc05hbWUgIT0gJ3VuZGVmaW5lZCcpCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgKz0gIiAiICsgbmFtZTsKICAgICAgZWxzZQogICAgICB7CiAgICAgICAgdmFyIGNsc3ZhbCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpOwogICAgICAgIGNsc3ZhbCA9IGNsc3ZhbCA/IGNsc3ZhbCArICIgIiArIG5hbWUgOiBuYW1lOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJjbGFzcyIsIGNsc3ZhbCk7CiAgICAgIH0KICAgIH0KICB9LAoKICAvLyBIVE1MIGVsZW1lbnRzIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCBjbGFzcz0iaW5jcmVtZW50YWwiCiAgLy8gbm90ZSB0aGF0IHlvdSBjYW4gYWxzbyBwdXQgdGhlIGNsYXNzIG9uIGNvbnRhaW5lcnMgbGlrZQogIC8vIHVwLCBvbCwgZGwsIGFuZCBkaXYgdG8gbWFrZSB0aGVpciBjb250ZW50cyBhcHBlYXIKICAvLyBpbmNyZW1lbnRhbGx5LiBVcHBlciBjYXNlIGlzIHVzZWQgc2luY2UgdGhpcyBpcyB3aGF0CiAgLy8gYnJvd3NlcnMgcmVwb3J0IGZvciBIVE1MIG5vZGUgbmFtZXMgKHRleHQvaHRtbCkuCiAgaW5jcmVtZW50YWxfZWxlbWVudHM6IG51bGwsCiAgb2theV9mb3JfaW5jcmVtZW50YWw6IGZ1bmN0aW9uIChuYW1lKSB7CiAgICBpZiAoIXRoaXMuaW5jcmVtZW50YWxfZWxlbWVudHMpCiAgICB7CiAgICAgIHZhciBpbmNsaXN0ID0gbmV3IEFycmF5KCk7CiAgICAgIGluY2xpc3RbInAiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbInByZSJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsibGkiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbImJsb2NrcXVvdGUiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbImR0Il0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJkZCJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsiaDIiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbImgzIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJoNCJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsiaDUiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbImg2Il0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJzcGFuIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJhZGRyZXNzIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJ0YWJsZSJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsidHIiXSA9IHRydWU7CiAgICAgIGluY2xpc3RbInRoIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJ0ZCJdID0gdHJ1ZTsKICAgICAgaW5jbGlzdFsiaW1nIl0gPSB0cnVlOwogICAgICBpbmNsaXN0WyJvYmplY3QiXSA9IHRydWU7CiAgICAgIHRoaXMuaW5jcmVtZW50YWxfZWxlbWVudHMgPSBpbmNsaXN0OwogICAgfQogICAgcmV0dXJuIHRoaXMuaW5jcmVtZW50YWxfZWxlbWVudHNbbmFtZS50b0xvd2VyQ2FzZSgpXTsKICB9LAoKICBuZXh0X2luY3JlbWVudGFsX2l0ZW06IGZ1bmN0aW9uIChub2RlKSB7CiAgICB2YXIgYnIgPSB0aGlzLmlzX3hodG1sID8gImJyIiA6ICJCUiI7CiAgICB2YXIgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwoKICAgIGZvciAoOzspCiAgICB7CiAgICAgIG5vZGUgPSB3M2Nfc2xpZHkubmV4dF9ub2RlKHNsaWRlLCBub2RlKTsKCiAgICAgIGlmIChub2RlID09IG51bGwgfHwgbm9kZS5wYXJlbnROb2RlID09IG51bGwpCiAgICAgICAgYnJlYWs7CgogICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PSAxKSAgLy8gRUxFTUVOVAogICAgICB7CiAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT0gYnIpCiAgICAgICAgICBjb250aW51ZTsKCiAgICAgICAgaWYgKHczY19zbGlkeS5oYXNfY2xhc3Mobm9kZSwgImluY3JlbWVudGFsIikKICAgICAgICAgICAgICYmIHczY19zbGlkeS5va2F5X2Zvcl9pbmNyZW1lbnRhbChub2RlLm5vZGVOYW1lKSkKICAgICAgICAgIHJldHVybiBub2RlOwoKICAgICAgICBpZiAodzNjX3NsaWR5Lmhhc19jbGFzcyhub2RlLnBhcmVudE5vZGUsICJpbmNyZW1lbnRhbCIpCiAgICAgICAgICAgICAmJiAhdzNjX3NsaWR5Lmhhc19jbGFzcyhub2RlLCAibm9uLWluY3JlbWVudGFsIikpCiAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBub2RlOwogIH0sCgogIHByZXZpb3VzX2luY3JlbWVudGFsX2l0ZW06IGZ1bmN0aW9uIChub2RlKSB7CiAgICB2YXIgYnIgPSB0aGlzLmlzX3hodG1sID8gImJyIiA6ICJCUiI7CiAgICB2YXIgc2xpZGUgPSB3M2Nfc2xpZHkuc2xpZGVzW3czY19zbGlkeS5zbGlkZV9udW1iZXJdOwoKICAgIGZvciAoOzspCiAgICB7CiAgICAgIG5vZGUgPSB3M2Nfc2xpZHkucHJldmlvdXNfbm9kZShzbGlkZSwgbm9kZSk7CgogICAgICBpZiAobm9kZSA9PSBudWxsIHx8IG5vZGUucGFyZW50Tm9kZSA9PSBudWxsKQogICAgICAgIGJyZWFrOwoKICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMSkKICAgICAgewogICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09IGJyKQogICAgICAgICAgY29udGludWU7CgogICAgICAgIGlmICh3M2Nfc2xpZHkuaGFzX2NsYXNzKG5vZGUsICJpbmNyZW1lbnRhbCIpCiAgICAgICAgICAgICAmJiB3M2Nfc2xpZHkub2theV9mb3JfaW5jcmVtZW50YWwobm9kZS5ub2RlTmFtZSkpCiAgICAgICAgICByZXR1cm4gbm9kZTsKCiAgICAgICAgaWYgKHczY19zbGlkeS5oYXNfY2xhc3Mobm9kZS5wYXJlbnROb2RlLCAiaW5jcmVtZW50YWwiKQogICAgICAgICAgICAgJiYgIXczY19zbGlkeS5oYXNfY2xhc3Mobm9kZSwgIm5vbi1pbmNyZW1lbnRhbCIpKQogICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gbm9kZTsKICB9LAoKICAvLyBzZXQgdmlzaWJpbGl0eSBmb3IgYWxsIGVsZW1lbnRzIG9uIGN1cnJlbnQgc2xpZGUgd2l0aAogIC8vIGEgcGFyZW50IGVsZW1lbnQgd2l0aCBhdHRyaWJ1dGUgY2xhc3M9ImluY3JlbWVudGFsIgogIHNldF92aXNpYmlsaXR5X2FsbF9pbmNyZW1lbnRhbDogZnVuY3Rpb24gKHZhbHVlKSB7CiAgICB2YXIgbm9kZSA9IHRoaXMubmV4dF9pbmNyZW1lbnRhbF9pdGVtKG51bGwpOwoKICAgIGlmICh2YWx1ZSA9PSAiaGlkZGVuIikKICAgIHsKICAgICAgd2hpbGUgKG5vZGUpCiAgICAgIHsKICAgICAgICB3M2Nfc2xpZHkuYWRkX2NsYXNzKG5vZGUsICJpbnZpc2libGUiKTsKICAgICAgICBub2RlID0gdzNjX3NsaWR5Lm5leHRfaW5jcmVtZW50YWxfaXRlbShub2RlKTsKICAgICAgfQogICAgfQogICAgZWxzZSAvLyB2YWx1ZSA9PSAidmlzaWJsZSIKICAgIHsKICAgICAgd2hpbGUgKG5vZGUpCiAgICAgIHsKICAgICAgICB3M2Nfc2xpZHkucmVtb3ZlX2NsYXNzKG5vZGUsICJpbnZpc2libGUiKTsKICAgICAgICBub2RlID0gdzNjX3NsaWR5Lm5leHRfaW5jcmVtZW50YWxfaXRlbShub2RlKTsKICAgICAgfQogICAgfQogIH0sCgogIC8vIHJldmVhbCB0aGUgbmV4dCBoaWRkZW4gaXRlbSBvbiB0aGUgc2xpZGUKICAvLyBub2RlIGlzIG51bGwgb3IgdGhlIG5vZGUgdGhhdCB3YXMgbGFzdCByZXZlYWxlZAogIHJldmVhbF9uZXh0X2l0ZW06IGZ1bmN0aW9uIChub2RlKSB7CiAgICBub2RlID0gdzNjX3NsaWR5Lm5leHRfaW5jcmVtZW50YWxfaXRlbShub2RlKTsKCiAgICBpZiAobm9kZSAmJiBub2RlLm5vZGVUeXBlID09IDEpICAvLyBhbiBlbGVtZW50CiAgICAgIHczY19zbGlkeS5yZW1vdmVfY2xhc3Mobm9kZSwgImludmlzaWJsZSIpOwoKICAgIHJldHVybiBub2RlOwogIH0sCgogIC8vIGV4YWN0IGludmVyc2Ugb2YgcmV2ZWFsTmV4dEl0ZW0obm9kZSkKICBoaWRlX3ByZXZpb3VzX2l0ZW06IGZ1bmN0aW9uIChub2RlKSB7CiAgICBpZiAobm9kZSAmJiBub2RlLm5vZGVUeXBlID09IDEpICAvLyBhbiBlbGVtZW50CiAgICAgIHczY19zbGlkeS5hZGRfY2xhc3Mobm9kZSwgImludmlzaWJsZSIpOwoKICAgIHJldHVybiB0aGlzLnByZXZpb3VzX2luY3JlbWVudGFsX2l0ZW0obm9kZSk7CiAgfSwKCiAgLy8gbGVmdCB0byByaWdodCB0cmF2ZXJzYWwgb2Ygcm9vdCdzIGNvbnRlbnQKICBuZXh0X25vZGU6IGZ1bmN0aW9uIChyb290LCBub2RlKSB7CiAgICBpZiAobm9kZSA9PSBudWxsKQogICAgICByZXR1cm4gcm9vdC5maXJzdENoaWxkOwoKICAgIGlmIChub2RlLmZpcnN0Q2hpbGQpCiAgICAgIHJldHVybiBub2RlLmZpcnN0Q2hpbGQ7CgogICAgaWYgKG5vZGUubmV4dFNpYmxpbmcpCiAgICAgIHJldHVybiBub2RlLm5leHRTaWJsaW5nOwoKICAgIGZvciAoOzspCiAgICB7CiAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7CgogICAgICBpZiAoIW5vZGUgfHwgbm9kZSA9PSByb290KQogICAgICAgIGJyZWFrOwoKICAgICAgaWYgKG5vZGUgJiYgbm9kZS5uZXh0U2libGluZykKICAgICAgICByZXR1cm4gbm9kZS5uZXh0U2libGluZzsKICAgIH0KCiAgICByZXR1cm4gbnVsbDsKICB9LAoKICAvLyByaWdodCB0byBsZWZ0IHRyYXZlcnNhbCBvZiByb290J3MgY29udGVudAogIHByZXZpb3VzX25vZGU6IGZ1bmN0aW9uIChyb290LCBub2RlKSB7CiAgICBpZiAobm9kZSA9PSBudWxsKQogICAgewogICAgICBub2RlID0gcm9vdC5sYXN0Q2hpbGQ7CgogICAgICBpZiAobm9kZSkKICAgICAgewogICAgICAgIHdoaWxlIChub2RlLmxhc3RDaGlsZCkKICAgICAgICAgIG5vZGUgPSBub2RlLmxhc3RDaGlsZDsKICAgICAgfQoKICAgICAgcmV0dXJuIG5vZGU7CiAgICB9CgogICAgaWYgKG5vZGUucHJldmlvdXNTaWJsaW5nKQogICAgewogICAgICBub2RlID0gbm9kZS5wcmV2aW91c1NpYmxpbmc7CgogICAgICB3aGlsZSAobm9kZS5sYXN0Q2hpbGQpCiAgICAgICAgbm9kZSA9IG5vZGUubGFzdENoaWxkOwoKICAgICAgcmV0dXJuIG5vZGU7CiAgICB9CgogICAgaWYgKG5vZGUucGFyZW50Tm9kZSAhPSByb290KQogICAgICByZXR1cm4gbm9kZS5wYXJlbnROb2RlOwoKICAgIHJldHVybiBudWxsOwogIH0sCgogIHByZXZpb3VzX3NpYmxpbmdfZWxlbWVudDogZnVuY3Rpb24gKGVsKSB7CiAgICBlbCA9IGVsLnByZXZpb3VzU2libGluZzsKCiAgICB3aGlsZSAoZWwgJiYgZWwubm9kZVR5cGUgIT0gMSkKICAgICAgZWwgPSBlbC5wcmV2aW91c1NpYmxpbmc7CgogICAgcmV0dXJuIGVsOwogIH0sCgogIG5leHRfc2libGluZ19lbGVtZW50OiBmdW5jdGlvbiAoZWwpIHsKICAgIGVsID0gZWwubmV4dFNpYmxpbmc7CgogICAgd2hpbGUgKGVsICYmIGVsLm5vZGVUeXBlICE9IDEpCiAgICAgIGVsID0gZWwubmV4dFNpYmxpbmc7CgogICAgcmV0dXJuIGVsOwogIH0sCgogIGZpcnN0X2NoaWxkX2VsZW1lbnQ6IGZ1bmN0aW9uIChlbCkgewogICAgdmFyIG5vZGU7CgogICAgZm9yIChub2RlID0gZWwuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcpCiAgICB7CiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDEpCiAgICAgICAgYnJlYWs7CiAgICB9CgogICAgcmV0dXJuIG5vZGU7CiAgfSwKCiAgZmlyc3RfdGFnOiBmdW5jdGlvbiAoZWxlbWVudCwgdGFnKSB7CiAgICB2YXIgbm9kZTsKCiAgICBpZiAoIXRoaXMuaXNfeGh0bWwpCiAgICAgIHRhZyA9IHRhZy50b1VwcGVyQ2FzZSgpOwoKICAgIGZvciAobm9kZSA9IGVsZW1lbnQuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcpCiAgICB7CiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IDEgJiYgbm9kZS5ub2RlTmFtZSA9PSB0YWcpCiAgICAgICAgYnJlYWs7CiAgICB9CgogICAgcmV0dXJuIG5vZGU7CiAgfSwKCiAgaGlkZV9zZWxlY3Rpb246IGZ1bmN0aW9uICgpIHsKICAgIGlmICh3aW5kb3cuZ2V0U2VsZWN0aW9uKSAvLyBGaXJlZm94LCBDaHJvbWl1bSwgU2FmYXJpLCBPcGVyYQogICAgewogICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwoKICAgICAgaWYgKHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkKICAgICAgewogICAgICAgIHZhciByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApOwogICAgICAgIHJhbmdlLmNvbGxhcHNlIChmYWxzZSk7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgLy8gSW50ZXJuZXQgRXhwbG9yZXIKICAgIHsKICAgICAgdmFyIHRleHRSYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSAoKTsKICAgICAgdGV4dFJhbmdlLmNvbGxhcHNlIChmYWxzZSk7CiAgICB9CiAgfSwKCiAgZ2V0X3NlbGVjdGVkX3RleHQ6IGZ1bmN0aW9uICgpIHsKICAgIHRyeQogICAgewogICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikKICAgICAgICByZXR1cm4gd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CgogICAgICBpZiAoZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKQogICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwoKICAgICAgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikKICAgICAgICByZXR1cm4gZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCkudGV4dDsKICAgIH0KICAgIGNhdGNoIChlKQogICAgewogICAgfQoKICAgIHJldHVybiAiIjsKICB9LAoKICAvLyBtYWtlIG5vdGUgb2YgbGVuZ3RoIG9mIHNlbGVjdGVkIHRleHQKICAvLyBhcyB0aGlzIGV2YWx1YXRlcyB0byB6ZXJvIGluIGNsaWNrIGV2ZW50CiAgbW91c2VfYnV0dG9uX3VwOiBmdW5jdGlvbiAoZSkgewogICAgdzNjX3NsaWR5LnNlbGVjdGVkX3RleHRfbGVuID0gdzNjX3NsaWR5LmdldF9zZWxlY3RlZF90ZXh0KCkubGVuZ3RoOwogIH0sCgogIG1vdXNlX2J1dHRvbl9kb3duOiBmdW5jdGlvbiAoZSkgewogICAgdzNjX3NsaWR5LnNlbGVjdGVkX3RleHRfbGVuID0gdzNjX3NsaWR5LmdldF9zZWxlY3RlZF90ZXh0KCkubGVuZ3RoOwogICAgdzNjX3NsaWR5Lm1vdXNlX3ggPSBlLmNsaWVudFg7CiAgICB3M2Nfc2xpZHkubW91c2VfeSA9IGUuY2xpZW50WTsKICB9LAoKICAvLyByaWdodCBtb3VzZSBidXR0b24gY2xpY2sgaXMgcmVzZXJ2ZWQgZm9yIGNvbnRleHQgbWVudXMKICAvLyBpdCBpcyBtb3JlIHJlbGlhYmxlIHRvIGRldGVjdCByaWdodGNsaWNrIHRoYW4gbGVmdGNsaWNrCiAgbW91c2VfYnV0dG9uX2NsaWNrOiBmdW5jdGlvbiAoZSkgewogICAgaWYgKCFlKQogICAgICB2YXIgZSA9IHdpbmRvdy5ldmVudDsKCiAgICBpZiAoTWF0aC5hYnMoZS5jbGllbnRYIC13M2Nfc2xpZHkubW91c2VfeCkgKwogICAgICAgIE1hdGguYWJzKGUuY2xpZW50WSAtdzNjX3NsaWR5Lm1vdXNlX3kpID4gMTApCiAgICAgIHJldHVybiB0cnVlOwoKICAgIGlmICh3M2Nfc2xpZHkuc2VsZWN0ZWRfdGV4dF9sZW4gPiAwKQogICAgICByZXR1cm4gdHJ1ZTsKCiAgICB2YXIgcmlnaHRjbGljayA9IGZhbHNlOwogICAgdmFyIGxlZnRjbGljayA9IGZhbHNlOwogICAgdmFyIG1pZGRsZWNsaWNrID0gZmFsc2U7CiAgICB2YXIgdGFyZ2V0OwoKICAgIGlmICghZSkKICAgICAgdmFyIGUgPSB3aW5kb3cuZXZlbnQ7CgogICAgaWYgKGUudGFyZ2V0KQogICAgICB0YXJnZXQgPSBlLnRhcmdldDsKICAgIGVsc2UgaWYgKGUuc3JjRWxlbWVudCkKICAgICAgdGFyZ2V0ID0gZS5zcmNFbGVtZW50OwoKICAgIC8vIHdvcmsgYXJvdW5kIFNhZmFyaSBidWcKICAgIGlmICh0YXJnZXQubm9kZVR5cGUgPT0gMykKICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudE5vZGU7CgogICAgaWYgKGUud2hpY2gpIC8vIGFsbCBicm93c2VycyBleGNlcHQgSUUKICAgIHsKICAgICAgbGVmdGNsaWNrID0gKGUud2hpY2ggPT0gMSk7CiAgICAgIG1pZGRsZWNsaWNrID0gKGUud2hpY2ggPT0gMik7CiAgICAgIHJpZ2h0Y2xpY2sgPSAoZS53aGljaCA9PSAzKTsKICAgIH0KICAgIGVsc2UgaWYgKGUuYnV0dG9uKQogICAgewogICAgICAvLyBLb25xdWVyb3IgZ2l2ZXMgMSBmb3IgbGVmdCwgNCBmb3IgbWlkZGxlCiAgICAgIC8vIElFNiBnaXZlcyAwIGZvciBsZWZ0IGFuZCBub3QgMSBhcyBJIGV4cGVjdGVkCgogICAgICBpZiAoZS5idXR0b24gPT0gNCkKICAgICAgICBtaWRkbGVjbGljayA9IHRydWU7CgogICAgICAvLyBhbGwgYnJvd3NlcnMgYWdyZWUgb24gMiBmb3IgcmlnaHQgYnV0dG9uCiAgICAgIHJpZ2h0Y2xpY2sgPSAoZS5idXR0b24gPT0gMik7CiAgICB9CiAgICBlbHNlCiAgICAgIGxlZnRjbGljayA9IHRydWU7CgogICAgaWYgKHczY19zbGlkeS5zZWxlY3RlZF90ZXh0X2xlbiA+IDApCiAgICB7CiAgICAgIHczY19zbGlkeS5zdG9wX3Byb3BhZ2F0aW9uKGUpOwogICAgICBlLmNhbmNlbCA9IHRydWU7CiAgICAgIGUucmV0dXJuVmFsdWUgPSBmYWxzZTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vIGRpc21pc3MgdGFibGUgb2YgY29udGVudHMKICAgIHczY19zbGlkeS5oaWRlX3RhYmxlX29mX2NvbnRlbnRzKGZhbHNlKTsKCiAgICAvLyBjaGVjayBpZiB0YXJnZXQgaXMgc29tZXRoaW5nIHRoYXQgcHJvYmFibHkgd2FudCdzIGNsaWNrcwogICAgLy8gZS5nLiBhLCBlbWJlZCwgb2JqZWN0LCBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgb3B0aW9uCiAgICB2YXIgdGFnID0gdGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7CgogICAgaWYgKHczY19zbGlkeS5tb3VzZV9jbGlja19lbmFibGVkICYmIGxlZnRjbGljayAmJgogICAgICAgICF3M2Nfc2xpZHkuc3BlY2lhbF9lbGVtZW50KHRhcmdldCkgJiYKICAgICAgICAhdGFyZ2V0Lm9uY2xpY2spCiAgICB7CiAgICAgIHczY19zbGlkeS5uZXh0X3NsaWRlKHRydWUpOwogICAgICB3M2Nfc2xpZHkuc3RvcF9wcm9wYWdhdGlvbihlKTsKICAgICAgZS5jYW5jZWwgPSB0cnVlOwogICAgICBlLnJldHVyblZhbHVlID0gZmFsc2U7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICByZXR1cm4gdHJ1ZTsKICB9LAoKICBzcGVjaWFsX2VsZW1lbnQ6IGZ1bmN0aW9uIChlbGVtZW50KSB7CiAgICBpZiAodGhpcy5oYXNfY2xhc3MoZWxlbWVudCwgIm5vbi1pbnRlcmFjdGl2ZSIpKQogICAgICByZXR1cm4gZmFsc2U7CgogICAgdmFyIHRhZyA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsKCiAgICByZXR1cm4gZWxlbWVudC5vbmtleWRvd24gfHwKICAgICAgZWxlbWVudC5vbmNsaWNrIHx8CiAgICAgIHRhZyA9PSAiYSIgfHwKICAgICAgdGFnID09ICJlbWJlZCIgfHwKICAgICAgdGFnID09ICJvYmplY3QiIHx8CiAgICAgIHRhZyA9PSAidmlkZW8iIHx8CiAgICAgIHRhZyA9PSAiYXVkaW8iIHx8CiAgICAgIHRhZyA9PSAic3ZnIiB8fAogICAgICB0YWcgPT0gImNhbnZhcyIgfHwKICAgICAgdGFnID09ICJpbnB1dCIgfHwKICAgICAgdGFnID09ICJ0ZXh0YXJlYSIgfHwKICAgICAgdGFnID09ICJzZWxlY3QiIHx8CiAgICAgIHRhZyA9PSAib3B0aW9uIjsKICB9LAoKICBzbGlkeV9jaHJvbWU6IGZ1bmN0aW9uIChlbCkgewogICAgd2hpbGUgKGVsKQogICAgewogICAgICBpZiAoZWwgPT0gdzNjX3NsaWR5LnRvYyB8fAogICAgICAgICAgZWwgPT0gdzNjX3NsaWR5LnRvb2xiYXIgfHwKICAgICAgICAgIHczY19zbGlkeS5oYXNfY2xhc3MoZWwsICJvdXRsaW5lIikpCiAgICAgICAgcmV0dXJuIHRydWU7CgogICAgICBlbCA9IGVsLnBhcmVudE5vZGU7CiAgICB9CgogICAgcmV0dXJuIGZhbHNlOwogIH0sCgogIGdldF9rZXk6IGZ1bmN0aW9uIChlKQogIHsKICAgIHZhciBrZXk7CgogICAgLy8ga2x1ZGdlIGFyb3VuZCBOUy9JRSBkaWZmZXJlbmNlcyAKICAgIGlmICh0eXBlb2Ygd2luZG93LmV2ZW50ICE9ICJ1bmRlZmluZWQiKQogICAgICBrZXkgPSB3aW5kb3cuZXZlbnQua2V5Q29kZTsKICAgIGVsc2UgaWYgKGUud2hpY2gpCiAgICAgIGtleSA9IGUud2hpY2g7CgogICAgcmV0dXJuIGtleTsKICB9LAoKICBnZXRfdGFyZ2V0OiBmdW5jdGlvbiAoZSkgewogICAgdmFyIHRhcmdldDsKCiAgICBpZiAoIWUpCiAgICAgIGUgPSB3aW5kb3cuZXZlbnQ7CgogICAgaWYgKGUudGFyZ2V0KQogICAgICB0YXJnZXQgPSBlLnRhcmdldDsKICAgIGVsc2UgaWYgKGUuc3JjRWxlbWVudCkKICAgICAgdGFyZ2V0ID0gZS5zcmNFbGVtZW50OwoKICAgIGlmICh0YXJnZXQubm9kZVR5cGUgIT0gMSkKICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudE5vZGU7CgogICAgcmV0dXJuIHRhcmdldDsKICB9LAoKICAvLyBkb2VzIGRpc3BsYXkgcHJvcGVydHkgcHJvdmlkZSBjb3JyZWN0IGRlZmF1bHRzPwogIGlzX2Jsb2NrOiBmdW5jdGlvbiAoZWxlbSkgewogICAgdmFyIHRhZyA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsKCiAgICByZXR1cm4gdGFnID09ICJvbCIgfHwgdGFnID09ICJ1bCIgfHwgdGFnID09ICJwIiB8fCB0YWcgPT0gImRsIiB8fAogICAgICAgICAgIHRhZyA9PSAibGkiIHx8IHRhZyA9PSAidGFibGUiIHx8IHRhZyA9PSAicHJlIiB8fAogICAgICAgICAgIHRhZyA9PSAiaDEiIHx8IHRhZyA9PSAiaDIiIHx8IHRhZyA9PSAiaDMiIHx8CiAgICAgICAgICAgdGFnID09ICJoNCIgfHwgdGFnID09ICJoNSIgfHwgdGFnID09ICJoNiIgfHwKICAgICAgICAgICB0YWcgPT0gImJsb2NrcXVvdGUiIHx8IHRhZyA9PSAiYWRkcmVzcyI7IAogIH0sCgogIGFkZF9saXN0ZW5lcjogZnVuY3Rpb24gKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyKSB7CiAgICBpZiAod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpCiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgaGFuZGxlciwgZmFsc2UpOwogICAgZWxzZQogICAgICBlbGVtZW50LmF0dGFjaEV2ZW50KCJvbiIrZXZlbnQsIGhhbmRsZXIpOwogIH0sCgogIC8vIHVzZWQgdG8gcHJldmVudCBldmVudCBwcm9wYWdhdGlvbiBmcm9tIGZpZWxkIGNvbnRyb2xzCiAgc3RvcF9wcm9wYWdhdGlvbjogZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBldmVudCA9IGV2ZW50ID8gZXZlbnQgOiB3aW5kb3cuZXZlbnQ7CiAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlOyAgLy8gZm9yIElFCgogICAgaWYgKGV2ZW50LnN0b3BQcm9wYWdhdGlvbikKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CgogICAgcmV0dXJuIHRydWU7CiAgfSwKCiAgY2FuY2VsOiBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIGlmIChldmVudCkKICAgIHsKICAgICAgIGV2ZW50LmNhbmNlbCA9IHRydWU7CiAgICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwoKICAgICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KQogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICB9CgogICAgdzNjX3NsaWR5LmtleV93YW50ZWQgPSBmYWxzZTsKICAgIHJldHVybiBmYWxzZTsKICB9LAoKLy8gZm9yIGVhY2ggbGFuZ3VhZ2UgZGVmaW5lIGFuIGFzc29jaWF0aXZlIGFycmF5Ci8vIGFuZCBhbHNvIHRoZSBoZWxwIHRleHQgd2hpY2ggaXMgbG9uZ2VyCgogIHN0cmluZ3NfZXM6IHsKICAgICJzbGlkZSI6InDDoWcuIiwKICAgICJoZWxwPyI6IkF5dWRhIiwKICAgICJjb250ZW50cz8iOiLDjW5kaWNlIiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6InRhYmxhIGRlIGNvbnRlbmlkb3MiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoiVGFibGEgZGUgQ29udGVuaWRvcyIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiJSZWluaWNpYXIgcHJlc2VudGFjacOzbiIsCiAgICAicmVzdGFydD8iOiJJbmljaW8iCiAgfSwKICBoZWxwX2VzOgogICAgIlV0aWxpY2UgZWwgcmF0w7NuLCBiYXJyYSBlc3BhY2lhZG9yYSwgdGVjbGFzIEl6ZGEvRGNoYSwgIiArCiAgICAibyBSZSBww6FnIHkgQXYgcMOhZy4gVXNlIFMgeSBCIHBhcmEgY2FtYmlhciBlbCB0YW1hw7FvIGRlIGZ1ZW50ZS4iLAoKICBzdHJpbmdzX2NhOiB7CiAgICAic2xpZGUiOiJww6BnLi4iLAogICAgImhlbHA/IjoiQWp1ZGEiLAogICAgImNvbnRlbnRzPyI6IsONbmRleCIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiJ0YXVsYSBkZSBjb250aW5ndXRzIiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6IlRhdWxhIGRlIENvbnRpbmd1dHMiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoiUmVpbmljaWFyIHByZXNlbnRhY2nDsyIsCiAgICAicmVzdGFydD8iOiJJbmljaSIKICB9LAogIGhlbHBfY2E6CiAgICAiVXRpbGl0emkgZWwgcmF0b2zDrSwgYmFycmEgZXNwYWlhZG9yYSwgdGVjbGVzIEVzcS4vRHRhLiAiICsKICAgICJvIFJlIHDDoGcgeSBBdiBww6BnLiBVc2kgUyBpIEIgcGVyIGNhbnZpYXIgZ3JhbmTDoHJpYSBkZSBmb250LiIsCgogIHN0cmluZ3NfY3M6IHsKICAgICJzbGlkZSI6InNuw61tZWsiLAogICAgImhlbHA/IjoibsOhcG92xJtkYSIsCiAgICAiY29udGVudHM/Ijoib2JzYWgiLAogICAgInRhYmxlIG9mIGNvbnRlbnRzIjoib2JzYWggcHJlemVudGFjZSIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiJPYnNhaCBwcmV6ZW50YWNlIiwKICAgICJyZXN0YXJ0IHByZXNlbnRhdGlvbiI6Inpub3Z1IHNwdXN0aXQgcHJlemVudGFjaSIsCiAgICAicmVzdGFydD8iOiJyZXN0YXJ0IgogIH0sCiAgaGVscF9jczoKICAgICJQcmV6ZW50YWNpIG3Fr8W+ZXRlIHByb2Now6F6ZXQgcG9tb2PDrSBrbGlrbnV0w60gbXnFoWksIG1lemVybsOta3UsICIgKwogICAgIsWhaXBlayB2bGV2byBhIHZwcmF2byBuZWJvIGtsw6F2ZXMgUGFnZVVwIGEgUGFnZURvd24uIFDDrXNtbyBzZSAiICsKICAgICJkw6EgenbEm3TFoWl0IGEgem1lbsWhaXQgcG9tb2PDrSBrbMOhdmVzIEIgYSBTLiIsCgogIHN0cmluZ3Nfbmw6IHsKICAgICJzbGlkZSI6InBhZ2luYSIsCiAgICAiaGVscD8iOiJIZWxwPyIsCiAgICAiY29udGVudHM/IjoiSW5ob3VkPyIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiJpbmhvdWRzb3BnYXZlIiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6IkluaG91ZHNvcGdhdmUiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoiaGVyc3RhcnQgcHJlc2VudGF0aWUiLAogICAgInJlc3RhcnQ/IjoiSGVyc3RhcnQ/IgogIH0sCiAgaGVscF9ubDoKICAgICAiTmF2aWdlZXIgZC5tLnYuIGhldCBtdWlzLCBzcGF0aWViYXIsIExpbmtzL1JlY2h0cyB0b2V0c2VuLCAiICsKICAgICAib2YgUGdVcCBlbiBQZ0RuLiBHZWJydWlrIFMgZW4gQiBvbSBkZSBrYXJha3Rlcmdyb290dGUgdGUgdmVyYW5kZXJlbi4iLAoKICBzdHJpbmdzX2RlOiB7CiAgICAic2xpZGUiOiJTZWl0ZSIsCiAgICAiaGVscD8iOiJIaWxmZSIsCiAgICAiY29udGVudHM/Ijoiw5xiZXJzaWNodCIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiJJbmhhbHRzdmVyemVpY2huaXMiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoiSW5oYWx0c3ZlcnplaWNobmlzIiwKICAgICJyZXN0YXJ0IHByZXNlbnRhdGlvbiI6IlByw6RzZW50YXRpb24gbmV1IHN0YXJ0ZW4iLAogICAgInJlc3RhcnQ/IjoiTmV1c3RhcnQiCiAgfSwKICBoZWxwX2RlOgogICAgIkJlbnV0emVuIFNpZSBkaWUgTWF1cywgTGVlcnNjaGxhZywgZGllIEN1cnNvcnRhc3RlbiBsaW5rcy9yZWNodHMgb2RlciAiICsKICAgICJQYWdlIHVwL1BhZ2UgRG93biB6dW0gV2VjaHNlbG4gZGVyIFNlaXRlbiB1bmQgUyB1bmQgQiBmw7xyIGRpZSBTY2hyaWZ0Z3LDtnNzZS4iLAoKICBzdHJpbmdzX3BsOiB7CiAgICAic2xpZGUiOiJzbGFqZCIsCiAgICAiaGVscD8iOiJwb21vYz8iLAogICAgImNvbnRlbnRzPyI6InNwaXMgdHJlxZtjaT8iLAogICAgInRhYmxlIG9mIGNvbnRlbnRzIjoic3BpcyB0cmXFm2NpIiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6IlNwaXMgVHJlxZtjaSIsCiAgICAicmVzdGFydCBwcmVzZW50YXRpb24iOiJSZXN0YXJ0dWogcHJlemVudGFjasSZIiwKICAgICJyZXN0YXJ0PyI6InJlc3RhcnQ/IgogIH0sCiAgaGVscF9wbDoKICAgICJabWllbmlhaiBzbGFqZHkga2xpa2FqxIVjIG15c3rEhSwgbmFjaXNrYWrEhWMgc3BhY2rEmSwgc3RyemHFgmtpIGxld28vcHJhd28iICsKICAgICJsdWIgUGdVcCAvIFBnRG4uIFXFvHlqIGtsYXdpc3p5IFMgaSBCLCBhYnkgem1pZW5pxIcgcm96bWlhciBjemN6aW9ua2kuIiwKCiAgc3RyaW5nc19mcjogewogICAgInNsaWRlIjoicGFnZSIsCiAgICAiaGVscD8iOiJBaWRlIiwKICAgICJjb250ZW50cz8iOiJJbmRleCIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiJ0YWJsZSBkZXMgbWF0acOocmVzIiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6IlRhYmxlIGRlcyBtYXRpw6hyZXMiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoiUmVjb21tZW5jZXIgbCdleHBvc8OpIiwKICAgICJyZXN0YXJ0PyI6IkTDqWJ1dCIKICB9LAogIGhlbHBfZnI6CiAgICAiTmF2aWd1ZXogYXZlYyBsYSBzb3VyaXMsIGxhIGJhcnJlIGQnZXNwYWNlLCBsZXMgZmzDqGNoZXMgIiArCiAgICAiZ2F1Y2hlL2Ryb2l0ZSBvdSBsZXMgdG91Y2hlcyBQZyBVcCwgUGcgRG4uIFV0aWxpc2V6ICIgKwogICAgImxlcyB0b3VjaGVzIFMgZXQgQiBwb3VyIG1vZGlmaWVyIGxhIHRhaWxsZSBkZSBsYSBwb2xpY2UuIiwKCiAgc3RyaW5nc19odTogewogICAgInNsaWRlIjoib2xkYWwiLAogICAgImhlbHA/Ijoic2Vnw610c8OpZyIsCiAgICAiY29udGVudHM/IjoidGFydGFsb20iLAogICAgInRhYmxlIG9mIGNvbnRlbnRzIjoidGFydGFsb21qZWd5esOpayIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiJUYXJ0YWxvbWplZ3l6w6lrIiwKICAgICJyZXN0YXJ0IHByZXNlbnRhdGlvbiI6ImJlbXV0YXTDsyDDumpyYWluZMOtdMOhc2EiLAogICAgInJlc3RhcnQ/Ijoiw7pqcmFpbmTDrXTDoXMiCiAgfSwKICBoZWxwX2h1OgogICAgIkF6IG9sZGFsYWsga8O2enRpIGzDqXBrZWTDqXNoZXoga2F0dGludHNvbiBheiBlZ8OpcnJlbCwgdmFneSAiICsKICAgICJoYXN6bsOhbGphIGEgc3rDs2vDtnosIGEgYmFsLCB2YWd5IGEgam9iYiBuecOtbCwgaWxsZXR2ZSBhIFBhZ2UgRG93biwgIiArCiAgICAiUGFnZSBVcCBiaWxsZW50ecWxa2V0LiBBeiBTIMOpcyBhIEIgYmlsbGVudHnFsWtrZWwgdsOhbHRvenRhdGhhdGphICIgKwogICAgImEgc3rDtnZlZyBtw6lyZXTDqXQuIiwKCiAgc3RyaW5nc19pdDogewogICAgInNsaWRlIjoicGFnLiIsCiAgICAiaGVscD8iOiJBaXV0byIsCiAgICAiY29udGVudHM/IjoiSW5kaWNlIiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6ImluZGljZSIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiJJbmRpY2UiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoiUmljb21pbmNpYXJlIGxhIHByZXNlbnRhemlvbmUiLAogICAgInJlc3RhcnQ/IjoiSW5pemlvIgogIH0sCiAgaGVscF9pdDoKICAgICJOYXZpZ2FyZSBjb24gbW91c2UsIGJhcnJhIHNwYXppbywgZnJlY2NlIHNpbmlzdHJhL2Rlc3RyYSBvICIgKwogICAgIlBnVXAgZSBQZ0RuLiBVc2FyZSBTIGUgQiBwZXIgY2FtYmlhcmUgbGEgZGltZW5zaW9uZSBkZWkgY2FyYXR0ZXJpLiIsCgogIHN0cmluZ3NfZWw6IHsKICAgICJzbGlkZSI6Is+DzrXOu86vzrTOsSIsCiAgICAiaGVscD8iOiLOss6/zq7OuM61zrnOsTsiLAogICAgImNvbnRlbnRzPyI6Is+AzrXPgc65zrXPh8+MzrzOtc69zrE7IiwKICAgICJ0YWJsZSBvZiBjb250ZW50cyI6Is+Azq/Ovc6xzrrOsc+CIM+AzrXPgc65zrXPh86/zrzOrc69z4nOvSIsCiAgICAiVGFibGUgb2YgQ29udGVudHMiOiLOoM6vzr3Osc66zrHPgiDOoM61z4HOuc61z4fOv868zq3Ovc+Jzr0iLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoizrXPgM6xzr3Otc66zrrOr869zrfPg863IM+AzrHPgc6/z4XPg86vzrHPg863z4IiLAogICAgInJlc3RhcnQ/IjoizrXPgM6xzr3Otc66zrrOr869zrfPg863OyIKICB9LAogIGhlbHBfZWw6CiAgICAizqDOu86/zrfOs863zrjOtc6vz4TOtSDOvM61IM+Ezr8gzrrOu86vzrogz4TOv8+FIM+Azr/Ovc+EzrnOus65zr/PjSwgz4TOvyBzcGFjZSwgz4TOsSDOss6tzrvOtyDOsc+BzrnPg8+EzrXPgc6sL860zrXOvs65zqwsICIgKwogICAgIs6uIFBhZ2UgVXAgzrrOsc65IFBhZ2UgRG93bi4gzqfPgc63z4POuc68zr/PgM6/zrnOrs+Dz4TOtSDPhM6xIM+AzrvOrs66z4TPgc6xIFMgzrrOsc65IEIgzrPOuc6xIM69zrEgzrHOu867zqzOvs61z4TOtSAiICsKICAgICLPhM6/IM68zq3Os861zrjOv8+CIM+EzrfPgiDOs8+BzrHOvM68zrHPhM6/z4POtc65z4HOrM+CLiIsCgogIHN0cmluZ3NfamE6IHsKICAgICJzbGlkZSI6IuOCueODqeOCpOODiSIsCiAgICAiaGVscD8iOiLjg5jjg6vjg5ciLAogICAgImNvbnRlbnRzPyI6IuebruasoSIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiLnm67mrKHjgpLooajnpLoiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoi55uu5qyhIiwKICAgICJyZXN0YXJ0IHByZXNlbnRhdGlvbiI6IuacgOWIneOBi+OCieWGjeeUnyIsCiAgICAicmVzdGFydD8iOiLmnIDliJ3jgYvjgokiCiAgfSwKICBoZWxwX2phOgogICAgICLjg57jgqbjgrnlt6bjgq/jg6rjg4Pjgq8g44O7IOOCueODmuODvOOCuSDjg7sg5bem5Y+z44Kt44O8ICIgKwogICAgICLjgb7jgZ/jga8gUGFnZSBVcCDjg7sgUGFnZSBEb3du44Gn5pON5L2c77yMIFMg44O7IELjgafjg5Xjgqnjg7Pjg4jjgrXjgqTjgrrlpInmm7QiLAoKICBzdHJpbmdzX3poOiB7CiAgICAic2xpZGUiOiLlubvnga/niYciLAogICAgImhlbHA/Ijoi5biu5YqpPyIsCiAgICAiY29udGVudHM/Ijoi5YaF5a65PyIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiLnm67lvZUiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoi55uu5b2VIiwKICAgICJyZXN0YXJ0IHByZXNlbnRhdGlvbiI6IumHjeaWsOWQr+WKqOWxleekuiIsCiAgICAicmVzdGFydD8iOiLph43mlrDlkK/liqg/IgogIH0sCiAgaGVscF96aDoKICAgICLnlKjpvKDmoIfngrnlh7ssIOepuuagvOadoSwg5bem5Y+z566t5aS0LCBQZyBVcCDlkowgUGcgRG4g5a+86IiqLiAiICsKICAgICLnlKggUywgQiDmlLnlj5jlrZfkvZPlpKflsI8uIiwKCiAgc3RyaW5nc19ydTogewogICAgInNsaWRlIjoi0YHQu9Cw0LnQtCIsCiAgICAiaGVscD8iOiLQv9C+0LzQvtGJ0Yw/IiwKICAgICJjb250ZW50cz8iOiLRgdC+0LTQtdGA0LbQsNC90LjQtT8iLAogICAgInRhYmxlIG9mIGNvbnRlbnRzIjoi0L7Qs9C70LDQstC70LXQvdC40LUiLAogICAgIlRhYmxlIG9mIENvbnRlbnRzIjoi0J7Qs9C70LDQstC70LXQvdC40LUiLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoi0L/QtdGA0LXQt9Cw0L/Rg9GB0YLQuNGC0Ywg0L/RgNC10LfQtdC90YLQsNGG0LjRjiIsCiAgICAicmVzdGFydD8iOiLQv9C10YDQtdC30LDQv9GD0YHQuj8iCiAgfSwKICBoZWxwX3J1OgogICAgItCf0LXRgNC10LzQtdGJ0LDQudGC0LXRgdGMINC60LvQuNC60LDRjyDQvNGL0YjQutC+0LksINC40YHQv9C+0LvRjNC30YPRjyDQutC70LDQstC40YjRgyDQv9GA0L7QsdC10LssINGB0YLRgNC10LvQutC4IiArCiAgICAi0LLQu9C10LLQvi/QstC/0YDQsNCy0L4g0LjQu9C4IFBnIFVwINC4IFBnIERuLiDQmtC70LDQstC40YjQuCBTINC4IEIg0LzQtdC90Y/RjtGCINGA0LDQt9C80LXRgCDRiNGA0LjRhNGC0LAuIiwKCiAgc3RyaW5nc19zdjogewogICAgInNsaWRlIjoic2lkYSIsCiAgICAiaGVscD8iOiJoasOkbHAiLAogICAgImNvbnRlbnRzPyI6ImlubmVow6VsbCIsCiAgICAidGFibGUgb2YgY29udGVudHMiOiJpbm5laMOlbGxzZsO2cnRlY2tuaW5nIiwKICAgICJUYWJsZSBvZiBDb250ZW50cyI6IklubmVow6VsbHNmw7ZydGVja25pbmciLAogICAgInJlc3RhcnQgcHJlc2VudGF0aW9uIjoidmlzYSBwcmVzZW50YXRpb25lbiBmcsOlbiBiw7ZyamFuIiwKICAgICJyZXN0YXJ0PyI6ImLDtnJqYSBvbSIKICB9LAogIGhlbHBfc3Y6CiAgICAiQmzDpGRkcmEgbWVkIGV0dCBrbGljayBtZWQgdsOkbnN0cmEgbXVza25hcHBlbiwgbWVsbGFuc2xhZ3N0YW5nZW50ZW4sICIgKwogICAgInbDpG5zdGVyLSBvY2ggaMO2Z2VycGlsdGFuZ2VudGVybmEgZWxsZXIgdGFuZ2VudGVybmEgUGcgVXAsIFBnIERuLiAiICsKICAgICJBbnbDpG5kIHRhbmdlbnRlcm5hIFMgb2NoIEIgZsO2ciBhdHQgw6RuZHJhIHRleHRlbnMgc3Rvcmxlay4iLAoKICBzdHJpbmdzOiB7IH0sCgogIGxvY2FsaXplOiBmdW5jdGlvbiAoc3JjKSB7CiAgICBpZiAoc3JjID09ICIiKQogICAgICByZXR1cm4gc3JjOwoKICAgICAvLyB0cnkgZnVsbCBsYW5ndWFnZSBjb2RlLCBlLmcuIGVuLVVTCiAgICAgdmFyIHMsIGxvb2t1cCA9IHczY19zbGlkeS5zdHJpbmdzW3czY19zbGlkeS5sYW5nXTsKCiAgICAgaWYgKGxvb2t1cCkKICAgICB7CiAgICAgICBzID0gbG9va3VwW3NyY107CgogICAgICAgaWYgKHMpCiAgICAgICAgcmV0dXJuIHM7CiAgICAgfQoKICAgICAvLyBzdHJpcCBjb3VudHJ5IGNvZGUgc3VmZml4LCBlLmcuCiAgICAgLy8gdHJ5IGVuIGlmIHVuZGVmaW5lZCBmb3IgZW4tVVMKICAgICB2YXIgbGcgPSB3M2Nfc2xpZHkubGFuZy5zcGxpdCgiLSIpOwoKICAgICBpZiAobGcubGVuZ3RoID4gMSkKICAgICB7CiAgICAgICBsb29rdXAgPSB3M2Nfc2xpZHkuc3RyaW5nc1tsZ1swXV07CgogICAgICAgaWYgKGxvb2t1cCkKICAgICAgIHsKICAgICAgICAgcyA9IGxvb2t1cFtzcmNdOwoKICAgICAgICAgaWYgKHMpCiAgICAgICAgICByZXR1cm4gczsKICAgICAgIH0KICAgICB9CgogICAgIC8vIG90aGVyd2lzZSBzdHJpbmcgYXMgaXMKICAgICByZXR1cm4gc3JjOwogIH0sCgogIGluaXRfbG9jYWxpemF0aW9uOiBmdW5jdGlvbiAoKSB7CiAgICB2YXIgaTE4biA9IHczY19zbGlkeTsKICAgIHZhciBoZWxwX3RleHQgPSB3M2Nfc2xpZHkuaGVscF90ZXh0OwoKICAgIC8vIGVhY2ggc3VjaCBsYW5ndWFnZSBhcnJheSBpcyBkZWNsYXJlZCBpbiB0aGUgbG9jYWxpemUgYXJyYXkKICAgIC8vIHRoaXMgaXMgdXNlZCBhcyBpbiAgdzNjX3NsaWR5LmxvY2FsaXplKCJmb28iKTsKICAgIHRoaXMuc3RyaW5ncyA9IHsKICAgICAgImVzIjp0aGlzLnN0cmluZ3NfZXMsCiAgICAgICJjYSI6dGhpcy5zdHJpbmdzX2NhLAogICAgICAiY3MiOnRoaXMuc3RyaW5nc19jcywKICAgICAgIm5sIjp0aGlzLnN0cmluZ3NfbmwsCiAgICAgICJkZSI6dGhpcy5zdHJpbmdzX2RlLAogICAgICAicGwiOnRoaXMuc3RyaW5nc19wbCwKICAgICAgImZyIjp0aGlzLnN0cmluZ3NfZnIsCiAgICAgICJodSI6dGhpcy5zdHJpbmdzX2h1LAogICAgICAiaXQiOnRoaXMuc3RyaW5nc19pdCwKICAgICAgImVsIjp0aGlzLnN0cmluZ3NfZWwsCiAgICAgICJqcCI6dGhpcy5zdHJpbmdzX2phLAogICAgICAiemgiOnRoaXMuc3RyaW5nc196aCwKICAgICAgInJ1Ijp0aGlzLnN0cmluZ3NfcnUsCiAgICAgICJzdiI6dGhpcy5zdHJpbmdzX3N2CiAgICB9LAoKICAgIGkxOG4uc3RyaW5nc19lc1toZWxwX3RleHRdID0gaTE4bi5oZWxwX2VzOwogICAgaTE4bi5zdHJpbmdzX2NhW2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfY2E7CiAgICBpMThuLnN0cmluZ3NfY3NbaGVscF90ZXh0XSA9IGkxOG4uaGVscF9jczsKICAgIGkxOG4uc3RyaW5nc19ubFtoZWxwX3RleHRdID0gaTE4bi5oZWxwX25sOwogICAgaTE4bi5zdHJpbmdzX2RlW2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfZGU7CiAgICBpMThuLnN0cmluZ3NfcGxbaGVscF90ZXh0XSA9IGkxOG4uaGVscF9wbDsKICAgIGkxOG4uc3RyaW5nc19mcltoZWxwX3RleHRdID0gaTE4bi5oZWxwX2ZyOwogICAgaTE4bi5zdHJpbmdzX2h1W2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfaHU7CiAgICBpMThuLnN0cmluZ3NfaXRbaGVscF90ZXh0XSA9IGkxOG4uaGVscF9pdDsKICAgIGkxOG4uc3RyaW5nc19lbFtoZWxwX3RleHRdID0gaTE4bi5oZWxwX2VsOwogICAgaTE4bi5zdHJpbmdzX2phW2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfamE7CiAgICBpMThuLnN0cmluZ3NfemhbaGVscF90ZXh0XSA9IGkxOG4uaGVscF96aDsKICAgIGkxOG4uc3RyaW5nc19ydVtoZWxwX3RleHRdID0gaTE4bi5oZWxwX3J1OwogICAgaTE4bi5zdHJpbmdzX3N2W2hlbHBfdGV4dF0gPSBpMThuLmhlbHBfc3Y7CgogICAgdzNjX3NsaWR5LmxhbmcgPSBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlKCJsYW5nIik7CgogICAgaWYgKCF3M2Nfc2xpZHkubGFuZykKICAgICAgdzNjX3NsaWR5LmxhbmcgPSBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpOwoKICAgIGlmICghdzNjX3NsaWR5LmxhbmcpCiAgICAgIHczY19zbGlkeS5sYW5nID0gImVuIjsKICB9Cn07CgovLyBoYWNrIGZvciBiYWNrIGJ1dHRvbiBiZWhhdmlvcgppZiAodzNjX3NsaWR5LmllNiB8fCB3M2Nfc2xpZHkuaWU3KQp7CiAgZG9jdW1lbnQud3JpdGUoIjxpZnJhbWUgaWQ9J2hpc3RvcnlGcmFtZScgIiArCiAgInNyYz0namF2YXNjcmlwdDpcIjxodG1sIisiPjwvIisiaHRtbD5cIicgIiArCiAgImhlaWdodD0nMScgd2lkdGg9JzEnICIgKwogICJzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7bGVmdDotODAwcHgnPjwvaWZyYW1lPiIpOwp9CgovLyBhdHRhY2ggZXZlbnQgbGlzdGVuZXJzIGZvciBpbml0aWFsaXphdGlvbgp3M2Nfc2xpZHkuc2V0X3VwKCk7CgovLyBoaWRlIHRoZSBzbGlkZXMgYXMgc29vbiBhcyBib2R5IGVsZW1lbnQgaXMgYXZhaWxhYmxlCi8vIHRvIHJlZHVjZSBhbm5veWluZyBzY3JlZW4gbWVzcyBiZWZvcmUgdGhlIG9ubG9hZCBldmVudApzZXRUaW1lb3V0KHczY19zbGlkeS5oaWRlX3NsaWRlcywgNTApOwoK"></script>
<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>
</head>
<body>
<div class="slide titlepage">
<h1 class="title">Advertising Response Measurement</h1>
<p class="author">
Team K
</p>
<p class="date">4/25/2019</p>
</div>
<div id="introduction" class="slide section level2">
<h2>Introduction</h2>
<ul>
<li><p><font size="5">The goal of any marketing campaign is to increase sales, either in short-term or long-term, and 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.</font></p></li>
<li><p><font size="5">With the rapid development of digital media, we are able to track individual users’ behaviors, and it is beneficial for us to estimate <strong>incremental sales</strong> due to advertising in many different channels.</font></p></li>
<li><p><font size="5">By using last-click attribution, experiments (holdout testing), marketing mix models and model-based attribution analysis, the main goal of this project is to <strong>evaluate the effectiveness of different advertising channels</strong>.</font></p></li>
</ul>
</div>
<div id="description-of-the-dataset" class="slide section level2">
<h2>Description of the Dataset</h2>
<ul>
<li><p>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. This dataset 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:</p></li>
<li><p><span style="color:dodgerblue"><strong>customer.csv</strong></span>: each row in the file represents a customer, 10,000 rows</p></li>
</ul>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">datatable</span>(<span class="dt">data =</span> customer[<span class="dv">1</span><span class="op">:</span>num.lines,])</code></pre></div>
<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","11","12","13","14","15","16","17","18","19","20"],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],["0","1","1","0","1","0","0","1","0","0","0","1","1","0","0","1","1","0","1","0"],["0","1","1","0","1","0","0","1","0","0","0","1","1","0","0","0","1","0","1","0"],["1","1","0","0","1","0","1","1","1","0","0","1","1","0","1","1","0","0","0","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},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
</div>
<div id="description-of-the-dataset-1" class="slide section level2">
<h2>Description of the Dataset</h2>
<ul>
<li><span style="color:dodgerblue"><strong>Impressions.csv</strong></span>: each row is an exposure of marketing communication to a customer, 501,336 rows</li>
</ul>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">datatable</span>(<span class="dt">data =</span> impressions[<span class="dv">1</span><span class="op">:</span>num.lines,])</code></pre></div>
<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","11","12","13","14","15","16","17","18","19","20"],[1,1,1,1,1,1,1,1,1,1,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","2017-01-08","2017-01-10","2017-01-10","2017-01-12","2017-01-12","2017-01-15","2017-01-15","2017-01-15","2017-01-16","2017-01-17"],["direct","direct","social","social","social","social","social","social","social","social","social","social","social","social","social","social","social","social","social","social"],["0","0","0","0","0","0","0","0","0","0","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},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
</div>
<div id="description-of-the-dataset-2" class="slide section level2">
<h2>Description of the Dataset</h2>
<ul>
<li><span style="color:dodgerblue"><strong>Transactions.csv</strong></span>: each row is a transaction made by a customer</li>
</ul>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">datatable</span>(<span class="dt">data =</span> transactions[<span class="dv">1</span><span class="op">:</span>num.lines,])</code></pre></div>
<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","11","12","13","14","15","16","17","18","19","20"],[2,2,3,3,5,5,5,5,5,5,5,6,7,7,8,8,8,10,11,12],["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","2017-02-08","2017-02-16","2017-01-07","2017-01-12","2017-01-03","2017-01-09","2017-01-17","2017-01-28","2017-02-12","2017-01-05"],["email","email","email","email","display","display","display","display","display","display","display","display","direct","social","none","direct","email","social","none","email"],["none","none","none","none","email","email","email","email","email","display","display","none","none","none","none","none","email","none","none","none"]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> <\/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},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script>
</div>
<div id="method-1-last-touch-analysis" class="slide section level2">
<h2>Method 1: Last-touch analysis</h2>
<ul>
<li><p><span style="color:dodgerblue"><strong>Analysis</strong></span>: Based on last-touch attribution to find the last ad the user clicked on prior to the conversion so that we can get the sales attributed to each channel</p></li>
<li><p><span style="color:dodgerblue"><strong>Implementation A</strong></span>:</p></li>
</ul>
<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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QIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkFBABK2KmaRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBAB8BwgQIECAAAECBAgQIECAAAECBAgQIECAQAkF+pewTZpEgAABAgQIEJgpBKZOnZpuu+22pntZeuml07Bhw5ryZXRO4PXXX0/nnntu507qQOkVV1wxbbfddh0o2feK/Pvf/06XXnppU8N/+MMfNuXN6IyHHnoojR07tuk2ytq/zz//fLrkkkua2nv44YenWWedNc+/++6707hx4/L92FhkkUXSXnvtVZdXlp2OupSlvdpBgAABAgQIEGgU6NdSSY2Z9gkQIECAAAECBKZdYOLEiWnw4MFNFf3kJz9JP/rRj5ry+0rG+++/n0455ZS0wQYbpI022qjLzX700UfTiBEjunx+ayduv/326corr2ztcJ/Ov/XWW9PIkSObDD755JPUr1+/pvwZmRFBnKuvvrrpFuaZZ5708ssvp0996lNNxzqa0ZXvcFfO6ej9RLk77rij8Pfpgw8+SLPNNlte1Yknnph+8IMf5Puxseaaa6bx48fX5fWGnY6YdtSlN7TXPRIgQIAAAQIEuiJgCqCuqDmHAAECBAgQIECgSwIxIBtPYB911FHpvffe61IdTiLQnsB//vOfdN111xUWe/vtt6cpwNOV73BXzim8eZm5ANOcwgYBAgQIECBAoE0BAYA2eRwkQIAAAQIECBDoDoF4Wn+zzTbLptaJaWQkAtNTIKbC+eijj1q9RFemjurKd7gr57R60w5kAkx9EQgQIECAAAECnROwBkDnvJQmQIAAAQIECBDogsBqq62WYk0EiUBPCFx44YVtXibmwY+B5JVXXrnNcrUHu/Id7so5tde03SzAtNlEDgECBAgQIECgLQEBgLZ0HCNAgAABAgQIEOgWgekx+L/ccsulxx57rNX7+/jjj9Mqq6zSdHzvvfdO3/ve95ryqxlzzz13ddNnLxS4884705NPPtnunZ933nnpF7/4RbvlqgW68h3uyjnV63X2c/nll08XXHBB02n9+5frf/k6a9pXXJo6XgYBAgQIECBA4L8C5frXoG4lQIAAAQIECBDoMwKzzz57tp5Aaw2OAEBRGjJkSJvnFZ0jr/cIFA2CF9396NGjUyyIOy2LARfVO6PyFl544bTXXnvNqMvPtNflMtN2jRsjQIAAAQIEekhAAKCHoF2GAAECBAgQINATApMmTUovv/xy9vPaa6+lOeaYI80333xpgQUWSPHEfFdSLJr6/PPPp+eeey6bxmehhRZKMai2yCKLpIEDB3alylKc8+qrr2YuL774YlpwwQXTiBEj0uDBg3tF26JP//GPf6RYLHexxRZLSy65ZNaGfv36dcv9f/DBB+n+++9P8X1ca6210vzzz98t9bZXycSJEwsX+P3Od76TzjrrrLrTw+B3v/td2n333evyZ+adePr93nvvTdHOFVZYIS299NLT7Xbj9/3hhx9Ow4YNywJmZXuToLNwPfX7Hm81hf0nn3yS1lhjjezv2c7eq/IECBAgQIAAgTqBFokAAQIECBAgQGC6CLzzzjstlX94Nf385Cc/6dbrVZ50b/n973/fsskmmzRdq/b6iy66aMs3v/nNlsrgUrvXf/PNN1sOP/zwlnnnnbfVOmebbbaWHXfcseVPf/pTS2WwqqnOX//61y2VgfHsp/Y+qtuVwfL8eGVe76bzpzWjsghs4b3/4Ac/6HLVlQHzlpNPPrll+PDhhXUvscQSLVtttVXLHXfc0aFrXHXVVblB1WqllVZq89wTTjih6ZxtttmmzXPi4EMPPdSy9dZbt1QG/AvvvRIoavnhD3/YUgkctVpX9HW1/2o/q/1feaq+Zd11122pvJ1RV64yiNxSmXappRIYaLXu7jjwq1/9qu66cY+VIFhLJRDRsuKKKzYd++xnP9vmZbvyHe7KOdWbqExJ1NS3lTcast+v+H2M35la97B+5JFHstPvueeepnPjO/Xhhx9Wq88+4/tTW0dsr7nmmtmxSlCkZY899mipBPfqylTekmj5zGc+03LzzTfX1VW0Mz2+09Ni2lGXorZ05+/7uHHjmvrnwAMPzC4bf4efcsopLcsss0yde/RNJdja8q1vfSv7DhfdozwCBAgQIECAQHsC3gCo/KtKIkCAAAECBAj0VoF40roy4JwqA7PtNiHeDDj//PPTb3/723TppZemyqBx4TlxbNSoUdnT24UF/ptZGVjMnqCOp6grg4bZ/OOzzDJLfsp7772X4i2E1lIlQJIfqgQT8u2ZdeOaa67J2ll73433Gm9KxM8NN9yQvvvd76bjjjsuDRo0qLFYvv/++++3aZQXrNl49913m86ZMGFCTYn6zZgK6fjjj0/HHntsqgRF6g/W7L311lvppz/9aTr11FNTTI+z3Xbb1RxtezPqPfjgg5uesq+e9eyzz6af//znKebnrwSrsrcOqse687No+p+vfOUrac4558ye9K8Ef+ou195iwF35DnflnOpNFZ07ZcqU9P3vfz9VBoirxfLPeBsg2hYpfh+Lft8q/0OYl29roxJISNtuu216+umnm4rFPcS1tthii3TYYYdl36XW3giYHt/pIpfam6z9nWz8u6SrLt39+150H/GGzCuvvJK+/OUvp7/+9a+1Tcq3482DWK/itttuy/6+XXXVVfNjNggQIECAAAECHRH4//+H1pHSyhAgQIAAAQIECMw0AjFFxA477NChwf/am44B5F133bVwoO9vf/tbikVyY2CqM+miiy5K++67b2dO6VVlK0/GZ4OjtQONbTUg+uaMM85IMVj3xBNPtFV0uh6LgfkNNtgg/ehHP2pz8L/2JmKw96tf/Wq65ZZbarPb3B45cmSrg/+1J8Yg5/bbb1+b1W3bMV3N+PHjm+r7+te/nuV97WtfS7UBqmrBGFydmdP//u//ZkGZonusvMGQllpqqaJDncr717/+lSpP+Bf+nVBbUQQTKm8QTLc+rL3WjNzuqd/3yptW6XOf+1yrg/+1Bv/85z+z38uOBnRqz7VNgAABAgQI9G0BAYC+3f9aT4AAAQIECPRigeuvvz5dd911hS2oTCOTvvjFL2bzrxc9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Ecw5++yzs+BB9FG8RVCUIlhw6KGHpsq0P9lgd1GZmSGvaPHfeGOhM4GR2nZUpldKX/nKV2qzsu14m6Y2QNaV73BXzmm6kR7KqEzzlX2/Y3HvxoV24/sfbYm1OmJNgPhOtpem13e6J0yn9+97e3aOEyBAgAABAgS6U6BfzGzUnRWqiwABAgQIECBAoOcFJkyYkAUDnnzyyexp5pieIxadjYGsaUkxKP/SSy9li93GgrcxTU9M9bNUZWqY+Imn0juT4p+ezzzzTIoFjSdOnJhWXXXV9D//8z+tDkp3pu6eLBsu//jHP9Lzzz+f2VTWAcjaEgugTot51HvvvfemynoMadKkSVkApjJHfasBh660Oab+iQV0I5gR35uY+il+YrqixoHfrtRf9nO68h3uyjkz0jGmtYqA3csvv5z9PbL22munypoQXbql6fWd7knT6fX73iVQJxEgQIAAAQIEOikgANBJMMUJECBAgAABAgQIECBAgAABAgQIECBAgEBvEGj/3c3e0Ar3SIAAAQIECBAgQIAAAQIECBAgQIAAAQIECNQJCADUcdghQIAAAQIECBAgQIAAAQIECBAgQIAAAQLlEBAAKEc/agUBAgQIECBAgAABAgQIECBAgAABAgQIEKgTEACo47BDgAABAgQIECBAgAABAgQIECBAgAABAgTKISAAUI5+1AoCBAgQIECAAAECBAgQIECAAAECBAgQIFAnIABQx2GHAAECBAgQIECAAAECBAgQIECAAAECBAiUQ0AAoBz9qBUECBAgQIAAAQIECBAgQIAAAQIECBAgQKBOQACgjsMOAQIECBAgQIAAAQIECBAgQIAAAQIECBAoh4AAQDn6USsIECBAgAABAgQIECBAgAABAgQIECBAgECdgABAHYcdAgQIECBAgAABAgQIECBAgAABAgQIECBQDgEBgHL0o1YQIECAAAECBAgQIECAAAECBAgQIECAAIE6AQGAOg47BAgQIECAAAECBAgQIECAAAECBAgQIECgHAICAOXoR60gQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ1AgIAdRx2CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAOQQEAMrRj1pBgAABAgQIECBAgAABAgQIECBAgAABAgTqBAQA6jjsECBAgAABAgQIECBAgAABAgQIECBAgACBcggIAJSjH7WCAAECBAgQIECAAAECBAgQIECAAAECBAjUCQgA1HHYIUCAAAECBAgQIECAAAECBAgQIECAAAEC5RAQAChHP2oFAQIECBAgQIAAAQIECBAgQIAAAQIECBCoExAAqOOwQ4AAAQIECBAgQIAAAQIECBAgQIAAAQIEyiEgAFCOftQKAgQIECBAgAABAgQIECBAgAABAgQIECBQJyAAUMdhhwABAgQIECBAgAABAgQIECBAgAABAgQIlENAAKAc/agVBAgQIECAAAECBAgQIECAAAECBAgQIECgTkAAoI7DDgECBAgQIECAAAECBAgQIECAAAECBAgQKIeAAEA5+lErCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAnYAAQB2HHQIECBAgQIAAAQIECBAgQIAAAQIECBAgUA4BAYBy9KNWECBAgAABAgQIECBAgAABAgQIECBAgACBOgEBgDoOOwQIECBAgAABAgQIECBAgAABAgQIECBAoBwCAgDl6EetIECAAAECBAgQIECAAAECBAgQIECAAAECdQICAHUcdggQIECAAAECBAgQIECAAAECBAgQIECAQDkEBADK0Y9aQYAAAQIECBAgQIAAAQIECBAgQIAAAQIE6gQEAOo47BAgQIAAAQIECBAgQIAAAQIECBAgQIAAgXIICACUox+1ggABAgQIECBAgAABAgQIECBAgAABAgQI1AkIANRx2CFAgAABAgQIECBAgAABAgQIECBAgAABAuUQEAAoRz9qBQECBAgQIECAAAECBAgQIECAAAECBAgQqBMQAKjjsEOAAAECBAgQIECAAAECBAgQIECAAAECBMohIABQjn7UCgIECBAgQIAAAQIECBAgQIAAAQIECBAgUCcgAFDHYYcAAQIECBAgQIAAAQIECBAgQIAAAQIECJRDQACgHP2oFQQIECBAgAABAgQIECBAgAABAgQIECBAoE5AAKCOww4BAgQIECBAgAABAgQIECBAgAABAgQIECiHgABAOfpRKwgQIECAAAECBAgQIECAAAECBAgQIECAQJ2AAEAdhx0CBAgQIECAAAECBAgQIECAAAECBAgQIFAOAQGAcvSjVhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgToBAYA6DjsECBAgQIAAAQIECBAgQIAAAQIECBAgQKAcAgIA5ehHrSBAgAABAgQIECBAgAABAgQIECBAgAABAnUCAgB1HHYIECBAgAABAgQIECBAgAABAgQIECBAgEA5BAQAytGPWkGAAAECBAgQIECAAAECBAgQIECAAAECBOoEBADqOOwQIECAAAECBAgQIECAAAECBAgQIECAAIFyCAgAlKMftYIAAQIECBAgQIAAAQIECBAgQIAAAQIECNQJCADUcdghQIAAAQIECBAgQIAAAQIECBAgQIAAAQLlEBAAKEc/agUBAgQIECBAgAABAgQIECBAgAABAgQIEKgTEACo47BDgAABAgQIECBAgAABAgQIECBAgAABAgTKISAAUI5+1AoCBAgQIECAAAECBAgQIECAAAECBAgQIFAnIABQx2GHAAECBAgQIECAAAECBAgQIECAAAECBAiUQ0AAoBz9qBUECBAgQIAAAQIECBAgQIAAAQIECBAgQKBOQACgjsMOAQIECBAgQIAAAQIECBAgQIAAAQIECBAoh4AAQDn6USsIECBAgAABAgQIECBAgAABAgQIECBAgECdgABAHYcdAgQIECBAgAABAgQIECBAgAABAgQIECBQDgEBgHL0o1YQIECAAAECBAgQIECAAAECBAgQIECAAIE6AQGAOg47BAgQIECAAAECBAgQIECAAAECBAgQIECgHAICAOXoR60gQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ1AgIAdRx2CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAOQQEAMrRj1pBgAABAgQIECBAgAABAgQIECBAgAABAgTqBAQA6jjsECBAgAABAgQIECBAgAABAgQIECBAgACBcggIAJSjH7WCAAECBAgQIECAAAECBAgQIECAAAECBAjUCQgA1HHYIUCAAAECBAgQIECAAAECBAgQIECAAAEC5RAQAChHP2oFAQIECBAgQIAAAQIECBAgQIAAAQIECBCoExAAqOOwQ4AAAQIECBAgQIAAAQIECBAgQIAAAQIEyiEgAFCOftQKAgQIECBAgAABAgQIECBAgAABAgQIECBQJyAAUMdhhwABAgQIECBAgAABAgQIECBAgAABAgQIlENAAKAc/agVBAgQIECAAAECBAgQIECAAAECBAgQIECgTkAAoI7DDgECBAgQIECAAAECBAgQIECAAAECBAgQKIeAAEA5+lErCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAnYAAQB2HHQIECBAgQIAAAQIECBAgQIAAAQIECBAgUA4BAYBy9KNWECBAgAABAgQIECBAgAABAgQIECBAgACBOgEBgDoOOwQIECBAgAABAgQIECBAgAABAgQIECBAoBwCAgDl6EetIECAAAECBAgQIECAAAECBAgQIECAAAECdQICAHUcdggQIECAAAECBAgQIECAAAECBAgQIECAQDkEBADK0Y9aQYAAAQIECBAgQIAAAQIECBAgQIAAAQIE6gQEAOo47BAgQIAAAQIECBAgQIAAAQIECBAgQIAAgXIICACUox+1ggABAgQIECBAgAABAgQIECBAgAABAgQI1AkIANRx2CFAgAABAgQIECBAgAABAgQIECBAgAABAuUQEAAoRz9qBQECBAgQIECAAAECBAgQIECAAAECBAgQqBMQAKjjsEOAAAECBAgQIECAAAECBAgQIECAAAECBMohIABQjn7UCgIECBAgQIAAAQIECBAgQIAAAQIECBAgUCcgAFDHYYcAAQIECBAgQIAAAQIECBAgQIAAAQIECJRDQACgHP2oFQQIECBAgAABAgQIECBAgAABAgQIECBAoE5AAKCOww4BAgQIECBAgAABAgQIECBAgAABAgQIECiHgABAOfpRKwgQIECAAAECBAgQIECAAAECBAgQIECAQJ2AAEAdhx0CBAgQIECAAAECBAgQIECAAAECBAgQIFAOAQGAcvSjVhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgToBAYA6DjsECBAgQIAAAQIECBAgQIAAAQIECBAgQKAcAgIA5ehHrSBAgAABAgQIECBAgAABAgQIECBAgAABAnUCAgB1HHYIECBAgAABAgQIECBAgAABAgQIECBAgEA5BAQAytGPWkGAAAECBAgQIECAAAECBAgQIECAAAECBOoEBADqOOwQIECAAAECBAgQIECAAAECBAgQIECAAIFyCAgAlKMftYIAAQIECBAgQIAAAQIECBAgQIAAAQIECNQJCADUcdghQIAAAQIECBAgQIAAAQIECBAgQIAAAQLlEBAAKEc/agUBAgQIECBAgAABAgQIECBAgAABAgQIEKgTEACo47BDgAABAgQIECBAgAABAgQIECBAgAABAgTKISAAUI5+1AoCBAgQIECAAAECBAgQIECAAAECBAgQIFAnIABQx2GHAAECBAgQIECAAAECBAgQIECAAAECBAiUQ0AAoBz9qBUECBAgQIAAAQIECBAgQIAAAQIECBAgQKBOQACgjsMOAQIECBAgQIAAAQIECBAgQIAAAQIECBAoh4AAQDn6USsIECBAgAABAgQIECBAgAABAgQIECBAgECdQOkCAO+//346/vjj0xe+8IU0bNiwNNdcc6U11lgj7brrrmncuHF1jW9rZ+rUqenCCy9MI0eOTEsuuWSad9550xZbbJGOOeaYNH78+LZOrTv2zDPPpL333jutvvrqae65504rrbRStn/RRRelyZMn15Vta6e76mnrGo4RIECAAAECBAgQIECAAAECBAgQIECAQHkE+rVUUlmac/vtt6c999wz/etf/2q1SREIOPvss9PgwYNbLfPSSy+lz3/+8+nRRx8tLNO/f/8UA/hf+9rXCo9XM0855ZR0xBFHpI8++qiaVfe57rrrpuuvvz4LLtQdaNjprnoaqrVLgAABAgQIECBAgAABAgQIECBAgAABAiUWKE0A4IUXXkirrLJKevvtt7PuWnvttdMOO+yQFllkkWwg/1e/+lV65513smM77rhjGjNmTGG3Tpw4MW2wwQbp73//e3Z8tdVWS1tvvXUaOnRouuOOO9I111yTpkyZkvr165fOPPPMtN9++xXWEwGCCEZEGjhwYNppp51SDPjHfY4dOzY9/PDD2bERI0akW265JS200ELZfuMf3VVPY732CRAgQIAAAQIECBAgQIAAAQIECBAgQKDcAqUJAMSUPzfddFPWW6NGjUq/+MUv0qyzzpr33ssvv5zWX3/99Oyzz2Z5v/3tb9POO++cH69uHHLIIenUU0/NdiNQMHr06DTbbLNVD6c777wzbbXVVlkwId4EeO6559Kiiy6aH4+N119/PZs2KAIF8abBH/7wh7TRRhvlZeKNgN122y1dccUVWV7cb7yV0Ji6q57Geu0TIECAAAECBAgQIECAAAECBAgQIECAQPkFSrEGwAcffJBuvfXWrLcWX3zxdNppp9UN/seBGKSvHWS/9tprm3r3rbfeSueee26Wv8QSSzQN/seBCCJceumlWZmPP/44nXfeedl27R+nn3569pZA5J144ol1g/+RN2DAgHTZZZeleEsh0iWXXJImTZqUbdf+0V311NZpmwABAgQIECBAgAABAgQIECBAgAABAgT6hkApAgAxV391nv2YZqf2if3abtx4443zwMD9999feyjbvvLKK9O7776bbe+7776t1hNvAKywwgpZuQgAVK9drfDXv/51thkLEO+xxx7V7LrPWWaZJX3ve9/L8uKaEQRoTN1VT2O99gkQIECAAAECBAgQIECAAAECBAgQIECg/AKlCADUdlPM4d9a+uSTT1J1zeMPP/ywqdg999yT522++eb5dtHGyJEjs+xXXnkl/fnPf86L/Pvf/06vvvpqth/T/rQWjIgCm222WbaWQGzHGwG1qbvqqa3TNgECBAgQIECAAAECBAgQIECAAAECBAj0HYFSBADiafxBgwZlvXbvvfemN954o7AHr7/++hRBgEixuG9jinMjxdP5saBwW2nVVVfND8cbCNVUrSP2i65RLRefCyywQLZIcWzX1hH73VVP1CURIECAAAECBAgQIECAAAECBAgQIECAQN8TKEUAYM4550z77bdf1ntvv/12+vrXv54mTJhQ15sx5c93v/vdLC8G+A899NC647Hz9NNPZ3lDhw7N5ulvKlCTEWsEVNMTTzxR3UxPPfVUvj1s2LB8u7WNaj2xBkAsVFxN3VVPtT6fBAgQIECAAAECBAgQIECAAAECBAgQINC3BPqXpbnHHXdciul4YoHem266KZuj/3Of+1y2+O/jjz+e5U2dOjWbkicW+o3FfGvT5MmTUxyPtNBCC9UeKtyOp/erKRYPrqbaKYi6Uk8sVhypu+qp3te0fr7++uv59EnTWldMw9QRm2m9jvMJECBAgAABAgQIECBAgAABAgQIECDQlwVKEwDo379/Gj16dIp59/fZZ58UA9aXX355Xd8uuOCC6dZbb00rr7xyXX7svPPOO3nepz71qXy7tY3aMu+9915ebGarJ7+xadiIBZEjaNKd6dhjj00//OEPu7NKdREgQIAAAQIECBAgQIAAAQIECBAgQIBAjUBpAgAx5c/uu++exo4dmz+pPs8886QY9H/mmWeyp/tfe+21LEAQg8+jRo2qYUgppuCppoEDB1Y3W/2cffbZ82O1AYCZrZ78JqdhI6YyWnjhhfP1E6ahqsx5ypQpqfatiWmpz7kECBAgQIAAAQIECBAgQIAAAQIECBAgUCxQigBAPHW/4YYb5gvpxvQ+55xzTv6k/wcffJDGjBmTDjrooGzgOdYLiHMOP/zwXGXAgAH59scff5xvt7ZRW6Y2YDCz1dPa/Xcm/7DDDkvx0x0p+uD0009P1bUPuqNOdRAgQIAAAQIECBAgQIAAAQIECBAgQIBAs0ApFgH++c9/ng/+x7z/t99+ez74H02Op/V322239Ne//jXFgsGRjjrqqLoFe6v5cez999+PjzZTbZnBgwfnZWe2evIbs0GAAAECBAgQIECAAAECBAgQIECAAAECfUqgFAGAs88+O+u0WWaZJZ1//vkpPovSMsssk4455pjsUCz4e8YZZ+TF5pprrny7dgHePLNho7bM3HPPnR+t3a4tkxdo2KgtU3tu7XZtmYbT893aMrXn5gVsECBAgAABAgQIECBAgAABAgQIECBAgECfEigeKe9FBLHY75tvvpnd8bLLLpuWXHLJNu/+85//fH78kUceybdjUd9FF10023/hhRfy/NY2asvE/PjVFEGGaqotU81r/KyWiUWM559//vxwd9WTV2iDAAECBAgQIECAAAECBAgQIECAAAECBPqUQK8PAFQH/6PXqgP4bfXg0ksvnR/+z3/+k2/HxkorrZTtx9P0EVhoKz311FP54bXXXjvfrtYRGU8//XSeX7Tx0Ucfpeeeey47NGLEiFS7lkB31VN0XXkECBAgQIAAAQIECBAgQIAAAQIECBAgUH6BXh8AiKf+Y47/SPfff3+KqX3aSs8880x+ePjw4fl2bKyzzjr5/h133JFvF2385S9/ybNrz1t11VXz+2mvjliTIBYojlRbR+x3Vz1Rl0SAAAECBAgQIECAAAECBAgQIECAAAECfU+g1wcAYuqc//mf/8l6btKkSenee+9tsxfHjh2bH1999dXz7djYfvvt8/3Ro0fn240bzz//fLbQcOSvtdZaaaGFFsqLxCLA1WmGHn300fTggw/mxxo3Lrnkkjxrq622yrdjo7vqqavUDgECBAgQIECAAAECBAgQIECAAAECBAj0GYFeHwCIntpzzz3zDtt5553Ts88+m+/Xbjz22GPp6KOPzrJiup2ddtqp9nBabbXV0pprrpnl/fGPf0yXXnpp3fHYmTJlStp7771TTN8T6bDDDss+a/+I49W0zz77pLfffru6m3/ecMMN6aKLLsr2V1555bTlllvmx6ob3VVPtT6fBAgQIECAAAECBAgQIECAAAECBAgQINB3BEoRABg1alQaOXJk1msvvvhi2nTTTdN5552XqvP0xxP7p512Wvr0pz+dDeBHwRNOOCE1TgEU+WeddVbq169famlpSbvvvnv62c9+lgUUYsD/zjvvzJ7uv+WWW6Jo+sxnPpO23XbbbLv2j3iav/oWwN/+9re0ySabpHHjxqX3338/vfTSS+kXv/hF+vKXv5wFEWaZZZbsXuKajam76mms1z4BAgQIECBAgAABAgQIECBAgAABAgQIlF+gX2Wgu6UMzXz55ZfTjjvumO6666665sT6ANV59uNADLjvt99+6YwzzsgG+usK/3fnd7/7XfZWweTJk/PDAwYMyJ/6j8xYe+Cee+5JQ4YMycvUbrz11ltpl112STfffHOe3VhHHIjAxIEHHpiXadzornoa651R+wcddFA6/fTT2233jLo/1yVAgAABAgQIECBAgAABAgQIECBAgEBZBErxBkB0xqKLLppiYd5zzz03Lbzwwnn/VAf/4wn7mK//7rvvzp7AL3rivnpSBBJiLYEoP+uss2bZ1Sl/ZptttmzAPo63NvgfJ8w333zpxhtvTEcccUS2HXnVOmJ7xIgR6frrr29z8D/KdVc9UZdEgAABAgQIECBAgAABAgQIECBAgAABAn1HoDRvADR22WuvvZZizv9XX301Lbfcctl0P3PMMUdjsXb333vvvfTQQw+lmEZo6aWXTiussEIaPHhwu+c1Foh1CWJB4E996lNp+eWXT8OGDcveRmgs195+d9XT3nWm13FvAEwvWfUSIECAAAECBAgQIECAAAECBAgQIECgXqB//W559hZccMEUP9OaBg0alD772c9mP9NSVwz4x8+0pu6qZ1rvw/kECBAgQIAAAQIECBAgQIAAAQIECBAgMHMLlGYKoJmb2d0RIECAAAECBAgQIECAAAECBAgQIECAAIGeFRAA6FlvVyNAgAABAgQIECBAgAABAgQIECBAgAABAj0iIADQI8wuQoAAAQIECBAgQIAAAQIECBAgQIAAAQIEelZAAKBnvV2NAAECBAgQIECAAAECBAgQIECAAAECBAj0iIAAQI8wuwgBAgQIECBAgAABAgQIECBAgAABAgQIEOhZAQGAnvV2NQIECBAgQIAAAQIECBAgQIAAAQIECBAg0CMCAgA9wuwiBAgQIECAAAECBAgQIECAAAECBAgQIECgZwUEAHrW29UIECBAgAABAgQIECBAgAABAgQIECBAgECPCAgA9AizixAgQIAAAQIECBAgQIAAAQIECBAgQIAAgZ4VEADoWW9XI0CAAAECBAgQIECAAAECBAgQIECAAAECPSIgANAjzC5CgAABAgQIECBAgAABAgQIECBAgAABAgR6VkAAoGe9XY0AAQIECBAgQIAAAQIECBAgQIAAAQIECPSIgABAjzC7CAECBAgQIECAAAECBAgQIECAAAECBAgQ6FkBAYCe9XY1AgQIECBAgAABAgQIECBAgAABAgQIECDQIwICAD3C7CIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBnBQQAetbb1QgQIECAAAECBAgQIECAAAECBAgQIECAQI8ICAD0CLOLECBAgAABAgQIECBAgAABAgQIECBAgACBnhUQAOhZb1cjQIAAAQIECBAgQIAAAQIECBAgQIAAAQI9IiAA0CPMLkKAAAECBAgQIECAAAECBAgQIECAAAECBHpWQACgZ71djQABAgQIECBAgAABAgQIECBAgAABAgQI9IiAAECPMLsIAQIECBAgQIAAAQIECBAgQIAAAQJ1xxVUAABAAElEQVQECBDoWQEBgJ71djUCBAgQIECAAAECBAgQIECAAAECBAgQINAjAgIAPcLsIgQIECBAgAABAgQIECBAgAABAgQIECBAoGcFBAB61tvVCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAjwj075GruAgBAgRmgMA+++yTpk6d2ukrL7LIIunYY4/t0Hl333132mCDDdK8886b3njjjQ6d01qhX/7yl+mYY47JDt95551p2WWXba1ouu6669L111/f6vHaA4MGDUo///nPa7NsEyBAgAABAgQIECBAgAABAgQI9AEBAYA+0MmaSKCvCvz6179OH3/8caebP3z48A4FACZMmJD22GOP9Mknn3T6Go0nPPbYY+nggw9O77//fnaovfu+7LLL0pgxYxqrKdwfPHiwAEChjEwCBAgQIECAAAECBAgQIECAQLkFTAFU7v7VOgIEuiAw33zztXvWxIkT0xZbbJH++c9/tlu2vQIffvhh2nXXXfPB//bKx/EHH3ywI8WUIUCAAAECBAgQIECAAAECBAgQ6MMC3gDow52v6QTKLvDiiy92qIlPP/10+tznPpemTJmS5p577nThhRe2ed4999yT9tprr/T444+3Wa6jB3/4wx+mhx56qKPF0+TJk1Pcc6SRI0em0aNHt3nuLLOI9bYJ5CABAgQIECBAgAABAgQIECBAoKQCAgAl7VjNIkAgpYUWWqhdhphy5zvf+U42+N+vX79sMD2mACpKMfB+5JFHpjPPPLNbpv2Ja9x2223p1FNPzS4311xzpUmTJhVdui7v73//e379z3zmM2nhhReuO26HAAECBAgQIECAAAECBAgQIECAQAh4LNT3gACBPi2w//7750/fH3LIIelLX/pSocd9992XRowYkc4444xs8D2eqj/iiCOmafD97bffTrvttltWX0wntOWWW+bXjmBEa6n2bYE111yztWLyCRAgQIAAAQIECBAgQIAAAQIE+riAAEAf/wJoPoG+LDBu3Lh0/vnnZwRLLbVUOvroo1vlGDt2bHr22Wez44suumj605/+lH72s5+l/v3/70WqtgbsW6v029/+dnrhhRdSrDkQCxZ3tI7a+f8FAFrTlU+AAAECBAgQIECAAAECBAgQICAA4DtAgECfFPjoo4+yqX+qjT/rrLPSoEGDqruFn/PPP3826B9z/2+yySaFZTqaedlll6UrrrgiK37OOeekCCp0NFXfAFhwwQXT4osvnp3W0tKSnnvuufTmm292tBrlCBAgQIAAAQIECBAgQIAAAQIESi4gAFDyDtY8AgSKBWIqn+oivttuu2364he/WFzwv7k77rhj+ve//51N+xMLBU9LioH6/fbbL6ti1113TVF3R9PUqVPTI488khWPp//vvvvu9PnPfz7F+gHxFsOQIUPSEksskXbYYYf0zDPPdLRa5QgQIECAAAECBAgQIECAAAECBEooYBHgEnaqJhEg0LbAxIkT009/+tOsUMzlH1P5tJdi/v/uSJ988kk27/8777yTPb0fbx50Jj355JMpFi6OdOedd6b11luv6fSYVih+brzxxnTSSSelUaNGNZWRQYAAAQIECBAgQIAAAQIECBAgUH4BAYDy97EWEiDQIHDuueemGICPtP3226fhw4c3lJh+uyeffHK64447svn+L7744jTPPPN06mK18/9PmjQpzTHHHGmjjTZKG2+8cbYg8aOPPpp+//vfZ0//T548OXvTYN5550277LJLp66jMAECBAgQIECAAAECBAgQIECAQO8XEADo/X2oBQQIdELgww8/TKeffnp2Riy6e+SRR3bi7Gkr+sADD6Sjjjoqq+SAAw5Im266aacrrM7/HycOHTo03XzzzWmllVaqq+fHP/5xOvDAA/MFjvfff/80cuTItMACC9SVs0OAAAECBAgQIECAAAECBAgQIFBuAWsAlLt/tY4AgQaBWHz35ZdfznK32mqrtMoqqzSUmD67U6ZMSTHffyw+HAP2xx9/fJcutM8++6SrrroqxZsEMQVQ4+B/VBqLGcfCwquvvnp2jTfeeCOddtppXbqekwgQIECAAAECBAgQIECAAAECBHqvgDcAem/fuXMCBLogMHr06PysPffcM9+e3huHHnpoeuKJJ9KAAQPSpZdemgYOHNilSy677LIpftpLs846azr66KPTNttskxWtfXOgvXMdJ0CAAAECBAgQIECAAAECBAgQKIeAAEA5+lErCBDogMDrr7+ezb8fRWPu/S984QsdOGvai8RivGeffXZW0cEHH5yGDRuW3n777aaKY3qiaoqFiqtl5pxzztS/f+f/ul511VWr1aVHHnkk37ZBgAABAgQIECBAgAABAgQIECDQNwQ6P6LUN1y0kgCBEgpcc801aerUqVnLtttuuzT77LP3SCv/+Mc/5tc54YQTUvy0lz796U/nRW677bZsod88o4Mbiy22WLbYcEtLS3rzzTc7eJZiBAgQIECAAAECBAgQIECAAAECZREQAChLT2oHAQLtClx77bV5mZ133jnf7k0b8WbAa6+9lmJNgREjRrR56y+88EKKwf9Iyy23XJtlHSRAgAABAgQIECBAgAABAgQIECifgABA+fpUiwgQKBCIgfC77747P7LOOuvk29N7I6YaGjJkSLuXufrqq9Njjz2Wldt3333zc5Zccsksb9KkSWn++edPH3/8cfrUpz6V3nrrrTbXEqjWFScPHz48q8MfBAgQIECAAAECBAgQIECAAAECfUdAAKDv9LWWEujTArEA7zvvvJMZLLHEEmmuuebqMY8vfelLKX7aS08//XQeADjwwAPTCiusUHdK3HMELu66667sDYCbbropffnLX64rU7tz0kkn5bsduX5e2AYBAgQIECBAgAABAgQIECBAgEApBGYpRSs0ggABAu0I3HvvvXmJlVdeOd/ubRvbbLNNfssHHHBAmjBhQr5fu3HmmWem22+/PctaffXV01e/+tXaw7YJECBAgAABAgQIECBAgAABAgT6gIAAQB/oZE0kQCClxx9/PGfozQGAgw46KK233npZW55//vkUiwVfd9116d13382mBnrooYfSN77xjbT//vtnZQYOHJhOP/30bDHgHMAGAQIECBAgQIAAAQIECBAgQIBAnxAwBVCf6GaNJEDg1VdfzRF6cwCgf//+acyYMWmTTTZJTz31VIppg2J6n379+qUBAwakDz/8MG/n4osvnmJdgbXWWivPs0GAAAECBAgQIECAAAECBAgQINB3BLwB0Hf6WksJ9GmBV155JW9/bw4ARCOGDh2aHn300RRz/A8ePDhrVyxyXB38X2CBBdIOO+yQxo8fb/A/73UbBAgQIECAAAECBAgQIECAAIG+J9CvMmjU0vearcUzSiCmL4npSE477bQUi5xKBAhMm8Ann3ySnnvuufTkk09mCwOvscYaackll5y2Sp1NgAABAgQIECBAgAABAgQIECBQCgFTAJWiGzWCAIG+KjDLLLOkYcOGZT991UC7CRAgQIAAAQIECBAgQIAAAQIEigVMAVTsIpcAAQIECBAgQIAAAQIECBAgQIAAAQIECPRqAQGAXt19bp4AAQIECBAgQIAAAQIECBAgQIAAAQIECBQLCAAUu8glQIAAAQIECBAgQIAAAQIECBAgQIAAAQK9WkAAoFd3n5snQIAAAQIECBAgQIAAAQIECBAgQIAAAQLFAgIAxS5yCRAgQIAAAQIECBAgQIAAAQIECBAgQIBArxYQAOjV3efmCRAgQIAAAQIECBAgQIAAAQIECBAgQIBAsYAAQLGLXAIECBAgQIAAAQIECBAgQIAAAQIECBAg0KsFBAB6dfe5eQIECBAgQIAAAQIECBAgQIAAAQIECBAgUCwgAFDsIpcAAQIECBAgQIAAAQIECBAgQIAAAQIECPRqAQGAXt19bp4AAQIECBAgQIAAAQIECBAgQIAAAQIECBQLCAAUu8glQIAAAQIECBAgQIAAAQIECBAgQIAAAQK9WkAAoFd3n5snQIAAAQIECBAgQIAAAQIECBAgQIAAAQLFAgIAxS5yCRAgQIAAAQIECBAgQIAAAQIECBAgQIBArxYQAOjV3efmCRAgQIAAAQIECBAgQIAAAQIECBAgQIBAsYAAQLGLXAIECBAgQIAAAQIECBAgQIAAAQIECBAg0KsF+vfqu3fzBHpY4N13302jR49OH3zwQQ9f2eUIEJhWgXXWWSetu+6601qN8wkQIECAAAECBAgQIECAAAECvUZAAKDXdJUbnRkEzj333HTIIYfMDLfiHggQ6KTAkCFD0uuvv97JsxQnQIAAAQIECBAgQIAAAQIECPReAQGA3tt37nwGCLz33nvZVQcsuk6abagniWdAF7gkgc4LTP0oTX7g7FT9/e18Bc4gQIAAAQIECBAgQIAAAQIECPROAQGA3tlv7noGCwwctnmae8NjZvBduDwBAh0R+OSj97IAQEfKKkOAAAECBAgQIECAAAECBAgQKJOARYDL1JvaQoAAAQIECBAgQIAAAQIECBAgQIAAAQIE/isgAOCrQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESiggAFDCTtUkAgQIECBAgAABAgQIECBAgAABAgQIECAgAOA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIESiggAFDCTtUkAgQIECBAgAABAgQIECBAgAABAgQIECAgAOA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIESiggAFDCTtUkAgQIECBAgAABAgQIECBAgAABAgQIECDQHwEBAgQIECBAgAABAgQIECDQtwXuv//+9Ic//CGNHz8+xXak4cOHp/XXXz99//vfT4MHD24T6LrrrkvXX399m2WqBwcNGpR+/vOfV3ebPt944410+umnpwceeCA99NBD6f3330/LLLNM2mSTTdIBBxyQhg4d2nROUcYHH3yQLr744vS3v/0ta9fTTz+dllxyyaxdo0aNSptttlnRafIIECBAgECpBAQAStWdGkOAAAECBAgQIECAAAECBDoncOaZZ6aDDz44ffTRR3Unvvbaa+mOO+5I559/frrooovSF7/4xbrjtTuXXXZZGjNmTG1Wq9sRTGgtABCBhG9+85vpP//5T935EZiInzPOOCMdd9xx2f3WFWjYeeGFF9J2222XDf7XHnrsscdS/Fx99dVp2223TXHfAwcOrC1imwABAgQIlEpAAKBU3akxBAgQIECAAAECBAgQIECgYwItLS1p9913T6NHj85OmG222dLIkSPT1ltvnSZNmpSuueaadM8996TXX3897bzzztkA/AorrFBY+YMPPliY35nMK664Iu2yyy75Kausskp2L0svvXT6+9//ni6//PLsXg455JAUwYkTTzwxL1u7cd9996WtttoqxZsEkYYNG5a+8pWvpBEjRqS4zwsuuCC99957WRBg//33T+edd17t6bYJECBAgECpBAQAStWdGkOAAAECBAgQIECAAAECBDomEE/1Vwf/l19++TRu3Li66XXirYAf/OAH6eSTT07vvvtu9mR+vBHQmCZPnpxiep1IEUCo1tlYrro/yyzNyxFOmDAhHXjggdUiKQbmTznllDRgwIA8L6Yiiqf677333nTSSSelL3zhC2njjTfOj8dGTPvz9a9/PR/8j3KHHnpoXuYb3/hG+va3v51N//Pyyy9nbzdEcGPTTTfNy9ggQIAAAQJlEmj+r26ZWqctBAgQIECAAAECBAgQIECAQJNADJQfdthhWX7MyX/LLbfUDf7HgRioP/7441MEByLddddd2RP42U7NH/F0/ieffJLlfOYzn0kLL7xwmz8LLrhgzdn/t/mTn/wkn/bnc5/7XDbVT+3gf5RadNFFU7wlUJ2y57vf/W5TPWeffXZ66qmnsvz99tuvbvC/WjjWNqh9e+Daa6+tHvJJgAABAgRKJyAAULou1SACBAgQIECAAAECBAgQINC2wA033JA/Jf+9730vLbHEEoUnzDrrrCmeml9uueXSOuusk/75z382lYuFeqtpzTXXrG526rP2zYJYALi1FIv47rnnntnhRx99ND3xxBN1RX/zm99k+7HOQAQVWksxJVBMDbTqqqtm0wG1Vk4+AQIECBDo7QKmAOrtPej+CRAgQIAAAQIECBAgQIBAJwWuvPLK/IwY4G8rHX744Sl+Wku18/93JQAQbw9UB/Lnm2++tNJKK7V2qSx/tdVWy4//6U9/SvFEf6QITsTbCJFiHYP5558/2y76Y4455kj/+te/ig7JI0CAAAECpRLwBkCpulNjCBAgQIAAAQIECBAgQIBA+wL3339/Viie/F9mmWXaP6GNEtU3AGJqn8UXXzwrGQsMP/fcc+nNN99s48z/O/TCCy+kKVOmZDutLTJcW8lSSy2V78YixdVUbVPsm9O/quKTAAECBPq6gDcA+vo3QPsJECBAgAABAgQIECBAoE8JxGB7ddHe6tP08RT+3XffnWIqnviZNGlSiqf5P/vZz6Ydd9wxWw+gCGnq1KnpkUceyQ5F+ajjmGOOSXfeeWeKxYEjRVAgpg864YQTCoMN8dR/NU2cOLG62ernq6++mh9744038u3qfURGtV1R9tZbb83aNH78+Gzan7jPHXbYIS277LL5uTYIECBAgEBZBQQAytqz2kWAAAECBAgQIECAAAECBAoE4sn86qK9MU3ORx99lHbbbbdsgd3a4jGYf+aZZ6bzzz8/xdz6iy22WO3hbPvJJ59M77//frYdg/7rrbdeU5l4wj9+brzxxnTSSSelUaNG1ZWZa665srpffPHFbBqfWKB49tlnrytTu/P444/nu2+//Xa+XTulT7Qr7merrbZK77zzTl7mgQceSL///e/Tz372sxRrDey99975MRsECBAgQKCMAqYAKmOvahMBAgQIECBAgAABAgQIEGhFIJ7ur6aBAwemL33pS9ngf//+/dMqq6yStttuu+wz9iONGzcurb766qn2yfvq+bXz/0e9Mbf+lltumQ30X3LJJen73/9+/tR/vBGw3377pd/+9rfV0/PPESNGZNsRjDjllFPy/MaNGPCPgEQ1TZgwobqZvbVQ3YmpgTbffPNs8H+BBRZIW2yxRfYzZMiQrEjcyze/+c101FFHVU/xSYAAAQIESikgAFDKbtUoAgQIECBAgAABAgQIECBQLFAbAIjB9Jtuuikb4H/44YdT/Fx11VXZZwzur7zyylklMdXOgQce2FRhdf7/ODB06ND017/+NV1//fXp0EMPTV//+tfTiSeemC3MG4Pt1bT//vun119/vbqbfcYiw/369cu2f/rTn6axY8fWHY+d6qB97bQ/MQVRNdW262tf+1r6+OOPU9T1yiuvZG2MdkYQ4+ijj06zzjprdlpMS1Q7dVC1Lp8ECBAgQKAsAgIAZelJ7SBAgAABAgQIECBAgAABAh0Q+PDDD/NSMUgeA/e33357WmmllfL82IjB/z//+c9pnnnmyfLHjBmTzaVfW2ifffbJAgYnn3xyNuVOYx1RdtCgQemcc87JggyxHwP4p512WmzmaYMNNkjf+MY3sv2YUmjrrbdOO+20Uzr33HPTH//4x2zKnngLIYITm222WX5P1XuLExvbFYP7Rx55ZD7YH2Vi4P/HP/5xioBDpGh/UWAjO+gPAgQIECBQAgFrAJSgEzWBAAECBAgQIECAAAECBAh0VGDOOeesKxpP6cc8/EUppsyJwfLDDjssOxwLBG+44YZ50VhItyOL6cbAezx5v80222Tn1r45UK0s5uSPp/hjkD/S7373u+ynejw+Y7qiyy+/PA8ADB48OD9c264VVlghHXDAAfmxxo1o069+9assGHHXXXeleJOg+lZAY1n7BAgQIECgNwt4A6A39557J0CAAAECBAgQIECAAAECnRRoHOyvHdAvqqp2Yd/HHnusqEiH8lZdddW8XNG0O3PPPXe68sor00UXXVS3BkGctPDCC2cBhFjA980338ye3I/82gBAbbvintsa0I+3ElZbbbWoIsWiw88880y27Q8CBAgQIFA2AQGAsvWo9hAgQIAAAQIECBAgQIAAgTYEFltssfzogAEDUu1+fqBmo/YJ/6effrrmSOc24zrVef5jEL+1FFMBxVoE8TZArEPw3HPPpZdeeimbuicWJo79alpuueWqm3XtGDZsWJ7f2kZ3tau1+uUTIECAAIGZQUAAYGboBfdAgAABAgQIECBAgAABAgR6SGD++edPiyyySHa1jz76qN2n3ydMmJDf2bzzzptvx8bEiRNTBAWKnuivK1jZeeGFF1JLS0uWXTtw31iuuj9w4MDsKf0lllgizTLL/x++GD9+fLVIWn/99fPtESNG5NtPPPFEvt3aRlvtau0c+QQIECBAoLcJ/P//gva2O3e/BAgQIECAAAECBAgQIECAQJcE1llnnfy8e+65J98u2njqqafy7Non6+MJ/QgmxGB+1BeL97aVaqcPGj58eF3RO++8M1soONYJqF3Mt67Qf3cuvPDCbCveJqidnqgzbYoKWmvXfy/jgwABAgQIlEJAAKAU3agRBAgQIECAAAECBAgQIECg4wK77LJLXviKK67In8zPM2s2Yk7+aqou4hv7Med+ddB9ypQp6aabbqoWK/w86aST8vxYzLc23XjjjWnUqFHpJz/5Sbr99ttrD9Vt33vvvekf//hHlvf5z38+C0BUC8QaAyuuuGK2+69//Svdd9991UNNn7EIcXUh4k9/+tPZGgNNhWQQIECAAIESCAgAlKATNYEAAQIECBAgQIAAAQIECHRGIAbgl1xyyeyUG264IR1xxBGFp48dOzZdc8012bGYimfzzTevK1cbEDjggANS7bQ6tQXPPPPMfGB/9dVXT1/96ldrD6cYzK+mE044IX3yySfV3fzz+eefT7vuumu+f+yxx+bb1Y3999+/upni3mrXC6geiDcVvvvd7+bX2HvvvauHfBIgQIAAgdIJCACUrks1iAABAgQIECBAgAABAgQItC0Q8+ufd955adZZZ80KxqB7PIF/2223pY8//jibr/+4445LX/7yl/OKzj///Lx8NfOggw7Kp+GJAfp4mv66665L7777blZPPGUfi/pWB+bjuqeffnq+GHC1npjKZ6ONNsp2x40bl3beeedsip5YMyDqvfjii9PGG2+c4sn+SHGva665ZrZd+8c+++yTNtxwwyzrP//5T9piiy3Sueeemy0i/MEHH6S//OUvad11100x5VCkWENgr732yrb9QYAAAQIEyijQv4yN0iYCBAgQIECAAAECBAgQIECgbYF4mv+WW25JMR1QDJafc8452c9ss81WNw9/LMB76qmnNj39H7X3798/jRkzJm2yySbZgH0sCBxvF8T8/AMGDKirZ/HFF09XX311WmuttZpuLK7x29/+Nq2xxhrp1VdfTVdeeWX2M/vss6cYuK9Ne+yxRzrrrLNqs/LtuG51OqHf/OY36cknn0z77rtvdjzuJxY9rqZVVlklu2btAsPVYz4JECBAgEBZBLwBUJae1A4CBAgQIECAAAECBAgQINBJgRi4f/DBB7PpcmJO/0i1i/DGE/I333xzOvDAA1uteejQoenRRx9NMcf/4MGDs3Lx5H61ngUWWCDtsMMOafz48YWD/9WKF1lkkfTII4+kb3/72/mbBrWD/yNGjMiCArEIcAz0t5YGDRqUvTFwwQUXZAsUV8tWB//nmWeedPDBB6e77747LbbYYq1VI58AAQIECJRCwBsApehGjSBAgAABAgQIECBAgAABAl0TiIH3a6+9NlsI+J///Gd6+OGH09xzz52WX375tPTSS3eo0nhr4NBDD80G1mPe/XjyPhYGjif6q2sNdKSiIUOGpF/+8pcppiSKOp555pk033zzZQP5Sy21VJsD/431x9Q+8fPOO++kBx54IL322mvZvcST/xEkkAgQIECAQF8QEADoC72sjQQIECBAgAABAgQIECBAoB2BeFJ+hRVWyH7aKdrq4ZhOZ9iwYdlPq4U6cCACEGuvvXb204HibRaJtxLiTQeJAAECBAj0RQFTAPXFXtdmAgQIECBAgAABAgQIECBAgAABAgQIECi9gABA6btYAwkQIECAAAECBAgQIECAAAECBAgQIECgLwoIAPTFXtdmAgQIECBAgAABAgQIECBAgAABAgQIECi9gABA6btYAwkQIECAAAECBAgQIECAAAECBAgQIECgLwoIAPTFXtdmAgQIECBAgAABAgQIECBAgAABAgQIECi9gABA6btYAwkQIECAAAECBAgQIECAAAECBAgQIECgLwoIAPTFXtdmAgQIECBAgAABAgQIECBAgAABAv+PvTsB12u6G8b9yyhJJUGQCEWIiBBExNySmlJSigjqLd5StKoiamiqWh18qLZK1VQ1hNbwmcdKYp5nQogQJMZIIoNMcpL8u/b3f3afc3LOyRmeHHGee13XybP2mvba9357ve3+7b0WAQIEmr2AAECzv8UukAABAgQIECBAgAABAgQIECBAgAABAgTKUUAAoBzvumsmQIAAAQIECBAgQIAAAQIECBAgQIAAgWYvIADQ7G+xCyRAgAABAgQIECBAgAABAgQIECBAgACBchQQACjHu+6aCRAgQIAAAQIECBAgQIAAAQIECBAgQKDZCwgANPtb7AIJECBAgAABAgQIECBAgAABAgQIECBAoBwFBADK8a67ZgIECBAgQIAAAQIECBAgQIAAAQIECBBo9gICAM3+FrtAAgQIECBAgAABAgQIECBAgAABAgQIEChHAQGAcrzrrpkAAQIECBAgQIAAAQIECBAgQIAAAQIEmr1A62Z/hS6QAAECBAgQIECAAAECBL50gYkTJ8a4ceO+9HmYAAEC9RNo3759DBw4MFq29A5p/eS0JkCAwIohIACwYtwHsyBAgAABAgQIECBAgECzFth2221j6tSpzfoaXRyB5ipwxRVXxA9+8IPmenmuiwABAs1aQACgWd9eF0eAAAECBAgQIECAAIEVQ2D69OnZRFbacO9o0aLFijEpsyBAoFaBhVPHxaIZE6Pwn99aG6skQIAAgRVSQABghbwtJkWAAAECBAgQIECAAIHmKdDlwDv+EwCwlEjzvLuuqrkJzHzg5Pj86fOa22W5HgIECJSVgP/WVVa328USIECAAAECBAgQIECAAAECBAgQIECAQLkICACUy512nQQIECBAgAABAgQIECBAgAABAgQIECBQVgICAGV1u10sAQIECBAgQIAAAQIECBAgQIAAAQIECJSLgABAudxp10mAAAECBAgQIECAAAECBAgQIECAAAECZSUgAFBWt9vFEiBAgAABAgQIECBAgAABAgQIECBAgEC5CAgAlMuddp0ECBAgQIAAAQIECBAgQIAAAQIECBAgUFYCAgBldbtdLAECBAgQIECAAAECBAgQIECAAAECBAiUi4AAQLncaddJgAABAgQIECBAgAABAgQIECBAgAABAmUlIABQVrfbxRIgQIAAAQIECBAgQIAAAQIECBAgQIBAuQgIAJTLnXadBAgQIECAAAECBAgQIECAAAECBAgQIFBWAgIAZXW7XSwBAgQIECBAgAABAgQIECBAgAABAgQIlIuAAEC53GnXSYAAAQIECBAgQIAAAQIECBAgQIAAAQJlJSAAUFa328USIECAAAECBAgQIECAAAECBAgQIECAQLkICACUy512nQQIECBAgAABAgQIECBAgAABAgQIECBQVgICAGV1u10sAQIECBAgQIAAAQIECBAgQIAAAQIECJSLgABAudxp10mAAAECBAgQIECAAAECBAgQIECAAAECZSUgAFBWt9vFEiBAgAABAgQIECBAgAABAgQIECBAgEC5CAgAlMuddp0ECBAgQIAAAQIECBAgQIAAAQIECBAgUFYCAgBldbtdLAECBAgQIECAAAECBAgQIECAAAECBAiUi4AAQLncaddJgAABAgQIECBAgAABAgQIECBAgAABAmUlIABQVrfbxRIgQIAAAQIECBAgQIAAAQIECBAgQIBAuQgIAJTLnXadBAgQIECAAAECBAgQIECAAAECBAgQIFBWAgIAZXW7XSwBAgQIECBAgAABAgQIECBAgAABAgQIlIuAAEC53GnXSYAAAQIECBAgQIAAAQIECBAgQIAAAQJlJSAAUFa328USIECAAAECBAgQIECAAAECBAgQIECAQLkICACUy512nQQIECBAgAABAgQIECBAgAABAgQIECBQVgICAGV1u10sAQIECBAgQIAAAQIECBAgQIAAAQIECJSLgABAudxp10mAAAECBAgQIECAAAECBAgQIECAAAECZSUgAFBWt9vFEiBAgAABAgQIECBAgAABAgQIECBAgEC5CAgAlMuddp0ECBAgQIAAAQIECBAgQIAAAQIECBAgUFYCAgBldbtdLAECBAgQIECAAAECBAgQIECAAAECBAiUi4AAQLncaddJgAABAgQIECBAgAABAgQIECBAgAABAmUlIABQVrfbxRIgQIAAAQIECBAgQIAAAQIECBAgQIBAuQgIAJTLnXadBAgQIECAAAECBAgQIECAAAECBAgQIFBWAgIAZXW7XSwBAgQIECBAgAABAgQIECBAgAABAgQIlIuAAEC53GnXSYAAAQIECBAgQIAAAQIECBAgQIAAAQJlJSAAUFa328USIECAAAECBAgQIECAAAECBAgQIECAQLkICACUy512nQQIECBAgAABAgQIECBAgAABAgQIECBQVgICAGV1u10sAQIECBAgQIAAAQIECBAgQIAAAQIECJSLgABAudxp10mAAAECBAgQIECAAAECBAgQIECAAAECZSUgAFBWt9vFEiBAgAABAgQIECBAgAABAgQIECBAgEC5CAgAlMuddp0ECBAgQIAAAQIECBAgQIAAAQIECBAgUFYCzTIA8Pzzz8cZZ5wRe+21V3Tt2jX723nnneMXv/hFzJw5s043eNGiRXHFFVfEbrvtFuutt16suuqqseeee8ZvfvObeO655+o0Rmr09ttvx1FHHRX9+vWLTp06RZ8+fbLjK6+8MubMmdPk49T5hBoSIECAAAECBAgQIECAAAECBAgQIECAwFdaoPVXevbVTP7CCy+Mk046KRYuXFipdsqUKfHII4/E5ZdfHunh+957712pvvjggw8+iEGDBsWrr75aXBz3339/9vfb3/42G+N//ud/KtVXPTjvvPNixIgRleby+uuvR/pLwYU0l7vvvjsLLlTtW3xcqnGKx5QnQIAAAQIECBAgQIAAAQIECBAgQIAAgeYt0GwCAEuWLInDDz88Ro4cmd2xtm3bZm/vf+c734nZs2fHrbfeGk8++WR8+umncfDBB2dv8W+88cZL3d1Zs2ZlXw4UHv5vueWWkcZYe+21swBCGmfevHlx2GGHZV8THHfccUuNkQpSkOHkk0/O6tq1axcHHXRQbL/99jF58uS466674uWXX87mk75MGDVqVPaVQnUDlWqc6sZWRoAAAQIECBAgQIAAAQIECBAgQIAAAQLNV6DZLAGUHpQXHv736tUrJk6cmL1df+yxx2YP4h977LH8gfznn38eP/zhD6u9q2mJn1deeSWrGzp0aDz99NPZsj/HHHNMXHfdddkXAJ07d44UcBg2bFh8+OGHS42TggyFwEBqe99998VVV10VaYzf/e538eyzz2ZBiNRx7Nix2fhLDfKfglKNU93YyggQIECAAAECBAgQIECAAAECBAgQIECgeQs0iwDAggUL4tRTT83uVIcOHbI36tMb+8WpZcuW8X/+z/+JFBxI6fHHH88esBe3mT59elx66aVZ0brrrpsFFNKXBMVpp512imuvvTYrqqioiMsuu6y4Osuff/752VcC6eCcc86J9JZ/cWrTpk0WTBgwYEBWfM0112RfKRS3SflSjVN1XMcECBAgQIAAAQIECBAgQIAAAQIECBAg0PwFmkUA4J577ompU6dmd2v48OGRHt5Xl1q1ahVHHHFEbLTRRrHtttvGm2++WanZTTfdFOnrgJTSlwNVH/4XGg8ePDgKywelAEDV/Qb+8Y9/ZE07duwY//u//1voVuk3BSTSXFNK50xBgKqpVONUHdcxAQIECBAgQIAAAQIECBAgQIAAAQIECDR/gWYRAEgP7gspPeCvLf385z/PHvw/8cQTseOOO1ZqmvYIKKQ99tijkK32d7fddsvKP/roo3jwwQfzNu+++258/PHH2XF687+mIEJqsOuuu0aLFi2ytml5oeJUqnGKx5QnQIAAAQIECBAgQIAAAQIECBAgQIAAgfIRaBYBgOeffz67Y+nN/w033LDBd++pp57K+qa38zfffPNax9liiy3y+sKGwamgMEbKpw2Ea0trrLFGrLXWWlmT4jFSQanGqe386ggQIECAAAECBAgQIECAAAECBAgQIECg+Qq0/qpf2rx58+Ktt97KLqPwwH3x4sWR3vB/5JFHsr/Zs2dH//79Y4cddoi0sW96wF9dKoyT9g9I6/TXloqXGXrjjTfyphMmTMjzPXr0yPM1ZdI4aSPhNMf0271796xpqcap6bzKCRAgQIAAAQIECBAgQIAAAQIECBAgQKB5C3zlAwDvvfdepAf+KXXp0iVbj/+www6L66+/vtKdSwGBCy+8MC6//PK4+uqrY5111qlUP2fOnFi0aFFW1rVr10p11R2kt/cLKW0eXEizZs0qZKMh4xQCAKUaJ5+MDAECBAgQIECAAAECBAgQIECAAAECBAiUlcBXPgCQ3pwvpHbt2sU+++wT9913X7Ru3Tr69OmTbfib3qYfN25cVFRUxAMPPBD9+vWLsWPHRrdu3QpdY+bMmXm+ffv2eb6mTHGbuXPn5s1WtHHyiTUiM3LkyLjkkktiyZIljRjl/3VNexukNGXKlOzXPwQIECBAgAABAgQIECBAgAABAgQIECCwfASaVQAgvd2fHvKnB/zXXnttFgAosKU19g855JBIv1OnTo1hw4ZV+kqgaiCh0K+m35VWWimvKg4ArGjj5JNsRObuu+/OllRqxBBLdf3ggw+WKlNAgAABAgQIECBAgAABAgQIECBAgAABAqUT+MoHAL744otcIz38T+v3P/zww9GxY8e8PGU222yzePDBB7MvAmbMmBE33HBD/PjHP45vfvObWbviNf/TOMtKxW3SlweFtKKNU5hXY37/8Y9/xIknnpgvtdSYsc4///y48cYbsyBNY8bRlwABAgQIECBAgAABAgQIECBAgAABAgRqF/jKBwBWXnnlSld4zjnnLPXwv9Bg9dVXj5///Odx6qmnZkVpk+BCAKB4nPnz5xe61Phb3KZz5855uxVtnHxijch06NAhtt1220aM8N+u6eG/RIAAAQIECBAgQIAAAQIECBAgQIAAAQLLX6Dl8j/F8j1D1Tf9Cw/0azrrjjvumFelfQEKqXic4g14C/VVf4vbdOrUKa8uzhe3yRtUyRS3Ke5bnC9uU6V7fljcprhv3kCGAAECBAgQIECAAAECBAgQIECAAAECBMpK4CsfAFhnnXXyG5aW3yk+ziuKMj179syP3nrrrTyfNvXt3r17djx58uS8vKZMcZvizYQ33HDDvEtxm7ywSqbQJm1a3KVLl7y2VOPkA8oQIECAAAECBAgQIECAAAECBAgQIECAQFkJfOUDAOmh+VprrZXdtIULF8bbb79d6w387LPP8vpVV101z6dMnz59suP0Nv2nn35aqa7qwYQJE/KiAQMG5PnCGKmgOMCQNyjKpPm+9957WUnfvn2jeC+BUo1TdDpZAgQIECBAgAABAgQIECBAgAABAgQIECgjga98ACDdq+L16Z988slab1/xg/sePXpUals8TtofoLb06KOP5tXF/bbYYotYaaWVsrpljfHMM8/EggULsrbFY6SCUo2TDe4fAgQIECBAgAABAgQIECBAgAABAgQIECg7gWYRADjkkEPyG3f99dfHkiVL8uOqmSuvvDIv2nffffN8ygwZMiQ/HjlyZJ6vmpk0aVI8/PDDWfHWW28dXbt2zZukTYAHDRqUHb/66qvx4osv5nVVM9dcc01eNHjw4DyfMqUap9KgDggQIECAAAECBAgQIECAAAECBAgQIECgbASaRQBgn332ifXWWy+7affcc0+MGDGi2ht41113xa233prVrbvuurHHHntUarfllltG//79s7I77rgjrr322kr16WDevHlx1FFHRVq+J6VTTz01+y3+J9UX0jHHHBMzZswoHOa/aZ6FYMRmm20We+21V15XyJRqnMJ4fgkQIECAAAECBAgQIECAAAECBAgQIECgfASaRQAgrZ1/2WWXRatWrbI7d/bZZ8ePf/zjeOihh6KioiLSRrtnnXVWfPe7383v7OWXX563zwv/k/nrX/8aLVq0yL4iOPzww+P3v/99vPPOO9kD/8ceeyx7u3/UqFFZl+222y7233//4u5ZPr3NX/gK4Nlnn42BAwfGAw88EPPnz48PPvggLrjggmwuKYjQsmXLSPNN56yaSjVO1XEdEyBAgAABAgQIECBAgAABAgQIECBAgEDzF2jdXC4xvc2fHsyn5YA++eSTuPjii7O/tm3bxhdffJFfZnrg/sc//nGpt/8LDdJD/bSM0A9+8IOYM2dOnH766dlfmzZt8rf+U9uePXvGnXfemT3AL/Qt/r3uuuuyudx///3x0ksvxa677hpVx0jt01z23nvv4q6V8qUap9KgDggQIECAAAECBAgQIECAAAECBAgQIECg2Qs0iy8ACncpvWmf1txPa/t37NgxKy5++L/TTjtFeiA/bNiwQpdqf4cOHRpPPfVUpPX9C18VFJb8SQGF1D/Vr7766tX2T4WrrbZa3HvvvdlyRCmfUmGMlO/bt2/cfffdy5xLqcZJ55QIECBAgAABAgQIECBAgAABAgQIECBAoHwEms0XAIVbttZaa8Vtt92WLeHz5ptvxssvvxydOnWKXr16xQYbbFBotszftC5/Wr5n7ty52Rv8aePf1H/jjTeOzp07L7N/apC+NkhLCBWWEUrBifbt22dz6dGjR41fD1QdvFTjVB3XMQECBAgQIECAAAECBAgQIECAAAECBAg0X4FmFwAo3Kq0pn56WJ/+GpM6dOgQO+ywQ/bXmHHSA//019hUqnEaOw/9CRAgQIAAAQIECBAgQIAAAQIECBAgQGDFFmhWSwCt2NRmR4AAAQIECBAgQIAAAQIECBAgQIAAAQIEmk5AAKDprJ2JAAECBAgQIECAAAECBAgQIECAAAECBAg0mYAAQJNROxEBAgQIECBAgAABAgQIECBAgAABAgQIEGg6AQGAprN2JgIECBAgQIAAAQIECBAgQIAAAQIECBAg0GQCAgBNRu1EBAgQIECAAAECBAgQIECAAAECBAgQIECg6QQEAJrO2pkIECBAgAABAgQIECBAgAABAgQIECBAgECTCQgANBm1ExEgQIAAAQIECBAgQIAAAQIECBAgQIAAgaYTEABoOmtnIkCAAAECBAgQIECAAAECBAgQIECAAAECTSYgANBk1E5EgAABAgQIECBAgAABAgQIECBAgAABAgSaTkAAoOmsnYkAAQIECBAgQIAAAQIECBAgQIAAAQIECDSZgABAk1E7EQECBAgQIECAAAECBAgQIECAAAECBAgQaDoBAYCms3YmAgQIECBAgAABAgQIECBAgAABAgQIECDQZAICAE1G7UQECBAgQIAAAQIECBAgQIAAAQIECBAgQKDpBAQAms7amQgQIECAAAECBAgQIECAAAECBAgQIECAQJMJtG6yMzkRAQIECBAgQKCOAosXL46f/OQnkX7rkoYOHRrf+ta3qm06bdq0+NOf/hTPP/98TJgwIT766KPo0aNHbLzxxvGNb3wjjjvuuGjbtm21fQuFd955Z9x9992Fw1p/O3TokJ2vpkZpnH/+85/ZXNJ80rnTXDbZZJP40Y9+FFtuuWVNXZUTIECAAAECBAgQIECAAIF6CQgA1ItLYwIECBAgQKApBN588824+OKL63yq3r17VxsAuOCCC+JXv/pVzJgxo9JY48aNi/R36623xqWXXhqXXHJJ7LLLLpXaFB9cd911ccMNNxQX1Zjv3LlztQGAiRMnxjHHHBOjR49equ+UKVPi0UcfjSuuuCILSJx11lnxta99bal2CggQIECAAAECBAgQIECAQH0EBADqo6UtAQIECBAg0CQCL774YqPPkx7an3DCCfk43/72t7M3/rt37x5vvfVW3HLLLVkQYPz48bHXXnvFc889F3369MnbF2caO5/58+fHd7/73Rg7dmw27JprrhmHHnpodr65c+dmXyekrwIqKioiBS1SwOLqq68unoI8AQIECBAgQIAAAQIECBCot4AAQL3JdCBAgAABAgSWt8BLL72Un+K+++6LLbbYIj+uLtOpU6dKxe+88062nE4qbNOmTdx4443ZA/jiRmeccUacdNJJceGFF8a8efOyB/LPPPNM1r643Zw5c7KAQSrbbbfdYuTIkcXVS+Vbtlx6i6Wf/exn+cP/PffcM1sCaLXVVqvUd/jw4ZHqPvnkk7jmmmviO9/5TgwZMqRSGwcECBAgQIAAAQIECBAgQKA+AgIA9dHSlgABAgQIEGgSgUIAoHXr1rHzzjtHu3bt6nXe66+/PmbPnp31Ofnkk5d6+J8qUmDgz3/+czz11FPx7LPPRjrnCy+8ENtuu22lc73yyiv5XgTbbbdddOvWrVL9sg7SW/1XXXVV1mzVVVfN3uyv+vA/VaYgx2WXXRb77rtv1jYtByQAkFH4hwABAgQIECBAgAABAgQaKLD0K2oNHEg3AgQIECBAgECpBAoBgE033bTeD//THB5++OF8KkcffXSer5pp1apVHHDAAXlxCgBUTYW5pPL+/ftXrV7mcVpaKH1FkFJ6uN+1a9ca+wwePDhf+7+6udTYUQUBAgQIECBAgAABAgQIEKhGQACgGhRFBAgQIECAwJcn8OGHH0baFDelhjxwT/3SW/rpbf2NN9441l133VRUY1prrbXyuvfffz/PFzLF6/83ZD6zZs2K3XffPVIwY1n90/JBaX+AlD799NNYsGBBYRp+CRAgQIAAAQIECBAgQIBAvQUsAVRvMh0IECBAgACB5SlQ/Mb91ltvnZ/q888/z9bHX3/99SO9uV9bKiy5U1ubQt3LL79cyMbmm2+e5wuZwnzSg/mvf/3rWfGSJUti0qRJsfLKK0eXLl0KTav93WOPPSL91SXNnDkz3n333axpCl6stNJKdemmDQECBAgQIECAAAECBAgQqFbAFwDVsigkQIAAAQIEviyBwgP3dP5evXrF73//++jRo0ekjX579uyZPXTfZpttss1704P4xqS0T8B1112XD5HGLU6LFi3KN+9Nb+8/8cQTMWjQoOjYsWOkQMTqq6+efWFw4IEHxttvv13ctUH5tAdA4ZqqzqVBA+pEgAABAgQIECBAgAABAmUt4AuAsr79Lp4AAQIECKx4AsUBgP333z/SEjrFaf78+dmmvWnj3ltuuSXbYHe99dYrblLn/G9/+9vsq4LUYc8998wCDcWdx48fH+l8KT322GOx4447Fldn+cmTJ0f6u/fee+Pcc8+NH//4x0u1qUvBRx99lAU7Utu0FFBtexfUZTxtCBAgQIAAAQIECBAgQICAAID/GyBAgAABAgRWKIHiNffTw//evXvHt771rdh+++2zvQGeeeaZuPHGG7M35R966KFIG+c+//zz0bZt23pdR1om6A9/+EPWJ31dcPnlly/Vv3gu6WuBr33ta7HzzjvHLrvsku0z8Oqrr8bNN9+cvf2fNvo97rjjYtVVV41DDjlkqbFqK0hL/3z729+O9JvSCSecUG2wobYx1BEgQIAAAQIECBAgQIAAgaoCAgBVRRwTIECAAAECX5pAeshevJTO8OHD47zzzosWLVpUmlN60D506ND4+OOPIz2EP+uss+LXv/51pTa1Hdx5553xwx/+MG/y5z//OV/fPy/8T6b4a4S111477r///ujTp09xk/jVr34Vw4YNywMIP/3pT2O33XaLNdZYo1K7mg7mzZsX++67bxT2Iigse1RTe+UECBAgQIAAAQIECBAgQKCuAvYAqKuUdgQIECBAgMByF0hv8Y8ePTr+/ve/x9VXXx1//OMfl3r4nybxjW98I/72t7/l80kBgLRJcF1SevP/gAMOiIqKiqz5L3/5y/jBD35Qbddjjjkm/u///b/ZlwJpCaCqD/9Tpw4dOsTFF18c/fr1y8aYOnVqpIBCXVJqu+uuu8bDDz+cNV933XXjvvvui/bt29eluzYECBAgQIAAAQIECBAgQKBWAV8A1MqjkgABAgQIEGhKgZVWWilb7qcu59xvv/2yh+5pmZ6FCxfGuHHjYlkb55555pmVvhRIb+/X9uVA2nQ4/S0rtWrVKhsnvcmfUvGXAzX1feutt7Jlf9JvSmmj4zFjxiy1D0FN/ZUTIECAAAECBAgQIECAAIFlCfgCYFlC6gkQIECAAIEVVmCLLbbI5zZ27Ng8XzWT3vZPb/kXHvanB/aXXHJJfly1fUOO6zqXNPZTTz0VO+ywQxQe/vfv3z+efPJJD/8bAq8PAQIECBAgQIAAAQIECNQo4AuAGmlUECBAgAABAiu6QFoyp5DScjrVpbSR8JAhQ2LUqFFZddrI9/rrr882D66ufUPL1llnnWy5oiVLlsS0adNqHObWW2+NQw89NNLa/ynttdde2abGaV4SAQIECBAgQIAAAQIECBAopYAvAEqpaSwCBAgQIECgUQLpTf2PPvooXnnllVofohdO8t577xWykTbPrZpSUOCb3/xm/vB/rbXWytbbHzx4cNWm1R6n4EF6S7+2rwsKHSdPnhzp4X9KG220UaG40u+ll16aBSMKD/9/9KMfxR133BEe/ldickCAAAECBAgQIECAAAECJRIQACgRpGEIECBAgACBxgv84he/iO7du0daTuevf/3rMgdM6/4XUu/evQvZ7HfGjBmxxx57xMsvv5wdb7bZZvH0009HWm6nLmn27NnRpUuX7GH+tttuG/Pnz6+1W21zSR3T5sPpgf/ixYuzLwXSBsdpI+O0HJFEgAABAgQIECBAgAABAgSWh4AAwPJQNSYBAgQIECDQIIHdd98973fbbbflb9TnhUWZBx98MJ599tmsZOONN17qC4D0sD1tEJzSgAEDsjf/v/71r2fHdfmnY8eOkR78p5Te2L/vvvtq7Xbuuefm9fvss0+eT5lXX301fvjDH2bX07JlyywYMHz48EptHBAgQIAAAQIECBAgQIAAgVILCACUWtR4BAgQIECAQIMFdtppp+yt+zTASy+9FH/+85+rHWvKlClx3HHH5XXnnHNOpTfpx4wZk63znxqkZX/SMjurrbZa3r6umX333TdvesIJJ8Rnn32WHxdnLrzwwizAkMr69esX3/ve94qr48c//nGk5Y1S+tWvfhWHHXZYpXoHBAgQIECAAAECBAgQIEBgeQjYBHh5qBqTAAECBAgQaJBAu3bt4pprrsk26E3r6Z988skxceLEOOmkk2L99dePTz/9NNKb/8OGDYuPP/44O0faRLf4Qf0XX3xRKTiQ3uQ/6qij6jSfPffcM44//vi87Yknnhi33357PP744zFp0qTYZptt4k9/+lMMHDgw0lzTm/3nn39+XH311VmfVJaOW7RokY+RrufRRx/NjtPb/2kZorruQZDGTcsQSQQIECBAgAABAgQIECBAoCECAgANUdOHAAECBAgQWG4C6YH+WWedFaeffnosWrQoLrroouwvPVyvug5/elifHsgXpxQgGD9+fF705ptvRvqrS+rWrVulZq1bt44bbrghe+A/YcKEbEPgtLxPesDfpk2bSMGGYvT9RQAAQABJREFUQkrLC91yyy2x9dZbF4qy34svvjg/Tuv/33PPPfnxsjKFzYKX1U49AQIECBAgQIAAAQIECBCoTsASQNWpKCNAgAABAgS+VIHTTjstXnjhhezBe2EihYf/6aH85ptvnr11f8EFF0Q6Lk6vvfZa8WGj82uvvXb2pn9a479z587ZeOnrhMLD/zXWWCMOPPDAeO6555Z6+J8aF28O3OjJGIAAAQIECBAgQIAAAQIECNRDoPL/Yq5HR00JECBAgAABAstTID3kf+CBB2LWrFnZG/1vv/12rLfeerHllltG+/btazx12ly31Bvstm3bNluOKC1F9N5772XzSW/nb7XVVtmcapzMfypmzpxZW7U6AgQIECBAgAABAgQIECCw3AQEAJYbrYEJECBAgACBUgh06tQpBgwYkP2VYrzGjJHW8O/Ro0f215hx9CVAgAABAgQIECBAgAABAk0hYAmgplB2DgIECBAgQIAAAQIECBAgQIAAAQIECBAg0MQCAgBNDO50BAgQIECAAAECBAgQIECAAAECBAgQIECgKQQEAJpC2TkIECBAgAABAgQIECBAgAABAgQIECBAgEATCwgANDG40xEgQIAAAQIECBAgQIAAAQIECBAgQIAAgaYQEABoCmXnIECAAAECBAgQIECAAAECBAgQIECAAAECTSwgANDE4E5HgAABAgQIECBAgAABAgQIECBAgAABAgSaQkAAoCmUnYMAAQIECBAgQIAAAQIECBAgQIAAAQIECDSxgABAE4M7HQECBAgQIECAAAECBAgQIECAAAECBAgQaAoBAYCmUHYOAgQIECBAgAABAgQIECBAgAABAgQIECDQxAICAE0M7nQECBAgQIAAAQIECBAgQIAAAQIECBAgQKApBAQAmkLZOQgQIECAAAECBAgQIECAAAECBAgQIECAQBMLCAA0MbjTESBAgAABAgQIECBAgAABAgQIECBAgACBphAQAGgKZecgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJNLCAA0MTgTkeAAAECBAgQIECAAAECBAgQIECAAAECBJpCQACgKZSdgwABAgQIECBAgAABAgQIECBAgAABAgQINLFA6yY+n9MRIECAAIEvVeDTTz+NRYsWfalzcHICBOon0KJFi1hzzTUj/UoECBAgQIAAAQIECBAgUHcBAYC6W2lJgAABAl9xgTPPPDN+/etff8WvwvQJlKfAYYcdFldffXV5XryrJkCAAAECBAgQIECAQAMFlksAYMmSJVFRURFt2rSpNK3XX3897rnnnnjooYdi1VVXjf333z/23Xdfb3NVUnJAgAABAstLIP3/oZRarLRKtGjdbnmdxrgECJRSYPHCWDxvWhT+81vKoY1FgAABAgQIECBAgACB5i5Q0gDAhx9+GJdeemlcc8012e8ee+yR+40ePToGDRpUadmFkSNHhre5ciIZAgQIEGgigVUGXRId+hzURGdzGgIEGiPwxYfPxqdXb9OYIfQlQIAAAQIECBAgQIBA2QqULACwYMGC7AH/2LFjM8y33347R508eXIcfPDBlR7+FypTsGCLLbaI4cOHF4r8EiBAgAABAgQIECBAgAABAgQIECBAgAABAo0UaNnI/nn3ESNGROHhf9qgrWXL/w59ySWXxLRp07K2W265ZTz22GORvgjYaqutsrJTTjklXnvttXwsGQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBxAiX5AmDRokVx0UUXZTNJD/X//ve/R79+/fKZXX/99Xn+H//4R16XggDrr79+zJo1KwsKbLrppnk7GQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDhAv99Tb/hY0Ra7ictAZTSaaedlj/gT8fjx4+PiRMnpmxsvPHGlerSRsBDhgzJ6l544YXs1z8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4wVKEgAYN25cNpNWrVrF7rvvXmlW9957b3787W9/O88XMukLgJRefPHF7Nc/BAgQIECAAAECBAgQIECAAAECBAgQIECAQOMFShIAmDRpUjaTtddeO1ZZZZVKsyoOAOy5556V6tLBwoULs7KKioql6hQQIECAAAECBAgQIECAAAECBAgQIECAAAECDRMoSQBgnXXWyc4+ZcqUSrOYN29ePPLII1lZu3btYuedd65Unw7eeOONrGzdddddqk4BAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0DCBkgQAevbsmZ19/vz5kTb2LaQbbrghUllKAwcOjPbt2xeqst933nknbrvttizfo0ePSnUOCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgYYLlCQA0Ldv39hkk02yWRx55JFxxx13xD//+c8YPnx4PrPvf//7eT5lnnzyydhtt93yJYAOP/zwSvUOCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgYYLtG541//2bNGiRZxxxhlxyCGHRNoPYN999/1v5X9y3/zmN+OAAw7Iy3bZZZd4+OGH8+N99tknttxyy/xYhgABAgQIECBAgAABAgQIECBAgAABAgQIEGicQEm+AEhTOPjgg+Oqq66KNm3aVJpR+jIgLfPTtm3bvLxz5855fvDgwXHttdfmxzIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4wVK8gVAYRppGZ899tgje7v/3Xffzdb9HzBgQLRsWTnOkN72X7JkSRx00EHZVwNV6wvj+SVAgAABAgQIECBAgAABAgQIECBAgAABAgQaJlDSAECawlprrZV9DVDbdM4888zaqtURIECAAAECBAgQIECAAAECBAgQIECAAAECjRSo/Gp+IwfTnQABAgQIECBAgAABAgQIECBAgAABAgQIEFgxBAQAVoz7YBYECBAgQIAAAQIECBAgQIAAAQIECBAgQKCkAiVfAujzzz+Pm266KcaPHx9z5syJioqKbL3/Zc06bQac/iQCBAgQIECAAAECBAgQIECAAAECBAgQIECg8QIlDQCce+658fvf/z5mzZpV75l169ZNAKDeajoQIECAAAECBAgQIECAAAECBAgQIECAAIHqBUoWALjtttvi1FNPrf4sSgkQIECAAAECBAgQIECAAAECBAgQIECAAIEmFShJAGDx4sVx5JFH5hPfaqut4thjj40ePXrE1772tWjRokVeV1NmnXXWqalKOQECBAgQIECAAAECBAgQIECAAAECBAgQIFBPgZIEANJ6/9OnT89Oveeee8Ytt9wSHTp0qOdUNCdAgAABAgQIECBAgAABAgQIECBAgAABAgRKJdCyFAO98MIL+TAnnXSSh/+5hgwBAgQIECBAgAABAgQIECBAgAABAgQIEPhyBEoSAKioqMhmn5b62XHHHb+cK3FWAgQIECBAgAABAgQIECBAgAABAgQIECBAIBcoSQBg++23zwZcsmRJvhRQfgYZAgQIECBAgAABAgQIECBAgAABAgQIECBAoMkFShIA6NWrV3Tp0iWb/JgxY5r8IpyQAAECBAgQIECAAAECBAgQIECAAAECBAgQqCxQkgBAGvKXv/xlNvKIESNi6tSplc/iiAABAgQIECBAgAABAgQIECBAgAABAgQIEGhSgZIFAE444YRID/8//PDD6N27d/ztb3+LN954I+bNm9ekF+RkBAgQIECAAAECBAgQIECAAAECBAgQIECAQETrUiDMnDkzjjvuuGyo9u3bx7Rp0/LjVLjKKqtEq1ataj3VKaecEulPIkCAAAECBAgQIECAAAECBAgQIECAAAECBBovUJIAwPz58+O6666rcTYzZsyosa5Q4UuBgoRfAgQIECBAgAABAgQIECBAgAABAgQIECDQeIGSBABatmwZ66yzTqNm06lTp0b115kAAQIECBAgQIAAAQIECBAgQIAAAQIECBD4r0BJAgBrrLFGTJ48+b+jyhEgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJfqkDJNgH+Uq/CyQkQIECAAAECBAgQIECAAAECBAgQIECAAIFKAiX5AqDSiP//QVr3f9y4cTF+/Ph44403YsGCBZG+FOjatWvsvPPOsdFGG1XXTRkBAgQIECBAgAABAgQIECBAgAABAgQIECBQAoGSBwDSg/5zzz03zjrrrEibA9eUNt9886zN3nvvXVMT5QQIECBAgAABAgQIECBAgAABAgQIECBAgEADBUq6BNDYsWOjb9++ccYZZ9T68D/N9ZVXXonBgwfHz3/+8wZOXTcCBAgQIECAAAECBAgQIECAAAECBAgQIECgJoGSfQGQ3vw/5JBDYsKECdm52rRpE0OGDIlNNtkkevToEe3atYv33nsv+7v99ttj0qRJWbuzzz47a3PYYYfVNEflBAgQIECAAAECBAgQIECAAAECBAgQIECAQD0FShYASG/9v/baa9np05v9559/fmy44YbVTucPf/hDXHbZZXHKKadkXwr85Cc/if333z9WXnnlatsrJECAAAECBAgQIECAAAECBAgQIECAAAECBOonUJIlgCoqKuIvf/lLduatt946br755hof/qdGK620Uhx//PF5n9mzZ8e//vWv+s1cawIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBGgZIEAMaPHx9pCaCULrzwwmjbtm2NJyyuOProo6N///5Z0b///e/iKnkCBAgQIECAAAECBAgQIECAAAECBAgQIECgEQIlCQCkDX1TSm/2b7XVVvWazg477JC1T/sDSAQIECBAgAABAgQIECBAgAABAgQIECBAgEBpBEoSAJg5c2Y2mw4dOtT57f/C9Dt37pxl0zJCEgECBAgQIECAAAECBAgQIECAAAECBAgQIFAagZIEAHr37p3N5rPPPouJEyfWa2bPP/981r5v37716qcxAQIECBAgQIAAAQIECBAgQIAAAQIECBAgULNASQIAffr0yc9Q2Aw4L6glk5YOevDBB7MWAgC1QKkiQIAAAQIECBAgQIAAAQIECBAgQIAAAQL1FChJAGDNNdeMQYMGZae+4IIL4oorrljmNCZNmhRDhgyJ+fPnR+vWrfP+y+yoAQECBAgQIECAAAECBAgQIECAAAECBAgQILBMgZIEANJZzj///GjTpk12wqOOOiq22267uPnmm2PcuHExd+7cWLx4cUyePDkeffTROOGEE2KjjTaKCRMmZO1//vOfhy8AMgr/ECBAgAABAgQIECBAgAABAgQIECBAgACBkgi0Lsko/xlk4403jvT2/7Bhw2LBggXx9NNPZ2/4F8ZPb/lXt9HvgAED4pe//GWhmV8CBAgQIECAAAECBAgQIECAAAECBAgQIECgBAIl+wIgzeXYY4+NtKlvv379lppa1Yf/K6+8cpxzzjnx2GOP5V8OLNVJAQECBAgQIECAAAECBAgQIECAAAECBAgQINAggZJ9AVA4+6abbpq9/X/rrbfGa6+9Fq+//nr2N2PGjNhwww2zpX969eoVhx56aHTv3r3QzS8BAgQIECBAgAABAgQIECBAgAABAgQIECBQQoGSBwDS3NJeAEOHDi3hNA1FgAABAgQIECBAgAABAgQIECBAgAABAgQI1EegpEsA1efE2hIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLLT0AAYPnZGpkAAQIECBAgQIAAAQIECBAgQIAAAQIECHxpAvUKAFx55ZWxyiqrZH877LBDPukpU6bk5YX6+v6effbZ+XgyBAgQIECAAAECBAgQIECAAAECBAgQIECAQOME6rUHwBdffBEzZ87Mzjhr1qz8zEuWLMnL88J6ZhYsWFDPHpoTIECAAAECBAgQIECAAAECBAgQIECAAAECNQnUKwDQsWPHWH/99bOx1l577XzMVq1a5eV5YT0z6YsBiQABAgQIECBAgAABAgQIECBAgAABAgQIECiNQL0CAN/73vci/VVNq6++erzzzjtVix0TIECAAAECBAgQIECAAAECBAgQIECAAAECX5JAvfYA+JLm6LQECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAPQXq9QVATWMvXLgwHn/88aw6bQ7ctm3bmpouVX7TTTfFuHHjYosttojvfve7S9UrIECAAAECBAgQIECAAAECBAgQIECAAAECBOovUJIAwPTp02PgwIHZ2T/66KPo1q1bnWdy5JFHxuzZs+OHP/yhAECd1TQkQIAAAQIECBAgQIAAAQIECBAgQIAAAQK1C3ypSwDNmzcv0l9K06ZNq32magkQIECAAAECBAgQIECAAAECBAgQIECAAIE6C9T7C4BbbrklPvzww0onSG/wF9KVV14ZHTt2LBzW+LtgwYK49957o6KiImuz6aab1thWBQECBAgQIECAAAECBAgQIECAAAECBAgQIFA/gXoHABYtWhTHH398jWcZMWJEjXW1VWy77ba1VasjQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE6iFQ7yWADjzwwNh9993rcYplNz3ttNNi7733XnZDLQgQIECAAAECBAgQIECAAAECBAgQIECAAIE6CdT7C4A06t///vd44IEH8hPMmjUrTjjhhOz4/PPPj86dO+d11WVatGgR7dq1i5VXXjnS0j/rr79+dc2UESBAgAABAgQIECBAgAABAgQIECBAgAABAg0UaFAAYN11140jjjgiP+Unn3ySBwAOOuig6NatW14nQ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECDS9QIMCAFWnmTb9TW/+p9SpU6eq1Y4JECBAgAABAgQIECBAgAABAgQIECBAgACBJhYoSQCgQ4cO+RcAaf7z5s2LZ555JnbeeeelLmfs2LFx1113xX777Re9e/deql4BAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HiBem8CXNspKyoq4mc/+1l07do19t9//2qbPv/88zFixIjYZJNNYrfddospU6ZU204hAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HCBkgUA5s6dG3vttVf88Y9/jNmzZ8f06dNj6tSpS83snXfeycvGjBkT/fv3j3HjxuVlMgQIECBAgAABAgQIECBAgAABAgQIECBAgEDjBUoWAPjTn/4Uo0aNyma02mqrxYknnhht2rRZaobHH398XHvttfGtb30rq3v//ffj6KOPXqqdAgIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDhAiUJAKQ3/s8777xsFptuumm89NJLkQICnTt3Xmpmq6++ehx66KExevTo+MUvfpHVP/7443HjjTcu1VYBAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0DCBkgQAXnnllZg5c2Y2g8svvzy+/vWvL3M2LVq0iDPPPDM222yzrG1aDkgiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESiNQkgDAW2+9lc1mlVVWie23377OM2vVqlW2EXDq8Prrr9e5n4YECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA7QIlCQCkJYBSatmy/sMVlgmaNWtW7TNVS4AAAQIECBAgQIAAAQIECBAgQIAAAQIECNRZoP5P7KsZet11181Kp0+fHu+++241LWouevHFF7PKvn371txIDQECBAgQIECAAAECBAgQIECAAAECBAgQIFAvgZIEAPr165e//X/22WfXeQLjxo3LNgNOHTbffPM699OQAAECBAgQIECAAAECBAgQIECAAAECBAgQqF2gJAGAtOnv7rvvnp3p0ksvjT/84Q+xcOHCWs+c1vw/4IADYu7cudG2bdvYe++9a22vkgABAgQIECBAgAABAgQIECBAgAABAgQIEKi7QOu6N6295e9+97t46KGHYsGCBXHKKafE3/72tzj66KNjww03jLREUIcOHeKDDz6I999/P+6///64+eabY8mSJdmgv/nNb6JPnz61n0AtAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUGeBkgUAtt5667jkkkviqKOOikWLFmV7AYwYMWKZE9lrr73i5JNPXmY7DQgQIECAAAECBAgQIECAAAECBAgQIECAAIG6C5RkCaDC6Y444oh45plnYptttikU1fi73nrrxQ033BB33313vn9AjY1VECBAgAABAgQIECBAgAABAgQIECBAgAABAvUSKNkXAIWzbrXVVvH000/HhAkT4q677oo333wzPvnkk2xpoA022CB69uyZ/e26667Rrl27Qje/BAgQIECAAAECBAgQIECAAAECBAgQIECAQAkFSh4AKMxto402ihNPPLFw6JcAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoQoGSLgHUhPN2KgIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAWgRUiAPDxxx/Hq6++Wss0VREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL1ESj5EkAffPBB3HzzzTFlypT44osvYvHixZXms2jRokh/FRUVMWPGjHj//ffjiSeeiNNPPz0222yzSm0dECBAgAABAgQIECBAgAABAgQIECBAgAABAg0TKGkA4Cc/+UlcdtllsXDhwobNRi8CBAgQIECAAAECBAgQIECAAAECBAgQIECgJAIlCwBcffXVcdFFF9V7Uq1atYptttkmtttuu3r31YEAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoXqAkAYC0zM/w4cPzMwwdOjQGDRoUXbt2jQMPPDDmzp0bZ555ZvTt2zemT58ezzzzTIwcOTLmzZsXAwcOjFGjRuV9ZQgQIECAAAECBAgQIECAAAECBAgQIECAAIHGC5QkADB58uTswX6azrHHHhsXX3xxPrOddtop7r///pgzZ07st99+WfmRRx4Z3/ve92Lw4MExevTo+Ne//hWHHHJI3keGAAECBAgQIECAAAECBAgQIECAAAECBAgQaJxAy8Z1/3+933zzzXyY0047Lc+nzI477pgdjxkzplL5zjvvnL3536JFizjxxBOzDYErNXBAgAABAgQIECBAgAABAgQIECBAgAABAgQINFigJAGAt956K5tAhw4dYr311qs0mU022SQ7fu2112LRokWV6tK6/2lZoE8++SRuuOGGSnUOCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgYYLlCQAkB78p7TqqqsuNZNevXplZfPnz4/iLwUKDdOXACmNHTu2UOSXAAECBAgQIECAAAECBAgQIECAAAECBAgQaKRASQIAvXv3zqYxZcqUWLJkSaUpbbTRRpGW+Unp5ZdfrlSXDtIXACkJAGQM/iFAgAABAgQIECBAgAABAgQIECBAgAABAiURKGkAYOHChfHII49Umlj6OqB79+5Z2XPPPVepLh089thjWdn06dOXqlNAgAABAgQIECBAgAABAgQIECBAgAABAgQINEygJAGAzp07x/rrr5/NYNiwYfHRRx9Vmk2/fv2y47TO/2effZbXLV68OO65557seIMNNsjLZQgQIECAAAECBAgQIECAAAECBAgQIECAAIHGCZQkAJCm8Je//CWbyUsvvRRp49/jjjsun9kRRxyR5d9///0YPHhw3HbbbfHQQw/FAQccEFOnTs3qCksB5Z1kCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQYLlCwAsM8++8Rhhx2WTWTmzJlx++2355Pab7/9Iu0FkNITTzwR6XjgwIFZICCVderUKX7605+mrESAAAECBAgQIECAAAECBAgQIECAAAECBAiUQKBkAYA0l4svvjj7EqBnz55RvKRPy5Yt49///nf06tVrqSm3b98+Lr300lhzzTWXqlNAgAABAgQIECBAgAABAgQIECBAgAABAgQINEygdcO6Vd8rbfib3uQ//vjjY8KECZUa9ejRI3v7f+TIkdnyP2npn7Q3wI9+9KPo06dPpbYOCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcYJlDQAUJhKixYtqn3bv0uXLpE2CU5/EgECBAgQIECAAAECBAgQIECAAAECBAgQILD8BEq6BNDym6aRCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfoILJcvAJYsWRIVFRXRpk2bSnN5/fXX45577smWAFp11VVj//33j3333TfSFwMSAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUDqBkgYAPvzww2xD32uuuSb73WOPPfKZjh49OgYNGhSLFi3Ky9J+AIcddlhcffXVeZkMAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HiBkgUAFixYkD3gHzt2bDart99+O5/d5MmT4+CDD6708L9QmYIFW2yxRQwfPrxQ5JcAAQIECBAgQIAAAQIECBAgQIAAAQIECBBopEDJ9gAYMWJEFB7+pyV9Wrb879CXXHJJTJs2LZvqlltuGY899likLwK22mqrrOyUU06J1157rZGXojsBAgQIECBAgAABAgQIECBAgAABAgQIECBQEPjvU/pCSQN+07I+F110UdYzPdR//vnn45hjjslHuv766/P8P/7xj9hxxx1j1113zYIAnTp1yr4MSEGB5ZVmzZoVKfDQrVu3OPbYY+t0mnRNV1xxRey2226x3nrrRdqzYM8994zf/OY38dxzz9VpjNQofQlx1FFHRb9+/SJda58+fbLjK6+8MubMmdPk49T5hBoSIECAAAECBAgQIECAAAECBAgQIECAwFdaoCRLAKWH3GkJoJROO+207GF3QWX8+PExceLE7HDjjTeuVJceqg8ZMiRSUOCFF14odCn57/HHHx8vv/xyNu6MGTOWOf4HH3yQLWf06quvVmp7//33R/r77W9/G+kB/v/8z/9Uqq96cN5550X6MmLhwoV5VdoIOf2l4MLll18ed999dxZcyBtUkynVONUMrYgAAQIECBAgQIAAAQIECBAgQIAAAQIEmqlASQIA48aNy3hatWoVu+++eyWqe++9Nz/+9re/necLmfXXXz/Lvvjii4Wikv7eeOONkfYZqGtKXwvstddeUXj4n74c+M53vhNrr712PPLII3HrrbfGvHnzss2LZ86cGccdd1y1Q6cAwcknn5zVtWvXLg466KDYfvvtI+2HcNddd2UBiSeffDJ23nnnGDVqVHTt2nW5jlPt4AoJECBAgAABAgQIECBAgAABAgQIECBAoNkKlGQJoEmTJmVA6SH5KqusUgmrOACQltCpmgpvx1dUVFStavTx+++/X+clfwonS0v8vPLKK9nh0KFD4+mnn86W/UlLGl133XXZFwCdO3eOJUuWxLBhw+LDDz8sdM1/P/300zwwkNred999cdVVV2XLIv3ud7+LZ599NtsUOXVI+yakc1aXSjVOdWMrI0CAAAECBAgQIECAAAECBAgQIECAAIHmLVCSAMA666yTKU2ZMqWSVnpTPr01n1J6Cz697V41vfHGG1nRuuuuW7WqUcfpAf0RRxwRn332WXTs2LFOY02fPj0uvfTSfD4jR46Mtm3bVuq70047xbXXXpuVpaDFZZddVqk+HZx//vnZVwIpf8455yx13W3atMmCCQMGDEhNsi8UZs+eneWL/ynVOMVjyhMgQIAAAQIECBAgQIAAAQIECBAgQIBAeQiUJADQs2fPTGv+/PnZxr4FuhtuuCFSWUoDBw6M9u3bF6qy33feeSduu+22LN+jR49KdY09+POf/xxjxoyJli1bxp/+9Kd8uBYtWuT5qpmbbropPv/886w4bRZc9eF/of3gwYMj7WeQUgoAFL5iKNSnPQ1SSoGH//3f/y0UV/pN8xo+fHhWls5Z3TJFpRqn0okdECBAgAABAgQIECBAgAABAgQIECBAgEBZCJQkANC3b9/YZJNNMrAjjzwy7rjjjvjnP/+ZP+BOFd///vcrgab173fbbbf84fnhhx9eqb4xB2kJn7T5bkqnnHJKfOMb36jTcGlOhbTHHnsUstX+prmn9NFHH8WDDz6Yt3n33Xfj448/zo7TFw81BRFSg1133TUKAYm0vFBxKtU4xWPKEyBAgAABAgQIECBAgAABAgQIECBAgED5CJQkAJAeYp9xxhmZWtoPYN99941DDz00W34nFX7zm9+MAw44IFfdZZddYocddoiJEydmZfvss0+kzXZLkRYsWJCdO/2mMc8888w6D/vUU09lbdPb+Ztvvnmt/bbYYou8vrBhcCoojJHyy7qmNdZYI9Zaa63UNN90ODv4zz+lGqcwnl8CBAgQIECAAAECBAgQIECAAAECBAgQKC+BkgQAEtnBBx+cbXSb1rcvTunLgLTMT/Gb8Glj3EJKy+kU1tQvlDXm97TTTssepq+00kpR3Rr+tY391ltvZdVpM+Oq11G1X/GeBYV9DFKbCRMm5E3rsqxRYZy0B0DxhsKlGiefjAwBAgQIECBAgAABAgQIECBAgAABAgQIlJVA61JebVrGJy2d8/DDD0dawiat+582uk1v1Ben9GZ82qT3oIMOikMOOWSp+uK29cmPGjUq/vKXv2RdzjrrrNhss83q3H3OnDmxaNGirH3Xrl2X2S+9vV9IafPgQpo1a1YhGw0Zp3v37ln/Uo2TT0aGAAECBAgQIECAAAECBAgQIECAAAECBMpKoKQBgCSXlrRJXwPUluqzLE9t4xTXpYfwRxxxRBZYSIGHE088sbh6mfmZM2fmbapuVpxXFGWK28ydOzevWdHGySfWiEz6wuHOO+/MbBsxTNb1ueeey36/+OKLxg6lPwECBAgQIECAAAECBAgQIECAAAECBAjUIlDyAEAt51quVUcffXS2hE5aXuiqq67KN9et60nTEjyF1K5du0K2xt+0xFAhFQcAVrRxCnNszO/PfvazuPvuuxszxFJ9X3zxxaXKFBAgQIAAAQIECBAgQIAAAQIECBAgQIBA6QSaRQAgPfC/+eabM5ULL7wwCuvq14epeM3/ioqKZXYtblMcMFjRxlnmhdShQfpio2/fvrF48eI6tK69yZgxY+L5559f5ibLtY+ilgABAgQIECBAgAABAgQIECBAgAABAgSWJVDyAMDnn38eN910U4wfPz7SuvrpQXla739ZKW0GnP7qmyZOnBg//elPs25DhgyJ73//+/UdImu/8sor5/3mz5+f52vKFLcp3tR4RRunpvnXp7x///6R/kqR0tJMKQBQvIRSKcY1BgECBAgQIECAAAECBAgQIECAAAECBAhUFihpAODcc8+N3//+91G8gW3l09V81K1bt3oHANKmvemBf1p2p0uXLnH22WfHjBkzljpJ8XzS2vOFNq1bt47CA/uOHTvm/Yrb54VVMsVtOnXqlNcW54vb5A2qZIrbFPctzhe3qdI9PyxuU9w3byBDgAABAgQIECBAgAABAgQIECBAgAABAmUlULIAwG233Rannnpqk+JNnTo1nnjiieyc06ZNi549ey7z/Lfcckukv5R22WWXePDBB7N8eiO9e/fu2T4CkydPzspq+6e4TQpeFNKGG25YyEZxm7ywSqbQJgUjUhCjkEo1TmE8vwQIECBAgAABAgQIECBAgAABAgQIECBQXgIlCQCkteGPPPLIXG6rrbaKY489Nnr06BFf+9rX6rQh7zrrrJP3/7Iyffr0yQIA6W36Tz/9NNZYY40apzJhwoS8bsCAAXk+jVFIb731ViFb7e/ChQvjvffey+rSGvvFewmUapxqT6yQAAECBAgQIECAAAECBAgQIECAAAECBJq9QEkCAGm9/+nTp2dYe+65Z/aGfYcOHZY7XgounH766cs8T/pS4JJLLsnapQfr+++/f5ZPAYritO2228bo0aOzokceeSQOOOCA4upK+UcffTQ/Tv0KaYsttoiVVlopFixYEGmM2tIzzzyTtUttisdIx6UaJ40lESBAgAABAgQIECBAgAABAgQIECBAgED5CZQkAPDCCy/kcieddFI0xcP/dMK0fv9vf/vb/Nw1ZVKAohAA2HzzzWvskzYRTnsYpDRy5MgaAwCTJk2Khx9+OGu39dZbR9euXbN8+ifNadCgQXH77bfHq6++Gi+++GL069cvry/OXHPNNflh1Q2QSzVOfgIZAgQIECBAgAABAgQIECBAgAABAgQIECgrgZaluNqKiopsmBYtWsSOO+5YiiG/lDG23HLL6N+/f3buO+64I6699tql5jFv3rw46qijIi3fk1J1+x6k+kI65phj8k2HC2Xp95577okrr7wyK9pss81ir732Kq7O8qUaZ6mBFRAgQIAAAQIECBAgQIAAAQIECBAgQIBAsxcoSQBg++23z6CWLFmSLwX0VZX761//mu1ZkK7l8MMPz74IeOedd7IH/o899lj2dv+oUaOyy9tuu+3y5YSKrze9zZ++Akjp2WefjYEDB8YDDzwQ8+fPjw8++CAuuOCC+O53v5uN2bJlyzj77LOr3SehVOMUz02eAAECBAgQIECAAAECBAgQIECAAAECBMpDoCQBgF69ekWXLl0ysTFjxnyl5dJD/euvvz7bvDhtbpz2GNhggw2y42984xv5uv49e/aMO++8M9ID/OrSddddF3vssUdW9dJLL8Wuu+4anTp1irTZ8QknnJB/QfDHP/4x9t577+qGyMpKNU6NJ1BBgAABAgQIECBAgAABAgQIECBAgAABAs1SoPqn1w241F/+8pdZrxEjRkTadPernIYOHRpPPfVUpPX9W7VqlV1KYcmftm3bxrBhw7L61VdfvcbLXG211eLee++N5JHyKRXGSPm+ffvG3XffnY2VjmtKpRqnpvGVEyBAgAABAgQIECBAgAABAgQIECBAgEDzFCjJJsCJJr3VPmXKlDjrrLOid+/e8Zvf/Ca+9a1vxXrrrRft27f/UvU23njjSEv61CeldfnT8j1z586N9AZ/2vg3fQmQxurcuXOdhkpfB6RNhdNfWkYobQicLNIXEz169Kjx64Gqg5dqnKrjOiZAgAABAgQIECBAgAABAgQIECBAgACB5itQkgDAzJkz47jjjsuU0gPuadOm5cepcJVVVsnfpK+J8pRTTon0t6KlDh06xA477JD9NWZu6YF/+mtsKtU4jZ2H/gQIECBAgAABAgQIECBAgAABAgQIECCwYguUJACQNrdNa9XXlGbMmFFTVV4+b968PC9DgAABAgQIECBAgAABAgQIECBAgAABAgQINE6gJAGAtERN2ty2MSltkCsRIECAAAECBAgQIECAAAECBAgQIECAAAECpREoSQBgjTXWiMmTJ5dmRkYhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGi3QstEjGIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBY4QQEAFa4W2JCBAgQIECAAAECBAgQIECAAAECBAgQIECg8QIrRADg448/jldffbXxV2MEAgQIECBAgAABAgQIECBAgAABAgQIECBAIBMoyR4AxZYffPBB3HzzzTFlypT44osvYvHixcXVsWjRouyvoqIiZsyYEe+//3488cQTcfrpp8dmm21Wqa0DAgQIECBAgAABAgQIECBAgAABAgQIECBAoGECJQ0A/OQnP4nLLrssFi5c2LDZ6EWAAAECBAgQIECAAAECBAgQIECAAAECBAiURKBkAYCrr746LrroonpPqlWrVrHNNtvEdtttV+++OhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLVC5QkAJCW+Rk+fHh+hqFDh8agQYOia9euceCBB8bcuXPjzDPPjL59+8b06dPjmWeeiZEjR8a8efNi4MCBMWrUqLyvDAECBAgQIECAAAECBAgQIECAAAECBAgQINB4gZIEACZPnpw92E/TOfbYY+Piiy/OZ7bTTjvF/fffH3PmzIn99tsvKz/yyCPje9/7XgwePDhGjx4d//rXv+KQQw7J+8gQIECAAAECBAgQIECAAAECBAgQIECAAAECjRNo2bju/6/3m2++mQ9z2mmn5fmU2XHHHbPjMWPGVCrfeeedszf/W7RoESeeeGK2IXClBg4IECBAgAABAgQIECBAgAABAgQIECBAgACBBguUJADw1ltvZRPo0KFDrLfeepUms8kmm2THr732WixatKhSXVr3Py0L9Mknn8QNN9xQqc4BAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HCBkgQA0oP/lFZdddWlZtKrV6+sbP78+VH8pUChYfoSIKWxY8cWivwSIECAAAECBAgQIECAAAECBAgQIECAAAECjRQoSQCgd+/e2TSmTJkSS5YsqTSljTbaKNIyPym9/PLLlerSQfoCICUBgIzBPwQIECBAgAABAgQIECBAgAABAgQIECBAoCQCJQ0ALFy4MB555JFKE0tfB3Tv3j0re+655yrVpYPHHnssK5s+ffpSdQoIECBAgAABAgQIECBAgAABAgQIECBAgACBhgmUJADQuXPnWH/99bMZDBs2LD766KNKs+nXr192nNb5/+yzz/K6xYsXxz333JMdb7DBBnm5DAECBAgQIECAAAECBAgQIECAAAECBAgQINA4gZIEANIU/vKXv2QzeemllyJt/HvcccflMzviiCOy/Pvvvx+DBw+O2267LR566KE44IADYurUqVldYSmgvJMMAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0GCBkgUA9tlnnzjssMOyicycOTNuv/32fFL77bdfpL0AUnriiSciHQ8cODALBKSyTp06xU9/+tOUlQgQIECAAAECBAgQIECAAAECBAgQIECAAIESCJQsAJDmcvHFF2dfAvTs2TOKl/Rp2bJl/Pvf/45evXotNeX27dvHpZdeGmuuueZSdQoIECBAgAABAgQIECBAgAABAgQIECBAgACBhgm0bli3pXstWrQo0oa/6U3+448/PiZMmFCpUY8ePbK3/0eOHJkt/5OW/kl7A/zoRz+KPn36VGrrgAABAgQIECBAgAABAgQIECBAgAABAgQIEGicQEkCAEuWLIn+/fvH17/+9Tj88MOztf2re9u/S5cukTYJTn8SAQIECBAgQIAAAQIECBAgQIAAAQIECBAgsPwEShIAePTRR+Pll1/O/l5//fUYMmTI8puxkQkQIECAAAECBAgQIECAAAECBAgQIECAAIFlCpRkD4DXXnstP9Hee++d52UIECBAgAABAgQIECBAgAABAgQIECBAgACBL0egJAGA4jX8Z86c+eVcibMSIECAAAECBAgQIECAAAECBAgQIECAAAECuUBJAgA77bRTpE1+U7r99ttj0qRJ+QlkCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgaYXKEkAoFWrVvHAAw/EgAEDYsaMGdG3b984//zz46mnnopp06Y1/VU5IwECBAgQIECAAAECBAgQIECAAAECBAgQKHOBkmwCPGvWrPjd734Xm266aYwfPz7S8YknnpjTdu7cOVZeeeX8uLrM8OHDI/1JBAgQIECAAAECBAgQIECAAAECBAgQIECAQOMFShIAmDdvXlxxxRU1zibtC7CsvQFmz55dY38VBAgQIECAAAECBAgQIECAAAECBAgQIECAQP0EShIAaNGiRay++ur1O3OV1h06dKhS4pAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoqEBJAgBrrrlmfPrppw2dg34ECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAiQVKsglwiedkOAIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCRAgIAjQTUnQABAgQIECBAgAABAgQIECBAgAABAgQIrIgC9QoAXHPNNdGtW7fsb/To0Svi9ZgTAQIECBAgQIAAAQIECBAgQIAAAQIECBAg8B+Beu0BMG/evPjkk08yuPnz5wMkQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEVlCBen0BsIJeg2kRIECAAAECBAgQIECAAAECBAgQIECAAAECVQQEAKqAOCRAgAABAgQIECBAgAABAgQIECBAgAABAs1BQACgOdxF10CAAAECBAgQIECAAAECBAgQIECAAAECBKoICABUAXFIgAABAgQIECBAgAABAgQIECBAgAABAgSag4AAQHO4i66BAAECBAgQIECAAAECBAgQIECAAAECBAhUEWhd5bjOh48//njMnz+/zu2X1bBPnz6R/iQCBAgQIECAAAECBAgQIECAAAECBAgQIECg8QINDgCcffbZjT970Qi//vWv41e/+lVRiSwBAgQIECBAgAABAgQIECBAgAABAgQIECDQUAFLADVUTj8CBAgQIECAAAECBAgQIECAAAECBAgQILACCzT4C4ABAwZE165dS3ZpvXr1KtlYBiJAgAABAgQIECBAgAABAgQIECBAgAABAuUu0OAAwBlnnBGDBw8udz/XT4AAAQIECBAgQIAAAQIECBAgQIAAAQIEVkgBSwCtkLfFpAgQIECAAAECBAgQIECAAAECBAgQIECAQOMEBAAa56c3AQIECBAgQOD/Y+8+4Kwq7oYB/+mIgFGTIBiwi12MvfdeYyxJ8DXqZzdGg5oY1Bh7j8aGNVhiorHFXmOPvaHEii2oUbDQRJSy387Je897F/YuC+yytzzz+y33nDlz5sx5xivL/M+ZIUCAAAECBAgQIECAAAECBMpSQACgLLtFowgQIECAAAECBAgQIECAAAECBAgQIECAwJwJCADMmZ+zCRAgQIAAAQIECBAgQIAAAQIECBAgQIBAWQoIAJRlt2gUAQIECBAgQIAAAQIECBAgQIAAAQIECBCYMwEBgDnzczYBAgQIECBAgAABAgQIECBAgAABAgQIEChLgY6z0qoddtghlllmmeyUFVdccVZOVZYAAQIECBAgQIAAAQIECBAgQIAAAQIECBCYiwKzFADo3bt3pB+JAAECBAgQIECAAAECBAgQIECAAAECBAgQKG8BUwCVd/9oHQECBAgQIECAAAECBAgQIECAAAECBAgQmC0BAYDZYnMSAQIECBAgQIAAAQIECBAgQIAAAQIECBAobwEBgPLuH60jQIAAAQIECBAgQIAAAQIECBAgQIAAAQKzJSAAMFtsTiJAgAABAgQIECBAgAABAgQIECBAgAABAuUtIABQ3v2jdQQIECBAgAABAgQIECBAgAABAgQIECBAYLYEBABmi81JBAgQIECAAAECBAgQIECAAAECBAgQIECgvAUEAMq7f7SOAAECBAgQIECAAAECBAgQIECAAAECBAjMloAAwGyxOYkAAQIECBAgQIAAAQIECBAgQIAAAQIECJS3gABAefeP1hEgQIAAAQIECBAgQIAAAQIECBAgQIAAgdkSEACYLTYnESBAgAABAgQIECBAgAABAgQIECBAgACB8hYQACjv/tE6AgQIECBAgAABAgQIECBAgAABAgQIECAwWwICALPF5iQCBAgQIECAAAECBAgQIECAAAECBAgQIFDeAgIA5d0/WkeAAAECBAgQIECAAAECBAgQIECAAAECBGZLQABgtticRIAAAQIECBAgQIAAAQIECBAgQIAAAQIEyltAAKC8+0frCBAgQIAAAQIECBAgQIAAAQIECBAgQIDAbAkIAMwWm5MIECBAgAABAgQIECBAgAABAgQIECBAgEB5CwgAlHf/aB0BAgQIECBAgAABAgQIECBAgAABAgQIEJgtAQGA2WJzEgECBAgQIECAAAECBAgQIECAAAECBAgQKG8BAYDy7h+tI0CAAAECBAgQIECAAAECBAgQIECAAAECsyUgADBbbE4iQIAAAQIECBAgQIAAAQIECBAgQIAAAQLlLSAAUN79o3UECBAgQIAAAQIECBAgQIAAAQIECBAgQGC2BAQAZovNSQQIECBAgAABAgQIECBAgAABAgQIECBAoLwFBADKu3+0jgABAgQIECBAgAABAgQIECBAgAABAgQIzJZAx9k6y0kECBAgQIAAAQIECBBoROCuu+6Kv/zlL/H2229nP507d47+/fvHsssuGwcddFAMGDCgkbP+L2vatGnxi1/8ItJnc9Juu+0Wm2yyScmit912W6Sfl19+Od58881YaKGFsrbsu+++seOOO0a7du1KntvUgXHjxsUGG2wQn3zySey0005xySWXNFXcMQIECBAgQIAAAQJtIiAA0CbsLkqAAAECBAgQIECgugTefffdOOCAA+LBBx+c4cZGjRoVjz/+eFx55ZVxyCGHxKmnnhrzzjvvDOVSxltvvRVDhgxp9Fhjmcsss0yjAYAxY8ZkgYTrrruuwWmpneknBSpSMOL222+Pvn37NijTnJ1DDz00hg0blhVN15IIECBAgAABAgQIlKOAAEA59oo2ESBAgAABAgQIEKgggUmTJmVPwb/66qtZq7///e/HwIEDY7nllouJEyfGCy+8kL0VMGXKlDj//PMjDZhfffXVjd7hSy+91Gj+rGROnjw5ezq/0J70FsJPfvKTWGuttWLChAlZkOL+++/P3gpYe+214+GHH46lllqq2Zf429/+Ftdcc02zyytIgAABAgQIECBAoK0EBADaSt51CRAgQIAAAQIECFSJwJFHHhmFwfYtt9wyG+xfYIEFGtzdoEGDIh379NNPs8Hz7bffPnbZZZcGZdJOmqqnkO69995YeeWVC7uNfvbs2XOG/LPOOitvT79+/eKmm26K1VdfPS931FFHxRVXXBEHHnhgfPTRR7H//vtnQYC8QBMbH374YXZeE0UcIkCAAAECBAgQIFA2AhYBLpuu0BACBAgQIECAAAEClSeQnuq/6qqrsobPP//82ZP90w/+p4NpIP+yyy7LyqU/0nRAjaVCAKBjx46x4YYbZnP2p3n7S/1069atQTX/+c9/4uSTT87z0noExYP/hQNpDYA08J/SI488EjfffHPhUMnPurq62GuvveLLL7+MHj16lCznAAECBAgQIECAAIFyERAAKJee0A4CBAgQIECAAAECFSjw/PPPx1dffZW1PC2q26tXr5J3sd122+Vz/7/44ouNlisEAJZffvno2rVro2Waynzuuefi66+/zorsuuuuse6665Ys/vvf/z4/duONN+bbpTbOPffc+Mc//hHt27ePP/zhD3mx2V1IOK/ABgECBAgQIECAAIFWEhAAaCVY1RIgQIAAAQIECBCoBYFx48bF5ptvHmnAftVVV23yltPAeVofIKXRo0fHN99806D8xx9/HGnB4JRmVleDE4t2XnvttXxv/fXXz7cb20ht6dOnT3booYceivSEf6n0yiuvxODBg7PDv/71r2NmdZeqRz4BAgQIECBAgACBuSlgDYC5qe1aBAgQIECAAAECBKpMYIsttoj005w0duzYeP/997Oi/fv3jy5dujQ4rfD0f8pcbbXV8mNp4d60dsCiiy4aHTp0yPMb23jzzTfz7HSNmaVUZwo8pIDEiBEjGl0MOAUq0qLG6XPAgAFxwgknxHvvvTezqh0nQIAAAQIECBAg0OYC3gBo8y7QAAIECBAgQIAAAQK1IZDWACg8Zb/GGmvMcNPFAYCll146TjnllFhsscUiLfS75JJLRvfu3SOdd8EFF+T1TF/JggsumGeltxNmlj755JO8yGeffZZvF28cffTRMXz48Cxgce2110bnzp2LD9smQIAAAQIECBAgULYC3gAo267RMAIECBAgQIAAAQLVI5AW500D+imlqYAKC/AW32FxAGDnnXeO6QfwJ02aFGmO//Rzyy23ZIsPL7LIIsVVxLLLLpvvv/rqq7HLLrvk+9NvpLUCPvjggzx7zJgx+XZh44EHHog//vGP2e6pp54aK6ywQuGQTwIECBAgQIAAAQJlL+ANgLLvIg0kQIAAAQIECBAgUNkCaeqfrbfeOtJnSocddliji/O+9NJL+Y2mwf9lllkmDj744EhP3Z9zzjmx++67R2HB3UceeSTSosLffvttfk7aWHHFFfP9Sy65JL744ot8f/qNtJDv1KlT8+wvv/wy304b6dy99tore9tg4403jh6w4z8AAEAASURBVF/96lcNjtshQIAAAQIECBAgUO4CAgDl3kPaR4AAAQIECBAgQKCCBdJT9jvuuGMMGzYsu4vC1D7T39L48ePjnXfeybMHDRoUaUHfiy66KPbYY49I+9dff308+uijsdBCC2Xl0rQ86an84pSmCNpss82yrLSg8J577hmNPdmfFv097bTTik9tEAxIB9JbCml9gPnmmy9726AQfGhwkh0CBAgQIECAAAECZSxgCqAy7hxNI0CAAAECBAgQIFDJAmlO/R122CGeeuqp7Db69esX9957b8wzzzwz3FaaV//BBx/MFtft1KlTNnA/Q6H6jPXXXz8uvvjiSFMEpZQCAEceeWS2PkCWUf9HOp7eBEiL9t51112x0korxf/7f/8vVl555eyp/scffzyuvvrqbC7/9BbBnXfemZ36ne98p1BFNuB/8803Z/tpzYHUdokAAQIECBAgQIBApQkIAFRaj2kvAQIECBAgQIAAgQoQGDFiRDbtT/pMKS3m+49//CP7bKz5Xbp0iU022aSxQzPk/ehHP4pVVlkl0pRBkydPzt4UKF5UeKmlloobb7wx9t577/j8889j5MiR8fvf/75BPfPOO2/8/e9/jyeffDIPAKQn/VN6991345e//GW2ndYQ+J//+Z9s2x8ECBAgQIAAAQIEKk3AFECV1mPaS4AAAQIECBAgQKDMBZ5++ulYZ511ojD4v+qqq2ZvAaQgQEul9DR/IaXFfqdP22+/faT83XbbLb73ve/lh9M0PltttVU8/PDD2VRB77//fn4sBQDSmgBpwD9NSbTgggvG6aefnk0hlKYRKv4pXqA4rUNQODZhwoS8PhsECBAgQIAAAQIE2lrAGwBt3QOuT4AAAQIECBAgQKCKBG699dYYOHBgpLn/U9pmm23ib3/7W6Qn7lsyFU/Jk6Yaaiz17t07brjhhuxQegsgLfK76KKLRs+ePfPiH3zwQbbdoUOHWHzxxSPVld4KSCm9PbDkkktm2039ccstt0T6SWmjjTbKggtNlXeMAAECBAgQIECAwNwS8AbA3JJ2HQIECBAgQIAAAQJVLnDppZdGmjKnMPh/0EEHxe23396swf8pU6bEf/7zn3jllVeygfeZURUG7lO5tLDwzFLfvn2ztQCKB//T9EHpeimldQJ69Ogxs2ocJ0CAAAECBAgQIFBRAt4AqKju0lgCBAgQIECAAAEC5Slw1VVXRRrwr6urizTNztlnnx2DBg1qdmOPOeaYOPPMM7Pyab7+448/vslzX3vttfz4Msssk2+nqXjuuOOO+OSTT7KFgNN0P6XSbbfdlj3xn46vt956WbH0psKxxx5b6pQ8P70pcMkll2T7yy23XL4ocUtOc5RfzAYBAgQIECBAgACB2RQQAJhNOKcRIECAAAECBAgQIPBfgeHDh8d+++2XDf63b98+hg4dGnvuuecs8Wy++eZ5ACAtzvu73/0uCyQ0Vkmav/+5557LDvXv37/BGwAdO3aMfffdN9K8/GkdgqYCAFdccUVefZq2KKXu3bvHSSedlOeX2njzzTfzAEB6e6A555SqSz4BAgQIECBAgACB1hIwBVBryaqXAAECBAgQIECAQI0IHHzwwZGm8EkpPbk/q4P/6bz0BH5adDell19+Oc4999xse/o/Ro0aFYccckiefcYZZ0Sav7+Q0gB+4Wn+p556quR8/Kecckrcd9992WlpweA111yzUIVPAgQIECBAgAABAlUj4A2AqulKN0KAAAECBAgQIEBg7gtcc8018fjjj2cXTk//P/PMM7Hddts1qyFXX311PujftWvXSHWlc9M0QkcddVS8++67ccQRR2QL944ePTobzD/88MOz6X3SBdICwzvuuOMM1zr66KPjkUceiWnTpsXuu++eBRN22mmn6NSpU6SgwPXXX58/vb/AAgvkbx7MUJEMAgQIECBAgAABAhUuIABQ4R2o+QQIECBAgAABAgTaUmDIkCH55dOA+913353vz2yjsFhwoVwa0D/11FOzOfinTp0aF110UfaTggOTJk0qFMs+Dz300PjDH/7QIK+wk6YTOu644+KEE06IFDjYY489sumEUgAgTQ1USPPPP388+OCDUbyGQOGYTwIECBAgQIAAAQLVIGAKoGroRfdAgAABAgQIECBAoI0EihfjbYkmpKf3X3zxxdh4443z6gqD/2l+/zTffnpz4Pzzz4+0XyqlhYRvv/32WGqppbIi6a2CwuB/ly5dsmmEXnnllVhllVVKVSGfAAECBAgQIECAQMULlP6NueJvzQ0QIECAAAECBAgQINDaAmPHjm3xS6RB/oceeijGjRsXabHdd955JxZZZJEYMGBAzDPPPM2+Xprbf9ttt40PPvggqye1dckll8wWDe7Ro0ez62msYFp8OAUVJAIECBAgQIAAAQLlLCAAUM69o20ECBAgQIAAAQIEaligZ8+esfrqq2c/s8uQ1iVYbLHFsp/ZrcN5BAgQIECAAAECBCpVwBRAldpz2k2AAAECBAgQIECAAAECBAgQIECAAAECBJoQEABoAschAgQIECBAgAABAgQIECBAgAABAgQIECBQqQICAJXac9pNgAABAgQIECBAgAABAgQIECBAgAABAgSaEBAAaALHIQIECBAgQIAAAQIECBAgQIAAAQIECBAgUKkCAgCV2nPaTYAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhAQAGgCxyECBAgQIECAAAECBAgQIECAAAECBAgQIFCpAgIAldpz2k2AAAECBAgQIECAAAECBAgQIECAAAECBJoQEABoAschAgQIECBAgAABAgQIECBAgAABAgQIECBQqQICAJXac9pNgAABAgQIECBAgAABAgQIECBAgAABAgSaEBAAaALHIQIECBAgQIAAAQIECBAgQIAAAQIECBAgUKkCAgCV2nPaTYAAAQIECBAgQIAAAQIECBAgQIAAAQIEmhAQAGgCxyECBAgQIECAAAECBAgQIECAAAECBAgQIFCpAgIAldpz2k2AAAECBAgQIECAAAECBAgQIECAAAECBJoQEABoAschAgQIECBAgAABAgQIECBAgAABAgQIECBQqQICAJXac9pNgAABAgQIECBAgAABAgQIECBAgAABAgSaEOjYxDGHCBAgQIAAAQIECJSNwAsvvBD33ntv1NXVlU2bNIQAgZkLdOzYMQYOHDjzgkoQIECAAAECBAi0uIAAQIuTqpAAAQIECBAgQKA1BA488MB4/vnnW6NqdRIg0MoC77//fitfQfUECBAgQIAAAQKNCQgANKYijwABAgQIECBAoOwEJk2alLWp24D9o0O375dd+zSIAIEZBSaPGhaTRtwR33zzzYwH5RAgQIAAAQIECLS6gABAqxO7AAECBAgQIECAQEsItGvXLqum+6q/iE7fX7ElqlQHAQKtLPDVK1dlAYBWvozqCRAgQIAAAQIESghYBLgEjGwCBAgQIECAAAECBAgQIECAAAECBAgQIFDJAgIAldx72k6AAAECBAgQIECAAAECBAgQIECAAAECBEoICACUgJFNgAABAgQIECBAgAABAgQIECBAgAABAgQqWUAAoJJ7T9sJECBAgAABAgQIECBAgAABAgQIECBAgEAJAQGAEjCyCRAgQIAAAQIECBAgQIAAAQIECBAgQIBAJQsIAFRy72k7AQIECBAgQIAAAQIECBAgQIAAAQIECBAoISAAUAJGNgECBAgQIECAAAECBAgQIECAAAECBAgQqGQBAYBK7j1tJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQEAErAyCZAgAABAgQIECBAgAABAgQIECBAgAABApUsIABQyb2n7QQIECBAgAABAgQIECBAgAABAgQIECBAoISAAEAJGNkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCSBQQAKrn3tJ0AAQIECBAgQIAAAQIECBAgQIAAAQIECJQQEAAoASObAAECBAgQIECAAAECBAgQIECAAAECBAhUsoAAQCX3nrYTIECAAAECBAgQIECAAAECBAgQIECAAIESAgIAJWBkEyBAgAABAgQIECBAgAABAgQIECBAgACBShYQAKjk3tN2AgQIECBAgAABAgQIECBAgAABAgQIECBQQkAAoASMbAIECBAgQIAAAQIECBAgQIAAAQIECBAgUMkCAgCV3HvaToAAAQIECBAgQIAAAQIECBAgQIAAAQIESggIAJSAkU2AAAECBAgQIECAAAECBAgQIECAAAECBCpZQACgkntP2wkQIECAAAECBAgQIECAAAECBAgQIECAQAkBAYASMLIJECBAgAABAgQIECBAgAABAgQIECBAgEAlCwgAVHLvaTsBAgQIECBAgAABAgQIECBAgAABAgQIECghIABQAkY2AQIECBAgQIAAAQIECBAgQIAAAQIECBCoZAEBgEruPW0nQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBAQASsDIJkCAAAECBAgQIECAAAECBAgQIECAAAEClSwgAFDJvaftBAgQIECAAAECBAgQIECAAAECBAgQIECghIAAQAkY2QQIECBAgAABAgQIECBAgAABAgQIECBAoJIFBAAqufe0nQABAgQIECBAgAABAgQIECBAgAABAgQIlBAQACgBI5sAAQIECBAgQIAAAQIECBAgQIAAAQIECFSygABAJfeethMgQIAAAQIECBAgQIAAAQIECBAgQIAAgRICAgAlYGQTIECAAAECBAgQIECAAAECBAgQIECAAIFKFhAAqOTe03YCBAgQIECAAAECBAgQIECAAAECBAgQIFBCQACgBIxsAgQIECBAgAABAgQIECBAgAABAgQIECBQyQICAJXce9pOgAABAgQIECBAgAABAgQIECBAgAABAgRKCAgAlICRTYAAAQIECBAgQIAAAQIECBAgQIAAAQIEKllAAKCSe0/bCRAgQIAAAQIECBAgQIAAAQIECBAgQIBACQEBgBIwsgkQIECAAAECBAgQIECAAAECBAgQIECAQCULCABUcu9pOwECBAgQIECAAAECBAgQIECAAAECBAgQKCEgAFACRjYBAgQIECBAgAABAgQIECBAgAABAgQIEKhkAQGASu49bSdAgAABAgQIECBAgAABAgQIECBAgAABAiUEBABKwMgmQIAAAQIECBAgQIAAAQIECBAgQIAAAQKVLCAAUMm9p+0ECBAgQIAAAQIECBAgQIAAAQIECBAgQKCEQNUFAD7//PM45phjYquttoolllgiunXrFssvv3zsvPPOce6558a3335bgqJh9tSpU+PKK6+MzTbbLBZZZJGYf/75Y8stt4wTTzwxnn/++YaFm9h75513Yt99941VVlklevbsGcstt1y2P3To0Pjqq6+aOLPhoZaqp2Gt9ggQIECAAAECBAgQIECAAAECBAgQIECgWgU6VtONnX/++XH88cfHmDFjGtzWa6+9Funn1ltvjUsvvTQuueSS2GijjRqUKd756KOPsgDC8OHDi7Pj/vvvz35OOumkSAP4e+yxR4Pj0++cffbZMXjw4Jg8eXJ+6PXXX4/0k4ILl19+edx1111ZcCEv0MhGS9XTSNWyCBAgQIAAAQIECBAgQIAAAQIECBAgQKBKBaomAHDdddfFYYcdlnfT1ltvHeuvv3706dMnRowYEbfccksWBHjzzTdjm222yZ7iT0/jT5/GjRuXHS8M/g8YMCC23377WHjhheOxxx7Lgghff/117LnnnjF27Ng45JBDpq8i208BgqOOOirb7tq1a+y+++6x9tprx8iRI+POO++MYcOGxVNPPRUbbrhhPPDAA9GrV69WrafRymUSIECAAAECBAgQIECAAAECBAgQIECAQNUKVEUA4L333ouDDjoo66ROnTrF3/72t9hpp50adNrvfve7OOKII+KCCy6INIA/cODAePbZZyOVL05pip9XXnkly9ptt93i2muvjc6dO2f7BxxwQDzxxBOx3XbbZYP/hx9+ePzoRz/KggzFdYwePToPDMw333xx2223ZQP9hTLpLYUUQLj++uvj1VdfzaYVuuiiiwqH88+Wqiev0AYBAgQIECBAgAABAgQIECBAgAABAgQI1IxAVawBkAbSx48fn3Vaeup++sH/dCAN9Kc1AFZfffWs3Msvvxwvvvhitl3444svvsimCEr7/fr1azD4Xyiz3nrrxZ///Odsd8qUKXHZZZcVDuWf5513XhZkSBlnnHFGg8H/lJfakt5YKLTlmmuuydufjhdSS9VTqM8nAQIECBAgQIAAAQIECBAgQIAAAQIECNSOQFUEAB599NG8x/bff/98e/qNDh06xI9//OM8e/oAwI033hgTJkzIjh944IH5k//5Cf+7kd4A6N+/f7aXAgDFc/ynzD/96U/ZsR49esTee++dbU//R/v27WPQoEFZdrpmCgJMn1qqnunrtU+AAAECBAgQIECAAAECBAgQIECAAAEC1S9QFQGAhRZaKNZaa61sUD49ud9U6t27d374ww8/zLfTRpqTv5C22GKLwmajn5tttlmW/5///CcefvjhvMz7778fn3zySbaf5vcvTB+UFyja2HTTTaNdu3ZZTnojoDi1VD3FddomQIAAAQIECBAgQIAAAQIECBAgQIAAgdoRqIoAwFVXXZUN3r/xxhv5gHqpLkyL7xbSSiutVNjMPp9++unsMz2dP/2xBgXrd1ZeeeU8q7BgcMoo1JG20wLCTaXvfe97UQhIFNeRzmmpepq6vmMECBAgQIAAAQIECBAgQIAAAQIECBAgUL0CVREAaG73pHUCip+0X2ONNRqcOmLEiGx/4YUXnmFx4AYF63eK3zRIgYdCevvttwubsdhii+XbpTYK9aS2ffzxx3mxlqonr9AGAQIECBAgQIAAAQIECBAgQIAAAQIECNSUQMdautuTTjopPv300+yWt9xyywYD9F999VVMnTo1O9arV6+ZsqSn9wspLR5cSOPGjStsxuzU06dPn+z8lqonb8wcbKTFjt97772oq6ubg1r+e+qXX345x3WogAABAgQIECBAgAABAgQIECBAgAABAgRmLlAzAYA0TdBZZ52VifTs2TMuv/zyBjpjx47N9+eZZ558u9RGcZmJEyfmxcqtnrxhc7Cx7777xtVXXz0HNcx46vRTHs1YQg4BAgQIECBAgAABAgQIECBAgAABAgQIzIlATQQA7rjjjthvv/1yp3PPPTf69u2b76eNNAVPIXXt2rWwWfKzS5cu+bHiAEC51ZM3cg42Vl999XjmmWdi2rRpc1DLf08dNWpUjBkzJhZYYIE5rksFBAgQIECAAAECBAgQIECAAAECBAgQIFBaoOoDAOnJ//333z/SNDYpHXfccbHPPvvMINKpU6c8r1A2z2hko7hMccCg3OpppOmznHXIIYdE+mmJ9Ktf/SrOO++8KEx11BJ1qoMAAQIECBAgQIAAAQIECBAgQIAAAQIEZhSo6kWATzjhhNh7771j8uTJ2Z0ff/zxceKJJ86oUJ/TvXv3PH/SpEn5dqmN4jLzzTdfXqzc6skbZoMAAQIECBAgQIAAAQIECBAgQIAAAQIEakqgKt8ASE/np6f+hw4dmnVmhw4d4qKLLooDDjigZOf26NEjP1a8AG+eOd1GcZm0pkAhFW8Xlykcn/6zuEzxucXbxWWmP7+wX1ym+NzCcZ8ECBAgQIAAAQIECBAgQIAAAQIECBAgUFsCVRcASAPhu+yySzzwwANZT84777xx/fXXx3bbbddkz6ZFfdO0NB9//HGMHDmyybLpYHGZhRZaKC+/xBJL5NvFZfLM6TYKZTp27BgLLrhgfrSl6skrtEGAAAECBAgQIECAAAECBAgQIECAAAECNSVQVVMAffbZZ7HBBhvkg/+9e/eORx99dKaD/4UeX2655bLNFEQYPXp0IbvRz7fffjvPT4vkFlKhjrQ/YsSIQnajn2lqog8++CA7tuKKK0bxWgItVU+jF5ZJgAABAgQIECBAgAABAgQIECBAgAABAlUvUDUBgDFjxsQWW2wRw4YNyzpthRVWiGeeeSZWXXXVZnfimmuumZd97LHH8u3GNh5//PE8u/i8lVdeObp06ZIdm1kdzz77bHzzzTdZ2eI6UkZL1ZNV7g8CBAgQIECAAAECBAgQIECAAAECBAgQqDmBqgkAHHTQQfHSSy9lHZieyE9P/vft23eWOjRNHVRI1157bWFzhs9///vfWf3pwGqrrRa9evXKy6RFgLfaaqtsf/jw4Xmb8gJFG9dcc02+N/0URS1VT34BGwQIECBAgAABAgQIECBAgAABAgQIECBQUwJVEQD4xz/+kc3zn3ouTftz++23xwILLDDLHTlgwID8jYFUx5///OcZ6vj6669j3333jTR9T0q/+c1vZiiTjhdSWng4vZ0wfbr77rvzRYrT2wrbbLPN9EWy6xQy56SeQh0+CRAgQIAAAQIECBAgQIAAAQIECBAgQKB2BCp+EeBvv/02DjnkkLzHevTo0WDgPD/QyMaWW24Zhx56aIMjF154YayzzjpRV1cXP//5z7M5+n/2s5/FD37wg2xKoWOOOSYKU/ustdZasfPOOzc4P+2kp/nTWwD33ntvPPfcc7HxxhvHOeeck9X7+eefx8033xxHHnlkFkRo3759nH766dGuXbtWq2eGimUQIECAAAECBAgQIECAAAECBAgQIECAQNULVHwA4OGHH44333wz76i33nor0k9z0kILLTRDsTSof/3118c+++wTX331VRx77LHZT6dOnfKn/tNJSy65ZNxxxx2RBvAbS9ddd1389Kc/jfvvvz9efvnl2HTTTWP6OtJ5KTCw7bbbNlZFltdS9ZS8gAMECBAgQIAAAQIECBAgQIAAAQIECBAgUJUCjY9eV9Ct/utf/2rx1u62227x9NNPZ/P7d+jQIau/MOVP586d4/DDD8+Of/e73y157TQF0T333BODBw/OpyMq1JFOWnHFFeOuu+7K6ipZSf2BlqqnqWs4RoAAAQIECBAgQIAAAQIECBAgQIAAAQLVJ1DxbwAMGjQo0k9LpzQvf5q+Z+LEidkT/Gnh38UXXzz69+8f8803X7Mul94OOOWUU7Kf9957L1sQeJ555omll146FltssZJvD0xfeUvVM3299gkQIECAAAECBAgQIECAAAECBAgQIECgegUqPgDQ2l3TrVu3bO7+tC7AnKQ04J9+5jS1VD1z2g7nEyBAgAABAgQIECBAgAABAgQIECBAgEB5C1T8FEDlzat1BAgQIECAAAECBAgQIECAAAECBAgQIECgbQQEANrG3VUJECBAgAABAgQIECBAgAABAgQIECBAgECrCggAtCqvygkQIECAAAECBAgQIECAAAECBAgQIECAQNsICAC0jburEiBAgAABAgQIECBAgAABAgQIECBAgACBVhUQAGhVXpUTIECAAAECBAgQIECAAAECBAgQIECAAIG2ERAAaBt3VyVAgAABAgQIECBAgAABAgQIECBAgAABAq0qIADQqrwqJ0CAAAECBAgQIECAAAECBAgQIECAAAECbSMgANA27q5KgAABAgQIECBAgAABAgQIECBAgAABAgRaVUAAoFV5VU6AAAECBAgQIECAAAECBAgQIECAAAECBNpGQACgbdxdlQABAgQIECBAgAABAgQIECBAgAABAgQItKqAAECr8qqcAAECBAgQIECAAAECBAgQIECAAAECBAi0jYAAQNu4uyoBAgQIECBAgAABAgQIECBAgAABAgQIEGhVAQGAVuVVOQECBAgQIECAAAECBAgQIECAAAECBAgQaBsBAYC2cXdVAgQIECBAgAABAgQIECBAgAABAgQIECDQqgICAK3Kq3ICBAgQIECAAAECBAgQIECAAAECBAgQINA2AgIAbePuqgQIECBAgAABAgQIECBAgAABAgQIECBAoFUFBABalVflBAgQIECAAAECBAgQIECAAAECBAgQIECgbQQEANrG3VUJECBAgAABAgQIECBAgAABAgQIECBAgECrCggAtCqvygkQIECAAAECBAgQIECAAAECBAgQIECAQNsICAC0jburEiBAgAABAgQIECBAgAABAgQIECBAgACBVhUQAGhVXpUTIECAAAECBAgQIECAAAECBAgQIECAAIG2ERAAaBt3VyVAgAABAgQIECBAgAABAgQIECBAgAABAq0qIADQqrwqJ0CAAAECBAgQIECAAAECBAgQIECAAAECbSMgANA27q5KgAABAgQIECBAgAABAgQIECBAgAABAgRaVUAAoFV5VU6AAAECBAgQIECAAAECBAgQIECAAAECBNpGQACgbdxdlQABAgQIECBAgAABAgQIECBAgAABAgQItKqAAECr8qqcAAECBAgQIECAAAECBAgQIECAAAECBAi0jYAAQNu4uyoBAgQIECBAgAABAgQIECBAgAABAgQIEGhVAQGAVuVVOQECBAgQIECAAAECBAgQIECAAAECBAgQaBsBAYC2cXdVAgQIECBAgAABAgQIECBAgAABAgQIECDQqgICAK3Kq3ICBAgQIECAAAECBAgQIECAAAECBAgQINA2AgIAbePuqgQIECBAgAABAgQIECBAgAABAgQIECBAoFUFBABalVflBAgQIECAAAECBAgQIECAAAECBAgQIECgbQQEANrG3VUJECBAgAABAgQIECBAgAABAgQIECBAgECrCggAtCqvygkQIECAAAECBAgQIECAAAECBAgQIECAQNsICAC0jburEiBAgAABAgQIECBAgAABAgQIECBAgACBVhUQAGhVXpUTIECAAAECBAgQIECAAAECBAgQIECAAIG2ERAAaBt3VyVAgAABAgQIECBAgAABAgQIECBAgAABAq0qIADQqrwqJ0CAAAECBAgQIECAAAECBAgQIECAAAECbSMgANA27q5KgAABAgQIECBAgAABAgQIECBAgAABAgRaVUAAoFV5VU6AAAECBAgQIECAAAECBAgQIECAAAECBNpGQACgbdxdlQABAgQIECBAgAABAgQIECBAgAABAgQItKqAAECr8qqcAAECBAgQIECAAAECBAgQIECAAAECBAi0jYAAQNu4uyoBAgQIECBAgAABAgQIECBAgAABAgQIEGhVAQGAVuVVOQECBAgQIECAAAECBAgQIECAAAECBAgQaBsBAYC2cXdVAgQIECBAgAABAgQIECBAgAABAgQIECDQqgICAK3Kq3ICBAgQIECAAAECBAgQIECAAAECBAgQINA2AgIAbePuqgQIECBAgAABAgQIECBAgAABAgQIECBAoFUFBABalVflBAgQIECAAAECBAgQIECAAAECBAgQIECgbQQEANrG3VUJECBAgAABAgQIECBAgAABAgQIECBAgECrCggAtCqvygkQIECAAAECBAgQIECAAAECBAgQIECAQNsICAC0jburEiBAgAABAgQIECBAgAABAgQIECBAgACBVhUQAGhVXpUTIECAAAECBAgQIECAAAECBAgQaBuBZ599Nvbcc89YffXVo2fPntG3b9/Ycsst43e/+12MHz9+jhp18cUXx0ILLZT9jBgxoll1vfDCC9m1t9lmm+jVq1f2s+GGG8YxxxwTY8eObVYdChEgMGsCHWetuNIECBAgQIAAAQIECBAgQIAAAQIECJSzwLfffhuHHXZYXHbZZTFt2rS8qWnQ/8MPP4z7778/rrzyyhgyZEjssMMO+fHmbrz22mtxxBFHxKRJk7JTpkyZMtNTL7jgguycyZMnNyg7atSoeOyxx+Lyyy+PoUOHxrbbbtvguB0CBOZMQABgzvycTYAAAQIECBAgQIAAAQIECBAgQKCsBAYPHhyXXHJJ1qYuXbrEfvvtF6uuumqMGzcu7rjjjnjwwQfj448/jl133TWeeeaZGDBgQLPbn4ILAwcOzAf/Z3ZiXV1d/PznP49rr702K9q5c+fYbLPNYvvtt8/eQrj11lvjqaeeitGjR8dPfvKTeP7556N///4zq9ZxAgSaKSAA0EwoxQgQIECAAAECBAgQIECAAAECBAiUu0AaTP/DH/6QNXP++eePf/7zn7Hsssvmzf7lL38Zp59+evz2t7+NwmD+q6++Gu3bN2+m8GOPPTZefvnlvL6ZbaSn+guD/0svvXQ89NBDsfDCC+enpTcJjj766DjrrLNiwoQJWbAivREgESDQMgLN+2a3zLXUQoAAAQIECBAgQIAAAQIECBAgQIBAKwrce++9kZ66T+mUU05pMPhfuOxvfvObWHPNNbPdNJ3PW2+9VTjU5OcjjzwS55xzTlamR48eTZZNB7/55ptI10qpW7du8cADDzQY/E/5KfBw2mmnRQoOpJQCFultAIkAgZYREABoGUe1ECBAgAABAgQIECBAgAABAgQIEGhzgRdffDFvw0YbbZRvF2+0a9cuNtlkkzwrLc47szRmzJhsQeG0pkBaSDgt5FtIqb7G0t133x2fffZZdmjQoEHRr1+/xopFhw4dYq+99oqllloqC0w0NyDRaGUyCRBoICAA0IDDDgECBAgQIECAAAECBAgQIECAAIHqEEhz/pdKU6dOzQ+lqYBmlg466KAYOXJkLLDAAvGnP/0pSg36F9dz44035rtpgL+plKYkSgP/Tz75ZKy77rpNFXWMAIFZEBAAmAUsRQkQIECAAAECBAgQIECAAAECBAiUs8Aqq6ySNy8t+NtYmjJlSqSpggppZosAX3fddXH99ddnxYcMGRJ9+vQpnNrkZ+HNgvTk/xJLLNFkWQcJEGgdAQGA1nFVKwECBAgQIECAAAECBAgQIECAAIG5LnDIIYdEYX7+M888M2677bYGbUhP+x922GHxyiuvZPmbb755FAcNGhSu3/nggw8i1ZnSwIEDY7fddsu2Z/bH119/HSNGjMiKFQIMafqgJ554Ik499dTYaqutsif906LEKbiQjkkECLS8QMeWr1KNBAgQIECAAAECBAgQIECAAAECBAi0hUCvXr2yp/u33377+OKLL2KnnXaK9ddfP374wx/GhAkTIi3k+84772RNSwsB33DDDSWbmQbl99xzzxg7dmz07ds3LrzwwpJlpz+QAgeFQf0FF1wwJk+enNVVeJOgUD5N+XPBBRfE5ZdfHldffXX84Ac/KBzySYBACwgIALQAoioIECBAgAABAgQIECBAgAABAgQIlIvAOuusE2+++Wb2lH2ahufxxx/Pforbd+ihh8Z5550X7duXniDkrLPOisceeyyb7/+qq66K73znO8VVNLk9fvz4/HjXrl1jhx12yAITHTt2jOWWWy5b8Pftt9+O1157LdKURA899FD2JsKrr74aCy20UH6uDQIE5kyg9Dd8zup1NgECBAgQIECAAAECBAgQIECAAAECbSDw17/+NVZYYYUozMGfBvmXXHLJSE/iF1J66n7LLbeMjz76qJDV4PPFF1+M4447LstLUwZtsskmDY7PbKc4AJCe7k9rDqSphoYNG5b93HTTTdnnSy+9lLU11ffZZ5/F4YcfPrOqHSdAYBYEBABmAUtRAgQIECBAgAABAgQIECBAgAABAuUscMUVV2Rz9X/66afRrVu37Cn/NBifnrZPA+xp+p8dd9wxu4UHH3wwNthgg/jwww8b3FKavz/N95+m7UlP65922mkNjjdnJ601UEjpCf+FF144Hn300ay+Qn76TIGKhx9+OH+7IE1JlN46kAgQaBkBAYCWcVQLAQIECBAgQIAAAQIECBAgQIAAgTYVGDNmTBx55JFRV1eXTdtzzz33ZAv+pkBAIS2++OLx97//PQ466KAs6913343BgwcXDmefRx11VLzxxhvRqVOn+POf/xxpCp9ZTd27d29wyhlnnJEvTtzgQP3Od7/73fjtb3+bZwsA5BQ2CMyxgADAHBOqgAABAgQIECBAgAABAgQIECBAgEDbC6TB+rRgb0r77LNP9nR/qVal+f379OmTHf7LX/4S6Y2BlFLQ4KKLLsq2jzjiiFhsscUiBRam/yl+wn/cuHH58fS0f0o9evTIPgt/pDcNmkrrrrtufjitCyARINAyAgIALeOoFgIECBAgQIAAAQIECBAgQIAAAQJtKvD666/n1990003z7cY25p133lhvvfWyQ1OnTs0W4007t99+e1789NNPj/nnn7/Rn1tuuSUvt8Yaa+Rl/vnPf2b5P/jBD/Lj6U2C4v38QNFGWqOgkEaMGFHY9EmAwBwKCADMIaDTCRAgQIAAAQIECBAgQIAAAQIECJSDwOeff543o/B0f57RyEaaDqiQCm8AFPbn9DMtONy7d++smrSWQFp7oKn05Zdf5odT0EEiQKBlBDq2TDVqIUCAAAECBAgQIECAAAECBAgQIECgLQWWX375/PLPPvtsbLjhhvl+YxvFg/LLLLNMVmTrrbfO5uRvrHxxXnoDoDBVz4EHHpifs8gii+TF1lxzzWy9gZTx1FNPRfFT/nmh/91IixQXUpp2SCJAoGUEBABaxlEtBAgQIECAAAECBAgQIECAAAECBNpUYMCAAfn177///kiL+ZZKad7+wmK7nTt3jkLwYIcddoj0M7OUpukpBAAOP/zw6N+//wyn/PSnP80DANdff33sscce2eLEMxSszxg6dGieveOOO+bbNggQmDMBUwDNmZ+zCRAgQIAAAQIECBAgQIAAAQIECJSFwMYbbxyLLrpo1pYHH3wwjj322EbbVVdXF4cddli+8G8aqE/z9Ld0SoGEwhsBd999dwwePLjRS9x5551x6623Zsf69esXW2yxRaPlZBIgMOsCAgCzbuYMAgQIECBAgAABAgQIECBAgAABAmUn0L1797j66qujffv/Dvmdcsopsd9++8UDDzwQEydOzH6efPLJSIGCq666Kmt/GqA///zzW+VeunbtGpdddll06NAhqz8tKnzwwQfHI488ElOmTImRI0fGqaeeGjvttFN+/csvvzwvn2faIEBgtgVMATTbdE4kQIAAAQIECBAgQIAAAQIECBAgUF4CG2ywQVx44YVx5JFHZgP+V1xxRaSf9IT/1KlTY9q0aXmDl1hiiUhT8/Ts2TPPa+mN9DR/CkCktwzSQsNDhgzJftK0Q99++21+uRS0OOecczz9n4vYINAyAt4AaBlHtRAgQIAAAQIECBAgQIAAAQIECBAoC4GDDjoo/vWvf8V2220XHTv+9/nfyZMn54P/6U2BNB3P8OHDY7XVVmv1Nqc3Dl566aVIc/v36NEju17x4P96660Xac2CtJaARIBAywp4A6BlPdVGgAABAgQIECBAgAABAgQIECBAoM0F0loAd9xxR/aU/dtvvx2vv/56pIH/5ZZbLvr27VtyMd7mNvyvf/1rpJ/mpt69e2cLAqf1B956660YNmxY9ubB0ksvHYsvvnhzq1GOAIFZFBAAmEUwxQkQIECAAAECBAgQIECAAAECBAhUikCaamf55ZfPfsqhze3atYv+/ftnP+XQHm0gUO0CpgCq9h52fwQIECBAgAABAgQIECBAgAABAgQIECBQkwICADXZ7W6aAAECBAgQIECAAAECBAgQIECAAAECBKpdQACg2nvY/REgQIAAAQIECBAgQIAAAQIECBAgQIBATQoIANRkt7tpAgQIECBAgAABAgQIECBAgAABAgQIEKh2AQGAau9h90eAAAECBAgQIECAAAECBAgQIECAAAECNSkgAFCT3e6mCRAgQIAAAQIECBAgQIAAAQIECBAgQKDaBQQAqr2H3R8BAgQIECBAgAABAgQIECBAgAABAgQI1KSAAEBNdrubJkCAAAECBAgQIECAAAECBAgQIECAAIFqFxAAqPYedn8ECBAgQIAAAQIECBAgQIAAAQIECBAgUJMCAgA12e1umgABAgQIECBAgAABAgQIECBAgAABAgSqXUAAoNp72P0RIECAAAECBAgQIECAAAECBAgQIECAQE0KCADUZLe7aQIECBAgQIAAAQIECBAgQIAAAQIECBCodgEBgGrvYfdHgAABAgQIECBAgAABAgQIECBAgAABAjUpIABQk93upgkQIECAAAECBAgQIECAAAECBAgQIECg2gUEAKq9h90fAQIECBAgQIAAAQIECBAgQIAAAQIECNSkQMeavGs3TYAAAQIECBAgQIAAAQIECBAg0CyBadOmxeDBg+P9999vVnmFCBAoH4EFF1wwzjjjjOjWrVv5NEpL5qqAAMBc5XYxAgQIECBAgAABAgQIECBAgEBlCXz++edx5plnVlajtZYAgVxg++23jy222CLft1FbAgIAtdXf7pYAAQIECBAgQIAAAQIECBAgMEsCdXV1Wfn23fvEfJucPUvnKkyAQNsJTHj6zJg86uWYMmVK2zXCldtcQACgzbtAAwgQIECAAAECBAgQIECAAAEC5S/QvnPP6Lb8T8u/oVpIgEAmMHH4tRH1AQCptgUsAlzb/e/uCRAgQIAAAQIECBAgQIAAAQIECBAgQKBKBQQAqrRj3RYBAgQIECBAgAABAgQIECBAgAABAgQI1LaAAEBt97+7J0CAAAECBAgQIECAAAECBAgQIECAAIEqFRAAqNKOdVsECBAgQIAAAQIECBAgQIAAAQIECBAgUNsCAgC13f/ungABAgQIECBAgAABAgQIECBAgAABAgSqVEAAoEo71m0RIECAAAECBAgQIECAAAECBAgQIECAQG0LCADUdv+7ewIECBAgQIAAAQIECBAgQIAAAQIECBCoUgEBgCrtWLdFgAABAgQIECBAgAABAgQIECBAgAABArUtIABQ2/3v7gkQIECAAAECBAgQIECAAAECBAgQIECgSgUEAKq0Y90WAQIECBAgQIAAAQIECBAgQIAAAQIECNS2gABAbfe/uydAgAABAgQIECBAgAABAgQIECBAgACBKhUQAKjSjnVbBAgQIECAAAECBAgQIECAAAECBAgQIFDbAgIAtd3/7p4AAQIECBAgQIAAAQIECBAgQIAAAQIEqlRAAKBKO9ZtESBAgAABAgQIECBAgAABAgQIECBAgEBtCwgA1Hb/u3sCBAgQIECAAAECBAgQIECAAAECBAgQqFIBAYAq7Vi3RYAAAQIECBAgQIAAAQIECBAgQIAAAQK1LSAAUNv97+4JECBAgAABAgQIECBAgAABAgQIECBAoEoFBACqtGPdFgECBAgQIECAAAECBAgQIECAAAECBAjUtoAAQG33v7snQIAAAQIECBAgQIAAAQIECBAgQIAAgSoVEACo0o51WwQIECBAgAABAgQIECBAgAABAgQIECBQ2wICALXd/+6eAAECBAgQIECAAAECBAgQIECAAAECBKpUQACgSjvWbREgQIAAAQIECBAgQIAAAQIECBAgQIBAbQsIANR2/7t7AgQIECBAgAABAgQIECBAgAABAgQIEKhSAQGAKu1Yt0WAAAECBAgQIECAAAECBAgQIECAAAECtS0gAFDb/e/uCRAgQIAAAQIECBAgQIAAAQIECBAgQKBKBQQAqrRj3RYBAgQIECBAgAABAgQIECBAgAABAgQI1LaAAEBt97+7J0CAAAECBAgQIECAAAECBAgQIECAAIEqFRAAqNKOdVsECBAgQIAAAQIECBAgQIAAAQIECBAgUNsCAgC13f/ungABAgQIECBAgAABAgQIECBAgAABAgSqVEAAoEo71m0RIECAAAECBAgQIECAAAECBAgQIECAQG0LCADUdv+7ewIECBAgQIAAAQIECBAgQIAAAQIECBCoUgEBgCrtWLdFgAABAgQIECBAgAABAgQIECBAgAABArUtIABQ2/3v7gkQIECAAAECBAgQIECAAAECBAgQIECgSgUEAKq0Y90WAQIECBAgQIAAAQIECBAgQIAAAQIECNS2gABAbfe/uydAgAABAgQIECBAgAABAgQIECBAgACBKhUQAKjSjnVbBAgQIECAAAECBAgQIECAAAECBAgQIFDbAgIAtd3/7p4AAQIECBAgQIAAAQIECBAgQIAAAQIEqlRAAKBKO9ZtESBAgAABAgQIECBAgAABAgQIECBAgEBtCwgA1Hb/u3sCBAgQIECAAAECBAgQIECAAAECBAgQqFIBAYAq7Vi3RYAAAQIECBAgQIAAAQIECBAgQIAAAQK1LSAAUNv97+4JECBAgAABAgQIECBAgAABAgQIECBAoEoFBACqtGPdFgECBAgQIECAAAECBAgQIECAAAECBAjUtoAAQG33v7snQIAAAQIECBAgQIAAAQIECBAgQIAAgSoVEACo0o51WwQIECBAgAABAgQIECBAgAABAgQIECBQ2wICALXd/+6eAAECBAgQIECAAAECBAgQIECAAAECBKpUQACgSjvWbREgQIAAAQIECBAgQIAAAQIECBAgQIBAbQsIANR2/7t7AgQIECBAgAABAgQIECBAgAABAgQIEKhSAQGAKu1Yt0WAAAECBAgQIECAAAECBAgQIECAAAECtS0gAFDb/e/uCRAgQIAAAQIECBAgQIAAAQIECBAgQKBKBQQAqrRj3RYBAgQIECBAgAABAgQIECBAgAABAgQI1LaAAEBt97+7J0CAAAECBAgQIECAAAECBAgQIECAAIEqFRAAqNKOdVsECBAgQIAAAQIECBAgQIAAAQIECBAgUNsCAgC13f/ungABAgQIECBAgAABAgQIECBAgAABAgSqVEAAoEo71m0RIECAAAECBAgQIECAAAECBAgQIECAQG0LCADUdv+7ewIECBAgQIAAAQIECBAgQIAAAQIECBCoUgEBgCrtWLdFgAABAgQIECBAgAABAgQIECBAgAABArUtIABQ2/3v7gkQIECAAAECBAgQIECAAAECBAgQIECgSgUEAKq0Y90WAQIECBAgQIAAAQIECBAgQIAAAQIECNS2gABAbfe/uydAgAABAgQIECBAgAABAgQIECBAgACBKhUQAKjSjnVbBAgQIECAAAECBAgQIECAAAECBAgQIFDbAgIAtd3/7p4AAQIECBAgQIAAAQIECBAgQIAAAQIEqlRAAKBKO9ZtESBAgAABAgQIECBAgAABAgQIECBAgEBtCwgA1Hb/u3sCBAgQIECAAAECBAgQIECAAAECBAgQqFIBAYAq7Vi3RYAAAQIECBAgQIAAAQIECBAgQIAAAQK1LSAAUNv97+4JECBAgAABAgQIECBAgAABAgQIECBAoEoFBAAqpGPfeeed2HfffWOVVVaJnj17xnLLLZftDx06NL766qsKuQvNJECAAAECBAgQIECAAAECBAgQIECAAIG5JdBxbl3IdWZf4Oyzz47BgwfH5MmT80pef/31SD9XXnllXH755XHXXXfF/PPPnx+3QYAAAQIECBAgQIAAAQIECBAgQIAAAQK1LSAAUOb9n57wP+qoo7JWdu3aNXbfffdYe+21Y+TIkXHnnXfGsGHD4qmnnooNN9wwHnjggejVq1eZ35HmESBAgAABAgQIECBAgAABAgQIECBAgMDcEDAF0NxQns1rjB49Og455JDs7Pnmmy/uvffeuOqqq+KAAw6Ik08+OZ577rn4yU9+kh1/9dVX48QTT5zNKzmNAAECBAgQIECAAAECBAgQIECAAAECBKpNQACgjHv0vPPOi6+//jpr4RlnnJE95V/c3E6dOsV1110Xq6++epZ9zTXXxPjx44uL2CZAgAABAgQIECBAgAABAgQIECBAgACBGhUQACjjjv/Tn/6Uta5Hjx6x9957N9rS9u3bx6BBg7JjEyZMiBQEkAgQIECAAAECBAgQIECAAAECBAgQIECAgABAmf438P7778cnn3yStS7N79+5c+eSLd10002jXbt22fH0RoBEgAABAgQIECBAgAABAgQIECBAgAABAgQEAMr0v4Gnn346b9mAAQPy7cY2vve970Xv3r2zQ8OHD2+siDwCBAgQIECAAAECBAgQIECAAAECBAgQqDEBAYAy7fC33347b9liiy2Wb5fa6NevX3YorQHw8ccflyomnwABAgQIECBAgAABAgQIECBAgAABAgRqREAAoEw7ety4cXnLevXqlW+X2khvARTSF198Udj0SYAAAQIECBAgQIAAAQIECBAgQIAAAQI1KtCxRu+77G977NixeRvnmWeefLvURnGZiRMnlio2W/lDhgyJCy+8MKZNmzZb5xef9Omnn2a7lf6WwlcvDomvX7+x+NZsEyBQtgJ1M7Rs7D8GxfjHfz9DvgwCBMpPoG7qpLxRdXX//T5/ftOO0a5DlzzfBgEC5Ssw7Zv/+3dNoZWjLlu+sOmTAIEyF5g6cVSDFk4Z8258eumyDfLsECBQvgJTx48s38Zp2VwTEACYa9SzdqE0lU8hde3atbBZ8rNLl//7R3BLBwDSegSvvfZayWvPzoEOHTrMzmltfk5hOqZpX38W6UciQKByBBZddNHIv8MTPo5pYbq0yuk9LSUQkb7DkyZNirTe0dSx7yEhQKDCBNJ3OP28++67MeWLNyqs9ZpLgMCyyy4b3brNGxMnfuU77D8HAhUm0L59h+jbt2+FtVpzW1JAAKAlNVuwrk6dOuW1TZkyJd8utVFcpjkBg1L1NJZ/xRVXxODBg6Pw1F1jZWYlL01vtMYaa8zKKWVTdo899oh11103vvnmm7Jpk4YQINA8gfQLT3pbap999ompU6c27ySlCBAoC4F27drF4osvnv0ukgYPJQIEKksgPfyz5JJLxqBBg+Kjjz6qrMZrLQEC2e/QiyyySOywww4xevRoIgQIVJjAfPPNF717966wVmtuSwoIALSkZgvW1b1797y29LTbzFJxmfTFbsmUghH9+/dvySoruq7CE8QVfRMaT6CGBZZaaqkavnu3TqDyBZZZZpnKvwl3QKBGBXr06BG+wzXa+W67KgQWXHDBSD8SAQIECFSWgEWAy7S/evbsmbeseEHgPHO6jeIyxedOV8wuAQIECBAgQIAAAQIECBAgQIAAAQIECNSIgABAmXb0Eksskbds5MiZL9hRKNOxY0cR+VzOBgECBAgQIECAAAECBAgQIECAAAECBGpXQACgTPt+ueWWy1s2YsSIfLuxjcmTJ8cHH3yQHVpxxRWjpdcAaOya8ggQIECAAAECBAgQIECAAAECBAgQIECgvAUEAMq0f1ZeeeXo0qVL1rrHHnusyVY+++yz+aK0a665ZpNlHSRAgAABAgQIECBAgAABAgQIECBAgACB2hAQACjTfk6LAG+11VZZ64YPHx4vvfRSyZZec801+bHtttsu37ZBgAABAgQIECBAgAABAgQIECBAgAABArUrIABQxn2/77775q074IADYsyYMfl+YePuu++OoUOHZrsrrLBCbLPNNoVDPgkQIECAAAECBAgQIECAAAECBAgQIECghgUEAMq489PT/IW3AJ577rnYeOON46GHHopJkybFRx99FOeff37stNNOkdYAaN++fZx++unRrl27Mr4jTSNQHgKff/553HzzzeXRGK0gQIAAAQIECBAgUCECfo+ukI7STAIECBAgUCTQrq4+Fe3bLDOBL774In7605/G/fffn7esU6dO2aB/nlG/ce6558bhhx9enGWbAIFGBNI/WjbZZJNIU2tdccUVsffeezdSShYBAgQIECDQGgLjx4/P/g5ee+21W6N6dRIg0IoCfo9uRVxVEyBAgACBVhTwBkAr4rZE1QsssEDcc889MXjw4EjbKaUn/gtpxRVXjLvuusvgfwHEJ4GZCFx66aXxyiuvxLRp0yJNs1WYQmsmpzlMgAABAgQItIDAE088kb3h+tRTT7VAbaogQGBuCvg9em5quxYBAgQIEGg5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vPPOOw3alAb/jzvuuCwvDf6nYF9hzv+0Lk/6fTyl++67L/v0BwEClScgAFB5fabFBAi0gIAgQAsgqoJAKwuk+fzTdCAjRoyINLiQBvzSYr/pHylffvnlDFdfddVVsyeK04EbbrghRo4cOUMZGQQIzD2B9D38xS9+Ed9++20stthicf7550d6Q+fSSy/N3ghIQb1llllmhgYVggBpECKlr7/+Ovbaa69soPGNN97I8tJbQe3b+6dMhuEPAq0gkAJsaerMt99+O6v90EMPzdboSNNzpem6vve972X57777bvZ3tSBAK3SCKgm0sMCGG26Y1fjiiy9m696lnaYG/9Pxrl27Zn//pu1JkybF1KlT06ZEgECFCbSrn8+vrsLarLkECBBoMYETTzwxjj/++Ly+9AvQMccck++njfS/yQMPPDB/5TENOKRFgtPciRIBAq0nkL57aaqPc845Jx5++OEGF0preqTv5a9+9avo3bt3fiwt8J2eFk4prQvgTYCcxgaBuSqQpgVZeuml46uvvsr+vnz00UcjPUU4KykNNPzkJz+J2267rcFpm222WTYA2blz5wb5dggQaDmB008/PX77299m62Ndc801scceezSoPE0lstJKK+V5Kcj3yCOPRL9+/fK8tOH36AYcdgi0qcCFF14YKZiXUpo6M/17ttST/8UN3W233eLGG2/MFg9Of6936tSp+LBtAgQqQMBjMxXQSZpIgMCsCaR/aDRnobJU66y8CbDffvtlDUm/JBn8n7U+UZrA7AikKQTSVB9pUD8F3X72s59Fx44ds6rSwoNnnXVW9lTxAQcckL0lkA6kBcsKAYDLL788xo4dOzuXdg4BAnMocPHFF2eD/2mQIE3f09zB//R3eOHpwvTU4c033xynnHJKtlhhCiikv7dTYNDg/xx2kNMJNCGQpuwqDAqmh2WmH/xPp6Y3fIpTWuR7o/q39tI6HcWpMB2Q36OLVWwTaBuBHXfcMZ96L/39WvieTz/tT3Hr0t/LTz/9dJaVAvAG/4t1bBOoHAFvAFROX2kpAQLNEEgLle28885RPFdp4bS04OD9998fffr0KWTln819EyDNh7j99tvn59kgQGDuCqRpfdI0ImkRsjQNQSF16NAhCxCkRb4/++yzWGONNbJDZ555Zhx11FGFYj4JEJhLAmnB3zQgmBYJffLJJ5t11bTgd5py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1apVCzbTJMG33Xab7du3z03aPWXKlGAdTxBAAAEEEEAAgewIEADIjhJ1EEAAAQQQKAAC3333nSmf6Pz5810OYc3HoZJTQYACQMAhIoAAAgggUCAFNClww4YN7YsvvrBWrVpZ+fLlTWk0v/nmG3c+VapUcZ/vWk5BAAEEEEAAAQQORoAAwMFoURcBBBBAAIE0FFCjwf3332+alNefoDf6MAkCRIvwGgEEEEAAgfQRGDRokA0bNizuAV144YU2fvx4l/8/bgUWIoAAAggggAACSQSKevlB706ynlUIIIAAAgggkMYCP/74ozVq1MgmT55smm+jevXqdt5557llmiRw586d7ug3b95sM2bMcDn8jz766IgzatGihRUpUsTl+teKOXPm2BFHHGHNmzePqMcLBBBAAAEEEMgdgaZNm5pSda1evdrNu6N30efw4MGD7eGHH7boz+7cOQr2igACCCCAAAKFUYARAIXxqnJOCCCAAAIZI9ChQwd76623XAO+eg4OGDAgyNOvgMC0adOsV69epgCAysGMBFDqgWbNmmWMJSeKAAIIIIBAOgj89ttv9uuvvxqTdafD1eAYEEAAAQQQKPgCBAAK/jXkDBBAAAEEMlTg008/tfr167uzv+mmm+zJJ5+MK6G5ATp16mQff/yxW5+dIMCQIUOMQYJxOVmIAAIIIIAAAggggAACCCCAQIERIABQYC4VB4oAAggggECkwMCBA+2RRx5xCzds2GCVKlWKrBD2as+ePS410IIFC9zSZEGAuXPnmtICURBAAAEEEEAAAQQQQAABBBBAoGALFCnYh8/RI4AAAgggkLkC69evdyd/+OGH24knnpgUolixYjZx4kQrX768q7d8+XJr1aqVbdu2LWY7Gv9jSFiAAAIIIIAAAggggAACCCCAQIEUIABQIC8bB40AAggggIDZ3r17HYNy/W/cuDFLkooVK0akCUoWBMhyZ1RAAAEEEEAAAQQQQAABBBBAAIG0FyAAkPaXiANEAAEEEEAgvkDDhg3dilAoZP/4xz/iV4pa2r59eytRokSwlCBAQMETBBBAAAEEEEAAAQQQQAABBAqdAAGAQndJOSEEEEAAgUwRuPDCC4NTfeyxx2zTpk3B60RPihcvbvXq1XOrTz/9dPf4008/2c6dOxNtwnIEEEAAAQQQQAABBBBAAAEEECigAgQACuiF47ARQAABBBA488wzrUOHDg5Cjf+dO3cO0gIl09m8ebNb/cYbb1i3bt3s/ffft5NPPjnZJqxDAAEEEEAAAQQQQAABBBBAAIECKHCYlzYgVACPm0NGAAEEEEAAAU9g9erVVrduXdu1a5fzuPzyy23cuHF29NFHx/VZuXKlKXCwf/9+++GHH6xMmTJx67EQAQQQQAABBBBAAAEEEEAAAQQKvgAjAAr+NeQMEEAAAQQyWKB69eo2fvx4O+yww5zCxIkTrUmTJrZ27doYlR9//NGuv/561/jfoEEDK126dEwdFiCAAAIIIIAAAggggAACCCCAQOERYARA4bmWnAkCCCCAQAYLjB492m6++WY7cOCAU9AIAM0RcOmll9qRRx7pAgKPPvqobdmyxYoWLWqLFy92IwcymIxTRwABBBBAAAEEEEAAAQQQQKDQCxAAKPSXmBNEAAEEEMgUgRkzZliXLl1s+/btCU+5SJEiNnz4cLv11lsT1mEFAggggAACCCCAAAIIIIAAAggUDgFSABWO68hZIIAAAgggYG3btnU9/QcNGmSlSpWKEVHaHwUJaPyPoWEBAggggAACCCCAAAIIIIAAAoVSgBEAhfKyclIIIIAAApkuoFRAy5cvd5MElyxZ0qpVq+b+ZboL548AAggggAACCCCAAAIIIIBAJgkQAMikq825IoAAAggggAACCCCAAAIIIIAAAggggAACCGSMACmAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAZk0+FAAAFFBJREFUAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCCCAAAIIIIAAAggggAACmSRAACCTrjbnigACCCCAAAIIIIAAAggggAACCCCAAAIIIJAxAgQAMuZSc6IIIIAAAggggAACCJjVq1fPKlSoYLVr14YjlwSqVKnijJs0aZJL78BuEUAAAQQQQAABBBDInsDh2atGLQQQQAABBBBAAAEEECgMAlu3brXNmzfbgQMHCsPppOU5bNmyxXbs2GElS5ZMy+PjoBBAAAEEEEAAAQQyR4ARAJlzrTlTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQwSIACQQRebU0UAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIHAECAJlzrTlTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQwSIACQQRebU0UAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIHAEmAc6ca82ZIoAAAggggAACCBQygUWLFtmzzz5rS5YssfXr17tJZ6tWrWrNmjWz//u//7NSpUpleca//PKLjRo1yj7++GNbvHix26Zp06amf507d85yIltNJjx+/Hj77LPP7IsvvnD/du3aZTqO6tWr25lnnmm9e/e2YsWKxRzL/Pnz7aWXXnLL77vvPitXrpy99957NmvWLFu4cKHbV82aNa1evXp2zTXXWIMGDWL2oQU5tZ/wne/bt8+ef/55Z6Jz+/e//201atRw59O6dWvr2LFjeHWeI4AAAggggAACCCCQlgKHhbySlkfGQSGAAAIIIIAAAggggEBcATXaX3vttTZ58uS467XwuOOOcw3YHTp0iKhz0kkn2YYNG6xs2bL2z3/+0zXyr169OqKO/+Lss8+2GTNm2DHHHOMvinhctWqV9ejRwzWSR6yIeqGG8xdffNEaNWoUsea5556zG264wS1bs2aNTZgwwQYPHhxRx39xxBFH2PDhw11gw1/mP+bUfvz96by6du1qS5cu9RfFPF555ZU2evRoK1OmTMy6kiVL2o4dO1wQROdFQQABBBBAAAEEEEAgvwQIAOSXPO+LAAIIIIAAAggggEAKAnv37rWzzjrL9bjX5mpsVk999ZL/7bffbNq0aTZz5ky356OOOsref//9iIZ3PwCgBnX9U2/90qVLW6tWrez00083BQNef/11Uw94lZYtW7r9HX545ODhTz75xM455xzbs2ePq3fuueeaesaXL1/efvzxR/v888/tH//4R7BeowHUsF6kyP+ykIY33F966aU2ZcoUd0xt27Z1x/Ltt9/anDlzbNOmTe499N+7775rWh9ecmo/2ufcuXPtggsusF9//dW9hUYd6P1OOeUUW7FihXv/L7/80q07+eSTbdmyZc7PLfj//xEACNfgOQIIIIAAAggggEC+CmgEAAUBBBBAAAEEEEAAAQQKhsCQIUM0gtf9q1OnTshrsI858L/97W9BHS8wELG+cuXKwTrtp1evXqH9+/dH1PEatUNer/+gntcoHrFeL6666qpgvZdCKGa9Fnhpc0InnnhiUG/q1KkR9bz0RcE6HYsXgAitXLkyoo4X8Aidd955Qb2LL744Yr1e5NR+vKBH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" width="768" /></p>
<ul>
<li><p><span style="color:dodgerblue"><strong>Implementation B</strong></span>: Shiny reporting engine: last touch analysis result for subgroups of transactions.</p></li>
<li><p><span style="color:dodgerblue"><strong>Results & Interpretation</strong></span>: majority of conversions happen after receiving the ads through email, social media, and diplay.</p></li>
</ul>
</div>
<div id="method-2-holdout-test" class="slide section level2">
<h2>Method 2: Holdout Test</h2>
<ul>
<li><p><span style="color:dodgerblue"><strong>Analysis</strong></span>: Conduct an experiment called holdout testing by randomly selecting the customers for the control group to be not exposed to an ad. Here, we picked 2017-01-31 to analyze the result of the holdout test for the first 10 days.</p></li>
<li><p><span style="color:dodgerblue"><strong>Implementation A</strong></span>:</p></li>
</ul>
<pre><code> consumed
group FALSE TRUE
control group 702 470
test group 2613 2216</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAASACAYAAAA5wYaaAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/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+8AAEAASURBVHgB7N0JvHVT3TjwRSJTIVPiQaEyZx6SlDFCIRmSIdLA27/JkPT2ijQQkUKTIVQiKUMlU0IhMiVDmYcMZZ7Pf//2/933f4Z17j3nPvc+9+7zfNfnc51z1ll7n7W+6zzXvuu39lozNIqUJAIECBAgQIAAAQIECBAgQIAAAQIECBAgQGCgBGYcqNZoDAECBAgQIECAAAECBAgQIECAAAECBAgQIFAKCAD4IhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQEUEAAYwE7VJAIECBAgQIAAAQIECBAgQIAAAQIECBAgIADgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAZQQABgADtVkwgQIECAAAECBAgQIECAAAECBAgQIECAgACA7wABAgQIECBAgAABAgQIECBAgAABAgQIEBhAAQGAAexUTSJAgAABAgQIECBAgAABAgQIECBAgAABAgIAvgMECBAgQIAAAQIECBAgQIAAAQIECBAgQGAABQQABrBTNYkAAQIECBAgQIAAAQIECBAgQIAAAQIECAgA+A4QIECAAAECBAgQIECAAAECBAgQIECAAIEBFBAAGMBO1SQCBAgQIECAAAECBAgQIECAAAECBAgQICAA4DtAgAABAgQIECBAgAABAgQIECBAgAABAgQGUEAAYAA7VZMIECBAgAABAgQIECBAgAABAgQIECBAgIAAgO8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAYQAEBgAHsVE0iQIAAAQIECBAgQIAAAQIECBAgQIAAAQICAL4DBAgQIECAAAECBAgQIECAAAECBAgQIEBgAAUEAAawUzWJAAECBAgQIECAAAECBAgQIECAAAECBAgIAPgOECBAgAABAgQIECBAgAABAgQIECBAgACBARQQABjATtUkAgQIECBAgAABAgQIECBAgAABAgQIECAgAOA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBlBAAGAAO1WTCBAgQIAAAQIECBAgQIAAAQIECBAgQICAAIDvAAECBAgQIECAAAECBAgQIECAAAECBAgQGEABAYAB7FRNIkCAAAECBAgQIECAAAECBAgQIECAAAECAgC+AwQIECBAgAABAgQIECBAgAABAgQIECBAYAAFBAAGsFM1iQABAgQIECBAgAABAgQIECBAgAABAgQICAD4DhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQEUEAAYwE7VJAIECBAgQIAAAQIECBAgQIAAAQIECBAgIADgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAZQQABgADtVkwgQIECAAAECBAgQIECAAAECBAgQIECAgACA7wABAgQIECBAgAABAgQIECBAgAABAgQIEBhAAQGAAexUTSJAgAABAgQIECBAgAABAgQIECBAgAABAgIAvgMECBAgQIAAAQIECBAgQIAAAQIECBAgQGAABQQABrBTNYkAAQIECBAgQIAAAQIECBAgQIAAAQIECAgA+A4QIECAAAECBAgQIECAAAECBAgQIECAAIEBFBAAGMBO1SQCBAgQIECAAAECBAgQIECAAAECBAgQICAA4DtAgAABAgQIECBAgAABAgQIECBAgAABAgQGUEAAYAA7VZMIECBAgAABAgQIECBAgAABAgQIECBAgIAAgO8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAYQAEBgAHsVE0iQIAAAQIECBAgQIAAAQIECBAgQIAAAQICAL4DBAgQIECAAAECBAgQIECAAAECBAgQIEBgAAUEAAawUzWJAAECBAgQIECAAAECBAgQIECAAAECBAgIAPgOECBAgAABAgQIECBAgAABAgQIECBAgACBARQQABjATtUkAgQIECBAgAABAgQIECBAgAABAgQIECAgAOA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBlBAAGAAO1WTCBAgQIAAAQIECBAgQIAAAQIECBAgQICAAIDvAAECBAgQIECAAAECBAgQIECAAAECBAgQGEABAYAB7FRNIkCAAAECBAgQIECAAAECBAgQIECAAAECAgC+AwQIECBAgAABAgQIECBAgAABAgQIECBAYAAFBAAGsFM1iQABAgQIECBAgAABAgQIECBAgAABAgQICAD4DhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQEUEAAYwE7VJAIECBAgQIAAAQIECBAgQIAAAQIECBAgIADgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAZQQABgADtVkwgQIECAAAECBAgQIECAAAECBAgQIECAgACA7wABAgQIECBAgAABAgQIECBAgAABAgQIEBhAAQGAAexUTSJAgAABAgQIECBAgAABAgQIECBAgAABAgIAvgMECBAgQIAAAQIECBAgQIAAAQIECBAgQGAABQQABrBTNYkAAQIECBAgQIAAAQIECBAgQIAAAQIECAgA+A4QIECAAAECBAgQIECAAAECBAgQIECAAIEBFBAAGMBO1SQCBAgQIECAAAECBAgQIECAAAECBAgQICAA4DtAgAABAgQIECBAgAABAgQIECBAgAABAgQGUEAAYAA7VZMIECBAgAABAgQIECBAgAABAgQIECBAgIAAgO8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAYQAEBgAHsVE0iQIAAAQIECBAgQIAAAQIECBAgQIAAAQICAL4DBAgQIECAAAECBAgQIECAAAECBAgQIEBgAAVmGsA2aRIBAgQIECAwnQk8+OCD6fjjj+9o9RZbbJGWW265jvxcxgknnJDuvvvulrcWWmihtOuuu7bkjfeLu+66K5144okdH7PffvulV7ziFR35/WTceeed6aSTTuo4ZP/9908zzmheSAeMDAJjJHD77benv/3tbyke//GPf6T55psvLbXUUulNb3pT+TjLLLP0/UnPP/98uuGGG9LVV1+dbrnllrTEEkuklVdeOS2//PJpNOfLVeCaa65Jxx57bMtbhx56aJp77rlb8qoXTz/9dHr00Uerl6N+nG222dI888wz6uO7HTjeZv16davnaPNvvPHGdNFFF6X7778/PfPMM2nppZcu/x+4zDLLpNlnn320px06bqLbN1QRTwgQIECAAIH+BBoSAQIECBAgQKDmAtdee22juALq+CkGu3tu2dve9raO41dbbbWejx+rghdffHFHPaJtzz333FR/RDEwlD33Cy+8MNXnnswnKAbCGgcddFAj2j/WaTzPPdZ1Hc35Br19ozHp55g//elPjY033jj77676nfW6172u0c/vqpdeeqlxwAEHNGaeeebseV/5ylc2/uu//qsxFv+u11lnnY7PKAKlXQmKQGpH+aqd/Txut912XT9jNG9MK7N+vUbTltwxv/zlLxvFYH9X+5lmmqnxhS98oVEEQHKH95w3Ue3ruYIKEiBAgAABAlkBU72KK1GJAAECBAgQIEBgMAXOOOOM9Ja3vCUVg18pZiePZRrPc49lPUd7rkFv32hdej1uzz33TEUQMZ133nnDHhKztT/4wQ+mt7/97em+++4btuxjjz2WNt100/TlL385xWz2XCoG/tORRx6Z1l9//fTQQw/livSUd+aZZ6ZLL720p7KTudC0MpsIr+Iv/PSRj3wkbb755ummm27q2g0vvvhiKoKg5fcx7hIYTZqI9o2mno4hQIAAAQIEOgUEADpN5BAgQIAAAQIECNRcIJZGede73pW22mqr9M9//nNMWzOe5x7Tio7yZIPevlGy9HXYt771rY6lc0Y6QQy277TTTikGdXMpBvbXXXfdEQMK1bHF3URpzTXXTE899VSV1fPjH/7wh7IuPR8wSQtOK7OJ8jrwwAPTcccd17N+cbdc2mijjdK///3vno+JghPVvr4qqTABAgQIECDQVUAAoCuNNwgQIECAAAECBOoqsOKKK6bf//7341L98Tz3uFS4z5MOevv65Oi7+OWXX54+/elPZ4+bc845U/jGHgC5dMEFF6TDDz8891Y5q//666/Pvhfr/88wwwwd791xxx3p4IMP7sgfLuOSSy5Jm2yySXryySeHKzau780666xjcv64E2K8zSbKK/Z0+drXvtbhFN+DJZdcMq266qop9lJoT/fee28qlohqz+76eqLa17VC3iBAgAABAgT6FhAA6JvMAQQIECBAgAABApNdoFjze9yqOJ7nHrdK93HiQW9fHxSjKvqd73wnxZIrzSk25f3ud7+b/vOf/6S//OUv5dI8sTTQAgss0FysfH7IIYd05BV7gJTL/rS/8c53vjPdeuut5U/c6bLZZpu1F0mHHXZYimVwRkoxWz5mlMedM6Md/I/AxhprrNHzz5QpUzqqtfDCC2fb2lFwhIzxNhsLrxGaMOzbRxxxRMcyUPF9uvDCC9Pf//73VOw/Ud79FP3ZnmKj+Ycffrg9u+X1RLevpTJeECBAgAABAlMlMNNUHe1gAgQIECBAgAABAgQIEBgSiFn87SnuCIi12ptTLMVy9NFHp2222aY5Oz366KMpZncv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QGD8BWIgM2axX3/99elzn/tc15n1MXgba62fc8455WzNWLt5LFMM6MSM+ZjpmrsbIIIERxxxRLrgggvKTWX7/ezxbGexRFM6+uijU9SxPcXmtTHbOQZUY63qflMEWeIOiCWXXLLj0BgUXH755Yf2SegoMELGaM8dewHcdNNN5aa+Edjoloqlp8oAU6ztPtwAf6z3HkGMr371q+Wa8t3OF/lveMMb0o9+9KPy+xqzwodLo23fcOdsfm88v1PNnzOtnxf3XacrrrhiXD829oAolvRJ8W8nZoDH6/Y0ZcqUMjh5yimn9BVwaj/PWLye6ABAtKFuZv26f/SjH0233npruRF4twBvsZxaeSfIDTfckDbeeON+P0J5AgQIECBAoOYCM8QCQTVvg+oTIECAAAECBCZc4OWXX0433nhjik0XY9Cr2AcgrbDCCik2vI0Bz2mVYiAolpWJTUGXWmqptMYaa6QYTB+rNB7tjHPGwGmxtn164oknysHslVZaqWtQpZ+2xKXu7bffnq677rr0+OOPl32yzDLLpFhWaGrT1Jw7+ueqq64qB/AfeuihcqA/lvZZbLHFUgzg9pvC8N577y2/e/H9i+WNYqmfOF/8DBdw6PZZU9O+bufM5Y/Hdyr3OYOYF8u8xEbR8bsnftesvPLKKTaelroLDLJZbJwev++K9frL3wWx0XwEimLjaYkAAQIECBCYfgUEAKbfvtdyAgQIECBAgAABAgQIECBAgAABAgQIEBhggbGbDjbASJpGgAABAgQIECBAgAABAgQIECBAgAABAgTqJiAAULceU18CBAgQIECAAAECBAgQIECAAAECBAgQINCDgABAD0iKECBAgAABAgQIECBAgAABAgQIECBAgACBugkIANStx9SXAAECBAgQIECAAAECBAgQIECAAAECBAj0ICAA0AOSIgQIECBAgAABAgQIECBAgAABAgQIECBAoG4CAgB16zH1JUCAAAECBAgQIECAAAECBAgQIECAAAECPQgIAPSApAgBAgQIECBAgAABAgQIECBAgAABAgQIEKibgABA3XpMfQkQIECAAAECBAgQIECAAAECBAgQIECAQA8CAgA9IClCgAABAgQIECBAgAABAgQIECBAgAABAgTqJiAAULceU18CBAgQIECAAAECBAgQIECAAAECBAgQINCDgABAD0iKECBAgAABAgQIECBAgAABAgQIECBAgACBugkIANStx9SXAAECBAgQIECAAAECBAgQIECAAAECBAj0ICAA0AOSIgQIECBAgAABAgQIECBAgAABAgQIECBAoG4CAgB16zH1JUCAAAECBAgQIECAAAECBAgQIECAAAECPQgIAPSApAgBAgQIECBAgAABAgQIECBAgAABAgQIEKibgABA3XpMfQkQIECAAAECBAgQIECAAAECBAgQIECAQA8CAgA9IClCgAABAgQIECBAgAABAgQIECBAgAABAgTqJiAAULceU18CBAgQIECAAAECBAgQIECAAAECBAgQINCDgABAD0iKECBAgAABAgQIECBAgAABAgQIECBAgACBugkIANStx9SXAAECBAgQIECAAAECBAgQIECAAAECBAj0ICAA0AOSIgQIECBAgAABAgQIECBAgAABAgQIECBAoG4CAgB16zH1JUCAAAECBAgQIECAAAECBAgQIECAAAECPQgIAPSApAgBAgQIECBAgAABAgQIECBAgAABAgQIEKibgABA3XpMfQkQIECAAAECBAgQIECAAAECBAgQIECAQA8CAgA9IClCgAABAgQIECBAgAABAgQIECBAgAABAgTqJiAAULceU18CBAgQIECAAAECBAgQIECAAAECBAgQINCDgABAD0iKECBAgAABAgQIECBAgAABAgQIECBAgACBugkIANStx9SXAAECBAgQIECAAAECBAgQIECAAAECBAj0ICAA0AOSIgQIECBAgAABAgQIECBAgAABAgQIECBAoG4CAgB16zH1JUCAAAECBAgQIECAAAECBAgQIECAAAECPQgIAPSApAgBAgQIECBAgAABAgQIECBAgAABAgQIEKibgABA3XpMfQkQIECAAAECBAgQIECAAAECBAgQIECAQA8CAgA9IClCgAABAgQIECBAgAABAgQIECBAgAABAgTqJiAAULceU18CBAgQIECAAAECBAgQIECAAAECBAgQINCDgABAD0iKECBAgAABAgQIECBAgAABAgQIECBAgACBugkIANStx9SXAAECBAgQIECAAAECBAgQIECAAAECBAj0ICAA0AOSIgQIECBAgAABAgQIECBAgAABAgQIECBAoG4CAgB16zH1JUCAAAECBAgQIECAAAECBAgQIECAAAECPQgIAPSApAgBAgQIECBAgAABAgQIECBAgAABAgQIEKibgABA3XpMfQkQIECAAAECBAgQIECAAAECBAgQIECAQA8CAgA9IClCgAABAgQIECBAgAABAgQIECBAgAABAgTqJiAAULceU18CBAgQIECAAAECBAgQIECAAAECBAgQINCDgABAD0iKECBAgAABAgQIECBAgAABAgQIECBAgACBugkIANStx9SXAAECBAgQIECAAAECBAgQIECAAAECBAj0ICAA0AOSIgQIECBAgAABAgQIECBAgAABAgQIECBAoG4CAgB16zH1JUCAAAECBAgQIECAAAECBAgQIECAAAECPQgIAPSApAgBAgQIECBAgAABAgQIECBAgAABAgQIEKibgABA3XpMfQkQIECAAAECBAgQIECAAAECBAgQIECAQA8CAgA9IClCgAABAgQIECBAgAABAgQIECBAgAABAgTqJiAAULceU18CBAgQIECAAAECBAgQIECAAAECBAgQINCDgABAD0iKECBAgAABAgQIECBAgAABAgQIECBAgACBugkIANStx9SXAAECBAgQIECAAAECBAgQIECAAAECBAj0ICAA0AOSIgQIECBAgAABAgQIECBAgAABAgQIECBAoG4CAgB16zH1JUCAAAECBAgQIECAAAECBAgQIECAAAECPQgIAPSApAgBAgQIECBAgAABAgQIECBAgAABAgQIEKibgABA3XpMfQkQIECAAAECBAgQIECAAAECBAgQIECAQA8CAgA9IClCgAABAgQIECBAgAABAgQIECBAgAABAgTqJiAAULceU18CBAgQIECAAAECBAgQIECAAAECBAgQINCDgABAD0iKECBAgAABAgQIECBAgAABAgQIECBAgACBugkIANStx9SXAAECBAgQIECAAAECBAgQIECAAAECBAj0ICAA0AOSIgQIECBAgAABAgQIECBAgAABAgQIECBAoG4CAgB16zH1JUCAAAECBAgQIECAAAECBAgQIECAAAECPQgIAPSApAgBAgQeeeSRdNddd6Xnn38eBgECBAgQIECAAAECBAgQIECAAIFaCAgA1KKbVJIAgZEEbrnllnTqqaeOVGzU7++1115p0UUXTdddd92oz+FAAgQIECBAgMBYC4z3NVB7fV966aV01FFHpf/85z/tb3lNgAABAgQIECAwCQUEACZhp6gSAQL9CVxzzTVp+eWXT5dddll/BypNgAABAgQIEKixwERcA2277bZp7733Ti+88EKN5VSdAAECBAgQIDD9CAgATD99raUEBlbg0UcftTTPwPauhhEgQIAAAQLdBCbiGuiBBx7oVh35BAgQIECAAAECk1BAAGASdooqEairwD333JPuu+++1Gg0hm3Cv//97/T3v/89vfjii8OWa37z4YcfTnH+0aaXX365XMM/d3zcyn777ben+IyxTv/6179S7B/QS5qoOlZ1++c//5mee+656qVHAgQIECBAYEAE4v/xcU0yUoplfW6++eb09NNPj1S07/fjOieut+K6q5fkuqgXJWUIECBAgAABAiMLCACMbKQEAQLDCMQfiB/96EfTG9/4xrTIIouk17/+9eXP8ccf33HUT3/607TkkkumueeeO73pTW9Kc8wxR9pkk01S/FHanCKIMOecc6Z99tknnX/++WmppZZK8803X3n+BRZYIJ144olDxT/ykY+kzTffvHx93HHHlccdffTR5et4L84TwYbFF1+8XMM/Pv+2224r348ZbDvvvHOaffbZ0xJLLFF+RtT/mGOOGTGIMVSBLk+OPPLItNpqq6Wo77zzzlsuURT7Byy99NJlfnXYWNZx1113LdsbywG0pz333LN874orrijfqow/9alPpR/+8IdpwQUXLI1e+9rXpi222CL96U9/aj+F1wQIECBAgMAkEhjuGiiqGddon/jEJ9Jcc81V/j9+/vnnTwsvvHD63ve+19GKWEZxlVVWKcvGtUpco8X111lnnTVU9s477yyvJS6//PIyb7HFFksLLbTQ0PvdnsR11/bbb5/i8+N6K+rz2c9+Np1wwgnl+c4888yhQ8fquig+M64Bt95666FzV0/uuuuu8r243qmS66JKwiMBAgQIECAwiAIzDWKjtIkAgWkjEDP4t9lmm3TOOeekTTfdtPxj7o477kgnn3xy2mOPPVLM3Io/5CLFgPgnP/nJcpD9C1/4QpoyZUq5Zn/88bfccsulP/7xj+VjlI07CJ588sl07rnnpm9+85tl0ODAAw8sAwWnnHJK+tCHPlQOrG+00Ubp3e9+dzlrPc7z1re+NW222WblH7BxnpjNHuf5wAc+UM7CX2mlldJDDz1U/hH8+OOPp9VXX728K+A973lPGYiIOxNiMPzjH/94OQD+ox/9KE7Td4o/rKOt8UfuV7/61TTzzDOXJmuvvXZp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kLsGitoWd102ijseG8UEhKHrgmIJxEZcJ8V7zakYkG8UkwWGysU1RDGLvvHFL36xUQycNxdtFHd6NoqJAkNl77jjjpb3218Uy/80iskfjSJY0CiWJmqsvfbajeIO0EYReCjPcf755w8dMpbXRcWdoY24fos2R3vicf311y/bXuw71dhggw2GPtd10RCFJwQIECBAgMAACswQbSouiCQCBAhMlcBzzz2XYjO5WHO2GPAedjbX/fffX84si/XlYy3+sUoxoyuW9VlggQVSEZDo+bRR95iNFre3xwz+qUnPP//80Ez/9vMUfyCnWA930003TcVAffvbw77ut45xR0bUJWby51JsUhwz74ogS7rwwgvLTY9vvvnmsnzMmpMIECBAgACB+ggMdw0U78XSNvG4+OKLl0sVdmtZXEfdfffdqZhAUO7l1K1c5MfyhnEdN9dcc3UtFtcv1ZJB7YViKaK48yDuPoy7JvtJ/VwXxXKVcY0ae1LNMccc2Y9xXZRlkUmAAAG5S8OmAABAAElEQVQCBAgMiIAAwIB0pGYQIDA5BE477bS0++67p1hzd//992+p1Kc//eny9vpYpieWT5rI1P6H7kTWxWcTIECAAAECgymw9NJLlxMSYtmhWJe/SrH0T0wEiaBEbD7cLUhQlR/vR9dF4y3s/AQIECBAgMBECvQ+RXYia+mzCRAgUBOBtdZaq1xj9pBDDilnxRW3l5dr7hZLApXr38Zmx8VyQDVpjWoSIECAAAECBEYv8K53vSvFPgSxT1Fc/8Sg/+WXX56++93vpscffzx9/etfn/DB/9G3zpEECBAgQIAAgXoICADUo5/UkgCBmghMmTKl3Bg5NgHed999y5+q6rFRXiz9U+yDUGV5JECAAAECBAgMrEBs3FvsuVRuSFys9T/Uztlmmy0Vey6lz3zmM0N5nhAgQIAAAQIECIyPgCWAxsfVWQkQmM4FYm3aSy65JN15553lOrprrLFG+ThZWF544YV0/fXXl3s2xJq4EgECBAgQIEBgvASKjYPTddddV94VudJKK6Xll1++r/2axqte1XldF1USHgkQIECAAIFBFBAAGMRe1SYCBAgQIECAAAECBAgQIECAAAECBAgQmO4FZpzuBQAQIECAAAECBAgQIECAAAECBAgQIECAAIEBFBAAGMBO1SQCBAgQIECAAAECBAgQIECAAAECBAgQICAA4DtAgAABAgQIECBAgAABAgQIECBAgAABAgQGUEAAYAA7VZMIECBAgAABAgQIECBAgAABAgQIECBAgIAAgO8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAYQAEBgAHsVE0iQIAAAQIECBAgQIAAAQIECBAgQIAAAQICAL4DBAgQIECAAAECBAgQIECAAAECBAgQIEBgAAUEAAawUzWJAAECBAgQIECAAAECBAgQIECAAAECBAgIAPgOECBAgAABAgQIECBAgAABAgQIECBAgACBARQQABjATtUkAgQIECBAgAABAgQIECBAgAABAgQIECAgAOA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBlBAAGAAO1WTCBAgQIAAAQIECBAgQIAAAQIECBAgQICAAIDvAAECBAgQIECAAAECBAgQIECAAAECBAgQGEABAYAB7FRNIkCAAAECBAgQIECAAAECBAgQIECAAAECAgC+AwQIECBAgAABAgQIECBAgAABAgQIECBAYAAFBAAGsFM1iQABAgQIECBAgAABAgQIECBAgAABAgQICAD4DhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQEUmGkA26RJBCatwFlnnZV+85vfTNr6qRiBQRfYcMMN0xZbbDHmzfzzn/+cTjzxxPTyyy+P+bmdkAABAgQIECBAgAABAgSmT4E55pgj7bfffmmuueaaPgG0ekwEZmgUaUzO5CQECIwosOiii6a77rprxHIKECAwPgJTpkxJd95555iffPPNN09nn332mJ/XCQkQIECAAAECBAgQIEBg+hb4wQ9+kHbZZZfpG0Hrp0rAHQBTxedgAv0JvPDCC+UBEQiYaSb//PrTU5rA6AVefPHFcuC/+jc4+jPlj6zOu+CCC6bZZ589X0guAQIECBAgQIAAAQIECBDoUeChhx5KTzzxRKr+3uzxMMUIdAgYgewgkUFg/ARmmGGG8uTzzz9/mmWWWcbvg5yZAIEWgeeff35cZv63fEjxYp555il/2vO9JkCAAAECBAgQIECAAAEC/Qg89dRTZQCgn2OUJZATsAlwTkUeAQIECBAgQIAAAQIECBAgQIAAAQIECBCouYAAQM07UPUJECBAgAABAgQIECBAgAABAgQIECBAgEBOQAAgpyKPAAECBAgQIECAAAECBAgQIECAAAECBAjUXEAAoOYdqPoECBAgQIAAAQIECBAgQIAAAQIECBAgQCAnIACQU5FHgAABAgQIECBAgAABAgQIECBAgAABAgRqLiAAUPMOVH0CBAgQIECAAAECBAgQIECAAAECBAgQIJATEADIqcgjQIAAAQIECBAgQIAAAQIECBAgQIAAAQI1FxAAqHkHqj4BAgQIECBAgAABAgQIECBAgAABAgQIEMgJCADkVOQRIECAAAECBAgQIECAAAECBAgQIECAAIGaCwgA1LwDVZ8AAQIECBAgQIAAAQIECBAgQIAAAQIECOQEBAByKvIIECBAgAABAgQIECBAgAABAgQIECBAgEDNBQQAat6Bqk+AAAECBAgQIECAAAECBAgQIECAAAECBHICAgA5FXkECBAgQIAAAQIECBAgQIAAAQIECBAgQKDmAgIANe9A1SdAgAABAgQIECBAgAABAgQIECBAgAABAjkBAYCcijwCBAgQIECAAAECBAgQIECAAAECBAgQIFBzAQGAmneg6hMgQIAAAQIECBAgQIAAAQIECBAgQIAAgZyAAEBORR4BAgQIECBAgAABAgQIECBAgAABAgQIEKi5gABAzTtQ9QkQIECAAAECBAgQIECAAAECBAgQIECAQE5AACCnIo8AAQIECBAgQIAAAQIECBAgQIAAAQIECNRcQACg5h2o+gQIECBAgAABAgQIECBAgAABAgQIECBAICcgAJBTkUeAAAECBAgQIECAAAECBAgQIECAAAECBGouIABQ8w5UfQIECBAgQIAAAQIECBAgQIAAAQIECBAgkBMQAMipyCNAgAABAgQIECBAgAABAgQIECBAgAABAjUXEACoeQeqPgECBAgQIECAAAECBAgQIECAAAECBAgQyAkIAORU5BEgQIAAAQIECBAgQIAAAQIECBAgQIAAgZoLCADUvANVnwABAgQIECBAgAABAgQIECBAgAABAgQI5AQEAHIq8ggQIECAAAECBAgQIECAAAECBAgQIECAQM0FBABq3oGqT4AAAQIECBAgQIAAAQIECBAgQIAAAQIEcgICADkVeQQIECBAgAABAgQIECBAgAABAgQIECBAoOYCAgA170DVJ0CAAAECBAgQIECAAAECBAgQIECAAAECOQEBgJyKPAIECBAgQIAAAQIECBAgQIAAAQIECBAgUHMBAYCad6DqEyBAgAABAgQIECBAgAABAgQIECBAgACBnIAAQE5FHgECBAgQIECAAAECBAgQIECAAAECBAgQqLmAAEDNO1D1CRAgQIAAAQIECBAgQIAAAQIECBAgQIBATkAAIKcijwABAgQIECBAgAABAgQIECBAgAABAgQI1FxAAKDmHaj6BAgQIECAAAECBAgQIECAAAECBAgQIEAgJyAAkFORR4AAAQIECBAgQIAAAQIECBAgQIAAAQIEai4gAFDzDlR9AgQIECBAgAABAgQIECBAgAABAgQIECCQExAAyKnII0CAAAECBAgQIECAAAECBAgQIECAAAECNRcQAKh5B6o+AQIECBAgQIAAAQIECBAgQIAAAQIECBDICQgA5FTkESBAgAABAgQIECBAgAABAgQIECBAgACBmgsIANS8A1WfAAECBAgQIECAAAECBAgQIECAAAECBAjkBAQAciryCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAzQUEAGregapPgAABAgQIECBAgAABAgQIECBAgAABAgRyAgIAORV5BAgQIECAAAECBAgQIECAAAECBAgQIECg5gICADXvQNUnQIAAAQIECBAgQIAAAQIECBAgQIAAAQI5AQGAnIo8AgQIECBAgAABAgQIECBAgAABAgQIECBQcwEBgJp3oOoTIECAAAECBAgQIECAAAECBAgQIECAAIGcgABATkUeAQIECBAgQIAAAQIECBAgQIAAAQIECBCouYAAQM07UPUJECBAgAABAgQIECBAgAABAgQIECBAgEBOQAAgpyKPAAECBAgQIECAAAECBAgQIECAAAECBAjUXEAAoOYdqPoECBAgQIAAAQIECBAgQIAAAQIECBAgQCAnIACQU5FHgAABAgQIECBAgAABAgQIECBAgAABAgRqLiAAUPMOVH0CBAgQIECAAAECBAgQIECAAAECBAgQIJATEADIqcgjQIAAAQIECBAgQIAAAQIECBAgQIAAAQI1FxAAqHkHqj4BAgQIECBAgAABAgQIECBAgAABAgQIEMgJCADkVOQRIECAAAECBAgQIECAAAECBAgQIECAAIGaCwgA1LwDVZ8AAQIECBAgQIAAAQIECBAgQIAAAQIECOQEBAByKvIIECBAgAABAgQIECBAgAABAgQIECBAgEDNBQQAat6Bqk+AAAECBAgQIECAAAECBAgQIECAAAECBHICAgA5FXkECBAgQIAAAQIECBAgQIAAAQIECBAgQKDmAgIANe9A1SdAgAABAgQIECBAgAABAgQIECBAgAABAjkBAYCcijwCBAgQIECAAAECBAgQIECAAAECBAgQIFBzAQGAmneg6hMgQIAAAQIECBAgQIAAAQIECBAgQIAAgZyAAEBORR4BAgQIECBAgAABAgQIECBAgAABAgQIEKi5gABAzTtQ9QkQIECAAAECBAgQIECAAAECBAgQIECAQE5AACCnIo8AAQIECBAgQIAAAQIECBAgQIAAAQIECNRcQACg5h2o+gQIECBAgAABAgQIECBAgAABAgQIECBAICcgAJBTkUeAAAECBAgQIECAAAECBAgQIECAAAECBGouIABQ8w5UfQIECBAgQIAAAQIECBAgQIAAAQIECBAgkBMQAMipyCNAgAABAgQIECBAgAABAgQIECBAgAABAjUXEACoeQeqPgECBAgQIECAAAECBAgQIECAAAECBAgQyAkIAORU5BEgQIAAAQIECBAgQIAAAQIECBAgQIAAgZoLCADUvANVnwABAgQIECBAgAABAgQIECBAgAABAgQI5AQEAHIq8ggQIECAAAECBAgQIECAAAECBAgQIECAQM0FBABq3oGqT4AAAQIECBAgQIAAAQIECBAgQIAAAQIEcgICADkVeQQIECBAgAABAgQIECBAgAABAgQIECBAoOYCAgA170DVJ0CAAAECBAgQIECAAAECBAgQIECAAAECOQEBgJyKPAIECBAgQIAAAQIECBAgQIAAAQIECBAgUHMBAYCad6DqEyBAgAABAgQIECBAgAABAgQIECBAgACBnIAAQE5FHgECBAgQIECAAAECBAgQIECAAAECBAgQqLmAAEDNO1D1CRAgQIAAAQIECBAgQIAAAQIECBAgQIBATkAAIKcijwABAgQIECBAgAABAgQIECBAgAABAgQI1FxAAKDmHaj6BAgQIECAAAECBAgQIECAAAECBAgQIEAgJyAAkFORR4AAAQIECBAgQIAAAQIECBAgQIAAAQIEai4gAFDzDlR9AgQIECBAgAABAgQIECBAgAABAgQIECCQExAAyKnII0CAAAECBAgQIECAAAECBAgQIECAAAECNRcQAKh5B6o+AQIECBAgQIAAAQIECBAgQIAAAQIECBDICQgA5FTkESBAgAABAgQIECBAgAABAgQIECBAgACBmgsIANS8A1WfAAECBAgQIECAAAECBAgQIECAAAECBAjkBAQAciryCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAzQUEAGregapPgAABAgQIECBAgAABAgQIECBAgAABAgRyAgIAORV5BAgQIECAAAECBAgQIECAAAECBAgQIECg5gICADXvQNUnQIAAAQIECBAgQIAAAQIECBAgQIAAAQI5AQGAnIo8AgQIECBAgAABAgQIECBAgAABAgQIECBQcwEBgJp3oOoTIECAAAECBAgQIECAAAECBAgQIECAAIGcgABATkUeAQIECBAgQIAAAQIECBAgQIAAAQIECBCouYAAQM07UPUJECBAgAABAgQIECBAgAABAgQIECBAgEBOQAAgpyKPAAECBAgQIECAAAECBAgQIECAAAECBAjUXEAAoOYdqPoECBAgQIAAAQIECBAgQIAAAQIECBAgQCAnIACQU5FHgAABAgQIECBAgAABAgQIECBAgAABAgRqLiAAUPMOVH0CBAgQIECAAAECBAgQIECAAAECBAgQIJATEADIqcgjQIAAAQIECBAgQIAAAQIECBAgQIAAAQI1FxAAqHkHqj4BAgQIECBAgAABAgQIECBAgAABAgQIEMgJCADkVOQRIECAAAECBAgQIECAAAECBAgQIECAAIGaCwgA1LwDVZ8AAQIECBAgQIAAAQIECBAgQIAAAQIECOQEBAByKvIIECBAgAABAgQIECBAgAABAgQIECBAgEDNBQQAat6Bqk+AAAECBAgQIECAAAECBAgQIECAAAECBHICAgA5FXkECBAgQIAAAQIECBAgQIAAAQIECBAgQKDmAgIANe9A1SdAgAABAgQIECBAgAABAgQIECBAgAABAjkBAYCcijwCBAgQIECAAAECBAgQIECAAAECBAgQIFBzAQGAmneg6hMgQIAAAQIECBAgQIAAAQIECBAgQIAAgZyAAEBORR4BAgQIECBAgAABAgQIECBAgAABAgQIEKi5gABAzTtQ9QkQIECAAAECBAgQIECAAAECBAgQIECAQE5AACCnIo8AAQIECBAgQIAAAQIECBAgQIAAAQIECNRcQACg5h2o+gQIECBAgAABAgQIECBAgAABAgQIECBAICcgAJBTkUeAAAECBAgQIECAAAECBAgQIECAAAECBGouIABQ8w5UfQIECBAgQIAAAQIECBAgQIAAAQIECBAgkBMQAMipyCNAgAABAgQIECBAgAABAgQIECBAgAABAjUXEACoeQeqPgECBAgQIECAAAECBAgQIECAAAECBAgQyAkIAORU5BEgQIAAAQIECBAgQIAAAQIECBAgQIAAgZoLCADUvANVnwABAgQIECBAgAABAgQIECBAgAABAgQI5AQEAHIq8ggQIECAAAECBAgQIECAAAECBAgQIECAQM0FBABq3oGqT4AAAQIECBAgQIAAAQIECBAgQIAAAQIEcgICADkVeQQIECBAgAABAgQIECBAgAABAgQIECBAoOYCAgA170DVJ0CAAAECBAgQIECAAAECBAgQIECAAAECOQEBgJyKPAIECBAgQIAAAQIECBAgQIAAAQIECBAgUHMBAYCad6DqEyBAgAABAgQIECBAgAABAgQIECBAgACBnIAAQE5FHgECBAgQIECAAAECBAgQIECAAAECBAgQqLmAAEDNO1D1CRAgQIAAAQIECBAgQIAAAQIECBAgQIBATkAAIKcijwABAgQIECBAgAABAgQIECBAgAABAgQI1FxAAKDmHaj6BAgQIECAAAECBAgQIECAAAECBAgQIEAgJyAAkFORR4AAAQIECBAgQIAAAQIECBAgQIAAAQIEai4gAFDzDlR9AgQIECBAgAABAgQIECBAgAABAgQIECCQExAAyKnII0CAAAECBAgQIECAAAECBAgQIECAAAECNRcQAKh5B6o+AQIECBAgQIAAAQIECBAgQIAAAQIECBDICQgA5FTkESBAgAABAgQIECBAgAABAgQIECBAgACBmgsIANS8A1WfAAECBAgQIECAAAECBAgQIECAAAECBAjkBAQAciryCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAzQUEAGregapPgAABAgQIECBAgAABAgQIECBAgAABAgRyAgIAORV5BAgQIECAAAECBAgQIECAAAECBAgQIECg5gICADXvQNUnQIAAAQIECBAgQIAAAQIECBAgQIAAAQI5AQGAnIo8AgQIECBAgAABAgQIECBAgAABAgQIECBQcwEBgJp3oOoTIECAAAECBAgQIECAAAECBAgQIECAAIGcgABATkUeAQIECBAgQIAAAQIECBAgQIAAAQIECBCouYAAQM07UPUJECBAgAABAgQIECBAgAABAgQIECBAgEBOQAAgpyKPAAECBAgQIECAAAECBAgQIECAAAECBAjUXEAAoOYdqPoECBAgQIAAAQIECBAgQIAAAQIECBAgQCAnIACQU5FHgAABAgQIECBAgAABAgQIECBAgAABAgRqLiAAUPMOVH0CBAgQIECAAAECBAgQIECAAAECBAgQIJATEADIqcgjQIAAAQIECBAgQIAAAQIECBAgQIAAAQI1FxAAqHkHqj4BAgQIECBAgAABAgQIECBAgAABAgQIEMgJCADkVOQRIECAAAECBAgQIECAAAECBAgQIECAAIGaCwgA1LwDVZ8AAQIECBAgQIAAAQIECBAgQIAAAQIECOQEBAByKvIIECBAgAABAgQIECBAgAABAgQIECBAgEDNBQQAat6Bqk+AAAECBAgQIECAAAECBAgQIECAAAECBHICAgA5FXkECBAgQIAAAQIECBAgQIAAAQIECBAgQKDmAgIANe9A1SdAgAABAgQIECBAgAABAgQIECBAgAABAjkBAYCcijwCBAgQIECAAAECBAgQIECAAAECBAgQIFBzAQGAmneg6hMgQIAAAQIECBAgQIAAAQIECBAgQIAAgZyAAEBORR4BAgQIECBAgAABAgQIECBAgAABAgQIEKi5gABAzTtQ9QkQIECAAAECBAgQIECAAAECBAgQIECAQE5AACCnIo8AAQIECBAgQIAAAQIECBAgQIAAAQIECNRcQACg5h2o+gQIECBAgAABAgQIECBAgAABAgQIECBAICcgAJBTkUeAAAECBAgQIECAAAECBAgQIECAAAECBGouIABQ8w5UfQIECBAgQIAAAQIECBAgQIAAAQIECBAgkBMQAMipyCNAgAABAgQIECBAgAABAgQIECBAgAABAjUXEACoeQeqPgECBAgQIECAAAECBAgQIECAAAECBAgQyAkIAORU5BEgQIAAAQIECBAgQIAAAQIECBAgQIAAgZoLCADUvANVnwABAgQIECBAgAABAgQIECBAgAABAgQI5AQEAHIq8ggQIECAAAECBAgQIECAAAECBAgQIECAQM0FBABq3oGqT4AAAQIECBAgQIAAAQIECBAgQIAAAQIEcgICADkVeQQIECBAgAABAgQIECBAgAABAgQIECBAoOYCAgA170DVJ0CAAAECBAgQIECAAAECBAgQIECAAAECOQEBgJyKPAIECBAgQIAAAQIECBAgQIAAAQIECBAgUHMBAYCad6DqEyBAgAABAgQIECBAgAABAgQIECBAgACBnIAAQE5FHgECBAgQIECAAAECBAgQIECAAAECBAgQqLmAAEDNO1D1CRAgQIAAAQIECBAgQIAAAQIECBAgQIBATkAAIKcijwABAgQIECBAgAABAgQIECBAgAABAgQI1FxAAKDmHaj6BAgQIECAAAECBAgQIECAAAECBAgQIEAgJyAAkFORR4AAAQIECBAgQIAAAQIECBAgQIAAAQIEai4gAFDzDlR9AgQIECBAgAABAgQIECBAgAABAgQIECCQExAAyKnII0CAAAECBAgQIECAAAECBAgQIECAAAECNRcQAKh5B6o+AQIECBAgQIAAAQIECBAgQIAAAQIECBDICQgA5FTkESBAgAABAgQIECBAgAABAgQIECBAgACBmgsIANS8A1WfAAECBAgQIECAAAECBAgQIECAAAECBAjkBAQAciryCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAzQUEAGregYNc/UcffTTtscce6bjjjuto5vPPP5+effbZjvzIWG+99dKcc86ZfU8mAQIECBAgQIAAAQIECBAgQIAAAQIEphcBAYDppadr2M4nn3wyHX/88el3v/tdR+3f9773pVlnnTU99thjHe8988wzKY6VCBAgQIAAAQIECBAgQIAAAQIECBAgMD0LCABMz72v7QQIECBAgAABAgQIECBAgAABAgQIECAwsAICAAPbtRpGgAABAgQIECBAgAABAgQIECBAgAABAtOzgADA9Nz72k6AAAECBAgQIECAAAECBAgQIECAAAECAysgADCwXathBAgQIECAAAECBAgQIECAAAECBAgQIDA9CwgATM+9r+0ECBAgQIAAAQIECBAgQIAAAQIECBAgMLACAgAD27UaRoAAAQIECBAgQIAAAQIECBAgQIAAAQLTs4AAwPTc+9pOgAABAgQIECBAgAABAgQIECBAgAABAgMrMNPAtkzDBkbg8ssvT9tss01Le66++ury9c4775xmnnnmlvduvfXWltdeECBAgAABAgQIECBAgAABAgQIECBAYHoUEACYHnu9Zm2+55570umnn56t9S9/+ctsvkwCBAgQIECAAAECBAgQIECAAAECBAhM7wICANP7N2ASt3+++eZLP/vZzyZxDVWNAAECBAgQIECAAAECBAgQIECAAAECk1dAAGDy9s10X7NZZ501bb311tO9AwACBAgQIECAAAECBAgQIECAAAECBAiMRsAmwKNRcwwBAgQIECBAgAABAgQIECBAgAABAgQIEJjkAgIAk7yDVO//CTz55JPlPgD/+te/Wkhig+BddtklLbzwwmm99dZLhx9+eHrmmWdaynhBgAABAgQIECBAgAABAgQIECBAgACB6VHAEkDTY6/XrM0xqL///vun5557Ll1xxRUp9gaI9Pe//z1tvPHG6fHHH08zzjhjuvfee9NFF12UrrzyynTaaaelGWaYoWYtVV0CBAgQIECAAAECBAgQIECAAAECBAiMnYA7AMbO0pnGQeDcc89Nn/3sZ8vB/7XXXjstuOCC5ae89NJL6b3vfW85+L/zzjun+++/vwwIrL/++umnP/1pOvTQQ8ehNk5JgAABAgQIECBAgAABAgQIECBAgACB+ggIANSnr6bLmu65555pppn+L3t3Hq3XfO8P/HPiRAaJIYiKRMoNMUSwgiaoqikUMROr1FT00qVaNZSaiouLK6iiZjcobq8pCGJMojXPkuaYkytEYsggPZnO7+591zm/nExOjuy9n+H1rPXk7Pnz+b6+hz+e93n2ro0RI0bEqFGjomfPnqnDE088Ee+88066fvXVV0fXrl1jvfXWi6FDh8ZKK60Ut99+e1V6GTQBAgQIECBAgAABAgQIECBAgAABAgQaBQQAjRJ+lpzAlClT4uOPP47BgwfHjjvu2Ky/hx9+OF3/6U9/Gh07dmzat8Yaa0S/fv1i7NixMWPGjKbtFggQIECAAAECBAgQIECAAAECBAgQIFBtAgKAapvxMhrvG2+8kXa7ySabLNR1cq//5JXc8mfBV+/evSO5RdCYMWMW3GWdAAECBAgQIECAAAECBAgQIECAAAECVSMgAKiaqS6/gU6bNi1tum3bts2anzRpUiThQPv27WPAgAHN9iUrycOAk1e3bt3Sn/4hQIAAAQIECBAgQIAAAQIECBAgQIBANQoIAKpx1stkzH379k07/fDDD5t1/Pjjj0dDQ0Nst912aQjQbOf/rrz66qvRpUsXAcCCMNYJECBAgAABAgQIECBAgAABAgQIEKgqAQFAVU13eQ32+9//fqy88srpA32/+uqrpuavueaadHmfffZp2ta4kDz8d/z48dGnT5/GTX4SIECAAAECBAgQIECAAAECBAgQIECgKgUEAFU57eUz6Isuuig+//zz2GqrreK0006L5FsBo0ePjvXWWy+SBwA3vqZPn54GBcccc0y0adMmTjnllMZdfhIgQIAAAQIECBAgQIAAAQIECBAgQKAqBWqrctQGXTYCxx57bLz11lvxpz/9KS6++OK0765du8YjjzwSnTt3bhpHcr//xmcGXHLJJbH77rs37bNAgAABAgQIECBAgAABAgQIECBAgACBahQQAFTjrJfZmK+66qo488wz0w/911xzzUXe+79Hjx7Rr1+/2HvvvWPfffctsxFqlwABAgQIECBAgAABAgQIECBAgAABAsteQACw7E1dMQOB5K/+DzvssMVeOfmWQE1NzWL320GAAAECBAgQIECAAAECBAgQIECAAIFqE/AMgGqb8Qodrw//K3RiDYsAAQIECBAgQIAAAQIECBAgQIAAgVYLCABaTefEUhUYMGBA+iDgUu1PXwQIECBAgAABAgQIECBAgAABAgQIEMhDQACQh7IauQo0NDRE8vYiQIAAAQIECBAgQIAAAQIECBAgQIBANQsIAKp59o2dAAECBAgQIECAAAECBAgQIECAAAECBCpWQABQsVNrYAQIECBAgAABAgQIECBAgAABAgQIECBQzQICgGqefWMnQIAAAQIECBAgQIAAAQIECBAgQIAAgYoVEABU7NQaGAECBAgQIECAAAECBAgQIECAAAECBAhUs4AAoJpn39gJECBAgAABAgQIECBAgAABAgQIECBAoGIFait2ZAZW9gJfffVVnH/++Us9jo8//nipz3ECAQIECBAgQIAAAQIECBAgQIAAAQIEKk1AAFBpM1pB45k6dWpcdtllFTQiQyFAgAABAgQIECBAgAABAgQIECBAgEB+AgKA/KxVWkqBVVZZJS699NKlPMvhBAgQIECAAAECBAgQIECAAAECBAgQIJAICAD8HpSsQOfOneOkk05qVX9z5sxp1XlOIkCAAAECBAgQIECAAAECBAgQIECAQKUIeAhwpcykcaQCEyZMiLPPPjt69uxJhAABAgQIECBAgAABAgQIECBAgAABAlUt4BsAVT39lTH4hoaGePzxx+Oaa66JBx98MObOnVsZAzMKAgQIECBAgAABAgQIECBAgAABAgQIfAcBAcB3wHNqsQKTJ0+Om2++Oa677rp477330mZqampihx12iKOOOqrY5lQnQIAAAQIECBAgQIAAAQIECBAgQIBAwQICgIInQPmlF3juuefSv/a/5557or6+Pr3AWmutFUceeWQcccQRsc466yz9RZ1BgAABAgQIECBAgAABAgQIECBAgACBChMQAFTYhFbqcKZNmxZDhw6Na6+9Nt544410mO3bt4/tttsunn322fjd734Xxx9/fKUO37gIECBAgAABAgQIECBAgAABAgQIECCw1AICgKUmc0KeAq+//nr6oX/y4f/06dPT0j/4wQ/i8MMPj8GDB0ddXV1stdVWebakFgECBAgQIECAAAECBAgQIECAAAECBMpCQABQFtNUnU1OmDAhNttss3TwG2ywQfqBf/Khf+/evasTxKgJECBAgAABAgQIECBAgAABAgQIECCwFAJtluJYhxLIVWDevHlpva5du8Z+++0XO+20U/Tq1SvXHhQjQIAAAQIECBAgQIAAAQIECBAgQIBAuQoIAMp15qqg7zXWWCMuvvjiWGWVVeKCCy6IbbfdNtZcc8048cQT47XXXqsCAUMkQIAAAQIECBAgQIAAAQIECBAgQIBA6wUEAK23c2bGAu3atYtTTjklxo4dG6NHj44jjzwyZs6cGVdccUVsvvnm6e2Bbr755oy7cHkCBAgQIECAAAECBAgQIECAAAECBAiUp4AAoDznreq63nrrrePGG2+MiRMnxk033RTbbLNNJA8Ivuaaa1KLW265JZIHBc+YMaPqbAyYAAECBAgQIECAAAECBAgQIECAAAECixIQACxKxbaSFejUqVMcccQRMWrUqPSbAaeeemp873vfi5deeikOPfTQSG4blPx87LHHSnYMGiNAgAABAgQIECBAgAABAgQIECBAgEAeAgKAPJTVyESgd+/ecdFFF8X48ePjgQceiL333jvq6+vTbwIMHDgwk5ouSoAAAQIECBAgQIAAAQIECBAgQIAAgXIREACUy0zpc7ECtbW1seeee8a9994bEyZMiEsuuSQ23HDDxR5vBwECBAgQIECAAAECBAgQIECAAAECBKpBQABQDbNcRWNMbgH029/+Nt55550qGrWhEiBAgAABAgQIECBAgAABAgQIECBAYGEBAcDCJraUiEDy1/xdunSJI488skQ60gYBAgQIECBAgAABAgQIECBAgAABAgTKR0AAUD5zVXWdzps3L7788suYPn36QmM/5ZRTok+fPuktfxbaaQMBAgQIECBAgAABAgQIECBAgAABAgQIhADAL0FZCiTfDnj77bdj9uzZZdm/pgkQIECAAAECBAgQIECAAAECBAgQIJC1gAAga2HXJ0CAAAECBAgQIECAAAECBAgQIECAAAECBQgIAApAV5IAAQIECBAgQIAAAQIECBAgQIAAAQIECGQtIADIWtj1CRAgQIAAAQIECBAgQIAAAQIECBAgQIBAAQICgALQlSRAgAABAgQIECBAgAABAgQIECBAgAABAlkLCACyFnZ9AgQIECBAgAABAgQIECBAgAABAgQIECBQgEBtATWVJLBUAs8880zsvPPOzc5588030/VDDz00OnTo0Gxf48rjjz/euOgnAQIECBAgQIAAAQIECBAgQIAAAQIEqk5AAFB1U15+A540aVKMGDFikY2PHj16kdttJECAAAECBAgQIECAAAECBAgQIECAQLULCACq/TeghMfftWvX8Ff8JTxBWiNAgAABAgQIECBAgAABAgQIECBAoKQFBAAlPT3V3Vz79u1jp512qm4EoydAgAABAgQIECBAgAABAgQIECBAgEArBTwEuJVwTiNAgAABAgQIECBAgAABAgQIECBAgAABAqUsIAAo5dnRGwECBAgQIECAAAECBAgQIECAAAECBAgQaKWAAKCVcE4jQIAAAQIECBAgQIAAAQIECBAgQIAAAQKlLCAAKOXZ0RsBAgQIECBAgAABAgQIECBAgAABAgQIEGilgACglXBOI0CAAAECBAgQIECAAAECBAgQIECAAAECpSwgACjl2dEbAQIECBAgQIAAAQIECBAgQIAAAQIECBBopYAAoJVwTiNAgAABAgQIECBAgAABAgQIECBAgAABAqUsIAAo5dnRGwECBAgQIECAAAECBAgQIECAAAECBAgQaKWAAKCVcE4jQIAAAQIECBAgQIAAAQIECBAgQIAAAQKlLCAAKOXZ0RsBAgQIECBAgAABAgQIECBAgAABAgQIEGilgACglXBOI0CAAAECBAgQIECAAAECBAgQIECAAAECpSwgACjl2dEbAQIECBAgQIAAAQIECBAgQIAAAQIECBBopYAAoJVwTiNAgAABAgQIECBAgAABAgQIECBAgAABAqUsIAAo5dnRGwECBAgQIECAAAECBAgQIECAAAECBAgQaKWAAKCVcE4jQIAAAQIECBAgQIAAAQIECBAgQIAAAQKlLCAAKOXZ0RsBAgQIECBAgAABAgQIECBAgAABAgQIEGilgACglXBOI0CAAAECBAgQIECAAAECBAgQIECAAAECpSwgACjl2dEbAQIECBAgQIAAAQIECBAgQIAAAQIECBBopYAAoJVwTiNAgAABAgQIECBAgAABAgQIECBAgAABAqUsIAAo5dnRGwECBAgQIECAAAECBAgQIECAAAECBAgQaKWAAKCVcE4jQIAAAQIECBAgQIAAAQIECBAgQIAAAQKlLCAAKOXZ0RsBAgQIECBAgAABAgQIECBAgAABAgQIEGilgACglXBOI0CAAAECBAgQIECAAAECBAgQIECAAAECpSwgACjl2dEbAQIECBAgQIAAAQIECBAgQIAAAQIECBBopYAAoJVwTiNAgAABAgQIECBAgAABAgQIECBAgAABAqUsIAAo5dnRGwECBAgQIECAAAECBAgQIECAAAECBAgQaKWAAKCVcE4jQIAAAQIECBAgQIAAAQIECBAgQIAAAQKlLCAAKOXZ0RsBAgQIECBAgAABAgQIECBAgAABAgQIEGilgACglXBOI0CAAAECBAgQIECAAAECBAgQIECAAAECpSwgACjl2dEbAQIECBAgQIAAAQIECBAgQIAAAQIECBBopYAAoJVwTiNAgAABAgQIECBAgAABAgQIECBAgAABAqUsIAAo5dnRGwECBAgQIECAAAECBAgQIECAAAECBAgQaKVAbSvPc1oLBYYMGRLTp09v4dFLd9jvf//7pTvB0QQIECBAgAABAgQIECBAgAABAgQIECBQNQICgIyn+uKLL45PP/00kyoCgExYXZQAAQIECBAgQIAAAQIECBAgQIAAAQIVIeAWQBUxjQZBgAABAgQIECBAgAABAgQIECBAgAABAgSaC/gGQHOPZb528803R319/SKvm9wa6LjjjoupU6fGcsstFwcddFDsscce0b179+jRo0fMmTMnPvroo3j33Xfjj3/8Y7z11ltRU1MTV199dfzkJz9Z5DVtJECAAAECBAgQIECAAAECBAgQIECAAAECiYAAIOPfg1133XWRFebOnRt77713+uF/3759469//Wv06tVroWOTbTvuuGMcc8wxcc0118Txxx8fJ510Umy00UbRs2fPhY63gQABAgQIECBAgAABAgQIECBAgAABAgQIJAJuAVTQ78Ett9wSw4YNiy5dusT999+/yA//528t+cv/5NsCJ554YsycOTOOPvro+XdbJkCAAAECBAgQIECAAAECBAgQIECAAAECzQQEAM048lt5+umn02L77LNPfP/7329x4WOPPTY9tq6uLiZNmtTi8xxIgAABAgQIECBAgAABAgQIECBAgAABAtUlIAAoaL5HjRqVVt58882XqoP1118/amv/785Nzz///FKd62ACBAgQIECAAAECBAgQIECAAAECBAgQqB4BAUBBc508AyB5vf/++0vVwZgxY9KHAycndejQYanOdTABAgQIECBAgAABAgQIECBAgAABAgQIVI+AAKCguV5vvfXSyg888EDMmDGjxV0kDwJufG2wwQaNi34SIECAAAECBAgQIECAAAECBAgQIECAAIFmAgKAZhz5rQwePDgt9u6778ahhx6aPth3SdUbGhriyiuvjKuvvjo9bLfddovu3bsv6RT7CBAgQIAAAQIECBAgQIAAAQIECBAgQKCKBQQABU3+z372s1hnnXXS6vfee2/6IOALL7wwnnvuufj4449j9uzZMXny5HjllVfitttui0033TR+9atfpce3b98+zjvvvII6V5YAAQIECBAgQIAAAQIECBAgQIAAAQIEykHg/54mWw6dVliP7dq1i+HDh8c222yTftA/adKkOP300791lMstt1wMHTo0+vXr963HOoAAAQIECBAgQIAAAQIECBAgQIAAAQIEqlfANwAKnPv1118/XnrppTjggANa1MXmm28ezz//fOy3334tOt5BBAgQIECAAAECBAgQIECAAAECBAgQIFC9Ar4BUPDc9+zZM+6+++4YO3ZsPPTQQ/H000/HxIkT4/PPP4/OnTvH9773vfT2P8mH/gMGDIiampqCO1aeAAECBAgQIECAAAECBAgQIECAAAECBMpBQABQIrO0wQYbRPI+6aSTSqQjbRAgQIAAAQIECBAgQIAAAQIECBAgQIBAOQu4BVA5z57eCRAgQIAAAQIECBAgQIAAAQIECBAgQIDAYgR8A2AxMEVsnjVrVnzwwQdRV1cX7733Xmy33XaR3Pc/eb3zzjux0UYbFdGWmgQIECBAgAABAgQIECBAgAABAgQIECBQhgK+AVACk/bJJ5/EoYceGh07dkxvA7TnnnvGiSeeGKNHj067++yzz2LjjTeOnXfeOV588cUS6FgLBAgQIECAAAECBAgQIECAAAECBAgQIFDqAgKAgmdoyJAhsf7668fQoUNj7ty5i+zmww8/TLePGDEitt9++xg+fPgij7ORAAECBAgQIECAAAECBAgQIECAAAECBAg0CggAGiUK+Hn//ffHr3/965gxY0ZaPfkr/yOOOCI6d+7crJvll18+1lhjjXTbN998E4MGDUpvE9TsICsECBAgQIAAAQIECBAgQIAAAQIECBAgQGA+AQHAfBh5Ln766afx85//PC3ZtWvXePTRR+Ott96Km266KVZaaaVmrSTPAUieDfDLX/4y3T579uw4//zzmx1jhQABAgQIECBAgAABAgQIECBAgAABAgQIzC8gAJhfI8flG264ISZPnhy1tbVx9913xy677LLE6h06dIirrroqDj744PS422+/PaZNm7bEc+wkQIAAAQIECBAgQIAAAQIECBAgQIAAgeoVEAAUNPevvfZaWnnvvfeOH/3oRy3u4ne/+116bPK8gPfff7/F5zmQAAECBAgQIECAAAECBAgQIECAAAECBKpLQABQ0Hw3BgBbbbXVUnWw0UYbpd8aSE4SACwVnYMJECBAgAABAgQIECBAgAABAgQIECBQVQICgIKmu76+Pq3cvn37peogeWBw8tf/yWuFFVZYqnMdTIAAAQIECBAgQIAAAQIECBAgQIAAAQLVIyAAKGiuN91007Ry4zcBWtrGq6++Gg0NDenhffr0aelpjiNAgAABAgQIECBAgAABAgQIECBAgACBKhMQABQ04Y0BwJ133hl1dXUt6iL5y/8zzjgjPXaVVVaJbt26teg8BxEgQIAAAQIECBAgQIAAAQIECBAgQIBA9QkIAAqa8wMOOCDatm0bM2fOjGR53LhxS+xk2rRp8Ytf/CJGjx6dHnfggQcu8Xg7CRAgQIAAAQIECBAgQIAAAQIECBAgQKC6BWqre/jFjX6zzTaLc845J/2L/tdffz2S9UMPPTS22WabaHw+wJQpU+KRRx6JV155Jf70pz/FJ598kja89tprxyWXXFJc8yoTIECAAAECBAgQIECAAAECBAgQIECAQMkLCAAKnKLTTjst/Yv+hx9+OP0mwJ///OdI3o2vJCBY8JU8+Pfmm2+Ozp07L7jLOgECBAgQIECAAAECBAgQIECAAAECBAgQaBJwC6AmivwX2rRpEw899FAkzwHo0aPHtzaQ3CpozJgxscMOO3zrsQ4gQIAAAQIECBAgQIAAAQIECBAgQIAAgeoW8A2AEpj/wYMHx6BBg+LBBx9MHwicPBQ4eSd/7b/++uun7/79+8cPfvCDEuhWCwQIECBAgAABAgQIECBAgAABAgQIECBQDgICgBKZpY4dO8ZBBx1UIt1ogwABAgQIECBAgAABAgQIECBAgAABAgTKXcAtgMp9BvVPgAABAgQIECBAgAABAgQIECBAgAABAgQWISAAWASKTQQIECBAgAABAgQIECBAgAABAgQIECBAoNwF3AKo4Bmsr6+PRx99NN5777348MMPI1lv6evaa69t6aGOI0CAAAECBAgQIECAAAECBAgQIECAAIEqExAAFDjhjzzySBx//PHxwQcftKoLAUCr2JxEgAABAgQIECBAgAABAgQIECBAgACBqhAQABQ0zcmH/vvvv3988803BXWgLAECBAgQIECAAAECBAgQIECAAAECBAhUsoAAoKDZ/cMf/tD04X/37t3jzDPPjPXXXz9WWGGFqKmpKagrZQkQIECAAAECBAgQIECAAAECBAgQIECgUgQEAAXN5Ouvv55WXn311eOFF16INddcs6BOlCVAgAABAgQIECBAgAABAgQIECBAgACBShRoU4mDKocxjR8/Pm1z55139uF/OUyYHgkQIECAAAECBAgQIECAAAECBAgQIFBmAgKAgiasX79+aeXk9j9eBAgQIECAAAECBAgQIECAAAECBAgQIEBgWQsIAJa1aAuv9+Mf/zg98tVXX23hGQ4jQIAAAQIECBAgQIAAAQIECBAgQIAAAQItFxAAtNxqmR653377xUorrRQjRoyIJ598cple28UIECBAgAABAgQIECBAgAABAgQIECBAgIAAoKDfgV69esUjjzwSK6ywQiRhwJAhQ2LmzJkFdaMsAQIECBAgQIAAAQIECBAgQIAAAQIECFSaQG2lDaicxjNgwIC4/vrr4+CDD45f//rX8Zvf/Ca6deuWvtu0+fZs5u9//3s5DVevBAgQIECAAAECBAgQIECAAAECBAgQIJCjgAAgR+wFSz377LPpB/+N2xsaGuJ//ud/0nfjNj8JECBAgAABAgQIECBAgAABAgQIECBAgEBrBAQArVFbBue88MILseOOO8acOXOWwdVcggABAgQIECBAgAABAgQIECBAgAABAgQINBcQADT3yG3t4Ycfbvrwf5dddomTTz45Ntxww1h11VVz60EhAgQIECBAgAABAgQIECBAgAABAgQIEKhcAQFAQXP71FNPpZX79u0bw4YNi7Zt2xbUibIECBAgQIAAAQIECBAgQIAAAQIECBAgUIkC3/6k2UocdQmMqa6uLu1ip5128uF/CcyHFggQIECAAAECBAgQIECAAAECBAgQIFBpAgKAgmZ0wIABaeUvv/yyoA6UJUCAAAECBAgQIECAAAECBAgQIECAAIFKFhAAFDS722+/fVp5+PDh0dDQUFAXyhIgQIAAAQIECBAgQIAAAQIECBAgQIBApQoIAAqa2f322y/WXHPNmDhxYpx55pkxb968gjpRlgABAgQIECBAgAABAgQIECBAgAABAgQqUUAAUNCsduvWLUaMGBGrrrpqXHDBBTFo0KAYOXJkfPPNNwV1pCwBAgQIECBAgAABAgQIECBAgAABAgQIVJJAbSUNppzGctttt8WTTz4Z6667bkyZMiUeeuih9J2MoV27drHCCitETU3NEoc0efLkJe63kwABAgQIECBAgAABAgQIECBAgAABAgSqV0AAUNDc/+1vf4tbb711kdXr6+sjeXsRIECAAAECBAgQIECAAAECBAgQIECAAIHWCggAWiv3Hc9beeWVo3v37t/xKk4nQIAAAQIECBAgQIAAAQIECBAgQIAAAQKLFhAALNol860XXnhhJG8vAgQIECBAgAABAgQIECBAgAABAgQIECCQhYCHAGeh6poECBAgQIAAAQIECBAgQIAAAQIECBAgQKBgAQFAwROgPAECBAgQIECAAAECBAgQIECAAAECBAgQyEJAAJCFqmsSIECAAAECBAgQIECAAAECBAgQIECAAIGCBTwDoKAJeOihh+LFF1/8TtXPOeec73S+kwkQIECAAAECBAgQIECAAAECBAgQIECgcgUEAAXN7bBhw+Laa6/9TtUFAN+Jz8kECBAgQIAAAQIECBAgQIAAAQIECBCoaAG3AKro6TU4AgQIECBAgAABAgQIECBAgAABAgQIEKhWAd8AKGjmf/GLX8Suu+66xOpz5syJr7/+Oj744INIvjHw2muvRbdu3WLkyJHRs2fPJZ5rJwECBAgQIECAAAECBAgQIECAAAECBAhUt4AAoKD533TTTSN5t/R19tlnx89//vO49dZbY7fddotRo0bF6quv3tLTHUeAAAECBAgQIECAAAECBAgQIECAAAECVSbgFkBlMuG1tbVxyy23xB577BHjxo2Lo48+ukw61yYBAgQIECBAgAABAgQIECBAgAABAgQIFCEgAChC/TvU3HfffdOzn3rqqZg3b953uJJTCRAgQIAAAQIECBAgQIAAAQIECBAgQKCSBQQAZTa722+/fdrx1KlT44033iiz7rVLgAABAgQIECBAgAABAgQIECBAgAABAnkJCADykl5GdZLb/zS+Pvroo8ZFPwkQIECAAAECBAgQIECAAAECBAgQIECAQDMBAUAzjtJfue+++5qa3GyzzZqWLRAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfkFBADza5Tw8pQpU+Lwww+Pa6+9Nu1ytdVWi549e5Zwx1ojQIAAAQIECBAgQIAAAQIECBAgQIAAgSIFaossXs21zzrrrLjjjju+lWD27Nkxc+bMmDx5cjQ0NDQdf+qppzYtWyBAgAABAgQIECBAgAABAgQIECBAgAABAgsKCAAWFMlp/fPPP4/33nuvVdX23HPPOOmkk1p1rpMIECBAgAABAgQIECBAgAABAgQIECBAoDoEBAAFzXO7du2iU6dOLaretm3bWHHFFSO55/+xxx4bAwcOjJqamhad6yACBAgQIECAAAECBAgQIECAAAECBAgQqE4BAUBB8z5kyJBI3l4ECBAgQIAAAQIECBAgQIAAAQIECBAgQCALAQ8BzkLVNQkQIECAAAECBAgQIECAAAECBAgQ0DZ5cgAAQABJREFUIECAQMECAoCCJ0B5AgQIECBAgAABAgQIECBAgAABAgQIECCQhYBbAGWh2opr1tfXR/JcgPlf33zzTTz++OMxfPjwGD9+fPoMgOOOOy66des2/2GWCRAgQIAAAQIECBAgQIAAAQIECBAgQIDAQgICgIVI8t1w//33x0033RRfffVVPPPMM03F586dG3vuuWc8+eSTTdseeuihuOKKK2L06NHRt2/fpu0WCBAgQIAAAQIECBAgQIAAAQIECBAgQIDAggICgAVFcly/44474qc//WlasWvXrs0qn3766c0+/G/cOX369Nh7773jxRdfjFVXXbVxs58ECBAgQIAAAQIECBAgQIAAAQIECBAgQKCZgGcANOPIbyW5pc/xxx/fVLB9+/YxZ86cdH3q1Klx5ZVXpss1NTVx0UUXxWuvvRYXXHBB1NbWxgcffBC//OUvm861QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEFhTwDYAFRXJav/XWW9Pb/iTlLr744jjhhBPSD/eT9eS2QP/85z+TxRg0aFCceuqp6fKmm26abj/vvPPi6aefTrf5hwABAgQIECBAgAABAgQIECBAgAABAgQILErANwAWpZLDtnfeeSetstFGG8Upp5wSyTcAGl8PP/xw42IMHjy4aTlZOProo9P1Tz/9NCZOnNhsnxUCBAgQIECAAAECBAgQIECAAAECBAgQINAoIABolMj5Z2MAsOuuuzarnDz897HHHku3tWnTJnbZZZdm+9daa61o27Ztuu3VV19tts8KAQIECBAgQIAAAQIECBAgQIAAAQIECBBoFBAANErk/PPjjz9OK/bp06dZ5RdeeCG++OKLdNuWW24ZXbp0abY/CQiSd/JqfGZAswOsECBAgAABAgQIECBAgAABAgQIECBAgACB/xUQABT0a9C9e/e08qRJk5p1MHz48Kb1gQMHNi03LtTV1cW8efPS1bXXXrtxs58ECBAgQIAAAQIECBAgQIAAAQIECBAgQKCZgACgGUd+K7169UqLPfjgg01FZ82aFX/5y1+a1nffffem5caFyy+/PF2sqamJnj17Nm72kwABAgQIECBAgAABAgQIECBAgAABAgQINBMQADTjyG/loIMOSouNHj06TjjhhHjmmWfisMMOi3HjxqXbe/fuHVtttVVTQ1OnTk0fFnzDDTek2/baa69YZZVVmvZbIECAAAECBAgQIECAAAECBAgQIECAAAEC8wvUzr9iOT+B/fffPzbeeON4++2346qrrkrfjdWXW265uOyyyxpX04cC77HHHjF79ux0W/Jw4N///vdN+y0QIECAAAECBAgQIECAAAECBAgQIECAAIEFBXwDYEGRnNaTD/mffvrpGDBgQLOKya19kkBg/tv/rL766k0f/nfq1Cnuu+++6NevX7PzrBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgfkFfANgfo2cl1dbbbV49tln46WXXoqRI0dGt27dYpdddonkA//5X8ntgJJnBiTfGjjqqKPS5fn3WyZAgAABAgQIECBAgAABAgQIECBAgAABAgsKCAAWFMl5vba2Nvr375++F1e6Y8eOUVdXt7jdthMgQIAAAQIECBAgQIAAAQIECBAgQIAAgYUE3AJoIRIbCBAgQIAAAQIECBAgQIAAAQIECBAgQIBA+Qv4BkAJzOHLL78cjzzySEyZMiXq6+tj3rx5Lerq2muvbdFxDiJAgAABAgQIECBAgAABAgQIECBAgACB6hMQABQ45x9++GEcfPDB8fe//71VXQgAWsXmJAIECBAgQIAAAQIECBAgQIAAAQIECFSFgACgoGmeNWtWHHjggfHiiy8W1IGyBAgQIECAAAECBAgQIECAAAECBAgQIFDJAgKAgmb3mmuuafrwP3kQ8IknnhjbbrttdOnSJdq2bVtQV8oSIECAAAECBAgQIECAAAECBAgQIECAQKUICAAKmsnnnnsurZx8+D9s2LAYOHBgQZ0oS4AAAQIECBAgQIAAAQIECBAgQIAAAQKVKNCmEgdVDmN65ZVX0ja32morH/6Xw4TpkQABAgQIECBAgAABAgQIECBAgAABAmUmIAAoaMLmzJmTVk5u++NFgAABAgQIECBAgAABAgQIECBAgAABAgSWtYAAYFmLtvB6AwYMSI+cMmVKC89wGAECBAgQIECAAAECBAgQIECAAAECBAgQaLmAAKDlVsv0yK233jq93rPPPhuN3wZYpgVcjAABAgQIECBAgAABAgQIECBAgAABAgSqWkAAUND0Dx48ONZbb72oq6uLSy65pKAulCVAgAABAgQIECBAgAABAgQIECBAgACBShUQABQ0s6uttlo89thj0a1btzj99NNj0KBBMWrUqPj000+joaGhoK6UJUCAAAECBAgQIECAAAECBAgQIECAAIFKEaitlIGU2zhuvvnmeOKJJ6JHjx7xySefxIMPPpi+k3G0a9cuOnXq9K1Dmjx58rce4wACBAgQIECAAAECBAgQIECAAAECBAgQqE4BAUBB8/7CCy/E7bffvsjq9fX1kby9CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAawUEAK2V+47nrbzyytG9e/fveBWnEyBAgAABAgQIECBAgAABAgQIECBAgACBRQsIABbtkvnWCy+8MJK3FwECBAgQIECAAAECBAgQIECAAAECBAgQyELAQ4CzUHVNAgQIECBAgAABAgQIECBAgAABAgQIECBQsIBvABQ8AcoTIECAQOUIjB07Ntq0ka1XzowaCQECBAgQIECAAAECBIoRmDt3bjGFVa04AQFAiUxpQ0ND1NXVRfLh0T/+8Y/46KOPYqWVVorVV189evXqFTvttFO0b9++RLrVBgECBAjML9C3b98YPnx4zJs3L33Pv88yAQIECBAgQIAAAQIECBBojcByyy0XG264YWtOdQ6BJoGa//3guaFpzUIhAq+88kr867/+a7zwwguLrd+5c+cYPHhwXHLJJWkwsNgD7ShpgbXWWis++eST2HLLLaNdu3Yl3avmCFSSwKxZs9L/x6655prpf4NZjO3rr7/24X8WsK5JgAABAgQIECBAgACBKhVIPjvq2LFjlY7esJeVgG8ALCvJVl7n5JNPjv/4j//41g+Npk2bFtdff308/vjj6V+Z9u7du5UVnUaAAAECWQgk39ryIkCAAAECBAgQIECAAAECBAiUkoAAoMDZGDp0aFx66aVNHSRf6dltt91inXXWie7du8eUKVPiww8/jDfeeCMefPDBSL6skazvt99+6V+ySgCb6CwQIECAAAECBAgQIECAAAECBAgQIECAwAICAoAFQPJaTW4Dc8IJJ6TlVlxxxbj88svjsMMOi+TeXot6vfnmm+nxTz/9dLz99ttpcHDWWWct6lDbCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAtGFQjMCNN94YX375ZVr8pptuiiOPPHKxH/4nB22yySbxwAMPxPrrr5+ec8MNN3zrbYPSA/1DgAABAgQIECBAgAABAgQIECBAgAABAlUpIAAoaNqT2/okr4EDB6a39GlJG8mDgC+77LL00PHjx8c777zTktMcQ4AAAQIECBAgQIAAAQIECBAgQIAAAQJVKCAAKGjSGwOArbfeeqk6GDBgQNPxH330UdOyBQIECBAgQIAAAQIECBAgQIAAAQIECBAgML+AAGB+jRyXv/7667TaSiuttFRVO3XqFLW1//fohjlz5izVuQ4mQIAAAQIECBAgQIAAAQIECBAgQIAAgeoREAAUNNcbbLBBWvnll19eqg5ef/31aPzgv0+fPkt1roMJECBAgAABAgQIECBAgAABAgQIECBAoHoEBAAFzfVGG22UVk4e7PvBBx+0uIshQ4akxybfBFh33XVbfJ4DCRAgQIAAAQIECBAgQIAAAQIECBAgQKC6BAQABc33z372s6ipqYnkVkAHHnhgfPbZZ0vsZN68efHv//7vceedd6bH/eQnP0nPX+JJdhIgQIAAAQIECBAgQIAAAQIECBAgQIBA1QoIAAqa+v79+8chhxySVn/ppZfiX/7lX+KMM86I5557Lj755JNoaGiIadOmxZtvvhl33HFHbLbZZnHqqaemx6+22mpx5ZVXFtS5sgQIECBAgAABAgQIECBAgAABAgQIECBQDgI1//tBc0M5NFqJPSZ/9T9o0KB44YUXFhpe8qDfxnv9z79zueWWi7vuuiv222+/+TdbLhOBtdZaKw14ttxyy2jXrl2ZdK1NAuUvMGvWrPT/tWuuuWb632D5j8gICBAgQIAAAQIECBAgQIAAAQLfLlD77Yc4IiuBNdZYI/2L/4suuijOPffcmD17dlOpRX34v91228VVV10Vffv2bTrOAgECBAgULzB06NC47LLLIrldmxcBAgQIECBAgAABAgQIEFgWAskzQG+99dbo1avXsrica1SpgACg4IlP/qI/ufXPvvvuGyNGjIixY8fGmDFjYty4cdGlS5dYb7310veAAQNir732Krhb5QkQIEBgUQLJrdpee+21Re2yjQABAgQIECBAgAABAgQItFrgqaeeEgC0Ws+JiYAAoER+DzbccMNI3l4ECBAgUH4CjXfT+8Mf/hDJLb68CBAgQIAAAQIECBAgQIDAdxG44oorYvjw4elzQr/LdZxLQABQIr8DyV/+d+jQIXr27LlQR5deemn6kOCBAwdGx44dF9pvAwECBAiUhkCPHj2EuaUxFbogQIAAAQIECBAgQIBAWQusssoqZd2/5ktHoE3ptFKdnbz44ovRr1+/9AOjBx54YJEIf/zjH9NbBHXt2jW979ciD7KRAAECBAgQIECAAAECBAgQIECAAAECBAjMJyAAmA8j78X7778/fvSjH8Urr7ySlv7HP/6xUAvJw4AnTJiQbp8xY0Ycfvjh8Zvf/Gah42wgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLzCwgA5tfIcXnq1Klx5JFHxsyZM9OqSRCw2267LdRB8pDgUaNGxVlnnRXJk7+T1+WXXx6PP/74QsfaQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGgUEAI0SOf8cMmRIfPHFF2nVyy67LJ5++unYfffdF+qipqYm+vfvH+eee268/vrr0b179/SYE088caFjbSBAgAABAgQIECBAgAABAgQIECBAgAABAo0CAoBGiZx/jhw5Mq24yy67tPiWPuuuu24kDwROXu+8805MnDgxXfYPAQIECBAgQIAAAQIECBAgQIAAAQIECBBYUEAAsKBITuvvvvtuWmlRt/1ZUgu77rpr0+4xY8Y0LVsgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLzCwgA5tfIcXnatGlpteQe/0vz6tixY7Rt2zY9JXmOgBcBAgQIECBAgAABAgQIECBAgAABAgQIEFiUgABgUSo5bFt77bXTKi+//PJSVXvrrbdi9uzZ6TmbbLLJUp3rYAIECBAgQIAAAQIECBAgQIAAAQIECBCoHgEBQEFz3a9fv7Tyf//3f0ddXV2Lu7jiiivSYzt16hTJMwG8CBAgQIAAAQIECBAgQIAAAQIECBAgQIDAogQEAItSyWHbUUcdlVZJbgW0//77x9ixY5dYddasWXHBBRfErbfemh631157RU1NzRLPsZMAAQIECBAgQIAAAQIECBAgQIAAAQIEqlegtnqHXuzI+/fvH/vuu28k3wB44403YuONN47BgwfH9ttvH8ntgdZaa634+uuvY8KECek3BK677rp0Oem6W7duceWVVxY7ANUJECBAgAABAgQIECBAgAABAgQIECBAoKQFBAAFTs8tt9wS77//frz22msxb968uOOOO9L3klpKbv2TfAugS5cuSzrMPgIECBAgQIAAAQIECBAgQIAAAQIECBCocgG3ACrwF6Bz587x/PPPx9lnnx0dO3ZcYifJ7X4OP/zwGDduXOy0005LPNZOAgQIECBAgAABAgQIECBAgAABAgQIECDgGwAF/w4sv/zycc4558Rpp50WI0aMiGeffTYmTpwYn3/+eay66qrRq1ev9L3FFlvEhhtuWHC3yhMgQIAAAQIECBAgQIAAAQIECBAgQIBAuQgIAEpkptq3bx977LFH+i6RlrRBgAABAgQIECBAgAABAgQIECBAgAABAmUs4BZAZTx5WidAgAABAgQIECBAgAABAgQIECBAgAABAosTEAAsTsZ2AgQIECBAgAABAgQIECBAgAABAgQIECBQxgICgDKePK0TIECAAAECBAgQIECAAAECBAgQIECAAIHFCQgAFidjOwECBAgQIECAAAECBAgQIECAAAECBAgQKGMBAUAZT57WCRAgQIAAAQIECBAgQIAAAQIECBAgQIDA4gQEAIuTsZ0AAQIECBAgQIAAAQIECBAgQIAAAQIECJSxgACgjCdP6wQIECBAgAABAgQIECBAgAABAgQIECBAYHECAoDFydhOgAABAgQIECBAgAABAgQIECBAgAABAgTKWKC2jHvXOoGyE2hoaEh7njNnTrRpI38ruwnUcNkKzJ49u2x71zgBAgQIECBAgAABAgQIECBAoLUCAoDWyjmPQCsEampq0rNeffXVVpztFAIECBAgQIAAAQIECBAgQIAAAQIECLRcQADQcitHEvjOAoMGDYq//vWv0fhNgO98QRcgQKDFAkkAt9dee7X4eAcSIECAAAECBAgQIECAAAECBMpdQABQ7jOo/7ISuOaaayJ5exEgQIAAAQIECBAgQIAAAQIECBAgQCBrATchz1rY9QkQIECAAAECBAgQIECAAAECBAgQIECAQAECAoAC0JUkQIAAAQIECBAgQIAAAQIECBAgQIAAAQJZCwgAshZ2fQIECBAgQIAAAQIECBAgQIAAAQIECBAgUICAAKAAdCUJECBAgAABAgQIECBAgAABAgQIECBAgEDWAgKArIVdnwABAgQIECBAgAABAgQIECBAgAABAgQIFCAgACgAXUkCBAgQIECAAAECBAgQIECAAAECBAgQIJC1gAAga2HXJ0CAAAECBAgQIECAAAECBAgQIECAAAECBQgIAApAV5IAAQIECBAgQIAAAQIECBAgQIAAAQIECGQtIADIWtj1CRAgQIAAAQIECBAgQIAAAQIECBAgQIBAAQICgALQlSRAgAABAgQIECBAgAABAgQIECBAgAABAlkLCACyFnZ9AgQIECBAgAABAgQIECBAgAABAgQIECBQgIAAoAB0JQkQIECAAAECBAgQIECAAAECBAgQIECAQNYCtVkXcH0CBP6/wKGHHhr33HPP/99giQCBXAUOOOCA+M///M9caypGgAABAgQIECBAgAABAgQIEChKQABQlLy6VSnw5JNPRn19fVWO3aAJlILAE088UQpt6IEAAQIECBAgQIAAAQIECBAgkIuAACAXZkUI/J9AQ0NDujBy5Mjo2rUrFgIEchKYNGlS/PCHP8ypmjIECBAgQIAAAQIECBAgQIAAgdIQEACUxjzookoEampq0pEuv/zy0a5duyoZtWESKF7Af2/Fz4EOCBAgQIAAAQIECBAgQIAAgfwFPAQ4f3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXkQABAgQIECBAgAABAgQIECBAgAABAgQIZC4gAMicWAECBAgQIECAAAECBAgQIECAAAECBAgQIJC/gAAgf3MVCRAgQIAAAQIECBAgQIAAAQIECBAgQIBA5gICgMyJFSBAgAABAgQIECBAgAABAgQIECBAgAABAvkLCADyN1eRAAECBAgQIECAAAECBAgQIECAAAECBAhkLiAAyJxYAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkL+AACB/cxUJECBAgAABAgQIECBAgAABAgQIECBAgEDmAgKAzIkVIECAAAECBAgQIECAAAECBAgQIECAAAEC+QsIAPI3V5EAAQIECBAgQIAAAQIECBAgQIAAAQIECGQuIADInFgBAgQIECBAgAABAgQIECBAgAABAgQIECCQv4AAIH9zFQkQIECAAAECBAgQIECAAAECBAgQIECAQOYCAoDMiRUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CwgA8jdXsYUCX3zxRRxzzDHx5z//eaEzZs2aFf/85z8X2p5s+PGPfxydO3de5D4bCRAgQIAAAQIECBAgQIAAAQIECBAgUC0CAoBqmekyHOf06dPj+uuvjxEjRizU/b777hsdOnSIL7/8cqF9M2fOjORcLwIECBAgQIAAAQIECBAgQIAAAQIECFSzgACgmmff2AkQIECAAAECBAgQIECAAAECBAgQIECgYgUEABU7tQZGgAABAgQIECBAgAABAgQIECBAgAABAtUsIACo5tk3dgIECBAgQIAAAQIECBAgQIAAAQIECBCoWAEBQMVOrYERIECAAAECBAgQIECAAAECBAgQIECAQDULCACqefaNnQABAgQIECBAgAABAgQIECBAgAABAgQqVkAAULFTa2AECBAgQIAAAQIECBAgQIAAAQIECBAgUM0CAoBqnn1jJ0CAAAECBAgQIECAAAECBAgQIECAAIGKFait2JEZWMUI/O1vf4sDDjig2XhefvnldP3www+P5Zdfvtm+urq6ZutWCBAgQIAAAQIECBAgQIAAAQIECBAgUI0CAoBqnPUyG/OECRPiv/7rvxbZ9QMPPLDI7TYSIECAAAECBAgQIECAAAECBAgQIECg2gUEANX+G1DC41999dXjnnvuKeEOtUaAAAECBAgQIECAAAECBAgQIECAAIHSFRAAlO7cVH1nHTp0iP3337/qHQAQIECAAAECBAgQIECAAAECBAgQIECgNQIeAtwaNecQIECAAAECBAgQIECAAAECBAgQIECAAIESFxAAlPgEaY8AAQIECBAgQIAAAQIECBAgQIAAAQIECLRGwC2AWqPmnFwEvvrqqzj//POXWKumpiY6d+4cq666amyxxRbRr1+/qK31a71ENDsJECBAgAABAgQIECBAgAABAgQIEKgKAZ+UVsU0l+cgp06dGpdddtlSNb/eeuvFDTfcENttt91SnedgAgQIECBAgAABAgQIECBAgAABAgQIVJqAAKDSZrSCxrPKKqvEpZdeusQRzZs3LyZPnhwTJ06MESNGRF1dXey+++4xevTo6Nu37xLPtZMAAQIECBAgQIAAAQIECBAgQIAAAQKVLCAAqOTZLfOxJbf2Oemkk1o8ivr6+jjttNNiyJAhcdZZZ8V9993X4nMdSIAAAQIECBAgQIAAAQIECBAgQIAAgUoT8BDgSpvRKh5Pu3bt4qKLLooePXrEsGHDYtq0aVWsYegECBAgQIAAAQIECBAgQIAAAQIECFS7gACg2n8DKmz8SQiQPAx47ty5MX78+AobneEQIECAAAECBAgQIECAAAECBAgQIECg5QICgJZbObJMBNZYY4200xkzZpRJx9okQIAAAQIECBAgQIAAAQIECBAgQIDAshcQACx7U1csWOCNN96I2tra6NOnT8GdKE+AAAECBAgQIECAAAECBAgQIECAAIHiBAQAxdmrnIHAl19+GS+//HJssskm0aFDhwwquCQBAgQIECBAgAABAgQIECBAgAABAgTKQ0AAUB7zpMsWCHz88cfxwx/+MOrr62PAgAEtOMMhBAgQIECAAAECBAgQIECAAAECBAgQqFyB2sodmpGVu8CUKVPiuOOOW+IwGhoaIrnX/6effhrJrX/mzJkTO+ywQ1x00UVLPM9OAgQIECBAgAABAgQIECBAgAABAgQIVLqAAKDSZ7iMx5d8sH/33Xe3eATt27ePQw45JK677rpYfvnlW3yeAwkQIECAAAECBAgQIECAAAECBAgQIFCJAgKASpzVChnTaqutFnfdddcSR1NTUxMrrrhidOnSJb3vfxICeBEgQIAAAQIECBAgQIAAAQIECBAgQIBAhADAb0HJCnTs2DEOPPDAku1PYwQIECBAgAABAgQIECBAgAABAgQIEChlAQ8BLuXZ0VurBD777DPBQavknESAAAECBAgQIECAAAECBAgQIECAQCUJ+AZAJc1mhY5l+vTpMXz48Hj00Udj2rRpse2228axxx4bbdu2XWjEN910U/z2t7+NL7/8cqF9NhAgQIAAAQIECBAgQIAAAQIECBAgQKCaBAQA1TTbZTjW+vr6GDhwYDz33HNN3SfPBbjtttti5MiR0a5du3T7xx9/HIcffng89dRT6XqfPn2ajrdAgAABAgQIECBAgAABAgQIECBAgACBahRwC6BqnPUyGvOvfvWr9MP/lVdeOU4++eS4+OKLo3fv3vHiiy/GBRdckI5k1KhRscUWW6Qf/ieBwHnnnRevvPJKGY1SqwQIECBAgAABAgQIECBAgAABAgQIEFj2Ar4BsOxNXXEZCtxzzz3RqVOnGDt2bKyxxhrplQ8++ODYfPPN4y9/+UvstNNOsfPOO8esWbNim222iRtvvDENCJZhCy5FgAABAgQIECBAgAABAgQIECBAgACBshTwDYCynLbqaDq53/8XX3yRfsDf+OF/MvIePXrELrvsEnV1dXHIIYekGBdeeGE888wzPvyvjl8NoyRAgAABAgQIECBAgAABAgQIECBAoAUCvgHQAiSHFCMwderUtHD37t0XamDddddNt02aNCnuv//+2HXXXRc6xgYCBAgQIECAAAECBAgQIECAAAECBAhUs4BvAFTz7Jf42OfOnZt22LZt24U67dKlS7oteUaAD/8X4rGBAAECBAgQIECAAAECBAgQIECAAAECIQDwS1DWAv379y/r/jVPgAABAgQIECBAgAABAgQIECBAgACBrAQEAFnJum4uAu3bt8+ljiIECBAgQIAAAQIECBAgQIAAAQIECBAoNwEBQLnNmH4JECBAgAABAgQIECBAgAABAgQIECBAgEALBDwEuAVIDilWYNiwYTFhwoRmTYwbNy5dv/DCC+OWW25ptq9x5a677mpc9JMAAQIECBAgQIAAAQIECBAgQIAAAQJVJyAAqLopL78BJx/2N37gv2D3I0eOXHBT07oAoInCAgECBAgQIECAAAECBAgQIECAAAECVSggAKjCSS+XIa+22mrhQ/xymS19EiBAgAABAgQIECBAgAABAgQIECBQagICgFKbEf00CXTs2DEOPPDApnULBAgQIECAAAECBAgQIECAAAECBAgQINByAQ8BbrmVI3MWmDp1avzbv/1b3HvvvTlXVo4AAQIECBAgQIAAAQIECBAgQIAAAQLlLyAAKP85rNgRfPXVV3HGGWfEnXfeWbFjNDACBAgQIECAAAECBAgQIECAAAECBAhkJSAAyErWdQkQIECAAAECBAgQIECAAAECBAgQIECAQIECAoAC8ZUmQIAAAQIECBAgQIAAAQIECBAgQIAAAQJZCQgAspJ1XQIECBAgQIAAAQIECBAgQIAAAQIECBAgUKBAbYG1lSbQIoExY8akDwNu0cHzHXT66afPt2aRAAECBAgQIECAAAECBAgQIECAAAEC1SUgAKiu+S7L0b711lvpw4CXtnkBwNKKOZ4AAQIECBAgQIAAAQIECBAgQIAAgUoSEABU0mxW6Fg22GCD2GeffSp0dIZFgAABAgQIECBAgAABAgQIECBAgACBbAQEANm4uuoyFNhkk01adQugZdiCSxEgQIAAAQIECBAgQIAAAQIECBAgQKDsBDwEuOymTMMECBAgQIAAAQIECBAgQIAAAQIECBAgQODbBQQA327kCAIECBAgQIAAAQIECBAgQIAAAQIECBAgUHYCAoCymzINEyBAgAABAgQIECBAgAABAgQIECBAgACBbxfwDIBvN3JEQQIrrbRSnHXWWbHxxhsX1IGyBAgQIECAAAECBAgQIECAAAECBAgQKF8BAUD5zl3Fd54EAOeee27Fj9MACRAgQIAAAQIECBAgQIAAAQIECBAgkIWAWwBloeqaBAgQIECAAAECBAgQIECAAAECBAgQIECgYAEBQMEToDwBAgQIECBAgAABAgQIECBAgAABAgQIEMhCQACQhaprEiBAgAABAgQIECBAgAABAgQIECBAgACBggUEAAVPgPIECBAgQIAAAQIECBAgQIAAAQIECBAgQCALAQFAFqquSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEChYQABQ8AcoTIECAAAECBAgQIECAAAECBAgQIECAAIEsBAQAWai6JgECBAgQIECAAAECBAgQIECAAAECBAgQKFhAAFDwBChPgAABAgQIECBAgAABAgQIECBAgAABAgSyEBAAZKHqmgQIECBAgAABAgQIECBAgAABAgQIECBAoGABAUDBE6A8AQIECBAgQIAAAQIECBAgQIAAAQIECBDIQkAAkIWqaxIgQIAAAQIECBAgQIAAAQIECBAgQIAAgYIFBAAFT4DyBAgQIECAAAECBAgQIECAAAECBAgQIEAgCwEBQBaqrkmAAAECBAgQIECAAAECBAgQIECAAAECBAoWEAAUPAHKEyBAgAABAgQIECBAgAABAgQIECBAgACBLAQEAFmouiYBAgQIECBAgAABAgQIECBAgAABAgQIEChYQABQ8AQoT4AAAQIECBAgQIAAAQIECBAgQIAAAQIEshAQAGSh6poECBAgQIAAAQIECBAgQIAAAQIECBAgQKBgAQFAwROgPAECBAgQIECAAAECBAgQIECAAAECBAgQyEJAAJCFqmsSIECAAAECBAgQIECAAAECBAgQIECAAIGCBQQABU+A8gQIECBAgAABAgQIECBAgAABAgQIECBAIAsBAUAWqq5JgAABAgQIECBAgAABAgQIECBAgAABAgQKFhAAFDwByhMgQIAAAQIECBAgQIAAAQIECBAgQIAAgSwEBABZqLomAQIECBAgQIAAAQIECBAgQIAAAQIECBAoWEAAUPAEKE+AAAECBAgQIECAAAECBAgQIECAAAECBLIQEABkoeqaBAgQIECAAAECBAgQIECAAAEC/6+9O421q6r7ALxumTSClbmVWpBBQQwgpY2WWmUw8AGQeQiTFBATgwaHVKJBoKApWr+QECCSgigOLUEtBD6AsTRFiQwyD2EUam3aImCtLUN5Wft9z37vvdx7e1u6/useeXZC7j5777N++zwrJLB/5+xNgAABAgQqCygAKk+AeAIECBAgQIAAAQIECBAgQIAAAQIECBAgUEJAAVBC1ZgECBAgQIAAAQIECBAgQIAAAQIECBAgQKCygAKg8gSIJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQUACVUjUmAAAECBAgQIECAAAECBAgQIECAAAECBCoLKAAqT4B4AgQIECBAgAABAgQIECBAgAABAgQIECBQQkABUELVmAQIECBAgAABAgQIECBAgAABAgQIECBAoLKAAqDyBIgnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBBQAJVSNSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgsoACpPgHgCBAgQIECAAAECBAgQIECAAAECBAgQIFBCQAFQQtWYBAgQIECAAAECBAgQIECAAAECBAgQIECgsoACoPIEiCdAgAABAgQIECBAgAABAgQIECBAgAABAiUEFAAlVI1JgAABAgQIECBAgAABAgQIECBAgAABAgQqCygAKk+AeAIECBAgQIAAAQIECBAgQIAAAQIECBAgUEJAAVBC1ZgECBAgQIAAAQIECBAgQIAAAQIECBAgQKCygAKg8gSIJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQUACVUjUmAAAECBAgQIECAAAECBAgQIECAAAECBCoLKAAqT4B4AgQIECBAgAABAgQIECBAgAABAgQIECBQQkABUELVmAQIECBAgAABAgQIECBAgAABAgQIECBAoLKAAqDyBIgnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBBQAJVSNSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgsoACpPgHgCBAgQIECAAAECBAgQIECAAAECBAgQIFBCQAFQQtWYBAgQIECAAAECBAgQIECAAAECBAgQIECgsoACoPIEiCdAgAABAgQIECBAgAABAgQIECBAgAABAiUEFAAlVI1JgAABAgQIECBAgAABAgQIECBAgAABAgQqCygAKk+AeAIECBAgQIAAAQIECBAgQIAAAQIECBAgUEJAAVBC1ZgECBAgQIAAAQIECBAgQIAAAQIECBAgQKCygAKg8gSIJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQUACVUjUmAAAECBAgQIECAAAECBAgQIECAAAECBCoLKAAqT4B4AgQIECBAgAABAgQIECBAgAABAgQIECBQQkABUELVmAQIECBAgAABAgQIECBAgAABAgQIECBAoLKAAqDyBIgnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBBQAJVSNSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgsoACpPgHgCBAgQIECAAAECBAgQIECAAAECBAgQIFBCQAFQQtWYBAgQIECAAAECBAgQIECAAAECBAgQIECgsoACoPIEiCdAgAABAgQIECBAgAABAgQIECBAgAABAiUEFAAlVI1JgAABAgQIECBAgAABAgQIECBAgAABAgQqCygAKk+AeAIECBAgQIAAAQIECBAgQIAAAQIECBAgUEJAAVBC1ZgECBAgQIAAAQIECBAgQIAAAQIECBAgQKCygAKg8gSIJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQUACVUjUmAAAECBAgQIECAAAECBAgQIECAAAECBCoLKAAqT4B4AgQIECBAgAABAgQIECBAgAABAgQIECBQQkABUELVmAQIECBAgAABAgQIECBAgAABAgQIECBAoLKAAqDyBIgnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBBQAJVSNSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgsoACpPgHgCBAgQIECAAAECBAgQIECAAAECBAgQIFBCQAFQQtWYBAgQIECAAAECBAgQIECAAAECBAgQIECgsoACoPIEiCdAgAABAgQIECBAgAABAgQIECBAgAABAiUEFAAlVI1JgAABAgQIECBAgAABAgQIECBAgAABAgQqCygAKk+AeAIECBAgQIAAAQIECBAgQIAAAQIECBAgUEJAAVBC1ZgECBAgQIAAAQIECBAgQIAAAQIECBAgQKCygAKg8gSIJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQUACVUjUmAAAECBAgQIECAAAECBAgQIECAAAECBCoLKAAqT4B4AgQIECBAgAABAgQIECBAgAABAgQIECBQQkABUELVmAQIECBAgAABAgQIECBAgAABAgQIECBAoLKAAqDyBIgnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBBQAJVSNSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgsoACpPgHgCBAgQIECAAAECBAgQIECAAAECBAgQIFBCQAFQQtWYBAgQIECAAAECBAgQIECAAAECBAgQIECgsoACoPIEiCdAgAABAgQIECBAgAABAgQIECBAgAABAiUEFAAlVI1JgAABAgQIECBAgAABAgQIECBAgAABAgQqCygAKk+AeAIECBAgQIAAAQIECBAgQIAAAQIECBAgUEJAAVBC1ZgECBAgQIAAAQIECBAgQIAAAQIECBAgQKCygAKg8gSIJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQUACVUjUmAAAECBAgQIECAAAECBAgQIECAAAECBCoLKAAqT4B4AgQIECBAgAABAgQIECBAgAABAgQIECBQQkABUELVmAQIECBAgAABAgQIECBAgAABAgQIECBAoLKAAqDyBIgnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBBQAJVSNSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgsoACpPgHgCBAgQIECAAAECBAgQIECAAAECBAgQIFBCQAFQQtWYBAgQIECAAAECBAgQIECAAAECBAgQIECgsoACoPIEiCdAgAABAgQIECBAgAABAgQIECBAgAABAiUEFAAlVI1JgAABAgQIECBAgAABAgQIECBAgAABAgQqCygAKk+AeAIECBAgQIAAAQIECBAgQIAAAQIECBAgUEJAAVBC1ZgECBAgQIAAAQIECBAgQIAAAQIECBAgQKCygAKg8gSIJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQUACVUjUmAAAECBAgQIECAAAECBAgQIECAAAECBCoLKAAqT4B4AgQIECBAgAABAgQIECBAgAABAgQIECBQQkABUELVmAQIECBAgAABAgQIECBAgAABAgQIECBAoLKAAqDyBIgnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBBQAJVSNSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgsoACpPgHgCBAgQIECAAAECBAgQIECAAAECBAgQIFBCQAFQQtWYBAgQIECAAAECBAgQIECAAAECBAgQIECgsoACoPIEiCdAgAABAgQIECBAgAABAgQIECBAgAABAiUEFAAlVI1JgAABAgQIECBAgAABAgQIECBAgAABAgQqCygAKk+AeAIECBAgQIAAAQIECBAgQIAAAQIECBAgUEJAAVBC1ZgECBAgQIAAAQIECBAgQIAAAQIECBAgQKCygAKg8gSIJ0CAAAECBAgQIECAAAECBAgQIECAAAECJQQUACVUjUmAAAECBAgQIECAAAECBAgQIECAAAECBCoLKAAqT4B4AgQIECBAgAABAgQIECBAgAABAgQIECBQQkABUELVmAQIECBAgAABAgQIECBAgAABAgQIECBAoLKAAqDyBIgnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlBDYuMagxCRAYWOCtt95qdqxevTqtWrVq4INsJUBggwtE/fv2+uuv+3d7g8+eAQkQIECAAAECBAgQIPDeE3jzzTffex/aJy4ioAAowmpQAgML9PT0NDumTp068AG2EiDQ1QJf/vKXu/r8nTwBAgQIECBAgAABAgQIECDw3yWgAPjvmk+fZoQLHHzwwWnu3Lmp80uAEX66To/Af5VALuC+8IUvFPlMBxxwQFqwYEFas2ZNkfENSoAAAQIECBAgQIAAAQLvPYHNN9887bfffu+9D+4Tb1CBnrcvRP7vPUk26LAGI0CAAAECBAgQIECAAAECBAgQIECAAAECBGoKeAhwTX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIEOcQyxsAACEISURBVCBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNAQVATX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIECBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNAQVATX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIECBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNAQVATX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIECBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNAQVATX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIECBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNAQVATX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIECBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNAQVATX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIECBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNAQVATX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIECBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNAQVATX3ZBAgQIECAAAECBAgQIECAAAECBAgQIECgkIACoBCsYQkQIECAAAECBAgQIECAAAECBAgQIECAQE0BBUBNfdkECBAgQIAAAQIECBAgQIAAAQIECBAgQKCQgAKgEKxhCRAgQIAAAQIECBAgQIAAAQIECBAgQIBATQEFQE192QQIECBAgAABAgQIECBAgAABAgQIECBAoJCAAqAQrGEJECBAgAABAgQIECBAgAABAgQIECBAgEBNgY1rhssmQIAAAQIECBAgQCBeYPXq1en6669Pv/rVr9LTTz+dXnvttTRp0qQ0efLk9JWvfCVtscUW6Rvf+EZauXJlmjhxYjrzzDP7nOS3vvWttGLFijRlypR0yimnpNmzZ6ef/exn6dFHH0177rlnM8Zxxx2Xenp62vflsa644op09913p8ceeywtWbIk7bHHHmmvvfZKBxxwQDrmmGPaY/uv3H777Wnu3LnN5mnTpjXn2v+YzutLL700vfDCC83LK6+8srO5+btw4cLmc+cXF1xwQRozZky69tpr0/z589Ndd93VfN5ddtklHXHEEemcc85pHPoM4AUBAgQIECBAgACBLhPoeevtpcvO2ekSIECAAAECBAgQILCeAk8++WQ69NBD07PPPjvgCPkC/u9///s0YcKE9PLLL6cTTzwx/fKXv+xz7LbbbpuWLVuWzjrrrOYi/je/+c0++3fcccdm/E4B8Jvf/Cbl0qBzYb7Pwf/34vDDD09XX311c1G+//5Zs2Y178/bf/7zn6eTTz65/yHt60996lPpr3/9a/O6///qXHPNNc0555333XdfmjlzZvr1r3/dvrf3Sv6MN99885BlQ+/jrRMgQIAAAQIECBAYiQJ+ATASZ8U5ESBAgAABAgQIECgg8Pzzzzff2l+6dGkz+s4779x823233XZLDz74YPrtb3+bHnnkkeaid/7G/tqWJ554ov1GfT521KhRac2aNenUU09tv/0/b968dMIJJ7RDffrTn06f+9zn0vjx49MDDzyQbrnllrRo0aKUj/vkJz/ZXJjP+0ov+RzzZx09enTzbf/9998/vfjii2nOnDnpj3/8Y8pGBx10UFqwYEHaZ599Sp+O8QkQIECAAAECBAgUEVAAFGE1KAECBAgQIECAAIGRJ3Deeec1F7bzmR199NHpuuuuS5tvvnl7ohdddFE6/vjj05133tlu6/8t+nbH2yv54nhe8u2Czj333OaWObfeemv67Gc/22xfvnx5Ovvss5v1TTbZpPnGfT6H3ss///nPdPrppzcFQD7+61//errpppt6H1JkPV/8/+hHP9oUEPlWRJ0l3wJp+vTp6cc//nFzm6OvfvWrKd86yEKAAAECBAgQIECgGwU8BLgbZ805EyBAgAABAgQIEFhHgfxt+86F9Y985CPphhtu6HPxPw+3/fbbN78CyN+KH+6SbyeUb9Gz0047pa233rp5JkC+BVBe8sX8fK//vHzta19L/S/+5+1bbrlluvHGG1O+935e8q8Q8q8CIpZ8///eF/9zZv4Vw2WXXdY8myC/zs8GyM8gsBAgQIAAAQIECBDoRgEFQDfOmnMmQIAAAQIECBAgsI4CnYv/+W3f/e5302abbTbgCPmCfL5f/3CX/M3/wZb8a4C85IcKn3/++YMdlvKvA2bMmNHu/8UvftGul1o58MAD09SpUwccPj+7IBt1lvxMBAsBAgQIECBAgACBbhRQAHTjrDlnAgQIECBAgAABAuso8Ic//KF9R74H/1DLwQcfPNTuPvt23XXXPq87L/I99F966aXmZb7vf/51wFDLYYcd1u5+/PHH2/VSK0ccccSQQ0+ZMqXdP3/+/HbdCgECBAgQIECAAIFuElAAdNNsOVcCBAgQIECAAAEC6ymQH7TbWTq36Om87v83385nOMtGG23U3Ed/oGMfe+yxdvNwxsu/EuiUBE8++WQa6tkD7cDvYmVtBmPHjk2bbrppk7B48eJ3keStBAgQIECAAAECBOoJKADq2UsmQIAAAQIECBAgECaQH7Cbl/zQ3/e///1D5uZnAeTb4Kxtycfl2/cMtOSL+J0lP3NgOMu4ceOaw/7973+nzvkO533rc8z48eOHfFv+/Nttt11zTOlzGfJE7CRAgAABAgQIECDwLgQUAO8Cz1sJECBAgAABAgQIdIvAhz/84eZUV6xYkfI/Qy359j3D+QZ+fmDuYMtWW23V7nr55Zfb9aFWel9o/+AHPzjgoWs7rzfeeGPA9/XfuHLlyv6b3vF62bJlzbYPfehD79hnAwECBAgQIECAAIFuEBj8v9i74eydIwECBAgQIECAAAECwxLYbbfd2uNeeOGFdn2glb/97W8DbV6nbb3znnvuubW+9/XXX09///vfm+NGjx7d3n6n/xvzcUMtr7zyylC7231r+4y5BFm1alVz/JgxY9r3WSFAgAABAgQIECDQTQIKgG6aLedKgAABAgQIECBAYD0FPv7xj7fvXLhwYbs+0Mpdd9010OZ12pYfDty5jdDDDz+81l8U5GPWrFnTZPR/sHDv2wz95z//GfQ88r4lS5YMur/3jt63KOq9vbOez6ezTJw4sbPqLwECBAgQIECAAIGuElAAdNV0OVkCBAgQIECAAAEC6ycwbdq0lB/am5cf/vCHabBb5eRvvc+cOXP9Qnq9Kz9nYO+992625IvtN954Y6+971z9wQ9+0G486qij2vW80vt2QE888USffb1f3HLLLem1117rvWnQ9auuuioNVSb86Ec/at/b/3zaHVYIECBAgAABAgQIjHABBcAInyCnR4AAAQIECBAgQGBDCOy+++7plFNOaYZ65pln0tlnn93e4qYzfn42wGmnndbeiqezfX3/zpo1q33r+eefnxYtWtS+7r0yb968tiDYbLPN0kknndR7d9pnn33a1/nC/eOPP96+7qw88MAD6cwzz+y8XOvff/zjH+nSSy8d8Ljf/e536dZbb2325V8jHHrooQMeZyMBAgQIECBAgACBkS6gABjpM+T8CBAgQIAAAQIECGwggQsvvDBtv/32zWjXXntt2nfffdN3vvOdNHv27PTtb3+7udA+Z86ctPHGG7eJndv4tBvWYeXAAw9Mxx57bPOOp556qhn/+uuvTy+++GJ6880300MPPZSmT5+evvjFL7a3CLrsssvSzjvv3CclFwCTJk1qtq1evTodffTR6fLLL095zDvvvDN973vfS4ccckh69dVXU+dhx30GGORFLgBy4fHggw8255PHy0Z5/M5yxRVXpFxKWAgQIECAAAECBAh0o0DPW28v3XjizpkAAQIECBAgQIAAgXUXyBffjzzyyHTvvfcO+OZ8sT1flO98Cz9/q/6nP/1pn2O33XbbtGzZsjRu3Li0tgcKL1++PJ1zzjntN/w7A+WSofdtiEaNGpW+//3vpwsuuKBzSJ+/d9xxR3NhPl/kH2zJtzbKv2LofLO////qXHPNNemss85q3p4Lg1wedG4D1P988nMH8q8NzjjjjMHibCdAgAABAgQIECAw4gX8AmDET5ETJECAAAECBAgQILDhBPJF+wULFqSf/OQn6cQTT0z5FjdbbbVV8w36Sy65JOUHAOdjOsvo0aM7q+v1d+utt05z585NN9xwQ9pll13aBwN3Lv7n5xIcfvjhaf78+YNe/M/BBx10ULrvvvvS1KlT22cZ5O35Fwp77LFHyhf3868ZhvuLhZyZHfbaa6/mPZ3zyWN2ygEX/7OGhQABAgQIECBAoJsF/v+3vd38KZw7AQIECBAgQIAAAQLDFsgP6D3vvPMGPf6VV15p9w1UACxdurTdP9yV/IuC/M+//vWv9PDDDze/HNhhhx3Sxz72sZR/UTCcJRcIuSjI39q///7700svvZQ+85nPpFwydJYZM2ak/M9wlgkTJqT87ID8K4U//elPza1+cpnQuwAZzjiOIUCAAAECBAgQIDBSBRQAI3VmnBcBAgQIECBAgACBDSjwl7/8Jd12223NBffPf/7z7bMABoq455572s354cEbctliiy2ai/b5wv36LrnAmDx58vq+/R3vywXCYYcd9o7tNhAgQIAAAQIECBDodgEFQLfPoPMnQIAAAQIECBAgMEyBzv3188XuefPmDfiu/CDcmTNnNvvyffnzrXcsBAgQIECAAAECBAh0p4BnAHTnvDlrAgQIECBAgAABAusk8IlPfCK9733va95z8803p9mzZ6fet/rJOxYvXpy+9KUvtQ/GPeqoo/rcXmedAh1MgAABAgQIECBAgEB1AQVA9SlwAgQIECBAgAABAgTKC3zgAx9IV111VRs0bdq0tM0226QpU6akU089NeXbAu20005p4cKFzTF5/corr2yPt0KAAAECBAgQIECAQPcJuAVQ982ZMyZAgAABAgQIECCwXgKnnXZaWrFiRbr44ovTkiVL0htvvNFc8O9c9M+D9vT0pGOOOSZdffXVacstt1yvHG8iQIAAAQIECBAgQGBkCPS89fYyMk7FWRAgQIAAAQIECBAgECGwatWqNGfOnPToo4+m559/vikFxo4dm3bdddd0/PHHpx133DHiNMIznn766fTnP/+5yZ04cWLzQOTwkxBIgAABAgQIECBAIFBAARCILYoAAQIECBAgQIAAAQIECBAgQIAAAQIECEQJeAZAlLQcAgQIECBAgAABAgQIECBAgAABAgQIECAQKKAACMQWRYAAAQIECBAgQIAAAQIECBAgQIAAAQIEogQUAFHScggQIECAAAECBAgQIECAAAECBAgQIECAQKCAAiAQWxQBAgQIECBAgAABAgQIECBAgAABAgQIEIgSUABEScshQIAAAQIECBAgQIAAAQIECBAgQIAAAQKBAgqAQGxRBAgQIECAAAECBAgQIECAAAECBAgQIEAgSkABECUthwABAgQIECBAgAABAgQIECBAgAABAgQIBAooAAKxRREgQIAAAQIECBAgQIAAAQIECBAgQIAAgSgBBUCUtBwCBAgQIECAAAECBAgQIECAAAECBAgQIBAooAAIxBZFgAABAgQIECBAgAABAgQIECBAgAABAgSiBBQAUdJyCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAoIACIBBbFAECBAgQIECAAAECBAgQIECAAAECBAgQiBJQAERJyyFAgAABAgQIECBAgAABAgQIECBAgAABAoECCoBAbFEECBAgQIAAAQIECBAgQIAAAQIECBAgQCBKQAEQJS2HAAECBAgQIECAAAECBAgQIECAAAECBAgECigAArFFESBAgAABAgQIECBAgAABAgQIECBAgACBKAEFQJS0HAIECBAgQIAAAQIECBAgQIAAAQIECBAgECigAAjEFkWAAAECBAgQIECAAAECBAgQIECAAAECBKIEFABR0nIIECBAgAABAgQIECBAgAABAgQIECBAgECggAIgEFsUAQIECBAgQIAAAQIECBAgQIAAAQIECBCIElAAREnLIUCAAAECBAgQIECAAAECBAgQIECAAAECgQIKgEBsUQQIECBAgAABAgQIECBAgAABAgQIECBAIEpAARAlLYcAAQIECBAgQIAAAQIECBAgQIAAAQIECAQKKAACsUURIECAAAECBAgQIECAAAECBAgQIECAAIEoAQVAlLQcAgQIECBAgAABAgQIECBAgAABAgQIECAQKKAACMQWRYAAAQIECBAgQIAAAQIECBAgQIAAAQIEogQUAFHScggQIECAAAECBAgQIECAAAECBAgQIECAQKCAAiAQWxQBAgQIECBAgAABAgQIECBAgAABAgQIEIgSUABEScshQIAAAQIECBAgQIAAAQIECBAgQIAAAQKBAgqAQGxRBAgQIECAAAECBAgQIECAAAECBAgQIEAgSkABECUthwABAgQIECBAgAABAgQIECBAgAABAgQIBAooAAKxRREgQIAAAQIECBAgQIAAAQIECBAgQIAAgSgBBUCUtBwCBAgQIECAAAECBAgQIECAAAECBAgQIBAooAAIxBZFgAABAgQIECBAgAABAgQIECBAgAABAgSiBBQAUdJyCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAoIACIBBbFAECBAgQIECAAAECBAgQIECAAAECBAgQiBJQAERJyyFAgAABAgQIECBAgAABAgQIECBAgAABAoECCoBAbFEECBAgQIAAAQIECBAgQIAAAQIECBAgQCBKQAEQJS2HAAECBAgQIECAAAECBAgQIECAAAECBAgECigAArFFESBAgAABAgQIECBAgAABAgQIECBAgACBKAEFQJS0HAIECBAgQIAAAQIECBAgQIAAAQIECBAgECigAAjEFkWAAAECBAgQIECAAAECBAgQIECAAAECBKIEFABR0nIIECBAgAABAgQIECBAgAABAgQIECBAgECggAIgEFsUAQIECBAgQIAAAQIECBAgQIAAAQIECBCIElAAREnLIUCAAAECBAgQIECAAAECBAgQIECAAAECgQIKgEBsUQQIECBAgAABAgQIECBAgAABAgQIECBAIEpAARAlLYcAAQIECBAgQIAAAQIECBAgQIAAAQIECAQKKAACsUURIECAAAECBAgQIECAAAECBAgQIECAAIEoAQVAlLQcAgQIECBAgAABAgQIECBAgAABAgQIECAQKKAACMQWRYAAAQIECBAgQIAAAQIECBAgQIAAAQIEogQUAFHScggQIECAAAECBAgQIECAAAECBAgQIECAQKCAAiAQWxQBAgQIECBAgAABAgQIECBAgAABAgQIEIgSUABEScshQIAAAQIECBAgQIAAAQIECBAgQIAAAQKBAgqAQGxRBAgQIECAAAECBAgQIECAAAECBAgQIEAgSkABECUthwABAgQIECBAgAABAgQIECBAgAABAgQIBAooAAKxRREgQIAAAQIECBAgQIAAAQIECBAgQIAAgSgBBUCUtBwCBAgQIECAAAECBAgQIECAAAECBAgQIBAooAAIxBZFgAABAgQIECBAgAABAgQIECBAgAABAgSiBBQAUdJyCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAoIACIBBbFAECBAgQIECAAAECBAgQIECAAAECBAgQiBJQAERJyyFAgAABAgQIECBAgAABAgQIECBAgAABAoECCoBAbFEECBAgQIAAAQIECBAgQIAAAQIECBAgQCBKQAEQJS2HAAECBAgQIECAAAECBAgQIECAAAECBAgECigAArFFESBAgAABAgQIECBAgAABAgQIECBAgACBKAEFQJS0HAIECBAgQIAAAQIECBAgQIAAAQIECBAgECigAAjEFkWAAAECBAgQIECAAAECBAgQIECAAAECBKIEFABR0nIIECBAgAABAgQIECBAgAABAgQIECBAgECggAIgEFsUAQIECBAgQIAAAQIECBAgQIAAAQIECBCIElAAREnLIUCAAAECBAgQIECAAAECBAgQIECAAAECgQIKgEBsUQQIECBAgAABAgQIECBAgAABAgQIECBAIEpAARAlLYcAAQIECBAgQIAAAQIECBAgQIAAAQIECAQKKAACsUURIECAAAECBAgQIECAAAECBAgQIECAAIEoAQVAlLQcAgQIECBAgAABAgQIECBAgAABAgQIECAQKKAACMQWRYAAAQIECBAgQIAAAQIECBAgQIAAAQIEogQUAFHScggQIECAAAECBAgQIECAAAECBAgQIECAQKCAAiAQWxQBAgQIECBAgAABAgQIECBAgAABAgQIEIgSUABEScshQIAAAQIECBAgQIAAAQIECBAgQIAAAQKBAgqAQGxRBAgQIECAAAECBAgQIECAAAECBAgQIEAgSkABECUthwABAgQIECBAgAABAgQIECBAgAABAgQIBAooAAKxRREgQIAAAQIECBAgQIAAAQIECBAgQIAAgSgBBUCUtBwCBAgQIECAAAECBAgQIECAAAECBAgQIBAooAAIxBZFgAABAgQIECBAgAABAgQIECBAgAABAgSiBBQAUdJyCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAoIACIBBbFAECBAgQIECAAAECBAgQIECAAAECBAgQiBJQAERJyyFAgAABAgQIECBAgAABAgQIECBAgAABAoECCoBAbFEECBAgQIAAAQIECBAgQIAAAQIECBAgQCBKQAEQJS2HAAECBAgQIECAAAECBAgQIECAAAECBAgECigAArFFESBAgAABAgQIECBAgAABAgQIECBAgACBKAEFQJS0HAIECBAgQIAAAQIECBAgQIAAAQIECBAgECigAAjEFkWAAAECBAgQIECAAAECBAgQIECAAAECBKIEFABR0nIIECBAgAABAgQIECBAgAABAgQIECBAgECggAIgEFsUAQIECBAgQIAAAQIECBAgQIAAAQIECBCIElAAREnLIUCAAAECBAgQIECAAAECBAgQIECAAAECgQIKgEBsUQQIECBAgAABAgQIECBAgAABAgQIECBAIEpAARAlLYcAAQIECBAgQIAAAQIECBAgQIAAAQIECAQKKAACsUURIECAAAECBAgQIECAAAECBAgQIECAAIEoAQVAlLQcAgQIECBAgAABAgQIECBAgAABAgQIECAQKKAACMQWRYAAAQIECBAgQIAAAQIECBAgQIAAAQIEogQUAFHScggQIECAAAECBAgQIECAAAECBAgQIECAQKCAAiAQWxQBAgQIECBAgAABAgQIECBAgAABAgQIEIgSUABEScshQIAAAQIECBAgQIAAAQIECBAgQIAAAQKBAgqAQGxRBAgQIECAAAECBAgQIECAAAECBAgQIEAgSkABECUthwABAgQIECBAgAABAgQIECBAgAABAgQIBAooAAKxRREgQIAAAQIECBAgQIAAAQIECBAgQIAAgSgBBUCUtBwCBAgQIECAAAECBAgQIECAAAECBAgQIBAooAAIxBZFgAABAgQIECBAgAABAgQIECBAgAABAgSiBBQAUdJyCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAoIACIBBbFAECBAgQIECAAAECBAgQIECAAAECBAgQiBJQAERJyyFAgAABAgQIECBAgAABAgQIECBAgAABAoECCoBAbFEECBAgQIAAAQIECBAgQIAAAQIECBAgQCBKQAEQJS2HAAECBAgQIECAAAECBAgQIECAAAECBAgECigAArFFESBAgAABAgQIECBAgAABAgQIECBAgACBKAEFQJS0HAIECBAgQIAAAQIECBAgQIAAAQIECBAgECigAAjEFkWAAAECBAgQIECAAAECBAgQIECAAAECBKIEFABR0nIIECBAgAABAgQIECBAgAABAgQIECBAgECggAIgEFsUAQIECBAgQIAAAQIECBAgQIAAAQIECBCIElAAREnLIUCAAAECBAgQIECAAAECBAgQIECAAAECgQIKgEBsUQQIECBAgAABAgQIECBAgAABAgQIECBAIErgfwBakBHFpAyahQAAAABJRU5ErkJggg==" width="768" /></p>
<ul>
<li><span style="color:dodgerblue"><strong>Results & Interpretation</strong></span>: 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 <strong>higher</strong> than that in control group who didn’t receive any email ads.</li>
</ul>
</div>
<div id="method-2-holdout-test-1" class="slide section level2">
<h2>Method 2: Holdout Test</h2>
<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>
<ul>
<li><p><span style="color:dodgerblue"><strong>Results & Interpretation</strong></span>: the test group had a <strong>45.89%</strong> conversion rate in the first 10 days after the email was sent, while the hold out group had a <strong>40.1%</strong> conversion rate. The incremental increase in conversion rate is between <strong>+2.60%</strong> and <strong>+8.98%</strong> (95% confidence interval).</p></li>
<li><p><span style="color:dodgerblue"><strong>Implementation B</strong></span>: Shiny reporting engine: the ad response over time for different email holdout test and for different duration</p></li>
</ul>
</div>
<div id="method-3-marketing-mix-model-mmm" class="slide section level2">
<h2>Method 3: Marketing Mix Model (MMM)</h2>
<ul>
<li><span style="color:dodgerblue"><strong>Analysis</strong></span>: In order to investigate the correlations between total sales (trainsactions) and impression factors within a specific time period, we implemented linear regression model for marketing mix modeling.</li>
</ul>
<p>Model 1: Basic regression</p>
<p>Model 2: Add in a day of week variable</p>
<p>Model 3: Taking the advertising effect into consideration</p>
<p>Model 4: Interactions between Email and Social factors</p>
<ul>
<li><span style="color:dodgerblue"><strong>Implementation:Let’s take a look at Model 3</strong></span></li>
</ul>
<p>Account for the decay of advertising: An ad had its biggest <strong>advertising effect</strong> just after it is shown to the users and then the effect wears over the time.</p>
<p><img src="data:image/png;base64,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AAEEECABQB1AAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCBAARIAAR5UioQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAkA6gACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgEKkAAI8KBSJAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESABQBxBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQCFCABECAB5UiIYAAAggggAACCCCAAAIIIIAAAggggAACCCBAAoA6gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAgAIkAAI8qBQJAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAESANQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQCFCABEOBBpUgIIIAAAggggAACCCCAAAIIIIAAAggggAACCJAAoA4ggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBCgAAmAAA8qRUIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgAQAdQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQAFSAAEeFApEgIIIIAAAggggAACCCCAAAIIIIAAAggggAACJACoAwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIBChAAiDAg0qREEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAgAUAdQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgQAESAAEeVIqEAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAJAOoAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIBCpAACPCgUiQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBEgAUAcQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEAhQgARAgAeVIiGAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQAKAOoAAAggggAACCCCAAAIIIIAAAggggAACCCCAQIACJAACPKgUCQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABEgDUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEAhQgARDgQaVICCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgiQAKAOIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQoAAJgAAPKkVCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAEAHUAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEABUgABHhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiQAqAMIIIAAAggggAACCCCAAAIIIIAAAggggAACCAQoQAIgwINKkRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQIAFAHUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIEABEgABHlSKhAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAACQDqAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACAQqQAAjwoFIkBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRIAFAHEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAIUIAEQIAHlSIhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIEACgDqAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECAAiQAAjyoFAkBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARIA1AEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBAIUIAEQ4EGlSAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIkACgDiCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEKAACYAADypFQgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECABAB1AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBAAVIAAR4UCkSAggggAACCCCAAAIIIIAAAggggAACCCCAAAIkAKgDCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggEKEACIMCDSpEQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECABQB1AAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCBAARIAAR5UioQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAkA6gACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgEKkAAI8KBSJAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESABQBxBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQCFCABECAB5UiIYAAAggggAACCCCAAAIIIIAAAggggAACCCBAAoA6gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAgAIkAAI8qBQJAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAESANQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQCFCABEOBBpUgIIIAAAggggAACCCCAAAIIIIAAAggggAACCJAAoA4ggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBCgAAmAAA8qRUIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgAQAdQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQAFSAAEeFApEgIIIIAAAggggAACCCCAAAIIIIAAAggggAACJACoAwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIBChAAiDAg0qREEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAgAUAdQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgQAESAAEeVIqEAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAJAOoAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIBCpAACPCgUiQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBEgAUAcQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEAhQgARAgAeVIiGAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQAKAOoAAAggggAACCCCAAAIIIIAAAggggAACCCCAQIACJAACPKgUCQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABEgDUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEAhQgARDgQaVICCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgiQAKAOIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQoAAJgAAPKkVCAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAEAHUAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEABUgABHhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAiQAqAMIIIAAAggggAACCCCAAAIIIIAAAggggAACCAQoQAIgwINKkRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQIAFAHUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIEABEgABHlSKhAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAACQDqAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACAQqQAAjwoFIkBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRIAFAHEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAIUIAEQIAHlSIhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIEACgDqAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECAAiQAAjyoFAkBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARIA1AEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBAIUIAEQ4EGlSAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIkACgDiCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEKAACYAADypFQgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECABAB1AAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBAAVIAAR4UCkSAggggAACCCCAAAIIIIAAAggggAACCCCAAAIkAKgDCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggEKEACIMCDSpEQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECABQB1AAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCBAARIAAR5UioQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAkA6gACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgEKkAAI8KBSJAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESABQBxBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQCFCABECAB5UiIYAAAggggAACCCCAAAIIIIAAAggggAACCCBAAoA6gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAgAIkAAI8qBQJAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAESANQBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQCFCABEOBBpUgIIIAAAggggAACCCCAAAIIIIAAAggggAACCJAAoA4ggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBCgAAmAAA8qRUIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgAQAdQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQAFSAAEeFApEgIIIIAAAggggAACCCCAAAIIIIAAAggggAACJACoAwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIBCiwcoBlokhVCDz22GNu7ty5VbySlyCAAAIIIIAAAvUv0KtXL7fNNtvU/46yhwi0kgD3/60EzdsggAACCCCAQJsIcP//BTsJgC8sov1JN/977LFHtOWn4AgggAACCCAQvkCHDh3cvHnzXMeOHcMvLCVEoIwA9/9lgHgaAQQQQAABBBpegPv/Lw4hCYAvLKL9yVr+d+vWzX3jG9+I1oGCI4AAAggggECYApMmTXKLFy92n3zyCQmAMA8xpapQgPv/CsFYHQEEEEAAAQQaSoD7/+UPFwmA5T2i/k3B/z/84Q9RG1B4BBBAAAEEEAhPYM0112Sow/AOKyWqgQD3/zVAZBMIIIAAAgggUHcC3P8vf0hIACzv0ZC/ff7552706NHuww8/rGr/p02b5l/37rvvVvV6XoQAAggggAACCCCAAAIIIIAAAggggAACCCBQfwIkAOrvmFS8Ry+//LI755xzKn5d/gumTp2a/yd+RwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGhQARIADXrgcnd7++23dxMnTnRz5szJ/XPqn++55x6nicC6dOmS+jWsiAACCCCAAAIIIIAAAggggAACCCCAAAIIIFDfAiQA6vv4pN67IUOGpF43f8UZM2b4BED79u3zn+J3BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQYVaNeg+81uI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAQAkBEgAlcHgKAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIFGFSAB0KhHjv1GAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKCEAAmAEjg8hQACCCBQ/wJ33HGHe+utt+p/R9nDFheYN2+e+9a3vuXGjh3b4u/FGyCAAAIIIIAAAqELHHXUUe7II48MvZiUDwEEEAhegARA8IeYAiIQnsDkyZPdggULwisYJapY4Omnn3YHHXSQ++lPf1rxa3lBeALPPvus++tf/+quvfba8ApHiRBAAAEEEEAAgVYUePjhh90111zjJkyY4B544IFWfGfeCgEEEECg1gIr13qDbA8BBBBoSYEnn3zS7brrru6www5zN910U0u+VV1v++OPP3bHH3+8+/73v+/23Xffut7Xlty5//u///Obf/fdd1vybep+2x99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TUHnBNPBSecQV4FPBd90hW/aQyrWeVw5pGsPcXOE6PtF0oVvr/ND3OzBjU85btfy1FNPFcS//+c//ylvvfVWdmMaNWpk/p46daosWbIk+/lx48aZv3Mmys1+kX8kjsChQ4cE89UxxxwjxYsXT1z72WASIAESIAESIAESiIpARg6AAwcOmC8A7dq1k5o1a0qVKlWkcuXK2Y8KFSoIxNkSJUpIsWLF5LzzzpNZs2ZF1Vbe1xEC6Qo6KvjGTcigoJMyWOWQrsAXN3tId1yoYyxuHGgPqXHh1R7i5ghJ1x7i+n7h1R7iNj848jHH6WqWL19ehgwZInv37pUePXrImWeeadpTtWpVky8MttihQwe58847TajQp556yryuoYCcbjwrnzEBrP6HE6BUqVLGCZDxBXkBEiABEiABEiABEiCBAhEoUA6AvK70yCOPyP3335/Xy795/thjjxX98v2bF/kECfyXQLqCTlyFTgo6KYNQDumudE660KnjIm4caA+pcZHuPKnvvXETfGkPmdlD3OaH/36M4K+ACUDc/+KLL8wOAB2DuOWwYcNkzpw5sn79enniiSeya4EEwX369Mn+n38klwDD/yS379lyEiABEiABEiCBaAl4dgCsXbtWhg4damqPxF+///3vBTsCHn/8ccH24Msuu0x++OEHk/RrwYIFgtW7ixcvllq1akXbYt7degL6ZbKggq8KnXETtlTgS5dD3AQdtQfuAGDse0xeOi7StYe4jot054e4zZPpzg+lS5eW4447ziShxGcW/B2HohySbg9x6EsX2oAFPWPHjpWHH35Y5s6dm13lZs2ayYwZM+Tee++V6dOnS5EiRaRz587y9NNPm7+zD+QfiSVAB0Biu54NJwESIAESIAESiJiAZwcAknwhrj+2/ELgx5fOffv2yahRowQCAz78I74jyn333WdWBWEb8DPPPBNxk3l72wmokEGBL72kr3Fd4Zuu4Ksc4ib4pstBHWNx46DzQ0GFTsQYhgi1e/du856F2NVxKOnag46Lbdu2xaH52W1IlwM+l8AJgM8pGBsIZxKHki4HMICIu2PHDjl48KD5Ow4c2IZwCdSpU0fwyFkaNmwo48ePN2Fe9HtAztf5d7IJ0AGQ7P5n60mABEiABEiABKIj4DkHAFb3o1x33XVG/MffhQsXltNOO81s/dXX8TxWCF1zzTUycuRI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SUcddVSaOnVq+s1vfpOmTZuW5syZkxYsWJA9/T9mzJg0fvz4ztekSZPSQQcdlGIeAQsBAgQIECBAgAABAgQIECBAgAABAgQIEGimgABAndrDhw9P++67b/aq81C7EyBAgAABAgQIECBAgAABAgQIECBAgACBpgmYBLhp1E5EgAABAgQIECBAgAABAgQIECBAgAABAgSaJ6AHQPOsS3+m+++/P5166qn95vPRRx9Nd911V1p//fXTSiuJIfULVtAOMaH0U089ldZee+202mqrFZSqZGoRmDdvXrZbTPZtaZ7A888/nw2xNm7cOEOpNY89LVu2LLvXxLB2I0eObOKZnWru3Llpww03TK997WthFCzwr3/9q+AUJUdgaAio/5e7HNX/W1c+6v+tsVf/b427+n9r3OOs6v+Ns1f/7247rFKp6Oi+yrd2E7j55pvTG9/4xna7bNdLgAABAgQItJFAPLSwcOHCtPrqq7fRVbtUAtUFbrrppmyusupbrSVAgAABAgQIDH4B9f+XylAA4CWLtv20dOnS9I1vfCPNnz+/JoNvfvObKZ4WesUrXpE23njjmo6x04oLzJ49O919991pgw02SDHBtKU5AhEj/clPfpKd7OCDD27OSZ0lE4iJ1qPXyytf+coUvQAszRF4/PHH03333Zc22WSTtNNOOzXnpM6SlixZkm699das18V5551HpAEC2223XTrwwAMbkLIkCQw+AfX/wVFm6v+tKSf1/9a4x1nV/1tjr/7fGnf1/8a7q/+/ZCwA8JKFTzUKHHvssSmCAFdffXU65phjajzKbisqcMMNN6TDDz88HXbYYekHP/jBiibn+BoFojtkTP4dkeP4Y9nSPIE3velN6cYbb0xTpkxJhxxySPNO3OZnuvLKK9Pxxx+fjjvuuPT1r3+9zTWad/nR/Xfs2LFp3XXXTc8880zzTuxMBAgQqEFA/b8GpAbsov7fANQaklT/rwGpQbuo/zcItp9k1f/7AWrQZvX/BsFKtqqAAdyrslhJgAABAgQIECBAgAABAgQIECBAgAABAgQGt4AAwOAuP7knQIAAAQIECBAgQIAAAQIECBAgQIAAAQJVBQQAqrJYSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBreAAMDgLj+5J0CAAAECBAgQIECAAAECBAgQIECAAAECVQUEAKqyWEmAAAECBAgQIECAAAECBAgQIECAAAECBAa3gADA4C4/uSdAgAABAgQIECBAgAABAgQIECBAgAABAlUFBACqslhJgAABAgQIECBAgAABAgQIECBAgAABAgQGt4AAwOAuP7knQIAAAQIECBAgQIAAAQIECBAgQIAAAQJVBQQAqrJYSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEBreAAMDgLj+5J0CAAAECBAgQIECAAAECBAgQIECAAAECVQUEAKqyWEmAAAECBAgQIECAAAECBAgQIECAAAECBAa3gADA4C4/uSdAgAABAgQIECBAgAABAgQIECBAgAABAlUFBACqslhJgAABAgQIECBAgAABAgQIECBAgAABAgQGt8CIwZ19uW+FwJprrpmddo011mjF6dv2nLl37t+2EE2+8JVWWimNGjUqDR8+vMlndrr8t56/E2mOgHtNc5x7nmXVVVdNI0aMSLl/z+2+EyBAoJUC+b/F7lHNLYXcO/dv7tnb92zq/60r+/y3nr+3LiftdWb3mtaUt/p/a9zb9azDOipLu1686x6YwNy5c9MvfvGLdOihh2oUHRjhgI6K/1WnTJmSXvOa16Rx48YNKA0HDUxg2rRpKf4Q2HXXXQeWgKMGJDB79uz0u9/9Lh1yyCFp2LBhA0rDQfULLF26NP3oRz9K++yzTxo9enT9CThiwAJ33nlnWnvttdP2228/4DQcSIAAgUYIqP83QrX/NNX/+zdq1B7q/42S7Ttd9f++fRq1Vf2/UbL9p6v+37+RPYoREAAoxlEqBAgQIECAAAECBAgQIECAAAECBAgQIECgVALmAChVccgMAQIECBAgQIAAAQIECBAgQIAAAQIECBAoRkAAoBhHqRAgQIAAAQIECBAgQIAAAQIECBAgQIAAgVIJCACUqjhkhgABAgQIECBAgAABAgQIECBAgAABAgQIFCMgAFCMo1QIECBAgAABAgQIECBAgAABAgQIECBAgECpBAQASlUcMkOAAAECBAgQIECAAAECBAgQIECAAAECBIoREAAoxlEqBAgQIECAAAECBAgQIECAAAECBAgQIECgVAICAKUqDpkhQIAAAQIECBAgQIAAAQIECBAgQIAAAQLFCAgAFOMoFQIECBAgQIAAAQIECBAgQIAAAQIECBAgUCoBAYBSFYfMECBAgAABAgQIECBAgAABAgQIECBAgACBYgQEAIpxlAoBAgQIECBAgAABAgQIECBAgAABAgQIECiVgABAqYpDZggQIECAAAECBAgQIECAAAECBAgQIECAQDECAgDFOEqFAAECBAgQIECAAAECBAgQIECAAAECBAiUSkAAoFTFITMECBAgQIAAAQIECBAgQIAAAQIECBAgQKAYAQGAYhylQoAAAQIECBAgQIAAAQIECBAgQIAAAQIESiUgAFCq4pAZAgQIECBAgAABAgQIECBAgAABAgQIECBQjIAAQDGOUiFAgAABAgQIECBAgAABAgQIECBAgAABAqUSEAAoVXHIDAECBAgQIECAAAECBAgQIECAAAECBAgQKEZAAKAYR6kQIECAAAECBAgQIECAAAECBAgQIECAAIFSCQgAlKo4ZIYAAQIECBAgQIAAAQIECBAgQIAAAQIECBQjIABQjGNbpfKvf/0rdXR0tNU1N/Nily5dmp566qn0/PPP13Va5VIX13I7L1y4cLl1tazgXotS7/s899xzvW/sY0vcg+r9f6SP5Np2UzjGPaeee7rffGt+Ltxb4+6sBAj8W8A9qLG/BPX/xvr2lrr6f28yjV2v/t9Y3/5SV//vT6g82/3bW56yGAo5EQAYCqXYhGuYPXt2eu9735vGjx+fRo0aldZbb710yCGHpG984xtNOHt7neJTn/pU2mCDDdI111zT74Url36Jet1h0aJF6dOf/nR6xStekdZYY4201lprpbFjx6Y99tgjTZ48udfjYgP3Pnn63Tht2rR04IEHZt5hP2HChHT00UenG2+8sd9jf/CDH6RXvvKVafXVV8/KLcrvpJNOSo8//ni/x9qhu8DixYuz3/+IESPSl7/85e4be3zzm+8BUsfX0047Le299959vk444YSqKXKvymIlAQJNEnAPahJ05TTq/82xVv9vjnO1s6j/V1Np/jr1/+aYq/83x9lZ6hSoRP8sBPoUmDFjRkelYTQe+c9e8bnSYNT5/aMf/Wifx9tYu8BNN93UsfLKK2e2V1xxRZ8HKpc+efrcWGks7njZy17W+RseOXJkxyabbNKx0korda6rBLg6XnjhheXS4b4cSV0rLrnkko5hw4ZlzsOHD8/KYdVVV82+x/rPfe5zvaZ38sknd5ZP3IMqgcjO75tuumnHX/7yl16PtWF5gVNOOaXT70tf+tLyO/xnjd98rzQ1bdhss806nfN/R3u+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QIAAAQIECBAgQIAAAQIECBAgQIAAAQKtFxAAaH0ZyAEBAgQIECBAgAABAgQIECBAgAABAgQIEChcQACgcFIJEiBAgAABAgQIECCd3WqmAABAAElEQVRAgAABAgQIECBAgACB1gsIALS+DOSAAAECBAgQIECAAAECBAgQIECAAAECBAgULiAAUDipBAkQIECAAAECBAgQIECAAAECBAgQIECAQOsFBABaXwZyQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEChcQACicVIIECBAgQIAAAQIECBAgQIAAAQIECBAgQKD1AgIArS8DOSBAgAABAgQIECBAgAABAgQIECBAgAABAoULCAAUTipBAgQIECBAgAABAgQIECBAgAABAgQIECDQegEBgNaXgRwQIECAAAECBAgQIECAAAECBAgQIECAAIHCBQQACieVIAECBAgQIECAAAECBAgQIECAAAECBAgQaL2AAEDry0AOCBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4QICAIWTSpAAAQIECBAgQIAAAQIECBAgQIAAAQIECLReQACg9WUgBwQIECBAgAABAgQIECBAgAABAgQIECBAoHABAYDCSSVIgAABAgQIECBAgAABAgQIECBAgAABAgRaLyAA0PoykAMCBAgQIECAAAECBAgQIECAAAECBAgQIFC4gABA4aQSJECAAAECBAgQIECAAAECBAgQIECAAAECrRcQAGh9GcgBAQIECBAgQIAAAQIECBAgQIAAAQIECBAoXEAAoHBSCRIgQIAAAQIECBAgQIAAAQIECBAgQIAAgdYLCAC0vgzkgAABAgQIECBAgAABAgQIECBAgAABAgQIFC4gAFA4qQQJECBAgAABAgQIECBAgAABAgQIECBAgEDrBQQAWl8GckCAAAECBAgQIECAAAECBAgQIECAAAECBAoXEAAonFSCBAgQIECAAAECBAgQIECAAAECBAgQIECg9QICAK0vAzkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKFCwgAFE4qQQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HoBAYDWl4EcECBAgAABAgQIECBAgAABAgQIECBAgACBwgUEAAonlSABAgQIECBAgAABAgQIECBAgAABAgQIEGi9gABA68tADggQIECAAAECBAgQIECAAAECBAgQIECAQOECAgCFk0qQAAECBAgQIECAAAECBAgQIECAAAECBAi0XkAAoPVlIAcECBAgQIAAAQIECBAgQIAAAQIECBAgQKBwAQGAwkklSIAAAQIECBAgQIAAAQIECBAgQIAAAQIEWi8gAND6MpADAgQIECBAgAABAgQIECBAgAABAgQIECBQuIAAQOGkEiRAgAABAgQIECBAgAABAgQIECBAgAABAq0XGNH6LMgBAQIECLRSoKOjIy1btmxAWRg2bFhaaaV/x5IjjUgrvsd6CwECBAgQIECAAAEC5RNQ/y9fmcgRAQIEGimgB0AjdaVNgACBQSBw9dVXpxEjRgzoddhhh3Ve4Rve8IYsjfe85z2d63wgQIAAAQIECBAgQKBcAur/5SoPuSFAgECjBQQAGi0sfQIECBAgQIAAAQIECBAgQIAAAQIECBAg0AIBQwC1AN0pCRAgUCaBN77xjelXv/rVcll6+umn0+GHH56t//CHP5wOPfTQ5fZZd911O9ftueeeaZ111km77rpr5zofCBAgQIAAAQIECBAol4D6f7nKQ24IECDQaIFhlbHfOhp9EukTIECAwOATePzxx9Omm26aZfzyyy9P73rXuwbfRcgxAQIECBAgQIAAAQI1Caj/18RkJwIECAw6AUMADboik2ECBAgMfoGlS5emePW1LFq0qK/NVbctWbKk33SrHmglAQIECBAgQIAAAQINE1D/bxithAkQINCvgABAv0R2IECAAIFaBE4++eS0++67p8985jOdu99zzz3ZuqOOOipb993vfjcdfPDBacyYMWn06NHpoIMOSt/5znc69//1r3+djjzyyDRu3Li0+uqrpwkTJmTpvfjii5379Pwwa9asdMIJJ6Qdd9wxjRo1Kq211lrp1a9+dTrzzDPT4sWLe+7uOwECBAgQIECAAAECBQio/xeAKAkCBAg0QcAcAE1AdgoCBAi0g8CDDz6YogF/++2377zcf/zjH9m6efPmZQ35p512WrZtpZVWSsuWLUs33XRTuuWWW9LYsWOz9THPwPPPP59GjBiRYoS6Rx99NMUxTz75ZLrkkks6080/3HDDDVnj/7PPPputWm+99VL0HPjd736XvX74wx+m733ve2mbbbbJD/FOgAABAgQIECBAgEABAur/BSBKggABAk0Q0AOgCchOQYAAgXYXmDFjRtaQHw38v/nNb9I///nPdM0116QtttgiCwTEU/+HHHJI2mOPPdIDDzyQPbkf77vttltG9+UvfznFk/5dl4ceeii97W1vS9H4v99++6X4HhMXz58/Pws6RNrTp0/P9ulvuKGu6fpMgAABAgQIECBAgMCKCaj/r5ifowkQIFCkgABAkZrSIkCAAIGqAtEAv8suu2TD/bzmNa9Jq622WophgU466aRs/+ghsPHGG6cbb7wxvfzlL0/RQyDer7766mx7DAEUTxh1XT74wQ+mGPN/5513znoSbLnlltnmODYCBxFoWGedddJ9992XvvrVr3Y91GcCBAgQIECAAAECBBoooP7fQFxJEyBAoE4BAYA6wexOgAABAgMTiKF8ouG/67Lnnnt2fo1x/FdZZZXO7/Fh8803T8OHD8/WPfbYY53bYmign/zkJ9n3s846K6288sqd2/IPMRzQO97xjuzr17/+9Xy1dwIECBAgQIAAAQIEmiCg/t8EZKcgQIBADQLmAKgByS4ECBAgsOICXecGyFOLYXrypevnfF00/seEwXPmzEkvvPBCvjpFl+J8icb/adOm5V+7vceEwLHE8EAWAgQIECBAgAABAgSaJ6D+3zxrZyJAgEBfAgIAfenYRoAAAQKFCcRwPH0to0ePrro5hvTpuXRt0D/ooIN6bl7u+4IFC7IgQvQKsBAgQIAAAQIECBAg0HgB9f/GGzsDAQIEahEQAKhFyT4ECBAgsMIC1YbpGWii0aAfSwwZFBMA17IsWrSolt3sQ4AAAQIECBAgQIBAAQLq/wUgSoIAAQIFCAgAFIAoCQIECBBorkA+4W9MDvy9730vjRo1qrkZcDYCBAgQIECAAAECBJomoP7fNGonIkBgCAosP67CELxIl0SAAAECQ0tg4sSJ2QUtW7Ys3X333b1e3PTp09P111+fzREQ+1oIECBAgAABAgQIEBh8Aur/g6/M5JgAgfIICACUpyzkhAABAgRqFNh2223TZpttlu39yU9+supRHR0d6V3velc64ogj0oknnpiqzSVQ9UArCRAgQIAAAQIECBAolYD6f6mKQ2YIEBhkAgIAg6zAZJcAAQIEUho5cmT6/Oc/n1FMnTo1vec970n/+te/OmmeffbZ9L73vS/ddddd2boPfehDndt8IECAAAECBAgQIEBgcAmo/w+u8pJbAgTKJSAAUK7ykBsCBAgQqFHg8MMPzxr+Y/fLL7886xHwxje+Me2zzz5p3Lhx6dJLL81SikDA0UcfXWOqdiNAgAABAgQIECBAoIwC6v9lLBV5IkBgMAgIAAyGUpJHAgQIEKgqcNlll6Uf//jHKcYEnTt3brr55ptT9AiIyYG32GKLdOWVV6ZLLrmk6rFWEiBAgAABAgQIECAwuATU/wdXecktAQLlEBhWGSO5oxxZkQsCBAgQIDBwgYULF6YHH3wwLV68OG2++eZpo402Mu7/wDkdSYAAAQIECBAgQKDUAur/pS4emSNAoEQCAgAlKgxZIUCAAAECBAgQIECAAAECBAgQIECAAAECRQkYAqgoSekQIECAAAECBAgQIECAAAECBAgQIECAAIESCQgAlKgwZIUAAQIECBAgQIAAAQIECBAgQIAAAQIECBQlIABQlKR0CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAiQQEAEpUGLJCgAABAgQIECBAgAABAgQIECBAgAABAgSKEhAAKEpSOgQIECBAgAABAgQIECBAgAABAgQIECBAoEQCAgAlKgxZIUCAAAECBAgQIECAAAECBAgQIECAAAECRQkIABQlKR0CBAgQIECAAAECBAgQIECAAAECBAgQIFAiAQGAEhWGrBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgaIEBACKkpQOAQIECBAgQIAAAQIECBAgQIAAAQIECBAokYAAQIkKQ1YIECBAgAABAgQIECBAgAABAgQIECBAgEBRAgIARUlKhwABAgQIECBAgAABAgQIECBAgAABAgQIlEhAAKBEhSErBAgQIECAAAECBAgQIECAAAECBAgQIECgKAEBgKIkpUOAAAECBAgQIECAAAECBAgQIECAAAECBEokIABQosKQFQIECBAgQIAAAQIECBAgQIAAAQIECBAgUJSAAEBRktIhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlEhAAKFFhyAoBAgQIECBAgAABAgQIECBAgAABAgQIEChKQACgKEnpECBAgAABAgQIECBAgAABAgQIECBAgACBEgkIAJSoMGSFAAECBAgQIECAAAECBAgQIECAAAECBAgUJSAAUJSkdAgQIECAAAECBAgQIECAAAECBAgQIECAQIkEBABKVBiyQoAAAQIECBAgQIAAAQIECBAgQIAAAQIEihIQAChKUjoECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEAgIAJSoMWSFAgAABAgQIECBAgAABAgQIECBAgAABAkUJCAAUJSkdAgQIECBAgAABAgQIECBAgAABAgQIECBQIgEBgBIVhqwQIECAAAECBAgQIECAAAECBAgQIECAAIGiBAQAipKUDgECBAgQIECAAAECBAgQIECAAAECBAgQKJGAAECJCkNWCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAUQICAEVJSocAAQIECBAgQIAAAQIECBAgQIAAAQIECJRIQACgRIUhKwQIECBAgAABAgQIECBAgAABAgQIECBAoCgBAYCiJKVDgAABAgQIECBAgAABAgQIECBAgAABAgRKJCAAUKLCkBUCBAgQIECAAAECBAgQIECAAAECBAgQIFCUgABAUZLSIUCAAAECBAgQIECAAAECBAgQIECAAAECJRIQAChRYcgKAQIECBAgQIAAAQIECBAgQIAAAQIECBAoSkAAoChJ6RAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIJCACUqDBkhQABAgQIECBAgAABAgQIECBAgAABAgQIFCUgAFCUpHQIECBAgAABAgQIECBAgAABAgQIECBAgECJBAQASlQYskKAAAECBAgQIECAAAECBAgQIECAAAECBIoSEAAoSlI6BAgQIECAAAECBAgQIECAAAECBAgQIECgRAICACUqDFkhQIAAAQIECBAgQIAAAQIECBAgQIAAAQJFCQgAFCUpHQIECBAgQIAAAQIECBAgQIAAAQIECBAgUCIBAYASFYasECBAgAABAgQIECBAgAABAgQIECBAgACBogQEAIqSlA4BAgQIECBAgAABAgQIECBAgAABAgQIECiRgABAiQpDVggQIECAAAECBAgQIECAAAECBAgQIECAQFECAgBFSUqHAAECBAgQIECAAAECBAgQIECAAAECBAiUSEAAoESFISsECBAgQIAAAQIECBAgQIAAAQIECBAgQKAoAQGAoiSlQ4AAAQIECBAgQIAAAQIECBAgQIAAAQIESiQgAFCiwpAVAgQIECBAgAABAgQIECBAgAABAgQIECBQlIAAQFGS0iFAgAABAgQIECBAgAABAgQIECBAgAABAiUSEAAoUWHICgECBAgQIECAAAECBAgQIECAAAECBAgQKEpAAKAoSekQIECAAAECBAgQIECAAAECBAgQIECAAIESCQgAlKgwZIUAAQIECBAgQIAAAQIECBAgQIAAAQIECBQlIABQlKR0CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAiQQEAEpUGLJCgAABAgQIECBAgAABAgQIECBAgAABAgSKEhAAKEpSOgQIECBAgAABAgQIECBAgAABAgQIECBAoEQCAgAlKgxZIUCAAAECBAgQIECAAAECBAgQIECAAAECRQkIABQlKR0CBAgQIECAAAECBAgQIECAAAECBAgQIFAiAQGAEhWGrBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgaIEBACKkpQOAQIECBAgQIAAAQIECBAgQIAAAQIECBAokYAAQIkKQ1YIECBAgAABAgQIECBAgAABAgQIECBAgEBRAgIARUlKhwABAgQIECBAgAABAgQIECBAgAABAgQIlEhAAKBEhSErBAgQIECAAAECBAgQIECAAAECBAgQIECgKAEBgKIkpUOAAAECBAgQIECAAAECBAgQIECAAAECBEokIABQosKQFQIECBAgQIAAAQIECBAgQIAAAQIECBAgUJSAAEBRktIhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlEhAAKFFhyAoBAgQIECBAgAABAgQIECBAgAABAgQIEChKQACgKEnpECBAgAABAgQIECBAgAABAgQIECBAgACBEgkIAJSoMGSFAAECBAgQIECAAAECBAgQIECAAAECBAgUJSAAUJSkdAgQIECAAAECBAgQIECAAAECBAgQIECAQIkEBABKVBiyQoAAAQIECBAgQIAAAQIECBAgQIAAAQIEihIQAChKUjoECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEAgIAJSoMWSFAgAABAgQIECBAgAABAgQIECBAgAABAkUJCAAUJSkdAgQIECBAgAABAgQIECBAgAABAgQIECBQIgEBgBIVhqwQIECAAAECBAgQIECAAAECBAgQIECAAIGiBAQAipKUDgECBAgQIECAAAECBAgQIECAAAECBAgQKJGAAECJCkNWCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAUQICAEVJSocAAQIECBAgQIAAAQIECBAgQIAAAQIECJRIQACgRIUhKwQIECBAgAABAgQIECBAgAABAgQIECBAoCgBAYCiJKVDgAABAgQIECBAgAABAgQIECBAgAABAgRKJCAAUKLCkBUCBAgQIECAAAECBAgQIECAAAECBAgQIFCUgABAUZLSIUCAAAECBAgQIECAAAECBAgQIECAAAECJRIQAChRYcgKAQIECBAgQIAAAQIECBAgQIAAAQIECBAoSkAAoChJ6RAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIJCACUqDBkhQABAgQIECBAgAABAgQIECBAgAABAgQIFCUgAFCUpHQIECBAgAABAgQIECBAgAABAgQIECBAgECJBAQASlQYskKAAAECBAgQIECAAAECBAgQIECAAAECBIoSEAAoSlI6BAgQIECAAAECBAgQIECAAAECBAgQIECgRAICACUqDFkhQIAAAQIECBAgQIAAAQIECBAgQIAAAQJFCQgAFCUpHQIECBAgQIAAAQIECBAgQIAAAQIECBAgUCIBAYASFYasECBAgAABAgQIECBAgAABAgQIECBAgACBogQEAIqSlA4BAgQIECBAgAABAgQIECBAgAABAgQIECiRgABAiQpDVggQIECAAAECBAgQIECAAAECBAgQIECAQFECAgBFSUqHAAECBAgQIECAAAECBAgQIECAAAECBAiUSEAAoESFISsECBAgQIAAAQIECBAgQIAAAQIECBAgQKAoAQGAoiSlQ4AAAQIECBAgQIAAAQIECBAgQIAAAQIESiQgAFCiwpAVAgQIECBAgAABAgQIECBAgAABAgQIECBQlIAAQFGS0iFAgAABAgQIECBAgAABAgQIECBAgAABAiUSEAAoUWHICgECBAgQIECAAAECBAgQIECAAAECBAgQKEpAAKAoSekQIECAAAECBAgQIECAAAECBAgQIECAAIESCQgAlKgwZIUAAQIECBAgQIAAAQIECBAgQIAAAQIECBQlIABQlKR0CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAiQQEAEpUGLJCgAABAgQIECBAgAABAgQIECBAgAABAgSKEhAAKEpSOgQIECBAgAABAgQIECBAgAABAgQIECBAoEQCAgAlKgxZIUCAAAECBAgQIECAAAECBAgQIECAAAECRQkIABQlKR0CBAgQIECAAAECBAgQIECAAAECBAgQIFAiAQGAEhWGrBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgaIEBACKkpQOAQIECBAgQIAAAQIECBAgQIAAAQIECBAokYAAQIkKQ1YIECBAgAABAgQIECBAgAABAgQIECBAgEBRAgIARUlKhwABAgQIECBAgAABAgQIECBAgAABAgQIlEhAAKBEhSErBAgQIECAAAECBAgQIECAAAECBAgQIECgKAEBgKIkpUOAAAECBAgQIECAAAECBAgQIECAAAECBEokIABQosKQFQIECBAgQIAAAQIECBAgQIAAAQIECBAgUJSAAEBRktIhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlEhAAKFFhyAoBAgQIECBAgAABAgQIECBAgAABAgQIEChKQACgKEnpECBAgAABAgQIECBAgAABAgQIECBAgACBEgkIAJSoMGSFAAECBAgQIECAAAECBAgQIECAAAECBAgUJSAAUJSkdAgQIECAAAECBAgQIECAAAECBAgQIECAQIkEBABKVBiyQoAAAQIECBAgQIAAAQIECBAgQIAAAQIEihIQAChKUjoECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEAgIAJSoMWSFAgAABAgQIECBAgAABAgQIECBAgAABAkUJCAAUJSkdAgQIECBAgAABAgQIECBAgAABAgQIECBQIgEBgBIVhqwQIECAAAECBAgQIECAAAECBAgQIECAAIGiBAQAipKUDgECBAgQIECAAAECBAgQIECAAAECBAgQKJGAAECJCkNWCBAgQIAAAQIECBAgQIAAAQIECBAgQIBAUQICAEVJSocAAQIECBAgQIAAAQIECBAgQIAAAQIECJRIQACgRIUhKwQIECBAgAABAgQIECBAgAABAgQIECBAoCgBAYCiJKVDgAABAgQIECBAgAABAgQIECBAgAABAgRKJCAAUKLCkBUCBAgQIECAAAECBAgQIECAAAECBAgQIFCUgABAUZLSIUCAAAECBAgQIECAAAECBAgQIECAAAECJRIQAChRYcgKAQIECBAgQIAAAQIECBAgQIAAAQIECBAoSkAAoChJ6RAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIJCACUqDBkhQABAgQIECBAgAABAgQIECBAgAABAgQIFCUgAFCUpHQIECBAgAABAgQIECBAgAABAgQIECBAgECJBAQASlQYskKAAAECBAgQIECAAAECBAgQIECAAAECBIoSEAAoSlI6BAgQIECAAAECBAgQIECAAAECBAgQIECgRAICACUqDFkhQIAAAQIECBAgQIAAAQIECBAgQIAAAQJFCQgAFCUpHQIECBAgQIAAAQIECBAgQIAAAQIECBAgUCIBAYASFYasECBAgAABAgQIECBAgAABAgQIECBAgACBogQEAIqSlA4BAgQIECBAgAABAgQIECBAgAABAgQIECiRgABAiQpDVggQIECAAAECBAgQIECAAAECBAgQIECAQFECAgBFSUqHAAECBAgQIECAAAECBAgQIECAAAECBAiUSEAAoESFISsECBAgQIAAAQIECBAgQIAAAQIECBAgQKAoAQGAoiSlQ4AAAQIECBAgQIAAAQIECBAgQIAAAQIESiQgAFCiwpAVAgQIECBAgAABAgQIECBAgAABAgQIECBQlIAAQFGS0iFAgAABAgQIECBAgAABAgQIECBAgAABAiUSEAAoUWHICgECBAgQIECAAAECBAgQIECAAAECBAgQKEpAAKAoSekQIECAAAECBAgQIECAAAECBAgQIECAAIESCQgAlKgwZIUAAQIECBAgQIAAAQIECBAgQIAAAQIECBQlIABQlKR0CBAgQIAAAQIECBAgQIAAAQIECBAgQIBAiQQEAEpUGLJCgAABAgQIECBAgAABAgQIECBAgAABAgSKEhAAKEpSOgQIECBAgAABAgQIECBAgAABAgQIECBAoEQCAgAlKgxZIUCAAAECBAgQIECAAAECBAgQIECAAAECRQkIABQlKR0CBAgQIECAAAECBAgQIECAAAECBAgQIFAiAQGAEhWGrBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgaIEBACKkpQOAQIECBAgQIAAAQIECBAgQIAAAQIECBAokYAAQIkKQ1YIECBAgAABAgQIECBAgAABAgQIECBAgEBRAgIARUlKhwABAgQIECBAgAABAgQIECBAgAABAgQIlEhAAKBEhSErBAgQIECAAAECBAgQIECAAAECBAgQIECgKAEBgKIkpUOAAAECBAgQIECAAAECBAgQIECAAAECBEokIABQosKQFQIECBAgQIAAAQIECBAgQIAAAQIECBAgUJSAAEBRktIhQIAAAQIECBAgQIAAAQIECBAgQIAAAQIlEhAAKFFhyAoBAgQIECBAgAABAgQIECBAgAABAgQIEChKQACgKEnpECBAgAABAgQIECBAgAABAgQIECBAgACBEgkIAJSoMGSFAAECBAgQIECAAAECBAgQIECAAAECBAgUJSAAUJSkdAgQIECAAAECBAgQIECAAAECBAgQIECAQIkEBABKVBiyQoAAAQIECBAgQIAAAQIECBAgQIAAAQIEihIQAChKUjoECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEAgIAJSoMWSFAgAABAgQIECBAgAABAgQIECBAgAABAkUJCAAUJSkdAgQIECBAgAABAgQIECBAgAABAgQIECBQIgEBgBIVhqwQIECAAAECBAgQIECAAAECBAgQIECAAIGiBEYUlZB0BrfAz3/+8zRv3rzBfRFyT4AAAQIECBDoRWDixIlphx126GWr1QTaT0D9v/3K3BUTIECAAIF2ElD/f6m0BQBesmjbT1H533fffdv2+l04AQIECBAgMPQFRo4cmebPn59WXXXVoX+xrpBAPwLq//0A2UyAAAECBAgMegH1/5eKUADgJYu2/ZQ/+T9+/Pi02267ta2DCydAgAABAgSGpsCUKVPS4sWL0/PPPy8AMDSL2FXVKaD+XyeY3QkQIECAAIFBJaD+3724BAC6e7T1t2j8nzx5clsbuHgCBAgQIEBg6AmMGTPGUIdDr1hdUQEC6v8FIEqCAAECBAgQKJ2A+n/3IjEJcHcP3wgQIECAAAECBAgQIECAAAECBAgQIECAwJAQEAAYEsXoIggQIECAAAECBAgQIECAAAECBAgQIECAQHcBAYDuHr4RIECAAAECBAgQIECAAAECBAgQIECAAIEhISAAMCSK0UUQIECAAAECBAgQIECAAAECBAgQIECAAIHuAgIA3T18I0CAAAECBAgQIECAAAECBAgQIECAAAECQ0JgxJC4CheR5s6dm+bPnz8gidmzZ2fHdXR0DOh4BxEgQIAAAQIECBAgQIAAAQIECBAgQIBA+QQEAMpXJnXn6KGHHkrbb799WrJkSd3Hdj3g9ttv7/rVZwIECBAgQIAAAQIECBAgQIAAAQIECBAYxAICAIO48PKsjxkzJu2yyy7p6aefzlfV9f7MM8+kf/zjH3UdM9R3Pumkk9Lo0aPTpz71qaF+qa6PAIE6BU488cT0z3/+M33nO9+p80i7EyBAgAABAgQIlF1g0aJF6eabb87+Htx7771XKLt/+9vf0nvf+9608sorp4MOOih7bbLJJiuUpoMJECBAgEC9AsMqw74Y96VetSG2/4c//OH0uc99Lm200UbpiSeeGGJXV//lREBkvfXWS8OHD0/PP/98VlmrPxVHECAwFAWip9Wqq66a4p/Op556Kq2//vpD8TJdE4EhJxAPS8ybNy89++yzWYPOkLtAF0SgToHvf//76S1veUv67//+7zR58uQ6j7Z7uwvMmjUrzZgxIz333HMpGsvjb6Z4Vfs8duzYtPXWW6dtttkmbbXVVlk9qox+S5cuTbfddlu69tpr0w9+8IO0cOHCLJsnn3xy+sxnPpNWWWWVurN96623pre//e3Zvz1dD95xxx07gwGvec1rsr87u25f0c8vvPBC+te//pXWXnvtFU2qsOPDd8GCBVme4u9sCwECBBotoP7fXVgPgO4evhHInuwNhqikPPLII1mFFQsBAgRCIP64zePmMfyaAIDfBQECBAgQKLfA4sWL05///Oes8TF68PX1WmONNbJG6mio3nLLLdPLXvayNGJEef9kjrncHnjggTR9+vSsjjJx4sTOhvaRI0eucMEsW7Ys/fWvf0333HNP9rr33nuz94H2PF9ppZXSZptt1hkQyAMDMZxtBApasdx1113p29/+dvre977XrUf9zjvvnB588MF0ySWXpDvvvDPbPmHChJqyGHXFCy+8MJ1xxhkpDA855JD05je/Of3kJz9JP/3pT9P999+fvS644IK07rrrpgMOOCALCMR79EJfkeWWW27JehzEg30HH3xwOuGEE7L0G9HoHg368f/Wn/70p+x3EkH2WBdzE+bv+ef4/y6WN7zhDen//u//VuQSHUuAAAECAxAob21mABfjEAJFCEQDX75EA19UTC0ECBAIgZ73h9133x0MAQIECBAgUBKBeIDnj3/8Y5o2bVrnKxpb44nogSzR+B9BgDwgEO/x2m677VIM4zJs2LCBJFv3MTFcazRGR0N/NPjnjf7Rc7naEg3tke946j5/xd80EdSIBul4Ojye3s9fPb8//PDDKRr777vvvmyfnueIRuqXv/zlaa211kqrrbZa9ooekj0/x7q///3vWSPxX/7ylxTpxpA48YqG6nwJ56OPPjprMN98883z1Q15j4BQ5CUa/ONp/8hLvoTV//zP/2RP7YdV/I6OOOKIdPfdd6cICFx55ZXp8MMPz3ev+h49B97xjndkvQji93H22WenT3ziE9lv5bjjjsvm7bvjjjvSj3/84ywgEH9vRgAiXhG0efe7351OP/30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F2AGQOiGHAEBBBBILEAAILFIEn/37NnTPNunTx9p3bq16JoAV69eTWLL65/SEUIDBw6Uhg0bmu3btWsnuiYAxZkCgeb41laQ4sOZ15JaIRBugUACADrKUVO/6ehRHSFKQQABBBBwn0A41gDLmTOn2DXA3CcQeo1ZADh0Q46AgBcFmAHgxatOmxFAINICLALsh3DdunWlc+fOMmzYMBkzZox5aCofTQOjiwJnz55dsmTJYqYAHz9+XPSh04A1V6gNFFStWlV0JBHFuQKBdPDpNdcPJjot8ciRIyYHrHNbRs0QQCBUgUDuD9r5r+kfNECoHT8lS5YM9fTsjwACCCAQRQG954drDbCpU6eKrgFm08NFsRkxP5WdAcACwDG/FFQAAVcJMAPAVZeLyiKAgEsECAD4eaGGDh0q5cuXl759+5oOnT179og+fJVixYpJly5dpEWLFmZEqK/teT12AraDz58c31pL/SK3bNky08mni8BREEAgfgUCmSGkChog1gCApoEgABC/7wtahgAC8SmQeA2wDBkyBNVQr68BZgMALAAc1NuHnRDwrAAzADx76Wk4AghEUIAAQAC4zZs3lyZNmsi8efPkt99+M52/OvpbV6fXBYKzZs0qefLkufbQPKC1atUSXUeA4nwBGwDwZw0AbY0NAGzatEkqVark/AZSQwQQCFrA3h/8DRBq8Pe7776TjRs3Su3atYM+LzsigAACCERfwK4B9vvvv5s1wF599dWAK+H1NcB0/bQNGzaY70GlSpUK2I8dEEDAuwLMAPDutaflCCAQOQECAAHapkqVSqpVq2YeAe7K5g4XsB18/gYASpcubVq0cuVKh7eM6iGAQKgCgd4fypYta07J/SFUefZHAAEEYiOga4DVq1dPdA0wXderVatWZsCHr4E9uu348ePNrGFNBerVNcB0gMyFCxfMjLjEiybH5opyVgQQcIuADQCcOnXKLVWmnggggIDjBQgAOP4SUcFoCQTawVeuXDlTNTr4onWFOA8CsRPg/hA7e86MAAIIxEKANcBCUyf9T2h+7I2AlwV0PS1NvaZZFs6cOSMEEb38bqDtCCAQLgECAOGSTHCcyZMny5YtW6R69epy7733JniFX50sEGiOb10TQot+wdERXr5GhDm57dQNAQRuLhBoAEDz/qdNm9asAaBfXoLNH33zWvEqAggggEAkBVgD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i6cwzjzzzMoYDI07u5QJ9F8grx8ECPtv2NuRI0aMSF/72tfSfffdl9Zaa630xz/+MQsSxttCM2bM6O1w2wkQIECAAAECBAj0KBB/gy6++OLZGHWPPfZYj/vaSIAAgaEgIAAwFErZNXYQyG/wCQB0YGnIl6222irr8uPQQw/Nbvx/9atfTauuumq68MILdQvUEHGJzq2A+mFuBes/foMNNsiCg8cee2x6//33s7eF4o+1s846S6CwfkZ7EiBAgAABAgQI1BDYe++9s7WHH354mjNnTo09rCJAgMDQERAAGDpl7Uo/ENDFR3N/CqNGjUqXX355uv3221O8BfDSSy+lL3zhC2n11VdPV111VZo9e3ZzM+RsBHoQEADoAacBm+aff/70ve99L919991p6623TtOmTUsnnHBCGjdunEBhA7wlSYAAAQIECBAYKgLf+c530vLLL5/uvffedM455wyVy3adBAgQqCkgAFCTxcrBLOAGX2tKd4cddsgGCP7Zz36Wdfvx5z//OR188MHpYx/7WLruuuuy8QJakzNnJfChgPrhQ4tmLm255ZZZl2G33XZbij5b//rXv1YChZMmTRIobGZhOBcBAgQIECBAYBAILLrooumyyy7LriS6moxuJ00ECBAYqgICAEO15IfwdbvB19rC32uvvdLUqVOzp/9jQNAYHHifffbJbvrdeuutrc2csw95AW8ItfYn8MlPfjI98MADKQKFa6+9dopA4SGHHCJQ2NpicXYCBAgQIECAwIAU2HHHHdNhhx2WZs6cmbUpvX0+IItRpgkQKEBAAKAAREkMLIE8AGCQz9aV2/Dhw9OBBx6YPYVx0UUXZa9m/u53v0s777xzGj9+fLr22muzRlrrcujMQ1Ugrx+MEdLaX0AECh955JF09dVXp+pAYXQjdsUVV6S33367tRl0dgIECBAgQIAAgQEhEN3/rLjiium+++7LxpoaEJmWSQIECBQsIABQMKjk2l/ADb72KaN55pknHXnkkenpp59OZ599dlpqqaXSr3/963TAAQdkQYFjjjkme1ugfXIsJ4NdIK8fBAhbX9IRKPzc5z7XIVD40EMPZU9xLbvsslndEW8LmAgQIECAAAECBAh0J7DIIotUugI6+eST0+OPP97drtYTIEBg0AoIAAzaonVh3QnkN/g84dudUPPXx0Cgxx13XHrmmWdSvBEQfYC/8cYb6bzzzkvrrrtu2myzzdKll16aZsyY0fzMOeOQElA/tF9xVwcKr7zyyrTVVltldcEll1ySNt1007Teeuul//zP/0zTp09vv8zLEQECBAgQIECAQMsFPvGJT6Qjjjgivfvuu7oCanlpyAABAq0QEABohbpztkwg/oc/Z86cNO+886Z4utTUXgILL7xw5ane3//+9+nf/u3f0mKLLZbuv//+rMEWT/1GH4733ntve2VcbgaNgABA+xZlBApj4PC77rorGzvk+OOPz94aiq6CvvSlL6Xlllsue3vo//7v/wwq3r7FKGcECBAgQIAAgZYInHXWWWnllVfOxps688wzW5IHJyVAgECrBNwBbZW887ZEwM29lrD366T5U71//etf0zXXXJO23XbbFAO0Rv/fW265ZdZ4+8IXvpBuueWWlJdrv07kIAJVAvlvKW42m9pXYI011kjf/e5304svvpiuu+66FAO8zZo1Kxs/5F/+5V+yLsQmTpyYJk+e7M2h9i1GOSNAgAABAgQINE1g1KhR6fLLL0/Dhg1L3/zmN9Ojjz7atHM7EQECBFotIADQ6hJw/qYK5Df39O/dVPa5OlnciI0xAeKp3ieffDJ99atfzZ70ff7559OFF16Ydt1117TEEkukXXbZJV1wwQXpueeem6vzOXjoCsycOTN7cny++ebzhtAA+RlE90Cf/vSn06233pr+/Oc/p2984xvpIx/5SIrAYfyBF4MJL7nkkmmHHXZI3//+99NTTz01QK5MNgkQIECAAAECBIoW2H777dNRRx2VPThyyCGHpPfff7/oU0iPAAECbSkgANCWxSJTjRLIAwD6/2+UcGPTXXXVVdO3v/3t9Je//CX99re/Taeccko2PkB07TRlypR09NFHZzf/1llnnXTiiSemX/7yl+ntt99ubKakPmgE8vpBgHBgFulKK62UYmC3CARMnTo1nXHGGWnChAlp9uzZ6Re/+EX68pe/nFZbbbVsjuX/+Z//SW+99dbAvFi5JkCAAAECBAgQ6JfAd77znexvxvh7Mv62NBEgQGAoCAwrlaehcKGusXuBE044IUV/eMsvv3x2Y7X7PQf+lsceeyzFzeG1117bK38DvzgrV/Dqq69mTwBHd0C33357h5t6I0aMyMp8iy22SJtvvnk2x03AePXTRKBa4KWXXsrqwehLPrqWMQ0OgRgc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M+o4m10IECBAgAABAgQIEGilgPZ/K/WdmwABAgQIECBAoEgBAYA6Nb///e+nDTfcMJ1yyinZ4C7PP/98irm3abXVVkvHHXdcOvjgg7PBgHvb33YCBAgQIECAAAECBFovoP3f+jKQAwIECBAgQIAAgbkXEADog+FBBx2UDjjggHTHHXeke++9Nz3wwAPptddeS2+99Vb29H8MfLvccstV5o033jjtsssuKfoRNREgQIAAAQIECBAgMLAEtP8HVnnJLQECBAgQIECAQFcBAYCuJj2uGTFiRNp+++2zuccdbSRAgAABAgQIECBAYMALaP8P+CJ0AQQIECBAgACBIS1gEOAhXfwungABAgQIECBAgAABAgQIECBAgAABAgQGq4A3AAZryfbjuh555JF0/PHH93rks88+m37zm9+kpZdeOg0fLobUK1hBO8SA0q+88kpadNFF0wILLFBQqpKpR2D69OnZbjHYt6l5Au+8807WxdqYMWN0pdY89jRnzpysrolu7eabb74mntmppk2blpZddtm05ZZbwihY4B//+EfBKUqOwOAQ0P5v73LU/m9d+Wj/t8Ze+7817tr/rXGPs2r/N85e+7+j7bByo6LUcZVvQ03g1ltvTTvvvPNQu2zXS4AAAQIECAwhgXhoYcaMGWnBBRccQlftUgnUFpgyZUo2VlntrdYSIECAAAECBAa+gPb/h2UoAPChxZBdmj17drryyivTm2++WZfBVVddleJpofXXXz+tsMIKdR1jp7kXePnll9ODDz6YlllmmRQDTJuaIxAx0ltuuSU72a677tqckzpLJhADrcdbL5tsskmKtwBMzRF44YUX0sMPP5xWXHHFtN566zXnpM6SZs2alW6//fbsrYvTTjtE/ZTtAAAqSUlEQVSNSAME1lprrbTTTjs1IGVJEhh4Atr/A6PMtP9bU07a/61xj7Nq/7fGXvu/Ne7a/4131/7/0FgA4EMLS3UKHHzwwSmCAJMmTUoHHXRQnUfZbW4FJk+enPbaa6+05557puuvv35uk3N8nQLxOmQM/heR4/hj2dQ8gd133z3dfPPN6aabbkq77bZb8048xM90xRVXpMMOOywdeuih6fLLLx/iGs27/Hj9d8kll0xLLLFEev3115t3YmciQIBAHQLa/3UgNWAX7f8GoNaRpPZ/HUgN2kX7v0GwvSSr/d8LUIM2a/83CFayNQV04F6TxUoCBAgQIECAAAECBAgQIECAAAECBAgQIDCwBQQABnb5yT0BAgQIECBAgAABAgQIECBAgAABAgQIEKgpIABQk8VKAgQIECBAgAABAgQIECBAgAABAgQIECAwsAUEAAZ2+ck9AQIECBAgQIAAAQIECBAgQIAAAQIECBCoKSAAUJPFSgIECBAgQIAAAQIECBAgQIAAAQIECBAgMLAFBAAGdvnJPQECBAgQIECAAAECBAgQIECAAAECBAgQqCkgAFCTxUoCBAgQIECAAAECBAgQIECAAAECBAgQIDCwBQQABnb5yT0BAgQIECBAgAABAgQIECBAgAABAgQIEKgpIABQk8VKAgQIECBAgAABAgQIECBAgAABAgQIECAwsAUEAAZ2+ck9AQIECBAgQIAAAQIECBAgQIAAAQIECBCoKSAAUJPFSgIECBAgQIAAAQIECBAgQIAAAQIECBAgMLAFBAAGdvnJPQECBAgQIECAAAECBAgQIECAAAECBAgQqCkgAFCTxUoCBAgQIECAAAECBAgQIECAAAECBAgQIDCwBUYO7OzLfSsERo0alZ124YUXbsXph+w5c+/cf8hCNPnChw8fnhZaaKE0YsSIJp/Z6fLfev5JpDkC6prmOHc+y/zzz59GjhyZcv/O230nQIBAKwXy/xero5pbCrl37t/csw/ds2n/t67s8996/tm6nAytM6trWlPe2v+tcR+qZx1WKk9D9eJdd/8Epk2blu688860xx57uCnaP8J+HRX/VG+66aa0+eabpzFjxvQrDQf1T+CBBx5I8YfARhtt1L8EHNUvgZdffjndf//9abfddkvDhg3rVxoO6rvA7Nmz04033pi22267NHr06L4n4Ih+C9xzzz1p0UUXTeuss06/03AgAQIEGiGg/d8I1d7T1P7v3ahRe2j/N0q253S1/3v2adRW7f9GyfaervZ/70b2KEZAAKAYR6kQIECAAAECBAgQIECAAAECBAgQIECAAIG2EjAGQFsVh8wQIECAAAECBAgQIECAAAECBAgQIECAAIFiBAQAinGUCgECBAgQIECAAAECBAgQIECAAAECBAgQaCsBAYC2Kg6ZIUCAAAECBAgQIECAAAECBAgQIECAAAECxQgIABTjKBUCBAgQIECAAAECBAgQIECAAAECBAgQINBWAgIAbVUcMkOAAAECBAgQIECAAAECBAgQIECAAAECBIoREAAoxlEqBAgQIECAAAECBAgQIECAAAECBAgQIECgrQQEANqqOGSGAAECBAgQIECAAAECBAgQIECAAAECBAgUIyAAUIyjVAgQIECAAAECBAgQIECAAAECBAgQIECAQFsJCAC0VXHIDAECBAgQIECAAAECBAgQIECAAAECBAgQKEZAAKAYR6kQIECAAAECBAgQIECAAAECBAgQIECAAIG2EhAAaKvikBkCBAgQIECAAAECBAgQIECAAAECBAgQIFCMgABAMY5SIUCAAAECBAgQIECAAAECBAgQIECAAAECbSUgANBWxSEzBAgQIECAAAECBAgQIECAAAECBAgQIECgGAEBgGIcpUKAAAECBAgQIECAAAECBAgQIECAAAECBNpKQACgrYpDZggQIECAAAECBAgQIECAAAECBAgQIECAQDECAgDFOEqFAAECBAgQIECAAAECBAgQIECAAAECBAi0lYAAQFsVh8wQIECAAAECBAgQIECAAAECBAgQIECAAIFiBAQAinGUCgECBAgQIECAAAECBAgQIECAAAECBAgQaCsBAYC2Kg6ZIUCAAAECBAgQIECAAAECBAgQIECAAAECxQgIABTjOKRS+cc//pFKpdKQuuZmXuzs2bPTK6+8kt55550+nVa59Imry84zZszosq6eFdzrUep+n7fffrv7jT1siTqor/9GekhuyG4Kx6hz+lKn+8235ufCvTXuzkqAwD8F1EGN/SVo/zfWt7vUtf+7k2nseu3/xvr2lrr2f29C7bPd/3vbpywGQ04EAAZDKTbhGl5++eX0+c9/Pi233HJpoYUWSksttVTabbfd0pVXXtmEsw+tU3zrW99KyyyzTLrmmmt6vXDl0itRtzvMnDkznXnmmWn99ddPCy+8cFpkkUXSkksumSZMmJCuu+66bo+LDdx75Ol14wMPPJB22mmnzDvsV1lllXTggQemm2++uddjr7/++rTJJpukBRdcMCu3KL+jjz46vfDCC70ea4eOAu+++272+x85cmS64IILOm7s9M1vvhNIH76eeOKJadttt+1xnjhxYs0UuddksZIAgSYJqIOaBF0+jfZ/c6y1/5vjXOss2v+1VJq/Tvu/Oeba/81xdpY+CpSjfyYCPQo8+eSTpfKN0XjkP5tjuXzDqPL9q1/9ao/H21i/wJQpU0rz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2caf//znWVdv5QGuU3kA5jR16tQ0ZcqU7O2vCRMmpPJgYWmbbbbJ9uVe29NaAgSaI6AOao5zX8+iXPoqVv/+2v/1WxWxp/Z/EYr1paH9X59TkXtp/xepKa2iBXQBVLToIEqvPAhn5Wo635CrbCgvlAexzb6+88471astN0hAuTQItpzssccem374wx9mJ/j617+e1ltvvcrJuFcoClt4/fXXU3SxFDf+Y+yL6Apr3XXXzcbDqD5Jbt9TPRT7q4uq1T5cji6UvvnNb6YIkkyaNKnXcUbyI3P3+N6TPfdcrONn3v9nrI26JcamiKf9TzvttHTTTTele+65J40ZMybNmTMnTZw4MeX/D+Xe0dE3AgSaK6AOaq53vWdTLvVK9X0/7f++m83NEdr/c6NX/7Ha//VbFbmn9n+RmtIqWkAAoGjRQZRe9ROf0T93d1O+LQb5MTVeQLkUbxxPjR900EHpvPPOyxI/+uij00knndThRNw7cBTyJbr9+e1vf5uefPLJ9MQTT6Qtttgi/eUvf0m77rpruu+++yrnyO3zuqayodNCvl1d9CFMvA1xwAEHZG9GfP/7309jx479cGMvS7l77Jbb1jok38a9o050ufT000+nGMT6e9/7Xoo+cKunzTbbLJ177rnZqtjvhhtuyJa5VytZJkCg2QLqoGaL13c+5VKfU1/20v7vi1Zx+2r/F2fZXUra/93JNH699n/jjZ2h/wICAP23G/RHLrfccpVrfOONNyrLnRfybYsuumjnTb43QEC5FIsafaLvtNNO6eqrr84SPuGEE9IPfvCDLifh3oWk0BUxiO/NN9+cll566exmdTyxnk+5fV7X5OurP6O/xbzrH3XRhzJf+cpXsgDL7rvvnnVv9eGW3pdy99izJ/t8G/eOptEl1bhx47LAVsctH37bd99904ILLpitiG6BYuKeMfgPAQItElAHtQi+l9Mql16A+rhZ+7+PYA3aXfu/MbDa/41xrSdV7f96lOzTKgFjALRKfgCct3NDs7snR/ObPz11ETEALnfAZFG5FFdUMWjpzjvvnB599NGsW5R4AyCe/q81ca+lUuy6eLptn332Seeff37WPUqeem6f1zX5+urP6m3qon/KRJcz+RgL06ZNS3vssUc1Wbac9yl88cUXZ10vjRgxIl1//fXZttw9voSv/wdkLIX+J94KiD9+H3nkkextgUice6HEEiNAoI8C6qA+gjVpd+VSHLT2f3GWRaSk/V+E4odpaP9/aNGuS9r/7Voygz9fAgCDv4z7fYXRN3H0yx39E7/00kvdpvPiiy9m26r7S+92ZxvmWkC5zDVhlsDjjz+edthhh+y3vdBCC6Vrr702xVPS3U3cu5Opb30Mhvrcc89l/aBvv/32XbpDyVNZeeWVs8Xo63bWrFlp3nnnrdwQraceioPVRf/UnDlz5j8Xyv+N/uZ7muLp85gjAJBPfvO5RP8+4zf/2muvZb/1ZZZZpttEpk+fnm2LwYFj4p4x+A8BAi0SUAe1CL6X0yqXXoDq3Kz9XydUQbtp/xcE2YdktP/7gNWAXbX/G4AqycIEBAAKoxx8CcWNoA022CDrozv6Jq51c3TGjBnpf//3f7OLj/6MTY0XUC5zbxz9bcdN6Jdffjm72TZlypRsMNqeUubek07v26If9G222SbbMfr333TTTWseFOMBxBQDA8fN/5g23njj7DMGVYogQh4kyFZ+8J/JkydnS/EUUTxRbfrnjeSzzz67R4qTTz45RbBlr732SuPHj+8QmPGb75Gu143bbbdduvvuu7Pf/R133FFz/7j5H+NexLTGGmtkn9wzBv8hQKBFAuqgFsH3clrl0gtQHZu1/+tAKngX7f+CQetILoKF2v91QDVoF+3/BsFKthiBkolADwI//OEPS+VfWqnct3Op3L92lz2vuOKKbHu5r7NS+XXKLtut6LtAWIf5JZdc0u3ByqVbml43lN9oKZUHm82Ml1pqqVL5hnOvx+Q7cM8l+v5Zfpq/NGrUqMx94sSJNRMov01UWmyxxbJ9DjnkkMo+UWarrbZatv60006rrM8XZs+eXVpllVWy7Z///Ofz1T7rEIh/A1HflMe9qLm333xNlrpWfuMb38hsR44cWXrqqadqHnPsscdm+8S/jVdeeaWyD/cKhQUCBFogoA5qPrr2f2PNtf8b69td6tr/3cm0dr32f+P8tf8bZyvluRdIc5+EFAazwHvvvVdaccUVsxsUH//4x0vlJ0Url3vXXXeVFllkkWzboYceWllvYe4E6vkDQLn03/iyyy7LfrNx07P89HPpzjvv7HEuvyVQORn3CkW/Fk466aSKfbnP+Q5p/OlPfyqV3wrIti+++OKl8lPRHbaX+7LPts0333ylG2+8sbItyuQzn/lMti1utEY6pvoFevsDwG++fsvOe5b7YK0EtMpv05XKb69UdokbEWeddVap/ERn9ts99dRTK9tigXsHDl8IEGiygDqoyeDl02n/N9Zc+7+xvj2lrv3fk05rtmn/N85d+79xtlKeewEBgLk3HPQplAeELC2wwAKVG3Of+tSnSptvvnnlxsW6665bKg8kOegdmnWB9fwBEHlRLv0rkfJrkdlvOQIA9cyTJk3qcCLuHTj69KXcJ2Kp3PVSxX2dddYpHXDAAaVy10CVOqY8HkPppptu6pLuO++8U9p2222zY8sDJ5Xihuree+9dqi7PeCPJ1DeB3v4AiNT85vtmWr13ufu8Unksnex3u+CCC5Z23HHH0r777lt5YyXqoPLA46V4Qq7zxL2ziO8ECDRTQB3UTO36AgCRI+XSv3Kpbi9q//fPsL9Haf/3V65xx2n/N842Utb+b6yv1PsvIADQf7shdeTvfve7Utysq24wxZOL8eR/dbcFQwqlQRdbbwAgTq9c+lYI0U1V9W+4nuXOAQDufTPvvHc8VXjOOedU3h7KyyBuku66666lZ599tvMhle9x7Fe+8pXSwgsv3KEcx40bV7ruuusq+1moX6CePwAiNXVN/aad9yyPXZEFufLfenxGEKs8VkWpt6AV986avhMg0EwBdVDztLX/G2et/d8423pT1v6vV6o5+2n/N95Z+7/xxs7Qd4FhcUj5j1ETgboE3nzzzfTQQw+l8hsBafXVV0+jR4+u6zg7NVZAuTTWt7vUuXcn0/v6cr/96ZlnnknlvtHTsssum9Zcc800//zz935geY9y9ynpiSeeSM8//3waO3ZsNsfgeKbGC/jN99+4/KZc9rt9++23U/kNllQe76LuxLjXTWVHAgQaIKAOagBqAUkqlwIQ+5EE936gfXCI9n//7Vp5pN98//W1//tv58jiBQQAijeVIgECBAgQIECAAAECBAgQIECAAAECBAgQaLnA8JbnQAYIECBAgAABAgQIECBAgAABAgQIECBAgACBwgUEAAonlSABAgQIECBAgAABAgQIECBAgAABAgQIEGi9gABA68tADggQIECAAAECBAgQIECAAAECBAgQIECAQOECAgCFk0qQAAECBAgQIECAAAECBAgQIECAAAECBAi0XkAAoPVlIAcECBAgQIAAAQIECBAgQIAAAQIECBAgQKBwAQGAwkklSIAAAQIECBAgQIAAAQIECBAgQIAAAQIEWi8gAND6MpADAgQIECBAgAABAgQIECBAgAABAgQIECBQuIAAQOGkEiRAgAABAgQIECBAgAABAgQIECBAgAABAq0XEABofRnIAQECBAgQIECAAAECBAgQIECAAAECBAgQKFxAAKBwUgkSIECAAAECBAgQIECAAAECBAgQIECAAIHWCwgAtL4M5IAAAQIECBAgQIAAAQIECBAgQIAAAQIECBQuIABQOKkECRAgQIAAAQIECBAgQIAAAQIECBAgQIBA6wUEAFpfBnJAgAABAgQIECBAgAABAgQIECBAgAABAgQKFxAAKJxUggQIECBAgAABAgQIECBAgAABAgQIECBAoPUCAgCtLwM5IECAAAECBAgQIECAAAECBAgQIECAAAEChQsIABROKkECBAgQIECAAAECBAgQIECAAAECBAgQINB6AQGA1peBHBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcIFBAAKJ5UgAQIECBAgQIAAAQIECBAgQIAAAQIECBBovYAAQOvLQA4IECBAgAABAgQIECBAgAABAgQIECBAgEDhAgIAhZNKkAABAgQIECBAgAABAgQIECBAgAABAgQItF5AAKD1ZSAHBAgQIECAAAECBAgQIECAAAECBAgQIECgcAEBgMJJJUiAAAECBAgQIECAAAECBAgQIECAAAECBFovIADQ+jKQAwIECBAgQIAAAQIECBAgQIAAAQIECBAgULiAAEDhpBIkQIAAAQIECBAgQIAAAQIECBAgQIAAAQKtFxAAaH0ZyAEBAgQIECBAgAABAgQIECBAgAABAgQIEChcQACgcFIJEiBAgAABAgQIECBAgAABAgQIECBAgACB1gsIALS+DOSAAAECBAgQIECAAAECBAgQIECAAAECBAgULiAAUDipBAkQIECAAAECBAgQIECAAAECBAgQIECAQOsFBABaXwZyQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEChcQACicVIIECBAgQIAAAQIECBAgQIAAAQIECBAgQKD1AgIArS8DOSBAgAABAgQIECBAgAABAgQIECBAgAABAoULCAAUTipBAgQIECBAgAABAgQIECBAgAABAgQIECDQegEBgNaXgRwQIECAAAECBAgQIECAAAECBAgQIECAAIHCBQQACieVIAECBAgQIECAAAECBAgQIECAAAECBAgQaL2AAEDry0AOCBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4QICAIWTSpAAAQIECBAgQIAAAQIECBAgQIAAAQIECLReQACg9WUgBwQIECBAgAABAgQIECBAgAABAgQIECBAoHABAYDCSSVIgAABAgQIECBAgAABAgQIECBAgAABAgRaLyAA0PoykAMCBAgQIECAAAECBAgQIECAAAECBAgQIFC4gABA4aQSJECAAAECBAgQIECAAAECBAgQIECAAAECrRcQAGh9GcgBAQIECBAgQIAAAQIECBAgQIAAAQIECBAoXEAAoHBSCRIgQIAAAQIECBAgQIAAAQIECBAgQIAAgdYLjGx9FuSAAAECBFopUCqV0pw5c/qVhWHDhqXhw/8ZS440Iq34HutNBAgQIECAAAECBAi0n4D2f/uViRwRIECgkQLeAGikrrQJECAwAAQmTZqURo4c2a95zz33rFzhJz7xiSyNo446qrLOAgECBAgQIECAAAEC7SWg/d9e5SE3BAgQaLSAAECjhaVPgAABAgQIECBAgAABAgQIECBAgAABAgRaIKALoBagOyUBAgTaSWDnnXdOd999d5csvfrqq2mvvfbK1p9wwglpjz326LLPEkssUVm39dZbp8UWWyxttNFGlXUWCBAgQIAAAQIECBBoLwHt//YqD7khQIBAowWGlft+KzX6JNInQIAAgYEn8MILL6SVVlopy/jFF1+cjjjiiIF3EXJMgAABAgQIECBAgEBdAtr/dTHZiQABAgNOQBdAA67IZJgAAQIDX2D27Nkp5p6mmTNn9rS55rZZs2b1mm7NA60kQIAAAQIECBAgQKBhAtr/DaOVMAECBHoVEADolcgOBAgQIFCPwDHHHJPGjx+fvvOd71R2f+ihh7J1BxxwQLbuxz/+cdp1113T4osvnkaPHp122WWX9KMf/aiy/69//ev0mc98Jo0ZMyYtuOCCaZVVVsnSe//99yv7dF546aWX0sSJE9O6666bFlpoobTIIoukzTbbLH39619P7777bufdfSdAgAABAgQIECBAoAAB7f8CECVBgACBJggYA6AJyE5BgACBoSDw2GOPpbiBv84661Qu929/+1u2bvr06dmN/BNPPDHbNnz48DRnzpw0ZcqUdNttt6Ull1wyWx/jDLzzzjtp5MiRKXqoe/bZZ1Mc8+KLL6Zzzz23km6+MHny5Ozm/xtvvJGtWmqppVK8OXD//fdn8w033JB+8pOfpDXWWCM/xCcBAgQIECBAgAABAgUIaP8XgCgJAgQINEHAGwBNQHYKAgQIDHWBJ598MruRHzf477333vT3v/89XXPNNWncuHFZICCe+t9tt93ShAkT0qOPPpo9uR+fW2yxRUZ3wQUXpHjSv3p66qmn0n777Zfi5v/HP/7xFN9j4OI333wzCzpE2lOnTs326a27oep0LRMgQIAAAQIECBAgMHcC2v9z5+doAgQIFCkgAFCkprQIECBAoKZA3IDfcMMNs+5+Nt9887TAAguk6Bbo6KOPzvaPNwRWWGGFdPPNN6e11147xRsC8Tlp0qRse3QBFE8YVU9f/vKXU/T5v8EGG2RvEqy66qrZ5jg2AgcRaFhsscXSww8/nC699NLqQy0TIECAAAECBAgQINBAAe3/BuJKmgABAn0UEADoI5jdCRAgQKB/AtGVT9z4r5623nrrytfox3/eeeetfI+FsWPHphEjRmTrnnvuucq26Brolltuyb6ffPLJaZ555qlsyxeiO6BDDjkk+3r55Zfnq30SIECAAAECBAgQINAEAe3/JiA7BQECBOoQMAZAHUh2IUCAAIG5F6geGyBPLbrpyafq5Xxd3PyPAYNfe+219N577+WrU7xSnE9x8/+BBx7Iv3b4jAGBY4rugUwECBAgQIAAAQIECDRPQPu/edbORIAAgZ4EBAB60rGNAAECBAoTiO54eppGjx5dc3N06dN5qr6hv8suu3Te3OX7W2+9lQUR4q0AEwECBAgQIECAAAECjRfQ/m+8sTMQIECgHgEBgHqU7EOAAAECcy1Qq5ue/iYaN/Rjii6DYgDgeqaZM2fWs5t9CBAgQIAAAQIECBAoQED7vwBESRAgQKAAAQGAAhAlQYAAAQLNFcgH/I3BgX/yk5+khRZaqLkZcDYCBAgQIECAAAECBJomoP3fNGonIkBgEAp07VdhEF6kSyJAgACBwSWw2mqrZRc0Z86c9OCDD3Z7cVOnTk0//elPszECYl8TAQIECBAgQIAAAQIDT0D7f+CVmRwTINA+AgIA7VMWckKAAAECdQqsueaaaeWVV872/sY3vlHzqFKplI444oi07777psMPPzzVGkug5oFWEiBAgAABAgQIECDQVgLa/21VHDJDgMAAExAAGGAFJrsECBAgkNJ8882XzjnnnIzijjvuSEcddVT6xz/+UaF544030he/+MX0m9/8Jlv3la98pbLNAgECBAgQIECAAAECA0tA+39glZfcEiDQXgICAO1VHnJDgAABAnUK7LXXXtmN/9j94osvzt4I2HnnndN2222XxowZk84///wspQgEHHjggXWmajcCBAgQIECAAAECBNpRQPu/HUtFnggQGAgCAgADoZTkkQABAgRqClx44YXpv//7v1P0CTpt2rR06623pngjIAYHHjduXLriiivSueeeW/NYKwkQIECAAAECBAgQGFgC2v8Dq7zklgCB9hAYVu4judQeWZELAgQIECDQf4EZM2akxx57LL377rtp7Nixafnll9fvf/85HUmAAAECBAgQIECgrQW0/9u6eGSOAIE2EhAAaKPCkBUCBAgQIECAAAECBAgQIECAAAECBAgQIFCUgC6AipKUDgECBAgQIECAAAECBAgQIECAAAECBAgQaCMBAYA2KgxZIUCAAAECBAgQIECAAAECBAgQIECAAAECRQkIABQlKR0CBAgQIECAAAECBAgQIECAAAECBAgQINBGAgIAbVQYskKAAAECBAgQIECAAAECBAgQIECAAAECBIoSEAAoSlI6BAgQIECAAAECBAgQIECAAAECBAgQIECgjQQEANqoMGSFAAECBAgQIECAAAECBAgQIECAAAECBAgUJSAAUJSkdAgQIECAAAECBAgQIECAAAECBAgQIECAQBsJCAC0UWHICgECBAgQIECAAAECBAgQIECAAAECBAgQKEpAAKAoSekQIECAAAECBAgQIECAAAECBAgQIECAAIE2EhAAaKPCkBUCBAgQIECAAAECBAgQIECAAAECBAgQIFCUgABAUZLSIUCAAAECBAgQIECAAAECBAgQIECAAAECbSQgANBGhSErBAgQIECAAAECBAgQIECAAAECBAgQIECgKAEBgKIkpUOAAAECBAgQIECAAAECBAgQIECAAAECBNpIQACgjQpDVggQIECAAAECBAgQIECAAAECBAgQIECAQFECAgBFSUqHAAECBAgQIECAAAECBAgQIECAAAECBAi0kYAAQBsVhqwQIECAAAECBAgQIECAAAECBAgQIECAAIGiBAQAipKUDgECBAgQIECAAAECBAgQIECAAAECBAgQaCMBAYA2KgxZIUCAAAECBAgQIECAAAECBAgQIECAAAECRQkIABQlKR0CBAgQIECAAAECBAgQIECAAAECBAgQINBGAgIAbVQYskKAAAECBAgQIECAAAECBAgQIECAAAECBIoSEAAoSlI6BAgQIECAAAECBAgQIECAAAECBAgQIECgjQQEANqoMGSFAAECBAgQIECAAAECBAgQIECAAAECBAgUJSAAUJSkdAgQIECAAAECBAgQIECAAAECBAgQIECAQBsJCAC0UWHICgECBAgQIECAAAECBAgQIECAAAECBAgQKEpAAKAoSekQIECAAAECBAgQIECAAAECBAgQIECAAIE2EhAAaKPCkBUCBAgQIECAAAECBAgQIECAAAECBAgQIFCUgABAUZLSIUCAAAECBAgQIECAAAECBAgQIECAAAECbSQgANBGhSErBAgQIECAAAECBAgQIECAAAECBAgQIECgKAEBgKIkpUOAAAECBAgQIECAAAECBAgQIECAAAECBNpIQACgjQpDVggQIECAAAECBAgQIECAAAECBAgQIECAQFECAgBFSUqHAAECBAgQIECAAAECBAgQIECAAAECBAi0kYAAQBsVhqwQIECAAAECBAgQIECAAAECBAgQIECAAIGiBAQAipKUDgECBAgQIECAAAECBAgQIECAAAECBAgQaCMBAYA2KgxZIUCAAAECBAgQIECAAAECBAgQIECAAAECRQkIABQlKR0CBAgQIECAAAECBAgQIECAAAECBAgQINBGAgIAbVQYskKAAAECBAgQIECAAAECBAgQIECAAAECBIoSEAAoSlI6BAgQIECAAAECBAgQIECAAAECBAgQIECgjQQEANqoMGSFAAECBAgQIECAAAECBAgQIECAAAECBAgUJSAAUJSkdAgQIECAAAECBAgQIECAAAECBAgQIECAQBsJ/H9zOGY08PT/pAAAAABJRU5ErkJggg==" width="768" /></p>
</div>
<div id="method-3-marketing-mix-model-mmm-1" class="slide section level2">
<h2>Method 3: Marketing Mix Model (MMM)</h2>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">model.<span class="dv">3</span><-<span class="kw">fit.model</span>(<span class="dt">dt=</span>mdata[<span class="dv">10</span><span class="op">:</span><span class="kw">nrow</span>(mdata),<span class="kw">c</span>(<span class="dv">1</span>,<span class="dv">8</span><span class="op">:</span><span class="dv">11</span>)], <span class="st">"Sales"</span>,
<span class="dt">input.names=</span><span class="kw">c</span>(<span class="st">"Email ad effect"</span>,<span class="st">"Display ad effect"</span>,<span class="st">"Direct ad effect"</span>,<span class="st">"Social ad effect"</span>),
<span class="dt">model.type=</span><span class="st">"linear"</span>, <span class="dt">digits =</span> <span class="dv">3</span>)
<span class="kw">datatable</span>(model.<span class="dv">3</span>)</code></pre></div>
<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":[["1","2","3","4","5"],["(Intercept)","`Email ad effect`","`Display ad effect`","`Direct ad effect`","`Social ad effect`"],[199.476,0.052,0.004,0.056,0.009],[704.798,0.004,0.132,0.007,0.001],[0.283,11.931,0.028,7.777,6.658],[0.779,0,0.978,0,0],[-1181.902,0.044,-0.256,0.042,0.007],[1580.854,0.061,0.263,0.071,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><span style="color:dodgerblue"><strong>Results & Interpretation: </strong></span></li>
</ul>
<p>Positive effects for all forms of advertising.</p>
<p><strong>Email</strong> and <strong>Direct</strong> appears to have similar influence on sales at about 50 additional sales.</p>
<p>All effects are statistically significant except for <strong>Display</strong>. <strong>Display</strong> still has a high standard error because there is not a big change after the adjustment.</p>
</div>
<div id="method-4-model-based-attribution-analysis" class="slide section level2">
<h2>Method 4: Model-based Attribution Analysis</h2>
<ul>
<li><span style="color:dodgerblue"><strong>Analysis: </strong></span>Different from the MMM method, model-based attribution focuses on the <strong>user level</strong> by relating user transactions to prior advertising impressions. By visualizing this relationship as below, it is easy to see that users convert more on days they get emails or direct mails.</li>
</ul>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAASACAYAAAA5wYaaAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/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+8AAEAASURBVHgB7N0LuJVVnTj+Lxe5ieLh4o1G5aKoqTREaTak6ZANplnNYMmkBvJYz68ejTQeLbM0iUoLGhlnqpFGyYkpJrPMrHS8hM4MphhiE4J4UAlFQCNuSp7/We/89+nsc+Hss9mwb5/3eTbnvax3vWt91n4e1n6/77tWj6bmJSwECBAgQIAAAQIECBAgQIAAAQIECBAgQIBATQn0rKnaqAwBAgQIECBAgAABAgQIECBAgAABAgQIECCQCQgA+CIQIECAAAECBAgQIECAAAECBAgQIECAAIEaFBAAqMFGVSUCBAgQIECAAAECBAgQIECAAAECBAgQICAA4DtAgAABAgQIECBAgAABAgQIECBAgAABAgRqUEAAoAYbVZUIECBAgAABAgQIECBAgAABAgQIECBAgIAAgO8AAQIECBAgQIAAAQIECBAgQIAAAQIECBCoQQEBgBpsVFUiQIAAAQIECBAgQIAAAQIECBAgQIAAAQICAL4DBAgQIECAAAECBAgQIECAAAECBAgQIECgBgUEAGqwUVWJAAECBAgQIECAAAECBAgQIECAAAECBAgIAPgOECBAgAABAgQIECBAgAABAgQIECBAgACBGhQQAKjBRlUlAgQIECBAgAABAgQIECBAgAABAgQIECAgAOA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEalBAAKAGG1WVCBAgQIAAAQIECBAgQIAAAQIECBAgQICAAIDvAAECBAgQIECAAAECBAgQIECAAAECBAgQqEEBAYAabFRVIkCAAAECBAgQIECAAAECBAgQIECAAAECAgC+AwQIECBAgAABAgQIECBAgAABAgQIECBAoAYFBABqsFFViQABAgQIECBAgAABAgQIECBAgAABAgQICAD4DhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRoUEACowUZVJQIECBAgQIAAAQIECBAgQIAAAQIECBAgIADgO0CAAAECBAgQIECAAAECBAgQIECAAAECBGpQQACgBhtVlQgQIECAAAECBAgQIECAAAECBAgQIECAgACA7wABAgQIECBAgAABAgQIECBAgAABAgQIEKhBAQGAGmxUVSJAgAABAgQIECBAgAABAgQIECBAgAABAgIAvgMECBAgQIAAAQIECBAgQIAAAQIECBAgQKAGBQQAarBRVYkAAQIECBAgQIAAAQIECBAgQIAAAQIECAgA+A4QIECAAAECBAgQIECAAAECBAgQIECAAIEaFBAAqMFGVSUCBAgQIECAAAECBAgQIECAAAECBAgQICAA4DtAgAABAgQIECBAgAABAgQIECBAgAABAgRqUEAAoAYbVZUIECBAgAABAgQIECBAgAABAgQIECBAgIAAgO8AAQIECBAgQIAAAQIECBAgQIAAAQIECBCoQQEBgBpsVFUiQIAAAQIECBAgQIAAAQIECBAgQIAAAQICAL4DBAgQIECAAAECBAgQIECAAAECBAgQIECgBgUEAGqwUVWJAAECBAgQIECAAAECBAgQIECAAAECBAgIAPgOECBAgAABAgQIECBAgAABAgQIECBAgACBGhQQAKjBRlUlAgQIECBAgAABAgQIECBAgAABAgQIECAgAOA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIEalBAAKAGG1WVCBAgQIAAAQIECBAgQIAAAQIECBAgQICAAIDvAAECBAgQIECAAAECBAgQIECAAAECBAgQqEEBAYAabFRVIkCAAAECBAgQIECAAAECBAgQIECAAAECAgC+AwQIECBAgAABAgQIECBAgAABAgQIECBAoAYFBABqsFFViQABAgQIECBAgAABAgQIECBAgAABAgQICAD4DhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRoUEACowUZVJQIECBAgQIAAAQIECBAgQIAAAQIECBAgIADgO0CAAAECBAgQIECAAAECBAgQIECAAAECBGpQQACgBhtVlQgQIECAAAECBAgQIECAAAECBAgQIECAgACA7wABAgQIECBAgAABAgQIECBAgAABAgQIEKhBAQGAGmxUVSJAgAABAgQIECBAgAABAgQIECBAgAABAgIAvgMECBAgQIAAAQIECBAgQIAAAQIECBAgQKAGBQQAarBRVYkAAQIECBAgQIAAAQIECBAgQIAAAQIECAgA+A4QIECAAAECBAgQIECAAAECBAgQIECAAIEaFBAAqMFGVSUCBAgQIECAAAECBAgQIECAAAECBAgQICAA4DtAgAABAgQIECBAgAABAgQIECBAgAABAgRqUEAAoAYbVZUIECBAgAABAgQIECBAgAABAgQIECBAgEBvBAQIECBQvMAll1wS999//y4z6N+/f+y7774xbNiwOP7442PSpEnxpje9aZfnpIMf//jH41e/+lVLujPOOCO+/OUvt2zX4sqzzz4bf/EXf1FU1aZPnx5Llizp8NxvfvOb8da3vrXDY2nnxz72sXj44Yc7PP4P//APMWHChA6P7c7OJ554Iv7+7/8+L4sf/vCHMWLEiJZ9haRpSWyFAAECBAgQIECgbgVmzJgR9957727Vf/78+fGXf/mXu5VHJZxcSB+6kDSVUBdlIECAQCkEBABKoSgPAgTqVmD16tXx+OOPF1z/733ve/GZz3wm3vnOd8ZNN90UY8aM6fTcp59+Oi/vXaXtNJMqOfDyyy/HF77whfjxj38cK1euLKrUq1atyvNqnclPf/rTTgMAO3fujO9+97uxefPm1qe0rHe2vyVBkStbt25tV97t27fn5VZImrwTbBAgQIAAAQIECNSlwDPPPNOub9ldiC1btnT3lIpMX0gfupA0FVk5hSJAgEARAoYAKgLNKQQIENhdgf/8z/+ME088MX75y1/ublZVff7rr78e6en8o446KubMmRPpZvyeWHblnN4a2FM3+fdEXeRJgAABAgQIECBAgAABAgQIEChUQACgUCnpCBAgUGKBV155JT784Q/HH/7whxLnXD3ZzZ49Oy6++OJYv379Hi30f//3f3d6k39XwYE9WiiZEyBAgAABAgQIECBAgAABAgT2sIAhgPYwsOwJEKgvgQMPPDDS0D1p+dOf/hSvvvpqpFdpGxsb49vf/nbcdttt2f6cyrp167Khb2644Ybcrpa/119/fTZcUG7H0KFDc6s187ftkDd7qmLpzYI0V8N73vOedpe455572u3bGzuOPfbYvDke0jWPOOKIvXFp1yBAgAABAgQIEKhxgcGDB8eaNWu6Vcs0d1ktLPrZtdCK6kCAQCkFBABKqSkvAgTqXqBHjx7ZhL+tIdKN+8MPPzze8Y53xJVXXhknn3xy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qJClo7cECjnv4YcfjrPOOis2bNiQlzy9cZwe6knDAqV5xyZOnJh3XD87j8MGAQIE2gkIALQjsYMAAQJ7ViDdTE+vsrZejjnmmNabRa/v6iZ/R0PcpJv33X2Cv+0wQ6mDnsa+76ijn950SDfc05j7uypbrsK7eg04l6aYv+kGfy4AkM5vO4xRd8b/v/322/Nu/qfxVb/4xS/Gxz72sWgdHLnzzjvziurJpDwOGwQIECBAgAABAgTyBKZPn5538/9Nb3pTNhnw2972tkh97rQ899xzeeekDf3sdiR2ECBAIE+g6/ev8pLbIECAAIHdFZg5c2akp8hbLxdddFHrzaLXd3WTvaMAQOvJfVtfNN0g37RpU+tdLettAwDpQGdDCaVhclLHPb3dkIIcM2bMaMknrbTtrL/++ut5x0u1sasn/JNLmgOg0CXNIdB6OffccyPNpdD65n863tavbV1b52GdAAECBAgQIECAQD0LpIekli9fnkfwve99L04++eSWm//pYNs+dtqnn50ULAQIEOhcQACgcxtHCBAgUDKB9GR7Gnv+He94RyxYsCAv33QD+u/+7u/y9hW7savOb5pjIA2F03q57rrrWm9m642NjdlN+zRxWBqaKL1i+2//9m8t6f7yL/8yBg4c2LKdVmbNmhVbt27N25ee/v+P//iPbN+f/vSnSON5tp0UuHfv3nnnbNu2LW+7VBtt5wFone+uggOt0+XWlyxZklvN/qY3HNouqe5tAwXpLQkLAQIECBAgQIAAAQLtBR555JF2OzvqZ3/zm99sl04/ux2JHQQIEMgTyL/zknfIBgECBAh0VyANqZOGu8kt6cb/9u3bY/369dHRze10A3z+/PntJs7KnV/Kv+m12SuuuCI+/OEPt2R77733xgc/+MH46le/GmkC4cceeyw+/elPt5T197//faxbty6+8pWvtJyThgy66qqrIr3JkFvSTfH0au4ll1ySPU2f3ghIQYPWE+Sm619wwQW5U7K/++23X952Gk7oC1/4Qhx55JFZwOCaa67JO17sxoEHHhhvfOMb2z1VlPLrbgBg1KhRmVOuLHfddVek4X4mTZoUqb0ffPDB+NSnPhWbN2/OJcn+tg2Q5B20QYAAAQIECBAgQKCEAi+//HLe75JCsn73u98dc+bMKSRpydOkPnbbJb1NnH4rpb78iy++mK3feOONbZO1exCpXQI7CBAgUOcCAgB1/gVQfQIESiuQnnT/3e9+V1Cm6YZ46mDv6un0gjLqRqIPfehD8Y1vfCNaP8W+cOHCSJ80TM+WLVva5ZYCBump/9bLJz/5ybj55pvz6vqb3/wmmxy3dbrW65/97Gej7TBEbd9ISOlTRz8taU6BFAzIjfeZ7dyNf9KN/ravFafsujP+f0r/rne9K37wgx+k1WxJN/3f8573ZHVLTx89//zzuUN5f9esWZO3bYMAAQIECBAgQIDAnhLozu+SXBnSBLvlWtJDVIcddli07jOnh4re8IY3xAknnBBLly6NVKeOlnTOSSed1NEh+wgQIECgWcAQQL4GBAgQKINA6tymDu3/+3//b69evVevXnH//ffHlClT2l23o5v/H/jAB+Lb3/52u7T77LNP9tR7GpOzkCVdL93Mb7ucdtppcfDBB7fdnW2nm+npSZ9SLR096T9y5MjszYfuXCPN1/DXf/3X7U5Jw/7kbv4fcMAB0fbthTQE0jPPPNPuPDsIECBAgAABAgQI1LtA+p1yyy23tBvP/7XXXotf//rXLTf/zzzzzDjjjDPyuH72s5/lbdsgQIAAgXwBAYB8D1sECBAouUCamHfo0KFx3HHHZUPgpKfHn3766Uiv2JZj6d+/fzYPwdy5c7Mn+9OT9m2X9GR+esI/TbyVbvZ3tKTXdNNwN2l4oPRkTkfLuHHj4ic/+Ul2vY6e5E8d/TRWfts3AVLaNGdB6yGEOsq/O/vSmxZty9Ddp//T9VIeP/rRj7KJf9tOupwszzrrrFi2bFk2TFKa+Di3pDcFWs+lkNvvLwECBAgQIECAAAECkb0ZnX5ftH37ONkMHz48ezAp/baYOnVqHteiRYuyYVfzdtogQIAAgRaBHs03JJpatqwQIECAQN0JpKdqfvvb32bD+QwbNiyOOOKIbBz/tjfLu4JJ44ymG98vvPBCdn4a7icFPgpZ0n9FKSiSzk/njB07NtrOD1BIPns7TQpQpCGf0tP/qb7ptemOAip7u1yuR4AAAQIECBAgQKBaBdJvg8bGxqyfvXPnzkgPFR1yyCHVWh3lJkCAQNkFBADK3gQKQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESi9gCKDSm8qRAAECBAgQIECAAAECBAgQIECAAAECBAiUXUAAoOxNoAAECBAgQIAAAQIECBAgQIAAAQIECBAgQKD0AgIApTeVIwECBAgQIECAAAECBAgQIECAAAECBAgQKLuAAEDZm0ABCBAgQIAAAQIECBAgQIAAAQIECBAgQIBA6QUEAEpvKkcCBAgQIECAAAECBAgQIECAAAECBAgQIFB2AQGAsjeBAhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgdILCACU3lSOBAgQIECAAAECBAgQIECAAAECBAgQIECg7AICAGVvAgUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKlFxAAKL2pHAkQIECAAAECBAgQIECAAAECBAgQIECAQNkFBADK3gQKQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESi8gAFB6UzkSIECAAAECBAgQIECAAAECBAgQIECAAIGyCwgAlL0JFIAAAQIECBAgQIAAAQIECBAgQIAAAQIECJReQACg9KZyJECAAAECBAgQIECAAAECBAgQIECAAAECZRcQACh7EygAAQIECBAgQIAAAQIECBAgQIAAAQIECBAovYAAQOlN5UiAAAECBAgQIECAAAECBAgQIECAAAECBMouIABQ9iZQAAIECBAgQIAAAQIECBAgQIAAAQIECBAgUHoBAYDSm8qRAAECBAgQIECAAAECBAgQIECAAAECBAiUXUAAoOxNoAAECBAgQIAAAQIECBAgQIAAAQIECBAgQKD0AgIApTeVIwECBAgQIECAAAECBAgQIECAAAECBAgQKLuAAEDZm0ABCBAgQIAAAQIECBAgQIAAAQIECBAgQIBA6QUEAEpvKkcCBAgQIECAAAECBAgQIECAAAECBAgQIFB2AQGAsjeBAhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgdILCACU3lSOBAgQIECAAAECBAgQIECAAAECBAgQIECg7AICAGVvAgUgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKlFxAAKL2pHAkQIECAAAECBAgQIECAAAECBAgQIECAQNkFBADK3gQKQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESi8gAFB6UzkSIECAAAECBAgQIECAAAECBAgQIECAAIGyCwgAlL0JFIAAAQIECBAgQIAAAQIECBAgQIAAAQIECJReQACg9KZyJECAAAECBAgQIECAAAECBAgQIECAAAECZRcQACh7EygAAQIECBAgQIAAAQIECBAgQIAAAQIECBAovYAAQOlN5UiAAAECBAgQIECAAAECBAgQIECAAAECBMouIABQ9iZQAAIECBAgQIAAAQIECBAgQIAAAQIECBAgUHoBAYDSm8qRAAECBAgQIECAAAECBAgQIECAAAECBAiUXUAAoOxNoAAECBAgQIAAAQIECBAgQIAAAQIECBAgQKD0AgIApTeVIwECBAgQIECAAAECBAgQIECAAAECBAgQKLuAAEDZm0ABCBAgQIAAAQIECBAgQIAAAQIECBAgQIBA6QUEAEpvKkcCBAgQIECAAAECBAgQIECAAAECBAgQIFB2AQGAsjeBAhAgQIAAAQIECBAgQIAAAQIECBAgQIAAgdIL9C59lvWZ47Zt2+L222+PZcuWxcqVK2P48OFx9NFHx/ve97448MAD6xNFrQkQIECAAAECBAjUqID+f402rGoRIECAAAECBGpMoEdT81JjdSp5dS666KJ45JFH4hOf+ERMmzatXf73339/pDTpxn/bZb/99otPf/rTMXPmzNhnn33aHrZNgAABAgQIECBAgECFCej/V1iDKA4BAgQIECBAgEDRAt4AKIAu3dh//PHH44UXXmiX+qGHHorTTjstXn/99ezYgAEDYvTo0fHyyy/Hs88+G5s3b46rrroq1q1bFzfeeGO78+0gQIAAAQIECBAgQKCyBPT/K6s9lIYAAQIECBAgQKB4AXMAFG8X6bXfCy+8MLv5f9BBB8X3vve9+OMf/5gFCxobG2PDhg1x6aWXRu/evWPevHkxf/783biaUwkQIECAAAECBAgQKKeA/n859V2bAAECBAgQIECgGAEBgGLU/v9z0tA/Tz31VPTq1St+9KMfxbnnnhs9evRoybGhoSG+/vWvx+zZs7N9s2bNajlmhQABAgQIECBAgACB6hLQ/6+u9lJaAgQIECBAgACBCAGA3fgWPPbYY9nZkyZNihNPPLHTnGbMmBEjRoyIVatWZUMDdZrQAQIECBAgQIAAAQIEKlZA/79im0bBCBAgQIAAAQIEOhEQAOgEppDdaYiftBx//PG7TJ7eCnjLW94Sab7l3I+GXZ7gIAECBAgQIECAAAECFSeg/19xTaJABAgQIECAAAECXQgIAHQBtKvDY8aMyQ4///zzu0qWHfvDH/6Q/d133327TCsBAQIECBAgQIAAAQKVJ6D/X3ltokQECBAgQIAAAQK7FhAA2LVP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AQIECHQt4I5010YtKc4///yYMmVK3HffffHwww/HkiVLYv369fHKK69kT/8PHjw4Dj300JbP+PHj48wzz4w0jqiFAAECBAgQIECAAIHqEtD/r672UloCBAgQIECAAIH2AgIA7U12uadXr15x+umnZ59dJnSQAAECBAgQIECAAIGqF9D/r/omVAECBAgQIECAQF0LmJG2rptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgUEAGq1ZdWLAAECBAgQIECAAAECBAgQIECAAAECBOpaQACgrptf5QkQIECAAAECBAgQIECAAAECBAgQIECgVgV612rF9nS9Vq9eHcuXL49nn302tm7dGtu2bYv+/fvHoEGDoqGhIcaOHRujR4/e08WQPwECBAgQIECAAAECe0FA/38vILsEAQIECBAgQIBAyQUEALpBmm7033bbbTFv3rxYunRpl2cOGTIkJk+eHJdddlmMHDmyy/QSECBAgAABAgQIECBQOQL6/5XTFkpCgAABAgQIECBQnIAhgAp0W7FiRYwaNSqmT5/e7uZ/nz59YtiwYTFgwIC83DZs2BA33XRTjBkzJubPn593zAYBAgQIECBAgAABApUroP9fuW2jZAQIECBAgAABAoULCAAUYJWG+Zk4cWKsW7cuG94nBQHuueeeaGxsjM2bN8eOHTvixRdfjC1btsT27dtj7dq1sWTJkrjyyitjxIgRsXPnzpg6dWosWrSogKtJQoAAAQIECBAgQIBAOQX0/8up79oECBAgQIAAAQKlFDAEUAGas2fPjjVr1sSxxx4bDzzwQKShfTpb+vbtG4ccckj2GT9+fFx77bVx3nnnxcKFC2PmzJlxzjnnRK9evTo73X4CBAgQIECAAAECBMosoP9f5gZweQIECBAgQIAAgZIJeAOgAMrFixdnqdJN/F3d/O8oq549e8aCBQvioIMOilWrVsXTTz/dUTL7CBAgQIAAAQIECBCoEAH9/wppCMUgQIAAAQIECBDYbQEBgC4It23bFsuWLcvG+D/uuOO6SN3x4d69e8eECROygwIAHRvZS4AAAQIECBAgQKASBPT/K6EVlIEAAQIECBAgQKBUAgIAXUj269cv0iS/mzZtysb47yJ5p4fT0/9pOeywwzpN4wABAgQIECBAgAABAuUV0P8vr7+rEyBAgAABAgQIlFZAAKALzx49ekR68j9N5HvDDTd0kbrjw3fccUcsXbo0Bg4cGGPGjOk4kb0ECBAgQIAAAQIECJRdQP+/7E2gAAQIECBAgAABAiUUEAAoAPOKK67IUl199dUxbdq0SGOCNjU1dXlmY2NjzJo1KyZPnpylv/jiiyPNCWAhQIAAAQIECBAgQKByBfT/K7dtlIwAAQIECBAgQKB7Ar27l7w+U7///e+PSy65JObOnRs333xz9klD+YwePTqbFHjo0KHR0NCQDRG0cePGSJ+1a9dmT/3nAgWnnnpqzJ49uz4B1ZoAAQIECBAgQIBAFQno/1dRYykqAQIECBAgQIDALgUEAHbJ8+eDc+bMiXHjxsU111wTaTz/NWvWZJ8/p+h47aijjooZM2bEBRdcEGkyYAsBAgQIECBAgAABApUvoP9f+W2khAQIECBAgAABAl0LuCPdtVFLivPPPz+mTJkS9913Xzz88MOxZMmSWL9+fbzyyivZ0/+DBw+OQw89tOUzfvz4OPPMMyONI2ohQIAAAQIECBAgQKC6BPT/q6u9lJYAAQIECBAgQKC9gABAe5Nd7unVq1ecfvrp2WeXCR0kQIAAAQIECBAgQKDqBfT/q74JVYAAAQIECBAgUNcCZqSt6+ZXeQIECBAgQIAAAQIECBAgQIAAAQIECBCoVQEBgFptWfUiQIAAAQIECBAgQIAAAQIECBAgQIAAgboWEACo6+ZXeQIECBAgQIAAAQIECBAgQIAAAQIECBCoVQEBgFptWfUiQIAAAQIECBAgQIAAAQIECBAgQIAAgboWEACo6+ZXeQIECBAgQIAAAQIECBAgQIAAAQIECBCoVYHetVqxUtXrpZdeirFjx5Yqu3j++edLlpeMCBAgQIAAAQIECBAorYD+f2k95UaAAAECBAgQIFBeAQGALvz79OkTr732Wqxfv76LlA4TIECAAAECBAgQIFDtAvr/1d6Cyk+AAAECBAgQINBaQACgtUYH6/vvv388+eST8aEPfSh++ctfZikuvPDCkr4V0MFl7SJAgAABAgQIECBAoAwC+v9lQHdJAgQIECBAgACBPSYgAFAA7dChQ+MnP/lJnH322fHzn/88Hnroobjxxhtj3333LeBsSQgQIECAAAECBAgQqCYB/f9qai1lJUCAAAECBAgQ2JWAAMCudFod69u3b9xyyy1x7LHHxooVK+LSSy+Nb33rW61SlG91586d8aUvfSlefPHFogrxq1/9KjsvDXVkIUCAAAECBAgQIEAgQv/ft4AAAQIECBAgQKAWBHo0NS+1UJG9VYdbb701zj///OjZs2csX748jj766L116U6v8+tf/zrGjx/f6fFCDwwYMCC2bNlSaHLpCBAgQIAAAQJVITB48ODYtGlTbNy4MRoaGqqizApZOQL6/5XTFkpCgAABAgQIEChEQP8/X0kAIN+joK1JkybFXXfdFVOmTIkFCxYUdM6eTrRw4cKiJyr+4Q9/GPfee28cfPDB8fvf/35PF1X+BAgQIECAAIG9KuAHwF7lrsmL6f/XZLOqFAECBAgQIFCjAvr/+Q1rCKB8j4K2Fi1alD1Blt4CqJTl3HPPLboojY2NWQCgV69eRefhRAIECBAgQIAAAQK1KqD/X6stq14ECBAgQIAAgdoXEAAooo379+8fw4cPL+JMpxAgQIAAAQIECBAgUG0C+v/V1mLKS4AAAQIECBAgkBOonEfYcyXylwABAgQIECBAgAABAgQIECBAgAABAgQIENhtAQGA3SaUAQECBAgQIECAAAECBAgQIECAAAECBAgQqDwBQwDthTbZsmVL7NixI7tSmoTCQoAAAQIECBAgQIBA7Qro/9du26oZAQIECBAgQKDaBLwBsBdabNq0aTFkyJDssxcu5xIECBAgQIAAAQIECJRRQP+/jPguTYAAAQIECBAgkCcgAJDHYYMAAQIECBAgQIAAAQIECBAgQIAAAQIECNSGgCGA9kI7Tpw4MQz9sxegXYIAAQIECBAgQIBABQjo/1dAIygCAQIECBAgQIBAJiAAsBe+COkV4PSxECBAgAABAgQIECBQ+wL6/7XfxmpIgAABAgQIEKgWAUMAVUtLKScBAgQIECBAgAABAgQIECBAgAABAgQIEOiGgABAN7AkJUCAAAECBAgQIECAAAECBAgQIECAAAEC1SJgCKAiW2r16tWx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8eqrr0ZTU1MLVjqePqnzv2XLlmz/1VdfLQDQImSFAAECBAgQIECAQPUI6P9XT1spKQECBAgQIECAAIEksFsBgC996Utx1VVXFSzZs2fPGDx4cMHpJSRAgAABAgQIECBAoHIE9P8rpy2UhAABAgQIECBAgEAhAkUHAJ577rn44he/mF3jqKOOive9733Z0/7XX399HH/88XHuuefGU089Fb/5zW/isccei/79+8cTTzwRI0eOLKRc0hAgQIAAAQIECBAgUEEC+v8V1BiKQoAAAQIECBAgQKBAgaIDAI8++mg2tM/w4cOzG/wDBgyI1157LW666abYsGFDXHnlldGjR4+sGJ/5zGdi1qxZMWfOnPjGN75RYNEkI0CAAAECBAgQIECgUgT0/yulJZSDAAECBAgQIECAQOECPQtPmp8yPd2flgsvvDDSzf+07LPPPvHmN7851q5dmz39n+1s/ue6666LD3/4wzFv3rwsWJDb7y8BAgQIECBAgAABAtUhoP9fHe2klAQIECBAgAABAgRaCxQdAFi3bl2Wz4gRI1rnF2PGjMm209A/rZezzz47Xn/99bjzzjtb77ZOgAABAgQIECBAgEAVCOj/V0EjKSIBAgQIECBAgACBNgJFBwByN/63bduWl2WaDyAtbQMAb3/72zvcn+30DwECBAgQIECAAAECFS2g/1/RzaNwBAgQIECAAAECBDoUKDoAcPTRR2cZLlmyJC/jN77xjdl2GiO09bJq1aps8/nnn2+92zoBAgQIECBAgAABAlUgoP9fBY2kiAQIECBAgAABAgTaCBQdADj++OOjb9++8b3vfS++//3vt2R7wgknZOv33ntv/O///m/L/kWLFmXrhx9+eMs+KwQIECBAgAABAgQIVIeA/n91tJNSEiBAgAABAgQIEGgtUHQAYNiwYXHttdfGq6++GpMnT46TTz45y3f48OFxxhlnRBoa6PTTT49PfepT8Vd/9VcxZ86c7HhuKKDWhbBOgAABAgQIECBAgEBlC+j/V3b7KB0BAgQIECBAgACBjgSKDgCkzNLN/XTzv0ePHtkN/9wFZs2aFQcccECsXbs2vva1r8XixYuzQ2mC4OnTp+eS+UuAAAECBAgQIECAQBUJ6P9XUWMpKgECBAgQIECAAIFmgd0KAPTs2TMWLlwYK1asiMsvv7wFdNy4cfHggw/GWWedFYMGDYr0tNCUKVOyQECfPn1a0lkhQIAAAQIECBAgQKB6BPT/q6etlJQAAQIECBAgQIBAEui9Owwvv/xy9qT/6NGjI31aL8cdd1zccccd0dTUlL0h0PqYdQIECBAgQIAAAQIEqk9A/7/62kyJCRAgQIAAAQIE6lug6DcANm7cGAcffHBMmjQpVq9e3aliGh7IQoAAAQIECBAgQIBAdQvo/1d3+yk9AQIECBAgQIBAfQoUHQC48847Y8eOHXH33XfHfvvtV596ak2AAAECBAgQIECgTgT0/+ukoVWTAAECBAgQIECgpgSKDgA899xzGcSQIUMifSwECBAgQIAAAQIEdlfg1ltvjR//+Me7m43z94CA/v8eQJUlAQIECBAgQIAAgT0sUHQA4JxzzonevXvH+vXrs7cA9nA5ZU+AAAECBAgQIFDjAlu3bo3zzz8/pk6dWuM1rc7q6f9XZ7spNQECBAgQIECAQH0LFD0J8DHHHBM/+tGPsh9oZ599dlxyySXx9re/PZsM+A1veEOnE//269cv+vbtW9/qak+AAAECBAgQINBOYOfOndm+V199td0xO8ovoP9f/jZQAgIECBAgQIAAAQLdFSg6APDwww/HzJkzs5v5r732Wlx//fXZp6sCXH311fH5z3++q2RVd3zbtm1x++23x7Jly2LlypUxfPjwOProo+N973tfHHjggVVXHwUmQIAAAQIECBAg0FpA/7+1RoT+f76HLQIECBAgQIAAgcoUKDoA8Mc//jGeeOKJbteqR48e3T6n3CdcdNFF8cgjj8QnPvGJmDZtWrvi3H///ZHSpBv/bZfLL788Pv3pT2fBkn322aftYdsECBAgQIAAAQIEqkJA///PzaT//2cLawQIECBAgAABApUtUHQAYNy4cUWN/T9q1KjKFumgdOnG/uOPPx4vvPBCu6MPPfRQnHbaafH6669nxwYMGJANg/Tyyy/Hs88+G5s3b46rrroq1q1bFzfeeGO78+0gQIAAAQIECBAgUA0C+v//10r6/9XwbVVGAgQIECBAgACBnEDRAYAhQ4bEu971rlw+Bf3dvn17pMndamVJr/1eeOGF2c3/gw46KObOnRuTJ09umf9g06ZNcc0112Q3/ufNmxdvfvOb4yMf+UitVF89CBAgQIAAAQIE6khA////hv3R/6+jL72qEiBAgAABAgRqQKBnsXVYvHhx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AAr4GlxxxRXxgQ98IK6++upobGyMqVOnxsknnxzpx8GulpT2u9/9blxzzTXR1NQUF198caQ5AUq9pCGKTjzxxN3O9pVXXtntPGRAgAABAgQIECBAoNoF9P+rvQWVnwABAgQIECBAICfQo/nGdFNuw9/OBS699NKYO3duS4I0lM/o0aOzSYGHDh0aDQ0N2RBBGzdujPRZu3Zt9tR/jvfUU0+NX/ziF5HmAyj1snXr1vj4xz8e69evLyrrJ598MpucOE1w/NJLLxWVh5MIECBAgAABArsr8Ic//CEGDRoU+++/f5TywYTBgwdnwzmmPlrqs1kIFCKg/1+IkjQECBAgQIAAgeIF9P+Lt+vOmQIA3dC65ZZbsqf5c+P5F3LqUUcdFTNmzIgLLrgg0niilbhcfvnlcf3118fw4cPjueeeq8QiKhMBAgQIECBQBwJ+ANRBI1dZFfX/q6zBFJcAAQIECBCoKgH9/73TXKV/HH3vlLssVzn//PNjypQpcd9998XDDz8cS5YsyZ66T0+obdmyJdLTZYceemjLZ/z48XHmmWd2OVRQWSrjogQIECBAgAABAgQI7FJA/3+XPA4SIECAAAECBAhUgYAAQDcbqVevXnH66adnn26eKjkBAgQIECBAgAABAlUmoP9fZQ2muAQIECBAgAABAnkCpZ+RNi97GwQIECBAgAABAgQIECBAgAABAgQIECBAgEA5BLwBsBfU0/BAO3bsyK6UhgmyECBAgAABAgQIECBQuwL6/7XbtmpGgAABAgQIEKg2AW8A7IUWmzZtWgwZMiT77IXLuQQBAgQIECBAgAABAmUU0P8vI75LEyBAgAABAgQI5AkIAORx2CBAgAABAgQIECBAgAABAgQIECBAgAABArUhYAigvdCOEydODEP/7AVolyBAgAABAgQIECBQAQL6/xXQCIpAgAABAgQIECCQCQgA7IUvQnoFOH0sBAgQIECAAAECBAjUvoD+f+23sRoSIECAAAECBKpFwBBA1dJSykmAAAECBAgQIECAAAECBAgQIECAAAECBLohIADQDSxJCRAgQIAAAQIECBAgQIAAAQIECBAgQIBAtQgYAqjIllq9enUsX748nn322di6dWts27Yt+vfvH4MGDYqGhoYYO3ZsjB49usjcnUaAAAECBAgQIECAQCUJ6P9XUmsoCwECBAgQIECAQKECAgCFSjWnSzf6b7vttpg3b14sXbq0yzOHDBkSkydPjssuuyxGjhzZZXoJCBAgQIAAAQIECBCoHAH9/8ppCyUhQIAAAQIECBAoTsAQQAW6rVixIkaNGhXTp09vd/O/T58+MWzYsBgwYEBebhs2bIibbropxowZE/Pnz887ZoMAAQIECBAgQIAAgcoV0P+v3LZRMgIECBAgQIAAgcIFBAAKsErD/EycODHWrVuXDe+TggD33HNPNDY2xubNm2PHjh3x4osvxpYtW2L79u2xdu3aWLJkSVx55ZUxYsSI2LlzZ0ydOjUWLVpUwNUkIUCAAAECBAgQIECgnAL6/+XUd20CBAgQIECAAIFSChgCqADN2bNnx5o1a+LYY4+NBx54INLQPp0tffv2jUMOOST7jB8/Pq699to477zzYuHChTFz5sw455xzolevXp2dbj8BAgQIECBAgAABAmUW0P8vcwO4PAECBAgQIECAQMkEvAFQAOXixYuzVOkm/q5u/neUVc+ePWPBggVx0EEHxapVq+Lpp5/uKJl9BAgQIECAAAECBAhUiID+f4U0hGIQIECAAAECBAjstoAAQBeE27Zti2XLlmVj/B933HFdpO74cO/evWPChAnZQQGAjo3sJUCAAAECBAgQIFAJAvr/ldAKykCAAAECBAgQIFAqAQGALiT79esXaZLfTZs2ZWP8d5G808Pp6f+0HHbYYZ2mqaUDTU1NMWfOnMg9PVVLdVMXAgQIECBAgACB2hXQ/6/dtlUzAgQIECBAgEA9CggAdNHqPXr0iPTkf5rI94YbbugidceH77jjjli6dGkMHDgwxowZ03GiGtv7xBNPxCc/+cm47LLLaqxmqkOAAAECBAgQIFDLAvr/tdy66kaAAAECBAgQqD8BAYAC2vyKK67IUl199dUxbdq07Kn29IR7V0tjY2PMmjUrJk+eHCn9xRdfHGlOgHpYXn311ayaub/1UGd1JECAAAECBAgQqA0B/f/aaEe1IECAAAECBAgQiOgNoWuB97///XHJJZfE3Llz4+abb84+aSif0aNHZ5MCDx06NBoaGrIhgjZu3Bjps3bt2uyp/1yg4NRTT43Zs2d3fTEpCBAgQIAAAQIECBAoq4D+f1n5XZwAAQIECBAgQKCEAgIABWKm8ezHjRsX11xzTaTx/P8/9u4ETo6iXhx4hYQjEMGE+74CUURACIoil4CCqCAqPOEJCqLylAcCioIPBJ4SfHJ54VO5FFAeIIiKiKKAcmgQEAQF5QoYOeQWwun8+9f+e5jZnZmd3Z3ezM58+/PZ7HR3dXXV9zczqe3qrpozZ07+M9Tha6+9djrwwAPTnnvumWIyYAsBAgQIECBAgAABAt0voP3f/TFSQgIECBAgQIAAgaEFXJEe2qiaYo899ki77757uvzyy9M111yTZs+enR566KH0+OOP53f/T5s2La2wwgrVn5kzZ6YddtghxTiiFgIECBAgQIAAAQIExpeA9v/w4nX11Ven1VZbLf97aHhHSk2AAAECBAgQIFCWgA6AYcpOnDgxbb311vnPMA+VnAABAgQIECBAgACBcSag/d9ewOIp6U033TS96U1vSpdddll7B0lFgAABAgQIECBQukB/zEhbOqMTECBAgAABAgQIECBAoH8F4qnoWB577LH+RVBzAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QroABitoOMJECBAgAABAgQIECBAgAABAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QroABitoOMJECBAgAABAgQIECBAgAABAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QroABitoOMJECBAgAABAgQIECBAgAABAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QroABitoOMJECBAgAABAgQIECBAgAABAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QroABitoOMJECBAgAABAgQIECBAgAABAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QroABitoOMJECBAgAABAgQIECBAgAABAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QroABitoOMJECBAgAABAgQIECBAgAABAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QroABitoOMJECBAgAABAgQIECBAgAABAgQIECBAgEAXCugA6MKgKBIBAgQIECBAgAABAgQIECBAgAABAgQIEBitgA6A0Qo6ngABAgQIECBAgAABAgQIECBAgAABAgQIdKGADoAuDIoiESBAgAABAgQIECBAgAABAgQIECBAgACB0QpMGm0G/Xr8XXfdlW655ZZ07733pqeffjrNmzcvTZ48OS2xxBJp6tSpaf3110/Tp0/vVx71JkCAAAECBAgQINBTAtr/PRVOlSFAgAABAgQI9I2ADoBhhDou9J999tnpq1/9arrxxhuHPHLJJZdMu+yySzr44IPTGmusMWR6CQgQIECAAAECBAgQ6B4B7f/uiYWSECBAgAABAgQIjEzAEEBtut1+++1pzTXXTPvss8+gi/8LLbRQWnrppdOiiy5al9vDDz+cTj755DRjxox02mmn1e2zQoAAAQIECBAgQIBA9wpo/3dvbJSMAAECBAgQIECgfQEdAG1YxTA/2267bbr//vvz4X2iE+Cyyy5L99xzT3ryySfTs88+mx588MH01FNPpWeeeSbNnTs3zZ49Ox166KFp9dVXTy+88ELaa6+90vnnn9/G2SQhQIAAAQIECBAgQGB+Cmj/z0995yZAgAABAgQIEOikgCGA2tCcNWtWmjNnTlpnnXXSlVdemWJon2bLwgsvnJZffvn8Z+bMmenoo49Ou+22WzrnnHPSIYccknbaaac0ceLEZofbToAAAQIECBAgQIDAfBbQ/p/PAXB6AgQIECBAgACBjgl4AqANyquuuipPFRfxW138b5TVAgsskM4888y07LLLpjvuuCPdeeedjZLZRoAAAQIECBAgQIBAlwho/3dJIBSDAAECBAgQIEBg1AI6AIYgnDdvXrr55pvzMf7XXXfdIVI33j1p0qS02Wab5Tt1ADQ2spUAAQIECBAgQIBANwho/3dDFJSBAAECBAgQIECgUwI6AIaQXGSRRVJM8vvoo4/mY/wPkbzp7rj7P5ZVVlmlaRo7CBAgQIAAAQIECBCYvwLa//PX39kJECBAgAABAgQ6K6ADYAjPCRMmpLjzPybyPe6444ZI3Xj3RRddlG688cY0ZcqUNGPGjMaJbCVAgAABAgQIECBAYL4LaP/P9xAoAAECBAgQIECAQAcFdAC0gfnpT386T3XEEUekvffeO8WYoJVKZcgj77nnnvT5z38+7bLLLnn6D3/4wynmBLAQIECAAAECBAgQINC9Atr/3RsbJSNAgAABAgQIEBiewKThJe/P1DvvvHPaf//900knnZROPfXU/CeG8pk+fXo+KfBSSy2Vpk6dmg8R9Mgjj6T4mTt3bn7Xf9FRsOWWW6ZZs2b1J6BaEyBAgAABAgQIEBhHAtr/4yhYikqAAAECBAgQINBSQAdAS56Xdp544olpww03TEcddVSK8fznzJmT/7yUovGrtddeOx144IFpzz33TDEZsIUAAQIECBAgQIAAge4X0P7v/hgpIQECBAgQIECAwNACrkgPbVRNsccee6Tdd989XX755emaa65Js2fPTg899FB6/PHH87v/p02bllZYYYXqz8yZM9MOO+yQYhxRCwECBAgQIECAAAEC40tA+398xUtpCRAgQIAAAQIEBgvoABhs0nLLxIkT09Zbb53/tExoJwECBAgQIECAAAEC415A+3/ch1AFCBAgQIAAAQJ9LWBG2r4Ov8oTIECAAAECBAgQIECAAAECBAgQIECAQK8KeAJghJG966670i233JLuvffe9PTTT6d58+alyZMnpyWWWCKfEHj99dfPJwkeYfYOI0CAAAECBAgQIECgiwS0/7soGIpCgAABAgQIECDQtoAOgLapUn6h/+yzz05f/epX04033jjkkUsuuWTaZZdd0sEHH5zWWGONIdNLQIAAAQIECBAgQIBA9wjEjT7a/90TDyUhQIAAAQIECBAYvoAhgNo0u/3229Oaa66Z9tlnn0EX/xdaaKG09NJLp0UXXbQut4cffjidfPLJacaMGem0006r22eFAAECBAgQIECAAIHuFdD+797YKBkBAgQIECBAgED7AjoA2rCKYX623XbbdP/99+fD+0QnwGWXXZbuueee9OSTT6Znn302Pfjgg+mpp55KzzzzTJo7d26aPXt2OvTQQ9Pqq6+eXnjhhbTXXnul888/v42zSUKAAAECBAgQIECAwPwU0P6fn/rOTYAAAQIECBAg0EkBQwC1oTlr1qw0Z86ctM4666Qrr7wyxdA+zZaFF144Lb/88vnPzJkz09FHH5122223dM4556RDDjkk7bTTTmnixInNDredAAECBAgQIECAAIH5LKD9P58D4PQECBAgQIAAAQIdE/AEQBuUV111VZ4qLuK3uvjfKKsFFlggnXnmmWnZZZdNd9xxR7rzzjsbJbONAAECBAgQIECAAIEuEdD+75JAKAYBAgQIECBAgMCoBXQADEE4b968dPPNN+dj/K+77rpDpG68e9KkSWmzzTbLd+oAaGxkKwECBAgQIECAAIFuEND+74YoKAMBAgQIECBAgECnBHQADCG5yCKLpJjk99FHH83H+B8iedPdcfd/LKusskrTNHYQIECAAAECBAgQIDB/BbT/56+/sxMgQIAAAQIECHRWQAfAEJ4TJkxIced/TOR73HHHDZG68e6LLroo3XjjjWnKlClpxowZjRONcmulUknPP//8iH5efPHFUZ7d4QQIECBAgAABAgR6Q0D7vzfiqBYECBAgQIAAAQL/EjAJcBvvhE9/+tPpXe96VzriiCPSPffck/baa6/0hje8IcUfB62WSHvWWWelo446KsUF+g9/+MMp5gTo9HLvvfem9ddfP39KYTR5P/nkk6M5vOGxQxk1PMhGAgQIECBAgAABAvNRQPt/PuI7NQECBAgQIECAQEcFdAC0wbnzzjun/fffP5100knp1FNPzX9iKJ/p06fnkwIvtdRSaerUqfkQQY888kiKn7lz5+Z3/ceF/1i23HLLNGvWrDbONvwk0akwefLk9I9//GP4B2dHxBMA//znP/MnFEaUQYOD1lhjjbT66qunLbbYosFemwgQIECAAAECgwVe9rKXpZkzZ6YVV1xx8E5bCIyhgPb/8LGj7R8/8XePhQABAgQIECDQjoD2fztKo08zIbtA/a8r1KPPq+dz+Pa3v53fzV+M599Ohddee+104IEHpj333DPFeKLduJx//vnp3e9+d/6Uw3nnndeNRVQmAgQIECBAgMCIBaZNm5Y/KRk3acRNGxYC7Qpo/7crJR0BAgQIECBAoHsEtP/rY+EJgHqPlmt77LFH2n333dPll1+errnmmjR79uz00EMPpccffzy/+z/eXCussEL1J+5g22GHHYYcKqjlSe0kQIAAAQIECBAgQGC+CGj/zxd2JyVAgAABAgQIEOiggA6AYWJOnDgxbb311vnPMA+VnAABAgQIECBAgACBcSag/T/OAqa4BAgQIECAAAECdQKdn5G2LnsrBAgQIECAAAECBAgQIECAAAECBAgQIECAwPwQ0AEwP9SdkwABAgQIECBAgAABAgQIECBAgAABAgQIlCxgCKCSgSP7p556Kj377LP5mWKeAAsBAgQIECBAgAABAr0roP3fu7FVMwIECBAgQIDAeBPwBMAYRGzvvfdOSy65ZP4zBqdzCgIECBAgQIAAAQIE5qOA9v98xHdqAgQIECBAgACBOgEdAHUcVggQIECAAAECBAgQIECAAAECBAgQIECAQG8IGAJoDOK47bbbpvEw9M9NN92UDj744I6IVCqVdNFFF6WJEyemKVOmdCRPmXRe4LnnnksPP/xwWmaZZfJYdf4McuyEwOOPP55eeOEFTxF1ArOkPOI774EHHkhLLLFEmjx5cklnke1oBebNm5fi87TsssumCRMmjDY7x5ckEP8vRYze+MY3duwMTz/9dMfykhGBdgS0/7X/23mfzI802v/zQ33459T+H77ZWB+h/T/W4iM7n/b/yNzG+ijt//LFJ2RfWpXyT+MM3Szwk5/8JL31rW/t5iIqGwECBAgQIEBgVAILLLBAevLJJ9Oiiy46qnwcTKAXBC6++OK0ww479EJV1IEAAQIECBAg0FBA+/8lFh0AL1n07asXX3wxnX766emxxx7rmMF9992XTjzxxLT44ounzTffvGP5yqizAn/4wx/S3XffnV71qlel1VdfvbOZy61jAtFJF5/T7bbbLk2a5MGtjsF2MKP7778/XXfddfldyxtvvHEHc5ZVJwVmz56dP6kxc+bMtNxyy3Uya3l1SCCedrrkkkvSggsumI455pgO5fqvbNZZZ520/fbbdzRPmREYrwLa/+M1cqMvt/b/6A3HIgft/7FQHt05tP9H5zdWR2v/j5X0yM+j/T9yu+EcqQNgOFo1ae+66650yy23pHvvvTfFY+XxWFEM+xDDP0ydOjWtv/76afr06TVH9NfL3/3udykusGy44YYpXlu6U+A///M/05e//OX0pS99Ke23337dWUilyr9XnnjiiXzokuhUs3SfwIUXXpje+c53pp122ildcMEF3VdAJcoFIkYRq4hRxMrSfQLxXRdtqfiui+EPLAS6SUD7v3U0rr/++rTRRhtp/7dmmu97tf/newjaKkD8X6j93xbVfEuk/T/f6Id1Yu3/YXHNl8Ta/2PD7lbSYTjHhf6zzz47ffWrX0033njjkEcuueSSaZdddsnH1V9jjTWGTC8BAQIECBAgQIAAAQLdI6D93z2xUBICBAgQIECAAIGRCSwwssP676jbb789rbnmmmmfffYZdPF/oYUWSksvvfSgMWVjEouTTz45zZgxI5122mn9h6bGBAgQIECAAAECBMapgPb/OA2cYhMgQIAAAQIECNQJ6ACo42i8EsP8bLvttinGeIvhfaIT4LLLLkv33HNPPpncs88+mx588MH01FNPpWeeeSbNnTs3xThjhx56aD6ueoxntddee6Xzzz+/8QlsJUCAAAECBAgQIECgawS0/7smFApCgAABAgQIECAwSgFDALUBOGvWrDRnzpwUk8ddeeWVKYb2abYsvPDCafnll89/Ygz8o48+Ou22227pnHPOSYccckg+5vDEiRObHW47AQIECBAgQIAAAQLzWUD7fz4HwOkJECBAgAABAgQ6JuAJgDYor7rqqjxVXMRvdfG/UVYLLLBAOvPMM9Oyyy6b7rjjjnTnnXc2SmYbAQIECBAgQIAAAQJdIqD93yWBUAwCBAgQIECAAIFRC+gAGIJw3rx56eabb87H+F933XWHSN1496RJk9Jmm22W79QB0NjIVgIECBAgQIAAAQLdIKD93w1RUAYCBAgQIECAAIFOCegAGEJykUUWSTHJ76OPPpqP8T9E8qa74+7/WFZZZZWmaewgQIAAAQIECBAgQGD+Cmj/z19/ZydAgAABAgQIEOisgA6AITwnTJiQ4s7/mMj3uOOOGyJ1490XXXRRuvHGG9OUKVPSjBkzGieylQABAgQIECBAgACB+S6g/T/fQ6AABAgQIECAAAECHRTQAdAG5qc//ek81RFHHJH23nvvFGOCViqVIY+855570uc///m0yy675Ok//OEPp5gTwEKAAAECBAgQIECAQPcKaP93b2yUjAABAgQIECBAYHgCk4aXvD9T77zzzmn//fdPJ510Ujr11FPznxjKZ/r06fmkwEsttVSaOnVqPkTQI488kuJn7ty5+V3/RUfBlltumWbNmtWfgGpNgAABAgQIECBAYBwJaP+Po2ApKgECBAgQIECAQEsBHQAteV7aeeKJJ6YNN9wwHXXUUSnG858zZ07+81KKxq/WXnvtdOCBB6Y999wzxWTAFgIECBAgQIAAAQIEul9A+7/7Y6SEBAgQIECAAAECQwu4Ij20UTXFHnvskXbfffd0+eWXp2uuuSbNnj07PfTQQ+nxxx/P7/6fNm1aWmGFFao/M2fOTDvssEOKcUQtBAgQIECAAAECBAiMLwHt//EVL6UlQIAAAQIECBAYLKADYLBJyy0TJ05MW2+9df7TMqGdBAgQIECAAAECBAiMewHt/3EfQhUgQIAAAQIECPS1gBlp+zr85VX+ZS97WZ558bu8M8l5NAJFfKZMmTKabBxbskDEacEFF0wLL7xwyWeS/UgFfJZGKje2xxVxKn6P7dmdrR2B+J6L7zsxakdLGgLdJVC0J31+uysuA0tTxKeI18D91rtDIOKk/d8dsWhWCp+lZjLdtb2IU/G7u0qnNCGg/T8274MJ2SS1lbE5lbP0m8Cll16a1lprrbT66qv3W9XHTX2feOKJFHHacccd8wbmuCl4nxX0pptuyocZe/3rX99nNR8/1Y3/Si+66KK0ySabpGWXXXb8FLzPSvrAAw+ka6+9Nr3jHe8wPF8Xxz6GWVxsscXSeuut18WlVDQCBBoJaP83Uumubdr/3RWPZqXR/m8m0z3btf+7JxatSqL930qne/Zp/5cfCx0A5Rs7AwECBAgQIECAAAECBAgQIECAAAECBAgQGHMBQwCNObkTEiBAgAABAgQIECBAgAABAgQIECBAgACB8gV0AJRv7AwECBAgQIAAAQIECBAgQIAAAQIECBAgQGDMBXQAjDm5ExIgQIAAAQIECBAgQIAAAQIECBAgQIAAgfIFdACUb+wMBAgQIECAAAECBAgQIECAAAECBAgQIEBgzAV0AIw5uRMSIECAAAECBAgQIECAAAECBAgQIECAAIHyBXQAlG/sDAQIECBAgAABAgQIECBAgAABAgQIECBAYMwFdACMObkTEiBAgAABAgQIECBAgAABAgQIECBAgACB8gV0AJRv7AwECBAgQIAAAQIECBAgQIAAAQIECBAgQGDMBXQAjDm5ExIgQIAAAQIECBAgQIAAAQIECBAgQIAAgfIFdACUb+wMBAgQIECAAAECBAgQIECAAAECBAgQIEBgzAV0AIw5uRMSIECAAAECBAgQIECAAAECBAgQIECAAIHyBXQAlG/sDAQIECBAgAABAgQIECBAgAABAgQIECBAYMwFdACMObkTEiBAgAABAgQIECBAgAABAgQIECBAgACB8gV0AJRv7AwECBAgQIAAAQIECBAgQIAAAQIECBAgQGDMBXQAjDm5ExIgQIAAAQIECBAgQIAAAQIECBAgQIAAgfIFdACUb+wMBAgQIECAAAECBAgQIECAAAECBAgQIEBgzAV0AIw5uRMSIECAAAECBAgQIECAAAECBAgQIECAAIHyBXQAlG/sDAQIECBAgAABAgQIECBAgAABAgQIECBAYMwFdACMObkTEiBAgAABAgQIECBAgAABAgQIECBAgACB8gV0AJRv3DNnqFQqad68eR2vT1n5dryg4yTDp59+OoVpGcuTTz5ZRrZ9mWeZcQrQeA+8+OKLpb0X+iFoZX43PfPMM3l8+sGx7DqW9VmK+D/11FNlF7+v8n/iiSfS3//+947Wuaz4d7SQMiMwjgXK+r+wrHzHMfWoil7md6H2/6hCU3dwmXGKE8XnSvu/jnzYK2V+N2n/DzscTQ8o67MU8df+b8o+oh3a/yNiK+UgHQClsPZWpt///vfTxhtvnBZddNE0ZcqUtMEGG6SPfvSj6d577x1VRcvKd1SFGqcH33///WnfffdNK6ywQlpsscXS0ksvnd7+9ren008/fVQ1ikbKsccem8c8Yr/44ounpZZaKm222WbpvPPOG1Xe/XhwWXEaaPnss8/mMZs0aVL62te+NnC39SEEyvpuuuuuu9Jee+2V1ltvvfy7NL5TX/3qV6evf/3rOgOGiMnA3WV9lqLRf8opp6SNNtooj1F876244oppp512SrfeeuvAYlgfhkBc+J8+fXpaf/31h3FU46Rlxb/x2Wwl0J8CZf1fWFa+/Rilsr4Ltf87+24qK04DS6n9P1BkeOtlfTdp/w8vDq1Sl/VZ0v5vpT66fdr/o/Pr+NHZm91CoKnA/vvvH7eS5z/ZxcRKdmG5ur7KKqtUbrvttqbHttpRVr6tztmr+26//fZKdlG+Gpd4HbEq4vapT31qRFXPOngqq622WjWfhRdeuLLyyitXFlhggeq2rJOh8vzzz48o/347qKw4NXI88MADqzH6yle+0iiJbU0Eyvpu+slPflKZOnVqNS7LLrtsJT5Txef0zW9+c+WFF15oUiqbawXK+iyF/7bbbluNyeTJkyvx/9yECRPybQsuuGDltNNOqy2K120KZE8PVrbZZpvcMeuobvOoxsnKin/js9lKoD8Fyvq/sKx8+zFKZX0Xav939t1UVpwalVL7v5FKe9vK+m7S/m/Pv51UZX2WtP/b0R9ZGu3/kbmVeVQ8JmYh0FDgjDPOqF4IOfLIIyv/+Mc/8nQ333xzZZ111sn3LbfccpXsEamGxzfbWFa+zc7Xy9ufe+65ytprr53HYq211qrcdNNNeXWzR3Urs2bNql64Ov7444fFEP8Rbr755nm+caEyu9u/enEy3gef+cxnqnkffvjhw8q7HxOXFadGlj//+c+rsYmLyzoAGik13lbWd9Mtt9xS7Th7y1veUpk9e3ZegHhfxOe06FQ76qijGhfM1qpAmZ+lz372s/l3XsTjhBNOqH7nzZ07t7Lddtvl+6JT4I9//GO1PF4MLZDdrVWJDq6is2s0HQBlxn/omkhBoD8Eyvq/sKx8+yMq9bUs67tQ+7/eebRrZcWpUbm0/xuptLetrO8m7f/2/NtJVeZnSfu/nQgMP432//DNxuIIHQBjoTwOzxENwDXXXDP/gz0bsmJQDbJHeap3s37zm98ctL/ZhrLybXa+Xt+eDfFTvWB19913D6puXJyPiy5xF2vYt7tccskl1Ys10aBstHz84x/P08RdsdG7a2kuUFacBp7xkUceqWTDleQdAMVTIDoABio1Xi/zu2nPPffMPyurrrpqJWI0cNlxxx2rn9OB+6zXC5T5WYoO7fi+3G+//epPmq1Fp2pcuI79cYedpT2Bb3/725Vp06blbp3oACgz/u3VSCoCvS1Q1v+FZeXb29FoXruyvgu1/5ubj2RPWXEaWBbt/4Ei7a+X+d2k/d9+HIZKWeZnSft/KP3h79f+H77ZWB2hA2CspMfZeeKib/HH+q9//euGpd9nn33yNNmcAA33N9pYVr6NztUP2974xjfmMYihFRot8RhvMXzFhRde2ChJw20xbFDEP570aLbE0wbFe+Q3v/lNs2S2ZwJlxWkg7nve8548JnGBshiuSwfAQKXG62V9N82ZM6cSnWRxV/k111zT8OS/+tWvKptssknlbW97W+Whhx5qmMbGfwmU9Vl64IEHqt9nF198cUPu3XbbLU+z5ZZbNtxv40sC2cRsle23375qGk+qvf/978/XR/MEQFnxf6nkXhHob4Gy/i8sK99+jVZZ34Xa/519R5UVp4Gl1P4fKNL+elnfTdr/7cegnZRlfZa0/9vRbz+N9n/7VvMrpUmAsyuYlsECV199db4xu3M8bbrppoMTZFv+7d/+Ld9+4403ppjcpp2lrHzbOXevpcnG3k/XXXddXq33vve9Dau30korpew/zHxfTGzU7vLa1742ffKTn0wf+tCHmh4Sk2MWy+OPP1689HuAQJlxqj1V1tOezj333PSqV70qff7zn6/d5XUbAmV9N2WPFad4D7zmNa9J2UX+hiWJz2jWOZB++MMf5pNsN0xkY+5Y1ndedpd6evnLX54rx2RVjZZs+LN8c3yvWloLZHcjpmzc25R1fKUPfvCD6frrrx/15L9j9V3aumb2EuhtgbL+Lywr396ORuPalfldqP3f2HwkW8uMU215tP9rNYb/uqzvJu3/4cei2RFlfpa0/5upj2y79v/I3MbyKB0AY6k9js5VXGSZPn1601LX7svGuGuarnZHWfnWnqNfXv/hD39IzzzzTF7dbPz/ptUu4tRujCKjd77znenYY49N2YRITfO98sorq/s23HDD6msv6gXKjFNxpmz4p5QNW5IWWmihdOaZZ6Zsctlil99tCpT13VR0jm6xxRbVkkRDNi74X3vttSkbPqu63YvWAmV+lrIhs1I2P0NegC9/+cspeyS8rjC33npruvTSS/Nt2eTndfusDBaIC////u//nuL/nWyYwLTYYosNTjTMLWXGf5hFkZxAzwqU9X9hWfn2bCBaVKzM70Lt/xbww9xVZpyKomj/FxIj/13Wd5P2/8hjMvDIMj9L2v8DtUe3rv0/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Fltsse4H6dISlvVZeuaZZ/L/82IS9JggbLXVVktZp0CXKvRvscqKf/+KqjmBeoGy/i8sK9/60vfPmu/C8RFrcer+OJX53aT937n4l/VZ0v7vXIzKzKms+JdZ5m7JWwdAt0RCOQgQIECAAAECBAgQIECAAAECBAgQIECAQAcF3M7WQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQQEdAB3ElBUBAgQIECBAgAABAgQIECBAgAABAgQIEOgWAR0A3RIJ5SBAgAABAgQIECBAgAABAgQIECBAgAABAh0U0AHQQUxZESBAgAABAgQIECBAgAABAgQIECBAgACBbhHQAdAtkVAOAgQIECBAgAABAgQIECBAgAABAgQIECDQQYFJHcxLVgQIEChd4MUXX8zPscACC6QJEyaUfj4nSOmf//xnqlQqifnYvRvCO9wbLRMnTmy02TYCBAgQIECAQE8KaP+PfVi1/8feXPt/7M2dkUA/CXgCoJ+ira4ExrnA888/nyZNmpT/HH300eO8NuOn+G9+85tz84985CPjp9DjvKTHH3989b1evOeL39ERs+iii6ZVV1017bTTTunKK68c57VVfAIECBAgQIBAYwHt/8YuZW/V/i9beHD+2v+DTWwhQKBzAjoAOmcpJwIECBAgULpA3B00b968NGfOnPSDH/wgbbHFFvnPLbfcUvq5nYAAAQIECBAgQIAAgbEV0P4fW29nI9CLAoYA6sWoqhMBAgQ6KLD55punl7/85WmjjTbqYK6yalfgkksuSVOmTKkmjzvhnnzyyXTHHXekCy+8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DoToCIihjmL56U9/mv9u9k/xB0BMGvWXv/ylWbIUQw3FEmOSrrzyyk3TtbNjpPUeKu+iLo3mbyiOjSckio6UIm7Fvm74HXM6xN1MMY9DEfuiXNG5FEtcyD/11FPTzJkz6y7+x74YEiiW6BAauMSQQrvvvnu+OSZAjvdcDHUVTxEU2wceY50AAQIECBAgMN4FtP/rI1i0mbX/613m15r2//ySd14C41NAB8D4jJtSEyAwHwSaDZFy4okn5hdfYwiZGFKl3SXG6i8mD/7sZz/b8LD4wyPuuI6x1/fZZ598vP24SLvtttumuJv78MMPb3jca1/72nx7XBAuJgSLSVtjfP9dd901FcPF1B4cd3mvscYa+aZFF120dteg15H/kksumW+PzoNGy5NPPplOOumkfNd2222XhsqzUR6120Za79o8Gr1+61vfmm8+55xzUu3EzLVpv/SlL+UT4ca2nXfeuXbXfH0dJieccEK68MIL83LERf4Y2qdYav9wrZ2Podgfv6MDJ4aFiqXR8EaxPd5rsfziF79IMRdALDFnxHLLLZe/9g8BAgQIECBAoBcFtP9fiqr2/0sW8/OV9v/81HduAuNXQAfA+I2dkhMgMMYCMe55XAiuXb773e+mL3zhC/mmGDqnuNhem6bZ6+gwOP744/Pdl19+efrIRz6ST+hbpH/kkUfySX5j8tZY4i6PWOIcMRluLDG0y49//OP8qYB8Q/ZP3JXz3//93/lqTLpbXKSNToSYsDcu8kZetU8PROIY1uX3v/99flyRf77S4J8YOufzn/98vidcjjzyyOpY+rExHpnecccd09///ve01FJLpaOPPrpBLsPbNNJ6D3WWsIiL4+Hyzne+szrBcXHcGWecUS1/xGj99dcvdo3J76uvvjpdeeWV1Z/LLrssH+bpmGOOSRtssEE68MAD83LEXVknn3xyXZmiAyg6mmKJDqCIR+0SHUFbb711inkgYon3TnQaDFyiY2vDDTfMh8Eq4m74n4FK1gkQIECAAIFeE9D+fymi2v8vWZT9Svu/bGH5E+hDgewPfQsBAgTGhUA2Bn9cmcx/sgvOdWXOxqzPt2fjm9dtL1b233//fH82Pnqxqe53duE037/MMsvUbc8uzOfb47wrrbRS/nrGjBmV97znPZV11123uu+www6rOy5WsqF18v0HHHDAoH21G7KLytV8sovlle23374S9cmGWKlu32+//WoPqWQX2CvZ0wPV/Ysvvnglu2hfye4Ar0ybNi3fHnXJGo91x82aNat6TNQpu5hdycb6r2y88cbV7dnd3pVsuJ3qcdkF4nxf9iRCdVu8yO4+qWRzCVSPC5/sAnplq622qkyZMiXfHmXJhoupOy5WhopXpFlxxRXzPLJOkljNl5HWuzi+2e9f/vKXleyJhvx82RwJlazjJI9xNtxPtX577713JRuCqS6LkdajLpMGK1/84her5y3e861+Z3NPVP761782yKlSyYaPquaVDedTiXhGLLMnBSpZB0Elm3uikk2sXE2TDRnVMJ9sYuhqmohrNiF1w3Q2EiBAgAABAgQ6JaD9/5LkSNvB2v8vGda+0v7X/q99P3hNoNcF4k4/CwECBMaFwPz+AyAbHia/yF57YX7q1KmVbPieQReGA7TdDoBIm43NX4mLzXFBtvZC75prrlnJxm1vmP9dd91V2XPPPes6CuLYuKCbDc9SyeYliKwHLaeddlolu1u87jxxXDb8TyV7wmFQ+mYdAEXCbEiYSja+f11+UY9tttmmks0BUCSr+z2aC+cjrXddARqsZJMmV7LhfSrZkxl1dcnmVqgcccQReYfHwMNGU4+BedWut+oAiPdfeEcnRcQ/ezqg9tCGr7OnGCrLL798Xb2intFhk01unNet6AA59thjG+bx8MMPV6JzJN4rH/3oRxumsZEAAQIECBAg0EkB7f96zZG2g7X/6x2LNe3/f90Apf1fvCP8JtC7AhOiatkf8xYCBAgQaCBwxRVXpOwib77nwQcfTDFOfkwIG5P2xoS5MbzK5MmTGxw5sk0xbv4tt9ySzykQ4/Fnd8Hnw/a0yi2Gbcku4qa5c+fmE+3GJLUx1E+rJb76szvG88mLY3LdGNbm5S9/eatDhtwXQxbFhMUxOez06dNTTEpc5jKSerdTnhhXM+YCiCGSwj88YyLc8b5EnLM/GvP3SlGviFW7yxNPPJEPJzVv3rz8/Z89ddDuodIRIECAAAECBMaNgPZ/+6HS/m/fan6k1P6fH+rOSaA7BXQAdGdclIoAgS4RaPQHQJcUTTEIjKnAN7/5zXxC6ph3IBvWaUzP7WQECBAgQIAAgbES0P4fK2nn6XYB7f9uj5DyEWhfoPUtou3nIyUBAgQIECDQowLxdElMOhxLNs9Gj9ZStQgQIECAAAECBAgQCAHtf+8DAr0l0P6z/71Vb7UhQIAAAQIEWgjEcFTZ/A8pm1Mi/e53v0uxnk18nfbYY48WR9lFgAABAgQIECBAgMB4FND+H49RU2YC7QnoAGjPSSoCBAgQINBXAjHHxZ/+9Kf8wn9UfJlllknZZNUpmzy4rxxUlgABAgQIECBAgEA/CGj/90OU1bFfBcwB0K+RV28CBNoSePTRR9Nvf/vbPO1WW22VFlpoobaOk4hALwice+65+d3/MUn0m9/85rTkkkv2QrXUgQABAgQIECDQVED7vymNHX0goP3fB0FWxb4U0AHQl2FXaQIECBAgQIAAAQIECBAgQIAAAQIECBDodQGTAPd6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAAECBAgQIECg1wV0APR6hNWPAAECBAgQIECAAAECBAgQIECAAAECBPpSQAdAX4ZdpQkQIECAAAECBAgQIECAAIFagcceeyzdeuut6cknn6zd7DUBAgQIEBjXApPGdekVngABAj0usP/++6crrriiZS0nT56cFltssbT00kunV7/61emtb31r2mCDDVoeEzs/9rGPpV//+tfVdG95y1vSscceW13v1hfjtdzd6qlcBAgQIECAAIF+Fbj22mvThRdemG6++eb85957761STJs2La222mrpbW97WzrooIPS4osvXt03Hl784Q9/SP/+7/9eV9QLLrggrb766nXbOrHSqfb5Pvvsk2bPnt2wSN/4xjfSa1/72ob7YuO+++6brrnmmob7v/zlL6fNNtus4b6x2rjFFlukxx9/vHq6gw8+uC4+YxmvaiG8IECgbwR0APRNqFWUAIHxKHDXXXel3//+920X/Xvf+1467LDD0lZbbZVOPvnkNGPGjKbH3nnnnXV5t0rbNJP5sGO8lns+UDklAQIECBAgQIBAA4Fnn302feQjH0lnnHFGqlQqDVKk9Mgjj+Q/119/ffrKV76S/uu//isdcMABDdN248ann366rq0fZXzmmWdKKWqn2ud33HHHoDIXBb744oubdgC88MIL6ayzzmr65EY3PNERF/jjPVUsDz74YPEy/z2W8ao7sRUCBPpCwBBAfRFmlSRAoN8EfvnLX6bXve516ec//3m/VV19CRAgQIAAAQIECDQViAv+73vf+9Lpp5/e9OL/wIPjwu3HP/7xdOqppw7cZX2MBFr9XRNPDXTDRf4xonAaAgQIDFtAB8CwyRxAgACB8SEQ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ylVAAKBcW0a5CBAgQIAAAQIECBAgQIAAAQIECBAgQIDAcQiU9/DL46iYUwkQIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrYAAQNU2rYoRIECAAAECBAgQIECAAAECBAgQIECAQC0LCADUcuurOwECBAgQIECAAAECBAgQIECAAAECBAhUrUDvqq1ZiSt28ODBePDBB2PdunWxadOmOOOMM+Kcc86J973vffHa1762xKVxOwIECBAgQIAAAQIEulJA/78rdV2bAAECBAgQIECgswR6HG1InXWxar3ORz/60Xj00Ufjz//8z2PmzJnHVPMnP/lJpDzpwX9+es1rXhOf+tSnYs6cOXHCCSfkH7ZNgAABAgQIECBAgECZCej/l1mDKA4BAgQIECBAgEDRAt4AKIAuPdh//PHH49lnnz0m96pVq+Kyyy6LV155JTs2YMCAGDVqVDz33HOxbdu22LdvX3zmM5+JHTt2xL333nvM+XYQIECAAAECBAgQIFBeAvr/5dUeSkOAAAECBAgQIFC8gDUAireL9Nrvtddemz38HzZsWHzrW9+KF198MQsW1NfXx+7du+PGG2+M3r17x8KFC2Px4sXHcTenEiBAgAABAgQIECDQnQL6/92p794ECBAgQIAAAQLFCAgAFKP2H+ekqX82btwYvXr1iu9+97sxderU6NGjR9MV6+rq4p577ol58+Zl++bOndt0zBcCBAgQIECAAAECBCpLQP+/stpLaQkQIECAAAECBCIEAI7jX8Fjjz2WnX355ZfHxRdf3OqVZs+eHcOHD4/NmzdnUwO1mtEBAgQIECBAgAABAgTKVkD/v2ybRsEIECBAgAABAgRaERAAaAWmkN1pip+Uzj///Dazp7cCLrrookjrLTf+aGjzBAcJECBAgAABAgQIECg7Af3/smsSBSJAgAABAgQIEGhHQACgHaC2Do8ZMyY7/Mwzz7SVLTv2wgsvZH9PPPHEdvPKQIAAAQIECBAgQIBA+Qno/5dfmygRAQIECBAgQIBA2wICAG37NDv67LPPZgv/Nu5MU//069cvVqxYkY3ub9yf/3fr1q3xyCOPZLsbfzTk57FNgAABAgQIECBAgEB5Cej/l1d7KA0BAgQIECBAgEDHBQQAOmD25S9/OU4++eS44IILYsaMGfHggw/GhAkTor6+PtI8/y2l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oP9fWe2ltAQIECBAgAABAscKCAAca9Lmnl69esWkSZOyT5sZHSRAgAABAgQIECBAoOIF9P8rvglVgAABAgQIECBQ0wJWpK3p5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWAQGAam1Z9SJAgAABAgQIECBAgAABAgQIECBAgACBmhYQAKjp5ld5AgQIECBAgAABAgQIECBAgAABAgQIEKhWgd7VWrGurtdTTz0V69evj23btsWBAwfi4MGD0b9//xg4cGDU1dXF2LFjY9SoUV1dDNcnQIAAAQIECBAgQKAEAvr/JUB2CwIECBAgQIAAgU4XEADoAGl60P/AAw/EwoULY+3ate2eOXjw4JgyZUrcdNNNMWLEiHbzy0CAAAECBAgQIECAQPkI6P+XT1soCQECBAgQIECAQHECpgAq0G3Dhg0xcuTIuP766495+N+nT58YOnRoDBgwoNnVdu/eHffdd1+MGTMmFi9e3OyYDQIECBAgQIAAAQIEyldA/79820bJCBAgQIAAAQIEChcQACjAKk3zM3ny5NixY0c2vU8KAjz00ENRX18f+/bti8OHD8fOnTtj//79cejQodi+fXusWbMmbrnllhg+fHgcOXIkZsyYEcuWLSvgbrIQIECAAAECBAgQINCdAvr/3anv3gQIECBAgAABAp0pIABQgOa8efNi69atce6558bGjRvjq1/9alx22WVx5plnxkknndTsCn379o3TTjstxo8fH3fccUds2rQppk6dmuWZM2dOvPzyy83y2yBAgAABAgSqQ2DLli3xute9Lu65557qqJBaEKhhAf3/Gm58VSdAgAABAgQIVJmAAEABDbpy5cos19KlSyPN69+R1LNnz1iyZEkMGzYsNm/eHOnhgESAAAECBAhUn8C6devi6aefjp/85CfVVzk1IlBjAvr/NdbgqkuAAAECBAgQqGIBAYB2GvfgwYORftCnOf7PO++8dnK3fLh3794xYcKE7KAAQMtG9hIgQIAAAQIECBAoBwH9/3JoBWUgQIAAAQIECBDoLAEBgHYk+/XrF2mR371792Zz/LeTvdXDafR/SmnaIIkAAQIECBAgQIAAgfIU0P8vz3ZRKgIECBAgQIAAgeIEBADacevRo0c28j8t5Hv33Xe3k7vlw8uXL4+1a9dm6wWMGTOm5Uz2EiBAgAABAgQIECDQ7QL6/93eBApAgAABAgQIECDQiQICAAVg3nzzzVmuW2+9NWbOnBlpTtCjR4+2e2Z9fX3MnTs3pkyZkuW/4YYbIq0JIBEgQIAAAQIECBAgUL4C+v/l2zZKRoAAAQIECBAg0DGB3h3LXpu5r7766pg1a1YsWLAgFi1alH3SVD6jRo3KFgUeMmRI1NXVZVME7dmzJ9Jn+/bt2aj/xkDBxIkTY968ebUJqNYECBAgQIAAAQIEKkhA/7+CGktRCRAgQIAAAQIE2hQQAGiT59WD8+fPj3HjxsVtt90WaT7/rVu3Zp9Xc7T8bfTo0TF79uy45pprIi0GLBEgQIAAAQIECBAgUP4C+v/l30ZKSIAAAQIECBAg0L6AJ9LtGzXlmD59ekybNi1WrFgRq1evjjVr1sSuXbvi+eefz0b/Dxo0KE4//fSmz/jx4+OKK66INI+oRIAAAQIECBAgQIBAZQno/1dWeyktAQIECBAgQIDAsQICAMeatLmnV69eMWnSpOzTZkYHCRAgQIAAAQIECBCoeAH9/4pvQhUgQIAAAQIECNS0gBVpa7r5VZ4AAQIECBAgQIAAAQIECBAgQIAAAQIEqlVAAKBaW1a9CBAgQIAAAQIECBAgQIAAAQIECBAgQKCmBQQAarr5VZ4AAQIECBAgQIAAAQIECBAgQIAAAQIEqlVAAKBaW1a9CBAgQIAAAQIECBAgQIAAAQIECBAgQKCmBQQAarr5VZ4AAQIECBAgQIAAAQIECBAgQIAAAQIEqlWgd7VWrLPq9bvf/S7Gjh3bWZeLZ555ptOu5UIECBAgQIAAAQIECHSugP5/53q6GgECBAgQIECAQPcKCAC049+nT5946aWXYteuXe3kdJgAAQIECBAgQIAAgUoX0P+v9BZUfgIECBAgQIAAgVwBAYBcjRa+n3zyyfHkk0/Ghz70ofiXf/mXLMe1117bqW8FtHBbuwgQIECAAAECBAgQ6AYB/f9uQHdLAgQIECBAgACBLhMQACiAdsiQIfG9730vrrzyyvjRj34Uq1atinvvvTdOPPHEAs6WhQABAgQIECBAgACBShLQ/6+k1lJWAgQIECBAgACBtgQEANrSyTnWt2/fuP/+++Pcc8+NDRs2xI033hhf+9rXcnJ039cjR47EnXfeGTt37iyqED/72c+y89JURxIBAgQIECBAgAABAhH6//4VECBAgAABAgQIVIOAAEAHWnHYsGExf/78mD59eixatCg+8YlPxDnnnNOBK3RN1scffzw++9nPHvfFX3zxxeO+hgsQIECAAAECBAgQqBYB/f9qaUn1IECAAAECBAjUroAAQAfb/iMf+Uj8wz/8Q/zgBz+Iz3/+87FkyZIOXqHzs1944YXxrW99q+iFiv/pn/4pHn744UjznUoECBAgQIAAAQIECLwqoP//qoVvBAgQIECAAAEClScgAFBEmy1btiz27NkTPXv2LOLsrjll6tSpRV+4vr4+CwD06tWr6Gs4kQABAgQIECBAgEC1Cuj/V2vLqhcBAgQIECBAoPoFBACKaOP+/fvHGWecUcSZTiFAgAABAgQIECBAoNIE9P8rrcWUlwABAgQIECBAoFGgfIawN5bIXwIECBAgQIAAAQIECBAgQIAAAQIECBAgQOC4BQQAjpvQBQgQIECAAAECBAgQIECAAAECBAgQIECAQPkJmAKoBG2yf//+OHz4cHanQYMGleCObkGAAAECBAgQIECAQHcJ6P93l7z7EiBAgAABAgQI5At4AyBfpAu2Z86cGYMHD84+XXB5lyRAgAABAgQIECBAoIwE9P/LqDEUhQABAgQIECBQ4wICADX+D0D1CRAgQIAAAQIECBAgQIAAAQIECBAgQKA6BUwBVIJ2nTx5cpj6pwTQbkGAAAECBAgQIECgDAT0/8ugERSBAAECBAgQIEAgExAAKME/hPQKcPpIBAgQIECAAAECBAhUv4D+f/W3sRoSIECAAAECBCpFwBRAldJSykmAAAECBAgQIECAAAECBAgQIECAAAECBDogIADQASxZCRAgQIAAAQIECBAgQIAAAQIECBAgQIBApQiYAqjIlnrqqadi/fr1sW3btjhw4EAcPHgw+vfvHwMHDoy6uroYO3ZsjBo1qsirO40AAQIECBAgQIAAgXIS0P8vp9ZQFgIECBAgQIAAgUIFBAAKlWrIlx70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I6D/Xz5toSQECBAgQIAAAQIEChEoOgDw9NNPx+c///nsHqNHj473ve992Wj/u+66K84///yYOnVqbNy4Mf71X/81Hnvssejfv3888cQTMWLEiELKJQ8BAgQIECBAgAABAmUkoP9fRo2hKAQIEChQIM3U8Id/+Ifx5je/uekZToGnykaAAAECVSJQdADgl7/8ZTa1zxlnnJE94B8wYEC89NJLcd9998Xu3bvjlltuiR49emRMn/70p2Pu3Lkxf/78+PKXv1wldKpBgAABAgQIECBAoHYE9P9rp63VlACB6hFIwdsf//jHsWXLFgGA6mlWNSFAgECHBHp2KHdO5jS6P6Vrr7020sP/lE444YS48MILY/v27dno/2xnw//ccccd8ZGPfCQWLlyYBQsa9/tLgAABAgQIECBAgEBlCOj/V0Y7KSUBAgRyBRrXaWz8m3vMdwIECBCoDYGiAwA7duzIhIYPH95MasyYMdl2mvonN1155ZXxyiuvxPe///3c3b4TIECAAAECBAgQIFABAvr/FdBIikiAAAECBAgQIEAgT6DoAEDjg/+DBw82u2RaDyCl/ADA2972thb3Zzv9DwECBAgQIECAAAECZS2g/1/WzaNwBAgQIECAAAECBFoUKDoAcM4552QXXLNmTbMLv/GNb8y20xyhuWnz5s3Z5jPPPJO723cCBAgQIECAAAECBCpAQP+/AhpJEQkQIECAAAECBAjkCRQdADj//POjb9++8a1vfSu+/e1vN132ggsuyL4//PDD8W//9m9N+5ctW5Z9P+uss5r2+UKAAAECBAgQIECAQGUI6P9XRjspJQECBAgQIECAAIFcgaIDAEOHDo3bb789fv/738eUKVPikksuya57xhlnxLve9a5IUwNNmjQpPvGJT8Tb3/72mD9/fna8cSqg3EL4ToAAAQIECBAgQIBAeQvo/5d3+ygdAQIECBAgQIAAgZYEig4ApIulh/vp4X+PHj2yB/6NN5g7d26ccsopsX379vjSl74UK1euzA6lBYKvv/76xmz+EiBAgAABAgQIECBQQQL6/xXUWIpKgAABAgQIECBAoEHguAIAPXv2jKVLl8aGDRvik5/8ZBPouHHj4qc//Wm85z3viYEDB0YaLTRt2rQsENCnT5+mfL4QIECAAAECBAgQIFA5Avr/ldNWSkqAAAECBAgQIEAgCfQ+Hobn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2rSxzTbbrMoaPiJQGoEXX3zR3+dvscUWpYkAZy2KAA0ARWHmJAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIFFeAIYCK683ZEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAoigANAEVh5iQIIIAAAggggAACCCCAAAIIIIAAAggggAACCBRXgAaA4npzNgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEiiJAA0BRmDkJAggggAACCCCAAAIIIIAAAggggAACCCCAAALFFaABoLjenA0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgaII0ABQFGZOggACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAcQVoACiuN2dDAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKAoAjQAFIWZkyCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUFwBGgCK683ZEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAoigANAEVh5iQIIIAAAggggAACCCCAAAIIIIAAAggggAACCBRXgAaA4npzNgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEiiJAA0BRmDkJAggggAACCCCAAAIIIIAAAggggAACCCCAAALFFaABoLjenA0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgaII0ABQFGZOggACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAcQVoACiuN2dDAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKAoAjQAFIWZkyCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUFwBGgCK683ZEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAoigANAEVh5iQIIIAAAggggAACCCCAAAIIIIAAAggggAACCBRXgAaA4npzNgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEiiJAA0BRmJN3kiAIbMWKFclLeB2n+LvvvrMffvihjo+azMPpmvzpp59Mfwm1F9C1KD9CYQK67pYvX17Yzgnc6+uvv7YvvviiVinndyeTS/9fFy5cWOvf4mXLlmUeiE8IIIBAngJ8D+cJxWYIIJAIgULKs99++y33q4m4OkqTyEKuydLElLOuCQEaANaEaoKP+cADD9jAgQOtWbNm1rx5c+vbt6+dcMIJNm/evASr1C7pb7zxhu27777WqVMn7yjLnj172jHHHGOLFi2q3cHY2gusXLnSX4sNGza0a6+9FpU8BT7++GM7/PDDbcstt/T/n3UtbrHFFnb99dfTGJCHoSpCbr75Zuvfv7/303fihhtuaMOHD7d33303jyMkcxNV/Hfr1s369OmTFwC/O9FMf/7zn619+/Z25513Rm/w/5eqce+vf/2r/47UNbruuuta69atbYcddrD77rsv576sRAABBCTA9zDXQTkJnH766bbzzjvnfB155JHlFGXiUoECtSnPLliwwI477jjbYIMNbO2117Y2bdrY3nvvbbfeemsFypCkUgnke03OmjUr5/dn+P36/PPPlyopnLdQAVdBQUCgTgTGjBmjrtX+5SpaA/fDlfrsKrOD2bNn18l5Kvkg48aNC+rVq5dya9euXeAqY1Kf119//eDxxx+vZII1krZTTz01ZXj11VevkXNU2kEfe+yxoEWLFik3XYuNGzdOfd5tt92CH3/8sdKSXWfpkc2QIUNSXk2bNg30PRj+/15rrbWCW265pc7OVykHck+OBbvuuqt3czdBNSaL351ookcffTTQNabf5BtuuCF6I7fUNc4Hm2yySeo61f/xjTbaKKhfv35qmbsBDdyTaFmPwQoEEEi2AN/Dyc7/ckz9xhtvnPoNC+9Nq/51nQzKMerEqUIEalOeff/99wPX8SJ1zeq96lLCa/aMM86oEBWSUUqB2lyTukcNr79cfx988MFSJolzFyDAEwDuiiasvsDtt99uV1xxhT/QeeedZ0uXLvW91WfOnGm9evWyuXPn2k477WR6pI0QLfDkk0/a2LFj/SN/Bx10kM2fP9/UG+Crr76yadOm2eabb+5dDznkED+sQ/RRWFpVYPLkyXbZZZdVXcznHALqnT5s2DBbsmSJ7b777jZ9+nR/LWpokPHjx5urHDRdrxdccEGOoyR7lXpfP/XUU95K15/s5syZY//9739t6NChfmiv448/3tTDgvCzgIar0dNPTz/9dF4k/O5EM9199902YsSIGoeP0xBBo0aNsk8++cRcA5/v7a9hqvR7rceD//SnP5lrsLJ//vOfdv7550efjKUIIJBoAb6HE539ZZl4lV1V3lL43e9+Z3/5y18iXyeddFJZxp9IxV+gNuVZDfW71157+WEvN910U3vrrbfs888/9/dguudSOUx/uZeN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gAACCCCAAAIIIIAAAggggAACCCAQKUAXxEgWFiKAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEG8BGgDinX/EHgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBSAEaACJZWIgAAggggAACCCCAAAIIIIAAAggggAACCCCAQLwFaACId/4RewQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEIgVoAIhkYSECCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAvEWoAEg3vlH7BFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQiBSgASCShYUIIIAAAggggAACCCCAAAIIIIAAAggggAACCMRbgAaAeOcfsUcAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIFKABoBIFhYigAACCCCAAAIIIIAAAggggAACCCCAAAIIIBBvARoA4p1/xB4BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgUgBGgAiWViIAAIIIIAAAggggAACCCCAAAIIIIAAAggggEC8BWgAiHf+EXsEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBCIFaACIZGEhAggggAACCCCAAAIIIIAAAggggAACCCCAAALxFqABIN75R+wRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEIgUoAEgkoWFCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjEW4AGgHjnH7FHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCBSgAaASBYWIoAAAggggAACCCCAAAIIIIAAAggggAACCCAQbwEaAOKdf8QeAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIFIARoAIllYiAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAvAVoAIh3/hF7BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQiBWgAiGRhIQIIIIAAAggggAACCCCAAAIIIIAAAggggAAC8RagASDe+UfsEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCIFKABIJKFhQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIxFuABoB45x+xRwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgUoAGgEgWFiKAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEG8BGgDinX/EHgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBSAEaACJZWIgAAggggAACCCCAAAIIIIAAAggggAACCCCAQLwFaACId/4RewQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEIgVoAIhkYSECCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAvEWoAEg3vlH7BFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQiBSgASCShYUIIIAAAggggAACCCCAAAIIIIAAAggggAACCMRbgAaAeOcfsUcAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIFKABoBIFhYigAACCCCAAAIIIIAAAggggAACCCCAAAIIIBBvARoA4p1/xB4BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgUgBGgAiWViIAAIIIIAAAggggAACCCCAAAIIIIAAAggggEC8BWgAiHf+EXsEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBCIFaACIZGEhAggggAACCCCAAAIIIIAAAggggAACCCCAAALxFqABIN75R+wRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEIgUoAEgkoWFCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjEW4AGgHjnH7FHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCBSgAaASBYWIoAAAggggAACCCCAAAIIIIAAAggggAACCCAQbwEaAOKdf8QeAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIFIgYaRS1mIAAIIlKnATz/95GNWv359q1evXpnGsrKi9b///c+CIDDMi5ev8pZ7VGjQoEHUYpYhgAACCCCAAAIVKUD5v/jZSvm/+OaU/4tvzhkRSJIATwAkKbdJKwIxF/jhhx+sYcOG/nX++efHPDXxif5uu+3mzY899tj4RDrmMb300ktT13p4zYd/1RDTrFkz23jjjW348OE2derUmKeW6COAAAIIIIAAAtEClP+jXdb0Usr/a1q4+vEp/1c3YQkCCNSdAA0AdWfJkRBAAAEEEFjjAuodtGLFCps7d649/PDDttNOO/nXO++8s8bPzQkQQAABBBBAAAEEEECguAKU/4vrzdkQqEQBhgCqxFwlTQgggEAdCuy44462/vrrW//+/evwqBwqX4HHH3/cmjdvntpcPeGWLVtmH374oT300EP23HPP+acA9t9/f3v99detadOmqW15gwACCCCAAAIIIIBAbQUo/9dWrG63p/xft54cDQEEzGgA4CpAAAEEEMgpcM455+Rcz8o1K/CLX/zCN8BEneXkk0+266+/3o477jibNWuWnX766XbllVdGbcoyBBBAAAEEEEAAAQTyEqD8nxfTGtuI8v8ao+XACCRWgCGAEpv1JByBZAisXLkyZ0K/++67nOuzrfz+++/txx9/zLY663L13q4p6NjhZGc1bRuu12Oh3377bfgx77/aR/vWVZBntslr8zlHTflV9RiFprvqcaI+a5idQkNt01HoebSf5mZQxb/C1VdfbZMnT/bva/pn+fLlNW3CegQQQAABBBBAIHYCNZXDKP9T/s92UVP+zybDcgQQiLsADQBxz0HijwACXuDEE0+07bff3ld+Llq0yE466STr3bu3Hw5l8803N63XcgVVwo8dO9a23nprP7TKOuusY5roKmoM9TfeeMMf91e/+pXfVxWsOs+6667rj73FFlvY3/72t8hK72OOOcZvO2XKFD9Wu+Kjcw0bNsweffRRf7zwn/nz59uRRx5pW265pa299tr++Or5od432W5iVIF78cUXm+KgYV+0X6dOnWzo0KF29913h4eu9vfll182pad9+/Z+Hw0vo+F9FN+FCxdW237MmDE+HRdddFG1dVowe/Zs+/Wvf21du3ZNxX2bbbaxs88+249VH7VTmF9PPfWUff3116Zz9OvXz+/fsmVLGzx4sD322GNRu1qh6Y48WNpCNboof+W+3nrr+Yl2O3fubPvuu689//zzaVuuers66Vh1lNV/d8YZZ1iTJk18Y84dd9wRecClS5fa73//e9Mj3W3btvXXvq5juZ9wwgm2ePHi1H5qWNF1qmv9kksuSS2v+kbb7bnnnn47zUdAQAABBBBAAAEEiiUQlsPU+YHyP+X/Qq47yv+U/wu5btgHgVgKuJt3AgIIIBALAdczXl3V/eu8887LiPPOO+/sl7sK8aB79+7+fb169QK9wn20zTfffBO4is3UsgYNGqTeuwr0YN68eRnHdZX3fr2rWA/ccCv+fcOGDYO+ffsGblz81L5nnXVWxn76sO222/r1rrEhWGuttVLbKj6u0SC1/QMPPBC4Su/U+jZt2gSuoSD12VXwB++9915qe71xjQJBmGYdT/t37NgxtY+WHXTQQYHrjZ+x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" width="768" /></p>
</div>
<div id="method-4-model-based-attribution-analysis-1" class="slide section level2">
<h2>Method 4: Model-based Attribution Analysis</h2>
<ul>
<li><span style="color:dodgerblue"><strong>Implementation:</strong></span></li>
</ul>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">model.<span class="dv">4</span><-<span class="kw">fit.model</span>(<span class="dt">dt =</span> adata, <span class="st">"trans"</span>, <span class="dt">input.names=</span><span class="kw">c</span>(<span class="st">"direct"</span>, <span class="st">"display"</span>,<span class="st">"email"</span>, <span class="st">"social"</span>, <span class="st">"past.purchase"</span>),
<span class="dt">model.type=</span><span class="st">"logistic"</span>, <span class="dt">digits =</span> <span class="dv">3</span>)
<span class="kw">datatable</span>(model.<span class="dv">4</span>)</code></pre></div>
<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":[["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>
<ul>
<li><span style="color:dodgerblue"><strong>Results & Interpretation: </strong></span></li>
</ul>
<p>From the summary, 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>
</div>
<div id="limitations-and-uncertainties" class="slide section level2">
<h2>Limitations and Uncertainties</h2>
<ul>
<li><p><span style="color:dodgerblue"><strong>Simulated dataset</strong></span>: data is simulated but not real</p></li>
<li><p><span style="color:dodgerblue"><strong>Other marketing channels</strong></span>: marketing channels in this case are limited</p></li>
<li><p><span style="color:dodgerblue"><strong>Holdout test on Tuesday only</strong></span>: On 2017-01-03, 2017-01-17, 2017-01-24, 2017-01-31, 2017-02-07, 2017-02-14, and 2017-02-21, we conducted holdout test. But we cannot see if the result would be different on other days during a week.</p></li>
<li><p><span style="color:dodgerblue"><strong>Small dataset</strong></span>: After combing the data, the informative dataset is not large enough to reach solid conclusions. Additionally, as the daily display impressions in the simulated dataset are pretty much the same, the data is not that informative from this perspective.</p></li>
</ul>
</div>
<!-- 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>