aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/auth.php
blob: edeb72aee6c869d24c9c7f488c0f0e5406e833d2 (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
<?php
/** 
*
* @package phpBB3
* @version $Id$ 
* @copyright (c) 2005 phpBB Group 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @package phpBB3
* Permission/Auth class
*/
class auth
{
	var $acl = array();
	var $cache = array();
	var $acl_options = array();
	var $acl_forum_ids = false;

	/**
	* Init permissions
	*/
	function acl(&$userdata)
	{
		global $db, $cache;

		$this->acl = $this->cache = $this->acl_options = array();
		$this->acl_forum_ids = false;

		if (($this->acl_options = $cache->get('acl_options')) === false)
		{
			$sql = 'SELECT auth_option, is_global, is_local
				FROM ' . ACL_OPTIONS_TABLE . '
				ORDER BY auth_option_id';
			$result = $db->sql_query($sql);

			$global = $local = 0;
			$this->acl_options = array();
			while ($row = $db->sql_fetchrow($result))
			{
				if ($row['is_global'])
				{
					$this->acl_options['global'][$row['auth_option']] = $global++;
				}

				if ($row['is_local'])
				{
					$this->acl_options['local'][$row['auth_option']] = $local++;
				}
			}
			$db->sql_freeresult($result);

			$cache->put('acl_options', $this->acl_options);
			$this->acl_clear_prefetch();
			$this->acl_cache($userdata);
		}
		else if (!trim($userdata['user_permissions']))
		{
			$this->acl_cache($userdata);
		}

		$user_permissions = explode("\n", $userdata['user_permissions']);

		foreach ($user_permissions as $f => $seq)
		{
			if ($seq)
			{
				$i = 0;

				if (!isset($this->acl[$f]))
				{
					$this->acl[$f] = '';
				}

				while ($subseq = substr($seq, $i, 6))
				{
					// We put the original bitstring into the acl array
					$this->acl[$f] .= str_pad(base_convert($subseq, 36, 2), 31, 0, STR_PAD_LEFT);
					$i += 6;
				}
			}
		}

		return;
	}

	/**
	* Look up an option
	* if the option is prefixed with !, then the result becomes negated
	*
	* If a forum id is specified the local option will be combined with a global option if one exist.
	* If a forum id is not specified, only the global option will be checked.
	*/
	function acl_get($opt, $f = 0)
	{
		$negate = false;

		if (strpos($opt, '!') === 0)
		{
			$negate = true;
			$opt = substr($opt, 1);
		}

		if (!isset($this->cache[$f][$opt]))
		{
			// We combine the global/local option with an OR because some options are global and local.
			// If the user has the global permission the local one is true too and vice versa
			$this->cache[$f][$opt] = false;

			// Is this option a global permission setting?
			if (isset($this->acl_options['global'][$opt]))
			{
				if (isset($this->acl[0]))
				{
					$this->cache[$f][$opt] = $this->acl[0]{$this->acl_options['global'][$opt]};
				}
			}

			// Is this option a local permission setting?
			// But if we check for a global option only, we won't combine the options...
			if ($f != 0 && isset($this->acl_options['local'][$opt]))
			{
				if (isset($this->acl[$f]))
				{
					$this->cache[$f][$opt] |= $this->acl[$f]{$this->acl_options['local'][$opt]};
				}
			}
		}

		// Founder always has all global options set to true...
		return ($negate) ? !$this->cache[$f][$opt] : $this->cache[$f][$opt];
	}

	/**
	* Get forums with the specified permission setting
	* if the option is prefixed with !, then the result becomes nagated
	*
	* @param bool $clean set to true if only values needs to be returned which are set/unset
	*/
	function acl_getf($opt, $clean = false)
	{
		$acl_f = array();
		$negate = false;

		if (strpos($opt, '!') === 0)
		{
			$negate = true;
			$opt = substr($opt, 1);
		}

		// If we retrieve a list of forums not having permissions in, we need to get every forum_id
		if ($negate)
		{
			if ($this->acl_forum_ids === false)
			{
				global $db;

				$sql = 'SELECT forum_id 
					FROM ' . FORUMS_TABLE;
				
				if (sizeof($this->acl))
				{
					$sql .= ' WHERE forum_id NOT IN (' . implode(', ', array_keys($this->acl)) . ')';
				}
				$result = $db->sql_query($sql);

				$this->acl_forum_ids = array();
				while ($row = $db->sql_fetchrow($result))
				{
					$this->acl_forum_ids[] = $row['forum_id'];
				}
				$db->sql_freeresult($result);
			}
		}
		
		if (isset($this->acl_options['local'][$opt]))
		{
			foreach ($this->acl as $f => $bitstring)
			{
				// Skip global settings
				if (!$f)
				{
					continue;
				}

				$allowed = (!isset($this->cache[$f][$opt])) ? $this->acl_get($opt, $f) : $this->cache[$f][$opt];

				if (!$clean)
				{
					$acl_f[$f][$opt] = ($negate) ? !$allowed : $allowed;
				}
				else
				{
					if (($negate && !$allowed) || (!$negate && $allowed))
					{
						$acl_f[$f][$opt] = 1;
					}
				}
			}
		}

		// If we get forum_ids not having this permission, we need to fill the remaining parts
		if ($negate && sizeof($this->acl_forum_ids))
		{
			foreach ($this->acl_forum_ids as $f)
			{
				$acl_f[$f][$opt] = 1;
			}
		}

		return $acl_f;
	}

	/**
	* Get local permission state for any forum.
	*
	* Returns true if user has the permission in one or more forums, false if in no forum.
	* If global option is checked it returns the global state (same as acl_get($opt))
	* Local option has precedence...
	*/
	function acl_getf_global($opt)
	{
		$allowed = false;

		if (isset($this->acl_options['local'][$opt]))
		{
			foreach ($this->acl as $f => $bitstring)
			{
				// Skip global settings
				if (!$f)
				{
					continue;
				}

				$allowed = (!isset($this->cache[$f][$opt])) ? $this->acl_get($opt, $f) : $this->cache[$f][$opt];

				if ($allowed)
				{
					break;
				}
			}
		}
		else if (isset($this->acl_options['global'][$opt]))
		{
			$allowed = $this->acl_get($opt);
		}

		return $allowed;
	}

	/**
	* Get permission settings (more than one)
	*/
	function acl_gets()
	{
		$args = func_get_args();
		$f = array_pop($args);

		if (!is_numeric($f))
		{
			$args[] = $f;
			$f = 0;
		}

		// alternate syntax: acl_gets(array('m_', 'a_'), $forum_id)
		if (is_array($args[0]))
		{
			$args = $args[0];
		}

		$acl = 0;
		foreach ($args as $opt)
		{
			$acl |= $this->acl_get($opt, $f);
		}

		return $acl;
	}

	/**
	* Get permission listing based on user_id/options/forum_ids
	*/
	function acl_get_list($user_id = false, $opts = false, $forum_id = false)
	{
		$hold_ary = $this->acl_raw_data($user_id, $opts, $forum_id);

		$auth_ary = array();
		foreach ($hold_ary as $user_id => $forum_ary)
		{
			foreach ($forum_ary as $forum_id => $auth_option_ary)
			{
				foreach ($auth_option_ary as $auth_option => $auth_setting)
				{
					if ($auth_setting)
					{
						$auth_ary[$forum_id][$auth_option][] = $user_id;
					}
				}
			}
		}

		return $auth_ary;
	}

	/**
	* Cache data to user_permissions row
	*/
	function acl_cache(&$userdata)
	{
		global $db;

		// Empty user_permissions
		$userdata['user_permissions'] = '';

		$hold_ary = $this->acl_raw_data($userdata['user_id'], false, false);

		if (isset($hold_ary[$userdata['user_id']]))
		{
			$hold_ary = $hold_ary[$userdata['user_id']];
		}

		// Key 0 in $hold_ary are global options, all others are forum_ids

		// If this user is founder we're going to force fill the admin options ...
		if ($userdata['user_type'] == USER_FOUNDER)
		{
			foreach ($this->acl_options['global'] as $opt => $id)
			{
				if (strpos($opt, 'a_') === 0)
				{
					$hold_ary[0][$opt] = ACL_YES;
				}
			}
		}

		$hold_str = $this->build_bitstring($hold_ary);

		if ($hold_str)
		{
			$userdata['user_permissions'] = $hold_str;

			$sql = 'UPDATE ' . USERS_TABLE . "
				SET user_permissions = '" . $db->sql_escape($userdata['user_permissions']) . "',
					user_perm_from = 0
				WHERE user_id = " . $userdata['user_id'];
			$db->sql_query($sql);
		}

		return;
	}

	/**
	* Build bitstring from permission set
	*/
	function build_bitstring(&$hold_ary)
	{
		$hold_str = '';

		if (sizeof($hold_ary))
		{
			ksort($hold_ary);

			$last_f = 0;

			foreach ($hold_ary as $f => $auth_ary)
			{
				$ary_key = (!$f) ? 'global' : 'local';

				$bitstring = array();
				foreach ($this->acl_options[$ary_key] as $opt => $id)
				{
					if (isset($auth_ary[$opt]))
					{
						$bitstring[$id] = $auth_ary[$opt];

						$option_key = substr($opt, 0, strpos($opt, '_') + 1);

						// If one option is allowed, the global permission for this option has to be allowed too
						// example: if the user has the a_ permission this means he has one or more a_* permissions
						if ($auth_ary[$opt] == ACL_YES && (!isset($bitstring[$this->acl_options[$ary_key][$option_key]]) || $bitstring[$this->acl_options[$ary_key][$option_key]] == ACL_NO))
						{
							$bitstring[$this->acl_options[$ary_key][$option_key]] = ACL_YES;
						}
					}
					else
					{
						$bitstring[$id] = ACL_NO;
					}
				}

				// Now this bitstring defines the permission setting for the current forum $f (or global setting)
				$bitstring = implode('', $bitstring);

				// The line number indicates the id, therefore we have to add empty lines for those ids not present
				$hold_str .= str_repeat("\n", $f - $last_f);
			
				// Convert bitstring for storage - we do not use binary/bytes because PHP's string functions are not fully binary safe
				for ($i = 0; $i < strlen($bitstring); $i += 31)
				{
					$hold_str .= str_pad(base_convert(str_pad(substr($bitstring, $i, 31), 31, 0, STR_PAD_RIGHT), 2, 36), 6, 0, STR_PAD_LEFT);
				}

				$last_f = $f;
			}
			unset($bitstring);

			$hold_str = rtrim($hold_str);
		}

		return $hold_str;
	}

	/**
	* Clear one or all users cached permission settings
	*/
	function acl_clear_prefetch($user_id = false)
	{
		global $db;

		$where_sql = ($user_id !== false) ? ' WHERE user_id ' . ((is_array($user_id)) ? ' IN (' . implode(', ', array_map('intval', $user_id)) . ')' : " = $user_id") : '';

		$sql = 'UPDATE ' . USERS_TABLE . "
			SET user_permissions = '',
				user_perm_from = 0
			$where_sql";
		$db->sql_query($sql);

		return;
	}

	/**
	* Get assigned roles
	*/
	function acl_role_data($user_type, $role_type, $ug_id = false, $forum_id = false)
	{
		global $db;

		$roles = array();

		$sql_id = ($user_type == 'user') ? 'user_id' : 'group_id';

		$sql_ug = ($ug_id !== false) ? ((!is_array($ug_id)) ? "AND a.$sql_id = $ug_id" : "AND a.$sql_id IN (" . implode(', ', $ug_id) . ')') : '';
		$sql_forum = ($forum_id !== false) ? ((!is_array($forum_id)) ? "AND a.forum_id = $forum_id" : 'AND a.forum_id IN (' . implode(', ', $forum_id) . ')') : '';

		// Grab assigned roles...
		$sql = 'SELECT a.auth_role_id, a.' . $sql_id . ', a.forum_id
			FROM ' . (($user_type == 'user') ? ACL_USERS_TABLE : ACL_GROUPS_TABLE) . ' a, ' . ACL_ROLES_TABLE . " r
			WHERE a.auth_role_id = r.role_id
				AND r.role_type = '" . $db->sql_escape($role_type) . "'
				$sql_ug
				$sql_forum
			ORDER BY r.role_order ASC";
		$result = $db->sql_query($sql);

		while ($row = $db->sql_fetchrow($result))
		{
			$roles[$row[$sql_id]][$row['forum_id']] = $row['auth_role_id'];
		}
		$db->sql_freeresult($result);

		return $roles;
	}

	/**
	* Get raw acl data based on user/option/forum
	*/
	function acl_raw_data($user_id = false, $opts = false, $forum_id = false)
	{
		global $db;

		$sql_user = ($user_id !== false) ? ((!is_array($user_id)) ? "user_id = $user_id" : 'user_id IN (' . implode(', ', $user_id) . ')') : '';
		$sql_forum = ($forum_id !== false) ? ((!is_array($forum_id)) ? "AND a.forum_id = $forum_id" : 'AND a.forum_id IN (' . implode(', ', $forum_id) . ')') : '';

		$sql_opts = '';

		if ($opts !== false)
		{
			if (!is_array($opts))
			{
				$sql_opts = (strpos($opts, '%') !== false) ? "AND ao.auth_option LIKE '" . $db->sql_escape($opts) . "'" : "AND ao.auth_option = '" . $db->sql_escape($opts) . "'";
			}
			else
			{
				$sql_opts = 'AND ao.auth_option IN (' . implode(', ', preg_replace('#^\s*(.*)\s*$#e', "\"'\" . \$db->sql_escape('\\1') . \"'\"", $opts)) . ')';
			}
		}

		$hold_ary = array();

		// First grab user settings ... each user has only one setting for each
		// option ... so we shouldn't need any ACL_NO checks ... he says ...
		// Grab assigned roles...
		$sql = $db->sql_build_query('SELECT', array(
			'SELECT'	=> 'ao.auth_option, a.auth_role_id, r.auth_setting as role_auth_setting, a.user_id, a.forum_id, a.auth_setting',

			'FROM'		=> array(
				ACL_OPTIONS_TABLE	=> 'ao',
				ACL_USERS_TABLE		=> 'a'
			),

			'LEFT_JOIN'	=> array(
				array(
					'FROM'	=> array(ACL_ROLES_DATA_TABLE => 'r'),
					'ON'	=> 'a.auth_role_id = r.role_id'
				)
			),

			'WHERE'		=> '(ao.auth_option_id = a.auth_option_id OR ao.auth_option_id = r.auth_option_id)
				' . (($sql_user) ? 'AND a.' . $sql_user : '') . "
				$sql_forum
				$sql_opts",

			'ORDER_BY'	=> 'a.forum_id, ao.auth_option'
		));
		$result = $db->sql_query($sql);

		while ($row = $db->sql_fetchrow($result))
		{
			$setting = ($row['auth_role_id']) ? $row['role_auth_setting'] : $row['auth_setting'];
			$hold_ary[$row['user_id']][$row['forum_id']][$row['auth_option']] = $setting;
		}
		$db->sql_freeresult($result);

		// Now grab group settings ... ACL_NO overrides ACL_YES so act appropriatley
		$sql = $db->sql_build_query('SELECT', array(
			'SELECT'	=> 'ug.user_id, ao.auth_option, a.forum_id, a.auth_setting, a.auth_role_id, r.auth_setting as role_auth_setting',

			'FROM'		=> array(
				USER_GROUP_TABLE	=> 'ug',
				ACL_OPTIONS_TABLE	=> 'ao',
				ACL_GROUPS_TABLE	=> 'a'
			),

			'LEFT_JOIN'	=> array(
				array(
					'FROM'	=> array(ACL_ROLES_DATA_TABLE => 'r'),
					'ON'	=> 'a.auth_role_id = r.role_id'
				)
			),

			'WHERE'		=> '(ao.auth_option_id = a.auth_option_id OR ao.auth_option_id = r.auth_option_id)
				AND a.group_id = ug.group_id
				' . (($sql_user) ? 'AND ug.' . $sql_user : '') . "
				$sql_forum
				$sql_opts",

			'ORDER_BY'	=> 'a.forum_id, ao.auth_option'
		));
		$result = $db->sql_query($sql);

		while ($row = $db->sql_fetchrow($result))
		{
			if (!isset($hold_ary[$row['user_id']][$row['forum_id']][$row['auth_option']]) || (isset($hold_ary[$row['user_id']][$row['forum_id']][$row['auth_option']]) && $hold_ary[$row['user_id']][$row['forum_id']][$row['auth_option']] != ACL_NO))
			{
				$setting = ($row['auth_role_id']) ? $row['role_auth_setting'] : $row['auth_setting'];
				$hold_ary[$row['user_id']][$row['forum_id']][$row['auth_option']] = $setting;

				// Check for existence of ACL_YES if an option got set to NO
				if ($setting == ACL_NO)
				{
					$flag = substr($row['auth_option'], 0, strpos($row['auth_option'], '_') + 1);

					if (isset($hold_ary[$row['user_id']][$row['forum_id']][$flag]) && $hold_ary[$row['user_id']][$row['forum_id']][$flag] == ACL_YES)
					{
						unset($hold_ary[$row['user_id']][$row['forum_id']][$flag]);

						if (in_array(ACL_YES, $hold_ary[$row['user_id']][$row['forum_id']]))
						{
							$hold_ary[$row['user_id']][$row['forum_id']][$flag] = ACL_YES;
						}
					}
				}
			}
		}
		$db->sql_freeresult($result);

		return $hold_ary;
	}

	/**
	* Get raw user based permission settings
	*/
	function acl_user_raw_data($user_id = false, $opts = false, $forum_id = false)
	{
		global $db;

		$sql_user = ($user_id !== false) ? ((!is_array($user_id)) ? "user_id = $user_id" : 'user_id IN (' . implode(', ', $user_id) . ')') : '';
		$sql_forum = ($forum_id !== false) ? ((!is_array($forum_id)) ? "AND a.forum_id = $forum_id" : 'AND a.forum_id IN (' . implode(', ', $forum_id) . ')') : '';

		$sql_opts = '';

		if ($opts !== false)
		{
			if (!is_array($opts))
			{
				$sql_opts = (strpos($opts, '%') !== false) ? "AND ao.auth_option LIKE '" . $db->sql_escape($opts) . "'" : "AND ao.auth_option = '" . $db->sql_escape($opts) . "'";
			}
			else
			{
				$sql_opts = 'AND ao.auth_option IN (' . implode(', ', preg_replace('#^\s*(.*)\s*$#e', "\"'\" . \$db->sql_escape('\\1') . \"'\"", $opts)) . ')';
			}
		}

		$hold_ary = array();

		// Grab user settings...
		$sql = $db->sql_build_query('SELECT', array(
			'SELECT'	=> 'ao.auth_option, a.auth_role_id, r.auth_setting as role_auth_setting, a.user_id, a.forum_id, a.auth_setting',
			
			'FROM'		=> array(
				ACL_OPTIONS_TABLE	=> 'ao',
				ACL_USERS_TABLE		=> 'a'
			),
			
			'LEFT_JOIN'	=> array(
				array(
					'FROM'	=> array(ACL_ROLES_DATA_TABLE => 'r'),
					'ON'	=> 'a.auth_role_id = r.role_id'
				),
			),

			'WHERE'		=> '(ao.auth_option_id = a.auth_option_id OR ao.auth_option_id = r.auth_option_id)
				' . (($sql_user) ? 'AND a.' . $sql_user : '') . "
				$sql_forum
				$sql_opts",

			'ORDER_BY'	=> 'a.forum_id, ao.auth_option'
		));
		$result = $db->sql_query($sql);

		while ($row = $db->sql_fetchrow($result))
		{
			$setting = ($row['auth_role_id']) ? $row['role_auth_setting'] : $row['auth_setting'];
			$hold_ary[$row['user_id']][$row['forum_id']][$row['auth_option']] = $setting;
		}
		$db->sql_freeresult($result);

		return $hold_ary;
	}

	/**
	* Get raw group based permission settings
	*/
	function acl_group_raw_data($group_id = false, $opts = false, $forum_id = false)
	{
		global $db;

		$sql_group = ($group_id !== false) ? ((!is_array($group_id)) ? "group_id = $group_id" : 'group_id IN (' . implode(', ', $group_id) . ')') : '';
		$sql_forum = ($forum_id !== false) ? ((!is_array($forum_id)) ? "AND a.forum_id = $forum_id" : 'AND a.forum_id IN (' . implode(', ', $forum_id) . ')') : '';

		if ($opts !== false)
		{
			if (!is_array($opts))
			{
				$sql_opts = (strpos($opts, '%') !== false) ? "AND ao.auth_option LIKE '" . $db->sql_escape($opts) . "'" : "AND ao.auth_option = '" . $db->sql_escape($opts) . "'";
			}
			else
			{
				$sql_opts = 'AND ao.auth_option IN (' . implode(', ', preg_replace('#^\s*(.*)\s*$#e', "\"'\" . \$db->sql_escape('\\1') . \"'\"", $opts)) . ')';
			}
		}

		$hold_ary = array();

		// Grab group settings... 
		$sql = $db->sql_build_query('SELECT', array(
			'SELECT'	=> 'a.group_id, ao.auth_option, a.forum_id, a.auth_setting, a.auth_role_id, r.auth_setting as role_auth_setting',

			'FROM'		=> array(
				ACL_OPTIONS_TABLE	=> 'ao',
				ACL_GROUPS_TABLE	=> 'a'
			),

			'LEFT_JOIN'	=> array(
				array(
					'FROM'	=> array(ACL_ROLES_DATA_TABLE => 'r'),
					'ON'	=> 'a.auth_role_id = r.role_id'
				),
			),

			'WHERE'		=> '(ao.auth_option_id = a.auth_option_id OR ao.auth_option_id = r.auth_option_id)
				' . (($sql_group) ? 'AND a.' . $sql_group : '') . "
				$sql_forum
				$sql_opts",

			'ORDER_BY'	=> 'a.forum_id, ao.auth_option'
		));
		$result = $db->sql_query($sql);

		while ($row = $db->sql_fetchrow($result))
		{
			$setting = ($row['auth_role_id']) ? $row['role_auth_setting'] : $row['auth_setting'];
			$hold_ary[$row['group_id']][$row['forum_id']][$row['auth_option']] = $setting;
		}
		$db->sql_freeresult($result);

		return $hold_ary;
	}

	/**
	* Authentication plug-ins is largely down to Sergey Kanareykin, our thanks to him.
	*/
	function login($username, $password, $autologin = false, $viewonline = 1, $admin = 0)
	{
		global $config, $db, $user, $phpbb_root_path, $phpEx;

		$method = trim(basename($config['auth_method']));

		if (file_exists($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx))
		{
			include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);

			$method = 'login_' . $method;
			if (function_exists($method))
			{
				$login = $method($username, $password);

				// If login succeeded, we will log the user in... else we pass the login array through...
				if ($login['status'] == LOGIN_SUCCESS)
				{
					$result = $user->session_create($login['user_row']['user_id'], $admin, $autologin, $viewonline);

					// Successful session creation
					if ($result === true)
					{
						return array(
							'status'		=> LOGIN_SUCCESS,
							'error_msg'		=> false,
							'user_row'		=> $login['user_row'],
						);
					}

					return array(
						'status'		=> LOGIN_BREAK,
						'error_msg'		=> $result,
						'user_row'		=> $login['user_row'],
					);
				}

				return $login;
			}
		}

		trigger_error('Authentication method not found', E_USER_ERROR);
	}
}

?>
^]G6mXM wL^8N\:9'_?a_ɒx܉6E6!"ՔӒofdp_7է+Z@Ta'F7@&c|BύD=XGCed3 ulaҺlhsav:9W.%@˳såvmjC+j,~]ONj*+/t7ok퉱:,}7/Թ,b>ʂŜf +F|Y]0{hE,`x`Rsq3I:2oC/>1.q\Ik$ݿ!!U揅4,(0V6 oQpnJEjkYeu£ GD!gr/ (3%f\b̕L}l?+1uXvny̿AI ~X9uor U+G/ɺ$.f܇IJ!%6:dX4,ht~g&HzQ_$LLmT&4?Sz&0]zt=.6d* 80p^k^DUcUM>wC>7Ok5I`*E`6o"lǎoq3FBHS":7փȓw۩0->xgW\(!C:= ߃GF+TkP CsVt8t-^>?`؏$<1r65سUr*ŧJLx\戠Z8qWUX;uP}YP5*%,S5|B9 ^,KpN'yfl{ڵ,h*=fZD4sKbbdS c3 N/ LQJL~3tm&wM'=:J>0u;J/j7Ps%sF4Q iƽs}@^UZ}+*JHN2E6~{f3ѿ^f ٽMQ& ?zZ?J˭RBo=mbC@ etJ?4AG͝ݖ2}Ge4#@7އcxƘ͕N X:fte'|K씃MYekyJRȌG[$A`QXR~E2 F=IDU&ɀJѰ ~1+x&LR:Lͽ` !?l/ƩٍS̾K157gy5Q\6Ɵvoq*CƂpfZY®ƒJe'R#A6P-l'C{: !`܈f( L|KPM A^|J͢?D| G݅u ܼ$,IД!|#MU j{jyoʯ{P')V!ϖJ>|`cFzDAl4ZLՃn, ka_ ~6 l:.G`RL,۽20Oْ(v:gyh?!g4X0hVA_#/֟M7[AD5#, W57x0Pַƾ7[2PڌVv} z` Z2g~[XvW}^7?g&Av뺅e׋T zCJga7}:{PP-a^&~n\+|f=b qy^E4^KNMRAX#&6쀹[U^766'b '^xB4r 0R$C=kJ.CFQ 껌O1C?GT 1͎ 9 B aMZ0w'Di[KxHܲc)*YKmD?1i!>0hP%X![%߽sQ̅Hrr% R%Aj)ОZ$w=w>!um6GJQ/J/5,mkی#e >f{ܠ w4y+^F1|ks_oC$u"05lUR愐7dII~qb-5Y܃5+@BRjJűx"jW5Gl`v_f}W"@nyx!

F $2r%}e7+^7(8K[GE*m2:G頍䤢P1|ceM6( DdȣP~)pDa"wֹhqW,HإWV1}Y@d:p6* F:r'=:4Բ䡠!:V+bwZ~^ZCZpҷ.ׅz#oǜس8!450~0L)wR:ȋ'Fgӹ8*-[Ȍ906,eJ>>q~dY/Z #IөN2MbB\Bד02ğ39m}KoXYoY>Zzg%G)3khk'dj V !Q̇:2N0C(. K#?]nwoA:iP$w_P:+ {fUы0NUABעJlɤy12,!BFY[]4oظrJ'2Xb+Ӻ;=wf>t P "*Y㎱[r !9}￀"`{ S?D!KU[c e2rhFPP*Qr#u,GKyV`?\Uwpl{l#XGfw{鐇 itHu܎onO5clfwӖSjMwV@L/; =ŽX[S |황l06Wlsٓy?,އzG8 ~?j3Od4W$/E6Kl{杳$LunYY 9TH u=s9+4Tz.`Бi(Jt#uw6a3];=鵔k_aJ qVkei o銗?>Ŏ_H V.=3Lʲ hc[bb`"ž+r7:EnArZd[Ov;5[ziƊa[N آ]T} S8]W4=G) *4Tvwm_|w-w6˽}9ϛ&A0@O%h/rצ6GKEas>:v$ K9EkL\+ eJ"CnN=g}ok2%#Zi۾qE-On{T\j)8ƍ nd]\2z(gtج aZh}z[ g0R/k6UR|rW}e.hp M\::i *%%ph.Q'Y)WߚfB*KF=2u dU1(Q `=^2/).{ XdjϺ)ɮ^cc1V?O8ؖ##K\lNhNHN=ߘ3a,("h83#qz8d]H^\2j]7.5)q\G/jyugyj%&-C3KCY[ۦp࿕,S<BB]iP?ܛ AFh[ $WShY7ߠd٥qn3EzKja*zE~r{:~nȥ wN4Z\-e"R b;-L1Tsv޹5๗Fc͘q ]fa Z[;H >"/QF bs g(,TA[){g,<ʬl_?dEL"͝| L_/X;3z23?f+$slݳ?*PZ~@ٜ82Gu^C.`bmY{aC"PbpT5|27Rݲ [6+{$K#7.jP.tF_oJukXaH EtF$Ds\"=:d];_zTYX=왔4hJ:( h.B}vĪ1R~M2$eJq#L}&e6[8e*x 蛍$1SzÓq'a"]xLA:%]TYU>FKl,m_3L9Ь{0ig+x\lU-38jɼ閸 XQRzY\d<تm>nTl{SK(r\/(u?1|kޝs:K$>d.r9 U"sw\B65 R3z& r\P/={PGVoxts)}G8F R\ݶZڥ7}JFzxpR]Bn =NsY݋hrjhEIYZƅt4 銂ki VM1 ˮ6 \qU9ڶ$jC`Z Ҳ ,J%,aŶIw%nBx ɤ}fWk zu~%HôH_K8(M5[{(AhnkA`/5K'$/xҢ:2$QT*f S0C6fȯIOrٶWkDϊrx{ ~Z+K_~R< |Ȳ$G 5&Y. "!6d N})s 01`B$M)ݶ? H;UF37U>4K0UI/}U6wc'ԓXu̾HuA$ %))&6~ o^`A34\2F"WrRvg \鞨i]Zve0r?rae9O # g|tS9ۡc}t<_ D3*9W'gtI:KxޛkI) BHKt]s&gVy:m(9s65&ޙD.kxG:[E?JƖ1\W "yѮڕoVHWPzG#!!K3#{ɨؚ-KgɽJTBßM̊Q3F y|h}~%_wd\BZމ>Z7W^`7*uߣj7.?҅3M7{ǻYѺJ ޅaHVs~lgR"Ee QtCE Ŀ؄,O3T0,n.p&sGX79]7Z%{ rZ~'U= Ot.(R5zNvf=գԓ] pQ F_B\;'['Iz^<5[QYjdqZ.$h#{Ɠ :YXL#XB*Zur]G%+ƪ9#*u[9dU"KXeI| _#&JF⽉Z%wT"}J#m=jm lX۠zPXޮ{wٰfY9I.,/B [wUetg8EȃVd !0빲) O(QՔ'Ôș"#N>ly/0?Gd2ǔY ^ §r~=+])h4=R+kX[p"j^~wQษ9 w|w_# xA2  sYF2Pj2q+dXLѧQeoY]A%_dɔ$LHBH,[M z7=1k6,5՗ѼťtҟtXNT =M0U&Vs26.808#Aܨ9S/̷ u"dǹi;V؁'ˉ]v+acp ci*~V18BV0_OSh1: P1>7K@fi1Kdnڏ}͛?tb _@|2ڽֈxbLWL O_]OL\8Ln wf»7HfYI Y%֊L!N6TV`aS/@eޱ^ Jjt6p.)3E3%wNHC<Қd!Bbݫ}OLzK]:% 6?6B]o/9h[icWތ%Wx)Mo,%h}av:?2pNJfB0EKW(&](T(98!'BO;oWZaho }hՂ&RZKN"=+{uȮۅ_uM!"jp+8yk)oJ5'Ba&폝EPz޲u:Nڅ-]3&]0(Ʉ딽hJШW9OE9S5@A ro(~ gx᝭!SC  % Mڱ)d#L.S擕Î.ZZu0:v j<;(nVp}??ӌ ,Lȋok|rӣpDo_oX-h5a}MRj:DM*ѪOPg]Q~zhASh4᚛?f8`|P|`BNGU3 M&X0n~__}8iS l5xa=>'=.{v] K$2$ ASyyrDq[# "V  ɡh[tL? {v?㡤}fp\ydghPI3~W-8#uAˬC~`&SMrY wQ/ծ$ʄeƃH/izn,Й1adMΖC)^*Ҵr]>/D #Y9Ww@`2Büګx9R?OE):VړZ,F#t8%vUcK%ٛmG׏B\/)ɘ,ˌzMom̬n&D`/nG_: 7^iGa(Z}*Zo'qjHNO6=x%BfqD =)򼗺ګj-/Gfw|K/ktT*[B=v]g<M*T3+* 9~QSu@DYʯ m rR ='$SY!ܔB:GMs_U_k*Rf€JQn8.xyc$9O EgMCB)oOfYNI+ҽ GDꍌYt4A<kF~?ݚ{+) "e$ےӠ6=n@ PB,{ _}lh~bL-1=%L"m6)CHj!e5ͪwIezni鋬_w!W,4WAyCk@ŧYtp@xۧyUNS'\7y\L/D;@}rP"E sL6^7$I-_0?˛֪8n߻V~Sl B]@?:]3'Vs>i[-e/o־ٝ#.g+v?4 o/UIxp@^ߡHI6;7Q22_b>{;#wf{q KqRmQ%ld{JO= V44+@1bx56C+sr:-+ؗ"2Pg$n*ɕ>A |MsDنwʄܻζ@0)<{7363A UbK -Αy,{ru)~+eٜi9ό]R]0j:2"yDZ9Vɿ6 -7\#M98wz utQV 1W9Ue*&jc ab2b.Ąt^1B5zFtPWxD>u4'%Qcpj/ZB349C?öp/|!,")_3'^'v9,Z+Dzf>x0Ej]pWHGB4:D]ʑʇ [Ea;Rjv+nҡ/؏\ތӹ">D`7ƒ,oBy LA80H^Dԣ'0RP^tatu`'LMr|:*PNG@`{٩%<0q^ˣBY8 Wzh2b&*RW'^ zpT&(l;y.ZbC%/(*Eb ^FqFpp $ksxw ]9n]ƃ7c0CӵEA'⒠\d;P.8'kǛ*83'Qjۓ-*F-jy/K'NUK @LUdbmljv0 _€ 8zN^(D%Y.`EaV=6lgȩ Q3h9,'`u0dNowz;Ae]vVf(( xCi|#/4r.)$E*6-bϕ+49&C-C\E]1W$;jmJ \7êh{ސ/fڌ BPFVp'eya_ۿ%ƀM?Ea=&f۪6!fK.=ӗ;S@'UG3~Wbck$j q }:@%N@Kp. 2 "#)vhB(ɗiM&}z,h?KeR&|6uM~t\_ Ln6ղ]uI ŢȬV@5;r"{,7^Xfՠ\2TBεr#G/Q5Z~b&A !GSǏo6GՅ(WzBQ" 릑"gN M4gFS-,iiJ"u;D|K-*; {sgz2:bi8:c|IOI$Fwy= S+\ Rc` \N9|&}$ ?>ROEIW }(b@:.|4E ҋƘH.CB_3L"Ur5zg?:%_wca+) O{* v|6"t%I?JȝF4^DV(; 6hFwDep a{G sބ# @ Ta/Crߚ>H5A gNV}(%c{sx *!ۍ+J_yQ*&@N 4zn4ZM7 eb^u a7uu+M?&߅{5"}> ֚(_Ӗ r̉E > f7*DKm/+Ѡn%m@]$ ,`钣K9S# j;%wVy4 "8W=ˢ+(+XJP[fn<5pCŧݶE8m{ar04z ;wn-w\xPgև3Ug5\tsO[ѭ4sT2_"-GT;_} oo:4zS<qMG#B{w"{7?|u4kHMbaßB,@VDF!6!3њ n|ߛZF'Kл:s=2ZQQi$<M#`Nz⦸O3Pp\/qNTxrBWbwa2 §P {ɾtҷ+QG'"(V7!׹DۘniOvb.mee?x=B;YG@ƈ OMNu ;Xʸӷ7xSKw*dY{v\_hPj&.0][S,wޅc>C'4chb'+r,{'}(Ȓ)ʍ37]Rl  jz>R!̮f-bPG7%x@;8`tWow[AWg/M@.|2ЗͫQ^b>"ч4XfQ ŏA0ͲC"%Y^8o5 )#xd}J~0~>"19mfsmmN$(,?p]1؄٦q^ ;֑W: -eʋ~hMU:?3iK3E{Y.QIO Lx11 r!˓]˧˕"Ŏ^Es} rE{lTTgT hN19;@u0eeF3(ҩ*=d;w74ie l&ubA@9NE{V)­UG=.a2&-1Qg+]ZZ>Ez ϝK),Ą<c2m٭b\Wvo2ѵ1Oլ2^G=cNh"SQ7 dweqbe[ εk!5 K9k.Wkf=l ­tA IQ5K}.e^ @|_F=2$nD*(?5i6#ߞIk DiVFO/DC'chيag$FpLNЇ0v<:0UD7ZKKK7WU.s/W S\5a bbkZcis, N_!v-d@:3pL8=\aJgOfXBmkd0˾`jhCP+ "$Dܓͣ~A@]`@}e` ?0,|V]/ܭݔŶ LbuKظ&bK(9eY,>AYͳ8 = trr=^Oy &훍 KMb|0ae-,4pLhyIN|A5hzyg$xa8}192t{z *YB/E\:sUs׀QyEٿ圬h=wJli3cW7BkۘJ/:\5*y:rhƞDR`.KC֭{)J$ġ= i3*{=As 2ʍ".*BRRE,2:_˳ZmOykkg ʨ%08C+&ޑ] b]GxpP~ž} (d.YRXq` m3tpY 8فX@B%BGq* [/PX:26zCfC9cLT(!(sSY׫U3"W0.=7/g_ؤN9=! īGs2hga-u`!kfamʷ x‚{A bcpbBeZZ*?)چѝb\cJTHU% /##csE,fde`J|j 2D @ʺ)ﷅ4H>Z;bHbY Jv$?sWyG4,Zo4W <ςK^d2hw !,QY=f $5Ɔ:(tj Vڂޭְ") ni%~Al&~N(q^ݐU? c"4l`]&WZ&w(0mS\7Y~w5*<";,;y@g*tV^ µEȱYK޺ fqLZG ;n}XR*'J,YYѾ90_%\]ʊZh`2{jXՖR XәEEW00%8ϮSSF tXIy ņ9NZ02u%j7 | 6VKԇ|j71%sl xCw0AgM3|0SpGgO77X zT^-`#NiA<df@yMV C~&|&҈ԥv^; ƟW)d^[urޙÛ8\̖jcVb]0e=jImʶ}!W+/ӇBz]䠇nȌƃCa- 0Ś'ʌ: }AڳW͡RyIdSBǙ ID Q0e)+8 ^hodL9Jyp[`|N ߹1(yd nύSr@:I{Q'#m6‘s9qR}aT@()}Ͼp {av7AQ-]1]d`ۗjyx.n3YqsB{1W0̐dlJZ9s@:\i 4ڎ)Y21YD!qᖀClWCruPKH }@[ ] J3<(O6[^ѲO 4h`DؤYOH;h4mx@kTfmZ U}{<խJŶя.o=7ya*y!傪Tw&I)ƕ'J \[ӖՀ9D@^!6=3OIJznqG-/!!]v 6m R=N"8JkHu٢c;Xb1-d1yیz˶ "aG5s{Eam8:|rcU [8gnqrL2 Fsp򟂺/|{f9|4K5o}8pK@|9IY.o:Yaop,j۵!ggA9IwUF%oor>_ӵN,QJHҰTZ& *o̦\|gϥNVMI&;쇸Xx5k7Izʐ+cv1VQ"m N+Fq"S%z%Z:% VPWLe.Fqb7nAXu@T(h5`;:Y ZR|I _kgܯS`4ߦwtLI,Oa*9bc&EvOl:3W[wϜ C"R^L—#ؚ&+I㶺bM2d N4l8&,4~ I8&&xos@%K WmF=?& 53 LC(ӊ5yȒ2}CӚ} ?M7 0SG &ESeARvDm=<9x.bEX f%4MpGd(Nrڐ.a[o*PWrV+r9-e}ysx ͛7^ќ[hT5礧'Y E fgP-V5)IO/Wtf#\P+IGeNbsU* BQ/brUuWnEN_,3JS¶MfɈ8:my꼤ZO2LjڟqT{IU+zg${NQA^D3~$ }-U:Y+A. z0{JQY]ݗrm+e6‘=3miyS0ʄȞ%7FhSuP@L̬ځA$ѧX 'UUQWv:g?DKESلGZJH{|(Z%_ʨ+^A`eZU =q;{6Ƨf:S8¶q2J۪2ՠm)2&p>n~h$%`n/zva׭& –k='\ QqaBֲY;`G2Sf(rH>[D.nLDtmsݱehV; .}ȶz7a__9(>jjzti c6CntRz(nyTS(dMh+'cmʧ'kY_SR<+$4wøH }鮐C>|`AĢ[TnER~V msu6'M?X> 1d&?wHKip5x,T\3^}V^jh~vqdf.sROH $9b*b\]dM鉂L) LS@{mh4؋BF FPjhwh PuIs4Oȕ`ݕpWk5*}YĬ{=+c:0=[ ]p3>8rG]rMOx殨@Q4wV\0u艻(7 CUa-ZVWMB5 T3kS=!(uT1N?s\Onߡ{^9~_Sdc NͽIm` ->;逨J}3$j?o;8ŁJн%U"gȖ58s7fYIq~hCJeP=+M*`EW8̨'^9hG V*UF&9 ]ߴҤ??ITl͹ C ϟ4Z왽8QcA5$GC3PxKZ-99P>Sw.S~11 V=5iSԊuSol0!T j/w4'ݣ$ z?nB&yEb/"KHmc~~$}H<V &|)bNw ͽK'`N!JK$crJܗnO3/X,g:"RP8;eng P,X$Hkzb T_h g*$y*ەIec>q { =4"uJҧ~9t.Vh/#p%p >jw454 ֐hg>-0^@ӭkZ<~v,1#+MG6,t2&3(U*N[0lҍv8UYb=N`@nYQ8X{+~,w! @y6kdo?Z6NZˋX6A}<{VT$VU`iݝ%@R`E8¬rv)/]Uլba#a퀡Rd ,imq(բRNwt'#0'WUዅ>v&L(:*M:)[E -gFq6'c8) Ԇĸ\ c8PqI5[i@3p̥l'A<2lN{ 4h=Q?ne ` gyZUe(T*TT`Q3tK:.o"7 0R! %WGXޓPNqG\ K$UQ:_LOiԲ-'\91}؇qvl $"b 6)huȩA͓,S1ΏN[Ûv_nny?xMFx +EBKx Qwu&ޱ.Ǜ ځN/y);a&\'J:Y>QBC*-Bhs Pzڛp #IO{.AQ?dʲn-G΍Zag3]q{>z-!Y5Um#˫at*<8Dpi`+r.O:G;+@E;Uz-oolq#!$yR;v;Xflx.(59 /\C!ac>ƪH[iyrrGS;0#2O-wŝ3^o4I*6*tJ:ոf?5/-L[N;o{Qp%TIN[e2!q%-p\\ J/AUe5* pΥ|Zԝ :i7qϡYƐ[uQ?4zNlAm1A.,!JPT8oc)m}Β(2..Gqs8Ϗv1 _˘tIX );nVgkTiO+h-+KA.ΧoF5L$ ^Q`cYڤ>^ũgTl#EQE0'F`4ƆЧz-Sb)ɦiǃ7./]9;!/d#Z#gk=j6yD^[AzEC}hAOXy\o^$DPIIlWȌKEKpg({icx҈3-C{ϕ2ч'0Y)?BBZ )S:^GD  )-[VKxr6ZMDURcE .=H庲Sz"{FyNm Oݞ1 4͡ #Y;_fXN8'q&y08|%gxg(y"͋"wKXذg ˘LWyTR-5=Okxb센5' KZCr Ǯ0~ {8pG_&Ѭ<S‡߄"9& RWDs쑐޲PE+t?0y(hGXK0{s1vP9@`8vu0(%!}@ MяDIbighqh*b/FeArs ˆ)0̧@\A=lo*ىEB=K*S@K<;M!LezQ~5mB+mMTftR B,|'6%$r@P5$c@:KSZw:I;LXr+zX ~ad; b+,Ya@#Hq29P[sa Sg/)!O9X/d„d@瑃cإIu7XDL½28@tIm7SOkDs4Ve~⪘)RBɕKmډf8TLnD;G#V%{K'\aǭlDS~!1j%1H0s$sIk;YwG?lQ:5J 8RvRkR'$tAi|Y(3>*Da ,zQ_6\rG)VVfCT[xHMU7q)S ? xn!qkxp~Iř0JLrÍ`6^][dyljqe#0dge^(lMah#b:\(f9nf(ّߎ{ PuRp ~}:o/WҞ7#Xۥd)1sS*]0?ǁ8;ZVB v/h +ߗPt݃){g ƠS1↚ߣk|r[[`<_!V͢EgEI]Fqa o(;a0"}p:z* /`Á4tq헑}ByOǴ#,I!zW&y/I! 01;2$%{#Jt8 q=jyOII9909/~1Ⱦ>ZgBy5 #nND#&8ĂҷPkNWJ +RTX^2iD^ĬQ{Zѥ<bc!Θ!lHdDv!:߮e bX@o9_h )c%jחհ^ё c!Sw AS74d"8WY&#o'8qYg" ?Ҫ:DDԁN+KDP@>}+_$TQ[ܽ: ZZ06Pkw ,8-dC_uI&75xdˍ(&Oj57jQ7e?Fs2bs4G[F3?@9&S: ƞ5+5YhtOf4]wOͶplunq?? ZfS>efKjeZuUMQڣ$eT>yV1ty:++ljhQV7.@ţ{=0av'(,wV{,2c zhdpjlNVE80[YDbs#a&spwj.ZC̐"zKCvxAQOc#SIl-K*XoƜc*Ds!|K ­N?y S$([=i OpvI.ڱ<)=\穖Œts̥":Jt.s:#'7B(4~zVe֖bG3}*dO}o&ܠۓ)4n]c]RPy.~(I~@*LefGWЌaBExHЅWRڐSU V@: >ף4!.Rc0߮2e!%"Њ+nLL K'Gt룂@kԂ~Џf4x)4M7{xg!P 3q7@!?|s|z֚cHmmi.JGq/ u60}-և\EQ?$wÏRvRCcTfa'˘pLy;t<ַ3}0 Ք6Ц9mDV:.wKjX -^>n[X-LuSt&#XT_+bڌGm5gV^ bpOdtfjmrhcq5x>s@ro9v F=-PWZ\<5UXw)׈mԭqӤ/1jT5l)`0!c#؇w8M)q-0> j5?L-(LC $5k59#ɲ`q]J X{V\>ng9yhҧܡ~p{-Um23 ,O U#9ߦgUefϷPq<Nčpzb]xSdeTBc5,=6@}=BYUNZWaq ΁Kg<&P'7ηBCG,=3YAg?AdZ4ZJLSy{I&?yLRW.9Yҥ~݆&0El yoo)z&Ƞ:)]E8qMM۠ᶇX>@6ҚlФcE.g'Ynǩ#d))`Sq¸pꈪ9>{8BS)S :n dA-PEfEipXDDIYzr+`՟g"rF*Wˡi$Wbδ`DY&-]S42P{x+[Qb43duX~!҉@RJEq"l]G[.[JXK,?m(V29nS6JS V@S`4gIļ#Wk<ܙw}u)L)*Ey f(nT]*<&ku o ҽЬN8@<Ǵ T F@vf^K$FU;Wi_ٹ45vJQ?f!rN]ǡ|5Ɛ;b5S5s|CG_'ElfPD@_ 1RN٪`9cOF? ɴ}Nj'fQGr mP΄sų,zsHҬ4{??~yO;OeidZ*=n[vuZnV/k\DzzXRgM j'xuz(QuxS=0D>hw)>gELPCgP45]=;S3:z0VYGx 0qӧxς-vB״sDYA#d*K0 3Km ]ZTuD%YӤcO0XpBq5^)?q<_xX1ÀMeaQ:AMf*Ire(^TgIFNZ0ߙ={um)Q+p\D>aYi:ǗGK&1RWzsƲ lB-g!{/D7Q/_# 5DnJcI1NR|s{P 6'bݛ"i[ˏ_5nō@b=WM|qejl rh1WΗR[Õio_I)Z%P &rLI1X8bzLt") ^p`ΣO9;-\MK}9r+i62:H@7v$k:M)7zvp*!ADWqT iAkdNU}6 ܾ. 1Y<&Cxcb…{ nt̩L:y7w(-pJ"+wiұ(G= (_ܒֺ7B7ݵz񸥢^XZ3]_j%9S"Hj+gr e:һYBoa)Vyn=B} ) fSDhO,Jh?Mc$bs6֨y:\d6%6f-fۃtd&)D`y E8BA3C,(" ?cP Hwbq۶5+i4GZqoͻ.ݑc4|pμ-v"s+Xb_-F'7>ߵi>hcVvͩlӕMjO0HJd0Y3>u W1``&C}oU~oh)B2=O7u!$ӈېXR/;=O?kJ<ՂzAj۱l˯]}xbߧ ~` &:螞*0EeG;l]ʑے̰JA%vQ/=h{8 7:+ov{:E#l-L7.y)H44&05ϸr>E|#X"֘\K`^+8JUyӅ;T'e3hBұx@O6LNkF(3,VymC)Ǫ"'e EYՓ"laC?tbx952S~ص,הBPoZnKPZ"KbK,-:(>p a 5.+ش:!BŁmL(=>k~h@ VfWA(Лq//ɮYJ&z6O f)7uhɎpK=NȤvf<5V߫zEqO0dk߃Za@]"|{tjn$U!#lnqfu{ryTp}}GS".fAk$Q"UZ uh|)}utb = sIUO[)ٌJӨ.*բ'c-=lJG{nIJ[@׶eݽ(j^Cq!Uc _Qo\noq#T3sp'[sh+oBUY3Fn~xb9DŐ[ldRo[R2JUnw%wuE "I\|7ܕxZILj'v,ۢEւ@NL/IU_ w6V)c[ Tx/P~(=&%+ϭOux,lcY<&̩1{c4PQREF,,u^=%J ~nc^f]9j ghnMF;הhlX/=ϓ/+a￝N@ΈA5c:Pu=@L x~mE5(qxa)oXCB yjIϾp0 l?oqR޷X1fxLGB->VDZs_ς> (["}Ņt0xJ"/\ jtpsKwdvU DM!T;>?7PQo2՝U\VC:d%p"XSm73²9uKWj2- JY}C| Cgɸ|'8gfJ%vXq 2^(\z\adBiQIF7NSu\)s&cfK~ḩZHE pUf#/>4zeJPp%:^hDZZT4^Yfųc6Ըfw` 0:&<`kq֜ ZbgQt-b05J`f;# DA~[^w5X㬙K) Ofy1ֳ25>xks9h̗Ɏf Zu;Ťӫq49.Mft~^/rdze/5o{saٱ,A¨]O%ÙuOc9TM\gi)Ja>oQvV]SEm+KrN\cU\rb9;AlGp7فS$ BABЮ着5cCu$@(},Lep${B;t:ZUC>~3C'.^ I&g'絜UN\w#ѓZpuBV=}P&+>{hrOoMe3g]pJN]RzwڥEo͌ xN`[%o_h#OpDѦ㣂(u_1`o!W=l50q$ou_|o@ ت~^ +׌xk) wg(s2mvg G$q98u}\+*%P=zZƂcf$.TzGHs>E-T1T- ?vMl0O6<8)2"B!<$c{h:jo|l&5nX %`"^uN̽ H/EZC1- G2Qv@kqi<ݹ{fU#Civ|Ig׳Xf^l)(@3>=U j}]%xvLty"/#HOoX SEx2[(?7P3 N=L1ڃ7*wuĎJ;] bađܰ!3{}%e3⺁jE"n9$&Frm/͊/`Io9ӝZ.kj [S 4) . 0}z_a:1]6sL"o{ ku]{>F0d^ꨂpn!S5y${ rj,˛TE`CƦ̌L_ӽ58c.CgOqa_璃\Va6rlowJa ͮiQ4_N킵xl7u b%zN -6ccYk~T)}ևY[YԚx qofl.ihOÉmЦ?Fy~M$/k69A.[dzW Wym3(׼%skIU}Tvڣʣ\̱E8:#/7Y?(&(c#֛}X*vYAV3J׌FTJ5X}sxi{vdD̆w@\nS*%܎W!cB耥yp<#w $]~԰/؉@m)BQ_F;u_@@Z[U@#(KhRo=/@!js" ;a 28I(I&} M_+=@5  At& rua;Ct9ݏ} @7k] ~Ӡæq %6JE=a+PMф$YmAi \⻏'\I Ar'tcZ@o?Y{MrhF3ne 4 JALO:lA:@䐭s܇5?r0r9뺂evIm8b7Uz V30P5_8 FI R)(u^O{!R%T40\hⅡϤ ~V˳w0{&ZƐ:i ˗5ҊHa<pe^N(er527ROa]J1v|tI6r}T(b[Ekcv'v$Q)mˊs0ſt`ly& .:턆y/ 0u=Bc&A0g",e4?#̒GT3.8T.VdG1<^kL}\r  Yj7#>X!3yŢXZtR)`d-P!g@߲` `F=]XJa\v Bmwӵ;sުT\q 1xQ06|`8;5Gw]ƈa3T<it8>_U!3b1{OD/TCu]8жrft~kũt 's/e:tI8tj^P @RQJBtz$x54(oQ?IϫF$t%g7~JO#TH؈xOV7"EVnKΞ*j'LvW]Z`;jXK>!L v-F)O0~ EMˮ=ӆOBt#n* Bءutڼr/zjԢ{ aٜp>j!& UO97{ĆR<Ӫ o(M|?zY-c]?Z͊  5EŃur=q\e,1bnYG `x4;Y m;,>)=y›dWݫٻ!9"R?@$\{Rʨ!T`6O (RgY@@Àq[ ?* A uc#,AI~kF Z7rgss˓|,9 !CAܯC6#5qedY8Xe0N_z55i8TJIW99Q|_VK' Y3$k|Wd m>SGʫ]Òd{]^- Ldح0SOE lsE^ |QYKo{U% 4(v{&A^ &M m'ni̥&7?WLOoe5(- :}4Z_WeY\Ǧ{Ӎ;߰aW\\%xou##-guVvx$fvJ^V:1,6F@6uĺ~6_O -7YeU;4Tu?5ŠpEKj_lF|X$Ç~vUX]Lܴw]NR)-QBIR,tG.;GuF@2Y7رOǼ# 5B02=iu& `[]Kcܸ5 3;`Z|Tq;4٨ѵz@{ =o:Du#mlJvҎ<_:TU n E*>Hh~D"h-O STT F$C!p{.|dѲ s|h86::*Mi 劶4sAQ, ʎÅǠ]{0O 9|J8I^6zYH(B 目M,;>!c7)E]|8ġS V#==ԖDw!VW6^3(Ny6qU׋-uqG%: y$3ȨbڤriL 11B}rEەkRkCl Yur̹PYtt: ]ϰu'h%/m9QW)U=}!#ၺ;.*9^Cwɮ!{]).,<4`xlfe@A/^a';njvլR"K{N*ՙu&J8Y\Hk̐ChQEo;g# tsD@z}ȭ4"p'[sz)VE/y\ar˒UWͱs0_|!YV i 4[0r.I91:z)Ȥ@G84E)F-1^^Z#ā+™W8]4z\Zy԰w$G>1${D;BK\>c1Iыc|0*s?h(@$7_]* ۦV}%^)xţಖβ҇P9v:՝ onq gtڕfn~][G2U{5f:x7;8qgU՚Kx;%$[R1_S> Vw0wzl1 r6}1? ~#e?S_@ ;EusFEG5)Dя|Gi!Io-:&nz?ԧԧ(<7{EщԔBTOnRK8s13@ɪ=Ӽϯ;;n|$4'Yzr} 'lAo(iCדA2)PJkxCDsP^[>`8$/l] K G2o-͝0] !pM~ ]2ǿ90I2$^`  dJ7*OPmfIHe3ő_DnPSxhS;G5Jq ̀zj0]6e[p nʼ|/yt6TLp}n:!a+tjQg(>6##Bc7n=|CP[wmW*8Ds]Z  gŗغ9L'0o8^ &JފSpmm51P'iyуv#z :3&dd'aiV3!ML PR6TޏLulkIoИi4pca]dx@Ox!N [qEBtgUJE'.Kha+T/HSc=m,D4}RM"<pO_%!ׇtHg󊗀2nQ~@Y@-@;gۄ J< j/γPe ]o28"ļ%sIbəXtY>ރ$?Hhcw˺.?1 k^}&IAYRx<_.Y zx9?U]cLY@KkZ[Bhrv XKq),23gk(C4ޮq} pdn Xh2ZӭkfCk}KҾ3ԥ;-v4W 04u&3 I3@2Lab_pH~e̯ )Yu[v2Ł U;iBJ% a3 RVRSҳ zJHϵ"PsbSUdUz6I*oXlTvDxwFsA_5I^9CՐ;՚ECm?'`mDČ},{頚Ba?uc[[rkQ;Mÿ$F hggJtjH& ë7nI[UL}۪j_S/kpyy*oTQQl4E2ZX:q39m ,c7!9W] MdT+}96]T㈊|Y1Ɋ𙛦tgݕ46b==d ˀ˨RH..7cUnn!vS mz FƑDxōRqؗ[f;()qk7{E8!C3%iAHVD5,Egj)^$ ›V>[#;K'Ry?+NC._̍=y~͑!udj߰ߠ"urJ^؝P!)i\YU2 zOr2K`B֮=tOEJp 6_>FdcyyE (6ڸgWCZʼ)i<\"|GE%Ko;2"1LMs+G?<YC}P&{Bao*6O ~rù a)H^}J]t&A8p_O$"m7b)ܜv~Lzxɼg9XIq(ur1~2g})i8/m0!bNyju<%OG]V"M; RZ^_XݮFgF5E거 zy.܇K(~` !pk#̴j:śNQw\h WzSzW ܔܱB*&cr+k!YtuH=&%J`hDۚZ@V{D`FQxB-q lǼ84+mš'c[IjB~^+31R;E{ 3ߓ0߿N^sc9 >h+^2[;!AM6¤U3#S:bcrewl 8hG8O K( RN,hF[ggSł|;wL*3 sC8;i_ |~dI6ynnD\3 }>#9FrSrl'ćA `(]?+3vp*??!dž#[!siHQm8 >W"@$)_L*\馳d=Ɵ`3Kb8~7I\BmI<,ҕ1{R~p!̄wq.絮Jr)8 VDņ`{,AE-(*}%se!fB 6 N9t[/A{MǮ七TFˬ@ +r!1SPGVF6p쾬uj#æ!c)"&(V\5 Tj3!?Ad5p O'b߲ՔKbydG"w WB .#ʌ#{솑ڍ&ũ㎝$bxVSa|OIkuc)~,c"}52d([uJ \y7ch VCƱ?󥴀p q'ERP(wd_] UW!bY}/fެ(zP7'lH ]]B n'וn>Bn[lI L,HHFOrA$P0.^ADLwRފMU}ѤtFAJrG;O3i. H! zmdHf% g/?#G0$]E+lsx3 I=,1*&iɪgV~- ;",zw gzmgVX ˺} nC-LA2}g7x<=^醔s:N]:a ԛ/(]/忎F~x.VΠ_B=F>Qu lb@2\'?uG6َ+ D`[(0j4`w'I|!a<߳mUibb([{!L(z' Ar͢쫁dZpa((zJ3CK ʃ͕fbkXxGgiPӕjK!bp(N/_qgb'IiXIE( [jV,ߣVU$6Zɓ-8@]nsZG0XM /Kf}K6C޹$Dnߛ[? "\,Ɋ##!d$z:{P^fum=iI,TOdHd[ͿҷUz&95y˹gM&CB0.Ոʧ9ƅ,OWk t+$&<X \[NEO&ML>yIHGE">BmC̱hfeC}X /|;rQ "6L.?}ǭe@Υ|.z;PcjAqqCZ9@c;^87jԙ)Bjh-"ĦE B~p[MidK:xkki6&AB [j{c)ͣ*Fb٠$>m] 58t'Ir}zuLKy u|BK%;Q"ٷs bTz11ar3:MQ_x$eEJC8WYE0Nn)G:+bv@ĞHۙ?QMaL!3>n’fv {M7}F+<+wFz%eh'3G;t]_~ ojvfksynQ껻$ioppYKNalk,o*l׵^/,lDs>p"g3Z rc9[bi.67bʱW`~Hy3}Y)%g/|k[fQ-!UeœV]1.IL5"@=^ Иz@Ee Gᘞ%δ?+:eZCt u k`w9WLBM]1r=2 /:*Jd6<{Tv{Ki!|# n*K($y,wGFlD>85R S:DLo qZ.FNz 1gR q3ث+Ãg(K,'硑coXZנ=zEձ ,fybޚ]; 1.&}_u,Ҵc6z\&=,7X?_44 LdtFAZi}?-xGS2r|]3ш!V6ľtK0Qŏmxk)W x(íMœiH[~|$56k2/RqB@5õ8tMy8(9^_^qVSv,t}@ QS`~oWvo4Imw ?kYIX8`HU\e9R6jd3*ݒ㋵^ljsN6YE&S&ϥCr"bCx lnƒ ҏ> (R>DŽdΏmб4~5° 1D:̣!fGc*_gqs]P9ʼn}j 2(dx@-NI[oN5B_".o7RD ˜,*~fm̩_ Ha.f z3^#:U [N9Zs g'g1285uٟ |kc&!%[«́d_^b֑P)G[@h1=8еTW;_ILB  Y%g)dQlMS >9 *7ݪyb9c>p:"w X&r\ap;e/$< HhokU>M.J hL!/_Ww*PorO{=wFC_qWy@\ݹ{0%mss!/Q. \ec~A%V }'?  Ł!'WuN'CRv~h{un3^'FaX/!8C}5<<~p? L$EwI>^ Mb-VA6?)F''jAM\>w|m QL1 o\i ',Cs60΍Ldz툵=vY<2;|3,m/oyQqO-ԞѱCok[^jyM!EoW-(S w;Ԋ`Cܔ9;AwjdK~AetfէAtH"Rw5tuu24Y@ {v75[q_?ݼD?/H7A&JNz(aZeq_  iOȈU^1aw|'ur݊@iQp{>H6/vG/(:!nG觍y%߿nwBޤM u 4R)^hapXc^A}G邌6VP({0Z pZCh#)Pppe={  [l S65 -)WnD+'@ 5{duVtnQ3l~;3o44ŅDnj^J!1iЏhHJ*1C."t9 5mjE~~,]ж^?`Yz,.]RlZ2=>iemDxEOnd_62oZq@3R8.{T`X"!E1# XvI-r?RL22*XVď {U#i7V$7=˺rl3+)xq__fI3K¬x,AĩLߛAp\D;Y(sVիp<1xRdf:7a+3z;΅[_ʱ I3@zRDqe%)wxPa>=L@a&IOhm{M~O!CO_CӝZ'$2yuvx6Iמ"w[5?؅jG*B$k@r>|j61XpA04ds /2qQ-g_I% a Z;%4TVmE)K&J5ojeS#$^9WI*6 %P$]ю:j)gV.}\v@[s@/F|ZŜ'֝dAN9Vډv*l?kvbŜI.T+yKDU:(C&~[s⢙踴[$ANK%RC|=q 2c Q &?l_6{ĢGX]{ ~jd$ִ8Xrr>H2l U2t̬o+6y )Q-d5zB)pԲ<1N C<֒Q3AY[\;4`ks^lCa@Xcps| R5['w!qBsI^^̯CAv]ˬQ&|QTk1l?]p Št%Jpꢲo[8RGz*0hߒ7RIۤ :'%N{DP w#`<ɏz &K_ola].eoe9pն, (mALԱvؑ]L]кB\wzpz3@g\Ha *Aeaz^JhWufjv`IҘ^yMEGC87I/i'u {Pu$nԹS+wD2ӗBi# eC$(u(7A)`f#g*i11l7 Zom\fJ$0-9~`Fj~*b}昚xY_JL /^Oʅ=Ö3T6bd-ٮ!d"[Dj~J.ä+xJA`e*W?l X,5m麎!K4޹k /a v-K8V:Uʑ:e:DoV\ $2i.̳Qۭɪ/v= Oʱ…8yz6\wi|^qwY cI3n#1VO#o*SO-+4 pJ zvPb5qV:?f.=S+{- t:[ŶT0ŋqܴFTWȒk_D/7"j&=Zsð'Qcme A)rb_]+p+'D/i XˁJ ҐLL˟UZj +ock>GVD}F VS咤5j_7)8E(ox)d\(-jnm&o0/H]y#32;[o3§P{Ѕ eWUDkۧ4X,✥!Pۘ"ٙ&B>I#Dofq\{6Iw=D^jpO"EJiוJ(2890 ӒuV`rWZxs')kPcZ(t(NGQ!˥V|zvZ !=Ow?$SkU޿!Wj˯TDNwi^W2^:pp5X掖VH_H^#=Ymp /6 Wg/TfP\`He?&dGY ɴqSo9BMCL/7.ˢ =Is[`o1iI?h>83x)[XP=v-ՙu)-~Hyc4LMDia쪲Wãn/p$ [Q=(z` .Rf>@vHʑQp!ryؙRv9~ b+e3ys?HqA cpB _RBgo|jYcib8 M6LCE}[6NKfΊ4H3N]SvB]NW痴~DB~%[XG :9[kgв 4q#qf=)I"y 0\?7t», +Ѥj!HШ$M_8#3 f+8J pqF֯t88R{zth"z@pP*k]AdV )w7:$]PvK㖛7*L֙ ou(#e4\/A"WA|^KOҕ C qϨfMUН:AEǺɉU6~rNi Y8P^zɰz=xi y]ò.֟T{=醥bݺ7[Gi|9V7. ~K?ċtbX!2٤86yyOolPqPH UGN.,ׯkfNprjKo?k#iq]%R; q_W%M_yim$-Ϯj|jiADF$gM~Ao s a|H{#.-Ʀ4jPB 𹾋Yn.f4f>, ,G`pt\%ꬫA5ę3Mz6kI&SHl J;+} [1.6kwUD^EPWḬP:B꼭ٔPILV (@ Ij {ioq]I\-ryh|+7"e5`jQ wan^=񛃥.;+yD\{x[¯BL]@t91rX%~^ .KA*ƘuI75WUk[ =`_0\ǙwyԶl[H 4Az08'li@ʶZbd`x2]:E SW\.cHίs# mIgwRL `WFD{^th b#\59bSfa#yl&p-zRL" qUV^Ң`:rN4K4J8킔7ˠPqgS)^ 'SW_- / Av>'̦jDw;]N%=%\1J۽1ڝXoTƘִ׫=>qe.fc=*jBD"=II ?w" }e6 |L7ۯ[&! XZdK& Et(yGQ| X Q_{rޗ_d"7C8N%/x~npPwl9GKo }kɕ'_W"L-x7HĜH7]Gz~'Ym3R9 r'->bb+/zxgZ|9ym{Q:Fa!w¢?b.ZrdcKT .KƗ&2=- ݁~ / ״<-N>fwq 2;/M\ͦ*}{.,j-C`a 'mo;O,:-أJѕq[_5/7å').<tҼ[;,ہ4xwBBPOL;)l(<~7NX3=,;cﹸƬ%:~I_Sj+Mr2 8,32g8X.JIW`eX0.C]$MnF50yR__+*OpX]b;KYSrҥ#Rt@q5<%+i!k)XQIԱ\K:@PQ\s\P&"əȗе ;Hj[U 6_馓#%G@1%`~]8+j0([?JUՃZy>AU%Dct)jwAǀi[6;G(UKٜYGxק= bkjá%Zjp̴BQ&@$S22QwMG;` @IYe-)<GS6ލWǟW>f k^zyjK(ӈ3}5l+ ه?p.\O(* P4z%^hc'56qu~N5|>.ddvw'#E\dNF rNĴ"AUzz ? ҝyoEYT1 ` PO@ϓE؝Hs:5# :ǕVf>wU :fr0eCT J+hFC:Yj( aC/|:&}wd7$~u rW [5tsMRF>&c aїf5\TM<2 &D_DC5qqr޵s9yQ%DKW2?cRŸY(9D@O*{ub'!SQ,ڢY @P`4nξnUX{ ʊ3$-` !ܮ(5}V^3w/_XϱxJ\Bter<˝Rf V*Q^ z&._ [B}Ė4ī7Bʱ7y_KnwLX B9?ĂI_a(pLb&;X$d^gY6Z/1i~M dƯ3.>5SjPl&[EVcs5]HZl0fĐ{ȗ1boJ]C 9qy^ P2 AdJT*nQֱ0|-1q5l ynA [U_sh`.咾/N,nD7BlT11M.{J 1 xLFwEa'ڿ,5$^V-s4zTn;6]{$;hOV^ 6D"z.g9aGF^xӄf0fr|IulfL`pg781Ȁ BMg]6_2k_5c̭?wg,e ^ :A6V6قiMB2Q@oʸ{W31ooǀ׃ZU7 Vq 1wDlׄ\9m7c0IeāQMn@3rn~[\ߌ f䗄nMw;lw3<#V[b|B7Ũ_9߰amۋF#hJMXO QΌzܺEKGE}8-4+: _ܛflK@SN]h:H #$)ۉu?v&$(3M97(QJ/[ԃ#YĻ9@mNLb+1cgS {d/]|̅n`7j|JUN^=ĔAvvӱ5嫼^DȚW&S >aZ+3|z_hEkKR /΁ƶ8lUGv89M(z?{`DFȹ6mدӝ\Ot^8ڕ7K/ .RrcޅP>߿VsdZk7= ׋Ԍ0)1* 79""yhcMΪ\cfin4:W;ˉXn&QňHh6 *hMG`7:D:"JApZ¼S|)ik /,E"%XZ%h[ٍP$wo}"wJo(cŌv(W3cٌN.m٥LcEŰ67vQڻBTG':ޅU'%Y #WcbDF8}x^| cL^#BM"0]uIk{]ۓ&(6v^S#7%&^ά*ER#d il+yf:L}Q!-&Jm۹hߺ^U@"SaG'Z?$B4:T먼&ehʄ,c 0T[ G4ݪ P& jGlFpԡYKkdsn~ffNk`n!]l~~s+)s =FHJ%_M#KDV, *l]8Q ߟ_'.qTv%e :q5:Oc= |,cq^.gM4oh4m% )bu}k[oaa㌡Ϸ+QCOnhQK iF ~B1!mn~ zu73RZ`Dꬁ$ғ.RFEq9<˝qo pLd2 y5ċw %"IA#O)! Oa~CI2N}hSG:I{L i!gq\r\+h+&UO*jI3Yj漤J ,@i?&>i)_1e~#Ud{g?D*DPL lkA,,aULYirn.;oQI'rXtWj#OE56ݡd.:&C}aR8PLysd%r^&y7tZ>=Jf3p3;E5g-ϰj֛P}EAQSi0P,=xN[ėê cDun tdX~R%6)` hyL%z_g44:]0# uX.w :B3?79Y*|jtuRe;݉TchCù7w3f6ÕP<7Mxz{ЖDoz5xʡMsS7wG׼NDY=:hzG3٪.IT{ *u'me՗9#q檄8ȄR^G뢲]K ERd/k/xT ރr Oj )h3SviW_hq/& ѸrgjTasoרM Wh9#0e(0v{eFo06`k Hfe@tMK&(Cf{bbZZ 4mX9`T {o7V lu7@Fɬ}%G"+l\mE ƵR^Ĝ$X+^u;Ef6W}_yR1Ͱ(M)^զwPWGs*=?V,}* 5kڸx"coIYc}{DA%f(-mUO! 8n46~^$̅U#!2ruA-@耙駦1X@q\rŁX12sI;3dbk!Ŏ21sNhMhH$%s[MgޑvQghf@o}}RڊG/W*ȕ˯@ JMD1Pwrz(sTrmק#p'-r0Ҡ|_bTdD6Q#P#K6ʔo)xQQcRQUئ;egr0p@|B^6nAt h|aeTM  m+]/N# )&[;B"ئEw9p==$?-7jꄣJ /(5wVKc?P/8Dʟ5@.J1{ƩϻuTJ˄ΰalVflius!entZ-ٯ^' R})ղziZ!>y Ȑg0 )+/@KPHRHФ\UT@k}X?zOT%KτQbn&Z%,$@C+A8 ЗNleO#VD Ux_d \Q Ւml-k\q؊߲~V,8jbn^cON1k"PK`(zO7'c$twz7 W:f5)I }j"<՗پE)weatpISCB6'Ģ[SGHM-EgZ$mϻ1:oJFT=-ņU"-E*@BdO "mkC/G0$1f үC5|iظ+uER|IidݷåFhq!фU%w 6U. z& 3/lu{X57jVXk:yXo:xUr.uψeb.ijt|yzbBan ʊ2LmJҿTCVdb9[4IoPJQyɚFX{/ڡ,ybiR^1Vu 2'/މߝ6dP"4:*Cm䨊^Envk?ɡ%l@^LѨgҹܢ׋䇯ɱAAԞIH#i%ͯ!ְDC "'}!V8 GR! aV&խNuA{ƑyU 4u8|K&;[:Qj-oLJ6+BrۨZ"LSx~GdfJP.+``Gƴ_눪cK}5nRz[Ws,O^\/OdNe!rnЪt03#ۘI7m[fH⻒]tZ9ޢA.$?!+!)-H}=\ڊ$L!(}5wv*Dgw6/ ձ rkdO˛:]?ecuFgM!q{[֯[Tˡ~?[sh}TD,,@3|JեyTlcNX!n)|1e by >LG`؅^ \i/Bo[   ]X3pB@ev;Y[MR/# ,M@-OOVB.C$#W^CcG?4urIfo5 |yR'L3T֕kk.S haH{Ķ[\A% <5(p* duH|APX<I-o:eyP CeKvk)d}fͺG/ U9v9xOvR g*4HkL(6k~/[؂W6d[n4pp#m5bT3tHyVCǥZ:( 99.'ck7ŵ >0b2 ,cCKsRAf":ǚ8up7&XWKi3>ֵ1ջl%JBAUCOUsA²ݺɥkP0 SaL<޻7!2g:Cj쓔aP%KQA=ٕ\b1| FhɝEdkIo hlzEޔjr+ؾXXÖ%^=YwƓ+c[v!B9I#U`us?:<.WM\9D(S-nNtF^{[Lmw>.8T5jrљgfN_0a^w>NkI54c~ 姀ߑU&w 1~0%l}] ʪ ߍly~j ǏbTՠD7fȮturd\3u>Rx)XN7 ]j\>pJ7c612`-(Q_t[//T w-&[_<8&(I@y]CaxzqLTU` k8.ʭt'gaHH90uGɕ?nD+,/mJ(Qi)("bg i/ٗSM|Nz Y STgS2w:Y)@g b"Ygܞt. {d",]Q[6.Ҽԥ@E"RYڈ(re *G;3D#*B'E]<6)(]i!gE}g*uSk%Ǫ%ܝݸlzm.Dc#L1脱ۀZ # 7dK  pT2qf=yG^ZaPwڐ>1몌 cC;MD|]m+LV&NўQm ؼ׌ۻk&;7 <E67:PX5~{9:ewk|b`Ȓw!ۏ J٬Z&S[\ :a}lhG11vԙ|3 TåFɯQdFz&:cB2 ̡*>Rm%k^ <ͱ /"ۅ8͂Z 0ڔ1!=9{9V.4:SeCAHji2WvP!m}SgBD̏;OMV'=`0X _VR$xn;'W,R ܍!< bWɘ^@+%OLF_V(ӄ, VG/J\0.bAmk n:WAE^ʮ'hp;t #@LtKVmϻ`2ʩO3ewt'3u/Oq*dױZ 2+HaQU$m3FA\.1 Xjv"ʻiMy'(&,l5ѕ4q$tkh1K擦ŗ@VֳcF P'6 y[*l8s3PuUvUFh2@&zIGyyZX X۬5p5 87s\}eO.J+@ˊ*ep넫 !׵ɜec POY`}ondȹx߅F%H(˨8sN6njzFǿP)I@@P_SL`Z K y,pd'~xA?Y#W)"rҌ]J La@#WON e3|IL2/97Q}%zM r@fJ8kЋ=Q"@RQ jzLid}m̽ghaPj{?HefHUmδs-ޘ{)! U:s)am/XS97|GHjaU5]``h|y} RZc 5+ Bh6(ͫ`SA֬J{{:e`ED ۱h~Úї}Q֓ca*m,lPc/cl+ICgެqđ8  jJ۞\Q5-SVJyބ`rskV ?(X55d\X$Ȗ74pn>b:$Wzr]'; Wijɮo {\RDr4 ? LURZ3h  RߴDi=UN6%Bvh!/Cӓb_ dWcFbpZᑾ~vo2 {eMۨe҄G{[!ZʟD,/"8:]ł֡:Y/|Oxo:wn-#OB#.U"?*y,4}v~<^uc`;ոO䅦UZ2LT2]jE|FC #ߞ5/"!No[C4&5 .aQE(潷ͼ.ShGChCwKH[N#vb7 + b<4Ȳ́>'r˙_z zaK[\ e|mRVLnl0"eܒ O\~ojP4-ZH?7T39#K}n-_ m[č1G 1 6Šy h)GR+@kEr&Q䊺 ԋVGG^{N M][ ?΂ *HЩ]"bS9Th R9CCwӫ;WfL(9SSk)a$mRaQ-!T҄c찷XF r ?n+0Ɛ10·^#Q3 xczOi-:͎) *_~ۯ Bt!iUtѸt.r P b%`hɹ=.@yFrfZB#pn*KCZڧTAd(OZCê5ڙUη~@j.S8LR(mbiAs"Uv}\knlUs?YX~zڶ9Meohf;@-%Kv4Fr!IvlX` h:BG!-9H;I;YŊM1q36 W"o N}%1md'DP3eM:ӷ9)~(A[ѥB>:l܏J(@ ^+˙V@0e989oyl^!sodAf|VϳRYTtqqգ27 /Q^'mB5+χ#v=x͟%R@ZH/Q=2afnsnypjk8.pa$)4cYPh\/Э}bš-ZNA>BujLH'j 8 u@/sDܐ(((5[f8#QG=c|}r0Uv]t7雳R ~ k^5e*SRԙ$ 3K QO5|ݭm{6% }y\ܾp@mGtu_f@J` /jL?3z:e6M=\Z³*熦ޢyJ[M;8Q5_k<=Kx3hU/}ȘMH˄%yi>M$Ti[9Qhl#ՍImٝQH@ZD e^˱5}XaܒeaovsLXT^; dD>Xכ4D.̿8ǵ͟N#}eà2A@+Bl* s#d;vZH(ܰU,}EE-i\ܣXPk7_тb8aGqꌐl Bm46(0 1}iQ+i_k}+˘iS7\KQU< ՝zP򭦙4 f5YWY+i*<$ ›LPW@ZhN+[H3j#u`Ep9$d~IҢ z'1BV_zqޜDrI-# 7v[uK֐꨾9IUst>w˗{0k=}3R;ZFw&YA%t$UH݃MQ$;(qNY-V^#D|Otm?uC8g@dl+D ^ES%hXj% r9@=#ʎ[1z=ǃFVRj_*-E e,= %g{@7͔|.V}JKœ1-ǀ50;{ʶtf$-q=BE7" n}սfDagˍ|oOyœJEJtO2yLF@j Ac wv8@1}8 zlDPK̤ev].d2 ȲUඈ*k ++a#&|ofxj+LMn&ٺfڏ$^ @)h]up4$tPNH:|PtVi/2 pEbT!a2z( yDsB)B_t0Qh}/g˩ TE <@(iy2̒˷:29Y}$* s 6< 7I1|+2F>I:& ~3=+'!([+WJh~}Kം{<aQPj¤ }6UNi{AESa1ZH+OoI2d~YtBFbjmF4^ IFO*Ki dZ56^QMW匓kN|eygV&k<]W; NTEE[JPvWN/]^]KtU;ʉdՏuop5Q˖b$ 1.7@G1wpdun}ncE(Jߨ_g)-|G`]Vl_I McibY;iыfȑ$-7~ )졯+Xl@y[m;١)g88~r9*Ok>yyɯUp|?&sF:9{?Hyf2j1-@3Bk B`‹I~oA=3akG Z)(?иTtxjZfN\4i/׏,$N؜(bP{2[u5y4OTgOKQNztKϻapKC6G ,D(4!XQ%b T=rnNoR?[iW*6ʙ={ i=bJ xhښԃ.uxnyLL-V5Jƒ@_n*2.LVE#N{P+җ飆$H{x#vЍ#MJ"Q/s4yͼ;#'Kd~+2rXMR h2YqNj2LD1KLJ{;2$2l˅W,DxU qH[KgGwŚKp=G' oLNZ[U.w2`1YnsPpmCb Zn~ogջrL7﹢?щ{<}a>]8z~xmy(NU)I뤓 v1/ SD% ѩfڷH t.YÖ OpM[xå0m"&SMjfG;yrwqiקz3Q|ngهSgHـaMO$߳7a-d,&E7)=*ϭ]R)[5.pKpM6~Dg?@d]TfH%'e=szI[p%Rm!M=7*6+3Nn^z`}[7\{k(sizZnDZnE+|oyM)|~6$Ma&wyF"?fĄŎ~Pl>"<] _:1*v,`yo}AD[֦, \7-,}9*Um,pR|A#pNHspw;-U ;)"Iy#$v6j)ִMd>yfc+Xs\/,G}v%FWeǀSLdNDĀ ES az @coI-&㍇Sy2^ט=|`fnҴZg~ /kt=Ŵ&ࡄ1kX'HVܡ`,=6%ny`_rI56S0@SIMPB8|j79zȪ!žt|ˠw xHgn`!3 i49';>i^ʵ ‡MBHo1YY|PO$1N"!4@-Gߦ?K%襋߯AxEgz22i` 6m_aCJWa2&+2* g7o*pɐeGvsºHO ( 23 `?( GL8T8DJ~smǃ n;DU장>`}Uvx]v-MآKZ|D\$y Dd56#M uY7 PN7(iMp?ơ,l«L3}6EMݎF PWRQ}T3uWxs(v61 wT\ë7h7wz?E$@Rmt]кWw@|,v[<\iBQvB,-3hg7ǘ_#[+Iyr#Y̼7޻El(!Ut3V̝j Fz}Q[g7~LTq^zA ǥxC03HL?ЮZ?b|Wf|ĩ2'i5tEU;# |o}\+l9#a\[dg6RTzhoREa/*zw5YF^nexATp z+ŝ(eW_-m[&2,9"O6 Ϳs B^Vos3%(`_-So( ;ZCVZV~|69Mjw~¡3 Q ;+qG|/lU%]%/άwpg:>?adY jl?]n 8j3bHڸ]hpFOj2oF U4f[>_3iyN\%*^$94*2w0ʅnV4r|鬽䫷F-_٢~P51x1={*ix72Ŋ>X_g$- iJ붯jUޑLy.+{ hWѝQhJ3d_UJ듯 ;X|36B5Ʀ6G~&i`T%@JAVy|*Pkw.0T⼺:!ҁ0)qgaCqCZ[fqσ{O[FnHڸW7ũ+sWzUo| ͚:R$%yy DG=Ȑ&?Y{ʒ]qr*MIR"ȢxeϛzxG>Eu/Q߽uo6`&ͷC~?Pޘ 6ٱ{cĸt"=H̹nS?ZGd)A ;#l#?ר .jک05yY=K7Yw!2yz- fX$!뇺P4J=q D~|P?T0VFVVIPl-F,XBCahSWśV #@ުBw]e]]lsW.,# u t8pY;.?]v^45g \US =9WzRF)YGdZ#Y1KmUZ X2k>;F#UQbѽD?fs9dZca qgȌҭl15 =jLk9*+ґg"e h޺*7O|7B3H_pM4ɾ k;q jA闧#g`UC C[h,ްM0}KxG@M**dy…7oK* RP$<,^փى'YJ5ru2juiruj,Wf-Z}c5?;"`\ݞBKqNDs?% H)8yzZc;1Z(RIDΖ{wuHc)7 BIYx޳7yjjdjJo ("cˏqJ86jAM Ʊ?.S?P=מr|YJ~ֲ<=GҐbSskڢ;ߘ3{eP &$~'Ŋk , 7 cO9^vP qMȓ05%;፾)FވnHZL,};޽XI1iG\ߓӾS$2VXFQ}kjm.^埲tgd%9/g+$/ƨn3X+0BXd񮥮 43\w󘖀A|| ˏM9qXZ˒vCpA%5Ь/6◲;%ѳP[JMbuw<ǽ`nε\1 1aMnqf=eMslrX-4_HJꤡ eĒX7D|Z=DEτA[\(eH{셮Ҷ7`"@kLǴO+e> `կ:`ƓKys;rVEXV<y{%#5#P 5p61D$aHvnkJ/Xtݦ,4;{ !glЯT yho2JU<7w61c?@'iR`6x2gRe_T3*HDag4|KAJr?>yN+Lz wpo0޷!JF\z2R;=mܶ5'^yXV5S:VlVruȜXG '%Ǖ#5L:i: +]?x{Y3n1W"r{Ћ#pd-MqC 40C{wU xyUJEcΝG@ӈQQ]6i&Xz/]ꑔ G^Lq}u!U&srpE% bT7WdTShrM['EwK%I]uxt7+owL_093:4Rumiα<8C y,XoB"RBs4tczqVw@(Koql#f5-g;TJj܄dŗ رX\2">mؼdCp J@BdsF|BDm LfzҖ!8ucu 'D5 AMVK7 䚸j@àLDQ b{"K&EDE MO:08;Šd z/SYaUۂBnj820p&F,)S8]Qcv#2m%wZys`_X/vrO\ndc#>ZcyBV'Nr붥`o4RM:}{ubH/5X'ad7Kw,ap" L%υ*'d$M$(^5!վ.?{2cpB.%#aiݖH1C}ư++.g,OC\Cw,1>ܙYWF*"}'hPeӗa= uI ,BdZBa,GWv}I|6`Bjcow aj^|ozFRw[T& cRMI{5H wr11stfE Sܼi¥uSzJ}/PIӹ/@Q*52xM?;DF%H{(ܼB%?iW_8Uv PtEZnZ =[%uXspEW3cvH!x7tkvGv(16Wp8)gZnRi3`9L#\K?& W|eRϡrIsh5sU_a ? _zXhUN-  +3q"$M렃j߹FφV!9#\,yuں ]E|̠4<ӚvO^ 468 .NXY!6EI|Ol*䎴ȱJ "X,02_`27`,'CD"}r3$ {j(PC0JJwۙtb(;(!wpeMl zL 0/z|\j^?sJ H%4 w;7`S)n19gZ)54LqGnȍkMLh2 G}>1ĞN6샮oe8#[| 1pA9旀\ls⇖BK Ln>=#v;n</ou 3VjښЩ"ڤWqhgtZORТ'H਻.BFzV D@6m !RRj׭u@?$9~X+nM3-a+cƖJh|7}=XO{7K",hdß0#x<]v/5le/eyf>c|G6 J [xF-ET2Q POˈiŤҀ/04#}VӖٍM,pGg8\K(N]lxՓ+CF\ mq Ԋ=PE'ŽT鰧bt9!3Ɔ娊l%x^,?~&WVBH"gY' jtAR^V9(pwV+y)Ixe*S*Of1eDյNi.QIu)̽{D9p} iF4%CBZ%6O2->qKo2邛ϋ<|QlZ nOZn.Spָ3ϫw:Q}Ae ~=}q 2X_+hӱ['NRK*P6XS_*$9.MqڛJ2_E-0vs5io%;Hٸ o4w=h'ڭ\L:(dBDuIVl724aHFװ_N\"Q9Z)P{o*cH8#3\^6ٙE|D[zD "f-A,_җQ)L@4|Oh,\ ,_g gX(ja9H}U$٫guE%X7h~9sFy۟<u2h_A7ܐa;Fu Ց D!(X+"Ye܉t1};>*]ͩnJ" 3HM&a(ez@eӯ;̉]RL/N~̷x]RꊫZ,`pIR6Ei[ق H X|Z(?7=IMJQC#!;Wt3xϿ[u$pFH- TkNrг7+U + yȓfR x!!\(b4_%~PJWg{kiS8*%)@6X@ދq8;Ÿ5RGh N脞Wdqi ޑ$daa٫Wy5S E :"ܔmҝ1 dԽ&:f!_u 1rA)G n{#oY˸Ղwʹ so@wCңbñ7ȹqS)-Ԧ8mN\]#8;5q0\JGr|}FȕSViNlY)5b>0F/yL\.b5It{9pI9e6_JO-7R 4"X%?^^ ;IGXINV,BIX!!Iޔ/DuҽRD(1ʿW^ .F6o%#IOݷ tYc۠mqbHYՁT{ٞtfNi,4bv1/Qx9ͬE=@ȎӔ1|cĵ Ժ?Z5W邫ecD~s ϴZjweʋ_$k0܅̯g_Kr^騚X::b\ÓI?%\h1ն] ƝQzHщZ4ү${Z K7oiy'i*+۪kdũ-"nbA%DNCϷ@0qO,3d;~M/aU]A(AM~}nrQCi|ϨkE;%SޅT ANĐRʝ$/:qX ,![saZH< 䀁,>5G~j繴gcLfK(6*@/cg^ۉ4,65Ք5h)r=?Vf{flSiI]ljC_"N2Q}I<öj[!;)5 UsIW`(3 ]x,c_ c[e!P ɲ~ŗbO{FHTɿXnGLӓpSQbNv?7|%o=3le0T_=v̚7a^HޅFCKd\ v+Wv8#GC0aCe++E` usnhTaN jyA@"z l{ )±_DC~1WUSط]]ziA Uz\M\Gx s3Q2Im2#?WF,bmD R GSϛD9'ݠrL 1l؂͹z2̔%_q}kǞ>p#sipSDrUOk0Uд&>r?u~D{Q8De\w7lf'o& ؅nR]2<Гa(K#a-`2Z.`GQ=4h0F̡Jj_ٌa3:rCVJiMH~jӆ&8@2|I}>Q ܀SgDB4f NZL:0Iz$2ѴTq&gZh5ڜ9%.(cΩ.j^1 $~QJ2f:%*~Pb9 !$qvXq y7-5~/kdVJC_T8n-aˤ҂1)=i.41' 2Mh={IQk{ Y(I΍&_2%p@F~20 kWwYUC"J@wyY's*3jbjH`T=\g`cf!_f/wRwwri|ۭXӶCQswDž(McwCE缏Bޞx0$~m#vB?IƙthUk&HWYݕ +'ٗH=H0hBPw$ ZYzJd982=_ܟbK^mh0' xe%E^1FH'[M5ށy T:!>T)[CHy(R^УhghV_3N$t\V-OGKnimi#UǨ :R_^=q՟hihƍ4?VҖH=A0P[UIS\e6WczZGzmȃDIYy^,e'PŠOlB˽Kw M)SO{ߞf|D=]2c!rM o ɨʺN~OY$m vK6 &u )w#+#Nu5:YftRqgzŬ" zbjָOm天DGEa=a K2pyiѡ1{GӤvdnz` x.LkMNbU S8݌GvKw/!xܯ~PT1D.>=~ÐR?Za:Sb(mM1#֗&vh&IUq&rc>ѵ1T}!O,XaD(lF&,Z,]Olk|y@ q_Uӊa#DM$3zhm~ݥ#γtl|P&M7/8 7|w8ejq u'Xyf-yCkex$U`UjW]J+(T>cRhNS/ 8h1CL3r,$ 3z-$A> ug mVtW|\,?]yYzB18V%^fǓM] ƾiԤS~Y 6츾g)oD+ *YO$@37Yꈖ48^)rν[_ݒ֐O791QL8B/. Hi iav"kc] ʃHXVb5;+mHanC_BU>de#럯sg*-U?)RQoMr[Av v $b@4@7+Hš2 p# ]/WrP{Zde>3NdVxfk:̗HǮtLseD-5u-+c P;۔,5P* T낋tXMΙBowvp i:+Q{5uZ-ydЀGəEtP$Auw7&q(ZgUU*"쳶!H&ݴd@qF$Ao gaL $yhM,@_g,`%%. g>]W\N~7}Myjv,KiF ֵƺ<,A8Q]hjz_\) i^ih.5->)edv9zih$4v]0g>LW gI !dXmEE"dbņtSd uj2_捛 zާ!ފ s?g]=l?$j+ѠX:aD?N/Hv\a߷{t06эN$}N$0]]7rel-*e.`77}Sr(kNm^je 0D85 0BHս#iıNoj6̛&Q̫QnIs>)Nzyg[| o裢i%ZS V.XtAuEYHd/z Xx/1|KpVݍ5,Lw;n\T9T/C<7m9JdҫΚP=+V{躛 g8,Bݜ݂1QK./P全113J<ƹP8wW Mدaۃ=4Yє*'RL\)=!?h拾4DUlh!#-ҥ-Ӊ}dOxDA}@ &:#<=J ֠9;wŏNV. !%(C|[ )+C=_޹B T%qE;Z}OpyTJdpL,8NS?!ˑw֭ m0gzț{Jw ͸C8 PzrEB+6 ?Y6l{N%஥C=e$4~߯<=Oi-=s v6KgҘ ?SPc;^sǨlگNbk_$LTMT(rGJbĠnI<Z Z*j|,n7B-;Los$JlՈ{:< ;'2quKm׺\xfyc ] 8MiAH[֋4{F:^ o&usW @ 8 F 3ˈE譋ձ'/FVJrV|ʑ[h| _%ֹX%Rw$_PAZ=IDZtW/!i-jq zK>Ɯa,Hhr|V-/mcߠ hkx۶b1vf|M>*?`h Ғ]`C['τ.K,0hSϜʣߴuIhsU^_^ﷰw``~5ZX}(]4jK2H[ lr+D윹߫L0mZ4zm_RzeBӒIM6Cfo.M 8{FOQ;n7[?w?pRna+^>tS<]fV ؓ5)xcfwAJm ee_J$X_ PJ={VpVI臃PDB2S3:^% ;`%5m/!F9FRyӟ1Z5BĽ^JNl[mlT@?J ]I4' aYD&A}WD7]:ay }]=OU[{Fc @M-)055e5"XC4J4ɛseKhZԄܗF@?(kZ[_$*3\M:/lϫ8Wfˆ,57D0yML">4 _XuvIb):׶-2&B>J9(atSN\c,dVvV%Mؐ/oa=C2 Hoг|u&aJcXT<i59YvEmY1a8+5u`,9XM' Pb ~oOﲲVh] 6 T2:<) <UU]:]ٷ_c:#tua+5xF2荶E Ii_./oP3)amq[Yd#( cWxݪzqp:p>a`VSة^,{k}!jn ς顾GmZ ($,eaD]{ HSaAb ,:>u&B/IQ}$# ΀9~N8t*!@n*wCREq>8ض!QI0L_T NH6U x/ H:hkʳ%u˶~Աقv ~%8)3y`T$.Hs ļ{i 2ޯOq(JgEQSU?3jr ȃTiYڶ%!DSyIǼ*`,J8IK+R1IglG3Jy%9W>H#?֠g'=ڍܹFP(=7Ǥ ;އha3K*<1R)LGDJBU-j_1A5/lYplf3=*uүV%q<8&,AWo7AݾdUTg=|pjD<5_XwVLPfnD\Pkw  aMISV6`R <̷;YP-aOdfG "Ҙ:燶ho_ +t|SXVє+zwxX2qeؚwsP[QXޮM^ƻZlGmi]K0Ue(JB !prۿ`X~IGq:=؋rGYV%m<*H;P*âSVe:,;OZ^תZx330z.C0e~mnsV^Pt()|o@}O\y#v4QqT&Ǟb;q|j@v|}MMXe__5 <:M&\ujPЫ%U693ZdCJ\L"bL +)O5*\ >[eSw͉V.AUϣLo ո1j$lj CrCXR5/ގ/2 ? '#mJ)ӹ1}JlA6:Lh.p=Cd.KK4UD1WH!Ȁh`T?tH_(.g:_p1TvX~#7rfͲ€+?A龑݊|Xӵ# wD(P܃¡7Q R7jQ 6&cT3HR)5,]l ?rM8 vn?/h2b93cy&#]&źJ}ri.}OlT̥_yf-T‰Wb 8 xM-3I$Dw dKmr}ꎧ%jbկQYMtT#Y, lX,Iج7|JP)ߖ~ * 欢OKѾ-pGŪrwӝk=A)gF~l.o0!m.WQqo8In[hC,0 (>6ɲ\.v oZ1=\߬>fTs8i`~tQVίt `Faeer[D ҿp(D5W}i(lT;*9@H'f[֣Uyޯ)C?2ʮe'E(>o/B'I`}w5K<{ \AqPˇv'ĞJ=x[b0ݍː}/ɪH U]yN傖@.d$:Ǖ`ٸUgn. `-Oa;"jWd u5Ht(jVauS_gտ䬍,g#ڶӚ_m7"OPb)de uj-cnm(Ĥ\c*/]k)-}dTϵJ0ph~g$st+y:b#XݒGiM};3d[h&u {&C { 2֛ݾ__D:ͤ(湉4A{]h,qJ=y*" ]>K4YkgL2l1E]M<S/uT%fnfdߕ1%z$GPyńߓ65 ;k ٮMWiJ4 >fU[eޚ@,9<a[U {|%_" d,__9(܀ZwYNsԈȰL!-A G~^ ;Z :̧[$kcx8q[ j %1!ٛbS]@.IGx.43d[BV߄4.jrXġV-#h$%K{؞RcŠW^2jڏ&fC#20gKx :B,Xvh|:-3gᣒFǵR٨+窖q-6KLљ?mqlɾ9e7ՙRKyHPi$ /El!-noYoY~'Ң2tjJrP@՛}#%KVP4frG]{k{tn3ݲ:kDwN6~d~na5vTC{mh99DY16A♧>o F˺wQJ6TDž)8Ȧd'Utǩ~1 N%%W)9Tb^g^ێywˉXXl&Л*"U@9 xȢ'*>>d1 Jr`Hli+ǢqoefJLDPFEx?4f=S2gCm0GA,ꭍ lm `#f!:=Cp4(JJX\ay"jZAj%I)%'8VC]Lsph'_cc*`zkI&R \W޼[[QD'gj̘4mT3}gaQ72dp:k#JqP*1% WpnB0Ӵ99Kb[OSK2mS1 {p ` "RQ[3H 5ҘH[(=5` J1it,ڑ`E75 jϗoicQP+@|bGO9 mza;vW e9[; >]9+:| /#XA$z Yѡ#Z`dh$O!ݙUPiUA`GLx 7jywỽoivʼn0[7ֶy[zl feEP3uX==>uXԁjQ;m&#/C7nl&ň'A_ Bcd^vqo?_3]>M4CKyQvw+Ũ=14CjУj,,.[!Dx!LW "\5IwN0ʿ3Cٸ-HJ'͡ڣ2S(z1]SnZ gynL6tg(WԮL6K,l2ytg._\"f3sn&Q? F;u{Żn~̭xoM ^7lug*j0&r(:?t[|tdAQh2m2lm7B핷)7k&1m*.[ fi7'YX9۽ *b0ںyg7QZl3lA= ,1Sѫ_4RgV5#X-Ù{yi$iJ;TO &>j;ȯzB+weA2.6#a K7 m)ۛ( a>3f4)Үg`^z>eKX)uHW:%M 5ɚZ$Gx_xR2v(Qj=+Wܾ^7:p#4%"7$V//Qe!R.k0{5p]qj#0r7By] << ~{7>Z rC"#L}Fn'H =Y2Ƴ2>Q^6 w(_WCU= MmEKh@Yovn!Ϧ g'c O ;v?M ?EN^lk S:)ԧVBV`u/OOI^4 N']LΊ'H$n(sa 3َuS(kϱ$^v.W Q2@8pF+Q'zB"jnW7P ocqiaCԳ̠M)N<7xEc揬ha&ap8ʊqEEDMЧ jkIev:I66ԍ'ocH$|Me |".PE]zHi{Oc{k, DzԤ:$UxE5•ˢ~aC I퍏%~*.| XDͽV"?0!P^I?u1-wNQkO?n>:5@Xpimc{Lvǫk-xS0AX]'5o7qC+$W|Z*-=E1B l̑~aUY;,eÂW:^pZtm(Idtn)WW0a:~ś soؙ}g+T̵tѭX I0l.cLhoZt`dMaSuEϔ[vz< uSI%= 0P IH4tDB[zXO2vd`wK7 u,EuK9>~>Z!К羸חG$;=M o<13.($M{>¼mG yM[: F&i (sIC]R`_A#9z0br`%UXG$%k|M5,qr€_&]-l7vWTa 6HQ1_Z30ȽSn׻_ɰwr ~5kad$H%á/V)br#X:"U= XoP lKBgUo;`2(lL"o®kAH-*Gg(ͱ^H|OsntEY z@m:lҥjǤNY&Vv8碖KOEuȆ'Vo07Ȟ8k+dW~Ťw fP-ÎO͙$`fp f4jQ_rR& W7 $ Yy%gZaȶA6>M}r##405nݔZF/#RVQJ(c@  ֲ828U. ?Ƀf.xRww S4݋>"F+JJ>V lhfb 08E֬I\ LޗwJ P;Mu\nR} (YqYxaT'w#XВTyk9'[!~E', ]H)WI=+;(SYEh>p:r'dɫ[:g"PJ_3c le]*QVW#vjwYb<#*PK2*Iܺ?#kCܕn܌W/˨zkS)#㉒O5)Ҙ5N2 ITalղɫ"4(?ޓLsxDzdd`}.A/i9T:hrx&nSkBO~e 7l~ 0Z*oHcB(aSt>%ibhr/`[ :ǬtW4xZ`+WnW\IԺu%5Hu%@:􀺓ߖӓX.`Ygalfzو9U5?̼@&8ĉ_4ZSR-N]PG%(nS߿Bm(IG*DEL_B;6b3~94ź1ydž,\ *'N}PkT%yRc5<8e>L ~q SŁ]@=#}|"(n_n"+KBy+.& H3wo[Q;`,S,;%peq&"ۛN`J-@< ߁A3Sqw0y*FѕUF/ւ7ӵ4TnQ:@n 苑|.c@q\+:.}X g r'v{V4&Y6vB{QǗ D$9MDi-9yPlwb5F"+8NWx }߼gD5#bU1\+{2},D`iYݼʉ$fDeTO{ U~4O!XmE3Ìn{I3YYAzlEN  2lc62#59פJ.f x)\w*j/P6.#es6>|+L&|Nuf_]^G-f]PAiÜFփlq5:2g7|n%Ew(:\Uҍ&wd3^*%? gN`7f~C=`S\Zj2l^gk*  (z8l/C& 3Hy 2FMCΎum pd*Rb)] s~yO ?)PWH$WKXXT0RKȩ{Cӧ+7ÂMp/ vԊ)i=vF5 c=R+!D AUͦJۛ|Xy,V?Z"J($2>ɼn.c{K0v,V>I3[F/H@j6z?LeiV>:e7QvʷiYaHKS8K&lk6^E0!k &iW| `NDɋPQC*:Gᕌ ϩgA#n, gwOꜦU@3250<#sB'P bOlVςcFU-郞.Ey}5z 9? Ku4̵=C-A4S8$n]zJ-?RO$Ɔn!\ڲ/8Lu_)bko*܃OEhf jEe l`x]j\gk~!k,لWhS@SÓط$-O$3򤤅`-xw@}Y2xBPl3֦Z@*5rGJ͋$Z[57zEsZ2BR5 Phr|w!er]AL$ ,O³݊>?=`SW$ǤzHhIC̪ҥ#M˽SvG~,ڋz*mMG0ӟU?0}MFV (B?[{AS`W@Ji}_Ft[M} |~ǩ-&9P ʇ;ؓ;=*)'es JL嬑goen&c- Y_']Zpe_h|LhhteIOmzgNLţ!iI,Y'SDkͿr;WbY3~\R10HM3D9蜡kB%{-Rk wilJ5yS)3yƔ'Ti~qFJ7TČoxR|/ `U"d*bN N\\,)L牋0e4y&rH値L5}HWf ߘkw .TMfXc9L ؉Rj{]|J}(k̻lO.Y[ |T]ox~NG-luS?]+30p9@b&DfI$'ޕŗnǧ`|C:]|-m z1oޗwg/OLp3#S8{h-GO!`7vS8AkӇs)S34&8C XsVK`mR@VxOT=]v(FJIs'io&x( JظB"6mLHYn)"P?In(-sRUng$|lICRK0>v| _ ʖp^׬LE)| ktuvunpȚuvy=Uhb&\2ًx"IO=X`^S®Yk|Zr1L2eJ6$K)k&㘹I߾7uD~/r&x Pu\v+4f6bZд!80 K>U@?NJ Cz |CȎ 3λٵ UPͫqœvoPJl ~7<2r+yKvWͤycބD&OFaq"gbl歆OsEsI9 x+6y47M:ޅrʖq{|/$Ax[/ih_߅:'zZ&qpP[/5M W9&Icχaa?20 [͌w^ Uz䄧|w_*ʊz1JPŠ`XxSRfqnb:K wx'"BE*#-HB(+jٽ5rՑohIsV58PWʁ|?HW{G>bY5:QͲU>ik- Yat 4!&%:0JZ :X SMPH 'sɯ>P5ЫjcA>:KY܄IXxyh5$w*ݖ[ ȼe8A;Nv_G|p{ɽYD #VEMqKSav$}Yӫ'ܵ~u'#Ԫ“T`t‰Cf"' (*^;}͏pS:ڹ@NZ0l-ؗ"XoOdB .Wƙk\CPSa[v@GJ̖3W%/E;^Y+n$,[$͠1lw %!^2HSMBt;A'^=tO `FvDXe NR#1 \N$%,ΐ0J/Ij~c&ˡMW w|3mrwe%o;g)DF>@x)}qb6X!ЩAꦺIdz"~( `J_tY'l$7OC` 4K5fh{ Y-m\mweTRI"dv?>ݥF҆ Yj!-N 5J8_voqy tїҟZ~ >ԇSރЦ :@J!?@"bXH C@-{T=f=an$˳}%[25A֪1h 8W NGӖQ;eJ+oظ'NE-#9I^r Lۭ!ϵZL[:XYƃ7+܌PY#-lFlUe'ժ*pl~b@N_}!״QqjJܓP,{9c|~A2{J"nWni{Y;MA&Gy$ldq'MSTx e5owEj^a>TCj,Q2͜ۮ Ly 9H~Ux, 03`Ld$$ +;{_ F1'#E勏:Qd֔T OFyHD!*P1/OjşV7Ȭͩl:#+`A\)ŃHO,e#_#&?~kx;>%ƅ .-ע8ߙxo̅NM  29S)J]a il\ ZHyڮev86,\>[ 9I zK+$m_#m-4KE~&Ƥ/j7Oŵ[,|F1]O0'W| hc*E3I9q<ʮ\>$H{s}ȉpZ2DHڞb9dģ{jQ,E[̨k_YԀpɞ-D.+f{',Ys^׌SNZ7B6f@@9XA4yEpr,۱S]q# +{KW7ZT[?.|ڀ~Н8ZI(G>YK,ւ>‚Lma[DM'O`:ܡ%4\ҹ9{ =J_l[~/ͱn(k|Z[!?l˞SfDȪRV% qĔ5HayZaa8TLSp,~ IXNnԩuxkF*Ag 6 a $6PLHzsiէJ8i| &s+I+i1,8B<(TzuP5[V`viðěypn<,,8D['lD6XfGe!3qb֐od0 a`jjdC+ٙ'zX4uhq&}(+G;%*cwRm 5³n qLIlq*J-1Z?XD+,4؟12ٽaKGBIz P|uģk* yL2#F(O:_߽6`[s?yexN~:!lȰVie*:NOpC&|cBE6YF+w>.W#`(vO^dXSp8rp 钋5HﰀT{HBb ۩rO)$oy]+^I+/ ]XІOesaf΂8"zӢq6|iSWSό>(҄;zda`-F#1=9;e?dI\P:dC_ʳb&-n2;sxxrH6`klt h]{qpB0^Cq4c HϤٞ=Bt&' [3yI"Bp裮E-)w>~q~w4Q?R1ԽĈub#dr!tSۮlJ_ 3DdNv'PM;IXP>UJ؂&~+7ȜP/BQKyk1h둞#.I+ͨ@BmxVA$GiuT=StK$cӸ=:=P/XI&6?Ȳmq$KRLj\/%(1g{^x| +H"8Ցͼ3]9fH#%qr1 -@7A܍6%jX(Of V+7.chcF~De{\z T:t;!.Z~_H#-`~kmOt ʉ%X?6") 1 0 S; td]=fJ|cL8}7\= k] Կ{.dx^(ݺ4 F ։6'/́Ud㻦bO_.9uc{1}Wh~ULLɀ2o !s7-;&sbAJGi9)cִDx Mr:Ve|#!)YJ9`Ov ɡ Y 6~(,uնs )QtiKk +Q(39ZK]ApvHUFʢSV/0ɺZr4TXсI / n\=QM¼Cy]9h    6S'2lJa]s8"P.̖/S(}=7ed9Ob\U&pN %qF>4W[0p<ЭjYxVNm¿E`|F5E<M,̡5l|C NrN | 6 s4?nU)6sE\n)G06~BJ/U ]2ҩn[.Aq@ P]J6Áͦ͞VGyjԍ#sb<@sp l1'}_}drGJe$#?w"t\t9ѡQI}Dz0e3I% Nr~+5=mC )lZP|V,ryʓ 'ciXzGz![k~m8`}$x~.p*7}5 8y.s+ȵcDQjvS\.^;I(}t*uHš{G):k85mMma-bx-|%O ߈wc{hMr4-I Ŀ#jUWa05`|`{Ewfvt-ѐ*}]mSev#ၤ N\U-?A/HG-mToWX*Gh8lsbYbM1HCTLЕϕ#(zI]^{a?\rDX5D#~%Qsx,v]FJU_ Sb1TAc^2z' Q3/^-1P waşQNԘ״&)B7݅+psT}PNއ7c3u[S`g4(B< C./\^0‚{.K쵧u NKN%d#WYӿxsalEpթVtq֔-.N{'OW[K3.}__GU\p%svt=;ͩʩoD(O+8!uzNښ?lN֨g~q3xqR5'Aofp,GSjc#A_ݝow&ճu@r"HAJn9;$4+ ~61}LOU.E<q,Eșj AQ=cN7= ů{6C)A$!7ȡ7׺=^2d+d~gxl' Q" G[q;FNOX%RGߩ= ̵FEyֈ3bPۘ^w-. H'6(r_:5=- FlN \|ܽ]e1m={Hv˖Z$ʣnR뀡Hje ȤH6(\{8oF%Vuq8*tVSxSt}9A{u)Ȣ XeFcJQ 9|Ðڛ)ɗ"_R0 ,&G|N (W>6IyBbD -n)Vw?D l̛>- 'feAT9oT V& \J}s]"OP fKB0f b/7s%gaLNR[do,RM\#_UK<NN&7{fXQ|A΄ U|9*d-VCztng)pإdm;]z{$r|G`}ӌ هL4(\WP®}Zmk}:soxG8Mޞ,./iG)25%7H%5>jl{~Ymp2SULf=qmJv`p gR/\GM$\u[$ҶL0fV5[bt5ݴK'Ipҫy})?=״$/X6!hl9ȦI>^@ΐ!{|KnDdf ,!nNg`mλTx1.XAHxPt'MnQpL4+*?I\jF&`6zm_`UڛaDJo#TZG=Hp=(^'D}Ѓ&U,B_8+ב#Bhf+fN;I/Nz&bQgp) (I|fuI+ל(züCVR>?<̢ѱaFx?~j׌]?}}VQlg&'@FV940㧹CGoiI?#Y:A+O2=lʲ$mJM}|DŬ g.j=.#r´fދ> lU?KtE((|?#񏍐&LˇqC3[c Tk`nB EqSΠT4]F˺x~ *!]T 1Vq.7Ɣyd syxᐼr@=2Sͧ̉$<" -t؊1.Be+t:_%Xiw*Q[C[uvDe*pCu8tK/A;&0]>gxRC 4L1jɮU\HEl;ə{D_Yq95ÝdiQ+WyFbxpU\Z R\&EKT\Z0*>$)߮t/?_\FQ"7(%YD7ZPͺ2(qGfmu,4|zCLT0DEe9YW y- &3@l)DrTo)] \bpolt=y!VjIa?-sݩsqfKUHiVm]$aW{ Y2PV􅔀 W-LC>!:[t91~E6P·ku|,;T5Z6c"n\IX׸?{d 4Rٮtk,x5A93a :!ul/Iz[i.yᙜvP `jݬlpy "K81^0$%qچqLg*%i^.O+ ̀men4tN[ѰM]~ { e+ lKW!fHvN}m0ⓛ  ,p#{= YgUc_-cᵿX|2!ۤ9,D$BEpG:MSS9M4N śXT9 b=(o.'MZZP w8m9D5WŧmrD۫Ƨ3=M*AFZZԚř'/eo[ecT>>쥅\5}pF2QU3a <6=#'S_&)-ۂJu1k_o^/6:j}C-)[#\}^ӈU9 T#Ghʡ 1$͘AѼg꒲,gyzo`BؔT9V\}̎[osW (&1ܪR>vmѴ+fuVL MECE&vAʀB6z0Zآy2h$& dU8ݪ_HZ Aޗ&/#&9a1b_(@@n^:l".m=}γ2w- $Wms:U}K@YAIU#*g<})0,Tvc&xb|t <yW+4<)MNC˘[ YvۡAncA_Yߦg^W, ڷKf.zm166YXzv׏F R&!6d~"#Z (#g$6+1J͢3zeGy~u6*+,7**W !˩qAHhGyZɚ|DsZ&EQviKL[?A)S}Iخz0 h#dRw' ϠT 5؝8u|$MJ9X xIS#5>GjZ{&^SNT؎D~-M]F. #l)+{Zh$Fs1i"}L",,C;Ѿٻb#B˶3{ZRu YG o`}_q@giŕRQ P4jqhCKZyUo0UG/v*fٕ&Vt_to~\q ksn$X՜JZ ֆa1 ɘ G֭[q9n3LPWp5ṃouF2^3SG.X-ht]0$m8z#FJ4egydl[W_ TN7E6!g %m.z8/9IES#$yN{wiU +tW;7ASa^X;EOMZ v'  &*{N-[zk^Ek|\Z"U@51҄4)*y2pIk6?#g<߁5RBK~O/PP4p 6.2 yezhհ~˶e&lB1foEVHά|Շs3?(š8x7ً"䰾8| ﶂ,Q #D1bR(®:>V^ vd5ԓ%Cp# ;/)V^D#W.]j'8ٟe`w7AgVmˣ! VMdHp==R;$MOВW|*-E8dz]N#t"-)~FJEM(wGN/ oDs/61 tCqȱ._F U VX;C)N߇hZfZ/셔c 5Y'pqK?ϴ=f& .eAb֚E:m5‘/)˽fT++b4?⛛ZI0;=A" H",M%R<8$@ ho&6eӎ@e+|7d[;eO`]Ejuv?ʂ%/H0r=cKLzyL ~:K>3/wbµ(ΦNWEΟmަPDD.[ lh~~39Y(e+dR [b5Q0F Ux:zNTXO5=w 얬X乜H`bGY>!Iݬ~RJ <mPo@<"_cuj+'lFHʳ|x"sB[=BЅ\N~ᦑf5qR&HP;GB*?o/(%#i{5Ju,U0Opӑ @>z"c{ _kհ|uyA}֭.9)-MR*9ZېCq<!zpkF{H~A&ڿ/l@zc. PdWM|:j/?1 빣}KӬc<4UId_ӊ 26%Jm@ec _:=p^sK)aݎDT~֓d%H{Bִ%{pef ϩT˅ ti{LTg $xo-'f@hT#qR]_fe} N<'&U!OVafB&=8*qGRBwDcuG\9YMu#[qF ϻ:BnJEH0 de Y@FOS*0Žб (k($ū:-z[muZ~QP쎷dz ˚ePh(_Ԗ}+3i\)u h޼ح6Rq]t҇sD<&3@7JZI#ʈJUZb1y`m˃6(ho@͢*`3p)M6 nCP;XdJwDDJ% :w(CL*tI]؆;p2N, NնLKN3H~Ry!nd~E0'~,j)jWӺSuh{<<Y1@ǽiI}f`@| )Y7C^c&bۭ7 W/9]iwoOcIWH#:?S^Q$ݐv%&rZҟ##6.@E ,kwkKH׽/í[m \s/oF{A Ix2x.}5Z2>E "rY; Rލy z+ H$ɻܪ]Ǘ(T_ii;!I*kSV}$̙ >A%_6NŪgtffM~~_9)L<-L-AM~2!崭fm]6I`dMY0˄#C̎R>..0[?Z=J-a„;hQhIez+݄> b&xl%0ːWBnJҐceWH'2Td=LUr㰆$k Z`T*]VG|?qoj`E|E\zGR1.ǒ,n̂ZvWݩS{tIt<>D`ުsfXd7y@6+EW7[%xaNF_-+brXʳ `&Ty0JlfAqY*hNЉOXDH^!`C:EHdms# O',/HuYl/Hg=~JWĊsk)P^okvZ,kagk !,>"EGIÓ*$aI!v"yGEoR!6X*(6Ȟf N{L7\[6)97kTDgcZc{9qZu ߿<)!8g}%d_K C.E&?KO<筰Q " RTZcs|bh5|mP׎S+o)t&E1 RX )*v)$D0>si S;6崇E\3nFꯤ-OHWrU׿i8 f'?8sGΎ9*^%jபaD U !TuV o 3 WmP0{'Ra2cNïcA<nPO֚r!DkjRĊhhPtͨg,Al}x?H9>+%^YWE=\CPUQ6fm"Z=w#T2S/ID`b@Ucѯ`w#H5RUAQ e0.e`/7=xM4|U=n[12h1NUrUG- -F`}z5HH=0[7)ξ}ƃpbUy.oצ9hHnsQ>O#3~ ~ "DsF֒W#(Vo ۚx>_ݏb׶T0 >T9%mz~R~]7l_0Goޏ $-_!TE_Z7`ۊyin)=?Kχ<Ю5VK]Enlo}Wo F.H#ک*3v΃~&(lKңH*g(:HZKV4A9*dU!@J|#jm,dc' @?۱}C("ӽ3ip}QmI?9UwDO Ϩ Go^ZX" Q.b)[:o?lOe\|F% ~bnmɐ|g Q'nF.dniQu@~C$G5ꑍD}!" 4)bXZ\Edeӗ\$u3:jb{@ Oyкx,o''-jwI1Dh5J8!/B &"/_Gh2l?;#KZ+T t$.6Ƥ>$>YwMjP~ٙͱYw c-b?7 ڣ.*h狐c^egk@UzQSX''(u0BmwLZETW47DnX:9G/nG ZA*QCMc*3FBؚj)pxTF%s)h> U2@bџ*d{B_ײj89~;R5wEJ.i!(ܪ'.{)kNo3x3d_OB(S@ ey+sRI>-(DP޺w,U^MG'$R`/D/X$Sl&~-z^م'*urM? g_Hz&ud, w0:jބ(I:P߫cm74:RT3 M!/XV p[m~/8qVlނ4?\^aeh/V03.?(:IuX+4 ]APʓA29}EWʝCFCd2|P+H)s*Kv:酣%!fM5(rt8|*b2<0UYGC,Usk:,s@x͖`:?d͖ @PKgfEP?^*vb'F5,U kY[R^#O?/Pp]d3WkVRvd\n XLij;A)5" riwǛP/aO3g傺@-NGd֙{FnKsfNCU*v? x' 焞Bۃ 23. o{89?$} qnjȖUG+{>q b&ci'ܳ+;j%"3&oY;HxjKٍnR}Pl  2~f#IKGwuU=ˤU35B/ݭ󀹩fx%m}H~S)+|ç7 itiqn85H_|MQ@-76d2D[˟<`f-I-XVO!lŽ>䄎3$l-abM-#ƍȫ9|p{Kh^6W| Ў^9 ' PH\[GoHjϏ=[Ѷ匙-ͼ4uz3OHTzoѻk3';f"#Mmrw7i,_I jlo٥.i:W]W`$^LM+OhkgCZhzה9[)ݲWUޝ8/I.sf7oF9p禦Ԑo5n'P=rVפ1㬛V)8 -6%sNGWsOUςH#i|'ĹR;a2@':Y:" XD91CvaqyvAvܫ[@L6s/o>w;9/F}8_LKܡcȆd֋aLGg^#VRCYz& _Y'+cB ׊S湒 ]&1;cNF22"5ȍb2GH=0b 9Ť'HKf h0yD"sF0B6,} Joʒ@ h&1 L'7XL'v*Jopʘ\t/Gh5T0]AiSNӆ`$J|Dkyq |7vX{PnB@ FecCR]Rj"8匒ܕ,<o3GK<|1Z1$nq%okvz7IM^=5 n]U ~EFIb 1*7V"1KO6|, qXx)}QǛ{̾{s) ں țC0I pTlq9Xڢ8~i6R޳UlMH>s6S1葇nH4?uXHQID nBɈBKMbEL҄]ktPR٫(ȭWq'QP;_9$\= muU@ZEm5:"v2 6=bQɒ]~FgyúHBMGV^a$EfJom`}SE-=1Йnhq/믙SM&cU ] PJBNT6L*A c+cWcDH۴-)y* z"moWq{ S-5JY+>{cە!/*0"Vk!A8bd0I\j58b9yiG PC]U*}C,N#LjJ|(p ˊ (Jf cQ9߂UP-s!_D I0lM k㱑ϥz@iǃݖ/;lۖMћ{9\Td/Oς(X6+|P}՗ny'"nZ[}}27y{Ga@\bѰn,Y?^ rG7!y>۾k׌t(zO_wpv::iSMw~V:D~J x>oALg@۫v$w7Kk|n#/:/4`6N'p0ûɉX=ooҏұ7ĀHq`(1֤ͻvo""Gyح=n L)KJ/ :7A 8{)w:G.;".u$urZhf&#sۛ&90lܱv ?,2 W WIup{Hd6~;IT2X@Y9 ߲o!nRif%%+l=<ؕ[uT?iɡ+e04VXF;=G7 4fm0%DeqYiQSpAfD~(lDx[K\ ÊR79t̋^6lteW Ƅ:P TB6^yH= ^Ʒ^;ld9C57.Ҕhj\cfzӊ3k'}{YQQ&MAr T0Fܜ$@ɭ]247M'̥ U1\ &Im޻{9Гr$ZGE#bc΀&MjZ38uP4U!*L8@cB VHځ-,fMMڣNM #eDa?nj٧ƕ+~1KLŸVqH|*U5${T3]+Ak_&RfvX磞ń֊Zs Ĕw9qki5,+M9͖(j{FyR=ԩ#/({WXҒ0fI м8n"܈(&P{~Ux+?B!n'4MRU|/Z+m(t 9FKS|0? %N>O4 9 t0(h_for:?YLAc̟u4/׉|){?l-c+K8+ӵq߯2kn r~0=bkp=xijyz탯*)m e /ٔIzuDF [4޼}h9Yjyj$~f=9~(ʎ"m0%N WLR.~b|G B 2d)<5E1Fҗ{nM&kS3R}kaaς %Kۃ f-is`w{*3CkQuu`Vۿ|VpH@6`Dr 3433>Br#jCݨe1VY2e\H߱t16h%\;нjJz9{^?b.@@O=|&"3c|xX!G $oe`E bẢ0.H—|u~UPǚQK^ -ůci? X^tK4ܞ~iTe6gDb#M' טw$=/b,s4^nUCη`'߰eB!g* PuIei;yR2׺v4 mrχȡ`Gay0m9NV