/* Authors: Jakub Hrozek Copyright (C) 2011 Red Hat This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include "util/util.h" #include "util/sss_python.h" #include "providers/ipa/ipa_hbac.h" #define PYTHON_MODULE_NAME "pyhbac" #ifndef PYHBAC_ENCODING #define PYHBAC_ENCODING "UTF-8" #endif #define PYHBAC_ENCODING_ERRORS "strict" #define CHECK_ATTRIBUTE_DELETE(attr, attrname) do { \ if (attr == NULL) { \ PyErr_Format(PyExc_TypeError, \ "Cannot delete the %s attribute", \ attrname); \ return -1; \ } \ } while(0) static PyObject *PyExc_HbacError; /* ==================== Utility functions ========================*/ static char * py_strdup(const char *string) { char *copy; copy = PyMem_New(char, strlen(string)+1); if (copy == NULL) { PyErr_NoMemory(); return NULL; } return strcpy(copy, string); } static char * py_strcat_realloc(char *first, const char *second) { char *new_first; new_first = PyMem_Realloc(first, strlen(first) + strlen(second) + 1); if (new_first == NULL) { PyErr_NoMemory(); return NULL; } return strcat(new_first, second); } static PyObject * get_utf8_string(PyObject *obj, const char *attrname) { const char *a = attrname ? attrname : "attribute"; PyObject *obj_utf8 = NULL; if (PyString_Check(obj)) { obj_utf8 = obj; Py_INCREF(obj_utf8); /* Make sure we can DECREF later */ } else if (PyUnicode_Check(obj)) { if ((obj_utf8 = PyUnicode_AsUTF8String(obj)) == NULL) { return NULL; } } else { PyErr_Format(PyExc_TypeError, "%s must be a string", a); return NULL; } return obj_utf8; } static void free_string_list(const char **list) { int i; if (!list) return; for (i=0; list[i]; i++) { PyMem_Free(discard_const_p(char, list[i])); } PyMem_Free(list); } static const char ** sequence_as_string_list(PyObject *seq, const char *paramname) { const char *p = paramname ? paramname : "attribute values"; const char **ret; PyObject *utf_item; int i; Py_ssize_t len; PyObject *item; if (!PySequence_Check(seq)) { PyErr_Format(PyExc_TypeError, "The object must be a sequence\n"); return NULL; } len = PySequence_Size(seq); if (len == -1) return NULL; ret = PyMem_New(const char *, (len+1)); if (!ret) { PyErr_NoMemory(); return NULL; } for (i = 0; i < len; i++) { item = PySequence_GetItem(seq, i); if (item == NULL) { break; } utf_item = get_utf8_string(item, p); if (utf_item == NULL) { return NULL; } ret[i] = py_strdup(PyString_AsString(utf_item)); Py_DECREF(utf_item); if (!ret[i]) { return NULL; } } ret[i] = NULL; return ret; } static bool verify_sequence(PyObject *seq, const char *attrname) { const char *a = attrname ? attrname : "attribute"; if (!PySequence_Check(seq)) { PyErr_Format(PyExc_TypeError, "%s must be a sequence", a); return false; } return true; } static int pyobject_to_category(PyObject *o) { int c; c = PyInt_AsLong(o); if (c == -1 && PyErr_Occurred()) { PyErr_Format(PyExc_TypeError, "Invalid type for category element - must be an int\n"); return -1; } switch (c) { case HBAC_CATEGORY_NULL: case HBAC_CATEGORY_ALL: return c; } PyErr_Format(PyExc_ValueError, "Invalid value %d for category\n", c); return -1; } static uint32_t native_category(PyObject *pycat) { PyObject *iterator; PyObject *item; uint32_t cat; int ret; iterator = PyObject_GetIter(pycat); if (iterator == NULL) { PyErr_Format(PyExc_RuntimeError, "Cannot iterate category\n"); return -1; } cat = 0; while ((item = PyIter_Next(iterator))) { ret = pyobject_to_category(item); Py_DECREF(item); if (ret == -1) { Py_DECREF(iterator); return -1; } cat |= ret; } Py_DECREF(iterator); return cat; } static char * str_concat_sequence(PyObject *seq, const char *delim) { Py_ssize_t size; Py_ssize_t i; PyObject *item; char *s = NULL; char *part; size = PySequence_Size(seq); if (size == 0) { s = py_strdup(""); if (s == NULL) { return NULL; } return s; } for (i=0; i < size; i++) { item = PySequence_GetItem(seq, i); if (item == NULL) goto fail; part = PyString_AsString(item); if (part == NULL) { Py_DECREF(item); goto fail; } if (s) { s = py_strcat_realloc(s, delim); if (s == NULL) goto fail; s = py_strcat_realloc(s, part); if (s == NULL) goto fail; } else { s = py_strdup(part); if (s == NULL) goto fail; } Py_DECREF(item); } return s; fail: PyMem_Free(s); return NULL; } /* ================= HBAC Exception handling =====================*/ static void set_hbac_exception(PyObject *exc, struct hbac_info *error) { PyErr_SetObject(exc, Py_BuildValue(sss_py_const_p(char, "(i,s)"), error->code, error->rule_name ? \ error->rule_name : "no rule")); } /* ==================== HBAC Rule Element ========================*/ typedef struct { PyObject_HEAD PyObject *category; PyObject *names; PyObject *groups; } HbacRuleElement; static PyObject * HbacRuleElement_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { HbacRuleElement *self; self = (HbacRuleElement *) type->tp_alloc(type, 0); if (self == NULL) { PyErr_NoMemory(); return NULL; } self->category = sss_python_set_new(); self->names = PyList_New(0); self->groups = PyList_New(0); if (!self->names || !self->groups || !self->category) { Py_DECREF(self); PyErr_NoMemory(); return NULL; } return (PyObject *) self; } static int HbacRuleElement_clear(HbacRuleElement *self) { Py_CLEAR(self->names); Py_CLEAR(self->groups); Py_CLEAR(self->category); return 0; } static void HbacRuleElement_dealloc(HbacRuleElement *self) { HbacRuleElement_clear(self); self->ob_type->tp_free((PyObject*) self); } static int HbacRuleElement_traverse(HbacRuleElement *self, visitproc visit, void *arg) { Py_VISIT(self->groups); Py_VISIT(self->names); Py_VISIT(self->category); return 0; } static int hbac_rule_element_set_names(HbacRuleElement *self, PyObject *names, void *closure); static int hbac_rule_element_set_groups(HbacRuleElement *self, PyObject *groups, void *closure); static int hbac_rule_element_set_category(HbacRuleElement *self, PyObject *category, void *closure); static int HbacRuleElement_init(HbacRuleElement *self, PyObject *args, PyObject *kwargs) { const char * const kwlist[] = { "names", "groups", "category", NULL }; PyObject *names = NULL; PyObject *groups = NULL; PyObject *category = NULL; PyObject *tmp = NULL; if (!PyArg_ParseTupleAndKeywords(args, kwargs, sss_py_const_p(char, "|OOO"), discard_const_p(char *, kwlist), &names, &groups, &category)) { return -1; } if (names) { if (hbac_rule_element_set_names(self, names, NULL) != 0) { return -1; } } if (groups) { if (hbac_rule_element_set_groups(self, groups, NULL) != 0) { return -1; } } if (category) { if (hbac_rule_element_set_category(self, category, NULL) != 0) { return -1; } } else { tmp = PyInt_FromLong(HBAC_CATEGORY_NULL); if (!tmp) { return -1; } if (sss_python_set_add(self->category, tmp) != 0) { Py_DECREF(tmp); return -1; } } return 0; } static int hbac_rule_element_set_names(HbacRuleElement *self, PyObject *names, void *closure) { CHECK_ATTRIBUTE_DELETE(names, "names"); if (!verify_sequence(names, "names")) { return -1; } SAFE_SET(self->names, names); return 0; } static PyObject * hbac_rule_element_get_names(HbacRuleElement *self, void *closure) { Py_INCREF(self->names); return self->names; } static int hbac_rule_element_set_groups(HbacRuleElement *self, PyObject *groups, void *closure) { CHECK_ATTRIBUTE_DELETE(groups, "groups"); if (!verify_sequence(groups, "groups")) { return -1; } SAFE_SET(self->groups, groups); return 0; } static PyObject * hbac_rule_element_get_groups(HbacRuleElement *self, void *closure) { Py_INCREF(self->groups); return self->groups; } static int hbac_rule_element_set_category(HbacRuleElement *self, PyObject *category, void *closure) { PyObject *iterator; PyObject *item; int ret; CHECK_ATTRIBUTE_DELETE(category, "category"); if (!sss_python_set_check(category)) { PyErr_Format(PyExc_TypeError, "The category must be a set type\n"); return -1; } /* Check the values, too */ iterator = PyObject_GetIter(category); if (iterator == NULL) { PyErr_Format(PyExc_RuntimeError, "Cannot iterate a set?\n"); return -1; } while ((item = PyIter_Next(iterator))) { ret = pyobject_to_category(item); Py_DECREF(item); if (ret == -1) { Py_DECREF(iterator); return -1; } } SAFE_SET(self->category, category); Py_DECREF(iterator); return 0; } static PyObject * hbac_rule_element_get_category(HbacRuleElement *self, void *closure) { Py_INCREF(self->category); return self->category; } static PyObject * HbacRuleElement_repr(HbacRuleElement *self) { char *strnames = NULL; char *strgroups = NULL; uint32_t category; PyObject *o, *format, *args; format = sss_python_unicode_from_string(""); if (format == NULL) { return NULL; } strnames = str_concat_sequence(self->names, discard_const_p(char, ",")); strgroups = str_concat_sequence(self->groups, discard_const_p(char, ",")); category = native_category(self->category); if (strnames == NULL || strgroups == NULL || category == -1) { PyMem_Free(strnames); PyMem_Free(strgroups); Py_DECREF(format); return NULL; } args = Py_BuildValue(sss_py_const_p(char, "Kss"), (unsigned long long ) category, strnames, strgroups); if (args == NULL) { PyMem_Free(strnames); PyMem_Free(strgroups); Py_DECREF(format); return NULL; } o = PyUnicode_Format(format, args); PyMem_Free(strnames); PyMem_Free(strgroups); Py_DECREF(format); Py_DECREF(args); return o; } PyDoc_STRVAR(HbacRuleElement_names__doc__, "(sequence of strings) A list of object names this element applies to"); PyDoc_STRVAR(HbacRuleElement_groups__doc__, "(sequence of strings) A list of group names this element applies to"); PyDoc_STRVAR(HbacRuleElement_category__doc__, "(set) A set of categories this rule falls into"); static PyGetSetDef py_hbac_rule_element_getset[] = { { discard_const_p(char, "names"), (getter) hbac_rule_element_get_names, (setter) hbac_rule_element_set_names, HbacRuleElement_names__doc__, NULL }, { discard_const_p(char, "groups"), (getter) hbac_rule_element_get_groups, (setter) hbac_rule_element_set_groups, HbacRuleElement_groups__doc__, NULL }, { discard_const_p(char, "category"), (getter) hbac_rule_element_get_category, (setter) hbac_rule_element_set_category, HbacRuleElement_category__doc__, NULL }, { NULL, 0, 0, 0, NULL } /* Sentinel */ }; PyDoc_STRVAR(HbacRuleElement__doc__, "IPA HBAC Rule Element\n\n" "HbacRuleElement() -> new empty rule element\n" "HbacRuleElement([names], [groups], [category]) -> optionally, provide\n" "names and/or groups and/or category\n"); static PyTypeObject pyhbac_hbacrule_element_type = { PyObject_HEAD_INIT(NULL) .tp_name = sss_py_const_p(char, "pyhbac.HbacRuleElement"), .tp_basicsize = sizeof(HbacRuleElement), .tp_new = HbacRuleElement_new, .tp_dealloc = (destructor) HbacRuleElement_dealloc, .tp_traverse = (traverseproc) HbacRuleElement_traverse, .tp_clear = (inquiry) HbacRuleElement_clear, .tp_init = (initproc) HbacRuleElement_init, .tp_repr = (reprfunc) HbacRuleElement_repr, .tp_getset = py_hbac_rule_element_getset, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, .tp_doc = HbacRuleElement__doc__ }; static void free_hbac_rule_element(struct hbac_rule_element *el) { if (!el) return; free_string_list(el->names); free_string_list(el->groups); PyMem_Free(el); } struct hbac_rule_element * HbacRuleElement_to_native(HbacRuleElement *pyel) { struct hbac_rule_element *el = NULL; /* check the type, None would wreak havoc here because for some reason * it would pass the sequence check */ if (!PyObject_IsInstance((PyObject *) pyel, (PyObject *) &pyhbac_hbacrule_element_type)) { PyErr_Format(PyExc_TypeError, "The element must be of type HbacRuleElement\n"); goto fail; } el = PyMem_Malloc(sizeof(struct hbac_rule_element)); if (!el) { PyErr_NoMemory(); goto fail; } el->category = native_category(pyel->category); el->names = sequence_as_string_list(pyel->names, "names"); el->groups = sequence_as_string_list(pyel->groups, "groups"); if (!el->names || !el->groups || el->category == -1) { goto fail; } return el; fail: free_hbac_rule_element(el); return NULL; } /* ==================== HBAC Rule ========================*/ typedef struct { PyObject_HEAD PyObject *name; bool enabled; HbacRuleElement *users; HbacRuleElement *services; HbacRuleElement *targethosts; HbacRuleElement *srchosts; } HbacRuleObject; static void free_hbac_rule(struct hbac_rule *rule); static struct hbac_rule * HbacRule_to_native(HbacRuleObject *pyrule); static PyObject * HbacRule_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { HbacRuleObject *self; self = (HbacRuleObject *) type->tp_alloc(type, 0); if (self == NULL) { PyErr_NoMemory(); return NULL; } self->name = sss_python_unicode_from_string(""); if (self->name == NULL) { Py_DECREF(self); PyErr_NoMemory(); return NULL; } self->enabled = false; self->services = (HbacRuleElement *) HbacRuleElement_new( &pyhbac_hbacrule_element_type, NULL, NULL); self->users = (HbacRuleElement *) HbacRuleElement_new( &pyhbac_hbacrule_element_type, NULL, NULL); self->targethosts = (HbacRuleElement *) HbacRuleElement_new( &pyhbac_hbacrule_element_type, NULL, NULL); self->srchosts = (HbacRuleElement *) HbacRuleElement_new( &pyhbac_hbacrule_element_type, NULL, NULL); if (self->services == NULL || self->users == NULL || self->targethosts == NULL || self->srchosts == NULL) { Py_XDECREF(self->services); Py_XDECREF(self->users); Py_XDECREF(self->targethosts); Py_XDECREF(self->srchosts); Py_DECREF(self->name); Py_DECREF(self); PyErr_NoMemory(); return NULL; } return (PyObject *) self; } static int HbacRule_clear(HbacRuleObject *self) { Py_CLEAR(self->name); Py_CLEAR(self->services); Py_CLEAR(self->users); Py_CLEAR(self->targethosts); Py_CLEAR(self->srchosts); return 0; } static void HbacRule_dealloc(HbacRuleObject *self) { HbacRule_clear(self); self->ob_type->tp_free((PyObject*) self); } static int HbacRule_traverse(HbacRuleObject *self, visitproc visit, void *arg) { Py_VISIT((PyObject *) self->name); Py_VISIT((PyObject *) self->services); Py_VISIT((PyObject *) self->users); Py_VISIT((PyObject *) self->targethosts); Py_VISIT((PyObject *) self->srchosts); return 0; } static int hbac_rule_set_enabled(HbacRuleObject *self, PyObject *enabled, void *closure); static int hbac_rule_set_name(HbacRuleObject *self, PyObject *name, void *closure); static int HbacRule_init(HbacRuleObject *self, PyObject *args, PyObject *kwargs) { const char * const kwlist[] = { "name", "enabled", NULL }; PyObject *name = NULL; PyObject *empty_tuple = NULL; PyObject *enabled=NULL; if (!PyArg_ParseTupleAndKeywords(args, kwargs, sss_py_const_p(char, "O|O"), discard_const_p(char *, kwlist), &name, &enabled)) { return -1; } if (enabled) { if (hbac_rule_set_enabled(self, enabled, NULL) == -1) { return -1; } } if (hbac_rule_set_name(self, name, NULL) == -1) { return -1; } empty_tuple = PyTuple_New(0); if (!empty_tuple) { return -1; } if (HbacRuleElement_init(self->users, empty_tuple, NULL) == -1 || HbacRuleElement_init(self->services, empty_tuple, NULL) == -1 || HbacRuleElement_init(self->targethosts, empty_tuple, NULL) == -1 || HbacRuleElement_init(self->srchosts, empty_tuple, NULL) == -1) { Py_DECREF(empty_tuple); return -1; } Py_DECREF(empty_tuple); return 0; } static int hbac_rule_set_enabled(HbacRuleObject *self, PyObject *enabled, void *closure) { CHECK_ATTRIBUTE_DELETE(enabled, "enabled"); if (PyString_Check(enabled) || PyUnicode_Check(enabled)) { PyObject *utf8_str; char *str; utf8_str = get_utf8_string(enabled, "enabled"); if (!utf8_str) return -1; str = PyString_AsString(utf8_str); if (!str) { Py_DECREF(utf8_str); return -1; } if (strcasecmp(str, "true") == 0) { self->enabled = true; } else if (strcasecmp(str, "false") == 0) { self->enabled = false; } else { PyErr_Format(PyExc_ValueError, "enabled only accepts 'true' of 'false' " "string literals"); Py_DECREF(utf8_str); return -1; } Py_DECREF(utf8_str); return 0; } else if (PyBool_Check(enabled)) { self->enabled = (enabled == Py_True); return 0; } else if (PyInt_Check(enabled)) { switch(PyInt_AsLong(enabled)) { case 0: self->enabled = false; break; case 1: self->enabled = true; break; default: PyErr_Format(PyExc_ValueError, "enabled only accepts '0' of '1' " "integer constants"); return -1; } return 0; } PyErr_Format(PyExc_TypeError, "enabled must be a boolean, an integer " "1 or 0 or a string constant true/false"); return -1; } static PyObject * hbac_rule_get_enabled(HbacRuleObject *self, void *closure) { if (self->enabled) { Py_RETURN_TRUE; } Py_RETURN_FALSE; } static int hbac_rule_set_name(HbacRuleObject *self, PyObject *name, void *closure) { CHECK_ATTRIBUTE_DELETE(name, "name"); if (!PyString_Check(name) && !PyUnicode_Check(name)) { PyErr_Format(PyExc_TypeError, "name must be a string or Unicode"); return -1; } SAFE_SET(self->name, name); return 0; } static PyObject * hbac_rule_get_name(HbacRuleObject *self, void *closure) { if (PyUnicode_Check(self->name)) { Py_INCREF(self->name); return self->name; } else if (PyString_Check(self->name)) { return PyUnicode_FromEncodedObject(self->name, PYHBAC_ENCODING, PYHBAC_ENCODING_ERRORS); } /* setter does typechecking but let us be paranoid */ PyErr_Format(PyExc_TypeError, "name must be a string or Unicode"); return NULL; } static PyObject * HbacRule_repr(HbacRuleObject *self) { PyObject *users_repr; PyObject *services_repr; PyObject *targethosts_repr; PyObject *srchosts_repr; PyObject *o, *format, *args; format = sss_python_unicode_from_string(""); if (format == NULL) { return NULL; } users_repr = HbacRuleElement_repr(self->users); services_repr = HbacRuleElement_repr(self->services); targethosts_repr = HbacRuleElement_repr(self->targethosts); srchosts_repr = HbacRuleElement_repr(self->srchosts); if (users_repr == NULL || services_repr == NULL || targethosts_repr == NULL || srchosts_repr == NULL) { Py_XDECREF(users_repr); Py_XDECREF(services_repr); Py_XDECREF(targethosts_repr); Py_XDECREF(srchosts_repr); Py_DECREF(format); return NULL; } args = Py_BuildValue(sss_py_const_p(char, "OiOOOO"), self->name, self->enabled, users_repr, services_repr, targethosts_repr, srchosts_repr); if (args == NULL) { Py_DECREF(users_repr); Py_DECREF(services_repr); Py_DECREF(targethosts_repr); Py_DECREF(srchosts_repr); Py_DECREF(format); return NULL; } o = PyUnicode_Format(format, args); Py_DECREF(users_repr); Py_DECREF(services_repr); Py_DECREF(targethosts_repr); Py_DECREF(srchosts_repr); Py_DECREF(format); Py_DECREF(args); return o; } static PyObject * py_hbac_rule_validate(HbacRuleObject *self, PyObject *args) { struct hbac_rule *rule; bool is_valid; uint32_t missing; uint32_t attr; PyObject *ret = NULL; PyObject *py_is_valid = NULL; PyObject *py_missing = NULL; PyObject *py_attr = NULL; rule = HbacRule_to_native(self); if (!rule) { /* Make sure there is at least a generic exception */ if (!PyErr_Occurred()) { PyErr_Format(PyExc_IOError, "Could not convert HbacRule to native type\n"); } goto fail; } is_valid = hbac_rule_is_complete(rule, &missing); free_hbac_rule(rule); ret = PyTuple_New(2); if (!ret) { PyErr_NoMemory(); goto fail; } py_is_valid = PyBool_FromLong(is_valid); py_missing = sss_python_set_new(); if (!py_missing || !py_is_valid) { PyErr_NoMemory(); goto fail; } for (attr = HBAC_RULE_ELEMENT_USERS; attr <= HBAC_RULE_ELEMENT_SOURCEHOSTS; attr <<= 1) { if (!(missing & attr)) continue; py_attr = PyInt_FromLong(attr); if (!py_attr) { PyErr_NoMemory(); goto fail; } if (sss_python_set_add(py_missing, py_attr) != 0) { /* If the set-add succeeded, it would steal the reference */ Py_DECREF(py_attr); goto fail; } } PyTuple_SET_ITEM(ret, 0, py_is_valid); PyTuple_SET_ITEM(ret, 1, py_missing); return ret; fail: Py_XDECREF(ret); Py_XDECREF(py_missing); Py_XDECREF(py_is_valid); return NULL; } PyDoc_STRVAR(py_hbac_rule_validate__doc__, "validate() -> (valid, missing)\n\n" "Validate an HBAC rule\n" "Returns a tuple of (bool, set). The boolean value describes whether\n" "the rule is valid. If it is False, then the set lists all the missing " "rule elements as HBAC_RULE_ELEMENT_* constants\n"); static PyMethodDef py_hbac_rule_methods[] = { { sss_py_const_p(char, "validate"), (PyCFunction) py_hbac_rule_validate, METH_VARARGS, py_hbac_rule_validate__doc__, }, { NULL, NULL, 0, NULL } /* Sentinel */ }; PyDoc_STRVAR(HbacRuleObject_users__doc__, "(HbacRuleElement) Users and user groups for which this rule applies"); PyDoc_STRVAR(HbacRuleObject_services__doc__, "(HbacRuleElement) Services and service groups for which this rule applies"); PyDoc_STRVAR(HbacRuleObject_targethosts__doc__, "(HbacRuleElement) Target hosts for which this rule applies"); PyDoc_STRVAR(HbacRuleObject_srchosts__doc__, "(HbacRuleElement) Source hosts for which this rule applies"); static PyMemberDef py_hbac_rule_members[] = { { discard_const_p(char, "users"), T_OBJECT_EX, offsetof(HbacRuleObject, users), 0, HbacRuleObject_users__doc__ }, { discard_const_p(char, "services"), T_OBJECT_EX, offsetof(HbacRuleObject, services), 0, HbacRuleObject_services__doc__ }, { discard_const_p(char, "targethosts"), T_OBJECT_EX, offsetof(HbacRuleObject, targethosts), 0, HbacRuleObject_targethosts__doc__}, { discard_const_p(char, "srchosts"), T_OBJECT_EX, offsetof(HbacRuleObject, srchosts), 0, HbacRuleObject_srchosts__doc__}, { NULL, 0, 0, 0, NULL } /* Sentinel */ }; PyDoc_STRVAR(HbacRuleObject_enabled__doc__, "(bool) Is the rule enabled"); PyDoc_STRVAR(HbacRuleObject_name__doc__, "(string) The name of the rule"); static PyGetSetDef py_hbac_rule_getset[] = { { discard_const_p(char, "enabled"), (getter) hbac_rule_get_enabled, (setter) hbac_rule_set_enabled, HbacRuleObject_enabled__doc__, NULL }, { discard_const_p(char, "name"), (getter) hbac_rule_get_name, (setter) hbac_rule_set_name, HbacRuleObject_name__doc__, NULL }, {NULL, 0, 0, 0, NULL} /* Sentinel */ }; PyDoc_STRVAR(HbacRuleObject__doc__, "IPA HBAC Rule\n\n" "HbacRule(name, [enabled]) -> instantiate an empty rule, optionally\n" "specify whether it is enabled. Rules are created disabled by default and\n" "contain empty HbacRuleElement instances in services, users, targethosts\n" "and srchosts attributes.\n"); static PyTypeObject pyhbac_hbacrule_type = { PyObject_HEAD_INIT(NULL) .tp_name = sss_py_const_p(char, "pyhbac.HbacRule"), .tp_basicsize = sizeof(HbacRuleObject), .tp_new = HbacRule_new, .tp_dealloc = (destructor) HbacRule_dealloc, .tp_traverse = (traverseproc) HbacRule_traverse, .tp_clear = (inquiry) HbacRule_clear, .tp_init = (initproc) HbacRule_init, .tp_repr = (reprfunc) HbacRule_repr, .tp_members = py_hbac_rule_members, .tp_methods = py_hbac_rule_methods, .tp_getset = py_hbac_rule_getset, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, .tp_doc = HbacRuleObject__doc__ }; static void free_hbac_rule(struct hbac_rule *rule) { if (!rule) return; free_hbac_rule_element(rule->services); free_hbac_rule_element(rule->users); free_hbac_rule_element(rule->targethosts); free_hbac_rule_element(rule->srchosts); PyMem_Free(discard_const_p(char, rule->name)); PyMem_Free(rule); } static struct hbac_rule * HbacRule_to_native(HbacRuleObject *pyrule) { struct hbac_rule *rule = NULL; PyObject *utf_name; rule = PyMem_Malloc(sizeof(struct hbac_rule)); if (!rule) { PyErr_NoMemory(); goto fail; } if (!PyObject_IsInstance((PyObject *) pyrule, (PyObject *) &pyhbac_hbacrule_type)) { PyErr_Format(PyExc_TypeError, "The rule must be of type HbacRule\n"); goto fail; } utf_name = get_utf8_string(pyrule->name, "name"); if (utf_name == NULL) { return NULL; } rule->name = py_strdup(PyString_AsString(utf_name)); Py_DECREF(utf_name); if (rule->name == NULL) { goto fail; } rule->services = HbacRuleElement_to_native(pyrule->services); rule->users = HbacRuleElement_to_native(pyrule->users); rule->targethosts = HbacRuleElement_to_native(pyrule->targethosts); rule->srchosts = HbacRuleElement_to_native(pyrule->srchosts); if (!rule->services || !rule->users || !rule->targethosts || !rule->srchosts) { goto fail; } rule->enabled = pyrule->enabled; return rule; fail: free_hbac_rule(rule); return NULL; } /* ==================== HBAC Request Element ========================*/ typedef struct { PyObject_HEAD PyObject *name; PyObject *groups; } HbacRequestElement; static PyObject * HbacRequestElement_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { HbacRequestElement *self; self = (HbacRequestElement *) type->tp_alloc(type, 0); if (self == NULL) { PyErr_NoMemory(); return NULL; } self->name = sss_python_unicode_from_string(""); if (self->name == NULL) { PyErr_NoMemory(); Py_DECREF(self); return NULL; } self->groups = PyList_New(0); if (self->groups == NULL) { Py_DECREF(self->name); Py_DECREF(self); PyErr_NoMemory(); return NULL; } return (PyObject *) self; } static int HbacRequestElement_clear(HbacRequestElement *self) { Py_CLEAR(self->name); Py_CLEAR(self->groups); return 0; } static void HbacRequestElement_dealloc(HbacRequestElement *self) { HbacRequestElement_clear(self); self->ob_type->tp_free((PyObject*) self); } static int HbacRequestElement_traverse(HbacRequestElement *self, visitproc visit, void *arg) { Py_VISIT(self->name); Py_VISIT(self->groups); return 0; } static int hbac_request_element_set_groups(HbacRequestElement *self, PyObject *groups, void *closure); static int hbac_request_element_set_name(HbacRequestElement *self, PyObject *name, void *closure); static int HbacRequestElement_init(HbacRequestElement *self, PyObject *args, PyObject *kwargs) { const char * const kwlist[] = { "name", "groups", NULL }; PyObject *name = NULL; PyObject *groups = NULL; if (!PyArg_ParseTupleAndKeywords(args, kwargs, sss_py_const_p(char, "|OO"), discard_const_p(char *, kwlist), &name, &groups)) { return -1; } if (name) { if (hbac_request_element_set_name(self, name, NULL) != 0) { return -1; } } if (groups) { if (hbac_request_element_set_groups(self, groups, NULL) != 0) { return -1; } } return 0; } static int hbac_request_element_set_name(HbacRequestElement *self, PyObject *name, void *closure) { CHECK_ATTRIBUTE_DELETE(name, "name"); if (!PyString_Check(name) && !PyUnicode_Check(name)) { PyErr_Format(PyExc_TypeError, "name must be a string or Unicode"); return -1; } SAFE_SET(self->name, name); return 0; } static PyObject * hbac_request_element_get_name(HbacRequestElement *self, void *closure) { if (PyUnicode_Check(self->name)) { Py_INCREF(self->name); return self->name; } else if (PyString_Check(self->name)) { return PyUnicode_FromEncodedObject(self->name, PYHBAC_ENCODING, PYHBAC_ENCODING_ERRORS); } /* setter does typechecking but let us be paranoid */ PyErr_Format(PyExc_TypeError, "name must be a string or Unicode"); return NULL; } static int hbac_request_element_set_groups(HbacRequestElement *self, PyObject *groups, void *closure) { CHECK_ATTRIBUTE_DELETE(groups, "groups"); if (!verify_sequence(groups, "groups")) { return -1; } SAFE_SET(self->groups, groups); return 0; } static PyObject * hbac_request_element_get_groups(HbacRequestElement *self, void *closure) { Py_INCREF(self->groups); return self->groups; } static PyObject * HbacRequestElement_repr(HbacRequestElement *self) { char *strgroups; PyObject *o, *format, *args; format = sss_python_unicode_from_string(""); if (format == NULL) { return NULL; } strgroups = str_concat_sequence(self->groups, discard_const_p(char, ",")); if (strgroups == NULL) { Py_DECREF(format); return NULL; } args = Py_BuildValue(sss_py_const_p(char, "Os"), self->name, strgroups); if (args == NULL) { PyMem_Free(strgroups); Py_DECREF(format); return NULL; } o = PyUnicode_Format(format, args); PyMem_Free(strgroups); Py_DECREF(format); Py_DECREF(args); return o; } PyDoc_STRVAR(HbacRequestElement_name__doc__, "(string) An object name this element applies to"); PyDoc_STRVAR(HbacRequestElement_groups__doc__, "(list of strings) A list of group names this element applies to"); static PyGetSetDef py_hbac_request_element_getset[] = { { discard_const_p(char, "name"), (getter) hbac_request_element_get_name, (setter) hbac_request_element_set_name, HbacRequestElement_name__doc__, NULL }, { discard_const_p(char, "groups"), (getter) hbac_request_element_get_groups, (setter) hbac_request_element_set_groups, HbacRequestElement_groups__doc__, NULL }, { NULL, 0, 0, 0, NULL } /* Sentinel */ }; PyDoc_STRVAR(HbacRequestElement__doc__, "IPA HBAC Request Element\n\n" "HbacRequestElement() -> new empty request element\n" "HbacRequestElement([name], [groups]) -> optionally, provide name and/or " "groups\n"); static PyTypeObject pyhbac_hbacrequest_element_type = { PyObject_HEAD_INIT(NULL) .tp_name = sss_py_const_p(char, "pyhbac.HbacRequestElement"), .tp_basicsize = sizeof(HbacRequestElement), .tp_new = HbacRequestElement_new, .tp_dealloc = (destructor) HbacRequestElement_dealloc, .tp_traverse = (traverseproc) HbacRequestElement_traverse, .tp_clear = (inquiry) HbacRequestElement_clear, .tp_init = (initproc) HbacRequestElement_init, .tp_repr = (reprfunc) HbacRequestElement_repr, .tp_getset = py_hbac_request_element_getset, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, .tp_doc = HbacRequestElement__doc__ }; static void free_hbac_request_element(struct hbac_request_element *el) { if (!el) return; PyMem_Free(discard_const_p(char, el->name)); free_string_list(el->groups); PyMem_Free(el); } static struct hbac_request_element * HbacRequestElement_to_native(HbacRequestElement *pyel) { struct hbac_request_element *el = NULL; PyObject *utf_name; if (!PyObject_IsInstance((PyObject *) pyel, (PyObject *) &pyhbac_hbacrequest_element_type)) { PyErr_Format(PyExc_TypeError, "The element must be of type HbacRequestElement\n"); goto fail; } el = PyMem_Malloc(sizeof(struct hbac_request_element)); if (!el) { PyErr_NoMemory(); goto fail; } utf_name = get_utf8_string(pyel->name, "name"); if (utf_name == NULL) { return NULL; } el->name = py_strdup(PyString_AsString(utf_name)); Py_DECREF(utf_name); if (!el->name) { goto fail; } el->groups = sequence_as_string_list(pyel->groups, "groups"); if (!el->groups) { goto fail; } return el; fail: free_hbac_request_element(el); return NULL; } /* ==================== HBAC Request ========================*/ typedef struct { PyObject_HEAD HbacRequestElement *service; HbacRequestElement *user; HbacRequestElement *targethost; HbacRequestElement *srchost; PyObject *rule_name; } HbacRequest; static PyObject * HbacRequest_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { HbacRequest *self; self = (HbacRequest *) type->tp_alloc(type, 0); if (self == NULL) { PyErr_NoMemory(); return NULL; } self->service = (HbacRequestElement *) HbacRequestElement_new( &pyhbac_hbacrequest_element_type, NULL, NULL); self->user = (HbacRequestElement *) HbacRequestElement_new( &pyhbac_hbacrequest_element_type, NULL, NULL); self->targethost = (HbacRequestElement *) HbacRequestElement_new( &pyhbac_hbacrequest_element_type, NULL, NULL); self->srchost = (HbacRequestElement *) HbacRequestElement_new( &pyhbac_hbacrequest_element_type, NULL, NULL); if (self->service == NULL || self->user == NULL || self->targethost == NULL || self->srchost == NULL) { Py_XDECREF(self->service); Py_XDECREF(self->user); Py_XDECREF(self->targethost); Py_XDECREF(self->srchost); Py_DECREF(self); PyErr_NoMemory(); return NULL; } return (PyObject *) self; } static int HbacRequest_clear(HbacRequest *self) { Py_CLEAR(self->service); Py_CLEAR(self->user); Py_CLEAR(self->targethost); Py_CLEAR(self->srchost); Py_CLEAR(self->rule_name); return 0; } static void HbacRequest_dealloc(HbacRequest *self) { HbacRequest_clear(self); self->ob_type->tp_free((PyObject*) self); } static int HbacRequest_traverse(HbacRequest *self, visitproc visit, void *arg) { Py_VISIT((PyObject *) self->service); Py_VISIT((PyObject *) self->user); Py_VISIT((PyObject *) self->targethost); Py_VISIT((PyObject *) self->srchost); return 0; } static int HbacRequest_init(HbacRequest *self, PyObject *args, PyObject *kwargs) { PyObject *empty_tuple = NULL; empty_tuple = PyTuple_New(0); if (!empty_tuple) { PyErr_NoMemory(); return -1; } self->rule_name = NULL; if (HbacRequestElement_init(self->user, empty_tuple, NULL) == -1 || HbacRequestElement_init(self->service, empty_tuple, NULL) == -1 || HbacRequestElement_init(self->targethost, empty_tuple, NULL) == -1 || HbacRequestElement_init(self->srchost, empty_tuple, NULL) == -1) { Py_DECREF(empty_tuple); return -1; } Py_DECREF(empty_tuple); return 0; } PyDoc_STRVAR(py_hbac_evaluate__doc__, "evaluate(rules) -> int\n\n" "Evaluate a set of HBAC rules.\n" "rules is a sequence of HbacRule objects. The returned value describes\n" "the result of evaluation and will have one of HBAC_EVAL_* values.\n" "Use hbac_result_string() to get textual representation of the result\n" "On error, HbacError exception is raised.\n" "If HBAC_EVAL_ALLOW is returned, the class attribute rule_name would\n" "contain the name of the rule that matched. Otherwise, the attribute\n" "contains None\n"); static struct hbac_eval_req * HbacRequest_to_native(HbacRequest *pyreq); static void free_hbac_rule_list(struct hbac_rule **rules) { int i; if (!rules) return; for(i=0; rules[i]; i++) { free_hbac_rule(rules[i]); } PyMem_Free(rules); } static void free_hbac_eval_req(struct hbac_eval_req *req); static PyObject * py_hbac_evaluate(HbacRequest *self, PyObject *args) { PyObject *py_rules_list = NULL; PyObject *py_rule = NULL; Py_ssize_t num_rules; struct hbac_rule **rules = NULL; struct hbac_eval_req *hbac_req = NULL; enum hbac_eval_result eres; struct hbac_info *info = NULL; PyObject *ret = NULL; long i; if (!PyArg_ParseTuple(args, sss_py_const_p(char, "O"), &py_rules_list)) { goto fail; } if (!PySequence_Check(py_rules_list)) { PyErr_Format(PyExc_TypeError, "The parameter rules must be a sequence\n"); goto fail; } num_rules = PySequence_Size(py_rules_list); rules = PyMem_New(struct hbac_rule *, num_rules+1); if (!rules) { PyErr_NoMemory(); goto fail; } for (i=0; i < num_rules; i++) { py_rule = PySequence_GetItem(py_rules_list, i); if (!PyObject_IsInstance(py_rule, (PyObject *) &pyhbac_hbacrule_type)) { PyErr_Format(PyExc_TypeError, "A rule must be of type HbacRule\n"); goto fail; } rules[i] = HbacRule_to_native((HbacRuleObject *) py_rule); if (!rules[i]) { /* Make sure there is at least a generic exception */ if (!PyErr_Occurred()) { PyErr_Format(PyExc_IOError, "Could not convert HbacRule to native type\n"); } goto fail; } } rules[num_rules] = NULL; hbac_req = HbacRequest_to_native(self); if (!hbac_req) { if (!PyErr_Occurred()) { PyErr_Format(PyExc_IOError, "Could not convert HbacRequest to native type\n"); } goto fail; } Py_XDECREF(self->rule_name); self->rule_name = NULL; eres = hbac_evaluate(rules, hbac_req, &info); switch (eres) { case HBAC_EVAL_ALLOW: self->rule_name = sss_python_unicode_from_string(info->rule_name); if (!self->rule_name) { PyErr_NoMemory(); goto fail; } /* FALLTHROUGH */ case HBAC_EVAL_DENY: ret = PyInt_FromLong(eres); break; case HBAC_EVAL_ERROR: set_hbac_exception(PyExc_HbacError, info); goto fail; case HBAC_EVAL_OOM: PyErr_NoMemory(); goto fail; } free_hbac_eval_req(hbac_req); free_hbac_rule_list(rules); hbac_free_info(info); return ret; fail: hbac_free_info(info); free_hbac_eval_req(hbac_req); free_hbac_rule_list(rules); return NULL; } static PyObject * hbac_request_element_get_rule_name(HbacRequest *self, void *closure) { if (self->rule_name == NULL) { Py_INCREF(Py_None); return Py_None; } else if (PyUnicode_Check(self->rule_name)) { Py_INCREF(self->rule_name); return self->rule_name; } PyErr_Format(PyExc_TypeError, "rule_name is not Unicode"); return NULL; } static PyObject * HbacRequest_repr(HbacRequest *self) { PyObject *user_repr; PyObject *service_repr; PyObject *targethost_repr; PyObject *srchost_repr; PyObject *o, *format, *args; format = sss_python_unicode_from_string(""); if (format == NULL) { return NULL; } user_repr = HbacRequestElement_repr(self->user); service_repr = HbacRequestElement_repr(self->service); targethost_repr = HbacRequestElement_repr(self->targethost); srchost_repr = HbacRequestElement_repr(self->srchost); if (user_repr == NULL || service_repr == NULL || targethost_repr == NULL || srchost_repr == NULL) { Py_XDECREF(user_repr); Py_XDECREF(service_repr); Py_XDECREF(targethost_repr); Py_XDECREF(srchost_repr); Py_DECREF(format); return NULL; } args = Py_BuildValue(sss_py_const_p(char, "OOOO"), user_repr, service_repr, targethost_repr, srchost_repr); if (args == NULL) { Py_DECREF(user_repr); Py_DECREF(service_repr); Py_DECREF(targethost_repr); Py_DECREF(srchost_repr); Py_DECREF(format); return NULL; } o = PyUnicode_Format(format, args); Py_DECREF(user_repr); Py_DECREF(service_repr); Py_DECREF(targethost_repr); Py_DECREF(srchost_repr); Py_DECREF(format); Py_DECREF(args); return o; } static PyMethodDef py_hbac_request_methods[] = { { sss_py_const_p(char, "evaluate"), (PyCFunction) py_hbac_evaluate, METH_VARARGS, py_hbac_evaluate__doc__ }, { NULL, NULL, 0, NULL } /* Sentinel */ }; PyDoc_STRVAR(HbacRequest_service__doc__, "(HbacRequestElement) This is a list of service DNs to check, it must\n" "consist of the actual service requested, as well as all parent groups\n" "containing that service"); PyDoc_STRVAR(HbacRequest_user__doc__, "(HbacRequestElement) This is a list of user DNs to check, it must consist\n" "of the actual user requested, as well as all parent groups containing\n" "that user."); PyDoc_STRVAR(HbacRequest_targethost__doc__, "(HbacRequestElement) This is a list of target hosts to check, it must\n" "consist of the actual target host requested, as well as all parent groups\n" "containing that target host."); PyDoc_STRVAR(HbacRequest_srchost__doc__, "(HbacRequestElement) This is a list of source hosts to check, it must\n" "consist of the actual source host requested, as well as all parent groups\n" "containing that source host."); static PyMemberDef py_hbac_request_members[] = { { discard_const_p(char, "service"), T_OBJECT_EX, offsetof(HbacRequest, service), 0, HbacRequest_service__doc__ }, { discard_const_p(char, "user"), T_OBJECT_EX, offsetof(HbacRequest, user), 0, HbacRequest_user__doc__ }, { discard_const_p(char, "targethost"), T_OBJECT_EX, offsetof(HbacRequest, targethost), 0, HbacRequest_targethost__doc__ }, { discard_const_p(char, "srchost"), T_OBJECT_EX, offsetof(HbacRequest, srchost), 0, HbacRequest_srchost__doc__ }, { NULL, 0, 0, 0, NULL } /* Sentinel */ }; PyDoc_STRVAR(HbacRequest_rule_name__doc__, "(string) If result of evaluation was to allow access, this member contains\n" "the name of the rule that allowed it. Otherwise, this attribute contains \n" "None. This attribute is read-only.\n"); static PyGetSetDef py_hbac_request_getset[] = { { discard_const_p(char, "rule_name"), (getter) hbac_request_element_get_rule_name, NULL, /* read only */ HbacRequest_rule_name__doc__, NULL }, { NULL, 0, 0, 0, NULL } /* Sentinel */ }; PyDoc_STRVAR(HbacRequest__doc__, "IPA HBAC Request\n\n" "HbacRequest() -> new empty HBAC request"); static PyTypeObject pyhbac_hbacrequest_type = { PyObject_HEAD_INIT(NULL) .tp_name = sss_py_const_p(char, "pyhbac.HbacRequest"), .tp_basicsize = sizeof(HbacRequest), .tp_new = HbacRequest_new, .tp_dealloc = (destructor) HbacRequest_dealloc, .tp_traverse = (traverseproc) HbacRequest_traverse, .tp_clear = (inquiry) HbacRequest_clear, .tp_init = (initproc) HbacRequest_init, .tp_repr = (reprfunc) HbacRequest_repr, .tp_methods = py_hbac_request_methods, .tp_members = py_hbac_request_members, .tp_getset = py_hbac_request_getset, .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, .tp_doc = HbacRequest__doc__ }; static void free_hbac_eval_req(struct hbac_eval_req *req) { if (!req) return; free_hbac_request_element(req->service); free_hbac_request_element(req->user); free_hbac_request_element(req->targethost); free_hbac_request_element(req->srchost); PyMem_Free(req); } static struct hbac_eval_req * HbacRequest_to_native(HbacRequest *pyreq) { struct hbac_eval_req *req = NULL; req = PyMem_Malloc(sizeof(struct hbac_eval_req)); if (!req) { PyErr_NoMemory(); goto fail; } if (!PyObject_IsInstance((PyObject *) pyreq, (PyObject *) &pyhbac_hbacrequest_type)) { PyErr_Format(PyExc_TypeError, "The request must be of type HbacRequest\n"); goto fail; } req->service = HbacRequestElement_to_native(pyreq->service); req->user = HbacRequestElement_to_native(pyreq->user); req->targethost = HbacRequestElement_to_native(pyreq->targethost); req->srchost = HbacRequestElement_to_native(pyreq->srchost); if (!req->service || !req->user || !req->targethost || !req->srchost) { goto fail; } return req; fail: free_hbac_eval_req(req); return NULL; } /* =================== the pyhbac module initialization =====================*/ PyDoc_STRVAR(py_hbac_result_string__doc__, "hbac_result_string(code) -> string\n" "Returns a string representation of the HBAC result code"); static PyObject * py_hbac_result_string(PyObject *module, PyObject *args) { enum hbac_eval_result result; const char *str; if (!PyArg_ParseTuple(args, sss_py_const_p(char, "i"), &result)) { return NULL; } str = hbac_result_string(result); if (str == NULL) { /* None needs to be referenced, too */ Py_INCREF(Py_None); return Py_None; } return sss_python_unicode_from_string(str); } PyDoc_STRVAR(py_hbac_error_string__doc__, "hbac_error_string(code) -> string\n" "Returns a string representation of the HBAC error code"); static PyObject * py_hbac_error_string(PyObject *module, PyObject *args) { enum hbac_error_code code; const char *str; if (!PyArg_ParseTuple(args, sss_py_const_p(char, "i"), &code)) { return NULL; } str = hbac_error_string(code); if (str == NULL) { /* None needs to be referenced, too */ Py_INCREF(Py_None); return Py_None; } return sss_python_unicode_from_string(str); } static PyMethodDef pyhbac_module_methods[] = { { sss_py_const_p(char, "hbac_result_string"), (PyCFunction) py_hbac_result_string, METH_VARARGS, py_hbac_result_string__doc__, }, { sss_py_const_p(char, "hbac_error_string"), (PyCFunction) py_hbac_error_string, METH_VARARGS, py_hbac_error_string__doc__, }, {NULL, NULL, 0, NULL} /* Sentinel */ }; PyDoc_STRVAR(HbacError__doc__, "An HBAC processing exception\n\n" "This exception is raised when there is an internal error during the\n" "HBAC processing, such as an Out-Of-Memory situation or unparseable\n" "rule. HbacError.args argument is a tuple that contains error code and\n" "the name of the rule that was being processed. Use hbac_error_string()\n" "to get the text representation of the HBAC error"); PyMODINIT_FUNC initpyhbac(void) { PyObject *m; int ret; m = Py_InitModule(sss_py_const_p(char, PYTHON_MODULE_NAME), pyhbac_module_methods); if (m == NULL) return; /* The HBAC module exception */ PyExc_HbacError = sss_exception_with_doc( discard_const_p(char, "hbac.HbacError"), HbacError__doc__, PyExc_EnvironmentError, NULL); Py_INCREF(PyExc_HbacError); ret = PyModule_AddObject(m, sss_py_const_p(char, "HbacError"), PyExc_HbacError); if (ret == -1) return; /* HBAC rule categories */ ret = PyModule_AddIntMacro(m, HBAC_CATEGORY_NULL); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_CATEGORY_ALL); if (ret == -1) return; /* HBAC rule elements */ ret = PyModule_AddIntMacro(m, HBAC_RULE_ELEMENT_USERS); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_RULE_ELEMENT_SERVICES); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_RULE_ELEMENT_TARGETHOSTS); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_RULE_ELEMENT_SOURCEHOSTS); if (ret == -1) return; /* enum hbac_eval_result */ ret = PyModule_AddIntMacro(m, HBAC_EVAL_ALLOW); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_EVAL_DENY); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_EVAL_ERROR); if (ret == -1) return; /* enum hbac_error_code */ ret = PyModule_AddIntMacro(m, HBAC_ERROR_UNKNOWN); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_SUCCESS); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_ERROR_NOT_IMPLEMENTED); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_ERROR_OUT_OF_MEMORY); if (ret == -1) return; ret = PyModule_AddIntMacro(m, HBAC_ERROR_UNPARSEABLE_RULE); if (ret == -1) return; TYPE_READY(m, pyhbac_hbacrule_type, "HbacRule"); TYPE_READY(m, pyhbac_hbacrule_element_type, "HbacRuleElement"); TYPE_READY(m, pyhbac_hbacrequest_element_type, "HbacRequestElement"); TYPE_READY(m, pyhbac_hbacrequest_type, "HbacRequest"); } u][tB:#I7Y0;k]&bڹb3:3z%Cg&m ǔI5Y%RְK3wJm~ X &U ҃AKb7hex_D&@|i$ p^%;<84cwRng(]~o?nrR{M47 *.U0D-\-l݆]8jCl7YjH+E4%%ɠY6x=ɈZa1p xAdk"cc˧\ stۃWwT /:}.6! 3¥;989f.q"k0"$' Xt?0Ί*t)w6T& )y[䘱* eYLu%`ZnUYr{6+dʬUwM0FkEςDuן쵲.}UD)A3[Uq=6\!3H1'Wxd#=,! X4'/:T3e9*w!D&UOueAn0qC0Ryj͛y֎ޏ DZfrP\LԚ꾄^Xȗꢉ^sM{*jsSgm>RaU6xB;8tܰ'cg5\ՖA%OLsu57tqH1HwkdXJ0^|"k@6 H2Bucn9U1O:?jK[\. ^Wǝxk!nG>ES>i Yt$rVx t[" ӫr-:bgt=sʕs@CSTpD15&RMoB+r?F} ?$}4c$jz~=oڰ~ȸS=mʗ  sztWGJ́Qzv\  $λQEufbZ3c(6ZP #&ºjn Η%ZԴ\Q 1~eK,o:?:Df1ôa>< rqa2 Ϗ c`? ^׆ٟ̾pC*d7HyV9V4k\R G[Vr[Zv]L(Vw|lğ? NrA>"c[Z=[Vt H}6GӤڎQ,2 JXT \ T}tD}fh4(̠йlWnorgZBҽ.3Hל죉kE&*;S`Ȱ0Oju&՘>W<6:ߔ-p:t- QN :zLHMWZԷ^dL.a ,n`3T04~ٙ b1 Y\'dK֠y%}\C 5+9骔l Wvո&k _ 7F;I7<¢%D(2;{a-BH  ra˟jfvJ]F,۩#v@'#%NuuHLn*IdUSb~3Z )vֆ 0΢nibXi>jmV}.r. ccoh^N :\LJ-X9B=wbFz/VQz;h1f~]X~e׭V9'Z!g,2ΰ!.5 u8`CcwJ`)/DSףJ0v;4PweKĶ7Xz%q 2} F,|>*h爁zVnWj@X=0 ΃jĻ&5KĀ;J'ѝ-I(. h&>`тF\.B$ڴo?LXmg2ᛶvιf-D SH] /cĽwقCuDu93bX!le3ءss+ 9yl4?HD>9Xx MQhBW72~΋Oa4c|!WzG k[ ?{޷K\I6\j\P|!QAW]_ =4 ^D?d`CL Q33z9+=i``@GT81Y|ZM Y 2LexHZmC7x@k~ EW?;6T*ecj1q)`Ua=bE[_^fK;cIX1+@fp%3?Vx,I;6}V SfЗt $9:a&p<4Lo=fY>b${%tA5Y2Mˆ)%l$r9 5L~'hp:z A\@pԮ %j gr0 [(ksTfy;UЂjn(#@_'CoPrHk)`g Dyo|!xX1M?=.ÌXet:йn+2e" 9|FH:̀Fl= f#iJq@ EvLլIzvCܲJjXъ×5iP=w^qdƔ/Z ʻ /""F8hG{FUǎQZ,%WؕQ捥/!{4 c[fΰ6(wCsFT4u0 7(8n\^yIDHRG׌b] +w*Q D°c ڕa^ў ;(Q'$x3I ave ?$wߖwNr'24# lX*₋`l UfDe,u_Uâ\I/4R?"jc'*3b~'_7XLT! 99G ` ޹֗0.DW8&}ƿ__j mkG&BV6^~5o*hmL8&ί/}W b6AO\_K$7wi]j !ҩx4ݨEPp1U@xLiq# j'v XW\ĴQ]ks{tR*TCخH(-%5̗1Ĥ{EĹ2Z?YV5*ck9P:.DF6u|S|j&v'95WTxTxIM%ғZ˩<%[4f #i$mPr!4b@ y- #rX5KSy[:#5ZQZyt5MLa1K|N>Er#M w"9^oivd^*6M%NNa[Hw`z2*7UeKy,+ i%_džm=JNA?YAD%/:(µ%cttNSnZK=yz"L\,@VSCu[kׯq]l<@L,eey"d}҈59^i0#0E33 "ats!+t|hEt7FcݽkUKr}#cB1-{r}WWk{3@&yUlj2KKl57R'CFv*Aæ=l02B+ȩ?={Ĺ/=H0yOGDy0&zTIjp)kJ _$Ⅶ \uG"W|<.EAe!}Q ULEJcܲIDT .̀AjIK {]s,R7p[gaq ^xd7Ys!<z $h٬ŦNϜͮS 2Mh_ΐgAMA-j(UjݏHSNmqZ}NlIB{<jX(63\gq NIQ_x_k.{) aURLmm _ u.hی3vY`T26^,%#o(Ck *t70ײĄ KJLCV4at\pS,?cH*Q)լijV@׵s-=wDnn1 tYY`0Z_F2 ;#x~?`<3F&Ovq*o<P3 ga=f?c$.v Zt3[B:6( 2ւ]Z%?A/KV*G)'=yR>kJy-<\xcq@n7(1Di]EobՁQXK!v%Sjہ| 8/Jȱ/tF!h z6U2P.N\]Q.i0du7"mntמܲWGA۝|,} Ѳ2:<6`7kLjV{l-1XlUP)advLtxCcC H2e* W$;`Xж@<L -E@o]y/G '_镙`H(_e{Nk0VK}kc!)DV9HZBE|/fM6JO|[ZUB)'U#)yv D}ou4GJq// P?z_V2Jsd0ɭ)=22W+r4gՐ[s;ے>">] i?qo^2*j;q0r* %~5.X)rb ,5\oweƨfVwH\3Y43cv2ת5pC&[x{؏}S q ~va'+t39&wQc%k{k{cg䆫i;2 9:aXT^sܹyd6(8^¾ f>ybF*%1 2xXwϓ91W(oL}0bY0 C[J!ZR_Zu ?!@ HwfzF1iRfyϲ\tϭ)>m |_6IBc`3ք/iO*0Vqs%12Wāvm[ 6i@}!] jo=Q=kC"~'Zz0a穻<16I+~{n9fVOFTZԘ d[0S +`Ku?*u,;fuTV,0e 2!b1SI?eo%A/$gUi}n^//+F4+:.‹@2GzyDц$dOWEX5z9iofxݜʜO^X2w7ʲ[Ղ񈈟:  ;׼kwhEnT ,XH]2(B[KfPC^.mޞ7S YFZdǦu#ZhT SDx/Jٷq7œَ~ꙃo8oJE9>RkWڮI;pzYMmGS~EVS)>.,\$6HԡZATÁx=\_PS`ވʀszJaI#@ȗxv *G/jjjOˁx}5'ݶ>~)Hqd&ABvoO;3HN6TzodsbxIpPB0 0+&[y+W2ZZ[ @o,F[Q5-?x>W|&0_U0VY>mZ__|~N$WcG{VV5g%,l}v%jce+Q!q&TQ#zxRlh6˻&7;o3-doq[&_! UQ)o"( u u0yUp+]1?i"eaΫ9*%_=۬.f LZ{;ye~Рz\O˫aRE1; 06p\![ٹݗ e[h9aVԼijtXMo b3Ed~Ҫz0[pl40ɈBugB|b<  9+lh<]? 7rLjm 9sv -OTC`R$kܔh$Qc(Ղt ƙ3YiĒ_na1|,?tÕ,,٧>ׂEPcPx<ۄRrӺUIBÏF@ UB {: )0#Iޅ\ :B CPN);FW]8k˥b_ 0I;,`Β#F+I~+6wK}L8wt^mfKW r\A<@LIԊB@"ALײW?oĖ$*w*;HkϮIemJFg-"5aN꧶nX}ϫQ~[4O$`*:LG5(܇n,r٨3^ijk!* tjTw22Z8g6H2!PiO\"ԖI3bЊTvB>\^HtŦIL a@jԲ]tW6\Rڌ04mOE8A㫧Z.É4m+ѸjB6Gd_lFV2 + 1#69_sG B9= yn(1oxnZH[o#_i WD⁣]~ca3!I-01?fji s9>`FdWW\JrBi^bvɫ=R)ýdl[pᢲn'|!|&BޚO0XtMA80%HBW1%1zGZt)! cUOvħ% ipZzMZZ(a9A ǭ=@|/M7zmEu90z`ba9Ԡh jtPh&+UZGՂzQ,^EmS"}=aL;B'y@J*Eo.t+h׏l4r4&vVd6y^>wZ6pWE@:YX3~(_F4\NN¸bg]pD6`<a;^%D׵ tX><+Ce~T%~Pf[MǢU/KZ^GXو+'b́@;l?uX %Y?Dsj˱{՜?hQ>e!-ЋΓ6Ruwy2D2jf C;1J>lLѴذ]Vf΀MIϋ| 3PWC5:n#k)ND9  ﶜ=^N VG9`zgLjyˣB}s).q:`LȥjĆ4\QM_O+6٢xbn$.=)=6aFyip'ݺ(=$?nɿ3(-3r0S7j@;xYPG+y"nu;>Mih[jH8w@h0>' t=Ă܄{pq}E>g~2n9gБc4;DVAsvUsZ:$*G١٩ 8؈=qFJ0Rjh:qk!R_M(޼*9ph%8:IKNLs7"I'ad1փ^.(Sqa:3^Aԟ%R9hXɇ}r,Z MAxd7b  Bs zXqG&6ߜ)$*+>n.b 3Ѷ~"Wֹ^?z=\Yk` OGDm?epї&Rj5ȵM3^2K]R8=[ǫ.qX2,pK8byYȒAeI5>͂8jT(~ime"+N|wn)y-:RtZRgTюMN TDo׮!l̅INikX"Kԋ΢[5 !AF˕aut~3a(`DIr3-wԃEŅ˩sE",DIu,'l?6mP-cB F12&,O!;/v8^e.9h2o]Ο'̡3J)`0: U?,&.S_zFRʬ֤]hHVº1(tiyl\N5Cv`6Rd1^RB8=*mw? dENŞԙCVa3|F $ZERʗD^Zy vtFy/ǹw1/-,5vwu0GΪ|=GϺv$M+{KٓaUM[0fqLWPQ|y.s_]Qv ;S2iV4UGEu}Ojy6BD`1kL^*K.n!QS̳06,*ď%e~fBrxG,W.<(aT!N< I Nbe'uzw؝1݋vnӻ۠1Ƃ-C']$ —>ˍELfa5F d2T9cEO,\mcg 2)q(d$w}ţ_W00(mx6D,09zǦr\9fc:ҸT~b嗿/B[8(=Sn}c¥㗺 D (3gР!AI.GІT-L^a/<^Qߍ|r%MJf\\ kzU tQ7>L`pɤkJqϞPG9o,8'+F# +4M]yo-)cDd,y5BPUAk%3( B2= Q`5Z Әul6Jwkl뒪=5wގ +m׎D*S7-UJܜ̳8U(AŮi߃$VªZ)I; P$R q%Ns}HC9>3~"//뉁BI N"X5ߝCG8ux |嵇fd_?Z` Ypt.1RqIi|X??~lah!p-䢃WF{$BnPSNmO^sa,RsIV*)EʼZ1׍ 0yٍ餫G' 7f̨($B#3 8eYUM+Jp= ,<`9[,G~3SHm=646XE hO]WPAa0ʽé`uoe -zBPuH)05HִUxa]̍H. 7 $m7net 9r>2 I×[% F .SތEl*yV Wbt1}^gHmW e8cn.IcڇqLH^懻fZ!KyMf׈JDRb)Rx((iy/VPఈY]Z)Jie㉡KeI3/sLEiG LB*iUξrY2<\o8Q5m녬H@S#rI@TLt'ڴegg,GCĦ冀,BC&.F{&tW!؛Bױ&n߰*r Y du:ÚuP-DN` =} z!]3 54)<SbVdN\oFjP?J6\C=ֱ@& cd%5|'U)M|p6um/AA!QBgv|8*DS☑ HaED|%=PbB-ΈcW5 FVZKZBN(fsjvV2H$' [ ' "<3<~'KDN!t6ICt>l@5(e ^R1MHI0NT+5)89),YfWEQ~sSyzPCLE4 zWL($^H Y?g.\B 4X(0 K*/b^%)6**x$EEՃ(0Yt ]M'`)D>- Cr➆.Q!{Ռp$ 'pz7'8ctF"촧D"$H 1FΚhX1V=  ^{'U9.-4N ud x} 3剐s FNm>Pi@y:m&!?Hנn7vaN7?Ka*?Vw&`\Ek(D>Db8T+=oZD't/;>'5i )Ya d_†ħ=Ҍ[ܜm؍fp'kUܽ`7Kt_:wĥ {"W(U(n|26`v5\d6'_V7Nz<f!{Q|C z9 `:jYgq&Yݗ:7ybՐ451 #2Wk\K&P~ d9D\u/ 9Q2N ΛKN5!ؑAQl<\@4' S$NU|)vOb!0Q.9IpĖݩqrLRZ9;jO"l`J#M8p.I)Ӗ 7\qv0FFhLZh҅Xk*A҃^yZR]<`tmSNZ{ޚԐb]N*Qgņy r&SyHys2P*bliCUzKKV9$I%QQ<{[Pc NI!;ڳ@0ڸLO~<1,E*Pٗo^ᛓ,2q az~m&/ T?a!I|6jGt)6/g:qCc9>`J~#ewm7Sa³[%#h$@36YqwjA>&hF2QZsi7KҊt>o^D>  VDVb]\lf 6Q*1l]v8 ?+d 797* ,Tٰ#?fi}*w-b^2-H##\Ay"NK a4BWSϵb\,}Jt[В5PhÎ5NE.S#>r>y,<e?\lև&a Hbq[CTۑ )M3 ]k[G1{=XAJWXh4( , z$vU\Vu)I*A6[bH; tk$lgrkAgXY׶ͣ; cMDɛT||rNj#0 D"-uD\%֛t5Vj7&nNW"Rп:%; 赩(] 1(HelwS1-OV33E ,uAUOkEҺ(r NCdrP. O/3 qayE qGOR32dS裨A;d)؃+Vn6ҍ m*ӜlUgːeHm۟]濬7^VLjə x~!|>`Kщ%DUo}j*O .6.닏ɨEl~ط8|"*4a[ $CH]W9u`sRҎ+\yOZ$T';/Ȱ޴+K:8Z`mϕ>;`d^CX@%vܻN>Nv}4F-J]Uc^}oխ󩘋 ,Ie2(v3dWw_X<>(قZBn&zcL LK7ͬ5g=#~Wz`~+0VsgЦl(^I'sfW/@t6,MhV;=/>w9h5vI~ OhḦLU'J#ƝB>j;xۜzb[AE KK[!V$ӕ34dKɌd45sNNchׂ,-??+P"UdDjKf*Ѡ6lk"y:6[ )(nV3A!>& ^jK~H7 q褕d7hʗ̪fѯw嶵Es,0rH$f33o;ܭ\S PTu~Ra[k3PqƓ(9-eZN)v\jV}K30 ?[F%0ٛF FŢu_C!yocط(<8?c7"2 E3NFM /r>^:]^څ2iGeg㇣lKA@cA)Q{lhɁKnA0LO+3fba"xo?wIu@IO~{S\Ƽ;u0'h>Qw4CLt4y]qwRV2̟  怅3)_1eKx\y іsK&:OQHbD*@^Oc-VЌ q C'"iZ[2 JëEz${%VnKt{-.wng,BZEץbS5Ik ; Ƥ+˖QmMAweWQNW r4>Lz$ʰ ÍpI}ymW6MBa|lMP?wpv-۰(=zU4 ڨUQ@v֡`ry/j"×'c):g'Prι!}U ܴ?QOr7C-CY*@(Zuc$HUL[pbHq LIdz]: p.e9Bn/S_$wb:TNԜ[EnFhQ dbdZG $#b^W_e(0KL#J?~X F&D$iyшc?XAԀׇ]zN/A(<)a*`siK^ztEbQ,xB'=!ٳA ^2xL@MF*,^0~8@_>i$}̮S'9lfI,Eb\tP hOfQaxjx)( >_"Ksgu:d\kVfB8ȗ?6f)m66\n4N*]s1 ~V&cU|TukM#۠dkYKN p&1bĶ9qN3Ye?MrגDj N339dIK/Hx/-WRjע<:R9 :#pj@=z gjeOt$鼻o:Uvv 5";h( %cA^lJ0@~6,p [3lk*4g\ _쪔1#\E;X&)ᓳSN'LK%kZ-9ߩ;OnTu#2([_8?:-I)90(;*n&d4n<. P/.2x[a5d,DZGm1 UѦxc(ĥf6eɧh|kae>ʸ*SAXX{yr -^#,x5{(v"^T3ĺr.ܚ-AwUg4 Ҭ˸oxWrX3۪j_ŝElSKFaO6P\G(.Wm7ɆzE!5O'dM4?a0oĝ(]Q۪4et{~ _Eqgنt=9"xfiw4l@KiThMdHIHj yLRu_\mt Fƽ@jj%{DW{n]--4>b޳!\._@kLIӷUQ}ScTظ W% z-HHG~}6~l lH5˩U]6P~F[-\x._RaƋ`}%K/xB VGWϦhL} sӯPvN`b)uhl icTP^ LF#%d҉]C,as;N\N8vv`8O06I .BOZTTgS@FAZ~P=OnBv'nL6.h+rnE |yF g0~(zqR~mSs=[ aӃ.CVWFwT@17Tc: qga#n! Rx|QٔeV3"ڏTi8} 硓 g>>v}^FyQ$Xz7(g(&fqnqgWCJ`m-YIg*z bB^ΐ\̓ԨaH_ Lbra)x]f5e s:7c}* tEʊjr7 A v*oљKƪnqD8J}*W8@9a_@.Hd3/!x̙06T|=h|y$7TDf}]` \xFh5>AA}(=4u|X6w_' ^(oC O#jމ`{ZywP&D T nZ'BG:Ʀ;`g"^֓=6fe"T?h#ϯ K6VBwRFC54e8k 3a-\(>a, R34;2*J +⚳l\=5"F6"[LU sU4u)-I#j!6USC)tI"uVmwQOΙ;.0<oNSK v,mW+ KzXrk[S#jɓ'-MX+-[i4qFI BRj+/ʤZ/^;stI0呸q$b#g^ ;3LbߊKpHK4m!YC8v$ KI]_Mgd(#.bDD~Z}Ak*[R,J*+6fuQws}ƾKw4!9^MO5Hx'K=km7*U+bF =e%dM}QI8! 0$'Ѹrƈ‘:?:ݮ`6s5n(*L'jDx{,c{O Z &"5oLp@)uXG0?8>S5o2m0dpD0 b38ەL+g"1t@G>ZqzsE_pt沛VEy{QUnMpc¬U٤8a]%u/hYחIsfl_M&kú2b6,A`O&b1mQԵPdGrd-s{WF nob/kh}>6ﱵ ܧ6z5uY vfEe]mv}8ZNdM BLi\g=؛i.[~X8,kpnO NW;\ J.`=ypc$ܛYyJ;)TPmDO~qO3E!>V[t(`uz^m k֖G 1ǞS3zwJ8:T_X}vߐu^2nu͆GT~Ҕj9cLYSaISiy"V3S;օc.gE։dNAcic8߅s2=jL Anqc}j࣐r`#a3y s\ӆVMI|TcB=/H(<ξgXxeCwP['-xJ!H\5Q!{ǖ1=@d?77BH,j s|\e8AW~֗. lLЪ݉(D~i#{~V"hRQܬi5ʛ"X|d7qӍH,Ub|zY@=!Qfd/vG*'f`z> {p^i_-g_N.* ^#͓E7YВ;U)Shٮ@be:!3†wC?P^|"﮺ה5+2m7| 2qp@;ZiH"܂0Rc.F?VKmD%`Wqzssײk|F]SffDd-5*i1DQJ* M9LИ\V2eM%78l8)\&.Yp` '8 E>:3;v Jc>e 7B4XJ!-BQȓMPhP9Ehĥk@+W."P {ˆEOrgb/ޯ DG$_=v[q`NV4X'^sT&II.]̔<@W )Kʆ򌲤09 O5P%VP";J.QU^u=rkq\6&C\c㈦BW.Fp:.̸fW/ ezߴC1ePWj\7w(E O~bot&mՍIn'7oex:HdeY% RD hG@QRҦ^Lj w@\XA!Yb(r 0 >WhMۂd'pɖs.b{1$z5*ؽ)ʴ'WݯaE'yl2\G#̙z[a:!x$lh '6#|j[PVlй5?=,©U]͒:ts7 ZY-)A<^}N0QQS*1iN{axHMrP6 _RˉTͯR;,\aY^o DyȺ)3 S`L$PK-nHh鉡MV\utitzY>vNeR맼s>LV.usI 5T'̈6mꒀ^D[&]̤CFt)k\^r;*+ѱ;ڹQC,/3urD\aiMvb^umbX5(d]VK^/V2W~ᛄ4GQ錄d$3z/' J<;39%A‰RxG¨g #y&S2y(m3Gs}>,1aP"]Z>|2s)Ǎ6IƷf:uNO[jM;i'ku 1JT1.BPV6x)zh̖}+r;I~8m#3:VX |ENUOls|JI+T/rBa@/9ZKOD,tzxp#5Ooa$ݬA NNU$$$볪܎|Gs纄OHnץ/Z8BBQ6'zmyS|82BaZ})-+) gS-8XNr!5\""jTכtJ5OD HNq.j՗Ą 'Vh31lY_D4WD J)SQ|Ͽiz Ip)3ZMAbZެ`0{?Cyͷd_0XM.gha@6LC(qᰉI+IzAG'S+-Y11LO<bBO Fk[8el2A)h~7C ,k1)c]`iyTf"(8KdR'6sBa=. ާw( U׺)V| ר{vJL7C]Ȃ}|nƄoGުC`7bC; ɵHKn'X7#3xe> fTC FLДʷ,7%0`Cu}m fgւ&y.FfE>q\a¬qMǐ91u$2'Gg#^zgQCRI>*:ofC&U ̢`K9"n"^ 0=v^#\ t10feՑAT-^oT,w@uߖ'"q~E)#})9<GҰ^% y<([c=-nݓz ^inXS˒913 _=*7yS1&&$~3a้^UoGY9|}bXΉ$EVtL!C 8y 0'JKܰAћ0Hses 8t2nVl( J@S)"M5rEf}O.B+2d'ɐ5AkPIuqR y*8^S7#J*7*ң[0]IaAzN%+ER7]d =c4L} r\ghC{Ƈo0f=J̝xũŐ?F-!\9glGn8.}FW$Tيrf 1bO u(W)A;A$odk54 72|Vl?t)OJX5aheEmVk&ϕ"-ܸͷ>Ӑؓjj@Re,.4nLiFMщ4^h\HI'ɠqO_?}DIsТf푶.4t͗INZ?)C4Z'7j;1 $i)8bQK= QYZ·Z ?k/sT (8<ɏAcU6T7[mT;"`=P₼U6Ǔ^r#gxEϦi az"v*N Ji&>;w:]g(#U9EJ\Owo`Gn[;ˣiNIY" gPO×kN:q|i*VZ]hIVBW_NN]ZUr\#{N&J+,ԻQ CEdԒk)ͦ1+۶(ֆqN}Z#i=Ĥ n2>wIV,r,Q.Ib6^P<֡pQy ֓,;oI8aj5mǕ_[~Ͽnذ0M%bIѰJJ`!-!h,\l2 a츜BGm1__qSa›&TnE`#S:32]N\d 7K:2ICzWCJoG$!&33#AfلKu >A) 4 ͇, k"%Ic=Zp'B  EIm>uú&QGunO-Z>g.|X}|Ynt{%pp]"|[|`76b1h nb.Vb2d~%U`?9$w'k(KJgRЫ+n7LH(0$sWD'H@=,wVgEu:jz mTTYZžDh 3d5~Bˤ;EW|R9hMn!4sKN!< )<  &Y_ /)[{)P-cw6C%iD~8Usorkm`Z;9c0Eu)XA+l~|h(pL^wH)Bg|gʻ\aK[Um=kXsrNH{Da̟WWgL2qmCe9GϡCq$$lʃ+Cwe,373"\7!(YR A8* s651Fk@0]Keq8x A؛26A Mb#|ƁQ*"N8ջtRiFڷ`֪.vhܱJTg@Q$Ψ[fV"#kZ-Shs2ߩ#kUj}a/{ജ8vr׊lrz4ݙ@W< m>A-GQ^B gnHtOe94FYYoK2o\o \u.l+1 0j_H0,Ի)w-.y]@mUt:<Ո\w'-bЪs`; ~ ldHx1-q_BH~d![ +n=rͿƩ]aqPEp&:rOW3t 1BG,jl@^ jC!].Gf0x6Jw?NTݯϨ8mVzet1[]U1iވR:7"|fhlpI%OvcBAVto3޶~Y)B"EBX#UhΎU&? %Bߙ#(&|'IAGsߧn{" ;0 !陳x+egU1 jm':gVV !G bU7 T!R'_Ѱ|Yf/׸ЩB .lД2a)G\_bE"~?&nFij1Q뜝sF֭ŀZRםqW''IF\xViNSY.[ mO4{5$u* ~*Eg^n;H~oWk?e^1Ə6k i&duL/`hI֩QB뜎V희.o_ϭo n{mW"O7'́v[3J_,@[RwvZ"CWOnKjEv2!)}sĉ9#q劳8uBX} } QéxaOS.13X,zϤn"fXwjE1p~m[ฒKYJ 0%e;SXhQzKr^Oyh} ۅPdxImRIJ+0;.F:qK /x#(JYS|4HXR+FMqWPgw/O@s0!a'ˬ7 kDvܹ̫}h3H}tY>ۥR, ޯW=^WިE;e)yp/otD_%ǚJ>Lnr,oh<(DaZ6r~Monˀr5GJiI(MaHl5t7UvŔgCu "c8Ib%e\<CY ,S^5T>s$!LYs$g#sɘ?9~HR/ W|1NWǵ؆htJCd'fQT}R|8/î֑^)1mj~[8z(h\E* Ujqy2U$Xb?W|v-0v%R*#o#%ή  y9(M\u8+L2x$~s3C[KuKVkXbL3vυLXiP? DFY쫃l5؎7G6H"%1`'LZb]}jo-V8jiQ4}F'(o&cd#g4)f/j3>c{=qf )vX z$ VYm3IQHI,#uaiR;3S^+hU]Qøuq%^XI{6;6fNDa`0b؛@9X4:8[|KB˹;Ůh]qqEIYT`yq7Y3N,27UX'F߈*^u5;͆TPELL>8\WQ3(_:ë0$1J٢#XgVmZ/ZŮ^T`u RO? M ֙KlÈO:FY.:XR75 Gaa\woG \[4*ıRH^3GYz׈J 2#J)G&tHV*b%xWFO BJ+ͥh<$MaeuRzWD e׆O4x /'6p2cYA䅚Hn Ly$9.D8闣!oqvW z)Vq) \w6>HRXYA)Y~F6S6R{Vi97W8#OG[{'(;?tQk|!27іbkNo9@^箶b@Ī =iN>a ~0zh A 7b2`Tx`3š S-b2꧆\`ДyΛf٨&(h G Ug oXMe㖌7 !m'wQHD×QV@]8[z^Wg<?"׫u FBxZrT~nѧSYt8?鎲#.H0)7E0Vg7hw 'mֽ=1CV3 B.k6'r q6A죂#vl&HV[ctjmK/=*j [1{5ͯŦ5d1hzHBo(ekm`Lp))yLOSH~InT2V)SYdCJǎ&Ϙί$Ipy='4=D.#wsxY@Tp(!&s/ $fnz|Hmg$)3:{Gor:E> ҭ R>3Q鮒^뷕E אӶ!Scyc n'/Ffﭑ3?M3lZ { RODO*Ӷ$Sii$i/hrt7Q3ɢ/1|Cu,.əb:]W1XP*h(c֝(ր9Ma^< z!_nImÓe-Г!J'+@1xٞ蠒jMK0ۅ{QH!Ee>`U& ͿO+pXIzf  =`z8cOx;k;=r_JE9Z 3lKfk3 Ȭ&;1 b BmQ%UBN*%CD3DgjlFyGaPx 2>~HP:;+6İTXV]?m7l`lηW8+G䡨qٻ|$L++0 *L^7e%Qk)zżz:{, E7ӵi#qCr;먆X{KWtʞZojn"2<(dfjÚ˖wiKZpyVXokZE?@!{N0ړ9P=o|$V ٳsh٧~i&z_3M|ukrc{Cc>=:Pei3W@RGͻfsK2˶94 9TM},AO^MaګAESiz9ojV/vf ZHpΉjqkazQN7HOY㞘5l(>-07Ǣ= 诵;i HR$E :V@p K$kb3Wn}>pF_EEYõvV:~x)cK%g>hG#.y݄wI,i!9 LzMEP;>5U.Lu,(&݅rZ$tdYagIm/l@,^ڪ'z8ߋ\b jD$+k}Kii~SA'mLp^ݼ:/tuGcxé}Mo2ϨKr'H+k(ml{Dz\@#jZB;.!\TuZI[d_CPgzT;)s ]oBqMuU@/N'tL@DPnHT4@Kk6Wlf "+p)E-h&LR4Ygi9b6_W (o4]87f/`{?$tpb=]WY]7O!eP;Q+R4ɗ@1;s9MJ(yRSƄ1g=]E7S9l$;ewSa#r!!cݞMpN#6!3Da@̒0y 睘tIzP? ĔKo4hQj{d:tIUՁ:wQ^S9$`dIE>0ETf: -HA]Wrʵ\.›x̓r /sRl@M} =Gtl 6wpD/jo;pbaf3W_"bӜ7*2%n{OKm7yم+EȱB7J-nU7uߗW8sf"8>G-ۃ'KQQ@Uw_O{UE%dw`#(;֛$k""AyR/rVƿ3j˛O䇎iz d R$0 Y6PjjB|!X *{Z0!}U0lFg2[ir7/W{}gUwogidkpDhT݇|b$;)⪜>,HS(ň,;=`S /dLz ~ɹD/LKL8UR1m^-Q;;|%f ˇJ"2)~ǒ> TGVW6auެ4 DsǢ.)`u /-Ejmyy[5rS0 +Z%8](0˒L'+4EfR`blZ${Ɉ+;J|T*jYtQ 2)5x^賫^_1Z&xt'`mxm eR"kQE.NP #etb~2do#p~\px,DW6:n7sѴ_.Q~}0C 5CLs>nA=e)M!jE*:YQs 3X&NVb;4γ&:W䷴xF}&Q^]4ஷT@-^c*ڰCJRX)Tݥ#H3"AŖDAҺ?1uA$뎖P-8a^#ĹzV) 1߱ߦ:Wf6fW4Qi$ȥt{SenMkfn=/B=436W6< ;ZtQm)ƶTum4~gͯU-GPO2v?o9'$~[Qyg";6r `\ҜQ_l(2Q=eMŢu-C9<7]b?ud n~'l =צP^3r{᪃+B=)uk ,@<) -Mlr ͪgYݗBuuNbyM a8)8qp1KDyWSm8yWh4ژHQ}:{BB?ء"Tb^[eWqy,lC]Si覩~[j>NX+M \oEw]xn(B^.Y HbR Z6u#ֻIPo~zz(O$qBD;:W9BNy d?޸wpZ9  sr4 ĺ}Y=\ȼ\G**lW䍾;Kf*k3]ͩ`ϖM:5ai4;.^5C@/Xk\|H~Yh!L)Ib%sqa.BEK>%biT)miU&H` ˇ9:2ߋYk3L:X=~;Mp{ {Q- Χ44TykzV<~q+wBeY};VF( |h6QR&=r bQpFawjV [3gbG 4Aȧٜ$0WKK xbV'(9˹s,ZZ` t\^d2|F}VRe,dJ'V].FL\#Hu -?87_OVi =%كKbIىYR \mR}jzj#5НJ}7-vy"FY\_"s‡)TC hvYniݬFm%@xzJL>Gf[^32هsMnk%??͝V^b~{0Jx{C%B4oiۤK5BZ.A+)r,}~[+keX'–QWtEĿQQE$F}@P?cvaЪZPfֲ arTe?c|t sAo;I,eI :bA2AUZPUΗt[/!n1jGװ*cŔhEʘ' ~Y_)[H"g cT2@ uPhc$X*Όʙ8+$뭔u=jR3mʹ =pz ){I_卟9!cg:+tg uy1*6rv:Ǟ! L޲z=щ yU >T5Rٟ?2W}5Ho^ v 54)ӓncc=1Kt1R.VmiJ:G—:ᗞ)0\^;7e@2Zs\fJ`B1T5}찶فd'vq8k"W;&mItxclWNxu:*f@m[-I.7]%BDo߬ vRΑQpIu,yߡ7fe+\LDHY4 \%* MCu0Pr_>P_eXdQσz^}J{U:AZ:!{5RS:] ^0M!lX P-9F76F|B%gޖ'ri!|̩ 6CL.{jb?&A՝ӡ|HhN0i8!8qdX {*^߫]63~#\qO8$S pIsA+]SO!8zѥӤ;$OdCPMlxz.qksV&΂:*fZ }aa q5p& :` cawm!Ll.M![¾~oc N՚6̳AV:_ZP/vJ~;|^,2SH0Ŕ"pI.3IREC۵JXQd  ݵ+~W_fjw]~˜t K7-cd262hC=ԜG_2tK>YXݽMipv#w 4wixHv)/8vtͥ #E^UWwsZr?53GW&c\]dJip+>bg2Fё(/ N#񱷊ma]3~\c0pFI+ˆѽ/RQA32K0+-FIج(\\73I"-ܓ tnPLEi= l-al䲇S.T<i USjV YZI!q7wZ>[\|E0sQU0k=sN |fGDw5 Hi-*m9*2+汉:S"YP*b`KN>y0@ln00/KmscMlϿ/y&'l)>e4MN+fe]PtN-Y6[^X}{!>2WbdƫT- j@.[=d<0Ld/eV "YԒxб/.rL$?y!#aKQh@67˪OeRAZ/`L@ec KꘁbдgN E+s;& 5׆!r]|e*$sS'||%8zFA؇5S/[({jVX"IT9K|ˇsd xGy >B\XJ/GFlHG2tM=˻KL|=%]Wa᤺wlzpn CMa_ZJ2Z9}US1ٰ"U bY]Qo@ڔR1{ Rvy֌l]xL4KBu9&CUPGWMoPj F0`.pgxH&;75,,M-BTl}jM%nɁ ym'wsoU~\}wXA*!Юlnb ,SOqaLG||b2(/VS^^FkWU cJJU(p-vAB'Kxeqʒ/d!,4yW xN|\,w ZBXS@ߖŕXg"7,59Y)H;.DӐf/%x z(|GANJhQT_v1]a-ɽO)n:>q1Hmp?IԭQYe[Nq 5κdݪ}=S8z8a(~~ RDifF$*qy%-ʙ`jHD]`j!l!lII9"{ddX#*foܧUؚxHcq[)a;|>!iy"$SGd26B=}5i)Q8omf?u$3%; t9F ޘحFw$3S=1&{mhJ~+;$łfXw-ƫ\ ȽD u?B| 8;íu )I jY5[K_uERwM9T-T3ŀ´L'MAy!Yp(L=hi5]buOa .0nv:]erO\%,']o HfLAF e$QJkYrI6EI&Ywئl[8!vW.چv'*|a'n߄{T]᳅E^Cć.r5 " 5;A%rӆZEgYwෛ6,s%3K"tx 4z񼞽x7Zxy*HO9j{(3kW~>kGwk+s\΁O/Ņ b߭"0tDmde +9V}Uٍe n I5g&$".2jqV?kRN5뤶fRc:n%Ǯ\c?:I?4PUM߸3;#29o x;, gQy=ٿZ^seŶpd|=~daMtVw_Ɖ^2r,X3a1łf_h">I'4=`g`L=}m8?'jnqYO^M2.ȥrC3$dų8u0+VoΙ8D.Gsþ B6EE('g1LPZ?k"gˉN^QEkbZe.o  6CkoZC"j.'[׏X@M}"7O:ۣZe:-E ͅh}єk"vZaQ_>+[]hYs1>)/T/ OU2 _U.ww(s);AX؅{54%:Oi-(]F+otzp&͎s3|$5'ryN9IqV5ytj췝n;lwdr*1]K'|ooZ UWQ~W*$\-L_Y0>?4];C$\)ER HCsrÆ$|X=;g+s Q%|֣[ ޮgȣs1e;<_fnzrStmGC =>;pg+MZҕ)7?0KuW n:e{رNh{ǝˮxLH,@>u nMNh3Ӕ,>-wDa/wXm/,gI鿹7ٞ|tPl!$/ ^ Zi뵦YҀ ]",-Z%J>9E 28-$O̵BBfuQO+hׅS[R!CS/ ^,y]mtKS Y:c9K3!]D 9x3yu8wѱ]XYujxbG&5{A2d ſj3Yg5Qn/!jB3P<r*^1_1՚mzMG_ *󇊿yv6\(OcK.8C^ziD(n aBP]x穩~8!M ̇5*UP0]'?.O۠)v'j[LG{2sM>iTjrggpBv|׭|nKqJ**|?漭`߼'.ՋĿжUwe-0_YI[r+( 9\͈^lC^dOmK{+̓/F䝊P"}!ND# G1BIgj1JTlo\V2WowZ IzHbnu8,}cրhٗEMt*?-f#Pq,fUqJ<062Q(^LH ٥*dKnc| dz/˟;!/yZ= >#v_Untbk6mՂ ϖh՘:)z<;,aͰaF?jVkWXċ(,T*}%bl9b=ݥpM&0!aIq{MɏH0N*vpD|a}Ř&/rng@P4|P2U5HBi9l(yT3%݆GztLWcuWS[00g^1`kƲTgJ 2Tr2waC vrE2C}]Ym(0v9j~G@SxgI<4qƢzɕLA041|'GqaLd*q"ҍ_ e97>/@Kofq+Dٷ\ %i  2Yq~;5%iX+* jdu[$K!QV!yCi6; .G塰]Q ]UCI15'OUp w#4 e/)wuf[E1ITE`CG¨wGFht0 C县/5%js00&xMDE$|x-H RX4BOa&: 6-V2JՍl_At8뾊@?jkZE> ء1<_~`y2mf/0vt0;yk}/"7wr9Ys'_c&)&KyCXZA|1|^_h뀓_ Eët9%ԯ* ]h #\8,e"NȚ3==U;IF%b֨F@mJV?7P 2y -_ Q!mdSv6!'l򂻼F6ex.M&8`zhweѺ`ąI]h7sz,؝/*MЦlߙJKJd=p&9ϘTjTU\FkO0_T=JYW /~g)I~p2E|W C&[;Ԫymòap}lbes>/we."|{s~0AH!U^ )azTC7\ԼF&QV Oc5Ljc)ONR;ՋswH|z8@kb n86kyYL*E!3SI>eMy-ĝl~=ݽ6 NQ|̺|B?_?[8az7A1w4liOrxAW?K *kqHV|&[5+r!Pr(<yX0'2I$x\p~A?LC޵nM>nc"q{ڮ5a8I#VgivCfzfk= G[A6d'HZWnk62S^m G+䔘FfktIZO7 `Xt&6ދzH^{wImWa"$7`VZH =feX0rj=k;1j1_s7T͕ۿ=6L_5jO/$[ U.ٺ(\JZ.BL[v[XM(k tl$.7 yms/-rvV~=(r){`ZS=y(0xB RB 41vRIQef ^*'DSaѼ\ÙHhsWxNJc{~?%ܬX2٭aWU_MOPВ>Gx6Z)_ :}"QˠׂM#:4 nl`0'E{uήhXzeNZWg9DhiZ'@j5HD#\aa/9&,DK]ѓ%ݝAPaDkkׯ3T?}bL`BIfTvdܾ?HלOsqc1#תC@rSI}s3[7b5qRzu<d< t4D*Ĵ =3Ӛ4 LcJ[Nm b ĄރZrzZ/k 庅|~g5sr$XɈJ]cmǪ6:B9s:G'/OcoX$|Rd 1c0A504vHPVޝ os4jKErW]19E]Tေ-cS]&I?mS8Rez6 ʏ[@ bQ E]#s,`\&yq& 7BjБyt&N@͹YGny^#G](&!k(3/fmV:D> &'/l*"{wj=SzVĒhd sóWme:| Atj1̂ҕ.S<:H>TtjJc-D̍nΪ8}Ns"f瑦St~_ K4EJj"tJ*n}:b`:s}'fIOÎv2IѣfkvgNz/ƠJ0{My upaРٛټdB$myZ t~o-|#n.߻%a6L]80i@ oќ=$vm`EҶ|zY{95c!C RdEv8aZ.[hvQMB7Dʂ3gX67nt[_Ncj.XoK䄧)ag#'hj"fS7#k0yJutD\3"}):~ׯSXaHPn9ܽg6#qmVi9; >\i8VxoXt1V]Gb}tCаgrL&=6 Ox=_`?ܓ^:Sj~Pw 3[SxۧΦVcɾ$tzAͮ*V;*L}'' %c˨3AFO@ͬM^+| CZQD[XX5eO C?JFL]CД+/Eb}/+p~4טxf<t".,QPR|LQ7znұ[VW̓]eTZKU!9O]ke eDK3Be1&NyirBΏ.$|p!G{|loOnFW7Ļq.2b/skm(DF{!|Ev- 0;r qe3GE~֍F ]պvUr"u%0К.u )i!?G4f t;ӃGIɴ{(/vnK]qb 8X:((᥄מJ_Jh8!sMMdTP- ]^ WUU+#y) HP/ILk[S~֗)J~;bNZަaߴjd_j>UܥW]z5)U8 R#-O&Jt1%⽽}BQL9%!nW<؋qζB̎YgYo]š1W6i ,C(m{,]IS`z)Y51W^o{~7Tp.QL͐wFk?@O%򗔿bI!57EoU!xB=1:tj1&yn+^ Gu)JeS$Nf0f&!ګ<fNZQՁ7o`.VQG[8mJ*g+,heFUS~Hkk/ LBڬ@!BV&Q3Q[qƒPؖ1pq1sOtBŸjiv` nNTHgl>Ŋl c'ĐnV^j~^܉NO{^Թtd~vVgʈق!B?\ESg(Q^A9c|d*%DLamBz ?rGR;nnG %K:/>[D3y^_w0kP]%o-51ɱ˓6xfrMdp:zW\F 8J覚VϊEXl3zYϾ}? 4g4hLm ()Z%79~:D{Fܝ.--|fUlf~*&>tY-_ xdvTE? [zO 6a+-XPa0sdo]+ O72 egD[lBCiq\3; H\:9`j̮Lo  iť Di|pZXؖRQ鍛 V4>jH՞$fR܂GY.=`&U+ݬl"(/l|LkiM?5?rjէg./l[lxzm6Ժ!jv.Қm.y~'D٧FH 8;9H#%@5>ƀ7m80@D(ԣNp5) gf[k efRMåG+=Q/$.ڹızB+Q!oR1lt1o玞f^ hfS"l4mMgl`]`'Qn(QR*kl$?C?*CL /M ۹҃>Tq%`Ɛ4W|0RWqPEaWԄ^hy($^h?A,:NWkoF4xSt%Ǹl;Uhށ[2l[/WE⎑%K(|w K}=eptgm`ft*gJ#,E-r?!VU>òQF\O!,N줟9IcXMʍV6 "W&gO$9HJ\(!"(Me'kP)-Fv3?d,9-Ч, e83oPՍ" FM]qq-N?H9\\n{fgta"R.0J-LoRYt։u=[D\ea|BbmO3 K]Ɛk+_*`EaD:i,xjD񷷙_>ū?|MN!qmn VK]6g琺lu=6A3JB3xa9]5)ݻU$^$ѿ3 vpe+jqr('\WMs(; d%%#T :H]Qrۦkt8$%fG!ֈMb^}aN'׆x,ISoh_Ӈ~ցRv8ց>9>gZ FD|ɨ(P?ںۉz!C;aYEp&M/M,2.ɦ1#LqG%aûU$1P, 8aMdO}-(c|l1)}|R@fe%:Jn5A\aFo_#b< ՘EZ 17Ճ-ɉm*׋9-Fc8jE༓Toon}Xy/L K_ Eg3dk "t>`?qJyQLd0fa:GfeAUҵ7elFv<Z춫ؠ_l_"rji,m_Q>-nn-d0E~ii͚F0_@ ɕǀسE)g3<*h9j媽vSW 5Y ){W%gȕ(lj)֢QFB[ؔ~zRV]a Ȗ~W,?vJiv7 ^w,v&@tjBKmv 9?7 @O P"Q2sބ;9ѥ.Wl]P~ '6p!dZq/WKir O*bo|g^"F]ֵ%;[6}"_Cfl:n!>鑫fvgYKnXI4vD BbÚYACԆ d Sʧt>Dƈ\.ǴR*?ޝ;|b`Agش0>2Q^GÁ~p!n@>ڴhvMuq|AU&$GI%=B5\L2N޷ВLR YYCh>Vsp2x>h{DS2dC3FlQrL~Vډ$i"^Z^A^{=fZOPAC![s丽7\R(iMVXd2z>5Bd ޟp9d@&=,9KF.˫T))XFa'PX7a~?;tśI[Ih!',#esuOqbV' T&m<w%@ 7EMI(ĀBKxrBX9wY2KGuVA wP?bۥH̃=)]=eFm@ݩsUBŤ=HP{L+YLvk!̖NiPH[yBA-=2]?J% ԋE>* G{TzpC`fmd!$<NF6Ki.&eO 5ҀӭCv9EN"GלWQ(c MCU] qZٳ3+"F)zh=N35Wp-;&?O\I9SOy r: O;SZ<>'65|'e`KsPh4q3GFp64os=f:29pާq !zzdIX8קP*&h #QҕsJaWw|0$cדPz bV?n ^tF$^Щٍ5DI[ Y{iIMӍ᧒&1 .=:Ljܵ4ǖ~: lS}N4/Fz[ے\ǡ@s@f z"O;^?*Nd%l.}0Rqs?Bj`FM `P sF ѹ *J͙C2뫾..voTEN7p@D,?EtL幁ѨUY+3e?&U%ioܧnZfe\p@ v3ﮘu]ҫKC1=@nPP̂*zHG+`.՚GGM.ZK,~tw9Hw8cs/G-X` ,qO\ڸتƪ:U y= j Ĝ㍽GMz_^QűN/+]j2aȮ\.cB9ibXO.d~iB(#3Ȁp4ۼjr;y(Lq29m;) IF 8,Ii,g4;K{ <ſL9^PayTz|YZ}tkK g4Abwzϕ ]s.NMh^ jrB~ @S,ÍrjƼ֯}sc H8W' ^&idZ۠EVvb,K:8ZXP`ew- 0dq% Cr' X|{cʚ1)3ڱW9 JäC,g P#hQ"?Mt82oC Ѓs/Œ| sdBUfe쟉wmPb1l~yud'Հqr=x4:KRtF7f,:qKxuطd9@kۉ}3ަi=}* 5S̫ib/qOR~ȗ%  wDXBB YZQ\e.ⰺF:GTpHԉ = m-^\8*XՒ BV$1Kl4\\0N9o\  s1N)=f!d%@Z:@a\@(iUw/̇<':,2h}^4 M2#NjGb΅U $7ڋsHRTA0=kv Ϥ7j?Z6r 9ڜ@'5[M!ⷑ/QaAdtrOyPs[yf|um[A0RNNRjl]YVӥ5 78"X^j l&J< }!n '1xo bcEW.ycJUsnt"Q0\Yy{makJ #_W#F0G*]ډ<r8G )+w%(#4 ,>$;ɱcv+F͹o Y~)wA} SÜ !2c@ċM-IfE|]Ɏ/,u 38evRqSGfs:"W[!XiP ə[[=.2*wE7/!b o݇ɑM ,&>ypL;t^.㷯"bh%vzQ[, $O0t+RduR8}U5/(˻<. I)¯;f?6k خ'U<f xak"v>u:9} EjJ'ZKnHC8##e $6Jh`P(}#-.KIij DORJ)WQ%Qm@>*bb7aC܋E(KOw]P>n҄CS228Znpk{fwGHl:gRn( MMWOEw,L={43Z"Dz.!Y,\Fy3H=ɗqkI> ]&|up3e+nɆ d Wg{,ɢFy1̳NB2|rϑS2l]6<?a\^KFO{{ޣ}L>a _zdnbt\P@ -{ Zei3+3? dQ轍f)gO\;|)ĦaP 0m@w:("lẇۆjRM/hKf0_KCʰ$}CH#Drld+ ד&x#kpyV/f6$UE}C!*j/BB>{Fb7 9UH5jȓtKWeﶔ0yuܗzr?>¿ !~nơܟk앸n2csP Jj ΐ[w LB͞+ӕeƧҽAźe[m NN[w$f5qHaa$:ʇiqdWU@D(f~ }O8“Q d;wq>$BB!ѧȫ^+=.a=ODUэ55¸U*{Z)ex|kZA{-` u@`MK= R['ٸ, 1팈\[2QYA 4T˟>`+ 贈$q\i' s?wU6'v(FL[J2}! HE3cggXa(#efFRIVZnUi:ǽМݭé5/JO{8coox3!ZK aL- T -r$šu ׸e]ߗؔ粘vyVgWR  nFED{I0q☾ sލ/j-#uFwv#Oc?aΫɐQcNVfk_ Jt\|jDnl*,BVD)X"rN֋ڸ+ P‡;ɯ>[fS%`%!#O8 <>=iدegt#Qoo+EH9N%CaH('=Sp>gKl/$Ʈ$Q3 ]p {ү9Fn>U1/JH|ߞ<ܤ3P\Z- @Fr7p*b >%Lqw_oJ8[U3G_wU<5Ƚل)M߷yxE@wU HZC!D{F%NX}sq]xrW=+^m  M-a@Hy;72ٳ2Gs_GKSo. AI8;王7r%_ 1bT0?r*n8j߶Zly*DĊ8َ|b$KNbd5U':OUg @^hӇ쏒/B?}Z'6_}"mO{)'WϰS_)6*14aw{%xk"$%}Re~ [m MqDz^*vpejhwȒFvhml;%X0atBrrlVLAS8sG >ql"@׼c\JiMK0eq <$R̾>|srㆢXK|6#tfpahIN.k@z7GG C ;o7@)eOЂbM>JNbz7`yHRN{%#.%Q [@MPޕsx[Mg߰#/ok)i`FxA : _!eUS<םlY22rkuCOP1zꊸ<@? CcfŢD Ϯ~? f.J!mUB&C]pF\ v揘$̀iĔզ thOXƢA '>3^τZFAl6]7hsҡf wVߔ#%H- ?{]@ah8s"ݢ^.9D˛ U[dfj!yc9[gp|9.ZvcuP݊yIsM'#-`S^vib*Z}0>SQ(',AoRW6p b'yj'`VJ>:'>#=@rRjD+zl1͍6uLXʻ7uCoPĸ zV<ۏg~SLg6~tDA"`?SmEi _j0wtv+EQ 5=5*(,-m{ {-Y٭ײpJ0(kFR>Aa?Q-Hʛ#J{t&rL 1y6úg7sʬ- Bꫳ=9o9KT*0c6Ype=qM.Ӯ6T~A*#^/ra8-1B83.]V[AZmԷ50.a% N~` ;A37jφnٞ2l҈x/Re^Y!Qkm;ߛ8 gh8E}YjŠʿ/>;cb$/_6w#kq$BAM/2Q3Z?N?0JU j$Xؠ޸c]!ْxムQ|OSh@GÏ VDP쭢an.{ٞ=P:bm|E'BYH +x"g v#WU@HV z\ kÓ l SBuꥪG;@ͩF%Z$g!fPQyRGuDAФwJXoZ.b풑AxX {%Tw=i~wf9CcN@]ݒ3 X( PT܆Ɏ$|',9W%!\BYk%[xG#]H*A콮vi|>g/+_|nv 2UlBr22^ dg}Y6KsHJŕ݃A(cC\ʾ}j DQ7O[!%}~M(ֱqNDC|Ƙ'w抸ÕO1G10{͕eDP&>U3qJ}N8 KƯz+_誶`.&5;+4IHO$Fny1%w )o@Cf=p`R]T/ﳄ*N%oI`#73~5kg5 x {~@ t&zH"cV;L9ڢW>yfvmqM,&6g& FdV0[^nDWKU2aA<.fHg*^L"Aq R(Z/?xitSK(V!޹Tk(1]+f#IdQcM#7=6nnm)3~#s3f4k(rf+E&R-Qw: \EY_<@|;al58Zը,ϴ\Mr#KJ 􊼈V%c=!ǎS;6K>l&- xU'JLe%KV5T&0g u]_}N/P[E4:\ D'ȥn05gy4$e퓦_6Lf_ݧKݏcMnJ}RR7FK>s ';ֺ&8m*6D3@ij0b<3 볡\o]Ǫ1}Mrx8wn7P pS4 AC[Dut,]ݐrSd'f?L8"kv7HxS: !έs5 ;u[(>aHwJ.bcGxo[5&:3jo|1r'}ZlFI&y&hRb?Q򵣬@U N+')Odt} >[c-`x ̦buӕZg:[\uy2{ t"hwab;{t*5/9++6fEBR8e47-{$ lI$),zaL5YGk'U:R.T0<8 !)̡B] ;&ZcHq H2Y((\#\5p:M>|{GsBʸ׀4اkJ|t:30i-%iA"OW L)kWhR{np_By&]ئ a@M= [Nd7"&]`S01@Į!2HP h'мvfViLbco͓+)&9L8? qP6 67T%! n>I N$kާ37LlW@Ә:Wu靴p"C4BWFtGL>,d5!dMNԼR=zhNSObܼPX$Sي$h~ѧOzYy]]K@0Rɥ 4+ž']))KLԫ<]};$pmeF (.XSʒ6@|,) ԡsT8{b7'ɿT9@_Rbvփb(ު;pT~f"O%V_L_E0}uO weW8`a~t /E^66oW*"^D[LkYhZ3Ns oM[]S/1,}vur7.DA F D}וw_y]hk.di?\h$#o^NŶԊm_!PpMD 9KAON(UM2xNlӇe8F he+!h!c ِQHj^i~McF;&Yu`O^S"\%4hXYxp2r4%Lch`<3y*^i+`{y7[ȮrTB!\)L}g÷$E2$luFx&;ޛ;XD T"Mڹ^ Rzfg)n:Ts=U=.|pK)"Syi_Jb'֜hX0KG0=Q"錌5z&5@tSXd?O^Px#iZbgЂ3MεDα0ܟ@u `33U|qKEgou(iL] |*՚?yg_D4#$݁_Z  jNkD7linEpnSfy [rp_ 6 -#mjtaf h!O˼2i;u#3L=}rAӣߩf*GbJ Q{<ؽq#,/O. u[ %$=w,􇓊f_n 9v˼ڭУe`pʮpJJlGzIzghC !*ȗk/F|d~lg&m4OA6M+t^Sܵs/;>P||RDe{$B}!C}jףuӼlЍEǴD ;|QsWIbo{fǾe=Cuڕf_/Oi)\RL=RY16-.ْVLjNZ& `E魋N'<>>^k 9)(fj+o&3bC; N^h6q[W>e*=cJć)M廤gf \@̝aߑ4w-x ;UyePy.8q#+bFfwM4)jN,Y@=F~;NTzND)BV dˊ cO{6@$Dٝa7`V 'jw %!_9p># h X. d.*S*R"}oޢTa)T_UQZڽ"H ~;DM&Q*F|Af~9密`fB"6HPGvqm+r_Sr* 1D?Hr ]cW /}o#c'paI|>SjTFx~B7sڨHs'\!.F+D~Z0ҿ{_.W:9$Nw裵%!jRp)e(8DƛVS{ ?oTXv0[XsmZv/=ܨ\׼7CUvJQ&])8.7u/dDOġh>oٍݨѓ?ﶪ}r%2z|E.{1WM, gcՈˣrepN߹{aakCԞoLm<j+j8}zE~Fw3?il4ay:@;Wp¬0nPOg󗛯*CI֪z0h'p'k&1\bvRtӉaaLb&%u%GdGEOMs /#yDL"zM$= `8c;[\2GsZ(M_X\Xi,KO*9epN"] %%vG/{gpGAPɏ'13ELi5҃"xpBiM: Uj2vMB>H}242iyeHnug"fk3\!o .+9犨 13JêH&r]YMfPJt1a`wB쥇r77K^$N޿_{#S:p$8 fsJۜfk\Wq?B1طs]q3'$u hD-`Fדs({m1/+>,?+ZMRۿ6wa,у $xR^dl%`vy YЮ~cR֟`3D7H2CUMh%vq6tHq<W1Q*/hesƊvZi4 rz~?,TJ[ne~k4\"@Fgt;GRm액' )?\DHv]di츀3?H_ϿbγtGMg)R :Aso5 ݯH1GbF d3Y?#7v/d/b20 /J.:rE(C3Fh A;ZxiE=M([ۊ 8Fn+#3<ۡoV9v)HR}=˄NO )ᮘ˧ . , !h'Gm76dj!]W9pS %,ï-X c)v\DੰlS-!ƹ ]1aTnEiYz)ZRYQfr[~(a^ מj-z: ^Dvl4Id]гёӥ7O<8ߗ:j1":`\u m xǾieo] :Rrԟ_a nI08sFMi37qX@旫>3;lRb$+&.iHr^snغD-6m$$appA=;Z|nbES% F3J.3vpWH.- pF#lEUUck]W/ \t+5ar?m_j`Iz")$-C'CB'X%,)x{Cz(^Yl ӇMϺ4Su3`Z}%c$sEU{ 3m:Vc:i$>)6|w5:HFh Zd ݏX?6Nۤ[m+]`*G8Aݳ`K OT98ySAW?CւUq*h/]سgŌ"/Tj.6ڕ0%.46υٹcp>(͓:Yg=ID7-Dɝr&76$~C6;oMU5ش(0_`?vY SxH SMPun.<^uWxY\{|f} <ݝ"{#ЈIpf g%&=6Sx vQ!čǟ=)7Ob[B. wY&L`xKpiWdƋjB6h0@0pӹ} {8~!/~ŜKO6Ҳ:96}c5r.̍A׹^Q.$Dr^eQS6qD~cxXm<=)I"@]r48{o@Wv=̈d1 !j:lp~m(hB{O\ljɻVӻ ? 3S.yhi@o',Bw"DhaK`4$kB%!nRLi(!_?l;c#r !VecY ňPy7zT h ͆@- )/mCAɂQ@x@EE^-22 $1 TSg?2 t6e (1iI?=i<ށ;&gimTE @%lF)<7Doe0MZm+DQՎ| ø RkJ Arf:׎p(2GrvɌB{j{4#B5һ |46}2*RDA!$GCCN&!*jtVU<ԔgkNŖE쯾4Ed`>#"QFl(_ XI>yC=e ʳ{q+ڻ-ϞV<Gc斲ekڍfh:=?8N /nP˦|UڍChйw]*sC_)G Efoc* pGݗgbq݈s7#@F@ ;y_$2 z@ZQԺ7{( w9$!mzD@Цҧ _dar#f(Z;K*X8=t4>ezj@s 5Yͦ.N)(Qv'23 +O^Q5g4]ܝ ήmJj@CCm`fG#KEl0%^"d”-X3u:m"ItMqhJP\v[c}cδ Nr$g֐ycHJ-P4sAU b9 Ĵz&Bo8qkVd.$ !RyI:5qp 9 5K5H˾P@r澦:o_#_кcά\~ sjK6aP8hYW ܀ssJ/t q0czA";B.LAuZ.Rfs b_v*Vl\b'nc)Kb:4^-x^>/<g3NAg!֢ \LPJL!DZGoM")K0Xez J,Dr$ P-B>r5B 87J7I=4Ds <[#u(-V])+y'e0fDa?`P u櫵S_%}ٖ:Wk(pNjJ^B%VS 6t3Y_#~l+E*ޖ%Cj(? >i7Ju3toeg_Ờ[n.%MZO9.Kha$]Nu׃ b9%W\xfO @25)S'|?/kUr sz,='4~V-q9@[ג jZ4v ]KG3p(UbU-i\ϧi,B6m Q1&+ObvJng- _ʇǁ6aDXy;[2 OfL#}e5zƒIf'q|.5VMDO5~PJ׮peF4"ܲ"`Ji_D]W|+ q$+ MN{%^{QR+o9V=x 9 }W7dfkK<{EWADwLQX֍6WJ 2mkqFLof/Ͳ5~.[F´6~}ŗR^|>J@d}$Wr- aOwՙ_YuhDq8{&]@еG|'4P=Aot&Ģ[F1Q;3,q0ץmBkf(XO `t Ui뜤dʛXh56Yo1Y h⧙9H9ܲZ-?ez~dbb]H;Q{di +-&^Iu9.d ~{h%O] g`xhbBJ%fa d ; Ō]I묘$DPr7g #796Sph gayNG\͑Jٻ4aZMd:GGWaz&F 흥** 6Y߅dE+<@mLsYz=BQRq#fΊ{qqh(*RuQU(m#@R3̑B7ݬ]ᷰɅ[+Qz+D?葋خEufpG"Rk9k޲jǀӦߞN/_*⚺ǿR>$QoZs2U!2˪[ˈ. ޚ'ED-y_nD{"kώ5iqҀ昐^0%"?<+Ar۴3hN. 4}u7b@-Wqp%kX?2b/#/0I FvMCC5БucrNCP{~gs+JKmN4EaTgY) WJ,JĎh>p8d%y$=t2 a>oSƸ̚{}'^0-;`ÅK`TxL3ޯw*No;W >b"յϩQiW0C Ҙ Q&eTm=4g@X~#(TŽ$ |UӸJ䵢G>ebwTŽ>\C8i3gH6L&; ֱm025WfH~$Ag/g7zk .+Z޸M g9=zH:!hX*K!U Lrކ 5/9+AlUyJ?c_|> g<\(OJ&Ddb:s'Bֺ6hnj^N׼UK;aDr*eT ܆\-Gv+W]]],tmXUJ|!a]]4\Jp?Ml}،PocB O`(H-SHd}bzˇhN#Ukra\^; '?!:3;6ҘJA &iA,q0xa}TWc]F_ق-'B}.1ǖ%wT J&t]q.sߒ z_sHZcM4ZL~3Il̍K}G'P$KHZ Kw9/:5BحBIgG)v zan_?߶eBS͍丆S}vܟF:/ s:iDKD0l9ː+? 4Ņ.d8Qf Gg*uBs/TnaXmBr@DHﯮpY2 Ut&[[HᥓŒfX'# ʵU4,:/l5A P7;[q#/ᩚFk[܏%1W- czNr#uh3lcg"nbD 'F-e)dy; 幺p 1Ϯ˱E&_2҈(Ms9gƹ/d^Blx3iaTC/p;x{Պ ѥm}I|,4v?"ڔ'mv&hngٿd`j3l|\qAȜt`xg <5>p^NNaEfH[PqG5NێwQ4 L>އ~sZ:N6=QYwYbsS` ̍Uѧ^zgmA/@}C+a#:|I>(ElzۋfGrh"pҪ vfŚ ,/st>>.(Sww0T4?H`˹lݥap' {im`46*I`z#kE_+TwaRl%K _^'p_wm_/8G}}Id}}0x s?񭏃皅;PQ+^bJA ws_ASx|OoB(&;z϶7jpQsNV"O'p\D+ȮWSF<}v>Эsa __sah 0uK..'| 04  ^7QUAHE|Gb;1ԦdN'&$_Eq}ýTb\GTPTf" ZЦMG[}>5 /XUsrNA"幚~Tz\n!p06"m fhz榻z^jo|9T|ڝc̮4;Y9).~hVVR=Ƞoʧ5sm; 5DBّKOG/*Bq?n&]Nl:JD o5Fהv0ۤ yDz7+%0J%#e-r5ȣYfY&a- i~9@E<>|,8ԓsV? bMs6cNy.E`yC i%¨Ռ jԡi샣3R"~؃1[t!  bc.@ca͒6ZF5Z0JqeYa y@YZ]Rq'/,BżdMȎ3(.ɿݙEEg*mTDTKPk!57g`nXAIyoJ_Ly۰" ;wn̮Hbi (6gK^zJ *>|yInaT9mrX$0W!y2׉]v!\UBGtu`ŷt6եpjĉCV(zjp0s2xS uNz{-},0!*+Ō\\9^0Qa#.ƒ[*$…@l, .T2}J3Q,ȩfKX k[*Po>N'<,'ӠƵUt1,qA$,f;ҫ]ړb3u.r1ZjT#>5v匆7.G,\*1  !~ңv@h/d1)H7lݟ ч5d DY˓lkfL4 +xNxek Jle N18@F/*H+6iLW=Ԃ I1X 4U4vfE{kZEf.=5]*lϥ:AFEyq njK_oOa:ժ2dw*r$7=R* SOۨl塱}SJw@CARYA[H}ڙkmqDsNĆ% bU2xbqTkPí(فG(UYv`=X\J 2$!pd#U $\;g4ϋ@[j 5N^vȔs)|s!@lœLO_^(p>Đ]Tu p(H\ETqea%u(c(/(ԫf(Ts6b9´sDܒ>yLI>kA=O)cuP r}:mP^X@]έ/^P䠾sOYGt-(aj@ ȹdey+ 6F$/NEJhqT'?[&/3XGJf8DAxb­p 0# bϠQfzXEX:ͻ`]#f$Gz=DfI 5ɀw>ZU?NFT=OSbke9|-8e #ߕ@\ O: d"œ>leT[JLWVms]=ʴW>SxNîf]`s # ʒ(bz#´ 'WU箪shA(lq| z_;`ҹDQmz U˜:jq&At72 a9o U wQ@9P] *׼4u|8/.t}|ۑ/TRGZ:@6,5Q[#OD\âd$3Zkw)l#1F9BA3;,PHTDX싞iN58tFZ#}ݟ㹠`^ q@$.Eΰd"\"Om_Now ZRo>~lѷV‹ bwr(qZ?;Mօ1tp04IwlRl>P8bd#|u,/%pFXaH:aO{DTo8b_2<4ỼL>&Gޞ @;HW':hή) tݟ.D-xݩ2ͷY,$4lܗH}u0]@!WW/#e`&ryw톮å^wQ,;mbwHJ.0-S GiPȨKEJAUĞs*׺@v*3`Z{ܸb>a]< 2t,En=TPO3nce >f_3ʯ>++T98=B.7Pճ2W{&PcC h>-(6Fj؋3IC 2sQFWփAN_U'nl,-n,B91l.xiWr+|ّ%a+i6,ŷ@pNUmX"©;A ;8lTcܡnKoe//_3]L *CtOtR$ VbE[zox vN'F"'EAß% vj_)wKQ1~$EzaG]HBhL.](s= De3\DE?Fb.{HJ<_+j~Kz}6dMx,t11tv d Y%MS;+εX1E6$vMLޠ)/'_a .)UMݒrQȀ   *O(eKG\8#+gZ^'0e>GB᱘F[4a:<Ӧ}JKf+ iPg/ 0S!6_/Z؏- jOsqظG=dSfZp-waIqXnI7+[Vt'S>_K ޺$|;U62qIwbe!9bڥ>mV{AVCM8-hϣGe/YR\D>_s&ᕅKyuLuR?ᅑQq!P3lJƦշ/#+`]HpFnj"aﭝ ݄2䎧{OOj=ԟ7 #N~FT=oB嫴VsC}1oRgyu@]BL'IfӋ \rSU_ ; [}o5X.~8稥G;3}E6CG/7w˛ɒ4yҧ0I=zPBpdib(%VgZKfU?4*0@ /qA) ﲾԁ79 {L6rc<[sK`='ˢN)._0oa  K9K +'* ƀpɅ{:)fUɯ)ԅС`QAsq@ƚ:yɻ58*R%rYR#V!_|3P.+BۮQ@O?1ɲDS\avlΏP*d<&g)W_XSM =Hg.Ǝ SDTc2gm2;/#vXc`}Sl38a;Ўj>&V7,@!$[ =ԢU\Rv'X3weO"_Gوa8ՠH0Pj6*mV+fO); H+y/ @ё7!~A/cLDے k)fu̻|]m;~ؘ,qyX)Sk(s IIqDS";,{ OʪNEw͝Vhekln(LFMz ZV6-IJi-vj,<%ߣxSi m2k 6D, [mZTt9d9_h+vIݭV, !m s^ljN>N5Z+;w܎[C {Dgo;I>J~˕&m;PR">aC|8Ԯ"S>: ZFQK/ ]O:vnFzww)1o;v &Fnf:f?<{_H܁SxqMS ,o@2SZmpNy/7VISL7ш>1\AWbvn3:2Ż/żx=x(8݊,ȇ>)ȳHNS@G$PMƄꞃe}n՟¾AS ЙYzb[D \^2-2)V"Ld.ɓyЂc~ߔHqm(4@1{&4HÀ~wG"ɰװ #NR=MuV\G9b^,QQD 2=9|Bx/OK۸N HIs5hXYf=d[PZ{ӗ598E4`A{'qk$};N?+cg$|+sRW'LXT!kZ;0LaJ;6=c!a){( . % ' cf@BRƬ͑4 UѫvN+ϲ[?xY`8.ުBa5{vRPmJ0B`۬HM89k@JL\ p!|m_{Hg' fH6OzFt :g+TlN eg oA,u:Li_gK 2>=,b$M/?S\4BjJu؅f_UJ j>oV@Q5(44;kзܗ5$ԙ{ +eniӑG!ÌҪ~?hGpUKyQg5^qܘ7?h* N2{փw}@6:1r4n> 8)06QQ eaXKxnW^XtsFMchd$WVlm>YUbdoč=D3Pa :t]{V#NŅ6o I[n+T{>#:M_ZFlVBc^ Hy<lj W3|T#Pt !!z4|^bZ07`f mqg>mvd:!v2W?kj,zkQf?U68vHPbz?TK/=7v삤81#hW&JVums *Vn7-Yw] 3?aDQ}~Ѷ0Ųz 3ҁmZWԍP~Rx׬Q-Zod{'Y *a]ZDܲnBEԖV6ioѧ/e\_UFvl'F`6@RN_<*>caZZ$:jEexC5wbA|>RicAIsZNCUb%J8 \QUj8!ק?IAjNQʍK` (|Y_D8+.oiާDPH]rݗ*ڄ`'Ok+Z8}4*:>ć:%>|XWc cvuՋD?51́}i5{|mٛ vD8[yEk`JA[^Cuj 8y.\kŦD'EkuD$ҾAIǏVI“ ,(36DP U3<%&a|klR){%7Х{}zHr)J kG8ZU1!">g^P SY90 ]p' - OVe+bL݇K@2 Z@/_3yC.%:yϕ8*MLGܴNR'5 Z?%|$9[۠jwGuV)NLJs/e2un։f-:dr֦eŀakG'3w ;%e{jHHi{}L(BLA4kk벪 )>p>ePQc*1gS`1 &|HUBy *4vE6 -S t%t⃊jvR|W*P#}Ɛf|1]va`b|bŰ T29 &ͮ#hZ󸛆g_]|K9?&%MUԭMXk qc@$SuI]g+0k!/"Cekf@ +|cݸAnL*)_D7zK3E윳q6ܟm$,ϵɏY-sI2=q;r0@ 蜖xez wkp B6gX4d#j_w`{D:80*5zݒ7 OyF3RJͲӮ3v/3b|2ւ 9HYwF8r!X2/ٽIH Ew:#$Ҏ%+Ib?G]b4'U$ tH젨Tu%0X]֋˽d\ gan=yeimQqE2H8rGn6$lwH?E,\ش'LukCY>ljp2٨1Inz!h} T3/fe7 ְqqD[C86V*upMIXQSv Tŭp?Uv?5?4#n[@ ο#|OӫK\N{uh1t ^2 5gk@kR!R˽=W ʙ x#FՋ+*"ZŽ*u#S,ۂ3S]9&яܴf:_H6MT%U .-Tg{ ]ZskwX] ^eF K6z1=  X#f?]ý5D!e '|Ǻ9YxòU1& T4inO)vs,)孽C<$uԅ~>D~]J?2kk]-jE `ܟ/r}UATk]>\)SwSBr2Wl5d\*Ř5C$B57;\ͮȐ2t;Ъ`*b'FVU&W|)ʼna$NG8 Xq: 2yLXBJ$Wa0δW|- ĝOw׬F]% 3P;1DP`m(f~{O^fH:8M? ?k%[A]ppZƉ~Pg+g>  eA+2$<%-zQ/ ,m1E gYڙ2Xlfh`*eV\J̆I*8 ;ϭZ9$6|؋k^X)swf0Dg~PsxûΆn*U9H``5]TIvAj)?ɵ^=Oi(취x% ̑'B̵rG%]Ȱ]7͠e.Iz,PsQC5#j; QgCK!}N[+>܋x!$$# "2?1&sEˏPIuy7o oljBhc$=*bCI1L;G:xשwu"Ns7[;>75x{~ *Jj,RG9)5vvP ojvp+묑$Wo~ʳpbd'yffsqkDM;rQI:K2>k ; Rl`SBbayV gY54{%<41Ig=+QtQ?~їIbE ?T~H.`I7?20H]Ae30+4r,Ksg( OMI(Tmõ5Dk~phbY Mh2uor,.(0hgnhs8 " ݅{z@EʫCwu 6+Ӽ,\{QJymO`7atI4\2[e͝uGlrc}M$L616N9q|ƮFL/D=z2P|ІD!/JɊ0դzNQqw2vP/ZHjŨ;i(jѝU<;u( 79FNu2(d2Fs^``H\MEw|YZm]ܡT Ţ7PWI(Ft'^vL{C/]!+z9)ӻjݜ&FgS aޕ EJ ~Lx&&IЪ;fDz]YV]*"?7ꄚ?_ #;IY4W6A8=MթMY}yTLhK]BmN;?E$Ap­U=/ YzFOQvc=a|)ՂiPgVj e2n8z~]?lZSBY+<b]7?eMR+&wnhoGy!D@u¨ϕ+2I$~Ja{:RDpv wґ[Rѥ6J,+vpZw"+/ /?Ϝ~thui֥d~?XsF;x7#<1jt"i6|fLBҬ l!(/AP م[IoCKݥJO'-v++ cͺDjsr|{ip6t6D=IEX:hWK!br٦< (5u &ǥA՛:*o8{V h/a3zˍDiR:E*QO:q?R|B(>mZI13e睍9dɍ.A5xOt{qSdN ς6fHelCyb΢xFCt^G0ʟKVG3{Ma{:c_ڙ8`1`3v,6|`xjR2QRnҠk8PA׵{3v ]c Q1&75xH 'bp}@]h@OOL"^%R:;d|>Y QAwfA]ooڳMIohg6Ulʣw MSwR\D%P-i@n~2$R(S"c)de$Y"==18c$]u'ۜ9ii͇$I>NOiTQ'|n2zp=v=;c6zK9X^77YhD}րϐC54Un_cCQ[tֈ(ԁaM,kT(Al`LpPgyŇ$/]Rp*{+2׉dILOcNDϹ%*4M_BL#>:?^XNzc&b)[")bY#` VLd0 7 }njyYa? |PSH;3lV hWϧnpWۖoy%wҨ B8릾V8džJP3&FRD[I{`ݎ/aUN -3d34$}O֟"hf/FP.UU?iz&foD?KFyqBn%EY:QƊNaC􉆦 ςx}vN^[n^WCD 3S2s`p!cʆ&ڠR%okz& yگ 焩t h2EMQ_gmQR0wJ+CP&}ȑH-3eM/NGۮz 4SLk<6m;U 8+1dHr_cRQqwS25'k!٭~zL4b>*;bg.T'W׌;`2W.bF`0`6ػ>͜yЄ"Ea.Z H Ul8$P<Ϫw`=$ 9GyeEBG$)4$6#*K4- fp{rw֛!3)50h'FɖlICQִ0W_g"?c07L?|^q[ԓ(g).aNT\͓}o3,Y-dʵshf8ԯ&'XKeN1 !IߗGӎēkl /`47;bwHD(aܰ,yz{&UddGsSYSHK]#ڲ E-.$e/S.܀ BA#V'?#.w3dw-M{CUUGsoRmgK.2B=ؤMluE=Kf-M5r_C-^{7Z̓lC_+(1A\KCjO0b = -q AQw& 4% ]cڼdd>@pxM T,uo-/ Y*w+ ۃIHTmD=$b!|n-aBҕei~v6aHp(ACwۨnf5H+C >;Տ)3<.%t&Qq,h92'(ZPFEnICbS){ݙ6WecZb_zE׽r$3,e'" -=H:в RGM|uk.g $z鞎45Uy#Tw\})ekD`8d$G[R@1Z<20\J:2FYӳ@qۮ c\0BOIb `-m偘0W)< /:ϓecb`1"T_34)[?jFBeL+:@KیU{^АӁ2eۋؔ>,4$S%d\k}~:Ls"߱|7]T]G C70ڝ]80<{N/|J}x 78BE!vg6bRIx b<(*;UNcp0 f% Z|\Q#)q,Kb1V»-!.)&1Q[N%<تШ/!Tsl5dyΠ@qi ]RG ubeE=kev[We5Wߧuh8F[F4 شiHq"%DkgE^=_He<4́;F3>+#mѠ{8qC P8n8hUQ%*d\_peorF(n"5ȄFR`=hE~h=bۦ>F6 [5>׶W'O?40/JXNm?ŦM5،b9eJ aAȸ؎$sf_h4 @]^WaL}(9ԡdܟ~6b[H$@'b$ OEld7It% %DZESglVR"0=q Zp+$0r|qh9[K_#0-SsI b9|-ǧqa Ϝ _`m,_'+ 5]9^Yvy 1[Ӆln/,p+s4 ?j]{{S=:M)ז)JܹLiO+tÉ%H%t>1~gy yQ^[9ЊuMm7s=6]iF F^nXjUb3)86߿,ňF= 1uϼ~92țS(L藔)*uHsit -ygcLf߮W)(ֶ:1ku 횉XIeq h^fjԣ>uZŧ+\B6GiA|1:8B_C+)cf{H~ڥTڍ) QY̻tg_0jsU 7qU0Z3Q=[P'oԌ|pT9_Z]]npFqO=lfj<|iMw&bEWjޅ{ ޅRorTA'96|(ԀƆ&0+UyB!7HvcH1G}_R nBH!:{뗊` T?dW5BN!c~\pC܏[X -!^ԒzV!TNknGP@, `c|j ,O*=bkr'a,;ҕd۵'[8kl8z6ynC7y*Vnw>>'F $z[3 /]JMX#OPUJ`/v2]f.+pAm!H$8;ʽ.=x\gk2!N>{`P3}T|r/ g0d`}tG0D5b3Qڛd^Ǎ*u[gT&ٚ)@N&?h,y;H(CǼ! "m(SZDTvr=ė5@ſ۳Ts T* HxýfW߮TR.1X1A\ o.=)bIO$6T8%b; qyCZhxEoSd/:w&$ܿi(5:Ĥ^D=f&&q-ժc'c/Pu5L3M4C$F JǵZ .:g8ڰH" _5E w\,:,H) ۼj{jUU |RL A8iE  :j7oh5bG=’[NW7&֚;Bvil)Q>zLbcKq.琩?өtvNqEYW>[2;GhPԛ%51}m l~7Km z؟L;'hSۣа:ޘ[~ }IJfß[Bq'*irwԵe@8EmaG@Q u!1^ۤ9X`mtNX\YDʕ{Vh<8iŒ:9;kf?oi[áfΩ 7:~^r ~KD L >fj!S:ub@}`ºU#8p$o V Hӎwv)QLm%(9R+YJvbxw:ՙiYX!^߻[{nJwȔ[;6䷚e:b쉱 4Amw]ۺaU&ΕvzdAa;G%?$^Um}X'X=cZlv*@4f)щL$ەCעiuNC2pG^co,H)p_kQ{xEqgz8"l)oNŷɹ֮H>Wa䪗l(oN7*B)-;/"y:s9 7&Yf]ve}0}QSBݑ녾KV'(C k&׆ oqa8_ϘfIVϵvNW}"Gі=Ey|}; E4vͿ=~Q}.l9QWpa JP:Nnh!5q$NC&ჵ#!̿#A, n|T2c%<:RU"sD1ޮ+>J+u$+"S\j+F̟uTjgc^@ANHq5~f~ZZȘ~RX*@'@9za'_LU\RcW#$"6h#fԧ5ܻ:ΚНj2I𢡄COo~$Vqkg_/䕛z#~7P%B]K'.]EH:Hcy3g$cۂmfu B&bsxcGv9H ː0 –-# 25;y+v#_Ii~4KI"'8oSh><^o`0H#@趝*ɀ)ҹ&_l$];H$z͞xgv$Fד :1 Ov1Y/zl}!iF2X:{h E68;S qA],_9sTa4Z+_v+v%;I"Ym{(%o|>0˾))$aȞ^«w׋+dq  S߹ӜgzF FqN +F 8uiEόXpo→ 0) liPc&17]{LFgURIk0ʜ#臰}ٜd{z+D.k`[Βtopa80壪!vO}2ԏ][x!˝Tj X"ؘiX~K^鮇bA rsxHKC%k'$1Zս<^m1fC\ …f]B6hm4s4#(V PtޅJCM!/ĭd.^iZ?mH]O<3d+X޸հkGY^&tQ$}xl`=Pw$ z;&೭U+k"drPc5\ӽvj 'I3zi<)?-/FDSͷO>"[tZ3 (Z8?O9Q 'HdST7Ds$'UM8'5 כ}K\1oU\fku]AW GOTOPڟ`W9.G^PV-Yh{l-vZ̻YU=AfKɵ+ ya#ӣ:#1mk+X=ffP:. >= Ee?gT|I*k$Y`jI#AI{?6nAz<8yj* #<=q}UrAbfbۣͩxV2\z9D`0n8סfM gw%:Z 8cNHPf?О_mV*Sn륹o=SFg68E:F3{FsLވ ݻb~xRt=ʟ[Xyxoyu~O`,VvDQC/̖24Uٛw}nM! Me33'ĎdbN|rU'1EEo$=l/yz@]xOL^*{+Q7z<#=צPL~01hЍ٨gid*5Kz)ԈD4zdg2Ӿ2{|On?%rdn  jkMd=YyZʏ vtL`[ -lϰvb%\{( 0 QXmuƞM~]|y&S"a\|$d4T[o19鷿"Gl 1XhƸ{=|N,tɼ7%]~rnWC0ubh2rkΡ*mCyy؎J"{Pe<:}7G%J_]z.l9[ cW  biQ\xo> 6V0UdޖsObF҉0ѱՏv%Kک1}p'rQ*o*m0 ƅOR'7r}$$[߯Kw-^5\Q'|c]tı+EA٭n =u1bu׍  Xe긪` ӎ9'6@y/P: )&3p`I e S\i2L3,W Y߭f| ]C&[ѩ=@Tx(_9S?l6f5DdФ4EqVgV#.G{I_)2gQ`I5KvD((a2ga AT:y,6I:.gշk!0MnriZ7_wXxpCz-ex3+,B@ִYqk|:(Dt&13X$sSq*065%mQ!L"q<1h Uo.ŕRj`i &l 9lǐ 9eZ?R\|T?ˀ2ۯ&X'h'#LBrIן685H֫2mla tcɩonIZVE}?ICP픏[ʗ-O=b8n{4CH~r,[A@Nfv<L["}qRQB#kU4 ћ ؕ2B^36WiXfN=ޥt kq_@lRu5L׭ǩ[G(Ϗ#!0gD0vb_o.ZG\Aa %"v60`bX#@'I>}*jdrqa'!Y3@8Zj`MLIKeG4T4#Y[5Ihīǥ7Ǘ&mEaxmh倫ń!@0n-wR{AwCiCpl{UR`?[UFhݷle pCbV5$q tM53n8YXI#AZqt\XՒav^Jg(L[ͫӇ~7 P˾ٱsڽI5%(";CL[;e1\JR=.$); )r"2HCuEco`C-F2 >/qXFv"޴*ܗ]H<a|L݇KU郠^@W^z9XPgG,/QhUL' 4':̝0k,@!Āby?wO;=rC8ͤ=yUK #BZ+u3o/v4ibzb‘F 7=|6e內HFG[R9}) qw8'[c U.$cԽ2aRvܯ+k5u{&%u OVM:= *!K4FuSۊ+MSsEs\q6P!=%W2O5I f:f}y.DXR: aW;n\X& ,Kͅ Ukƒ>4ji$"0 0Դ8{.sF}]KJ Hl1l4˱V85G%ɗMߑCFvib)F;5n#<^et5X^KjAf_KGSc0" S΃4dxAe*$%sH޺u MPQ8 l3/Tw#f< v{v]/vsʺHM/27%wpL{H`8ME/+UԇܪfX/cn>HNcnEŎ9 a8149)\zU5i w/hئ=#H솧Qd g3U!-)گbT\?` Nbo+bWV)QFJ v zpeJ^(QDC?sIxjWFر*7EXwnB#?R@f#Ep? H;4uIEvJۻba{::ȧznY2fܫzDnѤ_20N M3}rTg6z.åv^G~d&Jc=r$YXI51\hG1efO{/_+$ _V9ִ,E/m!yGY'́RYϠ[͖Zh\S1@ދIХ)J֢J;U4IU@ri+r^teT7Cf𦸥Tih@#IYܯ?zc n9}зh|4|5 g{2G(؃Ͱ'W}r+ӻF M:乡#gĚ牳wbo7=Z`P8$nuH !l K׋Iec+.n!aG9^nV-̺O` K8ƫv:#j^yܬ]+/zߙŧL"V5*~ Igy\V[` [;lG|x"X0- |?pdkEI3 6R~PN.Dx:>rx!/J!.PGm`_\qltPnv;l.Q+@z暝;<WS7QYEf>nOg-]AWBf,t]z9Ұ{gSY/:F#d$Bo qUnwMCJ8:ؓ$,T> ^*g캷ڶYDceV0hn-;eQ<3Ps`# -^twsVp4rp0CX93e_zD؀ΠӰgܢu$;e8P:> XaVdIǸuZKAP˒Xb246;(L̆4^{j$~$zaqo?JC4# %z謊 <5-ޔoU\ LL 6^5"K%g}^xcf c{?G7ʐ"OL 3(_x|} N2f #wCחxJ³; ƃxF0$UWEeGK[UYxr`%&sιYYk#;Iyn<&AU$J w ~~fZ'B}!>^TXIGx j>'p WCts^ Ӫd܃,e EH\[UmlWBa>F~G.~pa{OL1O& -ރƤ9(B~)iPؠx|lܸaHMh7mƍ>,HW bjӑe@ƕw' t;<]h*{E30I~ElԒhjQ8ڑMtg'hJI]n.W(6SG/e+Hq0Rj:/ ~R?䑎ҿ'DRA3@PLʼnkPNZ)PdvĦ>*Qmni%[=b`w7 ͿVFOSBY|;{жG,4FLޚ ѤZ}pSXJT_DSws" rxD 5᪹l{R<| "x;(kPRB]鵻!@4@j:윗3-Szi2=VU3YN^ "٬FEj+ZE<>F'Y>![\yNf@}~91fw$lT 7<9OQ,]-LgM>꯸lU&E((V9E1oBz=i3i~4@H,idwn]s{'#wx,r%0*_=-޽4%v6 Q2;̼OEȀ\1eqn01)B& =Mdczȿ4 _}A+K߱d wMy@_]X7AXFT}3Ӝ׶pB҈(mPҮ9C:@;X-ofg:rʴ Cvz kwf~&:o5V@ 8;ڜMQ#L'HׯH)]* >ԶNuOzXl"O8YMZSj*R|q@Cv b/A6 S,aMu튼,JLM#OsyVY,rG2v4뻿'UJm1bj u68j,(7FDMz{\KDM>aWu  JU˽<fBk+v}}lNXq'D, ;db:aWğ"m؁9DZӚ{w/"9( 'ڽ޸StΑ< /5gouQkR: υ)$_mk XRVѕ Otv9- *Лvoʓ;$Ɣ@dDnd/^cf4σX~rӅ>i`\qHs͇~#ez#\Y>l~(2,ڐ@VhLD/X.=-۵e<Ytcz*/3)O'o|Pa(i;vEU g'X+12n_T$V`n_*bK z*&K$N_›^'`o#\T8Si'c'.i}Ea|SLمU/C4JpjHۡ:WlT/0^g*]&Fv*9wpR%F6M4|w<ppξϕԒ8n`t޹BqUVMWFޛD6*sNx؎, nG`hob}Ϟ':d"J )^ا.ť}lTAp^Ln1r*/S,+Mg>mpOX1BZC'ӡ|Q87aWu9ޤ0(ƉetKұy^vF0;oHb0Xx$| 2:)KloYp(\Y}N$4|('4q0!)_RRp$:h'F IګY<8 .`xΩOht]?eIcj$Ib[R0万aHR<o:0eI#-hNLjNy@o79,:UM.ɼ tW@w.j!YyY1z]!1k͍,%flc`/BwãazIr,B?x8hI"Fw'DHJWjR:EO=)Fl[/- Pu73?IU^H$ܾ.16,c#qIs~blSS 4HH RRU({3cWs?c,ei.+VV^>LQ7;| "#i'5V\ B_!jqG%OZe$`)b¡`3ɖ;A3wI!p!XIYJ!Uk|"Inql#70f8.$n| l':6/w%S|: Pbx~i Z{//dCZ!SXEoxRδYcV rzG:Г!\tG1peMj&;Eev/lJSiq(CJ\KWy'WLYB ͧDr8n}хUyr$!nYpMۚRSCNt,k{P(DLJU=U0xr/"`]6*}[ ^n(%muH֑eQu>Uy$Efvaq"V^?|EAL+P)'xh^Fݛ8hMXޔ˞怚?~z *4! NF_8Jb9oOЬ*CfѮxX:&O0z7s< q1#$4,. ZɭH!Hfk\DQDpػ)f:'^`~Twi}q_dž2ͷ\yS+FgH=W;TwL[z3VƟQbF/Ii.y PDTXJ&2 T϶eSW0d/LFb\v;X;:wq/4 {" -W_ Mw.cGQi@!l̮-MȪܾpL+YQ UfN4r!?{VF+jj{܏2w A6;a$̨OVbH(7bN'{¬?ܩMi3ugJcQ&vU"N#|#rﶺ4l8#vw{fg3quVTd=<%d>\ʓx<;ޞ4hd)gwa$Nldfߺ*rvDpҧ+Qg-1>i=!rfK߹͋9`π`!zn WP@h=ih/ۜz)6AHʇ_bq)rib1!į٪=y2z`Ax5ܺQU^'{ !qfMoXdwӣZu &(Q*U X;`ن\] 0`:Y;TYEDz7t{PT̳w5?9x2aҳ+sH:%\'sA~fAat BMy]w̅ I:Ej?$Ʉh'&4D C]XzX` _35KgjA,uV'㲴P^HJU5_l5* %FZ]cп n!g> L(LzYƍSQG⭑AܯSR]V̗mv(;"O y>B'g`Ct$z&Dac۪XBps˱GCpv]ۺtA;[/EVt N|&d%{Dq`ڼASCgGAuL~8ZL0WgL0xqC=ۘr8ND3QoF^B@܋1Njr!3|iMiIXCK[iw]6OUǴ ݸ/Fcm1Q2-;qkoܦژczF؋,Uz`׈,wD_O3Wڎy#m8VCWJP ywH:˜hrPۑtu IIe"jJ\i^V%SK#D;6ZN}J&e0w5bT^V7"g񭹶oҞs}l'WxkGS([h[,r`BX^q@(f @LW4\̔&$?ES eu$^>7%2T`'Ԛb7 4!6Mݜ ?^ſb`VĿf.2#!ł[9~otU{3ڀʴ6NV{@41$vd40n]?~z51TexD/jq޿Pys?‘/o݂CØ"ftGz+3riQy<=UX?Ugrꦾf?Ҕ(Qm\~-XwMGhǀzi`,&R@^[|,E-LU,/CM#%΄;|U`ϒZ  VLq_%΢r]$O cUI㎮yy8ˤțs37C* G,ᢋVAa X?~nsޮ(ݲ4{lL_U /C3zmf Am@)WԣӯqDڇt DMDio?aY34 "L3~U/~?Cy $UmpQ$X֏Ѩ2l}Vo"l;z-(/Rw oMcӹ[p(yt>k_ܹNiĩi,xW\/ԟ't^ 4cj-) ,!_UpU=Eɚ{e E }ㆇdi4V7yq[ܣƞ]EM68kğ 5\1#!KǸ 4{nfg5F+CE LXp^c:=Lv$MTQEȉa>ASCqx田)ܿꬶ'LIdxOG|P:e4Lw$ 47أL#(|UAY4_>j:C{I R\#2Uh ok^"\r0݁uUIJm"/ E&+S 3Frpr_Am?b?HѮ_Ƭw ťzJ՞iNy, :&_2B‘|[bnpxx$1P./=P@&53G߷I;ʼn`+ (y+"Gom*?$05*qzW5i8u˲$K^bx}P, Z^<#Ok3q=PȞ7?Ĺ'sqt bZQ؈4"E~0,"F6PĂ nRLI F(#Y\(r1xinrTKyNNQeţ3$i7wѿ |?ӸTcx3jSSsnijdh|Odi<0T-1گ60CZV V B9O|A)m T ۚ+9ԍ$*jIhP E]R3;?,l"(ĵ7Q{|(hrJgq=k|TOj#Y]2>WlYG)F*9Bv> ]HiEAig<6ϩe\FΖ8zfHfH>bym?_}Tc=o q0z4W9(~S5FRg2nLt̂%^/7a&X j TR5F*D7WaUiF{Q(x@=O?Խ Art(b?OYԭO> 72\ʳ bвj+_C{`YorߔD P'_q?;sb~<\ͫ2IR^@SqjQS 9SFy B59-hYid=Vխ7;2)ZlEx͘OSZ$tZDl)KV̙3zK]ɛsOMiKM `" 6?;.8~M*N1lsB&IĨn,h|Zb5pv VZ#CN"Sو&(Wj8z.U*rD?9Դ,0^2#c3P[ѿya؃:/jhHH1A\59XΚ %>H=Bjƌ_!/yO2]q[}7wtJSֱ"OS鏀58NKrg[^"ҴLƼq}%5 +4,M{6A^»V-KlR[Ik09Nqҡ-{+sE51ejqQ8|HJߙHo:;.ʓ]j.8ՎJțX *Tb{G o056Ι\Oey:2→<*V5|5wӷͬ,VZrH+M:˶?e[I4ӖZkSQyJD^ilϸHι*x8l-?5>]aܖ=(tZt6ӭv"#,'n#r*@H0nQN#Uej8nNRrZ*/|+^,kM: (L{knlڛN}.BuzcjJP7䳫Uo!ڡ в1V~{bSǫLQg##̓RvV>r6a%o$'-/Lnչ:߾ BL 6@/2\XaИ%UteWXrL|?V!l]Vv-CJϋnW} :twg=GE0u1rzm+(?ص{~ .welYYxY <"^!*bp5U:l$YAUsL+KޣRDyN绮g]fRvW|o4n)q%4bTǿ ZX῞O`k}78?"̟>gLԗ3TP 4g߻ {o?,?W>/!ז?|něNbEl=4}viAqaoBܾiTJڳŢ]o')d&1[}Tzds$n$bЕloQB4Cv2jl}>_!7 K֙Fd]@C -6?Jar(KcULLjuhMC#\FY((RHV0ؕbh}J TNs$v͓ZZTљObZNw1=@ea/Aq7)Lh7uBhlǍNc;OpI/ɋ&y |@pqk.Z52<))-=XEJ5Qw2]޽QI(tXxPyO* ѢU«9iW%)=xkSA &:ߗQ{֋CS!_B4|>ru05L /_ZWZVSUȋ ?fk^j,[=i4bBEDe ddXiSȾԱgX4Q~héQ "Hj*઩ x4-k_*inG+/#G[m0%[R 4Z9 +=䁢 #- ?rFmN<nc*NhB/14Aab6LФs@,v^Tv l_5y1Tfb~AQbPN%RY0F\۰Uӫ$m(޵| O&hjt¥jY$Gr{JbhGE3\ƭ~gC)   9DX3*8!'JK|[I@PogCX%S(8!ՏȖ&D/a]17\݀gTYlbDAA.,Mq5ҴIڃ uw Se{Έh#IxxWv^>uj)7S_ _*fE40Ѫ(-<5JM! V@P0u=Sw?ޡh#y&1~5wj> R+_(¤t:gB Yt_k2ވW>z񵉀$S]pYRuƺ٪[<rnC.ӇS_/˜VPR qUxt!dQ%XRminCЁb25]0r ,+WQՈCYxk>AIjO`Q2 ,Vu?6C+KC-ٍ._ bxTH2 Mk,apZv9$P&g >ˀet]Y0oP49|Z$YEEV _wFO|1ܬ.xՑ.'IxJ7vpl ê X]08֘+'υR 㚗*> ]٠Z  Q0^1_ByZ|.ض <}gB½`D7%AW "q yWk$u,SYi\^%vXZnnZ/'kV5vk)?h- ‰ ٪XhyhK 'rE?W+'H[%Fm NG}U|=ӫe".\ Hak+KЗt},a0{hH'2&;KD=]vT8Mp!:.#(3P }]H8XVb-|}ȢǨN'ơtd6A@dZER1V@KVp҉5%8Y{  O`?c5@[J{r%c ӨxQqZ#Y~@fȴ;oހjE)#kͥ!ukaSb项qhPm} %>G('U!qf(߂շzog3rAA^wzҳyU$iKԜ+ xhɖ꜍d经JT+sE=,Bf߇3]0Vo+Y rcfjPo܊ RG^nCD<ָ[\XqurCyj0}uwZH`MX+i{S7H f*Ua] 񱺔ցo?@yG{> F3+G!Iȥ6XM<0o#̝xqdpof.*TRq;x%zx"GS0\:FNhR'z9:5&R7ktS~-]r2B`inm*qaNx6B\%Yz40`s;O.Az?+:ZH}=Zɷ8{as|rH TkL "|f㉛g)j#M)gD ."o+?1Ġ^@ﯖřY8  j~v?q!yeݠ74KJ`>TMNTM@#]]?[*'$Y㟊O n/0aM Z6GD[YI5žJdljb+8aZL}8 RLX#?<>SQߖ Ü#MM1T0艖E~'CoxsܮΊZ}tr赆.J=-:/\pȨyھR0lu>oF;n| ͚G]]Lq~G+ɰkUvB p"}%2s#l@yC2)S-`2#l37LF_!&s6fůK -mML#SQk'8FB;VFak0)695q A\Y~bl^7IM'F`]aISV{܄]+՞[Lu]ҽD8ݨ<VqK1eSSA%0V >q}4909#^_`&q#\V4i4E2N`qZ?4+#5T6'AӒ[{%`SYֆ8_H݆Xh)?GzT to؇b[(*jǡ3h#NqX|]0 ?3_Бi,;8`NsL.C̱.B$7UCF4^fG:sotdأ1mEtcVdn:ƌY~؁dUA\mx]ɄS\B3HWXF֕j9I ٍ1:~|fƪaî2r6Z9G$΅SZң߻`1.-G|"DVaРnUү$k=qI(dܷb#Vd?|SP,P`Arty8R76v|x "ٚ4t|. Zf?'xh(`FƾP[F%OL(mgG62G 7-䟮[Y23}>IzKF<ʤy}Uag'{J7ŰwG Q/C0g?_%kGVu좆Fx7p(ij71?\jWgޫՆutȿs+X'Ntcu$>֨Z5Ֆu%.AG\~[=EK`xeᾦƌmx=v\x+ypb i>XkVAAߣ'};"ƥX2nXxC4uOv%-CoY .JG"σ!=nZwm/a3>DA^=bfa\~ ,z`e1^ &_tLRiHgN;.w ӛ64ݘ< FWĒzQb)J 7F`x 2J:\|rM|0ީ>: 95B=fD'5 |RmP︸4tP/^}q|@;-PM|uM(_WӇ $i30`\F=Qr15TgfM1+_'LHަJ?[o4u`݄萭kL={~ %$TݍK+ (k^{ 8u0ݘ!sLNlv;6s̊" r", I_XIv9Y])Eߚ=/,>8*ė<&CS[}Rz78iD d~7uؐ~È9%=TI[Jid$s\%R7$S>&J$p~bs.q8n#:WsuX,й{ n齺C"{~K"m֨<(RЎ'LQkulXpc"dPW"\ iu@' =3?/3dE׮ׇ2yi|Sw!/t%_!Qf`JQW/N2[kMd#oIY[UOn~u&# M \hXM#ԏ)K߂aB8۞$~'[-\,m\_*E:2 wxtqYSd+o`lJqB=x3uETsa&Vv2FKz2L'WԩSQ&)k$$~⇾=b EMM词HV1]w xenݸL"Q!b LX|@l?^Es&T$(y+/8DŚ%bce%/fN`t Bv4u+IsrjB\*ҩRBp V쾺jŷWad<.!&,uվޒ@TM?4 ӧ'$_ #b0Y5^dp2c][S*t+k/uX@|$h9,߽.$P nep%aoJng>3pFa—ϒ4 h"v *N"mᢲ:^,?ua!@@@yY<6)y\fK7!1_woHYIe┱ers[?* .yAoV|RXXyEqjg.c>Wi +D !>W|~Qfl€fJD؆g1Aړ}#`8@ƛ#֭H0]h}iIr}ur\"2g =0nѹ, XAS0[wh9R韮)@V|+&ܛ[KTb*.TW33~*uz1C޵bIv*oD_7^}:Lt=,g.mIɐɨDt2C{I( :03LJ~ gzt7]]ôCB4J5ÙPjӹԏt9锝7ey*,0#UQ=3\[NHAsn8oiƵ* =D⬋M܉J,`@Gs4}&FVoq K<*9}uRƻxl]HuB {F- ?z--Cg+ɫ6J5l2(Tn0}j:\MtMZF#Weݙ3WXV൏JVxeYcnt6VixknY㡋#5m铬 XkqQ &ȔXdu`Foޙ==ӬV:])Pe3. ܏" b&'(G\/{sSX5oDdR,*'s=T%XuU-n3ɕڕL9`R>-4,@$[ FUT)d/*yߵC> s(925 V@N~e%n| :Ѫ{ >]Ν=J)]37[en>dW^hn9FYo|r Ndx)d+O 78mtTf`\1xDp\ r Q54Ld఺#$K]>jBEc7IopV/š v`I4P6|%q'6b@sk#Ĵ99@Cau Vpi;"xx_Z J1\lH VyHB鈙%dt{/Ѧk`ك+tLc~`ykv.+}?9E/:9D=t5A`xMoy*g"X< Rmlxr*@O|"`"f]΅ B{"LtSWrhB`SKe;\mX QpqI7t4ˣy6j2frOgdzs|P4~,~n.Ѯ"q!k<f;cXes~"&a S60`b4%E},,jTUTISW-*A,x2v Lgxt:,ĸ>2nvQT?ҙKd_ PԳuFπ⃥Y:ygЬ&6=BA·ݪ . %|sIaNNԏ,FG7Q^%m]Ij#=<5rg6 U Wbտ0AL[_c%<*GFdGa)=)\^CHl>Cr@`6z\ukγǂ\ X1w j3W gN=k~b'D91 YSz zjh Y?j`l~Yr^ÐbGj010RswN2qGdz|@ EfX p)$"ԙ|7C%\]Ig 8ЕPGtB{\JJt:NX؜7zu8_Q7MYyۺ oW"ȓiB ɞ&xE"V=ѷ`*e2Dxw; vA*ZZh2/I1̒B:׈V#G*@ΥM B+^`Н@i @ECGm&:'Ov,'oHjɤd>&dL':|QXϦVn09vLlk`Gx3jp8Dkh&URjݳKG9\iD=m[2פCՙ6+ z{kL Sٽgkx&5h/(_ݙ7 - o_ec:b^m@ˣEUT? ͣ'81imcbMpzo8/5"Hc ڄ/:ʨO|'jo#1IX9ك ;C'?hNb]AV|!3ڟ -WS ߸|y1JIAGQ:{9ď| YD83UF:Gp/T؄;/;#Kg[JeR+LD}J9oJf+d Rw}35;mcɽ2Y(Pa!R:$˲ !z껥#׽E|@d(WΛ-K**qi!ꬃc~/,вfE=+daۈA< VV:W v̽&Ph!~[cQk?Bq>.ذ'oJیuXYxꕏv?HrÜxE'R5M!NE{@56J',Y_`ުanuA'GZ!|L@t/qЃ/}BYpÁp"(VI3Ի )G%nJU HXcuzȘMhJ7IݰC(PAZqz32K훓V7f#\bq%%_["VE{3-Ti߾ފo1 X^V$dG/ R\˟kzϛª'٨j!@ E$u\~n!B:v V=\ZzO:X՟V@p_Px47{gL4Ƭ2Kjl&E1}ԧ9}veC!IZo7HiPv0@NnuJ21Cj^}*c+~)6干߇=5Svh#9i-υLLuNX';='̊;MSҷ4\p`[}m`mgu*8i5$ }Mɗ@jpni\0)XڤH6w}*gIi^ZT@? FMq.9H(^?y#l.;’0AXG sc ~d?v6ϳsfgP) @pZk'`8c{Y|#D +96G | WWϳl;S_%Aݥن} #-va??LfTyC l #9 iF_3.oxʈ~b14#BBvAn1NO 6ef JE6M2k UEDܼAs#/_**+ٕJ)3r$'C& K='46V\A*˝u++91Jp,5MJ V{:J0xVZ9b32]1&B#fϙ:3 7?ɸMM79ST-yƱ#~ƚ?MSCr~l&tAi˛^dfo` xߔq#5aHmKt.A]Zn~v/. (ң96 Ð! -N_iֲ#8s@ E }u:s/^Mdr}m:=THnjsw*ӆ<5@_v`mo9ۦXS͍QKD)v?mqJ`LU DG&(Z6mӺwE.G_!9] ҤOh5cj1n5!pYD]ك1.pۺ_,:Y)S]`eQX(a2҂4 %P' HqBY\Gb,\TOX`sF2+{nyRwX`ǜpF=0W>c0Q\Y.e5W)Q3Y!M[8 qwԮ  Nn(L;!n.7G4.x0ԉ{'N 4dRkzIX^`gEK zjtw\yw4M!GI Zѷ Ԉۭ߽9=HC3 ݆k1 hвB%lj$I0 (s@qZR7C!d9n'r"E㕨Q8kv>?.NXRea:ͪO.@㙑8CCZx?v˭ %>%O&n+BT]B^*X Z IW^ zp@ݭWy{kbq17"f$KFMi3[|„;55?lJuZw`G$"},U_Ii|HbHXBw=7I$8J5{Nϛ0](QېHD˛&5=FPbrC\4^xEeNƺ:x#1@V('FjD\W}MhTwC6-wRiX=LfHIC7x驦\uf:68H?rhS- 9cuv0*-f~\p27;~GW+ G2t2W Xwi2ґX"z*(!O?AiD5lXp|b +|:5s&P]o"Lybxzf0 ,2uCgo m$:,6bL͐ ݻ0m'!@rzv]Б$lڲ# 6aUPl{ڲ0#rI07~Z\&hcĸD~.?^T@75ׇ^c!.Rw=FJ$wme7Peƭ=W ǁ0%rXυG~Moagݨɞ}1 *m g wڔ%nyEܣ/@ 7>DK2`SN|O͆5:C5 %6fyND B:qs)3 !.ucN^Z N4+Ñ-nӸߠѩTɚ[ђ16kDOㆊvz%lA'ӻ?Y]:@yf#CacZ77*LG@Y*ǽnaMM>]vR-^EFwҞsǾ0TG -LZFI?Ol1`#i"eԼ*3!VOaZ0V8~%{ 7d*Rm\E왶>a@YD/)-psu@;9Dxc}pn(t4L#'KƔ"9t͉ІO3Mŗ ^#p*Qz`EDZs WatBCHL$YVJBqlYܡ,^h!i0Ё;UF ?5?;gflT!2և!者iijʿzҚJ_f֛| В;t[=h].hD666! %SSeл(/@s4g. աX!SP&# Ipi*Kl_lSPҠAXՓ$5X_{MͯK@4 ԍrԖX &t;;m4K _S{8,B9 ۦ`71qݏ0ݢ8{l[J N j9 Bm}rc?{ك$^u||1#%ߡ/m6?'ae@ptZVbǸܜ3rP#A 7ߕU:v MYkjLu&I,W2F>*`BRs Hp;'~{ %MQhwKDs.!w6gGA@qrKZK-bӵd1d}w ĀTa{ p&e&f&ojxy2;?)L>eiDVRXc}\ztp!h$x2V ɹH返 |Y\onkgjH"9<#s$8y.G^Ÿnڮ1,\^!dU=Eٷnoqݖ ;*4۷Bd֌ їO@1Fn0KQH3lg2=̈Lt S';OB>r,ڴ|s!=֠ӆF^hTx$Jd?ĪOSlo< !38j DJM~35:`ǣ77GČ \R;H#5yÖ tGhUM`1=;HV .tyX}h*4-o.USz1׈$5"Hi*k^ ]8UD(o `獟P" WT2Ӯ gQЎm/< $kLk!z1Ld9q^䦘`lQf{\iFW_ׁ9c4x`' nAvGAMDzgΓMG<2 s[Yi`j־=s^yֈ[H*pR^Bla& Z5AepYj/yMPwzo!*3{Ͳ΅2݂kyB͈WDKNj~-}ŗ^1}I$hIX_6!I=S5Gq^&A!MdX/LI(1?nBs|Rӧtmȩv5ݭET"8L~;-*'L.{1)/!O_ʛLi$1{D+n',@W^GUo;kTEDw񶰤 dXlC0z:}^N_2X)[i3MUؙR:E*}[%XbNMA(Z!0($CVќ\)z]gڕ&E'[BۼXߎUhRnmYʫ4'lBƵ&Ea<宮jT3OH5ҫ:ӟ [Zy]A+a$fk<W-ty 3nFkbkiqyg$vV6Q8'ʒL?dUjP"Y gAI@ ;6EYm:ٚ涚++` gBug3kLv+Z3܆^W&S"G eE[t9Li%.LLmnw\SG?cS|Z͢?tfZtAYnBXA]a:ue(܀UfFHU.-F\ӺA{2cv?Xc=K\B.$SRt})ZÍ;1uo2wdVWQIDfd-vn= r"|mbuc@VB%/H_f xu31i^p_+U밎Ho3C_(9?Km KXRހN.Y&*4i) n*5VEPb.K<ETBU<r:hYQnkB`qM85̚hCCcHյPh qcQ''C'.@R,}*kQB3,^[De7qݙ&׭:sZAZw8 ؜|tөcpXGOņt@~F~Қe$7Ƿ,抢U5`9^g6KK ; L2x Z͹!"yO!"E/&FUVvgY=ƨQ ǡjr3n.!׳ cL:#3:^bیejftYP9*HiUVw|T"T& i?g5yfyts;&@)-o"zrtonQTu#a2`~`p@-7so . +^RPщ@:sZK(do(]<LsuێDdau= B@8j!>sfU7m:r_.R}h/9ڼ3RpPIf>JW;*_wi %˺<3@3mޥu,9t(>YtKj_Ux 1x鑷'uR*C@#o4H/'in_3Ji)0ACw$=D~b3]P@;sȁQӓ-B/*㜚!TcPTRR_àGIQX ,h/?˷.miiHtk0( /2DJ@a:[((:%A.!N^ὧ"PT;äY+Ӆ0ͿIl@%K-yqAi҃s;\٠ 48rLCbOd@`N hOهdؿ>e&[ 1;Q}KRFF$mP2NbB(-󋚶"+G5Y!A^’ ,lePYޗ 8L_pR֩h5Z=m3 ;?-.cGd#h _ !w'Icİ 'l?PE:A3ߴίi- m3<"^u=l[rYf:]pMWf؝5s8[.M;Z`J g1>,0!]>ڇ(jהm| ,Uy%D8ݗ\0q(}17W+b_{t\zP5E6G W}񛭹$e?ñ 4(x 5.ȬWWl5 q)T{** k`ӻ zW{AC(Q ~onEkF $&,!wQŗ'>9n5. D /pw=stzK]> Yr+f~}pAz{w:aQڤ8eB[k~rg n]:f˾5S„AlzoH7NUX b䎴&)d0n'HT<H<ߜyhI^li30P]'浳TLԊ0.eRYfLt^x ~cth 恠*YꪯFu/VxR#{5yWEuAiOIciss%iJU*"瘫=6 xBqٵXj'Y<}HP%ڪ@a񁊋bT0+f;;1Ɯ $+۴͑gRM8F7tX]YQP\u ןY7Wu3l%w(c%m\uBߛj;XY3}FF`C4+H]06(%?eu*E@KC8.3WN]O@t;w) '_tb梉ԅ!ȠqDi1oܻR4[CAfi#y=8`fnY<~[yU/f㮈?Ŏ׿L8FcAio673^dO2d2Pƪ1lQ3:lP򒁤,>f&k锚˂r:ɬ=KGʴ;J[9 mBQN- |G`ij/ߦIaZBZ#ܷڵ\tmVɹAGK~Vưbtށ([S${a~ei՜SyRk3O{Rd:ڞc0T2E㴶^& K=NOv 2~.dBeK<蛗{>Grʉh4-k)òqǙ2U?ҧ9M_}~Lv׬%c6>nJejؿajVw"[ B˄*^+Ed'`b O.n喨r# /QM?CJG_Pb| Ъ8z~ kyj,9]߲\Ҫ6F2t$l\2{ѸxB.(XUn!~G!{вd腦s/HHO=L~iκIf=wMe4VݞJϟ5M}ɏ[#&h掠,QI'648wE ${|s!Rd0O4&!Ħ+Vo;b[ϒ *qx Vcu{ёi(j8貳_` @3mk*Lh8Qk&^#V,|?Y5} R_cXٍv W/BC*E@ziMYsM0쓸h}WkMQ[]Zw]ҽaI3u;ʋ3Ev 45Z/qU㰛|Ή`X,7gKӮߐ"%157}{ٺi0ֶ~Ab!bRt >CƐN~}t9 h/0B¶a0*1ֹx5fGXO‘dJ[ߨ&A|ζǶs&?~:J >OHNoCIʷWh|ԺA-o눛CHBR2"qfԶ68FV=[gAX.l}LeOˠsA)qi怣 o({2+oyw[bLL"Gd0Ouy),v8ΐRkaB $¢}LRAd/, ,cE`%+D?/rOHj}I;'*xq;Ʈ>=caoPL63Y.n&H{A-ݪvRp% 8xؤG?Iu 4ڭ! ᔝHh֚ )i4Й$Q! I]NmR g)c$xNiP+GBEVBxa+/ .JKn:U+DO<ޛJ6̢/̆ ReܿLtt^h43ۿ_ 4-$DLF*[5ݙ^(:3n1[{׍.D:=o.c7w6Q/Uyg/cV >&W<(eXEȾ^Q"~ 6>y!Ba 5[֐)cCY-p<"wC#{)W2,QUMs|Geǘ2LwV9xhLJU BAJ JU-_e s#IޭCFWGpˡʤϓ!Y-ƥnߘ"sggk$5 &-d%d/ћsP\9qK_ʚmo[y?Å @čONJ׸{XV,Kve`% z|,F6 #,0 QM}O[l66.{k'nŤTb;[HC+_%>^?< vJ<ǛNr; R\9Ak-0 A 6Y-.0Zy$ //ҡ32|>t[3AmbǠU^c\~G{gwrz X֪GMT 6g)_˪sbPM9 x. [Bvi;[44:i : x6מxe_;E#dekw?PȨ}uKۦU}œVT~8Sm4&4K"r*iz <;  L?8ɺ"/1ڬ: }Aqfb]*udEyxl3)4R}9C\-ԿŲ1v)k_$OYӡ8vEaھ gJk\ !Z!JzMRX3>QK Q3s&ׁwVqtEn&  +( L"V$‘}]ɣ {WKd#YĘZoe=/q9 g{㼋m^"O/vLH~O#N/c:Hj8Isnj(v?4'?kh.[Xz̚HairSL=2X"ͪ|dJ4;X`W篚ՖR^Va5= 4w(0آOpdѥHr7Vsqv#' ib8<0|$ڙOb׷ a/r\Tf[BX /`p$VYŊ+etS44;as(bV%wE{z\Yd{;bzX OTrߤjm9o%v\=U4ka09O|hI ?6v3+G'q\ OyW@ɝ]&PʁdU=NR B.6Dzr\y-$^!8 C~|1N-L 7v% Je wDmsTAؽP_, d%pQ8lAۺLv3X38OpYUK=ɷcZါmLM-0[4)qO{W\,#[n\"`L b Scm\ P= O/[kČNSFXI|YZw Yk Y 9p< )ek. [A/{l;]-cYlfG=Yh?erL ;n!S'PUX?@"ݤ?5MckREx~TOv0\q Lu S/18}(m+eLnaiM<0dBdOY?7RUQNiEV\KRQKA_\Tl u+v>R dӘWĵ.(Lۍp$NoWXȖaTT.6x=NQByۨ"8 flA=j?pۊ%}%jT. jyć[Jifq3^keVk[ahZ'dfI5I7Kr1U1JPb;*C p!ψs[5ȇ9{՝(fزt oO݌l^ ^9pqi!7ˮ4MptbGA#Hfj`/p+Ӣ+ b|%ߊ p},,7= XgAJc>ͼa?o#}QQexf::|yWnJ=_IWS7_:=CS" J}_.ֿ*z p[jmRX43t$/_@Mޖ_QTphh ?{dNw]48U>>}0hA o8 K<o(! iDǛáĖyÏ]q^=h3YW!бY#.) /X,AE a>4OZ `Pbϫ|b5b+n i)K3ɏSAcZWK4`j!>vΒ!#=J%؆*tǢ%EhmJm[7e 'rA\~9V(;p^9&zUnH%C6lL=b$ WDg?&1F4Nnj?w&Kb4a-fp'}uVUI`d>g)eEm31eG+8~}aƌ1 _}cyˏ`(OZ+A?UαH.i;Ȕy [t~6^ BV'&R<3?% ~=ϳ69l6[@zE)3`۸"t/{}F#6;ϛSWek/,e(I]PMTPP"_(ϋh xcD_ gxrFw˸?U-́ ԙlY n)@PfCx2便,M9D"%龙W_&,[鼃'N>Y2G`~Z6d)j)'9+A 3pb;X!/AXl[8SH~ ̅<{QWὗݪ?;I9M*e4̐_.C MBlJKJL*Ô;h+p8᥁3aB`>rfcYb acM1%~|Bi}HO/4uS3s{jwХfR2&=Ѥol׎#dc}BkSv+b I8׺fP4-*䆶GM'=s&X.AE['TCñ4d] HȞ-_(.Vs5˦#UB/b13_'f07xBCE2-i?`JtqeaTfXOi"xN?< "Քߘ;vtZbpJÝHɏ ֣̚D]eBA#Xޤ캨 RuDp=ksP)%̣dZ0$Ix"өrA-3N0fݒ]=\/4wBc_6 U;'BnS鑼緎^kU$764NV_r"I LR"B 0oQDdf{묍}dYb%?,Ā2Rjx=vLZeё Idw!, UEXEvk6baI\y6\O漚6)P}dJJcxNHTމ7N&#FXOn,Rp`3C>K~s^VĶ(.! L겕՟ @ٸmMVF%j8P+05JK|U]%IJĩ 3cPu4b2*Q.- vFSIۭZnoDӤTWtKG8Di'-f2 +}T#c\d{CKuW4k?tԔTh5%^6kT `TU >AAk`sՄELS$ꆩr' yOMV9hq5 3aWWoU1Of2GVF9VC c[AE1@/¯1;o-X螶Œ{LhW]"T' N^afbl4-dM<61P"࠰2Dax%tC]`5zAϱܑL *v/V֝dycc1틽&@7F B둞d#^'?9*q/DGnʹ@~iU2]Η>K"ճbTZN}{Rj6gFb:ǒ C 8<}S6zXgjO[MGy6<[ٱ4X^ƞ*Oܼ(ѥ7sF^b6 nn,@n*9g34ѭ .8!%ên 7,5,I6[vmi"'>LX,vWNq-$-^ :PF9Gu,+(,!}YW20]MޕXQ.@md@J'Wh7ЮRa>4)d8%g/hz (cjHI_Ēt BaO7(Е3H}l<(NA-e鿣੎UVzR-8<$Y7|:RFB2vod{;|ɫB){/IU{\VXpUlpxnA"=j>R/,C6T ZQXMr9Q݇7$q ԑLcX_L(U-M镸rAڼ0_!3|{㑺&aduVn xҥgr#ٲ;(@W&qq ٤}支ꆌo]O}z}toUןj|iӛ [hIyC pjY flaPJתą.͂'h;m&,L :BG~1_ ]C0KZގM8J !e+4}=%Z]zYUT@I_AeԺ )ȡ8@`N8/rۘ-u$H"ŽplMrF*}4>MOܜŦs<dd.gn^9ncADbu53Vgb*(UYE2Aoj[&suj=pTWz0:{rEߟ\+Af%)H)>S'C%"o;f8Lf{?j-x}0RD?bC\ ၔ64k4t0fm88H~Lz;ίFGo:*cl>-e76.%^LO=!yFotnm$^ТkġV%.mY#m6o~m.EGQ 7r[.2|i8:} c.:ߖQpr 0WFJ(Pz-lFMhN BGYܖXAM9?/Sˑ/Zתd}"4}kD,y +JDQCuzCRݲGtWAiQdb(ݤyF'MXvB1Ü[ Qk!@YR)tC.0sv2~,vFaAxU~:')9& RpS!/z9>@`{N],cwH>Dx}/B2s3u ZuN3 ʰA ߦ?2@ y{ C94!tӆ̍Vz\d>QQ,u7Tw u=]5vKğwbhIIpֽ)sDT ǤsǗA%_I[I('WxJ8̗&5;<z 5 aV+ћ\:c {<,K}a@ xGj>YTEz_6ݼđծTC g9a*{E( ])+naEV67aGhm=Mmqwڑ;NzȄc 9V/1| h;{<M߈36mb_|SGjxQ? Ѿrbcע|Z}:P> q^b-:^^vmɆxJZM)Nv9: ZQȺi!5gRB^zb:IBfOz$cȗ',}Q}*Lu̹;IYE<#micK{EzaʽX?p2A)) K)LතX[P{lP}Z7ۨzϭ7`,,:#Q5'F!_,hMݛ< o3%=o"!Ϣh UB\Yyc6`t]/9PCQG T$Tn-.Vc F ]҆DD3O,d LD]QAⲗ"\&#%/h˞_6sɈARzQ9Ȝk&$& L+u&=}VB5P! /wS0:D <\RES 6ep>e''jFKu2L;.29esvI :\>5^Sr+n<4K}$`oʻv zyY)sz6/1\嚉a#3e@A1B/m:~mhm l [qS%8y4y9QJȠT%迦05BIUCWg I,<`&>y` /k=1h,kFkvĘmOb汲+Z? u)d_ĿOIշJ2wv,K@S=PVS|ӎF3p縯P h"`@ZGtRPHe:}cVۜg%N٪a~ؔ\ i+WHw#X_+ĦPnIoL$ΧFp=H(oR{RњדYE:6[XQR-^hL '_Ө.}gupg*^퍁vMLf((.@ !Ixͥ{oC+l#j iF1BB1-pu}=l-rJzFp14 $YWmlTnߑxz:'$AfI@eJCDbIJYQcx\pًyx"e$kTK {Z h1:йL_ʝGAiH ghv+Xp'>~`kAC^FcQW$z+F^wL (nд[ ,j|mķ:e&5= D4βZ +:\#~GӒ/+J!HBb 1cht޳Z8 ?< ZQhY]iqX_ )աey뿆aeSj=}މ+#,~A4='αj}V'Oᦊj׀qy0G}cXI qR=#gx\[tBC#|VGv1!=W$0qUNcDUuyi+<{f P˲#|*e98m-AuJh+BBjq9 |6H—~hNrD"Z+XGNx{O6U@t∟NN_WE_aYQ8z&I, tu.^0ϩXįL&#<wˣxFyIH+€`qi]^t-neEўQk=8An[m=6бysǞ%qp2Q͒>uКr՜B79%, N_zxio%.1@_,xZO_{TISkf4^Ƿ:YpJ9߱%JCv-q4'!T]}@#(vj|Hl> v}V|FT!-w5rfkfTuT);525&Z`\#>Շ2\=FQ$vc<-wn1MaJƾDD9=ZtNtg WC {9G\'P/x#ҤHj#\ zN z:MVbc lurW@a#w?Au27$3L/'ߘLr[ƺG)}q %D%#SKw+嵙Iv2}/}C_y,#5^=}_w]Y*6jR.t!uX[čz "iO+ҷN5ۨ_}/џ[XpՄ\R0{Ke} špS١|_x܍Xvܘ&b[\(ad;Q [=d2q\/Xw9Ϸ])N)9Oυ]j0BmT4viDuۺlkKG@bq8!ej1?MII Hu\eTJ( [:ߏwDP4/(܌&YnͮJM;.8BBTI[ݡxiƫ'皁_L/{Jjl=FT~ZVkub5ΥHq$#Ǥ<.'77PwZC5g]H&By(F+׳)FB^Vm=O#k ՈDx/ Z"mePՊ9t]/`ׂj&5%]Vf8~sq_5qDFx7м)̜zU;i IL۞ \=fK>-B ،d߻B5%_*^DeӲ!vy\f$ yA,m3?&y#Q~Y2b vub3rS]Y/Qڨކ_ т6h^‡g[ EOvZu>2dT4ª8qgQQHv\nI'(Պ{hլo#ԟ$cݪJ [K?y\\[p!D{ 2϶%TZ(^5{2iO V#jߗ ؍^ 0Zn`νJ%^xnz# Q'D 4@:F(JacQif'Z}I'^QnePr"SZejv*}ZGhh6HrDd9(y$%L+oޣ'@Ki9vjZѓް"36 ,ȽEe[ܾCG9A LbN2l1ˤGziR1/;;KS1@3LhG_/V p1S9sJ9R*-^pƮXWlPQG PKΰό%9Xj2W+e7׭9\9cY9&$)fw$ECWks;@ (v_2[O<+N@#  YW$+J_4]Fn[h4GrUrFzgsTT +JcpmF1{^R5)-Q1L?{R(MnM}!+n )皮Ҡ7 k{u^9 ~eRsFDyPZ*~T]͘Cj5۳<ɫ:mkw i ƁcR_1Ҡ.]UqMaa;[>oM4]E Lk=36w[oEv{m 9E8]mT8fc *V@UxSeT ojy|jgz*^"@6>$9i\EhDŇTa<@ڴ@aW7jmG$vzWZ]`j zdpY =֟H}ֹܳ9K|SdѷS(h3anD\_}{^2Ok +n9H"cx(7.sffQ S\ wpr3%"TT^)-G0(]wX(-v?T羗 Ԓ9Rܬ˅.lf?:/(ȾĪJW]{PUv`h##wdR; y8~ݰPg@ڥӫxciŌr:|,7)3h۾QhIud`KY~~X "r,F>P鎻G\~]dWl$z;܄.Q+o"yϤ~0im@;w+ ȳLt`AmJg::8%X7AO;b1FXPl~8~;_tq?nxFу_GF"+]9||Y\%+ݿ);Dp>ӱ1zF"/eFga3D|OPyzԀl| ͵ Sao|hf%( .erc U|7O:i6*R_R:ZŠ_a#r0D6Dϵ˂hU"Mb޿ Qn&fcj4GS)=a^Os_l_=J`rJz`ivd{˵(R&13䚢E']'.z|] [7NmR&peϷ4 .UQ,?deɛcnnڻ_YƇ"8a|cA/EDVT*Gt-5bAarXPxON1BtE6-*C[rE. =6bo q0)|Aվ֨Iɳ3e6{ okp#_òYq r+=OV~?6L/Rpĸи*`gY,cD ^c8"k`-`yv76p?Z^Z[}s*pG6kjm@V5Qn 灠#ӳ J`|:yFUnk](0#B,g=i b?%gP I;J{Ib&-n0 &knp!Kďm "X- E>w-erQZS:22I$ JN~c@zʯwsD66/0V{8wDƽ t{|@[OR z1fe~-KWZsjȆ|K&tn㾥@z# ĄBI 8;BHEFLڷ QQn>U`iBF ;C 5{ia \ps37Uv]Ε<0N[^Nf"LcEowWLx UNt)WĔHL[ųĠ]wC2 pY:P>IN5:]]T)ܜhd<ıUAa>j!K$0ֵ'+ZJW m{y.ã&UL)4@U"C)U`$<ʾQ;D4Isvp;1;a0`` bY0R[W{'j3U^Ϣ(Α$oXPgtstdy94^ &Jܾqs B7Tf ē!:"sd6HFFTYm f`ܟY%"5W6J0 q?*-ԥ؍/ @1/%PG _W? |2uH"$"QN,x9CS*E k pۄuzЂI# :VUotPU졽 #uu#1$5Ę {;+kgvCqbqI.hW㜂7|7 MvZV S%:+1EŶ* P*!V1o֍K 孥Jؗi;7.Ԯ"xh:O 6 (!M&0movyp26but%8٬ 8@+@Lm_,"l}ҐJ$ DYS'IgVy J ^kS-dr.Q҅,5UDmq tHWXE!Lba3]7 `<"jޢѩ$,{2*08PE֒I;v*h='HIܼn10͘dRHdo.~B=%԰Dc'ζ٪X81wÄ]^S\NRdճq5[^$w?|+6l KG 262L5E?I ,MhZt4|@|]`vۯ\,TbIijBoK D<3ޫ IԹx F1%7LBN<?#yz57`D~/cSFY@:*zO6SZ`&e?^tEP)–-CDsE7jB] Ah#$ F-XŨB:8-Ϗ 9 -NFi򋟩#W#]"1 IS#+T驪l][B Z̧-\Sop{$:E)4+a#vHd-xV_$G<VtV*Ck06!?dim#冗XvSHfAMr1|tE|WdAa5 vW !Wh~ ݜAAAGpRF< ׏K|JUL{urV1sKLcv NiIU*ou^Fm $Rb`΃3]겻|<$ć5b.ƭ8ݬ0qӑ>QKj)\R\FG )ﰐ4q`-'kEcJa]:q`h V1'oh9]h>X8<8_`xUO’o{ 3UԨ;iXR]l8JNX%s\ShhӼv/_7ډ T.YfAV) Yb p@2xMSŪ*w(LctЊT(}J?7O%Ì(6^ݿفubo`uAP=<GGRp u>5GW8HwF3 Q#bNSu@`Pqv~M1 D囑q 3zoq^u x=-;)t bDyr]d'`/dP()<>ˡnHZP3ȀC lm p Ю-I {Z=6vEզ8]"Ql ;.r&m6Z,~d];X yV7:Y4,~-M]<cÒ$󷡾;ky|1!R3N3^P 5Ku{IUSQx|?֖e KD3oIj s;0-gta!o?La@ljmFp)JQNws:FP^-f 6Y;q]g.okMok1 Sa [t9dNo UƶZHv/6fWɸ>&LйPLAE,al`6'{.!G!j )G,AkU3ޥU5d΄~:leVʱgJ}HW,wµ|A˦N>غ9u^1M,>Q Џ"XDM,r DUmM\~# 9m-IQ7>,7wtwI'2c0z >dn\mYc yBOW^oݞ6~=;٫}\a1@4hn;87Cȇ/LYx# *Rf%¨(,S\+"t ;;PcKڄdaZzQxspgQZL{ӛ8ibrLGdn6,{S눌9Sȿ"ԦQM;야׀7M麕SI C:i9%eຸyNu"Wȶ^㷯8 ,"ͽH@V}jw@ !HW]ľ bU{ QKƵ%4 ;G'|* pq^$Ϝh'^Fme]l (|'DFdޓc5he)_g`bmL * 6X˪tLx5x:p@ߖ>#Me .ސ[<;9G >OMv$Ba XvF ɱmzYpNk/zSj䄦hMfւ 4'oļCpk[17Ffrеq~>B=m27Kblp&jgE'}q5253=]@GlU@6]h&.PCP H4(wCYڜ,6]ׯ5\H2 ?R]/93ӊ0sG5^r|.TI5``:d;>`NAdsF"O[&t*ϿJN5;#91 ,oIKF/I!?tmWV(I,)(%5YHB؛H=̅ϟHoEPB MŦׄ5-Yr%)ʜ"J4ʗ$_ d*$eҩp;'0B7SV"TgD%Wcpl{0:0%|vx 2)"#dUiO('RW8}}]{oL 7P7D.ЫnfKy`p#Edoof羬 >\^nQ6kTkPSV2ٰ@7q&5kF%1u }DqQFLp\ RNJ "wlDm6j ;xLFW ;:om*p;]˜f9xm\{A!!g*g_j.AD 1XF1(4;)7/Ϸ tnt=CfRDBDLvr bgr"^mx,(r:Cƙa# ;);l+:%s4~~E!z/(L;,:n( x9*/Y8Mk3w!C:7A2!͐E9= \g=wr+bL*T(9P$va<-AE29S.dA+O#C6uI:QC@efT~Tx٣hx,RԷxe@S{~R("C8o34/9W ˼b LtD%AX,Q,#w!/%N􃥃2HNq q/) vϝ(YݞcCT7,Yԛá{`Ѹ]|GIkIR9Rme?AB d#M: !5g !b@Yz@'C[OPp~Hk].RsH.jx‚޵s3;3w3B|ˎFxF%W"㒎j&qkJ$_aGj'g<9̋P = KaTfS"#A/@NaL9WwJՂjԹpY8?:mR.YJs%USd_1Fy'BZآT4Sxal9BA;H~w$SO€⬄= PWORp>?DDYdVe=) #:a(l1@ˮŠIv-W;I]J]{*?uBSD;lxē3ܟd‚Z70MN^wm"+7˖A 6x9߻`Ӛ8mּRI:.sGnQk$Mk)9B>=_|>"mH.-\ih;w /Z40z~Gm|X5@Wd] .|8ҝ- .eKϴ JB5ʂi{^=SsTO7B>Va+OhX_P' o-ſ/aNTjZocD! vbBW  (C"37XHoEt) +Z@ўV9`oJq, * a  \#\O;=ljCm"8%{-#3hX9sY s[4JCԲ4qzؕl%?$LjyyPoO /Ǭ4rvKtLbs .Y˚OאV\ׂ,$٤Qq "ukj{ޮR)|ј=*&8kz0DߗrA?+E:1."d'唄O~-ʪLVEMj++`7MIP<%+R{2ڧzS0/f+7qѵ1q< P.^^W5! KJ8`C{|L!@ڷQv z)ݖX4Q:JSvĝ*7$PWġbq<@eTs(Oj>1[QPlf!*q/i|j`V-ty6)Quk[s-8]~z93Sg`HaԱn>=>-CBUI, Ҩ8/J|_A܋8h81Q?JfV#mPzi T(l}09.?YjsQ%BRSwZ. Ej.il+HʭPb7a@D8=iDžvQ฿>}0*#N論8M (os|rW]D;l)yQXWʏġaFJ3@Ck|t+DOܢam!cL`uغJ=/NY! :![u;msWJX[1xP6xύg(DG9GF;cv >Rf_KOHPAh [UŸ-i+j%u᣹eԸnP^"%P_+gݜQ DV*_YrM9ƦyP^O ]hD?,xv/v90fԨB*D‹7jg'O.ҡLE_U/K?H;ro 2kNWi2Kzd|ߚJo?(`A!_Wxq9G܄!D7ԮbMW$dҬMZcGe@7A˖Nq}p CDHZCKJ%)/1[:귪F|c`h*+gZ oQ& A?i:Sk:"'#/ P˸0WiFz{‘t4Sߨ @rZ",JWG? '{ ~ǁ (Xӽtݮ-~E#rX}3p<8c1İ_p#U޹`43Ix{bK? q1RQAAȅn)1wtq!Af r*5y<%ZO`b[tYä$ LX}Ak (EN=ftބ,T:~Cng`mw Id] [vx҅ztZk f}6f j=n;Ϳd?oHo8{ZQ#B<UH *8VxSd_vSLƿx#8urΤOzGc 0'Wn3?Jf-'iUǻ%Sz=bY (h!zgIJsAs3NOGvSqclojũ n>oc#2lD8ՍeA(rI}F*=L :z*$E-}V ᨉm$ULv+E#s?=pAѿF+ 4SNmWeGjaWB}ܗ1B㰽ɾAkhnFF>0v<g9_4(B8֘"KF Tc]N@<Jn'VDzF7;QDzXDxSŌiёzL"JW-1X!)?E%ҝ-cClVSQN+Jy``L{q.-px^u:h՟9sdY1EpLv1m ͇)]B*|}@xr^oOZˁIڶo?9\`uMn;߰ 'yMDh+qPG*@x Zpnh*2T]K}'Vsg;?APA%=CC˱j6mj Kz(ʒ[K-uZ\eΙw8)DxO)sb'Z&se3 @uι{<%2pJd4^Q,&Hj† !,㞋s<}@_ yEWm>\]I>}2z=t#*/glA. ;=Vp}] eijK~{ 0%ǣjx_@2?" &7sTDHm?H4ҳP/8 HKTV?,/~ s˰\?1\H]G#5O@ 3I%~iO@<1s~_X+&3RDn#֯;+)>o2ɯq0QFMpf#RKԞ~j =ִp7ve11.*MD`[q`4Hk[k'5`*Bt{q$Gs:iAzils47T *F'N:ת6;P~H<)\&EUOu]!j&}P%ej":sP,ށ*B`L qԨ_vIXEMyi1ulm,;d yM!{#bi2)-s&I:jq 㩴qcaDӊ]^{)y E|gfHhjm\eymф]~)q5OKMbH'6wE R6<Ne7%V}'S =B+̌lfn'YIw')#- dCC d6ϣ}O,V%KYf34G< YP^ PF2A+hݝ1z1 {~A2ȕbc,\XO=:+_ȧw'G^3R`gȿ󢭝AeYx0 27˜[ A֩a5@J߷ j8wL5Q ,#<^Oh;Ơ'5.CTb%Pvu׺cdkU>35fa3:IeGyA_{ǯښ-n^+nbO$>ؚ$'`ta#͒:_(}C: (rzB>AV A!v.lI~po-e}3p6D'6G8!,Fnx!# 9%AYD>X:tF;Z{d ɔƣ} 'ۚgM:U3%W#|Tjc 6ObDN7eJÃ}dvt׮T;vKtsov2O6;c|\풉Hj(W}wxc~f(jGGF|㨉={WJhfHL P$B9,ybp&~LADOnj-5+gc?kvkl`Y>u:jxS6|C 1D6iS`G R%ѹ?,5px -NR贼%дdCLN^nj3c6b_\#^i1!%9XYj3fP X TAkD$HE軇*Cc*TCY"Z 0_G}LB bUIC BhP%YMwMagN3>p,1o4TcE.̳B#6/nvk jY~06h 3KԎlP]il4+M0翧^#G8:-Ԫe 33 Kh! uHnI21mN i }6u& ;L&(;{0Zٸ/dy%^J$DMHuCK/Ҝ!Z !&`xUe&e*}  kre8R<9)q7C  Ȃ7-s.\fD}'"i GŴFz%/D)M(IhnqX H+Ŕ-fXm GL,v((j-?˚YY̳=5;43U2\G8!iʜY&8{9Dc"Nk%ÍqO)d:\o (jDig} t;zT~`f R 3!`c9ĩJe,Z =N kwͨ$n0\9(OAxR#VQG73;{udY)QK9{9]׷.=.k^0+Hbw+8l.'2ͶɜhOr,uvTԨHq_{DL=i4>?3OHIh`puxޛ%dN!`rxq=$W]P4F֊_1is}.{5PR'+lnl"nESC?+e~'!xW*WP_v#:jX&f 3+w)$;l.'m41M/·=OHD=b">f8_X!<Mz- f+0`O֚XYìYkFPJ (w_$np[}N0勹t[KDRпr&]y[%+@xʆO涌Gspn^~ޞͬ9eC4 &g c<7Wh"83Jh'>0,t@B7Ղ{)n--XO/ٸP˸k_w޴ͫ24]$Kp\i0KNF 64Yv=՘'R:#|NK,E?O>Mv7J%ZB;[v8e kC=t_NhY.DؙD۱? bM?|C!] Rv@_@kzӧ}/8X %se ,Md&K8`0rdz)[VLFN?XBE<'a~^wM$/ٓXDV  ;Z {m5}Ty{!)$x=N6/)7a6+{=V6N $1*_[BCW#s{(QoLH"_X15wt_)19v \6BP5Xܗ'|IKNLuGU\uGEX43\ml#1?;5]sCzש'~lW8?mq+׫?e֕ZՏ ,hȼS.+v:cqVQ 4=I̗bTQP+TF$6bD`$^),JhTXeGL.Gw頸vߩv`b;R4JfMN@B4W IiZ#d0pqY.&lgZq;q"]\FVfTlI t!;Ҕ˪5:p'QL3>ۖ؝v BfÂ%Fto@$5&-B"+kjb2JK<۾UA{2ڭ.| 8x43rclI(s\><@ԠRA\O1>S޻f?**kH(tp %M//bSa 2$`zIbaqu5U.43S번*&uaV.l=-PW4LOTG?_2sz{ "zGV5?Dvq0i߲?8꓌'0tE|M%vpGTC:Y(Fʠ-b>b@@K S|AiگI2 LP(E:|]bN[Ŷyx,8("V3O$ 0(7|࿘vax5Qg8E3Au _(hu,}H{K_i0 t+1 (lmt:fݝ^JaZK:|Bs G6 }& l{|v!o,"oԡȼLnz/TlRn5}ZqeW"46Y:*Hӳ7Svb5WZ? u׉Z85˦c)Uh*>/K; yrlw,@6u2ztfBoe],O9APN; *GfSv*4X喸)`SeT0]ǵ@nAv3tqcQUeXĤM%@CbJqpo=i !{qZ.cZ('b4?'R4ŷq]G_bÅ1SH f6j&m)#ư-C1h I&{hƋAdE&d/"5Z Dd:ͿU(Mg"8f 0bvAg0iWMa׆y !a~xPu}=Zu'v<]Fy}~1 &(L醓qsC=tiQxR܆_UPE{W6͟?(5"aJ=P0>1oTkgU7Z^%>uN #Lg0 Š DO>Whd)HMPhY[g/SprLFDy9]j , * ?AFbMnvF-, l_o̮cu 'i߁ħ˦0DPdysߗFK}@݆SbT"=<֮MtXH<e~(j:pgSE_Nh* L4mci?pr\eR'\-G4? ǐ-KtiL”s9$JE t 4=Oz)u]܏ŧ?OQY")ZNЈlI?19A>FjU5^'?FXNC/FS?9^py0lCj)8uH/ (wHe*?Bg A`g TXw{XpY4  \Rpp.KkQ˹֑*vniW_S:Nߛ#guJ׋'J }XS\t( D;?%yD8~.s"ɷ 8oLT)n !!16}uF^(؉F )}j6D* sI\>ؕ<&Y+ɼ,&t{+9{;Z{G@sP ^:OEM`"5Ddq;+_{۵}GN pDY`~#SN]Y8@s;Ɲ3> ?TWz#;yEh)(WF{I5:^grtta;T}kMLvђM+;J/D]⫊2VO!ڏk |ID%$n|Y 0xE{'yLUgi{4fo|uɏҎWB;(`8[ 6Rm=PFQr23L*?=}d"l _uwghWo u֥r>e"W{Qy=6N@7uI!(}MpV:oj8 'k&U.Vx3cV6}bPR3$sll#`:Ex}G(.܇^~~jj+r.ύȴ .TbJJ(VXY'1=UeNtI⫿'DAݞܝӻ9.esuK #'!>֬t/\Ј- KK?KN}oKD66?LH:P"'!YwQ_]9B啜׏Vw/k~z,`4!H+;^178&>8g< %$¿zʧO3]妖U:RG͵s {XGrm\60Pxp[> CB+TSq hhoJ.񿲇N 2E?+LyUP&bUSAZ9~Wk,3_BY,I2hJj6aQ 2GrחQYѽ"it-ط(;SӒ.np"d5 $KEx;w@߽ &~D_auSjG;JYg6R^iׁb]J;&ѭX縜?ͥ|Y4DŒ%tz砙Qr-gEN8!4bPj I,JAgZE2)IU_,M@tsZ<1 PL Ly뾌|x{ JWЁk7-~}+sx|UpscmE9WVOoctr$[~16RD⁩&pprm'I40 m cl-kQ7b6^R(ҒYŠ?ML.ele#!" !4) LJn 0!@,s]S~ ayUw;_BUu_Ze CG)P^Eo$t8FJ6182O2sqLSBN0{Ʊ6tp|6vn4)t zt$ Zݾef<,#ynU~>$bew3q{"n7V2nx2$HOJrE xqI60'^.,sɾ|cț1c<$enPo~uE%(@S{ʗMxTR@˕uD*q)ԧT=yv`_a!ZfVpG gsqzSq"_ðzOU$3UpL4'ͥ3PpN3ìS}E@0`@3ܒܷcפVn {< y4|L)IYpI@/g6PEtL, -%\UFuAw:i~0 dxLN['ҼS8;(Pߣ!|!űrܦV񟼏rNzs  w75"`5y+ߕ{uݣQ" 2{Y&@AL}2$M۠N$g|d9ۂP;&LD}6 .PZnȡT۔"QfpU)YIBs2Cl^5wbsfY"_s; žSfsds)dD5 z}| 0HPb[&h[[jq\mLmx! 4-^L1*7lMh. =7c]%(k/*|7VL7Ņw8jIpF]m8vh~T ^o 0X|".Nm-3)WuɁt,W?ϥN冀^f,:יp[v;[ȥ#v@jީbtQIҳ/#Y2rb/ɜ^r@،`i..ۡxE_vc9D2E* f&^׃jL qMF>8 Xb5@B-0_'>u&ɐoOJ[JH|Aa=ja!F<F+kBHGLzlu*ǿo]W[˘yqHlz SOX )d+>C܁gzaq7X$G~X' I.HhBgZj9+)Dm{l% rg տr2z~Ckx(#SoJxtɽNht3J?6Z^MScWh (q%EmȒףlX=J?_;uf|7RdCrXu0qb' *&~/ 􄡍DZւ84J #ᤪu  j~1)֡ldalIKQıAъP2*q zTDQhit oOy)v2ܓY!@րDk^ԲbFs=puTڡ\%!"4P٘ \W.r^GP1*Ⱥo"Gj1{uU|2ς Aa. ӽ:gb.3!10$5CiHuwZer\I\֚W0PXP1"BODw~[_dWD^?ax ƭkIxtUb7XY@7F'WMߏrbIWIQ!ZSK |)Y9DLaSM\b,C:cș\c̞r r v<"5*dpCCw=Ll0ŝeax鶜׽Uv/< JP$&4 :5 ( !3M0 v_iYgT;f$ |^HoB~۫#PjTt]4odafW"MPF,)_ZuOŠyN&YsYPs,vj-5lA'vGlEH<ŅD|l|yZ$&/hY[VnKg0ɐ;&ݒ࿹&!}+:EEn&sNo4n6vZqBS]Qz(HA{/`aE꫍M묯 .l6+x[&GAn2^lIΕ.KjW{^|x\]g#Q@1ɀ14it>DGK`XsXD2o|+5'J,2+~2c\?_j2`qv$Y9>vfUn h>[q5άn M ў*JnG4'({ m;QFH!J=ϸxuAE9MBtB՜s1Agztw|bq0)fLy6[q=*1)jHtUq{X@ɔ3w #9;0zfp0)mCu  Ӟ޴_(V2e[i;=0`E)mY=+<\FEU'D>fgQ9ϛ2J gl73۹e9¿{R _=KHQVY,U,vN%NH17R6}s X|we3|kO;ק4"WTraoO ~׫ KcNvA5+_9s<*WMo\~M˭ܺJC`m$E|E"GϼQl4kO]v^~tnH<0kZm(ΆoY0`M'Ѵ9Jñ&ړ|~_qi*m]k]N:˺ OCM7jzxH>ueK˂ohj-}!7,f%5Ւ[J@m.@* `qg6%SW+u 4~1e鳜h'68a; A~)l3D[^d[$W#K5:JdPeduvsH44ySZ &O8?Q7=AV0CSmTRNjt!Y E x9Cny 7o-јPqeq.̳!&U#N&}Uf'+5kRg) ,M4}HIxl% xG PcPvHIpV{fA쳂R9N/}Ez8? ؋en mlC2VuSD{\B*KAGB-ϹݹJ3iY/~8J%+pvΖi9Jq`3A6L!6"1/bN "elsұ F÷,sM(m6!\*MWdѤ{z>Lf yiRŽ2׹"Ǫ2tﰏH$/i%?~l ijC{MkV I@D9;+RxىxRC!ۦK\> S FH_x E;pRF#88xfY/E8 <4DŜ_Rf`lb*qz^˔5̒AdrS.Lg순l[WȺKUg/bf hMՄUķ]Z1Lݓ^ @hK)]?`Vdc---$)~78J̍Y^v}rVj)#alO 42j~#<,م;}`P BI≧Z#yAERχ9#U HcO f1VGI+iNţqE[8wL9Z3aRt<;31UQVج>=7P$(w |{ b.\Np3Qh (ơMڅ3pK}e#?=e#eu ;"˴mvL%{  s6]X@Ğ ĴNs*mst Shz"mWe6o#?3iaq>]r5kD}OYյAI`f~Nڅ!3fYO]^`}jSfډf#*Ӽ& {u&YT1n`X`E~XQ6#ޣ>LvҸmfY'xB2)b#}l2jIH/.ðN!G|Oz<,&P@% abk%42F.&3p6KOh[I*Cw;Jx-~wԻX, Q ĤE ,`6^16L~>2*XD兹 (N=0CUH3j[L½]R`*ѺlNk9Z0tw>-[ժF9Ķ#pzi݊ B |g΂ٓJK3סtIn *KuP5kb:ߣE(W:rS,zo|~Ó2eK.Ux/]GuVRRaNz t<*]܆gysY8xoS Y/{+{ ]hrAK '~ЊJ{@Zƶ/phdW jawV"D<4ͳ$B6^# Ux2ZnQM{Td`NӞQcouz[Щ=9A}Oѕ{Z K`$㯭3zכ(Y*̴N$f2]{N7eYddV(n&n{L-Ciڶ(^Nxx1mkcCQP_/M'T_לRAwyC DM "@9M @Sf8ˮ#bR,1G68$1вד+{!@z!/}N*))l6vԝwm{wڗK.J7镙=)bWftAehDrqLJ, RKoQx^QAPEس; ;:tnx;S%E&S{ް#H[(q}~СL'ձGī7wН!5 ~d NYH7anv?θ wd8 Vf x=;<#2k [' '~~Y'OeTU i[waxr%˨OEk&,!/auOt̐G-y\ӉNJw뫉͐B ~)L7텤АDITo\ sDƭpWな] ig9%+2,w|BO0ğpwdo([X=7$~[oz{Y=jxX doMfPte $Ȟ=KcYI]Ur;M$Y)@#x uWPiXjcxw0ҋ) IXCE-,}Z8g`) ,ԓ5 0%0pbE8ê6M> *m#r*aGj0R10WVtwmt4-Xgsք`Yi)\%=ꪴdqB ˮqb]蘬vSx +aզsp2;/DnR+G+%6hooV4ء,] W+ײl VߕYOAL|$&/4ùiW۴у>Ed4#-W16\ ݊ignLɖOQp#B|{[6׽ ZG9p$]J~2Ļ2ڥjF~z _Wlf>L6MaRm(轊Fi?z8sx)3uhr'34mqs\+TyzYkdhvd4{ 81Z3&bX ^Fb:O(KWةj;kM0*jJ-ž_˹]|rq1pW o~j)ȰqGNgʢHW;}3B;.@sz uaP¤}: cB?5a 7f8,zJT# ŹrI}w8 ^]6u)yaܧw @^!TqLēu|gۣ]cxL j H'. P=1~@We>Y} vځ$cr Q;\Jri6D:oq-)}>G P6OZuݸJJvS"bdS >ޏZD=N[ Z&:r r J¹ %S/'5Pu79nc#mӺ?u=8XGEV? u2 tCOp<V@ Gf6 q,̒/JkoGǺrI_@x ;gE*^QC'.cZ`8%\pGòqE Ml3u3 R"ӄ;\9o rp]v~\y.nx_ssRovjEaϪxl cbu5,jTv-[Ri^*,6 ѓ!׃f$Ǟ"v!4%ԣK6jK|>}PU0K#R,Q.c[J_9q9TJ+I4/)P_M^oNX@7.=eH@g.bM3Kn/zdr# ?yLÌt|\R/kaD?ʿ(qtkJ2/I tU |p`uU0|p옯&e>w3%k{"bxT6&M WDX,͡]r>PhrH8!pN.JCSLRQnskP9k,;K =0г_8%)mЦ2$r$;mYJ& .u DLWyɊ3K+?;A: "tO'ߠYap-U.&޹8b}ׁ⾀RܯV)\ pfS;`7)W[5$G0GŃVP5!5NVԙV4ԐNUQg/:6O:Q( ~3,n :nEU ]Xdzb Y5YN 5u_H~ߤ7\!P*1')7~x»IM"KzҩDƸm)FMr?5=45!.b{bRe49d/x]R'ND9sΕ~EAC5?FS_^Wy9iRᎮnl^x0vttxoNOɴaf-͞uYwS\'d{E* }DM͏Z+㐜vKӛ)6g.m֥\$Z̆Bi_Jͥqq+]W7 KI}9K>Qn' a0VɠXy3)L5i^\_m# !uytĝd|u"Ƹع"ޛre[ aTѿksZZ"t-oI`綘:ĝ7hYw?vܟbu_599 )΅\z%c+,2#vm+PrPuMRֈQǽSِ;Ӱ:^X3RwHҍ5_r+]/ZY<R:EY0( q+r($fƐH#Y/zʢ[js# zo#RVas'&-8(D%,Hͺ3[WUBtqWS=7 .L>Z;ڠ, ^ Zczת;2֮0Èb4`NL(W =jaLOj "_6`(/NKIB\Zb6gvU͒ B=* te6Np7paH 6<CAW!k-I.SErn_1HoL o)]R3P?K)?Ϸ:Jg {pI#ymW7-`cz('S g٥};Ta?hVnK"ͱg* ~GWiBuj(:1^HoQjΙj^ zO.0}Nb.B o0>Vg}$ _QZ ̣NTLͷO*] ̙RtS׾Hr[A("OĎ[l \~Xm^&?FDQf^إ/$e[`ӮUgFH\~ap\ߜ(Ӈj=~{7Iǫ]/p5${{k&|8W\Qʞ(]zM2p0Q>”X `E{>[~ ͕Qz]_)aiSlU9C _0–}붳9rj:Oiێh 3GHZ P -zXy%":I1]$z^S-i~W,QgjArQ:ׇ>̃bi{M fa˦9ۉ &fU>瞦/nۖ7OdKPI `O71.M6 n[S9u 3Ow&d U'e ~s?8~skz)v뚂(gnVBLG#H>OJ+E;_{vɰ f[^cKUdGJD(H1FsWO:N,Qs&g| lUJ쥀pZ)psM1 N>md08/aK TuХuYͱJMfmJM2&)1{N0 ԏWq$t4hnHv3(f[0|qK1Y}r|jX2 r2OG!_hwmKDzB|I\p 8tyjyCp]/D {4${L4Dǟ.8Lao{wL ,}oVd#r+JV:V6K輾9"<|Rن T>xc21@UwWk_CTu˼@>o.nγJ`߷W½=bVkXy yn k6ϕh9t M!ihyIEFkfb #rɩin90ڞ< <"Ggy83&f'g_u(C l&I :3˛dkFtn'[ >L+(>GܜB9(fsy$vw[GGFR6m Q4>'ދ([bz? ڇxH6=KW-@8s1c79ض^C Q}BIci*5Oyo|7I(`K4#"yإ l;x_ԥ? nߟۼ Fܡ@ٖJFJ7jcĦ/>[g{R2~.4813;T[t##GK+a@KƎ@ < *J~CZP3 sQo<xvrIDLlj758s=0Rx/NԻEҒp!)Gj5aXǡ)OghX*NXzlAr6+ K꫶xq}}xSc0ۚP˩99EMbkL~mRF12l3fk @>D!*& n; CXvyBhu_E8/W-iUwXpQ9Y :)ӥ'wVdsy9?*Q}vl$xfTY6$p)PLa<@5sU`̝O|63a:;2bh>q?@z3 J$L _[9- Rv*+LCoL)H99Av]fnH ރ1mt4(03vħBQSH?G8GUқz6$Y4p.~iҗYmKXJp C" \-&uNԡiϖȪ7[ mCnL*S%z"\1,҆qmcCgEgm3!BBWsQ3Y.ꍬУ9ߠO{#NOA-܁$ij5ZJsR5e6F&KDž@ Uiք# ē(|){o~'/@\YHzT]}5Avz~QԤ!xۃqFfcO<@fF]Bqv{_Q\mѸ'dJ" 0j}/E;dgTI/)?sJ46/-\OG]q6F?X]p'ۺڞt{.5!ϡ|2͢ 7i] )>Z ű[(5KsUz_E6_*Bs4yLtWɊךg̭e?!Tv ֖{91a=ɜYY!Dk-X6n5P}"]qv\c%qKgPpa__4^cSo#=/%TŠt΀Q-#eUbs¦;\TȲVQR0Nm`8j_HaٴlN Brӻ9i]ПW 4MޱlͿ0h֖z Q;Ӳi]^%P!}v4q1Ql)rGMQ m)XT,>[X)m(L(%v8]r򀄭vƬI.5Zᛅ*p{zN:C5oj&4ࡂs|>ۚaۿ!JWr{RB;GYAd +=Efs2:@ɾF3nO}z_K&}+žk>af,]?q&\PWofM0*=<-_vh!AJ0]|:y :\/IL,,UT~lW_mIun=Y#ɚlұAvm4h"S 2A1>iDe4P":dOiV1'㸲!e#>i 顀U@Qѧtr2"$dr[ɬw0zwl/RkزL%5Н_Ux։CdJV p C\IK=4 7++r01VʶTlopzWwOy+u x>˪Sɞs(m38!' oQ8Q; iNAgt(qk fwݍvfD6ve0w3 V8*Ÿ<3ˎ˔;3\ fjbZWOt[*|D dJ55ᢁ0:)"-h7P.]¦QY_cVv'FP(IMLn^6 ݭٚ2 Х%+%TGX~h?U鐍zYM\mrm6ޫ.B!($"Rtw޿+[4ZImlkxZ"``Ћ֮5ɥٮ G&WL+. YC^µ$ ibc+sⷮōnWC~`2vV=mb ޿}fb2.0e\rB;WtAa薳oEG*`:0U'f CdrT^虈Amx !1٢~#wV jE<x $eGn7̀]NTYى:r1A<b'(Zh:=ңz1 8*M8t=vv/?ՖOa yYC`؄9~IxgcSqľ _3$(IEȵcj ޥTr][`$7^V>Ӑ%X}6 ~syCd{Ԣr~ʅzx~|Zb` tv8B|ٛ 8>hBKKW|}6$2`bOEx/s%w.-˄@|"9uW !~ W1| |闞/ ~Z}ƃ<t.Niٽ5QǟSYuvp-dyZ -Vh3yEs{b>rtjO ўp_S/h Ɉذ\Hio"3bbCk4=$`,jUkH^WՠYO{@ƜS;?Z0z*9u22P_5xQmk Xùg(rVB~gb63Jkb|J`IRKJcmgSSe? +zjf]H(R0yY7ՍDn6G=:_mQ1HR;< y?p0OX!pwaPM] &UK!$h?nϭ8BsBYB!_ Br8't\T.>B BFEwƃ#kA (aF{*+ݰ 7yYO*`4alXeaR+ x_2l;Ȣ%--a«]-i,,]gqKO@O@#ȎLt yF 3=?CQo^%'oܸ"%*hَqksL/wXm&M J26b4,t t1pn+$0 W'j_`$Y]S0a2?41{BLjG% Jkfi*dP$Oh!6 ]bKruh}*hx7W|\FF n5>Fέ:ܬb+jDTNV7FR>GQRn^' HY3@ L<fֶexɫZSČ/CI$^>m~0UBwүL; ^) ۚg$js mxss[$B镜q[S X|M(:O^l0]U}'- V竉To1pk tyS"y睱4Yx[=pgo2(@KÎ$r|vm½kz}^aڅAçJqGwȬÎOݠK8)<\ bsRЂ1UcN.wUVo[Y,䓲T-Y:1X{92ҷ7^Jy )NhsEfW{Jj8}N|E-?yv(10<롘A'HBa dC4+XBQCSD| ʩj@yCǼkpG殘 wV+gBHdhSUsZ}3#%pVW"}{,_p ]UЌAV%!ar蹽],_r !}*yU$6|{G+#)=X%[@dXrV@PgU8y`t~zo^-ߋ}Vs;cםAC-ړ_BfU|izPIJs#||Jt%&"Ey^CC]p{lveyk?ޣm\Ɠ]2=77 0|85`4yo0iEcN~W(*?w}!:=5 3Ep &xɱ?}]~^)j9½/+ 7Vo'~5`IL1ȘtFXxԛqw(›U ۻB8z9ͦ@77o651ioKU܆q,RoMwBirQ>Wq8rTV)} BiKJb 8 RG~=P]᭒c(r+p)vCމk.H&VK1>ԶHü{~]4 kc+5w<:OCvcqRwW2urwᦋ61˧[k.AkrM~iw?|b3qE# arpG*5b/X')rԠ@}# ݋O[>.Lδɏl6`>_ jpeur7N6x N!|Oj:4ݰH`6[ `{oC/ /JRgD7/)}2r5h2>ܒOV— an\WR']:fvWnU, ] χ$i?YEoD jґUp` Zp3zfZ52*u(@r|ߋ! ІN$;jưPU6?N_cȗk{<1mX~.;N\_6G'2T#qeV&j*.<|%H.-mgZSvGԺbHa22O%[=l9Ws^lj{Y5(G$kTBUF6)!/X+XQB͈8n~يMo6(db6 w0uN!d "%= 3 ll=LP>HFIHRAHdV;`YR,{ MKqw,xBV&yyN 7bXK"d{ =7y428vD,? [:ʼn`eIٸp=JPs Tfzf ɣǪYb tK@jj7nUPg*U /%yaUH n^yQވ,'6\zQP-v`䤨$Xjv3V$ta5 ]CiCz[)Y5|]\! ^+xdKu~DmLHRP"~@VM'zTn&4w+X|OϞw)CҨpj˄DX܆p hA-!{U'_(Gی,= R;4Lh ؇ Ld"ȣZbƖWQYk{Mv?aBtb;ࣰiKb]P#I ʸ(Gb+FBLY3r Uk@o.e(ԙDW0MߡpX1Y< USl\Es8މ6uϡtWM5kg"(:+f YKqHfbj-: |%!(+&PANUWD&*jp i3M[=g+/tq'?eNDIC%C8dg+~yϽ k$eK{%Ί^]b<zȌpPb+s4BpsNq?F 5h6LkN~| }1C@`MPaXCL֦Mw['_' t;bp=qvTm7%_Ϊ?4P/Rp#S)c54504ouaŧT~fhջ=B=s=+~e[4^зGrGsYS81T[WPgK@^I4IRSܽNQf{f1A\zE+6~? @hU.&2nj3h2+ Rz ݫYU[C0Lw l sE<̷AdGj[A= htĒrd'_:;>M,dQUz͢vuI۰!ҩ{@xPnH X+F1x7=AMU65coKc| Jg2-ÛgM^JZ}QmŖKg:w ?]"=(PT<r= =J61)wګ|P "xQl]NDi؇Jɱkj@Ɍ&X[MR#a|s_ďhE)/A)>GǒyhΦ5Qj$ff8-d^_NL-hl1@+UD arh_I9}0p||o3: Zk vR1 xbNA3ǩ4S.ĘR/ 6c̻X.l?q:F=ՃOw= ؁2nxY'NDa*؁7"(|vCJ狱8dY!oGQ3eeK\Qz]@`/m/hhaKU7~\ 1;]6MYH d":A_Ş4Cw:tm?IX/^>xmfɃSLEIT7Wd՗oqM@$`Üք0')m:`[d_#_7ݪåq{+0]k/j&XM#x20' q} 4C,ւ,ۇ7K7DDyTNacD>>FgًJRx;/lhIHc5R842fC#79?$Kȯ[8(ZiDXEbv[E{ZixaV&36,KBz3K-|?.&ѥR`#A&J0O|w4k+NMy ՅE&334T[/OSİr~4e~nmU4xsrazP-mX>"OK t,^3nn/#λ36 [ ъk,Ux)#@o{3E)I13[7ʨRt#ca.Dlp @$>pʿ[1 gZ.,E7Q+JқElepHg65gym:Y{ ͱ9_ZUiC7M]Q4 k1NjO|1u_1Y0z~ ukhlJ[|[$Go]64x:c!0i7h6P])ɳALnk-d] basd[pY4{ءW4PigN€͙PyȑJ">w~L+`e{cWCͼ ׆ T;y?ɤ5R? "ID^ ߣ";!ʵ[[w56"͗JH vc'K;ߵy+^}wb 09ٷLQ%Ic3m$JGfvNd *m2'fK6xM~6ذ \jYg^hϘˬCK~^DqʀePB[W2ڥJ[2)?*cLAlEGuFuz^1ʆ! f~^1XA:*QAh/щր)bQt2@h1cLG HẅK-0+mJB.T*;e ?p| ]F/ji|Jyw9DaBM^M! xݼC(T5T&GqY54 +xƎQʔOI2Fnd9)h/vY:vxT|#t%0oSGҌD;{_x,F^ *TL.]D.:3Rb]uBғ+ْdha-A?sG) nY /hɛ< wFI}b2sf̮8#NG]Q)RTJGo{<~ե2@2[PfILyB.mR@v8Jٖh4a_Dr[ƨn1l%\5`#:PsN$$(0t(2^%mC&2h Qk&ER˲1/.t34^mGz~.P*5d[i',ӕ}9Qӆa69߯0nd-U!tD,uC:NrO 0`ZfO $ .EN4cE**d FJcwM&v{w Q/a]|i` !0X_Juܒr; )z-5_J*Q IpQIKšJ0"] Cf⽪aךfZ>.X8JӒ+s}hP |uLq4 J]1WPR 6"sMgUØJ2 OܰӓΑ9s/%KlkxX^W!,˨տg|DX, vzVVe֧]nr]fO3aNT@:,v ཎ޴P|RT@͵ژ L<F96⦆LHB{'8p6^;dQz5ԇB"aMi y0~P?[8pߑrY`b3RKs  fIڭOߟT2w}e+*Lּ\NQY(GiUS@0rP lJ!B%5߽?/Cfk[[7}43o] @]9l+_I7Z^tÙ 7¾yhbsQrqZxwSW|hI,}U*fUCq,V0"3چ$j֌ g bkb- ק- U-*f˷/X2ALkb|E둡0X+f/ Ιv@2 ciz/8$' 5K!Ԇ֝Isy(ީlla^ɌAӠr peD*׉qFW8<?m96ϿW&`Z]l$9APO`qk U\_0&Fz|ٕlv),yFeT҅ wE;P' T̄Hqƫ^m$K?Ld Y @80oo ǟ_!wLMMqm^2Z啌 IQA \HrPbJIߥۂ-fv57)\)k"ߏ^k]2?),@sq d^4um`̷ʢ|?Tb|MwjCt;u] udTWPIJij֞jh:Uhzp)RpDk~- %o|\u)tiw[7["A1ǂm\"1Yi-/C=VXDEpT޿FO,ҍeƀv-wʃP>E6TQ*?i2[nosL.^$7UG< FBs swr.u|t%mk'pŪPHC&Jó0}9JhЀ()ʠ5:K:pk4G ,hA-rx< ҈G7z\  db 쬾/C DedȥT1*ˡ_sa WvJо BrF<|v Ĩ@#.uxQuNICzxD6 C߀Q  Yqؠ3,/n$p&@e*k4W.G/D+rFA碭S¥k0@ɋG*oql#C(͕u3(dH%}"k(ka'?@G}ScZ̾A{]Ti^,x.i-kTe6t8Rl~k 6@{bpO83>/}K_?wf86+5GF -W)MS5+,&~b@wQ]^ow;n w` nfC@gZF\m-勥_.T#X$bth,;`!(qBTc%o NsWruKt3" Bli؏PfMX"dSlxaXNJ!~][lI=I}<,]=oL#q3Jggڳ Z {CtV"q*]G0'NIz;?{WbfSaͮ:_YP8W !ȿkq -Wqgx/PG>Mfz ]` *rjutŦPA%A;i1/c& ceAL0~WrtSgBݽ&J ,\j35[tbZW'ų! OTQ  ]̦m 3*<1?jQ/WFw~Ĺ y:Qdbh, Ӟ ܟ5%vvX% l7ajBdž_ nk` t?C罢?V!tBjF촗+OG#?m \8 S]a*h~gA4`;M*Np*,dx SԿO3ߋȨAMjp*C"4Bş]JW#6b[ӛemvkTnmDT$֟JӀhZ &pe%`7; E?/psaiOV b-$kܯ#"#FE\踮t]c%SX^#w01B)J'dT)27;,b,|Dr`Ēk5x+L"hbGqpcz~)==.J]hd{Jv dHC.|Ath]sB/Qމ߁P뱿Y/J+'fi~H-G3;!>*IWn?hwqAi<î`$/z̼i֍*H:#gM4<7Q7¶o̙pO=7&Q Se~On(wv'ү鋭ToѲ3[nnEYi/A4q\f+iNmdRfLEȕI y#+~)B/0Zy;4S k.5i0`'ԓ#2@ H$I'[Q72`C9Wk / DJ8P~`ycg I@ x͖G4>z j{4 5>5glC 5rꪀHϑ>P,z7i 6ՎgR:e§ ! G%+I1x2rE[jwy>8ho(X2ZeoK),lH5hOd6 [x"Ε$rH { hjy{i|׾ kiTa]vߠ8'D]+3pndΦz$E r+\O(ߵo0)E=`~%]zua8-X9N` Ա.BhC 6ka0'ܡJ1Gr48aXCgDP) vOB3rm5[Dq6@y{.x,|%җb0iN?(QL%&t7YFE *]B3o!v89Vqr|7SPjIp04׌f6XlK^yʆP7ǡp@AX7ۈ]_Ϧ$_Ʋ5i8"Z_^Y 㟓yU;ibU\6A Wq;#GM_8V{k!9zGSo8 5! :B ZN""[ldbjpKIR:Z#?: `//z-'23Xe$!D-Hlwt \eA552a+AW.tf Y^yW|̀[ࠆyĺIQvWvi2)%bƆ_]I ƻKp_sE(Jˆ'>\B)g-X_!_4~?-.WUlFC4Ț-7>(W `kBsVb*p=ˆCb {R"^tD (IUҢ$X/=ICu,v^d.* .tR03jox!"jqc{º5*MJ9cITfzߵN$O/ \S`׈UfO1>LpG ӥ2@ή `?%*aq6T!/i2;4Q{ ABI(\n]#S ޴u6'?تE>0BK^HjG4aj.+j 5i]p&E5yt=8 Cgab]UK}W6f[ZJőРI0c7MA)F8739+[ `]BUt7k?'4&&L߮ŎVyɰ[lE=cxR.0HGj7aXVIɌ2csk~ߎ@$?m9 T9{}BlK L ==_RfH$e{!cv_v:H7kL\TKU}c-~^h\c-1>1CԳ.A$(|5/u `cY{tz}LCHlUUΘ٘xwǪ ֔]DH1tX-dՐ}&t A"@KV4C(V8\7#vUTb t5@BEm8G2G-0 {MH:er+f+gJA"v*oK+?%0oЖ4Q Hf&c^,]%Tc/)T@ߏdopG{@$C_͆8#SVy?`Rq§OKHb\kn._tt[do0>{bB瀼F<8D6 T!¿,GC\SBy"CtsQ"[3qMFca?XɁQub`2om9@3N0I[AY V> 6% vk ^v-afocr׆bw KʲJqWJe[+Ihz-7K.90 PPXΙ#] .r׊ ֚ k b3 nASG5~>8Fue龩fx֐Ysv%g7Bbg Dtc{&4h 6=ܩrvX$o:p_۶ME]@u[,S/<t3Z'}| =v7")'X j`1|@|L%ThB^# eIU?t t X;Hesg=e-g;x#x}Sڽ,|yKqAr"e-O3ǙHj'@q'WCLs_-n9)2 lD7Y 7i$OP_ë 6L giETю|XZm#Wp䯩_[LL^SCceRa^d@)<`_*)oJ6省nuk=O$=PU|ǽKrQ6j U UIc5O%N tQa$wǣ}S%62 0{YyJG^} 7f&JNjiRV{l 3 :vÎ*ZSH20 FPk7\rZt]rO<Wa+E^vR8~Ǒ@ȵY;YEwvC8Sq _Nxrp 3Ijē/~u-9dnt4$z(`v`j!岞_oXx{ݽgؼ!V* " =Cr/ul  1tgD QɻIZЌ49?;6/(jcg?m-GZt Ht}Ѭ =<,T nKlεvU(_'9YH|Zm{MkOx[@ Ƿ_ &@-xƒ 0=މV>^^,S!ڎ2Z~ZXذff8qڗ~/*8t "mU'Ja=ߐP_,4!.+~i,%dm^Z# .̆Itĸ$< 9 jGk'飝T"?@72I g ė<bA5WG+4܊ XC#|9jFy<>{5C2@1v5 YAIfVJXf:ш`O3ujz,/Myˆ4f{ "Ρ&Ǐoov!<]s 5ȩ30.rC$4vkJ,OE:KiIUk1cCk}өE"XC9,YУ FE%;%jRc(nAf?(DeXq6u:y:yymQ_8sqVbtA#*ħ*ke^zNrG#MsZ;ޠ@P(ɻ='r&FMaPS*w.|OSZrIшWV iVZ%fm4uo1jv ¬.gIyoBQ_:}(SoCYSAn nZ0+[")dLTGJEi? ְU[V\}G+n*3(~0FtXs '.4q'nJe%DuMu!\I&->-nOD]zl=|Ks0#sj. 8a ';  f=sFY=·>ZoNJ2ĸTTRaJCᐉ~H]dzϧ[xx<հEoOfy/",+Z ]Cμ@c )@^=k]YO+FXo Ra;EGoRY F1assp-pPi.:RtSP)ԉ.D0p&,y.A-?R t>kIA6[ x篧I> īQOrZ,[{4fԍn42l𹀟x+Tc[|2s'"ӾiOi}~jܚ%.&;*秬2SpNW%;eOI> x?N2i3bL#>VPAF-039[>CL"SDE)ˇVqb_iŴu% V)}ida=1TWbn+ICCDNTH8)ib?~6XBNXDJ>膓YTMwY Rf(K?(#;J<4}N0J:TQcN/oNҒ߁ߠӥ;$uz<蒉"9:8 !D`Ծ|E4/2I\'h"Z5:'sD)Lb,Zv}@03 =F psiTԸ:b38O"։zͧ<j &#Qv6 mU¦4U몌 }(q޿|0{X?h2{߳dkY+r 6{)=齇R;˘i x2|&; 1787 z-z؇ Ө$+ |iBflh"Hߎp,6:(HdcC*;*)X 3v"/ ~ֿWcJ[XZ,`# OIy4^W=/[zJLm'8f1hc ^!s;Jú(([Ws CUL)SӀA7.b6/ycC/]+䧋|j Jk5PVE>&5DW)lbF!B/M}g»l lZ#»]ɼқ^MC@VyŸSܻ @BjʜܞD"z9=raEv{=x bvA1EDE"1%OsT -¨g/齘{WpxgW Kv[QՕoZhKL;({#ޥZi{%T I_$(_̊"]rk7B_OO;Qjݭ=Tʮ3$hqw;f1M{5wnVg07+; HV:in_ԔV'_&P#gxŧ$ OW. Xt*櫪ǡ5@!5)Цi <' rXcc?I}"*D9܄!pِ`,}54`4)_5*Dm(x.:HJ<ʇg?pv絸2S.yU 0pt_/#P7g&R6FbܨʧGOUV,̑L:e"Vr27RYؙ#E/7T H߽B<2sOWM@17]侀#0e9O%z>W8k8NGJě$kt`}Fѷam3BzD + @jwRGܓg+8HǨLk񫚥Q(A@;!Dij{5nlXc?A;}TXfYE>3QE,yoCk2#I@֗:"G0z׫3Be):eV2tJYge`\ui#=?/v+RƍmƔb<9"2'j ژux \{MIJwxqxegW\ a+[@% fm4MBy@õe-)<'ĊADIr1| թ z0!aEW@$U sJ"ZZW1벟Xtø T ڼsotbvξGy 5vd\'FjᲓ^dpAoK RP'F0*fp[bT m ;M?8GW'g,^X I + MOѿKkTP:3B=ɇ]͇1L1qtbw O<8K\ @䔜oUN"4hh@>CkclϬE1?;E&ptM@c`Qp%!N_pEn|ɖsүFG]zk(7',2oF*tWb#v:rcio.1!kd#k.q2ceA Àys=-6w$wՑ+'))vu˼rrɾ>;pۺak{ wfZ7jm;y BZ722iȱJcIkY삖Pl}h4hƔFo.\` qچE0ŚraG]3r}R&J N/ӷ*&9?SClL"Z9`BG#|!9r2ica|{  -!8~7v|{#]x!ΎX?lL6鉁NBFv3T;>1ʱ)sh ~nj>kL&3ڪޟ* ~ qNΑ&ݢi=&jB%Pd){f>3ѴDTLn2;"'JJr +('M n}o=3-2tKb«v޽aH6+=ʹqx{IyDpA Ѡ3tFS@+:"BBC%7͸s5gws^ Rv>6*ssK+@enG3IsDbJx 崜Dyiﯾ/Wl5+LAc- p1F/3v8Y[0o ?ǐ0 ?o'r-ACl?A}zρ&kś{)B(^DH~J|OHJԼb otorp#E bGYXlʉ?Q$N{z$)]w"ux 5,U3v|5?}_MT5awɜVjsyCZ>Є%AI| ĶWlh{--D\6g,pgz>ꆆ̟Uhv>z\"08FS@V9rs7)_Ͼ }w4K@?u$𵑊QHPcWaQixRIeptLK3E$DhbVa+$ȷc[Xڵ^28JYs\ tYfPֿ$ ~ !bed[3c^&zC&h6KY<֮l \A fꀅjIvM*Y f6`ڔ m|QJ UϜ7(b{%\ǟdɱPVr+.?wZHȨ0!WI|yLl,h {hPøV\_.?F熛7#w}sUhếSk<*&[{xW9,rCZ)q(/d_3FKg\Uu1h"EAgb٬BuB`StzM%@ƥЃyy`D>?Kv=h_O'o5G&ÇE 867Մ?Nf ;W~Tsn91Q mU(dsl>v:z,4 h'u8 WR>4GI2n9lT-ʫ]^dhcdle@7dr><\ .eǹh72N6;[/GוΛ*6PFi+d+9Zqm|kZHeLG0bU|aRfVjՎřY8ID*:tz<}"2zlRaV7 H|va4ZY2D%2L(:*^zsN/M :høNjQj/b9.cT0/ db ׾c@-*`2Qo牏K֠5f0ydYdo~CǓ αޭ;'|}S}r֫[׵u[i/N/gÚ #Z45Bax-(:UIQ tih\heϔelm}Z+.wC&N"DoVl!ZX£0&J<#skXn>#tu-B ig9eOcKMT4߷iॉ5p+<p&#ŒXR=v"JXURGq٬`O܈+ٔbAzA8B(m!*jC!H - 1,;:D0A*3?u;H$wo RRen ;lH@΍yPҮH34c6hpk2ɺ23Yiީ |@`JFq`;!o}ЈJ>G#(bHƞ@~ h 4y״ V>D[#7KLY͒~@yE;#Dε :Q ޛWp2~'%HDT{RJ+>|ywc2ţoi;e}ș&kM'Y6".Z1loh~Piu'yL`8,Ydu&9 -]J'F=_m6~> vjIDl[Psv?.Hmg]+,l=ؘ!+p.Tf\k y~ cCƋG:A\5\8ގfS\i!MUt.!kpDV6?zިŢa?p5G9PUGq:U/_dVxsǦ_avZh[i< JudqI%07EsV:}'~0k3[R#z5:;)ΏNu^=# Baɒx}lzUuΛpDw65V"s[K/-pUD'!ΈEClbv`ps2"Lk0iWme&0*VG.ΓJmDF;Oߤ];ɰm#bAun g!ңs1> #v .qlUY~7 n|x [Wpq?,wWF;^,aNWz3X@I֝w5jc %1 0/_oֿs|~K(%ײ6 $yc˯e&׽4k OP,٘~kpI @IuAܱdpZB#b_ciҘbz5U󐂗7[27XG?ڊGkg!\)Knᄏ@Zb3, 2L$ q?.D R,zW''NjhBSQjP1;x$^)39P٧{A ,9ӌw~XF"~R壙1gya^1d,K,2ٟ%52͎,1(lq}Y*Uެ lbj[5YMk)GJ+"fVm8̕irLOP{X|>law|ݞbKX1vh߿]1ׅ_ylVMP ||e,D88AqfxRi'ދ;%l q*Ő4JˏLW$#&-*uQGgټ!Mb1*[rj6'BI@l@hRB \d mȀUsv'V#,!%Nedr'K649yL1s5 Wj80I lޑ !qŲy?`ivfοXϟ—I& bbOi% L9K)+Ȕj*VPar7kʺ\b]/ĎIE%-+ӂO&(4ٸG:J̠⾸HTw̫Ēv^MO3> 6s{Y`M`h7\tӏεe:j*1c\ƭLF3"AO&-)8)5>ktGhߝ:dbyI*ۥlW^13PY:>Εx\.v_9d 6Y%,b9|DX6Pj#/QAa{DqU` =CװUZ-uTOQU=P8Z ]h"jdc#C0ngzď6 >H/jσ)l+4OpS{O}4ҾIbC{\ ܅7“˒4. 1Js[+0WiQdZ&tVie0X+KB3,xl!Rѻ!66?k@?n?[[-}@+&^KӒ.U*(%C Am973Y5DS(.VvE;[w1w?w^Cć)BFLǃAWɒhUvy)tIp E"RZEas{\&6`ـXyhw9[ڜ^O30 [v:8EIp=nc~SF eY:fuA%H,,k"씁e9{zCunX 'WaՐ8he1NUru9E ? >e?{-a8[ٌ4B)z*$ LT!} \3JOxX:4h I*l숛Tĕmt.} x!Z"Z@YV_?&c zTX 1) ҄,Ÿ  :s2__2W23GN!~z$$̷ނw-a(a˩ 9Gdv~xd؈4\Y˕K5x تP作֋.%lƉ&eǕ*Z͐O ~{ ^QWy¤NH @f0%,2toӁ\܈ErCvHاjj$Q|p5#LPlcwC@$Hlȸ}%aha#,0)c{Ԯ̿]lG6c^ rZ-S2ruzL|cPyk[[a=%fk7s@A@擏N:8`a(C]` Iu2Y \H9`E ;;Z-BݭM'0Zp=<ŊoD%L*蘅} =(8ނ>Bp~~>\ӝR@`0 m+ҿ'q I|&C]z*})xVRUrGH-EldXjpՂuu%Jv0t^bR:T*?n ='՞ `R(5MJܨ2}~;`l mU:z8aeۇNH!SE0*&9rQv> 5q:4 =fv}6 (ôƹx)'6X<)!WK9$qۛѯSɈ{{9dYXL ڏͽo5V/5]z*pQ&viZT+n*Ey :a+!ZmtK>]u+Ep+ 4lq{a?cf{N0X Ԏ!3j*6 ߚA#["',?%Y{ 9Cv| |yӳF䶩å-@!yXRcOWJkn2<9`x$y( ~] m6#S?J$!P(3]*{{GNOCQgr|MdWy; #C\vr v5#W$|~X+TKaLP# fbz6x# 7ZVG%an%5tTװtoOG^/WalOm$ƭ8`= ׆JxTe]2l0cg+B#j4)wȀ.G97p:BTՙ~~A\_%ԀaT=a KܵaP4HpNQZ=Jo)R79?_b4!W7#jszS&'/7ǧ;20t*{Q73;ɞXJ_X:GcLu;f(nUW^?̃k*Vh 9zx cB&l[sSjg8fooׯz:)0-lq}!/ل9 Ł)lS)+lwQ7T-[3/~GR$K 8J}#[4 m*B}>Mᓨw;[kCNkh=aKZq_ NXP Ͼ]KKtC%TShHΑc2ڿ@}i}s} _w-@KN&Ql[O0V*I!~ZT֘5]2 2LQcyOS6¡694 tI0xGno9h}yq_cؙ3ʧчL#@bX4 V[v]ec&]rbwdHEaG@A2%PYރ@lR&h) Ln5Gju/ 2g {oZWJ&kXSns7nEa 2~0[ik$/ YznEWFJ{RRjjeg(ȥ|H;&?epީ`K t) W*b9<,QdXjpuF5mcAHi;]nmSqw,q6QHwuꎱ+Hx+#\!Ry[yKy +MhOHЬ}tXa2q^!e;=٬C~I\ivR(Ly2kxҿXYqd-+L gX2v ae0Mʍy"gOey{m,mu==KG*W 9f*"uL=i)@::AL@xXf2پԅB>]GqmXtXwŴJ- a˙P+_6ͷDaO8U&Bt] 7Eq@#QO qă[(KbްdMW{]RM!tN^ޛIsL9 +{06Rߧy15GO;L3馎O*-L֦e" ++}i?$D 3K6ΏxҫXcX}{w~w6oq;q%RɤGϦÈ)kOؚ-~^-uqt&r@ag%أ/81q!zWYQt38z07x34#uAFU;"A سG<ۥNmSo$%xnv`U~ | A~]RkQ{I[`I?|.gS=[勞I|J@_zhΊE'1IU{=uf>t'-V;FKO=D//XUZẀf!͈j` # #|>r~~)v3z䮬!eQNizeȌnW%ӸV}lt_@\5OKNzIv*Eh/~ `m%%8j,2bؙkld7ch~CAxtr(flD׶s %O-AtF-Hk=_Dq댕ϩ0霙us>bzL=',\)ɍw?/÷7Ɍ-ڥ\o@Ј붿`XRIPesl< if iajAxC$CxN[d'$ x*+ߓ 2SF+hCh+q]3gI :؜q)o'uFLkoXYR-tE,' SaB(A szo|tB5y{&Y[u3 t*W%QV;cːLU3 *Mx{遣+aa\ }2Pt`,b㴼y9 :-f5(|nrD)_\W~PG LkHХ]ED׌hYBOf@BiɌd$msLwơeA)c`"ծLD#=-9U,U!E9tzE3s k~C6Md"g.)Uw'v$iqyG2C^s\vUV^['[.qO&;{Sfi #iw)~i*BbzNi&2*^\DH {1/}nr B;`ܘx)5oΫh;fI^SI/&%OwjJ=m8~ 9ux,(j2e#vE_zit#զ@tfiiGyxTB&աl"u41'}rĥ#Q.5Y ||AzKw7#"('yZ{󻛑EI%Q$Dٚ=CM*U VdxS,l-aT< DO8b7ng}p7=wn>?R@4I^I~2k@!GuD KFL3x\3TO&y5[ŀqk j*\=ea63¥_ CMd^ t]Z.`\kP،#a#)xѸc$;#8dyKG(v&C[Їz(BڏBeݓM@N:+}9yI5G|/--* }[vI<9C?Oh%.M6c ;EZ}9Q:a]Vx5@jכ zG?jv;/Z {_>ÎmyzG Ƥtk`!m8] CwIYn+ Nuf2oS CmeekcO'7=coR2Y a 9=cZBd1gwhvg֕OJXkQW1n?nKPH)bJo|#h*E#7BX|'׺N97y&kjX3$ظC\TL9HdZ4dhFfea1h5 ckGCD4)=?8ʎ [i\J+[׏L7b` y>=MFuazM.9n M#BKٗ$VBW;6Ȫ%)i;ȁ{JȄ_s*jˏ mW"bMeʚq~ymeW(R|vȖyD/G5I<ѳL]'/Hb~}#N >]QbŐa"'q]F!*a wj=A(\d7-Aȋ"4>0u0:ArKNwΡTTQRH!u)%-b۪|K=n$=4]"N㿀;4O#kp <7Jx:) uv/LW rnN g-8f#EWgLivdxUSzQKEK 6rL 0rix=OLƢX U5(9{Li͂_>,)7jtkROeU- --C=|ѳJSqhc4*Br8(6 czC)nZ$=Rn3i) v\yj1dUߦU!.GJx1px l(*ݜَIGuE l%͘q-uٵ# F_jBµ`wD Aѣq?c'N_XAMGDLWZ3^a}I(16\u=qq "sn؉6C!`!Emp_lKw9*!$+VY ƕw>,EV!~ڲ.rٞD)m'8%7*,Z}jv Ot7"Mxۇ~&BI>DCib2<܂śЅ:׻ɀI" <+o"ʏ#F9"ӳX+ iHlƚ kn+xJY4-wI5lHw_3==#u g1+kR?Cu[!H`‘$S?i>rӋǔ( rpQ(Qs x q1x24#?34y_ANALia2}֦@w4V?jHb]nw1GA:F2GyZOr@YZ6{9&^ _-ꖿ~M|ޘǴot,#c@W`Ve( X9Ki]0N.osMDc՗)Q Jқ ZJ'Ď 4/5ᢀ SR3z)Lu8Ι`쓂Lf0KyvIRÔeTUɝ2n^~1Y{F#e/@aYA+T/&n4QRx7KAQ*sL-E?X_s8Up }fm\5SK:2d{D* ;SȂanX n.Wj޿ ֛UģleP-Ý(\ԫ!E]}>B^C  S6A P-$pЧ+7tW$L;4:||FrA'’zg<%74vMa Uz'i>:*6i˰nQZ+f0LJFK6z&M`vtʔMte ,CXdb vpK0XrTfP[ahQ[V*V.ڝ-gD?q  ZY>!tM(b=cms!dJ:|qUW}WjjmkÒk^,k'pj[ZHl2ZDScsg[tm YT̂Ezԑ&a'TeトLIGSXZ.eAoZD.Y$qzxy9YsN9U[U)"*"0Ӑ>69P)rOE_sέc\ډuQ_ E;mDuW >ڹoA[PʙJx6k&Fiˌ saTlszťg\\%ewd(zwܗnF[onBNp.`|5 WFbf*QuZZ)R=r%bV;clcP"ism/Y eN3!|mKh~c Qڦd oSxcviF "l+oꭒn%Nj8q OTePU!q"+<¢ZsE6s~ 0goTfc7ٲ%𜄫_ƞ j*TA'y3s?Ćb輦b 3t$vA5({MFZ<'ñ'ٖ cPQv4bI&1t SE=j |lpLrkz79+Enϟ24,eV8Z/x't2#ϚhVsBQ~dhTIhQl*8=SwgZS@҅B 3X.'?+O`WvRnv`6SV/>TTc=n3qĝ-Wn5Y"x%i4/n/=:y]U8_!ZV* cd5 hᒙi5Ec{ ͲB!oq@_"qYL Ntȹ ƛ28 FIKފegrkrcfD*E|̏?XK2ħ_aՃ`ՙщ4n~eWQ(¼Ԩ w"pQY ]/ / N _ȔxG sQCIl*< 4kUQ|D (]k7®7PWvj<x$ `^(~q9U4L'T]||hzu"mLq > /H3s'ש6J!DT%,b~yG9k<GwG g ν;n`-Tw3e8HA鮐0؈m3tÇ稫Plώ֩#L]f~}+J&İrWG,iZ޶ c&hMA>q׃t_Қ 0lG5U8^Y(c^^5ߠJSNZp(SQF!O{{·d7#>Ӧ &!^'D#Ws?͝-E' >, 6t)>DOkdBI{wFe`sWCȔÅ2gKy)f(T(AHŠ_ P4]Zu*6'CB=SBRMjK6Q+ z˼z,"PkӥoJ1s LW] M~Z~v%$yZXhtS7-ތ%BM.es9LQ /ˆ[{d٥jB.rOe~6!? vm[ǭwD]l&6h3~p){#S _^5z,`)8n: -ՠ6M ؁<^.ZUzފnz^UfC( 8" "mbrӈ:3ԗ;.Cw>}/lأ]R){o0i΍Q)aGPßVC_0+x []< P+XF+mׄ*Ƞj[  uF8Q;0D}-ĥ-V&d f܍x<=27y~PB]fscR=SF\Gr{\`bnXX)jD3i&ʈx9sxN,-;ѪpS ʒCzz៥R/qϜR}lVpx8o|^gP)pNԭ1Ʀ1(q[˲_^y2Oy-51aιFה-$@D ᰆ&d`{ncOl sdqY8-NZ4gs{r 8gI=Kno(#mG 1+TxAdN 8ӝTw<4vŤ(y+^i8`go_@^PSO׻pTm7ɪ3Å!{0RZ9%zԋ%5c[s~=j:CBb"CETn -ɲ~Hyh:֔ybVy v R?cH/PLXxN.bm\P4(%$fJtJ&c{pEeUS4/@|;S޽$jB ՁUA#lIAyx/N'(pE#CƴrxJtC]Bm̽6LtW*;es$*ANӇYKqv7Q -AB=7Ji'XxF,dj\+C^<cd?Uv -VP]p4RmQhK{^ɋ}R{!UAH2;|uJkCKQI߈u;g[v>9sC,U)r#& dm%x92\wP{QeM CbdO+&v^9u缻 wRO\wB~fKvڎnC;%/̜1 lYZhI{n5I.F|m~XF+'UF)>ΌBVSyBy]!cpI?ߔ)'h$st͢KT+9EXY/e!cꤪ(dWW^6elZåԮV]] O$nU]O ˩qeN4>7|:7ʥ|7~