geo-activity-playground 0.29.2__py3-none-any.whl → 0.31.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. geo_activity_playground/core/activities.py +11 -2
  2. geo_activity_playground/core/config.py +2 -0
  3. geo_activity_playground/core/enrichment.py +18 -7
  4. geo_activity_playground/core/paths.py +3 -2
  5. geo_activity_playground/importers/strava_api.py +1 -1
  6. geo_activity_playground/webui/activity/blueprint.py +54 -2
  7. geo_activity_playground/webui/activity/controller.py +16 -0
  8. geo_activity_playground/webui/activity/templates/activity/day.html.j2 +4 -4
  9. geo_activity_playground/webui/activity/templates/activity/edit.html.j2 +42 -0
  10. geo_activity_playground/webui/activity/templates/activity/name.html.j2 +4 -4
  11. geo_activity_playground/webui/activity/templates/activity/show.html.j2 +20 -7
  12. geo_activity_playground/webui/app.py +14 -3
  13. geo_activity_playground/webui/equipment/templates/equipment/index.html.j2 +1 -1
  14. geo_activity_playground/webui/heatmap/heatmap_controller.py +8 -6
  15. geo_activity_playground/webui/search/blueprint.py +87 -6
  16. geo_activity_playground/webui/search/templates/search/index.html.j2 +67 -14
  17. geo_activity_playground/webui/settings/blueprint.py +44 -0
  18. geo_activity_playground/webui/settings/templates/settings/index.html.j2 +18 -0
  19. geo_activity_playground/webui/settings/templates/settings/kind-renames.html.j2 +25 -0
  20. geo_activity_playground/webui/settings/templates/settings/segmentation.html.j2 +27 -0
  21. geo_activity_playground/webui/static/apple-touch-icon.png +0 -0
  22. geo_activity_playground/webui/static/favicon-48x48.png +0 -0
  23. geo_activity_playground/webui/static/favicon.ico +0 -0
  24. geo_activity_playground/webui/static/favicon.svg +3 -0
  25. geo_activity_playground/webui/static/site.webmanifest +20 -18
  26. geo_activity_playground/webui/static/web-app-manifest-192x192.png +0 -0
  27. geo_activity_playground/webui/static/web-app-manifest-512x512.png +0 -0
  28. geo_activity_playground/webui/summary/templates/summary/index.html.j2 +2 -2
  29. geo_activity_playground/webui/templates/home.html.j2 +3 -10
  30. geo_activity_playground/webui/templates/page.html.j2 +3 -3
  31. {geo_activity_playground-0.29.2.dist-info → geo_activity_playground-0.31.0.dist-info}/METADATA +1 -1
  32. {geo_activity_playground-0.29.2.dist-info → geo_activity_playground-0.31.0.dist-info}/RECORD +35 -30
  33. {geo_activity_playground-0.29.2.dist-info → geo_activity_playground-0.31.0.dist-info}/WHEEL +1 -1
  34. geo_activity_playground/webui/static/android-chrome-384x384.png +0 -0
  35. geo_activity_playground/webui/static/safari-pinned-tab.svg +0 -121
  36. {geo_activity_playground-0.29.2.dist-info → geo_activity_playground-0.31.0.dist-info}/LICENSE +0 -0
  37. {geo_activity_playground-0.29.2.dist-info → geo_activity_playground-0.31.0.dist-info}/entry_points.txt +0 -0
@@ -1,34 +1,87 @@
1
1
  {% extends "page.html.j2" %}
2
2
 
3
3
  {% block container %}
4
+
5
+ <h1 class="row mb-3">Activities Overview & Search</h1>
6
+
4
7
  <div class="row mb-3">
5
- <div class="col">
6
- <h1>Search Results</h1>
8
+ <div class="col-md-2">
9
+ <form>
10
+ <div class="mb-3">
11
+ <label for="name" class="form-label">Name</label>
12
+ <input type="text" class="form-control" id="name" name="name" value="{{ name }}">
13
+ <div class="form-check">
14
+ <input class="form-check-input" type="checkbox" name="name_exact" value="true" id="name_exact" {% if
15
+ name_exact %} checked {% endif %}>
16
+ <label class="form-check-label" for="name_exact">
17
+ Exact match
18
+ </label>
19
+ </div>
20
+ <div class="form-check">
21
+ <input class="form-check-input" type="checkbox" name="name_casing" value="true" id="name_casing" {%
22
+ if name_casing %} checked {% endif %}>
23
+ <label class="form-check-label" for="name_casing">
24
+ Case sensitive
25
+ </label>
26
+ </div>
27
+ </div>
28
+
29
+ <div class="mb-3">
30
+ <label for="begin" class="form-label">After</label>
31
+ <input type="text" class="form-control" id="begin" name="begin" value="{{ begin }}">
32
+ <label for="end" class="form-label">Until</label>
33
+ <input type="text" class="form-control" id="end" name="end" value="{{ end }}">
34
+ </div>
35
+
36
+ <div class="mb-3">
37
+ <label for="" class="form-label">Kind</label>
38
+ {% for kind in kinds_avail %}
39
+ <div class="form-check">
40
+ <input class="form-check-input" type="checkbox" name="kind" value="{{ kind }}" id="kind_{{ kind }}"
41
+ {% if kind in kinds %} checked {% endif %}>
42
+ <label class="form-check-label" for="kind_{{ kind }}">
43
+ {{ kind }}
44
+ </label>
45
+ </div>
46
+ {% endfor %}
47
+ </div>
48
+
49
+ <div class="mb-3">
50
+ <label for="" class="form-label">Equipment</label>
51
+ {% for equipment in equipments_avail %}
52
+ <div class="form-check">
53
+ <input class="form-check-input" type="checkbox" name="equipment" value="{{ equipment }}"
54
+ id="equipment_{{ equipment }}" {% if equipment in equipments %} checked {% endif %}>
55
+ <label class="form-check-label" for="equipment_{{ equipment }}">
56
+ {{ equipment }}
57
+ </label>
58
+ </div>
59
+ {% endfor %}
60
+ </div>
61
+
62
+ <button type="submit" class="btn btn-primary">Search</button>
63
+ </form>
7
64
  </div>
8
- </div>
9
65
 
10
- <div class="row mb-3">
11
- <div class="col">
12
- <table class="table">
66
+ <div class="col-md-10">
67
+ <table class="table table-sort table-arrows">
13
68
  <thead>
14
69
  <tr>
15
70
  <th>Name</th>
16
71
  <th>Start</th>
17
72
  <th>Kind</th>
18
- <th>Distance</th>
73
+ <th class="numeric-sort">Distance</th>
19
74
  <th>Elapsed time</th>
20
- <th>Commute</th>
21
75
  </tr>
22
76
  </thead>
23
77
  <tbody>
24
- {% for activity in activities %}
78
+ {% for index, activity in activities %}
25
79
  <tr>
26
- <td><a href="{{ url_for('activity.show', id=activity.id) }}">{{ activity['name'] }}</a></td>
27
- <td>{{ activity.start }}</td>
28
- <td>{{ activity.kind }}</td>
80
+ <td><a href="{{ url_for('activity.show', id=activity['id']) }}">{{ activity['name'] }}</a></td>
81
+ <td>{{ activity['start']|dt }}</td>
82
+ <td>{{ activity['kind'] }}</td>
29
83
  <td>{{ '%.1f' % activity["distance_km"] }} km</td>
30
- <td>{{ activity.elapsed_time }}</td>
31
- <td>{{ activity.commute }}</td>
84
+ <td>{{ activity.elapsed_time|td }}</td>
32
85
  </tr>
33
86
  {% endfor %}
34
87
  </tbody>
@@ -1,3 +1,4 @@
1
+ import shutil
1
2
  from typing import Optional
2
3
 
3
4
  from flask import Blueprint
@@ -8,6 +9,7 @@ from flask import request
8
9
  from flask import url_for
9
10
 
10
11
  from geo_activity_playground.core.config import ConfigAccessor
12
+ from geo_activity_playground.core.paths import _activity_enriched_dir
11
13
  from geo_activity_playground.webui.authenticator import Authenticator
12
14
  from geo_activity_playground.webui.authenticator import needs_authentication
13
15
  from geo_activity_playground.webui.settings.controller import SettingsController
@@ -139,6 +141,33 @@ def make_settings_blueprint(
139
141
  "settings/heart-rate.html.j2", **settings_controller.render_heart_rate()
140
142
  )
141
143
 
144
+ @blueprint.route("/kind-renames", methods=["GET", "POST"])
145
+ @needs_authentication(authenticator)
146
+ def kind_renames():
147
+ if request.method == "POST":
148
+ rules_str = request.form["rules_str"]
149
+ rules = {}
150
+ try:
151
+ for line in rules_str.strip().split("\n"):
152
+ first, second = line.split(" => ")
153
+ rules[first.strip()] = second.strip()
154
+ config_accessor().kind_renames = rules
155
+ config_accessor.save()
156
+ flash(f"Kind renames updated.", category="success")
157
+ shutil.rmtree(_activity_enriched_dir)
158
+ return redirect(url_for("upload.reload"))
159
+ except ValueError as e:
160
+ flash(f"Cannot parse this. Please try again.", category="danger")
161
+ else:
162
+ rules_str = "\n".join(
163
+ f"{key} =&gt; {value}"
164
+ for key, value in config_accessor().kind_renames.items()
165
+ )
166
+ return render_template(
167
+ "settings/kind-renames.html.j2",
168
+ rules_str=rules_str,
169
+ )
170
+
142
171
  @blueprint.route("/kinds-without-achievements", methods=["GET", "POST"])
143
172
  @needs_authentication(authenticator)
144
173
  def kinds_without_achievements():
@@ -173,6 +202,21 @@ def make_settings_blueprint(
173
202
  **settings_controller.render_privacy_zones(),
174
203
  )
175
204
 
205
+ @blueprint.route("/segmentation", methods=["GET", "POST"])
206
+ @needs_authentication(authenticator)
207
+ def segmentation():
208
+ if request.method == "POST":
209
+ threshold = int(request.form.get("threshold", 0))
210
+ config_accessor().time_diff_threshold_seconds = threshold
211
+ config_accessor.save()
212
+ flash(f"Threshold set to {threshold}.", category="success")
213
+ shutil.rmtree(_activity_enriched_dir)
214
+ return redirect(url_for("upload.reload"))
215
+ return render_template(
216
+ "settings/segmentation.html.j2",
217
+ threshold=config_accessor().time_diff_threshold_seconds,
218
+ )
219
+
176
220
  @blueprint.route("/sharepic", methods=["GET", "POST"])
177
221
  @needs_authentication(authenticator)
178
222
  def sharepic():
@@ -47,6 +47,15 @@
47
47
  </div>
48
48
  </div>
49
49
  </div>
50
+ <div class="col">
51
+ <div class="card">
52
+ <div class="card-body">
53
+ <h5 class="card-title">Kind renames</h5>
54
+ <p class="card-text">Bulk rename activity kinds</p>
55
+ <a href="{{ url_for('.kind_renames') }}" class="btn btn-primary">Set up kind renames</a>
56
+ </div>
57
+ </div>
58
+ </div>
50
59
  <div class="col">
51
60
  <div class="card">
52
61
  <div class="card-body">
@@ -96,6 +105,15 @@
96
105
  </div>
97
106
  </div>
98
107
  </div>
108
+ <div class="col">
109
+ <div class="card">
110
+ <div class="card-body">
111
+ <h5 class="card-title">Track segmentation</h5>
112
+ <p class="card-text">Split tracks into multiple segments if there are breaks or jumps.</p>
113
+ <a href="{{ url_for('.segmentation') }}" class="btn btn-primary">Set up track segmentations</a>
114
+ </div>
115
+ </div>
116
+ </div>
99
117
  </div>
100
118
  </div>
101
119
  {% endblock %}
@@ -0,0 +1,25 @@
1
+ {% extends "page.html.j2" %}
2
+
3
+ {% block container %}
4
+
5
+ <h1 class="mb-3">Kind renaming</h1>
6
+
7
+ <p>If you have used different apps for tracking, you might have that your bike rides have <i>kind</i> "ride", "Ride",
8
+ "Radfahrt" and so on. In order to unify these, you can specify mappings from old to new names.</p>
9
+
10
+ <p>If you want to unify these to "Ride", enter the following:</p>
11
+
12
+ <pre><code>
13
+ ride =&gt; Ride
14
+ Radfahrt =&gt; Ride
15
+ </code></pre>
16
+
17
+ <form method="POST">
18
+ <div class="mb-3">
19
+ <label for="rules" class="form-label">Rules</label>
20
+ <textarea class="form-control" id=rules" cols="80" rows="10" name="rules_str">{{ rules_str }}</textarea>
21
+ </div>
22
+ <button type="submit" class="btn btn-primary">Save</button>
23
+ </form>
24
+
25
+ {% endblock %}
@@ -0,0 +1,27 @@
1
+ {% extends "page.html.j2" %}
2
+
3
+ {% block container %}
4
+
5
+ <h1 class="mb-3">Track segmentation</h1>
6
+
7
+ <p>Some activity tracking apps or devices automatically pause the recording when there is no movement for a while. Other
8
+ trackers do not record new points when one goes in a straight line. And some users manually pause the activity,
9
+ forget to resume and resume after having moved for a while.</p>
10
+
11
+ <p>Depending on the usage patterns one wants to segment the tracks into segments or really keep them as one long track.
12
+ In order to cater for different use cases, this can be changed with a setting.</p>
13
+
14
+ <p>In the following you can enter a threshold. If these many seconds elapse between two subsequent points in the track,
15
+ these will be considered different segments and not be connected with a straight line. Entering "0" disabled
16
+ segmentation.</p>
17
+
18
+ <form method="POST">
19
+ <div class="mb-3">
20
+ <label for="threshold" class="form-label">Threshold / s</label>
21
+ <input type="text" class="form-control" id="threshold" name="threshold" value="{{ threshold }}" />
22
+ </div>
23
+ <button type="submit" class="btn btn-primary">Save</button>
24
+ </form>
25
+
26
+
27
+ {% endblock %}
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev/svgjs" width="512" height="512" viewBox="0 0 512 512"><image width="512" height="512" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAE41AABONQFy0+ziAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAIABJREFUeJzsvXd4XMd97v/O2V30yg5S7JQlkSIpAqSoQsmUVSzLkizFpiy5K45L4sQlybVzndzrxLlOcpP8fk5cIkeyrOIiybQkmrR6IUSJBEFuAUESbABBgAQBEG0XbRfYMvcPEtDZs2eBPWd3Z+ccfN/n4SNhzmfmnZlT5runzDDOOUgkkrzyeDwuRVHmRqPR+YqizANQDqCCc14JoAJABWOsIhaLFSuKUsg5LwHgurTNCaBMU2QZAIcmLQpgUJM2CCACwA8gzBgbBjDKOR8BELiU7meMDQDwc879sVjsgtPpvBCLxXpqamrCGesEEomUcTEKAEik3Mnn882NRqOXKYpyWSwWW8oYuwzAZQAWAZh36d+cnFbSvHou/bvAOT/HGOvgnJ9TFKUtGo2eVRTlXE1NTW+uK0kizVRRAEAiZVdKQ0PDkkgksooxtgrASgCrLv1bCaAwp7XLvYIAmgG0AGjmnDcDaHE6nc3XXHNNO4BYTmtHItlYFACQSBmSz+dbGI1GVzPG1nDOVzPG1gC4BkBxrutmUY3jYnBwlHPexBg7GovFms6cOXN827Zt0VxXjkSyuigAIJEMqra2tqC4uHitw+HYwDnfAGADgHUQ/Gs+Go0iFAphbGwMY2NjiEQiGBsbQywWm/xvOBxGJBJBJBJJyB8KhQAABQUFCdscDgecTidcLhcURUFBQQEYY8jPz4fT6URBQQHy8/NRUFAAh0P7OkHWNQrgMAAfY8zHGPMGAoEjW7duDYmuCIlkZVEAQCJNoe3btzuWL19+FYDNjLHrAVwL4CpcfLku4xodHcXw8DCGh4cxOjo6+S8YDGJkZATBYHBy0I9G3/8RbPQ8ziTvcDhQUFCAgoICFBYWori4GEVFRXH/X1JSgtLSUhQVFRnyNaAIgCYABzjn+wHUb9y4sQn0CIFESioKAEgklerr68scDscWADcyxq4DsAlAaabKDwaDCAQCCAQC8Pv9GBwcxPDwMIaGhjA0NKT7S3065XLwN8o7HA6UlZWhrKwMJSUlKC8vR3l5OSorK1FRUYHCwozeRBnknB9UFGU/gPeCweDeG2+8cSiTBiSSlUUBAGlGq66ubpbL5dqiKMrWWCx2E2NsAxI/kTOkWCwGv9+PgYEB9PX1ob+/H36/H4FAAGNjY0nzmTkXrTT4p8Ln5+dPBgNz5szB7NmzMXv2bFRUVEBRFENl6yjCGPNxzvcwxt5xuVzvrV27diDdQkkkq4oCANKMUm1tbUFJSckWRVFu55zfDmA9ANMjSzAYxIULF9DT04Oenp7JwV59ez4V0eA/tRwOx2RQMG/ePMybNw/z589P95FCDIAPwJuKorwRCAT20nsEpJkkCgBItpfH41nLGLuTc34bgJtg8mW9YDCIrq6uuAF/eHg4gaPBXBxfWlo6GQxUVVWhqqoqnccIowDeBfBGLBZ7ddOmTUfNFkQiWUEUAJBsp+bm5vzBwcGtsVjsHsbYRwEsM1pGLBZDT08Puru70dXVha6uLgQCgWnz0eCfe76iogJVVVVYuHAhFi5ciHnz5pl9fNDKGHuJc76rvLz8nVWrViV/fkMiWVAUAJBsobq6uln5+fn3cs7vBXA7gBIj+aPRKLq6unD+/Hl0dHSgu7sb4+PjhupAg7+cfF5eHhYuXIjFixdj8eLFWLBgAZxOwx9xDHPOX2eM7czLy9tJ7w6Q7CAKAEiWVX19/XyHw3EfY+zjALbi4vz3KYlzjq6uLpw9exYdHR3o6uoS+lmdCA/i9eVwOLBw4UIsWbIEy5cvR1VVFRhjRqzCAN5mjD3PGNuxYcOGHkMVJZEkEQUAJEupsbFx3vj4+AMAtjHGtsDAC3yBQABnz56d/JfsFz4N/jOLLygowNKlS7Fs2TIsW7YMFRUVRoqKAtgDYDuA7bS2AclKogCAJL3q6uoK8/Ly7gbwOQAfRoq/9Cd+5be2tuLMmTPo7+9PKY8R0eBvP76iogLLli3DypUrsXz5ciMzHUYZY7tjsdgvx8bGXqQ5B0iyiwIAkpTavn27Y8WKFXdyzj/LGLsXKb65PzY2hjNnzuDMmTNoa2sz9ByfBnPitcrPz8fy5cuxcuVKrFq1Snfa5CQaBfB7zvmvWltbX6O1C0gyigIAklRyu91XAHiIMfYFAEtTyRMKhdDW1oaWlha0t7cjGo3SL3niM84zxrBo0SJceeWVuPLKK1FSkvJ7pp24+Ijg5zU1NYcNVYJEyqIoACDlXHv37i0tLCx8EMAXOOc3pJJndHQUzc3NaGlpQWdnZ9zFmgZ/4rPNM8awePHiyWDAwIREeznnTxQVFT23evXqxEkkSCSBogCAlDN5PJ4rAXwBwJcBVE7Hj4+Po7W1FS0tLWhra0MslrjOCw3+xIvmAWDRokW4+uqrsWbNGuTl5aWSZYhz/ozD4fivDRs2HDJsSCJlQBQAkITq0iQ9n+CcfxXAlun4aDSKtrY2nDhxAm1tbVNOsUuDP/G55p1OJ1atWoWrr74aK1euTHUConcB/Ky8vPx5mmyIJFIUAJCEyOPxVAH4MwBfATB3Or63txfHjx/HyZMnEQwGpy2fBn/iZeOLi4uxZs0arFu3DnPnTnvIA8AFAP8N4JGamppOQ5UhkUyIAgBSVuXz+TZGo9FvMMYeADDlvdGxsTGcPHkSx48fx4ULF1L2oMGfeNn5qqoqrF27FmvWrEnlS4JxxthzAP6zurraY8iIRDIgCgBI2ZDidrvvZ4x9C8CN08Hd3d04evQompubEQ6HDRnRYE687Lw6j8vlwlVXXYWamhpUVVWlkvVdxtgPq6urf4+LqxeSSBkTBQCkjKmpqSlvdHT0QcbY3wC4aio2Go2ipaUFhw4dQk/PxZlU6Zc88Xbjp8pTVVWFa665JtUXB1sA/HhoaOi/acliUqZEAQApbdXX15e5XK6vcM6/BWDKnzWBQABHjhzBsWPH4ibpocGfeLvxqebJz8/H+vXrsWnTJpSXl0+HdwD4YSgUepRmGiSlKwoASKZVV1c3Ky8v75sA/gLAlBOod3R0oLGxEWfOnEm4KMpyISae+Fx7fOADH8C1116LJUuWTIcOcM5/lJ+f/5+0MiHJrCgAIBnWgQMHZjudzm9xzv8CQFkyLhqN4uTJkzh8+DB6e/XXSLHDhZt4e/MiPLT8/PnzsXnzZqxZs2a6TwkDAH40Pj7+H9dff/30i12QSCpRAEBKWQcOHJitKMpfMMa+CSDpvcpwOIxjx46hoaEBw8PJJzuz44WbeHvxIjym4ouLi1FdXY3NmzcjPz9/qmKGAfwiEon80+bNm7sNVYA0Y0UBAGlaNTU1lQSDwa8B+J+YYuAPhUI4fPgwGhsbMTY29XwmVrsQEz/zeBEeqfIT7wnccMMNKC4ungodBvBTAP9cU1MTMFQZ0owTBQCkpKqtrS0oLS39M1wc+Ock40ZGRuDz+dDU1IRIJDJtuVa+EBM/M3gRHmb4vLw8bNiwIZVAoAfAD8rLy39GswuSkokCAFKCamtrnSUlJZ9njH0PwOJk3PDw8OTAP9UUvWrZ5UJMvHV4ER6ieafTierqatxwww3TrUrYxhj7+5aWll/SksQkrSgAIMXJ7XZ/hDH27wBWJ2PMDPwAXbiJF8+L8Mgl73Q6J+8IlJaWTlXMIQDfqqmp2W3InGRrUQBAAgB4vd6rOOf/BuCjyZhQKISGhgY0NjamdKtfLbpwEy+aF+EhC+9wOLB+/Xp88IMfnO7RwB8AfLOmpqbFUEVIthQFADNcPp9vIef8HznnXwCg+73R+Pg4Ghsb0dDQgHA4TBdu4qXnRXjIyOfn5+P666/H5s2bp5pdMATgP0Kh0D/RZEIzWxQAzFA1NTXlBYPBbwH4OwC6DxGj0SiOHDkCr9eLUOji7KN0Ic4d73Q6MXfuXGnqMzY2hv7+fmnqI9JDdr6oqAhbtmzBxo0b4XA4kmXrZIz9bXV19VOgdQZmpCgAmIHyer0f4pz/CMCaZExbWxvee+89DA4OTqbRhTi3fFlZGe666y5D5WdTXV1dePPNNw3locFfLD9r1izccsstWL066Ss9AOBljH2zurr6XUPGJMuLAoAZpPr6+stcLtc/cc4/m4y5cOEC9u3bh87O+OXI6UKce97qAQAdQ7njly9fjttvvx3z58+fCvtDNBr9+rXXXttqqBIky4oCgBmg2tpaZ2lp6V8B+B6AQj1mcHAQdXV1OH36dMI2unDLwZeXl1s2AKBjKPc8Yww1NTXYunUrCgt1LwMAMArge0NDQ/+xdetWY2/6kiwnCgBsLp/Ptz4ajf6cMbZRb3skEoHP54PP59P9pI8u3PLwegGAMyRuZdiY04mY0zn5d6oBAB1DcvGFhYW44YYbcN111031fsAhRVH+ZMOGDW5DRiRLiQIAm6qurq7Q5XJ9hzH2XQAuPUbvOb9adOGWi9cLAD780ENwTbHeQiZ16pOfxInPfGby71QCADqG5OVnzZqFD3/4w7j88suTZY0A+C+Xy/XddevWjRgyJVlCUy4zRbKmfD7frXl5eYcvzeSXMPgPDAxg165dePnll2nwtxEvm+gYkpvv7+/HM888g2effRb9/boLCToBfD0cDvvcbvdWQ8YkS8g5PUKyihoaGioikcj/ZYx9CQDTbo/FYjh06BAOHjxoaAa/VGSlC58dedlEg791+JMnT6K5uRnXXXcdbrnlFr3HApczxt72er2/ikQi37r22mv7DFWEJK3oDoBN5PV674lGo0cYY1+GzuDf1dWF3/72t9i/f/+0g78sFybirSka/K3HR6NR7N27F48++ig6Ojr0EMY5/6zD4Tjidrs/Z6hwkrSiOwAW16WZ/B7hnN+rtz0cDqO+vh5HjhxJ6aIg24WJeGuJBn9r8xcuXMDjjz+OzZs345ZbbtGbTXABY+wpj8dzXywW+7NNmzZ1GTIjSSW6A2BhXToJDyUb/Nvb2/Hcc8/h8OHDNPjbkLeDZOtT4i+m7d+/H4888giam5uTZb1fUZTDbrf7Y4YMSVKJ7gBYUHV1dYV5eXn/AuDretvHxsawf/9+NDU1pVymFS5MxMst2fqI+PR4v9+PX//611i9ejXuuusuvUWG5jDGdni93l86nc4/pS8FrCe6A2Ax+Xy+jXl5eQ1IMvi3tLTgmWeeocHfxryMkq2PiM8c39TUhJ/85Cdwu/WnBOCcfzYcDrs9Hk+1oUqQci66A2ARbd++3bFixYpvA/gH6HzaNzo6itraWrS1tRkqNxcXGsYS3lE0tF1bfrp8LJZ8HRSZLsSySrY+Ij7zfDAYxB/+8AecPHkS9957L0pKEtYPuxJAndfr/bvq6ur/D7S4kCVEAYAFdPDgwcUrV678Jef8g3rbW1tb8c477yAYDBoqN1cXmjlz5uDmm282VFY21d7ejv379yeky3ghlk2ytZn47PInT57EI488gnvvvRdXXHGFFs/jnP+rx+P5SCQS+dzmzZvPGTIjCRc9ApBcbrf7E4qiNOgN/hOf7rz22muWGfytItn6x+r9CcjXR8Sb40dGRvDMM8/gxRdfxPj4uB5yi9PpPOJ2ux8yZEgSLroDIKnq6+vLXC7XTxhjuiv3XbhwAW+//Tb8fr9lLhxWkWz9Y/X+BOTrI+LT5w8dOoSOjg584hOfwIIFC7Sbyxljv/F4PLcWFhZ+c/Xq1WLmqyYZEgUAEsrtdl/hdDpf4JwnLOLNOceRI0cmJ/SR4UKQDi+bZOsfq/cnIF8fGeGLi4sxd+7crNbHiPx+P/r6jE3El83+6e3txaOPPoqbbroJW7du1Xsf54vBYHCLz+f7ow0bNqT+ZjJJiCgAkExut/textjTAMq124aHh/H222/j/PnzAOS6UJrhJ8SiUdz47W+bymtGp++/H+e3bElIl61/1Hzx+DhWGrzwyyCZ+zQVzZ07F7fccouhPNnUkSNHUFdXlzIv4hyORqOora1Fe3s77r//fpSVlWmRK2Kx2H632/3wxo0bnzdsQMqaKACQRJfe8v8BY+zb0JnKt7W1FbW1tRgbGwMg34UyrV89nKPi5Enz+Q0qz+/XqYI8/VMZDGJZXx+W9/fjssFBXBYIYGEggJHFi1H7OXlmYV0+MIAv+Hw4XVmJ05WV6Cgvh7qVMvWpCF42iWivOs/p06fx05/+FHfffTfWrl2rRUsZY9s9Hs+/nj59+m+3bduW2cVISKZEAYAE8vl8c1esWPEsgA9pt0WjUbz77rs4fvz4ZJpsFz66sJrji8JhLB4YwBK/H0v9fiwZGMDiQAB5kUgmqpl1FYXDuPXUqcm/R1wutFZWorWyEqcrKtBaWYnOkhLwFD7TlO2Yo2PUXJ5QKITf/e53aG1txV133QWnM26IYQC+s2LFig0HDhz4FC0qlHtRAJBjXZo843kAy7TbhoeH8dprr6Gnp2cyTbYLH11YU+Mrg0Es7+/HokAAlwUCWN7fj4WDg2AW7w+1isNhXH3hAq6+cGEyLeR04nxpKc6VlU3eKWiZNQth5f0PkGQ75qbiWSyGfJ07SNlSuKQE0cT5+KdUrgZ/tTweD86fP48HH3wQFRUV2s13OBwOn8fj2VZTU1Nv2JyUMVEAkEO53e7PMcZ+BqBQu629vR1vvfXW5C1/wFoXykzwsimV+heEw6gaGsIivx/L+/uxvL8fSwYGUGCRX/WZVkEkghUDA1gxMICbL01SFVUUdJaUXAwGKiomA4PxxGVoE5TrYzS/vx+3PfywoTLTkec730GnzvsqySTD4D+hzs5O/OxnP8MnPvEJrFq1Srt5MYB3vF7vX1RXVz9muBKkjIgCgByoubk5PxAI/Jgx9iXtNs45Dh06hPr6+rgTLdcXPtG8bNKrv/pX/cSAb7df9dmQIxa7+G7D4OD7QQFj6CwtjQsKWisqMKa6hUzH6NSSafCf0OjoKH75y1/ixhtvxO233679SiCfc/6o1+u9aWxs7CvXX3+9sclMSGmLAgDBurR87w4Am7TbxsfH8dZbbyVM5yvbhW+mXVgd0SgWDA1Nvpi3KBDA0oEBlKruzmRD/sJCtM6ahXPl5ThXVobulSuxMauOxuQvKMC5sjIsGhxMfGvVoBycJwQFMcbQU1SEc2Vlk0HBiVmzMJSfP215M+0YlXHwn+A553jvvffQ19eHP/qjP0K+Zv9xzj+bl5f3gYMHD95HywuLFQUAAuV2u69mjL0EYIl2m9/vx2uvvYaBgYG4dNkGZ7tfWCuDQSz0+yef0y/r60PV4CCULLYjoijovvTrd2LAb6usTBjoyktLs1YHM+ooK8OTd96JgvFxLA0EJm/1rxgYwKKhobTvhCicY/7ICOaPjKCms3MyfaCgIO5OQfOsWfCr+srux6hWIuqfiT49duwYfvazn+Ghhx7CvHnztJs3K4riPnjw4N2bNm1qMF9TkhFRACBIbrf7NsbY76DzfX9LSwtqa2sRDofj0mUbnO16YV0yMIDrd+/Gqr4+lIZCWfXyFxbiXHk5OsrLJwf882VliBlY0Egmcc4RdLlwfM4cHJ8zZzK9IBLBMr8flw0OYvHg4MXAoL8frikWXkpVlaEQajo7kwYFLRUVOFtWhu7E5Wt1629lifwlnwm+r68Pjz32GD72sY/h6quv1m5epCjKHrfb/cmNGze+YsiUZEoUAAiQ2+3+ImPsEWhW8eOco66uDo2NjQl5ZBuc7Tr4A8DCQAAbOjoyWmZUUdBVWjr5i76jvBzNc+Zg8NIvVREX7lwq5HQmBAVKNIqFw8NxdwpW+P3Ii6b/SbheUDDscsU9PmipqMC5srLJuQqs1J96strgP6GxsTFs374dHR0duOOOO7TvBZQyxnZ4vd6vVFdXP2nInGRYFABkV8ztdn+PMfY97YZwOIw333xTd/leGU5SkbzVpf5V3zprVlZ+1Vu9TznniCoKzpaV4WxZGd5ZuhTAxWf/C4eG4oKC5YEA8jPw1URJOIwr+/pwpWoGxVGXC+2XgoKJf+dKS1Oaq0AmWXXwV7Pvvfceurq68OCDD2rfC8jjnD/h8Xg21NTUfBOAtQ9+iUUBQJZ06U3/xxljn9ZuGxkZwSuvvILe3t6EfDKdpCJ4KymsKDhXUYGzlZVoU/13WMLvtGXSVPWPMpYQFLBYDIuGhrDC78fygQGsCASw3O9HoeYRmRkV6QUFTifOVFTgdEUFWsrLcbqiAh2lpdI+lrH64K/mm5ub8dhjj+Gzn/0syssTno5+3ePxVA0NDX1u69at2X02N0NFAUAWVFdXNys/P/8FAB/Ubuvv78fLL7+M4eHExbFkPUmzxcuskby8uF/0HRUVOFtejojqW3UZL8SyyUx7uTooWPL++7KzQqHJuwQr/X6s6u9HeQa+xCiKRLC6txerVQF5VFFwvrgYJ269FSGJ1gIwI9nOey3f3d2NRx99FJ/5zGdQVVWlxbeVlZUt8ng8H6upqUn8xURKSxQAZFhut3tFXl7eS5zzK7Xbzp07h9dff113DW3ZT9JM8zIp6HKhfskSdJSX48zs2WiZNQuBwoS5meJEg//0ynR7+wsK0F9VBfelQYJzPhkUrPT7J/9bmYEXOR2xGBYPDcHR1wdv2qXlTrKd98n4wcFBPP7443jggQfwgQ98QJvnBgB1DQ0Nd11zzTWndAsgmRIFABnUwYMHNymK8hKAhPVDm5qa8O677+qeAFY5SXPFZ1sNCxei7qabUuZlGvyP/smfQBE0y2BgxYqUWVHHkDYoAC6+ELjC75/8t9zvx9zRUUPl20GyncfT8WNjY/jNb36De+65BzU1NdrNq6LR6Lter/ej1dXVHkPGpKSiACBD8nq9NymK8gcAcWthcs7h8Xjgdrt18+X6pJOdl00yDf4AcO7WW41WJ+vK9TE0UFAAz4IF8CxYMMkXhcNYOjiIlX7/5N2Cy4aHbTtrY673gVk+Go1ix44d6O7uxkc+8hHtFwLzOee1Ho/n3pqamt2GKkDSFQUAGZDH47kFwE4AJer0iXWyT53Sv2sly0knKy+bZBv8ZZRsx9AEP+py4djs2Tg2e/bktqJIBMtVdwpW+P1YNDyc1UmfREjWfWCE37dvHwKBALZt26ZdUbAEwB88Hs/9NTU1rxsqmJQgCgDSlNvt/hhj7DkAcd+xhEIhvPLKK+ju7tbNJ+NJJxMvm2jwn16yHUPT8aNOJ47OmYOjl+Yq4JzDGYth4cjI5J2C+ZLNvjidct2nmeSPHj2KkZERfPrTn0Zh/Ds5RQB+7/V6H6iurt5lyIAUJwoA0pDb7X6QMfY0NBP8BINB7Nq1C/39/br5ZD7pZODtoGz00fj4OE6fPm2q/GwoEAhM/r9sx5BZPqIoaC8tRXtpKXYvXowVK1bAKt8AyNqn6fBnzpzBY489hi984QsoK4t7ulrAOX/B7Xb/8caNG39pyIg0KQoATMrr9X6GMfYENH04PDyMXbt2xV0c1bLCSZdLXkbJ0kfBYBB1dXXS1Gem8jJKtj7KJH/hwgX84he/wMMPP6ydK8DJGHvC7Xa7Nm7c+AtDhiQAgJLrClhRHo/nTznnT0Ez+A8NDWHnzp00+JvkZZRsfUR8bnkZJVsfZYPv7e3FY489hj7VBE6X5GCM/dzr9X7TkCkJAAUAhuXxeL4D4L+g6Tu/348dO3ZgcHBQN58MJ5HMvIySrY+Izy0vo2Tro2zyfr8fjz76qN57VYxz/kOPx/O/DZmTKAAwokuD/79o03t7e/H73/8eIyMjuvlkOolk5GWUbH1EfG55GSVbH4ngh4eH8dhjj+HcuXN6yD94PJ6E6zMpuSgASFFut/sH0Bn8e3p6sGvXLgSDQd18Mp5EueblnGH9fcnQR8TLw8so2fpIJB8MBvHkk0+ivb1dD/2Ox+P5B0OFz2BRAJCC3G73txhj39Wmd3Z2YufOnRhLMh+5zCdRrvjSUAgf9/kMlStSMvQR8dblRUi2NueCDwaDeOKJJ9DS0qKX5X97PJ6/MWQyQ0UBwDRyu91/zhj7/7XpZ8+exR/+8AeEk6xQZoWTSDR/dWcn/s+uXbi8p8dQ2aIkQx8Rb11ehGRrcy758fFxPP3002hqatLb/M8ej+cvDZnNQFEAMIXcbvcXGWM/0qa3t7fj1VdfRTQa1c1npZNIBO+KRvGA14u/fvNNVCR5VJJr5bqPiLc2L6Nk66Ns8JFIBM8++yxOnjypt/nfvV7vFwyZzjDRPABJ5Ha7P84Y+29oHll3dXXhjTfeoME/RX5RIICv7tmDJQMDySFFwXkDi/Gkq5GFC9PKn+s+JV4uXkbJ1kfZ5KPRKH7961/j85//PFbEL1jFOOc/d7vdoY0bNz5rqAIzRBQA6OjS9L7PAHCo07u7u/HSSy/Rbf8UeAbggydP4tNuN/KmWa2OKwq83/62Ie9cyUr7gHh7DOZGJVufiuDD4TCeeuopPPzww1i2bJl6s4Mx9rTX6x2haYMTRY8ANHK73bcxxp6FZnrf3t5evPzyyzT4p8CXhUL41ttv4+H9+6cd/K0kK+0D4s0N/lYPGGTrU5F8OBzG008/jY6ODi3m4pz/zu12f8RQ4TNAFACodPDgwRsYYy8CKFCn+/1+vPTSS/S2fwr82vPn8Y+7dmG9/ne6AIDO+Ok8LSEr7QPiafCfqXwoFMKTTz6JCxcuaDflMcZ+5/P5bjZkYnPRI4BLcrvd1yqK8go0S/oGAgHs3LmTvvOfhndFo/ik14vbjh1L+p1/lDG8sno1dldXY/PoqCHfbGp8fHzK7VbZB8Sb443kCZeVCX1c5b/yypQ42fo0l/zIyAh+8Ytf4Mtf/jJmzZql3lQUi8V2er3eW6urqz2GDG0qZvWoNxM6cODAcofDsR/APHX6yMgIduzYgaGhId18Vjopsskv8vvxp+++i8VTvOjXW1yM/96yBSfmzUvKZLJOxBOfiTwrVqzAhz70IcNlZkuHDx/Gvn374tJk61NZ+PLycnzlK19BRUWFdlMvY+z66urqZkPGNtTOR5YIAAAgAElEQVSMfwRQV1c3y+FwvALN4D+xpC8N/sl5BuCOY8fw/ZdemnLwP7B0Kf7X3XfT4E+8VLzZPDJJtj6ViQ8EAnj88cf1ruFzOOe7Dh8+XGnI3Iaa0QFAc3Nzfl5e3g4AV6jTQ6EQdu3aBb/fr5tPpoM8V3x5KIRvvfUWPn3wIJxJPokMulz42Y034ic334yRvLys14n4mcubEQ3+9ud7e3vxxBNP6D3CvXJ8fPyFpqamqS9MNtdMfgeADQ4OPgYg7gP0aDSKV199Ff39/bqZZDzIRfM1Z8/i4X37UJrkpUgAaJ4zBz/bsgUXSkuF1In4mctn0yMQCODo0aNZDxZSLb+rq8sQb7R8O/KdnZ14+umn8cUvfhFOZ9yQtzUUCj0F4FMArB0NmtSMfQfA7Xb/QDu/P+ccb7/9Nk6dOqWbR+aDXASfd2lGv9uPHUuaJ8oYdq5di9+vW4cYm37ZH9nbTLzcvAgP4u3Br1u3Dg8++CCY5rrEOf+HjRs3/r0hE5toRgYAbrf7jxljj2vT9+/fj4aGBt08VjnIs8VfdulFv8umetGvpASP3HgjTk3zrD9TdSJ+ZvMiPIi3F3/LLbfgjjvuSMgG4OGampqnDJnZQDMuAHC73VsZY68BiHv2c/z4cdTW1urmyfVBm0ueAbj92DF80uOBMxZLmufA0qX4xXXXYXSaZ/2ZqBPxxIvwIN6e/H333YfNmzdrk8Oc87s2btz4piFTi2tGBQA+n291LBbbCyDuu5D29na88sorugeQLAdtLvjyYBBf2rcPaxNn1ppUMC8PT117LfYtXy6kTsQTL8KDePvyDocDn//853H55ZdrNw0C2FJTU3PYkLmFNWMCAI/HUwVgP4Al6vT+/n7s2LFDdzKYbB2EiqLA6XQKuVCmomg0ikgkEld+TXs7/riuDiVTveg3d+7FF/1KSpIyWsl0ISDeerwID+LtzQNAXl4evvrVr6Kqqkq76UwsFrt+06ZNXYYLtaBmRABQW1tbUFZWtodzvkmdPjIyghdeeAEjIyMJebJ5EF522WXYtGnT9KAgnTp1avLdh1Rf9Nu1bh12rF2b0ot+E5LtQkB8bnkRHsQTnyxPeXk5vva1r6GsrEyL7C8vL9+6atWq5L9+bKIZMQ9AaWnpT7SDfzgcxssvvyx88JdZy/v68I+7dk05+PeUlOCf77wTL6T4lv+EZLsQEJ9bXoQH8cRPlScQCODJJ5/UW+PlukAg8B+GC7egbB8AeL3eLwH4ojqNc4433ngDfX19CbyMB60I3XHsGP7ulVewYHAwKbN3xQr83b334uScOYbKlq1Pic8tL8KDeHvzZqTncf78eTzzzDN6277q9XofznqlcixbBwBut/tazvmPtel1dXVob29P4O1wkJvRpra2izP6JXnLP5iXh0duugmPbtmCoMNhqGzZ+pT43PIiPIi3N59pj+PHj+PVV1/Vy/NfPp9vo+HKWUi2nQnwwIEDsx0Ox3MA8tXpLS0taGxsTOBzeZDn9/fjhu9+N+n2TOvol76ECzU1k39XTrEy37EFC/Doli3oLyqS7kJAvLV4ER7E25vPlseePXuwaNEirFu3Tp1cEIvFnvd4PDU1NTW9xmppDdkyANi+fbtjxYoVvwGwTJ3e39+v+61/rg9yJRZD8RSf2mVajiRLG6s18aLfxIx+ue4j4q3Ni/Ag3t58Nj0453j++ecxf/58zJ8/X71pCef82e3bt39427Zt+oueWFi2fASwfPnyfwYQN91TOBzG66+/jnA4HMfKeJDnWp1lZfj+XXfhxfXrafAnPiOSrQ3EW4sX4REKhfD0008jFArFpTPGbl2+fPn3DRVmEdkuAPB4PPcxxv5ancY5x+7duxNW95PxIM+19q5Ygb+/+26cmT0bgHx9RHxueREexBMv2mOC7+3txXPPPZeQnzH2P91u98cNFWoB2SoAcLvdVwB4ChdnsJ2Ux+PB6dOn41gZD/JcajQvD4/cfDMe3bIFoUsrZsnWR8TnlhfhQby9eTMS3Yampia88847Wowxxp7wer1XGSpcctkmANi7d28pY2wHgLhZHdrb2+HxeOJYO5wUmVR/URG+e++92L9s2WSabH1EfG55ER7E25sX4ZEp/tVXX0Vzc7M2uZRzvr2pqSn1qU8ll20CgIKCgp8AuFKdNjQ0hLfffjtuJ8t2AMog95IlGCgqmvxbtj4iPre8CA/i7c2L8MgkzznHr371Kwwkrn66JhgM/tCQkcSyRQBw6dnM59Rp0WgUr7/+etwLHbIdgNJINaOfbH1EfG55ER7E25sX4ZENPhgM4qmnnkp4cRzAn3i93k8aMpRUlg8APB7PEsbYz7Xpe/bsQU9Pz+TfMhxQsku2PiI+s7wZydYG4q3Fi/DIJt/Z2YmdO3fqlfFfhw4dWmTIWEJZPQBQADwJzfK+ra2tOHHixOTfMh1QZngRkq3NxGeWF+FBPPGiPUTw9fX1OHTokHbTrHA4/Jvt27cbmxpVMlk6APB6vX8D4BZ12sjISNxkPzIeULJJtjYTn1lehAfxxIv2EMm/+OKLCZ+RM8ZuXrly5V8aKlQyWTYA8Hq9NZzz76nTOOd4++23J1d3kvmAsqpk6yPic+9BPPGiPUTzo6OjePbZZxPSOec/OHjwoDxruxuUJQOAxsbGYs75rwHkqdN9Ph86Lk2pK9sBZQfJ1qfE596DeHvzZiRbGzLFnz59Wm9+AJeiKL+x6qeBlgwAwuHwDwFcoU7r7e2d/N5ftgPKbB6ZJFufEp97D+LtzYvwsBr/2muv4dy5c9rkVcFg8N8MGUkiywUAHo/nPgBfUqeFw2G8+eabiEajOT9AMpVHJsnWp8Tn3oN4e/MiPKzIR6NRPPvss3qfBn7V7XZ/zJChBLJUAODz+RYCSPjkb9++ffD7/VIcIJnII5Nk69OZxpuRbG0g3lq8CA8r8xcuXND9NJAx9nOPx1NlyDjHslQAEIvFfgpgtjqttbUVx44dk+oASSePTJKtT2caL8KDeOJFe9iB379/P5qamrSb5gB41FBhOZZlAgCv1/sAgPvUacFgEHv27JHuADGbRybJ1qczjRfhQTzxoj3sxP/2t7/F4OCgFrnbSqsGWiIAqKurm8U5/09t+u7duzE6OmqoLBlvwcommU+6mcCL8CDe3rwZydYG2fmRkRFs3749gWOM/bihoaEiYYOEskQA4HK5/h3AAnXayZMn0dbWZqgcGS/Eskn2k87uvAgP4u3Ni/Ag/qKOHz8On8+nTa6KRqP/asggR5I+AHC73VsZY19Qp4VCIezbt89QOTKeRLLJKiedVXgzkq0NxFuLF+FBfLx27NiB4eFhbfKf+Hy+Ww0Z5UBSBwB1dXWFjLHHADB1+nvvvYdgMJhyOTKeRLIp1yeR3XgRHsQTL9qD+ESNjo5i165d2mQWi8UeqaurKzRkKFhSBwB5eXnfB7BKndbe3o5Tp06lXIYdTiLZJFv/yMaL8CCeeNEexCeX1+vV+yrg8ry8vP9lyFSwpA0AfD7fegDfUKeFw2Hs2bMn5TLscBLJJtn6RzZehAfxxIv2IH56/sUXX5xch0al/+HxeKoNFSZQUgYAtbW1zlgs9gsALnV6fX09hoaGsuYr20Elm2TrH9l4ER7E25s3I9naMFP5gYEBvPbaa9rNTgC/8Hg8Lu0GGSRlAFBaWvrXAOKipu7ubhw5ciTlMmQ9SKwq2fpHNl6EB/H25kV4EJ9d/t1338WZM2e0WMLdbFkkXQBw4MCB5QD+tzotGo1i9+7dKe8c2Q8Sq0m2/pGNF+FBvL15ER7EZ5/nnOP5559HNBrVbvoHn8+31JCBADlzXQGtHA7HDwHEvTnp9XoxMDCQUn4rHCRaRQoK0HbnnYbKTUejCxZMD12SDP0jMy/Cg3h78yI8iBfHd3Z2ora2FrfeGvcVYFEsFvt3ANsMGWVZUgUAXq/3TgBxKyoNDAzoTbSgKysdJGqFS0pw+GtfM1S2CMnSP6J4M5KtDcRbixfhQbx4/o033sD69esxZ84cdfIn3G73bRs3bnzTkGEWJc0jgKampjzO+X9o0/ft26d3OyVBMuz0dHjZJFv/0IWYeLvxIjyIzw0fiUTwwgsvJKQzxn4k0wuB0gQAwWDwLwFcoU47ffo02tvbp80ry043y8sm2fqHLsTEy86bkWxtID6z/IkTJ3D06FFt8lUA/sJQQVmUFI8ADh06tAjA36rTIpFIStP9yrbTU+HD4TACgUBCeunYGMp1ZjgcycvDQFGRoXoYkXpWRRn6RyQvwoN4e/MiPIi3Jv/73/8eV1xxBZzOuKH2e/X19b/evHlzt6FCsyApAoBIJPJ/AJSo07xe77Tf/Mu606dTV1cXurq64viyUAj/umMHCsfH49iQ04nv3Hcf/EVF0tTfLrwID+LtzYvwIN66fF9fH3bv3o3bb79djZQ5HI7vA/iKoYKzoJw/Ajh48OA1AD6nThscHERDQ8OU+WTe6Wb4j/t8CYM/ALx09dU0+GeBF+FBvL15ER7EW59/++23E75iY4x90e12X22o8Cwo5wGAoij/qq1HXV3dlC/+WWGnG+GXDAzg5ubmBK6/qAivrl4tff1zzZuRbG0g3lq8CA/i7cGPj4/jpZde0iY7APybIYMsKKcBgNfrvRtA3L2R7u5utLa2Js1jlZ1uhP+k2w1FJ/25mhqMORzC62MlXoQH8cSL9iDeXnxDQ0PCDIGMsTu9Xu+HDRllWDkLAGpra52c8/+rTuOcY+/evUk7M9c7MRt89dmzuLqzMyG9Ze5c7F+2THh9rMSL8CCeeNEexNuP55xj165dCSzn/N+2b99u7FdeBpWzAKCsrOxhAKvVaS0tLeju1n8xUoadmGneGYvhkx5PIgvgN9XVMOJghfZmkhfhQby9eTOSrQ3EW4c/c+YMDh8+rE1eu3Llys8aMs2gchIA1NbWFnDO49ZJjkajqK+v1+Vl2omZ5G87fhwLBgcT0uuWL8epefOE18cqvAgP4u3Ni/Agnnitdu7ciUgkoi3n75ubm/MNF5YB5SQAKC0t/RqAxeq0o0ePYlBnMJRtJ2aKLx4bw72J0SDGHQ78bsMG4fWxCi/Cg3h78yI8iCdeL09/f7/e/DZLA4HAVw0XmAEJDwD27t1bCuDb6rRwOAyv15vAyrYTM8l/vKEBxWNjCekvr1mD3uJi4fWxAi/Cg3h78yI8iCd+qjxvvvkmxhKv/X97aWwUKuEBQEFBwf8AEHd/+9ChQ3Gz0QHy7cRM8gsDAWw9dSohfaCoCC+tWSO8PrngzUi2NhBvLV6EB/H25s1I6zE8PIw9e/ZosbkFBQXfyHplNBIaAHg8njkAvqlOC4VCCZP+yLbTM81/yu2GIxZLSN++YQPGnNNPzpjr+qfLi/AgnnjRHsTbm8+kx+7duzE6OqpN/uu6urpZhiuVhkTfAfgrAHG3ObxeL8Lh8OTfsu30TPPrOzqwtqMjIb1t1izsXb5ceH1E8yI8iCdetAfx9uYz7REKhfDWW29pk8vz8vK+qcdnS8ICgAMHDswGELfo/cjICI4cOTL5t2w7PdO8g3Pdz/4A4FebNoEzJrQ+onkRHsTbmzcj2dpAvLX4bHm89957ei++f/3w4cOVhszSkLAAQFGUv4TOr/+JKX9l2+nZ4D904gQW+f0J6fVLl+LENJ/9yVD/dHgRHsTbmxfhQTzxojzC4TB2796tTS4fGxsT9i6AkACgoaGhgjH2Z+q00dFRHD9+HIB8Oz0bfPH4OD526FBCesThwPZpPvuTof7pSrY2EG8tXoQH8fbmzSjbdXrvvfcSloZnjH1T1F0AIQFANBr9KwAV6jSPx4NIJCLdQZIt/r5Dh1Cq89nfK1ddhQulyb/+kKX+Ij2IJ160B/H25kV4mOEjkYjuXYBwOPx1Q4WZVNYDgPr6+jIAf65Om/j1L+MOyQY/f2gIHzpxIiF9sKAAf7g6+YqQstRfpAfxxIv2IN7evAiPdPi9e/cm3AXgnH9DxLwAWQ8AXC7XV6D59a998z8VybwDp9OnDh6EM8lnf0GXS3h9zPAiPIgnXrQH8fbmRXiky0ciEdTW1mqxyoKCgi8bKtiEshoANDc353PO4z5rCAaDaGpqMlSO7DtwKq3u6sI1584lpLdXVuLdlSuF18cML8KDeHvzZiRbG4i3Fi/CI1P8vn37MDIyok3+VlNTU54hA4PKagAwODj4eQAL1WmNjY0JiyFMJavsQD0pnONTBw7obnumpgYxnc/+ZKq/KA/i7c2L8CCeeNEemeTHx8fx7rvvapMXjY6OfsaQiUFlMwBQOOd/rU4Ih8M4evRoygVYaQfq6YMnT2Kxzmd/niVLcLSqSnh97H4SES8fL8KDeOJFe2SDf/fddxPWCGCMfRtZHKezVrDb7b4fwOXqtKamJoRCoZTyy7BD0uHzx8dxf2NjQnpEUfBcdbXw+piRbH1KvLV4ER7E25s3I9nakCo/OjqK+vp6bfIVHo/nXkOGBpS9yOLixD+TisViOKTzHbyeZNkh6fD3NTaiXLPAEQC8fuWV6NJ89kcXYuLtxovwIN7evAgP2fi33nor4RE55/xbhgoxoKwEAAcPHtzEOb9BnXby5EkMDw9Pm1e2HWKGnzc8jDt0PvsbKijAzrVrhdZHhAfxxIv2IN7evAgPGflAIJCwOB5j7GaPx5N42zgDykoAoChKwoIGjTq3w7WScYeY4R/yeOC8NMWxWs+vX4/RvLwEPlv1EeFBvL15M5KtDcRbixfhITOvMzEQAGRleuCMBwA+n28hgE+o0zo6OtDb2ztlPpl3iBH+qu5u1LS3J2zvKC/HO5dfnsBnqz4iPIi3Ny/Cg3jiRXvIznd0dKClpUWLPXTo0KFFhgpOQRkPADjnfwYg7tvF6X79y75DUuUZ53goyWp/v9m4EdFLn/3RSUS87LwID+KJF+1hFX7Pnj3aJFckEvmKocJTUEYDgEsT/8TNXjQ4OIgzZ84kzWOVHZIKf3NLC5b19SUwDZddhsMLFwqpjwgP4u3Ni/AgnnjRHlbiGxsb0d/fr03+SnNzc74hk2mU0QBgcHBwG4C56rTGxsakDbXSDpmOL4hE8HHNyxsAEGUMz11a7c/MSWFUMvcR8fLzIjyItzdvRrK1Idc851zvLsA8v9//R4aMplFGAwDOedwtinA4PLnkrw5rtGyp+XsOH0aFzmd/b15xBToqKuhCTLz0vAgP4u3Ni/CYKXx9fT3Gx8fj0hhjf2rIbBplLADw+XyrAWxRp506dSqhAYA8HZwpftbICD6sE+iM5OXh9+vW0UlEvHDejGRrA/HW4kV4zCQ+GAzC6/Vqk2/yeDxr9XgzylgAEIvF/lybpjftr0wdnCn+IY8HeTrrG7ywfj2G8oyv5WCFNhMvLy/Cg3jiRXvMRF7nMQAYYxlbJTAjAUBTU1MJgE+r07q7u9HT0xPHydjB6fKrenpwbVtbQnpneTneuvzyhHQRdSJ+5vIiPIgnXrTHTOU7OjrQrvmsnHP++b1795bq5TOqjAQAoVDoIQBl6jTtr39ZOzgdngH4jNuNxDX9gF9XVyOqGOteK7SZeHl5ER7EEy/aY6bz7733nhYpzc/Pf8BQoUmUkQAgFos9rP57bGwMzc3Nk3/L3sFm+RtPn8YKnQmOji5YgEOLjM3ZYJU2Ey8nL8KDeHvzZiRbG+zI+3w+BDUvmDPGHk4ATSjtAODAgQMfYIxdp047derU5IIGVuhgM3xeNKr72V+MMfx648ac1In4mcmL8CDe3rwID+LN8ePj4/AkTjB3o8fjudKQgY7SDgCcTucXgfi74MeOHQNgnQ42w9995Ahmj4wkpL99+eU4W1GRkzoRb33ejGRrA/HW4kV4EJ8er7NMMAB8zpCJjtIKAGpra52c88+o0/r7+9HT05PzDssmXzk6io80NSWkj+bl4YX163NSJ+Ktz4vwIJ540R7Ep8+3t7fj/Pnz2uTPbd++3WHITKO0AoDS0tIPA1ioTjt27JgUHZZN/pNeL/J1PvvbsXYthvJTm6kx120gXi5ehAfxxIv2ID5z/IEDB7RJi5YvX36HIUONnOlk5px/lrH37/5Ho1GcOHHCaBlp82vWrMGqVasMlWO2Pg7OMfjRj+JVbT7GUOh04n4AbrcbZ8+eNe1B/MziRXgQT7xoD+Izyx88eBD33HMPHI73f/Qzxj4D4BVDBalkOgDYu3dvaUFBwT3qtLa2toS3FadSpjrM4XDA5XIZKisdRZL8yp+ogXoHaSXbQUV8bnkRHsTbmzcj2dpA/PT80NAQmpqasHZt3ESAH2tqaipZvXr1sKECL8n0I4D8/Pz7ABSp04z8+pfxpMi2ZDyoiM8dL8KDeHvzIjyIl4fX+RqgOBQKfcxQgSql8w7Ap9R/jI+PJ8xYlEw0+BM/03kRHsTbmxfhQbxcfGNjI0KhkJZ5yFChKpl6BODz+eYyxm5Tp7W0tEx++z+VRJwUlceP4/LnnjOcz6wOff3rGKusTLpd9oOKeLG8CA/i7c2L8CBePj4SieDw4cPYtGmTOvnDjY2N89atW3fBkAFMBgCc8we0eU+ePJlKPqM+hvgJ5fv9mOd2m8prRg6dFQ8nZIWDinjzvBnJ1gbircWL8CBeXt7j8WgDAGc4HP44gEcMmcDkIwDO+SfVf4+OjqKjo2O6PEY9jFdMMlnpoCKeLsTEy8+L8CBebv748eMYGhrSJptaG8BwAFBfXz8fwA3qtObm5ikrTYM/8XbjRXgQT7xoD+Ll52OxGBoSp6G/yefzzTVkBhMBgNPpvB9A3HduLS0tSXka/Im3Gy/Cg3h782YkWxuIzx1/6NAhbZKDc36fIUOYCAAYYx9X/x0MBtHZ2anLynghlk0yHVTEy+FBvL15ER7E25s/efJkwmMAzvnHk+BJZSgAOHDgwGzO+VZ12unTp3UrL+NJJJtkO6iIz70H8fbmRXgQb3+ec47Dhw9rN32orq5ulpGyDAUATqfzHmje/te7/S/jSSSbZDyoZhJvRrK1gXhr8SI8iLc3r5bOYwCXy+W620gZhgIAznncjENjY2MJKxTJeBLJJtkOqpnGi/AgnnjRHsTbm9fmOXHiBEZHR+O2K4pyr5HyUg4Ampub8wHETf5z5swZRKNR3cqlIhr8iRfNi/AgnnjRHsTbm9fLE41GcfToUS1zR1NTU16qZaYcAPj9/g8BKFGnnTlzJmnlsiEa/IlPhxfhQby9eTOSrQ3EW4ufKo82AABQOjo6+sFUyzXyCOCj6j9isdjkkrcyXohlk2wH1UzjRXgQb29ehAfxxBvJ09TUFHcXHgAYYx9Ngico5QBAW2hHRwfGxsakPIlkk2wH1UzjRXgQb29ehAfxxBvNEwwG0draqk2+J9XyUwoAPB7PWgDL1GltbW1SnkSySbaDyuq8GcnWBuKtxYvwIN7evBml6nHkyBFt0gqv13tVKnlTCgAYY3dq09TP/1OVjJ2cTcl2EFqdF+FBPPGiPYi3N59tD533AADgw6nkTSkA4JzHvf0fCATg9/tTyaouI6u8bJLtILQ6L8KDeOJFexBvb16ER2dnJ/r6+rTJd6SSd9oAoLa2tgDATeq09vb2lCsHyLlTZJJs/SMbL8KDeHvzZiRbG4i3Fi/CY4I/fvy4Nv3mS5/uT6lpA4CSkpItAArVaRNv/xupoCy8bJKtf2TjRXgQb29ehAfxxIv2UPPaAABAsd/vv366MqYNABRFuV1reu7cOcMVlIGXTbL1j2y8CA/i7c2L8CCeeNEeWv7EiRN6ZdyuTdBq2gCAcx5XSHd3N8bHxw1XMNe8bJKtf2TjRXgQb29ehAfx9ubNKBdtGB0dTXg0r/3xrqcpA4BLKwutV6el8vzfDjsxm5Ktf2Tsf9naQLy1eBEexNubF+GRSV7nPYCahoaGiqnKmzIAcLlcN2mZjo4O0xXMBS+bZOsfOomItxsvwoN4e/MiPDLNnzhxQpukxGKxLVPlmTIAYIzdrP47Go2iq6vLdAVF87JJtv6hk4h4u/EiPIi3Ny/CIxt8a2srIpGINvkmPXZC070D8EH1H93d3QnzDk9Ihg6QWbL1D51ExMvOm5FsbSDeWrwIj2zx4XA44RE95/zmJDiAKQKA+vr6MgDXqNOS3f6XpQNklWz9QycR8bLzIjyIJ160R7b5U6dOaZM27t27tzQZnzQAcDgcWwA41Gl6AYBsHSCbZOsf+hVGvOy8CA/i7c2bkWxtMMM3Nzdrk535+fnXJcsz1SOAG9V/xGIxdHd3p13BbPKySbb+oQsx8bLzIjyItzcvwkNWvqWlBbFYLG4bYyzpi4DOZBsYY3FRQ09PD8LhcNoVzBav1nhZGXrXrTOd36iiLldCmmz9QycR8bLzIjyItzcvwkNmfmxsDB0dHVi8eLEaSXoHIFkAoADYqE5Qv/0vWwdo1b96Nfb/4AdplZGOZOsfOomIl50X4UG8vXkRHlbgW1tbtQHAZlwc02NaVvcRgMfjWQOgTJ02EQBYoQOsJBn7R7Y6EW8t3oxkawPx1uJFeFiFP3PmjDap3OfzXanH6gYA2tv/wMVPAK3SAVaRjP0jW52ItxYvwoN44kV7WIlvbW3V4zfrsbqPALRwMBhEIBDIWAUzzcdisYQXH4yU7+AcimY7BxBRpl0qQVfT1WW6+uSCF+FBvL15ER7EEy/aw2p8T08PhoeHUVJSok7eDOAJLZvsHYBN6j+mmv3PTAUzzTc2NqKxsdF0+Z/yenHXsWNxaSfmzcP3b7vNVH2sxovwIN7evAgP4okX7WFFnnOOtrY2rFmzRp2mewcg4SdubW1tAYDV6jTt53/pVlA2vlhndcMRnTf7RdUnHd6MZGsD8dbiRXgQb2/ejGRrg0x8W1ubNmlNc3NzvjYxIQAoKSlZB82dgZ6enoxXUCZeNwDIy8tZfczyIjyIJ160B/H25kV4zDReJwBwBQKBNdpEvYfcG7QJqZyIWzoAACAASURBVAQAsnWAEd5MACBT/UV5EG9v3oxkawPx1uJFeMxE/ty5c3rpCWN7QgCgKEocFAwGMTIykvEKysQX6QQAo1MEALLVX4QH8fbmRXgQT7xoj5nKDwwMYHh4OG6boijXaPmEAEAbJVy4cCErFZSJN3IHQLb6i/Ag3t68CA/iiRftMdN57V2Aae8AbN++3QFgrTptqtv/sndAqnyqAQDdgiXebrwID+LtzZuRbG2wI3/27Flt0npoxvy4P5YuXboSQKE6rbe3N2sVlIFXOEeBao2DCWkDALoQE283XoQH8fbmRXgQb47XeQ+g5MCBA0vVCXEBgNPpTHhLsK+vL2sVlIEvGh8H02HUAQCdRMTbjRfhQby9eREexJvnOzs7E9IcDkfcJ/5xAUAsFlut+TthBkArdUAqvN7tf+D9eQDoJCJedt6MZGsD8dbiRXgQnx7f1dWVwHDO437kxwUAjLGr1H/7/X5Eo9GsVVAGvljn9j9w8Q4AnUTEy86L8CCeeNEexKfPRyKRhEf4jLHkdwAAxEUH/f39Wa2gDHzSOwApTASUTn3M5CGeeNEexBMv2oP4zPHaxwBTBQAKgCvUGycCAJkalGleLwCIKArGHI6s1cdMHuKJF+1BPPGiPYjPLH/+/Hlt/tVQjfuT/9PQ0LAEmi8A+vv7pWtQpnmz0wCno1y3mXhr8yI8iLc3b0aytYH46XmdFwGLDx48uGjij8kAIBKJXK4l/X5/1iuYaz7dAECGNhA/c3gRHsTbmxfhQbwcvN48PoqirJr8/4n/YYyt0oLaLwCyUcFc80anARZRJ+KJz5UH8fbmRXgQLw+vN5OveqxXvwOwUg0Fg0GMjY1lvYK55vXuAAynsBSwTG0g3nq8GcnWBuKtxYvwIF4ufmRkBKOjo1pmcqxXBwBxdwBS/fUvewdMJzusBEi8tXgRHsQTL9qDeDl57WOAZHcA4gKAVJ7/W6UDpuKNBgAytoF46/AiPIi3N29GsrWBeHG8NgDgnCcEAAzAcjU03R0AK3XAVNJ7B8AqKwESby1ehAfx9uZFeBBvL17nRcD4RwA+n28OgCI1MTg4KKyConl1Hr07AHovAcrWBuKtxYvwIN7evAgP4u3H6yzoV3L48OFK4FIAEIvFFmuJoaEhYRUUyWvzpPIIQLY2EG8tXoQH8fbmRXgQb09+YGAgIS0cDi8GLgUAnPOEAGB4eFhYBUXx2jwMQNE0SwHL1gbic8ubkWxtIN5avAgP4u3L6wUAE2P+xDsAizUbEwIAmRpkhtfLUxgOQ9EpR9RKgMRbixfhQTzxoj2ItzevXtNHpSXApQBAUZS4ACAYDCISiQirYK5OIr0XAAExKwESby1ehAfxxIv2IN7ePACMjY1hZGREmxz3COAy9Rb1r38ZG2RUyTySrQSYykRAqZRPvD14ER7E25s3I9naQLy1eHUe7WMA7SOAKvXGiWhB5gZlgs/EUsCy9RHxmeVFeBBvb16EB/HET5VH5zFAFfB+ALBAvWVkZET6BmWC1wsAYowhlOIdANn6iPjM8iI8iLc3L8KDeOKny6P9qo8xNh94PwCYr96onTvYqFmm+Wx5JJsDIBUn2XY68ZmXbG0g3lq8CA/i7c2bkZ6Hzmf9FwMAj8fjAlCp3mIkALDySVSs9wkgLQRkO16EB/HEi/Yg3t58Jj10AoDZtbW1TsXpdM7DxU/iJ5VqAGClDtATLQRkf16EB/HEi/Yg3t58pj10ZvZVCgsLZyuRSGS+dksqAYDVOkBPtBCQvXkRHsQTL9qDeHvz2fDQm9nX5XLNVxhjc7UbQqGQ0MrlwoNzYysBynaQEJ97D+KJF+1BvL35bHnore0Ti8XmKbFYrFK7IRgMZqxyZiRqp6S6EqBsBwnxufcg3t68GcnWBuKtxWfTI8ld/QqFMVahTR0bG0vLLJ08InndOwCalwBlrj/xufEg3t68CA/iiRfpoRcAMMYqFABxAUAkEkE0Gk27cmbyiOanewQge/3tzpuRbG0g3lq8CA/i7c2bUbbrNDY2hrDmqzfGWKUCoFydqPf8364nUckUKwFaof525kV4EE+8aA/i7c2L8DDL6zzaL0+4A6C9/W+nDtCqMMkdAKvU3668CA/iiRftQby9eREe6fDaH/exWKwi4Q7AuGpQtFsHqJUficAViyWkDzudOakP8eI8iCdetAfx9uZFeKTLa1cEZIxVKJzzEnWi9jlBOoYy83qzAAK0EFAueREexNubNyPZ2kC8tXgRHpngdV7uL1EAFKlTJgIAKzQoHT7dlQBzXX+78SI8iLc3L8KDeOJFe2SK1wkAChMCgEgkYpkGpcOnEwDIUH+ZeTOSrQ3EW4sX4UG8vXkzkq0NU/HjiWNekZMxVqhOMfoIwEodoJZeAMABjE6zGJAs9ZeVF+FBvDG+uLgYjLEktPj6DA8PZ7T8TNSJ+JnNi/DINa8TABQ6oXMHIFOGMvN6AUDI5UJMogul1XgRHsQb5x944AEUFRXp0LnRj3/846TtomOOeNG8CA8ZeJ0f90WmAwAZGpQOn+o0wKLqY3VehAfxmeVlk12OOZfLhdtuu81QvmzVB7i4EMyePXuyUr7VeREesvC6jwAAFKhTUgkAZGlQOrzeHYDhJLf/Zay/TLwID+Izy9tBsvXpBO90OrF69WpDebOp3t7elAIAWfszW7wID5l4nTsAhQqAuA/fYzrfxps1lJmfahbAXNTHqrwID+Izy8so2fpopu0D2fqHrluZ53XGdqcTgCPVQmVrUDp8KksBy1x/GXgRHsRnlgeAdT/9Kea63YbzmVFg5Uq4/+7vpmRk6yMa/O3Ni/CQkddZ48eREAAkuwMgY4PS4XXfAVA9ApC9/pnmzUi2NhCfmlyDgyjs7TWV16hCc+ZMuV22PsoWv2jPHjg1M7FlS0OLF6P/6qtTYmXpH7O8GcnWBlG8ztieGABk0lBmfqo7AFaofyZ5ER7E55aXUbL1UTb5D/zmNyju6DBUvlm13XlnSgGATP1jhhfhYSdeJ69TwTSPAGRuUDp8sncArFL/TPEiPIjPLS+jZOujmbYPZOsfum5ln9d7BJAQAKhvE8jeoHR4I18BiKhPLngRHsRbixch2dpshz41Itn6h65bYni9RwBKNg1l5vXeARidQQsBifAg3lq8jJKtj6zep7L1D123css7AUSh+hRQURSpKqjHV1RU4PrrrzddPgNw4LrrEtIXlJTgLoN3AQCgs7MTXq/XdH1E8yI8iLcWL6Nk6yOr96ls/UPXLbG8oiT83o8mBABGlYsGuVwuzJo1y1A5WgVmz05IK7z0z6immttctgNEhAfx1uJllGx9ZPU+la1/6Lolnnc4Et73jyq4GABMaqpFQ4waiuZlk4ztlW2fEZ9bXkbJ1kdW3wd2aK9sbbAirzO2RxICAJ3bBKYNRfKyiSJi4mXnZZRsfTTT9gFdt+zLT/UIYFKp3AGQpUFqrXn0UcN5zKrruuvQt25d0u10EhEvO59L/YvXCySpb1hREJrmR8iI0wnOWNI2RxQFocTbnXH8qNM55cqfEcYwOk09gk4noqoyJsp3FhdPmU9W0XXL3rzeIwAngLjVf6YLAGRqkFrLd+0ylc+MgvPmJQ0A6CQiXnY+16ru708aANhB42VleD3XlTAoum7Zn0/2CCCkTnE6k78PKFuDZBOdRMTLzpNIWtF1a2bwrsQv3IIKgFF1ig5k2jCbvGyik4h42XkSSSu6bs0cPi9xnpvRhABA7w6ArA2aSZKtT4m3Fk8iaSXiGJLtPJjJvF4A4OScB9XPBrQBgMwNsqpk6yPi7c3LpueWLQO/NC2pi3MUJM5RHqeiSATKFG12co5CTRnaPiqKRuEwWIZWhZHIlGU4OEfRNGXIIvolP/N4nQAg6MQUjwBkb5AVJVsfEW9vXkb9fOVKQ+2QrU+n4wsLC/E1QyWKFQ3+M5M39AjACg2ymmTrI+LtzZvNI5Nk69OZ1p9m8hAvJ693B0BhjMXNY+tyuSzTICtJtj4i3lq8GVn9vJFtH8y0/jSTh3h5+YKCAm3SsALAr07Jz8/PmGEueBklWx8Rby1elIdMkm0fzLT+NJOHeLn5oqKiuL8ZYwMJAYBOlGDaUDQvo2TrI+KtxYvykEmy7YOZ1v+AfH1EfPq8NgDgnPsVAAF1Yqp3AGRokOySrY+ItxYvykMmybYPZlr/A/L1EfGZ4QsLE9a69Suc87g7AE6nU2/OYFOGongZJVsfEW8tXpSHTJJtH8y0/gfk6yPiM8Pn5+frfeLvVxRF8WvhqR4DyNIgmSVbHxFvLV6Uh0ySbR/MtP4H5Osj4jPHa2//X5Jf4ZwPaFOTBQAyNUhWydZHxOeWNyMZ65RNybbPZlr/A/L1EfGZ5XVu/8PhcPgVznlPKrBsDZJRsvUR8bnlRXhY/byRrX9mWv8D8vUR8Znny8rKEtJjsdgFxeFwdGs3FGvWs5axQbJJtjYTn1tehIeM54ERydY/M63/Afn6iPjs8HoBgMvl6nYGAoELpaWlMQDKxAb18wJZG2RlydZHxGeWF+GRznlwYdMmhObMMZ3fiEbnzdNNl61/6DpEvJ15nQAgeuLEiT7n1q1bIx6PZwDA7IktEwGAzA2yqmTrI+Izy4vwSJc/e9tthvJnWrL3T6Z5GSVbHxGfXV4nAOjdtm1bdOK7gG5oAgDZG2RFydZHxGdesrXB6ueNbP1jtj/f+dGPwKbHMqKYoky5XbY+Ij6zvJ5KS0u1SRcAQB0ArJ7YkuSTgaSyQgfkWrL1EfG595CNl02y9U86/RlLXIglJ5Ktj4jPLJ8sj/YOAOc8LgDoVG8sKSlJyyyXvIySrY+Iz72HSL6npwfDw8NT0NmXuj6ptEXm/rSqZOsj4jPLT5WnsrJSm9QJvB8AnFVv0Xtj0IhZrngZJVsfEZ97D9H8zp07paoP8eIlW5uJzyw/XZ5Zs2Zpk9qBSwEAY+ysOnNhYSFcLhfC4XDGKijjSZFtyXaQEJ97D+LtzQPA+Pg4fvvb35r2+Mbp01g2OhqX9sbcuXh5/nxTdRobGzPEy9anxKeXp6CgIOHTfsbYWeBSABCLxc4yFv+KSklJCQYGEiYJNFVBERdi2STbQUJ87j2Itzc/kScajeLMmTOmPVxHjmDO4GA8d9llOBMMStdm4nPLp5JH5/Y/OOftwPvf/p/VAskeA8jQINkl20FCfO49iLc3n0mPKEv8XsDJuXRtJj63fKp5Zs+enZA2cQdAAYBYLNauBfReBJSlQTJLtoNkpvFmJFsbiLcWn2mPiE4AoMRiOasP8da+bundAXA4HO8/Arj22mv7PB7PKIDJ7/90PhvISuXSzTOhYJIZx7KhiM5aCYB8B9VM40V4EE98tj2iOt/xOw14yNZHxOfWQ+cOwNA111zjB97/CgAATgO4euKPiooKIZVLJ49abz3+eFr505VsB9VM40V4EE+8CI9kjwByVR/is8eL8JiX+OO4ZeJ/1KFms5qYuG0gYwfIJtkOqpnGi/AgnnhRHnqPABwp5JWtj4jPvQfnXC8AmBzrkwYAFRUVUj3HMMvLJtkOQqvzIjyItzdvRtmsk14AMN0dANn6lPjce0zwc+fO1W7SDQBa1ERhYSHy8/OFVDBbvGySrX+szovwIN7evAgPo7zRAEC2+hOfe48Jvri4OGEOAKjGeqcqQ7N2LoCKigp0d3dntYJm+N7eXvzud7/LSPm3nT6NbceOxaVFFAXfuOMOhKdYVENdfjQandZHtoNQNt6MZGsD8dbiRXiY4fXeAUj2CEDG+s8k3oxEtmH+pcmjNNsn7wBMBgBOp7NZO5BVVlamFACI3imxWAyjmpmyzJbflJeHgr6+hPSqc+dwPMma6bIdhFbnRXgQT7xoD7N8qncAZK3/TOFFeKTLJwkAEl8CvOaaa9oBxI2qehMIZLqCueZPV1Qg5HQmpK/WCQpE1Gem8SI8iCdetEc6vO5LgJp5AGSu/0zgRXhkgq+qqtImDW/atOncxB/qe9wxACfU5Jwkv4AzWcFc81HGcCpxoQRc1dubk/rMJF6EB/H25s1ItjZo+ek+A5S9/nbnRXhkil+0aFHc34yxYwAmYe1D7ib1HzorCGW8gjLwx3QCnSv7+qDQSZc1XoQH8fbmRXjkgp/qM0Ar1N/OvAiPTPILFy7UskfVf8cFAIyxuACgsrISTp3b41bqgFR4vQCgMBzGkkAgJ/WxOy/Cg3h78yI8csUnewfAKvW3Ky/CI5O8y+VK+ARQO8bHBQCc8/iNioLy8vKsVVAW/uSsWYjovPG/uq/PEvW3Ei/Cg3h78yI8csmnMxNgNupjR96MZGvDdHxVVRW0X/bFYrHkdwAcDkfcRiD+PYBcNyhb/JjDgVbV1McTulLnPQAR9bErL8KDeHvzIjxyzZudCTBb9bEbL8JDBl57+x8AnE5n8jsAp06dOg3NlwAT0wjK0KBs8nqPAVYbCAByXX/RvBnJ1gbircWL8JCBp7UAsseL8JCFX7x4sTZp6JprrmlTJ8QFANu2bYsCOKxOmzdvnjQNyiZ/TOeTx4pQCAtGRnJSH5l5ER7EEy/aQxbezFTA2ayPXXgRHjLxS5cu1SY1AIgrQG+qO6/6D72JBKaSTB1ghD82Zw64zomn9zmgiPrIyovwIN7evBnJ1oZs8nrLAU/3CECm+svIi/CQjde5A+DTJiQcaYyxOKioqAilpaUpGcrWAUb44bw8dOi0M9mEQNmuj4y8CA/i7c2L8LA6H9ZJo7UAzPMiPGTjZ82ahZKSkrg0xliDlps2AAB01xNOu4Iy8k06jwGSvQgoY/2zyYvwIN7evAgPO/C6awFoZgIUWR8r8yI8ZOR1bv8jGo1OfwcgEAgcARBRp033GEDGDjDD670IuHB4GJWhUE7qky3ejGRrA/HW4kV42IXXfQcgh/WRhTcj2dogite5/T9eWVl5TJuYEABs3bo1BM2MgDrzCaddQRl5vRcBAeAK1WMAmesviwfxxIv2sBNPawHkxsNO/IoVK7Sbm1atWjWmTUy23m29+g+9CQXSraCMfE9REXqLihK4ifcAZK+/DB7EEy/aw248rQUg3sNOPGNMLwDYr5dPNwDgnMcFAIWFhajQTJQjcwekw+vdBbiqt9cy9c+lB/H25s1ItjZYgZ/qM0Ar1D+TvAgPu/ELFixAcXFxXBpjLG5Mn1BKdwCA+FmFZO+AdHi99wCWBQIoCuu9m5v9+mSCF+FBvL15ER7EX1SymQCtUv9M8SI87MivXLlSj0v9DsDGjRubAATUaRPvAVihA9Lh9b4EUDjHB/r7c1KfdHkRHsTbmxfhQfz70nsEwIC41UlF1uf/tXfm4XEUd97/1twz0kiyTku2ZcuSZVuSJc0l+QSfAhswxo43GMJhm2MBxzEkAcImS8i+2Q37brIk2WSTEI4EeBNwCBDugMEHxhhrRsK3wcKXfMvWMZKsa7reP7CU0UyPZnqOnuqZ+jwPz4OrP1W/6po+fuqjOh6+HDES1Re5/N9ms9k+F3MDXQEQKKX13gX5+fmKGYBI/Oa0NLh1Or/yqSPMBxDL/kTiyxGD+4ntyxGD+8MRmwgISJ7pgOWIkci+SAKwE4Doe6SBEgCoVKphlwxyc3OhEzkxhtNBln0K4KDIVYCRJgSKZX8igZUx5b4yfTlicN8fsVsAgDKnAw4H1tZBSb7BYPB7BTDQ5X9ghARAEITtw0SVSvTrQlI7qARf7EHA0tZWaOM0GYccMbjPfbljcF+cQAmA0qYDliMG94dTWloq9sbeR4H8gAlAb2/vR/CZEEhkcgHJHVSCL/YcgNbjQXFbm+z9kSMG97kvdwzuB0bsGQBAWdMByxGD+/6Ulpb6FvXrdLodgfyACcCsWbPclNJhcwePHTs24g4qwW/KyECvWu233PfDQHwn4j7rfjiwtg7J5gd63yhQAsBa/+WIwX1xfBMASml9ZWVlwE/aBkwAAIAQstX73/n5+dBoxCalZGcAouF7VCp8kZnp55TJOCOgHDG4n9i+HDG4H31fyi0A1vovRwzui6PT6TBhwoRhZb7ncF9GTAAopVu8/63RaESnBWZlAKLpi34Y6MIFEBr793HDqcN97ssdg/ux8UO9BcCvHnHfm+LiYrE/0LeNVGfEBECv12+Dz+sDhYWFYXdQSb5YApDS349xHR2S2g8HpYwR99n05YjB/dj5obwFwLch7vsydepU3yKPWq3eLuYOMmICMG3atFYAw54D8L7EwNoARNP/PCtLNBMP9jpgLPvEfe6zEIP7sfWD3QLg2xD3xfzy8nLfYmd1dbX/k+tejJgAXOY9738UFBTAYDAwOQDR9HvUahz1+f4BIC0BiPc6cD+5fDlicD/2/ki3APg2xH0xPyUlRez+/3viNf5B0ARApVINa4QQEtLrgL4dVKIvdhvA900AufvEfe7HKwb35fEDXgEIMA9JtPoTTh3us+GXl5f7vf/v8XgiTwDa29u3A+j2LvPNNELpoBJ9sQQgq6cHed3dIrY8feJ+4vvhwNo6cD98P5KZAMPtTzh1uM+OL3L5v2vUqFEBZwAcJGgCMHfu3B74PElYVFQkuYNK9PdnZUGsxki3AVhbB+4ry5cjBvfZ9gPdAgg2E2C4/QmnDvfZ8svKynyVzSUlJb3B2gnlGQAAeN/7HxkZGRg1atSIFVgfsFD8Dp0Op8xmv2WBPgzE4jpwXzm+HDG4z74fjSsAUmBhnbkfvl9QUIBs/8/YB738D4SYAAiC8LZvWUlJSUCf9QGTgthtALErAKytA/eV5csRg/vK8CP5GiAr68B9+fyqqiox751Q2hOf1s8Hh8Oxz+l0NgEoHiwrKSnBrl27QurgSLDm+9Y5kJWFRUePDlte4HYjvbcX7Xq9LH3ifmL7csTgvvz+7NmzMXnyZEntDrJ11Sq/shq9HmUiU5SHyrvvvovjx48P/ZuFMeJ+5H51dbVvUZPdbj8USpshJQCXeQvANwf/MXbsWBgMBvT09ATtYCBY88XqiF0BIACmXryIT/LzmVsH7sfXDwfW1oH70fHT0tKQm5srqe1BxKYbS7n8X7joL//BArAzRtyPzE9JSfG7Gk8I+Vuo7Yb6DAAAvDGsoko17GFApQyY1DpnTSa0GI1+5VNbWphbB+7H15cjBveV5bMIa2PE/fD9yspKqHxuGRFC3gy17ZATgPT09C0A3N5lxcXFQTsoBmt+sDoHQ3wOIJp94r6yfDlicD+xfTlgbZ25H5lfWVnpW9RxeQr/kAj5FkBJSUlvfX39e4SQ5YNlxcXFUKlU8Hg8oTYT9wELp87+rCzMbm4eVlbU3g7jwAAuBfg6YiR94r6yfDlicF/5/qhDhzDmgw8ktRMJB9asgYdf9k9YX61WY9q0ab7F75aVlfWFGkPKMwAA8BqAoQTAYDBg/Pjx+PLLL0OqzFoGXVxcHNKshuo5c+A6e9avfHF2Ntq8drBI2bdvH06fPi2pTrw3wmT35YjB/cTwU5ubMeGttyS1FQmHbrllWAIgBaWMaTL75eXlSEkZ/lQIpfR1KXEkJQAajeZvHo+nD4BusKy0tDSkBIDFA3FmZiYmTpwYknuqtNS//uX/osWxY8ck+SxshMnsyxGD+4ntswhrY8R9cex2u29Rv16vf0PMDYSUhwBx+ctCH3qXTZ482e8hBF8S4UDMGqxshInihwNr68B9ZfkswtoYcV8cQojY63/vXf6Cb8hISgAuB37Z+99GoxFjx44N6POTf/RhZSNMFF+OGNznPuuwNkbcD8zUqVNh9pmlllL6cgA9IFKfAQAh5FVK6f8CGJqRYsqUKcMmmPDqkKS2433gNp0+jdz6esl9CJfmBQswYDJJqsPSRpgIvhwxuM991mFtjLg/MiKX/wekvP8/iOQEwGKxnHc6ndsAzB0smzx5Mt5//30IXp+rVOKBO+3oUVT87neS+xEu52pqJCUArG2ESvfliMF97rMOa2PE/ZFRqVSw2WzDygghm61Wa2jfqvduS2qFy7zk/Y+UlBSMHz9+6N+JcP+VNVjbCJXuyxGD+4ntJwKsjSn3g1NWVoa0tDTf4o2SG0L4CcBGAP2+nQIS40DMGqyNj9J9OWJwP7H9cOuwBGtjyv3Q6syYMcO3uH9gYEDy/X8gzATAZrO1wOdzg5MnT4Y6jA9VsDjILMHa+CjdlyMG9xPbD7cOS7A2ptwPrY5Op4PVah1WTgh5u6amRtrUtJcJ9woACCF/8v63Tqcb8RPBYrA4yCzB2viw5ocDa+vAfWX54dZhCdbGNNn8cBiMYbFYYDAYhi0TBOFPYnVCIewEwGAwvAqgy7usvLw85PqJ8KPEEtbGhzVfjhjc53406rAEa2OabH6kMaZPn+67uFOn00ma/c+bsBOAsrKyTkLIsMAlJSV+UxOKweKPwhKsjQ9rvhwxuM/9aNRhCdbGNNn8SGOkpaX5ffyHUvpqZWVll2+9UAk7AQAAQRCeG9aYSjX0MGAgWPxRWIK18WHNlyMG9xPbDwcW+xRLWPvNlO5HI8asWbP8nrNTqVTPS+6Id/1IKtvt9ncAnPAuq6qqCuiz+KMoGdbGUwk7EfeT25cjhtKPQ6yNj9L9aMWYNWuWb9HJpqam9yV3xouIEgAAAoAXvAtycnKQn5/vJ7L2o/CdVFm+HDG4n9i+HDH4cYX7sYhRXFzsN+U+IeTZlStXeiR3yItIEwB4PJ5nAAzrse83iln7UfhOqixfjhjcT2xfjhj8uJLYfjhEq09z5szxK/O9BR8OEScANTU1nwP42LusvLwcWq0WAHs/It9JleXLEYP7ie3LEYMfVxLblyNGIF+v16O2tta3eJvdbj8kKYAIEScAAEApfcb73waDAVOnTmXuR+Q7aXz9cGBtHbivLF+OGPy4kti+HDFG8mtra2E0GoeVEUKeCaBLIioJgMlkehFAu3eZxWKR1AaLPzpLsDY+StuJuJ98vhwx+HElsX05YgTzjsNWDwAAIABJREFU582b51vUrtFoXhJzpRKVBKCsrKyTUjrsdYSCggLRhwHFiPcAsw5r46PEnYj7yvbDIRHWIZawNj6s+XLECOYXFRWhqKjIt/iPkbz7701UEgAAUKvVvwaGPwxYXV0dtF68B5h1WBsfJe5E3Fe2L0cMflzhvtwxQvHnz58vVi9q36yPWgJgsVj2A/jIu6yiogJ6vT5gHRYGmGVYGx+l7kTcV64vRwx+XOG+3DFC8U0mk9/Df5TSrXa7fa+kYCMQtQTgMr/x/odWqw04MRALA8wyiTA+rK0D95XlyxGDxf0mlrA2PiyOPyvrcMUVV0Cn0/kW/6+kYEGIagKQnp7+MoBz3mV2ux2EkGEeKwPMKiyOD2t94n5i+3LE4MeVxPbliBErnxCChQsX+hafNZlMf5UUMAhRTQBKSkp64XMVICMjA6WlpUP/ZmWAWYXF8WGtT9xXlh8OrK0Di2MUS1gbn2Q7btntdmRnZ/vW/01ZWVmfpKBBiPYtAGi12l8B6PUuczgcANga4HD8WMPi+rLWJ+4ry5cjhtJ91mBtfJJxm1u0aJFvUS+l9DdibiRoot1gZWXlOZfL9RKl9JbBssLCQowePRqnT58OuR3WfhDW4DsR91n35YihJH/AaER3iK9GRwPqc+s1pDoKGs94xYi1P378+GFXzS/zJ4fDcUZSQyEQ9QTgMj8HcIt3gcPhwN/+9reQKrP2g7AG34m4z7ovRwyl+adnzsTpmTMltSkn8R6fSH05YsjhX3XVVX7lgiD8XFJDIRL1WwAAYLVanQC2eZeVl5cjPT09aF3WfhDW4DsR91n35YihdJ81WBufZN3mMjMzxeb9/9DhcDRKaixEYpIAAAAh5L+HBVKpUFNTM2Id1n4Q1pCj/6z9BtxXli9HDKX7rJEI48PaOoTrL1myBGq12nfZE5Iak0DMEgCr1foqgP3eZRaLBSaTSdRn7QdhDX4g5j7rvhwxlO6zBovjw1qf5PJTU1NxxRVX+C4+YLfb35DUoARi9QwAAFBK6U8JIU8NFmi1WtjtdmzdutVXlNpwTH3W4DsR91n35YihNP/vf/87Pvzww7Da11GK1xr9r/o+UlwMl9kcVn96enok+VLbj9SXIwbLfl1dnd/MuZTSnwAQJDUqgVgmACCEPAfgUQCFg2UOhwOffPIJ+vq+ep2RpR/kzPTpePPVVyW1HwnU51KPqMN3Iu7L7IcDa+vAgt/X1xf2ca6TUmjb2vwu0ZKODnSp/C/csrC+kfhyxGDZ1+v1WLBgga/SbDKZ/iypUYnE7BYAANhstn4Av/AuMxgMQx8JYu0HASGgarVs/0W9/2HU4T735Y7B/dD8fpETvV7w/2OQ1f6zFIN1f/78+UhNTR1WRgj5abQn/vElpgkAAGi12t8AuOBdNnPmTGg00i4+sPhXD2uwvpFzn21fjhjcD93vDSEBYK3/4cDaOsjt63Q6LFmyxFe7aDAYfi+p4TCIeQJQWVnZRSn9H++ylJQUWCyWkNtgcaONNaxvtNxPLF+OGNyX5gdLAFjrvxwxEtFfsGAB0tLSfIufKCsr65TUeBjE9BmAQS6/EvgtABmDZbNmzYLL5cLAwMCIdWP5gxw4cADHjh2LWfvefvWFC7jxiy/8lxOCZ6dMwaH0dLS1tUUUg/vcD8eXIwb3pfs9IjP5DSYArPVfjhiJ6Gu1Wlx99dW+xe1qtfqXkhoPE1kSAJvN1u50On8J4AeDZYNXAXbt2hWwXqx/kPb2drS3t8esfW//NIBJ7e2oO3HCz7v74EF8a84cXDIaFbHRcj9xfDlicD88X/QKAKXM9V+OGInqL1y4EBkZGb7FP6uurm6TFCBMYn4LYBCdTvffADq8y0Z6FkApP6AU/zcVFWjyv9QDc38/HnS5oBZ5wCfWfeJ+4vjhwNo6cP8fiCUAOo8nbv2JV4xE9fV6vdi9/zZ8NZW+LMiWAEybNq2VEDLssobZbB76UqA3SvkBpfp9KhUet1rRLZL0TGlrwy2HDsneJ+4nhi9HDO7L6/eF+BaAXP2JR4xE9uvq6vzu/RNCnrDZbKFflo4Q2RIAAOjt7f0ZRK4CeE9+oKQfMBz/VEoKfllZKbpsxZdfYsbZs7L3ifvK9uWIwX35fbErAIYQ4/Btjm3fZDJh8eLFvsWtKpVKtr/+AZkTgBkzZlwE8FPvMqPRiOnTpwNQ1g8YCdvy8/H2+PF+5QTAht27kdfdHbU+cT+xfTlicD8+fiivAUajP+HAyhgp1V+yZAlSUlJ8i/9Trnv/g8iaAACA0Wj8GYBhf+bW1tYG/EZAIOL9A0Za53dlZTgs8nXE1P5+PNzYCE0CTvjB/ej6csTgfvx8sbcAdEESAL4Nse+bzWYsWrTIt/i0VquV5cl/b2RPAMrKyjoJIT/xLtPpdJg9e3bIbcT7B4xGnT5C8BOLBV0izwOUtrVhtc/zAKytM/fj68sRg/vx9aVeAeDbkDL866+/HgaDYVgZIeTHlZWVXZKCRQHZEwAAMBgMvwZwxLvMZrMhMzMzaF0WfsBoxThtMuGnVVUQq339kSOYeeZMRO1zPzF9OWJwP/6+lASAb0PK8PPy8jBv3jzf4qMGg+FJScGiRFwSgLKysj5CyL95l6nVarHLIsNg4QeMdoydeXl4fcIEP48A2LBnD/K6pCWFrI0R96MPa+vA/dj4vSK3AMQeAuQnf+X4N998s9+r75TSf431nP+BiEsCAABNTU1/BPCZd1lpaSmKi4tFfVZ+wFjEeGrqVBwcNcqvPKW/H993uUJ+95e1MeJ+/GNwX7l+uA8BxrJP3A/fLy8vR1VVlW9xg91uf0FSwCgStwRg5cqVHgD3+5bX1dVB5bPhs/IDxirGACH4SXU13Dqd37KJbjfuCGF+ANbGiPvxj8F9ZftK/BgQ98VRqVS4+eabxco3AIg8qwuTuCUAAGCz2T4E8Ip3WXZ2Nmw229C/k+US7HmjET+rrBR9HuDaY8cw79QpWfvD/dj5csTgvvJ90ZkAGf4YEPcDs2jRIowZM8a3+CWLxbJVUtAoE9cEAAAopd8B0ONdduWVV8Iow7z44dSJpf9pbi5eKSoSXbZu716ME3kegKX+c5+NGNxPDH+kiYCUsg7c/+q7N0uXLvUtvqRWqx+SFDQGxD0BsNvtXwJ4wrvMaDTiiiuukNROohyIn5k8GftEngcwejz4XkPDsOcBWOx/MvnhwNo6cJ9dX+whQL0gKGoduA+sWLECqampvsX/VV1dfVRSQzEg7gkAABiNxh/jqw/mDWG325GbmxtS/UQ5+QOAhxA8Xl2NDpHnASa43bj7wAFZ+8P9+MXgfnL70XgIMN7rkOx+QUGB2Gt/J7Va7eOSGooRTCQAlycH+hfvMpVKhbq6uqB1E/HA3WIw4L8qK0FF/gJYfOIE5jc3y9of7ssfg/vcD/QMgP9RQb4+cV+af/PNN/s91E4IeTgek/6IwUQCAABWq/UPhJBd3mUTJ05EaWlpwDqJfOCuz8nBxokTRZet278fhZ2dsvaH+/LF4D73AfEEgADQxuB7ANyPvm+321FRUeG7aKfVao3ba3++MJMAABAEQbgfGP4gfF1dnd/ECeHC4kYyEn+cNAmNWVl+5QaPB480NkIfZH6AePc/0Xw5YnA/sX0piCUAQPAvArK2zsno63Q63HjjjX6LCCEbANGXveICSwkA7Hb7dkLIi95lmZmZmDNnjp/L4o8ebV8gBP9ZVYVWr88lDzK+sxPf2rtX1v4ksy9HDO4nti+1TqAEIJrfA+B+bPwbbrjB7xk2QsjzVqv1E0kNxhimEgAAoJQ+BGDY93BnzZqFvLw8b0dqm4r12/R6PF5VBUHkeYB5p0+j7uRJWfuTjL4cMbif2H44dXoClAf6IiBr65ysfmFhIRYvXuy7uFOtVn9PUoMywFwCYLPZjhNCfuhdplKpcN1114EQwuyPHkv/s8xM/DnAFMn37duHiR0dsvYnmXw5YnA/sf1wY0i5AsDaOierr1KpsHbtWrEH/35QVVXl/9danGEuAQCApqamnwFwepcVFBSgpqZGUjusbiTh+M8XF8Ml8jyAThDwSGMjTAMDTPefBT8cWFsH7ivLjyRGqM8AsLbOyexfffXVKPKZzI0QsqupqemXkhqVCSYTgJUrV3oIIWsA9HuXz58/H6NEJskRg+WNJByfEoL/W1WFCyLPA4zp7sb6EZ4HiEV/lObLEYP73I9mjFCuALC2zsns5+TkYNmyZb7KgCAId1/+9g1zMJkAAIDVat0N4KfeZVqtduhWwEiwvJFE4rfpdAGfB7jyzBksCXF+AKWsb7R8OWJwn/vRjhEsAWBtnZPdX716NQwGg6/2E7vd3iCpYRlhNgEAgPT09B8COOhdVlRUhGnTpgWsw/pGEqm/JzMTz5eUiC775wMHUOL1PIAc/WHdlyMG9xPbD4do9KmPENHPxPHpgNnz58yZI/bO/+dut/vHkhqWGaYTgJKSkl5BEP4ZGP7e5NVXX42UlBQ/n/WNJFr+nydORH12tl+5ThDwyGefIWVgQNb+sOrLEYP7ie3LEWMkvy/IFwHl7g/3/X2z2Yyvf/3rfhoh5J65c+cGepmDCZhOAADA4XBsAfCUd5nRaPSbJpj1jSSaPiUEj1dW4pzR6LesoLsbG/btk7U/LPpyxOB+YvtyxAjmiyUAUr4HEO/+J4N/yy23IC0tzbf4t1ar9QNJjccB5hMAAFCr1d+Fz8eCKisrMWnSJADK2Eii7bu1Wvx7ZSUGRJ4HmHPmDJYePy5rf2LphwNr68B9ZflyxAjF7wnwRcB49Yf7w7FYLJg+fbpv8SkAD0tqPE4oIgGorq5uo5R+07f8+uuvh8lkktSWEjaqUP2DGRn4w+UkyJe7Dh7E1LY2pvvPSgzuc1/uGKH6Yg8CBpsKOJb94f4/SEtLw5o1a/zKCSHrbDZbu6QAcUIRCQAA2O32lwG84l2WkpKCG264IehbAYMoYaOS6v+lqAg7RD6brKEU3/vsM5j7+/2WxbI/0fTliMF97ssdQ4ofzieBWep/ovqEEKxduxbp6em+i/5itVpf8avAKIpJAABAEIR7AZz3LispKYHNZgtaVwkbVTg+BfDTigqcEXkeILenB9/duzekz4eytr5yxOB+YvvhwNo6BPokcLz6w/2vWLBgASwWi2/xuYGBgXWSAsQZRSUADofjDKX0NsD/rQDfDy94o5SNKly/U6vFf1RVYUDkYFF7/jxuOHZM1v5E6ssRg/uJ7csRQw5f7BmAQLcAWOx/IvpjxowJ9KW/O2pra89KChJnFJUAAIDdbn8bwG+9yzQaDZYvXw61Wu3nK2WjitQ/lJ6Op0tLRZet/fxzlLe1ydqfcH05YnA/sX05Ysjlh/oWAKv9TzRfq9XinnvugU6n8/V/bbVaX5cUhAE08e5AOLjd7vvNZvNsAEMzL4wePRrz58/He++9N+QpZaOKlv/XwkJMKi5GWmWl37KvqdUoycxEv9cBRY5Lqrt378ZxrzcSgsHamHJfWb4cMeT0Q3kGgOX+K9EfiZUrV6KwsNC3eD8h5MGoBZERRSYAc+fO7amvr7+VEPIJgKFUbObMmWhqasKXX37J3EYll/+xxYKq2lpRx2+zlYFjQW4/eMPqmHJfGb4cMeT2g70GyHr/leaPVKeiogJXXXWVb3GvIAg3OxyObrE6rKO4WwCD2O32BkrpD7zLCCFYtmyZ2HzMI8LaRhiJL3bJUAmwPKbcZ9+XI0Y8/JGuACih/0ryR6pjNptx1113ib1x9ojD4WiUHIgRlHm2uIzdbv8vSukm77K0tDRcf/31IbfB2kYYz8tb8YK1MeJ+fP1wYG0douWLJgCUKqb/SvGD1bnjjjuQkZHhW/yezWZ7QnIghlDkLQAvBI/Hc7tGo/kMQOZg4dSpU2Gz2eB0OkeszNpGGAvfeO4c8nfskNRuJDTPn48+szlkn4Ux4j47vhwxlOSHMw9ALPuTiH6wOgsXLhR75a9FpVLdDoh+r0kxKD0BQG1tbbPL5bqDUvpX7/IlS5bg9OnTOHXqlGg91jbCWPmpJ0+i7Pe/l9R2JJy3WEJOAFgZI+6z4csRQ2l+pAlAvPvPuh+sTnFxMVatWiW26F6LxSJ+clEQir4FMIjVan2FEPK0d5lGo8GNN96Y1F8NZBnWxoj78fXliKFEv5d/CyBmfrA6aWlpWL9+PbRa7bByQshvbTbbRsnBGCQhEgAAMBgM3wIw7DN46enpWLFixbAHN1jbCPnJn/vJ7ssRQ6k+/xZA7Bgphkqlwrp16zBq1CjfRbsppQ/EtGMyovhbAIOUlZV1NjY23uDxeHYBGJqgubi4GAsWLMD777/P3EbL4k4Ra1gbI+7H15cjRrz9cePGoaKiYkQnEFmXLmGf2z2s7JJKhSVZWWG1BwCff/45vvjii6F/x3t8IvVjEePGG2/ElClTfIvbCCErrFarIl/5EyNhEgAAqK6u/sLlct1CKX0N+McU+LNnz8apU6ewb9++EWoPh7WNnJ/8uZ9ovhwxWPBzc3NRG2BujlA4IlLm9wFaCfT09AwlACyMTyR+LGLYbDax9/0pIWSN1Wo9LK13bJMwtwAGsVqtr1NK/8O7bHB+gJG+F+ANaxs5P/lzn3U/HFhbBxbHKJawNj4snPzz8/NF3/enlP5ISV/5C5WESwAAwG63/4AQ8rZ3mV6vx4033gi9Xj9iXdY28kQ4KLG2ztyPri9HDKX7rMHa+LCwzRkMBqxfvx5G/y+rvnfkyJF/k9Y7ZZBQtwC8EHp7e7+h0+l2AZg4WJidnY3ly5fjz3/+s+jGwNpGrvSDTDiwNqbcj3+MRPM13d3IdbkktREJF8rL0ev1MBtr4xMO0e4TIQR33nknxowZ47vomMfjWbVy5UqPtB4qg0RNADBjxoyLDQ0NywVB+BiAabB86tSpmDlzJrZv3z7MZ22nkONAzBqsjSn34x8jEX3jhQuwPv64pHYiYedjj+G8/9PsIZEs29C1114Lh8PhW9wDYHlNTc0FSQEVRELeAhjEYrF8Rgi527e8rq5u2BOeLGyAkfjh1mEJ1saU+/GPkWw+ayTLNlRdXY0VK1b4lRNC7rHZbPJdqokDCZ0AAIDVan2eEPJb7zJCCFauXIkxY8YwsQFG4odbhyVYG1Puxz9GsvmskSzbUFFREe677z6ofOZbIIT8j9VqfVZSQAWS8AkAAKSlpX0LwE7vMq1Wi1WrViE9PT1ALX9Y2GCjUYclWBtT7sc/RrL5rJEs21B2djYeeOABvwfDCSEfGwyGb0sKqFCSIgEoKSnpFQRhGYBhH6dPS0vDrbfeGtLng1nYYKNRhyVYG9Nk88OBtXVQus8aLB63YuEbjUbcf//9Yn8AHunv719eVlbWJymoQkmKBAAAHA7HGULIYgCt3uW5ubm46aaboFarA9ZlYYONRh2WYG1Mk82XIwb3lUWybHNqtRrf/OY3MW7cON9F7ZTSpbW1tWclBVUwSZMAAIDVaj0gCMINAHq9y4uKirB06VLROiweBPiBhvuR+HLE4L6yYPG4FQufEII1a9aITc3cr1KpVtjt9r2SgiqcpEoAAMDhcGyhlK4GMGxrsVqtuPLKK4e5iXAgZg0WDgLJ7MsRg/vKIpm2oWXLlmHOnDki1ekdFotlk6SgCUDSJQAAYLfb/wTAb2anBQsWoKqqCkBiHIhZg5WDQLL6csTgvrJIpm1o+vTpWLZsmdiiR+12+x8lBU0QkjIBAACbzfZDAMN+dEIIbrjhBhQVFUlqi8WdiBVmtLQg/9IlZg4CyerLEYP7yiKZtqEpU6bgzjvv9JvjH8CfbDbb/5EUNIFI2gQAADUajXcC2OxdqFarsWrVKowePTq0RhjciVhieksLnvvkE/zC5cKK5mZk9AV/uJaVgwarfjiwtg7J5rMGi8etWPmFhYXYsGEDtFqtb/1NAG6Dz+3gZCJhpwIOhbKysj6n07kMwEcAhp4KMRqNWL16NX7/+9/j/PnzAeuzuBOxCKEUFe3tqGhvxz2HD6MhIwPvjR6Nj3Jy0O3z9kWsxyc1NRWFhYUxa1+qf/HiRZw6dSqmMbgfXz8RYG1MQ/VHjx6N7373uzCZTL6L9uv1+pXTpk3rlxQ4wUjqBAAAbDZbe2Nj43Uej+cTAHmD5SkpKVi9ejWefPJJtLa2+tVj8eSvhAOTilLYWltha21Fz+ef4+PsbGzKzcWuzEz0+1+eG5FwxicvLw9LliyRVC+WNDY2SkoAWNuGuB9dn0VYG6NQ/aysLDz00ENi7/qfUalUS6ZNm+Z/YE8ykj4BAIDq6uqjLpfrmsuXhIa2lrS0tKErAR0dHUM+P/lHB4PHg/lnz2L+2bNwa7XYkp2NTXl5+Cw9HTRIMpAM4+MLa9tQKP69994LjYaNw0xfXx9+9atfDf2bhfFhHdbGKFR/1KhReOSRR5CVleW7qE0QhMU2m+2YWL1kg409kwGsVquzoaFhsSAIfweQOliemZmJtWvX4sknn0RnZ2dYbbOyU7CMub8f154+jWtPn0aLXo+tOTnYnJODvenpfjfoknF8WNuGQvXT0tKYSQB6e/8x/Qcr48MyrI2RlG3uwQcfRE5Oju+ibkLIUofD0SgpcALDxp7JCBaLZUdDQ8MyQRDeADA0P3BWVhZuv/12PPXUU+ju7pbUJis7Rbz4Q1ERJkyYgPlnz2LMpUsh1cnu7cXy5mYsb25Gs8mETbm52JSbixMmU9THh1AK47lzktqMhL70dAyEMPW0N6xtQ6xvc8Hg4xMc1sYoVN9kMuE73/kOxowZ47uojxCy3Gq1bpMUOMHhCYAPFotlk8vlWkYpfQ3A0FciRo8ejVtvvRVPP/00+kJ4kh1gZ6eIJxd0OnxYVIRnioowoasLi86cQd3Zs8jq7Q1eGcDY7m7cdvQobjt6FEdNJmzOycHfR4/GqSh9v0HrdmP+HXeE1Jdo0PjAA2ieNy9kn7VtSAnb3Ejw8QkOa2MUqq/X6/HAAw9gwoQJvov6CSErrFbru5ICJwE8ARDBarW+63K5bqKUvgivMRo3bhxuv/12PPvss0GTAFZ2CpY4mpKCJ4uL8fuJE1HV2oqF585hzvnzMA8MhFR/Qnc3bj92DLceO4Y9GRnYlJuLzdnZ6PB5vQdQ5vj4wto2FA1/0osvwnxMntuvHRMn4vDXvhZ2/UjWV0MpKrq74XC7UX72LDpGqMcSStiGxNDpdPj2t7+N0tJS30UeSumtNpvtDUmBkwSeAATAarX+1eVy3UkpfRrA0BNp48ePx6pVq/D888/D4/GI1mVlp2AVAUDDqFFoGDUKT0yaBEdrK648dw5zWlpgDDCm3qgAVLW1oaqtDRu++AINGRn4e14etmVno1utVvz4AOxtQ9Hys/buRXajPLdgNd3dQJgJgNT1JZRiYk8Pqjo7Uet2Y7rbDfPlbfl4by92h9ULeVHKNuSLRqPB+vXrMWXKFN9FAoC1drv9z5ICJxE8ARgBq9X6rMvlSqGU/o93eWlpKb7xjW/ghRdewIDPX6+s7BSDnLdY8Mbf/iapTkRIfHq/X6XCx1lZ+DgrCz8TBMy4cAF1Z87A0doKjSAEDef9WuG3VSrUZ2Tg3bw8bM/OlvxaISuwtg0lW4Iaav/H9Pai1u1GTUcHajo7kR7ilSwWYW2bkPKX//r161FZWSm2+Ls2m+0PkgInGTwBCILVav2Vy+XSUkr/27u8tLQUt99+O5577rmhp4tZ2Sn8YOREGKz/vSoVNl9++t88MIAZLS2oO3sWltbWkKas1AkCZl68iJkXL6JTo8HHWVn4MDsbOzMz4WFkDILB2jbET/7/IKe/f+gv/FkdHcgL8Vkg1mFtm5Byz3/Dhg0oLy8XW/w9m832M0mBkxCeAISA1Wp9wul0ZgH4vnd5UVER1qxZgz/84Q/o6uqS1CY/sI5Mh1qNd/Py8G5eHnJ6e3FlSwvmnj+Pivb2kOqnDgyg7uxZ1J09ixa9Hluys/FhdjZCew8hPrByYJXLZw3f/mcODMDqdqPW7UZ1Zycm9vTEqWexg7VtQsrT/t/+9rcxadIkscU/stlsP5EUOEnhCUCI2Gy2Hzidzk4AwzassWPHYs2aNXj66adDTgKS/cAq1T+v1+MvY8bgL2PGYHx3N+adO4cF585hnITXClecPIkVJ0/iYFoaDkvqjTywcmCVy2cNSilMHg+mdXejpqMDtW43pnR3I9LrRj0qFY5IfO1TLljbJqS+5x9gSu/HbTbbo5ICJzE8AZCAzWZ7vL6+nhJCfgKvBwPz8/Nx11134amnnho2Y6AYsd6J9uzZg6NHj8asfalcvHhRkh+sP8dMJjw7YQKenTABE7q6hv7Kzw7xcmwoHyOSG1YOrHL5rGAQBFR2dqKmowOWri5UdHVBHeG6eAjB50YjdprN2Gk2oyE1FdNycnB9lPocLVjbJkL1MzIy8NBDD4m95w8A/2qz2fw+884JDE8AJGK32//T6XR2APgVvL6mmJOTg7vvvhtPPfVUwJOeHDuR2+2G2+2OWfss+UdMJvy2qAhPFhWhvL0d81pasODcOWT0K+f7HqyNaaKf/Kd6/YVf7XZDF2H/BUJwyGhEY0oKGlNT8bHZjC6vD1yxOD6sbROh+jk5OXjooYeQm5vr1wSA+202288lBebwBCAcbDbbb1wul5tS+iy8xnDUqFFDScA5n9nlWNmJEtEXAOxJT8ee9HT8b1ERHK2tmNfSEvJrhUqB5d9ACZg8Hjx34EDE7ZzU64f+wt9pNqPD54uWiQQr21B+fj4efvhhjBo1yneRh1J6l91uf1pSYA4AngCEjdVqfcHlcvVTSp8HMDQTjdlsxh133IFnnnkGp0+fBsDOTpQMvvdrhfpJkzDjwgVcdfYsHK2t0CrshOWNkn4DVgn3fv5JvR6NKSloSEnB9vR0nBWZeEoMJY6RN6xsQ4WFhXjwwQeRlpbmu6gPwDfsdvtGSYHqU8B2AAAXO0lEQVQ5Q/AEIAKsVutLLpfrEqX0JXh9OyA1NRV33HEHnnvuORw5ckRSm6zsdIng96pU+PDy0//mgQHMungRV6SkSIrHAiyNaTi+0rig1aIhNRU7zWZ8kpaGkyGe8L0ZaYw6Cwrw/rPPRtBDafT5nziDwso2NGXKFGzYsAEmk8l3UQ+Ar9lstjclBeYMgycAEWK1Wl/ftWvX1SqV6nUA5sFyo9GItWvX4uWXX0ZDQ0NIbbGy0yWi79Zo8E5uLg6PH4/lklqJLTpK/aZC7lep0KP66vESlsc0UWjVaOA0m7Hr8n/H9EOfAAlrfYPVoWo1evw/U8sMrGxDtbW1uOuuu6D1T8C6KKXL7Hb7+5ICc/zgCUAUcDgcW3bt2rVApVK9AyBzsFytVmPlypXIzMzEpk2bRmyDlZ0uUXylsOTcOTz06aeS6ggAuoJ8YrdLrcZITz/0qlToUwWeXslDCLp97m37/gadGo3fp5q9uaRSAQz+bl1qNZypqUMn/MNGo+h6xOLkzzqs7MdXXXUVbrrpJhD/CbzaBEG4xuFwfCwpMEcUngBECYfDscvlctVRSt8EkDdYTgjBwoULkZGRgVdffVX0+wGs7HSJ4odbRymogKAfUAr1A0ux5m1KR0xE5KSfENw7aRJcqalBp4lOxm2Ohf1Yo9Fg9erVmDNnjtjiM5TSJQ6HI7RLqpyg8AQgilitVuenn346Q61Wvwlgqvcyu92OjIwMvPDCC+jxmlGMhZ0ukfxw63ASnz6VCjvN5qBetLe5pqYmvPjiixHFiOY2ffbs2Yjbj4VvMBiwbt26QPP671OpVNdYLBZ5PiWZJPAEIMrU1NQc2bNnz6y+vr6XAQz78HtJSQnuuecePPvss2htbWVip0skP9w6HE4kBNvmWltb0draGrIvtf1E8DMzM/HAAw8Emt3vA7VavaK6urpNUmBOUEL5xgpHItOmTWs1Go1XA/ij77Lc3Fzcc889KCgokNQmCzspy364dTgcb1jbrpPBLywsxKOPPhro5P+s0WhczE/+sYFfAYgRZWVlfQBur6+vP0II+Vd4vYZsNptx9913409/+hMOhDAxCQs7Kct+uHVYYHNWFn5RWQlTkHv2KQMDw7J13/U1CsKI8xxoBAGGESZFIsDQ9+vF2geAFI8Hgaa8oZRCLwjQ+9QTFPIVRoC97ToZ/MrKSqxbtw4G/+8lUErpj+x2+2PAiM+aciKAJwCxhdrt9h86nc4jAH4HQDe4QKfT4dZbb8U777yDrVu3BtxZWNhJWfbDrcMKbRoN9kmcm4C132Ak/xFCFHGQUdKYJoJPCME111yDr33ta1D5v43SRwhZa7PZnpcUlCMZfgtABmw22x8IIYsBDLuMRQjB4sWLceutt4plwHHfSeX2w4HFPsUS1n4zpY8nwN4YJbo/+LDfP/3TP4md/FsppVdZrVZ+8pcBngDIhNVq/UClUs0CcNR32dSpU7Fu3Trk5Q29PRj3nVRuX44YSj9ZsTY+Sh9PgL0xSnQ/Pz8fjz76KBwOh9jiI4SQWXa7fbOkoJyw4QmAjFgslv2CIMwA8InvsuzsbNx7772oqKiI+04qty9HDKWfrFgbH6WPJ8DeGCW6X1NTg8cee0z0U76EkI+1Wu10q9Ua+deaOCHDEwCZcTgcZ9xu9xwAj/su0+v1uPnmm7F06VKxS2OixHunjtSXI4bST1asjY/SxxNgb4wS2VepVPj617+O++67L9Ctzt8ZDIZ5lZWV50Sqc2KIEp7PSTjmzp07AOBhl8u1l1L6WwBDX7oghGDWrFkoKCjA888/j87OzoDtKOkgEK8YSj9ZsTY+Sh9PgL0xSmTfbDbj3nvvRXl5udjiHkrpffxTvvGDXwGII1ar9XlBEGYBOOK7rKioCOvXrw/0bqyiDgLxiqH0kxVr45MI48/aOieyX1RUhMceeyzQyf+4IAhX8JN/fOEJQJxxOByNHo/HAeDvvsvS09Nx9913o7a2dli5kg4C8YrB4slHCqyNT7KNP8DeGCnJX7hwIb7//e8jOztbbPFbOp2u2uFw7JIUkBN1+C0ABqipqbkA4Gqn0/kggH+HV2Km0WiwfPlylJaW4uWXX0ZXV5ektlk8cLN0IBswmVD/L/8iqf1IaC8pCeqwND5y+CzC2hgpxTebzVi7di2sVqtoNQD/abPZHsFXH7XkxBmeALADtdlsj7tcrn2U0ucAZHgvrKiowIQJE/Diiy/i0KFDoTWYhH/JS/UFjQZnpk+XVCeWsDY+0fY7x4yBprtbUpvh0iXytHkoxHuMlOqXl5fjzjvvRGZmptjiDkLI7Var9RVJwTgxhScAjGG1Wt9obGys8Xg8fwVQ4b0sNTUVa9aswfbt2/HWW29hYITpY/nJX3mwNj6x8Pf+8z9LalNuWBgjpflarRbLly/H4sWLA729tBvAcqvV2iQpGCfm8GcAGKS6uvoLo9E4gxDi94AMIQSzZ8/GunXrkJubK1qfn/yVB2vjk2zjD7A3Rkrwx4wZg0cffRTXXHON6MmfEPJbADNsNhs/+TMIvwLAKGVlZZ0A1rpcrjcppb8DkOW9vKCgABs2bMBbb72F7du3D+2c/OQ/Mq2trfj0009j2h8pnDx5kqnxkcNnEdbGSAn+7Nmzcfvtt0On04nUQAul9A6bzfaapEAcWeEJAONYrda/7tq162NCyDOEkKu9l2k0GixduhSTJ0/Gxo0b0d7eHvP+KOHANBItLS344IMPmOlPsvkswtoYse6npaVh7dq1sFgsgfxNWq32tqqqqpOSAnFkhyTCDpwkqOrr679DCPk3eH1VcBC3242XXnoJBw8eDLlB1g803Fe+TwgB8fokcDz7RCn1W87CGCnJt1gsWLt2LdLS0sT0Xkrp9+x2+xMA/4SvEuAJgMKor6+vIIT8PwDTxJbv3r0br7zyyogzCALsH2i4n1i+HDG4Hzs/LS0Nq1atwqxZswLpByilN9vt9gZJQThxhScACmTHjh1GnU73EwDfBEB8l3d3d+Ptt9/Gzp07RXd6lg803E88X44Y3I+dX1NTg9tuuw1ms1nUJYQ8p9Fo7qmsrJQ2SQkn7vAEQMG4XK6rKKXPAhgttrypqQkvv/wyzp8/P1TG8oGG++z7csTgPht+Tk4OVq9ejYqKikDqeULIWqvV+rqkABxm4AmAwnE6nfkAfg1gmdjyvr4+vPPOO/joo48gCNIm32L1wMT9+PhyxOB+/H2VSoWrrroKK1asCPSEPwghL/f3999XW1t7VlIADlPwBCBBcLlc11FKfw1grNjykydPYuPGjWhubg6pPRYPTNyPny9HDO7H3x83bhzWrl2LiRMnBtLOUEq/abfb/yKpcQ6T8AQggXA6nekAfgRgHUQmeRIEAVu2bMG7774b11kEua8sX44Y3I+vr9FocO211+K6666DRiP6djglhDzf29u7YcaMGRclNc5hFp4AJCD19fVzCSG/AzBJbHlLSwteffVV0VcGWTswcT++vhwxuB9f32q1YtWqVQFnFgVwSKVS3WWxWLZKapjDPDwBSFA2b95sSE1NfZgQ8j2IzBsAAPv378err76Kixe/SuhZOzBxP76+HDG4Hz8/Pz8fN910EyorKwMpAwB+6na7fzh37tweSR3hKAKeACQ4LperklL6JIAaseUejwc7duzAW2+9hd7e3pDbZelAxn02YnBfGX5KSgpuuOEGLFiwINDHewCggRByp9VqdUrqBEdR8AQgCdi8ebPGbDZvAPAYAJOY09raijfffBONjY1BDySsHMi4z04M7rPvq9VqLFiwAMuWLUNKSkogrYsQ8v2mpqZfrly50iOpExzFwROAJOKzzz4b4/F4/oNSeksg58SJE3j99dfR1CT+8S4WDmTclwZrfeK+/H55eTluuukmjB0r+pIQAFAAf1GpVN+1WCzHJHWAo1h4ApCEOJ3OeQB+ASDgDB/79+/Ha6+9hpaWlqEyFg5k3JcGa33ivrz+6NGjsWLFCtTUiN4BHGyjHsAGu92+XVJwjuLhCUCS4nQ6tQDWA/hXAKJf9hgYGMCOHTuwadMmdHR0SGo/3ge+ZPfliMF9dv309HQsXboU8+bNg1qtDqSdopQ+bLfbnwf4x3uSEZ4AJDm7du0arVKpfgRgDQDRI0Vvby+2bt2KDz/8ED09wR8GVtKBMhF9OWJwn00/JSUFixcvRl1dHfR6faDqPYSQn2o0mv/g8/cnNzwB4AAAnE7nFHw1idDKQE53dzc++OADbNu2Df39/aKOUg6UierLEYP77Pk6nQ6LFi3CNddcM9IDfgDwhsfjWV9TU3NEUlBOQsITAM4wLn9g6L8wwvMBHR0d+OCDD7Bjx45hiYASDpRK8uWIwX1l+zqdDvPnz8c111yDtDTRO3mDNAiCcL/D4dgiKSAnoeEJAMePjRs3qouLi2+llD4KYHwgr6OjAx9++CE+/vhj9PX1SYrB+oE13r4cMbivXF+v12P+/PlYsmRJsBP/UUrpo5fv80v7Ghgn4eEJACcghw8f1re3t98N4F8ABJwn1O12Y9OmTdixY0dIiQDLB1YWfDlicF+ZvsFgwLx580I58Z+hlP7YZDL9rqysTFp2zkkaeALACcru3btT+vv71wF4GEBGIK+rqwvbtm3Dtm3b0N3dLeqwemBlxZcjBveV55vNZixYsACLFi1CamrqSLobwK8HBgb+vba2VtqrO5ykgycAnJDZvn272WAw3IsgiUBfXx8++eQTbN68Ga2trUPlLB5YWfLliMF9ZflZWVm4+uqrceWVV0KnE/2kxyBuAL/W6XSPT5s2rXUkkcMZhCcAHMns2bNnVG9v77cIId/CCImAx+NBQ0MDtmzZghMnTkiKwdqBmJ/8uS+nX1RUhLq6OtTW1o40Xz8AtAJ4AsDPbTZbu6QOcZIengBwwqaxsTFDEIRvUUrXA8gcyW1qasLWrVuxe/fuoAdClg7E4fhyxOB+4vmEENhsNtTV1aG0tDSYfgHAzwH8gp/4OeHCEwBOxOzfvz/10qVLdwG4H0DAycYB4OLFi9iyZQt27twpOqkQCwfiSHw5YnA/sXyTyYQrrrgCCxcuRHZ2drDmThBCfmYwGH5fVlbWKakjHI4PPAHgRA2n06mllK4ihDwEoGwkd2BgAHv37sWWLVtw5MgRAPE/EEfqyxGD+4njT5gwAXPnzsWMGTNGmrVvkMMA/sftdv927ty5wafj5HBCgCcAnFigcjqdSyml9xNCrggmHz9+HB999BEaGhpCnk+AtQO9HDG4r3xfr9ejtrYW8+fPx4QJE4K2QQjZIgjCf9vt9tfB3+PnRBmeAHBiitPptBJCNlBKvw5gxMeYL126BKfTiZ07d+L48eMBPdYO9HLE4L6y/eLiYsyePRvTp0+H0WgMVr0XwIuU0ifsdnuDpMAcjgR4AsCRhcsfHboXwN0YYVKhQU6fPo2dO3eivr4ebrd7qJy1A70cMbivTD8tLQ0zZ87EnDlzMGbMmFCqngPwG0EQ/tfhcJyRFJTDCQOeAHBk5fDhw/q2trblhJB7AMwJ5ns8Huzfvx/19fXYu3dvwI8QicFP/tyX29doNLBarZg+fTqqqqqCvcI3GGMrgN9kZGT8taSkpFdSQA4nAngCwIkb9fX1kwkhqwHciSCvEQJAf38/9u7di127duHAgQPweDwBXX7y575cPiEEJSUlmDlzJmpra0O5xA8AHZTSP6tUql9ZrdbdkjrG4UQJngBw4s7+/ftTu7u7v345GZgVSh23242GhgZ89tlnOHz48LCDNT+Zcz/WPiEEU6dOhd1uh91uh9lsDqlZAB8RQp7RaDQvVVZWdknqFIcTZXgCwGGKTz/9tFSlUt1ECLkNwIRQ6nR3d2Pfvn1oaGjAgQMHMDAwIClmvE8m3FeGP/iXvsPhQE1NDdLT00Nt8hSA59Rq9VPV1dVfSOoMhxNDeALAYZKNGzeqi4qK6gghtwBYCiAllHqXLl3C3r17sXfvXhw8eDDgR4kGUcrJh/vx8VNSUlBRUQGLxYLKyspQL+8DQCeA1wghzzU1Nb2/cuXKwPerOJw4wRMADvPs2LHDqNfrF1JKbwFwPYK8TjgIpRQnTpzA3r17sW/fPr9XC1k/+XA/Pn5OTg6qq6tRXV2NyZMnQ61Wh9qEhxDyoSAIz5lMpr/ymfo4rMMTAI6i+PTTT7PUavVKACsBXAkg5KPzhQsXcPDgQRw8eBCHDh0KenXAG1ZPVtyP3E9NTcWUKVNQUVGBsrKyUKbj9WaAUrpFpVK91Nvb+5cZM2ZclNRRDieO8ASAo1gaGhpyKKXLBEFYTghZAEAbal1KKY4fPz6UDBw5ciTgK4Ysnay4H7mv0+lQXFyMqVOnoqKiAoWFhSG9rudFHyFkkyAILwuC8GpNTc0FSR3kcBiBJwCchODyJ4qvU6lUSymldQBCeix7kIGBARw/fhyHDx/G4cOH0dTUhN7e3rifrLgfuW8wGFBaWjr0X1FRkZTL+oN0APg7pfRvGo3m9erq6japDXA4rMETAE7CsX//fl13d/eVhJBrAFwLoFhqG5RSNDc348iRIzh69CiOHDmCc+fOBa0jNQb3o+sTQpCXl4eJEyeiuLgYJSUlGDt2LAghktq6zGFK6RsA3jSZTFvLyspC+1AFh6MQeALASXicTucUQsjVAOoopVcgxDcKfOnu7h5KCJqbm9Hc3IyLF7+65cviyTAZ/MzMTBQWFqKwsBATJ07ExIkTkZIS1s8LAF0ANgN4j1L6jt1uPxRuQxyOEuAJACep2L9/v+7SpUuzACyilC4ihFgg4UFCX7q6unDixAmcOHECzc3NOH36NM6cOTPiXASsnDyV5Gu1WuTn56OgoADjxo1DYWEhxo8fH8nJHgA8AJyEkPc8Hs97KSkpO/hf+ZxkgicAnKSmsbExQxCE2YIgXEEImQPADkATSZuUUrS0tODUqVM4c+YMTp8+jXPnzuHcuXPo6pI2+ZsSTs7R9E0mE3JzczF69Gjk5+djzJgxKCgoQE5OTriX8b3pp5TWq1SqbfSr+fc/stls7ZE2yuEoFZ4AcDheXJ6WeAYhZDaA6QBqAYQ85Vswuru7cf78+aH/Wlpa0NraitbWVly8eBF9ff/4A5S1k3M0fJ1Oh6ysLGRmZmLUqFHIzs5GXl4ecnJykJOTE+lf9L60AdhJKf0EwEc6nW4Hn36Xw/kHPAHgcEZG1dDQMIVSWisIwnRCSA2Ackh45VAKXV1dQ8lAZ2cn2tvb4Xa70dnZiY6ODrS3t+PSpUvo7u5mJlnQ6/UwmUwwmUwwm81IT09Hamrq0P+bzWZkZmYiMzMz2id4b/oB7COE7ATwCYCdVqv1IL6af5/D4YjAEwAORyKXnyOooJRaVCpVNaXUAqASEl89jJSBgQF0d3ejp6cHXV1d6O3tRW9vLwYGBtDT0wNBEIYmO+ru7vY7iV+6dAkA/Ka3JYQMlZlMJqhUKhgMBmi1Wuh0OhgMBphMJhiNRphMJmg0Ed0xCQc3gM8IIY2CIDQQQhqNRuNefv+ew5EGTwA4nCjR0NBQ4PF4yggh5ZTSMkJIOYAqAKnx7ptC6QNwGMA+Sul+Qsg+QRD2OxyOAwCEOPeNw1E8PAHgcGILcTqd4wAUE0JKAJQAKKaUluCr+QmSPTnoBNBECDlMKT1MCGmilB4WBOGww+FoBr+Ez+HEDJ4AcDhxZM+ePaP6+/vHASiklI4DMI4QMlYQhAJCSB6AHAC5ACJ+BF5mBADnAZynlJ5VqVSnBEE4QQhpJoScoJQe0+l0zdOmTWuNd0c5nGSFJwAcDuNs3LhRPWHChBy1Wp1LCMnxeDyjCCEZADIIIRmCIGRc/reJEGKmlBoAGPHV1QUtgFE+TZoA6H3KegH4fh2pFV89XNcJ4BIhpIdS6gbQTSltU6lUbZTSNgBtlNI2tVrdKgjCOUEQzh89evQ8/wQuh8M2/x8Po03Bgc2JTQAAAABJRU5ErkJggg=="></image><style>@media (prefers-color-scheme: light) { :root { filter: none; } }
2
+ @media (prefers-color-scheme: dark) { :root { filter: none; } }
3
+ </style></svg>
@@ -1,19 +1,21 @@
1
1
  {
2
- "name": "",
3
- "short_name": "",
4
- "icons": [
5
- {
6
- "src": "/static/android-chrome-192x192.png",
7
- "sizes": "192x192",
8
- "type": "image/png"
9
- },
10
- {
11
- "src": "/static/android-chrome-384x384.png",
12
- "sizes": "384x384",
13
- "type": "image/png"
14
- }
15
- ],
16
- "theme_color": "#ffffff",
17
- "background_color": "#ffffff",
18
- "display": "standalone"
19
- }
2
+ "name": "MyWebSite",
3
+ "short_name": "MySite",
4
+ "icons": [
5
+ {
6
+ "src": "/static/web-app-manifest-192x192.png",
7
+ "sizes": "192x192",
8
+ "type": "image/png",
9
+ "purpose": "maskable"
10
+ },
11
+ {
12
+ "src": "/static/web-app-manifest-512x512.png",
13
+ "sizes": "512x512",
14
+ "type": "image/png",
15
+ "purpose": "maskable"
16
+ }
17
+ ],
18
+ "theme_color": "#ffffff",
19
+ "background_color": "#ffffff",
20
+ "display": "standalone"
21
+ }
@@ -44,7 +44,7 @@
44
44
  </div>
45
45
 
46
46
  <div class="col-md-8">
47
- <table class="table">
47
+ <table class="table table-sort table-arrows">
48
48
  <thead>
49
49
  <tr>
50
50
  <th style="text-align: right;">Year</th>
@@ -123,7 +123,7 @@
123
123
  </p>
124
124
  <p class="card-text"><small class="text-body-secondary"></small>{{ activity.kind }} with {{
125
125
  (activity.distance_km)|round(1) }} km in {{
126
- activity.elapsed_time }} on {{ activity.start }}</small></p>
126
+ activity.elapsed_time|td }} on {{ activity.start|dt }}</small></p>
127
127
  </div>
128
128
  </div>
129
129
  </div>
@@ -6,17 +6,10 @@
6
6
 
7
7
  {% if latest_activities %}
8
8
  <div class="row mb-3">
9
- <div class="col-md-9">
9
+ <div class="col">
10
10
  <h2>Last 30 days</h2>
11
11
  {{ vega_direct("distance-last-30-days", distance_last_30_days_plot) }}
12
12
  </div>
13
- <div class="col-md-3">
14
- <h2>Search activities</h2>
15
- <form method="post" action="{{ url_for('search.index') }}">
16
- <input type="search" name="name" />
17
- <input type="submit" class="button" />
18
- </form>
19
- </div>
20
13
  </div>
21
14
 
22
15
 
@@ -56,8 +49,8 @@
56
49
  <h5 class="card-title">{{ elem.activity["name"] }}</h5>
57
50
  </a>
58
51
  <p class="card-text">{{ elem.activity.kind }} with {{ (elem.activity.distance_km)|round(1) }} km in {{
59
- elem.activity.elapsed_time }}</p>
60
- <p class="card-text"><small class="text-body-secondary">{{ elem.activity.start }}</small></p>
52
+ elem.activity.elapsed_time|td }}</p>
53
+ <p class="card-text"><small class="text-body-secondary">{{ elem.activity.start|dt }}</small></p>
61
54
  </div>
62
55
  </div>
63
56
  </div>
@@ -32,16 +32,15 @@
32
32
  <script src="https://cdn.jsdelivr.net/npm/vega-lite@4"></script>
33
33
  <script src="https://cdn.jsdelivr.net/npm/vega-embed@6"></script>
34
34
 
35
-
36
35
  <script src="/static/bootstrap-dark-mode.js"></script>
37
36
 
37
+ <script src="https://cdn.jsdelivr.net/npm/table-sort-js/table-sort.min.js"></script>
38
38
 
39
39
  <!-- Favicon. -->
40
40
  <link rel="apple-touch-icon" sizes="180x180" href="/static/apple-touch-icon.png">
41
41
  <link rel="icon" type="image/png" sizes="32x32" href="/static/favicon-32x32.png">
42
42
  <link rel="icon" type="image/png" sizes="16x16" href="/static/favicon-16x16.png">
43
43
  <link rel="manifest" href="/static/site.webmanifest">
44
- <link rel="mask-icon" href="/static/safari-pinned-tab.svg" color="#5bbad5">
45
44
  <link rel="shortcut icon" href="/static/favicon.ico">
46
45
  <meta name="msapplication-TileColor" content="#da532c">
47
46
  <meta name="msapplication-config" content="/static/browserconfig.xml">
@@ -69,7 +68,8 @@
69
68
  </a>
70
69
  <ul class="dropdown-menu">
71
70
  <li><a class="dropdown-item" href="{{ url_for('calendar.index') }}">Calendar</a></li>
72
- {# <li><a class="dropdown-item" href="{{ url_for('search.index') }}">Search</a></li> #}
71
+ <li><a class="dropdown-item" href="{{ url_for('search.index') }}">Overview & Search</a>
72
+ </li>
73
73
  </ul>
74
74
  </li>
75
75
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geo-activity-playground
3
- Version: 0.29.2
3
+ Version: 0.31.0
4
4
  Summary: Analysis of geo data activities like rides, runs or hikes.
5
5
  License: MIT
6
6
  Author: Martin Ueding