summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_nntplib.py
blob: ae3618ffbca75f057bde6257cbe15980ea8ef933 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
import io
import socket
import datetime
import textwrap
import unittest
import functools
import contextlib
from test import support
from nntplib import NNTP, GroupInfo
import nntplib
from unittest.mock import patch
try:
    import ssl
except ImportError:
    ssl = None

TIMEOUT = 30

# TODO:
# - test the `file` arg to more commands
# - test error conditions
# - test auth and `usenetrc`


class NetworkedNNTPTestsMixin:

    def test_welcome(self):
        welcome = self.server.getwelcome()
        self.assertEqual(str, type(welcome))

    def test_help(self):
        resp, lines = self.server.help()
        self.assertTrue(resp.startswith("100 "), resp)
        for line in lines:
            self.assertEqual(str, type(line))

    def test_list(self):
        resp, groups = self.server.list()
        if len(groups) > 0:
            self.assertEqual(GroupInfo, type(groups[0]))
            self.assertEqual(str, type(groups[0].group))

    def test_list_active(self):
        resp, groups = self.server.list(self.GROUP_PAT)
        if len(groups) > 0:
            self.assertEqual(GroupInfo, type(groups[0]))
            self.assertEqual(str, type(groups[0].group))

    def test_unknown_command(self):
        with self.assertRaises(nntplib.NNTPPermanentError) as cm:
            self.server._shortcmd("XYZZY")
        resp = cm.exception.response
        self.assertTrue(resp.startswith("500 "), resp)

    def test_newgroups(self):
        # gmane gets a constant influx of new groups.  In order not to stress
        # the server too much, we choose a recent date in the past.
        dt = datetime.date.today() - datetime.timedelta(days=7)
        resp, groups = self.server.newgroups(dt)
        if len(groups) > 0:
            self.assertIsInstance(groups[0], GroupInfo)
            self.assertIsInstance(groups[0].group, str)

    def test_description(self):
        def _check_desc(desc):
            # Sanity checks
            self.assertIsInstance(desc, str)
            self.assertNotIn(self.GROUP_NAME, desc)
        desc = self.server.description(self.GROUP_NAME)
        _check_desc(desc)
        # Another sanity check
        self.assertIn("Python", desc)
        # With a pattern
        desc = self.server.description(self.GROUP_PAT)
        _check_desc(desc)
        # Shouldn't exist
        desc = self.server.description("zk.brrtt.baz")
        self.assertEqual(desc, '')

    def test_descriptions(self):
        resp, descs = self.server.descriptions(self.GROUP_PAT)
        # 215 for LIST NEWSGROUPS, 282 for XGTITLE
        self.assertTrue(
            resp.startswith("215 ") or resp.startswith("282 "), resp)
        self.assertIsInstance(descs, dict)
        desc = descs[self.GROUP_NAME]
        self.assertEqual(desc, self.server.description(self.GROUP_NAME))

    def test_group(self):
        result = self.server.group(self.GROUP_NAME)
        self.assertEqual(5, len(result))
        resp, count, first, last, group = result
        self.assertEqual(group, self.GROUP_NAME)
        self.assertIsInstance(count, int)
        self.assertIsInstance(first, int)
        self.assertIsInstance(last, int)
        self.assertLessEqual(first, last)
        self.assertTrue(resp.startswith("211 "), resp)

    def test_date(self):
        resp, date = self.server.date()
        self.assertIsInstance(date, datetime.datetime)
        # Sanity check
        self.assertGreaterEqual(date.year, 1995)
        self.assertLessEqual(date.year, 2030)

    def _check_art_dict(self, art_dict):
        # Some sanity checks for a field dictionary returned by OVER / XOVER
        self.assertIsInstance(art_dict, dict)
        # NNTP has 7 mandatory fields
        self.assertGreaterEqual(art_dict.keys(),
            {"subject", "from", "date", "message-id",
             "references", ":bytes", ":lines"}
            )
        for v in art_dict.values():
            self.assertIsInstance(v, (str, type(None)))

    def test_xover(self):
        resp, count, first, last, name = self.server.group(self.GROUP_NAME)
        resp, lines = self.server.xover(last - 5, last)
        if len(lines) == 0:
            self.skipTest("no articles retrieved")
        # The 'last' article is not necessarily part of the output (cancelled?)
        art_num, art_dict = lines[0]
        self.assertGreaterEqual(art_num, last - 5)
        self.assertLessEqual(art_num, last)
        self._check_art_dict(art_dict)

    def test_over(self):
        resp, count, first, last, name = self.server.group(self.GROUP_NAME)
        start = last - 10
        # The "start-" article range form
        resp, lines = self.server.over((start, None))
        art_num, art_dict = lines[0]
        self._check_art_dict(art_dict)
        # The "start-end" article range form
        resp, lines = self.server.over((start, last))
        art_num, art_dict = lines[-1]
        # The 'last' article is not necessarily part of the output (cancelled?)
        self.assertGreaterEqual(art_num, start)
        self.assertLessEqual(art_num, last)
        self._check_art_dict(art_dict)
        # XXX The "message_id" form is unsupported by gmane
        # 503 Overview by message-ID unsupported

    def test_xhdr(self):
        resp, count, first, last, name = self.server.group(self.GROUP_NAME)
        resp, lines = self.server.xhdr('subject', last)
        for line in lines:
            self.assertEqual(str, type(line[1]))

    def check_article_resp(self, resp, article, art_num=None):
        self.assertIsInstance(article, nntplib.ArticleInfo)
        if art_num is not None:
            self.assertEqual(article.number, art_num)
        for line in article.lines:
            self.assertIsInstance(line, bytes)
        # XXX this could exceptionally happen...
        self.assertNotIn(article.lines[-1], (b".", b".\n", b".\r\n"))

    def test_article_head_body(self):
        resp, count, first, last, name = self.server.group(self.GROUP_NAME)
        # Try to find an available article
        for art_num in (last, first, last - 1):
            try:
                resp, head = self.server.head(art_num)
            except nntplib.NNTPTemporaryError as e:
                if not e.response.startswith("423 "):
                    raise
                # "423 No such article" => choose another one
                continue
            break
        else:
            self.skipTest("could not find a suitable article number")
        self.assertTrue(resp.startswith("221 "), resp)
        self.check_article_resp(resp, head, art_num)
        resp, body = self.server.body(art_num)
        self.assertTrue(resp.startswith("222 "), resp)
        self.check_article_resp(resp, body, art_num)
        resp, article = self.server.article(art_num)
        self.assertTrue(resp.startswith("220 "), resp)
        self.check_article_resp(resp, article, art_num)
        # Tolerate running the tests from behind a NNTP virus checker
        blacklist = lambda line: line.startswith(b'X-Antivirus')
        filtered_head_lines = [line for line in head.lines
                               if not blacklist(line)]
        filtered_lines = [line for line in article.lines
                          if not blacklist(line)]
        self.assertEqual(filtered_lines, filtered_head_lines + [b''] + body.lines)

    def test_capabilities(self):
        # The server under test implements NNTP version 2 and has a
        # couple of well-known capabilities. Just sanity check that we
        # got them.
        def _check_caps(caps):
            caps_list = caps['LIST']
            self.assertIsInstance(caps_list, (list, tuple))
            self.assertIn('OVERVIEW.FMT', caps_list)
        self.assertGreaterEqual(self.server.nntp_version, 2)
        _check_caps(self.server.getcapabilities())
        # This re-emits the command
        resp, caps = self.server.capabilities()
        _check_caps(caps)

    @unittest.skipUnless(ssl, 'requires SSL support')
    def test_starttls(self):
        file = self.server.file
        sock = self.server.sock
        try:
            self.server.starttls()
        except nntplib.NNTPPermanentError:
            self.skipTest("STARTTLS not supported by server.")
        else:
            # Check that the socket and internal pseudo-file really were
            # changed.
            self.assertNotEqual(file, self.server.file)
            self.assertNotEqual(sock, self.server.sock)
            # Check that the new socket really is an SSL one
            self.assertIsInstance(self.server.sock, ssl.SSLSocket)
            # Check that trying starttls when it's already active fails.
            self.assertRaises(ValueError, self.server.starttls)

    def test_zlogin(self):
        # This test must be the penultimate because further commands will be
        # refused.
        baduser = "notarealuser"
        badpw = "notarealpassword"
        # Check that bogus credentials cause failure
        self.assertRaises(nntplib.NNTPError, self.server.login,
                          user=baduser, password=badpw, usenetrc=False)
        # FIXME: We should check that correct credentials succeed, but that
        # would require valid details for some server somewhere to be in the
        # test suite, I think. Gmane is anonymous, at least as used for the
        # other tests.

    def test_zzquit(self):
        # This test must be called last, hence the name
        cls = type(self)
        try:
            self.server.quit()
        finally:
            cls.server = None

    @classmethod
    def wrap_methods(cls):
        # Wrap all methods in a transient_internet() exception catcher
        # XXX put a generic version in test.support?
        def wrap_meth(meth):
            @functools.wraps(meth)
            def wrapped(self):
                with support.transient_internet(self.NNTP_HOST):
                    meth(self)
            return wrapped
        for name in dir(cls):
            if not name.startswith('test_'):
                continue
            meth = getattr(cls, name)
            if not callable(meth):
                continue
            # Need to use a closure so that meth remains bound to its current
            # value
            setattr(cls, name, wrap_meth(meth))

    def test_with_statement(self):
        def is_connected():
            if not hasattr(server, 'file'):
                return False
            try:
                server.help()
            except (OSError, EOFError):
                return False
            return True

        with self.NNTP_CLASS(self.NNTP_HOST, timeout=TIMEOUT, usenetrc=False) as server:
            self.assertTrue(is_connected())
            self.assertTrue(server.help())
        self.assertFalse(is_connected())

        with self.NNTP_CLASS(self.NNTP_HOST, timeout=TIMEOUT, usenetrc=False) as server:
            server.quit()
        self.assertFalse(is_connected())


NetworkedNNTPTestsMixin.wrap_methods()


class NetworkedNNTPTests(NetworkedNNTPTestsMixin, unittest.TestCase):
    # This server supports STARTTLS (gmane doesn't)
    NNTP_HOST = 'news.trigofacile.com'
    GROUP_NAME = 'fr.comp.lang.python'
    GROUP_PAT = 'fr.comp.lang.*'

    NNTP_CLASS = NNTP

    @classmethod
    def setUpClass(cls):
        support.requires("network")
        with support.transient_internet(cls.NNTP_HOST):
            cls.server = cls.NNTP_CLASS(cls.NNTP_HOST, timeout=TIMEOUT, usenetrc=False)

    @classmethod
    def tearDownClass(cls):
        if cls.server is not None:
            cls.server.quit()

@unittest.skipUnless(ssl, 'requires SSL support')
class NetworkedNNTP_SSLTests(NetworkedNNTPTests):

    # Technical limits for this public NNTP server (see http://www.aioe.org):
    # "Only two concurrent connections per IP address are allowed and
    # 400 connections per day are accepted from each IP address."

    NNTP_HOST = 'nntp.aioe.org'
    GROUP_NAME = 'comp.lang.python'
    GROUP_PAT = 'comp.lang.*'

    NNTP_CLASS = getattr(nntplib, 'NNTP_SSL', None)

    # Disabled as it produces too much data
    test_list = None

    # Disabled as the connection will already be encrypted.
    test_starttls = None


#
# Non-networked tests using a local server (or something mocking it).
#

class _NNTPServerIO(io.RawIOBase):
    """A raw IO object allowing NNTP commands to be received and processed
    by a handler.  The handler can push responses which can then be read
    from the IO object."""

    def __init__(self, handler):
        io.RawIOBase.__init__(self)
        # The channel from the client
        self.c2s = io.BytesIO()
        # The channel to the client
        self.s2c = io.BytesIO()
        self.handler = handler
        self.handler.start(self.c2s.readline, self.push_data)

    def readable(self):
        return True

    def writable(self):
        return True

    def push_data(self, data):
        """Push (buffer) some data to send to the client."""
        pos = self.s2c.tell()
        self.s2c.seek(0, 2)
        self.s2c.write(data)
        self.s2c.seek(pos)

    def write(self, b):
        """The client sends us some data"""
        pos = self.c2s.tell()
        self.c2s.write(b)
        self.c2s.seek(pos)
        self.handler.process_pending()
        return len(b)

    def readinto(self, buf):
        """The client wants to read a response"""
        self.handler.process_pending()
        b = self.s2c.read(len(buf))
        n = len(b)
        buf[:n] = b
        return n


def make_mock_file(handler):
    sio = _NNTPServerIO(handler)
    # Using BufferedRWPair instead of BufferedRandom ensures the file
    # isn't seekable.
    file = io.BufferedRWPair(sio, sio)
    return (sio, file)


class MockedNNTPTestsMixin:
    # Override in derived classes
    handler_class = None

    def setUp(self):
        super().setUp()
        self.make_server()

    def tearDown(self):
        super().tearDown()
        del self.server

    def make_server(self, *args, **kwargs):
        self.handler = self.handler_class()
        self.sio, file = make_mock_file(self.handler)
        self.server = nntplib._NNTPBase(file, 'test.server', *args, **kwargs)
        return self.server


class MockedNNTPWithReaderModeMixin(MockedNNTPTestsMixin):
    def setUp(self):
        super().setUp()
        self.make_server(readermode=True)


class NNTPv1Handler:
    """A handler for RFC 977"""

    welcome = "200 NNTP mock server"

    def start(self, readline, push_data):
        self.in_body = False
        self.allow_posting = True
        self._readline = readline
        self._push_data = push_data
        self._logged_in = False
        self._user_sent = False
        # Our welcome
        self.handle_welcome()

    def _decode(self, data):
        return str(data, "utf-8", "surrogateescape")

    def process_pending(self):
        if self.in_body:
            while True:
                line = self._readline()
                if not line:
                    return
                self.body.append(line)
                if line == b".\r\n":
                    break
            try:
                meth, tokens = self.body_callback
                meth(*tokens, body=self.body)
            finally:
                self.body_callback = None
                self.body = None
                self.in_body = False
        while True:
            line = self._decode(self._readline())
            if not line:
                return
            if not line.endswith("\r\n"):
                raise ValueError("line doesn't end with \\r\\n: {!r}".format(line))
            line = line[:-2]
            cmd, *tokens = line.split()
            #meth = getattr(self.handler, "handle_" + cmd.upper(), None)
            meth = getattr(self, "handle_" + cmd.upper(), None)
            if meth is None:
                self.handle_unknown()
            else:
                try:
                    meth(*tokens)
                except Exception as e:
                    raise ValueError("command failed: {!r}".format(line)) from e
                else:
                    if self.in_body:
                        self.body_callback = meth, tokens
                        self.body = []

    def expect_body(self):
        """Flag that the client is expected to post a request body"""
        self.in_body = True

    def push_data(self, data):
        """Push some binary data"""
        self._push_data(data)

    def push_lit(self, lit):
        """Push a string literal"""
        lit = textwrap.dedent(lit)
        lit = "\r\n".join(lit.splitlines()) + "\r\n"
        lit = lit.encode('utf-8')
        self.push_data(lit)

    def handle_unknown(self):
        self.push_lit("500 What?")

    def handle_welcome(self):
        self.push_lit(self.welcome)

    def handle_QUIT(self):
        self.push_lit("205 Bye!")

    def handle_DATE(self):
        self.push_lit("111 20100914001155")

    def handle_GROUP(self, group):
        if group == "fr.comp.lang.python":
            self.push_lit("211 486 761 1265 fr.comp.lang.python")
        else:
            self.push_lit("411 No such group {}".format(group))

    def handle_HELP(self):
        self.push_lit("""\
            100 Legal commands
              authinfo user Name|pass Password|generic <prog> <args>
              date
              help
            Report problems to <root@example.org>
            .""")

    def handle_STAT(self, message_spec=None):
        if message_spec is None:
            self.push_lit("412 No newsgroup selected")
        elif message_spec == "3000234":
            self.push_lit("223 3000234 <45223423@example.com>")
        elif message_spec == "<45223423@example.com>":
            self.push_lit("223 0 <45223423@example.com>")
        else:
            self.push_lit("430 No Such Article Found")

    def handle_NEXT(self):
        self.push_lit("223 3000237 <668929@example.org> retrieved")

    def handle_LAST(self):
        self.push_lit("223 3000234 <45223423@example.com> retrieved")

    def handle_LIST(self, action=None, param=None):
        if action is None:
            self.push_lit("""\
                215 Newsgroups in form "group high low flags".
                comp.lang.python 0000052340 0000002828 y
                comp.lang.python.announce 0000001153 0000000993 m
                free.it.comp.lang.python 0000000002 0000000002 y
                fr.comp.lang.python 0000001254 0000000760 y
                free.it.comp.lang.python.learner 0000000000 0000000001 y
                tw.bbs.comp.lang.python 0000000304 0000000304 y
                .""")
        elif action == "ACTIVE":
            if param == "*distutils*":
                self.push_lit("""\
                    215 Newsgroups in form "group high low flags"
                    gmane.comp.python.distutils.devel 0000014104 0000000001 m
                    gmane.comp.python.distutils.cvs 0000000000 0000000001 m
                    .""")
            else:
                self.push_lit("""\
                    215 Newsgroups in form "group high low flags"
                    .""")
        elif action == "OVERVIEW.FMT":
            self.push_lit("""\
                215 Order of fields in overview database.
                Subject:
                From:
                Date:
                Message-ID:
                References:
                Bytes:
                Lines:
                Xref:full
                .""")
        elif action == "NEWSGROUPS":
            assert param is not None
            if param == "comp.lang.python":
                self.push_lit("""\
                    215 Descriptions in form "group description".
                    comp.lang.python\tThe Python computer language.
                    .""")
            elif param == "comp.lang.python*":
                self.push_lit("""\
                    215 Descriptions in form "group description".
                    comp.lang.python.announce\tAnnouncements about the Python language. (Moderated)
                    comp.lang.python\tThe Python computer language.
                    .""")
            else:
                self.push_lit("""\
                    215 Descriptions in form "group description".
                    .""")
        else:
            self.push_lit('501 Unknown LIST keyword')

    def handle_NEWNEWS(self, group, date_str, time_str):
        # We hard code different return messages depending on passed
        # argument and date syntax.
        if (group == "comp.lang.python" and date_str == "20100913"
            and time_str == "082004"):
            # Date was passed in RFC 3977 format (NNTP "v2")
            self.push_lit("""\
                230 list of newsarticles (NNTP v2) created after Mon Sep 13 08:20:04 2010 follows
                <a4929a40-6328-491a-aaaf-cb79ed7309a2@q2g2000vbk.googlegroups.com>
                <f30c0419-f549-4218-848f-d7d0131da931@y3g2000vbm.googlegroups.com>
                .""")
        elif (group == "comp.lang.python" and date_str == "100913"
            and time_str == "082004"):
            # Date was passed in RFC 977 format (NNTP "v1")
            self.push_lit("""\
                230 list of newsarticles (NNTP v1) created after Mon Sep 13 08:20:04 2010 follows
                <a4929a40-6328-491a-aaaf-cb79ed7309a2@q2g2000vbk.googlegroups.com>
                <f30c0419-f549-4218-848f-d7d0131da931@y3g2000vbm.googlegroups.com>
                .""")
        elif (group == 'comp.lang.python' and
              date_str in ('20100101', '100101') and
              time_str == '090000'):
            self.push_lit('too long line' * 3000 +
                          '\n.')
        else:
            self.push_lit("""\
                230 An empty list of newsarticles follows
                .""")
        # (Note for experiments: many servers disable NEWNEWS.
        #  As of this writing, sicinfo3.epfl.ch doesn't.)

    def handle_XOVER(self, message_spec):
        if message_spec == "57-59":
            self.push_lit(
                "224 Overview information for 57-58 follows\n"
                "57\tRe: ANN: New Plone book with strong Python (and Zope) themes throughout"
                    "\tDoug Hellmann <doug.hellmann-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>"
                    "\tSat, 19 Jun 2010 18:04:08 -0400"
                    "\t<4FD05F05-F98B-44DC-8111-C6009C925F0C@gmail.com>"
                    "\t<hvalf7$ort$1@dough.gmane.org>\t7103\t16"
                    "\tXref: news.gmane.org gmane.comp.python.authors:57"
                    "\n"
                "58\tLooking for a few good bloggers"
                    "\tDoug Hellmann <doug.hellmann-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>"
                    "\tThu, 22 Jul 2010 09:14:14 -0400"
                    "\t<A29863FA-F388-40C3-AA25-0FD06B09B5BF@gmail.com>"
                    "\t\t6683\t16"
                    "\t"
                    "\n"
                # An UTF-8 overview line from fr.comp.lang.python
                "59\tRe: Message d'erreur incompréhensible (par moi)"
                    "\tEric Brunel <eric.brunel@pragmadev.nospam.com>"
                    "\tWed, 15 Sep 2010 18:09:15 +0200"
                    "\t<eric.brunel-2B8B56.18091515092010@news.wanadoo.fr>"
                    "\t<4c90ec87$0$32425$ba4acef3@reader.news.orange.fr>\t1641\t27"
                    "\tXref: saria.nerim.net fr.comp.lang.python:1265"
                    "\n"
                ".\n")
        else:
            self.push_lit("""\
                224 No articles
                .""")

    def handle_POST(self, *, body=None):
        if body is None:
            if self.allow_posting:
                self.push_lit("340 Input article; end with <CR-LF>.<CR-LF>")
                self.expect_body()
            else:
                self.push_lit("440 Posting not permitted")
        else:
            assert self.allow_posting
            self.push_lit("240 Article received OK")
            self.posted_body = body

    def handle_IHAVE(self, message_id, *, body=None):
        if body is None:
            if (self.allow_posting and
                message_id == "<i.am.an.article.you.will.want@example.com>"):
                self.push_lit("335 Send it; end with <CR-LF>.<CR-LF>")
                self.expect_body()
            else:
                self.push_lit("435 Article not wanted")
        else:
            assert self.allow_posting
            self.push_lit("235 Article transferred OK")
            self.posted_body = body

    sample_head = """\
        From: "Demo User" <nobody@example.net>
        Subject: I am just a test article
        Content-Type: text/plain; charset=UTF-8; format=flowed
        Message-ID: <i.am.an.article.you.will.want@example.com>"""

    sample_body = """\
        This is just a test article.
        ..Here is a dot-starting line.

        -- Signed by Andr\xe9."""

    sample_article = sample_head + "\n\n" + sample_body

    def handle_ARTICLE(self, message_spec=None):
        if message_spec is None:
            self.push_lit("220 3000237 <45223423@example.com>")
        elif message_spec == "<45223423@example.com>":
            self.push_lit("220 0 <45223423@example.com>")
        elif message_spec == "3000234":
            self.push_lit("220 3000234 <45223423@example.com>")
        else:
            self.push_lit("430 No Such Article Found")
            return
        self.push_lit(self.sample_article)
        self.push_lit(".")

    def handle_HEAD(self, message_spec=None):
        if message_spec is None:
            self.push_lit("221 3000237 <45223423@example.com>")
        elif message_spec == "<45223423@example.com>":
            self.push_lit("221 0 <45223423@example.com>")
        elif message_spec == "3000234":
            self.push_lit("221 3000234 <45223423@example.com>")
        else:
            self.push_lit("430 No Such Article Found")
            return
        self.push_lit(self.sample_head)
        self.push_lit(".")

    def handle_BODY(self, message_spec=None):
        if message_spec is None:
            self.push_lit("222 3000237 <45223423@example.com>")
        elif message_spec == "<45223423@example.com>":
            self.push_lit("222 0 <45223423@example.com>")
        elif message_spec == "3000234":
            self.push_lit("222 3000234 <45223423@example.com>")
        else:
            self.push_lit("430 No Such Article Found")
            return
        self.push_lit(self.sample_body)
        self.push_lit(".")

    def handle_AUTHINFO(self, cred_type, data):
        if self._logged_in:
            self.push_lit('502 Already Logged In')
        elif cred_type == 'user':
            if self._user_sent:
                self.push_lit('482 User Credential Already Sent')
            else:
                self.push_lit('381 Password Required')
                self._user_sent = True
        elif cred_type == 'pass':
            self.push_lit('281 Login Successful')
            self._logged_in = True
        else:
            raise Exception('Unknown cred type {}'.format(cred_type))


class NNTPv2Handler(NNTPv1Handler):
    """A handler for RFC 3977 (NNTP "v2")"""

    def handle_CAPABILITIES(self):
        fmt = """\
            101 Capability list:
            VERSION 2 3
            IMPLEMENTATION INN 2.5.1{}
            HDR
            LIST ACTIVE ACTIVE.TIMES DISTRIB.PATS HEADERS NEWSGROUPS OVERVIEW.FMT
            OVER
            POST
            READER
            ."""

        if not self._logged_in:
            self.push_lit(fmt.format('\n            AUTHINFO USER'))
        else:
            self.push_lit(fmt.format(''))

    def handle_MODE(self, _):
        raise Exception('MODE READER sent despite READER has been advertised')

    def handle_OVER(self, message_spec=None):
        return self.handle_XOVER(message_spec)


class CapsAfterLoginNNTPv2Handler(NNTPv2Handler):
    """A handler that allows CAPABILITIES only after login"""

    def handle_CAPABILITIES(self):
        if not self._logged_in:
            self.push_lit('480 You must log in.')
        else:
            super().handle_CAPABILITIES()


class ModeSwitchingNNTPv2Handler(NNTPv2Handler):
    """A server that starts in transit mode"""

    def __init__(self):
        self._switched = False

    def handle_CAPABILITIES(self):
        fmt = """\
            101 Capability list:
            VERSION 2 3
            IMPLEMENTATION INN 2.5.1
            HDR
            LIST ACTIVE ACTIVE.TIMES DISTRIB.PATS HEADERS NEWSGROUPS OVERVIEW.FMT
            OVER
            POST
            {}READER
            ."""
        if self._switched:
            self.push_lit(fmt.format(''))
        else:
            self.push_lit(fmt.format('MODE-'))

    def handle_MODE(self, what):
        assert not self._switched and what == 'reader'
        self._switched = True
        self.push_lit('200 Posting allowed')


class NNTPv1v2TestsMixin:

    def setUp(self):
        super().setUp()

    def test_welcome(self):
        self.assertEqual(self.server.welcome, self.handler.welcome)

    def test_authinfo(self):
        if self.nntp_version == 2:
            self.assertIn('AUTHINFO', self.server._caps)
        self.server.login('testuser', 'testpw')
        # if AUTHINFO is gone from _caps we also know that getcapabilities()
        # has been called after login as it should
        self.assertNotIn('AUTHINFO', self.server._caps)

    def test_date(self):
        resp, date = self.server.date()
        self.assertEqual(resp, "111 20100914001155")
        self.assertEqual(date, datetime.datetime(2010, 9, 14, 0, 11, 55))

    def test_quit(self):
        self.assertFalse(self.sio.closed)
        resp = self.server.quit()
        self.assertEqual(resp, "205 Bye!")
        self.assertTrue(self.sio.closed)

    def test_help(self):
        resp, help = self.server.help()
        self.assertEqual(resp, "100 Legal commands")
        self.assertEqual(help, [
            '  authinfo user Name|pass Password|generic <prog> <args>',
            '  date',
            '  help',
            'Report problems to <root@example.org>',
        ])

    def test_list(self):
        resp, groups = self.server.list()
        self.assertEqual(len(groups), 6)
        g = groups[1]
        self.assertEqual(g,
            GroupInfo("comp.lang.python.announce", "0000001153",
                      "0000000993", "m"))
        resp, groups = self.server.list("*distutils*")
        self.assertEqual(len(groups), 2)
        g = groups[0]
        self.assertEqual(g,
            GroupInfo("gmane.comp.python.distutils.devel", "0000014104",
                      "0000000001", "m"))

    def test_stat(self):
        resp, art_num, message_id = self.server.stat(3000234)
        self.assertEqual(resp, "223 3000234 <45223423@example.com>")
        self.assertEqual(art_num, 3000234)
        self.assertEqual(message_id, "<45223423@example.com>")
        resp, art_num, message_id = self.server.stat("<45223423@example.com>")
        self.assertEqual(resp, "223 0 <45223423@example.com>")
        self.assertEqual(art_num, 0)
        self.assertEqual(message_id, "<45223423@example.com>")
        with self.assertRaises(nntplib.NNTPTemporaryError) as cm:
            self.server.stat("<non.existent.id>")
        self.assertEqual(cm.exception.response, "430 No Such Article Found")
        with self.assertRaises(nntplib.NNTPTemporaryError) as cm:
            self.server.stat()
        self.assertEqual(cm.exception.response, "412 No newsgroup selected")

    def test_next(self):
        resp, art_num, message_id = self.server.next()
        self.assertEqual(resp, "223 3000237 <668929@example.org> retrieved")
        self.assertEqual(art_num, 3000237)
        self.assertEqual(message_id, "<668929@example.org>")

    def test_last(self):
        resp, art_num, message_id = self.server.last()
        self.assertEqual(resp, "223 3000234 <45223423@example.com> retrieved")
        self.assertEqual(art_num, 3000234)
        self.assertEqual(message_id, "<45223423@example.com>")

    def test_description(self):
        desc = self.server.description("comp.lang.python")
        self.assertEqual(desc, "The Python computer language.")
        desc = self.server.description("comp.lang.pythonx")
        self.assertEqual(desc, "")

    def test_descriptions(self):
        resp, groups = self.server.descriptions("comp.lang.python")
        self.assertEqual(resp, '215 Descriptions in form "group description".')
        self.assertEqual(groups, {
            "comp.lang.python": "The Python computer language.",
            })
        resp, groups = self.server.descriptions("comp.lang.python*")
        self.assertEqual(groups, {
            "comp.lang.python": "The Python computer language.",
            "comp.lang.python.announce": "Announcements about the Python language. (Moderated)",
            })
        resp, groups = self.server.descriptions("comp.lang.pythonx")
        self.assertEqual(groups, {})

    def test_group(self):
        resp, count, first, last, group = self.server.group("fr.comp.lang.python")
        self.assertTrue(resp.startswith("211 "), resp)
        self.assertEqual(first, 761)
        self.assertEqual(last, 1265)
        self.assertEqual(count, 486)
        self.assertEqual(group, "fr.comp.lang.python")
        with self.assertRaises(nntplib.NNTPTemporaryError) as cm:
            self.server.group("comp.lang.python.devel")
        exc = cm.exception
        self.assertTrue(exc.response.startswith("411 No such group"),
                        exc.response)

    def test_newnews(self):
        # NEWNEWS comp.lang.python [20]100913 082004
        dt = datetime.datetime(2010, 9, 13, 8, 20, 4)
        resp, ids = self.server.newnews("comp.lang.python", dt)
        expected = (
            "230 list of newsarticles (NNTP v{0}) "
            "created after Mon Sep 13 08:20:04 2010 follows"
            ).format(self.nntp_version)
        self.assertEqual(resp, expected)
        self.assertEqual(ids, [
            "<a4929a40-6328-491a-aaaf-cb79ed7309a2@q2g2000vbk.googlegroups.com>",
            "<f30c0419-f549-4218-848f-d7d0131da931@y3g2000vbm.googlegroups.com>",
            ])
        # NEWNEWS fr.comp.lang.python [20]100913 082004
        dt = datetime.datetime(2010, 9, 13, 8, 20, 4)
        resp, ids = self.server.newnews("fr.comp.lang.python", dt)
        self.assertEqual(resp, "230 An empty list of newsarticles follows")
        self.assertEqual(ids, [])

    def _check_article_body(self, lines):
        self.assertEqual(len(lines), 4)
        self.assertEqual(lines[-1].decode('utf-8'), "-- Signed by André.")
        self.assertEqual(lines[-2], b"")
        self.assertEqual(lines[-3], b".Here is a dot-starting line.")
        self.assertEqual(lines[-4], b"This is just a test article.")

    def _check_article_head(self, lines):
        self.assertEqual(len(lines), 4)
        self.assertEqual(lines[0], b'From: "Demo User" <nobody@example.net>')
        self.assertEqual(lines[3], b"Message-ID: <i.am.an.article.you.will.want@example.com>")

    def _check_article_data(self, lines):
        self.assertEqual(len(lines), 9)
        self._check_article_head(lines[:4])
        self._check_article_body(lines[-4:])
        self.assertEqual(lines[4], b"")

    def test_article(self):
        # ARTICLE
        resp, info = self.server.article()
        self.assertEqual(resp, "220 3000237 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000237)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_data(lines)
        # ARTICLE num
        resp, info = self.server.article(3000234)
        self.assertEqual(resp, "220 3000234 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000234)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_data(lines)
        # ARTICLE id
        resp, info = self.server.article("<45223423@example.com>")
        self.assertEqual(resp, "220 0 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 0)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_data(lines)
        # Non-existent id
        with self.assertRaises(nntplib.NNTPTemporaryError) as cm:
            self.server.article("<non-existent@example.com>")
        self.assertEqual(cm.exception.response, "430 No Such Article Found")

    def test_article_file(self):
        # With a "file" argument
        f = io.BytesIO()
        resp, info = self.server.article(file=f)
        self.assertEqual(resp, "220 3000237 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000237)
        self.assertEqual(message_id, "<45223423@example.com>")
        self.assertEqual(lines, [])
        data = f.getvalue()
        self.assertTrue(data.startswith(
            b'From: "Demo User" <nobody@example.net>\r\n'
            b'Subject: I am just a test article\r\n'
            ), ascii(data))
        self.assertTrue(data.endswith(
            b'This is just a test article.\r\n'
            b'.Here is a dot-starting line.\r\n'
            b'\r\n'
            b'-- Signed by Andr\xc3\xa9.\r\n'
            ), ascii(data))

    def test_head(self):
        # HEAD
        resp, info = self.server.head()
        self.assertEqual(resp, "221 3000237 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000237)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_head(lines)
        # HEAD num
        resp, info = self.server.head(3000234)
        self.assertEqual(resp, "221 3000234 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000234)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_head(lines)
        # HEAD id
        resp, info = self.server.head("<45223423@example.com>")
        self.assertEqual(resp, "221 0 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 0)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_head(lines)
        # Non-existent id
        with self.assertRaises(nntplib.NNTPTemporaryError) as cm:
            self.server.head("<non-existent@example.com>")
        self.assertEqual(cm.exception.response, "430 No Such Article Found")

    def test_head_file(self):
        f = io.BytesIO()
        resp, info = self.server.head(file=f)
        self.assertEqual(resp, "221 3000237 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000237)
        self.assertEqual(message_id, "<45223423@example.com>")
        self.assertEqual(lines, [])
        data = f.getvalue()
        self.assertTrue(data.startswith(
            b'From: "Demo User" <nobody@example.net>\r\n'
            b'Subject: I am just a test article\r\n'
            ), ascii(data))
        self.assertFalse(data.endswith(
            b'This is just a test article.\r\n'
            b'.Here is a dot-starting line.\r\n'
            b'\r\n'
            b'-- Signed by Andr\xc3\xa9.\r\n'
            ), ascii(data))

    def test_body(self):
        # BODY
        resp, info = self.server.body()
        self.assertEqual(resp, "222 3000237 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000237)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_body(lines)
        # BODY num
        resp, info = self.server.body(3000234)
        self.assertEqual(resp, "222 3000234 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000234)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_body(lines)
        # BODY id
        resp, info = self.server.body("<45223423@example.com>")
        self.assertEqual(resp, "222 0 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 0)
        self.assertEqual(message_id, "<45223423@example.com>")
        self._check_article_body(lines)
        # Non-existent id
        with self.assertRaises(nntplib.NNTPTemporaryError) as cm:
            self.server.body("<non-existent@example.com>")
        self.assertEqual(cm.exception.response, "430 No Such Article Found")

    def test_body_file(self):
        f = io.BytesIO()
        resp, info = self.server.body(file=f)
        self.assertEqual(resp, "222 3000237 <45223423@example.com>")
        art_num, message_id, lines = info
        self.assertEqual(art_num, 3000237)
        self.assertEqual(message_id, "<45223423@example.com>")
        self.assertEqual(lines, [])
        data = f.getvalue()
        self.assertFalse(data.startswith(
            b'From: "Demo User" <nobody@example.net>\r\n'
            b'Subject: I am just a test article\r\n'
            ), ascii(data))
        self.assertTrue(data.endswith(
            b'This is just a test article.\r\n'
            b'.Here is a dot-starting line.\r\n'
            b'\r\n'
            b'-- Signed by Andr\xc3\xa9.\r\n'
            ), ascii(data))

    def check_over_xover_resp(self, resp, overviews):
        self.assertTrue(resp.startswith("224 "), resp)
        self.assertEqual(len(overviews), 3)
        art_num, over = overviews[0]
        self.assertEqual(art_num, 57)
        self.assertEqual(over, {
            "from": "Doug Hellmann <doug.hellmann-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>",
            "subject": "Re: ANN: New Plone book with strong Python (and Zope) themes throughout",
            "date": "Sat, 19 Jun 2010 18:04:08 -0400",
            "message-id": "<4FD05F05-F98B-44DC-8111-C6009C925F0C@gmail.com>",
            "references": "<hvalf7$ort$1@dough.gmane.org>",
            ":bytes": "7103",
            ":lines": "16",
            "xref": "news.gmane.org gmane.comp.python.authors:57"
            })
        art_num, over = overviews[1]
        self.assertEqual(over["xref"], None)
        art_num, over = overviews[2]
        self.assertEqual(over["subject"],
                         "Re: Message d'erreur incompréhensible (par moi)")

    def test_xover(self):
        resp, overviews = self.server.xover(57, 59)
        self.check_over_xover_resp(resp, overviews)

    def test_over(self):
        # In NNTP "v1", this will fallback on XOVER
        resp, overviews = self.server.over((57, 59))
        self.check_over_xover_resp(resp, overviews)

    sample_post = (
        b'From: "Demo User" <nobody@example.net>\r\n'
        b'Subject: I am just a test article\r\n'
        b'Content-Type: text/plain; charset=UTF-8; format=flowed\r\n'
        b'Message-ID: <i.am.an.article.you.will.want@example.com>\r\n'
        b'\r\n'
        b'This is just a test article.\r\n'
        b'.Here is a dot-starting line.\r\n'
        b'\r\n'
        b'-- Signed by Andr\xc3\xa9.\r\n'
    )

    def _check_posted_body(self):
        # Check the raw body as received by the server
        lines = self.handler.posted_body
        # One additional line for the "." terminator
        self.assertEqual(len(lines), 10)
        self.assertEqual(lines[-1], b'.\r\n')
        self.assertEqual(lines[-2], b'-- Signed by Andr\xc3\xa9.\r\n')
        self.assertEqual(lines[-3], b'\r\n')
        self.assertEqual(lines[-4], b'..Here is a dot-starting line.\r\n')
        self.assertEqual(lines[0], b'From: "Demo User" <nobody@example.net>\r\n')

    def _check_post_ihave_sub(self, func, *args, file_factory):
        # First the prepared post with CRLF endings
        post = self.sample_post
        func_args = args + (file_factory(post),)
        self.handler.posted_body = None
        resp = func(*func_args)
        self._check_posted_body()
        # Then the same post with "normal" line endings - they should be
        # converted by NNTP.post and NNTP.ihave.
        post = self.sample_post.replace(b"\r\n", b"\n")
        func_args = args + (file_factory(post),)
        self.handler.posted_body = None
        resp = func(*func_args)
        self._check_posted_body()
        return resp

    def check_post_ihave(self, func, success_resp, *args):
        # With a bytes object
        resp = self._check_post_ihave_sub(func, *args, file_factory=bytes)
        self.assertEqual(resp, success_resp)
        # With a bytearray object
        resp = self._check_post_ihave_sub(func, *args, file_factory=bytearray)
        self.assertEqual(resp, success_resp)
        # With a file object
        resp = self._check_post_ihave_sub(func, *args, file_factory=io.BytesIO)
        self.assertEqual(resp, success_resp)
        # With an iterable of terminated lines
        def iterlines(b):
            return iter(b.splitlines(keepends=True))
        resp = self._check_post_ihave_sub(func, *args, file_factory=iterlines)
        self.assertEqual(resp, success_resp)
        # With an iterable of non-terminated lines
        def iterlines(b):
            return iter(b.splitlines(keepends=False))
        resp = self._check_post_ihave_sub(func, *args, file_factory=iterlines)
        self.assertEqual(resp, success_resp)

    def test_post(self):
        self.check_post_ihave(self.server.post, "240 Article received OK")
        self.handler.allow_posting = False
        with self.assertRaises(nntplib.NNTPTemporaryError) as cm:
            self.server.post(self.sample_post)
        self.assertEqual(cm.exception.response,
                         "440 Posting not permitted")

    def test_ihave(self):
        self.check_post_ihave(self.server.ihave, "235 Article transferred OK",
                              "<i.am.an.article.you.will.want@example.com>")
        with self.assertRaises(nntplib.NNTPTemporaryError) as cm:
            self.server.ihave("<another.message.id>", self.sample_post)
        self.assertEqual(cm.exception.response,
                         "435 Article not wanted")

    def test_too_long_lines(self):
        dt = datetime.datetime(2010, 1, 1, 9, 0, 0)
        self.assertRaises(nntplib.NNTPDataError,
                          self.server.newnews, "comp.lang.python", dt)


class NNTPv1Tests(NNTPv1v2TestsMixin, MockedNNTPTestsMixin, unittest.TestCase):
    """Tests an NNTP v1 server (no capabilities)."""

    nntp_version = 1
    handler_class = NNTPv1Handler

    def test_caps(self):
        caps = self.server.getcapabilities()
        self.assertEqual(caps, {})
        self.assertEqual(self.server.nntp_version, 1)
        self.assertEqual(self.server.nntp_implementation, None)


class NNTPv2Tests(NNTPv1v2TestsMixin, MockedNNTPTestsMixin, unittest.TestCase):
    """Tests an NNTP v2 server (with capabilities)."""

    nntp_version = 2
    handler_class = NNTPv2Handler

    def test_caps(self):
        caps = self.server.getcapabilities()
        self.assertEqual(caps, {
            'VERSION': ['2', '3'],
            'IMPLEMENTATION': ['INN', '2.5.1'],
            'AUTHINFO': ['USER'],
            'HDR': [],
            'LIST': ['ACTIVE', 'ACTIVE.TIMES', 'DISTRIB.PATS',
                     'HEADERS', 'NEWSGROUPS', 'OVERVIEW.FMT'],
            'OVER': [],
            'POST': [],
            'READER': [],
            })
        self.assertEqual(self.server.nntp_version, 3)
        self.assertEqual(self.server.nntp_implementation, 'INN 2.5.1')


class CapsAfterLoginNNTPv2Tests(MockedNNTPTestsMixin, unittest.TestCase):
    """Tests a probably NNTP v2 server with capabilities only after login."""

    nntp_version = 2
    handler_class = CapsAfterLoginNNTPv2Handler

    def test_caps_only_after_login(self):
        self.assertEqual(self.server._caps, {})
        self.server.login('testuser', 'testpw')
        self.assertIn('VERSION', self.server._caps)


class SendReaderNNTPv2Tests(MockedNNTPWithReaderModeMixin,
        unittest.TestCase):
    """Same tests as for v2 but we tell NTTP to send MODE READER to a server
    that isn't in READER mode by default."""

    nntp_version = 2
    handler_class = ModeSwitchingNNTPv2Handler

    def test_we_are_in_reader_mode_after_connect(self):
        self.assertIn('READER', self.server._caps)


class MiscTests(unittest.TestCase):

    def test_decode_header(self):
        def gives(a, b):
            self.assertEqual(nntplib.decode_header(a), b)
        gives("" , "")
        gives("a plain header", "a plain header")
        gives(" with extra  spaces ", " with extra  spaces ")
        gives("=?ISO-8859-15?Q?D=E9buter_en_Python?=", "Débuter en Python")
        gives("=?utf-8?q?Re=3A_=5Bsqlite=5D_probl=C3=A8me_avec_ORDER_BY_sur_des_cha?="
              " =?utf-8?q?=C3=AEnes_de_caract=C3=A8res_accentu=C3=A9es?=",
              "Re: [sqlite] problème avec ORDER BY sur des chaînes de caractères accentuées")
        gives("Re: =?UTF-8?B?cHJvYmzDqG1lIGRlIG1hdHJpY2U=?=",
              "Re: problème de matrice")
        # A natively utf-8 header (found in the real world!)
        gives("Re: Message d'erreur incompréhensible (par moi)",
              "Re: Message d'erreur incompréhensible (par moi)")

    def test_parse_overview_fmt(self):
        # The minimal (default) response
        lines = ["Subject:", "From:", "Date:", "Message-ID:",
                 "References:", ":bytes", ":lines"]
        self.assertEqual(nntplib._parse_overview_fmt(lines),
            ["subject", "from", "date", "message-id", "references",
             ":bytes", ":lines"])
        # The minimal response using alternative names
        lines = ["Subject:", "From:", "Date:", "Message-ID:",
                 "References:", "Bytes:", "Lines:"]
        self.assertEqual(nntplib._parse_overview_fmt(lines),
            ["subject", "from", "date", "message-id", "references",
             ":bytes", ":lines"])
        # Variations in casing
        lines = ["subject:", "FROM:", "DaTe:", "message-ID:",
                 "References:", "BYTES:", "Lines:"]
        self.assertEqual(nntplib._parse_overview_fmt(lines),
            ["subject", "from", "date", "message-id", "references",
             ":bytes", ":lines"])
        # First example from RFC 3977
        lines = ["Subject:", "From:", "Date:", "Message-ID:",
                 "References:", ":bytes", ":lines", "Xref:full",
                 "Distribution:full"]
        self.assertEqual(nntplib._parse_overview_fmt(lines),
            ["subject", "from", "date", "message-id", "references",
             ":bytes", ":lines", "xref", "distribution"])
        # Second example from RFC 3977
        lines = ["Subject:", "From:", "Date:", "Message-ID:",
                 "References:", "Bytes:", "Lines:", "Xref:FULL",
                 "Distribution:FULL"]
        self.assertEqual(nntplib._parse_overview_fmt(lines),
            ["subject", "from", "date", "message-id", "references",
             ":bytes", ":lines", "xref", "distribution"])
        # A classic response from INN
        lines = ["Subject:", "From:", "Date:", "Message-ID:",
                 "References:", "Bytes:", "Lines:", "Xref:full"]
        self.assertEqual(nntplib._parse_overview_fmt(lines),
            ["subject", "from", "date", "message-id", "references",
             ":bytes", ":lines", "xref"])

    def test_parse_overview(self):
        fmt = nntplib._DEFAULT_OVERVIEW_FMT + ["xref"]
        # First example from RFC 3977
        lines = [
            '3000234\tI am just a test article\t"Demo User" '
            '<nobody@example.com>\t6 Oct 1998 04:38:40 -0500\t'
            '<45223423@example.com>\t<45454@example.net>\t1234\t'
            '17\tXref: news.example.com misc.test:3000363',
        ]
        overview = nntplib._parse_overview(lines, fmt)
        (art_num, fields), = overview
        self.assertEqual(art_num, 3000234)
        self.assertEqual(fields, {
            'subject': 'I am just a test article',
            'from': '"Demo User" <nobody@example.com>',
            'date': '6 Oct 1998 04:38:40 -0500',
            'message-id': '<45223423@example.com>',
            'references': '<45454@example.net>',
            ':bytes': '1234',
            ':lines': '17',
            'xref': 'news.example.com misc.test:3000363',
        })
        # Second example; here the "Xref" field is totally absent (including
        # the header name) and comes out as None
        lines = [
            '3000234\tI am just a test article\t"Demo User" '
            '<nobody@example.com>\t6 Oct 1998 04:38:40 -0500\t'
            '<45223423@example.com>\t<45454@example.net>\t1234\t'
            '17\t\t',
        ]
        overview = nntplib._parse_overview(lines, fmt)
        (art_num, fields), = overview
        self.assertEqual(fields['xref'], None)
        # Third example; the "Xref" is an empty string, while "references"
        # is a single space.
        lines = [
            '3000234\tI am just a test article\t"Demo User" '
            '<nobody@example.com>\t6 Oct 1998 04:38:40 -0500\t'
            '<45223423@example.com>\t \t1234\t'
            '17\tXref: \t',
        ]
        overview = nntplib._parse_overview(lines, fmt)
        (art_num, fields), = overview
        self.assertEqual(fields['references'], ' ')
        self.assertEqual(fields['xref'], '')

    def test_parse_datetime(self):
        def gives(a, b, *c):
            self.assertEqual(nntplib._parse_datetime(a, b),
                             datetime.datetime(*c))
        # Output of DATE command
        gives("19990623135624", None, 1999, 6, 23, 13, 56, 24)
        # Variations
        gives("19990623", "135624", 1999, 6, 23, 13, 56, 24)
        gives("990623", "135624", 1999, 6, 23, 13, 56, 24)
        gives("090623", "135624", 2009, 6, 23, 13, 56, 24)

    def test_unparse_datetime(self):
        # Test non-legacy mode
        # 1) with a datetime
        def gives(y, M, d, h, m, s, date_str, time_str):
            dt = datetime.datetime(y, M, d, h, m, s)
            self.assertEqual(nntplib._unparse_datetime(dt),
                             (date_str, time_str))
            self.assertEqual(nntplib._unparse_datetime(dt, False),
                             (date_str, time_str))
        gives(1999, 6, 23, 13, 56, 24, "19990623", "135624")
        gives(2000, 6, 23, 13, 56, 24, "20000623", "135624")
        gives(2010, 6, 5, 1, 2, 3, "20100605", "010203")
        # 2) with a date
        def gives(y, M, d, date_str, time_str):
            dt = datetime.date(y, M, d)
            self.assertEqual(nntplib._unparse_datetime(dt),
                             (date_str, time_str))
            self.assertEqual(nntplib._unparse_datetime(dt, False),
                             (date_str, time_str))
        gives(1999, 6, 23, "19990623", "000000")
        gives(2000, 6, 23, "20000623", "000000")
        gives(2010, 6, 5, "20100605", "000000")

    def test_unparse_datetime_legacy(self):
        # Test legacy mode (RFC 977)
        # 1) with a datetime
        def gives(y, M, d, h, m, s, date_str, time_str):
            dt = datetime.datetime(y, M, d, h, m, s)
            self.assertEqual(nntplib._unparse_datetime(dt, True),
                             (date_str, time_str))
        gives(1999, 6, 23, 13, 56, 24, "990623", "135624")
        gives(2000, 6, 23, 13, 56, 24, "000623", "135624")
        gives(2010, 6, 5, 1, 2, 3, "100605", "010203")
        # 2) with a date
        def gives(y, M, d, date_str, time_str):
            dt = datetime.date(y, M, d)
            self.assertEqual(nntplib._unparse_datetime(dt, True),
                             (date_str, time_str))
        gives(1999, 6, 23, "990623", "000000")
        gives(2000, 6, 23, "000623", "000000")
        gives(2010, 6, 5, "100605", "000000")

    @unittest.skipUnless(ssl, 'requires SSL support')
    def test_ssl_support(self):
        self.assertTrue(hasattr(nntplib, 'NNTP_SSL'))


class PublicAPITests(unittest.TestCase):
    """Ensures that the correct values are exposed in the public API."""

    def test_module_all_attribute(self):
        self.assertTrue(hasattr(nntplib, '__all__'))
        target_api = ['NNTP', 'NNTPError', 'NNTPReplyError',
                      'NNTPTemporaryError', 'NNTPPermanentError',
                      'NNTPProtocolError', 'NNTPDataError', 'decode_header']
        if ssl is not None:
            target_api.append('NNTP_SSL')
        self.assertEqual(set(nntplib.__all__), set(target_api))

class MockSocketTests(unittest.TestCase):
    """Tests involving a mock socket object

    Used where the _NNTPServerIO file object is not enough."""

    nntp_class = nntplib.NNTP

    def check_constructor_error_conditions(
            self, handler_class,
            expected_error_type, expected_error_msg,
            login=None, password=None):

        class mock_socket_module:
            def create_connection(address, timeout):
                return MockSocket()

        class MockSocket:
            def close(self):
                nonlocal socket_closed
                socket_closed = True

            def makefile(socket, mode):
                handler = handler_class()
                _, file = make_mock_file(handler)
                files.append(file)
                return file

        socket_closed = False
        files = []
        with patch('nntplib.socket', mock_socket_module), \
             self.assertRaisesRegex(expected_error_type, expected_error_msg):
            self.nntp_class('dummy', user=login, password=password)
        self.assertTrue(socket_closed)
        for f in files:
            self.assertTrue(f.closed)

    def test_bad_welcome(self):
        #Test a bad welcome message
        class Handler(NNTPv1Handler):
            welcome = 'Bad Welcome'
        self.check_constructor_error_conditions(
            Handler, nntplib.NNTPProtocolError, Handler.welcome)

    def test_service_temporarily_unavailable(self):
        #Test service temporarily unavailable
        class Handler(NNTPv1Handler):
            welcome = '400 Service temporarily unavilable'
        self.check_constructor_error_conditions(
            Handler, nntplib.NNTPTemporaryError, Handler.welcome)

    def test_service_permanently_unavailable(self):
        #Test service permanently unavailable
        class Handler(NNTPv1Handler):
            welcome = '502 Service permanently unavilable'
        self.check_constructor_error_conditions(
            Handler, nntplib.NNTPPermanentError, Handler.welcome)

    def test_bad_capabilities(self):
        #Test a bad capabilities response
        class Handler(NNTPv1Handler):
            def handle_CAPABILITIES(self):
                self.push_lit(capabilities_response)
        capabilities_response = '201 bad capability'
        self.check_constructor_error_conditions(
            Handler, nntplib.NNTPReplyError, capabilities_response)

    def test_login_aborted(self):
        #Test a bad authinfo response
        login = 't@e.com'
        password = 'python'
        class Handler(NNTPv1Handler):
            def handle_AUTHINFO(self, *args):
                self.push_lit(authinfo_response)
        authinfo_response = '503 Mechanism not recognized'
        self.check_constructor_error_conditions(
            Handler, nntplib.NNTPPermanentError, authinfo_response,
            login, password)

class bypass_context:
    """Bypass encryption and actual SSL module"""
    def wrap_socket(sock, **args):
        return sock

@unittest.skipUnless(ssl, 'requires SSL support')
class MockSslTests(MockSocketTests):
    @staticmethod
    def nntp_class(*pos, **kw):
        return nntplib.NNTP_SSL(*pos, ssl_context=bypass_context, **kw)


if __name__ == "__main__":
    unittest.main()
 a&R6j"J6k&$  PbT mDյdoiTK2cؐX}Op&b:H ^3z7|!lF\\2LV-bo1y3΍vIEKJLi; 30![ҋ{ ISN zH)B3 [kcZei[ڴV*,R\NvcOј/ʯF:VB93DAd-@ l{|+ҿU|={ē$?G *S%E29y>eJJa-J>n_)=LG2&?ʒRbU  *?~EPPݧ >p:2R '  O, R!{?a%>lOty٣YXhO0r\MI0uJ'QyHH^pi֪#$  p8}Oh)I7ZH|a5|1>eP2 qm5u?f/Yl*MըؘTT_?ljL#@f!?Èc : q5+! @@?8߁ox*QQ>^9֜7;@ OϵceO4iٍҳG7ت=˩|d AL{;'<BAQƵ\c@b<hȖ0"EDjKqd k6$y2j+|5Eۥ¢\[Wt 2񞳗j3kx iFGnnpuJ,MHd)ȨmY˥KAeQ<:kTًLӌЁNAf^2pMiDiUIM\@ڐ `\&CD&BFb#f +*4 *ͪ9[dU\+.ɶnܨr1ؒhIy6m4C0QOlMļHlDX*L$Jꩪli6v㮬R(du9֞>}'p8%A>Go7ޏ 'CALRsB %#aGF~ͼQP&Q(yfa VE_ݲN_c+R4>eW5I$)0TPJ8(3hP (^AyбSTKA'`rRFMʤ#$ɲD7$Z h$<Q LOo mF30e 0%dS$q#e5LH0tN:+^0HC 9UeR0Y^SSNfSz"H3!$* >0%H_7X L ESh4kOs5ӷѬT!HD(!C\CHpsIAa0fR_g6 TH2\oԽ%X:# 3\DT2uJ/5Փ72RO֨K%}?QM$fffNben©b 4K1X3* n]IѢP7=7Lȯ%'$.e)J<tnz&B5`Ti!tG lZ I @Qc#o$Na^.Jizs$XĘ#>vS>:ue&,+ Y#HWO30̑2=!3(ĩ$ Riy^a~ތQOvmZa!3$HSA_}?(k&[]g34ٍ(=D"r@5:S1 ^ۍfґ2ZVvAiZӪllKCDjQ&NJөz1MH6w;su?B^^~vۆHĐp}O9:֩}RGt+$r|}!G~ΘGtdO*Dh:I^=re.*,1f( T A|P%NrkWdL I cCUQP5++[YYtF.bnJ?J#u)qT!ȿ&6PFD5ULkSL_|eR-Z22'uZ֍{8_Q|'QW:lT(n%ia$Ԧ lc H3071 0 }|+r}+U(<p8 !"VďV`@9B4k !0)N))4HT p5,E.{=Zc*fr[Vpjx.#r`S4P H)27V!M&4, LFS!mgz1H2XK:͓k36C`DƸ"@HQuZvCM$E%pijxadхRhّi&ѕ>:Ӑ `4 8ɛ.-) s?~~B@-5cl:]'v>wvb|0ya%U9z=<ʼn1dwc=j{ ɤf*-IC,ΕEGYVbQA M#a@Dқ^jR 07X@光NCH/'ydS Щ PS$ >IUQE$).rN<_>wo|}_\w=C}~;߱_k{y?}s~|x<?_3;oy=_w5h7?G%DQ!V?%(2AUB DAdZBƫEnQV5j[TU*cV6Qm\lQ[lRB$V! P T hFhA(%PRhխkQ7R䖣Xkcl&գbֱZՂF , ",@̍ PW˘i?K]c-e2YJRlK'HL?PX}ψOqܢ$+`-*+XaZK^u&L$מ%H6UU$JǶ!F!r:SAGE ^8h=H8DRC$i!vb!N)Mt⤖;u:D:/ES,k?غřH 2-)U$qa!EACKo~ɂ$XcVR)j٬6օYjdE3Jڌƒ* VI2MDH'/+GT'G1$$L(ߺpcRfkA+MPwO:<ֺTz<|+K\֓0 2D1O xD˰@qXFH/Wװ|Fx$`gDj|b f'*tWt"}HB3/8]]c=ݤHH}Dy<&"&E|*uG共/}}z!ESes9fѡ x|B۫h(eĿ1'\}yoSda#}nvt#lبQo9 ĖK@P7?cM' (%Et$ ` mAb(Vhd V"Q@9TP]fTcH(/# *pԊޛ %Vr,فdTjZcR^ $U%Yn$E$'O ­-Q!-$an"~oЊfδ9%nAJI `*x8ZEdtRJK)nkE(&Z4h0-.M0[,RuZ4 Bc,J dc,Id&X%xB0،@#V0` 'k4lzܴHJ\,!0&fQpLv6K]֛ͮHwy຺ru0XJUJf$SeFeza7dR*95-LŅuǵ`nT9Љq98CIrd RRO܏Kjpo=Y:L# fZG|B^x ԎB=32$3sJKYc[LXđqLN B d-ڽxɜsmIW(ӽ 4F0L Rd| YӮѧi*vwr’|6f[JkF5 omeVſjAN1F(,WlAC$nqYrLTݵ%SYV: &uD4a`1ȪP)AǦa f $lU&m]:Ejd;wf8)LIo}ZPYJDHJ:e~|Ja9(:G( |/GpAQH*Ű2H{}6@~5>!㇓:Q-o5C /kHTO1H`L@*D|e-)UaYxYHH"R.G? },üńrq>b}?!J%Hމl1P K0< Z)H!F!JhD4,BThB`4 %KN8bːC @)"ZTY0G$2DYHF`PJ,Da@kiW[Y)!6E6x=bmXLRTy*oWwoHX!ncaݥ9 h|6"I T@A(dryX (  _~ JA#(HLk D稕=#+3ǹ&b{8Ȁ;)LSԟ 4"!zf*EV@Pg#Պ SLUDX#1%L`s)JҔ̛{p)NKᆄPR\ %"c*D'*'lN%AI6h3ǻLGiAPGՊ/h 4 ݐ"3>.GqU;EC!g?|KOSp~>LE~Bf~=*|D__| I<%^ȑ= 0\d#L}Lc_LD`3H3ȇisPb}sZB5g-6 JEP_TH)\;$8u!y5 i,\RS_dS~jrFW3CM۾5#d#CV֑b)*T$0/p#' )?͵&Z>UؖHGK0mw45lSI (("cQB3ƯA(UqCkRN Kȝ)?$b4hvAYf t-)ݯLZJB6$PVУIƛi>w;-6q`yi%r[D7נ9Sny.upEÇ~;Tu: w?1醐|7U45 TO#^L 4DJU(/ z 'ƶ7ӄI8U4O.V'ˏtf0D%Ba$ 'Fݾq6՛̜uie80X b^FC4viMlCV00zl޵ 4KWVck*4jdvT.F=~`^|pXD?qjhww ;*C1 bS AS(%&_8'ߨzmZ£tΈI6buyX02|ۙ[]if)GK=Owpg!8UV/ڊナA\5b)aī T֢o&ڄ T#P/Dl=:|"ՂdD H'TvDzZ$Mѭ)TIVJLͷ+ξ^z%& b!N A)#ʢ!RQA'ǩq ( 4J'}R)Ī(}M"*^, ֳ0қ5xa!ĘD@Tu *bm8Ũv2s?QD#OP*ZP"c0x8 &E:"&㦝2-nZ#ubEi*-xhZ^zܦT]1lm>"%6%` 1RzyC#w~nȋhڷXiR XY: Mk0B誝E"Bǁ$슍{;<.2[n5m1C=,Tj:J,LA-#1L}OC<ֽg]4>ZbpWF[5ɭdJ9X:8&swјeb((.!Ap4`S)G:Is-(JvTJL\bH"EѬtDAS,K F![]K۪#ell.ums5 )dp sp*Vg)l˃ C!ț0X AV-Frц 0)(0xN[K[ڶ^OMȄ$"X"엗i?+BmH8֯o况}-P|P^=^ri<Y5G\[yDSA&B@VFӦlH+v=E,f G 281);}Spyk RESsHm2Dh7"RiF Ss\)UU2j 'V7?*{H;,KXiTHj\zq{OiOz'h`!XDhԚ55ed(`B hg$Ʉ8hCiN9pøK Og }`jЧ/x[3Zl{6@ŧDRd:DHCRA u.vJoZolF O7/bhtSryWn#&bŲ6WXG#d89}[њw \NsBPR;`1N @`w/&R%ݑ*RȝcX:pwۋ YEU$5XMX MAA%KnMh %u3 u sիNsRL2]1biojh\hv4((jJ8fIɬ`1p!b ˛L9)l'\IZi1 Bđ҈j"&u v)  =!_S "EibU5ipU@?H'@>d/"+%<8#@'㉕% s!v,ʬӛ[]v&aOaN0 C&cx2@P( XZE !Ba)|;=\OteEK3є T33fIPw[%uԙff/{8M 2w)yy7΄TLBHrGE!D߳zuX \$|kZW32Ȼ0W5I JFtm= 5dS ɴk;Ѽ$Ԟ筊^}ǁiB0^y yu?%%;wp|(K ђ莨t]rj!#uN}"&2wT RSF) 7YF&[@MpҗϾ彫fnB7e_G Nâ!3bXD1*TBlxq/`p.M O/DA\j;L}/4͡ѯݎmVG767R2bieS0ϟZHzk0 dWlqr!td(8>?qB!B?J0f$|IQ;h!bAe4A'WNo.3K늙0XFu0%bEY+*=8x"74W=Z |̌8|M'+5i1 0sD ހS abfw%:Si^`m8oIhZp0PEJP** 5+Ɠ1(87y&pUƙ`M\TېVDRˊԩ9!B98/$@H@혩`%6$#FƔĴ$G>ϻ:,[KVK1RIIևѥMP(:"XG,> bM1%5 'a5Y!˗X %%gT"$%=@_t_o$w'#+v2oUz.GRzd?8EȰdOjO_R#pO!VDbkd1ZXӠ]BX:﭅R+rLКXpkKNEBj*ep`HvTD"( D+J300*}TA>WJ}UԚUdo>cz=_ YJ>z$<'1:=g/|Hȑ"CXAGy>IhҚ4?~?%ڟŽzy kN: FE*Ӷ'0gF)m>( 78{̥⧏q p9\Lbͤzj]ZfР3zP .V:(!Ba( x]Ut8?i8% bֈFU$3 cBl 64RCpnEAF.k;38*ޛcReLVr47F  $!b{xsYVJof7bDG-HAܣO/9c +2CGp}3=]RGvbv[6~ UU,Ie5 )Jdi,ږ-4@vGBMs,16i:O#&@ˈ-A[rQ*_n.d3> [3E3u>DEO6y nh` &SkuCLq5 (yÞ&3 `DW,S0/ƿЄ47ɝÔ'=?:F6h<⾾.d ÖW:bR5+[,DXmUI&b:xoQ UiLdp!& JT A($t+R$̔M8d9# h6JW&ݬM&BB*,H %%D)[ TVb)-VKiH)l!)-pCF:,~ ŀWbQKd< #:5#]֘[ |C`OX&E=I'SF5Ca( ٚc~&Ծ.ZR"*}s :?]ь+ŕ)w|8sVj:!?: ifԀ`@Q Lҥ_[yq[ݣN-(Q(13)D?nW~ t!"iĐJt4H4}'ԜpcД:J_;zm ѓVӋlH5Fff֌I%'֭`mxeP[xpb":M&1ӲR] (o!*#3O=(gLDAh2o*Y $݄*7 GTo># B AS2$`7ZI5mrwuR >i2[ZeIh$sMHXkVFQUDJ))HepfY͕!w)3 N\DD9 S4# (a Cq&ư\c}Ƹ4E@53jd{lɴh̝n7l) 201nN2,YUOK) ] TE$Hh(-Qd`} "aZg$q6KkINDŽ2c?$:HaZXH`A7.%S zem'*XC4D\yMQPwB؊i&&ע&V-1ZLămEX,EW-6ae&F(!"WCe]+biqj_7Afszbft``Qj#p0!Jh+H))pqhi [3pCP$r*pִำF)]TJ3va+"_jȢC\zTe1N$Q)l]*"1,ĬL(2Rڇf%M2ڋi Xj2dsmhSFD# Yk8fr)HrT;J1@Li!;Ye51HެҹF2Yk#t顰ɓgL,U+ 4 /3)F7 &m.*ƃ+Myv2dVh"2 R 0,s0mΨ@tB)A1.V]Ō\FFN % $NV -ӺdF2tm崠s2lo& pҌK,|O5]B4]d&14-+ 5-oqN!\2F$B q(XT'Ζ%k#O{SF.~^"pE$fJמ #=1=>#$TCS dFU6HE~O>grgPB[o\ C92'k_ߠ6-0X P転3 Tm6 _s6l+['rq^kUͥXW{,7:h=xpyT`R:m;ៗz*JRKSC(%RNȓafrб7l1\P)|I vHu㨋p@xfe&Hz÷w}8c=lZD986|Dch=xuK^}?S<7$ U1uI!_ZLZ2@Paޕ€\- DK#n1ܝ{Vo54#O#hі iQcCGIWۧ4tBqS"HWI܃7E7jF*m4&%Cq5C$D"ABg Rٌ2Hȓ 1v)Az: d315I ,Գ+Jh5a,XUCy"&P*icsH)!hIt ᴩdܼ߱m^ּMHZWUJMti1!\HLa7aj eɚ $!@a8Hd )1R.CF`fj‘%r058 di0WWՖh4KI5Fm& YVh}cLZRR*1!)5I$!C3 nw,3m nJD)VZДT6_3uX; @$2!-ݾ"Rm+,igb"T`Y0\0$00b0`MH!ALCZƣ7VPkZ֌yT$O7aD&&HaR蛔IWVǗj!1=J"i{&yiOب P&j Џ8p񉍗3 Ppi<Щ2( @D0cЦH z ,HQQu}@gA#u؜~'hkUz-<q@c8ҶH4Q v~uDُL"5`%TںL(جMmY1,v㲕2mL@$TfhZN2J4jRͯ]fv|Q2QE"4TB:{anosd:e0:G{ b%` ֆ> O?>]~ F363al7bDi (5Mp~xd1[[ /4rC!84,a )R"҅ ЅHAaTGCׇe ߨdW+_N$yB< 6H2Em*1@vYZ5:F(.CCD#  dcivQ;# \r6Ё64v {ADDB`ZcB"`TiJq eeP 3ih-*8YPcSD#CUlXch^L&MkQ R鮛]esbc7i[tv,4PjrGSK,% 1JINI,0ZaXTI-La60e*kƤ#Eu*W]I6eۚv\2چ%a5 hԨ~NSЬRh!ңjK*Ȱ Rvw ,$P.d-BiFvUojuhe5dd&ZAn &I&1$ަk&f E6ɱk&̦h!1cd9X؁t`Dֵ֔ -IV?\'t;d3R)O>=*SB1xD5<&|ʾ!BQ1=HΦ :VdYoۺl6) %2\00 ˡœ`403:G?cbqmC|/g20X4(? tb75RԐ =]cʎP֑ C)QozzN&3eb4'ncH:̦&ulq؅]U[uj ,ĉuyG+{8•jdeODݥv}=NwfZv1#.ԉY )%m@T2{C>LY6o XHXt^%Sæ&4v Irō@ʂ4   m$TAM.L $$JA2'1z˻ O15P%QPUyWL]Ǯ 3Z>p{|cPFRGƕe&j[>+Hl<6\tRo9㝴8Dq:(Bld_/1(N$0Hy*6R>3Jq1,`wفLLQ"P(B3_ 64&01 W 3e'k(u`; tOy0qK-877#e[,S>dy>_a)@:깭H¶Yn)iH3k%6X**rpt9~xC@r* 1F[vi!hE*G+uEuRjk"HI 9 RBi`j@8;@|&3SA<P4@\PD$GDć&!`O>8yO"cC[~z.oHbzbLF`RԌ${O$D~g<|ϡD,R!!JӫRCccR$  HbLByި$"HI&9C3>õjz]"YӱrsIqlýOA$Hjf(V`\Uq$8(mBHbO-yTUQږiTHU $ TH!fDJQ% @I V}X9JG"&Aib|L1FFjmBLdB#J(LBD:ZnmX[sEhhdӀ8{0)|{貨PbK bU}*Jr|#`+w P ?-ppѭ&s<dqCΆ,ҼNHwH-G҈G^~*Ok--I~M7:!?Z;Gd,dV%V /".*#%121rrO/oJMhSL4$`>t=P"}2}ӛN b gx+?/O;+4h$hX3N0Xp<2 .<ӮkȂ(HlgP!pCYVykyӎg'蔰 |pQWQꍳDdch˗o/2 e˲n (HI4W_a)uelEy(B>H:T)>rH+ G^)"H`RBQb?k6fs7YZ5UaI?%R`4냅M'JlӋf&"(ge)@ak$Hc!(y># !2&4 <ʵonh ~6YI*7f[%",eQKm$]<HmЋw#.XG56I4.I<9 vic NHQ0(' w*48֨)ZcPM cfM$m 1B1"i%7k98Ɣ+db GI`EƷmZ:f!a[4I(s+ю",dFN׈jjcޏF[Wc)iL`UH.t( (+?D`Dh0_E] t":c-u}$r̐kIHe*DI)==ĹMݐ C&@N=d#/OU VXm9>bGn3tzj{R%z k4֦]2ę(D9;z38Y-&IB46oތpQ2!ټ2`^l¥.#=#C(^#WpIֱt qbK`wGcF&ؓ8 @"cN 9|nFLY?f{?䏇FcRYVs]*XuA׻3R=ydMy?GR? Ό̐A闞Ew;&h2Mk={?qL5yuvvm˘=ѕ\cWA x#? Nai[jAhS\WeYmتER2E TDO8O3÷I_IuJȻ~.1 6p}|<18QGn}B?!ېpPԤ tgピL 01CBTS ѬQ(A 04TE ¢d%1 ")6 jMRsVp A<| %2rQ"D;!W<~Ȉ u'̇l'~vs9GjT4"T23@;5bdDJ՛­qG7+,MԢnjMnIu!Hq&L|GA: |Etnw!9X'C!f56 S(1AI-A d@$+nTr+i4pf@iN%\([FnTB!4A-$0_W_)Dĺ[I$TT!&KFsX`;VV񅒲aqX6O:7Zn M3io]թM,1HAS R dS}at,iH@bBF#ɋDDP2aN3;[*&rZ$mZ!r@"1`FL@4$".󽑬Mf(ֲ陱^vܵ-I9880Q=1r&)1$ :6 ڐƢE2{ReI`ʸ͹vjim3zC!u+$f"TRiZBIn0LVB&T2ܙnY\Y1`i0`z !ufLd"I%bFڰ 2FZ P"PMtad,w O m U@1ktT[&:%5K-)(9&Kat*BkE6H޲7B"*JR a7#L t P5ӭ  &EUH\*U#TI&2Y 7*.J$ICZ([zĀ ]ęHRIH[r0hIP0#c(" 2#LUBld뻽#+(mfozv(`P* P;uw+)BTR W 7Ÿ=Yn] a}S DH>COBkQfZKZ5MQ[ZҾy)!  ZaK.uP'!8B"SUz tE>Q@8 ڂ8Z[J2fgL3-_ʲ $d۪rTJD*ST)SJT8C GGiyaeDe3IhKN$`ka;%H0p)NV&a#3X & 5%pc*2! i㡄t꥗,&Hۺԉ frC5ʘw@/:Pc&H@ 2 76΃QX_fA.'橫6,oٳYLILѢb,}6>pNg!#yCUT2"ғ`H%KU3ʺ{LQlMJ*"X4(=iI<äPdbj`DHm36&$Lj VfMfZ1 YU&*,$h1kGŶ]yƅ$n( 4UT|2&Z ! D95d:역8`mm[W KBaXiGw<<3 NJʟ_31-iT~7X;aNzD+y+Ɍ;Hc:ӑ21i C2cKԄKE*w=G13*)(1ӯ6~#ʃPDdΩCJ:cnn#+i-.ЗgMɁր $4©vT~FOYRxk`vњ4 'j >U~b FC\@qA=qp ?R'D6B~bG qzbF@H0S%?s犼#wk;m][4Uyݰv(]wMMQU뤛O,3^gSٮc꽞W٠@_H ?;PˤbZ xuG_$Tڢy!v:{ Xg',ppj]ibX5hH'rHdTY@ ڔ".|(/ȖJVv.OI6T!%4l9@ +M( $Z$LؕZP*PI\c!7)l V֚>Z࣯ #$ymUXZ*TzQ9#"T[[Y>&a.~'Țg d|PDH`eT>}#uwb u4Q (xT ₹")B@?d2ڑlTGϤ $БO $ĵwxH ʵ %5(XkJKAș;iAh&0KTSbi5fil*ei2b&H6͵zG T猲K !RC&07'S}~Vof,\޳$E0LLIHEH#s*H2LKJ%*1*VqMb#lj {yF;SY 4&MAIJp#qjnK $qMmN )!Da,(u.]2emkp0BpidʮږSw!.-4 k RĨ $HvO'h[` ~v@r:l>rDs_]CR_םwa]v$Z$`? N ep) dJj*aTr`&hh .sHW7brݻ˓c!T䃍NlcLY `ZytɦZRC LTCqb&%C(q9ǃoHގ Gd#?HY;]OO&~Ԛz.t<@"w҄神#бf$ƕö@Ⱥ(6q0|r4M%&?ުFb}rKfI|1wl[T֦aK5n|[g;D~^o".\E`O]GN(r3hؼ/IU;E5+h|aG+nvYsro)1,JB`42Ttf]:MF׷ёA)/͔6a9NNߕ:w]nLYU{ R47i" q Fhf ٺŮi}\ryv3#56|oa|1~\H Xo+106N'PL-V {{ïeGREH~Y\k ")WGS+6ʡ1;pUR}ҁK6%$-jc<$Cy sVլMKTTBX!Fƞ<.]e6FV{¾g{:`t0:Ў[* ]jCD! J dܣEY٧"0.{ бΒ.Qq "!7a;8O&8 {elh#ZPʦ1W\haz ,[ hxİ }m3ҹưͤ0G NǛ2v:-Z#DB%Q3djfy|sa,F!sl"ƇE^)42 i5c=Q=NZBsZ}"{9Ml- qf-xKw6?qZ>gn"zF2Pt$8wf |.jLMHϺ >9گ#!c )E*TiAt1yhAⷙZɹqecu=2\ #n|ONR1msQYB,hlH-m,9+9[T'lӔ‰_*,Eu?/Qy*}f:6%z\b}KɅ_mvlG38+H sE~kVLHvl=pu|UaQCCMG΢k+VqGpwlqr:;+]MMu;-gIq5[ %)3.fI@'),mG*Aȓ1Xjkv9c?Ϸ!<ڿ;T^^JJLÚ 맡n9`h i1 #FE[hx vMx{d:v&bB2˱PZ”`'CHL;~Wl4 b@'Ȑ+.3U?Jf#{]|wUsj웺q >V`v5/T4nGAEr͕l.׃,}vrϩT3zD)`b aX$Q:q#ϛ9ĄHGʉp+)y׾3jkwq)Č2({'m%N8<32#ȯ״nѷZY~ęe4;(i]$)~Vm>C0'vUDy{;zl葞tzPHiRrFwfAp,/ w+f&pIF60J]h4qMXciMTf Y nmmH.(V+-# dU%nP*"&*QSSV6ŧIİny=GB"u/j&v4 -P)Ufɲ:(/հ:N2f3 ZiL^1~?UGEo?6=?c5"QP^3\#$2]ۙ_ۧNcQ6Ha ģOm! ToQdm`Tk8S[6OvPsδ"H3 E7"iFr˲-1bc;SmImj۾ͯ[ 1|w1Lb'ʻǙd1s`yWҏ«Ϩ4,=lENLJŘU=LORݑ?[M6Ba0Іc{\c;~P~@Q7`1H$%-X?oƌ? SpӈniF)zAc':4BRI{{O^}$>А_QIIUDd:?7^2&(?g)0C 5։Zl#r O,؝KbL9N#ov$8WFuߎM%FsiYP>-sh*VF__o-)AS-BZII$p!(7s/%Zi2C)+^6yf1m ĕLD' a"PǴilƫ%PS*H`}eSll<8g5|#rgLRQ̑bCTF :ܭ+sM\QŎl"Ajp.5쎑B"ޣ͢103 qF䓥f!%'Tmă "eL$[[RTW,ua)Mޫ-dvxoNؚiZJ({Ȑo >ʰi{x?>٨p0%ƞ/Sq_M I,I/%"{|޸ʿAs>;CB u "Fc 186¬ mkYĺ!"Vsqьصqf􉪍ۢdL)_.LWi]SB2ZSPHPR)3Z}> ah\͌zͼ M 8qy!s:zJ)Q*gAu;=qàJ=LT%+YV 2.SkbLm0i*E2ݭabRAa> j YXk~݇X뻊\arluXq"R?hUlovw|1(֝iwd &E-4?t*!R t$8TH*|Cm4EHЊ%,JԊFs5? \AMMQt1Tt Ѯ ֘IfTHqk{9H%8SWiI$ҲfzX,2RAl{E)*LXIQ:0"uT'j#rX J H""u#USHt~Q$TxVepYhs' XքtPk16p* SH.% 񮢱ZJ׉zTN`T 7ta"'Pbb7bt],%M"V[EIZpHl`S!_It oDuX='GvGHLBIl?2!Ar#,уekڢ~Yp:WBq%q?OT%2k'sm~A66$DRU{ulK$dl[_+I&OۥzѠ~?4`T!n?AbRH!8/zһXA‘иz5Ϊ->w0w;63-u斯S8w ;'y5Y]ou*.GƘ'ejtiSwR [];mxL-0LnK_ga&inetbgeNUr}U u 1Lk`ǶuG%Q;0\I+k^eCiGHNFG4 ڲJ j<@ξ]S &Q9jH愣g)sp$qb#89/:)^Uޭx(kbn,? E ߂2TRָ9Ձ'.5>oPWpl|/aT +'=BپcWG /FI0pj:SȐxHBٽ"x9l& ttjg\(̮!pt> M 6q}T4th-wlvo ى nXj٢̆ iF)U7CeƖ8gGd\- :B^J*erFA5 oKm=mt7H,t;EBceFZ g_NtQCÚ(Gc6͇fix鋇=uBdFxvWT"uv<+ʳ[8 񅜖Y ^$H29ljeHuNw4&_\ϑY;g p:d˪<@̏9DFBxP`j=;VҸA!|櫚J_vgla=u< ӳI) Kyfpf͝|j\Lk&roSN9߉LJ\$⨭\%"닶SY^ZoKa9\rm$!иXLk<}sE꧑5 pA2xq3Vc ``z:#\*SZ, E%I3LAUNb"b˴q WAZ3{aE:S9X jz_D/Z9PAͭ.:},ٹ T3H8biQ{C| X+lJ4c5szhmج_M`YI=GG~ U ~xyc^I֤-AlZC55:_hr^a^C;K"2.Xs^ZgٴME6y@'=OrqWyjc 膌^F5=*"lLg@6x=4hĉcp∘i8j65QjVeFӺ1\d@c)Ê!ޮ*n&!SEn8 X47\&@\z7Y]{ 6GJ|ɚ7V525Ʃgj^9ֵaVZ.fJ3R=8. `TNe2ѾVP3] Z6ި1B8~v`mA4;ΫFnHȼmpkϬN5eq?ai*CV9pp.^B͐4QP86naXjI8!Jc5־&ޙo!Py7JHyUm?oj4g/r?CD>i$r&%V: i TЭi5P; u$>sQyǞi_Mk&`p=EaΰltZX&\7^Jj]*Kcʡ-eb-] d!+S2lⱗ8nwar]Q@@kJll9E٘D"&h*;pVUMz^_#"RfcO bT:mlW(32ač#+0]8;,Xi~Zl_UPaAE8)q<ëIJ2ʡm*y֋nlk+$ZBnB `ԍә1H )}նV21hy\Zgz!optr$sN+MYvUe[o*mTTV岟Y|!(ax5ݭ4h\8ԭP ejƍ5t] 4#ZpաihS!JNz<32R~&.*I@%QŶ7+)iBffq5T.E`EtBb#Z7A"7wq_ E16Oo]uk{l빥έCXrgV-BHhis E`09I Pċ(! #A*JH>a8IˈYI&Zi4 APMZkMIBժhH+nʢ#d#R;"GUMD V>=I RHD f+)Yzֻ8ZQM%"287$Jz=l֗]v:LU1FDLLp6T "4%Tua81U:&Uu'Ly0NjbնHZ$SK8Ll"!^iq ,]KuWU|e4WZRႜGT4ONd4u0M+Pú`xf :JDVLrXHMm]O ʸC7ŮTTI Z (?Gl|N"m~#R4'`K/~1yﳧo2խE}aogVT.HMy GE D_ø!aS$6H)I.7OXq]4 KdF2$+wIΰCCyQd{ar2w#ӧ05!T1♎2ѶUaE4l$-~kϱ^Մ`chCk=޾Qlvx}EBa U!Y7uOFoK:G\Pm`Xz2j %1Eb~5jƥZвk35'DO:W&d)JdR#hCQMI)4=?tfB$89CfC s3QTajpmZje{^SQ^sMJ]mkI .*7an,c>:,够@}Cmn?=IIh\_q|"ȉIss4r]K'CA!mp(֙Cn99#ч)8m[AǖU Pá:A60[.Qmj V`J X(b24[EV]-귷5 u i׮+ke#vpakF㍝[/-\sA &b"&qy]vF/ǖɯyܴҵuJӉ0,T!L!,jUC(E 8P ;!B$̤an,(-enMA L0cpPHDF1Y(#i4ƥH`YL%+%jZ#`%T%p(-7hTŨ2"l+w*9'unJוT#P r\xeJfjKKY   b RִꌵEAF\ XaDT$&v/@t݋ugev;p 1~)M=VA`{>LY jۯ?)hL047_Qu 2L֘T59($<@a P@D2BaHH7e615ZkbԭW.j6&GWڻ殯Fb@xP(D‡g|L~5Ndz?{В1gΧ 8iy;pR)"@%$bVh(r #B@hYB)(ФaxeBt%=#O;¿]7]&yc˸B"Db7c7bƨgF}#?LGWAyXEEfkQCjf*VFԱV SK<ГL;{JQ&4jyt,Bw)@x\JCW|`~y}DfgdvE,7HCɂfȇWXb1G9ü(IJ**+rIKʗ G_]8sd{,UHk&j-shcl Ț" c1qI&ph ^S]TxIK4j!j滹IZu&5]ݻtSN1>|wf ҇b)ZiZؗ R_-#Y(2ebUClst9!P8aԕI]87N6,խ+mưֱcM ƵpT+h }ZM\_Q!d`C6Jk_-lb(|!п胪$E)@O<טx!겒NH=LOv &o$LF`;_E62FmfIfID)c3ApfS)L}yA`A6DM"S$ȥ)13i)$ak_rH[p%ڦQ=xPJt|?*c4D5ݫ)?ĔBҤ*X?Fqi)RHP*_O}3znm:Q`qcFEݧ  'P&ߞO#ibњ}g\Dtp}Lj/)/q ').S܂:PS }'J;4\X۪bX1Yaii eQlVL"qHAd0wڱ7CzY>ȅ Y)R` Dr$Rim}![.0$s{quf(ZaH$TvFGd?(*'$5,d'vӠ!pۂ ;Op>ZO}H8A$4a^MA%A*q;MʆFՕ+&2R0[,z=F0Po0Wv|_3*4.V4ft~hZS*z,8:?@LN`͠îxfHCwE+E%2T҂LSmz;N4BQ,!S ͬFY86b5#"`̚?tp}dC$u Re*"&ZQTȼGuDcݲцpv}NЄ~QXG&i t5?7sCdgͮ+޽NOjhDm S'C01H7^U'+O7oj:}0mt1h%O俊ӷOVU_DغQG!aTP[ -XMTDid?CW8N =.fq=vG`BJD RK N{kY-Kf!0/X~: "T~Wg~#KI2I`}FzP?raC1Q#= s7i>&Nwa(.B>LA=_48FqC1>K=IQ䖿 *{B sdxɄ>7;L0zNZ,$va}ݿQumytAVdso&x~jԧG6c>)#B7H:=eMG{O9HE ?ɬrj,oƕ*V+]e%B?w'o94"AKrST!KRC$*wֽ[2 Ul=~.%\q Fvuj lb7m*bG꤫"$ZU QJB%@iڕ2bJ`"USGu 9:% bI3>1%th|Id!馴=ӷ_  8yp –s-+*Z=.fS~8QDH0I:5ٚ@y氉 /l:Et lhҠ^Vui!/u=62ɢઇf4.mSۆ^y):gB@t[i zaGXP ,uvcl02(e&6h¢HD!Q{[8|PgNAwI n>]$I3m n8)?Hゅ#"WH:\zKa YQ; =aoeQEm+qL8|:#%bf5D[tgi*$ŧͨ6؂<ޙX`woJ{oOe4V(n Vcmr'('.'L塔#  ^4+l42Emd1q03t &b 9g]!NMŴ++X4DMmryXR lcLi714ţ Yfa8d[a7ƓkjO{] @~M _F!=yxLq'j<!z&',xrYM9S_Rtu@?$I`@:$huvyyS* @I0Iy~/ yLV0=i(f &P"f @ J5mf,IFYѕJJQL2YcVjU2&T-[+f&2,ڋUM*mf*jQk5Y$klEP B!!JHC(L!* WzԬhV)hڼi >:֯bi"F咖'QlΦ;'?ܒGh3^oǁ>S^'̌:t>wi.c↢Z ?la"g,BF"T+?oHZ-j-FP@P*SjHJ(ȶE?tzYO:6y$I݇PCc jkJ+J b\j[_nZk!Tt!XYH<&YF԰ K??Oy|?{{:p~òƿ6|}=8¿O>?u#8f'.;x57lZM)ͪt^}:k}}7}eGW﷽onuq3^̵㳽5סw4]c]oYuTx7>7\/p㹀hϻگops=}D;}6 \nRVuztYvr.)lz:vS{nڷkgִBh,Jz>БL/m.K6@z{`uJޛcP W0{zI{z_|}Zp'׽ۮI>M=;gYմS֝}`{oxy}d>۽utwy=;*h=n>/n{o{wݽ{VT wwr_O{}{}w{}>U :^ﳮmL׬A{ǯ|Ҟv}w{Pk@ϟ|-'[yGG!zrzk^v=ݳ{x:lu]5\Ξ[z;XMz{ur]Gc+Ssuv-7-wpګz{{r9ݾlzٷny[w w}o`tO۝2iޣMըD;}ISR^vW7}pn=}w[꒝w}ޞr9/:6wXjil`UGbZuzZ5=OB5 U{;`͛|۬^op;w_}wڙvf3^z}־{}Zs^wsWw9xŶt}jܞw}֯b{ͽvo wuw[+]ﻶB}Nݹ[wfou}o<#Wo>+3@ V4jցպ nޝWJ'Y+}{V^uw<}^{7}w׻k9I^X^[]@_bש=w}Ơj:m֧zݤi+޹g}U(yue:}XCf%^zP(P{s:lꫧ;rrhf}<gm{ԫ4AIWu[ǽ;jA@w{]mb@[XY)Uu=5SM+cm,tvzP6κ}G{I>t}ocFp}:{wI@r@vqg@.ڢGtUR׻Cr;{X(}k^}&t޻LwFjlSm]OM@( P7aniS}ݾ[w{yݧ{/yۑ ;pMa w{cGl6Ϋ] ^7BNy6מyOG`2Z^|=I'gݮ L@aѠ444dhѣFDO L @2 4 dzŜDm4A&ih44@ FF @R{FA2 G_5مM_%"@r)q"!/oѪ_D\B{.-D?C(}8(\Aur@A??ؔ?rD'ၤ^-}/j08'W7W?4/pdO!D()qRqܧo?&H'0QLw:]d.Xߪ2E-'SуmHXi0QCB "3:}ĀDZ2A>> qTP"H)hp$i(w$ŠR5~X<өs츃ߗCB:yC !/~d:)et)$ҹ X^ǡܱ䕸Tʖ%fKw lcpM'nHH0ԈG02(=B5f6z_#>w#oXd6v16O:~ v(Hܙ 'T!ބ2swaHBLPldP$9W6VIk)&:3 CxBdB0SP ЏNWd$i>;εˡ:[0hCC4_B2{)$[O(oYQdpoO레>S"I|}C}o[A##[@p^ɀHKdY}3?}_7GsCJhs=_I.ŐY7|l2-2@K d+лnI 8,}K /W~>k'=$(2hD yS HaDv?~A q?4?Ab"pAh )h%@*0zOS y6~%$=rၹr;v'@ dDCїkBǃ%3̥$R UN[I?&."/rBP*Q  E!T % aB  3W@  ,n s4D M2C . PSxpp_`5Pi7G A}xiA2NNx?򋋓!`zM-| SLSQ]@O0`$w yP/XPfJ~ +h0NXb'4r$NvÅ@}ȷmL LGp09B'cԘC%GǷJ%MBwAC - (A$I&H!{ -4B @"4bc@A~´$C%H1L\`3., j9qed%o!F8ir+JASd7t!<\v#Z{/!{X63{"Mp#H?uL=U&8+Dv`P-7K{ڌz߃1rL*ܚ ؃dI@62/.mۘE,N"[F֬ej51LEr{ ωG,`xB ;m&c~?+?KZƣqeKb1h]UpxTe'h(Q13pٜED !2 B,BO C|S#x:t 8dU2^Ok|Dvm ލF2H]|^y-( & ;LNb=rDClgN/!ZuR ۯ1´5n5B9&-QW~Y!ֽ"6j!„[mq'Y2Dfҍ4 X8-kGFNE0vN!q$SM""i0F(`7 n=jNVh?:rH[DX4r vƍFFQA|@Nc#l]XpvB)\BzD!CjVHOٱ ո7m{53f7Ϯ6Aq l6B0tj ȕj6l{kiS<h9"juu Ib]WD >/1GdiE^;p &4%g݂1+@< PO}e[{펂O ɽ'qR̛G)1Pe-Jڶ'f8y:E`=vqO=m=ߖ=|CA?geئR"`֍VK'_Tc|!BV qvZt2Tm+ H(8CͲpM9٘,d#CQ@hѕҤ/műy}H/;!{gf# 9hv1~gs@;{AļQH;^u,$IɠC 0%dkҠs̖f;f+>`wǜi+2A/E++tyOO̿Hj%4v|:!1}rv0>npax!ډĜv,M,Km^p  tO9ތCͱ ٲ}&Zzx'{NyK;^pOzΥ`j5G9=4CRjSyN>d8=BJAvBHGi5wX ]`P8qkgױ2Lݨ}b-c)N r"UX"P#T^*P`4RW}W^/>?׀߭_w~`6 wnWTռMzo)dJ[bpY?^1 ňJC#KvFndgCQʆ+O|6:qt|X )b{O@XogM녣ipL1kN4Fz(.8{z<w2/HXX^|i!BHXgKz<+wI9H`4r^gem0p ON [N:Od<]xLH1yPlg '9$9| jϞ0R/& w]B$jd%*0J8B^4vPMbbHr_2{Gi6比 a=3?Tf:@@ {C7Is32*5dCS{=.+Q}ߊd62FUΎP57h0aLٕ񰮍jgd &tDj*6-Rr9au][uI/m !OyF+ _w,xhQ`ёrH.SU"QyѴ v$# rULcq*'@2JGMx]=v-qm?O. Y$gFp'8P\lRJBSPzEI\!UN=Z²^ZVOeOMtk4 W@{}Iz4ILm@0}8.ͨ΄_kabMW$+'ݴ,d${ew{ H}Di[6'GOL[[k|y[3BU[yH x5 8̡>X&ǯ:|7D9o5-Fb8Pr lc`QHSMᙅfG;$$D:H ik[r3'R>w xH`H+d q*dn.GE/?ub$O{߅xi!|{ƧVs&jHB8?/n# ~c%rյצSOs#9pe4m-j:!!n4ک IKoL= ?[ÿU[P̺e4:Vlavfiux󁓼1J[5K2s"Kh? VFHϯ䔖Yh@ 5LŨmtHgJm%_A"6] ArU$Qr F̴/\O~=-oy'aM^?ypyŎYVO};AmR+h>xn$ g>9'!;10;*8^lsh QɵSc98258WxL.i>$fs|`fxɬ`9xJ"%Dse[JPWEhLCR7lLlwaY"`zU)C%‚04cO}yd3C檽U]8@fd8@Fڦ 3ÔݗRhJi,jIK&O Si~)5 F F5[V}Vivv4΄߀heQCͫyQbjFi/kYw-NrЩޗNW jOeKf'zZ|r+s;ў+}*NSI{$ܟl/.kE]敪5`х\M66v:-%Uj yD5鍉:s:On*+~߭M\ Hajev0%ā`w|#pW:pdUt#S{zuwOTn7=F &[ڪ+ UUU}*Ju>S|$x׾?o̳ Yo]MgղpZ8_`+㰿f旯Hlgbki>ۤ.p l q!h]3=}vq:d?'Dj{~6%*ߖiD\(Gu ه15-ÿxS0]2zl'gNYGjyB6W4@PL-BK1" INQ..{n"Yf=gqzo@H{Pm eJuNNNS$"%d̿=~.#WC=!\abjȘFJ5-FhË]yKFe+few"\G02 1lIV}=G7ߨ>f?E3y}15K[g?K/zW(Ml⣾)kw.a1A$֜.>N͞lQ-_߆+k"jpq M[{AZ&BH0cIvVLƭ"U /m9-2T jgj![!/oPfZ+Ўg"6%HZQ6<{Fߥ,$x `);6Sg TΠ'O]d7UO'pξޥ]lQ/N*L |4D0@{@j9[Kk\VfhŰd U/<оP+]pb ` ]&LrP5BXZ; Kk HF)>MZJRDv>X9P\GSXXnf쯶^Þ jfeUO t/ߣC>\~3eL_[ysK[FBh֋\L,;R #xdžђJ{"U+869!3mo^ڑe ;e(ްHov46[ M0fy1:rJC]jH Q\8U R][*?+j0% 27 ogZaD4?}(# '.ʳ]j0`|C8ongqoV6fB_I,".NOB֊>5=aǛߣLh23ǭLo cg_/)Ge(_މx)F%JhwX/ Ar7B~ߧ+ 1/j_y|1M'F=i 5/D']Pu$ώ͈ ]g5AslJߍo'M1;ff)ʐq,Fb!tEE%:n^faUE3c39~٨<.}Lې73\|>j1j^fJˑ.&l[JmҐĩf11}(WӇ~;'D\Kgy U+) =ЧCi`̕I/t< R1 >Hy4A}WD0|Lh-[}rսൃ.L3b+lpcFD%Gb[?е[a0&*f_\d{#菩R'()3$BtV^ J&(BpN^FBD%`a cYP4Xs=n츘`fs ^AH$) ⪹GCaV.sMɌn|aܡ-,*ujգ}wq0G<3IIF\)ϙ:*G8f*OqYkIhTV[vQx ,z5isdJkRڼ"3DD.t5_1ƿkbgmW姠$^lmс=xٝ=`lG2noiIwr۵C;xl62Q 8c1S?1S^$|C#d̗k~^e>r[?+,dA}y=Pϑ"ѡOC']CQZ.MX <3Y-̇90k'dP7#fQtM3P1='I 2Y 4O %C\*ÈoE'c&g ϟhvτЄ2)摡v $>tlIp ɎvlFI^ BH&J'x OsAfd>AˁSvrÆヌ}||Q7hX8=s_LJΧXUfu\ (TŢsIrje_Fu:ueUSwTjƪ og5MyGK~3]a]ݻ}vCtyv͊893K| aOeP{8&e>/H E,I2?^ϢVƃ!Q37{wԜ3_uh}2ڊzJ TGqh}O7|-?8Ia[^xQKGkg?qS9zB= %زL^9A;Hd%bQ;ʮ-Hgis(2лx7|qQ>&+~9Eɒh/H9BhY  D@Da5|JvnikQ6>z_ߋF9G^orUo_|L}foU=3) f`=ޏ-_`oor3#ȗ㇓%cht>{0[|l!˟gZ]|;kOH_?/Һ;JM{ݽݞmoz#ijMv;{w.D?Kͱ ٷ_kp?3GY_? C.}Ƨ]~zI!y뼉\no=&mh|E'5n8{^>CLQ oc3oo{- z)Dp_ힷ f[|<ݾgt?=+ ]ZIi;x}o{濯bhy^xᅞvI/&}Ds: ND^\)d,v[KݹöZ<[NlS16@K{W"6 MoMD 86*d1N BBPfX-r9Ũc|Zhggsمy|J NAͷ]fI FlLe`*Ihgt` =5 DwDN}>;6siEwA O÷I/X]d*"&RTEͳ AD{"0bCd @{DG@Wⳏ hCjLX!fJht=80̧n rQ8! B䆈4_I9͚X")bW 섷rQ9rZ`ߝsMۦ7MO_-k[1|M~O@Τ4A0L E*Ub|Pn=?1a'w}N,7Q!y%NEP!h(|<My;ߩpT)4QA.K#ݰ{a%RR X'-P՝0uzVvbf#+s FPX(qC=Àq:O&"d4x2R%5D=)ݲ!.!J'CײAwt"Xx)7dR Xu- 13 @ib'MФ(5$vcɐ59A6c5aT1cPf%5IpG;,"k#)7c%sL*Ii4u.! fB &Mj ¹f!.! C 4@5*LZv`֢tŘhJ[IH C$yk{'/,'Ff L@Ucp6vhf`rfbRD! 47Pj5ehe`@dTtNG9):59}߻N{uѼi "'$}a^P0| Q w~^lI@1c0 &O)=|mzS:lr-p 8A%<$Ru$"i#euqFBq4&AMC׷IۍѴ-J;v kʲ7S:l4*tXW/|p{\"|5v'wxq\sWYfYb։jp'#^*+y|X$c8t>͏ mxRm>|_PUP}[*羆a߹nj&>*~d۪k|uG߽:xћ^zaw5hEp'ek?c"GAv G`Voh EtKzg L 3,êR[)7ObW]if6HmrfQh.F24n? OQ9sG$`Q9b|S&l5%b|Mz[5/I&ptA3qH-u2uѿ,;y!wq:y *j[(x&fӦuNJ 0@S5TM rC}?'܀H̬X{i[ ]$S{KrLkm-;.4 2QB`g \ Pt>ZO"c:|jp/yQ3$ٕBd\4972P-B yYT(L+33;wS`H k"RHCeĮPUc < JR#c\-i@_n9e%un:cNh :M0.4P{Q8W7h!hBrrarFf^;|S^n_KEXHbMy<`Hk4>ksWxhZJ]v}FaS<` -#Ϟ~[~āk3rTg#g->~Kx0|jfA_%)QtHPpc,E4w&r( `mk h~'ߨ0wnX[rT kٗ.vØE?, )g bE֌޸8Wd4."[))d[,T;څ41% $-vk]hGI?$D'ʼZ|{R t`"C8-+H09"ah0đPiLA0#@N qxSjm֯N0'3}x-v1-h:B1FsCNkP 2伸vgD̈́{c. 19ERFCrI mSb@X+D nh2/_nޖ \Qj=I8!JA1)aaaO9C1DN ! `K&_s a-%!1cA-. ְtӎ=@HlSL27Ϛ ]|))įlm_o<@$"<\f_Hpz@k:¢egQU7 3'. !$p8 c#¨Q[SC9B !A)6V4QMC|u OjQ]g@ðEKFmXHl ,4Қ۷cz{2OnO1} 0c_g߸KDm&[je.RfV4ώ,.0j#|4]+ ER "Er]6VN3ԔHdiua%UJNhvy'ZIIšͭIԞh⃲0@䶄(+@ TrD2M_f" D1 %W Q{y)/?/ P#'{@lysS!'BA6W:Fa%1-żn[sY#&zz+gDR][kQviS7OgG(Ph }qAjd р[gL<)uqbBYfc#[[4`:+x] u&)?33֜@[{bG-58Դ]9S<篥ٌ-y8IczW&D튞V]I_5ՀE>jٱ'/O.M*Y`Oy:Ϲta`>Kڍy\Pg #-Rˆ''YW«ej% $JBhX$mӚu~#ζN[ojmW趶|[źӥKJZR w |g7bKGJѭ`е, ]1t7@$6j6kOZu@ CB@jhA)2!k APІ~l8.6\Au"%cjگJuӏ݀@uMt(4aYPB \ZE]c1[dJ6ܼny+b`ҳSK(+Al㽱6:^Q O?Ciͷΐu`'&{B<1haY !X=HRϺ_U/Fp|qOd0r=E .vﮓBfn2_n~J20;R1`Jh.$*dyKAB໎}{wq_䟕urF, f4![rBXj KP+qbI+LZ HEYuh[ cᰎ:@>(jM[a3 ڠ;@@+_R$[08#l3!D1@+XPmk+Z)$_bsMF3F8vQn舤A(m üt Sgwԧu~x=@A ZS*6zC¾P//DK-nH ZVF$*$hb)Xi-C4W;`Utu7uD/-Y9rQ|5fdwH;'u}AӼ©Omۺz% 'Xnul/{=:=# iAB l/,h 2 `` 'v5P*,wdۇmϯ&ܨĕw#)\$LMs>Cyā4 Xf¨ 4< ˷$gf̦~{i&%wւxILk=2%\{׌CڹWG Gr{lŵSsND^ AUDO*7@9#P{&85藇=6t7ɌG;bx ~##sDT/gE6E^*>cJ*I M\Eg0{W !洅C2{ u;>??ÈūxRװI mܶM9Ub $ψF*dSR^ZcFJzjrc=WhЮk]m)V˷f|l3:I 4 PrAl!д>X(T2N:gY=RSIQ.0 aqo35|Wz(\ ΐ)dwht6hk jRM.x&NP>2#x8A6oOco &h+kLސB P0 +Y>D ~̇鱻8B qЈ%CbAT b qF! Pٳ#h+E|} w>~.Dz X3HDHL=T@CTS:lOO)X*eg`.00$[luI_\F 4N*K edžR1lc1a^CH4Υ9I_;xD1lw3GRC$A>mrْy8O#yIxXXYMz'ۼ0.'rP%a(`{x/ǯ\S@^{Ym9\3q}1ؘOP__U8͓W:K-g{_29'k,6AiRl*mhw>rN (0|匐Q&L G!D}f(fC\ Lb2C%4\ ~1csq`J,u2$ ˗$g; 3.@Ic$scбp.3Z+"9iJ-Hq͂`b`9C ,G FklZ*cu NJ5cu? K\$Q8MZژ]Wp[aᖞbc SӅb[YE.x -=9KԐ~T70S͉ݻAfrvIikU/ 0B\O{=?yݛt?>ڰDyW,ӷ vdSm\{U`J,+ ,xdw64t$Ӱg 0'rQڡ} ;8(A`ҢR ]l}d08Rn$aa̘%b[~Qy9!9>"Db Pc138uټ/ܯTBjF6۵ /Mb}e4[Kˤ2zg w ` !rܚ-0Z᭽)Vk%LXl9]H ^4FẔ̇EI6jwKJõlew h O$lLZ*/ʮj$)Qfl(H1Tv*W/ X RQ,R:p?P rqq,_ax~}b"$Tqg1刍11H *%|!mL&B&ie܊f+ QIp0ャO-DEjm=jX0nAP .E=f>FGM<9Z+:,ZT!IO^6RK3ÎЋ߼pX/;g|r0Ąy(X9fIR,cp0$i1OGQd#"#7|{4:ҠEçoVhdC J5bn]DT+ė3mDvpFV酴.H -1 "b9ħ<]^6FB6 Q>.UOɍ_myˡ3g?_'cP5'i:C4hg7>«+Oo9Žk9N5g>*HHW8v vwV'3 |7r?)yA(ol7g# N:DB2vkwEmpggA! km {}Re`L(^Mb@(:u)lpxe\3q9!r'W<$$9;ŗwm`.I.h{ȧV+HoяqՎp~贘Ik_ԚQVLXaOp+9ADMg/9n_x^.Nqق;:Nl ޚe-8Uf(nEa؂'M3nF g781 SQnY%]UBHL]3,&F ws' q^l!VaE7@igHp#qmIENjB@ Y{"cv:UoaL<`fpl,==T爴BNq0.`Ŏ0䢋Aql ~sA#*T7,?&t`#}H6h]鞢CBA=IamvUC%׉b-5ClMAN*MCEZB̮;XxLtR\̊sː$H3:;]l3psZG_ h #Ub;~ +` p+,UՇ3PP9mGyаᕡ rMጼ|;u 9ce^"jgfALچ9Tϭ~Y i%9MVP}k5.[Bwm`WA Ϻ.J f'#oͮ<~!)$P 3"mUi *XHBVoLcCߒ@y&x:5oQxՑZ^6 !nx@z$rrWKA RT~@ Kr^NLT*aޒKQn3g0_hQ/l3CAM9"وej>6 HKAF\.[+VE%sj$2HL}8HߴCyvu"(k5-:ke3&~_6xCJ_ 3K-תs <}}䱷{Nz~آT8F'<[VP(] +vkOZ 5kΤA㟆p8jO$cnHLoDQ4&+8iS#_ P(BAfaOr~ NZ $vt'nuHOJMc" P _yYמ8\XAz [+؝܀ggdiM IvGSG0`VYJh!r R9h)~(+eg*1JH1~[< j:DKGc4Vw k`gI Fć#)Bޭx/pQ-1a"rYL$S~tED&``WZ[AYgᆆn0Yѧ4 rlSS(KEj A*A " !'`%عߧOc`*F)RЬ&Ҕ$s8/]WM^}~{ |Ϸ@Zc.IdpDȌCq8V : P6ޔܮd--hVC[ʒ3pp2I %`hDb>)k[\߫f閃W2Dz]:D+m#'7z<=-NI$!>Ђa"I̔ -w>AnɆ(PH:q4/bt>!mt2$R`^T Rh{nmv ~jkA>Dxk^'r6$;C82Z5t3Ae QnǏ8(MtĂHH^ɜbMT0x)t ܲ͒$-CUcಽ%޻[˛UiffSRUP z5Ʀ"r_g o EZPퟥE0҆YK 3A%KEa AQ $i4䊫&9e (KB)4ȬI' aRrW w$"H1^Eq][/ 65 NSRΙA*j8m @eTW3f.!+ 7GUPDX l9z6.9UxbE,gs{%TZn<jqdu<cwA3~w=oJQ4kL.rء=Bu7>Z$g4 Id|1I$ǣ?z>)=3\ys@'`ﲑ?d=SX#R%H `wfѯlrZ#,CYbFje`,'\ R:K1>=?\>mx.K4*Zʞ#-D]Sނ"1f CȠȾ [141Bu >:`cB_J\h$M$dnP)|0~#oJ¸IH>@i$a+].d`:Ǯ  7]sIq_WLJ a)[\p`ef}+nW}\M>_5N^ܿv^OC3DeջS!h. Υ MasR~|i;ʂB8bdiZ8`=P\:lB O'Uf^2ϑnIEg9<'{f>~¸ܰ*.5m@R;_Vp:x7,iю@Dt` Xd. Q]dmv;`x"XF inI*1}!kWbDtMGA29R83v]>Α0follmL͒t*:I[RRt:]E^vbS6W2_tpXmNJ" FpBi!\ mHBFDk)D[~I: B( H}t:J yce`]Zs'Ā dÁb:A)& Y 滙Á ̫* BvN[uFsxޠ+s)`vלl?[X>ow;y٫T|v]ԒĽ/@p)gvW Q`[ {^v0l>Ϯ-\ܙ)mvjC\U#." F1>,-hi8I>>c;fѼ)܊Kk>}=S+`Zf8Zab)P[_& - b/m}q+֙M3ᱪd*ː:RuɊZ/a!-Hjv4`Ȼ;ك(9 F { LMq!vb2"ED2[7{4*#{`E=n% ?i 8Ƈy-W\%ctyno_J0xw8""p!YBxGhJI$x=n5ߏZӹX)Q0GoKѲR,6M -ڦ.̅(* >۫9 3E8RY/FM&o" "kJy4⋏YQNI6&Ŷ͙};[1$ʈƩ=^ߚ} r<H#+E\V Lng~Gh٭%eƷXl< />k^3$}+&4y߁r32H6o#0r[VމM,ۘdX3]8gN]X1AX']}^S➽JЇq}\D+Lgwrq0gF;3= c&[fFkP^-PO: wYX=Lw,B-v(3Gdz*p!߱mڧhk c:0}=@‹rz/P̆Ul_z[5M5*o.']2GnT $ Gc]߄7L݌&.AO@)fx>NKuxږZ,xWs0(dDCUobky`CCXa %qqzPO-aJg15ߴ:R a&lc/!'w}5޵1bm,qr2zp<2tӎ[ |@ fNH !fk%smǻYϨևkXeQ[d*Dz"S")JV۝Vs8gX\ JL!Tۻ->x`۳Gxc&r/ $Ov3O*3۠| !i ?`ײ!Z 3f1Fp]a|~*#rm6۰m:t^5:6{hf' ,~6%%`uDuܛÚ6 7dbt# 2rF:yf40l^Խ4l.C+6*{Ï:c!Ya;GrrqT[)4"8>2|ج=F6dkWœulϣkn0Ѿ(s?(TMu$&4 5gLv 3]&;@OcncwmvIe3.<{$ 4Mo>>s-٣ g=jW.Sn}}őԼpГ ,V 2% q*w7ߤу0|))zv}2u|C?|qأt&Wb!D>u*Q o`TK RlCߎŸ,r۟MS )UUk1 :>0؛GH]ù QhuO*5MZۼ׿ /y4+I*JL-$WNX3]#O&y,Mcτ% '|sǵ1Ys0sAGOX6;hSSwb/wqh ĢBle#31114TN|u3VV+AI7 ҹn`hG<e^=3ESfnm`; @-)9Uk*ր.E/& ?O{{osk9 {:qZ_zz$ѵi|Vǡyyf0:ka4#o(SkYxXEPiؖI [:^֎ν6c225Gfg.[m?,E&~Bri|lmܚ#Bhqj9T^ nlxqO] ̥2ϹAe@Qe|ZǗDO+ΌfrZKoI!}7b[}Yo+jK!u&}] *x^c&Fh=%عpu - /a _ =8X mו Q~<ZBYsަ ,˂ *1זl9G" .ҽ pCBrV殒sfةl]X||../zA=00z2Wh}3_fb8{1}N/i:*AC:~#^&DRM 9T!M&p6sU\-:S!Z;~TW Xϋ "yP/^Z4]>\{2A!W)n3*$c%-R밹Nv Ȳ(j0tl#^|얇K{ÀnK>H!9©r_qb9}w=2Njnǁavv/ohe!nn\2e c<ıwՀ<7eҢۘބ(2Kk>,,AyQXby/KO{n z=Â8vOSn/#nj#10, )W~˷k1G{bǂ/=yHi۴Vݻ#膤 f?O#K{:|tX^}haCӈ99ֲb|n:y^E0;PbSIੁڭE1qZL0~W]

~XNz}k?=bk9ݸخi12fW40OENg%jH{/OtzDzcݴRμC~6fßR|Se_x7h7}7Mfن8 ?sLgv¡cV:0Ҹ I4nGKv IHlChGO:36<#: #j<>޾|f[cg}/Y~~^C30|mշM4Nsl*ocgS`HˍFIr|!-`+\} Q}:sczGe˟jĄ\{(GwgQjmU-jn 3}v׭ O<iI)wt\^UնޣAM2G0ֵ8W+[ @Vy'ԅXrykXG&`&'aK;m y`y27}C;ܬ\̓۴\-?H2vM^@!y΃${Ć76 ow$V0=Uʀ9eƲ -SD!DTm=uy7/~=>PdS) bc - X;,j={u0=>Q7<6!Ha <׫?~6 |ll[{Ӡsn{E#>j4_N#S>7+ǼI'O?pӶڱE _"91v1l# \N]\"^f,Rm~-y+K=(>Ci])ҿ1gߡJpr;2ck\riR *FNɵtXw"V-uw6Da"/1Z-ɂ{ٙW$xllIĜ.q'CϢm(6YCF xX ŘWɄ{]\TOA_^oO:i9,3!׾fU=9 J7m@he}!} t?fnooߣu܄S;\I[$RS$}p{Xc,:L@pц"@VBp1S5{Ț ,PbUZEUw`y qO#t:ߘ~$!c_OmtkX V1u gcXu;;<^uY аڠްPP mɷ+Onh߮xRnFVX2}Ο_GO2O^޳[o|^5b<<"xowC].>+PE w .cnb Y|>p9fX:m/'b8ޏy~H}ϫ}~FyJiܙ ]Ш#3kW)|YvY`y^'߳pkgceQXagNCnN{a,h?Q!qȊd8/qrs8 ;'6H%r, k)Ɠkg1Q\#Oe({;KOZB2`@Ǖڲ+pԐJN9k&ҔJ3Z]ю܌7tSUqyߚnݙ6}Y΃F^dž+qqcМ,#HV wPsqm˪=ܤ!nlgQd~<¹~u l>;gey5mF}^ Lϻ!-g|{Ibl\^:yQ(A ljv.'L#䑗$?N__o=!n#{ޭbBjܽFFv ,JF:#[zi af0'Yi[YgmZ8v_Y!aFew@=ܙB8trQBfXX)//1 [X5 f=:TPC_%fwGBa'f===fUS2X\3oFҰP=)g@x[Qpx=[O1`]ʀwQ늄8zfljVVāں?t'zgpr#Q2mut&+o[ꑆk {bˇݵ91MN43r +z(6f2k,\iu!4GP1{v}0e.OweM p$~n² J4s6njmȢB2#~/Ӿ]}%^}w_=1'T'M DOgʈlWWaZ_ V^_عw&O'sWJ%"ǝa]E&f.]m^,i9k' x]kDmG8񟋌 5ΣZpJ] DRQB"㱀*ΉH'I%uTl ."ۜ"׎u|a4qaU/}\t)@v1zma_zup~)׏>"íb=#߉r]'Ğ>}_{hb)ň-w I2N(DU1Ȗv?3r}cⷞ*rEm[A]x<ܿ}=^>ROegۢλ{~B}F£Z7<7s9Ⱦrut;KWt/DKBP9=N; ;5,<IhpkFdNR\Yaaː>1Aks<~WGAŶ0͹;d2>năT$=:U3jL.}e +,R [dW,$2~v $,ߑb\3&@2-SQ{O屳9.†,2rmH!jLHm:^4obAStݨN[), F(_~%â7;F!ְۘ[ZN6|l㓱aR=朕Zs(4BhE_޲2!oe D35<hQn<8|u!v;$v?X"ǯо)reK,l~Y'R:\]7 7-Ě+ɉ&E'P0OUG(S=?= ?"1gc~ z.N䤌km6 nϚUiQzy&6D~  dBul*aaFfRמ)ڥRjnXլ8'BźR`J:aFC;$n3 }5{w>":!2p eIM1{]3[P&]E{)($H+K =n)}_'G|m#MʡX۱@ۙ7K@Ɋaaҧ ˾{|t[퍲xдpuޏ$_=WXmeovw7imUئw6 a-׹~Cpq]n[S̗J7T0,5$'ZKFYJ~n/?^t뮔lw@^b~:9MXOnCFZhb6HYAuSnYd*W,覤CxƄr5MH̖ڶ[Zm @9"VG(@ǓS;3BxPoŀ壋.,ul&%8s MXL@qӹ,ZņL]Y\gYcoy=6y3Y38P'V(4XL)# ~D 2OT^ qsσϽsώ3=`kQㅞ`K$ ]79āz76 f j)6ѢMxڄ؞Ac!]1>;/M{y$-sNȭj np"6zHU6YZfƓc_M}@;08SfD(];d2F^vC/W-`x:~a 4i'?˧H+]PPA?⼎ndjwW0t>>9f<Ϧ!=?`X?{'7MηwIB[m!NK$sX j/1Q]<Д٣5U[/$5n͒ {{]90F0B-Q1'|v}~[{?$Z6s)z?Jh85m JNLARP[cIS+ٸJ\Hc]]y4«82"B(m,WI.;B  t YuQվS(Pv <F d0HF`&d&쩣, (z /^_('eɞ>B:ly,>nps<(`"\nۑUN]~ByƋzo4 wwwy$I$I&I"5#mmmHIm&LHmݹ5UtYΎ-Nq噩XC4m̒oߣC9S+|-&w,mYk^3&&k HM*/ uJZ\"\V' eQey>o2WQV^7ys%ޛx+s=ތȐ FO u`ۚ\*Mp3ɯn[4}J[uI@ iOL#0 *A{_z8KսwJEׯF"S΃!i ZV[Ђ6p?o;cy)8@]NN,>6z;qj#:ivF[7Ej`-%d9V681ifBbhomZa L H㱍'MmO"-mfj ~8$us;+絣Ux 0v g_2oon13"۞gsRxk/(SBqdD*t.o|bٻզBE@I cX0箮_beyp . h湂f'[X֊j7 ۦ*a=#؀V**xWDPץ tcxV^2wqz1,;uc;ýkӷ\=nwwi{ĝ'7W+3Ee+3/YFE) A8/eUQh뮅]\\y_{+YǮ&: d幬FB!wLmיUr7 ke8o*/uoE c;V$D1M- 1M+q93D[x`玎ZPk͑XIkxA8 s>+ryQPis`Id՗<=ifF,3u­`V-b!7>#s^Zl#ڨy@f~zt1ࢾ䫸JR:l1@Tmt͞3h]fm9zd3Ð{;{;>|J? I$88d "8os[*<K%,7ۦBl~qkP 2ttY"O`EnܶR©/I8mTӫid%*ZॡRuN#R6|q,&&c4pkA9!tI@hCl=]gwdnWyU8kSƬr%bIYhۅv;^ybr>%_< ճ~Z=Y)W]; &_=VɆ2-]p+#3ޞϥ<=GmWkə?*QWZ1'&l* 5"C*"C{|-us5S蝭ƭ=+ zrAQ9_8b h6F[72]yu=l3o?]6Z"o/VB֍z?:667UlƾSsyHX)v W}gFuƦǛ%]h#E͇mI留P0Lq5p#:QiA3 c\r׬ =rq+͢='';_uXowoHuo{J"ۚ'-})KKUm-jG ۋl ;w6jJ>CVT)vBImc |V)͕k[^ܶlۄY7ܬ̓ WRCeصbyÏF~ Dͅ4 V"xqORq֗F(Sk^\F^B !u;2(/>U_=zUnom|:soojvuzqܚz}^Dn":w9Llm?D]ݷӧMpx/wm˗-GgfR1iwӓGNNwcm6m]˴Z[çhswLAG1ٷ߱iñ؈jK} ;>^c/-?m Nc/M?|LFq ȷ:i$p!8VSn蔁XRB_P..ϳ;} NVF$R~r4f[7^W͇dd/ɂ<>Ll}ǥ2GoO C`b/c<rFss2GfV(z9Mړ<#hh@9z|IĻgt̓$ ͗Vu.ytz: 0~K}aQw=Jsaph~BbLADX>6G$Uݝe~Qf5*ļ5]94p|Bj}fh)i+DO] EXGU1/ B}˜۝Z& W^t{݊.cvwZ_r#֧jVE,{u˗F##!Aj&M&f8;=y~F,fx Сk]I9RI#5|Rzɩ3ǧ_5ae}m+Qji#Ƀ%V2szFJKR&|<0,-+)hMhW8Bz{uiw6PfKD&.T8r BT-Z|ϏSi] 5KIk}:vJrׯ@͊CqO!P:h.M~VY꽙F"Z؆zLrY[rc8RZ(4n }]%h)HmGU̷*.xtNRW}Fdbεځ kpwR'D[*a&WG6iNԬK) Ä9 lU <8WWQ+{ӜB˘k!@]LB՞mlw濭ar״[45NM)CSHHpi.HȖy -!`XC<@((( ?6 OMllQУL>k\h)X:b4'Tj9-]x'cރ`8)%&dV[|ν8fMDREDD(TPP@cbcp_+㕐 jV6dwl'}hl?$1ýu-6c)w' 5aj j6ܐM}lJ6T8`svc-M$,)5HbW.Adbp<.Y F́cav9y.+82 P`iwQ7ur M.LY24B:5&bcAFA+b(Ó(lu$5SUr$8Joq% \Q +l S"0J2M@R 9bYy\ UȠcUQUUUUUH$yn0սN#zUUF2rrHj]I2b4`bMxM% RkTDPp'8+"qyQ\#I1ĈD]-b5E܅lC+-V2XMZj4b0%:SpF9#$B Sc8pa[V`]eVm|g:MZ ŏjlMJ'\1( f O Yz ?nB ()}??Ά ƀ `{uBXX&1 &)!@1#ۀPD \""Z/}yM kR^pd!="#p@|R<y6D5u۔??:竿%z(݄fKT'?]2S}J\iT[Q#> ЃT,@K ƪFMg <R:0 MBؠ>c:꺺x2?THiEa(y  Rr#]B@,,Q&30M&(> NiCC_x=HgAAYC ] 0(vcptjጝ/ SC` :TJM;`3Ni&-/`y .Zc DAE9E`A?A9tM_V<$(sW NٮmȀ!O!g@h TqUHO4J E-Ч eXGv18Bj57,6H87ctR10RWHPk:L {1\l\\KpH(H}ޮۑA FBnM,L@S*M 3AE뷬I#9%#(@ `de~ ]CjiJ Nng33R;X3hO_ׄƒ7+#s&Yw/̀V;T1doݴ"㚇*>rg_'qJI+OAl- qxAAPr ͽNHAhe߈[ ǰaz}ggW3 6U:/a<^b#hW~.GPv89ftACA+>y{S$6dKtНC.츄HklhGxd tQZhSp\yluT_si}(65+Dn=vwl(hcgr-'N%CTm64uLL>6ev'E5M Б$Ř? \Z:5L% hѥp'&>F5o ;! G,}DyNaIZY@F0మ&"JC?Ҟ5@QEKAw:I{?@Cpa~!v3w>S4Mx$'qe)8(22alHG$̈1x:33>$ٳkAH)li˲:dhJCx|uSr]jq)M )qp&&j]鷾ߙ=?z|^qW~Wz//}鿷56_Jwz6=NV]qWn E2P0BAAa0 ӮǠ>Kڗ9 Id!7p_ҍ&! f#a*Ӓ#<=kOԛeOw5' A:&L2;lzSq-_?{ʯIx07yL o `ǚ\rv5>o?]/9k`{>\@zT$f9^H;hX?`ؚZuÛzآ~1żb :0(fA#juQhy1q?s cڱc-=mDrx>i2'j=ޥo_od) z]XGF6`6zDtI}_?LߟcHL_Jo`?*R2Hk%0 zgwԈ~ KK]opʍ*"T6y/N˃n\- Zk3A@W9wdb uDVsaY1zǗFK4rd_E+0_[2@Z қ!+ ۈYpsK$mET QՂZlDS A ~ٿsh!ycKĴ_*ɽ-Ș^Cl@Ig9Tݔ5}݁YA@7W]*@=`vMCQ<Zszo?3g2IIl_%ro.]]i׳X`> 0}q+bh=H&f|x;3>.}HfpAǟ m}>Ob#-x7*^e6: XHɮ8,g{FYʨ'HPkقаĢFۛͥ󈵢 6d7v@o:=w BC၈T@=`22]Ҧ8YhKlKMD(81r_E;}Xugq ǹtTgvƀD~:j ERhd% C k鴧8mh*@`}Z/"p0oifI!4Ǹ1ГXف{{}S;\i 00N\&IM~ F]̊EJ`ظ~ Fc9G:`R x>9%&G};qÔaEp_ߡꣃ:@y2CsUT"kSfbxH L>#p?a t^[LT,Wm_ϯzq $a'[1")kV">F(1!5 @q萬!%ukin!D3 B~B1z"TvsQEM 6$@4 [;Oɰm]ݎҷP&EAfq0{WB%~vRPa2 iXiGD74 xsue09HR)@D$<־EBI?LopǤsC|.AܷǁR0D ^ƪ砇gHHD(? h8A2|pzI`D\Np;iU0( 2=r)Z`lqϜR_u6^z˿cy<{,5Db޵3}ٸY>Ipp/td(vIt~"!$!Kwv!BMHL02FRE>39uY_xP -1k 80N4aBqڷ k5.F7YRpӆ\mvUzHUnxǦg6 jX>Nڷ’tG=6,Kʋu~՜֙k$5$4e %\4uPϾp=GuЕ+)c'5, `lRɖ!g2Ȓ+1$溲z58~/酹W< mƲvl8ݢNR,f&W*0bmFM ڨd9ӗ)+EQDQJ+ f98yBmlq|c[bY(KFYcīK_f Md٢S) <J l|bodyI^4fD[f$wiݿ.&-SJ7HcIN'۹!CۛL&9Ÿa8`W ᤱjO+Yݜ|?B=ٷ/N 3P &:R]-6'|XA7 Y[ū8E\2f =yd Z-,2PeC0 u'ﰮ{M +hO.0Hd+|/07T &N%$~O%f5ttqx'vL;gH-6rTy|L`F*y.OmQALdM%3dR'J2svw~s)%(.%By!oMW"OdԯU؅HƑIe52+o c)"Ԅ=A~J4tKr`㥥^FGVMmx>;1n"tyGj劣Li:a1P$NY èed{FcBAaHN`d1~ `l"x]!l!f7yhFn0 @S> 6bX\abt]4+oPo.yM I9Ά.x1k(˴)q-._L 4:B;G=, T:ƞq`g[6|Q.UCw Si 02( ub 31+גB ҵ7̈GۭϟQۅ}m񚂡dTu 4s '(4|q'5.;N"b8g> 1U Ţž>(籙=l@ 9vyyr1hCD3uT`1^&,N-\E $$mQڍvnE6ܔ˓JQKWh9ҥņqgpȟJP}9dV({!]8:"ì~9NjEMdkZi"3jݻ1Ĵx]S ShO(љCƑÍYERZ77Ra ҌhV$f ٕCMh!hE"xOƼ-i`hh] #E]&\r'~ 8%H(Ä/oaj0G"*A("eLjP0V2(0PoZ`zgՁjY[rwo[,m=ﮙ k>vm߫u_a~t~'ռgrKxͻg}ߨY'1l\s~|qL#vI+i)0OEqe,ѫo9&*-dEг67Ͱ|Szz=bTzϖ֥~㎩χ6=Oop w:o{}TNs~E\kŰ5GzI||vx=wQxoYU=j˯0?y{u}n[~J5;9~Olz;'u~2oU*|<}<8Jb$$865nJ낇0F@1ߞvs5[k`idk2 vHH:4CKrw# AqlmF5_|L??LdᦩI hg1!MpBnKnQWw!9:q} O(j-\$C"c0:IěEaPAiWN.ύ)B0$3 41>~33 &)] AdAS@  0@ րSL!pJ4Ij9C@@8 N c D|>LLwA E;SQ\ `) BdJKKPa` >s$2z).HCt%RM DqcQ&Uмussph!]w~a{9(H_nI(UlGz'1ija 2?ZEW1K2if9 Z4BEawbD֞1fqꦪji!FPxl8%ZCmKU:LyHpI xC)|؎ƃF!b҉ h4:$l$Z:@(x4Q$I)G( w@ g/z]zAWXȝ0uh$HFէDPԃ{HԃwBF#LC x*i/A4YhQ ?lP!n4 %;29o0*_ RN }:DQL d LMi\Au|w(ホhFszACl@ZFe~sc(Q Y 1*I=ΐǑy|)/*@ f?'lwG0egL 1{}Җ$CR 1P"nbQ? 8ĈTFBX`Di@v |AFDn碱h9 mq 4ΧzxD2e2rȴ?{njAZSiF{Jr( Fߐ稡_}o (Ϫ> @𛖤)= K'xï&92B&o}VzT~+srx'ؗ1sz@dF ZBK:z׿i[Ř{n ؂Ll)QD<X1[owntSzRtU#H -mc2L=` ,S%eכ1+ƘgۮKvQgY"}P(8Bl?}] w) L^X!hIpIx* Eiѹ_OcW-gў9yM<vqP( Lk鼓q[lU8F}Ul;5* A24m$y \O ~RVWeI>s1+"LJho`nc{)ӗn|2z6oww}o)*}|1\,7˭ڻ/ \r^ t6^Fk$SoJg6rPpwu@p҉됍 i#tU++{"X[^)w-e?fm&@-^ȺERg\;;V&Kz|y+r vW/]td8XD F}g˹oc+ܑ}'ʞnz-~c2z0ھ_|ȮBX# @O " f 7&ÓoF?~*KڋKz@:/K#2~Ra!Q ]ԫmYW1?Z!/ c)j CU~@BMj HU=|@NhE@4*mOoR_f Cu B"+}*8nʕPP;S~k? 0{ab&d(___οkmX=D^UjxG~_."!N<=AX*cl%T`XAF\e `0q!kO__$dd P@:c'펮.Hzg!eC`Q>aI`g-表~ kUW}+*mgFժBy9?8 zs@P; ?2FHQQ ?p)O~a &D885 d$3&h̐ADȯ'14|Мn4723"#.^ʎ:Qx/@$a%+VvvvY٠VEbN֫U:t訧Od,O3pAށ*1 n8O16o:?{S:$GDx%IKan~! P P@CO)j!#H!vh> R@^w'_{Ezh8oL6ceq\͌~Jo,yrm94O}v"1C#UIKoTTTU^32(Err? aAH&͆CV >^BEBh%d9|Vw=Ylu=eG2 $T ^_25>vX1PV>$: +6\ R b 6ҏTSyBǕ5"8' 9b =4O!EMrN8C#;/nxt3AAd#'q $ B- yyI!#rI⒎fWs<8_g8tqQtv{] AHEC?Nu )#\OH|0'R'e>-=3ˀ=Rc9iQd1"aƖ3gB")o-jdl1Q2 4TyۤEwV\kPbYg(id  D,y-9妍ֺ?˟msӹlHydDz7߻utzcnz<`ڏm;xuqSn/OP}OU=-;w/8G^Tw VzZla7:C;¾16 |O`*6TꤌꎂACs״TuG{|)H^e$ԡKcݜgؠn嵿k-#~0K5 XW6;Nk;?2$7\=I/.Lv? $ylaxխ?0,et}LѣsHp/k:VTL'{z-%Jua*if]ҦњHQj&s\÷0*xS[Umz[Ħ@82CӒ>pIn{Ń=Ў p3:OipW1vhh!K땭[iwU[Ht.C[i56TqhQ (^zf+};x@_~7omϽx{}2zu$9V2<^8od0Y^>i  #VG MDžL6fn~4DҏƄEY,/|{P[U̗`ȒgI'3)hLB[Ȧ'"3J© 2IJz0틳ƩZ˓ڠ+۾6 2:*B4GټaW]z;DS r*E1ʴ<OD>-駪Ǚ>O{_gw` ɡW>mH|n0^|&n6GXec s[`4{-`@ lj 2h< SFx輎# bMj@Sy ^ 0'dǻyk NRMlv1)oɂnI"&$ewmͷ TugaEUI3! Q6 Y#7tI3|>p)'5q# lόC0eA}DQsӡ#ˊ:|˃yșX޵cߜc\;d))j59MdGߤwsLG|kmqϋ^W/ f)(-E™ "(.YclRy{p\g9ۯ3nҫglv VQ_Pvm,e=rjJHUxO1pȝx5E,#DojRʵ&WgCdžqTe+ !1n(ٲ#k=1{01a;ܡ4"Ozi&h0 %HH+aP<nw(\%XܻhK- Pә2PY,jn&KDlf{="[`1Ar!`g2ҶZ+RXh~C?E>~vu+sifHgL`Hf@.p& @\O#ق ! ۍJP"HH d۴91 P 9QZ)qqGvŇiCB !zNwC;8rA1x1ɤՈ٠̑O BFf<vf$#o<u/}/ BADPB;S!GNjN]y5n1Է& V @50bAG >5G4B&jA:H Ē=Fo8ƅJQ#tP[pp 6JMyJh梤 0΋J*HHM̷];G *26HFq ژY f1hR#ICLDz#L,zG26˜+UZ234ʛ@$Мka DA $:3;)R^:htIp7-1A1$齠;D0qlp`yNO 2$F$%Ga׎q;+lW6G@uaKQ)îdͣt7<.1D*pII$SwqauByJU )vDM,Lf\`0 )(<4byTdħ }fP-ߖ"","Y Q_Æz!>Álpst#"%@fcdiafA/tbJ IN9a L*;?RuBS uziN& 6 ) 6RUIC!6@2gퟸ?ԖDB[bx|va~,`-UUk*e%4P}LPsKnxv('gX0<B kvGgJ[726|4apu˟sg.Z$K']O6ZWT!V(q.\X@$lbP`РҹkwFj.}[ /o! CqEkO^ֻz"'8BGgu31 F1 8)Ya4ԙE25?-^}4Kf/+3IH iPcb#/ؐw;v`BBi0@| |~cLY"d4*ƤL7ׅn\:{W# w%= ʡ Wحpv&'a& H;0^LM7 *ڥcr]1>`p`c94 LRRD7с, Rf.ټ twP52դ4kqPbKjۑn 95%h᠗,#84B&D2istzŎcT3JM0ʱA[zO)Eeg~e#}\=L#k\>5˘ qiڛ%]նQ5ޓMUܖZ_+^=}KSxeq, ]EC֢2?{x6m"7*)A @} THmHUUsA3 G,>J =vx0?}pn4w:( ^e!3zJ 1E$%eDֵ.h(Vwߣص#7HBxv*E&5{y/e[%b=VZHBij6S,eO / 8TA`.5WnÁ T]p40:!BIyw6; JV` ђ\Ō  %A_R |ywcQO`<ٗ..oe6Vx:Oi;lG2c_.&֝)&4+h[:;%=ѿ%jcLIU۽`/-jCji902FoDj12cI%~Pe)'jrL'I{9D$34eU3NR2r$~~8~nG-{_$,1T}@eE,#k,-(-WJkHRmOzn X; ܇-Y3*z>mC?ӌgx}OXEXuѢ3 Ir5r]y\D5=j|򇱟|8A\ , 3XnN;urdêvFNފ|qDy͢9YEdqWQP/ 9lR NkcH=륪de:X7ocH~+2rZ;[;uHGmM+^s؝3lu^L As>7akG~~˗ Qiy%1= h[zxw)#6e!mkWpV,;!%4jB6.hD#Q |b;Hh*ul/c]6e կ4"9blzgo2\fNjD D}ysq|@R#1kx:LA2È3 ^chs:}16I٠ Wzv#B$)UXjiR4P@`~#LpC[J (4b8\P$R<Zdp^zu~Rwtc:B TNUo2?t_5'ws2B1 My3x=aȨ( |Dݝ>mT 詩rBB*'$\q0W͕ZtWl04 &]#2Padl3\Zq#6O{9FI*`zTbhQiҺP$rpa@b.$ԸwȮweCM~wn;ɲDSըK 0]p,K{t= ֕SրBHVEeZ$D> Wh ػ]ۅ-Yǂ*CyQZz* -[Nd C&AVR.=0U,s;b>cy!3В,"Ia lHeDyt& md2;:&;O`QԢ3)s@!G?w|~.5vC×ɋF8?F H6Y)y,MThv5r4LHW`C{t~l4j,.a2Y s(W- |1O ji_1>?5. pY3lRڿV"ئ]}ffAHu!^A"v%wu?P^_Kle|}I /bn҂/1Q Mۂ'xdT̑iP6pΩп|0BVӖҭ" h{v x;)&k=1ïF~ɝe{F V9L+&ʲ?nbo_±T琚hi|I%pf~c5a[A{?#D9FA9q#! HUe.B/q|ͨ;mfuvtD#&& )@LTTfʪ"hBbjXl#.u&\}yoZ}ߣ=^ۤ.g1xGĩA# GMԥ>{,1,_cTZR%E)n[eջ1QʛK׿ҞM}nWRU[Ռ u|-O3􂱋.4&j4!sb>cV0 >ϮmrFxWBFrkf^!>5讯#! 9A }HNvhO1; \"BpW`ɮNI3S~ZQRuK4G CkK*OԴķ}aA65(:~K'䡂z ;1®JVFz?44)l2o^/1nÊz}N&> {Rq> #מf.h֖+2Nc~#\G Z.̱2aO>9_8+r\! r`I)~O[#y 0$KI isXmGD)֩QLڹ)эDBSq+cb-IƚR ,f* 5| Wrt(1lhcЁh~V^=,?:zGj`u R|FU$K#Eox2s8)聚,n3vծ4Q"F Ce6 F?;E`L :,ge'dd"S $s;~1W+̧M4mE ~[r>&0dbL-hJb3@$&Oe M4lpPd8;[DXaŴZhݟ>>{TM]Y:ɂI: Nw?Is& ,eWt'̤:LۆMm1tqAXg|:TEAN< U-iVfYYRSqLLP% "֠W]xj9ex fr+ ʆc02eYN<*aц±:dƘJbNC早ZT׵pB:FIq@ꖀ6!*@/am%eQ4^pY3wHE]D?k}!k+;sJ D5vh&W֨jhGp BM/r:mM8ے6 2qcbL $hH#`G!Bt+KLe\]|PPm&SC=›&~݁0'>n7Grz ^0:2!5o{k;=)_qKLR/ɃχٛSucdxW"o*R*\9(iJ antۘzRDz}`J;(~cK11rV5?-"D'\fL6g?=K‹YlscN'5m,>x5`k_qh}X:n'WYy^Ge7}j/ڎb #=NC2VlK9iS "Vlk"l&H`Bš76siMKP4@f(|)ozJ̻[HVfDdMٖmxSmأjc&l2S!Fv;1%,{^#M"=ryg'1 > `D NWҢYbKs5A?n?qkZK3J)V^nXp|}]RURxϪ[s&F@G`^nz"~ѡʖ6Y6DTn~bNS B[&CWE\BK fAq aN8s.Kxfn=;~9c sOsOSĹeh*At8᱌E!j'Sb%g\!Q._kqףG9]p_}{r#舭Yb1eHr͙I5嫝#νѓl:~Q6]EOr is~bL'{j3΍.ih&>Ki$}>(#ԗ ˳n CMiLJSI֖Ch 9Z:Jʮhaن+ cT| O -e{NEAwX71P2[r;<:gdcpC }T94^ K/ 7gEѰNqE~X/VZ<Ø=cؓ* /BދҞB5j{.H&.S\h̢ MY*dawɈP _w?(HGsEED˕Kv,dPIG67G $mIN<"8yךIMi! ,HU$ȶkyކ0>0|ے{PrYpj+9uҥ^ׅp;)j Nٮ58$h0̆i;k~aly&_ @,2zSZ~]BkDDOɋ.C}nGRھ5V_|خ6 ~͕mƒOhoJb }!J %@ a1( lf#`_~"NWmO'5Zl@̾o6E/sGi:>Q*b!i3f@ CCT$ gi8aȜTDKS$H&2HQ+&|wsV'}/Zp:rqX<!6}L)&9_>^^ѝ56;Uv᝾U0ċb<Pm!`"~ Xq HX\b^lwbtiUcb]U"1Lg=^MYm&!UQv wp L0FA+e4ҙ nԲ @`0`G.^lun?xҘR{ zҁv慍;R1OeGHN"xbq`D曐a)B zu4k@GܝGʈ20*(,| V)b(&t&fdAjH2K&;@'6pɪ5Z˘#SoD>,"C#*o'9@>o"oFۛ!|^pƎfn;4dͮZ(xZp OYAI !qHU\muyň zJ >VJKQ5|ubq?Jg0 3 זv .KBbpjX/WT,x5%[wDYҶzzm~h*Dvys^ʐ&gupdncwH<!׬{* WwqhtW/'DZ 0-%aV$NOsNwn{=1:'>9|+֟Y53D ]-iq{d?j {XrmM>Jm[m ƅ5?>hd>T%&_^=;^nFZ$rӆVh꒷~g>_O`O᮰\ױN:n0sI?ƀ?zm8llvmIw6M:Mht@hVPp`H!-{}<8ߕeר? 蝀P@}w۽qqě_6;LG#^DDIVckgzz*6Ɛ*Kno}o}wǸ3m$Lw3r#`yط"O,:KnQVsO[A-؃Zּz?Թ$]{o_yhw$m:?@ X^r;c"cBPl+a *X*q "ȊLC1ĢRt9ޠ1 0Ă, $$s$ L]yƄ?)@!|xAYB%a4b͚7(1}=9dq,B+ܥ|ɻgozPD*?KA`V" (2 "s#~cG2R̀3( Hѵ30P ak8PyyEЛt#iA1u0Q(Tr)4Ά LhH*hB^<z rDЉz&H &88`EB1{)0רtԎ4qu% J"1Ҵ5:NZ:"bopD4$JQP!!C?c!K@bi"m`AM]$6 Sm^a8Hf,X?v_|*WT HjHm4zԁ!FF&!ddv Nw yƨ({x*6(`s , ^*Kݪt (6pZ=Fٛ% PL=ф]rmĚ8E-R LKgPTN[M6Yٌ VRZ8_ |({,*  .|X{,3 jcV*4|cdcccNOG\f % 틞Ֆg8t#jlU9*#(;*! ֨sH<~ЌX~!ƽxZ|D> 6u(C5@=Z@߷^Csf-UI(]/0ɑXTz'"ebHi>Dž<8Ae8-9!&ϬE=sPLUT46`"];4fQ}8 QĉN~|!ܝܔPL)~P[r`2BAxB|KX.~O V~A?!H黫ML8ryGA6@`YS y sX"6,'@4)(t+n!R)_^eC!G-` TzyLf>Zpko`PPuXmhF!o>~(C VJ(l 2Jx.FCp*}3m=͸[2ymIP q /T8`6-Nrd2REB~{I9`jNju|8Dcʫ}o8ݷ?C!QHs}HL GՈWm A x4u;%4By;IˇY,K+½ l, /@Y#z D&@$fCt*9y?FH6u8822}-_eXwN%]t#dzVe\S0.<"aGzCrKhIZE 6 TD?ʄ<5hQLjCx(8L$xҧ8ά'ߋ?/(Ϡkn:!LWm=خ qmal<}Ȧ:n 7T\1pHR,Ml t !ӛJ Í};`Q!}(1`Dr 1I c[O & \JsEb ?'rmQ*;6+DeZ"0'0*8#* qՕA?JB $ĕQ-DAD$\9B0 x"CEG4W@}"9i8BӨEߐ9l2JWߌ8>x̨"+<'(   S""Y3 `~Y %Z8%{N@ך( eb?􄒟4Kr2M~f+$'?'#02zfeEUE7qY(98 yYmXDvDdLceEVВ P$KQdGD,1$cqI,IJv (Zi,\E7hS&t ɿԼmr4@^8F̕FJΐ 1ϭ<Ԁ|'0f9ȥʀ.A$مM=r`@07ôM:STty?$00oɤK;w8G]5.f;a`=0#ޜ0A u`:&aSB c"9def-#-2_7j!NGj'HBOɪpjS2hKG& 1Im )w^ @)yMhUH!pP7F?бst Er|[9f tb ;]:UTtf*HM" Aa?6h$4ԡH ޙg q"HZ &ZMSNgM2&PMGUԤ"|ItԠA:O˃4=Dj:֮xkFj&n/ʊ < xftq6AD%тZx"X$z Z*d Ahi؏x?,/IZ.XF(<%GP_(rɳ[|Bg咿P{ >"{ҶdZA. Or@:GC%OùD`<"M4GuL]d9RFd]O&`B@N:F^4L0_TU,l S@Ј[[m,pNrPSȂ6F9ڜ$D%ABԃJPRNr SKHslaT(ܞ;)Ԛg!i iЂYÒ6)<[@b>$OtE8l`0 II=pϠ|J]PC\8VpSrI r^Z `?@L DTشPTIIy{#K"섂gfBߥɠ||=&X X.k,<+!mt ;_oGYJ"')IƦT؄\.*%%O( asb \o[d/^%;k΁=/]p,\#]JyW ye$$'踿Fȃ7Ob)@o/n D2y,5초XKYX0 vh{.%' 5{ABQ[EbMu;,M#H;w75fYCH)0`Z%yZkhjPdS;Xf @{V x7`c2`+DI1};ptBxclؖWRwvJBĘ*'hVBF3 &Ú̯ōh-mu:) ܫ`1S48PI-7؜܅l92' .eJԑ#r-l,",oj"xP:lb\tq,񃆅t_n@ChN׊rbT0LY!;t`Ќ 'uc(,p|uQR܈P8 ᳶ/Op)bGQ! Z5EiF0 +.(#=F@B)9!mM=n)-[,V$KadO?Uvy*Ha$3y"m` jKڇlZ UaA*$<  T ;@)ІqiH΋B|G~t}(f ފv/(J ;Ȁ\^¸F9g/2.Z@^4eabP@ ci$MOHd, .}EY b[2 VPH0C 29r1+fE)8p٣%B ցI.S"[$;Uy,@q 1FlC3n:CCS T5.N)e׵DicdžfL[-m>'F`/ba yx~BAd]@ `!WNlH(Q4r6d'b O NF~eRJ|CP0xN'gY!/ӊ5Dָ;[)JJ= ,h*!xW{Imz3 84rMnke8q4UOlb0J0 F8P. .*I&=ĐM4mb 4JQۀ`G"v!%IaSnEYI­34kPlH)H9k]řsX:9- Paա9D}&VaR _mkZFg8!S[oɍ57ւ*B c\GZP"1AJ148]Z4#U6f7gZF&RtF+ f/0 l6 \YByeUB TSj!Ma#YcgW8;geI 3_/xi6 4 .f>y0aj(6J+6C 0  `VT@oEHJpCHf&č:׀x-uޯff&4jPĩ`P$ÐH> b ItAn7J&`le8-HA4x3cl3`C#Dtc $a0`m: zj&@N+ڑBf`c©@pe!ZED i␯F)CYaRX )HM ˤh)d͓5kb3 'H4S"lWcϗ=`iF(K;BIj 7ӫ{lip9$"H""6wRt%9;9.iMmb{cUQ]k,( Th r$X2]#H4kI@;0l"#hZ^Ja3/feB&6c]7na:rḀ.2 d,Ja. JZh@[tv4tZ!iY"Q#b;QHK C *-Ea`lAXkC  MyTgDGd +Z껀3]fYbk%4+pBE%4;Cnij# Cq#@-($(¢p}{-.cg BH$(1D"7{ݞwP?]? "Ol5q m3+f*56Q<`g.(Klz:F Q\S`,gţkHИE8(CZ3p2bDMٙ?>}?D2F05[| ^'(@>o4}BEqCj?5!k䴩*{֑!EQ#ȃ]\#p!"$} D" .$&M8b)ʦ *@ *4 x9 ! t:\z L'BiSOUd )"6z6/ѝl4!HCptFR8@$aYAH؇d'!PSQKP|ZX~h>6IZ9b2D&1BX1j @.D IǓGy^eWlL1 t5TU<P"D1E t\2(gWR; SA5@#Oe?~_b'ӬJJ gh5Pc>0%sa`٢>낂M P :K+ j I+ jdE|8aFuFq (qIHakZBKQ0@\HF',i307 Z<t6fčI&8B. xTSHm:%A<Ȱ2p2A0:yꪠ*D+TFD?nP Cdoy.|g,A"GFY?ٱ$ gF*փ"f ő}Aa]ÍH[$9Pq}dlmTI#21'Io@mlO$IcNg[$Y't46nI4屍[mFBImݜ7mx\s5g2I$dɩ77V{Xmr[Hm݃|̽i eݍ$[26=N6}۩IrN6?jH4AqΥ8K,yYIYܑ puVz'i<}I&VNG YĚȼu$N$Ue#v3q6~* A$ƚaVh2CPJj* O`c~2I@FJaeu(\+Nuu^n \@uf,@"('G  :wz -Ɍr("Zk,Յ~NXҕ*QB(6U;t8i1Dv>/A>E>ădy BC@c&2Dd.Q^#z`r(  DA`ĚLcRlz߅UpAXXbRc>h@2ڢrV9"RLv!`D-חlIrK ʧx(ı 8<Eh/R$-;5,bÓ1&)z@H̬F%<$a-^פ@4.dZ mn0t 806; /}eZJwD[`X1Sa7zY/!lS0?&PTH! &d a`!RD%$ED SpKl (@rФNpT9k !?f!1B1l|unyAjC0iw/T9R\' #:# i4@?>۬;Q=E8D4]TB.B˚4zFm[2{I"2F,h((q7TA)F.4#00Ph2!/D(M(4c UA7ꑐ~l6\G?40U4 6h4j"Ũf 8(mN!@U@KQ!H!ՈAH:'@fQQ^zQg$vÆ'_}υ }UA-$1C$%Q0 (%4%# 4D]p)8'.?s<SD(d3,@Ac-+Rs> x%58I%/P04A HVC`boynkKx$WbY@5rӠB=牌)Q02/ +P_ C hɃЎ%w(AH |{S"b0 | @Q0(= EH~}tjA"*4Xa >(gki8bDvCA);+($`}d+Ӟi3|N!';p 6ѻ52 h@~5;5 N@O$f%>SP + (|ݼ(r $Ps2!v0ZCU0_Ox:?Rt[<?3e(R'k ɢF^:V{7Ȕ$7;%JB.H:ay0h9)РaHԯ@" C0((ء Ax?uw-&M 0X\$8P"ڐK>9!H"6L ty%ȬRw|0<{N0B4QT,kj A0ހO$ ՚8PkQIUDPKq(0"C' !^" $ȘjMZVqfa!dah T+!Jyfz>F&@b %:^ VשJR {l!uD†?H5 b[~ZS(%0L5x 6%8\CˠANTxT]Fծ#y86 s# @dE@]Y@C 7$1hL fu[V!/`.1F*BW3o4%(o,Iu|ayw@xR|9Q.D+܈.! k}?mSRjC!s!oUX? ڛ(+pQ PG\ _}GCL(~oI7An4nL.eX^5=(88"(lމۓBKGL8[ضu?ϗNOUUUUUUUUUUUUU:A?8ma:/Ħr"JBOAƞP hX7} 0mT2 .3  ^a@(„cY}lfAμ*F@JdTD\fc|ba>eU8; ;4 eF̗>UsGݣ1A;sfG><6df_փA=,A!>0M読<Qf6r #Ÿ0K xmH!JwzvEu!k n Xmq9f=0BP<žM|I<ȧIձQCF V}h_<ȞעBhS\+^BBDK8:GRi4)Af?qdt; bq$=BD|zdyUB> a:ֳHcKL%|(v0ac,JHr<核:r@ތD2BD޻r)oc`<ک7yUA]؀bRQ| =ܒ\EF>>C`1$IY-0CA lIIQ**= s6d8@1D>/D+rدV cP((,!˘'9\!'XaL P5 ͧ ]@ F">P$S͆jE} ׸j"dN!ε1#b.#5Ih M=B;c ߙ{/C=pwYv~Ja>!7,`qqIw0cax]\WeP#F?)]$u4$`T%%DLQ]K¥be"A1k$j5I5H%"7fM ]:(]z$8j87@=1pJ`EaQeV {"Ū_{A_\hlryD~ a%H84nQW=ǶE"A )i'lq7H ^NHЕW,=`J~]I$%MHrdm=Q2(T¤ ǧSdvh8AL>:;IBYb# (*Tp0@2Ф5 2_Vų<G `D ; *NhSb f3v-HB)[ Xdt:Il^Ը큐@a{ Ѐ0C%(˯#V7hcc2A|_4֔>U (0@vtɓ}@j A@@RjgZ8VB"Jɛ"hd_R0`lx zʯ(JQJPb}Cv k҃a'a՞WTNuXF4]ƀ `D'i\I"PzoX0 i㑁'Ӊh :@kj%Li`IXer aڎ^{0&h o-\%RnHMdcxXæT]fa6^[<_QgLL3qRPh|"$Hpnr|o\Paa15X?Y<$c$0H` T*#%"aZ?:upEȣXػ)1?o3`(3(6: =HfP4 KՊ1)Mo%VE(a٭K$gn(6d~Pp"F0x ;EbbIAob) H>UdD٥%'v~ӠMJB."uOp8=UF2gܦ8l$P@lCĂv$Rib&!İ Ql@8z4kbRC{Ёu" 11?ۭE>nPx)P Ey|1B b`$Azo߼('y6  D0@@N" /6ȺG8+߭4 5(D g+H: dSasG#$GJJi.V=ЌI%E9+ ci* Z~.ĤTMH S@_SCXN;ԉ( q,ԥorR/7I+wE30ذBD R$C!0Pb)(U|ܿnhx'㹪ä 1%e}H?}Bb~>rp $cJpW &IFS5+2(3 fv#p|t3$$E|k11(&9ij;=7 SyD׷ҟǩa֧!"2& =k֨mC4veOzhh}&YLX7b㫱_d^g$R)C0H%4rݡt iW7bcBx!J3aCVRsh-[05#`'avMϙ Lg1,ё0=f{ e,0@\4C+KPì`qXΝSa r 7݀`Yh~h;\cHp5Ҹ7҃].WAѾ`0=K/^ z ̣"c2G4Gټ9<2A7ϐ\2P0'^Z}E8#='OjEcr\:l/pţF 4@Q".3cchBt9W#mvqv 8)Wؔ@i4n1 mMp"RCXC ;.(NH]I*+ xϸ 6A{tlL#n3&̈́hgTḣ"'!2uo1J]l+#rJ2)ȁŅPLៀ8i=6d3+_oHenF ,uIRWDokz~1 D# X\HR `;= .P0؞0/#J {CHOPUh~u0-TB@uwGF Hl>ae!,R<`|]ir!!"fn;,&<{;e5RAO=CM@B# YHvԨo4>HJZԚL*Ż=6ECđPٌry $0Rŀ! ‘؈5fT׬{H9Ш:@H6hJ8M#(?S.k̀hfd<ᛏŐb8N>s:yOo%rt 5ChA' f0 (t10zP4QLIjH!HaF$p)@2*A]'XN&@1<5a 6x0Q{TCɕ(Y[rM^N~Ԃ@ڮci }UCk^8(sW CGVِPN4<1I51r u Cf(|Lt!ɩ09H!;"u$9#F@$f* }:`y HC6DCcQip`;H#9b}:!'`k YhŒ̬p)ddֲB/ NR)@fdhȊ=ЕpSlFc:q(=eU.>AU&(t@b1hcNlwϏ0: :b/;3Qh;8\% ~WlmV ع|].W60RA *Pt@:X2@T#T2V2.tȹ HI0$t(ܹFM&]bv<ZDdy7M~EHgPу9!0Hbouv-bt.š,jȒ^ 9cm a W]*%WNoŔҷp.B3J$,2A$P ֆDvO&afePG"RHH6 ÛF h_)H)~]2k"P sPtD) Bn`(Nq#%.V Tl.C@ Ǹt@wu 0~m RF  h`bA&Eb@  Ai\XL# *JPq4hE@ij66&64%@Ȁ6lrNQPp"\a8jlZ]+0K$xpj6>I;;X0^Ñ.=v@΁]41 o>? ,KUN6C P0CT<'O`h؝EBAvE|%("C1v؜]"~i\m{G9N8ωSFF׬d`&%!PpH 0҈e(Ft0uQbf)* ʛ-C`00>e6 L&߈^IjQX 搅 &Bbmk1]`\KTyȢ@$Qn7K P(3î6)l0DS`ѥTgd@"*Z",Ozy \T0 ;.KF1 S\lE4Z{ IIƘͳBk X. Rd !l V ݼ0/4nLXa<ם* tW(~(C_~O*q%ܡ1(@tul &{ У_o{`j4JCE taNtrbj'GN: }C\ @¦"d?$BYл$hNݗ 1bh?+J`_0j@(sRӬMbI!}D:@Y a -xΉ>H^HA&IEe+b'10ju2 OB]&`4{c Y;Iq}GO9~ovod:s^0)"&&& \EC6͊\ A'h I~f#Gj 44XHQ@ BA~ P! FE F@LFVPy))0?~2~Φ `=u5NsP@}RҦsѩlanJd__P -|=-1a?3(C#9hWd"?G!oK81}vx>v|۸ų;H2q D<_9ΐbz 2 p6Q  -n $rJK<aV}D~{萆[*hmkD>Mo bkhm_CPvZ#!=>"0WơS@ޔ evtWBnoj8ij2pMd i-A$h2C/3 s8/D3}YR8y2HcRYHC>614`"S\4HA3AL-@lPcQ>Lselh-"Es b6N]`̤@ EH&GDM@4 XQ+(a¯ R2BfI/oG~'TD W* 0!kŀ]11pdR*ha(\@ӱ #׭D܂sB D"?vq3qҁPN4@H.y[0?o2%#3{kX陙0ɾ+b#gd#,̑3bkB> A a3Q a=¯B (3 =ӈ㌒T(/G8vx“X3c#O'\]lb'cvS/?x(W .a800 PCi ?"(vdzB9=a~<_RGC@BOܝ'\ˇȚ^8Phj$Ӌsb$0?M]EB3Qvp`' bFnBXqB.dgpl팃j%`L.M%^"~؝9'i()хL g@? XFî0E2O`zgN=Bi.0%dFg5TAdUUQ,11&1𣛛Z7)S3ϻo01FMSHgq4/mXہnu ! hN0MhTA'ȂXې7  yW9A]iaʜx?%hd>?G%륒eӾUiixF}DƑP80c{-0Ũ>*ilwHb#쐨>͢5oƍZfbulcJ'j(tPf`qsmHb%jP-4HAsx ">rg!֜":|"D!7dLjwx! /xrtq|w_3 ~5߯1A'N9a2fwD &`>k54<@}"cnиNʈHbI ;Po[[Cx` =z;!nA 6A,pQL CDr`h tl-91t"6UQ kK65f*QnB ]jTFxN U˙r"Mu0-[MHj""9M!{3ɧ;іGb]C%` t>?{$bV(ZarʠB( KC~y}cRI)ƽx1%)Nq؜zN#* rJBr;!GqCE|O%O-v>^RkLo2;aF0qaD`p8Z!' 1iÕ+f4%eݯGK*PBFiVH*&MyqUaD%4=I¹=GAvGUC|YxF/WkbbhCFF+b6VzK )-C%)2+{h,E8fQ&F($))+H ;zq"X)*jwfsH(EeM׼; 0@јg_X%7xi+S{dY:8 k"4f=1sXt8M 06rX(a/}Q!rתy(UrUB1`01y˜2E|XI;[2R4u0LѣB4ҬPj D{DE׸j^3`kH low}( 6, w];o q鳚I#[maKe4ׁx ZBOQB)T":kEܝ p:e͝>uYs<u"1eЂ 2Ǚ@5e $a2~9Rg|[M ށ Q-'8H oiw9}+{ r%Ou#A |>+]|NvoNץ|Z<;q39ߤݗnmtޢ3k/G5yߟӞ7鎽v˾]OYҀAI A)zEQ0!˘CHPdWouLl= 8(E+{pѝ7Mw<t=kt5QH(2qY<*-dfCMV0Q~"Ac't-8< }_MzlǪPTzrХC9SPY,:"U(| TGNQ0>#oP^7uU}5*@ : {`…]Wc fo >l]ыėBeS)7 h*ʬ!Oi]ca"d{FzxmNh#n0g5G o֡Kymqa2ZK}Ǚ2̈́WZu9BIB 2K;\9pJϰXb)Ǒȗ< 05`/` PzOZ:y앗%nlr 9W>^K@8ӝ B#WMm$@c1wx-MOu Q)<=1a[ B{"O{1o9=̗ve%Y`=.,5H !H y71‹Q 6Qnq(k2( .f`f ^C]p ȋ$|FtF(+mFm|VoyVۙmڙm۷m? 퇘@UDd0D^LY8d˥*;cB604U#`Rt BǺ);Ƕ}TSk*"/f1N/tR1ɁxH\eyVoEA[b@1 !AꊽgeUt)M d E G;VqwJm~$v!Ц𚋑4lz̬?eSX?f0k>8A)G(LNg~23%Q"wۘc4CF/xI 0B1$A=sX14 &2xJ&,  *HIn(caG \kT$naUUÜ9W\EP{'}ɾpNDM3 %'OP&Yrzn%D&WhtÀ~6",$ṿPx -/ЈYS{+hG~TQQEDMݖ`#~:2O֚쒣NAO<] 34C \+$.(M81s̰4i)(9uG 3)R6)rppl!nXD#tu?~_[moffKm\:ݲO.^C*Ok޾Cz}:C^>:JV%0m&7@q%G76-MY=z Zn:oj̼*P"\H? 1$Co7mWXcm2¬`e:38!E%WI#T[ e b`! }@߷6ے&ek n hL@ALDDUUPkX>?:߯O7R&-ua@W# f \|vG-TDՆ;йH$%w 7d]YIw(P*yYT{{qq_Ҹod-o pw kN80b8iX, |!1Oq!"lT>sqѽs6dՔA3bFQzkHl:F8&0M*>3X˴V9i3k!$bc lN)@WᔦT i)DR%TE"q\00gE!=@L.d۴N.^si9߃:rykIspYҊkB7h3{<9IN7I%\kbzfj3 Z⚦Q?Fkmmm7KmVm1[mq6{3x(((x>;2No `z5Ed^!#HLm q'ITԑUGk $&& & & J5٤UET5Q5MWl$[X`h;}!=jbG|K^je5fs z#bdqgR~h㉁"K칝>Waw_dayȈ qw`NX6&x]kLKbgIqJ#hJ~3}R`ZG1.FexHEO?Anm).@va9vQH &},C˖p0Ma |J3=󼥵8ɉgB (0H~,lCcL)|l'^fI/(@\pA~g>>`dBe5I(s6+PZ0GsPh1 5#0(hZ$$Lk-[$K@`}uxt{S7=hTa|/:x<Y)*'Ӱl")m"t3$s"R}Gdr5f]DCՇ*{f2tAcX°)G!>na4Z[ji[;MD K"76D`I8 )5oB6m!\ 8# f5Lm!F+c2rPp B63{LLLLL81ՄDDDDDDDTDEDDDDY1UQUUUUUUUUUUUUUUUUU\&r  )(("beӖ`K!G f@}i (LIOfMJc9:qaaԶ``d)!eTG0:lx=ъ<)bdfb80D2b@2-a`5h2E(0# 4F*y(#k׏20`H#i&dR mWeFE*lcF܀?ɇx D `S>Oz|G}D#e4#20/a1 *|AAMLnelیXBJb0\P;N*Q6ˈ]D40A PR%3%(JHȉwAr2~u,3n$ `-G[HYXZ ȭP"pmܯkDJC[&%V#0 P4-ywH)xhls:0P܂u&Mb8KYJ(b7&i C PЂxS}p&uv)…V @zL.`^^RBRAlij|Jκ$4\L9AB`&%tum !m7wwz%j*`m kD0t^J؏' !T:ް'@pMؑH1EɁp`Ib1X r&V; )TYE ufo4# 0ffK'0p!!&9'C?W`~,,f/F#&Y" u Y"ӂP(P@ rAJ QM zT 3jsD,@BڣnbMJGLbh -0D`0Y`%n#46Yr"*:-p RfQh۠ u$'$U "$ YQHKlA kHęWFg D1%$CR1Bʈ|a"dxJ#gAJ} (em2 JH@ŹK2 U꿎'H666B!b蜹0*Ԍ`Lw%~p&e $4/T;\\AEWvGE.f=ف϶`+^KES1$]+ڐyh24c8 h=j/ˌH $"tixoGߘ;kw_9?0sOQ% ] ̗"XC"t}fϔY$h&) DCF<BPz3@x ߍ>bgB S)X A(D=(Kj ]b |n%,~w:3, 7?{$_> ƴQk-Bq*YP&X>gC9hE%4΂H ,X ,V4FZ6|iA.9d!pш^ Dظ~* )"OףD p3d fFO㖽/POLp%` Bq0OQGgZh{ HACBys顷EU;LmA( :Z@d):~.:Q-Bz=C"b#xʊf** >V`BVy8/eF}CrB˜0h #2t$D HQpAԚ6 M쇖p(3. %/L4R# t!DH H* y!P P,T#0 @*HJ0"A0 DLS5WQ$&7I^Բ-R!iB̯ U0}Ot:iȨ@u >2& &.e"VѨMcr=  9R #|LN(A>QrB=d-r#1fG<:0рC*E1"\忴l2`<>Ě)P$AĉÀyN]D$ bp6 6n" WsWs q%R.T"7@pxQxtq7bI-`%Jx5Z, B EJ^@$5Acسeg-]KZ{ 4 bcUl]gB)ڧ?oITeHԯ<a`1rF^.r[3 E j%K083DB'$_ ֵ\0jb!cKR "\D!n)3(DҸ%H M0j̊4~T$>eN h70҉v^T=D|B@vAxp1"ПB~?ZD 0Zu(ܡٙ)zNCFDy|;J'J Cc;3Zj̪UcK*SkppC$a*R:G308;$[!C~oi_%`،u!SM 6ta EJQQ-=ϝ'㠳nj`h`<<SiSʹd 'WÙJ}T =>ڃ] ,> %:~T%,?s SPR ΀y !a%!0TPsH%0ߠ's:(@&Ɋizʾ"+ߒ^ݕUe/00a˫pD#[=/_m# k "Άf[&TCC(PSHH2'H2a.='5HC2DJ b2!d,&`1CYXcg,Le V 0\@F; +hX>y ae\hǽYC\,1LCyIXDTڴ}<]|nb&tP@|@'B;}\6Xs@ >8r?@G]'{cD.&½`n(4ΐJpZG Eav"fG1(Bl3 P6}N3kҞ_> (4"" JI@>O`*0*@Nhz|D)~&0?O/z=w~X u0 PǷ`dDz{AO4@gޝAaMX)ѾzBiPwAHsn:~,m .rf| }_ {CoRc_$!>ԐSqt*&8x jP(O{&%⁜ 7eR!/zF! 04<2 h.uo&A2_ IQM~Ov$RBH0lF$@31 ȌC _k#SROvld4 x8jO;.x5/[ O[_HZM<_O6BDFFa==~yb`f!BDу/ Ǿ/Q}b{DרS1khފ%@0<ʯ e1% mA)=wr|x:njpCJ C>Ltl܅K43؎sN'jǞ#9sa qcQ%s9e:e8`H#X@DJXC:5RP`a4X3 F趝FսjDY \0 "+i CFBQHA&apq4N JPHq [ G#W@|z4#m "~1 gĩjYʼnw4g騎Cg%b,[bm~偓PyɆq0ݞSe‚t\!x.͋]HV/V=rI>282Bc) RC=IABvszC}1 DUM;Q$T3ÌV4YS q3!w@,BX4 C .f +o{mKtyLR=C}MξhD̀ AS=s0֭jC-Idlpy[2 iœq<{hu^ 56Xũ0ulW t p8U0% y  ^ 4i6RŨ6+|~}p e@:4BBiS$<1+3+ (Q\' ̄5A@@Ih$aSZ GKhth3%90 B :=/-Z7=O`MX!KdDM= SOC>RHScP%fZ vn{Y.T J1*HN~@'Fߐ :llrl.aϦo8d8HP7?:BC=/^q!;kYq @j2L=I`A-e ú6:CSC-5$$P[mø,LwC':HS{#T`E:u e>, Ai C^/?MͣV|[W{IFէs- zP-us6 B@s TAZ7< 0i:*&"јAe0 y}1#| aʓSwmM5Y=ÍH޴4poZ)3(r%&iKawFgy{^5| :Yrw\i2f IrːXɹDlnI%nAsot뉱`h^WN$鎱{kAbN㩢#:%)kP`Ɔ:_Vǣ1\,9$G1a!kѣB4 XN81Da2'=΃}︨55u8!&aF@on3NvP O@?|~{x;ηF Bj=D @ICʌ?@L0  ѳ(M2p3<#!dhM+abQ1Y/0$BQӿ2腃2r(mk\QL>Ԇ&5 Y6&YgR*0''Sb8L`2<_KP8H#CX d<6Ä6*Vգ8ݙyXHx|%?fm y# ;-Ĩ*$ qKSFRi \_xxy?`Թ%a>׳lL^B;!vv]?dȿb#C`*cy?sx/k~?~_+goYvmGD'jɢ;=P&î^L;;P_U1*Eh&F֝:g88cJl I5a Rʢ#5`&v'ż@c|Cm1okӡnI,3V_iÈ o:" B\I*BŪ D4jg:dg`@>_,l0Uu6ݞ1#3BUH?vMٗ1iw0f`Eۇ`Yd?BH;b;//~4 V1eYB PAuq~p QL 2Ł 0T3Cz&$@@՘a/A]MauKBRP>_CҸjP&jF 2T>6ɉc;Gk\֫`\FG^5VP I,vO]&86iرJgD.Q&dhL|tT0G.rݬ*! VJJ*9u|]90< vPoĻU`ڊi8JA -s$U5|S<"oHBD;Eف4фåc]Y\3e-hB(4o$s @_ W.Au! @"ZؐFcjVFkmٽܬ1jF;" cw@X&Rι%+PQL#j6saØ$H!./S/~jB\ a"v[ i4١A q 7,Mn6Sʄ)AH8" 5QdY3TNJ4ƶ^iSs^m=הf %;+̲Z[ô6K2aӝ GCw7vub28{ +n.HY~bшtՌ n̢b T#q*Z !Xʒqn(X Bk[|le.&zlbtW^<ݫ "[B^D]ZY̠o#7CGmnh\YB ķ$*wb#/A+B8 7۬ѐI"B\x_Iv8ݠ1. a`:عu:'1Pf "@QbRٺz" HXbZ`u7^kmn \䶡cex`1&&&K8ko¿6Q ld.7|V6ONwIdOp_`tEE-A'RVq! eIVtB:I-/5jx!]b,2˻q1ҁa5:,@%ఎU1snN!^3&Šb}$  uE2`W|{npYam$@;@73NJZR~H !!boH=lC|* zpN6ۊpYDSw\SȻh apqKrxS~vjAy栥:q^l(d ΅lNO] ;X![]H6qYbdU dLdc4ȎkWEEuQ9}FpiO&xm(T@Lb ΖOзFm2+[B&r%R,^HIىoe`Ysk>K|-QGQ\ε"Ie]l+StB(Bdh6FflHZem40e]`AmPy:Woz·eoôƣIWM؋tf֭NkF* 4ʥVs2REZBpIl:[Plė .r4hpҬ1uh00,0 ksF`ilt`=dh8~sKٰ%v!p] B42cU Jh_$*,tNla[h0VV0{C0sN :uc+h"`B'JDmiƚh?v$é~pTct,@%88+fЫ/-qQc;zRlFe01tdgbq.KHL&BIA 7k<kT>/Kܹ`Rܮ5F*!&.(L^=}%ܭȬWYE9z(6<%Hre2 Ya͓ܱ*@-kSlD$ {Q/(!f,x FXư R@nCP"Œ3jIAQl:!ЉgrK$Brmc"F@?6Nr8ҍ&8LZE.S xE FAB [uBO:nE4o$~3I^: :a/bEbhe@1ۭ0䑹 .t)J* !$"]^| B @wxU4ፐm($R J >(RJ#4TT B8"ҡ RD`y`Y?8E%a.TJ<D^`%T遘hШ Kr1pIX" T H:rtN@tIfNɡ5+<1Tgy$s `upg9jB)?É/$_=0z: #bP1}BⰩII`4OxFL$ؕQ`B*'j=`dt@W X#<+&OǞ8D5Tb0-FR_c5-HNw㈢h!"lS1@F`aeH6PѤ5"ƨ܅ %B Acn4H1d\S ~{ ^R#gp՟4)a`q |}ǝg\@qn`,} {VCV_-! E#`DWFkl.K[gtqƱuBrUlv3/10D$'x/!r4P*D"C~fC!9_:t߲20fĕ=q9Q25ai Q氨%ͮ&8Vv!,bW9xl5Ge$zX]Fh 073 6ԋZơhhmV ġY W}V]4J`Db*u{3ܼ3=wuE}M&fK*;B( !Jy.qOByal"dehPrAg󾩘7os.}99zXA(>efex-Zqu0h sjU?5|( ADCN @# U=MJ Z~8fA%^_(9 p5@c:`Ճ=/(%AOpB0G!l_+Q]2i`(,ćiXDVAEZև50RQgC 4R`&9Ƭf~P`}6 !dr d6 pڨuZ@ ڞQ/2D'I (Hԁk_`pppH}F-|u]ǍBihrkxqZwxH}Ja K (@NLj(u`s$_(NSUDC9?^ Z BYDH&B@ػqTFHB|*`<.ףzUC埣y )$`C{]B TPyp0F[R&޽C`o]Hуa#EVSfſB1NIlT L%.2liY*A%DbЍ.Z18'GQ@4M=bBPaV |qu.[jVÅ6 5EĵGA2uiCĞ5\ xYk>)D+]Lgps%P0ヲs0iLTKjo;GPdaP8\T<~(v6 #P#")?<亝Ɩ+^L:; 7tڸȷΕ\/F }"An@7oIGanaݠ!{AƝح4ڛ}C5A*\knSP 1q ꘇv&)"ci=U#p%V$ i!_gPL PeZ r,:1c-ՊC5L3eZ|=E)G(`VDH.D\YApa9m`,rěM(ja V-[X01 dO-&`hM4yZ -Mg% Lr$&Ur1Dv:EtaLiP-5w@ӽ%aqH_- ?$a!'OKRA s} 4ŸAJ^-RuGpew$a4cϟ<_㔗wDz* ဏgc$$mH$7 ?k͚'ȞH{}PRKߡ"&-㌠4_|+3'C Iexò*J g'XGtL2Fe6x@$ Dq,܆8@P0>NQ.vS f9`,ed`(DNHH$-)24,M #̘0>3\'fM9r,2%+1m*B!@tLѐP$_QfbCRT] 3mM&.hRCP20`XE&j Dh s) ѳZ"[`ҀBaHĴ%,PJAGL3rP iD#c&괪4ü10)ݧ04L A# gɦNhin g H*EX`uI9,caI$I0w'dR)6'ᑰ;vAFkJN7u|GzP#%Dᦞ VaOԈ*Fo#UT($`A9},Ee_Hd&!Zw#+% 5ҚH6}6CM4\lu6K36CM.c}/t$2b$; }qZ~0]" Al feKܹ*yXtB ?_1Ft@lMpȰJDA,Hv^w/p(69![JEEX$xpvbt `Q0HO,z0ښ D'Yzߗ1`ZIHOT{3C1q-ȩauW_nN7Ax rDY*${T" nzOZРlu2 H[9*yðƥadLCMyYZ0(c]5K$x@td`C ! _;x*ʡc0Tƴ6#fm!: xv?^)90a6utWhDtˣmi*($:h {( &1ihJ w"1&$fSAa^L8ebWt{V1%:BD" 0 S^["([xDO,W6%j 8Ћ@v3}` (gG- h£׃1 zL90\sq EFcLlMfH`:H4 ʎ/$ A* u=w5Pz@^/!aP0{癧DUE ~@YEZydipX 9THt975Ll}=G7$ݗ EmRoP5 h6IBptxLNe"':Yѐu@[qL hVmLd!(d ;gr8D0ImbcRfF(8Ϡr8ƨDA @3Fv2@-2H ,ۄ4$( nSFfDER&CTu^6j| ؀a!ǿ;8`g B ." v5`y„M1 ou~fs< [{x (X 4ۓZp|CRe bFW@JNupm]UP"Y~99j " ;Z҃E M c9ADy$̨|W)D;ݡi(#j>64uQՆ^sO|7A=mw+9V}&DG*Z)>g=P$N;2tB`1EPKdJɝR[pj='>1^BJD0cyYg\GG” QD"D.65b I$~$W# i^ܛہ L++UUT81HHIX *ck+H,p'vK\<7+t30V *g)(C@9w|-鈛!G@Ts~Njң}?Ϥ~u~w_~ٿK6~'>ww}a]em~jJ. }.u212 *( QALkQhl*P&D4P1L 4S$RR)"!HP)D"dH ҍ)BJ% PHE"D0a S*QFB ” PDTH@A+J,JJHB.$cдK bJJс"p?8CAz:)HD3,A @JBD@US0ycS30s?]]Y`O ρ_v4U 0J%1P'03$Ťӫ?qOdIoa5vt,n%i(u?V 9%LGg.Z JI z0NE\%bw$L1FZCcvv--bR sVæcy։2Q3S H-ḭG ,eƥQDNy:D  loDa"zc9>.Zv RBJ`1 0  0XnPzB@F8 Υq(>6yo>W6v(' (\pLU0p#K 0> UR '1OTQ`HQ XHEpKBZvP! ABǴ@|n8`!(MozD (v!m@*JIQlB 0 p24 ւk0 L%r0f #L`0! !fM$4A 8<@Mj2UrmE L$0C DSṚBEO Cд H %4CȨSQ3 K dB& O1N\R1D abs t9h!b G3(Nm^taZPix;{H`! %A=d1O'XAzb&QVB qՆ ,mD@4ۃ=v?pTXicj|=$]fؼHY O1<h k%&Ȅw OP\I]HcW.8q&sK:O1u80)0uҙPcJ Ӎ차y{8;'aED;}0^2ol,h <(V,\HmJ r66Ch]酰mrь)tx\jFjIjY& k,tŚ ;9!txuZBC( -0#a9 R&, ҾNL-\(m{O ӺxO<Չ/I\0m0J8ýfDfLo``a0$$(ܛ$JwZ z2s}HXP]`bPG2&3h&-# fɳdK *1mj mj"T\$;lw “v ҜHZvگj9 )Q`brYE^e lKK$!E Y:@07DuRAJ$vEQBVVЬJ64 AaB0"@kT}GrH@Wc775ObR~+CLhp :W| FP]  0cT<*͌:PzURylѬiP:@eTSJJJ( 3t`'{|`k?L : 1":X.:] LuT}bAI&v$F6#n Qn]AirPd|)_8dU:"y!["yec1pwn6muэZ"Y7l-ZEQZ"YDU`)[46e5]MaM7~.Ss4f }g¡Kĥs5M~w[+0.-Ji>XB( "ueR4J12D1 CQL2RBU TB! 3H0P 2AB (`B (IDh&h`@D!BbZ)UbbRR %ZDIa(P*hfdd v$AĕI200!1I̥Q"*p.ƄdBFсX€h*ˁ*B0A!68*jG0ɶwhvNP^ɒ fı(QaD<:5C"蜩b"Z R>/!f#CSڒHAHto L2H0HDb` ")RDrT h )``HE`34H& ` "A)bR`F$'P Q>7ySV<?I-LV=y=hz e{{6tBd.;f(%1ta77>~/k~p#zQ 5Ո#4gۉaYO! $q$'Ƨ+A45H8-"CJC2`@r(* f20̌]9l8/E_g9&{"F֊t sj" a fFe2j)!7AlD7 6F$@H3H@HIL $QN LRD-(һ Zs$nDێhÁ@{@y3ȣ=?`]w Ѩ+C@}?}Вa"OKVy A`u;:C@: 1/9XH adFn5$nI$I 0q~*DR=N^͘p;OcILL`KmBZ͓JÃO^d?|]՜t|D-$ ZΎ3^m+^R<5Pdc6@) '#C-q)!  r(5dx8`d Ȋ4rVЊ;d}s"ie2, B*֌ظb-u 4L?d2Ǟ5#DE1(Q^!peG«fa 5?Iyiyb+6,pq a¢'f4`-04>C ^84, (<9̻6C_AW&f :8y|d'jW G?E 1P }HdaE4h LLo2.* X:!%bN  \юn"}q6f 4Y5h"ede၃yacA(1O\SZ@l/_RJRDIA( #j9TSWaԝ0g<텠#b 6Z:_cc3RbY0S*}!.d^2,RT;JdAW.!5a|{ǃ,ﰶ;bm[6tszllc+ ccpAx37~j a!(P.Ș׈#+DC<59 CmRKʰJ(J_6F"!``@=~j,/M{*t VFoXLdaWxƚ!蠢w zS gZއez Qv գӰ;K<3}dyqDrH ;9.+LBݗyf,aRZQ 0OV"+Ћ' 06l CADD'E# á!އgi 'sw(: ՏŸݬ) bqL8Bc'()!<1k%3 ii +1S Cbfc"![Kfцn:c>< Qa" E#,Z* zDT;08TjKyp0? L% Q&zܹDr,H% awz8)JW:Oˢ\OeM0y &t) 7e ' zܑMOV@ϴl(8z_Ħjǃܜf7jEjYw#Nh2.OnlԫJq96̥mJې`7z~kIA*[kS50I,>3 :`/~A>F2~C&∅)R)debcR̩H*,aHJPTcCǼm30`Ǹ8Cnu2J !HڊW TF1h0 +(Ţ[G`k0RL K}9D "XGuhҩ,iȮ*1bDo;$r )C+UXVV' f1 %mL)pE%jadL6;Z6h@(>l2h#a1NË J`eƳlUPi6)" iY}iI0Ie’VѰ0},@4ƐMSq4$%qm%$MY1ܬ&794Ef (sAtLMCkMeX}< /ixc[!qiEH|D>>%@凎2MHQ9y&QP:^EJ6Rp믒q0ӥ2 P"Em6iHMD& -j t0|؉R&@i8R^0,= rMr礨`1eF5ji !$F2J4J?J(#Ipm$NC%hm3AM-n@8N$#C$ܻBJw#ј\7f @\ "NP*ie R6`j 2Hh T" 47JZCqBhl3["t`Bo`hA HS;Dv!rC.l؎A=^0JH%5SģT4uNGJjI$0m TIHBĸ64C 0’@ PPBf2CAQ2 S%1a4!IA :|70x`I,cP XIjbbVMU,O|@i0Q6*D LWv.raN" Ί$P"tCm~NWC19Dtٸ" H 'OOAކ0hiHR0J IDĉk M;4*w@7\"V$]9 -(̨D-H PD$@ B!YHHL)RK22P UcP J0P0Aʒd3 =4N0tB&g߻_A^e] d)BD+>+1}uo ڱ2Ԝ!&8UIF "HV$1)$AG lՕ_siXb"#7— ݼ7F>!&*+00jXYA:^x?Q5Q4LA GG z~[`@2my%[hѶT[S a Ɛm![:C(v `ᾣ;ӢUTSUEUUUm*j_@@q=҅§@P 0u cp\ށ0nfCb G-|B MpN AB8J (0ʥ Z A =m j(Km~\+XR)Qdm4 ;GPXH^B(f8AN@D!(;Ƀ=ܠ{0j/sn8褄䫴6XPwf`%dXC^rA(uDN +\YC9u\L=2I{;G*k=\XiCV ( hX Ŧut{(1%b JrOdjB (=\p"RRPD K5v8BDP4)@+ B@I*( 2,JPM% $HH K"R{^ Z@R O &K듑VcE&|5X@M@ ĭHDKB_F B$ Ć< L  Q 60z!tMDB9^4 ٺgQkڈ FCN12f"w݇']5*8@H(k j}?)2$ >׾Iсao4 0FS `P d`?5d|͟[#FH_Iq; ,(,D`kEi Kтe2UA514ܹY$:_:ry#. lԠs3#'WKG^|K鉎2s 1-,0[2=Tq kF) reFSrvV!N Ziq<ef\m{@hX$7M4Ձ4#28B^"t ~!C+|)BA%܃#g;LX&\:v#O aD2$y8NՒk (3+!S|;Pd0BCTA; 9w>a Q @D-!0mlh(40)JOprp@O"00,PDCp$a 6<'x`S{9ɩvuQ딚 f]D;a38!S4S$PR5@R U69X kVhFW:+D@1 9hL|E1@JHAހLmW1Z5H! ApҢ Q /Ƈ$rea;i 7PP"F$| ].rnoֶNUdvjÈ{滀$!`5,O cWwmd]]P}:67>qڝ0Eq cYimMl$Qr ԩ1aXr>M b.TєEL8BHQ3zOo֛\&vي,1`_P#jZFZxe~{%> M?m,$ze `n`b>^TD$x$tl  ;4< N1 NRS&e$ZH>R@;/۾=c,w ֔XK}[ AH04~A@ahH!!jK]Eyd]tn {it &Dr2y$(2K4S"K#  $$E % vB)O9j: v ҳ{S@? xq2 t>Bh>gO)H"'ڦhrDF~cP2PB!24@ dR('WɡDQHE y;l:Ϻ-O8\l ) " Pe(,mdIVf|t-m˾j"(aЋ;:gf;@*&w1G@u:tM?K;f"2:++I-$`Fu)$~H_)/Q8ecX~{ |^N,ŪhE+0Jxj|G%)ܯ qX6Рr Sa(뀐S'KuIaz[ j @(?ۺyaO5JG e_| 1: rhS>(CU( (&-WgǾHp=Hߓ%@pa =4J$_,LZlhx ;!mUğQ2!w_bvG"I4(b-f|@uӈp/0B@f#&; Gzzg==c 7 Iȏo64@eH?-(~/} ~?Dȃ'ǝU"`W&!Ŧ DO\ aJI`iXPuzG:FF|qYv'?XQF!I0M __(M(3%UU!Fl6i -D"ZɆ\jd"j^tuuj )OpvdO ; p&a $5`H$2ᘳLRL&f JMB1 |=?ݑ@rhh64 ԇ=}>Jwh?PB!Fha4C91B#hή{xѲju}2yd7Jb Eز 5u[ % c0KnBa GC$teH Q 2Gbox( /]x&#\.Gw&ZvmR׻A, 2HB!G`@0FI29qf@9HQ2O'3TՈAε#b\akAlxT ϚK@(M@1 I d:H,— ?)uN"hO S@'tڈ0 `p4KFx5$]BdLlR0)xPA^C®->x?*rW)>]YSm7s0} . @I dࡑ0e {x׬DpVfj,XJ;[H"y `a$6B-Ɲ$C.CPm@%ǡ& M+ T=炧?N{C@ `ZU} x"{ $i# }^S2yMJ[6UGHJwP?,B*ݴ JyB h2dc(6wƁv[LB!4MAbnM4̂A" v:1;u FQcIU-pci 2DS4P`F9UH[ kJ2QP98e:܆upi\&ǧblhV8] Op&&sX?̃l.`n> IbPݑ*ː-D ?p$ tOl5xb0`HQj"J6*#@ǩ$)y(2_*gWB` !`JIV hBhF He?e$e (Pp{2 <=h3AR]سHp[QT,A K2%FM7 Єl*J[CvU U\)U)oa%4f;0 0hr,bzPq dvC&螫ZugS D {BzPAhԯBCh)T_t NCUŒK5WŸn="ЕSB`'CK.y䰣 iB6 0ZM/pa !=Z괓27,[?VCV'|2^P_v CHPe  Y@B1P۬h@0ӈhp+@_~`"D;Z" ʾUs#Ϲ|;9XaБ1$IK0g9$Y2J4b*(QODX!M).0pM@`+r*C(Br! JĮ@pE V O4U1w$H1(BYZBS6.Գl,ɹr] +1EPa/ BO y "5E(NO*"D|SjD$ `& VH& DCAE舐^\;Ljm.bs9D@x F@xJ BP*rv L$0@K&22*bp"c!4H6H{ %H5K 5󰍬䥘dj;# ™La9M8at\q!rU ?_#G#Vr풗ALDY D"҂W3#Շ%`.R$qL`e!1%­"N"BLVUp %"JV%la#d4 %`DRhDև/)K < 1K팖m!{R٬JgpuQJY9u).4"r7lHxJ<1m<-G&rA!F+I[e-I օCZ& p\q!bfB'4 ; {NJʤeGS{+~& ;fE$.CU3R{="V*ka 5ܠƆ.%āٌvE AK!"lQ2X::\79evtW#6xg2HLGM(*;szؚh2T l9 'lA3!@aWSJ/w .ٗީ?%|8Ν2]W]Š:MH' Mvj5&:2&tg}#FcEC4{ݦ¾wǔ`cuP\:Cf$K*'G(-{pv#1H4Z0=8n(u2äxE{rQiC;-BM)NPQG[f ^ZQY&c$l1p[`T"WWT3G4z%7kKUM\+^ S$ 7gi*%C|ztv#J2!ȸI2l>nK% Lw~DY<ݥ0b(֤ XJI:^H3"PJOf^ݝ f۬Y :r5 b]ƥ^.Jf&**"h!J0ndA [7[VV#qNVH/]6&^3E'BA5)")aFlX!4`6M5EJ7:0c Ƞ\'Dd2dH-%6 s`I6\˼b8dj樍';5w*Ɨ0Uxj=u  R}U9/ٗI0 mTXqx^ea˚ȚC^>jؑ8˰ݘQ k0ܤ|#-kݘki<ȄB9KN41K`BdUlA ވԍG ŎF.{fMk{A,t2 b.JdC0bF{GL$s0qgW=%Khو#H-#A>l4` nD-4t@_Djb:)чYD mKXpJu&a2K2%0#Q]);|"`kNL'J|rk:8-çx`K4Z%6^s̀$$@ zV( uk6c\F @)Vv@n,, TejˆJsT\q/Pg6eb@yT)hfTUW@.B͒K8h+%hvW/((B(Da4'˝1+LM;{fJDzwVRn^JMxZH1eFn6.#^&職$:*7@HީA=GE\lew%\RmmhjLk[L06G> $NB Z]ޖ(q;;d%ͪ\\Zo '>ox@GX6kIǧ[8Zˁʓ6|ծkA+ lPf7H4wiȯv@RKrN 0Hb$,2-aH!a};6Y)IX2&k5&6↣ RTTj6k^}KYbZp@h쨼24ڥoTӦ QGXkYf3540dv'ZGk\ch)D"NG7+\Db 8? 7eμ9~ssX1M#=Ks8(]YU }Rl)cwh3,#͢X:=cuB[YnW&Pa07!Y4p73+$|%3>;y"^a*pi(,A ,:01I-0WFZUU[Q#\hNC x0R̹ J?-}a܇|iwCуߨM/%8d Sy2m^:dM q2V3Eht6* QȱVde[Ja #݂l̐(U=o"SkmgK ֱ˾oμQ=4ibX(5s!,}*wHWINA<x ыP(" ~QLj[CF_ΙT:@x(y"n%˂j 8h"B  WA,+){S-qavP 8P?8tH+{((M'm_2#7vM#KŹ w%KQ,«*`uչhB A (Xs&@C# B`X!0=9 }f& PD6H#;+F2BKD2Ag^d[" MfӻhC5/;ARTP>9@΍R WLGK|XǂL{4  kZ1h lŒh"FږTTɥ*6Ov] nɷ\\4oy F5[CM&h4c"2@n THJ6Z@J"LcFḆz~A cP@G,`XyT!?`= $'H(CXX%DcJj_WFeLSUZ-(<Νa t8zRcDtC?.C>D0А} Ki"hhoIE @3iAwdC?W:H1jWEbDbj7Vx hP{D*VHlq0"p,Po !jq .^xQ #@Q;hgMĈg *J`4vcPgmH/J w֚dBFjp94bO>9 VVh^8.6,nZ`"ΊM&yj&cHihm H(ZB "&$c|o_U OL}uQhgZ"چۈzv7j|aټщ a'KJu P^dԇNL7܂!QPNS8A@w<[>lC A}5Y5L@1O?6鷷5'AAD- )wǜ}Ѹ2#<$xFEQoE033q F$ [֙!.ԦBw41h\,`3?4BsA4y09A($5t@H2Jh $]fDUpC 13Z @ jH f@kp;Fßτ f&fq[p{F*JS|~,:vG؜j zE"GyruA2ڍQ\F'Dfxbsp;6f661RwU sQ+*",Ñ6-78Llacd\m br %ocEA1eCUjfeCEzİwWPRx۴s}sJN\4O2!-fۯk2*xAD$@ *)$B":Z׺N=3ѷLp9Z SU|ДBT_8B/vQ1s6> -*{9s5Hakشp7La$ napQ C"tq4|x)ќqG.ԺY!ER4cXc@wgb4"$fbò@TvJIhv>yYoBC -¼eĕ 3&"R)CԘN<G9  1,s@:eC@Fhzڞ:`Il )g1LB%&d`f)S3$Ą%Ŕ+((J4TzevFA cD {1DAXs3x5D;HDEF%Fk7/78PsF횥W'tqֱlHQ76@ࠍd`bZ*Q4l -1"iJ(X&T̡ZKHDda7pA0ǥ2"icT0FL h14i V!q ?0Tt*Xm-J=@WFh@FCj0u % Frc\ C-E8R/@G![pfCbD(`tFs@0S"](ki Prak pG ϔdUAsX&UrpJ3L0݉kz8]c{fcMYRz,H0n4f*>tD 6|C&f2V> ߬a t>XK6Y`CX^D.m0FNba "a!UiPH ^Nj:*O@q wI"pLR0 &p$Z' 8GΩ^fǬ[!2h~mC p 6-\;w83Sރݝ0Zx%,/4A`"%J^O7,&E8{u2I+QA 욠)4 R* =N,00$ f"DMG|5Cp#vcJOls"^1"D* PaA dBr?JѰ\C2vKe\T'k1Hq￴?ɈaK0sMUE h\?[/'09xbKM2[6.A-j v{^Q>ghuӷ;sWHC_ ae1:scqM:fʱu-8kB Tx۝W!_?|ݕN^olW\Ӱ+ҳY .&sfe)[`]o5fLWo(ҖXRĹwlY)?}[s tb(AG1^ 22WZCN C\pT炂iQ (&)e#n-61s e醎daO$2GgnȸXl3) fȹf;Ckih 2,`<E+^:1h64 +]6(m>)3ҞKjagv\ {8/[X`sWւԑ9YIIDVΜIl[TO`0ba`wKBokCQk P]a{5½,R3rض{H6Ў$sMɑ#i҈`f5:4t$WM؁TbmCpB*3GDm%8v)B0.2ٔ̏L" oJX.@2$Qż4llEFm,0M y9"4f R(1a|ѡY*l'lj^8WBfAXx54쳐j´e4NEspl}` V&  6P+m# c,.D`s.RZQZsEJ EM2ݣ5GrQLALoM\ y nBr(ftR"\Kv\=|5vaK$M ÁbL뙆m;I$ U' )`E(%m@& ߵ@!bMUYNVб :v$}C1g#SB-²3kidК1 yC: vɁ$R ^n<- ɳd0W Z,cuSKAOfۺ9d^enp9 gk4v>dJ'w{n!HD tA  Il 1"91 ̠XY^t+e:iI {+cM % } {) I7*ZK5P ?%Y]Da֔ELD"AJf&Z Ǻ:uA:٘&f ? DWU K:fb'pjPԘbQDLMUTQovK:aEAEIEu?yKeADAQMPDQEDQESvh߉0ДMRH`1bXw6{4(hBݍI#O l3Î$!q-ǫp0B[=YqʑœRhp: =h,rs,Uy R-D.+]ZH/l}aX7iiÁPIJ V(—p ^eJ -wڔcU`a@2+kZfBFaD2tJEKD$i#P8܀b =8ˆNdmqH( }Q0XXrp0 Ā5U;B@{@Q!")z}]fEٿ0` ,xXp &Iߣ3(B4]IQEE<$"F(u>k-2A ⩭U 9og'ܦBHW+ ${n3^bF<6K%d`W# i)QWӡ6ER9;s&`"ېHhq 0ŔCX2$1dhh40 Y 9QYFPhfk(  A(+XU<Bz&d;M($à-***"(`Pj 0*h=CmF]VoGX we"X=FʙN'+w}) f`p rt Q1-)фёK2ƀl͍k7g4Ȍu"AA@2XBR`Г/§%(LBon'S=!1^e baCF=>93PTSb*&H;JVb#~fpVKHFZ 6,2K[R-=y[ߗ!yHP B.gOp=BM :2z2<ŔUeUdh8" ]U! kcZ gCS |[_.AV";#28#28#TT,[Km-Km+\3.Rȣl!HB)QWޟ,5ť[imwfaD+i9° :2x7eyXidXKm-Pݳ;ntiA2, 1#C@6X]lT5Wmqy:4m0`y [>ńS=U {7iqzgԺ"' #YAJ T䡃{763>Tׄar7ƴX)8\Lr1`) OL);{{&O)`tpb1%9zD@eA& r,hޒT^Ɏ~`H5p#XjMBlW@ oTQȓBF2Dņt@^%ƠF݁@I'oI:ǜS %Ӈ.6+K^,e.&rPFC@͞|/bZa$!Tc:+["|d((@,tFyxC J"bQr^p$=f"(^#.d U\=`Tvv@8՜ "5cU̪e*iH"*B Y'z=< @.0S2(d Jƺ3-IY;3x.G'ef,.׺3DXF`DKlɷā4,d\YhSFYmoz-Hr|0ZL -FeeBJ'ϴ )ACut:kJ\er5Xioe/3&"w UpiAr@#PicIuIodK-҇DR E& EĿmDG6@aHcۡ!I!;CeJHH %$JR*@Ұ2I)4!ID, $ 1,@Ȓ̬H@@$S%B^ޱ\s=B yDr)~Xy<{A 2(10آFAZ%qpk4%(s_3HMf'<:"bf)("&H"f)C:j@"B9A$ka:A{/qJf) 0zFqt9f`$ OaBk4ƈ %MJӚYsۇC#I,#hlHT4,7nmc') m1,&ׁ]Ul-t+6`~#8!Z(RH[ +#E1z=[v4iyě:$=77D}6_w;`@`PL}Oo=e{ػH?H9qD:/WyɜÂy?63p (_qĎv?Vg7'.QV]d"@MlJ48Tnau(3HtP1bM>(|ahJP[nvDd p΁R á<K8Upˤ5Ǩ٭#%2RA1 VG eoJ;LzĤ @U 7"P|0NgvkZ 102D1S,M)$Ҍ1*M(Hpuz,2jj*j$RAIr#"D_w%(({^AMQ#?FY\74ШLU8LJJ ih-K[#Ci]Ec NC\ ҕ50||K`0x砽|?`$84TSC3 8Rr"ZT`)BTSʢT(u/-O=_{5Qd%9 CnC"jh3`=@ &h` l~V^N;N 6၆9Fia ma/Q5ӫg{7V;hdʂ{^s4\JU.Y1(^`SQBDDr(t @ `(W?QI)mN*8^8m '߈ BA¥XY)Ձd%U4A&0dR8. Jl 3@,6u@E ȁpϏvnE%3x 96ӐAE zՈ`'<:}F>lzْE#P|QUU q-!ɕLg1]A-v0AHR4@OKa IF8DD>M qI@\5HH'p>}u><〤AC BNv4[8qBaӃH@"Pr ̢%!T@JQ)K8`NL* c*@($B+d(BN (c`cO-X F@{Q?t{,xGt^C ( I7BDb# @O;'dw7nSmn!lpg|ÇFrIŚUH jjw܎+uQua)qJ@$@m!y rަ("#󔒅,bhq!U4ޛ#X":^()IB‘#&0wm7;Ř IR] ;C E9 L! 8=ȧ*B>3ͽʷ[ZpqYjJɚk,0̙!̰sXX3k>3Fi%h$bfóOŐ0)!9(!0Y< @s7PL0լԙ@Od? *=0'ة\Ce-'@"H@6ր\D6W!W {D0Rb8)@*fѠ@LH04BT4C!)Eux />P"oxlpO$:=%LG*Q`\J/8`BrhHHRW:I,믤:UXWy846f 뎟 &j?$ `,-v%b VHqNwe?k/~I @R Z$XJ?COyw?v0:Sakb kz6OV _xY"M 0`0i߃b9G+QbkE(p'󡃌9BN'"X7;AQPq.@q=O׮ !tCQ*5zTAO tGLjiX2 )tαA?VdN})tJ:P("@OTy!ihKnGafK;fI8]J d:Ռ2DZ_n i*>w;!S/ ;QI0KBMQ^+=->x `EjKt ިItMF #t#x0l PgjO)7 # /lC 0K N\?a؄">UVz8M(H)"*av<E4RD42BȰ4bEA]-$$vuL _Tx)(IbPHb{>zhmea{am6Bhd?K)BIB B(,HSGࠕ"{QΞWQR{P5UAU;M@.v8ʴ|Mea;:,ޕ 4ņ]bKXq$鼓Jaׄc)jcVyB] i-;0d F##5aJaI;4*g@-<\@-Q@ oq%D͐(5byF1u̓((ri, jƝFZ64$褐18Ilӧa|AdǴ$ΒZAk) ԥx,emp$< )"*P n*:yXJ )Bld2AWA2 EPQ ,5C9Fѥ`1& K4:#{+cHLbi3%:nD(Jo`-u ޞ"H?;I \'W]Ǭ 1tH'ZD}? d]ܯG Cqr4رFMn$D۠avⱷ r4F/+ &=>sbHFG"}XU`@$HQ@U*4C!I$1PKLETE 2J ,LR31$ ( J 1""B !>BGQDT B$TxUP`@&/vz"7O;c$P7nԽg>cszש3!|DK1HSH GX,DPD2QE&Abe(@RL&_MTROeI`{kM*J">"e*fP\F0hT\#B``!FKJҩE(aB * QA%A0$)4&Hcg&;(AG?*|?8H3&6jf``4D /Š$(*KDc9Z"ڵBI-=*!bބ D>Oy錓ZE!$=ȈQ>`B'demxz{sj}{E__ݍ}w}}^!׉2U LKA;!tFwC;Сchv;޿_ƒl:|;Xƹva Yj8P_\NK LU&ₐL/F*EP_(Dɕ&(O ri* ӂl-L +S\#N϶&hp8  E4^q٘XZl#D$9N=/$1ygKBщ#́DDDAq- sl,, !&F 4F:e^Y,'iݲd\ȉ+H g[m2mUT5^ӍRt&Z"%L2u<~<݅RambщM,I~~Svfo/;|?} }ϕ?x羧rv1b"w>8^#+7?K֤K?]~v_ã~wz?'w&}~~_}?/7_(E}/[d]L{^!]xgk?Iӧ?:G>w`/<k{>O9`zߋ^:zob}kXe/?o:x^qw[wc{~\_H~eS<~o?-i_G=3~~q_>y_/ '-?4|ں~ӷG}WO{WgS~dzo_W9z;ֿW~{ooy_y?~hχoAe=ߕ5 ВJ}t}weߺ7}E߫c>} {v/~Gx??7GSWo~^.?g//]?ӫ?GO_x|.~>$z$}C@A{"W]}~+xݟz? B|v.q}?xntVΏmB~_c?Y|?uK~.Og//ݟs|w^z_5yM._;^ժg7}O{c=W?_/=G3ɣÏ^w|?^g[qq^~__?v~·_w>?}u^9ɏs\~}d<ϔ_gJ}gh@z=8sY_#?5']k\|_u>q/?3O8kI>o =>֞;ksn>?77{?c3#w_O~翗Xoqy_ 5_;d^y_cwAW}9zϓ?}y;u~wpN]gu+&/?sZǴK=_aW{9'Nw#{ ?\_syxC_>GOq~?kh?6_^wM?}WO;=]Wߗ}Oy׿]~ߍ;^f?ߛwk=ו?Ϩ=g/V'O'ͿOǒ!_iI>?q/+=CۘOVϮxy6]]{s>n-Mm꾷CC??Ok_Mp>GEߵ_;ncwy~.D~0^'Hxr!\?{G_./o1i5~z|_'￯<;#>C)W*??{g>&?{Y?/?뿟|_wm?/Kg]_O;}?]~ث}7NC{gG?n3xkO]}]OCϫW_pOx_;߾oG=oۉ<3T#7;O_+_Qٟ=ߡޫ~yϙ=R_#>o;|z;Ts;m?V]3C~vꮳYzFn}oU>wn%ߡout>yM<_qZ?uϔ羃ɟKw<z}Y<Ϳoz>?M>~{7--i? oy0z;Fe?wC/U궾1Gߍ?9\?KspӽG^_s?; ^s?Y~#z }~q?Gzg?m{ChyydgwS~|5?_&?{˵~K?>o|GQ?#?{z:QG|/7y<>z4~V:~)kr꿗G/og_}aOKs{w{|O;_/k{}-\W+\wmmne <e5Np޿ (l}m'+{*J{mhml{Ԑ= ݤuٵfo^7n;m]{JWnK֚\>׶RO/Sy޾5vS{ok۱r+{lnwX]kFp1mY4|' WgIwӭ:OnmҒJu;SZ1wD+0`Fis-.vnܞ٭sۯm-N綦7껉m9ݵ2ΊnMHU]4vh.֝.G"U'ֻ@Ѭؽ;t0b>'_|S]5X݀AfsmH7`J 0Zw|=;n*JPH+=zumr{FںtW[j{ݭz(}nU^vjZ44x@ym`q҆l ]j֡u]nV&aHǝ"^]{x[ee{nٶ3K;zsW=|ZeZ(|{ACj}ֆog^O)*:{msp>y/7v=`њWeUPIO|=ڪko_LڵimF]λ}Ѣ⾽}o;4y>[{d3^g&kS}sXykϧh*I7;^׷{;eSzru|]h]iUWv;2iϻp^R(u*ox7(JN[w}uΙqW%^ӧLk.CՊ1vL˷ޭsIg6nzw,l;N᪪;AJ dzwFoX>Q${-Z]uaǪJy0 `klHC{8]:w|of:zB[k\rt^WN=r#k zou9 8ݦ݌ S+Xl }.}PUǝܷn  н빑j۝Cwp-tjCRp^ n swmk[ov9:5cld{v݆n8{gZҺlGvm;aJ:iΫ Ff]v&E܌ h.BnzX@ X].nV`iݥ\sw=OGɥw`ݝmww^} /wGݶgOoۍ$̣;5KdMq;6XM{s]-`{mK;ӽ:y;L)veuqۍW"uپEPR tַx|vjH 0)iBMh&jz)iOҞOPz@ $DbSSSO&4M=CCIꔐ$LI4iDѐh4h"Dh4 h24m4ME=Szi%Oj~jjzDS6Q4U?ڧ4)Rh){RxO믡! pT4""ZRFVf-j?2 E3]"QU VDYQd3`D]X͓%TPL@؀vjQ2uԚՊFk\m-kU⭫F#jѪv!HRSMj歴RH!QAD)PwI"(H`y 2ҥ1B Bq]DH1B[M*hmTY*RTXٖVە]*5[IkbT?ZhA4! ,AVP.+ 8.B2=RDz7@LJ#CBwEC%CwX0@F$EEddNP^SY1fTtԻnJ4TZ&҇?2_|? f%>$=i}uZBR2?m2VP Gq+xhh a 3#`rqlOQ1Q`40ŲNyÍh[;Gy+;y"C*~ g<`LOjb͓'n!}\Wo;X`%u4Jwkbt{N j ڙ ..ڊJS9 mqJ4<r54)dNV2E>t0,v 8&5m0 ,7$l_٘ ՗;+0zz}_OĽq( 3YfF|lؘE*ffoI Fi?pRT9w6Or«ݥ?IS]hJ003nǠpa{[ĕAD\wdx 2M;NmNeRpvQ8NlNZLVٮ SRÛ6qY{VYFEb]vBk{̌p꾣j>}";ԑ4p6q+؞VN2#7sou0u p[ D 2,7g1cGq(,8N^t!HD{B+Fb>$B>D+9L PI881"0'W9#nVGxǽm,; (FrR'Pcn!|xlҫ=H !܏z|wucDO )zuᑉ(v^ĩdRĝ]Uănʓ;UCo:||e" hL~ X1` vi4P٧9W)W*Wr(etD4DbI.h`hU"LK"D r>9>"#fs(.ǣG3n3"A=q+Q.(E2++YyTBzeDJBv $~9>Ng)c5sN^ zsOc\UI?Xq',U=Hϙ;o2 >|1yg -56PxBox_L_ʞSF2gvD48ln!WYA;+t [^J~li[Q,{`pj\Kz!n>N!9Dg ~6V(>AK/_tm$dy C끹LfL=dǮi;Ik:TLr&d tC89kyw63)&3[]V`Ig)F$`&v.6b.`u,呹9Ym\Ϟy2vXs^7e0#e('(Y956=H\&r 㴻;y׾P Kmb 'l fIG 4- D00BZ a^šaדy+5ϋdɄswC+Mw0k>hDr$: Zżp w>)|mvULT=v-Ldq\{gioˆNK;qHMxs9U]Fj"5IrLφ#&(QS"xt$&VEBTJN]()4Y ), PodžN VEq4Mxa;ltE\H/ԿUg#7;xIbA.~Vb] J,$?/w>QNjIϞOL ,Y\1AKJ vC^5>Z{o&xAv$کg+^ 8>Nqr9;06ξ. dFNO#-휤Wygou{-jNM{m˯f/c!2r^㏋{2Z 3^%>U>Xff#5FV0^IQAeH^+Md=lUK$ʯI-z+e|]6mry1/}iW# ;^TJY;J£l a'ps%R Ko-T5w)*gN*;4i0FEyyQG*FBR$:a=,>чrK0a0m?*j:9(ugR%vtOjTQ֯5\Rdaš SudCJGLt LrJ+Mljd28sI#(Gzmb/-,תΜw놹Qf>LQ01.+eryhܒě>ۢu ܺ;X+O=d)5YPZ SH #%-$śydCl$ 8͛fP*AD0Lp)fdXB(bp1ᑶ;UMI3=kNzb#ʙe{16?n&Yp)| =HѶ>˦|顽?50s #r@ޜ'Ȧ6,3/~?gN٤48`i K~,feywz"hfqq8Jdؔ?*cx;FL2Z]Q*R'0rPɽlqs69>4IqI4eo cD >ln(R:{@v!a2PU>pw`l͘wMhY fݦ%1^$S.jI==ų!iw7x2ƽsWVxp7Z<<<(dEf3%ҫdtf0-L1Ş; '9=Y1\bZrǘ= mMI὾@O2wtõL9W&tUS;hmM dFА0htm f q Lqǿ{,QDDZ"Q8D[8 pi`+tt*!}p9}$ _F$Sh,¨0Ikߠ=.o$#;N#6G7lg #~ ~B{p-.n!ANl^ҺrӰ2WjsFdho3KˆxVf;_#yP?P+2$"I 'lTb^jVV"Lfqi61:LH^59JO{yɎ₨/b ET`ܠ\H29|l3>1 B'COOmwoL2dټe+|7K!Ws 2 OAm3Y|+~W\wy:_$$*RSUJhw?-aъW U̟\/ʈP^rV SJ[ ~Gg O}?9mmW<[|cR)ǎ8xa0DDLn@Q1Cr_F, 58;0I~Bw&:rP<6tvx;)EgR3{:ݯ0xYWJ,Ȳb]MWatP,p.$*Pa+~~3$'d;Y}z#p (C2 UC;) :ֵ,ERm;+x\\Iq/pr:ȫ4tԊ/5 f3u.I p$`W2P1 j䚗7-Sy4<^;wiѩ8ɒ{Ofmɠt_(T|T.M\U<בiz(j?Z\=1 sEQR<j5j4(jCW#J~l I[;;ggo:}eWWL#H>7n52ܟuKp)$$BMqng LZH;xG:~\wäm @ny((uǖ[.2 1{`pQh@y^C V8,!~w/>CHPē^4nhh`{y ?S6mߎ+|(\B!#խNL`B1 T@:9Io>5l d'sB}j$98uyp7)uՃxl|gYיIe4_qO/KI7%')cʩeqՏݟr31G:c{0Waٌw59V&Vٟ~k#A҄( WՇVpP[3jo{5CniF3 tg4ϯMtN}xf왷5rjӦNS^0=^g,г"Z@:'+*7!$RVNR|$j_Z!;~.qXTfh_[cuP+ {C;\̩'_3#odQ:?}9xB Z- ]: &[eWs(!I Z:LkOJ`:2P2~Vny'O{p%LD_|qrHo鰤GoG|?LX_h]|;c ζNbA! g*tB5\ \L]˽gzf ?dSIVQQb%`Myk5o0,3malgW-k~, Q9`Ecg< eW>aC P7G6|{9w_tI$dLUYH˨R*[tE[yTG3r-#K)&ԪprhY/\Wf|`Q'.2"q\5b51a΋ Ff 3͘6;T%;CǛ4 /#UGDf%uuX%a—vFvsϾWnCL 'h$˿ǧ8{]A9aUWiB"-td%? ($)aTKXPvWK5-R_${]ٛŮ|Y^3t>'.bܖ6_>霱P v<|q2 URh>9+RKygNϽ-?"3B0 3z + (F0Lѿ/5m7*0k442JóX_7Ѷ} \Ʊ!2$Xq30Rn$^^2cK>,*jo/`;#ߥdOF9f$ :H*eVQx(gߕa|8_ӳ73JQ9*(mck %Ǧx& s𿎫S~Oƶm>|RUx^S$n=8oDq`@]}QdCPxM)$ЂH5,!3̲!hbM#Ceq}ᕒf+g| `Œa']"<Ǥ>uļ=!˚bV[BxT<_ٙurNK,dBeOɷRJK"SC$?˶;@"Mk> wu W>uUWv}ommUxѼߥ?QG=w.U3,֠ n]m_+~m[j~M?8s꾭;Wl+mm_y":ww&<=#8'r|54f!; Oe )cIF#'ʽ*g*-QA5ַU27W~9Ox} c6ܩ7 2Lk1(dh<Q-]?B;0rt;= %Vb@B/5wԝ(?N~Ҫ%RCX29*DI 2DVQFimIoo%[jd ZxC nVkyMͨ5kzM,b@5RKJkId$ 00x066RR}mxd1[4>Q@$` EwmkEe;mfVTM[ElU$mcY,i6^r]:Ҳ[Bq,PlD%"~{Ib2Ik)&tUF ΊT2eB@*><È`` rYpb$@$`@0aAB C6i_@Ta~4k`#IDQF+K$jGT39hVD,!(I8A*1l0HX\$(3!E$qTh'ba d[.]u6DmͷMm&RQ5]}5娬(]5SRmڹUkWMyr9FZu+%[^Wj,,(F!2@R@(*IPťT@(B0$Q &M@-rI/ޯU[j]ꕐDHEO@E(!P(DDAA!jFHUڻvnUdmWuDH0,B@RU+Un׌Z73fnvWVskcZ[^S-tۚY,NƫnT;ku e/($0V]ֶ+3[Iyڱ]5f6Fʺvz1jnܷAHOk`sܟ%PpĤ0Ē )k 't'`gy"T&IS3&]9im im?O_H;CExjJoH0A` |#&(%Q%=1&KHT$YIo8ua:h1?Eu#]<&I/&Üw8&U0@ ٚҒ!.4BWo#[; {fp.c@\˰m1 iw҆"[M >M\S&/)@l( _C2B(pI4N"4Db#c=4-(B{QL>nc?;.Uȇo71h0Et_dC4M)B&W~6GQ(;>hC]QIaܠ"MG <*ZiQ$Xp1h s:Y~#H{ |^%Lb bQA3}޾P1LnED-f"Ed)\XR2'D@:H4B3OЃZfV 9}%Ěbb`MmVfq%9qMcl,ukPL2^CfvRz!0g2e]FnlC$^᧠( DڢyQhBL]%/_{@]| ą,qD(cr7[MZT\'S6 l$V~UZ L4Cdz OiQS4fc)D ~mEVsy_4::P,I#٤&H ̅F*BChU)xlÁQAsNcp{+ǁk,^p҃^a%8\ek26611ƇMhATIȅ.T }wYaop?C1F4lu=g48 {~B-|!((Q@Z!Eý >aHH#҇\"\v&S4 ;sFfrqI{)R1,#HN"T `/RjMJ@5@P@3=Oi ̠ℊ8=Bwgh!CAt&#||CAX/|U 65elIr* g"Q1@Oe"t"Iq>; 62T ޚO1ٟ{ўI$I$BBvo|fV?><,.AnW`x=h$dd վ}*$~qV _I fp9{0s%:|-MT!PԧkRB#f:vB8092pZbkZL^(/8D ]cD)9EU~@+1AY10 =c@d|̸KJEmGƆ߳c@dnbň ٱ(9 {A,sWyg RBGϑ!͈B!wٻxaf<; )jYer8knGOr/eE?Zʨu+ Yk-}ԿW(Y%A0Ya ȩ;N giܛnvA,YN."i# @%7h4I-Dl<d (  -j$ k*l Ug棫#A۪[\o!l4ai ՚bi (@?’Gp_=ӍJe͎ C12t2jX@=S1KꟌԗۋ@6@YOo_SN}df[n㬰-q&{8@6FQSa)rLIJ'π^У~1]%lVYFsՠFϟ\I2Աef@QmBT'| qK5%\^2s_Xȉ :2Ɨ)zD0,p'֕e`x3R kVP|3/I=߸F7YHjB -tb5C)LO1J60X^q_yHkbwgGV29I 3Zo/!i߫7SݜW0cȞ)H г:yTT t< y lpJ-PoK ^* q$mQ2,,(uK6o7D+C.p1BK;L yT"!v2R!{M D"17X,Z1~u4}CSq4t>8o_v콍}f#p#aZ :WEAb h2BH d0ϱ >FDY%~&07+&fwɻ;l;.bV(RO>f(G_-g|A?03c[R )ֿ60Cma:JUC R?aJj]K6AVI`3H("zT!('QG?O8.e(##ZDƈ#I@ 0Sz:Q:TEM?qA;:Տ;5]t3b~;LhNĝ+ƕ ry*~ }3-k,`Hf~Z+ѯg0͍Ok~)K2gdRa w"ܰXpqă{NסZ(rXTpsR< Pd[Wm7:vyǗN|µy} yޏ̹n&8'ѧ ?}t`|n cG=i8~ʢr! Lds&Qd3ks^KNޯ:2c Kx 24:*`IOLu#qk#L?t4FF D[^J3?gSkqe7=0uU-(E(Igrv7"{T} B7Ͼ6^x'r$ \xf-uHxe&d`N鹀/ק¼ة$>~#5.C!8@-9 2޽bT:d grDԳTʣCGǤٺ`Mh8yui i-+74 Ec22){3}?ja&pC-H:?3vު +`hhZX./k-\u#U @;^Gڑ+01r wL~&I2m?PNJk07yIy}*u ab/ M#1<+E߭\[f՛[ZIZJyM;9a0`#;oIɕ(cJ>;@c (XE>.$Lu"%¯#m0 eprhˏCeWA[A]qCʔAMҀy(Pz hʲ|',:$_Y%jĂa~(|k2y_ l[O^drkoGPHsDC)MS!"`<2K}:@xž 9x)I W?Yq`lmO4$$T?'5AiACZΕ)d $CaݷNwwwsrQhOCĘъ!‚6N#Pj1 n\41U=V>,NYT2bd1UDH~ 2{K{s+ɤ *O&gD^d0*2&HX BX+jyq޼zNƇ Ai}`J_8SRɶS$IlRMpVlz7ktkT^a Ǹ4DdT\AI %qR"9O &J&ҏdz+٦û{7rmHZ窱d0_h Hou}) A*Ys p؉srw d CsOIx 'z+&nj{2*@֑M5FqBx'E~'f5P˸WpVd1M.x=A\9D-y ftBQ)b,F}?&X:D$XP .B8} p 1 0(QEƂo80V"4nÎPLs̼,ʴ\6Z+ h)|afBY )9L}@")^Rׅ̫۟gSQ"C:|=~fDl owƞvU;Mu)oŊk=!ESUUH3*298Nx @>#}Q!Ff,hbuh^Nn!K fᏅn"7[ܵ0>27r ThtiqKAV2G y7Iheaf2{IU݄MHI0dQ0Bf‹"~vLoO7H]UEUn%C>_gr}"Amg/M8"0ﲾ!Tն)1H 2R>^j. h`c[Ew4gGcYILj! LM'o}z{|jtgh*BDbjQf> >.uܛjR'Kc;K,PQؚYcxhrD=*/~9Z< tda ${K#mCm-&qmpѷL'ukUWPBTOBL_!5R%j({|BxeV* 縫v,[ DAodj bP! &,:-Q8#'SɄ `q{^嘘+h0Xlk P D0͙gUKE`mE NՈU&@PЙ`y}t2hau=h0Ʈ e0L7סr%^~. IPf)逽8 IZ/zvYv묥3qZ d ˆw[KIZMraveMFeJY)RNT}[lK,:2 8sy]!acEJP!kJcg)mҜfL!EX}%fA4MCffUAkD:"U'ۻ4.%naT`x:Pd]:'I$ඒpIRf(ecBDh`peoߨ3&NA,Q\fqՏZ;> d&\u!qzljdiG]!/ e~?azD]gP($-9q>^-n<Ӟj,m[].h{]w$;䏅aޝ ۇݝ]5mON[KmOׯ?}5_xŊI~luD̅H}@\*lA5 cˡ}-Z+g"aNH>򉓚SQl3"а ;x )\}| sQfc9d q128z}USz*F0I}z=* p5IwX"*LJd`T4dJ>?~ 0< 7heGDLUZ[SC<Sz4'P)o'1a`OjI3i9[QT>-~kr^a];dBч>ݸ.0c\K05#Ȓ.]&2RWt -̬ vae"x5M%P p#Ccֲ,3[ڤ'C@eU7Oc'Y#Xf}.2Ouvt|K-tfxk3>@1KyQ6@!0jUN13Mpq*HdBzQM<*0 j< rE@FE 1P u" z"@ޏI?FmA&Ei<1 3B\)aBf\H=Ly#WFT f.6kw…t_8_z0G;_#foކXn"uΨu zxٽVt[ aH4w9PNB%Y"s48pGռ!Ɵiȇ\)FFH1DqpwgZ rYv ȭ}G|7.G'G HͅR kηP m\Y!d -.TDh)Y1N?axF1T!Ngm, ~<}"Y$BP}&G=pǓe@6C .ɤ7=>JG#$Im uIcmrCub2'cImærx/0L݁eno~Hgt3>ϾdCdiIϟͥYT% ]Cj,UKQAXaLȓzK{1wX^x(]=&Aq"@8bpT :mwgy/8aƱ xhp쎒~CR6OPƉr=>T$l+54K`چ 6Ooy :Ĩ>\R8$dE @}sƲ/z:@9o1R,iL٣&reԍ*sqB#q8ylGv)Q݅~`ԛ#;gM/pM0M@2`BJ/Dy4ĩ0jcgSM@[q(wQ.X4T$<jo;}K@~_;M BOA'R\Њ@yŀH)J,qxEo yuj/iUSJ~S?k KA!~=n7`F;I&:`= QQI6bU[V H@8YCh>P6-n9dDn-*rt6_cO7HF+|JCP3[ ^+LL]38{HsS!t4Kc-|w& .p7cٍ&dNqG΃<7t,>  @: ˀ!5{S7PrT,9>G\>L| 8mFh{?_.-P4M0߲ 䋦c Oؼob{@LA|J>Ƚע|n"y00aʧjȏДTfs&j:DN݇Q'^{OII=/xp=ĥe&/rp?VGIuH{V=l{Gf-9#ʁ>ϑX&ã笒aPCp= cZ$'Qv*I i >07cp@b,,L ^P}Ե2CL aā,<,THv @g.Bq, $C#3YO7 ,ě%A}T+^hg%37iAQQk("e"{b{ly9߫~Z_;aC]j`E 5QM^Z,7HpRn!8I% ԯ*`a J48%_WMDIoĮ)M g.t砝NR")N-p`@DފEK02-">%QWXXߛ1 ? | %t$Ek&Iޛ pjbk\}FBTJڊ;@'>cӠs5cK5GWƴ>30@Y \eq:@PhRqS'^6]*?uߙw*zGH=X 2Io27a  "oxDܜu%48%bQWYX-c.;TvV)צv*q$iF.IAv&pUr"p- i3PK*JQLYLF ͋Be~h0W43Xؒ!0P7i=eЬSjdu@Eиֳ%Mc@DQ=qq`\u9,'Z.=Z1ie*&RsJ\C72۬چ%z~ZcQb$:H$ Xΐ#O7d/xw+џ{6\aA{>椁Ńچp׃eu O![`cA#ӱ!g$|6s%tp8dԒ? q_>'=k',%Ts|0I\slENr7X:2>p6c+bײg{يb@6}V}H=ӸV2ajL=d%porN:F؃ˣfCKQbde0uܦ+;SI,^MJ֨|LÌEnA@b:{iĦU10nX-n1x->^ʿ -$HN@8U;ѪvqY> "rJ1ILO ۩Dt~5q 4@YPH`9EH7-{UalVn\ D0VṔ Np1X\qU#-KgedDmN?Du: 3ѺlH,$AuLh\+(qccmLJj%y١\[7A TbK.,|*a TALX\آv'FwD0k7r#>鵂faz&z1jc+H_i!d퍾I +:5p#ț9(h>c|s̯qM5A~CfJ4ASG1MMI\Մy_^z|[3rCz&Bo +ёǔCAا`m LX&fNRhgmv>巂QC>N]>K$7Ě[}_Fd8FR=nUTBɋbBpsp=rBnI20KFJ=;,*O˳,j n"B;dC|2coѹ Ѣ*p`D9bta~0)b!9:bSC$awZ.U:QD"縥JyS.JeLx?!dݡhW%3: DW ~AEVh&0A:p)9|@DE'Y+?{R|<EJ1dTg جةf23eՙALG@AdΚ0tӊ giA?u ι]sn=5f*%Z33/FȿC4g# 4FjL- $N2 UT6"e r[Tkq:P]&Ĭ~:vd`pύ )lRƿQag?JnגRPE^NH枬h dr$!N{s,d9ALNp ;&6G]D=+9Gu!? $;BAP06״|IpOn( Oq 1[`sXG]f%Ui ^F^E lLZ+Qh,zmdRUU;'6wH9j dcvŅ;s2`3:Ih(c 9pC$#׃zz6˔1ǁ̆~V$KdDE-R1UR6ԣ,.,#Hf,f|N42)ܳy .q>$ѣ˰!3fAM+20W<+8矤A< HȁU.y(#'ht&fd4Q5ԫKCz! IgR3{U߹-v`xz렙%}GXe?T#?$uF"g&bp"X ?B1<TӬE4_sYo1 AvBg&'qTGc$aLD2Rae i]-&bʄEr2oG!# >]# X%LjE>ST.Q.}^[Y~~#u"{7Mv%;&b^fXL"b84|zy:c"X=>=D[ GPrAJ2t,PQ)3|'9<эoZx"gόӍ(E(FL%O= *8N9sz5Ak Qq(ڠjeZ9 [XlZIF\]~:H$4vך㶭ШV}x)g*:wg*P䠍q(Z#X8ȺycAӑHлoêyi$vaT EBФ\h^p[qcVPP2RcŨ8 #,=Fl^AJR2eMk/#J$Iޙ*s{QjqFn4r2ңPkچBÓmY2=}&>` K%S<,02/LRkÐٺaO-+xno41y)גILT*斲dH8xw"4`mș~5\Nsi8$Wg|H* UyGыR}cP֭2(8T|rU VCK1[1]Ա!XR{R>1S_9ˍ6StU(1DLX8N$OW]`uݓa2ܒ餦J#c)-b; _OQbsX```g0lJaBi50-ivN!2`M(օ<(43=ɬT>cC4^. #"&r:bT5ᤘĴRY`ɤ㹽QMENʈ0C O(2` tEZLOȠ+ElQy7AD](xmk J3AgYt3x!A#ELnNHLӰ1o9HSU/ fӡ;6B%ѷQE ”%)IJRQP @1/=XUOhPҫ'{=k92bhh +tQ3NRFhc}fq t_)pf3$$[j1 At RwJ ^MQ+i]@Z4vX1?unE׭$!'?Ƶ\R7'AR&NV/\ %>N=$='#< cv$f40(%εGSi-(\3 ìŖ^9Al*bA+&)E4oFknvR Hډ\0rZ ! H=~Ӈ-T>- g y6 1>X]5\aϐKN;uOB/_&,H[ePm%̷ODByw[kA1|k8mkNQa Бgo<];@29qpt&-⶯Aa\mUkMBf)f\o7wa~\!"OH|{J.:<:',`#rru/6,˅K=m#=ZKAF[WY/3[MP (끶?9=1>Snfg4b:08PUz~o'vĕ}{01F0O`6栁vum/lsg{|쫨Z8xaJNK1`UO:k!p4P-I-`Qf t!`PCQ}2,ߘZ`-T'fUg\đʾoLY0'= NqG} |46pʒݎ|~r1k rq}5KYK, %pOٖp{Ɗe'kbc BH&MO:C:mӅQbphPc3ik 5?&H~F%:6\"Dd ^gnfa-\G3vqۀB]0lS񱋐9v )O0?C=6)ód!!]Xb4q1=kLt~4rW%y^0 s =e,tLRu(*+Q<Ҿ Y8dqIpܯ"-jwNbTaq K,-tgB, U]E}Y>-锻>=D<ob|0޾ȫ_2#[y'H0H/f-ϣ^\,+ sK:t|*)OCzWUi;HLε䳬-:ATidk̘ۇd3^O'Ԏ &&މ!%q'zɾh}:3]vJai->{߆9Xy@*|AcjE"H3iE b@ acDFR`#gnNlA9Fr js_]/d4X,_[Bq0c`пjbaapL.zx"$'b N{bgYy|Ѧ>O2.*:Y,*XQ1J?@P _P/>ŵw a">x@]]7*pH)emNi A,v) tAZLpxNT2(;Ws&BSkK={ܦ0dzM22C{: O EʤG98Oݭ/N!C{ŨhsOzi: 4O\;cU,ôs5VI(IQ ܚ ((>9AS fX5ѩi!ZF^j Y#K堪gC ~O-/N~sZ"j C#LcP4=P_ J@')t| 0?GrpIv.N"[WZbI*?\iYT>|/^Ho~%u=$?=?3~95zt`m6R{/1*SX"}) .t$T23b7H_ nN,'>sG"@aS;HSFs7س,;ڜSY0U?iHRd<̣=; yoa%'DgPd DE R@'#wW>C ?D$H&H@kkviơ1:l~>'Db[gXij զX_kȹ{uD*'_8+ř߯3uchU:e.CPLT@ }?%)_|ΰW/!B ˓r]vVRpl\*WU V(VPcp _{f8F1Gsأpi2Wa߆ہf f)8cq[}g]z3y &PY`Q5 %뛦Dޢp[/½p};f>n5lқՁ͹y8?gPsT'hCĤSٽs/:Mki䊞F_;2+E!5w( zYG=fRkėwߜWwg}35̕ J 9Oo''f,Ӌެ/hf-zUud7ЗKb:m{Tg͂r;S7dݖte-n |ucC9 L1g/ax/P%E;UR4ƕV~k(:ɨ2q7O_68`ďwgqGe:IYcSl6o7 TH;; ,ǃݷ77 Ԓ !z+ O&\`M)gS_N(`0sEgsZHgy|!)PތH-mY0"ӄrz갏7bBb\2^UO2\SwKqj|Snh v;7V蚚Lč, v1 |VnP73fGJ'܌1Ӿ`"WUv3KS=#˜o^fܟؔ*^x,  ?4ιF93-j)0U8Leҕx%)ZHlI9o) B!Ƅp<N"B^C\ZdO k-ꬺul aeCd 4oO<˪7JTf37) ߅7k%'g_0 n(]'K=/RΜg)9O]pHT4uƺ+MXXVkH̾,qTFsHF(fsbDfA{9OBSFsd!>vHtqYe х :L;ɣ!}$߳Wv'NV^N)(V?8a%h~/6$AhOfa} ɟ0° Uh*Af6SOdlǝcS⁋ |w?heikǍHUN;8xe9] ,yWVwd:UmsYMn35c0xI NtJӟ&2`dPz*橭shxM3^v`?'L 瓤"Ux#^7T .Y(#}~h|1!<̭ɷ0G~rLTO9rO̸\`>=>.h?PvG9TsrA:$mf=+zNǗG>Wv&m@\05]Sq{x};kӜa'!#LqoPo;EbYY%'e#P!6r=sМ3*×jIeƕ~9<>T`t B D0J3%ڢAs?oĄB#MiQ[8uw{K뮨KE!cM,hmY1֕K)Y!Lͭj4WwbFed֙-暛o[]]e?FMK2X2j֢"$HY)-6$$ v[ _띮vd$Ufm^P)/@ CAT"# mIjjZk6m+ljYa$ iP KIb5Dm\f ?=_:R3/viPTѠ-B0S';Ԅcc'%4е E{ad!N/g~ m?v4ڣȀ3yx9ffPݎ|ibLEX8'gU/FrRHt} ۡJf_WxrUS~IQbq=0yDǃ*(ݚtkĴQ<(eK7ӵ)}{z ]>X@C*Sk熨+vs1`8ɻ[q??Ϯѝ䬸=R3/,5ťhZVkb:0[hae%s*W r^~ bzP'zA (E'{='~ BDP'B1s.b(XWK=1sFP )IAYgPIv%c.]j+ϫ96!_}]*E)$$~m\Lܫm[t]\,3AeYw[ʸ}U工&Ыn["ڡ(ԦʘhC6mɺm[R laUԪa^`s~'-a ' | ?)hbF")B !d" ?ydBlIyvbpEF$Lr)ףK,;ΧHd<0Zz%X-[=RMh)L;D6'rPxv= R%Osp`rAd\'=t*2t<nҴ8xÚ$$Ф4n˦xYhޚt] q30gRu@|WC {Asul-0ynN/Gxa"tKӇWIq ]NqYeܘVH` w Cv(jSe¶VNIDLp195+S!Nӳ0D;Ik -xS>Wv6ؔS Z$P8 ,b%XvNj"sj<.'„,g PÚhZ%=/)nہB|_Qga X*B%QD1@[CH;C8m4$pB0XIl2y`&h5Ӆ;{#۵p*yW rd* w"_CG-/WYp;{Ç8ľwzc:SL>+m8y%Lb  +yp"ar̄idEyH@]L|.p|#RzXoy,I٘ze/1)P>=$`$)J?/ߔЂ@fp2u63[}ΠdRt0ൂ<G&C BH ~h`e[XLD"!Q.Ǡ%"łĥqg"2:11BW,}_`[ER\I@ ADEs4+{޼W%-$_(Xh`%@IMhL?SLĻI ܭcx]ړA\4qCFyzt0AfuLtLAm7]jQTEM0A3CD&*mIoF>=)lM2P$4& 6UC=Z֨IdI$I f1-bFc< pM"B C/uKj{VI&K[Uʭ #)85,P7)\ E4g u"@ %tپ~yx蝻Np\.;$RPr-o䒷5exJXF07JAM@0b PQ1tb9P$kTG p ,F   k*;1x U$+h+ 1Pˬn%᪄v~A~SšD" ^t:Kmb"3Д]o5yb遼1 ,KbفN'|M6X0Tp`D.jU`lYo `|[i(mm-U(R)Crƍps)؆ˋȳp0dlȽcPV  B**:huP*iK-Y!``D%o[mmu;Rԣ mAdQDmr#ݤ̶R0Deo4ebR&m!bEb9b3S,]xFƔ0E)`0U-6Ԭm3,ԶiZnշHeMKm~O"4!|@fiE4?[7Bnw"pVN2f^&+0#b}=qO#D$Rl~0UTP'fdseǃvF{XgVߎ3 Q A]\@^vf?}qԍRc&+S XLx Ddn1^xQxE wSc.c|{̗:w)LW1h9鉯Aq>qzncVf &02g<{fQFL*;|,L;:bmÑn5 Z9R0dBM4e8=dzc[Xs,S*v=AZ9iU99U^BPRR4;>nO}bV%yn1'". 5C'N)<;5kZqE0"ÛzƪӴᬑ(ه,a6.e .X JHnߑ2o~(+`F/sayj~)tYik&k& 7b+ؒ#jB0ZAf:bC2*т ڔhU`I/ya?Sog*l!#)CE<> Qa2eaKPӶ7!'SC=) n)&0Gݰq~4l~<0GgdA17APh\!gCiV (22 %%"t@?;cFDQ!%h~?/۷/߃H ?nm1#I0=+=#DS!A*Pȍ@/ "M:Qq ?Hbb\$D頡 s&Lj6MǙ오Lt [dؓ#`l ! L{00rA_L=!8-*mlc ^?7σuwzgDҿI0EQB$ #TVA~O`A>R=Ե_DŽ"m@H8Ay=d DwđHO~.˃A",/=~1lЯTɟY>,4@<>8|v4#^N\N0!Jieq)s)GQ'@$LIGͽ5.`Hp:SY?n2P7:3$ iIf"pJG|.T#Lj&L$ulټ&4[Y$r0IPL$Dw2$epa l&|;8ُEM|9U83 ]%YBoAI /HL 97 `-aH2 2- 7$>qALueaHȘGWIl\P- XObc<;\T$gf;NSkpN2d ]lp 'v`͘|Zd~F 4Z[/+2R!p" `EdV!͹4'jv Ôj_rN$M!+ $,>j{MԬnnb#I1b|!rM[[#}4ײw~bN^e`qz9WA(D4rcqd'rAy w,oky$ebBJ=xuKgZ!Sx=<(ؗ(_}fIXBU;Q:'?lQS. 2޺&4TC?( J*tiK @Ŝ+e)*bk&,qii AI*1L~ ,-Pvx>s$AmHdy%Go}tF,A:< q`?zKmf|Qy?*fqa^@ـm ?*9anԑ '{3`rs "%m3bRQE`_Oĥ?kbbN͇,l Y!͞JdU.䶍> 7n(9?7Dmۘ"[NQ&&wF,=Ƿk6A&*5h<vn$p>cW&(<5s}3A4g_aN]L BQL anv.*.؟ 6YƼc_d, {O@ȓS]r&PQqi6ff-kUBwF, V/]$ lP>v)T , +ͽt995[fii3UޖHbb,-RpyD;;;eiLM33Plu.]&i1ns~M6^o~`<]||{9*߹jfŵv@B]X2VPdIኝcpp̨-;:)jLV)TV=.o%2 !4@6/O? ]0x>'y̦'LϠ̳ɨN߮l -'?D6)k*tւh!9/[>$1֡b^XDqL$GڙN~Q&ƄR RI"qQ8bKNa TJ4?z4p9p(Wgp3-k~ t=5vE BN ?P38ͽGR=Qt?qAsg8=nP .$7CýBE kQ|aѹ/@ԔL{mȁ5@B@@HwWzX(FO!OR+$#Ac@4J\stNS⿳ң3sW% bg JTx>{UgQNj6߃rsY>C&kf٨x!3kC,io)+WU@U 0lT3O[&*˨xN?ФX%hlCie H}\o<.[(Jgi3ɔ]8L;E>չq/^>#d$1#AATa0V2J=f'R]_tWM?#i_^OB05ǣ fwOOkeHy3=ph<-bHp GOM^jl({5FZ\)qE3].71@ks5Y+/\ztΣpsZpg&S!KNˆ&5PX:ZPxȭnKaIJ-'UٝDZTޠqǴUcrWYqs]VzJʾI|!NnjxuzAʢhVɱi50<Ԑg" .+b1Щ@s]CLU(|a*1S8JN ԡacpFb*ÙieՈVlU.g"O: 6ǥ9z Ҍ4ږ#a0I疹4p.k}Tv* CRV8\8u)ZH#RP }{5ŷAVsYɷ3zs޵Ҙ+cr XaQ1H?FC22A݂NOp⻑ œOڶ+SA#XMZ0-$LB/DV(-'j'^b;LR(hI^hE?BԄ߼z? }a^Ͽr @,6I} Х7/<+z ~3KQ=R7k@dQP " ̵?*z~!"&i⁁ つ"QALtaRkDVni_v(Y@8*q}^is6!$v.\R< a?*bq `Bo~1='ΟfBhx H[A E$@3dU(3!ףh,ց4"z(u=cED!6f SU 67#㻒B?4GPȤd,8x/AoA6#(#$$Q5(hP)Qٽ~E*tLk_qpH0"Sgu4=/p0cM>OD=RH$2FƎ{"j{Ƅؖc1^Ф#U/X^5"l!b(`N@&Yꃈ>._=v2|Bބ $0Qq`Owjqi8Drʠ sN Ābi(WMjhyǠhcLbltNePC{aC vC`&R~oI)rJ^EN lz)pz&5M5O< r:*$UxC7 5=𱈐6S-R{T ̥=~Jh5]h gdRT`R_13ܤjrh|>ZT3lP)th ȞקЙsrw;A 9W(Pы XԕħѩNL yXUåhd׳ VPWRGĬf|8ЇQcyFM s+F&R#۰I9/}a@@w)#T'QAҙtRALR;.S|^SQ#UY6 EW$C2ƫܼd\9c'3b~#6Gh4 :1I0>êU̫Q _LQ>~%lp\UDE!)Ƣ!Wf- '"@\惻 t`o7YYC5B}K ZqށZ Vv+0Y1{Z2.ެ M?EEA8iIH$&9+47D6jMT㆖qv +CS'*JyQRHᖅ13(NU<0R goU~5ɺ/;$wԗg0MoF׮xOk3ZrD?y? VݶМ:(5ZTcD$4YqE8}y~l"x2|4Wm. vwcك9&?Õ#Tuoou-!Z¶mzqr=&(`⪢j'<1RT-Sa{Ok[T^.T!Jе\M}YrQVHCgtAo߫bZ /l`CO3=%%& JeD"EGҕ'ԑ?D' 8!/w^6Kv>Xn7 OkwzLƵv(e3G 7U 0OU?ݺ9?ó[!܈&e&ir16:u3؜AZ=wΫo^C]轰ǑDc9^J?kzee1!H~v}\`0$AW]AC.Х0R`vaAab͔0hRPP̾6`n1n0C6e)Pd2$`u!$a?bʤ5p-utNQbZ Up'YC>Ex+aG(&Yp9 =hnWel^`{`ypU:ӇL<{Cw+ 61ͧ!ǯzA8+!`#߫x#(A-ГBpI$ޕ‹)%q/Ru*+%Ja{"M#?\:ֲE\O"Ah_`aEpեkD4 hln|6nA|ԭNT$Lܳ\ I <1SHi'^TLVrtC78svsr;93'VS6Aliܘ8H'샣(L#)N(3)Z% ZgBFq%5 GaesJ6Ը~9 h XtjՆ`Ƕ &-988?H| 3}'ZcwUI+w~ JsM JwFQ)CN(I( z=q=c&+?\|O%ْy_z@Ƌx?1 QgSizl'QM9ad82'N4AnMO[Tɾ?ŝmPpdK; mc E=ȤX0ûm[#p)$0)Ǹ{,4:zMAX1l 'Q?}+rep33 ˼.L0hn^w3 4ʕNgЏ- 4m aЋWxGteZoݒDYR[ 1B`G)L b< d= kr q^R?]]մx'B}ZM8-{GReP󞌈0w8L+W@5Y1gq@&~wAjH X~!#!@#O~P>w2 ` 2G(R܋=0"fB6A%2%q֌}m$wh짫yi tOAIj 2qws>U <+HM&L~gy!q{1_J* ̫ aB{ %ayvI,%C2ATPUCqbCxp3yFc&:z$;N4!q.P 9yI5AԹ(!=a6;^qK#jWB r_"1B ]`z6>ӧfG]2)R*v YߡCgtaGBȑc+pD8h JE.rZb`"F-"3h9Pd(Ř+fNd^>1$4 +[[M&@U`~>3nMvr6 h-U O@kٴsu-7y z!oh0$6ۧ6i߭Xfzpp #fx26U GVEȩ"C2 #o H)Jw9 e `O R+UJ^+h}o[w3#FO4\5Jղe} OҘ{C;[&`7Ǿ]XŢ2ޖ !&)]9(7KX)"jAj=-c!ջ3#5BvI$I!uA-:gQC` 8GJH1"MP)FK}jfm3,Xbŋ2>ӑu-bEy({%|d-/Pgқ@nTM8D*ilkTQ=4r1fq MFh NҔ@TO%s8%PB&D7jXCNd{ʝz6sc7>+ ծL_3ן-+纮X{ R3'Ո)iDDbT+vYڎr!D LChMһYV!B:&iJ *d5 MPK|87@lM5vvǑ0aԥ=FZe PDaBY'~U?*]pu>f\٣qG7*EyWz,f&7V{ ЄJ+OipA愂Ȫꂖ''H/ŐQU% u9.OXY{C$k'_-Iˎ3M֚}>&0/bp!Q*:9jZeFǰ8zkr:s,ЎΈ[J[4!cr9d o'.@# jK$ 4/-N#̉=NY;"s088B$SAȽiB>'Wzs#H9M[fZRT1m`#QaEWA_rKNxSa)O}@At(:x@TTYij?(y@EC$Oᓗ91DKh}2X1^\{7:~QY‡@\.9C9<.DHq!{F&ʴߓ2RZ{ټ&lw`'wAFd ]{039s F ap j~D86ק>/d#|l}0?BouNrh ښy!ApYG"$A38-ܚSPQt8Ab[K;< (KTn㟬= ] eTt##N45jQK _ts‰]̆0ҙkHlYd0g<+ c&̀ǴY(Cwsc0|}F%xչ$URdqpZ)ШYZWSҒ=qVN (A[ I#6Z/axNSnj/cMʏGhR'1ɈOA`iԏ,nZTNiFaNCCD8mˑYl,RMN*}tL>.xx,Ҏ;zϥ"}q|MC+ /TўaI؄h菠;6,6|/t8i쌄ٝ8=%\r+h/XK$l%N ^{pkOȞ'nA8DM3P?3"3~VE4 mȜl/jSQ4p Cbony7dsf F$ (*C<H[ !f qpͳ: ?9 diχ?g= @QJT!Uom;Q["vŶ)-Vx|42`$:(U%,L` Oᅨ9ؔE?ʃyI#ȁ\mat1TS6l ;e9<@I%{!Q IA{;2uxNY:4tq|={*1kS=޹C<$8)n5O̓p ZZ"\@THOWe]7^&?x Da=V^XͱjRQjkwb՛MU)U$$ ,q=S {vgꩶ/{2ȗunFw2b!aҿ B&VH]및֚nv MyfhVy5{w  ^nߴ)=dByܑLTاDdе<RaOIzSZֹ+qC#V46v@e9ٙz-FF24A0" iT|&j4>eMu+G%n=[9},ڹ/OP9~ƘbnÁݟ6h3jd3jNcUQczG8mjuٺ2.\7qG#?&lvSuˮ4,.!"5ZGV$OՖ>ی(۝9&cCZ>$ Bq ﵨ,<ۈ!%Dq%q9C\2i,`gp : "9^l-c%An,L)qvy{g~kȯUv APD@Dz]WRqciaU8U\B&N2XsG}?o4:ߞtGf'*ōI̴GN<++/n6$jUZ~hKinjqږ-myms7\;ߴKnbPyo0w էUwuwܶimٲз۱Aٙ>V N'`[mV|/[9!T2H%p3X8w}\E(ČfwQ tlu`'T;G|:*"31_;߻;GNUk1˻ӿGKS.靖f;㗙wwwwwww{w|=L}ۈִ ;e4r|& > ~gۄф}T@1Z=\=i~<Xk 9";_bAEL\ѬK~΃k)aol n B4QI$$].s6C`W8_Ar^H8Śwvfhx-h۾)!dmfQ:BE`)Q@8)/IBo1h)}A@|]{ht%"fʃ><A$y3fc@OoP6&HAA:o/ z7uc88[ְHu"m"b#*<)S1n zD20.}yfbnsBwL8x4UQ4oqLprk'8%b wo U䓉iw# BlG4w /ɼB+JXj?;ϔ0Ĉe0Y Ye}ֻX=y]pU;4  "b({iͣLЊ6(# CMC 6Af{h!$W=nVOaL O\gIa37;44!E6%E2Vx@:I5xUGm=AR ٺטݐlƘs>{ w+J<7qSboL9DOD:T9q#TI$MrO~^tߪ}V_0eXrג: ;LAO* g\s <l-Cb >Ȑb@CY#_ )~A[WQ,:֙t!i5!$WQ`PhC_6htsx9.9}Nc/J$'xP 5 ꁡgDuRGD $@#q 0'0Dmڡc!0$;Z@)-y,Dl "0r:xZ"/")=Fo'`J"Q%C%0`pP B%^)OII* B8>*Q$XDb(}60Q^jFΛ$)_6cHB!$\Huh HAlPr Bo7yi;iya0AZ+>^Q1Ӿ='s{4O, DEX3\ۯ~˷)4I/e,4TUz]*m).1 Cc+%U CZEv援Q>J (Ri > B!!8\ DHD7ރy~fxqrxyvi$;qHi07žw4OޑM,? ?|]!>6BxZT!"!BǀzZ**@6AP"|RVC$N%jLM; ~ @l=ȧ NC2å9P89,&D7i`_ʐD+IHRPϼ3l&,5)Z/|w^lc ЩC[!,h~x>C0@# iDQ& dI" B fkf|qA9D,Y ӇHqezD'(0VKw\BFѪ-$EVCٱ$u^_LIIJq#"x2pySFy$_V{y3PTHI$$H$ί׏?эTj=*麺j!f5hLuOI~ d".ŕ!t;RȠԤit GojfsKu8CD"7͆lf>gg< TK5jlX뎹av.-NP # }%F8SG h;g$tw_ 4 ʼg~/B\$GO~4>Hs'pDE%<Ey@Ed 0#w3~#gtJM/yI yA8R>FB2pf`Ȓ`QT1ڽ,a2;dNIGV턃(O y)M(#qV8󔒢2%->{%Vj,GyqC1Rf5EJ_G-5raK`PM2*sT'pB*fD'm6G`c}ICKL>8%&M7DŽd5MitHS @]b@|X;*W` Ƅ'C:H6t8COQE~i&$HNvO>9aDNtQ7h䚵YhYH#P}Q!<PI^\М`32D|*˵2p>N3+"i?Cwv%&3u+Rr].b"Qf`B`AwQ. c!`BGEİi&)á߬9?2IS1hO!M%RuA>⊥?ȇ%(fH o9`\'@{ ^*J~낡 .M֐p5 0{$~ЀeX0# [HM"5Զ p0J$AY vƄ$rSDfr g1u+[b,H&F%%eU2%)H!BSf!P$`rcIL; *NdtX2ѥVBE  g̞| hJ$c'-zsdNsWf!CW@jDz4M1w>iNB`9r b)9E `(9%!D< %JO0Ȑ+*v"qh-w'f L ?*k  Š7 YKS[[ \  D^C: E\AAfIYDiuS@8D)@<Ȩ9E.SE>:.3 >$\"DM|ySE3?vƢCo5*ʋdR*?ڟ :ESPznTkU3jxC( &hOIʤIꪒI3Jcy׀"&H[hϚEj  DS{84ZP|a7&;ZA$1A<Mz/!P$& ,΀KRi":/hATDO$C}#Hi}bțD:슻*p{O2\ݰGGzW*f=jW p6'κ$4 (qB>b'5sWA/P0> ZTV 0쇽0cw. b*jJ`f%:@)* T뤑y§R[fL2Ld x/tx?O8~go|Ϯ&AK)u Sn'>om3 G 7iDj{Q!óӣǕ~e$Rrؙn3hD9 a!Op#/N6S@܈~Dt!)kʪV΂BIB Ԁ `S%O-!Qc!~4R^0 S Բmՠh\WvJ9~cu<'@$RS "(*C!A2.%o2:s H5>yo_~9ZP~ <d%eAjbWNNh>@z&y|,OǗ*7 vH ߚ'%⡑8>k:S!e#9!؁B`&X?>cC=j(DC𑳩;ID Y!OYaJBRf͉2EF' IIk씽]//_}'@:p|Y ;"XdUWH$2q Q6H "/r.)6qXLZ!2G&R=hh 8LkGzY#dL4wdq+Vtnwj|a.p~XNB[F@:v*IF ^؞/'l:;Џwa\!6 y/~?ϊJ(<-D DX\5DkYa1& hHJ  ;IhҢ#-/t)Ә'&g'G8""iN8Y^C-7?G:;청 ,\M6lqjh4B}R42*W7~"e+!]?KyDv94c]_KuC^Hy pH <@m?6=(+v\k\c! d.C4(s`ZdR\ҚsĄx7sţZX;/ǎg ƾ;w4yVM=J}bI.G鑐6Z9M9a='OUo]5 *ھN&1'#NpHpzP04)ܔ@H?93iߊ^[TJ`!'Ȇֿ _s/?8G)% W16ą?+~LJ8iɐ^eu*CѦjMy, 9btQCp t"w +`92~ d>ʃhdD@c @Ot99_ת{/=xE9FEhv,b ~㊕Z>s7)]CKLsw2 W2ڌIfQ "J኎ &L|(xh@L]N`JVCO1o>C$i3ʓh"F"+FȐVuAz,5Es2oB[1E+PWwpI~ n"0Mץ4v2C͝ "< :q:DA" .^= 'xX $œm֫:B, D HhV3d@^zkl10&EML!3/b*EAa<# lN bS"HIU'1,U6|vG" ;rI`K [PK c ~xi zSSw/Hص{>}}զĒm5/aG~Z#FE'ʇzpG=` pPdq ē'd)ل>1DD: (؇ C?L  dy??#n=Y=f@V䚽::}Źkft=!4 K` 118?tw^Р#֨$>HTcݾUqtgdc"G0y$* Fsi Lot@wanq9Cwۻ$ag2X2:DB~JP`"܂l6Fr! p1t М`R)z^`fH97INGE]iZa7A>]k8=O6p}UEvsyI K=aKO䇞֖m-YmKim-m-[ Z-TUUUܢ_iȎL:m IJք"N. ;RJ(_ݸgMc W33YշEm p)LfZ+;EICYOA "+̊ 4PBJg:64DܕzSxE^Qxv(-COͩh1»HzV;ˀ`<>t ` U:wo@nGI$-Y6|@Z7Dh{@ʲGUA})3KsR܁LOzj2 zRI Ggw>2ЯVRE,uv3[N *$\3[IU֍4M}?/y(E &THG Q%)J0Ck2 P,`P~bw:, H@k6!m #p>Iob}(X(a&fE?mϼɱ-:^Ȟ TA0EbsJA`ߠ1zYլmն7zDٰ 7T!dx0 gV@(iMLeUmY.6P?7z<` OIbpuH BFRR5_z?8 mjY!?GU xW?`u7*@HxN?CiL@?z^2qYAA&g)8L'?e`PHt &H"HFU\}{|1!̎8$O5Kr}ߗ05/m;*η 8wlPaFl6Kc%?$C ծQ90pN:͇'>C?*x!@@TOA*HAlp:QP6f*E4$ÿ,o/' jmt: y!LРΰ@bǹD_z6* j3`9rLP4Χ@6gaau hEγka5 gȈ;r(g :$ oOrhCa| vKB"$^_IVNnUZJc9BvQ( \cL*&ǻTHcup2ITcG(ߏO>&wOV:8;cđAȯՍ7K[6f)m_@L:tB';r ^U Oq("CO1HϦD{ϣ}@gjy$9$(R"T- S""zYR]9$/] %Inͬ9,h{ ƬHa 8g1&f, %~Cvhp7gW?L`t:w\ aC038%ӒGwx7hqpI|MW_ Bu]6|%| -4;;՚}w;j^ĺ[2&F&W]s6}fX7Ž&nK8;pqۘ02|B m/W{ڧ*5БaMVSzGmQR]<4rS/oX,6c1z zo\bXT3C#;WɆ0055(2~6#0cs^p̜u)Z}1Miٞ8 [O#`$P!NlD$AИwo͘oʳ3r3 K,/ bcP3ggv,S7<5Mj3l;<0ILCq鏩ypA˞BO8x "wߢw E=pN335 !Q؊?b1=گ EFHFӜњ'1N#8`2l|FVPjd+j)gW!TKG.5)#!, txc{F1e1Pt,P@;l$$Gxtibg<#cE H6 uOwH@)U;)5d~k 7{?{w]Dk.$I(y((jC$$Gt >!6w!B}\P*_DU{#7ţ xX{ƘJ`|6bSqҡÇv'Nh_$$G~p';Nbh]m%pnOͿII$:ni9i4> s`Q^ 0Ba4BL4r}u3wwwwzG&KG.NЯ<ڸC!{4sUWqW`-bHs̘ӧ|8dbxw?#v4,uFIdb8ס01F Cb9|S)=W<.a-N wX8)bFWq}<|ΐ-pb)djo%K S@CuJp"OޢˮBO1mo{W$)S̶mjAq+ǐNP%ADD lt]Czx!+B x:'- I.$ 84D),9ft$=I0:0 ',Bawxܼ>b ^`1 OFDFZ i B &60٠SWx׬§adO.ћuw4Ԭt**L`Jf;'$(,$)4-0e wrM :^]&kyӼSޝ,cAJX(h!mNkYG^y]z=-9&cE%X]IUR:hMQ}ć1?й):-#P  2$./ @WA&*;B;)@`@qC!r)䢁S"p44 *"!MmZnݼ@ VFYT+UMTkkkJPbóI,4J+O|KLJ/ az 7%SIVMINM$Mdf[1M(pt[vVƄE O=!&RI$oD&(SAGcr kԹxwM])D`)%3Cc$Z6bICKWV~ ֨aє(DA' D Tj=$$Y"ڍZR!As@i44D&d* Rj L%A[ )K0HhgT ;Oa6$DJTom:V7WNDF p^>/z- RfIT,!fd 6:`i/MalRX!CwۇPwCw ~ʤF(4$\c-\ )) f!a Z*(šڃ\[ %԰CR-%E&슟A܂DGo ` [@N]a@!L$hh*J=!eO!u%\4(g=ؗ4fd.v!CBQia>Qy30LͷUB+:oc݈ʞgN[^q 6-04C¸ɘp9jWYiQbdSMb2be^ȋpBȂy& %B*\AH$ԧ] ' TdQEkxPL0n>/0,߉(E"|A^aDSb/5.LY`X!Z2>2a$H t$D-ID X"Y'N]]D nTnXDˍ J X-aJD #6 dF$bU#"1jT壍0  3TXMt$d" vG *-6DTAڙ4t/CPY͖?}p<](}n2TQkN!$C )ZO8@$r 옦,ã~ט=ekA!CAR]Km]sKMmlố pnĠU"F``G@}kZ;ÅC #kuwl_ Jcj)N LBaDȷIAv֐aQ "QZi C)JlӦt,t e֪!5oj<dbǭ1J [VI}$^:=0RBԣ/78F@BM(>C=P,TF p"E7(ԫX(s8E\DHȲ &$l3[f% 4͎sG- Nng;:Ru (G;<g{'4E<m߂2!bEX!@$!?-PF,B$D:ZL{B?Np6pCݕ&?̥ҘM p"@g$ 4y l!iM@`լz gJPBX P~J ].`0B!\&B/q U\HQٻy-ݭ")Xy:qp~X;ʥh-BD?b: A /03)GVd̷.IgDCC/>s0AS}%mioo#WѮyD({!F"@!oUJ)HHPꏜ4:+n[B CbǔB 3 u>sJ,(!E"I %4kJA B haTWaH |svKv5ĺKaA,AmJkd2V$d X *^K6e[TژX**!hl0?, P??jƐAuB*h&UKm JvL;B*Je~X<H%0}ؑT'bPҽ0 8aiqcG_A@ xYa\$ Y"%BX!X%X!˓[Q;qo8GU8C;I:E!yТىpWaHoD9@.C"?7erb} ɼ OArc7.5,9^!͙S]5Wy 3)*>A;9^N!umًr3%/k޺NTQG_g&}I3!&/[ғ°j 6D;o2p"cf*J<4LX5 e8ZR(N[ijۧd&QKkHɶܬ5H*Dz׮dHma"Trui*frNȫ\bc[ES%4ڊ\nQ8(=>6 "0`F1h5X4,QB) BQ lP EVD!(j-=)"z[f RРnݹ Gh2*i2a "9DQ@H nLR`Qp  F+kjY]IQ@,J $N;%l @"-|@!gEbj$>D}>>,4tDTw ]ϒ Xd"IP,t3FBa!@P`$]h6s ,drvNC1Frh2zKЛM  *: =rN2!qB5pb٦Y0Y $D6rAĘ/9De +)5I@Bt9Ll(_ vXIt@.:R#\C  H}S) M8&9  H@R' $z?٠pN#to?'{fMfd2%5>RD>-#y  QKrg ]'4)->sDR/Wokjdɀ|x$L"y8#1+( X 10( E) ! 0D)!nǜDBsy 6b""  w2ڟ<2ncH16PǷ vS:HDʹ8ˆ)Pd$ŲhZkRHcUvl}:L DIxToAOV)iujbITTX+AR1)^ݗ$*0@0 33 0$$@ ̲@$ 3$$ |=)_,mЯ 1QC?I`ERs vQMc"!bPĮvP $ IMh]fB)$)jdi6+ֺjTnֻR[m&ep]m_}"F ,erG\a4*H>ĿL;=DU )$ߏYoP=Q؈z:G@qڑ ffV(DI,B@'{@Qx0z(!=K4?H$`5Ō9p 0D AR"KF @D)BdH)> H0CQh!Т/-ۉ"$!Vڵ11L:vv5?C]>}$%A$T! @=]+{I`1 `! A"q9 qI2>ٿD"" vQ@ i2}jDH)2Un/f FH0G-;V`-@0( @Z)Nkr_oMЊmw.9`+Q>QKT.pUENAĬSEӟjA#ށ:"JiiJ̫ηiڳvڳ]XW۩mWM&fX R`Xa"\U+]h!X$ 80M}c ȪP $Y A ڼcblBI A*G2|)B? TA<HH(hyJ li ytN|Cg9Pdbđ,1c-t%[P. # lV:eZ"1V Th&SWR"5ɢՀ'OnmCAW F 'KeQ YD<&Dx̖]8"z߸Cc ^ă֚x{nd,NH J< l'bVP+$$f@FcK.D 'EH,;a'l@%- I0`&FcҚҚ)+6qɞ4ӝ4S ,ҡcBx8Nq0)r&\k פH/R$@)l'IhECX FHaQXXql!È0Rf#wJ!=јYȆ fnOoёPڇ$0)@$2E;ybp!f.Bٰeۂ$S"xf|_ǟt EԅRP"zo9|!>uhȐfMv>s @xwX´Ypnh\`0T7T@e5Qqd엢264DЂ@aB bjC! CPXb5hEb3"2#WxkH bKdXhZ #`d:'ʀ25Ũ` qc 4QA ܎O U^x AIMT̃։aS# @h۩.TEiU/>y=gd`( u 鐔qyKa5VVվm I}~o>VT|%#`EaScūļꖾ=_?п#ђBFK}+کpCcX.,†" QlA͙L J2T @i{1uB75x1&hR>p+ˮt! fu^8<ZT4[HAujT>Ba5'a:hj| $W!T Z bc"-2@ݚ*'h02k*Q|G6\ABG*^-C2E#E Nhk8#{AYMYib)|s"uP=3ex 5CD|Š x0 #_`=޳vDJC7`A msBTd1Au850>t+hI̦Dc*>!"=`© ^Pf JA"#db_N!F(Y}p}3*RyH17r !I C=ډjEHD%n|~$;I &N4Tp1$/f))_ϲ6`<]XC쿝Ѱ"iz <`;dL=t;EXAE(ڎ$ŀgD{wEM]C|@ Ru%`B$G8hc1%̆P!&?JC~!Q"ȁGQ]d ") AKN  27(3_|5|wS6Lbث >۴ zC +0`DchH5OwPgFA9P)s%0;R>@*n|M}Ssk*?- \!H! zwqݚ9 #^q9˜I`,I#"`Iu譩Q> 3vr>( Iu 91Q!Z`({ĥ~4L468MwjG(1*$BEC`H@ B@JStʈ`4RbZZa"1|~f rZrؓ|n:plloA~hMH5(e-: H@tOS-)F$NjaQ` %5D +0:@3$b28C/  ۋ CO%!<ܔi?BLXTt{˜K1, ĆU 4Ɛ}Q#Zщz#E Q8[:#dE6kstD!u0(A8GeA1]nE0)t,eLrUľ$*:*&3aq  /wRY)󃓞Fq ڈ xN6$ytń7S@. khpIeAn\qN._+;SB̐fl5jW&12+Ai:{n$f07Xi(dcKCr`~pMC$tlV;Z9o>By{Yu:b[Fv<釯T`3;Zw]M/q[Ȓ5PazX`;vszx6FJ24$+;봃CGE%j !qEy"eѶ ^q%Jʕc~`&ISh &Ԩ22 I7ӓCrKx5ޒ~yJΗAI``0H5̢<acvZ 7Mo;NiΘ:ha`@L✹1\e*[tƓ݃ɓP Pm ( 6o* [ G"t0= ,XrX^I+;@Y#2dر԰6\p50[Ma;XmZ * dFH"u+Eaˍ.vƁÙN9l9C#8YPztO6^Դ,?.,EɁ,9]#U%-ΩcUN\p؊ObïMXAng"KgM B \}'X~8KC $VDDC3F4}Th%J&P2ȏLc§Ogvvp:ؠGJҥ !ڱ,fm3%:-ڊZ 5D790 $ -et0-:X<4M`;pK*b➛~{|q;4p~:;m'w ^\8PX  qSqƲGKb pɀ(`h@x PVe$!"&l]k0Cvuz-E8gfm[ FVH#}hFZaqs}ǡCbE41 h&H.37FsՓ`]b8vkt/c4yLrP.cBV)gaBBNRI9=#*Sټ9䉽@{ڿF7Df$/lj) d c#~B A<=321jdq+ugV-$NHtaV@0,pXdᖄj%yo9`kԛq&FLa¡$  ( J( p܋9{Z꽳oȱ`Q5X Th% Q3 -|k`-FhQZbFV+Aɢ@BAwXRG,4``Q k-39*ҔDEi꣑2jW4CLQCCAj2$1)L2a;#͇|,VCHKF#!.4bE<ܡͼa8՗eO*{vYNEدB=J 9{A)!t/tkq!60Ԣ@RC/! 5&2Rv"H$䍡gQd9Gb@V: gA>C';>^"ˋ1A\\Zbb[e;nC@uN_4'[Jql=,Ӈu✒_bMr]ՁleyDi~(e//9hGf\ m7ՠ܆."SDY'-[aJ XVs{UAbqcd0 !0rBHoCaujtlbdw4vۆktY۹ɼjÞwמaKJDn @D$JDp1H@ 0X1Ap&^cRE08CE( '*u7N6 JGڃzkj2fGwvrTP'7>FEJBȣrM"C0igX@! ^U6TT E"TZaoȽU>3q0m$PW`Eh(ȃt@96s6N^`&o,(>MS-!)"{ &!ɱJ@g]B"Ի/T#Ϲ> "dL&D \ =SI } S~cN(H_}O)Ou!`A# l@sFNjqI8+"dYjsllK*lFjBW,uD\$b06552f!L鼋{_tCc"Rģ#E,˜E]l2hp`#HnLL"yB$":XDU0( c/Y2^.CWH8QQ!0EIDˁw'Jr!!֒†&| d3Ȝ\PAP1zN^E2'$ MSP䧭j&J]d[L!"?ڕݵ&V` :rljsRvDUQbUEb0@T?c$dbC^dU;sy"HҤ,M!3<5|}3P: !RPԡi,p((@"*o>#cQq@a]^A .WˠƄg0ǁtn@ ؚ$  4Klr͋j X QH8aFVQiDU2K "gD)fl? DuG__kjJ"MnB U8\bA~PiaAOAi"AIOXFdݲO Y=f.pq8"+&Ƿ07D]XdwfqRg4;hI|.djL`jt$c D,ckica0#Qȴ#&gkP{c)Z_&e>oL80@8L,@i$,ҫ3NbՂ qAr fQ96hFNPPpjm`aɖ g+ 8XSFp471*VYҋs(j\*06`2/f(E;B\5G3 DV mp[dt!\,!]S!BF FSFlɪ hKIYh45%mWJ6 TR*m,P`yS p)H( $#Ⱥ򥀞&zvn;X Jh2 2 hLQA@SxD@! E :^b`j) Di- I3RP0sWi/M\E0*tBRkSI""*)(l `1_<b:3H1 YN{Ci EO%Dt$O75h~C- aa-|PNLz|wO!,ÐTb11\!Lj`D(pg`槽r{3 LPk*{@^B5] <>|XTAK|(@d# Ҕl.˕ TWQzw&5Жr~b> Q }E4 $/hdhVET?z^ޟ!`5v"qJv#T^_|ZN҅`EF6W›D3RU 1èli*~؀ _*A@XI?IG8&ƇrC [gH\#yrC1 TV"48STje5K+^ @}& TH *! J=@muL+(WZ&9f iMChZU$d+Z }5D fxI%G{$71 Zt XoOe"Z|  e7UvQrc;;tAeL)k=S Ok"X(͒(SÖ(QA`P7pE1P;ø-T!"M3Q0@ Fl,g-+-ji!%[Lȴ*TM}ԲnUҭ,e$URH+A/]i٦O(*0(JT B܀a0/1B׬wmrs&7=p؁s``bny8XHcaEC",[C{P 8 )A 1K(=M}ш+-u!l=~mC~kԎ- ":NQD*B{_s4@;;eNd~Ǝ}bxGsrcPp"Q:Z~4D'TȀ2H,)|0dt| s r3 W@=rQ @KE/YB8cg9'1 z`B}! F`hH>1-\'xi]26PØPVQY 44Y]Ae|PCP)QY#[j*kW}mZר Id2bH $ FĄCH$d)Y ^͵^*Y)JA$Yb#xQd sccU h"emJNT x6HHKd hQA)\F 8 X=:(z3PٳUHr8pi!菳SaL::gC 9vQ"JY a) 腓U^ؚacUG{,yG;E-DZl|5Vf͒,`lXI^l$@sQSJRJ%a+&$|d-L|DBfT>7fyxJ4?> 2kET )kmUE[[I(@XĢDҔYlhY L 0HC}vo5[_Qk^#{|%Hzi b 'gUQ4 Eަ0XEŽ񚢳J̊GS `I}抩ANtw CaSf}Dmjjm *mFfJI30Ĵ52Xb+֛`qj"Y-ED dU&AZRGqll4Q&[B<`Q!CSۜ\{e&Qڠw358R('q@cӇfvCĎpeoB '%<v! ?Y2@LGֶ8 NmQ;Vꤪ=x=.șbӫj]JTa1ݧl1^`Z1UanEutso_~8,E4DD&L;90Ƚ~Q-`tuu@uAS7UER4? }@̺0`*GY R m~uՌMF!SU_)lFLbЧ Iֹ= Y,#)w=Abg,aFA%DkPg;"!e@EAڷ)vDdMLA,Jkfm3{{ 8a  v巻7t: Cn$b#1 =׎-hB˃HF2%gH@ +(N2jjQ4P/(Zs̉HBu%JCF6<^6 ɱTzS@2 ?tT>u(e׍ B  "h<7,)3yX#4TC EpA2a$iJ q c$:9ɸ8Jr ,8hg.'Y5dL[vRѱj kmC+#E>61V"$ 1<#P(-- I,ijTKI6k$ɭ, Ifḥh,2ݳRS)L hl%1fɓ[a1ik5VmfɵՕ6`J-̖I4R*1c<'o ?|h"YC>"G5a5:5 mRͩ"m[5mUO=.խiF#!'kbA |;5 nj/@L=aB,54)B#MzvcD`@х6f=zFKC&,2L2R,E;l8zKOAzם)d0za䀦JHȨq^WcW5%m|wEA RQ@lPs@b3ZO Y=%XB"L.PK"6 , ARN)M XXI)ؔ!B JA20Tb''6 W1sHR|BCo8xbmVE!ĸ~ՆzPdxw7HDhM'A ꥶŦ²vkHxEJkZT-UPM L H;M$h9;  6M1S #1 pgạHl,a?{9A)!0 A"Ӕ#hohQUa - ̯F A0~g@"io"`BM4h aP4 6"0B `- E(7'L`LBccCv`QC7U {,eP" 6\h魑&R@ECgWV6= QN/T &W؞ Q{#!ˍ"xe/tDG#GI0KLF@C_w]>q@$"g]Ќ܊;P0!DGElLr,]"`|iIvz>I3+kW۬eVE` S #!·ĪW؊lN6>*4OI^8s 0aC VGunM*Ȁ)0Š@$R'je>2!7QEV>f0`,S𻒅goyO\%!BwHV3kyNAm2%f!C:%b.^ G$ n?}& es\ەZijV@ XA B AJe}vV5Ֆ $ TJtH)B$!}]^?h;MCrM)kTnG)cB*Q6LE.@6AAhpi)=Y@H:aC ȄQI J =QPEN=Z vХ b |1V`$!$T%P1ҁ0@;@d6$Sx<ᫀ`d~c_E 8F4z4! $H.,ʁ #] 1 !Wr(9ɫR[iT^*y|1a=F*jֽdYVmimt3bAB]ԲB6L 0Vˌ0LLS a0lPnZYieŗ{Ub=DfK;)N -X[3JS/9l)I " vhM #g:XX)IIe[eMm66rrfeL &!܂(1)MשZH; c5@1!H>6VyQd5x5AПV) EIvZK^>k >V碤1}_[FZ_N^>קo=^Hr+${IΫ0gr;=vi=bC$66_SĬ4;ԷPp~Lq@Bbw2t`zA@)"{C!L?ٴaذmXI!@P =FAl5%g*zI㬒{,Vl3fL,I4pbBsC0ivZGF!B ͬ[0TՄ (1| JX@#$-DOQzMYq;uaQ5PU=S4ȀUʠ?uA8ΊpdplpKNAT)@`:?BX`D3D(+OБ4-(Ĥ O?P@p`)K tBDG鄺Y@Ђ` qW$LNމ`뀂J oǥ!J4Aʥ)w$<)fQ$a,T 8 Ez*% Q2 Hd 3") ,@Ib2ae[R$,64ʑRt@ cBa@0F&ˮ%oov1q] 9p E@d#( RAlz_DSCdQNRsa=nj=@KB5肊Oxs`&ʫ+2yyd % 1@@8DNJC U=vF(̇&L)3A80s3x>4bR:Qxm4'\` y \ÃΑ1bT!X[,>śÑC}0IT2p!,~uӡS[{3R<4K= p/yB<ؤHAg4 PBy1 90Q=>$9z1\fg{mB l.XxG7~Odp7LBhYv`rאwńH0# iVbE %6bzC3%JPMn?ifŜLV8EjS)l!TZdޣ`teCRYڙǣw@J:Pa#iZ$`\+&(@vjsȜt%EIHCIIiXTi=]uI+)+i,Y)0, ])(SiST7EKkk6VR*JiʡNm[\yvZFK&~GlS6lĤi^zXRT5j@[yef3i0  )$B1dP)a)}4`JnX2үI-e>]y`FHa9eb $` dVb"TTdQ8+Zha+DUN(|@ $6q0H HPAKKndAAbf!pp$@$< $,[R@- m%S xs^CJ_Ȅ0b!`aaqCDRicD:4dMFD]ee\dP5 F ‚k). E 6㤜LF@o4.9 Dὐu e~Pvyv:$)'&uHqCQ$R;{:]8DS%2rcE"aA>9 ph' ^ qH|#gT=Fr"Оxt.(]Ih=N)4t#0J$+xpFxrw½LjkPy.-!Go'D/NZgՔݾ;{yfSZ%J+KQt6bTPU8Gv""xsL`B¡Hqv')!aSʩ;@aVh >`!P[r ޾/ta7qdDTS SP[09vR-,9Ďߔ1JG8F\ 4Dbz @vSG`D-6rZQFNoy:N) U(Fp>~s5 Qp `>/gu5a Aqf a L0d39Hr*/r=?bl.S86[y>qF+RI  ;͞ړ1 x*wvb'qɠʼ>D(GJPK+4%Wg[KR1I`%2! !$[b AH-ZL*B,R%PJd0iŘP 0 $RN@j"|Addb5$uDmPAb0D \(»A, (X0`G ٠ `€P~*f‰BRAv"'F Q I^2&ۖjb[zIhW}}Fee1B[u,1[$M([$c{DOH&hQF(h,%9JDD2Wv )xكA-`>xoG#"t [cCQA9NhFhWxg(o"@^xQ*y)@P AE5kEUMj+Z[4R[iEjvʚYVI5Mk%&+RMcVtRQRjM6lV!"† DHSAmJ O8zuNIIJ4)1!pKYbЖa !Y X%:)XE#1DS8Q1Hp Tf;7.>.'i,D$>I%'XOE&7'_daJT4@,` UTn[iKnTP0G)@ >B>*Qt"H@MS7E# (σNT>턽ʲ4\5bem|$OPx+jx+A҇U$H 6 czolG/YG*Xqy“ЩU0添&ZoVVM,FتFMX#@WH 9@ "NBv ?$*E F -"a a0 Ra01 0vT%" a%` UhXC@W?fD qd0H+PXD)e"Ŏ!ʰI (` jcːǍ-vXUW5Zy껸JNwmҊVRJkxL4$K-kjwuus]vTI$AKZ`h@l &@MT!S8R(D1 U ~Ɗ"/z1Q- :$"\ !^ (1;BD5r LC13.P?JQP<  ?!SR4-ckC 2Ix|h !cSߧ," X3&I&u6noiWfײmYmwt F g-8a?#H o4@* $cbC$[%*"HF1WR:@ 0#95,qvREX7lA-t64߾ C 0I00*J'ڲt ̣e #L LŒ ǎib A$,æ`$3O%0YO@灴.;{VAK8Ϥp&3̰G0N' q ([n'";-`Y@E|)OL4C8@وkԨR 7,r29F[ PeFс$BRJ r, f44,@%*HX&JZww1Ζ Ը. ϱ6h νdi2!^R-*Gj׌UR()?%vHc*au6`!1MU52*+u2(SwwQe@! 愊e qH0W kA) fP@l h0t *F J K*%P CQvG b{A*!0W}甄=SjkSiBDԌa~w#O T4H р`N ?L2aWdab$T}TY];l&ڋS_M&KX76HH%}sK"*-lhT1 iϾ(sP Nd@R2 RP0}, z6D!iBPs<;9jRSd1`AkFڦRiU`D)EH0TmSOaʀRA p!}@o5L&J,f6D[))Y(h  Œl@v{O,!'rbITmӘyy/|32(Մ=t\0S{T)jv pDH"Eu:DHᱴB%bvguS4S4R&>Y+Ot` X6YVm+md͵5JmPmQUaFDOqa"Cb&m7 $ Ȃ:$Q-koݷ֮Oڮԩc Y.VVmYf{R;i*)"WH1E0F(,!jBG04$ 1a>q- 3fS4~ݖlV)}"rUB0Kޡ"|!lNQ(a-P2GQD -"IqINRA %A(1 "^X N$ZDVBO; QTe%oorbEgH(T2ӖںZSlƒ9 "{hf!"̎@i əa0M /3q: d<5) qt(%E*"rX#9$$@j 0 ʠ `aj 춄PBR! rݐ(mm H{\|6*(2*HE7*ΧT פO4}H@.Ja,Dbh &X,b5EDE1Q)1I)z3'a#Awh1.)#M47_"CrM _rOST޽uzhw%1Ba](Ǩ YP:EgG"#萇@hyD!<3* l %˲`8_lRW4mmVtگr@"D| #i/S4aЈf|Ăw ! !r~OI$IuW>Wa)(l@DQK*RT3[MruIkv UħB%&:"+$bϏ"1`>14ɐHK,l@ar0ݰf?0 ll^-**BdOzP"d>M#űlaTaHկzm*-k/A j֡ea3( RSln0H$APXIt0$Y` AQ'fpe4"Z<oMx0ܮg#~`~ e2f\R (qV(l pFӘH;vzN= QDpF 0|л.NgcMcK,J">AS7^ ZpԸttfI钛5] gxtv} ~k1'| ֛mk%c2nd*eP^0Ŋb'])~a3A `@њԻh07c`uF\]d?Sz@e}{B X30Z,DN~l/HzH`j Ggumk彭zfSUVemZ^Y Jm{[ھqU$J [YHh`d)3="40}OXHԒK$)\FhMIJ5" bKyL QGd=װ$PB  $JN+@PO;}Э`O G ƅ_:V~_a[C(:N=bn B>\a=0U'T0!7 [呁@1Qʄz nd~_FGk>`Z-NJ"TG\.HH$H"`1h(Cdȧ,@|ba6БWqN[P0~)C2 Ke %#N@cJE%)…1JV-J[6uڹIQ e")Ch`R"GA`G%+So^[k txwFw;%Ow1]F?\S/WxI0Bi, u?Պ8'/d:i54oMfcqld$0wPұF#Ù\(I*eF"u~-EÔ̇q"臠:KnՅ(*j` ԢM)E&l;t vǃڱ .t:04U}刐(SD5;SdrA>`a f@,~b%( ABQ @Q'$"{c肚2](J<䇚ôP$z'WDŐ=oJ]*Ԡu>!Ă0bᒠI?JPDd 3%* ?N /|&A|5SL0q 4ahIJ"ذ+†"Z$j<ǕR'xHpPESfr " ^b}C`:}g7 !ӿXIrI@>@Aڠ%=”X" "@K%r6o2MX`8 PAB$q`+QI: AI< y$(Z22?C!F!JJ"J!"H0QVm[GmrVklj#TKMOh\;L\=ϴ AɚY6p}F !nffh<@W:c$IDHXF lMX S[0rn"$y0I s*8(o6/$)R&lZVIK[iklH `Ρ-;謃„3r7|@A`C|DKSu_M̑C*qO-> -p2duqe}Au' /7`OYQ|ptm'|S7s_O?89Cǔ%d62  ﭛeCtë;Ψ,T/}$J]r| bQ%$Dm)%,nfm2וש!Iez`DŸx]] 88YsC)xf>OwF]4tp v# P %BB7lլ8XMn)YfbDC JJh:q-0[8uX9*1@etBg|xb.^yˤLͣjT,BcOy͏(<y; C+`0B1 ;pLb,l2}G~RBq"Q:G #i o@ȥ%uɀ)CrC^oR-'[M#VL׹C_`@Ļ )uN=zf}!ɫ5,=_ýRy1O!i x:I𑤕 ̆Zrá.%@i#Rlw#*&46a`0vm^!NĠ̡ &ѲyeFFlPb\!èh=0x'}tNk׬"yc{yqVaCl7ԾbE4냘=frΊqu-Y6,.k|S2r `@.uÜq.sl[Kb`eEwnL]q^\e[l'ɡ(o&IDbWM ncu1{vN3z_T?a !C#(5cΖ@CّYa`z{gZ5 Y ;bԚUTv%Ꚗl9F`a6r`>bun$`'g׫m'vKp&W϶ޭIJȒ +#B_D DMDAT; e TbgRR@ޤ@"pQb.aފ;€DcWɊ&B\A$T8"lWqw,csSFҌhBD=pK/T, b\K,p44iK 6ҝ$N*I? ̃b<^!=J}|2 )Dm NPC " lEP4HH )Vt+?8a :dt(iNØ3r,=*=,ӈ+$W kYTZ!@^l'D! pE`=t12/\S/&W p'jD4J-*aݫ9!'_>傟&mGrZ,YHH*?j;c`EF| cflfjڭ)}D׭jȄzm i HFܑSfCjۗ-+l`Z*2Fܵ$B6!jӼ“a͔OCH wA܄'r5D?0S,(wCƤY0t<iV"]'Ο29v pIE(1$":)Q(7֐ b+dbb$fCP` 2m[[Ux-_^a G&[$<U 9gT/W5ꥹ*% aAY`?ŚEq:E }4jlJ(Y"vC[̉Bg~ˁ _DXm)FF0)x+w[Bg@sWNnO@>y0KjO =PW(@00Nw wjj;̴tpyCm("HBNBEh$ #P:{o\|<֝UfސN B:".]Kcm֚,$E!J-e"HBKFJ4񩼕0h) p?e(fW1D""   =DA*HoǴRA d8L8Bڧ\/lT<8Sa/<cAd}D,HCM`q!C ə*U++ L$ksE՟$ IbRb`-Yg%ri)Qt!DX)Yݠ"JF@$7d͠ =ÚfE<8[EjE(%8Y 2!FFpw4P=[Q{hP +PB9 ,mwgu7pRfmJ]́eҵH(^ # % ] ~R-fJ*Z='Xf3;P2M f@`,D!0xCy MGe3޴ w5R؍r`C p`CM `=HF'3&ZxoY{qQ* [ҌCxB1"@ - +h; #R$q A9@< EV1J'bR4e-tG(iY: 3 Bnn*A^_Ava"`nd\wkcr EJ&fA-KrP"'p@]Z ]= ;BLgΊ4L@0TM^%$K(Y@%;Zv !0,? ]"@YA#)GvS 0P"f.iZί7 Ҧ#1l c:2IpN`p8t‡F\V>J4pD&^,~x27ZCxuFB4#FrH'O1=Ar= E($Dvu4-C%Yqg;Ph i%BAr79j]BNk [awd~JeP0 XgBhXq SB* `CRoDn|@cݨob@@*A"=/WAMbDi6gt"Jz>ֶ edE" )w?rQLrr9$ Zt$mJ1IZAݤbq`1PX hP2$rIp+ҖRQBuD64fQT YC =}"θxc[0}!FC/JxsUgbg: Ŵ9(b H08@gSu,4Ӕ1E '&DMA#QSybAGc"/'U!#Vm J4!;-YX{ȍolp (m'`O-@B{| 3.P!DLd\TvAC'=T9C0X3IcXRm_ѵJpH,C0( ,LتHt5&JxQ>TB l ">(Z*n㌤3ӝHE]OpW>4ܽK_Hf(mum0ȩReL0dB@)%9vs"&#L2Aa, PH$(@̊*\;IU,"*D"z HyLD񈂯 '(K]]d+x+n-#I% T̋#haL  Gd.N䉅e*}#UT40l`rmT 7EUqY*XsNb T{b݈]RX2=y3-БCD=h/@=}q_} `>p}D={!1ɀi!W    Zj<ֶkfLQ[DY6p)z_p[&e dDS>p7pkx3}gHJ 8;`' FbH%=7px!@0^Ԛ| {th=gr+Ղn[NL4PPL8"׾Bq8'[m38cP8"\e  v)a >p\$RB !)Ak8Xҡ`13!Ѡk@X%S$$2B%JT,(v6 CABg9C!ǰO(rt=`yMzr`h|$Ū !'7G(@"3y#:N^j%_f}65kXj!&#d5 㴉y57Gj d@ ,P圇 "B.Y^'GL8 4=2IHa(`~jMo,/{|T؝ya