web/lib/Zend/Controller/Request/Http.php
author Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
Tue, 02 Dec 2014 12:30:44 +0100
changeset 1164 9128b85b5dea
parent 807 877f952ae2bd
child 1230 68c69c656a2c
permissions -rw-r--r--
publish museo 1 2014-11-25
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     1
<?php
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     2
/**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     3
 * Zend Framework
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     4
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     5
 * LICENSE
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     6
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     7
 * This source file is subject to the new BSD license that is bundled
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     8
 * with this package in the file LICENSE.txt.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     9
 * It is also available through the world-wide-web at this URL:
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    10
 * http://framework.zend.com/license/new-bsd
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    11
 * If you did not receive a copy of the license and are unable to
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    12
 * obtain it through the world-wide-web, please send an email
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    13
 * to license@zend.com so we can send you a copy immediately.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    14
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    15
 * @category   Zend
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    16
 * @package    Zend_Controller
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
    17
 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    18
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
    19
 * @version    $Id: Http.php 24842 2012-05-31 18:31:28Z rob $
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    20
 */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    21
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    22
/** @see Zend_Controller_Request_Abstract */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    23
require_once 'Zend/Controller/Request/Abstract.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    24
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    25
/** @see Zend_Uri */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    26
require_once 'Zend/Uri.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    27
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    28
/**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    29
 * Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    30
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    31
 * HTTP request object for use with Zend_Controller family.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    32
 *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    33
 * @uses Zend_Controller_Request_Abstract
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    34
 * @package Zend_Controller
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    35
 * @subpackage Request
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    36
 */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    37
class Zend_Controller_Request_Http extends Zend_Controller_Request_Abstract
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    38
{
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    39
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    40
     * Scheme for http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    41
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    42
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    43
    const SCHEME_HTTP  = 'http';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    44
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    45
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    46
     * Scheme for https
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    47
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    48
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    49
    const SCHEME_HTTPS = 'https';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    50
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    51
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    52
     * Allowed parameter sources
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    53
     * @var array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    54
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    55
    protected $_paramSources = array('_GET', '_POST');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    56
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    57
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    58
     * REQUEST_URI
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    59
     * @var string;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    60
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    61
    protected $_requestUri;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    62
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    63
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    64
     * Base URL of request
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    65
     * @var string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    66
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    67
    protected $_baseUrl = null;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    68
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    69
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    70
     * Base path of request
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    71
     * @var string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    72
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    73
    protected $_basePath = null;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    74
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    75
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    76
     * PATH_INFO
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    77
     * @var string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    78
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    79
    protected $_pathInfo = '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    80
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    81
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    82
     * Instance parameters
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    83
     * @var array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    84
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    85
    protected $_params = array();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    86
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    87
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    88
     * Raw request body
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    89
     * @var string|false
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    90
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    91
    protected $_rawBody;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    92
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    93
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    94
     * Alias keys for request parameters
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    95
     * @var array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    96
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    97
    protected $_aliases = array();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    98
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    99
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   100
     * Constructor
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   101
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   102
     * If a $uri is passed, the object will attempt to populate itself using
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   103
     * that information.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   104
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   105
     * @param string|Zend_Uri $uri
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   106
     * @return void
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   107
     * @throws Zend_Controller_Request_Exception when invalid URI passed
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   108
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   109
    public function __construct($uri = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   110
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   111
        if (null !== $uri) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   112
            if (!$uri instanceof Zend_Uri) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   113
                $uri = Zend_Uri::factory($uri);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   114
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   115
            if ($uri->valid()) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   116
                $path  = $uri->getPath();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   117
                $query = $uri->getQuery();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   118
                if (!empty($query)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   119
                    $path .= '?' . $query;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   120
                }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   121
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   122
                $this->setRequestUri($path);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   123
            } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   124
                require_once 'Zend/Controller/Request/Exception.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   125
                throw new Zend_Controller_Request_Exception('Invalid URI provided to constructor');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   126
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   127
        } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   128
            $this->setRequestUri();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   129
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   130
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   131
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   132
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   133
     * Access values contained in the superglobals as public members
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   134
     * Order of precedence: 1. GET, 2. POST, 3. COOKIE, 4. SERVER, 5. ENV
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   135
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   136
     * @see http://msdn.microsoft.com/en-us/library/system.web.httprequest.item.aspx
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   137
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   138
     * @return mixed
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   139
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   140
    public function __get($key)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   141
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   142
        switch (true) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   143
            case isset($this->_params[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   144
                return $this->_params[$key];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   145
            case isset($_GET[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   146
                return $_GET[$key];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   147
            case isset($_POST[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   148
                return $_POST[$key];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   149
            case isset($_COOKIE[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   150
                return $_COOKIE[$key];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   151
            case ($key == 'REQUEST_URI'):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   152
                return $this->getRequestUri();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   153
            case ($key == 'PATH_INFO'):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   154
                return $this->getPathInfo();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   155
            case isset($_SERVER[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   156
                return $_SERVER[$key];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   157
            case isset($_ENV[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   158
                return $_ENV[$key];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   159
            default:
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   160
                return null;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   161
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   162
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   163
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   164
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   165
     * Alias to __get
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   166
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   167
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   168
     * @return mixed
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   169
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   170
    public function get($key)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   171
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   172
        return $this->__get($key);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   173
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   174
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   175
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   176
     * Set values
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   177
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   178
     * In order to follow {@link __get()}, which operates on a number of
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   179
     * superglobals, setting values through overloading is not allowed and will
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   180
     * raise an exception. Use setParam() instead.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   181
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   182
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   183
     * @param mixed $value
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   184
     * @return void
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   185
     * @throws Zend_Controller_Request_Exception
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   186
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   187
    public function __set($key, $value)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   188
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   189
        require_once 'Zend/Controller/Request/Exception.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   190
        throw new Zend_Controller_Request_Exception('Setting values in superglobals not allowed; please use setParam()');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   191
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   192
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   193
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   194
     * Alias to __set()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   195
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   196
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   197
     * @param mixed $value
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   198
     * @return void
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   199
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   200
    public function set($key, $value)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   201
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   202
        return $this->__set($key, $value);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   203
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   204
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   205
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   206
     * Check to see if a property is set
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   207
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   208
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   209
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   210
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   211
    public function __isset($key)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   212
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   213
        switch (true) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   214
            case isset($this->_params[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   215
                return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   216
            case isset($_GET[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   217
                return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   218
            case isset($_POST[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   219
                return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   220
            case isset($_COOKIE[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   221
                return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   222
            case isset($_SERVER[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   223
                return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   224
            case isset($_ENV[$key]):
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   225
                return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   226
            default:
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   227
                return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   228
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   229
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   230
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   231
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   232
     * Alias to __isset()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   233
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   234
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   235
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   236
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   237
    public function has($key)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   238
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   239
        return $this->__isset($key);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   240
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   241
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   242
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   243
     * Set GET values
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   244
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   245
     * @param  string|array $spec
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   246
     * @param  null|mixed $value
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   247
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   248
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   249
    public function setQuery($spec, $value = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   250
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   251
        if ((null === $value) && !is_array($spec)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   252
            require_once 'Zend/Controller/Exception.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   253
            throw new Zend_Controller_Exception('Invalid value passed to setQuery(); must be either array of values or key/value pair');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   254
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   255
        if ((null === $value) && is_array($spec)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   256
            foreach ($spec as $key => $value) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   257
                $this->setQuery($key, $value);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   258
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   259
            return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   260
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   261
        $_GET[(string) $spec] = $value;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   262
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   263
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   264
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   265
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   266
     * Retrieve a member of the $_GET superglobal
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   267
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   268
     * If no $key is passed, returns the entire $_GET array.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   269
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   270
     * @todo How to retrieve from nested arrays
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   271
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   272
     * @param mixed $default Default value to use if key not found
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   273
     * @return mixed Returns null if key does not exist
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   274
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   275
    public function getQuery($key = null, $default = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   276
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   277
        if (null === $key) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   278
            return $_GET;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   279
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   280
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   281
        return (isset($_GET[$key])) ? $_GET[$key] : $default;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   282
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   283
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   284
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   285
     * Set POST values
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   286
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   287
     * @param  string|array $spec
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   288
     * @param  null|mixed $value
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   289
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   290
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   291
    public function setPost($spec, $value = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   292
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   293
        if ((null === $value) && !is_array($spec)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   294
            require_once 'Zend/Controller/Exception.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   295
            throw new Zend_Controller_Exception('Invalid value passed to setPost(); must be either array of values or key/value pair');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   296
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   297
        if ((null === $value) && is_array($spec)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   298
            foreach ($spec as $key => $value) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   299
                $this->setPost($key, $value);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   300
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   301
            return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   302
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   303
        $_POST[(string) $spec] = $value;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   304
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   305
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   306
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   307
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   308
     * Retrieve a member of the $_POST superglobal
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   309
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   310
     * If no $key is passed, returns the entire $_POST array.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   311
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   312
     * @todo How to retrieve from nested arrays
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   313
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   314
     * @param mixed $default Default value to use if key not found
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   315
     * @return mixed Returns null if key does not exist
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   316
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   317
    public function getPost($key = null, $default = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   318
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   319
        if (null === $key) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   320
            return $_POST;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   321
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   322
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   323
        return (isset($_POST[$key])) ? $_POST[$key] : $default;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   324
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   325
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   326
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   327
     * Retrieve a member of the $_COOKIE superglobal
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   328
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   329
     * If no $key is passed, returns the entire $_COOKIE array.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   330
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   331
     * @todo How to retrieve from nested arrays
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   332
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   333
     * @param mixed $default Default value to use if key not found
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   334
     * @return mixed Returns null if key does not exist
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   335
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   336
    public function getCookie($key = null, $default = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   337
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   338
        if (null === $key) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   339
            return $_COOKIE;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   340
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   341
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   342
        return (isset($_COOKIE[$key])) ? $_COOKIE[$key] : $default;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   343
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   344
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   345
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   346
     * Retrieve a member of the $_SERVER superglobal
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   347
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   348
     * If no $key is passed, returns the entire $_SERVER array.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   349
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   350
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   351
     * @param mixed $default Default value to use if key not found
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   352
     * @return mixed Returns null if key does not exist
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   353
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   354
    public function getServer($key = null, $default = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   355
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   356
        if (null === $key) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   357
            return $_SERVER;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   358
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   359
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   360
        return (isset($_SERVER[$key])) ? $_SERVER[$key] : $default;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   361
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   362
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   363
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   364
     * Retrieve a member of the $_ENV superglobal
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   365
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   366
     * If no $key is passed, returns the entire $_ENV array.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   367
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   368
     * @param string $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   369
     * @param mixed $default Default value to use if key not found
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   370
     * @return mixed Returns null if key does not exist
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   371
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   372
    public function getEnv($key = null, $default = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   373
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   374
        if (null === $key) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   375
            return $_ENV;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   376
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   377
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   378
        return (isset($_ENV[$key])) ? $_ENV[$key] : $default;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   379
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   380
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   381
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   382
     * Set the REQUEST_URI on which the instance operates
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   383
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   384
     * If no request URI is passed, uses the value in $_SERVER['REQUEST_URI'],
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   385
     * $_SERVER['HTTP_X_REWRITE_URL'], or $_SERVER['ORIG_PATH_INFO'] + $_SERVER['QUERY_STRING'].
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   386
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   387
     * @param string $requestUri
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   388
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   389
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   390
    public function setRequestUri($requestUri = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   391
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   392
        if ($requestUri === null) {
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   393
            if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) { 
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   394
                // IIS with Microsoft Rewrite Module
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   395
                $requestUri = $_SERVER['HTTP_X_ORIGINAL_URL'];
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   396
            } elseif (isset($_SERVER['HTTP_X_REWRITE_URL'])) { 
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   397
                // IIS with ISAPI_Rewrite
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   398
                $requestUri = $_SERVER['HTTP_X_REWRITE_URL'];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   399
            } elseif (
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   400
                // IIS7 with URL Rewrite: make sure we get the unencoded url (double slash problem)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   401
                isset($_SERVER['IIS_WasUrlRewritten'])
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   402
                && $_SERVER['IIS_WasUrlRewritten'] == '1'
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   403
                && isset($_SERVER['UNENCODED_URL'])
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   404
                && $_SERVER['UNENCODED_URL'] != ''
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   405
                ) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   406
                $requestUri = $_SERVER['UNENCODED_URL'];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   407
            } elseif (isset($_SERVER['REQUEST_URI'])) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   408
                $requestUri = $_SERVER['REQUEST_URI'];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   409
                // Http proxy reqs setup request uri with scheme and host [and port] + the url path, only use url path
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   410
                $schemeAndHttpHost = $this->getScheme() . '://' . $this->getHttpHost();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   411
                if (strpos($requestUri, $schemeAndHttpHost) === 0) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   412
                    $requestUri = substr($requestUri, strlen($schemeAndHttpHost));
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   413
                }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   414
            } elseif (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0, PHP as CGI
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   415
                $requestUri = $_SERVER['ORIG_PATH_INFO'];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   416
                if (!empty($_SERVER['QUERY_STRING'])) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   417
                    $requestUri .= '?' . $_SERVER['QUERY_STRING'];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   418
                }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   419
            } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   420
                return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   421
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   422
        } elseif (!is_string($requestUri)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   423
            return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   424
        } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   425
            // Set GET items, if available
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   426
            if (false !== ($pos = strpos($requestUri, '?'))) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   427
                // Get key => value pairs and set $_GET
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   428
                $query = substr($requestUri, $pos + 1);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   429
                parse_str($query, $vars);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   430
                $this->setQuery($vars);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   431
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   432
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   433
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   434
        $this->_requestUri = $requestUri;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   435
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   436
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   437
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   438
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   439
     * Returns the REQUEST_URI taking into account
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   440
     * platform differences between Apache and IIS
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   441
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   442
     * @return string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   443
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   444
    public function getRequestUri()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   445
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   446
        if (empty($this->_requestUri)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   447
            $this->setRequestUri();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   448
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   449
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   450
        return $this->_requestUri;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   451
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   452
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   453
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   454
     * Set the base URL of the request; i.e., the segment leading to the script name
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   455
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   456
     * E.g.:
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   457
     * - /admin
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   458
     * - /myapp
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   459
     * - /subdir/index.php
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   460
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   461
     * Do not use the full URI when providing the base. The following are
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   462
     * examples of what not to use:
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   463
     * - http://example.com/admin (should be just /admin)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   464
     * - http://example.com/subdir/index.php (should be just /subdir/index.php)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   465
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   466
     * If no $baseUrl is provided, attempts to determine the base URL from the
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   467
     * environment, using SCRIPT_FILENAME, SCRIPT_NAME, PHP_SELF, and
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   468
     * ORIG_SCRIPT_NAME in its determination.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   469
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   470
     * @param mixed $baseUrl
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   471
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   472
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   473
    public function setBaseUrl($baseUrl = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   474
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   475
        if ((null !== $baseUrl) && !is_string($baseUrl)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   476
            return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   477
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   478
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   479
        if ($baseUrl === null) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   480
            $filename = (isset($_SERVER['SCRIPT_FILENAME'])) ? basename($_SERVER['SCRIPT_FILENAME']) : '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   481
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   482
            if (isset($_SERVER['SCRIPT_NAME']) && basename($_SERVER['SCRIPT_NAME']) === $filename) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   483
                $baseUrl = $_SERVER['SCRIPT_NAME'];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   484
            } elseif (isset($_SERVER['PHP_SELF']) && basename($_SERVER['PHP_SELF']) === $filename) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   485
                $baseUrl = $_SERVER['PHP_SELF'];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   486
            } elseif (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $filename) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   487
                $baseUrl = $_SERVER['ORIG_SCRIPT_NAME']; // 1and1 shared hosting compatibility
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   488
            } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   489
                // Backtrack up the script_filename to find the portion matching
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   490
                // php_self
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   491
                $path    = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   492
                $file    = isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   493
                $segs    = explode('/', trim($file, '/'));
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   494
                $segs    = array_reverse($segs);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   495
                $index   = 0;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   496
                $last    = count($segs);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   497
                $baseUrl = '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   498
                do {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   499
                    $seg     = $segs[$index];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   500
                    $baseUrl = '/' . $seg . $baseUrl;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   501
                    ++$index;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   502
                } while (($last > $index) && (false !== ($pos = strpos($path, $baseUrl))) && (0 != $pos));
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   503
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   504
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   505
            // Does the baseUrl have anything in common with the request_uri?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   506
            $requestUri = $this->getRequestUri();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   507
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   508
            if (0 === strpos($requestUri, $baseUrl)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   509
                // full $baseUrl matches
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   510
                $this->_baseUrl = $baseUrl;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   511
                return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   512
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   513
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   514
            if (0 === strpos($requestUri, dirname($baseUrl))) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   515
                // directory portion of $baseUrl matches
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   516
                $this->_baseUrl = rtrim(dirname($baseUrl), '/');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   517
                return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   518
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   519
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   520
            $truncatedRequestUri = $requestUri;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   521
            if (($pos = strpos($requestUri, '?')) !== false) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   522
                $truncatedRequestUri = substr($requestUri, 0, $pos);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   523
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   524
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   525
            $basename = basename($baseUrl);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   526
            if (empty($basename) || !strpos($truncatedRequestUri, $basename)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   527
                // no match whatsoever; set it blank
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   528
                $this->_baseUrl = '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   529
                return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   530
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   531
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   532
            // If using mod_rewrite or ISAPI_Rewrite strip the script filename
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   533
            // out of baseUrl. $pos !== 0 makes sure it is not matching a value
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   534
            // from PATH_INFO or QUERY_STRING
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   535
            if ((strlen($requestUri) >= strlen($baseUrl))
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   536
                && ((false !== ($pos = strpos($requestUri, $baseUrl))) && ($pos !== 0)))
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   537
            {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   538
                $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl));
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   539
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   540
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   541
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   542
        $this->_baseUrl = rtrim($baseUrl, '/');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   543
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   544
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   545
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   546
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   547
     * Everything in REQUEST_URI before PATH_INFO
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   548
     * <form action="<?=$baseUrl?>/news/submit" method="POST"/>
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   549
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   550
     * @return string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   551
     */
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   552
    public function getBaseUrl($raw = false)
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   553
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   554
        if (null === $this->_baseUrl) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   555
            $this->setBaseUrl();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   556
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   557
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   558
        return (($raw == false) ? urldecode($this->_baseUrl) : $this->_baseUrl);
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   559
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   560
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   561
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   562
     * Set the base path for the URL
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   563
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   564
     * @param string|null $basePath
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   565
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   566
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   567
    public function setBasePath($basePath = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   568
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   569
        if ($basePath === null) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   570
            $filename = (isset($_SERVER['SCRIPT_FILENAME']))
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   571
                      ? basename($_SERVER['SCRIPT_FILENAME'])
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   572
                      : '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   573
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   574
            $baseUrl = $this->getBaseUrl();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   575
            if (empty($baseUrl)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   576
                $this->_basePath = '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   577
                return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   578
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   579
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   580
            if (basename($baseUrl) === $filename) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   581
                $basePath = dirname($baseUrl);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   582
            } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   583
                $basePath = $baseUrl;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   584
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   585
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   586
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   587
        if (substr(PHP_OS, 0, 3) === 'WIN') {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   588
            $basePath = str_replace('\\', '/', $basePath);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   589
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   590
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   591
        $this->_basePath = rtrim($basePath, '/');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   592
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   593
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   594
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   595
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   596
     * Everything in REQUEST_URI before PATH_INFO not including the filename
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   597
     * <img src="<?=$basePath?>/images/zend.png"/>
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   598
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   599
     * @return string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   600
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   601
    public function getBasePath()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   602
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   603
        if (null === $this->_basePath) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   604
            $this->setBasePath();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   605
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   606
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   607
        return $this->_basePath;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   608
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   609
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   610
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   611
     * Set the PATH_INFO string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   612
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   613
     * @param string|null $pathInfo
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   614
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   615
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   616
    public function setPathInfo($pathInfo = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   617
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   618
        if ($pathInfo === null) {
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   619
            $baseUrl = $this->getBaseUrl(); // this actually calls setBaseUrl() & setRequestUri()
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   620
            $baseUrlRaw = $this->getBaseUrl(false);
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   621
            $baseUrlEncoded = urlencode($baseUrlRaw);
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   622
        
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   623
            if (null === ($requestUri = $this->getRequestUri())) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   624
                return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   625
            }
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   626
        
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   627
            // Remove the query string from REQUEST_URI
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   628
            if ($pos = strpos($requestUri, '?')) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   629
                $requestUri = substr($requestUri, 0, $pos);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   630
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   631
            
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   632
            if (!empty($baseUrl) || !empty($baseUrlRaw)) {
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   633
                if (strpos($requestUri, $baseUrl) === 0) {
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   634
                    $pathInfo = substr($requestUri, strlen($baseUrl));
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   635
                } elseif (strpos($requestUri, $baseUrlRaw) === 0) {
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   636
                    $pathInfo = substr($requestUri, strlen($baseUrlRaw));
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   637
                } elseif (strpos($requestUri, $baseUrlEncoded) === 0) {
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   638
                    $pathInfo = substr($requestUri, strlen($baseUrlEncoded));
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   639
                } else {
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   640
                    $pathInfo = $requestUri;
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   641
                }
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   642
            } else {
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   643
                $pathInfo = $requestUri;
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   644
            }
807
877f952ae2bd update Zend and twitter oauth end point
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents: 207
diff changeset
   645
        
0
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   646
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   647
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   648
        $this->_pathInfo = (string) $pathInfo;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   649
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   650
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   651
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   652
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   653
     * Returns everything between the BaseUrl and QueryString.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   654
     * This value is calculated instead of reading PATH_INFO
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   655
     * directly from $_SERVER due to cross-platform differences.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   656
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   657
     * @return string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   658
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   659
    public function getPathInfo()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   660
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   661
        if (empty($this->_pathInfo)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   662
            $this->setPathInfo();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   663
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   664
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   665
        return $this->_pathInfo;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   666
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   667
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   668
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   669
     * Set allowed parameter sources
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   670
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   671
     * Can be empty array, or contain one or more of '_GET' or '_POST'.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   672
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   673
     * @param  array $paramSoures
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   674
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   675
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   676
    public function setParamSources(array $paramSources = array())
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   677
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   678
        $this->_paramSources = $paramSources;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   679
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   680
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   681
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   682
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   683
     * Get list of allowed parameter sources
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   684
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   685
     * @return array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   686
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   687
    public function getParamSources()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   688
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   689
        return $this->_paramSources;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   690
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   691
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   692
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   693
     * Set a userland parameter
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   694
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   695
     * Uses $key to set a userland parameter. If $key is an alias, the actual
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   696
     * key will be retrieved and used to set the parameter.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   697
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   698
     * @param mixed $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   699
     * @param mixed $value
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   700
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   701
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   702
    public function setParam($key, $value)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   703
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   704
        $key = (null !== ($alias = $this->getAlias($key))) ? $alias : $key;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   705
        parent::setParam($key, $value);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   706
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   707
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   708
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   709
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   710
     * Retrieve a parameter
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   711
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   712
     * Retrieves a parameter from the instance. Priority is in the order of
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   713
     * userland parameters (see {@link setParam()}), $_GET, $_POST. If a
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   714
     * parameter matching the $key is not found, null is returned.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   715
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   716
     * If the $key is an alias, the actual key aliased will be used.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   717
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   718
     * @param mixed $key
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   719
     * @param mixed $default Default value to use if key not found
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   720
     * @return mixed
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   721
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   722
    public function getParam($key, $default = null)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   723
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   724
        $keyName = (null !== ($alias = $this->getAlias($key))) ? $alias : $key;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   725
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   726
        $paramSources = $this->getParamSources();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   727
        if (isset($this->_params[$keyName])) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   728
            return $this->_params[$keyName];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   729
        } elseif (in_array('_GET', $paramSources) && (isset($_GET[$keyName]))) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   730
            return $_GET[$keyName];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   731
        } elseif (in_array('_POST', $paramSources) && (isset($_POST[$keyName]))) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   732
            return $_POST[$keyName];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   733
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   734
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   735
        return $default;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   736
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   737
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   738
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   739
     * Retrieve an array of parameters
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   740
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   741
     * Retrieves a merged array of parameters, with precedence of userland
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   742
     * params (see {@link setParam()}), $_GET, $_POST (i.e., values in the
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   743
     * userland params will take precedence over all others).
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   744
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   745
     * @return array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   746
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   747
    public function getParams()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   748
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   749
        $return       = $this->_params;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   750
        $paramSources = $this->getParamSources();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   751
        if (in_array('_GET', $paramSources)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   752
            && isset($_GET)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   753
            && is_array($_GET)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   754
        ) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   755
            $return += $_GET;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   756
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   757
        if (in_array('_POST', $paramSources)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   758
            && isset($_POST)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   759
            && is_array($_POST)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   760
        ) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   761
            $return += $_POST;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   762
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   763
        return $return;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   764
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   765
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   766
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   767
     * Set parameters
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   768
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   769
     * Set one or more parameters. Parameters are set as userland parameters,
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   770
     * using the keys specified in the array.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   771
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   772
     * @param array $params
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   773
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   774
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   775
    public function setParams(array $params)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   776
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   777
        foreach ($params as $key => $value) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   778
            $this->setParam($key, $value);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   779
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   780
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   781
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   782
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   783
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   784
     * Set a key alias
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   785
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   786
     * Set an alias used for key lookups. $name specifies the alias, $target
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   787
     * specifies the actual key to use.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   788
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   789
     * @param string $name
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   790
     * @param string $target
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   791
     * @return Zend_Controller_Request_Http
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   792
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   793
    public function setAlias($name, $target)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   794
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   795
        $this->_aliases[$name] = $target;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   796
        return $this;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   797
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   798
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   799
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   800
     * Retrieve an alias
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   801
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   802
     * Retrieve the actual key represented by the alias $name.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   803
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   804
     * @param string $name
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   805
     * @return string|null Returns null when no alias exists
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   806
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   807
    public function getAlias($name)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   808
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   809
        if (isset($this->_aliases[$name])) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   810
            return $this->_aliases[$name];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   811
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   812
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   813
        return null;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   814
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   815
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   816
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   817
     * Retrieve the list of all aliases
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   818
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   819
     * @return array
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   820
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   821
    public function getAliases()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   822
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   823
        return $this->_aliases;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   824
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   825
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   826
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   827
     * Return the method by which the request was made
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   828
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   829
     * @return string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   830
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   831
    public function getMethod()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   832
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   833
        return $this->getServer('REQUEST_METHOD');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   834
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   835
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   836
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   837
     * Was the request made by POST?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   838
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   839
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   840
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   841
    public function isPost()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   842
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   843
        if ('POST' == $this->getMethod()) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   844
            return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   845
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   846
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   847
        return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   848
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   849
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   850
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   851
     * Was the request made by GET?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   852
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   853
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   854
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   855
    public function isGet()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   856
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   857
        if ('GET' == $this->getMethod()) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   858
            return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   859
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   860
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   861
        return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   862
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   863
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   864
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   865
     * Was the request made by PUT?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   866
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   867
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   868
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   869
    public function isPut()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   870
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   871
        if ('PUT' == $this->getMethod()) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   872
            return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   873
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   874
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   875
        return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   876
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   877
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   878
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   879
     * Was the request made by DELETE?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   880
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   881
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   882
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   883
    public function isDelete()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   884
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   885
        if ('DELETE' == $this->getMethod()) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   886
            return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   887
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   888
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   889
        return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   890
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   891
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   892
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   893
     * Was the request made by HEAD?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   894
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   895
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   896
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   897
    public function isHead()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   898
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   899
        if ('HEAD' == $this->getMethod()) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   900
            return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   901
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   902
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   903
        return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   904
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   905
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   906
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   907
     * Was the request made by OPTIONS?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   908
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   909
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   910
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   911
    public function isOptions()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   912
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   913
        if ('OPTIONS' == $this->getMethod()) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   914
            return true;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   915
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   916
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   917
        return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   918
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   919
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   920
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   921
     * Is the request a Javascript XMLHttpRequest?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   922
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   923
     * Should work with Prototype/Script.aculo.us, possibly others.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   924
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   925
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   926
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   927
    public function isXmlHttpRequest()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   928
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   929
        return ($this->getHeader('X_REQUESTED_WITH') == 'XMLHttpRequest');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   930
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   931
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   932
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   933
     * Is this a Flash request?
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   934
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   935
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   936
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   937
    public function isFlashRequest()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   938
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   939
        $header = strtolower($this->getHeader('USER_AGENT'));
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   940
        return (strstr($header, ' flash')) ? true : false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   941
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   942
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   943
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   944
     * Is https secure request
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   945
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   946
     * @return boolean
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   947
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   948
    public function isSecure()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   949
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   950
        return ($this->getScheme() === self::SCHEME_HTTPS);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   951
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   952
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   953
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   954
     * Return the raw body of the request, if present
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   955
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   956
     * @return string|false Raw body, or false if not present
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   957
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   958
    public function getRawBody()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   959
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   960
        if (null === $this->_rawBody) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   961
            $body = file_get_contents('php://input');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   962
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   963
            if (strlen(trim($body)) > 0) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   964
                $this->_rawBody = $body;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   965
            } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   966
                $this->_rawBody = false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   967
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   968
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   969
        return $this->_rawBody;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   970
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   971
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   972
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   973
     * Return the value of the given HTTP header. Pass the header name as the
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   974
     * plain, HTTP-specified header name. Ex.: Ask for 'Accept' to get the
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   975
     * Accept header, 'Accept-Encoding' to get the Accept-Encoding header.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   976
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   977
     * @param string $header HTTP header name
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   978
     * @return string|false HTTP header value, or false if not found
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   979
     * @throws Zend_Controller_Request_Exception
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   980
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   981
    public function getHeader($header)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   982
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   983
        if (empty($header)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   984
            require_once 'Zend/Controller/Request/Exception.php';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   985
            throw new Zend_Controller_Request_Exception('An HTTP header name is required');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   986
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   987
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   988
        // Try to get it from the $_SERVER array first
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   989
        $temp = 'HTTP_' . strtoupper(str_replace('-', '_', $header));
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   990
        if (isset($_SERVER[$temp])) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   991
            return $_SERVER[$temp];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   992
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   993
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   994
        // This seems to be the only way to get the Authorization header on
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   995
        // Apache
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   996
        if (function_exists('apache_request_headers')) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   997
            $headers = apache_request_headers();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   998
            if (isset($headers[$header])) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   999
                return $headers[$header];
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1000
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1001
            $header = strtolower($header);
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1002
            foreach ($headers as $key => $value) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1003
                if (strtolower($key) == $header) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1004
                    return $value;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1005
                }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1006
            }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1007
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1008
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1009
        return false;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1010
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1011
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1012
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1013
     * Get the request URI scheme
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1014
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1015
     * @return string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1016
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1017
    public function getScheme()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1018
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1019
        return ($this->getServer('HTTPS') == 'on') ? self::SCHEME_HTTPS : self::SCHEME_HTTP;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1020
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1021
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1022
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1023
     * Get the HTTP host.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1024
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1025
     * "Host" ":" host [ ":" port ] ; Section 3.2.2
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1026
     * Note the HTTP Host header is not the same as the URI host.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1027
     * It includes the port while the URI host doesn't.
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1028
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1029
     * @return string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1030
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1031
    public function getHttpHost()
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1032
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1033
        $host = $this->getServer('HTTP_HOST');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1034
        if (!empty($host)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1035
            return $host;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1036
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1037
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1038
        $scheme = $this->getScheme();
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1039
        $name   = $this->getServer('SERVER_NAME');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1040
        $port   = $this->getServer('SERVER_PORT');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1041
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1042
        if(null === $name) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1043
            return '';
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1044
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1045
        elseif (($scheme == self::SCHEME_HTTP && $port == 80) || ($scheme == self::SCHEME_HTTPS && $port == 443)) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1046
            return $name;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1047
        } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1048
            return $name . ':' . $port;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1049
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1050
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1051
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1052
    /**
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1053
     * Get the client's IP addres
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1054
     *
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1055
     * @param  boolean $checkProxy
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1056
     * @return string
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1057
     */
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1058
    public function getClientIp($checkProxy = true)
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1059
    {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1060
        if ($checkProxy && $this->getServer('HTTP_CLIENT_IP') != null) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1061
            $ip = $this->getServer('HTTP_CLIENT_IP');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1062
        } else if ($checkProxy && $this->getServer('HTTP_X_FORWARDED_FOR') != null) {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1063
            $ip = $this->getServer('HTTP_X_FORWARDED_FOR');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1064
        } else {
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1065
            $ip = $this->getServer('REMOTE_ADDR');
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1066
        }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1067
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1068
        return $ip;
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1069
    }
4eba9c11703f first import
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
  1070
}
%#\ 1ƗKFGU-/P\D&롲(hbh8vU$3޳}98g(X Pϋ8b$u9+N\^7 <#GcS2Mˬ`@0il}xX2U[P_~,4b}hm&@ -Zm6#喈*}2YʃEl14[TkZ~QV11SA㜡F&e /<7%ܒ U+N'Z5ܵ}4oVǟ@a -Xg1Ɠƪ=\o.Έ {;ˇ\| (!G2}&` n"`/ NL>w͈-.۽,4y~s_Ɛ>2Ӝ(uz" Gla]B-K )HsrwjaTkqqA//.7+s(fٝȷPWݲbCWp]5rI]g&T5z@ucb̒&6MJ:0ܔ$GS[x5 =>;a!6 !9 %HP2gH U8lF^2C7)(C#T}<}<ISJ|)HD٫]u [lA FѠ>o'8|~l[n>^Ot9mAM-67@Xl[96+w@3dQgfǺt;lLUoOPuU?IwZ"&RH#qg}Pɪ= I+qǀ}uŲ2"^?--W;Lh vQhC/qX`Xrp3O2Uf=S}6xo4e 5''%B\lթ`z=1ϗ3;3LtB', 3OtAdlhn\;gZVq\Eűj^Ydz53XG.%/bNO2Is,o>POȿmI2)KΘPyXpAf)lA>>It=i\KL_p3v1s˥^px)a~[1o6tJqHJhxpӈ Ƿ7U,fSKwb CpY1mBfib?~/JR.òĘo ʊ:A]B[]9OʵoD`(;/.z GםAR'm뎌=3h B3tq'+1N?Y`?OlKfN2م)-nkHqc\詣1/in&Xou^hֹgWDJ|}u:2^XOq+Kg}?ܸZ)h`ڄ)O].h7J(|y"cx$p<&ScXѓ;,Il#p%`{UFxNȑh i]$\.u4_p.LVmOPF~XK%IM219mӈTLɌ(J|_Dxt5⡏_2+_JBH\1n|sf5jIy2+cj%!3@qD 0Uhk6TZh`@/߭wV(A&*pID W@]J:3|W,J))8VxPU 3ȝ-=;XdVGamq[3&,EWpd8|d :5!dE~@AH]tYf]@ԕN1U f x6ݑZs~ < N%WhrG{7iԷhcBd: >7k|Gv5q'1F^%+Ốr:hQ)?9W?iH͜KlH;ZJs bjɴsʦյ LXFY01-ǎVb?#:{}dhÂCgҾ؁E+B&!qM}*l]w<"3KbAE5 ӸC5b.Ŧ I=E Bc2@&g8d3ԀMc*JgY چn%2K jge*KgM{pL#MDE0^dސU8 ()E IsLȶP,Ʀ,hNpAft71\ ތK:aǥ=`/1f`G\ܪ  3:syjst&Fg!O)W$"YOGtNٓXxGݖa d`ǏD s@K+ckD(zr~ȸnDa i:t8 䗺t;6nDz,7Y- ~PC} 9P 7dߏ'[#'?eSmyaWrI5,~,DjUH X [cghQG`#rw|QAL9+×= v \,V[d@#9<1ݟ0?ߌw+ {Dk WlV VD5i'gPAvEjNn->v8gXj 1gxѡ^*w9+Jo(iC2 jsanl077](b|Cud14k*^FܠwW6f?`5MۚeRUk :c+_qDhއS;MӺ`{meW~5^:6 P|[||L`b̪ȔScjj| ΟsR8BX)Ε!m 1c'& &`mQ@˭WX.R(2`skˋZl q1ҊN|Oͻ`z#x.)dEcz2~&vn7it-ַ-tF6QXX?,%'\ϫ9Q$ >Mգ22D=҈6TG auFݫi=&[ޘ%%h l"U~""UMrЛD|>.$W H[lcʴUs5I+p:=wQ,ɚ"C8<I.n1b`zVQ'.[mPZ]6-;}%V02UewMP)/,#;}W|M}P><' }G" 29c<9;Gt/4c X!.zMDӏ;h6kpq H -*>~y] w:bCv j Ϩ4dM|Szj6d AZ'"ޘ(k9;fm8Mis-OcVGk^BJOl,o3O[⽙e,}ē+ZW^?#\ By=vσͥ%á9C^%@ @QKup/bR=֑vè\)`W4KRsz^䮸\Ծ{'.Aa+M5%mxg OOyVVaT\7S,:Ĥ?p@f+.'N]Bjy(;Q+"'#]Dk"=)Ϩ"$U8s<:|\:k6 !M%WQubɸ NCD A|CR`]/O(9T:I.Iŗ\DxXUt~G$tZi P>H1hs/$][toťGRzm5A+KS㌖"W<(BTHgض$gDlb38 퍊)`{RjH{֜ŅY8u0),& 9b(C[PW 4 SU s :uh6܁YLB8QXyP/]w*pkm ,^jfyמ_arbQQF\/A븪rJ[%tv#oo>q} *ע OJxDK۬_?9, PPKHkoG0N{}<74"^xmb!jڭCɻιe]‘;-OzLAo_ ;{mMGz[ebj(&W:Zܘ&_qlJHM;5qbN%<ͽ*3T͐3JS5E/YxYI>$Z2/2_|t}a,g~$EMȠ.m2`J՚/護QΤ.o6яlQOlV7HIkh_p;=xK;I|;|B\M6q6xq']P5AeHWaQK)??z o5ߨ틠UOѻonMsdi~;( 005%ŵ:BB֪$Ȳ*%9.1Gwi)5=!Ɇ>MQy=wP\Xq>G{wǁ^3.qS6hhVYQxX1;%0O1lyOCzj.F{6hbjubލ'X}ZCu6n۞]*{Nt7 wmoKm1WMVy0$\T SWU=mI{-w lf,U\M Gֺ+m:k<%{գ6r)SAVưJ!ϸw }fGp]izg\?8U80sj{J+F8r1ib ]`"1 AMD]޻bwJ;/^I:McdGd@g_17IlP sܢB2YҮ.6 & Vk!~M1Ԧ_1<̒m0j}fX>A)ggQ%Uc'XQ\w<)XܿĨ~T1D8G^xze,W+Z_;)#$']!T_8y7PGq _]acs=(:%oѬd(#VY F{Awj0vۙ8Fo^ZTnrxB6!Mael_ѦaY84=(E1HP $V[SOY ^Ll7B(zy|;lD(LI/ ][4}oQwKXc=ڄfF 1_é)/{rpO2YuJ,WbPm`%L(o d,R*p0]}d2M{_kSGGjei_,oKˤmXouh.?mqlw]?9uoy;tLM "SfGrJ6I~~Z)L K*g+YP~%Bg0^`=sո~/[ = \~A#3AGt0 ۓп씨(3q|me qcGF# @PVr_+Kǀ%i:쩰 e_" fZI-"Kp` 4GO7p1nwfYCN?JOe}3t\!4O< 룎5Nh2ϠiľQE +xsl *Xe0ӑ9M$^J.[~_du'p7Z+wI9M'"+W%aY!LYIz:G\ڬ*`bP"C"Cy)E>akH|p6y0χ!*i~jL #sݒ f8JlhV5t Nsf2dwO&$,%' ,bM.֏4~OBH{UEeǞ_@}QNKb}68sr2%H}D" (t{tV*:˧ن9w,1">!nQT{e':V i_w/+g4 vHn|q1KFTX iMo34t v}UA ^O3/j#;'4VcϏۆK>~}IT?rjШ򉋱'bi+BR)9m =o/9^#qzQi% PXܣ^WSL)hhf xA}t[^3{ģ/$ŽAf<'H^^뻀,&P M_^DSH'*YNfN\V>B“үv sOi.ǹG#V})FvA:,,!e~=a;;^dj|QDI B,(Js f-XO~J:ŦrtyrᚵJ*^@}I>>6'eiʡp_.9Uz~:q z ՞t8O ̒3d:z#|0qI~l`P]Ś $JC?e+{EN]YD7vF(FʷfZNZR2~2gSb6 uD2Y];Uxs:^:$3P]Aƒ?YaqaIyFq T&9'0t;^INsk߮T%@}4tܫ4ϵ1t?HfD<;thײ[Oҽ2uMAslxaT9y{?lw~s*UۛHi[zۇb&şiYp T[pGz؜mD3}*꩑ NQ+o&k)܍"pW$Xs5ӔCX>&|p6 3RkС𜵳z(%FR[Him_jK1(yIJxPF~<,o-d,/b% 4܇R9MN(\~x5>j~#l k7%{* ,}3K_bi _rMNɱ1KNߨ,‰H^)Һ-c\@F(tȜ=dRt˟*#npOźA,֘BYt!fҼa~_yfΓ׈8pOg =p\w1hz'="]@ğ1*IH{t'^j La*EIlF}J<Pi<û!ۯXI0NPo n\w5me)Ϯz8`+k \;i&M"2*~JAr)b-ߧ(1u佅6BX@*mzZ03q`w^" @*C^swl ;NCDн1νKJ .nGAt nZ; :a bieBq>+=[Ӗf%#G,U 6*ps9np97\rC)d tem+ݰ ^ VZUÕ_& q[|̯. rޓVȏio*v=.:i'ݴ@XN`۷Bff,)|]Y^Ӿ Z>BrVE/ )g('r\%JLcm?j~T:Kz=7Kw tz6%}}sSG!1t袠Sr~ :Xؿ7`8>Yv9xfU<={&#YT$?^$+bjⶇcG4RVwfX93LOuݯV^iS{4F0ߠ(ɶ>b2o*rե,[%5+gOa`CzW8ýu,Kq7k/?~SNͰ8;%5=9׬@Mz kyn\~~%.WEn=M> WFJz4P^C2 [R[ :Paw+EX`b6]sRV_>K%KJmj7§z!+^_G*Yn1x;QM: Y$枵UO8sweŽW&&nyPPjՂ+Y', O&|E~:vf$_J)jH|; !OؤI{>u[>[xMkZV,2BbKwH"G +{+Lv{GpUd_Zq4of{E&s&]*mVh ;z:f4-{MRr9SM=^wRZcC{>0(\XuMR$=Rl`tkgLVsYw94:k"ƈ?BʕVW}vW8v?--"G|/рf.gm5?v<$fK4M2VRK]Ȣ VY6WZjvv酥[w̪6FP}#k# 1A"T/kB:~_hZ'x܀f e1?4CPL:Q25sk vDr摍(ĚaG=p u>CGv5TIA i:D/<AR ™`ɣ?CΡ,er8 RnoN au /ͳ g;:p F#$tߐ &qoXDcx7ūj6躹 yۼ ^Lz6f`ݐ69G64}燮PAs_!onb] 0f"rMu?wjH=oTIEY ý2BS/(Z3|;EU3h]}y1B&ڞɷf;#~pņq5.[,溛830Euy꫶YєᖋDa}~?C太gF CGL5य͈k^I #s OKx7#)1ل,#ɴs5nQOlwتT,L_+є%^>; Xwnw оaerql=7D]m؁}{2kL0#Q Ub_Z:1]\͉`qZdIE#KSHǒFRT:#l3Dۇ8[hn .Y"1æ94*cdGH7D )3AS4ȧi仯|p(;;Q/T1"yZm DjZtmU5H I@/')T-xPd yܫ|eąaDHg^uC:x) ʠ&YT֧z[aTy)1RfyKkYiz[-@ GR_/N0P}]®v *;7g9)@? Gqdy224]O#ӣ('ٚA|/k<> ʃ`WTQ\Wgמ?M|hڊw]rqW%Ap“c/0M{D8}L[(Y t`0F1v5yi Xs]W-}և,.FD][@yi9M ϤGݲj11wתD2>ҎrTN|Y# !KQWwp+oEffrFhWV36a0=p4: Nc-w2 \Wg-gCe"Db-_]T} ;ۉ|X)§3C ^bqйUq?cRBoI<̮Ud~E {dwhn Є#BYsyh @ƀ~H~lpn;Og=|u$d@דo)ϐďViGq&2!?2H95n3Ysda|C)c@Kj;ވ,n0No6mN ǫj$:6cC %o;د?8ჳswLg[qtBZpIRp|cve0M D˘2JG8# 7HuHQ^,p<꾋 UXX Mgq8}Fm\[z09Ϫps;Wg7bNn1 K:m~`E,,R9 4 q$"%Q}Ix':wY)IT(ѵNgH@o^Q9*vb6Ad/^Zo/xhOo[M Sx9=c%U1Sɱh:Vx߻zaY^`eܬ(KePIǼnHƴWZ]&K02yl"\_Z疖r(p:ѱGmAj4舻ߘUs9]%ohi m!s0OXl(0u2ˇ箙^;ݜqpF Ҋ9B+F*ʾ[֐. ȠLO^Y3)0a* WvNX0M)ӣg8O+{),ىiFC9}XlDϪ4It'q(DKER}Ua|ƒvM BB}.̗!i'" $HzPm֗uk=Y>νk7!UR~]7fj:dZ+YucQӁF 7Fl:flQ~/.GZJ"QEqڤ@^?%B Jk}-%Tŕ=Fqgy,.l*|Y dzVIkjPȆ3,"/έ q~mM/8gG)Tz~AGع8OP l"ڵO}4pZN_a;OW (PC$x\ou𗎀m* z7& v#Ŧvgu8"?#'Z'g ae3l,,ȩIX^^<=lrms|}'[8j%йrпy>ڐ@ԣCbgO}Z+Tl%CEe:/ńܗj6Q9L&E%QsĦ ?ӛ( C. 2@1xӀS@JJ=U#҈aGZIX+f\tvV)isHPY=f1B2] RQpY+Yn\P fÎU*ougP `: ڌ,KFo$ty[Ŏ q;S7~xؑT/C HR!N^g{m_хC -_@ 4d9'娿{jЃkd&hJCBf|Fy$ݻnG 9jE ]g\auw "K{ׄLCPm&v6  1rA5C`x'[E&{afm.5JB%s =ojo+cBk Xr$:gYd$γ <mHXd1oKl"'@@/-AqKD*u3nT닎A>ʷ((x"%_ϠWWk2٠( nD+z/*hقy母R噅6`;ek'w\0@ؕ4,<)ʒ0h+-h(pC_\W < :edd/?$ns#U|v8cëj4{/r3l.P'Ki_Tx$ k"{bNΛ4J) V a((s!< Kz% wd}Q*r?& P60`)Iz08>Бw]Tڍ = `PhB+aR@jtspٸ)_`<J mxnq,n#[O/X~TM\̳ct4+ agr`^-Hr` B$4;;MX kAHF:s@KAgJcI3Wռ@b\Gqר83LrbR#6jE\D ̧TⒶyi+rDą:ُ̺<<>7'tM*(Vc='k8c(0 d@Q3@H~;KxuxMT,vF'(]Xи"/sPYi I4/ח#% !O>j͖Փy뺛&XJ^E\F-N~݌fV #x[KH8]N(bpք0e[q vrFS_9O &/_[G?_N!A1ÏmN_lI /Qzҳ?a elM|<ʌŗ4Dl nĚ\&L}#Hkމ}/o[`CF_P+dQhh]G[j&]a 2tTrD]jj3$>yK+Zi?嶝@äuahwV-ԂMjÛ6ͱPxQ%,8 :VX;έ 6_GWh80`॰qEF#0 mxܢ~yu,hơ }-#UWׂTwJ:y)B\y?*ͦV=ttT}ѷmJۨi c4MF*gxoͣkxK2&2kB4q8jKSU$;ȶF`Pd0X7Ըr!nt8N&J^OXB vs>T7dfeJ; JӅ*t7-\r:oԚb7b }cp/=[W]ܓA9Ȥ|eiatRuRNΙW/)pUrǃr2koat\Mc/eÎ%eVPG|nGGDž'ywE~R© )9˾y !-uOzVjU2VҜ[r$h4D` 4lJ[.-u,Äwb lJA_!szr4=^rXE2؈gUG 3)#72q|U ,O;ZXmG ɶN+~L#(v4jy=ϟI! g~~$*z Tu' ԎI"!)OD򢄚?3{1zCGoe$.}U_<}&將6Ƅ|8*RߋtYL/]Tlfww覜O7jpS1o/Ӑ+h蘓ܾvsdX/&XfrFF{@n^B'c@} ycB(? W  D4YAn\Q#*IǞ$wMe(dD-KZץghrA2ϙP:K5`솧z3,"{>FíXP(.>H5LqL}G9-u]#ly63ބN56cF4LQN-N DȒ\#҅,҉1 TVYhOD..FLSo|;\u}3{74WEXBA.aZ@F/ݍ:uv[_WPj[ ԜP}zaapBmKQCNkrQ`ѽ`l]9IA`lWQ%!Da{iű .T9o!@7n9=!hRj{D1r# 1S@$8g8u([ E\-a!ti{GV%`@a#Kylc. p[,E PUScvXe( wVQ%Vº:XiQ8p[R81HC5zXTYR*hPܖCw9Wv_pkp=@4R BA{_7xcP+qbad:tN:PNRZxqG.5lk11Ȱۖbť n/jwGY;h__mŬ&GCL8 yҡH@&?#)ӅbD H5 =Eqo=Ż;2y#ܖ*:  8a$ؑn8CGl}ܐ<²կlvժ"!舡vv0iO?#AozLkMKF; x|D_ܕ`SkȚYpq\҄R[8ud)?V@2o썮.tEE5uEaXwbQ`n ] G*dJ4XCWsubIIQgTBbBz{h=pSi.i>k8stٹĽ~f6! lF%LNs='?烙vYenQf}(H~{-YCzCT=0Ⱦ'3ch M &}@ I+߽`)Ϩͷa;'4m7Hmdeh|=spGT.>gf`V-9-JD &7|o RD#NVX==Efb3o hz[:`=g߻)-Ӈ]6j4Wb5Prk*72ȉaSIӊBt@C+%b++udܚq QT"bD"tG%ӁC*C+˽&<**eB}Wq^/fSb'F\}c|z-d Ň2 ACjʴ<S%\'Och''g+wWCOmn*~~?k;ZGEL14_F1Q 2϶6@4ةƕ([ޥN=h {t@4hi3a ]jұZG6;eģA]s=IƯ]]&ۤŒ&fgӸ(ڵE**o]q?`CmpX{KeZ-## R6]3':4(."PC Dl+^v%"G!=ta{pѼ{i.c,-; ܤ\ĥyr~P9DBX;Q1XMVRDlW< 4YzzGQ3dAp,zCԀtOdƬ1JyfׅBMH~:)I!]Xv(_~C"䛧aH%1 D$7q]fa- 5kGG(Sp\JPED ioN@z޽&ba . ]ߝ'^3ٵ^u/z a/Aҟ8c>Є31!aao'|XHT|)m,׬t7oP/Y<\v[x]EyN_x8K~ $0Ro?[<2Xܗh cudJR}"Crr}]yF0##w qJcFhê+zHXq̎fڰ/I FAG>d*]p!Z-d*$B=a#urS_N!!WNХK]:sډ>/B)&1[ eGK^4> P>1yVs p=1H'3_8mB,<'X2ǩ! 蚕wa>[Mi|v:uY-x!P5⋖".>>[}E1d'?b|G hzǟL8bIwtQnxD*c^^]R| .|J2a85` Uo"!sńp!- 9~ݢ\kFV}}0gƥ#bG2_fBa-x qhT/iiȔ.. 7ݽɤJfaz ͐s.v}U)*] i\1uY0A_C($=֗Zy>jY"˕O}F9!}؆p"2cNt^E K6@l+)g]Z5iߘ;VhÚf xΆkgPzӫ ̇8h=d( ̉08|Vl2K.϶!Y3u,!XOoh))U$:X B=g'QڞJZ_ oQ/9 %7 I6"%m3IOBq{ֈU}[ZH޻< f~-YVM4DYa'H7t63.OQG%649B*VFW9#O;#اZApn˛Νb?eXTT!S8sD}* [\f(޷w2Wb-v&>\: kgD~aW[dűdb^_2O:Mܕ;F_:fnۇڹn4G\_H{?nm.Qo Lsʬf@{\ 7y8B!=Ay닉 ͡x3*[VM qBxsVA_b%ŢaEq)n#G,9ygk) ́:]\qcdSߍ0fWUmOt(ck ^*Ldl!t >3MOTš<)]4jB;;ix.+՛=p"f܎ ?@Taʘk{ЛK:AQu)$CC!",FLS|TN_FsKk#h)pC|Iq#0ֱڌXy=7>Z<`]HwH .@X(F+?~ ;+?pH{޼5'L+3 4t|XˮT.ע(oI#4"4mѨi_>OhQ 7U(J7SNwPr:V|o`baQw?3Ns fpT?^W=f>qNʾeKZ9n5h`o>>XS#eşG%P>;9ºYI ;=Rm% B%U^Rgr Th|DZBS"iA?d` A7XId~k O:?݅7B?99ZŒh?7_-F݅Z~8}.VFlL3A&**PJˮĩ#/۷"|#b]U8uk 8KUIlc.Ta8;&Tќ[Ȓ!lz^0VrӠF@Υ`7LoAJ]D~j]#OZ-8`x>o&g.}+h^qMO8=M" dQ\Ft(Xe!0L"8 Z۽Qg'ѝ?IJcctޙ\k̪HF:-[oSa)τ(q-(s֌ئ?Uo)e{EW%dxX\K!Ff# ~;E9o&7 b5m_6aD$js\P냜\KNj0p%:j/<7qa=jԳ|LiOOi8!{AKNze@PoڹQE?>wtx#cJ⋱I. mҮpTٜݑ ai ڥϔN3D!п'9I"D/=-_Cv}ș#GM< =O^I{E`OC7f6\QJ#\sT4cɒ9 9$2fAI#IVh t||SupiK/c;' <ň5zft(=4wI27 [%Ͱz&=>B j⣬]f g1-ڄ/mBϺ噽+;O;Jx5TK*Ä/34cۅ3yyED:G)h5]8!+ߪmq6ߣK;r`ܖFZKJmܑ(~2?$i?\Xn3RJz;FSEX<~;.n(ѱ ˉ #X_@W%B{ۢ=M{LO+\ ts)R YI,B[6gMd('rF?;۩p=@6 pdžj[,L:7VW'jNyypO-P2hJUէ3!zAɍ! W\@U%0cpZlBRqܜ)d?~$WHǼ݊j a P[EP&WZ2 b Mn+ LdY?CM*: N>@zbڨQ WY}FeZX 5- j(Y{&q&n%I:x{8]ؑ,6'ND\7q7[z5%kEU;\]|;|<$ou絸^GfMo.Q/`:2l?m!NK-sY$Vcw,,)ؙE=5fZ+-74x&̹pcYu[NF|kdqXS5(6F@UN =րVBJE (wiҫsE Cyo3?} dhW}qh;P>O6CyN2J {{}r+|ݜu_À`mX0$; i?7 ܜN'3.9(sBƥ}:hgCB"ѿ9#ǤkYњhGVoR9@TIQ.7`Fs4 9-=%K)&qZR>!ֻX>ycy-yLXi꿧%d^uh# 6۽6b.Ⱥ]tk/N˜J=3M)T$]? . S[óNÓqq lk|0tmяZNE= ds$HͶE M1X`{9/gA @ymKVt>x / {6 -r(<"F8J:oY 1~Ez*eǫdM:UPvE[1#<TSJ /Ri0?il8ЋCTqs*Q|y'$|:~/#B ;pHQ ؁a,W͡ڈ/R/^ Lܿ9p͐EOu[׭!1()5|.^ַT ^1S OdE&xKozӝBX-f aFOM`܇5pq D]܏ub=UXDMctF١ Y Mk7rA`cftOE?n_/+'[#5ѡT;HI/|kD֓0|#ALZDY.Eҗx,(bUW=\SIk#!aOZ!)0nݥ9%z/mF9U})k㱶"Yg/*g`2M${&NFb8F7'JNH#ř!;5[et# _ 8tj^>߲8 6d1FB~yu2B9E)L)@Dz˟f%̧a̒|~ ]@7 =D sҔw`|vƝLPph۬jcc޾]Sy3qPN_zZj{jӺoc(v5M֩FEz}NqbwܱBSE53hqM RT ^n,f#GZuoGqO5[/h?ҷ7xg_dvX#16!c⤞L͓f SWâb^u:Y{ne3G-Zp={}=D .%Mל Kۄcm9>TlmN V7`0u,h.@igb(-'2dmW{ǓٞLz;0C_rgqE! -Q@!quDbc++QpIj4J:xSatLjuib"uLvjkb!R(}cqq_/qD"v= p 5־EbDd#^ 5ۄ~1NZTwg6C't(V]@48mt^+Otό;w!:Wȋiiy4#T#%ԟ;??Lb% kԠuiܞ]S4ҮZϰ8ͲNNu+@tmz%{_֔-~o XX-Fw~mx+*)E12 3c/L>ފJNd$IXzlSor7nfɶ}|E1!*NتF3)3#^=f"052q? `J3/ΑC'C]f0X?nw5װS&Fܱb`wTS@NJ繓CB|mʧ3psf/fE7KW*]m:6/٣xD2qv*m)H ?U4/+2JV8lv&y]`H)_WWJ4[:&E_QopLx~?%p^#˼ <_ rh:K#Q&0PciM@μs:2T"܏Uܠ=aCQߒ s[u\q& XyCh,c5z}MvyoD!%,1P)vD˂pY?Rѿq9jT6G[T _"B"V2BLJ:u}cTqJ%c;ݣh*Oo]SG[SKHEحlָ*׫*Ȇƥ͌?^I~ +7|ۺm?H&,Z\%n ~wmh`HmqT?t*5,m_#Jv #d;%A>>dMT 蕔o\R3DG ZIE)NƲ*E qJ%_1ɬӯ)3l 6H>dE-(,|TGSП FAfn _w#-A'h7hۂSm) +;5 ?_!L`Oc6B5kD N1)_m; I>V&*U|8f=1ȧ;.C/,bDe}JV]Gй?OhPL[νڞU9BGUwc}_s8{GgWt|צW$F,l2Tr k9aF(#g3nL{YXz \ |*z6h,}3^XERδdWBg蝤(/2v%u' (\enZ 9`Sx!s"#c ܠD cg-<OlMT.HaUL&#&[< s ξT⩘ۋJRB?0ϓhl3ֶe G1wNof7S]jPȓ<@y 1]!=">Ġ`P\;lR'Zx{Dcp-Ȑk6sqIAn[˯f"U!S&rA{C,riL{ X^h`^}=7Z>8O]J!}tDV^Vp)6pgw{.\ 蔻6Q~ /:rvrj{_ 5$PYY\mj~ guHb3SX[g}HΝpP<>^,EnXor51yeK#V1ѻ[/\W)`݌xsr~A9mzԹ(!tɛ*&7}n;g\E;7ws҃S 9 yMK.p߱'6M?ElжIfA@{$tFY0ƺdW2W hDg='N52_?.[*yۂH9rNiG'0g&N T5l`#oU#7k>lDd7SVB)o*7kfZ@Wt쌚2igb ^ENS) ǦSH3;AT[q֩W=in䚖0eaqu86՛3z5lQg)#XvY5| N,R׿/$'FW]av ma1~i8t ݝ&;v$_bSP:"ՓMś7A yM 8Lc ph JQJ =5miR; 4K-NdL41be'J5Z#~)xm*O?I~.ݷ FPL b^.lXrGU~J`bDhyᬀ_ysjz(U|/Il(0>Ff<(m/]Cpz@% Xp\8FI3kE\;C?R1ojCߤ3 7)c `5}fC)?]GxȨ7 #1` w)!yrY˾E}S% JEbF^hfR]2 sFy$zu>dW C#qšRj["&YjC64f7">Pm)|`{~ޝb Y A\+&Id)>`[Z 4nfF5aUYX{ɷvU̿sTj]}zk~LQuўp4Ϛ9T'ȉu-2ul$gpn~[&t)Yӭm~F:=C65O ,}pAr4;⚽Hp`b,2N5 aޢF襘6|Ɍ8.h(Wų/<tOO*-yqC؁yGD [KZަ&^W YiW2+3_0KS9^`XHCc:Nxo,$6ȳ֙$}\x۵NՆ[ wnƂ˱j-qIX2vC:rD/{D%ҍ<%ME`)Ώ.[?}ƞpE v a{❚ΐʋ}-j?FB`.?ۏB{Y;*mȴP/6mc-oy<=-j4Dm'n9pvR4,^7ww/8*0P|əS:3/á(A?xBX #荢6"X'fF0mIfeP?(O7nA %ؼ{>GM{ f̪kL_lJ. -˼+e sSiGJ˻ClX%G Xl;Ie;e 5Wf=}L#RcC8hݘugJqxc0+Qw+200U>D2KUʦذxJȣ %~36wM7#n::VoRPFk =}%49L1HNpbX؍]#wNQ{jqa9sHFb8us{񢕆@a(BSi\[6#h!})%RGeYb1[DN*j ѫXm~a]د8~Rfϐ,E TL#(~C}od/3}4dIgwĴwVwvP84_~G5~aphqf[}k'|#߲!:m1 [j޼MDf)fIkYJ z٬4q쨢.OGWzK"dW  Nm$]D5v.6!D>6(c*Sx"I l5?UҲPՍ)۽Hj#p؊gΗS"=qAt|ͼ  HzZ\T#a@툑 )n 0s/YD,WiG_ǁ=gx#2.n._?gNnzJ@r(a*oh䥂Q`+Ǥ$8{yGk[9x&GUE/d]i)մ vKO-`qmpƟ kx{+eEwjs?kd\A#.yqR76:]RI wD+@8T$h 3KzÀ-<'g0nbh2 :Sh5Q%ea3qq`lfs1i{;f)a+9\5J­6GIR(/Q{m Tf^ G2xgpMt`1E0}W;ߠQN${f56l5X/zF hz(ʼ8ӥ16Yht`J,P謊=Ah=rqF2?{/0p _nd3x,WH 4S5603܁7\mH.M Zd["䠻x.x1Z0+)ݿ(B@qKi*N|%GԈqEH !e!S=o_+mhk{>4*{''[,hL.=-G%bC|R0 k{Gc8BjsqR픇2&(4nD,-br;Nb*#[tվ ?0t_Mu[<,QNBv9'|9\kV0BUMYcAra%~VxJ9se"4[OM޲HSawo1)?)>.f }/)uUo;dG׷d4unO8'z%"Ϗ.NCdh?s5 :K%_I)w45v#'(o&r'HVDuEo%7dM*iA\3qO,wuƽŖ)m <+ՙ`X=ofԐ++k;މu./MTSC|,wyظ7fd6L@<[':PT:5+x5A9_i~b6H .8)1kH(Y‡ NXx;Bٕ7#ƣ_Sg.lrݜ9iMX~!?䊛1thl\!Es'~LKÆVòx.v+?"'qAlUk aTxb|g;yړ NmM5Xٗҕ/aذO ۅ1`7+s=LZZ1ud{F XK3$n>*?thYYJ"JZ<%h7SS(%J@hISӥd'.eOU,dm<[W*J#o{krY^3H|%^gla>ݵdch𖐴T/ܮxrܿRO:LCEïZA+uDtCQ"S\g]znjKC&٣[yjي.RI RM>+"gUUB$n+1F? }1(qܢD|+uaxtA&rfj!$/p&|CZe(uM%!1fM"yi#};D?Tt:a;,8(8V8ipNkr=S(bl!K 6φLLVv~EHp5dVM t-ocQ}} xt #097Dͬ yz<3CϪdVΖ N(WBgBUDqȜ7҅]UB1 !S!A(mfY~ehNI Gm2rlNa<!Ȃp֜ "$=/*gtrDhUs.SG7!{KȐUwKU7syiZ8τ(L<6]d`~iˡxzਗ_dlΡ1 K>>kSȱncoYг`)o:wunJ6ڮktZkt.J,&e Dэ n w~tȱL"^P;bp0@ǟzO^[֢ ?nXPE~1_+&}tߊ\2*Z#F Ƙ]ЃF2b>dصgD`;<BuN-^3%Y\ֻ ƓN$i C篎4wZFdj^*R.(1QLoIIJb^#SNcf'ȉNM.UDr96)! 1)ʐH, )\J5Y|BPu<)"rȣN%(JEEB"FJeǬtO{>ȶ^_.2<̯P4dG- b 5%z љj{Κ\xfe9ؖ<nР+cu_AҽȬv,Z$ߜa5~oLnfwXKM6>=vAz/a^*^qu*CA68 f[)au7=$HZUkv*kS NuyPRU)"X-NqtݫS/0-%zWJ% Ta,:,zr\ژ'f/.nP!o=Y}$,O(M/S5R\g]Aɶ߸F7tQdc u( Fܱ1_6ž H8No5Wed ;H_x˯.NUbz/Vk߇ۘi4]U%Ç|o&r;;"Hܣ۱oWX>%P ],=KN;<~3&wXtj"K3`Ǐ*'W#QAW:eR{:V?I5DЇьf@G oE*Qǃk=I~kFS`]ޟd & 0%6e"pR-B'|Aq8j7/ĆϚz?r9v䣍=r;"NMǣg:B7kMyR,pR(എׯ䃞#-bV-9եR# 4qŹ]s5=\P}^  W~|l 4n<+8z\Or+P;*Q\M7L Hs5W$ ʛiJ<7od0IU=xl_R+pR͘i X HMnL Qe7O>*Xxx4 GT^%gHeԊB>H0`%nu]?8w2tBa`ѷ"ZEݹ5ʑht]Kqy(ڬC*lճRjJrHJKdc^ 9Vcq])~u7<:2zޗ9QD) K9*1 4ę|c7ag eC!!4XB'5ա348StF)*3IEңW鬓[c3 ~绰zS3"lf_btDc_bܼ`^xV2]m3J1Z?A%=` S,%jy=d_1}(m5& 3X f۫aS_G'm޲/hOrR]r}Y,2ա6>a(* < _˻ R4!4CL{5N`,c|F >fNkTѪK$s/Y}nOO8ld٤X/fef1) ^XusٵU3G\6<,-b9r6=2IՑ)nǖΥ1)v8ǑVq˫yQy:>X~k"RtV 2Hb9ɉ#/g')T`4#%Ifm '{4R׵-?eBSx\2Z6|9ӫHTipTT{.Ag̏&k+5f.P~و\/~A|M։!rwjw/})q.K$$_ھG%P_.A溲*8xwJlD &MrY ߄iC{gϠ2GZO_@J%4 R2*G#qK~H/% \'8K0Fo_Ň;+ethr5Bj(*e t?j&^bٿ7R"aZNMZ&Ƚifn(?FH_﷾2?,M? L dZŔhg~y^]5x]퉟xk__ |ʄ]r=}P׉ LٹVv0%9+M[,jЮKQ^yJ{܀tVL:+wa=M,NyYJ4ywF3K$(@@ώ~Hpɨ{Q~!= +HP2 M* k;+YPT͞? ;ȁ*꧌坉Ʈm pl(U#p)ie3Wp۸,陬8P!%wQ8#Bn#FNP=6,D"]q n*![xb.pDa~q iE`T8mhTO~̄eCX- 2u߾sDVBaMaA: A⑦2 5B+NⰠ܆W5oǮ nZ0W1I@o(v ]VleR%_۸_-2yAVٺy°x-- ^o~B^ʍq"vMSíbQƸ*NG U\3gRT+M3kCd"/Ob0,a2>CzQrDcz]Ϊ [F+'.Ü<9T,Zqr+FbASaf:7:CF"-ըLtn+:eNFl}{INnqI`$@s*"gt>$O(=s(49ZG?i G(@hC9_2 ?V,_aZ:r kl)Ҳ1QP #,S|aМ*[Xmn}Z%n#VZhm4'~ O]U+:!,uBZ\ ՈkV UnmI 'fTgv0J訅*~0  UW{vX&z4(ȀϨz;!Gм,ՙ 5-q h'[pq*ˆ ]BU2ƬbgjkQTa/ /ZKfF=} Az.(\YܖW.FT=4RحFN |0t ֺ]Ƹe72Tk-*=?>ij>^}$ې1]#r՗ڋ&NMNB1׋VCŠ;4cP5Y x KM ɒj,529i; A!"n]!mZ"GL2^3<# nbGrLw&9sS0#˾-p.?Qeoo`w>ЁG*f Ԇ_R6;kٮSm%\qhV̸0L*Qj>ʕ3 uZK;= UmgDf4֌&̈́O⯽KgnbS%ddFJj厦|6S>, z?=} zE-1$Rz'2ERzB%;DYCE5D&_ihtS@{!I6# dwC%Ld!B2lJ]p]B,[FRe <7$5U+A{V;)Α%y@*64Byk[XWʼ6ͻALxMԚLnQO4 :L)%)WbN1?vi*5-XM 9B:E&/bIYppaN.T:7ȣiNcEb үN?{V|ht&yS12VI[twL_>h&d}Wjv8)f5\g5'U2D^a#K6b& %I!`"G9 |{U^'MU? &SЏi|˶)T1ˍjW $ }0Q 9E觮R9B@^l2d#Xe<5h4z{FCaW..O< HDYw"96 XuD޲WjǑ0B vQbFozOn$JhՕ`J&01M*L1 XL*_I:G_1'Y'HS ka8y^7#M)֋,[]Z _~D,ֳnhݏX1CG[}^C*Ϲb Ou@'/~Et)l%N:]_TEtD5y*R)݌'x;php*sSl hnÙx/f %.O 5Vob=pVÙ7Tfj0)7Տ>7ZcOp"H`?3TaV? 7)hATtuנ[)ru؎ۜWcg%Uas>ppTTCCV04 ,31ZC[Ly,5 9')"$~,e#U>IC[J=\vAsoHӿMޘd1qT.ML'(ۻa~.2!~92*{ZW=A RJyab`Ý=*#u\ѨO]e4 TG'ɶω,ñ1.{2o lb&or  [0m1Qѡؐ_gsKmmth, "Ti˹*-H /#:feW{Sx˝$UDį{' 74aì;s ~vc~2ݘ#!Oh6j-|)n UI3rHD. Oإ]HfX˄^F$C%? j6emwi,ATH~uVx~s.3<\h iG]E:3YmzJ#rupa'- ˵f]|=%6 Q D_Bµ[J~"ze gCh)iB4Ye>IjJ]T4}./+i R.hA!~<.X2=k7f&B%Mˑ~CAa1(t@,~†cd.'E{T`!򕒢$T=*ݽ ŕ<uϡar_fpE]8rx#[3kn}_$j88JGk4|~`ixgsE!21˹)YXۚU]$X0gʮuŃB<8M`vDm Lы؊2; ゚=qswF.^)d3pQy訌'Y!C-T(U, 1"(TWKQRa|Gc_7AV*jQ W;b>^TSHtxݸRE?ٮD x%ߧK2ǻEn-< cp2{*2{-Rń{Fü("j@-9gSGWr%Vb QfC4"ZBP^ ޷ AwH9lT5h㸩jS QQN?dgV%LOU)HVጞ̶j#߬1/:3Pyrd\۲EIkiS ߀k,nK4}3Hr{x9b|nF"ƾ:5- E[*rxÃS4PO$Ή7+{(1m7wIHؘ!@ox#:[!+Oݰ$B?Anp̟r܅f 7L LJ$QѺ^ ɒh Er_Wi= 6t߅#΢R(,M?`rY!tea՟jՕ+aV BIeTKm =}A, Ʒ%GTy[Z'n|R{*cqW|iΐ9 z{6d؜>oHR5 M؃ȞrswAǺslq&Џ񖟰lk<ӆߕ5fUї6 |~\? %;᫇/ YRH|*;%'{G#[*T%a_eZ50Fěbx],OCq9Oz?]j\PXl{ΤMj*LJv>۝$j?8RuĈ5U40j k+L7"39j0PΗ,5EY')I;L^NP Y ִJkrX^Y׵JDD)qXFC,FBL@m7[a3ֶ@Jn Qy#Ldn?ØAev9WzM8J{=RzW͈x8)vg^R2yi1+%ym06&X&)Ӌ_Hx;КZ, L"|}-{!ĥr%) (gy|A$dOs9fa*=$Ď''PY}i2+~@AAGny>*  qu۲&G˛Y3X_񝤮%ĖXNt!x\i&.pRi󧲎C}2Xly_2hH-Lչ_b 61$2$Z:+;Ln[VuZ^Wr=Oz/fvDe-JDԭyp/j훵YtD5R)TySEmki0Q5 r*39H첊,\z<&ݻ$ji~^Vٯ1R 4{\CƟc_8R^F^3#4A*DVs IFkY@H8<DZ;`/bj&#r󗐽6: $rϬGgq3cvI8 o6pJ^)A!.ү|,v!Iy 8u{| 2|]á L7lvWԏeY4Mo畃-z Dos!&Yw`Dj"/QPr w-ro*`*dCsFZV4OnmJ2-VQ̩vV3tWݰI݃;/KI"ehغv1儀wH8,Y'X"m!ӹXr8wF o 9o4|[rZ̲!ͣl*v|p懄_Y)9tڇ\{Sz)ru*ZՒxt^*Ѕ^0!!Adeuok _}3SeYKTT4zS,#if'-lZӪ|~Z"H -62pYCxDY3u-w*7S fOKR7Co݊p>{($Jhe\phWBObخ<0K=k,N xgt,EK8¸! J(Z]r5hI('vׄjmi}nz&7]T+U_&8E*i ͠BuIxA[nZyN?0,:D6C\-x / uۤ1Qb%Dy`C<3[.?meN*(u3lEd&Sy}܆FT|W_js.Պ f6@ 6R[@{<7\}#ؚgxFm*(z͉%7ƛ\1ٿ)ؽ>xw RDYCۅdqDZ6!HAqll_i}=[~s%A}G €Tx42 k/tbV(\GlKKb^9YtDw[($|C(?Vp1E{2LIk;fYAΞG&u63JE|ȸT|tĺySUp)cuJ-椙Z]i!Ժד[o}™C@ \5$βFw bL-(VaOy4e9늛O#⍕Vl-6S,#ŔebpKdjC2C'a:ؖ->]1x4Fiky-8~}gx]4j\jӳD{eN[{B<Ą wl2 _y#o1B ~b۠ٛlCqՎnbgԱuKe;A$Ћd) b{Mњ/Њ}GQ +섀^ⰻo6[jV2^nC[۶rAF-^Ewk*43ش[ѷTٰ#5gАji&@p7P%I:x`%Z;Sϑ_f)(P&҉ Í94̟%}ߖ>p*y16{܍|՛.I:-0tN,&,1 `Tv9E ai ߶Oa}ZAڎ 3*I Q( TQrkqS}:lu zXɌn*J%\[CbjF6 O5CN"A? #\ .s䪙O v: 3u$wFDžii 2gz2QԠfuBx7VJo1Fm3Vp\]±ߪl .}R *8n >rj:;>G?|CyזkCbl~?8(y/b Ǘ5(w谍Nj8Uu^\{|Lxi"!nG9P=+m<]zm@)+Q.D1u'vW??^ WeD2_Bg-ٔTS%W~m\ÚwTPJ`Ł{P\*NF]mx0ܡKGhMb c=uY` o>rͥZn( <ۦE.((e'Y\ ?J)aZ=yjth4IY(]hۼ_M d(~jo[lWe%E0: fWwLt1ex7Wȿ+BH/Bl#Weae97A%kZ*joچQF =g9 ih5*1Asj.?O(X6RQ2ŞmyVih Re?|MUoժx^5c>9$AXITcTfRLGSyUI2WJv=<m.<kJs~aYꯦ-5Jcu%%}H$wNt@ p~%Roθ,]]: 8L [x6׎92IJ243,DMTN|O=;'h[ZoZWf9Or:hf:~tZJmr^jA_<ԲpY=aJ,̡XwBFQ-V]|=5Ưa(rz~FHf)ƀjw񣇃 :fHB&`MCڅRoKel}*%H\0X,i7}cBCNp{#ycj>%}[4 .4KRQ.4j!ovTfcׅoTWs5[3֞4;q/OBSd&]!.=`oiF&6#(JUIa1 fNd!,Kt:?WYW}+/7mG_<l? 'leA!^u T"y?ӟM*BB+aOz"ɩ8pmۓ:^`ػ5N]#TB 4's4&eX Y,`@O.CS0S C<0̄u/G㪪L%E%(XYvX3mIĘPå . N0ft{4h'f| "jYG=$v|gB'zK@bi},q4&nޒ֑IK[6?WTN&wFru|$@U3T JN_{S4溟V #<$A*c|/$m.,>Adr' IJ,|= #a{d͓U']޸DT*i Uju<3ا.#rqqy3N]Dy9;kP(PeE>`R{La/D *->2>ˮkϏiDj2?ok `< 3 װgihKöQCGjG\U"jgG=>8DpY;CX>Xjhk8(ί)cIy69[-j6]'BBaukadyOͿoo[]Cg;Wz+0tV}Q+ofDŽ|&O#ݤs9B=^aIDZ42:mN' SљDEd :CWixٖͅjCLr/h{iCq-HIɣ[}Ut%/~ <'>>3^Qq޸YEN› }3Ԣ aV 7dOKs?):ѭOH O+"UMwQ>i[8 hz[`3$(,djĨOHuoZ pz[B"1mPEQqLty.dp&< EX= dxڡミo o =`4ѵH$jVLRkckш]wpsO'/-&Xb-%zxAC*-٣_Jǩ JM釥*T z m2peNlR/dyMǫ˙1̐UHPkmnF4?򰂧 WG_;R#}6TӀ`."t-1J36c49GEH[7b)S|CCmк]wan6Уre .?S[O{T1. [ 9M'(%"z$2{-&U>⭫Ӎ1 ZyU&0`˻jA uPBg?@zLq.f[B6]NudVRze'3ɟBb8Sx> EJnψ' + ʙ&KXy2!1,J[۰ OPy}y,Lh+7/?~MZljC.MU.FF`c|Yn(<ϖna=[Anjj 5|95jkB;J" e?V)qCqP,qd#85?ёltm}~^5z 6{0S$ F,JZ3\BS(-1|qأ*BvJZ ~`^ D5ضd^m9աIJ}[cm[v7 dgiꍂMQmnˇѸm~{B?NCM)dnJ)C"oBoM$(jAC,&=%VvLH e١}n, nYڤjLa8<\b˟7|!<@0zQE5E}PQOL%{844:b Xb+JFEr mS'Dc6e[aTu ]UI_ƆSeA]{Af+(4+^/rMBq$~@r͔m'(E`]J 9CF-VHy %)eUC<֏`/]O߉?H$:o{0+_Z0 6"Px*IoWlFJ4GRv|= e@E9 gc: f-)f1(%{֖IcQWWu.D_b2f4SՏѶ1!-73 ip,޵@[~q̄kN>~^@Z^HA+U(T&v?='P?mZ|;s{5NX [czlnd%R,םUB'ܵbgO~]\N~34p^WɆ]CtUIj'ۅ. .r=3Ez[v'~ys<&̄,{5gnQN?jv1A_ u4>jH%6[WdB sNcd=1e4rOt(n};|-Ij?NJHuصqE={2#p_it$& ¾5dPxg^=([Sh[|G!R<} ]_g^ 2L%-@p.@-(!i%` `/:X9КQ^DVҖj[]-//JU ;~GDFG;G(p>-o2=;+yp8vyUQWA\Nj HӘ{;V|jgјb٦Я_>K+_&xa^ qP/]/mdL$sfiWǢ}Zo|)0&)ź+AF6 Qȧ |pF(a!7 }\!*I6N櫿?N<V؜ :<.d~Oz"ey._'˱ݹY(9/\enZj;$%wa} tnxR*`sd6@O=;~QWкG/ty p;fr3w=/CS+r+b+n[pov,oRv6cᴫ DXC{1}"1/ Jcd~J:mY&(eH;& /=jVvu"`;š?rCDv]Gww9:\-Q@3#TȖD?Z1 j*(1$r LpmPЧD01Z1ZQw_N"Z3.K!4{"݂jk_bG0HL)2V'X T7 i>CǬfB-gPv|`_ǂ݋xz>ʥDPH@~'){E\c׃P||JZ /5MZYIo10Jqth{@Xf,q Ex[W \^e=!Vj"u C!y Xx8&#B~/ay*10V19or <*˹|% ъ0ˤ)6 ԒqZ8n%%v]q!c3;WT#o xh;v\f-P}jbE"  7H0X*H`K3PlJ/ y3Hr0S: 7>G`_mN4Ն *%`=(]YUbz_! 3.??C[#SИJp WJ |~0Knwé3ߊd=bg_}Id҇/f`~+$EhB#eTG>8^ThipQy!Ww̵g(Ž % LeɆ}+>N.&x /uz@Q_ilHD>bMQ3i?] c_Nʰ'Ф鶮b͟{APTr&I9 ʆHܿ777b¶dлEFD9,pF=~GٙKWV4Vڏu.GJd!Xk;yqlċd5 ź&yO 9=!x,auj3eQW}h#RA# HfC&-Koky]ɾ8K }~Q ɉěJ{w!ܖ3ISDS5G\X9ƦٿރYgOAr3QYTeӡyA'[la.耕 sTmg3>FS﯎*@*W[}6l lbBX5XuK )z.rR=i!j_<:78_.R$\ ?G Bd>趓`@O-L%o9dtgArؾF8O_3Q.;̤un}B:]FVC{fw0 S1o)\HəiTp=d㲡H!0q5)y^IN"ȺIԔ4^$9D&<-7:0NA#'$$Cybg= @{ >:BԔݕr>T6@4 '/7f?0J΀NWCQ_9.?v3Qh-N~Km)ŎpHX5zH H˱nE%v3¥Wh4XWPd638-pD.)dSk}U'Uqs)6Esn3se~:]a8DijNK(畹1ts5]$HIMƋl`%xً*zGlr@͍pgQ^"ޞhۋ}6]FSYm&{׍NX5GaFQLl"BΥ%Lpx)NB:gir)Ҿ.#B5|2]; fPc\9ۻ6/}Y2%vkηZ?:a$,FlɊCt"Xܹ担E<9ezAt'R.wYPx@6OZ1gRj} g?/nzoD = w/k?tD}\iW 7rL#][D.cq ,VNwpD`FF:]$ZF˽hM 47ُX/[3b36z_` YǕ!i~GuZV(uGG -[fGW!NЧ#ҌG@Nu:aV41*p<w!KN~nw \x(h$҃MtČfE&bv R@F,tn&HH;iiSgI[5 U ogȲ3"8*65i5;!-2[vg:@یv8Z'DʺH6LU6`Fv jM^C67G'`r gA Q#H1֏`[ۃP==b!0G'i&As/Q @Sԅtڦ\"ez2_,LĿmINx=9 aY5 eʼo\X-.n9?S(pɦj;iXV}c1:?cN@TN螔@boUR)a]w%OEF"SSÍ %NP]fyNY\8)OOQeJhǏL \ п +-LS{r}xeM  1.WW!r'YՓ gwk-T43.wHZ$ⶮaaIGR'^A'h*9#r#wd=5+ŞT%9/DYVa,"N1WK|┠^V+c&v3:M @^Xc E$-̗/ 'zJWSgo7Sa!c9 1C޸>_YI+TEhbé"1BVTå)dߢp|5<׿m#SԮ BuRUο oQbJ[{#>fM7L+=LstÓ>Yz187<-Sh+s엫܊[湊/#mOQ"͋5L5wyk:mݢ@1N-t&sH;cV|egGzoYtn_lp2NE.`O.' *nhoVmm4^$!tOEd<nl!9θi]޼, %+  '[VȺr|}IbI)'g46"g$:)8~!X$vIEL\a-lҒ_4ޯIVE֢7„S:0u(ۂs`$*5~m  T4ڋȃ|>W@l׈/AEu0R'8Iwnma@ ' 1AVY\R [(M.9:կl،9mOW #G@\A{k1\|BG{gm$W\Hb8qa Tж,u*tg OW9@^R58p%S~FBץg!\_ %-,Fhl(FSAPkK v^l41 `"1 Y$U4rJiMrl]#Z1zzV#*cmp6 >y! A.Z (Y~y|5cZ hT'Ej&K Q$ހ d?,-|9#X[}^d`9l8"Z^$l67u%Xvڱɜ폒/oZ6S` ܲ7ϿBZ,Bc hQ86}'!<悶w"!-2JQ^QM#oFlpE[$g[ M,&HAkżTV{icj(Y:-8EG|Z)@D:̈́Y ,$c~ΡûowlX" F c}gCY )Iud 苰y+Ӊu~ʉyjkOAncVaVøFe`^?U%x= }ԅpn9U U9lSʊsH!:R +4Ğ^?MqI]/uέP 8K| >+&'S7S}17~UXcr56m[Zj㲟?O +:qLG/H2BXdR[†4 Dȕh{?ihyDHm>C7FY 6yH]`7=*($8CxlKkFZaPhNzJܕV`?c#wC0 BeAbT4NNEŸS#9 ܑ@҂i".?񤮘_Zh6_(@io:g$32Q@Ptxup1:|W\Y=~C&E Y5]%^c明,Ip,8݄RRG}Q9~ _L7OuDԧ{@G`Z*KTx'YĞ`f6%RƌP԰a+!텖Fd<< C_=Hm~`)kgR!U[fHcZOv_Fby E͢i7 ƋhPa>*Kؓ1H\N֠2(<;*-dd5FBr9!Di6cB<|:JVOM%ћp%iBxb2W]BH,Uz؈7DLyl 1]KrKh"B*gDM)I(}mAopؒ;CT w>uP'E* }{Kyز܇2>xvb&kG7%:G >{D<_(Uf_Gm8;TH\\&Ƽ݊=TUIJ5ӯn=T&@_^anE?hJ* ❏Bkj|04bgdqE@ZJDN~Xa=Y@fWmS_s\-(cdP\k!c1^<8_4ip{貾Q4 :Щg?\&:'zkek`# X˒Agp[=7\(b 6x>pdb't)Z NCY@?C:-݌Ucw,xDhn!_[{:$ mBRnI |&OY Y@ȶ9)3#D?, Yn4_J<`OX[I+ ɩ8 nW.Y ctp!aN C1B[_m_"b]xw .(*5]ßЄ2_F ИQA72ja Q/F|"~D~< xy&a6aҒ/ʭ\J°hUh:I+1Vàr֐I#g PA&ϔ]Yjv[:MLaMIP!v@dnb^e6a(5 Ւz l?ԷVVo/#]PmzqDOO$4{zA˳MSGIiCEdeïBq<mKX2x(9˸)k?g;"_Wvծ;EGǛ~l}X$W]o9@~Jv`dK;r-@c>/,)4 $`BQ{NNeBfo MUf1۰a(B w\rX|G L!ޱ1faַΓEyW d,+^psrCCs5Ͳi=UF9#ZE5C4X^/":~𘱄K_?\ؽ ᖊz@b_' aInLNcyf]>3 A&1,z {7k4~к KڊWf'T\ȉ„]m"ėC[2;y`# rCkI3xRhbOYؔv#jjq[c Ǩx&1 ښG& " )Z-4C`:S8,~خh IF-b?رΘk*fww?S<4c6|pymC7yXc$Eo x@3&}2LsVU+-u>gej r_jeۖBxkLMAr A_rzNWM}k2Q@oB^r}GHl>KI.=PGr2mzɜb^Q;ݾ ncjX7[ۨ; C EZcDRỲ,Z%Ewh:w߬^G1znZ|Xϲ]IatP+q9E,׆qY>e(V[雧3jT:xpbPي慭2Djzɮ#! b|V|Fŋ-J1ԃ`<,3.r!5XE"0X9fd%g&r=IBD6%_X׌O?cHZDZ {ъ Mibw=ev~HmdX̀+.}䊶NHN'ҿsm1>cF^qiecI0@ )K_iGv,z6i?aV:% ܓF-o/+6bSA© pƏ|O\b{ʌCI%5!aZ)k"Aƍ/;qIB ÁJuR1>iZ.ׁ20y3EO/{^iY ؤpS纪]蒀njt14jp>Q 8{P􀰥e1dQM/sPXRe-(hٻALp޻Tꯐ{VSb`CZJ|m?2ݪDem7{r{rQ8]JnmP8Gɒi4 zH-QɫmϑCwҤ|p A$UVl\EOqb=S qY!ns\?t[e'E*kT KVҚGBf9/? ք `iJ<~2kӅWr+RM>Oؐ9JK=dp,'F)akj́'[X[#z)X=DUΖ:G&AsMaؒ&Q/E*VaV\I :sxm.G͍/q X7~p;MT>VwP"')&*4_MrCf=aw!B!{Seb=e}c1ҫa~7AK6F[q f-0;Wl:FJ[s)Dz4GEYxI]aq9QG.\4rOV(e;=wg.Og@pvfit Qxg֥mWLo8G^xg3`BH|lvboa<j\\ϊ$2<$]FOnVX}߃ou'>:Itt^.NVΨKlAc.Wbzttq{spO-YWw(8Ӑd,ֽ'h{X~=dEDgA5Y9bU\= >٦8Q'<`ֺ<.INO7c;/P! acXqۺ't2OVn.O]ڔ`:ğQw Fm14(굕-3h{9t `M0E_+!=D,6tQehnQ.%pAr5ߍ8UbrZa Ku6hU.s̈́iijZv=2`F1SM\@j3O͎E nبe*'KId`UHT|-sojm cR8☓}- !OnϿGC9`cds$zЗ v;jVWK4 DK9e)BZ5bewJH'-Y>a+AE 8K-k^M|b}YB,񮣔  tC>#/ $:AtH:{>H?ڻ{â|w^132_2@Nk% ]JRpr 7_Ӓ;uPwџEY  /bBȬ؃N\N6Eʞ2#J^n.'Vmv`>ln"#bNߙlL~kIy$I5F9B/ 8) (d@&nge?_%0…#D׹8 +h+wP|w9(Q:GUp0[bʎ*/ڸ7k ,QyZmr̭r$fd#Au)Ŝ|rrTщL.8 4K\ҕ H*5DUle;VyyrMy}b*w)"#s(Lk(0=f WV#On0&,fJYfŹ6v\mSB6[␕}Oe]vP4;:-&5y7_Z_Y.F%e| yh@ňFIMfӕ7%1G~ymu1H'VrCy"ݏ4$\\?x8OJwme2Ɩ=䶻ٕ6?Q[/̢>VP1O>VٹOblWGr.R* {0\IܰwQ`Ms і;<ӇHn\;gDjY ~Ro~"-Mp9KrҖ|/%4"s(}i#kyZwHO)jEs#KJyjG!q.t;[ ̌uJoCOpΚ- ^rt!|DD#`˩FExGHMfg4R$:u2h ůDp"kqM"1گygڃDrIݸtжlJ*Ig=-̩xlByHHT>@Z;HU:'z0qS:(057 ~#07]hqiO D ŧñy"95|9 dْ{{R[j pQ jnn YśY3ff1{N쎯,I?0վt\JM)D ~XR=&o*hk'䗘-KC*wi>ٵ)~n[ ꛿S y:(Oо1!"אkS僦5;<+u7Эau@TN %W_=oGC`: m(N7ȶI`IPS|ؿ}f8lJ2'g D,JOC)/ 3o9ك;J\.&ŒsrZ>ogNl@աuz@(\n,-` :وn]GE7)st_6z{\wejU6cMھp7/Be(v;J$$l^4E(4чeN*W2K5#{`_6($vֵ2Y]G8!Xu-vXgAZoO-5Q \l{#) ʄ~wX[wn'逌qy8Qw( >Fn1:~?Ӡz`>w#<7ȷAO^4Z= #e0&/j9DxdG2,UäRR\Y/:fLjo5 N`yot+$eYX'4FЛ}MPv=%,3&+-R]{ZQKGoeP 2CACR,q-j%I\;YD8\ixvI Z@%UBm›, cA{zS MoNWPq7<ƊG*0'o?. o%:tE.k0P6P,I^^ʑk,RpƯ0BҊQstozi,ژSS/x 1dЅ瞤%E Si  :/FR.IQ硎AuEacI9lvO`'ECmX["SI=y~ik~q9ƶ?±GDz#k !֊foE›u"9mopqs>J4ћ\^]{moJ{t8Pn"Y[n(9pMҕ@ѮcIwX8"▎MU fVtO|cGԶ_yuਨt+54x6k>?[x7;滗 \jߕʟX4U9znF]Ї w,è9.F Ƒ|쬬)3tc/Ż]elQI/5LdN| qT9|J1(@'0\Ԫy!E`]>:Oui:%O8lrnWЩ'yOQ][2P do&&5#Z^ ّ8e5>W zs=4&G8Nt${ReJPˌ.&$/Rj'Ӂ0MCzOyŽz)c6^3EJdKv7iIOjܭ #b~ɒbw7/xgTcz 9 7$fL,^=.UCH ?r#7RtJ͋갯ĹMU\2{ |G aM}.-Q%͍u>?~/V7z|:Y&W(^f R k}:@ŷ7Bތ !l9]d 7UhZ(f*fo`fmpqox{O#WO1bξ33ٶ3g-b_lmȍ &"Q CNW'/x(8F=gJ/ψg8{183#^b(& vy\jJ'.^RUNӢW!($y^Wûnޡ7Bmr](Ojv6BՎzmS=E|!Gˊ{qPҵ aw1jjfSJxqVViXq%di|U|ܤ]}i0w 9%C/%,s>Gt8X#[AYP$GC\ݝuU !!&Fvx6{/md][Q8\{L e~ڣ#'v('gX;b7kOLٛBzGH֊;$FF[Ii~$#o:jb.*%D"IlKd}Ҿ8vö$/C244vsBpFSQum>mki4DCՀxFMDyUOq֪mdqn_~&_*:~28C}ֽAU4LD*F' ~ӫdzW'YmoAĤh}IX1\lTU4CdѥlLBD7huDNJ\Jc )I`_1ڋaļ ]gD:pTD#wLJ)/62mԍa+5V,ѵJ6sxPծ{hLZ @qt:}0[ bur6;370_&ϓnYP.sUx)9j9Jh]ZQl.t<9qW_hLPc4; X\ 7Vٞ_)cvS31h XVmGc- % ͐,I0SxxW`9WaG8``ϣG<xna6["k'˔ <ԟA]*1xM CׇT̚f{H"g5_#zCm=}dQ2KYzQqkHy?a2hK3q*Fx+淇|ĭS8gȨw (m 1p\=UbZ`;Țk :w+RQuϔY (LY&/{s_*vGPkpbKvQi(}kmE.'1Œ K+߮Xȝ}Smљvzkyhs͕ `@Hop6vl,/xN6eB!-/2ӥ8@%#]/*l5"n`6 \a8c]O B;!Ue} yަAkg@Gѐ2m-_ߨ;y%hB~gX헨Kie6H6(KKrJD ڙ>e@>y#:*t~:DMs?kS6.NUrY,{%)KCrݮFG#gN}z&Ӓ>5+qJu~>lkU&9ڋ2T,y,IIt)_}R-$v=QwϸšսFk2KxqR=A*ڹ Nl9CǙ{%7TIS>l7ߛz), cc8Q@3wٌY#) A-az "Q2#M y]Z"C鸧I p ^G5J_y<:G[ؖ l$47O RVW8e0L3t0 кP5!%t'`J*'c3~ C!/8ܲm@OC>GA(yqa$A D^ b!c!J lO;hn2r7.%L^E"s'=UPʩd,x/hq2]D"XWTogړTxX~|&=%w'3pNO>/ vP8饿1zFs:OzKVV|t K0edlgmuPS'lxhc[aM}oj~Q VD^ D˾;IT3xMZcxt}rP nbp&z 鰮Z|kh wۋɰ2p/>L'uf(O*|C MgWF:a1%=P' '>r1B(t)}9,G`U ƶ b[3ӂ$4lht$"L"9QtXshLj%@ΘԶ/4dz,z(o *l65KItE(~Y21k0ē3CмYgYrI=NFZvƦEΑ-BNw6).6,FvYf&:eaG(%|Ҡ*?2IG~ 5@@$ PۦODPI*no;=`u|y%#~xDVj5`@Dc+7y1$ ʋ lP~>F k/̯jM"FFΘDћJ־>|۝nB=4Ķ뺯sىrc-~8YS\<Ќ{[5uNZ]3 tw(Uew4|0Kp'G-bTs=? fH_F Ÿ?W{x|s5tЋ;&g(zkxMtvI~&/X=M,'m.+һ# y&x%Nq;85Eg?Qq<OT69NO99D)p$u&Vsr;Sn)2K-KD-k3tɈprR2(9B~ vzsh|p͏e~^c&gh ,з; u6h hJR7SSM4Kn{!aJ(ͦBp:K;54‚VLu~טvL?A^4” C1 @]!k([grĨeVH90Gep3OF1tGVbxh~ӣ.}Q3uX}I1%V*!p1lw*>R1[śF+Ѡ~3M0TuR$1EW&~j rCKծq1W"a>]TX5JQeq qJct .4 q+J,NknF .[)\&wnd5Vv&ǟ.H վjt"h*`[+!FU<w٪[׻(muL!#UTް+\ʙu)S$ZvDa÷pMǂBN526+j\H6bD53]՗ȥal_E8LԖ76be1=#IdUiFƖ>k!JF`d/*8"r{Ij"`EbO2w(v?⁇ E!$^ paM_7j6QX2˭I}0&}֍Q9L?kÆUr.Oc4ނ8|Bwj^QnzB=uwMmK7aNUҎ񽶨>V°gR8zҖuچٟ~)%MzCnxޑ~ܼc bkpZQ-YlHCH@yclIJŗ.!ͅ9nAҷȽ؈љ4K]ˁ(db &N0dzs&(¹0U Ґ?Ek R9=m7 j+}T!dJGQY=/z(Rq̊3|wK5Bg^Cf!kšz:<-hG+@7~u *zi͏z}Q'"cVT*JL0Egxv&0)C+?"اSJ:м3O2]59PcLjĂ=쎵4ZyE=g0.8: 68\%-Q?9+btw Eщx[t>0 L q){k_c!p5 5R0|BD %2|V}G&nAm3;CH騀83d}wm_m`I-#5nSKVNBAh|~r"/}qm0`\G[˔E^Grۢ9k:m$me@{$~zlA+΁Z()DEE9sv`U8'3C1~5}>[tEZxvn[QڷvZ# xm3Vu^?"'MH8Uͣ4Q H'7_ 34+\_B#|4"3u@ ~\M}vg3&Lf&L)"W3 b ʍ%m7Si[ƀ5\4 "Pa]O ݲWh+GW}}LLyMVvc]EoϬj:g['.8Nw9)R / J@ǵYXuJA3v#$"}7;$ƌZ9OT7B PYFA.jyj܍yL-*br-{%=Kv<#ݰDT16 hCGs?u:p´,1_נ4rRI;>İο}_~,-}K"MAkBgyo"ݫ׭CY6gFY Z0{z'ޠenc{Pt:\B /ߟ_uH ,=?-;vwͮV: T}*UM%D›UReLY,") +30vC3KN'>Rㆶsx$ZP,RfD Ae?\sgB}ф~mQ&il3ӱa]m]ѓِJXDa1~e7h' Rzr9p'^qC85^;_z< $vӄr!s_ZQk?|C`x.:/ǯ@^hN_a.~Q4U&aFIҌOTO$\T{AX A Nߧ{{+%| ,{-T9S :/,g!JE?UJ/C?Gb߅桐B\.ܥsQ+~6fN٤[R+!lK (+єx8+#t^cpj'Mi ֽ&.W~Oad^!tbuw/kwWQ4hj"ϥIP>*d^EG-5ɧVIY~`~F*ha#Le>aRUJ!p=:8B0`Fc!!)vo/0(+V3d,dt.} 9z-c*AFN5H୸HYcR@qnq)#$1K >9b<[C;!5?Hq Q.m!%s^~hGf16@B/)Y_%* 5 vqpzyf1"qa1gq1p UyQAYԶ@_3\ 6o%P}^AoD;PM W4-hxZK ,Yφow`ndp:"Ih$cpmL"\Dx!N5+_pH|z-Q!/hŦs ^gQhth0MB!:1_-ԤY$t$GZh"1n)VMUT5W%T÷ T ř~BUWU|GʌJS.ɱƹޕNm/_`y2󚢶Ⱥ 37X ȶڂbƞ?$`.r>U E%IЖNƨ7N]ρͣ鷋F|-_?7m006KP.M PƳI"ա\LF0y%/ŦXDda,Bjf_> k/~JBw8f(t9xFbT-77!B(6uP|Щh0b>GŜ+^l+qmJ 3TKY٦N:%VRI&]Ǡ]/7}km!@EJrg)L(E&uƪ 23vc}l|=r:4S CY YUt@6~؊ [UpxƓKhu A~`OS,E=F~J{E2sJ++cUjH:eUŝY z!5B ɫb0i2uM5bFڻ)5rVDCqkg2f?x#~}vv/PЪ݊GDznf}Uchh\&&wBFzƏG&@m˃:jP}BaWM`ŧ'hO%_pTXm" vi9l)P{s|(L:nd۾(oљXڍUD"/O"KTÚC Kᥛb#2BELEYy';RiLh\R>XԚ=4F[q+Sc=zq_ xL{@ÞU UOYޠ7۹ L6Ց> >ŵB&ļ1<澖Hm!AY=)NUyGcӎlɟYn/ޗR}St%zfysZ@''k A]*đx ˞z"GMY]1 ` ixkiȃK޶W;JXbPIik'OS6=|=Ru[xr^es[D0&a@HbN*O-U| 5g `s8+)CteN՟_WG&!qyFo,U^G>[(JFSH)"F(9DV Q-H8-om]?WQxr>r^3|t\mmզwLPb ߏ\k|S`tD|CJ(Z 2rto%t=N*0?\m8[ǧ\-+;%;PrgJ`*ۆ_0iLd8@J| X4LG̴0Bl 0Nu'GϠ P[!5vtA{,cPٽҠA@Np}|+*wv胍M^ Vk;C7ixҦDu'̅tq c{д>`u ߻65C?9 3NPVw@o2|R1g勩qxlqˤT.㴂1IS,h5GYƹIS۳W'~'T3 z|/@8C;BW͹7*О G!1Д(/X;5y] Cp]LSFY +3nsעITfWD<#j7݀Z/w]TO|Kg[Gu6#΁LYuP@tMhW : wCCm3^o%V1.kq;oĚh|颜VcdSCAyl3m !tGln]UH^:kњRb~T^A «b@T+7BÓfCwl`[: s'`\zzCӕ3@TIb;dkR`r8<΅ n7{]dSǩ*bQ׌ ^Z uo6S1$w*z]ȁB("JݦΆb։GՐ4G.v*9eKwsy_r~3Hd˳ }%d817`Ҡ62nI%/nGVxY$ɓst=wmlNUg1 9~2R)&X"t#"lA\d}Kz d{ogo؎6Q0Y4"X\ "q"7s3TVQ=iE7­Y,Tqvo'DIA\xΧم  ̫ȁc**GJ] o$'6"ÆqS;A.{e(J.xR$~ឬGӠPn0 fh#^%Y`T/sM't+t*݊#aw-/+;ҫ4Z<`&8JZ8`٢]D~.d=&A( TJ{ { vhatn*>|pog%Dr:Fsʦ<"i8p|9=֔@}[w'>˟O>lklOM?VB=~hd^u\//3o!&{|]Z |;HJ՘jN3p49odcr206^䦶rgGl+lCc>z$ Gj84\8 C{Se07F;EU$2~- gԔ"CKr/ceh=GV7F5<)1nzչU?{.wN=<7"EhPq~=Sq7"!1ߦ1Ezle]dSD5Z?U!3SXFn'h bp|;zA_j"Sj e *>tKvMg$c֞=M 'wwZ̦^(@wckωgyOz*TэsJs|OpEAFۤ 4m{ oY@<(8.;OZ*H(ɜL~Lyč '㦳GJoY١1-9cNm.ˇp_v~29`<`JO)ih\p ɿnL/:qVKĝ.;WT 1MXSo$Jp8 1֟!C-> Vϋ<aR BܔmWKӢqp$5Zo <%kClfzQWaySL4&OQ=a(틾,=؍0)5TjΔܣ1$,rUJ+}yMh4XS8Z؋ L 2_oky5 6 M+(ng| JX؆(kx\i^l'@A}M|nct WuD_ w՛xb~g:y:eiq1U\Z҇U[4^6v84dS:d:zvr1*^ .jNȊwI7@ZPն֋fP ܹrorn IŪZ|i1E1V<8/Nw?zFC:Sx3fZlȖYM1G%E,ԢvZNp!Iao1V7\Ykm\3eVMlC'TfKCu9̉Lot4kQu$ ZlYlmp^?RyZ7φ`^s<~=9Ct } 'XEyϼS.d 9XKO|\ [y |K(3 w!Oz#%£Dse~NL.*{5`7itzY@Bl Tf&s .C b%IPEˈk_U]2?Px/ q|"FѸs$5 ]`ƒ$t>y7COr(!P yun8₏_P)W0"P(\x P9zZ_ͤ&iǍn`̌}!l&"zkŠ'N.3ԂQO3cܰ#y²eUդ{SxKi~JlOeu=8AE#cړxlJ%@j&FPʍAؙAA𺎑'{r:1.б'IZzz m{TY)4jm\ZC1V):UAhr"iy֯suk_YeuX TE/3XUCl\Z*h:@YJ|[_?2w"Nf}a4zdY#a8^\(mp~?"05H13Q [eDwD3ʷKR`|"p+u9.T4:XQqk rޡ,|#:9.mFj &_#llPpd8˂@9¡joog .#Z>`*1HPe#Vw}&8p8V kgN,.pu]Xև/DQjN2R\=_M„ -8 jk*&d!iWЭ`@SqD8uGj]֧!NZn tJj VX@CSv'>)I |5hmA0Eږ'~vس==)O{\E`oV#  K(> pFVb~j_֝p?wf]C/)CO}p.Zt_rƨ] OQAA)9@WXmOMoX1&h[>)a_ء5⯢[h)P i8/*TZn6^ԅtipek-q=k&ݫ$ox$ !ZtWG?ߗVG CC4ahf&mΨ(Jj@эfPihޢ:V8<4wa(~+]DS:`}nV7Ւ|f2W*1S]U}}ـܒLGꦟ ȿYaQGPhho/8zVy[C@AL%݊flR{yMM/H-뺎RĬȒ('Ylõ2A4q@uh(pJ)?IhՕϓL-Ů}_ #˸p޼o2=824_^NHtGg!UEZ  rGb;a֬KRl1nNҹY pH\(SGǞ$!<9ys[c✟Έo:ch*rc\`CE{lkR&= |'Ũd`'QDWƫZ *&H\eucvie@У\ a_㠓DK&[}9.xOcWvɐILGJ*%Ld^wFf>;^k&uc;BÖip`k80w4ә[l!RLngDG*kO3Aݦ2r*T(´6O6[,~0c(Y^^}:k7+!{*eph7JG'lݝ@y/R>#_*q`HW/أhȓCwa)ݍCg.&g QY{[%a"6܎ `BYUx :?CwҬ\vϋ !EE[!DЬĔG 'k" \qmp%Ω-_y8Y%I }4$/_)ii9jO(.k;3"0 %0lAPp"G#vGbhRgDd@\][{6sMuh'BШ^% S[FR92+z%v4cs# -*TUK4Ym;] $8[k;-@Bꆑα=W%ffU":@SHJ.M~+ZM CxJM f}"kd. =W  l{R$øaQ.uǎz`png!"Ǔ)λ8e!M!R4M$TW>L a{3.0OVAreMj |'p!=2Ϭ8xge$O\#1bG51Fبu,X.Ds* "<: p_헮>M(i#MzeI*NM#70-?abP:8?ӯ/. 1֋.W2mW+i+*V>4h7A6,U mv<= e  yhg[8gM(QCc+H9%WO<ҁ_IN0ɽWfk@0)d7噇b# I/$x?l4~$nJ|m]I?`HP{P?iA\N0n!V(Ҫj /B!Gliٮ|F,)A~>J VRE\t[*_-T^̅T"YEJ2/Rv`_zwE h4hCxhQRP {%gGY=5 rDrS ʫq+Ӄ>{-iQO5\˽ԥA(r@l?%,.a֥?0ī;Bn% Z| X]bD6OYk sy왤u6xQKgt!z[tSazQHdesM&b<=Ʉa6G59< Цg7q=-i=Z V7ZI'U{Q60 uoN_f 2Zf1RA{ĥ,IHElhBISݢ1vLq p򉠲O&IuLj)3lJESqb6*ֶaQאv?ʰg,PVR!`䶒7w6Ȍ;Prw|uCMce@/ ݂Nameϔr_8Khg1e'#ۢRz;ݺD$7Ml1?]^T`su)U( J`]$ -^T 9{/h*F0bRb XA]ð! 1wp:;~hvu^y5(-LCð[| ꅈ ['i`]A n|`<# j^wn}5FɠaaV8AXi1/w .i1ꃃ"\0?/C2B'u~lhWGX]sh#(u݇:?vO[]HsSzd0B`"= 6J*)w)'[7M#̋ZБbr]9L+Pٙ\s;dtgH bj`\S;_Ȝș`Sˏ 6T1d:T[(EYC6~]ˡu(tY!jˋs jRLKљns"Vwɷ_W 4"I ڋAVDW=W $NyL&öECLK)THլ-h 6W"Yy"ۑ#0!Pul]SKc4rjW+r2n *(yzl>R@\ SB3-6NP/'KC;jnG53zS?Z`|%j"WTfUtl"7lq>,5"1$jd⥛$VrXxX]Y! H=[Z}*oy!ɹ]J3%;+\b ,+r`^JsVL))n%K Xf"|SupEYŀ90pK}݇Ū B]]Նbo쳭*F$ט8&1If#7Q5"?E6SCeA]Y(|*R{X+V"|WV=|%н2.&8fmu_8sWaY([(6ľVҞ"f>{NxƎuA\(c[bA!?"frstm1M,01~t1v쟬M#=ڬ #y!hctš0_#O"g&kP"J'DlfKua3GLƊvȲS/ll cntAxc8;NUꋣ-v1fڨb.^/zk xݒo)}X*$r1BN ={VG,{%cbS;h qO7+1@|~^;0ӹ&sH/AbԃA .\dэt/?yʪŠ 딶'\{g {] :dbqC+9=;بSahll4^LMJSC芆}oaNʳvo,3ܾ/dKd x-ǩ=UP;>rw,e#p <w*}^ӵ <$0u-1Τ6Md]A z H}7dn[,يo}Xpc6; ݓ 9Av2q SB 4*"&ÚaN)ͩIkS2>Э'օzv,C8\ɵvOc/ӳ7xFB=̽UMS!!`XB]Rt_7ʯLgqٜ=rn IP& ^-|vhվfy I[--gh؃Üʝ,wOr/ko۫Qra6I` 2?7h?l?>u? fG;Ml\i~t[_vio?pNi <5n[ON`ܷ#JsȀςbCg(Gfe/Ž*<m%*cȬmH P e0oZ`j:وgOperPVaX ÿ!yP?q%d|S<-p9f>)(8SW#AqW m쓎3eB6BN6{bK)\gX6B0+6*F']OD 2wg:y;.Ibv@{$eỎe+U"{n'a;o)BMf^vu?,ܜbrZ! "9H/vh J͉Bhee9RB\pY2DpG4uK&߃|bėhT1v M\vk*0Q˭Ft #'ڏi 8<°P巚˺؂yg/a5Ev"GiFYoBO~h h3T44f)N7c_Pap;_KL=YO+7d=q1q2&`-:xQ^T&EF%}w~z;~*\M8LX lPeI;A*64tI,Jʝ ->3|I\,)qa˾G`!cG:mˬ.흏U+J@o`s" +q\B`?_.h;Fl+)Xxb< Qi3^`[^yU`^GLTa(+'K: [Ab;$+$kXm:FXh2 Ω _EF}Rv1!`:r/i~2H]s,o5Muo0٨$wa"hvYUӧH;󇛦Y$\׈Ȫp;R_!گuo:A/ywcwEk4:tmz>ZՋp}FAh\l<2:gm]`KIř7ͿkrETyrEx/qp4"-E[6ʼW6fx{#ܹ[Ԣ=@3UOuwƕ6[w5 "s;{%^ quZ&T뫢qYݖ;TCQ!ϞKAjp.=! ;_Xl4KJ4#2xW$Wn Ba&1+QWx"x! 3(KJo=3x0mX)vGTDŻn0i >]|5M?ߡ|+WʸεXhG<22LJ*J9@i0bGoA(<03H%768KI,$Ew*$?b3qLaJ0"ع2NMM%Ji*gyfRi%v,>#:鷖 f.ynzg[ 8b-ިe!vd0F[SϽ1D)[c<_mep+?n'4H䙃 >@\!%kk hCqVauTP Kۛ :`ؼp-#Yyuk"fګ7h׌@q=`^zX?67QTO($t]E~'eku (`1NAs tO7dCG"yE1LBδ=L=4z$sǚ`M03u2*u]A_p`J4E62 ]N6k,i))`F:C6 -- pH1@28TХ 8W,mѻTNrcS ;FwgtMљZ`|!,`0DK3aZ1M}}9sjXӨ!g ĺ1{ng&AGҝHP_vI Jо' dR+FCR# ^n_A[xOu[н!xFQ5^a/yz (6't6r"8UU4|9iLu+F(l];s.qj?|p,Z/HhYc/6Yԛ(ϯQ˓1 +EyoţHSU\.}˫!Vl[u7k~mHsΰ/Lv Qz `|*5 M(g:;cI~UW=!ng cQըX0=@w MeMSqbk彀īVx8eFp}MWXK(ۻɔߒ]n/%'+Q&=O>4zUGl_UTp6;{Afs5#,b{d5ܝdŇ ^P2bh] |14 w+UI_?|0-ɗ+hSU)`iO_cv_}P)q| &/~- c\*n"[E6 D8 QW\wu7.s&E]eb WJUOP$PIWH+>8?!Yp*%Z i'af.Xjhxk. NF${Dm^226 Y+wݻFΗO{+mJ<&vu>=8eZ芣'KWWzdn%~7QJKn$l𕐮o&\Atp "iUJKf[|E_Jtcʶ< dȒ/$4q*z`"yMD=~i-Pnrfj*wc܈s;잘' tw"Qն_'\̨̇M4׻B]o/:k0 B}l 4hixKħp:[>tT{g_Ðߦooj:C·QoUoK$*F}![K3k>W5d#o$@$ 5;;tHENLà:IKD5Eԫf{wCqH d*IKŊbkn+tC^`k 8kv)CDf,a/]wz)RUEMRX@IN4>*ov:k7Xtqr{&,p~H;147YHGͼ'`=䛘'6zg) S-lwZҁO'qo&yF)7jϒYI޵@ٌqi&c%NL c9~L&r`=q,o]+|l,zcl"̭{I_kLrAH Ji+݁b@-St3{t Ǻݩ43z}p]9bHUj,C>"tU0] ,"|k M1)yQ܉^51Kyo(ku{''4:TkEZx> 5]iO! cg1_~g_R|VҽS"kwȹ,Ի (Mo:ơK_D8 lKc2PupteEΖʌe".{+OpHMJ/a7+bz\߯CijZ EARklXi}E6oevYY-m5.( xjURXPPΎda[Z65N]Wo FwL;euch&9&d'En+>0"HjL?By)ID{}ѷCcV F!pAϵ!9nT Z[gt:>+0x~EapG)?K/x꼯?a G 0$hdfK][ijv|n#`l ؿevo7a2YDgJ M+R(d}(rêsAjZ5`7=yh Ԛ }ü2I \WO=[☋ yӇ bniy4}689L|E}戜+[mN 5)ѿY¹vZ>tY9tS{F" ֶKI 5Ԑ"AnzrgڻiHY#n}O4c,<fl4w81#?+_ǂ`+U&-PVȊ|럵=!Tw?SbϞHc/!8-Vh\Lxh,gKb+)j|.\ol[ve 9mLNХ>sřG6igsR);Rg>) u`=yvu^N1LS쪮aYiC!60 ba&2J orpܔTHP_-z×)bS)QⲶq~Ci*ĩ&# Y# T U%,0#A7]^v_tmB%~ R zuDՂRm&8RPB<6S!ZCg(9F͵=Nm!I 2E}:I- ̮Xx{f 3Y\p?Jb͊ıAhNS,jw6_ƚ`p~%dL)k4h? }a=s1-NM(֙` 2oPj . .Q7F1}[ROׇJ}Ƨ76NBdv! 㫏*朁$"&sf^6fP9/$vlXd[5!Q2Z =``[-P)Y]E_[Gd|c9A@V"#r `6@³n#z'/v %Ctyz<ۛ wYf=wʖ}DO{_uc4FEl$٫8:km}g/ơ:E11蔎X%D?Q N+W4fMnoΡ𛀙u!H#yZӃ`<N/g6 Wtk<12Ky;87rH*KdI(W0\3һulDOOŤmHzitd#>t mEbt½8rKI/ls'k(A4D;ͪ 0jUB'W˩V +E/U,󝹷.h۴-YKyxrq6vL>˥x/Ō.`>$\u\`gZ_&aY6.Tj#b3-a@`{tݖ9Ο^Yo&5'!S]j~/t^ 6]ţh&p2cNSt9ճPN;\}3dEca;=hayS,.+e-RB s !*4'R DsXMU ʪX'lsHz8S ~8#AY-t|[,mrd:[4id#e.nSMe*"zdR:oZ0}kysɀRC-.B[aW*=oo9e;F1j4K36+W bod.Q>x3eI7ڨ'lRvA&ԳU J2gWÅj:Vm̪ t Ǖ})o!-ulwQ뺶D3:mޠ;2H /f_N羭ļ-~yN!EzڟUIy ?3^&I-|,—pA?)Gy}0 N^!+]}-7M t}T*ɳu=~S1F"PU( $9Zo]A{ ֙xqOmeI([~ůcH}ztv&[L~V߫ȳ3$`alCdn wQ~ ttN97Y>a\T7R&V&' >Knx@hWTT5H6%[RU3᳧ jv7ESJ,n^θ/=r[JBL,n>ػ D~M[q2È>D IBVM}D=:|m@9~Wj;S @|QZeA>O&X¢+nRz*J^8_. mW>bo]1lq4d{ Vo:%"C ʘT`'0VoQ>aU\/^ȍl^Mk{{-6%BH(xaNu /<]}јGY'Ąf-?c>g{)LoE{GϻȾb$/yv5$Ay76=!#V[j~3viDQ"GI_}~*L{$_=y GT39KԥLn,pGֻ'p'YLmG=TgKc\]DM$ Ӑ|o(XƑ057hpP5hL(+DlEDXa̼ƶM΋_tch琽Ì$qjA'^;ճ8GE^(X#"S0bS맚iR]oH?cIc ޲3Iu>ygVH8Ȗ}WKuIb{""Z>C8I-GkZ#N{ڙ1V.;ki*jyUm"<|1 pIYڋi@;1dZ"r=af p|x+9  Nt0%sG/xzR@fDaoO{&@ᐎm.K|յ^_ok:.kh O{j/"+YBH`T䀧ma:8h: {6mE BDl5|1%|d"8-n΢LY 6}Z--.fw=/Tؖ f?e͢RZU;Pa:oiVt`,{tbeUaܖI¤ =x7I9H6A3_xඣ}dJoIT` ՎEu2 .|jFc̆P2uTs@Њ_+ӻ-ߝ"J_q>ICa$Nni>]Ar#TNZS|[1fx'XyV??4PDeҙṉgC#Z5<S J, ٭G/l (١ "t OвtP !=I(,*vK! d<>WACL9dS1so*'sdv %ܰ%VYoӆ%,{!U n١,֎L̪CXLL5lOdu\|E~ZsǙAsF9D{Ȯɬj}k3UB"&V QۮLQˍ^,/_7˷ÌCs(H 22{!WvG-9;AGϙ"霄+9@+)xtg~|![Qf#D87=!'R%&47ŏ5|}KIh^zwX} #e[\$:[z2?aʥpox]wzr㍧Uv~;őR2 Nes$&AԹ\]#]bQ$Z#4͐$BCe%I(0>QYҗ%q3M_%HҸkG"VU:(Cf&= 0}e&kyD>z)н|LJ.~HC" S|~\ 5w"Iz"=E_ۀkc@=:'Q$ɟ-&.uᨕwCxp=|vpFE%L;G1D `&"ys;uoBZnb/+~ؗ o6W~!3IRGF(DBLөŅ `8^W8{c|:y ŹW+fEđURw9q.Cr86I7/l՘="q?}<*x{Ge坷;#*-$hɂ?n!V%q -}?Y-bdtJ8-kήk&-ѵO7?=AHx]B^FrP|dE3|3dg2WqIϾ03z\b+,{}?]P y7UHP´4FCzFv4E+g'>_ l~ޜ$D#Ul)NXCu~Qj xdL :RA(72; t4]b"s??_bfYxP7]=W.̇H_Tpʟ5%E"!26 coHHpS0v6n 6<עXM5jA8P|_0h-/hekrYR58+Y *d]f sgxR>zezq|xXLWa r= (xTHQ8d%&SWEjKE[s2P`rpGy-QҹHpi;G4}3Y!zV7FMU+ï*Ǥ~Y?)`KYd'Dؽ`uf&^ࣶ~Ȇ1YZՏ_9H p"7 @[^Bާ]b{$7Ut !C- hP; Vk;u}s@sPcq֝)6A{dgǡj\_v mWD#[d(?),xq5Ƥ&(OTiWk FP]m.qyj1D*p2V+5%zk';ȯfZ1keub+-X\nc{|"MKL(/UR#ż8翓F{b>m} 9-0t$|mF. [{pc6?HYLR߃/t/D(.?$+GCo>[; 2\dRL 6,l5L8h,766Q+}:U߸ẗ-{\"kLYO x YP`DR&qԭb_g[Ի}(g?(Gbj%ͱWlNa V^DrǏ<1q5M I&";CjEڙSZX.ui)8ȔnjSS/+d!gV: !&OFIKr=bN!~y )@JI $oIHYWE<A⎷Fڝ&+b^zIpKրqW8#<6]п ;*>^al"Z'o"h\[)s0,Qh@0\GgB8槻ĩ{9[&) ʴ*Hr-&SQg".XU^o%.Y %G뇟ٵD3ǟGKzQ܊!\Xb7#'6.NFzhuk3S0~w 8m@kE(Y{FW'%˓$Z J3NEww߆]sR+xav>/wK:>ŖRkt-E| jO:!Ҩ2VxYj:B2PՙΓ\,lA?[G=cg׋ y@/l.,,zIVxԊ| #6  L{S~ZϷP*Į)]I=קG(ml4oyLX7|X&veӀygL瑘RNM$2YC\Mc#տ)M]=<8mS/-g#?!/{h&iڠPT.7ʓ&=uEȅlYStftDlGnwܞ.?)+(bQlpGp8MS29f Ggcak#U Ա_s4 Ji n (kARIŕRؚyR\>B$Ɩ³~6]קҾeN e,젍$=KV˳NE;^\Kl:qf%x8H Ty=%8gާ:Drs,)\v^/oʤZuqZ/<EF-j?du/ VBZ9׹O@"sv$cTYs B.Nu89rC1y)meJjU_D.e*.`N| %Yбu-`T÷e9Y!6 i:ppw,!Xbo:G<0)W=9(@k\iecw#N&'7K^zc6$/+.*PYP쾿v\}  b !|%ֹv$׹_Wq'iKDBD$_ ls!sH2˼AtD!$^?JjO8#J`3RWqSrfHM՗ Nt<$'PJ`Yq4& .@*8xM*.ʱx@^Td:^[m@\yDigbvo9E-@jŜ(筦2`pQPhh˨$JPnԌ@=EQqvjpC5#U'z &ؚc"̬$&ld09AM sdQ:L7^*U` m޶W[BM;5Y0[' q%2|B ww~ {VsHoOA}2i!R-b`6w*# ƈ$qXoxW;|MZeˑMi˕$1]1 dPMyFx Op0Q`K{![=HcW<7L~μ^&-zG>xhGjfH{_ yz2D@FCFq q#(P(3|c(V4oF'z>^ŶFȌ\!抓*sM;KUk4x?d~"  Fj)nN!NPNBGP}n zH-kTQ@~mADŽZVkV)euƹe_Fz:V &ʲu\L-`.u/[5 Q#zj8.Pc$k5]fhTҭC{urN ./}I/QOE4x$QʆGR ?Ws|m{g3麥cqN_E`cQ>&ТSg>cšГDnU*\ ~ |D/9\~dYɓ&OZz̯;r2D]_pƀ SB}v]'D5WR8Nį"@!𹤉ihU_14YۨhֱID{Ow'l!,9ʱ۾xP(:J^αgId#g5,&%V,mx&{uwqSa]ƺsZv| mcU3P}o;oImaF3z"ya.101q* ft$?mLw,>?dKc_Ȉ߂dclG wD^l` E=p8ji3%Qdr( ,ܐ$%h9ʌ֑ey]"B J:JpRH7kIFR긣ץz(Ϭ  / Z0Tv~| ї0nڊ*<0o˯ Xһ\L#b#=L'.z{SGH|`;u,Awo~]M Rn| z{RE IEx G464ҾY94ZD&\n8۲ &1qxvlO,yNru](r]9B ,FAI3jUΥESqH jG @w@̙EPo_\@3_AB`~^xK#6@Q샣uϾmeb2q=,%BU 8vT>.#"i`JE/jԥͷP+ 6忑S[~t7S_0 |3,Q)SgVNC+{&2p]'P' )͗NU آ\6/0UgBT-q`}=a(rl{'|<''g4cք0͵]7B#`}nj 65&]Ň }g9ڻºK|yW <4!Tp=Mg[9Kz5VB92CQwP(_2`y, 8]Ta'z;e@(%ֶJY0whڍ)p8O@v>H@K8Nvl˯k~HXNt_A ~ @Dh#bM -oTX\JiwPDbbug:b.2u,X{ a &/B$x_ũ~)FL? l ?^[U0M楴>ĹiԎ=ݴS:}Df3HW^kH_JG~*OYL4NA.qag\q xĩVb[hLaGu@ Zʱ 0d'U! ބNUz).fOw𲨁ϩ:7onf)\x{=O]+uA->Jp>Wўuh'- \D-p42Ieʸ9M`@ŔFϣYzFu7xŐ.SXʠ\Ly}$ h3 G yI21g Dюͦ )r'z)ZѶsa$2;lvL4 aScOrOKW.-|/ ߎ{+Lꍽc͂^8$PoYit}|DC=)Txyp K3`F1)hsm] 01Q]c| "iPJ{S}u![ovn~',% M.Y' w\W։++_cj-K@4bB.&|d%u^AA /ߔd@\i?+iΐorL=VՉO N{;k|؆&SE_| %}pe bYe7'|hE׫(-NCPvq9a%o᷿:|7Mf7Z;a}s6 `8d礴b2g B)@$܋VXW`jRΛ( ?7TͮJh"u] j ^8 T݇t ڣpg\M>VC{S=v*HtuHi#$lu8wJjpL'wbW`E݀+ԟGk.XE}ʓ ft 2Po$վծ$Z]PBNxKe-6ƫVDDKIf._F#N$N1f#:,[>YriNЂX}nc%_h-`p􎌭#]Y,F tXWBt+m"t^F9sdGC@Gf_/AHC؋IhS%Lreo%Xx50bD^0*ŗԣ+bX}cIirq-@PAUF\25caզׯA@:,07ghV65seDW dNUdI58 >j{Wñ>Ž$ GQ2y*cv~V>*%!3.τ..:&{r7koOĹvdj{#btOd%ߏ/E"k1+tdKqA-{W OHnA!6,rHʑ/5Jn$b%(D}DUGETi.Gc#A05x!p*P\Zn\"k2<1ffila"nBZ'77r\=*QwMr#YbPI[J U.L,1qhcve?>H_'=t~Գg)84jMLx趒 h`1vx(Lڸg w|<Ít`GL>F72Df R& knN&O)P 4Pqw#ϡiޮ۰XGi+%l5NAs"%o HKG>_ XlCDqDvq-)]EPkg łBǷ S HTNJ{caOOR8HfLjRغpeɝAoLv*rS.Nzn)={KS."k-pey禘#8qԨv^xA J>9$ R$ĬEwmzajt2d0-L5ɦtHUj714!:T$Mm#QxD URMw bH,3A>m} $Ph°DfV(0v!%f6=O"2knמrգ8F-X1!VZkxЧyxoKcъ x #ൡԩ]X.z6e:=@JH8<Gwؿ?1#,7}Vr!@8!|SpʴP@*ѩvU+u_:ČPi} `Rʋ@M &#ĩ㽸ǫa*.V1fNFXm) %ha"ƭR 9͚IjI=i3#a CԬ\#Kzfyl lD(k':+z.4v蛯h|3իIdBVI{6${1tDGz$(l0WIvG''wM ;vF(|TϿ$@?D<|v&)Eu4R]b!p"K~4d|׆FqP8, !7nB,B$I൳{t)P } Vs^|6*}!MWhwݚ! 2vi.h5eWүFGun@T%Qa4Q'%"7 ;6AA[Na{hQJ.EeTmI)V?ݰ.hrqV!'%O?MhVkmQz< z 8EQe,1(6>}{ڈY ~W,ѐ$eY!UeB˂h:ض<3դ9~,TVa{S'VG{lԢA:B-lj8xM?Ub%6ekIn`me~l3㙄-P{z.qld#_ n{Q0Cƛp-5MOjي&C;A.$zAI/r|K0޵܊saBsch°`{F^zQJbKgכo:h_j&/sǙZA9\#b?lmq>aC]3{NՆ'Q{(ɮkĨ  F ?gp#d_;ߡ;'6IfFzK(2v㻃fS'.#_eJt-[Vnk$QDqPb϶;2]ʍ ي|[cB:v؂.k*A &0 %|.8]MUt( AY_CM/K+J?zeB} )Y\uI:.m@Գ7F-SBS(iLyT]yZ~m<y|ؼ=1( .o8Ca܄hrFˠD%ybBTVXu׆A BQ&5 /n@E{ N`Oi~y{7t-9(KYl\WUPpŷDtdRH2'g^q e@N@nFElv r4JKM|x>W\V1~k#5z-L j@yl#I =+:q>=}aXqB,~+Ȥ 0:):F;o~JRIܱHL9\cY,G= kkg_29Lyt.G9X! ߗړYx3A({"%NU ޫ>g3?nbEB̧史[2Ƕ4Y#a| s舍,y 4瘳NfUܶz:$r넊T8淫r(My쎙632Y8?Zʫb`/(lbCy,5SQ:ųg ʸ.cM5VhSl|46+*(E[s+z`]mL[Q>dZ$<ъw,v}ۘ~m!?ci "Hw&So}TГezۚ3%@*ZqbŽܒ%*pc_m.Զ{OID3^N1L.53*d0dГ]OWEqs: :k[%n-l\sIb;g;hjm2w\b2R!=cT63e nU = M2yأmAFPx}*H>&?X\b'"`7R`?"Eo=io#ji\(^FpRuo OL-:L :*\͔ ͠ߍ 8l畳2ss菧.ȁU$:uI>&tDƆ ?^IڵW7*2 e" n{C.qfLpqeY.yD|ϔX|3t]B=:v6}>A_U6:%z8" :lw CIB0Qۍ` ,@beiÓle|rX X*א]r([疘[ TM@+.>4o-֓J ,-RuL)i=}q>X<+a(lċ5㿎pKHA)dYL;.b3b*3\y |i~k˷ RI#:˱ C rWacѧyD_UN<7Pd3I"09KUcZc7o-i. )HNmԼ C?h)_^}HL'=!F@m,!8Bj> ӮwJB46Τ [F 'J:vͻ Cf{z jS٥eQ "ٜ#[3Bɨj1y iZ^ʞ:Ao@:S9k:)ΡXCbxly{:%;ϴ$HZP/5g_d]%1\՘ku)Eɒ_6aQ*מ←Μ%e>ze9L2G@^GN*oŗ ]+'WɪkT@rzǍm/Y|@/F>Z팏ukq|Rң#\'~U拸R_L˚o\ML iɗav:]p^q #*t"} d]Z涣f}:& .س{xQYg`yB5(BylbZ"㫂~LI1Ʃ=zQ;}7b{~&Gnm7Ue%yԔ.+^3tf>B]L,ZL{T.eȁ*rvW'5iȀ֊8WhMhDGe:s## ~o*X[t03T1~רVo*= wu,wR7iPhǖs{;;Ph>6}@ךZI P'ҡmL _0uwAHhu TN-:6>78xH`7BDedW?\Arj7x ?k;I$4 k |pt*w6Zۗdw Y7e 6)> w_nRBYlXEGbksEwm #f Df3"KYk*}3<4h)&,qsf(86֧1f9ϵEbw{-?ٳW]bP~F-S -kPWhP\=o^Ŕ>47ƦџQRDSMvGuEp91Gv(D5ؒ(z Plk7'S̨ZGV"iAI]mqY,zXtȼ9ɨ:0A z)ar3VG/+R{.C{Uʈ>#ڰyZFwjE52{XbRP gE.0'0M=tyчM#7pq_hܽk$h'* 0{n38mf 7)n7Jym ,ʊ\x4ćfD@6]o= E,=YJ-svxEtjNދ+O|K£' TFO9Sbj#_Q( p(/_Xp}fP3Šoo8. m=7Oc}|fqSŻx"k;-$ B^鑞2˹vohIV7R#8xwШN +%&݄ 3ħ4f-7%,Y5Hbhj=mJ^wb[Ւ~GƳzh^5l9YGFϋ.Lִ3vIXsY^Y4wd?B.,edf`rȊR?0xƲٺ.kpݜ&z^-pϜ( %(U|d{O2-aRlу7:-Md!4כ:y)ӎ%H?kf 5[PS6PPĥ5/43;8*?f->U_FwJ5f7|!ǧj@)&UPdR#D~"ǕQ~y"WHePSk[#>GqbsF5zCK!hsʹKA'L.%P/ֺmU8F(R\N # <;a1h:)" bDž՝a`*!D, 4a!8* *g$bYc>N\anUiI`v&/P7cMB1Q~pRuFw3ʍOCG`+m4K3L #(HvrgHuM&<מ6$!ҿ/P҆y6![' s E`U}u@i[ ,e!d?'`g|[*J,Jq'uAֽ |*/QߊR9B?@TZG(U% HO6 aybnj|G8ƴ)ABj3W%6:> 䶢nnaA؉qQ vhn:w6Pdwy%/o/żcM'U7o]#>gi&'B zP0揀Z'5@b.^L!į(eMM%Vum]{.JKXM0L)4 #3]A 0>m.2WxңW UᝄPZxY!y?н!_Ĥ얽o3RUFz` 1^{hI<$lt4^K :?h`xWFF)u'F+0k]xМv eX`NMß r?IFI&CmnNo nסb *_<mrɿvrH /ᡄn&J%V]Q?G4y&4`7pmkyGfai30k(UjnQ{141VJ(SXPE~ƨ'%Sqv03ztX' *)O8)K}Lz%}&ˑ|r~ζrSQ[bLlXߖL([CQY8B.FonKОpVmǸFF{e:>#KIf^r?O0Qv\LC969N/6'|+lBW_qWawd<pA ثFs"\5E3U+Ƭco`+M02^xQ怓|}܎TvF.Ǐj q:&r׽GT2>I6`&cP,5$S?$-10B|7+~ACZX!o/]ʡ4 QT,f8upaLP_X nG7W|P q>dO#zLDmd#auy,}9!|/.1WIFGi ( 4S&Y!NaQoPΌlWWqo2ۍO#Hf&Gdޝӄ6%O5ij-ENF#zw 1G]yd%[ȨqTɃV^ Q(.7q:p`YlЭ"/\J M&oǖɄl>ܰ n B#—2&DNw:{Ánp_%h%З zҮ&n:r([&&uNw.nV,\NFu@l=J'G`dN$$JNAjdC<'H9YT64`04VP'9(-KvU+~[Np _i+["1͏ l|G!I4iDA"nP=[Yܖr' ůIs /0<8*aĕ@a҂E J%޶0*8I53ɖ#?#T2LB.t'5Q]mے-#Vb3oim6n1Utх66Ons.8HH tm\ڃ˳Nr~7mh.J_5dN)FboW $b%\+. 7*lk+ 9HEb3^܍3 oN:]̿ݍ;E(C'`܆.XlD-FAdc`&P[Tum&:]9FQdkauKaaL6w 7Xg EF{("-cc͂1!=:_,~1 *@{ qJgIo} =n3HĪ*O%ac5uB<[H!wYm5MYPy{a ᦃr?,;εP$/bAZ`q4 t9OFdkHU kACZ uGmgZN_`$!dxmBUj .4TǗ|yH Hھ{B%TjVS.3+ׇoqbPr[1rmxgHYj޲C51b!+ /Pc1Mװk6O:g$%UzT9GYƧ/>Jbhم(ha/#)K$pd ►t3B|1u"U{:F<@ޔع`DD~;=x@+]eQd~"@k Vu $sJN"v7$DBGS 0T#\jVl݀|g5 ,z^eQywgI\Eh"[os C5߀Mc?z^EWm<>iWl[…Tvͳ"^G>,Kے'oBy{ca(,1t!ؤzY*lE#LNނ1 aӏB4}ڽ =}|ⴊ~(VgWpwGZgFwurIur_74 "k_ItسS<(@lYRA\ˏND/|ɢ}s:oVG=I2ʣo-G=aͶՑLyI??P? + ¯0(5إ,1h{QVU("ia*1,5b6^/^`@fH'ye#RD|k`q-#\\2gM»9 ʷNWHLs^"jd_x\6["Tawǘl_"H0Vם45Z>bޟҿ3)_dP^mʭ0L㝓lTک| ᅲ} Sf-'TA_flZpgϴ2D Vv4e"w'T&Rl W$e+T&昜!ѸpρbgCx`6d#Kن# [nho>blm;>| ]fZ&.v1r[!P\|0{ce5#r&J*fs%]үOfYS~Ow@N ܧzzL}&1}>K?ϲ$yȭ*Ya\re)SranT}U7v[ysYw`xPoF8Ao}"\> 2>XiGdB.O~mLl2 ' f(X_c߷;~Ox AYj^0 ̯Q#L&᭚P<Ҡ872:=@:Q).ྤCHb9&ZqA;R~XFKM$I*`j׮ޚm"| .vՔk$pAս7sjAV cmՃFyOj_*$dTԀZ*ʠub HqfzΡ'+r`O@X:xV9Qޭ^rt V9TNR@K=pH%:e8S~;3 U)\F-QFnj@^HPmdc$Si52$Lw?+lx*B+ n}mn$R@{1Ƒ:CioZgwڪ?ؽmuzx7SC.^/t\]9v,SI; ok7AFX)QU=9/DӰzIu6zADDfȾҹGfg@}"ٚC96"ÐSɳOo!`jb _{eT!DA8 t6Q')i+-gP'U[7t]i2D>ȑ^EVyQ|]φȘԹ!^-^T9TI@lhmIg +]ׂǾ?7WYٕdLQRQg:A,Dx7^-Եԩ܄33ܯm N?EZiSc-7;:&3 m$P]~_UkA(-O.uC )7C:OЏש-a5o?ln"'vtR6XKյ އ*EQ_nB@b)DXH l*K>ȹ7ٿ{sYxC񫍰[h5.(_Wu㺒A1 8~ Pa5ouSbQ}˨D|5#Ƣ8G9kO >KF=H`RtAw_M?QiAL$Mj;aF#'Ōh I+2+p?OcT>gڿbW֓S<Ӿ0a'HR3 2\ڱ!mC-P>? U]^*u4cM͆1Վ ݾPG0Ϊ?M]npz/Hf̳7Zc7 *]u#HݞN#56:^/ twvD@drJ(^ш @>i[!Ӧ Od55j[Ǻ~Dil 5Xoe:?,[QkF>$Ma/%D՛hGGaJZ/%Q"q=F{\MĴܝbGJ4< ٕarw{gE*jKLx8N KI^ wEP [n !Z .-lP‹:߱q$N\-z%wwiqp׎(?~XoW8 7!"RCqmЙw%#bϧwEӪTҀN>X'i) TU>/2^L6GfMiUS kqX޾ﯬfGQ0ΧN篞rŜIَ}t&Dba\ dzF$˃FfG9XgÎmoAZ?%h;S![ޅsy붍|j{LkJiy#–] 9 Wj׺g5kԺ1I:>BNh$9[=uv7<:)FJK Ml2V^DzeO뜈cdUq{Sa'[983rPc{,0]fȟ9?I^^oKΆCs W-byΕգoE4D,b牭dW]GAki$-:Qŵ<4`{6FI{wz,d}=`:UR5Pk wŅ%{ !gc,ЃCv;TI x33+\>WM^r&=~׎5'PˑS . " Bk5q'Gc'}>֞}f:0Z p\xr2cѣ&BS´VdSZu]>KS$郉@r+*FnՅZ+?wXk1Ma*s*=Q9BBDWuńEp'x5^h'g/WK?OEٝI~uЋFj`$~RGJ$zCJ=5xߓz@u-Q!lл-NrNx>~WZC)|TAj_^2%M~S"ˑp )6Qg_DVEZڒV*@Pd!~,Oۼű|s &.(QPDIyGKvlDō fd akD|f5~5\}>eA8k>EI.1LR~M--B )(2WVǯ硶1_\C5T y;'@#P%[)J{cMG+6\C GCo-H Al×϶3pr̊vD- s}Բ/^-h)EZ1rjr',MhhGWfS-/n;K^ѭ2sijrBamA/B>/ɋ'1}!(d5;u749l)04esdF~l\e'Q[??MK廢<xPI;r ӨVdZ[۴Y!üG5)͆;K$?fb jrv*ҶkH4[]y&hEXrBtovFXUzSxq2ɛ @.oa!tkx F-fe$Rl3,_pHc7롙`% 9Q 0V2ۭ~=R7I /o%7S h_*[}»UbWu#/ ΅{dQulu0ux IcY,N1UMDN8Ձ8Ή4u J3X2݈sn)Vċ> 9ЈLYp_\(Ū?wLqx\k) #ľqt8,u)lEZK$>x<yV.˞*lrw[Rޟ6Ë!]цv6Niv k*L8g*LmMc"gE]>Mbŧsx}ѾxP?I\*(@&mhn;9s瀩vۼ%v017KYXVtN?G׉,}*7/4.Î( _E՗Yw8H/{I% DT:PoR%[nY>maD&kj塞u"nr6%FA+s ïnS8hmGުc3>(P{H=Ikc&Gkğ`:e"|_/ ${yw(KS[@>_!*0Vcxqjg18) =L_pP1cmA3 az֨Y!rJHz{ˋʦ5oSV)Pݦf'CSk:aFc:R2&HmћQXT^? M0=[)@٦Brg ]U"!w8J/ʧ] Es-nW${e]WcXa_`#=dY  ۆФ&6]gvd#[G@nä́ICE*c=8wlcϡӂ'^TZԅh%!t'}vB>jܔ|,v6佤lVM}dJeAnvEP. IǭY:i\&z?9)"FpDH*<ĝ>aO$ ABlK7=beJFscS N$ ΒmJZ] \dh7Bv}iq3—66jyB/Ն`jzHױ| ac8<',iJ*04nUɫ Q#%tUnbmc8UvU!Lnd9dw!Bc68 &]0CP3|-=^`Iճ oδ'>@K>qytW{43,6=y!3 K½Si w!nI G5嶊vI77PYrJpWX(+1DdYik[Hp@,!l 5\ v9,@D/B(;KdmS ~Fﻣv`w6:DຠsBO6P&kwSfuO<Izs^"ȹ:+>2Og"ߋlCk->xTp;LF$WddѻI*qvcOitZB62oT2L\$D{; hǴ1jފ˱3zVqO&{s6je Tߘ.n"v$s@TͪGbM~tx HX4PfBxbmQxRQATB剩?0oRe%PuIhc.l =]ŀۤ 4HB6$#i:dȿ{Ǹͬje.l>4hHAڔ_x^ #^Bo.[d@ 1)9i^DqO \O# wC6a'jgZ؟w Z>:=KK)kmn{e46bV SCEW\7dV7_~_ >sC&ZQ/4Cot֨F\I,wzWZNvx_iI C\tw )ٯ.NDWk^Dj2&^'57IFkO;@%abK\.ٴ*5v*cLzo Z@>4pVZ)ͽ2ӰB;۲+8~%%tn٥s[+Vcu?1?*ف,_&AdfAtE}QæA8t5p&â45'_Us->%!o[܉UԞmO8z|K%e䙨TGz89#^ʳXqUu?=H< Oiavɕ-VԘngq:(M04S Co?!/5S]DƵX?PTjB!² :Tk'6eO 4o9ACl# (A60Ml]: aal>]Z-V˷JrZK~¹ oY>_CvV \7p IVZ[NrkjVMJx GhC&F?hTC\C6YE@9fҀ( Nw 7O*iԷ |QO?ϥ/HAj'W5sOjE(9\fv,9+-狵Rb3R~ Xu|ҺG JÖk85]HĎ3>z$-U1#~X[H 2!L dȡ*S~Y,vy^5EDVp:cX=XT B UթFVuh6]Vebi,55*O}؈άC ,`r$r8AL>/(VwRK:gؾu?tܡjtܗã!ؒ(0Bf$gJ.%#D xj])V{jJJ*Na߇gU'pOC1cqJ_Bu+c‰0Ěc|Zˡ*Z2<^%K]Me0=xÜmw mם Y9mSCt"/84 yNV᲎%%,OM}Fh:]A7QX mR %# _b6麐V<=mf%Hn : j̅ƃxBy@t\42nHw_!O7t?/;)_'3F LRT(Ƌɽ<)l+;2@)v,}IGR/n,ل?gQ &ѲK]S pn@ f%c<"bhR!dS+:|Kc'gbr#ȳM_8KTٹde4&DSHTf`&I+~>!~PagXƑ`[xSCE#^4ϙ<1d^YŪ5#v$,kxmu&wA,+$N](ݍs aw)1?^@3CAuOgڴi O B`?!%r؃Z^=X=5#yʯ)Jj 0?GS'#*ޣA.{.hώ \}Y9tp,j!56bFIpZjj<+I,VAǓ= $F i(38[%\f,7U 0PFHV׉ГuBwf{:9 KD4͝XfǛ8! aTtG[ !UA.c)HPڠ_1,{3C#;}Ade//z5oCm"LӜ.'Al5ҶoU0*zITO<<ڪ3:=3xQwj<>J&9L!V7VhL g7(QCM\k/A։d77Y$AVG&ϰwkU(`?jn;K*bG:,y4EgbrYmӺ.i)<ؕ ٧OH%+ }*9C$6d_ߐwwX! J0P㰳\c S,e)FH(K5{WxDÆ^a8l Gptx%-|,3Q̆Fډ͊o}wAc:56x5/, ?_MiypCz slBeBXJTGf؏'~$" J$&#BZԏ}>wjq8C:שXmW)GMb~Li).}"1>fs}+DJ(uE"M]yu_cb'hp\ryqfk^$m{ŽVΧ"xԳ\ l [$cBCr=sJd_}T^ )5*ZZpLbС+U3Mtr?坼݉_sݚ'tlme[>18*>tEy`k7{^ #IE@UreYT f ١P$@p'Ҿ<(Jg)s6Xb4L `1dg^@j'%\i[7_')*miC;X̘EwќKR !H0EW,b/i_tU5h+cGuA:IY{),r5wf^^J,'xBM9У䛒 y 8)U qY:|r(͏[ܝ {LB]27h&$?Ox2wU]*&y\` 2fa^!*c2-}э*t5qVg^jW>-G/Fv}13RTnHA|k)u`Nޝ6C=ɤ r/VIkJt; qs[#W"knIIz:Q6%>VF˺mP~4@3IȸbVr#m*ִ?N@?h   db=EUi1}c<įvzn H8~tCB(Y/鬡U#fjjP4)- LR,B!t\ Bw-7_W# Bگ:g uK ,13A{&YihX$N^)A-8×h]kZjX@!`2O iR?Z0SǓ= _WLEqU//o c#Dv};?^$z til65kP2_v"k4]&xrBbLaԪT˭OY4Z(O"^O4 H%-dl a٪DbFY 0ҧGạw{~J4IGi,@QT`İ?x . čB`>¦xa$Nu8yŃm`bg:]xRp-DHt)h-S>fg 7rg0xn$=RM g/,{ 3q Ҍ[%&@1XZ#L֦|t's3hf1{7D}a QAWpeʶxD#3~&,G:{tE=R huGw:zD`eKܼ}T޹b@puG'~? ~fF⒇Vuy_>QЅAFd.C Wi9گJ-[I^K7'ȡ[o7g " Tj` n`T ]NFZC" .1 jo9/RĐsױSձ`(A΋FqT_,1wWQ#X%Nj"v;$|H]07z|v~S\~[ 9(FjUs(Щ_hhЭ{eR :VN$F45Tck2 SbyT/CGHcKNӲ 4=l+68XeAI#Qqhڬ5UoK<UOf6]բTD %=a <& <1Mn`O+3X7@?{6$wGAs:=dr(W⅍Ld/H* ){w)JF-%ꝟhGN];HzK3NΙ |jOE_ wr '¡:$խXqcC^)rAGΡa> ʲ[Q$oM\oh\"ʣԥ -kkޡݸ{5rL(JZt35fN靋;i'" 1<#1K]p81:۞^Ē$cG 򷸩} ubwm{Ck\ UNA"Aht:N!׫v (-$YHln>vZڜ6Hu /3Yv4J6B0I,aKyXN1a1rʰH*"8X1LRJZ_Ѣ9@6o x+ؙMjQϬtIZMQĕ~2΁;iUMAjmnľ%?'[ǁ uoFؕ1}w%8D> w=֭=dU?0.,'4 qQT2džрݵQG=# 'V *q a? W=RK|RT?ӞdHJpz>TJ-;얾kLiv/(' t"8b.:!3D*dO^ACI;" 7_CW_Qnڒjc%-%FeLjbm?qܟj/ 4™:ìCVeGbݘ>q,T֝hwdD_ V>& Jh{LwUݞu~tɬICqm][QAr3_%rrrYetм~p$ f 6K}t?/K.|#v]2.ɹI %nn{ Pv}_c҉,jp+]H[6M{#T"KqI7ˌH`j+#It;VrVψf,_yOr=MD5XXfI"b;je)DNU:KNhVU֊UdZfaONy?ߠ >'EP 4.ݤR*mIN \hXOk9hu21 Lq 6Ctp,(GߋNsA_ CIAD վ6뢦۲#jZd.FvDLjژQ+:S>NEEtql~@Eɡ~BYÕ;O@JہZGwI 9lSXFfe? )uy,W8HO]!q BT(Rd8&{Z3Rv gTtv& ,W*\(Յ˥>vjA!ҟ.[TL0RQյy|/BQn:!S{Wr]4vծWQ PNha cs x֝ ~/%5TjnAg''kaԈ|z::WaMd2tN{{+V9T紇uw;/?=GĴDá Z ՜,Wm VvK1hIkx^瀝{#_ [𿊑xBya:fcP8CgV}I>awsxUS[h'g:X_ʗ^{g+вJF5N A"n<]x:+I$6Yl_GB۩{މ*^)3hl준(!#Ƌ@M#R_o<@X! ?TvtLR\ˈw:!-׃&>T 2`/rzptשRG:wA712܀9.v0|/(+q͇"?G .n[inr>3Z%ݻpsxm +ҊS:ԙ}21lqՐvBD/; d8I79)ﬗx:`^fGu%\ lH NXo1;T`Qoē zcru:ml{.GsI{2Osz hwb?],S0dNer+ F[5_R&?S}$ހuQvJ-qcw_&q.;ý (>d8 ΆKYCD/~YB*(vެ۰KPW tp/nUC.ˮ#ּ;V)Jy!YBu򽳓/hm@6[(q?ԟ":{>g>mr/ ?IBC ?j%6jp3m馨(w/P;!~vumKdkyA8i]͸U#uJf<*( t#t?+@x KmlO^2[ñBMqo] G rML #5Cq=Ǩw\ KLrdJ?8Q=wو `Ҧ{g\Q#+ңD@K]?g[P\< 6o2KKڭLU'xx#sYe /đwdchq]EmA,F@)zPݚKS FɤxC}s7?]"ہ/;Z_B 3_z,1]>k%=+0wPm! 9`tEA }jyRD7 Aum=M||_^؆bbc#d*#5Qܠ  x70Wn54,zKP(Ǭ#h'l%?9n8ݴ`/q`T3NȚ1Tj !B?xFW&G$6 h\Wl06T=0AɦJp\alHtʠ$K~Bϳ9-+]\WgoEM0 o}_*QJsiDYT )aΠkeWie۠oәъF9WC2KLiȤnBH z1WFZc#Zka Y{!(6Pb8˂B Pn~-^~,?%|6O,_LpGN!)&Sw,*{\gYݳL"0!Tl3b@R=U\R]u+`ɳfoimz8<vxTg` 2u;&#;ﱿh %♋#CGuW~E8o~ s^"Po4Fb/yz)c\C9wQ¯@,¨+TPY,vP`iDA2|E {G-82+8FԠͤ2b_[a.l@yx%vK0 {,N V[1ct45 i|Z^lb Jj+U0u ))`srv*M+gDM:˱ы+jɎp{Єk/Kj¹ u%b1Dnf=LgM$ @(.C{NqkX~θ6A 1aXHW S{@k'_v*)$G_j}N< LXK aUrܦWR}T&"s He}Q2H'+QM =3֬M԰*c8Х`2;yJBϡ7ۡ2\O4d6^{*IK.jxs5`K? 5٥a7g'xA1̠y6zxF/gRwؑ=KJ{k!Ei"9Ph0ۉP6TvO}=Tk}ڱݍ"vU )5lȏ(&~Tr7TfKj4_P2 !@Tav]ٳEȮL{Pybׅd"Z|,pn1T6%ԽM3Aq={/L"4'8.'V H?SI&+fP|=sdtǬh Ûwqin{x;Oy?_hc-lqH; |pw"ӓiɗyޱ9*ԧ&^'peEjG  /urƠBiS ЈtOI`eH#I|_D 4 nY52$# Ӎz ZGx5meK<(SMU!>ֵVg aB94c1},.q̓Q6T>VeŒ-H3i ~:hC2̚hBקkfTZ ުzjƲ:$8&kb Nh^;s WF)$R"c6 ʗ@],4 *䛓/ٜprrR&+/dx- RIu-]4`2LeHe6җDQJY3dy"CR >c+"H2_Pym`>و xr@`>]yecU>Aդ[hH /PK Byշ }4K,>Em8Ә钴2L'fڛ5rlJ$p;/dÕ>'1 q1wX0sa 5s-CB7jӬD)#bAlj8Ucg]Mח'0 hRcDBa(AMx>D"0e$JφW忚8 a{v3rˉ9{N T$p+g"VΠvU tpp 3ZxnV/<iʘ!I6=dcF`tݸ >VYMI‹`)=ʵ3ZD),m<EM9m6-he }K1lȖnt"&[DFBñɔ쏛Ȋ\+\p,7(wh Wlj;ӮѮׯFC}勚i˟A3[ŊxTv+82D܀ z:t]59{͚BkSǁ]D%Ff;RQ~*pMmV y|d l )o@@t4E8-dZiOF?Ů(rL[bhd~(TCW)FIѻ4ԮRks߿[yzI%1LE*(憗)FWQ{ yΙ٪ =(Q#!PS$5wz<P4o1YVvegq3OLQ*!5s5)ϼc6#ĕ 7Dh oqMDa lS0lR .WEۭ<+h&1bWyw:6I4BZHbZ/">$Gɩ+z]o tPWHg ,huw+neDѿ<3K: )~qOeѓlk?j|F=-l(wDzu-S Wc7O**koț5* Zǔ~~@_ԙNky|j8_|4 j'+rPQ2T$3ρײ嗖ħsClby- ʍwdg,4 @#闖2M%CEOe_~N:ʥ48AXK;T -@[+#Ѷ#ǢgAK;o SPN?':s2&~gsXx%%_Dˠ։u93 |Mq*5oJo+gVX ɖCDojaƊctP|[ko6W!7)`Xi@Q/->{%}N33s.PK#E;f{l>M71:>QJu6q(kɐ=d6a @*#.C1!ҹ$n`26~K%pтqр,\\K@!FKQܪin{>m=8V^v>=y Nc&sF"l3b]q[v]"Rݴw1) ![xx=u6ZfnɺMA VpkcH~݄ hkoBXST$WY/EL'sȋRFou`ľz 6e7 {vǠ_!UF͂EU{ d:10~ NxWCZ!seJo^(G"Л 3+Bsq[HM(UFu;pnͥ -Rz,[_Σz%e125ꏓ=oeZ%k@2^]`4w7MݜےKR*? а!\Aݼꋵ Ҹ(>đDsǀ%TIl*_]3zrH}T,pl`l ;r0k3pr*P\ܠ.~/Eo lqGXUI`;X gzULH%Xа-`|2%&;1{NPA t75j/S:1g#MlqcWIhXj:\q@gC9,)|ZtAm >ҧX4 .gNoNcg  Q6@֩ ]np+PHâǴ~Mn#M"ީ}lW.YLGqAGk;U)[at,'rnCQ[l5[i'.]$ gN8ܰ30Yg`iy#1ǡ;Jx%PDHU󈤡4,l8hݩIiLt z;TX|kJ1}+[K/Vwcӌw"M"w%}Q{_?auwj,z5p#is)i5)(cn0իFӟc8f@rXŚl؍rZZ=3#mE1eDs$/0ٛKX G퇵qb-^݊ntˋv`׌. siΖD^Jui= ~t;{Nď -$4(ؚ d+5i%2ua&5fF`щ"ҥ +xg:y5d=u;^V 7K$L=LH?H?1Z6)^dպ,<E@5,o\2NfYurV .5{7+K3HؽՄd^4ur?ԁSE f8U-[uFx6eM2'w%zΔ*Q-; 8}L*W%v4fU%ۀ{-ohx1:pPĖ"(AJwF}-2gp7|n<n3Hw@Rq}tp?֬`NN[YhVuEYEM>ǒ1-A*;}ժ_Ц`wS #=Է- j%&&rc0X$&rM-#|{+sY=^k|`Ko4p<>9D[kSLˮzvڀ> sUe88_Ms9^׻c ['$nRXb(u]p /~j2ib n,gx|q8e6O;0@I^,.^ށNЊx&o9t u;tb 5+r\}NWS|o9`T ڌ1|z ۑm]̋Qmg҇^^o5b>8 0}(YaWWHSfkPA̱Zf $xc;T-{yq .zHRf$Sw}#}y *ELKkz 3޵.hׅO wf;=Xa8 2,J =T04p2(A)= ʓXj[xss 7^שrz)px!ofa=0EkžAL߁,U}@?Uh:G72T/CA81J=o\4 Gb|RUa5ٞXȝKX4X.I9lQ{`C 4ﰤ5I[~}؜(Ѳv馚 Vg)?o94'yĭ{(@H+ RQsf8׊ a]U>[#3Urzh`7cjP`g,WI7` Bլx.fcO, bSP gmwl @bZL|W%냁~}PPPs}/:%KD<6x$`;k@GB ?`X,Jdޱjy2UD6 xi񽕌#Z@F&I'-'يĂe5vXX{I/asIgDJ1O;9o HGn@=9e"wʛw4cd$:kdX͆DJbN차7-dRØ1VJhpD)X~=g& t3GL e۪irYc&􂥞fBh@Ho9W\(KT$Lo:f#B ]v/8Imʾ27~ul՟ɥtIqD"mT@8=XKpcȲmjOg,)WUnU2,=Nj"f8ĭڔfMHMq 8E\ll Eis&.Mub2W2l;x&>~;0d1XHYscv gg6_PH?b:"H *UT֣ ;&U. +|) E"S^W&.UfSÕѕ0c ~ ~7)8fY&$z"''?˺{W$ٌEz> a:xgih,\tCeexX"Kqٓ*sLBa)FLT_E?5ǯ7e*.G#sM8aFAʎh}YzB;uЍ| Ai? = n7n[Rt8mz1ۏ>&ULKB+&a$١>uut'c 0-:%sL f_["BBi`.VL(i&Cն= EPƚch6ya^)tV -!<-0ެj` >tFG[2dyaWrS}$5ԯ17-x LPjBy0K@F4qBm^AKsAVŗ<Tgo߿?3Qc܂j nc[6p3.uVlt""Z8p{(xh8Z':p$7+\A_v<_; ?o8bܲ>>!=o;8*.d0QkkwQ,~o`$w6> i fr2bR3:87XI"("~̄0JyDugp$i2!ZͰM T|ݺg qm5CGZi CӞK@ȍKӺ0/*$J*M^wgnqR 7Eڡ\A+bG3z)7D洬BU v2ٍ9G7.Tr]=(u,xc.Z r$8#Iiy}6δ'a5")/-$7 nl^n cQ:r6Xm4|zjXoyDVлm_;^z#}Dc Wо"v'4hԆ\/B c߈a'qBQBkʺHmT# i/OlnIgxue(GWL8PKYy$T[0HA8fLx23}q :~*ψG;sTl+!'?kk:E9(G%^@r`w?|R$曻{Bk|!3D&]T-@zb#aY¢C"UkOڅ~jlP87;Vct ]u8Kfw${M !O/6*}!Gv2] /SS4l.pb&.ܛ62 >\zj,ӁIplޠ6W)?jۮIQ&\.vR/XyfA'J HN [Փ=[p$kXnŐQEzK{Υj dU "<YIyf@s5-lFOhi8hk8OZ`BV7!S {bbmXpi2YHEꭄ-a1 aC9[)j)/P߾x[ɣ ;S;< tTg *O`h"ñNDm5Ѫ:QwީE4oT9bUC$dͩ 9\pr ԣ"CI;ϕb}AyQ\*ʹý4C;+Q`pѐ%h^@1]erlV[Tp [#; !5hz\!䆭ܨź<;uԁC@ al͍ cLڞ)ma'V>af5M{UYqF8 bT4~L WK'‹-粪+i7"&pb'N{`1c/HQVXU%<рrc g#ZOX9R@0a@9mᜳziqXւ_2 JؓSYɄpp>mAV <> ,^e*a6$Pj]"Y[JWsք( ? @*‡qS4>R*dM"cj6)pO픳{%eK'nV5м{L9K;}Kq?w$~߳ +|~6.ЛAlRRq}USFxW}!'< @zLTQvS( ?ţ 2(}1265/P`$xr$>Dd9ў(V(^ptr@U:U-?o"X&0\oL|aZ|]A+6 L+0zD񟫀1`dtHd5KSJF֜@>^7Xs p]ϠiD?Y ֹ'}Hݑd)#U-råp^.-z*tHCL`,q#`gI*б zS9E8o OLK uwxgM ܉V3uOH2N_hMQPwx%Ouh}ˈ"yD}}=g3sX+y{y>7F7F%LAWuj B>)ggQbPh]Eu{-uXi221|tI4 ~TW% #sPE4O!ӛX&xYz9d㟣ɰ|UE !#&;ЧϠ0NpZ[`KWhr4N(7v4Ms) u%ɀXEץACXN\goG -Y^Q 떍:Gxos)&Kmv2BT,PNFr3J FU8\5?2gEVϊwd{pk'=`ts%ڱ0<{p+n]Me)|4 709TmQ)9jX9f1[R.jIO̐𳅱cpj Γ[֟Nˇ:vAxʅs?-ZB?0'xPoEޯҪ*\cd8=2m3E Ś0-[6@3G9_1(5!myGhB=* C8al Ld"Strq4ïR )]ڬUJ! ׏7M_S}eݤ`*W𼱽ĩ&yeffk7zE'<zpdĩ.>[ 0 H@β,ݜc襛@NL|5yC{9w>tl´yޡzSЙFlZ!#0&DQF$5YlIk/B5 Dv3퓐Q맦!/F|aT#-r9b9Q0gA's3=YNW]E^vOי.nY?u_fnHRNU,Q.iȘN*}':q[+~#]2zTvyu [R#ؗ{*05i1v$.MGJv3h[ _v6kϮ|_Ƥ5Nǂ1_ôI]" <+?%'Iy~3 I$eyKbmT8MXʷdWK]f JPQ&aaקO5Zl2A=+m Yo`FY;%Ժ*}5 ``yYՏPHSQVK) Gi l9q9ݸ(wV~QZ 0a/&L3ZW~Q kTt:3=d@c-7@ʮʩt8˩TVyE\Gs $pJaDP_Jr b RWdy DxݗQ=;,Bn|Eu&r͡$:rw+.2(euVc!@9 cXXM{BB?Яޝ7#r~}E,D,я`gޮӨl,gj6**s;d.ݫ8oL W$?@|X οXeD3:e?[ϩ0܃[| œ%5IQmy4pvvb(.LG8ڢ>1+P.,bT N&+:F}}J/FWz2-س}]ofh&"aXPs3PYuFLI`jPWD9&NU'\C0)Hbz: :jQ Pvlq o|$$6΁QPгý w\6؄)iBZóU7sA }#M' vq)hb.6(#b)&4" ͗Apq7\N/x|Yvin<HPQ tEZ/rnFWad wb!vqv m:fneۈl`.x1C}NkZGΰi&Q/.s=9z}ᾝ1IɘLI `д}=>8e /cg l@H*Z-P'mu8_2rhrAW ifn!k;1@1!;ʰ{2b 8.ބW B12e-xLәWkT؈=G # g$uoR2Z&%l;; om2(twsgl[h"@P!XUG ّzwiq }TJЂӏ+h$e2g-@%?ϑ銰FX9b:M%Kw'6|>.9 &sgC({?+b 1҃Cp?ןO=o~z,ܷD?FphCI66bUVFT|-d.ky'|=aS/`{ki/vJ̈g6p丿~cD얩kH׋yBa=uF\OOńBy qrFL04 ގ .69{x=K_AZ]Fm4p20 KjYD7mq]ȑv~0qg>V1ֺiI H'4Rx*Gmi( ¹K!];]8)PWe)q JX[n\V]^%/i!fgf͌` xL5@RV&E612ؤy. @||\k;&];^|'+<ޓ"p8WB|ɫQt)hwq& L H +)oH;b~n8},pZ~wrĐ}s9I YU&l_݄.c`'~-G (Q]NE֑S+nabq*b܊-ps[#mP)ˉNvP7,mش@BGR&qR(V<ȴN y)O ۣ#zhӣ7 Rk !%fj2ZA.)<5C#;KrPC轲Kmd1Mq^^<95oÁƕA&,Zힹ" $"n͵3OWBa1ye$_J'l7wגC@U ;oB e7#"v~"9*B;IU4Tj4h\-[НGN96%?~udž Ht0P'|ӭI4z{v+]uo}`-V@!5"tCX1;2dt()fQSW6*1!$NZ\+oH'™34?/TEI'1"! 7ѿSVj}0'fO.uv._D\ Ɋ&MqLf1 ).i0 LXs^ոECع:ӑ,"h innE=0'rIly - v^MݠU%Sedbd'n׹!H{[5F:~k%/Lq pS;>/;sno4oPC,&!СSRl{B)#% I|k6@Pq;j*C^hD*`$WՌ]|~mheĤ緦\z<\ UTN!aZ^~``OOz gD K8B )j7t+}f6ȳSkOqN;*Ŝ vB7)k3@Qj LjӜP9>npdm˚|^:l@cIY ۥFݫfnE{F0bnR X[9Bֹ؞ $c&/E̫ VhR_`rDV{l lĆb*6~48~_Uc\/Ey215,!}KGS!\/2r]jR<Auc|M-lC8މ0D5~Ҫ'o<-c-adcH)Wk ܊2vfšǶ>u/˄C]SKM%6a54#Z骜NIضI t*0 \Ո c~4Z=oC 5;=̭oO#{Atx=$6RvjhbJDDueB4 =gWF{I4`dž,Yp%4-:?Է:QNz#`lJam|r$^-GeA ~'>jQy4Q2Zŕ02*9 O?ٲnkGC?`CqRvC4j:Ik{^5;޸v!p UD?:\XQ7\^oe/_R{;48B<^1]D =0)4U "FI2S6 r.Yc|6Lo|݄}f86V4IMD8 Ut 8E5P 5HYD V=E(_n^AZM [\dk#?L &f%Yȁ$TJm$zz&ԥ0;O岪IΥ/wS?@H|7Y| $,xW!Hnok\%rJd2e85kVί\hu&Wze1aZfșfuǾ]6,o[?o6%@q'T0U{z =:3y֫Ǎ+I,ϑ`r?&P75o*TPlsRa#{EH\pfFNY'|H0ة_.1Noka o5ft!AHpWm0ĉu6AS%Zʕŕ:^iKõ"X32 h.,jb?6d1ڀbNwN)LLML3a!2DDR:̂~$EY,vPzɃ .#2Oc+g &"T뽳ݲI˝f|yoT myZZWC;ҩukcR8籒'aLlyڻlѽ~} R(HGKvgl//kJz>u*7C- 6mQj>Wх3fi[?[ P:a&o.R> ^7}%ru Jg$~]Tdk>)B >ƼfiS,ܢޥWGPJ -s7 |23afwybxІ,zگߵT\v#=pæVIS] (%W~?֍QXC?v[{ƌZ b$UNOZ7.5ujГhy{8CZ( mGsvEb#dkzٻHLG~Ie! 1頮w34*[lH/ [3_d8isJ7 BYjhHt&CWk_Qz{ ǀW{?fObhў(¡! QR);\rcjDAj\2ܖܞ1 ^SRIʱ-j:oP1TJ{CSbjԬKÄ&b`\U)bP$kƀ:xBb ׉ǣEqT:Yz}'Zi pOR ^qR;y$,}] nn,ۜw 4 r/\" `aQ{< B? 0Ơu9DӼBGL{#- xk9U^({w=XX [+ a;|~k_M_R%B&e;jڞVkrZ6 j9ֳAvwftH 0) cC&8x Mp݀C(z&. ߹Oz};w1A0]&8&{7J~9Tt *AY;!㡳 rG{=:(R!,cƓ;'^C~n-fjU%ǧ>2Z|YOI'I@B ]eF*d3PL(Lě!f`}}#@jt' R@ >$[d l Z76'f!dze.+a_Z`7hs~ȯːfĩX'&2t xES79J?d}X].8/nPԿ1pxޠkuz1k_/J"ͤ mjf᩿ !f@JP5އ3;%vؿpl] {R(DkvH? g]8qLꤻvF`v{[dMR1HXrx|L|[> 5m0ǨO2x橈ÌaZَW+X UVelpem>j]?I5H _4+d p=XmyuT!fw;vY!L?[U9s*^Ts¡t0/|T: RlLTpc6h &"O?pa))dk*W .a+9n޾_X/M/x-ˆ_|)e=N"R!4H9z{E:7|H9A&ڶWЪӖwDǘFn4gHyU*V:cT\cᨍ*#ɹ:= CI*ϋލ0`_ǧbwVHjRqJ6_h͹UTi?mF:,QeA$BQ u*p!  @GhIB+fxVAkٜX66`‹{`Pj~#[|\>G4,)zF3ebffHC"?sC ;w4s4g_7YpPTYrAh:Xx0{A :BT^u1g/8[tj*MBC+"Tʏe( 2E_T_~9 Eȇ\5[fەI2]YU3D/μIlL'IH;aSkr_cAS8IDNf*er=9k?^Lݣ2Sdo|U)A}ÂuOOؼ?*cԗ'ES&J;H|8/z eΒ&mQOAN:Adtq䘤% h9E=mRF!m 'z*`=F5@ǼܦҺ `rt>q5PpFY "?z\o:`nРG<B҆~fNX?Nw̱;(5+,TH{4Bcζ0\auCx3v"vM mSXLؓ`DnA0yMkЖ{&Q EiFVMşhW/ZH0}=Gik7R{ܡ"k7#iG bA:[EN O䶆 fjcA?$sM}/M9ҾKM5I{3%8eTb_-kBO[ϼ/czcf'")q2eƦ৭} 6 h "m?H+;   ٸ  T F 2 ]-ºcMatوWj蜿8a3_ycIXt4^Ҳ5RRƳU: ɡk@jcg횚˚#}ұC}5_kחHPьE{Z-_rlڬܺR;4o;FVaTlA|]1܋NnŠ#Y d(8wTk)KJpW7O):nNM ̥rd1,݅ͺN>Z3򸜔+Eiq+?RM(iMM#칢O:( 3dJ*gM)"8{T8(yòdN!+|0,AFѨAEM`İ}7DaR}w >~uW0 vۡ3T&sl  HF-b!/^yܲ)2Ylq~[J^m0<n"LrmeNpwӐcIu4"rPRU|= 47%, D~-_Uv&A+#E^7.viސZ"DXLOnzVS',t@u<*BTnZ:sּZNqX-;pI3XhO,BhW( LA6 7ctWhqƵgvdb9`5c)F%Lw!)[h.QLFΝ`2Bֹȣ|yYq\#XβJ ypP%1.>q)gm WUpZRJz~c[V3VGEqh ysZRtR8=RqьV_bhPtokV*]pR>IQ:KH[َ>-JC'C-E2Ay&veɆJ2[(ʹ #I l% ?`Ji9R5R2b}ȥz CW}N ^_qӼ,7tPQ_Ȧ"ժ\ߞ$ϸ'Wz|TIL.c"s^QyN19};3xHC?K^-2}^"ol藍]1k>IBNm 4Xx]pr֡|R!H vX?@+H`k7 (u)HyunuZR~ m挢^N ];pmGҖ q(5^x\aC*ERN7f;5(Khˑ/bF ,F1 г"#Q #>i>JfUC &МxG4;Ph>"_TݶS;2H2=!|I ~1R?$h\_\p@?6FN3ٌsq1_)): ٭X/ng4#kpCGo+`K D3,IVFѱV룤9\fBJ>9J(iB2GO|N~ ֪OBL!0&+c5"q ӃbbY`- wac]6BCE`L5HrxX)d7P)BBmI8o.gFx_L1qӍI@m6KhO=^ HU::Q[NZt'XE,-b>]2JCM =N{ v D k ƻNI.jgR|'vBuct?p<ѻmzC f} MBNŻw} p2[hvߥ쑟M>#n+@=_X8﷤ѕx3jf̯bM+Yl[K@پ _~BF0++W\ sHE"3HȀūˣnrn&Dtij:8>lʴ×+ӱ>%)SgD6۫F? l9$hB׹$TtO X =DV瞶{bP!5G| Mq!Bxv kJ'TH6bV7{EI jPK](5^ J@k'y}g/d1ۏM,lN Vg󏢷F"]b{LCF|7W7psP9eʟAax! eSᾁ6kQ汓֜^ b[8;LD$O¢\]HV(yrbmzkB$T z+3.jcNGs,>^cb%){]nH]P"Cu 8t9Yp?o)ӵ&a87q7D(Ŗ`".dv{4/ff"hEPHc@) G B\̮) .j}u2jfc |/u|q>L(h4sɖ'rfcv֚S$d >ǪRp b".nv  |O o8uX'ֵ5OԎ.γz߮c*%OLht5=?3)$~`[ܗB<j[H*T պī.5XQ-_.*w9`1ޯ=݇m=`=(k*>1UE7~y:Dl9/ u.7Eo'ۦ=rg⨵[Gq:np*iYIPh+\*A8 ?YnISS@N/hY~wj#P.z9Í{IL<7d`^c.3/ٽ#qRҶbk38՞?kv@7zOoTUw7VN^I9$ (Gt^HgWQÂ/ɴ]G@@ StSMGq$HrbF^"ēuX ?'y$EG)!TOجA8%ϕ65V{cp⁑O%|ֶ>y4 ǡ5"CHjRRT1#{Vvxl SoMh0],0` S;z?sY<1);VΦ)!o;^Crc˩VrDx#6~=C.gTT>'T 3Ϲ4ྠg{G!3y&'T&ы?0t.pZJ @r\G BevFr ۯ4*LiTC0a$OWSJwsE3E%{_^юK&b}?UnÌL8WɖƻV;6- :Ɋ wKW ;ɏl"qR!?d #5^}PL<ِ^)#Eqc0na6sH&{Ï tF @ ~ZXKy+31*‡604e*+<{>x[@$ A^BAwhJAUTq[8&Dx*.q(8\-&t;gϡI,"?e#tl\*m6;ݬ6RUw*I\V3`?oFSI` ٖ_:s扽e)bbn.䟍z zI6w8$*3xj|HF_ExU#|h sP&r ַr#fgt>2=i'9%!Dw֝߁ͺ|LcC{x(C=:U顙="@RƖ`ՋGKk)x#h \h[>>cC#=q]ďTIf Uel7+}.U͢!GoiIEv:Yr,{5*/ HSݢ|Rb'ګvݐ2aC.C}ZP[> 1vV/oZɃݛf _G`A&< <*qd*42\"&vѽ3urnR8dSMúuهJ4d#~ׇ/QLOCP κZIS|iȧI8%N;yugI/r?ӉJN#]hltnX؞QPC%iDLA.'K0"$9LZ?g3CK5>s#:!͇~kr|DNG[Ѕk:Ԭ&ӀJRmUm pIZquv>}js!?S]w \uᪧMڙ:5e @=o x mE$͕ NM0rC]0pO{Mc~A*XXXI3hfӔDII |iR#l<{폈~"ҧ4ܸU=ɚ`J8cEB,9,=QOP{kI%ls[aߠڞ`J()mO{gyRXur3p9O~J?Ϲ~N;)"H*h5+%fv KXl + mo ŗ:VIaL`̇ ~ՔphO"/qz g!.x=yXaQn\C}3kjU)]:z:@PnESDNAPV#>b)QX_K2}-pwO A͹K|g!Ri3HYKz$:`dhjlŗeut{AS_n?+8P\h\j*~jS?]C]:?`w] ilNJUA8g$\s)olƃ hvx7ð|df`ϖ&eqLH/u֊9<ܝmņd͓w@D,O#m *ЯQw]V#c># 0˦#|fw~q8MoWsNPn>8- xt"ۑ9U\]UǠlG2IcH3g+8 eӲbpr*"{J hc/a]4QV'h:߷ѣ3)`)}YCۯ 7Tf]o~T+ '&I]^SVo+O G0?g >Լ cS*s_>]&?'(ꉑcڽjyS=aTdkLGGa~am.[,g!]N[;:=/59W^֝0Pl+6e7'_6 ?1 ra.m]@ C|Qg0:N)Ĭ2u4 ;dॺĖW`<6?R [Lt!hK:"H K>'ю}1LUdSۯU2[sM_|-pP=D瞀Cnxٵ**Jll8 aLx<&6w>n+t>?Blinm<*õ9zHi۲i;&a(HŃG+Ʋx);*rU>4KZ &uqIQ[KDp aҍB '+w\_1@sRHŖ6[?NhUYǏB3[> +-Ӯ#k~8Y8'+lgĥ{+. 8Fisg)aNQZ73Yv&_/Oq !2PkNf%-IWpn^(bI YHT5G)l_@'v4(f N3-K\|!=["s&H$i? w *5n0(ͭtvR|F j_1nxq;̩w{{*)- ͩ2^P畤06Na]MC`kJH.ލv ` ~|KzRBџU48Gz= N#~eH@s#=*'B<u8qx'AѣHf HBO^}e[m&<,{YܔF>3vb0x?邔ΐeSѽ]#dmOP\?ǡ0?1~9,G3_R M[;,vJ>A# M ڑUVM3?n GsbFKKgZ\-e%/6Ih몂'i̭ԂDةkC,ӘPbl7;ug_n' > Pu@yg8]SRlJh6GzI”X(Ƴj:yt.7 2N-&Ɔ+!Bknu%>v}d .L}Ykz{颠¸ A ؕ~ ois~$=w:zV.x/%3etR*%_Ȏc2 :rE+OIRJ~!e vp~nt;Xelwbplm)=>ۋ6AQKE|=|BFB-_;SK?/ 'YlM.jw+t?,7axKhBgtk5{di[16I;8` h'X4Nao"/.c*>˻RvD s9%v"g,ͪo!?|(9 8EzA=ͅ jȬv2Unrqc"FiUoX+ #Uس׏F:©@xjT*dNb K嫾-uWVB>l J<&Y&t3;>A5+gq .Iķ[E,fi ΨjZqոlm5T%aj."(|rJ儸}yb2NւAO䛺!QoUY64H1:B您!hU5ٲᷥ_>jvgZ뀆&](/Q0a%?6s}]B9'_ YNYݱdt 볌Ieֺ9:! Ùf%:uh3ЃSpTU>iX07`l=~!:; _vN' ͵R Ahϰ)HWWt|mw`$I-(j,axk6F:̈́s=٦LNu3* lL`k7NgOqSqfUjuRBe 2p{O<es!=_. &"Actc}*=<!t&ᓩtnP 0 xS`%z"J[LO__]oLzQM>p"ulXya&=ܪD7xkGqAhga_R IRNƄٴ׎I)jSѨgQ2e~1WxQ%]}@.VZ"&䩡w=۝ۛ^_LQ8&lF؄;.U$g7=/Oʯ}OH;#=VL&K,YH{su=+NFlפ5ˆ5@, 6{Que7P~^u0;>w`򙮅v$U<o3T pXn6 g(hU2x‚30G37(H|jRSe[u\m{:?֗~6瀮 j.U69 )8b+ HeHA;}p,Ou έR." wha7jq@mh1:aB!xEd/Un/g>>b=qc"Agn3 eܦgA0 +J=K)&mM@TYmTZ. T>:[y 2ZSy_˛*R|Ecp&0?=ìKAYL|f:bcjS4`w<rJIДwݬ5BVd07/^xWewi `]cgjG/ $nU),sL0HSA<@!)\\@x5Rl|Q^ aݔԽyO==iͨF1&}ϓNdUct1x栺lVb.=ܣRTI7x$spcJ;/q-*) 3 ^lș F;GI}Q1XKM 阜|`G<퇸 @\g_,EC&"ք P;m_"{*->tT&ȝb#w:N{N^Öܙc03T!Jj;=]dɼm&}9̷Hh}R3 e(ܖWO,v M19Js\ Kh}&,l<;~ F}aS6Ц6ޟ2iy8*Le;K2 V,K[ټ"[B$=ǫh{Z-0בߺ(C۩jB\[kfҘ|_aTyS2\wŠcۥ2Ӄ;B= {POf8#8beJ/YªfE6kOأHf4ȰmQqMSBhPEfg6 (j1 UjIȇLSw*#7(yyHP(%/Aͦd}"Ik"G/IJ]px"^U*9rOHUcV(R6NT9Fe=ro8ZΦ$(ՕjҧLر)5W)a)MX/_JW9GpÀ~NH%O X6dyTştd0Qߒ[mLfBn+uɯDNY N.z9KXF63j^1*͜kO4J?gb/:,Hi jN'i6y2WU';e*؊Wd/uYA>˥8ii'i?F\离e1y\_Of2z6 ̴"htW]Cſ+ ƒrZ?g߹N^IHځD#ecըd)"vE7cC/"SչpO_)b vKr +LďVrbsdMH-IR3|zkOf~QV$S|,1I@-pE.Fkfg@(dWF}HBAkl(ja0t$שS9-!x09;H7*\ځR7~\!9YifS\|6e'ڦ/K܋bq:' ꠜGJiE`XS~i*%x,9whbzq$,)z'B=Ґf!>7Sg&ó<䅀H*dI[ ݹ,Bn[*\Yv&19`(̓@]{>C33,+[g$sذ>TJ0F4ᄢea@` n  p2ҾEQDqmF ȴubp ֲm@kޙ+ "!Ϋ)wW3F76&$w|_K?>loꜭ=)ϡ Gmߛ _rV6|ŐE &tQ9.9$B(1i `{*R%ؒ;P z;1 =~d]Hտ@emLT@\: 9G"I{J#X:Ү5F9!33?N}}m]29C 4gk 3fX7~£Wgg1O A r$rkVLj) Tlyʢ"<[_ x2<8"h4A.i@Ҳ~? D=y=w['J=!0eA-M >! % Dq*>kSRG,#O)/Sb@4рN@Xz&Wl|}E֢&R xr/$gAeo/ ^N+;U@x_IHM5,tׅ 5E_%"0Ǡ J묦6ew/kk oe6T#K+Y(F29VFN]9&0m}]'óciSJqE)[5V(-7\63Gµ9t ՜"TWD@_sZGOzn~KzY^ fgpgA9M.ҞAkSX*\a:dxI NziTe`{V&bh2FȸFx5ϒ%nd@•0Zp>+C0MoVt™KVB> D,hĝ@cJ*_AO 3-h}A%ܹԨ́n5uǚ˒gԄ]*E3Nt>w>-)湙wDOƒz7]x}i^ !1] U +EW<_n]t+i5l.9pYβLh $ڱQ5e !:r7_N_Ѯ t Rvٻy1ߒ$ϒ.CmS5KB69u-,Xp܍`䔛[ bVe}LL nCgn0d<`j:G:-khបji#ںoJh(g. $̷YvUP9'ɓu(9 Dz|.|9M$wsTw۳m4mR.,fE0bNNOF@+6#j}u}T*he^kP#\Z=kKp +]rddRWi4܍h}8ҳnK](E:/ mX;5Soy{52$Qךa܀07tL̜jcژv[VC~˴Iz3:qƺ֮\r)؛e% '|:I`"EkCbG;Ө8~ 3 GwD_w,a7qRUqʺ%hc,gS5Ꮌs:͉6@:tS3zQ$mC_/y%zS=o?^D~@D K:b,Lyra~s]<3# zm*@|fzA˘Z/$dtuj)4.>9hٜKwW9ӂL˰Y tSZɧn&@tWZ/kI3dfvP:/W&sĐ~a^^{fޓF[fT]D/jFvn3 $a&a?3<50"W& D ,з:IZp*dKe@S(`.xiI$gaFcƱHjP(A2g&!e}:AWI 'SM}8f))7n%RǬ'(zFi*ys0Uz+.ѳm/p["}H'Rџ!eE$#=ڧ|E5L2PV2 !*Sӕ4f" K̪k; it-)GJn\ g\S ]@`!Ni ujlJfOCGvv5M"~_܃%-x]4D:ߕv+sP'Z4mg/kĒ-F]NuBaxȐ!=<Ȯ9I-OĔnQ0Pg^EyoUn+DDP;{Ql8nj}ƨY3Wb vhq"FP#%!TaS h6ʒ0Yq f c`:GpB*"ǜ llǮӓ\q` R$!E86˸*9,Uh$tQUmd~"~ggӊyG]m.|l/jzY媔-H -eG=iRO(0؋)eQJ+d_>BUG1zBCo\J)?G(Cw||Ós{F$FS/A!,іNS" e!Z%;~ډ\75p%/QS=7EζJ{$mITA#4ġURb8icĨ+P xX^il#h&?rֶ*(Z4ZWPm:Cm`SMmN_ϧMi#~XA;bM1kn[c 9*'&ʼn"(2=Q+Ny5qG&_LwD|Ґ]gB#IA DQS_#Ӿۓ2H$fF#da0wc&.Dȧy5޲DA" {N& %$~O膘Gʭ?ORdjFIR h#H*$'\:/Jn^93+Z'RG6$eIR{zM``sڌ 3^W߻`dw>Q2nȡ %_s,0K ĥGB9)`X< >7'3/#JRʆ{l)&k;1iH)շg@s;H_(_8p ~ڃ7ΕzY4ւ|)S Yb#lM8R-uV 7Zͣi:fT%oQ!p[E<8^cvs|DOX3!3+H()#/&2. c+Y˛'(Ay`TĨNSjs* Ciz8TmȿSơt3G4?qm۴;R >by͘M(Θ4gA | VM] N|u>54 #K~FeVk<,Q ý$:̧Ac.w3 ru6uKf 3g?6nX4?%=O[PL`ZXC~5"a`{ən.LeuUMucr$ADuE $b%v&qx??Xm )ni{zظ2"(E]Mg|:lp/+ ʾ]=8CKYwV {^]z c׾:r[]ܱL-Tp}L3{hn G~tF୛~@( "[]#JBv$nH$q?BHwv`lU(\Rz֦޴m~ A>Zj{H@u4΄ Bɀ &{ sS=LCrV䡛_cg+Fxc3cj'3/ 8TT7K|5у* 6JIBj)KjVV+48,20`ܵ%BǓk6="+h&!&*F.;#d,}J*2>^H{VJ퓐gα&ITY3m_xkl!ѺeH74V쑖41($";±7\3:c Mh#x*:l/0]|sCۡZ >Bd)AoylD rI!DȄ#e)a;~Jv}Bhl%ϱ8"O9.a26Ylv=XLhs섳e#Ű"I&* ߳#IZcztzfD JDw]*ଟt}tnތ3ϴ,D>IT>[d\VGmMm1 $K%BKKR{bhᏱ!ɤ y&?k _>Tfs269C#?+)A`O%JxivSSՎՎʜR\* !M} X!2Nos)e:D:8 )q#(!P/~J˓yoH ]J]-Li E{]&xM؃L°ηGj-K}Cg4Jo '[3r!diyy_,i `?aڅV8pCTNJG^rqcET,HNKAzH"rqCbf)XֆNRgk dobÄ_+G@C'j_ͼ 5vۤGP] b[@HA/P"2q!4FϸO(Fs1P]<10[ӟ}D=;Sw]D i/d\`.'zhN!t:%ڥ0.u;_-I8B'BO8rԭALp2d\p=eM4 b8oH(01C?r;yOKvM1Z>nDnUuȠWKbi? Dj/ܯMGpB!O4qg^AW܅r(8skA 'g7Y2:LVww5u Ip͝ oWatIª4U 1V^ʒrl7FS{4A̺T<^VOݔ"x(.`;PNmDOM]Sq <*LX=q#u^MQZV&"VcqG`& NO:9\ 6 LeMB!&FyO mɶ%7oɔ켌u)_?)WC`{n6܋gÙuJW;xƥe;jꭂ oϠȑ ڂ8r?,ݿ[,{]qÇWE ps"G’ᎎv]KE6)9.Kss]\k*eBItT:gi_{Q:G̊ȮS Q ?o;; g1H?6 _˶B>ѯ<ƞc$Ou)a t"˚ImW*K@earup1"@0қInE]\EM=[$iFA$2@AI凊됄5NVfQ\2'Y<'V-Ie+WYiGi)^R1\WyoB@6 )"=ﭴ;&aPv-gkXnN;7 &;nLZcY:kzȷt[Q3"R"sI8^F>дPj5gB%_"ڴ}IHULunDَl뤌fKNp8"Al>L9_߾|9T@!~tkv]w Cً;|;*dd(yn$d$XUI`=;8X"i;3sEm.f?C4A]켨,'ؑ|ѐ%$N<-p*V΃,u^Hؐ_$S8 ϊ֑R LK~[Wx<-ji%뉍7=Og"y>}]s5CTi*M,*(]mGjKl[;-qŹgt=h2'5[2|P5Qmzc]dꂿh8j`B,x<ɦT 9OUtjӵ:OZ%ռq@rQ?W$;OGT+Y i!ESz$5JѷwbWV> 8KqTy4wm 7RG׮e2K  2%4 <VHUM/8<ZEZ&SvʘFZ \mJF*Dɗ[p%o?R~=cثDRЦFg q]:cg!5*Y%MP5`Y syφz/."q.UJ!y(A{R/x^\B)nRqfz:<Î6im(" yG$)Թ[:KV'7.EF)B6s Кaf!k6. ,'HA‹Zis2 Mx, &k<0 4%CJTVlbA.&P^gVg[>*aAC~F75s>t+z?+^E|,˹mp֖Ļ@p`j8*2YP&E1*:5(|!e%Uہ9K'䟑% t F!Hr#PЎdz'GD;gب>χt.g*x݄P>SuVgTQQ:hI_rD8t,3zyqɟY<$tL?)T3ORpbt]Q XmZ `{)v,x4&{10)d yHRZOʇBF(J ! X._TAu`X6ʐʹB`xCUp˛ sPW%e,g]Oc~!lkƯ98] \|f _Tƌ+M0 *LVp3686?\%BC= OׄϣFsMUڣ r*#AOt7Վ΀S<~%ـy,IrOu]zj Ob2mҿW-U4嵟r3|e)c U!2K}`-ṮqhA# =i,\Fȇ]kiTcw>(M۪{`3p; ]ՠ%?c%ϔ^rq36-S_)FH8Mf1ȡ( r gxd=u^WM^tDz;yYޘ།-&]. "a{~C]SZWDN>ph%Q߷ڪZR^|YL+C,}+,YK,;oB Rx>+SGu5$E3J\_Y .oxbo{r ^yϹ+;*Pt,OrXTDpujmqF]IJL8m母`YYɛѽZ[Y[-_ZE4`B8mtq$ Q*2W,`{Z[dJѸ>J|&9B;_} ʷv'|+LD: Wp nj?u ,ۼ5^?7fK`!!iğO.h]¥Sl2jAjQ,\r^JT"VbV#peayp"#!bdv}y)M4~S5n 3 C' ,)La̒CZdIu1?ުdPnWtTT'slD"w]PX۰N@z!}Mp7]K,CWrJ㐵209@씴Ǫejkgi OT$+œD>p_9fL,Pz5j@Sy?7*BzqN!9JGD~sykK5%͋m0,/}˞ }wԇ@.0?bۧaoYUAĎ-(mT_; ĭpj / uQSew={8d8A}C'}ȅ}%_\;?t fn)^Jk?\axF$)L+Utx`3yT&I&QJgfz o8*FLH,񊯐?6]:UW@eܩUXC}]weޢ1fd224KL#E{b܃f|W*9iiƊQ5ͣ0D9X42ر+1똍7^H1/45"`WU"5^1ĻV4jci5il*} +hѹ@~MjPθy(0jC;u`3Y*#/0@ѫ c;d|lnDžx3M/rq!R~ք)!2S#l%T)ZjRnݹry:v| &9cJQ&;H31Z̙~م3FQ~}1'HV{za^ \4R#ݱyR$ Sml\ROo}18Jm#etANgyBP iusjP LkddlM]]ݭj}~C( #}F\ 8<Ҕp,4Emȉ! =۱ %覥L+z:12#LGjU#F Q"]ڝ~x?=F7٣`Ugwi(*_y׵Z~;bIHa]\S*k:q+Fu Z$l>_*)&f?ao;5 v5v_\DW>gz ;dKB/ԲxпDD' @*Zq̷dtFDlW,T7MCKx f$_nI!fY'/ht#R'̥. "$ݚT/o/Hp$++f D7QIiD;>#{Z]1Ui6qP~SC\yiΙl 7I~ȝ6K‘kݸ 8BB1,堭EX,W~Q%df( p$\R +@>쇅ygkW4k `Ra9U8a?^%ʾ_ yuzfY'#,<]1IWB#3j`a3߯=Aղ9j q3"q\X&؛ n>F"Z+sZy\յYvl<ΠTYg'ê6;{:@(:~!QMuSpmFM|~qD]>7dv0[jӼ2g?s֗/{`k S̬\̵kpA" .J\He)= |L5Q=3X]4tUcm(Upob~0o9wTt=(C;j{ &)~zĿ}cn,چx5;¸O|&?ڦ} _{R4*pPIDGp< MޅL5ndAѸm)UHeZ۞Ew4pn-7IhXɎ9CK $#3F @;1CozphSB/5t%(*b66K_~oemN\:?3:L5FA_LNj6#Dq0yv(NܹEe6e[ptK$[m,5EFvd;jlzHJ\|ew[ÁLs } Q?uܦopp/"fЅ0_ t)EST4`mJ1yHFIIQC6r+%b2.=R+MmptSXzo0:[ 28B= f^,~.&譫Зi[O▽?Q ~L&&SrZQl&?:%pX+a?>n$('fﮑݰuxVȳ 70DE}Up.+s;8DCIk Ԑ3<8, dB&ᅺQudjjً(b"/jIywim^2G?^O]}KՐ\QRT,R^_ $U1RcX|XWM׏"Lڈ}qȵ;? { TZOg: .RO?[$ek=$O{5Vzeh{?4JK+&6$h+ls\Vy4,[[660lFzh3}ߛJLViAF3]0f^xk~,/ :Zv(bN$Q$+sR>K)U<pj)0WvIFTWB(OcL@ VhhJ.&'"p%.Bax{h+1)O"8;gsX#?X-`A8O'xz0ʰql02HTǘm)w"Fz @G+)@TpN_~{5R1c?Yq0V+nbh; eeφw皺V*Ȍ% hv)Hͯ\uE-qr;nTFR,QXkQm]}XtŊj:sx}.Y~Y`ï\4.5nmH<ݻܡ'o3m>F9]mxHtl?:}AMn$htslƗ^!F};ػ˔>y-3} fش33 ]R=Wۣ]:{bA:`2k2%,'v ϩD#`&DSbBCw5$tr?( 4y mFh&1xo@Ƣ `d?(36U$[q!Γm;v|X6+U{ێh+ʸ*ж6mlHl\(!hm8;uYHOuǨOX!n e' [ ЅUҙXhs.Ncri-k.h@Xaݪ /*^vzvWҔ +pV39.jo1 62T-JȀ@譲~rK,f$Rp=JQ~7d#펛AWV&*ez׊PEoO1&hj#b~j7}ۣUئ]vMЍL_9JN=֋WR4SƟT#yZAXA2n_O3HJuB,&k)SbYYpz;6̻>VDw{.$x1'CrX <6rBkQ${1HVDҕ~p[CfV$H09c?5hh/e>FK 9}2T@ۜdY9:Y5~KnO @^.X׈끑If髖0 Ԕ^ >[`5]R8~s+g'/6+Ece}u_jhU^VVEk '4߱U)֜tRJ!G ƪOiVmg*1]\ߔlq$?WruQwborҼvk(閤1ܗAO_)=Fz6\_%V!MFݶnOw˜LBI^6Hw{i#nxGi[tak7q^BCszJ`%@F+Z2w|:Lpv];]Y0Pʵ_Z쀍a>FDqjaMXCsru"ykМ 0rN-EߣJ,a0mJe(1z>bzguLSmO{0!2oNTf*Wb%6D+Kb"QpL[ZB\\[su[ke08?3`Q o.F5,6JsY"`p ~ӥӛ&(~Պ6ɇZ|\>71e1w{?kzJBubB%ղ;TnetvOBD|ிR= idqW # =JcDn$o!3yx1Hi^cg5Ce6DQ4M[)甉MI^|[䀶a̺*9YFu ۘbI/'HgFA{`nSݝ!R+7*@A33973vc&x9UzU`"|xE<p`!QENIB'j"pu@mPX8dwߝ? R,>%նT5~DF?O\n5!CS4 mI94n"b>u=i Dj5ZWS>xz'wDL~C] Z64vfuc5J,,A7<$<]*@vX״'Y\8)K[ͯ씡3 d$0-d|tbT.~7:(j:&֡;Ra~?*!*?VGZQP2$ oNxy6 Zty.ڏV7 gM’dQ1\[At ܳ}폅v$A6N"3C@ x,7k;xLTR9XL[#5xP.=fײ֘w*: ~p qpE>MKI5 z闦`:@)tFmGuv.>hr|@rsM9_gxvQX4BD;w1'k *j8Pe00hjp8RP/^ʂ鵵 l^&02t4]"H$D\V}QiIIObglԞАZ$~WD\T\wc6m Y I 5L8(ϜG,%0QkLӲ,&Fb~?ĿHƒ&V5Ǵ!q:]hNՉR\nƐ"hTdo1%d0…y`t}9n~?N.nѳb?*2CHFc#GW)a='N1#k6#;nuQ$ 1?# !xLR-[ӞgKd mwχf6(M!ןqSb U^ %8CFV@+wx7%6ѾYޓژO}U!+=AI`kE:Wg}psxX F!fa,nc.1X/2񦘡fZ)#xѥrN>`bu8"/S3mz[҇e6A=L)FNL7^脻 W2ۺO_ި$R:iD×u \,۸%d%1 '-ܻC/;,: -4H(7YX|\uģ{3Uum5ɏeg(Bˆd}qѯCqJo# \`z;qYҜi/Mgߐ(A4 h̃n9!O⛁뱗eF_^0N=հ5eb.aAfIm.OH;!¶c.ڰ%r[d|t7OӔOņ21Bj SbYoJ+=2HT&~r%{n7Sn &-]A)e ,ި7Ou}M, yKgdpALLÂQ >;ϦIޛAgub}"O'2D;:Z^,v1QF `zIY!1v ߧXnIl!tSvFIEX_wZMؘXYj6Izӓ~,i 7\xwCs#h(15> d"!(ol;Y+K$wH) B 0TP󚴸ʾWYAka6=V*F:t/TseJK(1O2nQ)V6 x:-+x?ivr*.% *S=^fBFeA? `>zԎM>Ry7؛[T&'C &*63C,\cnpVf϶QؒuU݁kF<SQ3w* `jtߵ+zqvfN3'AVH$ŻCGA,N6zq<<]^nfFV~u|H LY|#~+eT cuU|@O:hGr=F΁XoET/|"fx:CnRiО^B{j uϣk`M-RcATC$ؗ4{b\s؁x@e,|M?8*/] 4y QF6zjsvbG/ӂc/z8,^ZcesG(vWhpϰM]abqw5G :D9X4Eq@+}nDEH&Z=&Iw<%CRexh?SCK>60Cʢ8d~U}uh4C=xh4;!ǻ@hjcY@k4)9 xI.owUk_9z89DnM>\.rQy]Xmtϝ6bqrv{= 6tN $sƀɨ/EaHm;cL U!qVeWh MN~a8 g:o þ4(]_YӦ@v%}(!_em@V9 f\۫X?W^'}s&H Ϊ-Rߏ =a9߱Z&E\ bSnKݤ3ꄼo}(HaP=7I #<^aV ]S;ӮmվB} pwN@vP vSo/:3!Yyp!bi>Fm*1T ď@m+a0E=y'xCtZQ\oKTAsآShB#}楕fejb&_]vX^pS$kMwH6 y?"?lF<@PEydvjǯקŖch &g\hQmcwyNwXZp NخtӠ΋cL/UhEJ8QC`mm-WUl0}#Xp)(\G";Ye&aq(M穬6%oia7w.o)l S5C/ȪA.TN~UrQf>G&" ^CmQg8P{sg\?I@euđQZuu#h(}t]bEt0_ ;QYɫ/*EFʊ$;:f+E I,NS@i"0E؆*?9$t^՞F(vqm#5B1+" t'bӫo*=0 !ℼ>W(zlEPeJ0p}H~ L!a t3 ~ $b?V=ra;pKywPP 7Kz뭟MVK6(6m5P!t} ?{Px󥸶|}$f jXO2$\4ĴU)UKAL¯Dn󩳢 Qˮ7ktj?qy4I8ݺDN[ Voos qiOx5`BQ(q?Tz#Ң=z$#8[=[R'"]dR"w?4,tѢV‹0MH,wR>m i?0׺͢pjJtzL'e&/&4cfϣ{|> k|LGYoc' :^ʪNZ"cV>}r5:sZgq; r9Aw>#mFr:{ Ѱi#'5DÂw!osPK}K*9"zǑ"Qw^ 2Go#* уoZ.H׆CZ ڨ5,'7'0SI`aQ:&CU]\c[]"q/9u'ԩL8mb$m|b ^đJSG~yƱhKV@[?9 чP.YɣF_<[pC$wwoC =ů]0Ov->BMX FOt qI/i6mBwF ї1ZG7.sz9zE=jJXz?}M. ,@=ՋrWH}`G@\ Hvus$j%e X)J!U媂y^˧v. M2jO@=<J.EĔIA=8A5}tR2fdLd+lxT~/ιenGXR,!'^΋ݒh5XԾ>^6SPD%x'2k8ݛ%M_z7hg/k2\v E-dN*+9uC^տo C'<ױ50F,SBOq'n9EV5mL`䘹}^>OADaZo%s-UU8z梣o2H%آ-!^]ҟ[~|9ADyM07;ݼ؀cE?\ e[0~hR^dvn|~FwhifN˻ppmCz-.f@3;` ?:ɝr}LXDRAe=a߶V~A XMT_8]po hrB^ÖvzJGaf8h@K8f_&4IjJ(U%tS4jbMmߕc?i.N#3|FG U;,qg{:pt ۞D`iib-)}Tr|!]F{+_t++Ib =GɸW*^/.xM-W@ 0^M_b{Z?xS-^1<.(C'm0*D[hp IIzEkKuS[ "vq &zIEx.#]$.rl4>YP"XnsFFzqˆo,՟tS8"dH67NYda0f_}EzZg{r4/H5)Oeel|_`RY+d=#$-"L̵|jnUWK x8+;-P )$ w5XN&bq~[ӡɆkǝ犐I\ޣXøHhl>#GnOΟE؜6#WҮd Jޖ®畷eDU3M#Py) MY\=V-.a{l%pE $14d:#f.F|U-RSsdTbL=wKD-EAJUIĞK1knYaW5&өp+dI]n! tŽg&DR15#uu@5db5'EÙ)pXW GJ-4 bDh,lB,-E*2cXjIܔQг8uꄄRUϰ3Q,שNI&%y< @6)JY *$SŝxNrd>Q Xqpu}oj{'%p̠%^ILI1ȝŮfO0YB1zldXQ%/pb 㨂D޳K+ :Q2}<ꙢdzUO|gopK,V2EԥQ5׳weyB0s1(kd#''ѠkaDc6bXQ; E=c J͋!"mZu-_k;ZI6tW+AZܑN)PMdѱ*У'9$beCh.Kˇd/VˁxߩغbXH:hU8/EI#_P$&gG5#(~^P8%)F}]b^IAER͗3/]u$#$eX8$fD0W|q ~wsy0@WG~7P3J2v[0Ji\>RUmxiĒ u,݊fB JiFJ-b:V/ʙ|Jw=& ^`j`bϤ\y 0BB=3,0m8oz)4/|zj'k.t>(FݘWԵX[۟N  j5rvY&^ ̱})uf&[дRFC!n'.A&ݠ7{x9I/_q $ԡQd`SX[bt (NcNF~P33jپS\;*X|iiz#8WQ]k7|p.ǯ^{}M]ѳ `m> Z[ ڠQFn7~ɩv2əe4mK9CJ,C SBUCn!k|n]2T`Yq6F) mb0>:Tc)S`a^qV"BQʢUR˝D7OZ\Lp㘰n2ЭwERҁ'q4PN%7?H!qǫA &! fC&4Bg9ZQBuzH#om3/dbmz_)3E蓊ctf˼q͎g8v%EU6Gm"G Xjr J1 st#]` gϮK SXlFx}ԣ0xѪ>7=\/g/!'O}gž.y)ME"HHejTXԚ.+Q8*lɰ%?C 35;'2.#mJePz y@>w#1jZԌh0/ޫ%:Q(҈XD'drAΑW{~:PDik#(9+)[=Pj'!pwo{_#61Sn09gڛw~vh<+s_d##71:cw+*~Tid&Y H Pd 2K䲘4 I9SRu*7q4aI '~<}K]5kR?.ӕgfLx-P+x3xR7=CDg"Wa/}qĊxc.͆0r.%/^ 4j"ޱJɞ f_QFo/&+EV9,m4ק#fA l||ȣfk\lu!7uJUύ92]ʦKmνR9*MՕCqq }k*bKAK6k$.:V&}O5ٜŜNV:S/]lo.لF{U9r:5vz*8f7%~=[~UAu>>TѻP8ڸI]Ox@ck[&d1K:k c~UM=E)uy~,$%)>Glx:v[ɤB͉I~TiCfUOs9!$<>>}!>Qe_u#Ud΃+>ߓ7]^ +MtGmB~~rXQ\פrHtu'F,H kpXB}(4|&:vi75ul}(pl(}gÓEPbŚiK=[M\9nXݥV`n,Ma]KtT.aHnzӟ 1,qTYxI GK`e),~ّNG^(<7L~Xì7~2G%B/[/Mϵ++Spܢj{(iTNKlь2װk9'TZ?7Յ"9\OWzjO ,0K2WOPXPa-xܐqB cx|&0d*Șe_}}<  j1[''ɏ+3E&YwLwP;u u8;ki*zR!v? WX/pP!+r_iN;(K9qSP/Hv&Hq|QZ(PvfT.D51mྔ)gJyUx W)s'%S})wl-EKG!xzmEfL݇>,ئ &^ O˅6OYx7iY l/HCP"0=d&ĕو5_HU]/C8zCWZS)n4v8)T|:z1 oDL3,ā|n&ƹ|fԷL|K6^#%֮w#KQ`~|Ӈ/:EiB%z=x 7()U].W"~XStep(H["i2ՊZUėBj0݃3 ⰮeI ou#)\F/օr]sQ @fYX(Rۻz;z*cXsRALZd ʠ0hj)Y)쨦y0AqGn9ٴ,alrbڜ3ӏMɎ%F!XhKCaЁ'#h(> ɰqfm|#'"yD}-JMǀǾ젚_4n$ _mӦ$HsV"Bv#^H7]1I-KԮ9Ac2#p/qr0P:oM=:C Nnp|%^ 12'8K^f1K8섛 㢑7"a61w |cA(:W7u}I[#~k{[`NI=0¬bʎNA.%ʒ%7F9Iۻ3Ԟe >#fW?7ɮup\?݆lV5Tc+BA^VR.a`1J}LXX!7^vfrISƴy(Q5}k\mg+8Ύ$#邩,~>4Bw(e_XB1LqVx @9de]DW(ӷe *_",Шam3 &쪮?GAI$U]vû+ ~Y͏JtC;[r)7L@KooQCe2rX,O4(NCVychRP<).y ޯS܃gkM1r֞O;2ˡ )>C+tE]maϧIokKat(\7ivE f8["TyDS%S؂F(;?kz7왠'0 a5>:1M{~mYF{^R^UU s{qӃy:c İP/#~O 6ia J1@(&|A <1!n*- <$SUY5ݭh!N;CW5b'K@qJg Ϲ;~Ę2H+d_W+W"(L wHUE&O1ǸtSv憐Pn;~9%N!GV!δ3Nfܨ5Dle-*RL%L^`~h>6p c\}*-doh9;NUK$Nṙ J]OYe51ܓQwSxRwi'Ënjl\>c_XQƖ5Dtv?y`PwSSF iM jv]75,"̖S"ECVE%A] QECv$8W%1Õ&Mȅ[Aeh<_<|(TQ{PT \ϑhЈn>)rDaN*KvIw2wO2mdXǑk# }5?lt۵Tn&W.uɽdQl*.91R.2*XBD~VT޿9ПǛ=9%TaΦpAoޚuR'767ߍaz܃[KW-P0Ԩ:m̋3^|Х5AFLF)[iuہ@[YCuD'2I*^c% Oٟ<1![µyxFS$ɒ>Msćފ k7:C8lgcGeĪX`ҭ[Ied剠NU|J+~UmN.S.SRNKQvwH?f묑`N[g>(kZ)yBs<0@%ik7Qt ZǨjPZ6-eYA`YUGֿ$acNe=6ÙT쬶"]bV{ V 8 e&oR#Ն"$녯$$5UVFmKϗbq,W 0ѐdFyĘ6[zGXPNBrHJ1r3{a5Zŗ߭ad KOJuPo {bn]ATՄf(v, #=_-#d"fb wJ-n>x͟YI2TơwԁgI"u0 02a_>!L!s I\ 'nQ+u}M\>J3f}tlI؁LvH{Hӧx$dX|cij_r ^}:3 GO> &[6gmB;&; + ñSU]ۻT5 bnpi6tÕ*PtT7,?&8B/1e SYدGB@ӆO+HW{6g7}Bx5l=] rL1ިR;08sԿ[}| HmUJ(0)qix6"R<2/% t2NVю6nTtf+'b ԔL;K鰙<%7K1qF39N{ fTxl3W|&^|ͱx{1` g $6CvmK7 >: < e/hƨ;wm,ǃ9UveE}ރFB趣)Uz1VEFDxoQʬP>צ \u .Rg<8VrNGu'QۊCB"A͵C8Ws##*ōa1qVb>dqZcNVK# EÌحn(GF##GrY1DP2.[!H5WUPZ2 @c{Nd,R*RB3/{/BfNۂ %kn/P*^y~&FќiIa14Cͺ0@>5_60TUE8+Mq(1===>&t,Ԥj*iƦbB K5lsDe]qF9+Kr2rd}ޭ)3V8E}G"оcFG.t`ZgAb}dESD3%ao["DcfES㑋ޣcuXQ-}݁tRNՅ.$Y\IV,X0- EipǤ=bY&4ղnjW{.AG~G >b#+.JvOIQRi.BUM/H*x[Қv)ƝӦaӨ'޸T[ B2AaYR:\* "+#&G\gG\:Qِ6UR`7xB?=r7)mT]?>\U3FhjC?&.ģ|mX-!-喿H"pq7j{7M__LpIZFd<[=Q /U@i (^olT*[A1O{ ok YÔ8;Ƚm'GdS S6 YBf_#1Cu^]SY xU2pK^>p X9QxwbCLw~hTTpT03qA7ϩnXGÔp;}1KMM.UA3v] MO>YſF>G@JhzWM`yC13,z9Y:s5T'T%R7 6L'+30QhQS(m]f{hmV?ɓ|3<5)o73U r}9d-*c4j_^qVNjz/RMbl8z Fo<҉ZNjSDt>+$&zK7*`#BQs"`d`ې\VӒbMZ%m-@ޚ;b0e6QAhHLUo11t`'~HeU<ݮр:5x{̶6<~_H2. -h"Hl;?ӹg[(z` h.Q&gh`ŠzNt"rb&%r RIZ_?,|836Fw\NHPj>kx?3[jlki 'Di+6Xa̛˻ل1 4qIAB3:b7}c]9[Msϊ+$bȆL\o7S㱩@K]$7.+1A ͬ%O:|f ;p2BC' qF~fiI}i]3yC܌եT믲]fTjv=v5Sm]r\o&۶LHZR~` 5l¿[4tH5=`ћ+ ,nlFQ %s0DGZKMz*RȰ@n\9riY1iUȢ^cQp0KUg*V `#0HKvz%O>/oȤo2&2"N4;\ÇKl+aǾ($`;>4vX7e(P9.#&nuo f,X༮=Z ;8,=/4.c!~kHVIFهJ/ ҉8{m:A߰vvI#FBIFisWġVL:*W,hIvks+ -peQw= ĕQ;_˝5R]wI_?Z=Z}K&"4` WwLw>c1Sd _B!/ Q]M&pySQΉتN>\/;ݏ_EiZMvuuQKҫkA:֐^(UVd:9ftlMw=G'4ɀfܗ:6osj^(X;x7zY2³CdnBD vNN91ہM`<ИmhS.XU/N 0Wxh}**ڂS Bφ xڼ[>1v!<#ܒ(uXM.Woc_igsvh>o7CRxcmL˛6¹ka]\=BNa, *}LznKTKZz> 738K9@4C`$Uﺁ^Px+$CH/uoED/X*9W0qo[A]HlMqY"QsCW>jQ\ l!2 Jy>h%9.@Qkܜ?[CI;^)P*_'s ބBh1*(6YǺ^QYCRARrjehȖɴL2l" ^zϿ ~C7tJ%)c^J*|j^cVB£NلuC ۱l Ycp J֑=[#`eSJ~@Rl~~M5R#8 Ҿ4"=z2D.QEAp i I#[h&V9]`lFyk2}׊dd+jxe!V/|mI\=g^ o%,CL, 'e1VՔmKoK=t`8Z kO؋\]䛠f Bw*X*Yo+5uPI<ŤWѭ+r.pZ&Wo߬H3ȷ)t hWrt c(V0iEbSX(;8T:N\Eb "]7= |bDiƾ mpo@d6&L&&,O]x®S. Sg{K!G$j:eHEǏoUFduzSݟ: 9Gb6j'650$Mv>1*sX XרE\0blgu4P^R'BIUk2r!Oo>q#St+x {x//UŰH,!G!2j&uojf= W,XxY:*enR9[r@Gy~5隤)z'R+v.KJT9h ڢKۏ@iKi#4 wbwc0gẀ:3j=XYUJs'^#첔Qk6KgUN0tmz2z 1l9Ha-[i-+߮ב,Aז{.fR:17;<05YsxVp68'Ļ=)3_q2y*<Һ= tzxٳ-ona]ݱJ'V.*,/a,>j94ml"`ʌrz<&Ԇ{ẛGK:bvlٖO]9*߂ý|kQ`d>,i9۫*&Ly:,Ygsj0+7 ;@~]OgȤhh~$EL116 SVdXCke`*NK3Hfꂳر.^? hUDU$]3&>"P$e:c $tM}`RZzT) I (+Idێ{\Um7U1WĐʯ/\P1{FFW|p0X"9#zhZ1Dlݕ̌] &]ϧk5(c+|D^e]H̋w0zҹ |gȊ8FJ$п:<7dusgH$c[F$H) YE (:r@]`p8!1uHpf"eҎRԳur[qw[?Q֞~-cve Ivf8sBgDbե[p',nXKbƣHOSC=in.Z_`DvM4"c{rJKD?%] 0k'%˷[?X)+;|eR=:VMGLPPUϗ\+ʁl4-/ƭfe8JHRv# V1+M: AS(}um`U[Qd@/(!)d8/;z'1W09lxh9}L[E],QbဎxB lhDat{XCk"i2SP8rt `Sd?ª˶1kp9M%e` RDW9]S'-3;() ?E)Vg͍ܲl1i cIdž; ihljf_A:p7W.D]شx \ MA\4w%W2CN^fnڳ,CXHfW,f?h~{im ҏnq//n tַٹ-fiWK]qt$83:t1ZJ XK![:Qsbg!3N8NW.SDB=~a3HR16K\<6T ^4aLL1n z))F8mf\Cp%i}S]gKߧ'WV}Ceǭȍl߹5T%vs4cЎU0VJ$D 8&YksAv6Њ-Tj+XcT9w)m+KT B6ߦm:L[WLo^H~S@*ky AQ㒳lj5hy ~娱M)mXYkl ~ҍ*JZةׯxhӬ {];UN5ԳM4BUF+D[wzIUiY {'qHľM0n15Zk@d~aDc (!ց@+Hva#t+e$V·W)L U>,g_.:0Y֞b^b;RKw6ҥʟ^_qh_.=>ZqEh &-sf5mJQuՌD3@}k q| p%7lD $[r P/RaV4+֑.k=F1 /6¡l]ށ61p6e9=eY[{XmºԣTWԛy g!t=J|-@xg`{=\Zbn>NSdIS Q2Om8*wb#ͦh%r摣(vJ10]S z|:ଶ}nHn*$b}x?'0W.wk{p]Z1]`5ӎA_e,T -j >xRևY甜?4$pf3 d (r6 $%Boi];]W1Nn~7="v6p,![f`/_/VLr"a|- %CClleuPc8ۀgWc_" Q!ήb'=݆WĨP-$=ľhpif!U-7 $N% 2/:Qkc@oDM$VY@GP0u蚐!^5{PuS!3Cܶ=M^~inmŝ=L HP~՟k9ȱxbv%::uttgVdEuՁٽ_iʕf2?FE:)ͽh~zE ($Vcw1Ƞj/AH,["Uv@Bjm ﳟ&5oyĄ7܉/6#jήꋧpj٩s?bp4%@y۸ *Y竔T"XҒnGGN7C |oZ1Hy [ j2ăbE#(+l߄CثYL7>]*5ca9d-? 1m#(a'R1S( ĈpK6vf})(RڃTyl tdo !V3uEe^sa#yTkpD'#!4,Ksqq&Fs8!;b#VDq)JF8=t@U gP>ٞ@; &t*d0M()wv< ,9C#nd߷q `oL20}57楊18Btr?D̬~{Tl^b⢲v)BgnW`$9\ڶ8^2 ճ <|J;;^lAؕ[Kej/VO<:4|4c-nLC\6P3w mpŏnw^)GaW2ZɇXsD>dwV&aRGXUȃg[GqXTOo~4}=WNOu15b었΂o2@j\0 ա- ik!BkҕxIJT9-|92zr`BOG  p2s͐-+&dGҒEy+h RwxZBǼXďɅ4!0I>W@vl"7P%iGdzG>Z~H`ь#$27E[7񢦞RH\NO`ZD:v5{܁vO'7RL!!ئuxeDօw͎CuQ2jGyK!Bɷ͠o&6lI814Dj_5 d3m) bNHȚ%0}z&aSϗh`N^鿛b&O-gqE"S|aPJ0֞4^2rbU2hY%.z( XJV[>_{,(:ʊƑKWO…Q $)Xf:hW \ @u=44;8XhP_J:j:(Iʗ:!%VP ^ٟoxCLksjpkYZU'DY!:Ȯc7C+ʕ̔8Rϛ L_H,Ј:9e8鈝0H0_^zDV{ҦQ0@6u"ے w۳*Dz=ȋ>hՕ4U1(<"L6(D9eN1|; x] L5MP8 8?^x SI#%vi혷 +Љ ]N S9 bGq0x@j)[n{G7!(UO[h+GlAʔݜ53-X28nYߺ&_%I!BSz${i-;T|gR^HF\{sxgW=QX.H~ 4 x<)c$nf"/W@\ z\C+TD]k{9Al"):NQܴtVQV8H'DY߃ܴxRrBD:L8au_Mz bxB('5G䣼֫VP" $2zyL䢟H?]QR 2}v:*q4钵]Z{`|v ګf:250-oSU㔪%= qp 8ʼU@3f?vL0Q!>ׅUu] ֹb*]YYsVV`@.sK^*zaTcj]q}zm jOřuY[0:Kߕ'b:ɬ i k18M%gJZ~k =_f-̟* ]"#y̚3x#v^a (#'=%L{=PrO 4ڷJ$M4&& LC4ىk܄Y/NfRdQzxm &֭]b]b};ocmg]L^߷}8Mu*^ |_nΰ!P}62=,79Nǽ1s']֌4-j:1ŕgJqu2r,?RkD?>Tн渰؛~Z\:-ŪxbC~(sRn%jVp9ޫ{St{EqU (f;֍, ơL` pic>yb-1~No@epwt(3XhY_O&a%jqHvcvAnQ^3-ӄ~T\S(ӊ%[Z #~v$@JMO֟pil_7r*xv2CjڻtjiMJS.QQyf[S&fTFJNVٙΗIlHɷ3c. ILd]`\6Hx0'fZrGՠHuYp{; as{iwr+R)FN3cxeB#bsS(^`]x~t'8X_mշ_ʙI2 &NVPGwR7݄Uj4d>w(DLOڟEjn:@kwc̅h _˗(7b`# V(,w9hv`8j D*=y,yd"t, ͩ=k'=[kP*e:k)aT_թ%&R_SHWm 5>*/(zhn<ḛk9zG|Ylr׸y[rd[-W)rKL%>Nj\19\s!ra͇r3,c ò\B`j@RoOBSaN4}Qs-ϨDdM-!Ȋf%F!tk^RvhzO [~e(Vo Z_X}l;vkGZ-ͫ'̬[cWcnYڅ:N!#={O^ JvUc4rkA$5۱#c e 2 ڞ$Q^jPg+:(:0]@K:-fN9V9Y2pyRM;_#*A9Pk"m"3hoc=v=V>0UOe7%-Oz,`2Q+A̘fO Sn\]y+tXbK0*Ѓ ܛa*olDHae719I =-g4 f%\<#[KKدQ?hD ޫGS^B8 gZM GVYUi)*!]5F-ǰ^燣5{;Z{p(չܾ +hF{qh)QRC [KvAƥ݋*W_GMBJM\g"YYxF@e‚va 7n^g=њi#ߑ(VgGfj8~'N_vMeb|ǖ~~5D%`4>F%譭>5`lL HA摬Z\vįvU\,Ҟ^:(lnӕ_sޅa4d6tt42!~)>=k~R돉:C|lZƗDZJUĔBd q8ʻkqzND;R߲+T|t~B2W538>un\ yѵ+I % 7_~ڎsE8bp6_Gh߸O'ѷrjO=%(h>wD4ጂ J"~piڌН{|C QSuRLוeEK-bɿô? Tn=io4԰Lߙ! CuWo ~dž z+UlE[ XQԷf t(bl&c6M6Wf@1!#$zSڃsì곳MeQx'it߭GE6elh 9hlyLC(b|6Uՠ qz\q JĮAcX!eHcidXlHB4 AVyO9+j+ɞGхˮ>]1$֔YZ]LDN^X*4فBd1?:=D 2I{F&ȡ;"tõa [l1hEmU[3mֽQ T4Y`P!WHC(1471#RTn)~e6%/c0sUȵJJ? [^Վ$c/uU^VYq" ݊x-\El+fc]#[SI*`+x, !&#UL mXxآ^x^síƋ ev4.|&__G?CaF;ϾF8v m6ya/`OB/*rF-io~TEm!#! OtA2Շ x#8[o,:,,/ 2?Q x9pIˑ/d-> -1*qi}7yo<='L>S.;Jw-Ȥ-c[^ܯn2Ź`H)ߺ:v66_޼[ j[%Kй0;0]t&M~lOĀ/BFĂ9 9.6460TdUQ,#W_Wn?Q R3(0e؟4Rw:Q8  (:IAH} #nQ{ 5v4ӛqmM}Jc5j_ :aah٤W*1X_blSs\$@]+ܩ*Ntan8ª H+g*,Syw;t,Wwkc}F6kHUW(Ad ?F(tMvϧ:\^^J+K.l|vX1ǰ9)45*F< !Z$n"lzEၫW蝘5*`~Rqk4kKE5BԆ:2V]fNJL]RdRf2Wk]͈=W0P%29~ WUdWy͑LiINjiPv f.FZXB2 !> ?_O§+;v4=/!6B=GN]-MܡW}d_N@c߸^_&j[pp+t3ğ!Tkշ:R؄ݿ+ 7H},,Xt߃!u"'(7R;Ku{ )ztv-TRމԵAu2`9nƬ4fTwR;`0ծM@ಒcDxzfhddt^߭:P$<uhHJX:^U1x>'X;jqZϳ *t^j ,]PS*(# q[k\_#z90B|aEdv+(k@;H?X|Bvj)ċ*;2[ˮ S'ŧv;yJw#8èHp4 ?vG>+;ܖԃlZ[P$D5:Ӛq" ,ۋ#7p!4twj5k%'QIbdڈ+?R-8!FRuTQ,5SzQ?ujXߝ@jp1ЈXGL;(4,]%])G̢:=hL &,ӧYQt-Q4V]Tah_C^R$OՖ$q,ҥ~GC#=&~~-Fk^蒆/۟21%&d8\ dAX7 h\3xPd^`igXIfwۈ5j)i.f#mFilsʌ_/W{: qZPKfAx`ūwy[\1N=:R `pFyWwˆ{Ƃ8H"-4DF8*bb,q`\SD(N^`1͗O7ao<͘v Ώ];i,qToOQ k~P#t7 UdcPFAHTS ^T95EL ~}cCc\5؞K}PRZׯz=>Ʃj!t˝RQެCtYށ>ѝwC(A(hO pp42/s\A-zGkSSѹg:|W')A{8 )Mg pʑ,s+qZeIb<͡٫r?Rv$0 Sw$P(3H)&0Xb:R5ʖܚWm|9%#1 z [.qzHg-r GH!x6C0 Je f. BbfUy)ۓ}|q2_#Pq)x*c4ޙiF\y/3f(7zA=pclcDJsvBVrw thŕtԓR6~yGuBf3 =rbq}푺=.e҆2j8oyQ$uOFP&I6$dILN i=ij3h`_b=+GfcPW)q8:V|p(p:;h s3C\*>0g[w;~aaj}Aldb;HN `?̒VCHY 췇5$Bvq_2HY45D#GzÔ+Y+wWW,˅Xӂ:n] jeY3΍ ]d [OƲ-\we;C̹kdv!5)#1|"<У;Mmڤ' ,5> :<23;ULgCοn2ٛ0ܽFRF,b<#LQpB綾r(Zy#Dށivq\׻|Ę>MM$Wwʇ9`%`Caܶ`+$FlN@_&^*hX|ŷ"iyo/B65nl3?}rpbDrwB[M@]Qÿs5|zEхO-פ|w :f(W@(CT>":XfռIq # 'AÛhe@W܎;<<=Av#8J|G-s\}N] |L<:н4,ƨ#sU/`JaS۱ {d: T֓uLbkfbYQc`x#q}6C%/8%OKjc`S ݰI&^?>Mg J{erR×NZt!2pr Ue^Z4q)*+衹Ź%փZn0E%J7rv9⧿,%VCMe!9`M:PQĈTm-m$?P>Y1p4s{K[" ^x3bg hyePtp|)_X{M0Dgo*!Gl'OWXꧠt#@6|dH Dc*C&V%&x0ĠK YaP4D)nxɟ|sA_OY 9i#IF'm:6>[>ukRmNP,R *}ycۧPaIc[)X?޹W{lMK_FDw&?mP˰[G/R-04E6 [Ɣ`#lM#q+%ZXuF?^KhVgՃ=wG|`! ŹAW`Q"UY^(\;[$6@K=*I k Mr%2Vݥ\=vxފJ9J/6qDU !xl+F~XV7u0U/p)KM7U-I=w=l_xH3$d֎:&i|H"qU:NJ22"ͭ)lOeAdlM6ųyD3@ѷ:{TF‰L@`>dR&UWʍ"H-óǓ[ Pj1>6h-~,p:JAKfI_ʑxnӓp't_kō㕀F3G늊ӤwD%v=@^Ms~[G&zx'.u$s@j'1\&4ė__SsbDf8Oӎ( \x(G<Ձɛ :,GB=ɨeޠWo@/ ?\~'/_NUb,l6{R^*48Z)X=9>ga78[3g ,2*#1Η7%B`qo X*4\TN. j#uJq ۋJ@5t^~L6d&K>wEz-jgp# =aSHm(}4"STw1qJT{*%V>./H{hcC _H;AU1Z^.e[ uجNg]: X{9\>FaۤmVad?[WMȵ۴YxVkWysT.,1FɷJ!孽SӠKyy,Hl*D*jMx7jGzl ~AI2^pT>d͆reY33+BnaH1qg6kyUs??A5ڞ C8ԗFp9w y` }^[&$v%N!dWl_|KG^=.Y 3jVDtNkxrؒEa<::tAnhXZf'g娳͇cS1`ܹCj~5fG \Q4CdXӛ7 ͯc/TZN>Rf$Žh317 ?_>`Y_H5"^e[3o+8^^w`xҦp9F @s)!NQtmmiF*mZf5nm?Gx5fdI!6^ba<ʝy7r|m%5WyI 25@eCUWSI?tzl %qzI0aVcmC{CÓMb_6.J' fH̺1ܲ-; yǷ+InGBNĠYȺf*!aL%O] |K6сu $e-ks< 7`&BP)a C!ոvOwߛW>4ew0q_sFe,T a"8M15[uc9-iY+W`NS`cq+Fc@'u\7Wd( %JU>П&q7jZVyԤE BtCoF$0%.tR9 M%bn 1)+'nr)VnF`oj0EP+DWVCГRZ#ſuMoLs%-\}V#RRRB ˗3TZpjÔP(bR;} #A-pdV߂# T^T/UJM ]NRˤ,?B sXNJq[FBIHN1j9ڮ6ލ*[l88T߁ 4ޞܷ쿛lpWh#[+OxY4Mc/Ǩ8jKbˌN>*3jƍ#xOZ,Gp? I7`ldFipM<ׄ[j͆VO݅.AXp֎:+N. Rr"b6I#ZDa{cG$dcJ!}wM2!ɣ̀%E)Hy 7o6i1VCw=C7`Zaz2m䡢B7eO!k,fJ nLWfxg`"B$2wnPޞp4˨pjG7&8\YbRzۀ/1}~`뻙&"QMtr` 'cEߤ>%B BrBcc\'-:ϓόwt n!O:~/Dx. u>b ,ϯ@gLvgt~+R3B3v̧5cq iq.ȈkROq*`^`tџk'ƭ)HE[r dB#a6.oݭy"SAD2P=t`[!c)=$}=RB~L Wն)hWMB;'!wtgO7* M,=0Uȷ(ME|>q qJ.!C0w.^Lh;?j8׫RQ HH_}E\rbf9}dժQ$I}^vu@ o_QګFma:.b=a[)/~ى!'#h% n7ˊė)U 5l A‚/"wIı?TO4QoTnxP@L"kђC4nJ3L1z"h# κ6&z BQ'ΐ4 3 J(  +[urigɌr0ȬjG8$}kodqqB7wshald$/;7ʩ%se/%_YC{@ uƅ0=[&ofb|^)MQMEvcq?˾1uCsw#D ~R,?qgI {w Z!*4gU.|*GΧ94g]r'&pܢ^X;?%(ed {]h'=|6| H"ji~Fe&BNu봨qc)C3{bU-xGs=4^RV %|?(X4fH:Q|JƯjHv.՗u_~Dj%-:~dYFg2YXn̿wIfg'u_ɠf(d6g@:zʊAyLuK9#u)J3#ر'Gb%͊w-B]uXSy-1?*I=,Ku|t<;#OP*FC?j8XmGl(_6RUf2A>"OꭰѴtm0"$?ז%ӄ>64LVaXdXU܁Bcv́ymVʫASڲڈҰZS1%,6i)HD= lVИNR)<3 L/h(OghƲew:bWt%C#`εcf t@5q&ۊ`2>(dzZ֥ږ񌂏d6c vOi[&y_9|+wNcGe](2&?P$*®92A¬!`^{AH"TIiM-N:h;H_V/|)n X(b.mqD6;@Ux5>5 -ә >&<γ T'?(ꠇ@]JR4ԪbY|\LKPꢛ!t S/̤7ͅ/p\zM8^.dtC/lJYEcxݒzf迶D2UvA<r YɫYb _b<4  4N ,զ4s`9 F|u#Fqx/Ij5kWE#"41!#-쩧 !>; ~J8iL݈(rQ(Khc4Q \} FJB_^' $AwT/:iERȤv?Ho},~g\\t~:i{=>{ q1ӧ!8TG͜YcdOg9VwSBW/r[YiuY>Rt06۳4#`MX}(XP2 zV945JT@%6Żo#-=wr7[&vG:<胮rºRziJ4y1(u r{Y"\d33xh)x qޚḌ d^V'RăTbր5n7{h3l.93h#@({Mg^ -l'`|4eBkBs]&Rz*zJBzWzά(X|ESAn5A kJ #N*_E(\ǟ7I*4:0wwcZa"[u.̭WN+(LtɒzEMsUs3·bO7Y/ &GaG0CnINioIxF7'J~]$@~7 kXNF&0[M>PN!K4 м{d;:wz$ &PA!'/R: ͐)B)mcCTnnqs&,r1ނK~-`*opHN-vhwgwnO|G{5 flE]YJ2}B]|wq`k֛HQtm^uOS/W ΕQZӓ=ՖWnp=Q8HB !qITAGc2N7R/Z T:gp֏?*JkD+M{rf o6a@ ,j*uC5:RhEG%ZKSʉdᓺaB-t['CX˚:D>V;ɭ}jf^㛷kQMJ__pOq w~|OQx2eߑ{7sٝ 3;l!r2PF79|(I-Sq!HVByqQpR`ȣZccb>ćCyOm;o*Y3=KZ^?8 .=â2Y R)?_BLjPb5:#g[s=FUqsbQ X9mMݬwS!bE\/rɇCЍ-6Dcݦ\1mPWO"K~i1y<_AZP[2]~fWdHSX$6`p5%  m3\mنl|ˆ NH%vk,n,0Rk֑OVfJa'S:DۢIhʭJEp?nn;VF^Y+ME bb.u-^ֈy2p" Uk-Q-JIVg_m Qܵ&Gs&1,|tAb^d\pvK+uMBVWƏZOVO]|[9}4k{ xWNwJZNMq`]g_Rab $X;i. Mx]e{op됞8յaA^UΦ,* \ls 6ǖm^U\lj}Xwr7<r!5ConQ+B `Jo`~ߞ+\dwCً "l֬%cXw5$zM\(Et Ə$]eVBG1ڗ/vI"v"#)SrE,۾CÓg%1r6B;@J$ČWd,6m}ɟ*bNVM/9@|I 9,eUCx~|6 >X @ IJ;[y&˵}:,"3=)~JNt21D51 ²10't鳧 s6L%U-|N2#bh9cuOm2EfFå-;YC^=^t0մj붸Y87"/K,/$1pķcg; "Nа1{Pd5" 7~ GgӒ L8~K|9j9zE^":3^#P|֜mF *$?KBi|`x= zp覣oIӷqE4bǁ๎Tԭ D1ZN\ED"!vřů隃Oe8w')Y>ſmupSބi6Bج.tHjlvcfߚGIy?`K|A9Hb"t"I4wWOVB:,EIˀP_M#A3OZRhZ3v /SB8J~ShoBH2}ϧv`7ֵ;̰;(!'DC4v*v-'+$y8`pR%swS 5^Wq% v8N/ښa-~7kj$=vޔEm M)6 vݢ7cϪkQ8bo*? JU97T9^#& c#?(:#jzvĸ_V6=xî9M\Cc3hK} xw&%{/ck8jVf\dj9KRSpJ"^7Q;#?\U8R-cpA溸Q|#?\ %\!Ԉ,?TNg!TDEiXa&ܴ뎧Q)Z36Tj'gkX8 ^1uȀa=Ջ$՛;ڳq@F⽃Ig+ syZ-Htq΍,z9+ōlRI J5`V*x#fXޏ82ZTNb`#n/Lb?4 g4N"#̇}G f-B N_I*cٕasʢvSOW<8'u<<)%%x&7F$$?>ȑA U~`Mk'K_VZD'qϱMvSrNDw+" .~4_ʥ=j|T;l|`B;_ڈޠƯbvxJ4r ~0% KZRx4iYMS߈yW-xXYٓLfg* B Ynt@eO`Z\8K5XQЫF:lNH7X"7^!<#{F>YCrtHim;%thʰ'nhdy(CP|7ĩLD0% i/ǁ%^,6r^+^7mazoY -{ Afo_zhytIW֪a[J@K R<>8bFۉG3רk-FKz.k^q6X-0m,32hBFA:`e@1Y1NImv$jTfXFM G>ޣzZF]_JǼCB m" QJ"@jKnuڵԒWe\ڢg cqhh;/^aK]R1_~} +5&(5D*0R\?|$.8VQv0T^H8qH>вÆs~ G} 8re⻫%̐1, Y.ƪKVkMS'NPhzl.ӧȚV,Ur5;QR/!Ɗh'#n,\ __4sZF` [y8evCQzpr-~QoE&3$4W_ "PC{8!C DFmH3Ga~ / tG}!5*C 25'7{ ;+toު7 A5/N*y-%(zD({ Swӫ_G.T˿y \aԡ6G{݆-ia[e|"qꊊ.ކmj-8ZƌsUu%&ENk{b5y+?ث)jRE{PrlC! ?t[^XOW ٚJNa]2׃@$ >ػ? X^dMI֗ufeIg&%I{{*:cdȕ?:#MueLƄLp,\Q4ihٱ'd12Eg غPm䷍uƍUI* d2q<v70lX]ġ nqu8 ?s6k!njH^R,N9z#3Z(se~Gs¼N܃v"M:0cKvsDIȄM{nXn ,>'p"wn }&K"WPsWWE#a13 y v#U/d6jDAŸakp6m|OzO1;GNFT,MQGmzmAo751}xNՕkoU TȪU􁹫H4Yi_r{*::Z`CQFC3FK96ƆADkd*i[ !yf (cˎ/$9 l/$ydoqa臦1.צK; CيQ 7Ζ:p,7rRTWH KAUʼn!F2k/g!g̐KƎIbt_\2Z!~<*O&|Y{iT W!, 2A2y]4'㨢q[X u K7I#[? EF!΍n <ԝ|Fw:K8k`/R\-ɠ>V1/`;hWwj:򘅟f<%X`ƚ僎i"tT-Muw "q2R teqܦx7eMq.=6ý~3lGlE\c㣒%%ckI΢2ε^@,RtIW-]_lgjJIQ/FuBz Ly{m3Q0yAĻJfNQ.z8~ -eW@U'sQ[Eh Y8% ֿh7J. )29S<Ѹ c/3CV.f^ 29$WUҷA5ENvBu_95xeDebUr>CjV$08?:d JqXj&8~rgK|[Qfpmx !Ю4D]oFa@1O瞭mQ^\}4YcDC<+̱cÆDwJ9N S#lqzq@PڼaXYdBf6R-xS{eܭ+.l獹{|jP[~G us˜mFDG ePǻj_D2+LeȍK`&ADuDŦ!>csIYsFS:AYaz^CTf{z}Qv坊/rLVnS@N*2@K7W%N/mÉ ;>` I .7,]K$ϡ b!<}(JУs-'z@dMF/PϾ6hM>ˣUa.] fr+("ײuwȔ,,g7i7_iF||p gXXLQڡ~\iԞ 7'9aM q_Oփ\W aޚiBiSMb ^ll"w~}H*Ӄj8Yٹ1Lyu$iwp.ՖJ׀Vz6ɘrZ3SH;jn!]ث3a lVeAeKjZî?1M&;S7pG:so*\G%&9ڂ10e"f1iU P4DFEsi跷"#4tI ~H Fdaloe0ݪeyVLȑ!ԏiqyWf#pP ݼ+|E3 \I=B8qS.`wېd\En!9W"htHb`W\tK&m QKYҪb#q6|bCNdב%RP``cb:Rzܪ!b mCbgZ++U,x,])h7 X(㔬x|Y,)OdRA~ >&Ls^d@*))^<݇uo7z7eԖ9M**{1wE4V0ohnȎ]r|+~`7fkZ,:̱ SE+FO[$,YǠNXcJyjq#ⅈ=Ш*޺UojǮXg9炘ϕx>~hpaFGDdLȅ9o| jMH ~$wB9)c_V0?دٱͪ|niBxq^ Rmܔcj8V Ce8-;?W/ %.+oCpYa=\zW@͏|샹 b ޿ F^JV}η(o,0ItˊɃ:ՀvO [m`bmvXYX#XI)RZ/H4`l{=ri!6C8yz lZu")C>E55Å)4"&?T;% .zzFAU_LXO0~SءjaJr"*vqa%w\Tۙ(C0-@]Y{K$S()\{~Cifb0w$O¿:hYFq-ݭrR_b.t践0&2~ GyeBkKeJJىj~Ϧ>^eG uwv[GzҼ__Wf3@HFC|mN>kK/~ `YJ *4,,>j,q"Ci}8vr'np2;D?Z*GVQF;iâlړ abJoc~'eT>Y*FKm{+` BȰd^ҮI48泜]κM算zV'E 'Q1/S'=C1.ԉ"΂B[7 ÄfPT3 B$$څ#V  ٱvy%bqJ~LMXm~.-j٬H90 ֞tcARCM!Y+Ü4j3}hyr3g~*p5:i ֺ/89pϮ0L?1 ]RIJ\Op0/:Δ?mX:2S ig.՗6q/Q\hmi&]LdՏ9 F) ]oaC Eި2Ru!R1msE[ѐ 'Guv\d`lJ#:3_7-꓈ p/V˯_!Kq~F!r&k$hV ~[%,oZ_5ƺҖJ}է!{FSlmZA{4A.|=mϮPe8kms54NMeeRoE+b[3KA tgP!u E?SmhdYr vAK.El>aӨ d8_qټZe<9)qT4AQD1uf00EnwU}H½y Z-Aɳsm3aOׂ*DMF~PDs_ pE|0TG5$]j<Rڭ?`@ytz s% AJnG:+2+#.N}c`:00TKwT>~. >hQs) 팴"PUqmC[hf;qXPtb~'W9|5S 4-E)vNy"/?= Kx:wVmUZO؁e#ǫ(b#f~+- ;Yp6 炝ʹDK mZ ՛6-+F?yɑ}aɈDo+~1]˽;|nΗ.5h]C;t?P).|XRN>#W{R17B otrѼ8g3FHܖBuQz2 N(EƓ[ʓI/>Hj6Ud*'V$,CA݄A!cl{IsQ&,]dCKM5\MC;%oy|y&rtP{Ydň{#PDoC(2{zRp>i}D3XqOM6=~, !btAz&,u. BIC-o*,ҶZ:i)\{hIۡK%hӫ'C,E.u\T|CU7ܹssd+|z+JoGdT!$ԌV̅9d߇/g%2G4>bUF / //(~OMp~` Ybw8NȂ^rPBlfab *0VLG>*ũ3x(l09 x,Z{1:$X }U{ DP*<]\x lyE^+~54|r4;'MƞYVtoz+Hj&h,pEǀTk^;o _|8/..B=E/O&/Dǵ]ЅRqXIڙgJCa)ﺊykԀ- Y ?eLg27s>';Z7LUCոJn5`Ns^/}Iڻ( 2r7Xtذ' it9>r ~Æ}l+, \87)WȯNէHX(iU?kh0<ޗE *d|Ior[4]@;xO{,2dQkax6!z[h0 -7,7w1f,,u0 9+Kk/sDq6)8ti7cV*bDV,W~Ap#4iTq|!J_8@=%VnBC#4?+ťs:$'rw`WE@W33!>^6nZ.3˞{Z ІFT%,>ѹ]PT=YtPxMd;d˹׳?3nE9,J/ yLXN,|*1S0CmJ5c X,sŅh* ѯ7Ԥ.Er~yfߑLG8_BKE)<<`ԟ~9 =q3>Hօ9Y, 1$J8oιB][H\sgR;e(nׁL&^=+754U;; ʂ\81ǘ[O&u HnK l ߡ OvT}\})A6%?!IYot#wZti0tyaS˶0Q[UnɨO`|.xGPRX)SB's*Cn]Lrwչ*!9ςV!"*cȱHwV&xT\>jwcoYI;1{`ZuuJo un_sڪ_H3@\:=w眹1(Ccu 6^1(E.G {]ҧ//rF٣EG418\[{0,xai>K\A6zoT}ʦ*mD"ygŽ4c[@Ak[=xI \?X ef^ҪkWE?kCRm/p ȫM$Зoؿk32h8R4 &4Ww&iU)(t ;%/kl<5<)~1~~nKωn2B[[ a3CofXw%xʳ9CG֝eC9un~ S#[4m ;cDC@x#pTi'닳5w)#S[#l冇Oʂ *$#ä.Ô*Z)]Ӵy8(y6c$͔(W u6]W5YĂ KnQ=rU$!~s;|ς|K%?b4qB *3 d *; }nYFg^Ȟw YbQ| q69eF'ǪxO'Y;jM/l,RfWDnB5qޱ썛sdi{ rv^^[r]餱w12~}W~wə}*BmZ_r*V~$~ݹ3/c&CK{4Y!7[Z9Cڞ;d="OD_%UۥP2*Vvz]2CO%;#WmQuGzPk,.+f]~pMhUΡWFMV\Yc}o00W0K5ϲiv`;2#Yإ ӄ(ffk ׎Y.titkOUÊHPw+=2Eq=uRm\#851EJ$~G23Ĭ[9/A#jauڊs-G e8?3dL4f"L ^m<۳6W*\ʩ'RG*DPW 00}m^y?$]3{,؂6qt{^5g$c*bihkշ4[ 0i\֎Stv1mNy0U;p4eNg6-] SZNDgZuL=c PY~<`Xl< dsA8/8v`|o-">bժ?ًkܐLs\mPvC.OsQ?MUM$)z%yOȏEiBTRjX1hY#ktYl[{~Luo4pS 'ߧ}LlMIVʆ3qYka}Cb YEˇYZ^}S Gucx7:r[ Gn V,_ӓF&N㻅ۃԪ{CDBb|jL sI?%X8ERVfEЎ[zpz4cRϧA)1A|CX}wknkFB,(V2˳l25D-6v`GM´k)OuɂΪr_F j\( ,NtNJJszؙURgl5UgbCwZ  mϘGBHM3Yݻp1h!n'*% K0څ8jkl.Ym#f:wm( r()(_3(8li|T@yοɮ±Z*}0d"`Ӂ'uGp[jB8ת=̊z6!f { <v8+t;N!ɽqzq&dm3)C}\T0ݾABM}nvYUٰ 6s.)+8lZ%9 ym1I o6N e"g:xY Jv|.yG^֤`Q#B $OUB/BKS`Oڽ,7{KÐ yꁐ[4wj6WʬȱBn,&H7d3xC$F v5] U^UڛR}Ne֟0ϥLx_%3Yn8H[(3(@P2);, FZ%< /b׬HAf&kyUcV4'Q4XE(]iz\P#ʐh$r1 0`%"RW7S?:D \WsEIT^iys1V/$c@ fnLFwc,|SEY`tEg5 hݽlN`3?m]aC,A÷Z¹g\CDҧp/FS?>ǖ]$@yk|]*%W|a=cscHԗثC˽cv%|S=qG:K.+qMc^~H0A6\ؒ(K,). `0%R=aVp-Leí8vV V1a ryf,Cx|Lc~<t`y)rEkg!*&x{ ʰ;~\UޥNDИ _`͘((_8aZQnFQʴ\_M 8rM xVbw9՘Stcˬ\&OZ՚/`H87mOS.gQHzlI1xxgH' 0{y6F!4M5iNګ_ zU"\rYs /)noLґwׅ|F ^Ӹ/:~zݽd4CKOQPhdmiEDpИ1IDtA@UMv3G]w$FñnGɷ(b8nt s[PK,CEORMO$ ؘmNx0󲓮NESRn0٢>;yDՑ/'x}?Q]Ȗ~^h']YixR$+~?oyn.=֕Pj79l<}brJ2`RC! kCP 4 !~ s;Dylf*U b4/zP:PlVQ|# hZZ2gze5!ߣ[z{\Zн>hNG2c"PEDPMdWO"b۩m7ཫ/zoksa8#2WuYn6E_a&FJp]Pܤ#KZhޣ8%Zi,-惗vf?5\c, 'cݟs&@:ٷ3vtLw, ~f%CVr\1 攭=$42+ d'%ߩo`a;Bływgoӵ|{a!F[B%j/a#=,ѢR' K#c.P+]WO7d?q#2A9<0XˮRG~N]L:,?(ڡ`b=Eܷz 5M&0D"m2&9U[;HQBïK[ߒ Ne.*Dr# ­X9̫qS^e" 8̱S@SS[9~96$pd5K,'g"~K_Se F4ԓ,aWӤXb2P4E)Ɯ?/V_qۯh{o( cوvhEnӰѐ;;$Z\?TPVJ ۤ10^/t'Gd('7lEkz? ߎB=e4Wi nOH7|"9|a"O=cJ."Te1V=H]w] y]*io5}2;*Rb'I/B٬ZF%XmyfAVL-"& 7%RKܿ' f@* ^XrDiW*!Qw&WY2EKR"ă[vw̳,f@6:&nn ^M>O)E#G[ Ow#I֔%H*vcCĊArF[8ؙ) ~aLџp;pg0 @'MU" (S@ȝ!X·0gp\ag#CqӍc$nz9#jOj*̿$ֽ˄:~mtD7P:-_spG (l~Ź [4L|U3;5$氐?؅uڢmJbѱLAE&5>.?ѩM{c}Ș+;v8.9Ֆ5T1$L{7ϩ9gȜWhźMzXmx\娥~D4=5e%#C'jo]2ƍw]b07-ykт7^P T(Tjbʾ)QQ4\ג37zdi"VB}^8H 1PɊXKIu)aƤ0Y'O~}l`<*WN3Jk҈f ~ބI$d1+~vYLnh Ũm.Sq!:pH*=K[M~r?HK\VU3lȸa=tbXIKr3VTS:}J;/8Urcӯ#{ !iܦcm*@Oryna/NEaʾQ7H0OZ\a/0֕R .I`lZ˖h%#//| /g3Şl2{?FIC^l; tamԀ'EXCqR+7P7XnUy+V<"|Բ]Pa.{blj[.o@$'wQ-1E0܉j>ѳ}A{B|UvkhCߨp 4 fW.CvWfc2y#WiX% xb9Prپ. #y՟<҉v?Ts&A]4ͱn&r7/]A h^acuK^?N3Te1Cs;k㎍"lBCzG w8ۍZl΁TG1bW}4$&f7֗G\"GstLۓY58Ű<6|^ߋeNs=Rȹh(9Cu /E&8I9=rjg偿>2Z3,k>ԉ>J&aq1&M#lHzg',_-0Wt@F Z}oII]q UjR:U9l$\i|jU%ؓ$GĀ §M+F86í.w:_Y8)DqZv=X{<_!m[`S-80.{O:Α}3r*>7v] VtXjEI("ַzaø{l).ugÃM6\7>݊V[,y) Ic`s'N(.Lhc؈0\cQհLƽSkJƹ€PP]dAcԍ\\"KU44F&ƧTRt/+VP"kLI1pgO2<g2 ~Elbn[.&\f?aR.0\LK J|@-ύr_a*$XkQb?/e-oe][j(ZM3F X{t,$Y^U-&Bw0_ {R| v) ^IU_H~t*  $ +}cK\;7&h6{J~:}/HӯN\ygRItSaM~K3l$TEdg9~x_OBfRVhe=}6!QRSPQǞ/x9 IS% Qv4*QWqoqD' >AJV6 Hih9%g[TQ\ElĘ8r#T ]68јz\r3c#uP2b(Rѓ*Oո>dn_Zf'K/DE> ?{oOn<&n@Iy4sj4g|mJ6s~ЯL:NJsB +l]`HG})l 1T{1[V47eIQ΄|} :Ilt4S6 0H0[ܰ,HgfkY yA5ϡ7"GҶ# >Y)BB0:<}(ea!90nYWdַ Iރq#X1A(0 VMMCy$9)q+{"*},>9 $O@3 mf@B}+QRHlVmU '⑤Hi2!xǕ lOVZdu2/ cK7ޑFhsオ/LѣYdO56sjEpBN_y&lTq[Påԡ~!C;3:݌n-H4Ƶ t]VT\k{YPUk^.s/8_O?jvHN*Ss3Ic<^m;{p']mvG;i.zʺkV%3\S).-Eǜ?EMCp wa{! ;~TNF~|53eisK,7"M5ZH-VWEsH+Td @m@f暢xAJ+ɦ^(OvNzFBǴawLG©ڇW>ASSIv\8#Sf,ʼ3[!",:dz2e<0= A*Q=.h"k\ѩ#tn쳲6ƷWDl8IhjH9f4Bpa En`kRߗM\ O>^J|8Ңxl k{Jy znn6;rJj oN;'ڗ~7'xUk`m8rz5 6uxc˕<"4˅ 6O0(DeɌq7L%N< )`6q6+hc0竒|k@S)yiC=DU>=x o'%+[1%^ag'X̑ cr9үV6cenZ!p.u8;k*qߠ@穢PVW<h;j&圗EeZ9kImM`2NIHqk2ofDɦs|X'Es*F ;yv#:v(A)N,GIYK; G]q.brؾ0{#\ڮp7 #$<&Yc9cpһ^FBE(j_E^޽@DϾ{tiqR}_6qwІ6-+d=*"H59(jr z_W$ Ɛ 楪qV1# ;80h:w_,H;Z~`f0/*.b<;lutOx}~J563FO KOwEL,d:vتt7# U:Ӆ`:K7`Fvڽ+g.]ސɲ M jgOx$y u~%,tl&)GQZ?6`澮N-6$E6''2+c'Q}Ҽī[?6˙[t?Gp{2nŶ3٢(;6o= ܦ2í6`j9d h&?r;/n%Wf]1d6[rq}ksՑ٘9h/luvwLf1as0$/aUVVf G459vxvUrgk8ZO4xrŇmD{V}i5ЗKpDn֠ˠ6JSFBoYzRLm|m&A#V;}H[-mJ_GE[Oݯ` }5Uڼ0`a3 Aղ&kxE 0ӱ7<:ӶhR3\.Lۑtl<Z0V˙k]ĹgZH)qӫDW5`U_Ws;藝f`ˀO'8nc%h}cpR~ *,*g0БX\0]]q*P"ƑZiq@+ GAs$}0W2!N*tXےυ%!͂qWE_Xrc6mL=ٻ]po<oyR*KP 2pZNˆF*nm,Pm> >Z0scNhA5fZd:j G-=A:"Тv04si?@YyshwћXWۭ@ oefZLԪ|cKi3lQFb r'߂4CK0uUkZa1 'G|@p6E0w{W2jFC9lGl4%>¶iyizQ}w]Et02ad;ĶP6OG0οynN+HSb˱+ķ}Z!))9M bzx" ع+"pyuD S#6^IG}wڽǟmK" ״VZIt+Ls.)˅$oxt%j8g: l?G΅O %j[|?Q1EiF'&rr&Cd_cYg31!tJe/IGeF2 +DxK`ר "SftħJWqqJv ߮$+=eX1qtNbu+5*]풨s[,\R^6Dqdr(ʏf )W # `J.t]WּqiRnNnf"򬣷5aKGm=-J:hf64m5'QNVbB{ q?|SKiaȎ=djTȌ `I+N݌xg'){E=B:Oat{F?; oGq݌H}횙VD"0nBT|w 6`f+7aDp3!AU߳k0ÐXwa|`vnC#|6\lDa%hGwO8PC Gܯ\Gؙ9{~nj=î9TwӪiIl'RRMy"z7 g*v2 K.tuB:KHWyOTQ'4VK:LG vZcP(63emeWoNfc(G`ؕCǣ4/‚MOq~bU8ͧ hG Иp+ = SB7pڠ| *~[]k™&;C<p|>)SZm w|$5E_nx08pK*=ʴgS;Ax.̱!#s_S5m0:Y%Y|DG۴Yl<Q) u.SW&*沣YЗs~<+xmL2'GEK))@Vz [ZbeA{}e6` I>d|[ \KFCU#n=%-wX;m竭v“:I7e͢<ɿOL֧~!<6 _L< 2)9SQ%ށ:Pc+bp֍VC3ԅEїTQS7_ BBX0~e?_~VG4Qz˲FrȇӇ]^ ԅs";3A/H+@uQ gqx֟Ascyc͚.EϦc4 nt=B,nMJeI-P60(/>>&'8 6- 06@K;fHVw$f/ͤv X&FEo B:>7CP^dCjN'yp_̫$Z<ܷtGebIQB׮'F|]ZtQtip(`ی pQ|(yo6^W.N}9[tAZ93 n.'e;es@Fm>EF_ 6=c`.lx,pb~ WgUFuL qtȞO,Fq!g$xwR%14QhbloH2r2 m̈́RpZ oy&)QQ۱$jt+.TE.(iK8迾.L{0ˁ:0mQvsr4h UÚ)SkW ^2iͅxZ%Z@5[kYn b`$J0 UGׯs<^|".I/Z A`Ϻ5/"^#a'r:bأd(Ȑ=[]lŋ[Lbn#N5J)s>&X (?4 %vPm OF~oAh,;Uaa)ܹhG'-Tei!iKmhReT$\zÔ|'lS)Ry6C dplOET>1xPmϬd>m_M/8wy|Lj< a LsQ:T˜ rR[8S(uvQցwN_(я ¾D7k!KnE|Ch@DVyfi%'=-r‰략gX5#BT-|92)DYd1k.LRL^ՀPuo l~5%YmWRu͆5Yw+CQ* 6!R pi6q>Xu4ԧ`bԪߗVFt^vy i~+-=xs/z^Xu(4S.9u1 8K]9zbYN9:ܘjC `3]>`B-;JF>u=Cl,)VA?"HVQlk܍JHa@pv5(h?Xa]\B͸mxMNDƼe:M2+!Ctg}gwV! +𮿬]khHsمB^Dn:jyQT!ұȘѪbf79v.qW|I-%EOӵ*HjTGNΰRn,9F U$aW1?0/:ńL]/#׎%y*R%L#qycڕL^9A탍oj?>GdYPldR2B 6?⺀jX` w쐤e\q1W-_S=4`v~Y*t[#,W`듫iYWtFhujEBc4φa@ i Ac$'~9Mv6ٔgƕ ޣ)?,pLe˰C!RHj,qS(d=K aƮKT<#-|Eߗ}Е[bZnEAGx&1j)Y!]'7u^5תH 匤s 75ĬdMXD|-~\`S@=hUi|\E2C<2Ms~Ee[vNQX+1:DCP & ˤ%dv?#J8]S=y!=3(PK &X2<RܽDzK?l\\FnB ; Mt([(0SѓjY, -$vXɦAzo}FAf(A@ρi3ಮ9X"MM\W H`Ggs]2 P;Kh_bX \.g @qLh:s>ʼYeL͠w2.)$ճDiN Ñ_tv<9Y r b~(ZH/ Nvxnw:uTO3F4wd8I}HԕP=!^;饡զu9J5^dQ51BN6=H k(GV$՗t m2IYgH3%ecn9X'؍}\ط`&4X̉S~7Z09Dk z8V*+7dh(pl ׵<. OsO NB(RhK51db]H'M4KS 2 ކSyN'̤2 oh29nϖwޡT x u*u9  tU=f%\.&&ҸMA6-H GE"u[hTh@!҉j w"/]"" g߭EPpLM~,j"+/ckc0 V$7`UnaĔv*X.Ď(v&CnAZocE_JkV?ĕ,Ԏ-n hwZg `rk0DHf|t\cys]\`%?9`>Dݘv(ݺ&ɢȋ)'#}'|L/*cH}=Xcf{ǬZ]FL/4B8g}q C@Ri{3N%fdՉ/&XIAspXo?"u 6 GroIk\fm <ӆNs]J3`ݼkV$iJytcr=·_EƃfʠuÍwq,; [:-D 3m( [q}l">'i.>@"Ry!ZƤ'_)Ŀ6TT( q5Ig v|2^+uե d!O6jM9&tQ1m~ Cl]x)5ܹfxudERk=oZ6Ą-"r W-(;$I9z3-󮐀jacMGExNT;nS៛Ao } g!NO8?xqud4%Zԕ;:bx!>=>/6{tի(`ӄĆIgkF @ХG]BoW8O/QE?Yw5#f+yi|n[*×Gs#[d/KM.Kmw.3AͩEl,i3Yk~bSS0զ.TK^]$R ;+WpJ87r$dˁ`W?U]hZ!< xc* [˟@yι(%vZ>kLj?[>8Rkzk}SJ[Q83<iz@0e[P"㛞ke̒ITeɽǠTİc΄$p}㺧ƅ)4{K&;Wla'VbrpVe\Z|q>q TʚKdhK/meqQ;d1qzID:L &IVth{vJ rG{ u&G_:#v I2e-xczoq\,,(dZ?7QύCU^[hC:#(No?#{S6m"maKC]谦J/g?3=(+Juq 4u4 xi, GxaGœN59=jCT:0Ƀ^̤xtF2Fǝ!eghhI/` 6jͥtYoGgc\&Ӥh_ zf-#蕃<d>f=:_=AU(û2ZKs%Tݼ$U_AI' ͖|$y0nK {\ 1yK6ũ{–vqtiARж6wO%o'5dS̔d ?{ n2jeDa9Qy4^ߞZk[6^gSXw&։0=oQ`;jSJE85pIf˿\w;T*Vy*R D{+ sAlUۓwn -+e6׽ܣ/A_`uȿ;XkJ*+6F?Z 6ٴ=Wl }IvR[JDPVk uExH)) tG@(#cpop5ŮkޕqÆ Pc. [F}fKei'!Ōhnf$flSF/ :4n2$,Qs "OV$ECK^w ёڕg/k"4zߵPLpl\/W"#yƻth&g,O wKDciPޗMZXWKIzߡZ 9`|l SN.Z>ʵ[uPnC[HMJgt~5RVWeA0 ns}Ҿ a)۬6eT+m+>>CxڡG3%=H?NT |ShҮAh73b4,hWuNxl3H EHdE)اѱGY./Bp>I4&Cezh2Q'J%wzlPH3ыVd;nSnaЬ;V4?Pc5Ti%58~#cPъސc::gP=E1Q%I@np'>R?)w|)cM?YQFDQ1z |?b29ڨTJ3$ uHI^j20W Mv4119:4h|!WI^hg]ԛ6B)p!DPV| #1RK_6*]>N@FO -K%^Sz5sb0ЧMb6MxZ1>"PJVqe/46|-נ/K,h_?Tq ߶0P @ ZZ 9yaInmXA=S8!|}jE 80{A3p !2 řߦ,v6^&BhZ,1CT6z<=b&f<8ѐm*j o%TNgzT%8遦Td"I*0<\M`/pEW}y~ ]!ٗ!\ lKr1662" Wcˢv8H*f`DzA~ً-pZŘq"̫Oìn)/ jdX?"XLM(}oQ209CwIz,jD϶!ԓ97J\p/vS\|4> J sT;$w'_0AF[Z*n+U>V[uL *ғjV|$ko#pDFv^֤ \p|K#~J܅ GYHfM, vBKkBie|/L;պM%YK]ڦR] axUrB4vEgpBGށ*QShkN[bf-Լ~D1^a_Y[ZTbTAv2U,4ُ]rϛӓ9]5{,=QS'IH8d{.G 嗽Ahegp@HBOHۦ$eA)$B>(e^8PwVD ՛W +SR&:JB߂" ~W[3@^]dOeY8 3Lx|cOth-8u,|6%@V4ҽS|WlA>Ի*=A(6Ai]`ٛ#tf]fBx g0 !.oi*/Wtq58jJ9 B>"FEvެ&[V9ǚnB^ގ4BsXY [XHIqoi_GI db.tdۅWW&4Eozsٱos]Vk˗Qњ-Y|b*M7u. ^OyV_!Gz`Wz 1TW߆18?'\;>wѓ'q3(- XWޜƮe<`Tm);W YzQ]8ArH5*n^I/BXh5-noqf(%( .BNYO5ear۟n)$P.պrJA (O/Svζ!fm!GAz{XwE, 3S˷ :%KЅrTO_@MSt25X7uX`EL#k5Lҳ16-tuLIy JZ& b@s/Q09Q* YfK/udn]6#)MD qTқl_[٣ b^K-$!#^UH$DsvQ_ū#KGD_2CVܣ8Bhѯ? A5ݓmha[bxL"1';7=Jj%N>pc4Fn@ZW.Ly8#fB L4=f^8+L#KVH,H*NFVpXCO3kܕ4 Kh'jebkYPw[j9p ppBђ Gwo¦g݀\G΋!^HOA*okuhNx:WG*X*d[IY,UY?)IkgWsVķ,! ÂDYUi28:b&qƉgci$MA4Bco} gʗIU_0V*yC^AohJBY+GtSPIG{v@43~7O/ `u:Hť3{@]Z|>:E6=Tc`P7)F7q/O_ؒGT&6 ω"f=,#~6Q1i}Ԁ{d~֑sP~&9qQ5fv2@6 ~UX@"cckq9DEi(A /pJR_6&- X4|NgJ`t{+یO zK6z#mmUpM:s:eiz9_ޭʞTx58rz(i;0SO=MgG#wSH^n(CC (zm?` %MY%^0uK!!ڄ] k$$\y\-c0,Ԝ~V5{y+fVIbE͎$"^0t;EY#o[+r7}DԐ%#SoP^ia>'dF$ŏ^n$jd<`R}ORa&I?ޠHAl^W2'K];C(i4?aVF]~c3, )\L> CW1b 5^yggݝs[W4`m53: bH#Tpm:}o-I61Egs;H؀Ax%雑QW?}p_!4 bRP9?RҗXWHKq4d,>1T{/MNq,\o}E) hgY/F5")O~."+Eb !jeWB\ܱ%ϒP:iq3ALJ-lhOJB /a飗w0#*E!Zʖ<=> 1FBY)8v t^Ɏ6zyrfԎ dĜ@s/+m0o)lo馇8[8 W^j1,*YtO 7jƱ5 xGi{ H`VW7ODw%EV} E!O(]2oR?ǘl.`3Y#ἣ^AZW!ӱ\ə,zT~RYG)P<=x)ŷs%85#+ǜ^D%$N1d*-ʰk0R[?iX(/H\24Gfē>Zh7JJS@"{XV-55hJt콩1CO]%?C"؝GCol.D%5yz=Pwg ,#Ahu _$}T r[*rJɊ5% ֎qnǘla*5-qto#tS:w.k(LF%-ʴ,e⮉yYfҝZ}]4: xQVA 2~rxo}A]++)1.{ ׷hb[$Dũz}O?AcNt:Yq`yP{(veSCދ]VgNs:ca\h7RPyEQDTZTeAcqFhƃ * w'E\UӶ.%_͒ pH~i,Bo!?5a:2|?.^R$VsмfŃڐb̥ˤyÂt}S0nZ1x6 <;k4a5KY/.U1~;K.O?{+ ١$C,EdUV*lC_*D)<TyhN ǵWX !QɮLdvS[B_L;vF( XHkPa /KriB0mtVJJ)$"8zWsC 5pyuF~̓aKЖno9V P ɃδI^94` $h{)稠Iu Qz[hUM:c鴌|2)D{H,4b٬#CorZ_tvZd5.G!ӊi}j7[t pNL 8*Fǵ>0S۹nEs۴fA $䏭,vz0J  ?[? b$a \&/<ف/F5 hgx4<4HohHOt=m:9MhQF%H&0Dތ)jmnjz>~7>_mS|bEUOt>~9,h3UtQ೶ 1P)Z&z;}ˢY >MMKL"jS[S?s@'}`b=QLg-,sz*A8,b`c_V+gx",:tSۘ]UC Ц AnNoT0O-w ]yaVŸnq.G fŵӉ"n_< +ۖ}>ү^`o. I5J ։{`k_?$k~AtSs.dAʾU BJy*kqcs#<_e*Ro 5€2F:S)]+Dj6;D.X2IUmKH\?aЫc pH*L~_͐En0 Vd,x)Ujחֽg,ENq {9po 譱X3Yٖ肶' c~|@J̑h.Ǎ8s#,N= t\fj%R؞sh ʇ۵\uJ+DEDi{6⋿+FZ>Lf՗y8J2YڂD{ΥH [p3eLK m'0},fĸ#i-75sESpF G4#u]c[ uc1h)O50>:2g 4AWHS_-O!@-rꜜknP.O SH\bKΩinM2IyyӒ XB|V&h{š(=h\MI[9Zy.- \Nx4n媵(By=&qVlF2\j`ہ5G;R*eU[4/i@]I?**y2:\`'bM+dw}"k d|<`MF~5븻ȸm7KjUć0Й*2z⧻"cj^C\s52#nSh?y;ٟuU5t@U<"AM$X?J7]JFiGX" @MJ( IY߀j!7 S˳uMIVD% qv'ҼQ;zu-3JR,r4۱PԚPr﷽sIߑ`{g1XGb1}uc!>4cݹs"En_md6s-rϽ?yV#eǩSCbY}TMՑ|A+~T]jd/<ݧlk?ěy"uu4w Kgel+sU䙵|dNlpO)A6ZOԀs䶰"{,e?n}G׮繅kpR&=X+\f"fUyD8B .)TaQnYTāB6韮T'D~Ɍ׈mb!tn#Ii#S""9/r4cɅmׅB}xo\(ݐj-a=`K[ak& DZ}4܉Vk}6قrPbG8CTq]!7gUXU{bl'N Nq|/! O }.i*ohl `m`\ ΍DH'~O B7;^*Jat~ pn7bdc'i V7>*V Y^eb SE;"B0ZDgZh<Ѓ t(t63.}e^׵.^q1]TyCr8"WP kOOLݓTE1/"sʮmS@K(GwZ?.]%|d69s+*3_o"e#^Bvܩ'¥&{݊f"z#V6eh/ 7fWy63h-z !nqmT|p H%~jvb[v L*y\^RRwRʑ KM|޸ /'cx +ԓ)us._D(+&B(v:ץ^ B'B>K2G03+a,|nS~FQɠ[ȩLz<>R<&% W4pS8HL%D YU.SoUb`AX,|:Mq57Sŝu6ֆ3#^} nN~M3k|V 5F:}wr?~n)3(ײ܉^Gjn6E* Og$'qwv=jc5~83 Vlېp<f *  cC)\:璜COM`fhɣ!v!!5[1Iku7f_EE)ur XWK5k دB} \fr*vT| Y.ЀyF;.A 桸9COEpz򴣫a$ &ŝk/˒x;P>`:dZR/۾.LamgR_^VO[n P=,W- ܱ^*Q2ȥ;=+/jNpl&nީ/UO6P6hG"A㫂c r=xl>'Ʋ_`q\k=opאDy&DKw-1hW foIޞ{la 4B1SV5'K<Э3ɮ?i0̳ŕH |2~j1{v_=K[l|a1cQF;!q Sj}HR/@]$>P/~:Z^w~w?l@8riu|Z \mSra: ^HR!HOJ=KM4 G{y&[;*mƄNL48ҙl9Mеwx?Ⱥ/ _'~?[k֪6 $Ё/. JD#H$fk([:{#rA&Z1Ln.  /^CVr#y(Y7WR̅߉nB1go/Qd>6Ü k6fzq?Ħh\"F8|y?ͷ?%}q 1"<c5@ɇ|$hKEaK 2b4~co'CvFd5'NJSg[3Atx|C$ua~*_`naROU?GI7S4drې8{DC/weӤ٣8E1%Ø7ROYHJ_c/N⃍Kŧ8K^yc!8LO6ߥYYNA_0/n3Āk3dB͇2hN(<կo"ƺ\(Pw:POygڹa`Rڜ'O˸kMDhh) +ׂj .@\5kX~ o9L^-%rǞPV5&^`0BQf/S ~4q>,mSm>D"~j|ur7'/& nTK*_\܍GC`lΐ"|X&ОxEfh ĕNILPɨ%!VQ9.H':FwPKy< (xz7~tQ?Qf<Û{jK;V7t4U&&Cm_/8~>u (s$8GƑ|R\6.:ns"E%d{u BB~>1!\7g EfW22zQ?9Mjڌ$XfX3D}\觚E\Nr0GY.:ii8^ervqas&fQྜྷ} SJWl:<"S)/$zZp%'ٚڲ1VPR^0\(S~45IH0aVWz5_i E&7:ɾ686HƼXdiHTxۖ0A{{nL$[/=A8Cְ֬ 2.7dlb)(;j)UcCo膱f&CίRVDk%GG% W ZW|:  Ov3S9l4 V{b&^fB3w6c6C,Qwc сd6{.<3i/C!Ui R%fV zPIѮP̦֔ Zg&9  ۹%J}@_Z&ő] QʩӊjH…ޙ,GIuNAdߡKHIYXPN~VW p7iGxx#Q'kaS XG\Zp:5L8ϽR#틞ya#\bռ #sx$cĶOd^E~6>X.tjqkKN2MAFSg2 OOeV"u BM &>N/z-GJ l";Q~`0괔ޠtUE/Ȫ1*f0^mqT<0B+vnѻY1l]։Wը!5[tG~鐩 BVNo֑BVF4X|S&к(!RTg;]wR`漩&Zu/&&ipf@nj@coVrTZ |2q êHfYaͳ >3Kh8 쒸qWd;5Vf}֧鎃}i1dVk"MU-(?ǿ2%l_xlT]{g%Cg耥z24exyBX.Ѐ+uT}^ۃAm3 4slՠ z$mHwҢ*pH[x@_M.9TFָpg}`:4|^h>pۏuyn|[?|SfVHƹvSm1 T] \:e"t;HvB,>Hk Ylygqi_eI9O˾NH!{E89#س>_#4U*IP ҏס{N!2s:$NZ=oZ 28eLVI@RnpL$+ LF;Q JDF~8!ڐ;)QN1[@OLk]6=)AOa7iR;i7Y*qh ?i ?d,AMA˭5yHWs͖"J?A衉!fJ5]j6,3|:Wġ̯ٴ Z#l 0DkԮwsU5A}fh2g"uQWRcr9 w5 2MӞ'%)lNoU(m"{=>(HS[ӦĨMC/s(Kzv6ә3گppC΀04t73 xo5|U>x.9 TF/1IS)̡wYwA}״$q1&Ji WX/ njWfb;#jݭ|a B_G#nAѸF)2Y,Cơ)pȮ(xw9 xl.J‘r(|81YMz@9Wݚi0Ux%A&PLD]L"3;j? bk) %-ܒ'[~yZ,xDo_q= ~WlIWf.Xfhrv62\+]M0Xoj|qXK/LXNDll}8Xʶ_H='I=BaȟrekF  =R ( /+2.I`i+J顉 Қ{foW&w"BYCsat2l.[ǒg_?aXYL'eћE/W}93={C Q# SOx,œWPA6O8o4)tUTbw-r;7E.rդ97Xpq1 ٺwԋwOw5Y&P4+":n1CjMHQG@F4 8edcx^?ܲ:TUu( YT{QU${5Zě/87.QDq^qoR~WIhX3 M/ ^q_F#{33rj1Nàz率./p[kWפ{s=1/=K/g}|dQ`'=4ygt{'b h`,1BzzV{۶]q6|lt b{|(p͕ AfH%lTq=19Nm21 j?Q ]c5DD>; &RH-EkYc\Qʵ-jO,]6emz fZlϱf\)J8`ItDsD),_"i~%T_uiaI͈w4J66,BwUP>/gkx0J"Yw=.#O(0hcv c+[eQ5uἠ7q[x)4W@gH֖gK/TK4MWMfG,D,v-J.j8EDwyTu*r_b7gV6[fqB@}J&ͱʷ5$pMZ sxJ9Y Vٽg`5lj3W.Qb0Aop{^F!Ei5*1H"1E^+5~aѨO݅iy<[:@;f'CےtY 26\?56~2:~OYo,9zs\}I`@rYpu# uO1c+LJ6c>cS3g *d|{k|1ǹEx]SEbdJl^$1 5;?wz0Nӊ2Hdl[o+ V#kbs M'ާi2Wnc0.0oI3`F*/;ٱ'dgw<x~\:9wd/koYoq/d+I-:\ơU /7h^q~]=A:4U.s7(#_k _6[ulG{=7Bu,r IN3)[a.xN<ޗj0t~`N'8]u{Q$2_pӿڈFXz96Bkn3a䩔ib6߾*pdžcn'[dܵ^M1<L?NvGM1؂ݭ3*Xd Mua")\g&aKx%BYfaQPD~WYdJ"E֪12 x؁3Z4a4ɗ[hȣ iCs}/4: +F BEY 2f=虸tq `Ch}vX)|F Rj:a5Y(]+7;-/$;Zt:ޕ<ǎYP򸭉M_ֹ 0^}r\t\ +h$Nf.7Wd50#LSa3Oh8C&{vC;ᆡ[CʀЁ8 ?FjmG]',Ti@"*FAVýJgj7/_]_+k[.VnefܮfF'oҿK4M6=mV'FI]u Ox˚ ӧubgssv$ql*ۊJdYW]fA7H귕֯2LpŒa4DA_27]oeSAʼOjϨsPg;@ԠiDI&࠿(]& GT4>i[MQ)5&A 0\u5#Q{zL98̃Bܤc0- (ݶ=h gK| K7J5O^* ،ŝg*t%g|T_f8tD@$0Oz"؇_^vȝFFnqjcaȷ MM^ |7*iyo搜 QZ"*;%X1VB +X0 ajb&F2kƆV(k^,P°[= I*٪lhtD4J:=-c4R &aÄI{xdt^/ _F=ѢÒ>aN>%z1I|"_.啺g>'.wᦏ{ PC&~NMFsp׮¿K}*˛W2+%Qpΰ\k᳄ -3t,0vؘ &YsMT?ȏ͉O;!VS}<[R$ 38k ;H{PO "f5M]9\z5 1`};|l$`Y=/:ٟ *wu9ko:1a>ͣюg6b_5o!9=׈ɴnBT<#=!CxzK SK ߩ> `>ɺQ >M|&$!Zpo8"t0`􀒫TGfIO&?'vy|=":eN%M[PTk8i 'g+ gos_r$ 3,1r ,n: WtA\jG}& $Z4(B!MZ€w0{EbLG%m\3I(3{ݰ>)ur\e2‹{|Gt{Qv(E]-Ѵ2 AsGC2rI7S gJ[|: SrDK~Ukd- ]&/zhd/$,P~~|iov*=#[ߒNx~b P c}r7Gm B{j@ dD 'NuȎf[Tc+bjWd Ro089kXJ{YA+Ӫv[2#mc@qA۳)@JKZȷ2 xwnucRwB8%B4^2"w~4NU\I!TPzpKhj8|SzwrN]_Tg֚l @de& CԘ9$T k a =Q+CڨY2G |>7"3 > GU eafd"l]8nzSY~#оɡ+sPy*E>9"~^Ǽ}}dop:k5AhA* X:D==w? ȑZ֦߬@'Y㮚clAJOp[VW-RENI}R[Ju̞9s"@0aqLfj^X$]͞Mx3?Ov< .)J#_u1nQ˅, 5JcS=Rj60t6?Ĝmp>.~")%9 z o=h6ƿ=ta(@ >+W3D,ez]-hW$Np=L;ͨ=U?x>'8 BB8)28ΩhFJ/AR.2)rB~G!0J+NAOMm޵: 3P0B)Glv#4{"brKsĴ,Hz+ FL"׺k2.f1Xݩ+JPy_GG6;uxI}HG |fb ]\ AYK iu1GX(Gm:Fx}aXj4]fJSd=z"QK lg 72TotOӾ"n>함5F5!:|BCL !Gt/eѤ =P$cΓCY+ 펆:drpS5!#/J-u[;6V XI>sB :bA~V=`_:m*'_z), $uU͓R$0mgm/ֶQݻH,<[F5:q/  ~`v+{Šf@}Y%N)`*꣄`.^VgH| g UۯP#pBvƙý >ț%XqxŞ1fIKJӲԲ]4'ޢyAkxWbzH.3!#Hv_ёǴ;;䤗Ot1H<|>PadlWFIOօ]eI8VURg:FUMmmZO2՜'׺~Jpj£&O3輅eu"&>ۏ"cY\'WR^,`JzɌR2by7=qtfPx4!V!0O휡VA8\>{E!td;Y:ufѭh ]w3Ip#,/AU xHdt)SQhYEᗎ_g,mf!T/D1X`az3<@J|ͯ%:qOqD6;BR#5Bl;)x"$?ttrn7d98n4rG"% WmUt:ZUTh@Q9FT&w MFU\FvcJ]Գp}VS։" u*ޘ HvϡuƃWuj zmEs,Gdr9OSnC-(SH-CD?sGp|bU~Ҿ62c0VPRkfz7ZLjn{ƪ#'dx(ZGK9g;_ »+[b715?)u5zΒ>AqR3u4> oknG%iN* pZ Lȓ"cAX8MN^=*"-dA4b$-!-p6hO䬁|(zŋU5ގ1cz)Mb5낺s?taGلs;prdwNZ`rdS氓ð``>ɏ0DE;2֣BRߕ)m+_+I #SeŶi&BB eJK %i=E8Ws9~8\!_³}FOm48F*8iX>'ΨޣF@mwT>ٙ;1(P@;gE2<ӱ1\$q1w WZ@ Jޡ r7W"/Jf3w77ޜ'J/jyinK>&O{#-Q-*}zg$U gZ;4~@!kn$5ڏ"4Yy~uhΕ/_Beeg>0%+v"F]]X!N0:h@QOiFcA3ԞFԇE%-rY0N]ȡ,\)-d\% MwN v,y6+ld7e\`9}󖩎|YM#O|' d8cCM.&ilbZofO| w4TF2A./z2Z"0 U^=\A_1cf ,#?Ho D_qDB0M.keW hKAHV$ȼKq3OZu()wop[5'Y< E]ƦxSke':틿% e|󪶏: C_$6,#yhnaOwMs^қ_m,"ÑYI(AgŦl[ڗDMnxLg($ 5oO B?,.tn ͷd퐱W/dƓkںd8՛,+ >Zk![+@uZ@`c ^%82qvOPy墌Q&'sC(­y#ܬeL;rp "*zH'<(]m"sLG6<ba).[c/7wȓD5]Hٯ{Z h%ik7lDWPwLb=HiJYi[d)Nɱ`t˪[XXt8>|/.%FHAGgN5k(]&07χ귮^ v^{ٽlU"[eIJ?M6 8fV (양-[ыB D_9Q*]DU~Rb!)Tշ+.- 4Z(Kt͒! i|LkyV.FK 5=iP? 82khF悕 3ֳ&@ :"GZh8[|S2{PhaX5F"@灭`_;W7ٻay9bX󋭓J+q v6ފ3"~ƒ"r eB0N<τ,!K4}/f,{5jv 8&.5kQl0Nϕ$cUnTn&Wb~'aRtaUVڸS+2-#hKvK<֤u ӭK(R$۶ G]c9:7xҪrHO+SX)oϐuD(AĪ5LԼ3!x^]Q2at%͸@j \.& Ne[I5 H-IBleMc3:Q:/ u9a}A$Xls !xˎ(,r: %/bĐ6uxWO{!3]:h(+r|38\~ %&S~;[6u=x!ib~Ș`VԥX!W3D+T@pRTY[T vdgGKնfq֕[S(Hlp8 獅Ry?_NnXl^AsEW>e|?[G.?\Xu;䟬 "z .Mq gpD\" %VY.̙N&N.>ЮmM})Ʃ hͣ jaM%bZƅatYl[_'qB`pj'U>cCVPջZ a?;^ʼ6ѩV{ Tc.3Q 28|Ã\*p3 ^57TW" bq$OڡN'zp8_35[34/qMVm)|Q i*fEuB9n89r#;Y>k/Kpj?r9gy XIb7j:E2MS?΃ ^dxBMt-=ȳ訁 >091 7AU`sĬwi <6׭I nyئz"2Xdg6 /ް%%Ytʝw_˯xo!!HAKzr`I<ӎ-sƁ.,mq6"4Jpڠpp_I ^l@^<i\2-2tm>2 #FʅQ6ä=ih8kKҚL.51u! vA7:Cwsҧp0d?侊6 %-4N/E"ň:D".sۃt'x#.JF=zV37L9 G+lO:YjWotfLTR(x۫0pTqбj-rQodBJ N޵t̳Q6,q6`3aMCď'%*:䆘%\ĎeK+6*cmZ/+dlud 5mRo8A*%3G4M}`ں]XE23 U?0TY{~aЖI1KFK>V1 * CMyNr!0`2J @X3Ջ6VuaPf-?B@ RRk@S) ALdm2%6PO"ưl3h6\Λʈ&y;iXg+0<7zbPoǪ T}lM8z>(5̭#0u"fHV,qD5E._5q.Gl:Sz:醂 kQy@6sT~FY`pӌCp曳t$U6U>Kz?E3wTp{]p7rͿ3?YLy}Tˍ[ a`bgwϋϻes, YCk|RohPż70:T;/ s(7f0>`rm ᇱ//gqm [GGMnts0doakl;it G$D;9@~ƮV,e >vU!jE ͟$A̩hPEq:5ϛ5ʸXh# O| A2[gط\t]|5mf/nδVΎ% uYߜ$-_T!j@WN)ܵ r ]_FGbsrͤX'q)Y>rO[kh@u*C5e%V6‹ 7޷Cl{2syiCGqg?̵%ϖN)`22t$8'ƂQJoY;&b^$!Dt/rWf]?}5UCHtu @ Żͳ́Xdp m'&V6Q#]o&J2FVxI*TQfR mETZZx{wSYfC83k858;iyR/uȀFё'&*aފC~*ogTJguݥ|_A[`dqfu\rcⰤQ+H%*TA!~:?`\a?R@CֵOӼBj+YgP_t,c&b%*jCGLbB%GDԍ0X!w~{,θ!/›n„Ąsa~3vhzU4&hO(3PZׄa/xC!'K/'Ac]ڢYUKJ\سǎjkҍ޺7 luR1(fREPWِA' 9߉򹞙_7etRxC($O͕qB8S~EI%4'VI#ꏇ-<LyR8\}^u҂%Hu0\?w*#r_24ޡZm.|ܭ-͌Ρ}b=E@j8uS#!!yA&:#ЕZSDx!!,ЉW/|1w ˅Op?샒閦_y<xZ^9O'0DB(uZA?C0}݃aɬk'  5 X\2aon:ZWEh rZ>e>/leA-??>Oa\0Do+$jOa&hwH #۴29 =9S\ V\V{78+ڿu I/HK`5Q l&j X78Tg=ZCN6p%9O#2ߕvvȃ:tY M$/FSeXF=q4˔M^[JVҤS4>7I=@VB0rY6 Iju`ǑtCXǭ탤2gf]}!T} bil4 'twRϸ[oGs']6Ԅ:V`gCKXI9hҎpEN,?WYf97&"Q2|LV;HWWAQ̬?bU%z-ՑHDwb[ TDVVQLnL*y9黴Q-%;=… tv朵!Wڹ]{Gx V&rR[&2G:/9?e{>Ag0E'fм9RU5{zx^b`rODkϖk-}plO1/}[m""'A^M['Rζ, b ܊(^w:DG]<o{ b%R:\JlNn#x]!)|./D'TCqӦW\C"}BJesWy|߉mX=\b r=V3+Cjs*(%1;S%}>R(glԤD'L{%f1uw6- wo]KNlc.pԔo=eZi4ИubpIE7O?E zar)%0]k;V+*J4'0K dU|T#0<0= "E(Yl@ %TyYY2z$.N71=-VY'z? nؖ&~:yx7M+5+X:TbߕJfI?<1xaUORi&rǝ7ބPatGE ˱$),KAv[R\F^z1|>vG_v"m>{ (>1$*9PbC|TZ7k% uCυSųo$xck}u 23 D?p3 L'14+>I(0 ۝E ʽ()z/Iu<I+C,tRX_NԌ1/ tvG:t"%r Cu8'sWu#6 &`Vȵ8BaEnS4Uy VS@C؂aԿ`Ucz|yÃ(dQ#7檚4aUԒ}й!t HcS08`l`=E:W7!?t.cG=mPBh9x."LV7>̺3K !Q 6(]xjص"uU}┄6h dl_^.ЮsX `+PZ (U>FPP#tJqgx%H"KC "*U^03+l x!lxgE*jN;r?6joD_Q|g h߀MWlĪ?6U$6gȺVm' 8hN6$xr<:+ʔKJ'ChK1u@] <@6Td߀QFG,Ҡm{ȕ-St|lȻ$n/ EwP;1ly` a0'ܳٴi;%޷HQJn# N\U?Λ=c~?d-;~p0 #\0tK'ܦfD,H7o˓("bA:v;ecUt&iJy&)cuJ0* 8 @g^kdCyL6FhiBLR%jd*g]wn ɞMݥfx F4H4ʈ\Dh#ܼ{ KOzg:B ؍ \˄nՁ6c`0-b` S9[l֌(' ,.*0x\o=^)IOa_P|TpN8 :x~F.gՀbŵ{E bGdB*1d4؛K()_=lN?b\AX$p8…< Ѧ^ ['\.zKgt=j )Jy/eh#EGH~;@2Uн+CZPg eq>sJ$ |#Na5q^^CȰZ `Ju3oA<ۣ& `lHGqR4VuhSfleaIWؕ#fB;p8y{>p5Fcx5<^CzE:5yAF]rx$y݌)%#iF ƣ})"ń,n%3׽Ōmf;_msJQ'{͓w͊Nji #2&'LMp1P8 Bj(]hcˏјWFc{ж7^Ԃr`?pIU*#isaX(V͢~:b9O,bCX=3ێEdn6;eD)ǢpB|tJl$tYǧd4[$aB+l\'Kp&tL`hS ގE>nx+f:4( 4 ;A٬۱}hS+rmS:.e6 3?i %6ԤB2 Qu=V1|]X>a} ܰ%r&y2ytԧ i #ud1P#y!]!B}5 -`CQ됔?X ;|l0X@cb:!\\ʺ,ov5h 9[PP ܘ:[SS起D'VQODY"rH?]Cj'5,P@0Fvhv?ay7.N}:ԑCl@OP02[gq7DzoCm7_꽸XA Q]WO 0xAl(7,$'} j>3JF0ps`.5Vƌs%n[h/ ˡ qr;J8[wopzxXQGFL'!`J"h^$pxx'H5㵯J'#6!ͷ]}[E۱1br?>&}j* h0K9I{{*8ck"˦qK85?A*cV>xW[N@=;B'ò5cn\,+-"~;'^m.j YŖ քC,@Wؿ@@_{8X^)|w`3ߔ[VXWH+J^(#^|ۏqLW6U}*OWMĹE^ c;6(DziJt0O'4Bo5f`՚XI*w ޻ZDpe^6iG^ (` f+܄xL4 ]_ /le|ە'Ħ1= I <A<,L1XlkEz*\88Dv8ne{P[f͏MۅPmExaɷFDm/iW4[ljLq ptvٰJ`!·-Y> *ݯb۔- R#=Xhn]P!?zp5CzňOPݬ S6s vp~W⦥$եQ^-0wx֣f['{5!yeMuALIJuogj!U_j#x:`|$)ŭ]yv*N522!]eX wO̐ø1P9sYŖ7t{=SSх9bUg WB1< r_/i RS(ʌE" kFw _jj#8U+~v?j57I`4pCՅ@eܾyKUo1XRd-Sz̻c\T?*kHZdTpnȠHY$PgU+a깛f[ھy'-UeS1+7iǯD؂^mrÔjDhzMd-uQ(G1lOtgOJK$)G6sa"7l*ƚ&^+ `-pdg/e|0]XfZfVf/cF걞ܭ);z,-I[ގ: zֽI:}'S8LJõL 3T6(S*BNJqt^i| m3 PB>w9dn>cZNej@ OvTVKH UPeDsHVf_xXCM m`Vu&η4Woλ`q]  \J h'VUe=%GaA~D4RzzF5<Q0 zB$!snOn*3|Άӗ0Z96 >/Q_cT\RWUn!׻Nf!+ :`8NGpC*$E5c<2(S.bXd%DT8۩\0M`IZ5ҒDK np[}}zɉX /ٷzLWBeWeFa\A`O X3kI+qSO\N^cS,7fN0Bw n.HzL2Vy) *їLkoZ>( 7;(^V{2 W'8խ/u/WtRp[/1w[WuTUחOr,PzuYa7B?j UnP\&#7K Yh[\/RuXu IfKyMݤ1Cʧ[J8Uqɦ'-2 OHCb:Pn CJOԹX(aw(X;?BG ֿ.0c0sŦR_P 6#Gol W5H|5oE <4bS }[ePKT0I/7,ՙ +E >rZf7\߯ilc{sH~\KtGS=ͪ("#L=w,_lLFӢb}3Tt-RER: QYB ngkRfACab_)!&Zj jyri.靹QZdu jCϷ`]7H Mg~ꨊ\@h<^1dgf-թ~;C' طwgYCf)"-壔W{HKG)" gGbEdIzQXz@(˞I'6? k~MI^.UȶA`CfJ1T4ip~Na b0/,q@JeUF$t؝. ^c_Y١:T6]ydУNq%a ][{"'CZ5Ĉt]9V /} 3 Wtl{ڭrZu8YG?ܓG;}/jq*,޲,e-qO1~LF YHBK|, xwum#ޠ~Nfkg{<~1me8c##k\(!)0e4 .q^e Gc&l{OsRA#mU!>fXwJAbVZu$+|7)|?¦HAǘeUarǖ?pl@sjend>BZ)Nh._5Nz#\yziocp_xҞl8)1 ~MU~}avًh>uf=QY pY%UBI|^C26O>W8⩇dfN'qm7}W]Lװ+ʛMTVaΕ&Oql "ɷDS^ȧp`l-U`qcz0N s4zT%2g =M]iFBgܪ$P?:W]Y<#t8"LU\_*޿r+b&,4<~K#7[qo}=2L]%?skxP&ɖ\`jnZrDBKf EZmf5㒌 Rvm~ٟ*<}'z]مH<}H.s[ϪVE5@% -Qs ܪGCӯFɛNZԂ 6#y R Î][3ԉ2G ƼGY^ÛM˅s^e ״{V"ָ`Z*AWՏp:h tA|36] 6^޷9/~ :JmԴ dXn@J"lu?Xfd/ YmIVo5:ޛK(YXp~HMa?CaMp U4pD_]-)hi( H.!J,zYfEܚO?ᩑ n-U^Wtʃn6ާ̚(UUꕉQQ63諜XٝFpCWz@,'R;$ӭK_v2&1Lr zjF~c6kXG$2M]DŽoYi <"~.Mh|wMO"HY}ޓŁ&w$"ZdPyS)pR@A?0fwkE-O2gb~}E0ҵ'U휚d6pveW+3~E}EWp9Y?_67b.9fHaT,df<^cx֡ۖ, t QcI"ED+WYjNgn?DxICw5ǩ8W+f6dǰ <_gj7 ke# ͖O+Tcs uLYR?7]:*ڠ$Xc%Q3`wѧzly} BEMC-8p+`4"45HJy&"/Lz L -uBIԧ\aanM7ڻ>+k$ZsWr/"bKQ$ A]ӽ6@zzt4s \Y;r ,Su[0 -xTni~gi'PLnc+mV042Q҆k濟fe!L> 11۩h5븄 8@};,o3;O&2tދ+pJ 65Փ~NJ(}Gr ?$g@91K }oa) @a Uqn> q^N-e{:*Gds8Wy,$u8xv^y dsѭKg.d~{=s,lB=LSF[0`61dJ;suMRL".߄T}1Ww:*[#RS.bй+r&N9qn-CB V 2KϤ" V[trJ)j=ES+ [/1KK*>57It$EmaCdh0۫1Qz{n8X}[;?5(4SE΁q.xg}lYП<'ƣ`:8,i49d/0jo8:MN|>hTIJpȶ98O >ve&i}')mF; Il/};ARWS񮣟t { 刽8>9Lf@ 6OK@^~BGJj=BPQnv8 80D!{ `b$p6?v׈78e=clWat@{/=)BF b+7nqZ),WU"-q >v-`@ug!Ԩb`B`zq&$1 ]1^+,sӯxmeOQߘ (&ղq`Kllk[zw೔vbdH85kL2 #SHHE6) $+C{FdҍC9=Q?Ww s\ |v }Wmky[J Xk+Q+]a&Nzך;:&'rXC~tY:E_gdz5q@TXC$_p)Rko9[Z2ZAl…X}Wfh7f!Tᕀm?O &eg>I'P:W;C R[mIv{jd[Pǜe-a'}{lhw%qcV>4 N9m~h7dA@>FƶϚ6PVlR81=Aon:.շ"+.I7ELh*[@ 0>6mJNV+vO!!kL䪃4=h[я|ru\׫W˓bY8./UOlp70IEi4C]͠ӽ0@@YXZR>݊= ɋB#!,T+9r4"FK Q 2ʟŞaUQ4G i@dۗV`4".s'1~+x V$Kt͵<{#.U~tRѠ8*m9%иཨOm' 7E{և| 9Ӌ9x("B-^1˜bzv`Y6r?yѻAEQ潆Y\KDNOݒX4ps =RdiBē+ r]^njۄPkՂ>5Qc~U;éHj's´^ Hq"Qp9=X (S~SI-X;Օu 2pq㬰}i- *#1CfKOSK4dYAxYH-Go fhsB*"D/h@J9prg* U(̇/NVYv?Q Z)R!}gh4.onscN6;i7vuTnMȯ~P:p.k\Lax!Ӽo=FV,[. ˗"`c"S{t [<4ϭ-{h?LVf$3H3qżInY^z\&٩Ӭﺋ&)yl o>U:51K= erBKݴ,ʋYsm8$kuQӤ_(~U53p+&+7YkB6`Uj}[r˅#@MGt O*{P X<{fV$ٳ 5Aj5ROl /B &__Mj wb}|7qm[5rZ"z[6:Ky|3%Jb;ۛ=QAzoeÊ 0fO<xRC~2)2F=a/XLxx(K:h[1Ֆ_އS~ e"%lBMAk n8"ǂ+#pWNh&&I(NoM@a5px /{P-%{7R̂aؚS6R3&e/Kl.im}KMqeR6) !HVc>V{%3W:ZjgaVBFbX$P|*AƵ|g)%ޘ 8 V -XN\`,y.MDFLe3łgiAq߸8'n0A"&kƪ~/ZWagmyvSʋk_*YĸJ4=JQIj?L4V0IE>ݯl(WKe),-,!l!$VP{\'SbkZ9"/Yoŕs2D$x =|{D)P>:%?e?y1wJz-©3 HQ1M[}=&ύ6e SѾcTu.^ɗfPMrv *# ܤa /!wꃳ5%Ogh9c8K7ebF/"Jo߂ɼ.|8ğU}ۭCKt4't6”k <íVy20OwU ѩW:ImZCp܅۴iwߙ۱8n" e2Z:oB"2[EaȈRUbvrODcz5\{uX*:x-&aW5`XAa)ngڶ'2x~`J^`NPRcӓNH=0#,&6y`[t-~G Hݫ?W ~yOh gQ==_)^iA%p+oX3!3N.K'ή'"6{ wdSj/Sep.K׬7y\gv4IP*L]ypK!XՒq\6DWyʩptNu$i0aVF`'r]73ud>gLJ\$aI'.,uP;^NÝ= jeL a"`ɮp ;v:C!m}c,`,P,^vLw@ /!O= Uq eVޱs f+&V9u v#@_: $x b(I!zAضs_X9le>g] tz bik7?J *3WR8QY܀,mW)-n!$s~l~i\牏"cR;JKQV*V+Ɠ2)zɍ1.a/-onW8nh]7O;hLaAG:/дIPY} l~ EXҚyOfcO2MQG̹{ l9y-S+.UJH!7 0n4 :L!16άnY(.ňn$ o/<|Q;SԊ,:@ 4A ޞH/gu+0RS"vh|WM~{+?a1>C)dAoM@ػHA#xnGP;^IE A( RBxJDb~O|ёmSXu3#8! TIzb`7;焿D%bhh1[2%jx-fwk +h3 )#%2"ϋd-0l#H"#ZPUJnl |В:m@F ~\;ĝώk0<)GĠwhvht)16.Qb^ A.Ø쬈M0 3 svUX QVjqHUBӯQIT\rHž *N?ĉć!s;PbŦI tWF6GH)Q`Y=5Lܽ,M;( /AbS9V=jvxP0OH =U_k啅?p8mR濫~ExqWOaugQ,O " KV :^v;XL"Ͽ.$ aZuWf??_CcVR4nSYx(}xAyeԯ

Y}/v$FvıuMQA? 9NCpDu9oV0yBbEl.YÆLrI:0td rw \h%ĸL 3DTd1=)) n`B>d))sɧovI[R6Ѥ^`妣bOm(qZ^}MʋF{Í?PΖ[jo/I+x%x~ѢSL9irhFU)</Md n]HXU(0Mܸ7پqxZE)8nBOq嶾Cn NN{nXI' _Iۨ鶲D@ )2v[56G~4٤z oC),T5Vf-YjCV xKq{\Rl`Q6Ti[T%TL 3\?") "̲^nS5}yA2IWECp  ׄk2c7\:9XzE?DάmqSc݂ /.ȱQ _rVUs2}sNԩTJUSбTaEBn6u:0QQq*t"f]傪h}xg. hX4j&D֖Sqzh}ۖo"ڷ)/xt(gJrC'/`h-< ,F,pAh؇zw4!igw=_įޯ]gw,& pl!=b\k^ΒSSQM]y"KyK`2]촂)`BNwQ3EY*-=MWCaFm}+s?!he'_4->Kn$()u֩(Ѩw/&b`$ֈo B,ӿ2˛{;!H(Fv(aQ}zJO߸6ujvTZH+aBH`1z8fyB4f54 rx]#w H,Q!^Y5_2T~ ITG11"<@z`{_`9VAoo86165PESù^U* ;^Ff1C2׸Wmb ]ODgxD/`nnmiP P;3=$C#W>rkI:DץtnL+% 1ҍ+h;| i(АEԁՍ=yK|>^DrjT,7 aFD*.rXk<\Č*pMDž!v8xգQ 5 %/4|х vwOq[![8yNLX?~Aǫ<@qFER.2.|-7v&4^+cM//d Rdv=<~vc:#4dsfܞhkge EQR[p=)?R<K-#@>\ 5x-',`%U7bEƜ*zͶpGPc)_Anv 1=;ABO (ou\Ns8my]SβROuc`bg"t (z'c; 1Nz=aV " TF_l?h .4"MKTlkq~d|76NGKFBèͮk[d;M74l'+"\[JRks8_UU1߲tu?0P&f kĦ.,5ш6M$r~i\# +O3ccɡ,Ll/C0pk !*O 'kʟ 5]Y"mSZYLDojzߑ(QTJ ,VYBHlaج>z-P1~- S/]q=fiE4%Dc:hEZ"VqAGviXE<DW덫Ae̫8h_dߚWd$4)NfΥ3S Y<957 ulô,̕]ھ8 @I F-0F,$|!ƻ.^DNL+H+`T+ڳr!Cٚp&TYA׏2v;h}Pm6*5=-Sp3џzApy͔%M%m! g;tOr9=p[E=F'~7wє6$&>+;t0j~(%$5?NSA}WEK3iHVh>gX1brgWHֵ=]=G^^ӆtywtȱ^.޿Ӎ3kb.J9{p@3u2YNhzF ҝv9wVݩH1߮]x&buf%-};}31bq̸<탠"""Q. 3{gj.649f/}>2)%QV'()XHĉ1:8S@'$4.\0 )<޼Czab A@K©JX bC| zʄaj*& ">IYnieG=|ox3b2q?cT.VGD64J<SZӑv]c2s{{+z"_Cԩ\žz8}p>?x)ϯm5ֽ¶&Fi+:L7G7{W:!swc*RN!M4Hȍ`V\Ԯ'[2iΖ[6fyMA=A#ݬ ֤0>ľiI- ɵ=X˪5GO({9S[kӚkȦ@!"-Z6$ae+V^;V.0ȩ70 jInH%gڈI MXlbqs #j߇P\&2'-(7czH&&FmEh;vmzhQt9~9+RIEtSi]MXW^-tfNч*uM-lBT> -19<;1]1$mb_?W-FW}.=rIN' Y"9ιԪ<u6~=Vf9_pkD'0D%r+hC#~0X) "LjQN)"`}Go"_EiW&M,k}Y -|޳ExS )jx:6M~[kp:}U]qǤkWcKog;ⱃJ9S8gʰ]tD_UG#DFtUscoJ7l霬U$p`y*N>)'EEid;|P_ck'7ԽvnP̥~HΩ"p'c֭{z]B\Hǟ,/1u"Tf` w:qڪ|bAtW9Aeh9+g%jMeI4pkm Cw3ڥ U9V>g ҃~%o&6FQNUE~g-F0ݜ_vb<#}^"Z/̣]s%w૩(耰YBǰ}ٻLjƁ'=ԛJTOG$faN+6crTg1;dl4N|ʥOQo'hP(d*lB'6GHQs1F7՝Sd^Ex4w$AYRvV `MY]F*n=@1y͗KUKy9^D2$2=9b `⾏. @nN9w) +"*+,<Q% |dM x+L7#FVߨ& !s5_eǀŹw8證S;E#ޖ 29X"Z: cv aB95QH0URTC3Ib4LP\TW(m>\ ⨜yV Qpk&!m0Yꐕޑh%2.RP`g1Uaܵ;yPqM\`[s;/y& [~+_fAΨ0KbNAe~cD? ,o EތȂ5OkQ)N`l% sRcH`ƩXoܛgʪ#ȁ FCg$q%sQys0ج3بTbLҎ|4#wlHTIRS#FѭȾ-12w(j6 ^N뺻Lf| yZs},:NZ `rC7f?AA]s'Y3;7xo.I <]}a_4cnRz'"yÁ{_ϗ<%-)@ Mx@ύt7c!*To0민-[DS$_3/2v%^.پ˯@ $y0VBDKiiu/o|A` ᝋ[s+vln֏1Ǻwt޴"+|3G2t/46Kt.T j y(]Q@"3lNB}u/@Jg|'2&G.0;kcX5XJS_>B;(lY6yu.$?ËMgœ(LC T(usUʥG|.' jѐ uRDp)N28RNK6!TxvWg2=rXE|Ye6dXqyċ@8f@/]z+H4j~N1ȯU\n턤+$M(9N0ᏀxZAǭk5}=Yobϒ' O*Lnu # )Ԝ$:QX`#dLvJiʶC݄F!a_*1.E<ҥhG XB!P ,Κnjf?]qz+3QI>LzTb!S0l闩ąVcGOphn0wIbM \\ zCp:~)C">$v|N/M>AHc}pr x$(%߈ldA=-]Z8| j(8kRu5(95$$ nL!uX-fYvF1ЎÐO*y]Hz-_YB8`kx$nIuӻ&)Eoѯ^/-y3|̵- =\\s :ͮ)6/2b30cNчHb7lXwBMvaokeP"ҟ] BIjn6NFPhN9zaU#Lɒ4=aD=فx ZIryVˇLr~:"Dmˊyײ0޻>Ld_{{yLIL+H:Ҟ4tѻK1SB39^xiEbKC8p7ϐ-W> bmQH9=~[ŮX-g J߹w1=zv{Q|Uh^nF'eY$hwlʩ_ oN\Mf@>@WЦ*NEFV]:!S²kFWCflD1}kRM<9g$ƋF-iʰ)xmEr-x[!awZi| jӰ=4"AOwcKOvnY}A|7sJ[o \klaui _7^s}y~b# &C 鮔]օ)l$} rHXm)i{ .Zi(u1VF]=%GΥtO\EK/!7_E¦y1r1!tB.迍Gl(Fg 2i9 __90'@Z=J_=)B}ZKZby!ޗzC2skv^/%;Wmak?/(`x3Jʩ][>Pd +Q&I 'v3R\qO~@^Q 1}<0S@=F)Px7BG[,Cj[HgpVRiC>U g'ЍEó. 绨t|uIlR4REF^٢ ,~Og*o~ҤP >ҧ}^)M! YS8F巣zumg0#d<-s+xL}#Xi fo! vip(2ԑmmf=,X+aEX`8~<FٓZaWgr-NuإS\⺀ YuZ눶tr>  e]82~6`p$Ts,څL Ժwb2T9SWI͔|+4 FB3 nw6Po?ѿ}Q/kLwfߪH/T_ዲ&Qaя> Ci9[OD':u}x16x o}ه]jPW}E[Fݠ-P)D!BDZ{d?ͶkVO ۄ4;#ըMA_A>L9`VUcǘa3%3f߄DCz4ka1>70 L'㳒AYGHYcurbq;&Rz HՂmb{zv7|K׀ J0;,dj!nK<:A@Fuc=wJE/~ljL<1@YŽݽ9Vt\5VZ%(09 N"IgAe}P$4n?7hA F1#NSp(1 n="]|J`*JѲ*Lr$"=3n&_KQX-jSޱl[Ӄ ̈F]Slw Qpw,䇖ܜ-p.)M.og3PnqQ*%Z)3E$+ NH0Tl;nPb=O??Թ5QNVbD`#٩+R/?AVI;E( 7 XXpFeA(PuT 7,pQAW7^%0QchvWl!J:ћߴQc{-@2~wז{SKxV4QXA։n'=匤I=@ժ#Rec^U]I@n7 \wPͼ0Rxdv/2ັqR^ Vo9]vTHv4d25ҼoH^ү$>;:EݸĜw#ZpIm'sp6ح#ƹ?N<qrJsAfF9S;\JƨZl QwYϐBezBb" cw2gݝs^kd%^:SMǣ_Jiys?u=C h/(I„zfOJ'ҰՇ 7}Gu!c%^֕#XH >IRb]O.uqU.aQ 4 ,fC >Nǭ&N M۟2V@e["V9C{]u™ Ig &N@2-ݾ|hilceX q.ga2)A%+}@6x$gKo[CMM6=o6Gi?ۃl,SE3R3R6zsY69'uD<ߤnJ4(pyΐU+(oQhdN;1xԳ!Dlog-FMQS0H(߀ jMx]] + d>"0-sO +gkFڈNG/nMS!?0|J߽oԩdi4# x 3_֗Lz!aLkmz(+µ׳d}2΂^֥GzJ--saLJR Ⱦ `qC}wuDmsLBIYվ󋧊 G`nHTt:0 *Xh~lFZbhm9bp(<Uoj^z o5`ˉJAv*/,pO|WJܣG ̜N!XCM^~?OpC_UD)3z,/KY >J[5g&5sUo[U!ׁsu nҌ'0I^i*(ʁ !^PhUO..yU [EwK[yB`)pk,f4ϧ"x T9B(OrArQBK]̶$,4Ѕ( wARՑS,;YiP%@_;[=Ư.-'&B(Ssd$ ӷL@պ': t)_!w}-J04 ~}ŸL:_x[X * 3Z0M-9AgB*ό^x|pn14VkmhO˞*i!O >qs!Cm.|ZLL8"E+H{',Ӗu'$ptB$ϦcPL>ByS02OE:N< j[&ޖ9/?ϱqFq~6*v?.I+1,;"fEb>i6YIh]v\.zh@yK^nL`}0֊Bi07}غʽɘ- 2 pgY)uN?/5;C7@//!-=2 V'yCUCkwTt, YH%n fyX>GvG0ZO Aߒмbz CB  WA4\dіQ(ɠ-)*t%Cm:Р^m'R=zd?^!!@;[V[6]@ Qln"i>]cḩBQ@'n49+=e7m~,R59xlALnRu*S{<,@@#*i 4'? ֋7}^s?L[J{R& H {KPHQKgpHga DDcV . :qnDK!  VEˤhk$ngm$L?{H*ʀv+ܳFޅ2y].g#li,XP̂ S;7}1tM6\Αy6HĊNVb4 ^}Ky;/:(͕4zIĔd&yJR=6t?iحnŠDՌKeTλHd {2ٟ}F_i0(XOt$ItЂ 63+ӿ8)3h?[_>1]YVhM5,6-PxJdEr*OX~$pv B Xrp^ZMd3hS DP4;*[)jsjYpʚSL1꽥P;]C.އ'U|?v(YVzHcfvAD[%"[MAP].]4:;AZ)BQ]|pZxUpmʾI$Q7_CWpil+\U1> d?˓ s7aMm.El'Ez  iۈWhHƁSj14OXsw0Ϲ2ˊpsZ/ga Q)?ťuup^`}`/v%Xjm/& ["vcCb.&$ˀ%6;h'Ҹ1Ere&o^iqHx/^sN9\{7S1x]Wk#ѧ{TYy\w.hěR=j&T*d\B4atda aoo= r}<@+֭F,&UbZ8\238{Ep[Byha((ÀQZ<"^LHI E}[1~7Vߠk<9g++E7 %}fbZ*fO] nFPyEss-~@z7F>Rm[=3{ݭkGy' BEt C ¯m\_^w]a1G @S$1BLxҲc\ C6W`Kyi|vRNf³ȹ?VI5)}@BB߹ca~F!Κ{*HYyͧãltpN$u6Y qbՐL{ v@ߔHunJ2ms^SqRLwP0^,GnO>?2y靽[“g7vŮ$ȰYŕ 2f;`!M4%;6fl&Bzo}KG!=FP[FzfkAj0Rc<Ν:9mK^\;d֞V8p_.eJs BURzSRR(YWODe}Q_vVNޠWږ@Ce*~[;"Qk5aY#maT@.94/I*/NGmԎ y%b]WӖzN$gMC)L0N-D"ab~GMF`Y>:ikJ1ԷyښS؜ž:C T4${Y/՛V&POmZ< K;艭V}DƱo|a1/$|.$ڧ߰4];#SFV['n:e@ A -tJR\j^U#Ii$_'2"&(+AVƦfpyOovLnXwmJ`[%XG% &'g9sH#J8 vW'˜ K@͎?^Kq+8RÞUc+>jrJL}W;TVж}`ڥѾ>T }}9b0j1ɔ؋׭;ĨiF.~Ir.ClFQ][&Br ?̄L{G~I(x<荘Ʃ0g޻nbL(su% <F`vհ25`%:<A%}I O y:CIRtB-tvVCܽkfaD `0[#vAķ@p>(WlW¸=t؄r Y=8Cs!Ȇ^X9&dqMh0w1 RB[r@/RsEǽ?YpCn% ؝ hLyVk{aV|->ƧqH`qM:b 1; 3 Bс9+{O Eu!%"،hA!.V:7*'+`OʶEJT&}]yDi.3g:so̽;3,5M¤iMuhz` -*Ep~Gn)fТW[x5 &nh(yx?">{}XoӠC*m,$^XռwJ/PaN߆ӕV(Ut6',wq)HAI %hb3 1#=u S֑ I-~\^]-X|`K T #'I,(7Z!a#l"Wz2"'6EiotE'2}BL|ւѭlQXm:>>tA*G'Zbg`4C`j v{жa 4u+4”΀<'qחfG~ĸɑ8,P`˙F;H#> o?u+ʓaeG~#h hoqL?W${[E聭]d^Y$?thMb8Q#dLG(ٙK!i-D[gԴ^2LfH}n^-8w#n_o<(͌9(hj^71ef͂>XQo# `/+ qV-EeB6) IwBM%2-%O$bVEcZхaJomNMM~)c j̗b>@љY%dT/ 6 ?-I `?u1e*Ra[0zx@VR ;,Տr%ߺ\Zy|dn3,zFT\;Q̧Go%yTZоc2:I;0QL\Ixۤ&ǂElH Nifb`gф]45R;leIS&%DOvXjDetܖퟝ+?l;Ms!幃5w dUQzl>7_A;C^6zxp~Yo4$)K\wNĕ krytOZ4*Dn%! 1P8S棡,NјACrwD8O#KȲreY[wFV >8gBO(\]^ >; a~NlbX4G:s%?&#xܒo~E vd!车9Ջ>2;|4['zXhSF摘WqKIeLSl@S\dA!A"^#>T[8eO0Ѧvr5_3ǫ7^K'Ҥ d':?+( Y{⌙N39=[1FʳJ)`6#\t5*S+Bgs8*aGӖgorؓ:`&U -G*y4"ozaTgD`u*x)YiKvǽ7 @:Sədal8O֜X](/>P&ì{Om8hk8UK4n[a(1%[]LK0`S1ߕvRMZ(vȻQ)Y4snJ :;PP#Wf+ $C /p%&v]aR#'-?Ӳ*t\A덬_({:Lnx~.}j @bM\] sJ9;:JC˦-YjΥcFheke;('o]8ۉkIńa;j;Rڍ5o"d h)dIKMF7^{֎/cCtMQW4co'p]:"!m\Jx_}2"y fۡ7 /-J{W>[E)4#p=^ FEBjm7( S[y\}Ŕf ?FSE"\,_Z\_QpeUD NwjMN~-If$%9qZ1Hidkt&jrJڔsfVMEԴY/It^z[f[֤צ[u.3d%%WĪJ^#( bk 7HšBbYo}M8۹Ñzf8'e5&R2Ϥ脯o-W!Q&q@ He߾2 xg|U~ cvkFfD!~մ,Kn䒹 /Mk|bN@ݷv.QAw ӫME9_ mֹ~Xd\D1۱wӀ-kp3g;0/k cgw\; ˅*\ wPzcStF̡taUeFqXH&, ^_xq{Ru]Hi^FOӨNڭG{`{c}=G,M!q:؆=~.ȩnޤbt{Z`p>h#Póiƒ:\\{ G0Ov3 ҙ<w][Bj>?!Gܽͽ-N8%$$"]~WJsi.,wE 9Nv2Wid`I^x޷ rrt- .^ Od'DbY`PvPJo\m'TֺGH_S>ZՇ̺Y "avѰqdEiQW^BYPv,723n׾߼(7ŀ+0r[oAdܚ@mq6+s$|X],P}pW«ikţE7[Jw"!fu&WZ C/$R%LmWs 8z^/adqRt&3=] n-^2&+Y|Ro%ɋ%;T +SL<~5k4sa0)S5ocj!8>s<̂v9{YLD< teҨ=b`>-dM7Xd]csCZj=28a/ØAy:QYLa@DOxwe!g[P'> b?,z+kbX&-VRGg&k|{63o$#iGG/T٘م=8>fɜP a9]e-9#,3*>/+T~8\՛NK~C* S"fMybː=`K)mHVNc3 &0qRچClbl%v\fuI .׫<!JI&%nyUwT^).>L lL=~׏|PSgh,7 s6yHUуn[}5Zbq;)}8\"YMϬ.j Eq*'o1Kv 1*9ߊGo FmKڴ z- Hh5tx"]H/< N@pi*HWu@4fqm`fùyJo֊7R)ƽ N`lŬI.=IAF .;s jԵ,}Esz+m}Z'V)z|0Hd\BdnɷywVy$݇2 Wo/'kI)_)*$yii?B蔰,Ʊln*%]#'o,AB ZX=)t" ͎c)߯3+OŴiT~B䣞/B]8\yK5BMk%e-)s2_)e^4 ~kPbE N(B/5ԡ[H(,wJ1l;x#O˾}9{_a5]Ӊْ֮=̼ڮRhB'Duc?K\W(ю>QQ!ŗ+p%,"T`k ;ײհk_g-^m 9V.C e2ӂI \핛%J ;hOj*d9r]8X{K:v9ӬU] @AqG! -  x[d+@ϝjdTC$\ #NbPyl =`KJW~FyV1=AH}G@T?&=tp6h%IH!D}f\e`TiQ'O9. ypƞRAty)rfpfS<2('PսJ6ӧD̽7Mޞ^ ]ӂgCcAm5kV g*c7X % u߯ 8f}gő79fӘE ETY Jq~2ukk[^D_wலڙ]DoK{U5-T͹Yr^mNM 4f..Gm)eAUr˫XF7;ڕѬ˗X4 R"a%(ԁunf4^ |E,-Þm 5v4^`Ioщ _N\4V^qΌ:6i aIfP8S & HC"=_.N Ġ%ίX_R%i:D S_MXC׳JIѾLnp2)?lgN2 ;Oq1:f"ױlfX WWWԅ@Ii prm㣂 Z@;9߯ 18:*N%vD[xگ߂rv81ڕ[Fe ͮ | 5|h3iޤ~.[핮Dd7sWſ0HMyB= u2_؜.mȹQE FX .(RoiIegGd{h*U).VIUg/dDt\ϟS78TEAn7Xɭ#+_*Wd W0y3cD&O)Ӧ(jxO'qk/ihఽl!OgmGŎl*-9bu5./m;,Aq< aSDV)`PW{gjڻaLH6h(e<}kpqdȂ`{C$̴آ>R qZI|䴋+5*ҫUxYQ?K#@P7qV%vaRb!ni.je!{K)J0X,=ʄGn{AH̅ղb~,_} `hIhn2 |t+Oa탹suU 眘ed*6#C!02*bi4-g]Z0WȞ2qEgc2m'W b쳁a^z&ubGb$x' FGL`X->{EA7 Jc cǯ@8-7C@c x^z3WߑTş,vdjXT#PZ[]V2U |4kf)>΁.ΤTQorB]eߋ{P|y8q\XeE7e߯@ѸpŲu$"E0q1%skݱ\7CrBGsqt+3~i\S _%Hkخ*UXNYܲI:nB,m)x<^B iTZ/*5ŨRUcwYb-_Rйu+ܻ>E1!X!vEkx`}JZTF.&ٝػFyدYGPqG=k9/V U$q$~Hoor@wE#%Z޹cB[ytNҪ/%~_Cf^IU@iXZ)7@N*$E[?X%hhum7;+jwAFKy 4(_wlD}-Y:{ɵ (e) 4`DV!Ur#B1N6U[\;KŽoT}x> ո8eѰ v|H<.s7J"= {KfS|&PoLv"|&~1k U(ͦ6u!!z8a 28ՠ8HF`P1 86n-fJ,# jFF&YJF$ۙ4 5zM/@Wɧ Q߷y%KP{[8*78'7~)7oB8j|\r`r0,E{'Gʑ_QR sn<ଟqӎ˝+qb0ࢳރY٭J3D s34L:{(R0 Az )![uET*VIZS8'҄(+< ]7WS4YFTs-0M7=LuzS:\|=Akw[C 11hݑP}<:n%[<̿?Oq-ɹƾ&weE#7-xV~i>HlN0irz+hc;T-".* M܎)bve2/ﯫy'$\n^5@gןhP$-H6I4,C2 Uv l-?1[v/ Y$NVU%L2WV>_:k8 Nie%MMy"{t(=oT~V6Xi#HMr]?LY5rVX6]q74EviYH甙8 ~K<sc֐V)aL4g@kZ5b?xikN"\]s YM]Q5"d㺪zAV|Blلh[-za[Eaj )oH騽yje`.G Oo^rHNL cHJQI"FkӴP^>t5h  T/>Es'HD<{StI}W;uޥڄYDawTMJوEVYI Yԟ =^Tķn9A+Uq2VH̃_UTX꧑I~ /+V,o8I^ ,Tgƌ+8!Zz~!`~${_JK A:!F:dT3VeyX }*pDIkvΥ?Fb9]~V<~#1jCm.EoLm%)`jr>w4i5&_!FK/hlYgc K~WaM!F1'&@~-͈DC6fN NAJ<¡PN<"}RpW|Aџ\1bX(NZ^|mA|\焢y8` 9C!y3-?ݕ bvGPg( e#'p0+LXHDWͨ%V ls%ڃa H:/x!z<RzBa7Rk>ȧ3a,%&^1&!F]^HÕ RV[fLQkka⣷,rfC#'[o"] dydW8[+B4G B4Ӕ{vܑ8˺V_GdzO@PSQU%t Z> 27cx+NWgĺͥ4ȇuvaa 96a>&6 ʳ,}~1wN2Uu(ٱWoJeeb<s1<-xz_܃/YG!F_]CTkJ5! `YT$`?$v`;;/y1`0:G}1Ǿi"VIȔ6kxwH,ׄOx7ɬ'lB[;]"AJIWXB9,k֬-ؔ CQV]zYB&pIb15f%57κ c\Wf-`hGȃ(Q<}&EZ|7uȟ8[5f@iDۏ&, .pHr{\K!:9&RI˞Rcvp mr1W B_#X1lts!рg==XO|hZnO)#бƁN^HxE.s W]H2);-ֿ -z.~8ޱQGbq.VA*5v^t~Q$X->M*o](S˦TwwZsv*<NxA 15ȃ;#|bZHD[]mwX4B23sq*eX!6*inL31Pyh5SU_ܝe̗D IՎ٫`TrKȊ5ӆxvz7P[5z~Vs1&1oDUZD v0q'z $e۷%YvVd>ٻuEt %QGKn;~vZK-4g[?=n`` ީ!Qehk,3Gvjron'nM/ptpEEBdcΞJy0J /rO\ ;V`2-E[YG#?~ms!X`\C=S_Ç.GjLAi=iK4hSt]x{|mY8T$ 'CH Fqs }RfHYV2}GW iK4BiLbpO'u2h n'K,Wܾt`]k fve#9&\7*F.[D[eVi|tyøLFqţy&8Q.\pn*ǘQԩ weOr`q?+W'*'=7"Kv(f~`+5%aY3=Ki6/ɒ5JįxhqșiYpn(ԡA NMb9]>i7.+{ 7i :;KRmV\. R6( ƙj-TF~Hfn)<ǣYY@C/7?|]Z%;ůhm4(ۉ;դC@;>Gb~1(;o5 Qj?K}eۧɖdYFL2]d2;T.KdQ҉\1ϔANm^6T 7;Q(gZ7FR9"?e(tMB/pNcJrSEBh.kcTs k[r$b4 +Uő\:7&-b#L{f4t@,6P, -> ktmCٰ\mS7..4}X]W@R|:74D?WO77scHÍJ)rr A{B>oPA<@Uۙ)t+i_3\=uUۭR^Wdp;ϡtkV ,I8,c4Kro#6[m oӂ2?x D[c9VN5uwqi{EThFUp=Mh+E vmmVW͊ v0mUœt6e?K=H;N@) ে$4\ L**SxTxob933X[|&PFnϢ)rIO(-trH[XP9qI[/|y.OY_`ڞ.{wo2ˎᎂK1Qu$MB,pS8a8HSR.4kԁCu'9Ph?gX<ȧnwN*L%RPmLS H(vhBhg/Bu&>,ɝ4a[QPgdI!]?P5(f=;/t`m,]V:m.p!Gt&v>Ը x t=jwwNdOٔ|nP5)ǝ*z@9@h4̼")Y ZeKzv xw#[8VC#o_v:OzdŒ-JQ nkoBe'"GW皜&~+LYuf>}M۶[_[e*"٤H4ܺ!k_й ߟk̐lB_JWk.W)53,TMϟ~+I`_t:Q*.[ .b:vXj4ڟ6ơ@ dW-߅)ce&_-淐oB3rDbW28n__;X>}HvG-WINss٨nj iJr %xBpabG" ?p8Y`Esxj 9e+`\$Xo' C[kTI΁+=fKBF/."N8ɪY^,t'O>OPz¡eZ}3i˞|ֶ59Cb3Ϻ%;KWGpI{t¦ S XFḚA]Z!v돉S{>cvm]́ $GZ,zְLK Y::"C]?lOIșWH1!SVK9n+o6f7~ʉFgIU]3UڌK ~K>0tuEr<ʈZ1!jhl_qT{\ %ΜY\i0*N,3\d 6{z-^W ;.hzIn̻A煌A* p35,c2.O+, 9cmҿBHk ׁ(ћ(AIczحKœ!=>tsNg=fWtBLqvo/hdе!1}9x4PY|sPxø.'J EC<>^ATGpzm ~0Vv׼rA`݈TḌ v[P85/iK l5)cS+B d﫶\U3XGj{$Y#L< E9]=EkUYJFy!;m^y#bfsNSUMÁ|mainfyI ֛K_NU(w4퐶RAM7pH@8"K+"[B,R<{ ۤ,qG۾g9Se?}n<e>+Y rE$2*(z 4\ +Նɛ3K ?'rFF^MBҗ4}}U8#TN*EIڽ~ΑTՠܑߘ}|s0`.k^>R~܏l\1c\Ά̡&S 5eg }j1rVcT ԐSw}Ӎ%ӆ9q0nT P1=8E#_^)ZXx^oɦro'Bv j뙄@nFD>y8Q H=$:L*KM$BbP:K*nŁ{;R=:ĶeinN\' JcMs:$l),^h}i}~1PHFulW$GIX@c bEO9ީ J~WiM~M۫oO9q Un ek"WkIp`\`t|Tz>kbVr&ؠYZ`hXބ%/Y*X 9s$>`$uZqI򼌭7,[r)s -4AG~y@, !PxƆ5*0GZW͹Y=*YPD:IDɳ#ilj2"M^Ye@.S&DGO>`3yTnD+K[ĘX|?S)H!]e_k4Xrq$[ # Vm̙N8xTIj%Sb=wodo' ZՃ&Zl;/ӎw K8WKGsnq!(-RE`Miֵ@dDrla;}0ō#LzA"/tT^@Zq 7џ K jgI_}M=1eQe.L8/9^>oE%ӕDzʷũgMs dBFtDkQpzNѺ8аZ`/Ѿ]+\bt@<:EL`~_ڣnExgGxr)XU/iI"g&0x=ۺx4s!p t[NnZXR"Hƛ`qf:Gr'_a6&V Ba[Pcxbץj, B㚡Kl@ua"iz%vl˙cK%B"M80 t/!SS96hq4dwD2XnhW9 Z]3ܭԸ&izT?E7 _x ~u|i s}q s7(iJ6:vdW 4Ey4EGИ,Qa#ㄩa4Z73~߯E&@Ϛyec:HL[G2ab\&X a.%E6}=3aDqR@n6/ +hs9gtF,8\]h{T:vn+3)a)/6ڰM"%3Xupt5J%+AsC?ւ{p~:@qP/PaX%'w^+)H+vŢd+qKABm_H qdm}Pd=X)KI_1÷2>VZT^MOSӚr0`+3rwR@ì(Hvv SBQ{$OW 0)" i1~0K^C!>?H|)!!$CVghʓAAN@ X@qAq붏c;. 2 oֵ(m_ZJe%>-[^6Ӣ+7w͉yc9un`=-Aq~RSz} ?")hsgb@D|ZU=dDeH$9ttjo];G{NͳҶ1}n}<6JnAc?\l.!HF&tLwP1L7nFse9ʕvAn2:1shqi'ɢ;`XfEPV>}( R= "7g^tsxJ96#ᇊ$G^t aR\Xʯu bӈ.njm ;Vwue'ʤL.SM2OXi?N1 ںgDS,5G<+;rQM"`Ql C;]U{NPg[+%B6@JP[s:&NzW 5/VL5jZJT_X_4B*4 궂+CC讁bOЫ2=y9?S #+Z[$Ү [ eA_*д{aޏ}`T'ᆰydދ#}Y@)+%x6eXz*Mk ˈ--'eWS9KT;ͭONӫSx5?6zэt p{[- ß\o,؟bC*L\ㆶ#(6;0Ņ-[3g᠅!şWJ 7̐}5"&]O'Y(5!aJP|ИB?lwaJECkN7r0B}chWP1B23]G|Ol_Ċ;$)n@1>W3WEq7_)+ׄ9_ȭ{'/hz'hyNEJs+H*kޜWfj%'OO y5ccG}{c> !``qYP{`vUpqg/[ A{#|ƽӫ4$֨ǘȅw';~c 7Iwzw,{(@g>C ( nc s6 g_KhcIfRL$A1 aR:Q5km );)6줉E#WS 79}M ( 7a2\54U~YS*R)qiQ..ewYRMobIӴ<4:_B> sY0RjT5kTw>ȬBGm6t"46m?ci(--O{ OA)ѣʻ\⦣wE=p() ~Sw`4 \J?L,66}"h"q\{Gܔ6`B6aUT6=..IH{F]}A]9nI)S 9Gmh<,ĝt?lU_mJzPg[*g.K4 q P{>gpy馝8.7_55-=``!N'N8R^s *?Dހ< RTA \b:Wl"s.eǦZvwF7THbnh/(<ȩ+x% XpcHQ^P8^+=@Q-ZmwQaWH-3v2z O 5SkeI* SudzR4G;qy8D9e i/j_ F _O<0B?5r-\gLnZ$EOpGdK~ݼ\t|ܐӻ-CTP| x ]󳏸sBVA8p]5nxydC0OP-蝹p9 *=fs1XQes?3 ؏H_ $Mo{sٗ&j4UbyvhXC]嶻tJ >$ڢ~e.DžCI-*:C2N|P!p=(ThZCزd2ĬGvd+9A3/-y"1Rt|r3Ɨ='>,++^h>@VzÇ $YT؂®)tDe\\Ή,`)X7ZdnZVsJݜZn%/]~(tdŌ C6$WfEhFQ' ~J;s=KA b:ID_6TK ܱ|a',JgeZI > ⑥P!4M/Z;3CJ ^˷'~x~vȜXTzF-Bж{[/5 _\#ko3 X]RH~cHT V9lcn/Yg_%݈'$&e΀2Fb|NfUj9Sk[ָS@U,/Ay4K5jKH"̊|^3@u %xvu~ئnQzj0Ee+"%OXCa/2^;ſIoHGC4>.YA;լHW݇t^MpՅ5~W NׯITn&~Ga.j.ȗ$o5x}dYF@cYd"7{Dn"@wUv;[wH#U [G* xUrrKg4iS?j>I4AT~=nS4qYFN`2VdU 몵dRUqW USII<2j` i &%nE\E]Tz@à\ՄP(ir~=1-';]85E(CV{3Uejpk;`aRMQWy[S2<)^PR=umtPhwp۔;7`LM 2-Z;cBY$*pd]V9qis9{\KܐhGjґi5RlW\LwwɔM^xU27~4Ѧ,sya/j>5yaE$ g`wy!r Ui Jí[eN-۱-7)[t)[ t#erz4VDj0!-UӏS+'Qp;59:j404Ke7K#,՞dcy,Kf)-/dU@x+/334صj>\h `&!q d6Lv$\croթV1nV:_G2ľo,V |fXFtΦsl0zie}vL2HBhž9cpuEkiW[gl #3䪪sq$?eZEGp9zp2q#1Hdr{^MRgRa5cߗ78J! ّj~vƖݩ eI~ЉnLh,8} dK eA N,l+PBžߚץKXp[ٓ j?x@>Iח+(a}R`m]՛kڈlIQ){b6$,ЋD:>FIߧ0vQHbcZ X {*3FnJzr ] ]`:-mo WK BB۶*e ʘ^A`fMUv83d? AN.!NE4|G"|ECGdR;iw3|+4T+w GeDğ.nNѹND#B|; r+zbw-߁_'GJ /ŸA5$Y@{?bS(̛bQ]'-/BBzۑ Q ^ݕE\V+*fCxyJDBoه\C_Ѝ,)n`0̅GKjpB1~ddIh4𹎿mը+;ɽx{g$ۙ=xzsR.&XyzM4.s9i6v3vHѢƿί=I<Voz-bZ.Zh!/|7C,U֓DF` .]Y#OY8T#JBo3ۦդPY &}=MjG3nj dYoe<{hɄJjL^P¬Q f<Q?g ؽoKPNLL?'; 5䍭X`g*;Q݉u[=l 遆',y QFAaإSHzrjap yd⭭Rdv{%+1$O"'nۍ/??0{pֿdH Ek֦^hFD(4/( ׿{[ >R4m{8P/A^+^AwBluI^g 5s8ñl9kݙ(!QR|nB$hXۭc}RZͭl+CѢyn'&('^n!(;ꦅh X:V+Kt%)GHjqdmIސppt͘_qw4u v/6 ^dCM 4.f1 H)\4דM@iQ MlI1Acb,QP0V0)!.`"dC4rvS[(.+EsLJ&>7{ݿQXpHQA3^j*)(`Z=$ "t1':]45*=O}"ve1eF)&JzŴ_Bdc-G\{#xJh~@1%+g@s[Yv!б)br iyQx@?A6\Q܋W#wTo?` aڦmFeT+ѧ^oOu٘F&UQz-5}sKA,N13HRON鱔]ٯCw/j] rRН]y^zidzEWɔMhZ|lY\\5ƺ:_dɱH_a LyE.-q)(R<YC4 !j5daOpP(m/XӹCf![.}R)sZVe3@F p+,${JCkTvӇqBۼ= 433"!"j)1eNSpҶV(b!,boDٓ2KKϣ:G %(ů tD^K/&^4<@ /߲&Ϭh`J(x? 8]t?xCE8RQyQ*Rl5'^Q<3>W~{^tA8`\K5 [ZKTK{>ՀĽ/ҘZn=)BX- [LL3L&lVdUmّl&m5^n@wՏ9D">|>-YCv<"%AB;Z6 rkJ=DLkfjr( r䍎8D^~?*l Ԅ13iԻ4XKT#1Yz`XT6)US@a.K#w1g`Te]w-TO&Po5qprNDq\ZKEXr=̩$~S^/?4i,>Ҽi(3Nژ -D31Xkhn]S6u5S\)GplEr[+$tK߁EfxcZ~Cr50Uً7Hz+Z9FJ#66}cw/LiM-IARm?7g8@xh8#WQA\-q6Tk*I4}%bHߎ%g >xFf=1d>'G4 pؐVy/J^jTtx!cPW/Hjl`";'.pZt25һy 2FB(Mʕ]opqRV˭e?om 4%)DACvi 03PSBL> !Yz._Erp^% Q& ,T6kBQG"CKs~}ŲB޷]rAZ&HV-w S.Vx M 7۴|ۊ@# +/vyCH.".xDDhTap˅3I^UŘĀ /*{O9n)AiN'}_(=c R׶ $^`i5)(GV#cw% 篷 ϭ%.ꗕ}rEE߄=4 ɪX6S/bz յZnngȖ ~S? sZ#ZbuB Hڈ;/lmjC8zxҪƪrw;[lX"^VD!+` a!V,"F+tR0s\/Kk҉БF3?ID)-OaW |ѱT~jzB_mH{)o?x:^e3Aoa˼ uugW"2P\\ǥ )>,A#IR_58 O*D pz;; a[/d:B9m[ٶޒ0g.ƑhN̚_M;*?rW,a^se8}t dCjn"e3q28\HBHR UP6BH>%!0$6}d?jҲ~{EAtpj1D <ʯtiBsTe./PA?r./39w\t 5taq?Gg۠Gv[ 4<ʷU&m,oJFɊ=&u!כ'u&x2uӏ;}Mïp_18sT ηX t:Zkm?%0968n^I^6t*@/gW&5rR.R wE\nݍ[@hv0(( ,V"$pEx6O/{!j+S|{!jG=ԵtxC4Y;MZjGD5n{kȣbm$[w ̹Zt^[~$KVѐ6œoj5D[6ɇ/p3qIM :%)h\]%33kњx#]uظͽ#VRF,+s@k)Tqvw%RN(u֙b/Rdss!چOpH-/ŇRˬcލ=Ea}OܩWОRrPf`/RR5-+N%9<[Ahu$K<OIOcQ!o dY*gj*[yn2HIg@J<飼~v<á$WRCpODzz:2j f@J˰uءDD.djg;O-D=Koh)VpƩs۩KVFɕm>Gh1GVKW|mbmA37xPTKiBO**mٚ `X<#aOtA륩KkWǚ$y|0btJfm0WGuFHSmAQp3:1ѹk1nMIsh^&5ޣ>O)ucQkr0wl kS6ZG ժ5dNT"N>k7Xk%hI;Hd5ERM094;d5PU$M6<|ShF22^Ǵb HYV\>ZE͐Oi}a2#q 0c4`'b;6*1N 3?yyr_ ?hd+~Kyu:fȍ3e?入iP$G4ȝm|bUV i!ju 1F#zl@aRf񟘳NXJY W~5 ?196ImɆ,OWA Mv+ o%J4Қo^Tp7|DRyd}ͯve+Nb43 qWۛWn܎NBIo@ade!cT ]'ү%o3Dz&};AFkrp=GMsłe.¿A݌敍$0^|x#>pa^(BD<PPMJ vx_*:ԨqI|֚l6,).R:/M7 $=T ܧbd!)ɦꧬ1L0x p5DFI&NhDVk1Q1j6HƇT&!JS/5L+,D ߕ@}&Lp]p쟃>W~NYo-\"qKvL5=_.YFW ^ZB c-t~lpYQ8ylo*+A 4X4牞Rtȃ /FVBtOTHdeU6>ژ G]Y5'qHK5c_ƄtP"r J70C 0?[uvKBs Xy&tmA|N#& 2Gk'14 sB DY$bpJA@Qƅu4jT CA<5NIT30v IrUD(H*nsźIM%wIH1a ېMd-~ԭplK=ze(0 F&nZM'ꦎf?JNKDAcv#"AxW)vk&6 jw ,,IXJWH=:IP{'t_Fk+)R~jBbUq.{*&˅iRjI#_,=-bqf C~|#R5 ߠm#P䗳) *Q/\1r1A^An/)Aھ)n`I&M$(h^mg5D%odtG:_l[i?>":oHL>C_ƹ6nŻs,0 jcEk c!/IEوHLg }gv] M UD>*Ӿ䏷"y>W\,kCCƁ2qI7&~=q.1olqNQ亮LDyuF8l v "Q;}ugJX ;?Y)Fd`}BDF6 5n"Tslz$Û\~AFSr*7bؽ cbr?(!dvnjE+:}@]1w 3 N\Q-ղxk1,hq퉡z*O xghH NJ-/LN"\|i Q$%}۰\A/Ig讐_dXH,Cb5j^Fxh@SZ,燐_HTOGlgwZc{e [0"_/nNzZڹ ,[c=1%Uyvf86UzQ9 ie3d1/Ym?R>ޢ r"4[k[~JAX/R&OdV˙[*A@Dn9rI܄Y[u g+X``5H/LmԏyUcvIc@dԀ^֨x;OD{r;Njh`#(&:_VNű0Y?1T+u !U|t3mEn¹o Ê>ЗGZ Q"*(T)Mͮ1|ci WL9ssbFJՋ)E#lHMW_]"ҧug4cA(Dd(_g iTe( D.uG(oQ:(a9 IP} $[Q@| J)vXe&pxx~V)M[i0C{xNum*-ƙ" `,ч@+c6 p?VН'!2胆jD<?Yw%`צE+<`!S!!:eDSb' wNZP2[jD)HClو|(cao=5f!D=b#?Lkk3ٻk ѥL\\ZĊ./RJt֝ (;CEzٜR%vE9ܴ! بO,an>&d»i ̏{3.SH[a}ư7ϗ9}Dصq&bk+HßO~7'|&,~h/fԫ+uPPدJȢ"}2CRϫ; @u㘀qC;ԥҎFˎ,}xPK[Np?b_/KD4׽aߖ=u &SP't\2tϯɊ9"RC@m<1I!э-šhd4k.j;7x5h€EZ)CYEƷ7 0&ŢbiLvU؞ϒG.*:ǎ4#K&Ļz#3v` lUa®E8^VeGVĴx蘭@$y"%[ Oh,W>$|Og Sn$hό2 Ǩҧ9usچDKcvWc~pTVgUB~YbӉo!_-7KLhAF@ |foܳ"EW|NKTp.;]!lžK]xfH>MAOd׍Uq:Y?25ͰF`|kjlrʺ_Op1ÖFnxdd29FCGu*lv$pRӤG=zCӦ!YA\쩓&F6"1>}1(G 'l ԥ2Ҍ~x4#@zLxɟnzB7RM!55,oɶ\^&<#I7b全ߝHY@4A6PbL=ᦑ/SăLA#O)KǦ| =2b̐1E['F6=;9:eNpKp_ |)ץZ5YR}o ~ɷ#"'`5\;;񓮀~~FǽEA9Jhv0"E+?p]H#Tъ}DFe8Qo)z(l?1SBD#P5qksʆdrUB~ i ^iSKeSMN0t$7o=&MGDRkJ@B7h{{ZKb=X=*%ӚM1 %Q'.A+|К͏{&7H{5:w]ho]K54)ӅmvX^pG-C\ض>J{.ɃO`=7 \D+Yj zbae)wm^<lPGs% &<""mpM(<1&vzQ竛R~\TDYI>O^Mp.ȵz0?IGcL6QdFHD$SҵD(n3D@Ⅾt[i0^!guEo?MOa'n֨yo}BK^=PcCyvsZq`}8}_2 iF#D\dDM!>kxZUε(;]nCcfb6^e˜'Z3R/lX:+R/nyg16aaz)t$w&%juC P&qZeAxqFBl0ƬJna8ZAٵ"N4O!{zwψY5ͨ@)ޥT~bv)(GjmRBeIZ :\G$wD7x9bU3p*czۯ!蠧r!/w8#I>W['tɞt_$pepT+*v/\ =~c#^Fj藹܁;c<}ʚzQm}m6K<ݱ5ST& f\?bPHH8]pe]0Z5C L!*04\{ef[[Y-{^$3!z{d+yu-ͳ]VWuǽjb }oc*787py+?b{|S W Yơu$b3MIϬ u:#\qO_]TĖO6y&)&U>y 8GDi)׀x~3%BU.n7RQ y]{8a(wE53@悑bMЏ,nq4E*Ao[OoKq^\7nL5čl n٤dNE^dQ;-0]X|f{\ۚYc/"[MBkƛYtvQ9sF`е>bmkϣ_ut~-a32[:jcA]H4f0'mF q O$i`eW^g!6`f\3 HWbn'N3QG*# H0#)Z R($?Ǝsp_"v-(S6o 2t$t*D~dx>=͹8䲰mȴV^zIZemmFEeҾSW:\ՙO~WpѾ_UAl++%ORhi$tQ =0ۉe'y{_fKy]XjwN>-{lƼj }᯴ݎH}v!CSXpcvhbu=^2K>}Paag)3v}۠f76/E+ʘJKJ@4v,?qRdG}lruY׆俭Z큏t<'_W¸ɽoۥ J\u6?-qQTIsda9"+?^ G;?$ ೬B8w%ׂ;bj#iYq0$kE:H}{jԙUDVzt.ReC EYl6t[bABi!BmjdGdȬQ:t )毜z=H!^軇6"D#%=5m%xhWo5Q-mEAx(Gջ^9dǯh{G|Z *xQe1 ّɖ{v ]TW;y #*RsěbdBXB蟓'@+KO0 1 8,#MFm.&j} yYZA4PJ0Q:5vb VFMu8zgV z|7Y{4( ^up'wr}N,l#\RuZv"Bo"m_L) կ3]7DŨԠsliJfP\P@5pFI1&KAҮ)8_ op88/tLw6Աq-<b3Pb~UXwO:*OJJr~+=jܡ\ 9PdŦ4Ʀ-ّXmyYrh.>Pq/lbo7THbW#R/w&a7(3]3`0$SLՀtN|/o*E@CZ3'AL}'3v ao(RzZv%xGX9Gc8D P6GAy%R2 Iꔻ(ǣ* Atw=k5TrQ+`D6lXE|D'*BVKZDO퉒+ X/ XJ(DXsƜH?>"&;2,fv%: &4dH:tnOUF."\(ްOC%G~ձ^wqM<íC<eTY(dfJ_wbp,gQؚB"guYFU`&ŃS,_4'~[Qg(g[Mv+Z|Rha?ij&‹ ufEֆ9us33 Y9\ArY $6eڷ;SeR,]7ɠIRD2wH,}DSi %}y{ƤP%0e)dx_sӿ uD}|蟦QzV~)C 횐UnQt&XA;d<$+Ϋ(̀QRIՂG=L%d Ÿ@4X\z`22]$ץxJZ+;l;Z}| CBgժvhq"F`aII_8o/KU"2.]OpwU Ϗ:>T Xb"mgFT͡wh GAOڪ );LG nԟENҘdx>lsk"?pCjPa42/XYD^xU::9 77\(FAN 3⡩jgh%KueMFdՎ 3ӡ}gꪕ<7JSrcvx3kLGEx0LP#tLEo.YfcգŃ?fs oBM`t蜗6VqN5{maiVÿZ ==q<|ZʉrЭlFS Ka^](!aw,$$:GsSڞA-R.雧{>W}qw/#}za &tj՞AKAVQ1^ O| aɶ&&BI-4ʂ®0[ՂK\QbꯔqJ+\̓AD*60뉘.#Ã<ԽR1w[6*}(|l7;weM""ɫUO0w'(Y9܀:YZmHq %\?@&gDC z2bTw|JWfֹAg&RCcTr:Lbr16%!D |_&og'FH_ELQ,@<@_9Izk~\5\Vޑ=y-c0$CuhlG9+ HTb?Z2is0#`iO/D)9Lǧn`vjz3 #C28cM㜒> |.ۻ[]j)o:k~*1,NT_vgzW omhX 0Bd݊6HrPoPB`+SbdQkN2oLysqZ=Ct?*0^n '7Z!Wh&n'Tm+B@di5|&vj16C!B!-# ',6`F~?pU{rˊYnX_09?+|R9J% ͅdp44CӐݺ>vFlfi7OH9|Y.vL<2!B;vdv?\XwaDzNqi"GۑrlR7m5< ONuޡ;8%:&z~)`ډWIiT)X;i g݌}×(>x؄=P:mgĆHvΡ r'!Z%-bAeorq{Y0yaZk"q 7+/S+Μ3Psz23g&XgV^̈e,2<JDw" K Ϳ!Z7VѧxĄ`a(GW#3AR]Y~7ҺsZ%/AXSziNjʕW@uE'*cZ5{ZyQ̙՛7 Cw%b8>"gS|O'bgHx-eo!Kze, )m_4B߂a/"Y*"F-yg݂|]Ы!(plOb !-~ xi =n1n9 CnvMo_H% C5V;խޚHSp]y1`FE5A{qg;hR|#5^'–Ĕ**I*9ql'%B?m]5ԆL{ϠujRSªF=9+F ' At-! ɯ /u3W!TDiv9N, ') aZ˾5]u8-agFJ[f׿ 4=g7d!UJ);ypm 5?K{ZuxBR2.HSa&+z5-@kD#]4΋!k~-,L&p\A{[,GuإQ"da~ P׿oU+ 9Đ\ 03ꬬө2D?Rb-vލxOi&"?iC(F)H8u,oϭBL1<_(qӱv5Hs99:4pJ vv|r:Z cSH19Sncq fv\ 5 G.DۜdDPD P-ДǺO)؜ˍ1UC$y}(4v 1gJ81{MPcKlGok(Qf_[6,#AZBT\u7|s8ӿEkl4zLA倷aHM@P Ll)LЅW_UZTՌS?:F}{I\CTE3YWgmKH%ӶfdR_7qgKp^麑 sO͘RJ+HS\TjtBei=:ݬ|c_%5덕mU{xkʚs-"$B:6=-F,sY8+*!aW5_|wSBqOhR=hG\P `Gn ّ"S䷜ݲEA+/6K;@AoKϑ Dŷ2tgHOHE:IƟ<d>D8 rn(F|q@|G;Y5+*\t9p;IN͛I Ѧk y8h:5d >yNϚةO(]00]ऴod՛N@;:=y+\9[MCk/Vp"2xmI# CaͲ+َLrtDű0wSN7ڔ,+G2j@j>KD5 uAfX:D$a҉uIwGQv%A Q\\=:\ +Ѻc-INZg!c[j_W; Y@8gmc,p`۳?鶋'Lf)A*4,:R¼&k =MZSq4%H?/ijxi$PK\> V33~Jj&Xd/F%_5-:S=F!u-#~K:5Y;9 clU{ya> >ɜ!שOVLY]#,ZU(FxCFBpcS.K{?}čTl*?+pa4B8…~1/U ]lBYB&EU?jt;c9d*/Mw#DmBo$ʮXp*cPm?`*Gw_Y Ls=fpXTX]/],Vpz``@lm 1cg Wħ:S̢FJu+p"F5PNX;[/[O~5PzI{4R,I5d|Nnp&Ɂͣ).>nc"x8_sFY}m$9  豑V5+j UI6a ݼtw XѸ ]l}g y D: O4:S{Ra:.GAHxr mBV /ݬ0&B,br6Ԅ=12Eija y$If} 2AzQE*'"_33kV/re}j旿 k8M_p\nyV(2-U\WKRW-<ԃoGi!$LU*ŵa T[7UX.Mg#l(u\B ٫ ’} h3W&z-5K!Jm !F{IﰜB @NE, 2nbPckB/{'$I^ks0: <(h;ue}ʇ\_ .5脼m# Yh;i~aRXX]9%x\0 Ƀۭy6 tT \MR"9s Ȟ(Ŕ;WPCI!g;kKDֱ0$o=hU8H'ErIC;6x% hA?Ij{&Ea:f%Ч'lFԌ Ⱥ4uq4{.Jb`\&;).%ij~*& %hቻVOjC lQ/M^QH VrH j}g#MBV. nͤYV\o Ϧ$ Z h󡸢upHso5 R`ugS܏ P%WqՊ7iKl`\f>fmO aiq }Y$aj("XweYTh4K- ܁LN+pTy[In)[A 2MA9ѣ&%/2-pW/̾_(ѐ=K Ӊ!),R4y1F;EŭYCPE3w+LҜE?i]׎v |p\Y=NO] =~f2cL(ֵT1 Xwh;O#gb8TL 蕃-5{b:,coǑ|1[wҚKAVryٲC+.iRa÷+#C Ѓ*fv8&K O(0~YƇUeS3Pn0ΘI(զ8 /r6 Ѽ78RgKQen9,[/Za_d:JZ2?ðPgP 8~GK7GQ qz›"E#nƨ*`CO{yEN+jQӠ˳ b_סAYp,/*lJWh܆ʼTܼ@1$gwxxmFɃ}驅ha k+1vKoW = & ʃ!]X71rqtd"={EW *I$7k;0i*SqYa8߸ z֛]'kS]w_Ո?.xl˘ {nRXKCEGb$)vh B"Kf<@YDYq>sHtX67'g|r%p=Ê [vBSTnn/!S)p:w8` &&D%P r3?d:Lx('U /iH V 荁fAu1U "=\E5$G '+i9YrN`o]{NCVEaךƳ%Իd*b\D8?tCR1zm9&xPiuN肇%|KBuSʡ,TνWC!ImJXfC_`(~p_/q@2C;u!r7Ow|O[!31$݇nw6$wm8eVƳ#:d1x4g5&R).ʔTh/ˏw9QKGfM>|>JՕpBS^() ĿDoVs$3[G`{MZe-U[y=aprL+}lCn0ꥪՇf|W8vӬYzOgc.OԤ_&箞XS>Diz8\B,jgG3b;Mp4oFFCպ|?FT0+9>eSV+~_qG.= F R,C)Rj9N+,f3kg8Z%1X!eS$4^M& wB +A$ CM~2Q5vM%K.zCQK੣eW̿c,uh7hiIM6Jˀ69.cs۾3MHu,P՟+BMe/k錊)eB&4hv\d᬴>mSLpSClQI2"^͞e|0~( jm&Om{fmWB8L9f`2I5+DhAu#8w< }Ei,@qȍ̆Hb.[z)]赠e*F e_7E8rHM;njba*և[-e-Hq!K [ɿJ)[g %p9~[ŚQh ̫tDفd* Ux5Wb$-}*. ̩fx95WߧRd ?;.e}'Dy!jm簜Ƈ!#wg3i^sq638!x5a:h%jDgKs>S<-B^g=P q*( ג kZ'XO0%FUs9}G \I^yOJ*wbkf : ]jr+v!O%tzJe5$**jO%:GoJY8TiG}̝ːEwdg/~^G_){tߠf ijp4WpCMD0Tgͳ  UX# =gGWpz Ǔ &O|J15``,.)PD2 cկ,¤^QL&Yh5:Neb18bry)0ƺD'6/~.w1fWli![7īډi *9E MT½&BoLL6ld=(=٫}^PBMҗJ(im=0n0?({,5WXXf +s7+6{h<r*H6dzvlw]=s)x";Sdve\MFtXV>1/\3$~'nΓC PF SQ2{@oY^#;XǗBNC^ʬ\$b BA>J_B%XRXb_a\rp父A&SZ@ocϖمh*$O*#4{ЎMݏÔ`dz|QC^퀡K.%yyoɿSJRA uWwf4I\CD6cƐU}jr—ww@t,Iw2(øjbssO;y56p&eCKm] XsYdLKq%CbpAcRK²WO?*'2,JԒ΢!& fÈ(7{jmi {nU21p(̦BRv"̱9*wyju7<_tmH-lwC@DV Sm8qH^0$OobFy}OjeCx$_: Bxb!cyAVJ"jkkρxW _a|>8I0+ǬEG]1(]Ϳ0߈+Pgy1f~ UR1bPN,j227K O0Z"c@|E6qx[֤5$/!Ƹ|@\Nkz6zXeV 20~\RxM$ _갸{N ߊ nQW/p"-i8G\^/1Rx Ob B.e-"AgMkxŶܠ`:6IAJ{S+R3fL[T&|0t<=Hj|&Bz؅Iu J.z"M 2<.<&CUkK@*SW1D84߿$]YXP$u{d\cYL/8?31-oOHd`/LOIg8SnUjg@>Bی+5uys?.$t?vI:mQI_:cYC/`ڧ@Ό͑ 婩SPʑ!azjد1y0t[>'T5Kс*]_3nH^ޔMܪ3Mz#r5~f ʝ0bet (RSc7}vg9䫻X]fF޲MG H+cswS58,S2禓*eD UA4X|7t.xh4,ڕ2@՗m$<`DӲ4x$LTVe`< 7v >eJd-:Z8m$ ?Ojp9c?;[ =XVa熑M=#m?ĴrhhK:oM@Pd(mB;qt.gV*nX R6C0G9{n]Fuն.(9Tyw16Gx9e[gva:*1p`,H\o!ez#ix_*DsHR#>i&tC w.jit6qSF;ˈR}UxlΦ^dA\`|Yʮ6]e6X/\1R`%qOE=Aկk'd併%iCpQž~ۡrY~QN?$y&8t'̴g u45wyRկp! ^dfLkl u]F(`;|D 9m4*G:ZQ֥9dau,&68cղ/'&Hk!r HznVܧj,V{zVmT1`%%@MЬO`uI=Xkms{^ F/dm*uPHǍV{ձJ7.2 :# RP]2jܷaY̛PjɒNM~=^zznѶAyv6}tOF4)-~ڛOcMՔeI0(Uψur`- ݮu)qR&h1ጫY8Kdzc`w8O} K@8plcMe \F?62׭Pi0RYu#u8&c2fOTD:+.K K:?ԝ)m>LW̺/dkˬmYQRX%Ц1PmUkDO+7sF?&tԬHh9Burcw^۫"k(pHivy4Qǣ0dmƪpKLbTҡZESN`KRӪɾ9 0jIKA4CT]iU ޘZRSHz|&t(EPe7cw%#eD"qT5o *b g sR{r8$UB`61obϖڷ}J/ˬfbxj}@X;nmrD]FE E.l%(&@]ue척c";B?#S 3(*) I%+plſ]"4HPX9* z'(0j7Zվ17s Ahr7M Ÿi8uX18-b[Yu-z]a&Tma 7bQ&piGF7Ȇ6/E%vp"T&̄8}Rn%Q(XNjߊEMaQ}2℣$:`j}:]HO؎M(%ʡ-+c=dCSH0dms/QCο:z@r?'6*3[-Yo4rN3jr*1@OS4fв0"Yy=J!טm@;F`}Ig֚#|!ko8mРE34\b|i(u@p(PĜ ` J<:iabI'**sborA֍OOzؐ Qѡ- RQ@0y_83]G%V:o&!/іX0/< Gdo\N*g_vz73kʖ(Q2f]Q!;%TR :UPU/RvRD]:̌WG~˸nMUiMҢZ ]{ȵ.OMe}R!vVKs'ISrEi>)2zay)ud^"#2 l >;. (EYG*=h]`@( 6G?=>Cà|L3ɳDO̷wp:ffl| s@ ,$5^خhSNx2]M 3Nxdz鉮Q 7տI¥l;Y(/ Y3CPn!8\IN9WN*AWfdMb>\83fxԛp-?ѐnϚRD3oX;[tO!֩6wFAZux Z1?/<ވVq20l`h'4,ATW,3c*U0 ۤ9j4b0L=3\Ԥ{\- _dUj#ָmDL5`=~w:T{i ?"UYw?KЖlpnp2* I]kM8 PuZ|3G}}*݈wkb5=7Li!=[ S'^m?Ŀ3W[LZpMD`<7bp #^xta5dgpZVhһېst#\(-'%K]_rrdv> ?o@xj.pYJ7-JHDHhE@cĩ Hr }ϊ̈́JFŗq;/Z$#HřϷ,5OV04MR&^p)kn`|*waG _6fG:Rٶuk4'o :3WI,hiJ>FD錱42ec^E cf:gG%'9Mx#))X>VԅI1[˜TO^s~*bXEn G+s` S/vjH9zJp̌|)@ʕOZvu#~zmۈ)<"⳽:؊s@?|vY^xdS M.4$Z= )aGh/UDDuy@q <;=ǂ^Vspfpi;û4R 3z"m̰bi &7o4(CUn"fZ&>k7IKϏ3<__xЬWk(F-}l[EHPj}>~MsX4#w&,U:_U>Zf^jRUUw8J_73UXG+CKfWfC ywn~fD1բ ?ZyفWO)Y‚qɦmCJK7TKuU]P{,h.{? 9U: OW L^ yjKaF.Y.J9^|Yl lij#i[tc{<RIS!nN&dˢ`ɰs|oUMRv⃟Vvi?e1$'! W9\>z/F sT`qef ff|eG=pӲLat K5;{J!=&~|.R'hV))O;[:v}CDxkUM?Oqc:F8bVU4>3Aą eYi,E~['DtctD,gOҟ jDTy5AOB 'TaPӘtzD%2|+Yt_C&\|)dμԶCeM/{U~4 CB#Z1Zɑ@wT6B& ԤВ)E\Ƙ@軫}Ik"oB~5$# _4K3X\ ^Ut.kZ1@ŤqGW0i &r*1]"18]>&Kxx9[6Ǽ}HF >JJ97Y'CH +-WIq7pLD8O&jg1)@|k}"#`iqe!fqOWdREOmّ#(]M w)/!sͿpAawBf3$r3θɓ3"=" :8G`H٣s7xl`}ɚy9)lp9rڞ kaHI7Eu.NA-\+@l3הq8SnfXqtY06uu=[+P0>w 1F4'"S+:ɌLIqrȜ3P~^9`+Vc=? Uqsj].>n^55&Cò&f{["sA.zș#l@&C}`IVOXR_ }GXUS'É=@V>L"_dDOՏ1=\~!cOt i_L!!_ ̷p_* F3-"$Hbikj(6@4)ctB}cBeQo> 7u"ayG<eYYuQ9۽|bbEJy4-buқfUN u5|Rq7Wjyi36'x^a1wSaT9֌^ MĖ1m/$~MTL ͕xp*.GJm 9 8dKUe#{͚!?L"@ب쑿`;<%؋6Ĭv\cɄ_M]iA15eKA8\JOhm:kC9o(%P$SGLg*CC=?"~AQ?)[ʂt+>k17o2]25{r;  H8gNsYF{-D ?#BBrt Ah['G\> ¢)Dr\KLJ$׍r>^le%_ OU(JD;K1۬hP/K4Xڋ^.L\1 +Lsj!I.&p_r@uyd#/@\h?G2!b'߁YɱY4̝@?r%}Yv!@aM|Lt#u=4aKS*>!οV`HA52˥|̚IWOr(K\ ;êxMi^2uX<֐P{LzNE`د-& !B[==pʨa$9\W5nd@՜ ?S)3MHD*RV\թښ"&HOWQ-P7wڄvBj2|H:!IҸ>hh 2Gn6T=2P;`xfG?mV&{0U͂CbEm3{LFVV8$4{^>_zZjdgm`RWpBinyr5%uҲGEo0Z-< ~z6-~q|[7C4]cP55İQ\(w Q_<(o<8U}s& MAOU ~ԎjwߢN,G}0KIj!Qѐ*~=6qnyU !*0/_W)rBodW'Oզ@ 4qU!]_u+L`Y LH4 >?0Lt~%tꙄuI !-c6G+oA?}Kx B&Ժ=P3Ý~H{nf1Z^=%ouwOn2,B?FgBvm$ttYԴxX.S[ ?3_a DFMЧWʆC9#WiKԗ$Q>`5e_Bm֮z |dͪgm\ 57E"Ąˣj̑ 675i, [ej4nh{ӟpT[fGł(MZP$7ݸNe:RCk!Y:gg<'A̞c,uI9ˎ# ms Brb٤m^1Qƨ(05_(EZ8\D6pseLu.}.(ɋչYp׺&:q^TLMtz3B3*S c L 92¤b`%rg:Cd7?n:eO:‚@D1ZaQ#w/cP,{U?z/kUo%]Te/]=X=0QHZ7n}.E[-s0c2e)mt /{ic Ӑݨy7Xlcb5\dL@s!&u ZB*׵tb"z1bzmtW\I?3@[_/(A7^ )UNA4`OYs_4&cl>H@~"`EG 34MuCck1 ڞ=9ROQB rk.̊+9)28šYlkm~'ϕ!2_{vuB3Qm=UjBa' )_\ƝB }{ujԎ׉99ԃ좖Ȝ3OeS7rOi%`\j?AY?:4 |zD89r+Tn.nOO3/ێτpLDJ d=bD gwM,3>XFTHz$;TVtx`iɒM={HĦj]RL(O&X* rb&VGwQȃj g8gUOږɀ!0O=wFDJL+Bۀ&7?1^>XhAeZgN I[s D9 eJ^gW P![+fw6EH5*| ֈ <@\.*d. cAAp٨{jfxƋV|H D_[i]5ZYI6nLiC3pH@sˇ~, ~[+hZ% d+q\#?8rQ=AVܸIah)%? @NBh(Gőf WL+!U>rXP__ PLpXtE5 sC'ѐgM뼸j꿞qvn㇠ߖS"xEg*^%-w{scs6a&C%ч4  oazoB f{藢ZdEpS- Չ@#2ˠ1u?PX~ 7<ߙ \a6 8>V>xc31XuT(?ۂ/LHm`Q9 ϧSB;XmԾd.Ցχl𷈑KNYuD{e:urŚ͙l80'WB~TTXt(Q8D^hLoze |Sw 3qM ~ޮO!剻 [0W0}dLkXEmthƆQSaFҶ/aXRv^Ppܗq@(pDZ( pl :G#fc &M!S%b64*FK+Ԩhuݸ}r>X5_^CYoה%#s>=Cy"hjCf\ݽNmnxnlwNJOBzܜ:::D`OaIyTr*ȥizlr1 BdxCޒ֘%cݣvSteId>Rx/ĎW|.Mcg.\Y&Sry7%،1)Ӓ]kx%1x+ie0-T~55l+WgI޴ES"⪤Lvzw\^;y)_r>>-$4DKvzV;^ J77xd4YYoY|[Ur-WpwP_ր3@Q^m q^D| Bzrsa_RyCuNḜ S-㒦m=0F(#Jt4-oLyQZ^]QYJ~K-CkDzc `1uKT`XAd&烫 >ҢΊhshE|d'^+}KgQ5VSL)C9L"n:O i GVeٶ M}SK )KëY|#%vCMMXo]p?<*d_8`յV >IndAdx4A옐fT|8eT8h۵V!E0cܫeP򸫸qP@=O FSTxX/$}oX cc@uMal3o0\kv 29#OHh. 5**ReeQ,d!r%v B6+}'tg$/ltZ'cm#ݫ=+ӶW꛲i Cۯ_uE_ݑۜ@Xo`Ld[tFbܢ(<=5ggfFq whXmV(o0YH#m'O=pfDۣy?)ԢwvFMUw6@+΂("s3g N۶ rb5 눌-?2pٹCOb1[KŌY5?&1^mAz0nz1BZb 6/D L.#$R_P!8ۊSD-klQ}JT\Cqoq⎢4m`j[Y0th[E$ etF8SҧQ);&Ťű,m[aF:Oڴj9 f:tD,߀/*DTZ94{n6j1$WO2(l&-:tEdaRJ&qR; 'N+pBFϚ r?ài(vx[!Q)hkU#lBv+ίIόUw.jxJgRB7T3]o֬jBW9 2a=u}oԺbRNW}ϬNJ MiY*8UZT>VM .uw}B'uS.ɝzr b9ÓUljYB0V{0EE3&XD_7i7!z $A_:œky}l7Pw%ҊgoC/,~ZKe n߫ Jdsbɫ2L4#|vX=B Fr5o/jh0OHأ5ewKK%8d}砀 }`bp'xx7'Aҫ4AF3}1S CdBܷ3%GMp#}i] ]6-jK>h/h-]Q旝IPIx]Uz #4@(MPlWkI0rqA^y&L蚚!nGK;DZ,.21멶;? %/u~l'W+$|5[97SVDE $+5ҫS} .x%yeN\6' #p i/iM&ЉUe~qb1n6@e'aQudgsD̬$8i4nc>h*ڣ8e4l$!kaa&P<껳zP[k4P29&c]%]*7+XAΎɡt6<99=I"?rA]t`J l:1WT_g1<̢ >̌/mfG9ИZ( O͠;_rzڙQ) FDocW`]V9F R<4wF9;X\IY!Q$4ae"[S:ODv9KJ՜!Ӽĕ/ם7:}-i) X'l"#TŽuLG٣S-BM HCClBX? S?<* [(Wz ΗIzH@b.@[ 6˱q XT+Rmdt1fNs&fy|QZ 2,HFb:Glz8Ʉ_ %FvϞ"Ӧ~6Q"ͯeUI!HSTsšal7}/6VRC}5m<],,h"(Tw hD,hŰ+lYS* )ֲ5W}" !(XRӴQqt˰]/m(~ax0c3; ]v!o]׏'-8SR4Z_Hdo䦊B)7\2LGWPꇥ-0|R-q GZAWN]Wo̸'϶ S77Yod0/p9;_X mK|^f*NgeHnvHrsd Aܬ /:M(a0M𸀾vP/ϒ숻r'SCbM8̟!&yHNI&z.s^ w!c tulœ0ʔ;~Q6͵zEpjW>o\{=f6͒in~"lIey7k-/r9rm!5J~^Բmhg(Pؑ i%}? X} Ac_^jĹxyE '`jx, p&E+yˌ=͒6̇ AWsIԪn⑯?֕ݢbl(x0vosu6 trs;1.fKE0 K+SEvܔI`B]cXe?1QiOWcT.G0u f{p=ۮSE<Nc5D72#vw7V;5k &g3uƝc"{@qS3fg!)TKlw/&'c=&BIQ,uϓ YؐNiӐ̺UÈX Li IFMwNH77xWB5K/}zp/Z5Unվ q6Fj5Ϧ >R%$5JHT)߾^Ihi ]Kn˖_YPfln nue?LA5oS`ck攃 {2>S{hNth/ZGlL1w8a=,=gtuC'uV/1fEc֊@O^:q!T \= cQ 2]z1CKJ )0499ҍEiyPfqml/rvkda UrDPp/W*x!@ʍ.ءndL ̚P5 7f$ &α~/ ۇ 9VPsHb:꛷{dzsBm INA²8nv0g㥅?oͺ.:zxRaoVF;4|n`k °W SZ`w_[ʶV=YL[I, ݭe Yn9^Ɂ#i׍ Jɍ #:ôeQ{sC5ZTWVp4:]h~bOy.ݹn<sEnvߍ Vc} Q2]R e8&z"v j:ˣ$vN)*ֶi|-䕒$$BNhf*Vgp3 6+;rbʿԛ5|C6ZCW ioe+b/out](5au)3ߊHlcL3_ÕUbG.,ȏZ08٫ҬG3̊[Y,Oؼsmu: UzX<%lje&ѽ? `0#|^. *pL@ɁA0s7I 63v;Q\BBA]*Jz HLkFnV͛ "h8T<*'K4ؠQ\yry$P6Cg#DFΒU+]9 06]GVaE GL~Jd%{5W{Is3;+v _Zp-_ )֔reK%4ʨsuGe L!1\\v?oJ0\Sv^ ʊh%,*f̩eb79nTPm*Huht(tpc$5-Æ?]"agN-MVa}Ҿ@BOt싊iT|~_A76Q%Ė؂?r"g-MX@Ny2zJƌV6Hotpo2Vi`qM( ;9˧TS1d$ibJ_>w˳%U+:"AX᨞_ENc'p- lMOPd6S\ 6N٘2Š񁼽7,G`=Ch]ɦ'V!X.7#sidWU @Hz;\OoQ㍾|-dG^DmB+f9Tk}}A=c\|0bm@K}=7iw4 Qo)7D@bzZKAjbzo!di7* }Fꍤ| e yF5RQ0qAT(BBZ뛲D3B 2,+KVi%kb:Pi7JBeHC<9#Z3(BbWv00 XaB,K&;x01>1t*q}fnyo4r (yxZDŽe³ Y^ϋEpU ^ jtI1E1RTϧԾ?}Z/P#3@ਐ(Xx4-rZ >#vrP~DoN[!h"w{ O9}~84J*ZS=ZʋB}5,go %C7\0&G_I`A黎f=pWʩVj*WO rMWB60h."L@/(LNGH4qKDH Q4_퐹.arO GrN+V~D [F}R2y 6% 4wl2u9X"G"`c4fdg4>|ƒ觢uA~c25?-7W Jmtq{ ) U8GT_KB2qv!`N $%-ǿE=Ǿen.^E.AU^$.~pm ']۹8sy6nA#Eil%uAX]#I')%W+PUf aA@5hu@l- +s{֞Bs!O. Hշۚy:?ͩiٸ2kH?+} Q]&5 ..y5bˀ(Ag̰a9kS@M[Z ^#G%'bH\) A֭H ߅E1w˷  s+d[*RN}ؠDz&82Mcu-J!̻]WS}1bd;&7/^s YNzG.ܝ6BnDmj@%u<ؐY+w0WZ8(%mmʰ\k~uЁƯ7YxaYҚw!0ӕ( DL7*9zνɲ魨t= ,8q5MzÕjGr\g k}A/xq ZTN-;#F6J,l+s5E9a|'ŞYC~ix4S%{,0CudZQѠ@EZe{,teR!K; @dvcc݊(-d75?soe[.ۘPǃ$OĖ 0R\vb\@zɈk1sNVlf/H8RݠLjKhgq"ٜ=p\jDd*M/QD_PY!Wty)s@4XQN?ΙIZڰrG(֏q! ;^yep-&gl#MJ= %<(?p /I"+|FO( u#bL8Iz8{ gCҼ#5p<[vR={BN6{H鸬&ZGLY'[cd;E%>N"6VGgC >( /)XMj`܅XFxrC%ܫ)U}6eԻԽ0o$MqV .َ ~6pS|Mܴ\?i ՙ Ƈtf?"@ȦMcB_5ɲ$ݿ`:[El`[=;,g90էn,uk(+ҽt9Bshiܙu˓Vo*"NI*cpMٴ폲tBPkGyO&ȊY= v:DUE18؀?׿. >uC o IDR!OpFXODhX4Ԧg`Oqjؗw;?SQGk3$t}{v/1mh՟W`~ $ǶW.@$S]x7i0M"" 2 GVz]; 䀎p@a՜KK!e&|P8*їzU6ЮT2Lh@JAXɰEgʩ!E8ъ^"Jej|4E@uf^=i kW @#̀Zrb툁&Q2 *Z"=*utkd| 3L2ڎ{ys傟WhVЍo o&%O=2T{vZk*.:ATl7G ]s#!7OVP^mJ.5-%%Yfj:LWKot#$zVo/H^ ҺW֌N$_y=g'uRi pגf C{6H+21Wd(j-LAcpYIS܈>3xЖf3$-@G?qvϻW嵷^V3k"EEyJދU:226x9Y֣(S.W%i-F Ńc5FlI_uf Y6[P xzcV<4JsA<1@$Y=vEeဝWUwD]m:S],/^=F+Wu,L(NAk.F3@ՍS 2hrlj;ib)a S=ֱ(å02PS#%'5fe!Y8Tu М*ؽY,5B* prcV<]rbh8Ễ7E(Kd~9k65.t,>75O$Yc)C@5E37y\>Ґ+EX ^!еq|z2@X-YN+Mt{u^\m"פh:i|1HwA!8^32uoy#}ÒKa,:78%?g7 .1 U"Og4ô8OxvYeJ?2_u:x <8:fk>I?G6eC\# N0B)|er-@'IƄN MD}͈ uleN=n=kj`Y6Lom:e" Xk`2A}j}?]<MqmΆ(8{)h U2‚#IuHӅ\?_"ᴦUܵOsZc~X~t*ntg1jK\J땩!ǨiX#VqpM;C9s[KB7k٧ҌbY0}c 9JTp& >X<+3W5~ W[<>ejS_&Ɖ\:^!pg&&"Ҟ/\p\Gp9베Cӕ@z iHt^ٹD1»Ju+ngf8I4}.55[U^VPk01q?JYDuNxZh=`٘#d3kQZaThMLst“> 'Xj->1gzƝRlT<_Y Xuk8stFX8 {? ."uN4˜19ԵօD 䋤6wv]cN:<( _l N~1/N΋~-H8)V($3Ti5<0d >GSаSˏu.S9aC >6 cBA62R$qֳ @=n7{O`BIQC䝾5na7PxoQS-a8 J:m-O;*6Gkjz O0{b¤0+vEUj$ л87R}دٗeݧQvH/F@e|tI隕5.WڼFw/T;׈4H70G/qcb0 ܊jٟ<lnV^ oLaVyȒl$rtȘui`41G @*$/"FXc|NJѺcn3oAX%h>CxRȧMU"#!Vf5>|@ cGfΟ_q΅ ?uPoa>xR >֑0VcƮyx &\Oo #ڂ7'n4k4ifӬqŕʓ'rfX, &-90ͣOoPMLNZLR{2 +>TQ=^IBYZ tuמuf;GQGZR ܾq}پ) /!k#'@!xX=}pv:BZUrx(-4f~XcOka-7"Y+h%n3UWN% ç.j`RN~Բ=ZP?-Hɼ|vX6z:8PAü8if5(.]w?ֲ؜(G /yJ )/a,xXdo̼pLM&) .`Z5ro,n0Cw#aȨ=~%e(lfZםGK&weta)H uFWPc[{fV{l0WqG7_hVI| | 0s=nP蒅tM?WcNQ? Q LTG@wœup0\y>$,h*-naa#FVQj:)@msL5t9a?QXVb3a\QloD%16]U>S׶B^| ې[׉؄0ԍp}RGŠYofӏdP?T_=Y+; *[Lg_)Sfu)z \=IZµFج# "}e@Aޫ XC:@r-IGgJGD}]}e6+RN*˘(b>İyUn/ d`,W9C&gew‚3ĩ ."$UrK]zѾ*NYvh2/F>6:<J_]/M}EN`Hҡ~ӥ7ҁN C8_S_`$,曮9I?&IK7!i#1K?BʩpKJ iptC^^٫C+#48qC?/5հ_WU;rCg'3YBtXBBM\BB_D.jF(fąOP{nM6S:Y|*l^{A8`jc4N:m`=~7ƶn"-3"{.פmԽ⿈ۃ̢&5ϞyBlBj<]{R 9U6|FBS&t@NH% dNLJȮ7lqrxjشTQl%L.qW&P=a0SﰉnS"Ro#it5Np5qp(WGng%ӭx(h3xSCm+["2"18TwW[lVs߶Fz% vISnok.Rn wr5kjygu&g7Qa8GИt_BW3_} &d$k^ J!-]~I!oP8>0+e:K*P mzw!yC;UЇ8 L"oY]D]0zrɉ9ƿr?TĒ͔oKrE/DȚ_T:ef+B}-%F4 Ӫ|Ѕ}Hje9 U$.RhħBKԎpBõD"qEnu+ ,_t$O^K9-Jmw3Qfiav *ƼMꗕҾV$ajhi#hǣ- .뤑VtණY+-BG Xw(ja_H\H> lRCj\StW-/&?tF׆&%Vl(ۆ /OQs\%p9=DUqDXe9àAOR IyKB\_EX> Qs+TLL3 )vۑtSۣr׏*$W6^^X*G|D !8Li&z5ngkb$dyt ^ø|LnHkzt zyvRunѤ0_ε9[I2f|.Qp]w&dx58cVna8*8~'lvq, 6 ͆VYJ/!hdHc2>k_VL߻6 cWQ6En;BE^yCx$A^"F`|A۴2܊H s<? >E V.nkIyRZSR2V[!-qm?j cv#@Vh_+#zذNGzFpL$qbJJ7^b.?qbP-Oŷ\*B / -n,; i|BIЫr>/z 'D0t9!߼5 <80 FyU004uYJ/J_̋$s^=T|1!ؽi&]|CJX>\aQ(Z}>oܫ/SU kLkELZQzloEFQB5*@.M;¶i$D+wE= ٍLPSC%sR'-QGI,Wyg4+ d ?3:XH@1EIMQ4L"*iVZafu^Vׄ.M6t^{,u:[y:C4~ UJG'$'Q"$^TJ5QXO*Pz!S86iǃZ =eQ)7cLlxqy3ye|jnMj֭Wn}Hq|&l'ʠ|a}uq dN\))3$E(vQ'k<&?-M$  <ąwE"u$ڠ$i@= jQO!C:ю}1|wlĭZ. "ȿn/F-azf`$09eX)Ud] gi!dΑiT)2f>'rx<~ E3H蟼";u% :CC p;I]QqW]Yj`64ҀDϵ:#xk:1euj; "{4M5~YTیU|+YQOGda[1CDa<9+IL2,ue}#lBs{=6@Jp,8b?!VzU550 tyyEj&g za[ա{55z4us׉anhs:=[-]~! Zg#Y a{`vhA$rxeK|;"DϋdX2u] $vx[;%#}U[e& %g╚F~4~ *X XH]x-_ Nͤ*Qeb < 2۽l^8zzwx+zvo}l׽Ϭyo}y}>z;}{}{5>}dA00LiG54&i0)z#! §L6S14`a)b&ɡ=JU?LS`MO0 E?ijS4 E?LM60hFOa22izdšMdFa&bm#*~Q #QId!?I&̀ iIkkHo&eL)ټL'b:_R:=$TPrB(i<5垝h&{9s%Ȭ[x`JBW)%ѿ"Ulz'}uR|lA'¬C`M|(a%zs%VO c`dc_MkMVќ[FI]kOJ+s!]4+dBzfwÿ2z o$\ IR7X'E7y+>J E c&ԙI|[iZuvx[# D@TPQ%Gv]h ZtjYLI->Ur'hHjztoɫxˆ ۬Ce DH[ݣJʝz`[X_Wak>8!v |jx/Kn(0B0k'P\^gk/Eof)_$9hc' s|ڔIIxWXҬ|p&xx ?3)%Sǡq`Mb)iVeV9@Fq=1m`L])NȔCF4SGn:vˆGM-qjưtZer~KDU%Yt`8*{>k^m3" 굒$MQFB4V޺XdpX6et@:6VL(J2xlnB[wDV\)l?8Icm0b9YZ'UmMY,56;cb FX2ٞdL̗+L@'OnHT'h=杜} WV9/y}LAmh3qXk=wRSsHc9xݺfylNN3e}W7崳>96VҠ"CdB( ,*kkIrb_G^7S}\ LQE+f{qL' Nʠay\\(p߅t*/c6FlXv ^Tt{چ/Zu'&m:la㺇vHډZܢq%$4}f83`/z/@,0vUd/γtJRy]'ar>PljjUJL ;H3b/؎+‹p+YmQ3G쀤ohbĢ8wxRB-EɊV`Ycmֽz(?7>1~Lj67.!3f}DAZvHWpp͆Ϋk^'F6R/AbEpF]ӐrK$J0'-תȸYlA)(FƖ1x^p0V%I+^$$.Et4na,epV ]FSq6PEmꝀbYc?c&,lȴU^G!J0 :1 ਲɜ 'Ӛ{0bKi=ēSA.ud"L8T.}1Sq<5LVȭ*b߯ڽ O>Z6U_6qy뚕|Mg`H*a ߒ <Աm ?6] {FMGrk!J_RW#KdZi7vâu~8UOs)J?/t3 }]܃u2(d4cěsmDt T he3pi I3%%4ФB}a2*XuԑŁ殖$1瘅/a=,n`k@D2(3xL wڠJJxTUk%gip\awy,JZ-v۵s4 T;t ,bErFr{'0d$)x.k:KY QCxz}xESO80=NrUTyj! [,lYMKE]qWZϚ_5^WG-֚CG[}.H[P&e # tOf$+Hi&Q(c\cƀ$߮7qL{'TЧ_ca@&1L;aH!)*^ u_e+ <)e̘u3K.Xu?wㇱ))n͏G,!v`$OY3}j^‰"X`\v!?WHP-;BD0镯S} .&!ED= inw4dZ)<Յz- = r?pRcP){+'a-$a/іD7B剼=(7e `uGvxUF9 mԓ wx{~C/V[ `cAv:^LG u '6潑?h%uAu-$Ng7CW:iQ_#;{d ')nTBc$xr=d 0~SjA[1χ{L]ŏ;žc%@dGK¼1 A6ic .ϔ#h$VVHR7f}Pl\mak'6(GzzYg0B`2%Ɲ9J$/k$Y>8]㧇"Wtت|4N'K98=tuE;x B1zL~K$BefH?qIץvoRZI,PhQ|}. OjGB|JV. ~P.wВʰQ[F0Wg{V勺*_<oN#mz h6#kGP=Yep1y J.\]AJlߌ;[e q0GNf*e 6KEUmPQ3g>G/a%)_|&5;Dr;s OblkJޞ&-n4+dG(o SDx2bndga3HX&NOM QTQ4,[_Xn(]k1<0i9<>Q/ ~"/9s)jϻaWy'Xƶt1n}[N*gȖ=W͌7_1nᰃPcoްv%Kɲ_nf4t5tr*"r$;7@NY ͮM!w(|RTA4e'Z>rj2l{ (Jͅi+XnNVVFpK-0BDf"{PZ0uR ])G5#]h ƛ@%^Vt<0*/rr"H*pkKljH/܄M4.F%3.)m N(tuzlϰgX r~j/p_*&2OZwbuueHm 70;30"bJ9Ƣɕ[VU=8x7.}[2_L_¼ %=ppnZR~U9mV2abN&\1T%lV qpʜU4:Xn*7l{KQNgr6YU@5.FvcȺdkFH|wifv|l6utq+[p]3B}@܇ {p;|^񞞉M ' K*c#S{"4ћO&vscJRUlj 2غj9$hǻqk?sيܻUs$%ۓ樂sxhp Mf 1!5rYw1G4Gz<\kGvo0Egb#7 #8׎[o䡎pŋt&וC$Î2?Aϵ._oMN5ӫXoִ,ݴBnZvA~C%^W^umcj3֌>ffLhH> r?h|8lzcmmBm)Ob}dsJ;W;m5qW=j`.i- Yܤش׀GOv@mr6<(G¦r\]Ty)0qߞqG4DfuUu&}-Otx8<K@}Dn &ÜOw0ȁ2-OFҝ<ӵI`6CΤQX&oc;%*5rzl.y b1t޲J$J6?쾸v/׸T}:6V?(/`'7o;>"CVfv}UՃVYfqud  y_HKO-:JFSZ ̓*bwv(r@NZDu8?6')5%$g OOʵrɴ{'jB;F|/H g/o:6;N~-rk(`>6C"-#ΛPEEAu]-\i L Ͳ|<ݒˆrSgLFae5ωˑcKgO<齀MKEeYS}QO+pqAfN;~Qir^3D{b/l\|U͕zvW>*5<,f4ϴ!)g˜W32' @G=ISVf-x%Ojŷhs8bW#S!4kV R'@+3\Kˋ|zjF=m ޖkX}pEha)0߱l~x=~EjXokj@- })ة&xDjK/5" hכFG'ijϭ$/׶#q7L`DQK]+(,8t'v}Ǝ9Ph4_LŮi9dzSO:+q{\IՁ,NW*HOVq;TVHR 8%]RH"?^JBu5b_3DYҘ6C5SL$}+8u>'2 7,C([[Ϊ# j]9Bi5n2@!t?R8V~-QA4Co[V[vxׇi|y 0FT)=xY;j- .NHmdXlh@1O a8v7+>{[1d1lq:ʆguG}gdaii8)ix7[HT~o KE( >Gm:xG34M.7C)7dA7 suշC\YMhzwK<eW/eLM ?Xk`=Iz7b6<;-7~ ~e}ؗ[tfRpz5E#p^gImǻc@=2nԷ =zɴ;9~&Ja|fî>JOΝ\*AN Q|5s^F143wZLQc&g)sz&r"ٴ,08a['`evOBI⭃@-N'=$QESYȌI5םIDϣ1- gg*;)짘[~Qߒ 9M&#)Zu&#cpJl]E8=~@2fBU6 cpÃlQ!}D,-hyN%?آ=Xig},|BUσHKj;L<5*u_ Mg4`nB2/,[{EuլuKE*Sz*Aul,)l0`-3긵SZl)Gr@.;Sy0YtOb&!zܤA5\`NnA0s%"7=.uɪA$Ǝ ,qf!k̯Chϟǃg8dŖ 1ޞڶFymyFs8G١|+ȄM۰ TPQl1?[s4hdWC}Nl~h`TÜ֜]WV卋V+VTIϾ@q28M9zRc)șq\$8ܧw(8uBV~ 8f^䂥Ʌ#fm c ]exsݒb^:_œ) + lmKHC+_WO૵Du<8&aŲSږc5[%7>~ǘ}r@ _Pf֥N ={rDr+S5CƓ,iQUQ&ǍG_T[,-Rj|tW6ZJ=0K$CptuxE`F_ .z"ecJ'(lN^`|dW,3nAcOC@0\ 'p}G}H:h`n 2˩b1hk]ɛONjxN捭IA~ʋ|Xd߇Lx(:cV-)Ǭn#nRd`Zg~Z89F.Ri4 Qh^ՙ3GPvnMyI%);Ӯ,-}PYJŮĹ;KdrI+W@MUd őNiIcRY!,T"4[xlw4nIsɆ|E潳puQoy T;KyĖY62RZ\e~hT.\LuZ85"][ҭӍf9w1v"޲Zr]f²O!v.08tSu'ڹrخ~gޠJa rasobX7wqi޸7lX' sԨ0Sxį`cY@T"ob`LI0aJ>mޢ 0=޽AN{T":TM"lY㳠}hf6`)NB^P +Ģ$1XUaÕa iȰ1"%t@ /%|*zIn\  hÎpX~~,;Lܙݏ.aRku兹AxW_u~)Sgg9+y#J3"(HRkZ