summaryrefslogtreecommitdiffstats
path: root/os-plugins
diff options
context:
space:
mode:
authorDirk von Suchodoletz2009-02-27 01:12:18 +0100
committerDirk von Suchodoletz2009-02-27 01:12:18 +0100
commit27b36d23ed82e4d5922c6b36663448cc72b0b685 (patch)
tree690b8276713846f2a1fa36b4c48d6d16b75408a3 /os-plugins
parentCleanups, mini-fix and comments ... (diff)
downloadcore-27b36d23ed82e4d5922c6b36663448cc72b0b685.tar.gz
core-27b36d23ed82e4d5922c6b36663448cc72b0b685.tar.xz
core-27b36d23ed82e4d5922c6b36663448cc72b0b685.zip
Cleaning up after rewriting of vmware/player starting scripts ...
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2652 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins')
-rw-r--r--os-plugins/plugins/vmware/files/runvmware-player-v1561
-rw-r--r--os-plugins/plugins/vmware/files/runvmware-player-v2575
-rw-r--r--os-plugins/plugins/vmware/files/runvmware-player-v25580
3 files changed, 0 insertions, 1716 deletions
diff --git a/os-plugins/plugins/vmware/files/runvmware-player-v1 b/os-plugins/plugins/vmware/files/runvmware-player-v1
deleted file mode 100644
index a76feec7..00000000
--- a/os-plugins/plugins/vmware/files/runvmware-player-v1
+++ /dev/null
@@ -1,561 +0,0 @@
-#!/bin/bash
-# (c) 2003 - 2008 - RZ Universitaet Freiburg
-#
-# This program/file is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-#
-################################################################################
-
-################################################################################
-##
-## Read needed variables from XML file
-##
-################################################################################
-xml=$1
-
-# file name of the image
-imagename=$(grep -i "<image_name param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-# define name for VMware window. no utf8, perhaps we don't need it any
-# more. else change the next two lines
-#iconv -c -f utf-8 -t utf-8 < ${xml} > ${xml}.utf
-short_description=$(grep "short_description param=\"" ${xml} | \
- sed -e "s%&.*;%; %g" | awk -F "\"" '{print $2}')
-# if ${short_description} not defined use ${image_name}
-short_description=${short_description:-"${image_name}"}
-displayname=${short_description}
-
-# Definition of the client system
-vmostype=$(grep -i "<os param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-# Definition of the client system
-network_kind=$(grep -i "<network param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-
-### VARIABLES SECTION ##########################################################
-##
-## declaration of default variables
-##
-################################################################################
-
-## "static" variables only changed within the script
-
-# The PATH...
-export PATH="${PATH}:/var/X11R6/bin:/usr/X11R6/bin"
-
-# Last two values for MAC address
-mac=
-
-# memory information. permem is value to calculate needed memory
-mem=
-totalmem=
-permem=66
-
-# virtual fd/cd/dvd and drive devices, floppy b: for configuration
-#floppya is always false, if we have a floppy device or not isn't
-#important.
-floppya="FALSE"
-floppyb="TRUE"
-floppybname="/etc/vmware/loopimg/fd.img"
-cdr_1="FALSE"
-cdr_2="FALSE"
-# ide is expected default, test for the virtual disk image type should
-# be done while creating the runscripts ...
-ide="TRUE"
-scsi="FALSE"
-hddrv="ide"
-
-# Displayresolution needed for vmware.config
-hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$")
-xres=$(echo "${hostres}" | awk '{print $3}')
-yres=$(echo "${hostres}" | awk '{print $7}')
-
-# VMplayer buildversion
-vmbuild=
-
-# VMware start options
-#-X = fullscreen
-vmopt="-X"
-
-# temporary disk space for logs, etc...
-# use /tmp/vmware/${USER} if /tmp sits on NFS import
-redodir=/tmp/vmware/${USER}
-
-# dir for configs and vmem file
-confdir=${redodir}
-
-# configfile
-conffile="${confdir}/run-vmware.conf"
-
-# users vmware config folder
-vmhome="${HOME}/.vmware"
-
-# config and hardware version ex. 8/6 for VMware6.5
-# will be replaced automatically during run of vmware/player
-confver=8
-hver=4
-
-# set hostname: using original hostname and adding string "-vm"
-# variable isn't used anywhere in this script. but still works (however)
-# TODO: Test it commented out
-hostname="VM-${HOST}"
-
-# Folder of VirtualMachine Images
-vmdir="/var/lib/virt/vmware"
-
-# special Variables, persistence vmware?
-#TODO: do we really need it? Should be everywhere nonpersistent
-np="independent-nonpersistent"
-
-########
-## TODO: everything clean till here
-########
-
-# File if its a link. Stupid crap
-#TODO: perhaps we don't need it
-rightsfile=
-#TODO: don't know what it is for. check later
-noimage=0
-# image checking variable
-filecheck=
-
-
-## Image depending variables. This values will be changed by the script
-
-# vmware image file
-diskfile="${vmdir}/${imagename}"
-
-#TODO: check for a faster way, perhaps we should put this into XML
-# oh - yeah!! Why not do it on the SERVER??? It has enough power and has
-# to do it once and not during every start on a client :)
-#grepping every file could take much (network) resources. And if its
-#an IDE Image, but has somewhere the string ddb.adapterType stuff can
-#become screwed
-# NOOOOOOO - We do not check on every start on every client!!!
-# check if IDE or SCSI
-#hddrv=$(grep -m 1 -ia "ddb.adapterType" ${diskfile} | awk -F "\"" '{print $2}')
-#if [ "${hddrv}" = "ide" ]; then
-# ide="TRUE"
-# scsi="FALSE"
-#elif [ "${hddrv}" = "lsilogic" ]; then
-# ide="FALSE"
-# scsi="TRUE"
-#elif [ "${hddrv}" = "buslogic" ]; then
-# ide="FALSE"
-# scsi="TRUE"
-#fi
-
-
-# command line variables
-# start with this this default commmand line options + extra
-# TODO: defaults laut datei --include /var/lib/virt/vmware/tmpl/winconfig
-# --include <includefile> include code right before program start
-
-# Should we debug? Hell yes, we should always debug!
-debug=0
-
-#TODO: Bad done... we should do this another way later
-version=$(head -n 20 $0 | grep "# Version: " | awk '{print $3}')
-
-#############
-## TODO: End of uncleaned area
-#############
-
-
-
-
-
-
-### FUNCTION SECTION ###########################################################
-##
-## In this script used functions
-##
-################################################################################
-
-### write run-vmware.conf #######################################################
-#TODO: only not yet checked function
-filecheck ()
-{
- filecheck=$(LANG=us ls -lh ${diskfile} 2>&1)
- writelog "Filecheck:\n${filecheck}\n"
- #TODO: don't understand the sence in it
- noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l)
- rightsfile=${diskfile}
-
- # check if link
- # TODO: mistake with 2nd rightsfile if its in another directory?
- if [ -L "${diskfile}" ]; then
- # take link target
- rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F "-> *" '{print $2}')
- rightsfile=${vmdir}/${rightsfile}
- filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1)
- fi
-
- # does file exist
- if [ "${noimage}" -ge "1" ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you've specified doesn't exist."
- writelog "Filecheck says:\c "
- writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory"
- writelog "Hint:\c "
- writelog "\t\t\tCompare spelling of the image with your options.\n"
- exit 1
- fi
-
- # readable?
- if ! [ -r "${diskfile}" >/dev/null 2>&1 \
- -o -r "${diskfile}" >/dev/null 2>&1 ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you've specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n"
- exit 1
- fi
-
- # writable (for persistent-mode)?
- if ! [ -w "${diskfile}" >/dev/null 2>&1 \
- -o -w "${diskfile}" >/dev/null 2>&1 ] \
- && [ "${np}" = "independent-persistent" ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you have specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n"
- exit 1
- fi
-}
-
-
-### write run-vmware.conf #######################################################
-runvmwareconfheader ()
-{
- echo "
- ##############################################################################
- ###### This configuration file was generated by run-vmware.sh, ######
- ###### dont use it for your own configurations - it will be overwritten ######
- ###### ######
-
- ###### identity ##############################################################
- displayName = \"${displayname}\"
- guestOS = \"${vmostype}\"
- config.version = \"${confver}\"
- virtualHW.version = \"${hver}\"
-
- memsize = \"${mem}\"
- numvcpus = \"1\"
-
- ###### ide-disks #############################################################
- ide0:0.mode = \"${np}\"
- ide0:0.present = \"${ide}\"
- ide0:0.fileName = \"${diskfile}\"
-
- ide1:0.present = \"${cdr_1}\"
- ide1:0.autodetect = \"TRUE\"
- ide1:0.fileName = \"auto detect\"
- ide1:0.deviceType = \"cdrom-raw\"
-
- ide1:1.present = \"${cdr_2}\"
- ide1:1.autodetect = \"TRUE\"
- ide1:1.fileName = \"auto detect\"
- ide1:1.deviceType = \"cdrom-raw\"
-
- ###### scsi-disks ############################################################
- scsi0.present = \"${scsi}\"
- scsi0.virtualDev = \"lsilogic\"
- scsi0:0.mode = \"${np}\"
- scsi0:0.present = \"${scsi}\"
- scsi0:0.fileName = \"${diskfile}\"
-
- ###### nics ##################################################################
- ethernet0.present = \"TRUE\"
- ethernet0.addressType = \"static\"
- ethernet0.connectionType = \"${network_kind}\"
- ethernet0.address = \"00:50:56:0D:${mac}\"
-
- ###### sound #################################################################
- sound.present = \"TRUE\"
- sound.virtualDev = \"es1371\"
-
- ###### usb ###################################################################
- usb.present = \"TRUE\"
- usb.generic.autoconnect = \"TRUE\"
-
- ###### floppies ##############################################################
- floppy0.present = \"${floppya}\"
- floppy0.fileName = \"auto detect\"
-
- # we need floppy b: this for our windows client configuration
- floppy1.present = \"${floppyb}\"
- floppy1.fileType = \"file\"
- floppy1.fileName = \"${floppybname}\"
- floppy1.startConnected = \"TRUE\"
-
- ###### ports #################################################################
- parallel0.present = \"FALSE\"
-
- serial0.present = \"FALSE\"
-
- ###### shared folders ########################################################
- sharedFolder0.present = \"TRUE\"
- sharedFolder0.enabled = \"TRUE\"
- sharedFolder0.expiration = \"never\"
- sharedFolder0.guestName = \"Home\"
- sharedFolder0.hostPath = \"${HOME}\"
- sharedFolder0.readAccess = \"TRUE\"
- sharedFolder0.writeAccess = \"TRUE\"
- sharedFolder.maxNum = \"1\"
-
- ###### misc ##################################################################
- tmpDirectory = \"${redodir}\"
- mainMem.useNamedFile = \"TRUE\"
- snapshot.disabled = \"TRUE\"
- tools.syncTime = \"TRUE\"
- redoLogDir = \"${redodir}\"
- hints.hideAll = \"TRUE\"
- logging = \"FALSE\"
- isolation.tools.hgfs.disable = \"FALSE\"
- isolation.tools.dnd.disable = \"TRUE\"
- isolation.tools.copy.enable = \"TRUE\"
- isolation.tools.paste.enabled = \"TRUE\"
- gui.restricted = \"TRUE\"
- pref.hotkey.shift = \"TRUE\"
- pref.hotkey.control = \"TRUE\"
- pref.hotkey.alt = \"TRUE\"
- svga.maxWidth = \"${xres}\"
- svga.maxHeight = \"${yres}\"
- svga.autodetect = \"TRUE\"
- " \
- >${conffile}
-
- # set the appropriate permissions for the vmware config file
- chmod u+rwx ${conffile} >/dev/null 2>&1
-}
-
-
-### creates user configurationfile in ${vmhome} ################################
-preferencesheader ()
-{
- echo "
- ##############################################################################
- ###### This configuration file was generated by run-vmware.sh, ######
- ###### dont use it for your own configurations - it will be overwritten ######
- ###### ######
- ################################## Wichtig! ##################################
- ###### *.vmem wird immer angelegt und frisst soviel Speicher, wie fuer ######
- ###### den Gast vorgesehen. Sollte nicht im tempfs liegen. NFS OK, da ######
- ###### IO nur einmal beim Start erheblich. Wird gesteuert ueber ######
- ###### confdir=/nfs-viel-platz ######
-
- # DEBUG: some versions accept it only upper or lowercase... which one?
- # The following 4 could also be uppercase
- hints.hideAll = \"true\"
- pref.exchangeSelections = \"true\"
- pref.hotkey.shift = \"true\"
- pref.tip.startup = \"false\"
- pref.vmplayer.exit.vmAction = \"poweroff\"
- # DEBUG: some versions accept it only upper or lowercase... which one?
- # The following 2 could also be uppercase
- pref.vmplayer.fullscreen.autohide = \"true\"
- pref.vmplayer.webUpdateOnStartup = \"false\"
- prefvmx.defaultVMPath = \"${vmhome}\"
- prefvmx.mru.config = \"${conffile}:\"
- tmpDirectory = \"${redodir}\"
- webUpdate.checkPeriod = \"manual\"
- pref.eula.size = \"2\"
- pref.eula.0.appName = \"VMware Player\"
- pref.eula.0.buildNumber = \"${vmbuild}\"
- pref.eula.1.appName = \"VMware Workstation\"
- pref.eula.1.buildNumber = \"${vmbuild}\"
- " \
- >${vmhome}/preferences
-}
-
-
-### log function ###############################################################
-# function to write to stdout and logfile
-writelog ()
-{
- # write to stdout
- echo -e "$1"
-
- # log in file
- echo -e "$1" >>${redodir}/run-vmware.${USER}.log
-}
-
-
-
-
-
-
-### MAIN SECTION ###############################################################
-##
-## Main part of the script...
-##
-################################################################################
-
-# Delete the LOCK file. its insecure, but ...
-rm -f ${confdir}/*LOCK >/dev/null 2>&1
-
-# create vmware directories
-mkdir -p ${redodir} >/dev/null 2>&1
-mkdir -p ${confdir} >/dev/null 2>&1
-mkdir -p ${vmhome} >/dev/null 2>&1
-
-# NO X-server, no run-vmware ;)
-[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a desktop!\n" && exit 1
-
-# logo for console
-cat <<EOL
-
- .----.--.--.-----.--.--.--------.--.--.--.---.-.----.-----.
- | _| | | | | | | | | | _ | _| -__|
- |__| |_____|__|__|\___/|__|__|__|________|___._|__| |_____|
- Script for preparing VMware environment...(v${version})
-
-EOL
-
-
-### CHECK MACHINE SETUP ########################################################
-
-## log script information
-writelog "# File created by $0 (v.${version})\n# on $(date)\n"
-writelog "Starting with $(echo ${np} | sed 's/i.*-//g')-mode ...\n"
-
-## HW deteщtion start
-writelog "Starting hardware / device detection...\c "
-
-## configuring MAC address: first four bytes are fixed (00:50:56:0D) the
-## last two bytes are taken from the local network adaptor
-## Get last two MAC values for VMPlayer
-# NF = Number of Fields of found values in awk
-mac=$(/sbin/ifconfig eth0 | grep eth0 | sed -e "s/ //g" \
- | awk -F ":" '{print $(NF-1)":"$NF}')
-
-
-## check if we have enough free memory
-
-# get memory in MB
-totalmem=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024)
-
-# TODO: Hack, ig more than 2,5G RAM use 40% of Ram and write vmem into
-# Ram as well (40% vmware | 40% confdir(vmem...) | 20% host
-if [ "${totalmem}" -ge "2500" ]; then
- permem=40
- confdir=/dev/shm/vmware/$USER
- conffile=${confdir}/run-vmware.conf
- mkdir -p /dev/shm/vmware/$USER
-# if there is no scratch space on disk you have to waste your mem
-elif grep -qe "ramfs /tmp " /proc/mounts ; then
- permem=30
-fi
-
-# calculate memory for vmplayer
-# TODO: unhappy how it is calculated
-mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4)
-
-# check memory range
-memtest=${totalmem}-128
-if [ "${mem}" -lt "128" ] || [ "${mem}" -gt "${totalmem}" ]; then
- writelog "\n\n"
- writelog "\tYour memory is out of range: ${mem} MB."
- writelog "\tMin. 128 MB for host and guest!"
- writelog "tTry --mem option."
- exit 1
-fi
-
-
-## look for cdrom, dvd and add them to the vm config file
-(( cdri=1 ))
-for cdrs in /dev/cdrom*; do
- if [ -L $cdrs ]; then
- declare cdr_${cdri}="TRUE"
- (( cdri=${cdri}+1 ))
- fi
-done
-
-
-## Write all results to logfile
-writelog "finished"
-## log disksetup
-writelog "Directories:"
-writelog "\tConfdir:\t${confdir}"
-writelog "\tConffile:\t${conffile}"
-writelog "\tRedodir:\t${redodir}"
-writelog "\tVMhome:\t\t${vmhome}"
-writelog "\t/tmp info: \
- $(grep "/tmp " /proc/mounts) $(df -h | grep " /tmp$" | awk '{print $2}')"
-# HW setup
-writelog "Hardware:"
-writelog "\tMAC:\t\t00:50:56:0D:${mac}"
-writelog "\tMem:\t\t${mem} MB"
-writelog "\tMax. res.:\t${xres}x${yres}"
-writelog "\tCD-ROM_1:\t${cdr_1}"
-writelog "\tCD-ROM_2:\t${cdr_2}"
-# Image
-writelog "Diskimage:"
-writelog "\tDiskfile:\t${diskfile}"
-writelog "\tDisktype:\t${hddrv}"
-writelog "\tVMostype:\t${vmostype}"
-writelog "\tDisplayname:\t${displayname}"
-
-# check if image exists, etc...
-filecheck
-
-# VMPlayer Version.
-# strings is the fastest and most secure way, vmplayer -v takes too much time
-# and resources
-# TODO: fine a faster solution with different installed vmplayer
-# perhaps via stage1 + /etc/vmware/vmversion
-#vmbuild=$(strings /usr/lib/vmware/bin/vmplayer \
-# | grep -m 1 "build-"|sed 's/.*build-//')
-if [ -z ${vmbuild} ]; then
- vmbuild=$(vmplayer -v | sed 's/.*build-//')
-fi
-
-### write configuration files ##################################################
-# create preferences
-preferencesheader
-
-# create VMware startup file
-runvmwareconfheader
-
-# poolconfiguration config.xml
-cp ${xml} /etc/vmware/fd-loop/config.xml
-
-# sync is needed to ensure that data is really written to virtual disk
-sync
-
-# own nvram. We need it for floppy drive b, default nvram has just drive a
-# TODO: optimize, currently kinda inefficient, too much copys, but we
-# don't know which one is installed...
-for i in /opt/openslx/plugin-repo/vmware/*; do
- cp ${i}/nvram.5.0 ${confdir}/nvram 2>/dev/null
-done
-
-# adjust volume
-writelog "Unmuting sound...\c "
-amixer -q sset Master 28 unmute 2>/dev/null
-amixer -q sset PCM 28 unmute 2>/dev/null
-amixer -q sset Headphone 28 unmute 2>/dev/null
-amixer -q sset Front 0 mute 2>/dev/null
-writelog "finished\n"
-
-### run vmplayer ###############################################################
-# ...with the automatically written config file
-if [ $(which vmplayer 2>/dev/null) ]; then writelog "Starting ..."
- # run VMplayer
- writelog "... vmplayer ${vmopt} ${conffile}\n"
- vmplayer ${vmopt} ${conffile} >/dev/null 2>&1
-else
- writelog "No VMware/VMPlayer found!\n"
- exit 1
-fi
-
-writelog "Bye.\n"
-exit 0
diff --git a/os-plugins/plugins/vmware/files/runvmware-player-v2 b/os-plugins/plugins/vmware/files/runvmware-player-v2
deleted file mode 100644
index 9fdaaf85..00000000
--- a/os-plugins/plugins/vmware/files/runvmware-player-v2
+++ /dev/null
@@ -1,575 +0,0 @@
-#!/bin/bash
-#
-# Description: Script for preparing VMware environment Diskless
-# X Stations and interactive session chooser (v4)
-# Gets a xml file, reads needed information from it and
-# orwards it into B drive of vmplayer
-#
-# Author(s): see project authors file
-# last changes mj0, 17/10/2008
-# Copyright: (c) 2003 - 2008 - RZ Universitaet Freiburg
-#
-# Version: 0.18.1
-#
-################################################################################
-
-################################################################################
-##
-## Read needed variables from XML file
-##
-################################################################################
-xml=$1
-
-# file name of the image
-imagename=$(grep -i "<image_name param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-# define name for VMware window. no utf8, perhaps we don't need it any
-# more. else change the next two lines
-#iconv -c -f utf-8 -t utf-8 < ${xml} > ${xml}.utf
-short_description=$(grep "short_description param=\"" ${xml} | \
- sed -e "s%&.*;%; %g" | awk -F "\"" '{print $2}')
-# if ${short_description} not defined use ${image_name}
-short_description=${short_description:-"${image_name}"}
-displayname=${short_description}
-
-# Definition of the client system
-vmostype=$(grep -i "<os param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-# Definition of the client system
-network_kind=$(grep -i "<network param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-
-### VARIABLES SECTION ##########################################################
-##
-## declaration of default variables
-##
-################################################################################
-
-## "static" variables only changed within the script
-
-# The PATH...
-export PATH="${PATH}:/var/X11R6/bin:/usr/X11R6/bin"
-
-# Last two values for MAC address
-mac=
-
-# memory information. permem is value to calculate needed memory
-mem=
-totalmem=
-permem=66
-
-# virtual fd/cd/dvd and drive devices, floppy b: for configuration
-#floppya is always false, if we have a floppy device or not isn't
-#important.
-floppya="FALSE"
-floppyb="TRUE"
-floppybname="/etc/vmware/loopimg/fd.img"
-cdr_1="FALSE"
-cdr_2="FALSE"
-# ide is expected default, test for the virtual disk image type should
-# be done while creating the runscripts ...
-ide="TRUE"
-scsi="FALSE"
-hddrv="ide"
-
-# Displayresolution needed for vmware.config
-hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$")
-xres=$(echo "${hostres}" | awk '{print $3}')
-yres=$(echo "${hostres}" | awk '{print $7}')
-
-# VMplayer buildversion
-vmbuild=
-
-# VMware start options
-#-X = fullscreen
-vmopt="-X"
-
-# temporary disk space for logs, etc...
-# use /tmp/vmware/${USER} if /tmp sits on NFS import
-redodir=/tmp/vmware/${USER}
-
-# dir for configs and vmem file
-confdir=${redodir}
-
-# configfile
-conffile="${confdir}/run-vmware.conf"
-
-# users vmware config folder
-vmhome="${HOME}/.vmware"
-
-# config and hardware version ex. 8/6 for VMware6.5
-# will be replaced automatically during run of vmware/player
-confver=8
-hver=4
-
-# set hostname: using original hostname and adding string "-vm"
-# variable isn't used anywhere in this script. but still works (however)
-# TODO: Test it commented out
-hostname="VM-${HOST}"
-
-# Folder of VirtualMachine Images
-vmdir="/var/lib/virt/vmware"
-
-# special Variables, persistence vmware?
-#TODO: do we really need it? Should be everywhere nonpersistent
-np="independent-nonpersistent"
-
-########
-## TODO: everything clean till here
-########
-
-# File if its a link. Stupid crap
-#TODO: perhaps we don't need it
-rightsfile=
-#TODO: don't know what it is for. check later
-noimage=0
-# image checking variable
-filecheck=
-
-
-## Image depending variables. This values will be changed by the script
-
-# vmware image file
-diskfile="${vmdir}/${imagename}"
-
-#TODO: check for a faster way, perhaps we should put this into XML
-# oh - yeah!! Why not do it on the SERVER??? It has enough power and has
-# to do it once and not during every start on a client :)
-#grepping every file could take much (network) resources. And if its
-#an IDE Image, but has somewhere the string ddb.adapterType stuff can
-#become screwed
-# NOOOOOOO - We do not check on every start on every client!!!
-# check if IDE or SCSI
-#hddrv=$(grep -m 1 -ia "ddb.adapterType" ${diskfile} | awk -F "\"" '{print $2}')
-#if [ "${hddrv}" = "ide" ]; then
-# ide="TRUE"
-# scsi="FALSE"
-#elif [ "${hddrv}" = "lsilogic" ]; then
-# ide="FALSE"
-# scsi="TRUE"
-#elif [ "${hddrv}" = "buslogic" ]; then
-# ide="FALSE"
-# scsi="TRUE"
-#fi
-
-
-# command line variables
-# start with this this default commmand line options + extra
-# TODO: defaults laut datei --include /var/lib/virt/vmware/tmpl/winconfig
-# --include <includefile> include code right before program start
-
-# Should we debug? Hell yes, we should always debug!
-debug=0
-
-#TODO: Bad done... we should do this another way later
-version=$(head -n 20 $0 | grep "# Version: " | awk '{print $3}')
-
-#############
-## TODO: End of uncleaned area
-#############
-
-
-
-
-
-
-### FUNCTION SECTION ###########################################################
-##
-## In this script used functions
-##
-################################################################################
-
-### write run-vmware.conf #######################################################
-#TODO: only not yet checked function
-filecheck ()
-{
- filecheck=$(LANG=us ls -lh ${diskfile} 2>&1)
- writelog "Filecheck:\n${filecheck}\n"
- #TODO: don't understand the sence in it
- noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l)
- rightsfile=${diskfile}
-
- # check if link
- # TODO: mistake with 2nd rightsfile if its in another directory?
- if [ -L "${diskfile}" ]; then
- # take link target
- rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F "-> *" '{print $2}')
- rightsfile=${vmdir}/${rightsfile}
- filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1)
- fi
-
- # does file exist
- if [ "${noimage}" -ge "1" ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you've specified doesn't exist."
- writelog "Filecheck says:\c "
- writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory"
- writelog "Hint:\c "
- writelog "\t\t\tCompare spelling of the image with your options.\n"
- exit 1
- fi
-
- # readable?
- if ! [ -r "${diskfile}" >/dev/null 2>&1 \
- -o -r "${diskfile}" >/dev/null 2>&1 ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you've specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n"
- exit 1
- fi
-
- # writable (for persistent-mode)?
- if ! [ -w "${diskfile}" >/dev/null 2>&1 \
- -o -w "${diskfile}" >/dev/null 2>&1 ] \
- && [ "${np}" = "independent-persistent" ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you have specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n"
- exit 1
- fi
-}
-
-
-### write run-vmware.conf #######################################################
-runvmwareconfheader ()
-{
- echo "
- ##############################################################################
- ###### This configuration file was generated by run-vmware.sh, ######
- ###### dont use it for your own configurations - it will be overwritten ######
- ###### ######
-
- ###### identity ##############################################################
- displayName = \"${displayname}\"
- guestOS = \"${vmostype}\"
- config.version = \"${confver}\"
- virtualHW.version = \"${hver}\"
-
- memsize = \"${mem}\"
- numvcpus = \"1\"
-
- ###### ide-disks #############################################################
- ide0:0.mode = \"${np}\"
- ide0:0.present = \"${ide}\"
- ide0:0.fileName = \"${diskfile}\"
-
- ide1:0.present = \"${cdr_1}\"
- ide1:0.autodetect = \"TRUE\"
- ide1:0.fileName = \"auto detect\"
- ide1:0.deviceType = \"cdrom-raw\"
-
- ide1:1.present = \"${cdr_2}\"
- ide1:1.autodetect = \"TRUE\"
- ide1:1.fileName = \"auto detect\"
- ide1:1.deviceType = \"cdrom-raw\"
-
- ###### scsi-disks ############################################################
- scsi0.present = \"${scsi}\"
- scsi0.virtualDev = \"lsilogic\"
- scsi0:0.mode = \"${np}\"
- scsi0:0.present = \"${scsi}\"
- scsi0:0.fileName = \"${diskfile}\"
-
- ###### nics ##################################################################
- ethernet0.present = \"TRUE\"
- ethernet0.addressType = \"static\"
- ethernet0.connectionType = \"${network_kind}\"
- ethernet0.address = \"00:50:56:0D:${mac}\"
-
- ###### sound #################################################################
- sound.present = \"TRUE\"
- sound.virtualDev = \"es1371\"
-
- ###### usb ###################################################################
- usb.present = \"TRUE\"
- ehci.present = \"TRUE\"
- usb.generic.autoconnect = \"TRUE\"
-
- ###### floppies ##############################################################
- floppy0.present = \"${floppya}\"
- floppy0.fileName = \"auto detect\"
-
- # we need floppy b: this for our windows client configuration
- floppy1.present = \"${floppyb}\"
- floppy1.fileType = \"file\"
- floppy1.fileName = \"${floppybname}\"
- floppy1.startConnected = \"TRUE\"
-
- ###### ports #################################################################
- parallel0.present = \"FALSE\"
-
- serial0.present = \"FALSE\"
-
- ###### shared folders ########################################################
- sharedFolder0.present = \"TRUE\"
- sharedFolder0.enabled = \"TRUE\"
- sharedFolder0.expiration = \"never\"
- sharedFolder0.guestName = \"Home\"
- sharedFolder0.hostPath = \"${HOME}\"
- sharedFolder0.readAccess = \"TRUE\"
- sharedFolder0.writeAccess = \"TRUE\"
- sharedFolder.maxNum = \"1\"
-
- ###### misc ##################################################################
- tmpDirectory = \"${redodir}\"
- mainMem.useNamedFile = \"TRUE\"
- snapshot.disabled = \"TRUE\"
- tools.syncTime = \"TRUE\"
- redoLogDir = \"${redodir}\"
- hints.hideAll = \"TRUE\"
- logging = \"FALSE\"
- isolation.tools.hgfs.disable = \"FALSE\"
- isolation.tools.dnd.disable = \"TRUE\"
- isolation.tools.copy.enable = \"TRUE\"
- isolation.tools.paste.enabled = \"TRUE\"
- gui.restricted = \"TRUE\"
- pref.hotkey.shift = \"TRUE\"
- pref.hotkey.control = \"TRUE\"
- pref.hotkey.alt = \"TRUE\"
- svga.maxWidth = \"${xres}\"
- svga.maxHeight = \"${yres}\"
- svga.autodetect = \"TRUE\"
- " \
- >${conffile}
-
- # set the appropriate permissions for the vmware config file
- chmod u+rwx ${conffile} >/dev/null 2>&1
-}
-
-
-### creates user configurationfile in ${vmhome} ################################
-preferencesheader ()
-{
- echo "
- ##############################################################################
- ###### This configuration file was generated by run-vmware.sh, ######
- ###### dont use it for your own configurations - it will be overwritten ######
- ###### ######
- ################################## Wichtig! ##################################
- ###### *.vmem wird immer angelegt und frisst soviel Speicher, wie fuer ######
- ###### den Gast vorgesehen. Sollte nicht im tempfs liegen. NFS OK, da ######
- ###### IO nur einmal beim Start erheblich. Wird gesteuert ueber ######
- ###### confdir=/nfs-viel-platz ######
-
- # DEBUG: some versions accept it only upper or lowercase... which one?
- # The following 4 could also be uppercase
- hints.hideAll = \"true\"
- # if vmplayer is still to noisy try the following:
- #msg.noOK = \"true\"
- # Suppress messages from USB Devices
- #hint.vmui.showAllUSBDevs = \"FALSE\"
- pref.exchangeSelections = \"true\"
- pref.hotkey.shift = \"true\"
- pref.tip.startup = \"false\"
- pref.vmplayer.exit.vmAction = \"poweroff\"
- # DEBUG: some versions accept it only upper or lowercase... which one?
- # The following 2 could also be uppercase
- pref.vmplayer.fullscreen.autohide = \"true\"
- pref.vmplayer.webUpdateOnStartup = \"false\"
- prefvmx.defaultVMPath = \"${vmhome}\"
- prefvmx.mru.config = \"${conffile}:\"
- tmpDirectory = \"${redodir}\"
- webUpdate.checkPeriod = \"manual\"
- pref.eula.size = \"2\"
- pref.eula.0.appName = \"VMware Player\"
- pref.eula.0.buildNumber = \"${vmbuild}\"
- pref.eula.1.appName = \"VMware Workstation\"
- pref.eula.1.buildNumber = \"${vmbuild}\"
- pref.enableAllSharedFolders = \"TRUE\"
- sharedFolder0.enabled = \"TRUE\"
- pref.grabOnKeyPress = \"TRUE\"
- pref.autoFitFullScreen = \"fitHostToGuest\"
- pref.autoFitGuestToWindow = \"TRUE\"
- pref.grabOnMouseClick = \"TRUE\"
- " \
- >${vmhome}/preferences
-}
-
-
-### log function ###############################################################
-# function to write to stdout and logfile
-writelog ()
-{
- # write to stdout
- echo -e "$1"
-
- # log in file
- echo -e "$1" >>${redodir}/run-vmware.${USER}.log
-}
-
-
-### MAIN SECTION ###############################################################
-##
-## Main part of the script...
-##
-################################################################################
-
-# Delete the LOCK file. its insecure, but ...
-rm -f ${confdir}/*LOCK >/dev/null 2>&1
-
-# create vmware directories
-mkdir -p ${redodir} >/dev/null 2>&1
-mkdir -p ${confdir} >/dev/null 2>&1
-mkdir -p ${vmhome} >/dev/null 2>&1
-
-# NO X-server, no run-vmware ;)
-[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a desktop!\n" && exit 1
-
-# logo for console
-cat <<EOL
-
- .----.--.--.-----.--.--.--------.--.--.--.---.-.----.-----.
- | _| | | | | | | | | | _ | _| -__|
- |__| |_____|__|__|\___/|__|__|__|________|___._|__| |_____|
- Script for preparing VMware environment...(v${version})
-
-EOL
-
-
-### CHECK MACHINE SETUP ########################################################
-
-## log script information
-writelog "# File created by $0 (v.${version})\n# on $(date)\n"
-writelog "Starting with $(echo ${np} | sed 's/i.*-//g')-mode ...\n"
-
-## HW deteщtion start
-writelog "Starting hardware / device detection...\c "
-
-## configuring MAC address: first four bytes are fixed (00:50:56:0D) the
-## last two bytes are taken from the local network adaptor
-## Get last two MAC values for VMPlayer
-# NF = Number of Fields of found values in awk
-mac=$(/sbin/ifconfig eth0 | grep eth0 | sed -e "s/ //g" \
- | awk -F ":" '{print $(NF-1)":"$NF}')
-
-
-## check if we have enough free memory
-
-# get memory in MB
-totalmem=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024)
-
-# TODO: Hack, ig more than 2,5G RAM use 40% of Ram and write vmem into
-# Ram as well (40% vmware | 40% confdir(vmem...) | 20% host
-if [ "${totalmem}" -ge "2500" ]; then
- permem=40
- confdir=/dev/shm/vmware/$USER
- conffile=${confdir}/run-vmware.conf
- mkdir -p /dev/shm/vmware/$USER
-# if there is no scratch space on disk you have to waste your mem
-elif grep -qe "ramfs /tmp " /proc/mounts ; then
- permem=30
-fi
-
-# calculate memory for vmplayer
-# TODO: unhappy how it is calculated
-mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4)
-
-# check memory range
-memtest=${totalmem}-128
-if [ "${mem}" -lt "128" ] || [ "${mem}" -gt "${totalmem}" ]; then
- writelog "\n\n"
- writelog "\tYour memory is out of range: ${mem} MB."
- writelog "\tMin. 128 MB for host and guest!"
- writelog "tTry --mem option."
- exit 1
-fi
-
-
-## look for cdrom, dvd and add them to the vm config file
-(( cdri=1 ))
-for cdrs in /dev/cdrom*; do
- if [ -L $cdrs ]; then
- declare cdr_${cdri}="TRUE"
- (( cdri=${cdri}+1 ))
- fi
-done
-
-
-## Write all results to logfile
-writelog "finished"
-## log disksetup
-writelog "Directories:"
-writelog "\tConfdir:\t${confdir}"
-writelog "\tConffile:\t${conffile}"
-writelog "\tRedodir:\t${redodir}"
-writelog "\tVMhome:\t\t${vmhome}"
-writelog "\t/tmp info: \
- $(grep "/tmp " /proc/mounts) $(df -h | grep " /tmp$" | awk '{print $2}')"
-# HW setup
-writelog "Hardware:"
-writelog "\tMAC:\t\t00:50:56:0D:${mac}"
-writelog "\tMem:\t\t${mem} MB"
-writelog "\tMax. res.:\t${xres}x${yres}"
-writelog "\tCD-ROM_1:\t${cdr_1}"
-writelog "\tCD-ROM_2:\t${cdr_2}"
-# Image
-writelog "Diskimage:"
-writelog "\tDiskfile:\t${diskfile}"
-writelog "\tDisktype:\t${hddrv}"
-writelog "\tVMostype:\t${vmostype}"
-writelog "\tDisplayname:\t${displayname}"
-
-# check if image exists, etc...
-filecheck
-
-# VMPlayer Version.
-# strings is the fastest and most secure way, vmplayer -v takes too much time
-# and resources
-# TODO: fine a faster solution with different installed vmplayer
-# perhaps via stage1 + /etc/vmware/vmversion
-#vmbuild=$(strings /usr/lib/vmware/bin/vmplayer \
-# | grep -m 1 "build-"|sed 's/.*build-//')
-if [ -z ${vmbuild} ]; then
- vmbuild=$(vmplayer -v | sed 's/.*build-//')
-fi
-
-### write configuration files ##################################################
-# create preferences
-preferencesheader
-
-# create VMware startup file
-runvmwareconfheader
-
-# poolconfiguration config.xml
-cp ${xml} /etc/vmware/fd-loop/config.xml
-
-# sync is needed to ensure that data is really written to virtual disk
-sync
-
-# own nvram. We need it for floppy drive b, default nvram has just drive a
-# TODO: optimize, currently kinda inefficient, too much copys, but we
-# don't know which one is installed...
-for i in /opt/openslx/plugin-repo/vmware/*; do
- cp ${i}/nvram.5.0 ${confdir}/nvram 2>/dev/null
-done
-
-# adjust volume
-writelog "Unmuting sound...\c "
-amixer -q sset Master 28 unmute 2>/dev/null
-amixer -q sset PCM 28 unmute 2>/dev/null
-amixer -q sset Headphone 28 unmute 2>/dev/null
-amixer -q sset Front 0 mute 2>/dev/null
-writelog "finished\n"
-
-### run vmplayer ###############################################################
-# ...with the automatically written config file
-if [ $(which vmplayer 2>/dev/null) ]; then writelog "Starting ..."
- # run VMplayer
- writelog "... vmplayer ${vmopt} ${conffile}\n"
- # start fvwm for player 2+
- # problems with windows opening in background
- which fvwm2 >/dev/null 2>&1 && \
- ( echo "EdgeScroll 0 0" > ${redodir}/fvwm
- fvwm2 -f ${redodir}/fvwm >/dev/null 2>&1 & )
- vmplayer ${vmopt} ${conffile} >/dev/null 2>&1
-else
- writelog "No VMware/VMPlayer found!\n"
- exit 1
-fi
-
-writelog "Bye.\n"
-exit 0
diff --git a/os-plugins/plugins/vmware/files/runvmware-player-v25 b/os-plugins/plugins/vmware/files/runvmware-player-v25
deleted file mode 100644
index c05e5dea..00000000
--- a/os-plugins/plugins/vmware/files/runvmware-player-v25
+++ /dev/null
@@ -1,580 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Copyright (c) 2007..2009 - RZ Uni FR
-# Copyright (c) 2007..2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# runvmware-player-v25
-# - processed in stage3 and available in stage4 as VMplayer 2.5 start script
-# -----------------------------------------------------------------------------
-
-################################################################################
-##
-## Read needed variables from XML file
-##
-################################################################################
-xml=$1
-
-# file name of the image
-imagename=$(grep -i "<image_name param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-# define name for VMware window. no utf8, perhaps we don't need it any
-# more. else change the next two lines
-#iconv -c -f utf-8 -t utf-8 < ${xml} > ${xml}.utf
-short_description=$(grep "short_description param=\"" ${xml} | \
- sed -e "s%&.*;%; %g" | awk -F "\"" '{print $2}')
-# if ${short_description} not defined use ${image_name}
-short_description=${short_description:-"${image_name}"}
-displayname=${short_description}
-
-# Definition of the client system
-vmostype=$(grep -i "<os param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-# Definition of the client system
-network_kind=$(grep -i "<network param=\"" ${xml} | awk -F "\"" '{ print $2 }')
-
-# serial port defined (e.g. "ttyS0" or "autodetect")
-serial=$(grep -i "<serial port=\"" ${xml} | awk -F "\"" '{ print $2 }')
-case "$serial" in
- tty*)
- serialdev="serial0.filename = \"/dev/${serial}\""
- serial="TRUE"
- ;;
- autodetect)
- serialdev="serial0.autodetect = \"TRUE\""
- serial="TRUE"
- ;;
- *)
- serialdev=""
- serial="FALSE"
- ;;
-esac
-
-### VARIABLES SECTION ##########################################################
-##
-## declaration of default variables
-##
-################################################################################
-
-## "static" variables only changed within the script
-
-# The PATH...
-export PATH="${PATH}:/var/X11R6/bin:/usr/X11R6/bin"
-
-# Last two values for MAC address
-mac=
-
-# memory information. permem is value to calculate needed memory
-mem=
-totalmem=
-permem=66
-
-# virtual fd/cd/dvd and drive devices, floppy b: for configuration
-#floppya is always false, if we have a floppy device or not isn't
-#important.
-floppya="FALSE"
-floppyb="TRUE"
-floppybname="/etc/vmware/loopimg/fd.img"
-cdr_1="FALSE"
-cdr_2="FALSE"
-# ide is expected default, test for the virtual disk image type should
-# be done while creating the runscripts ...
-ide="TRUE"
-scsi="FALSE"
-hddrv="ide"
-
-# Displayresolution needed for vmware.config
-hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$")
-xres=$(echo "${hostres}" | awk '{print $3}')
-yres=$(echo "${hostres}" | awk '{print $7}')
-
-# VMplayer buildversion
-vmbuild=
-
-# VMware start options
-#-X = fullscreen
-vmopt="-X"
-
-# temporary disk space for logs, etc...
-# use /tmp/vmware/${USER} if /tmp sits on NFS import
-redodir=/tmp/vmware/${USER}
-
-# dir for configs and vmem file
-confdir=${redodir}
-
-# configfile
-conffile="${confdir}/run-vmware.conf"
-
-# users vmware config folder
-vmhome="${HOME}/.vmware"
-
-# config and hardware version ex. 8/6 for VMware6.5
-# will be replaced automatically during run of vmware/player
-confver=8
-hver=7
-
-# set hostname: using original hostname and adding string "-vm"
-# variable isn't used anywhere in this script. but still works (however)
-# TODO: Test it commented out
-hostname="VM-${HOST}"
-
-# Folder of VirtualMachine Images (VMDKs of that type. Compatible images might
-# be found in older version folders too ...)
-vmdir="/var/lib/virt/vmware/vmware65"
-
-# special Variables, persistence vmware?
-#TODO: do we really need it? Should be everywhere nonpersistent
-np="independent-nonpersistent"
-
-########
-## TODO: everything clean till here
-########
-
-# File if its a link. Stupid crap
-#TODO: perhaps we don't need it
-rightsfile=
-#TODO: don't know what it is for. check later
-noimage=0
-# image checking variable
-filecheck=
-
-
-## Image depending variables. This values will be changed by the script
-
-# vmware image file
-diskfile="${vmdir}/${imagename}"
-
-#TODO: check for a faster way, perhaps we should put this into XML
-# the grepping under some circumstances lets wait the user for ages ...
-if [ $(echo ${imagename} | grep -cv "\-flat.vmdk") ]; then
- hddrv=$(grep -m 1 -ia "ddb.adapterType" ${diskfile} | awk -F "\"" '{print $2}')
- if [ "${hddrv}" = "ide" ]; then
- ide="TRUE"
- scsi="FALSE"
- elif [ "${hddrv}" = "lsilogic" ]; then
- ide="FALSE"
- scsi="TRUE"
- elif [ "${hddrv}" = "buslogic" ]; then
- ide="FALSE"
- scsi="TRUE"
- fi
-fi
-
-# Should we debug? Hell yes, we should always debug!
-debug=0
-
-#TODO: Bad done... we should do this another way later
-version=$(head -n 20 $0 | grep "# Version: " | awk '{print $3}')
-
-#############
-## TODO: End of uncleaned area
-#############
-
-
-
-
-
-
-### FUNCTION SECTION ###########################################################
-##
-## In this script used functions
-##
-################################################################################
-
-### write run-vmware.conf #######################################################
-#TODO: only not yet checked function
-filecheck ()
-{
- filecheck=$(LANG=us ls -lh ${diskfile} 2>&1)
- writelog "Filecheck:\n${filecheck}\n"
- #TODO: don't understand the sence in it
- noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l)
- rightsfile=${diskfile}
-
- # check if link
- # TODO: mistake with 2nd rightsfile if its in another directory?
- if [ -L "${diskfile}" ]; then
- # take link target
- rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F "-> *" '{print $2}')
- rightsfile=${vmdir}/${rightsfile}
- filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1)
- fi
-
- # does file exist
- if [ "${noimage}" -ge "1" ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you've specified doesn't exist."
- writelog "Filecheck says:\c "
- writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory"
- writelog "Hint:\c "
- writelog "\t\t\tCompare spelling of the image with your options.\n"
- exit 1
- fi
-
- # readable?
- if ! [ -r "${diskfile}" >/dev/null 2>&1 \
- -o -r "${diskfile}" >/dev/null 2>&1 ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you've specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n"
- exit 1
- fi
-
- # writable (for persistent-mode)?
- if ! [ -w "${diskfile}" >/dev/null 2>&1 \
- -o -w "${diskfile}" >/dev/null 2>&1 ] \
- && [ "${np}" = "independent-persistent" ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you have specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n"
- exit 1
- fi
-}
-
-
-### write run-vmware.conf #######################################################
-runvmwareconfheader ()
-{
- echo ".encoding = \"UTF-8\"
-# This configuration file was generated by $0
-
-# id
-displayName = \"${displayname}\"
-guestOS = \"${vmostype}\"
-config.version = \"${confver}\"
-virtualHW.version = \"${hver}\"
-
-# CPU/MEM
-memsize = \"${mem}\"
-MemAllowAutoScaleDown = \"FALSE\"
-MemTrimRate = \"-1\"
-numvcpus = \"1\"
-
-# ide-disks
-ide0:0.present = \"${ide}\"
-ide0:0.fileName = \"${diskfile}\"
-ide0:0.mode = \"${np}\"
-ide1:0.present = \"${cdr_1}\"
-ide1:0.autodetect = \"TRUE\"
-ide1:0.fileName = \"auto detect\"
-ide1:0.deviceType = \"cdrom-raw\"
-ide1:1.present = \"${cdr_2}\"
-ide1:1.autodetect = \"TRUE\"
-ide1:1.fileName = \"auto detect\"
-ide1:1.deviceType = \"cdrom-raw\"
-
-# scsi-disks
-scsi0.present = \"${scsi}\"
-scsi0:0.present = \"${scsi}\"
-scsi0:0.fileName = \"${diskfile}\"
-scsi0.virtualDev = \"lsilogic\" #\"${hddrv}\"
-scsi0:0.mode = \"${np}\"
-
-# floppies
-floppy0.present = \"${floppya}\"
-floppy0.startConnected = \"FALSE\"
-floppy0.autodetect = \"TRUE\"
-floppy0.fileName = \"auto detect\"
-# we need floppy b: for our windows client configuration
-floppy1.present = \"${floppyb}\"
-floppy1.startConnected = \"TRUE\"
-floppy1.fileType = \"file\"
-floppy1.fileName = \"${floppybname}\"
-
-# nics
-ethernet0.present = \"TRUE\"
-ethernet0.addressType = \"static\"
-#ethernet0.virtualDev = \"e1000\"
-ethernet0.connectionType = \"${network_kind}\"
-ethernet0.address = \"00:50:56:0D:${mac}\"
-ethernet0.wakeOnPcktRcv = \"FALSE\"
-
-# usb
-usb.present = \"TRUE\"
-ehci.present= \"TRUE\"
-
-# graphics
-svga.autodetect = \"TRUE\"
-mks.enable3d = \"TRUE\"
-
-# sound
-sound.present = \"TRUE\"
-sound.fileName = \"-1\"
-sound.autodetect = \"TRUE\"
-
-# shared folders
-sharedFolder.option = \"alwaysEnabled\"
-sharedFolder0.present = \"TRUE\"
-sharedFolder0.enabled = \"TRUE\"
-sharedFolder0.expiration = \"never\"
-sharedFolder0.guestName = \"Home\"
-sharedFolder0.hostPath = \"${HOME}\"
-sharedFolder0.readAccess = \"TRUE\"
-sharedFolder0.writeAccess = \"TRUE\"
-sharedFolder.maxNum = \"1\"
-
-# dirs/configs
-tmpDirectory = \"${redodir}\"
-redoLogDir = \"${redodir}\"
-mainMem.useNamedFile = \"TRUE\"
-snapshot.disabled = \"TRUE\"
-tools.syncTime = \"TRUE\"
-hints.hideAll = \"TRUE\"
-hint.vmui.showAllUSBDevs = \"FALSE\"
-isolation.tools.hgfs.disable = \"FALSE\"
-hgfs.mapRootShare = \"TRUE\"
-isolation.tools.dnd.disable = \"FALSE\"
-isolation.tools.copy.enable = \"TRUE\"
-isolation.tools.paste.enabled = \"TRUE\"
-gui.restricted = \"TRUE\"
-
-# serial port
-serial0.present = \"${serial}\"
-${serialdev}" >${conffile}
-
- # set the appropriate permissions for the vmware config file
- chmod u+rwx ${conffile} >/dev/null 2>&1
-}
-
-
-### creates user configurationfile in ${vmhome} ################################
-preferencesheader ()
-{
- echo ".encoding = \"UTF-8\"
-# This configuration file was generated by $0
-
-# updates/tips
-webUpdate.enabled = \"FALSE\"
-pref.vmplayer.webUpdateOnStartup = \"FALSE\"
-pref.tip.startup = \"FALSE\"
-
-# configs
-prefvmx.defaultVMPath = \"${vmhome}\"
-prefvmx.mru.config = \"${conffile}:\"
-
-# hot keys
-pref.hotkey.shift = \"true\"
-pref.hotkey.gui = \"true\"
-
-# fullscreen/mouse/keyboard
-pref.fullscreen.toolbarPixels = \"0\"
-pref.vmplayer.fullscreen.autohide = \"TRUE\"
-pref.grabOnMouseClick = \"TRUE\"
-pref.motionGrab = \"TRUE\"
-pref.motionUngrab = \"TRUE\"
-pref.hideCursorOnUngrab = \"TRUE\"
-pref.autoFit = \"TRUE\"
-pref.autoFitFullScreen = \"fitGuestToHost\"
-pref.vmplayer.exit.vmAction = \"poweroff\"
-pref.vmplayer.confirmOnExit = \"TRUE\"
-
-# shared folders
-pref.enableAllSharedFolders = \"TRUE\"
-
-# eula
-pref.eula.size = \"2\"
-pref.eula.0.appName = \"VMware Player\"
-pref.eula.0.buildNumber = \"${vmbuild}\"
-pref.eula.1.appName = \"VMware Workstation\"
-pref.eula.1.buildNumber = \"${vmbuild}\"" \
- >${vmhome}/preferences
-}
-
-
-### log function ###############################################################
-# function to write to stdout and logfile
-writelog ()
-{
- # write to stdout
- echo -e "$1"
-
- # log in file
- echo -e "$1" >>${redodir}/run-vmware.${USER}.log
-}
-
-
-### MAIN SECTION ###############################################################
-##
-## Main part of the script...
-##
-################################################################################
-
-# Delete the LOCK file. its insecure, but ...
-rm -f ${confdir}/*LOCK >/dev/null 2>&1
-
-# create vmware directories
-mkdir -p ${redodir} >/dev/null 2>&1
-mkdir -p ${confdir} >/dev/null 2>&1
-mkdir -p ${vmhome} >/dev/null 2>&1
-
-# NO X-server, no run-vmware ;)
-[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a desktop!\n" && exit 1
-
-# logo for console
-cat <<EOL
-
- .----.--.--.-----.--.--.--------.--.--.--.---.-.----.-----.
- | _| | | | | | | | | | _ | _| -__|
- |__| |_____|__|__|\___/|__|__|__|________|___._|__| |_____|
- Script for preparing VMware environment...(v${version})
-
-EOL
-
-
-### CHECK MACHINE SETUP ########################################################
-
-## log script information
-writelog "# File created by $0 (v.${version})\n# on $(date)\n"
-writelog "Starting with $(echo ${np} | sed 's/i.*-//g')-mode ...\n"
-
-## HW deteщtion start
-writelog "Starting hardware / device detection...\c "
-
-## configuring MAC address: first four bytes are fixed (00:50:56:0D) the
-## last two bytes are taken from the local network adaptor
-## Get last two MAC values for VMPlayer
-# NF = Number of Fields of found values in awk
-mac=$(/sbin/ifconfig eth0 | grep eth0 | sed -e "s/ //g" \
- | awk -F ":" '{print $(NF-1)":"$NF}')
-
-
-## check if we have enough free memory
-
-# get memory in MB
-totalmem=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024)
-
-# TODO: Hack, ig more than 2,5G RAM use 40% of Ram and write vmem into
-# Ram as well (40% vmware | 40% confdir(vmem...) | 20% host
-if [ "${totalmem}" -ge "2500" ]; then
- permem=40
- confdir=/dev/shm/vmware/$USER
- conffile=${confdir}/run-vmware.conf
- mkdir -p /dev/shm/vmware/$USER
-# if there is no scratch space on disk you have to waste your mem
-elif grep -qe "ramfs /tmp " /proc/mounts ; then
- permem=30
-fi
-
-# calculate memory for vmplayer
-# TODO: unhappy how it is calculated
-mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4)
-
-# check memory range
-memtest=${totalmem}-128
-if [ "${mem}" -lt "128" ] || [ "${mem}" -gt "${totalmem}" ]; then
- writelog "\n\n"
- writelog "\tYour memory is out of range: ${mem} MB."
- writelog "\tMin. 128 MB for host and guest!"
- writelog "tTry --mem option."
- exit 1
-fi
-
-
-## look for cdrom, dvd and add them to the vm config file
-(( cdri=1 ))
-for cdrs in /dev/cdrom*; do
- if [ -L $cdrs ]; then
- declare cdr_${cdri}="TRUE"
- (( cdri=${cdri}+1 ))
- fi
-done
-
-
-## Write all results to logfile
-writelog "finished"
-## log disksetup
-writelog "Directories:"
-writelog "\tConfdir:\t${confdir}"
-writelog "\tConffile:\t${conffile}"
-writelog "\tRedodir:\t${redodir}"
-writelog "\tVMhome:\t\t${vmhome}"
-writelog "\t/tmp info: \
- $(grep "/tmp " /proc/mounts) $(df -h | grep " /tmp$" | awk '{print $2}')"
-# HW setup
-writelog "Hardware:"
-writelog "\tMAC:\t\t00:50:56:0D:${mac}"
-writelog "\tMem:\t\t${mem} MB"
-writelog "\tMax. res.:\t${xres}x${yres}"
-writelog "\tCD-ROM_1:\t${cdr_1}"
-writelog "\tCD-ROM_2:\t${cdr_2}"
-# Image
-writelog "Diskimage:"
-writelog "\tDiskfile:\t${diskfile}"
-writelog "\tDisktype:\t${hddrv}"
-writelog "\tVMostype:\t${vmostype}"
-writelog "\tDisplayname:\t${displayname}"
-
-# check if image exists, etc...
-filecheck
-
-# VMPlayer Version.
-# strings is the fastest and most secure way, vmplayer -v takes too much time
-# and resources
-# TODO: fine a faster solution with different installed vmplayer
-# perhaps via stage1 + /etc/vmware/vmversion
-#vmbuild=$(strings /usr/lib/vmware/bin/vmplayer \
-# | grep -m 1 "build-"|sed 's/.*build-//')
-if [ -z ${vmbuild} ]; then
- vmbuild=$(vmplayer -v | sed 's/.*build-//')
-fi
-
-### write configuration files ##################################################
-# create preferences
-preferencesheader
-
-# create VMware startup file
-runvmwareconfheader
-
-# poolconfiguration config.xml
-cp ${xml} /etc/vmware/fd-loop/config.xml
-
-# sync is needed to ensure that data is really written to virtual disk
-sync
-
-# own nvram. We need it for floppy drive b, default nvram has just drive a
-# TODO: optimize, currently kinda inefficient, too much copys, but we
-# don't know which one is installed...
-for i in /opt/openslx/plugin-repo/vmware/*; do
- cp ${i}/nvram.5.0 ${confdir}/nvram 2>/dev/null
-done
-
-# adjust volume
-writelog "Unmuting sound...\c "
-amixer -q sset Master 28 unmute 2>/dev/null
-amixer -q sset PCM 28 unmute 2>/dev/null
-amixer -q sset Headphone 28 unmute 2>/dev/null
-amixer -q sset Front 0 mute 2>/dev/null
-writelog "finished\n"
-
-### run vmplayer ###############################################################
-# ...with the automatically written config file
-if [ $(which vmplayer 2>/dev/null) ]; then writelog "Starting ..."
- # run VMplayer
- writelog "... vmplayer ${vmopt} ${conffile}\n"
- # start fvwm for player 2+
- # problems with windows opening in background
- if which fvwm2 >/dev/null 2>&1 ; then
- ( echo "EdgeScroll 0 0" > ${redodir}/fvwm
- fvwm2 -f ${redodir}/fvwm >/dev/null 2>&1 & )
- else
- kwin &
- fi
- vmplayer ${vmopt} ${conffile} >/dev/null 2>&1
-else
- writelog "No VMware/VMPlayer found!\n"
- exit 1
-fi
-
-writelog "Bye.\n"
-exit 0
MnrowNx9a o Y~[wֲ;'$S~1N1d:aw?R*7-?b˖ivoY$w:m "!dFMLMZW "~zd;]Koނ@9Q4Zn=n}d jv YA-V9 ^la>drЎmUMh>7/3L 96=рNDyJ.61ϹZDҾ 7` o~X]}׺HnZ*uMT:rQcFGE0rSCr-C8JyQB>U͋;$5&oX^Yq5*>% E]J@,k1[/V0nd%IJQ̸V_7zx6bTTPs!`bZw,aSUcǽZ1_ܖcL`H&5 r-Դ_a| ݖZ5T=*aWŊ].Lc]Wq*, Κ41Nx;tsQ^e:J9&#3#7K{ F[#/f]% E-p"oaDx5Gv^read" fp K'!㲥h{ÙA`wåڝ e4<:w.jpbɯ\0H,$^'/Η ~::ɶ6v r+;ISݠwW{Y5Ђ-ܩYe5!͐c4:(uQL4^Ns]8:Z}| >.I B jAdΠC߇Ѯ<@q &R.G0 [`[2qHj*—`n+ Xw\ .fzGȦ0W9@P$3)lW3\6h{5TWY7 @rQ2O1 m3U+kU]Χ ش8 y \{ wgfO_3Hi^g|kT߇VkBͮ$@Š<3 (y/%Ux2)G;/&>vG}#`9 ZloYo9CD,1E%̨4KJDֽfVo&be5T7C_c"^G u tƄu26A5g+%p.K3fꙋVM6' V'B<6ز'*# oK=n_ʛÆaLx0ڀs%AU3ӓꂝ^{Z6zNZzoLvK 0=X< H.(>^TxO[!NQ QIR-cfV_e;Oދ ^`_0}\s@U4EүvUḊD^;'nɑJ 0Rߵ5SRfZy اd wC&zH?,h * )˟wՕ~T4Z|!#N)x]3oZsSI2h V{n\|dBĸݹvސĹŎc->N|PP8 :>!q gDO[ Lyߺ>ShWFJ#ZTV/Q9[zڙZ3|7- rVSNE"g|_;5%qT!AegдI)N5e[5Rp8mo|fr H%'CɧX`UR[|]=ܶI'c #ƴSu,]l׫10prQBFFeu:0 { T03ݡsMzT9Ex{oiKǬ+zVNMNbW MNoϡ*mfAn$'OD;m0jvl FV/u~jR3! & YQ-HbM̢W^@Zl6%XD>SښǦCł|XqM* [x~zD"&Eh ȒA0;CqL1ÁK,)G' k`A#U`g탸aXU%0ېdg\MLrwudTK-L-HqCO },11ADr` 'hCv#dZ6!qZ4f9$bT-(A랷ŷpkpq&~J*ƭx_mñUYDpvYVY<~kV_4i4Uzta7L L3]IأD̉Jv)4qQ2!(*CV <˂T8-&ގaOa gjVʍK⺘ZKp Dr7^LN.nI({#pj}􈩀ߐ(zoi!KCIВæ߅ju'hiIUZ%hL^qqH#Jɴӣ 5[`9yrtחAQmoD^z n|a>+z$2TH%>P;d <9{diukHD t؀\R *[3C<1=r飠rHPtųu*ZB[.=0 ЅR,}Lԧ#[XG*Cv;!c nd{έqņܼt3}Gw@ 96+ߊ#x}i b_0|ŸեL$As8/"cuR끂]՛<'*GhYj/r\3QS ?IeWh3爄t٥&W1:T+IqD/ }͒F VIL(7+L~WdjR>)x+vR?98SP5#3nPz8Q$B J, $`eY㐫 2)\wx/RJTL":F{ /`1x92ږ֝a}Q,4i=X;=:Q#3Ϳw͸l27mp&bmUL&[7&Gkmˑei4L6#\2h1\lB|mta1O~f/$<Gb;;ZXvwG V HЧxlя=5lZݔE5uhVnkkKp[{ z(+ieyYOޫ )t7Z'G'k*wd;=!bK5&YIK%+@` aE}l-Yo& H|!7ch@TVrs\2tPܱDF+kS zNJ:ImTHH:uȭlcreS~;_UYͰI>AX7sjzLVF6#V>$IBo[ _+c]W"̐9Y E̋1qO7%n$:i - m#YڲLPsWlkS bO!}W1^ThM).UN#x~V^`h 4C~21< /v55EqE+n8Ȏ;3GS٫Ik7} @s1rɝ'r4AȈd |j>d:.1񛎝ŷq2^&+r\qsAG*NDo0XCqaHJs.7ƫ'aQJ#֯q:\aC U=͇ZǢ-dpuqӻeE,{ӷB澌l`5V$t،YʈPRMq9R} |ίs?JRdlfeZh,~Fďs,Z'qF֘Ѻ|s$=Eەޟ|5mC]˝~F=#%"U\͒y!3_ %ٵeI,K>}.] c!%6L  -VfGD%Fͧq!a Nc_ (hUzi__yƳ45^dq|Ps}eES (D:_1*r]g1c>";ם#mS*qghb1f-7wFDz̺ B}Lq>5V /gowV ̮^ т94Lo{1G9_==ΘPy򵢒yk9DF6C.L!iV̙r])+ 4jJ$} pu^$[` TUf u*iDlx{fQ_WMPRMU*b<*`^/@n{R؟[T[c*)i& H5vVBBqY]kl|g.Px;AHfȆV Hzˎsoxâ,N>]BdkaJΡ#| VK(4 RNa)1ficV.'q Y Ī96{ ǚZiaW_Ӕh|٨ZZvu c̬t>}2,_9sZQ^eWmQ _UC#s0 u!n@h#oPx iؗhW&4eI\w(va65N·/JmPUpQ+^c{^U/aἋ:ceag:䠦 Au9?sѵcj`F GW]-in5%4{'!] ļeˀ7FR& YYK\n(m}yj*"z&R14z*ŪC#KݮtÑfRyOfGoH|aê(!"̯~n*2̍Ģ!]8;RQ0bʹvZ%XZ rV+ kؓ#;$ mOL qf_i'P=\;ҿoԇ7jCC rz*5~RIҠB >g72geiO DEiR}Yr` AYj˶7l҄ /L1Ȩ @nD<Z\oMrMKRo3IwUT*2٢L vmyM[0*I:*َ;ߦ|Kf0drI-%/h=6xY')L.BC0xA1hi-K GH e;σ*7^ƈ+aa՘e3 &̔g5KCtGOW$|YҜa`ʹa i-?n .( iOCԥ0vGq8vD6( >{s#*\1pڹD_G@|fN0MWc]B(T\5thugm:Uf%n*19WGf dpi6sg溪mjE/pf%6?zkmSbя KNT0rܦwc (W@SL8z-x&@$.FF,' #ӻ٦#laokműĐCLPq{Vbldя'6T֍-ɨUGYZoQ@@J3MmIX$JxkY'bҠBS9vhG7"JGtqmEqJja<<=3=/\gRV-6I%Nv!LuZ>ew3M3ߵ)%ڦ/ n8F@V5R; HWGJR \R3ucy2 q"7 252#-t&!>%^"/̧AڜS{,ѫcopT ;k '#asMdT1=aȞc]@4PYgfΡ w^$m[}8bVe 1+HP^bMeD,n|֋Cb'fg,E}s΍Dp!G3 )^ X϶(m$2-ϯÜt()hwy݄ s-!dhRawMcV-)[#IJm^}TOGvhc Z~YG+ !»r!g좏JTw,.škD1"PO*"hA}Z=b1|:]g8d4p<([:`q 0{=^*?-B jc> NpޭqaZó{55ZM+DlbEuaa[5Vv:(c7 Cb +okqmDIe#4{[zHLI "L;Y֋^$b(avgRNw@\A4NVj1h֔v6 6W(a8dܬi"vʓ Caͪӟ.`TJ\ Cj|+l+tDMoEuZE20]UO:Nfq( bIha0W=l-B>- #F?(9(mg) rWy݌zf (#NTwy sh19m[GDCg}D#90?\AAV! Ͱe6t|OIae\U_UYWuT2ߪl? AGQLV!DS Tr³8Ұ:֭NϠwQucCOm={b`vEsz}=,Ku7gYGizn[㙚0ijH^x7wݧY hΟ]wp;kdQҒ D 05[~e!"O!J=dĄv$ӿ:ET+؝VFȼlZCm,Gғ`R_uY7HnRȓ<+o'XCˬɊ7&9K`۹0m_P$뉩8,Z3 #P&c %4-5̆Q7@G\Khڣs͘U,7 hN0ļpeTbkK#cDxX5zcPeTM*ԝ% ѧ R*յLZ%l_hw*4_tvsQ*OEqw}WN./װ$JBڛ ^!Cڭֱ|pSq!tm^o3eētsOWIw͑ .N>.)3Ez8I!mmh>{HȗBQ\Hד0ՙa/{Ɠ'gJҽx=? § YoR-\ĪIq=Լ!(p>uQ1NXj[0y 2y>xI}S@֙P,r3Z;@;錨,ic? j{%IFʆ`phO9B (S8:.pXu#Z6_s+T/y5Nů@4?_(rh+gYzVuu bb2rb69F}|$%/B2A< \N}y]͏!{)@0Kap Y8Pڗ@1Sʫ& G멠3q?uvi5(l}ȹHzc+RHeu"' ORL>e;<{^Ҩ UwR[{fr mh{1#]$i3B6%q7 SPN"ph"j~ߥHCn5b0<"/Vށ31H% qߜVPe)-:FӄإCi7T #(9%Fr{tRsPV͚HOk72mǔE2@ deEN5:Q;oQLdb{Td#`r')/o;ZqiJR4]ް<8rVSq40{F_`ڬ`=vUwR.}v&HkWCQW.+,r~ ' +3L 綎@+34'0qT_?=2ב27Hgh]#qZPUaȵ`A–!"߉{a/_0wIn̜֙_r4R?2_,r5NcIX7h_c{ox2aOCn&Q)/7+9['a$hzKCHsJeXiٽP-rP(d.;3-evp-إ񏠓vep[g%ƎjlL[hw ZDPˇM~U<=~H1fngg "nC2闈AwOCi-pv[%qoL^")]N)p ^%%;uq{ U!&D#g3$Y,D(֛8R*a:̙G["S6?7GYgj8a1.>Γ-Y|QUBn_N~`#|.Kqy6P%ui(\jOpK0BрNÍaI*cSբ]V\ʑw50Vt(oDzܾ❲ydp,X+(c--&ke mÛs_cbT\/旤K0Z괕g}ÿ?A5fXJkU 1St I܋[Ԓ Zy,QϰceFxh#c.]5U^Ox')\MC]89㓔UUXxNq܎RD.:j,>3$_GLW[η/ɧpu<:Y$w̮&uyY lp |vO U,B #PPd|{nrR*U{}LG~DFhE:mKQN̼Ey"35=Ȉ֦q3Ylش;ЕLG@">S-{ ! V  R y(è$/ mkb|Xh,"OC G>Ϳ"LbSv($̃g{sq:&(mۓz/=;[dp}GqT5IŘZ`^,4Z[XnD1%p]B5mm?\AmH{9馀<;㟇BTW+yeZcYn3f *%?Gڪj@ 9U$IVSJDJ5+duBGХaF ̮ wSYwɦŝr` )fՎJhu>*{l/l$yG%u[CD׊۞㽄iVfHj3#5bTo3q`[lyƦn$B |dc;&02=NMm*bw#UUܵlJk6!t`8yVٴ܀qe&%2,D3W . p.ǣ`=ঀ:h \͆g(|Oi+(* MM 4H';(j3,Έ8TyVPu. Q]03ƫX $)'ݒ*r)\c@tԟTԠ"< gxCf_+ٝ\5:ۜmn4RYt\|(!zZ] ?P΀x?k4E~;Ch"ItmLX{ q]բ;9wkOvf|˷Wip*6S-*!N H5,Oe5%(7:!<m&lux1L͝~jk 7 o ࡴ"&wp=/ X0$A+U+h a꾽sOm#+%㉯+[Nk^nCmAb_yiat;d^Éx8g!Ѕ- (L'*5R.fc⌒ؠY@:U4XT _D": i]+RJݟ}7bG %][&/ּWe9F576Ж`3W:moMz:6hO2B4]|2t9g4+˄nɩl-$|vyoo7':KB M`MPV譁R`v5OjVpq ($|4;d5#\LVta a4tns#j?L{Smxᶝ! ci5sBh7CR*Q 匠16un;5޶"*‚|D L{ r6hBR6V'-Y \AꤘSf pc;wv&[А z%/eƞ5=xyGQRsQ#CP=W{gH=4-(g]wUj s?T%O$+A Ֆp:sاɪ"O8.q.?lѝ} %Ϫ*u7mP[E>jb(B.V+bs$"d`>Ĵ/nIϖCؖ}`'JϷwWһs͵V"HJ3Mt々7'{Ԛ#G!Ύ2Y!ÃBցw%ZmVpb&Dh:Daؽ8+fǺr0;87g m+5&ʷmձH `V;B^')CNIc\;29 pnv{\*ȒVT@vEo|oym'i+&Yy!3vi2ضA6/RO2ukSL8?X*CY /A&m9'pv7I4拝Z!%koC,OJF(!^fgZ-s| 1Jo]2K7߀b2Jc:ե4.<ֳj L9J˝Y,/\2h* %>lx4݈-eb""28.v}g|%r2䠼 L fKk*(q{xpN`cv!@bh*`(ZK8g,od!};U&r55s{R 8 S}duGiˎ.mQjiUcT,Ö dl˽&EE+\b14GϪA[6]=|Qc(%CY '0eT]YӂCU°Śq n#&B"]͏OJ_Bڞ\T%i;M.[#odD` ONS - URK}P[(M/;W@z炋[U_u  Z522'׾&]vp UZ<uffpj+jTΈ^vź[ƂW1Gy稑1S0f.wT;*hjcK}R*?Ua4^><+ѦO6AJR>O_ITEm5B9NTڼ]j . ]m2ΎhK{FG<nSsэGuxX2t;tVRmSƭCvc_L;s9 |#3\~SDڹǪŠLF*1 0{>)tL-(Z^%op+ [RR}!PWKEOghM *Vz>iO4`7F9RO7$1 ocaL;شt% vR٘1\ A /#?|wøx6`uU~iKxo,-W=X"܅?Urm] p(EnX0t#dD'0XߜQ 3fXLk|OOWn Pm, NW x4&5Sth.q yXūN"}.FSr(W)ʱ&*h|QOj[F3ʶcBIQT}1 f]u(=1n >1sMÅb2h L}bLh>*D^N}\R4]a%M>Sxԙ RL _>dj ` ^^&hE}{D^Rw-_9VwpC@wV =0c^R Aw?BNU+Sym(< KB@$M5Xy D` 'V}qJy۸/cg^Q0$HZ{Q*zr9O  &'_.zB+ֆ:͍U<:ʉٓ :՞pU}+77x=Qأ|H:\)[fM=D?{,Lhp3=VwNtrA!XAPŻ\*;JF oM<0G| ~<& Lք>kg8OgoS<(&i~QD@ew՝'D ]T3[wz.4ػND,oZxKFyuO_= u递ҴE=X̝ο8qx)p1tx?].An{H52@L#6.-5 <`%#gKCJxz-R9ccȎQT}Ňmvzk4 %BYpz*d@ BrvTAFYɼK_6ISA:paQeڡL\w}HO@Ufk+D0ko9oI4 DA½g ;53D'"KY',ve'=#e2nNG,LxXN+1UL0@]=qc)0튘%S;2Hvӳd.<"P15gD,̰e!{%cB!cOh{ӄ1BnY5eUj-Y N\C[ŋI:&23TI3=^mBt*o8*( );ya&}ģTsQkؘOw<*{(Ǹ~+2mՎ/GZŞA.Tg:uC ƷP@/A9'(~Ȃfz9.)= sĜ1_*" o7J" q Q%插z!*3rN Zq"oFkP0LT̓/G|!g5+K0Remj(JAi;6I[-TɫG@&F6^s6dJme/x9}+[#-/᳥J ŐF`Æ/J< <+gε,p؆Ao~?⴯_|Y:Xطg")Ҡ.|wx:QHE[V{a~* )? 5gexZʊM(ֱ4,fJQcr ,co(F9Ł 쇬H[.  lrIvWGm Tw!%wdnnu&& <5j**9n( p޸(;M [N n3>ͫHkMD] ̋?ɜF ~ Qg'ǽKo: CÞNxn󭘅dplrw |06AI jUwR?!vL?d脨5\y`lVRC d0XLGٽf wz9鿅f/T?10T~T]N!~۵NJj݋Ye"!/?TW."ҦqvĔ3gӀ=:K'j*FqOJ HUIFQǺmr&w L\,ߔbu1]5`a5Ѩ0x IߥH4;`C3C=pN -7NL0=+avaqr:vj$TY;o$78MSD,*^%[GJ PLsbZtW.rfFk %nanJ2}݁(~kkdt?CT98VAjNUj~婵wk$,$ f ā>/7nz(]n Ƨ Oyv!nWqy^%Xy!U7[@v 6_6!Q:2 ѮԌmzT`pPidvCo4To2_)SX5GPՃj1Ţ7Y%,}pfwA`@yYeb`q,z*w$Uq|lT=vYk4WZ-iQYsRnH֣d/=@5 $RyJ.g]-@ f9kɏ:96P'v"&ݎa ,`$p;?vDj5B3ۺb!6Z2%_ٽ3Uu!'Y6B$jv&$;cϖfC0S^lhֵ4{49^F:2Hà2KT= @oZ5FdD`Xp%P <Ϳs,`n!FF)&- ט=*WK>aKTnh_ ]L~)73,tN %QE:o)u`L诧 $~8ȖzN8xy-iSm|}BV ܨRئ!2G*U4 N ^Ż_,[%$J|M̹::.2i^qdl%Rԑ‰\:mT,rZs$}3fEG4 Z *շTd)k~lX^W z}$+n1_R4nٳ!O v2N"B(Kl PQS: [ѧ5o@N4J!*ٰ>%j_ gtj %A( ;OOV. *q/Շ؜`6W 0%O+HI P*ȒP7}}իjK ]X!#B{Qw0U[kN(Ux%ܶ!H9Kݫ(L%\ !ˍƹ ՉdޓoJ?#;" t{^~Q`Rz;AӶ&K>e-;yI+t?*pd\x#4p~^4"E>7a:&H0u}]I\+901 Ӄ }) 4N)뮽@S[/ \T$nEv-(ܢ ~2m`.rCqV(\QP} "Vk D&o~fpWzW 1a^AՁkSgT|sY6~5>Y |Гht)+>I;`o?Y9+e)`[ň`Nfp-8{C]z~O$_~zqЭ͒mERSdo5FTG$O-4KJ $äv=/JsxM= q`ipC/^ZO3 qVe|*Xz`Ͷ_yI<DtFA=hOmzI"ȶǐ% MwU zgp=dtF30w% /+Nė/e4 _ws9ڏZ3W޳Hmv̒bM*`xDqpuM_v`jliРG[ͷy32gUF(4Y<֦*m L59ƮECxIS[ B#HYu\Uf^0ٖ72]@9\j giGWE*=n؍ dtn dW+} p%GN`Ο=Jrje܆-/B v՟.&H3è <"֠DG kI{6 {Sgg$Yga&[KAKEHTF; Bf/JYhUQNB [Q1P`6ÂaC#kE9ӯN{?)^|kjheބ\Q-Q"erG|gj ;AvkiJXPBdĈR|YR;ұ]v6o<:3"!J*KSR𓶸Q Lg =ŝ$Ļ |ÒV O(̭ZZ":PH=d% ,s*W%_jOvA|Wz H1 t+ Yn D!EdB>,ՙ$]Ֆ!F;lvO{Ɔaջ  eb69W>ȓe)N P[wgu*7msDH'UM7jH+XL`j߽!?u:Ǚ _sk|;FarJ\dG5o~PԫĭYšb]Iߒ%繩\Ǣ* 7DaӭPөÒe7jg* S!غ$y3w퍾 Sf8,MhOZ?죜 1Yi"Arm'9E lM/Z/"=î;GFFpslz%/"9ZHڦvتtT&jAq$+/~o ւDG0%,͉)ɖQ&ɯe0lsu|9 d%5^m 9X"O61+Ћ")iH]ha^IC7ǁ;Jˎw{`؄oi<%vƬ+]&G"krPYzM,O2X>.qI?=@vj$Z"Eٶp4SƇ] LrB |>'k0a ^˜҄;i^y "R.v#@^!;Hr1 lp ] c溓k!t[=HK@rgM^i닭fd^ZQODa:MCw}6RnX;Y@C0 |f?U0~9Gt8nES7ۜO(vNl"ٔugYjDw*l$ 6wA% pA~#*õ Bル?Df#99j|I(o& [}3H'a|Q܊E$ɪI{O ӈ(f$nf>0KdAdǦC^X9טqpx5F.y~kN>1x]$T-Y= d.OWZ7 dtrMxqq5z4X YėLBcnL`2Y]{jH , BI@BLǭY,KXQMU(7:,N%Eͺ]:@"N`+#+1Vu.o Ai5# ;Vl7L)݄\GѓS/[do^6o^?ڢ!PN+҉E~aXM@ґu!T@t%҈ͼBtrj-EB)p kE `3P۰Df8nP[Y-oHB9(XIg6| B?EZk)CG?^Sn e\g%La,ō`#>U dF ,1IO=p 5~ oŎr1|3>L`UC_(Z\~DwA>c> y] |Iw?/5F\cK|jWM5Vk.wY0X`$ eG ry6ZYK0-EAC3^/pOei53G1x"#P>^[/m=T]×X]hu5-ȩ ]#{YP߱@㹝fXr^# e-x ̄2}\)Zжz%3HdJOϦEfX65)^A-]&@Hλ7ʹGs"2Ն P UTu?l1S5.,IROQ"~ĥ0EFX n:[Cob^oGT"%;RxCmg2Jj)Jqwq;[ P 2cڋ`څA]2 ڛܓ׸4LX&vJ]z㏸b|=X#,|TǏV\ j=5jZQ54)-nax $3:T>$J{Rm@yyQ.ѵk ߶m".0(dU mXqȤVƲ,z-HTFnTd"1]E8uF%b ^DhX]ˋbwY 7]M.t㛇БD?qY򜁎viRafn,"G 8lDzD6BzYu1T팉ȿmٹ8Ok3T.?F,RMzKe|lPIw~b1)xPe I1C@x 'Ђð}A e",bUH$v~ A˳|)_O>R\񄢖}ҵ-Z Au/~tYN2Ĝ:5; i7oXW{b?]4C=]ֵ~m62X~~7&bll Vd՟g'?=6hnaM$$A.xP_nՉxF6ͣżQTq؂.V kJ?+褦x~׹ڈJt0Љy$g qKٴUoc)ZFwIo#Ȱ crFZ;:9wZd5jd (oO-2HTпvI(<=&[BLH y(Nz3?p2W["*h nH-F$շIǠ -t=ˆΈ03 [gq$I b 4K"Okc NSy.+j Bua^oQyazZpQU R34I#*x}q&wGتn =^6_}( Ŝhjixw2 ,lF.4BkDmF#t,-t\2VH wc1cN#1@ Mv`Bz~V#AA۝<Q0hA,ί^ ]a+u6B xQ@; : '͵EmܹX+d`yʹ 0#)a덑GHwWqjOU倵cs Z 'vt"Ǖ8sr8#U6QoKR{NRi^ݱRpdJktyϡNL-UfG\NJ(]"QsϘ6^)_# C]zoxľ]aaauV*Y,vȌ6HC H q"e?[/X$+Dx7_ u;<8-@5P<ѻELDYwҪҮ Jso6Vu%HRet䀛#ӲrtP0RW/Of@~I CL4#vijWs[wQQLP>N X9U%OAJYz;\*%%`a%OU,h>+BI2Бoۃw7C~EHÄqEws'hzOY>;_%F(Se:;ݮʳ ,E eA2qr޸KTd k4,E*Ezb{x% K<++U >_V3VsWIEU_ 'یTO_ɺah8Ii fA?J#ܸ' ,s5\u "CYb~#>жSrQhȜMw-}C)F9p e_NQ[EG2BT Ӷ,%E (WJ.;/ߺs{yKrU!㺈7 6 4JZdο$]OU6{J|;`<#k?fP {NU$2H&c.@-6+1pxFfTtsNѼ?FlR"oufɀg\d{mg߹Y$e/5]e4Ԟ̉>gb6~ $WsMĥ`MKsw|Pq.|onM?'{/SR4twC#r,ar%/i)yI6ol~(ͧz Y/T;o)\ݱ m<, GҢ(Ljq']3||s /yzBNJmpT 9LZk #bl D50ALb R `-R3a "m>kp^" N!OaZ;AJY8gn5N$ak|=659:Zq8I^LءY]672EIfsE%θAںew P }5ӥ>-|V=/+ފXB+s 1G#1~n} 0"ncOXZwD~cOTcgP]u'Lj۲mu' GUSz$^C&xa)KdyHHq>쥳`Y*zu2G?`jmAB-]R< 7$K]oP 21^ߡb t=Pz=V /BC5f Fdw`ZsxaYiրd>n)>OK|5gq&F4kU?]LhNc}Q 3%XI.<_?|~gcKHblANX*. V8$zgв&GrǥgS`!8@ԴC O0ߑ~w6nEh89Ī7l0@Cc$97_! Ҍ6F>l,::]vcω5 βZՎ)kxdo#ǰ%1l\uںGWWj6pTQ gJL?EYQAsdUM6\&C|ӡ@Bw2_p_G˭Y#k0H)1 6:>Tn0(jE,ƿAQ;qcAOA~2 |w)7tGu}m3-`Z"skH?ա;)mC6²$Xݐ$/p\-VR#n ݞwB\HTM]@ le>H.` 4(SV:ֲWd.ʂ+L&Ê&#G0q{6t?gUQZQcn2 ~AY0[v{p.fWw~P;I͵HE t׮U;)9lWeϨ؅<ݱ=X|ss(zj I1煝vu!:RcvhڕlF^21\I4}e*r4Ңv7Ut ]1驼kBFliT]|s*)Rt5e(a-\f&q,#ͦov>1e?o',Q~3]]E(RYK"f924%maWk ͣDHsPw.$TfU5h˘y3HX8vxKXT/۩(grŬ/n/]|KO[rhq;ayR&ljOwrEc t~+OKV !ϑ.&f"N:x^FqX40F`a-r"էB*$SsL[9u`qշKr|:ao=p!SBɥcIkreq~-zȳa-ߧ=81zC))Uin.ֳZ7⁔Jx2g P\&3 7LkZ7G SX9/5l5XȜcqVSr4ȄjCRAuq8ӼgRc.-Z Ѐ }R)}[ŧv{Y+@Q3^ЛV| hcje8u Ѫ8}p:jPC ~ _)͸_&o{}̴iMᯭ |lX/n(G:B S~klJQuN-ʉ@p@6p. ^F(s˻"bOA{k|puP-l(bP>1CRE֗UG^M"}B 8Ky34 3gE=d*ɓW$ '`8'g9{/yf٫ڡi珛H\]C1G^5:qn B¬1cK ٳl{z(Ÿ=_4`*ss)-@6\x,V{i*vBMDĉ7qb)o Ny$]wvC~0%0zkڤO8MAA s}$ֈˑ0}dG9;lgH42j G",3/A*D~4"t*L'!FBk'qqGM9|RD>WwN G8a`@r%}A,5H$#&oR3"}! oofM[Q(|BZZ=@Fp }6,@ߖ[p_ o>F,XR{6~MA&]j`%:tԳe^چRY`ÞlcU1:2!+)%$k_N=?8 Ȼx a7f)ӌڵʁ(zoZc@STy:%czS@RK10֤W$bVjh (V I-!0*؝to%|OX#-$ }%.W^.k"*JgI=@?I.>>/rkioYLz Ԍ{,l Lr?a-y qRw`_}eZB<сzF:۩˘1ӳRPu_50>ڊBIpgLS86{[7736 XYm =@drbgs f$vpG48?jW l;?8&(Qeu HBNlpEƂ;c zRvK իO \,~fr 3NVY҃":iJgLT+^̳wwG(!f!3{Ρ؂Zbn79S $!,xGF3̥Ө" ?WîLjE%2_fEL8kXF0qDfN^s>^yִ=3SzlO UmuZ&h[YBuהzX\]ٙ {" G ⑁+7!Uٮpv(! 7䓼 [b.؞$Vme3'DvqYH൓K1*C*9ҟ}WSP}U\J-bIXɷoXv!^.U=8`uMA2mãISA"*o8,#v+A%ɛMlJ/+2nvM$p r5`]Ovq^Nnl @Pb½0Hm y K9*7 y=ڵ$q[=~iڗ#q>&J[.5Uq.+HfOjqUJMKf1Ze'ըT&q2R3X~[rN[WG%Q+Ukck֖}=/#aƉ>&a_GJVQ/{- ܻb_/=*"f`N{tL,W  δE'kÄHo<a=8IՑKC,R5qI|sw"  CFVcRyeѝr)1>ꬠ"`g-}U|@洛P /y\uH=>Hwm=һDj6~ԮNy/ ksA;$ttQc !hE ;yF BhH,V@߽͙as9k30A}Jj* [v.w5 ݩp_`' B5(&:s"GȀmu\1f`eSRљ!r)B[]%D~#M n1i-7ohāM %:$`,rnހrZ|&ru4$xe nO^)`^̴>K2lu:# |9_j`UCs1=f{˅%: !_| ę8s͈\:کHO4G& ҭU&eI,ej0Sa&ӿ2B\2D?2Fs"cAϗ_ )8 k u{gD5WU5b'3˝,FqUDU8wKd[cd'w=UtԀ]V7.[s,rfdd2o%?Ad?JrOhs/ !Ï}4&ZƩ5"+$Į}v{/zn_U36;,D| {'~Z[s3J^D* /dG@EVFj P$:x++*5fZ/H+wc91&QuCksE0Ln_݉es:|uBEH<:~Qf{c|86y@ YZ]xmgJm~Sp5>vJi}6˳~7jl+ X6Fz>cPorFNTBIm\9dz*`}q#eT4v A .yE\4QAaA+yS;uFv@K,>ћ+jd*g/ϛV0^~HuO̿KrFp8AZ_'tcG%Q[S0/ *}DlS:W#ZɬaKGlUГ .S`}JQ1mx@([8*y{bMs:CCՓK?OY/^@I%@%14 `p1 5i.a=?E4lE2 r>m=]]BM)ڟoXV[v4W, ;% .8cn`rAN*`n^`O+gdn \4g?hTϽvM0 ^4n'פI&ヨd>"t3H6~٥  :# [CVܗ gZ+^ ݛUȚΤ-Ic^2W ~?=v r跺? yi,U+06 ] rXMϛpsb_(?&.j~̇2O: ;i0{З @0ME~0X|ER]g VJ<: ,$@Orɀ1g"gYp \m N ]ܮnxJ@uדY7 ӓtk(If]g7XOS@XK~L8D]--' %:Av\ERb< (:j'icVVã!Sa;νMn2`#ȅ܌-[A_3S2kOaE> ALG.`Cv<4TEHE x^6TCd {n[{bg7D)ӹ9i~e8l S D;jb J k.|*3[ʓr)XДRz%vO8 HՓѡ1 + 4siĊ4PF'ZnT4q-U'ݖħwXPj#[KPQ?eU?k:EޡK;Hwg{.9~י0h%?r&/3RE2 t61Dd&/1y$6a¥R>M1@aa6i^ݮ6MgY<ƳR7aI1)£9৮ZS$*%j 8LTwp 干6?EBtPk7#ApۋF*KCQ#b^D7Ơn^ 1L#,ws^m핵yQ(}qjU2y mM$VC_~^ [uN]@$s][׿-U3زwX|'JĨ_`hW% m‰Z*oE>fUI&ϔDՖSl ب<I&s.g Ӏ_?'Wv.K_4oh =_~Yg*DsJ<$`1sD: .gj>]ϫC&U),mi;]IwF/NIf~J1U%P9ud y?ȴNrc[%K Yq.w}t;vetS*ݧ5B; .h=~CtL`( Fmh=!oDȑFX-:{&;bCˬI^N+KrT_BSO#P`T,AP|rlY,=h oĿ`Cc :V֊" DBFjT9.^/G& ı->M8nˍQ!&窟8:x!{՝E>L+A6k(A ʩn!0T$4\^9eͮCf9zeTDkࢯ.e`u4^f4m8'DKARm)c~7x|S9P /`✃ u^d auzo[Q6b.ؐd;KuAGI7_Msݑ)\CHp!MArR6^d $E$;t7zzYXi}hu䊀Jf_\Guad",xr˧Mϯy.tr{.oY/Ò)&)boцH%T•[HSIhbBC 7z+8KoTCP96V4:L{ jw,_,x71#b#&"F7yb66ɻP2DO*۴nDzo@{}V-^P/]i_0Y}Sfd jUbf¹eݾqHX>P n|iMՍ 5ZJzTfPC=]5OHȗBnjBPHRtGhOMقO!4"9MbrATQY… 76αx #!ET*'ø&Ud?wDger!y{+EE/?@j}:JerFbeޱ̬J\}K/7EUyA OEGW?IkAo@ N wYd$A\G{O53r_b7IM2ݖS /PsRdz@,pA~jR*X!&0Fy.T\lN''į @(yoW>'RQKB0Şc5<OwAF@f=%|iG QZhyԂBj 93. y٬%%Ib&) qS$#I"{_4JQA #ZnקaHUq>"PaG6fm p+ϚKA~B̶fC E"ئ-C4X`,vsU؀q%'qQN4"aMd<PhB1:ҁs7 0< =H̊V9ϳ #éDUgQ9 }QkpK—lH2HcFsC)DKä_=PV9q.~1c!~#lZ<_rsbɹh X/Z_ho(f']"eN.BHC/f=KՌ.uIDDH“is//OtlH pC2]90$:d+lۚ?4!ҷIXoϒ{v|a-@7W^SZ+8plw_=|;Z$CKkK=tx£ʘ;&uFi/:343Ӵb2{[$H*Mv,0Wz DL $:6Lf`6&.4w5PH4Ğɠz^H|TePn!r e̱K5"mM M (z}qgkf<5jq 'C:ًR^gM p&ķ8+űpL@c)ސ4٫t?BkƺI:XJ[EjjT2%t,QaČO 8!v_*Ϫ6IEb@ cIyE+\B aUK~`+ݖ7eé UsdQA .ˊwuOfVCb/qҡsf" MJߩ53,Nϡ^ \e3]CxyhMA|i=zN3 MQ_c| d3kRm=W*`o70o>b@\ܱ e +U)cK")xb0Hdf䯏9mLK! uB<yʩ_\3Ȇ]Υ+5d.]hc)g'!ZR#H6JW"L{enԓ:Xȕd&2̬k>'Co '3Ukc+ F/Oa~k>K, Wɱ}Fjۆ]MR)y{SŹ򺇊cj̈|NѰ%/Ţf9 eqO ?W1zMy a)bAF/2Xb|Rye"G|B JdDw{ "CO&\jL<R[=ӻr8h/#>AU| |^6\gd=FR.DgT:zMtbӑ" Ke=O"X[lVxbOn-\Qw6C4Ògٿh4ܐGs+'eZr٣unbxZ͞6*&5h4_kTX*th_R4wg$I Zga.fQ/WFjåZ$"6V Ǹ!{]o[M:poJh|y/Ӳ#q2,ɞHy62D?$ 2t}5IT@=^a^ӑs>.ʜJ;Qm`/"C2L43uS>0 (kxCkSJܚkgE1 0Iη; $Yeg O*zkJ1iGW!8 $pqsy͚\wZ8ofKhy,l'GXt0nH:6WMz_ OQ6 ϭܧM\Ňu{*ۣOmJDT!߸|)؂!ty|d{۷a4/*Ӆk-9f҆)xNu3l17UDuW [!Q2~썘MixGq[dK`)3~`Qڞ4vX٫죎حi2F~*PB bD,3P%Y37Ȼ.elhu`R8{RiEt_XGmL.X嘏Bo@B|c:WXd*:=o/覌2`OĬM'>kQXMҩBNNe3 9B/M#*8//Y@9mjpSSZH?X\oXmqPɳau{e͢j9E~q&P3&FPfDcW40ݛ_ME%6 \$KO ˳[2Z ۜӈh@;rΛn{7=2JL;i35zϯ뎙R8zdS.D黅h*Ms0')(Eڅ/ :{6ص}gڷtw4lQ|hzɠ\HBMb &6nXf4 } r&a7 a]@[3ۿpY5[Nʢfao&; O;*PD;¸TI{uwpS֯pJ&}rǰ[񦉠j/cٸ;.W!ٸ|ڢ#jɿ;чVxۅ_v" @&B|mvvoV{`%NB)\.Լ4߿q]m#PLl>B9]؈%[Ԇ<:~a[?8wWTK v_f-U`س=wGniF|@,癱a# 9'_a!ٌ.Q Y6u0hmL]6>  T&aٖPXf\y-@.ޖq1O}J9J$=l'SG<360NY|[k$EJ%aEDg(]V\{?z<:c .)1Q5=<~].}̐ЧfCiAga#^NS}?8YCj1IkZ~{b F/k-3W^wΤʢ $q%5JD,(+0,yJE궣`94D4 sԧ]l"@-RUMEj[ &L{vT'{⪜-, lgm̻;tT`1"?}^ēY@{٫NN ,#:ӷATc1\F(} ||D=:V%%@ZGyi7Yw}Im#ʋ۞o9C3̣],~OgۧF?G.Y)s3L 2/YOKB-LF+(fU(Ci\1K*f4'@Hfo7wH"=.May$7^Y*Y\lqi1)yK #O!i|"zLLY5JӾLeޘ 38v$>Cfq #'=`3TʯWހVLߖv,ZbA"AױJqtVyesT_tqx >׊RP?Lci<ǚL22%)Gc D XSя˖Я.Ρ.GDh 8rLU2t$dank'%"3w1%2~Hjt$CG7eyk9p m'gֆIˑ|c(rE=7ia@oP]CڣtYtEA-RS?,uf!Z W:Hr/b*9hӐ~lah+ل)^{yk)lWcy9$Ud@~J*zmٖt>&|[TЏB4Zdp' IlKl;Q& p:KdHjb5cli2| 77ƛjQPZ4z 7ѭ[۹^S$'QkbО* (3;hZ*1^*3ǒBT$] @o;)3Z ˣ(OeEkc_hW?z $c6ژO ,D_n=-Z)EF'+E^-Rϱ(} Fl/bkh;K]2ΪAcs_%iXBpĸT8 r?kKi:ޙ?Kxrr(`>!748dW`!-?%0`vItͻx{Tn{ c]\`sA_+3k"SMz El \5;,03''H4([0Ի:fW !pM_t;!ݸĜ ppbw ERogPm2> 5wFXVX246:k;y! ZG-MB;οUt=IJNS^`su 4DoY~kl*-={XPBb)|;.߅sE9Xt?ʢԠgt3hjQ}1 ją<ȣ 4RӅtW7Bj'^c .oX;rR%L; GDv=yxצ1 lb3Yo?(|*Z~䪈VT -1Yߊ wE(9.MU9+ܓa0,B] ?s_ ?~@EU` m_ hVZ}uMATGӻz.ϐmbSUIȩMx %Ų@=2e{v< vLIo7a43#hG2Q_~KOT晕< ErN^07xfy!&L#hW.X"Ss+@w YP[A?M=/HL&7ㆍO]r=G R||\ (g۶-@ ̕ԀcEBB3XK Ӗ skttM(rj%R֠!pmBʸ7IcWdbA9~/0BX}Q& \U}[EJ[?l(!\fkD`Ϛ%92TH,ڡy(ʣatS|'?ٶut>j qccO\CM\Q(˵Q ₀\ ynEZ_ %$V7VlJD]9*wrְDZ>UB!^pr*5 J;d-fRA/6YVީsIk"=&eІ2pW;ԃdS Kg4 zoQ/Ń@Lu^WhfyӞ @╢ 因{D N s#6\/5v R&3%Em$RbYL?1ILu-YRD&+guuf+V!M-+OkAs{Hk{cb y1T帪n |s;}/6Oj6ӕm" !ah  kR58]5=l$)dΗUS+ OcZFN~gX'i aҹ]nA޳o$Pv\Aq }[ d `~5wC5sʤi7U dmj4Hn:'HQ[vo[?y9au*U$4 V07?5s 4V ]p)DBŔ ~y0[C+nV&} P pX9sFbwO;@0EB&n[bVNC~DH$ⅎh!}@jtIsAX3/.\E@IdžLLSa |PɓLa.D^SWFTxH ^FpSS)+{^pSk% w7 mI|kc5MCؠ TtotBy 6*qyŜQw~h"Ah:)IWTF2$LK DǏޟ*mBˢ*ϵ)˘?ބysS7UNifa$ |⊑τ!4*B'=_;/4+2u>J"n7ӤSZCN,jPH' ?6ffy<'Hl+ie+k"?;1G Ɨk^a{dmʈFͱXwb1奭JmF:3]?W!7):~."3LXwnIp "pIz]!)H0tNYȆc:µSb[ 5-Kϝl}O:٥wb= k=Pd2Chֈnѱ>ףMz}G;g[Y|g-ǝiވA-ǩgx-]|sWՌSCȱC{E$;.ゑʷ+?\,_e#=s(w=/S ®JȅJh5^#V6<i~[Ih-7˸D"k$e. g.s[\e=|.kABvGdhAԏi?TN  ?_,> `ЄuZYz s+2;OSf{/i~/W{M*^at3&\MtcE@ ^4Q*Bz?5 A87cD4#63gN-{f&wngp8/ V c҄0! 6 1J(\nu&KY#/);NWC M{0ȣ ` (Ew6wV}_H`@2-A'V<+eFWK:٪:W't}JskfUT ~vw̶ԩfL0*0.V_$9fJyb% v>{QέxISU5&F_}DL!5qtX\q`C0"+'=,?6XiMN4r$ }v3TӔC.2|7?3ȱ6ϣ& 7q hZ.J\8ʱyJ7䫲&Ư K)}ZG5-\.s|zZٯȱv'1}K5,Ie勇֤ sQ#K*9;ת"p!徙p}axF+CGaZDѹ? MC(v!υZ_U}Qg=[2S<"s.X> 7-ܹVg&eB4;Bgį2v_ fM˄a3κqPmµ1(tg8ex?[bOӄ^3w(˖ Z+v7;6'TQd孢)O8P~J<g'(+‰s 8hw  De5E[xuSsʂv=22+b 6kv>TH3/TM&\[l3gXm Y:Ѥix 4_F0] Ї&4^{$6(=YԈh->0Y)J®'R74QFAH*ggk*\=fȇBtٵ  !# qE0G]V0zjf̽e(2U3(.&[QS kV`ڰY">q7YmͩmvCc}AR}D_g!I|ZxO̾ě ӟHX_"NSlAw|uY,T"1 D!߿*2^^žoP Ƒzrqp;AoK?(ZiW͑=1+ }?Mtil_įgsŋOJX'çfrv˲@QPm.\S"%z`%|,^U\T X[՚M[& dž(Yߎ~bA7o7c 'JpE·EK ȟť7 qhe0 A͠mɷ"[uwQ^PbLbڢh tVvj:!^ڿrlgT϶b?5j+gٝ\_TeiE!f~]@0QFySoBy&hTlp_TWI!Gw{Gё9Gxc6,З3•4Ա(^[vEktzikWˬE.^dlZdiԮMP4O*[_Qb9o]ot i|UJkFkNf"p C"wHb} P+A I+{w^1nc8>piƜyܸAr >Z1^Yv8"Q@ALq~[#Y`3%%kM7û;-'v?&#usSmdȑ̸..GWK.р^+w%+ܖ7WC=Sy{#E;gAbV ?Fߌ.wBK8ePHz={2 F1jpx*9Ü U4uЦhө๿hJ&䤶K!; e4XpN>41!ԔaQWnQ^,oUWܷ G'8-SM}XpC'XYMM^\'SzfvN`-|j8Imi3bgIve7"+m U#) |d2bL=HI Bd/R T*% ;BbDk@>y[׵dԶY-wwh>(NT-U$ߵ(\ʚ:n27PDgt+ )X?݄=OƌytBޯ\/=raDe+x;osj3-P8XO]*rYS6QU&~@eeaL 闗:ᩀ)7Y]dp.t4P (J,b^Jݰ+qhC֑'%%"p,)8B̤RwI̓\_Ğ^Tl8D b ᤆ`? Ԕ۶Ԧu!NHY^3#gyfm'`w)@7rѰrI"h:XbҡL;*6ts6zǁO!H[@qɇLJmu8оS$ jv67Ȼcru(1zƀ9_9=@<;/79{H$w,uՖ _G5p*դm7#; jU(Q֑{]LD9&V ' ibYG +NKG0J|BGUn`ʾN>c٭k! zbV|'K[[518fv޷W#_{1H3|Fe"m_C b],Utsǩs6_4!6!HPRKRW!맿o3 XnV$8Ce{{-iՐ_;I Ӯ|&X Fw(UH98OGMHHwS'KQ)} 35Vpp5[Y,%7w(DhQ~33H7L$hAU%&` Ttl׃oK Ѕ[|@4.5Dp32J ?}7ߎ*LE;0Xc, _ t:acn/h 'ȯqcl\:džetŚ k )z+/~ds,| g6M:T5M@LBXb:BTj' V]fJϜ&0,I1Rϑ! ƶd6@LȋH[,<gw2:(߻3A%jcd|b]Yq9́ee$Pk&G6z@=b}j_k'J+@V,+h$ x@uj)3ax;}[ ߌ IOla:l9ENä`ĵ)n)1tݲC'3V:ZZSK6rDa;@"qo=u,Y}+xf[!^U9_g٫IZ'()+fC ΐUb6 ܀ydGD, R, x΁vSj1 Iho.m+aT.~VThM€9E3W|shsG:@KkL(l]O3ap_tU/S/1J@ዴt !  `^JaIxr㩦HG`jbr.s\Txa~fh)j"8`o24쵤q#luP+[1 أM+KP6Ay;)B$ '\Mڡ_BqH _IHIi{~drU}Ԛ 8OtB(DJű;C/P\*<;eR+pK4zw, aŒR 7J ,Z|r*ÐY\jBқR7fA+AJ+GNY1*P`ǾdY@1yI[nҵ8#O[ a!idpTݜDHΑ3WbuxHBܢ%pxN4-DO?}WL1.><_L~+&JY+]M $_ch{c)W苲vjEg} Vo)LoLP条\&s1EuFE`# i!;a|7>KCT$}J} ` -GvQ1JČNHVIaTbU~nT/7Ę8ݼ4a4Vz7nҹ(OnK@ [Z1_ -p&jTA**]$+t0|3Ӄ R1CArceVzjl78/J/yd-hJG![lkh]Cg}xgړV*0ߒ c/|x6`r;SMԅg>,mb61{`NEjM)%uҭpQI? jy1smٜã |<8pV\ PӀo+8G<~H>;ط2; ^Ğ#}E={<ʤKf[wUYHv_%GwK[B=xdm#ƺ?zVgfX<|S⫸r0M;+@( c:,c&'x.OS1 m]35$C_Zͣǫdh>fZ1J1J,'DX nup<`<0XkdӿecDXE؎QxyY|+-.ݍ!'a7HHt%Q[yݍ&m7Z:rP3[m˿#gG'N^F j *+HͿW"D~ӧC[vULy" ^e{C,ju%Bh54p~š~lՑ0nS/VY(&eXQ59ŁS?flEׄaaZY19Ȃj^^ou/EZM ESɐ@ 뜓 >VŘrYMKWm{Dwv<@c tCIE)_ד D^$̆Mp!{/AȀHSU+5ʙ HY@z}6%PA)1*gAO9H Q? B!oTj $l{scuJn$5x8Sݫ@Z%M^[Bb5($͑ >P][ؒ$|9.1tG3un2CNaz:*8i8FyJ}1C*'KK0i5Ac.Դ![E>q}J=Qմ؀H&kX;Ώ!# t2,DH&1Y%f __cZ_Y`J@$#\LiO&kzX-K[R#bd~H. N g/4F]/@?⅄3Kerpq5:q"kּYFj" ESw4' Ac6#Ѡz2N tg(F:Q ,ylcy*&_Ve׺sJV~"ч:e|QA&yy/OvQ2rBUdب= s.|MU,PiD3{hcVgly9荏`~3G-Nk3x=P~^/:C{"{)[.1 ChjH t$W_vq=(S 5NŎl74zm~ܭ-ͳQf7F52]G'͖ +Eju5T$ïZWc0^&iPO`sa"!H~$ZZ\@VD|'^S'c;#v`0 b5,ʛQ`cx ĴϱKW4D5txܞ5NLAn_'F|Jv]͋:1I+/=3ɭ79r.(ҹsCUWe;t4`\֌~B;Cwg0xC w|ל 7-YΒ{{x8.˝r(4_7< &S,i,l :|\#uһhj3YE"@-\11G#*#Yog Fk,)SYvz1nuIm`r3! ۄwa~xD/-0=);go1#lުZu(En5Xmb b_=Kd}oO?ju'g7MjCE~Gye2 ES-ӂ=  ΧGYo~@yqmfՋmmua:9KTUeQkKDԪ)aaAQmD2kl=~7 k6z '$M/u١/k)" uR(#fb_]zd\Y n^90Jnvf9qֺU:=٭]H9B"󴭷bR TB:bku M&z\q@X2ރp f|2Uc^T?,妘4ѕꢑ-,;&ˊ:ߐڑХXb莔B|oJؓE4nlfq öYV!O]ʘB/}C74|읿'A*PgvDݤOSl+sgLsip:'ߒ/qPZ8"%ٳN3x< i 9x4 [B\5 O*@=E>oh$KxʦOh־Atf:9?{e0bmD}Ng`E7:TAG؇e 5$viHK G}iK{93vR;p\!dv>`z&R 31i @ 7jd e "6;6ۚ?\͚I/e h_:fwG{subM̓_cܔz-lCG-/x|1|4ˀЫIx&JAo< |ݛw[ꁊѩݕE +VvwGO(wEmor#w7Z^1sLJB%ccoaPטnJan+>x:[{bA4PWz_#6=kJR5bie\!}cRtl | '\AbpjYd~~ara8ЪUlg7&8+#+mHx챈>(cb ȘzD;xN[lld/s9j@mձiP=U[WV K1x}L:czkCh|?qȧ`}ɢ0UW+0zNgSęڮ>.րQO 30F.XYh>ՔhzZ5tw #ݏцށFJYUf&WpMh`7[m!|CyBi:^gB+5#n8Zǯ|9YH=< 2ϾYhgzi{(o\7#߾V/D 02vHdɾid,4gؕ4KvSs2K.UiA~CGUmggvWOhZa <'y ><5D<8v[.-e5F[,t7&?mہ>J*J2`mH c&1+D"/P?0%a+_$'?F{>5~3Օ/BD*ݳh#Hfߤ~:MھPns\e1|vvЅ.E`rZOvnuEEWO:7WJ^,W)YJbOڱ=Vo&4mџL_ZgCA^|Ze֋r&)BsӟO^p]9&knHnx&$C,_Ն-_&ov& 7ȇ\.43lTؿډbdܬ=.b&N:܇o\/r_2|ѻ9U y(=ddt8jaSq@$9w_/U $ 4n]R^Wc8S7:P.W;;H m\;I}eK>U›Oy"5[=7Ie c֙n 0nmh}`#zـBޘN8O v#&PGYg1m=~L'7_(=bh#, @"Ͻ&ʥ mjW oeOT37Q،. jT22[ Yynys3ڢ׫vMK'T:!];kɵNacb-Z?z [2e{PR3\S"w"=PQEٔ,.P?ń_Er2-><q{4:b7ke@$!V0|#h*im-0OϺ%X)XỆr=Qo!b D UWmܨ15i3)dTERD(i/r D#BmWhfD:kM}ulz">!Km{#תRm-q~yl p@ÎpV(d m&gIȴC = AB*g#XfyD/%.fa:n- H`#KZ6%.bQXJf!h!7C|-M<}WBuvU$A*٫MQ8vbGrk~1.ŏ~g ̟=xu7+_;y Q'?&ǎh. a_EFDs E{M  '2";{DUH -7bxD8dT, YD'QW(Au?ww:F}LiF3W2ĠҸ ̽zn3aŷ}Q_BNPS&gT~fc[Eb1ͽ'"1L?SFI 21jNu,% Ӕ|t`'I.f+Lt=ơvOqr#L#HV#{ɹʇsK U`R]\~!).9@4p$Kd6 jz":zb7. >Z[CI i;T~X"_%2HXLv@W ;'2ۦs`": Ǒn얾7ukWc7Ldй)$1J-ix!Y?<\#3KPA3N契7M+yVlުѺ[{!'9K$6=2UF7>?w1{ r8 /e0Y9.1)r?vC$y].[*='K^؜li)/1V%U9ARP{X8?e {uq#:}lJZ`s0MFsVZ@y XȺ92+7mA q)Aw;zYx*jJ(E-"p}sGx@|.5{-&U yV]s䩅KT_VY0m$j_|iS5v%h"Ҕm(^Y_EQ~xmʐ - Imj>(CM4WŃFH&rpv*#%]dzp=8;n4zC~P޿QZqe4_ӆ,&86ȵ1ͨ벇6@sⓋ% N`/ȝXt: Rh/s1ƀuyu>RcBt39a_AA'#H²*y{:߈S(.EBE*P媭y͆ nhѣ&(~ާWY}3~C٣vO0*M쫓YMBvpT1ĻԻ.hf2\#doKD|?}hҫۦ.,BSLyWC^-""|^;hsww)|_05XxrĝS׶(FKv6HBnIeXiA7 ^L!eӝ̦!PWMzip+)QZ|Fq`Cqtw cݢ u!UF(i]E\(M_dIA]Ey'<*Tq"6ְN(_{Ũh˄0vJJ'm6r1MyW̕RpPP@Swuk}EBX2bJsL-2rEktk7(EUSs!\Eݛ,MyPhmi8 n^)~k )СDSlM0v@6K$"[3ڤ?ࠟ Jf\\퓿QgyT!rY@U޿? V? >(a^O!.e&?פ7P @HNⰾlX%:d>M}Wyg[Sh~)uNű HP#& [z2iWD~wlg''WBGo.0 e<ꊥBh6rn֝r߁{lb @"BRzExM1 #] W=gsa2F*DtWXDz꧟c&5C~J2'N$/Ko!s}:՜qfo__^I[ 5qrb ަ>TF 2,HSwu #Ls݁g\*U4HYS S;J[{`乍s4{ Ooݩi]ޅ)Pk K Jh&>L:&]T|Jj,|O]ݩq~!"@saSʵeV2^ȃMc:01IN[.%q,Ît1۹t5E2ut 9!^KWO8'bV#S^B"G+~6T/B;Q p]7-T(0a="-|R,̑l 46 F|;~Ѻ:LAOtoX@/C3,?i^ zVqBRFՇq{BU$`,R̈́,l.7K>[ sQ3hd3}GJt:lP_0YSITV h25{(Q8cQFf)q Zeene~Q4?Nv5UHT^F8CAi|A&/T~"L0ԂPj3oBygKo!6ҝwi=”OW<%: J)ka"ɲmJ{4-vo3Anf`$h.ueރ9h|2Ydris`nrzPQrM͛VE.ſ񛈊i`%E<զH8H#o=ӁO{==7+ϨY,CRPv(S6f ,9ȐT"=,guKo 'ᇠXb\'y NXJol}W3i*BX !W|*Yh`z!.#nd 0_n/@W@F_"p-4XV6 +ӓc1 jNW )|gC؏4>`CMV=}r#SB$T HwV11$m*v6aYJQ#5laaagJ8ԔNh4=   ~!0W rl !͉% {n`:C R#e#U Ŷ"5^@F=| (sh>܊|@wP@pV~+KL}C^,V)ֺCwmWL|i78'Z7@,EE_Yr'ClfCIgsv@<+Y\c SU7^Te:޸WSƂvh"e:zG+AD{lc;~D" 5'p.'qZqښly['|$L}fYr _m݊xǃt]=B4KO5% oΚ$w> %^|^.T\RLM`",'.%gG6jeՖ1(r#ɫ̕ҹ5o-z׋+h12/"@w+`OR@Qe%:=%35o!:!rʪàf܍;U-EOsbkpHH,w8/TqMJ t6tb9A̶qW~-d?ǜ''xflF&є,[ԟHV*4ezSK]f*9of.$SNGl'B6K;z}>UGɐ*cz&,C 'c5K.Q2lIV1aYܨ<0(›wݒr?PL}Njan/,KH@ŧ}m  8ImbSC,۳=&*G`?ZN3$c!$k6f(!lًOLك*z+ y_`g^l84^Fq|AˠY39?0](8S:kNit"l_?meq>"D-.j%l7_B7,5~پDnj]3C(0g{ɁYAN- 3-'.?(8{ \qͩVyX}xv^S朡4<|zf$N)"cBQ!C!/{eXpj t+Iy6ئ vR$S=?f`ȼ1v ɭUR^UV0q"R*JTSBj88y!Y)L͎P-WbE"=YoזbCTn1aoz%޳ q+"U]0c?C= TqB$ϱ}̛*d#CmQׄ=NC x9EzgeEԈ6r[sGLiºe8(`rfIύ oB*?*D21%}02T:Li#*z XDVO8o"z.).Q^d%gCXB9P/O'Lt ~XT1y ~Ģ,JgW:yGXܘs%ոB8"q[WvCi=6,"r}*`Y.?9PBUXe6Y$y*䅬z˝QX+po"hvTIb#e?^=C2ǷPCf7SpG[1Wuno0J8$a"2`ZE6D[=ODI^8%!f:ä>alꯆx5%olck^"G$ݙoz?_[ۄdn2"IM=󈅩^ ǭ-Bskg{WN]`eZ5Gʔ/t {дcCg·7`EFu Cs;@ISW_2TԐlGRl2k{oEf%",K[t B#@ᣁ=\EOt;.0Mf+e6Ħ :!M !l(+4]E{DK(um.]A#yHQ~U!)_i&IJ蝨jj903^&o#V1V<bWRVy 8YTԇaٗ&0yTzcxGc_)8FVˬGmɔTҦa<oAl jn\캙*T|1Aկo h>6,Bga>z¡Q>cO ;!oᙂݮ1P2B`}Y;/+f'nXg6Mϗ͵Ѯ n}3D+k - 8 iSgE` .sBDlC#pں UM6*1*3(}v"~"f ;䥍TUkIHM }|~"#?yz7:'_/LuJmkOj=d *.2l)<ȓץypfa<03KϥJuPG \2ɰbFP[`ٜ7䬛DOBR6/IQSH4(`ܖhHs<H2g9dZx<@-}>%\N'eaR 8e09Ϝrݽ(ޮ3ҧG W#;pzkZqc-9;l{lJ '7}xA>I?VDϐF| ]*dM}wZe /Ӂݣ,})CAvmݶp٠̷ME>(-Aq xN*XvBw-Y$w mnexYl fiqa8t_'Hn`C /AWyT*V 43,q[+_B j>B: ]=AD1™HA EgM!#CTP}tѨ>y§۸i ԏ }6K3mxo%<'{ic&bg"MX%jIe\>CY4م{| ?om M lwğ$a ]wɷqM\%I~Pc77|JEg@d!8:_T$/34GS v=E'r~ViL@7v_\)OW5Ti4:\ٷՌN0[}x`;+g p ıWha0w[N^\l 0ؕ94(Qc3[!D{}r䤽51-o2y;;*bknc"v(|Ρ\Ś7vZ*[@|ʘH0ss2s*ņjqA&"IT >qv^^kmZ0*5Wd\}?vmᎇBjx+DS0Բ_w-ҙfM}k<\)a-MLsX֮3iM}QX~..UTb{_QcD9U1!yv2Љ:^lX*zh Zp3MXp~qL*t|;e.B8 krh~{һ:d&rCB EF_|g5of+YfŠ~ͺil}N G}up ﮷W,ScUBa={fl ԑX:EVn@c|a gW:P y-u}ka2h`®IZ~l Bǚd=C])8ҁX|=Y;oVNFQ^K&+J5kҁKFYVEFdO" 4wNmc (Xng:WLtF- UP ǔW dkqŠQ}d$xTR)o "Ȓ;Oq݊b* 6s~5G(c%V]|V{5me*Q%[h aeV3 \$@dChGRAhQvo/$:^FC snL =́װ ;߰$GCg6<^U-秸 uC3 ~fO44EN9'UbA3:QxrrpX}Áf 9U݇yId Sj I tN`E`k)9B;(WD];ل2iGy5+Xjϵ,B*M.JzT@ȅLoq!h &X7[flAWĚcL4'fɬͪG14g%KPe`%,~ PX?.H3QUOs{ø&R2!L&!1Q֧`0).?4epb_Cd.@ȆеUV,hwPMc;>/6:]J"k^&kEg0vЖLh]n%D=᯲H^ĞH6wD7ܞ{Klk`ec6D_Rβ bbu3c3R Ir)E٥=&{,#tH={BIo=`WFDK[ "`VRl=A L܂*IS)j꫕)ɵ]p\@Gu?Ovjr7ߝ/ƶc[h_ PƯg],7\c =R0"Gw3! ^#1u2 e<:*JSlndF(:D݃^֫/RxRYsa2Gq2Q tM|.N ECxD.#ܑ4cK&73Y =&`&L39:#c7[V(.#[ sU}@]tE"JbC,l@k6$-l-[yNJ6>Mi=d_i_ݬ{ؽQ|5+"c'7# e]xD!|8_Dbb.3p>0вr{*vBo_-i FO8*;<*CE0pJPȪubRVLfHm yR3|gA-ga':|pϗl4r '@}%(KͲ^R{?jsfVPp_ s9S{cӃk/jsnN^r;s( όʲW&NSHfUt柩vAyGwJy$SXx\cc^Ly`IRtn #׎ٰ/Z0^YQ'މE28%菹:8:d@^BA>۩DsiKE{)}{wZrqF/ݝoɀFvm>ZI3\>W#mBn}~>\4.60FX)y>.014 (%LTN#r&^j*A@vxrm>VQBy$wl C> )@p8Vq#KdZ%/FN$`P"(}[AaNv O)]YQ]z$`DW 67y 0iqgRewCږ]D((=wqʚdBةg< H"А4pY_4NkzѻBh7X S)@ CeIΆڷ?08FsG$ uN o{Y/Le[%ymZKpSOp00c86t%@~Dl!e;ڔ^|o,biYUzKz1BMɊ22@ #>lg8t+O>Ц5Q&8kt1>R9YD1()@\Ձ"j=F~-s %qNq`s`9+Pf 5n>NV[GiS*/fK`bBp˒۔c;[ M1̱ }!vK>g^? +L_-0㈟㉆JM\a0ǖ 9<'@Zq->*0{c H,zy>f-mQG&wkh_@.y9Wz'n/2g$!bxE(vώ.69}t.170n$Jc?3+I ?ԯgl U󝬥M-C1SHȦcUr&y;7ptßH eo3hʆ1խSSyiEhp΂1yض ypӥr}VJn '+4Qwn]%9,Eg=}w,Q$tZN ⱎY=<47+{UX'Cf$ @kҎ?s O:ժs`5ɋdcP- UƳQ Qd1'9 9!<&p%Bnm3$MKY (kžY)Œh6szzP Lُ:: 0%..<'ܒb>F$;;6maAwGYKzQKIMW\beW̲nV+Q!@ьؿs@ުS*v |j^L{]AۃLV.︾]&UsUin@Z63q}Kza]ŀͭ1q*_s(ǣ1ASB%o<|tf=^]\p/T9;3n_jD. IH*nM[Ըm"b# Ɠd~x`kJC<۩R"}Eb׹8QH;揽_7/t`.m \%d`=l5MZ:|@orvɴQk"p d(W* L҇dzK55{k +Y+w" { ]?wX@9=lVMIuUà#=xuc'L =Eopď$%T/#zμg!(䒖%?kd,m83ZVj9=X#RzJ/Qbbu7GNju0,O{oB=7=dmXŌk+ֶkhre]ؠ ڔHWnPpzҏCa#Iǘc `@ +yz~\;\?3\K͗%i@ʗ]}s`߈"uqԑZR 蜁#O4 vC<ٰ7KHflko䙠cBD7ˎ엜_5k| ,Wq]EJETʿ|TmOJtvyk!q||w'0mi~GD\{p'!yc\xR̯n9'S!loAma[-޸!fY}ٚ,{   Е `_cZЄwXA!f@'wdi[]gʤ()Ny@CYhy5Q#x3TN>kݾHfV\,ardѮظJ5ӼEk7}ȝ?wYd1 ]9hB%V@'ۂ *nJ%ZMe% 9=wNf oCZ+T=;Aڡ` 1 7Ⴁnsܞoxt. Kݺ ƭECioS/t\[!~*Hw7VJwGE)1M`}Ks2H_*Z^enMg'{:y ii./J4,U ,KYCλjtkݨ.i@ژZw&x2UxC 7oHv*엕ΓRW' -T&q/ª jTR+P%G)&OY;R;"֋#4p<4$O_z䦊\(ctn}(R+37vhqM6K?<>aߍZMmP=K"Ŗ %I!gB U;CNQm"LN_Ϩ;AVu#M.@SyĪ`1Ѭ~+ESeP~->LC0y=87LJWÝ S.NgZS{ͫw9'Gk㳍T6 ?WH!L=!t:uQۓL"lq"= Va{4*0- ≣ mFqPAǤiъ7+:CᇱsmrI9v_7,)9J^Ԍ71u닷US585< z Ik?\l8nPj 1g4+EW;oFgֳ|WFBjR'R~J8;ءΧ( kQ[K|qY$B:jV"r|&ӂݝpLj/‹LP}+kYXlt9M+g Sޭv-5Y񥕜%AzC9F7I̓xvK6atN <2 YYFb1V;Ǹ)sn1,Ap-ϜKSf¡y\)HE='[=gQizE-zs!xs2Tc4ߎf{4o6їHH E?&G" 0nj/:esXN5_۸G4,ͱȊL7|R6 P"u~&òY򈎌_60 ̰ԡ=wM"[ȓ0?R#<7 [;;) zڽd`h7Y'vőQѽߕ`,qLftH*+$wQ گ#׆< r!۵Sɐْ/Y$յƁv,zd؁eC޻}}p@>XSpǓ顲ɐQϚ;'Eؕem鬀)jPBUKLitQF`$ϔ*: y R2.n)ΠIбFeɲh*jT7郗VD%ȯ "]k\v_+>}.;Il/ V*tf-K3XSP!mJ1#%꼪H"xM^T?t@/}&$S]N܈8^>ᅉ܌KM ӔǣkeBG½5xOLA0TDA/B>W4&5LS{\=}f?2JW1do-Wc _k[&YYНvVy'Ks?A RrIR3(9FqkZW416V=tD9\^b)6}Vf8DFwk%Z@#ׯٚv00~ؼcN: =mrN]%]lXD7e5!ʼn"G?Y~"J}!Y7ُ=5HL[zB&2z1 s&"hY9U%5cm=-~#]cd׮hD[L9%syussxbɐJLM*;'[TzRQ9 disڣ)a^ǵSMtq ; SDk^ ?q d.@l勱vul9Zŀ)N֫|vwgY}w9Ӓخ8!N ͠uby=cFpB{LÞf"Mjm6yoJ1)\]m\Bϕ-'! M} k}gkj.ړQ/[Q~yjtɕH4| PRPEaKRj]O Ȕ2)_3}F2ɩw HʸZ%paٽ˷rAP`R7 EzMzjJђlw61dDDmլ /E0OV SuJ$IɬU&k3ks^gBrvۤ¨#MCo )?A1UY>'Vj~[eg~+͍^pygƘ&\ PBQy7[hئ AGcOH8K.x>sfT͖Ã7SmoF7y{u7&?9d)"cla+Oɔ+ҭoHzeC7XerTfl~y$zlٗjA1p_N[qCՊu/ %czwY?G@4, qV SJɯ6CꪝiʑVQHFV J^ՙKa+P7ާNMJmMdWQT(~&0ź;wN$zay(͠ҞZm+3Աpv&[%9'u2~j"ú[-e7A_\e>"OĔ~j,cvyNuJ!42ӻӱm?X; jAYH_a3>VZln`0[x*2D:ii(y98))`\Pȴ8Y?EMED߆7e|D5Uv>%k-cr-+ϼ@ZkJP B9N>L0UL\RyNbX6Txzyv{V<x;4V+iEB8w}bX?s!Xca)F0LvvoOukyN+çL>OS$8}Xf5Ҟ(m89:'5YbJx?/ D [.NwEHu{@2zWX.̨')8U!a+%yD0.NPaE=2"x^D(FS Uz>FAb[EK۩'34qr߅C &`1kb\ag^(eMlsXVv c @GW :d?<ʷ&!:牍bX)QFAi{?;r[EB;;oM ʓB>g9tDM΋W nįFS^y.PŲ!R1~87p,:{h}x4Frea:[7ԁvofqŵ״3tp{P^ǁWXE9Ļɡ9]%{I/w@M#4 \+s$tTN;·,XnK$gh735iǔ f@|@Kβ s#2T1"_7$&xBfu^;w0)q9 ּ43 Wb`%uǓC}Ww<F:? %TjK`/qk%bdQ'!- Ԙ9"SGr.EPe lw/{ȩw^:)$IԃLuqӺT̞໨]+!Zҿ"Ԁ]VnA\Y 6:YXb`X]~Zg{o ?<YV*;2g^T^?qaXxVr EG@ẅ_(]_ 0PRt @Uy޲3+Z;Kb @6dqרNf`6!fP? ,kٔ0,ʰEsmL ȡGU86zJ;Bպ3A,XӚiP^ Rm4a0bukV 5+斱~9ZWn;;,g>u1jVaL QiLjvQQ\^"@QgX{I9R"l}/pplԵ`F@nKQꇼ#5eBgnȣ-W(dc+X)!}JigEk^(2(J=xmd>_KcpHp ;9w SǶeE+?H ОkLL)>`Ix=o `h[2I+,XmP)Wpcn0irց4H͵7 E،+Q}dY吙6 аLBCz9VrVkƶLo;}&㫷ZfgoPQm*#tcv;"GAPDStjbF6y5"6^xƶ-ʹSZblkdd_nx|2+g&vDۮKfm}  'txak'c~ޅAPMI4-P &0oi~hY]Yozԫᄚ]Sz _s]\dfcʮs ַOx ?+/[uM*i=p?`ՖL y61?ܪP>E:+eIY].'xcC 6{ʝC(^c^OH8+ csQPM2B띁aYo<6HR$?uΰ,n"aN a$BILhu @3-6qgx>v1 3[oI82m\î J_ҔʓwT-7 ^zC I?묀ٮ[], Q&j/S9Nnpp&Vi۝_ f0Cv= [{&YGA^:)suNu[S$JkjJ6\38L/ӺΚ= PXgLը G-)5K.g21(C ^F[ٟ;kiQӁ6"F%(h0=yi"iSYzh,sU+q"H 9$joM0q٫1ȟ`D?r=o0g-9 ' 0Kx4rM {MOyL@Շ'L38?V,ڦ@B!@OIKI|or{@m|\+ ?FRFBv̮F8r8 B.V󁠬ucyr[xFqV7&6Ha1 հp2F&5vqئߛN< {=U0~~drȎ-@p;JoN>,6~f"iA^IٍI4;>s_yQ^PL>U-Z !(vZux( !(plY^~n{+zޭDRV̳O[$Xirl_O/^s"f)lX8!~ :pu%z}"f+&فKیV\ Qf/j;TTG)!M`}+&,F]vwܥA,b2qkQNْW)ApX)O-Py3flJ+h`p>k+.^Uѥ XbywiwɵGpq4mi@B5\ԛceTOIX7 [1<بU&,GK x{QJ#ZW;R  18k>V32!{yx+c~w>$ԺJ ; ~ih:40G|[(pnsg96\J9 cHp X1ՏWBRj( pl&QuC/Q}=r8) 2+}϶UaT-4 =Uq Aď5=jyELea'Z WPcG֣IOӰTo]û[01d/vJu̫! %fĄ*v4^E.jF GbjA1/nF̻; g Y0]( B,PJ&ʪ PQ`,Jndfqp9U } dS<3:`ۉoi (Wڨ)] t*6h8]^M0fVOfuy䟻j U+4G79̹bo="8#(0̑.onUEV$ի8YU]'#%,?O!oxǗet*f;sS5B+ 5ӅnlV.jf"[{K5+6k5y\[S.Շj;L(LmplK!A2F_ /#6婶jOx!ߋ]]\a\ݥZeB3b3%* Wh?MUAkEMAŋo||fS!6@j,aί?v'e~3Fgȁy6>RgbB’Qb k,Z!̨C ?}GX'" QHߕݡ%}ܐWz 21젩x4>t;75/s%$F"G7U4=F;{{ py?N٭/VowE- z2'$g=92~Z+6Yk!FGMˮmCȢBcSVsߩZ Sߪ&V+lH2l+xF>R"pcRy"OR;@w$p;FͬNN@Ȧ9u7dvx%4l-wz]:XpE ,i؂ UKZ]=V0;:`t 6 Qˎ8f}b-[P(\z[*L ؍ SI]')g}#5O?iᷧ$+0W# F^P;u!=wOZ4bݔ/-쒲zHl=G;HYbt>?}lG3#jWOqvzo`hǫjůYfvO ä\T ,X*AU~OE m2:ZzC! m`t!uyRL|2l3Wd%{sagr _[k\K^} ,6F͍5Ɍ. iS-&ؿk5i[N %m~dWnu*`;ڨjsrӬ51{u]+aCBcA!|h]Mm^Vyѵt]Ue!*'uy,G@OV`Sތ1tq@>GR"8$CF4s\ 8w1 -hUN}UWiH/=ibmmpWSIh><<wX$e1h4MwH}MnuM<6X|E6k`sK3s"6B[49نeC~Q(~#J=4mDd~)KzpO HehxEZ?.様u)cq~RU!=rQ)>}0 Avεl؜Ơ(g#4O>ҰѡbA3Uc*7,f@dz$2 +J&6vI fl뷯C9evYcWkmO{\@!:B!DvBz* jBA=l[FM =FYq'6<~`mAIw 0OnWr)ۏm6y`@cLdwӦY,ڀZQ-i«g=8H/G)3V~YN;&̄D}C5 "r\,/6ʎ<=RNΡMUy4yAPa̛فuה5r"23L ajB3(hǵ Teg"(EjJT&T*AFI:&8[1g W"\<}K2|~AQ Dsm$ވ.Z.AQ&ěg^[y|Pc)^|tH])RZ!@.W撋|sW`=UcNᄫg?} OZ Uǫmb_26JE)y@3 k泝yH{3ţ%JCGMr%ڦB*/nj{mgfrxaõzS!!s#B4$rt6͞3E,Gmj0+4mgEX1϶O~I!e$k0Ti 'XuQ+=ĥu˙mvAqϰl:( ";7C6鹊 SWP˿ P=aŁ`6Rv]e*xlQzuC[&]-pCF^LAQ^[eA{n2N rhByQ,_,d`r>-E(~rOnZon 20 1DA޹n" 3yFVc8b<IV3'" y["gsiO7z06̢P1t֧YMi`ND|xSQѹ^ QxT>$7\Sf&߭>m.)}ߒ^H=NJZֳ ;u&Q>\- n˓Ei&_*ZP@㋶2_;hߚ{]lB 8N 1{Uq#;SܵcS-dIk yOp*Wg L:tΒ>@M7'^UۃuKOʙȇI]> r Ɖ ^93${\,q3u8֏x 2 -gH~_-G U%3:LVj{P"%>`svIYԍKYL R^)|+Wr*xD!CVquWL&%af vV%a(-5mNQqedH%sb³X渮La$W^x,0L&Ť%pTNZE"ny"zݍ\%sn%x]tyQHasq%]|nb_ s6QɄ1Q aD@R Iuխ'>} #j ٺΊlᮄ٭R0#1bsӘvu?_+ HSOؕ#0!T;pT߄V,*~Y}oivg#FMI)&.RL.:S*8"K| ?5(f"Dfvvho[Б-jގR-NZ1 V؈b'ɱ[{ԝ@>F~獜%a5z! ߁OrI>פ>TQL\d+}8D]T-R'dL?\x-W{@w.EPO;n4爴 \CqLqwO˳]P['y=N>dV=m8,1p v#VJ=(Y?6Eu(4 ኽ5dWEY};C0ͭtkO <6ty'%2e uNa1mrUHPb" Sktr(5+6ZEG2pMVg|DE{" /47>g t'cKBM&s2)x.5'w=å.~Sj vOʬ}%?5Zqg)4'{L\G{L')K MR*y~8ZMG N$3?\:Xw%a_E(YGƴhSŬ ?#P%]o[.0E|]44w$(Esȷ*s"V[bX'Hʯ,h tPjpF17d.* .#WٿTs\]h f\` mEN6f )p$uoAdK D [ZAj~"Ի5gr.*&fRKM-E`;,4U3tk#OـkϲP5)[0HFױrv-^µhSUu o G?:8G| >erҎFϪ i<1_prB\F<[2^Xv#n2BwvWTH(] teë5]Ք{4'ٍ0ߎ-bY@}C;p% ‡$MM֫HI{?I|~|ME9W'z5&~j"igpsONɉT' PLÄv(8K^%g況REC*6? Y 8\`Թ(8  y+eaK!c+c,eF1//i96AqʡHf?odI7f_Yg=7o2 |ɥ&[2MHթ"i?%  >`q6K? $ROnqn# zr*+.hq@Wb_~ 2߂e= GXw[sQ_+)5дrDVP=w _':jT?lnUoO7-!@a59޻̣ö2řpDr_::ƃ6 &#5C)FA" ;{z_XU^K?Z 4Wqݭh,_M%XTʠotC'=wfB"d蜻ܤ; tq;_ޔ6:w8ChTj9fmuӼdV2G;%b /r*)v ޗBW2]o};tGIxC*{$L۲޸Ȭ+NJ^"NŷI)d@@]7vPE*J&zEAZ@pHfBZNAA'J:wIX9fjKS.J;V/hqW {] }!"ZaIYK|Y*G=髇QH)jsue]ia^1FQ|/_|"E}AJÆD~jbdh5~\dP)JyYV\yLJE rt§X]u*Ԃւ t'ʂo;! ISϋ,G+43g=`Lx'e$d+6{D.X`x(PടY[`:<_+~R*]OL0&iLiĬ0(ϞLr|j#Bq1$a2=|8R f]BuPjPDTLH~8CUuϺ\w %2#Gj)CeQ]V,dĐBhF@ݦIf@yYxԳFŘd,ob定4O0ԯ_*o/-+ h v)i AM{}f֛FxԻIJ!aKWsEGr?@ko);$C4iy>[0 on0∓ņ׃4\y^:%%_*免Ŵe ?ڔ2M=lܼ~o Y Ƽ$y!:$1 5)xfrN^9 t%Ȑ`.oACCsd,ٺ3|zZA 2JzЈz,*̡7 hՆ,DBď*PO6]q !ݳ_ГBM&D2T#.™-}OE*_pxb,Ѭnl)fU #mc)ɖqeMXW妇Z?.Kz}YThB r N ֙te'oTA. Fb"":?afO>*0$ys ڟWHF;~'dj+&Iz`,N4b&=C+:5q>[ ?ʉO̴^:(ֆ$|I>]n2b+"`+Ӿi3u&epTw*.]Yg37 z~8`~4&\.k2z-f-39k3Z_kZx"5%ڔm xLژ 53B!Vv-äFćq8e@ *uc+U l;/}dV?Y;D$K*Mh7E <1p^ B> ˓mhڹ 3(,+:kTWZM9,Ep[3Bw҇;! "zcHK)$&gX$-oPMI|TЖ1-_v) apFbzoiF(QeH#V"FmPg݉bI29dVDo 놰DUɾsI1\£GZ%;eTX) ǩ)摏E_F#gȈ;Y{ GQyyKʺl: s\3+vL=pD-YA.#C<4v?B|+0"_XAy@`7Y&W{a^rjWԦu v0FBnI6>k:D]Q #KREI"a͂j"Q<$<^ڶd-cX~1F:]&2lEL@!P{E㵤F&,Hqq~~ 5̳e;ÕV܇ ;6*l eJMGA(Ztk3ZARs+:T{35GoP2uEU( 5afHEUKxL3]fE*gаL*-ȕ5`la֖'ݐ{N[ݎS$ x*42:mm#ءgAϒl>_I*G*0:fJ3NX39p2#bvKT-u-,\A 4AD8̢"~?{A芣T Fo0d^M^#*>c+́KfF;nG߫9NSOQԇ??u̬roü+0xpMD.;2j0dT"~|* %+.`R%.z1r0]p7 wrɭREײԓpJ_1l\rtIǸbXGD!!*EEGk4۩yខ'?w85Yhnlf@o냁R&+ olP+Ni7^n |$D{+D3C~Q.1{,,Lo` iy ߉!.*C&RYT[̘GY\'A3rh 1!U>=> ʇf nPt[>'^wK^ HCk''d?GE)D1֜ͤZ r*L@Ӄ!{ ~C'HgGx!(Yޫrg%̛ۂwːbAHE?l 8Ƈ=Bx}փ[N$UhwBgvŨйԐ*D G/f7 5C qBi2F1 ZH-ķwZnK5?>v/5Gi#⮧[YpȪ;%dCm$䧌%9 V pwa _׫g(b) UY)jH\~Vw3 kJ(uƳc-kZh $-5j$$2fFlZ;VyGN񹉺g dpFJ]Zz:+"<S@:3X\j-j}I7b%( r0^XVd٪%:^',ܓ߲BֵUݟJ1d'yv6 W5rE;;58+1-JQA]7bk^CxZɑFSn ܴDĹH??c˵Ol{D\3/=#^7\luЦ2%3) S#VJ91hz+ 2)RSw>."xvx2Km%{-oF0T$4_@XfRv6UnB9EkE/:O)hwP½rj]f xɢXO Q-VkD #)-^m'%zۂNN/ܟԒ!.TU@'ɀu*37BR=<Ī ?h,IaCx$АM}  D')sPD0?т5J!V7h C/Lbz"žDYV,ܷIacV-!7ۤdض;m Oh$B39fPV^+}yKt#*(#dggi_؞}02JďbqעD=TZ:jahX "+7WhbBl#ncǯ^ }8y9\R2e+ 3NbpVg}£9>=HtMMMOV8#yUU2~ͷoOYPlUH)JBsgzY AEUAy_5oM $]_O݄ +Y>;'YxjZ0`rZcﹴ񗪲Dj( Cs@Q L_'+6N[ 1G>+ֿ SwTV=98 -HK^2ՑjGPn#ł@# ?wϺ|X ی WDi_XH3zu(t܈`/v47{ڊOtr.}dU0A~܃ hmPKL|gWp2uʭʈ@?+)Q5U.8E:$4TitDCÁ6joM֤7iX2(뻢 Q]E Q!v#t]FW]-P4/Γ1w :eM҆ (*Bh r+P{bWJ|+pf6yIBl%Uꢩ' 7 +AF\OL?L0NH+$3+Q p#Z-Y7~kE G#$=䴲1eэnq~Ea ؖ+xLn=l2s`œ7/x'%n3q~6)$R(LP~QsfRْT ykFo0<.J.֛ZFܲ("Ϝg)sثvl$gNLPa|Gbh6C%OfNU.{t \b^,uzwlhJ \@Wɤ9l]?R޵6POS -H,rGQJP?[xy_6⳪fGjW*^4@D1Af 5&LmyMXdмǾĄJ=:|= ]b'%S-K<(zes&WsN^i rc6!W6˳0@!pN"n=]ip@`Z*|v Z M@">8 5ҷ+M{69"]qkz 2Dcx| -m^E 3`!C >" (NEꤑ\q@?]  g9<f }Y`1@^0p#Ԝ#^gE)FU;kNA9(~a_#:a\B 5}Jp,o yEܗnB뽫tԞf'-`!=P0V3W p?~7wJ +t8" KĎpfRQQ6u Bcf(쌟-FbG00W &]=O Y2F֣sEyb6 3rg toyMF4#Sίtv76UF'/1c>Qϩ^aP-I\P#IJ2_e>pآ6~5zE^ZW a5J%<Ϲ&g>oUv̙B1Y ic(g. Mc;wi| nIEjnwe;b.M3 ;O 9GKXi3woNMyjidv-AvVY~H)z*~сYÖ9k21![!V6<8+HZXtBpzgv k~)q hCCRpFwdoCzo>ߴ_OV2S9Ŗ3@p317{ ; ZSTxf_XW:|Iw.[;fD,M*aﺸV-/`SR?KX0E|EX , :+& Po _Q7ip㔼΀SOk+V.CG ű|MR f /~8[";^S?L}iuF= I9D7V0 %j Ko/XDać.SQͱaV !\s~F\\EG+jBnfe|0۪5oݧ5X 0ȩ  50Ӆ^C. DٚV7ь-7 sں_2R9!jjciq;עfr :V݉:E#xq@ xVHK!p9"Ygٻ bBD_CfO9+kpj5{}.GU/MҪB+™=A}%&uK &R 54{$v(%9fu3kĩJ{4!joYeadmslC1 _Buu}*بABg@[bY[x{ +a0sEÁ0۹:TBU^Ns$@V~Y3Kr0oP1Mܡ (щJ34Ta U"_JU ,H/{7PP=]BO*KC:SߋjJ{K+5䛣WM슪]lnp8л FVK]kLoGR}U̼l[qMs})+]*idȷPKP'o|.NmNc_)WKzP<^x:)tG.آh%[̟Sy 6\k]Y:?7P.^+wMl퀺A㑜2; 4huT:(jJc()mA ԍntTD/sjL|ϑC^aDE8VP/3Z4y$l(TJc*v=왪 lCZ' c4qYLBZ__6:M +f3OA(d\jXO&&;]EVₙ)b1* ,<\_f=|~~Do^Fh\f.2uF=/V z'/zqPK4d¢&'zƐ6GryIt{b/ԣ& f³CWWgR0DXm*i@ߋ'LT2 Lm*i/Ͷ%T3Ɍ뉍v.UPgoK7y3xRQ1.O6Nˆ}7`S12rMޑ;MQi l6` c`wc]g Pb9ݖ$1M(*2.6 :g3g P }G7\tI=Åoֵd|)Ia 2KU̱?V B/vű ?^K O!_;g}? ~V@Ijέi>>'g@fwA͠'i Xx[ҺS]?'H7֝ؔ1?Mɔc&2ݎPږ&'žiHb=8cqp s7B4vLnBw5K޿K:GEuJu>8Hq&{V89rV]\&t"lm$` 1bG6TL(d{zd \ 3x)A|2yfHʭ5Sɞ,ZKzݛT&RX/Uf<4@`WlxxeA+PS\D2IuY#i?t=OhI۞.#ZJa<]޽2EZ5 U8@L) ¬%zB@1^Njg +f 8ݭ*YgB3̹,h hdRrޟF?&_cnih2Dt˷CN"k7x(m#_ʹP oX$Exl:WGcM|ư+N"ɗ ,,:8PbvVYDG^J3G]Xn)awHkI^N:7Nz҆(膩0{ 9kGF Cߟ *0TZ+,L6OE.U|Lr?Y`V<(BS? kL#a̗3kR[L`6A0vkȍJak y+ؾa}{UG%x#ZFZvUEђ~­ITCŕb&׿߅I7<}RnS˖&w9- I$0-b%Oƾ)تhTAZy`q_Qeq:W%]|B?'/B#YRPƍ.tŔEƔEqL[rQ}=1OGWgjP㖢Wڼ ){TE7x7jlL/AVt5ߛa`xHn,0/`WS^㯲TYB/F-EuváBkg0ۣUi}S9+wS3oD*<6i0YI[:z"M@gim'"0{gr%4Fo]_*A}9{kU=} nT>-N>`F99,(Jl]q=#|r)k$Cj@Xґ:3s>.o:0.Hñךk78 fcj? @hCI:hDGyC=mF')5tO|dZWCGZd#,Ú<ڦ"NK$nR Q] >l@ (ïV9Cܧ92gQ 8)Pf%s_' :MÅDA_J"[w9mdP!U(M`?OQ )GV1ۧfdNo5l*~E "Q,k&Nފ@O+1>N$&pԈ]yzo.\)G:\[5# rۣXԧaTMy|p S1ge0=_!4n!^A+WS=nYa8>EԸ;3땗증re湅6fӺ|5=6  :&k>_O<` Q/FǍ_2NL{}$R[c,0{\;"`sC e1J\({蝊B4FϟdtKft!Ln$.zlSsae ۗ!& &,D Ge{ʳhdŰ-N&B9ljDFF3u.,sfc$l 8حXJ=@,ISlfĮ/w'ZG ;FĜ$s殜^ p+4fp$1<صut/V5ksqTYUK27#eLq6Z-C|-ji*=E#cIP? =@ JsB3tR0hW\BRȘEK#ӰԻ J4Qԉ;1Bph|ʶ)`Q צP5_{~O_F+Xd^{ caajzqSɃ20D:l: ]iaN #sk 2 b_& 1eN*c! Xrq:l^gMudEfei~@K*REHl}?IW]_Zih5>S:917ӑVÜWTc}/TC\ԙsEhdӂ^18!)Ë,H7>M @y:Ul4 E =T@LdJCw cUO9#f0|j009[xi.G$=R~:ۧ5*@sbe.4m6y ~_y,(ʚL[Q[1>9.Sk_5y=@R+:fhI:M^hA2 幹|g6;\w0Ʀ;GB JhXOP( uJ,$K3SoTc@%HYŇ (F|5>\/&{KH'ҩYԚQ|"UZF|٠3ZVPkPL륝]Q҃ԑ30)/_ơn^7Q1Qged={Tsn}$$'8IKY u>^4kF^ Ykw(U#hdLVJbYWP.%4՗_#yRE&_1( /`X$"G8*w5&N(q_Q;]rsLll*$VDV]0)O|89*?@+ny۰kz7y,1dOg4l@yuM9򳲠,y ` 7>r&$>T \x=ѧ *uOzm_Z.U gzHf"(AA,y2*/"Ǝ5 VO5s=.iiOe.!PfB0/i 0tt,ɥ9@*^*Y0a+}I%`VNţ 4+ x>4=^ޭ FArR mN KB&j0NhrIpI5NHz ΐe-Iԟ1k3n,MTD/nLR7"b8)tu D&ʄvgyU,簢BWچ*Nr}64U=ݷ=TN][G #@\$v;vai<@8S>*?ܻΒ|nNX"~}w2-7!t[10y[:ILl?-990VnK){zEA'K3j<=7`Up0Y[>rôrIwK:o*TykEH߀dmp\d LA/Pe?e5\,¸gmrB躁]&g]l`U{DjwWkVv=)ʸАBŠ|1ޛE.S!4龀s00 tAp/WfM=4҃:qe7b+T,sdBViۘƆ-# ޏuTGtU)C#iU-fUGؔ@:qɢv*tnR'$8VҊtCT2W=yzh-&8|(c%bNG=|bv: XBVIoqDfH b2^Mup~8fcX{֗j>PoyA]m\DA*4Jt3(8vgl(?/3QQ]bb`dkj9b[mа,LgUeLz5Q^ubV*w&"ˈqZ]g)&;}[( )1]]>7)'S,%$eTk*qs\r{J7p#IFt/*#^B (lu' bX@X(Eځr1#8pZ1S~%k(=Jϵ5~99",!ߠ؝|PpSoLYi[Ca%~`*R.jLq meےuޔO9cȭ`;&AdRmʼnݑ QPgI ء vrdoRp$rf4#D WQAeN[YEQ*n DTD13s*X>Ju\_[ݠlp-*t~w ) N4r_l6;;r8AF I3S[+s~2k5`y 4^m1a٩ۗ4TTeݨъDl۔V/AFTcB*GM5%K:| .\SjjGߔMo]$|ZԄdۊ To [yQA'VUf-If24 0`keܢgTbDh6NlɯIl teQ"٥IwV^?O x@tx"k9%:R9^]a0+]51IF"Feb)ؤUKݶ,;3d̬&5\g*V>h0.rxrE,0 ^'s)9X+v<njuc $TNmkq2|Knk}I-a}ʽ0\-~% }eS=!)RM"9Qr4BnI(DC8A\ȴh34RMڒkΚwjrK42;6"z=T~7mo0a⋶-'^UHcf9*ҙSBM ø9k敇ࡥmK+rwT߾z.Ҋ%`j:\IgzW`8WP8諰vf.ᨹ nqQm$*z48&@P䢪L@I֔1G I 8 OYiό˾7@I~'W}i*ژ&-UBٛ*hWtNZoBƮ-6@I~ͱ՚qӾ2lCؿׇ ;RFB|t݉ex{_˙tczRpg.` gk JN+tʰLƷ)== F-_]MO`szŅZ\B\ybZm7#Mv^Fl?;YyR"; &0'L'XNh%ڞh%%ǴIQA/.%FA7%'r :2䳉_GC7k&ߚ]<])hUsP0<>R}=o;iw0,m Wɚ DIgF=G,NqU'7Wt"JZYVQ{Z-!)6H~}?񠴿 M|$5<).01YPQ:U{鏷_X]nTͩ*y{QIפ eǮ,/m -#ԐAJP=5sPg[ F@E!޵Jai^3Sە̊  ST"'j0!"o7=tɶcjz hv(w,rҍjr^J w|%UنQ ςQS ^yP4yyo!WUp*"&'确!2`f{k SfW9`΅Ä=Q4Rӵ2r ^5L d9oeH l4DlرBAxc-. VLp,,5@ IcxKB/oѷ|U\eZ 6, R4^HSP\f#@6\ݛ㨡媐5Cy kr!;IUmX9B_UD5Gm&ex}{jvRd%d'F=L9U%qNANGHG%]OAʔg6jGI!/Hl֝l7M]aO &F0WUc45s?ŷ U3̢ok;S2@(q*=؊rF:>xAu}[Rۗ(}}J\n̟*ޖN>5z뛊hD~]3GR Mk󷑒 kze巶Rbu9@9^j[{Q{8NDp$@ulm3<#c>W؈ - n[zT Z@3 Luf4'5r\gyEr2$Pe[_"^oU @~K)Tqu?%H)QR}rt6eʖWP)W_o}>DyMn5IoVQ^joŴtS) YAX̃MNtF$i[N ^ wlǕ 00eZy]^/=d) :\:Α1K ۦV?e#b#bD{/mbL|n3(Tq&?=o+MncoUiW\d#٢taƺ$eKɏ?CXfPVQjj̵?SeF^AKX0Si ΅G؂|x1!|&Y|3Y|ŏwk6̡TmVʶd(+LPHcr2_55)k04Uy_lpϵ,*h1oeܨwumKelY)U~ktł*/2?:@ąF}oX(_ά<) N*O:Y% E΁+qeiMjHkVۑs[r~w]D&'E"yyύ=vjQ9Ǣ`mi D͆( y]3[_VM;Hli_K CEJET|9Esy21_l:n?|Jj~f`8 kE1{?}H !d+v2&m'dD6]ۘk{۱X l-&`xBkXGYotg5ݧKD&KQgdpMOؑ[|ǠK,a76wBWKW-r/= dztID`C!S;#1ʔK>fiQz\!%č!ɻaM8ԤEZ?Ww=2jߢI=f nu!xK@ eg̀%k@RIUgHx;,tQkL$=?plmm&}v<Ej"%{n+as.@ŋN֋<|E7u>>¦EhjmA ' }Փ{u`YSvLfllT*ބ#VwänP_/R7\v8zX( Gw-P$ 0-)Yb4]ĻEn'nyy5)SxѭD&D$`Kh:{[B1}͇h6]WO!;l.^.`*rSxš7ކrR= ` $D>Q4Y`\J6}VHA^]P39C޶ur) Ήo~D*K Rw`=ԧҐW BPajU85OT !iGT{곥s<;pR:Vm2?!G8i.uUJ0Vgɠ2ݽ%Nꥎ4BlMh<4iħ^d8P_&ݑ%MgtN4U1򦅕H5$'П-4]|A$Gϰ̟LCC#1fދyĐ;8$jL_nb4OXNշֱ-5 Z&0F5>O$E-h_VtFKsu7NњmMF~d:GZ(|o--uoI-:qIj3U% '[/ks e$:}6YܑPUiѼKMWzC K6@5n}|P1Z6Ewuy 7p$zF͘@ v͋F;z1\.В,:TsG2VdIz/V+sd(rUcR#$apq<%8`[>.)+(D^599 ?@xa@=O&@sP 349* `32 DR7+:s=ryrF9C:[8=ҚoHV jw$TqOY.Q s8Pnǥ;xG5*&JȑC2zPRTҕgZ>&cD}nnF(@u~Q2Ƃ1_|HJ9h5 ¦a[,Z#.*i\xy"%!w 0=%m.4F~گ06`f6w?#1y(4OWĀ]vȗgeSloQlTڄLZk穦/\t*׌Ay|}Wx&;QI&S`kYӤ> ΑGnsX“i @iY@;V1eHQl?ffEU=0G>byHKX;y\lC.Dro,hAE~nqs^mPB[\w(.26W:)-|U3ZD$LH󼩖'sM͂V\~gY^-VDvUH+hY|vhkXpU!bO2k[D|Ɗt=ǸCx".Kd_ A'I7jW ]dLf:1"Ro:KN!oe?[FP.8~.o_\ja\`ؚpRgm 4 Mle{FL_^`v(rۘ7q H6l: ۢOZu+LУ@@4R3LXX~ ^~H)E'RcR tiVso뿾Ȃ1Nƫ>=-gc^tކYmaU0@ݸ ZI^3Ie@2$mL6D-|_<C2k`|#aSc!Qr;mXst *W3w0I8Y&!ʈ?e$IeqVd8jj 淲ZU1FVx04B´\, 8ܽ_fC-n⒥%YϱS:.f4˿0beɌob`lWu,6͇ 3JaQywjI6S+Vtt,uCYB7F_BW V+MZ>S\JgA#9R:,/\}c<`c2`j1x.^VE@$D%^3:&:zg})VՍ#ukk*VPydT.c;րcSߥ_Ur⚼;&>K-uLN9xP}MlpTRa-( 4G[.V WIP5*>tSox/ͮZ4\rcB_|61a:_Y)? pˆ"GJmì*o紋bgsx.@nFO2ima!)9Bݼ=g yu) :S_.+)SOJ ˲>EkGht@]Dr/QQj@*> Q-c1!rXr`t,bhֿnt#}h38js.Ѐ#JM~ ^9X1W91177AG)񖍠ǔV2QLF}PIG |Aj!sl%E+ a>.%+OnU]Q`!]@ğ2xu nSwF7 %F]\:cb+@sz#Or" $6͋/c\#<ʵtM4t}!<g9cȀ%l2r c6;gA?0 eTkrҾ%Y夅Bjr92>Ԃd#f3!e# $IY&cf09,bnhD:m$h X}!7sU',͡|Qnj.'qӡm;;&DZ!WwA ͩt8'{ "E*ANL)R.=sŎCF 妔[O^ˣ%[MbH?p$x͑\Z?WV3Bg5vN8T) ^xykGQ"a7 AV/>ةq%܁9H]aՆ! sV^| +NTCӬiFv"u&1u D6*}TPu&+0[g*![a8;);`W5Q$F4]*'oފnJo&8#t8H(=~] /8hm=[EQ?D Z!("8b.F-|0Ů u|FˣB.ޡTIVV,TY"E; _fW0G G@9bepMtNZВ{ږt?x9]m]=dʽ-3[| SoMO4/d@4MQ|a\- +%A"Q{)TnjO!G^w/N /enk.ݜ_غ?\x4=\m ,n_~e $*z7܂݄d!p&hE1`p P)<ғKYasi ZmC8=+Dktl.V024ɗZPxYGujwAT*JhP|oo@*똣[ 8UʺHrS9']1hJˌ9HpLBG= 9*դ+4Ýg"k ijRq"$*\8l0[g}֔R@9DLrZ0fy .|([lU@|^ `:\|Ħ f*{M|/>veoLUA/jhfg眗3h8pHJNrJJ33aYk"I:8>v@$m#.Um,+v)4kDZg#c{v1KꮒyST4_ I}tլ$D}>h0>M{ERِulY Ĕ+u)4<_di;ˁߍG8OL0zpGV?xTwG(a[^2ڛlT Y -AFrـ{539_d(V鐲o`MiAqUsES+QԱIb?0=7pKTߢw+5pI}eӡ.&8y\]nn =2]GL@LDJJ!}7w1,ڡ/W)jr8&p( 1FIh"ADn\HGwM0i sͶÔy#ɟL<ʲ`.oڅiyGp)5'4ֳƧ%ӋZ8y-Hέʣt=:AҧyP:&4a,|u]rD-!wtulϱ]U+-B7#T_iZiW%)ɎxL 9.*/wo8r.Jz%+ 3  ui<˂yBI9"mcϴ+Tۃ'ݠ+ 1UeDЁ"O}H.oZzx&i[hc'X{#@u"z[W=ҮZ-$):I7;gQ ٞʖ[72Nܗq ˰~>!_*`2<9cCa1$XڈR⮸I\CV/NJ> {̟'!s u8KXܱ?l哕=Vs Yxp2NU:"߳GIԟWKA)}s\9un9OZH6I ^ɶ`9,X%{z$9tGfoh 6_WtZ~Aثvc"T/j)JùGz8J  fzb`4MD?,^M'U,[CqH~?ӱh^ڸ)Z%Z6;G":.r?ܘ*1tAG2R; $AaFL436&#bqhi`oaa@Ž{ aE;|bzeFpU ubTg{jbR5+[[(Q`V1:Gb,rqy( 35xQJZ^V- QfvvՆ/R{ l[O Lz,+X'M)tc :E'i(` #&0+DczP4 R"]V$8e)x/{]> ! bY7n.#TTlKu8gSbz_ʼ|mC #b; 6vqej_3,=5qoInKV+32B*.ͮ[5LXѬ.^pX/MˢZm)LJoVXt<[D^(HatR?Z4(|V=|?Z Xyv8NRzr+yp5~FIJPvN!SjT`Q4x|LV<+B\#kWJ~񲖿 vQѝ,50dA3c^a鼍!}e&6 npI?}I?Fu9<'gI$b=: iSӽcFtga'=+0醚 p2D3&dx O1^6 KϞjC iX1*6au_?Z5ac΅ 5ߐnesū]e=%mF]w\Ssʴ#wF]2\8(6NѲbl֚#l2 kb61zӋvJ]= JGoG):DZI\'wۗjBwU#k݉ miRx?Q-!dLg|RbZ-?W;l; l Zl GYgcn\ڍΞI0ua]-PpinQ&92X ,u_I#%PH(Z=[cS1t϶z aj񽉁 \E*+ yPGƯ6Y62y%AɆbd Q$˲XFpfSC%K*"5Ot\x>n<7Wjp^c4k[6]q|qpW|w޴+USJ%yCxvgi^ _rhCgo"4-K`IHΥyMs=,{: /n#^Ns!?fӊȐ5 ?4XYyh%a$"ҩ3pZ%u{:(+Y dRu-'3+gOoKjERibq6^8}Qe[V1D!~{vM|«ҟ)x68.2%uL?uZ-' hٗ[pq3Z/)z`EƢH=vjn5Mg-l0I1 m2Cx?ԭְM.vL 7a!#Y t]î2큂Vqk4`K݃?L{c.]yK;Ф@` ;jXy!/],@')P-2,vuu_(=ϟcűn]' Mk'} ¶/|}&ۣF X;K,2qx[xe* vjb4/̖IK?륕 iHWo PR\PwMb[kφVN*` @~cC<#;a=г%ߖ?c'^Tm{Y˟/( l%E9Pч{j*69,J`È/Vkqiyx ooTT-TeO3L)\yO쬃kUcz!!+~-I 5"!UNXIHwZ@$w-DxMsLa5 ˻L1C]5GTC/+?䝇S%A3\Fly;E!l/>\"6k 6~釁<Uu-Ϭ\oyeKvg3d}ryasqtˀC UY3nqFJwBYӯaI[g0xKEMM9*pe=<2勭GLb%vR܌H:14ʒ<$Jy NEdy~Xeb02z2wü&4~saX߾ zm V`W-m +tGA)0y˚ U >ΰlcqPQ_/ɜOZ)ȧ9/JvnN'+zW&#KuדIm[N6ʙJS !0T5^6[Ӣ=07^@jߵc߰ T4S`3 $S>\ceс cD\l%d l}Wl˹vUnk0kz(?Ih֮gH8gUSNчvdQF/gْc'9I%rn~  V}N6.tnԆwO:i s-&b rҵ: MZ Eڑd6viFl7-j(P-SpZֲa .y;]#?zr+$QĦPE窣b"dݯsWY/j`7({׽YN N\ Cƺ8Rox>&Jeo;t%?ө(Be#cMuiZ %9S}c[A#,>Jztf$<|]8J1}J8Ow)<bf9?kjޗrpJn7RV=,k5aGỹ^]F!$9 P FHwq+ \e o MWY]<\v&K:mHwNۘoyצ1.yZ/xD_̸z8ؗx})jWim} UIzn~ݲ,H9+EEP+ ۬&33H"נq|xxsNb'ym +웙b, -<&æH&/FdZ!_}@%6:n3ECI0".M :5k>O4@; ⺕?x #+Bbڪ m8w65^G_#,ji !a$^0)X<Иvx>Ir=^3$V*mٯ"+9i@󒓐͗2JkhBsDGusBPt QʍLӮvL76NT`.N3/|7yf-w7ݚ% UD{Z?B/gl΀ԥ?$^#4V6ۖ9LHoR/PId8w-aԤGj v'FnAts~ ""GqJlF*IiFlT<m{9shA ܶ2.QL6mAVm8݊"ph݀afKogUky2 ~2GS4rz$np'@H^9޸*? Rʊ>GC?W|-|Qo&el_$ ejFN!o7 >+)8 dW hbqBAT0d/2S +?S2mcaS`R"멙ь'Ʒ"gRّ|ߺ3S3r`H`$~LbHPm!Nh`w.K+i#UFA ²*sTQ=D%dspGxbOG!guDc&c1przwk+@Hhb:>Ii_CtRr׉?ㇰ =ZOF`ْpCvH=,o$͖F*C|<ٮ;DD۟ST'{;[#D~<\E3Wh%+0Kg6GM`dCTutx>œzl:]-wrqxܷT?\EK8@gR)[=56b(2DÏqAGC.grZn#xW0m>0~!>q/YʬUĘkN"Gt".EWu}zpI\ӋQe_l7A 9} $6ŗy!uyBСwxV\k'/ȵB5Y>.Y%ٟokC^|s̻Z`iPK:\w:f[n,?S1m#̈́1K顠_X,&yccGmpcK¡|QU`kJכQPm^q<ٌRCXBvĜvFx၇NVi6q߇# `^b518nj{ hVo2S@;K51H&_H 2wVOX>W=Vbc0 LG$̕8ɚf`X@32}oვb̕kc ({@6]^$/ -@ waKl9MſKLRZْxw%+\[v:ąHv]uH֜4b.i45Q^a2/ąn2hX:Ȱn;?h6l}|B(F+/;6*/$gw ~r8#S =D &k{N*tK[K1cmUIc+Li'@}07hț\1%fiv[5d#z+UҚ=Ԭ%߇hޝ?1p"BD@U_+"lNC 1#tjɩէ^dK=*j187`?1hC8 +?ïq>O9XrϚC*=^sq)W 8<ZHrRBq<X/XBko lZRա]ʪt [zռꗣdiBЉDܼ@&F+M++ 0hwKgvMN}ۈNmj" Ȟa!h!*vw%3{*Z/`9)ˀ|8$Rf·\9ѨCd6_ġ- dqcYͪ+uu=R.+_}GQkz3p$uNl x#ujj0.rZf?wV|?S|MfK~fa.;r?,a75ۇIN5x+qªy2Zuh~qDŽЭ8 )f;* qid:itixK.X\Od[k(ಟDG2M%?|Hq~ķfne8z͊[AoƇ/H58xp"itrȑzU`C_߸x -Whڐ.orSڗ^EĄŻa8$lI-T(NUj~f :{9gKY3-%Qaa7Isaoj,5@A_8g#(c5ߝkX>>CvMG"[! dYa5 Q :ה\zd&(ss?Etk){sl_gx|&/ )3G1&RYƒh|ou j(LJMX5l~⫏X3ķ`PpK.#J[7k1w "]ifrD8Ss`6m?ƪ H֛nP8]TY nV6=с0^B+ $ۢU}C'i~0PA_hWKZk{=9R CEy+~vF$2~?[:a`TLaqW~Mm.U |1Z4P %wH4M{Rx(̅X3DEӕE=Va @:N TI QYٮ!dlD/<٫p a<^h۩Ա\?˥v9kEL\b_Mϵv}#'s-gSyւ¥D #GQ3r QE끇*i\P˖GаGYαy3G5 ++֎0$"|;1yTc/ޙ8)M%s1Y2 rvǠ-1(Ͼ!WeB߬u](6]D5? "^*61b\̢>"{NO`UDҞUSԥMY1j,<+:]+ ira1jlfzvsZ#5N=@Ǜ5bn}5@U:4Rf{[mVo+zi 98et2ViVcVF.t`Y@Sܹu>iƀK $K<*mXƒǰ2zIr I ~h' zcww~l2%Y`̾J&gm峸g:#8++]C/2Δgފ }d0#G+}&ءL z5Yݞ1blw#ξBku Tˏ(4AN]ucp\3'+{ogede!D +%DW`PV`E';!t3[ZPWӿvFʘ:) sUxa9Oͫl?Ϭ|X!.4l,}\.鄙k#(EveQGR q3ǁjs 잼[v8ZlGMMȚ2h%hɶ@<2P 轧 {aysNMZ4:l0hb7}\MXߪA G+%6C*8)ZlBo-j/,b"v aL2L.?/p 6T< /D!\4&$C~.ҙw˷&E}vNnl<.]@N'<B4dR <郉O2Ư+^(7ݬ%$=n;[bQ4jiBhK 1Lb5g[-teC}B̥{E2Cg8+`6pw[J]=-'3)=oBn0ݢw0Jjyfj=V1T"0/6{vYϠǖ ߕ%?~)#;}<@xt {237~9~a?jÎ5pn(.rv`QT' 7o!U2ĞQm?AD0}U/f:禳?"j4q%,8艕&T;C8QL)1Ub@ E5TyŁ`CǏ6OVm쁛~[ e(xHeԉvf45MٞIjl* {tlsv8ԛmǒi>OVr}oOUbF8=K"wMY _:W5^N3.Yʷ}\bJ.-ƀ67Qk:"q4̙8|wVCp.ȃrMgaוMq/X˙W ,p|8C1Y?qտ]32b+$`!!d26s|̕7|ɝb\G,-B37Ǽj01;Ķ\,RevuOn+ p4'[hx&ja8"PS$e7FOQ= ہ'[tշ +ǝBsÓ-ݯ/  h~fD04. O+voR8|Uvֻ,h;^S@=%ob͵H7xvym?[0g^@숸m7vHr HFK(~Э7ëU1VM\KH;&dۅe\cCn|OZ/zFL X@+ډ(~71+ϑ!+7rkbóL1B,Suj +Q%->!)'8{({SntFyoWBpW "̖!;v3Y$x)xěff)? Q`Lr:{BO wR@2al9L+(:nMPfƀ(Ž,P=;'`]YxG9ZK'k gVk=D%VA XHUv jQ+-rsa !IcFz^㿧Mp woj4^R0(b>ⲡ-(l<>2w\  le>p#(j%UE,.8GhBZOgHFI- Erő#-E /5?-M-{i}G('3Hf,u|g\0qP+VI6܌0Pd>3!K5~HO 9b(%CˡaF(hlpm [头()⯀J=W1;Ћˤ0BB!EhboJL#d~EwzyBbuJS^YOZܰB̟}^LJNvD=Y}0XmwW̊ox~Stg%K{??S>u\\i*g\_w$՝ D9x\}92K'E(aʼnCew2MLXLb:8uGkfqOe )ԗ6~!vҹ  -4wW86˾qGc-!,#ݬA*h{1Bau㽴UŮ 괊}7nA/)jf#U ܋IM#t'a:-/r;Ao3AaR!7E7vME 6aBk[BkTv%I) 3 ~ue/.=npkx4-[ iG|SmN E M4x${i S )Y0/H҇E@B'q*D(*֗'a4ޅyB4)COrыU(h f;R`VBmo²GE|fnYnvkUwp8T'Hx`QΓ릎H|iQ׸v/M6PxRRNc[av\ ߘj$ap¦ ]7,#Wb[xd+6Vyv11iJ!,? ,,-aʈ\;F$$Ƭ*Y}tk-ms1.͟o6diۏY_a$6޺zA"ПФ=gC@U{4-vNL\4ħɄY}ũ@(nBC&W9|+p0.8~ ]jmIN ར80#)eުVE.b6U9L8a7z .j+eWf${oMKO2̅;ּ#1,[utY9_R j Lhs ErTOlf!P(/=b2KR(NiR^ℑH/]EVA\8r:!ƣYݨ</ pJ0ԱO7wa*5&4aQS0\n`߱N`!|8vVT6usXFjR9(op(J5bs\?xvznG8;}ҝQ?5rBB~e Hw{ 2b5Nfw2¡가\8:BBh }30dP)߮yAG<9CF/Y*Q;^ rLJ c-m6ǗLA)0_ȯk5Y>MXC)S&ZO"gR|Y9Eɋv{Y% ^Ql!uv[<4}f_GG=V'`&.9Ͻ:u]aJ1̜Ao9SʹևU"faЋܟIdCsF{V|D%UI?u9ʝǕxa#!{;K{ѥ=']UdEN[:]/aIUazi(91j]D2snn>2-te1EĚ bьѱ=H)HAM'gD\ϫ+ ږBW[W|L&2iQXMy~0C2) a0ocDɊ GsMI_,zCž?-`,zR_Zg:]$U%j3aCB @u5ӒDv} \t_qՔ+y134.:1Nư:\[ CoCZB )BHm]|YWZX4`x51n4{h1󘂨EaW?%sH]Xc PoԳ e[9rRNӨ?J%.X 1,F)0X7񐊉[zkæ>/$qo4SSkBQO`tD¨?3-[#pt>E)ڼ`%N@s WS{huŬ( +#@< jyjp~Ǹ,`PXR[%Vou`8XfgS \˺D4F0,v~wWc=\Zŷ`2 V}(1, 6>7n2iSAKI1~=r揌ooDd$Ktm;/>i _Bf`f+ %mxfY&F`wHFkeH%-|v^K{R&wp 8ER"۷ ?a+[$ɷ[:Ap_#?)( Ҡ$ywۭL nat|p%8 i:8=C.>Ѫ#Y(45zVJ6[{уuZ/yʛgw=V ln$3wMT0 ͱ ځIUPg> h~c-(:/sp1⺜5uu8FShf0Dayz`Wv8}-wC F q𻓖xqʹ.@ 4q3 wJ,8gr׻,j0 :,)󙦚_f/5U fuN(I+TS|qgcD(8hk'IK,:_JOxu:JbT%|\*QY Ewm)OEU+z]Y[&/;lk0 ȐƶVP:"|[$lr3cnO5}0ZK-0^  J&!]Q”n]ۚ@Yn%M3+Z r7w179F>e͍j1uh'.,.\/ 沟Կd?hA [,k~͊v&E 7 \|e(6;o IhF^"N5OԚq'mr{,88 uѾQ]+ra>9dv.mdg଍0㿲}yd3Y1*;S2WkHr0]Tq n2<"Pg c4J76lAxAs/RtZ /C1<.{P(bpJTc퀈&}G긂đ~$=V-^ijf,EtQ1cԚI]Q Yeh*&%)BVͣ!rjN>8Dǟ6>[h7 ڲGֶ_Cб/}HzD^137 !&> QhcͿ;tu;7_o\#GfLq{=bZ&/RY|ٍk¦f0?s2]}v F!L4#"چΊ8Uo.J ,^tԝP{ʗA2&J+ѦvҼta?ZF2LCRd"2*WR_;v:쇩 U!Ǔ:4 - %]%P@K 0"V|K eB=uj2/p6w1/{}1b{kƒgSo V,C jGfOJJI'ltsXDﯴ[ ܿ,GRt b|:cn^"z¹Y}?a˳JśEcQA^v ux}QB$'pj&r-*y+%VMq(a fXҝ$R0B{ #nCߣ^PJ?z:SkQd5/Y,6lU'1$a8'7? l6oĬ+P_paI6c8=SRȠ5otO8-|bZ(xcJwR>_̊(<#8VW Qqt|Ef)u^Nb=x]#/ ψmTmqR9%d"O?f =~eYO>= ~LsmIX4Q+.1/-C9.9hD4B`)P]6o&Y &u.+d_HY`=9[?b+%xttחE.~ΧtkuuE٭˝_]&2]9Az pߦPԢ z~S gͅ'(ml CD=ė`i2|嚠Ѣ95>ӲcČHgSr*BM@IOYw8J|?c$LG#Vq1bڜs?>lք<*?>E`TdTǬjUg|A'DMCey-/"hو[(?LLx'39ϫ5rz%xw72F.c,BDuj ] +%梑~ *e0}v (`3ov)%L89:./3D[$u J_ ?F7>O"ݏG4T vF2&u0m3\uYJeu߄:8 XW'!p3?i[dc.|TM^5{`8nmSvǶkPlx s=B34OU! woÞLKQP}TbLyxy+D__O{?{PBM zqJOE7;4UYԾ?HUi민Jj]ZQ--}Q Rzc */x_B5(K' V^ 2=|Sr[Oz[?uʕG>IWzI?;**p;1Cn -4I3H0+f 3QVC%k~ [-srd-b´z~^Jv1w׎sx$G W̅o-8Ƹ2$*Tg}5`t4Jp>+նVkgG.MOzhI2mb"??q#l _bJH$t+Mk $:3*{}\]YAȽj.XÅ2Vw#ک1 wјy\Q1K:7@LӲŒ 0qرg\ة_獆q틣w۾LA4[U{J2--ĀWߊ7t/ɛ%?&MWw(\M9̇yFu#yh7`mIm<G~ʉ1־$ 莇! !^6;ZžF+l`a+:/± Ѐjm0\ibJhor?rVFyaTh۷x:Fxn>ʆt癏MQBjS[RtM 0m]5 9IKWҙc >MgK[u{ߗ&9z۾* ^x2\eEXt_meRl/yA "E@!Muj$+C/X_ (T.-Վ q Ad4W;W l^yȝYLM eYfOA8;1ZlC8sՆV.OD(y-HDZHK`X#ha v?ZeRԕv5@ z-1*Xu[. 5l]YߎՏfyΜN4@8b.l`#"RmR99ZF3}˓ы':c_Zu \eBfI<ˌcUmމ ~=k~xF~sE]$7M|^;龙xS`k/YO)hHvF]sU77OJ=وP9-#$2A9:w;ȓWh:.%=v;k=JI;oYVP LBi2Ve@̌ 'fv (#Dd [4jK"gC|c}7߆+(#|Eu DeoRP~ncCwr}Tg(0*fq6WrPLP }(.@ת'nІk;Rti7X=Ŝw4Q ESb^˦e[,b 5R0[o .H.lqk0/0zX8?F- `ۮfP;CqK[6Ѷh~ek$'Ryv8zzrw7s^"hh:77+C$LC wom9 DI`<^ i L?/M![g?9}: %/}zG$FE>d6@=U@z\z`fOPKނ3vL̪hq]C ]nP,-^0ԍbKcuw Ccf^gM3gCTQ4m2;$iL/Y ]dzh[gxR:` ep?"M޲H+Em5Q~qh!+Za"ee6 k2/kH(X%Isúb}e2JD±kK Yxy9{+a,6>} k6ۃorմg穕m.ߔ[w,W fW9 AóH @Af#'e/%%'ȇw1i63dZ;Gfso:w!?IėefL~t$b<Џ RsbC>+Dk 0[\BlfjP#BHmS$%OLw 4&@W >^-j/nYBZ=]蜣>l*0=k Rs<-Gd jA %Oq  x,59(+8UG?6^Y"/;91^bIJ lZdӃ2Mf9cŢEcpAD˟F#hL03 e1v- ٳn OIlv0$+ʺ/FۧO<䵹~|#<~0]{Z\gZ5Q*d<3g,2gǜY_|:&v,^\򟹑q_%d5FRy(IfK[ '.R ӏкy9-y8ql>P]pX3D^ܲZOLzJp28UP !C݆[f9'C(vcjxXY }K¼jŨPFS~lf8Cf$Dj6{3$ +%6>x+L+& #ha즘a}lkU:Zny>+6kT|M ~\/Z%]y>s#2(ABjܼ9c`w ~~[((ûB8j[BSGIW3〔Ǒ8o#?ʕ ]if1GqEgvse`3YՑ7 D^ו4;z2Uآc$CpNĝQ (I|W$/C) A ת?w;>mldFodxuTu#UUa`!=NݓyA9b}2XLmqLUXh8Pbwn~hס&# wiR>𢾖*mg({Y!!&S#ܖO"%,\Q#gуMسs )aV ״` k4TkV:)K; ;NkqϜoa9 wZ/W5X.HHԁO)5=) ]F*wD(ܢPtA3qDbJޛT'a-g]yoY$! >3 A0+di)pbA'zٓX`>]hpR2 z(.̓Avj,l+RCUQ)Ts/%sE೐|< H}0@ouvqĆ ׏tPmY,ɐG u"}9q2q\^kP駨PZ? (7SE՞Y1^)IE:V k?Kjΰ*og ~\ȷQ Гq[ܒ9čF~-X|"seٴ6sdL'k#D/H-Hq  5r"$ɿOzH/{c`7'Mط.PJO-M=R"{r?kU(iRd/1;"#p!kCHZ= ]n4uߌ,߻fSHMy bU!=5bur$V'cHyQX-\:@o;N#~XRǖ!ࢲ mW]iq|ve#a`!5%&A! -zӨur/lW}ӰA`3\(P0n! VD{::l2_Y"'"Z[0."iBP>ƒ6_stL$DJQMQfj+H e=2heeB>UYKi(Bt- ؝ixO&=*/d5:K#7Ķ5 JYC؜,66 8S/(wx ˘f%Uaƅcys]<#X}S]N.X EG Iā+Nღ CԽqHмi(`pL(Ȣ-i kyխ4G9,m&cyVHEAb45w`TpXwƻҚ3~~et8Lk*p11'kn0bFܫXY=#Ҩ''6nZtX? mQwRvꎃ|4R,go'n/ $A-ˣ0E䬠:O koc ;єv%䡧<^א2KD% 9q/s`ohoejQoimV^ Q~ ddBS_Ǡ . >h"w9&8B?@]*BvY_dvmyc6DT,F.<Ҫ}41h<|) Ɩ0#;끝W]#dR}>P2kW8+0uŊ{ݢLDF㯋 2.qEձC+1(ЊDp20 WrML ۞ʷ}:fb6ʲ]ۯ8at'0O0hps"ٴ7v"oEv r(QީtQ9쀔W@ȲC2M`~4wӆ L\}OJ4]%b^ lJF&BrBGP~9bexa`.$UMeO㰈5"-<ɱь&$Chڕ04p҆d6>n| =mɰ,΀4`Gdc@u" rܘP=UGˢނ1nV7`#h?3+t?QDͫ*`9 ~3؁.e^cTY V=P^51QIћV!k>Xuو5pFRK\cDzW{t8 9;pN'f|DŌirS׊#2_%hJp3LʗKl8wXO𿯫ԕk(nONC<{2L =9==0\Sΰ@K<>ƲQX7{ЕUq_ϏR2K |cZ(W.~G H}_䫪VxxdY3nI0R5:s(x]D+E(͜;fr[Du$1%VYb'5zj*̶{.V "^l $RFڤ+);/AP 3;cWUKl>WG1連t4A@f^\u3PL]h>h Jb ˥kvRB2{A8M `ix~n>LՏB2{"8x;qg bnj6lP DrN  L+J$n% ̘=dz,dhls,-_U4DŽJ=~d8#Asl@Ourt̗L$`~CpXuV1ԑJi?sZIhնUȫ5^F!:}]]+<^!u~. d֞i3wD0sFS8%as)*-ߪR"ǻ׻DmC&b }E3 _1c5=j \3t{Ҏv{(XVik@P<$c ĵjꁳ#?*d' }*֓vÖirW9H=uI8ԭp3(HJ2=s4V2C42fBuQԼA1 XWvf.6k Y1cM%bnx_`fU ̽Ύa]uH31-4Jx>mtlk6)VwvEHKQZ誈f"5'Æ`Ϊ S_ ѣXtA3::!I@(Z4N蚠S--:^+F(Qaiea, I.7]!ĕ:1: x*Y`^͸?KSzg/1dNW|ؕ&4ՉղÕ_A%R^0O5Rc{} rblD ,XZ.Պ<9OK1.:b魉%!U%+xvɌ#bB -!6|($ff$bԦ=IR.*-톎F%ʁG9񂞡e!k?>_?S QL4>lmxOԔa(AD>#Xj :r m;?B%!A&Xej8Y:߃^^IrwR_~ͥlG>zye'/.FՄ \fG&,Q/c/S|(E d$q6( purN=ĸÁJyt1Xh0p;ΞT%H$ArQf)\xzA'z f}+M_pt87Na~uw \nd*`GGx='MeƅhXZs1*}75Ɠka *n*E-ʕ,߂֠2#}j}= VJȬ5PIkVfpOkUT ^L @'V/&6U9^JHJ~@D,ɋb\N_L !iabab8lѿPw:0ǔȏY^3)r@!95@]F)jJĺ+HaLh=T'`QÁQ!8v"T0AyEƠX unm0w7yn m9T][Y7@gSaӧnbjG(4'L>F >2~=ZHg$m1C:N^~^&Äl+Z[9)N;0+gt03%Φ9^..U̽6\d@3knOD a{?xNaݬkq ;KVk?pW{y)}Ԟe';1ۗ(h̸,%,|bU6񈓔[)k NT?j YA+#?P1eٸ.$/GT[Qy@ B7j'_H,%j!i;MnKy܆vPqV4Ab+!›Tezy:u-myL(j p^X>HOW2/f`$P~a3y6\Qo5 6n2[:ُ_ pn}˱8lt:K/IdMG.iu27*? 2  ?i[_3 GIеQ)Zޥ -ue=%e+0,,1| V)#Cte\,.,Bbݥ>1{.违U#-=q*^QGSM&-Q+rX޴:ЛÚӆ)?@ 1X-NaY,e+1^ nƭ%ӱnH!dy!fs(v|zlͰ|i=GV sq ?zc$D4C+TseC(eZk.>:%'l)PD)ui6pSe#oU8jβˠdJSVbY,}1<Т6dtBq41VZ"*1³x-˜` yal$?6n5n+`Eeߠ]Նdew5^-,CYj#\&D ƿ7\niav^#@&7[耸_ N'#82JTɎ 0nR>bnH7H8ڹjAw[B]`4&WS Au&-Dp8V_q*6M#dw Tw#Q @jR;S/I5_>eݣ1lnnC};pjfjA~?LYgFFf"mG-q-2q'(vX)|yY0G-!UbD;Spq8(<ˡZԳ^̨*n_*G 2 ZjHˌfE!) 8bwYY% ]p,+?Lp[Q/)# ׽}TV"><8dI!{DW[*C{M ,Ql50i6ђG>1Kwb^OL˵P/YAmĀܩ#lg $6CUUAivB9{C]jpNtzWs;$~ﻔœ?TF\p_Ie.*+7m 1Zfeon ɓdi0yvY)B&iDkHVY|Dҹ A2'h;,^g퍩#}vfNɭ%*DfӁ@,:/&ż<S[.L#ȝ^{'֢H`87;j2νB]Y?w}$GХp/ 4Ŭ?u٨H͋@'Kg7A7/B_}mQZParIW5 BQb4&~V_~:R@&J4`yd?.FE`mc@,BslJ; fa4E.=B++K9wi>pp0'q;m ʬ=:k9a>{Yok:S$fvf>Q7|s&P:\ Rih/6%}Qe9Y)Chf21Y +{2CȖY!=X~DޢNXPt6NGkJF>9U 8_K_UU㹾Ⱦ׼Cd`{CmW#6xR)[۽ZCz_WzZ)=.5Gz(S9 sCPۼK5ٹd9fȾ6D=pE2tj]qt _ :W+6#=`h׹m3Mx,NJƹPeOWR[@cBP& \O`W3WB^Jib6o槎wa#D ktۂ?^}\t˝H9H#ޠ`DFp]/3V1X@H;r<]"Ƽ` :zèpm;%E. "YNlj|:}FoLE\\agKmIoY3mLD}-4}IOaTLj HhGĮN,V)55y]Xk0~nhoKVlh=2?L1FP(@"$wG+mzQWKԓȀouLb "+c OyI֥1e* $unqN[+0렰BdI OBVHN$9Ѕ".aOw)R )txZrm$J9(]4Ť)@b'Lr^{ݮyu؂yp!Yx5Bq3\dMLQAFXS4NǶv趻q Λ e~2A^^BRaV3:j5  -ITVgz_HAAC&wE闟DʑZ;>[ˮ-SY5''H_N}Qu ho5=S~y,ρ?N+Cf؝KߨRg|tNׁp-;E6XWo/Xv/Wk _X T]`N`vDH&2)kUq5cEqdxNtIoGƮo &* WerLC4vg4[jD[)v{#n[1w:a3)1‘A8MAw"5JMZ#zӝfҢ"m.>RcLj.JIYaom6p9:H/G%έ r{{|yU)==HCgvmV&sN!T}s3,-tU 0kJFhGc8e*'/ ԯ{1EWʿd#~CԡxnxWrsO1ǢTČJ*!0:𶉩v65Oh6ZJ`~8@ƬIpNN.` 5&%}Ușhu]vd\x+&܎!%ڤ `QzqN~hg_惢#@xEeÎިEGD)WtY-d}z᭠N |J3fK Ycٜpm -iԨS?RlT3nKT<{ݴ[zb^pjSj-Zh5& ϥa)z8IG3x5HxNOl2¦|EjR\ƕU3Tğcin]Dise.d<ddN`қ"I^zhDjC1-A+`tğXS?2Ytmm+ Xv'P[~ۮ ?Mv 숑cȏ*DYawd2U}΢Y":]=m|$Jjv4~  M臭ێ;2G}OpH_O}C]WY"~<`n͕ *5>TPH`n,)ة T&OsY?Sq7D22,1k}(.mEm8}(MxkB)0_"r{ 9QYi_ Zo53?Q~τ|Nb휫.O1(*RV([f6K`C-j^^, :F62%S2b߸,6mZީbpH@N85&dHtMҹ]*3zUB! &$MZҲ}gR59+c ط@KT+rn ~ 3GѽsK5bpr^/ǖhB o8/yp7BC7o+Nc4+{A[eꝁmF6ꨊC9+inŧ%6\9-0x:}[~*;w+h?lEe# وַ d-|m8pmeȪ5|/o, m-1w>i n,fM=Px*pA`#.Yx֏R%k;F-xJ陭}AMӠ{HX`m;/&s'nS+/ G9{v'n_K2˿i]V٣"ؚl(BO2Po1hhDJgRz_ 8$jٛ/T* Wk1o߾1|ğ}(+s ok~YMjT^D IwJhTRƈ ͸2h 5 gn։]~j۾`LM i'Z7TAJT&-0>S:(>*_ i/cH `B q56gNan~;ܒJO휡m @B8] M,\mb+6Zʼ[QD7c>eW ɶk>̥v)(HrPlnX2! g6* @qOltu9̣ZQgc\Z&PUP%Ga(L]n=?Oh{]U;l&5d'<9c,TA5;Dm) hhL&YnX5(pMIS5 K4̜ K`FcO1=ƭg'h,}ԇ$OO{jҶ/Zf!UZ:[!0v¨Ks?,'/ݲ7պAM6 `* YSqTps`:tP_KFٽ9l-Gt_J`,:ϝ-$R7=Z 왘՟j2f>b6Hf|`:X_> s$,zE ~rسj}: ?s`Ae1!Pэhxƪ88}L:8Ƅ%zf kH %JxJ@R4gul_QdAiAH"Ucl2^Fn{-@Ad/>ah0 LIdi%jvKi:;g (_meSqbT|1e4Bm=(XjO"I7 KlnBԬ>>ْW?vq>6`*GɑwpA`؀YzvR#aW #X :{wҿi*A\|؉C-Pjpp!$OLDlM.\*<#C26Ec>ljjW_Q'kwQibf~LYqI S@N?~֕9YcŒJoLBR {leh ݣ}\J`䟺w5xd 5n0S3I*nĐ+NH2?P2p%ɧBRv'|Z4NUKJ~QhbOSKvbҙ 0f7~ ahf,r-@8ryDڂO\|>jRrGrwV &* QѠNGMM/8& _1mn:w${_KV<΂ߎ:j*gc5Q'V^O;1Xԝ 庤ZK36͙)&S+.<95xÛ;)DVqG/:=@ }C:1H^.`piXjr! +lwڣ *(Ib]}zJ4\;ΫZCǸ4ԽVɢA Yݱ3"+kX0/8T’q# 9:7M~CY4inn0]˪i8X޴~?N&d\~St\/T?514Xr$ w`Df|rH!qao[2:gv!-}NK k?9]IL݄W<¾:d K`/oQͼ N?)ru lE0l*Qi ک[ w/.r4_Z"&:/B1`g^~wX'h?qv$8I><-iΟc[ n[8ЕDbdUr)B=+hΑ-ccrsT669uNEK"})ϱʛW6,uk pvwBPK tc)W7{{[m2Y`] E}2+7~O0RW'kyma44XPGgIEk31) HY/<'Fm#F.z H=^JEjXK:? 5jf0#'g8Dpe_u8luaHFdCoQdX:L(j*DAb =3!mGp߉m rr٧K'Z P42+]C*7xkHԡkBe֘O xQkncڮ&%6~cmX 0fZIɣH<{ф%ȷ<6vxC ߇?a{nr)PǹinmUe_QQ*m wP~[Δ+"͞"G[e.?v[=vOn7#[aX 4s P2JHs/I@} U4al¨=hyh{9x(v{p"?A-q>ah 6hM˥5úHD'Y4Owd~Oa.]Zڀi6\`ɺKNI\F'-+DP+(!pˈ/&VW]-6hVП7"U"krzNl֙W bڏ('Si"N_K:O쀷=8Uu?]<V?/3Oetym-(6M{|H/Fٓt+ <;Dil"2$ζ/7Rus:bH!~t㞽31}Z 8]O&@ԣS-?k7&Ce\]zg._Rg{ѐ˂b\`x˓P="uB,*Hq0h è WȔRyab%%"j,M_.Z5v š W]7~ L>=Y_;JckD Xٸ(xx+PzIY`rz9,3w oEdaگ\4a(E42 ɐ0a)@^0smWLXg;yoA  Cms~vkH<ҟS3$(ҁ! /o^ JEGBm8 ɐ bU2c-j,qͥRniw{[QGE ou-[QxXI3fڒDA8RSƴ;FZ!Ep~pXj*j]]>7 .ld{t'dUcmXMyoEb)پ&psot|-$1p?#&z$~|t.G[+*EaJ- MߵU[VEبM%}KK =_D}OuHvnk ]{늯~1%/Ds\2/./*r|>qFIl@Z{B7Prr =-HJf#jO)MB[ߢCwU|fz(L n%qb]qΘ h +dKmXs|C8-=@ kZ覎ߦqXiyË43.ة],;x g Ҡt+oc5é'j Ϣ*7J#Km$ \n" BNb·+3E5X lHUhTqDpAa+=̩qUu~Z,^%CS;6Fd}")fʴ8/ghsKw1Blܦs̪;jx8d[C3 _UMC\27ȝA` X-b١BG.~0^#R @&j"~q|hSMͩO|Ӓ^Ccg>ZUIS̐Lh,2m`en+~(J_VK G6))yVX/ :|H,7b/<&UQB4a(of_TOp4,({ FNG7FWFT$ 8}K)h@q5ꚸU@ڍLv {Kcvjy8f'ؕ3 j54i)*h;كI(hvDaW ~}#+'>CA~c^;5Z6br)0xPا!_P'!ќS"p;)وPAdu{iٰ9\Z$K˻$MxQ[w(+hpS#L~J9{oݰʑnNG4ۊ<5 b5P7o=<򱟴D;,j9j=W?Y!1z?mQU٫%aj h0$DăZ]e=m ~^',Z@'8; 1@= O*#?.0x+lȑNhog['71N +k ̢1.-*KE4<] %$D'4N=S7b^&At:5m fr:CXA瞏g]{z(y/_V_'6~+u=aEK\hp>eE;pt-0!Ӱo٫ӡ:ʼ[;[I{h;mp(y"ٸAuj1d/F>;;n]oQ3Slz XRo}sT XV/T)(FFh엀lV8^0Ƕ7?s bZ(MW @D@i9^H<,X7Ql꣸CbygN'Ԃv;q_ӡ`A=PƬ͍MbN%ɀ'H]x5n͞A~web>Koe27$%Px ϗ%ٕ!=„&s6֔6=g{===TnݨC+œRANa Yf5yEm\aU \jSiDTCg1֔.s2?'xDM&ZE Rj!{d?KQ y׬葉݂>QvAȦ3: |U^_NYo(R00Oz6V`ɡ sy2&3?A];3T!ebr=ìs/.>OqoQӯ ("ku7K 8oZۂ-j~aϟ*U -7>TUȟ &~Q_&&@v^1[*]ΈEy#1dD>q.nw6Pۑ|an;j az|]x%8:M Gn!҅[o)0bmT&ſv0' w8sl1iGy2_C>11IaFPw'}(l{tUIBfCS[1{h3scFΠc?n)}*u| LugxU?^n,ނHFc#[H 6.Y=Vq}; TSR'rѢpmr_.vz08h4/;gLK%)c6uuȖ;J\A2nU;i"LԥQZĕF"fHȺ-T, =_yF:" ,4-E^ |dzC|\g_3hSĀ͠0ORR[h!y\ M%.qQ#4Z!xɘb;3kmX@Z%UWMStNlÔNҾ+o]IƎq[G]n^ ô|(l>L$,c`MZi>J $k11=98nQɳ/b T^H5(scЂ-Z.NCSwIMD'tW NQ F(5ߖ|. <]RZS^z$ ԍkro,\D~p%|g17ΛWr͏ٓӀi; Ek=Ls+(Zy}"U̕2hczg\v:bnVqj(c( ϬQӿ j ېi% E˺~8~./^YJ߳.+O!*L^Z]>?$UV)"g/@7]N%*^`+vAeNVʜBݢڒFϠd;_V>QipoQ,ti^. ]׫)l 5{r[g))o -2M ƂIowE:-1`o4O3y }e$Ä5\mvMf=b^Od+9(ɧ6XnrZS' h7iQ6h}sE'`W,tkmnmLd Ea-Y=lk C4|'g? N;u3|Ԅkj8ElRvMDd_sW"7X9"zͦl Z=1 8h T#se_6j㍴ʙSL fgWм9 iil5SYQtQceE_*OB}bbIxK p5t x3z01vqvu/lԝ!n{?83۔z9\W|نiOf}L(ήȱPL^ls?xLo6qvo$)퓱RZ#&FUS;U&՝QxKu&D~*F9ŲZCFΆ$xfDJs QP0a , r !h{r\2po;;6UEYͫ_!Lc:ν];>8gFFN. |f,ˮ^߻^b%MRJ <(;ȥmQU X~?æLMDuBBTC~MŦHq2s+vf+*:n!"dh/flɉEG! EÒPN=|xJ1]-0B*HIXEȘIP0sY%LꝎ0bTԒeDf 膹lx!tz(X>*@ 3ԇ̙c%_[}V-xjտΆ$?40˼6F@ eXJ&Jݼqt-+hc~>BB#Ԣ a,וBz&g {&PUPvt:SqjF~dPwk-YuS R] y?cqIFS@Lኮ]@3G %wt3`nw9I.#Popu_%[qCnzx b+u-*mΟb+5;>>ڱx4MF,1o ~R9ک:/I[E1Em "V&$0(~M%hEk-dpf@zetF-Woٕ;hM$ !#$b|7avu:kmŕ$%л!%Q ѳ9І Y\#*ܧSW)/~L'S?l?GKn6Ŕ?9AxKj L y}~&~Wp[Ehb2DN_KH x]K`! UM=*;Χz:~F&[3fPwtŬړ5gj `b?K ZgQ!ᨻ|eoo't2+4y{`ٟ4t$Y̤|G$)(AUMNNφ=g!La0vCHx?P=aѶ¦@'YznI"F'T^!1!4q{8hol dQq97Ry@@{R/٩1΋{O.T2}kap&MuE/攼tɒmE"ʊZ;3۾s YsGfx4~9}֑g; 09!}]F{dZV烸?X[q}WfRQ֩?Ժ=} >ؼ!] lG+gNT"59$\ 6Kfju;J ʌ$\ V>у8M6T0n?Uds/2=)ߣ3^Ժ4g"DCطó^Gq0MgLӒ&vgD`O%u^u"eC?"s8 `p^ g+ꇅ9 @1v G 7[l ϓt"vN w_46ub0\R݇bzAZ!ieµ̠k7Np/T%t[:-.opyV|e8Nq8pĨԴ`[P`*:?tF7<ٹT3r8 U+E^{<9ɱU,q G^YcKr#ઍ)5Bu9ߓٰkYwB(XdJ㡉DUٿ \CMR(޳#\[r5n󹮉o\[)z O7\iJ&\(>[IWDʮԾOitWƲtw{& oqTcaiOkIos¬rCV ;9\eQ.2%$raCsiGd=NpZ 3mj^*e灶β.*GYM^;\O'-!j[m3Xttmr5E'm>R.Pr]P=WB>zƭCq8dVG9UJ:iC" kەN'$̀Z6e%BKtm0N:AםLVpMJZC@1@o=k rqW7wOL]r_2>õe)awR&F2ƭ3ٓ 7,}Kgm{7jɩj/jLI8(A#E`G]|tY?hqUz7N_iA$L|0Np-\}S(75a4y~Q0 Xe1S/MHi`t/U5VBFXxZR"9؞|Thv8ǣ*I|st^z22ԾH͛PȌ,?D9{ shOÙLp3s:AzP\עN:;]8!Y,t>Q UH( b˪fla BLQjؕGp=NtE{6;&KaWf=-UI9p?`ЮGS0n e"˨D\ J:ų߱& x@gV&ʝ/ؐ7k;RO+9 Yx~D~MLײɠ:O^=ozLG{{3S؊r7{G``L4z-,J|$gu<\bhEAAyBZ$EpUu4 ֏.I=uOLd% ovΦU͢MX3uL$3~R&0"vrcͲR lz& C~݃WYIqNE6a5~Zī9.lj@ER?f Cc{IHcl[+T QP )dRvG%O|AYFW%LI3gScpo]Ap9N|i;|_am U1~3D's"۵1,%:/l *\C^mBP;AGO-5hSHw?b wZ|윊I {㈔A H^)i5N2} cDҖUMQub.%clc<Ŏ)jMR}g#./tuTD,[  Nm*Y1^Ka.] cak/=*DC9!GO VLC_1E`/[iOdle5w"G*ِAEaSc|UՍQHHt;T׍ : ,~'zKfs_xyg [AVU*ٖ7:UC/㓶V=Ơ*k_O@x/w-T\'9.zd9d\O Xt 1"  9Ѣ3@:?Gc>r$J9Z0S ɐ?$9Lx;r_Eϱ,9ل¶ {G d:} /5'Se/_*s4}Pve.xT b[04=q;kQiskq$uN4^9 MT#S\J"RĎ[#oޞro"t@9By{ݿM %Hs(Q\!af \W zoà sV]u-NɍVFMBqZQ- YC6 &Y :w1e*B9ږne;.km*c< 1 4qPtdrPW[Mz$>9`)[Wq4gNCƀ-#jBی=0iEĨgrRO,@٘7DdL;*J9jc>Sgxk{1OE iJ赏uTphB2Q-r,!"-b=(;ϓu:sb<8 75w:~19YBYۮݯ4wH^7gk rrv}c_kG}*DR6sL톊x0#cٖno Tp\#`AUi!y=h)WUz? ow*0N C-IsDf]E9e"c@2|jV]w{}EWiܑܨi9wGBtS/!Y_faaFq-a/mBbU~6GV2k֍Y C` / e@`&d˸n z3̴ގ3 Te<֔w5 qU*XyxI߱1}7RRB,VN.CWRHД!竅77D!xZ; h^F˪3ôߩ w6a nO.[\g%:=(c1 b /H]G]W)eՐMtеl¿hFip) {s#թzs8HT ,?s| n BSw/''I=#)֜lZo04x-f«&tLOia*7NǤ%C.6=-6bO,V>w?fµ='<nCB4鯰 'x}2OO\h_x&+I5D0ѷTrhE{5)?NڥU<1f8xVnHzzL%P&* ˶B?eS]sЩ"_H=ُ4z"PH:PoݬU>#3 ӤLwŐ?\>`~F|5 ǔ҂wcSn]!m]T>^4:{Ȉh#.IDM)rk!vqZ?ZvYL&3@T "Ǧi_gi[b˦#{ǫs|H<i.o)0ڕ }dp'` Y (eˢnRJ*Mrz <[7 4K@ؘs&P]*7?8b&]K*Ɏ?XN46ڮ6+V%_06hkLO-^wS)Q Z[tDۣj1Gf4/,M+\ 5|=mn.9oʤ>/xpX+쥀;蠻'f=`(i8rS֏}# NbMa!g'O)J(יX}s$N:Q&Q.`q=c^mVGbgϰl{XtAIW(`N- qt/`B TxV0e١?&0(!5 5)s(#2G%OmZ+sVcfޫ 2ou\5%\^lEMNg:iOҮViY1I mѼb )Ӎсհ s9U v"y u^F$;ne`ZϏoVX3R:G'ΑOuDa(m%΢rшo~ipw%`9M-] F?"ZBǪQiΉ&Gu &Kaeg>gTm$j&IGK~WݍΕW`!$VVPbx+mpPŔc߫>84F`wSyg}`LBԟSP5WmFhgi`|衧v/y_rJX >X͒ &Ǘ?1:$;U2qsu˪5lۧ5'~('dpfO^r;d}@=21 J] ^D(YZYgԥZ ^gdX%%ڸ+vB@vf|@=@$\` 텠AKj%OG@ƺ%Rp2G@]:gѭ'/Mj ~Rg-u'%Dn놠f:|fFL-jsM SQ`tDŽ@n5~wEBVfC|O "(R3U9Zt  NRnR"a^kƱ s#wV/B==_ HQ`KpoRMs{M(H*JyVp<Rb54G50Rd%>KNۄ~:tGQڃKJZ&MB2WY%6aɎ@ |0BʑfE΂^`R5ʗUt~RXY]rb"pcTIe}K-g@x 17B;'_ {VPHtnAB%,w-cS.nاS7YV1&)X~m;G͞p~$';@аu}ϚSYAN~nE4Oc[y86 {OjX5*;j ʼiaȹwJxOеt`ak0`:LV]q6b~RͱNNWP,U*fBH$z:2=u{hhӗxa ?F{o T=ԗ nj\ ӌojFsjN}&l_یԝ!jzyX &1g!%6Z1[ԚWepGh%`:- 65 oȘ}SŀH̛o(XP& uuws%!ܕ(DyT$)pn Rlm6L*(s1*/`GtpwJɿ}cRA Nf!m~\?">r&.B`,#[ /bQEa#3*iPN-8)|2.qou+Ͼ8#E^PgԺ=wPX<=>\73vsU{p)4Mmڷ9MO0`=Ž}f SnX=D7C_D3 5d_5Ԙy}}B݁Hjj#[d\7xxCVliPSW 4gY$ONZkT>z=HDsm~'_=P}Ap6=J/Ea&Rn9^T{qF-@0?8IiJOz,R@< ܱ? x튘@,7|u3tH^% qHJ fX~FKY y5 9ez0eQ^ (ufosKa=G#d@/Uں XxjG\I1nc?>05n)&sSDYu&Z!Eq^Uހ&-){\XV<o/#;WZzןH;)%;S| 6nPkTI&Hp, (X]?q[;pP%G7Dq-}]LK }Gڌ9rFӄxH-]l%C S||zuejDvɸg%S+TJ䤧PKy& 㬇wbVD $%%3NiɌ>co8;"H ɯW4C| Ǖ@q-2Lf=[g*7s-T>3=Hn"-gypTobUb',FgroK( .2LW Vc?FXb}Wۓ+RKteNb+i"bwkN7*؛X8*3_T pWby$#((]| )DD ljߺS cN/(pkInyiIlV$x"6KGY\3q{spnFϸm<Ř.T/g ~R8%l`Z-ןNA.v}/SթW*2` %$3?I*JGfM_BuQ)!즮2$'/:q-vpR ` u_w\MzhiO~'.XnjMmfz\?ཻ}U"STιQ!0#Mm3t%1sS+e&u6 gO{ `p]R3 ~V9)HSĖbxِL~b/|3,0'L6<Y BapoCsspK|2EF*RhÛF *̫rƖI%)݀K2m@zJB Iڙ1NAo<2@0 '"P7}?~q-MH.- xd}, occA*솮٩-8÷="G05mn( 6F: ~U? %59#++ czUqQ1ȌYF(b*1( lCԾK$D003YҾ-1$+ Yy"{XU!cf')S%/&qi8ʹ(otL^]P@ӕ(y |h+`ӃmiN^fphS!^Of/Za ݊2T|&jZ{Z]ˁ%dSI14:0ֱw$SǓub"^+7o=?" (ȰuAyQ *T+̹S>W"UHgx7TPȠD$sK.䘽ts[g<3 ~FB)5N<fsa[Lg8~+]?ݷf#hE~<ĕ`@(KUs&2G #]wgS=r϶4xs~ \_?IMălboUġ޵(|DYgp:Jm `e+ߖV4 60ԓv璼Hs=3Y/}Ȁ#Mwڴ4% ޲Ù4(FvF ~m2'WnNUcM*wgY'۝7%퐭S-hIE ;f7*^ i#;e*zP"8Irv4"Giiz7[k?uX7>yx݇H;d$ؚw9Blk x$n H5~8p$^ZbPt/QEٍ,.ו/5 xUP$GzCGe} 5cHo=BhwJz4᫘DN(lDGnKIt_5 " YY{]+*D./0c|8H#$>܃q.!Z5}qQ(rgXb[P nw Vpp8gSPP6m q(ilBs!`Ĺ4nJ=03Nъ0juުasf:2Ue2nh~ %P[v# ͹7b;1jtv ޑ[wFql?^শYt7E`T谾DWipKh h΄hf|(.o?1?Lkр ՕKcUVMP|W[n)44kIFjүNv\݇1>z)J?m{2hfTZkr/[Z y^(sNxJ5(âTi$qFa1@4v`O;Җӷxc؍ ɀg%gϛ.\h)Muen$P?VÛ=}4Gp*#?%g(DUldZ?ti+"qԙCH{*`vd)'q@ҷIF|\,hE9:O ַݡ=gL 6IF_y0]:*9kh~8f`HhO*FwޮIqPkG#|63HFx}[n RsB:o[fO,F1OVIOf1\H̻"M87 %<BB4ؾ&7#Go .NGUQK^kzj ]+q Fz(]Lxb ?b9Sl H6f"]fb *\F~|aJ*:~ iĜma|芑ߥuPIG`0[IQj$f, *azAĔVke4זo8u?u@o1KxGjiǓFjl#}. q)~[)-a,׉Fw"OgSa0|t>zbϥ"а@3.x.\,S+.>rO\_[ci~9,xDyt4丹hG|=y%lj8-CRJc,Ї RQ?ZO"L;s!_Kdbw&%q_Άg)` bjN1efk20FN"J00؈" seM,{?%R'(UU`1,2q0vM ׼<+srrb9GYhήcDO@"hP3!k%S?9-skCXQjnR ='?MV$:ڠܒt͞wBNy55W@M2.Y!HލUNb uuP"T?,霬oY !>|(Oi9t.iV^o 7(da(ȋT÷G0$ #+M~Jd.Jt] }@hH8"q"0 ˀ.NGU XcR6IK[0QݒkF 5bM(33aGS*gR ARߋOzIL>5!~Z>[JX.+ $P΢ZSAR ]9A [B@R_M_Ci=H~c. sU88桇c*dY3UdVLjdg&~>[}H O _FzR0!B@ ^ɺ%r<_Mt9*Vcp̚sB nQN7p[1O9`OOfóٛAb?sK,c!kx{i%&ʇFh8s,u % ؾdn d5s.F8@-y9cnsRJId޶`exF3B7ZNE%!\Xr\ cgf뿀1_)lJlX/gN;7cP$Q" ]"|~yy«1X[$GAJzz vFo+4лβm_BPBĄ,fqQIm/a,R63Tm(9*?ٞJ(nH $ A%js4pH-Wr<k {d<$ڰn{f)/ޚj1|VPٲfBvlȋKVl;l=o }Ѱ9PTO+y0;OL<{'Q%t<1pJU;0. y%22]yU:0Q%iP_b8^~^MoŎ }{SAw4mv{{~*4Vݏuk}?I