This repository has been archived by the owner on Aug 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
slides.html
192 lines (180 loc) · 79.9 KB
/
slides.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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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="Zaki Mughal, CougarCS, University of Houston" />
<meta name="date" content="2013-09-12" />
<title>Vagrant</title>
<!-- configuration parameters -->
<meta name="defaultView" content="slideshow" />
<meta name="controlVis" content="hidden" />
<style type="text/css">
table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
margin: 0; padding: 0; vertical-align: baseline; border: none; }
table.sourceCode { width: 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; }
code > span.dt { color: #902000; }
code > span.dv { color: #40a070; }
code > span.bn { color: #40a070; }
code > span.fl { color: #40a070; }
code > span.ch { color: #4070a0; }
code > span.st { color: #4070a0; }
code > span.co { color: #60a0b0; font-style: italic; }
code > span.ot { color: #007020; }
code > span.al { color: #ff0000; font-weight: bold; }
code > span.fu { color: #06287e; }
code > span.er { color: #ff0000; font-weight: bold; }
</style>
<!-- style sheet links -->
<link href="data:text/css,%40import%20url%28data%3Atext%2Fcss%3Bbase64%2CLyogRG8gbm90IGVkaXQgb3Igb3ZlcnJpZGUgdGhlc2Ugc3R5bGVzISBUaGUgc3lzdGVtIHdpbGwgbGlrZWx5IGJyZWFrIGlmIHlvdSBkby4gKi8KCmRpdiNoZWFkZXIsIGRpdiNmb290ZXIsIGRpdiNjb250cm9scywgLnNsaWRlIHtwb3NpdGlvbjogYWJzb2x1dGU7fQpodG1sPmJvZHkgZGl2I2hlYWRlciwgaHRtbD5ib2R5IGRpdiNmb290ZXIsIAogIGh0bWw%2BYm9keSBkaXYjY29udHJvbHMsIGh0bWw%2BYm9keSAuc2xpZGUge3Bvc2l0aW9uOiBmaXhlZDt9Ci5oYW5kb3V0IHtkaXNwbGF5OiBub25lO30KLmxheW91dCB7ZGlzcGxheTogYmxvY2s7fQouc2xpZGUsIC5oaWRlbWUsIC5pbmNyZW1lbnRhbCB7dmlzaWJpbGl0eTogaGlkZGVuO30KI3NsaWRlMCB7dmlzaWJpbGl0eTogdmlzaWJsZTt9Cg%3D%3D%29%3B%20%2F%2A%20required%20to%20make%20the%20slide%20show%20run%20at%20all%20%2A%2F%0A%40import%20url%28data%3Atext%2Fcss%3Bbase64%2CLyogVGhlIGZvbGxvd2luZyBzdHlsZXMgc2l6ZSwgcGxhY2UsIGFuZCBsYXllciB0aGUgc2xpZGUgY29tcG9uZW50cy4KICAgRWRpdCB0aGVzZSBpZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIG92ZXJhbGwgc2xpZGUgbGF5b3V0LgogICBUaGUgY29tbWVudGVkIGxpbmVzIGNhbiBiZSB1bmNvbW1lbnRlZCAoYW5kIG1vZGlmaWVkLCBpZiBuZWNlc3NhcnkpIAogICAgdG8gaGVscCB5b3Ugd2l0aCB0aGUgcmVhcnJhbmdlbWVudCBwcm9jZXNzLiAqLwoKLyogdGFyZ2V0ID0gMTAyNHg3NjggKi8KCmRpdiNoZWFkZXIsIGRpdiNmb290ZXIsIC5zbGlkZSB7d2lkdGg6IDEwMCU7IHRvcDogMDsgbGVmdDogMDt9CmRpdiNoZWFkZXIge3RvcDogMDsgaGVpZ2h0OiAzZW07IHotaW5kZXg6IDE7fQpkaXYjZm9vdGVyIHt0b3A6IGF1dG87IGJvdHRvbTogMDsgaGVpZ2h0OiAyLjVlbTsgei1pbmRleDogNTt9Ci5zbGlkZSB7dG9wOiAwOyB3aWR0aDogOTIlOyBwYWRkaW5nOiAzLjVlbSA0JSA0JTsgei1pbmRleDogMjsgIGxpc3Qtc3R5bGU6IG5vbmU7fQpkaXYjY29udHJvbHMge2xlZnQ6IDUwJTsgYm90dG9tOiAwOyB3aWR0aDogNTAlOyB6LWluZGV4OiAxMDA7fQpkaXYjY29udHJvbHMgZm9ybSB7cG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHJpZ2h0OiAwOyB3aWR0aDogMTAwJTsKICBtYXJnaW46IDA7fQojY3VycmVudFNsaWRlIHtwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxMCU7IGxlZnQ6IDQ1JTsgYm90dG9tOiAxZW07IHotaW5kZXg6IDEwO30KaHRtbD5ib2R5ICNjdXJyZW50U2xpZGUge3Bvc2l0aW9uOiBmaXhlZDt9CgovKgpkaXYjaGVhZGVyIHtiYWNrZ3JvdW5kOiAjRkNDO30KZGl2I2Zvb3RlciB7YmFja2dyb3VuZDogI0NDRjt9CmRpdiNjb250cm9scyB7YmFja2dyb3VuZDogI0JCRDt9CmRpdiNjdXJyZW50U2xpZGUge2JhY2tncm91bmQ6ICNGRkM7fQoqLwo%3D%29%3B%20%2F%2A%20sets%20basic%20placement%20and%20size%20of%20slide%20components%20%2A%2F%0A%40import%20url%28data%3Atext%2Fcss%3Bbase64%2CLyogRm9sbG93aW5nIGFyZSB0aGUgcHJlc2VudGF0aW9uIHN0eWxlcyAtLSBlZGl0IGF3YXkhICovCgpib2R5IHtiYWNrZ3JvdW5kOiAjRkZGIHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGg1Z0JPQWNUL0FNREF3TFcxdGIyOXZjYkd4czdPenRiVzF0N2UzdWZuNSsvdjcvZjM5K2Z2NysvMzkvZi8vOGJPenM3VzF0YmUzdDduNTdXOXZiM0d4dWYzOTg3ZTN0Ym41OTd2NzhiVzFyM096czduNXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNINUJBRUFBQUFBTEFBQUFBRG1BRTRCQUFYLzRDRWV6M1VaMVBOQWpwcENwQUxNOUd4TmdMWFVmRDhwQzZCQzFtTW9MQXBHYjduVU1SYVdCTE9td0FHT1JFVmxxSzM4TE5Od2JRSVdtMmZIMmFMU2NKemY4TnFJMUxnOENxcTZ3OUVvT0F3UFpUMEtGQmtJY1Zoa1N3bFFoM0U4RURock9tRUxGRVE1VlRNSlJ3d1FEVHRYRlJsYmoyaFJXd2taaFpoTURCVklOUXNaTXJNVWdxYTVQSE1pRHcwcWRnOGlnSUFPVWp4clZvOVlFRTBWRmFHNnNaNUltajJ6dUZ4RkZCUTFTbW01VUFBVHplSmhua0VWMStxV0Y4MjY4RE84SkE4R2JjSWpEMy92c3JRSXVHZWdLRmt5Sko0TkloQW9VVUxHYjhhRVp3UWxERVIyYTBvMFdkRGVMWUNRQUNDTkl3c2ZscUt4WnB5RUN4NE4vNzdocFc5ZVBnY2lya0V3RjJjakUzRHhmaHhVQjQzSEs0OGJkUnlqUWVGQ0QxVzNLalNrVVczSnhsY0FTdFpnRkFUTFVBQ01NdkJRRlZWQ0NwV201clIwMlF2bWdhM3FkRW50MTBwdDJpR2NnUEJRT2hIanoyZ1ZLQXg4bGlFREJIVUowbTVGb2d4WjJzQUFHQ1JRVE1wQ0xDYXErQVZlL0FsRFc3Qmk1aGd3UzNaelRCcFE0YTNkSk5nZ2dncWN5aGp4aHJydTFKbU1MQ0I0Q01yQ3N5aUxFV010RGZxeUt3cWpacllDcVNDaFQxSTBXa1BJSU1FMzVpVWpERndnT3dMQzlMUEpYVDlheXlCRHluQzN0VGJoYU9ZWnJJU0VMRGhZc0VBMzFrSzhWZkpHd2kzRDFSb1Y5a3JoMWtENzh4N0RjRWFkWjloNWNsODRZRUNFV2Y5b052VVF5WUZpZEhQRkJTV2g5cDhZRjdFSElWRWNXbEFJQVJlR0lZSjExRlYzM1NiaUdjVEFBd0JJaUptRURMaFl3MEppRE1SSWR4L3BZR0dJVXl4bFJvcVVmTkpBZkR3Q0lNSjFKUjVnandneWhLYVNWazZxZUJoQTJwZ1IyQk5LVlNXREJSRE1WQ1FjeGsyUjMxNDcwTktBanp3ZWdHU1NKT3doWG9vR3Zma2lEWEFHOFJnVHlDR24xSHZvVlhQUmwySk04R2NQRDlnM2czQVdNTGZoZndjMHdLWlloYzRnSXp4NVNRcFdpazRHeFFSZmFjR0pwU0RPQVNwZktOMG9JRUVHRFlocTVKcVBIaUFobk5Jc05nT3N1WlFtSVNPbGNXbmJNN0pxRnhpUlBRQ3JLaHc5RldRbWk0Q2UwT29jNG5Wa2tJeTBtaUtqT3Erdzh3UC9GK3kxTjBXVU5RNzc3S3dBL0RNQktJQWFzR3cranJRWUQ0M3F4bE9hVnBPeHAydW9jMFhyclVINU5ZRkRRWVJrSUFDZzU0NlFLcDN4d0Nyc0d4blV4ZXN6YUlaaDc3M3VBcERmampROElFVWEzam53SFZnQkh6bVJlOUx5a0RBODVNMTFzSmlMUWt6cFpQbVNpWVlDQ0JRU1FjcnhkTnpvVlZlYWNzTmNOSWVSTDM3K2xkZXp5aXZQc0lVUkJVbGNMYXBCRzlTeENqM290Y3hsRkp2U1UzSkRCNXMxMGU3R1ZSVXE3UzNud01tNmRJeUhkbFVMalFhdkVtODlZeXRYSTVMQm9GeUhHQXM1U1VBQnhXS0ZTRUMzMHgxVENFbmNaL1NFeEdMUUVQN0duWWYrUFFYajN1Nk5odU1xZ1hQdEVBbHg4cGZVakhhODNveEJVUzZML3dWSTE5Q2w2SU5zR1EyN1ppVDk1Uk91NmNvSUJSY1Jnam9jUjBpaEpSU09JU0hBeG1VSGZNZDlPbkNKK2xNQVFOQ1doN2M3QkFiTUN0SGJoUFM1T0RiUWFWSWc3VmhpMWlzdzl4VVQvS0FZYUc0akk1c1NlblB5VEJBTlVCK0g1OGlxa1pjTWtaaXhNd0pKektnODVFdzBXSTBNcmdzSThPQ2drNDhBSjM4dnM4b21tQUpBTU14aUMvTGF3UlBDa1pCUWFLSWpHWmdBTnpxM3JNM0Vqd3l5T29nWTByQzlqd3pCTWRTVFhFSG80ejZTTk13VVF3akNLYTRRQmQ2SnpudEE0TWNzbEdlbkl6UnZLeWVza21NV2NLYm5uS3NZeUZyQUFWeWpBSTFOb1NPTVFPQU1tempBeVV5eEtXOUFYandDMDhCWkNFRitpZ3NEVHE2UWhQOEU4SkNNS056RUFEZHhoR1pvQVJPRUtOOFU4UEdvRkJqQUFET2tRaFc0NFp2aVhHRXBhV2pqeHFDb0JnZ3c0QjlBV0tNYW0vWUdLRDRraDFGNW9TbWdFRUNtd0tnaVdVd0xlelRTQnN3SUtFbGp5YU1heXZDUFp6Q2dMa0tKQWcvQVVVcERMdUVoaTRSQ0JTV0pFWU00NWhnSklFZVJuTlUvaG1IcERVWlFYbFFFWTRrV2l1RU9yUXBsSkZkWmhqVmNBRGpzMFVJNTRyT1daTGpTRzNKNUJTTm13ZzFGSnFaa2NOakJDUjlVdDJ1RU1ESnZDTjgwTjNHQmdUbHRMS0EwaS96V1FZTmZVU0FocWFSYmc0YVpNNUpReTBKclNNQUZ5RVlETDRVVEMzNHE1eGxBeHNoaE9oUXJEZ0FSNE9BNW9CTjF4RC85M00xQ1JtT2V2QWovd295b29aaVhESHFsYnA3Qm9Ka0VvRUlmRVNOU1dMRVNnS0VXQlNLZ2twY2tDUUo0T010b2ZBSWMwMDJqT0VtZzJHaGVvUlZvVkVWaTBkRG13c1JZeVczOWNxWDRRbXJLYktJYkNrZ0FjTU5nMVR4SXRKc3d1Q2VhWEdoalIxZVJGK1FrQnFuSlU1NFBwekl4KzlpcmgwMmxrem95OElBOVFSVXpvNGlRcFZvVUFLd2VxUTRWUFF1M2lHSldUOVNIQzRXd1JGNjRVWWhWTUpaMldnZ0ZGa0hUalVKSTdKWEtrMU85T25WWEhvVmtDVGhxVndYNkNvL3FPRXBON2pEWFBLYURGWU9aTlRFQ3hVQWhLQ0JieHRZMlVYMmhRQUNBTTFzQllDQXdDeUFEM1FCaldabVE4UW9YTVNWbStrSUtKWnlTV09BcUVqUzhKNmJvQnFDaC95S2F3Mm4xY0VkZU9HcXZSa01MTjRMaWdLTE1MYkpyZU1ZRHVyR0tBTGpVRXBsQUtDNGt0RUcwQkxjTVFHb05YbXNBblBkR3M3cDlhWmRuSjh1RFZ4bU50TG5RYmp0SDBNNFRxT0FPRnloQURvWWltTm02bHdJQzhGc0ZUNU9HdnlSZ01iQXFWQUFFNEoyL0VLZVUwU1hGcE93RGk1Y1JSWTVpV0FVQVhzc3dGRkpObXdSREJob3VOUVhOQ2dDN1RHQ3dTMHpRZ0NKalFCOHNncE1xa01PTnZPUW5BYlN6amxWcHA0TlFQR08ycTVoSUJTUWdnU0VkdHoyMklVcHhOL0VYckVRM0J6OThCTExzODJFcWZDRUhDNFBUS0Q0bW5BTEdBNUZNb0c5M2pKSmdFWnhXdTBmYXd4NVVRSWlFbUFmS0FYRHZqUFZ5WlZqMDY2Z1MwLyt2eEdaYmlEYlBRQUJEOElzRkpCQUFCUzBhTkJDQk1uZ25KZDMxeVpDTTZaTUNoRnlrbFV1TVVUU2NFNWtTVUFNQkFjQllZS3Z0Ymo1OG9TUGVYdmtZM1RoME15OXdRamhibW1Ed0dRVllQVlNVM3kwZ0FqMXRrWVJHMFNtdG5IckdFSnZYRWNqeER6R2dCc3d6VGhvWWNFSFFHaGhLYTJpdEFKOGZJZVI1T0lCVnZoZ0NCU2J3NGFJY1F5dk5FczhDTEVPR0l5QmdVS01BRHE5c1k1d2hUS0NVMEdqeXJEWW9tRDI1S0s2cVNvTU1kOXFEWFowQ0IvaVREZW5hTm1lSm5Wc1drK3RFc0hhUWtRQ2tXUjUraG9HNzY2R1pEQkRiMkhxcVZIVFhNQlBqQU56SktacFBzYzBvQVZYc1ZtbWp3S1Y0ZmpheXUyYlVGWHBNbUJULzdFTWpDRkJBQ29TanBKOW9OM0tqbWNxYmNqZ1NkZDZ0V2hJRUFBY3pZWUJ0Z3YwenBRWEdqU241QzR0eHFSaXFSRVdRaG9SeUJCeXdad3FIelZBN1NwdEN6ZGpjSWtDWkVjbVJ3U1BicG9XTzlLUnFNQXNyNjVKRGNpaVluTjBqVXRhUXV4Nkk5V3drTHhmNDFWQU1aVm5KOFFBVnl6a0d0VHVLQlM3WUJuMFNNRWJRbWNJVHFGdjU1S0k2cFJrdjRnbFliQ1NzV0FpRkozQmdPS3FEaHBKUndjcmljM0FJSkd3YTZ5Z1h3UjljUWlEbFczVUhIMVozZXZGQ21XWTh2ZUpRNk1seXJyL0txMlMvTmVvT3pQZncwM2lqd2Q1YmlXcnNqdksydld2UG9DNHpvVkZIeG8wSkNLVHI4MXZTQXJuZ01BZkp6NEVGS2ljZEdUWUUvd01oQWNZVE42andaQnRIQmNESFBISHdZYlpCY2duamRORkFTRjdpZnAzbFdmY1hRNmVoRERzelBXU2tBQmlBZkhQUUFyekFBcW9sSGFsWGZoWndBZitBVW9jSFp2Y1JWalZSRjJ1d0VUc0FBUU1BQlpkZ2ZtQjJDR0dVZ2FMU0JSQWtRZ1JSQmtjZ2ZYRFFkU1pZZ2luWVRnMkFSOGxEUDQ1Mkp4eGhlN0pSQkVnQVpHcDBRbHpDV0t1d0pSSXdBUmNnSHNhSEJaa2doSUN5aFNiMFlSMGhRUkNYTzNyekMzQ3dmTXBIUjAxb0hYcndBRHNRQzJsVVAybDRTOU53TGYvVFFrRkFjMDdYVVdVRlFCS3dCVUJ3R2hrSFFNYWtobzl3T1RTZ0NHcUVBQzNsSEJMM2hjM0RBdmlRVTNkNFIxQm9CdzZRZjJtWWl0WGdKVHFnQmYvMWNRbU9JU2dZc2h4cTFUc2FzaGl1WXlxWDRGaU9PRzdJUjRrMUlRaWxVMCs1c3lpU1F3WW5zQkt1VWdBa3dJd0hnQWUrY0FGOEVBdzl5QzlJbUFXT2xna29kSERzb1JpV0lIQ2pzRHlGMERzd1F6ZUVBRUFVVUFlRWtGaTZ4QW5uQjR5SWNCbmpneUhzWUIxdWNBWWowQUx3cEErbWlBRkloSFkwaEFhc29DUCtsb1dneFFtcmtKQ3I0RUMyOTNianhEKzI4QXgxOEN0bkpBcncrQ1Y2b3d0bUJJRkthQVp6NEFmNFVBSVBsbm9IOEFkMEY1QitGRW5mS0luN2xCajM5MzcrZEJ2U0pCZHhVUVhwOEF5WVlCTUxZQUxzY1FzNVNVc1h1VVhEZHdhdm9CaDVJVkdaSVIzUFJBZHRnQWNtK1F2MXdJZVJOSDhQVldpd2hJbi9SdU5OQWhFWGtQRmgyREJQVU9ZM3RqRVVOQkdVUElKUzB2SVRBM0FHRFNBQVJkWUhMRkNTMElZQ3ZvQVBCc0FPQ2FnR3N4VlM2MlFEWEFJSHYxSVlYdVVYdS9FRTQxVm04MlNXWC9Jd1lvQVlSOUFmWm5BQ0FkZ0dueEJoa3ZsdXc4QU90OUFSelJBWmExQXREM1U0NVFZUFM3WWM2bUFDTXhZS0lLT1kvd0Z4WjFCbFdoQS9QY0o4R1BBSEVWWUNacUZXV0pGZThBSVloaFJxNmxBUTNaRVMzVEdhWjBBS0cwRnMzbk1JZzhXYVBCWVB4b0ZoSHNsOGUzQmtqVklDSThBVlNsVlBvWVlja3lFZXhWR1drWFpaLzJGS0VJQUJsZ0F2ak9tY3VpQVhnbWtLNDBJem55UVdFV0FBVHJja01kRnRmRk5QQWJZaVVFSUxSQkJsLzNqeFpNWkpMTjN3Q1phQWNiL0ludVZCbnU1eWoxT2dsSjlrRDN0Z0x2Y1FFekdTbFlKQlZ3c25LZUFwWEZnekVLVDJTaXRrSGpHMkF3S2dRWnJGb0pneEJNRzVCSjdtTXdnV1pLUjRnZ0hnS0g5UUZJNGlZUTQxVythV0dKR1NQT0xoazBSUWR1WG1vK2RtSG1RMU9FSFFIUFRGb3EwSkJXVGdHSDhSWmc0cUp2K1NYWTNDQ3dZUUFOTWhIWTBTREVTd0VTeTJvZXpsSWxSbkNEUkVNV00yUXV5eEczekJXSktpRjlIbklTMlNTTmdHcGY5eENPMnhBRVo1V1dTemsrK1pkV3JpWFFzbWpYVHBLR2lLYjNLV2tIUkNDd09BQXc0WVhxWlFEb3RSS013bGNQQ1JQT1JDQ3p5MG9Ib2FCK3J3Rnp6QlNKK2dwWDhtQWw3cUR2OTMyQUFwZ0FtL01wNUVvUlJleVEybmVBc0ljRlV6TURORTBuYlpBanBwVVhZZVJ3cmZaZ3RYTUlhVkZhcHJxQTVoZGsxTllHdFRvSHdxdDZVM3VxVkhJZ3dOb0dSWEJpdjRkaHNGSndNWElBRUNJQUJyUUdyVkFndlJWa2lxbVJleWFUUlh4a2NBMEZmZThZN0thaitHVjZwZXRZUFJhcTFhVjYxMklBSWdtYTExSVg2eDFpS3JpUmZWZ0JwRjU2NzFCQlRlWURUY2NCVzI0UUJacG00SThISDFlaUZSc0xIT3VpbWhVcEpuOGxjSGNLTXMwSVRYYWE0ekJuVUpXUnBCVUJIZWN4aHNVMWIxUkhIbE1UZFN3QkgwQVFhZFJxOForNXFjMERNS0FKbExRQUgyZVNRWEVBQVFFQUZSNkdlcVJXZ2JRMjFUSVMrT2NRczFCeEgvaDNjTWJXZWx1ZkFYRVhSVTBnaGpQWXM3N2ppVVY3Qi9QYUFzNzBaa215RjVyTm9MdXJJcFBVRTcyZGNsc21Gd3UwbXNPZGdYbUNxczB1Q0lnSmdBbGhHMnFySVJpOElBRHZDU05EQWRKaWtkWndJVC80b0gwNG8vd09FYVNsRldoVkJYVHdCcGJIVVJ5OEd6MDNPeE96QXVRUUMyZ3ZzR2N2RTREK0FmSHJRSHVxVVBtOEVId3VCL1VYR0RINkZzYTNNMWhOQ0xYSUsxcHBPRG51c0RWQllZQjBTMnBXc1FzbWdSaDdzRTVsSUFKK0FBYzFlUytsQmVkd0FCTEZkUEErRTl2bGRRdXVkQWlmZDl4Sk85LzZFM2U2U2NrMWk4QjFVSkJlQWJSV0VIUkV1U0p2aHVLc0M4d2pBSWhkRXY4N2FiSExFR3RBQk5zWUc0R0lrZS93bWdqcUJxdmhoQ09RdFFBQ2xSQU4ybGovcll2UFVBditaU1NLZ1JWOGJITnQwMFVCU1lpaGF4QUxOUkJRcHdJTE53UExlMFplVkx3QUdoaVdGZ0FWSzRDL253Q3pucWxDdmdDL3NRRlVLQlE4dFRIT2tDWlFrSkhCNmlpZDR6ZmpsQU9rYWdGRWpnZEltMVNqMW9KUVpYWHlhTUdibjBoaGJSc2NsSEI0OXJBb0Nnd0JRd2pWRVV1a21NQnJRd0RSR1VBUU5RQjg5MGpuazBUcGpFd1RiWkhvcjR4UUVwUnJEQUJrMzhIMXo1UkRBQUlDK0JUUHZZQXNWZ1ZMS3hRNnVFRW1zREd4NkNCQ1p3QzRLY2tsK3dzVUZRUVlXVUc4K2xRVUJRQ0lia0gwYkFKUmd3eDNSTU9aN2dJeWJiSnZTUUQ5SllEd2J3d1Y1SkYwanNSditBOFUzUVp5ck5rUjQwMFNDQk1VUzlZUnRqV2c1Sk1UK01jQjlCb2F1YXJCS3JJUVlRc01KRU1aL3pBQWlnYkFVWGRRM0VPbDArOUlHSlFYTTdtVGo5VXlVa3dSNmpvQU9FR1JrNmNBczNFRVA4Sk1pL1hEbG1NTXdBc285dE1BeGNhZ2R0UkZZdHBwY2Z6RWQ2RTIzQnZKTVVjbFhvZEJTaFVxdVlCS2NmbkR6L0UxRHBPczR3OUJHTnlUcEt3aG5TQVJNTGJaOFB4cnl6dXhnSUVLNU9NWmJlZ3dTSG9BcU9ZQUc3TlZCZDlYNXlCR1hVSWpHTy9INVA1eGNlVGRBRm5RVU5CVE83UUNMRGdBSDFDWUR0dEFkMWdNQ295TVFvNGtwS29RVTVVQWdYaTRRSkYxTHlVME93NTFKR2MwYVVZQWswcTlJak5BNkpjYnhCazVML0JiVjhDODBIQVZDQzVWVUhENEE1SlJZakNnTFcydFN0WFpFcVR3Y0dxcURENGdIV3YwSzhLSk9WLzBNNmVqR2lUdjNVVjdBSndUd0l4R3drZitZTzdSUUJ2TkFDZFpDdDZSZ0JIdlZocjNWWmxyVWNrME1KTU5JaUhHb3ArZ2FVbXhJS21YVUYvMENtZGEwV2F2RFByOFNqQlhVZGxZbGFxZG9vckZzZlFqR2t2QUhXT3daQTdwQVhtVHhwQVRZcjhXSlU1M2MxeGlmWmRMM1pUS0FNUkRDb05MRFhmTUJnanVJb1NDc1dJd0RPNU1sY3dkSVFZQ0FCczhFZWZlV2pvcFU0eStGWUpZeFdhRFJqSExHZXZFMERoL0RiYWlCR1YvRnVackZkYWxMYUk0QVc3MklHTTlwWHIyQmdzNUlXYXVXYXdwd0ZSMkJadS8zZE9xWUcvM25kUHczQnVPbXRkU1BiZFhOd0ozeGgySlcxbnVJY3IzTXFZSXZERzNrRmdpMlNubm5LM3pXaExSWkJ6S2dWcHRlaEJ4Z3dEMTNkRGJ2eUY3dFZWQWZ6QXk1Q1dqSjI0VUt6TkVYMU1MR2d2K2JCaFJnZWZJQzM0WElRaFVSVzNDb1hBTTdJWUJkTnFobndlS3YzZnQ3b0VKQTlNb21ZRjByZ0tWUGxZU0w2STNxNUh2dDk0OGlBUHBXd1JEUlFxRVRXWUk3Q0FnRWdES0hvRlEwZ0FSSHdUS1F5V2w2NkNtUGp4L0syWnJURERiTkdZU2ZEeHU1S013U296VWVPNVJpeVVBY3dGR3JDZGYyM3R2RExHWXVsUE1lV0YxQ25pTnJXQmRMRzZNbEI1M0JRTGVKSE0vYUJQd2lRQU0zaDUxWkNGWXVTQUlGT0EzK3d0THlnTFAvU0tBRjBOQTRBbDNuWmtiTGh1VzIxZWQwTzhKNTZkdzR4YThCeXJRUVJrTjI4VFJWKzZncHZPZ1A4NkNwMW9GcGNaNUlraVIwd0NyNEhFVTE5a1hvUGtjV3RzSDAyamg4VEU0U01aM2lDNCttTnVVQ1FNZXlyNGtGSFlpNldhUzViSFlXREVIQi93MWd1MmczN1JqR0o4aWZleU1GMnRpbXNHQ3JGTWhMZS9rUkRrK05Hc2cvNUtBd21hSXFBZ0FGbU93TkZwdTM3NWt4S1FRNTJNQkVHT1NQd2dVKzNsTUpVeHo5cXhKbkEzZTlJZm16aDN1V2ZETDNRQzhNaWNCSlhVUUVSRUFBcHdlbTE0QUFqdUY0ZEM0Z01JZTY4a3pMQ3BQSGlnQjRlNzFYQmZnNmJMZy9VQythalRBOGxLd3lBc0Q3ZUVNREJTWFdBS3dPNTlFei9wTkJIUVhoN3VKVFpqeU9KVGlFRUd0L3pTRzRHUm5BTTBkRUw3ZVNNTUV3QjBGc0Zoc1lHeW9NU0s3U09RWkFCWS9PeldROFpLSVJMWkJ0SUtWRU5YZS8xNEI0R1FXOGtKVWp3dFhtSFVka0NZZFZOVnBVRmFwb0RFU0FBOTNSS3B6c0lHMk42QzFISFJ5aWViRlRFZmw4SlRYTklvU0RLUWY0QUpLa1BST3U2Yi9vRVcvanZmRzlvMGZCcXlHQjZGclF4V2dJaHFuL3RmZzd5UzRBQWpoQWcwMG9ITUJHOXJ2b1p2WkdUWWFnZGg4Z0pncElPOUFhVVdoSUxzQzhMT0pzYnEwVFozZzQ3Tk1QQmg3SUhMdkVBdGFrQzVRV05rejlERFlJTklaU1lVM0VhallUUld5aEpXd2tOR0x1YW5RL3U0dTRVam1DSElqNW9iU0JvL3hvREFnbzBBZVZTQVdkWkpwV1ZySW15ckV6bHNwbTE4anlqS0NZV2wyM1hNMlZTR1VpR0JtQzhqdElwdFdxOVlyUGFIdXlaWUhTbENFVHBZRDZqRFE3SHczRm92NEVLUkVWaGdxUlF2SVRGQ1JpV1FFQjhuYWdrVU9nd01FZ2xKQ2xRVkxRazRCM3hKY2dzVUFRQnRHeDVmb0tHaXFZc2hGRXQyQUdnclI2b1FUaFFHS2c5SER3cDlFM2dMU3dCNkhtVlF0Qll6RmdFZitFMVF2aTJRQ3oyL093czdEVDZjaVZSQTFCd0pvMTJlMzkvbWxJbDFLcXlucW1kclRrMFBLU0s1SlV3UU9iY0JBOEREZFBZdEtEMCswU1NBcVFDSkVwVWd2WFNoaUlLdUlZT0g1cVFWMlVCR1hQbkRGdzRBNkVOQlhZVWpIQTdrUUdGRFJzOEt2OUlBK0preHpWREdiU2Q5TU9EQXNVSTFhYWcxRFFCQlV5SVBuK0NjcFpBWm84RjVjNlplWVdtZ1RvRkY0cjVpVVJoS2lSbks3VGhneG93UndsdVBCRDI0SGJCYXBVbWoxQjRCYXAyN1pRdURFcU5PM29PQXRNemNNNEFjQXFUNTQwYWVvYitXVERoVnA4VTFnQThTQnRJSmtwL0kyOGVtWkhoNVF5MmxpK3ZLSFdKYk5HS1NBOWtiSlVPVFFrRmo1TWtRZlRTMTBnWVUrVUltcUt0SjQrMEM1VGRtS3BZQ2dVSU5IZGpEdjZUNkpFRmNKSFdCUjJhOUoxRDJSS3FwZ0FHajZQS3BDQURTRkpodDV6TUorYWx0dUtJUWtYaDVuK0tZMFRqWFBMUnEycHpxckRJNi9idGk3UFRWdEVEcHZRakdWS3RjQTFNd0FWWVFnQ2NuWmYvNERjTElGaFVHVXN0ZDRBREVKekRnelNjOU9KZkdQZ28xa2xZQ1IxQkd3dlU2VUZnWG8rSXFLQ0tvM3hSQlJpTG9IRUJoYXRFaU5kTXpxVFlpeDg3cEdqU1NUQmtRQllxVXFTV0FReGJFWG5CaWt0MlExd2x4MGw0Z1FHc0pQZmVTYzdJUjJRUGczRzJXeElQaEhIYkZBdzAwMTh2NlpXUUk1TnJZZ0dEa3pVY3NJZ0RVazY1Q2dSU1Z2aGpWMmdpdVNjWFdhNGdIMG9GVWlIb1ZrWktNU2liaTE3eEZvTm94b0FBREczVWFFYWxOZ2E2U0o5NlhxbmhsVXgwQVVTRFo5N2dCRmdXR3NHb3FveXc0TVJiQ0E2MVNBRzA0R2tHTzNYbUdTZ05paDdCYXdtYi9ockdvQlZNNE1TZ0NuQW1uekpSeVRUSnFzOGVBWVlYWU1BVi95MkRpRWxJeTV3TnpQZ1pEMEQ4K3FhdkFKd2Ewd29JMldQSG9OVUd5Z2V2RmlCZzFialFQaXR0aTZPQ0FRTUVzejV3QVMyZk1SZnVpVlNJeW9NRkpCeFIyTGt1eFB2ZnZPZUtJSk5wZGtEeEpyMnJTanNPWEd3NFVBREFyQmlzcnNYa3lnUUJnRjhoVEc0ZnZ2VUdBVU5TT0RPTXdRd09jckhOZTd3NEJRSTBiUFR2eHdGZitNZkpQWXl3aHdVTnlseUNCWDFZUU5NV1NmOUJCdFEzMzJ3eEE1SWk1dkhQVmtvREE3Z0VuenoxdHdEZWtrOGVxVmJ4dGN3L0RFMDF0Qm5yVElQUFc5dDRTMmxvUHpPMTNSWnVwOGtLWll1Z3dBMXRGeldNRWVDYTdMYmJrSmF3TXdDenZ0SEFCZTM4ekFsRGUwZEdFTnFZcC9BQ1p3aGt0ZjhENThYZGcwY3VRaXRPOVJlUVhqMnA1QVhNZU5kbmxwaUE5OS9SbkF4NkRDNVBjWnMwdXRpKzVRakFENWI2eFM4cTBxSVVGS25TclYxdWZDWjRadGpwWnlFQU84bXp0RWhEMy9aUDliMEhvNGVZeHRPN3VtRnRYUTNBR2hkb2JRWkdFNjd5Z1B3enlEQUptdU92b0wwTWRtVFNSeVRmZjZjdjM2dEVZOGluT0JpWWIza0FJSU1zRENBNzkxM0FBUTFzd3hvWXhEVHNOT0lGZWdCQ0kvSkNBd1ZFb0JNKzJsMUtPR0VkUmtRQ093YUVscXZhQWlVSVFzOE1sSnJUY2tnV3ZnQnRoeGMxa0FRSC82TU1COXlnTDlHeUQxZkdaQ1FWcm5CVmhEaEZpMmg0Z2NuRjBCVnJVRU5kbUZZTVB2U0NlZ1RoQThWVXNoUE5VSUVCRC9EL1M2RmFZS0lrcXVvU3AwaUZBU0F3SmVjbFpVTHBvSUNFZ0FBcWxDaWpnOW1veWtKc0o0SXpFdW9KYWpKSkJzYUlScXBkaXhGeStWZ0VaU2kvdkN3dENvaWFoeTl5bEEvVE1HNG0zM29USkNaelNLckJyU2lMM0ZvYlBHYUNFd3doUnlNMEFXRm9vQ1l1NEEwNDlnbkFKNnMyamdVKzZHZXlrS0FEeTJZTU1OUUhFWWd3NUV6SU5ySkFYZ1ZtRHpoUUxXMEdnd2F0SjVlZmFXTUVYOUVSd2loakNKRVlWV2JROXNvUGdkTmcyOGxrTTVuVXdrb0F4aUtmYWVRcktLaVNVaGlKbkYzWlpCWWdzeHNLS0srYzBNcWtERmJBU0V1dHd3eDNLOWRFREpLZExGZ3liTWZVcDRMQzVLSnlxRE5Ha25PamxHSllpMkVVS3d1ckhCSVcvd0FWbHBpVmg2R0xXa1FYK0FrZ0dqVWdPWE9hMHlwR1o0VlZQcWVlNHRpVjF3Z25VaVlwVHhGaldtQVhWdnBFWEUwT05LeHdoeWRTaEtncVJDSkloWk9EMkc2cVJJMzVvWUV6MnRhMjRCZ0hia2JyWlNtd2FhWnVJQTdwSUdBd1hIWHFtdkpwclRDbzQ2ZHpzaW82am5hRllZbmpZUWFEUkhvR0V6U3lIbTlVQ2NCYUNmckZoZ0w4RkdBWVdhaXlnQ1ZYcGZHQm9IZkFxODFDR1prd1BNQ0IvbUpyR3RpUVNkT1E2V0h3b29MTURzdlltekd1ZFN0WVEyUS81a2I0RVl4WTVGS3M1U0FGcm1LazdMT3BNeXNYMkNVTFhSWUFmaER0UWNHV1JqZ3l1VlowVFpYdHpSenJnMWo1YzJ0c0NOajAzakZjTXIwcGFDNGxydXFlRVA4M0hnQ3NZd2JveU56MjRJSlFEVGN3dlR0Y2VLbExMK1B1TUtTZm1SVkc1bllBa3hGR1lhZzBhTWg2QjQvZm1kZDRPb1VaR0pNN1ZJdW1vUUQ0NEt2djZKdS90a0VCdm9MVFFYNk5OekxtZldWeUFtRGZHd0NNaGpZUThLNjhIVm8rZHJZSTZUWFl3ZU5JSHc4QTY2OEdTQ0FDa29PZUlDYUlZWURraHNFODBCMHBVbkpDaVlSNHR0SEZKUThpMkFEb1lRUURLcFljQVo0WXdRZG9BcHN1MkVVT2pQQ2RCT1NDSURmT3NRRnBRRnNUcUpFSERZakE1QUxBWlRjWVFIS3pTT21VSE9ETFByaHBHWHFnNUF1TUUxTXFyNUNmSWUzckExSk1VUXdFZ0lac3lETUZKQ0RReGpYckpTTTV5ZGxRRVZzNGt5K2R6MkRBYmgrMHJ3RC81Qm1nNzMzaUEzNzhaMDlVZ0JMbFJiVGJvSmxsN0NJZ0tXR0dkQUJFb3dZQnhKRFRjSTd1bkZsQURqUlFDQUtrbGxKcEw2MkZTN2haMVdpRUZEbWtzQVpHUmtBQVA1N2NWRkxhZ0ViWlEyRzZUdlJPRzEwQ2RwQ2ExQ2w5cjFRZElBRUpOQUFSTGxDQUJINTFnMEVYS0YvQlczWjFpNk5vN1BZc3N0UzhRTFJWUEt1T0VHUk9HTmlCUnc4YXFDQ1N1OHB0aVpjVTZDYWhZRi83QXRyK3k3ZnBrZTltc3M3WjB2UzN3am1CMVlQcmUzbXRYcmkvSVM3Ym5ISGgzTmhsT0tZczdsUTM4UmRTSE8rNHgwV2FQTTdBZ0s5SEdMbXRTMjV5NGpocVZDeHZ1TXRyK2VrYXNHdmxMSy81eHpsRExZdk5uT2NNSFFwdDg4VzRvQXU5LzVad0M2V2pxb0QwcE5leVdsYkoxOFQ5eTNHb2w5TzRSSGY2enJHTzhHZG9YT2NqOTNyVWkwTmlLanlkN0hHTzFsNnZrSGExazQ4NE1LQzUxUmtPOXhVNjZRdFYzL2pZNzI3QW1TN3c0Ukd0dU45VFZ3cWk2QjBMYnkvOHhVcHFQWDY3dmV1TXIxcDZ2SmFGeFUvK3FUQnJ1K0lsbjNsNjBVQW1IOVFDNWo4LzBzcnp1UE45TnozR1dKVnpLNVNlOVV0cWtTbm1Mdmk2RTE3MmpNcjcyVlYvZGQybmtTeDZ2ejN1NlFiOGtUcmNCMWNqUHNXTmYzd21rWlFzaThnMTZUMy8vSWI2UE9YeTdFSHNyeDhjczM3aExaL292dmN4azA5cWJaLzcxaS8vZWVDV2N1WVhmMnZzWDFFWWtyZDNycTkrL3ViSkp3SVgydS8xNng5Yk9QK0RxeVFlS0pCZkFENEVBbGtGQXQwZi92MGVBbG9HdFZqSUQ0akNBVUpnUTdDTEV6U2dBOXJkQmJLRk9NemRLRmlnQjQ3Q2ZrVkU2aGtnQUpKZ1F3QWUzZmxlQjY0Z1JJQmc0M1REQ01iZ0ZwZ2docWlDTjlqZ0RXS0JZMW1aLzhHZUN2cGdVSEJCYVh4RER4YmhLUlFISndqaEVPYmZFb2JDRE9ZRk9DaWhGQjZoOHZHVUZSSWhGbHFCRTRUQk0yMWc5VVdoRjJhQlc4akQrelhFRlpwaERqSWcvRUhoQTVyaEdZSmRDcVRmNVhYaEhHYmhIcERDUTdEaEV0TFdacndlRCthaEhqNEJna3pmRTVLaEhMYmg1c0VLSjR6aCtCVWlDVXFMVUN3Q2VyWElJQ2JoSkpLZ0d1bVVCTEtkRS83RUg1YWYremtlcTNDZVQ1RGk5ZEgvbm5XQkhNd2tJbENzNHZHVmxMUVlSeUpWd2hORVlpak1vdXpaaTNHNFNSY01vaTNlWVFxV0lTWDJuNFhjM0JHbTRpaHlZaWsrRTh4cDRqNUFuaXcrSXl1K3hSTHA0QWs2eUJhdVJTOW1Ia2twRDJCb0lndjBJVnVBWStZQkJocCtvUzVlUmpxR28vaTFTUmxnQmp3V1h2UnRueFBnSWpwZTQvTzE0aFVJWXpFUzRqR3lYeGhPQzNyRndOOEloejFpM1Q0Y29wV2xBRGVobFhrd0pOUUZKSzVsSXhNaUlVWDI0K2Vkb2hlRVZtWUlKQmNTNVBQSm96ekNSUTdpakNpZVIwWFdYUDhkWGhvaTVINVY0MEoyWk9FNVpCbzZYTmdsbnplMjVFMFdIdmdaSFNJT29DSkNoRXVTSGNibElrc3FDRkppSGUwOTRoT1VZejBDNWVjbC84OCtlb0U4MUdTQ09PVlR3b3c4WUNWWFZxWGZYZUptUktVZHJrbFhXaHhjVkV2bERlQklXbU5KK3FJQ1hwazVudEtpcUNYRUJlT1lDSVZSOHFOYzZoNUM5aVNFNGVWWXFsMW9sVlJZTGtsZVFoenZ0Y3F6TUNhNVFTUVhPTU9yUUtaaGVxWGMxY0F1L2lSZ3FpUDFXUTlZd3FGTmVpYmpnZUZTT2lGY0JrZGtjcHFUK0VIdlFRdHJ3aG1hMUI5bnFvaHM1dGlWMWFiYjRHYUR3WW9mRU9iTjlDWjFUZDhlbmlOdllxYkZrWlJ4VG1Wc0p1ZkIyYUlXM3FYeERLZFRWV0o2d0kzamtFOTEzdFRxaUlOU3FoeDFQcWV1RlYxdHFtWmFqcWVxZ2FCVlVNUm9NZ3AzbHRPOUhGZGxhaWNhd2FmU1RaOHBURjF6S3M1OWZsSk94ZitBVUlTbmZhWW5jU1dTWXkyZGJkcU1mNmJPSnlMWGZKcUFnaTVvZ1g1VzdhMWtxN2pueFRDbzRhSFBDdFNuUG0zbzRqaWloNTduaEpibXN1V2RQRnlOWC9ZbmhaSVZkb2JCenJCb2k1NG9sVjNDVUNDZVcvQm5MWVdvcWx5aWRUVmhxNVFvalRMaUoyVW9NN3BtbUF3b1dmWG9OL3hvQ1Q3cEh0VGZqdW9UWmQxV0dyU1JDeHFQZDJZb1FvcmVBUXpwZHVLSys5UUpycFNwbG5ZYUM1emNyVmxaZ3lnYU1JWllLNkRER3pXUURLRURtamFXSi9wQlhacGRUL3FBNlBHa2JMMFhoWmhwbGs3SkcxSGJmMktaaFRZS2JaNWZvQktYKzhqcHBOTENvWXFHR1NpbWNhb0YvRlVtUGxiaVpLb0hYKzRCYU1hcCt4RHFqTkJwSzNUL3l6YTJCYXNDQlovbUloam1qRGhXNG5HVlk3NUV5b3d5MUp5S0JoeFo2cDh4aUVwR2hEd0NCYWppR0t2VVFCTStxS3VDWFU3dFRKZzJFeXRrcVoxRTFvekV3R2I4cVNpZTVrdDVBdkk4RTRiUUpqZFpZcmFPaVNsUUJMU1dFOTJrcXJQVm56a2lFTGk2Q0xPV3E2dXQ2WlV0WjF0WUtHTFdacVpTR2NQaENxdGtKTzI1R2F5cTZUemlYSmF0anR6cEZVZ2VvbVUrZzB5OHhWYnFHdVpocS9qaGFNRit3ei9LNXg0NkxDZDhtdFF0STg0VkJhbVNXK25CQmY5Rm56ZXNhYk1LWldJYVIxbStDTDlLcGEyR2JNa1M0VDZ1cVdBeVVmaDlheUFLcTcwb1R5bWs3TmFabTVCUWhLNVNWdy9pNmlGK1pTaW1ZUmpXbmdtMm9zT3UvODZMWk5McjdSV1ZxcG9TWWx5dFZ1MzUrU2x5UFZQeTdDVFJLY0sxMkF1R1RrdnZDQjlGU0d6SlhXSEdHTjIxeU9wbVZPeHlYcWZkWnVYV1BaUGRXaTM2ME5iUkhtbS9kaUhCRnNXTkhxdVVvdE9qNkNUZTlpMWE0bXNPR3NlU0pwMEZicDliQUNqT0VlWFlSZ1JiaG9uUXNwMUtIaTI2RW02TjRtQTBhaXE5NWt2YVVzdGJPbUx0SGUza3lTWmIzdUlobW8vRmdwRmdydTYxMW03bU1lYlduU2JpMnVFNjVtUzU1dHpQSWEzRk1XYm8zVno5OVMyeDlzN041Y3ZMNnQ3eUN1TXROc3VvTWhIWTNTTHBRbHhlbXFzT3VzcENFYTEzbkt2M0txK0wrb0FvQ21NTTlKZDZwRWYzb2kvY3FxLzVZbGtRTmdwUkhCNll6bS9OdWYra1VyYnZEeXJsVmwwc0JMb2tybjNDeVlWaDdLN2cvOEtoMGFVWHlWNmdmd3F2dzhsby85NGRkNEtpVk1vdkZ2Wm0wK0hjeXhxdUI3TG0wb0xsK1JyaTREa2ZVRXd2RnlnQS82WncvRldPVDZ4c3E0UmE4azR3aGY0dHpubFlERStCUFE3d1hzMkJ6TVp3T3BvbHJvMkIxaFl4VUdhalpseGw5dzZ1RjlxZ1p2U1hJb0RCczJMd0RXS2UxZDZvejAxdUVrZnhFbk1jSlZpeDNJSWwwUm5IQVVqS0NQc3dIdnBiR3huQWpTcWdaZ3lGakFKakZxZXdZRFhRSGd1VUZVOHU5dUp3R3l2ZUhoUHlYTGhSSFo5dkdBdnlGc1JhVW9oYVpNbFBKQmZBSkV1S3NDNnlaVGlRQTgzS0pLc2JITHVSR1l6Qkphdkk0Vld0S0p2eUthTUVzaWVFQUFBNykgLTE2cHggMCBuby1yZXBlYXQ7IGNvbG9yOiAjMDAwOyBmb250LXNpemU6IDJlbTt9CjpsaW5rLCA6dmlzaXRlZCB7dGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogIzAwQzt9CiNjb250cm9scyA6YWN0aXZlIHtjb2xvcjogIzg4QSAhaW1wb3J0YW50O30KI2NvbnRyb2xzIDpmb2N1cyB7b3V0bGluZTogMXB4IGRvdHRlZCAjMjI3O30KaDEsIGgyLCBoMywgaDQge2ZvbnQtc2l6ZTogMTAwJTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBmb250LXdlaWdodDogaW5oZXJpdDt9CnVsLCBwcmUge21hcmdpbjogMDsgbGluZS1oZWlnaHQ6IDFlbTt9Cmh0bWwsIGJvZHkge21hcmdpbjogMDsgcGFkZGluZzogMDt9CgpibG9ja3F1b3RlLCBxIHtmb250LXN0eWxlOiBpdGFsaWM7fQpibG9ja3F1b3RlIHtwYWRkaW5nOiAwIDJlbSAwLjVlbTsgbWFyZ2luOiAwIDEuNWVtIDAuNWVtOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMWVtO30KYmxvY2txdW90ZSBwIHttYXJnaW46IDA7fQpibG9ja3F1b3RlIGkge2ZvbnQtc3R5bGU6IG5vcm1hbDt9CmJsb2NrcXVvdGUgYiB7ZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDAuNWVtOyBmb250LXdlaWdodDogbm9ybWFsOyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtc3R5bGU6IG5vcm1hbDt9CmJsb2NrcXVvdGUgYiBpIHtmb250LXN0eWxlOiBpdGFsaWM7fQoKa2JkIHtmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxZW07fQpzdXAge2ZvbnQtc2l6ZTogc21hbGxlcjsgbGluZS1oZWlnaHQ6IDFweDt9Cgouc2xpZGUgY29kZSB7cGFkZGluZzogMnB4IDAuMjVlbTsgZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbG9yOiAjNTMzO30KLnNsaWRlIGNvZGUuYmFkLCBjb2RlIGRlbCB7Y29sb3I6IHJlZDt9Ci5zbGlkZSBjb2RlLm9sZCB7Y29sb3I6IHNpbHZlcjt9Ci5zbGlkZSBwcmUge3BhZGRpbmc6IDA7IG1hcmdpbjogMC4yNWVtIDAgMC41ZW0gMC41ZW07IGNvbG9yOiAjNTMzOyBmb250LXNpemU6IDkwJTt9Ci5zbGlkZSBwcmUgY29kZSB7ZGlzcGxheTogYmxvY2s7fQouc2xpZGUgdWwge21hcmdpbi1sZWZ0OiA1JTsgbWFyZ2luLXJpZ2h0OiA3JTsgbGlzdC1zdHlsZTogZGlzYzt9Ci5zbGlkZSBsaSB7bWFyZ2luLXRvcDogMC43NWVtOyBtYXJnaW4tcmlnaHQ6IDA7fQouc2xpZGUgdWwgdWwge2xpbmUtaGVpZ2h0OiAxO30KLnNsaWRlIHVsIHVsIGxpIHttYXJnaW46IC4yZW07IGZvbnQtc2l6ZTogODUlOyBsaXN0LXN0eWxlOiBzcXVhcmU7fQouc2xpZGUgaW1nLmxlYWRlciB7ZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMCBhdXRvO30KCmRpdiNoZWFkZXIsIGRpdiNmb290ZXIge2JhY2tncm91bmQ6ICMwMDU7IGNvbG9yOiAjQUFCOwogIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7fQpkaXYjaGVhZGVyIHtiYWNrZ3JvdW5kOiAjMDA1IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGg1Z0JPQWNUL0FNREF3TFcxdGIyOXZjYkd4czdPenRiVzF0N2UzdWZuNSsvdjcvZjM5K2Z2NysvMzkvZi8vOGJPenM3VzF0YmUzdDduNTdXOXZiM0d4dWYzOTg3ZTN0Ym41OTd2NzhiVzFyM096czduNXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNINUJBRUFBQUFBTEFBQUFBRG1BRTRCQUFYLzRDRWV6M1VaMVBOQWpwcENwQUxNOUd4TmdMWFVmRDhwQzZCQzFtTW9MQXBHYjduVU1SYVdCTE9td0FHT1JFVmxxSzM4TE5Od2JRSVdtMmZIMmFMU2NKemY4TnFJMUxnOENxcTZ3OUVvT0F3UFpUMEtGQmtJY1Zoa1N3bFFoM0U4RURock9tRUxGRVE1VlRNSlJ3d1FEVHRYRlJsYmoyaFJXd2taaFpoTURCVklOUXNaTXJNVWdxYTVQSE1pRHcwcWRnOGlnSUFPVWp4clZvOVlFRTBWRmFHNnNaNUltajJ6dUZ4RkZCUTFTbW01VUFBVHplSmhua0VWMStxV0Y4MjY4RE84SkE4R2JjSWpEMy92c3JRSXVHZWdLRmt5Sko0TkloQW9VVUxHYjhhRVp3UWxERVIyYTBvMFdkRGVMWUNRQUNDTkl3c2ZscUt4WnB5RUN4NE4vNzdocFc5ZVBnY2lya0V3RjJjakUzRHhmaHhVQjQzSEs0OGJkUnlqUWVGQ0QxVzNLalNrVVczSnhsY0FTdFpnRkFUTFVBQ01NdkJRRlZWQ0NwV201clIwMlF2bWdhM3FkRW50MTBwdDJpR2NnUEJRT2hIanoyZ1ZLQXg4bGlFREJIVUowbTVGb2d4WjJzQUFHQ1JRVE1wQ0xDYXErQVZlL0FsRFc3Qmk1aGd3UzNaelRCcFE0YTNkSk5nZ2dncWN5aGp4aHJydTFKbU1MQ0I0Q01yQ3N5aUxFV010RGZxeUt3cWpacllDcVNDaFQxSTBXa1BJSU1FMzVpVWpERndnT3dMQzlMUEpYVDlheXlCRHluQzN0VGJoYU9ZWnJJU0VMRGhZc0VBMzFrSzhWZkpHd2kzRDFSb1Y5a3JoMWtENzh4N0RjRWFkWjloNWNsODRZRUNFV2Y5b052VVF5WUZpZEhQRkJTV2g5cDhZRjdFSElWRWNXbEFJQVJlR0lZSjExRlYzM1NiaUdjVEFBd0JJaUptRURMaFl3MEppRE1SSWR4L3BZR0dJVXl4bFJvcVVmTkpBZkR3Q0lNSjFKUjVnandneWhLYVNWazZxZUJoQTJwZ1IyQk5LVlNXREJSRE1WQ1FjeGsyUjMxNDcwTktBanp3ZWdHU1NKT3doWG9vR3Zma2lEWEFHOFJnVHlDR24xSHZvVlhQUmwySk04R2NQRDlnM2czQVdNTGZoZndjMHdLWlloYzRnSXp4NVNRcFdpazRHeFFSZmFjR0pwU0RPQVNwZktOMG9JRUVHRFlocTVKcVBIaUFobk5Jc05nT3N1WlFtSVNPbGNXbmJNN0pxRnhpUlBRQ3JLaHc5RldRbWk0Q2UwT29jNG5Wa2tJeTBtaUtqT3Erdzh3UC9GK3kxTjBXVU5RNzc3S3dBL0RNQktJQWFzR3cranJRWUQ0M3F4bE9hVnBPeHAydW9jMFhyclVINU5ZRkRRWVJrSUFDZzU0NlFLcDN4d0Nyc0d4blV4ZXN6YUlaaDc3M3VBcERmampROElFVWEzam53SFZnQkh6bVJlOUx5a0RBODVNMTFzSmlMUWt6cFpQbVNpWVlDQ0JRU1FjcnhkTnpvVlZlYWNzTmNOSWVSTDM3K2xkZXp5aXZQc0lVUkJVbGNMYXBCRzlTeENqM290Y3hsRkp2U1UzSkRCNXMxMGU3R1ZSVXE3UzNud01tNmRJeUhkbFVMalFhdkVtODlZeXRYSTVMQm9GeUhHQXM1U1VBQnhXS0ZTRUMzMHgxVENFbmNaL1NFeEdMUUVQN0duWWYrUFFYajN1Nk5odU1xZ1hQdEVBbHg4cGZVakhhODNveEJVUzZML3dWSTE5Q2w2SU5zR1EyN1ppVDk1Uk91NmNvSUJSY1Jnam9jUjBpaEpSU09JU0hBeG1VSGZNZDlPbkNKK2xNQVFOQ1doN2M3QkFiTUN0SGJoUFM1T0RiUWFWSWc3VmhpMWlzdzl4VVQvS0FZYUc0akk1c1NlblB5VEJBTlVCK0g1OGlxa1pjTWtaaXhNd0pKektnODVFdzBXSTBNcmdzSThPQ2drNDhBSjM4dnM4b21tQUpBTU14aUMvTGF3UlBDa1pCUWFLSWpHWmdBTnpxM3JNM0Vqd3l5T29nWTByQzlqd3pCTWRTVFhFSG80ejZTTk13VVF3akNLYTRRQmQ2SnpudEE0TWNzbEdlbkl6UnZLeWVza21NV2NLYm5uS3NZeUZyQUFWeWpBSTFOb1NPTVFPQU1tempBeVV5eEtXOUFYandDMDhCWkNFRitpZ3NEVHE2UWhQOEU4SkNNS056RUFEZHhoR1pvQVJPRUtOOFU4UEdvRkJqQUFET2tRaFc0NFp2aVhHRXBhV2pqeHFDb0JnZ3c0QjlBV0tNYW0vWUdLRDRraDFGNW9TbWdFRUNtd0tnaVdVd0xlelRTQnN3SUtFbGp5YU1heXZDUFp6Q2dMa0tKQWcvQVVVcERMdUVoaTRSQ0JTV0pFWU00NWhnSklFZVJuTlUvaG1IcERVWlFYbFFFWTRrV2l1RU9yUXBsSkZkWmhqVmNBRGpzMFVJNTRyT1daTGpTRzNKNUJTTm13ZzFGSnFaa2NOakJDUjlVdDJ1RU1ESnZDTjgwTjNHQmdUbHRMS0EwaS96V1FZTmZVU0FocWFSYmc0YVpNNUpReTBKclNNQUZ5RVlETDRVVEMzNHE1eGxBeHNoaE9oUXJEZ0FSNE9BNW9CTjF4RC85M00xQ1JtT2V2QWovd295b29aaVhESHFsYnA3Qm9Ka0VvRUlmRVNOU1dMRVNnS0VXQlNLZ2twY2tDUUo0T010b2ZBSWMwMDJqT0VtZzJHaGVvUlZvVkVWaTBkRG13c1JZeVczOWNxWDRRbXJLYktJYkNrZ0FjTU5nMVR4SXRKc3d1Q2VhWEdoalIxZVJGK1FrQnFuSlU1NFBwekl4KzlpcmgwMmxrem95OElBOVFSVXpvNGlRcFZvVUFLd2VxUTRWUFF1M2lHSldUOVNIQzRXd1JGNjRVWWhWTUpaMldnZ0ZGa0hUalVKSTdKWEtrMU85T25WWEhvVmtDVGhxVndYNkNvL3FPRXBON2pEWFBLYURGWU9aTlRFQ3hVQWhLQ0JieHRZMlVYMmhRQUNBTTFzQllDQXdDeUFEM1FCaldabVE4UW9YTVNWbStrSUtKWnlTV09BcUVqUzhKNmJvQnFDaC95S2F3Mm4xY0VkZU9HcXZSa01MTjRMaWdLTE1MYkpyZU1ZRHVyR0tBTGpVRXBsQUtDNGt0RUcwQkxjTVFHb05YbXNBblBkR3M3cDlhWmRuSjh1RFZ4bU50TG5RYmp0SDBNNFRxT0FPRnloQURvWWltTm02bHdJQzhGc0ZUNU9HdnlSZ01iQXFWQUFFNEoyL0VLZVUwU1hGcE93RGk1Y1JSWTVpV0FVQVhzc3dGRkpObXdSREJob3VOUVhOQ2dDN1RHQ3dTMHpRZ0NKalFCOHNncE1xa01PTnZPUW5BYlN6amxWcHA0TlFQR08ycTVoSUJTUWdnU0VkdHoyMklVcHhOL0VYckVRM0J6OThCTExzODJFcWZDRUhDNFBUS0Q0bW5BTEdBNUZNb0c5M2pKSmdFWnhXdTBmYXd4NVVRSWlFbUFmS0FYRHZqUFZ5WlZqMDY2Z1MwLyt2eEdaYmlEYlBRQUJEOElzRkpCQUFCUzBhTkJDQk1uZ25KZDMxeVpDTTZaTUNoRnlrbFV1TVVUU2NFNWtTVUFNQkFjQllZS3Z0Ymo1OG9TUGVYdmtZM1RoME15OXdRamhibW1Ed0dRVllQVlNVM3kwZ0FqMXRrWVJHMFNtdG5IckdFSnZYRWNqeER6R2dCc3d6VGhvWWNFSFFHaGhLYTJpdEFKOGZJZVI1T0lCVnZoZ0NCU2J3NGFJY1F5dk5FczhDTEVPR0l5QmdVS01BRHE5c1k1d2hUS0NVMEdqeXJEWW9tRDI1S0s2cVNvTU1kOXFEWFowQ0IvaVREZW5hTm1lSm5Wc1drK3RFc0hhUWtRQ2tXUjUraG9HNzY2R1pEQkRiMkhxcVZIVFhNQlBqQU56SktacFBzYzBvQVZYc1ZtbWp3S1Y0ZmpheXUyYlVGWHBNbUJULzdFTWpDRkJBQ29TanBKOW9OM0tqbWNxYmNqZ1NkZDZ0V2hJRUFBY3pZWUJ0Z3YwenBRWEdqU241QzR0eHFSaXFSRVdRaG9SeUJCeXdad3FIelZBN1NwdEN6ZGpjSWtDWkVjbVJ3U1BicG9XTzlLUnFNQXNyNjVKRGNpaVluTjBqVXRhUXV4Nkk5V3drTHhmNDFWQU1aVm5KOFFBVnl6a0d0VHVLQlM3WUJuMFNNRWJRbWNJVHFGdjU1S0k2cFJrdjRnbFliQ1NzV0FpRkozQmdPS3FEaHBKUndjcmljM0FJSkd3YTZ5Z1h3UjljUWlEbFczVUhIMVozZXZGQ21XWTh2ZUpRNk1seXJyL0txMlMvTmVvT3pQZncwM2lqd2Q1YmlXcnNqdksydld2UG9DNHpvVkZIeG8wSkNLVHI4MXZTQXJuZ01BZkp6NEVGS2ljZEdUWUUvd01oQWNZVE42andaQnRIQmNESFBISHdZYlpCY2duamRORkFTRjdpZnAzbFdmY1hRNmVoRERzelBXU2tBQmlBZkhQUUFyekFBcW9sSGFsWGZoWndBZitBVW9jSFp2Y1JWalZSRjJ1d0VUc0FBUU1BQlpkZ2ZtQjJDR0dVZ2FMU0JSQWtRZ1JSQmtjZ2ZYRFFkU1pZZ2luWVRnMkFSOGxEUDQ1Mkp4eGhlN0pSQkVnQVpHcDBRbHpDV0t1d0pSSXdBUmNnSHNhSEJaa2doSUN5aFNiMFlSMGhRUkNYTzNyekMzQ3dmTXBIUjAxb0hYcndBRHNRQzJsVVAybDRTOU53TGYvVFFrRkFjMDdYVVdVRlFCS3dCVUJ3R2hrSFFNYWtobzl3T1RTZ0NHcUVBQzNsSEJMM2hjM0RBdmlRVTNkNFIxQm9CdzZRZjJtWWl0WGdKVHFnQmYvMWNRbU9JU2dZc2h4cTFUc2FzaGl1WXlxWDRGaU9PRzdJUjRrMUlRaWxVMCs1c3lpU1F3WW5zQkt1VWdBa3dJd0hnQWUrY0FGOEVBdzl5QzlJbUFXT2xna29kSERzb1JpV0lIQ2pzRHlGMERzd1F6ZUVBRUFVVUFlRWtGaTZ4QW5uQjR5SWNCbmpneUhzWUIxdWNBWWowQUx3cEErbWlBRkloSFkwaEFhc29DUCtsb1dneFFtcmtKQ3I0RUMyOTNianhEKzI4QXgxOEN0bkpBcncrQ1Y2b3d0bUJJRkthQVp6NEFmNFVBSVBsbm9IOEFkMEY1QitGRW5mS0luN2xCajM5MzcrZEJ2U0pCZHhVUVhwOEF5WVlCTUxZQUxzY1FzNVNVc1h1VVhEZHdhdm9CaDVJVkdaSVIzUFJBZHRnQWNtK1F2MXdJZVJOSDhQVldpd2hJbi9SdU5OQWhFWGtQRmgyREJQVU9ZM3RqRVVOQkdVUElKUzB2SVRBM0FHRFNBQVJkWUhMRkNTMElZQ3ZvQVBCc0FPQ2FnR3N4VlM2MlFEWEFJSHYxSVlYdVVYdS9FRTQxVm04MlNXWC9Jd1lvQVlSOUFmWm5BQ0FkZ0dueEJoa3ZsdXc4QU90OUFSelJBWmExQXREM1U0NVFZUFM3WWM2bUFDTXhZS0lLT1kvd0Z4WjFCbFdoQS9QY0o4R1BBSEVWWUNacUZXV0pGZThBSVloaFJxNmxBUTNaRVMzVEdhWjBBS0cwRnMzbk1JZzhXYVBCWVB4b0ZoSHNsOGUzQmtqVklDSThBVlNsVlBvWVlja3lFZXhWR1drWFpaLzJGS0VJQUJsZ0F2ak9tY3VpQVhnbWtLNDBJem55UVdFV0FBVHJja01kRnRmRk5QQWJZaVVFSUxSQkJsLzNqeFpNWkpMTjN3Q1phQWNiL0ludVZCbnU1eWoxT2dsSjlrRDN0Z0x2Y1FFekdTbFlKQlZ3c25LZUFwWEZnekVLVDJTaXRrSGpHMkF3S2dRWnJGb0pneEJNRzVCSjdtTXdnV1pLUjRnZ0hnS0g5UUZJNGlZUTQxVythV0dKR1NQT0xoazBSUWR1WG1vK2RtSG1RMU9FSFFIUFRGb3EwSkJXVGdHSDhSWmc0cUp2K1NYWTNDQ3dZUUFOTWhIWTBTREVTd0VTeTJvZXpsSWxSbkNEUkVNV00yUXV5eEczekJXSktpRjlIbklTMlNTTmdHcGY5eENPMnhBRVo1V1dTemsrK1pkV3JpWFFzbWpYVHBLR2lLYjNLV2tIUkNDd09BQXc0WVhxWlFEb3RSS013bGNQQ1JQT1JDQ3p5MG9Ib2FCK3J3Rnp6QlNKK2dwWDhtQWw3cUR2OTMyQUFwZ0FtL01wNUVvUlJleVEybmVBc0ljRlV6TURORTBuYlpBanBwVVhZZVJ3cmZaZ3RYTUlhVkZhcHJxQTVoZGsxTllHdFRvSHdxdDZVM3VxVkhJZ3dOb0dSWEJpdjRkaHNGSndNWElBRUNJQUJyUUdyVkFndlJWa2lxbVJleWFUUlh4a2NBMEZmZThZN0thaitHVjZwZXRZUFJhcTFhVjYxMklBSWdtYTExSVg2eDFpS3JpUmZWZ0JwRjU2NzFCQlRlWURUY2NCVzI0UUJacG00SThISDFlaUZSc0xIT3VpbWhVcEpuOGxjSGNLTXMwSVRYYWE0ekJuVUpXUnBCVUJIZWN4aHNVMWIxUkhIbE1UZFN3QkgwQVFhZFJxOForNXFjMERNS0FKbExRQUgyZVNRWEVBQVFFQUZSNkdlcVJXZ2JRMjFUSVMrT2NRczFCeEgvaDNjTWJXZWx1ZkFYRVhSVTBnaGpQWXM3N2ppVVY3Qi9QYUFzNzBaa215RjVyTm9MdXJJcFBVRTcyZGNsc21Gd3UwbXNPZGdYbUNxczB1Q0lnSmdBbGhHMnFySVJpOElBRHZDU05EQWRKaWtkWndJVC80b0gwNG8vd09FYVNsRldoVkJYVHdCcGJIVVJ5OEd6MDNPeE96QXVRUUMyZ3ZzR2N2RTREK0FmSHJRSHVxVVBtOEVId3VCL1VYR0RINkZzYTNNMWhOQ0xYSUsxcHBPRG51c0RWQllZQjBTMnBXc1FzbWdSaDdzRTVsSUFKK0FBYzFlUytsQmVkd0FCTEZkUEErRTl2bGRRdXVkQWlmZDl4Sk85LzZFM2U2U2NrMWk4QjFVSkJlQWJSV0VIUkV1U0p2aHVLc0M4d2pBSWhkRXY4N2FiSExFR3RBQk5zWUc0R0lrZS93bWdqcUJxdmhoQ09RdFFBQ2xSQU4ybGovcll2UFVBditaU1NLZ1JWOGJITnQwMFVCU1lpaGF4QUxOUkJRcHdJTE53UExlMFplVkx3QUdoaVdGZ0FWSzRDL253Q3pucWxDdmdDL3NRRlVLQlE4dFRIT2tDWlFrSkhCNmlpZDR6ZmpsQU9rYWdGRWpnZEltMVNqMW9KUVpYWHlhTUdibjBoaGJSc2NsSEI0OXJBb0Nnd0JRd2pWRVV1a21NQnJRd0RSR1VBUU5RQjg5MGpuazBUcGpFd1RiWkhvcjR4UUVwUnJEQUJrMzhIMXo1UkRBQUlDK0JUUHZZQXNWZ1ZMS3hRNnVFRW1zREd4NkNCQ1p3QzRLY2tsK3dzVUZRUVlXVUc4K2xRVUJRQ0lia0gwYkFKUmd3eDNSTU9aN2dJeWJiSnZTUUQ5SllEd2J3d1Y1SkYwanNSditBOFUzUVp5ck5rUjQwMFNDQk1VUzlZUnRqV2c1Sk1UK01jQjlCb2F1YXJCS3JJUVlRc01KRU1aL3pBQWlnYkFVWGRRM0VPbDArOUlHSlFYTTdtVGo5VXlVa3dSNmpvQU9FR1JrNmNBczNFRVA4Sk1pL1hEbG1NTXdBc285dE1BeGNhZ2R0UkZZdHBwY2Z6RWQ2RTIzQnZKTVVjbFhvZEJTaFVxdVlCS2NmbkR6L0UxRHBPczR3OUJHTnlUcEt3aG5TQVJNTGJaOFB4cnl6dXhnSUVLNU9NWmJlZ3dTSG9BcU9ZQUc3TlZCZDlYNXlCR1hVSWpHTy9INVA1eGNlVGRBRm5RVU5CVE83UUNMRGdBSDFDWUR0dEFkMWdNQ295TVFvNGtwS29RVTVVQWdYaTRRSkYxTHlVME93NTFKR2MwYVVZQWswcTlJak5BNkpjYnhCazVML0JiVjhDODBIQVZDQzVWVUhENEE1SlJZakNnTFcydFN0WFpFcVR3Y0dxcURENGdIV3YwSzhLSk9WLzBNNmVqR2lUdjNVVjdBSndUd0l4R3drZitZTzdSUUJ2TkFDZFpDdDZSZ0JIdlZocjNWWmxyVWNrME1KTU5JaUhHb3ArZ2FVbXhJS21YVUYvMENtZGEwV2F2RFByOFNqQlhVZGxZbGFxZG9vckZzZlFqR2t2QUhXT3daQTdwQVhtVHhwQVRZcjhXSlU1M2MxeGlmWmRMM1pUS0FNUkRDb05MRFhmTUJnanVJb1NDc1dJd0RPNU1sY3dkSVFZQ0FCczhFZWZlV2pvcFU0eStGWUpZeFdhRFJqSExHZXZFMERoL0RiYWlCR1YvRnVackZkYWxMYUk0QVc3MklHTTlwWHIyQmdzNUlXYXVXYXdwd0ZSMkJadS8zZE9xWUcvM25kUHczQnVPbXRkU1BiZFhOd0ozeGgySlcxbnVJY3IzTXFZSXZERzNrRmdpMlNubm5LM3pXaExSWkJ6S2dWcHRlaEJ4Z3dEMTNkRGJ2eUY3dFZWQWZ6QXk1Q1dqSjI0VUt6TkVYMU1MR2d2K2JCaFJnZWZJQzM0WElRaFVSVzNDb1hBTTdJWUJkTnFobndlS3YzZnQ3b0VKQTlNb21ZRjByZ0tWUGxZU0w2STNxNUh2dDk0OGlBUHBXd1JEUlFxRVRXWUk3Q0FnRWdES0hvRlEwZ0FSSHdUS1F5V2w2NkNtUGp4L0syWnJURERiTkdZU2ZEeHU1S013U296VWVPNVJpeVVBY3dGR3JDZGYyM3R2RExHWXVsUE1lV0YxQ25pTnJXQmRMRzZNbEI1M0JRTGVKSE0vYUJQd2lRQU0zaDUxWkNGWXVTQUlGT0EzK3d0THlnTFAvU0tBRjBOQTRBbDNuWmtiTGh1VzIxZWQwTzhKNTZkdzR4YThCeXJRUVJrTjI4VFJWKzZncHZPZ1A4NkNwMW9GcGNaNUlraVIwd0NyNEhFVTE5a1hvUGtjV3RzSDAyamg4VEU0U01aM2lDNCttTnVVQ1FNZXlyNGtGSFlpNldhUzViSFlXREVIQi93MWd1MmczN1JqR0o4aWZleU1GMnRpbXNHQ3JGTWhMZS9rUkRrK05Hc2cvNUtBd21hSXFBZ0FGbU93TkZwdTM3NWt4S1FRNTJNQkVHT1NQd2dVKzNsTUpVeHo5cXhKbkEzZTlJZm16aDN1V2ZETDNRQzhNaWNCSlhVUUVSRUFBcHdlbTE0QUFqdUY0ZEM0Z01JZTY4a3pMQ3BQSGlnQjRlNzFYQmZnNmJMZy9VQythalRBOGxLd3lBc0Q3ZUVNREJTWFdBS3dPNTlFei9wTkJIUVhoN3VKVFpqeU9KVGlFRUd0L3pTRzRHUm5BTTBkRUw3ZVNNTUV3QjBGc0Zoc1lHeW9NU0s3U09RWkFCWS9PeldROFpLSVJMWkJ0SUtWRU5YZS8xNEI0R1FXOGtKVWp3dFhtSFVka0NZZFZOVnBVRmFwb0RFU0FBOTNSS3B6c0lHMk42QzFISFJ5aWViRlRFZmw4SlRYTklvU0RLUWY0QUpLa1BST3U2Yi9vRVcvanZmRzlvMGZCcXlHQjZGclF4V2dJaHFuL3RmZzd5UzRBQWpoQWcwMG9ITUJHOXJ2b1p2WkdUWWFnZGg4Z0pncElPOUFhVVdoSUxzQzhMT0pzYnEwVFozZzQ3Tk1QQmg3SUhMdkVBdGFrQzVRV05rejlERFlJTklaU1lVM0VhallUUld5aEpXd2tOR0x1YW5RL3U0dTRVam1DSElqNW9iU0JvL3hvREFnbzBBZVZTQVdkWkpwV1ZySW15ckV6bHNwbTE4anlqS0NZV2wyM1hNMlZTR1VpR0JtQzhqdElwdFdxOVlyUGFIdXlaWUhTbENFVHBZRDZqRFE3SHczRm92NEVLUkVWaGdxUlF2SVRGQ1JpV1FFQjhuYWdrVU9nd01FZ2xKQ2xRVkxRazRCM3hKY2dzVUFRQnRHeDVmb0tHaXFZc2hGRXQyQUdnclI2b1FUaFFHS2c5SER3cDlFM2dMU3dCNkhtVlF0Qll6RmdFZitFMVF2aTJRQ3oyL093czdEVDZjaVZSQTFCd0pvMTJlMzkvbWxJbDFLcXlucW1kclRrMFBLU0s1SlV3UU9iY0JBOEREZFBZdEtEMCswU1NBcVFDSkVwVWd2WFNoaUlLdUlZT0g1cVFWMlVCR1hQbkRGdzRBNkVOQlhZVWpIQTdrUUdGRFJzOEt2OUlBK0preHpWREdiU2Q5TU9EQXNVSTFhYWcxRFFCQlV5SVBuK0NjcFpBWm84RjVjNlplWVdtZ1RvRkY0cjVpVVJoS2lSbks3VGhneG93UndsdVBCRDI0SGJCYXBVbWoxQjRCYXAyN1pRdURFcU5PM29PQXRNemNNNEFjQXFUNTQwYWVvYitXVERoVnA4VTFnQThTQnRJSmtwL0kyOGVtWkhoNVF5MmxpK3ZLSFdKYk5HS1NBOWtiSlVPVFFrRmo1TWtRZlRTMTBnWVUrVUltcUt0SjQrMEM1VGRtS3BZQ2dVSU5IZGpEdjZUNkpFRmNKSFdCUjJhOUoxRDJSS3FwZ0FHajZQS3BDQURTRkpodDV6TUorYWx0dUtJUWtYaDVuK0tZMFRqWFBMUnEycHpxckRJNi9idGk3UFRWdEVEcHZRakdWS3RjQTFNd0FWWVFnQ2NuWmYvNERjTElGaFVHVXN0ZDRBREVKekRnelNjOU9KZkdQZ28xa2xZQ1IxQkd3dlU2VUZnWG8rSXFLQ0tvM3hSQlJpTG9IRUJoYXRFaU5kTXpxVFlpeDg3cEdqU1NUQmtRQllxVXFTV0FReGJFWG5CaWt0MlExd2x4MGw0Z1FHc0pQZmVTYzdJUjJRUGczRzJXeElQaEhIYkZBdzAwMTh2NlpXUUk1TnJZZ0dEa3pVY3NJZ0RVazY1Q2dSU1Z2aGpWMmdpdVNjWFdhNGdIMG9GVWlIb1ZrWktNU2liaTE3eEZvTm94b0FBREczVWFFYWxOZ2E2U0o5NlhxbmhsVXgwQVVTRFo5N2dCRmdXR3NHb3FveXc0TVJiQ0E2MVNBRzA0R2tHTzNYbUdTZ05paDdCYXdtYi9ockdvQlZNNE1TZ0NuQW1uekpSeVRUSnFzOGVBWVlYWU1BVi95MkRpRWxJeTV3TnpQZ1pEMEQ4K3FhdkFKd2Ewd29JMldQSG9OVUd5Z2V2RmlCZzFialFQaXR0aTZPQ0FRTUVzejV3QVMyZk1SZnVpVlNJeW9NRkpCeFIyTGt1eFB2ZnZPZUtJSk5wZGtEeEpyMnJTanNPWEd3NFVBREFyQmlzcnNYa3lnUUJnRjhoVEc0ZnZ2VUdBVU5TT0RPTXdRd09jckhOZTd3NEJRSTBiUFR2eHdGZitNZkpQWXl3aHdVTnlseUNCWDFZUU5NV1NmOUJCdFEzMzJ3eEE1SWk1dkhQVmtvREE3Z0VuenoxdHdEZWtrOGVxVmJ4dGN3L0RFMDF0Qm5yVElQUFc5dDRTMmxvUHpPMTNSWnVwOGtLWll1Z3dBMXRGeldNRWVDYTdMYmJrSmF3TXdDenZ0SEFCZTM4ekFsRGUwZEdFTnFZcC9BQ1p3aGt0ZjhENThYZGcwY3VRaXRPOVJlUVhqMnA1QVhNZU5kbmxwaUE5OS9SbkF4NkRDNVBjWnMwdXRpKzVRakFENWI2eFM4cTBxSVVGS25TclYxdWZDWjRadGpwWnlFQU84bXp0RWhEMy9aUDliMEhvNGVZeHRPN3VtRnRYUTNBR2hkb2JRWkdFNjd5Z1B3enlEQUptdU92b0wwTWRtVFNSeVRmZjZjdjM2dEVZOGluT0JpWWIza0FJSU1zRENBNzkxM0FBUTFzd3hvWXhEVHNOT0lGZWdCQ0kvSkNBd1ZFb0JNKzJsMUtPR0VkUmtRQ093YUVscXZhQWlVSVFzOE1sSnJUY2tnV3ZnQnRoeGMxa0FRSC82TU1COXlnTDlHeUQxZkdaQ1FWcm5CVmhEaEZpMmg0Z2NuRjBCVnJVRU5kbUZZTVB2U0NlZ1RoQThWVXNoUE5VSUVCRC9EL1M2RmFZS0lrcXVvU3AwaUZBU0F3SmVjbFpVTHBvSUNFZ0FBcWxDaWpnOW1veWtKc0o0SXpFdW9KYWpKSkJzYUlScXBkaXhGeStWZ0VaU2kvdkN3dENvaWFoeTl5bEEvVE1HNG0zM29USkNaelNLckJyU2lMM0ZvYlBHYUNFd3doUnlNMEFXRm9vQ1l1NEEwNDlnbkFKNnMyamdVKzZHZXlrS0FEeTJZTU1OUUhFWWd3NUV6SU5ySkFYZ1ZtRHpoUUxXMEdnd2F0SjVlZmFXTUVYOUVSd2loakNKRVlWV2JROXNvUGdkTmcyOGxrTTVuVXdrb0F4aUtmYWVRcktLaVNVaGlKbkYzWlpCWWdzeHNLS0srYzBNcWtERmJBU0V1dHd3eDNLOWRFREpLZExGZ3liTWZVcDRMQzVLSnlxRE5Ha25PamxHSllpMkVVS3d1ckhCSVcvd0FWbHBpVmg2R0xXa1FYK0FrZ0dqVWdPWE9hMHlwR1o0VlZQcWVlNHRpVjF3Z25VaVlwVHhGaldtQVhWdnBFWEUwT05LeHdoeWRTaEtncVJDSkloWk9EMkc2cVJJMzVvWUV6MnRhMjRCZ0hia2JyWlNtd2FhWnVJQTdwSUdBd1hIWHFtdkpwclRDbzQ2ZHpzaW82am5hRllZbmpZUWFEUkhvR0V6U3lIbTlVQ2NCYUNmckZoZ0w4RkdBWVdhaXlnQ1ZYcGZHQm9IZkFxODFDR1prd1BNQ0IvbUpyR3RpUVNkT1E2V0h3b29MTURzdlltekd1ZFN0WVEyUS81a2I0RVl4WTVGS3M1U0FGcm1LazdMT3BNeXNYMkNVTFhSWUFmaER0UWNHV1JqZ3l1VlowVFpYdHpSenJnMWo1YzJ0c0NOajAzakZjTXIwcGFDNGxydXFlRVA4M0hnQ3NZd2JveU56MjRJSlFEVGN3dlR0Y2VLbExMK1B1TUtTZm1SVkc1bllBa3hGR1lhZzBhTWg2QjQvZm1kZDRPb1VaR0pNN1ZJdW1vUUQ0NEt2djZKdS90a0VCdm9MVFFYNk5OekxtZldWeUFtRGZHd0NNaGpZUThLNjhIVm8rZHJZSTZUWFl3ZU5JSHc4QTY2OEdTQ0FDa29PZUlDYUlZWURraHNFODBCMHBVbkpDaVlSNHR0SEZKUThpMkFEb1lRUURLcFljQVo0WXdRZG9BcHN1MkVVT2pQQ2RCT1NDSURmT3NRRnBRRnNUcUpFSERZakE1QUxBWlRjWVFIS3pTT21VSE9ETFByaHBHWHFnNUF1TUUxTXFyNUNmSWUzckExSk1VUXdFZ0lac3lETUZKQ0RReGpYckpTTTV5ZGxRRVZzNGt5K2R6MkRBYmgrMHJ3RC81Qm1nNzMzaUEzNzhaMDlVZ0JMbFJiVGJvSmxsN0NJZ0tXR0dkQUJFb3dZQnhKRFRjSTd1bkZsQURqUlFDQUtrbGxKcEw2MkZTN2haMVdpRUZEbWtzQVpHUmtBQVA1N2NWRkxhZ0ViWlEyRzZUdlJPRzEwQ2RwQ2ExQ2w5cjFRZElBRUpOQUFSTGxDQUJINTFnMEVYS0YvQlczWjFpNk5vN1BZc3N0UzhRTFJWUEt1T0VHUk9HTmlCUnc4YXFDQ1N1OHB0aVpjVTZDYWhZRi83QXRyK3k3ZnBrZTltc3M3WjB2UzN3am1CMVlQcmUzbXRYcmkvSVM3Ym5ISGgzTmhsT0tZczdsUTM4UmRTSE8rNHgwV2FQTTdBZ0s5SEdMbXRTMjV5NGpocVZDeHZ1TXRyK2VrYXNHdmxMSy81eHpsRExZdk5uT2NNSFFwdDg4VzRvQXU5LzVad0M2V2pxb0QwcE5leVdsYkoxOFQ5eTNHb2w5TzRSSGY2enJHTzhHZG9YT2NqOTNyVWkwTmlLanlkN0hHTzFsNnZrSGExazQ4NE1LQzUxUmtPOXhVNjZRdFYzL2pZNzI3QW1TN3c0Ukd0dU45VFZ3cWk2QjBMYnkvOHhVcHFQWDY3dmV1TXIxcDZ2SmFGeFUvK3FUQnJ1K0lsbjNsNjBVQW1IOVFDNWo4LzBzcnp1UE45TnozR1dKVnpLNVNlOVV0cWtTbm1Mdmk2RTE3MmpNcjcyVlYvZGQybmtTeDZ2ejN1NlFiOGtUcmNCMWNqUHNXTmYzd21rWlFzaThnMTZUMy8vSWI2UE9YeTdFSHNyeDhjczM3aExaL292dmN4azA5cWJaLzcxaS8vZWVDV2N1WVhmMnZzWDFFWWtyZDNycTkrL3ViSkp3SVgydS8xNng5Yk9QK0RxeVFlS0pCZkFENEVBbGtGQXQwZi92MGVBbG9HdFZqSUQ0akNBVUpnUTdDTEV6U2dBOXJkQmJLRk9NemRLRmlnQjQ3Q2ZrVkU2aGtnQUpKZ1F3QWUzZmxlQjY0Z1JJQmc0M1REQ01iZ0ZwZ2docWlDTjlqZ0RXS0JZMW1aLzhHZUN2cGdVSEJCYVh4RER4YmhLUlFISndqaEVPYmZFb2JDRE9ZRk9DaWhGQjZoOHZHVUZSSWhGbHFCRTRUQk0yMWc5VVdoRjJhQlc4akQrelhFRlpwaERqSWcvRUhoQTVyaEdZSmRDcVRmNVhYaEhHYmhIcERDUTdEaEV0TFdacndlRCthaEhqNEJna3pmRTVLaEhMYmg1c0VLSjR6aCtCVWlDVXFMVUN3Q2VyWElJQ2JoSkpLZ0d1bVVCTEtkRS83RUg1YWYremtlcTNDZVQ1RGk5ZEgvbm5XQkhNd2tJbENzNHZHVmxMUVlSeUpWd2hORVlpak1vdXpaaTNHNFNSY01vaTNlWVFxV0lTWDJuNFhjM0JHbTRpaHlZaWsrRTh4cDRqNUFuaXcrSXl1K3hSTHA0QWs2eUJhdVJTOW1Ia2twRDJCb0lndjBJVnVBWStZQkJocCtvUzVlUmpxR28vaTFTUmxnQmp3V1h2UnRueFBnSWpwZTQvTzE0aFVJWXpFUzRqR3lYeGhPQzNyRndOOEloejFpM1Q0Y29wV2xBRGVobFhrd0pOUUZKSzVsSXhNaUlVWDI0K2Vkb2hlRVZtWUlKQmNTNVBQSm96ekNSUTdpakNpZVIwWFdYUDhkWGhvaTVINVY0MEoyWk9FNVpCbzZYTmdsbnplMjVFMFdIdmdaSFNJT29DSkNoRXVTSGNibElrc3FDRkppSGUwOTRoT1VZejBDNWVjbC84OCtlb0U4MUdTQ09PVlR3b3c4WUNWWFZxWGZYZUptUktVZHJrbFhXaHhjVkV2bERlQklXbU5KK3FJQ1hwazVudEtpcUNYRUJlT1lDSVZSOHFOYzZoNUM5aVNFNGVWWXFsMW9sVlJZTGtsZVFoenZ0Y3F6TUNhNVFTUVhPTU9yUUtaaGVxWGMxY0F1L2lSZ3FpUDFXUTlZd3FGTmVpYmpnZUZTT2lGY0JrZGtjcHFUK0VIdlFRdHJ3aG1hMUI5bnFvaHM1dGlWMWFiYjRHYUR3WW9mRU9iTjlDWjFUZDhlbmlOdllxYkZrWlJ4VG1Wc0p1ZkIyYUlXM3FYeERLZFRWV0o2d0kzamtFOTEzdFRxaUlOU3FoeDFQcWV1RlYxdHFtWmFqcWVxZ2FCVlVNUm9NZ3AzbHRPOUhGZGxhaWNhd2FmU1RaOHBURjF6S3M1OWZsSk94ZitBVUlTbmZhWW5jU1dTWXkyZGJkcU1mNmJPSnlMWGZKcUFnaTVvZ1g1VzdhMWtxN2pueFRDbzRhSFBDdFNuUG0zbzRqaWloNTduaEpibXN1V2RQRnlOWC9ZbmhaSVZkb2JCenJCb2k1NG9sVjNDVUNDZVcvQm5MWVdvcWx5aWRUVmhxNVFvalRMaUoyVW9NN3BtbUF3b1dmWG9OL3hvQ1Q3cEh0VGZqdW9UWmQxV0dyU1JDeHFQZDJZb1FvcmVBUXpwZHVLSys5UUpycFNwbG5ZYUM1emNyVmxaZ3lnYU1JWllLNkRER3pXUURLRURtamFXSi9wQlhacGRUL3FBNlBHa2JMMFhoWmhwbGs3SkcxSGJmMktaaFRZS2JaNWZvQktYKzhqcHBOTENvWXFHR1NpbWNhb0YvRlVtUGxiaVpLb0hYKzRCYU1hcCt4RHFqTkJwSzNUL3l6YTJCYXNDQlovbUloam1qRGhXNG5HVlk3NUV5b3d5MUp5S0JoeFo2cDh4aUVwR2hEd0NCYWppR0t2VVFCTStxS3VDWFU3dFRKZzJFeXRrcVoxRTFvekV3R2I4cVNpZTVrdDVBdkk4RTRiUUpqZFpZcmFPaVNsUUJMU1dFOTJrcXJQVm56a2lFTGk2Q0xPV3E2dXQ2WlV0WjF0WUtHTFdacVpTR2NQaENxdGtKTzI1R2F5cTZUemlYSmF0anR6cEZVZ2VvbVUrZzB5OHhWYnFHdVpocS9qaGFNRit3ei9LNXg0NkxDZDhtdFF0STg0VkJhbVNXK25CQmY5Rm56ZXNhYk1LWldJYVIxbStDTDlLcGEyR2JNa1M0VDZ1cVdBeVVmaDlheUFLcTcwb1R5bWs3TmFabTVCUWhLNVNWdy9pNmlGK1pTaW1ZUmpXbmdtMm9zT3UvODZMWk5McjdSV1ZxcG9TWWx5dFZ1MzUrU2x5UFZQeTdDVFJLY0sxMkF1R1RrdnZDQjlGU0d6SlhXSEdHTjIxeU9wbVZPeHlYcWZkWnVYV1BaUGRXaTM2ME5iUkhtbS9kaUhCRnNXTkhxdVVvdE9qNkNUZTlpMWE0bXNPR3NlU0pwMEZicDliQUNqT0VlWFlSZ1JiaG9uUXNwMUtIaTI2RW02TjRtQTBhaXE5NWt2YVVzdGJPbUx0SGUza3lTWmIzdUlobW8vRmdwRmdydTYxMW03bU1lYlduU2JpMnVFNjVtUzU1dHpQSWEzRk1XYm8zVno5OVMyeDlzN041Y3ZMNnQ3eUN1TXROc3VvTWhIWTNTTHBRbHhlbXFzT3VzcENFYTEzbkt2M0txK0wrb0FvQ21NTTlKZDZwRWYzb2kvY3FxLzVZbGtRTmdwUkhCNll6bS9OdWYra1VyYnZEeXJsVmwwc0JMb2tybjNDeVlWaDdLN2cvOEtoMGFVWHlWNmdmd3F2dzhsby85NGRkNEtpVk1vdkZ2Wm0wK0hjeXhxdUI3TG0wb0xsK1JyaTREa2ZVRXd2RnlnQS82WncvRldPVDZ4c3E0UmE4azR3aGY0dHpubFlERStCUFE3d1hzMkJ6TVp3T3BvbHJvMkIxaFl4VUdhalpseGw5dzZ1RjlxZ1p2U1hJb0RCczJMd0RXS2UxZDZvejAxdUVrZnhFbk1jSlZpeDNJSWwwUm5IQVVqS0NQc3dIdnBiR3huQWpTcWdaZ3lGakFKakZxZXdZRFhRSGd1VUZVOHU5dUp3R3l2ZUhoUHlYTGhSSFo5dkdBdnlGc1JhVW9oYVpNbFBKQmZBSkV1S3NDNnlaVGlRQTgzS0pLc2JITHVSR1l6Qkphdkk0Vld0S0p2eUthTUVzaWVFQUFBNykgLTE2cHggMCBuby1yZXBlYXQ7CiAgbGluZS1oZWlnaHQ6IDFweDt9CmRpdiNmb290ZXIge2ZvbnQtc2l6ZTogMC41ZW07IGZvbnQtd2VpZ2h0OiBib2xkOyBwYWRkaW5nOiAxZW0gMDt9CiNmb290ZXIgaDEsICNmb290ZXIgaDIge2Rpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAwIDFlbTt9CiNmb290ZXIgaDIge2ZvbnQtc3R5bGU6IGl0YWxpYzt9CgpkaXYubG9uZyB7Zm9udC1zaXplOiAwLjc1ZW07fQouc2xpZGUgaDEge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwLjdlbTsgbGVmdDogODdweDsgei1pbmRleDogMTsKICBtYXJnaW46IDA7IHBhZGRpbmc6IDAuM2VtIDAgMCA1MHB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGZvbnQ6IGJvbGQgMTUwJS8xZW0gSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKICBjb2xvcjogI0RERTsgYmFja2dyb3VuZDogIzAwNTt9Ci5zbGlkZSBoMyB7Zm9udC1zaXplOiAxMzAlO30KaDEgYWJiciB7Zm9udC12YXJpYW50OiBzbWFsbC1jYXBzO30KCmRpdiNjb250cm9scyB7cG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiA1MCU7IGJvdHRvbTogMDsKICB3aWR0aDogNTAlOwogIHRleHQtYWxpZ246IHJpZ2h0OyBmb250OiBib2xkIDAuOWVtIFZlcmRhbmEsIEhlbHZldGljYSwgc2Fucy1zZXJpZjt9Cmh0bWw%2BYm9keSBkaXYjY29udHJvbHMge3Bvc2l0aW9uOiBmaXhlZDsgcGFkZGluZzogMCAwIDFlbSAwOwogIHRvcDogYXV0bzt9CmRpdiNjb250cm9scyBmb3JtIHtwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgcmlnaHQ6IDA7IHdpZHRoOiAxMDAlOwogIG1hcmdpbjogMDsgcGFkZGluZzogMDt9CiNjb250cm9scyAjbmF2TGlua3MgYSB7cGFkZGluZzogMDsgbWFyZ2luOiAwIDAuNWVtOyAKICBiYWNrZ3JvdW5kOiAjMDA1OyBib3JkZXI6IG5vbmU7IGNvbG9yOiAjNzc5OyAKICBjdXJzb3I6IHBvaW50ZXI7fQojY29udHJvbHMgI25hdkxpc3Qge2hlaWdodDogMWVtO30KI2NvbnRyb2xzICNuYXZMaXN0ICNqdW1wbGlzdCB7cG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHJpZ2h0OiAwOyBiYWNrZ3JvdW5kOiAjREREOyBjb2xvcjogIzIyNzt9CgojY3VycmVudFNsaWRlIHt0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMC41ZW07IGNvbG9yOiAjNDQ5O30KCiNzbGlkZTAge3BhZGRpbmctdG9wOiAzLjVlbTsgZm9udC1zaXplOiA5MCU7fQojc2xpZGUwIGgxIHtwb3NpdGlvbjogc3RhdGljOyBtYXJnaW46IDFlbSAwIDA7IHBhZGRpbmc6IDA7CiAgIGZvbnQ6IGJvbGQgMmVtIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgd2hpdGUtc3BhY2U6IG5vcm1hbDsKICAgY29sb3I6ICMwMDA7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O30KI3NsaWRlMCBoMiB7Zm9udDogYm9sZCBpdGFsaWMgMWVtIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwLjI1ZW07fQojc2xpZGUwIGgzIHttYXJnaW4tdG9wOiAxLjVlbTsgZm9udC1zaXplOiAxLjVlbTt9CiNzbGlkZTAgaDQge21hcmdpbi10b3A6IDA7IGZvbnQtc2l6ZTogMWVtO30KCnVsLnVybHMge2xpc3Qtc3R5bGU6IG5vbmU7IGRpc3BsYXk6IGlubGluZTsgbWFyZ2luOiAwO30KLnVybHMgbGkge2Rpc3BsYXk6IGlubGluZTsgbWFyZ2luOiAwO30KLm5vdGUge2Rpc3BsYXk6IG5vbmU7fQouZXh0ZXJuYWwge2JvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgZ3JheTt9Cmh0bWw%2BYm9keSAuZXh0ZXJuYWwge2JvcmRlci1ib3R0b206IG5vbmU7fQouZXh0ZXJuYWw6YWZ0ZXIge2NvbnRlbnQ6ICIgXDI3NEYiOyBmb250LXNpemU6IHNtYWxsZXI7IGNvbG9yOiAjNzdCO30KCi5pbmNyZW1lbnRhbCwgLmluY3JlbWVudGFsICosIC5pbmNyZW1lbnRhbCAqOmFmdGVyIHtjb2xvcjogI0RERTsgdmlzaWJpbGl0eTogdmlzaWJsZTt9CmltZy5pbmNyZW1lbnRhbCB7dmlzaWJpbGl0eTogaGlkZGVuO30KLnNsaWRlIC5jdXJyZW50IHtjb2xvcjogI0IwMjt9CgoKLyogZGlhZ25vc3RpY3MKCmxpOmFmdGVyIHtjb250ZW50OiAiIFsiIGF0dHIoY2xhc3MpICJdIjsgY29sb3I6ICNGODg7fQoqLwo%3D%29%3B%20%20%2F%2A%20stuff%20that%20makes%20the%20slides%20look%20better%20than%20blah%20%2A%2F" rel="stylesheet" type="text/css" media="projection" id="slideProj" />
<link href="data:text/css,%2F%2A%20don%27t%20change%20this%20unless%20you%20want%20the%20layout%20stuff%20to%20show%20up%20in%20the%20outline%20view%21%20%2A%2F%0A%0A%2Elayout%20div%2C%20%23footer%20%2A%2C%20%23controlForm%20%2A%20%7Bdisplay%3A%20none%3B%7D%0A%23footer%2C%20%23controls%2C%20%23controlForm%2C%20%23navLinks%2C%20%23toggle%20%7B%0A%20%20display%3A%20block%3B%20visibility%3A%20visible%3B%20margin%3A%200%3B%20padding%3A%200%3B%7D%0A%23toggle%20%7Bfloat%3A%20right%3B%20padding%3A%200%2E5em%3B%7D%0Ahtml%3Ebody%20%23toggle%20%7Bposition%3A%20fixed%3B%20top%3A%200%3B%20right%3A%200%3B%7D%0A%0A%2F%2A%20making%20the%20outline%20look%20pretty%2Dish%20%2A%2F%0A%0A%23slide0%20h1%2C%20%23slide0%20h2%2C%20%23slide0%20h3%2C%20%23slide0%20h4%20%7Bborder%3A%20none%3B%20margin%3A%200%3B%7D%0A%23slide0%20h1%20%7Bpadding%2Dtop%3A%201%2E5em%3B%7D%0A%2Eslide%20h1%20%7Bmargin%3A%201%2E5em%200%200%3B%20padding%2Dtop%3A%200%2E25em%3B%0A%20%20border%2Dtop%3A%201px%20solid%20%23888%3B%20border%2Dbottom%3A%201px%20solid%20%23AAA%3B%7D%0A%23toggle%20%7Bborder%3A%201px%20solid%3B%20border%2Dwidth%3A%200%200%201px%201px%3B%20background%3A%20%23FFF%3B%7D%0A" rel="stylesheet" type="text/css" media="screen" id="outlineStyle" />
<link href="data:text/css,%2F%2A%20The%20following%20rule%20is%20necessary%20to%20have%20all%20slides%20appear%20in%20print%21%20DO%20NOT%20REMOVE%20IT%21%20%2A%2F%0A%2Eslide%2C%20ul%20%7Bpage%2Dbreak%2Dinside%3A%20avoid%3B%20visibility%3A%20visible%20%21important%3B%7D%0Ah1%20%7Bpage%2Dbreak%2Dafter%3A%20avoid%3B%7D%0A%0Abody%20%7Bfont%2Dsize%3A%2012pt%3B%20background%3A%20white%3B%7D%0A%2A%20%7Bcolor%3A%20black%3B%7D%0A%0A%23slide0%20h1%20%7Bfont%2Dsize%3A%20200%25%3B%20border%3A%20none%3B%20margin%3A%200%2E5em%200%200%2E25em%3B%7D%0A%23slide0%20h3%20%7Bmargin%3A%200%3B%20padding%3A%200%3B%7D%0A%23slide0%20h4%20%7Bmargin%3A%200%200%200%2E5em%3B%20padding%3A%200%3B%7D%0A%23slide0%20%7Bmargin%2Dbottom%3A%203em%3B%7D%0A%0Ah1%20%7Bborder%2Dtop%3A%202pt%20solid%20gray%3B%20border%2Dbottom%3A%201px%20dotted%20silver%3B%7D%0A%2Eextra%20%7Bbackground%3A%20transparent%20%21important%3B%7D%0Adiv%2Eextra%2C%20pre%2Eextra%2C%20%2Eexample%20%7Bfont%2Dsize%3A%2010pt%3B%20color%3A%20%23333%3B%7D%0Aul%2Eextra%20a%20%7Bfont%2Dweight%3A%20bold%3B%7D%0Ap%2Eexample%20%7Bdisplay%3A%20none%3B%7D%0A%0A%23header%20%7Bdisplay%3A%20none%3B%7D%0A%23footer%20h1%20%7Bmargin%3A%200%3B%20border%2Dbottom%3A%201px%20solid%3B%20color%3A%20gray%3B%20font%2Dstyle%3A%20italic%3B%7D%0A%23footer%20h2%2C%20%23controls%20%7Bdisplay%3A%20none%3B%7D%0A%0A%2F%2A%20The%20following%20rule%20keeps%20the%20layout%20stuff%20out%20of%20print%2E%20%20Remove%20at%20your%20own%20risk%21%20%2A%2F%0A%2Elayout%2C%20%2Elayout%20%2A%20%7Bdisplay%3A%20none%20%21important%3B%7D%0A" rel="stylesheet" type="text/css" media="print" id="slidePrint" />
<link href="data:text/css,%2F%2A%20DO%20NOT%20CHANGE%20THESE%20unless%20you%20really%20want%20to%20break%20Opera%20Show%20%2A%2F%0A%2Eslide%20%7B%0A%09visibility%3A%20visible%20%21important%3B%0A%09position%3A%20static%20%21important%3B%0A%09page%2Dbreak%2Dbefore%3A%20always%3B%0A%7D%0A%23slide0%20%7Bpage%2Dbreak%2Dbefore%3A%20avoid%3B%7D%0A" rel="stylesheet" type="text/css" media="projection" id="operaFix" />
<!-- S5 JS -->
<script src="data:application/x-javascript,%2F%2F%20S5%20v1%2E1%20slides%2Ejs%20%2D%2D%20released%20into%20the%20Public%20Domain%0A%2F%2F%0A%2F%2F%20Please%20see%20http%3A%2F%2Fwww%2Emeyerweb%2Ecom%2Feric%2Ftools%2Fs5%2Fcredits%2Ehtml%20for%20information%20%0A%2F%2F%20about%20all%20the%20wonderful%20and%20talented%20contributors%20to%20this%20code%21%0A%0Avar%20undef%3B%0Avar%20slideCSS%20%3D%20%27%27%3B%0Avar%20snum%20%3D%200%3B%0Avar%20smax%20%3D%201%3B%0Avar%20incpos%20%3D%200%3B%0Avar%20number%20%3D%20undef%3B%0Avar%20s5mode%20%3D%20true%3B%0Avar%20defaultView%20%3D%20%27slideshow%27%3B%0Avar%20controlVis%20%3D%20%27visible%27%3B%0A%0Avar%20isIE%20%3D%20navigator%2EappName%20%3D%3D%20%27Microsoft%20Internet%20Explorer%27%20%26%26%20navigator%2EuserAgent%2EindexOf%28%27Opera%27%29%20%3C%201%20%3F%201%20%3A%200%3B%0Avar%20isOp%20%3D%20navigator%2EuserAgent%2EindexOf%28%27Opera%27%29%20%3E%20%2D1%20%3F%201%20%3A%200%3B%0Avar%20isGe%20%3D%20navigator%2EuserAgent%2EindexOf%28%27Gecko%27%29%20%3E%20%2D1%20%26%26%20navigator%2EuserAgent%2EindexOf%28%27Safari%27%29%20%3C%201%20%3F%201%20%3A%200%3B%0A%0Afunction%20hasClass%28object%2C%20className%29%20%7B%0A%09if%20%28%21object%2EclassName%29%20return%20false%3B%0A%09return%20%28object%2EclassName%2Esearch%28%27%28%5E%7C%5C%5Cs%29%27%20%2B%20className%20%2B%20%27%28%5C%5Cs%7C%24%29%27%29%20%21%3D%20%2D1%29%3B%0A%7D%0A%0Afunction%20hasValue%28object%2C%20value%29%20%7B%0A%09if%20%28%21object%29%20return%20false%3B%0A%09return%20%28object%2Esearch%28%27%28%5E%7C%5C%5Cs%29%27%20%2B%20value%20%2B%20%27%28%5C%5Cs%7C%24%29%27%29%20%21%3D%20%2D1%29%3B%0A%7D%0A%0Afunction%20removeClass%28object%2CclassName%29%20%7B%0A%09if%20%28%21object%29%20return%3B%0A%09object%2EclassName%20%3D%20object%2EclassName%2Ereplace%28new%20RegExp%28%27%28%5E%7C%5C%5Cs%29%27%2BclassName%2B%27%28%5C%5Cs%7C%24%29%27%29%2C%20RegExp%2E%241%2BRegExp%2E%242%29%3B%0A%7D%0A%0Afunction%20addClass%28object%2CclassName%29%20%7B%0A%09if%20%28%21object%20%7C%7C%20hasClass%28object%2C%20className%29%29%20return%3B%0A%09if%20%28object%2EclassName%29%20%7B%0A%09%09object%2EclassName%20%2B%3D%20%27%20%27%2BclassName%3B%0A%09%7D%20else%20%7B%0A%09%09object%2EclassName%20%3D%20className%3B%0A%09%7D%0A%7D%0A%0Afunction%20GetElementsWithClassName%28elementName%2CclassName%29%20%7B%0A%09var%20allElements%20%3D%20document%2EgetElementsByTagName%28elementName%29%3B%0A%09var%20elemColl%20%3D%20new%20Array%28%29%3B%0A%09for%20%28var%20i%20%3D%200%3B%20i%3C%20allElements%2Elength%3B%20i%2B%2B%29%20%7B%0A%09%09if%20%28hasClass%28allElements%5Bi%5D%2C%20className%29%29%20%7B%0A%09%09%09elemColl%5BelemColl%2Elength%5D%20%3D%20allElements%5Bi%5D%3B%0A%09%09%7D%0A%09%7D%0A%09return%20elemColl%3B%0A%7D%0A%0Afunction%20isParentOrSelf%28element%2C%20id%29%20%7B%0A%09if%20%28element%20%3D%3D%20null%20%7C%7C%20element%2EnodeName%3D%3D%27BODY%27%29%20return%20false%3B%0A%09else%20if%20%28element%2Eid%20%3D%3D%20id%29%20return%20true%3B%0A%09else%20return%20isParentOrSelf%28element%2EparentNode%2C%20id%29%3B%0A%7D%0A%0Afunction%20nodeValue%28node%29%20%7B%0A%09var%20result%20%3D%20%22%22%3B%0A%09if%20%28node%2EnodeType%20%3D%3D%201%29%20%7B%0A%09%09var%20children%20%3D%20node%2EchildNodes%3B%0A%09%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20children%2Elength%3B%20%2B%2Bi%29%20%7B%0A%09%09%09result%20%2B%3D%20nodeValue%28children%5Bi%5D%29%3B%0A%09%09%7D%09%09%0A%09%7D%0A%09else%20if%20%28node%2EnodeType%20%3D%3D%203%29%20%7B%0A%09%09result%20%3D%20node%2EnodeValue%3B%0A%09%7D%0A%09return%28result%29%3B%0A%7D%0A%0Afunction%20slideLabel%28%29%20%7B%0A%09var%20slideColl%20%3D%20GetElementsWithClassName%28%27%2A%27%2C%27slide%27%29%3B%0A%09var%20list%20%3D%20document%2EgetElementById%28%27jumplist%27%29%3B%0A%09smax%20%3D%20slideColl%2Elength%3B%0A%09for%20%28var%20n%20%3D%200%3B%20n%20%3C%20smax%3B%20n%2B%2B%29%20%7B%0A%09%09var%20obj%20%3D%20slideColl%5Bn%5D%3B%0A%0A%09%09var%20did%20%3D%20%27slide%27%20%2B%20n%2EtoString%28%29%3B%0A%09%09obj%2EsetAttribute%28%27id%27%2Cdid%29%3B%0A%09%09if%20%28isOp%29%20continue%3B%0A%0A%09%09var%20otext%20%3D%20%27%27%3B%0A%09%09var%20menu%20%3D%20obj%2EfirstChild%3B%0A%09%09if%20%28%21menu%29%20continue%3B%20%2F%2F%20to%20cope%20with%20empty%20slides%0A%09%09while%20%28menu%20%26%26%20menu%2EnodeType%20%3D%3D%203%29%20%7B%0A%09%09%09menu%20%3D%20menu%2EnextSibling%3B%0A%09%09%7D%0A%09%20%09if%20%28%21menu%29%20continue%3B%20%2F%2F%20to%20cope%20with%20slides%20with%20only%20text%20nodes%0A%0A%09%09var%20menunodes%20%3D%20menu%2EchildNodes%3B%0A%09%09for%20%28var%20o%20%3D%200%3B%20o%20%3C%20menunodes%2Elength%3B%20o%2B%2B%29%20%7B%0A%09%09%09otext%20%2B%3D%20nodeValue%28menunodes%5Bo%5D%29%3B%0A%09%09%7D%0A%09%09list%2Eoptions%5Blist%2Elength%5D%20%3D%20new%20Option%28n%20%2B%20%27%20%3A%20%27%20%20%2B%20otext%2C%20n%29%3B%0A%09%7D%0A%7D%0A%0Afunction%20currentSlide%28%29%20%7B%0A%09var%20cs%3B%0A%09if%20%28document%2EgetElementById%29%20%7B%0A%09%09cs%20%3D%20document%2EgetElementById%28%27currentSlide%27%29%3B%0A%09%7D%20else%20%7B%0A%09%09cs%20%3D%20document%2EcurrentSlide%3B%0A%09%7D%0A%09cs%2EinnerHTML%20%3D%20%27%3Cspan%20id%3D%22csHere%22%3E%27%20%2B%20snum%20%2B%20%27%3C%5C%2Fspan%3E%20%27%20%2B%20%0A%09%09%27%3Cspan%20id%3D%22csSep%22%3E%5C%2F%3C%5C%2Fspan%3E%20%27%20%2B%20%0A%09%09%27%3Cspan%20id%3D%22csTotal%22%3E%27%20%2B%20%28smax%2D1%29%20%2B%20%27%3C%5C%2Fspan%3E%27%3B%0A%09if%20%28snum%20%3D%3D%200%29%20%7B%0A%09%09cs%2Estyle%2Evisibility%20%3D%20%27hidden%27%3B%0A%09%7D%20else%20%7B%0A%09%09cs%2Estyle%2Evisibility%20%3D%20%27visible%27%3B%0A%09%7D%0A%7D%0A%0Afunction%20go%28step%29%20%7B%0A%09if%20%28document%2EgetElementById%28%27slideProj%27%29%2Edisabled%20%7C%7C%20step%20%3D%3D%200%29%20return%3B%0A%09var%20jl%20%3D%20document%2EgetElementById%28%27jumplist%27%29%3B%0A%09var%20cid%20%3D%20%27slide%27%20%2B%20snum%3B%0A%09var%20ce%20%3D%20document%2EgetElementById%28cid%29%3B%0A%09if%20%28incrementals%5Bsnum%5D%2Elength%20%3E%200%29%20%7B%0A%09%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20incrementals%5Bsnum%5D%2Elength%3B%20i%2B%2B%29%20%7B%0A%09%09%09removeClass%28incrementals%5Bsnum%5D%5Bi%5D%2C%20%27current%27%29%3B%0A%09%09%09removeClass%28incrementals%5Bsnum%5D%5Bi%5D%2C%20%27incremental%27%29%3B%0A%09%09%7D%0A%09%7D%0A%09if%20%28step%20%21%3D%20%27j%27%29%20%7B%0A%09%09snum%20%2B%3D%20step%3B%0A%09%09lmax%20%3D%20smax%20%2D%201%3B%0A%09%09if%20%28snum%20%3E%20lmax%29%20snum%20%3D%20lmax%3B%0A%09%09if%20%28snum%20%3C%200%29%20snum%20%3D%200%3B%0A%09%7D%20else%0A%09%09snum%20%3D%20parseInt%28jl%2Evalue%29%3B%0A%09var%20nid%20%3D%20%27slide%27%20%2B%20snum%3B%0A%09var%20ne%20%3D%20document%2EgetElementById%28nid%29%3B%0A%09if%20%28%21ne%29%20%7B%0A%09%09ne%20%3D%20document%2EgetElementById%28%27slide0%27%29%3B%0A%09%09snum%20%3D%200%3B%0A%09%7D%0A%09if%20%28step%20%3C%200%29%20%7Bincpos%20%3D%20incrementals%5Bsnum%5D%2Elength%7D%20else%20%7Bincpos%20%3D%200%3B%7D%0A%09if%20%28incrementals%5Bsnum%5D%2Elength%20%3E%200%20%26%26%20incpos%20%3D%3D%200%29%20%7B%0A%09%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20incrementals%5Bsnum%5D%2Elength%3B%20i%2B%2B%29%20%7B%0A%09%09%09if%20%28hasClass%28incrementals%5Bsnum%5D%5Bi%5D%2C%20%27current%27%29%29%0A%09%09%09%09incpos%20%3D%20i%20%2B%201%3B%0A%09%09%09else%0A%09%09%09%09addClass%28incrementals%5Bsnum%5D%5Bi%5D%2C%20%27incremental%27%29%3B%0A%09%09%7D%0A%09%7D%0A%09if%20%28incrementals%5Bsnum%5D%2Elength%20%3E%200%20%26%26%20incpos%20%3E%200%29%0A%09%09addClass%28incrementals%5Bsnum%5D%5Bincpos%20%2D%201%5D%2C%20%27current%27%29%3B%0A%09ce%2Estyle%2Evisibility%20%3D%20%27hidden%27%3B%0A%09ne%2Estyle%2Evisibility%20%3D%20%27visible%27%3B%0A%09jl%2EselectedIndex%20%3D%20snum%3B%0A%09currentSlide%28%29%3B%0A%09number%20%3D%200%3B%0A%7D%0A%0Afunction%20goTo%28target%29%20%7B%0A%09if%20%28target%20%3E%3D%20smax%20%7C%7C%20target%20%3D%3D%20snum%29%20return%3B%0A%09go%28target%20%2D%20snum%29%3B%0A%7D%0A%0Afunction%20subgo%28step%29%20%7B%0A%09if%20%28step%20%3E%200%29%20%7B%0A%09%09removeClass%28incrementals%5Bsnum%5D%5Bincpos%20%2D%201%5D%2C%27current%27%29%3B%0A%09%09removeClass%28incrementals%5Bsnum%5D%5Bincpos%5D%2C%20%27incremental%27%29%3B%0A%09%09addClass%28incrementals%5Bsnum%5D%5Bincpos%5D%2C%27current%27%29%3B%0A%09%09incpos%2B%2B%3B%0A%09%7D%20else%20%7B%0A%09%09incpos%2D%2D%3B%0A%09%09removeClass%28incrementals%5Bsnum%5D%5Bincpos%5D%2C%27current%27%29%3B%0A%09%09addClass%28incrementals%5Bsnum%5D%5Bincpos%5D%2C%20%27incremental%27%29%3B%0A%09%09addClass%28incrementals%5Bsnum%5D%5Bincpos%20%2D%201%5D%2C%27current%27%29%3B%0A%09%7D%0A%7D%0A%0Afunction%20toggle%28%29%20%7B%0A%09var%20slideColl%20%3D%20GetElementsWithClassName%28%27%2A%27%2C%27slide%27%29%3B%0A%09var%20slides%20%3D%20document%2EgetElementById%28%27slideProj%27%29%3B%0A%09var%20outline%20%3D%20document%2EgetElementById%28%27outlineStyle%27%29%3B%0A%09if%20%28%21slides%2Edisabled%29%20%7B%0A%09%09slides%2Edisabled%20%3D%20true%3B%0A%09%09outline%2Edisabled%20%3D%20false%3B%0A%09%09s5mode%20%3D%20false%3B%0A%09%09fontSize%28%271em%27%29%3B%0A%09%09for%20%28var%20n%20%3D%200%3B%20n%20%3C%20smax%3B%20n%2B%2B%29%20%7B%0A%09%09%09var%20slide%20%3D%20slideColl%5Bn%5D%3B%0A%09%09%09slide%2Estyle%2Evisibility%20%3D%20%27visible%27%3B%0A%09%09%7D%0A%09%7D%20else%20%7B%0A%09%09slides%2Edisabled%20%3D%20false%3B%0A%09%09outline%2Edisabled%20%3D%20true%3B%0A%09%09s5mode%20%3D%20true%3B%0A%09%09fontScale%28%29%3B%0A%09%09for%20%28var%20n%20%3D%200%3B%20n%20%3C%20smax%3B%20n%2B%2B%29%20%7B%0A%09%09%09var%20slide%20%3D%20slideColl%5Bn%5D%3B%0A%09%09%09slide%2Estyle%2Evisibility%20%3D%20%27hidden%27%3B%0A%09%09%7D%0A%09%09slideColl%5Bsnum%5D%2Estyle%2Evisibility%20%3D%20%27visible%27%3B%0A%09%7D%0A%7D%0A%0Afunction%20showHide%28action%29%20%7B%0A%09var%20obj%20%3D%20GetElementsWithClassName%28%27%2A%27%2C%27hideme%27%29%5B0%5D%3B%0A%09switch%20%28action%29%20%7B%0A%09case%20%27s%27%3A%20obj%2Estyle%2Evisibility%20%3D%20%27visible%27%3B%20break%3B%0A%09case%20%27h%27%3A%20obj%2Estyle%2Evisibility%20%3D%20%27hidden%27%3B%20break%3B%0A%09case%20%27k%27%3A%0A%09%09if%20%28obj%2Estyle%2Evisibility%20%21%3D%20%27visible%27%29%20%7B%0A%09%09%09obj%2Estyle%2Evisibility%20%3D%20%27visible%27%3B%0A%09%09%7D%20else%20%7B%0A%09%09%09obj%2Estyle%2Evisibility%20%3D%20%27hidden%27%3B%0A%09%09%7D%0A%09break%3B%0A%09%7D%0A%7D%0A%0A%2F%2F%20%27keys%27%20code%20adapted%20from%20MozPoint%20%28http%3A%2F%2Fmozpoint%2Emozdev%2Eorg%2F%29%0Afunction%20keys%28key%29%20%7B%0A%09if%20%28%21key%29%20%7B%0A%09%09key%20%3D%20event%3B%0A%09%09key%2Ewhich%20%3D%20key%2EkeyCode%3B%0A%09%7D%0A%09if%20%28key%2Ewhich%20%3D%3D%2084%29%20%7B%0A%09%09toggle%28%29%3B%0A%09%09return%3B%0A%09%7D%0A%09if%20%28s5mode%29%20%7B%0A%09%09switch%20%28key%2Ewhich%29%20%7B%0A%09%09%09case%2010%3A%20%2F%2F%20return%0A%09%09%09case%2013%3A%20%2F%2F%20enter%0A%09%09%09%09if%20%28window%2Eevent%20%26%26%20isParentOrSelf%28window%2Eevent%2EsrcElement%2C%20%27controls%27%29%29%20return%3B%0A%09%09%09%09if%20%28key%2Etarget%20%26%26%20isParentOrSelf%28key%2Etarget%2C%20%27controls%27%29%29%20return%3B%0A%09%09%09%09if%28number%20%21%3D%20undef%29%20%7B%0A%09%09%09%09%09goTo%28number%29%3B%0A%09%09%09%09%09break%3B%0A%09%09%09%09%7D%0A%09%09%09case%2032%3A%20%2F%2F%20spacebar%0A%09%09%09case%2034%3A%20%2F%2F%20page%20down%0A%09%09%09case%2039%3A%20%2F%2F%20rightkey%0A%09%09%09case%2040%3A%20%2F%2F%20downkey%0A%09%09%09%09if%28number%20%21%3D%20undef%29%20%7B%0A%09%09%09%09%09go%28number%29%3B%0A%09%09%09%09%7D%20else%20if%20%28%21incrementals%5Bsnum%5D%20%7C%7C%20incpos%20%3E%3D%20incrementals%5Bsnum%5D%2Elength%29%20%7B%0A%09%09%09%09%09go%281%29%3B%0A%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09subgo%281%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09break%3B%0A%09%09%09case%2033%3A%20%2F%2F%20page%20up%0A%09%09%09case%2037%3A%20%2F%2F%20leftkey%0A%09%09%09case%2038%3A%20%2F%2F%20upkey%0A%09%09%09%09if%28number%20%21%3D%20undef%29%20%7B%0A%09%09%09%09%09go%28%2D1%20%2A%20number%29%3B%0A%09%09%09%09%7D%20else%20if%20%28%21incrementals%5Bsnum%5D%20%7C%7C%20incpos%20%3C%3D%200%29%20%7B%0A%09%09%09%09%09go%28%2D1%29%3B%0A%09%09%09%09%7D%20else%20%7B%0A%09%09%09%09%09subgo%28%2D1%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09break%3B%0A%09%09%09case%2036%3A%20%2F%2F%20home%0A%09%09%09%09goTo%280%29%3B%0A%09%09%09%09break%3B%0A%09%09%09case%2035%3A%20%2F%2F%20end%0A%09%09%09%09goTo%28smax%2D1%29%3B%0A%09%09%09%09break%3B%0A%09%09%09case%2067%3A%20%2F%2F%20c%0A%09%09%09%09showHide%28%27k%27%29%3B%0A%09%09%09%09break%3B%0A%09%09%7D%0A%09%09if%20%28key%2Ewhich%20%3C%2048%20%7C%7C%20key%2Ewhich%20%3E%2057%29%20%7B%0A%09%09%09number%20%3D%20undef%3B%0A%09%09%7D%20else%20%7B%0A%09%09%09if%20%28window%2Eevent%20%26%26%20isParentOrSelf%28window%2Eevent%2EsrcElement%2C%20%27controls%27%29%29%20return%3B%0A%09%09%09if%20%28key%2Etarget%20%26%26%20isParentOrSelf%28key%2Etarget%2C%20%27controls%27%29%29%20return%3B%0A%09%09%09number%20%3D%20%28%28%28number%20%21%3D%20undef%29%20%3F%20number%20%3A%200%29%20%2A%2010%29%20%2B%20%28key%2Ewhich%20%2D%2048%29%3B%0A%09%09%7D%0A%09%7D%0A%09return%20false%3B%0A%7D%0A%0Afunction%20clicker%28e%29%20%7B%0A%09number%20%3D%20undef%3B%0A%09var%20target%3B%0A%09if%20%28window%2Eevent%29%20%7B%0A%09%09target%20%3D%20window%2Eevent%2EsrcElement%3B%0A%09%09e%20%3D%20window%2Eevent%3B%0A%09%7D%20else%20target%20%3D%20e%2Etarget%3B%0A%09if%20%28target%2EgetAttribute%28%27href%27%29%20%21%3D%20null%20%7C%7C%20hasValue%28target%2Erel%2C%20%27external%27%29%20%7C%7C%20isParentOrSelf%28target%2C%20%27controls%27%29%20%7C%7C%20isParentOrSelf%28target%2C%27embed%27%29%20%7C%7C%20isParentOrSelf%28target%2C%27object%27%29%29%20return%20true%3B%0A%09if%20%28%21e%2Ewhich%20%7C%7C%20e%2Ewhich%20%3D%3D%201%29%20%7B%0A%09%09if%20%28%21incrementals%5Bsnum%5D%20%7C%7C%20incpos%20%3E%3D%20incrementals%5Bsnum%5D%2Elength%29%20%7B%0A%09%09%09go%281%29%3B%0A%09%09%7D%20else%20%7B%0A%09%09%09subgo%281%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%0A%0Afunction%20findSlide%28hash%29%20%7B%0A%09var%20target%20%3D%20null%3B%0A%09var%20slides%20%3D%20GetElementsWithClassName%28%27%2A%27%2C%27slide%27%29%3B%0A%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20slides%2Elength%3B%20i%2B%2B%29%20%7B%0A%09%09var%20targetSlide%20%3D%20slides%5Bi%5D%3B%0A%09%09if%20%28%20%28targetSlide%2Ename%20%26%26%20targetSlide%2Ename%20%3D%3D%20hash%29%0A%09%09%20%7C%7C%20%28targetSlide%2Eid%20%26%26%20targetSlide%2Eid%20%3D%3D%20hash%29%20%29%20%7B%0A%09%09%09target%20%3D%20targetSlide%3B%0A%09%09%09break%3B%0A%09%09%7D%0A%09%7D%0A%09while%28target%20%21%3D%20null%20%26%26%20target%2EnodeName%20%21%3D%20%27BODY%27%29%20%7B%0A%09%09if%20%28hasClass%28target%2C%20%27slide%27%29%29%20%7B%0A%09%09%09return%20parseInt%28target%2Eid%2Eslice%285%29%29%3B%0A%09%09%7D%0A%09%09target%20%3D%20target%2EparentNode%3B%0A%09%7D%0A%09return%20null%3B%0A%7D%0A%0Afunction%20slideJump%28%29%20%7B%0A%09if%20%28window%2Elocation%2Ehash%20%3D%3D%20null%29%20return%3B%0A%09var%20sregex%20%3D%20%2F%5E%23slide%28%5Cd%2B%29%24%2F%3B%0A%09var%20matches%20%3D%20sregex%2Eexec%28window%2Elocation%2Ehash%29%3B%0A%09var%20dest%20%3D%20null%3B%0A%09if%20%28matches%20%21%3D%20null%29%20%7B%0A%09%09dest%20%3D%20parseInt%28matches%5B1%5D%29%3B%0A%09%7D%20else%20%7B%0A%09%09dest%20%3D%20findSlide%28window%2Elocation%2Ehash%2Eslice%281%29%29%3B%0A%09%7D%0A%09if%20%28dest%20%21%3D%20null%29%0A%09%09go%28dest%20%2D%20snum%29%3B%0A%7D%0A%0Afunction%20fixLinks%28%29%20%7B%0A%09var%20thisUri%20%3D%20window%2Elocation%2Ehref%3B%0A%09thisUri%20%3D%20thisUri%2Eslice%280%2C%20thisUri%2Elength%20%2D%20window%2Elocation%2Ehash%2Elength%29%3B%0A%09var%20aelements%20%3D%20document%2EgetElementsByTagName%28%27A%27%29%3B%0A%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20aelements%2Elength%3B%20i%2B%2B%29%20%7B%0A%09%09var%20a%20%3D%20aelements%5Bi%5D%2Ehref%3B%0A%09%09var%20slideID%20%3D%20a%2Ematch%28%27%5C%23slide%5B0%2D9%5D%7B1%2C2%7D%27%29%3B%0A%09%09if%20%28%28slideID%29%20%26%26%20%28slideID%5B0%5D%2Eslice%280%2C1%29%20%3D%3D%20%27%23%27%29%29%20%7B%0A%09%09%09var%20dest%20%3D%20findSlide%28slideID%5B0%5D%2Eslice%281%29%29%3B%0A%09%09%09if%20%28dest%20%21%3D%20null%29%20%7B%0A%09%09%09%09if%20%28aelements%5Bi%5D%2EaddEventListener%29%20%7B%0A%09%09%09%09%09aelements%5Bi%5D%2EaddEventListener%28%22click%22%2C%20new%20Function%28%22e%22%2C%0A%09%09%09%09%09%09%22if%20%28document%2EgetElementById%28%27slideProj%27%29%2Edisabled%29%20return%3B%22%20%2B%0A%09%09%09%09%09%09%22go%28%22%2Bdest%2B%22%20%2D%20snum%29%3B%20%22%20%2B%0A%09%09%09%09%09%09%22if%20%28e%2EpreventDefault%29%20e%2EpreventDefault%28%29%3B%22%29%2C%20true%29%3B%0A%09%09%09%09%7D%20else%20if%20%28aelements%5Bi%5D%2EattachEvent%29%20%7B%0A%09%09%09%09%09aelements%5Bi%5D%2EattachEvent%28%22onclick%22%2C%20new%20Function%28%22%22%2C%0A%09%09%09%09%09%09%22if%20%28document%2EgetElementById%28%27slideProj%27%29%2Edisabled%29%20return%3B%22%20%2B%0A%09%09%09%09%09%09%22go%28%22%2Bdest%2B%22%20%2D%20snum%29%3B%20%22%20%2B%0A%09%09%09%09%09%09%22event%2EreturnValue%20%3D%20false%3B%22%29%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%7D%0A%0Afunction%20externalLinks%28%29%20%7B%0A%09if%20%28%21document%2EgetElementsByTagName%29%20return%3B%0A%09var%20anchors%20%3D%20document%2EgetElementsByTagName%28%27a%27%29%3B%0A%09for%20%28var%20i%3D0%3B%20i%3Canchors%2Elength%3B%20i%2B%2B%29%20%7B%0A%09%09var%20anchor%20%3D%20anchors%5Bi%5D%3B%0A%09%09if%20%28anchor%2EgetAttribute%28%27href%27%29%20%26%26%20hasValue%28anchor%2Erel%2C%20%27external%27%29%29%20%7B%0A%09%09%09anchor%2Etarget%20%3D%20%27%5Fblank%27%3B%0A%09%09%09addClass%28anchor%2C%27external%27%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%0A%0Afunction%20createControls%28%29%20%7B%0A%09var%20controlsDiv%20%3D%20document%2EgetElementById%28%22controls%22%29%3B%0A%09if%20%28%21controlsDiv%29%20return%3B%0A%09var%20hider%20%3D%20%27%20onmouseover%3D%22showHide%28%5C%27s%5C%27%29%3B%22%20onmouseout%3D%22showHide%28%5C%27h%5C%27%29%3B%22%27%3B%0A%09var%20hideDiv%2C%20hideList%20%3D%20%27%27%3B%0A%09if%20%28controlVis%20%3D%3D%20%27hidden%27%29%20%7B%0A%09%09hideDiv%20%3D%20hider%3B%0A%09%7D%20else%20%7B%0A%09%09hideList%20%3D%20hider%3B%0A%09%7D%0A%09controlsDiv%2EinnerHTML%20%3D%20%27%3Cform%20action%3D%22%23%22%20id%3D%22controlForm%22%27%20%2B%20hideDiv%20%2B%20%27%3E%27%20%2B%0A%09%27%3Cdiv%20id%3D%22navLinks%22%3E%27%20%2B%0A%09%27%3Ca%20accesskey%3D%22t%22%20id%3D%22toggle%22%20href%3D%22javascript%3Atoggle%28%29%3B%22%3E%26%23216%3B%3C%5C%2Fa%3E%27%20%2B%0A%09%27%3Ca%20accesskey%3D%22z%22%20id%3D%22prev%22%20href%3D%22javascript%3Ago%28%2D1%29%3B%22%3E%26laquo%3B%3C%5C%2Fa%3E%27%20%2B%0A%09%27%3Ca%20accesskey%3D%22x%22%20id%3D%22next%22%20href%3D%22javascript%3Ago%281%29%3B%22%3E%26raquo%3B%3C%5C%2Fa%3E%27%20%2B%0A%09%27%3Cdiv%20id%3D%22navList%22%27%20%2B%20hideList%20%2B%20%27%3E%3Cselect%20id%3D%22jumplist%22%20onchange%3D%22go%28%5C%27j%5C%27%29%3B%22%3E%3C%5C%2Fselect%3E%3C%5C%2Fdiv%3E%27%20%2B%0A%09%27%3C%5C%2Fdiv%3E%3C%5C%2Fform%3E%27%3B%0A%09if%20%28controlVis%20%3D%3D%20%27hidden%27%29%20%7B%0A%09%09var%20hidden%20%3D%20document%2EgetElementById%28%27navLinks%27%29%3B%0A%09%7D%20else%20%7B%0A%09%09var%20hidden%20%3D%20document%2EgetElementById%28%27jumplist%27%29%3B%0A%09%7D%0A%09addClass%28hidden%2C%27hideme%27%29%3B%0A%7D%0A%0Afunction%20fontScale%28%29%20%7B%20%20%2F%2F%20causes%20layout%20problems%20in%20FireFox%20that%20get%20fixed%20if%20browser%27s%20Reload%20is%20used%3B%20same%20may%20be%20true%20of%20other%20Gecko%2Dbased%20browsers%0A%09if%20%28%21s5mode%29%20return%20false%3B%0A%09var%20vScale%20%3D%2022%3B%20%20%2F%2F%20both%20yield%2032%20%28after%20rounding%29%20at%201024x768%0A%09var%20hScale%20%3D%2032%3B%20%20%2F%2F%20perhaps%20should%20auto%2Dcalculate%20based%20on%20theme%27s%20declared%20value%3F%0A%09if%20%28window%2EinnerHeight%29%20%7B%0A%09%09var%20vSize%20%3D%20window%2EinnerHeight%3B%0A%09%09var%20hSize%20%3D%20window%2EinnerWidth%3B%0A%09%7D%20else%20if%20%28document%2EdocumentElement%2EclientHeight%29%20%7B%0A%09%09var%20vSize%20%3D%20document%2EdocumentElement%2EclientHeight%3B%0A%09%09var%20hSize%20%3D%20document%2EdocumentElement%2EclientWidth%3B%0A%09%7D%20else%20if%20%28document%2Ebody%2EclientHeight%29%20%7B%0A%09%09var%20vSize%20%3D%20document%2Ebody%2EclientHeight%3B%0A%09%09var%20hSize%20%3D%20document%2Ebody%2EclientWidth%3B%0A%09%7D%20else%20%7B%0A%09%09var%20vSize%20%3D%20700%3B%20%20%2F%2F%20assuming%201024x768%2C%20minus%20chrome%20and%20such%0A%09%09var%20hSize%20%3D%201024%3B%20%2F%2F%20these%20do%20not%20account%20for%20kiosk%20mode%20or%20Opera%20Show%0A%09%7D%0A%09var%20newSize%20%3D%20Math%2Emin%28Math%2Eround%28vSize%2FvScale%29%2CMath%2Eround%28hSize%2FhScale%29%29%3B%0A%09fontSize%28newSize%20%2B%20%27px%27%29%3B%0A%09if%20%28isGe%29%20%7B%20%20%2F%2F%20hack%20to%20counter%20incremental%20reflow%20bugs%0A%09%09var%20obj%20%3D%20document%2EgetElementsByTagName%28%27body%27%29%5B0%5D%3B%0A%09%09obj%2Estyle%2Edisplay%20%3D%20%27none%27%3B%0A%09%09obj%2Estyle%2Edisplay%20%3D%20%27block%27%3B%0A%09%7D%0A%7D%0A%0Afunction%20fontSize%28value%29%20%7B%0A%09if%20%28%21%28s5ss%20%3D%20document%2EgetElementById%28%27s5ss%27%29%29%29%20%7B%0A%09%09if%20%28%21isIE%29%20%7B%0A%09%09%09document%2EgetElementsByTagName%28%27head%27%29%5B0%5D%2EappendChild%28s5ss%20%3D%20document%2EcreateElement%28%27style%27%29%29%3B%0A%09%09%09s5ss%2EsetAttribute%28%27media%27%2C%27screen%2C%20projection%27%29%3B%0A%09%09%09s5ss%2EsetAttribute%28%27id%27%2C%27s5ss%27%29%3B%0A%09%09%7D%20else%20%7B%0A%09%09%09document%2EcreateStyleSheet%28%29%3B%0A%09%09%09document%2Es5ss%20%3D%20document%2EstyleSheets%5Bdocument%2EstyleSheets%2Elength%20%2D%201%5D%3B%0A%09%09%7D%0A%09%7D%0A%09if%20%28%21isIE%29%20%7B%0A%09%09while%20%28s5ss%2ElastChild%29%20s5ss%2EremoveChild%28s5ss%2ElastChild%29%3B%0A%09%09s5ss%2EappendChild%28document%2EcreateTextNode%28%27body%20%7Bfont%2Dsize%3A%20%27%20%2B%20value%20%2B%20%27%20%21important%3B%7D%27%29%29%3B%0A%09%7D%20else%20%7B%0A%09%09document%2Es5ss%2EaddRule%28%27body%27%2C%27font%2Dsize%3A%20%27%20%2B%20value%20%2B%20%27%20%21important%3B%27%29%3B%0A%09%7D%0A%7D%0A%0Afunction%20notOperaFix%28%29%20%7B%0A%09slideCSS%20%3D%20document%2EgetElementById%28%27slideProj%27%29%2Ehref%3B%0A%09var%20slides%20%3D%20document%2EgetElementById%28%27slideProj%27%29%3B%0A%09var%20outline%20%3D%20document%2EgetElementById%28%27outlineStyle%27%29%3B%0A%09slides%2EsetAttribute%28%27media%27%2C%27screen%27%29%3B%0A%09outline%2Edisabled%20%3D%20true%3B%0A%09if%20%28isGe%29%20%7B%0A%09%09slides%2EsetAttribute%28%27href%27%2C%27null%27%29%3B%20%20%20%2F%2F%20Gecko%20fix%0A%09%09slides%2EsetAttribute%28%27href%27%2CslideCSS%29%3B%20%2F%2F%20Gecko%20fix%0A%09%7D%0A%09if%20%28isIE%20%26%26%20document%2EstyleSheets%20%26%26%20document%2EstyleSheets%5B0%5D%29%20%7B%0A%09%09document%2EstyleSheets%5B0%5D%2EaddRule%28%27img%27%2C%20%27behavior%3A%20url%28ui%2Fdefault%2Fiepngfix%2Ehtc%29%27%29%3B%0A%09%09document%2EstyleSheets%5B0%5D%2EaddRule%28%27div%27%2C%20%27behavior%3A%20url%28ui%2Fdefault%2Fiepngfix%2Ehtc%29%27%29%3B%0A%09%09document%2EstyleSheets%5B0%5D%2EaddRule%28%27%2Eslide%27%2C%20%27behavior%3A%20url%28ui%2Fdefault%2Fiepngfix%2Ehtc%29%27%29%3B%0A%09%7D%0A%7D%0A%0Afunction%20getIncrementals%28obj%29%20%7B%0A%09var%20incrementals%20%3D%20new%20Array%28%29%3B%0A%09if%20%28%21obj%29%20%0A%09%09return%20incrementals%3B%0A%09var%20children%20%3D%20obj%2EchildNodes%3B%0A%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20children%2Elength%3B%20i%2B%2B%29%20%7B%0A%09%09var%20child%20%3D%20children%5Bi%5D%3B%0A%09%09if%20%28hasClass%28child%2C%20%27incremental%27%29%29%20%7B%0A%09%09%09if%20%28child%2EnodeName%20%3D%3D%20%27OL%27%20%7C%7C%20child%2EnodeName%20%3D%3D%20%27UL%27%29%20%7B%0A%09%09%09%09removeClass%28child%2C%20%27incremental%27%29%3B%0A%09%09%09%09for%20%28var%20j%20%3D%200%3B%20j%20%3C%20child%2EchildNodes%2Elength%3B%20j%2B%2B%29%20%7B%0A%09%09%09%09%09if%20%28child%2EchildNodes%5Bj%5D%2EnodeType%20%3D%3D%201%29%20%7B%0A%09%09%09%09%09%09addClass%28child%2EchildNodes%5Bj%5D%2C%20%27incremental%27%29%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%0A%09%09%09%7D%20else%20%7B%0A%09%09%09%09incrementals%5Bincrementals%2Elength%5D%20%3D%20child%3B%0A%09%09%09%09removeClass%28child%2C%27incremental%27%29%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09if%20%28hasClass%28child%2C%20%27show%2Dfirst%27%29%29%20%7B%0A%09%09%09if%20%28child%2EnodeName%20%3D%3D%20%27OL%27%20%7C%7C%20child%2EnodeName%20%3D%3D%20%27UL%27%29%20%7B%0A%09%09%09%09removeClass%28child%2C%20%27show%2Dfirst%27%29%3B%0A%09%09%09%09if%20%28child%2EchildNodes%5BisGe%5D%2EnodeType%20%3D%3D%201%29%20%7B%0A%09%09%09%09%09removeClass%28child%2EchildNodes%5BisGe%5D%2C%20%27incremental%27%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%20else%20%7B%0A%09%09%09%09incrementals%5Bincrementals%2Elength%5D%20%3D%20child%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09incrementals%20%3D%20incrementals%2Econcat%28getIncrementals%28child%29%29%3B%0A%09%7D%0A%09return%20incrementals%3B%0A%7D%0A%0Afunction%20createIncrementals%28%29%20%7B%0A%09var%20incrementals%20%3D%20new%20Array%28%29%3B%0A%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20smax%3B%20i%2B%2B%29%20%7B%0A%09%09incrementals%5Bi%5D%20%3D%20getIncrementals%28document%2EgetElementById%28%27slide%27%2Bi%29%29%3B%0A%09%7D%0A%09return%20incrementals%3B%0A%7D%0A%0Afunction%20defaultCheck%28%29%20%7B%0A%09var%20allMetas%20%3D%20document%2EgetElementsByTagName%28%27meta%27%29%3B%0A%09for%20%28var%20i%20%3D%200%3B%20i%3C%20allMetas%2Elength%3B%20i%2B%2B%29%20%7B%0A%09%09if%20%28allMetas%5Bi%5D%2Ename%20%3D%3D%20%27defaultView%27%29%20%7B%0A%09%09%09defaultView%20%3D%20allMetas%5Bi%5D%2Econtent%3B%0A%09%09%7D%0A%09%09if%20%28allMetas%5Bi%5D%2Ename%20%3D%3D%20%27controlVis%27%29%20%7B%0A%09%09%09controlVis%20%3D%20allMetas%5Bi%5D%2Econtent%3B%0A%09%09%7D%0A%09%7D%0A%7D%0A%0A%2F%2F%20Key%20trap%20fix%2C%20new%20function%20body%20for%20trap%28%29%0Afunction%20trap%28e%29%20%7B%0A%09if%20%28%21e%29%20%7B%0A%09%09e%20%3D%20event%3B%0A%09%09e%2Ewhich%20%3D%20e%2EkeyCode%3B%0A%09%7D%0A%09try%20%7B%0A%09%09modifierKey%20%3D%20e%2EctrlKey%20%7C%7C%20e%2EaltKey%20%7C%7C%20e%2EmetaKey%3B%0A%09%7D%0A%09catch%28e%29%20%7B%0A%09%09modifierKey%20%3D%20false%3B%0A%09%7D%0A%09return%20modifierKey%20%7C%7C%20e%2Ewhich%20%3D%3D%200%3B%0A%7D%0A%0Afunction%20startup%28%29%20%7B%0A%09defaultCheck%28%29%3B%0A%09if%20%28%21isOp%29%20%0A%09%09createControls%28%29%3B%0A%09slideLabel%28%29%3B%0A%09fixLinks%28%29%3B%0A%09externalLinks%28%29%3B%0A%09fontScale%28%29%3B%0A%09if%20%28%21isOp%29%20%7B%0A%09%09notOperaFix%28%29%3B%0A%09%09incrementals%20%3D%20createIncrementals%28%29%3B%0A%09%09slideJump%28%29%3B%0A%09%09if%20%28defaultView%20%3D%3D%20%27outline%27%29%20%7B%0A%09%09%09toggle%28%29%3B%0A%09%09%7D%0A%09%09document%2Eonkeyup%20%3D%20keys%3B%0A%09%09document%2Eonkeypress%20%3D%20trap%3B%0A%09%09document%2Eonclick%20%3D%20clicker%3B%0A%09%7D%0A%7D%0A%0Awindow%2Eonload%20%3D%20startup%3B%0Awindow%2Eonresize%20%3D%20function%28%29%7BsetTimeout%28%27fontScale%28%29%27%2C%2050%29%3B%7D" type="text/javascript"></script>
</head>
<body>
<div class="layout">
<div id="controls"></div>
<div id="currentSlide"></div>
<div id="header"></div>
<div id="footer">
<h1>2013-09-12</h1>
<h2>Vagrant</h2>
</div>
</div>
<div class="presentation">
<div class="titleslide slide">
<h1>Vagrant</h1>
<h2>Zaki Mughal, CougarCS, University of Houston</h2>
<h3>2013-09-12</h3>
</div>
<div class="section slide level1" id="questions">
<h1>Questions</h1>
<ul class="incremental">
<li>who knows what a VM is?</li>
<li>...used a VM?</li>
</ul>
</div>
<div class="section slide level1" id="vagrant">
<h1>Vagrant</h1>
<ul class="incremental">
<li>spin up virtual machines</li>
<li>save your dependencies</li>
<li>share your dev environment</li>
<li>"But it works on my computer"
<ul class="incremental">
<li>Never again.</li>
</ul></li>
<li>Want to run the code? Just hand over the Vagrantfile.</li>
</ul>
</div>
<div class="section slide level1" id="section">
<ul>
<li>CLI-based</li>
<li>need VirtualBox <a href="https://www.virtualbox.org/"><code class="url">https://www.virtualbox.org/</code></a></li>
<li>default VM provider</li>
<li>install Vagrant <a href="http://www.vagrantup.com/"><code class="url">http://www.vagrantup.com/</code></a></li>
<li><p>installers and packages</p>
<pre class="sourceCode bash"><code class="sourceCode bash">$ apt-get <span class="kw">install</span> vagrant <span class="co"># for Debian / Ubuntu</span></code></pre></li>
</ul>
</div>
<div class="section slide level1" id="lets-get-started">
<h1>Let's get started</h1>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">[</span> host<span class="kw"> ]</span> $ <span class="kw">mkdir</span> my-cool-project <span class="kw">&&</span> <span class="kw">cd</span> my-cool-project
<span class="co"># make a project directory and change in to it</span>
<span class="kw">[</span> host<span class="kw"> ]</span> $ vi cool_script; <span class="kw">chmod</span> +x cool_script
<span class="co"># some code!</span></code></pre>
</div>
<div class="section slide level1" id="building-the-vm">
<h1>Building the VM</h1>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">[</span> host ]$ vagrant init precise32 http://files.vagrantup.com/precise32.box
<span class="co"># this will create Vagrantfile and use precise32.box as our base image</span>
[ host<span class="kw"> ]</span> $ vagrant up
<span class="co"># build our VM! (takes ~5 minutes the first time as we download</span>
<span class="co"># the box over the network)</span>
<span class="co"># </span>
<span class="co"># It'll be faster next time because it will be saved.</span></code></pre>
</div>
<div class="section slide level1" id="logging-in">
<h1>Logging in</h1>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">[</span> host<span class="kw"> ]</span> $ vagrant <span class="kw">ssh</span>
<span class="co"># Woot! We have a prompt!</span>
<span class="kw">[</span> vagrant<span class="kw"> ]</span> $ <span class="kw">ls</span> /vagrant/
<span class="co"># Our files!</span>
<span class="kw">[</span> vagrant<span class="kw"> ]</span> $ ./cool_script
<span class="co"># Yay! It runs!</span></code></pre>
</div>
<div class="section slide level1" id="shared-directory">
<h1>Shared directory</h1>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">[</span> vagrant<span class="kw"> ]</span> $ <span class="kw">touch</span> foobar; <span class="kw">exit</span>
<span class="co"># create a file</span>
<span class="kw">[</span> host<span class="kw"> ]</span> $ <span class="kw">ls</span>
<span class="co"># and it's over here too!</span></code></pre>
</div>
<div class="section slide level1" id="done-for-the-day">
<h1>Done for the day</h1>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">[</span> host<span class="kw"> ]</span> $ vagrant <span class="kw">suspend</span>
<span class="co"># save state of memory</span>
<span class="co"># Have you tried turning off and on again?</span>
<span class="kw">[</span> host<span class="kw"> ]</span> $ vagrant halt
<span class="co"># shut down</span></code></pre>
</div>
<div class="section slide level1" id="section-1">
<p>Kill it with fire!</p>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">[</span> host<span class="kw"> ]</span> $ vagrant destroy
<span class="co"># VM go bye-bye</span></code></pre>
<p>Tabula rasa</p>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">[</span> host<span class="kw"> ]</span> $ vagrant up
<span class="co"># builds it up again</span></code></pre>
</div>
<div class="section slide level1" id="vagrantfile-aka-the-magic">
<h1>Vagrantfile (aka the magic!)</h1>
<p>Let's take a look</p>
<ul>
<li><p>networking (port forward)</p></li>
<li>configuration management</li>
<li>we can have a shell script
<ul>
<li><a href="http://docs.vagrantup.com/v2/provisioning/shell.html"><code class="url">http://docs.vagrantup.com/v2/provisioning/shell.html</code></a></li>
</ul></li>
</ul>
</div>
<div class="section slide level1" id="section-2">
<p>Vagrantfile</p>
<pre class="sourceCode ruby"><code class="sourceCode ruby"><span class="dt">Vagrant</span>.configure(<span class="st">"2"</span>) <span class="kw">do</span> |config|
<span class="co"># ...</span>
config.vm.provision <span class="st">"shell"</span>, path: <span class="st">"provision-vm.sh"</span>
<span class="co"># ...</span>
<span class="kw">end</span></code></pre>
</div>
<div class="section slide level1" id="section-3">
<p>provision-vm.sh</p>
<pre class="sourceCode bash"><code class="sourceCode bash"><span class="co">#!/bin/sh</span>
apt-get update
apt-get --no-install-recommends -y <span class="kw">install</span> apache2 <span class="co"># install web server</span>
<span class="kw">rm</span> -Rf /var/www <span class="co"># remove www directory contents (don't put a / at the end!)</span>
<span class="kw">ln</span> -fs /vagrant /var/www <span class="co"># point www directory to Vagrant</span></code></pre>
</div>
<div class="section slide level1" id="more">
<h1>More</h1>
<ul>
<li>Grab some custom VM images <a href="http://www.vagrantbox.es/"><code class="url">http://www.vagrantbox.es/</code></a></li>
<li>different Unix distros</li>
<li>different tools: git, MySQL, MongoDB</li>
<li>look at what boxes you have</li>
</ul>
<pre class="sourceCode bash"><code class="sourceCode bash">$ vagrant box list</code></pre>
<ul>
<li>Multimachine</li>
<li>web server and DB server</li>
<li><a href="http://docs.vagrantup.com/v2/multi-machine/"><code class="url">http://docs.vagrantup.com/v2/multi-machine/</code></a></li>
</ul>
</div>
</div>
</body>
</html>