wisent-0.5/0000777000175000017500000000000011227205064007673 500000000000000wisent-0.5/Makefile.am0000644000175000017500000000130511227065676011657 00000000000000## Process this file with automake to produce Makefile.in # Copyright 2008 Jochen Voss SUBDIRS = doc examples EXTRA_DIST = wisent.py check.py BUILT_SOURCES = version.py bin_SCRIPTS = wisent pkgpython_PYTHON = grammar.py lr1.py scanner.py parser.py text.py \ template.py version.py TESTS = check.py version.py: configure.ac Makefile.am cd $(srcdir) && \ echo "#! /usr/bin/env python" >$@ && \ echo "PACKAGE=\"@PACKAGE@\"" >>$@ && \ echo "VERSION=\"@VERSION@\"" >>$@ wisent: wisent.py Makefile.am sed -e "2 i# WARNING: automatically generated from $<, do not edit" \ -e "2 i#" \ -e "s;^# FIX PATH$$;sys.path = ['@pkgpythondir@'] + sys.path;" \ $< >$@ chmod +x wisent CLEANFILES = wisent wisent-0.5/check.py0000755000175000017500000001117011227065676011256 00000000000000#! /usr/bin/env python # check.py - some checks for the parsers generated by Wisent # # Copyright (C) 2008 Jochen Voss # # 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import sys from os import remove, rmdir from os.path import join from tempfile import mkdtemp from grammar import Grammar from lr1 import Automaton testdir = mkdtemp() sys.path = [testdir] + sys.path errors = 0 class FakeEOF(object): def set_real_eof(self, EOF): self.EOF = EOF def __eq__(self, other): return other == self.EOF def __hash__(self): return hash(self.EOF) def __repr__(self): return "EOF" EOF = FakeEOF() ignore = object() def check(rules, tests, parser_args={}): print "-"*70 g = Grammar(rules) a = Automaton(g) fd = open(join(testdir,"tmp.py"), "w") a.write_parser(fd) fd.close() del a, g import tmp reload(tmp) p = tmp.Parser(**parser_args) EOF.set_real_eof(p.EOF) for input,e_tree,e_err in tests: e_err = [ (x[0], frozenset(x[1])) for x in e_err ] print "input: "+repr(input) try: tree = p.parse((x,k) for k,x in enumerate(input)) err = [] except p.ParseErrors, e: tree = e.tree err = e.errors err = [ (x[0], frozenset(x[1])) for x in err ] success = True for e in e_err: if e not in err: print " missed error: "+repr(e) success = False for e in err: if e not in e_err: print " unexpected error: "+repr(e) success = False if e_tree != ignore and tree != e_tree: print " unexpected result:" print " expected: "+repr(e_tree) print " got: "+repr(tree) success = False if success: print " success" else: print " failure" global errors errors += 1 try: remove(join(testdir,"tmp.py")) remove(join(testdir,"tmp.pyc")) except OSError: pass rules = [ ('one', 1), ] tests = [ ([1], ('one', (1,0)), []), ([], ('one', (1,)), [((EOF,), [1])]), ([2], ('one', (1,)), [((2,0), [1])]), ([1,1], ('one', (1,0)), [((1,1), [EOF])]), ] check(rules, tests) rules = [ ('A',), ('A', 'A', 'B'), ('B', 1), ('B', 2), ] tests = [ ([], ('A',), []), ([1], ('A', ('A',), ('B', (1,0))), []), ([1, 2], ('A', ('A', ('A',), ('B', (1,0))), ('B', (2,1))), []), ([1, 2, 3], ignore, [((3,2), [EOF, 2, 1])]), ] check(rules, tests) rules = [ ('A', 0, 1, 2, 3), ] tests = [ ([0,1,2,3], ('A', (0,0), (1,1), (2,2), (3,3)), []), ([], ignore, [((EOF,), [0])]), # check insertion of tokens ([1,2,3], ('A', (0,), (1,0), (2,1), (3,2)), [((1,0), [0])]), # check removal of tokens ([5,0,1,2,3], ('A', (0,1), (1,2), (2,3), (3,4)), [((5,0), [0])]), # check replacement of tokens ([5,1,2,3], ('A', (0,), (1,1), (2,2), (3,3)), [((5,0), [0])]), ] check(rules, tests) # check errcorr_pre rules = [ ('A', 1, 'pad', 1, 1), ('A', 2, 'pad'), ('pad', 0, 0, 0), ] tests = [ ([1, 0, 0, 0], None, [((EOF,), [1])]), ] check(rules, tests, {'errcorr_pre':3}) tests = [ ([1, 0, 0, 0], ('A', (2,), ('pad', (0, 1), (0, 2), (0, 3))), [((EOF,), [1])]), ] check(rules, tests, {'errcorr_pre':4}) # check errcorr_post rules = [ ('A', 1, 0, 0, 1), ('A', 2, 0, 0, 2), ] tests = [ ([3, 0, 0, 1], ('A', (1,), (0,1), (0,2), (1,3)), [((3,0), [1, 2])]), ([3, 0, 0, 2], ('A', (1,), (0,1), (0,2), (1,)), [((3,0), [1, 2]), ((2,3), [1])]), ] check(rules, tests, {'errcorr_post':2}) tests = [ ([3, 0, 0, 1], ('A', (1,), (0,1), (0,2), (1,3)), [((3,0), [1, 2])]), ([3, 0, 0, 2], ('A', (2,), (0,1), (0,2), (2,3)), [((3,0), [1, 2])]), ] check(rules, tests, {'errcorr_post':3}) rmdir(testdir) if errors: raise SystemExit(1) wisent-0.5/text.py0000755000175000017500000000652010771021441011151 00000000000000#! /usr/bin/env python # # Copyright (C) 2008 Jochen Voss # # 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA def split_it(args, padding="", start1="", start2=None, sep=", ", end1=",", end2="", maxwidth=79): """A generator to format args and split into lines. The elements of the list 'args' are converted into strings and grouped into lines. 'args' must not be empty. The first line is preceeded by 'padding+start1', all subsequent lines are preceeded by 'padding+start2' (or by 'padding+" "*len(start1)', if 'start2' is None). The elements within a line are separated by 'sep'. All lines except for the last are terminated by 'end1', the last line is terminated by 'end2'. If possible, lines are at most 'maxwidth' characters long. """ if not args: yield padding + start1 + end2 return if start2 is None: start2 = " "*len(start1) args = [ str(arg) for arg in args[:-1] ] + [ str(args[-1])+end2 ] line = padding + start1 + args.pop(0) seplen = len(sep) argslen = sum(len(a) for a in args) while args: if len(line)+argslen+len(args)*seplen <= maxwidth: line = sep.join([line]+args) break arg = args.pop(0) argslen -= len(arg) if len(line+sep+arg+end1) > maxwidth: yield line+end1 line = padding+start2+arg else: line += sep+arg yield line def write_block(fd, indent, str, params={}, first=False): """Write a multi-line string into a file. This function re-indents `str` to level `indent`, removes leading and trailing empty lines and white-space at the end of line, expands all tabs, and writes the result to `fd`. If `first` is False, a leading empty line is added. Blocks between lines of the form '#@ IF cond' and '#@ ENDIF' are removed if 'params[cond]' is not True. """ lines = [l.rstrip().expandtabs() for l in str.splitlines()] while lines and not lines[0]: del lines[0] while lines and not lines[-1]: del lines[-1] if not lines: return if not first: fd.write("\n") strip = min([len(l)-len(l.lstrip()) for l in lines if l!=""]) stack = [ True ] for l in lines: l = l[strip:].rstrip() l0 = l.lstrip() if l0.startswith('#@'): token = l0[2:].split() if token[0] == "IF": stack.append(params.get(token[1], False)) elif token[0] == "ELSE": stack[-1] = not stack[-1] elif token[0] == "ENDIF": stack.pop() continue if stack[-1]: fd.write((" "*indent+l).rstrip()+"\n") wisent-0.5/TODO0000644000175000017500000000170211226703342010300 00000000000000- conflict resolution leeds to parse errors: ABC: a X Y c; X: b | ! ; Y: b | ; cannot parser 'a b b c'. Fix this! - fix wisent to deal with "examples/crash.wi" - check the computation of expected tokens in case of parse errors - don't give an error for grammars like ABC: ( _X | _Y ) b c; _X: a; _Y: a; - write a proper manual page - Extend the format of grammar files to allow for arbitrary (i.e. non-string) symbols in the generated parser. Or allow for an alternative, Python-based input format. TERMINOLOGY: rule, production rule, grammar rule --- r, rule rule index --- k, key word, string, sequence (terminal, nonterminal) symbol, token --- X symbols have "replacements", "expansions", "derivations" tranparent symbol: name starts with '_', doesn't appear in parse tree input: (type,value,data) --- x parser state as a set --- I, U item (rule with a dot) --- item parser state as a number --- state wisent-0.5/AUTHORS0000644000175000017500000000003610762356224010666 00000000000000Jochen Voss wisent-0.5/NEWS0000644000175000017500000000220711227065676010324 00000000000000version 0.5: - add a user manual - allow brackets "(" ... ")" for grouping in grammar files - new operator "?" (zero or one copy of an expression) in grammar files - new command line option -o to specify an output file (instead of stdout) - Wisent can now optionally generate example source code to illustrate use of the generated parser (command line option -e). version 0.4 (2008-03-21): - efficiency improvements, both for the parser generator and for the generated parsers - Remove the manual parser type selection (was command line option -t) again. Wisent is now able to automatically generate efficient parsers for any LR(1) grammar. - add conflict overrides - allow to replace nonterminal symbols by numbers in the parser output (command line option -r) - rename the old 'Parser.parse_tree' method to new 'Parser.parse' version 0.3 (2008-03-07): - bug fix: restore the (accidentially lost) ability to exclude symbols from the parse tree. version 0.2 (2008-03-02): - bug fixes and improved error handling - add the ability to generate LR(0) parsers (use the -t command line option) version 0.1 (2008-03-01): - initial public release wisent-0.5/configure.ac0000644000175000017500000000041211227065676012107 00000000000000dnl Process this file with autoconf to produce a configure script. dnl Copyright 2008, 2009 Jochen Voss AC_INIT(wisent, 0.5, voss@seehuhn.de) AM_INIT_AUTOMAKE dnl Python support AM_PATH_PYTHON AC_CONFIG_FILES([Makefile doc/Makefile examples/Makefile]) AC_OUTPUT wisent-0.5/scanner.py0000644000175000017500000000623310770422227011622 00000000000000#! /usr/bin/env python # # Copyright (C) 2008 Jochen Voss # # 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA def tokens(source): """Generator to read input and break it into tokens. 'Source' must iterate over the lines of input (it could for example be a file-like object). The generator then yields 4-tuples consisting of a type string, a value, the line number (starting with 1) and the column number (starting with 1): if the type string is one of "token" or "string", the value is the corresponding input character sequence. Otherwise both the type string and the value are the same, single input character. If the input ends in an unterminated string or comment, a SyntaxError exception is raised. """ s = None state = None line = 1 for l in source: l = l.expandtabs() for col, c in enumerate(l): if state == "skip": state = None elif state == "word": if c.isalnum() or c == "_": s += c else: yield ("token", s, line0, col0) state = None elif state == "string": if c == '\\': state = "quote" elif c == sep: yield ("string", s, line0, col0) state = "skip" else: s += c elif state == "quote": s += c state = "string" elif state == "comment" and c == '\n': state = "skip" if state is None: line0 = line col0 = col+1 if c == "'": state = "string" sep = "'" s = "" elif c == '"': state = "string" sep = '"' s = "" elif c.isalnum() or c == "_": state = "word" s = c elif c == "#": state = "comment" elif c.isspace(): state = "skip" else: yield (c, c, line0, col0) state = "skip" line += 1 if state == "word": yield ("token", s, line0, col0) elif state not in [ None, "skip", "comment" ]: if l[-1] == '\n': l = l[:-1] msg = "unterminated string" raise SyntaxError(msg, (source.name, line0, col0, l[-20:])) wisent-0.5/configure0000755000175000017500000030312311227065713011525 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63 for wisent 0.5. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='wisent' PACKAGE_TARNAME='wisent' PACKAGE_VERSION='0.5' PACKAGE_STRING='wisent 0.5' PACKAGE_BUGREPORT='voss@seehuhn.de' ac_subst_vars='LTLIBOBJS LIBOBJS pkgpyexecdir pyexecdir pkgpythondir pythondir PYTHON_PLATFORM PYTHON_EXEC_PREFIX PYTHON_PREFIX PYTHON_VERSION PYTHON am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures wisent 0.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/wisent] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of wisent 0.5:";; esac cat <<\_ACEOF Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF wisent configure 0.5 generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by wisent $as_me 0.5, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.10' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 $as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 $as_echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:$LINENO: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 $as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='wisent' VERSION='0.5' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # Find any Python interpreter. if test -z "$PYTHON"; then for ac_prog in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PYTHON+set}" = set; then $as_echo_n "(cached) " >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { $as_echo "$as_me:$LINENO: result: $PYTHON" >&5 $as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PYTHON" && break done test -n "$PYTHON" || PYTHON=":" fi am_display_PYTHON=python if test "$PYTHON" = :; then { { $as_echo "$as_me:$LINENO: error: no suitable Python interpreter found" >&5 $as_echo "$as_me: error: no suitable Python interpreter found" >&2;} { (exit 1); exit 1; }; } else { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5 $as_echo_n "checking for $am_display_PYTHON version... " >&6; } if test "${am_cv_python_version+set}" = set; then $as_echo_n "(cached) " >&6 else am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"` fi { $as_echo "$as_me:$LINENO: result: $am_cv_python_version" >&5 $as_echo "$am_cv_python_version" >&6; } PYTHON_VERSION=$am_cv_python_version PYTHON_PREFIX='${prefix}' PYTHON_EXEC_PREFIX='${exec_prefix}' { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5 $as_echo_n "checking for $am_display_PYTHON platform... " >&6; } if test "${am_cv_python_platform+set}" = set; then $as_echo_n "(cached) " >&6 else am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"` fi { $as_echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5 $as_echo "$am_cv_python_platform" >&6; } PYTHON_PLATFORM=$am_cv_python_platform { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5 $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; } if test "${am_cv_python_pythondir+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$prefix" = xNONE then py_prefix_arg= else py_prefix_arg=",prefix='$prefix'" fi am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0$py_prefix_arg)" -n -q install $py_prefix_arg 2>/dev/null || echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` fi { $as_echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5 $as_echo "$am_cv_python_pythondir" >&6; } pythondir=$am_cv_python_pythondir pkgpythondir=\${pythondir}/$PACKAGE { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5 $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; } if test "${am_cv_python_pyexecdir+set}" = set; then $as_echo_n "(cached) " >&6 else if test "x$exec_prefix" = xNONE then py_exec_prefix_arg=$py_prefix_arg else py_exec_prefix_arg=",prefix='$exec_prefix'" fi am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0$py_exec_prefix_arg)" -n -q install $py_exec_prefix_arg 2>/dev/null || echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` fi { $as_echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5 $as_echo "$am_cv_python_pyexecdir" >&6; } pyexecdir=$am_cv_python_pyexecdir pkgpyexecdir=\${pyexecdir}/$PACKAGE fi ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by wisent $as_me 0.5, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ wisent config.status 0.5 configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi wisent-0.5/COPYING0000644000175000017500000004312210762356224010654 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. wisent-0.5/parser.py0000644000175000017500000003370211226403732011463 00000000000000#! /usr/bin/env python # LR(1) parser, autogenerated on 2009-07-12 15:23:57 # generator: wisent 0.4, http://seehuhn.de/pages/wisent # source: examples/wisent.wi # All parts of this file which are not taken verbatim from the input grammar # are covered by the following notice: # # Copyright (C) 2008 Jochen Voss # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # 3. The name of the author may not be used to endorse or promote # products derived from this software without specific prior # written permission. # # This software is provided by the author "as is" and any express or # implied warranties, including, but not limited to, the implied # warranties of merchantability and fitness for a particular purpose # are disclaimed. In no event shall the author be liable for any # direct, indirect, incidental, special, exemplary, or consequential # damages (including, but not limited to, procurement of substitute # goods or services; loss of use, data, or profits; or business # interruption) however caused and on any theory of liability, whether # in contract, strict liability, or tort (including negligence or # otherwise) arising in any way out of the use of this software, even # if advised of the possibility of such damage. from itertools import chain class Unique(object): """Unique objects for use as markers. These objects are internally used to represent the start symbol and the end-of-input marker of the grammar. """ def __init__(self, label): """Create a new unique object. `label` is a string which is used as a textual representation of the object. """ self.label = label def __repr__(self): """Return the `label` given at object construction.""" return self.label class Parser(object): """LR(1) parser class. terminal symbols: '!', '(', ')', '*', '+', ':', ';', '?', 'string', 'token', '|' nonterminal symbols: '_0*', '_2*', '_4*', '_6?', '_item', 'grammar', 'group', 'list', 'rule' production rules: 'grammar' -> '_0*' '_0*' -> '_0*' -> '_0*' 'rule' 'rule' -> 'token' ':' 'list' '_2*' ';' '_2*' -> '_2*' -> '_2*' '|' 'list' 'list' -> '_4*' '_6?' -> '_6?' -> '?' '_6?' -> '*' '_6?' -> '+' '_4*' -> '_4*' -> '_4*' '_item' '_6?' '_4*' -> '_4*' '!' '_item' -> 'token' '_item' -> 'string' '_item' -> 'group' 'group' -> '(' 'list' '_2*' ')' """ class ParseErrors(Exception): """Exception class to represent a collection of parse errors. Instances of this class have two attributes, `errors` and `tree`. `errors` is a list of tuples, each describing one error. Each tuple consists of the first input token which could not be processed and the list of grammar symbols which were allowed at this point. `tree` is a "repaired" parse tree which might be used for further error checking, or `None` if no repair was possible. """ def __init__(self, errors, tree): msg = "%d parse errors"%len(errors) Exception.__init__(self, msg) self.errors = errors self.tree = tree terminals = [ '!', '(', ')', '*', '+', ':', ';', '?', 'string', 'token', '|' ] _transparent = [ '_0*', '_2*', '_4*', '_6?', '_item' ] EOF = Unique('EOF') S = Unique('S') _halting_state = 25 _reduce = { (0, EOF): ('_0*', 0), (0, 'token'): ('_0*', 0), (2, EOF): ('grammar', 1), (3, EOF): ('_0*', 2), (3, 'token'): ('_0*', 2), (5, '!'): ('_4*', 0), (5, '('): ('_4*', 0), (5, ';'): ('_4*', 0), (5, 'string'): ('_4*', 0), (5, 'token'): ('_4*', 0), (5, '|'): ('_4*', 0), (6, ';'): ('_2*', 0), (6, '|'): ('_2*', 0), (8, EOF): ('rule', 5), (8, 'token'): ('rule', 5), (10, '!'): ('_4*', 0), (10, '('): ('_4*', 0), (10, ')'): ('_4*', 0), (10, ';'): ('_4*', 0), (10, 'string'): ('_4*', 0), (10, 'token'): ('_4*', 0), (10, '|'): ('_4*', 0), (11, ')'): ('_2*', 3), (11, ';'): ('_2*', 3), (11, '|'): ('_2*', 3), (12, ')'): ('list', 1), (12, ';'): ('list', 1), (12, '|'): ('list', 1), (13, '!'): ('_6?', 1), (13, '('): ('_6?', 1), (13, ')'): ('_6?', 1), (13, ';'): ('_6?', 1), (13, 'string'): ('_6?', 1), (13, 'token'): ('_6?', 1), (13, '|'): ('_6?', 1), (14, '!'): ('_6?', 1), (14, '('): ('_6?', 1), (14, ')'): ('_6?', 1), (14, ';'): ('_6?', 1), (14, 'string'): ('_6?', 1), (14, 'token'): ('_6?', 1), (14, '|'): ('_6?', 1), (15, '!'): ('_6?', 1), (15, '('): ('_6?', 1), (15, ')'): ('_6?', 1), (15, ';'): ('_6?', 1), (15, 'string'): ('_6?', 1), (15, 'token'): ('_6?', 1), (15, '|'): ('_6?', 1), (16, '!'): ('_6?', 0), (16, '('): ('_6?', 0), (16, ')'): ('_6?', 0), (16, ';'): ('_6?', 0), (16, 'string'): ('_6?', 0), (16, 'token'): ('_6?', 0), (16, '|'): ('_6?', 0), (17, '!'): ('_4*', 3), (17, '('): ('_4*', 3), (17, ')'): ('_4*', 3), (17, ';'): ('_4*', 3), (17, 'string'): ('_4*', 3), (17, 'token'): ('_4*', 3), (17, '|'): ('_4*', 3), (18, '!'): ('_4*', 2), (18, '('): ('_4*', 2), (18, ')'): ('_4*', 2), (18, ';'): ('_4*', 2), (18, 'string'): ('_4*', 2), (18, 'token'): ('_4*', 2), (18, '|'): ('_4*', 2), (19, '!'): ('_item', 1), (19, '('): ('_item', 1), (19, ')'): ('_item', 1), (19, '*'): ('_item', 1), (19, '+'): ('_item', 1), (19, ';'): ('_item', 1), (19, '?'): ('_item', 1), (19, 'string'): ('_item', 1), (19, 'token'): ('_item', 1), (19, '|'): ('_item', 1), (20, '!'): ('_item', 1), (20, '('): ('_item', 1), (20, ')'): ('_item', 1), (20, '*'): ('_item', 1), (20, '+'): ('_item', 1), (20, ';'): ('_item', 1), (20, '?'): ('_item', 1), (20, 'string'): ('_item', 1), (20, 'token'): ('_item', 1), (20, '|'): ('_item', 1), (21, '!'): ('_item', 1), (21, '('): ('_item', 1), (21, ')'): ('_item', 1), (21, '*'): ('_item', 1), (21, '+'): ('_item', 1), (21, ';'): ('_item', 1), (21, '?'): ('_item', 1), (21, 'string'): ('_item', 1), (21, 'token'): ('_item', 1), (21, '|'): ('_item', 1), (22, '!'): ('_4*', 0), (22, '('): ('_4*', 0), (22, ')'): ('_4*', 0), (22, 'string'): ('_4*', 0), (22, 'token'): ('_4*', 0), (22, '|'): ('_4*', 0), (23, ')'): ('_2*', 0), (23, '|'): ('_2*', 0), (24, '!'): ('group', 4), (24, '('): ('group', 4), (24, ')'): ('group', 4), (24, '*'): ('group', 4), (24, '+'): ('group', 4), (24, ';'): ('group', 4), (24, '?'): ('group', 4), (24, 'string'): ('group', 4), (24, 'token'): ('group', 4), (24, '|'): ('group', 4) } _goto = { (0, '_0*'): 2, (0, 'grammar'): 1, (2, 'rule'): 3, (5, '_4*'): 12, (5, 'list'): 6, (6, '_2*'): 7, (10, '_4*'): 12, (10, 'list'): 11, (12, '_item'): 16, (12, 'group'): 21, (16, '_6?'): 17, (22, '_4*'): 12, (22, 'list'): 23, (23, '_2*'): 9 } _shift = { (1, EOF): 25, (2, 'token'): 4, (4, ':'): 5, (7, ';'): 8, (7, '|'): 10, (9, ')'): 24, (9, '|'): 10, (12, '!'): 18, (12, '('): 22, (12, 'string'): 20, (12, 'token'): 19, (16, '*'): 14, (16, '+'): 15, (16, '?'): 13 } def __init__(self, max_err=None, errcorr_pre=4, errcorr_post=4): """Create a new parser instance. The constructor arguments control the handling of parse errors: `max_err` can be given to bound the number of errors reported during one run of the parser. `errcorr_pre` controls how many tokens before an invalid token the parser considers when trying to repair the input. `errcorr_post` controls how far beyond an invalid token the parser reads when evaluating the quality of an attempted repair. """ self.max_err = max_err self.m = errcorr_pre self.n = errcorr_post @staticmethod def leaves(tree): """Iterate over the leaves of a parse tree. This function can be used to reconstruct the input from a parse tree. """ if tree[0] in Parser.terminals: yield tree else: for x in tree[1:]: for t in Parser.leaves(x): yield t def _parse(self, input, stack, state): """Internal function to construct a parse tree. 'Input' is the input token stream, 'stack' is the inital stack and 'state' is the inital state of the automaton. Returns a 4-tuple (done, count, state, error). 'done' is a boolean indicationg whether parsing is completed, 'count' is number of successfully shifted tokens, and 'error' is None on success or else the first token which could not be parsed. """ read_next = True count = 0 while state != self._halting_state: if read_next: try: lookahead = input.next() except StopIteration: return (False,count,state,None) read_next = False token = lookahead[0] if (state,token) in self._shift: stack.append((state,lookahead)) state = self._shift[(state,token)] read_next = True count += 1 elif (state,token) in self._reduce: X,n = self._reduce[(state,token)] if n > 0: state = stack[-n][0] tree = [ X ] for s in stack[-n:]: if s[1][0] in self._transparent: tree.extend(s[1][1:]) else: tree.append(s[1]) tree = tuple(tree) del stack[-n:] else: tree = (X,) stack.append((state,tree)) state = self._goto[(state,X)] else: return (False,count,state,lookahead) return (True,count,state,None) def _try_parse(self, input, stack, state): count = 0 while state != self._halting_state and count < len(input): token = input[count][0] if (state,token) in self._shift: stack.append(state) state = self._shift[(state,token)] count += 1 elif (state,token) in self._reduce: X,n = self._reduce[(state,token)] if n > 0: state = stack[-n] del stack[-n:] stack.append(state) state = self._goto[(state,X)] else: break return count def parse(self, input): """Parse the tokens from `input` and construct a parse tree. `input` must be an interable over tuples. The first element of each tuple must be a terminal symbol of the grammar which is used for parsing. All other element of the tuple are just copied into the constructed parse tree. If `input` is invalid, a ParseErrors exception is raised. Otherwise the function returns the parse tree. """ errors = [] input = chain(input, [(self.EOF,)]) stack = [] state = 0 while True: done,_,state,lookahead = self._parse(input, stack, state) if done: break expect = [ t for s,t in self._reduce.keys()+self._shift.keys() if s == state ] errors.append((lookahead, expect)) if self.max_err is not None and len(errors) >= self.max_err: raise self.ParseErrors(errors, None) queue = [] def split_input(m, stack, lookahead, input, queue): for s in stack: for t in self.leaves(s[1]): queue.append(t) if len(queue) > m: yield queue.pop(0) queue.append(lookahead) in2 = split_input(self.m, stack, lookahead, input, queue) stack = [] done,_,state,lookahead = self._parse(in2, stack, 0) m = len(queue) for i in range(0, self.n): try: queue.append(input.next()) except StopIteration: break def vary_queue(queue, m): for i in range(m-1, -1, -1): for t in self.terminals: yield queue[:i]+[(t,)]+queue[i:] if queue[i][0] == self.EOF: continue for t in self.terminals: if t == queue[i]: continue yield queue[:i]+[(t,)]+queue[i+1:] yield queue[:i]+queue[i+1:] best_val = len(queue)-m+1 best_queue = queue for q2 in vary_queue(queue, m): pos = self._try_parse(q2, [ s[0] for s in stack ], state) val = len(q2) - pos if val < best_val: best_val = val best_queue = q2 if val == len(q2): break if best_val >= len(queue)-m+1: raise self.ParseErrors(errors, None) input = chain(best_queue, input) tree = stack[0][1] if errors: raise self.ParseErrors(errors, tree) return tree wisent-0.5/aclocal.m40000644000175000017500000006657511227065711011475 00000000000000# generated automatically by aclocal 1.10.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, [m4_warning([this file was generated for autoconf 2.63. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.10' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.10.2], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.10.2])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 13 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.60])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # --------------------------------------------------------------------------- # Adds support for distributing Python modules and packages. To # install modules, copy them to $(pythondir), using the python_PYTHON # automake variable. To install a package with the same name as the # automake package, install to $(pkgpythondir), or use the # pkgpython_PYTHON automake variable. # # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as # locations to install python extension modules (shared libraries). # Another macro is required to find the appropriate flags to compile # extension modules. # # If your package is configured with a different prefix to python, # users will have to add the install directory to the PYTHONPATH # environment variable, or create a .pth file (see the python # documentation for details). # # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will # cause an error if the version of python installed on the system # doesn't meet the requirement. MINIMUM-VERSION should consist of # numbers and dots only. AC_DEFUN([AM_PATH_PYTHON], [ dnl Find a Python interpreter. Python versions prior to 1.5 are not dnl supported because the default installation locations changed from dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages dnl in 1.5. m4_define_default([_AM_PYTHON_INTERPRETER_LIST], [python python2 python2.5 python2.4 python2.3 python2.2 dnl python2.1 python2.0 python1.6 python1.5]) m4_if([$1],[],[ dnl No version check is needed. # Find any Python interpreter. if test -z "$PYTHON"; then AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) fi am_display_PYTHON=python ], [ dnl A version check is needed. if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. AC_MSG_CHECKING([whether $PYTHON version >= $1]) AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], [AC_MSG_RESULT(yes)], [AC_MSG_ERROR(too old)]) am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. AC_CACHE_CHECK([for a Python interpreter with version >= $1], [am_cv_pathless_PYTHON],[ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do test "$am_cv_pathless_PYTHON" = none && break AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) done]) # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) fi am_display_PYTHON=$am_cv_pathless_PYTHON fi ]) if test "$PYTHON" = :; then dnl Run any user-specified action, or abort. m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) else dnl Query Python for its version number. Getting [:3] seems to be dnl the best way to do this; it's what "site.py" does in the standard dnl library. AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], [am_cv_python_version=`$PYTHON -c "import sys; print sys.version[[:3]]"`]) AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made dnl distinct variables so they can be overridden if need be. However, dnl general consensus is that you shouldn't need this ability. AC_SUBST([PYTHON_PREFIX], ['${prefix}']) AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) dnl At times (like when building shared libraries) you may want dnl to know which OS platform Python thinks this is. AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], [am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`]) AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) dnl Set up 4 directories: dnl pythondir -- where to install python scripts. This is the dnl site-packages directory, not the python standard library dnl directory like in previous automake betas. This behavior dnl is more consistent with lispdir.m4 for example. dnl Query distutils for this directory. distutils does not exist in dnl Python 1.5, so we fall back to the hardcoded directory if it dnl doesn't work. AC_CACHE_CHECK([for $am_display_PYTHON script directory], [am_cv_python_pythondir], [if test "x$prefix" = xNONE then py_prefix_arg= else py_prefix_arg=",prefix='$prefix'" fi am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0$py_prefix_arg)" -n -q install $py_prefix_arg 2>/dev/null || echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`]) AC_SUBST([pythondir], [$am_cv_python_pythondir]) dnl pkgpythondir -- $PACKAGE directory under pythondir. Was dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is dnl more consistent with the rest of automake. AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) dnl pyexecdir -- directory for installing python extension modules dnl (shared libraries) dnl Query distutils for this directory. distutils does not exist in dnl Python 1.5, so we fall back to the hardcoded directory if it dnl doesn't work. AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], [am_cv_python_pyexecdir], [if test "x$exec_prefix" = xNONE then py_exec_prefix_arg=$py_prefix_arg else py_exec_prefix_arg=",prefix='$exec_prefix'" fi am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0$py_exec_prefix_arg)" -n -q install $py_exec_prefix_arg 2>/dev/null || echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`]) AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) dnl Run any user-specified action. $2 fi ]) # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) # --------------------------------------------------------------------------- # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. # Run ACTION-IF-FALSE otherwise. # This test uses sys.hexversion instead of the string equivalent (first # word of sys.version), in order to cope with versions such as 2.2c1. # hexversion has been introduced in Python 1.5.2; it's probably not # worth to support older versions (1.5.1 was released on October 31, 1998). AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys, string # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. minver = map(int, string.split('$2', '.')) + [[0, 0, 0]] minverhex = 0 for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[[i]] sys.exit(sys.hexversion < minverhex)" AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR wisent-0.5/ChangeLog0000644000175000017500000002313211052047671011366 00000000000000commit 81928b6430f4dbcafe7e6e081773bd3bd3628153 Author: Jochen Voss Date: Fri Mar 21 20:32:57 2008 +0000 rename the old 'parse_tree' method to 'parse' commit adf515420f048ee82d98f05440e2239331d7fc3e Author: Jochen Voss Date: Fri Mar 21 20:17:03 2008 +0000 minor fixes commit 6e21b91ce6d103e85e50135dd2677719ff55f732 Author: Jochen Voss Date: Fri Mar 21 15:00:57 2008 +0000 text.py: Remove the unused function 'layout_list' commit 5a828d6585bb7cae75a882dcca82332972490995 Author: Jochen Voss Date: Fri Mar 21 14:35:21 2008 +0000 speed improvements in the parser generator commit e18978961317cedad8d42d5aceb03e3eaac8d6ee Author: Jochen Voss Date: Thu Mar 20 01:46:48 2008 +0000 Allow to replace nonterminal symbols by numbers in the parser output. If the new command line option '-r' is given, the generated parser uses numeric codes instead of the full nonterminal symbols in the parse tree. This reduces the size of the parsing tables and also may allow for faster parsing. A new class attribute 'nonterminals' contains a dictionary mapping numeric codes to the corresponding symbols. commit 6130721b8db7495f7e328d3c49ccbb33478b818d Author: Jochen Voss Date: Thu Mar 20 00:49:39 2008 +0000 Cosmetic fixes and docstring improvements. commit 343a1132a94b696b53a5aea4a0c86b142a023461 Author: Jochen Voss Date: Wed Mar 19 22:13:36 2008 +0000 Implement the LR(1) parser generator suggested by Pager (1977). Since this method is an efficient way to generate parsers for general LR(1) grammars, remove all code to select different parser types. commit 606b7a186f6a5a64d7e88cbfdb4c0abafe2386a8 Author: Jochen Voss Date: Sun Mar 16 17:41:14 2008 +0000 Remove the manual parser type selection. commit 6888f3b8040d9ad6db2e771799cdb693e3169d28 Author: Jochen Voss Date: Sun Mar 9 13:01:32 2008 +0000 assorted fixes for the grammar conflict handling commit 3629ae319d54b8f41e2511896dd18ca059eb2288 Author: Jochen Voss Date: Sat Mar 8 13:08:00 2008 +0000 First version of grammar conflict overrides. commit 1d95a6067b57a2185097bb6414125be3ebf905f2 Author: Jochen Voss Date: Sat Mar 8 12:40:45 2008 +0000 Start preparations for grammar conflict overrides. commit 23fd4d3d434f42a436bb0727696ec61e7ad34a27 Author: Jochen Voss Date: Fri Mar 7 17:35:16 2008 +0100 Move the grammar reading code into a new function 'read_grammar'. commit 24c3e0ba3594574993a6797ced7e0c15e4d07fca Author: Jochen Voss Date: Fri Mar 7 17:28:20 2008 +0100 cosmetic fix: make the output of LR(k) states a bit nicer commit 37436116fb2171c91536ad577c12dbf29e88c3d3 Author: Jochen Voss Date: Fri Mar 7 11:40:46 2008 +0000 prepare for Wisent release 0.3 commit d720f94db6ad507f3c50848356ecc5c64cce6136 Author: Jochen Voss Date: Thu Mar 6 20:39:42 2008 +0100 Restore the accidentially lost ability to generate transparent symbols. commit 6897c9ca0bcf35a95ca10ea6d791b6543eda5864 Author: Jochen Voss Date: Sun Mar 2 22:23:48 2008 +0000 prepare for Wisent release 0.2 commit 0363a3bb359719167a8564ff62ecc32cf27e7040 Author: Jochen Voss Date: Sun Mar 2 22:19:33 2008 +0000 Add line-numbers to the error messages for conflicts. commit 68db0f906854f821afe2a0edf3b4ed06946c2c90 Author: Jochen Voss Date: Sun Mar 2 20:09:27 2008 +0000 Add the possibility to generate LR(0) parsers. The type of generated parser is chosen using the "-t" option of Wisent. commit 4f1c6a31606c49ee17b9fe06909c8bfac313bbff Author: Jochen Voss Date: Sun Mar 2 18:09:54 2008 +0000 Improved error handling. Check for and report shift-reduce and reduce-reduce conflicts in the grammar. Also introduce a new function 'error' to print error messages. commit 7c89fc3ec31434b81f799f53e8efa47ee633223a Author: Jochen Voss Date: Sun Mar 2 17:48:08 2008 +0000 Fix several bugs related to shift-reduce conflict handling. commit 8a5bf535a5faca7066116444ad30b89720950ede Author: Jochen Voss Date: Sun Mar 2 17:25:42 2008 +0000 fix a typo commit 9dc301fcfe0c141811474734b7ba36b8777d3b2e Author: Jochen Voss Date: Sat Mar 1 23:19:32 2008 +0000 final preparations for the public release commit 524ac52cc1be45031702b9bb5d9fdacaa0cc6dd7 Author: Jochen Voss Date: Sat Mar 1 22:45:10 2008 +0000 Prepare for the first public release. Simplify the format of parse trees, add documentation, assorted cleanups. Also add a first, simple version of automated tests for the generated parsers. commit 3c9e626bd1abd6bbe1d5e8519ef460984ce3d190 Author: Jochen Voss Date: Sat Mar 1 15:57:53 2008 +0000 Start preparations for the first public release. Convert to use automake/autoconf for packaging the source and for installing the applications. Put the template file and the generated parsers under a 3-clause BSD license. All other files are under the GPL, version 2. Add license information to all source files. commit 2522023fc4d03c2ad6a2ea73d36bbe98eeb5c926 Author: Jochen Voss Date: Sat Mar 1 14:57:48 2008 +0000 first preparations for re-enabling LR(0) and LALR(1) parsers commit 2cafdbcee3297ce123b5379ad9bdb7c56fa08999 Author: Jochen Voss Date: Wed Feb 20 20:10:31 2008 +0000 clean up the parser table generation commit c9520c025eb04ce7cadd4b0a945e1431f4532734 Author: Jochen Voss Date: Wed Feb 20 15:35:13 2008 +0000 new method Grammar.shortcuts commit e9e40fe233b44ace44bd0eccedb6e0d7cdc0538a Author: Jochen Voss Date: Wed Feb 20 10:56:48 2008 +0000 minor fixes commit 1101e523403ee3d45c5f4e8e66e12b09139d26b6 Author: Jochen Voss Date: Tue Feb 19 11:15:43 2008 +0000 start a rewrite of the state machine generating code commit a81b1c83fc5d603bd031f181c3de3819893230f4 Author: Jochen Voss Date: Tue Feb 19 00:42:48 2008 +0000 cosmetic fixes commit f63da9c29847eba25b0459737dc622872595eecd Author: Jochen Voss Date: Mon Feb 18 11:13:31 2008 +0000 new command line option -d to debug the generated parser commit 5b58b3525e0872d810ddcc2dd7d95c208f9312e4 Author: Jochen Voss Date: Mon Feb 18 00:36:56 2008 +0000 start to clean up reporting of non-parse errors in the grammar commit 57fb46e92555b59cbe1076f0c0266066ff75e5c2 Author: Jochen Voss Date: Sun Feb 17 23:40:50 2008 +0000 better error handling and cleanups commit a6b7a9270f85e0c8852f1c2f3add9df5ae6468db Author: Jochen Voss Date: Sun Feb 17 01:19:37 2008 +0000 Update wisent to use a parser generated by itself. The parser of wisent is now autogenerated from the grammar in "grammar.wi". As a side-effect, grammars can now use the operators "*" (repeat a token 0 or more times) and "+" (repeat a token 1 or more times. commit 95e23d68f576a4be87242ccb83f4e96376e3e7a7 Author: Jochen Voss Date: Wed Feb 13 13:12:11 2008 +0000 further clean up the parser generation commit 9b796ea440fa1fe211500dbd28bac8a0a985b825 Author: Jochen Voss Date: Mon Feb 11 18:37:17 2008 +0000 bug fixes commit 1601b3dc3d7e04d64ade3c1eb9ffad1bd3fcf647 Author: Jochen Voss Date: Mon Feb 11 01:52:26 2008 +0000 add error handlingn to the generated parser commit 4b682476f3f9118fa9f861e9dab8252f900322b0 Author: Jochen Voss Date: Sun Feb 10 19:53:56 2008 +0000 minor fixes to the error handling in the generated parser commit 695a9ba0210bdc06a227b76ec68c32d56bc17e83 Author: Jochen Voss Date: Sun Feb 10 17:38:51 2008 +0000 Major cleanup of the generated parser code. Several cleanups make the generated code more efficient and readable. Minor bug fixes. commit 8409f0857ff633f52695f3cf0918deca8f805915 Author: Jochen Voss Date: Sat Feb 9 23:46:27 2008 +0000 cosmetic fixes commit a6d3dba20e6b0a2c49063589f0f85333b3058971 Author: Jochen Voss Date: Sat Feb 9 22:40:25 2008 +0000 cosmetic fixes commit 10b5e3f261a8d60e1e8fb35a380b82b2415d7819 Author: Jochen Voss Date: Sat Feb 9 20:36:00 2008 +0000 minor bug fix (keep lines <80 characters instead of <=80) commit 9525deda8c235dc0a28f99d6b2628c530362f2ce Author: Jochen Voss Date: Sat Feb 9 12:52:46 2008 +0000 restructure the code: lr1.py only contains the class definition commit a35e9e613d5e86351ff7f169278231dff06ea706 Author: Jochen Voss Date: Sat Feb 9 12:49:10 2008 +0000 clean up the code a bit commit 0a0c8808e918b22885f28ea8857d653a19891689 Author: Jochen Voss Date: Sat Feb 9 12:16:59 2008 +0000 add a .gitignore file commit 755fb5b0820e9ece904be4eea5ad049bb6729802 Author: Jochen Voss Date: Tue Jun 5 22:28:48 2007 +0100 start the wisent main program commit 1481c11d2dde9f0d4c68c955cb8c70599715927b Author: Jochen Voss Date: Mon Jun 4 21:23:05 2007 +0100 assorted speed improvements commit a05c588998ed76a0c86dec88a81d71c37ef2184a Author: Jochen Voss Date: Mon Jun 4 20:38:18 2007 +0100 Initial checkin for the wisent sources. wisent-0.5/lr1.py0000755000175000017500000004647011052047671010701 00000000000000#! /usr/bin/env python # # Copyright (C) 2008 Jochen Voss # # 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from inspect import getsource, getcomments from grammar import read_grammar, Conflicts, Unique import template from text import split_it, write_block from version import VERSION class Automaton(object): """LR(1) parsing automatons.""" def __init__(self, g, params={}): """Construct a parser automaton from the grammar `g`. If `params["overrides"]` exists, it can be used to override LR(1) conflicts in the grammar. The value should be a dictionary with production rule indices as keys and lists of overrides as values. """ self.g = g self.overrides = params.get("overrides", {}) self.replace_nonterminals = params.get("replace_nonterminals", False) nonterminals = sorted(self.g.nonterminals-set([self.g.start])) if self.replace_nonterminals: self.nt_tab = dict((X,k) for k,X in enumerate(nonterminals)) else: self.nt_tab = dict((X,X) for X in nonterminals) self.nt_tab[self.g.start] = self.g.start self.tables_generated = False self.checked = False @staticmethod def _is_compatible(S, T): """Check whether S and T can be merged. This implements definition 1 (p. 254) from Pager, 1977.""" core = S.keys() if set(T.keys()) != set(core): return False if len(core) == 1: return True for i in range(0, len(core)-1): I = core[i] for j in range(i+1, len(core)): J = core[j] if ((S[I]&T[J] or S[J]&T[I]) and not S[I]&S[J] and not T[I]&T[J]): return False return True def _closure(self, U): rules = self.g.rules first_tokens = self.g.first_tokens rule_from_head = self.g.rule_from_head todo = U.copy() res = {} for prod in todo: res[prod] = todo[prod].copy() while todo: prod,ctx = todo.popitem() key,l,n = prod if n == l: continue rule = rules[key] tail = list(rule[n+1:]) new_rules = [ ((k,l,1),res.setdefault((k,l,1), set())) for k,l in rule_from_head[rule[n]] ] for X in ctx: lookahead = first_tokens(tail+[X]) for prod,res_ctx in new_rules: new = lookahead - res_ctx if new: todo_ctx = todo.setdefault(prod, set()) todo_ctx |= new res_ctx |= new return res def _generate_tables(self): """This implements the algorithm of Pager, 1977.""" if self.tables_generated: return class StateIndex(object): def set_label(self, label): self.label = label def __int__(self): return self.label def __repr__(self): return str(self.label) rules = self.g.rules state_tab = {} self.initial_state = StateIndex() key, l = self.g.rule_from_head[self.g.start][0] state_tab[self.initial_state] = { (key,l,1): set([self.g.EOF]) } maybe_compatible = {} for X in self.g.symbols: maybe_compatible[X] = set() todo = set([self.initial_state]) done = set() reduce_tab = {} shift_tab = {} while todo: state_no = todo.pop() done.add(state_no) rtab = reduce_tab.setdefault(state_no,{}) stab = shift_tab.setdefault(state_no,{}) state = self._closure(state_tab[state_no]) shift = {} for prod,ctx in state.iteritems(): key,l,n = prod r = rules[key] if n == l: # reduce using rule 'key' rtab[key] = ctx else: # shift symbol r[n] X = r[n] p = (key,l,n+1) X_neighbour = shift.setdefault(X, {}) neighbour_ctx = X_neighbour.setdefault(p, set()) neighbour_ctx.update(ctx) for X,S in shift.iteritems(): for Tn in maybe_compatible[X]: T = state_tab[Tn] if not self._is_compatible(S, T): continue # merge S into T stab[X] = Tn changed = False for prod in S: add = S[prod] - T[prod] if add: T[prod] |= add changed = True if changed and Tn in done: # regenerate the neighbours of T as needed done.remove(Tn) del shift_tab[Tn] del reduce_tab[Tn] todo.add(Tn) break else: # create a new state for S next_state = StateIndex() stab[X] = next_state state_tab[next_state] = S maybe_compatible[X].add(next_state) todo.add(next_state) if X == self.g.EOF: self.halting_state = next_state # throw away unused states (might happen when regeneration of # states was needed). todo = set([self.initial_state]) used_states = set() while todo: n = todo.pop() used_states.add(n) todo.update(set(shift_tab[n].values())-used_states) for s in set(state_tab.keys())-used_states: del state_tab[s] del reduce_tab[s] del shift_tab[s] keyfn = lambda x: (x == self.halting_state,min(state_tab[x])) states = sorted(used_states, key=keyfn) for k, s in enumerate(states): s.set_label(k) assert repr(self.initial_state) == "0" self.states = states self.state_tab = state_tab self.reduce_tab = reduce_tab self.shift_tab = shift_tab self.closure_tab = {} for state in states: self.closure_tab[state] = self._closure(self.state_tab[state]) self.tables_generated = True def _get_actions(self, state, X): """Get the neighbours of a node in the automaton's state graph. The return value is a set of tuples, where the first element is 'R' for reduce actions and 'S' for shift actions. In case of a reduce action, the second element of the tuple gives the grammar rule to use for the reduction. In case of a shift action, the second element gives the new state of the automaton. """ ritems = self.reduce_tab[state].iteritems() actions = [ ('R',key) for key,ctx in ritems if X in ctx ] stab = self.shift_tab[state] if X in stab: actions.append(('S',stab[X])) return actions def _get_all_actions(self, state): """Return a dict of all actions possible in a state. The keys of the dict are the input tokens valid in this state, the corresponding value is the same as returned by `_get_actions`. """ res = {} for key,ctx in self.reduce_tab[state].iteritems(): for X in ctx: res.setdefault(X, []).append(('R',key)) for X,next in self.shift_tab[state].iteritems(): res.setdefault(X, []).append(('S',next)) return res def _check_overrides(self, state, X, action): rules = self.g.rules if action[0] == 'S': for k,l,n in self.closure_tab[state]: if n == l or rules[k][n] != X: continue if n not in self.overrides.get(k, []): return False return True else: n = len(rules[action[1]]) return n in self.overrides.get(action[1], []) def check(self): """Check whether the grammar is LR(1). If conflicts are detected, an Error exception listing all detected conflicts is raised. """ if self.checked: return self._generate_tables() conflicts = Conflicts() shortcuts = self.g.shortcuts() nt_tab = self.nt_tab rtab = {} gtab = {} stab = {} path = {} path[self.initial_state] = () todo = set([self.initial_state]) while todo: state = todo.pop() for X,actions in self._get_all_actions(state).iteritems(): word = path[state] + (X,) # try conflict overrides if len(actions) > 1: repl = [ a for a in actions if self._check_overrides(state, X, a) ] if len(repl) == 1: actions = repl for action in actions: if action[0] == 'S': next = action[1] if next not in path: path[next] = word todo.add(next) if len(actions) > 1: # conflict: more than one action possible res = set() for action in actions: if action[0] == 'S': for k,l,n in self.closure_tab[state]: if n "+" ".join(rr[1:n])+"."+" ".join(rr[n:l]) ctx = U[prod] ctxstr = "{"+",".join(str(x) for x in sorted(ctx))+"}" write(" "+rulestr+" "+ctxstr) def write_parser(self, fd, params={}): """Emit Python code implementing the parser. A complete, stand-alone Python source file implementing the parser is written to the file-like object `fd`, each line of the output is prefixed with the string `prefix`. """ self.check() from time import strftime params.setdefault('date', strftime("%Y-%m-%d %H:%M:%S")) params['version'] = VERSION write_block(fd, 0, """#! /usr/bin/env python # LR(1) parser, autogenerated on %(date)s # generator: wisent %(version)s, http://seehuhn.de/pages/wisent """%params, first=True) if 'fname' in params: fd.write("# source: %(fname)s\n"%params) write_block(fd, 0, """ # All parts of this file which are not taken verbatim from the input grammar # are covered by the following notice: #""") fd.write(getcomments(template)) fd.write('\n') fd.write('from itertools import chain\n') write_block(fd, 0, getsource(Unique)) fd.write('\n') fd.write('class Parser(object):\n\n') fd.write(' """LR(1) parser class.\n') if params.get("parser_debugprint", False): write_block(fd, 4, """ Instances of this class print additional debug messages and are not suitable for production use. """) fd.write('\n') self.g.write_terminals(fd, " ") fd.write('\n') self.g.write_nonterminals(fd, " ") fd.write('\n') self.g.write_productions(fd, " ") if self.replace_nonterminals: write_block(fd, 4, """ In the returned parse trees, nonterminal symbols are replaced by numbers. You can use the dictionary `Parser.nonterminals` to map back the numeric codes to the corresponding symbols. """) fd.write(' """\n') if "parser_comment" in params: fd.write('\n') self.write_transition_table(fd) fd.write('\n') self.write_parser_states(fd) write_block(fd, 4, getsource(template.Parser.ParseErrors)) fd.write('\n') tt = map(repr, sorted(self.g.terminals-set([self.g.EOF]))) for l in split_it(tt, padding=" ", start1="terminals = [ ", end2=" ]"): fd.write(l+'\n') nt_tab = self.nt_tab transparent = params.get("transparent_tokens", set()) transparent &= self.g.nonterminals if self.replace_nonterminals: symbols = self.g.nonterminals-set([self.g.start])-transparent nonterminals = sorted(symbols) tt = [ "%d: %s"%(nt_tab[X],repr(X)) for X in nonterminals ] for l in split_it(tt, padding=" ", start1="nonterminals = { ", end2=" }"): fd.write(l+'\n') if transparent: tt = [ repr(nt_tab[X]) for X in sorted(transparent) ] for l in split_it(tt, padding=" ", start1="_transparent = [ ", end2=" ]"): fd.write(l+'\n') fd.write(" EOF = Unique('EOF')\n") fd.write(" S = Unique('S')\n") # halting state fd.write('\n') fd.write(" _halting_state = %s\n"%self.halting_state) # reduce actions rtab = self.rtab r_items = [ "%s: %s"%(repr(key),repr(rtab[key])) for key in sorted(self.rtab) ] fd.write(" _reduce = {\n") for l in split_it(r_items, padding=" "): fd.write(l+'\n') fd.write(" }\n") # goto table gtab = self.gtab g_items = [ "%s: %s"%(repr(key),repr(gtab[key])) for key in sorted(self.gtab) ] fd.write(" _goto = {\n") for l in split_it(g_items, padding=" "): fd.write(l+'\n') fd.write(" }\n") # shift table stab = self.stab s_items = [ "%s: %s"%(repr(key),repr(stab[key])) for key in sorted(self.stab) ] fd.write(" _shift = {\n") for l in split_it(s_items, padding=" "): fd.write(l+'\n') fd.write(" }\n") write_block(fd, 4, getsource(template.Parser.__init__), params) write_block(fd, 4, getsource(template.Parser.leaves), params) write_block(fd, 4, getsource(template.Parser._parse), params) write_block(fd, 4, getsource(template.Parser._try_parse), params) write_block(fd, 4, getsource(template.Parser.parse), params) wisent-0.5/template.py0000644000175000017500000002521511226703342012002 00000000000000#! /usr/bin/env python # # Copyright (C) 2008 Jochen Voss # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # 3. The name of the author may not be used to endorse or promote # products derived from this software without specific prior # written permission. # # This software is provided by the author "as is" and any express or # implied warranties, including, but not limited to, the implied # warranties of merchantability and fitness for a particular purpose # are disclaimed. In no event shall the author be liable for any # direct, indirect, incidental, special, exemplary, or consequential # damages (including, but not limited to, procurement of substitute # goods or services; loss of use, data, or profits; or business # interruption) however caused and on any theory of liability, whether # in contract, strict liability, or tort (including negligence or # otherwise) arising in any way out of the use of this software, even # if advised of the possibility of such damage. def print_tree(tree, terminals, indent=0): """Print a parse tree to stdout.""" prefix = " "*indent if tree[0] in terminals: print prefix + repr(tree) else: print prefix + str(tree[0]) for x in tree[1:]: print_tree(x, terminals, indent+1) class Parser(object): """LR(1) parser class template. This class is only used to store source code sniplets for the generated parser. Code is taken out via code inspection and pasted into the output file. """ class ParseErrors(Exception): """Exception class to represent a collection of parse errors. Instances of this class have two attributes, `errors` and `tree`. `errors` is a list of tuples, each describing one error. #@ IF error_stacks Each tuple consists of the first input token which could not be processed, the list of grammar symbols which were allowed at this point, and a list of partial parse trees which represent the input parsed so far. #@ ELSE Each tuple consists of the first input token which could not be processed and the list of grammar symbols which were allowed at this point. #@ ENDIF `tree` is a "repaired" parse tree which might be used for further error checking, or `None` if no repair was possible. """ def __init__(self, errors, tree): msg = "%d parse errors"%len(errors) Exception.__init__(self, msg) self.errors = errors self.tree = tree def __init__(self, max_err=None, errcorr_pre=4, errcorr_post=4): """Create a new parser instance. The constructor arguments control the handling of parse errors: `max_err` can be given to bound the number of errors reported during one run of the parser. `errcorr_pre` controls how many tokens before an invalid token the parser considers when trying to repair the input. `errcorr_post` controls how far beyond an invalid token the parser reads when evaluating the quality of an attempted repair. """ self.max_err = max_err self.m = errcorr_pre self.n = errcorr_post @staticmethod def leaves(tree): """Iterate over the leaves of a parse tree. This function can be used to reconstruct the input from a parse tree. """ if tree[0] in Parser.terminals: yield tree else: for x in tree[1:]: for t in Parser.leaves(x): yield t def _parse(self, input, stack, state): """Internal function to construct a parse tree. 'Input' is the input token stream, 'stack' is the inital stack and 'state' is the inital state of the automaton. Returns a 4-tuple (done, count, state, error). 'done' is a boolean indicationg whether parsing is completed, 'count' is number of successfully shifted tokens, and 'error' is None on success or else the first token which could not be parsed. """ read_next = True count = 0 while state != self._halting_state: if read_next: try: lookahead = input.next() except StopIteration: return (False,count,state,None) read_next = False token = lookahead[0] #@ IF parser_debugprint debug = [ ] for s in stack: debug.extend([str(s[0]), repr(s[1][0])]) debug.append(str(state)) print " ".join(debug)+" [%s]"%repr(token) #@ ENDIF parser_debugprint if (state,token) in self._shift: #@ IF parser_debugprint print "shift %s"%repr(token) #@ ENDIF stack.append((state,lookahead)) state = self._shift[(state,token)] read_next = True count += 1 elif (state,token) in self._reduce: X,n = self._reduce[(state,token)] if n > 0: state = stack[-n][0] #@ IF transparent_tokens tree = [ X ] for s in stack[-n:]: if s[1][0] in self._transparent: tree.extend(s[1][1:]) else: tree.append(s[1]) tree = tuple(tree) #@ ELSE tree = (X,) + tuple(s[1] for s in stack[-n:]) #@ ENDIF #@ IF parser_debugprint debug = [ s[1][0] for s in stack[-n:] ] #@ ENDIF del stack[-n:] else: tree = (X,) #@ IF parser_debugprint debug = [ ] #@ ENDIF #@ IF parser_debugprint print "reduce %s -> %s"%(repr(debug),repr(X)) #@ ENDIF stack.append((state,tree)) state = self._goto[(state,X)] else: #@ IF parser_debugprint print "parse error" #@ ENDIF return (False,count,state,lookahead) return (True,count,state,None) def _try_parse(self, input, stack, state): count = 0 while state != self._halting_state and count < len(input): token = input[count][0] if (state,token) in self._shift: stack.append(state) state = self._shift[(state,token)] count += 1 elif (state,token) in self._reduce: X,n = self._reduce[(state,token)] if n > 0: state = stack[-n] del stack[-n:] stack.append(state) state = self._goto[(state,X)] else: break return count def parse(self, input): """Parse the tokens from `input` and construct a parse tree. `input` must be an interable over tuples. The first element of each tuple must be a terminal symbol of the grammar which is used for parsing. All other element of the tuple are just copied into the constructed parse tree. If `input` is invalid, a ParseErrors exception is raised. Otherwise the function returns the parse tree. """ errors = [] input = chain(input, [(self.EOF,)]) stack = [] state = 0 while True: done,_,state,lookahead = self._parse(input, stack, state) if done: break expect = [ t for s,t in self._reduce.keys()+self._shift.keys() if s == state ] #@ IF error_stacks errors.append((lookahead, expect, [ s[1] for s in stack ])) #@ ELSE errors.append((lookahead, expect)) #@ ENDIF if self.max_err is not None and len(errors) >= self.max_err: raise self.ParseErrors(errors, None) #@ IF parser_debugprint print "backtrack for error recovery" #@ ENDIF queue = [] def split_input(m, stack, lookahead, input, queue): for s in stack: for t in self.leaves(s[1]): queue.append(t) if len(queue) > m: yield queue.pop(0) queue.append(lookahead) in2 = split_input(self.m, stack, lookahead, input, queue) stack = [] done,_,state,lookahead = self._parse(in2, stack, 0) m = len(queue) for i in range(0, self.n): try: queue.append(input.next()) except StopIteration: break def vary_queue(queue, m): for i in range(m-1, -1, -1): for t in self.terminals: yield queue[:i]+[(t,)]+queue[i:] if queue[i][0] == self.EOF: continue for t in self.terminals: if t == queue[i]: continue yield queue[:i]+[(t,)]+queue[i+1:] yield queue[:i]+queue[i+1:] best_val = len(queue)-m+1 best_queue = queue for q2 in vary_queue(queue, m): pos = self._try_parse(q2, [ s[0] for s in stack ], state) val = len(q2) - pos if val < best_val: best_val = val best_queue = q2 if val == len(q2): break if best_val >= len(queue)-m+1: raise self.ParseErrors(errors, None) input = chain(best_queue, input) #@ IF parser_debugprint debug = " ".join(repr(x[0]) for x in best_queue) print "restart with repaired input: "+debug #@ ENDIF tree = stack[0][1] if errors: raise self.ParseErrors(errors, tree) return tree wisent-0.5/examples/0000777000175000017500000000000011227205064011511 500000000000000wisent-0.5/examples/Makefile.am0000644000175000017500000000035411227065677013501 00000000000000EXTRA_DIST = appel3.1.wi appel3.11.wi appel3.12.wi appel3.15.wi \ appel3.20.wi appel3.23.wi appel3.26.wi cg.wi crash.wi css.wi \ ex2.wi ex2a.wi ex2b.wi ex3.wi ex3a.wi ex3b.wi wisent.wi \ calculator/calculator.wi calculator/calc.py wisent-0.5/examples/appel3.12.wi0000644000175000017500000000004311226403732013371 00000000000000Z: d | X Y Z ; Y: | c ; X: Y | a ; wisent-0.5/examples/appel3.1.wi0000644000175000017500000000015411226403732013312 00000000000000S: S ";" S | "id" ":=" E | "print" "(" L ")"; E: "id" | "num" | E "+" E | "(" S "," E ")"; L: E | L "," E ; wisent-0.5/examples/appel3.23.wi0000644000175000017500000000004111226403732013371 00000000000000S: E ; E: T '+' E | T ; T: 'x' ; wisent-0.5/examples/appel3.26.wi0000644000175000017500000000005111226403732013375 00000000000000S: V '=' E | E ; E: V ; V: 'x' | '*' E ; wisent-0.5/examples/appel3.15.wi0000644000175000017500000000015511226403732013400 00000000000000S: E ; E: T Ep ; Ep: "+" T Ep | "-" T Ep | ; T: F Tp ; Tp: '*' F Tp | '/' F Tp | ; F: id | num | '(' E ')' ; wisent-0.5/examples/ex2b.wi0000644000175000017500000000004211226703342012623 00000000000000ABC: a X Y c; X: b | ! ; Y: b | ; wisent-0.5/examples/calculator/0000777000175000017500000000000011227205064013642 500000000000000wisent-0.5/examples/calculator/calc.py0000755000175000017500000000402411226703342015036 00000000000000#! /usr/bin/env python from sys import stderr import math from parser import Parser def tokenize(str): from re import match res = [] while str: if str[0].isspace(): str = str[1:] continue m = match('[0-9.]+', str) if m: res.append(('NUMBER', float(m.group(0)))) str = str[m.end(0):] continue m = match('[a-z]+', str) if m: res.append(('SYMBOL', m.group(0))) str = str[m.end(0):] continue res.append((str[0],)) str = str[1:] return res def eval_tree(tree): if tree[0] == 'expr': return eval_tree(tree[1]) elif tree[0] == 'sum': return eval_tree(tree[1]) + eval_tree(tree[3]) elif tree[0] == 'difference': return eval_tree(tree[1]) - eval_tree(tree[3]) elif tree[0] == 'product': return eval_tree(tree[1]) * eval_tree(tree[3]) elif tree[0] == 'quotient': return eval_tree(tree[1]) / eval_tree(tree[3]) elif tree[0] == 'NUMBER': return tree[1] elif tree[0] == 'brackets': return eval_tree(tree[2]) elif tree[0] == 'function': fn = getattr(math, tree[1][1]) return fn(eval_tree(tree[3])) p = Parser() while True: try: s = raw_input("calc: ") except EOFError: print break input = tokenize(s) try: tree = p.parse(input) except p.ParseErrors, e: for token,expected in e.errors: if token[0] == p.EOF: print >>stderr, "unexpected end of file" continue found = repr(token[0]) if len(expected) == 1: msg = "missing %s (found %s)"%(repr(expected[0]), found) else: msg1 = "parse error before %s, "%found l = sorted([ repr(s) for s in expected ]) msg2 = "expected one of "+", ".join(l) msg = msg1+msg2 print >>stderr, msg continue print eval_tree(tree) wisent-0.5/examples/calculator/calculator.wi0000644000175000017500000000062211226703342016251 00000000000000expr: _additive ; _additive: sum | difference | _multiplicative ; sum: _additive '+' _multiplicative ; difference: _additive '-' _multiplicative ; _multiplicative: product | quotient | _primary ; product: _multiplicative '*' _primary ; quotient: _multiplicative '/' _primary ; _primary: NUMBER | brackets | function ; brackets: '(' _additive ')' ; function: SYMBOL '(' _additive ')' ; wisent-0.5/examples/crash.wi0000644000175000017500000000002011226703342013057 00000000000000A: B; B: 'b' A; wisent-0.5/examples/appel3.20.wi0000644000175000017500000000004611226403732013373 00000000000000S: '(' L ')' | 'x' ; L: S | L ',' S ; wisent-0.5/examples/appel3.11.wi0000644000175000017500000000015611226403732013375 00000000000000S: "if" E "then" S "else" S | "begin" S L | "print" E ; L: "end" | ";" S L ; E: "num" "=" "num" ; wisent-0.5/examples/ex2.wi0000644000175000017500000000004011226703342012457 00000000000000ABC: a X Y c; X: b | ; Y: b | ; wisent-0.5/examples/wisent.wi0000644000175000017500000000027211226403732013301 00000000000000grammar: rule*; rule: token ":" _alternatives ";"; _alternatives: list ( "|" list )*; list: ( _item("?"|"*"|"+")? | "!" )* ; _item: token | string | group; group: "(" _alternatives ")"; wisent-0.5/examples/ex3b.wi0000644000175000017500000000004211226703342012624 00000000000000ABC: ( X | Y ) b c; X: a; Y: a !; wisent-0.5/examples/css.wi0000644000175000017500000000273611226403732012567 00000000000000stylesheet : ( CHARSET_SYM STRING ';' )? (S|CDO|CDC)* ( import ( (CDO|CDC) (S|CDO|CDC) )* )* ( ( ruleset | media | page ) ( (CDO|CDC) (S|CDO|CDC) )* )* ; import : IMPORT_SYM S* (STRING|URI) S* ( medium ( COMMA S* medium)* )? ';' S* ; media : MEDIA_SYM S* medium ( COMMA S* medium )* LBRACE S* ruleset* '}' S* ; medium : IDENT S* ; page : PAGE_SYM S* pseudo_page? LBRACE S* declaration? ( ';' S* declaration? )* '}' S* ; pseudo_page : ':' IDENT S* ; operator : '/' S* | COMMA S* ; combinator : PLUS S* | GREATER S* | S+ ; unary_operator : '-' | PLUS ; property : IDENT S* ; ruleset : selector ( COMMA S* selector )* LBRACE S* declaration? ( ';' S* declaration? )* '}' S* ; selector : simple_selector ( combinator simple_selector )* ; simple_selector : element_name ( HASH | class | attrib | pseudo )* | ( HASH | class | attrib | pseudo )+ ; class : '.' IDENT ; element_name : IDENT | '*' ; attrib : '[' S* IDENT S* ( ( '=' | INCLUDES | DASHMATCH ) S* ( IDENT | STRING ) S* )? ']' ; pseudo : ':' ( IDENT | FUNCTION S* (IDENT S*)? ')' ) ; declaration : property ':' S* expr prio? ; prio : IMPORTANT_SYM S* ; expr : term ( operator? term )* ; term : unary_operator? ( NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | TIME S* | FREQ S* ) | STRING S* | IDENT S* | URI S* | hexcolor | function ; function : IDENT '(' S* expr ')' S* ; hexcolor : HASH S* ; wisent-0.5/examples/ex2a.wi0000644000175000017500000000004211226703342012622 00000000000000ABC: a X Y c; X: ! b | ; Y: b | ; wisent-0.5/examples/Makefile.in0000644000175000017500000002006011227065712013474 00000000000000# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = appel3.1.wi appel3.11.wi appel3.12.wi appel3.15.wi \ appel3.20.wi appel3.23.wi appel3.26.wi cg.wi crash.wi css.wi \ ex2.wi ex2a.wi ex2b.wi ex3.wi ex3a.wi ex3b.wi wisent.wi \ calculator/calculator.wi calculator/calc.py all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: wisent-0.5/examples/ex3.wi0000644000175000017500000000004011226703342012460 00000000000000ABC: ( X | Y ) b c; X: a; Y: a; wisent-0.5/examples/ex3a.wi0000644000175000017500000000004211226703342012623 00000000000000ABC: ( X | Y ) b c; X: a !; Y: a; wisent-0.5/examples/cg.wi0000644000175000017500000001727211226403732012371 00000000000000translation_unit: external_declaration* ; external_declaration: function_definition | declaration ; function_definition: declarator compound_statement | declaration_specifiers declarator compound_statement | declarator declaration_list compound_statement | declaration_specifiers declarator declaration_list compound_statement ; declaration: declaration_specifiers ';' | declaration_specifiers init_declarator_list ';' ; declaration_list: declaration | declaration_list declaration ; declaration_specifiers: storage_class_specifier | storage_class_specifier declaration_specifiers | type_specifier | type_specifier declaration_specifiers | type_qualifier | type_qualifier declaration_specifiers ; storage_class_specifier: "auto" | "register" | "static" | "extern" | "typedef" ; type_specifier: "void" | "char" | "short" | "int" | "long" | "float" | "double" | "signed" | "unsigned" | struct_or_union_specifier | enum_specifier | TYPEDEF_NAME ; type_qualifier: "const" | "volatile" ; struct_or_union_specifier: struct_or_union '{' struct_declaration_list '}' | struct_or_union IDENTIFIER '{' struct_declaration_list '}' | struct_or_union IDENTIFIER ; struct_or_union: "struct" | "union" ; struct_declaration_list: struct_declaration | struct_declaration_list struct_declaration ; init_declarator_list: init_declarator | init_declarator ',' init_declarator ; init_declarator: declarator | declarator '=' initializer ; struct_declaration: specifier_qualifier_list struct_declarator_list ';' ; specifier_qualifier_list: type_specifier | type_specifier specifier_qualifier_list | type_qualifier | type_qualifier specifier_qualifier_list ; struct_declarator_list: struct_declarator | struct_declarator_list ',' struct_declarator ; struct_declarator: declarator | ':' constant_expression | declarator ':' constant_expression ; enum_specifier: "enum" '{' enumerator_list '}' | "enum" IDENTIFIER '{' enumerator_list '}' | "enum" IDENTIFIER ; enumerator_list: enumerator | enumerator_list ',' enumerator ; enumerator: IDENTIFIER | IDENTIFIER '=' constant_expression ; declarator: pointer direct_declarator | direct_declarator ; direct_declarator: IDENTIFIER | '(' declarator ')' | direct_declarator '[' constant_expression ']' | direct_declarator '[' ']' | direct_declarator '(' parameter_type_list ')' | direct_declarator '(' identifier_list ')' | direct_declarator '(' ')' ; pointer: '*' | '*' type_qualifier_list | '*' pointer | '*' type_qualifier_list pointer ; type_qualifier_list: type_qualifier | type_qualifier_list type_qualifier ; parameter_type_list: parameter_list | parameter_list ',' '...' ; parameter_list: parameter_declaration | parameter_list ',' parameter_declaration ; parameter_declaration: declaration_specifiers declarator | declaration_specifiers | declaration_specifiers abstract_declarator ; identifier_list: IDENTIFIER | identifier_list ',' IDENTIFIER ; initializer: assignment_expression | '{' initializer_list ',' '}' ; initializer_list: initializer | initializer_list ',' initializer ; type_name: specifier_qualifier_list | specifier_qualifier_list abstract_declarator ; abstract_declarator: pointer | direct_abstract_declarator | pointer direct_abstract_declarator ; direct_abstract_declarator: '(' abstract_declarator ')' | '[' ']' | '[' constant_expression ']' | direct_abstract_declarator '[' ']' | direct_abstract_declarator '[' constant_expression ']' ; statement: labeled_statement | expression_statement | compound_statement | selection_statement | iteration_statement | jump_statement ; labeled_statement: IDENTIFIER ':' statement | "case" constant_expression ':' statement | "default" ':' statement ; expression_statement: ';' | expression ';' ; compound_statement: '{' '}' | '{' declaration_list '}' | '{' statement_list '}' | '{' declaration_list statement_list '}' ; statement_list: statement | statement_list statement ; selection_statement: "if" '(' expression ')' statement | "if" '(' expression ')' statement ! "else" statement | "switch" '(' expression ')' statement ; iteration_statement: "while" '(' expression ')' statement | "do" statement "while" '(' expression ')' ';' | "for" '(' ';' ';' ')' statement | "for" '(' ';' ';' expression ')' statement | "for" '(' ';' expression ';' ')' statement | "for" '(' ';' expression ';' expression ')' statement | "for" '(' expression ';' ';' ')' statement | "for" '(' expression ';' ';' expression ')' statement | "for" '(' expression ';' expression ';' ')' statement | "for" '(' expression ';' expression ';' expression ')' statement ; jump_statement: "goto" IDENTIFIER ';' | "continue" ';' | "break" ';' | "return" ';' | "return" expression ';' ; expression: assignment_expression | expression ',' assignment_expression ; assignment_expression: conditional_expression | unary_expression assignment_operator assignment_expression ; assignment_operator: '=' | '*=' | '/=' | '%=' | '+=' | '-=' | '<<=' | '>>=' | '&=' | '^=' | '|=' ; conditional_expression: logical_or_expression | logical_or_expression '?' expression ':' conditional_expression ; constant_expression: conditional_expression ; logical_or_expression: logical_and_expression | logical_or_expression '||' logical_and_expression ; logical_and_expression: inclusive_or_expression | logical_and_expression '&&' inclusive_or_expression ; inclusive_or_expression: exclusive_or_expression | inclusive_or_expression '|' exclusive_or_expression ; exclusive_or_expression: and_expression | exclusive_or_expression '^' and_expression ; and_expression: equality_expression | and_expression '&' equality_expression ; equality_expression: relational_expression | equality_expression '==' relational_expression | equality_expression '!=' relational_expression ; relational_expression: shift_expression | relational_expression '<' shift_expression | relational_expression '>' shift_expression | relational_expression '<=' shift_expression | relational_expression '>=' shift_expression ; shift_expression: additive_expression | shift_expression '<<' additive_expression | shift_expression '>>' additive_expression ; additive_expression: multiplicative_expression | additive_expression '+' multiplicative_expression | additive_expression '-' multiplicative_expression ; multiplicative_expression: cast_expression | multiplicative_expression '*' cast_expression | multiplicative_expression '/' cast_expression | multiplicative_expression '%' cast_expression ; cast_expression: unary_expression | '(' type_name ')' cast_expression ; unary_expression: postfix_expression | '++' unary_expression | '--' unary_expression | unary_operator cast_expression | "sizeof" unary_expression | "sizeof" '(' type_name ')' ; unary_operator: '&' | '*' | '+' | '-' | '~' | '!' ; postfix_expression: primary_expression | postfix_expression '[' expression ']' | postfix_expression '(' ')' | postfix_expression '(' argument_expression_list ')' | postfix_expression '.' IDENTIFIER | postfix_expression '->' IDENTIFIER | postfix_expression '++' | postfix_expression '--' ; argument_expression_list: assignment_expression | argument_expression_list ',' assignment_expression ; primary_expression: IDENTIFIER | constant | STRING | '(' expression ')' ; constant: INTEGER_CONSTANT | CHARACTER_CONSTANT | FLOATING_CONSTANT | ENUMERATION_CONSTANT ; wisent-0.5/doc/0000777000175000017500000000000011227205064010440 500000000000000wisent-0.5/doc/wisent1500.jpg0000644000175000017500000201754311226426717012722 00000000000000JFIFHHC  % !###&)&")"#"C """"""""""""""""""""""""""""""""""""""""""""""""""""I!1A"Qaq#2BR3$brC%4Ss5D4!1A"Qa2q#B3RC ?z=0zq|s,Q櫱xeQ=,[z/HzbmTPԡbQD~w|YrE|Mt+Gl,`s;⠱jX5P(gNښ78FL4Y { qxW?-ߜ1n,GБJR z%*w$cՌ88LwͬQ8Zmog2-|Z38XT+jaLdS%#_Gj/\L_O;EI /q\;HK85od@o42#62-팜/w`- msgX} m؂`Qbpf]37|tv?X- yG nE&Qz:I^N1e1`|=qJ7#>i"fVCŽ/,GVEW Qn~#Lċ*yCsUdR=ЋsQnfP!=y_Q9(GRTW7!O%ig-_>HXk` P8oC%2SV]F?)?F34sKCTzi&r+l-2V' /#dG$e-0$*?4jqB6gRF e["h4@F^+?FL9OC 0=/&"C sH#jƋΫ\2UڑG~ث/lO3S2%i73* E`x)%TL;Vڰ#w>e2;cueد-XG,Mk6'ae1W].WcW. CKo[p_Pw%V m'j;nh! $hVRFQ^|gx;cj#.iБw^;9PXY-[rN*JFd|C%ҌRHP慟;^ hckc<ڲVmVȵ-#zbI:y ï}y:Vg3Lͽ^*xO`{п [!?1K#bN|"R0Rv>nޜ`FBoaxf4n>h>~J).fѕ*EE !5n L;8[uނo"3+|,yn|ϙb/6FSMC?PqU }?9pvQc?;&k!:U*5eQFHI޹斿q#gLPą(%d{`'"b,%[ucI?pnO.`Cҭ[כְFG%+56\/m?|z1 D&QW8.-HItk3'J6]ѳ04mA&c{%9xԬA:ƪ=,]j_8C4fWj}׌$TG'>4ίcl2HW7g7\p4ZGrls[za.1Nte©"@mO6)T.aNV4᪫6urnYyM#h59[;4pAkdP+aZBͤo8ÔY ^'$,2ebңlu343O;0L*Q^/a~\4X_0)ɺcVkCއ>q2"o;.V 0QlbOgFo07 Բ$̻in~xeB߈M TF@p } [3ݯ[Sa@ %% dJl]jyV) p`V(G/{T!C|KZ9A!xTn1!AI"4lаp;0>&Y!K[)Lh"˘lM|qEup@ƿ/r}5iFk4 4v۾ *[M+{`|L Ԃ  A֎5i!TT $azmh=M+8?e #QueRގd^3%l~#Pu8hI"51$KNj*86=1Ӷtz)ΰV0=M'x2 CL{8Eń%|_7y8b q{?1" FḪ`> $d!1ި* дȄ%(2@:xF4VE ($/# "6X*Du:Z=-H$tS^eY5:!XΤUlԀ9Eڨ|~x,`+Q 0yGP(jWyF}G [,]kO{b1%SjApHGc@™H\bq`s L3T)zXaol3"o=,@띅iX%Ko__9VI# V{SYyzLj+b:3/z2*HTcԊ:/ sg7JV^D;1l)I^X0b?20hYKh\W YU٘UT|1C Uotc iSV튵in/xJG!nCڱZ^0kfi3h$,Zù|]BRy&X§ܞ53\JE 5j㽁=Lk5D g|U1NTh?|Y6uD@O۵ #+1GcYܤ^+p㎋Дf_7/]d>6RU˦z96R`t5~=˴Ly(:GiT!bkލmKGq~G<G@(]VDMYft"2#rc@\z51J nv=No1z0ڈ–6vCj RH{$|{;ǜ34&IlH mn)c6(5*^c9$.kjiZdfe) ѓ@}>gpba SC9Z߷̆o=Q^AGI:0^Rx˘3zWq0ܜVaX%2T{9|^aϯPFN֗IcL$[>6g&VX.\dr@Ɓ2}R|YZߏ]9hVE~Ii2ۭn>#,^SC39×@k (d)V)rb}~㊠(eާYu{Pח+ T%SHd Lka^+YObEd cWϜ,#EMqX! @~wK;4Ӷ^k;o|rhQ+O"J7IHiĕd#QTs9y? rIU3S55پئFW34<H# sY)r.b7Cfr:Nz7-*nGX,cىfe.<F[0?Uvcoخ-.MY̒H$z*(W$yt+E2pMX!Ox7聇>]6 Yt L#~!Xa˃1AkfӲ*MFj/pȬu53sǨX!} 3{D+9lx2? X IJxop_-py ]QIʒv9kn0+C)3WJJ/&8Fq#cc|0@"EG㉜FI4BZQ'Տ*PŴT?)\;cԠe<|q؇ōmzNlJ:'ƽi-ؔq #c삯 "t3&6l˴Nk7/ )ĜzL]j#1. 4ns*^1#/!Jn^ƄhکEV%f$}V6%:}0|*LFOT [hr0|PVh=plƑ_Sɏ萌ČanlD +DlYUVx宂]u bX5}e5XDm{Wᡌ‰ }r^Ϋf yE X+>@J2U#1Sh|H|pd'װ￾H7c4f эB҂=}0k9i,tJՇ_xMvXm5bw#*f@qH2ר'c1tMRj**oU֞o/6j)FVa%:k+#GQ>2}~*˼@SП2gӧy x3f^<}+Jjg0|夋(lW}^2if +loՋ,ܹYT>uXI%tu0]ji3FRDy,EXLx7e^J3ɗXbZ)'7A;qDxw:}jVbH9XpIh,{+} asxxtJD^츮7ÑFtSΎ'ZR[8_sLa&Wpڽl^PKF$P^}ka)]B/8ú R}i=RGpjpWz&/h,DCix;_,a/6`q{ml E]ޭ}M^nshj&87z4BAa`~3 .I֑:õ &I8Y*Dq]jIlCʉhɑF,a+VZGĞ|jhVp; գ] |r \M)(&&Z)!!O׶i'Y! ]=S';K;cEEkç]>c'Yt:&xEǰ61O36yA-@ \]o=2LZ &6Am~ $msK6IcOutfFUP>BiddP}/\V Z Se"q8 !e|̱de .o84S^x02dzX坥2A!^H V|?MN Ĉ]_OB*ϭ!Y H[ 'a?L"Ƕ.|٣ʼiRLe%}8O6zko "X~78}'ɚȢ !u)~0~2fʤsؾj͓-1GRX2lY-}ptf!g1 5.5Q2/m!TO;?W{8Jyk.ຘ1foqVa"-j;WL]"D-'%m ]KC{>\ȵJSqGF=$/,L]|QdTw'I`;oi ՖMV<|^,KM$\},|h$z {42F>+.yFyp"LQ=ve_%), m;['$Q;ǡ5:II%t Lc)4`_K\Z%ֲ5:+"Tۉ[zyc(EBKf%h~b,ƨt7 VM>|[MvWA #H"]Zx@L͸1f34@ h f9DhT@{FV3HOaC#r 2,ZB0ٻcE&]zm8D#Ӟ XsrA$1P[aV`+Wo-$nA'{6Ԙ1*)C3W$O'-^mXb޹.o6Vhƚ|1[;hvibeM=)Gb=4$ZPMn׆ 'ƹ|VP: +Gt TN,00nqChModU㙚jS }{aSmգHa*˨6݈'zǿ5,S4f#tAh8I"_b+Ni%<ǘ9Z1((Q| 5#+c4If)f' B*AN\g2;:턝//-/y '.4&P9eTm`[H.I,ոچE$8 ㉄`H{bBQX1(Sg%Bxn K\2I#^ǁʜF *(rtx0U, ߌ<4[]ՆH:XCЮveeRTv5D9Չl1lnjǾiu$+9]KBrAWc2VF/ƃ ‚k):v:p;!KE^)cÈuӤi^( ?2sB2^ׂJCpFǾ}0HkW6A |UBy)sxN C7**d(Ar/;s 9<֒l3Yvm !(Ї;^Pfs?tQT=Fv%ae3/񝐘s:M"&K5GeBBMw YYVcu툫GV5Cx%+55,\ƕs|XbOQ+̬˅MPnJCC}[ayQn.@FuhMkOWzʔtc<)7pۜ &1tڍrXfQXRJ`|琋D5 F,;I.TqsyWA¶dK""ɡ툌Yj05am3O\&M"f-]L2ݎ<,jhq`wH8׾:Qzu&5!-=I!G;:e c>Rse 8<1{+ ~Ñ39&p/vRdFaGťkEq<H<$7^ @SE~*VNP+|AWI-l<)1@sq郦ʲeRFR%4"٫+j2r؏%$qxA; DB+ @Hrȶ5@Yq@Y'BBb[^,FPңrF$Q"fPչ2 H>?I%ꇱ FҜPc-&E߾)z G bX9PEQ[4MO銖 vjI(`Wb#YۏlrHEI\fc|v{( ś,~V-rB[nh8YLhHPv$ $5=!v,NE"G̅IJw$Wm;z0"2 ]qEM4.4V6w$80G#m&T[рmr+0t#ad[c?#bbوruQnvlY;q(ػ_|QH|)LE$cԏleR8 q bDX a9Ƒ$m|Z3maX'NxRHjLƨ|;kiFWUe0Ǩ\m?l\ HjYy'gap>q`nxi!Po r`.yn7l/ƒȨ#x!ad0$H6w6רX'JqUSsd۸bspi R%kwv]|H,hCVR~ #EVzq# dE`8+7CFg,`\'nMq޿ eEbXo#IZA"=h|:@("ܩoĬcF*qQzEޥq'˔xkeylN\kb(ΰ#3ZI ˃J VWaQ3B9Q$^mS׷[bࣩ{⚖FF W} ߶mrlhhPyT^2,K-A (obcō˱o lfLEQ9Vj'r2+P(77{vwFpDYmŚeezг#*'ά#C=l5ybx/ q 7z` %5)6 Glj6$;lyR~e]i4S3:93>ZU4Ht9^,ÃHoƷ%N$2J*7d:WA&^6AU3j >j¹=Mi:3 %W_nyXYYa"QbYl |e{cIӲe{'v7\R1rlG1NJ('|q,gq0|CJ)T`YF*,nWL|ftr&O-@W$+ѕb*vf(HSe"Ԉw[;_g$"}yR['Ks *P5 PڍwgIP+u\S]KىisV:?l^`@Xb9E]/ e~ʥ7,1E=/ƺ PI\W,RHH@M̜ ٳf7Q^ұTy!B{ZlFJ(YW!npc>]VZCa8匳92Zk $Y4q;/ Ta?lX_FՖ.6')`w)6GL1k;Y&: [/ro[ԁdT2"YjGc1 ,b]H<pc>2O\9-p$jClup?}[v lS1$u"};D&YAhd†B}|W*!.ccW̏ qCėP'- ĨtyG9_B})V0G~"(XivV\aH$ivF ˲Y¨ ucCм2FTƾby! iYTI}+N#m8F&Em_<*2%l(Y#]@/ٺ8gX2̭E?\/1*%,bHVWʺyUSt]5c 3ؔqGepeٯd|7G6~k-XٟVVi >$iBnwⰽ(Hv >Nb%#>'.&6I8$;Iؐ'9(B2̦Q| 4ҌcEkash80CMaXM) | F1 |I]:#}WE)zBzg0vvL46e@QFw^$w 1PNu il]! TaGj62Z<%O2_-Z1Ƞ ňHr䥠'~ ,_IX9¿;>˘ʘBVՄy[_V(#ŝI} dͯoƭ lYUiyՂ$y2,k"Eq_$32%|Ú%NC4}?)qI 8Tb۾4-j^7AeҞ'J~"tğ cQ&16nwZHhHt%GjᄳBVՉ"ZDF$RTo`l$(-LQZڈ.b(o &2G@(-(؁RW`hc @z`w\] 9j 6@ĤJEuBnؽ3EoϾ"NW4YM҂6FQDh W*((bc2T.p"G~'&0uU׽q+aUVBu6oDf!1q]=8d qǪm0PȬzuE̟Qp1ۡ2F]uȃm~#c8ۜOz,w*e 2";8 1b@c=rk$[vmQWgjмDzgv99ll>p-ziu&,FWS c=[_aJ^5;>cyb43˩wf wij][?[t Fmk153vec$*a)|QKvzWŞQ 0,a34>VV@ 3aTnƣoњN41MiM,"+k6~xs\͸='b>8.<0[Vb9^\H({c˞CH:Ezh￱8u-;,Q}gx]N@.j0Ӊ|o6wt6_Pr}82,% ,0_ߌ-u~>tlc팎d!p[q0,qHnQy߳g&P\Xȱ=DO4VEs[>z/"v83GIJeÆTe]W W=,êI"r@Nݎ+:x<\5 v YoIZ0챂6H6$6bHSa<:R$n>p< fĪr5^o8'ad&i6zS+}d4I8 UcHk!|G5 k$4HBuaEoGO,IԦ(5I5${l9a|ٰ_(1 ;@I7CZ/™JX /C7%LokzWPrvJ#w[,ӅF]\bqč`WZr5@qKgZB&Y Y((wafR(IRA:7MXѴ ;f!;:qLTlz`p/SΤ(5Os,D6onHPOrxH:FLۚ;K$.IF [|+ e9ra1d ~Ϝ6]$#/!sjlz0d{fs-Yڬyp[':  v9HFUMWz92;W9lo%38ѩ`seod- qB0C޳+fB5[J"An=FYeuV|afm6}Nd.gO$< ͑WpۦBLh5QanGk7S 6  2H( Q` G_\G6hcE1ٗlԳf3]&X#A|lr6)y~9e3ը6vƦ+H]d#ZT =>gqc⨢Lc.c8VtsyC=/-=6x3aa,p.X78Gk܆X/#}(IS,RKP{ۜYD3x (~|qӖ,#]ٛZ).;wAqFUw'L |Fob1YtpXUtF˷ ${pqt-,{Ѣx,iȰ0Zhz\,r^k} ֎Rm=1%W%cX,ЀښF0'*㑧v@۸LTM[rxXw˳x/k1X#9v:v{}k }2,eqғG*Efhu/= PsLP$j<_lhe㑙n//#.Y$zV;!HŚ}lE=fFOqf$w_N}\Qŭp܌3bK 8 hajFq&V%}AlŞ1F >tg,'!ԤwbhJs̒"Es* W4mQuIv rvbߟ fչϓ 0[ k J   R*uZkB,Fؾc:)Mvel2Ώj9 94HP`|dc$kƆߠ8|r:*Ydf̤t| ׳YvÂ:Ebv>`7,hWes0e_Рjc\c[.:e5Xus\R.;.^+gS;;+xx`u񳌼Go d)a{($`ݥXRc6y)dtk+#y" !cӺLq翭OR7SAE Uؒ92BҍaykIvZX`Fm#~o0&Gb#_Qgp;< )d#IGk*_/1P߃$leH9H^BP ;2@X0QʡA?h!q${*t"X]nEw/vFpAI>6PD"qx-O#ϔ遍TGdD3$[mQcU1.${6=UXywްXb3ES [qXvHY⢭q4ŇO"uk2 H7l%C3-[ cSʢ?lG$$3ՕgAcUl}po!Pe|߈IkvNH~#mAS." J[qFHOTRU|qeGg;0}3uhz@mVlyhk$A/j求=3Y2Jh ہ{ҧ71B .zilxHuhF#GQPQBF-^ tC:IZ|C!dҢX"IBs+eN.ɽ${S  5MbáPjoңNœ(x֍qK͔jЀwߜFiYE#S/|ټ@T2 vqR+fA]Tr[PpU*@Wm{?/:;IoFćctv=)#`+I5j≼ c!%ZUL0QV-ҔpldHS 6Y̬ *6w;lxDZn_\4SnKf.J,G I[uAq z\fevx֦bAIҖeʟ(w2Q튥IY :lI^{ A"V \rf*͖s}v])Cߘ fHƥ qҖes69[4JKYbh'3͗ʴ T8u yhI4Yd/48dCVGLʁOk;@Q6?|,KCMv NRB`47~W{q:L5CPBp'\s,T2pyybe-p)g 5O8W_"}"v٨3PUa|q#ʧv?TTb°ƀ٧g2R/{2dcXMг 1ac|+ϸ0_.!1+s ilV,y(5BbJ ![f?I)T 2,PYATNO ;Dv\-b|@CP6AjܚTdPu2)_(V&5A_9.rwENk=d 1ċ]*hh&ɣ@iI':FضWPgCYÙ1uudI*׭G rcY^hʝ|5Ze !FdnFZΠbh[ @Ǵ*=MNjTK.qZIIЧSX.rfF_77˖VV[zwJH" @+cW,4o 려UقiUowlM51XU돠gk$njW.P5Q_cM9 *Lۃ"fR)NHE1VՂE?|>yd˘mTI CȻ)#$!N /a@ޟg3ҝjKo{aS*YJJ A'<^(Q7c+Y4;eʸhz<※I4c퓃/9i%LA@)ߜx.at7?.ǗBMߥE|$r8ޭcph߱I6Ѳ. ,hi΃X~c9U-b6>:\2#Xsvz)GH5L= oY|/};YD3?VbT<x>\dYƲv$\2ˣ*ۓ?"̩1wřX"( lMlID&3H"U}L,#//x>䏦Ow`G'+K86A jHevKHHb!WkG 2D1 &⪱~f?9!*G|W@|pwbkH<8YW3pcaeh6Ȍ 0f0 EyO# aCWBKY;]qCr-j%-†xWhoe:T6wۃ0n6eB-Q68Df aR&`5wC[lp3~U;7 r}}V[SFd.jhCY37.SȔF5 _srH%]6m| hI]j_T#zZ|سJo?`xpdiBA;cTUў*+$gj"#\g헝ev52aggCv΋wzz7V) 4lWq{cR{y8Lđ+ƪRR 槮̻+)6QxL92 RΓD~FuNc7EH vcB{#$zF锋b@ 烰'=06g=<ɘK.hZf:lQ|AL'N#,c-iU^0t^i 2dX_ᚺ ݃afF/}~|iz@V D_5]V-[:x ^Q߱e 1eo~s1Ӌ ~tS4#‹Al{>ȭ+FBv7) Ah($IjrEU <|sv4Aᔢ5jņ !Fv6g&0YBٖ,FX#?QI1H\:;]j:H X߂Om$FLg$q7;zc4=#USD9Ө`gf 0#zQSM%"S]`ψ)H7*kX\(9Y<ЁBM 0Ye+y u~Ss+. hmN/| 6!Oa Ӣyz3ħ2xs>T9ޫ :WL~Hxe%,aLJwa9<4 hވ-l:(7"7#nqjG9tʁ ޓ%"T}nR _fBE;Q:)a G?@\(uz`N;' BҟO Hs>FLyEWml(lǏ+ ( l~` pG XōGUy;!hᕘ#MWI,ك B5cxI;LB #kZ22_7;E(N  %2Az4X'x5f4$q٣p&ް/5 Ak,l "pQ>$`*]6P }0FdrUTosv;=o^AjvUafdW>A$t&mϦKx-/ ؾNtsl҈qG,`kXv mT٢*UxtsqDs]'P`ځc-^s`JC/2x_9nN,Cb}ǮDx*%-ˏ|U> kB9+ Sm xxђB|Y\M'`LQ55}2Zj 6o돦.U_.Be$~|ot,Ρd,^8?=nZ6N+a{/;Տ|3Ge%g3KTPklkܿF:@cDZkl0fH/1|#tKǥ01" ^aU8f僦4"b%I>1M}$3#9Tˑ&\* ٿ]zF \3la>j]=?ʼnWXҠ7_#߾ ?#|IBFݬ8yձ!*IS:QERO;{m ETEyHolh2h83FhR%劄Nb1_pEsYbXU_/&a 9wiY#O }n,hZx2:]1A#H!܆5M#OR{~ 'A@W].fE hC,vb=.K$CT,T&^+<(RoNP/wawVЬU w]#mUE՘oa޴a^!RBv^ʀcThS>tv`)Y^{W]\7j~l/xTo}f!c& z$`s\@"aī]NDq+UdR7̷^eLRDyU?7IY>V4d,,ۛhc$ d>eb˰ޅ|tI$뉓Dg0#DВe g2<]'AĝѭZOCeċ>c_ÎeV`K4/vgڽtw +!v.N+{⨃u}Kd6@Pdg~ItC\늂&eDF8 no-:?pv;# 65VHUB@Ri69VJ ODlUEFK֜\uQʎfU?v$qX[˰zJǮi&0Q1OQT-[S6Jڒ Tw8ҨmVH =[nB]J 8)R2 פ{75Dcwvv$`y6 Gpg:3A0U;k x"bbvOJŊMѭ-E{*lLw5Jf,i.AHCڸ#oljH 8'$/p=L;Wփ,r$r|>a[[ ' I$GoO93iyMApEm _0R? ϤjFV ߹e2I){krFbA!w,xqMIՓi$-Igyk8bbU LwRy7RtiJ KIr)=iI"1L6A*4^6M8ݙ h>척ƕ k|b?vG,HJӸ ^vl +jH, Gks=ʭU?gY k3YPntIC:j7b7a;<}("$K$x*n<2BB酓Jdz "9"瓊wljRNWf"F`y^bIg׮$VB3E c+M@\w2Yfb, +lut}EH_&U&P[-.\zne80a*Y[,E1LyFxō# C։ԡCd^!!BL{Q"?lPNmUs} r`'Nb|6v 5 k [t]W@# 9E (#Hc dW'2:h,<i-F㓿P'i(E{^2 S1a z=?5_$x鷒Lm,RGhڻ|O*Lj0c+3I&d\1.ymGLڝXo\yy-[ er$WVsXIOÖlheW4@&OlcەL 9gy2nGY6c$ڟMӊ8\a̴33*H}oGfsɖ/ r䝘 o{ #f4+Rn{kH_c_|I>VxHaDׯbyNJɖX:T ӓ*U#ʀX9HQ3Ô:CǶRcF7*3,dU$BJ\ =o$߹3 {b2]`XP#N褈N*EIUǍD:rfD&R5("} bTh20P^@Q`(מFP6oIѲl!^}Reo_Bt,ĹC>c*S: |r>b 9$Gm:TtƐdu+vn&5 ьTlPc_amͮwCdǣzL]:&NCU1 MBd6vPl{>O<F0w⨵zpPE-m{gJy!o;N@#..>Woka0$mI>u^>d FSf%4oj81ӣ0,l!X.(Ѯ=> &C3m>\^$O0}1"G@BAcVYj+z{b s(J"@ʾ%b Jh jp[abhyIt$DֈtoLHXZNb9%P$"qҍ7WрH ${nLY'Afռڃ-6 \qTB>!2C#eYuPI!ϡ4>4xMr9M ``J65p(A:P̦ `<f}8Yy'BbYv8e}B͑?I ʆ8Q30Bv-hcgq\iފ넳uőwpZid*CÃ8 QiWxyWYhRa^{cg{ߟ\e=zv8DNƙQ:Qvh —UGcǧ(T|*m?0]#7Oʩw6y2g23(\˥$Y!Jwèd_gr=:LHf)4+p}`?UsF$QX}۝`93E 05܃}=︬&)&`GoKGsuLT,p;p1?e]jO&!i.M#r64>ﲩ''[#'UGV>xcw.h$#2HjQxtF*oIgM@>l#`( LN]88"XH)PEX4HC׮;Uh}$+-[ؓjw2]!k}cQPO)wkA}J!\Hʇ%;]" ]afxFN:w$ICqRn`z.r32+0%HP?+',wV>qģd ^WZHCI{|Ԙ,Z3g,e-kfAVq5I} ۞Ks:  _Ns۲STf{ S\LqIaL4< )PIᅱVIP=_^-,cUDZSm`ɬ%U-b<?'$EѭΥ~p[L:LnhW}p z^dŦC EfL]^0beң©4sɻ34 ;`8FbmkU-&tH A7[~:CI:i"c~cvxY?{ܨi j*wS`"G\<'Cf@WZo!2xs9tw1mq9Hԡe&J@ivP2,tʤk\&f"i(6R,λXـOѳ f`{"O=&lA7*렭ZT``WeZw-}C鉂sYܓ{W?\vеaeJх`k2 H=y&uぴ.B2ry԰>fYUiXs_pDDb=/pc# 6}]((cAes\ g;2b6Eyr2JeZ? ;1pc)dUlWQB˽[QJsq4]<SMe.mkr"F߾ Q?;-cjߞ0G Hv(oAX@Q52R"EV$ba^jH6f$L!"b҈PYM(t=o 7ˤڿ9 d<6".2}B@wWxW՝`H ʼn} =ފ(V›CV* B倲}{] צ2Ke 4e=;2sE.UM±<ƥci$8,}*|eE Am}1nكI$:Fs7BHV_'HԅoN1髦XXKw?Ʒŵ%[kLu ع&K$_\JEgy@EE\*9W$ø5댷f նc c )% |O&L̠} ,~I#ec Q};]63+E nT P'De|Fܷ4fW6dwŋ @avלFxXEbUz 5LhTCToM h! lXIv$ꏔ'~!ѸT$i?|;=dPpO>O*5Aͧ5Js Y$=<_$~FӸfI`HuA1`QVwF t2]>gvVP|3ÉK1t>8-Ilܢ-3MGsGq~ؽ\(c(-[["9SE)~vA*@[c`o~eAG+8W|de-otj5 :uD,סpQVDH] lX7q&u|`Kr01]P'{#uHPod]1DsWRerEV_MuF3~G?+DG\uX=ٝ*S(㩗Hɦ'vc ! -7~I%x ZABI awe%i^y&ϙa,ﱣLl2#XŒBxp-WB_+d2-P妖Ij;:nv?Mḱqi1`Ĥd,dwF4y2$zGqcd/h;XlHV u07䣨 _Q2Zf`_ ֏k|c:e.C -O" zbG/U $}Vhڷq1Kf);tWma*1ss2c1 r9®\n _B\o J"^9nNRqѥCt"88-rT$͢F$},|'bb//jeb9we)*[kb2TU+@Y܌q墚%Ge*`rG?h39*S- !XIE6cR~$RV<2CS@X{Aub EJ5Sp1䍑ǡc( =*2A4x=hvZlI+0vx llDks}K-+nab239݅sY`sYUEW~/mSyté@{buK'Eyau$R;G(& c“LTNĊͧ1ptQ/;(^_݈`LNlM:WxJn8q W**<*WIԌ >05@€تHepЭb\Qk׷,_(Qv$m'}2M|%Ю(OϦ($ϵҴs4fR^ 9f$qa~ JzcTYt7]p|C*(WvWJD 'c>zG\d2zY,Uu G@܊#HxdB V HAcjtX^kl?"+!(׏3"jGRʻٻTo5E(@JGGh=RI;oo\|1ɘQ*x'}Ư*dBW%YI DȊнRy`x.]W(' &m#hL$*!;ƟFȑx{(M֏:1M!$IH o`՛2F׋WN]џ0 2r&UG`I#pP4IF"ShƝ0^ӵH 4ץ^QlKFXlj;"H+`A[ f*ױS)6;CLj QW`PHؒ,YV"2U`F=WVc'Ю`=8wҀKTN2As uܕ1ledhVH;J6TW1́N"S]EIFވ~o)$J-)"qv:Ps#gP6ZԕKNb'.W PIA^}=}lŝtd0I{cfyޣX HHq"f=cdp/!FL"Hu#BnD5+jK<|v&XjTނw1w+ ]?܎n֫+iFC)^)2CM$P[ cr.K2HBPVZ%fm&4b7ZO*ʬre̍VeZW/xIX"Ȥ@@v0D?^^)62JÍ/ U6VˢMqHc`ǿ|pL|3:ۭQOQ]tL *{B|W!ME>_0=LI {ȟFMH[e0q\|x ՚ejQi)<~a#9qT%@*oU'oŜĤ߯\OF 3b9|/&n U`/{>ƊU/&YS 3M!Um\y2lL 3eΌ !Q&bSyagfrT1`Xn؅]a%BLRugVV ? ^郲?#Pcm`o^eXcVT;V&PA苖2eih҄z a&bNHE'Ev犻ˬiWNǎ7473Õ}6z.؜lhR`ėGIFZ4 D}MG#,(ܓg>řlg9Fz=v8d[fD `>5>~ZJ=t΋A_0Rl7_N;l%F=Iv0glدy,]U=ɽR"cj_6vďx1ÿ~눪28c?u/*Қ59g3k ,_L/4rhb s"B)Iw_X,@!, +9XlHB*%c9g*vűql7_NO*ઌu3 c͟[ȿױ H@hH$ pCޢ+zE@ 3r22%;fŁ/.hY=m۝;b:[=8E+(atJkU>m7_SpXU)Κ@,VloQ'= i=ް`_ A$zX1cϵ^ 4O,1Z ~$I#b,;mDI13z],E؃~ҕ1Y*O F%+pf:QmlY_V"$J#D=xj7bO鄚Buaͨ6{qgDOyu>g3f2˨x`To?!_cc|; *26ڶZw_<-@/"+G2#&|HU\#([݉ (?  i&:y@@u>PtW8g2bP2˅UԁMaG< R')Do׻/,/Zesu2$qY^xHx>p{$~0)4L$TqL9 (rARLgh9`%u)K~ĒW21ۀ7.c1$ @K JVGEP8']AW;iK$T^Z(ld$GyGfV^x:lU {]~aCf,TqϊA&D$WATmKm"DkXՀ GoK&)|`*++w5#'ZE 'YZmx ՕVvlѬR6f+-M0OfcF *M ?,,gFCIrue0i4J] AQ"1"o3hbx]<;N Ϟ(@b ICH кgF:3أA:3t|4& B },+*@ NXv759jσ KGeM1LjjOnܝ;ifPNr - Ueznvl PYICcS@qϕB諠PXI8)f?<) Q#P6gǻ(z?4/RG4!+G X.8frCB+8R3 VPoR #fT"7ds:b.H%7^H*x}+3LFS鵊1)a Y`JbMi௼&Zqd.gt}9,8$Z_=x-VQ熪;E.8P^k#_"EË-k4w#3{оN !!Co$i*r.Mcok*x`1h ˨FIEd~;9㽆mZZB yĄ FW },k˦ :5705|M )Xj;ׇQof?}T/ N|՚ #}A܆Ot##Ha틲ëتtP+H@< D90e}[be3>RiAիm;-aH $S~m=.I`mt??Yc*+PsbsyH(8U9I [oNreR誛ݹ튦Ppk/ >N,{5YC*LG%#{J89%ak_{D+!u&K'=a.TjF@|0V o ń ~ [&iҠ7i2 6&T?Ɖs-Ũw;n~}uT3L *Won0-3-*@c2ϔx;>X99gqy^3Smb"4lfXㅈjlWCX3q\Eㅵ΍=(`Ǒ̼l 5PVbgf$0i4Yq{;brϖR6qd*坻RihRR5s4, Ŭxbgrvz8]x",dir i@rtbfE7QA)fߜ[EY6F'qJA5AѽyejhϾe8% B0-{? *"ЈP!;_%V遥Wo0FKj#tZ "c`< ogj\/6meLXy[а SxeY^8[TzEށ>XHECP߿lQZxd]ϯ%od}. 7M/ ڨ0izP4CDf,WN Lic.9l2#;3'$ӪMD+>`Yb:m<͖|V5"^׀Ɛ(͒[UU sэvg&C# LlQ;%Y]#U ^by6q,*fy쑰at6ẽV]W(UV6 9r< Ҹ7ɮ&Y΄[{g(L2FPvcG%Fn]&G2ف"–F=0vydʞ3pO?.p> 4݁ `0>Ų#d25tp40NK`Y\&2(ͧzsbF;D"9x5L"&zQeHUV{{o#6ٗg} غ{ASȊTGA;#SDJ+FoB\t(ҢV 6YQ؎5:py x[bi`Pi V8f \ʰ,OųUoIb.M(bmOɨ ֭lG LGroIC qZG.|cU#c}BeHE"i[qS@'lrv2EN c%HBJⳇ] .ϮF.탢Qe1_,ӿءޱx#;wemQudT4Z72D̺@gT &h ꆴ>SC ɱ7G^N ?8CFPZ o]үa]f2 boS6 q̩ ہ #$ ;!,2cI:+&]md>Z/pö# ]xU1y[?JB*U*3 I(^@K n1NB8ID[. p-Ql RWȪ j56'j#BVP4]c52OYpx!NSڸ7!H;^˩ =Yjs'-^xc+dv>\$yRQgsA;FX2x'DE1NƛDX:G"۟cQ_ ks=s/0;]R1Rěk8<| $ nvFqd, ,/#@AL SѩI~p-@u#t5Qra9dG Qf|w:*:JfMUo ۼ` 5_LZAY0a1헪'P0\O2Lۿ|;\/<'0Iw /;oɥA^V 66gqY2мw&CvG|tʓ( _0VbAmJ7G Udh8&,)v .6J%!W sG2ʰ+ '8#峫seihMQx$7ȣϞ .HclɢG[Pʛ|gztΑ(ԪhzzB?NT#s[j$^odVХ4+@SZxc-6\X5hvmdg&S~wvؽ͢VdĤv 3r _㦗8>#x3Br4 }0Fncb%ЭAnG9\fˈש 5`EJв@F Y F`,-W,$Qvo H+c:w,h٘D%_3e`}qN8f/L%W-Sb =vcċjI f8W1A۰eT`xXX,O5 G+WL`uX|e,a,X$vDU|$bȤ_tIیs-,ʡ@#wϾYg%K $r@5{;a,w:O \d(rI&h5fy]3g6rrHiɿ;ž)gyH2~ e4$jC?W\;3 訾o( 8^x;=+ɹ=ucwBIj6(lywvU=ltr$R<2yHI ,,l{n/" -} -BƅO*mGV/ Us1fb@4I7DŽ!׆5~E'9חLݹ\[3eթHm$ehk0Rck&Yc@@wÁlePFR7R)$~d4|2>ߟ$^r?bt4EC F{5{+wi^&\ &@(ޡ[I+IcCǭk}LK+2Ibz7=bv:W,>l 1, I:TmЌ>-*L͏|nو"1͹,@1Я`"̥7\Y fw@R/$Hrvqç- ~OS!xT衫os32nEEԃ"` f4lBxۿ8gȅ&J/`m\xxHPs|{WM$&Źȋ(citY-Ky]{*9+\}ΠBζB7c5 Kj4lo\GGη`Ǹ>/o;k dNnk^] (AVX _!€{x`dVe5Lq k8KܓfDma@{8J5hIcԄ}εFnl.'0ԍ?o僨FxhX)F^̩hR<6OT S'S+p"#db7#sȷ BtmXc;Uc[g:YǞ5aIo[g GzoV!LYҀVR4o ;:L,˹5[)=izD1V +uΣ%"rBߕ<Hד䙁Oԗ1ͩOұ@3P(`7k1Q"`F%_?-S9<٥I #n{{9W Imhӟ4"AzPe9oz6ֻu}e\Kn|WQ'$ҽ`FuD fi7` ~/ȟ4o#2Th&'K!V+䎥_ej}XX~*2ٙ17! jb=+MR[(]ڷI!1SYo +*"9.:$2f#'fU8O+fZHu3&bϙh/pAWa@EPeHl |NKIpCd#75Fx70.بry% TA8x[YU*fV$UX$Rq;;+H*sޟ녭"fk X%cfyHTd04]su@o< PL aZ(^ ]:߿xH@qʳAT^Lhd.SFŜ[}v0e;b0XT Q#0:;w+ɨ thx7/fGfGT.W<= s:&^yQc5;X؁까MBM!Qmb9hQz6M`尞ryTE- fz7wĒ,'0 fƞORJ̺oei4ƥZuY(h>p=J|UQil~F՗p`XV3TȰU!tq_xR3տǕuLKFV,4fHL6q(($Y*U}րX#{=)#$7>f5nzAJ(f ioz0`L3J@aiTXj=\Uކ酿H,4}1 $D kNIvW@O 51Ɗ qg蜗yUicT UT0,"jrN{ (Q$D>UJc*(l8I̋OI墻nHLgRt=Z'5A/5{h|%t깍3uHF!Ԓ;۝V5XbdJϘL;6ţ\S;n۬d0a˳-_ӰZ}6P8+Ym=q2Rˊ(5u;᪺=(Ͼ%ӣ[ /SS $fEWrkH4,\bb82 OdF}R< ck˅`{#Y8Rhzv^)oPc>_C$# 6\_$EC|p-6YD}lhǘPR-WnqP23Fbp>Aff<&ؕ +j,rypK!}m# ,ѣ&vdfH2U|ZY#! Er;cʋb}B WЇ0$Pclx8e Iڗ&1 6ȶHP,lvc"}W< dgŻ:`NLt޸@_m}.vfy<ݍ` y nwNUS+dXwKbªH1\ $Q/~8p?u5#BlM.rvȪJ%CI#dX$O*;Ol=F㩏\c@,,G?lrEUAc퇑ʒk} 4eN$rGNO q"(8rYUS4uʞHYI\4Vfd„_xH8ү"]F@ = 3#Vݽy`WSp/t#VfsW;LUѐUT+ŒMUZ(YcGzݹDea4nؓ¼wNۜh蜒9IPM zVhQ/O-̜(41ii_+8^qcDq8Bt\롸Y9CiRۃ0?'t0TbeZ,NtNR;{+>:2J|W3]w='TfLQ|zb:FE;e 0p^R,3j0qc1Dbέ#p~8)1>YxH´--ơQq`1 =c*{a%*-1xn@|NgPj|. \vdU#Y|Un~? Yqxޟf!4]}+dz;v#NݱmtϠe ʙI/l04$t r8:oG%|T8w"PRyQ.$Gip*`r30RyQsc7Qa[!$Bah{' 2 E#i hA:F`뤏Qr+-g^Du!hjWMX Pf^Fb^E b9*6k8*,摇QvĹQ̐2 q UP;"%| #ȉ5k(XH?|4{د 2Y#;h 988bem`# w,&q^ރfJJ܍eѢ[($kXO'"Ch @7byldz8y"RX;l}EAa9cPCbR1C]1#+QrYYcAo_)}S:p|\S? yў*ZY#c|7IgF[)}8ƿ7HX4LLJQl% Nf%H"N6ܒqas𓦂n@Y+[U@'ۖpݺ/Q- A8s9eeD11|LO(3qT]FO&F)ՕMȺmt}881JRhЩ,?~؏Ns5j N\^t,2]|l @stlKlTo;{r4Hh b]Vgӊ|RD a=OřȞ}GE|q´IUVAxoe䉲fGS{FI=NYNNRLݱ'a (Z0X!Bֿed: gƚ~*S5`#kms9u瀤RG~9f^*M4{;FH&/ "UڷqFeTJ)%VVCDZ#}c+&] ?]Rsמ My)1FSDn>5xR9'Gr%):~';͕gVA=ݪR]I^.jajEԄI7r-gK$n5ٗ&cھ8ʈ?חP[^moo$ tr,O|F5.M|@K^oԖ鋗?xXQZ;hqƗ:KJWc/3qe#u֫Yecb\L9rSuB"nҼj^޿Lzs ras= 6fqehEއc&c)|[:}k{UL%ى\dT[ʈ< efONv DDaoqvDR6郘>crQQ3+﷯L"ē6Bʶ{VVWL +jrlc4BNVgIvr {GkGL͖G,Fcҿ.-<\(hP{,{hgEu+M7堪Cz߿vSLYLRM:3_/l:gF=0AGX˗I|{/ǔ̟MbD|?h+evE(.C1|irYAib*_e2E,w(w,w{=+=gU༚,H/P)ހP?{?p^5E $ڡgǦM,Q;zUrg=Vyp6Z"32# w߮߶ ,Cn8\s!L`: ^qcdJ%INAhY.)4|{W1LlX lEq6bVIg4ڮiFV7$ D&C:NQc5@54N8ԣ2: qex«e %nLO]u[9D\ -92a,@Sz|/V8='sM3HQ[=WqJٷcIBʤQ}m&hjRuQVڻ__K .b(пm :I?F30* [Aa'$.S*գLV۞F4~Ymi!z\ eIYytza,C9$eծ0رˌYE[db%D^)IL'3,SFd&BM$q‡+g_6 m1APY$jvXYu:k ?1Gzs}#1 TVN>gğ0QK]bgʇ;q_>sоEr]Ja hj%b{>b=:41,>hn*bG*R] cr_Px]JteIEn m4<̑e[,u9;Qyz~J }Cu)#!Tmbo~Nϓa~8,9OFqă0ՈQao})fd6&jT~,D1*xsKCǁG3N# 4x^8qf'*>K[ ȫ9e;4 Y'ɬ]FVX.j!l| M IdoXw|Vܩr5Qe*SItr5y \=XI9lIbYl;zo9h70`zYQ,|o*lCM{` 3qVպ$So~\PXL˅u_ZonqҒN1(>F;W0e7@>$UZ)>3im3CV%k2(ݰ۬uOeK*y Yɶ\hߥfc$3&ĎlMꯘy&]'Y$c7sѯNeU8ԁvX#Fbf/$.eW; Y!/u _#&', 'ՋÓFLsqL}Z9$,asd6M;tf#rΉ,b/l >Բ}6vm dI>>ff2D~e&MTYmqMf|Ѱ}Gf$c |Ku_6[;R4_jb \oőR9U#Q~wZR|x%se%0DpS;xb(ZP`,jtF"pG8OyhȆ|WPB¸2ę`FX#ݐA5A'A6[Lq}wV;N]*o/}?7,Q9Dɨ FOe1>[r}EFA4Q܂>ؙp9 U큲=EQj}IK/Ty?l11O2H7` 7\b8Mf>["PP~`}\8?p;Εy%xWmD. շC^𾢦;U,O',&9FLi=Um{O}r,HdzًL*H@IZt72kOwIl^.oFEH=o6% q ٻ{V)ͤ(PhwhB~'a|\'SFcϦ **F"ʊdJ']-Vi$sK[5I䗆L` lpu|F?QDi+02LFTv|MY' 5u`SJ`F?O(i,-PKX%ANW$OXeĂ%h[?s MsaAs^UHtX21瓊hċ#!v*J)Y~v=sy xʂu,H ǧv|rgq13*չ%p^J :r,&=:_]%H'Z$LJ^'/1Г BϷ舡B@Yw>MHෲmU^߹ǡ}-ލIJ >D7:P7*v#͍jd]0 0gTn*c(?x Kr`17@Q,~x&XU A {1jΔqڈm|K΄7|Ss@'34@m̠n0dTfLp+q~]>fP*U) UPg HwDmoW>4.eqǂ.ؔ ڙl̙L`“)K;߿-euX(GodheaQ\`U%] )Sk_SRw'OJ0I)}Q*jP&{-q.eD4XPC8VVIT$,Ƴg qھ'E/h5{}0&ۡI&4\: $h<..%̲!Buv©w675Ny;4 )+VTQxK]P<]fxYLCx;z*!RW U:`,?5v ]s#aHcuaPFx!kIIbhYH#hTi/NmHM9M,dpXuu0e{ALj%-cA/b0+YfF,l1|1Zd`SӸ'ɪ86W3r0-%%{ |0IBhzq(^? @6|4b,Orϔ_E:瘭-vn IaX3!3,½$녹̩~ueCu[õ "@C Pd -hicD.+gNK.bЂh+!Uk~q\_+Y 3,|XD"#VAQE]zs@]W<{̾Mg ßsq`HW8Y GT9 isn#l 1%C*{}9HS GU`T ]ls-1RWh6g9&Ҽ;}0"Q? VZ!+͐RtBD5[hheCk1]zOSĸzɸVvpFRq$inn=1V(U}pL>)'rA2<įC<2)oQm2" YGztx&VƲ'{IJ(Yi ' uX.c!fB[,F(5<̘eцhIvLGSֽǥjOqbC'P;P;VⱖQHX2S`:O.#;o鋄vjǭYYU U[m~N- lYf}901;ލѳ\IU+HUdBEWz͘`2'PQJLcgs4EFMxS'@Dv]= ES+Xŀ,oY~>3sAF 4Ĕ J(mxnJS5 gllj r}?s+Fw^F͢v鏬fY~ed0FBxRu93m`\{)Oe23E~4ɔOŐhBl(U{oc%opdyH'{amrUOqq_#"t7->jI4IU[7ٸFY2$:6.LBZ1jѐU |D;L"iic$8nubldS03 _;sʙe2yE2f؂1beT(Nǿ~?|IDf MyoK I9 J5wB<®CZ"3YAHaNWUVA_&x͵7hcHՍwĒ 4XfJy=xTe \!QϦfa1$-YdհQ|z{ fjE*1$+!YR$ӚEfmQՃQ3B@v0X-Ũ;n׭{kL} ^^3Hu`']9i_+@#(lHhÒgBZ@̌ NL8fYs.WevWZGc>@ 7UF >&]ODML53^@x"jmک{p{?g@e*{o_.gÌ-Y\WY5i4nj|כP:[V3QA0LV E9wb2&}ܒh #cw=NrWUߛL q)HჀuaG،N)-`jpeY п"&x8.C1'\ Nezy zT&dsErI,>UcF#˂|>htZ@@?C8ЉHX4dݟ1ڀO@j_r7eA[nR؄ upGfoĦxCF$?ͱieDu֝Jx k.tQ:n;(ۍM@ޓG_E"5K p"upYXyUm#ȹ[ C*[^ }{ !튾V ^>d"\ݹ> /2*ɲc]*sthXyt 2%{XJΠ|w違V,RҶ:I򀼓k~<ȲZM<L7hrsb0Wm_+,]Td%+;?\_7u FbY ʲI 8WHtd]tdkŹnD+}N>e/C(hHbvZ72Ӽ 8FEmw||2esXl>Ì1tqljw 2ٺ!XzBGxoۨs l{Kh=(7x!X*k\e.'=]ktH$E by]~8~gG;]3Q1 _ FM9\w1भRȣU- A~.(eɞLTv_:cJibG.a^p8ҦC:ۧ[(3$Fti}88TYfW-Z^@H6@maG+cL"&1UGj'^\*u$2Ÿ7Rm$86-|){3,LYQw;pYHQ&iV:U P7_Gqq6GY t֐pArpnw]k9x\3hMZY?*ŢYrqfZ ic|v70צs͕Fd;M\=}˷ݳ1,)Kcdv?< tRKbͶQ&{(gf[ VqT+3t飅z6 -X!Y#JpƃX W1;Ou/+"_fnR8+&y*b$ydP]وKD* mʓkY X DA5t9#tY{0aϝ%<"yb|kzل39iEP,đwvu˒% 8rRˑ75--{@rM _f˗bP4M dD59FX, $a4(Qj~b#e48#n(>**;Rru)'.1I;pGbоhp܎7 |Dtub4qeI5Mߙ~XIHy :uxxrjڏGt^XC Gr#D9T7`6 gSl85R|ʍ5{Sə1[S5B6)gDlN"囋[(gcWK^~iső̼2ƾv]ɠmU4=0(ba{{1Չ3Ѽp/F,ת! SrQՠ>Lc*7Ӧ1ZBK%\=*'cQ_pt_yfTqE^7Jtq[*8pǝI:~hP_)/~/7sFf}d+8ܑvW'0c4Nv{7HKIHa͍[Ձ+#驝 ȡ nnڎ.㊦Y;NhrHMQs]2neP$Gۜc5C2vd "a>:OqfA"0TP]}kQP45|tÙ3I| #c1ҙ@:qǕnjeQv{&nq=6z i;0kS_LR +Σ%O^1n^ZB PcsfbepVW1J֙b=e`])ġͲ~7ns'RX1@LJ||ePѝ1i ]MVQ{P`I~1C|ԯ$o3(d!‰ÓRL v?|Kf[14$1ƨ&_e{|@eyGnEBKGY|cd(q]mW&F@+xyXd{1cd9YdڴY6q.|$m!U5{>_"@bA bh39}YwjYK05mS;b5W=(YCieX#GEgpi0(O3ʈ_0qj#5؜-ɐ3LLHpxpH`/*6@'ĥav ) -?JJ! BpFx \Д<mH]]g"U Dǽk]y h@c$L*6 owgl(#!Xivag}0L͡{mucfc"j 88bޙHɝŮ@ iCX 3`d$ Ja Uw=VӨ!Bp9hԵ?R?2,\rHmDLrqb4eZĄYKW<ϭTHv@HqBr~0br4F%Td_s_2%ʍ†{%4j i) "ƑH?{Yզ[z,6fI%UVIQ v8CG(sJeF ,Po]Gˤph)A 8jS{w11InvGztP;lh'vcpU@p?LԌH%PVݹcm4<0.n{ d v؅/JX2 bo\H Idm M,m 6o z2Bh-( zMo|z;4sM"V$6qZvY4Xo|97bq{_ IaU鍁; iQ9YiI>[;HW[HQY±iV :AXuf"Wzv] xѡ07q$RѶGa+RP|}IsU:DN@퀄1UG,J(sOy:LhԴM8۟A3J-"ɯblLG*ZAbwc!fcGMLFc8uO39o=Aκ<D F}ihW&\[Hig kֱPEi0T(䈑E#!!ەúM2G@` 3ӄI8phcA <1v_5YPpѵJ ru>"X#k L2hu$3F#00H>P8ܼ<ĹlIFs\j|k{a&!J0Ў vND- rZ#el+7`̉i|,AAIͰJBG+|"CtODNH$_DeF30kr; ΩS9^|0b#(d!/Ux[u>}7G"<:ko-59Vo .bEg'lb2sd(CbUZ {~tcTx=矦3'+ e49irȓ(ZaN__kph1:IFqf YR2OC781H'GhЩDY|yZ$u(|0I\ ++xa su}c;bЛe Z:{$ѡu]\LXFIk'_8$H Thw /Ot3Z+^$hR5vjrYN4 AwRs$~@sGM﵌|e&uBV(iXc<(cܪVi Bbh[QÞ"x!,"+kfʺ:$py~^gapbUR <ާ,wv&iaeH)kte9PC"yל*ˏ@ޯ~8J"F҄ej* '1'HgM)u?CDbȲǧĎ|=KUY?鈬ۇ$?--;@Ҍs;F̭?E0$%J(NdL4 Yh bzXD~ xi"ڍqkD޹S[/ȒX~3" e*̳kzqɍq &GQ\xE3Q(ت~J+2I\`$Exb2}df$z^ieX\-X{Ae[# ƥfdVGbShxqfO..3j(m;* ї) CQYeJ p1,c$,Xe,bLbB  OJX8S-&O @ÍT:aYrƹԌL0MO !8N`*fT~oſuEP,?|LDc*z{z xLF+py8WR)2wI-bMקdЬc#_ "˗XmHE=2ҠUWjLIRqP]YFE,OX&Ӱ{E"Go`yő Pgxب1&/\rEm^9͵~Q*:+ *R+S,jbt ]ˣ_B7/BF`ȝ:H:0X,v+c&u#Е [* ;c|V{8m6; ԰z) >aٟ1ߖm@Wa~n,M6 2[[arUt*PªFcQWO K pof\}w/5fMLqDLcbl(7̊o_RX(s_\#nVEJ#iC{7yڄDwע=EIp,.jl7  ${?K*+"i!z>eօvӳ 8h١h S]Hoe>?EF UmZ!4OYh̃%8#RVIChQV4 k7d׷~>\-Qr( 2ʱ qcdX{}GcY%!H&d,@ޮMN-_l:t_7"߉$Ha70fs×I"]ɔ Vmk&21x jEGݶǹО gɔ3QFg.`Oie}y X̞t|x :|yNfzn 4+Ia<$^Kiue%)ɺO5>Gɕ|Qm J_U;ȼn:ޭ>\HH$X0=J8W7DKs؏8=bfK(9YPEtl1I>H2Cec4Z5(M=uq+lh ׭tYOThtJ9{^mgO9#1faQXcWzU߅chf,f)+6 qK"5}_`Uu^đW1 f@ PM9KVnXAď=]|Ϯ-1)CYޚ%1~EJ c=;==0¹@)NW>k~o{i, [$yFȝhϏlit3L*H,{5 ®Hrd|HJɘ"cv\پ:8H.!mllp7;wdfkxGhYyN7#a?#e{] %+/ipF2YI"v`\1P S067-մ˙fϫM4yp3j;Q&tQ^@!?ʚ8SʆxȮrt"zcyc.<4?<˼|GtH@ @VͳP^tZ$,JWxZoMIC,vl@B;!QW&ۓ)F9.hd–2$`/|Y8+n#Eh$pۗwbG=+~-GZD6 &C1J"_i9& #d+$"U6_.'rt3sg!34jG#ޫ3zKF3'Gި|F~-+;1,̾(*7[⅒q*+qxF`#y]ZUWX/6/Ӳήo@'܊leu6eTHϹLw3S{溺?Ayvw;PPjގk[ eyuW۟Ce7Io*M+g[Lo0`uY2r)FcO_ 9;W4):@ܮc-49/ ɥ6umwi3(fxPѹX@0YO'X,^ES,_;9~{aurTzeg)HecA+鄲zl[8Ġ>DRI*g7qlG5fTfa9Yf!H~Y, ";ILAЫXW|7榚]Y*Ej@1gqOt}/Ӣt) gM1( Ӧ}fBX2rB@ Vo0n 12*WU\qlŚ&gj'ř6NgY[w`mD+'j5xAO R.y6w֐) )O'%%y)NSHaRP(7P7W#ch x)ZA鉲I;ㆱzv  &x-J@ZY?\z"gK'=tw|n;ari$E<:2$_w4e1IW0TXZU3fCǾw 0,ã!-+;_x,9xuu HV`ko鯀8:LUJǥ-$I;"C'S=}0e䎗XuS~x.9GUC{p/f*Tu#95#a>g>dJP~1)%ȯpg}N#Bڷ#,Rep$5H$BL`?e}1~X.F 2G8S[՝ zTe&^RP.Ƿgi'E A3tFysK%u"~<㡕[Rxq4,ar [`YdX,[Mj;cҳ߅)61>`YekJInwp',lMIPKH#GP ҂ ;;m|ua+&h]:J\Wc'M̟9Ë%(J3䞍Vx5EvaP2*g!+~VߊƳ,GBoeECEqV83hۑi5:ol )$Mf`G$"q0֪%OH6gQW~t%˫Ga7e!P w/f LmdCEoخ,'g|O&ULsƀ+2W]3=PVi#yW0, Nzّ$E%+ox=Y .uY6 ;jfL̈+`)<u~39|eȫP]094M ]BooV%|6G+i!``VP+2$JI Lc=nlm"AB~R^M[\BUL `qd"-+{ ߉ⴌء 4PaQ 0n~bY.3I<㋾&9|] UqW.OB1Krai*SaQ4=2}9J_N>z(|UJ~Friobs޸Vc-M2ɒJ*!d-}zUT3FH(k1f4 d$~}`.*lygDXRsr1$rir ])&- G~'I5}7gd-rŤI9/S4%iv)Zz3X+m`Ǿ.x Қ*7Oq@X%EM4AݯrV$`ڲ1Q%(j,m]X (=C3!x0Am[9IZhS:A0nZїR(`7Q[|`yԗ:&2J!7s`NU#±eC5GVk>Gf<)@W׽ǑDHT F xL'RK7~EAR4< Hh ьL o1JDh jGBrLr[x$([9#@W.HX bg#d"Vhڏ~Ō,oJ;}8VJS&Qu miifԦ€ ox! id,d,iUH'#2'3m@'4FV'}>`rIe@^Ğāb+:BZisq3%KyNL >51=jXEпstj ϋ,~煙Co{ۊ>>bYGF7ڷ㑸HdIWlr E/$-4^&K;;0J1zxۓE`Ҧѷ98_|VkU)fd:|+1ޮ@6M7 テG"# ƀlVq66Oh50%bK #J eΖ?G',K[1wGOXzP344O /9Fp F]j7ըso+bKd6fx:{bKfwS32|Hww=<Q#P?G&l$u&f8DA)+ο"0R(al׆@;@n{79u0H0G;A׿ 6<,E'p 1ӿ I ~rl1e2TˤjF:*XQ{eS jC3[#*1mUjrI wې}qN Gy\ rqv^$P@ME0@ q a7Y&p(Q!:{_\E;j_9}3٨ +I7iFھb@ *H-K_ R캏"#/o`<C@ȇ_>Ṯr]}ŹLىʎ Y>xZ\eFo|GE Zځ5Cҿa9IMo3uoW2a+݆Xz*ض\U%UkW2Mur}`2!)!{U|YUPNńKvAF0q@fdf>qAfR+$|>U NB0jX't@˜5Mƶ>.$rT29aIJc۟1-nӑ9\W-*%Cz~Yʱ%F$|uy")$4Lߛ>+.JG3 xo|,crO<8_~[ɖQ "mcPrȠlQ؏}q31֨^?('m;S1L wq+pe/-5@  A#.:+fk+ʍhu\}Y=,zfLt$GOkWXo\FL[=0/ū߹y&M*N A>ClUH y,q:Yb|@`KיGf']Z4O~ q|exӖ]]׋QKV۳^| qbc|4-$LZEG9ĩ%HFAfcxJ,E_N*ϩ.!X HGٚX_A)hyLw1>o~%f#\fOZpADz2)A Zq2 llcũdXJu!|񖝳9ΐҭ4UHFC Wa"gfNc*a~x,іu$Fyn/9gF22E Uv[<%u2Eaon&=76떖,Uv.&olVu:Q&Νad=>,ȏ4vQ5;=pᤒ9K,"2pj 5XOP sڱ BZ%L˖2VŚLQF6=د"b29t?l+0ۥ¹߃#ef#m"ھd/E@0"~gQd~ΘuXj7O86Dh p 4.Y3tز m [XX!H)i5Z`HƱdq6bU@TF~PI! &ࢱ͡V>R{,uB5W=b2I Φ@0(I/{F UH2j*Ol$`@p>GD۾`RQS \ōblWW#$%#Z [q>"ɗM8*2XјH<\AA.[M4l\ilV,2t!ma,!)%abde~aɦ7 =k[갶{-,0 |9=&WިɗB`њf4ݚ'f%/eًyF _0&')R:(Eԑ_Lg'@:'+p+c-g73iR5ywoЏ+pmwajd535yj~UXg3xEкnmX3D }]Yz|;IJ!ٍ7$ Tf% £mO%tp3"E%A>]7 $Zyu@,+K֣_j1!4#Y**rS(.+q I;)y&aŕlEة|_4y83M+!aƲ%8*(b=p ʾ3J p65[<>dßzq+fR43-no*b,mlu.rL'P9;='/PFPGÃS F@[[)UR /W}iPbIo @uڅ_|ys4lkGo|y0t3e4Jc^6a"yLUΈdh=qٿdc ݖm ,< My5rXjqo+8s7;A~`6څYəRA0ET^d:7F#EݍFV"Ondd? ,mTxl4 _fBl ~<$Sc[n)5 ltGm{ou` Abm@7se>\5{}GC%31>9Is#j }cÓ([~#P4]:#3.Xぇ)ΌL f" 9;op2 dv ѳ2,*һ.sN( ɋ~5sh1q,*;y_bsfQePXғkgr$n='A(sJ{/Rh^D"A{W U?Li"P-9z3&iżFV1%C [qNU$ud;ImmQ?4G*Ǵ#e4v8ξ&X]:"!s PŭnaNfI39$qf;`8Ϛ-# LEw=pqtf޽r %57m"I0??N9Z2ltwܯgr(0ڏW'/B1Zea@:Rs9ZTJԤ|]>b9|vԠ2ƻޛ5v]ȩV4 |h%:hJ85ku(bi6_qbYL6UUE[q4L Y'T)q؂G'AN RFۋ6X$v8lj)rPǟ{M-LD'3˰ .C>:e PHdk5+lg|+a#t+凯c-(&gS)ٻzah6W'4,3I;5zc=1fnyh)'2*(fy Ñ9c7`-|a9fmhK uAu Ҵ(CepPXq| ]xj_oCSt{ cPlX=5r^2 -ǒ`(KQ 0` 'Pγk"4ƁH^(zkKjO2ff`G6aX ]a^]@E@W9U33вU5 oO:4}H]Q&IQGQ%V@,UozuC9}l5.wʱfRfą|"K"ŅW`E YUg:0O?:E*Gs,2.\CMNkHĒOrO*1:?@ȩ=,vգ!-txvhÈ$xv:TCoj xStLk)Sg_Cp~tH=8͓er鹖i!mAձ?"Ver"M1g4iF5RKYv4Ut "Yc*<Ewޘ e.kƳ4;;_72sˤb 7$Y;QQiw\)CJO$W7+k,yWK,ѩV"X$Q883Ҍ2o!MШ WĵwDf3^U;iᶿlq'23I6m}<ȺP ?6 qt7c3Zl[1,Yyf i4Gp a\46yř&搣=v@P7M8+ً7ǧI3f%TJ G5|;? dzpM&"Gj<'YlƁ#Y|EYsfw+#M`j" oБI&a25dbyA4 бzC>VUQO'lOmȿ (¿.i# ?XFhlW7/lFȹ*8:T"+lGd<}.ҦPŊ{aəVAЫDMv|._!DoMɛxrskh44(PglĊkazm0iCi4\_F\-F)hP_3'lcZerMYyw+)i/X^-|R9-awd I25iPwfU4eT 4L"YĢ(āV0WpR9֭o,S9ɥAG9"o)PX+gudsL9y-WT=Ⱥ_DSNJW}}\*6fY%wbۆ8G\q_cwlb'heHvj~st͔A?O 3/c5#%xyI7P d$Y ;8wK~3/GmUvS$_GZ)Mf,x\<.l bjfX tike1̻enMiݔ%&QlX+Py%ffĈhXD Z)Č#:XB}L'?GJ Ru":Iz?$I|2hrMkqx)PsDgLs.`.Ge؜9v̩;Xv5ǥLjKm Ts=MV">@ Y: 6wo*f7*IMQ'+ cTEAbz K:S]Qo3y\yG~AYwgU5#`TiwU`I|-!P{evT0G 15'GB@{`v ~\bvmWBXb9;(dU@0hchH׬ݛ ىB(o0v/3xy`\u\&VCJv8MsRga r $*((QY8mcȵrpϩfgĹ䌬j@P | &fDAVc;b&Kad2bؽX;+H#G( }w 2Z 8xNPWQG~rJZdvu&I"v2(#Jw$Sfh_f>$Ꙡ'gMbt"]*Ec3o$&eu!IÎM $S]`1D﷧k'4A#ja*#v~X^ͅ @H-Ǧ٪a\ A壆tqLCtXU˙\1MZ PlEՉTE;ŽS)L1˖("ȭN yh  ( |qI$@p_Jr*S);zf"%b;l<) :VM'սq$ (դ8';cL 㱋}Nv}}KI7@v |8?L0G/a{řb{{7X`HdVQkx[sQW~'!Z->g\p8V1]7LdatWo5_%Isb ˶K. AVsxZ/)DDχY۽s}(ҳ9 %.~R9ũV0VJFybOh4I)bUB 6\w Q@rF;+nM7- E50߷ؑM޵%>qBZ"*x$Wb6%|Z̄4n9Oau$Ǘy&aU q_r;0F^WMڃc+Ԇ]Y!Vb8c7 < ϙǯr>#KJi;<(:2*[I B\#F\gIHF̤9$ƱG4gcBd1a ˠ0rf@:퍐mkHAsDzw͘"BN5NoӾV$zfZP#SCE}qxm0gPe猟HED $ăZDSGqd^_AKq??;CG G6jǎ^I"2*ug6feu^ AI덿|0:&s9^$WRPa-WU\GVK9jǔ3 W5*!'Qf9g!eMUUB]5 c'*[0,؋GWRU󦤄,Qpo_+Yy3jUr5Q݅ǪdzOeeRIf <,<.5erΒ5|)QJ^A b9)Y@*F-Lcu dB=3nElIvs6ڵY[}x_0ѐYQ)}$n>,;5M 'MT\WaY\ 2$>M`_ M|RSJܶc\VA F32l(CAXbsc|qOL3uYE+#L4r;Tcf Y^чcUXbǜ4#y-Xc| e!NƇa~8-$d {O&RorKјW^u]Hds7+}*34Wz5wI vkRKaaց]+m翮 1$RJ@´äNLqeFRc4ugj';0~Mm`д@:985}Hwh!2fXJD?L`P4y7;-$r,(O G: W– Ə1H@na2b.Ԛ#p ,bET cފ4eQAkl (2g˭ 7gJ,`%=3f Jq fRH$K&Z!/vߊ1ܮwY (Z$x7Sʄ2+<n׊r1]5:蕔kE7|]*mz5O,bܩt ͭmO|1Ȭ) Pȅi\?5rJI/4f1+ )WH:\yhЬ ,DūǕ"pG$bx.dk$P6>ZaU_ [Kj X7#NVhG#>7'Io~LnDC:5"˸(ph,m޾xf՞9շ>2& X!*@`6]&ҝ0WA*>p{QQO3.G7fgV0,D(D}7>JGXEf^jyL& i`tUrܱəx%iX)v?\G-Esf1˨R@`7;y'톌P~/Rɚ9!-`91BSX(ߦNHoI^XՓss×WLecÏYq!` nG&b6ED!x3G ;__LhS'O9VawG[&6H6XٚD R6>e% ˡ-+jlal>V Or=B\2GH_}!/Cg9YB9#bG ]Ò-+33PI4}BMг3'OxYœ7`GiZA $дPփg(ּD2#QX;vhrgQlC(nu}o5b6yT@x@H@WԹQH!l9<N36lks_/'fe,نSdaH@oUY># Ś "J[lij϶f"CJÃZI#쾧 rBEtP@~ fbiƹ܌K#׈(`X }@o@]( tHzv_eY|ƀ#2ev`H~Mo#zqdqQ\@Z=vٸ,њ82ҙb&(Bٙ3/N˼2)qб~f/}TPBW͹;o}+Fel?WMI ⎉oC4u6[yԅAl"Y,/!$̷P,DwV<:f)mee"Px0e\ Ʈ .XVpItC3yrU@Xkއa#'/$c56[9V u6W\]1%8ErG!+jo`Ɗ\qeIZC_S:ht|y'0418SK,j}H"fEUy@+s]')wZn4ٶo CpWÏT 6j/_u 3P4:h>IՄ9wU_̡7$qP +6 Edq 0Mll񨴃:KN\pf\4E+E)/ ܇U6[_npS-׺3K/9c2H\P~xKdhrBV]E\.Nl~v8|jdye @22e.^' K1"81ivLsMqu.")x{*Ea~8=ԣ\D1>npN{͔hRa8oar i} <3F.E(f|$يA nŋlc$UvJ2҉H x~ K+F>$09 SM z-)+vTa#Rdݏ'*dd226n͵Jr}bvc޾_ L+ʤm aIJ6vdI (Y7{vA2^29cac v͉u& $jE]KL!B@mVr1[hԅ_S4#>s%NmAS~^4ALFɿ6_I@}p9S`#񦏢0KU?C:!܈^݃^0l`9k ھw툻E9I`QځqC$#/)@x788̑Yh[a{w8Z%#F27 ꓌SOFC]߈$f9* !|. #&M6-q]_L$O%/^S=>JyG5$YvPyî36~c-$EXSC)a@YT4u|NQY;CJ'oɗ7U*Ȃd-ys~rL2/ڼ2;{cA˰~>8٧U jGO'}_fuˤmRq82i$UoJ?\dɠa NqdE1収\HbX?YH!f<0T|8󵕕6U@6? .A$8EC&Mpv'Is<huQ7؏J2K7lݘ|cˁ{D|*!Alo©1LA2":Ա̢澃)e ԋ].tir҂ჩjp%,*fqVL΅P*6}0ۥLaҖY29Z7~&+c+0 ޿|)H2}[Ar` #Sv|4k@-L(c`ilVu@b ۳[hesk`eka¡mP55ٮ0M}HmtV2VFcU}({^*G2I_ϮeFr0`5 O}`HYhK;;=x8yXD[͋$aeIZC7^N8d(t=acFGwٕȴucrMLX _lF֧o-xCw~#!ũ#]Gci{uLC(=?6tljL+@/ h0َ9`EYcT2Zيpjv7viq-Q-Fe k>39Uwhe>%jWIS2Qw|p4cJ65VKV%dJr «(zdyENKL^ "PRݙ^CV7$Wzoa9 %F3/vA!/QG Hp/%9pIKSbiFztz9o 9 bhzcSkko>%;d1Fj"rwÙcLQb#/߸2p:O='I4@HN{5$,q\⌄d&Ao,2 q-F6,.^$M *Lool,E'&] ƋdY6hgO =aCQ-Ֆ_`ĥtuelQvw/FU.d lܐw8CAޗ:& I"{*;+Wk* 7X]P6pDcbFx)T*F|-dU :Ix۾8c`XEQUe&}ɝFGnqze!>]^<.;p$蚍|Ld$Ͱ@r``H1zvU0W*UvQy͏{: s&҆Џ-9lp@R*XyBr͘2f13L-ƫ( B]mY&mkHh1̫J.I+blNcr Aߎ?li>ϖh#n}ns3!xr|q4XT̞NZu4e)UN\IGl~צ1bIAgfn_Ĕ*EJP'rHE!K(6+[›sfa?,(nc#3OPqԞIGu 5lZ/W#.4W]C d/z|bZ׳ڍcJOY9(39HH@ U\#zx3YeY*_ ٔƹUVu>v!M#NHl;ˡ34jAл,z[<'y$vF6빙'͖aM|kfՏ9y6bho3QQ~e,Ft.4 X<Wl}e#!o}C?>&;vQ]U [{qfzEuf4w|C # v5H rO>%e(Jc83jcjRƬ=E%Y#{޸Z92.7H*4t(}o돑}<XU}^Z;)kiT1O@Qm@]ܟ_lmIGTOֻ|}orIˢfđctv'l}&ICH9m]XLCS& e#ĵn/6D@ݔ=WjRT+, a#0dD|KD$*~#FvɩeJjfj4yuඁ`kU1OP|KÂVE.ڔyA,nI`iv2 R>#|DslcC.xfaWH0c7`e|f$MWW`_UP%y$Bc{ Ö`B_3!FZQ%. h{iI[KNֽ:X1 fqJBFL=v]1lE{펍YE *X10rV2T-^@t/rmr|_ T#VÆnv^FukjkG0G(_B E3IFt(nt#Xef A8^o|ُ'Wg#9H!gM FoX"jߋ|눞Σ$ see4نL|d頵Cw;a}]b->s'OLuۓ[($<|fǨn6a䑔*0cK9^H.׾2Kf391!66N۷0s`Ä,RN$<=$, F ߰Z>ۇ%/"٨}h qK)}:D@vj ;ơ--2TIzjg/S}0&eN:E#g H 8nOÓ=_;rsƩNKo5P,Bk&I Y /(`INä^q/J2M׳i7TVLH,Gi])$hdOSHY nm>G͘\ı;(z/@.S>V$tl鱶BxYl[ߛ^Msi ʥ#2i$݇>3 i,jGbz,×)+ X([sdV)КLe~BPL@  ^V켆 YiYY,-CZP (4nşʱѤk*ٽ^1Oˬ><&b4VNG+$vi"'cD,y1Yĕ6~h/5=Eb1/F ?29 nq;9%GKΫDHF'aUYLd󉘘٨鐺+C Yb2+f&aXF$RYnr<%M*fj-TۭolZ UP$U G?>OILO4ڼ.@oIHM|Y569,G٣v\:xqȤ/7ߏP˪@jX6vsr8 znl3gbAc@mC Z6CFʶUVww2N+TkJVmzVw.] .X=[q{ qu9'hW\~$X0#r(˰oah/D2#w4f V=HI/TsZtYPD T8`~xU{zhcg$?#dJ^yKAx)bt|x#H~)~UĀk}sc0J%$,c;|(yl'`ƿrMD$dӷǿ|[3_>4ma^iϤ4M`H<{Ǟ0&ˆ k *hI$̦Sh#voPZaϩ8#.ӥ%eC)C_i6IQDA0 O? éR\`"S4@őu\Vܲ)|Y^o= t#y9W+jFlZ  3C="iVPJ݅,~;=ⰫTsa3Jʕ w;TǑGHl#Iu5^`h&0h%wBȠR..dU.WK>R; 3L1?p')1xRd fjwm@ 25f]K j:jq E?@:pdOu(Vlml,-}4u4 ,zoQDh#(L0~".XeF_, X\"z+_+ nG:ڱf[0*ZȲ3 Cק zQErߔON2̢fB@߰?0q44Gјt^8eYf2E z_, :˕LvCڿ5G^_\:mEX{qm"VFRQ{O_`Zhȧ +&}N]fY«i=?޾Xf!D30dAduG3# {1su*$lyRv+lU,!l5y3ȭFm++3_&#]kG6c3+ iܗ$?S63jpeS' 1('._8zA>[#8&3ihQ ~`g/A0qNc>sԉa$WR,,v$5WG{(Z֐1ճFqe銲^,H cmI"!>s?QljW["|sg3qt#Cǯ|tI=G19æfZJB|#vm^ Xu iZ}Hd jRh2R`+mU|:%E+ "^烒0H^1߷ŹDKT*4WcN9iQ̴OF )Wztl> r$V]>$xCV4 btpTQun=o80E݁<_ $I1>՜H0Ry$97`٘Y?$Z[mChU|D #oڰ-mhď8 Yb}L0.aHc\ji#3wL:)~W`ue)r}4|-X)tBPU :ALc#3L Z.'1bё"F-L?'s9%$J`(ѽ T}N>wJvdۀ5WCPNǎZȐn( _ߵc47Itm6/v3-vR |WJL4"+Y Q'b{Zh\5ts'zX-2$)!֕O}aߣ;F]ugȓ6 {х )Դy|:8mDږZ OM0$8?˦B0;7c' HiQquUB)ʚ32&SE] euf$0_6c0HE KAvBZBT@+FlP"֧$b5l i%gI4faNĀ _o9|av,!cף|1'xIB[r:mch7q98 ʩnvڽIz}:lg3*vYEo㭍(/2E$,cmB1xeOKZ"6_.<25 8m/ |?[(Rmי5wQr.bhcis}vJ T ?AٜɚxxZ$ !;g>|mgxi+u.}.K\`>3=L]0uS[$-f-#u>5Ctb$ !Tt<0&7,!HaΧ ';Li!沤G`Os.״Q݀7sfL;`Y{--T4vS$ c O"#V0+<_r1^e _8R8yYO\/tcwaU#k5_-U,hQ2zFqʥT*s;c2e\$m V Vc",ЪcRȱl}at2L254fLUYFTk "|C]t2b| DbՕygX za9$}FXՔ@al5ÙD0 B/($!w0=2ͩ6 j۶4ᕧ"7YTeF'm श+7S,&o_a }Ka>y[3YcIP .eXfӺ(UȜdq `dn_i .rGFJ9J{  )[Ha&D9Ě0sO+ֻ-N!gg+M[K v%k`~8>Ջzy"9 +N_5 :,ow_]byScO@I#{o\PE)1,Ni-3x*JZꯚ»F̣Cx|\U㎣. (WoŠdzqq:"x_zyyNQ4q8X'z'& lj7@2JUkb隁#a-p[ՀBWZ><-*]7)R=L[U^*ȣ!p>c :0ۊ%+gH"o~[cgۏ zs2M9Տ&+U]m80U;bĤBdD ZӓYN %8: |$2Vg"-W.|y]`u2UaѸZby8 # kA*탲qhc`5EVGąwUprBHj~ HL@.06|'9 H.ٹ~@͗hFfSHҤRU'/!| a "]X5G@xo-$9RlY8]5qpD1A̤R8Y eةyavjalmsKGI9qdڎ][5W,'@4|}xf-m\ncy8 K #Qy"YWSEcAe_l*(3m:'s5>KO4Y+Iʍ#I] P|t|dI,Д2|Uf =aQF'*f5rs2!{҃TFaHQ!"= We b#m7%X31j V|n{il$rѕFcה1N PZB?}Ϙ0el [ǜV>uK|Hաͫef,z*G(1T ~$u3$5ecTvqL-YH4"Ѧr&Zt|>Xe$wƜMNy rO9&U30Y ШVdȢ6GKrД,U$-Psa&thٖF d `&wa0Rr`n -lחѣCIېH@sbĴ:5-NktFb¨; 8sI6Xlj8ExK)5V}1cS.6TƆ~ UG M*9:LZt1]<ߦ ]Z{YR4AU `ZN̖QG}Kcy1h4?ĝh+Yf: VIVM|M钍6-9HrGi\jf~XeJx1Zy(+Ce~NLvc;/bA4b= [$=Q=\#˔|CBkZ{F(iGMK>c941m[X iEvNY#f1%GD}SIR|pO>b5 <P: h:ꣶ5=7kf2eUOz}kr&G/3$d))vj*g&\ŕ˻LAM;aKR-Ev}.?:Y̰z6WbGe捲,.4q|VFI"̱;H[;]wat+ !kml{4? n^^i:.nL&VM nیfsLKzvS33{sr1!|E;G+*(و :o:oP,2+2C^c@|IKN9 _=mx$>VG#8u]S=UI'bɬF}lY3ęo1)f4&f^n:|VlI[p:@6;UC bN,1e?k$tgI"%Y5-Al 7 :w&OS6GlnՉeuYC,@j`b,t %< wfL1dx~LUEKd0^r\|w0^h`%\Xb I2d|tO]$l&\{ՆF^X3`WRIQFXd vh*Z\ҡ/;HN$%Dv _)%$AEh` /zVjf2xp޵hf Msr*ՙ^95? 6@ qGUF{_ 'lpU_y*$_د5?죿RyoL&Pfe$S%wB<|Lr1ŨjC! l ٲ7P-23}33+(uY!tM$·3Gefkß,1ʺZKD=,ţJ|gLCBշruGezN_uX hV)6@ͿnH𿩜SX80DԒj޶Rѿ16hrB;ϗlDUPe\ {hnyOds1"$lYO b5p+xafc+%5FaΖ؏U6Lg cv- +(} Q?FUu\QG ƄJ]kŌXzd5Rg  a6/brNTtSN7txJeLg#  =pOEsʌ6@XI}kb+'PqSiZ6mvn06RLO-$QZ,q(P$&<^[)oWMX tvm"-՞Im a26@Q tY' 9(s|O@WYǩ\ĮeS2gf G 0ʪ`>"l5p7ލ\A*8R|q h@arW=:s1.]aTpUuFl9ysdžʿjIm"߂N :Tye$KF*]hJt̶niR\.V1]M{$$WHMFI/$~ol0fVgd19}^}ްl.7MJ#}H`@ CG  'O'}]Lz\4:UTܚ?'+f0n$G*ؽހh]z`f˘QH ܒMmtQLU4YY3WƻjQW}{0d3,Q n(J~G'} LBFic"R@(Ӱw&%ę9L_zɬQS#Pm?J0U:nW˗_ «+sB'~g&I얰5bk}X,y3HDn^G]bYX`nVa( R !cJ6 ?%P~RH–Y7]q:jƝ&)m HkfIiP R.@;]mQKHyҳy$FVdzTAOfřyP>B|6e*"J ]$FJ8FI\av߿%M!s>d=x%)+ij!y~o dv[޾mwx|9S6h4&nďsL*su((oNq[U_s)Lk _dӶu,4b;[}zpL}JN41Do!Uh @@d:G27Wes&2ᮐ^4g 3DIF8*_BZ8tRҕuv ̓&6u5~0+LELL lk |/tuhPȴ b0%io&em'Q~U=?O'A90Cc˹-^.13B޻chP@Mz탲ReIYX $ޣ]{ckN*)UN>C<#e+F7ztT,{evrfeHfٮa4Vcp?.og-q1) a] )zZk a[g돊5UV:nFnrٕ[҃8,Rm0PhfH1" ;"HPI[k(޽aNPHXeq2e@icp(1LnЈG$m$zH`y3\e(kKY`87"ȃ2xPŁ!l1ǚ-#cʽ)uI{{ks&ha5RV;{6))•~X_oװ y(8e& ;lladXrESJ܁0^RDI@XPf#9l+<Ēz;{p1q)R4uSm_ՙXJMOEU놹Q Y j[mYXEc,Y]%E\uA ;Uڗo s$.OҧOu-BTUW}~T/n maW:C nsXi ,jQI_iYЗAŨߍ.#vRux$E,nqnj7ZPbMe$ RCt~S\=0ެP{wS34Z df#k\r9\C#+}k$ԧ]'4o9fJl j( XG,M^1Af\I12I %xӲT {zGrѡ7f&Xb ;%?6Œ\v%^ʲ ",һauC?&ٱF 3$,Jj]*o氩zlL#dsbQ˩BU=Ou'mĤ &1k :)N»` <vhS+1:ϙlfQ 6Ðjg & te@r)¹'EѾ-XVI /˾!.RBn /V<$J士d|1鈺Ua\15<!, _~q켶qATX[RmzL5 hj!6xfGYmf}eDr,T;:\{FŧJ]@ '_b"J4ԛ8@A'BhK5Uq MWjbxuR0 3qsARV1_E^kFBwl_pu;mxŪ HeQՇR(1)weѬN'+sbHXG{2˂#H } YW`7*O%/ $iN¯`h fsN c 6U6lG#0ȺMqF:ЭAn<'vn(GҋÙpM1M/$0dm$+yܾG%:ja)&qi,_.oTWFjj-?0l2V`=+V6L1ː@@ێ>_'ƙsU9o`Or1F FQ|xBp5q9ξ9$#imbS[1jٹb3RO˖#F돕{iZFRDozr~86|OYjŎX}/C4p!v ]5_,Sr\ -9~ޜ`xU̬5+0mQcl^MLQu._fɖ3E3M=h5<|'v;`85)lw.f_#WP48sye)% 1 [-AcCF$v& U"0wGb`DQ J*UBi扃H?1oe" ޏKHa:uQTH(#GRIW򝮿 Y0_l4E7`tI@#$iu%\Q4ñlD,pH1"*h+O5xf2$15sV 7.ϞV҄nNjQruGre Z&X6-Z*dy.RV͑kgI"fdYZn8?L mgrL.ɗY%WU:ZkEc^/.UQZ3,#Ϡz($X'ğr\^6|O"ǻ .x$=A8ʲ 0ث߷5uIO#<4HQ`Enhs㙬Ga MS{ vہO#ّ@:_toGY\ d2u6Q,O,flE#`&WuH$p8)&5 4|tm9,MuX>PG )7]D{$zIrX,)Mڏ rZ[m~ez|` lo}mozPV\ЧBzJHM&bYIM;l#Ys o)t˿ķWY.i R+bMO4vغl?#*Nc-8_1JeB+Q WƏ1$wJIbW}n)OPesF<ܫmͩ﷾59u=:3ghJYcD Jǟo,jbI]e|g̚4,QQ4~άq.iK&A 51VIFigJM>0b 1S[2G2$wĊc:rfɞ0 ^fs&deqJ@xr._Q4K8J-`I]DՠaT1<U5}K1#MgQzۚ2dEfIk#~0-0\Q<(C DORh.IM83x-唓 תM,Dz{n*ȳi͐IԁG|] SMr0S`X;1M_^9^Sd(rH!qJ@ܛ2#%EIcAIM Opp5g3UFU#bE;u&A,  ;:'>^FUDf"5@Y܃DeLd!LRq,"M#QԖhZ vn3$9rY_ #Ozjm|i.b^FH//j, qB4ϝyk_9YCFsa} ٵ370;7sC7$)6{|#xnEeY#㎖9%Z5]+ WS9 fRRYl(iޜTg:D2MS۸VYeCRw]wU77g_,x"D [aŎ,>nH_") 3fm&[@l&⋥6Tj"3_ b9hY$S*'y4Yo0f AңPt}!_vB<1L@%I( lNe2ܴ2@c+N7=1lL{FBC9Dˀ1&mf4qܒTE|ds38H dP5QD{]#s@ϙ_F*e™,I.D UQn@-Xb u2bhX[htv$E˩m0J1o;pEqB:|(FĕszXO8( ʣR~"Gw_Qu4eY,5-`Untc[%*'fY΀RPC&)Q9I ,fa}ŭ[? 6! caS o$V%S7#m`CI"A 9[a5_f icV}j[ +!˝nā^RIgu!92q?(;K(y=ChDu4iߝ7Py'x0,,~oֽvn%i]uW*@ՄkZ q|#mHa^eѣr s1$~:HdPOah_fR(dC;#D@Asj2eTLTAޚV##F|3gVG [#␩vJE̼1!FEobi>^)2d1f4@l $dv)!PXНH\a+8Nl/$kR,BCC"m"ʍ:*J+0 RFxuzT $D &`;\\#TIt=8 +!ۑuDoKH d`"b~U8b6UbbtE F@_>k3.nUCPn_8ƍz.9a ]{r& $YN^;]_iN#+˅gծ=۹P _%A;KZ:w'0@Y5}߾)Gull~n=Es ̉9^ V+.ɨ^@.rʺm: nq*v:i"ɱD֐E;/bȩPK"܅?ufO LeqI< &k0Bd (YanA b5l1%@ۓ}CL"˻@?"D_G2+ҋ"vz ‘4Hosz;sǕI +Y;H?*JcAD j>cI9+jО~xFKVZTkj;BgRŗ2һʉ K{~g:|y*c =x*/5H@V #ed!`m8«YExj'U8a@ٯK}gl>Lk+3pb}ԗ@THLI<cbLӹ di`v=k8mlv/.4G3Ukľ~GBOKx9,QF׀9=g>Ѳ.kqTg4/e3#3c~U0}p4ZGemCH |3xFvrCaگFM4G!,O3z 8T0h?TtI&'웵l|S j oanz$xVqiƨéph vU^&5؍ћis".X v$,dWa\QLoI6MS9\ bV;.荀Of,\]]<̐60sĆkW9XɁ+ GVK.dpl}GR8rFf+$?/34GEFhEVB b0 p=1a,/fߎ0=>G) ۜɞf'I eخWĞ('[2rT}?ԲK?877Ɵ ly@6w=^L,IS&PQPc76=9ô?LeH=cʕ5NdahZl?qFGX%Ƞ}ǰeyD#.$jt=x;ѱmۍ\NVQDX%T* #1Fb^V1 gji0"˟1%Uf^@6]<]:G8RtH:(kk`!̀l69G= mT(9;quv:5ɮO~2zt,&E `̲PC&`jIC$ꐖr{{afI2vJuQnޛ{y\bcd/v^k2t _I ݿ 3 $KNG8=Ӽ: 9y "?1ƒ -*G rjeو 5XmR),A9QǾ:Չzʪ"x߾=.8aC+ɚ˽ @;cL+3I hh{}sB` w`(as5"(*4Aq g#̀n=J}̱ ]ǮDvI3>dru]FWB(O^"[`Ꚁfu>li*# eԻƗzFacfb лvuA=S"аn~5p\kU~&<}bHt-r kܟ%efx^Gm[mG[G9/< n%wI0OLO_-|[mF*'c}nf2b)W}JoЏb4qrL Ժfc07Is(L7F=܃GGa'ԡmo`Av|Jr', 6 X>5\olu9Poޫ]OƢqV[ӺGZ%bӍO1OiUUgXE^4"i㍥X0Iv& =#_b%0ΪaMw q[eM=FrVàO83ԩede&wG5|eXc… Hř'IYH _oϾ-zŕn[./?.m2P@EubjouheV"62`m{{gȣrIQT,6T-!1,^Kj O~;>G/RiOͱ o^Ye ({E8՞}:djȨK-YAcLt@zqʲ.bXZ0,)Ab<]̇PCsJ)@D 4'}O͒T,6:M>Z)ԗ9,?uA" ,`NCZjѯ0Maz`{6^)T#h)==5ry}?[pnW܁ӥIyX@|H:I$ }1l H ʉ#Cz W$$ м yP K+5MNae;N5kٯ : 4P ΢8(}:+e.XΥ6 l}nfrdd9nT͟Tdz<ʜuY ص!pNp/Iڱ*ٙ\+Le9#0]Aa~<9db×`#fz`/{R0'@2L!( Qnƅ:UF5Y:rWHY@B̅7cIeY|WZbGk..E5ka59:WQy[IcJlO+4^) Zfqc}?g,P YiA!}s+E0vej 1xRcA`4c-6bǰ8VL]]'{ {BalF@A{ ЛƓ=ĠU$-$kQG<#rA= 6b2e@f,m; 2:ZC=1oR>$. }Kh AtSx_צϗ/Oun֢FӄEҒ^;`.fu.+7 j]-77$ df44xQ$MVGIM/{q@7qx?- LbGܶ,o'Ii$0=ˏe6$L(Q ksW}栞(k -1;v3VdKi|%kH r G}1[5+YK@BMH Zli{-Ir )kg+voFޛbFhq$Tp+WCzO7X%tx1,r,ZQ?3y=ld$I#Sm˝'chbve8MEm.)d.ɠ;5 ,8ؓz(ʭ5&bOH`x(H@kRk ]ʄB´HG(Qcͩ 젢Vā^:CCXG0N} U<9,&z≥A2فV)G<(D)%&P;x6^M i]tҨȳ͎?st)sy$΅6T)jjMq'>%Xi% 7ya˶Y"ys&A 0zҷTV]#v#l+w8 I$b7m ry>-U "D^A4FN$"22-`vg(&XIaYg3 vhqW߁ufb9ԲUכzWaϠ '$Ϣ}t[ 8~ /mƞD8eLO AMio~ѳwCcJK;+7FnG87?yUiD3&bI2ҩiMyPkk~d0+Q;)9Z'VyN^ 39dr<:u@o}ϝlђUP[@sBXNޛRL&]+8 jadM/;BIoܴ3H&w;1o]f<{0 )CA(Uy؝5sɛ깼dI8;1AkD IۚaڗD\A5" 9_j/lD]}/ Fw.éuHCMD@oᑹ^ty"h)+XAe(Gc#gU8mh>U)RSh\1ѳFSM3c3+c6ZD7uV .D7:(ь9f?w@b,.3J[[hP;.I^R7ő?i #vd *+836I˩пh8 #H.+r^M#Eǟ4¢(vX3pN*ĝH'GIlHdXHqc_ ,4`U>DҒ4.2S J8\ѥ|YguƄbqw;Jg'Y4x`X4hmXK%FG5e,Jum"(6 *oe9a4&C($YDym S8I`{rG#5$NI5'c^`"' *f?j;Ȳh#-*U+$pHS'Ls# ol]eT!ї۶1KaJmsa0kV}^g38)CXms3Zj#Xa]5HN$ ]#[M@w1{+r#GL[S!~G/y۩5U틕uLJHr{˘wtZЮ7'0xb7ŏ@lwLs85F,rHJWSvFw鈦_RYTx-:j$Fc:A,}M{roZI#SMk Umk27$n׎̮e325Aһ#/2@TQ0@b.d" UTJ1j[k{-rZѫ'm AȰK*kWm{=2)̤%[ךD 3CBD89T`Dr<@iݏJod&FCQ+6xmUTI4zmn>< B9N(yM\r&Lb3Bc%=8-бZ&] C)xĚdD`~ewNJ@YKZ˓E,_v%Dzy)IBģݒ$}0Q {8,ىFt;`~%>@R5~*N^^ i;FsOD4'rԏlE\tcYpbIFaiգ̆[1&MK2^X+~SG%)]כ=Ƅ<9ghQټ.{k&E`,hkwHX逮Se,i˘—$j `rifp#j˹@߰=x-AҒZYuh[9⋜3"}&EMAnH?x-mhJr NAx%&B4fzQb *< `hPe欤9lyߐ~A*cbtG1[^\26mœViTI/qPYc QZc<~UamNoW; ~>U-*FUl_?Ψ$ F ;kVp86py#:I4ߛc<Ǖ5=Ƭ/7O94OsF`{AκBF]Y!VG ^v#i ߦ]əYcki[3-W(˙I/XٞL'FNj>Y%זi3"m&P@Pydu7yw%\QTW],qe}H*In?]l$g3Ȣv#S0'N,V'>|+  KyiW8fE!wj` 5YsP{mXGrBTyW}/eA{7vEIݶb,vI޸r\Nw;V*?|_4k^2)#Rs$oOQcUr G04RSdq|<0rKl,zw.P^wu:N+zDW:夒FuJB,lۖiFgF?=@Pjl'F~IX3>.•*kG &`j8c De c~EFN77A[r(jrͨo\8i3բ6O_M֔ y}G{>M^|\gݛ0&S,~nm\~YPYգ bI:xQ,ڮB(V{BU:LJt>1"Ȅ7 yM/73[<ijjQ+j=ٽ;cڳC;N+4({w80i]ޱAaB5}!>EWK1o+{_MAX_^$v̴; lz~R#iw^0"nt9XrC".n4/,}*aOOFd0m#m,AgI/^5?bYskmFCpDyNyc`)۷|dR\M>qmv>8l]*(r=Mm|gz1&c0+AWU6'WOLt1u$Kf )#`{6EOIAh!u},U6m*H+8?,DרsȪ0O߳d@XT gڣzp.hS"fJFv47Ϗ|l#|PBԭivEzcEqC'\}|OŖx܆~n6,6ۣd&6lW2]]* dMOFBcQW8߹afZ/e9`g&zؓ![#/Mƒ]N'5#eR~;)Fpo'J|.JZuT5،߾'<%F_)ڜτ"Ec/0k (u,bM`0U/@$޸rmgaFMœhzfdX:H02-_?L,di%/ݳ2KɛteCb r{zuy͟ đ836޽mRaM?4b3Fu`|1GS鲉<:ѡ[(_b+UM70>Af|EQ/qv/mҰ%LU51e d 8z,٢e*N ZDvLF~ !  wqoҜ_fyd H2vI 6^ K0sFF.qn亦K')#%Wed-HNt(YW3=^vbh4 e9#1"iKi6u_t=;]u̳C3MQLu,;4o,m/i'GrhS+f5SRc]*,+ϑ0&*67@V r2e3=dfUpKqw;,Yyhʦ[Y[QwvJ l7HHjHaHIXNChRNMP,92 b#޶?5Y壂l͒O'W)JZ:{l V.Q6>2y/jL1.LcR$H kxUJ.xL2e9l(U tnֻ s627 h[6e#O\QBI[5*l oK&``bX)ےTd2u1[mۜ^Xn#UH]8V~%5 ?vK#gnX%hɻGNѤohX"BaQg_m,Y40F<8UTTS@\:r/HE+4XK{ NVmʫg)S1و)Ud*nҨds QfB) F+%$b4o}ꨚ{'3Bx M[W$L<ðFc Zj$Y51HYi9*XBT:̅/`3݁׬eٸhC,JĪ 7mlTdfBl&l9iѠ2?b椎Xyt>zJƮ)ljr褋au|+JUo1nk2fecTK IPho0u,e̕LC,-j([^;MeQI 2؅T*_2A1P67C{q3#:NVyQ1|4դ  n/NM#ʾf9,J {m_Yn٤u 壿7~875,yf!dRv# A2HA;M;^nƭݔvg6$l6˘ 20!t@Y<֭ʨX]Lϊ;sL܋f@Yx]9d 0VQEjڏ8)\:0Q.AY7_Mn<*ܑ ' 2;1hHn~C|:mt UL]@lmV9? 5jݬQ`Hf"ј0eA>_Z̒!I{iަYxE'[B-kѡ%xR`Ժ@1!4@ԩ+o`NNLf!$IލX#C7Lj\цwf"$ "43m;!Vhd%sV%9UJEHx)ʿJIyG>Vu7jjYcS3d@嘅Y$ 5 NEpEp@ϟ\jGX ۿI"̆w ]) V1 hj$X5"2!Et`}(oF,%eӵ t!hhߩwd;p}vqxmC[sG=ֻBeI4 C |+/#ԃ-o~~KuPΠ {#.sAwF:${PL)A􉣁;v&Pڸ &\ J%wIYCx%|mSX2h|_ǒ5>"0#Y ? oDJF(Y`mZ ;ɹXiXPv^O-ˤ@ 3v#U|5&'G28#QbѭW&4Pw$يhNjA "5Co x*c0wBVxӋI6DO'TlڍbJ5TEv<{b4" axĦ5:Kþ;OR$H _dDRt:ZmǒJZ BVA#G}^<ُ }_C^LJEaA dPa`o*L_M|0VJ·`@H)hUg2c27@eb|PO~䈁THø0^>Uw6f-qI:^ rU"Ǜ7Zg%هn&O8btF$;\715 {*w7ی}.(eQ(v>&]c-h1Kw~͘qoT#Р9h |WYF7([{cYr_z sQ>5|;{9QGҥ;<m}ؼf/jIiܰHM@EiK-M_Ivh$DYBgvt\ұ3[QH-息~:H $ L{gLQ˪˃Ce$*icHR$`tR8}k3YSBG$FifU]3 ed[ cԠNUu,jozOBF\[e w+ǖ%.|qo/ ' IsPa,wo({ P#񧔁Vw d0`RBc]5GiNϬE ???-$![N ߹J_5mQ| 14`}qDdbdG+cs'*(w86U]Q[hYNZ7O P#=b \ڳKT[N3^Rم„ys{~7^],A%s^,hf hCV@]zrvq|VމOF;4{Wo3-خLL6;4o3cg hcg$c@e">互Mp#+h/R߶%8I-=Č7ʘa>0%fHB#'ůfe`Vvµ} |sՕin&E1O׊Z?kg`HhbMGN7@^ǎ hn }04% cW~v* VA#V[~1(.Y?}-%*`;|0zN톴()aU_bA?[1!uׁ'̷XJEqXŲS`}tby=DGQ5bֿLg5Fj_|j2 ݶ l[b1任49|hgVIsDcBߕ زHs"DwcW1DQI {Qlu޸ &ű(x5g`HiUxoKRy+ #v:Oư\& $na[ӁT Atަ,,j^)LG($fX|=e9P(_^OfXH'ap, }yIJ(i_ְhT[2jӺeMI4UOr2#f3,g$ B<}yI>[.Jx5 =t4+,ҏ)y kyg/''2=&8^\(b_&QGb7!zt,FN0ߧp B"51)evs8{9AD{9w7FqX-cd_"YU&>ʽ_ [1f^h>@lA =EW< $jX㝱Yޣ벯L|O!J*ޘ|!f9l+4ȶ+jۡh $ @GDwwYRw/U'VIsϙj`jH1Y<(v7>ÝE*V҈d~a wЊS{`R}e,!5Žonl̃4d~Q \)I5"{}0LcIMK^C׾"L3ciQ[{OJKӗ\>Z)uwcW5 2墈@"bŀ>F߁[$P_d\X*jBd~wμС[+6f$WiI!rƁ q$N!u*ܓnGDt<|gTK $ o/W?z2+ڈ#Q~a}2fs90T7Ojۏ<9DW:ƪbO}Li_V1,.ߞnn~x$|)<.y#~w'HaʃƆ5 [ wcO9xY#t2"U8~j ldL_y:"I"Y|D~8d*JBQInA t}m d.oYN T[JТYHD]Q;;5uSK&Sc]8nAAճ %# KNpQGaXg', bT6)v0U$=NKhg|O11Nx9!)F Bl0^[硗*rHc0p:5_}N,DRj:&k6mtT;!.`HY"<#0'? !ySDFjc;YtY09Z+!rEDOlԙTX ^DI;w;˪ë-`4Q$(| n")|9$I2ىMjzz`KQLpAbF%Dž+ +G6O/6O&y&+(Q{C c63deڣT M÷lBIEJchHcC#ܒw"1-O ^lr*;{Tff8Xɪxl+1 *Z K y?30άT0!i]o ;WEwRl!Ɋ=P'v^M~ h?kc9!g,c_ AVhr}76hVHrԜDf1e0ln Q)25HHV:KyK|T/ ٭/f"m_f~<:F`,<;9O] ,25 &ʒF=Fy++gxNYry; ιd]F-CxިiJIDzFle$}5^tgy$UP,BYM{bc342 B5K'm#MM,e~Phl}y'e0&A&mԓ5Ző#f5#ƮzLo$ވ>F@2]6*]jIUtdrJԇ0-J-]8h)sm B/d7@ _튑TThS,hJ O|Yd>O94,W<Fa(Gzڽ0#lqZ9RXS.G)g5I$ @{g5Q˓e$&&p@bNZ8Lf2ZTia,~ 2icMZxXC FG@]O~;^3>)#kr2BHQ]H=yU?b8`e`,i,HwPJofv 4@AҾ5ص49aHF5 "qq9鬂f6ǔsFv=pkBާ9MKwZ(XM4(ZaHۏ^4sfa '(]7YUH+~/~M FE[-V{ohr]?&X˗Lѐ_b _^AŚW[^Vp*IRqsHMQevoĨɎ,0ABw]G5~zD2,XbcT{f, ~#q!YܱmiO`h"!dQ8C$D"N'R@Ј2JE:I i{&n^(#rP3l #UH3mJ L9&Ya6M7X?N0/Vʗ/U,F&Ӵ2zÕ?ʀ.,M1>6Y$C+X)դ|w#-Mt&AhM ԁ~`bAd8DHYCʝa$u{fp9P2*!yg7rDH@Q s,̒3r #mI[oxYye"Fi#},IFQ"ix7rr4!ѭSOo.}kgO%j*< q{b|*Ar`$M.d6wیT(̉/ʩERb#EnEc. 쁒BT [*Y?mҗ{/Yu % uJu*>[lpd)j x)A;]6F'i3(3'66'O|A]B[9<6>dEAETYU:'4~xPo (-~b `&ə,NK;y ZY3JY J#X;8y6UeLI$Ew.܋w^8B͕2$o6béP8ŽʎU$c>BE}8LM l[RC'/9&]^'n??;bޓ dU29Mql=ϓG$н^X/uFv/s2(e$< 1| fͬD1$lVf Gf '郋[l#er^E˸AM˘hIc 1]%!h}y?Å b8AӲ1qao? GHlpoU m~)Wc$YYӆUmdk62R goQcY ;l7ĴF,HU"0y":݌o\nj_fv+C˺2l g_6n6\B@iJ$q{Iř?aʬH_b Su{g +ɘUZv73yZUnr 4"&`Đj(K5Invq3S$$JZQ(TQ{ۋږЈia*)VVlyh^Xr,LT~+j'm|d1|,&%|'Kыo ssإ lnAGЬu@+?wHm}.I ؆I:X^>DUuFH*oPҍk.h p^&+:'XC'MH#I_/.\.-no>)R"wG`f ,uԪ@\8LZ v}WQXbVn>ྐྵL/QKp1+f%]01LUJL壕)%G@|,M3^A>#l?V5I#}LQ `M-&2oKfj'ƶ$ocIۖ?iTܪƵ+m6^',XT^ڨ° |=@]mOkÎ&3&H8RF悥+I0GuWEƎC;-&~" f%]|<Ħ6}W;V8 = >}#LclqK8Aif9%6S,!kѲї,T($on3i=|)ynZpe`گOҌaC0q'W`},|7'OUh Go;2Kl׳*=0[3*ZőXA>iRyb@"6QOS^e m7N1-XffB5{+&wxy'W4GsoۓtnycHbXըP+@~!09WũjOᇙ,境Z]ɡg8i0 PP]lZaF |BT3~)fG{0uXdvVŶόfz8 Zi 2Fʥmj; f[U鷷lXuk#m<^ @bqj|JLwIHWwvɖGPhUmi XB2O?|s4I$rąX 9TcRB~p0CnZHlx-74ƙ_,ͺh#<$@~[* {X`\;7KeKf4d6T~X;iuI1(jաyoa0ːہXuxJv3R S*.lڭQ6f[2KdMY :«;4F}HTmXbPI#/`/qH:u}I5='@H<Ի}M@3$eBI$E'=8(PMl aGLuS?*GuWJm;bjШR]~Fy0UX[1[WmX?oYε3Y(T. ~G>u9Hv];zz^AVum2I ܓ~O|yM˛($-G$7}''? X[_lSѺ,9gIhBADc]HQ#l|Ċ[h$LJ?A>uTJ>fƨ͆[ַſi~Ϧ˥Ji "on>{aO@Kf]4gb,F|b1Q29r<ϳ|_-J;-ذC?i4}V*öVJ4Ml4< ^]ioQecӢ(\c@-4fƌ6ՃS‘D*YlX?,2wxWX!S_Igeܝ@5K2Ծ ^Y\ů\kͮXlH ujq.N|1XogF,It7bgJVϭmkSޘ2EnR숆 R[;s]^lh˜R,XR@`qc.NvlE,P\Zk4y:%ĉjEA!cF2 @GTu(Ggң}*ƱTQ-yP_*EP <29,c4Мƈ o2uUd-OЂ~Q$' i0TKlNdr#ktҪV9 ̩e˱ _ B[Psb+4thд*!/p;lu=K5wy#ɶ/~~?*u ":CM8LWgo*fb}_fP^IcƒI=Nƌw Ms1gEo5OaNKWKGkm@UB;X^>WU:O6o1 ә,A **xB s9K3͜^k'ev>fegGw0Ξ!V lnIvǤI(UYvumb}Q{|G6hsKHDnN^G܃VN׵*u%̊`x%Idhs޸t*G7d6Bu˙dV<[{,䢊&le' &~xV-H6d.WSllwیha̓'3f% kk!;秬*esUV\#6,TXpWb(|WU^$z-D9ht<"9<aXYs0M`+R?{VaGMjα qMZ&]sYe&hC &Qf\5.Y3*" >Rʼn7jy W>;_^ilA* ETuX'Q~!Hpu8be$T>I6k(f%*5kίE:+K&W1u i7\}:'D1f}Q5 ~>Xb|CqYk틧Fȴ *FTPY"uOES!6n)4fM<<.1.[=tV#}ۑβxlK2yK6N^w4D*]#;b}/))1Y CUttxfvH,nsH2H5b!(ۅc]# BR4lwH`Q9I#d˰]]]kzam@9+5E)#l^~RYySV` "9&+Ar:f#&"Ŕj'٫~U}kWeU*קێ,G>66$?fDj Ɩq#+ ĚM#}7lkdʂXl/.m4[g6HVj#e* n[kr>EٷW$*cف'f^CJT MCa v547;Ց`}~X]33efUɆb6.<Q,f zv'\zi2TruQXx%hPu낟4>W:ea,V.jJ|sqmAޯM {ŋ3 $ ߿4pqVaHFI7jX `z0&.nɽL/M!ETtf%T]]{^(Ld5JZ@N ^.7к9f4e'>X12i3+$p5 I.B`x6S%ɉ%_0 JhܗU9lM ,G;DpQҵ(x0~e-:Ԓ}wabIo7<),cyj},YuW`^@cYDI{.8Z؂X54f3BcK0su cdS%t|6é}ZQQF:@b˽6ɼ//+]XgYtJ3#2*hWUEOE֤hfYc;P4?Fk0眵K*Ev;woT7fE(l XDq ,MMB/eϔ]I%acQmlk&1HѸC'8)%uT`lӡYLr0 6@|G/#4q*G? J^eaɯ[rE *HD,6v_1ؑyXd*p8kJ[Lhm Rˤ_NI#c[)/m41FWa{p92+QnkH^f5/P{;}OQB`z?b9,w)f<1$5̢L+c4W{O#ħ05GMp$̮]V,< (U~aaYdI|sUׯ#L)E(v*ksY7~r $Φ.Y]ܚء摑jHNtMۀb*AZY=Ǿ:+TunY5[1P0U>lO⸣2{.B#MJd[$qCg(us1>.c3AM}lznnصde\j߿sGCV!u7U͛Ţ'ʃf:R<(Yt? v'k;tȒ 14݃FTu$IE^9cQAGmcDVo@p(yCH53 {kzd|,GJm٬ 2?.#mlnq#o R v 7펓CLٯfyX _MAFշ1ܷPd QGM "-$wF>>P3RTFV:cujMmu`(W6zxrپyy"aYn,3+˗Srx?د%œd *m<3!;$bʹ # (4E|v/aI N_7{9-nc/qYqg yn}vEtR*-l^c98եDR,z>܁KLK" W'3tΊTTQbwnZi#WLJ.RniWE#rM$f0۩Q}HVm}r f2e ETV7q uDc j1`>杁+LN[UA088v,b}&W&2H4aijo9TUO{La$>pg\gmẻ$VQfr?zAԱ982 NedV;6ѭF-~}CJ JΡD|0?V?:4\c]gV .g3m! ;bbWdȚ%נIcl}?:$20"kQiF1j݋l}C B${aa WM2l7{c+:4\*`az]f mnĶ9,c2<<1?|"C[,yLUc2 `n}!_7Ba:FNI{:),dF4AVߋhYdzzIy'h!W~=#a/]oLd @$*Ha^k?gsR.W}4bh˒n7PK,]"c?nR8#\ǝ$g Q.@ʙX¶|슯P*s *-i?O%ldy>(+k9Jْ$H>nOon,AD׿ z| "mbVzpLY#dfA kzU͖M `A\'i#P "O 4 YR63_TLҭ)Hv(v|(VS Gm{{qcO?/:./s$3XT<O%ѧAhWD )[~{W@ Ǒȷ"4k),kq{V4y9d䭄Q7'q5V2ŲqF@$?l%3ƭFQŏOAsC#;9Ƨ)dpRh0LK9xȭBc@4,n]42//,@3 Q#|*@NݔWn=V-ĦyGuvv#\u c. n?C.c5O&Wl&;q E(umwEc6x2͕ BkgYo$[Xq3,`Ͷj#& Xi\6o+"HCiņn;ラegV'HSQ);A¶kHfaG(՝e$ZRN٩0Kz#axe̾W3*ꬄnqc\QTQDbM vٜBPp@I$|7k|߄$0#^ By[1$9κg 'e6a{^ 3E$HChBp{)ޱUҞZGE f@#ISI D~?K!ss=B|"I8G1JhEsIkԣLb<Ŝ5"3BT] (uQCXe剧rWwb*IbG#njm[Yg#È:}^ccg7<3 V{suÓqVt˾}ϙ;IY$?1reրq`41L%O{o?qslG,1xe9P*%@l ai3NFxnYQP47$ٲ8"nN 1<c,o,| 2tx׳=@MGX>Dxm`tjG}8٨!X,FP}I<< ǪQ,JO=p۠uKF$7޿,ѾgbE1-A0 bQhXA QwD")̱ &BvJ-Sm;A9*$TMYݎD#GGJ6/Vcb,pv284أ}dM.k&,>Ir>q.&{0 y.%šhz:<$ˤ#ef*ۀMyOnغ8De[6yScϑD+ѱOoV6f$BjQB ۟۾/L$O mTUO}qDIꍶ ø1XG.Lh flED͉rI9`m@p*#`vʱ/1ܮm|y͌g\;iJtmRUA)4鳙? pLd> 8,TqC5rf|d%"AZBپ9.椓76 D$4FƝ7{}7fHUW5v#h:#U\k* e iWKVY ;O3 +y%BIZܓWoLUԳNEP"Oٽ&dTRv۝ރ i H43 WjLo"9Bӳ&,^|BQfHhLX@捚lQ G0KS,At9Zo۶+BM+ߜTPd AV`K0 *ԾOH_VLc9 n1 $X;U%3~%ٜ Vrǧdke5ɗ\^#H4Y'b\䃠1uYʻv <ьPhUqsy[,#7DF7Ń$-E"dE|ݔZ۸ypZG,l}xQC4@ |'58B,F@m.OX(*@b Xʟ: nĞ#>ͰTV&VUE"vN7*ƉڊÞ)c7t+(U6lof9$ze߆9SRQmra/#VjMھ+ !g֡->b>54FYcH7t~ \^_LtlX>iXMcrAŏO"Hx@6WpJFYmkk(W+Yc&P4ى{: #Ɩ#ro ;,[VF YDY7WryB'weXç G䞂,7Tk $:,yydx=lUcbX"h2ڂ7rXy۵ۦ'E J!d @[F#u :x֬Vؓ鎳 T)u acjG3IX[̦`F0nwP==1uV|˔@K(%=aր{6$ydg2ёׄG ,qgp35_,m .O.UGpty.W5r8$Fͨ焨fXe1`UN𕥚2%4JTXNٕx+HY¾%5u#C`F:ôXxS>A߷$$t}/!?'^* 5}kK؛ۋ ?6Q4-W(U0kl-'jW98^?D{RhwkƂ^/+#p9'.R92>&vTU5TǫE1DW2y6 |{95A {u ټPf#/Inۆ#|qf^>3 QB0I:/v-6Y3 CtO ڽ9+:$1]{'=/5>X)M^5Ywh߮(uQ̴3+-8 gOՈjH;h) ʘ$n2XX]a !7[^o-NQ3Y*?(d&\ah&P"a[R/j7`yOkMiX+1aA7V.ҠfG(Ǿw, Hg|֯nqE$݅\vNb֎xv<BƫJEk(zR}f<4 ;m?<9dӦyr<|CP*qߓ^OgvIy@7Lv9-FF,`<5B;o£>aYH];P-Gva M<8pJAnG) M7]b_0-0o q@9g @MY9kJ;=%&>݆i (ZI&XưVnCs:đ#`D;{byl9j N4;(4>8fhJ"UQ~џʌ>d`ejk䪫#$;࿼FQ65P kuCLM%oN{c|P3bM$T-\{ƺ24HgYL$^􁹭.R{|,Vˆ-vg\CP ԑG[mIФf5d!h_,LlFB,zğiLTƻzǝ7jMV"0X/lVScUT`wLT"#`U<ÒI(I_˸ąAĒ+#@Z+K Uoʋ*?8'\zVTᩴ+A c m5a J:>v!1ܡ07a N0 >vyy;+ 9Q!n>8F27 sC"^;W&GePt:=hU.XlŹΚU_tSFU-x,U퍚g?yLjs[BdGBJ/ߌS&ygzI8S5 Gn+Į>n޸G~6e]E%n;x4`Ei:Le%i3Q<h>g:`|O[oߴ_h0Px_(1'}/~َ}P1`ƱÔ76G)qwH>٦Ym'ї PK ]7J8bM.? Bk5ǜ :='?,xONy%U+e?i33}8.Trޠ_' Ш/G:AԳ24"Bzz8 a3qh?C󍘠ٗ4ܞ46~qy[Z~y[!IA`Gw8LKI#BG3үd߸ÏxYl`h:/#EVbSnܥ)4߳E"*0Iɘ 2 }GXuFaMƁFqvz^+R4vc2?g}):_#3Rns OHcM4cP#a~bxۿ9Ǔ)`9<֥BFrVP{/ yd3H9_-Qk0V~3YBTlw5x`|ܝ7ysD,A@(ێG|pe1N~Y:Jɪ%HtThVUx>^&o(L^`XNHS}lCg2Mi) U9l`L4Q34]JSZ cb<.,!I=t X JVϿ}_G$$b j#>Uv,`,F#3,-?HYA 6*1M#/Uche߱|_8/t\=2OI.mNNֵۨrP^qB? %.]Bx冭% ^16鱮q33\QUQÚ4WU 23ǃ7,4tƅV{\3Nϓe; m 5^p8 oy/eNUfu6M(r97fiUr<[ʻP}w>e )Z3G.Am~[Oy8LNaP%; X0;i{֡Tpm=+f˘^DbZ&ݝk&bIX&a?PNߡg* $n }F(\Chʤc&ud~},=|H` Rt¢VidG1-R4`7f.鴢+p?9_j_˾uuبGcgoDY]4 ]dWc- M(W-UlC84YCyapܭs^% ѳ #NaBy]Si;ﵟ۾)9 ܙg#Ppm5V݋z3sy`)"+kU]MIiʅaZ*AW}FzJis1d1$o(7#$gHǜ;tmM%16۶2u*¹&vԺ] cSƆ>EaR_d`LOA$/%٪=n:"MQ!%d "rlP3F)nwnnř~qs$` : { 7f7t'\g30;3jrYavFFoo^LI@m#:K1В[͆{ S?P$1,HWzMYsSsÄC_)v`L9WY 0+0yJ*_ ,jJM yF(@a%Tĕݠٕ@bi\ٸzEZ JHIgu]&4o Tf b5XkFS4u5EX\EF|}XܱK;]c:AWVPMle2l![zv|qB"(\QI%g#68] B$ѱDNU_;>pt>;|BIϖa1E<hml.:Y 1>pZ"cs38O#.*JַqHc+l7iy [Cގ.Fz<>cim{|p2@\C a\5k??톙͟H0YX$ц+ڷ7Nj87f}vesOJ xzo,<3,?zKKi@8вL҄fJ%>B(cIgG HH4wk ز<2kѽGF5~`:1X؁‡LN;s,c+&.i4%x"vTuY4@ :d# "VI'o~X7lf6B5YJDso(u h$v%omaD4#n6T"Sqy]oBdsg֭+=$n>Vv.|syqaKY޴o I HÑmc`{>#PvKPHߜGtQ2j QiIrڞmdB] f}A!jb4$/J)r~O1 J X>-(egss9|HeZva! ,I : ]\0FgbIG/m@:m֞Hn0Cj( 7?ؐe92u"qx]hvJ7S8ƴ 6隋pN;s〳@n# ӸcɔF :]uA$J B}B&l G{&FJlbȝ&_]ߦ9v_z#m扗]X})t&@uuC+rͽQfU:& ځ=s+ɥG>]K}ǘ(\s)h( ī 2lvب8ɥA@e,!oW,Gk|V9, C/97 pE,\һzhɆT/;'%b=~f2_h\ ,YY7.i ouw>\W<_F M$^ڱ:H ye)>@5C~b #ɉdRSV[ pQ|W{w>fOA])E׃ Y "e[T;1IY3WD$$obĆcaqq]1fP7ЍIYm  C݀;UCiV+ -|GqMiacwR̷5*_ؗߊH1e~`pO;IrO$r1H=A149OqLq3X/{0?LC5Yip؊ \d/4D5Q, j VOR>Pvo˿ ?&hwϡ \#6vLh&;2k#c*+fq4,#P$K5Mlr8|2+TPfcgMvI1@( M~?L93Y XlEr^r;J4ŸZ!P Qq=W:͕ɼ H?}S|u C$<{#1;*&pY܆ޯvbئaVj+@˘)RP첣Z:]YX&; uP o\M3O~bZNL9bFeLIl#vNwtf*"@Xn16~B4P ov (UQ_ l-aYY,dYt.l{H!Q`W^BVe;-h@,k>ClO1he$/Nc4}%@FsuYT;@tt3까ܖӐ5 {N.]qyY bI;庙ͭYlc^>*<0 ,ΊBj{Lo_SĐu `55 $=6ɍYIʍTT'dҵ]4/u Fmx)˼nPFEvOs}[OrBAMɾ5vU|R9+qGZU_sD ϮMu( 9Y xx>g4.w5f3ӖWaT>"&t 2\^Tو 3jf M r+GƢBMܭބA9xقvo|>c-)Qw@8YdF҆Vljs9&wدKd] #1'rU&b4(&Φʻf o)=n {bimP,>b4o,| V,9afg.icbGrC$dT[6O&Eu#5,Ҁ|ނw\HɕLo[Yݷ/Y9N!b* jqi]70X^^:ņ)+6BHjd+3OIM$APeGR0 lz.*DW&?C3>S_%daѣxQ%6$c9ӢifGǾ4 e潿6Gu6GH,2?,|77鱬:E8#OێjAeM:*1^ö>s^hlZ+O8|y>Nu/{4}:H.$?t\bXeQhA][6]z GOy+ġQ@ G+7ʌ'ݥf͇Tf`wJH< 9$UU^f8#DȒ8EcGK;zz`exgh|dKi6F43I1^W0"D#Fxq 3NJ`Sq.#M3*V1/Q&O|n$/ʍi"CnEnݍ/yNvz~*|PLU0ͯ<߾>'ӕOxq֐;ze?Utd,q$NPihp/THyX. f2O٦_ Cy)[M||zyYm)$ޚ?*=uO_3+<ث?xKå [}/Ծ4A>881Kn3,mSqL57܏,َ ogr-I^ |1|ija>)nQ3FKҺF;z/$d2]l$ /  ~gg2̒+?R;o3ךY_+aZ Xur)ݳm@ ߹+cE3Ih  oLπ3<}GϮ!+ !hV<{5O9PH6h׿ z\O/XDAPTZ%b·NVA\R˺Ljh~cfC+C ]J2]^ۍ!eJl4)BN%h,Wi6l}\b?waiHk,GΉ&y f,bS$%Ad&J<؉RJ‹B?a̸YTA\w$ʗ=tH&m Z7UGn5z\9x\(ɶlW %ʁ~k&u -;UX?&'F#< |3#"GPJ;QkfMeJcd @G'הBu 8P:G?*? )UVR^L O员ebrj&ٿ/4@ SӨNy9TRE;A&c~m)گ,&ɪv.֒h9}I70H$טg;׺:&b)٩aH<9UF>X K$ V9[,_GHA]؄rQ!He0Ϊt=vrEFdaFFi>H1nTU\p0 ›H8zt=HaY>7WC{,daeQJ88fvdH`c6F[b'̰$u(l}8P4 {dA^}$E\ K$NVczbO \KX?6*$tPw[Go]Dk9դG1_5 *o q+=K_Mh\Kq$hOQH(Wő`lp-drpP:UT"=kqL3RWky0e,?!1Ty &+@{\'+d3"H~AU3BVVYc`1Z:oSm(QMb(OenR\,zAy$Sxj ;V灹,3PR; f;(nqBlcmp_>?>6(drX܊:m\kpIPs |«#,DӫI4 cټ/2 ='Jf HĆ Ǚ{Ҏ/!aLiv$/ʸidF`I|ticsib%ILJ6Gpv75.;0 IpwmisBeP Dw7VY<Ņ$HXod'4xeQ<+FY~R/PPUn4\ZJPeٮLIvUWP;,z_5re4k2a'&k%X#] ?Lk3y45r`* es,,d#0;oܞኍ>DXl"ѲT?:vs"DX8V"75HWx-d&l=;~~o%$Y&;zv(^=V,>J&aUb}a{>l y2$ǩˉX"@bIO^% ̓V(lSd'yL,6t)#*upts?D!5 ^}cuǺ~ZgaD @$XhVؓz陥d, ThK{3K9`(m7sbZHdd&2fgY I.kyw̾QqgWIz$Ru9䈚xZ ozԴAL2eܑzt~~_g<ح(AwS%EDdoܽ2? .dRuȮڸ;̘fHهX;鋳K"AVVVֵ^`9"( &6ǥVd$S$0.[aVi1n5CGΤ!,ĨI @U [P`ïkmA,ofįf'^EzRHΣe+qw]Vu@ys0:++avsgXxA! }`'ĶN7sB275'r{^3!T pۈC#ӵoAc-l既峾fPL2VR/V#ZBP`<_:~Nw+]?(%V#T[ '=ExDZ>I.YtT j~M~['kѴV̶xf[![oڇs0Ƃ_ ǃ4 >Bϕ˜ʈĦ)2(z.ﱪuXu̪Z:LP+u jy7'UI2@œD 0 G}\10CkMÝĪ~ū:v^•4M'<ߗO H(yt 0m9S/ U<8CMLGzc|K7D `i= S] 2l_329s 10:揠 gtMv,5$щ*Gn{ihw;$^xȹܚ-\$Bu,jRYIk-jŁ;7W9eUNއml =*+~YxrIFC9Zb*#ӨkP(-[oZjd1f  ׌RU05+1qCimc~6JBnkPึu0dW@ĭ%,ɗfkd1Lόt˦Lb=D[Ub Doͩvʏ&Z2Ȩ<68w|2Z\ކw"9@}},sPfff`uY!u,ĽO=͘"˶bFu* ZN/WTH 4jˢ7clMr ,f@|sȓamyd V PbG~cids(5KuuV6  ;rNm$ɡVPqRWH 8>waAmi+2FPug} ]exI vcL/bZy;o2U2JU-~8~>f€L‡ | 3 #fNĂ_IFyV%.pU8]# 1f@_kI0\f d{blu%ȹx{_#8`u1F%TeGKԦvp8mʤpiR VjbEx2-v.v4~@9kg0:ciZicV4ݾ^BYHdC,v$Y;#s xI$s@UGEicrG`W$WE~t39"_PtZ<6*k7)dНBGm[rttJ"lDRN}H#3lXA]SLݫC>Z)GˢlFiRgΓઃe31d ]}>]4Otə =ae2 \.Ұ$m؞LI%aMܼ. |eBf v3$7߯YD,|$4T؟? 1$[k'n1Glꁳs>L˖xL3B5Wp/ޥEг62-=m孯89rʮ q׽aW\i[FBj;| ~J_Bc7xHp6*P ]T LrGA #@bP'o-܄K@9i%+TS˸0Y82 Q Iij2NbbTѮ05H<& #'r{Վؼc#9*w0rM3 CҪb!jbέ#Y(U5J0!1wfU.h " ,j`УJk7D++ W@>_:h˄j[1M:5UuOFc)0U {43ʐf&|fg-&a6ߒYp;feRŭ ,4Vn>5[/laI'~bM~4!@k8=>G\DO/c1.e)a^'k۾+fh:KB*7^7\Nboc韒O>rk" 0beb_a?X4?D9,+W#HН3!ӺwA D :ֻ^_gFEҠ>df,ǖ.[V9qj%r~)]_&YW  c/W}y ƌJAlv)>nlF̆B~ZmY}Cғ&C-hUQ$e$~w7'@ats^`x`;X znHPAˮc!&o5r=D+݀t̠/cwjVN9ӈ W)1@|mǦLC!=`OY,^?ũff#Dv% 74yc_<;>G6m&DO^6S.h&~f3dzn\lb.V{|7c1~Q] ԺɕNÀ7}yǽ4]LYc-=k293Č܈ ㏡M$WxL0G]!fHV7є&\F^V-LȽ]MS' fbw*F#,Ze?"+2gCT%1,uSGPU Rw997ۯ(2ya7z)X(A폈# ̘@Z%#ol'Gj((OLvC/dbE_,l p7PpϘC̃X-}WEae7Mȁrט]RpW_(J!}V5IJGjI|lFʦ)a4xƞdnNs0@b3cv;w=(gE/9WPCCk&GvGWe#i2tE5[LۍEM w``0U_גq)I!G|~M區SzbT;}Fm{a(_.QHeH@Y{$JV~/)z@qTs *-^?Q=*IF0lΣ;k@m t3bgY? Ʈ}שAb*ʲ$N 19?L!(7t hKƨW%ܞZXF̅胭=7wų(^b Wa-*4^q戥[?cP 6Nq5OMGsoa&\!!$: H l qj8")eU'VxscS{Ol Z5:EQP  8ܵrW}܌+0ttQLdv45`ZφS',V49oy$?oϭq1Gj8 ۃZvs#QS_-I#6{7J߷4Gwk)dSF `M'm^KK!* $Z{ʿo83v۰IS)bt6Z,In.)!d/`=k|RC<ψmY(/I"d}&֫o^{,҅_ [k=qiЏ2_gzBgz7S=:dOYSͪĞBZ;"gV-0$glXqX#9D$R~2nTܩbNTzBEd2V,ˋKuc| >1&PDAK'}\ٽzDj\u a:&ON^\eVx/l.1$Y.Z F,4l}G$9l깁1 XEQ`rOpVg,pIa|e*JWJdWO$nhMqhD ZHM>1 yv2b%)Za[{c)ҥe?4=2B+"9dIڬUW56O65uX5_gV}JC (.'ޥ i!J߆F 8)iXLRΚՈ$8Wf7DѠ<qV'ђ%V9]TmFES˪8 ABja5]z qLc#wӸon߮$Er :Sr,ؿZs&x= 2@lWaP.*ƈ@Sˏ|FZ[Q%(ئTl;K@ɉ1˱]2eU koDɢbO5Q $]0Hc#e܄kuƽv`|c0ĢHR-yT,I"<2l*\i!uNc=MGYgb;0$yDm0 tL@b <6K&*;wr}VK":_/Ǧ=44AD#”mCO܀~x/hbQX2PGb6a@(R4%)II&$vUkAdvsJ$ۭ@zѰ=壉 LIZ{(vbiV{o uA {|Q#1@dF{|pޅ@ȤӀhqFS͍m3#mxfj؋[[_u1U_ێ,`3c<4 I^^0kGh#Qx`j}=O|s^8e,$ih0m1AVC!z})C2j>HH!|AȮIXQ<>2KHFNvPnǵ\/5+Ҷ&'`# s/ [p cQ3)TǬ!"lO̐8[/BbyZ"UiInoŘ+2GUC8(#*~+3$Y2}?/eboRo,74<)+be:I<B; G 2NB߹x`h iDl"Δ@ȹ,e7AV%hFmEE|`;Ɨpad31 pofk%XL2UՍ!v.!a.\9Sޯoq:YhPs/iQM +W>ƀ0*L0.[/)@2c}lWFҨm!d{VW*mv CPo:[-ٯFYN`%Y$lzP\106 IE6aVJedH.5ѓA>V@%TG9ߌ2uʋ'|6PHrGtmhڰN.C;fڀ;|_d.ZQDW 6q*@C HH[Kј6IGQGMo.e`wrF Ѕ,?^=5QO>k$_/9lTs9.wI"(U\h9b'+2%ݻרkbI nЀW~6Ӷf䢭֮M߶ $GW247x33RT[O^Ga*ŭ&_8bC*AOȢk :[a0Ҁ<|\blڙ.°9 >Eڂrys+"BI/ zl%\h[R)I0:eAV Uܝ7>'2<<%5)vkgOG}J@ h]/a1s29켰NL}#i$Tfr0Ѵ2(F Aǣ}/GâiU>'>Sykj8ہE| 9 *ǧPm!4c_ n2Ck4B"בJ->S{eK$ _(>$\G1l\ _O 2L3Y 4=|8^yV}?$SG;Rl(:AUlK$e-DN|4ͣg.T2x,u:ZC.}=8,gU:"v% _o@%`50@6@y+ų~D&E ̱A5a!Y%4O5:{9%XI#u%TՂkles1U2; _(c~O|,|o˹tbpmGjk F,R׾(sc*#]G*c_(P#mƃIew1#/#*&2y *M_0$R> [x\o/ŇYl wƘ<"B頬,jnY7˶Wr2ɦņz@'`M: m`iE ]`.o4" 2SUv sDBns!R[rŻxThLb"7]I{űe劄;z vL99lWFW>[#ĊhRhc:D&o[m xD\uZ a#~oRRFNLUE'+a_hYsW?3HN !ryx)k? Y"Ngc2LvevtMޚ+NIonc3uM 5,T}Aܓ'3= aff &Xk.Q% s+H!Ubɫr@T9Lɖ)Lj%xLhvGp4ؔO? okyMbpF)NM>[D'Iv~x:Z,r|˼B.Rj!ƛ7/gtXJ)"5F56µXxW=gL|΂sn*vω(8i@7(W8E$&ޏ>z_0 Н](ob-֛dO(gg9X\iB}}1j>rK*; 'Im ѮnxDu)87:I_텗~#~:tKHD .P߂v>sD3@⎸|-,R ̧z5]?3yU2|M 9 ;VzJT͏FȯLȆ u~ymEF)!5X5bUo)C +1]4ҞN &Z"$2S{!{EtS4U[8wu^fNU\AAMo4Rrr3PgœY(*{:'bLM:Ie5nG_8s>"|4(~CEȂBNQH67l]XfҿP|XQ"f(X6/{₩[]6˯*s &t|=Wt鹜;˚[l#>8SLD_5 @֯~{睻GŅT%S(o%9`#FGU!-1bYWuI]m hsaZȌŐVkk'ǯBfԚBǭk$m/峡.@ujն;ذ*Zi|ApO,P6ymbw5SWlH,aҌK^UMC^q<aoQVe%cs1QlA=6dcɰG2:Mcc7>`AFkc =<l?񚡹4=h*+jRl7;ՅZSI9%+mNjΞ}0L %@I\09DX#ƀNƯ+[rTec%__oMBȤD>UZ4}7ESn+IJ働lTgҸ(id a[m[{{7DQLJ7(:+`wPoūT+ '@J*l(1 EesJ%P {c$ ^7N^OID;o\m<:muߝÈ2f2g$d? 3DCQ'#~=-8ش[:6R:(;XH# ]o&7e7{܏*{E7zM.WeU lml ]qP5v9?Z<ꄔ JT_7[a6(Wqd=ĥZݞm)S2aпˌM&[drTA=̉ 2n?"d,N>{z~|/B4ll;q#F5Dkua_Y]+.Ui|\Ԉ+ڹ -lUF$>-D "ʀEME&K*I 5`-e GW o|*@MdJRκuqD`|ykhv :Q_LE0RE}0ʲdJT$z{^+VPʦ_M^VvdZ;_o|jz3'3CEֱBEoEf-,%&{P 29r$h&X`DwӖ#hLӳ꠵ɰ>_׃vqYͫ !M}$m~0.hQhQ^eXpڨ{6}M#ͪo) iR<[+,=D2,H*41y{™LWyOo6hc/DHŘʆS؝ޱDس"X3HلX֝*9o^0ȍo3^xhxR k -]I;ɛ4f%@8F,ٿ HdcEnqјUa&q>D70URE'Q)6$ߣQLrUW&kp?4MGn!i@'IX}=6I ֲ(Pآh /!-2c^wڱ5Fi 'EOH'vm G317k@rכm9I_xu&4}HΡw1>eXRޢ€vkLd$*薶$,nfs> NC*qn 7f тTroRts\ʶ_3btpAF٥NS-r:ȫin7쟦%S$jv; &]PxkFplx+R3[1,vqJcʴi67}oߜPvȆ(AB5@r(S6A%.E<۟L>5^@X'݈=bM4oY#ݩw1Atk+"C6)\x Jf!Ȣ/VDjal ,0C$^$T,| P" t J]ܜS$UvI@RAi] %"4`45r,V̱,7{o|3B'»|YGyp[PΆ٥@YX*9qQe&2WJm/~+f"o$ % 'kc¿CH> -ZerJ&ƅ !(e呛W+VhYxS60 _կЁ-fy4"HgapƼd(ZHX(sɵ'7188Dhn.IҒ3K W Z4Olx~w8\YXYV!Lg2(#H`*;cmN i![U1qfrʊ yܝr c9:P_p?! )hLI +f9W-qe&}'.3ZҀZd;ԡBNLM1M̪71 r z^ 0i֬e4׺uzN9Jhei2GfV$ws>HJ!mua#*t!b!ɫmQ Cfh֑|pu$TϽoi"'AaV@VJ#6O%@$ߵx3=aC:4@ |26SdD傕 l7ltE 3J4KQ_x:M4AAIc47 öaWRF]_ˆ_޼vgPצ(*`9sY`Ѣȳ#@5[=>Hh!\8WC B ˾k121y:0,VYij4O,do8$)1o]7wb2&rX1Jhn9,M=v˨F$m7YؓX]:M0iLrBW\}p6vtY{(ƒޝ{{A]ذ(ڇMo+ ޏ M@0qS򪲅%bN;B9Uy=]L տBc%`_|QeB!;YXa'6OfdYu:^񆋱d{MDEP<^ H#$j_EMԽ Z5PcT<2v !A%`J8(b}!r91hevH,޽q rJ-16棕( ۑpFV(P ӓV~XhKYG]divaz\=jRކр%KUFpQgcg`u"ސ0vA0 X }#hXY:Pŋ7m&+yArfsA. ޘL<-Gr[vQϧ$ rH9x52[k2f:)Wdb1U[I59|R 4&t5$j *t1J.t^2١M!4C.N⨕;fM 2jͫ3w`q'ۨ.$a<% ^dfGJYc?Y@_\elP]Pl0W8u[cݣԌRI!8eҪD P>ǞlL8*PC7# iZXceXى z~EL% U|=BP](ȗXmjf܀>`ΟG*4_}#Q hԛ1n>os#*#ք*[>[Esۊ}1FnXGn18JWLiZhGb f6] ;>ZԀ :+ i#Gݛe#m>_L3*U$4k"0Dp5 { *LAeҬEoq8d,u,dׇ!Hs}$iw0^u\A r;"5.Y'~K$)f±Pc\VJr=c02ŒhWtvp&[-6fEe#\6czF{įUFE:x#g:>w. \3WT`Cq~u)LVvv#M鏣t: ;(|6̳n5~c@>1T3yIWk敀ZI qV-ٶeUI~ 0K'aΡ #+"` |_'O4ɖQC1x{s-h kj5@Ae7ęPYA 32IeP`d:2sVowUp11ґg%aNBL 1ac.~a>ةA~%AH܂;q&_.U&i seF}I'n h/\¿0 3Si (4=bd!&xCV C^^?clFKgn.crAuwj +' -͍^wf;wzNV8dB[ZxcU ywտoL4$yI\*#yu-Ml~cl%ʻ3,(-G-GٚYAEw8sd"\=WWJ2QR${ح&@O7xF 1|ֱq!J4غSL`{*:rS'=$-޻ 8<rʂTFrLϰl~gx';~^K e FJ?1U;Yټʕ(,$Nn Cz&Ǝ%ë_fcb,6Fe͵#癉O j`?y grBd 8$V@ }0R%:o`kz ztĒdy-H9s{{q8+-MK~Km;$24iW\tyyBy4bXg-,xSb-Y1P 1IR8׌*+*1KK/O+;B4Yfs32&\jVh[-{{6'`y*i<?O N[13N2 1U@ۏ|fX/gA6 v uŚ<.LJ{ ܼ/7#Ǧ8K.ۮ6}pLZX,+1"n==8QmR*vƹPѹ |}Agf~"ح 'e|W)O4J;,ڇlR0[aeY|34hXV$w;M 5Q$t~X9qX61 y#w M+äa|ڠi`kvW}Gd9%( .}匎]_al5}L?+ϗEBF`Ѿ7أFk-XvPn {q6Ohܴz wEE郲*y\ Z9yUXh.̻ Qu\es FRILWjV5c%t_,AUpH+13(%|׮ǥrnX0xL:u'|+ 8.6@ 1<\RTJQi/"nh׭CR@Qm{>>bE5rZ% ~eV.9gU4um0Ή4,5@TvQTpb;)Хhv7<L;DtD B; GtcB/L"a*7ݔ;,ݪ3䤏8Q$*kRq!1g஧blr;ovXFX(w/uHIk4M)MRw^ ƒl,Ni4w5NzYS9E)Fi7v7)䢜A?.4kV׿bY"%yr.Va,1 XE,oK ]Q6=1Eʍ.$PS]b޶w;W,P9I_P5C˨]Nlb5TfEpYfV(Z;^3}2\u`H=ǷzƅL?6rc` :OjT3}5ՉV4B (*bHXtr͔(YLEj"{p38(u}Nj(|O~p#`C [/0$ӹ$c,gQr,i:c(=,j؟ ڍ`I-,kd; +I [~] 3˺Gԓ&UZ(ހZ4}}|Cvő"|ĺL-^z5Oezwg(S2Z 5=ICJM4`DQSI:;w|wP|F`k#}jJ_FEz=b4& 0٠wڰ*g9r<D+XێS͜F8ris?2 <`*}1ޮ Y %Z|ݷjw醻N yg陬My%VԢn^޷{4RM KjC`z'Sg̰ (H 0k:ɚ:LIN޽Bl8&>U^BhX95|:ecDy /NO2y`|`3X6یizN]SUvYFY/.Tg@fcFگcdw(tIe˚Ah$'3Һ[1fm6t{M?MVTKOʩhRH0eXovc-Ǖ M^Bjqw<}1vLK%0Ȁ}2So8]9I*4ې>fg"W. &Q`:l o5[u.JVQ8ag\1ѿ9Fr~ 4Jf^SƃRPRw/HNǘ?x*䌐V:#X?,>#>GN(Igt1+g8ey2]F>(%Y#~lrh]݋dQ)AW3 Z/lOljX!o}p9gEY]Y˷F 2]:mHf#@25T٭iPJ7gP\#5*+q\`f]@@QްE)iԡA dUd5_>|DFʝ˜B@P6]b..>k!QHlg ެtf)dj, u]4i*I6Yگ~=ϾUhfZ~QĖ4bƕuPLy|s:yskvPIPRizc-JU咆ѝ/(%I>[wΙr=e *cp M&BPr$>)o ݋1YAj2*6HyI[!ծս0lcX> 4(w($v(hΕ>?l^g.W2$YuVE 1QJѡXGKF˲Jmjk#4KU~q$IKӱB* S+;2FDr:$B!iQ(z q6[Y s/O$&UT45lFێrC㪻Y[یW#8BeiX`̄#XJkO?gwde58 !y5[(b-rٵG!mQ4MH 9sf,M$ ؃C ṗq)D-#2JF>vQ8r,UyUÐGco|rʨTv8.W/KǶOad`4e;Iߓm]e9*)W` g\n67ؖh9z:B1_* 6;pU0f&'QA~"vMs!턲-Nm>\%h#=C7釽uu<ĪēxfT]zsG'pW++KwIsxGQR5+z" ⸴䏥3)3N2E`VG@^A+l#u4N' \{!+rGQeK<- lAF8UiQ%N^6Y DP8Xt̴8s j"HÇY!ψL%_E8 pv|#GxO`Dd;jnvqC栝#*[iIש 5HY7؜7!XIYbflՀL,n 4}|fݔ||GuTWt`mvxDdIQޑԥVё2 4k$<)F܀Os|קL"[>j4yI9 -FP '(gMI3A+<#oa7XfhJڨPdz]v93-|[` ۏ3Rɜ28^R$lĒB0\j{vƐx 93YL1\}#n]Utof]>煙Χ$ٞJtl+@ě=^7& AoΔLPG# ܇bo8^z9C  rp&j-K+. w`C SQsxţ ŨO@c 23. .tâ2Ʊځw|aW^G *ы ^sK_Qf'|lͤha3^i1vc'*E)~QlV>N$GLWP6{\=躊mJ.Ըv]@66Cf1ZQdXd ̏,w=~1+#I 3f7RHI fܢXgV/13UVm|Hѡs@v⸙j# L_V'iFF@8:WjqnaWPxt;($P6 GD@(=q32}$(sKtqϘx'A,fMDTwʎ V ̭Ff.cR=v=4Ӥ~<$b틧`zr-|=UHGe߾=/]F@ŘY eV Un7$8 f}DB ;Ɖej]GB |ݲG$i@D!{zxQGE_cC:5HٲIaFj@c*WUoP.S)<)VBQ|͝/M B7Vh0ji\}ٌqtʾxIf1[cJNJR[C#ePܟ^2n3ԭ!Pfv݀>kWK}Qg}|qY/c P#}NS%;M'Nao$'5xQ"?DtN3y8զV 9<ɼ0@k$(-MKVVz,0E&] ˘;] #T;2D=ǑI4 &Xnf8rzzOH5M GU1WcC{&8xJx’fiӷ7ϧKdo1@Y#s SĿs%>aLIEMmdB N ,D~tY~]d2,jB\i]%wb9`,hp<ϐGTh$$lD9eݢ@hW߹]g5?ӧC&9bHBFRH#U$ǿq;B,td3vjq0~˭2\M &4f3^T6Z; c~lR&Tl? E Z_/lO4'=~#)8ꍘsJt#g*_; \h:nZ^ѳr!'*Ѩ7Ơk逢]u$>s=é(!:XP7Ր ?Rr5I92gb钟J謨Ֆ^6e!rG,o~ǶB/̥]툼 n$X \)aOocW[ਕեk?s3OMv<%oo&2Eoǵ՝U/f< ?[KHCEF86~9!FMz>TpgxBK}7N"{V ti#oo}0iP$@5}b1?t~;v|~$N1չ=˧e`) 2ky}/eV^ԆH_'Y1 j ^Fbq e*[KWoVeLBw6z\[ G(Hh' ]Jf^: !/ii{5댔34NX !oz>U M+ӀM12jF E:Q1Mr{YhgPr3/WRQD@1A5iB&t/٣GesUrGU n@At}lzXY%(œd4ۀ0\ueref`5|P㍅b13GiEѪ_? t^X,@O #U,˻{zA{am dE^%Vm~S|Rĉ*5_s4\Hbv-#m˱DH[BK-DRzJڠRlq,2} 2v8 k4r&mخd3KdCIɤ P̴@Qc)/-HOb/ow*HJ`j{bo80>`;Ï\3 #Pⴄ>z,”!IP$ߜMF_$ o,F\ڏ ΎF~`<SG+SmWgʳrmDQ19!] U #q`DzyR3}S:˼̧W;7(6SgOY񘠑KV:I,WU k,(8efILlbMrlm|7ƣ17 0ʨIi:t+,ѱvՃΝL>le$'|K% iG@6I#bEzJɖu˳ }Q;XFL6VW]kӤ48*ƪ53^UXe4m>XJ(4k|\-,)Ry6YIՠ\ 7*A;]&rt}׽킧bщ# ;-{j ȏ>q+^l4X2yUcb,UGU Hq$U|>3%mGTZ7q02ᲀ1M>Z*pd7i@{߸2ٌJ}3fjqg5{B祏3(ȋzR-Dڅ7@X97Q|5W_0`A}xRODA1o51 L:Hk4v~a~0B4[(Ξy;큓>X*/q?Ϙc}XƐE>}=qg fv:GE:Ӣ އ< yh RF78y\92Y9I@Ɔ0UE}-ὂiv<<[e'U`_KZ~{q!+3|4E"QQ,F+!T저R!'{;o\MfU .Qit ^^T ^RXUN= *5']AfIWUD@Ϛ8O&5nH*I" YS6e9tοN扳\q)6a%d4JW}M1J<%Ozkc_HceR¢T^XBYԤ,`ҀI7ӹc8VC2ą ^YbV2zrGqiXMlhgAF?#Zkl#'r~a[)wʟl`L}WLI%fz?K :eS*+$kHe8~}\g BmUEeANklyqg E+-`ojU*BsV,He32"ΰa`)q} TŹ|U陨}Yf eIށ]CYd ?&c"UHm[.C t'P݀ ]oED~tUg_͝>`(o~ێ+Pf2 N,T5)8=7r=CQ:rٽRxs6%)ƷO,x'4sYE1IumŞ0~=Q]K}/+i!\zP$7'n3HڝQV%j1y2MG0G&|q/i%y~I  ko^}JH,p/˱Z[iuV0#3> 4Fո>Rff!21A">%cdz6%_ x]r̪@B-7;] (*u1ͤāB'޷yG'GCkR3llq, kgҋ 7EgQ,n+gU/,eKmI7 ǤJY4/mDZ }yUJ$2`eZ6A;P8%(y01k~h7_³11L9G`FYQ,6ؤ .~ZUp;>pWk9AeY!͆ Kh,e}DReШz]Z n*16 *衸baE<YH17@v;dq|KFkgxds13g˸=>e&Do o0t2LYcL`U&-nfr&S2K)1fBl#X 7j0z+5K>f`Vj '{vhs-Gl߹o!ȷwIJ[tkQ\i#`(y9 y`oBN?\YE9ΑP=<4.UbWcu nc0R%&/ 1<P&4?bq 2J/Q>\1f;vCLe#JDD nh7;fcI\mGŰo;<Т+|hz{ fTK$С6؜Ath$u(0>bHLj@ ^VEfrٮl2Q ,*k'H3MY#6&I%Ejry Dqadtw73UlEHk3l.a22@u#A)&f¤Xqcq@G;_QFVRL\j޿S_<3/>v?fծ&eoChxfEQCtahbD˽ z8ef:Is.ҠUɥu HsI).嫡Tk=AA#2 ^ ^,Ge$""ѱ%6>l ز9*܊69je&kS*ʪh52*wm?'8:}+,Ʃ2жav|2b˒j$(6o닖!QmLYܴMPPozbO D&O`NL#8Y Kd0!yv_ar#cfz d$BU[SEvnCRw- YؐO.M|:;T+qDeZyTy -q;p](2d4Ԡ ~b;c)"!Yt$ *vͽ!+_# G,5–ffi xg:<+~Y/N9 M4*cVqzG P8q8|`ƲhR{뇹~J Y|{fM8!X YU늩;ы64sп3R24^уD [`7)gY΢((?tʆ5jj :Hrf4X{m:^XrzKBbb aǕc^(Ϧ]MVfH7TsM/esN1EF9@ |qcrf3 Yb^npŮ̸zI3 1fy-mo]xL̤*:h ^،Ubs$vR%X;%Fy,}K@ct!(LR-d/Dab=83xbeeV(QI1+11.(Uq:@r_짢]Ftck&P)K;ON Qef &vG;^U;"ڌBd(HXnlj?bLe]+Sşmk̰-' (/:ĀḤIk}{{bFwVoʖt}{#1BJ ;UzPbI`֕߃7ڿVGHH`h|mW;x2.>D#i(ң`8Fa&RR~0Vi3jpחþ&՛c%8;3 yH&_mrd昷:;|'hgbfpYR%vXw I&5UI}04G+`JT[z0IIHEuhsd$j "`2,i$>=-[|3f 9#TU>)iQqyt?~uIF`0fCUv 3?vi,ms=4bό43Pe'0<X4$(a\88Dթke>U%"t[@|9 nH|0ZQfi%d:imdO3XB&PGV 6*v>njn:Z=. * p%VAwnߗu>gbYLLrBCm{coYr}#/Q>KFs#]XF:- l]5T8TȤřb@:K1swLrS%G$JPfV4)jnj}[/eHK(ʼn GP.6'ʏGH9,wg$E< c4}= ?9Sgs~+G ɔHXRkq6T@ێQ<0l^$2K8:0 B5 o8bftMH%Ԁ(xccwڙe痣'\G(DuF~Y;._A: f% J՞p9zK6UˍS8'W*!8dpՋ$b' Y'EEйjmxWԟ5ճUŵBioe2Rg)bkE}w,@"uK/'mҰ=wF<BI:~^X*pH'NC\oُwwUs9R;l24^A;>R5-ԶrVi( ?BMI:EObMLrǫ{,*PɽV+DyC"C iat#N]ȹ$TMYC[6errY[w8FiMVOģmui$d0HA/j`^Vw1͔bJ0եX WsUڷ:Ho,rfT($|&ɖ}-3j}>fs1>VDr,@}?(-چټPɖ (D&R_';,E $Q3G=ԓ`;8? ! uj~칌1i]BuBߡđD2S`9ZHhljN *B[yQQ#@B2ՎŐA!SlAm$>2Y!੔O1 ƍü2Uu+h*X;m}J Kjs@ư1Nͤr5*v//?ѫ,/ib6ԧ߸w 5,%u <6 VSxE7ȥ ecf}h?wir$h!>|gxnŕMZ# 3e9O`Gέ C):Y`Q mX>9O 9 Wґj+mCU7±p:]'_{,V "I'-q[vc!HYxr0Tf)\@bBGm|)PHHܒXw]uxB2Hi#lK~2~mS?򙷉sqf Rkpˏ[' Nw&a('k2M,pM0Y|K;|VJ7P]YCjs$r},4. KߥPq[yU$1EqfR+II@tGbC7$nQh+ qTQ݂d74wBl}1E*)[HZjoc3NhE 2|I/o:bA4F^Lc(/a6~׶9[^ *!j$z|y@&cJ C{+WQv4lQ"L7mM@E?A wq=ld&lYЌ¨ҡ+{E2$eN߷rd$lBLE}lMlgD/T?_HyܬQ7 8#[M(,AEߚўm-槉KGRLlh14@+܃lԺ_?E% .]V=}og'i|Hs,5"c[M}8al! u M>Wдc)4@ë΢݈$ x,Oe[%"fS*jYjnoLd'ꒇf~x6'j~Ł .ޒ7jC1;xlhCNVFMa/زt{;DFN(F6Ӹ1%]zV^xIW[9`ʓ4N(2g-"ȓ$,g;`cPr$.Fp;:'Ҿ{4$9,,[ ³({R6^<3 c"0ˉG ɹo@m㹆\S)/=isDi.C >1l屎^|geL-Ch`rAwd:L# $Tv0gQƠm:"ǡkfY^=ZcaWE?zrZiXz>lf7XKY:K^KC.M[oL{/)r3Zl)l2I?_,drI4POs{ 0HV-%[Nՠ6ګT9[ \X;P~j_~5i2M>7G>d,9v<)YmC5Gst=y>qrYeYMvo~FqX_/3.񊰕dp?L̖vBw\$ >Qp.sb wV[<9aYκZV#ly̺>bGpT!}+lɋ6foM-&{ qtk~mh 5S!,!Rp,C'9.K`.͛if;˶aU@2 ڸ l^HCzo bV3̑=Ȫ;|Ym !QA oQoƁ3"icjiGr 'Y,m'FM@>>CX.G3%AG[iVŨ?K,b@"^Y,;tO;np<A$^6)0rMx;m;c)V8sK&_4̩jX\}9< 2WZ# *}:_?ٳ:03#n"a"ztW:f3]KҾ7OXfE X}ϷUsGf(U(P7m*\ Xi2lBKG(|x ށ]:L$ʤ*v"}`fǍVTc7[Z22Dm6|2fz7`< `]4x8g/dsGGLľ[5~IzP q 2x"> bPF佲Zr4s$ʴP:XŚ/2XN߾(2"&+_jq;b_6F]cUŦuh^Y: g?͙F!dIMXQ%?}zq.C6-2X #K=|`Փ-.Z6G'}7sZ%14>I e8,x$TQz@~2 #ȢGYt0c3>*)3Q?2a\|ȑ␊IۃƘ帮`BӲ.DҀ+N4(O:),f#ap y,1Mzc|Q<4UʆH?2קqΙF>B̩(F>rHzQO!֫씙 YzR'@g_n{pWB ]zcS‘NǨW5 *pd䕢wLʋ*q~G [s@q mh@5W"( >sHm/~v8gHN,βN-ȫ91HY. UIc#R 9LPzRk51?Z­6^-$$SU&e%(FHݏ<^6X]-4.{~ e2- ?6lƸH\F Y{tMB/fdJZHKU؞X"e:^{UG6Z+/(Ѽ"0Z5]JFb.eb"w1|j2!{"AfXiE?>HhW&K3?y3e_.B7s\WIiE| o}(| )Rl@ہX}p^sM-J[.DMUp]OF4~~+? IH'?zIx .a)`C S֡}͚.K>K1yx C;>o{Psg8BI/!On/qE P+E$.# ܋7հ>%+I⑒dg\ F_-D1o-<@|+G)}}׾X~|EMد5b.ViZ5Qsf+H߂}+>ɰ}1?b@*;Q#O4u0fmhbKD4IU ,HJs@lnBxYA;oT>\f撩@7kHя΄R=E eb#{uh ybD4Vwv,ܟ^+5ڥcBCBdݱ=em/34I$v=GXRF @URт*m/deˡPɩv&;bEIT@U[+SQG pvT=2LԬrȎUe1I!M֠7H4b:K"gҔ:O;k 9,a]j6(ou0(P"$6'E0Q@^'1d1EZHjӵ@?KIPw05{n{=<Ʈri*c[`c}{$/#]~f|c1.o)4~Ta֬mjˆf',S"lc|30:DPI:M|Xی-FLQbdnuo`c%N24H~T V1^%zTq1">y8O@$ LU$V%܃뿾#ZI11H#[|`5sJ4L3[ZG}˖\Pn}M$ԥս?)ZnaI*`d h65.s߶ `ifwa}rYEyW3@_=7ZT7x9bkj6M{]zoCr&b3P" ߽ ]>?Ùk V|A][e.O.V MYYTdAE rpDgoCiD_j2,&Hrdʻn(zl(ЪrAh ġ1ܚ\g:,QU):e!d_VʣvCGÑY$Q$`Tqd$y2xNa.Ɍylrt5Ֆqs74$ČLh_ c|=E~.Qr\e E YWH- >[.rq2&\ڹ(t <`O IeS޷30*6`-P> Cd<ٙ2|f]ѾEYl;elsf[*jR&h6O;éަg53g &d7T.͍+) MܽG=g14e¼H̺դw+s'eRʾ+mGp7ž9gr$y&QR;nWkk #P)3HZFOr/މcLrgz ɫQ<u8[>beԺgSiYs2@ nU7ƛ4l/y,yA 89'G^qFOR\(CEZ#{$H> I VvbZ PЦpMn7I_u..[5NQY"^BoJ66lPdh3P些H$@݈+VX~>gz[0{#ԞhSgtjW JM{_%Zf<+"DN@2g<""i^G3ee/sf1F#ʧ7JH3Et˦|RqOQWdYc^ WEW*w g`ȡR4H .3}c#hU9~ꬢB@.oĹ`"h/⚴S}E9ON^+ST^O8%7#L4Hu~mq\vG&vHv¥,MlrPluzXs+ Z,oJ/k@=G7xug -l8ކSEn2@wU>1lٶV:B(4 #ts?pWc,ţb"0R<͚$~h]Tdr7Sɮ?H/]-l F|)4@ {m-+ bh$p{bdARʀy,0VbFy drGSH?mKu:4hQcዤP1ғ[F) rϤ4o|\@-Wj_ ]JGpocPi\"m.4kqQԢ83C;~|vf~Q$KjfT *T>Ѻ{ bkYfuuB,zڰ%7P;#Dd%XI t|G~xs!zcAX1 W[t3\v0Wmv(WOYzROa$J$>V'.nFcT ٿs!!I4VYnض5 sºZl2 K3ز/ 5]f(rQ(Eƽ>"xTu|}({mGknBHtoknaXB'EF(C^yŗ0гbG,M(o3#p܍oBXņF5d !XG!oO3r},BI$s Z%3m*k,ت9+"o¨ldc4uY  3}C16iH-ŀ{kaG49u9`YC#L[.k33f3 sACn*S[la*@4>a֞VlĞSUH@⽱8Ҿn;z`z@ 6*7j<\Z`**%A>dɰj]bȺtJI2閚gukv0k逳Y2@4Xv %y>ب@~#˿oQdg3VݓYUk7 fWc/Ͼ.܌ZkF$A2FG,91r@4(q,A*Z+1PXZFʮIZ_=$i3R"۷k,Rː"Z!!PIUz)KQ[ @$~ޙ$igYS&m|9ue{Dd!uiQjCΑZFuYSFdwŒ9'ې[= taUkjPx%zbLÓĔw7}*IB2x-)]feJ {QT鹩:6-+Fw{pV G#3 ڍK|Qo8/ƭQ$](l4ߓ}v q⽔usS@ )U9|7!X[ʌo\ /oELY.jpe:}CHoI"f9Nvih{zlrf05 Si@a_#:F|:(X)_ԙ-kHקV'A6o+/+l)! ] qhTX;?&,$ []s .A 5+VpTi؏LSMA߲I2}fT &c3lnGq9evir <@!0߿%hA5vH5Ps2/|qK+s`~/˓&WXƛ[{C <@0,xQkqo]S&3Ť0:p7Fe&5&_驗XD S@aO,5` cSFa6˄Y9D+K#Y7dU޹ǔnM|9;$EV{x3D#C jҷ=/W!9툫Q0୻aG$u9WKQߑwX8Om78cll{Q ͖MUV w!!M[*7j[&b)&=@iI,|)Yq`j@]P$/F()#ԂeT Gn_@H Eh";XO2pD KYX ^m8z|3 ]Ʊv6+aT~[S2=[0_jX:VUyb]4~}':}GRdzpNM.\rt{')U_d9(I߳\'GRcV%WQ vct@dm"6¸ߝt\]1ICh ڞ07;Zve+aeu #eY?Y$A+ukÕ9R 遾$::U}|䢗/0t`(Ww{,5K-ijXcP)GX3+ħKF? #cq9KtmTP3-41XMBn?ɶiXg+>}4vs/4W-ʁ#[JN8[Q~ƹ.i7. Wccj>]6j)G8'yHrO P/LtwEҁz鎔䳌G)$l7L(V^ۖ,d%ßʤr4n/`omt4<2;vEܑ{^\6[9H 5 5UԲϧ-/P2NQ6(?,w' 9cc$;AWMTcRJP5t]\<6JQad7"r_fFvFO`P;bޕU7ځak}`,^;wM^ š _S,c%&E9^,S9CL /ヺ^k7'\G'4Ah UEKv_}frm,E:EjU|>t> 9bon7%tEgϊ\[le6`xbh\v j#;w4˙,BJZ޳goclgO>r\ܯR'ı7{'}LPD[яKkEA}q${' G@[Vp7{XMxtq4v7noab\G=1yH}-+{hdZZaۑXbcFP(mܞk|Vʱ˨Px;^k鹉ce)pw} :b7kFpy$Y #Ui:$xa"ƙHą1ʠ{vONA`xȍcw|[`*լnn"eLÅ`&XU k~%@%n2`y Oڤ@@H|D -,+j?(+0/`D'E#7vc ]ITOXjzdǪe2 x$˖13a悑nk|!-I&W,) %0unI$e eVO)GhwC4%K"S@EZ/3cgaX[(dElM(aeؚa~ DYd9UqC`6$?/^}+,qYIffS!a˩#Q$ ݫusrdfξh.arGʦVv5{^&̺t fPEĒ+3#3:#mFxe>*XYQAgu~!4Bt, {[BwN yꍘw`SzHﵞT96gG%',Hp<}F 4 4~^59l7o- ^m ƻR|bnsOS0h3Kو6;Vn؏-:e2z< _/#hȶj6kƙl}3/6Oa7ɔUU'Ŏq<˥xAHU߷|ţ4, ȔE+#c?Z+ XC}LpOb6VCaU{ajnhe#3(7EoU,|,t/Fаl|62q\ TervR; U19@#\=-H]@# v04*(=>˪[f.obKXVA:uhB MV+ElƟԖ"=nHP!URl?8 $T@$cji m`7G$@gTY' C  S!!َl_ШYYM6߾KVQ?~'u/w&>>}zt/$m#Y 'H6[˫ggX8ׁ881'$UP:icBfMQti-; r3yLkB4,l2gf), $\N j(O]I-^G\aYWH٪_[' F <:وC\@|~-c2 2 )Q[bC#XGZ<]vswa\Yw$q܃{ Qđ~S})\0љ XE>Pv[ f㉔ .؛&۸/?#Bt; $ILCXYg"PH&׏= ]9xJ]_ϖ 46bEzTWg1^WFkwV*UF8g5kqr#j'kV,c5vJO</ryiFr͜10T~Yj{8d+ 4_?BHsźd.o4 h;34RPE U-GT˦KnH9+fc9$;zW\̡;KTY:qϜk175J/Y>h Rc>0eLe'$l6,e鞖֪~4زFyZh )A"MPɗĊYIU= m,%c"Ut䟧rbڅ#5lQM-0`9$9X-|F6m¬z[\HS ߸4Y}j˿M>za^g!,0B6ۛo]#7.D*)-ҋ !(7ccY]SXJfnp)ceԻg{ л2"8fC*M lw Vߛ޻N1hP.u8>a}2, 3.S[sak7GǨ2t;9/@9|Mr;ƏFù~ ]s!2"oئ\%x$>FnedJ܂~^J/ΐB%̃c]=rݪ}>4EV, 4kc79Z= 1;^FO_ u !|*<]lдJE,n깙/ 7&JTs=2iTLs*|Y< 3&gPҍZv @,_QȮ[&mmw7}=0DdΟBJvF=rmhrFdgLYЅRWwX2RJ5@hCੲ 7 Щ澟DIׯ^ T7&8l\48ʲg3'2$Y,t*Hd&/K1nTjmh5|vV;,?u :+ Wfدw<Bw#;R5 O/ n4+mW\*`O'^7BbC.}}qn$mg* Nͨ۹0%V04ĺ$.kހ/1nHJx*X] ReH]6#iw/ &}Υx6F턦' oNɗ 4 &nM`9!3W|[\7lr{!N$1yŹRU ;o5Db5Jo|W,_w̟2ہ=Ť'ʩv hGV1A;:T^m_\>`(558_Em5~"+EFtԬ+J̲heЬ1zb4U|$Mǥ Itcq筿\8=R %Ac>oH0 N䖫?\4bcnZFF['`+BM #ƐPbwٙCqG~ *)321W5 gJ2fE ӗ%HBalqG0B3!_H*.H"y"Mz=pCeJ[ <~Vy1c̼P78K(`MF(-!1TyN&_=cefPD+#W۟ QoOnlRSID~#2rO@N-0ڹaɟdZ٤PW۷nj'] 2$0"AbaDc\H7͗^Y456Tdgdho* Z:>01юg>g@UBè$OadG ogIlnfPŋ}=?#7NL Gs8y2$nAI4Mvzkdb9@U,_YT3*`!Y$ܵ8T?"ٱ._osG f-3<$.<8#VӤk#o|!g3(q{#ñld:wUЀFiQX # dt꣫Pw\Rу&9f/ f2 Ha|܊k8$3`L( )!Mۏܜҋ0ϙGKF܅#{tyLȤDaB,M7C؊d[cBn%|1m8yGؗea$# $6Ua{>3cs$kXs,f2ƊkBYtۆ޽=@۝Z {LhYN(qƃey̓؈$Cp@fΑ4 9{7G<3C39VnI~3\}1TfYe!+j%X[`w;P/NY'ԁwNt6Wz qCkʹy/S1XvR H{ulk(#$`gJMXW|jFy+OP/Nh @d9(llnRMH(K0Ist~6Q40ǕͣK Xb]qIQM$艘1/Ƌ) ڸ41hhƋ*NKhc:O¬X_ 2Ά)4,LO$cq^{0ɦ<ҭwtG`B2߾E#\3 fr!FRTj> 9]±:v' QJhO MDҘ!+sWk[gI KE2ט..QW;v4G85URDlv> Œ*LXZJ{dY b;A p;l(6+W=ve #PΚ;p!:tr,(0"ٵm~ՏtNU7+x$.ԥT]EVՃUy߁f0r+lȔv4NCF _iYQ7 3HgB7@?c`e*\.WVv?Ҧj@b*n"9D]b*,dpBި`UwbE,\O |aΨ1 bڑ-][©qY$)2Ȅ.OE򳻣tܜQAUFUXw*/}{gf D4&'_MHXm~~;Zle\8JCuat NJ\9<7Y5h!MOc3ŕJǩ|ߵ]o&NO(p*' έ:Xl p-==r 4R'yIٕb`,UwgeۨI#S=yW|o[qA / 1XʠK[ p6eiZ|(F&lr0 Wk}v1-!WuOOᳫp$`u;H?A:|x6'0҃]K3Ysp6k)])Lk$lP_-W7dOE: Wx#2 Ƅ?‚Li2y^%(_VPbh};_.?fl12*LTAS=(y( I2|6^i5g"ei*b6Mhi 9|P3ԌSRY/u8#KNLOE5SH=ofkcxc Խ69>MO5x_+` ē  #ZЪX@[YN>F'LQeY8BR܊6pNg1}12QK,j\IUQZQ]$W&FKf3_l6g%%҈u5yެǐJ:p3*5ʄ*67SyR"nzN+<YZMF{"ř`|̗D ;jID͵kܝ)dl31M>R61]#C1Pty}YѮh 3vRܛ O?l`gJ"vXʾj + _< $V}S'&Zl'rCBp}6i%Dqݚ^.e#!I2;$%V'{-2ه"JF6xp'MIsj˝*f2>]$e194hpjVrhxHK{Y wIJّO86wC@mlH6}}0\X3OUx^Q+#o#Ijn(ѫa>r(_"N`w{lyqeiH3$њ kI-JIDEN.8'M1, lpFFI֤n0SOWgrdJXgA;|\ʎ]uiki7W#2V{ ہ]8YC]ʔW y101@:{XQ+jTw˗q5jj؛{2GPXIv@ x>t ,'(` d$Uv¹ ȝƸGFigT0$ذ0)U-ۿX][`ma03R$W60 l{Zz׮-҇PRk#޾xuB ڞ`"e$bhG?\NA54h Aـoqht搱:Ce~c(M@ჲv5Xi=59R-l;v;D(l^;=CKQ2l[Wo3I 7OC\о~)\2H:6C`Zs9̇ܙ Hv 닾`,&bv zF=p0a13ƈHnM?LJ&Fq#P9&6\A ŐV#mBzXXXH䪖 g34(ͦo1\Qކ٤L—P=j<@&ͩ(޾XC6G׶Ȧc6<9jM)%BG48ʈy9FZ""jڸ簯.}1&W96S5(>" `(`Ӄd }'OBl 2I`kZb2*)iYV{n}zfZYs`MkʃAڡYH\fEؾ~v} 0~ aGI3 O*M7?mVwU'9CqڬtsEY#\b(Y B Ry6}~XD(h @U-Fm PN/gclǁ8є98Hj7;qZ0eN/c(U_1"d8#LenE C3HM#[U r8g ` Xv g}XەDeQuF8u&)gԣ #R)r(uye !Ol?㡼0\ 1_L_>@Fc?V]Ab 793K3㶪c0ƚ5 MnlK!Zv__ oR G۳c@죌8<(geК0-&qCƌOˣKYW*b 8] HѬ]Eb gp)&CiKVx|p-7V'8Jۛ]i$Te$%8Y] $f#Ý#Nqfr(X2k޽9ULDڪ#}XYYԪ+6+qE$a>dbm9ę WpIJ)og#_f [6rg+/qb|0FTnF '~c|3)QVEl|7Ζ!ܡ(f3 C)+V(jwfzGsC ܝ-s$q6C|U#O.aˬr~K{, z1YW?hVmTͽ8H{;:<,+K<ޖ;_1?ݤf9+H ^ƶ->I\P.[+d:h dP;{>nLC6ma\HAc{a?KȺt)lA\o[XƋ rC/"̋GT՝$Um_*̘' ? D *O gO/FAԳ5[_r8 Hjd%+79_ņC!ݯ%G~Ey9::'W d#cLkVY8mW?ACnj+ 4T*,ul]L19MjeP{^ݱBJ8bg6FB34%!""F$kW|8bqǙEaGŽTwVj}`.{:nN Ari3+{^P^wԺFcs`,e#5L)Yv:I*1}Y:`\VB/4ѳ!5^܃HYY%>JuF(==۾/4W]%O~G2~ʪ#RD8Ƅf)^~Hs`!ag7-PTN^ {ԺOEYY,S`4Ed&hEClȞ,,( d' >QmƓt7$lfejp'S3$RiWSlnqftWye" +moۤ+h-_A'mgrx0|h:O,C19ק #cWhRFVLI0/k,cObIOH8UM:oaByb˕9" S'b8* 0fCxrDRm](̬ʫ'AhNXʼ~C;Z*LM*l*yROњQ^3Jx'HU5@*hu0VQV|x1J^@Z))$ `Aa9g"Fg##U6{'3+E cd- v=68WʼeS*PBl7< NW4OI,&BnQ{qbOyx+b;n=`Yф`Oʫ!I#V0lC{i;KтнjY$9tDnԻ5͕I pHhʓ$y<`Qe1@IEUU+z%eu"0[nẘ&b:wn0~b#~lZUnؒCYs2II>m# Q kf|K?Ȍ&UB.Q~oyޒb̓l65泃Z(`bQ? o#YI}/Y/#ÑW}Y uR|9Z <-JeFӚ|ԺѤ-Ybna &1ZIwi"z9,8Ɛdv!swcv\^#șn/)V}񞋢 2LªY6V&zYog*5͉5ͤ i۝qc=_.Vhm%q$!L˝Y8Q43s4dvZ¨ڷ!G>:lC'lfrEe+H_-(A?d+MƘ+HHإG >Y\1#tƳHQtA Va"8ܘͼFZ 2*$w"&$/M R%yoc I2};mDxYjer\$47:SRiY\_)ͦl8? W?#"+79n"AY|2KoA؍^ o0OY2\NΩ '$b5;˒yxrYdg@#IQ[)'ed62ܓ<Ԩ,TiW&p(d3*{g2[Q3Iڶ#ߚf_Fo)&b7q$ b0KH_y${oLf;;X M;E,n/z_4}<$pd `ǽ~s9(duvB`~c|'ʒH ( X?4f'1צ?.lo@ɤ,L pkVB'U (DXQfŁa 8ƁrXa~탢D74+ Ogj6Q;>8EՏ%9 ,li%Wfզ0eU>SoL@gIlgb Fx~V]d4S\)IQf]A%Uk^9dV _('(_łhd1{w[E]A/!ueS}lV_+Mq5`Pfw 3fV]=NuL3e$%m@ŏBhϣU4\ox(; &{b)OP*H#ڽhbuږ|h[HAy}R̬e U`4fr26()/eHX zQahs=6I)PZ/<=6pM,Q if;`%'F9WYLF:;%]$#{o8Ax[7sQi4gB&Ma0|*eWhq{|$d :1PRBt[~r̀L̽>y2,2LćaxY?Pl"ʙsTD(]m$~)2Vi%IK6`30oÎ;7[%it?~&\ s!bFVmY l:bDn9mdM +{<{!e0lJtd]OB0 #a`@{K";wOݩ  ]6IvgPd3PıH U F VYPhx, _SfFdzR,;M$'N$+_8Uri: Ix 2<̧k$)}'۽3N4=@fDdS7C!W{BϵZ8.R>\x!`4'{Ͷ_N2r*0"ee6t+l Ҽɘs0g+U7ސMIЂoL&_8f2DUP)Y>s$ӣI*`NH0PO|g'erه&3XlXU?fĹKF!$sZ <^IMҊ='Ky_3FW>Cz+5k$2Q U5@WP$ӫ|k3g\S2ff~I4w$Aߜc>e v]ctΣH,\h4EW]њ`Ed`6]q$2HY@} & ǺlS$``bNȲ3Ly'2yRDk:Dz†f1׌O!9ɳ&0F!sR6 +4xw gͨ͡H|7epOǸ _ƑsD)=&q2e"rf2Q*^{a:&, yC 5ϱ38\U>3t+Fng?f9rl$fb9z@𻷈jUC62uLiZ0e@+{4{ބ`-YyJgg7CU|O }uϾZ|ji#]%bT$cڱ ̱'Y0,f2C($U[wlX2`.Ylc>KʿַS}gSA%pCNµU=۟+8陘r"|bHdXNcS'Ժvb fi$!݀""`9rPDQYI G|:co)Ca`a[GDn(+ߗ׷뀳 bQ6$ն{≦G2K,oBq0&a݂+]'lK;u|OXg(e"΍[Mθ cgS]M@Y/f $Fj {mC_-H`|gS^℆9x#c6hvf$vTjԂK%!$C);pdpi+k'os{`\T˂QMxWsW:=EQ,u]r 15FA HQ6mmu*a,N wR ?%uoGu{j4rk~;--Hv|TWL| ; pOlIʺ.;c/}`zA_iH:.DlT\l=. Eؒ(UO@S;1ԥg@QFǡō^Rf~8P* L~Ϧ4'Hn}JA um5X[-&k/$PQ7@l|0|YRF VuhS_/e5@`%xʲZd50b*uX@_ T O,iߓ[=O$L:ʷwGM9Lk9]Hhnߗ|MZ)` Hٽ72=~0kRV}?a4r{ϧV$ o*(Q4x|z3STP_]Vw ^65׺Yd`1-݆sG]UP>T)χ#I[E c6{m➟*u) FC#Z!p78ۺOO`>_eEdm{Y* it NP֑\ z{ hy_Ju5(ȨGػDIZ71ebؕRH`q ~i-mt}}}3rNd~ZE}E@ޘ-$x#E|wCPRX ]M,nT o^wKWEqm`:y$j7J.)<֬=kvϮhr1#PApneGPCF-}ǹƬn4J|yaK=𜱞BZzM/:7~S)h] 1AG?lNKx$c.ϣ7rv/.T*+, Ms+PT%cCߨ\6D96 \. ~QO+m UF'߷RHc\ltkȪXNbmyo,e uZ~V5 u˽&"ɡ[l~B|i!Q 1$#HJy'a;3 ^HD"|_o'ACK}hX 3,Q gCǤjX\Wx潾X>Li- beSi#+)5bltXgDB೩k'~,42XnRݝ~T̠LK+0b(U+l^\Wt1G>Ua(PYnjwegFxPi1-+ m[~12-uX,έ'jMlx'+*{D%ψQ +wK+qt%}32D*xl_qBFd4h$}N*g҆4yLƐP)wBNp,n;J|z~ioJG^Ie/V Yƒ%#* ZBdW~ܯKPw5Ƚ%|J66֪kq^à @"̖RYi';v8k QƙxСVu IWFk9}rQ$BH~37.s9hTf@EYwC$9XHb :mD_bfr]neWS o %AgryIEYaBdB{ᬞ'jW2ra-9 V0{ b\KiH|r-wؓu# Sѡ^H'#5Pl5L"(JZ*EF}YbKnIGP43;iD%!TJSkCp(mgCJU]H!CP$`V5]- J::ęȔ֒&#JF34SH1 Ghw;|u\MeKQsLj*Av[;Q1e-'S\weq[W>RڈSVJx;(PEumkw-e#B%xQэLJm;:XsS%La/j [!,V,_f+:Ym,1:2(1(u HYdQزnaQ43bSS-R[ ^yDiيeG)a©@!݁J(Ͱ639H]"x6Y~a L+ yT@O~gɅkhGd3s\˖R6b$(¨4 4n6˔KGH 5h jV"f QW~XG5cd۬2ɝ.[6rÓSm@cBYn˗ħhz}+autwy q(BjyKw]MPe#!ҢeʬK0ce,E&]dkəXy\i28$HPct.q,sjX2 5+"(@8$2H! ;bnHŶ ߥU`B sOE,n3@T )U,n.m_\T3O>Dk0RrOS$rc` :Ս|0I˕+bITIKX.V}#-- {GrR;YVH|ENL/cõP.2]A`&3$gD5;6#Cl # Y"ՂA1log迢Y/,|/9UiA+snN&VLMkbR|i!eJܐ9ZٖPv)sM깬n:f zChjTPk7ju|C0~Xa-V/#ٺi S9I\Е`L2J!FP(ⶼY>qzܦ#`M@UڃH>mtNɈa#4wq ֲʰȤ*.;=^s\Q\fX%=/Tݩ&ljڙdrYU3҄ Ӡhq2Z G]c,a9cK,dhwQC6\غ i$}"7s^dՙ aHw64N(o:K5&z8zOeOlo`oxpF"j9r$?vSw p_S[SEӲ?(A ^-N.qߦi9kbdY֏zƯC YCy쥨145I(*tL\)Z­< '?D`|eʦ`ܲ.kڬnu*E-QY7 ,(LH;(YzIҲYg *cE)4P0*?($l 1~J^[,dw| Sd29ҦKOՎ\G%f]2ilncsU'ElK RʊYo{#۹Z+eBγVLڝoxAffcoT o23 v޻zcG7\q;@ i_{~$,Β.?]Y*{ؿkb#Tm([u+1},@B_Fir4eb 5x%As[)Ikۿ2AI3LA{޾ 2,͒H-$ZC`w>|0.;(L\|mcPHԳn{yDhZѦs[rGD7(/V}ی >TNŲB3ᄤ#/Sf2*(Y ioV7+88U~KS,*I1*/&Ko{;{atQ}JF*@Qܓ@ ZJ?p #Eg1 qE7{0$fP^sg ZR2RTHI t7(7F [g$&Um$ЩaVF=Hj? r+(*lݍUoe8>.4پ/IΙBdm)2.ʆ4@=Zh1UI͞<ϓɺȑ`wkcHl/lƩThB'?\4hqg13)өr ;^&f2$A ⼯Reby@*$Sfa!9fBE :t{;X+Q:ǗtȽbn2)#):Ƿo)˾̎뵒 'F ȇ51Jj[QJOu5aXx &FLPWӱTFg2VEXnÌMfvG .ǎ,q؜\' IJ0cza_إFSMD\,qQ#I&$Xeގj뉷lt..(v<#1yw ט?>vBBJG|qȎ^`?Y HsR«+&wO#Ő,Ҽb&tA y]Y0AW3 4:U M(ǷF(Ӱa,#b$k+vΧjbuZ}jH*XZf n3J]M;R%)q{wh3VwoZ{߰ SS¾cM{b"7ɫ<ڑǔp.jHuiL 6_3¤2ZSȾqV Yq8*a9 /fu ՈMIfOo1X"R? -]X{pr hwbђd O ȄǮsXe)!89l[pHVcu}Tex"cj'KjVMưYBZtb0}0:+lp,y ;}{|\R#j1F<~am뀒FD Nۑ\~bټ_Q+4<mkLhK{_(ף1>Us$Ϣ^pFatg)et3HG/jtUWlP488[6s<-(hHvIbwL[-!T]$v'a3!3ʎѱebA$|;Yy,O5GbJ]yX o-/:~oiVXؓwF:~["YmƐonH8 Ēfc>Bx4hv&X}2<4dDRtWn/Lͦ =)OD Vi B#Ƕ1fnힷcI*ba^#s8FiZ eQ+cS22G`%`ڣ$-Vh2똍d%K-@lw`viq^YT87鏨t4KACH]J$G?cq,P A|M[ҁP\/;HgҡRdH^r>_ 5Q° gMsv&5DQPz<qݓ1 q xUS߃1r$6l>?t:ҏ5+ ~g!<*-+ubJ0)7$ݑ'n=1B*>풐*I`7} d'[3Yr#DRÊ3؄tDv\ҼAd wYMo&7䊳Uxm#ʾCޝ\mjRR5n x)3 1&BwhYaVNi'ѐ"Z_; okR,XI# "`7n~͕(!n&/=[+;[ @p9 ˈ>eB.?R0u #<@Pzmq#|) h)4whg@-b̑6EP#(`iZ K([^3Yiꬂ׋^=h|0EP༁:w`}}7>R{8JDm :r*%eFK O(Uj\w³Ɠ I7V1F*]C6ZhZ#b "l ?ΟsD9 *OP;bJjRʸo)@C"F.bF%Ds$OKW<>fy6f DZ۾W76k{]70]bk}>u)-Z __-QLk v?1H<5+ǡt̷32Ԫ@^ߵqMIد97$:hA %-{;+eHHo1㓍fs&,ldh#bc0hsW|P%>Drv|Ζz+DYwFVcً,\LQ[Xnym¤ކQ$ S;,| 5бWbi py! /*K,Ѻ*AbH=+3roL]ohtdm`~x\T9R :dg6ײE9D2{-EiMiQ˩ЪRlQJeL.xiHsm ̼ u16I(XUAw,1rF{qB3wL,i %" |_^kQ#؝A$`傄0.R _Mcg?JwH^vJ@0̒͜<{6@?X۱ዏ@ KFC 1VXHmGy$`K&hZA"Hj)*Ip+scuǘ)F]GfF">턶5$Y#K'AE"sCیd #4PY${e32 "`[w* $*c)I^{w|S`RQE(i1}ddiR*{ I~louW3 pIJ-sFy*2p݌zŠ-ɮ7c\9vL2j(?3W0SѲYUT4C]aWPwL4]8)wԠ{lm"JteB8,4kϦ*9u0G*yq AHju;!e+*#zw C;sw쫤GT#J)cna%IlUZ Acs Q1C3ȫu;-Hl4eٲr, Z'v/n1E5C">Q=UO$1!(vg]BbG#׷o\:ItXQJi!F6jŮ,sӤgդ'c`|'Ô̦n/ H k6EYL̉!]*l{0'4͕@ 43昐~D ,et |o_g)˨4Mr@ﱾԥ&|eV ;go[#B rAUu;pNOD$b](pN8 M;HZ+ -<ٖо^N~]El^4C $PRIX1|?BEmM",lѺS OSS0P]X+{zaOd%w'F/ervlIJ1E)"%6-_aHMYRf!6?2@gXL E'`@܋͏ˆ9Vx?I:ӢC `֖'05Z$ȳ/r$yUcU"쓽o\_R#J],mlMDڹvƧȧGΘbg ybxQϾv1~3zrd C:GMU4wh4J jyZLj1VVpح14v5E8k.S)YhnM˵DdnYfso\̀Vɭ^qjkї)N<<)I 1n һDG>q~alح=kETKUgu$7%ybbAeHZ5rYuETEHZTu}0Z/6rȚ| m:T)̫,_uROޚI 1TN1"y ]6I9R$I1X}m'&Jj!3RC4 +%:hoX͠2F P VCeICL+MHB)|t"K܊x+2mZzoV4=;96[G}f 䵓-6a|HRok0t 4ȌX-m@;д'W]`YlB¶ 윚mI16_V]e˜Ă4ƕ(Dy'(qGO=%n'BeDU<֬lؑygQ xī(СKcD % |$V^ Cc{z'Ne31rr#*0^hm QsܶW.cBTk4vYd,2 L 6``yzLٜ\ǎۖr ?1b{bKLir$0e,L,uisKIy,yЀmmP< > !"hZ+<{>920k(#}]|gďHG2E.Q^)J菓J&o-L霈!D`I eQ02DakuBq4nˣ6ZD(tm9r~Փ-ŀED[i,MiM4ff\jI&L;uCD #u,ᙪ.c:H݃1u Cⶻg`XKqu*g&BLr zk.d20ud {=߷Ai?EVP`پ"$ tѭ H }胸>2d ɛ8h掳X^&9.T'Yc@| O ֠w`v#N$Ӊ3Di4@!lsDtܠ}]2 e5+8[8 2Y!Rc9j>_Y3J|bw)ohV\1e2nQ];.l{g3\WMeo[jӟEe_-.1-Ǝ#4LF߱R=(3+Gp)xK++U?_XƲgv@u@׾"jC-g(K4䣴R\Ԩ$+6p6N&G;*2>jS1 Iq1C̀y'Rv8;8 NFN3e>Ҭj,n78i "K@F,~C|Vq;iEc`mY-RwlIJ꒤@u${}qp FeS4H$w:ק HbH*Ibe%=cuY̲Ķ-͟ 􌔀1Nl[ ㅒIIA3d5Fչ#pB"$%Q/#HPV: |[U)V=7Trv*}}qZؓU95d,je&t(RGa`oKXٚ y286{rz,>W0 ,Rn<* )GQ`T0)LJǹbo'+Bns&Υ+(¨iA27Q&0ىf]t^YR& `NշlWQ9ZA]>O}c_ކcȊl7Iv' Գ#.'L:h$| -ӺkԕABmjpIe4x}㷦4:fKcO*Ŀ@s)"P|@X#"'OӞ1\G1"vh * =I1FfFfgJ/39Hb w [j?#6|6a+eq/H%kfʾDMnU47Dp 5L?(d1|WVR0o$ȋ8-JX#'N?.~X$ i:H8&̼'wmn8r]fW2 aBc^y|YAK5۟3Yܛ[]M@1bYLeTZu?Ƭ(^_ȣa@&Po9bsB4:Qg$P>lkHrbva͑shRl}OfgHK 7ݭ7}A6XE"/8r0ea5T^ןL%QV=n9hPBR53X[p,9X<(5@X +$g<`Abcp@ Vo蜥aL#EX4qNk--ET~>U<ڑ݋7-H Q9şߟ4C670IʤQ+(#|[H Ik-({{0Ih qUMjw? Mw3l|;@pG'˂$,Yp#rc}G.M]fX{7G1+ ,$p0% P?L{8ry1ziN r 9o/+XX,igkZ(Pl X|OhG"틧YUc‚W)zA+D健:e|٪ |l| Skkb⌬3i10*ވ>:,RHfa/)Ќŕh_h0[>g7Vxσ(H@uhi_fz40"(Z ; =͊ȱaK[ =8_ɘ &t<y² 7#w'Ժ=fS7# Y+64ËL(y09QY>4{{Ygan,rSB#iw>;.Xzwe2^>jΣq[ 94#"Y :?ܑ[郦 nH M6 <ZaLJUȌt]4O)"<(MpY7},K1)bԦ' ٌ-[cWlV .79LhV ĭ4hY;ONo50^2L.~}F&Q23nWKdAU6l8fVBf@ʪ?1h\N3ODw`[nefPG'+U]Eचq3*LKaji,AFVof"b2eCQlv)٘T8͗'M|jNn0 n >K:l.H( ;37z=fd3#@ڑj(繰x0>d<ѹ*lAo)3C1jFإ]N[fgC56ZHrY/1({o^8;NAV^I3$CIʱhٯm$|+h 9+]EӒ%"rYջlw{Q<Ld)`y?.Ka$^f7WlH@pkl4QD&b/jqj%,Y3"d@-dگei%Cs=y$l,los}ݱXKƪ(Rkg΍vLTf2srx HXnBK ZIzdg0>D_),[ڶ +~_ҒgUePUЁ+,w5ҦoRp6( 꽎%Кqi&^\n kP.qfn5L ,`lj±-b{0bEQDvߓ@mTy^e5&H H]obXQڈ){}= ; s dhmT1l DnXordbn8y?&f,3V kRl{9.pA}e-@xű#@cCo^pUhۦf3fDV襤w>aLm'nK0X@fAt4MVz73 ЯbmrhQ:jwAjm{.L9NR"yF1]%$ކ}+2rlH|EѫPoe6î2'CevitW`I^ M ޑf*I>hEAle#DfLFXs0fS3~ jLu ) B%(9KeC- fg9$oh! !c^h'8| g$̠v$x$qʹ)re+Lː_1{cj<݀0\<3S>JϹ̜4~!?S׌UmU,VEsP&ʲBߐ/Hx4j2H!;J7cgɊNHtl"'ԾR-}C) 9gr<_niguaE}/;d"Teb l@j aW[/3$%MLRkeRFF *Q}~XisA-!l5u\y&eUCxtQQPeeJ.zo1 +z" X) u3O·c]&RtqQ|ZԴnD5)~V߇]e*ѩVX%+X.O ^":&h $b<9yYybԊ,^G!i,7SjYZO%#2@V e+rHڻW3;j=T%HSD|87LG#MTv%ߵ| 9VX0-mϮR@46œ0CQEubOgxYpt `?1_ߊ?.l؛cӾ&xڄ4JI70̷0T-_~/ ]k.iqn(~g p3<+1">L/*] 5*ڍGsgPb0F!;zp9c;j6MHgQ3g46,kK2V5rUepK!F6s_ R`9ȡ+8r5XfrZ@Α_u;0#50jmc,ƍ;f5 0(C}0LefPC"dQ=|C䠅ueDV'sxvɖ( SQ1aIBqg!Ha$bH"Q6F~ &x9\J"jڍEyX %~W'ecΏ:*JQ; K탢,g2E,t*&IQ$$#GV:19LS*)b6vHa%mX3uX˕Tl 7xDŽNh;Qqtk59?D^$YSwLZ =u;["͙t)̄x*)LT~=V[He `g'H?-+?BY+}6yxV i#c,X%xʠ5k' Xv(`,9y%-m@$ad'3וN`v7lϪIR:gVHE+8G hq#lbz<a9d5 aߋXK0".4XHuAh_{1F/ -"*(SEsqx^dEhfa5]:8+;lqe,u6| ;m7`Ѻa4X0`6P6%&*BWECSB7L\36NbuLjPnB9HXJB5[d?\'y# "ٷ[}ޝ<_5Y\$@oV%'$^fx!k-SF'5C f# +x uYIR\vk:|ΠIH~Uu |qIUѢVǸ X|mcE_q.Zp^dQ~n'2ԌO=[@f!w_ r@ʩ4#+ 6Gׅ~)Z_R_]36rg L?1_Q7݉@H%fPD{A>b]5bΜg0Bֳ ŠI,f?Bml#sgd+,c.v~Ty?^sd]?9Գ/4t oeVwxY &V]!gX('.T($t/v™[vH킳I1% "H#RƮUV;)rk-W(㕂|E%#FV&@aվ@(YDQ["͙|q,JR}1zwzj\*IzihǂHXXɉrls]s3UH Urbĸ*M:+ZE9[hj;;dl6U2ё6(voO¢ʋZA|X Њ4aIf{+ie,Y]N;[/;,j,Wcc. >yn=e˄@I$@QGty8.8; Nة.A%[PcYOo٦=ډ%oojѶĞ;=zFy!Zu1X*0W,2} \j~^.YgcRj,IR+r1|>I _2Ⱥ!*i՞,LY[q+,Z.]Ce9<]bC M ;\00dwvkU@W4>X&tEVa:PfsVehRhJ,i [z i%aÌ5w^mZ0@"فUSJKm=1NDpFB)7wUX'I]X * |fbyvo}a@Mf4*Qo} 7z%[%Bee⽶q^gJqpw$o -$8Lt\Abv'c KdlC{Fn}0;#vV$@ߏYE\,'`8_71˚3HOkͱR}Ag% <%]ac 7]3FŽ&[1€~"\#o >kYZ!Gj[wšl0zgҊ@TRAaVE6jp/1g)H T=o92h೘];یd.؁{25a-3rHEEQ6h5|09֣R@%m+CISJ"$aOm#g eFנq>)?Ϟu.iWowAO c;g&˻! \&`vlyh/|,8& 2w+vyAax+1*,ZLG";+6 2>,mϮpb@Gl(Lm*(8a~b )1ɳd6X4*I^5>S33˛QS[w6? E[*24!g FF~>aS XD@B3 jŏ&J#FRVn4͙ ׵d*{^+ɉ\QzmD_6;TF!|5fO"H,$qJFV傒bPwW_2x覓ۃKj7T\v8Afb9 qs}8.n2OșBΑ\[;ܫ2amQA6珞4,t'I9D`2*ױ+dX'3z\ԌFM-Fv=n=9dӖ"%WJto¼7K3s:<I$؀׸Mc\f! @`qT̑,i2uVZ٫})iҳg^<#E Ms؞† K#2 8V_=hE珎;#Dv4u.C]aV KG [9yݛ#HU*"hs͛ˆg2 Drw \ (l]*w$Ckޘ Q F&Zl$}: [nkǤh񪫬l$-G|cHNSʷ+lī#+kU47f9LUa|V(]Ӊsœw>g"ei6ـ|{%&Eec&VU ϡM n%Df S ҂>q}#+NM,ڼIJбҪOa6+tY͞| Ym!&KX C}ys..¡+`{V,\L=+ )Guh Y_jGwuHz*eرQNSm 8'?و&O/LOXeEꐏ)PPqng$| f `PƇA\7%wAWN\ǕDEHGH`@6OCe#6g/DTH.X%o ^o =|1L0ɹQj;Q04sJ 9|, $V `%JYɜG:ǒ6UnmhO=s}7/egrscp7y;cfMVn<1@PL=pun)Yu .XGBF֞;\,8;MhA|qǓieiZ¹2[od ѳ,eϙ_`51D6=qlt9`Ҧ>ڬ;q|i^3OfUKc-zǸ} $f)֏|s03Y,Uz5:4d0 Á0y͚R#Uwjۊǡ&3G>xpe9cpYA?JYUzP?5Vc#!ԈϛH[٣*# @׏|3YbRFbg[B`A;{afw3ljœ팳yR>p+ꡙZg%|CjF凎)y_?Xhc]ױh @#r_Qq" |kی1g`#&'Y7&#<2䑷_ ?+4zqXuGW+ 9$mN '7F>o~%Ѿ7s.\q6ܞ IRFm@Wg3r2Ȅߝ/-GD>u&pMlC4PgrUf!b˒97*Gl $M,MQGzbc398\ f+-yk(ŒĂ1HV? "uJ0DH6~lqo[9* E2 @Bn:mDڶ zr(eqt%fTf, {-#o)sa+v' _gp'ef* ЍS49b:R~K?i!y*cɡ^9~aeB$N"#iUVIK3YxtA+YA֪,h߶~ںs0h[ >R(y\+lK#H+~̴d<rd*XͰlk1_120VAdpT̡ \hhP=l2&^:c|"]ŰUoSD.dj5Ǒ%F&BSrk>'|, tG5ҡLÎ5" /mGiHTӨ(^+f2qv߆<6 l밾7}Yd 3I4&@J#ãՌ34#'7F!\`U,_Y"d-cP{8d UŖ'p(lumi ߳~>n φ?Y@'ĺSSN-BadǶ16m+Y N-{$G4)Y Rɐ>^6e8`u7G@Vz)K;j Clya c.nWဓ]?ʶU2 n=ur̩C- c5~Pu<@6 #+DX BNJ@5:oaꙥfaX7hp< $/׹r(~Qf$x("Lߚܛ忮4݊#˪ 4ew`nsC.3jfyeV=@Fs˙KD $*FҷƋ'6E8s/.I15aMoXG!(KBj;$'bq%2f$7+t8mdoE4]YZ2c#3ߌ4+{kU UP0#`y<&l@ 5$o;)Ș8O>kZ IjFq[hZPȠvں5G Hd&/f]&IEwҋ< #7fHOkV8s]ȫ\j &(ٽoԒ>sPP,˦^6㴿Xl.*`Ut;[OeD\̯6YG{NCf9|H6E=-|a.^Fd56;z+gU\Y@cƂ^")rO6{}޽1wU&?Lr: _c]_eܻG#R-9F-t})I7/NLy/ǐ@*t H_5$# ߛc|_Qj%o)!av&ǩ oCVLnjj}a}a~o4e@j[;]ǐol1ђhe$_4`w߹ DhX2H 1IX48UFB6=/oo3uR|HVݢܻ26 &.՞>H|T[W4 @/Ǩ%jhLH hd_¶>Ź|pI]WPbF Am ~d2 6C-&xYyW_I n>W&PUUl{icZH /,h\  !< -`oN55ƽr̬ CQR~ح֬e=DmѲiT1`[loZI&iWxi6v۾!b3Ԓ)r2y8cpt`1>Dӧ?v}2~T0j4l ([Uk).I4!/G3+a iנq`lʞ B@U_,PJ-Dgu| dʚ?4+(J)69 #jp#QƗ#;`]u*zV z c7'O#lV8ěRG纕}+$Y_tLM 3 Ź3d*BNש 5;)i%jk,I8W7a)t2=>a|v& 9X3%ċV*cFEDb, A*\=$HZmޑN9;tF³l947 'U9ΠCR@iUvy%$4O"MlV8Sb1Yh0Ujb$tܰ粪gʠ,V5e5Wte/j^#$@+?%JoŗEt2/ݥ >ϚtVhlhX^#xq#HYA* ް,Fs|$&K̃am4OzLKiB°=)6"-J۰QS: ^;qHZd73QΪ>r4RHѩQAaD3xLʨw˹aIxk:M^YB'ǚZx0n7'!mH돖IW5R‘2HW`[nMcV(.,2oϾl܀q=-Ρ1킾i).R~gc&vMgGjqbN?Swju I9?G*x>u=OGdH0J$SPj哽r]$Ko&0@-zwÉAԳK?cO5b9$e1"2%Kn>4.)?V/.$|n2ic,#d R. ˗PB $H=c`͘'jXFQ^DފX}k5"f4f` بyŷPuqϚcʳ;;^*eIyޠZe*=5V ٜO/,YY "@]m@{9 cSe) occolֺ_5aByM &Ş+^2yեT$=lqu "f䡂W[X!.} #v}5@zc;{-2KaVc~ #LT, ą,CrwUK3NyrqAQem2BY#{foM ڰ)њObG/:V$45T}-'zk$cG/fbVIL|1 5VL[/ճd$Vy^ITӥQ:TexH<8D# FNFIް% :19Y8Tj 60L$]5/LԯҒ" ?h9+!3-X a} )hه IK2f;5X-F)߸4|d@](>84uc(BƬ|_5{ϪgzVf<`$Zd_Jn¯$[oN8ݛZ&`3A7Sߞbc.3[#Z`}({0telΙFR;]$_k0ƒF>XQ7]^Xo|CGL%]K([On,i|D,A)G"9$<ߟ|M㧡5l?; igE*"-Ѣ,8Ķ鹖8igTEZn!)r”.VImty$;ghzl 3m fĊ|Fjq>]݉PI! AvOmzzg"ټ[1;ޘ(UbI,R51㑹!t/,*gXcP@}^VYHsa{"s9}3Qخĭ1:Y/Zt) RXejUCar^h4",FbBPa\m]'P Vm˖K Al7Ca|}66@Sf:pv6+U2ɒ/<\,1ĦMR*U151 erO e4rԌA,.0LFrLK%㪶agqĀ0rT@`WnFC;xsIr84zr( q@w'o>EaL@Q :P :Za;l E`8b]E6b=bFͩǝI4GrwF3HrH*'sG GWc|#H'b芤s7hYA}ˮ GL qߎN`Ϡh[i7U!˒A(Qkۖ,B>{c˯f#hQg|YiAd+B]`/fqQS/Bu4 QGf\n iҺf ѝǦp4>,9IㅨuY١]i2YlH?Γ88R |qL4`t1:܁DWc?/;{|s\^*& @Nnylq,1ih.%WvW[F)^/O4 fbB92u DbܵnxM5٦3RGb<% )?/7{ b󁡙U$nc}m˪Z&Z$QVz\)|E!]l 2:}@U`$*jبڰ{Ih[v `j+^1jGJ]ĉ@2>ߏ QG@=*^ YY",C8n Ϸ+PgӤH 'hI`؟4˼$*Z"WO}FPE($o.Y7`HfSCHk|t-+}pt1$(H w{ܧR3VFrA;wJg] D:m@`Hq7#n_TgreB`C R`E,e>LѬQ|j4Uly N|b[H/\)ͬ*':\-R~l&xP(T`lHUlv\ᑣ)ny`U?_OXbY8Ow8>`72$MGPX.5g˳9}+HMloj߿mKIkǙ:A & #,2Y~鹶+;,FCcZKi2f䝐< םl0ĝK+*EƢ@5 A8OX!ba_ޘԡ02@˙( oo#Q=40Q|O1>^|Kp(v༈l!4,ލ6\i|$xVWͬAc<}#lYX@UINHK)ĂIeaàv-lͦV_29N\ /+'oz*:V)h{+cߛJ&b0IsQ_P㍀_j=C!&W6ٓ+r5R,wb;9nƨH*@0O.jhUHVldɠ "qFr=7{'9a$lc4Q;a|Qe}9a)yVo禑 ǴǡuHu FO~B9>gOЂPT:ºkrC# M)&njɬQyM,unBsJ{ܑ|w ޳tx?}Z)eANF7욫V(mCv낲xgQ mBȿOoN}{ɦL9k}< #4FR.>e6=+0@-I:v dY?)TrPq52$,Bȵ݅o\yfZ JK` 2BBku$ V8*>GG髟Yu\$DSęԙ~4YafG]tPOf+4.G{Di66$K^Zq1>Q鉬$(7LڷbO|"(B: )Z'D]6@8cݮUWJ!z?LbzP «-)/k.!6 ۹2nTN*40H S5 __dUpF ZE9Q<λ/&$lJFa,Ӑoc3 ЖR"!hȯ~JVugth YcbÈLdIGWа)'wI/Q}|yr@ϗ( ڕdQkX\4A+>. ݷߋ;"V RT(h[qpjjʦ*JY" Y*ہ{UIJX8Uv[H c94:4?X7m~ɩ;;08 .߅|ʘECvE}p'fIj$gj'2#0d(BcҶ?H12}Z:R8[ɱP oa ͘ d}lGv"b'LdY퉵)"ѬQj*vT l>8uZ?sQd%; `D L -f eFgڅnX>X2"w(1ƃ43Pnӌ Lci ց='IR.teߞIP #ZsvkAcE$ߜ*s6FA,JTZ'~놅пg9%Xijh8x:^|o lQF|3jG#zeDPk>b~$̲g增"lo s$ @ץFwLp!]0#S9AW[%Tƨ8Ҳ'o sXgͺ9BH0!&\ij$pnJċuc?–QUيyfI"b@!; vC2dS@*.f\>.XBll7>=0`N j #$xc̄pe6~;V'QKrF?(o] c@Dae|@ 54u0Fb\ wliOuw~c|R=̕G:gZ4i$#XUFY|P LX l pa\@eL) -nt( f<$EN`|hUr2t[OTGPCHlKǿezl$ -8iʤg+LLozP@~u-Or׹]^#[*6{sY&pJ`9kƙ|T Sß8E!o 0p>Ոdbz.0Dэ-9#:L>+j#l #>֭oa}dD9oXˋ+klLJ ٍ+YƂ9"ԡ]߽*G!nl)YI$d̨cGmuAy)2!"a :۰l~?޳b Z#A9+ ##<"YX[kɢO>;>P< 5:rjK)R5C{od K+ VO깘}|*1/@?L)-1%Eʟvs9('R8l*=_'$.D1Kk; a=$}?51Ҿf ms9h䤕4k`Ć]?-);ykd%g-*]_sCc!,>Օwڒ4F({mo|>了\I HX`Mw?,tS˵>3VbsltjCjF0yv ҼIv>/զVt1y#Amk~ϧ%hq$"#=m`13* r6H㛴ϛtlч)|cvB{<ݪ(>ɘrU!:Z|̡R4%>|,up!W[']s" MX1);}' tk8LTQ7"8ho0kvC*ǪeϜ;f|19H=Ga6GK4_g>nE ڽ /&Vhu/,DT:kMՂ8c,ʹAM+,ph1";:Xs V6A$P ?{8Y[%/'L,@P>%-G5Bl@FL4֡Cv7vtO}#eG1R^@D7Glhٌg$3e)ղtYGQ4@ y䍯:kd?~3j|Jb,umTG7aד:OF=="Sufhh.b4&Fv@~؜e+4+((jR#ZkݰOt 4yeWubA؜,3|Pm<;v<^'mUl-D5qkl*Q XP8|9|i<"b4޷4_ɿo>gVWeC4b"ݫH wiebza)(O5::GJo{Վ[}qmzU?3Ao@ﰿZUXs,? ^جbh<Iu)Rwũ- 0'KV3IFk 1bX~h酖.-YSIlb`jmk睾7\`s0J.'ChyP@=3c(Pۊx1,ܑ 6(S1)>G>+l'&LO| %x"5"\l4lfY'\6lP;{4e.sK~{OՊ.:0Fg~dxml׉.]E>.JAxj4G6(.^n:ԪQZɣkN!fLIHT, bQ#@;z^t޳3SeAhTY @9k;ۛ`QRrX 򩑙‡kA*B7aVeydZj6p7,PD H_F)Et释|𫅗.x᫐4?`N7}@|t \}L"{m/FxKՍ>`T7/ lf1FHزѸ~^+P$l2WŹK(r3&mݝZ=f5h'i"9ʐCC;w炄1*,96Oa8g.`yIs) K2}E9cBNq4%G͵%.]#z[ ]'uI%->Ͷ DHX +3^ڎǁ_Q1@H?;rћތN[(3Ƣb jUsNIGF7@ G9ˣMnj6 lkKXU+g`gJM.l={vœJiBU#J ݁ xYiRy2fsU|(7XFHTO7a_M122 $ dkg\~,ӏU]xF*3LK `,fM@ ~uk=<W.ٔ E/NCwvfXF,;*nv7lb%n/+X)gd͖mL!dyPޕeS/++kKK +~lzV;ћ*0h2-F|M{ q"ķh`(lGN'+Zbg @UCԜ 1dLВU\7[I4qV@L͘ra}\r̢|q1y~߲H>Puߏŋl4cev+{jfQu "0NW ;w]Ԑͩ iBH6ۏ/r<~h,ہ{}xpKo3Y$`.Nx%.xe2l ߊvhDхV;+I0R3&|y$їbŀw P<و42FD\2.HAN' ] %A`dw/QM {Ւ+VH#%/JnOS3U}"R匤-Z Wv [3([%;یr|dTf|ބы&^Ƕ{9L#tDBF|{?=<7Uf중L ~㰬?!sX^liU*B tߞ+זDUac'a@}9`#S.`GSo5rOJ%,C?UU܂-RnyJayq &p)%K9@@/ɗ '-{88A[M9 MY0)Z dbK1axD5Y%ߵs³+`oBQI'G]&6r!5/'xn\$(ZaJq?I74i'S*&:ƧHf^O[uNI!W}@o=qO-'ըɫ'JL+$hbMAgǨ&GMzt,L[/R;fsnM\SͬE-_%7Kl>}r)tN ܳK2HzPƻ"$=Ǯ4ѺźXZwbjʊ{ ފwlW#K1}}ZlӠ':b XPG|K`@'0hΨa'>}0NLYDoDkϧ7j?.w $ =*Il6`S DHk{U8xV~ZR%]533&jB& `Rנ&bB_7 =.X^d)/Qxĥ|{xjy#C~r/qE ȟga#b(Fp7dPW , SϠprjY>EA g:Ctl;)VzK;]1aԵQyH hyIF(#z1"%R*v;}{0LP# mok?Ntd7]h?2ޛ/<#d6Ϟ^s.EZV%/z:H34A 9P{p/^2Hq 0u p1sF(a=(B9R213  j7Ä?m_}XyQթ fobHÜSi *}+ и.R^'be<_]4]l9B悢Gq[N7;IE$7o _Ӈ%_B rt8JJJثC H((/bn4ۛ]5eG GU}G mdGdR*~q7C3}/) lJ";|$ FqHPy] 3*"fX+T#Z,1g" `l"9Ź4`~\m3Kkģƅj^ܑ]Ͼ)ղf,`*jquc)ˮHj)xmX6Wyrf%X7+@d]W||8^r˙-܊ڒ;@/UqMb%pE+8CWqW@JЮx5HUj&39$yt)B;j;ntM:0٨B V>tdWNeQU˿}&6KYh/khaSDz9$~cl 'e'H)UR δ2@ ZM,oyj7.ZG*`A$}p^%^ı<$d%'1wT^QDXznJyxYHUJ1e6j;Ue)\uF.6o&{4.΂JXx&y[df4TEG&Ԫ!T7]#Jfhe:"e^lGbIǙ9岢 \[oqfܮO;^|cUI a)sT] CP=pdJ 6ts"0;tv_ќVH2EiΠE;ƬAC N(TH1TQzU GӢA)x",t$[zߚ Qz٪3hCVg33 k#p 1 mGtsI\ñs>#ay#nCesG͇' ~m\S)FNFUG*ZI6KP[ך8FBSˮk8əʇڅ(w4Yy xۨ/s̍dfH۶AVnLP%͟q',nAHLY|uǐ& ,Gbkl6oE.Cϟta1&TEm(MlP,ؼ(;6WI&m^6 7o?W˙ۙ[_f%ybHw 5p(p!OPO% K%M ڎ;i1W -|Ug4i#r0t6鱘YD E}]gc;s FI;yY1o""J<knx]H&P56^KQ ' 'FlԌ**B6vށƋ1pD3i:Em_ױF&K! J~MofW1vq7G-+\RX@#mr5JQI#虞2Rř<buT-vն˿ϓ/(8R8^wgɖIqOBam=2<0*&u,fIg@Eh5 0奉Hn. @JU@أflܤj/ d@;\fr\9h*˹mV Ь:̒Kv3žѵ~3 4u*Tm{ :A3ѺdCč RBV;C?ag )A-ٻn`鍕#fmtU@w纾K4bL9Ҿ皕ሾ\>Gk#d,`I+ ݆ڎǚ+'*cXi (R>M ^'Mʙf\F#hj; x5G?([*e26E̛r]ʰR)MFIJ>,ŃC@ ;Q [3;6Y2@(AUӓz034mL$ +3,%DlnݞzkJ+_F+ :`4Dn݈FmHVMo ʁ'$ R74F.JT wo݅rޤy翶6C$G12lv'ȕOC/$MdA nɳAe}|70W@۱a92N8Bܯ u _7ÖHAo0ç 4M&Y!tj xO 3HfRh%+J5VW\0w^^)}|8Xt̔Y"ʈ~^Q*ʯ!ceUIleKFryre #J@&lt' WS7`8Ƈ)f|DVXաq# #όM@7&'0 [lhr6L9츊OɘrкNT$)eTYEʨ̎46Ylm[UJN_f`N˜c >͒}d\|t@ѩؕ7`eI\b9)rArMcl7cgn-#6gTю% abPҘ,= La+ĩ"#*~+ϾB%t"ot Q$?(o>S0xH/kQf.SQYҎarE50D=jA#fIղi`Oat=b:L];.I5[7 [,LsIaۛ?^F׍!#"͚C[G"b 65ԟy52B|6Gv̳A嬪Q< qH|fMH $19x2eɩ#h^lxNM!za_+}G+g1̓UR "\ v>]z\Tj P6mhd'K=~lf>wi3 UKե!)-xI;5h]D/aum;{H!P)N܎xIŮ j]e393+m0R V<6X<[dJd8@BV ˕%ӗ0-~bG8hgt\]](F6 mU^xEF%q筶뷶Jt\;Oa͕/KY`潊%*yQԳFI@= >Myؤ`CQ{Sb3E9kKh۝RdK7z?\tmѬu,^ #JƿFQs:#'-JLf0 4o^s9,M )kA,\hƭ[Ǜ"Ofu , e nwRnہiCșԜjd 67d:.S#g+ %UÝ~퍟E͕mhB* E0}F0N+dkfgI,: @QKv~X#|θ%V)x"X J;qڷ־dr^峩8LFǮ>?Ւ|$KB{6N1IjHu/7`s(`狼2J( ۷;pzpM l{j6 aG1ceV Ci_7GV1"1hʦP7657DB2 Q|7*kÎ0#J[Xon72e .!u"F+2}&ݣQaQ;vA Il&%Vdڰwz,XbMgˤ~[fgX%! YG~Ͱ=grKI!(eW4y̫ƍ;I6G'bI 5|#1#A_0ߥ)<2V'}wIO"9#Pđ Mkn^3y&%/G -؂k珬LAaG@eWZ uA ޅA|ϗtNݚZbZ% ) ;-n7?~i愒Fu{;I]Yr8T= R D;8e,P,hߞ0oسyH$u 2H ,;[ԚlIEì"ʬpԙ/@.I7o([:$b SZྴ/$!Q+``X9Ԑ6؝ ry q7p.FmV@\љ cgc.>/ G .4-!& u`]틁e2J ,`}+ |q&MVDPM_ N.Qboƒ͢sH?JNٙ l9c$ZL0o ? #O,WsK.ErQ;ץeljCgyd"X.\O.7zʡ{6&pAKtNC;6b@LjI"6xg~lsX 8@[AYN#9A?lXs婃7Fo}Sb$ Ɛk^Z9(rsy hbX\B2ΫbZ.wA`}6|ްUlmgNxC!+Ql<ܑ(2gg:G7$sgLy4FV;}pIy&8oѩz\6BP>0ZN̟CMhBq,tC+kRh5|ۍo,d]#u)7XR I8P/)[ol|_G_ĨhiScRH%^l=pj&DA33Pt]}ڏm&\I3&DrIrl9h(d#LeiP@n8y2i# }%bM{|f&iuG3YrC9Dy++lW?\B|6]mGlv0I'2"Ũ{ǾHeԋqW'XDQ5 {`YX%U? ض.0,@nĊ^+.rVUX*NVb?/l/;MK°)g KB l$.{bP]{4xer[ z|rFd̖:w\ #);jUa Z@n %mQ4Q#qzNگdWgqLu>. ijڍog񟋢˖Ϣ*ǭuRӜGS#ZzxyG$haS4beTK nГ9@7V Fe[.)׶cZU2Ѵl$A32o@,G/jO*ky ,5[Hk#9LGLLwaϱp)2yHl*j%@z feVKd)+4*eĖHsB ~/( c6[wMl'1"@N|(ZxI,ՙj̎ ܀1M{?LÓ3tʓS(^/ e2! !x`.$oZ#O.TH&cQ⸬ rꡊdeN%Dڅ re70+ҁ~p]BޛG-4F6l:t϶s=tAo۱ mw6`~43kBFq\ti/btH9PC)f^Y>[ ZU,y%Ud4>"r8<@cdR;>&CeAf&a|M t6޸WjHm4s)U] ]tڣڅ5ʄ0K$s\~aUj$ej?}1G&r7e°l֋%(dA#4^ew 5mƖ|}ߎ[/L9'iu%69bΜOfr7!*묖;>z4fDбT@ =F»h~te YtIRjN *7 [(G)ᜌ{ $Wtj(, 7{/ʗf=[=̱ǁ3LH3B;A6Fa33gz^vd eaGk,PXp:F"ia8QȃtFd"f1,% HofH*t蛝Ze4&U䇧K0+J{`; s} .UYhu ͯq\9frYhb3bP4Eޚ'(O$q 1E @P `YƉ5q&ۭCErIh sdd"0Yu`N`6$gI "2`+SmGQA6^pª[enԝ@a՗Xl'g,=kESk$w۱`~K:Q∖/"E]nˬ6ߥbM$peLh4 k.VGugCeU6Yb \ֿ!ҾSt@U&3f‡6H+I5mc(W jCϙT69h$!I'I2f16b 7 kk% glD.g+5|Xژ &Y+;hA c i6US2LYL!$l)Ӷ<&d_EQg+yp>U}qi$$"XLABXȭ[D؄ TP7Zc}9(Β!uZ`UH[?3Te$Tf`lqW2(2E,G)deؘaq'W(R Ao}lichω|9b(KFLYtb.qk1ִ)!%$_i d}1ޓvUl`LqAT41{ [JXh͖WPvXZcUF|dJᔏ#C{ ¼P̲*c~0cHXSCIG}:Qm^Rt`+s{4|e W1@WEV0!.4*H$)g>z|U}e "<`GPc̖I0.ҙEJtcf "ʱ<{.،#/'2"ÛJ)鸮M((}:Jh$; Za|$<ͥu,i,Gqt'IMXeSz`W4 aj#ơcә4#nQ {~X(9tZK,qOb:|I#I#Dj]}iMwS'&^˦1Z N2,wy*dgTv.R^E{VcBAǕ߭q)E3vY!kvߓ)y+cGmF-FѼڃH@٦jQyI;<"\d7}?A_sKw.ϰv-bp#/# *fU/uY$Q021,4e䭊$b=c{#Fb:XIՀ$ȳޑKHϖ*s1+,;kŧ_y*xc3+ jSx_"ʙdHm| 7uc= KʥM>c!"3dQbeʛmW`#,s^eH&+<l GHo\-qx䌺` !ͰPA?,IP#h{6JcR4=SA2K)Yj sJ:c1Vc pi_m+eӯ{%yO{$A K 4db>c1""$(b{}1: yc˘t-ƅx-!ʲ$cU"8SD4]Q_s.|υǧnb .qۂ=(F[`i[uwF7}+Q}Ϧuv i>b oс϶ Eg:EnMm>~`ys} G0-nuY1mns!Ap~e;Ŗ-4-^b 8m<4`*LJM6> r@L k0#ˏ̶#Ut055>M5\߂_/+)R"tRyx2bZ8%haPQPxOPX*eFHȺ"h~X㴮̙>ȑaβPֻl arEf 2 yaQ(!c Xݾq Ft,4w#9*MIqױΉ.b'HX3Sd 2gFL:䔅5-oLdcnk|zWߖ8T$Uv ˱8ڃ!u6 mJ3JEOu1envvW!MtIC4kָŨҙD:&i#$߿o }4C&]i.3J j7.i4*7* p^_L岳SDSHzi I$;np7N'gKT|Uտ a\Wav|g˺8e*i%|1y̫;ѤMDӶC#y JI]JY%ӶJ6Bva9-,$,хXr$H\P}kɜPxd_NğAgm'ÕŶJ HicvیEQ"bߚz{RB^YI)7A4[w.4`KwɗHU5`=DŅ+4phcA*Q\Z5Q;EoʇCl tsYd_s< t#< ȣI*Īo_qRLj,BNXUB{D z/a_ N$b| CY1iW?|BTVҮ1X (Y` #e#fP4KO{by1*/f3w:Q/1uc`Ws_\l--w~,I'$R\QH8q&~Jל̬A i*I sfey;,z ? m&ȯHk0Ve"ypIdegTFVїWOY(MD6½3$Yr(<4wNX7}+eeg2˜":bӠ&\-m^c4f(ɦs?0RNkmRrJxGa&OoR9틾, y+gbGϙ|F()h惥$Z~'#X*h1j5ɒ4Nfr FQߍ9gle1xBK- ux)]s.WU`hHmCsufɗe,:P֥|zS9CE$Zb$6pC9ü_(2ԦSM;r#jcnS&5mŇߑ`Č`n b,-?UG;_WnĚe B &[Lr /uizUI]ެ@'Ey>/$fh+N;z.b6qxsR_krR)}J7}R. K,)P(#dnnQdg:V[+k4Q_r8"<]RF+V]JAn0Ďq̤c,G-ڊm|2p3tVeF8!KTAnn憬F(OPs4^‚ݸÏfFH1Fn낢%midV؃3kWb HM ||-O#č[P) MDn\XR9ax7oL`"xĈܱ72| ܟɸVm112=R[s޷2s@iu?)?+M ~f Uw^f$]k?뎻'eZcnf\@Xp,baZ˵`RGb }0[D⽽7GfY $Yko^pdZM.7Uq4%Fʡңe`>ʚ1Lŕ9 %7s7j6$EI$}qq馉"bBsۜB%,YUX'6 1EYMJh*0Q&'牻Ш^Ls _c}ŰDgwk#`V\˃+[}l<LRcsT 3(?N~xT]1,(YwVڷ!zʲ< zJ$)bRW{vұB]XяmPtHfc!nvo cacW=C*OĆ(a^lF2ʎCA=HMH,BqkQ\6#)}ijir~\(Ge Xv;bF/Y8Uu;$ee$1ձ/f)"?W@7&aDI(b bVW"R j/˖U$ mI W秤'lϊ c⦛t}.=;H3RC H]' 4.=յqe4Ͳ2ݻWh#G:IwSd+o!yc4UylS{/&YF4aW&%ǙmK&bh NտK4 ڵy,I$1 .f50Ab7?z6tuRnbc,2i'B6ָPH9JM1!$-/C*fP,s,5)QTLT,HdBiOzx.FJ_6/`@9X;%`u^Q@Dd}.QҢ6+nOKu#u1&c4dP+)cq|zq/V(j#{_8e>$@/KU"l }DXZ+ *T& Gҳ";W8 &@Y؋aVXdʈ╼`Z[K9:J!ի,YYG{w/gٯHMPij ,'=/ |ž٢׮`9Yc"M@-2#p#gfy.j`#;cv8|.UY0q,1DC .9$uQ:n 9rHDb<ڼ}$nN-Z$צS]o0e`#9%"AXsauF|WvGoCZI,I%9n94P3fvok)( X}l?3ī! 3%$UxNI[lsyfuh;93x|*U6 Ҁ= 3壋H2)cհ6|?x46 'Z1ޫ4/%zA/o)9 I2U|EYj `b\f$g@ Ӱ[;nwȼ0$BCr}ٚC-|G: U?Ƣ=&I|j iy\#1"r]eՕQ\ ꪱfU \6\ERYelr|N83* (W"ZjFfA.r2y8r6aukn =+ b:XFhavS@* ͍4G9tM!#Ll&PA]E7Q9㕼hV2:*a^&튿}xWx`} $p6jH`,Zat0Q;}]j'hs~Jc7M>4aYxBdTbS#O.kh֬HBh$͜υͤ}WbDCm:lw2E,a.My 휄$EbqWcg9D} { :8gf)M90sg"ͻd0PkK6HCMP\gr&m',kԊtMNde^oÚ8I>TVx8b)*"řΉ 22 H߱x,q"ث13f"Ztؑ⏜fz,^5C"Jy͂ݿf:QLlU-! )C_QC6ˤiDǥzi]h@6G=ͮYs&9t\S{O=n*$d#]D;qwb YR)QekYlTc~[ӗ\tB[|ıP;]`Fr] ("Dސ byXb",;Woᇁd fE2oclu-6t2*[؊[y$R`(ٻ'\ʙUp=1~c/5I2ƌkRێl 9c TeV>| 3ƞ%)caiLsm!TK ŝ ^+F *14I&׹*FycpM/bfb)hx@CW>6UgR|Lϸ=W$` m>b"9X]{[j҄r$ϫ#T)q=jjf>kT[yU_2ˢK? ʮd(k^/k#E#x.c^%&6=|qOףd:4K d#<-FSbH0fK#m)I(sAUTH.@7q۾ uS)$i\2xn@7D]1vZu@ӳI)؈qNٸ3UitBA>W0y|yT V_o/NfDFm%w템Fpĝr3=7$Wys&Q2Ɨ^pMHH&g'^nH )1nN]sY7l9iFO2mF"~g^ H2Et@ߵ|Mlq(]}yA5+Sƻ]5^np<8&R),;>g<ޕw!"1:]j UI= F0#+]`ɢE;VVٖԩXB;b@DcfUձ,߷3=U.e:eG,{Y_K:L p&f hj&aS"Dna$zJn6oC{퇄HIA)O9ɧJ2溊!Qtv{QCF(S#7~Qx/СYY F2JIXkDW{߹װfph%cv;qxl-`q?1cd&O/$ 0 lwt{zXң.TQ(Yw4FlܪׄTvh! ]+(e2Inڇ|=*e:;4su&͊>KXǛ0e&rKI(, 槗fad WN S W(ZLǝ\mO/J)ҍ0)fq}ǵc2|YVi5#Rݰ`lc;cK$\řO@Y1FM\Yo2Y-݌ NX'r ڈkũ+P")R =c9-jj]6_=6\4o:K۱;⮍Qhb" lH ٬#dW.Ղ"/~97|qj%Qb)Ly `AWs).i ._k %ӲLtìTTt$I2eÒF[;yOp}EmTZV?%쬉gռb "[ְ4]Yz*Lݍ weQ?HxXwu]1#k@(#{y YmDI)7~goC|X&$A&Rصo\v 2|Y)"0hTLE>|322Qk4xԪ% * rN5Lg$xaQ4|#b8#hIgZYD,:eȚƽEVݒZG>G|䨭+P ;P#ۍ):Re`˨=^r .D"m$Q 0YܜU3k\+ƒ$UՋ2u`7Û1o23.6P4v'LyysWY_N <*o&.Iy;(.gr,PuoU`~0̹E۞~h?.ԒK+EXo-v/#߈U5A 5j#;sF6* |hƵBy-ʔi̒UZ_RkްS+A2*'H00QTZ*PqV|| A%bC% @#ꢍ=j^'$@ 6*htXL-6=^(fe-oؽ<.f95h D5φX`2#=uPs,qΨOV;X}6^du_Lt+t-1vYtԆ0<x$z50NenrG{ !rصͳ oʷYكe^W}$ P.,$̉3'IU4 $o7 -w@zD[H"~OU1Hhui|, T` yVe#0P^xŽ?Գ$};)4eEMwS퍎^CLVH!Aj^}o H%`#v{q6K <(D^@`<ǡ}2yRM9>sB2$CHH 4޸aeY%@r_TojْkI_Q9!% n9ןl$,TtY:nbMq&]FPzvRx1fDd|1͓ 6Z4$JHf ǂx=y2+GG#2 }4݁at]'?3eJkm7ٽ]Xu.>m0Ji`5Ovy#d*hQ9I+pb{<})))|"vFY3i߈1A4{^m82h|UItzFN a#7hu(K\d$]\e֌hۃd53<ɯaq"xF1 toЏnTf5om%1SHs2f _GGUdb( \2$JX:R,1l$fTguxx 'T}9K;RfIA-V>ӛ-3sJ:0gL(&K`vXVO/E銐f Dl;~Tc׆l'ٮOG(̶U aJ@BM(Mbvϴ}#Cr~|fY|)Z#UE)?vCr X1Uw&E14+43! yG8_R=YYL,#7)6S" _ǨY6H#ү9h1V%UuVKS([/6>^6,UW۷",޲Hp2@;+5<-]b K8; ZNp\",Y+. t7C:USQ?r~x@8,qfTAEYaЪ4 L82Y=(O,N]ɥ$M `Ҥ-YBC!xb"i@6,Tb3fXkĕ}q1SvX> DhQHhPAs&&](5Q mݙiM+EؚTAƕ4Am6k'_ ٶ7lȩ4r3OD|1^t3S i67_o8:~M#xK|hd4tK4ʌ#%n;RM]$ 9T|ȏ J섆ks9&lKӳ'݁F,;ppfRXD-6:(p$d#,-WtK-d2 -,kvR6]޻G2LQvc*q<_7^lvœeaFa"I |`"}j}AgE a,ɞ*@]IcvD_|:L ʂ9+ed XMy$.|@${GaAǭs[|04 r@֎dpeX`򝪍n,}i'#Mjv$@yw&HːBZ71]R#)A'V.:ZKHQYDf& ~ K$Yu"bUQz]E2D$uUQEB"j\5K4#.%1WfX_o^|vZXyx|?*yV@4*5aNtJ2|(n9˖d&IR2kC~~sVFsFObNoڞ39f!F6}}Ǜ1LKjiuWUpNj}1#$Pb*Kuol nadyI. L!Y鱽[OR/ORHv[I۷DZ,K?QW+6Yenkh NO/⒴ ̚|Ckdz]*Eԍ7xF[Xh F,Į!I)GM: iYq ^jXC8g˴C8&D(t7y"HJf$ ZO퀖SCޕtY㙌yٴَ֕WCW[qlG749A$ eBѥtEݚ!R)36Y|%6mT,]492!HNPP*t݆q=2Ofm`2e] 4-`I#HEaba:MV (4eH'٤ KeFbz'ML9dR$AZeA MTJ6˘3irj=.N:ZUTf\>_( ȾI ̙]3 dT497g8#3xr3;Mz hˆmlXĥQIRN.s-KM]yed0[iUMG+fYHB/%l4e];.EEo8AezFv"$djjT%A*I{6< V@LuAC;=EѺ!miDDJH|.}VmJqcP$,m.,0?R+ 5ɲCk3/LԥIP ki({Ռ%eRH7=ߣsYseāK͚U3%+-o2y﷌?1H230'0JZ @[ؖb+q 'x˘yШQH$ B MSTID ۑB7cC1ke9&fC̆j< Y>zV,^e%$d {Fm^/11Hf+ p*MϮ.\eeO Nݖ,Icb±wH%LӪb Ȧɰ>C =$zvv b ܊BwV+'a7HI.x(#uw[F498 ̍gȣr~b.t"9 ABHf0,H|6aC ޶_Tfz^2.,˩h <[ył8bDѢ%9Vvx={rpO.HM$X?s^qVRUٽ]6)I3;C.Byn7e>xVlDe*96 ؂}v⾙'yoM[U%>g ŕu/*h;L$oo只"A _Y QۊjdrhC30UbUA^ci٤IKAPvRO;^=@c $%ԶዏK{J92 r CC@k{`H&9dsL8,#}$dF?1]@m"MNd)Z q7eRZz ]ϜUƂ5J Wo*,`%:סO岡7>Bn"Ćl8C~mƎL]Y#(N#TB}yXhucKh [9˞gv,R0P >@`YÝ"6, UX2.FIZ/Ur&AP|1ܝ~6e1$D+r6\0$FLɶ{<} Sfs`fab7j c[b 2]4g d̶ X@i;U:.̹P%$CX\Bf)ٶkd򹌔] psQ7 ;ZjϠCfg0%UoY_h?Brԭ,LtM3e 錮1BU4GHYh줋p9nbeT IG#7F)I&hCʮMPx#}vfDY2|a")}6,/g:<* ʢDՂG v76=m1Q&b!{(YCS)*Y ij)P"QH& cˉ/E -BXI~eՁC:J? JA jtO5=2G4R^=h54`:KoXΕdt_%ľ1ewcu #0NJw,^8x +al:OORt>e)/$!H%:Cy2}Cd_-:\GyXA;1mϨ?hyeu±*YK k~ ͷQ&W/9HYHW%iR"f=82ͤP !m{8/B=js)Z_[f" [wƓfYΎ`I`H#B|F6 zliݘ%!r+ia;Ǒ!9zLQrل#f\O/ɗ:>nRRYPP,0u f`)J65ZNI g|~جYռibI ɰ`|?je|Is9hI2jH]S|ctc!#𙏡*h75 FP~asFnʓDGDEU(fncȤZ@b.8pNT.Xiˋ%]%њP]I$Ln hsBeW>]$ puX:YP"oT‰4Ell}rz<0di< $SV I4"K[gM)@Q;=qrLJ /Cޫ O62aTקc@ ]dޑw59 t9p  ?{Î&S3!3LI8HHg<c(&yT4hA?:1Ul3%${I/8@H$z Z/.60CS"l€#큢?EƐmgc0Q;pz=LL\y'ɤFAP;23,be'_an퀲kAʪ؊ȿt}$zc&#T|٢j y$v[}eVo5)2.Y~\u3E#:2#z7*C$d}2I?"&)KBeaY^@e!ɺc\mVx'NeO9c*u$YN]2r4{vL۝f4<_KTBE9e/zeI !#fJi𾥧Ip+N0Q!$ڢ$ӟl67Y(4bDyJW{Q "Lr\]#b$m&Vczc4k$)lr9 @nbU)PŅ} ئ(fh,֋M &! 6VyÙD tI z|1ΚM2ΟeJc̮XeY&8]e$2 8[ֶ5*+1wO#"if3n}AQ1! ,s I 3wZ_0tʰF+K5P(>[e';HV,"g!_>`<\\!*Ƴ8ee%]aey=62IP;ٔ ԊOm=p+ͨ^7sUw|ϛG"YTye֩H;MyE( Tġ!:Uaqk$>dWM;۳4E+AV-{V$0:6.u5KWE>_X2DDH}1Hhwa7$3(<$FHcEK"} cSZήTWzq2$"geCQ_);frҐd/s #q#x:jR#ã oYwҪB1$t={!;bbqMP-d$pBI9ԳM;H4c{]\uSĊ7e<) MOrim5@eu,¬rF[J#9[fϝCvQ3MQK~oUEY)Hww <5PYcx)$}X|R;>+\+#$,>`(Q3WFQʬѻʊ I,e;5Yefv`oD|o~ޣ.Tܹ3(</9?fYc`ҙDZEf,oA]n6}+ʲ!Ȍ拽1n7*4&B 1̆}BLR}BLQ$;5A>z%7($udheA%y5pj'zN`şԂv ag"Z3;$W0jo;]3}f3aKYpҊn^1=?昴TTK]eFͽ#m }1fr0e[0$tFW`qlc*af$dV>g6 4:^I>8Ӽb#JbVOշ>)Yg{+UBY'MoU}nlPy%eSUsodQV@S$]/s&P'{o,з)U7*VEzv#cY!k@Vm; }5|8DԂny7Z~#Fe`T\ 7}P(.rR1#G*"껝U##4U_1HrX~nG⹡;Iˡgc$l:y4i x|HÕ4_bOceͲv[8׶(\:Q#Sʾj_K vLd?* N{ VmET;5~0*J].و? lHsP,_jpsEc"s#֭j.=t15/w ꄼp )UsK+HJV]HI,E5 PqⰡe* V/lSye&Mg*\ `dqWLNHEE!JRQݓiؖ~c'oa" ,ܟ}j9b[׎1HAf'R&H&|+!Sln0V3. &lTV UXIT+)7s  vZű#v4?|R;~Ɓ}F[/&8m[9tGPPI`32m`Y6SDݟI"y*x_;6e*oX)!@U;q|;>Z܎~i݀eTy٘4f"y #bWhͅYcv8)$oL[|CG#OlIA33&F<_7K =vff$i#Rziř?d2cg.cq$`uځԠ1ΦeFHu|_dGy_D?~O+.cQ3`N@(ˆ;l2HW.4;~`I.٣ 77N݊rR K[T#$h4F*G,!pj$ C|ˡtE Ӫ9fqdzGLߘQ)|Xs;$͜_ v!a#jwX)4Q\T en_ *2,$7V9k~[a_; لmy.qx<5щ{o eʄX,1uHѼ)P\h/p6I#G]c1~2$Nz>_Ce=ecSZ7O6O3dj:4Ǎ+59>ӖYDK-;(?t#ש `ڎI߁TYR)ĞV߀kfE ,D)c}.ptl~i'4w|O2s>VHA[uVۚf2Gʎ&m"H Շ( %g%)C%DOb8ɚL I$5]~&fIaBOҹxzǛTЩQ FO}C\r@/9㕥YB b35E=1جNEbDz;z1{-˗.K6[V8qJ1-ȥ0q$q4ZX2v~8ni/A ;לRHwE]XW-eNc5ezoS(&zU8gCAr2}yYy 6D `ղse%ZY0b𢡊>?'+|4%HNw]GE oڧ#4O/eF_ǎ1/WV3ZY4?3ȊL :-sBGQcƨdz̓C6b2s.4 ڶc[#[4=Qe2+UM$$,H;Պ3Iˬ 44iJjp<*?P$sεLpf\M;I<3a[] qQ@%&\S)X0%)$(v:jeqr4#g[Y~9pkAԦBFG 6.Γ(K-%JdhKv{ FǸinHZDZcQ*z\rn!dXG Z,u2&4hg02ѩVɡ&[c9dufml7IxTlnfW>̮S+,Bt=! UDelQs36b k0t XQ:hP^7U!,^X[WZPaT km[-Ye!xb +:|HƸm=3Desd.v,m]~VYLm|S$> ;}Aۃ]dĉ L!*Tj0$~E>UEFܗ*9 QՇ- 6ZgLW+UYn` uP}>1$h3 (mp&eebc 4|n0'έ+NV6^h({XJR-ZQ][p+`W~'R2 G!YWN7ܒwŽ[$g\'&OV ;U]?6IV]$A$ѫ=z|EAVq?l6Ɓ#2' S?Y|SOH>S g6 b=p)lĂG2nVIY<^`+hĖ>n+ӿqE":fk35o1f]w_@w0 <"HxjI76)ZHrd)1 &cd(?oqg2y–A YTp@cڷ*%r-My #GTOnkB|G,Tel,Ēpv;9.0sLӻ'HUMoGj q6n\ˢ P7=#'.If $i%L VI"܌}8_!ա%@X~qWH+JY [p$f m_=rh*J"ڛ?RqJMdrzgsRU7!ʲeeOif6@$mgQ[҆m*\V7cz%xj+48BE~ 5C܉6y䈞i2Rؑ޸߾5; l)+2鍋^ N,]-|1ʱMC5JY[tsPOY,ޤ#?Aċ4A{lb:|UZ_? +kچyrl4-0hd!Pն ^N1ua$Q Hr*Q>Ǿ4FR!ɶfΞɾf,r 䄎W}*^}nZWTXu0\=:@ǛÖ*Ȯܒp X5>Z۷T2yGdgXV% X#l-WUF 4Pj5pV1^xŲ⅑s12Feǁ޹9}sqhXt B5|nyټ;f& 3u*͐? zRw)Qt&2FVbdU8인 >8V9ޝivἠy=M@;GRsx-ajj&ƽ{k0tfaV9K|XFr齎5ޘ'0 >#)jcے]HW.ξH,3Bڙe'Z)os.B?(Ȍ.fؖwi2=2,S,Dhڤ`HR ڽv[2ÜhtR>bucV4^7*OlˈΎG0ԛUw {Wk32F#XUkq~W)";- ot8 |7:jL)% ꈃ!wY,]qPƹe((J{|M3<1FRdQI)/}v™VI\$C_ m\obUh_A@|ӥ,t dxmC,TJZw ,ɘT6j65 };br1-yc >Qo:H-ԝ"d_0eRTQQ'l*Jc&5},NP 8y̗Iso6a"IR%Nw`C>wIVff15I! yۗ^٨d3d;j/96-aX,u?/"2eޞ(D~+*+L7l,RArCzt0ވڞQwi+#NLaW+{p*ONt&n|<,ԱiBҫyÁWrv8'MK@ߴyI!)+HϡF vnIe1,:5Uءv.JS45 -{vbor [hX $4ՊQOֽ0e?*&RUaHbbdUl= c1B$FccAHSDyI5}0\[-yo5NT T`Dsg9+j&09Ӥ. 47B LBg9l5YHt82M6c8RꂪƓz>yl$,PYP,*bhލ9.y$b['z6Akh\i7C1_iA$+j7` mA&O3>z)OW"],m=lvOL7w ݂w ;2ffxVި۱+bD,g._uKOtM$l;108xYy$X"mg𫽓uNI_{ev毶)+FʹZ-DSn)4qϕ #HZV,=7xiȬ)yM]$\14ov|1;(,櫽qax2Dzw3bѯ횵9qŎ8I%YwldO yrUi! >iәLfha^X@i|d./aמqtrB]hT=ahT&C#9GDe ZѠMxF]s8:u)<KgI?>I/PAlHbK ᅄ]kW~W#ѓ/2OC w^ҫi0UIJ6N>NR^?_8*~*z4Tw׌_$Tu?)=Lae)c}D`v+[wMÞ(a"ܱHv QY@4lʑbl[ nf5D2%shأl2фֺ,U >PGaCg^ąV4rIC$Q `/+j*]ǽMC$+ Po15Lz(fʬ>,(uqs@ə$`6qǹ 58?:UqZgw mm4,e3p)M |6`f.d_:aZbC UԳ6a8՛xaɾ~ehoȥҷmmZd&+'x(}"4mw;Cʢ->Xc H%FWR+ORqCi'k0NmDZ8˴j,4pp0ZQUn=wƎ\DLԄΟ]:Ӿ]%NmHᖂ+)ݐڸGGHLYwZhOU1a[m isf$̳JK4uM{W0%_Mu1NmDWC%F^?;ղ zCo-vsPdmт&Y] B>U@) s8tNhx @`h~)șb+GGU_\ X||\bn,9KROkuO|ܥĶ.%h.k9gdA,ȥQQwvƟ?4A)d|c7Oa(2eTP"ǰv~{}Er˖Ơ%ڰ }N?W'3hrǒe@wVNV\ΌK19,N5**UJI)~̎׺̫fO)Z܆Pm-2+޿%U^RyCrdD*5zOb6lS2r6(D {X(T1y< ZA}F,*fǘZtGz[#aUX>C|ЭryB.M9n8YTF,~)bZ}G:1=E2)kS5RK k-b 'k#l.5IjEPٶŢg莩'錌y_9)U*m~Q鏥v,AyY) o{ߊ<72"hfD05SVo)A0P,2R(ւu7|F H:lgn"st~|Άl}FU[scȤcg'넷贲&6,OP+;i0rE-J|&l_s_,hۧ1vQRc؋}q) .b3Dr8aVZNؗ嘆aV]K.b'ƥ Fr+R+'p`79Me p 85Cs4d=Y[.cMAϧ}3q C%}i q톐t~],I$XV33ea .Eah [3e]D-ivƗ+6^EGie[Mekޏ>!dØyE4G^NN<rIQ ݞFݎM 8);%Y9$je pz5Գo 6Rle)!5mtܼĂh<,J#qQf1)4rM4u6~X[|Lu9̌*Gۜ0ʲda,HH,A`*HfELCwAWea#fx-/$W2(Dm3R1qTӊYDꉍw;k349hZI'$0wn}4kU @*gxb/ { }qNLL=G32EPKo^3}3x9]T 5=v#/IEq2 j ,0rAMbLrxoaLw~u$AҦYؑ_l- * 6(g<[2r,iI?{*-b~Vw?3\w!U2e2x$V%a^A:5u:HEg"Ib[ "1ߑYJM=BD̕|A HXcldsдJd0`MՕq}0"MMY<2X3rO^F|r"`* 7kgrAұy5$Xp Q(﷭]G$yN9V4C7~ +472Ig%R":P3jNv}&$e|0H Q] 70WݢI!RA-oVI2IzxWi:Ǧ} %?I{oy,d2eSbn[+>}2)]03V|lo{2C#URhw'k7؎C4>dhY[)i^WC>տVzW,:Dx\adu+)BjjځP:#5KH-0Hĝ m>˘HX#X6  X UV[{ pOAh:KgZ9~"%@agk&AfIS% /qkT9o=!!-j~|JM^}QkLnt2\4sejDIDՁ:jzÖ4 %D$󺍀ݶ|NJ)rڽi}Osۋ< $6e40WFG;釓H'H\e!xd.AZ=v''$K/s k`(mAnW ĨtwgѺTse!%llOe b92VlK3>U|CEbZ#`5l+fB/p I@0 |HcRAWAcY_üh%sč*HNbNޣsvN}Σ? G$ZE>ODs2#0[!Mfs3)1^Z&=K${l7L O;/PNO>Z^(/B}u+Ί=S4y9̎laz`,wp#U` ђ OUc{9Tf3γϯ/M6 =GngK,*]G*#{ćJ4L0fgT-G`7ל l~MQSi$ivO9WŬf.~I3]/ lvs n@ʲ>&ٱϨou}+U"Q8|NNۜ3IhIg1'u H@sv3`LEneuUR7gnߦlyuA#WA#U$ߌV F 4ib)[؂WM;r&fkg#x+|H"(|t-T0 ~}u1N Ҥ'ZE``;/65CTW@˞Gmpr.GeDY*t!o3U~_Yـ= ͜u!a T-m C˫M4?2![%/$iUOR>l"I/$ʻ5T[g_g5:o)Q5z>Z8,ӌ[K7R( "6*h UlhŒ9IA^GEk˹7GcsC bV̫(MiYNܜc5=sSAIKyj@W1d6Gso|9(7& m?=[=.aI$S!,_㏢}%~L\9 jQ@ Υnx&:^ 2*o^cN<Տ8Qф.xX%9xdp@ #-&K҄5, ?`G0Ȓ{9Uѓ&ѐ(4ȪTz fTF hn(o,+5ta _=8a"Z IuvݴG"iFg,rk5I!oBijTc2gK4P Z_qU̳%uWc*K>{56N 9YaigBR!fi@ܱK7V._iEj[/m998  ה(y3R䲓H&d8IE1 ;am081LZZRװ |{qiw*UR2T@Xz^0l@R|GRP>R7~eq$۝(t75[N6OIT&^E*Lj;x ɚlcBk= i4| ]kkꫵ?N5L53S{PU"&}Rʹ̺X-{j?ugx8 +[4w˴(H򁺞,e\Ǎ *Tk;ۜ¾:d_-đʣ*% Xl=7[;%uM],9ު8'@l@fNc- Z7xdҡhlA&|d~Oʢe!ܕPCQ(5l rJ]g7yYYhXuZТIcWlGL~W]‰$I%NecrHehGq)w&$f 9t4s]@2 #Z0 m[yn׈F1nsi&w5 8UȗV;A@mGhS-'OeI: FZf+TIPEoY2yw Iۋ,<(9і4I:#',ce;¶`ߵ(_/ӑ\%M2uQQXǛ7eB,|ԣpAjr_gyc.Up(($Wzo>9닕ei$0bGv"击cQhrɓ,1Z47q Ɍ7#-ޤI”[!J8n[aP9sym-}:XnAMq",ZDXvbQ^fhry1"8$YP\)ePhƐ.϶9b>`S\&ic-ood=Omb202,(]%,#@H(4=+[_ гstDXf" L[j!`<߾u8z9b#D\ZR@tH"6o2u\3fGGU_3w9?=NNs2pE=^fUQ-{tczWQ9|ys/P8Gw&R1yLO32ɘo3 FQ9uǝ-D&R a~ޔ4,S3LU<#B< LIr 4F?4*DcBywS$7EEM‘du\"ijɭv^cQcKxcDAfYDr+0j_</ɹ,Mw5N"76rw~~G8چfYc[@,uGt옕,Ҳ"ipmoO\.#fu4t]ղJV',39>[Vu{Ic _O&'Vis0AFG Ӥ圱jU 5}}q<"oRDr CQMEa%D[zevH2Pvs[՝:1KɩmYloF{^0- -(W8jSҏ_Ʒ>jrL{5$.>39X mz7xTͮcxy)p,Q yIC\ެ; tZV_wYeI %듊H~kdqY qʑ<@M#V"Ubq'fJ$b; 4I? %+!K j)Mq8WC<%Bn{q#$wRʖC{͒6/FWLHHwu]G#eg%P[H!le0C2M6B}LbK}q&Wl3FL`] "Rʻ;y܃_!r3V$W4?HL oT @XRag! . ƔdP]peՒ? 55[5dSEwkq!q| Вc W-wTv'j^^T9> =Zpv%@$.w B&ؼe2ց%S-V'BsMtRBtHgxÞLj`&VOY@!܁F sG53u͖x&BCF2Dg3}:i#+PL7"WMc[7Ihr[ X3fF'kWa{޳$ }1g\[2\/!I<őB_ 1 ǖ߷ŝw-$l[/1峋B!$(Y}Fa~UUYT%ަ8i2 Px3:ߕMWE՗fLNƅj4c)FX#(s藓GivQYf!e\gn+9bN#]D\ l~M2f-&o}ȳLe:J&[8|9X<+S~nw(G$ܘ5%N{ vG! aeZF nHLsrZET}'RE.^Q"lPlFq`vIvW:4}:uc*fї5tNF߱кWIlS4NTf+ d3͖&GCseC`*lZ;QTD`-"=|44mUOrw.ih|P=,<]klX*Ӵ **ヷ$zTDΣYRr;7oQ`beSBn@ɱ=Pf.^hT^/fZ1ԁs^+u#?ћ>Jj%?@ݮ҅ 3R-l*v"oٜy1Īuj3w0$bI c(˭[`澞{bRdam# I-pJF_*5I=~#A 59ZMZ"MV jߝ1GLfgUEo!.Y3J4L+/fUXcfEYvVIUQM?]Y3]M]2e4hۃ |f i2?qE.P{o]wxKT$ǩnf%כo_LtBXr㛯 U z2@%gpOf<n1h"(jqz4ĺLRiU Y -}&te&٨Phs ( EF< Q.*" s,\LV(oU,uEJ ~`lxG4 .LSCG ԇ8$Em1ZYm9כqJEP/Vz}mXMݡ3X1b|z8τ܏oƐ BO*n~"XɤSۭe$ʉ!vf#5?ax&Rη-o)iO )u$Ԡ).qB!Z"}qTrPy 0$HKgmEj%[wYReb҄Z JȻ*YHiG0Y+Jm@}닭ֶZج:vc:YrRab`dmF#e* g~ Jay&)#ZW8k( `lcF/H@N=;8!hYYW,p v:N+P]RBj;U"]E{ XXبv,}{1\FBȰ=>8>V6톡+eLV5bS8U0I Q99$Px<wp7߶* FIrJO냣T[o3]wuhr/7'酔G'&mA~CcYs9dxBawL"[QIlitYrXg+ fOcR4eg }lۢ]HK޶æ YfXHk̉TFt߿9uES5ѢFL-ԚP =^.L n>^VBZrҿv|9d!V9wU.dxUv kh^UV[3(:ɥ{!hTڴ0dN%VamqM\l?fz{=MHZǜc*7]z×A1t I@ި >=v&ideta ;q3$ a$m Ŷ;w]Orq) uݫnXRh\G7w]FQ}(M2TM V*fy9KEA@ޱǚ|v%vJ ~f!u9%F*T><ɚ1JMf<ٔ.Z0IS{cޛ*>+b p =| 7IB^93$~U~274e1="ɏE*ZcB#W(l+#y2d)/\Yjpt"HEy!9+Rll.g:ŠLE@ȯZs9%DC1NX4m*au>2"E1AxњNHKv-X3+X۶^I#jUoy(ߣٜQm`n4ݬLH{xn/գl&HFnWhOId}0sAр `z}QrfR|/ 7#HTd:? S6T ?dUޏUoa(#f2@kWkD`Q,ѷ AV_Ja V6iDVv6v*F eeMzN04jS>B9"V$8߷2J#@5d1h̥59zW83yLʅ9G`w8iQq?37W3F&V_1VIUҖk50֤)9ͨk#bw̌d8,lS|AxufZn~ďMhÌdKftK3˒aZY%M^Ge2c9I Zڍ!l]}KBe0a9ZNm9i}'ͬdjPB`޾G|nٵ'](&^]1tb ˨.l<@nn5thbޏݫ=g,9 M?k?W /^E3&`Q0vE$N%KwW0-3"*HōiY |zeD,h_f,sb #'Ec# BT ]{+J֩1 A&ФߗoN n,[AvXx 5v>XFYE?tyii#kd$`&Xy-"҅&oqr "¿ xUWPB%8Jw$ ')`LeIV#U)[mr{o|riv5A=P6[~1³HDm}8 cF:PԷCJ15gc2G2<&w;sţ&YS{z7C9GV(K!@xPZO N䟧QoCFh2Z\MtjwAض8Q )%X1P;UA]bb)mwHڷ}e*(b7ڏ d^zƅ 't#Ld %q4]$CZNw؁)13BC, =؉l,&(ef-dL&pwS9rс(dpel4~X_ edD  Q؂E1H#PӮ~Wn3n򹆊?R\Pn}0ϧriSHlJ0s^CdPfH/#m`PH/6̼:`V ΃HַGqb I(6w{mr8`HZ"!-H$->{mX.h(i/ڿ(SϠ3J _j$ m-S/2r O;q˝bVU~m>;# i"Bax݌9"#e""֪zcwqƚ` IU@:TkPf859 %T6abO+ H/m+@; JzsQeIYo։ͩ2kX<2;:P pG7b Fj ت#~Fߦ c=dQ+mc1,HSw߷* Ӵe]7)U|+ c4,7CrPJ922#(5? 6Bי42jP } qO1,ZVFh;zQοҢ%#$x3e/ AǺر-*%bq;@[:A>ML;ϋ%"f2yS̆Y$:6)|WRo.Qfā\NH@kf7O,993 ә6H 1t|߯o_ez4j^IUo6]mv_%8.(D‰AQML }]URafױ_폭Тfp[ Y2^)PBZ~7|q[L|/c$/o%N4׹>S11 u2P$"?>Fro">" Gfcž+RK Qیe^G6k-($V%ΛI2!4O<3W5RA ~RlS C6gYj'|hDj6g2Y_+aLއ+ĐAU*U<@_p;<#d~t^sNҴZ`؏`F9_җǘNZ.^_|}˨}W֒dPAm\7>}Ξcwo!J#6(\{5 .c Y쯋&,6>tO9'b.eqf$X3QE+ @܊/9,iF.듎es|Ah +Gl5xꌼLh#9Lg0u0 Uf{qGUf&2J$u L 5=󇑳y RX8g,y,9HB;3HyaOJhLLP_36g/ABGJJ懮KrOlDTJUKؒ{'#$+LJdWRQRxo4!n1&;2Xx'2ƆwL}}=p;f~SXΔIeG'%s `.Mv^mjkL%J0ysnƊH&|˘Hљ5CEq΀eѤio{Nq}㹘"ʆ|1xmVګ'I ˪3cQXOP޹G|+E{de˨\IL^HګifR[5xLr,UɫːnoBwőVJ+E ϶#P_"S>˕~,(*YI {>ݰ>}rҔ"Dw%2;v=1tlH&ҫ &ؚ74 ̏J3?"id=LŃw~}o侌 90$Nc`uѱϯHɫaQUku6@&ӐN ofTda*' !;5cb;jqދG&8..xed ʓsg|@Goē> W`?QW9Ζ3岮dH՝9@,jKa}#.k14LbiE]lmXCV2ιl}̅Hd4DY4}oS741 s3I20lGD xUÆ }RL1fzS3фǠ3<&j0'T,.|Oܞk3i\ [7;jM<YmWn6j^F3MщI^9xNᖲ==lLt['f9 yyOlz8գ6Y86m$5W!#Q xrA{j!AMb9ruV}?ltd7*kث%P)ֈ(XeZ6wK㰜k塖<]ZX;sه h39JhKP1ݜ!R<@<_] h^gsIH$:@A4V8j}p1sq-lEJui#9uH fd4W;L`h!&\lUʦ5u3^ }ch1bcjBVV'hks[8mXBr>zUe+%|_Nd#D`#-[(';s\k^}qࢆ/-(j<Up'6BQS 77O3,rE4jv IuM=3NT"ֈ4R,?"4i":sQǗlk/+xhI 2VLYܳAUᶣE`|l}'-+ZiQz{/ZWƒLJJB ]7&Xi3e6V=RE*`F]X1|ۙuj8=K%Gun+y^QEfaBHKdV魬 ȾHYf5{znqK+<;yd55?9\\ά.εBO; 2[F;p+ H|TbBݷRl48 (? 8wsJ#a}5փB!ο Ҥ'X5זŖ4 $x|{$`+x ^ :tJJ5^ +p г #> /8n0l׷b uDAԷU߃25,`Q##-zGP2̔#XQ}nGMe<5z9cGM 4ryUEiV6DZH;ku+-dO $ŴP5gAg s9erXb``-M+ .fiErCo-̂QjBb,H׌1bZl&TYFZ=1zZ=Yݹ\V.|JwEp|OHY-Qdfu:Cnw8u#%!X8 l[ ђZsZcՔ<?|'-F5p1 7^ ci뭁 _}!g-)Ҷ@E'+q4t #hB·1Ȩ VԭvX=F#`OP6FvBK7vqNY8Emw2lL@_c\v9+\KMT_a0mRIcp ol1Kj^׹lU+SxlW`qdrŠ*F ) ]qȊ VP "9 0Ǐf%"!Z|,૲3"'r;d!Ky[gDxS`N1|ά< "o+s{Sm|قY79o:b9qDQM`l`8ڤ4$eÖs|Eo| Z6j- z*!Lg_>~ .R@D8\Vqj-zբYP"M>1QI$\U$Hy'޸,"˨0$]*/k)Tuyj],W[!^h fejՊ_K a 8d "?Fۃd%heter F&xlq2#+4+׌ ~wfkF Vp+oLd ՗Ym .93H#6A#jͥe)+<޻bd.A#v8$ؙ4x\Y)4=)^NaOhAc>톞$rEys܆p/|rO<~#ԢԎf72ZX K);sŒrV8ϭP@C5Ue|F2mX֫o~u,yV"6mߟ|$"YICWdcזf3t],oA?GϴR4ʠ.}#2]%hM"`F7 I\~^xz@,J6X"mR;^05 +̞/9Y&1+P~ V̹)Zy4 2B^5]ՒH$4j{v!'OyW FM.;v>3yPO)߾>+>:W^teeq"NIO[>b7}1hBRith4_.sY*lFn 81YXs,ρ$ĒkP ic;V޸tzodkUj  V[-8.rdf`9:YZHsVkI G9,W0Xܰ:uPE]Yʼn˾zY Ʊ4qJNA`{fĮO_J9Q&q".2FHMɣ|H߆n/L/V5N&24cpNkGӲz5&G.;O}S0be㙂į"yq0`gdf[4vǂ6fs x>왣.MD-vo|psIV< WRw]{H7uc|h#i ઴. &{~ص2Rɜ/L9+X͊s+g㇣7zm0EKwau-f> C;m =wL!fcZ%C4lbYh`Q\9EXrbIT[$w=TIi/NaIVbopop(,!BV50_fELQm[hrgO1)e T @svs' gd|bb'VI1G+ 1 yvc1%*V€P` ;,D &ѭ]?\i_GtOn)JJ4 ǭ5)+CK@ ujvc=0fbȶ f g).Ng0 ׸w, A! Jw\G8Ŗ'cNx]HiJ$7xa,KSB\Mpxߐax\P-!>^kRD.ΥZN,7ݰf K+894ƌXFݯgcϾ+36L߆kQ(?0?a|Q?grr;hevP1kخc&͠@fUx~&1)bVG`>@|COfJ6)1k!E=س^2LNmJ Jmy&1}_ oSű3ɚH,`uX?}O|S>/*v*V޸Uȗ=A'Y$-"/נŐ# R_(ՃN!T_(&l,nΣ2?CC ʏ`j{li2d]zP.6+Xh)܊a~lǚŒiVh;':1 ͜LDbQAK= iUy,o*Aob-QI&ZI>)/"`|t Mjlx "7+=#FJ+G&ŀ~k <ֲ-jx?6j 1;Nic.& 7!XF8T ^޻bSb"Kj#٧3J iQ^/hx&zxV]9 ߏƒV^fs͛d k}O(@˯Q$.Ͼ4E%qg<,@]? ]v 5]5lTP5a3 J5cn vC!fLnࢋfIvbܤ(b=M6@/Yl{Nʇ&`R 9!f=h4RoUotO;&Ye;7~؋95ZtH.D `ojaavFi2Ne)Ҏ~u*Jz,X " 4yY^+k0%.qtU^ʂ;Y:dQ5A<\{!&[-鐚YrŚ8&=:~t8 d|I$Pcdt>58bf0]a%';6 J}UXiDb/HjCb& P#, Fd-s'ڬuGlHB̦,"+\Rsj("6]` ? ,Î툜yU J!ɡvLî١6k<4p\DvM+cp9a쓊ϗd)Չ>#l`̦B9Ke}Oᒊv|=I;xy&i[d*,Q><,C,MhyTHhd]V`Sm' <Ϥ9Bw d]L'E:RO|C7Ijv,Nn&,TY e.]O-y0GB_;I(>VBAOc_e͘Q.Tz^1)ՔqE4F2Es2Ol#G#$yڼ&lɮ^,f@(:.Fw.UmLo qHnghZ8YR3&UkدaEݲHE}0%CE ]$AM3 3ڎbh.lϕm+S2]7nsuePb Fغ~ Q4sPO邠ǘEgƿ^šQ'm֣] -.F,OK 8i#qxy-,+tꭩ1mv||sa;$9+3efZ"j̀ۃ1xo9(L|b^.]ϡA+Be̙`$ 媇sqe LrFfwʂf2=0Bh^:T0 mT޺0,M-~D/{EP hrtGPIr9kP+$W7Pg9_+J:YSmP&lc$Ges0TKd7?QE@Q[NXԠ-bU1(Z6j;xaM4ɲ.UXڵ &sgt$`)s@?=0fZ{DmH$|l|Z?DjVXbI4hrM R72 lH ?.A[|04G/c2 v-iT,P)AScͶ JH#ãn{qkcIh+2f-yQ.Տz; 1Z'[_8k)(`S]g31.}oz6cIjBDᘝއ_J$$c&ѫ0 V=+uLB;z5C|QQ&Nk^Mj.ǩooNG9nC$ȍ|hWʿNtx^V6d uO*osqdc/IIUlՖvǏ?&ޕ!\Y:C4,9b3! msNe#, (yzAی: wG4ZZg6joZޏsAsec<_;JmՆni4IAlzSĹlF Z]'LȨ*H}BiCdgk63Vn>qC\1ҁ8䣶*vAtIe|<bH`Bw)JN,- 8əK6acuX>(RyZ 1XT"@ ;z\+I>UT`' Fkjf>7}o W I?cӶyOqE2.v<~Z56b|i*^Y0fͪ#D`zcE# mWC{HMVM2+~S=lC$F:BͧHpg'.2>8ڌ4] /lB4}V o޸En$K:d"&(~x%}G4/P#~/G&_-R )6g^aڻٽ'ؙl@˜Uʴ+ҁ^ijOr)x"LVx4NhCUNp? J^'ŋI\9Mo<$X[}_r^lK;HbAj6Hl]_1,6ɹJtKR#w76NCr/|H<}f5} G$2"P$}~#0=3Rkҷ@_'OΨPoI1}Rn5i~9ۜIQ *w$w =*Q( {튌K2(@k$g ;*)#mC}־*-l4y+ CD+늦_:*}+Jms{^W4J"H]d /Gm>`)7[řb8٧RMoXL#NB 5'#i ś`\>FPPңUI?$QB7 WfLmiSCvy$wx`7a޻wKJ2ūy5f\/@mDbp.Uѣ6 1Qk3%ڊ'׏66R?$AwVe<`mSھtHAMsxjꆔ077(ڱ. @.|"?K͙"9]K# lcoe3w*1$q[s4pE#B)q7! LٶZ ƆίVbn^ l.]"Ds.dS]+w``[fb@ u:O%!z ST;%ME4’W! DP,kbJ*@G8 fX%ˏX5IAkXd~Pm_r3Q8!m"PJAorٹ9gE4U?nIlsE)_߾(X,m!EM5_;[qI'ԳÖ ZMw nD~F\ !]{}=M_q}U7\Q*<0PQar&џ>E\ywJbo95GjIPɣHWYZˍMe:j}춁jdco8Lj&ٴ2'#TTڞk%8IJV'?7ΎiUe?YY_f*fJ 5 iNJ1Fr&|j|OŒ* =wPHC1>b2u;w -lyft͖5DPVji  +͸$ c[+>sQՁYʈғ\;z/ƚvyMzVfdf#g Ua|gr(al]G=su夞VEC&^Tl&H :.U lS[o/Wt^"ABg/_ ǕI,G㟭˪n@}*?hfNvԪqGړ?h'.uL,UöV)z_Ş4z *{M#RѪ^L`=&fspKu]ufMhj|fI3uV9% ;kv6'*X3)m&ؑ{mj^,9AeVyN!{*oln8fHb@2S+_>rkѝ- KմE܊r26eW NR6Z?\4l:K"PWsKdw&lgR4EmVQvRYn45hr cj;Ϙto!Ds@ <,$HDCS>Y8-cvg X]KDIr[ʰ;U%hځ pz{<XUp9}IdBQo <9L D1>ݯIRo\xhEv51o2a If_bmYV`LhU˦F W&}L4P`"U^X1fG]"0PXd=c %4etl=`4Qf =b[#HX(>O4iz't X.Mo[;`,܋5ʪt8Jģ2Դ(o` 02FȦSHƁZ׌,bуL* ;WzϿgdv˪3 n#ϥ9M4yA#j;' yirizHՅ*ސjeQpvSNl}Lfti6T翦KTlϭcЩ6 ARw4w'n}p"IVWHb{mGdNl*|f>Mf"+x#-O|$Qfc12W7VFxg"j(jV3V]{@U7kYBS$VGoo9 $pH|F3 t"8 ]^MlIWpRI LWPH4;` ĥ8 .!!Smr}n9^$ـBk*kmovvdR36E l/#C#8%nہ_8)HNJnc!Q2NO)_mrL 79>hQ,w#a{o'^/u!.[m4wю7V.e7`tu=~dz{3v]ޘnl3a-ޯNxg3#aʚ8|ՃNJg3&PCAJ=b;{c/9Xr+4{r}DdYbE Ӵszc zcMu$_퀝:yG{;Nfse-|`]F|{c 9v:F@q-ux։r)/0X/Kw7>xL%eb XM-,L ~cU>g3NReܮ܍qUg.G<Is1caĎُ oI&߁'c9WV#GF4 7"hs" =+:ЌƈrO+[VCqɺSʈZ0t,w$æ2I h~+BV~nװ) OYfs)ĦggſeއKrPJ˔L\hk L8,vXbѱD{ aq Pl?$&yP2{Yb.^7TټGG Є+)Sɓ`6U:j$Qȅ㻢MW{gr}GQƦDIJ"Rnp/Os3ϡN⁁(x H۷#|NL,r5~vߜk`+/Y [2i,*$9"xR?@O;`@V3%\_j:G-!lٍ_;s7LqOY2H6V7m7H1`h3I:Feg3`kӵI-]34O/',!tJ^69˓[>QtJX 7d]1$o>ήz;tSx9ü- `JS]=~eSF*"dƒJTX{b~g3)3f(Iؒ(/f_+Oq>A?Eg2KcoL0_C2K5b: ۓX{/93YbGp d* )s~pJ bN[^ zpZg<|dur{@, I"J O=8qкt/NOJ7 Os呌ZyrVR ;ݶ7a|Og%FH"?l3$ѲD|\TNYu&{Qv|}9v)1Yqbwgk|O7S]@(BLM'Oe ۂy\Teυ9JQ1 ,֣Q]ȢG L]1…3I:2j/ՓqG:u_91 -~Yrx ,yY#@ n,a\F S&LIFuR6|D"<{}1Ծ%2\~mDxPW;zH"l5$1 ~@ oRf$z]v:!drGP_:1&iN2̬]D),eX.Vц߷n>8d3fRyڕm $$ LTkmp`V|̒]dřR}$Я|9t!yV oUT>(:tY0LJ`xq6_?0=~"q` +.{‰)$Ɨ}̙m![wQ{{[X[Q24L)E(w7.J[1 ᅖI_1K~[3Ix M7W@w_c߫ &grG)f#rk{ߌg3ieL8"Mq20d"ECkfa)H~Qgr'T3}٥$`2\!+j&UKї;G#-/ޑ$1ջwY9󙆕 F.BJ`H ;$ZDzO6s͙_f$XgtH-{p>qu.92W")杳: ha&{4':Ǔ"NVj-3er$I&SjNǚٹU%ݳIsh bc5AǍK!' Ϗѝp6g3IL*"PjdUVxLS[d!#V3F8;zwǟ#2鹸-,3$fRĚ )/nN؛&?H1ڞ'EǣW.aW 6n Ee3%s ZZnWL``rI.H3H%,`dozN*lb"dBz(L4DsH&ܙ$Lf.gHcU*-7ps,lȝos]fc2wbumޘVc! icA71MtUe)fn8673f`HQ^VrOGE 2kjsdW ߱ncQNJ4j BMj. -\qwؑ9O<#7I{o>iv{m|QeAGBiԤV>^E:UV8mn)Vm S =[) cpbO%rcVPمo/v Jeo-H( _.eV,? 볭F<=MXo8VU,qo@( NĀ=|TiG@pmީFXwpKUԘf n>8vؠ,G[2|WIsÝ5YM ty[Y~c]4J7^]B# Rwxu\XT 9y)hm SGu:.z{bUUeZk84N_N%mZXl{#<:J"2?F}[jO05H N_@ib\ñC&C~uY8 9;ca!U9m}y4EΡS2ϘgE-lY)Q;Z基lVdKĒk}ʼn/{큤G/`݈j0E| FhɖZ ,A V.ZDk!4}'O{#1@C,)KEN۷7FؚSJ.1[d)1#t}SN7lm+ڀ=GR4l~Cl2BJɬ3B'ZAE{Bg> RI ue/]*  A oa#cPT%o7宇PCH+2]V~&E80Xܝ,!4 3-݆Xޫ} f"t$U݊?#YU:]džXQR<3 [Vq#0Ư/޿񄯱f|6;)K!o|i 2FG1Y^u/ F+ @Ih|mFv|y˄hKlt ^p/'޲. :B { ާ-PGz~S!>Tza*G*r3a{aCPQ˅Ue$Z?5=hq3 =lR>X0f?jE ,ք[ElvZڹ)V\t6]bd[&'4@$hj"eF<$DjXq@[hH)ܲ]wWCS3jPP^A~{bhP 0`{ս lf_\~4ݼN8X"-BMG^18 > YlS.#:xBQ|W|>ag Lb=n|5X{ZYȋ-P=3w/-NʫUH /a|!g7`A"(Vq=RYsj%@ĠF@V3K+s)U_">N䢑4OagD fD qxtpm؀5( D`;(9ʝ88І!Zh6?LY8 ZW^m_] E _zǤh$GͰO nǡ0GU#鋄~U 2Sj~1]%y47%:r_>ETQO"j u-7k$lY |qrbYرDk B٣)r) Y32! k(2vNʼn$% ;6mcos I64 Յt\*@Ҡ u}gR re2iK "?# %>V6j;0|Уe?-s?RK'PϹ*fE=~NK.^<= }pTCh4*w87.!3DXvm|^(5[+"Tw֮JȬ @E;bv Pc #.:Cmb%69 9b٣I!zyen~?nqP TYJ"!h $R5_/IvU iUi ZLYTkZY/ok'Ijѡb ąjSG>ZIg_Z};n8oJ5Nl߶a$DZ(- ێ,8LFH̜S&M6F`>od`<1Y@s[dh/6M)$}!X\@>f}퓕WRC62#iQ&HjЃ؃hŚTNegi QsU*|rhWTh c< tib,o Ud)czj C$n(.s؎vH 4e {69ʫ*8 v|2ox*#;`^md+W$k>~6lȝF)_ueRt>I[2*ơv{/WV=>*ɓebUUBy<4']iOY6StJ0'iDx"𣩴}FA MJ]TuuRU?._8#˗wLMTNB6À}qxr/ճ>beHjs@X p9ǯ$Kɍ_dJE,hg(bbm~lgeYd EbEW2d|əf$_,XPSD;o33:̲A;eeJm@A6bdqI(II$1Xݐ3Vѫ?N>XJUl X{g:榌5Cj7{cU#N̷n2NfbwƜ5~f/{.T+4YFQ}'1rRNzd=lr߶2g#eDM+ySjOa빼gǖ-R=Lr܈1"Bsg2*C)lqeG=BOq){)tzMңEcCܰb{l{PgLM&gU錪O4{k?N\i砆9c#(W hՒ4c2Ũ36,I;4yH|381J@ek˦$ q˖bm")ECk2:c: wDlxM '%F(GfFMEup3N)lzDUMǻ ޽8glB<, B &cd'IQ7VA)Q%Ĵ+`hErvzӣ1ij**^c6SmY&N1lebc bLxa7"Mfx1̭mqm0+ُ"Au[m[c֖HԴHZ Xn1xcNG<ffƎȦ4>$+?n~7^*KP oQAV+K,ZSa^e3=CO/ `u#XXc6W14g3ֺ#ؑx`29*`tt/]$'1l` 2рuyC dʓO[9Dş]M|4?,Orkb9:CNWssbM,$V9# 'kxݙ9J +n%GdzY9Xt$Q O -`5ZB♜j ~4ef 5|+Fhe61DNsI3uP4{jW_EE.=9e>S{Pl z JU7mj Qc7QCU yY = _3? ~&̯ޢ[$7^@*zSQtNܞ o9 HM@j>3M~8w|)9\R$urj`+R( HK,d:x1ʘܡP@!Q bJf{Ue\_|Q]AHacU@wo=G]lĺZTM >qxe;V ?\ *Yvrnj w)H,na[dAL=Eǩ/#++5gP>qEstFnJʌhjpE= c 3dYSM!"Ϡ/%V d5-j1zeX\Э~IRX SxzV]DA qjҿ >_wBڃ {T.A,M21qq/XQ€YMj8*@Y4X6oJo/j`wﷷ|s\ 6$ /+VvIBͪ7aZTMNsr ?8 lDUkdup7U1EC`LN]Iv>PlPY :`9,`BJP㖢 yho{l+2G8l[3eS4F @,f\O0^TMBQaU['7lZ|Wkz`hgJ÷~\we.;L3#%+#5PЌUٞ|ePXM_n~uϿfuAIfYyKu I ćB;7>秏* h-k-GS> u;Ov$+FWj܂8dsz4pZϠ^)I|WpeOe'й=%[ۿo~؞w3s16koss|awf񥍤KxfRw%DptW]$n6 LLɎU"@ >e|84A7c)֙~KV[`D1ZCljֻnO*`*w@;|̂, *6[|pv3$m!*G{DP+z7flŢ#lv`E;<͢3rs&{)7Z&^iW tW;b" ~PEiSji(G<0 VZD[Rۓ_QҀ qb2I2LVX G=71i^<m.]@[;o|q'isə '"<]Ԛއ|SͰJl)D.[ d`BO;x`K;'b$d ]¸>|q$[2$zUZ% hH,\q4 NY;Xew2@Xhj;1l]Fn~`[;{"뢩aev'"Y?ڀ, G\%yh i`c8+(H}Zw}\#9f(2XR73&1F5ŒF}9+)S(# +5z5ދ?,i/M Vayaᅑ z|@qβLJu)>o2,]m 3z @Ϧ]gZ6,X$'wæ-h;;#I;G*ĄX x{ٳS˹@@Mdu&|&|9'IGקۆ0|1aIA;6j}+i#($ FӽUqF8*PR'>*I@lF}=aS Gt jG*VآyeH)%Vػ;^¦gwFfd4GuBQob NDaxD(E#s}ڰ݆_N"U/Q޿bQMBMQL2t'u:!2G]Km*:GNHM?6Lw?GIi)JIqÃ0wo%؅A% 6{GiK⦛g܏QdI rBy&P1D Sꬺ4,cn,޸uC%GL̫$v\!6;7>T+$p:LbF2>7cދMZ 3 l W\^cOuRf;j]-$Xl™FʺٗpyE}فx(u)yiˌgLeRH.QP3CjǾ3}M>瓆RM"UAC)vX͍wwh9f1+L7|mlcس0와X[Fn;[Ț>&b&SU1x!Q6gbOӣmoIY%3d|b_Rݥ]; A344Mcb92庂αl enq_ d`D #[;YcKHNy*N.pҌߜyOcCb};sJ./&ۀ# /.WTyܼ%rɽ;qt9^Y1_6Q{M`nSu˲,DDN%^aCnأ3n2ɶ\O|[e/8ҩX5jgȽK=#,&5&lmfhZ2˶,Yy,@I6jeYX:*9n< aO̴9DAlnonӜIJeY2H~ 8NNh4ؒ. #kE 7?g>̦X>F-@rE,w9Kw٣"}lq鍳d,"̫#qվF>:[35g鰅Y#{-+F |Wl\Ev;Qw\ymrI A_̶J ߾<ɤ}i . G< -, l7th[IbfҀbgHH_čXRmkl ZQ'k @6P ǣ1,:Gs^cLΰ.yX^Fhg0yqW웶PQ24Ysr%l/1 } ! ~eRR2w vʣFgFݭ{轙2bIcG̣1wb#R+I`rrX+RT:`!Hv<9 DFTǑLWjvĞ2 daZ#bY `Ь;čF|1 }A1I6)_rNC%e HA ĥ6tUuO3DfGƱP-!7'[ҹbad1^4&)k}^*f+QS(7b[߱TyL-up*tu2M{FLuAX?-4!alI0rhr-w* #o6?a)6=X뺅#]H%FRDŽk cr R$$ Hauqti7@{ePV{ X*,l:.N1ZˡOz|Y%Ь2<'R It{2ƀuE2v<LRiV^lK#4rČ" 툶0:ch,1?wcu 3QVM z ?CeO]7o'jb-uƻ.cT\zتwk,q/;3gv#4>0'@ ]78rI\V#69aRB] C#AVPG~1!fRQI'o$d@|@g#+Hm5# Jal0{ZV(y l$ z> `z8VR,=$2}&KLET6[s$-hXbgĞ'EW@o-UDhI^H^P"#P vMG$ңَ,x/C)(=Z*6TOj$Hy^ ʬ>)a\|V[CJ4nr7MڭN/Ȟ%̴Thv@zᆃ)LM>B NNޤm>3 dQU9(r.u5c(,*S߿l=L]`rlf2Dbbz"ϳRXmLK9Mi"a @ =DM,.>Em;`'Z^DFφT6y72348UO)b:vk7COV(2eZ&d[/w ?iKa'#<\ ҷniM0FmLhu#d Caq\bT͕>`Y툧#sh"9dBRB/+ b˸(+sځYxʇ)C];6ef$2}@\N6Euj$>`_9+7Ҡ|K%<9m&VQB֢T_Ik "-_d7.fP0QS[ڈK'P{mgێp#7V~j;{}q?N_Hzb@cł{-Whg1(?MG yu?bryC2Jj lU< `]ܦr zGQEYhCT+=x¸Ɏ[h$6}G-FAVDxa S`p@]aR^hyYX ѬQB?-^]m0Rja3*!jf&i Zauߜ'K bX3~i)QQV $XJWVM 2!<Y5`Ϋαt$OdC5#TŊ r35OԳ .c.6:EczcOz~KJ91RѴdr5w۞7*ikN҃{0vQvSҍ޽1͚hHвT)^`>8kɉ3+jW@kk <)ZRw:@GG$ًt:bU!!?#/G5.w1 P@W1נ]]Ȼج}wf!qXp#u팱3Hex»ub#I~a&!LI3zk N&.RF,Nf7%Sվ~?֗5Ml2ll|d ~%RnQ̺G,:HP\{ QIe`<;v>++U3K!**IdRE1l^ vJQ?q0`>'>BNyDnoG7Yދ 6Qz9//BodHoU_OH٥E7M6l1~ddvfCOhNrIh#Qr'_T \òUϽ!b֠Uo Mrn19I&bcRB1P㡂C!dPӶ,'D.M6e@UPWn-D{0R[Xq0<5"4_G>Co10P/w0pw^ubt12FAWaS6ҜYԤIҰ$)7oŰǧBѕ!}1߼B+,zd >V1 P_*M#fPr4i}T1 Ao-m[Gvv嬰ӰcqO@+V(}@Np90YU|1PrOc|XВg$IoB&{,2I7>b$DKF#pO~\"R5G(`Gkއ>RD ԂNm50鑔F)ӓ!jH_=0;DYJw#c8Y4dtjFVd"[yEj ;y'%/R$V^1Eq]cЉ f^23˰)ɱyYfL RO|30$@bv{{b[/ĈcW,~ 'JH!BK1cWߞ?<S;gΫ3x@jR&־x(H2BC#*z K:4b!&1f Lm@^,ȈE!+vkXs壙n*`YWA@;IJl04ޭՐ+ab3NꙜrͬP@|0.yKHʄQf''ƖZؓqG):QGzn6$ <2(jJ&W8cӔxerF^DEJ+}| \Jg`eªAQ^JM1}zw ߒ}7C$h2Ed^V19R`~,aVP/_VJ\ox=L MPuϸߌ+ #Ill8;biHmr2 _zLF"%e}5?)6!g2zidLQ|QZFbŁt=of'=f]b)R٥k'ᏻs0D8 v;z GYQuX> (:%޽.{cǍԺ0mv~e|>j"fU~L2Kϴ`ͩE@6#q\ 2UXQPwg'72"YSpc=2Vf")[2|A (I[DC7IOL+l䲘X41[`,ױXue$- 3^A,@BQy9&38!(7뷷ȴ %A#pIYlL68OSy5cŏ^C KVVUKSbj܏>кl'$!],jCz~)ߔcg2FEiCmp+hlW6eLJEY0= A j1\MYhPT@|ݯ`ndJ0*&"PU~МÑ "!2x"R 0Mݱd G (H $QAy#5i>@PD1z)L ϘJ5n7=|;\es˕-( }mhY7Y0Ƅ%NFLΕ({7thcakt"J4r(aD{DZ[t|Qəy&$dyœؿ TrDŮ/jqlW_Iˇ$ o0mFb~vr#2P [Wnpt` d mW>_р\ ;V6~RٽKD2$ZH]ʯt X!&5%˯sթTȣ 26Ss:M1U;X v ucn_Rr MXa_)4wWH~poH;Po v 'llf",`T.HϿbl ݔv9RGR+DQ5) I,j>U}%YM]  %T>FUZ wLA5x1&PbmGr0\@aTP|{qs8~#6B1q = +Tad1]AGqovR\R˔uvQZrp#Ć`ը$k| \G Bw?%Ʒ v714dbۖ;p;Ofտkb e{[h?,5B95Z=7"Hi0$#%!R=Tg0̻GV- kރ  #3G}_ -M\aj_Ft*gttY7w#!e]E]*6~ 1 1}N:#'E>d+- dXr&"ɠv`S$bEHk&1 P%~QGjxd+6QZOZbq(Ҋͦ8Ƽ,mLp;f«F,PeZ#AB^6@k6jq-A!UuRH8[~E ca}M:= ,WuZ=#yl@nJcL!uEnF |61/l4bm"m/o\/#KV z;aX@68 h]Z 9 $ң 6 <}0AfͫU7qŌf8,d|0']EjV;$$)o%K JZ+JB5 װy T hQD-@ͬ(x\`HRٲT9@Z18ˢAtoA 76 ж_ia$.C9oLRrkתR@9Ń7%^Orm 46fJmrL:Dk#3ǩYPX_Gdf5*yNH uH$w=⴬_NFlq<=Jgjpbb+dk?'냦+ZVsv/;@D0[9!&Pװoߌ.HX_;PMώpfr7qUIixSL_hW Q8"o_Jm j8IC;|S!,'sD:dT;79`Y|o|Zd 2c#˰̢ Tvb,Ýϩ\GT}%3:+ӌ;\G&3d*vc=oml?N=n.`F%+u68ǒ՛X*47Ej^#gʓr;TJ:tulQ@m%;ฦ‰hIbk6$muV "D[ ڇAIP+(V1W+L4i()Acl>jui2 :j+@AHBK)^rѯ#- Էu ][Anl%F@bh*G84#(X:Oΰz I5.Y8CyӠVm_CMTI3F'{E|u֊nj0VrQ\_2iU%D\\Q&Nu6T{w"1#A߶HF9.~G|*gW1$*;V7,k$">NN:&FR@P ?b3;"يLQLFIdR qU5=~xݳQ3fE@(Ӳ4NQe$?LgZG kvPe/3!*|zXZ_ZF hc RO^kqMyˬްtY%᧔ts]|yX>bqEVE 4cn{u&H+9vY#*~ݾxhsl>GrH M,L"6O#ऄ$k uxn`dVg'>ޠf >~jǿWzs!ҳDh|`eLTes=[/eBa_K޸ԲeuI`$NqwJM$cIG#fl( mXQ\:ULa`I۵|}G4~>.Tp}2&Qg"iCDcFlf:nyzKd[*x`!܊~СK^M{+3FyȄi€xZ&2 P}ɋȸ7KٖxKVH/+0]܃"w ؏|j9Pf#>YN̐n,9·,GM]6_&~%44 K w1t_f\K(>RK=AC [P=8&`6k߾:25leg:yF.I+uӰ߻ w92N Mq?\gDEIbD]ۆ&ɳAԳR}lN8:aػyb"c%I's|/\O&`ȉG(/3zZuQW /6^0 x= l6xo&C4RHEm`3K?kgKy3 W|;*/49,вSO®c_r`bZ+i$<>g2#!74Aeon?-rwN˘2/`d+}gL*ZeSX?\epC $65>ɒF2UbcڈN'l$ݟH1lc|"iH1+O+)X3I<ۀqg3 @n5m~wF9!2PMء\m3rH}68#56XőF%?y>޸gqX)%|$> $M(f $Ջ [ 3.#ئ6.[KK1*7F}UE<>;PMkQਲ#!!¡چ`K`LcJ|}˦X#p+x DvC!YܞA`Mo2|NÃ{Y]raA'rI[)H뙙ɗ4YcAA6ܑ\\Zlg!ttJO?Jh DIy?X />UI :eaʱE?F։5{z<TGc'~vcЈos4s2yՐVCܟ]=0å'[єnAXM4f`Sm%n-! #وEԧAop" ^Ts7޸H)l[/o ,K34 # p#hA= 6d.e%ig*h(mCt,l:y w̯PGV˕򛠫߰w+;|D_06ZwO;_3P,ԇX8˥]Moo4Zm0L{ePm"RQ,ٖ8 `2ՒyfΦP~09H 5{av5Hj |~[YcXȧzm|' e тVVAc 70.Kufǎy{῎ēl’ +v6/X`7o<01!J>ĒoԟZ9sT 8*t gԟ]bJ2$-ȲI x0S1KEkRjsvc_lJaB]ؕ-_ bJKTEnY $8XXf |kh24#Ҫ8]^%xCN đʧ?L5槇昃1W h 5|vƼ11-@9`ax)`⇶qnRuH%GՔ+F~<u 5G,J<-QLd;PAEcBVcrh-ҡzA?qnn>fLV@X$ }W73F jEa3w}NmJ2e3ɯ&7%|h {l?ajI:-?gڬM>$̠ERE̢Ao돎΋er]{Ɵ__lVl8lvس~,9$⽫ bgyb>2]^n Tx>'?K)tf'4ֶNlleGd+f%*c`lԏ.nzL9lSG0@/s؁7xdSV9|b.ټdb1.2՛$nNag$R3@(($:JT9۞I//5_͗]5'BKFP|ߔ0%^/?('-;0>g{SB @vWC"N4y?dc+j>]{cɑZ-Q Uu_n9rlָzQz^d+/t|X%&#gmOTjlRFf;.i>cVI4넲+RV:$w5ţ6̦: ![f`ߦ 9#ߎսOƬ rH'\qu0Ȥ]n>C~9E7#2Om`d0Qt l=Yf5V@RЯ0`F};;`Œ-D*rBu[:P~z')2jܑ;l?Rq^bSvuP(l.9ee>bnf[Y dj $n˷!ʙETH|820*o]q5xn<;^t($(bq^ebPQm?ÂtPƌuO#pF}J:&k Xiz 躒;#|rYw4kq|I$zjb Jᕴ uÃ%bA4,'eXe*;b}!U1>X[Hf=`x` mKLe|dZ#ȱwB$`A l1o'R5zI1ȪOz #=1 2r9Z<:4SB^sXG!C]09|YP 6 HpȆBF@aFح'bIq@8f@%w=pLH$  cHI|Nqցv/$MP]GNZ낚2F aBOG$e@Yս0iUu9+`rkq~s0]7_c) 1 1ޱhɽhk,cXvW ݫ0YHVK:u U*3 :{Q[OGa*bqSȤU5^Fm~SǥzcE Ru7]r(ĊF+ŝ_aƓ%[jf[o7"uHb_5g${p=wd1pɘH[QSNZށ˿:c]Ya $3)CLv P̰G! 0]RVs`?[|C2H%UNT%} e2Oy^lx$imt=95̪mB)2Ԟ=naLI8Y$X_ׁo_l{G.hp੟RghШ}Cs|2H~)߭lw "טQ#b$c=V\$lXkpkc6(9lJyzVNiei, kZ_ }_,eG7(!'Q\UMxm#P6>F>ÒE,igՒ_sz^61w*-R0 5n9ЏJ ʡP|o|dj|b4_IЍr[75Af>ft#VA =a,ygfTz =72$XT**H Y쮴<צYXYr̲#)QTˉgb@=$% JkW6fq kr,|})!9L |ja mĞ c:bdGǿڥ-W:ЪDB9iV,27.0=AR]8b9dXX/ 0 OF33M*:陘kO_lvGfJ,g};M˂8 '#1('wDQs i*zܚ!nD s,DĐwae P6W@eh$"J(|^"#(ΦQB;{`[vc*j;+U,ׄI*=a[v9},mh p~_Q04-a{]wgoTH7 xXR&j,94GEv;kHLHJMއ*KyATdkjDDYDaTxMpvk;w.Ιh,]%Hl82[$$<91EtP>`a>o7$&)%A,E#sI7 D ȄGm^d$AFϚ|Uu)W%1":!bA42Gsa@ag* l2DѪ =b&RE#&Q~$dIG$#/f^eDm V>Ζ´رlZ2׆[`5 %V4,E,QLbˆzW94U@P[6}q,ԳI)yI'FoI=Vp7tPi>f$s'4e,e$[nvLV e42o퀄Xt*>ařrKN`6߶6DyCز7Uj>#}p,HM` "^@\*Z߽z^:̪Oyl>ރoXEkYl4QT{b ISZU[W܎,g% DMrG~RQ⪉<1|P7g؍FE׌ @1. mݫ?νl R6ʢ8m\t8ቲ/H۾͖L&{;ML[eVRM( l;sG`y(cveР6;W\I^2zB']RI7IoU(\BYͲ4#<Шl $zOYTixyU"Hh[mKhdG?{"u *F5M"ɫߜJ_9ye/2\!-B@=ۿj9|I cb>>;9L'$L@ nocǎv9#}y4K*]萿Uyg'MH&|K1dSBX{'~%}"sRk&GgLCK"o ؠO=8J16X/1NIdlM1Gv%cHFz,byL`v=|,yRC/$l<bM$◱~bvb%E{Ӷ5eyѲC%G",HRAAw@&Lkcyws۟.O.,V@QH|6>rر~/Qs;Q[<]w;6D})Md'PFӫ5o@o>3d}:Z= .,/NP(}^^DǃkBܧ^#˩胷>XyɈWuVVZ gВikب@~ad1y>ݛc+[A@*";V4Mf=r1d062x5 51:J4& gP*P ks%LaŕWǜD> o؏"iE?mjXZ'};6Xd d_'8"hnmM$ng.u,w[2t{EҨ9e|,7:AyS1+lI*,FV>k L3rĭJU?a4Y*-@I~=dyI6 A &ECasx.WhQDj+rtJòqI; rJa}ML$>qU{k ~r٘ Z@/6!46JS}p݉TG;6C߾}26aד 5, "Y >=W ',Otym%kRUv!P|0&𔧅Cy'^1*󲤰aJKDč đeT1H5C MeGqŢ6+ T$1cmU7*锽$cf#;"4WY&=CT- Ul.vӹ Q?{Q>F Ѐܝy8 f4v]+;\iI\&ي$_z)X4\#+=?#FpY|8$`B@#WA7Y sb$[u?}?8R*oʧ4lejUm@C)E=}FiYLoCbJڴ5v yyTBe%AX$ +΋(X3d+jbKVumFarTIch|[k$C$ b#2lx^@a #p f̦]& NsMo ֮ݿLy]Pioet#p MiD Di!Jf9 lH1'w 6Lj]e]l0q`.ؔVJyF2 o13 }14ĂFQ <T냌rG uKƌXI_PfjZ6(oc$ 6hn'% y8+2->vdntMbގ¶SO ?eDXK=ʹ.؞aҾ-?kC'g5Pn+Ųi vPN2c_~ /A*2#YYٟ*QX]QSP_4OfK2;W8dJ,~Is.Uj 4Sf#׷/#fQo|@qx(%lw;`Y'REpՊbc9ZZ%UU (rXhJDvo*L-[ޑ5f$0=qDϔ LxԴ{|ptIwШ c{FA^0 BǾ 7cRvⱥiX?? *%BAȣ`j(*7BJ{Ϧ$ (r1' C×L ]տjMt  2>%F{G' ,$~y 0yaxC7K\p] r)J/pہke|":M|L":b~EʥW>6 y 1xX4X ؾId Dc zPny8卍؁SNp ob0+3u:`ipiTC KT.ʎVKQg=TţS dؕv U2I ꒤h"J* bYR^E-&7@)3,+5(+5ۏ-Q˧4K]רEc%&O.ir25]tx:oZ+i-U~a.w9͉E(uwş|—fT OFcj=+.Щi8͗>ʒ3 lOJeibQG#by= XLkeUٓ@s~%vɴ6(V,Ԓ@dfM=_#/,}lWs1Wc1fiVW U%Xm-.ȫ$ZMoKf˓BAX$F^@rEFKDX啜2J@bMn?-R9aG1grkgPU*ܝcCΤIoʓT¬׽fLk.7$zbR3T2#4v*w7gru|~H&C QVnMW|eٲJ=;+K/ KUby݉ m@a}Uځ"Qx !VUFXFc::AmgyVч31"C%9 yIFpoL?-DG_ jY6Fo,F9>9(jcNe"(0$`x\\r7Q3N;L5sq i Y|@cmD w/QP @r h͋oo=[)Yc1$T`S{Opk yلl++ ^_CQ69i'[$>"A_94:аO%`E 'Y%xgPg @lV0Wh[̓(VeI $Mmq(5UGLrY"LcV'?LN~Ӡg(;뎖1~ H$ gQi4=|8X_9c'H<8-LcЇ0C'V6;.:x Jr?LBQMI3Ʋ&NHjvsK Q1ۖ_jp4]U ¡yt a1Ǯ*+Dl< 0]tڑl -oߎg99I!#WoN(HEG1=g}Y9 Pl"o?Ӵنǥb: $lejCTXp;u]Z~Zv;XP3,d۵mwvY,2|IV@v1tEc VҦUZw R1}0KIҥnwINserGW8J&kEH{7nRH2,8F أg޸u]WBR5ƭ;.)( y SD9v"C1A` q Va޶it:Mڀ03uιʩ%qJhc!=׽VNEechCLq 3Rf`6+'"zDy ,aAsU,cbAp@f eܟ{00* _q'hNe;{zn}l] t̴Nfĺ ˗hUoDRk*}ؓ&gCaeK#12H6C9*dx"5|q,iFHg'띱<,eVc",mC`‡Ć  C;W:gݘk$A9cdDP\~U?J۷l2HM($?!hGYv5URg Bc?߾%GզbQ(y؆ pM .CXtSгn߮QC4BJ}$e%vñc0ɥF7-p$X Oz#f Rx|UX$ 6 6i2!t41s"LKV1 b;>čS×YiA_WOB:w),gR lm7.fu7RIdUg2 Ѱ؝!CJd[6/oʣLw|OƍĔ/[.ɕjdFIןBxl~KԳYBaPx23-hȠnc}iNU1ǗЋ6Mo)E,T7[4@h8 '}лLO*,z#Ӣ ,1/#U4>;H[=sMHB]J]&D. ( n6;mLzqjj,?cѠlZ)7sugH#ՏS.ػK[m}EbYb$0ӣj)[27z^ a]8+yt$`8"DچC؃?KWA pHj]&l׹cؕX(5F{⡤On4T I+#hkuQGz۟%K#W|M( ]֗'{+7o}5Կ,W!+LBkp[ZRΨ^61C_29TT.L [\F9kT;ld-@-٪o9x6c1sP拝C-nf3Ey(EÅ]C@TVHS n[EsUH&ԟ4G٢8[I*FlY:~C^kA{?C-B-`uG?#f8ԪXxmJɧv}/#TI5 Et`0ZmM!tb ѿAT۳Dt)گ׷Ɵ# у% {1ypF4yhFb`qfeeyiQz2 u ~7\sbs{ `C;a[q\] <_nx;z!ur@ןJC`U=9Z$YwcI5AэH+,{ݐ=ǿ*,Jt T~E矦86حmn۵ [z"ʤp^|ڥѠH'+ e2.Ûx;0`V׮%',, Q[]Ws!c@&s0 RP5?KJN6 ^KXf_4r҅Fd4 ߂;|0*QX)tY=c F!V.ZBAuM {PcԒ8">A_s{=,d =b>xѤ$pp)l2`H6}|<$9EIbX]\/"^{{q_SܸS Wf%VS:1]4KgE[(~eOx@I#.z4$q55M,`Y:x۷F2#aÈU▇1GeP-vZُ8hca{?<&Gc}TFSi $sUx',Q1:V&D`˂=N, Muk"YO=Ic,X +:-oPw܉ -]GL:ED0=-31ՠ:G.ɽr;l˫O׷*K'L%aj Q?>d OC.])1™Uޘ]&aRUvVZ>o#qO X8 ܄..TՓ9HtȫUH0WKniv;Qڍbi"(P8)uQH]p}RuN"^)kXlXa~MÛ'dG-\d-$1>.2-)?c-'DJ#Z>T#0!pXߡ D06 R?|xR7Uhȑ,Ozb4ÁbyreΘ&ԠWہ|Y5Qޓ16xS1")Fy9#| rJTbj\Ey\K:M35@!Ǧ,]庌,lI2P}-fTč ȿhƠl^؂}B8㝅qRxS2|5!v bK']C<hsjUYO,I}; 68{:x㔻F]QZ)y@֑۾յ 3jLAо];>d@oMrNeM2%Ы˝bBNౢ(w");q-cXM f1UJhx0.l01Z5 pz48/e!'ǖ, .Ȯcwfkf;$0\.S_&QIID|j?0b2kv4 ގ1L(m5ՅJV4뎔V~X7!sm~,jj7 ޸o#D) d/ &Ԭa@[H /'/HYUXCHWLɠ PMY־tP7N"ʡip܍n M,T +i2vgpYpwN{{:r4rhfkebtw$o|By@)*M)|>{A1|@Sƛ7q{wzY12bmnB˶' yX݁.#oe]9~c9seH_FKc'鍫,D҇T(wҫ2ntnWG?tg3ǛU(#~AGBQR?߭7K3f:\9/r5n?<=2xfZiC ţU2yfOÛ·]e7.k0!P]Z6a( >M6W.$L$=Nv?Y2M3>p _f$[|7{sĪdͻГƐ(gɓiGRbAl(pMl2oJc  oCJxd1%)'F3B-dom3ekԿHih.oHUg'u^dP3! c_Md&oe1$ \|7W<Г*E(e]=qIB\UEYd'u]ZvoqLI]EM axmbٵv @;W1< zeqTU i\ĚB[>vʿ3*yEп gL3D\9S]*ev{eyh^f1XxĈ!^zlL2 3'XC RRI@.7eDxy;TWa|b)o:j:[NmxV\͝b33@fBi<Пl,UJ@J~ r bR6JMrɬ2(u!U؃vok{=g& 5sB 1s&dAm'uvLq6uKo98I d>['QL81A<Gb9[(lU˽aI D1#2kؾ/!)˓KNLJwPM(FM@?ՊIPrtX8xQ@zleb/Љ IJMz826ۃإO90JhZ6{ %%_g f!WW6*v,}}1Ԓ4p4 ,P|+|/͚Ͳ+2X?-r.[&{?3]~H% 8-"Ŋ#hLƓ,3+Jj$qܜK,ynvwy",YfBwځ|4Qey ԼNp2-[xj?iV0@ -!X]4O(]#Hv hQ@-̎rE̺B7'x:҆X!{wf/"pH7eی/vԮҔAf U_gy߶ ZD#[PU- #B@ɤ Dy{`, bBCh'{p\GP:[/d[2 " r4HxRV~k}1:M+#5]Iy(#d7H&̧S:eYrk>P<{p ո@xw[bl${y ->y\6(O$ؾ}a:n~ D/VM(,׭cq3x1DJMǿ(ݤP l(ݺQCYnrw_ͼo$VH-qWMnziZ<%]$| ӦeD.el+,%|Y1\feM|S;?@m?FVO5NL+H=i =U ڟO`ODї 98'` AegN^x.^/3*8$ݎ "f}%鳰9 q/',E0')#Ä4oVϧgP(3JT($1dYsH) Pvc//K6cvbmƯI$w XȡǦ LvuAJU|8@BhC~$I4JXkpN VΓYuM_0P!' 5ppCD&8EH&UU ӽumǶ(>g8-.I| **,zQd|A2~{{Qp?R%\gW V9!l|?c)'{>I4|ӣ Q>|%}1#DZƱsyvi ڃCq,)*)s T0+ T}bwA@ԣ`5OI> ӱAqhcpx"*2x}{%bI2hoϟmڬ{V%R+9س{ b2mIad(z<!\ٻ )1afQF?>v(HTݾ߲wPD̺Cl'~=<ݱ!i^d|Mzvlj=F "ж )ܝ i:ORUiuj%NFޛ4i2"t*[ d3,|O~\4Me#5Pˠ{qðn^uxiՔRc"iCDƉÚ%kO4c8r|DK6$끺df<' R Qmc({؛}D7__*3r}Mo}DQ*j/)*ߘ *;_`wXUt/qa=eYʀСbLjbH>U.4CDB9Y>IJPڅ Yi:#{,KKafuJAV^!%zHS P]XQ *!.A`'#lԐ/Ć] /\g䅙6O+dxH{6T bִlfc֊I7_bf:ha?G=!Ԡtxa^{b KzMV\MaY@Mzf.KW#kb+y:R [Ԅr~BvqUsL6‰t<ޡFP#3Y%ĞI$בPO3 3( 4ވ2MBCVhH# lG닍F;ବvG%Zm4ShW*( 7]jRbhv㎓ر>3s3ήoz[vYK#8b=ĦɴhQ_+gIad! ZuINŰ; |Q;cBeըL/Krv/fwQeRDhq`o߶',|&$SP٪p8 j,ՈM>X .0,Ē+B zZs.& Qo5|q˗Q#[Le<҉4veZA;NjE 3HڙLMn ~*,μyHRMR_w9, &o^VGo0eQXekM/MW{4wdx2sh̾hK~ʌΙ.?_$zپYq RF}v:vUdˮd"A60cT}F=Lj j fjLqr$rf2f liTӰ㏩e2 *4m`kac叓};eYѤiZ ͮځ44jq"I_e?f~f+.[6 Z@K]zvo8C-<8fsEA=~7ut\塍4=q5j%P#ORHJޒ; *Iob^|i>Ho-G]D4m* Vaxt̕tedh`0ځ%d&>I PW:ѰUtH6n;b$7- !+6}UC/.`$gf*ˤi'n8 `MΧH@*JȂ#D4` ^Jto#k!-$bk;oeaF20!Q7vno`3\j'N9۷ X?⤁ O~;(@IYe+86=efWY<6k(D@4J&%R_܀7'@'H}&˝mJ0v6~F ,QQF5Q~Q[)#WpRo7j~;x@!cٶ#plLr3Wn~) ɵ< Gj8 HHCwq+,_Fij7,QxQ+S[`~PG ߟ ٘"è>ЯhEՎ7fidG$H^Bהs_|AJi]6xg*+$  oz)\F###jV:yǦ=, E@vμf5ik{l0m)(civFQP~2jEƦtn8scNX<Lju4.YƧ>)Vw~1yˌ(gH2kK #F@o e%,04@eEʘV9B1}5bJ7[Ԋ5'=|4[W(!=Jk r?7@~I&s0Jd$hls3R+ -%62VA;2n 48_Dﲩcv4PL6J9-eoqH 7IUIT3#i<`A4ck}$(yYBrO>]syC:*4 34׿XY28y`h ChfWDURr$dl(|G_`vիa@#'*'&>ձ(⍥i^Wib2/ 6;*d"ifbIUf \ (~0CՊ$0,u$ ?gu @PxYpc*vK$<ڱΙ&LP&Dmg酒峿G Itx;b&r%m3K:ֵ#K{liI*F2k7V7]L,죷`Jx`]{bC,jO(dGԞ?ǖ kb~bu"[DV3+~x2:lGr{ q[d( cc3$&#>1+g 8"dY QʪY7}7۞29,0Y16b'^1aKK؍l39QXNc'*(ժ& iI#bdS*nKp>i2 Gc ]!ov;ǫU3g:V9Q  JL"YiRd$lz=U ]#(}(u܀n's,X_í`e_&zأQI#GS좷;;(>60Cdw`ɟO(^ĊlQ!:s*BF#o T[yb!dmgq0mˊgGo|Mye1o1HM1O;aLa?Qg}eQ1lR*Bd$j 1]@}겢EPM?N?E:afJ1n`:S*]sgl6K)BUI*ݮ͏8HaL m;-`$)k+?NP>BFA'P: sI.CA M\ul_j8F!A e+eĎkVplRK9&MʞCI[^uR9ZE] Jɽ3$ՉI ~_S9o@ qΤ|>NG?< -=H m<|vn2 ie\~e./gH+Vlҿ!].ǮØM!kbyL)t}?=|C@h*H @VV(ێqY3GfeiP+Pecm0Epћ4(%keӿFc'jůKǯHy&Tj&(`ÓvKDE0 ̓[24 E.K&Wq/5ٳG'ZX*EQ8rJe&6,L #`PA-Q' ' $ڰ˭г3XV9Za␬x$q'J]|Q5Z9b5ogH_mV%xE 0 % Di$<̑83+ Tqux=c G+EM@w#l&D}|C,CMx`֖bYX4 {ԣм9syZYcj߃<*U}~:esGIaj+2,W.($;?,܋G٣_0uL)YoL˴mVF|K]%Ii(b>_` }[LaZjȍNq[$k\6 k]}k>xZ˃6* ɈU?| 32 !Ta^hNdѶfprY_' ͕LM K% gMYG4 #e<5{TNQ LvI*q`%45EO] 4}iYFJ֫݁?KaU Z>#Z q;~'aK gbf$bO|{7fڞFicV@tɫm,n3準Z8GAE}ޞ'WTP6IU(_#JI dBR,oqڨo,UQ;odlz("o3u #sSDq4IĪt8$Iܨ>c g:fC^YV;f2$1s(rbE8Z!HeVhﳹ%|$T3I3y(R\nj?_>rzL2/8%l9 BW(F=Ngc.t?A˶vd|0; ?'PG_q큎\AGbٌXxkE'Lb9$JH<AP߮=41gy$INl>F :"A FS0fZ@ɥWI~*ke }>IZ#JDlNaq6`rHd]Zh+ u[>]^Ү<;m1(Ъ?ϦAcPh Nr,nGlSNMAX"6#:ٶh:썫f9]BMKC!Ĩ65c,Tn1ܼ QРQ،ȯ}I۵H}Ȍ|{~a2vXUj䴛 7/Q@)+~қhmrŘBi*HUs?\2ʰM 榞(62 iPP߭ץz6*Kai$0ÌT9Bk6xrI &M*S?!&7!|%v c| t&6m<@&zN޸I@?#^r~hE#H'8YmF劲EtğT jTw# 5>VW.<.Px;|@=tFR¬]i,PO.ֲӾ xV0ACgŨ(oD7 /a+"fK5ZI& #¿33| O*;P`&:ev z1'a$ :آ6X_GzI^h˝d(`{w6E {Tġkd[o߿ ' RBܥc}i]Yf;.Gb#5̄=$ڪkE!PĒCI*EYd%oϿ8!'aι(ѯ:?g:'@ޡgoN?AVx7xjkƳJ@k\8П0Ɯ[VsIF̿Uk4D4CsvMlc3}TzVKۍa;*&/ ޯar bڐrkrX֢I~=k 4L L(F څ+덗(YbF:e-+)@X߀ a!e)$ 5"i9H>+դIFpNARys?Y)'V?,Btyr.THIx@돇8s 8UMemǀ= 1Ο63T{w wck&,8cw4]3coaנ\s^aPc~ѝ deV1&ԵDcQ2ģ7_ߜOj#&&.Lf3ұ>X~ݱjȕϱLyf5nI6;>G'ep5c]#Hruf&ǕSPVV"ǩ s+42+X}z ߞVg YգY%b1 o=#c}>m{gF^Ho@vO7_߶cơ D ŽfeyB&$Vgآ9$pc ,(AF`LʒJI`74}?kA K˫*2#Ǚ9cD/3xj74l4~8vu` ,o0ⷢ}qKU`q90! =ܠփKCRÕ,1ROzq"mXqeWR 況ҒC"@]YFfT V o :ّe єcIqX-T vT~ZA1r'pB@#pYBiT-G S3H٬nndi4ͭ_eޡ@jȦ|וER(?A"Fl[ xxdCx|tSWNAGP7!hoH%eC ù C=K4;`d@߫q^>&&]Vf?MzMP8nf( mGJNcscVJG'vrKfwK/freBz M*͢ lOf{`֊†HiĒVq^Z@}qP}'U<92!bÇLȅFFzH'63jxDPPuگefgVm_"|T&_" r20NI sF }0ߥfXf+LUjb.ƂJyXTHyzd'c[h8_3d٤̌em$ױ5`<8vB[jnՁiʊyϼoH@xsϾ)<.\A+ǞpߣtH&W7<VeFG,nʋ'#klf:PXQH 꽬q?\gG0ohé`n;޷ +g3ޟ & Q"MahO%1ԥg/$6N =8eo]~mSfcc~zlC9Cɠ _$ښ4'񢾳:Fg(ki;04mjV1MHv@zdGⱶWrw|F,9ybX B^|Za fLL!bWtf JxȬ]_"!rP$ :f`"*@P(Ѝ7sxϺc:-`MƎ.<$AR<^un!Dj/$s)%3 JI,{C<ϔF褽;YM^+aZ5 PW{oayF,6$^qsўM&X"{tYYdXWN{BHܐQQA _ᄢ)+Y4`ѱJFXh&j?lTc.| 4dŐH$4Tѱb[4x2z!A.~k\8AX~0ҹorwH'&6#C\w]i&I`a#q{֊6YcxTmdGlԱd_7K3B60I*g:IU@ B#MϭW0(H$,/Mޫp2b4sq5~]@< d9u"V \y͚7PٖQ/g,FYA17zVq.9zdI|+$gBћ,bߏS3!Jt=qpݠBߴf#7q6]2򕣹>+2(-orN?D̞'E9Wѣ12"@4xvZ1OPS++,,>8Tf4HcOKJ]?!)/Q3ՠPW|aOhyl9Q4O8ӝ)+ƓK~hfFnN@1V[_>5tu y$>q𮍘3(Mol}c5ͤl) WH]?c҄`WWedYiVZT- Q7dzc]jAhP{`8T1gdKcwE*Z~': uoq A\:hx݈ƃ@PO/m;WI_P['^ME `َTx` 7'kV$oJlqvٵH}1vZ ,]_܋vC]h lKҁPA'n\nhke ##]Dj/,5y1)Wm _ AKzbX6r$L98cV2IUCdkF_;n?u0ձ~X]Jx8W+;:5;]Am[߾*r _. ] lVC1Y$)?`0R]b[*AZqnYHFͬ wMlbGcYb=8O}78c$ȷ"43h:Fl/l+壁ʍ6NUa˚J(D+b!+iZ*W ,E"QL6*UV%gVGp{o9iv! W~x2V| mOjۜ\m- ӸŜKn=3*T7,V. x&VU,U6;>xjA3 +m'59X#˾De[TEr*SHp>GlkE;&4xAؚCsshw$n+LfFO(7V;o2nH`ُ|ubUE5s邞b8 F1~JݖsI/k☄iGXnW. 2ݴ2Z+Pm~1T,)$eKv~F7Ԡط'VY@Х]xnf(]L}rb`K *΃RXcdxa8b:,*0.`/X7vfOqd  B aH$aPlZoy$Ts79{ S:zow6V 8Uu`.Pd4<&[ηYiXi$~K^`Cs濆&ey/"1TQɒ3iAnpU" `*Jߎk )$d,em^J9Y@ylU `RnB;l(؍}C"4(<:zb3(܋X{^1ih䐬)EnO7_l8ukxv*ӰbaÈ86Pu%[c4 ' Cx=r P.άfФAaEm,5OGRfQ!{ #u+(x 4U>KۮNXmf;n*`'icL &?>y~Ϙ%YV%!Bocwʌ?':eTU}cÂNt{H](į +Wg,lUGuʢ@Qd^7ZDeY`Hv4M鏛u^rhy]CTtת}qx3y#)#'$zPPMWӤ0e:ֶ3U3 <^ی]ӳ+n9$@UA]]loKGl_DLGy3M31!;r>aW;"+mDTX+nczzeB1!^8JV k/=rv}5L?$LMᬄS'nOs9$@ ;P acYeLTnވ,5D#aBs2U%3M"a՟e >;{vdұZƫ&M/t6#@"bF65w$_cMql;O1*AjhI-;i3'%Ƅv$pjanpXscZZ4rRY N {EYc | #Uk>Hw>ZH#GN瑁cVGUTQ[l2tNKe$рocUĥޔ}9Lt:﫞ЀR^gvXlҰ.J#|q'NOC^`5`NߗB\+^ؾhIM;_ѷ#`+b?;TcY};W6^/#\\^b +Ed,XZdıOiGuBOb0=N7"]Tf*h ةZZ-+lA og 2F!2bհo~a𑘺I{?⊉԰(̤Lr]$y #3xuWGo$zZv#薵rI9+j;)!s( Ը6O8|FpoI7{|FKfɟ, 8?lhrYSб5U v'V台O:H||gq}H9r7φ*5}L2:Uٯ5nU% $+|V(ZH#[,QbJgyqcXB3.ʼn:ȭiSep)BlI=ecZH$8GZD:PHcNbCH'选Y=cM3닾|Ec$KSb/6-?9M7 7Ou8?w/Kzayb$d,I;maNǚhh⏝Ow9 &^9f"z$jPh2 ĞsDIe0"4YϹ@ S)"go{tZ'O7/V\g:fP4 ik.ezkodLDbԪu1"lYKUM=h!'@0r%ER(4}dʒ)׵Nׇy*:xOFq@MHz@B\L& j Sev'O< M {༉?{2,9JciG2JH2&C#HMR>_ y|-Ӣ2_h0ވ ^_ZJu$=ַg.$oSP؃c9lFLH׫Nځj#7bMdP#hf̠1voVs"gq(kGD_9rh'HK |߮3_m L$b 7N8i" ]\qRE{}o2ƄK u$̐2c@WY7|2sHjJPyaV=oo|{ݯɕ;ѱ2rEi_Q!0հxIdBML=@?e ǘOG ě+o&=-g'Ko~ZS[> o7~!9<وyrQj0}^ƚZ\|oF+ZcH~I#D ^緦#d* kf3Y9@@ Pu\>QtR(wƫa@ߏc[`kf쌔|jfp?id >1}/:uH'YҚ [vm|:R5<6(fxJ^_?nQK4s`դ!wcDj4'm@-bW76EDym2he("_ Y1y U" wpuCyeT~yWWH!E ||JeF:7Pj6Nw[pV1yFIjArHg%Ҧ$hv#n5Ua~f<6UV݁ {lMKVt5 a@CeLJ免\YGfԚd6M8^ҘIkz̴l5=4Cֱh!hV$l1f]0J!= <yǼ7^m?ӸŜ8]?hR#ḎVs),}>>YZ{XVYͰBu tfkŁcq#mڋl}Fw8NRǚ!ďо^WZ1$!pi\b2+xrʅA"ɯ\tAtyz7FJj8 '+Ē).cǦ;L|U %f-oR%#O]# IC &iݍ7hOp)I%@pEl.J"# ޡ`>]Wd $sĥx$uF~&(.SEZ&#^IDHڀ<mC ]֣Ʈ{ "X9?ϖ`'B%Ha8\h {reFZMV*t_Ƀ#QEox&e'Sho}/Q7\g˗+~Bqi[-lک,R[OJ,Vx,ǂTmu3+U!קVv)D$-'#B^,G~S#̪_0ά$,;ਁ<o|OP^"u 0I_0V< /~#ɖr=HIrʍwvI=L" 3`[J¶thf)#+IdO ah_IU/`VL&q.f}tL2G˒(,-vLJ Jv`שCG 3 5+FGd?ff\RD<@:`Vcfs.%̤l@ $W-V\܍i'kؗk$hAr 'aL gbFEnjI7";L.>z,dP z"Q$ ˇY2:/A큡kO +N6iA* f/8D2Ғd,ğ 6\qW%1޿|Xi:O6nEcgb}k5H,@{`%TL݋_عxZ50N(Ʊ}iVpJ)'SzsC@]VE7Α&ڂ6Rg:L (QF`zlc3SIL,>9׏-f@K1aMg5fK".*jQ#|z^n:UcP?1Ka[$ܑe@X>v 92r J9ݣ%ϰk=47getmaA[gk1B 2TuxGa"$k;\Oa؉iU-"HY"R2Iq1 `Qc[t eA=Vq?-?iATphYі i?8 6bJ̳Y_|C4X;:ssH?#ܛ;IZ1rUuEQ'BbmE"o2d(<kn?l|5<9̪%|ϫU($ǯNN5Gb+ob :ks1IGdz+_d#H yCP{,GjQjuqu" Ϧ6YD}fr+A$w5{c3|f=ccfLU30EE$]}q>&$4fx7X|=JXb3#dZKk"~b8b0!%@[7@ XLp4d[|a13$j0>tSXQ"=,W` +;JYܺB"8 3#S7]GUa[Ö:tv|w2UcQx s2^=HP6HmBŒX 8S'lFU(v!~U6eWm$*<NL]T" Pˊu\+"I# $aSlaEP4"pՕd!M sz" A7Qlh*p\čav$YW-B S;ЯJrAmJ;\oqE;Ҳ,*YIBv)aTF&yAw OEFEb$E1f ;3ySVo 1(5XY^5=J(*QZ;v^V%uDq"-Ϯ3hIEK ;W8.n;VL=,0]ZDda\vU𝣆2Ǝqz;i5 F˖,Ҡ$ޟ0jxfo]1$AmOj/'a` Ȭ܆lG5 7+ dZkItpnǮ56?Eԑg cUtOJ,,EF5Ba:JVe *j߸@$āR7ڸ1{\gd{qN6a4(I,ޤ7_jwqDŠ@[A Z#bv%-;chM+FbGbX쫑{yo(R<ٰlU+:-B]s]Q7,X|6tkrvnql?/4q0sNwݾL>جHI,PBKJ몺Uz/%]+J"I{[ V`o\\k΀vdUtA; d˓\nw%PF~qU'" &]LOo_He ᴈL~z,+e{8/[3hj$آG ظZ",+pq JI+!-MqDp!Ytcb8 JmLh1;TJ|KPX(XDeFZp< 09Q4q];BT{-PfU}#KˏI5.RB@!4IJ0KVqG+!ٮBBj|0)hnx{qX ֆHZ?,.z$e겳p/teT#tm.=wB=?eHo-j"mASɱxW*KOqvp)Сag~XhhIWeQ1Bd -ŒF {G!: Wa^džLH-jG?"2,nlo| #Q?"w8I*CQvNm!8X]6xUrkRIJV1$ґxHRV[;˭{GsF֎{7дq1pfk^< ?t+etj2n1SAɶo uQM<ڥI-{aeߓxM7>N|KfMT/6K^+G ^|n~f)?0cJ+]9`M!*@b8#S3: VpzI2|ϢÛS"Py7x$&%_ Iϳƕx]^ـ{j6c~c @SV!k1N0uFfw@ Z{|4`vX}賬ldD} `z폝uLgdo/OY"W`l1]JtIzOg˒~eURyQo<\I\I61KвEP蠞D5\m\c_C;rZ$F`2y`WeC1#~Gh++T c E")iv]ϖH^@Qn~͔̉3#O Qo プ2yہc/Z; &]]3Y2]u9l}6{+%(Tzr "7wUqu<V yg:Ulk{E/B3,I`v:gCNҶI!+jX^qoG+HYKe؞QRfŴd!?j =￶`[//4E4o~7D˖Tz>׿ Q,H:F&EZYW8\^Cd8ױQvlp7q< Fݏ>711#5n6JS?-oc^EeYP_ S(cP4kaa-% Z{!XH{߶+ŭ4HO , h e|EDg^2!JP> h0 #$mE<%?wTV,<ffX~lxm~8裃#0\woۿ~1g%>X A=#|! /6>]#fdrIR b[9v79Q&a&*mؒKwɢ@ITGW;TPn2gҚ|*HC0pgPYJa۶8nqȲkYTRAeTA G}`YB6Yh 3~d x)XK7'r űff#P@7 RA0Rp=c<z ුیrJlURr9tYj[M`e |;VCj6p?h ǗHd$ ZA4"ȼ@2" 'c1DCB![҈䡒Gvȼ( ̷lv?ImQ{E0Srl 4+,9$ی8cU%8%bkESbyE10DhAG*Ai?튼ʧu`?51V +};{ԡ^hX(T絒6YV _<ª#%p{)&<=^!vv3jgrf.?Џ+v T_IgX.U[;xb~Ib;%'˶u\eXdUOD.X7[ߣ B~o81үvǯ:F?/ў+dl%>>{&\l?+v,cU ryS@vώgؒI3ܓ3R iA( 6Eo/m⺝L&K`Kl"E7`]͇#[{;)J|F>j_<-^jC6Ze`v70}n2G}cy 0[D`Œ=O"]d+;#-W 5'Q<~T /0a$̢n (!mLID٫LrGI"[6;^ hH1y *^)- VђB^ǰ'})l5usfB#hj7|4 rVbw׎}Jb6.wX.lz|JU4@0LdyX{*@5hs|C$`Dɻv=&:k&*cyU% evh!fPy_|\Pky$b}><4&=H,D.Nn۲naڝ};)#K.p1U2ww#F3?4D"KEE|qRgs="dStÌUzbEjeäjQK_ʧL8棣9w,̭1kNO`gݬ^XC^2Q$K3Um͖T:{)닩ԋJT˫,.CvWڏTD5F?5usyKj,mbq:%,-G~7-(&RWx` \"兝+9@Фs@Ҥ,1VX> UQyU<*!NN#/"M+D#aZ1HǐwC~L 7ϔLp] ;(=*٠Aݽ/yabEHժz&JsKb4ރ  kc'Ga kN+aA؃l䝇{8"7۾r)*XWWtRfg:&C\=GW&Y:]Esþu?F-K|33L܏Vf o.nأp}pįGH RY+/j7b;\#uRe6{v?>Kt rKZOɐAL2 ,ܚ ^ _ZωQ1=G1 4Bw6>XϠ5DV^>C'(X*ͤI:7kϜl@(RO'Y~&qLX&<9P$jӱT0)A_#_MrȌ,6=@R&ɭƠO<%0i. TGGeM#˲Z5hw=?xcmJ7*}y>tӄv]Jxnڬw+lg^ۨg#Q8gk|D_| zh˼#JE vHb~\aiDzKl~|06dH 1VT3O [vMu*C FI"۵!)$4iUVG{|1TV]$mdgf"㍁r,|n8|C&t8$B*A4$jzý->ZARHbJ; NjEۊ#&^r {mbPEfaYYrN,"׵v=kÖu0~oGM͜z"6i}q3YIXQYRt ̌ Hk؀kas5Aj9tf,JjNna62cm@ !I F Uۍv&9YB& 髲~>%I'V1eHe5+nAlZ5>HZti4#8EiC 2Y^H5k5@e0eQoz`脔 MXkf53i*@AQ{Τ6]o :6b0gHi^<Ē+LJUs &?˼T M&j6~;bA‚eM s`BE)3D\c*qg]3 9吆,իy}}~8fr∧H!d eyyQ='1(1"4**#kuj–s_34f buRA[oœ(MzY&vb/NG> 9" f qg $E2"˻-+;<$Azm?U:uUM.K> >ocm+Uo|̳)OTըT('9IK4eFO|z4%iYJW+)xKX])U7U{dsuHLg׷ }3A"կb?49ҴeC;y]|$LHF0䐻P.읽0-kf'0 :M+/-T-\i/>3ƫ*g~ܒTe>4I#_zi>bv;qLZ,A@FcœohbfW>9P ac"aȳQ* 1$7kc 3fTF' ϑ $ǨQӿp \sҺfVɧ#RO%FpI}rfYCRZ bsw`#2n~3 &>2܃h.jVAr6P` ~@?$G 6ƅ`ˡMG&m N"آFZ_W> Ȭ*!WQ,B2@{C#:* ePE'4q$!UJ5k"o:ɕk?KTRNb$!A_pQ?J, 9#N~,E 3vlM^N*APS,Qʻl1FL,ZA|I2ȯ\vhܣI.`-%o -QX?LeJjs[s !!*C|?݆N.͉n*(CXՑvEfbYv󎗖|ks4 z.ŴPC~o;ةHMRs8 ~`w#;g/ɔIMjE|gP*3i:M(7-T!.wWL6n6k.ʱm@ױRf PƙkMo8W8KikL-#3fGv>8օBG5@k][aIŠ&MZQƥ܊7k<]G|hueU6AE"os^(Ax`-~\| gP:GUAυR3`H ;cD*6$Fĩ8 >]LR}1R兂En`5k \H5AI$U}F-W>AϾJŖ RHj`ZDeYM:1BYJÓlU1!w?9`ŏ\X$gQjum ذ%4xW˦Gnb;|R4lm pYa$H#83c`|1Yf͓bk *Aca0VTڽPvE"n=xkaeJ&@1_2RXpJJI])@EP}X n╍I7O(Ab1z8+8:-Tn<+0j b 4Px U- lk``X_H`:\VH#yP6qw *uZyWXpy@`l)oP!@ 9p/bCP1@OtZ#4 Cz> |RI5iuQX=HViIA Wi1﹐tw9WĔ5Jaǯ$UER ѿea@iRX`MU_+<6翹Ū   `3߈UEܓ%FXM#>1%A ]b[QQE6;mDm\C| 9bzft!@ŏC{Ye׸;cK#EL( *- 5c϶YLv#`͋WL | F?\0U[FްSLꫪ7`cxNrME 8~8=5¸IHT G=$1#Iͤ'MWüU]#|*Cb P$W B#Wg¬C>bB?QŧpRQ`8q<$rE$bIu%㋠3_WL_n14Cl&2aJat [?¼FMgu-_ 2`EnG TJUa-ևI~Nbֶ8>rge%]`lqe0DLR )&n"RJѠhma~lkaJ|u> hZ{oBU ~nX;bS^˧A4lWUቾ6fPRHm6]cRz5ř{y1RjD',s nmE~1ٶ7tXNveNX??حE9FڱDe2 G@tj:>Cei`m@ګȅ  9!KR`i7BλG. F44/\LԧY=/j7w_dۥ˗bdtajj\r~yi cf>4u=?$]qUO5JK!: 7c?\GHN )J$i2XUTj".l#.$2ԲٕayWLzm©~-ts(QPklb~}f1Q?M__M;bVLcxɰޫ>GQ>{OH̝* p;֦2#$t]]3~ArGy܋Iq>ac es"ѸDQVh'ځ{0r6Rf6TI*a${;oDzwAO3d",vNo /ڙ39DiϷFuf)45G^ϓeLvD<FS KuQ&LHNf̅lgÎ0l߿ ÚTif1)G>Ï;n4_@]_4:M^>>3y=O[&#<րGe aR%8wed& ˲+'a\jz\eYJ$#+u5 ٳq_>r̔kkv#1%Kt).&'YG+5Zs9!Y$uH߿)gFc:Dx$Vs9 f1@m .<{(g*V>'G岲O*" Чm"ȭL6"ͮI䘯Wk᮫ClQdqM9l|qkOO'o_k`o  q=^&{SI9]a` ;zܥ.Mc[_FT0-jžQz^ڷ7˰Ej=vAT7_ ͱX;+{zm7٬a)I;|f~$#*|v iLzAm$FP|?$jE s]Vm8ZF7g2Z,A ";@* oMMÂV#MA'Ȝj܌(ʉ=%y yqd}ŕO. 4hNo-ɪL.uxYcsv4‰seIhV*!r0$jj;EG/bbVN5yXE@QH0>_,nt,W47ڕ޸:Gx9vw V蝎SZ nY2{f)@{ [K2D5XӲ. q 2M^Xbq#ƿƏ\wDXj򕵭,. ㎪c_}؃7،+gz&X+a-BO2Ղ}5^ V52^ 7y(Eő$Wq&,4%:>U4>+``6+h\oQv@"P`&էhN ¦O$rtlG,UYvNƯl.' ~/ 12IHkIAo ^! y78!Fw] ]$%[" 5⹌Cg MXcII |0:$>,YeյYURu;+wwR I V ?'E$k-c@Z>$hKh` `?`Bm^mX-ܳ9bʦ)ގcM/hMtQ;K'4QGoZ?0[ R}QT6Y,[~1YHܖ,2t1UCn{%ABY@E`3B>BEnpl3x0Ņ c:25bT[܋Icc1Q.40|Ƥ l[qsIt]7x]""X7kb@ B夈3q"g`1I#Ҥ__$n()0`BSYQ,`\ŗH7$0WN! c2 k!F~_T0P>Ufeyb i5P5DEiW9͌U$Uz <7b&LpdY,qϔBjvpv: MU !TmYiMLg<4HX}9U0'.OK6Ҫ*e_tGU쀋>f9s,nH۷0/cp_TrNV)WȌW%@QNlYj,|Ye* '{bM :d2TH33|;٨,RcjH٦:8* i:YDd2È ̩3대ad {?\҄8I9sJ}C\cȢf_I\[Ui@e> v#TXS DIi'ڎ09XI*صcʥ/>>3bgG!o]Ɠ{JxV (s0އna|7M,-o^h\J]Ժ4&<;'N׌ղ( cM(v~ӄeteet vϲ]?84%mn#>J||^}r(H^5[Q1ժJ;Y叒}CGL]QHw\cy)j|w/.el<< LZ~O4f֔wKcI`A`zyh($4u4ZV5bͩ䁑ޢxk>fYf̕W(s[i' j+zS" X fWQ ׿Y+Y8!]70M$Nnԩ!H}aV5,+@Rp@dhɦ'ofY>Y5\a2GJ#)2>Y OBu(%пK?L^<0F;|/(^u'Iܗ , fHWFf25;0L 9C ''-!Y]vc" dwtiiS -{Mx.#UӤ3K @[Hݫ])m*Q$P"γt=jRDoq ;H>#Ŭ&wSļT7SlPv-#hPJ_ w(I#jRWAڽK[gj{L2?-y3-t8Eg{`/9ot7? \i`VY;a3 gr a{ "u >x) A}$,@#.)7NS` fx9'TfRv M}}e$z53 ؓۀ A5/G>=R " w+iWPl=p)%j Lҕ?"vRʲ@qx*"q]dv+,WMqe%Q@>f I!T-W {$zה"/0ݸX}GVw߶؋СώE_g@c8G8PCc۶-e$P%{HeB MM[rp MA(ǀP8>%l=T-=7Zw|RǞԂy(.aتܮ.րBXbv93+9UR{ݱ.QXtpZZ4¨>"cswEְ Hv@:C߯+#"TsW"Bͱ;!bm^=he`"c2JU|`l bM3ڙC7L;ّ#(tᎄYd̎G:IPl8.X2܃I5̾PUW?Lh#R1{JYAA6)Cȕ=xCl|ԠW+Q$ @ T\h*#hcY7m ѫ yzfIrЪ0E]ALY;~o65$ o> 2N!Pm"WCFvHդCjgG T"٫;|q8' ʵ;nwO[/r;1(fHvdefT]rYF'hdJE? HxX P>m|pr31rXT#34 ◇jU~GFY-f&1$4VKR,$qM&y[z@֗+֣z\W3P-X©1eOL: n4$,h]P0=S#YDQ)%U&-]sۍFTޘ