summaryrefslogtreecommitdiffstats
path: root/perl-install/ugtk2.pm
blob: 09f877c9f5d5a8c928990d088884f5b9254b1459 (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
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
package ugtk2;

use diagnostics;
use strict;
use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @icon_paths $wm_icon $grab $border); #- leave it on one line, for automatic removal of the line at package creation
use locale;

@ISA = qw(Exporter);
%EXPORT_TAGS = (
    wrappers => [ qw(gtkadd gtkadd_widget gtkappend gtkappend_page gtkappenditems gtkcombo_setpopdown_strings gtkdestroy
                     gtkentry gtkflush gtkhide gtkmodify_font gtkmove gtkpack gtkpack2 gtkpack2_
                     gtkpack2__ gtkpack_ gtkpack__ gtkpowerpack gtkput gtkradio gtkresize gtkroot
                     gtkset_active gtkset_border_width gtkset_editable gtkset_justify gtkset_alignment gtkset_layout gtkset_line_wrap
                     gtkset_markup gtkset_modal gtkset_mousecursor gtkset_mousecursor_normal gtkset_mousecursor_wait gtkset_name
                     gtkset_property gtkset_relief gtkset_selectable gtkset_sensitive gtkset_shadow_type gtkset_size_request
                     gtkset_text gtkset_tip gtkset_visibility gtksetstyle gtkshow gtksignal_connect gtksize gtktext_append
                     gtktext_insert ) ],

    helpers => [ qw(add2notebook add_icon_path escape_text_for_TextView_markup_format gtkcolor gtkcreate_img
                    gtkcreate_pixbuf gtkfontinfo gtkset_background gtktreeview_children set_back_pixmap
                    get_default_step_items set_default_step_items
                    string_size string_width) ],

    create => [ qw(create_adjustment create_box_with_title create_dialog create_factory_menu create_factory_popup_menu
                   create_hbox create_hpaned create_menu create_notebook create_okcancel create_packtable
                   create_scrolled_window create_vbox create_vpaned _create_dialog gtkcreate_frame) ],

    ask => [ qw(ask_browse_tree_info ask_browse_tree_info_given_widgets ask_dir ask_from_entry ask_okcancel ask_warn
                ask_yesorno) ],
    dialogs => [ qw(err_dialog info_dialog warn_dialog) ],

);
$EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ];
@EXPORT_OK = map { @$_ } values %EXPORT_TAGS;

use c;
use log;
use common;
use mygtk2 qw(gtknew); #- do not import gtkadd which conflicts with ugtk2 version

use Gtk2;


$border = 5;

sub wm_icon() { $wm_icon || $::Wizard_pix_up || "wiz_default_up.png" }

# -=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---
#                 wrappers
#
# Functional-style wrappers to existing Gtk functions; allows to program in
# a more functional way, and especially, first, to avoid using temp
# variables, and second, to "see" directly in the code the user interface
# you're building.

sub gtkdestroy                { mygtk2::may_destroy($_[0]) }
sub gtkflush()                { mygtk2::flush() }
sub gtkhide                   { $_[0]->hide; $_[0] }
sub gtkmove                   { $_[0]->window->move($_[1], $_[2]); $_[0] }
sub gtkpack                   { gtkpowerpack(1, 1, @_) }
sub gtkpack_                  { gtkpowerpack('arg', 1, @_) }
sub gtkpack__                 { gtkpowerpack(0, 1, @_) }
sub gtkpack2                  { gtkpowerpack(1, 0, @_) }
sub gtkpack2_                 { gtkpowerpack('arg', 0, @_) }
sub gtkpack2__                { gtkpowerpack(0, 0, @_) }
sub gtkput                    { $_[0]->put(gtkshow($_[1]), $_[2], $_[3]); $_[0] }
sub gtkresize                 { $_[0]->window->resize($_[1], $_[2]); $_[0] }
sub gtkset_active             { $_[0]->set_active($_[1]); $_[0] }
sub gtkset_border_width       { $_[0]->set_border_width($_[1]); $_[0] }
sub gtkset_editable           { $_[0]->set_editable($_[1]); $_[0] }
sub gtkset_selectable         { $_[0]->set_selectable($_[1]); $_[0] }
sub gtkset_justify            { $_[0]->set_justify($_[1]); $_[0] }
sub gtkset_alignment          { $_[0]->set_alignment($_[1], $_[2]); $_[0] }
sub gtkset_layout             { $_[0]->set_layout($_[1]); $_[0] }
sub gtkset_modal              { $_[0]->set_modal($_[1]); $_[0] }
sub gtkset_mousecursor_normal { gtkset_mousecursor('left-ptr', @_) }
sub gtkset_mousecursor_wait   { gtkset_mousecursor('watch', @_) }
sub gtkset_relief             { $_[0]->set_relief($_[1]); $_[0] }
sub gtkset_sensitive          { $_[0]->set_sensitive($_[1]); $_[0] }
sub gtkset_visibility         { $_[0]->set_visibility($_[1]); $_[0] }
sub gtkset_tip                { $_[0]->set_tip($_[1], $_[2]) if $_[2]; $_[1] }
sub gtkset_shadow_type        { $_[0]->set_shadow_type($_[1]); $_[0] }
sub gtkset_style              { $_[0]->set_style($_[1]); $_[0] }
sub gtkset_size_request       { $_[0]->set_size_request($_[1], $_[2]); $_[0] }
sub gtkshow                   { $_[0]->show; $_[0] }
sub gtksize                   { $_[0]->size($_[1], $_[2]); $_[0] }
sub gtkset_markup             { $_[0]->set_markup($_[1]); $_[0] }
sub gtkset_line_wrap          { $_[0]->set_line_wrap($_[1]); $_[0] }

sub gtkadd {
    my $w = shift;
    foreach my $l (@_) {
	ref $l or $l = gtknew('WrappedLabel', text => $l);
	$w->add(gtkshow($l));
    }
    $w;
}

sub gtkadd_widget {
    my $sg = shift;
    map {
        my $l = $_;
        ref $l or $l = gtknew('WrappedLabel', text => $l);
        $sg->add_widget($l);
        $l;
    } @_;
}

sub gtkappend {
    my $w = shift;
    foreach my $l (@_) {
	ref $l or $l = gtknew('WrappedLabel', text => $l);
	$w->append(gtkshow($l));
    }
    $w;
}

sub gtkappenditems {
    my $w = shift;
    $_->show foreach @_;
    $w->append_items(@_);
    $w;
}

# append page to a notebook
sub gtkappend_page {
    my ($notebook, $page, $o_title) = @_;
    $notebook->append_page($page, $o_title);
    $notebook;
}

sub gtkentry {
    my ($o_text) = @_;
    my $e = gtknew('Entry');
    $o_text and $e->set_text($o_text);
    $e;
}

sub gtksetstyle { 
    my ($w, $s) = @_;
    $w->set_style($s);
    $w;
}

sub gtkradio {
    my $def = shift;
    my $radio;
    map {
        my $w = gtkset_active($radio = Gtk2::RadioButton->new_with_label($radio ? $radio->get_group : undef, $_), $_ eq $def);
        $w->get_child->set_line_wrap(1);
        $w;
      } @_;
}

sub gtkroot() { mygtk2::root_window() }
sub gtkcolor { &mygtk2::rgb2color }
sub gtkset_background { &mygtk2::set_root_window_background }

sub gtkset_text {
    my ($w, $s) = @_;
    $w->set_text($s);
    $w;
}

sub gtkcombo_setpopdown_strings {
    my $w = shift;
    $w->set_popdown_strings(@_);
    $w;
}

sub gtkset_mousecursor {
    my ($type, $w) = @_;
    ($w || gtkroot())->set_cursor(Gtk2::Gdk::Cursor->new($type));
    $w;
}

sub gtksignal_connect {
    my $w = shift;
    $w->signal_connect(@_);
    $w;
}

sub gtkset_name {
    my ($widget, $name) = @_;
    $widget->set_name($name);
    $widget;
}


sub gtkpowerpack {
    #- Get Default Attributes (if any). 2 syntaxes allowed :
    #- gtkpowerpack( {expand => 1, fill => 0}, $box...) : the attributes are picked from a specified hash ref
    #- gtkpowerpack(1, 0, 1, $box, ...) : the attributes are picked from the non-ref list, in the order (expand, fill, padding, pack_end).
    my @attributes_list = qw(expand fill padding pack_end);
    my $default_attrs = {};
    if (ref($_[0]) eq 'HASH') {
	$default_attrs = shift;
    } elsif (!ref($_[0])) {
	foreach (@attributes_list) {
	    ref($_[0]) and last;
	    $default_attrs->{$_} = shift;
	}
    }
    my $box = shift;

    while (@_) {
	#- Get attributes (if specified). 4 syntaxes allowed (default values are undef ie. false...) :
	#- gtkpowerpack({defaultattrs}, $box, $widget1, $widget2, ...) : the attrs are picked from the default ones (if they exist)
	#- gtkpowerpack($box, {fill=>1, expand=>0, ...}, $widget1, ...) : the attributes are picked from a specified hash ref
	#- gtkpowerpack($box, [1,0,1], $widget1, ...) : the attributes are picked from the array ref : (expand, fill, padding, pack_end).
	#- gtkpowerpack({attr=>'arg'}, $box, 1, $widget1, 0, $widget2, etc...) : the 'arg' value will tell gtkpowerpack to always read the 
	#- attr value directly in the arg list (avoiding confusion between value 0 and Gtk::Label("0"). That can simplify some writings but
	#- this arg(s) MUST then be present...
	my (%attr, $attrs);
	member(ref($_[0]), qw(HASH ARRAY)) and $attrs = shift;
	foreach (@attributes_list) {
	    if (($default_attrs->{$_} || '') eq 'arg') {
		ref($_[0]) and internal_error "error in packing definition\n";
		$attr{$_} = shift;
		ref($attrs) eq 'ARRAY' and shift @$attrs;
	    } elsif (ref($attrs) eq 'HASH' && defined($attrs->{$_})) {
		$attr{$_} = $attrs->{$_};
	    } elsif (ref($attrs) eq 'ARRAY') {
		$attr{$_} = shift @$attrs;
	    } elsif (defined($default_attrs->{$_})) {
		$attr{$_} = int $default_attrs->{$_};
	    } else {
		$attr{$_} = 0;
	    }
	}
	#- Get and pack the widget (create it if necessary to  a label...)
	my $widget = ref($_[0]) ? shift : gtknew('WrappedLabel', text => shift);
	my $pack_call = 'pack_' . ($attr{pack_end} ? 'end' : 'start');
	$box->$pack_call($widget, $attr{expand}, $attr{fill}, $attr{padding});
	$widget->show;
    }
    return $box;
}

sub gtktreeview_children {
    my ($model, $iter) = @_;
    my @l;
    $model or return;
    for (my $p = $model->iter_children($iter); $p; $p = $model->iter_next($p)) {
	push @l, $p;
    }
    @l;
}



# -=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---
#                 create
#
# Helpers that allow omitting common operations on common widgets
# (e.g. create widgets with good default properties)

sub create_pixbutton {
    my ($label, $pix, $reverse_order) = @_;
    my @label_and_pix = (0, $label, if_($pix, 0, $pix));
    gtkadd(gtknew('Button'),
	   gtknew('HBox', spacing => 3, children => [
		    1, "",
		    $reverse_order ? reverse(@label_and_pix) : @label_and_pix,
		    1, "",
		]));
}

sub create_adjustment {
    my ($val, $min, $max) = @_;
    Gtk2::Adjustment->new($val, $min, $max + 1, 1, ($max - $min + 1) / 10, 1);
}

sub create_scrolled_window {
    my ($W, $o_policy, $o_viewport_shadow) = @_;
    gtknew('ScrolledWindow', ($o_policy ? (h_policy => $o_policy->[0], v_policy => $o_policy->[1]) : ()),
               child => $W, if_($o_viewport_shadow, shadow_type => $o_viewport_shadow));
}

sub n_line_size {
    my ($nbline, $type, $widget) = @_;
    my $spacing = ${{ text => 3, various => 17 }}{$type};
    my %fontinfo = gtkfontinfo($widget);
    round($nbline * ($fontinfo{ascent} + $fontinfo{descent} + $spacing) + 8);
}

# Glib::Markup::escape_text() if no use for us because it'll do extra
# s/X/&foobar;/ (such as s/'/'/) that are suitable for
# Gtk2::Labels but are not for Gtk2::TextViews, resulting in
# displaying the raw enriched text instead...
#
sub escape_text_for_TextView_markup_format {
    my ($str) = @_;
    my %rules = ('&' => '&',
               '<' => '&lt;',
               '>' => '&gt;',
           );
    eval { $str =~ s!([&<>])!$rules{$1}!g }; #^(&(amp|lt|gt);)!!) {
    if (my $err = $@) {
           internal_error("$err\n$str");
    }
    $str;
}

sub markup_to_TextView_format {
    my ($s, $o_default_attrs) = @_;
    require interactive;
    my $l = interactive::markup_parse($s) or return $s;
    
    foreach (@$l) {
	my ($_txt, $attrs) = @$_;
	if ($attrs) {
         $attrs->{weight} eq 'bold' and $attrs->{weight} = do { require Gtk2::Pango; Gtk2::Pango->PANGO_WEIGHT_BOLD };
         $attrs->{size} eq 'larger' and do {
             $attrs->{scale} = Gtk2::Pango->scale_x_large; # equivalent to Label's size => 'larger'
             delete $attrs->{size};
         };
     }
	#- nb: $attrs may be empty, need special handling if $o_default_attrs is used
	add2hash_($_->[1] ||= {}, $o_default_attrs) if $o_default_attrs;
    }
    $l;
}

sub create_box_with_title {
    my ($o, @l) = @_;

    my $nbline = sum(map { round(length($_) / 60 + 1/2) } map { split "\n" } @l);
    my $box = gtknew('VBox');
    if ($nbline == 0) {
	$o->{box_size} = 0;
	return $box;
    }
    $o->{box_size} = n_line_size($nbline, 'text', $box);
    if (@l <= 2 && $nbline > 4) {
	$o->{icon} && !$::isWizard and 
	  eval { gtkpack__($box, gtknew('HBox', border_width => 5, children_loose => [ gtkcreate_img($o->{icon}) ])) };
	my $wanted = $o->{box_size};
	$o->{box_size} = min(200, $o->{box_size});
	my $has_scroll = $o->{box_size} < $wanted;

	chomp(my $text = join("\n", @l));
	my $wtext = gtknew('TextView', text => markup_to_TextView_format($text));
	$wtext->set_justification('fill');
	$wtext->set_left_margin(12);
	$wtext->set_right_margin(12);
	$wtext->can_focus($has_scroll);
	my $width = 400;
	my $scroll = gtknew('ScrolledWindow', child => $wtext, width => $width, height => 200);
	$scroll->signal_connect(realize => sub {
                                my $layout = $wtext->create_pango_layout($text);
                                $layout->set_width(($width - 10) * Gtk2::Pango->scale);
                                $wtext->set_size_request($width,  min(200, second($layout->get_pixel_size) + 10));
                                $scroll->set_size_request($width, min(200, second($layout->get_pixel_size) + 10));
                                $o->{rwindow}->queue_resize;
                            });
	gtkpack_($box, $o->{box_allow_grow} || 0, $scroll);
    } else {
     my $new_label = sub {
         my ($txt) = @_;
         ref($txt) ? $txt : gtknew('WrappedLabel', text_markup => $txt,
                                   # workaround infamous 6 years old gnome bug #101968:
                                   width => mygtk2::get_label_width());
     };
	    gtkpack__($box,
		      if_($::isWizard, gtknew('Label', height => 10)),
		      (map {
			  my $w = $new_label->($_);
			  $::isWizard ? gtknew('HBox', children_tight => [ gtknew('Label', width => 20), $w ])
			              : $w;
		      } @l),
		      if_($::isWizard, gtknew('Label', height => 15)),
		     );
    }
}

sub _create_dialog {
    my ($title, $o_options) = @_;
    my $options = $o_options || {};

    #- keep compatibility with "transient" now called "transient_for"
    $options->{transient_for} = delete $options->{transient} if $options->{transient};

    gtknew('Dialog', title => $title, 
	   position_policy => 'center-on-parent', # center-on-parent does not work
	   modal => 1,
	   if_(!$::isInstall, icon_no_error => wm_icon()),
	   %$options, allow_unknown_options => 1,
       );
}


# drakfloppy / drakfont / harddrake2 / mcc
sub create_dialog {
    my ($title, $label, $o_options) = @_;
    my $ret = 0;
    $o_options ||= {};
    $o_options->{transient_for} = $::main_window if !$o_options->{transient_for} && $::main_window;

    my $dialog =  gtkset_border_width(_create_dialog($title, $o_options), 10);
    $dialog->set_border_width(10);
    my $text = ref($label) ? $label : $o_options->{use_markup} ? gtknew('WrappedLabel', text_markup => $label) : gtknew('WrappedLabel', text => $label);
    gtkpack($dialog->vbox,
            gtknew('HBox', children => [
                     if_($o_options->{stock},
                         0, Gtk2::Image->new_from_stock($o_options->{stock}, 'dialog'),
                         0, gtknew('Label', text => "   "),
                        ),
                     1, $o_options->{scroll} ? create_scrolled_window($text, [ 'never', 'automatic' ]) : $text,
                    ]),
           );

    if ($o_options->{cancel}) {
	$dialog->action_area->pack_start(
	    gtknew('Button', text => N("Cancel"),
		   clicked => sub { $ret = 0; $dialog->destroy; Gtk2->main_quit },
		   can_default => 1), 
	    1, 1, 0);
    }

    my $button = gtknew('Button', text => N("Ok"), can_default => 1,
			clicked => sub { $ret = 1; $dialog->destroy; Gtk2->main_quit });
    $dialog->action_area->pack_start($button, 1, 1, 0);
    $button->grab_default;

    $dialog->set_has_separator(0);
    $dialog->show_all;
    Gtk2->main;
    $ret;
}

sub info_dialog {
    my ($title, $label, $o_options) = @_;
    $o_options ||= { };
    add2hash_($o_options, { stock => 'gtk-dialog-info' });
    create_dialog($title, $label, $o_options);
}

sub warn_dialog {
    my ($title, $label, $o_options) = @_;
    $o_options ||= { };
    add2hash_($o_options, { stock => 'gtk-dialog-warning', cancel => 1 });
    create_dialog($title, $label, $o_options);
}

sub err_dialog {
    my ($title, $label, $o_options) = @_;
    $o_options ||= { };
    add2hash_($o_options, { stock => 'gtk-dialog-error' });
    create_dialog($title, $label, $o_options);
}

sub create_hbox { gtknew('HButtonBox', layout => $_[0]) }
sub create_vbox { gtknew('VButtonBox', layout => $_[0]) }

sub create_factory_menu_ {
    my ($type, $name, $window, @menu_items) = @_;
    my $widget = Gtk2::ItemFactory->new($type, $name, my $accel_group = Gtk2::AccelGroup->new);
    $widget->create_items($window, @menu_items);
    $window->add_accel_group($accel_group);
    ($widget->get_widget($name), $widget);
}

sub create_factory_popup_menu { create_factory_menu_("Gtk2::Menu", '<main>', @_) }
sub create_factory_menu { create_factory_menu_("Gtk2::MenuBar", '<main>', @_) }

sub create_menu {
    my $title = shift;
    my $w = Gtk2::MenuItem->new($title);
    $w->set_submenu(gtkshow(gtkappend(Gtk2::Menu->new, @_)));
    $w;
}

sub create_notebook {
    my $book = gtknew('Notebook');
    while (@_) {
	my ($page, $title) = splice(@_, 0, 2);
	gtkappend_page($book, $page, $title);
    }
    $book;
}

sub create_packtable {
    my ($options, @l) = @_;
    my $w = Gtk2::Table->new(0, 0, $options->{homogeneous} || 0);
    add2hash_($options, { xpadding => 5, ypadding => 0 });
    each_index {
	my ($i, $l) = ($::i, $_);
	each_index {
	    my $j = $::i;
	    if ($_) {
		ref $_ or $_ = gtknew('WrappedLabel', text => $_);
		$j != $#$l && !$options->{mcc} ?
		  $w->attach($_, $j, $j + 1, $i, $i + 1,
			     'fill', 'fill', $options->{xpadding}, $options->{ypadding}) :
		  $w->attach($_, $j, $j + 1, $i, $i + 1,
			     ['expand', 'fill'], ref($_) eq 'Gtk2::ScrolledWindow' || $_->get_data('must_grow') ? ['expand', 'fill'] : [], 0, 0);
		$_->show;
	    }
	} @$l;
    } @l;
    $w->set_col_spacings($options->{col_spacings} || 0);
    $w->set_row_spacings($options->{row_spacings} || 0);
    gtkset_border_width($w, $::isInstall ? 3 : 10);
}

my $wm_is_kde;
sub create_okcancel {
    my ($w, $o_ok, $o_cancel, $_o_spread, @other) = @_;
    # @other is a list of extra buttons (usually help (eg: XFdrake/drakx caller) or advanced (eg: interactive caller) button)
    # extra buttons have the following structure [ label, handler, is_first, pack_right ]
    local $::isWizard = $::isWizard && !$w->{pop_it};
    my $cancel;
    if (defined $o_cancel || defined $o_ok) {
        $cancel = $o_cancel;
    } elsif (!$::Wizard_no_previous) {
        $cancel = $::isWizard ? N("Previous") : N("Cancel");
    }
    my $ok = defined $o_ok ? $o_ok : $::isWizard ? ($::Wizard_finished ? N("Finish") : N("Next")) : N("Ok");
    my $bok = $ok && ($w->{ok} = gtknew('Button', text => $ok, clicked => $w->{ok_clicked} || sub { $w->{retval} = 1; Gtk2->main_quit }));
    my $bprev;
    if ($cancel) {
        $bprev = $w->{cancel} = gtknew('Button', text => $cancel, clicked => $w->{cancel_clicked} || 
                                   sub { log::l("default cancel_clicked"); undef $w->{retval}; Gtk2->main_quit });
    }
    $w->{wizcancel} = gtknew('Button', text =>  ($::Wizard_skip ? N("Skip") : N("Cancel")), clicked => sub { die 'wizcancel' }) if $::isWizard && !$::isInstall && !$::Wizard_no_cancel;
    if (!defined $wm_is_kde) {
        require any;
        my $wm = any::running_window_manager();
        $wm_is_kde = !$::isInstall && (member($wm, qw(kwin compiz)) && fuzzy_pidofs(qr/\bkde-window-decorator\b/)) || 0;
    }
    my $f = sub { $w->{buttons}{$_[0][0]} = ref($_[0][0]) =~ /Gtk2::Button/ ?
                    $_[0][0] :
                    gtknew('Button', text => $_[0][0], clicked => $_[0][1]) };
    my @left  = ((map { $f->($_) } grep {  $_->[2] && !$_->[3] } @other),
                  map { $f->($_) } grep { !$_->[2] && !$_->[3] } @other);
    my @right = ((map { $f->($_) } grep {  $_->[2] &&  $_->[3] } @other),
                  map { $f->($_) } grep { !$_->[2] &&  $_->[3] } @other);
    # we put space to group buttons in two packs (but if there's only one when not in wizard mode)
    # but in the installer where all windows run in wizard mode because of design even when not in a wizard step
    $bprev = gtknew('Label') if !$cancel && $::Wizard_no_previous && !@left && !@right;
    if ($::isWizard || $w->{pop_it}) {
        # wizard mode: order is cancel/left_extras/white/right_extras/prev/next
        unshift @left, $w->{wizcancel} if $w->{wizcancel};
        push @right, $bprev, $bok;
    } else { 
        # normal mode: cancel/ok button follow GNOME's HIG
        unshift @left, ($wm_is_kde ? $bok : $bprev);
        push @left, gtknew('Label') if $ok && $cancel; # space buttons but if there's only one button
        push @right, ($wm_is_kde ? $bprev : $bok);
    }

    gtknew('VBox', spacing => 5, children_loose => [
	    gtknew('HBox', height => 5),
            gtknew('HSeparator'),
            gtknew('HBox', children_loose => [
                   map {
		       gtknew('HButtonBox', spacing => 5, layout => $_->[1],
			      children_loose => [
				  map {
				      $_->can_default($::isWizard);
				      $_;
				  } grep { $_ } @{$_->[0]} 
			      ]);
                    } ([ \@left, 'start' ],
                       [ \@right,  'end' ],
                      )
                    ]),
           ]);
}

sub _setup_paned {
    my ($paned, $child1, $child2, %options) = @_;
    foreach ([ 'resize1', 0 ], [ 'shrink1', 1 ], [ 'resize2', 1 ], [ 'shrink2', 1 ]) {
        $options{$_->[0]} = $_->[1] unless defined($options{$_->[0]});
    }
    $paned->pack1(gtkshow($child1), $options{resize1}, $options{shrink1});
    $paned->pack2(gtkshow($child2), $options{resize2}, $options{shrink2});
    gtkshow($paned);
}

sub create_vpaned {
    _setup_paned(Gtk2::VPaned->new, @_);
}

sub create_hpaned {
    _setup_paned(Gtk2::HPaned->new, @_);
}

sub gtkcreate_frame {
    my ($label) = @_;
    gtknew('Frame', text => $label, border_width => 5);
}


# -=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---
#                 helpers
#
# Functions that do typical operations on widgets, that you may need in
# several places of your programs.

sub _find_imgfile {
    my ($name) = @_;

    if ($name =~ m|/| && -f $name) {
	$name;
    } else {
	foreach my $path (icon_paths()) {
	    foreach ('', '.png', '.xpm') {
		my $file = "$path/$name$_";
		-f $file and return $file;
	    }
	}
    }
}

# use it if you want to display an icon/image in your app
sub gtkcreate_img {
    my ($file, $o_size) = @_;
    gtknew('Image', file => $file, if_($o_size, size => $o_size));
}

# use it if you want to draw an image onto a drawingarea
sub gtkcreate_pixbuf {
    my ($file, $o_size) = @_;
    gtknew('Pixbuf', file => $file, if_($o_size, size => $o_size));
}

sub gtktext_append { gtktext_insert(@_, append => 1) }

sub may_set_icon {
    my ($w, $name) = @_;
    if (my $f = $name && _find_imgfile($name)) {
	$w->set_icon(gtkcreate_pixbuf($f));
    }
}

sub gtktext_insert { &mygtk2::_text_insert }
sub icon_paths { &mygtk2::_icon_paths }
sub add_icon_path { &mygtk2::add_icon_path }

sub set_main_window_size { 
    my ($o) = @_;
    mygtk2::set_main_window_size($o->{rwindow});
}

# extracts interesting font metrics for a given widget
sub gtkfontinfo {
    my ($widget) = @_;
    my $context = $widget->get_pango_context;
    my $metrics = $context->get_metrics($context->get_font_description, $context->get_language);
    my %fontinfo;
    foreach (qw(ascent descent approximate_char_width approximate_digit_width)) {
	no strict;
	my $func = "get_$_";
	$fontinfo{$_} = Gtk2::Pango->pixels($metrics->$func);
    }
    %fontinfo;
}

sub gtkmodify_font {
    my ($w, $arg) = @_;
    $w->modify_font(ref($arg) ? $arg : Gtk2::Pango::FontDescription->from_string($arg));
    $w;
}

sub gtkset_property {
    my ($w, $property, $value) = @_;
    $w->set_property($property, $value);
    $w;
}

sub set_back_pixbuf {
    my ($widget, $pixbuf) = @_;
    my $window = $widget->window;
    my ($width, $height) = ($pixbuf->get_width, $pixbuf->get_height);
    my $pixmap = Gtk2::Gdk::Pixmap->new($window, $width, $height, $window->get_depth);
    $pixbuf->render_to_drawable($pixmap, $widget->style->fg_gc('normal'), 0, 0, 0, 0, $width, $height, 'max', 0, 0);
    $window->set_back_pixmap($pixmap, 0);
}

sub set_back_pixmap {
    my ($w) = @_;
    return if !$w->realized;
    my $window = $w->window;
    my $pixmap = $w->{back_pixmap} ||= Gtk2::Gdk::Pixmap->new($window, 1, 2, $window->get_depth);

    my $style = $w->get_style;
    $pixmap->draw_points($style->bg_gc('normal'), 0, 0);
    $pixmap->draw_points($style->base_gc('normal'), 0, 1);
    $window->set_back_pixmap($pixmap);
}

sub add2notebook {
    my ($n, $title, $book) = @_;
    $n->append_page($book, gtkshow(gtknew('Label', text => $title)));
    $book->show;
}

sub string_size {
    my ($widget, $text) = @_;
    my $layout = $widget->create_pango_layout($text);
    my @size = $layout->get_pixel_size;
    @size;
}

sub string_width {
    my ($widget, $text) = @_;
    my ($width, undef) = string_size($widget, $text);
    $width;
}


my ($def_step_title);
sub set_default_step_items {
    $def_step_title = translate($_[0]);
}

sub get_default_step_items { ($def_step_title) }

# -=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---
#                 toplevel window creation helper
#
# Use the 'new' function as a method constructor and then 'main' on it to
# launch the main loop. Use $o->{retval} to indicate that the window needs
# to terminate.
# Set $::isWizard to have a wizard appearance.
# Set $::isEmbedded and $::XID so that the window will plug.

sub new {
    my ($type, $title, %opts) = @_;

    my $o = bless { %opts }, $type;
    while (my $e = shift @tempory::objects) { $e->destroy }

    my $icon = find { _find_imgfile($_) } $::isInstall ? 'empty-banner' : $opts{icon};
    my $banner_title = $opts{banner_title};
    $o->{transient} ||= $::main_window if $::main_window && !$opts{do_not_track_main_window};
    my $window = gtknew(
	'MagicWindow',
	title => $title || '',
	pop_it => $o->{pop_it},
	$::isInstall ? (banner => gtknew('Install_Title', text => $title || get_default_step_items())) : (),
	$::isStandalone && $banner_title && $icon ? (banner => Gtk2::Banner->new($icon, $banner_title)) : (),
	width => $opts{width}, height => $opts{height}, default_width => $opts{default_width}, default_height => $opts{default_height}, 
	modal => (!$o->{pop_it} && !$::isInstall) && ($opts{modal} || $grab || $o->{grab}) || $o->{modal},
	no_Window_Manager => exists $opts{no_Window_Manager} ? $opts{no_Window_Manager} : !$::isStandalone,
	if_(!$::isInstall, icon_no_error => wm_icon()),
	if_($o->{transient}, transient_for => $o->{transient}), 
    );
    mygtk2::register_main_window($window->{real_window}) if !$opts{do_not_track_main_window};
    $window->set_border_width(10) if !$window->{pop_it} && !$::noborderWhenEmbedded;

    $o->{rwindow} = $o->{window} = $window;
    $o->{real_window} = $window->{real_window};
    $o->{pop_it} = $window->{pop_it};

    $o;
}

sub main {
    my ($o, $o_completed, $o_canceled) = @_;

    $o->show;
    mygtk2::main($o->{rwindow},
		 sub { $o->{retval} ? !$o_completed || $o_completed->() : !$o_canceled || $o_canceled->() });
    $o->{retval};
}
sub show($) {
    my ($o) = @_;
    $o->{rwindow}->show;
}
sub destroy($) {
    my ($o) = @_;
    $o->{rwindow}->destroy;
    flush();
}
sub DESTROY { goto &destroy }
sub sync {
    my ($o) = @_;
    show($o);
    flush();
}
sub flush() { gtkflush() }
sub shrink_topwindow {
    my ($o) = @_;
    $o->{real_window}->signal_emit('size_allocate', Gtk2::Gdk::Rectangle->new(-1, -1, -1, -1));
}
sub exit {
    flush();
    if ($::isStandalone) {
        require standalone;
        standalone::__exit($_[1]); #- workaround
    } else {
        c::_exit($_[1]); #- workaround
    }
}

#- in case "exit" above was not called by the program
END { &exit() }

# -=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---=-=---
#                 ask
#
# Full UI managed functions that will return to you the value that the
# user chose.

sub ask_warn       { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_warn(@_); main($w) }
sub ask_yesorno    { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_okcancel(@_, N("Yes"), N("No")); main($w) }
sub ask_okcancel   { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_okcancel(@_, N("Is this correct?"), N("Ok"), N("Cancel")); main($w) }
sub ask_from_entry { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_from_entry(@_); main($w) }
sub ask_dir        { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_dir(@_); main($w) }

sub _ask_from_entry($$@) {
    my ($o, @msgs) = @_;
    my $entry = gtknew('Entry');
    my $f = sub { $o->{retval} = $entry->get_text; Gtk2->main_quit };
    $o->{ok_clicked} = $f;
    $o->{cancel_clicked} = sub { undef $o->{retval}; Gtk2->main_quit };

    gtkadd($o->{window},
	  gtkpack($o->create_box_with_title(@msgs),
		 gtksignal_connect($entry, 'activate' => $f),
		 ($o->{hide_buttons} ? () : create_okcancel($o))),
	  );
    $entry->grab_focus;
}

sub _ask_warn($@) {
    my ($o, @msgs) = @_;
    gtkadd($o->{window},
	  gtkpack($o->create_box_with_title(@msgs),
		  my $w = gtknew('Button', text => N("Ok"), clicked => sub { Gtk2->main_quit }),
		 ),
	  );
    $w->grab_focus;
}

sub _ask_okcancel($@) {
    my ($o, @msgs) = @_;
    my ($ok, $cancel) = splice @msgs, -2;

    gtkadd($o->{window},
	   gtkpack(create_box_with_title($o, @msgs),
		   create_okcancel($o, $ok, $cancel),
		 )
	 );
    $o->{ok}->grab_focus;
}

sub create_file_selector {
    my (%opts) = @_;
    my $w = ugtk2->new(delete $opts{title}, modal => 1);
    my ($message, $save, $want_a_dir) = (delete $opts{message}, delete $opts{save}, delete $opts{want_a_dir});
    my $action = $want_a_dir ? ($save ? 'create_folder' : 'select_folder') : ($save ? 'save' : 'open');
    add2hash(\%opts, { width => 480, height => 250 });
    gtkadd($w->{window},
	   gtkpack_(create_box_with_title($w, $message),
		    1, $w->{chooser} = gtknew('FileChooser', action => $action, %opts),
		    0, create_okcancel($w),
		 ));
    $w->{chooser}->signal_connect(file_activated => sub { $w->{ok}->clicked });
    $w;
}

sub file_selected_check {
    my ($save, $want_a_dir, $file) = @_;

    if (!$file) {
	N("No file chosen");
    } elsif (-f $file && $want_a_dir) {
	N("You have chosen a file, not a directory");
    } elsif (-d $file && !$want_a_dir) {
	N("You have chosen a directory, not a file");
    } elsif (!-e $file && !$save) {
	$want_a_dir ? N("No such directory") : N("No such file");
    } else {
	'';
    }
}

sub _ask_file {
    my ($o, $title, $path) = @_;

    my $w = create_file_selector(title => $title, want_a_dir => 0, directory => $path);
    put_in_hash($o, $w);

    $w->{ok}->signal_connect(clicked => sub { $o->{retval} = $w->{chooser}->get_filename });
}
sub _ask_dir {
    my ($o, $title, $path) = @_;

    my $w = create_file_selector(title => $title, want_a_dir => 1, directory => $path);
    put_in_hash($o, $w);

    $w->{ok}->signal_connect(clicked => sub { $o->{retval} = $w->{chooser}->get_filename });
}

sub ask_browse_tree_info {
    my ($common) = @_;

    my $w = ugtk2->new($common->{title});

    my $tree_model = Gtk2::TreeStore->new("Glib::String", "Gtk2::Gdk::Pixbuf", "Glib::String");
    my $tree = Gtk2::TreeView->new_with_model($tree_model);
    $tree->get_selection->set_mode('browse');
    $tree->append_column(my $textcolumn = Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
    $tree->append_column(my $pixcolumn  = Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererPixbuf->new, 'pixbuf' => 1));
    $tree->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 2));
    $tree->set_headers_visible(0);
    $tree->set_rules_hint(1);
    $textcolumn->set_min_width(200);
    $textcolumn->set_max_width(200);

    gtkadd($w->{window}, 
	   gtknew('VBox', spacing => 5, children => [
		    0, gtknew('Title2', label => $common->{message},
                              # workaround infamous 6 years old gnome bug #101968:
                              width => mygtk2::get_label_width()),
		    1, gtknew('VBox', children => [
			       1, gtknew('ScrolledWindow', child => $tree),
			       0, gtknew('Frame', text => N("Info"), child =>
				      gtknew('ScrolledWindow', child => my $info = gtknew('TextView', editable => 0, height => 100)),
				     ) ]),
		    0, Gtk2::HSeparator->new,
		    0, my $status = gtknew('Label'),
		    if_($common->{auto_deps},
		        0, gtknew('CheckButton', text => $common->{auto_deps}, active_ref => \$common->{state}{auto_deps})
		    ),
		    0, Gtk2::HSeparator->new,
		    0, my $box2 = gtknew('HBox', spacing => 10),
		   ]));

    gtkpack__($box2, gtknew(($::isInstall ? 'Install_Button' : 'Button'), text => N("Help"),
                            clicked => $common->{interactive_help})) if $common->{interactive_help};

    #gtkpack__($box2, my $toolbar = Gtk2::Toolbar->new('horizontal', 'icons'));
    gtkpack__($box2, my $toolbar = Gtk2::Toolbar->new);

    my @l = ([ $common->{ok}, 1 ], if_($common->{cancel}, [ $common->{cancel}, 0 ]));
    @l = reverse @l if !$::isInstall;
    my @buttons = map {
	my ($t, $val) = @$_;
	$box2->pack_end(my $w = gtknew('Button', text => $t, clicked => sub {
					   $w->{retval} = $val;
					   Gtk2->main_quit;
				       }), 0, 1, 20);
	$w->show;
	$w;
    } @l;
    @buttons = reverse @buttons if !$::isInstall;    

    $status->show;

    $w->{window}->set_size_request(map { $_ - 2 * $border - 4 } $w->{windowwidth}, $w->{windowheight}) if !$::isInstall;
    $buttons[0]->grab_focus;
    $w->{rwindow}->show;

    my @toolbar;
    foreach my $ic (@{$common->{icons} || []}) {
	push @toolbar, ($ic->{icon} => [ $ic->{help}, sub {
					     if ($ic->{code}) {
						 my $_w = $ic->{wait_message} && $common->{wait_message}->('', $ic->{wait_message});
						 $ic->{code}();
						 $common->{rebuild_tree}->();
					     }
					 } ]);
    }
    my %toolbar = @toolbar;
    foreach (grep_index { $::i % 2 == 0 } @toolbar) {
	$toolbar->append_item(undef, $toolbar{$_}[0], undef, gtkcreate_img("$_.png"), $toolbar{$_}[1]);
    }

    $pixcolumn->{is_pix} = 1;
    $common->{widgets} = { w => $w, tree => $tree, tree_model => $tree_model,
                           info => $info, status => $status };
    ask_browse_tree_info_given_widgets($common);
}

sub ask_browse_tree_info_given_widgets {
    my ($common) = @_;
    my $w = $common->{widgets};

    my ($curr, $prev_label, $idle, $mouse_toggle_pending);
    my (%wtree, %ptree, %pix, %node_state, %state_stats);
    my $update_size = sub {
	if ($w->{status}) {
	    my $new_label = $common->{get_status}();
	    $prev_label ne $new_label and $w->{status}->set($prev_label = $new_label);
	}
    };
    
    my $set_node_state_flat = sub {
	my ($iter, $state) = @_;
	$state eq 'XXX' and return;
        $pix{$state} ||= gtkcreate_pixbuf($state);
        $w->{tree_model}->set($iter, 1 => $pix{$state});
    };
    my $set_node_state_tree; $set_node_state_tree = sub {
	my ($iter, $state) = @_;
	my $iter_str = $w->{tree_model}->get_path_str($iter);
	$state eq 'XXX' and return;
        $pix{$state} ||= gtkcreate_pixbuf($state);
	if ($node_state{$iter_str} ne $state) {
	    my $parent;
	    if (!$w->{tree_model}->iter_has_child($iter) && ($parent = $w->{tree_model}->iter_parent($iter))) {
		my $parent_str = $w->{tree_model}->get_path_str($parent);
		my $stats = $state_stats{$parent_str} ||= {}; $stats->{$node_state{$iter_str}}--; $stats->{$state}++;
		my @list = grep { $stats->{$_} > 0 } keys %$stats;
		my $new_state = @list == 1 ? $list[0] : 'semiselected';
		$node_state{$parent_str} ne $new_state and $set_node_state_tree->($parent, $new_state);
	    }
            $w->{tree_model}->set($iter, 1 => $pix{$state});
	    $node_state{$iter_str} = $state;  #- cache for efficiency
	}
    };
    my $set_node_state = $common->{state}{flat} ? $set_node_state_flat : $set_node_state_tree;

    my $set_leaf_state = sub {
	my ($leaf, $state) = @_;
	$set_node_state->($_, $state) foreach @{$ptree{$leaf}};
    };
    my $add_parent; $add_parent = sub {
	my ($root, $state) = @_;
	$root or return undef;
	if (my $w = $wtree{$root}) { return $w }
	my $s; foreach (split '\|', $root) {
	    my $s2 = $s ? "$s|$_" : $_;
	    $wtree{$s2} ||= do {
		my $iter = $w->{tree_model}->append_set($s ? $add_parent->($s, $state) : undef, [ 0 => $_ ]);
		$iter;
	    };
	    $s = $s2;
	}
	$set_node_state->($wtree{$s}, $state); #- use this state by default as tree is building.
	$wtree{$s};
    };
    my $add_node = sub {
	my ($leaf, $root, $options) = @_;
	my $state = $common->{node_state}($leaf) or return;
	if ($leaf) {
	    my $iter = $w->{tree_model}->append_set($add_parent->($root, $state), [ 0 => $leaf ]);
	    $set_node_state->($iter, $state);
	    push @{$ptree{$leaf}}, $iter;
	} else {
	    my $parent = $add_parent->($root, $state);
	    #- hackery for partial displaying of trees, used in rpmdrake:
	    #- if leaf is void, we may create the parent and one child (to have the [+] in front of the parent in the ctree)
	    #- though we use '' as the label of the child; then rpmdrake will connect on tree_expand, and whenever
	    #- the first child has '' as the label, it will remove the child and add all the "right" children
	    $options->{nochild} or $w->{tree_model}->append_set($parent, [ 0 => '' ]);
	}
    };
    my $clear_all_caches = sub {
	foreach (values %ptree) {
	    foreach my $n (@$_) {
		delete $node_state{$w->{tree_model}->get_path_str($n)};
	    }
	}
	foreach (values %wtree) {
	    my $iter_str = $w->{tree_model}->get_path_str($_);
	    delete $node_state{$iter_str};
	    delete $state_stats{$iter_str};
	}
	%ptree = %wtree = ();
    };
    $common->{delete_all} = sub {
	$clear_all_caches->();
	$w->{tree_model}->clear;
    };
    $common->{rebuild_tree} = sub {
	$common->{delete_all}->();
	$set_node_state = $common->{state}{flat} ? $set_node_state_flat : $set_node_state_tree;
	$common->{build_tree}($add_node, $common->{state}{flat}, $common->{tree_mode});
	&$update_size;
    };
    $common->{delete_category} = sub {
	my ($cat) = @_;
	exists $wtree{$cat} or return;
	foreach (keys %ptree) {
	    my @to_remove;
	    foreach my $node (@{$ptree{$_}}) {
		my $category;
		my $parent = $node;
		my @parents;
		while ($parent = $w->{tree_model}->iter_parent($parent)) {    #- LEAKS
		    my $parent_name = $w->{tree_model}->get($parent, 0);
		    $category = $category ? "$parent_name|$category" : $parent_name;
		    $_->[1] = "$parent_name|$_->[1]" foreach @parents;
		    push @parents, [ $parent, $category ];
		}
		if ($category =~ /^\Q$cat/) {
		    push @to_remove, $node;
		    foreach (@parents) {
			next if $_->[1] eq $cat || !exists $wtree{$_->[1]};
			delete $wtree{$_->[1]};
			delete $node_state{$w->{tree_model}->get_path_str($_->[0])};
			delete $state_stats{$w->{tree_model}->get_path_str($_->[0])};
		    }
		}
	    }
	    foreach (@to_remove) {
		delete $node_state{$w->{tree_model}->get_path_str($_)};
	    }
	    @{$ptree{$_}} = difference2($ptree{$_}, \@to_remove);
	}
	if (exists $wtree{$cat}) {
	    my $iter_str = $w->{tree_model}->get_path_str($wtree{$cat});
	    delete $node_state{$iter_str};
	    delete $state_stats{$iter_str};
	    $w->{tree_model}->remove($wtree{$cat});
	    delete $wtree{$cat};
	}
	&$update_size;
    };
    $common->{add_nodes} = sub {
	my (@nodes) = @_;
	$add_node->($_->[0], $_->[1], $_->[2]) foreach @nodes;
	&$update_size;
    };
    
    $common->{display_info} = sub { gtktext_insert($w->{info}, $common->{get_info}($curr)); 0 };
    my $children = sub { map { $w->{tree_model}->get($_, 0) } gtktreeview_children($w->{tree_model}, $_[0]) };
    my $toggle = sub {
	if (ref($curr) && !$_[0]) {
	    $w->{tree}->toggle_expansion($w->{tree_model}->get_path($curr));
	} else {
	    if (ref $curr) {
		my @l = $common->{grep_allowed_to_toggle}($children->($curr)) or return;
		my @unsel = $common->{grep_unselected}(@l);
		my @p = @unsel ?
		  #- not all is selected, select all if no option to potentially override
		  (exists $common->{partialsel_unsel} && $common->{partialsel_unsel}->(\@unsel, \@l) ? difference2(\@l, \@unsel) : @unsel)
		  : @l;
		$common->{toggle_nodes}($set_leaf_state, @p);
		&$update_size;
	    } else {
		$common->{check_interactive_to_toggle}($curr) and $common->{toggle_nodes}($set_leaf_state, $curr);
		&$update_size;
	    }
	}
    };

    $w->{tree}->signal_connect(key_press_event => sub {
	my $c = chr($_[1]->keyval & 0xff);
	if ($_[1]->keyval >= 0x100 ? member($c, "\r", "\x8d") : $c eq ' ') {
	    $toggle->(0);
	}
	0;
    });

    $w->{tree}->get_selection->signal_connect(changed => sub {
	my ($model, $iter) = $_[0]->get_selected;
	$model && $iter or return;
	if ($idle) {
	    Glib::Source->remove($idle);
	    undef $idle;
	}
	
	if (!$model->iter_has_child($iter)) {
	    $curr = $model->get($iter, 0);
	    $idle = Glib::Timeout->add(100, $common->{display_info});
	} else {
	    $curr = $iter;
	}
	#- the following test for equality is because we can have a button_press_event first, then
	#- two changed events, the first being on a different row :/ (is it a bug in gtk2?) - that
	#- happens in rpmdrake when doing a "search" and directly trying to select a found package
	if ($mouse_toggle_pending eq $model->get($iter, 0)) {
	    $toggle->(1);
            $mouse_toggle_pending = 0;
	}
	0;
    });
    $w->{tree}->signal_connect(button_press_event => sub {  #- not too good, but CellRendererPixbuf does not have the needed signals :(
	my ($path, $column) = $w->{tree}->get_path_at_pos($_[1]->x, $_[1]->y);
	if ($path && $column) {
	    $column->{is_pix} and $mouse_toggle_pending = $w->{tree_model}->get($w->{tree_model}->get_iter($path), 0);
	}
        0;
    });
    $common->{rebuild_tree}->();
    &$update_size;
    $common->{initial_selection} and $common->{toggle_nodes}($set_leaf_state, @{$common->{initial_selection}});
    my $_b = before_leaving { $clear_all_caches->() };
    $common->{init_callback}->() if $common->{init_callback};
    $w->{w}->main;
}

sub gtk_set_treelist {
    my ($treelist, $l) = @_;

    my $list = $treelist->get_model;
    $list->clear;
    $list->append_set([ 0 => $_ ]) foreach @$l;
}


sub gtk_TextView_get_log {
    my ($log_w, $command, $filter_output, $when_command_is_over) = @_;

    my $pid = open(my $F, "$command |") or return;
    common::nonblock($F);

    my $gtk_buffer = $log_w->get_buffer;
    $log_w->signal_connect(destroy => sub { 
	kill 9, $pid if $pid; #- we do not continue in background
	$pid = $gtk_buffer = ''; #- ensure $gtk_buffer is valid when its value is non-null
    });

    Glib::Timeout->add(100, sub {
        if ($gtk_buffer) {
	    my $end = $gtk_buffer->get_end_iter;
	    while (defined (my $s = <$F>)) {
		$gtk_buffer->insert($end, $filter_output->($s));
	    }
	    $log_w->{to_bottom}->();
	}
	if (waitpid($pid, c::WNOHANG()) > 0) {
	    #- we do not call $when_command_is_over if $gtk_buffer does not exist anymore
	    #- since it is not a normal case
	    $when_command_is_over->($gtk_buffer) if $when_command_is_over && $gtk_buffer;
	    $pid = '';
	    0;
	} else {
	    to_bool($gtk_buffer);
	}
    });
    $pid; #- $pid becomes invalid after $when_command_is_over is called
}

sub gtk_new_TextView_get_log {
    my ($command, $filter_output, $when_command_is_over) = @_;

    my $log_w = gtknew('TextView', editable => 0);
    my $log_scroll = gtknew('ScrolledWindow', child => $log_w, to_bottom => 1);
    my $pid = gtk_TextView_get_log($log_w, $command, $filter_output, $when_command_is_over) or return;
    $log_scroll, $pid;
}

# misc helpers:

package Gtk2::TreeStore;
sub append_set {
    my ($model, $parent, @values) = @_;
    # compatibility:
    @values = @{$values[0]} if @values == 1 && ref($values[0]) eq 'ARRAY';
    my $iter = $model->append($parent);
    $model->set($iter, @values);
    return $iter;
}


package Gtk2::ListStore;
# Append a new row, set the values, return the TreeIter
sub append_set {
    my ($model, @values) = @_;
    # compatibility:
    @values = @{$values[0]} if @values == 1 && ref($values[0]) eq 'ARRAY';
    my $iter = $model->append;
    $model->set($iter, @values);
    return $iter;
}


package Gtk2::TreeModel;
# gets the string representation of a TreeIter
sub get_path_str {
    my ($self, $iter) = @_;
    my $path = $self->get_path($iter);
    $path or return;
    $path->to_string;
}

sub iter_each_children {
    my ($model, $iter, $f) = @_;
    for (my $child = $model->iter_children($iter); $child; $child = $model->iter_next($child)) {
	$f->($child);
    }
}

package Gtk2::TreeView;
# likewise gtk-1.2 function
sub toggle_expansion {
    my ($self, $path, $b_open_all) = @_;
    if ($self->row_expanded($path)) {
	$self->collapse_row($path);
    } else {
	$self->expand_row($path, $b_open_all || 0);
    }
}


# With GTK+, for more GUIes coherency, GtkOptionMenu is recommended instead of a
# combo if the user is selecting from a fixed set of options.
#
# That is, non-editable combo boxes are not encouraged. GtkOptionMenu is much
# easier to use than GtkCombo as well. Use GtkCombo only when you need the
# editable text entry.
#
# GtkOptionMenu is a much better-implemented widget and also the right UI for
# noneditable sets of choices.)
#
# GtkCombo is deprecated in 2.4.x because it still uses deprecated
# GtkList. GtkOption menu is deprecated in order to have an unified widget.
#
# GtkComBox widget replaces GtkOption menu whereas GtkComBoxEntry replaces GtkCombo.
#
#
# This layer try to make OptionMenu and ComboBox look being api
# compatible with Combo since its API is quite nice.

package Gtk2::OptionMenu;
use MDK::Common;

# try to get combox <==> option menu mapping
sub set_popdown_strings {
    my ($w, @strs) = @_;
    my $menu = Gtk2::Menu->new;
    # keep string list around for ->set_text compatibilty helper
    $w->{strings} = \@strs;
    #$w->set_menu((ugtk2::create_factory_menu($window, [ "File", (undef) x 3, '<Branch>' ], map { [ "File/" . $_, (undef) x 3, '<Item>' ] } @strs))[0]);
    $menu->append(ugtk2::gtkshow(Gtk2::MenuItem->new_with_label($_))) foreach @strs;
    $w->set_menu($menu);
    $w;
}

sub new_with_strings {
    my ($class, $strs, $o_val) = @_;
    my $w = $class->new;
    $w->set_popdown_strings(@$strs);
    $w->set_text($o_val) if $o_val;
    $w;
}

sub entry {
    my ($w) = @_;
    return $w;
}

sub get_text {
    my ($w) = @_;
    $w->get_history == -1 ? '' : $w->{strings}[$w->get_history];
}

sub set_text {
    my ($w, $val) = @_;
    each_index {
        if ($_ eq $val) {
            $w->set_history($::i);
            return;
        }
    } @{$w->{strings}};
}




package Gtk2::ComboBox;
use MDK::Common;

# try to get combox <==> option menu mapping
sub set_popdown_strings {
    my ($w, @strs) = @_;
    $w->get_model->clear;
    # keep string list around for ->set_text compatibilty helper
    $w->{strings} = \@strs;
    $w->append_text($_) foreach @strs;
    $w;
}

sub new_with_strings {
    my ($class, $strs, $o_val) = @_;
    my $w = $class->new_text;
    $w->set_popdown_strings(@$strs);
    $w->set_text($o_val) if $o_val;
    $w;
}

sub entry {
    my ($w) = @_;
    return $w;
}

sub get_text {
    my ($w) = @_;
    $w->get_active == -1 ? '' : $w->{strings}[$w->get_active];
}

sub set_text {
    my ($w, $val) = @_;
    eval { 
	my $val_index = find_index { $_ eq $val } @{$w->{strings}};
	$w->set_active($val_index);
    };
    # internal_error(qq(impossible to lookup "$val":\n\t) . chomp_($@)) if $@;
}


package Gtk2::Label;
sub set {
    my ($label, $text) = @_;
    mygtk2::gtkset($label, text => $text);
}


package Gtk2::WrappedLabel;
sub new {
    my ($_type, $o_text, $o_align) = @_;
    mygtk2::gtknew('WrappedLabel', text => $o_text || '', alignment => [ $o_align || 0, 0.5 ]);
}


package Gtk2::Entry;
sub new_with_text {
    my ($_class, $o_text) = @_;
    mygtk2::gtknew('Entry', text => $o_text);
}


package Gtk2::Banner;

use MDK::Common;
use mygtk2 qw(gtknew);
use ugtk2 qw(:helpers :wrappers);

sub set_pixmap {
    my ($darea) = @_;
    return if !$darea->realized;
    ugtk2::set_back_pixbuf($darea, $darea->{back_pixbuf});
    update_text($darea);
}

sub update_text {
    my ($darea) = @_;
    $darea->{layout} = $darea->create_pango_layout($darea->{text});
    $darea->{txt_width} = first($darea->{layout}->get_pixel_size);
    $darea->queue_draw;
}


sub new {
    my ($_class, $icon, $text, $o_options) = @_;

    mygtk2::import_style_ressources();
    my $darea = gtknew('DrawingArea', widget_name => 'Banner');
    $darea->{back_pixbuf} = gtknew('Pixbuf', file => 'banner-background');
    my $d_height = $darea->{back_pixbuf}->get_height;
    $darea->set_size_request(-1, $d_height);
    $darea->modify_font(Gtk2::Pango::FontDescription->from_string("13"));
    eval { $darea->{icon} = ugtk2::gtkcreate_pixbuf($icon) };
    $darea->{icon} ||= ugtk2::gtkcreate_pixbuf(ugtk2::wm_icon());
    my $blue_part = eval { gtknew('Pixbuf', file => 'banner-blue-part', flip => mygtk2::text_direction_rtl()) };
    my $blue_width = $blue_part->get_width;
    $darea->{text} = $text;
    require lang;
    my $is_rtl = lang::text_direction_rtl();

    $darea->signal_connect(realize => \&set_pixmap);
    $darea->signal_connect("style-set" => \&set_pixmap);
    $darea->signal_connect(expose_event => sub {
                               my $style = $darea->get_style;
                               my $height = $darea->{icon}->get_height;
                               my $width = $darea->{icon}->get_width;
                               # fix icon position when not using the default height:
                               (undef, undef, undef, $d_height) = $darea->window->get_geometry;
                               my $padding = int(($d_height - $height)/2);
                               my $d_width = $darea->allocation->width;
                               my $x_blue = $is_rtl ? $d_width - $blue_width : 0;
                               my $x_icon = $is_rtl ? $d_width - 12 - $width : 12;
                               # here: 10 is the amount of padding (white background) wish to add betwen text & blue background:
                               my $x_text = $is_rtl ? $d_width - $blue_width - 10 - $darea->{txt_width} : $blue_width + 10;
                               $darea->{layout_height} ||= second($darea->{layout}->get_pixel_size);
                               $blue_part->render_to_drawable($darea->window, $style->bg_gc('normal'),
                                                                  0, 0, $x_blue, 0, -1, -1, 'none', 0, 0);
                               $darea->{icon}->render_to_drawable($darea->window, $style->bg_gc('normal'),
                                                                  0, 0, $x_icon, $padding, -1, -1, 'none', 0, 0);
                               $darea->window->draw_layout($style->fg_gc('normal'), $x_text,
                                                           $o_options->{txt_ypos} || ($d_height - $darea->{layout_height})/2,
                                                           $darea->{layout});
                               1;
                           });
                               
    return $darea;
}


package Gtk2::MDV::CellRendererPixWithLabel;

use MDK::Common;
use Glib::Object::Subclass "Gtk2::CellRenderer",
  properties => [
      Glib::ParamSpec->string("label", "Label", "A meaningfull label", "", [qw(readable writable)]),
      Glib::ParamSpec->object("pixbuf", "Pixbuf file", "Something nice to display", 'Gtk2::Gdk::Pixbuf', [qw(readable writable)]),
  ];

my $x_padding = 2;
my $y_padding = 2;

sub INIT_INSTANCE {}

sub pixbuf_size {
    my ($cell) = @_;
    my $pixbuf = $cell->get('pixbuf');
    $pixbuf ? ($pixbuf->get_width, $pixbuf->get_height) : (0, 0);
}

sub calc_size {
    my ($cell, $layout) = @_;
    my ($width, $height) = $layout->get_pixel_size;
    my ($pwidth, $pheight) = pixbuf_size($cell);
    
    return 0, 0,
            $width + $x_padding * 3 + $pwidth,
            max($pheight, $height + $y_padding * 2);
}

sub GET_SIZE {
  my ($cell, $widget, $_cell_area) = @_;

  my $layout = get_layout($cell, $widget);
  $layout->set_text($cell->get('label'));

  return calc_size($cell, $layout);
}

sub get_layout {
  my ($_cell, $widget) = @_;
  return $widget->create_pango_layout("");
}

sub RENDER { # not that efficient...
  my ($cell, $window, $widget, $_background_area, $cell_area, $_expose_area, $flags) = @_;
  my $state;
  if ($flags & 'selected') {
    $state = $widget->has_focus
      ? 'selected'
      : 'active';
  } else {
    $state = $widget->state eq 'insensitive'
      ? 'insensitive'
      : 'normal';
  }

  my $layout = get_layout($cell, $widget);
  $layout->set_text($cell->get('label'));

  my $is_rtl = lang::text_direction_rtl();
  my $txt_width = first($layout->get_pixel_size);

  my ($x_offset, $y_offset, $_width, $_height) = calc_size($cell, $layout);
  my $pixbuf = $cell->get('pixbuf');
  my ($pwidth, $pheight) = pixbuf_size($cell);
  my $txt_offset = $cell_area->x + $x_offset + $x_padding * 2 + $pwidth;

  if ($pixbuf) {
      $pixbuf->render_to_drawable($window, $widget->style->fg_gc('normal'), 
                                  0, 0,
                                  $is_rtl ? $cell_area->width - $cell_area->x - $pwidth : $cell_area->x ,#+ $x_padding,
                                  $cell_area->y, #+ $y_padding,
                                  $pwidth, $pheight, 'none', 0, 0);
  }
  $widget->get_style->paint_layout($window,
                                       $state,
                                       1,
                                       $cell_area,
                                       $widget,
                                       "cellrenderertext",
                                       $is_rtl ? $cell_area->width - $txt_width - $txt_offset : $txt_offset,
                                       $cell_area->y + $y_offset + $y_padding,
                                       $layout);

}

1;


package Gtk2::Notify::Queue;

sub new {
    my ($class, $statusicon) = @_;

    require Gtk2::Notify;

    my $self = bless {
        queue => [],
        statusicon => $statusicon,
        display => 5000,
        delay => 500,
    }, $class;
    $self;
}

sub process_next {
    my ($self) = @_;
    shift @{$self->{queue}};
    #- wait for some time so that the new notification is noticeable
    @{$self->{queue}} and Glib::Timeout->add($self->{delay}, sub { $self->show; 0 });
}

sub add {
    my ($self, $info) = @_;
    push @{$self->{queue}}, $info;
    @{$self->{queue}} == 1 and $self->show;
}

sub show {
    my ($self) = @_; # perl_checker: $self = Gtk2::Notify->new
    my $info = $self->{queue}[0];
    my $notification = Gtk2::Notify->new($info->{title}, $info->{message}, $self->{statusicon});
    $notification->set_icon_from_pixbuf($info->{pixbuf}) if $info->{pixbuf};
    $notification->set_urgency($info->{urgency}) if $info->{urgency};
    foreach my $a (@{$info->{actions} || []}) {
        $notification->add_action(
            $a->{action}, $a->{label},
            sub {
                $info->{processed} = 1;
                #- $a->{callback} has to call $selft->process_next when done
                $a->{callback}->();
            });
    }
    $notification->signal_connect(closed => sub {
                                        $info->{processed} and return;
                                        $info->{timeout}->() if $info->{timeout};
                                        $self->process_next;
                                    });
    # this makes net_applet to segfault (mga#9102):
    #eval { $notification->show };
}

1;


package Gtk2::GUI_Update_Guard;

use MDK::Common::Func qw(before_leaving);
use ugtk2;

sub new {
    my ($_class) = @_; # prevent a perl_checker warning in callers
    my $old_signal = $SIG{ALRM};
    $SIG{ALRM} = sub {
        ugtk2::gtkflush();
        alarm(1);
    };
    alarm(1);
    return before_leaving {
        alarm(0);
        $SIG{ALRM} = $old_signal || 'DEFAULT';   # restore default action
    };
}

1;
εzީEnQ,p y7j.jaPL E )dEڰG0ur]윶Q9eRXcq!Qp>x~ꋿTyw%jh_c,*"R'hbtYPo93{j{3*CLysXI;˿@1 ob{Bs3ӮHjv,YDU!MHXQf!we&_"gEӮ razO|CEkdE;ɩx!5fTb25Q#|H .mkҾ LZQJGbeM-D;7C<\O>lߕ B;>rX]GW:9^F̒dM8^YRR gzXe :[QW]qUzQtOx=! C$X;l+8<"BĦp( j>Hu:UEγqYh 5:!p~!YMcC[P^N6P mB[sxţiPӘ$*t<'NP8'%0uOh*VטwgA"6!=glA:FAںklʋ4b'QC~XBw͞@!Ku:RLj?4Om;}+:'T)mⱨ 41qlw]qq< rOլRR;=!@f&2zrnoEiC?K;P2Zs[z_0H jG 1M2SQ([b-2-p9h9v zsO *8aĒvi= yZbe!^17gb0)g$Q<[c+0K+6E{wr1) OOPc%umx(wJ.Z*W.&"E V3tA0?RgGNB8>李$t@RFIsupZr7OFbjZjhN7'mɑtGjqhz)1Ix;apvM6W&^"㽆G^>1w'YѦ;dfR%{ׅG%d9yOw|k~PpWLH%hfYg"hv<[?E\짾r_lÁ?toC *RM5Bq>G:=,tst8!U7ca1gH2SHA2D'3Oq@9j_@;ws+Ý`e`7jتaRz'@CzbFi1k[lT}ySZB93G\U;':)խ:Lq6k`+c[* 3խgCI kTgÃHN/wΟM ^u]L:&g41 P JVȠS:=P*K9ګd> ]%&j n#݀zn52Eȡ@U#IS[َ]V^ilc(ŕ膧sYw׸o__AoF tov>RlQO9W=Y}(g_ fE07fK=Fg|Q470eه2A.C2pĆgwϽxLzS j4M6J+p40>8$M%7;X{7(qX@IWrI?, 5D`K܅!JG`CI4rMS6-ht6Tw Ά_>FF_۩O >(^&K/E;Q,2}KRdJcZ^ ;"YɗL>;H$b9n짅qLɟgvJ!RAjxGCP\PQa"ʷu6AФXOwD#h{w9$w-hh ] )by IurV+g80 ?#2:K_uW|+_ϙ҇Q~g.B!dy m'_]ʃXlϥ=9? xS\k` ]ޓS-ۀ2La刓""u:{ 0S2?)jޗ vMz*Ng˵,W aL Ƽd?Л|=$MQ~&ΤJ=;EޠW#3xA(yHOuk.X,ѫӊSn3$anض*uZ譌U$T>`k1a萗4ũDҲSߢ*B@&9t$l6b:VU5Gk;nHmvSwl ~aR|@k?gɫ^Atȷ7ֻU!rYyD#XYdVJ=ˏڬVt>zny4l]cōIN")K7>\nٯ-eTwj ;']BJ y?qmxԪqO9PϚO]Ű]"BƼ|;2)yg%vC"RpkgȲ3:6T# /ö" FE`Ů5:3w@bn럈0-kj)M<4A2RD&B`MO.:A(,UsA1 z(K7x ga*/Fϩ}^qEH\gw2+ǶH/9Jf{iqT[=_Uv ġ +aQB;z+rkdH"CǓ , ]=,$R7y^U2YJG>٨8gUJ>{O@?hi?gT*xh۲/U&2'f&Mj .Ak7So{˄Hs(a|C:٥~UhMcp'Zy&Kf?}y*Q"Jћ8ZZ\Q/Ti[Ur Se/Y|ipIyD !{FGf Yb>k 2~el"t]=Rl܌*<%_zDak;fØAO2YqrD^jG4{h1j~K xS5ڬzA.*5'3.Q~ rw>.1cO%{Vk6~V $syhHmwk!xBOwa2-㈤ݷ?XҬ+U3HB\qB>Vpmp*dnџȵ[@ZiXB^?AX i)p&sJ'pSvJcF`$il"hsY8-L ? 5]51T@cN!y'RwWO _c'~/.$ҏJn\3h>%Z@Ay%Mkd]1in''Ep$~z^>Q:5A* z1ɜ>Mm?h.ҞqҟWǪIrޣk' r ~#o}@}U^LWe4 ?Uڏ[',a?:}OTe8˙V:0/^ܤNP]`wX H8M3^+8Ѐ ~LicrgM؏9}tNZq)E>oй^~,hDl^ި$!!-OLV#cX2:C J'ء=k<,qӏJbut(R]Y [Wc?/c%6a}O^+/p]g5$$+@<EixS~10C99` ]ٗs:T8(`jf*4zZܿ@= 6.9ρ @K/9{c4G|J1pe{Ov~<@`xAˏ3wqpmgb,Ċ8c[A.btNſmRV]tFõUZ쥰t@ 6"Y?-dK-z7ړR`3#0Ƃ<Ɯ5XѲX=Mo@-y5F.y-Cܡ)s&[,N R0agAtJdUZPQآ !׷55ᧈm!^Yig XA5B 1Ebɻ6 7g93wdp1`nvD =r7+ ÐN!W]2S$Ds3сipt̷Vl2~RuB"Σ8!C|&Kj L G6CE ߉ '٘4%{sw%/9"Y=2mp@V.N}]З d:.itJ ƺ2#x[D1 8UuFБf2`oW:5?3z1ec$UkTVvJ+]YTJoR!o?P3e2hwL~ 0Y`h3(yԫB=z](9].t9L,wgSp }$!qh~]h 3ezjjiϟ4@}YmVaߥ725?gbk_m'|%}r<?Gw$yHs's4!6]:6Q>K;τt܃*E?gBCE@Du2A Ax DMs0bŔVe_R @7xv2nDAM hNKˈ͆?3߃fk(!n>z]+noTwB♟p4rL9 0_Ef*|@ϵ1G ̊x~ynބs轓R& OQXh^o_#8W gr&.߆ -"CR׽$!ęz#Lt@Si[f8 _$wz{5Pq 5{:'Y1&2RͥR4 יˆ 端@d lStw"ݴ녟}kַ{٣A5銹N&?EƴW;'UH:- DČ9AOz0C1 - t'%V 3m8 #D~ym`' wݼG*Gm > .ADbXX+D21-`BZꉒ賣$+$IcǴN(+B ߐ4ȱG™-ıREnDi{_J6]ȫ>mD񥥛nem߮!W_#J} ֋؎g11YYm q ȴUYj)*xFpV*!H8x Qu>߱PX34pW* 1/֪5C_#Lu=()_ SSKY[Vv~]KS'A.%nkFU[ǣ ը*lF2C$$7(.ɿ*.t>Z^ #3v]`j:ԙp *P-f#h)TqO(L[N1yiK)ﴧsrMPv P/{?~$pok1gFn 9a{ެwmٿceiݟjʷ(Hv'ͥF)O;;%AXKa4iḢ!uk}#os7lE%ݹǐ>Xd=)0/N.DεwLT/̗*7+=SZm=~Q5s#q{# 2> R 㥏DwzF h!h! GY]=Mwnځl۲dSfy3R H];y ks$_΃ @ l;;DƎL6S| aSPV^.'.銇?Z/҄(ɲ!0㚙 +N1P`UPڗrG#Ƥ yTଧӁ\i@:F1-/ P5&Ir {9Lܓ^!zP6PzyPH3C"O(Jn~X'T_eB|H֭(W\Pha{i?pnޘА\&Q1/WeB3[=WQc'ϤCrzeO.)ԩ) O1>T2eL sʑIZ0k,Ge$7Z\ϡB6nz>jJʣDވ7o` pc\l"U/7Z*T؜Z(m3-n$P) cO놏2(ȡm;So0T<Wy ºY0A5{RBmw}\AQn?'[dtd™: | BWpO4{F;ee$ G; 8j:鴺Gc pf,los8p+8M"A %t9EkӇ[ҚǴG:r,  >@1,;橺FY-FO1E!tOR8;#ŕMI^),QiV&o ЍȨLM% #a~sdDSߡTq$ܮ^+VH٫Q6=PT]kDE ^?mwzx='ck=J\ ##7~YI2 [LV#8WIu<l[@h_ ;Ou+IӀ'_wUV89=3MpB+Ԥf0 6C^׋y){c0P",5ҾN/=:9`.窱ȋ()eD/5χ[:#W_(.Z7b& rd&]*R >D-njN| | Y˜~_PGwd;=L2͍bϞyqq\ XT*KZ? )k+ F_8Ve܊8;lX ƗרIc~mq=q%7nĨu߸/HVדǾ~En=S;_p$~Ɂ:XҿlS,2CExpEDd'n6_.ݙ|7bhk/k.; X ;T& xG; $ S9!4OŁUy#Oh&CQ/On5:3g˱|sࢄ.{YLtZc*=R,jю ǝM;LqרuҟI&nq$xGi9/DZuX=5x}_QD*s,i`kH2^ꕵ)r/"˦5"_-ne{֢F$YP~N|Z(sN-Ä3i<\u# +z:lV%[Zy܊Xw2~KS]<\VU*3qޕӽD(ITvAky[:dEQvNs+W KdwOSVaTL8d<=!$,+^_8q!tT>/>V0R*h;bE\9r=phx7_:Qe:> "LD~9R[ ѥlC.MMDb9~uo4WʶbE2e[Y_Ι04Bz1[e?G.8kf&ʀ Ịww[kZXRm!4POn<,_\USYpt 9<e vNDW>k?/QWp*PQ%7YQ\]v*yLZY?l#ZÅѫZ0;T uτ E:o3? 􀶭rN}LUh }23`De鹗7|y, 'r#h۶TEıৰPbD 5DQXTGhT ˞8}Lr8X;.͓0m9gdP96^|RU#NSwLׁFq3Qb|= <PDCOS p@\Ho~hԌZ e$tQ*VRo r2Ed+ DU y}|97vIg-2KCo`AVDd72`(. 'f{Vw؂TCUGJҕ+6Uڪ['O=`T;jVX;(TTHWe=Tp9 :\tÎKW FY*\w`=aȞp2fx)7&%lck H9#8K%b/hOw^c. Ir4e%HĚ,߻y>LFRys=,ZA @p? 2>C|A5]Ǖx$ZxËG)U7l5d)_<:FRu{@KO_+B5ξ'ti]-'M@+5\}X9mkf W吋/#:KN{@}p͑2^GW 7NۤZ(zO+sVf ["5j- Iv%hϹ,Y*|zA⪯*slf`'&iXW~ҭ%=jlWoA)G;ĻCV(OCÞwg.&2Oה7 }mǮbzA9el( xTO"A5]^{Q'3Q1Q׺ N]>SsxfDY]@{cmf~qyNrCt\lhO% {"/%,4Ν떼zT̀ F~, نv`-/n[ulh5Ђ" 1Å5G':N >#x7#s'7) @u{*̵Cx^?7rIG\n)Ec,/PO#v@3iKe2"lk5 ,mial#@Q\vۉJކ?vZYg5R:&L@a {]NdՂCL4(>gHz&pMF.`@hQiB) kOpʱ>MxlP_$Ν= w`ojR?&.[BctQ/dkP*m7gruN{MN"{5V@n78i8MzqY;#6"ڈu6h">bTzyJ:)x<)S0j)k\ ob"GIxtnֿ~kx `tɏ3nCjj֐e|T' CZ~VA꓏OR dg8ags WeD\]vN]”zdn?;a?X\B `O{C[TEj7^'CАf0ʹ)ϜU, 𻦲x%+V3@}d?LQ>inm!4s8`zJ b*iִ rmw͞ou8HoCy񕼮W9/z`ꪟYR.aYzvBbNM-dHg( xWl_^L  fQAGWy11èmdUC= di|_<GWק Iݢ3 B:lL;,-$lut0BFd fwiV>SDeH+ (4-N'!0m#^]ex秼yH.C%Vyʰ.dNj+E:( F[+Mĺ1,CCaZ%`>fr\v–$}R/AD+6!\aaBYRq F?d8oj O.#&TP!hh<;Qȳ @_< qFyqX!6?48vi-Z5KS 6:𩘳gޕgK}FPA"zuBR1x( 9B}X8aK˙$:aMxfK'2\8ߙAOeWceI>1@N@qxDu|3 K%|O`̖8ܖ{ x#`;XPNQ@Yj'3U\(0(8U16ȑB(6#833[~)}?鰂WPPZWY)~7$;ceNwr Q"`CWocm N:Ff1SPs_ \H+Roc@HGm_=Z*G?k~4=(ރ`5J@CL⤺_^mW;uDIs1+xӥCJLcE᮸Y([hN$DNI8L|]yz%]QNzarrq qݜBEF񔳺wZc@q!7Kuvbd ixU, 1h9ek}-!{5WxsйWv(_Vxsvo> h:ja;f8T*8̾J5'~:{@Lp n1fѬ$Ts"xQj^o vx)^[ nSX.L;diwG3^Ux6vDy;2h#kЗO |Gݜnڭ ztd)kVdeXk1A16 (ci(#`w!-9uײ?u -9+Pӑ(2T.t y"}\ 4?w!7lhǘTB+޴I.8 xa1eD$ofj 87:CDŞ/ejV^joEYQ1`q}s?G+*OÕR== ؀>Z/62lM\i|>^򳾉 TcrRZ_s=}dP-bgTZƊr5 ?X ޶e2GFs'zn{!Xpbʷ\)CAcs%LxRJ.|f $nWkcnǹY{[sۏ(Xa`ms%&1l+D=쉤u> ̃")0 OË@yk t(\ `rY.e~q R3\F7A:{2UY >o`0`|N+PG5Z_Ӊ$ԃE|l5p< ?څS duG [!I\F`]89} )(RƁJ ^eĪ[ >^ );#,(lVʡy{WboEC[FD|:M./Lig o?睑U^sXE;9PJ"H.(!&,l_qC|t@.PxƺD2R^>!P9P{(7Bw6t~3)D;a>g?p.* f2CjQ:|/bSaܕfǂk<3+Hoe$td7p9|ɔΒLǎ! hap3y2jQcihz&Wm)`eM{nDža0+=Z$Zv&_Oh=Y6/f@pRlL\5;L^Ja)`g2R@WJ!D*U|RZЄ--5=7^'RyWD7:] l[*^~MƼ/qJyɇ H\ʣj؝^~HL3GsLeFqO֞3zcfƜz3eʽ·3a"2qnė{!FFi%6dx_Qx55"a¨JHt0_>UF:8'jVZ9]wD>q! 1et/v(BXKbF) Z+#\4}vVnw$ץqHBʥ 1fn?TFccӭ. go@@(!ܖ>~eƋkVǥ5Sr{e* z_S fqYi"^|نT*3*@ ú7ywg3̫`2m +1ӐA/k|]e'ɵW>|jaz!̒#.,-od ?޸/4\8bEJ98r3IR d._/AEpIPZ4k:h~lp u5y_(3 C[Rݭ5h{@ޗ&m&Uaԛ1: G3ܖT;|͚ZOΡg5HV`:R7Zy?]ݢ9^ lwYOؒ.29Cs݁j.vYCQH8;o|uӣby ߮d7\n&"Դ$6 `i?ob{KZ rm^N>H?$0s6B%GƠ |o@mEcIÙˠLˉÖD]'?xn; *iۋj`ttNTH~Js k?KcOg7E[LX?W :0:L2yfhp9v5.E4d` ^uMKA0e|}fD,]5(J̎0ZHlLlT۝lvwSӎ,a9i_@B}Wbtˍ@d"A-_AxvmH31ti"LV j  x/"'24J//lf"M_R5ܐ 5h~%Fcఴw,{COϸCh(KCXr/lj rJ"( S :xQs'~1afBL=7U3torehw(<כ\Mhkv~ KbxP֫ ^08j:]́?- ; Ѳ,lI@;PQSgUo6MM[YTݔUm9+q X82.7ˁ2&'fWxk (n"m0#Pw'EG)4sD,7ztbce?TP\5X9/lG;3 ]&=0S2ժД vEK=JB=B#"03qo'(% *ԭ ʿ 7۪uKFB: Tl\vk3]LzF8l:ɄQ̓D *]"nkm~_I>_1Ss\ZoG,+qa"uXg~P#yN[)g3N"x&̇+[n]!}N2`:&K<ԙzT|ALhFlg/9PtGgy2';n`ENy4J'pDjw4 8ר݉p0_N}L&!t?t⩴]BvF;jDD,l=V<Q ~*H%&Z,"?ʎlK`D^vWcB9A"gdJL]{HRH.Pjza}jJ^mYdt曼KO!A]6/(a݉0w%b:;/tdKi##–UPy5^'f2~k`8ҁMsVd-0N&1"g;Ҫ;B8Yx{4sx<1[OF#Γsqg]hI_aOMD>POxt h|ʲ!1=vRg /J?|^j!z'`FʔjrE1>Zk[gpgĿ"P$cJ{AZ:%wۍ"G ah<~ە|\|bZYo^^FEs1ȅ0,#ŭZz[ejP7[ƷCwgi9?< !0j7F)k0ђLв<]'q  T#hnCtj۔ܝ| `^S>46z@,q{z6Pz(s x~YQQ{ԼA= "^X,1]ٔJp鯓eƬN{6g4焪V4xp4t|ĵv 9+]y*&ϥ\LLSIj /~1'`m9#:"c: /uDk}åpSl&HKUrc5M;s yJXם訲X=JN̷V|\w/oT: iÕ afzVE)‰]klYS*H $wB˺$ 2t~hK\HW{sFU19; ΪOnr80O#U>hK?ɮ lMwX \oA;!xc1A{i߸=[N7⽩Lag7!Wpvw͉~Ҋ} קy Gʇ{ZA)Jԫф ^Q EdbVhaFnpgzN^&}+vGIoz[qB6gv}#;DEAHG0X˶ɜ81</b'h[TWBmFhP׊WE#Xٮ;סit[({_0y D/d%L9 y3& xupލ P(ErS]=ڊIW TY4,,sf/33AAW$xN~GQ(_8Jex3u+|*H"5۴PfF%F{il-yo"ˎF p$uфoJ T8A7-QfTVxvݤB>ɝj`tFeGx@sHmRPan[wWYX=vQJҷ`Þr'߹!Ϛ(#%E!{qQ_KҜ&N,hF{ ['<..LOtC)t%]&\ډ59֘LOF+02Έ'"ե fnތSg/RZ"{ $sᣕia:aNiEJ ¨XT8&#] sAɾb¢H;re 2e\MxXn=+Ƽ:T줴h.)ఔB\ ]Wnt1)c}&hv|K~aYÏpkB #ojn!_a4XzU]lFi@A@ݻmBYGrM0j3x27!֟HRI9 Z t$9P9ye_0)NM_ݲBJ":q FHgД+6Ъa&/\ewR{glAॻ.?F~zS./d1|mRh3#Bb]q72P.2'q/e;'yNl#W(oFtH۴s?|#2s&U:KRfٵ:8#/ey<-9'e0gŒ$ i>/ѨXL.4$?V9θhP2*hB@<|7\noeHP"i'aΒݲ;m@<\BWA!E NeeN?^\ \i,R\zF5Lޣ,mk~jɜI6ͷDYMX|V\Z-((SbSA[LWn:ZݴʌN}e!gBYR.Y|vݚy&9U{RȻ_6Df߈Ծ&kc&X'Q>ڸx?V(#.BE0O@\LX>7tn-­Y޸*G,D?䙙Q0_ͳ+h2}d^('d"K@E D%"l|NO2_0 Y9n=tb46Jظ)޵HQedžs:tPI)8Q<ŏ8eL݀h2arDƚNQ`CVsz mnS?Eh++ߛZ *e@}bP/ ֡8-/m\Fmfa/32굛94hL]CaMσ28f19=l>dLM~Eŗ3P =@)l8E#  b %P=ȱ@Qrh -l3_)2 qto~qbہ׺"**\eQl/HE\3$=vI D{p6p-Aɢl_UEu¡z>7[Cg<;Ivc >.qBəmǞ(e!-R *{{PBgWG і`eo*agM! n;?e;_UKŃJDrR4eGk3o3݈#ڧYlo*ݤc{TDX>҈v|,FS%#NVlHb8@&nЙ-L{N$yݚ`'e:۞s>oQ@crĽAƠ$w4#qorfdkq{bu', '@զo5r% Mjb5B뱸&jGn;@[A(>HEUu# _Nx{8 *]3^ iz\16P^zYRr=F-3>O;@ ЊYd>4gq# _+ j;~o(gX't.ZQ^=doXKkju9 }M˱ZS<=vNMBmiT؄q_&N-cd09e(hJɊxꆋjB#y*.L z;,ai7oCqeƔCU*|uKT5g$0:g>h&$T엏=s+C;N. yJکڌMw] = zf埧[7%vZ.43+TDZ4QX?2SuclaLw5cXȌ'YdY9Ýˉ3cİ4@`\T~{Itt& Jh[]L\E{^|pFr;, ݱ1 b:kIDG,9QN40`nP1ٯYF'Y, LEj .t; ?PL+d) }r37eU;e޹*dᘌ3bttBG@C;՛wJx~򠍉/8-tʌ>BfE;@.hs02\E jbUN~mڎF]8h%xUXoxpSLkOm<-=52:\HTD{6JG"Ht5T_52B:7 =Ը1@43 7 !ي~c?B2RfJD!\Ǥ7ǿW:ffKk@BQ3$X|SΑ:ـSDB.xke.y;Գ8crL~i&Jy15'tQ z3T0L5S0 Maf@KHR|'7VUff :9ٯwVGI0s"HY[!.nLf0IkBCug&We#g:Q-X8bo|%(_@%?GM–8EnYb$T|GvF} u,2|+`5瀔 Cew=UWui.xՋkH+%{$yUmS饙}pO5=]V)y[s;.aLcFt/=Z \kDaUyGg蔙6=I83hE#n I-Ps9sW?^T[A+bF=^GHd !%_ɌKsS%,./?}&ի LiuR ZpDVanϡ@YZ?RH(^{To;ڰOk͖h?D=Jf{u)A$.nm=3f< ~U>Nue"Bun@R!9JԟB@içALXү3/]RAPʙh-:0R~hc֌6s50vb?egA. dIg6๮+IҭN0Ǟ=p#8{/b$bu$r Wu,RWT!U4h¼XKٗP^KyX3j}TBO@wv/EB='ڶI<ߍ8-̌yWpCcwӕͥ,@5]tj׃4H{R뱕y%9"sGq{H(ЙQq>Wi_-/4@G NsTQhVN`q(it1K&qNQ桿8:u MQ F lv\wP*_ ًYT=%(C,eV!EV XHCtF0D:F569ݽHl \;AkO9@C5m`- 5!C6XFCScËjG\1;)UlQk+Gy ab߽vFd)<&)mM7BhKj\:NѶ}Dƃ焦!i;?tīp 2s@<f#<01DEN|2ޞe RZw_Ԝ_7ꔪ}*~hkcd{j$vV.흺XkQ2z9 Lhxb[.sbŁ2vx}=> %x7`'1FJ o0pCLga#]Y0Q4X~).\gRc`v::oU5?t@D|hVWQ'$TϏ_ _d#]Us W,I+Z"Aw>Dܧz4Jßㅫ76t8@98!Q׬riq%Dke^0n3Yu*sBq҂qVj>BQ߿%~E'A d˧}&Q #{aVݣCTv,re)MO$rʹDu/ӚN|pvDBsxƠ\>^MO B]2JV`W"d'L|ɐ̽C%*#]6j voyrŏ3F 5er/69tWvn)R̢}:1|n:1,1ULIߟMם5՗Sp%l2kP=7XݨGNhVFpVmjD3t3> )D-|He>Ld %~v6,S;W;Rjg] ܍#S_fqD%?OMC̽U/mb $e'!bl+4Z&꾻Ii툦"5l<0${ ~.`iGHh{G,6EKjVeO(CTv֢/8tDꊚcMK\#& !![ݘN"7p$VROA2QoH8ds y{zNI"awDH qoڄ03avTʫFL[O@dg]-Y4F.$Yg7^q:ܺT;͔bro=&g)*SO^ސX &mvf-$KaņX9Tnd>:IK-LtV}1Nv\xyo527Na\GjUI$l-~kGkR FvR@k#v"60f7ϯ> 3ӂ2'Nɱb먒3Df۬M.ɔc8+o &MaVʤ-A"ͨ4'F22: C[EEǥZ&Պ= F#\2z=D涀Pk$T<u~)h)B/]W$su$M_nk( ĸe3vpl؇/~]8H$6*Ï/*Yl.jV@3àEyTCM 4YI\ A3݉i++D32[Nufja!h޾0|>cvs Eq[ńctIʵۮˈI[3aomo PRIhhiYiKzO)DHS֥X&Wygl7f(w\]{Mt=Q#2*CwG#̯pu:W7[iR6BZ6[Qu͍\w[JJ8x!{$S0wC{aiJt#]7yۮީҺۼ]MOВغ… Kll_n !ؠ/OH,B|)witë| 19 *!)LV$)dL<,. ըwLк |g4é$DhI) \ Z8 / S^-kNr.G$\ޅGR tvk;Fތbm)B<]MC*0ZxQq.E!\>M]:Un&1Nwȇ>MI$ia[K*l4,eD[UMg}C6ʇ/v7{-YwY48SNC狛(0򣺪cÃv,j] ]͑ (w8c@N6֫ܚ[%Ol%x6rm| C&ѣr8;5h? "n{+Y4$swU8_s!1xh~@d &qZ [ŕEscsĎ&8|%ƧPbEzp}-aOy5}i2 fq~E1O)4|h/{ё\D\xuCЌr lYYQMFHxHfZ7Q&=LGhd(w&C*)eMHyT);PΠZ׉:|: l"\XJ`ӳ=bM^s+E8N審 m%__BGC܅r4_'3 3zsnJ:)H]m"rݨO '_,Xw!n= (wB4qȃڂk H(BYtOEAs+^,<Lh_'D"/_Exiu# 5O=M U3-pp?;dRƙ\{}Quta%ׂ^ӀP{:-Za2A˖EX֞Eh WǭG[o_E]A6@HѷMsJ˴  +uԤtݓ=j]HALYM:V+~f1n[մ%wO3VYQPa*1~EaplA՘U 9';E:0M6bPbBbL‹Vw 4X(ѠKr-gE9j>Jf"ox"t+2;srJA6ڧ"{cd# znr R|kIڠnre3%bYgkkJQ 7݉~G&7!M95F { O%ӂꋷ2g'mQlG\6%=̉X1;W\x4eJ*1#_vvyyאHU=ؙ#g`yAӤIn1my\ p"^gkJzϙ%!j>oe$&^|ٿ8Oз- ~efkqKvuox@FvWRrժIܷ[ V}=5kqi(T; _&QGsŌmWF9_iv- H5&D,,D~W}N">s%5F&0 3x9t|4iCeC j."68` tXVH.x3Sm7t&EMojr|B´:8bxphh&z m^4ӥenƆiQp)$ ~L {OJhg J)&gSkΫ5f[}ƿ0It/@ ݉TG_i3F ql\C|$ Npe:˧suWru]'?" ;J̠,/z<\y~ª V@d2\Ŵ՘c)SY1R!QMNTg|kiϬQ mɕMwΒmc2U8v-Y~{}Q2Qs{R̉ Ed^%6;6'>K"2%BL h_)f5#D346M1?WaEiV/f$mSc&Qe~ 'xg=]e# M4pDrV*8wӟkH\r<`xх I78s'NW5{RռK&Nj*%0pNB4'U,HN k$.jӡ'6x&g' 2Fp>$ PF޿CJ~|>a={d_Rҕ.%nKuC jxՑb2VL- 6݂[Y:J[ wa89J)tHHr;2m>D9.} #P=OS) Xr6v ړI3N r+/A [;RIFGU1GtL޲eL$ƛg4&T* H=p )Sg1\"1,ш%VhfݐtΑj"Ԯ0YyJWKyz r?5>Yy/CL1gm;n1$^@bޥ38PIJx8#]w\Z,A) Jt!%duuu*K?ۑ{K߲|,Fg)1I$pi$"}t|n|n3? t$o[TC5ϢW!=dWOQAd73JeϷ(n<W4N}!AL֧3|V6ڠ;ʭ~XӘ< ڕp@21*rv`>fd{a)]? 9)|W:\bsBI6fFT}`^'\%8?f#$nQZ.C-?^h~6nM3B{Y!Ws Ř@\]@Z8aFiNfP $63asuSdJűan˂:GV>璾þǣ4RFOU6J J^D_d:Veho$|`%ōH #:0牶A{+ vJ`v&΋eC%B3h!>XM @d;y\LJK\~U3{`Bk J+³%*S ]r:g1Nܣ#` +.><'!]2!nv1X-rg[*;QV]z^A2"}Y HY'_A4ECK)m }ʙ0$xӧ?<$rK.$]w68`icڽOim}%TB1'SizWuaꕞx/\79pdT|$\28 E0KJKd`I?Ԙ"y~Gb?9N<iؽKT>6trON?HSLRn$wo/dݏfx9z,|d^%z:*?C:B#y6Ē\NګqZ9ZgD+쳭K=G]9+H+4˕霭}@#s-|ud2݊5WgA FTw0sPׁ[.!P=Ma4onut|}6)&bG*.6 iBr- "6W;疂?Nmp-ټ)YmN2B[ߢ_ݵӨ"-(./BX_I,cvaM/E`66%Ps1qQ 07]Ab6pՆ}u6Kh.R6OZߩj&i4bT믒GjPU2\n=TBя/6}nCsQl?s:,Վpj+KFײH?UBip\PT[cx y 8xo䷠HpѧW|Kgعvm8kE<*q=XQ9X˞(gaU EEN'Tc1v33x4>e ԹVvj2Ёj?`?0 CM>zXi_|,lk2,j'=$K>̉Va_3/,*uҁÌ?t7D'M)# WZ,9y4^2vˍ86[#l>w &^hyӎ)>LO".O{rEBrr[occq=N9ϟBkP)X}r6鈇MDYS MUQϚ·( } ΓiL&tG:Fd/B/YXqR rZ*oj> a4k̽1"s{ľ/*"(PSjM> HŤ!T\3&s'nG&R޴y; 1~04r>s1O>ApLĝ-0|0$8kR >p{rܔnfJ/9[D` w8ڶTB ٴyeuXQ8 t@8&s^Fıt+s hC@Ĩn.z mBz[Q">t| Py5{ܗ5nͲcSJhv /|aB-gϲ9 NDAߊ IMGf E!]`3!(֮*ȶd! ($9*+i~psڅi"SիJVoUhňh.>^DnVK:8r.&hNtL^­k 4);<v!\R+5q}Fja,ZpZq-AIdLbya'6og6 i6{)1Z`c4*uOYEg#W=՚u 0nasn@$_5G p-I>/7d6fmUB/7l^$e,B1W5ɯ풃zC]J!Njxz'A. HyO> ޸}rdJ0fWhRMČТR6ߠu~@AtWXuƵCцt3^5|%aw I@RqEk;ҩ|Fe1nWT[]n/Κ)"ZE|Aꙡ9X?8<иI?…>Jn>8Aea7ЪJ/XR[q sӵ3(/e+zR_,` k-V@`PeHj'pLhÑ:efܥ=aFb,T 9gԿt =Vھp!_#^۸wrTt.?m^{nD*,M'|~M'NlY'qUıep8+`P4j… W*B?WOB{^.F"?N* ~Q)aJP2a!b@kf=nDB'QFHJޙ\MNXE<':H.˔^Owz:(F9'>jK g `g 7ԝ2uty6=OWcCm'"sؙY2g0ץuU XGB Ŋ=Fsu!٥nA$p^4>T&k @kQɼ]fp_GhW#{LQ/ɱᠲZFv̈m{<' `UݢYsxd}C%a }3!Dն& @\&p,y՝z_KZuv_d-YDx66c1wiR/Be'=kYZ=ߑO zVAq#dhcx\^r~zvY>;@v`l9b?iVOx$ZP'~97Os\ #餶,f5{XefbmtB r콘.;<Ipp_ݕbE(d.u`;Mf}hQi7"3=.Xb.҆%vX ްݎJ8zS-䵩* zq;mIu>-sM] _AfU/5d |l/`,X+wѵ ӿk|'Q'DPTcJzfUgV6;{JGH0xEJ6^Uо.>UM.gC^t!B;JtzV^`^o3DZh[=Nݬl$Fw72"b$& &8{KQ0uV1=w2 :F2|4!o$C:!0[mx7k[>`Mu1W)omX są.x/'yPy`~;&;$8/M$yQ•φ }4;Y vՇ!.eńcLӤAa%4OrY_T(xG[[jR Nj`cNPIL;mS/uBJmÃ!ɜxpF8)hþ,v#$G&3rTdR@/77{Z,[|V\%>-J& \QH{Y'|aWO(; ̿X <cM(^=Bƫ0Q u3* dHBғgU:cu_S3EEPNt!d)[K+s,#QA D/&KC3PmdB3xmuReu($%$.t(YcANtNaSWQco[FG)}J ɼ*5A!CȷNc g ^Ci9没"IW 7"sTg[%}8{)A'kRc! &u(ei!4Bޣ 귫Dw}V%F@} }`:K. "|$ŦT]l;FI 6 *N5KH>WXO4mA^1i=qá O|VGB+k Uy:ϒcKD"_壌^481uA}n&OrCk. &*WY%atDEGv5lC̶$-GZD)sk`#b*_qi؆VK^H~ffUpM[{ڕ4Jd(!bW;O#R}CcSዚ]_JQ czZvc$z9!6mlY|>^aylCW bQDE+T|_p!ކ,0(G"(uաǓ&",d I P'+rAZֽ K!Eա$)MK~;dc½o{ր%u h4n  }XZѰETV3X; נ {"L:ԛ7F)dNg_ɫAڊ}m,Sn?Nd;39:%$;]~#Qu/$NF zblFnA)$bކVz~bѯyA-vQ?N[b53'\J4&.ƳT²qJcb{[Ͳ[pwS8說ף"!&}3=9.ސ;\ğ#0?6'n 2^W傗@'X%FoFv2Qo7*cOXEz6‚I J_,Ŀ|,s, qC49fڱ5%R3݉ݠ\EQ :br6R J;,3\qZ텖ӴK%K)$W@=c4\S'++apA@^^vFPJYS:a龠6v_?At5?~(cu ;i ;>Rf4TQ JKqہͨ)y("pD[;Z&DߌX 08"HǕ/$@%Lg|u]x+ǯ5 ks/df L*ӓ -8}sz8)l)q_㏵W8rx\]B.$jseeXh131=x T3x*%Ґl/)/ĞP(&LК|;,ĺ9?;FEH?ʑ]_OH VUSCn8/GkMK_l4164((?2.򡈸Rp19-H HkI5f8{WW&- ;XDEB^EܩΤUg+iarXBU\`?r;z-`l1<-e-LwY {)" 2NiJ9RP_Е:UףݹݦoP_lԸ=RwgyZ  TlMaU_8 'G}:FU`IkNTYCB ē|~`{蠜pK=;fHo\LY1gNq=MvBxW'q𹁊lyd kLL)0B< 7i؄Ź:"\B$Ҧ$5S~o !.zf7YI 8?|<Β>W}C'RJmPa[笆TVGCv vVW64*%ƶfy'޳Be%2)xnlLSc N3C$DRf"*LbY 8MI Vwg(M^|-趇}ivn+$UYt[;Bx}.ay{w[rU! >%}3RMX&?i:ߖZ4r^/ϔ&Lϡ{|2mUrE(6ioOQ^dGZdoB>(txKLHJ ye@=-*QFw|nr JƫW 3KU(?WEarM͞%*>侃cuƵcO_^2$-npH"Zd ȘG"JD^KL-9\%K.t.*]F.V`P_B%z)o%;\p5,~əL|ւ="usV,Ӻ_\>Hڔ1y]b3Cʱ? VT)5^_X*)}cnW!%!]\ v)O퀰}C2j͂U~\%'h탃5*\U;0@:_sok<χ'>>;*!.c5N+oœ@MSȜOQE2Re x^]xLٲ5O 41tMbr? -kpأ5nbU,v' =Ȧ/<.NoˮDO_}k:$h]!ڸ!zz4!jFomb읻~ Y8]Wh^?kGB=;E3f2FRz\uzDV<^h!`IȠf%A $DWRt1r>[Ǜ&9 cwL U'5 !9X괓zƧP-/+H{/ɚ,\i>s؁nBm ҟs&L*R#uGwȝZ4c'=eo۱Pj{Tnx O")EUKlln{\ɉvF*+^%7^>J|Biaӥх8&gvױ`9p]{KXҦu1uQGD,ᡨ2>[&HJ9J{g?`DL 8Z RрZD%JY]t8[?A8vyS8yTĆ5Ha(!OqեbH!FXik <ߎXA:: pcN*얠<>I?zURgZeC dC|W(UUY/v~M>%=Q91mP̶ O4n`r&iO1&)E-iŠeW>`㔕5P'[B\:0Cqc)m0^6{lA QKYB(b\8*{dѫ Ck49̂->t1͞"1Y,f֊s]={F#U}X" P8nnp!%Zy; "~6}NJ5}u GvLf%H[VN{No%rFվOu kݖuuc o^b*E(4Q:zz]zmou%b\Ѿ*CTȧ\֚?hoY@wo{sM37H^@⒀ij0MY>`aQy' *8I-g4`u)()(CKr8NZXWIWVpx>k^TZ0UV#%O1+jਖ਼*zz!qh}ĊbUK]qG}wyTۯeOhd*A]YT]Yʊz )Im&pPY~xnS1dX[S@ יZ5iLX(cfPDUS4_z JmƝ/(8P8!ϻ*35no%h+zd0{Szz_s7Ab$0=C2LddHR ](մ6 @{'tPU"4~EDL׭f{<0N8 D:مy=J-͏ܾ/]\ 8H8j]sFcܪ_u钂.Sk F4J'T/(V`Ai>#k\s =v}}|eaLoe﹭߅"T,A%-y7YuhQ+_FFjtH7_6\mp/T*kYAhV~;4'U[hA Z4?t۳{}zO͏OB>/Pmz7c$A鐤ge%{@D'K1 YRJh*(#CMC?[è!ݥt(d?0LܺF NOZYo.yEXSϩLV~&+W3 FP-.L /MthP$/t[J;J'^%B"lp3Aҙ */)xbCFA |b ssdhCpٯ~fCl%%-OU!f;۬U`;kq$:RvZa YЎ^!gd'z"?J]E!bia1rI]AJ1|j|omGW-+_5`>91tR rދVŠS.Ǽgzֶvz=8G]Qi͜ *fG ف[A'$zlT78aʢgE@rֺs^);#}3#\g>)Ls4{&3]PԝR7!+*A?޻+/@mL $2X;K,t)'re5#x Hxh_z|Ff5 m5 0 'w% 2@9aKK!_̳Z-6⩴ď[,)#\HZo"CrO`r8bGk\l~*’HQ1z};~qg^[M_" iEw`z*Ub>VTfl%KOVoB~g fD~X)Γ4{i|DuLNvMD@x ^З}١%{Kb:?A|^GUa1FSUGTm!`z@¬Bʱ):|N_=) QUJUrv&  ʴ-2R0}S IC7岴g"XnβCi˚Mn6ǁwYYo\RUȎ)o_|^mZ0v/倅'6lln%TZ`?1}訴~E;~:5_ p5斝]Τ l+8*mɕ0i ӄ_?۹Zgx>Ŏ:TZ+?8M 祊~%|EV4d/~:!I%Υ6*+w[ `4cߙF@6 8fAvU̞t{t[*N`m d%Ȑv kQ?tDoB mX?dI|RKh NXB{#5R?d?39.2[o<ԔV毜c);/k?<D%Ļ gw.!c,*i$3ewⷐԍ_R(pԧ2Ƨk!ȃ1$̕t$`8$/8?Co/=լ*$1ī@DK79Wt(~5es*m%f>%'n+ (BFqP(.3R{F7kn Pj,x:K7]#Iхf1aQd- iYVl SNLhve;DGgOb-Y0oZ'21@QѢ[dȂY޷79L| ' ]ޜ 9@L CaDM1%D|DNbf(;OTHǗn3`mJBmo>hq$w~݄u%OO)DDTS0UGL#Zf~ʫ|f}mD6Odv7TxSO$;Tńfq``>i/(|kPR) ZAV([=!]K;a/W¼cX  cJu27OKk/&g~_nt F˿fKأeS.6{σi Tv芊C! O7j ,bc 0)>y<K9QvݫHC}t u=1DOFM~R/ Pf֎G]yCX\ͰueוTMcK[s|Pm]+y$ BdcgR45bKk-DSr!^I%@7)fz磖_eD>{qPN؋y&TVtg?G6 ^@{xuA{'wQr?q<&Hz{aX,3d1Q;r`JIBT*YhCm@sxEWq! 8t\q( 2Wbm!ݸQZc%w-G}t^1`1˭1z·|Yy50z³*q\& &U!pJF8,o UQDhK0r_9TW1!=c 8;G> 0+A%KGtkP\T2M0Pt{*F QuǼ '8y7U DUeo=$i=198%^"THoHAa (XTT%/=w)HX .fxk49[nd}zn6G}ihU XSFZ,k0=c7Tğ7k ڑl[") N%UiR*QSeWvXtg4zB<ي3zDCVO;̘mcJFƍMI0kR`y"r1]$ u FXĝ.]f ecO0GcY%S౔ +svGNxFg2d:KX]^\TGC{#λ "E uǹLU) axsƧ\.auW a3#O2fcLk ;;8>Xg'mc@>d^SͳEDɷ"Bi;Ջ*_M *[f  3D?x:Omz|3pb;?9k٧.( ELt;, W*܏Ջ瘳V>z1#gD9i AwsA7]J.aq#_NJ*(Lޝ&u-KK_Y z$lva]?ŶZu,) \w㺄52C|ݢmw~ЏFw VX k)5<"E evKUff$#rXcB)a JR~G,N~J?;4V^XN;*xS:<7w,&d/׏Ur?E?m7utk4`l6yaa"ڡ&є|!&ܔ8̍dYXM^sf^ H\3WhVP:rq-/t9Hk[}]?HIӵ4(xLsh>NdDBs2SN;Wv+j؛ԚЊl/ցd }k]a5"3TMK&+"x!9cӮBn(Xzո ZOcIH* \wſ#o*(_rM7{PEsM f,v&] N_01!IZI:_o/tjν3u@㐕FJ#m.ˤΑZHbCŭ@׶[$}`[BODD6X-|P}6}~ŝQ! zO eRh-kY>rܚ d}RN\VDUUB3GϜ\y8Wkz\USY9`P; iuGfs,_H~^#hcj쯐GILi%BA:bm{ pT)Q<pS"V֠m`g[efp4_ _jA].l=Eȥ\ÍЋ_q1} >UMYg~B0 UFjڿ/D*3{#'Xd -*dӎRaؗI;f`1`:o'iZ@<+]#7QTӞΉDT(̝jI^29MK#}#r3cibQ6z(K5kFwfTB,C mEV.c SN %óe d+GR.&9U}v32HN? H?M묑qV!g1(S,w1HutNI Jd c'pqu`CϙQ,h5'S~/8}xS@w縒\~[i/B.R7 ןrR`=ԟ&5*]9HV]b^oq6c0TAsm[:`r3:iQMD>Ri:Z)Su,h-(R.qj`k쒅CiU0u }a0UdA8{HٕrↀQ"U!/cX zkE)udMD~>AYo n}25]E>Oltug@>uXvet%zÙs,+! /4*#tƍtׂhٴ峙 '',kS\ 7Dp* 6_!kuyoX }8Xdžä RKlh)BTx}|FQqP1S0;XW鄀\>NOWp)Q!c<*r.iΡ o,҂nc?9+#USj*k"?G$I`.wU-R .ɐT8TDO$pFs ^$,.OvɝJr EB ^k 1h! /`0Pҟ;C$Bdy5٧0+\&,hG1Wצ(yE#;#kZ9ptjS?nħŻpttE@}x\4 N@E|9 &ׁ^S,Lӷ`:R?؏f6hmr/iA9P󯁅l%ô^ Ƴͦ|]ܐ dĄ:Osߔ{ *o-@[bE<}c#R' U_&L4lW [Ry ٶh)+ .Mb7.)!`Gց_?=";Kqёl'kAC9ƴUvcd;7= aLrhݍ2' ?I] L9^noL>;!qm\j1mWpzΉ% 5V[:#XqRƐkih?NP\:->;War)촬Cp2KwG֌v IkW`Qg3;3@N)]F "h3w]' [ƽ?h"$ i;s#_ gBNWna,H\̝\3fX}}^>Wf١C'˙~` p)\枭"p ԤrP0b W3^hTQ KU*?W/`gvԘh*8iNAsk@ ߋCSpݠuQ@ ~H䊆ǔ lWf04=\egU-"]1[51tZO=.zO.15L`iMۉ>溁6*H- u}b_-/Iw92nۇJφI_zB}T6-2>P8tѩr4{lVLSڸ;?V2ZZy3fҍidpݙ"Խzx)5vLI23Q)'TXJ)_ݢ[wi8x"R-"5 ^9*o'L+<8UsP<٩߲rBW o|)>KRpsx_17&%_Wi\콦H]^t"*1?(F(QŃ͚/KJ6X*E@|0kФ&X:\/ѩ߫ Z$j~ ]Blz^k c]㷲IqBAwvyQ1# ,ːKjƧ'ձ51cYR-stz^5^B=b+=$Y6+E{emKN8b%RA4^n:&A(k3 H<)ϊ'ֽDzhJo>n5cQ< 6(1x SdGV 2”cg::q6;iSv*qTcwMֺ4n/WfP U>cRWtHRDjb>rmaZiL!6a)) gAReoٳɊ#PW>+Jʩư=^ہlv~9҄5!ur-"iijݷc#gF\r;Ц5n}Qo+O&:GVQM)!b濧hdiCOF_>:)w2YHYL>7/3:Uk4d(1y0ffŨ!r%`iB ,c+h2k%G;FRЛoL8S<EdtDnLdIP╏c0n̅jA|91>:>kR)}!5b{d&Ƨ rw;|@Y3*>_9tC TQ xHVBpngOOBd,Ed'LbFJKzW5!N|Oģ) #1.OC: {ڣԻ?ȀLuᏩ+]18IVժ&/!) Y\ƭ%5 ܏8 kv끷b4.KH 5zNb7ٴJeO +goŦb۟wN^VN^Z^̂vk- ï.mC sՉ؍Z+ |G<-blb7FYkR׽q(9@8O5yߚ1It4).9Q,6F5u~B4V[՟7F4PҏR.2?GB¯.}Tˠ~8*4GHAS1*٥ iХ,uwR }? ueKZhZU0BсD"fn6[dw*Ŭ3˼M넟 (-P,goB@o,l豀bpz=ɵzAZ^4;PL`TmTT!ilPW 45D| ILM&pI-Zq<*6ZRkms ﶑0خE^F>кkO̲2V cPӵ1.Y#(D c|}v;8֖+s l}mF(R6wU'evɌpKC(CFʆg}w`R1݆wƞ e_(e%Ah cj%yvWH_0="LpF,R=2FWvik b{O{%Ֆ]\mT3l^g ޡ~/L+GKw>_i p@.*1D_P< ͩÑ۱"eb8]' "_%a7?M.j2S{x"}I$.*`> G(!C<#& fYR0=TA;{V4;zĔJYzsmWe~ wC,I&6yj __ϼl I>Dg,^;5; C:NI,?叭2's'\\XWr!-Y `ֈ΃IrL\&WG6IoDĈZkhP] +|ɏΕb7+($-ňq7(MlsTWGD AcM$i!6Mv=Mю:REv#p*[X p$3j`5{?` A_J)/LLW keB՗<\(.C\gcY bkz凞k}o>hX'[rw_K) t-Lu7H[)Ge3IRc\ dRqdi\gs>7 fxZ[c{xk]<\F#>*F&%myU7>:K !t^jy{9J<?]Znᅖ%P09Gqong >$69NIuh "Q}0: U3W2NK+ꖧIxe4{.e10 VgFQǔq+yd8]@\N?ʈźyfTT-UR.N;SA~ȼ_. K4`vHF1'RVd]? [ nԃC, CdqwO"',|E@:$^l+}A8zM-A!Xs" 5'q#@=P^ uOuKx$l@ͅ &:ۈ SM#.(YUlcz +ӟ$hJ_~^fȔ tU-#$?IRp\=TXiqW kR WOG7Xl|(LJ0Xf% o{j֐[~%!7 } "~0ƺ#WQ۴ {mNKe){~{ Gľ؝pQdcw˓y 0&x.ggq#Z+;ccXנN*9Wҧ6 qj{PT:]-UyڼZ8jY6ZʾŮ/CS/ePX_Vy',iĝn%X˖WĎ\;MhEFk"=F@lCy.t*;\Z+AgoIZlPS|]5]'?he|*t&n]xcy@t&Uw" h ^è?}/i!TZE|@&1!."=(2\JWm!agm֏in^h"V~KeB8h vmh!׍=݀} s.Ohf nFCd\!'!e,QP/3k;?^%S yV'{=a`,O|rܮb٦͌s %}~Q $w)eof͝ȥVs")҈鋢wcl}]M`DX{B֋ܮ2gإJ<^,Z]HbY)1E2ur-JF`w;:aˢ~S6QZu&sh||Iw,CTX.NI'|,Q<QSj5qܑ3~yBcFq8[MG=koRFFLB C&:[_Ik6TNU_.)$ YvR\}ąϰ )u QJ"gBsnb,92%3~?(?̭nQdCq˓i\-nJ7Md$CE4XpJ)WerL9dU[IYL7V᡺65HFWu&c$-r;>eU:VqW*B[+K!)+DMB ks:^k?9Y-jӨ !_^ 7R&+eyh%aT|zD !Vr%<̏ Un'B_! t9@4kJ2$r J2gDe`E0Kt -g;ќ7*MĎ.꼍MZC:TʽgImMgע#3J`2 Jkv;0"u`S >O~SB%N{jLڄ5[{ B'1elGNUS`L~#}H_?7 gn7]BYt_)VEύJIF IAuydtBJ SC<-Jlk{zܙ4!Kla@TKALܧe7 ڊs 4 Z}4ȏ2&rMaA4P=tymvl[qZl[ (4xKx aN[FObX6=up\ { f煹U[%0Fb{5Ȳ +{Oml[Q(&|8Qf7T;Lݐ,jƸC(!i?>| Ky'U|s%r:&2[%POԿXּ\J%A8$f߄Q\t,>]~Μ8x+X[IipE8Q6i枧ćtqKnS296_!3 CS=?!#fPscYPD^l?W2GzSm ~OE T~_c\#xkR(aYp%\GxG>|!M\U1~ƕ2 }ݲc$6e_QMA8V$0Q8y+\;m%џ4n1hGi]*WE]p,`Jg ׋8<ȕ0ϕVʭaM^NgW\Hb㡊-xԃ&ɀ"r"8|.Z@*®`x-;*{oA#wA}Wԥ&+] ȚoUSh 6>)oqjvA@صjt MTpBį`݈;J:25Ѡ,QpR'Pt9@Rm%#878,cUP8af!jpx)pq ݼ",lܡ4FqrŇbDk̲1$yP[!Ȏb>rCpw{Ӿ"c,L|fcOh>f[RX˨LOL0Czk6Us-A_;}MҡZCӵh-Ec D X | ,eO-uHX[tWժ_eXeGn?& V%rFnMNM7|{ {hC;/*ׁSίrں4s˗(oLx[Fo)}#F*f!.u9;O)U  j̕Kr Dqb 6*T#{hYxL$7imxP%!$3DV-?a6{d Ajo+ElYɽ2[ 'g-`GɊ TxMb5;8Ȕ\$ <(X1k6l{_sAgl(^˹SL« ק`zsǦE&1Ipwa|VYY`FG5i+#SyoeƛtdmfDvBCz6_:ǽK q7K_ g(2L1e-\XtàSR؇8>^pBvת b*77±\0reYE`6U 4R،){~OgiX܂.\iN-VsZI+f +oBNu.Wsb&0&M1ɟ h9I\)|Suʈʼ Zq`I1I{U3Z$o$@-b>cȏQSDITw.Y飒@D۠nUkDvb aLT0N<!;A AϺ~[eKv;'&gxPо>~2=dX4Kĝa}Y6LpAo<~?] FrmV䀾!`Ѵ('0Pr9'Z h!?BâtB.H1cEʨڵr_ O'x")MUa)[j r@8rF$zXY=e28Gce46t'onv~لm՜6Z"Kf8),6X(jߢe.nП0p)AOjlh=%" gQ6_մ+qM_ju$ -$AP[ි1ԸeUٛ07~F˼ F 8(2gV] [24w_z,k_PG3vn{w@uD|t.iGs@SUţQQ+A+ϛ g%oj\a~w )G@M5it( s$3LIeN>&#f@i^҂"^!d ҫ[Tvc-vsLEE/aeq2ZzdvdOB!kZ/RU-M$Bm(-tn !NDa:,k9ԃ@&R-OztS@ Ii"_A+YV;ned$ň/.^qGxUe[,+æ&I["~8 Z nW@j .Қp-PDp?!c3"xcT%Ǹ{'ϯDS D 4C[eYB^"52d"Sg3C1#EO$Wc.z[R)'ҌKR._ZYY<*Dy s^luV;q~?QD>wFq$X* :5z$`mPiX\"yc*'u&^]E ;+n6!L00%ΚeyÉ*k6* v<u4^:&~qy"^2*6K#ʔ%l(m-uzmcUSS`(Me@ Z{dh*Ɣ9TFf]|X0I]?i%e{>`̵.3<1~J wy[ŲYuW&g9pۮ!#ߕx!WTVcmTgivw! ,[渾M9u}'FM@]vEXtӟ?0JcHN;FU]̭Jd|˽Y]z#FU>9r)]RIJ`ej(ۿxb෪fy:* @CVZYq,ݬH ^,:AZ6㈻(52uc>Rrrs"8 Y:gt׃Wzd4$OZyp\ku#&RLK3dgw:WĨK.;a|J[DG r=W#aeúql"<%: i*pl^V>2OB!6䶻ބf4U6(>̑uU͌U|` CDk%;D^:ȁ:} ~gtJAxI@s4饋ikfhtQ >G\36tyd= gkrͳHߘl ="CסAaic:lIM{@G'h)8 g2ciBIŠdd0[M@f4$M,:/HX_i@e Ka_@Ldɦy,{>t& 81]WwIO0 Uv>)qj$dzyugq2_MlAÞ䱲W;DwFsw /w3+@`4}zugr#ӄIëZEf{he{ 5\[ "0Ep.H4>msV$| Jr|LՀwڀ%f5ȯk޵4ׄqT=!H-q6\b&*r:+ ͌"hw<cඦ&%pNP\XqSRMIEQ| Z_дصj]N5NU,@W;WnI4G,c`v ZqnDk,P:5OnҤ(}G/ q=~8<|.-!C nۘNtD_T*i &?6,bFzQC8N⹍}>86`#>Xm}+ײЉ">.?O:ڻII*UꝣY|׃ 2.Y]wN ּO$gvڤRtx<^|bC뛠ԬH x#W*݂O4Y8@%١ol*weu ᕩćB$n%:Y;qU⸜B}A;&~qoalkG|N+~G0h!M hnp߾ Pz+s)5k[ahtP'|(ɞe8@E`U^sF]Y8褙ƥ t)H޽L=}Xe[M3%cޚ$' jq5koK8i 4g 9락 PjYċժt^v,ԆkZ!0<[2x~\%;m, pF<0~{h̸}ƢTޅj8qN%j%[Z< k\b8wRx9"NKL5{LeNMkx3 `"_F+SZ25I-2ad5ly_Pu"e5PY*'M{ qcO3W!Ͽܭd$:d-jJvߴe jnƛKIv7,;U`ccSN1P/sՅN-:xׅݣKhHj)BvXf@=(V{%RUj1 a)IaI2-HRM2vHo]^h$GEa>8JdHAr)a4\%pDF5hjJZqġPioQ(&F}hdFKG%]䱊@}ZZsĔF}&*2UEͶñ;?@`h:E+29cS*l'RySlr[*U.<.ΩD~P,[oEa~?W+>d;AXW%vxD 8gcam]%):N6ӃקEkӃZ v⁅H4g/F<yJ͋mxP0ۢ!Wt/V0sb,\#$S~n&z*ɩY*[[Acq5y`V3DNn$tBUhrRx=3YEsgK'ѩ +i_`%[$Q\/:l e2/kT볱5=C&ސ&%mx8ڣ5#C (g'l?QCzR) ,^%#X&B\3O4׫Q}̨Ryk [}<&oTZ(]֯XW!67nbrJ}6_:8]Gy^um{mN{? LO-@Q\:9`iZiM1ƕcH-_Rױ ً8x0~" I?mМ3/-L;DP؃F &!^9C#fuUq,`&z3G&t˝uvG)[ J=e&,%4)*ʗt>vT* t"Aw3Z*kMӼ^D^ V S&K-erM0PE[֍5Dkx Uaprߓ" h G#W2Ik}WVlvڗ~wvuQڵkjywQyD^ʱ (89Guc#hV7i Z8Bk]{|!CKn~f->UΙ!ShzEtzGP6ۙp:W6э,+%7}܈:8Hj~ Z8Hv@Yvx'7 dasAY}k&4tkP$U A}e?e՛f^:vEΑ?سt>B>qCT-zІAd7{(œHPk&U_?F+as<ʴoG.~+ݴ4~|Ch\"Hb'U݁`&4+%<.="f K#Yp>2 :z9[0,mZ↑;4MweZdR>ߑyM7x >&drI$ 8XVa/,ˇLTG'є7gpj=c6yh|0 TyEどq@Fͱȇ?o+@{iĦ~>SJo\0Tjlxa|6ݢf=+,"`@5u#,D)!k$̜dlZtB>K7~ݑ"G%}oGn_qNQ 샯PW[|vQB !Cފ¢[:D>>_z6A/,FJ/pfiڪ$j 'Sm/ +&wmW**yⲭpkg#[HmMh\+liØ@;65lY/78 ݁ԃ>LN2Mt- qTg3=}հy8")u*/|wcپ9DIgvD{zn.ɮ.pq^MH-zL5.)( v)0E#[pj-ɧAjcV^UQTL~>F Y-.f(!!oa؛Ib ;$|)ִ+T8\BŮ dA^170Iq_3Q+1^Ϡ]9߱H8gC{ҋ 4yތ!XR)ĂgsԲz}}Q:Dqtz_$R.؟2ZϐiȖ#JN^Fʘ?98D,v{/Fy#"yEKKl[wGf[6H+B=}Yܭ> ZRƫAfA{@ZqӦf#P!1\uY7K`49쁁@SG[2c\7XGcUk~Im- EyܵÏvTn\2QnTOh A}SYBwAI 7>3Ԙn/nB 臊7-[[rK`}&'E5[e&wcr`\ \么 bC8 Ity0– IB4 9. ų"l5'F@H3pRpI>--ul 4^/dB'!lRL u/V&N%c R-q`ɗЖ}=fq<]yiABGq畏Q"ϠFlb!= AMO.J-W!GM=1w sH*hF~a%x:4`GؾA4<HuJ U}& F>P"̣(<@(i!K۾]=L{mZJnu>հLe 3iT'펷FNFOf Z`~2)(F?D朶]+> HoG%H^LCu|paqYӳt$"nr ]FC#"$HO)y۾nհa#Y"obL欩P>^k!(P Ed]\}-5 M%$zϼvT"i֐ 3w[R˃|i)kj޴6 Ṭ\H[?m:8cdq bev`|UןZlfhuI xfM_*'I$ML+G%b;k]Pd?d|O2Wl~ `y)]!^‹(9EkLP8v6>/>ןX[gcC SR %|jazO¶Qu(F__f")Q¬h]EL4l|`Duw(nѴg9ׂ D\#/ ܋l%.= CB8lX,,uV?-iF1RnRa1TKO1 Okdl)>;ûGNU+%kr@æ#{X^[uG)w{ +l+9wMF(e>TLZ\zVB!]8DRG"??r@w]7i`3a%];B6!k|* ck7 H].Gz? ܽ4?_&m!(i9KޙS7Oo٢42M4 a kYmPhU6{I(-vH}aTkUۺ %|+J(leLy})%#w ;G1Bߞ ]g6`:qy C2ڃ ¶WcDh* Gx],\FFԣnIW۫Z2+sA3˪] %%-"MՃ\OYnȍ=fu0^gaFQtjeA60=.X ٲƞPqrZUYؤgnD8/Ѹˆ"P eoȥV(ufg$۔NO&bSXP,xY+Tȫ%ilUQ?TG,Cmw;ZEDR:P;]ѣܣ+&^-i o?L+sKF]W^J"'ElznU/rPKR+G-!Óascnb| {BY1N C܇doicqhE,]_twԫ4J9LƆ\drӅFTǟn< !8MDAc#矞%38K8۔s=L$CkU馸554,t{tA2EoT&NX7=K*]P[mQ,R$N@MqGrtk߻p ;Lmڃ!HBB,e ;^PlRs3U:ɚZ]CR[RLT ,Ӱ#%x]Οb1;&@L/[''Hu nEaZLٯpÝ-[PN3Kr?{lV: u[ ӜX<+BHcV@hFM6 3CTBye;E]{BRh!Bۨ|g˚+b'uߨߟ5I5'Z/gyܥ/" 1H";#e7m}*NAqdfG"=@Cs4+VkS(TYB\'imAӯğH‡M^3m]a_7{} 3? ~i", ˴2aȪŲJx_@Q2N` q{0jAx7 KHͯvQ ?bz8Nbxt۵^lE+i)}ZpE"79:F "Ĺ,8s-PCS{D՗U(p,5`ɽE cO/,8^⻺'")Də2))WC5ߊbd+o`P5ZkTx?#LK5e f~8xf`Tg㪾TN::{Д-b#ʛ[9|q|8U6|fnobd@VSf4q`Nw#@ P2f_=Wh ژV.Ͼj0hoR_2 ?f+o9j"N^CP+UPYop%1rDK u64%{K~t2N'iHF,A,.:nWt=6-,7KLvS` ChzV6r݉{a,6"ĜiOU~Wb=xo!8;Z0Rh*W zƢG%M .`JLN:[]wδYh}9;^ /YsAlg _.-L$V=C-iw*%9$gNe8nyJy.IR+%D;zy69xJ\+y}(V.vlP~-OXrrд_]h Ͷ؝WU ̝g @)|ӓi:zootRe?6=iV9-AXS0J}@[daf1J֡{ϵ=\XOg]З=T1 ,qlZ-[@o%-%a}4jx5yR϶4@'3rQA VW<1OySS\;_hTN$ Z1*.P9(e <[W4ЫuhFI,ܲ勪0$)˩yn D+j}tZY͘&'hF% ً;YTx04[n(9C,3`=ܖ_Jx_]ͲՓ5sԬf>4w٪r}oYPw# p¥&jT`9U#^m*U :>_&S,ܩ=p;~= xf T GdNGKc=CRJhDyA!?J`-ձ\Z* {ON=#p|E_`>pd8ļg"RZ L*GA4HPiIq&V r/׹]eJƁ RQ`/#} c`Aan ~"65 EPRH Ǩ9HZwdlꌲOfKlF3kY;?1zc]bTOz1httpNx׃_i;pqgEBjWZd`UY2t H0 4tUs̤JqvĵJY\d) !G{('&I.RaF`ؘX] ZͦY#K-VuŅD ("U~!Fq W 6 Կ:?hab0!SCBh&Ѯɼv`?f/ "% Lc7-a۸'2ԊhR!}#*m]:<'vZj%0w#dJr-~z>ȳWqTWuEN(b)\ArE?~f>F+^˲q!!>йYNFx}Ve\0%66&,søpl2yMqQLtFN DAj/snE4]O˭x'2WQ9\x ˉC;eLdg ^ 7:*}]sTShNʗse8i52˔ȋ࿍Rm6T {sљ*)Oiebo ʁ-3ۑ#6ا?'[+z(%GZg"3lz۟*/i>%'BRPixSn1'΋O$")>l݇#B=ģ]^H(&]\A(ZG>bN;#cXM+~Wyt0Gg6`!ykXvͯuBDFnUm;($e٤ & bD\EJE $+ڊp p\[X9ީ(!KFƍ^84CH5m$,mÃG8˹Z*] ˅>to2pBd _vV]/!ڡ# n9zW7ض^[&MBe:",FȽnʼnRqCQb9۱i{+ \ЀgIS>SNJ`p@qf𿉂' ك.k/$@p Y@lix잨M+(>g `I0u:u5=6{q}Q'UR E]jX16Fj($ς ;:_ gyg@:AyrU H![?>iKaAs2r<^n;U`" >_֝)ԣ|Y M˛3F !QKཊ a[eGliҎ7%b3S(F(0cp W=a%eNˉ>ufh1b:0/7l. ],Rjc jHÒ,l!0&1&9&~5VwDkAI e]A3o"gD!>Klm\CgJ4~NBgo Yx_ 6 72Kh{و}Żi99V }^$S7ڴnF Q,m<[gm׵ҐyiBAtr'-~)^\ET6&-h(NS dFDuee*O,QߌODGquk jm5ӜTHgJ Jv$!bUrrRo頡㉔2ӥ+]:3ĀNj*8?1F dm\uʂR޼B}p$&&RJ8v&ƌ MtMn?O&j)zbRnV_V4iySG1MObR4͎ğ|;nZSALʐ8x@0/ FViId&Ҵ3M1RU7?}oMiʌ ư 4LǰstF+[C0=1ׇ7Rv*K\jؗ&J~Z?ji/U|+ݚg1vBE4g(;JCcí; )&:h߅L|OࢱnVA aB+f7m:$C3x3@.(c8}F K P\9lJmqse6ߢi6&Q,}%#V{a`~܃EVlIMu;NU-+G zD`}`E4~ӓ 'B=_`s{~OLJCbb)+P*Fz^?CSE1#ki}puX?gLZ/3 ۵(++fcKCa?bB%A>~ TF@dU7Cut;4ֻ6BNT%G8I^vSe:"*.~I%*{ƅ}KLu̷a癉#C#)b ja{\;h[]?Y('Y[]t;IS:+iNY*f*ԹCAR3pŘEhẂ-/ Fx&vsh;C&πL r<}!-jSmbz` Rd5ƭ+M96<z&YmP?lJ|s.wzw6stLCxΓrgrElPkzf/8bxd{}GIbeGdMaW+Ƅ "%R[?0ش|b*!yean2@HsûVz,G: +N{qXppM)mL ca*M]Q )Bj#+O[Pd.y8]Ҡ|(RPֈ+R0X4 F`tܰ-0!&3Ç-? @D@&@vWUv P}/P7Ρk&BKju9< M]g[BdCaPy>*Τz8jcyN%JP@V$wmàB@e|'إlwve cc P$b{q.X!iv<#y 9½3л8^[R {1b#Y]P'91)1?źx?S%݋@ʕ#1w=I(}6E -܈ gƉHK9}3_h8XvpmR!]\=.!ixa˛2ynwLup:m /J3b|y!$9uIi1o 85i8l^WC>V% 7\~h;hY> o2? )ў)kX׏0{`R|+AP&Aʾx \d?l:)XhP@`ѹl'͖FW;jpL1[ix6!-\ySú#*.7>X*}H֑GcgH7 i[GEco~6,[R4,T=~ ,6i T S9]4<_j{r ]C4qo誈9FB ~v 2 I3X͑V$9q9p ĶC,մ9X=p5X/:H܅8ϫo|l:m>¤&s* n:ZZ#՘eg;{K'V/9tKhNn5D55?IC !Pg7wf Vߺ )F 5].`6yy&ECGbLJwDd%9f&sD@geћ '׵A)m"b6]JuWNwpJߓd-c/=;{bOO 8H[sr/c"Hom!Ν!\t^ek3M?X =wp̔7w+UĨBkb:1{ug^jyʄ yL-쬤4D ϶Rp*28/~aO\P&^cdm MA))`  |'PŦ 5VxiZe_"A3 &MPlh{wlȃc/g!_OhSߔuɘ L_̻,J, $9kg#i`1|ap\ꐩJ B"#+ɍ0u.Fl0Pd8"N\Tk@*8[!j0PQ?_Q겵0ǒacKekU{ROiM*gSȝ>7]=2WkGFrSxzxrh*swt$t]xP-F7ov1r5`Sɔ$y3ؿt}ʞ!F#܄ ۿ0Ua99qb@\9eU3^ 4Vjc` ,}LEAүR !;g,I"*bOߔ9v^ΟۜS#Π g;Pe3@AgoN^WoHJV'0S*] BФBPn?vu]"&,Q3t)`T!1a9QjSE>6lÃ㼢?l?."霝_6 GyOsUs3{.|c=QGU`vXrͽi~Nr[76w[,wE2TÒ Ͽ!OeG]Wesb=zDN~n\ ]_& оkBEȟ/3*fGNV!eG8D$O }3^x wvؽ96·f P#&}x:^2I- pIƾEV+M mM6|X$FJ8/`4A܆fGޛxi%+>HMujΧ{MgRj]1bB?靓v{9XaW)3y Zo8kHb^%yJ*6їNv- uO k6H؏hR,Xelv }֚"13-'eӍtsiVʕ8✞\:#`(VG#]ݾochyyE|rƣY"UXhL2t"Au-%z'A-;ŔjZ-ƶOJA6BNJ#'1|jA"v8Q Kv)]Ѳ-,$5!3H9jaS34gjxә'ja[3:1sEvXR1;F,e3rZAD+k}4FCm4nPFwh a2#ֳy]AHUNLspk!d`mXsI4:G>y%nF\{8_ͽmU5q&eG9E#nk1vBYWs#K'; gV$C9\Q_wS*ŏOdٔO*9Q><}x%R J$诖1KT[bYARۡzxɡ渺rl?/i'Pk*x'=PEB/)>QdCz8.)|xu/ܫ%KMRuRyά_ xV{5"1Ä5 p+r[9-] :]2#YuM<#*fLZ\&8CL _Ilz 5Ƀ&}^~Q)(lr?Y:6?_+-(^ &%ܺ`XG)__k}#6)ё T [VzF,Q2DhqI ,gs[\4b<<=[wr`mk*PN1KD B@~n|}B OUDЋ v'Coqī(7@ Z<[GM%>VXG~&rdUm};t SL IsoE0baS]ub|F?`? cw9QL?0=#yލ0#*ݩV)|Etl(meҷVo<@‰nu@-mLݿqgܦ;5WR G(V6k17!#]ࣽpg4˻$,xoĕ}[1Z4N\y~toA| cꂌ|\ I=Hcսf -^[ijya t-qs͌v^?Py珅B?gQKYEs%Ҧyut&nÿ[5yЙl4]/BŌƻYRލ)t.D-6]`Uv`j诣)Qh; OL43EםZe$״yadץܱΪֿZgBOze!.5'+&DBs0ߩ&6:ț]?)::rV&.ȧ̺?ѠIՆNen1D@cS7-q5°srrWU Iw6Sֻ-UR@E:}\Fseâ2ŏR"@ EJ?SpSEH8p@\ՒBz3NnmP(G#)I/u\j~ 7]/\zɇҦ _壇 Fi,@Y5A4[@ ڕ\g0oK*s(a+]Qۻe3(mXŗ%&gyBP3u[lhߊ&tW,m~li}fo3JSpzVǥaޫ4Ev\%۳ ;R񐝴i8ҬqNi-$~Ƨߥ[-4#͋aO ȇ暈T(pm3v 剟1^iU!#fyW+wz#'B&Ns"+ ljsjW2~iUF =>U|T+k$kHTGeU'ڪ>JH "$VBñ| &8fK)uiPZ/K>nNIkF-ZS}s?Z \7Q$xP)c\۾6b`]&B@˾6210doG픟RWNW0+}0lb_]QB&S7s).\VFx?+oWikW=gjRI>KHѯOe?8ʥ}yzZz/"KdjY$IO8".nےpDӟDjEzos嚓Ϲq(?*=bzb&y}Xا,( Jlƚslaũ/ry]@D3d]ov[-x.33W 1`_iapY8ݮZ s\+ ȳ_~6+ìk͐i8?9u*"m⨫CD~6(:VJSuu!3!y d6[VTt3OKb -+ڈMHr*qF!\XFY#^Y/:iMEF6󪻲q=ʀ0OI ' @>G'/hX=7M i>gkb Qq@0D,;?J>";G&W>Dp+xjs>֭[:HYL%׭ږ Hpnx{Fb* S=d,bv2 >Tx#__FsAFm.f ;-%_{1סٙ7"f ^;DEJHtZοg ,|;T\~z|3M;G}FV/QTiRњSTEu8TꜪmCzϤmm_$qRY _C*۠(2iS[Я Z#G'H@V$K^7@a<\ ?&ɥF[ЏNz9܋t8 08X%5H tG1l"{6kS|%mS*4vcC,Mw #8^Oh,1=5q[+zR;G{ewj`LhLX㤒áڞ{ՌntA)MC危̳3s`EOTMKlW!f&1qoѯQaҋyAQʌ^;iZ R>9th<]3;3 @L>ϛUTzA=킫(L|*Si4w FdH<:1==Xڽn-y15`S}p-X( E2k* % d}毗"QK.8bS'ΐ2$U!B_'{QQԒ\0НANNmd]] Q 9]h]$Pl^_ #8KM{)k_즰zݵհ3a@ D~ͩ# u>anuX--']?\R\~ufe)StQѭ(NzN(A(v8;h?ƕ]WY `*Sw财xAϛBSURQx!.=}"ٶ(@!D`_2=_/k;QŞTQI?V{g^9 G1m4ZQݫ=BDl,Ӛ~eduYKi4gp~z~y4X],KtZnt VIi91B'Ӭ|?wp`.,o{ 95ݹH !ôj{̕NB㽍+ 'eb+̈́y[2U&_]ij?ܓ O@6*˩(ogCb+d$y-L*B.&hù R?rh& šȫyxJtieYVwg(~4W[@ B+IH?]Y -U|)TGjW:S4Ͽ^tDSpk#Ru8,6 {5nTxi\Q"6;ZL^.b(5l4B=.{8tE%TʾQ.crp~2ٯR}:mݬr!}gb ɪSS&VQ@ov7}( <.`P6bs3O@T{7]+sP2*%hHp꾝> ~k8]jޱ?0O)GˡSj"fr¬K1Ark7K4OQnZk_8(T~<.1UCP$q5č&huv XDrQo)yȌCU5d:7SQ 7R|`*S}c{Mi_]BLUN=o;F+S gܳӠI Mu-& >f m1> !D`FKVJ#z\c`i#t.t2cYP%1#ZČؗ)t܉OW6g'ZvgVBr=^̲uBmaƄ>*F[k(8>C!3E?@S8u??] a~iE^l3J{{URn ՘Zy'Lf.@QeBUYv &|'Ih~ܠ[WˏdI8pđ(? |)yڽfzҊxj{}yZ.1@EAfؗ\f%S gP=>IOmie;QFRPڀş`Ҝlkޞ©8q+nk*"%Y,{ < jPuwt<+.ΐp 4O\GVLdige[U8$aZw S7?O1^>V%MV_nrM&\g3{^{h-TٮMݜ9wSQ5ȉ;u)rJDqv;9}NHl 7 (v0Aw:v!4dVhssɊLd E:ܡ\c9g=Ò"P! Xpޭ|V*i) WA_.^hIg ̚#$oD$ ec5n놝Byu!+-s m1M^?!MS\ dI֗~#y1*[K c{oe)=Rj"p?sG1z8.FI>*@Og#jVPm}|}.udO{l+N_ . )Xl)m)k#brmqMQuՈu~lFI\~Na1Ĕ]>mhP'?m04'2N>%.)nQQV>8fO_P o\ClSpL(9ja`O@¿bWܔƉc豰 }2 /'`m',:m%o)auū,' ‹xu `mzyn@%eYcad9c|lnO4_)ܕjdg30mzxw|$[,+:]8()ZK^KfXvջBnJ dr5m- `#M1yvyhQ Mԃv]I@=2 nND֠ u#ױNu'hͨy]5S!"aClrni'ĝŎ}aqBab9p <ѡ*zvM{| 2GCcD~ݐx|!]]9`+)+!y" Mtwk'Z-@ sqO.V&eK6~!6hs_:ؒϝ1h1 cˀ%M9Hzon5<gs*X PamBNO/i~xfL("Ӂ(vsZ-E4ޡߠʻ4JhGDDّ >\ҭ+v:_K!D},#ZJ`&5,9ѷ8spjGix\euSd!lSnЛxZU&brnp?h ]ḧ;VAxq֝VlTąBX\?[KԄ@NuY w E.؟^Vʈ'8  w8,b&Qծ q5QCEXp{W% EntM g5} ŒM]4bvKl]X @za4XGY9X8GG1p-lK]}~*YIg+= i m₳^1sz/Kb!(XGҙq+hc,T[7UKhnuӽS~Tu >\wE,Ԇ |0&|ϥ搞lGڒJJ_o7ւ0q;V5F TY0 W|p\RaSS NS 6w_i@ݴ7|+{ =}7k e6-T3ɭTzTm5TH V^qT$G}dCrr \kJQű<}KiG  1t8Wݞq{DS>vgfe,x@Ƙ$9\$:[dO>tޠ#FmQh!UR r/Z+(跘NOzEq#*xB4sʋjM.ʋ͖)pѕt >U_CxB(uX} f$3!9Qmz(!N%lɶ!& #6eèm󚢑Fx4 =6z4so<3TSӦ,r`fFڌKm}ND ʙ84A#A$'8]PqKp7&֚Hf{"DTN\)EÞ`+y?mco›ڀ U,\XD,@cM v}+7T}h1DG]( J$ ]ò*g -NJS{,}Y #u5hߟhw,->jr-,1̧;,D.-[Ǧ)ZLX0h]n?:uNkEE  "{ڈ~2?FB hATR'Ǹi:,g`& χy~#Z0iX5񇆐AHgb;{Qc[dbupG'c Y;$pi+B_=db'TE{m &ӫf`bY Ll<؆Q4;PaD'=. L OqgAB }S`Č^0n,r$VTbKqHWGh&;YjYuH;\`6ª2 +RyFt(W$Q<^+tq?|tlb>G 94'jDh3?셒$6i9b6aL?0o+0cq\fW%G"oa89TV=g.[]l݋9vmDm.7r ARy OݘG wVjX9P0j_MHU> *pBнjSe$y1hJD?'ÏLg|i%ȹު+iWa6!nkUBto1mې*ڏD֌jV% j]$kT_:G]IJ(]:6dT@2#趲gBz U'ΎBW.;RڎLx#K^XDi{2RvЈ!^L_4m=}@V ˇ#8_Rާfe@&oXXGSyvwʘ-{N6di]~&,/ȰD;ʃi7}YoF8H-*}Cl.@% jtK]Ñ0 x,kM픆CUe1DooWK1'nFG-΋S V9QW;\nmw'50X$m$q6QٮV*Ȏ%ۃ6c=%m>K[؞k.NxoDQ wOO *x^|%,Z IT%@HL\NS @p{v` 8s!lz"d-;ft.H,!OHK;bӈ}vpnFOsV,HQ}81O.B5 "ڢ^uظ)Jf٬MLяEd˜Ee⨾&i('zt*`DV@2_bj_ [ pb2(<~9T1k>UZǾ3VÊds%Ol"~:1hrh RPY/\svnFQD* %]t=cF8&ш&RQ ŋlX@X.l<\n~7X''-ݪ7@X9ء[=F}QztuaP[Qai_ K $ڦp^sLVܬ 6inv 34"lA4NC=/zAK"qy{Yvc3>Up Gr:v \V[{(}cZW볛q2pǗĢ?saJ$«d (}u&:&$ӛ)@Ah mm# c?տOV.q6 R&h)Cjq (mgT VBn#ES8+s˄d~bP{Rː겐 硣ݨWATv=:دfSz`0A H8`It[;%ʕ& G]tA֚- \o iW?ĭe!eUKwEpUxg݂zg$B=@T֎.U)`Nr ӫd dۥC9jLP*ic!,6TI*L\ZHd< {;աB{t'̯PN\yw]n[δr@ b-jr$E=q|iy3qhbR'gpAHh I͏ Rp He[djԙ+[*LʭU\N͜m,Xyxm\^h_|f=O:/+=#T`b:,6~BCC"Ckj1?[U]_^=&IDz+H^8-Vo)m-a_ԿoqusQ5A8YyTOb&A^cއ 'wOzV)/v oGCyExljLz((J`Mf9y8XB* gk%"Rkh *)yF£Lܞqj"ط/b>T bW"LTfc%Aw(rkpa;bOh ~w|b}E 'Kz2;ÛHlo: ' {HRe"" Eǯ ?/R'[ ax%!p̳ v j xeԑ% |`(PuzmΟ[ ^*?I52RbNls,7mOc XW]EzBBwo ]v 6rBJɫL1|U5y:2 u`Qɶ_}|Jj xb^MznHgb:EG6&UCF8ijmcdQjșmO›JP% niƱ47/>( \ۓTQ G `U4}܈ rH88Bfx4֎oS tݙ*`NIx/r`0=E@PDyZZ-oM N:ͮq/:|I#RrHQ!%9(.]*J*Ɨ/,֓YxQ<X S@m*+QKw.hg]Y+I\q)DN٦'d>KYu1j<20j˶ހ7cJô?<mB?pH 5ڀ&U_}N aªZw4?Ƽ>A}CmToo!i14> 1x5n`ߘ/e \jZ^T4 Se%)d ,ꇉھu flL֭!'v|FmTs8&@ L Rp~ m5%eާU@4a5>q&ju*sfgyqG\C_OA*W^:HC>i@P6ne|\<;R+1 N>ޘT0܉LtY ]Si&?0\^j݀V>lh7nZ{mwzc?Ycih/QmNJk$E27洕q4ZjmGۡP6Z)pJݧ,J;V|7ۯi PUnthF\GHĮ9 {GԔ`.bh;֨u%O\KHL_Y^\yNve-9K&?8ڼ wKӉWg[HyP_.?sEKi$OMjfMH1tL |& nqe*O̿ /n&SwK̀]l锂u2ck8nXBiz1oqryHo j“xW؜drō(H  Џ/rxȚJRis:c$&`hf#'SZaMO?K]{ϒFQ!KqtJP1keM@ i;bHmVp>K12P`HqHUgl]E1JkAsZA6#?s#ZްS9']Ng1KSk]渓{6| ei?!U U*ч  e!x5jWDq[X[K}*{T׎%tY9X˾P=:R ~Tϵ.e1#b7,FB9%eΠ_9/.@zWc Utm*_YUPEc`6f0.U~W, E`lt C#4ŎȾ;0d*;H$;h= PXRhb_?~#r~jXMl : R&QtZ.讱ozeI৩Ye;~Ӂpq3sC_mUF[4 @Q,3^]fpvJ+n-zy)YcZȚPKMύœv/rEI/7zea|b(E]8!ԡ:~3v=KZ6;%aΖAF=7;f[an ,JO 褤 ?>cڼNl,E1o'&˻4{UkvPU zMr Ψl*qN"2yն1?D~;!ބGBR&_Х{Kv bR M>YdHl l{ōTwoGPrwJ .,֡r;G}d\ )d4Y%tx+NIi(eUdPdCKx8+0 y=u!ߍbd%[9=.s@ iJ/NiN8ypf`8F}iY.SnS }@ì {U\f.A+gD= :ow֝9NC %l /&Ӎ+湥Ԯ!CV+%ɁU旜r^/ݮ+7czo@ӎ5Jn0 s ӺȀբt ±5'㥔qpCaF8q4,~1e=jel R}D$C{'u;zw g Bع1G"pT Ÿ;m`N$ *Qq?gl2K"Z-/ M-٬8T##vݏK2Yѥ݅%I)śQZLGddɟD㯉&ݜ eYWpUfݬ;V>ew}Lt0 Ϲᭋ_D6Aks?dD`+LAYXin_XΫa xI=LVI#doE&߅UrVP _`ZqNI` H1j@wr&6foMp"*݁e۷M5-gz_FwGTzt,;牕 tg8חwPsF"ޘDjMq+3xnL&,i .TyXGLp{̈J/oJRX}s1`,2moyRG1U'g7 *eXe@%3Anm]uM lA#ک54_ddZ+f,s=Y U̬mR$ ? :@mf+R fϑ_S:8D;y4 KU*#"FɎ+<@+`/NC4wx[Ł3G:;ٌYq6ʳ!hCkf22q*^MXe|LR*i L 8ŏ }dlzeW1d›2;"=ug_Bpz1%/B;wT[e665˴%c]hUQ981Qf+6f>yU=g&`K}2k $I?O!}.;3qwznE8ݖy H~=wy:Ĩ&I ٳ_.=6lSd_F$| 褦 ʓr-.BJ~ƼΟ'viaEM!mwn_b/긣Kfs%z%J Ӥr_w#͕S$<@ʞ6.I,oVcX2E|g :4 :3]A;a攟+K#3}k NZ`)u u\dKA]dH "Ҙ}#+mڑy9ބ/KٴM7h !E*ҭ|Ter?Ka}vS(_brj -@Mbd}(Tw PueuE̬*g%t`d`毘$Gk Riڑjoxa|^܀EG跼)O\3kL$0"pЭ}T4򓫨i|UC˜ "us U휐?D"  A0*z8TgZD)K/ۙMf7[a߃ǣF}ZgWyO#}~() 8`tU )$tV*s`)%z? Hle2yjOe~ 8%]s JlG fÍJxϊᣎШkD?!/u5oY4q}4'vQ>}7x D/^Ӡyg%;X=<2NVQD %j~K )ͭwdn!b<ǹ/ ƭ +QN (AH*id'֐3)g7 ݧnOW]a{g">BO8IOv4 ?t7X0fTc3t`RvhhIć[IŴJePlurTD-܎hF ƩJY]WP`!!g?O)5`ޱh YqpIJua.@W oM_ᚼ '.\͇9_TP#4Byq6kc(: eہ'#LRNXx#x^ bHU`1zZj*cj@uj6LJg22t\)Mwd4rkr\Gi/uN҇ n5IԶu#!%U[*\[, ԝk-vC|ג7aۇRz3F.ñQgԤwv B_H8] `^mu_]mGm}'vhQtV&gN9g@:{5~>3N7Ҍ\qD}]>:LMӻQ8j`L{( =pNM ~%F6Cә QJgGmi ]MˏO8)Z/G`PB-v^0򇠃xX6LǜC^T@~Y\[p_ʟtx~yط ϭPѪF+RU^7K. cN}a@"|y BnD'IjUs)]!,6}6%[fy/l|b4K?1n.}-_ҺM9CVhܪͤ*"B})RMpɜsB"/RBztOejP(9 me3Agi6x'M%nys5)Kƛ2MiFF4xS^`.1s%9s#'|YPKf^+!K75*IKoUs'&*'v`I~e-]bJC!B rӝ{D%'սT#ܱm9OxTj`/[CZBK'Jw;.y;~EH,\w|s*f Ia Sp3y!D 4O$sZ1Ƣa! D8d,ڞp 2oں6,Á*DԈI-^m 5Fݓ$gd<4&d1/!sSO'j v'⎂J{ R a6䌕np~d@bQsĀ8Wgu&C2*}'7B9uD7A_F@_hk/@kff,ʖc79>#M|{~kb'*>&@*F;| sgr o ^UklWb.2$@>™QG`GV}ΨʯAWS{ܭ?"`d0*l,νJ~YJyuDx!RI5\Q)0+r֡u *I CMz7!ߦ.99VˮcF2]}U[Ro YPc*Cl#rw.EPgq Ur?My^]*@9 $S6־,a=d1Yq^&cZpNa?9B(p˅k$1 lA֛{&%$DA,4Җ~q9IiQBU]Hs4L$oRpbѩ뜓a9r^ơK95z%{3|ոA~Ԑڻk=P.y~&<˞.VYbXOwaG`94p-`'*6sڋ=)V ݫg0B@&0-exi2 L$Wp!\H!oE˦uG*M8]9Ĵ;~˴o;C@B%UŇ%<E )#4XGPA pV S/>ZC@y)7AH;BR’?>v͜dE8O:dYbO_T![8Kj/<48(w\R?YXT[}℞6UޫY'0j|q8k3tyh;;RpUa%hwڍbv'L2yby%9z>􏒽rIB)MMt[#3HL ^v3g3yz՝5ҽ/,e|9Y*Ѡ)a8]r?1Y; 8n7hKScbH-}#@h뷧UuԍfYa"4>K] AЧ9br9Hh0ՎO7,xW9lDdrL:M4Z5jZ3ԑN=[G8B'%x/rhO$X NF֤+|REKO,#へ>I8.M4T. e3C]e,OҪ] ˢ؝R eݶ.>s2پ[<Ҭļ 7hk#_-?3HB!@1=(G~m6UfE%;nasz.q CWA2n:p3}`iNE.|GnGܻ8. -]vƒ:?N@$A uCdysqD2LT# # 3"6}{ @P]kMޅ+/p9ݒn WH1a'0;DLB/oenaÉ Y'ĶZ|nQ[_[+ ۟?ֿR4zSc!0`o kLsnHMD!3H@|h|ONö0:);Y"+ş;)2l5u;{&,1-9Ds C1idlh᪲Շ%Dm#ZxfU?ң0=i=gl,Bf}5Z blYZ"d͸xsGpXЕ2]zYUqߊ"b2l,Ygq|a$ìY[SpAĉ+~]Uai+1`AL.t,G_1(2FzRbksvؔߟ`0555;w}0Zr9]5H0,j2IGt0:NMɂQ/.ȹc+qxYJ%Y 3p=k"*拁28t( Uhz .di M%zܥfSoCIR.AݧO6WCD6mȉlNcqH*l> 6NM+=x >UMdqy *H")tMߛ09#IcUnfqe6%ט0w\Ks{?7@laE%i1:Pgؑ^ reQV {lM{"˨Сߣm:ghunAfk $n~՞T7Y,bEiUE]QkwWx CRSGR/$'EnH%z[}v_늷o!T^ {UȊ P՟8 +҄&s'd䎞F:'8vwbpVus坅,`)9Nm?6߫vV(Zm~/^b,>F~wi&/%S*f}E $eEHޟ =I0\|9U?LM%dJ\ܙLBrKRGp*yL&՚>@]L[g+ S絡<֜RिTm `^2#wd-98hg0]0 uhXI#ƿt<[`gb$Vт0(ӋYC:2996Y:FLQe:<({̉z*Z^f t|irӾl},zV̍-re/EG=bj-nj92UΔgӈ@SƘp\^Ioy5.7ĭ|.Ҕ^{k,xE\=9z~`feەtFBwJ ER.+/%C|1٣@4H5tPo55f(:qoy^43la<"jA2[  fOV#޷@@p򘙜[A -&Ga"ܜ=3չ6 i^G0׌{ɏ$dHɂQ 9|i|󁇣d5EjH7?AO#6y$K @Ll)OY k3̽7jLm yz~"J[߫8,?2?;/`G+nX7r.!PN ЏOM8Ƞx TEI:^o"M+]'r}LvNpHRO+[CD>ҤUi 6.x o*-v"Wb_5o ؗf^iR!Y> WdNq C [sʖq#CaVxdMrPT{Cc $IXEC3T:"DƇ\τ!I+ \K66$ WIÿ&DȗF#A#.ۀI9j%@ݲo/lʚ|{/e GC y[[[(ŸE= ;Uė{XeOWs7I*g㌶#t%G^ǮrhswR%7؎(~?J#`F05N(g %y[n-]i/etP- gJ |(bjgV/V[O_x :K'T cj4njA΃˞A!\|#P!R.jDg51ی2$jZsCڀ!R=(3¹x*BaHop3N-hTJJ.SGg&<Xο6D  :w&*-*[&6yY9&ğg]74XP/wJ/M0X,5Kz8!Vң Ξ:+ W;z]V&:Y:N\P1AZ* h>kw8;l߇ c_b d%v`HB|'vȓF*u~].n^7m"vz"*rnMP!'dMkfRkJ% f{ 6H <=Һ''w|nHX}+ |׾e*Q_ۋ&qVLY/8"hT|R|"zf'JR=$AMFOd<ҔAЅ>d($u7,JБZ6<Ҕ5l =V:xE,DIVpLqy@Y4~Kr4̚'i=(rcx) W<[jV.& %95ډj",\yC*ЮT}<*gh'p?ݿٷ9f n$GhVQrfd4-Z#Ėטq]PX+38bP؁U "B@߲<Mri]f'E!LUJӞiu]n7Pk]&z%qG`!n-cJ⑾P;U(i9S _Iys/3EN>RS:HrѦ]6bOh ŷOxz@# yL5լvT3&!}7?^uwq>_Ы ]MuqSő?^r~b)mr4@Ѝ.yd};lIode"DŽk$c7Nkç5=({zb.K]rECYfY?Gѭp- I.iжhjb]l>)"W:7#Ř8ɡ=_XT~KowO{ iW&'9Kz"BUQ<A>9Y_L_OL$nX1K_!X9G=b!(^l?\xEfrUY:r䷸j_2||C f#5iUC?-*BfM(i?=6J烮'5+W5TΆS.|M;g‚F,:b~fZ\2J2ޜ!ڹ8XkϏL{>|gHa 9A 5OQΔ}'bUݶj }#@#PoUA*F.֏pV7T!=wsr5L;P&}@x嚀V蛽υS~"69èAX_w"j˸:x(} ʷxPF%sgS嵋'S RyEK%eCAB`ڿxtܒn,PItW"ٌ}_ ȕx_1 ЋKHA󴵬/cyeYLeAa7iQwqsY#!Imc򙑏2gXK< !Ŏ?[K}zUهY`_ GN*㌤ u%QH1>8oQ÷i ѹ=pda>?Xj fvU)d!&bw A|\aH S ,-CM09wgB0 yo*齼#m#vξIttFZ5mIGGqm=fӶ3G2xQ.Ӓ>PJ2Uv|aY+$= "0ɮv˿$ZjGl އnKڟ}{͑&FR/Hݚ]wV<&eF8+xrdlfYMc<,hé2Z 2_A4>'~ V2pn_Pl\dts7vD6h 2CY}]s6n!D}Ԫ]rAIT|Ui!>v$+MҸC ϝ)h ړ~/q"tuAT./foF) l>_9JeLikOγ8}1M;P4U˜1)qoИUYȴ.W!#̿!-Sa#㫯J#OrBxs6wy'?/"w+Tf{H>+F]ȥyq{׏2D1P̗`& i:bHHn8onbGARej8و ߆htG.eQGTꗬdg%CdoOJWY o\MJfmMa~25›'rb;fx:㬘s;ؓYuUX~00탿LHTU^b-UyY{*MPȻp HND1lmB G9խ\kxׯBB.D",f7RAdfALDCرYQZ6HP.&pDY0sG@>mzF-bcSx]\F7ox`= 3PlFO8ado՜LAlѮNƐusW}V#a1-3^!]z7WOyp>rI;*4Q32m"OcyVc8#^3daםҩ.`u U6I~0暺IN9ojVå]^Q_. E$ۼ bE`t).s"NWx ]anu`]ѳV>H`|i5g%ˎBYpVE' j_Ry\ l gh@E- X-'1z,T\cDqk0|qsW$G3NXΠD~dpd[]0>2GĬk.$b wy <kq=Q?:ڥjICNGo: ZF]{Dtbcw&"=ݴ4 THrkK\8_38z$+i4]>gr*p, /9ۍ Ny3юT quLF H2}~@n (:-R$Fp+ܓ: 7oD5tVG/M rgUç(Ay<F:@H2 ZCf:u̱Idc-1Z;*;Op,o%A+ 9 Xԙmoˍpmo3Io= gF#"MCW\à%^xf U ' ,5Fc5P֯l8DHtOyj3W^y`^G's7)dV xs| ʣZo L6 5_R'AeɐQ_\/u~N^墴=BPEp6)[:VbC؉+ r]PMud BajEwD/beFВ*K T|pqTH~F)65)߹eK7S@,]NuLQ%Ep' իv ^*xlJ{gݩƨ'gө(45eC7@]v,C:Q'Ae-;x~!tq6oD F3qMN~(zW5`d`-L zUiܚ9miklEޯHnt4s='&"e*K2E1_v~qG :Phc{EIH=;oU|O0ѹ1:Wd܀؉}| 9R|g K)l7kQ̺JD;m-ư\I(8#dFg++ 1 maγFyMŔ1sQ^3EegA]}=v1)wC|Jsۤ@HYbZ4 b.ҶG+&+Qɣ C[Zo ] R''p\Y*TKb94>cNjBTt A/J퍱/rq+DzkaDjח-VxlQ7ݐWPydz,UE6 I 45-|n yK- TUtf 'EɃ=IVM L&C!WS:< ePJ6GBRɊ:MEմ+ϒ4c2S0nJ:6mMYFoz 0)Od?&*fNt~;N  _R6s'@а(wru;nj4"B^ٰsix4ޏpmq2׉k4=_@4Ja})f؉n~WDG@SB%|ll)bAA,{zE{V`m=R%i(?$be^%x]++JXw;B=mx.𙍜u&dX\ٰr+uuwccFYZz߫~ nZzrC 獺qbhh/ 3f9x/@k[l"lq_DuOo#ڟ} T[[!b#g$&B @1$&.YO2søu<~,yqeĜ(827|#tGD agOyjPPkם PjrÊAq~ H6.q񮫗췛27 %\Rɒ ?p8LG5 ܧS#sOҜ`1M<яȨEDSΪ.!$}fRx|hss$博&ƅ1l /V5!d'+'>§}<݂mP6͟ '혢\\g˄j/Y/ .-%S+8t5S^l(`1c}a&I7G8|!LtsR  ?R 7/HP>Єi3 )IވCEYc*͔p-u@|ѐ\WooO$D1 w(V.&vZ(\s %,'9䓻SK/+d姒0 _M-;]9m3єꘋ0 2QeQ>ۊd=.Dt4/ZAym2RhKYcBtg?p#h(S/Sp6ɵHdsrR3(4HdYnٿӎ*WKU-gq=d-[ŎlN'4pw"ᅅv>BdEv!P¡}k>}w7ZLTx<788!-rG@ 96 'f+(PRFt! # 9QLşfmȠWT/m˳dεqð7nDǞZ+%jH9]F'}YPdOtP&eBHbFe¡+}Z{\4!3gDkw)AQՒBl+mˮcӈA?.%XHy>t*T/U-S;ƢiL {EfirWIDGƸ,vٓz+CbHok^; L^}l{IbGL5ZZg 5)T盠㢾 gQF^X)GWCq>G"K:9_+˦T>ׅ?KQaOA :K_0r J䨲S<"Aivo;[ӕ?~b$*S rmV;c}^I 1" y;uW>{ͱ;{fm8PI ªw2m)|d _n*sVQK*|TL iwһ_Ʀ ȐtNfkjͧ ,T?ͺ9Ǣs kgS'om[)CYm66gi-o|!ʖH:M8n+fs?B6z"nW&9 }5GnF.Y( ,O`ac[N@8G2Wi'L%vY(y6JpkUD"|p3 J?F bokqKj^Ҟ|+ آ.Sz%}9.qL7suO]mt;HH1IFBqDUsMca N㔵02QcQBx̺,rVu AgDk/LV?Z*=zt^/HRbJ :RSK^Igxqoog63$pFFEY|f|oa3m`_oB ͖<PsnT\JJ/cryW܍)x8<^k茋؆&qsWit-n2^l031}* 1 ?ŝ&)c-VWP[8=SK N0Ud% )mW6u.+A-</YEI8=` 4J3dً t~Ʈhb&-D|Q?~olŵ}Wu^&D ?tk5 6A;I'CL*¦lܸΞA1:,co\//J4%k!@u_qLaג% Z@5Qeg t ` =-w`7! ,Oy8%sVԙDUl뉉wq9R\N1ՖMW0N8W6mQ;}M8ev ۭktO5`7'ZoQVԢ8,ޜ-B`Ynm=uC 4ݐ,TD${z\i1}c0PZ-U%n̫jAЄljiG^}6̘-]g m"~1W!IJK%6~KٟPiFWGu)R-7s;I;}_ӎvh[,kͣTSyyJ{܉vN0* pܘͼěP9&ZTQwqNĸp 7`"|Uqc4)ap}PM?j )D٤S#^^)YO3W3 |fD(%<}~R;, [H&fiqܨc*A4D2׉_k)a">2827|^5WD;إ |qCz-&(ܭQT,AA([0=רr% cUBH5F#Go~f`?q-OxQk/' W@$ dy|qÁQ9|BDiyl%HR|<Ge1bHt0YT'SQvsk] a*bg8pM43;`FUH.d%_~npݗ8lmrhrjAߎ:Z*9oؕYY9.R>_&Ʉ}F`7G?x]||5پ!BƤء^3t+eE=x./hqcePJ1%ڮHtU叵)5\PՑ+#/[!~fuG ?WWeM9„8;B6@"3<w*OLeJC{HY4U~D䌋mbp_/ACq!elg,GP/Ɖȼ~̪Gug~0$TXdL At+Co, KjnZ&M ]Fq`uE5IAE -/,7OlB>._r0:ER%?]K% hӴ[6 ]_Kʚ$v 1ʪO9o2¼ `=? ZBs-gX{]Db>ZU' Hc:K2ېfK9eNx&kVkկM$30]*#uҹbO>`Ŋ 5Air8V{q"wC'#\n}>[ո]la&d[bNl2J)F&hl8W;kYHi %{7ŽwiJ?!.*gk ɦ.}i"9Ljd]^/Gm@z ofЄ3-`ޭΨ c.ɋpfG1{AЌ'MUZ__ȩX5;|J\kţ_tZTZZu88`ڇDUUർU+z"L"ɔH +7}?[<9A3bŗyoÇ }r :'07)4Ё 䙷×Ix3&J闼]])J*1˴J{pZ1`RF+]KEGE02vu"/lpd~jY)cq7dg5|ڇgQ%3h5xVeJAFD5Kuz^[Yc7/56r&#m~(ĒoPG0t K/62$yW^CcE(/!8\&U;i+>Nxq0>B'^4+xwj5k?qzu]rU>î؇ҩT4S Envʚx43+ƾcO֌l:}q !L熛q-< Tvd!1wAuwp =OfCoȉUesp5aZg~e^mmx+J^$/c ou?ʦvcF[zm |;Ժİr1=oP =#Պ+S׏D{\K]U6rG)mg|pxO-I_t}@:ӣ{CͽZjƒO \eMEƒCL6MX͡`s8`TLÝI@T pspa x>lE+"?SϹhQ81M;WoGDe#|Y#eF0|"J(hZ(?-yf`.9W˦$*5b,.Dhkğ./w7ֆގgI^V"SYx*v.B{ID Fӎh k;fSPCDȰxƜ;ȘopQ1kvHܰcT)vubnJOe kxgDž /uԵP(w>=X!3qT{(dK-'/䟤&!}o^0'skcPX=X_'-XEjur]2]?$~A7aZXNݰwȰY1TȞWB4)T/Z׉3>B6AuŹddMp)Ah q7Ed-:`S'4KsIldsRAԠz9 @359Jm;m Rkt[_(;&/d#ە!$7r?Xzve-9#d\FI?7gG{9Cg:šNg84/8Q8&.ءt}2UV[xޥL.(l?d84=lsPH=7iM#&.q/$,_ \M8{"Zb.V:r#AF@0-=`@G k ADg$7CsI,hx_(FNVXֽ]P~*KÐYA$7}[!yς]W$,kAJچ~J>WkKR7ʾ+-6<ܢxx$h91oIJo1vfGtB%Ds8: ǡ^k(%ZuD;4a !zb<ʼnqF܄$i,T@?1/%xyD*Ki CTV&]; *Wk]lL0Ӆf/j"DM4\7An'!hovp5Cݞ:5bl)URPdꝤyG娢)QB-9d[Efvɖ姛UݾBR@_K09gzgwRBqW]A>P)aXL2olqqDie2}#UP RWNJ-O,DmB'bӐޠ,~YHF)}\R0d>5e?l022* L Y 4!R.SRv[")7h#mt-FI&-`uUm< QR#`1 c~z*3u$­?o +Ox/Q*QT^ҥ>Ze^f"& R M9!7ڨ*[08lݍS"D?]z;yXyM9NUA@sr 4Yd \|sWֿU+x_[pwh lVO{18޵S#s}%7:<8%S1uQsj-9҃zFTԭSwhjK)t> G,Wzb>p N.a/):ZTSs+"pxa߄Y42r_0$0o R Ws|3zw\'7:5W0Q6F JKfew*e3UmM"74^J _㊼rF+ɍ3؝&^o*8)'VD^ 3gL)5kJϞ!qjfċɓ5fwc!5Bw@gd8u8*_@gCR{؈(f㢣5Ha8Xae`i?ΰ"p[L##7uni'G+<(aә~k^qV`]TWs Y2)څex* :-=pŇk5> ۯOj??ۋgۺ -TSu5!8p\V%U3)(~b#M0qU g1"8DƝ ՇʽE&īص:%hh@p@9:Xio4i_DzvOGKLT85اBXOƲ^l;)Zv:[K\ W.sX+n)Pf: E+7*1hX_!E9Ͻ]sMct' bnCxK5 vNEZh`0XmWc]^хO]t]gu(= (_,X2=)D+mPVYv4OV$-f\k /h%xN4oc/o-=]`%,]'E.]X;SPa" N ǛxJPlv t]3zW &|[)‡`=0-{+ mz{+c\7xoNQͪDYw X^["{;: ="*PYW )T1_[~w6[vGSHY%w,nÒ'uʀ/CΠ),l> B类[kW1*;&l$1<(c8vxu-7͝eQyDz1$JQE x,K!ջSgFaR>8Qͦ'AI>[c&Ja8}xq9%TX_/IRjPfe-G AYIM`1G\9z JmM6$Lʄi!B<Ԡmc*Ci?ٳ "]qWX,fhv{>&%>=q|_v١ǃi| (ۄziSuG%\kn.W:m'z+~jT>5N2[~e3v`țƲK8? 9Ͷ m`Wiu0O>öYDRd qk;Ooea&ܝ:ױf# hz/.6~Z%˨#_˻v7_F \dGs,«LakD}d^2N'7ݼ('8kWmk6N_n%ABSbaӾіb__f\KM2 Lz27Β'%ɫ&mfTܫR0 .W,gZy? zo3C:hαb2m1?|[6]_k[*~ɵ=)NGUp&-lh*PFn`|F 'i2hO6*9)`ʁ/t3a/ΌֳUzIÂ){N}#ɢ.l>E#(T2G:m;X:y[/!AA ǗRDO{.R5vvChw9o3ft^sț\&z@ q9fОDQ:93V`VD)5gE ]=m;虔1k->$Ӂ&uOjޟDfCfyLi4S{0DHfaaBp:xoʓ1`ꖚMKBy 5۟ke7WR%{~-rTspV}ҟlWw[EmdiYQh$ z7=lru3k<;EIEhrPGu.MK-ΡT^wix_Z8TO7c [¦ vf/`̽2Y.kBݵ6=l',_t4#ӞzXa!7".úaϷ:T]L4OӳD@xM晾;(+duȿ} _;[`l*4+Y_gQ[ۓjLJGTi2Pҧ8$SELCx@$mrO,F/G |snrq+b ըG=1.g n<~es!7H-\SބHD s57g-P1St )Axj 413M iLb jJ9er9L.!nKP띚BnCE/uz AʵwQbJVt #Qhmxї"˼O^(*)rl]6WՃz5"\(%IrpOI?j&`owF9$-*՛鱝甗 ݳ]a3 ehي3E n!Ucٌ9t4KIQ_>8f0g p71(iЯ#?33l!ٽt鿂>m--cfaf,Xũ@ޥQl@~0WQG% }[ӔnrSES$.tmjb Qr=-f_bG7E7{6ލ bZ4@8<ψdB-jb )2]+˖^.`NfOhf"ߛ[.Uԟq)i[T-֥Xîle=q.DZ 8o tp<||Pa`~Sֽ7$#!ȑTZ u"~:8 [B-`KIL޸`kTJ5+ʧRԆMJlMnIfyj%bm3A Sb4vUSϘFBKҏ(8fp{m]|t ."Ā+mY.4cŵujg{\49-R&iMAn<C8:u=B=tP'K. 7y;^:8²q^a4g]׏,^=' rJxdwMP$.EZ4@bVm3ۀ{U>W`49!)X"_/h<'\%+?SqaA(4 Nrkau|wL?[>r5KCbbȘ8Uva qvj\uK mfH;ey-N _z=F̭ FJbqz9d=0HmӍgc.*nI`fksol~ f|逆e D*.A*ڢꯃ&|IuSD L\Pѓsb5TPH2N9̏$ Y d]s{Vm2 >ˇrNPv nQŤ a!F*P" pҨo0SF%\ǧZhK!= ~x0V F:&gnΤ<4EM:VZg$)' 9NYaw: P0bte Nաħvzr H@R=L M-\5E 4Lm-Ã3ƙ!Z̭vp$TL(͉zڜt~VO,<טWN} |rzXkM~ȁ䬵PE&LZC^2Np}j4 9v; WL`D0tSy}ef8SHX?3A==wrœ/:gE\]̺]\xAp\BSvD&D/=TA.*Ԫ0; I=1a,8YX d]q[p7v)Xyx W} ]9(F 0*<47_x"b*̼_.w ɛp[EnyUqIsՅj:GXa$3eláũkMr'A=LosNc9JXoGь./|eEvn 7, Jf 9,~#+9v*grIi]_"|u쀞U+)ht dN{Tr~E@ lx"kb|5uU9t8ҵQ'(*Txw 05L ,ё#/0hwN@dpBO,I k,БVy?aycvOxCP'5 [{nҸÛefA-s ʼnzH¸~/+ }/c1I4s WX<<όj#f01$dmk7˰SbD$rx& FZ7hHy FGKz/Me+ b`R оߐ26V|Tw?NNQt"D.UZXZxv ʄ 0jTEe{(l¬َ 8? Fz2̢DK[~Š%ת2ǔ6iCk ^ɬ2S㖆쯯 ڀťpYV '$oɺʴ9R?0h6Ô\h[V`j37)o/juPׁ[.CG| %ϊNǿ:#"GÍzKpf@RwH̛%תZ7|b9e]:)h}&>ET=\Q.m[ri@MCd6FQܸBtpJ%tj^lv㊢l}tv 3'CɖX}OQU 4dfsU7jFc6 g"@y8 s<}qT㜡F o(}b ԶnM`nU#~%#4&Wjc.Fx%҂譨KBt/\y('Y:UW],Υ5]c3$PdƁ 2澳%J!,璹([}Tu;ډ/nqfhe^p@~'쾃9V+`,dm h-d7VEeO7+HLF:z,kx[aD kg g{p2E}p\J$|s7KdE*3b޷@5Jg>т8).c$4^Wx*#2CÅ(n mWQ f2ѦrbAF{klO2(^<6YYU:Kf :svvpU諿ry!҈bA'.OUJ^ ,J1ž1~=aٝXx-b&=Nc;Np#>%4 LjR߇DޤVEGd)"+$L"D1yGBP;vuijsh"*؟l`xI,nV 3a Y?4߇,v*Z$14I_v u߱nc oTd:^Sa4s@yI "<1\OKl:aW/=л9Mۧd<\/7'DevDn>dKs]Rl9g_]~&SgH ;Nf\2'+[Ԝ㴦=r{ /W5 Paݍ LRoe>B%OWk>WI t틷qIS%7mc%KI\Qc/!各,z_h9X5,gP91_χe ``m*)V:<|nLڈZ!yZW!nNF::CZv ?xkg$a"Uk̆GY9,9;%Ź N 22F7JN!6! \\4e߉TJFmR"t@)*"myI1(fI,Ǫ܏Pi,$f9-=-QAyY!>eIW6rZr,cWILډ/ Md/*C^\H*+vWSfmVݏdPT \bG`YR_YCӟECR`tJD8C0 6yI&uP3W`+Ѷ.9T[@Pj(:k :[Lf9r!e.^k0fPS)/ĀF~ŔX%hRAw?MYI>c [;z%/P'Ȗܙ=W] = .:xߡMm= i/?Om|_WakZ:{5SBgl*2JgEpD=` *` & vw4$p!d{L$k?g`ug;V/͢>=mMm$S*]Ui͛E>)5I*zpaJA$Q1X`bm*X4 'nD8hg?f.oAIUI*n5% ؍ϕ.TB<;`Y8;΢:iٖxw fڙ#N6TRAȄ[UW{>`Tu[e@)t]SFsvJ A6*2sjUCYQJſ1rOϒmG 2gjOrEgp]'1uM|z |>IJS٥vOgфfeVʽ VBӑtn&TR9?Dh 0&Ǻf^tPk>q;;&ORL+PUk!|_}YbC`׀zPϠn eE:B#XZt J{U}_هjɉSZPX7SҌ⠴M5و vVl RcDm^|Hm4ZO?arb!cX+52&<ꌶZ!u7B\kq޹>y%|pmR2Vf]`V",C.T0N$NRƶ89ɐ]~l mdfv--@'ytve[2h,u[Љ;EhK}Q'. Ha24iaw"!cDs?V A )jMy}GBbEtb/D_H?{Ncg>@&!5Gb{KV\O1|o:Z}gZv~*~)4ޢTRz.QKZSQPxĿXU'MJՙɐY X!d}BV !Ju 84zCIsZh#.4$&*pL͈]$~nb\>Z3Rјa~ @V?P)/Uͣ?y30}Y?0Q ǁ56SAp1KSfd0OK3\ v73 U|:\w6 J3Ro1V,E_ GVpOtw$p ν rT ",nJ(ʤ܂ޤ'Ki}CW{xƫCbT]kjWb5FOuR>֡9)mr,Ȩo`dGE){%2fASeXE%aN/ZU&w#+/ S593ZU2 Pz;[&9ZkT JZa5;f2i7^w['lipHկ(pv j [dofe] {X$YB3OyNxOģ4jfVk8x%$Fs; g;⫄YʃmtnU:E{Ƿl(;;èAMB~S{ y[O:%rzgrJbdJ"h|cb&1ᮧrmQ񞏍ڇf4[}e~ﰒz <wl9v6u V㚑e > s弇SU]jҎ9BIyESG▭d | wt 9T,ӯa0 s_"d(Rdm"'ǖloA\5B&ß̎u|¸m72E /|:*p;^KbX=h<ۭ;1s ϷOaub_AScP./oˉ\af< E* w]@DL?˙S9?m%Iiҁ锣5d.>>!Kfu?y޿*OQ1h8bHv~_M0IWe)q1!Bg,(1ӌ쯏J*0LK$=K@FKr{x \rṀan 5 fR5 B*֌gy+ra,ExdB vh K͘#=!Ue ;*S=;,7,XOgY.}X鉳ΗPfLR\_tgI?i ԋ:?e @b}7FF^ImCť0D&cQ%ZMMExHlğ" B#IFYU1WXo3M"asDJID3J=]]||[tiqiƺ :ZiyDus"%c:ޝPk{%o轭#!&;?݂6O)=A,?9X*B(#wF`ԓBigDaAO3DžxS]Fy^VNɞU0'h zd * <<̽Si>x9TѬOT5i%GMB Ny!!ȓ=GT^ C]E=eUEm$ójzqhxc "SjB^TCJDMFL}j||KiL~IdC: їM4,د ;νӓ:Q(E-W!9,%i"?~0zGwĻh;=MEJR]&&}8nׇ[{%)a4Тkha#VF-3`oP9DP,֨6~3J(bE@]a< տm^cGyE7Z[Vfsk|`T?ŸH`;KP( .͚=,{*Y1;Cޫi^w$3Z29 ,L$觤@urʲ#P.ȡ`:4yJD<'϶"ҦM8%A0NV7#%20v9X%O I&^,@P؊&ڑQ7ےooG5dkSZV'^Iܱ1>TZ_X= X8rfxjA?]H}QJC5hZ]>%7+mH#ElSwG4ƭV+|6z%/pW:)ZY[!MJZo^']~j1xdAXCJ9IhIXskN$x䐍Wiց|jGpa,ÏV"SI?abc, K)k*MJ6MPx#6-rU˕?QHz8Y^@({Mh4 ѵp)M(F7  aU% 2 wK(YqVw3t5:_4wر;)V_a2҅L냌Jaaɀ a Q/8* Jp[k/ aQZ.:CWKfm¤mq{T)DBEqs#)94ӣAb Lc޴/j?zuͼxyxڕVS:E! ZQo㕳WD9!<ӯf#;qzЍ_ZK_B`O Fo-s2>4:@箪AjbD\,*I!j%?["";8XѢKA\yʼn+2:1ǛvgJ#=ܩ@ ϶ND/ދp^ F8oTIϷ| 5pB8b֊` @p/3~;7q1轟qdfu~ǏMٱEaSyKf^N^0УٱETpnU|ߨT*{:vQN WH $K v6{s6 uWk\kLr표zgb¦ & g%=,\&fgD+Uka{dEUAfL{[}tmr0aYl{%[aMV" ukz[j+b*ܭ߻e/sXC魿mO`/dlikt&+oOy guLSnk=(m@œ<Fiu_gطhQ*TĔ$+rdϪ Gpr0H 6yoGg&4jH՞*;bQ"̷`$qfXE@rTP#kٲ Ii Uk R#D:?LH]qٮ;Gu E96Bu*r+Ձpk 6(2D ] R+i/±RhKcdmNO?+d elSd^t"3:,b,ӁX3~i{+)=dOd۶ЎSıa;ؕY/J[h,0`_Q9;?(skDJ"3@ )Xd^>¦%=Zx8dxҤMݱgcMb坒,w-ZEBoq)͖#Re=RHMyԋ'mM03 …VE éUli>FMO[,1%N ܜ%؆B(V.-tL,fH5('$8eHV\3VxMwyƴeUjlV5CرǴ2`g}ym VC2$c47co7Fu8[M~;8YQ^Eh;qC!W|[;OBTmW7SЃh6se8׻w!Z?T-kEhAL*ála3T ?.+aa3ZL71l//EFѱga sT?Oi2G((:CRŹ yY9y|;Bb̈NEN<#'t,ixi=x5 jYlE5sxDHOSLX7$9Ank'5t}; d~' Ņ=R$D>.6&JQ})H>c! &N X𮅱;| NKo{39p>mȚ1r,h9OPs'eSUi :-7$Q9j5˭I6g h.g*Ȥ1Y.A$sٍUʎ3wGb* blACNt./SEK!γb㉩쁝P`""q P:@5G6#n ՟!Qu1#2ȉ 7u G^#Ehl*kkN39 `Qv5XQ7_eqRs Ah4Z*_Y*DBdA+Yv6 3DG.a֩ Jɋz\1_;J)d]SXA=LOx&X'%KNz-Mk\HWeVF*;ΦRv,xC4OShQZkKqG2 jQz xz rҕq0k!WC佣B_,$yD|AR9d?K}u\NN[urK,q@̝%;-i5 h"*|'iu⽬߅f JuuT8%1$gR ,p:n5AQ.$b¤TL4q頼CV t=[6h/Yd8ݲ3Qm1ˆJ̯9d TZ^j#t!ϜQR\ uR{Ȗk5x:qcNi%ceyo!6?WaFjڐs1X87޲{X` "$QBlVF ~0)rĒߥf6I/+8xwW^g2@k%6MEYgV%O`.Фyik.e=zsS b H-m;D=7K$k'f/ӽyBoF.DŽ2yC5N3П-/$'%2Ug~ri[#! "o&anQ]C׻A ڲl Mmn覽? {*BS~y}KFٙv;&Sr@ZbKz=Z>y:27W{c; hq(Sesλw>J v5 ґt)+ME-rvʨ> a B "_w=pRܵ[] raR Ƞ1*PԃyhK^ZkdGzuO>Mߜʂj-AN`2Ru}fy [zX?|kSg.əv FkZ=fg4v_ U(_zwÖUI^rk1"Ad7r{AW~+[Ն"X5=ޭ벊!fS;cZƌbpȢѹ1Tԝrƻ}N`(>2=÷Qϕ B CF46g(X pp!^$G o^oqpFup~ɺj5Nx'/b9ͳݵr%8P_zqE$iNH\Ȉoɺ'Tey|I+EYIсqs+AǣDY v>;p9qkdphw l9ۜ C2ZAZY;mLvܱg98Z-"BY*0w^Q5^ ut sĤ7CϞz92aZ5VfR7a *婕ק5*Э+?E SPUhtvdWAʥ(0d$lf''|w'$.JPv%4+Ox\Rp;69AԄ3&I|3auecc׻Np`^|9}y`#J=fbȕ(ڞ! JTҷ`+A[ؙjN?r?j=4%RUer' 1.jY8|6Wρ- 1;՞/"<9kY?B83bF0ZбKEol+2>lkƂb*fJ1+R<1[rF6YxqSueEpg#nbC 6n%~i$岿U/&#Ȩ"Z:M?OFξ9tF$b*%ڐCP>plƨQxwM4TcbZ7Wf=bSZuG @Bo$!j4lq;-=@LOǵ&K^W# 0ۍ&r>ki]8\S߽IjnPjrSϡ3nh-l>q#zz5TB1VC;\HQ,eO ߛ6xĿ 6˾ggjǶ-\QiRZ goeS{'xrh9np`CF[1.'=oRA沕Mz\/GA"w^iD^|._TDKusJGO$Q-Acf^=l_8EލqRGG؈ېOv(k] >Z6I3o3.WfDU,6mK*,eT_jv]C%xL/@[G0d]N`bT)qC N`;A雐Y;U)mHss/ԁ+1I^K QMQRnn4`c"WQipDHc#$Go5Xc _Mӿ8/v:WsKl 3K{SEf@2[j$# {o?Z`T2mDZ bث9Og;2{g:5z}͞zP:|:Zv[o~hc'Sī Ҷba0껀D8,,Nj@@%r)3$lۉ)K W|Lq٧ е-iJ_vضᖹ`XIVL>h%,c*X'i\^=9~8(kLRQpy[PerOcR|ëCp8YǣXU LU(47.PV›'yoJȒ$ZOG6u*=I9)*J(PahӨ]}HuZvi٠K]4ug57݀wNxEs,Vy۫t%/)ߺ&ܼ<7ƅ4k丬Xjux +@}>P՚So>9QzJ  tmqC$_kB0lFX8IZ0%3V寪 GDOՋ#ؠ'5%Q FQXqyio&OkB1WMޫ"\7 ǁp6pL%yr(?Կ qHCS>SUnͳr\ߚdTPB~Dbh%Rde^2) [_f I0Kh ?/8-cf"7_ AJmNE) F1PG>38blW(V°^ZﵗU!0;q ^U?~]oo0YI+rq /[A583'۰$g@$D8CrR7OSsLB}%'P;A޻Is哱O>;x摧oUKUrǔU&ڵg'kCjXV;mQXfF=jB>1Wd9,5CN~68%`OI 7cAvq=DP6uH`nNB#Z96q`-D*ީ@%E\DHP!29vE*5 p r<ܹzj__eV3qsfbIJuRs35ி.v0Pw/&Ykk mBw4hoM7Ӟ̛` /'ߘ@O'~%^vDt|Qɟ FLn6Pȭs$ RX7Rr@w05<٭tCWbaZ` 2b>3лvV$~Š]~nVO4kߠ`r}p;S)-K9Rj.Md6d FKst1,:." GؓZNR@E$1}`i*/ɓ 1o?Ǣ;|V tĖNJ?O U4"|_,w9,֧C`6V gaaA$AIBPy;\],w]C'w{-X/QRt"ȣZ/N"j=#nYi^N_>|"@q/ש|7PZ]yx} xs9gzCtCh/^&H+Z]㰱ߨ&q7 ⋗1mղ4}ZFQG2!)-8*[.2 ToB[E%1ô~nWm=gc"@ʨ G]ex/OSVpڴhj*@Ϟzv m7vNUV4w-I޶1CjSL}#Bs,]AK]Y"S 8vS|y6v}лf(찇D'C<L($u[u(xűxtqĖ C嬑\$|Ŧ v<.ip2Ky>YuSUyB"UBf(9VGE@:+>t)9`>q ΰoG -9ܤ/TrfS-p Mu"6b粘iݡH8;e<wu4\UO`fXh,1|e2KB'>cҲahXP`nx Ϟs\ŀ$Ԯ焦AzgpS~j1.`J6A}hIT2%W4v[cnfӇ>oMss<7rCKM!: cDٱĂAoQ Z~:}y@3>|KEs]dmbȤ zcE+ZFVZTFIJ5sdMk!Q̚wiLދ &F [nN467 ;1,Ԥ-$[*)w@ZX]EQH RsAeVu&iSkjG4mQ5tH[? 4^WLc!*xb` vhՖqwk(k kC(CWsEt_]74ξGj`]NW <Ykh~T & b]ԃ%|6n1~!FH^E͑3cn[BbWH2Rr+-":OEzldJS.jEnA[Q7P yTWGsg>v$ I`e3k(必EcÓ.0>bX:#݃H%7=*GRՏ%Bߪpޖ8=&ZUw5>_?T_wbRj "o'ĿxO7{VGimQ)P{ zVciBK&A PchH_徘@ QQs`{v~L޺f*xt`ԅScԛSuzNpN HFdܕmͫ,#ұn3}#m8Z4kęw% .֓RJ~ PrBnsW5{J[xpK83WF*0%}4s$D |ɽu&9{51R6xQ >.TL^IfI.fd!<R]M9݁qZ]:ag`QMP3Fy2+F/hkvx2Rٚ,-U/wJJU4?SO t~͡ *j==MeAJH ZqIB; 'O,Kʈ4MIJV4&_m}W[FAMgOߦvw$ٓ]vIÿ61-} ccUٗT'n?}T(HyW }ЮZ“`lg8F/wla~݉`pD9jLkCv ;yzM .ľm^ʗ~@03 !c6&t&ه m$0l}rT}b a-Ϛ&` E\Aj}LS 6.^ö́䏴c5㰅[Vv.NKKp. UcH坈~G-# >tSzy>7w6[rteiKo]߀a;8NNnl-+-; nFjߪx.*Z:6oQ(f8xz؎H^flD AǮsa] ֻ3SN'A,]щ-/[~k=[O[n|GoN2b"#mٲZY A 5-V3jķvq@T06vY1%nGtP Ճ6 ۻy6efq"[meHqc.<1z" B᲏/ tlVR! 7ҳ#O?&H{ysݑ< FH{ v4EI7 2*{2g1Ƒ|J6E_F k q_ !=+i7S=fJ!{ѠNN{JʐPN\^Y')4 G t._N{<)`o{FC9kˀE ׎8IGVPѰx;4eh\vMl(7*nȰ 7\ F.jfjb'J(@w3gDu'T-+@q DB̀@ ЧWhH`:٦[-V}$ܒ@ yhȈMbWG 5SNrjv.NSz룞d)ALRޔxOq#^̭e1 }N7B(5+0c5aj6W_s۰i1h+-:BR/]2j(ju0{]LbW. byVr.5D A _fUY{gv8bȷYL9+<㫨"(شʵQ\Rh bvNBpfЃU+.ۥ׼xAj9gVBgZ+4D>39p+J$2^[4b2 wD?$ uAP 0Pv3|CW13l%2br?ɾ$o摱tJS@<_F~8|ϐVZU֕ ȦY5څQ\'ɏ05b!p]@ehVLsQCX⧛aFxERDD%>MT {w8%=?k8[~<]oaII ۾EUv7( |oA٥1$pENz/OFJ#gyb/y}6Y qʃk8ݩfgïT{oRw)|jۓr#6A2#9t#qŒ{o,[;P,ۉo:YG ]| s[|QaU᤮QlvΤo+ \M ُ"8FaV1B'"ʄV&!(\ akaf2EZަ(j<W]_cV,[6^X^W5⚭xG/{._CO}s';)ajsЀ`JEO OLR1n$3UV|+'QJRR|DFA%rb%ja81K" RioP6VDfO@v49wȉLPg~<CnroFRX1>-B[0R4Կ% ғr{-kM;K/h:Z[yCؘ]!zYE#7a| [W}]FXI8d"q1X`OY5yHEw  GwD:7ƥ:f(d1=.Jj}Y ުkLK'CW%iFR):qHUԵߦ'܉^sg|^ѫ&%Ng"j o!t֢49&heLw<->gHD&3MP J)H N`d5D(-2 8]l(n3,0 3nKP[R)B׶[HEbpOUV~R'TpvN풫0t8zYsjz'iE FX0 ia4~L~!k^~}lqT2\uƝxNl(uĶ~B@"KzRۣF8̅r4úBCDrڋ3vD?ӑqx5^ B63Nc)&)59ȇKZ; 7#x~5Ǎ4/ # ^Ck- w)ۘUPcppuռo(p=}Զe4 w~ГBHNG;6P\!eYvkNzCt!7Jqx#ƾK>nLz8$_Rty6̤t4s+{ƴq Gnp>~aX9*^nkf1|0:S#7I/ 䢹N,'XȂw;`y[Ĺ 9GzFIHWzZsksᲧ tY\G06oĞH%IfX #;tEGq94;gBu/mLs%Co:"!/K,|UB}quhifw[Ũ*h)f=SA"!ZwITtx ;r$0-5y-]Bet-6Y`^.& f{<&l9!_ui!>'wgl[zCDyX)},8N-Z?lbB4Ұ[HEkN2 7evJ@8g:I{jTA4G>Ir(k]2G"UpOy=z:y>@zI|puX""3 1jL! H&O iO,ۆK}w°#?)?mި(4O%JPgq-~Z2Hfwx,t-偀bVjDZ(ϻT+F>,(WvW#0˫#uև }Ae D?5J̝~/iWUmMTdETFfl+CT$Ř7PѬ{fNIlY9I!vv3|-  |3f[2!xHGp{P59BYzu,4$E9FLN6(ZR;pll69gw7kU&u8G, ipǒZRScr0+8tjKFg?: (k9 Rk>x /Xa5IuMn]?S3H\IRit&)Mkx3k>ǃ+ 8_ޛM~`͆wwے\SL_ BV,yk{q3b[F:tiIuu>9/p㢗W)DAa 'VK.\Mucڐ:\BJ2!BXZO&xփ[cj$tq/e1qYwF8bL[Zs5yofq]Y~4Bv%D?A#g?$@.Y*s;*oS3gV\>h,ճ6T+D0cav;lŖU,<S,¸eTV;Mk[(5od%Ҷߌ@]$:xW zVg`VZ7#Ӹ+3HtNwt,4ɵ\bP`.L )2RWlYNTM5~x;3*ubٲg^W],A)olO:aIm&Ƥc|RA^BXYY%yEIX?c˒R]K)W",da.ˢGE@Wb뙂Uji1Oeb𶈀LL~R]PH[8f'j - S]rԻ1o`nW5y>\պ 2Ai6~~% ) ?is-Z@ޔMWA;{)\q $]/Pc7ZB++ym]AKK5lCx`ɸr1X5ۅ U{E~0 Ow̽Ջ$(8JW{L*rJ^~,Mq'O/u'7$?#@2I>'.8 zref ,';FEUh9+ +iJ,IH y &kZZniR#رuŹpDVBvaZ9yY4mkD#F OSUA*_C( pYq=b(ؚ`WZ@媒!u5>΍L7 D8TF[79R{̏yK4& h olX8tL7:{vЎ'g~Ǽ:zq}7 w2'OGHh3zg ) -pwX*I&r䖱tN=;N=~dY"<,yNuLu{Z[::A޽M7CBr.k4\r:="p;+92~ :]o ~rcs?~zmކ\bڧhnz:")(ai \<%gɵ +Z0]WjD(jn\eTOWFn`[T4Ģ G|dV3847y$ 3 \,'哂 fvr3πCQ}9Su1ߊ?k`ȑ7: "⢶ ĭ믗TZ'b?uk -bH%ՎWz&rЯ}<$BT7'}.d}5nRJ4 [=^0XM a ,|m&:*,qĭrP >$J 'V"ƚ ^2xaB)'AędobiqP'p?~a5nF}*䢐V'aI%_VM! AoGU20OS}ckly ?R}foCMm~Y Р?CrWo3%+ѝ{Bxe>< 8-W_T}j{8IhL, * 1$٪$- ;!4#P|89a%VoO~(+~F(H*r匼GɣՖ SdV߮T'GPP-X>.2e,NHa{bb%8v#4Q3ǭ E,pvzj 7, i@v7Qj3a5BS({ #LzŘ˒sܪꙗNyRj_LW)4$M QsaMjYzɳȥÐ@}]Azi>?mYNfWн[L(]o}&TVithV_z}r3SΩHfwS*\!wc MR_̂m{9 ua)Db=nWv 4Kl7! 3 GFuyX!@AsQ|5 *,:@PҁLƭ'ӴK0=[ eAn,t%xzi\+[#u]yd=Sc&<)#b3oWd$N]0keC>pq 0ԒT7LZlY OZ.7kC6>>-J%viRpɦК~BFK ϑ:k!fSX+00+ۀF(Ţ8pk>'1g ; I/H @6d jDJ)Ix<frQclЫ=p'w" 4 | d5&k $QAG:A}Br >iX(`Z.=6 G&OD$^X"sc[> n0.jzLedc݃6Y*d~֙\K[JBS{H/s0(=DjfPH-J*ZJA D1~s̙'Tп~#?r]er18hO"!SNlnkñ V]8Jk4TzB^gqr,sGT \|jwiqWVb*@u6DD:%#=O.'?;QwdoZsғ=#@<9Cfqz}p"'QtS]=gΨ>MQAv2]UuV0Bsgg2EF^..až:wWo |85n孱Q ef|M37{ns-7UngfNPvΦ9n<1y 4DzgƻI75딘^6Ae0 ⾀$CRޖ`[GaCkoS;WI8 {y|OBy\$ >á$c|YW4 1: Л5N5Ǐ@t\@)ߨ! Sh+۴)PGyVZ,¨iS1&,D--]'2ɝݕfqTDRB vwc\#_Uy#]gl ܓ;V GQe4#Q@rK0;aQ&7"$ܹn!?YQ '7?<&wI C)-l4KZˬ߆ .J], yo>$F(b0˗K> i IɦeCUI%Js[eiunk=γ`S>jv?¸~6f_.~Ùt#Q"'I(i.#@z5/za rLJug gzNc;<R8~o€xum=٩l6`>@ͳڒ( ?Yf jXnЏ^JUTB/]#B*Dї~ v̢ūA ;оkc܉N`MՋ`[/څ@.z fBF-% i*O張5"K&Lz[C QvC%VeƑ6uB`H'cPب{[`2_^RF40Ng>D1W݉k|=؀z2)^m,k .*5eӡtrR!q$ qBH0tc-D@s`$W(TѱNmzMAP%'^wO(躬'Qv}Zt_LAGyx\uJ>? 1B[H$m콠x+g̏)*kH.OɅk1 5:4O7[od2d#>el>Eip]E.`0Sr#5hu9gMF<_lIWw|W4̡"6fGFpqI udqQsAc{c*F KooI؆z({eWjXy[;3$l+_ѩt j2+y4UnhYtjH+/gs;"q{LWt]MX}- LGzLLиJ`.K"c;u}ȾF HLkd*T:!K% 4%*Λy`"Y _-7o!+A E9p.STs"[>)p jgO5B"N]˂)&O'3]x!_g,s` J4N$p~P郖ӍWۓܺV'gz&C%:~Z 7p,.`Q5W !QIMSbTlwd I&3Ek!EK{(,:m8A+bZZj"' V\Dwon {΃,e<HA}i( _ơ?!JwFp@PI։{vt\omHz^:)m5gԧ]d[+FכRiγ,})$[Tp;R)&Ʌ }E?WWOӓl"cZ7n@\Gf6KzT _-Rc be%.=b=d|Pf4*~Z?^r,/e0 ugz 'N ^o"SaL=¿eu& P6 ̝\fhx`k8K>Vb8꣞(SEmM* i7u|d!=9\/BhfkLJf_XuL3)n F=6Ghڅ#4jJWR`ţ AZB] um ]?;Y("}g󞳩]Brh.Sl\p62uME(-}߄aB&\yuω̻F96u↝Py#?.~tmNa޽Y}RNP{SYa󸧦YOU <:u3C{ȓ6v(F(^#M@'Mf[(jC۽s4պ}7FǹP/u>cX״0gǏk2Ք-E{W# -P'NwBa .4E]1G؈`v̄+Yw+hT" f82EQ?}\R+ ހf!g4%Y c7e8m墠 n ,1Ȥ%ՋȜI2f˯i )˭BeCk<]io4GxgΕǝlDJvL2fc.+ٕ7*(? dbxS AZU\1,*@M&.73p&wq-EUoLkAwC+#E[RjYIAudi+BE7 N1I 9xpRx{0 0!-Mڋй %Y:J뺅6El%juN aZ@݃Am*.z2D L 1"-#fQ݅)(#6>V1ؕv,@ }AVȀ7}le# "z_M*OND:TKقUEBYk'Z\b{}t_!5֙l޺.yngVǏ7&cs@;[ȋ÷S = " ? fv?7krTWۈܕ"s`P}VA#;7܇t_5;=/a.OxvV~K~[ΦPr?10- ,:/Zȑ 煒gُO!E oVh;&/}Dד!}mFGI%Qf kc64L^>CBR]N?ZXwrYF""uX0ѻ|MqY91pĐ(J2F,)^˂ A^3ri2fY z:Olj^+M.Վ04*Gcr\ V#P;6:'t־PIuXΫ;c 0WW+`ܐ8uxSsQ8SE6=aq{p3V(c64W#0f??7>2C$)\L#Ԣ6*?B=Fɋ%8:͢GgLMEW!EzP6Y]_y"k]&({E. 2DI\ĩn*pd&x/T4 N X>kV]"Cj]wD'o '' AaKw VlI Q`!)#n@bc6g6%=n߇[6xi%L89d>i?yu6`WTat!W#&ݤ½DцZ]ejc2 o kٓ pQ\<di,:[l m, pP놹ՠ,qE8CƩ|kgv\J =ycN KЯ-qazv֦\k9.GJ=>[܆7!`[ϖR;59ͪCM"#`Z߁h]}yMXY,APc~O,z:QG)=} ܩvL=`(,sOB Ld쁝jbu|Mf ./=#x %] S6WQJ,b{)p0@X|k&{JJ!V}B1.ﰷB TR?.le΁Y-REMB0pXnН#j(-PMЪa%Wш9[Z`xHI,)fay}T'0wՆXmP ;pgk"'jݡjDTUF$uܳ\1 Yr~cc].'DiQXƝ?4_(Sb$䬞(OȅsהX^3R#-]j!Jc[A'ВM3v> 0 < DWl-<2\] >ٜUy*%3ξo~-Rܯk?QbAGI-[*E0l^`ڒu 8ɿB,gc(\Ғe+$v|?%ô9ޓs ]?нS>ҙ_Nmg~ZM]jppy}dUsI!JS֠d+3;t4Gk!;ة EW15-._G<}y+Y9B᱙YP%&"fKukG'nnn=8;N/Z0&i:ڻ˗ZzU>opEZUi!R*2UʛYf,aIDs &ڡ[p|)ٯzqEzOol<77{8Wh'KXџ5Oh (c~. Zr菺=U)c,՟>s-$i:ݱ`=c?Н|`D4Re%.Ig0b*S9=Qb|gf#Y>\.蚉'M 6fS+}#k q29h>y:|WI*Öu, xcUoRv`&JˇNM*uwxӇׯT6F8V5 ɂ#zy. |%wꝆྩ%{Ptfvu0f(naLdcpų=S,C"Gu@|Ljg c*ì:\cIC{B")LJ^AʦXKt< QD=]:3./GPˍۧV9 4,;E6XVg1h 2]KN -_"?5yQ#K'F)54~RW?Bu͵BW>'1r20|3ru_ɻ2X'+Qt[yKSG?9uB?uD>OΡwG >0ܫ?0@ՠdV;.4{d4ŴK} 6v0̸b 3@\|QئW|KmŔ~}Ma2pPCabty2l$OT-N\.O^Ȏ:~*Q4߇Cx.G9>~M3Eed~ YϺsipw$g14H~w#ػUb>hU|TF7Q`7!ӈk_-( Q:+Jݦ.`▟<}n"8L*BB xCYQ+B3<4yE)|˫E/($/r/TT(_o aFm:Nb*pR)0Yɏ,Cat :<$e *'~\\l:p$% ׏SB:w%#T$UEf_` 5Ѷ< L9ustZOSZԺI tj &~5vU.LF NzΕ#z)؜H B'uҎ:L])x #dy< jRLS6'm@F`)^jOI`vpg1)m"4Vti++4I6>*9PP z3x|ʨ\/!#%xg<82BL;%Rf➿b;iYQck*?o4|}&1d!*QcABEP z+aU D`%x9}K;XO۪ZM`>u>ZdǞI=<[#{#^oW (7t6r 9AM*'w7Ɂ|:>ŵެaKvR dcrECiC{੎)tZ9wEH]?l5iǐ:h'd]oKhW(QG!>x̃$ˇ~3|]??1mvnR$Mm⼪jWS F9 P{@k1H|x1s!pn.BIlJvŘ/!F\$HBp4P7./=%U*`04z:ϫэF>`,X奟-GubICSOB8 L o-'9c'+R5<8)*֦"wdt[NͥB,thvL7#զh 0LUzԊ to<}CxGһ11BV) /KYIr#"pvO}h͏,HmdFtSPJL91FJ*JЩe$X%}zҚ(a5UfU07"mE:5,zy]c)t()[ #fRaqC-ȷtS#9d6Zj4K e*WIwۏZF;2Skm#ibE5S.64@"~F e^Ij,z  NE0M\)SH$8wSߐ\M.X\ԹH`?~9>grƑj:NR((+@4RHoOVksCb](o϶ sH`Q'kQPMaW"H}$&.1$?1vGiWD'@;arW7%e_%/{Īr3ʢ߳>B)_Sկ(w3ߜGV}X Ml#و}' AS|*<C}As^' pΧw Y.UA͔,Pybp\vU`. P?XRj1S.!1زg}q $cX^:ݣӸ~zxp=Φ ;7=NP8'f:/!O;\ߵtƬf9{! 4uT̒ʅϮ9HzC㱽MsMFu2n3 Z H|h3xb4 h9L߅tfo=M+@UJ9bc aiZVa"Y`ھ!OXS*6 lE/D\$Y4d&ݹq.սsԟޢ@q[Uג]2׆:|ëd>. kE5Gɋph_ J'yw~oH) 1sW-,8H\C?w]iE"}5{817ۺm?N zWף PAo[a ۋ5K۬0bnȨ8tKOfĩNr"Z闤F7 w ,rR[`&sfGlc w3uѾݨ} !@!><5Z@J r 8un21&Lh Z}p&7sS `&S*$yk3NºA;1Z]u;*[vBBY[OF[dFT,⁄L1Q< X٬q _f!Ϻ aUBԓ Go[ߨb%oXNO)mByB`yW̐WٓOYnY [V=&UgaqWDIAq[ s eMYqc䞷õu[9Q` sot.]uKaazrp)g~sK^lc+FM^*Wg`\HSTA[z9e' 4eunZm\uw'f@*Z"̹A9d]'ٹW- W:` EPYW{rݰWVˎP[m6K^~Lf%H\3ES%!j:A4cwqI QoGQi#@o)&ebzR+\^iSX褟cJ\k>ɣ\։bF}i Q)`f9Iu, $WMs)ٚ,k%>Mb224+>XH`=#bw?9[. @`BXMPCyc\S;vY{b~%I m@oxI( _-+Ǽ8ǮvʸE\'_qk1>Wyge+ /[7fq0my5_i00~pP+ہ6F]đ)Q&Cm!-W:uQ߷'+ibk1yUn3{4>64k% njo+>9n Ǥ̒\̣g,IH "^auB l[0$/gkZ5R|U I+P{=I6ᰟgC+M AT :菎`-d(GXOe&xh0" StoYO)ٞGbD94S`Mנ`48' 5~.kGOS %OH/KyCUSKJ28fx{|DK0?_n|E) ؙªR5h ^ɢ}RrC,lj(+w|~m&$ HNXjʮRDxk`5oT\Urndxr(S+$eϖ}Nd%hWZ=x2S"PgN:hg$~>)d")(մvq)sz=憒)&=\+:bvPL^jEiBHYxмy4U` 5Dimʤ qG|Q%H,vK*an 67ᒈ\"d+q ;T0GI)0P4bgakuTd\?a$9$9_eϾ^MR O+A-JʼfqqKa/{*%<.'(z-V^(:G{yNh#p Lmˌ_5fp$3t22ajZVQ̹snXҜ)Cq:ҙ'!on7jtPz{!k}uQFj y5GbY 9m'L-e-pr~`^k)_r¯_:ʷPAJt/(ujH~ 5wBk:jqs(>[雮#N -.2:J:g*qܤLN-u1Y^t x#B^x~TTw8 Q }6~cyu)&GRo>lY  oxZaҊLT@^rQ)(t X2uX޷ת\A0WhEOUK O?]͂dl xQTSf{iѭIAJiH-rbZq`=ah+&${ȾIEl^sz$!Ғ!7Pp+"iy*^al^DNf *8PhHc.91sHCSȎ..uLﴭM7]P_E"5}"*M 7>sfϯY4C ޠׂPjx qrMzSk1D ǣS&$T~w[ Ԝe^rŭDYb|VbYrq<;ԉwpl9QSjIs;^]T2{DEca3.fvK—vzgzEĈAt'߉'p,-_~S'Ϙo .x0LdPP僔*uViR9iucb.@ 2#lHd0K}]@g Am @6%Gޖ)C+ ȅidʶ7LʮŇC&=7^[ 1Lk^p8W gʶ 7'*€31O9v\-vaaәx\_4< G/vؐvB@_E^nzsPbxղ<ViMRKB9 pvD<E51!p Z]a {26Ii,,*!?SAMHwj1ؼ7D#ݏ'w~`\$wθհqH:bTFԔ;Ӏ%I ߎgjjC>DZEaLa;KߑnPvfٲmWQ5).Jb졩ߵE1܋B麅IRRC1Ly 鐂g˙|eX7KeX Z IK6H,"+V)0[t] dn 9[8+ZhULR8_ X W2&aiZ3V<oQdb߈53f; ~b2p ~-Mb_:rݱ)0.Yp/6A"+Qj+{2 X;i0#ͣqZUٍǧ@ƍTA&)Bw,,a."ʿSS H:/ =Ũ2[Ѷ؉QnLI M'A#~'K۳>W^,ePgyo%,4q$$[gxe& Cl3ZY0es~s tl/]6Z +2wu>+JtЛrP,RD#-Q҈daG49a߃uԇ$F>ԡ(eռK+ =MTGDoNW: Q:i5&isƛՍ[#"X.zh#vgbʧv /0vLJX<}"MeO{MmnC$sWobQ00E>@*=M]gMv7 +)qa=Kۧ^#|%9'DxIY#:w0&U,R \&GQe040l K A1bc]JVl%8Ot [Qٜ~i9anqҤKx%!>J 4dV#Ag֙HOYKJdE<>IXgE^1ݜ+S#ѡv0]y%hl3~,Fk@}E{5T6YV_u Ӿ&6E$:8S(\Xi՘ٴK]yaK*9 5@@ f<~#Veґd4g*+}q@M\I,* @΅F :KM/a /Ϊr?cfnheD|6 |0r_Μ|Y\'lS3ma;!hb^BխC#q؜Z#Y(%,> $2z G`i\Sp ԨW#746Wַ_6d=+K-u<Ƅh#`O7 +Pvf LNo^iGwzKr>ZTFs=zCaFǹPIz2FӏNniơ#2Ԥ% qZX}茹fݠvpMoG/mYQ/~,oK3y"ŦJҠCG^*ɾb F%"fn'yBΈ塚!/ӟY. b_Jo *Cg1r(~xdl׏zN` -U%XmP=GE'R Hf9 !FȘpqܼ`:ёqRleO҆ڋ] MRt+ /h0 #މ}eq?o]*9zڊq9 "7so.-Ot/l~jQ.|$(oj(>Bnm0foXHI,vt`٫Ꚃ_Ul7rLЦ6 Nv1ৄ1(~u;};Es+.J⠥^˞ |Tżap sp| ?n*yBumΛhSMbB/bJfZ`d)c.@37`0@ZYj)sM|?]-Gn;l75ءd}];NyYLq0jߡߑҭOͽ2Ĭָۥͭ,^-R4@2_>?ӅkqdM~FꆯWG]&}(6F2NUy): ] M8 lB.` igVɆ[L{61YD DPB2I XY?fjh e[.4pylW=CS3,CptO9'پ*;AVPao/Co\r.s6(V} SX~L[6.:Tb/q5!L٤"+^зQTFn / :8m}{nB1r˔_sa.%HR5x0se吔l6Ep7+c]PsCG.͢LG CRt%z+4~\eO/RVE;͢'WH0^h~ݒql Q,@Vq7}yM$@;ÚGhh_'_\ nދqyP"%p ,@UhZ6-[]IRX1ΈDbL:P ",TU<0g@wtPS\vv8S?ZshE<~>*Bm}`&6vk | ņ-/zFѹRMMy|lJMK\bXd^tARY4k+kCa* (̡ pl&f2S.w3ȪΫG+tbD&rb[H8_u7cS{zy%;lCP<}䥅"y~)or6o0;&EŞ$Vy-'0>y $ApSK DұLG+JSL:p-pP!v ` :C3)Ͱ{տnK3he-2Q'{O#Q"{~K-摷 f9Xֶ^3 sqAN zrqwrlfg:#Ǻt^ xrenm]( 6m"@AOVG%PJ`O !{5o;RqAın #Y-6@Wiu1;zP&+x]nS:}c. 6HބL4MYz 6%1NȀc9*s+Z6M,&?"CY@)9Qڎt.]ʵvBG'4 ,kWg OAtcG1Ey1>r\Ge|f@p(ʸtSvouHUPXT/yD5lsXI}bi?Έϕ0VWp;({Vs}CBnVCg\ŽSx8S+lOyT!  mvX_+,C!,ޠz$_=HصFTo0H] {l=an18pmm ߆K[\%ҥoQ| ʋއ³m*3ΤZ7u?m Zh:!@kڅB!rfbwH$!'򔙚!~` |/6݅ T:W'F Np80/1ac dN+BÍFg6!<({Uhs82sQ"١у[lEKKkNlQ˿`tcL/ib~y/%H4S{FF'F֫f]7&㒑k2B]Aqv?3VW]_a2 VQ(or6_wj%eA7X+: ZYFtSrJBw{j~Ip%sه6XkRN)"PGU&VY8v=`ؠ,Iz8HH#d!~N)mCpr>:}[}fIS;kZ2 .VDrI@^k&l\]\j<5$ZQ:wpH_wp({@/G5Yć P*djfq\^3mg@vD]J"|3FC>JggȽ$8)_rrԕ0x#) uӦ4WIV?YR=oXiWq Ms!~D.NliY>czep!F ^-gW,;(pسAx뾵™\a'RI.$YT55J+O"SۢPK5תIB+ڄHDB֊yh(mWLOBs#aeKeqرܱU3U^>ȟ)-hVxB黀B4O E)=~3AN>L/OźVKZ bY6'ݬq*Vn{^!B8O^e5tBz<Ƣ/{kB U\| REm i[ zcK,OA s~sX~ f<4Ł6z V$^{M`s6Exe&>WQ5C,ifg8~1ЋM! TϩL?~EL&Ib+\os ;N_`JJ*ƮA0DK@㧵k)#6=Jh [|jvaFN/D U4RYuuf$BPcIm#M,2 ^pa> tU][e!'f 1Mf4t,O=yJ$ԑV[-QQp Xajw 8pgj4C)xeϦ^I6T7r/^˾xo=u #&"M7wd溽&zpp.79OJhFvgeы]^=7p~9d֋*Sk^F7W\XsHKq#?{.:l>C#4tB\n 'k+&=Z҆VgF+fl3o! \!k `nhn.[*+K~ݴܚ"0rf%]SF@'f/van[oe})$)Hd>VI9}Tf$hv/-*},,rXᮿ `/TaE߹gyƗJ.4,*`Fr|PLV fm-K!PgĶ֜%C`DgfF-y2g=,pQf]&N,Е1`=¯{4g'w]\RŞKmwH=ֿ)4 kmBӵ MVM&ô^b#DLG5B2Rc,Tj?VTq H Mæcdi2UA&1S˫=7q3: t2#5^{RHx\Y.*&b7Bu\Z!2j$=hjtaז j!bZd0(OU=:$tЅ=^!Kw@_mEU]1[Gw盪ۡz8f<1ȥj&՚sYOlW @EГu>Qbp%KZ`Ì2 ^ `HZ qHLWEKoT-*g8:(saq0L.Iv S{g8 ?888d8mG\& "ĔpoA%`™ #೴\ >/l v+ܰCl%iKE):uIs,kH@'%Ie]G[7К›vЂ٤N(u I`ԏZP߱O!3 o20rS:}u|UšfHa ܁>JϾ5yq,/yFCϟ _"Fs)*e&¼=P,'+q뇕%d;f.Όvez WCW[#FMm;ƟSP%[>;Rx 8r/։T 3sd| E$݊~$r(,^;ʴ]_xy:g^!Dgzɝ%Kрx$6&9aU:z3c[In4w {\ClLnR=mx[)W~&$COm?_'Ȳ-W>I둤J'??JDs@Y.~AYc̱joGI|"l]{Yy7Ψp#GhmJ( zg&l&؃#ԓu<z]"Zyj<Hq`"w#6ϷT~\|i|EUxeWMkRfLsdKN*rB~hĂ9ҝm2Oyiss~)uqz1S:fѝIqְ`;n&O 9C:;gM6z _@Ñq5*iW=!NbK Lf-vqs3FzNa]0'63{*PR$ 48$XrgR+YR0WJO0,zt3/ P)G'#WXEd8h3P0'wK(%0!BIGPWas](l j't̚Q/Exv`+.KU>xc& ]5KW tKvx]y=5XԱ,YjYSaQ` YdQ枠5ذ,RJ%޵+k]tAP5b{:Sdstn'`=~3焄g}̷㌾$¢]W#&dR"@)̈Rbsǩ dVYNrѝbwKXV9I~¸ߜ v8U{(u$S㚑TͻG1:҄xfibv 6cSMTH\}shPcQ4hR,ٯt=7 V$71Zp2glsi7 .r>ÚjxAF+$緘cYڀPQ>٨Mz|.?z]9F~Blbxr`9Q*iEc4^Vt՝DyF:qÓ O{.?L֍S _wneMX9ʢAj"wmx\Y*mut31=9랍aͫ1*8@8 e:k/ۇ4mbu߬EVoTP 4\61q!ܜ#l,{惿K2~=(X'2aDKAo:q\Y`yl\R{»zJEufyz0;Dy@޶+"$AD!)goOK&]6oW{~V|ф斋QfBOFZ@G{$xV@cɐ]Zw) E(c8I )v@0DD5qfpyٖǯ^bd-~iØ1[K#Smĩ T2RCRE?dK#BUdg\JnKq|>B89<"p B( @ȈށD& aIuy+cgJKUzb%$i`!KmUȤ9Da@.d6?=є^e_?ImmРGb\/9䈰l4mr3r'8 e6(lȪ:WGI {`ckQ{WJkRazsUI%o8wG_WeDSYI٨f $̮l]ةv$ϵ`Q9:N6PO]f(f.#&F~ȝ݆U>]6 ˢ-lkYhRI*ݱ.-c{]@0{,}Lk Iin' N,5vvOYy˗OJ@%N`Is0:s^ߣط?xP.-gjq5Ib@=TÖ UEd.\M.Pe"d\{xFM@v bPcv;ZP.䛯J jzDjGl`jX)ԃ@suиEq'G#ڤ(,ɏxS8br "y{Y+Inb,WvZGȞlޠKhWF]vV%))VӁ̙0U} "?)2ukwmsĖ JKy`92oխq#cuTޙgWQ}28 li]n,:clcܶyA #LikW_0xkfwOWXf^ȗe%[Dam's{p|xg%m7'7';J @%PjAKt~UK%Q0]]̝h;sSDN>zr%b9zeD(56j('ΐ~LV}ge9 G5eg[jK\6^ JQZPd4TK,oA=)-I] ?c{703u\3tr/M4鹦2“^(?4'h*`;ɻFJ↗aK^ƐI㭇$#erGI."8˴3JMMfS{]($ MC.{MZ[:aDo) 2.mWI!  } Rbz֔Ƨ f>r6Re$1*ISvL:A6Uz>0Lʡ(Xd04ެ<(E̯Rl(f_>+9-˪fk<ҁ^BTjcXNXoF g`u*Km8=h,SlXvSc|x9&`(|`Jowi@~&w>K62γڮ$}F׬6rO|I) 8 sLo.7ׇ^*{tI,e$"wqJ1+ @/W Tf[_)_1YǪ6s5pПFR}IJnQ[g/ b!D$#bhXlvqb Vls]6Bu"T؆B|Gl*YK)FJߪg:{2&CLB^B{=|f"iJ/H+}0djt3+M?O[04TG&]dr'zec>iǯ71(vzɇNd39I%:ek ;]WȎ́ų*2;أRCdZ+?T_2)*Lk#Ց3o݇g*pDP\HӴS^P$h g-h#6漫l6"z(GL_ZbN1*H:m&lMX 'ѬzIWQo!sxyi[ۖ֟ n}UVĬʴ {meܫj 0RpDu1M{j9'2ˁX=852v (xgw)ɶa/.Á;-.VI1 p國 L(]~u\ea뵩h֙Nuog&TZ0l%{,>%=7 3Z'anEhǖy*+Uuf(MD~΁T6>ށTBMHlq!z6nxJ9Q7 W# a$Oy/tVȝC[b0SJA_U2)Hʶ@;; tft8KC43FqQEԺP$Ǻ8=Sz͖Ɣ1zVRzW~vmȟ9SK+],mbMk;8k4%˱?s]Sk?^oTdRD?R[s9a8]vAxpw$˕9Kߢ-? @S7q%@C vCV%~ -|Ĕ^3?&ZqA"fAƦsmع:WP^$FߜsW $}2Ar/z'I3'Vt.4VCHYgk&j-T3O(HdR+HM9mMߑݢI]*~$[agNs<ѷIr.,Aͭ<]18Q|h/23„ٺ]oO\K궁vIaNXN*&R˗#7|,3[&@smeLnq [(6\-PQ 5իhyKyrIWVK">4B!> 75V:'7|У$P[$ YwCzCt2~;lт⭘Շġ=Zs`&FT"j=nz[s Zt=RNI.pAd 41G|CvvꢄİUiP"MqLm+VFחIJ#ܸ$ͭg-uX}.f4W mU&.'|]A ot.pޗC^uZ-߯]Wj=5?ؐ(υC]O]̬ G'z4\*rc Q޺y`Gz 9B&ii:1}֐0M:=4nIgK$ȑ%{m*: h`B>zFintAZAO CoF@0 SJ:P6WVA;j+Aj0Ո.Qkm?t) 3T Kr+?gqin@8?k q T ZitE0(ieDf5!cgth&^gxKc$Nmjy斫"D$oV:\o0Q A݌~z̬䂖gbخ=f鮭[[HzTC@WRϿP?:׿eVbxbYiށ]!]I{w5PJۊ/by89Ff5P>oJ(WD寧+i47"Q1Rȑ :(5^_=> X^MNh}'z ~7,vk cR _k!``GqEf4!=$gFU@= (AS9Pf[*gQkouewOnu|URgn~+®(d#Q`% :d Ha~?ZomUs >nFDgQ` 'C5meF0-OG+Klk!_1g$ZCxxjNɛiIOVO-4g{pJvr>R,W1?jWbmKK=&a͇ځ_ (4IEy )}˚,c jom?}^yȩ\(mK@O@vSr,*Q+$,7UKFp#<ؖ*w#TLߪNmQWEzU|{iu.XcGrgz]`[edfW+ݞ],v6XyMN۫72LP>Hy|!-*1Ѩa~Ge~Lk"d,{$H#(}<$:cS@2=ƹ +?E*j ,8ɟ gV#-"<L\8xN/d mRMQ009Rz2!P{(>j>0+Fon\ C~Duϧc4غWQ\&l_Y3Eh!#*V?/X|+VԠXjDU^_}f,ƃwc3F5߂]ܡ?aQωرi][.fӡ"9a]{ {B^spw9=\21~"bDmnZDA 9ϞMX v@<9 l'IK M[/VR!N4V zˎ?I4mm * LJ|'n1ytgds: 9ZS`GaVD; > *159q3 D}{ i& loqO٧fRC ,8^֕"V#lFB_sRmL)$D'P C27G¶ŏ -+b֒2BS,w_ b'zUcKe߁D76SldW Fî]9 OH@ =$xbm n 4ȕh Gq'̾*(5 _$tSLft#)ˠ[8&#RKxGyPk}F|`YVeyG9w2i^$֙D}Kp1!'b=kY+G8T`ϚBBᲉ!`ptP&Hț,Ug Ual]J%Zo[Mݬ "]ЕR <{\/wtdAjCX;T2Pޤn' 9nK~2(d֧i h?1p=3۲ J fF}ʭmiUB)T[o-=2!.j|@CUGQ8רO; !]%&9BM"1u_PWɆȹjRPJukZ jH| Ŗ"GD^>A4Az&DX14G^%1lXU{G\Y4/ R-H6ɠ.%먬 BTX__m9u}?{!ӏTQ&[lf%vFu}fE$;+sm/Ѧ9ΞTn^rv0u*B#!r$ʌi#BDksOTLy ?0,:74 y=GiE5M3` GƗ OJ/Lm9Yɾ"F.jq2=s{ǧ]$d=viH)aç a7w(me2/0$q`Ls9=CYv ^ h"hwnЇ@_jO[.QUn9t# G kʹH CsV)r#I%]x6(P~YFESy :XLQE0'21*vYrzBϐ9 ߞ/'L]Ya25cycO_9s7`#k_9wB CBG210ef|ũ5~mŸds,*,QCĞ9&Bc$&V7 ^J1sm98:T3^xս!ɧ~7 vz(@,r򼊎^G<|-߉0*̸&m*⵪aTJ󊿩P&FH`]]s| Dž|eA9KX~4,$}%:qNip!kO 5'Qblgf1M=`P%cwVm_Paw-m? K0☀Ñe K`IWI' ٽs{PTBYOU7ԀO̖rRu6ݿs+0>H$O15r]*U60!Cc`+m; ph<@%7Hq"cې ޅLrn+~-NF 30'SKO[Jف g1 |?2{3d=e[ٮ,$yhi 濕{w\ٳ<$cAI|sf `s"+ P'=|le6"x%E'>Hk[o@:e^/7n^Q:y}tvوLϿioZ& S28a'EK?u^Z6m9InV!? 톟lK VLEC%U PV#t>a]i$ҏ  k-Np{q>qjGFR76P{C^#gf+saor^shp(e.zw= jvt@h.%+s[( tl4Vպ'$J,H=ySL( NtYqihi*^v%Ʃ  =q8:7!bc& )$I-цܩP!l&܂Je̿.q;|8;B.nR= #\ lu/cRN7*Wr[|Ц]GK4L?^*_MDD-Ʋ"~(:Y7wMELu`r6G1U@6Y*hX%mư+sݓԗ$`hr9KaNb2Ԙ^.7足T3WX^w1d [*R$7Ytd{n`iGPiW,Rb iҶd;YeOG|v  eStj\t:ĺp  oO ʝw-vG(|cn}?V &>Uh2J=i26 g ..c$9SΚإfn )*&?Qz?yКjڷKVRHm kc S#qBST~$3)tԧ$ݞ2yNmTc Ot IcG]7624Pk˕)և]Ww- n9NCegЬYΡ-A|Lꖰ;h1W36/6XOJ ON ƪc|rI8=nIU?$Ʊ1YrٮfjuMY.`AzEJOE(BD^ʹ̋@'DUau@TAb<уi{VKi82r| aNaIȤD;#L;C(-$"~kq7E=AIJA'> .tq5[߭ELhA*M~c_,×aB]BH<~'Cc.kJw𖟎qE%fMǪ-/౮hd): g|Μ[d qVm8ɏwQ5 @:ROSAmB5d.(aq-sZ)~&`ESÃ:ԙ+AC:MCB7EsqCk럏Β-M=K1GRJ 4A^a dQ5ri9ue={gi"U"5{ '1;)R@'6dT”#6fǙ@7*4,@I­p\cL)\h5i"d”do1-X%glZk@ \%`:^\bH(k|ѹ!U+SreN{ߓxRKC˂T֭t}oOx˷ȇl0_LP1շ3UhZѺpJt88L:Gf*NY ㋢-kRhsI@F$lڽvo*])ע1.5/YVG{l8E*d.sDhTt .Pkc"ZÌPYMEj'+9jWPr^) ?vV1Gq})C梳FT:geuv3?RluQ[sb/:Jۋ{vu|UAguQ&~~ԑ1^т8sv9Ybo&.6*ëK ΨZJ>Sixple̐lvIs4SvtUr;:{4?1R$ /mtE{;A4&\z)KES>zms) v 6mA]S}^ Ahl /`?qNwMdF^`~ZC5 Ex^aV?-UVh3щeji۽ -E,`QMSy8Bs6o/ e5liwAS馎O_#\m\gY8Hl⽖{t);p鄳1=¸HAJNhiڟh쭺!+O/$P6e FEa kdhE=@l,*G&tĕ O.sQG0Rx ͚tRyZ3N3iD @=1L92RAYo&§_ݿ^8E{Oݲˢ/Q8ɲLJҼuf%E>S8/Y'*?HvX41Jp.֡{ Wdz 5S|MTYr7c RiȇG#L^luv mK~"t֭OP6/Nh,&"ie Thז :WXs;6C-ˆAVtH`lEWp/ANG&P g+ủ_* f%k?س%`KkٙN§MJBB-da¬I-[G)}V-xk `/N Ay6b- g$0xbjێʜέWVICÐ`oȬ7GrX\lhƀȘŞOu@FFDF0"{9 9:_ϲr`V.d ,ډJr< QC U, 0d9LWW(HܴT=gPy=̹ݧ鍫tɿ9[$l0hukgqx[^3R#_+Bd Ol{\?$/]r nBgW1G]ASA4LFbMq;k7U(n|ą`.LjizT}rG\V_ŝw!cW,,2NW!1~Ϗa&HP_C'[LWJH{F^=/x@shcΐ;ooߙIx#O(aO _a k9zCa%M >WW'ɡEBcr=.E,MQDӭaVP]Q5LkWqie!@Cݽu3Hc!E\À/ojGk䠛"  qP$-edTTM{9`Wr]2O\ B1Uvjx,$ q[zSIh bl)MK掖a\@H',|s2ޥB ]"'g֍L? 66wt1{ܢIrAγjfxqiJfőUhq݇dyyM[IhCp J|9Hrn"Sy9+e@mD0X3.גӳ NǎO).!HZȢJPϺP\n- z&Гl2.8G'Mrm R.*7hrKo qE]"zN=T3{Vw0nfFGf8Scd泌ICkei(ezsO~raP>(P , '1M9_X H)EkS:R| r}zѧNiܤ{XپC]G曘$Kw5.ϰ$pu_S+C?TPCo_ĜAX z#r舘ږAi+ Y]{4ɮB_/5yc[V0mK+K$L֨'w 5m | 8x QJkMY+fxaYSM`ڗskX_Q+S~쮢R"2& !嫮v*ӝjb-oq(:q|(8>Mcz-[-b} r/_GpC_.>hMYSlUln .+Ǽxs R@9kOF9c{8F,jQ6׾?FBDi Gw]k }$;)󛌤GY48ٿZy51?e16jJL0u^>XS4֡ ÖH*_9 t$u#h8zuJ[턎;ͮd1 A̭դo<)nW4xjtx#BQ,>+"l -uȸj @ŀ#*Sl9k$w6if4? ԝ /W!W.칷O'McHl*iouckffTHKm@3mqM]q~n^ =5# 5>S$%TX>Lg修ӭ-/ *\\GVƸ8LFT8bV\_%/&9!m:Jm24h;$b^48ۘʼΰůt]@D_ y:☯mRHR =ɮ]< vCkMztZ}^`4lIPUd?u~-b}l`WTi% 3|LbD*HBeIGZ"U&?_JuηP[4 |5(ai`$ (1 /5`g7!2-O1OyJbVe ;3niQҿ ev K-(̦{jR'=U72[U'" @$+ԏWBb"(o* y~羳Ǔ;4Y !Zz@?Bۣ,<,xZ?xHi|RyWM&Wsf1Iehr\G$z=ӹx K1XY-29[VB!Gfy[hΰ>O䮣y^cR7qƂ(X{& {./8>GK;џB˽vt7>c.0Yc柊$V&lBF'k?r+ӳ7kx#1oҖʻVsk)NQW`>;-̷dynk͉йy.5Xr_*[(1Z Ey 6(jRaK?&, f|1dەlDrnvϨJޜeO.M=ĜVKHA?'c4S'׬hM 2 % -.Q"*QFq2AV}DSdsbxר0衯 ם*9I2=@%cp`/7=-!O;)Rj-R|Qt_ׁN?жJTo 7YsL\=(|"mn8Fo5~d4z&L(ׇD&*7.}Y?zBGhM6No9Ԗu Ry>%Lf[6 /~vv40EUL_ժky.jpX(Oj-:>)i a.DJljН'~#|Rm#?\@gv~6Y㏲q_k 6x&H?yK2c;*y4[/[峺܍8{'f ]Xh`HYI=la 3B]Z+ ٓ\^h!,^W(mKZ-%"Oj|U p(Q' MxEҞhS){-{"p)3y#rZ v0vH6_¾eG),2V}hPzuKQ]F9l@@;cbrTeIi4uk"YJ;{-d?CɄvLKRG1wA3 ]aN$ [$#BØ9kp xH{aTFA /fqSfoCT$l,*UYGBd>!t%rh fcэI2LsmA Kƕ~•sm,:|BAmh-H Qݟ?{6[jϘ}Q< Wzc2O 1ݩA G `7[; .j)R9\`cOV)'h%v(2 HGl-D{75#.=7DҮ;5P!l9D1|uj~WtA{8L Sc$Q1HXU6Ź۱Go";~O:seIC|:OǓ.^->fH.v 4HkJ6FgSv۷0hK3qՇ '2 *)zoI:5]h)V8\bkz2c6p6`tps$uGD'l#xxܐӬŵɂ'#Q=utjpHXd1:J8'-Nѐ06/@OF oLPTF|0^8ǒ+z,&(C'K/P9n~R)>kGB>zOxOV# w.@kK^jQx,~Vyn7筕SoIGs䖘a8(Կ5Tb~Q},M(/d`d$s͗,n)v"S}54Ra'}GtY:N?B F|ذ աf;mpZ ]-7-M y]{ZKM8x' 83cɑ^ 6G3UMEšhT|E~xB,ƅD$ 60ʌBL_9;f'0? A?#Ɍ:i(1AS[Rjo2Cmbl[{.|%SƩbI}6@- =ROՒ۟ 0aԢ؝|Y?T~etJ%$HExǙdi9<m*E?גx W9TYU|4or\򅲜bpL2\Wp_>E9B`yI[hgܚG/YJ\?  twXZ/&*"+A勱p*RšAvTH7A{b[HW|?) 0;&HXYȭ%Q j eUxGC2gE~M7{d.@ ٸ!iC FA+9_VZZd?a"'ey&?hbf'QV7J6p3os ^ߺAzqB^41ְTV5q6C%y<nLӠ8ܝ. lRi|zxoE䲱@@ yg&RLU}))"J%(y"`G('=Ψ ""N;XJ?L==SL,SQt')N-RvZBF9z G*!&KP=uf)s|ԽB*+}D':1nP$y,rF&mQ&0 IXCzF(IqxֵgVCG/cuX9=odx = ?3Úۏ[Y+zl$RLm iA^Fie.uyҷ~I^[ Ae!R"Nr&4_I{kZ%4аWAlKtt"> G=7xPKhO`+4 g2TUēؐ$}."s–ԗV-LX"_+N<ȝ@ PZ;&Q+{阾Rluߴ&~.TAwދ⇐4!H{%@khX]LbAZ3rp#]TtU;|"qL:5w 1y%Dfub|Ơe7ۗJ;4m#${pI a㸷d MҘ ZC5F j۰AW+5_``o0d4/cxzТpn~KJ]EIЍk tW41G¤~[b߱t{ ^7Fwf\n.vd_/j6,h$bJC}=_*~ء??'Ín $B*ӹVl #Bemh Ve<1uV5lAR25e4Z9FVѩ_m" }<'r >gw1<r0ڨGae5맯9J+cvҿ{תlSN ]Ab:fm;±6x yw+09-s'ͭ"ZB/O1ھx` 0%01#nLzA_LU4rhy TӲa'f]$Jq=r*pᔦPX@X+a^S8/3(r/cLzI( 5?Gj |uؤSL@'a;/ZnR Ԍn ua >MpQ<,0q(WҴAKP+ qCkT<-Dƚ+ٲϰk~HTbx]vՅ!p3OjG|_TwOjL$cqYR򯢥 EAbR?.ܦܔ 'X* k_+ XDBc8jg.ד Sce#fy/JB kn+w[j>@` 4w6t(rzn@As =:bEG@SMՃT_qFlq2䦄n_d>eG?_߾n P;˃},L>4a;$~f/#I7Gyg[VG%K* 92Įp Udeezc_hڛ =:st,%uǹ):xOncsaJtsG$(kVWxƯpDϥ<ݥ OP$}<,w(S/=E\d+.llEoTj:TH}nyVWoӽ2je #仼lNK"N]H_ aRCOH-}Mٯ ߈Sm9s:waws[ec}G>W>R?s@ڪt,HeՎꙄdVHɰLqY`g8z*e~ {)T:؟0e`#5 qEm8Npx/ F rٞ:ˋK10|4bNkA}N8T24Tw{hMjyNLgD̢ɌO6 G3wS*/਒:ΘQhэ;Zk_3@U_ˀ/&y({,R[l5sZaQCs_ /qJCkc+YM7l:oe~&'!ۆ`Kr}Ԕ~f Ctds[ ^ G=ң!ysa5W-e>R$Jbpm%ZiR%0'ꡪ\[vÛsF6O@s+$)$Bٌ2-i@ abu'w&HN@ejUգ~cr[Q>Ee G?hY䳔zG*Wjx+)UJ1Ԧ lQ-$ZM󉯟:̫&3@GNXڑ` c\{E= :}#xQ I] !Dl^$ s- J?JY'+--*K8pUpȞGԞpv>cPO[%DJèjܜ#.>WdzdVqBϛ}JB=_?hV اJ建&Ϳ:gK3F @i$iW]muCU8Si@aݬ0Cq穘IE^!D#SほJ&O|s=V~ǟPGLR@jZNM^!O{{b=%wir^;-H\仴۝ d4"ԙo0SCAJGSmm֐;x_3Ь"> m/=02BI~0?mdrE1n;IA?Φ;wQC ljm3pE߯8pF# %U8$}iyȧ8h:!?(6\8,ks,=vP8D9{#?<̦ )fqXe1$\d\pA~!- L0f̺DSG1Ѕ !!Zɔ?, vվ3HJ䔟ergjN1E#J Kc*&d:[f=Ύ+; q25oIfuԨ~jw?cs,,\< `>1v&CߪX.eI!M &Dঝ }KbGۤs?SKgj}C; cU#jlU/삑YQΈܱ>ua36ÆDܝ8^wwi@:xLΈ7|Ra!˔ 9rgf٣8rH*|9"4)V9>=TIp 5)yiXIDy;cKs[`QB##u`h9}Dxd7#n,-M bcH+F,릹zĀ9K_-og"# 5Yi=]9 l@v@@!TV=@08q$N/7,ZZ@[bi1c f_D'Лp`QEeާZ5(Ӛߏz_L6"}Ā*DǚfK($t1)&HG^D&\kSop"g 4 Uw^߸gl2q+4kVW5%dOCgC$ebBB/Y ͧHܑ֒ o: ̐y` n;csz?$iYF 7@1<UbgW}>1Pׂ;.u.ÆS$} 0l6W=åKvD$[iҔ69q;?I}3"apn}Cr"D UD:XW. mSqW3'CunX r~28[^qovE\O̢0 2~_G:LĻ1g;1< i0zv}ʨio0l,A\lh:~f,=LcrU&(:V@crs QVxҿ8^hl ]mÜ$q|e_veq>5ZPl:ORk|.Z {^󝑿 >FC6[mğr?غ*4boK?K̞jK5`6 :c6]]1ЍjE&/ZjSluLBDsƨP-gJMI:hNk\q$SE+\0(R/ϻ`&O”#uY[Lja]n-:w}3Z<9=u_r UxGʍ#SVQ-+ ʌTdPC{dՈ}gѠ{ 5BAqEK $'/(v(q88٫G̮K -2fi']rjyw8J9?X\zƏt eD#QV[pxY-m!Sh ZaC\i+Hç6Ј7\nuhxV]"W֐χAꢞ,7.U97ŬكNR%r҄a*RO3{ ""u,6ˮ7. ٨#~і,t@ $v/Srk)(gNo!"H6]饼03< VkІeޭK6.#j@u]W2!ۑqXBtQO( J|J8,{m " e>e[g ; JFυ0.Ǖ--ªtd(;0B)YV{'Ҝ,SXI j@̽Sp;?[_ ji5ܥԇmY/=Jj67˄& ȇztooNs TpwtȌp]䠙Imt[:1#|9 ?]$O--y|;\k Kei򧧑J8?F: h&)$) bt+JjzZ=̝Rzi5 `lW2)g8WٽNK=E7#qpݯ|kdȣu:P9" IrwB$ >t fYo>)Z(n|%܎E?%wCO%'$MƎt2q›%2FpZ_K0Uw\yW+a\H=FU1=jFb,~4:;Kv>zmr&cyagLkFtH RX\Dj?I^lls(aS߯-RK\JiU~r㧦S1UFV$1s^ `6qaYTug,jEv*wE(1uZ[q} RA漩APg"ϗ1JD7{Nw|wjr?0G*5 1VB TMn_I o.C OWIl&nՏ(_0.7LD9^v  {(N.c)\Bu;[$*߾`$ B.qȗB u껂uejJ Cظj`iWHҎ$ûjr Ho D/o$^q,-OLMy8үR`!Et$*֢wn$-xҊB*}6/PƭCߛ^)wo(Mr=2f' gME'mdRLr<_gѺz7p8@`wٞ<1l)Cfw%p(|(:I^,f4|Aǩ@nOhaɢ$pӼ{]i>۝2(򻀅Qu0T4s֢wh=Q2PN!V=hfH,\HTQHnI57:K|yw/u+G8ٮ)$0^f*!J)-}ռf%-@F+b!Xcxf1fw7˸ >4ѓ]B>O2cy|e&LǍ-tv&cPtt\9rJc09_VMzqYK|Az$[V]Bw$GYϭX]{D.כpN^s6@$:=-ns\zvw')?TBy>aK]Y\mpZ= qƼnL\Q0rsʕ;Jv)^cS=CjA\02踌W'={Rv"ezBol U ӗlqc bĭ[UE@*UE X87hrմS}D!뀹I]61MnFrerIyo$7\.?+sFDKJAD(\m 9j>z|tU:C N:[fq%RsK"~`>xƿfODf;a6kGf6Gq/ڕSa,r?懋+cT42_ϒhC4=*标v{Ō[ypͤ2LN/ѥF#Gnt!"]J yИ~&>Ts -|$T<Чʎ" 924[ҪI3lRQs`9ג7Qc ԂOSCˬx)>Co/kwىS C+,,'Q'~.qNiN1{ q /a_ ,46|0 _CIu[o>W~ 8\EQ˷ 6+Jٙw gMԯBp^lҵxʵT$ьI$<Q_f5`nYBL(KKr}pG{$$;QQ?2 vlh,ep 3R C7[Im3CoJi!?^o]n~)IFt0ߤjz8 R̬ D%J-zd|ʊ)/L;ѳ~.J@_!7g9Msd~ըyh̕VWr*-'UB)Yk瞂VHyAFrJ⮏/R g$qe=XGڷG1a+<)?B3y"| mXp$.D5[*%=Z?$TOa c̍I]_{pe +*]،MvG -ǂ%mc@@Ntk 0D p<uKj >%ovf1n boQRU#M-$u%A j< ~aſ.Ew)sP u . y_ݭ j\] wӂD,1{?$lb@(:)%q~lϛ`ΚV@kD>cX"6趮0)<v%ܔ;Ui5W 8 FaUiS+^ ϯs0&RV,2q>D9ϛ4!cLG-ԓn|HE76i- ͍waA_-mOz%=ܕij˜6~  ^Og-Zw|;壳L._)SCAtׁ1&tL_Ln:,!A')z@6#Y: NEp/UBn"QۏY%e#3ow )hYzq#s3F {ꩬ0څVQpɮQ9V<.c_0^sll -?QK(w]BZM6KY˙DĖ>kz2b w2*ن$azs3 `dB¥ŦVz0Xdӯ(]vmd+{Y^>y=%ylOIyQ_Mr7b |}tn$ 7 9 WUzUޣĘ~s- ( Ane^!5Ϣ܁Oe,$5G&)6#Jg?A`0inױBdX'Ao~u`? {N>}Fۅ?6ėA7U}9mflnXX]~-if"q/IC$3b0b ׎5qU{ }Jv* mGn%,ń(dB{lʨT-,)3rϐy?,*XwOj J-N=(2b2'L>Gy $A-VzW5gl HRC?;\u#JIXf]z ,Y~NV Vq#o5Vղ+Ĺ*\ji1aU VTE,vu7xm]]{[vB .? jUq( ge*w.Qp#@p (<&"lV}QPt[Jm1cjDIɕ:iwhZ}HHGZPŁY}vM$%bd,s^^}#):7+)u|H!lg_Z˔=Nԡno 74߇yaTuq {\2b==#iYTwf?x϶`%҄3uK1ġG@ȮP Sƴɏu%VrHk\&%ݲ0BJ%L48=&?7Ί72 2εAK膴0_~/~9x UC b#:u5 ˅ɶIOSvҞz@ʡLxEkHUG b{@?o ISZ)oiF8drX^%CMs[py]2.w^Rnˋ 4FmcW<&]d1Lnhz._@m ϕXs0bZVAj줔pd K_X5gP,3-~m^oM/8y0mDR/mXa]k6]hWǹ4ct׻t&*am}5LC=Nhc& >Ŀ~A|J)3kl㏤=[} 4^ x8~Ƙ;O0d=JiT~Sm9zebj`ǭ y5o9*yj3O4+7{LI)GćX,!q~s)& "琣*} g蜿A&$s;!`_:kuĮ+XCJB62e~[isR$Ǫ!"_1vObkrTE4*- ޅ0*ҟ/Y9 $ü0 ŸJ 1pc'iS)PT b8@\e 9@#/C 點8;&~(j{s\3?94șQ7|@ckP7L&Buϑ9jx0*1S:#/@FnφD0 i|Wk^ ͠:t7e\c>{$3+ln. >N!ĖtU ,4JfQ_/VchtBZKP Moymćȥ.~"PX,zB?(,i'Oֱ~*9" >x:ATz<Σt(T^"! @߉v%ȗJM^&.gP*]ȹ2}HH7VM.Sۀke?L,Pcx3FⲢ)s6Dzjtm]Z`3fsg6Clh8؛^'|'MR< `b$ɱ2WکJTCDw%oQ8gH*C$Tg+=-+wZYG417܁8#2{:NҙTJ)*}"ΗsrI\>ӭIi8:a"V[ގCV{j'>}[yRO49B*A=Њw]5N: &i_ yPDRdk2h(uY C:_5֙>3~π/(/l[@p%>w O4e !JbxRcI!PVe^h 4en wDBiSbQP}\UO@1GI<[Pۻ3ߞlU8~cYP/#}Ql1_ Q1{ NG¦.9@_:XKA'Y¡ TqH?V?#=p+!HllNKp( --NK1;ljƽ=dX`Q]դ!Am/;ď@mGzxqb(c_^e;^Ydp:ɺ}z\mFX&I ؜|驾frB#l8z#6?8]}~1 KRjQEϵ/d˟k`E^ dq՗lXBKkء1mm'=W|<|7%6~h'Z%mk\(-Iw5O3G&_Qt=n9B=tR&Vc0Ǽ&!!&'dvUYAPĂ?a\gc caCYaG5'Z[cX gf־H3 |gzYUv`cSȗ} j,02̹ʼF P|n&Պׇ\;P9̳'EƂ<[73yV,g&ϔmޣ-62$.F4,0ҽ;~UrLQIj4Po@Cm,@K mik90ZrV'ӄD;ZsCA&#c˦02eNzqm+}/ 92]=X :"ٜ7Ly3xX]L:&=R g_j\{X2! ?t1)dCVh6BsFOCtPuɭoiϻ7X;-mf[Lke~gT;q+b_26X+ǹ;h{YF0`@?ll ׯ N1+HL&ߙns'}Jz@fdx8jи@aFC8350mٔeֆr(i :z-(#s5-TvU9^9 > -}@Sd-VYJip?X"oB}bcmؼ:x Md~E Y* _ fW9~I#{TW4]E[s,lũzO[*T _@yT_9+24@G_6YV,Sim7*܏3'Gp[P䆰mC7 4VW_F/܀ihI[AWH}шTN6ԗHV(KE{É 7[ 5s`|(:]lb L _Rce'akm 6[9Ì!i~aqENڮ[Le XZF3X_,dW&^\:RD^Ku%-@d$BLh/PQ :AU!?θcf A)oO\DVd\K=CWYzdMAl}/SnyMX TdO̎_n<v+fCc/q^oyZ6{'3 ;Qz>Lh@cCv4HѲ^gMg` Mϫ _~#~LMa t`/}GC@{17ͰDNT$/'Z``5@٢EʼnYaݕ.+)2vsawfbaa{ZԢ-daZTGxZNJu&q *oyCX+kBK @;YY[$`9gVQ5m=,* w|pPIT?_[RCXÆ3yAMQSM߷GdIHv},cLs)n>ʔفJrCBppG'%x ٫\+MXaud&GBq)l|#\rv?eSb鯽gh/Ԛ?v,q*85z9SZE![WK.;j< j7TB;뱌 $mi ;,}ۥ:=F[9U 깮Qzz7 psO;O,lfq^^@qb^$UZLsBHC1ۡr{NF%|bu!վ]>!+u*P A\7Y WKHWT<_'6w k#*굪ۀǡºFJ֥:n|G#jtsR`'ʹp\\sͨ˓X$b2j c(@22! G~1S[&E)" 9/]뽿kF v̾&~)rSTT8^[NoBA P|'R닗Wv铐R;x%8q?,V 2#|>S>f n yj )iBSgC'hq*ZJ9(V&*ي_U=.,ûԏD;A" rQ32\9UW,T^F5̷ F+Fwɫ/]ȟoc+I}yoPev=`EoND;0ºQϭ'#@3DN3cm As'%<D!v mԭ@,W; Pܖ TU{F[O&iF7̸8i]x;F1BsR ,"1v#xܓ#~R׸\rvŇ;fodZFH#lY_Ba9 lS]8Oʑp_|du\-d^>v3AƳIn7C1Ѩa/"RpF`=$JVH#EߖH+*[pZLY>7'mh7)yQ֒dMD6Hr]_(psl}9NOqnt49(40f%tz(!^xYBg,Ȣ DcSҊpz1ƚL$b5;xjr,IL*]WQ gGڣjKt@EDzd:j̵(MO?*" \Rm =|Ă,ew.1U8[o@} 30Arˢ(8kw''}Qo:4>*ukiXۊ=Neu͗ٔeɻmJ=W5} 88A0nNl#៘Lą@c qEZ'(մ9_䕏؎z7vAVKc3]ѡY4i{\ >W_z'ԏv )ӂxlIYXM~h ccg|I)4Y*`a* MnXKߩ4 d`5vJmBc BE#ںRA|~y 9{`q`p ! Hë|˺dpup ji:&ޛw&/;1 {tú> *mP:3>A˯osmFn>4CR8ХxF' G|aDa;ƣiېoӜ@Gx ä,&W)5#E,|`6Cԇ/]vEP$~viᄩ*U4n/د¹4j-#Iw`㯷65@jI6]"| N̶SHT0^MQB?ˤ:Fb\g"v FDt $s[\:Ov~9[{[f%NDe7Q!IC飻*7+bM1F )_D:oRE`lEU3 N4RdwM3zTU\cRc,Qm?S۳5?=>j|TZ"j̈́$MlHDCMڲ.!smZL.2E)oEbWx5-U\خ3q3L<RPEhb~_dݙzCt=)xv;%[1O76z'=y)} )sǨF1{N2d _@,x,L㫣ǜr]vUu73F_~k^ZnZ~OvmI0W8k]}?m#,8;$&@MpVB},KQ[ˑ)4uUvUJ-w2ch[5&/AWbuLS:< 7bHn2)Ur*9h@5 {J3GgL-Z/@GNX _' LbΖTz*eD@ɍC#x|Ls*,T<*V}3& [Q{\] i8xͼ;97r!FI)`u5$5L45;kw8(ƾPZ"K.`A?Z+S)WQָ n~$Ҫ J}BڀӼFtϣaDRgbkZN◢cmz ǣ/[!hqˊ$^Ed8vbu.9jmIO`6s71*9HȊ 5@T>gl/^`,_E,l|i\=gc\t[$)."VED $h*iA VkI؈-ф3Y4cGcKϕ"qݠ;ru2]IӒaĜUT>'S[1|-f֯PAi0^ .@XITܒmJmJ>/N( 8oUJLCwo-nh!<3O"7GZ[ңH#{ٵ8;"- n9 - I!aB˔}G(0-mj>4wv!a@s~B}04rpM'RוXٕ'>ˌGQ^lO.fO=nCQ?OqE 6ΎPW;I0mc|d7y4̬w+(J+PٲY[E'O _#4zщnk٠jڌCߤQ>7t!W}]sQC{z:J!8 cn;_γߗ˜QcgBCOY|EIvëߨkkHgH_l}/@߬+vw$"mג`wUpN"2U @#63]q@JG!f2)"?t|V26.#^Zש!%8^<4^9P]Ӱ&L#"޷4o) @+jhԼ$?g]v  BE 1'ci: Ŵfx Rӏw!Ͻz##fX'"0x2I[a_13mRn!gi9ńS]E߶9))y|mеfgQ/n%yS=չsyΏRחgi7¥>ex' զcHNf]nht:Xϴ_W4NLn*V'fK)oď46ugВ:Q@h#]| DHƳVv_W,yƤliim<^CTo3"KP*/uyq{ޙzO'b'W3(\sEJu+嵖y7!LdWdH8T@jl[\'5(c֕{?qC>c )=(95A!5v|SȄ@='_-fO$b)^ڒk g(IRf{D*lv2n3KkMG[ lxV;C­ܒfP!=zI}ZO]`3eWeh?U[ >۾e5F\[S4twsz-Ѓ޻GK4@xQ9mٽfLU uI% o~&)tB]tUwz1:SQm&]q"^@S`4$x|ײbq1t1Ȫ~LL]}; x ҮKa?Ϫk)J腐?\LRәHyqozC?r缓Ty4R-$%X)8ƎJ3R6 X="Ӳ\T_k~ I|AĿa(H;A=vff8K: z#\s%>O$#__f |^#nx4w\#0k /ոx!hzѬGrYG< Ի> )5^@coc&0M#\oݮwPb2}ǥ{-3 T@Γ~p2xo\.X %"kDIc1dyywȎ[,ķRSȹa $^=6\C?&Q|B| A <1 h~ Q"/mΟN >6bL[iFw|:Jm1ٔYj9JB,?խ׽ES;i_wS:2n63vl|䤰ij5ð74ktL$vf)xOls6ߎǗ۟<-N݀}$&W1{)2#N j슏Z &pdom0kVUhdZ}۹RU]Ë׋/)D@&yrBfbًpU: E!ŧqRP qiK _ȹ~͊Ֆv(k|<UlJ DSԆxL0iYOEӸdA{YtiIqsQ1նcAVэ8Ð*0 7DX`>g*Jfrֻ]]Gd9: u5EE128|d!V<XDDcq'^4hm\L='G[SaY'T~GmC5y}FpԉJ}2s=FSFDL^dT:p0RK*HKGF 88=uMX--4xD}Gn^'f>I;cf ci$ߺ(*@ꕇFg*`/݊R?$ & C1[`!@N ]sJi)W:Cj3@ -6 El34^K8~|dʪ.-/- dy" Yrq&T{InR8١#n0& ޑQ aٻg&QLC]FxP;2P[1r\;ZtNrB F<"$UD.1Oh1QZU2i1+?qˡt1FbON@ô”:..nk^a(JpMbjn#b@n) MJ=>-.I`ɵwN(#_B #!ѓG2 jsM͜N$s9#K!2PPg%IX0F]d?Ld_.WHxw1{ʘ(\T?wq5Ζ|cQĻVᑠ3SPX%UW2Ud kdu݂}T]Xn)2A&U͘4_Yoif ukX[ G+M/Y{u>ZS;'x :9(uE.ʂBW#z7GZQ)wGneyJ}~,)DD.QQ I~0R~t'.oMM!5.1.F. .ho`8O(QS r4ix ̈ZA VPAײї˿Z>p*wRU͢! afygz])ukD]֥N{d>A5 zM\|A0Ekae~ J ļa$3 Ї/y}+و`!*QQD> a+څ.X\gF+C7OIо&iDkDjjջnr: slpeN`OvʡĮ%Y4$^.8`'#nt?tMg" b@Cz;GA˔C9]|uTN/*թGE^%MSU *.?>7T!ȠhDլRF68qIٻ.À܌0wՆ5AE\l>_HF,LI?HH3:3ZUpq|{\*$ vKEM)k{i"?f*Ue W0P:^tVA9iJJ)`T #}_ř*F2J+wo1p:@ejÒ8b%I+q_Eoj EwmOT ^V l#q} bpanVtUi1mP𷠩VRap'$@t>%0Ux8U gx0EG;Q.UoL|41BWx+*Źŕ؀mX Wt뢏_lz~Qn8D+RV8Jׯs_g V߹HHT"]̈9V3A+PgS2 8T7+Crbtw{vJ5٘.>\} 3iaEȌRkx"Jλ=޼rƉQP@bp?Ǘ"Gu$wu 2#gڽ 1m.tH_w?r8Z. Aڔm*%UTHI؀`OQ1&B `0Wqfh(KU%ǦJwy*֏D(2地:ZZx*E"GIvWxX"fc'Ι~Zr[x 3&ڴo carp diOV ٰ/.Yu*/3ܗU;BisT]tJIHg!zS] K>@(_l,i e,ٟQ;WlCD>nX5|Z&.'% UOcBȩەK*FeFC]N55,pF ZRgm #&<7ޠEbD|}_ԍ{nF0yhȵ Η=Q1=H(9w>bKC}bH|G,ф(QJa,Sn$Q'x"1g %ޏ8g@? RrL[]M".И$,I[5_ƋXz-IfQ5UW^Ilx7iq3;J3*<7.`eMlfhN 7T,>$ :ݢ4'm@s@<eh0!`r4w J>d>uC1F@g|Uq0` icŎYWz `kOӶU|X (.F!"QoX*҇neL$t}m=+Mt'7j~D8/{"{IID"75(~Ý*{ڡ Ϯ2ⅻuzdz7 {B{yI, Iwcm|w  YH7hc [H 2geiZ/tqUoa5tm}2`b2`^4k_ }-F \c$vX"oŋǓeaQ2 AN;[>J?]5kma-a[;,7g<!uNJo4`G@)ZNCԽ0,59fL%O4K뜜p]N2a~֯:YGɒlɪP#;)S mW}5K2ɾĹ/4"1ѕӓK9@{o9*S\9nZ '-߸ ƑD*zg4/}.͞oް)aaKH;,~|"np>5w,E#;2Dg"a}( F dHӽKkWq 4Ïu5(kNi֪>['ZqR@`c;i6=MJ(۪*B i$6L˰7fP4oDhmXYg4 T<v?C6)7lMN05B)I],l)b+B8z`F$dXoJ}?,?=%5x>s%P|C@LZnN.=qŏEP͹Κ+TNv!z2>FȱZқ|A_ 1'\o[7CۃM@oEh9A*w#D X{Na/4M=@&)4}&! g=C*r>{uxH A÷YJXʬUY|:vXha_-[( Y1N6T[Aݛy^7 oTu^ͬ|x5]*RXBn.._+ x7b@Ƣqqg".Tv^J4C8&9pOh'R>Æf&JjXY:"vE98bKB4u eD xWҙnĈ\xd,Tyjt8ff^馢=W5}R/1=Vռxrkxa(ZA0V*n)]@}@ӹ{(3]T-5hbWPRX^ kmT- !gNv_^ e'a(65:K ٧9xlG":WJ&)8\ Ea\H85%OPmٌ~q&𮊔hRk*O8e]cXI sGq 훒E-QbP.|y7g-aLn@82 ,VAԥeF4|>{?|5; 9Mw5Yk&G$ݤHtάFw2)P.Y>}/6߹]e4hcN"*6#9_Qԫ`QX:Ho-Oqp|ty7FLe*2]rWcl r$ fG8RzRS/5u`42t'bJ班"c^u9mWge7d܅1LAvhV߻ N%uT6!5GU/g z=Btgˀ.mLȒfXMR-L] P lHWkSdXgaفcT(ϱ'gI:@ˣRan?M-y: 1GFl y@*5y-Mf<)@΂@VbT#FmWSl˨j\i2S zWeޗ]cH_kvy , VW,lU&