diff -Nru securityonion-argus-server-3.0.6/acsite.m4 securityonion-argus-server-3.0.8/acsite.m4 --- securityonion-argus-server-3.0.6/acsite.m4 2012-04-12 20:07:51.000000000 +0000 +++ securityonion-argus-server-3.0.8/acsite.m4 2014-06-09 12:25:15.000000000 +0000 @@ -1,5 +1,5 @@ dnl -dnl Copyright (C) 2000-2012 QoSient, LLC. +dnl Copyright (C) 2000-2014 QoSient, LLC. dnl dnl Copyright (c) 1995, 1996, 1997, 1998 dnl The Regents of the University of California. All rights reserved. @@ -20,9 +20,9 @@ dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. dnl -dnl $Id: //depot/argus/argus/acsite.m4#15 $ -dnl $DateTime: 2012/04/12 16:07:51 $ -dnl $Change: 2357 $ +dnl $Id: //depot/argus/argus/acsite.m4#21 $ +dnl $DateTime: 2014/06/09 08:25:03 $ +dnl $Change: 2846 $ dnl @@ -102,6 +102,11 @@ AC_BEFORE([$0], [AC_LBL_DEVEL]) AC_BEFORE([$0], [AC_QOSIENT_DEBUG]) AC_ARG_WITH(gcc, [ --without-gcc don't use gcc]) + AC_ARG_WITH(examples, [ --without-examples don't compile examples]) + AC_ARG_WITH(pluribus, + [AC_HELP_STRING([--with-pluribus],[Compile for pluribus])], + with_pluribus=yes, + with_pluribus=no) $1="-O" $2="" if test "${srcdir}" != "." ; then @@ -113,6 +118,13 @@ if test -z "$CC" ; then case "$target_os" in + *darwin*) + AC_CHECK_PROG(CLANG, clang, yes, no) + if test $CLANG = yes ; then + CC=cc + export CC + fi + ;; bsdi*) AC_CHECK_PROG(SHLICC2, shlicc2, yes, no) if test $SHLICC2 = yes ; then @@ -126,28 +138,31 @@ CC=cc export CC fi + AC_PROG_CC + if test "$GCC" = yes ; then if test "$SHLICC2" = yes ; then ac_cv_lbl_gcc_vers=2 $1="-O3" else + ac_cv_lbl_gcc_vers=0 AC_MSG_CHECKING(gcc version) AC_CACHE_VAL(ac_cv_lbl_gcc_vers, - ac_cv_lbl_gcc_vers=`$CC -v 2>&1 | \ - sed -e '/^gcc version /!d' \ + ac_cv_lbl_gcc_vers=`$CC --version 2>&1 | \ + sed -e '/^ version /!d' \ -e 's/^gcc version //' \ -e 's/ .*//' -e 's/^[[[^0-9]]]*//' \ -e 's/\..*//'`) AC_MSG_RESULT($ac_cv_lbl_gcc_vers) - if test $ac_cv_lbl_gcc_vers -gt 1 ; then + if test $ac_cv_lbl_gcc_vers -gt 0 ; then $1="-O3" fi fi else AC_MSG_CHECKING(that $CC handles ansi prototypes) AC_CACHE_VAL(ac_cv_lbl_cc_ansi_prototypes, - AC_TRY_COMPILE( + AC_TRY_COMPILE( [#include ], [int frob(int, char *)], ac_cv_lbl_cc_ansi_prototypes=yes, @@ -348,8 +363,9 @@ $1="$$1 ${LBL_CFLAGS}" fi if test -f .devel ; then + $1=`echo $$1 | sed -e 's/-O3//'` + $1=`echo $$1 | sed -e 's/-O//'` if test "$GCC" = yes ; then - $1=`echo $$1 | sed -e 's/-O3//'` if test "${LBL_CFLAGS+set}" != set; then if test "$ac_cv_prog_cc_g" = yes ; then $1="-g $$1" @@ -743,9 +759,11 @@ dnl they are absent (it has hooks into the live capture routines), dnl so just define the HAVE_ value if it's there. dnl + AC_CHECK_FUNCS(pcap_fopen_offline) AC_CHECK_FUNCS(pcap_get_selectable_fd) AC_CHECK_FUNCS(pcap_next_ex) AC_CHECK_FUNCS(pcap_dump_ftell) + AC_CHECK_FUNCS(pcap_dump_flush) LIBS="$LBL_LIBS" ]) diff -Nru securityonion-argus-server-3.0.6/argus/Argus802.11.c securityonion-argus-server-3.0.8/argus/Argus802.11.c --- securityonion-argus-server-3.0.6/argus/Argus802.11.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/Argus802.11.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Arp Procession - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/Argus802.11.c#7 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/Argus802.11.c#9 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusApp.c securityonion-argus-server-3.0.8/argus/ArgusApp.c --- securityonion-argus-server-3.0.6/argus/ArgusApp.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusApp.c 2014-05-30 04:28:54.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Application Level - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusApp.c#23 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusApp.c#27 $ + * $DateTime: 2014/05/30 00:28:54 $ + * $Change: 2840 $ */ #ifdef HAVE_CONFIG_H @@ -42,6 +42,14 @@ #include #include +#define ARGUS_WELLKNOWN_PORT 1024 +#define ARGUS_OFC_PORT 6633 +#define ARGUS_AFS_PORT_MIN 7000 +#define ARGUS_AFS_PORT_MAX 7010 +#define ARGUS_UDT_PORT 9000 + +int ArgusControlPlaneProtocol (struct ArgusModelerStruct *, struct ArgusFlowStruct *); + u_char ArgusUpdateHTTPState (struct ArgusModelerStruct *, struct ArgusFlowStruct *, unsigned char); u_char ArgusUpdateRTPState (struct ArgusModelerStruct *, struct ArgusFlowStruct *, unsigned char); void ArgusUpdateUDTState (struct ArgusModelerStruct *, struct ArgusFlowStruct *, unsigned char *); @@ -58,6 +66,37 @@ void ArgusParseRTCPBYE (struct rtcphdr *); void ArgusParseRTCPSDES (struct rtcphdr *); +int +ArgusControlPlaneProtocol (struct ArgusModelerStruct *model, struct ArgusFlowStruct *flowstr) +{ + int retn = 0; + + if (getArgusControlMonitor(model)) { + struct ArgusSystemFlow *flow = (struct ArgusSystemFlow *)flowstr->dsrs[ARGUS_FLOW_INDEX]; + unsigned short proto, sport, dport; + unsigned char ip_p; + + switch (proto = (model->ArgusThisNetworkFlowType & 0xFFFF)) { + case ETHERTYPE_IPV6: + case ETHERTYPE_IP: { + if (proto == ETHERTYPE_IPV6) { + ip_p = flow->ipv6_flow.ip_p; + sport = flow->ipv6_flow.sport; + dport = flow->ipv6_flow.dport; + } else { + ip_p = flow->ip_flow.ip_p; + sport = flow->ip_flow.sport; + dport = flow->ip_flow.dport; + } + + if ((ip_p == IPPROTO_TCP) && ((sport == ARGUS_OFC_PORT) || (dport == ARGUS_OFC_PORT))) + retn = 1; + } + } + } + return (retn); +} + void ArgusParseRTCPSR (struct rtcphdr *rtcp) { @@ -184,12 +223,6 @@ default: { if (state == ARGUS_START) { - -#define ARGUS_WELLKNOWN_PORT 1024 -#define ARGUS_AFS_PORT_MIN 7000 -#define ARGUS_AFS_PORT_MAX 7010 -#define ARGUS_UDT_PORT 9000 - struct rtphdr *rtp = (struct rtphdr *) model->ArgusThisUpHdr; if (STRUCTCAPTURED(model, *rtp)) { diff -Nru securityonion-argus-server-3.0.6/argus/ArgusArp.c securityonion-argus-server-3.0.8/argus/ArgusArp.c --- securityonion-argus-server-3.0.6/argus/ArgusArp.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusArp.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Arp Procession - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusArp.c#27 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusArp.c#30 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H @@ -158,8 +158,8 @@ arp_spa = ntohl(arp_spa); arp_tpa = ntohl(arp_tpa); #endif - if (arp_spa > arp_tpa) - model->state |= ARGUS_DIRECTION; +// if (arp_spa > arp_tpa) +// model->state |= ARGUS_DIRECTION; retn->arp_flow.hrd = HRD(ahdr); retn->arp_flow.pro = PRO(ahdr); @@ -187,7 +187,7 @@ arp_spa = ntohl(arp_spa); arp_tpa = ntohl(arp_tpa); #endif - if (arp_spa > arp_tpa) +// if (arp_spa > arp_tpa) model->state |= ARGUS_DIRECTION; retn->arp_flow.hrd = HRD(ahdr); diff -Nru securityonion-argus-server-3.0.6/argus/ArgusAuth.c securityonion-argus-server-3.0.8/argus/ArgusAuth.c --- securityonion-argus-server-3.0.6/argus/ArgusAuth.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusAuth.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Authentication - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -19,9 +19,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusAuth.c#15 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusAuth.c#17 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ /* diff -Nru securityonion-argus-server-3.0.6/argus/argus.c securityonion-argus-server-3.0.8/argus/argus.c --- securityonion-argus-server-3.0.6/argus/argus.c 2012-04-13 19:47:27.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/argus.c 2014-07-15 01:48:28.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - main argus processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/argus.c#89 $ - * $DateTime: 2012/04/13 15:47:27 $ - * $Change: 2364 $ + * $Id: //depot/argus/argus/argus/argus.c#98 $ + * $DateTime: 2014/07/14 21:48:28 $ + * $Change: 2899 $ */ /* @@ -102,6 +102,8 @@ #endif fprintf (stdout, " -e specify Argus Identifier .\n"); + fprintf (stdout, " -f don't stop when EOF is seen, but wait for more\n"); + fprintf (stdout, " packets to arrive in packet capture file.\n"); fprintf (stdout, " -F read configuration from .\n"); fprintf (stdout, " -h print help.\n"); fprintf (stdout, " -i specify interface to use as a packet source.\n"); @@ -182,7 +184,7 @@ { FILE *fd; char pidstrbuf[128], *pidstr = pidstrbuf; - char *retn = NULL, *dev, *devstr; + char *retn = NULL, *dev = NULL, *devstr = NULL; int i, pid; struct stat statbuf; @@ -334,6 +336,7 @@ break; } break; + case 'X': case 'F': doconf++; @@ -377,7 +380,7 @@ optind = 1, opterr = 0; - while ((op = getopt (argc, argv, "AbB:c:CdD:e:F:g:i:JmM:N:OP:pRr:S:s:tT:u:U:w:XZh")) != EOF) { + while ((op = getopt (argc, argv, "AbB:c:CdD:e:fF:g:i:JmM:N:OP:pRr:S:s:tT:u:U:w:XZh")) != EOF) { switch (op) { case 'A': setArgusAflag(ArgusModel, 1); break; case 'b': setArgusbpflag (ArgusSourceTask, 1); break; @@ -395,6 +398,17 @@ case 'd': ArgusDaemon = ArgusDaemon ? 0 : 1; break; case 'D': setArgusdflag (ArgusModel, atoi (optarg)); break; case 'e': ArgusParseSourceID(ArgusSourceTask, optarg); break; + case 'f': setArgusfflag (ArgusSourceTask, 1); break; + case 'F': ArgusParseResourceFile (ArgusModel, optarg); break; + + case 'g': { + struct group *gr; + if ((gr = getgrnam(optarg)) == NULL) + ArgusLog (LOG_ERR, "unknown group \"%s\"\n", optarg); + new_gid = gr->gr_gid; + endgrent(); + break; + } case 'i': { char Istr[1024], *Iptr = Istr; @@ -430,16 +444,6 @@ break; } - case 'g': { - struct group *gr; - if ((gr = getgrnam(optarg)) == NULL) - ArgusLog (LOG_ERR, "unknown group \"%s\"\n", optarg); - new_gid = gr->gr_gid; - endgrent(); - break; - } - - case 'F': ArgusParseResourceFile (ArgusModel, optarg); break; case 'J': setArgusGenerateTime (ArgusModel, 1); break; case 'm': setArgusmflag (ArgusModel, 1); break; case 'M': setArgusMarReportInterval (ArgusOutputTask, optarg); break; @@ -541,6 +545,7 @@ } case 'X': clearArgusConfiguration (ArgusModel); break; case 'Z': setArgusGeneratePacketSize(ArgusModel, 1); break; + case 'h': default: usage (); @@ -556,9 +561,11 @@ if (getArgusrfile(ArgusSourceTask) != NULL) { if (!(getArgusRealTime(ArgusSourceTask))) { ArgusDaemon = 0; - setArgusPortNum(ArgusOutputTask, 0); setArgusBindAddr(ArgusOutputTask, NULL); ArgusSourceTask->ArgusReadingOffLine++; + if (getArgusfflag (ArgusSourceTask) == 0) { + setArgusPortNum(ArgusOutputTask, 0); + } } } @@ -628,8 +635,10 @@ ArgusLog (LOG_ERR, "pthreads set sched param error"); #endif #else +#if defined(__sun__) pthread_attr_setschedpolicy(ArgusAttr, SCHED_RR); #endif +#endif pthread_attr_setdetachstate(ArgusAttr, PTHREAD_CREATE_JOINABLE); #endif @@ -757,7 +766,8 @@ ArgusFree(ArgusOutputTask); ArgusFree(ArgusModel); - ArgusFree(ArgusSourceTask); + + ArgusDeleteSource(ArgusSourceTask); #if defined(ARGUSPERFMETRICS) len = strlen(ArgusProgramName); @@ -950,7 +960,7 @@ return (pidflag); } -#define ARGUS_RCITEMS 48 +#define ARGUS_RCITEMS 50 #define ARGUS_DAEMON 0 #define ARGUS_MONITOR_ID 1 @@ -1001,9 +1011,10 @@ #define ARGUS_FRAG_TIMEOUT 46 #define ARGUS_ARP_TIMEOUT 47 #define ARGUS_OTHER_TIMEOUT 48 +#define ARGUS_TRACK_DUPLICATES 49 -char *ArgusResourceFileStr [] = { +char *ArgusResourceFileStr [ARGUS_RCITEMS] = { "ARGUS_DAEMON=", "ARGUS_MONITOR_ID=", "ARGUS_ACCESS_PORT=", @@ -1053,6 +1064,7 @@ "ARGUS_FRAG_TIMEOUT=", "ARGUS_ARP_TIMEOUT=", "ARGUS_OTHER_TIMEOUT=", + "ARGUS_TRACK_DUPLICATES=", }; @@ -1369,11 +1381,8 @@ if (!(strncasecmp(tok, "CLASSIC_5_TUPLE", 14))) setArgusFlowKey (model, ARGUS_FLOW_KEY_CLASSIC5TUPLE); else - if (!(strncasecmp(tok, "LAYER_2_MATRIX", 14))) - setArgusFlowKey (model, ARGUS_FLOW_KEY_LAYER_2_MATRIX); - else - if (!(strncasecmp(tok, "LAYER_3_MATRIX", 14))) - setArgusFlowKey (model, ARGUS_FLOW_KEY_LAYER_3_MATRIX); + if (!(strncasecmp(tok, "LAYER_2", 10))) + setArgusFlowKey (model, ARGUS_FLOW_KEY_LAYER_2); else if (!(strncasecmp(tok, "LOCAL_MPLS", 10))) setArgusFlowKey (model, ARGUS_FLOW_KEY_LOCAL_MPLS); @@ -1383,6 +1392,12 @@ else if (!(strncasecmp(tok, "VLAN", 4))) setArgusFlowKey (model, ARGUS_FLOW_KEY_VLAN); + else + if (!(strncasecmp(tok, "LAYER_2_MATRIX", 14))) + setArgusFlowKey (model, ARGUS_FLOW_KEY_LAYER_2_MATRIX); + else + if (!(strncasecmp(tok, "LAYER_3_MATRIX", 14))) + setArgusFlowKey (model, ARGUS_FLOW_KEY_LAYER_3_MATRIX); optarg = NULL; } @@ -1500,6 +1515,7 @@ } break; } + case ARGUS_TUNNEL_DISCOVERY: { if (!(strncasecmp(optarg, "yes", 3))) setArgusTunnelDiscovery(model, 1); @@ -1507,7 +1523,13 @@ setArgusTunnelDiscovery(model, 0); break; } - + case ARGUS_TRACK_DUPLICATES: { + if (!(strncasecmp(optarg, "yes", 3))) + setArgusTrackDuplicates(model, 1); + else + setArgusTrackDuplicates(model, 0); + break; + } case ARGUS_IP_TIMEOUT: { setArgusIpTimeout (model, atoi(optarg)); break; @@ -1584,13 +1606,11 @@ setArgusTimeReport(model, 0); if (ArgusSourceTask->ArgusWriteOutPacketFile) { - if (ArgusSourceTask->ArgusWriteOutPacketFile) { - if (ArgusSourceTask->ArgusPcapOutFile != NULL) { - pcap_dump_close(ArgusSourceTask->ArgusPcapOutFile); - ArgusSourceTask->ArgusPcapOutFile = NULL; - } - ArgusSourceTask->ArgusWriteOutPacketFile = NULL; + if (ArgusSourceTask->ArgusPcapOutFile != NULL) { + pcap_dump_close(ArgusSourceTask->ArgusPcapOutFile); + ArgusSourceTask->ArgusPcapOutFile = NULL; } + ArgusSourceTask->ArgusWriteOutPacketFile = NULL; } if (ArgusSourceTask->ArgusInputFilter) { diff -Nru securityonion-argus-server-3.0.6/argus/ArgusEsp.c securityonion-argus-server-3.0.8/argus/ArgusEsp.c --- securityonion-argus-server-3.0.6/argus/ArgusEsp.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusEsp.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - ESP layer processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -19,9 +19,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusEsp.c#19 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusEsp.c#21 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusEvents.c securityonion-argus-server-3.0.8/argus/ArgusEvents.c --- securityonion-argus-server-3.0.6/argus/ArgusEvents.c 2012-03-15 05:13:08.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusEvents.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Modeler - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -23,9 +23,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusEvents.c#12 $ - * $DateTime: 2012/03/15 01:13:08 $ - * $Change: 2335 $ + * $Id: //depot/argus/argus/argus/ArgusEvents.c#14 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusEvents.h securityonion-argus-server-3.0.8/argus/ArgusEvents.h --- securityonion-argus-server-3.0.6/argus/ArgusEvents.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusEvents.h 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Modeler - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -23,9 +23,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusEvents.h#4 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusEvents.h#6 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ diff -Nru securityonion-argus-server-3.0.6/argus/ArgusFrag.c securityonion-argus-server-3.0.8/argus/ArgusFrag.c --- securityonion-argus-server-3.0.6/argus/ArgusFrag.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusFrag.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Fragment processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusFrag.c#26 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusFrag.c#29 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H @@ -327,7 +327,7 @@ struct ip6_frag *tfrag = model->ArgusThisIpv6Frag; struct ip6_hdr *iphdr = (struct ip6_hdr *)model->ArgusThisIpHdr; if (!(tfrag->ip6f_offlg & IP6F_MORE_FRAG)) - frag->totlen = (ntohs(tfrag->ip6f_offlg & IP6F_OFF_MASK) + (iphdr->ip6_plen - 8)); + frag->totlen = (ntohs(tfrag->ip6f_offlg & IP6F_OFF_MASK) + (ntohs(iphdr->ip6_plen) - 8)); break; } } diff -Nru securityonion-argus-server-3.0.6/argus/argus.h securityonion-argus-server-3.0.8/argus/argus.h --- securityonion-argus-server-3.0.6/argus/argus.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/argus.h 2014-06-17 21:32:20.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - main argus includes - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/argus.h#17 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/argus.h#19 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ diff -Nru securityonion-argus-server-3.0.6/argus/ArgusIcmp.c securityonion-argus-server-3.0.8/argus/ArgusIcmp.c --- securityonion-argus-server-3.0.6/argus/ArgusIcmp.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusIcmp.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - ICMP protocol processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusIcmp.c#19 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusIcmp.c#21 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusIgmp.c securityonion-argus-server-3.0.8/argus/ArgusIgmp.c --- securityonion-argus-server-3.0.6/argus/ArgusIgmp.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusIgmp.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - IGMP protocol processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusIgmp.c#14 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusIgmp.c#16 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusIsis.c securityonion-argus-server-3.0.8/argus/ArgusIsis.c --- securityonion-argus-server-3.0.6/argus/ArgusIsis.c 2012-02-28 21:54:20.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusIsis.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Modeler - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -23,9 +23,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusIsis.c#8 $ - * $DateTime: 2012/02/28 16:54:20 $ - * $Change: 2319 $ + * $Id: //depot/argus/argus/argus/ArgusIsis.c#10 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusLcp.c securityonion-argus-server-3.0.8/argus/ArgusLcp.c --- securityonion-argus-server-3.0.6/argus/ArgusLcp.c 2012-04-12 20:09:24.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusLcp.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - main argus processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusLcp.c#5 $ - * $DateTime: 2012/04/12 16:09:08 $ - * $Change: 2358 $ + * $Id: //depot/argus/argus/argus/ArgusLcp.c#7 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusMac.c securityonion-argus-server-3.0.8/argus/ArgusMac.c --- securityonion-argus-server-3.0.6/argus/ArgusMac.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusMac.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Layer 2 processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusMac.c#12 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusMac.c#14 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusModeler.c securityonion-argus-server-3.0.8/argus/ArgusModeler.c --- securityonion-argus-server-3.0.6/argus/ArgusModeler.c 2012-03-22 19:31:27.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusModeler.c 2014-07-23 20:17:34.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Modeler - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -23,9 +23,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusModeler.c#111 $ - * $DateTime: 2012/03/15 01:13:08 $ - * $Change: 2335 $ + * $Id: //depot/argus/argus/argus/ArgusModeler.c#129 $ + * $DateTime: 2014/07/23 16:17:34 $ + * $Change: 2904 $ */ #ifdef HAVE_CONFIG_H @@ -59,6 +59,8 @@ extern struct ArgusHashTable *ArgusNewHashTable (size_t, int); extern int ArgusUpdateParentFlow (struct ArgusModelerStruct *, struct ArgusFlowStruct *); +extern int ArgusControlPlaneProtocol (struct ArgusModelerStruct *, struct ArgusFlowStruct *); + unsigned short ArgusProcessUdpHdr (struct ArgusModelerStruct *, struct ip *, int); unsigned short ArgusProcessTtpHdr (struct ArgusModelerStruct *, struct ip *, int); int ArgusProcessGreHdr (struct ArgusModelerStruct *, struct ip *, int); @@ -124,11 +126,13 @@ bzero (model->ArgusTimeOutQueue, sizeof(model->ArgusTimeOutQueue)); model->ArgusInProtocol = 1; - model->ArgusUpdateInterval.tv_usec = 200000; model->ArgusMajorVersion = VERSION_MAJOR; model->ArgusMinorVersion = VERSION_MINOR; model->ArgusSnapLen = ARGUS_MINSNAPLEN; + model->ArgusUpdateInterval.tv_usec = 200000; + model->ival = ((model->ArgusUpdateInterval.tv_sec * 1000000LL) + model->ArgusUpdateInterval.tv_usec); + if ((model->ArgusHashTable = ArgusNewHashTable(ARGUS_HASHTABLESIZE, debug)) == NULL) ArgusLog (LOG_ERR, "ArgusNewModeler () ArgusNewHashTable error %s\n", strerror(errno)); @@ -362,7 +366,6 @@ } if (ArgusCheckTimeout(model, &last->qhdr.qtime, getArgusFarReportInterval(model))) { - struct ArgusFlowStruct *frag; ArgusRemoveFromQueue(queue, &last->qhdr, ARGUS_NOLOCK); @@ -742,10 +745,7 @@ struct teredo { unsigned short tid; - union { - struct teredoAuthHeader tauth; - struct teredoOriginHdr torigin; - } t_un; + struct teredoAuthHeader tauth; }; struct ttp_header { @@ -825,33 +825,70 @@ dport = ntohs(up->uh_dport); if (!((sport == 53) || (dport == 53))) { - struct teredo *tptr = (struct teredo *) (up + 1); + char *ptr = (char *) (up + 1); + struct ip6_hdr *ipv6 = (struct ip6_hdr *) ptr; + int isipv6 = 0; len += sizeof (*up); - if (STRUCTCAPTURED(model, *tptr)) { - struct ip6_hdr *ipv6; - u_short type = ntohs(tptr->tid); - int isipv6 = 0; - - int offset = 0; - switch (type) { - case 0x0000: offset = 8; break; - case 0x0001: offset = (4 + (tptr->t_un.tauth.idlen + tptr->t_un.tauth.aulen) + 8 + 1); break; - default: isipv6 = -1; - } - - if (isipv6 == 0) { - ipv6 = (struct ip6_hdr *)(((u_char *)tptr) + offset); - - if (STRUCTCAPTURED(model, *ipv6)) { - if ((isipv6 = (ipv6->ip6_vfc & IPV6_VERSION_MASK)) == IPV6_VERSION) { - retn = ETHERTYPE_IPV6; - len = ((char *) ipv6 - (char *)ip); - model->ArgusThisEncaps |= ARGUS_ENCAPS_TEREDO; - model->ArgusThisUpHdr = (unsigned char *) ipv6; - model->ArgusThisLength -= len; - model->ArgusSnapLength -= len; + if (STRUCTCAPTURED(model, *ipv6)) { + if ((isipv6 = (ipv6->ip6_vfc & IPV6_VERSION_MASK)) == IPV6_VERSION) { + retn = ETHERTYPE_IPV6; + len = ((char *) ipv6 - (char *)ip); + model->ArgusThisEncaps |= ARGUS_ENCAPS_TEREDO; + model->ArgusThisUpHdr = (unsigned char *) ipv6; + model->ArgusThisLength -= len; + model->ArgusSnapLength -= len; + } else { + struct teredo *tptr = (struct teredo *) (up + 1); + + if (STRUCTCAPTURED(model, *tptr)) { + u_short type = ntohs(tptr->tid); + + int offset = 0; + switch (type) { + case 0x0000: offset = 8; break; + case 0x0001: offset = (4 + (tptr->tauth.idlen + tptr->tauth.aulen) + 8 + 1); break; + default: isipv6 = -1; + } + + if (isipv6 == 0) { + ipv6 = (struct ip6_hdr *)(((u_char *)tptr) + offset); + + if (STRUCTCAPTURED(model, *ipv6)) { + if ((isipv6 = (ipv6->ip6_vfc & IPV6_VERSION_MASK)) == IPV6_VERSION) { + retn = ETHERTYPE_IPV6; + len = ((char *) ipv6 - (char *)ip); + model->ArgusThisEncaps |= ARGUS_ENCAPS_TEREDO; + model->ArgusThisUpHdr = (unsigned char *) ipv6; + model->ArgusThisLength -= len; + model->ArgusSnapLength -= len; + + } else { + struct teredo *iptr = (struct teredo *) ((char *)tptr + offset); + if (STRUCTCAPTURED(model, *iptr)) { + u_short type = ntohs(iptr->tid); + int offset = 0; + switch (type) { + case 0x0000: offset = 8; break; + case 0x0001: offset = (4 + (iptr->tauth.idlen + iptr->tauth.aulen) + 8 + 1); break; + default: isipv6 = -1; + } + + if (isipv6 == 0) { + ipv6 = (struct ip6_hdr *)(((u_char *)iptr) + offset); + if ((isipv6 = (ipv6->ip6_vfc & IPV6_VERSION_MASK)) == IPV6_VERSION) { + retn = ETHERTYPE_IPV6; + len = ((char *) ipv6 - (char *)ip); + model->ArgusThisEncaps |= ARGUS_ENCAPS_TEREDO; + model->ArgusThisUpHdr = (unsigned char *) ipv6; + model->ArgusThisLength -= len; + model->ArgusSnapLength -= len; + } + } + } + } + } } } } @@ -999,10 +1036,9 @@ ptr = (unsigned char *) model->ArgusThisUpHdr; llc = (struct llc *) ptr; - if (BYTESCAPTURED(model,*llc, 3)) { + if (BYTESCAPTURED(model,*llc, 3) && ((llc = model->ArgusThisLLC) != NULL)) { model->ArgusThisEncaps |= ARGUS_ENCAPS_LLC; - llc = model->ArgusThisLLC; bcopy((char *) ptr, (char *) llc, sizeof (struct llc)); #define ARGUS_IPX_TAG 100 @@ -1139,12 +1175,11 @@ ((unsigned char *)ðer_type)[0] = ((unsigned char *)&llc->ethertype)[0]; ((unsigned char *)ðer_type)[1] = ((unsigned char *)&llc->ethertype)[1]; - model->ArgusThisNetworkFlowType = ntohs(ether_type); + retn = ntohs(ether_type); model->ArgusThisLength -= sizeof(struct llc); model->ArgusSnapLength -= sizeof(struct llc); model->ArgusThisUpHdr = (ptr + sizeof(struct llc)); - retn = model->ArgusThisNetworkFlowType; } } else { @@ -1421,38 +1456,42 @@ ArgusCreateFlowKey(model, tflow, model->hstruct); if ((flow = ArgusFindFlow (model, model->hstruct)) == NULL) { - flow = ArgusNewFlow(model, model->ArgusThisFlow, model->hstruct, model->ArgusStatusQueue); - if (getArgusControlMonitor(model)) - flow->userlen = ARGUS_MAXSNAPLEN; - status = ARGUS_START; + if ((flow = ArgusNewFlow(model, model->ArgusThisFlow, model->hstruct, model->ArgusStatusQueue)) != NULL) { + if (getArgusControlMonitor(model)) + flow->userlen = ARGUS_MAXSNAPLEN; + status = ARGUS_START; + } + } else status = ARGUS_STATUS; - switch (lcp->code) { - case PPP_LCP_CONF_REQ: - break; - case PPP_LCP_CONF_ACK: - break; - case PPP_LCP_CONF_NACK: - break; - case PPP_LCP_CONF_REJ: - break; - case PPP_LCP_TERM_REQ: - break; - case PPP_LCP_TERM_ACK: - break; - case PPP_LCP_CODE_REJ: - break; - case PPP_LCP_PROTO_REJ: - break; - case PPP_LCP_ECHO_REQ: - break; - case PPP_LCP_ECHO_REPLY: - break; - case PPP_LCP_DISCARD: - break; + if (flow != NULL) { + switch (lcp->code) { + case PPP_LCP_CONF_REQ: + break; + case PPP_LCP_CONF_ACK: + break; + case PPP_LCP_CONF_NACK: + break; + case PPP_LCP_CONF_REJ: + break; + case PPP_LCP_TERM_REQ: + break; + case PPP_LCP_TERM_ACK: + break; + case PPP_LCP_CODE_REJ: + break; + case PPP_LCP_PROTO_REJ: + break; + case PPP_LCP_ECHO_REQ: + break; + case PPP_LCP_ECHO_REPLY: + break; + case PPP_LCP_DISCARD: + break; + } + ArgusUpdateFlow (model, flow, status, 1); } - ArgusUpdateFlow (model, flow, status, 1); } } @@ -1642,10 +1681,19 @@ { struct ArgusSystemFlow *tflow = NULL; struct ArgusFlowStruct *flow = NULL; - int retn = 0, pass = 0; + char *ptr = (char *)ip; + + int retn = 0, pass = 0, type = ETHERTYPE_IP; + model->ArgusTotalPacket++; + while (type > 0) + if ((type = ArgusProcessPacketHdrs (model, ptr, model->ArgusThisLength, type)) >= 0) + ptr = (char *)model->ArgusThisUpHdr; + + ip = model->ArgusThisIpHdr; + if (model->ArgusSrc->sNflag >= model->ArgusTotalPacket) return (retn); @@ -1663,8 +1711,10 @@ model->ArgusThisNetworkFlowType = ETHERTYPE_IPV6; pass = STRUCTCAPTURED(model,*ipv6); } - +/* + model->ArgusThisIpHdr = (unsigned char *)ip; model->ArgusThisUpHdr = (unsigned char *)ip; +*/ model->ArgusThisBytes = length; if (pass) { @@ -1678,9 +1728,11 @@ if ((queue = flow->qhdr.queue) == model->ArgusStatusQueue) { if (ArgusCheckTimeout(model, &flow->qhdr.qtime, getArgusFarReportInterval(model))) { - ArgusRemoveFromQueue(queue, &flow->qhdr, ARGUS_LOCK); + if (flow != (struct ArgusFlowStruct *) queue->start->prv) + ArgusProcessQueueTimeout (model, model->ArgusStatusQueue); // if this record is timed out, all entries in status queue need to be timed out if (!(flow->status & ARGUS_RECORD_WRITTEN)) ArgusSendFlowRecord (model, flow, flow->status); + ArgusRemoveFromQueue(flow->qhdr.queue, &flow->qhdr, ARGUS_LOCK); ArgusPushQueue(model->ArgusStatusQueue, &flow->qhdr, ARGUS_LOCK); queue->reclaim++; @@ -1776,9 +1828,11 @@ model->ArgusTotalCacheHits++; if ((queue = flow->qhdr.queue) == model->ArgusStatusQueue) { if (ArgusCheckTimeout(model, &flow->qhdr.qtime, getArgusFarReportInterval(model))) { - ArgusRemoveFromQueue(queue, &flow->qhdr, ARGUS_LOCK); + if (flow != (struct ArgusFlowStruct *) queue->start->prv) + ArgusProcessQueueTimeout (model, model->ArgusStatusQueue); // if this record is not last, other entries in status queue need to be timed out if (!(flow->status & ARGUS_RECORD_WRITTEN)) ArgusSendFlowRecord (model, flow, flow->status); + ArgusRemoveFromQueue(flow->qhdr.queue, &flow->qhdr, ARGUS_LOCK); ArgusPushQueue(model->ArgusStatusQueue, &flow->qhdr, ARGUS_LOCK); queue->reclaim++; } @@ -1974,44 +2028,18 @@ ArgusNewFlow (struct ArgusModelerStruct *model, struct ArgusSystemFlow *flow, struct ArgusHashStruct *hstruct, struct ArgusQueueStruct *queue) { struct ArgusFlowStruct *retn = NULL; - int timeout = 0, userlen = 0; + int timeout = ARGUS_OTHERTIMEOUT, userlen = 0; int len = flow->hdr.argus_dsrvl8.len; if (len > 0) { model->ArgusTotalNewFlows++; userlen = getArgusUserDataLen(model); - switch (model->ArgusThisNetworkFlowType & 0xFFFF) { - case ETHERTYPE_IPV6: - case ETHERTYPE_IP: - timeout = model->ArgusIPTimeout; - model->ArgusTotalIPFlows++; - break; - - case ETHERTYPE_ARP: - case ETHERTYPE_REVARP: - model->ArgusTotalNonIPFlows++; - timeout = model->ArgusARPTimeout; - break; - - case ARGUS_ISIS: - timeout = ARGUS_OTHERTIMEOUT; - if (getArgusControlMonitor(model)) - userlen = ARGUS_MAXSNAPLEN; - break; - - default: - model->ArgusTotalNonIPFlows++; - timeout = ARGUS_OTHERTIMEOUT; - break; - } - if ((retn = (struct ArgusFlowStruct *) ArgusCalloc (1, sizeof(*retn))) != NULL) { int value; retn->status = ARGUS_START; retn->state = model->state & ARGUS_DIRECTION; retn->trans = model->ArgusTransactionNum++; - retn->timeout = timeout; retn->userlen = userlen; retn->srcint = -1; @@ -2048,6 +2076,38 @@ } else ArgusLog (LOG_WARNING, "ArgusNewFlow() ArgusMalloc error %s.\n", strerror(errno)); + switch (model->ArgusThisNetworkFlowType & 0xFFFF) { + case ETHERTYPE_IPV6: + case ETHERTYPE_IP: + timeout = model->ArgusIPTimeout; + model->ArgusTotalIPFlows++; + if (ArgusControlPlaneProtocol(model, retn)) + retn->userlen = ARGUS_MAXSNAPLEN; + break; + + case ETHERTYPE_ARP: + case ETHERTYPE_REVARP: + timeout = model->ArgusARPTimeout; + model->ArgusTotalNonIPFlows++; + if (getArgusControlMonitor(model)) + retn->userlen = ARGUS_MAXSNAPLEN; + break; + + case ARGUS_ISIS: + timeout = ARGUS_OTHERTIMEOUT; + model->ArgusTotalNonIPFlows++; + if (getArgusControlMonitor(model)) + retn->userlen = ARGUS_MAXSNAPLEN; + break; + + default: + model->ArgusTotalNonIPFlows++; + timeout = ARGUS_OTHERTIMEOUT; + break; + } + + retn->timeout = timeout; + } else ArgusLog (LOG_WARNING, "ArgusNewFlow() flow key is not correct len equals zero\n"); @@ -2146,8 +2206,10 @@ if ((metric = (struct ArgusMetricStruct *) flow->dsrs[ARGUS_METRIC_INDEX]) == NULL) { metric = (struct ArgusMetricStruct *)&flow->canon.metric.hdr; memset(metric, 0, sizeof(*metric)); - metric->hdr.type = ARGUS_METER_DSR; flow->dsrs[ARGUS_METRIC_INDEX] = (struct ArgusDSRHeader *) metric; + metric->hdr.type = ARGUS_METER_DSR; + metric->hdr.argus_dsrvl8.len = (sizeof(struct ArgusMetricStruct) + 3) / 4; + flow->dsrindex |= 1 << ARGUS_METRIC_INDEX; } @@ -3029,7 +3091,7 @@ unsigned char type = 0; if ((metric->src.pkts + metric->dst.pkts) > 0) { - if ((metric->src.pkts) && (metric->dst.pkts)) { + if (metric->src.pkts && metric->dst.pkts) { if ((0xFF >= metric->src.pkts) && (0xFF >= metric->dst.pkts) && (0xFF >= metric->src.bytes) && (0xFF >= metric->dst.bytes)) type = ARGUS_SRCDST_BYTE; @@ -3494,6 +3556,7 @@ retn->drate = rec->drate; retn->sload = rec->sload; retn->dload = rec->dload; + retn->pcr = rec->pcr; retn->sploss = rec->sploss; retn->dploss = rec->dploss; } @@ -3712,6 +3775,7 @@ retn->drate = ArgusFetchDstRate(retn); retn->sload = ArgusFetchSrcLoad(retn); retn->dload = ArgusFetchDstRate(retn); + retn->pcr = ArgusFetchAppByteRatio(retn); retn->sploss = ArgusFetchPercentSrcLoss(retn); retn->dploss = ArgusFetchPercentDstLoss(retn); @@ -3755,7 +3819,9 @@ ArgusSendFlowRecord (struct ArgusModelerStruct *model, struct ArgusFlowStruct *flow, unsigned char state) { struct ArgusRecordStruct *argus; +#ifdef ARGUSDEBUG int scheduled = 0; +#endif if (flow != NULL) { if (model->ArgusOutputList) { @@ -3777,7 +3843,9 @@ ArgusPushBackList (model->ArgusOutputList, (struct ArgusListRecord *) argus, ARGUS_LOCK); flow->status |= ARGUS_RECORD_WRITTEN; model->ArgusTotalSends++; +#ifdef ARGUSDEBUG scheduled = 1; +#endif #if defined(ARGUS_THREADS) pthread_mutex_lock(&model->ArgusOutputList->lock); @@ -3877,11 +3945,15 @@ struct ArgusSystemFlow *tflow; if ((ip != NULL) && STRUCTCAPTURED(model, *ip)) { - int nxt, done = 0, i = 0, len; + int nxt, done = 0, i = 0; unsigned int *sp = (unsigned int*) &ip->ip6_src; unsigned int *dp = (unsigned int*) &ip->ip6_dst; + unsigned short alen, sport = 0, dport = 0; unsigned int *rsp, *rdp; - unsigned short sport = 0, dport = 0; +#ifdef _LITTLE_ENDIAN +// unsigned plen; +// plen = ntohs(ip->ip6_plen); +#endif tflow = model->ArgusThisFlow; rsp = (unsigned int *)&tflow->ipv6_flow.ip_src; @@ -3889,34 +3961,31 @@ tflow->ipv6_flow.flow = 0; -#ifdef _LITTLE_ENDIAN - ip->ip6_plen = ntohs(ip->ip6_plen); -#endif nxt = ip->ip6_nxt; model->ArgusThisIpHdr = ip; - len = sizeof(ip->ip6_src)/sizeof(int); + alen = sizeof(ip->ip6_src)/sizeof(int); if (model->ArgusFlowType == ARGUS_BIDIRECTIONAL) { - while ((i < len) && (*dp == *sp)) { /* copy while they are equal */ + while ((i < alen) && (*dp == *sp)) { /* copy while they are equal */ *rsp++ = *sp++; /* leave pointers where they are not */ *rdp++ = *dp++; i++; } - if (i < len) { + if (i < alen) { if (ntohl(*sp) < ntohl(*dp)) { unsigned int *tmp = rdp; rdp = rsp; rsp = tmp; model->state |= ARGUS_DIRECTION; } - while (i < len) { + while (i < alen) { *rsp++ = *sp++; *rdp++ = *dp++; i++; } } } else { - for (i = 0; i < len; i++) { + for (i = 0; i < alen; i++) { *rsp++ = *sp++; *rdp++ = *dp++; } @@ -4039,7 +4108,7 @@ } } - } else + } else { if (model->ArgusFlowKey & ARGUS_FLOW_KEY_LAYER_3_MATRIX) { tflow->hdr.subtype = ARGUS_FLOW_LAYER_3_MATRIX; tflow->hdr.argus_dsrvl8.qual = ARGUS_TYPE_IPV6; @@ -4048,6 +4117,7 @@ tflow->ipv6_flow.dport = 0; tflow->ipv6_flow.ip_p = 0; } + } } #ifdef ARGUSDEBUG @@ -4473,6 +4543,18 @@ } int +getArgusTrackDuplicates (struct ArgusModelerStruct *model) +{ + return(model->ArgusTrackDuplicates); +} + +void +setArgusTrackDuplicates (struct ArgusModelerStruct *model, int value) +{ + model->ArgusTrackDuplicates = value; +} + +int getArgusUserDataLen (struct ArgusModelerStruct *model) { return (model->ArgusUserDataLen); diff -Nru securityonion-argus-server-3.0.6/argus/ArgusModeler.h securityonion-argus-server-3.0.8/argus/ArgusModeler.h --- securityonion-argus-server-3.0.6/argus/ArgusModeler.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusModeler.h 2014-06-17 21:32:20.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Modeler includes - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusModeler.h#53 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusModeler.h#58 $ + * $DateTime: 2014/05/12 15:49:11 $ + * $Change: 2821 $ */ @@ -81,7 +81,7 @@ #define ARGUS_DEBUG 0xFF #define ARGUS_RECORD_WRITTEN 0x00000001 -#define ARGUSTIMEOUTQS 301 +#define ARGUSTIMEOUTQS 65534 #define ARGUS_CLNS 129 #define ARGUS_ESIS 130 @@ -235,7 +235,7 @@ unsigned char ArgusFlowType, ArgusFlowKey; unsigned short ArgusOptionIndicator; - int ArgusInProtocol, ArgusThisDir; + int ArgusInProtocol, ArgusThisDir, ArgusTrackDuplicates; struct ArgusKeyStrokeConf ArgusKeyStroke; struct ArgusUniStats *ArgusThisStats; @@ -258,6 +258,14 @@ int ArgusThisLength; int ArgusThisBytes; + struct timeval ArgusGlobalTime; + struct timeval ArgusStartTime; + struct timeval ArgusNowTime; + struct timeval ArgusUpdateInterval; + struct timeval ArgusUpdateTimer; + + long long ival; + long long ArgusTotalPacket; long long ArgusTotalFrags; long long ArgusTotalIPPkts; @@ -286,12 +294,6 @@ long long ArgusTotalUpdates; long long ArgusLastUpdates; - - struct timeval ArgusGlobalTime; - struct timeval ArgusStartTime; - struct timeval ArgusNowTime; - struct timeval ArgusUpdateInterval; - struct timeval ArgusUpdateTimer; struct timeval ArgusLastPacketTimer; struct timeval ArgusAdjustedTimer; @@ -448,6 +450,9 @@ int getArgusTunnelDiscovery (struct ArgusModelerStruct *); void setArgusTunnelDiscovery (struct ArgusModelerStruct *, int); +int getArgusTrackDuplicates (struct ArgusModelerStruct *); +void setArgusTrackDuplicates (struct ArgusModelerStruct *, int); + void setArgusFlowKey(struct ArgusModelerStruct *, int); void setArgusFlowType(struct ArgusModelerStruct *, int); @@ -629,6 +634,9 @@ extern int getArgusTunnelDiscovery(struct ArgusModelerStruct *); extern void setArgusTunnelDiscovery(struct ArgusModelerStruct *, int); +extern int getArgusTrackDuplicates (struct ArgusModelerStruct *); +extern void setArgusTrackDuplicates (struct ArgusModelerStruct *, int); + extern void setArgusFlowKey(struct ArgusModelerStruct *, int); extern void setArgusFlowType(struct ArgusModelerStruct *, int); diff -Nru securityonion-argus-server-3.0.6/argus/ArgusNetflow.c securityonion-argus-server-3.0.8/argus/ArgusNetflow.c --- securityonion-argus-server-3.0.6/argus/ArgusNetflow.c 2012-03-15 02:52:22.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusNetflow.c 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Fragment processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -43,23 +43,53 @@ #include #include -struct ArgusRecord *ArgusParseCiscoRecordV9Data (struct ArgusModelerStruct *, void **, u_char *, int); -struct ArgusRecord *ArgusParseCiscoRecordV9Template (struct ArgusModelerStruct *, void **, u_char *, int); +#include + +struct ArgusRecord *ArgusParseCiscoRecordV9Data (struct ArgusParserStruct *, struct ArgusModelerStruct *, struct ArgusQueueStruct *, u_char *, int *); +struct ArgusRecord *ArgusParseCiscoRecordV9Template (struct ArgusModelerStruct *, struct ArgusQueueStruct *, u_char *, int); +struct ArgusRecord *ArgusParseCiscoRecordV9OptionTemplate (struct ArgusModelerStruct *, struct ArgusQueueStruct *, u_char *, int); + + +unsigned char *ArgusNetFlowRecordHeader = NULL; + +unsigned char ArgusNetFlowArgusRecordBuf[4098]; +struct ArgusRecord *ArgusNetFlowArgusRecord = (struct ArgusRecord *) ArgusNetFlowArgusRecordBuf; + + +struct ArgusCiscoTemplateStruct { + int length, count; + struct timeval lasttime; + CiscoFlowTemplateFlowEntryV9_t **tHdr; +}; + +struct ArgusCiscoSourceStruct { + struct ArgusQueueHeader qhdr; + struct ArgusHashTableHeader htblbuf, *htblhdr; + unsigned int srcid, saddr; + struct timeval startime, lasttime; + struct ArgusCiscoTemplateStruct templates[0x10000]; +}; + +int ArgusCounter; +unsigned int ArgusFlowSeq = 0; +unsigned int ArgusCiscoSrcId = 0; +unsigned int ArgusCiscoSrcAddr = 0; +unsigned int ArgusSysUptime = 0; +struct timeval ArgusCiscoTvpBuf, *ArgusCiscoTvp = &ArgusCiscoTvpBuf; +struct ArgusQueueStruct *ArgusTemplateQueue = NULL; void ArgusParseCiscoRecord (struct ArgusModelerStruct *model, void *ptr) { int ArgusReadSocketState = ARGUS_READINGPREHDR; int ArgusReadSocketSize = 0; - unsigned int ArgusFlowSeq = 0, ArgusCounter; -// unsigned int ArgusSourceId; - unsigned int ArgusSysUptime = 0; unsigned short ArgusReadCiscoVersion; // unsigned short ArgusReadSocketNum; - struct timeval tvpbuf, *tvp = &tvpbuf; - void **templates = NULL; + if (ArgusTemplateQueue == NULL) + if ((ArgusTemplateQueue = ArgusNewQueue()) == NULL) + ArgusLog (LOG_ERR, "ArgusParseCiscoRecord () ArgusNewQueue error %s\n", strerror(errno)); while ((char *)ptr < (char *)model->ArgusThisSnapEnd) { switch (ArgusReadSocketState) { @@ -82,8 +112,8 @@ ArgusSysUptime = ntohl(ArgusNetFlow->sysUptime); ArgusCounter = ntohs(ArgusNetFlow->count); - tvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); - tvp->tv_usec = ntohl(ArgusNetFlow->unix_nsecs)/1000; + ArgusCiscoTvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); + ArgusCiscoTvp->tv_usec = ntohl(ArgusNetFlow->unix_nsecs)/1000; break; } @@ -94,8 +124,8 @@ ArgusSysUptime = ntohl(ArgusNetFlow->sysUptime); ArgusFlowSeq = ntohl(ArgusNetFlow->flow_sequence); ArgusCounter = ntohs(ArgusNetFlow->count); - tvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); - tvp->tv_usec = ntohl(ArgusNetFlow->unix_nsecs)/1000; + ArgusCiscoTvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); + ArgusCiscoTvp->tv_usec = ntohl(ArgusNetFlow->unix_nsecs)/1000; break; } @@ -106,8 +136,8 @@ ArgusSysUptime = ntohl(ArgusNetFlow->sysUptime); ArgusFlowSeq = ntohl(ArgusNetFlow->flow_sequence); ArgusCounter = 0; - tvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); - tvp->tv_usec = ntohl(ArgusNetFlow->unix_nsecs)/1000; + ArgusCiscoTvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); + ArgusCiscoTvp->tv_usec = ntohl(ArgusNetFlow->unix_nsecs)/1000; break; } @@ -118,8 +148,8 @@ ArgusSysUptime = ntohl(ArgusNetFlow->sysUptime); ArgusFlowSeq = ntohl(ArgusNetFlow->flow_sequence); ArgusCounter = 0; - tvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); - tvp->tv_usec = ntohl(ArgusNetFlow->unix_nsecs)/1000; + ArgusCiscoTvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); + ArgusCiscoTvp->tv_usec = ntohl(ArgusNetFlow->unix_nsecs)/1000; break; } @@ -133,12 +163,18 @@ CiscoFlowHeaderV9_t *ArgusNetFlow = (CiscoFlowHeaderV9_t *) ptr; ArgusReadSocketSize = sizeof(*ArgusNetFlow); - ArgusCounter = ntohs(ArgusNetFlow->count); - ArgusSysUptime = ntohl(ArgusNetFlow->sysUptime); - tvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); - tvp->tv_usec = 0; - ArgusFlowSeq = ntohl(ArgusNetFlow->package_sequence); -// ArgusSourceId = ntohl(ArgusNetFlow->source_id); + ArgusSysUptime = ntohl(ArgusNetFlow->sysUptime); + ArgusCiscoTvp->tv_sec = ntohl(ArgusNetFlow->unix_secs); + ArgusCiscoTvp->tv_usec = 0; + ArgusFlowSeq = ntohl(ArgusNetFlow->package_sequence); + ArgusCounter = ntohs(ArgusNetFlow->count); + ArgusCiscoSrcId = ntohl(ArgusNetFlow->source_id); + + if (model->state & ARGUS_REVERSE) + ArgusCiscoSrcAddr = model->ArgusThisFlow->flow_un.ip.ip_src; + else + ArgusCiscoSrcAddr = model->ArgusThisFlow->flow_un.ip.ip_dst; + break; } @@ -201,35 +237,27 @@ timeval = ntohl(ArgusNetFlow->first); time->src.start.tv_sec = (timeval - (long)ArgusSysUptime)/1000; - time->src.start.tv_sec += tvp->tv_sec; + time->src.start.tv_sec += ArgusCiscoTvp->tv_sec; time->src.start.tv_usec = ((timeval - (long)ArgusSysUptime)%1000) * 1000; - time->src.start.tv_usec += tvp->tv_usec; + time->src.start.tv_usec += ArgusCiscoTvp->tv_usec; if (time->src.start.tv_usec >= 1000000) { time->src.start.tv_sec++; time->src.start.tv_usec -= 1000000; } - if (time->src.start.tv_usec < 0) { - time->src.start.tv_sec--; - time->src.start.tv_usec += 1000000; - } timeval = ntohl(ArgusNetFlow->last); time->src.end.tv_sec = (timeval - (long)ArgusSysUptime)/1000; - time->src.end.tv_sec += tvp->tv_sec; + time->src.end.tv_sec += ArgusCiscoTvp->tv_sec; time->src.end.tv_usec = ((timeval - (long)ArgusSysUptime)%1000) * 1000; - time->src.end.tv_usec += tvp->tv_usec; + time->src.end.tv_usec += ArgusCiscoTvp->tv_usec; if (time->src.end.tv_usec >= 1000000) { time->src.end.tv_sec++; time->src.end.tv_usec -= 1000000; } - if (time->src.end.tv_usec < 0) { - time->src.end.tv_sec--; - time->src.end.tv_usec += 1000000; - } time->src.start.tv_usec = (time->src.start.tv_usec / 1000) * 1000; time->src.end.tv_usec = (time->src.end.tv_usec / 1000) * 1000; @@ -365,7 +393,7 @@ ArgusCreateFlowKey(model, sflow, hstruct); if ((flow = ArgusNewFlow(model, sflow, NULL, NULL)) != NULL) { struct ArgusTimeObject *time = &flow->canon.time; - long timeval; + int timeval, secs, usecs; flow->canon.hdr.type = ARGUS_FAR | ARGUS_NETFLOW | ARGUS_VERSION; @@ -375,39 +403,37 @@ time->hdr.argus_dsrvl8.len = 5; timeval = ntohl(ArgusNetFlow->first); - time->src.start.tv_sec = (timeval - (long)ArgusSysUptime)/1000; - time->src.start.tv_sec += tvp->tv_sec; + secs = ArgusCiscoTvp->tv_sec + ((timeval - (int)ArgusSysUptime) / 1000); + usecs = ArgusCiscoTvp->tv_usec + ((timeval - (int)ArgusSysUptime) % 1000) * 1000; - time->src.start.tv_usec = ((timeval - (long)ArgusSysUptime)%1000) * 1000; - time->src.start.tv_usec += tvp->tv_usec; + time->src.start.tv_sec = secs; - if (time->src.start.tv_usec >= 1000000) { - time->src.start.tv_sec++; - time->src.start.tv_usec -= 1000000; - } - if (time->src.start.tv_usec < 0) { + if (usecs < 0) { time->src.start.tv_sec--; - time->src.start.tv_usec += 1000000; + usecs += 1000000; + } else + if (usecs > 1000000) { + time->src.start.tv_sec++; + usecs -= 1000000; } + time->src.start.tv_usec = usecs; timeval = ntohl(ArgusNetFlow->last); - time->src.end.tv_sec = (timeval - (long)ArgusSysUptime)/1000; - time->src.end.tv_sec += tvp->tv_sec; + secs = ArgusCiscoTvp->tv_sec + ((timeval - (int)ArgusSysUptime) / 1000); + usecs = ArgusCiscoTvp->tv_usec + ((timeval - (int)ArgusSysUptime) % 1000) * 1000; - time->src.end.tv_usec = ((timeval - (long)ArgusSysUptime)%1000) * 1000; - time->src.end.tv_usec += tvp->tv_usec; + time->src.end.tv_sec = secs; - if (time->src.end.tv_usec >= 1000000) { - time->src.end.tv_sec++; - time->src.end.tv_usec -= 1000000; - } - if (time->src.end.tv_usec < 0) { + if (usecs < 0) { time->src.end.tv_sec--; - time->src.end.tv_usec += 1000000; - } + usecs += 1000000; + } else + if (usecs > 1000000) { + time->src.end.tv_sec++; + usecs -= 1000000; + } + time->src.end.tv_usec = usecs; - time->src.start.tv_usec = (time->src.start.tv_usec / 1000) * 1000; - time->src.end.tv_usec = (time->src.end.tv_usec / 1000) * 1000; flow->dsrindex |= 1 << ARGUS_TIME_INDEX; flow->dsrs[ARGUS_TIME_INDEX] = (void *)time; @@ -563,35 +589,27 @@ timeval = ntohl(ArgusNetFlow->first); time->src.start.tv_sec = (timeval - (long)ArgusSysUptime)/1000; - time->src.start.tv_sec += tvp->tv_sec; + time->src.start.tv_sec += ArgusCiscoTvp->tv_sec; time->src.start.tv_usec = ((timeval - (long)ArgusSysUptime)%1000) * 1000; - time->src.start.tv_usec += tvp->tv_usec; + time->src.start.tv_usec += ArgusCiscoTvp->tv_usec; if (time->src.start.tv_usec >= 1000000) { time->src.start.tv_sec++; time->src.start.tv_usec -= 1000000; } - if (time->src.start.tv_usec < 0) { - time->src.start.tv_sec--; - time->src.start.tv_usec += 1000000; - } timeval = ntohl(ArgusNetFlow->last); time->src.end.tv_sec = (timeval - (long)ArgusSysUptime)/1000; - time->src.end.tv_sec += tvp->tv_sec; + time->src.end.tv_sec += ArgusCiscoTvp->tv_sec; time->src.end.tv_usec = ((timeval - (long)ArgusSysUptime)%1000) * 1000; - time->src.end.tv_usec += tvp->tv_usec; + time->src.end.tv_usec += ArgusCiscoTvp->tv_usec; if (time->src.end.tv_usec >= 1000000) { time->src.end.tv_sec++; time->src.end.tv_usec -= 1000000; } - if (time->src.end.tv_usec < 0) { - time->src.end.tv_sec--; - time->src.end.tv_usec += 1000000; - } time->src.start.tv_usec = (time->src.start.tv_usec / 1000) * 1000; time->src.end.tv_usec = (time->src.end.tv_usec / 1000) * 1000; @@ -750,35 +768,27 @@ timeval = ntohl(ArgusNetFlow->first); time->src.start.tv_sec = (timeval - (long)ArgusSysUptime)/1000; - time->src.start.tv_sec += tvp->tv_sec; + time->src.start.tv_sec += ArgusCiscoTvp->tv_sec; time->src.start.tv_usec = ((timeval - (long)ArgusSysUptime)%1000) * 1000; - time->src.start.tv_usec += tvp->tv_usec; + time->src.start.tv_usec += ArgusCiscoTvp->tv_usec; if (time->src.start.tv_usec >= 1000000) { time->src.start.tv_sec++; time->src.start.tv_usec -= 1000000; } - if (time->src.start.tv_usec < 0) { - time->src.start.tv_sec--; - time->src.start.tv_usec += 1000000; - } timeval = ntohl(ArgusNetFlow->last); time->src.end.tv_sec = (timeval - (long)ArgusSysUptime)/1000; - time->src.end.tv_sec += tvp->tv_sec; + time->src.end.tv_sec += ArgusCiscoTvp->tv_sec; time->src.end.tv_usec = ((timeval - (long)ArgusSysUptime)%1000) * 1000; - time->src.end.tv_usec += tvp->tv_usec; + time->src.end.tv_usec += ArgusCiscoTvp->tv_usec; if (time->src.end.tv_usec >= 1000000) { time->src.end.tv_sec++; time->src.end.tv_usec -= 1000000; } - if (time->src.end.tv_usec < 0) { - time->src.end.tv_sec--; - time->src.end.tv_usec += 1000000; - } time->src.start.tv_usec = (time->src.start.tv_usec / 1000) * 1000; time->src.end.tv_usec = (time->src.end.tv_usec / 1000) * 1000; @@ -905,31 +915,32 @@ int done = 0, flowset_id, flowset_len; flowset_id = ntohs(ArgusNetFlow->flowset_id); - flowset_len = ntohs(ArgusNetFlow->length); - - switch (flowset_id) { - case k_CiscoV9TemplateFlowsetId: { - if (ArgusParseCiscoRecordV9Template(model, templates, (u_char *)(ArgusNetFlow + 1), (flowset_len - sizeof(*ArgusNetFlow))) == NULL) { + if ((flowset_len = ntohs(ArgusNetFlow->length)) > 0) { + switch (flowset_id) { + case k_CiscoV9TemplateFlowsetId: { + if (ArgusParseCiscoRecordV9Template(model, ArgusTemplateQueue, (u_char *)(ArgusNetFlow + 1), (flowset_len - sizeof(*ArgusNetFlow))) == NULL) { + } + break; } - break; - } - case k_CiscoV9OptionsFlowsetId: { - done++; - break; - } + case k_CiscoV9OptionsFlowsetId: { + if (ArgusParseCiscoRecordV9OptionTemplate(model, ArgusTemplateQueue, (u_char *)(ArgusNetFlow + 1), (flowset_len - sizeof(*ArgusNetFlow))) == NULL) { + } + break; + } - default: { - if (flowset_id >= k_CiscoV9MinRecordFlowsetId) { - if (ArgusParseCiscoRecordV9Data(model, templates, (u_char *)ArgusNetFlow, flowset_len) == NULL) { + default: { + if (flowset_id >= k_CiscoV9MinRecordFlowsetId) { + ArgusParseCiscoRecordV9Data(ArgusParser, model, ArgusTemplateQueue, (u_char *) ptr, &ArgusCounter); } + break; } - done++; - break; } - } - ptr += flowset_len; - break; + ptr += flowset_len; + break; + + } else + done++; } } break; @@ -958,47 +969,676 @@ #endif } + +typedef struct value { + union { + uint8_t val8[16]; + uint16_t val16[8]; + uint32_t val32[4]; + uint64_t val64[2]; + uint64_t val128[2]; + }; +} value_t; + + struct ArgusRecord * -ArgusParseCiscoRecordV9Data (struct ArgusModelerStruct *model, void **templates, u_char *ptr, int len) +ArgusParseCiscoRecordV9Data (struct ArgusParserStruct *parser, struct ArgusModelerStruct *model, struct ArgusQueueStruct *tqueue, u_char *ptr, int *cnt) { struct ArgusRecord *retn = NULL; - int done = 0; + struct ArgusCiscoTemplateStruct *templates = NULL; + struct ArgusCiscoSourceStruct *src; + u_char *tptr = ptr; + + if (tqueue != NULL) { + int i, count = tqueue->count; + for (i = 0; (i < count) && (templates == NULL); i++) { + src = (struct ArgusCiscoSourceStruct *)ArgusPopQueue (tqueue, ARGUS_LOCK); + if ((src->srcid == ArgusCiscoSrcId) && (src->saddr == ArgusCiscoSrcAddr)) + templates = src->templates; + ArgusAddToQueue(tqueue, &src->qhdr, ARGUS_LOCK); + } + } - if (templates != NULL) { - while (!done) { - CiscoFlowEntryV9_t *cflow = (CiscoFlowEntryV9_t *) ptr; + if (templates == NULL) + return(retn); + + +// using the matching template, parse out a single record. we need to update ptr and +// len so that they represent marching through the buffer, parsing out the records. +// + + { + CiscoFlowEntryV9_t *cflow = (CiscoFlowEntryV9_t *) tptr; + CiscoFlowTemplateHeaderV9_t *tHdr = NULL; + CiscoFlowTemplateFlowEntryV9_t *tData; + + cflow->flowset_id = ntohs(cflow->flowset_id); + cflow->length = ntohs(cflow->length); + + if (cflow->length) { +#define ARGUS_TEMPLATE_TIMEOUT 1800 + + if ((tHdr = (CiscoFlowTemplateHeaderV9_t *) templates[cflow->flowset_id].tHdr) != NULL) { + if ((templates[cflow->flowset_id].lasttime.tv_sec + ARGUS_TEMPLATE_TIMEOUT) > model->ArgusGlobalTime.tv_sec) { + int i, count = tHdr->count, nflowPad = 3; + struct ArgusFlowStruct flowbuf, *flow = &flowbuf; + u_char *sptr = (u_char *)(cflow + 1); + u_char *eptr = sptr + (cflow->length - sizeof(*cflow)); + +// process an entire flow set + + while (sptr < (eptr - nflowPad)) { + struct ArgusDSRHeader *dsr = (struct ArgusDSRHeader *) &ArgusNetFlowArgusRecordBuf[4]; + + tData = (CiscoFlowTemplateFlowEntryV9_t *)(tHdr + 1); + bzero(flow, sizeof(*flow)); + retn = NULL; + + for (i = 0; i < count; i++) { + value_t value; + + bzero(&value, sizeof(value)); + + switch (tData->length) { + case 1: value.val8[0] = *sptr; break; + case 2: value.val16[0] = EXTRACT_16BITS(sptr); break; + case 4: value.val32[0] = EXTRACT_32BITS(sptr); break; + case 8: value.val64[0] = EXTRACT_64BITS(sptr); break; + } + sptr += tData->length; + + switch (tData->type) { + case k_CiscoV9InBytes: { + flow->canon.metric.src.bytes = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_METRIC_INDEX; + flow->dsrs[ARGUS_METRIC_INDEX] = &flow->canon.metric.hdr; + break; + } + case k_CiscoV9InPackets: { + flow->canon.metric.src.pkts = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_METRIC_INDEX; + flow->dsrs[ARGUS_METRIC_INDEX] = &flow->canon.metric.hdr; + break; + } + case k_CiscoV9Flows: { + break; + } + case k_CiscoV9InProtocol: { + flow->canon.flow.flow_un.ip.ip_p = value.val8[0]; + flow->dsrindex |= 1 << ARGUS_FLOW_INDEX; + flow->dsrs[ARGUS_FLOW_INDEX] = &flow->canon.flow.hdr; + break; + } + case k_CiscoV9SrcTos: { + flow->canon.attr.src.tos = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_IPATTR_INDEX; + flow->dsrs[ARGUS_IPATTR_INDEX] = &flow->canon.attr.hdr; + break; + } + case k_CiscoV9TcpFlags: { + struct ArgusNetworkStruct *net = &flow->canon.net; + struct ArgusTCPStatus *tcp = (struct ArgusTCPStatus *)&net->net_union.tcpstatus; + unsigned char flags = value.val8[0]; + + net->hdr.type = ARGUS_NETWORK_DSR; + net->hdr.subtype = ARGUS_TCP_STATUS; + net->hdr.argus_dsrvl8.len = 3; + net->net_union.tcpstatus.src = flags; + + if (flags & TH_RST) + tcp->status |= ARGUS_RESET; + + if (flags & TH_FIN) + tcp->status |= ARGUS_FIN; + + if ((flags & TH_ACK) || (flags & TH_PUSH) || (flags & TH_URG)) + tcp->status |= ARGUS_CON_ESTABLISHED; + + switch (flags & (TH_SYN|TH_ACK)) { + case (TH_SYN): + tcp->status |= ARGUS_SAW_SYN; + break; + + case (TH_SYN|TH_ACK): + break; + } + flow->dsrindex |= 1 << ARGUS_NETWORK_INDEX; + flow->dsrs[ARGUS_NETWORK_INDEX] = (void *)net; + break; + } + case k_CiscoV9L4SrcPort: { + flow->canon.flow.flow_un.ip.sport = value.val16[0]; + flow->dsrindex |= 1 << ARGUS_FLOW_INDEX; + flow->dsrs[ARGUS_FLOW_INDEX] = &flow->canon.flow.hdr; + break; + } + case k_CiscoV9IpV4SrcAddr: { + flow->canon.flow.flow_un.ip.ip_src = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_FLOW_INDEX; + flow->dsrs[ARGUS_FLOW_INDEX] = &flow->canon.flow.hdr; + break; + } + case k_CiscoV9SrcMask: { + uint32_t mask = 0xffffffff << (32 - value.val8[0]); + flow->canon.flow.flow_un.ip.smask = mask; + flow->dsrindex |= 1 << ARGUS_FLOW_INDEX; + flow->dsrs[ARGUS_FLOW_INDEX] = &flow->canon.flow.hdr; + break; + } + case k_CiscoV9InputSnmp: { + break; + } + case k_CiscoV9L4DstPort: { + flow->canon.flow.flow_un.ip.dport = value.val16[0]; + flow->dsrindex |= 1 << ARGUS_FLOW_INDEX; + flow->dsrs[ARGUS_FLOW_INDEX] = &flow->canon.flow.hdr; + break; + } + case k_CiscoV9IpV4DstAddr: { + flow->canon.flow.flow_un.ip.ip_dst = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_FLOW_INDEX; + flow->dsrs[ARGUS_FLOW_INDEX] = &flow->canon.flow.hdr; + break; + } + case k_CiscoV9DstMask: { + uint32_t mask = 0xffffffff << (32 - value.val8[0]); + flow->canon.flow.flow_un.ip.dmask = mask; + flow->dsrindex |= 1 << ARGUS_FLOW_INDEX; + flow->dsrs[ARGUS_FLOW_INDEX] = &flow->canon.flow.hdr; + break; + } + case k_CiscoV9OutputSnmp: { + break; + } + case k_CiscoV9IpV4NextHop: { + break; + } + case k_CiscoV9SrcAS: { + flow->canon.asn.src_as = (tData->length == 2) ? value.val16[0] : value.val32[0]; + flow->dsrindex |= 1 << ARGUS_ASN_INDEX; + flow->dsrs[ARGUS_ASN_INDEX] = &flow->canon.asn.hdr; + break; + } + case k_CiscoV9DstAS: { + flow->canon.asn.dst_as = (tData->length == 2) ? value.val16[0] : value.val32[0]; + flow->dsrindex |= 1 << ARGUS_ASN_INDEX; + flow->dsrs[ARGUS_ASN_INDEX] = &flow->canon.asn.hdr; + break; + } + case k_CiscoV9BgpIpV4NextHop: { + break; + } + case k_CiscoV9MulDstPkts: { + break; + } + case k_CiscoV9MulDstBytes: { + break; + } + case k_CiscoV9LastSwitched: { + long timeval = (tData->length == 2) ? value.val16[0] : value.val32[0]; + int secs, usecs; + + secs = ((timeval - ArgusSysUptime) / 1000); + usecs = ((timeval - ArgusSysUptime) % 1000) * 1000; + + flow->canon.time.src.end.tv_sec = ArgusCiscoTvp->tv_sec + secs; + if (usecs < 0) { + flow->canon.time.src.end.tv_sec--; + usecs += 1000000; + } + flow->canon.time.src.end.tv_usec = ArgusCiscoTvp->tv_usec + usecs; - cflow->flowset_id = ntohs(cflow->flowset_id); - cflow->length = ntohs(cflow->length); + flow->dsrindex |= 1 << ARGUS_TIME_INDEX; + flow->dsrs[ARGUS_TIME_INDEX] = &flow->canon.time.hdr; + break; + } + case k_CiscoV9FirstSwitched: { + long timeval = (tData->length == 2) ? value.val16[0] : value.val32[0]; + int secs, usecs; + + secs = ((timeval - ArgusSysUptime) / 1000); + usecs = ((timeval - ArgusSysUptime) % 1000) * 1000; + + flow->canon.time.src.start.tv_sec = ArgusCiscoTvp->tv_sec + secs; + if (usecs < 0) { + flow->canon.time.src.start.tv_sec--; + usecs += 1000000; + } + flow->canon.time.src.start.tv_usec = ArgusCiscoTvp->tv_usec + usecs; - if (templates[cflow->flowset_id]) { + flow->dsrindex |= 1 << ARGUS_TIME_INDEX; + flow->dsrs[ARGUS_TIME_INDEX] = &flow->canon.time.hdr; + break; + } + case k_CiscoV9OutBytes: { + flow->canon.metric.dst.bytes = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_METRIC_INDEX; + flow->dsrs[ARGUS_METRIC_INDEX] = &flow->canon.metric.hdr; + break; + } + case k_CiscoV9OutPkts: { + flow->canon.metric.dst.pkts = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_METRIC_INDEX; + flow->dsrs[ARGUS_METRIC_INDEX] = &flow->canon.metric.hdr; + break; + } + case k_CiscoV9MinPktLen: { + flow->canon.psize.src.psizemin = value.val16[0]; + flow->dsrindex |= 1 << ARGUS_PSIZE_INDEX; + flow->dsrs[ARGUS_PSIZE_INDEX] = &flow->canon.psize.hdr; + break; + } + case k_CiscoV9MaxPktLen: { + flow->canon.psize.src.psizemax = value.val16[0]; + flow->dsrindex |= 1 << ARGUS_PSIZE_INDEX; + flow->dsrs[ARGUS_PSIZE_INDEX] = &flow->canon.psize.hdr; + break; + } + case k_CiscoV9IpV6SrcAddr: { + break; + } + case k_CiscoV9IpV6DstAddr: { + break; + } + case k_CiscoV9IPv6SrcMask: { + break; + } + case k_CiscoV9IpV6DstMask: { + break; + } + case k_CiscoV9IpV6FlowLabel: { + break; + } + case k_CiscoV9IpV6IcmpType: { + break; + } + case k_CiscoV9IpV6MulIgmpType: { + break; + } + case k_CiscoV9IpV6SamplingInterval: { + break; + } + case k_CiscoV9IpV6SamplingAlgorithm: { + break; + } + case k_CiscoV9FlowActiveTimeout: { + break; + } + case k_CiscoV9FlowInactiveTimeout: { + break; + } + case k_CiscoV9EngineType: { + break; + } + case k_CiscoV9EngineID: { + break; + } + case k_CiscoV9TotalBytesExp: { + break; + } + case k_CiscoV9TotalPktsExp: { + break; + } + case k_CiscoV9TotalFlowsExp: { + break; + } + case k_CiscoV9MplsTopLabelType: { + break; + } + case k_CiscoV9MplsTopLabelIPAddr: { + break; + } + case k_CiscoV9FlowSamplerID: { + break; + } + case k_CiscoV9FlowSamplerMode: { + break; + } + case k_CiscoV9FlowSamplerRandomInt: { + break; + } + + case k_CiscoV9MinTtl: { + flow->canon.attr.src.ttl = value.val8[0]; + flow->dsrindex |= 1 << ARGUS_IPATTR_INDEX; + flow->dsrs[ARGUS_IPATTR_INDEX] = &flow->canon.attr.hdr; + break; + } + case k_CiscoV9MaxTtl: { + flow->canon.attr.src.ttl = value.val8[0]; + flow->dsrindex |= 1 << ARGUS_IPATTR_INDEX; + flow->dsrs[ARGUS_IPATTR_INDEX] = &flow->canon.attr.hdr; + break; + } + case k_CiscoV9IPv4IpId: { + flow->canon.attr.src.ip_id = value.val16[0]; + flow->dsrindex |= 1 << ARGUS_IPATTR_INDEX; + flow->dsrs[ARGUS_IPATTR_INDEX] = &flow->canon.attr.hdr; + break; + } + case k_CiscoV9DstTos: { + flow->canon.attr.dst.tos = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_IPATTR_INDEX; + flow->dsrs[ARGUS_IPATTR_INDEX] = &flow->canon.attr.hdr; + break; + } + case k_CiscoV9SrcMac: { + flow->dsrindex |= 1 << ARGUS_MAC_INDEX; + flow->dsrs[ARGUS_MAC_INDEX] = &flow->canon.mac.hdr; + break; + } + case k_CiscoV9DstMac: { + flow->dsrindex |= 1 << ARGUS_MAC_INDEX; + flow->dsrs[ARGUS_MAC_INDEX] = &flow->canon.mac.hdr; + break; + } + case k_CiscoV9SrcVlan: { + flow->dsrindex |= 1 << ARGUS_VLAN_INDEX; + flow->dsrs[ARGUS_VLAN_INDEX] = &flow->canon.vlan.hdr; + break; + } + case k_CiscoV9DstVlan: { + flow->dsrindex |= 1 << ARGUS_VLAN_INDEX; + flow->dsrs[ARGUS_VLAN_INDEX] = &flow->canon.vlan.hdr; + break; + } + case k_CiscoV9IpProtocolVersion: { + break; + } + case k_CiscoV9Direction: { + break; + } + case k_CiscoV9IpV6NextHop: { + break; + } + case k_CiscoV9BgpIpV6NextHop: { + break; + } + case k_CiscoV9IpV6OptionHeaders: { + break; + } + case k_CiscoV9MplsLabel1: { + break; + } + case k_CiscoV9MplsLabel2: { + break; + } + case k_CiscoV9MplsLabel3: { + break; + } + case k_CiscoV9MplsLabel4: { + break; + } + case k_CiscoV9MplsLabel5: { + break; + } + case k_CiscoV9MplsLabel6: { + break; + } + case k_CiscoV9MplsLabel7: { + break; + } + case k_CiscoV9MplsLabel8: { + break; + } + case k_CiscoV9MplsLabel9: { + break; + } + case k_CiscoV9MplsLabel10: { + break; + } + case k_CiscoV9InDstMac: { + flow->dsrindex |= 1 << ARGUS_MAC_INDEX; + flow->dsrs[ARGUS_MAC_INDEX] = &flow->canon.mac.hdr; + break; + } + case k_CiscoV9OutSrcMac: { + flow->dsrindex |= 1 << ARGUS_MAC_INDEX; + flow->dsrs[ARGUS_MAC_INDEX] = &flow->canon.mac.hdr; + break; + } + case k_CiscoV9IfName: { + break; + } + case k_CiscoV9IfDesc: { + break; + } + case k_CiscoV9SampleName: { + break; + } + case k_CiscoV9InPermanentBytes: { + flow->canon.metric.src.bytes = value.val32[0]; + flow->dsrindex |= 1 << ARGUS_METRIC_INDEX; + flow->dsrs[ARGUS_METRIC_INDEX] = &flow->canon.metric.hdr; + break; + } + case k_CiscoV9InPermanentPkts: { + break; + } + case k_CiscoV9FragmentOffset: { + break; + } + case k_CiscoV9ForwardingStatus: { + break; + } + case k_CiscoV9PostDSCP: { + break; + } + case k_CiscoV9NatInsideGlobalAddr: { + break; + } + case k_CiscoV9NatOutsideGlobalAddr: { + break; + } + case k_CiscoV9postNatL4SrcPort: { + break; + } + case k_CiscoV9postNatL4DstPort: { + break; + } + case k_CiscoV9postNatEvent: { + break; + } + case k_CiscoV9IngressVRFID: { + break; + } + case k_CiscoV9ConnId: { + break; + } + case k_CiscoV9IcmpType: { + break; + } + case k_CiscoV9IcmpCode: { + break; + } + case k_CiscoV9IcmpTypeV6: { + break; + } + case k_CiscoV9IcmpCodeV6: { + break; + } + case k_CiscoEventTimeMilliSec: { + break; + } + case k_CiscoEventTimeMicroSec: { + break; + } + case k_CiscoEventTimeNanoSec: { + break; + } + } + tData++; + } + + { + flow->canon.hdr.type = ARGUS_FAR | ARGUS_NETFLOW | ARGUS_VERSION; + flow->canon.hdr.cause = ARGUS_STATUS; + flow->canon.hdr.len = 1; + + if (!(flow->dsrindex & (1 << ARGUS_TIME_INDEX))) { + struct ArgusTimeObject *time = &flow->canon.time; + time->src.start.tv_sec = ArgusCiscoTvp->tv_sec; + time->src.start.tv_usec = ((long)(ArgusSysUptime)%1000) * 1000; + + if (time->src.start.tv_usec >= 1000000) { + time->src.start.tv_sec++; + time->src.start.tv_usec -= 1000000; + } + time->src.end = time->src.start; + flow->dsrindex |= 1 << ARGUS_TIME_INDEX; + flow->dsrs[ARGUS_TIME_INDEX] = (void *)time; + } + + for (i = 0; i < ARGUSMAXDSRTYPE; i++) { + if (flow->dsrindex & (1 << i)) { + switch(i) { + case ARGUS_FLOW_INDEX: { + flow->canon.flow.hdr.type = ARGUS_FLOW_DSR; + flow->canon.flow.hdr.subtype = ARGUS_FLOW_CLASSIC5TUPLE; + flow->canon.flow.hdr.argus_dsrvl8.qual = ARGUS_TYPE_IPV4; + flow->canon.flow.hdr.argus_dsrvl8.len = 5; + bcopy(&flow->canon.flow, dsr, flow->canon.flow.hdr.argus_dsrvl8.len * 4); + dsr += flow->canon.flow.hdr.argus_dsrvl8.len; + flow->canon.hdr.len += flow->canon.flow.hdr.argus_dsrvl8.len; + break; + } + + case ARGUS_TIME_INDEX: { + struct ArgusTimeObject *time = &flow->canon.time; + time->hdr.type = ARGUS_TIME_DSR; + time->hdr.subtype = ARGUS_TIME_ABSOLUTE_RANGE; + time->hdr.argus_dsrvl8.qual = ARGUS_TYPE_UTC_MICROSECONDS; + time->hdr.argus_dsrvl8.len = 5; + bcopy(time, dsr, time->hdr.argus_dsrvl8.len * 4); + dsr += time->hdr.argus_dsrvl8.len; + flow->canon.hdr.len += time->hdr.argus_dsrvl8.len; + break; + } + + case ARGUS_ASN_INDEX: { + struct ArgusAsnStruct *asn = &flow->canon.asn; + asn->hdr.type = ARGUS_ASN_DSR; + asn->hdr.subtype = 0; + asn->hdr.argus_dsrvl8.qual = 0; + asn->hdr.argus_dsrvl8.len = 3; + bcopy(asn, dsr, asn->hdr.argus_dsrvl8.len * 4); + dsr += asn->hdr.argus_dsrvl8.len; + flow->canon.hdr.len += asn->hdr.argus_dsrvl8.len; + break; + } + + case ARGUS_METRIC_INDEX: { + struct ArgusMetricStruct *metric = &flow->canon.metric; + int pkts, bytes; + + metric->hdr.type = ARGUS_METER_DSR; + metric->hdr.subtype = ARGUS_METER_PKTS_BYTES; + metric->hdr.argus_dsrvl8.qual = ARGUS_SRC_INT; + metric->hdr.argus_dsrvl8.len = 3; + + pkts = metric->src.pkts; + bytes = metric->src.bytes; + + bcopy(&metric->hdr, dsr, 4); + bcopy(&pkts, dsr+1, 4); + bcopy(&bytes, dsr+2, 4); + + dsr += metric->hdr.argus_dsrvl8.len; + flow->canon.hdr.len += metric->hdr.argus_dsrvl8.len; + break; + } + + case ARGUS_NETWORK_INDEX: { + struct ArgusNetworkStruct *net = &flow->canon.net; + bcopy(net, dsr, net->hdr.argus_dsrvl8.len * 4); + dsr += net->hdr.argus_dsrvl8.len; + flow->canon.hdr.len += net->hdr.argus_dsrvl8.len; + break; + } + + case ARGUS_MAC_INDEX: { + struct ArgusMacStruct *mac = &flow->canon.mac; + mac->hdr.type = ARGUS_MAC_DSR; + mac->hdr.subtype = 0; + mac->hdr.argus_dsrvl8.len = 5; + bcopy(mac, dsr, mac->hdr.argus_dsrvl8.len * 4); + dsr += mac->hdr.argus_dsrvl8.len; + flow->canon.hdr.len += mac->hdr.argus_dsrvl8.len; + break; + } + + case ARGUS_IPATTR_INDEX: { + struct ArgusIPAttrStruct *attr = &flow->canon.attr; + attr->hdr.type = ARGUS_IPATTR_DSR; + attr->hdr.subtype = 0; + attr->hdr.argus_dsrvl8.qual = ARGUS_IPATTR_SRC; + attr->hdr.argus_dsrvl8.len = 2; + bcopy(attr, dsr, attr->hdr.argus_dsrvl8.len * 4); + dsr += attr->hdr.argus_dsrvl8.len; + flow->canon.hdr.len += attr->hdr.argus_dsrvl8.len; + } + } + } + } + + ArgusSendFlowRecord (model, flow, ARGUS_STATUS); #ifdef ARGUSDEBUG - ArgusDebug (5, "ArgusParseCiscoRecordV9Data (%p, %p, %p, %d)\n", model, templates, ptr, len); + ArgusDebug (4, "ArgusParseCiscoRecordV9Data (%p, %p, %p, %p, %d) new flow %p\n", parser, model, tqueue, ptr, *cnt, retn); #endif - } + } - if ((len - cflow->length) > 0) { - ptr -= cflow->length; - len -= cflow->length; - } else - done = 1; + *cnt = *cnt - 1; + } + src->lasttime = model->ArgusGlobalTime; + + } else { + if (templates[cflow->flowset_id].tHdr != NULL) { + ArgusFree(templates[cflow->flowset_id].tHdr); + bzero(&templates[cflow->flowset_id], sizeof(struct ArgusCiscoTemplateStruct)); + templates[cflow->flowset_id].tHdr = NULL; + } + } + } } } #ifdef ARGUSDEBUG - ArgusDebug (5, "ArgusParseCiscoRecordV9 (%p, %p, %p, %d) returning %p\n", model, templates, ptr, len, retn); + ArgusDebug (5, "ArgusParseCiscoRecordV9Data (%p, %p, %p, %p, %d) returning %p\n", parser, model, tqueue, ptr, *cnt, retn); #endif return(retn); } - struct ArgusRecord * -ArgusParseCiscoRecordV9Template (struct ArgusModelerStruct *model, void **templates, u_char *ptr, int len) +ArgusParseCiscoRecordV9Template (struct ArgusModelerStruct *model, struct ArgusQueueStruct *tqueue, u_char *ptr, int len) { + struct ArgusCiscoTemplateStruct *templates = NULL; struct ArgusRecord *retn = NULL; + struct ArgusCiscoSourceStruct *src; int i, done = 0; - if (templates != NULL) { + if (tqueue != NULL) { + int cnt = tqueue->count; + for (i = 0; (i < cnt) && (templates == NULL); i++) { + src = (struct ArgusCiscoSourceStruct *)ArgusPopQueue (tqueue, ARGUS_LOCK); + if ((src->srcid == ArgusCiscoSrcId) && (src->saddr == ArgusCiscoSrcAddr)) + templates = src->templates; + ArgusAddToQueue(tqueue, &src->qhdr, ARGUS_LOCK); + } + } + + if (templates == NULL) { + if ((src = (struct ArgusCiscoSourceStruct *)ArgusCalloc (1, sizeof(*src))) == NULL) + ArgusLog(LOG_ERR, "ArgusParseCiscoRecordV9Template: ArgusCalloc(%d, %d) error %s\n", 1, sizeof(*src), strerror(errno)); + + src->srcid = ArgusCiscoSrcId; + src->saddr = ArgusCiscoSrcAddr; + src->startime = model->ArgusGlobalTime; + src->lasttime = model->ArgusGlobalTime; + templates = src->templates; + ArgusAddToQueue (tqueue, &src->qhdr, ARGUS_LOCK); + } + + if (templates) { while (!done) { CiscoFlowTemplateHeaderV9_t *tHdr = (CiscoFlowTemplateHeaderV9_t *) ptr; CiscoFlowTemplateFlowEntryV9_t *tData = (CiscoFlowTemplateFlowEntryV9_t *)(tHdr + 1); @@ -1009,13 +1649,33 @@ tHdr->count = ntohs(tHdr->count); slen = (sizeof(*tData) * tHdr->count) + sizeof(*tHdr); + + if (templates[tHdr->template_id].tHdr != NULL) { + +#ifdef ARGUSDEBUG + unsigned long addr = htonl(ArgusCiscoSrcAddr); + char *srcAddr = (inet_ntoa(*(struct in_addr *)&addr)); - if (templates[tHdr->template_id] != NULL) { - ArgusFree(templates[tHdr->template_id]); - templates[tHdr->template_id] = NULL; + ArgusDebug (3, "ArgusParseCiscoRecordV9Template: pkt %d changing template src %s srcid %d tid %d \n", + model->ArgusTotalPacket, srcAddr, ArgusCiscoSrcId, tHdr->template_id); +#endif + ArgusFree(templates[tHdr->template_id].tHdr); + templates[tHdr->template_id].tHdr = NULL; + + templates[tHdr->template_id].length = slen + 4; + templates[tHdr->template_id].count = tHdr->count; + + } else { +#ifdef ARGUSDEBUG + unsigned long addr = htonl(ArgusCiscoSrcAddr); + char *srcAddr = (inet_ntoa(*(struct in_addr *)&addr)); + + ArgusDebug (3, "ArgusParseCiscoRecordV9Template: pkt %d new template src %s srcid %d tid %d \n", + model->ArgusTotalPacket, srcAddr, ArgusCiscoSrcId, tHdr->template_id); +#endif } - if ((dArray = ArgusCalloc(1, slen)) == NULL) + if ((dArray = ArgusCalloc(1, slen + 4)) == NULL) ArgusLog(LOG_ERR, "ArgusCalloc(%d, %d) error %s\n", tHdr->count, sizeof(*tData), strerror(errno)); for (i = 0; i < tHdr->count; i++) { @@ -1025,7 +1685,8 @@ } bcopy(tHdr, dArray, slen); - templates[tHdr->template_id] = dArray; + templates[tHdr->template_id].tHdr = dArray; + templates[tHdr->template_id].lasttime = model->ArgusGlobalTime; if ((len - slen) > 0) { ptr += slen; @@ -1036,7 +1697,34 @@ } #ifdef ARGUSDEBUG - ArgusDebug (5, "ArgusParseCiscoRecordV9 (%p, %p) returning %p\n", model, ptr, retn); + ArgusDebug (5, "ArgusParseCiscoRecordV9Template (%p, %p, %d, %p) returning %p\n", model, templates, ptr, len); +#endif + return(retn); +} + +struct ArgusRecord * +ArgusParseCiscoRecordV9OptionTemplate (struct ArgusModelerStruct *model, struct ArgusQueueStruct *tqueue, u_char *ptr, int len) +{ + struct ArgusCiscoTemplateStruct *templates = NULL; + struct ArgusRecord *retn = NULL; + struct ArgusCiscoSourceStruct *src; + int i; + + if (tqueue != NULL) { + int cnt = tqueue->count; + for (i = 0; (i < cnt) && (templates == NULL); i++) { + src = (struct ArgusCiscoSourceStruct *)ArgusPopQueue (tqueue, ARGUS_LOCK); + if ((src->srcid == ArgusCiscoSrcId) && (src->saddr == ArgusCiscoSrcAddr)) + templates = src->templates; + ArgusAddToQueue(tqueue, &src->qhdr, ARGUS_LOCK); + } + } + + if (templates) { + } + +#ifdef ARGUSDEBUG + ArgusDebug (5, "ArgusParseCiscoRecordV9OptionTemplate (%p, %p) returning %p\n", model, ptr, retn); #endif return(retn); } diff -Nru securityonion-argus-server-3.0.6/argus/ArgusNetflow.h securityonion-argus-server-3.0.8/argus/ArgusNetflow.h --- securityonion-argus-server-3.0.6/argus/ArgusNetflow.h 2012-01-04 00:03:18.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusNetflow.h 2014-05-12 14:53:53.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Modeler - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify diff -Nru securityonion-argus-server-3.0.6/argus/ArgusOutput.c securityonion-argus-server-3.0.8/argus/ArgusOutput.c --- securityonion-argus-server-3.0.6/argus/ArgusOutput.c 2012-04-13 19:41:51.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusOutput.c 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Modeler - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -23,9 +23,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusOutput.c#68 $ - * $DateTime: 2012/04/13 15:41:51 $ - * $Change: 2363 $ + * $Id: //depot/argus/argus/argus/ArgusOutput.c#80 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ #ifdef HAVE_CONFIG_H @@ -63,8 +63,11 @@ struct timeval *getArgusMarReportInterval(struct ArgusOutputStruct *); void setArgusMarReportInterval(struct ArgusOutputStruct *, char *); +struct ArgusRecord *ArgusGenerateInitialMar (struct ArgusOutputStruct *); +struct ArgusRecordStruct *ArgusGenerateSupplementalMarRecord (struct ArgusOutputStruct *, unsigned char); struct ArgusRecordStruct *ArgusGenerateStatusMarRecord (struct ArgusOutputStruct *, unsigned char); +int RaDiffTime (struct timeval *, struct timeval *, struct timeval *); struct ArgusOutputStruct * ArgusNewOutput (struct ArgusSourceStruct *src, struct ArgusModelerStruct *model) @@ -108,7 +111,6 @@ } -struct ArgusRecord *ArgusGenerateInitialMar (struct ArgusOutputStruct *); #ifdef ARGUS_SASL int iptostring(const struct sockaddr *, socklen_t, char *, unsigned); @@ -133,11 +135,14 @@ return SASL_OK; } -#ifdef _LP64 -#define PLUGINDIR "/usr/lib64/sasl2" -#else +//#ifdef _LP64 +//#define PLUGINDIR "/usr/lib64/sasl2" +//#else + #define PLUGINDIR "/usr/lib/sasl2" -#endif + +//#endif + char *searchpath = NULL; @@ -152,15 +157,25 @@ *path = PLUGINDIR; #ifdef ARGUSDEBUG - ArgusDebug(2, "SASL path %s", path); + ArgusDebug(2, "SASL path %s", *path); #endif return SASL_OK; } +//typedef struct sasl_callback { +// /* Identifies the type of the callback function. +// * Mechanisms must ignore callbacks with id's they don't recognize. +// */ +// unsigned long id; +// int (*proc)(void); /* Callback function. Types of arguments vary by 'id' */ +// void *context; +//} sasl_callback_t; + +typedef int (*funcptr)(); + static const struct sasl_callback argus_cb[] = { - { SASL_CB_LOG, &ArgusSaslLog, NULL }, - { SASL_CB_GETPATH, &ArgusSaslGetPath, NULL }, + { SASL_CB_LOG, (funcptr)&ArgusSaslLog, NULL }, { SASL_CB_LIST_END, NULL, NULL } }; #endif @@ -188,7 +203,7 @@ len = ntohs(output->ArgusInitMar->hdr.len) * 4; - for (i = 0; i < ARGUS_MAX_LISTEN; i++) + for (i = 0; i < ARGUS_MAXLISTEN; i++) output->ArgusLfd[i] = -1; if (output->ArgusPortNum != 0) { @@ -735,9 +750,19 @@ } } else { + struct timeval tvbuf, *tvp = &tvbuf; #ifdef ARGUSDEBUG - ArgusDebug (5, "ArgusOutputProcess() %d client(s) not ready fd %d sock %p start %d", output->ArgusClients->count, client->fd, client->sock, client->ArgusClientStart); + ArgusDebug (5, "ArgusOutputProcess() %d client(s) not ready fd %d sock 0x%x start %d", output->ArgusClients->count, client->fd, client->sock, client->ArgusClientStart); #endif + RaDiffTime (&output->ArgusGlobalTime, &client->startime, tvp); + if (tvp->tv_sec >= ARGUS_CLIENT_STARTUP_TIMEOUT) { + if (client->sock != NULL) { + ArgusDeleteSocket(output, client); + ArgusLog (LOG_WARNING, "ArgusCheckClientMessage: client %s never started: timed out", + (client->hostname != NULL) ? client->hostname : "noname"); + } + client->ArgusClientStart = 1; + } } client = (void *) client->qhdr.nxt; } @@ -1066,6 +1091,7 @@ ArgusLog (LOG_ERR, "ArgusCheckClientStatus: ArgusCalloc %s", strerror(errno)); client->fd = fd; + client->startime = output->ArgusGlobalTime; #ifdef ARGUSDEBUG ArgusDebug (2, "ArgusCheckClientStatus() new client\n"); #endif @@ -1263,13 +1289,13 @@ if ((cnt = recv (fd, buf, value, 0)) <= 0) { if (cnt < 0) { #ifdef ARGUSDEBUG - ArgusDebug (6, "ArgusCheckClientMessage (%p, %p) recv(%d) returned error %s\n", output, client, fd, strerror(errno)); + ArgusDebug (5, "ArgusCheckClientMessage (%p, %p) recv(%d) returned error %s\n", output, client, fd, strerror(errno)); #endif return (-1); } else { #ifdef ARGUSDEBUG - ArgusDebug (6, "ArgusCheckClientMessage (%p, %p) recv(%d) returned %d bytes\n", output, client, fd, cnt); + ArgusDebug (5, "ArgusCheckClientMessage (%p, %p) recv(%d) returned %d bytes\n", output, client, fd, cnt); #endif return(-3); } @@ -1324,28 +1350,44 @@ case RADIUM_START: client->ArgusClientStart++; retn = 0; break; case RADIUM_DONE: retn = -4; break; case RADIUM_FILTER: { - if (ArgusFilterCompile (&client->ArgusNFFcode, &ptr[7], 1) < 0) { + char *reply = NULL; + reply = ArgusFilterCompile (&client->ArgusNFFcode, &ptr[7], 1); + if (reply == NULL) { retn = -2; + if ((cnt = send (fd, "ER", 2, 0)) != 2) { #ifdef ARGUSDEBUG - ArgusDebug (6, "ArgusCheckClientMessage: ArgusFilter syntax error: %s\n", &ptr[7]); + ArgusDebug (4, "ArgusCheckClientMessage: send error %s\n", strerror(errno)); #endif + } +#ifdef ARGUSDEBUG + ArgusDebug (3, "ArgusCheckClientMessage: ArgusFilter filter error: %s\n", &ptr[7]); +#endif + } else + if (strcmp(reply, "OK")) { + retn = -3; + if ((cnt = send (fd, reply, 2, 0)) != 2) { +#ifdef ARGUSDEBUG + ArgusDebug (4, "ArgusCheckClientMessage: send error %s\n", strerror(errno)); +#endif + } } else { + #ifdef ARGUSDEBUG char buf[MAXSTRLEN]; bzero(buf, MAXSTRLEN); nff_dump(&client->ArgusNFFcode, buf, MAXSTRLEN, 1); - ArgusDebug (5, "ArgusInitOutput: ArgusFilterCompile returned: \n%s\n", buf); + ArgusDebug (3, "ArgusInitOutput: ArgusFilterCompile returned: \n%s\n", buf); #endif client->ArgusFilterInitialized++; if ((cnt = send (fd, "OK", 2, 0)) != 2) { retn = -3; #ifdef ARGUSDEBUG - ArgusDebug (6, "ArgusCheckClientMessage: send error %s\n", strerror(errno)); + ArgusDebug (4, "ArgusCheckClientMessage: send error %s\n", strerror(errno)); #endif } else { retn = 0; #ifdef ARGUSDEBUG - ArgusDebug (6, "ArgusCheckClientMessage: ArgusFilter %s initialized.\n", &ptr[7]); + ArgusDebug (4, "ArgusCheckClientMessage: ArgusFilter %s initialized.\n", &ptr[7]); #endif } } @@ -1387,9 +1429,10 @@ struct ArgusRecord * ArgusGenerateInitialMar (struct ArgusOutputStruct *output) { - struct ArgusSourceStruct *ArgusSrc; + struct ArgusSourceStruct *ArgusSrc, *aSrc; struct ArgusRecord *retn; struct timeval now; + int x, done; if ((retn = (struct ArgusRecord *) ArgusCalloc (1, sizeof(struct ArgusRecord))) == NULL) ArgusLog (LOG_ERR, "ArgusGenerateInitialMar(%p) ArgusCalloc error %s\n", output, strerror(errno)); @@ -1420,11 +1463,18 @@ retn->argus_mar.reportInterval = getArgusFarReportInterval(output->ArgusModel)->tv_sec; retn->argus_mar.argusMrInterval = getArgusMarReportInterval(output)->tv_sec; - if ((ArgusSrc = output->ArgusSrc->srcs[0]) != NULL) { - retn->argus_mar.localnet = ArgusSrc->ArgusInterface[0].ArgusLocalNet; - retn->argus_mar.netmask = ArgusSrc->ArgusInterface[0].ArgusNetMask; + if ((ArgusSrc = output->ArgusSrc) != NULL) { + for (x = 0, done = 0; x < ARGUS_MAXINTERFACE && !done; x++) { + if ((aSrc = ArgusSrc->srcs[x]) != NULL) { + if (aSrc->ArgusInterface[0].ArgusLocalNet != 0) { + retn->argus_mar.localnet = aSrc->ArgusInterface[0].ArgusLocalNet; + retn->argus_mar.netmask = aSrc->ArgusInterface[0].ArgusNetMask; + done = 1; + } + } + } } - + retn->argus_mar.nextMrSequenceNum = output->ArgusOutputSequence; retn->argus_mar.record_len = -1; @@ -1437,6 +1487,99 @@ #endif return (retn); +} + +// The supplemental mar record is designed to extend the descriptions of the sensors, their inputs, +// providing interfaces, names, interface types, extended argus identifiers (> 4 bytes), +// and stats, if appropriate, +// +// This will be the way we provide long argus id's, IPv6, ethernet, and long strings. +// +// Minimally it should provide the argusid, used in all records, and the list of input descriptions, +// as well as the extended argus id itself. + + +struct ArgusRecordStruct * +ArgusGenerateSupplementalMarRecord (struct ArgusOutputStruct *output, unsigned char status) +{ + struct ArgusRecordStruct *retn = NULL; + struct ArgusRecord *rec = NULL; + + while ((retn = (struct ArgusRecordStruct *) ArgusMallocListRecord (sizeof(*retn))) == NULL) { + if (output && output->ArgusInputList) { + if ((retn = (struct ArgusRecordStruct *) ArgusPopFrontList(output->ArgusInputList, ARGUS_LOCK)) != NULL) { + ArgusFreeListRecord (retn); + } else + break; + } else + break; + } + + if (retn) { + struct ArgusSourceStruct *ArgusSrc = NULL, *aSrc = NULL; + struct timeval now; + + memset(retn, 0, sizeof(*retn)); + + retn->hdr.type = ARGUS_MAR | ARGUS_VERSION; + retn->hdr.cause = ARGUS_SUPPLEMENTAL; + retn->hdr.len = (sizeof(struct ArgusMarSupStruct)/4) + 1; // have size for one interface, and add as you go + + rec = (struct ArgusRecord *) &retn->canon; + rec->hdr = retn->hdr; + + rec->argus_sup.argusid = getArgusID(ArgusSourceTask); + + switch (getArgusIDType(ArgusSourceTask)) { + case ARGUS_TYPE_STRING: rec->argus_sup.status |= ARGUS_IDIS_STRING; break; + case ARGUS_TYPE_INT: rec->argus_sup.status |= ARGUS_IDIS_INT; break; + case ARGUS_TYPE_IPV4: rec->argus_sup.status |= ARGUS_IDIS_IPV4; break; + } + + gettimeofday (&now, 0L); + + rec->argus_sup.startime.tv_sec = output->ArgusLastMarUpdateTime.tv_sec; + rec->argus_sup.startime.tv_usec = output->ArgusLastMarUpdateTime.tv_usec; + + rec->argus_sup.now.tv_sec = now.tv_sec; + rec->argus_sup.now.tv_usec = now.tv_usec; + + if ((ArgusSrc = output->ArgusSrc) != NULL) { + int x; + for (x = 0; x < ARGUS_MAXINTERFACE; x++) { + if ((aSrc = ArgusSrc->srcs[x]) != NULL) { + if (aSrc->ArgusInterface[0].ArgusPd != NULL) { + int i; + rec->argus_mar.interfaceType = pcap_datalink(aSrc->ArgusInterface[0].ArgusPd); + rec->argus_mar.interfaceStatus = getArgusInterfaceStatus(aSrc); + + rec->argus_mar.pktsRcvd = 0; + rec->argus_mar.bytesRcvd = 0; + rec->argus_mar.dropped = 0; + + for (i = 0; i < ARGUS_MAXINTERFACE; i++) { + rec->argus_mar.pktsRcvd += aSrc->ArgusInterface[i].ArgusTotalPkts - + aSrc->ArgusInterface[i].ArgusLastPkts; + rec->argus_mar.bytesRcvd += aSrc->ArgusInterface[i].ArgusTotalBytes - + aSrc->ArgusInterface[i].ArgusLastBytes; + rec->argus_mar.dropped += aSrc->ArgusInterface[i].ArgusStat.ps_drop - + aSrc->ArgusInterface[i].ArgusLastDrop; + + aSrc->ArgusInterface[i].ArgusLastPkts = aSrc->ArgusInterface[i].ArgusTotalPkts; + aSrc->ArgusInterface[i].ArgusLastDrop = aSrc->ArgusInterface[i].ArgusStat.ps_drop; + aSrc->ArgusInterface[i].ArgusLastBytes = aSrc->ArgusInterface[i].ArgusTotalBytes; + } + } + } + } + } + } + +#ifdef ARGUSDEBUG + ArgusDebug (4, "ArgusGenerateStatusMar(%p, %d) returning 0x%x", output, status, retn); +#endif + + return (retn); } diff -Nru securityonion-argus-server-3.0.6/argus/ArgusOutput.h securityonion-argus-server-3.0.8/argus/ArgusOutput.h --- securityonion-argus-server-3.0.6/argus/ArgusOutput.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusOutput.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Output include file - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusOutput.h#16 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusOutput.h#22 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ @@ -30,8 +30,10 @@ #ifndef ArgusOutput_h #define ArgusOutput_h -#define ARGUS_MONITORPORT 561 -#define ARGUS_MAXLISTEN 16 +#define ARGUS_MONITORPORT 561 +#define ARGUS_MAXLISTEN 10 + +#define ARGUS_CLIENT_STARTUP_TIMEOUT 5 #include #if defined(HAVE_STDLIB_H) @@ -74,9 +76,10 @@ struct ArgusQueueHeader qhdr; int fd, type, ArgusClientStart; int ArgusFilterInitialized; + struct timeval startime, lasttime; struct ArgusSocketStruct *sock; struct nff_program ArgusNFFcode; - char *filename, *filter; + char *filename, *hostname, *filter; #if defined(HAVE_GETADDRINFO) struct addrinfo *host; @@ -100,8 +103,6 @@ -#define ARGUS_MAX_LISTEN 5 - struct ArgusOutputStruct { struct ArgusSourceStruct *ArgusSrc; struct ArgusModelerStruct *ArgusModel; @@ -131,7 +132,7 @@ #endif int ArgusPortNum; - int ArgusLfd[ARGUS_MAX_LISTEN]; + int ArgusLfd[ARGUS_MAXLISTEN]; int ArgusListens, nflag; char *ArgusBindPort; @@ -175,7 +176,7 @@ #if defined(ARGUS_TILERA) #else -extern int ArgusFilterCompile(struct nff_program *, char *, int); +extern char *ArgusFilterCompile(struct nff_program *, char *, int); extern unsigned int argus_filter (struct bpf_insn *, unsigned char *); #endif extern int getArgusPortNum(void); diff -Nru securityonion-argus-server-3.0.6/argus/ArgusSflow.c securityonion-argus-server-3.0.8/argus/ArgusSflow.c --- securityonion-argus-server-3.0.6/argus/ArgusSflow.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusSflow.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Fragment processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusSflow.c#3 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusSflow.c#5 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusSflow.h securityonion-argus-server-3.0.8/argus/ArgusSflow.h --- securityonion-argus-server-3.0.6/argus/ArgusSflow.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusSflow.h 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Modeler - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -23,9 +23,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusSflow.h#3 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusSflow.h#5 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ diff -Nru securityonion-argus-server-3.0.6/argus/ArgusSource.c securityonion-argus-server-3.0.8/argus/ArgusSource.c --- securityonion-argus-server-3.0.6/argus/ArgusSource.c 2012-04-04 05:48:10.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusSource.c 2014-07-14 22:51:49.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Input processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusSource.c#99 $ - * $DateTime: 2012/04/04 01:48:10 $ - * $Change: 2351 $ + * $Id: //depot/argus/argus/argus/ArgusSource.c#127 $ + * $DateTime: 2014/07/14 18:51:49 $ + * $Change: 2897 $ */ /* @@ -97,6 +97,7 @@ ArgusCloneSource(struct ArgusSourceStruct *src) { struct ArgusSourceStruct *retn = NULL; + int i; if ((retn = (struct ArgusSourceStruct *) ArgusCalloc (1, sizeof (struct ArgusSourceStruct))) == NULL) ArgusLog (LOG_ERR, "ArgusCloneSource: ArgusCalloc error %s\n", strerror(errno)); @@ -125,6 +126,9 @@ if (src->ArgusWriteOutPacketFile) retn->ArgusWriteOutPacketFile = strdup(src->ArgusWriteOutPacketFile); + retn->ArgusDumpPacket = src->ArgusDumpPacket; + retn->ArgusDumpPacketOnError = src->ArgusDumpPacketOnError; + retn->ArgusStartTime = src->ArgusStartTime; retn->ArgusEndTime = src->ArgusEndTime; retn->lasttime = retn->lasttime; @@ -147,6 +151,9 @@ retn->ArgusThisIndex = src->ArgusThisIndex; retn->ArgusInterfaces = src->ArgusInterfaces; + for (i = 0; i < src->ArgusInterfaceIndex; i++) + bcopy(&src->ArgusInterface[i], &retn->ArgusInterface[i], sizeof(src->ArgusInterface[i])); + retn->ArgusInputPacketFileType = src->ArgusInputPacketFileType; retn->ArgusReadingOffLine = src->ArgusReadingOffLine; @@ -154,6 +161,8 @@ retn->ArgusCaptureFlag = src->ArgusCaptureFlag; retn->ArgusSnapLen = src->ArgusSnapLen; + + retn->Argusfflag = src->Argusfflag; retn->ArgusOflag = src->ArgusOflag; retn->Arguspflag = src->Arguspflag; @@ -298,8 +307,7 @@ } #if defined(__APPLE_CC__) || defined(__APPLE__) - int v = 1; - ioctl(pcap_fileno(inf->ArgusPd), BIOCIMMEDIATE, &v); + { int v = 1; ioctl(pcap_fileno(inf->ArgusPd), BIOCIMMEDIATE, &v); } #endif #ifdef ARGUSDEBUG ArgusDebug (1, "ArgusOpenInterface() pcap_open_live(%s) returned %p\n", device->name, inf->ArgusPd); @@ -408,7 +416,8 @@ } if (src->ArgusInterfaces > 0) { - setuid(getuid()); + if (setuid(getuid()) != 0) + ArgusLog (LOG_ERR, "ArgusInitSource: setuid %s\n", strerror(errno)); cmdbuf = ArgusCopyArgv(&src->ArgusArgv[src->ArgusOptind]); @@ -486,11 +495,6 @@ for (i = 0; i < ARGUS_MAXINTERFACE; i++) { if (src->srcs[i] != NULL) { ArgusCloseSource (src->srcs[i]); -/* - if (src->srcs[i]->ArgusModel != NULL) - ArgusFree (src->srcs[i]->ArgusModel); - ArgusFree (src->srcs[i]); -*/ } } @@ -498,6 +502,14 @@ if (src->thread) pthread_join(src->thread, NULL); #endif + + for (i = 0; i < src->ArgusInterfaces; i++) { + if (src->ArgusInterface[i].ArgusPd) { + pcap_close(src->ArgusInterface[i].ArgusPd); + src->ArgusInterface[i].ArgusPd = NULL; + } + } + if (src->ArgusPcapOutFile) pcap_dump_close(src->ArgusPcapOutFile); @@ -511,7 +523,9 @@ if (src->ArgusRfileList != NULL) ArgusDeleteList (src->ArgusRfileList, ARGUS_RFILE_LIST); - ArgusCloseModeler(src->ArgusModel); + if (src->ArgusModel != NULL) + ArgusCloseModeler(src->ArgusModel); + src->status |= ARGUS_SHUTDOWN; #if defined(ARGUS_THREADS) @@ -527,6 +541,33 @@ return (0); } +void +ArgusDeleteSource(struct ArgusSourceStruct *src) +{ + int i; + + if (src) { +#ifdef ARGUSDEBUG + ArgusDebug (3, "ArgusDeleteSource(%p) starting\n", src); +#endif + for (i = 0; i < ARGUS_MAXINTERFACE; i++) { + if (src->srcs[i] != NULL) { + if (src->srcs[i]->ArgusModel != NULL) + ArgusFree (src->srcs[i]->ArgusModel); + ArgusFree (src->srcs[i]); + src->srcs[i] = NULL; + } else + break; + } + + ArgusFree (src); + } + +#ifdef ARGUSDEBUG + ArgusDebug (2, "ArgusCloseSource(%p) done\n", src); +#endif +} + unsigned int getArgusID(struct ArgusSourceStruct *src) @@ -595,6 +636,12 @@ } int +getArgusfflag(struct ArgusSourceStruct *src) +{ + return (src->Argusfflag); +} + +int getArgusbpflag(struct ArgusSourceStruct *src) { return (src->Argusbpflag); @@ -613,6 +660,12 @@ } void +setArgusfflag(struct ArgusSourceStruct *src, int value) +{ + src->Argusfflag = value; +} + +void setArgusbpflag(struct ArgusSourceStruct *src, int value) { src->Argusbpflag = value; @@ -722,9 +775,9 @@ char *tok; #endif - if (type == ARGUS_LIVE_DEVICE) - if (pcap_findalldevs(&alldevs, errbuf) == -1) - ArgusLog (LOG_ERR, "setArgusDevice: pcap_findalldevs %s\n", errbuf); +// if (type == ARGUS_LIVE_DEVICE) +// if (pcap_findalldevs(&alldevs, errbuf) == -1) +// ArgusLog (LOG_ERR, "setArgusDevice: pcap_findalldevs %s\n", errbuf); #if !defined(CYGWIN) // we need to parse this bad thing and construct the devices struct @@ -1203,12 +1256,16 @@ { pcap_handler retn = NULL; struct callback *callback; +#ifdef ARGUSDEBUG char *name = NULL; +#endif for (callback = ArgusSourceCallbacks; callback->function; ++callback) if (type == callback->type) { retn = callback->function; +#ifdef ARGUSDEBUG name = callback->fname; +#endif break; } @@ -1267,82 +1324,83 @@ setArgusID (src, optarg, ARGUS_TYPE_INT); } else { - -#if defined(HAVE_GETADDRINFO) - struct addrinfo *host, hints; int retn, done = 0; - bzero(&hints, sizeof(hints)); - hints.ai_family = AF_INET; - #if defined(HAVE_INET_ATON) - { - struct in_addr pin; - - if (inet_aton(optarg, &pin)) { - hints.ai_flags |= AI_NUMERICHOST; - } + struct in_addr pin; + + if (inet_aton(optarg, &pin)) { + setArgusID (src, &pin.s_addr, ARGUS_TYPE_IPV4); + done++; } #endif - if ((retn = getaddrinfo(optarg, NULL, NULL, &host)) == 0) { - struct addrinfo *hptr = host; - do { - switch (host->ai_family) { - case AF_INET: { - struct sockaddr_in *sa = (struct sockaddr_in *) host->ai_addr; - unsigned int value; - bcopy ((char *)&sa->sin_addr, (char *)&value, 4); - setArgusID (src, &value, ARGUS_TYPE_IPV4); - done++; - break; + if (!done) { +#if defined(HAVE_GETADDRINFO) + struct addrinfo *host, hints; + + bzero(&hints, sizeof(hints)); + hints.ai_family = AF_INET; + + if ((retn = getaddrinfo(optarg, NULL, NULL, &host)) == 0) { + struct addrinfo *hptr = host; + do { + switch (host->ai_family) { + case AF_INET: { + struct sockaddr_in *sa = (struct sockaddr_in *) host->ai_addr; + unsigned int value; + bcopy ((char *)&sa->sin_addr, (char *)&value, 4); + + setArgusID (src, &value, ARGUS_TYPE_IPV4); + done++; + break; + } } - } - host = host->ai_next; - } while (host != NULL); + host = host->ai_next; + } while (host != NULL); - freeaddrinfo(hptr); + freeaddrinfo(hptr); - } else { - switch (retn) { - case EAI_AGAIN: - ArgusLog(LOG_ERR, "dns server not available"); - break; - case EAI_NONAME: { - ArgusLog(LOG_ERR, "srcid %s unknown", optarg); - break; - } + } else { + switch (retn) { + case EAI_AGAIN: + ArgusLog(LOG_ERR, "dns server not available"); + break; + case EAI_NONAME: { + ArgusLog(LOG_ERR, "srcid %s unknown", optarg); + break; + } #if defined(EAI_ADDRFAMILY) - case EAI_ADDRFAMILY: - ArgusLog(LOG_ERR, "srcid %s has no IP address", optarg); - break; + case EAI_ADDRFAMILY: + ArgusLog(LOG_ERR, "srcid %s has no IP address", optarg); + break; #endif - case EAI_SYSTEM: - ArgusLog(LOG_ERR, "srcid %s name server error %s", optarg, strerror(errno)); - break; + case EAI_SYSTEM: + ArgusLog(LOG_ERR, "srcid %s name server error %s", optarg, strerror(errno)); + break; + } } - } -#else - struct hostent *host; - if ((host = gethostbyname(optarg)) != NULL) { - if ((host->h_addrtype == 2) && (host->h_length == 4)) { - unsigned int value; - bcopy ((char *) *host->h_addr_list, (char *)&value, host->h_length); - setArgusID (&src->ArgusID, ntohl(value)); - src->type = ARGUS_TYPE_IPV4; +#else // HAVE_GETADDRINFO + struct hostent *host; - } else - ArgusLog (LOG_ERR, "Probe ID %s error %s\n", optarg, strerror(errno)); + if ((host = gethostbyname(optarg)) != NULL) { + if ((host->h_addrtype == 2) && (host->h_length == 4)) { + unsigned int value; + bcopy ((char *) *host->h_addr_list, (char *)&value, host->h_length); + setArgusID (src, &value, ARGUS_TYPE_IPV4); + } else + ArgusLog (LOG_ERR, "Probe ID %s error %s\n", optarg, strerror(errno)); - } else - if (optarg && isdigit((int)*optarg)) { - setArgusID (&src->ArgusID, atoi(optarg)); - src->type = ARGUS_TYPE_INT; - } else - ArgusLog (LOG_ERR, "Probe ID value %s is not appropriate (%s)\n", optarg, strerror(errno)); + } else { + if (optarg && isdigit((int)*optarg)) { + setArgusID (src, optarg, ARGUS_TYPE_INT); + } else + ArgusLog (LOG_ERR, "Probe ID value %s is not appropriate (%s)\n", optarg, strerror(errno)); + } #endif + } } } else @@ -1378,9 +1436,9 @@ if ((src->marktime.tv_sec) && !(src->ArgusReadingOffLine)) { if ((tvp->tv_sec < (src->marktime.tv_sec - ARGUS_TIME_THRESHOLD)) || - (tvp->tv_sec > (src->marktime.tv_sec + ARGUS_TIME_THRESHOLD))) { + (tvp->tv_sec > (src->marktime.tv_sec + (10 * ARGUS_TIME_THRESHOLD)))) { - ArgusLog (LOG_WARNING, "ArgusInterface timestamps wayyy out of order: now %d then %d\n", tvp->tv_sec, src->lasttime.tv_sec); +// ArgusLog (LOG_WARNING, "ArgusInterface timestamps wayyy out of order: now %d then %d\n", tvp->tv_sec, src->lasttime.tv_sec); if (src->ArgusDumpPacketOnError && (src->ArgusWriteOutPacketFile != NULL)) { if (stat(src->ArgusWriteOutPacketFile, &statbuf) < 0) { @@ -1397,12 +1455,18 @@ src->ArgusPacketOffset = pcap_dump_ftell(src->ArgusPcapOutFile); #endif pcap_dump((u_char *)src->ArgusPcapOutFile, h, p); + +#if defined(HAVE_PCAP_DUMP_FLUSH) pcap_dump_flush(src->ArgusPcapOutFile); +#endif } return; } } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->lasttime = *tvp; @@ -1456,15 +1520,17 @@ #if !defined(ntohll) #if defined(_LITTLE_ENDIAN) -#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__) +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__) || defined(__sun__) #include #define ntohll(x) EXTRACT_64BITS(&x) #define htonll(x) EXTRACT_64BITS(&x) #else +#if defined(HAVE_SOLARIS) #include #define ntohll(x) bswap_64(x) #define htonll(x) bswap_64(x) #endif +#endif #else #define ntohll(x) x #define htonll(x) x @@ -1510,7 +1576,7 @@ if ((tvp->tv_sec < (src->marktime.tv_sec - ARGUS_TIME_THRESHOLD)) || (tvp->tv_sec > (src->marktime.tv_sec + ARGUS_TIME_THRESHOLD))) { - ArgusLog (LOG_WARNING, "ArgusInterface timestamps wayyy out of order: now %d then %d\n", tvp->tv_sec, src->lasttime.tv_sec); +// ArgusLog (LOG_WARNING, "ArgusInterface timestamps wayyy out of order: now %d then %d\n", tvp->tv_sec, src->lasttime.tv_sec); if (src->ArgusDumpPacketOnError && (src->ArgusWriteOutPacketFile != NULL)) { if (stat(src->ArgusWriteOutPacketFile, &statbuf) < 0) { @@ -1527,12 +1593,18 @@ src->ArgusPacketOffset = pcap_dump_ftell(src->ArgusPcapOutFile); #endif pcap_dump((u_char *)src->ArgusPcapOutFile, h, p); + +#if defined(HAVE_PCAP_DUMP_FLUSH) pcap_dump_flush(src->ArgusPcapOutFile); +#endif } return; } } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->lasttime = *tvp; @@ -1710,6 +1782,9 @@ pcap_dump((u_char *)src->ArgusPcapOutFile, h, p); } } + + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; @@ -1815,6 +1890,9 @@ src->ArgusInterface[ind].ArgusTotalBytes += length; src->ArgusInterface[ind].ArgusPacketBuffer = (u_char *) p; + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; @@ -1928,6 +2006,9 @@ src->ArgusInterface[ind].ArgusTotalBytes += length; src->ArgusInterface[ind].ArgusPacketBuffer = (u_char *) p; + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusThisEncaps = ARGUS_ENCAPS_HDLC; @@ -2088,6 +2169,9 @@ } } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; @@ -2145,6 +2229,9 @@ pcap_dump((u_char *)src->ArgusPcapOutFile, h, p); } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; @@ -2167,6 +2254,14 @@ #endif } +void +ArgusIpNetPacket (u_char *user, const struct pcap_pkthdr *h, const u_char *p) +{ +#ifdef ARGUSDEBUG + ArgusDebug (8, "ArgusIpNetPacket (%p, %p, %p) returning\n", user, h, p); +#endif +} + int ip_heuristic_guess(register const u_char *p, u_int length) { @@ -2794,6 +2889,9 @@ } } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusSnapLength = caplen; @@ -2860,6 +2958,9 @@ } } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusSnapLength = caplen; @@ -3008,6 +3109,9 @@ ep = (struct ether_header *) src->ArgusInterface[ind].ArgusPacketBuffer; + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusThisLength = length; @@ -3068,6 +3172,9 @@ ep = (struct ether_header *) src->ArgusInterface[ind].ArgusPacketBuffer; + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->ArgusInterface[ind].ArgusPacketBuffer = src->ArgusInterface[ind].ArgusPacketBufferBuffer; @@ -3142,6 +3249,9 @@ } } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + if (p && (length > PPP_HDRLEN)) { ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; @@ -3201,6 +3311,9 @@ } } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusSnapLength = caplen; @@ -3294,6 +3407,9 @@ } } + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusGlobalTime = *tvp; src->ArgusModel->ArgusSnapLength = caplen; @@ -3343,6 +3459,9 @@ tvp->tv_usec *= 1000; #endif + if (src->ArgusReadingOffLine) + src->ArgusInputOffset = ftell(src->ArgusPacketInput); + ArgusModel->ArgusGlobalTime = *tvp; model->ArgusGlobalTime = *tvp; @@ -3521,7 +3640,8 @@ struct ArgusRfileStruct *rfile = (struct ArgusRfileStruct *) stask->ArgusRfileList->start; int i, count = stask->ArgusRfileList->count; - setuid(getuid()); + if (setuid(getuid()) != 0) + ArgusLog (LOG_ERR, "ArgusInitSource: setuid %s\n", strerror(errno)); if (stask->ArgusDeviceList) clearArgusDevice(stask); @@ -3564,7 +3684,9 @@ src->ArgusID = device->ArgusID; } else { device->ArgusID = stask->ArgusID; + device->idtype = stask->type; src->ArgusID = stask->ArgusID; + src->type = stask->type; } src->type = device->type; ArgusPushBackList(src->ArgusDeviceList, (struct ArgusListRecord *) device, ARGUS_LOCK); @@ -3665,7 +3787,10 @@ struct timeval wait; int tmp, width = 0, fd; int i, fds[ARGUS_MAXINTERFACE]; -#if !defined(CYGWIN) + +#if defined(ARGUS_PLURIBUS) + int notselectable = 1; +#else int notselectable = 0; #endif @@ -3694,37 +3819,39 @@ ArgusGetInterfaceStatus(src); gettimeofday (&src->ArgusStartTime, 0L); + #if defined(ARGUS_NANOSECONDS) src->ArgusModel->ArgusStartTime.tv_usec *= 1000; #endif - for (i = 0; i < ARGUS_MAXINTERFACE; i++) fds[i] = -1; - if ((src->ArgusInterface[0].ArgusPd) || (src->ArgusInterface[0].ArgusPcap.fd)) { + if (src->ArgusInterface[0].ArgusPd) { int found = 0, up = 0; switch (src->ArgusInterface[0].ArgusInterfaceType) { case ARGUSERFPKTFILE: { - for (i = 0; i < src->ArgusInterfaces; i++) { - do { - FD_SET(src->ArgusInterface[i].ArgusPcap.fd, &ArgusReadMask); - width = src->ArgusInterface[i].ArgusPcap.fd + 1; - if (select (width + 1, &ArgusReadMask, NULL, NULL, &wait) > 0) { - ArgusErfRead(src); - if (src->eNflag > 0) - src->eNflag--; - } else - break; + if (src->ArgusInterface[0].ArgusPcap.fd) { + for (i = 0; i < src->ArgusInterfaces; i++) { + do { + FD_SET(src->ArgusInterface[i].ArgusPcap.fd, &ArgusReadMask); + width = src->ArgusInterface[i].ArgusPcap.fd + 1; + if (select (width + 1, &ArgusReadMask, NULL, NULL, &wait) > 0) { + ArgusErfRead(src); + if (src->eNflag > 0) + src->eNflag--; + } else + break; - } while (noerror && (src->eNflag != 0) && (!(ArgusShutDownStarted))); + } while (noerror && (src->eNflag != 0) && (!(ArgusShutDownStarted))); + } } break; } default: { for (i = 0; i < src->ArgusInterfaces; i++) { - if (src->ArgusInterface[i].ArgusPd && (fd = pcap_fileno(src->ArgusInterface[i].ArgusPd) >= 0)) { + if (src->ArgusInterface[i].ArgusPd) { found++; #if !defined(CYGWIN) && !defined(WIN32) && !defined(MSDOS) #if defined(HAVE_PCAP_GET_SELECTABLE_FD) @@ -3732,13 +3859,19 @@ #endif notselectable++; #endif +#ifdef ARGUSDEBUG + ArgusDebug (1, "ArgusGetPackets: interface %s %s selectable\n", + src->ArgusInterface[i].ifr.ifr_name, (notselectable ? "is not" : "is")); +#endif if ((src->ArgusInterface[i].ifr.ifr_flags & IFF_UP) != 0) { up++; - fds[i] = fd; - setArgusInterfaceStatus(src, 1); - FD_SET(pcap_fileno(src->ArgusInterface[i].ArgusPd), &ArgusReadMask); - if (width < fd) - width = fd; + if ((fd = pcap_fileno(src->ArgusInterface[i].ArgusPd)) >= 0) { + fds[i] = fd; + setArgusInterfaceStatus(src, 1); + FD_SET(pcap_fileno(src->ArgusInterface[i].ArgusPd), &ArgusReadMask); + if (width < fd) + width = fd; + } } else setArgusInterfaceStatus(src, 0); } else @@ -3765,26 +3898,25 @@ ArgusModel->ArgusGlobalTime = src->ArgusModel->ArgusGlobalTime; #else if (notselectable) { - int x, pkts = 0; + int pkts = 0; for (i = 0; i < src->ArgusInterfaces; i++) { int cnt = 0; - if ((fd = fds[i]) != -1) { - for (x = 0; x < 5; x++) { + if (src->ArgusInterface[i].ArgusPd) { + src->ArgusThisIndex = i; + { #if defined(HAVE_PCAP_NEXT_EX) struct pcap_pkthdr *header; const u_char *pkt_data; if ((cnt = pcap_next_ex(src->ArgusInterface[i].ArgusPd, &header, &pkt_data)) >= 0) { if (cnt > 0) { pkts++; - src->ArgusThisIndex = i; src->ArgusInterface[i].ArgusCallBack((u_char *)src, header, pkt_data); } else break; } else noerror = 0; #else - src->ArgusThisIndex = i; if ((cnt = pcap_dispatch(src->ArgusInterface[i].ArgusPd, 1, src->ArgusInterface[i].ArgusCallBack, (u_char *)src)) > 0) { pkts++; } else { @@ -3798,7 +3930,7 @@ } if (pkts == 0) { - struct timespec tsbuf = {0, 25000000}, *ts = &tsbuf; + struct timespec tsbuf = {0, 50000}, *ts = &tsbuf; gettimeofday (&src->ArgusModel->ArgusGlobalTime, NULL); #if defined(ARGUS_NANOSECONDS) src->ArgusModel->ArgusGlobalTime.tv_usec *= 1000; @@ -3859,6 +3991,7 @@ } } else { +#if defined(ARGUS_NEEDS_LIBPCAP_WORKAROUND) /* libpcap workaround */ int pkts = 0, cnt, ret; @@ -3892,6 +4025,9 @@ } while (cnt > 0); if (!pkts) { + struct timespec tsbuf = {0, 50000}, *ts = &tsbuf; + nanosleep(ts, NULL); + gettimeofday (&src->ArgusModel->ArgusGlobalTime, NULL); #if defined(ARGUS_NANOSECONDS) src->ArgusModel->ArgusGlobalTime.tv_usec *= 1000; @@ -3901,6 +4037,7 @@ ArgusDebug (9, "ArgusGetPackets: select() timeout %d up interfaces\n", up); #endif } +#endif } } else { @@ -3914,7 +4051,7 @@ ArgusDebug (3, "ArgusGetPackets: select() returned %s\n", strerror(errno)); #endif } else { - struct timespec tsbuf = {0, 150000000}, *ts = &tsbuf; + struct timespec tsbuf = {0, 250000000}, *ts = &tsbuf; #ifdef ARGUSDEBUG ArgusDebug (5, "ArgusGetPackets: no interfaces up: sleeping\n"); #endif @@ -3959,16 +4096,71 @@ } while (noerror && (src->eNflag != 0) && (!(ArgusShutDownStarted))); } else { + extern int ArgusShutDownFlag; + long ioffset = 0, offset = 0; + + ioffset = ftell(src->ArgusPacketInput); + offset = ioffset; + for (i = 0; i < src->ArgusInterfaces; i++) { + int retn = 0; src->ArgusThisIndex = i; - if ((pcap_dispatch (src->ArgusInterface[i].ArgusPd, src->eNflag, src->ArgusInterface[i].ArgusCallBack, (u_char *)src)) < 0) { - if (!(strncmp (pcap_geterr(src->ArgusInterface[i].ArgusPd), "recvfrom", 8))) { - ArgusLog (LOG_ERR, "ArgusGetPackets: pcap_dispatch() returned %s\n", pcap_geterr(src->ArgusInterface[i].ArgusPd)); - } - } + + if (getArgusfflag(src)) { // reading the tail of the file, so be ready to sleep if nothing there + do { + char *estr; + + if (offset > 0) + fseek(src->ArgusPacketInput, offset, SEEK_SET); + + if ((retn = pcap_dispatch (src->ArgusInterface[i].ArgusPd, 1, src->ArgusInterface[i].ArgusCallBack, (u_char *)src)) < 0) { + if ((estr = pcap_geterr(src->ArgusInterface[i].ArgusPd)) != NULL) { +#ifdef ARGUSDEBUG + ArgusDebug (2, "ArgusGetPackets () pcap_dispatch returned %s\n", estr); +#endif + } + + } + if (retn > 0) { + if (src->eNflag > 0) + src->eNflag -= retn; +#ifdef ARGUSDEBUG + ArgusDebug (2, "ArgusGetPackets () pcap_dispatch read %d packets\n", retn); +#endif + offset = src->ArgusInputOffset; + + } else { + struct timespec tsbuf = {0, 100000000}, *ts = &tsbuf; +#ifdef ARGUSDEBUG + ArgusDebug (2, "ArgusGetPackets () pcap_dispatch read 0 packets...sleeping", retn); +#endif + nanosleep(ts, NULL); + + gettimeofday (&src->ArgusModel->ArgusGlobalTime, NULL); +#if defined(ARGUS_NANOSECONDS) + src->ArgusModel->ArgusGlobalTime.tv_usec *= 1000; +#endif + ArgusModel->ArgusGlobalTime = src->ArgusModel->ArgusGlobalTime; + } + #if !defined(ARGUS_THREADS) - ArgusOutputProcess(ArgusOutputTask); + ArgusOutputProcess(ArgusOutputTask); #endif + } while (getArgusfflag(src) && (src->eNflag != 0) && !ArgusShutDownFlag); + + } else { + for (i = 0; i < src->ArgusInterfaces; i++) { + src->ArgusThisIndex = i; + if ((pcap_dispatch (src->ArgusInterface[i].ArgusPd, src->eNflag, src->ArgusInterface[i].ArgusCallBack, (u_char *)src)) < 0) { + if (!(strncmp (pcap_geterr(src->ArgusInterface[i].ArgusPd), "recvfrom", 8))) { + ArgusLog (LOG_ERR, "ArgusGetPackets: pcap_dispatch() returned %s\n", pcap_geterr(src->ArgusInterface[i].ArgusPd)); + } + } +#if !defined(ARGUS_THREADS) + ArgusOutputProcess(ArgusOutputTask); +#endif + } + } } } } @@ -3980,18 +4172,19 @@ #if !defined(ARGUS_THREADS) ArgusOutputProcess(ArgusOutputTask); #endif - } - gettimeofday (&src->ArgusEndTime, 0L); + gettimeofday (&src->ArgusEndTime, 0L); #if defined(ARGUS_NANOSECONDS) - src->ArgusEndTime.tv_usec *= 1000; + src->ArgusEndTime.tv_usec *= 1000; #endif + } #if defined(ARGUS_THREADS) #ifdef ARGUSDEBUG ArgusDebug (4, "ArgusGetPackets () returning\n"); #endif - src->status |= ARGUS_SHUTDOWN; + + if (src != NULL) src->status |= ARGUS_SHUTDOWN; pthread_exit(retn); #endif /* ARGUS_THREADS */ @@ -4047,7 +4240,20 @@ if (device != NULL) { inf->ArgusDevice = device; - if ((inf->ArgusPd = pcap_open_offline(device->name, errbuf)) != NULL) { + if (strcmp(device->name, "-")) { + if ((src->ArgusPacketInput = fopen(device->name, "r")) == NULL) { + snprintf (errbuf, PCAP_ERRBUF_SIZE - 1, "%s: %s\n", device->name, strerror(errno)); + } + } else + src->ArgusPacketInput = stdin; + +#if defined(HAVE_PCAP_FOPEN_OFFLINE) + inf->ArgusPd = pcap_fopen_offline(src->ArgusPacketInput, errbuf); +#else + inf->ArgusPd = pcap_open_offline(device->name, errbuf); +#endif + + if (inf->ArgusPd != NULL) { src->ArgusInputPacketFileType = ARGUSLIBPPKTFILE; inf->ArgusInterfaceType = ARGUSLIBPPKTFILE; inf->ArgusDevice = (struct ArgusDeviceStruct *) device; @@ -4068,7 +4274,7 @@ } } else src->ArgusPacketInput = stdin; - + if (src->ArgusPacketInput) { if ((strstr (device->name, ".erf")) != NULL) { if ((inf->ArgusPcap.fd = open (device->name, O_RDONLY, NULL)) >= 0) { @@ -4133,7 +4339,6 @@ inf->ArgusLocalNet = 0; inf->ArgusNetMask = 0; - } if (retn == 0) @@ -4177,9 +4382,9 @@ if (device == NULL) return; - if (strstr(device->name, "dag")) { + if ((strstr(device->name, "dag")) || (strstr(device->name, "napa"))) { for (i = 0; i < src->ArgusInterfaces; i++) { - if (src->ArgusInterface[i].ArgusPd && (pcap_fileno(src->ArgusInterface[i].ArgusPd) > 0)) + if (src->ArgusInterface[i].ArgusPd) bzero ((char *)&src->ArgusInterface[i].ifr, sizeof(ifr)); src->ArgusInterface[i].ifr.ifr_flags |= IFF_UP; diff -Nru securityonion-argus-server-3.0.6/argus/ArgusSource.h securityonion-argus-server-3.0.8/argus/ArgusSource.h --- securityonion-argus-server-3.0.6/argus/ArgusSource.h 2012-02-28 21:49:48.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusSource.h 2014-06-17 21:32:20.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Input includes - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusSource.h#38 $ - * $DateTime: 2012/02/28 16:45:56 $ - * $Change: 2317 $ + * $Id: //depot/argus/argus/argus/ArgusSource.h#45 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ /* ArgusSource.h */ @@ -256,6 +256,7 @@ unsigned int ArgusLocalNet, ArgusNetMask; struct pcap_stat ArgusStat; + long ArgusPacketOffset; long long ArgusTotalPkts; long long ArgusTotalIPPkts; long long ArgusTotalNonIPPkts; @@ -737,11 +738,12 @@ int ArgusInputPacketFileType; int ArgusReadingOffLine; int Argusbpflag, ArgusCaptureFlag; + int Argusfflag, ArgusDumpPacket; int ArgusDumpPacketOnError; - int ArgusDumpPacket; unsigned long ArgusPacketOffset; FILE *ArgusPacketInput; + long ArgusInputOffset; int ArgusSnapLen, ArgusOflag, Arguspflag; char **ArgusArgv; @@ -780,6 +782,7 @@ void ArgusEncPacket (u_char *user, const struct pcap_pkthdr *h, const u_char *p); void ArgusDagPacket (u_char *user, const struct pcap_pkthdr *h, const u_char *p); void ArgusJuniperPacket (u_char *user, const struct pcap_pkthdr *h, const u_char *p); +void ArgusIpNetPacket (u_char *user, const struct pcap_pkthdr *h, const u_char *p); void ArgusNullPacket (u_char *user, const struct pcap_pkthdr *h, const u_char *p); @@ -889,6 +892,9 @@ #ifdef DLT_JUNIPER_ETHER { ArgusJuniperPacket, DLT_JUNIPER_ETHER, "ArgusJuniperPacket()" }, #endif +#ifdef DLT_IPNET + { ArgusIpNetPacket, DLT_IPNET, "ArgusIpNetPacket()" }, +#endif { NULL, DLT_NULL, "" }, #endif { NULL, 0, NULL}, @@ -902,6 +908,7 @@ struct ArgusSourceStruct *ArgusCloneSource(struct ArgusSourceStruct *); int ArgusInitSource(struct ArgusSourceStruct *); int ArgusCloseSource(struct ArgusSourceStruct *); +void ArgusDeleteSource(struct ArgusSourceStruct *); extern char *ArgusCopyArgv (char **argv); @@ -916,10 +923,12 @@ void setArgusSnapLen(struct ArgusSourceStruct *, int); int getArgusbpflag(struct ArgusSourceStruct *); +int getArgusfflag(struct ArgusSourceStruct *); int getArguspflag(struct ArgusSourceStruct *); int getArgusOflag(struct ArgusSourceStruct *); void setArgusbpflag(struct ArgusSourceStruct *, int); +void setArgusfflag(struct ArgusSourceStruct *, int); void setArguspflag(struct ArgusSourceStruct *, int); void setArgusOflag(struct ArgusSourceStruct *, int); void setArgusCaptureFlag(struct ArgusSourceStruct *, int); @@ -955,6 +964,7 @@ extern struct ArgusSourceStruct *ArgusCloneSource(struct ArgusSourceStruct *); extern int ArgusInitSource(struct ArgusSourceStruct *); extern int ArgusCloseSource(struct ArgusSourceStruct *); +extern void ArgusDeleteSource(struct ArgusSourceStruct *); extern struct ArgusOutputStruct *getArgusOutputTask(struct ArgusSourceStruct *); extern void setArgusOutputTask(struct ArgusSourceStruct *); @@ -966,11 +976,13 @@ extern void setArgusSnapLen(struct ArgusSourceStruct *, int); extern int getArgusbpflag(struct ArgusSourceStruct *); +extern int getArgusfflag(struct ArgusSourceStruct *); extern int getArguspflag(struct ArgusSourceStruct *); extern int getArgusOflag(struct ArgusSourceStruct *); extern int getArgusMoatTshFile (struct ArgusSourceStruct *); extern void setArgusbpflag(struct ArgusSourceStruct *, int); +extern void setArgusfflag(struct ArgusSourceStruct *, int); extern void setArguspflag(struct ArgusSourceStruct *, int); extern void setArgusOflag(struct ArgusSourceStruct *, int); extern void setArgusCaptureFlag(struct ArgusSourceStruct *, int); diff -Nru securityonion-argus-server-3.0.6/argus/ArgusTcp.c securityonion-argus-server-3.0.8/argus/ArgusTcp.c --- securityonion-argus-server-3.0.6/argus/ArgusTcp.c 2012-04-04 05:48:10.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusTcp.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - TCP protocol - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusTcp.c#41 $ - * $DateTime: 2012/04/04 01:48:10 $ - * $Change: 2351 $ + * $Id: //depot/argus/argus/argus/ArgusTcp.c#48 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H @@ -60,7 +60,7 @@ void ArgusTCPKeystroke (struct ArgusModelerStruct *, struct ArgusFlowStruct *, unsigned char *); int ArgusUpdateTCPStateMachine (struct ArgusModelerStruct *, struct ArgusFlowStruct *, struct tcphdr *); void ArgusTCPFlowRecord (struct ArgusNetworkStruct *, unsigned char); -long long RaDiffTime (struct ArgusTime *, struct ArgusTime *, struct timeval *); +long long ArgusDiffTime (struct ArgusTime *, struct ArgusTime *, struct timeval *); @@ -316,13 +316,17 @@ bzero ((char *)tcpExt, sizeof(*tcpExt)); if (fdsr) { - if (model->ArgusThisDir) + if (!(model->ArgusThisDir)) { fdsr->hdr.argus_dsrvl8.qual &= ~ARGUS_DIRECTION; - else - fdsr->hdr.argus_dsrvl8.qual |= ARGUS_DIRECTION; + fdsr->hdr.subtype &= ~ARGUS_REVERSE; + } } + flow->state = model->state & ARGUS_DIRECTION; + model->ArgusThisDir = 1; + flow->qhdr.lasttime = model->ArgusGlobalTime; + ArgusUpdateFlow (model, flow, ARGUS_START, 0); } @@ -349,7 +353,7 @@ ArgusThisTCPsrc->status |= ARGUS_RESET; if (state == TCPS_SYN_SENT) { - if ((ArgusThisTCPdst->seq == ArgusThisTCPsrc->ack)) + if (ArgusThisTCPdst->seq == ArgusThisTCPsrc->ack) state = TCPS_LISTEN; else state = TCPS_CLOSING; @@ -380,7 +384,7 @@ tcpExt->status |= ARGUS_SAW_SYN_SENT; ArgusThisTCPsrc->status |= ARGUS_SAW_SYN_SENT; - if ((ArgusThisTCPdst->seq == ArgusThisTCPsrc->ack)) { + if (ArgusThisTCPdst->seq == ArgusThisTCPsrc->ack) { struct timeval lasttime; lasttime.tv_sec = ArgusThisTCPdst->lasttime.tv_sec; lasttime.tv_usec = ArgusThisTCPdst->lasttime.tv_usec; @@ -420,7 +424,7 @@ flowstr->ArgusTimeout = ARGUS_IPTIMEOUT; */ ArgusThisTCPsrc->status |= ARGUS_CON_ESTABLISHED; - if ((ArgusThisTCPsrc->seq == ArgusThisTCPdst->ack)) { + if (ArgusThisTCPsrc->seq == ArgusThisTCPdst->ack) { struct timeval lasttime; lasttime.tv_sec = ArgusThisTCPdst->lasttime.tv_sec; lasttime.tv_usec = ArgusThisTCPdst->lasttime.tv_usec; @@ -592,48 +596,59 @@ ArgusThisTCPsrc->seq = newseq; } else { if (len) { - if (ArgusThisTCPdst->win != 0) { /* not first packet seen in this direction */ - if (tcp->th_seq < ArgusThisTCPdst->ack) { - if ((ArgusThisTCPdst->ack - tcp->th_seq) < (ArgusThisTCPsrc->win >> ArgusThisTCPsrc->winshift)) { - ArgusThisTCPsrc->retrans++; - ArgusThisTCPsrc->status |= ARGUS_PKTS_RETRANS; - ArgusThisTCPsrc->winbytes -= len; - model->ArgusInProtocol = 0; - } - - } else { - if (newseq > ArgusThisTCPsrc->seq) { - maxseq = newseq; - } else { - maxseq = ArgusThisTCPsrc->seq; - } - - if (ArgusThisTCPsrc->win) { - int dipid; - if (*tipid && ((dipid = (ipid - *tipid)) < 0) && (dipid > -5000)) { - ArgusThisTCPsrc->status |= ARGUS_OUTOFORDER; - } else - if (ArgusThisTCPsrc->winbytes > ((maxseq - 1) - ArgusThisTCPdst->ack)) { + if (model->ArgusTrackDuplicates && (tipid && ((ipid != 0) && (*tipid == ipid)))) { +/* + if (model->ArgusThisDir) + tcpExt->sdups++; + else + tcpExt->ddups++; +*/ + } else { + if (ArgusThisTCPdst->win != 0) { /* not first packet seen in this direction */ + if (tcp->th_seq < ArgusThisTCPdst->ack) { + if ((ArgusThisTCPdst->ack - tcp->th_seq) < (ArgusThisTCPsrc->win >> ArgusThisTCPsrc->winshift)) { ArgusThisTCPsrc->retrans++; ArgusThisTCPsrc->status |= ARGUS_PKTS_RETRANS; ArgusThisTCPsrc->winbytes -= len; model->ArgusInProtocol = 0; + } + } else { + if (newseq > ArgusThisTCPsrc->seq) { + maxseq = newseq; } else { - if (newseq < ArgusThisTCPsrc->seq) { - if (tcp->th_seq == (ArgusThisTCPdst->ack + 1)) { - ArgusThisTCPsrc->retrans++; - ArgusThisTCPsrc->status |= ARGUS_PKTS_RETRANS; - ArgusThisTCPsrc->winbytes -= len; - } else { - ArgusThisTCPsrc->status |= ARGUS_OUTOFORDER; + maxseq = ArgusThisTCPsrc->seq; + } + + if (ArgusThisTCPsrc->win) { + int dipid; + if (*tipid && ((dipid = (ipid - *tipid)) < 0) && (dipid > -5000)) { + ArgusThisTCPsrc->status |= ARGUS_OUTOFORDER; + } else + if (ArgusThisTCPsrc->winbytes > ((maxseq - 1) - ArgusThisTCPdst->ack)) { + ArgusThisTCPsrc->retrans++; + ArgusThisTCPsrc->status |= ARGUS_PKTS_RETRANS; + ArgusThisTCPsrc->winbytes -= len; + model->ArgusInProtocol = 0; + + } else { + if (newseq < ArgusThisTCPsrc->seq) { + if (tcp->th_seq == (ArgusThisTCPdst->ack + 1)) { + ArgusThisTCPsrc->retrans++; + ArgusThisTCPsrc->status |= ARGUS_PKTS_RETRANS; + ArgusThisTCPsrc->winbytes -= len; + } else { + ArgusThisTCPsrc->status |= ARGUS_OUTOFORDER; + } } } } - } - ArgusThisTCPsrc->seq = maxseq; + ArgusThisTCPsrc->seq = maxseq; + } } + + *tipid = ipid; } } else { @@ -670,8 +685,6 @@ } } - if (*tipid < ipid) - *tipid = ipid; /* ArgusInProtocol = 1; */ @@ -753,7 +766,7 @@ struct timeval tvpbuf, *tvp = &tvpbuf; pkt->ts.tv_sec = model->ArgusGlobalTime.tv_sec; pkt->ts.tv_usec = model->ArgusGlobalTime.tv_usec; - pkt->intpkt = RaDiffTime (&pkt->ts, &flowstr->skey.prev_c_ts, tvp); + pkt->intpkt = ArgusDiffTime (&pkt->ts, &flowstr->skey.prev_c_ts, tvp); pkt->seq = tcp->th_seq + tcpdatalen; pkt->n_pno = flowstr->skey.n_pkts; found = 1; @@ -784,7 +797,7 @@ #endif pkt->ts.tv_sec = model->ArgusGlobalTime.tv_sec; pkt->ts.tv_usec = model->ArgusGlobalTime.tv_usec; - pkt->intpkt = RaDiffTime (&pkt->ts, &flowstr->skey.prev_c_ts, tvp); + pkt->intpkt = ArgusDiffTime (&pkt->ts, &flowstr->skey.prev_c_ts, tvp); pkt->seq = tcp->th_seq + tcpdatalen; pkt->n_pno = flowstr->skey.n_pkts; @@ -820,7 +833,7 @@ struct timeval tvpbuf, *tvp = &tvpbuf; if (pkt->intpkt >= ArgusKeyStroke->ic_min) { - long long slint = RaDiffTime (&stime, &flowstr->skey.prev_s_ts, tvp); + long long slint = ArgusDiffTime (&stime, &flowstr->skey.prev_s_ts, tvp); float ic_ratio = (pkt->intpkt * 1.0) / (slint * 1.0); if ((ic_ratio >= ArgusKeyStroke->icr_min) && (ic_ratio <= ArgusKeyStroke->icr_max)) { diff -Nru securityonion-argus-server-3.0.6/argus/ArgusUdp.c securityonion-argus-server-3.0.8/argus/ArgusUdp.c --- securityonion-argus-server-3.0.6/argus/ArgusUdp.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusUdp.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - UDP protocol - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusUdp.c#13 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusUdp.c#15 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusUdt.c securityonion-argus-server-3.0.8/argus/ArgusUdt.c --- securityonion-argus-server-3.0.6/argus/ArgusUdt.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusUdt.c 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Udt protocol processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusUdt.c#6 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusUdt.c#8 $ + * $DateTime: 2014/05/12 11:12:11 $ + * $Change: 2820 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/argus/ArgusUtil.c securityonion-argus-server-3.0.8/argus/ArgusUtil.c --- securityonion-argus-server-3.0.6/argus/ArgusUtil.c 2012-03-22 19:31:27.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusUtil.c 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Utilities - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusUtil.c#70 $ - * $DateTime: 2012/03/15 00:43:34 $ - * $Change: 2332 $ + * $Id: //depot/argus/argus/argus/ArgusUtil.c#86 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ /* ArgusUtil.c */ @@ -586,11 +586,11 @@ struct ArgusQueueHeader *retn = NULL; if ((queue != NULL) && (obj != NULL)) { - if (obj->queue == queue) { #if defined(ARGUS_THREADS) - if (type == ARGUS_LOCK) - pthread_mutex_lock(&queue->lock); + if (type == ARGUS_LOCK) + pthread_mutex_lock(&queue->lock); #endif + if (obj->queue == queue) { if (queue->count) { queue->count--; @@ -608,19 +608,17 @@ queue->end = NULL; } } -#if defined(ARGUS_THREADS) - if (type == ARGUS_LOCK) - pthread_mutex_unlock(&queue->lock); -#endif obj->prv = NULL; obj->nxt = NULL; obj->queue = NULL; retn = obj; + } - } else - ArgusLog (LOG_ERR, "ArgusRemoveFromQueue(%p, %p) obj not in queue\n", queue, obj); - } else - ArgusLog (LOG_ERR, "ArgusRemoveFromQueue(%p, %p) parameter error\n", queue, obj); +#if defined(ARGUS_THREADS) + if (type == ARGUS_LOCK) + pthread_mutex_unlock(&queue->lock); +#endif + } #ifdef ARGUSDEBUG ArgusDebug (10, "ArgusRemoveFromQueue (%p, %p) returning %p\n", queue, obj, obj); @@ -666,16 +664,20 @@ long long diff = 0, tdiff = 0; int retn; - if ((timeout->tv_sec > 0) || (timeout->tv_usec > 0)) { - diff = ArgusTimeDiff (&model->ArgusGlobalTime, ts); - tdiff = (timeout->tv_sec * 1000000LL + timeout->tv_usec); + if (timeout->tv_sec < 0) // if timeout is set to less that zero, then we never timeout. + retn = 0; + else { + if ((timeout->tv_sec > 0) || (timeout->tv_usec > 0)) { + diff = ArgusTimeDiff (&model->ArgusGlobalTime, ts); + tdiff = (timeout->tv_sec * 1000000LL + timeout->tv_usec); - if (diff >= tdiff) + if (diff >= tdiff) + retn = 1; + else + retn = 0; + } else retn = 1; - else - retn = 0; - } else - retn = 1; + } #ifdef ARGUSDEBUG ArgusDebug (11, "ArgusCheckTimeout (%p, %d.%06d, %d.%06d) diff %f returning %d\n", model, ts->tv_sec, ts->tv_usec, @@ -752,15 +754,14 @@ int ArgusUpdateTime (struct ArgusModelerStruct *model) { - int retn = 0; + long long ival = model->ival; long long diff; - long long ival; + int retn = 0; if (model->ArgusUpdateTimer.tv_sec == 0) model->ArgusUpdateTimer = model->ArgusGlobalTime; diff = ArgusTimeDiff(&model->ArgusGlobalTime, &model->ArgusUpdateTimer); - ival = ((model->ArgusUpdateInterval.tv_sec * 1000000LL) + model->ArgusUpdateInterval.tv_usec); if (diff >= 0) { retn = 1; @@ -935,16 +936,36 @@ hstruct->len = len; if (model->ArgusFlowKey & ARGUS_FLOW_KEY_VLAN) { - *key++ = model->ArgusThisPacket8021QEncaps; + *key++ = model->ArgusThisPacket8021QEncaps & 0x0FFF; hstruct->len++; } - if (model->ArgusFlowKey & (ARGUS_FLOW_KEY_LOCAL_MPLS | - ARGUS_FLOW_KEY_COMPLETE_MPLS)) { + if (model->ArgusFlowKey & (ARGUS_FLOW_KEY_LOCAL_MPLS | ARGUS_FLOW_KEY_COMPLETE_MPLS)) { *key++ = model->ArgusThisMplsLabel; hstruct->len++; } + if (model->ArgusFlowKey & (ARGUS_FLOW_KEY_LAYER_2 | ARGUS_FLOW_KEY_LAYER_2_MATRIX)) { + struct ether_header *ep = model->ArgusThisEpHdr; + if (ep) { + int klen = (sizeof(*ep) + (sizeof(*key) - 1)) / sizeof(*key); + if (model->state & ARGUS_DIRECTION) { +#ifndef ETH_ALEN +#define ETH_ALEN 6 +#endif + char *kptr = (char *) key; + bcopy ((char *)&ep->ether_shost, kptr, ETH_ALEN); kptr += ETH_ALEN; + bcopy ((char *)&ep->ether_dhost, kptr, ETH_ALEN); kptr += ETH_ALEN; + bcopy ((char *)&ep->ether_type, kptr, sizeof(ep->ether_type)); + + } else + bcopy (ep, key, sizeof(*ep)); + + key += klen; + hstruct->len += klen; + } + } + ptr = hstruct->key; for (i = 0; i < hstruct->len; i++) @@ -1152,7 +1173,7 @@ case ARGUS_METRIC_INDEX: { struct ArgusMetricStruct *metric = (void *) flow->dsrs[i]; - bzero(metric, sizeof(*metric)); + bzero((&metric->hdr + 1), sizeof(*metric) - 4); break; } @@ -1369,9 +1390,6 @@ struct statfs statfsbuf; #endif -#if defined(ARGUS_THREADS) - pthread_mutex_lock(&list->lock); -#endif if (ArgusListEmpty (list) && (asock->rec == NULL)) { #ifdef ARGUSDEBUG if (asock->writen || asock->length) @@ -1380,14 +1398,14 @@ if (client->host == NULL) { if (!(output->ArgusWriteStdOut) && (asock->filename)) { if (asock->lastwrite.tv_sec < output->ArgusModel->ArgusGlobalTime.tv_sec) { - if (((stat (asock->filename, &statbuf)) < 0) || (asock->fd != -1) || (ArgusCloseFile)) { + if (((stat (asock->filename, &statbuf)) < 0) || (ArgusCloseFile)) { if (asock->fd != -1) close(asock->fd); if ((asock->fd = open (asock->filename, O_WRONLY|O_APPEND|O_CREAT|O_NONBLOCK, 0x1a4)) < 0) ArgusLog (LOG_ERR, "ArgusWriteSocket: open(%s, flags, 0x1a4) failed %s\n", asock->filename, strerror(errno)); #ifdef ARGUSDEBUG - ArgusDebug (6, "ArgusWriteSocket: created outfile %s\n", asock->filename); + ArgusDebug (2, "ArgusWriteSocket: created outfile %s\n", asock->filename); #endif } @@ -1545,6 +1563,9 @@ } else { if (list->count >= ArgusMaxListLength) { if (ArgusWriteOutSocket(output, client) < 0) { +#if defined(ARGUS_THREADS) + pthread_mutex_lock(&list->lock); +#endif if (list->count >= ArgusMaxListLength) { struct ArgusRecordStruct *trec; int i; @@ -1555,21 +1576,21 @@ if ((trec = (struct ArgusRecordStruct *) ArgusPopFrontList(list, ARGUS_NOLOCK)) != NULL) ArgusFreeListRecord(trec); } +#if defined(ARGUS_THREADS) + pthread_mutex_unlock(&list->lock); +#endif } } if (asock->rec == NULL) - asock->rec = (struct ArgusRecordStruct *) ArgusPopFrontList(list, ARGUS_NOLOCK); + asock->rec = (struct ArgusRecordStruct *) ArgusPopFrontList(list, ARGUS_LOCK); #ifdef ARGUSDEBUG ArgusDebug (6, "ArgusWriteSocket (%p, %p, %p) schedule record\n", output, asock, rec); #endif - ArgusPushBackList (list, (struct ArgusListRecord *) ArgusCopyRecordStruct(rec), ARGUS_NOLOCK); + ArgusPushBackList (list, (struct ArgusListRecord *) ArgusCopyRecordStruct(rec), ARGUS_LOCK); retn = 0; } -#if defined(ARGUS_THREADS) - pthread_mutex_unlock(&list->lock); -#endif #ifdef ARGUSDEBUG ArgusDebug (6, "ArgusWriteSocket (%p, %p, %p) returning %d\n", output, asock, rec, retn); @@ -1616,7 +1637,7 @@ ArgusLog (LOG_ERR, "ArgusWriteSocket: open(%s, O_WRONLY|O_APPEND|O_CREAT|O_NONBLOCK, 0x1a4) failed %s\n", asock->filename, strerror(errno)); #ifdef ARGUSDEBUG - ArgusDebug (6, "ArgusWriteOutSocket: created outfile %s\n", asock->filename); + ArgusDebug (2, "ArgusWriteOutSocket: created outfile %s\n", asock->filename); #endif } @@ -2030,10 +2051,52 @@ return (retn); } -long long RaDiffTime (struct ArgusTime *, struct ArgusTime *, struct timeval *); + +float +RaDeltaFloatTime (struct timeval *s1, struct timeval *s2) +{ + float retn = 0.0; + + if (s1 && s2) { + double v1 = (s1->tv_sec * 1.0) + (s1->tv_usec / 1000000.0); + double v2 = (s2->tv_sec * 1.0) + (s2->tv_usec / 1000000.0); + + retn = v1 - v2; + } + + return (retn); +} + +int +RaDiffTime (struct timeval *s1, struct timeval *s2, struct timeval *diff) +{ + int retn = 0; + + if (s1 && s2 && diff) { + bzero ((char *)diff, sizeof(*diff)); + + double v1 = (s1->tv_sec * 1.0) + (s1->tv_usec / 1000000.0); + double v2 = (s2->tv_sec * 1.0) + (s2->tv_usec / 1000000.0); + double f, i; + + v1 -= v2; + + f = modf(v1, &i); + + diff->tv_sec = i; + diff->tv_usec = f * 1000000; + + retn = 1; + } + + return (retn); +} + + +long long ArgusDiffTime (struct ArgusTime *, struct ArgusTime *, struct timeval *); long long -RaDiffTime (struct ArgusTime *s1, struct ArgusTime *s2, struct timeval *diff) +ArgusDiffTime (struct ArgusTime *s1, struct ArgusTime *s2, struct timeval *diff) { long long v1 = 0, v2 = 0; @@ -2687,3 +2750,21 @@ retn = r1; return (retn); } + +double +ArgusFetchAppByteRatio (struct ArgusRecordStruct *ns) +{ + struct ArgusMetricStruct *m1 = NULL; + double retn = 0.0; + + if ((m1 = (struct ArgusMetricStruct *) ns->dsrs[ARGUS_METRIC_INDEX]) != NULL) { + double nvalue = (m1->src.appbytes - m1->dst.appbytes) * 1.0; + double dvalue = (m1->src.appbytes + m1->dst.appbytes) * 1.0; + + if (dvalue > 0) + retn = nvalue / dvalue; + else + retn = -0.0; + } + return (retn); +} diff -Nru securityonion-argus-server-3.0.6/argus/ArgusUtil.h securityonion-argus-server-3.0.8/argus/ArgusUtil.h --- securityonion-argus-server-3.0.6/argus/ArgusUtil.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/ArgusUtil.h 2014-05-12 19:49:11.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - Utilities include files - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -42,9 +42,9 @@ */ /* - * $Id: //depot/argus/argus/argus/ArgusUtil.h#28 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/argus/ArgusUtil.h#32 $ + * $DateTime: 2014/05/12 15:49:11 $ + * $Change: 2821 $ */ @@ -216,6 +216,10 @@ struct timeval *RaMinTime (struct timeval *, struct timeval *); struct timeval *RaMaxTime (struct timeval *, struct timeval *); + +float RaDeltaFloatTime (struct timeval *, struct timeval *); + +int RaDiffTime (struct timeval *, struct timeval *, struct timeval *); float RaGetFloatDuration (struct ArgusRecordStruct *); float RaGetFloatSrcDuration (struct ArgusRecordStruct *); float RaGetFloatDstDuration (struct ArgusRecordStruct *); @@ -234,6 +238,7 @@ double ArgusFetchRate (struct ArgusRecordStruct *); double ArgusFetchSrcRate (struct ArgusRecordStruct *); double ArgusFetchDstRate (struct ArgusRecordStruct *); +double ArgusFetchAppByteRatio (struct ArgusRecordStruct *); #else @@ -298,6 +303,10 @@ extern struct timeval *RaMinTime (struct timeval *, struct timeval *); extern struct timeval *RaMaxTime (struct timeval *, struct timeval *); + +extern float RaDeltaFloatTime (struct timeval *, struct timeval *); + +extern int RaDiffTime (struct timeval *, struct timeval *, struct timeval *); extern float RaGetFloatDuration (struct ArgusRecordStruct *); extern float RaGetFloatSrcDuration (struct ArgusRecordStruct *); extern float RaGetFloatDstDuration (struct ArgusRecordStruct *); @@ -316,6 +325,7 @@ extern double ArgusFetchRate (struct ArgusRecordStruct *); extern double ArgusFetchSrcRate (struct ArgusRecordStruct *); extern double ArgusFetchDstRate (struct ArgusRecordStruct *); +extern double ArgusFetchAppByteRatio (struct ArgusRecordStruct *); #endif #endif diff -Nru securityonion-argus-server-3.0.6/argus/Makefile.in securityonion-argus-server-3.0.8/argus/Makefile.in --- securityonion-argus-server-3.0.6/argus/Makefile.in 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/argus/Makefile.in 2014-05-12 15:12:11.000000000 +0000 @@ -1,6 +1,6 @@ # # Argus Software -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # QOSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS diff -Nru securityonion-argus-server-3.0.6/AUTHORS securityonion-argus-server-3.0.8/AUTHORS --- securityonion-argus-server-3.0.6/AUTHORS 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/AUTHORS 2014-08-11 18:49:58.000000000 +0000 @@ -1,14 +1,16 @@ # # Argus Software. -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # -# $Id: //depot/argus/argus/AUTHORS#3 $ -# $DateTime: 2012/01/03 19:15:19 $ -# $Change: 2274 $ +# $Id: //depot/argus/argus/AUTHORS#6 $ +# $DateTime: 2014/08/11 14:49:43 $ +# $Change: 2911 $ -Argus and its client software are written by Carter Bullard +Argus and its client software are written, maintained and +copyrighted by Carter Bullard and QoSient, +LLC. -Many contributions of fixes, bug reports and design have been submitted to the -argus developers mailing list over the years, please see the ./CREDITS file for -those that have contributed the most. +Many contributions of fixes, bug reports and design have been +submitted to the argus developers mailing list over Argus's 30 years. +Please see the ./CREDITS file for those that have contributed the most. diff -Nru securityonion-argus-server-3.0.6/bin/argusbug securityonion-argus-server-3.0.8/bin/argusbug --- securityonion-argus-server-3.0.6/bin/argusbug 2012-04-12 20:09:24.000000000 +0000 +++ securityonion-argus-server-3.0.8/bin/argusbug 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # Argus Software. Bug Report -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # This program is free software; you can redistribute it and/or modify diff -Nru securityonion-argus-server-3.0.6/bin/mkdep securityonion-argus-server-3.0.8/bin/mkdep --- securityonion-argus-server-3.0.6/bin/mkdep 2010-08-10 02:26:29.000000000 +0000 +++ securityonion-argus-server-3.0.8/bin/mkdep 2014-06-19 03:48:39.000000000 +0000 @@ -1,30 +1,32 @@ #!/bin/sh - # -# Copyright (c) 1994, 1996 -# The Regents of the University of California. All rights reserved. +# Copyright (c) 1987 Regents of the University of California. +# All rights reserved. # # Redistribution and use in source and binary forms are permitted -# provided that this notice is preserved and that due credit is given -# to the University of California at Berkeley. The name of the University -# may not be used to endorse or promote products derived from this -# software without specific prior written permission. This software -# is provided ``as is'' without express or implied warranty. +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, +# advertising materials, and other materials related to such +# distribution and use acknowledge that the software was developed +# by the University of California, Berkeley. The name of the +# University may not be used to endorse or promote products derived +# from this software without specific prior written permission. +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. # -# @(#)mkdep.sh 5.11 (Berkeley) 5/5/88 +# @(#)mkdep.sh 5.12 (Berkeley) 6/30/88 # -PATH=/bin:/usr/bin:/usr/ucb:/usr/local:/usr/local/bin -export PATH - MAKE=Makefile # default makefile name is "Makefile" -CC=cc # default C compiler is "cc" +CC=cc # default C compiler is "cc" while : do case "$1" in - # -c allows you to specify the C compiler - -c) - CC=$2 - shift; shift ;; + # -c allows you to specify the C compiler + -c) + CC=$2 + shift; shift ;; # -f allows you to select a makefile name -f) @@ -73,30 +75,10 @@ # egrep '^#include[ ]*".*"' /dev/null $* | # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' | -# XXX this doesn't work with things like "-DDECLWAITSTATUS=union\ wait" -$CC -M $* | +$CC -MM $* | sed " s; \./; ;g - $SED" | -awk '{ - if ($1 != prev) { - if (rec != "") - print rec; - rec = $0; - prev = $1; - } - else { - if (length(rec $2) > 78) { - print rec; - rec = $0; - } - else - rec = rec " " $2 - } -} -END { - print rec -}' >> $TMP + $SED" >> $TMP cat << _EOF_ >> $TMP diff -Nru securityonion-argus-server-3.0.6/ChangeLog securityonion-argus-server-3.0.8/ChangeLog --- securityonion-argus-server-3.0.6/ChangeLog 2012-04-10 12:28:37.000000000 +0000 +++ securityonion-argus-server-3.0.8/ChangeLog 2014-07-08 19:07:50.000000000 +0000 @@ -1,3 +1,67 @@ +Tue Jul 8 14:51:13 EDT 2014 +Mods for packaging for ubuntu, redhat, etc.... +Added debian and pkg directories, mods to spec file. + +Tue Jun 17 10:42:07 EDT 2014 +Update and Fixes for remote argus data filter support + +Mon Jun 9 20:18:12 EDT 2014 +Changes for netflow packet parsing to fix netflow in clients. + +Mon May 12 15:46:24 EDT 2014 +Fixes for wild metric counts in new flow data. +Update filter logic to be consistent with client filters. +Modifications for timeout issues when in non-select polling. + +Wed Dec 11 16:50:25 EST 2013 +Fix for source id type assignement from commandline +Change for compiler timeout values + +Mon Nov 25 12:11:47 EST 2013 +Fixes for ARP direction processing +Back out of duplicate packet tracking logic + +Thu Oct 17 15:45:31 EDT 2013 +Mods for duplicate packet reporting + +Thu Aug 22 08:39:26 EDT 2013 +Modify configure.ac for pcap_dump_flush for older libpcaps + +Mon Jul 22 16:09:35 EDT 2013 +Modify timeouts within "nonselectable" packet processing loop. + +Tue Jul 9 22:24:01 EDT 2013 +Use VID for the VLAN identifer for the key. + +Tue Jun 18 23:39:12 EDT 2013 +Fix syslog while daemonized + +Tue Jun 11 16:42:18 EDT 2013 +Remove nanosleep() to improve performance. + +Thu Apr 4 16:38:50 EDT 2013 +Major addtions for SDN tracking. New Flow model specifications in argus.conf. + +Wed Mar 6 16:33:47 EST 2013 +Fixes for solaris port, to avoid scheduling problems with record timeouts + +Fri Oct 19 13:14:13 EDT 2012 +Fix documentation in ./include/argus_def.h to get Cause and Vers in right order. + +Mon Oct 8 17:17:39 EDT 2012 +Fix for argus TCP state machine issue with very out of order +SYN, SYN_ACK, RST volleys. + +Thu Jun 21 15:33:22 EDT 2012 +Fix for country code aggregation problem, where dst co would be zero'd out. + +Mon Jun 11 16:07:53 EDT 2012 +Fix for ArgusOutput deadlock, when congested. + +Mon Jun 09 08:21:16 EDT 2012 +Netflow V9 support transitioned and mostly integrated. +Need more packet data. + Tue Apr 10 08:19:44 EDT 2012 Prepare for argus-3.0.6 release. Modify usage to use stdout, instead of stderr diff -Nru securityonion-argus-server-3.0.6/common/argus_auth.c securityonion-argus-server-3.0.8/common/argus_auth.c --- securityonion-argus-server-3.0.6/common/argus_auth.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/common/argus_auth.c 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common library routines - Authentication - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * QoSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS @@ -15,9 +15,9 @@ */ /* - * $Id: //depot/argus/argus/common/argus_auth.c#10 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/common/argus_auth.c#12 $ + * $DateTime: 2014/06/18 23:25:40 $ + * $Change: 2880 $ */ /* @@ -67,9 +67,9 @@ */ /* - * $Id: //depot/argus/argus/common/argus_auth.c#10 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/common/argus_auth.c#12 $ + * $DateTime: 2014/06/18 23:25:40 $ + * $Change: 2880 $ */ #ifdef HAVE_CONFIG_H diff -Nru securityonion-argus-server-3.0.6/common/argus_code.c securityonion-argus-server-3.0.8/common/argus_code.c --- securityonion-argus-server-3.0.6/common/argus_code.c 2012-02-16 16:53:08.000000000 +0000 +++ securityonion-argus-server-3.0.8/common/argus_code.c 2014-07-23 20:17:34.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -41,9 +41,9 @@ */ /* - * $Id: //depot/argus/argus/common/argus_code.c#31 $ - * $DateTime: 2012/02/16 11:53:08 $ - * $Change: 2307 $ + * $Id: //depot/argus/argus/common/argus_code.c#38 $ + * $DateTime: 2014/07/23 16:17:34 $ + * $Change: 2904 $ */ #ifdef HAVE_CONFIG_H @@ -78,6 +78,13 @@ #include #include +#include +#include +/* +static u_int ArgusNetMask; +*/ +static int fsnaplen; + #ifndef __GNUC__ #define inline #endif @@ -95,10 +102,6 @@ #define ARGUSFORKFILTER 1 -#if defined(ARGUSFORKFILTER) -static jmp_buf top_ctx; -#endif - static u_int off_nl = 0; static int alloc_reg(void); @@ -125,17 +128,21 @@ static struct ablock *Argusgen_retblk(int); static void syntax(void); +#if defined(ARGUSFORKFILTER) +static void deadman(pid_t); +#endif + static void backpatch(struct ablock *, struct ablock *); static void merge(struct ablock *, struct ablock *); -static struct ablock *Argusgen_cmp(u_int, u_int, u_int, u_int, u_int); -static struct ablock *Argusgen_mcmp(u_int, u_int, u_int, u_int, u_int, u_int); -static struct ablock *Argusgen_bcmp(u_int, u_int, u_int, u_char *); +static struct ablock *Argusgen_cmp(int, u_int, u_int, u_int, u_int, int); +static struct ablock *Argusgen_mcmp(int, u_int, u_int, u_int, u_int, u_int, int); +static struct ablock *Argusgen_bcmp(int, u_int, u_int, u_char *, int); static struct ablock *Argusgen_prototype(u_int, u_int); static struct ablock *Argusgen_hostop(u_int *, u_int *, int, int, u_int); static struct ablock *Argusgen_ehostop(u_char *, int); static struct ablock *Argusgen_host(u_int *, u_int *, int, int, int); -static struct ablock *Argusgen_srcid(u_int, u_int); -static struct ablock *Argusgen_inode(u_int, u_int); +static struct ablock *Argusgen_srcid(u_int, u_int, int); +static struct ablock *Argusgen_inode(u_int, u_int, int); static struct ablock *Argusgen_gateway(u_char *, u_int *, int, int, int); static struct ablock *Argusgen_portatom(int, long, int); struct ablock *Argusgen_portop(int, int, int, u_int); @@ -153,6 +160,7 @@ static struct ablock *Argusgen_pkt(int, int, u_int); static struct ablock *Argusgen_nstroke(int, int, u_int); static struct ablock *Argusgen_seq(int, int, u_int); +//static struct ablock *Argusgen_dup(int, int, u_int); static struct ablock *Argusgen_tcpbase(int, int, u_int); static struct ablock *Argusgen_trans(int, int, u_int); static struct ablock *Argusgen_deltadur(int, int, u_int); @@ -160,8 +168,8 @@ static struct ablock *Argusgen_deltalast(int, int, u_int); static struct ablock *Argusgen_rate(float, int, u_int); static struct ablock *Argusgen_load(float, int, u_int); -static struct ablock *Argusgen_inter(float, int, u_int); -static struct ablock *Argusgen_jitter(float, int, u_int); +static struct ablock *Argusgen_inter(float, int, int, u_int); +static struct ablock *Argusgen_jitter(float, int, int, u_int); static struct ablock *Argusgen_dur(float, int, u_int); static struct ablock *Argusgen_mean(float, int, u_int); static struct ablock *Argusgen_encaps(int, int, u_int); @@ -172,6 +180,7 @@ static struct ablock *Argusgen_linktype(unsigned int); extern void ArgusLog (int, char *, ...); +extern float RaDeltaFloatTime (struct timeval *, struct timeval *); static void * newchunk(n) @@ -276,6 +285,32 @@ } +#if defined(ARGUSFORKFILTER) + +static void +deadman(pid_t pid) +{ +// extern struct ArgusParserStruct *ArgusParser; + char *errormsg = "ERROR: compiler timed out"; + +#if defined(ARGUSDEBUG) + ArgusDebug (4, "ArgusFilterCompile deadman() %s\n", errormsg); +#endif + kill(pid, SIGTERM); + +/* + if (ArgusParser->ArgusFilterFiledes[1] != -1) { + if ((len = write (ArgusParser->ArgusFilterFiledes[1], errormsg, strlen(errormsg))) < 0) + ArgusLog (LOG_ERR, "ArgusFilterCompile: write retn %s\n", strerror(errno)); + if ((len = read (ArgusParser->ArgusControlFiledes[0], &response, 1)) < 0) + ArgusLog (LOG_ERR, "ArgusFilterCompile: read retn %s\n", strerror(errno)); + } else +*/ + ArgusLog (LOG_INFO, errormsg); +} + +#endif + static void syntax() { @@ -298,18 +333,12 @@ } -#include -#include -/* -static u_int ArgusNetMask; -*/ -static int fsnaplen; - -int +char * ArgusFilterCompile(struct nff_program *program, char *buf, int optimize) { extern int argus_n_errors; - int retn = -1, len; + char *retn = NULL; + int len; #if defined(ARGUSFORKFILTER) extern struct ArgusParserStruct *ArgusParser; @@ -323,11 +352,7 @@ ArgusLog (LOG_ERR, "pipe %s", strerror(errno)); if ((pid = fork()) == 0) { - if (setjmp(top_ctx)) { - syntax(); - } #endif - fsnaplen = 96; #if defined(ARGUSDEBUG) @@ -387,14 +412,18 @@ #if defined(ARGUSDEBUG) ArgusDebug (4, "ArgusFilterCompile () received response"); #endif - exit(0); + _exit(EXIT_SUCCESS); } else { + struct timeval wait, now, then; + float deltatime = 0.0; fd_set readmask; - struct timeval wait; + + gettimeofday(&now, NULL); + then = now; wait.tv_sec = 0; - wait.tv_usec = 200000; + wait.tv_usec = 500000; FD_ZERO (&readmask); FD_SET (ArgusParser->ArgusFilterFiledes[0], &readmask); @@ -403,74 +432,92 @@ #if defined(ARGUSDEBUG) ArgusDebug (4, "ArgusFilterCompile () waiting for filter process %d on pipe %d\n", pid, ArgusParser->ArgusFilterFiledes[0]); #endif - while (select (width, &readmask, NULL, NULL, &wait) >= 0) { - if (FD_ISSET (ArgusParser->ArgusFilterFiledes[0], &readmask)) { - if ((len = read (ArgusParser->ArgusFilterFiledes[0], &program->bf_len, sizeof(program->bf_len))) > 0) { - if (!(strstr ((char *)&program->bf_len, "ERR"))) { + +#define ARGUS_COMPILER_TIMEOUT 1.5 + + while (((deltatime = RaDeltaFloatTime(&now, &then)) <= ARGUS_COMPILER_TIMEOUT) && (select (width, &readmask, NULL, NULL, &wait) >= 0)) { + if (deltatime >= ARGUS_COMPILER_TIMEOUT) { + deadman(pid); + retn = "TI"; + + } else { + if (FD_ISSET (ArgusParser->ArgusFilterFiledes[0], &readmask)) { + if ((len = read (ArgusParser->ArgusFilterFiledes[0], &program->bf_len, sizeof(program->bf_len))) > 0) { + if (!(strstr ((char *)&program->bf_len, "ERR"))) { #if defined(ARGUSDEBUG) - ArgusDebug (4, "ArgusFilterCompile () read filter length %d\n", program->bf_len); + ArgusDebug (4, "ArgusFilterCompile () read filter length %d\n", program->bf_len); #endif - if (program->bf_len > 0) { - if ((program->bf_insns = (void *) calloc (program->bf_len, sizeof(*program->bf_insns))) != NULL) { - if ((len = read (ArgusParser->ArgusFilterFiledes[0], program->bf_insns, (program->bf_len * sizeof(*program->bf_insns)))) > 0) { + if (program->bf_len > 0) { + if ((program->bf_insns = (void *) calloc (program->bf_len, sizeof(*program->bf_insns))) != NULL) { + if ((len = read (ArgusParser->ArgusFilterFiledes[0], program->bf_insns, (program->bf_len * sizeof(*program->bf_insns)))) > 0) { #if defined(ARGUSDEBUG) - ArgusDebug (4, "ArgusFilterCompile () read filter body %d\n", len); + ArgusDebug (4, "ArgusFilterCompile () read filter body %d\n", len); #endif - retn = 0; - status++; - } - } else - ArgusLog(LOG_ERR, "ArgusFilterCompile: calloc error %s\n", strerror(errno)); - } else { - status++; + retn = 0; + status++; + } + } else + ArgusLog(LOG_ERR, "ArgusFilterCompile: calloc error %s\n", strerror(errno)); + } else { + status++; #if defined(ARGUSDEBUG) - ArgusDebug (4, "ArgusFilterCompile () no filter body %d\n", len); + ArgusDebug (4, "ArgusFilterCompile () no filter body %d\n", len); #endif - } + } - } else { - status++; + } else { + if ((strstr ((char *)&program->bf_len, "syntax"))) + retn = "SY"; #if defined(ARGUSDEBUG) - ArgusDebug (4, "ArgusFilterCompile () received Error from compiler\n"); + ArgusDebug (4, "ArgusFilterCompile () received Error from compiler\n"); #endif + } } } } - if (!status) { - len = waitpid(pid, &status, WNOHANG); - if ((len == pid) || (len == -1)) { -#if defined(ARGUSDEBUG) - ArgusDebug (4, "ArgusFilterCompile () filter process %d terminated\n", pid); + if (status || (retn != NULL)) + break; - if (WIFEXITED(status)) { - ArgusDebug (4, "ArgusFilterCompile () child %d exited %d\n", pid, WEXITSTATUS(status)); - } else - if (WIFSIGNALED(status)) { - ArgusDebug (4, "ArgusFilterCompile () child %d signaled %d\n", pid, WTERMSIG(status)); - } else { - ArgusDebug (4, "ArgusFilterCompile () filter process %d terminated\n", pid); - return (-1); - } -#endif - if (len == -1) - return (-1); - } + FD_SET (ArgusParser->ArgusFilterFiledes[0], &readmask); + width = ArgusParser->ArgusFilterFiledes[0] + 1; - FD_SET (ArgusParser->ArgusFilterFiledes[0], &readmask); - width = ArgusParser->ArgusFilterFiledes[0] + 1; + wait.tv_sec = 0; + wait.tv_usec = 200000; - wait.tv_sec = 0; - wait.tv_usec = 200000; + gettimeofday(&now, NULL); + } - } else { - if ((len = write (ArgusParser->ArgusControlFiledes[1], "OK", 1)) < 0) - ArgusLog (LOG_ERR, "ArgusFilterCompile: write retn %s\n", strerror(errno)); - break; + if (!status) { + len = waitpid(pid, &status, WNOHANG); + if ((len == pid) || (len == -1)) { +#if defined(ARGUSDEBUG) + ArgusDebug (4, "ArgusFilterCompile () filter process %d terminated\n", pid); + + if (WIFEXITED(status)) { + ArgusDebug (4, "ArgusFilterCompile () child %d exited %d\n", pid, WEXITSTATUS(status)); + } else + if (WIFSIGNALED(status)) { + ArgusDebug (4, "ArgusFilterCompile () child %d signaled %d\n", pid, WTERMSIG(status)); + } else { + ArgusDebug (4, "ArgusFilterCompile () filter process %d terminated\n", pid); + return (NULL); + } +#endif + if (len == -1) + return (NULL); } + + } else { + if (retn == NULL) + retn = "OK"; } - waitpid(pid, &status, 0L); + if ((len = write (ArgusParser->ArgusControlFiledes[1], retn, 2)) < 0) + ArgusLog (LOG_ERR, "ArgusFilterCompile: write retn %s\n", strerror(errno)); + +// now block and wait for the child to be done + len = waitpid(pid, &status, 0); } close(ArgusParser->ArgusFilterFiledes[0]); @@ -603,18 +650,13 @@ } static struct ablock * -Argusgen_cmp(u_int dsr, u_int offset, u_int size, u_int v, u_int op) +Argusgen_cmp(int dsr, u_int offset, u_int size, u_int v, u_int op, int type) { struct slist *s; struct ablock *b; - if (dsr >= 0) { - s = new_stmt(NFF_LD|NFF_DSR|size); - s->s.dsr = dsr; - } else { - s = new_stmt(NFF_LD|NFF_ABS|size); - } - + s = new_stmt(NFF_LD|NFF_DSR|size); + s->s.dsr = dsr; s->s.data.k = offset; switch (op) { @@ -626,22 +668,22 @@ } b->stmts = s; b->s.data.k = v; + b->s.type = type; #if defined(ARGUSDEBUG) - ArgusDebug (7, "Argusgen_cmp (%d, %d, %d, %d) returns 0x%x\n", dsr, offset, size, v, b); + ArgusDebug (7, "Argusgen_cmp (%d, %d, %d, %d, %d, %d) returns %p\n", dsr, offset, size, v, op, type, b); #endif return b; } - static struct ablock * -Argusgen_fcmp(u_int dsr, u_int offset, u_int size, float v, u_int op) +Argusgen_fcmp(int dsr, u_int offset, u_int size, float v, u_int op, int type) { struct slist *s; struct ablock *b; - s = new_stmt(NFF_LD|NFF_ABS|size); + s = new_stmt(NFF_LD|NFF_DSR|size); s->s.dsr = dsr; s->s.data.k = offset; @@ -657,16 +699,16 @@ b->s.data.f = v; #if defined(ARGUSDEBUG) - ArgusDebug (7, "Argusgen_fcmp (%d, %d, %f, %d) returns 0x%x\n", offset, size, v, op, b); + ArgusDebug (7, "Argusgen_fcmp (%d, %d, %f, %d, %d) returns %p\n", offset, size, v, op, type, b); #endif return b; } static struct ablock * -Argusgen_mcmp(u_int dsr, u_int offset, u_int size, u_int v, u_int mask, u_int op) +Argusgen_mcmp(int dsr, u_int offset, u_int size, u_int v, u_int mask, u_int op, int type) { - struct ablock *b = Argusgen_cmp(dsr, offset, size, (v & mask), op); + struct ablock *b = Argusgen_cmp(dsr, offset, size, (v & mask), op, type); struct slist *s; if (mask != 0xffffffff) { @@ -676,14 +718,15 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (7, "Argusgen_mcmp (%d, %d, %d, %d, 0x%x, %d) returns 0x%x\n", dsr, offset, size, v, mask, op, b); + ArgusDebug (7, "Argusgen_mcmp (%d, %d, %d, %d, 0x%x, %d) returns %p\n", dsr, offset, size, v, mask, op, b); #endif return b; } + static struct ablock * -Argusgen_bcmp(u_int dsr, u_int offset, u_int size, u_char *v) +Argusgen_bcmp(int dsr, u_int offset, u_int size, u_char *v, int type) { struct ablock *b, *tmp; @@ -697,7 +740,7 @@ w = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]; #endif - tmp = Argusgen_cmp(dsr, offset + size - 4, NFF_W, w, Q_EQUAL); + tmp = Argusgen_cmp(dsr, offset + size - 4, NFF_W, w, Q_EQUAL, type); if (b != NULL) Argusgen_and(b, tmp); b = tmp; @@ -712,21 +755,21 @@ #else w = (p[0] << 8) | p[1]; #endif - tmp = Argusgen_cmp(dsr, offset + size - 2, NFF_H, w, Q_EQUAL); + tmp = Argusgen_cmp(dsr, offset + size - 2, NFF_H, w, Q_EQUAL, type); if (b != NULL) Argusgen_and(b, tmp); b = tmp; size -= 2; } if (size > 0) { - tmp = Argusgen_cmp(dsr, offset, NFF_B, (u_int)v[0], Q_EQUAL); + tmp = Argusgen_cmp(dsr, offset, NFF_B, (u_int)v[0], Q_EQUAL, type); if (b != NULL) Argusgen_and(b, tmp); b = tmp; } #if defined(ARGUSDEBUG) - ArgusDebug (7, "Argusgen_bcmp (%d, %d, %d) returns 0x%x\n", offset, size, v, b); + ArgusDebug (7, "Argusgen_bcmp (%d, %d, %d) returns %p\n", offset, size, v, b); #endif return b; @@ -749,41 +792,42 @@ switch (dir) { case Q_SRC: { - b1 = Argusgen_mcmp(-1, soffset, NFF_W, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(-1, soffset, NFF_W, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_not(b1); break; } case Q_DST: { - b1 = Argusgen_mcmp(-1, doffset, NFF_W, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(-1, doffset, NFF_W, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_not(b1); break; } case Q_OR: case Q_DEFAULT: - b1 = Argusgen_mcmp(-1, doffset, NFF_W, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(-1, doffset, NFF_W, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_not(b1); - b2 = Argusgen_mcmp(-1, soffset, NFF_W, value, value, Q_EQUAL); + b2 = Argusgen_mcmp(-1, soffset, NFF_W, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_not(b2); Argusgen_or(b2, b1); break; case Q_AND: - b1 = Argusgen_mcmp(-1, doffset, NFF_W, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(-1, doffset, NFF_W, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_not(b1); - b2 = Argusgen_mcmp(-1, soffset, NFF_W, value, value, Q_EQUAL); + b2 = Argusgen_mcmp(-1, soffset, NFF_W, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_not(b2); Argusgen_and(b2, b1); break; } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_dnsauth () returns 0x%x\n", b1); + ArgusDebug (4, "Argusgen_dnsauth () returns %p\n", b1); #endif return (b1); } + static struct ablock * Argusgen_espstatustype(unsigned int proto) { @@ -795,10 +839,10 @@ switch (proto) { case ARGUS_SRC_PKTS_DROP: - b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, offset, NFF_W, ARGUS_SRC_PKTS_DROP, ARGUS_SRC_PKTS_DROP, Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, offset, NFF_W, ARGUS_SRC_PKTS_DROP, ARGUS_SRC_PKTS_DROP, Q_EQUAL, Q_DEFAULT); break; case ARGUS_DST_PKTS_DROP: - b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, offset, NFF_W, ARGUS_DST_PKTS_DROP, ARGUS_DST_PKTS_DROP, Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, offset, NFF_W, ARGUS_DST_PKTS_DROP, ARGUS_DST_PKTS_DROP, Q_EQUAL, Q_DEFAULT); break; } @@ -806,7 +850,7 @@ Argusgen_and(b0, b1); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_espstatustype () returns 0x%x\n", b1); + ArgusDebug (4, "Argusgen_espstatustype () returns %p\n", b1); #endif return (b1); } @@ -829,7 +873,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_tcpstatustype () returns 0x%x\n", b1); + ArgusDebug (4, "Argusgen_tcpstatustype () returns %p\n", b1); #endif return (b1); } @@ -862,14 +906,14 @@ case ARGUS_SRC_OUTOFORDER: case ARGUS_DST_OUTOFORDER: default: - b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, offset, NFF_W, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, offset, NFF_W, value, value, Q_EQUAL, Q_DEFAULT); break; } Argusgen_and(b0, b1); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_tcpstatustype () returns 0x%x\n", b1); + ArgusDebug (4, "Argusgen_tcpstatustype () returns %p\n", b1); #endif return (b1); } @@ -881,10 +925,10 @@ struct ArgusIPAttrStruct ipattr; int offset = ((char *)&ipattr.hdr.argus_dsrvl8.qual - (char *)&ipattr); - b1 = Argusgen_mcmp(ARGUS_IPATTR_INDEX, offset, NFF_B, status, status, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_IPATTR_INDEX, offset, NFF_B, status, status, Q_EQUAL, Q_DEFAULT); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_ipattrstatustype (%d) returns 0x%x\n", status, b1); + ArgusDebug (4, "Argusgen_ipattrstatustype (%d) returns %p\n", status, b1); #endif return (b1); } @@ -902,12 +946,12 @@ case ARGUS_STOP: case ARGUS_TIMEOUT: case ARGUS_SHUTDOWN: - b0 = Argusgen_mcmp(-1, offset, NFF_B, (u_int) cause, cause, Q_EQUAL); + b0 = Argusgen_mcmp(-1, offset, NFF_B, (u_int) cause, cause, Q_EQUAL, Q_DEFAULT); break; } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_causetype () returns 0x%x\n", b0); + ArgusDebug (4, "Argusgen_causetype () returns %p\n", b0); #endif return (b0); @@ -920,19 +964,18 @@ struct ArgusCanonRecord canon; int offset = ((char *)&canon.hdr.type - (char *)&canon); - switch (type) { case ARGUS_MAR: case ARGUS_FAR: case ARGUS_EVENT: case ARGUS_INDEX: case ARGUS_DATASUP: - b0 = Argusgen_mcmp(-1, offset, NFF_B, (u_int) type, type, Q_EQUAL); + b0 = Argusgen_mcmp(-1, offset, NFF_B, (u_int) type, type, Q_EQUAL, Q_DEFAULT); break; } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_recordtype () returns 0x%x\n", b0); + ArgusDebug (4, "Argusgen_recordtype () returns %p\n", b0); #endif return (b0); @@ -944,7 +987,7 @@ struct ablock *b1 = NULL; struct ArgusMplsStruct mpls; int offset = ((char *)&mpls.hdr.type - (char *)&mpls); - b1 = Argusgen_cmp(ARGUS_MPLS_INDEX, offset, NFF_B, (u_int) ARGUS_MPLS_DSR, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_MPLS_INDEX, offset, NFF_B, (u_int) ARGUS_MPLS_DSR, Q_EQUAL, Q_DEFAULT); return(b1); } @@ -955,7 +998,7 @@ struct ablock *b1 = NULL; struct ArgusVlanStruct vlan; int offset = ((char *)&vlan.hdr.type - (char *)&vlan); - b1 = Argusgen_cmp(ARGUS_VLAN_INDEX, offset, NFF_B, (u_int) ARGUS_VLAN_DSR, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_VLAN_INDEX, offset, NFF_B, (u_int) ARGUS_VLAN_DSR, Q_EQUAL, Q_DEFAULT); return(b1); } @@ -972,29 +1015,36 @@ default: switch (proto) { case ETHERTYPE_REVARP: - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_ARP, 0x1F, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_ARP, 0x1F, Q_EQUAL, Q_DEFAULT); break; case ETHERTYPE_ARP: - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_ARP, 0x1F, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_ARP, 0x1F, Q_EQUAL, Q_DEFAULT); break; case ETHERTYPE_IP: - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_IPV4, 0x1F, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_IPV4, 0x1F, Q_EQUAL, Q_DEFAULT); break; case ETHERTYPE_IPV6: - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_IPV6, 0x1F, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_IPV6, 0x1F, Q_EQUAL, Q_DEFAULT); break; case ETHERTYPE_ISIS: - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_ISIS, 0x1F, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_ISIS, 0x1F, Q_EQUAL, Q_DEFAULT); break; - default: - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) proto, 0x1F, Q_EQUAL); + default: { + struct ablock *b0 = NULL; + b0 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) ARGUS_TYPE_ETHER, 0x1F, Q_EQUAL, Q_DEFAULT); + + offset = ((char *)&flow.mac_flow.ehdr.ether_type - (char *)&flow); + + b1 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_H, (u_int) proto, Q_EQUAL, Q_DEFAULT); + Argusgen_and(b0, b1); break; + } } break; } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_linktype (0x%x) returns 0x%x\n", proto, b1); + ArgusDebug (4, "Argusgen_linktype (0x%x) returns %p\n", proto, b1); #endif return (b1); @@ -1015,7 +1065,7 @@ case Q_IPV4: offset = ((char *)&flow.ip_flow.ip_p - (char *)&flow); b0 = Argusgen_linktype(ETHERTYPE_IP); - b1 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, v, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, v, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); return b1; @@ -1026,7 +1076,7 @@ offset = ((char *)&flow.ipv6_flow - (char *)&flow) + 32; #endif b0 = Argusgen_linktype(ETHERTYPE_IPV6); - b1 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, v, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, v, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); return b1; @@ -1041,31 +1091,31 @@ case IPPROTO_UDT: { offset = ((char *)&net.hdr.subtype - (char *)&net); - b1 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) ARGUS_UDT_FLOW, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) ARGUS_UDT_FLOW, Q_EQUAL, Q_DEFAULT); break; } case IPPROTO_RTP: { offset = ((char *)&flow.ip_flow.ip_p - (char *)&flow); - b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IPPROTO_UDP, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IPPROTO_UDP, Q_EQUAL, Q_DEFAULT); offset = ((char *)&net.hdr.subtype - (char *)&net); - b1 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) ARGUS_RTP_FLOW, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) ARGUS_RTP_FLOW, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); break; } case IPPROTO_RTCP: { offset = ((char *)&flow.ip_flow.ip_p - (char *)&flow); - b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IPPROTO_UDP, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IPPROTO_UDP, Q_EQUAL, Q_DEFAULT); offset = ((char *)&net.hdr.subtype - (char *)&net); - b1 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) ARGUS_RTCP_FLOW, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) ARGUS_RTCP_FLOW, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); break; } } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_prototype (0x%x) returns 0x%x\n", proto, b1); + ArgusDebug (4, "Argusgen_prototype (0x%x) returns %p\n", proto, b1); #endif return b1; @@ -1130,8 +1180,8 @@ switch (len) { case 0: break; - case 1: b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int)*addr, (u_int)*mask, Q_EQUAL); break; - case 2: b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_H, (u_int)*addr, (u_int)*mask, Q_EQUAL); break; + case 1: b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int)*addr, (u_int)*mask, Q_EQUAL, Q_DEFAULT); break; + case 2: b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset, NFF_H, (u_int)*addr, (u_int)*mask, Q_EQUAL, Q_DEFAULT); break; case 4: case 8: @@ -1140,9 +1190,9 @@ for (i = 0; i < len/4; i++) { if (mask[i] != 0) { if (b1 == NULL) { - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset + i*4, NFF_W, (u_int)addr[i], (u_int)mask[i], Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset + i*4, NFF_W, (u_int)addr[i], (u_int)mask[i], Q_EQUAL, Q_DEFAULT); } else { - b0 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset + i*4, NFF_W, (u_int)addr[i], (u_int)mask[i], Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_FLOW_INDEX, offset + i*4, NFF_W, (u_int)addr[i], (u_int)mask[i], Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); } } @@ -1151,7 +1201,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_hostop (0x%x, 0x%x, %d, %d, 0x%x) returns 0x%x\n", + ArgusDebug (4, "Argusgen_hostop (0x%x, 0x%x, %d, %d, 0x%x) returns %p\n", addr, mask, type, dir, proto, b1); #endif return b1; @@ -1173,12 +1223,12 @@ case Q_SRC: { offset = ((char *)&mac.mac.mac_union.ether.ehdr.ether_shost - (char *)&mac); - return Argusgen_bcmp (ARGUS_MAC_INDEX, offset, 6, eaddr); + return Argusgen_bcmp (ARGUS_MAC_INDEX, offset, 6, eaddr, Q_DEFAULT); } case Q_DST: { offset = ((char *)&mac.mac.mac_union.ether.ehdr.ether_dhost - (char *)&mac); - return Argusgen_bcmp (ARGUS_MAC_INDEX, offset, 6, eaddr); + return Argusgen_bcmp (ARGUS_MAC_INDEX, offset, 6, eaddr, Q_DEFAULT); } case Q_AND: { @@ -1339,7 +1389,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_host (0x%x, 0x%x, %d, 0x%x, %d) returns 0x%x\n", addr, mask, type, proto, dir, b1); + ArgusDebug (4, "Argusgen_host (0x%x, 0x%x, %d, 0x%x, %d) returns %p\n", addr, mask, type, proto, dir, b1); #endif return (b1); @@ -1347,7 +1397,7 @@ static struct ablock * -Argusgen_srcid(u_int addr, u_int mask) +Argusgen_srcid(u_int addr, u_int mask, int type) { struct ablock *b1 = NULL, *b0 = NULL, *tmp; struct ArgusTransportStruct trans; @@ -1356,26 +1406,29 @@ int offset = ((char *)&mar.argus_mar.argusid - (char *)&mar); tmp = Argusgen_recordtype(ARGUS_MAR); - b1 = Argusgen_mcmp(ARGUS_MAR_INDEX, offset, NFF_W, (u_int)addr, mask, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_MAR_INDEX, offset, NFF_W, (u_int)addr, mask, Q_EQUAL, type); Argusgen_and(tmp, b1); offset = ((char *)&trans.srcid - (char *)&trans); tmp = Argusgen_recordtype(ARGUS_FAR); - b0 = Argusgen_mcmp(ARGUS_TRANSPORT_INDEX, offset, NFF_W, (u_int)addr, mask, Q_EQUAL); + b0 = Argusgen_recordtype(ARGUS_EVENT); + Argusgen_or(b0, tmp); + + b0 = Argusgen_mcmp(ARGUS_TRANSPORT_INDEX, offset, NFF_W, (u_int)addr, mask, Q_EQUAL, type); Argusgen_and(tmp, b0); Argusgen_or(b0, b1); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_srcid (0x%x, 0x%x) returns 0x%x\n", addr, mask, b1); + ArgusDebug (4, "Argusgen_srcid (0x%x, 0x%x) returns %p\n", addr, mask, b1); #endif return (b1); } static struct ablock * -Argusgen_inode(u_int addr, u_int mask) +Argusgen_inode(u_int addr, u_int mask, int type) { struct ablock *b1 = NULL, *tmp; struct ArgusIcmpStruct icmp; @@ -1383,11 +1436,11 @@ int offset = ((char *)&icmp.osrcaddr - (char *)&icmp); tmp = Argusgen_recordtype(ARGUS_FAR); - b1 = Argusgen_mcmp(ARGUS_ICMP_INDEX, offset, NFF_W, (u_int)addr, mask, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_ICMP_INDEX, offset, NFF_W, (u_int)addr, mask, Q_EQUAL, type); Argusgen_and(tmp, b1); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_inode (0x%x, 0x%x) returns 0x%x\n", addr, mask, b1); + ArgusDebug (4, "Argusgen_inode (0x%x, 0x%x) returns %p\n", addr, mask, b1); #endif return (b1); @@ -1422,7 +1475,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_gateway (0x%x, 0x%x, %d, 0x%x, %d) returns 0x%x\n", eaddr, alist, type, proto, dir, b1); + ArgusDebug (4, "Argusgen_gateway (0x%x, 0x%x, %d, 0x%x, %d) returns %p\n", eaddr, alist, type, proto, dir, b1); #endif return b1; @@ -1434,7 +1487,7 @@ Argusgen_proto_abbrev(proto) int proto; { - struct ablock *b0, *b1; + struct ablock *b0, *b1 = NULL; switch (proto) { case Q_TCP: @@ -1530,7 +1583,6 @@ Argusgen_or(b0, b1); break; - case Q_CORRELATED: case Q_MERGED: case Q_ANON: break; @@ -1538,7 +1590,7 @@ case Q_ICMPMAP: { struct ArgusIcmpStruct icmp; int offset = ((char *)&icmp.hdr.argus_dsrvl8.qual - (char *)&icmp); - b1 = Argusgen_mcmp(ARGUS_ICMP_INDEX, offset, NFF_B, 0, 0x07, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_ICMP_INDEX, offset, NFF_B, 0, 0x07, Q_EQUAL, Q_DEFAULT); Argusgen_not(b1); break; } @@ -1546,8 +1598,8 @@ case Q_ECHO: { struct ArgusNetworkStruct net; int offset = ((char *)&net.net_union.icmp.icmp_type - (char *)&net); - b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) 0x08, Q_EQUAL); - b1 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) 0x00, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) 0x08, Q_EQUAL, Q_DEFAULT); + b1 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) 0x00, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); b0 = Argusgen_prototype(IPPROTO_ICMP, Q_DEFAULT); Argusgen_and(b0, b1); @@ -1560,11 +1612,11 @@ int offset = ((char *)&net.net_union.icmp.icmp_type - (char *)&net); b1 = Argusgen_prototype(IPPROTO_ICMP, Q_DEFAULT); - b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) 0x03, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) 0x03, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); offset = ((char *)&icmp.hdr.argus_dsrvl8.qual - (char *)&icmp); - b0 = Argusgen_cmp(ARGUS_ICMP_INDEX, offset, NFF_B, ARGUS_ICMPUNREACH_MAPPED, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_ICMP_INDEX, offset, NFF_B, ARGUS_ICMPUNREACH_MAPPED, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); break; } @@ -1574,11 +1626,11 @@ int offset = ((char *)&icmp.icmp_type - (char *)&icmp); b1 = Argusgen_prototype(IPPROTO_ICMP, Q_DEFAULT); - b0 = Argusgen_cmp(ARGUS_ICMP_INDEX, offset, NFF_B, (u_int) 0x05, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_ICMP_INDEX, offset, NFF_B, (u_int) 0x05, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); offset = ((char *)&icmp.hdr.argus_dsrvl8.qual - (char *)&icmp); - b0 = Argusgen_cmp(ARGUS_ICMP_INDEX, offset, NFF_B, ARGUS_ICMPREDIREC_MAPPED, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_ICMP_INDEX, offset, NFF_B, ARGUS_ICMPREDIREC_MAPPED, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); break; } @@ -1590,11 +1642,11 @@ int offset = ((char *)&net.net_union.icmp.icmp_type - (char *)&net); b1 = Argusgen_prototype(IPPROTO_ICMP, Q_DEFAULT); - b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) 0x0B, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, offset, NFF_B, (u_int) 0x0B, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); offset = ((char *)&icmp.hdr.argus_dsrvl8.qual - (char *)&icmp); - b0 = Argusgen_cmp(ARGUS_ICMP_INDEX, offset, NFF_B, ARGUS_ICMPTIMXCED_MAPPED, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_ICMP_INDEX, offset, NFF_B, ARGUS_ICMPTIMXCED_MAPPED, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); break; } @@ -1708,7 +1760,7 @@ int offset = ((char *)&flow.igmp_flow.type - (char *)&flow); b1 = Argusgen_prototype(IPPROTO_IGMP, Q_DEFAULT); - b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IGMP_HOST_MEMBERSHIP_QUERY, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IGMP_HOST_MEMBERSHIP_QUERY, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); break; } @@ -1718,7 +1770,7 @@ int offset = ((char *)&flow.igmp_flow.type - (char *)&flow); b1 = Argusgen_prototype(IPPROTO_IGMP, Q_DEFAULT); - b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IGMP_HOST_LEAVE_MESSAGE, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IGMP_HOST_LEAVE_MESSAGE, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); break; } @@ -1728,7 +1780,7 @@ int offset = ((char *)&flow.igmp_flow.type - (char *)&flow); b1 = Argusgen_prototype(IPPROTO_IGMP, Q_DEFAULT); - b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IGMP_HOST_MEMBERSHIP_QUERY, Q_EQUAL); + b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, offset, NFF_B, (u_int) IGMP_HOST_MEMBERSHIP_QUERY, Q_EQUAL, Q_DEFAULT); Argusgen_not(b0); Argusgen_and(b0, b1); break; @@ -1737,7 +1789,7 @@ case Q_COCODE: { struct ArgusCountryCodeStruct cocode; int offset = ((char *)&cocode.src - (char *)&cocode); - b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, offset, NFF_H, 0, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, offset, NFF_H, 0, Q_EQUAL, Q_DEFAULT); Argusgen_not(b1); break; } @@ -1757,11 +1809,24 @@ } static struct ablock * +Argusgen_tcpoptatom(int off, u_int v) +{ + struct ablock *b0; + + b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, off, NFF_W, (u_int)v, (u_int)v, Q_EQUAL, Q_DEFAULT); + +#if defined(ARGUSDEBUG) + ArgusDebug (4, "Argusgen_tcpoptatom (%d, %d) returns %p\n", off, v, b0); +#endif + return b0; +} + +static struct ablock * Argusgen_ipidatom(int off, u_int v, u_int op) { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_IPATTR_INDEX, off, NFF_H, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_IPATTR_INDEX, off, NFF_H, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_ipidatom (%d, 0x%x, %d) returns 0x%x\n", off, v, op, b0); @@ -1774,7 +1839,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_IPATTR_INDEX, off, NFF_B, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_IPATTR_INDEX, off, NFF_B, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_ttlatom (%d, 0x%x, %d) returns 0x%x\n", off, v, op, b0); @@ -1787,7 +1852,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_IPATTR_INDEX, off, NFF_B, v, op); + b0 = Argusgen_cmp(ARGUS_IPATTR_INDEX, off, NFF_B, v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_tosatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1801,7 +1866,7 @@ struct ablock *b0; v = (v << 2); - b0 = Argusgen_mcmp(ARGUS_IPATTR_INDEX, off, NFF_B, v, 0xFC, op); + b0 = Argusgen_mcmp(ARGUS_IPATTR_INDEX, off, NFF_B, v, 0xFC, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_dsbatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1815,7 +1880,7 @@ { struct ablock *b0; - b0 = Argusgen_mcmp(ARGUS_VLAN_INDEX, off, NFF_H, v, 0x0FFF, Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_VLAN_INDEX, off, NFF_H, v, 0x0FFF, Q_EQUAL, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_vidatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1828,7 +1893,7 @@ { struct ablock *b0; - b0 = Argusgen_mcmp(ARGUS_VLAN_INDEX, off, NFF_H, (v << 12), 0xF000, Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_VLAN_INDEX, off, NFF_H, (v << 12), 0xF000, Q_EQUAL, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_vpriatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1843,7 +1908,7 @@ unsigned int mask = 0xFFFFF000; unsigned int label = v << 12; - b0 = Argusgen_mcmp(ARGUS_MPLS_INDEX, off, NFF_W, label, mask, op); + b0 = Argusgen_mcmp(ARGUS_MPLS_INDEX, off, NFF_W, label, mask, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_midatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1856,7 +1921,7 @@ { struct ablock *b0; - b0 = Argusgen_mcmp(ARGUS_ENCAPS_INDEX, off, NFF_W, v, v, op); + b0 = Argusgen_mcmp(ARGUS_ENCAPS_INDEX, off, NFF_W, v, v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_encapsatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1869,7 +1934,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, off, NFF_H, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, off, NFF_H, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_portatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1882,7 +1947,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_METRIC_INDEX, off, NFF_L, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_METRIC_INDEX, off, NFF_L, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_pktatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1895,7 +1960,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_METRIC_INDEX, off, NFF_L, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_METRIC_INDEX, off, NFF_L, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_byteatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1908,7 +1973,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_BEHAVIOR_INDEX, off, NFF_W, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_BEHAVIOR_INDEX, off, NFF_W, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_nstrokeatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1916,12 +1981,27 @@ return b0; } +/* +static struct ablock * +Argusgen_dupatom( int off, long v, int op) +{ + struct ablock *b0; + + b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, off, NFF_W, (u_int)v, op, Q_DEFAULT); + +#if defined(ARGUSDEBUG) + ArgusDebug (4, "Argusgen_dupatom (%d, 0x%x) returns 0x%x\n", off, v, b0); +#endif + return b0; +} +*/ + static struct ablock * Argusgen_tcpbaseatom( int off, long v, int op) { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, off, NFF_W, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_NETWORK_INDEX, off, NFF_W, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_tcpbaseatom (%d, 0x%x) returns 0x%x\n", off, v, b0); @@ -1934,7 +2014,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_AGR_INDEX, off, NFF_W, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_AGR_INDEX, off, NFF_W, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_transatom (%d, 0x%x) returns 0x%x\n", off, v, b0); #endif @@ -1946,7 +2026,7 @@ { struct ablock *b0; - b0 = Argusgen_fcmp(-1, off, NFF_F, v, op); + b0 = Argusgen_fcmp(-1, off, NFF_F, v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_rateatom (%d, %f, %d) returns 0x%x\n", off, v, op, b0); @@ -1959,7 +2039,7 @@ { struct ablock *b0; - b0 = Argusgen_fcmp(-1, off, NFF_F, v, op); + b0 = Argusgen_fcmp(-1, off, NFF_F, v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_loadatom (%d, %f, %d) returns 0x%x\n", off, v, op, b0); @@ -1972,7 +2052,7 @@ { struct ablock *b0; - b0 = Argusgen_fcmp(-1, off, NFF_F, v, op); + b0 = Argusgen_fcmp(-1, off, NFF_F, v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_plossatom (%d, %f, %d) returns 0x%x\n", off, v, op, b0); @@ -1980,40 +2060,25 @@ return b0; } -/* static struct ablock * -Argusgen_interatom( int off, long v, int op) +Argusgen_pcratom( int off, float v, int op) { struct ablock *b0; - b0 = Argusgen_fcmp(off, NFF_F, v, op); + b0 = Argusgen_fcmp(-1, off, NFF_F, v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_interatom (%d, 0x%x) returns 0x%x\n", off, v, b0); + ArgusDebug (4, "Argusgen_pcratom (%d, %f, %d) returns 0x%x\n", off, v, op, b0); #endif return b0; } static struct ablock * -Argusgen_jitteratom( int off, float v, int op) -{ - struct ablock *b0; - - b0 = Argusgen_fcmp(off, NFF_F, v, op); - -#if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_jitteratom (%d, 0x%x) returns 0x%x\n", off, v, b0); -#endif - return b0; -} -*/ - -static struct ablock * Argusgen_duratom( int off, float v, int op) { struct ablock *b0; - b0 = Argusgen_fcmp(-1, off, NFF_F, v, op); + b0 = Argusgen_fcmp(-1, off, NFF_F, v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_duratom (%d, %f, %d) returns 0x%x\n", off, v, op, b0); @@ -2026,7 +2091,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(-1, off, NFF_L, (u_int)v, op); + b0 = Argusgen_cmp(-1, off, NFF_L, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_meanatom (%d, 0x%x) returns 0x%x\n", off, v, b0); #endif @@ -2038,7 +2103,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v*1000, op); + b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v*1000, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_deltaduratom (%d, 0x%x, %d) returns 0x%x\n", off, v, op, b0); #endif @@ -2050,7 +2115,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v*1000, op); + b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v*1000, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_deltastartatom (%d, 0x%x, %d) returns 0x%x\n", off, v, op, b0); #endif @@ -2062,7 +2127,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v*1000, op); + b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v*1000, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_deltalastatom (%d, 0x%x, %d) returns 0x%x\n", off, v, op, b0); #endif @@ -2074,7 +2139,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_deltaspktsatom (%d, 0x%x, %d) returns 0x%x\n", off, v, op, b0); #endif @@ -2086,7 +2151,7 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_W, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_deltadpktsatom (%d, 0x%x, %d) returns 0x%x\n", off, v, op, b0); #endif @@ -2098,20 +2163,33 @@ { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_ASN_INDEX, off, NFF_W, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_ASN_INDEX, off, NFF_W, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_asnatom (%d, 0x%x) returns 0x%x\n", off, v, b0); #endif return b0; } +static struct ablock * +Argusgen_coratom( int off, long v, int op) +{ + struct ablock *b0; + + b0 = Argusgen_cmp(ARGUS_COR_INDEX, off, NFF_B, (u_int)v, op, Q_DEFAULT); +#if defined(ARGUSDEBUG) + ArgusDebug (4, "Argusgen_coratom (%d, 0x%x) returns 0x%x\n", off, v, b0); +#endif + return b0; +} + + static struct ablock * Argusgen_spiatom( int off, long v, int op) { struct ablock *b0; - b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, off, NFF_W, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_FLOW_INDEX, off, NFF_W, (u_int)v, op, Q_DEFAULT); #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_spiatom (%d, 0x%x) returns 0x%x\n", off, v, b0); #endif @@ -2351,7 +2429,7 @@ int soffset = ((char *)&flow.hdr.subtype - (char *)&flow); b0 = Argusgen_recordtype(ARGUS_FAR); - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, soffset, NFF_B, tflow, tflow, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, soffset, NFF_B, tflow, tflow, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); #if defined(ARGUSDEBUG) @@ -2362,6 +2440,41 @@ } +static struct ablock * +Argusgen_tcpopt(int v) +{ + struct ablock *b0, *b1 = NULL; + struct ArgusNetworkStruct net; + unsigned int opt = 0; + int offset = ((char *)&net.net_union.tcp.options - (char *)&net); + + b0 = Argusgen_linktype(ETHERTYPE_IP); + + switch (v) { + case Q_TCPOPT: opt = ARGUS_TCP_OPTIONS; break; + case Q_MSS: opt = ARGUS_TCP_MAXSEG; break; + case Q_WSCALE: opt = ARGUS_TCP_WSCALE; break; + case Q_SELECTIVEACKOK: opt = ARGUS_TCP_SACKOK; break; + case Q_SELECTIVEACK: opt = ARGUS_TCP_SACK; break; + case Q_TCPECHO: opt = ARGUS_TCP_ECHO; break; + case Q_TCPECHOREPLY: opt = ARGUS_TCP_ECHOREPLY; break; + case Q_TCPTIMESTAMP: opt = ARGUS_TCP_TIMESTAMP; break; + case Q_TCPCC: opt = ARGUS_TCP_CC; break; + case Q_TCPCCNEW: opt = ARGUS_TCP_CCNEW; break; + case Q_TCPCCECHO: opt = ARGUS_TCP_CCECHO; break; + case Q_SECN: opt = ARGUS_TCP_SRC_ECN; break; + case Q_DECN: opt = ARGUS_TCP_DST_ECN; break; + } + + b1 = Argusgen_tcpoptatom(offset, opt); + Argusgen_and(b0, b1); + +#if defined(ARGUSDEBUG) + ArgusDebug (4, "Argusgen_tcpopt (%d) returns %p\n", v, b1); +#endif + + return b1; +} static struct ablock * Argusgen_ipid(int v, int dir, u_int op) @@ -2371,7 +2484,7 @@ int soffset = ((char *)&attr.src.ip_id - (char *)&attr); int doffset = ((char *)&attr.dst.ip_id - (char *)&attr); - b0 = Argusgen_linktype(ETHERTYPE_IP); + b0 = Argusgen_prototype(IPPROTO_TCP, Q_DEFAULT); switch (dir) { case Q_SRC: @@ -2402,7 +2515,7 @@ Argusgen_and(b0, b1); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_ipid (0x%x, %d) returns 0x%x\n", v, dir, b1); + ArgusDebug (4, "Argusgen_ipid (0x%x, %d) returns %p\n", v, dir, b1); #endif return b1; @@ -2450,7 +2563,7 @@ Argusgen_and(b0, b1); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_ttl (0x%x, %d, %d) returns 0x%x\n", v, dir, op, b1); + ArgusDebug (4, "Argusgen_ttl (0x%x, %d, %d) returns %p\n", v, dir, op, b1); #endif return b1; @@ -2495,7 +2608,7 @@ Argusgen_and(b0, b1); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_tos (0x%x, %d) returns 0x%x\n", v, dir, b1); + ArgusDebug (4, "Argusgen_tos (0x%x, %d) returns %p\n", v, dir, b1); #endif return b1; @@ -2539,7 +2652,7 @@ Argusgen_and(b0, b1); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_dsb (0x%x, %d) returns 0x%x\n", v, dir, b1); + ArgusDebug (4, "Argusgen_dsb (0x%x, %d) returns %p\n", v, dir, b1); #endif return b1; @@ -2550,7 +2663,7 @@ Argusgen_cocode(char *v, int dir, u_int op) { extern struct ArgusParserStruct *ArgusParser; - struct ablock *b0 = NULL, *b1 = NULL, *tmp; + struct ablock *b0 = NULL, *b1 = NULL; struct ArgusCountryCodeStruct cocode; unsigned short val; @@ -2559,35 +2672,30 @@ bcopy(v, (char *)&val, sizeof(val)); - b0 = Argusgen_cmp(ARGUS_COCODE_INDEX, soffset, NFF_H, 0, Q_EQUAL); - Argusgen_not(b0); - switch (dir) { case Q_SRC: - b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, soffset, NFF_H, val, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, soffset, NFF_H, val, Q_EQUAL, Q_DEFAULT); break; case Q_DST: - b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, doffset, NFF_H, val, Q_EQUAL); + b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, doffset, NFF_H, val, Q_EQUAL, Q_DEFAULT); break; default: case Q_OR: case Q_DEFAULT: - tmp = Argusgen_cmp(ARGUS_COCODE_INDEX, soffset, NFF_H, val, Q_EQUAL); - b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, doffset, NFF_H, val, Q_EQUAL); - Argusgen_or(tmp, b1); + b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, doffset, NFF_H, val, Q_EQUAL, Q_DEFAULT); + b0 = Argusgen_cmp(ARGUS_COCODE_INDEX, soffset, NFF_H, val, Q_EQUAL, Q_DEFAULT); + Argusgen_or(b0, b1); break; case Q_AND: - tmp = Argusgen_cmp(ARGUS_COCODE_INDEX, soffset, NFF_H, val, Q_EQUAL); - b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, doffset, NFF_H, val, Q_EQUAL); - Argusgen_and(tmp, b1); + b1 = Argusgen_cmp(ARGUS_COCODE_INDEX, doffset, NFF_H, val, Q_EQUAL, Q_DEFAULT); + b0 = Argusgen_cmp(ARGUS_COCODE_INDEX, soffset, NFF_H, val, Q_EQUAL, Q_DEFAULT); + Argusgen_and(b0, b1); break; } - Argusgen_and(b0, b1); - #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_cocode (0x%x, %d) returns 0x%x\n", v, dir, b1); #endif @@ -2809,28 +2917,28 @@ switch (dir) { case Q_SRC: - offset = ((char *)&argus.srate - (char *)&argus); + offset = ((char *)&argus.srate - (char *)&argus.hdr); b1 = Argusgen_rateatom(offset, v, op); break; case Q_DST: - offset = ((char *)&argus.drate - (char *)&argus); + offset = ((char *)&argus.drate - (char *)&argus.hdr); b1 = Argusgen_rateatom(offset, v, op); break; case Q_OR: case Q_DEFAULT: - offset = ((char *)&argus.srate - (char *)&argus); + offset = ((char *)&argus.srate - (char *)&argus.hdr); b0 = Argusgen_rateatom(offset, v, op); - offset = ((char *)&argus.drate - (char *)&argus); + offset = ((char *)&argus.drate - (char *)&argus.hdr); b1 = Argusgen_rateatom(offset, v, op); Argusgen_or(b0, b1); break; case Q_AND: - offset = ((char *)&argus.srate - (char *)&argus); + offset = ((char *)&argus.srate - (char *)&argus.hdr); b0 = Argusgen_rateatom(offset, v, op); - offset = ((char *)&argus.drate - (char *)&argus); + offset = ((char *)&argus.drate - (char *)&argus.hdr); b1 = Argusgen_rateatom(offset, v, op); Argusgen_and(b0, b1); break; @@ -2855,28 +2963,28 @@ switch (dir) { case Q_SRC: - offset = ((char *)&argus.sload - (char *)&argus); + offset = ((char *)&argus.sload - (char *)&argus.hdr); b1 = Argusgen_loadatom(offset, v, op); break; case Q_DST: - offset = ((char *)&argus.dload - (char *)&argus); + offset = ((char *)&argus.dload - (char *)&argus.hdr); b1 = Argusgen_loadatom(offset, v, op); break; case Q_OR: case Q_DEFAULT: - offset = ((char *)&argus.sload - (char *)&argus); + offset = ((char *)&argus.sload - (char *)&argus.hdr); b0 = Argusgen_loadatom(offset, v, op); - offset = ((char *)&argus.dload - (char *)&argus); + offset = ((char *)&argus.dload - (char *)&argus.hdr); b1 = Argusgen_loadatom(offset, v, op); Argusgen_or(b0, b1); break; case Q_AND: - offset = ((char *)&argus.sload - (char *)&argus); + offset = ((char *)&argus.sload - (char *)&argus.hdr); b0 = Argusgen_loadatom(offset, v, op); - offset = ((char *)&argus.dload - (char *)&argus); + offset = ((char *)&argus.dload - (char *)&argus.hdr); b1 = Argusgen_loadatom(offset, v, op); Argusgen_and(b0, b1); break; @@ -2902,28 +3010,28 @@ switch (dir) { case Q_SRC: - offset = ((char *)&argus.sloss - (char *)&argus); + offset = ((char *)&argus.sloss - (char *)&argus.hdr); b1 = Argusgen_lossatom(offset, v, op); break; case Q_DST: - offset = ((char *)&argus.dloss - (char *)&argus); + offset = ((char *)&argus.dloss - (char *)&argus.hdr); b1 = Argusgen_lossatom(offset, v, op); break; case Q_OR: case Q_DEFAULT: - offset = ((char *)&argus.sloss - (char *)&argus); + offset = ((char *)&argus.sloss - (char *)&argus.hdr); b0 = Argusgen_lossatom(offset, v, op); - offset = ((char *)&argus.dloss - (char *)&argus); + offset = ((char *)&argus.dloss - (char *)&argus.hdr); b1 = Argusgen_lossatom(offset, v, op); Argusgen_or(b0, b1); break; case Q_AND: - offset = ((char *)&argus.sloss - (char *)&argus); + offset = ((char *)&argus.sloss - (char *)&argus.hdr); b0 = Argusgen_lossatom(offset, v, op); - offset = ((char *)&argus.dloss - (char *)&argus); + offset = ((char *)&argus.dloss - (char *)&argus.hdr); b1 = Argusgen_lossatom(offset, v, op); Argusgen_and(b0, b1); break; @@ -2949,28 +3057,28 @@ switch (dir) { case Q_SRC: - offset = ((char *)&argus.sploss - (char *)&argus); + offset = ((char *)&argus.sploss - (char *)&argus.hdr); b1 = Argusgen_plossatom(offset, v, op); break; case Q_DST: - offset = ((char *)&argus.dploss - (char *)&argus); + offset = ((char *)&argus.dploss - (char *)&argus.hdr); b1 = Argusgen_plossatom(offset, v, op); break; case Q_OR: case Q_DEFAULT: - offset = ((char *)&argus.sploss - (char *)&argus); + offset = ((char *)&argus.sploss - (char *)&argus.hdr); b0 = Argusgen_plossatom(offset, v, op); - offset = ((char *)&argus.dploss - (char *)&argus); + offset = ((char *)&argus.dploss - (char *)&argus.hdr); b1 = Argusgen_plossatom(offset, v, op); Argusgen_or(b0, b1); break; case Q_AND: - offset = ((char *)&argus.sploss - (char *)&argus); + offset = ((char *)&argus.sploss - (char *)&argus.hdr); b0 = Argusgen_plossatom(offset, v, op); - offset = ((char *)&argus.dploss - (char *)&argus); + offset = ((char *)&argus.dploss - (char *)&argus.hdr); b1 = Argusgen_plossatom(offset, v, op); Argusgen_and(b0, b1); break; @@ -2986,10 +3094,85 @@ return b1; } + + + +static struct ablock * +Argusgen_pcr(float v, int dir, u_int op) +{ + struct ArgusRecordStruct argus; + struct ablock *b1 = NULL, *b0 = NULL; + int offset = ((char *)&argus.pcr - (char *)&argus.hdr); + + b0 = Argusgen_recordtype(ARGUS_FAR); + b1 = Argusgen_pcratom(offset, v, op); + Argusgen_and(b0, b1); + +#if defined(ARGUSDEBUG) + ArgusDebug (4, "Argusgen_pcr (%f, %d, %d) returns 0x%x\n", v, dir, op, b1); +#endif + + return b1; +} + static struct ablock * -Argusgen_inter(float v, int dir, u_int op) +Argusgen_inter(float v, int dir, int type, u_int op) { - struct ablock *b1 = NULL; + struct ablock *b1 = NULL, *b0 = NULL; + struct ArgusJitterStruct jitter; + float value = v * 1000.0; + int offset; + + switch (dir) { + case Q_SRC: + switch (type) { + case Q_INTER: offset = (char *)&jitter.act.src.meanval - (char *)&jitter; break; + case Q_INTERACTIVE: offset = (char *)&jitter.act.src.meanval - (char *)&jitter; break; + case Q_INTERIDLE: offset = (char *)&jitter.idle.src.meanval - (char *)&jitter; break; + } + b1 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + break; + + case Q_DST: + switch (type) { + case Q_INTER: offset = (char *)&jitter.act.dst.meanval - (char *)&jitter; break; + case Q_INTERACTIVE: offset = (char *)&jitter.act.dst.meanval - (char *)&jitter; break; + case Q_INTERIDLE: offset = (char *)&jitter.idle.dst.meanval - (char *)&jitter; break; + } + b1 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + break; + + case Q_OR: + switch (type) { + case Q_INTER: offset = (char *)&jitter.act.src.meanval - (char *)&jitter; break; + case Q_INTERACTIVE: offset = (char *)&jitter.act.src.meanval - (char *)&jitter; break; + case Q_INTERIDLE: offset = (char *)&jitter.idle.src.meanval - (char *)&jitter; break; + } + b0 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + + offset = (char *)&jitter.act.dst.meanval - (char *)&jitter; + b1 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + Argusgen_or(b0, b1); + break; + + case Q_DEFAULT: + case Q_AND: + switch (type) { + case Q_INTER: offset = (char *)&jitter.act.src.meanval - (char *)&jitter; break; + case Q_INTERACTIVE: offset = (char *)&jitter.act.src.meanval - (char *)&jitter; break; + case Q_INTERIDLE: offset = (char *)&jitter.idle.src.meanval - (char *)&jitter; break; + } + b0 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + + switch (type) { + case Q_INTER: offset = (char *)&jitter.act.dst.meanval - (char *)&jitter; break; + case Q_INTERACTIVE: offset = (char *)&jitter.act.dst.meanval - (char *)&jitter; break; + case Q_INTERIDLE: offset = (char *)&jitter.idle.dst.meanval - (char *)&jitter; break; + } + b1 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + Argusgen_and(b0, b1); + break; + } #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_inter (%f, %d, %d) returns 0x%x\n", v, dir, op, b1); @@ -2999,9 +3182,63 @@ } static struct ablock * -Argusgen_jitter(float v, int dir, u_int op) +Argusgen_jitter(float v, int dir, int type, u_int op) { - struct ablock *b1 = NULL; + struct ablock *b1 = NULL, *b0 = NULL; + struct ArgusJitterStruct jitter; + float value = v * 1000.0; + int offset; + + switch (dir) { + case Q_SRC: + switch (type) { + case Q_JITTER: offset = (char *)&jitter.act.src.stdev - (char *)&jitter; break; + case Q_JITTERACTIVE: offset = (char *)&jitter.act.src.stdev - (char *)&jitter; break; + case Q_JITTERIDLE: offset = (char *)&jitter.idle.src.stdev - (char *)&jitter; break; + } + b1 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + break; + + case Q_DST: + switch (type) { + case Q_JITTER: offset = (char *)&jitter.act.dst.stdev - (char *)&jitter; break; + case Q_JITTERACTIVE: offset = (char *)&jitter.act.dst.stdev - (char *)&jitter; break; + case Q_JITTERIDLE: offset = (char *)&jitter.idle.dst.stdev - (char *)&jitter; break; + } + b1 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + break; + + case Q_OR: + switch (type) { + case Q_JITTER: offset = (char *)&jitter.act.src.stdev - (char *)&jitter; break; + case Q_JITTERACTIVE: offset = (char *)&jitter.act.src.stdev - (char *)&jitter; break; + case Q_JITTERIDLE: offset = (char *)&jitter.idle.src.stdev - (char *)&jitter; break; + } + b0 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + + offset = (char *)&jitter.act.dst.stdev - (char *)&jitter; + b1 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + Argusgen_or(b0, b1); + break; + + case Q_DEFAULT: + case Q_AND: + switch (type) { + case Q_JITTER: offset = (char *)&jitter.act.src.stdev - (char *)&jitter; break; + case Q_JITTERACTIVE: offset = (char *)&jitter.act.src.stdev - (char *)&jitter; break; + case Q_JITTERIDLE: offset = (char *)&jitter.idle.src.stdev - (char *)&jitter; break; + } + b0 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + + switch (type) { + case Q_JITTER: offset = (char *)&jitter.act.dst.stdev - (char *)&jitter; break; + case Q_JITTERACTIVE: offset = (char *)&jitter.act.dst.stdev - (char *)&jitter; break; + case Q_JITTERIDLE: offset = (char *)&jitter.idle.dst.stdev - (char *)&jitter; break; + } + b1 = Argusgen_fcmp(ARGUS_JITTER_INDEX, offset, NFF_F, value, op, Q_DEFAULT); + Argusgen_and(b0, b1); + break; + } #if defined(ARGUSDEBUG) ArgusDebug (4, "Argusgen_jitter (%f, %d) returns 0x%x\n", v, dir, b1); @@ -3023,7 +3260,7 @@ case Q_OR: case Q_DEFAULT: case Q_AND: - offset = ((char *)&argus.dur - (char *)&argus); + offset = ((char *)&argus.dur - (char *)&argus.hdr); b1 = Argusgen_duratom(offset, v, op); break; @@ -3051,7 +3288,7 @@ case Q_OR: case Q_DEFAULT: case Q_AND: - offset = ((char *)&argus.mean - (char *)&argus); + offset = ((char *)&argus.mean - (char *)&argus.hdr); b1 = Argusgen_meanatom(offset, v, op); break; @@ -3249,6 +3486,26 @@ return b1; } + +static struct ablock * +Argusgen_cor(u_int v, int dir, u_int op) +{ + struct ablock *b1 = NULL; + struct ArgusCorrelateStruct cor; + + int offset = ((char *)&cor.hdr.argus_dsrvl8.len - (char *)&cor); + int value = (v * ((sizeof(struct ArgusCorMetrics) + 3 )/ 4)) + 1; + if (value == 1) value = 0; + + b1 = Argusgen_coratom(offset, (u_int)value, op); + +#if defined(ARGUSDEBUG) + ArgusDebug (4, "Argusgen_cor (0x%x, %d) returns 0x%x\n", v, dir, b1); +#endif + + return b1; +} + static struct ablock * Argusgen_spi(u_int v, int dir, u_int op) { @@ -3270,6 +3527,55 @@ } +/* +static struct ablock * +Argusgen_dup(int v, int dir, u_int op) +{ + struct ablock *b0, *b1 = NULL; + struct ArgusNetworkStruct net; + int offset; + + switch (dir) { + case Q_SRC: + offset = ((char *)&net.net_union.tcp.sdups - (char *)&net); + b1 = Argusgen_dupatom(offset, (u_int)v, op); + break; + + case Q_DST: + offset = ((char *)&net.net_union.tcp.ddups - (char *)&net); + b1 = Argusgen_dupatom(offset, (u_int)v, op); + break; + + case Q_OR: + case Q_DEFAULT: + offset = ((char *)&net.net_union.tcp.sdups - (char *)&net); + b0 = Argusgen_dupatom(offset, (u_int)v, op); + offset = ((char *)&net.net_union.tcp.ddups - (char *)&net); + b1 = Argusgen_dupatom(offset, (u_int)v, op); + Argusgen_or(b0, b1); + break; + + case Q_AND: + offset = ((char *)&net.net_union.tcp.sdups - (char *)&net); + b0 = Argusgen_dupatom(offset, (u_int)v, op); + offset = ((char *)&net.net_union.tcp.ddups - (char *)&net); + b1 = Argusgen_dupatom(offset, (u_int)v, op); + Argusgen_and(b0, b1); + break; + + default: + abort(); + } + +#if defined(ARGUSDEBUG) + ArgusDebug (4, "Argusgen_dup (0x%x, %d) returns 0x%x\n", v, dir, b1); +#endif + + return b1; +} +*/ + + static struct ablock * Argusgen_tcpbase(int v, int dir, u_int op) { @@ -3466,7 +3772,7 @@ offset = ((char *)&trans.seqnum - (char *)&trans); b1 = Argusgen_recordtype(ARGUS_FAR); - b0 = Argusgen_cmp(ARGUS_TRANSPORT_INDEX, offset, NFF_W, (u_int)v, op); + b0 = Argusgen_cmp(ARGUS_TRANSPORT_INDEX, offset, NFF_W, (u_int)v, op, Q_DEFAULT); Argusgen_and(b0, b1); @@ -3557,9 +3863,22 @@ #include struct ablock * -Argusgen_tcode(name, q) -int name; -struct qual q; +Argusgen_ocode(int name, struct qual q) +{ + struct ablock *b1 = NULL; + + b1 = Argusgen_tcpopt(name); + +#if defined(ARGUSDEBUG) + ArgusDebug (4, "Argusgen_ocode (0x%x, 0x%x) returns %p\n", name, q, b1); +#endif + + return b1; +} + + +struct ablock * +Argusgen_tcode(int name, struct qual q) { int dir = q.dir; struct ablock *b0 = NULL, *b1 = NULL; @@ -3682,22 +4001,22 @@ switch (dir) { case Q_SRC: - b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, soffset, NFF_B, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, soffset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); break; case Q_DST: - b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, doffset, NFF_B, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, doffset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); break; case Q_AND: - b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, doffset, NFF_B, value, value, Q_EQUAL); - b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, soffset, NFF_B, value, value, Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, doffset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); + b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, soffset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_and(b0, b1); break; default: case Q_OR: - b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, soffset, NFF_B, value, value, Q_EQUAL); - b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, doffset, NFF_B, value, value, Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, soffset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); + b1 = Argusgen_mcmp(ARGUS_NETWORK_INDEX, doffset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); break; } @@ -3716,27 +4035,27 @@ switch (dir) { case Q_SRC: { value = ARGUS_SRC_MULTIPATH; - b1 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); break; } case Q_DST: { value = ARGUS_DST_MULTIPATH; - b1 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); break; } case Q_AND: { value = ARGUS_MULTIPATH; - b1 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); break; } default: case Q_OR: { value = ARGUS_SRC_MULTIPATH; - b0 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); value = ARGUS_DST_MULTIPATH; - b1 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_MAC_INDEX, offset, NFF_B, value, value, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); break; } @@ -3750,9 +4069,9 @@ int value = 0; value = L1_PSNP; - b0 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL); + b0 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL, Q_DEFAULT); value = L2_PSNP; - b1 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL); + b1 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); b0 = Argusgen_linktype(ETHERTYPE_ISIS); Argusgen_and(b0, b1); @@ -3765,9 +4084,9 @@ int value = 0; value = L1_CSNP; - b0 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL); + b0 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL, Q_DEFAULT); value = L2_CSNP; - b1 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL); + b1 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); b0 = Argusgen_linktype(ETHERTYPE_ISIS); Argusgen_and(b0, b1); @@ -3780,9 +4099,9 @@ int value = 0; value = L1_LAN_IIH; - b0 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL); + b0 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL, Q_DEFAULT); value = L2_LAN_IIH; - b1 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL); + b1 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); b0 = Argusgen_linktype(ETHERTYPE_ISIS); Argusgen_and(b0, b1); @@ -3795,9 +4114,9 @@ int value = 0; value = L1_LSP; - b0 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL); + b0 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL, Q_DEFAULT); value = L2_LSP; - b1 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL); + b1 = Argusgen_cmp (ARGUS_FLOW_INDEX, offset, NFF_W, value, Q_EQUAL, Q_DEFAULT); Argusgen_or(b0, b1); b0 = Argusgen_linktype(ETHERTYPE_ISIS); Argusgen_and(b0, b1); @@ -3806,7 +4125,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_tcode (0x%x, 0x%x) returns 0x%x\n", name, q, b1); + ArgusDebug (4, "Argusgen_tcode (0x%x, 0x%x) returns %p\n", name, q, b1); #endif return b1; @@ -3816,15 +4135,14 @@ #include struct ablock * -Argusgen_scode(name, q) -char *name; -struct qual q; +Argusgen_scode(char *name, struct qual q) { - int port, real_proto = -1, i; + int port, real_proto = -1, slen = 0, i; int type = q.type, proto = q.proto, dir = q.dir; u_int maskbuf[4], *mask = maskbuf; + struct ablock *b = NULL, *tmp; -#if defined(HAVE_GETADDRINFO) +#if HAVE_GETADDRINFO struct addrinfo *host = NULL; int retn; #else @@ -3833,6 +4151,14 @@ #endif u_char *eaddr; + slen = strlen(name); + + if ((name[0] == '\"') && (name[strlen(name) - 1] == '\"')) { + name++; + name[strlen(name) - 1] = '\0'; + slen -= 2; + } + switch (q.addr) { case Q_NET: { #if defined(CYGWIN) @@ -3870,10 +4196,9 @@ case Q_IPV6: case Q_IP: case Q_IPV4: { -#if defined(HAVE_GETADDRINFO) +#if HAVE_GETADDRINFO if ((retn = getaddrinfo(name, NULL, NULL, &host)) == 0) { struct addrinfo *hptr = host; - while (host) { struct sockaddr_in *sa = (struct sockaddr_in *)host->ai_addr; unsigned int addr[128]; @@ -3966,27 +4291,23 @@ if (type == Q_STRING) { *mask = 0xffffffff; unsigned int addr = 0; - - for (i = 1; i < 5; i++) { - if (name[i] == '\"') - break; - else - ((char *)&addr)[i - 1] = name[i]; - } + + if (slen > 4) slen = 4; + bcopy(name, (char *)&addr, slen); switch (q.addr) { case Q_INODE: - b = Argusgen_inode(addr, *mask); + b = Argusgen_inode(addr, *mask, type); break; case Q_SRCID: - b = Argusgen_srcid(addr, *mask); + b = Argusgen_srcid(addr, *mask, type); break; } break; } else { -#if defined(HAVE_GETADDRINFO) +#if HAVE_GETADDRINFO struct addrinfo hints; bzero(&hints, sizeof(hints)); hints.ai_family = PF_INET; @@ -4006,11 +4327,11 @@ switch (q.addr) { case Q_INODE: - tmp = Argusgen_inode(addr[0], *mask); + tmp = Argusgen_inode(addr[0], *mask, type); break; case Q_SRCID: - tmp = Argusgen_srcid(addr[0], *mask); + tmp = Argusgen_srcid(addr[0], *mask, type); break; } @@ -4066,9 +4387,9 @@ } } case Q_SRCID: { - b = Argusgen_srcid(**alist++, 0xffffffffL); + b = Argusgen_srcid(**alist++, 0xffffffffL, type); while (*alist) { - tmp = Argusgen_srcid(**alist++, 0xffffffffL); + tmp = Argusgen_srcid(**alist++, 0xffffffffL, type); Argusgen_or(b, tmp); b = tmp; } @@ -4143,7 +4464,7 @@ if (eaddr == NULL) ArgusLog(LOG_ERR, "unknown ether host: %s", name); -#if defined(HAVE_GETADDRINFO) +#if HAVE_GETADDRINFO if ((retn = getaddrinfo(name, NULL, NULL, &host)) == 0) { struct addrinfo *hptr = host; @@ -4223,7 +4544,7 @@ if (dsctable && (dscode = &dsctable[i])) { while (dscode->label != NULL) { - if (!(strncasecmp(dscode->label, name, sizeof(dscode->label)))) { + if (!(strncasecmp(dscode->label, name, strlen(dscode->label)))) { val = dscode->code; break; } @@ -4267,7 +4588,7 @@ ArgusLog(LOG_ERR, "Argusgen_scode error"); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_scode (%s, 0x%x) returns 0x%x\n", name, q, b); + ArgusDebug (4, "Argusgen_scode (%s, 0x%x) returns %p\n", name, q, b); #endif return b; @@ -4310,7 +4631,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_mcode (%s, %s, %d, 0x%x) returns 0x%x\n", s1, s2, masklen, q, b0); + ArgusDebug (4, "Argusgen_mcode (%s, %s, %d, 0x%x) returns %p\n", s1, s2, masklen, q, b0); #endif return b0; @@ -4318,12 +4639,13 @@ struct ablock * -Argusgen_ncode(char *s, u_int v, struct qual q, u_int op) +Argusgen_ncode(char *s, int v, struct qual q, u_int op) { int dir = q.dir, vlen, proto = q.proto, type = q.type; u_int *addr = NULL, maskbuf[4], *mask = maskbuf; struct ablock *b; + bzero(mask, sizeof(maskbuf)); switch (type) { case Q_IPV6: { vlen = 128; @@ -4334,7 +4656,7 @@ if (s == NULL) vlen = 32; else - vlen = __argus_atoin(s, &v); + vlen = __argus_atoin(s, (unsigned int *)&v); break; } } @@ -4385,12 +4707,12 @@ case Q_SRCID: *mask = 0xffffffff; - b = Argusgen_srcid(v, *mask); + b = Argusgen_srcid(v, *mask, type); break; case Q_INODE: *mask = 0xffffffff; - b = Argusgen_inode(v, *mask); + b = Argusgen_inode(v, *mask, type); break; case Q_PORT: { @@ -4489,12 +4811,30 @@ b = Argusgen_ploss(v, dir, op); break; +/* + case Q_GAP: + b = Argusgen_gap(v, dir, op); + break; + + case Q_DUP: + b = Argusgen_dup(v, dir, op); + break; +*/ + + case Q_PCR: + b = Argusgen_pcr(v, dir, op); + break; + case Q_INTER: - b = Argusgen_inter((int)v, dir, op); + case Q_INTERACTIVE: + case Q_INTERIDLE: + b = Argusgen_inter((int)v, dir, type, op); break; case Q_JITTER: - b = Argusgen_jitter(v, dir, op); + case Q_JITTERACTIVE: + case Q_JITTERIDLE: + b = Argusgen_jitter(v, dir, type, op); break; case Q_DUR: @@ -4533,6 +4873,10 @@ b = Argusgen_asn((int)v, dir, op); break; + case Q_CORRELATED: + b = Argusgen_cor((int)v, dir, op); + break; + case Q_UNDEF: syntax(); /* NOTREACHED */ @@ -4543,7 +4887,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_ncode (%s, 0x%x, 0x%x, 0x%x) returns 0x%x\n", s, v, &q, op, b); + ArgusDebug (4, "Argusgen_ncode (%s, 0x%x, 0x%x, 0x%x) returns %p\n", s, v, &q, op, b); #endif return b; @@ -4565,11 +4909,15 @@ break; case Q_INTER: - b = Argusgen_inter(v, dir, op); + case Q_INTERACTIVE: + case Q_INTERIDLE: + b = Argusgen_inter(v, dir, q.addr, op); break; case Q_JITTER: - b = Argusgen_jitter(v, dir, op); + case Q_JITTERACTIVE: + case Q_JITTERIDLE: + b = Argusgen_jitter(v, dir, q.addr, op); break; case Q_DUR: @@ -4584,6 +4932,10 @@ b = Argusgen_ploss(v, dir, op); break; + case Q_PCR: + b = Argusgen_pcr(v, dir, op); + break; + case Q_UNDEF: syntax(); /* NOTREACHED */ @@ -4594,16 +4946,14 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_fcode (%s, %f, 0x%x, 0x%x) returns 0x%x\n", s, v, &q, op, b); + ArgusDebug (4, "Argusgen_fcode (%s, %f, 0x%x, 0x%x) returns %p\n", s, v, &q, op, b); #endif return b; } struct ablock * -Argusgen_ecode(eaddr, q) -u_char *eaddr; -struct qual q; +Argusgen_ecode( u_char *eaddr, struct qual q) { struct ablock *b0 = NULL, *b1 = NULL; struct ArgusFlow flow; @@ -4621,7 +4971,7 @@ b1 = Argusgen_linktype(ETHERTYPE_ARP); offset = ((char *)&flow.arp_flow.haddr.h_un.ethernet - (char *)&flow); len = sizeof(flow.arp_flow.haddr.h_un.ethernet); - b0 = Argusgen_bcmp (ARGUS_FLOW_INDEX, offset, len, eaddr); + b0 = Argusgen_bcmp (ARGUS_FLOW_INDEX, offset, len, eaddr, Q_DEFAULT); Argusgen_and(b1, b0); } break; @@ -4631,7 +4981,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_ecode (0x%x, 0x%x) returns 0x%x\n", eaddr, q, b0); + ArgusDebug (4, "Argusgen_ecode (0x%x, 0x%x) returns %p\n", eaddr, q, b0); #endif return b0; @@ -4664,7 +5014,7 @@ s->s.data.k = a->regno; #if defined(ARGUSDEBUG) - ArgusDebug (9, "xfer_to_x (0x%x) returns 0x%x\n", a, s); + ArgusDebug (9, "xfer_to_x (0x%x) returns %p\n", a, s); #endif return s; @@ -4680,7 +5030,7 @@ s->s.data.k = a->regno; #if defined(ARGUSDEBUG) - ArgusDebug (9, "xfer_to_a (0x%x) returns 0x%x\n", a, s); + ArgusDebug (9, "xfer_to_a (0x%x) returns %p\n", a, s); #endif return s; @@ -4776,7 +5126,7 @@ Argussappend(index->s, s); #if defined(ARGUSDEBUG) - ArgusDebug (5, "ArgusLoad (0x%x, 0x%x, 0x%x) returns 0x%x\n", proto, index, size, index); + ArgusDebug (5, "ArgusLoad (0x%x, 0x%x, 0x%x) returns %p\n", proto, index, size, index); #endif return index; @@ -4822,7 +5172,7 @@ Argusgen_and(tmp, b); #if defined(ARGUSDEBUG) - ArgusDebug (5, "Argusgen_relation (0x%x, 0x%x, 0x%x, %d) returns 0x%x\n", code, a0, a1, reversed, b); + ArgusDebug (5, "Argusgen_relation (0x%x, 0x%x, 0x%x, %d) returns %p\n", code, a0, a1, reversed, b); #endif return b; @@ -4842,7 +5192,7 @@ a->regno = regno; #if defined(ARGUSDEBUG) - ArgusDebug (5, "ArgusLoadLen () returns 0x%x\n", a); + ArgusDebug (5, "ArgusLoadLen () returns %p\n", a); #endif return a; @@ -4868,7 +5218,7 @@ a->regno = reg; #if defined(ARGUSDEBUG) - ArgusDebug (5, "ArgusLoadI (0x%x) returns 0x%x\n", val, a); + ArgusDebug (5, "ArgusLoadI (0x%x) returns %p\n", val, a); #endif return a; @@ -4890,7 +5240,7 @@ Argussappend(a->s, s); #if defined(ARGUSDEBUG) - ArgusDebug (4, "ArgusNeg (0x%x) returns 0x%x\n", a, a); + ArgusDebug (4, "ArgusNeg (0x%x) returns %p\n", a, a); #endif return a; @@ -4917,7 +5267,7 @@ Argussappend(a0->s, s0); #if defined(ARGUSDEBUG) - ArgusDebug (5, "Argusgen_arth (0x%x, 0x%x, 0x%x) returns 0x%x\n", code, a0, a1, a0); + ArgusDebug (5, "Argusgen_arth (0x%x, 0x%x, 0x%x) returns %p\n", code, a0, a1, a0); #endif return a0; @@ -4953,7 +5303,7 @@ ArgusLog(LOG_ERR, "too many registers needed to evaluate expression"); #if defined(ARGUSDEBUG) - ArgusDebug (9, "alloc_reg () returns 0x%x\n", retn); + ArgusDebug (9, "alloc_reg () returns %p\n", retn); #endif return (retn); @@ -4989,7 +5339,7 @@ b->stmts = s; #if defined(ARGUSDEBUG) - ArgusDebug (6, "Argusgen_len (%d, %d) return 0x%x\n", jmp, n, b); + ArgusDebug (6, "Argusgen_len (%d, %d) return %p\n", jmp, n, b); #endif return b; @@ -5004,7 +5354,7 @@ b = Argusgen_len(NFF_JGE, n); #if defined(ARGUSDEBUG) - ArgusDebug (6, "Argusgen_greater (%d) return 0x%x\n", n, b); + ArgusDebug (6, "Argusgen_greater (%d) return %p\n", n, b); #endif return b; @@ -5020,7 +5370,7 @@ Argusgen_not(b); #if defined(ARGUSDEBUG) - ArgusDebug (6, "Argusgen_less (%d) return 0x%x\n", n, b); + ArgusDebug (6, "Argusgen_less (%d) return %p\n", n, b); #endif return b; @@ -5038,16 +5388,16 @@ abort(); case '=': - return Argusgen_cmp(-1, (u_int)idx, NFF_B, (u_int)val, Q_EQUAL); + return Argusgen_cmp(-1, (u_int)idx, NFF_B, (u_int)val, Q_EQUAL, Q_DEFAULT); case '<': - b = Argusgen_cmp(-1, (u_int)idx, NFF_B, (u_int)val, Q_EQUAL); + b = Argusgen_cmp(-1, (u_int)idx, NFF_B, (u_int)val, Q_EQUAL, Q_DEFAULT); b->s.code = JMP(NFF_JGE); Argusgen_not(b); return b; case '>': - b = Argusgen_cmp(-1, (u_int)idx, NFF_B, (u_int)val, Q_EQUAL); + b = Argusgen_cmp(-1, (u_int)idx, NFF_B, (u_int)val, Q_EQUAL, Q_DEFAULT); b->s.code = JMP(NFF_JGT); return b; @@ -5065,7 +5415,7 @@ Argusgen_not(b); #if defined(ARGUSDEBUG) - ArgusDebug (6, "Argusgen_byteop (0x%x, 0x%x, 0x%x) return 0x%x\n", op, idx, val, b); + ArgusDebug (6, "Argusgen_byteop (0x%x, 0x%x, 0x%x) return %p\n", op, idx, val, b); #endif return b; @@ -5117,7 +5467,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_broadcast (0x%x) returns 0x%x\n", proto, b0); + ArgusDebug (4, "Argusgen_broadcast (0x%x) returns %p\n", proto, b0); #endif return b0; @@ -5155,9 +5505,9 @@ src_off = ((char *)&flow.ip_flow.ip_src - (char *)&flow); dst_off = ((char *)&flow.ip_flow.ip_dst - (char *)&flow); - b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, src_off, NFF_W, 0xe0000000, 0xf0000000, Q_EQUAL); + b1 = Argusgen_mcmp(ARGUS_FLOW_INDEX, src_off, NFF_W, 0xe0000000, 0xf0000000, Q_EQUAL, Q_DEFAULT); b1->s.code = JMP(NFF_JGE); - b0 = Argusgen_mcmp(ARGUS_FLOW_INDEX, dst_off, NFF_W, 0xe0000000, 0xf0000000, Q_EQUAL); + b0 = Argusgen_mcmp(ARGUS_FLOW_INDEX, dst_off, NFF_W, 0xe0000000, 0xf0000000, Q_EQUAL, Q_DEFAULT); b0->s.code = JMP(NFF_JGE); Argusgen_or(b0, b1); b0 = Argusgen_linktype(ETHERTYPE_IP); @@ -5167,7 +5517,7 @@ } #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_multicast (0x%x) returns 0x%x\n", proto, b1); + ArgusDebug (4, "Argusgen_multicast (0x%x) returns %p\n", proto, b1); #endif return b1; @@ -5191,7 +5541,7 @@ dir); #if defined(ARGUSDEBUG) - ArgusDebug (4, "Argusgen_multicast (0x%x) returns 0x%x\n", dir, b0); + ArgusDebug (4, "Argusgen_multicast (0x%x) returns %p\n", dir, b0); #endif return (b0); diff -Nru securityonion-argus-server-3.0.6/common/argus_filter.c securityonion-argus-server-3.0.8/common/argus_filter.c --- securityonion-argus-server-3.0.6/common/argus_filter.c 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/common/argus_filter.c 2014-07-21 20:13:27.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -19,12 +19,6 @@ * */ -/* - * $Id: //depot/argus/argus/common/argus_filter.c#17 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ - */ - /* * Copyright (c) 1990, 1991, 1992, 1993 * The Regents of the University of California. All rights reserved. @@ -66,6 +60,12 @@ * */ +/* + * $Id: //depot/argus/argus/common/argus_filter.c#23 $ + * $DateTime: 2014/07/21 16:13:27 $ + * $Change: 2903 $ + */ + #ifdef HAVE_CONFIG_H #include "argus_config.h" #endif @@ -74,9 +74,19 @@ #define ArgusFilter #endif + #include #include -#include + +#if defined(ARGUS_PLURIBUS) +#define _STDC_C99 +#else +#if !defined(__USE_ISOC99) +#define __USE_ISOC99 +#endif +#endif + +#include #include #include @@ -124,10 +134,41 @@ #define EXTRACT_DOUBLE(p) (*(double *)p) #define EXTRACT_LONGLONG(p) (*(unsigned long long *)p) +static int floatisequal(double, double); +static int floatisgreaterthan(double, double); +static int floatislessthan(double, double); +static int floatisgreaterthanequal(double, double); + #include -/* Hex digit to integer. */ +#if defined(ARGUS_PLURIBUS) +#ifndef signbit +#include + inline int +signbit(double x) +{ + switch (fpclass(x)) { + case FP_SNAN: + case FP_QNAN: + case FP_PZERO: + case FP_PNORM: + case FP_PDENORM: + case FP_PINF: + return(0); + + case FP_NDENORM: + case FP_NZERO: + case FP_NINF: + case FP_NNORM: + return(1); + } +} +#endif +#endif + +/* Hex digit to integer. */ +int xdtoi(int c) { if (isdigit(c)) @@ -142,10 +183,10 @@ * Execute the filter program starting at pc on the packet p * buflen is the amount of data present */ -unsigned int ArgusFilterRecord (struct nff_insn *, struct ArgusRecordStruct *); -unsigned int ArgusFilterOrig (struct nff_insn *, struct ArgusRecordStruct *, int, int); +int ArgusFilterRecord (struct nff_insn *, struct ArgusRecordStruct *); +int ArgusFilterOrig (struct nff_insn *, struct ArgusRecordStruct *, int, int); -unsigned int +int ArgusFilterRecord (struct nff_insn *pc, struct ArgusRecordStruct *argus) { int buflen = sizeof(*argus); @@ -153,14 +194,55 @@ if (pc) return ArgusFilterOrig (pc, argus, buflen, buflen); else - return (unsigned int) -1; + return -1; +} + +static int +floatisequal(double F, double f) +{ + extern struct ArgusParserStruct *ArgusParser; + double epsilon = pow(0.1, ((ArgusParser->pflag + 1) * 1.0)); + double pval = pow(10.0, ArgusParser->pflag); + + F = round(F * pval) / pval; + f = round(f * pval) / pval; + return ((fabs(F - f) <= epsilon) ? ((F == 0) ? (signbit(F) == signbit(f)) : 1) : 0); +} + +static int +floatisgreaterthan(double F, double f) +{ + extern struct ArgusParserStruct *ArgusParser; + double pval = pow(10.0, ArgusParser->pflag); + + F = round(F * pval) / pval; + f = round(f * pval) / pval; + return ((F > f) ? 1 : (((F == 0) && (f == 0)) ? ((!(signbit(F)) && signbit(f)) ? 1 : 0) : 0)); +} + +static int +floatislessthan(double F, double f) +{ + extern struct ArgusParserStruct *ArgusParser; + double pval = pow(10.0, ArgusParser->pflag); + + F = round(F * pval) / pval; + f = round(f * pval) / pval; + return ((F < f) ? 1 : (((F == 0) && (f == 0)) ? ((!(signbit(F)) && signbit(f)) ? 0 : 1) : 0)); } -unsigned int +static int +floatisgreaterthanequal(double F, double f) +{ + return (!(floatislessthan(F, f))); +} + +int ArgusFilterOrig (struct nff_insn *pc, struct ArgusRecordStruct *argus, int wirelen, int buflen) { - unsigned long long A = 0, X = 0; - long long k, mem [NFF_MEMWORDS]; + nff_int64 A = 0, X = 0; + nff_int64 mem [NFF_MEMWORDS]; + int k, retn; u_char *p = (u_char *)argus; float F; @@ -168,415 +250,465 @@ while (1) { ++pc; switch (pc->code) { - default: - abort(); - - case NFF_RET|NFF_K: - return (unsigned int)pc->data.k; - - case NFF_RET|NFF_A: - return (unsigned int)A; + default: + abort(); - case NFF_LD|NFF_D|NFF_DSR: { - if (pc->dsr >= 0) { - struct ArgusDSRHeader *dsr; - if ((dsr = argus->dsrs[pc->dsr]) != NULL) { - u_char *ptr = (u_char *)dsr; - k = pc->data.k; - if (k + sizeof(double) > (dsr->argus_dsrvl8.len * 4)) + case NFF_RET|NFF_K: { + retn = pc->data.k; + return retn; + } + + case NFF_RET|NFF_A: + return (unsigned int)A; + + case NFF_LD|NFF_D|NFF_DSR: { + if (pc->dsr >= 0) { + struct ArgusDSRHeader *dsr; + if ((dsr = argus->dsrs[pc->dsr]) != NULL) { + u_char *ptr = (u_char *)dsr; + k = pc->data.k; + if (k + sizeof(double) > (dsr->argus_dsrvl8.len * 4)) + A = -1; + else + A = EXTRACT_DOUBLE(&ptr[k]); + } else A = -1; - else - A = EXTRACT_DOUBLE(&ptr[k]); - } else - A = -1; - } else { - struct ArgusRecordHeader *hdr; - if ((hdr = &argus->hdr) != NULL) { - u_char *ptr = (u_char *)hdr; - k = pc->data.k; - if (k + sizeof(double) > sizeof(hdr)) + } else { + if (argus != NULL) { + u_char *ptr = (u_char *)&argus->hdr; + k = pc->data.k; + if ((k + sizeof(double)) > sizeof(struct ArgusRecordStruct)) + A = -1; + else + A = EXTRACT_DOUBLE(&ptr[k]); + } else A = -1; - else - A = EXTRACT_DOUBLE(&ptr[k]); - } else + } + continue; + } + + case NFF_LD|NFF_D|NFF_ABS: { + k = pc->data.k; + if (k + sizeof(double) > buflen) { A = -1; + } else + A = EXTRACT_DOUBLE(&p[k]); + continue; } - continue; - } - case NFF_LD|NFF_D|NFF_ABS: - k = pc->data.k; - if (k + sizeof(double) > buflen) { - A = -1; - } else - A = EXTRACT_DOUBLE(&p[k]); - continue; + case NFF_LD|NFF_F|NFF_DSR: { + if (pc->dsr >= 0) { + struct ArgusDSRHeader *dsr; + if ((dsr = argus->dsrs[pc->dsr]) != NULL) { + u_char *ptr = (u_char *)dsr; + k = pc->data.k; + if ((k + sizeof(float)) > (dsr->argus_dsrvl8.len * 4)) + F = -10000000; + else + F = EXTRACT_FLOAT(&ptr[k]); + } else + F = -10000000; + } else { + if (argus != NULL) { + u_char *ptr = (u_char *)&argus->hdr; + k = pc->data.k; + if ((k + sizeof(float)) > sizeof(struct ArgusRecordStruct)) + F = -10000000; + else + F = EXTRACT_FLOAT(&ptr[k]); + } else + F = -10000000; + } + continue; + } - case NFF_LD|NFF_F|NFF_DSR: { - if (pc->dsr >= 0) { - struct ArgusDSRHeader *dsr; - if ((dsr = argus->dsrs[pc->dsr]) != NULL) { - u_char *ptr = (u_char *)dsr; - k = pc->data.k; - if (k + sizeof(float) > (dsr->argus_dsrvl8.len * 4)) - F = -1; - else - F = EXTRACT_FLOAT(&ptr[k]); - } else - F = -1; - } else { - struct ArgusRecordHeader *hdr; - if ((hdr = &argus->hdr) != NULL) { - u_char *ptr = (u_char *)hdr; - k = pc->data.k; - if (k + sizeof(float) > sizeof(hdr)) - F = -1; - else - F = EXTRACT_FLOAT(&ptr[k]); + case NFF_LD|NFF_F|NFF_ABS: { + k = pc->data.k; + if (k + sizeof(float) > buflen) { + F = -10000000; } else - F = -1; + F = EXTRACT_FLOAT(&p[k]); + continue; } - continue; - } - case NFF_LD|NFF_F|NFF_ABS: - k = pc->data.k; - if (k + sizeof(float) > buflen) { - F = -1; - } else - F = EXTRACT_FLOAT(&p[k]); - continue; - - case NFF_LD|NFF_L|NFF_DSR: { - if (pc->dsr >= 0) { - struct ArgusDSRHeader *dsr; - if ((dsr = argus->dsrs[pc->dsr]) != NULL) { - u_char *ptr = (u_char *)dsr; - k = pc->data.k; - if (k + sizeof(long long) > (dsr->argus_dsrvl8.len * 4)) + case NFF_LD|NFF_L|NFF_DSR: { + if (pc->dsr >= 0) { + struct ArgusDSRHeader *dsr; + if ((dsr = argus->dsrs[pc->dsr]) != NULL) { + u_char *ptr = (u_char *)dsr; + k = pc->data.k; + if (k + sizeof(long long) > (dsr->argus_dsrvl8.len * 4)) + A = -1; + else + A = EXTRACT_LONGLONG(&ptr[k]); + } else A = -1; - else - A = EXTRACT_LONGLONG(&ptr[k]); - } else - A = -1; - } else { - struct ArgusRecordHeader *hdr; - if ((hdr = &argus->hdr) != NULL) { - u_char *ptr = (u_char *)hdr; - k = pc->data.k; - if (k + sizeof(long long) > sizeof(hdr)) + } else { + if (argus != NULL) { + u_char *ptr = (u_char *)&argus->hdr; + k = pc->data.k; + if ((k + sizeof(long long)) > sizeof(struct ArgusRecordStruct)) + A = -1; + else + A = EXTRACT_LONGLONG(&ptr[k]); + } else A = -1; - else - A = EXTRACT_LONGLONG(&ptr[k]); - } else - A = -1; + } + continue; } - continue; - } - case NFF_LD|NFF_L|NFF_ABS: - k = pc->data.k; - if ((k + sizeof(long long)) > buflen) { - A = -1; - } else - A = EXTRACT_LONGLONG(&p[k]); - continue; + case NFF_LD|NFF_L|NFF_ABS: { + k = pc->data.k; + if ((k + sizeof(long long)) > buflen) { + A = -1; + } else + A = EXTRACT_LONGLONG(&p[k]); + continue; + } - case NFF_LD|NFF_W|NFF_DSR: { - if (pc->dsr >= 0) { - struct ArgusDSRHeader *dsr; - if ((dsr = argus->dsrs[pc->dsr]) != NULL) { - u_char *ptr = (u_char *)dsr; - k = pc->data.k; - if ((k + sizeof(int)) > (dsr->argus_dsrvl8.len * 4)) + case NFF_LD|NFF_W|NFF_DSR: { + if (pc->dsr >= 0) { + struct ArgusDSRHeader *dsr; + if ((dsr = argus->dsrs[pc->dsr]) != NULL) { + u_char *ptr = (u_char *)dsr; + k = pc->data.k; + if ((k + sizeof(int)) > (dsr->argus_dsrvl8.len * 4)) + A = -1; + else + A = EXTRACT_LONG(&ptr[k]); + } else A = -1; - else - A = EXTRACT_LONG(&ptr[k]); - } else - A = -1; - } else { - struct ArgusRecordHeader *hdr; - if ((hdr = &argus->hdr) != NULL) { - u_char *ptr = (u_char *)hdr; - k = pc->data.k; - if (k + sizeof(int) > sizeof(hdr)) + } else { + if (argus != NULL) { + u_char *ptr = (u_char *)&argus->hdr; + k = pc->data.k; + if ((k + sizeof(int)) > sizeof(struct ArgusRecordStruct)) + A = -1; + else + A = EXTRACT_LONG(&ptr[k]); + } else A = -1; - else - A = EXTRACT_LONG(&ptr[k]); - } else - A = -1; + } + continue; } - continue; - } - case NFF_LD|NFF_W|NFF_ABS: - k = pc->data.k; - if ((k + sizeof(int)) > buflen) { - A = -1; - } else - A = EXTRACT_LONG(&p[k]); - continue; + case NFF_LD|NFF_W|NFF_ABS: { + k = pc->data.k; + if ((k + sizeof(int)) > buflen) { + A = -1; + } else + A = EXTRACT_LONG(&p[k]); + continue; + } - case NFF_LD|NFF_H|NFF_DSR: { - if (pc->dsr >= 0) { - struct ArgusDSRHeader *dsr; - if ((dsr = argus->dsrs[pc->dsr]) != NULL) { - u_char *ptr = (u_char *)dsr; - k = pc->data.k; - if ((k + sizeof(short)) > (dsr->argus_dsrvl8.len * 4)) + case NFF_LD|NFF_H|NFF_DSR: { + if (pc->dsr >= 0) { + struct ArgusDSRHeader *dsr; + if ((dsr = argus->dsrs[pc->dsr]) != NULL) { + u_char *ptr = (u_char *)dsr; + k = pc->data.k; + if ((k + sizeof(short)) > (dsr->argus_dsrvl8.len * 4)) + A = -1; + else + A = EXTRACT_SHORT(&ptr[k]); + } else A = -1; - else - A = EXTRACT_SHORT(&ptr[k]); - } else - A = -1; - } else { - struct ArgusRecordHeader *hdr; - if ((hdr = &argus->hdr) != NULL) { - u_char *ptr = (u_char *)hdr; - k = pc->data.k; - if (k + sizeof(short) > sizeof(hdr)) + } else { + if (argus != NULL) { + u_char *ptr = (u_char *)&argus->hdr; + k = pc->data.k; + if ((k + sizeof(short)) > sizeof(struct ArgusRecordStruct)) + A = -1; + else + A = EXTRACT_SHORT(&ptr[k]); + } else A = -1; - else - A = EXTRACT_SHORT(&ptr[k]); - } else - A = -1; + } + continue; } - continue; - } - case NFF_LD|NFF_H|NFF_ABS: - k = pc->data.k; - if ((k + sizeof(short)) > buflen) - A = -1; - else - A = EXTRACT_SHORT(&p[k]); - continue; + case NFF_LD|NFF_H|NFF_ABS: { + k = pc->data.k; + if ((k + sizeof(short)) > buflen) + A = -1; + else + A = EXTRACT_SHORT(&p[k]); + continue; + } - case NFF_LD|NFF_B|NFF_DSR: { - if (pc->dsr >= 0) { - struct ArgusDSRHeader *dsr; - if ((dsr = argus->dsrs[pc->dsr]) != NULL) { - u_char *ptr = (u_char *)dsr; - k = pc->data.k; - if (k > (dsr->argus_dsrvl8.len * 4)) + case NFF_LD|NFF_B|NFF_DSR: { + if (pc->dsr >= 0) { + struct ArgusDSRHeader *dsr; + if ((dsr = argus->dsrs[pc->dsr]) != NULL) { + u_char *ptr = (u_char *)dsr; + k = pc->data.k; + if (k > (dsr->argus_dsrvl8.len * 4)) + A = -1; + else + A = ptr[k]; + } else A = -1; - else - A = ptr[k]; - } else - A = -1; - } else { - struct ArgusRecordHeader *hdr; - if ((hdr = &argus->hdr) != NULL) { - u_char *ptr = (u_char *)hdr; - k = pc->data.k; - if (k > sizeof(hdr)) + } else { + if (argus != NULL) { + u_char *ptr = (u_char *)&argus->hdr; + k = pc->data.k; + if (k > sizeof(struct ArgusRecordStruct)) + A = -1; + else + A = ptr[k]; + } else A = -1; - else - A = ptr[k]; - } else - A = -1; + } + continue; } - continue; - } - case NFF_LD|NFF_B|NFF_ABS: - k = pc->data.k; - if (k >= buflen) { - A = -1; - } else - A = p[k]; - continue; + case NFF_LD|NFF_B|NFF_ABS: { + k = pc->data.k; + if (k >= buflen) { + A = -1; + } else + A = p[k]; + continue; + } - case NFF_LD|NFF_W|NFF_LEN: - A = wirelen; - continue; + case NFF_LD|NFF_W|NFF_LEN: { + A = wirelen; + continue; + } - case NFF_LDX|NFF_W|NFF_LEN: - X = wirelen; - continue; + case NFF_LDX|NFF_W|NFF_LEN: { + X = wirelen; + continue; + } - case NFF_LD|NFF_W|NFF_IND: - k = X + pc->data.k; - if ((k + sizeof(int)) > buflen) { - A = -1; - } else - A = EXTRACT_LONG(&p[k]); - continue; + case NFF_LD|NFF_W|NFF_IND: { + k = X + pc->data.k; + if ((k + sizeof(int)) > buflen) { + A = -1; + } else + A = EXTRACT_LONG(&p[k]); + continue; + } - case NFF_LD|NFF_H|NFF_IND: - k = X + pc->data.k; - if ((k + sizeof(short)) > buflen) { - A = -1; - } else - A = EXTRACT_SHORT(&p[k]); - continue; + case NFF_LD|NFF_H|NFF_IND: { + k = X + pc->data.k; + if ((k + sizeof(short)) > buflen) { + A = -1; + } else + A = EXTRACT_SHORT(&p[k]); + continue; + } - case NFF_LD|NFF_B|NFF_IND: - k = X + pc->data.k; - if (k >= buflen) { - A = -1; - } else - A = p[k]; - continue; + case NFF_LD|NFF_B|NFF_IND: { + k = X + pc->data.k; + if (k >= buflen) { + A = -1; + } else + A = p[k]; + continue; + } - case NFF_LDX|NFF_MSH|NFF_B: - k = pc->data.k; - if (k >= buflen) { - X = -1; - } else - X = (p[pc->data.k] & 0xf) << 2; - continue; + case NFF_LDX|NFF_MSH|NFF_B: { + k = pc->data.k; + if (k >= buflen) { + X = -1; + } else + X = (p[k] & 0xf) << 2; + continue; + } - case NFF_LD|NFF_IMM: - A = pc->data.k; - continue; + case NFF_LD|NFF_IMM: { + A = pc->data.k; + continue; + } - case NFF_LDX|NFF_IMM: - X = pc->data.k; - continue; + case NFF_LDX|NFF_IMM: { + X = pc->data.k; + continue; + } - case NFF_LD|NFF_MEM: - A = mem[pc->data.k]; - continue; - - case NFF_LDX|NFF_MEM: - X = mem[pc->data.k]; - continue; + case NFF_LD|NFF_MEM: { + k = pc->data.k; + A = mem[k]; + continue; + } + + case NFF_LDX|NFF_MEM: { + k = pc->data.k; + X = mem[k]; + continue; + } - case NFF_ST: - mem[pc->data.k] = A; - continue; + case NFF_ST: { + k = pc->data.k; + mem[k] = A; + continue; + } - case NFF_STX: - mem[pc->data.k] = X; - continue; + case NFF_STX: { + k = pc->data.k; + mem[k] = X; + continue; + } - case NFF_JMP|NFF_JA: - pc += pc->data.k; - continue; + case NFF_JMP|NFF_JA: { + k = pc->data.k; + pc += k; + continue; + } - case NFF_JMP|NFF_JGT|NFF_K: - pc += ((A > pc->data.k) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JGT|NFF_K: { + pc += ((A > pc->data.k) && (A != -1)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JGE|NFF_K: - pc += ((A >= pc->data.k) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JGE|NFF_K: { + pc += ((A >= pc->data.k) && (A != -1)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JEQ|NFF_K: - pc += ((A == pc->data.k) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JEQ|NFF_K: { + pc += ((A == pc->data.k) && (A != -1)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JGT|NFF_F: - pc += ((F > pc->data.f) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JGT|NFF_F: { + pc += ((floatisgreaterthan(F, pc->data.f)) && (F != -10000000)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JGE|NFF_F: - pc += ((F >= pc->data.f) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JGE|NFF_F: { + pc += ((floatisgreaterthanequal(F, pc->data.f)) && (F != -10000000)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JEQ|NFF_F: - pc += ((F == pc->data.f) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JEQ|NFF_F: { + pc += ((floatisequal(F, pc->data.f)) && (F != -10000000)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JSET|NFF_K: - pc += ((A & pc->data.k) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JSET|NFF_K: { + pc += ((A & pc->data.k) && (A != -1)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JGT|NFF_X: - pc += ((A > X) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JGT|NFF_X: { + pc += ((A > X) && (A != -1)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JGE|NFF_X: - pc += ((A >= X) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JGE|NFF_X: { + pc += ((A >= X) && (A != -1)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JEQ|NFF_X: - pc += ((A == X) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JEQ|NFF_X: { + pc += ((A == X) && (A != -1)) ? pc->jt : pc->jf; + continue; + } - case NFF_JMP|NFF_JSET|NFF_X: - pc += ((A & X) && (A != -1)) ? pc->jt : pc->jf; - continue; + case NFF_JMP|NFF_JSET|NFF_X: { + pc += ((A & X) && (A != -1)) ? pc->jt : pc->jf; + continue; + } - case NFF_ALU|NFF_ADD|NFF_X: - A += X; - continue; - - case NFF_ALU|NFF_SUB|NFF_X: - A -= X; - continue; - - case NFF_ALU|NFF_MUL|NFF_X: - A *= X; - continue; - - case NFF_ALU|NFF_DIV|NFF_X: - if (X == 0) - return 0; - A /= X; - continue; - - case NFF_ALU|NFF_AND|NFF_X: - A &= X; - continue; - - case NFF_ALU|NFF_OR|NFF_X: - A |= X; - continue; + case NFF_ALU|NFF_ADD|NFF_X: { + A += X; + continue; + } + + case NFF_ALU|NFF_SUB|NFF_X: { + A -= X; + continue; + } + + case NFF_ALU|NFF_MUL|NFF_X: { + A *= X; + continue; + } + + case NFF_ALU|NFF_DIV|NFF_X: { + if (X == 0) + return 0; + A /= X; + continue; + } + + case NFF_ALU|NFF_AND|NFF_X: { + A &= X; + continue; + } + + case NFF_ALU|NFF_OR|NFF_X: { + A |= X; + continue; + } - case NFF_ALU|NFF_LSH|NFF_X: - A <<= X; - continue; + case NFF_ALU|NFF_LSH|NFF_X: { + A <<= X; + continue; + } - case NFF_ALU|NFF_RSH|NFF_X: - A >>= X; - continue; + case NFF_ALU|NFF_RSH|NFF_X: { + A >>= X; + continue; + } - case NFF_ALU|NFF_ADD|NFF_K: - A += pc->data.k; - continue; - - case NFF_ALU|NFF_SUB|NFF_K: - A -= pc->data.k; - continue; - - case NFF_ALU|NFF_MUL|NFF_K: - A *= pc->data.k; - continue; - - case NFF_ALU|NFF_DIV|NFF_K: - A /= pc->data.k; - continue; - - case NFF_ALU|NFF_AND|NFF_K: - A &= pc->data.k; - continue; - - case NFF_ALU|NFF_OR|NFF_K: - A |= pc->data.k; - continue; + case NFF_ALU|NFF_ADD|NFF_K: { + A += pc->data.k; + continue; + } + + case NFF_ALU|NFF_SUB|NFF_K: { + A -= pc->data.k; + continue; + } + + case NFF_ALU|NFF_MUL|NFF_K: { + A *= pc->data.k; + continue; + } + + case NFF_ALU|NFF_DIV|NFF_K: { + A /= pc->data.k; + continue; + } + + case NFF_ALU|NFF_AND|NFF_K: { + A &= pc->data.k; + continue; + } + + case NFF_ALU|NFF_OR|NFF_K: { + A |= pc->data.k; + continue; + } - case NFF_ALU|NFF_LSH|NFF_K: - A <<= pc->data.k; - continue; + case NFF_ALU|NFF_LSH|NFF_K: { + A <<= pc->data.k; + continue; + } - case NFF_ALU|NFF_RSH|NFF_K: - A >>= pc->data.k; - continue; + case NFF_ALU|NFF_RSH|NFF_K: { + A >>= pc->data.k; + continue; + } - case NFF_ALU|NFF_NEG: - A = -A; - continue; + case NFF_ALU|NFF_NEG: { + A = -A; + continue; + } - case NFF_MISC|NFF_TAX: - X = A; - continue; + case NFF_MISC|NFF_TAX: { + X = A; + continue; + } - case NFF_MISC|NFF_TXA: - A = X; - continue; + case NFF_MISC|NFF_TXA: { + A = X; + continue; + } } } } @@ -744,7 +876,7 @@ */ -#ifdef HAVE_SOLARIS +#if defined(HAVE_SOLARIS) #include #endif @@ -889,17 +1021,14 @@ return (0); } -#if !defined(CYGWIN) && !defined(HAVE_SYS_ERRLIST) +#if defined(ARGUS_SYS_ERRLIST) && defined(HAVE_SOLARIS) static char ArgusErrorString[128]; #endif char * argus_strerror(int errnum) { -#if !defined(CYGWIN) && !defined(HAVE_SYS_ERRLIST) - extern int sys_nerr; - extern char *sys_errlist[]; - +#if defined(ARGUS_SYS_ERRLIST) && defined(HAVE_SOLARIS) if ((unsigned int)errnum < sys_nerr) return ((char *) sys_errlist[errnum]); @@ -1308,8 +1437,10 @@ return X_ATOM; case NFF_ST: - case NFF_STX: - return s->data.k; + case NFF_STX: { + int k = s->data.k; + return k; + } case NFF_MISC: return NFF_MISCOP(s->code) == NFF_TAX ? X_ATOM : A_ATOM; @@ -1665,8 +1796,7 @@ * j #0 j x */ last->s.code = NOP; - b->s.code = NFF_CLASS(b->s.code) | NFF_OP(b->s.code) | - NFF_X; + b->s.code = NFF_CLASS(b->s.code) | NFF_OP(b->s.code) |NFF_X; done = 0; } } @@ -1712,15 +1842,15 @@ switch (NFF_OP(b->s.code)) { case NFF_JEQ: - v = v == b->s.data.k; + v = (v == b->s.data.k); break; case NFF_JGT: - v = (unsigned)v > b->s.data.k; + v = v > b->s.data.k; break; case NFF_JGE: - v = (unsigned)v >= b->s.data.k; + v = v >= b->s.data.k; break; case NFF_JSET: @@ -2510,7 +2640,7 @@ opt_cleanup(); #ifdef ARGUSDEBUG - ArgusDebug (6, "Argusnff_optimize (%p)", rootp); + ArgusDebug (6, "Argusnff_optimize (0x%x)", rootp); #endif } @@ -2850,6 +2980,7 @@ continue; dst->dsr = src->s.dsr; dst->code = (u_short)src->s.code; + dst->type = src->s.type; dst->data.k = src->s.data.k; /* fill block-local relative jump */ @@ -2917,6 +3048,7 @@ #endif dst->dsr = p->s.dsr; dst->code = (u_short)p->s.code; + dst->type = p->s.type; dst->data.k = p->s.data.k; if (JT(p)) { extrajmps = 0; @@ -2932,6 +3064,7 @@ dst->jt = extrajmps; extrajmps++; dst[extrajmps].code = NFF_JMP|NFF_JA; + dst[extrajmps].type = dst->type; dst[extrajmps].data.k = off - extrajmps; } else @@ -2949,6 +3082,7 @@ dst->jf = extrajmps; extrajmps++; dst[extrajmps].code = NFF_JMP|NFF_JA; + dst[extrajmps].type = dst->type; dst[extrajmps].data.k = off - extrajmps; } else @@ -2988,12 +3122,14 @@ } #ifdef ARGUSDEBUG - ArgusDebug (10, "Argusicode_to_fcode () returning %p", fp); + ArgusDebug (10, "Argusicode_to_fcode () returning 0x%x", fp); #endif return fp; } + + #ifdef BDEBUG static void opt_dump(struct ablock *root) @@ -3026,7 +3162,7 @@ snprintf(&buf[slen], buflen - slen, "%d\n", n); for (i = 0; i < n; ++insn, ++i) { slen = strlen(buf); - snprintf(&buf[slen], buflen - slen, "%lu %lu %lu %Lu\n", (long)insn->code, + snprintf(&buf[slen], buflen - slen, "%lu %lu %lu %llu\n", (long)insn->code, (long)insn->jt, (long)insn->jf, insn->data.k); } return ; @@ -3034,7 +3170,7 @@ if (option > 1) { for (i = 0; i < n; ++insn, ++i) slen = strlen(buf); - snprintf(&buf[slen], buflen - slen, "{ 0x%x, %d, %d, 0x%08Lx },\n", + snprintf(&buf[slen], buflen - slen, "{ 0x%x, %d, %d, 0x%08llx },\n", insn->code, insn->jt, insn->jf, insn->data.k); return; } @@ -3048,8 +3184,6 @@ } } - - /* * Copyright (c) 1990, 1991, 1992, 1994 * The Regents of the University of California. All rights reserved. @@ -3080,314 +3214,318 @@ int v, dsr; static char image[256]; char operand[64], op[32]; - char *fmt; + char *fmt, *s; float f; dsr = p->dsr; - v = p->data.k; - f = p->data.f; + v = p->data.k; + f = p->data.f; + s = p->data.s; switch (p->code) { default: - snprintf(op, 6, "unimp"); + sprintf(op, "unimp"); fmt = "0x%x"; v = p->code; break; case NFF_RET|NFF_K: - snprintf(op, 4, "ret"); + sprintf(op, "ret"); fmt = " #%d"; break; case NFF_RET|NFF_A: - snprintf(op, 4, "ret"); + sprintf(op, "ret"); fmt = " "; break; case NFF_LD|NFF_F|NFF_DSR: if (dsr < 0) - snprintf(op, 32, "ldf hdr"); + sprintf(op, "ldf hdr"); else - snprintf(op, 32, "ldf dsr[%d]", dsr); + sprintf(op, "ldf dsr[%d]", dsr); fmt = "[%d]"; break; case NFF_LD|NFF_F|NFF_ABS: - snprintf(op, 3, "ldf"); + sprintf(op, "ldf"); fmt = "[%d]"; break; case NFF_LD|NFF_L|NFF_DSR: if (dsr < 0) - snprintf(op, 32, "ldll hdr"); + sprintf(op, "ldll hdr"); else - snprintf(op, 32, "ldll dsr[%d]", dsr); + sprintf(op, "ldll dsr[%d]", dsr); fmt = "[%Ld]"; break; case NFF_LD|NFF_L|NFF_ABS: - snprintf(op, 5, "ldll"); + sprintf(op, "ldll"); fmt = "[%Ld]"; break; case NFF_LD|NFF_W|NFF_DSR: if (dsr < 0) - snprintf(op, 32, "ld hdr"); + sprintf(op, "ld hdr"); else - snprintf(op, 32, "ld dsr[%d]", dsr); + sprintf(op, "ld dsr[%d]", dsr); fmt = "[%d]"; break; case NFF_LD|NFF_W|NFF_ABS: - snprintf(op, 3, "ld"); + sprintf(op, "ld"); fmt = "[%d]"; break; case NFF_LD|NFF_H|NFF_DSR: if (dsr < 0) - snprintf(op, 32, "ldh hdr"); + sprintf(op, "ldh hdr"); else - snprintf(op, 32, "ldh dsr[%d]", dsr); + sprintf(op, "ldh dsr[%d]", dsr); fmt = "[%d]"; break; case NFF_LD|NFF_H|NFF_ABS: - snprintf(op, 4, "ldh"); + sprintf(op, "ldh"); fmt = "[%d]"; break; case NFF_LD|NFF_B|NFF_DSR: if (dsr < 0) - snprintf(op, 32, "ldb hdr"); + sprintf(op, "ldb hdr"); else - snprintf(op, 32, "ldb dsr[%d]", dsr); + sprintf(op, "ldb dsr[%d]", dsr); fmt = "[%d]"; break; case NFF_LD|NFF_B|NFF_ABS: - snprintf(op, 4, "ldb"); + sprintf(op, "ldb"); fmt = "[%d]"; break; case NFF_LD|NFF_W|NFF_LEN: - snprintf(op, 3, "ld"); + sprintf(op, "ld"); fmt = "#pktlen"; break; case NFF_LD|NFF_F|NFF_IND: - snprintf(op, 4, "ldf"); + sprintf(op, "ldf"); fmt = "[x + %d]"; break; case NFF_LD|NFF_L|NFF_IND: - snprintf(op, 5, "ldll"); + sprintf(op, "ldll"); fmt = "[x + %Ld]"; break; case NFF_LD|NFF_W|NFF_IND: - snprintf(op, 3, "ld"); + sprintf(op, "ld"); fmt = "[x + %d]"; break; case NFF_LD|NFF_H|NFF_IND: - snprintf(op, 3, "ldh"); + sprintf(op, "ldh"); fmt = "[x + %d]"; break; case NFF_LD|NFF_B|NFF_IND: - snprintf(op, 4, "ldb"); + sprintf(op, "ldb"); fmt = "[x + %d]"; break; case NFF_LD|NFF_IMM: - snprintf(op, 3, "ld"); + sprintf(op, "ld"); fmt = "#0x%x"; break; case NFF_LDX|NFF_IMM: - snprintf(op, 4, "ldx"); + sprintf(op, "ldx"); fmt = "#0x%x"; break; case NFF_LDX|NFF_MSH|NFF_B: - snprintf(op, 5, "ldxb"); + sprintf(op, "ldxb"); fmt = "4*([%d]&0xf)"; break; case NFF_LD|NFF_MEM: - snprintf(op, 3, "ld"); + sprintf(op, "ld"); fmt = "M[%d]"; break; case NFF_LDX|NFF_MEM: - snprintf(op, 4, "ldx"); + sprintf(op, "ldx"); fmt = "M[%d]"; break; case NFF_ST: - snprintf(op, 3, "st"); + sprintf(op, "st"); fmt = "M[%d]"; break; case NFF_STX: - snprintf(op, 4, "stx"); + sprintf(op, "stx"); fmt = "M[%d]"; break; case NFF_JMP|NFF_JA: - snprintf(op, 3, "ja"); + sprintf(op, "ja"); fmt = "%d"; v = n + p->data.k; break; case NFF_JMP|NFF_JGT|NFF_F: - snprintf(op, 4, "jgt"); + sprintf(op, "jgt"); fmt = "#%f"; break; case NFF_JMP|NFF_JGE|NFF_F: - snprintf(op, 4, "jge"); + sprintf(op, "jge"); fmt = "#%f"; break; case NFF_JMP|NFF_JEQ|NFF_F: - snprintf(op, 4, "jeq"); + sprintf(op, "jeq"); fmt = "#%f"; break; case NFF_JMP|NFF_JGT|NFF_K: - snprintf(op, 4, "jgt"); + sprintf(op, "jgt"); fmt = "#0x%x"; break; case NFF_JMP|NFF_JGE|NFF_K: - snprintf(op, 4, "jge"); + sprintf(op, "jge"); fmt = "#0x%x"; break; case NFF_JMP|NFF_JEQ|NFF_K: - snprintf(op, 4, "jeq"); - fmt = "#0x%x"; + sprintf(op, "jeq"); + switch (p->type) { + case Q_STRING: fmt = "\"%s\""; break; + case Q_DEFAULT: fmt = "#0x%x"; break; + } break; case NFF_JMP|NFF_JSET|NFF_K: - snprintf(op, 4, "jset"); + sprintf(op, "jset"); fmt = "#0x%x"; break; case NFF_JMP|NFF_JGT|NFF_X: - snprintf(op, 4, "jgt"); + sprintf(op, "jgt"); fmt = "x"; break; case NFF_JMP|NFF_JGE|NFF_X: - snprintf(op, 4, "jge"); + sprintf(op, "jge"); fmt = "x"; break; case NFF_JMP|NFF_JEQ|NFF_X: - snprintf(op, 4, "jeq"); + sprintf(op, "jeq"); fmt = "x"; break; case NFF_JMP|NFF_JSET|NFF_X: - snprintf(op, 4, "jset"); + sprintf(op, "jset"); fmt = "x"; break; case NFF_ALU|NFF_ADD|NFF_X: - snprintf(op, 4, "add"); + sprintf(op, "add"); fmt = "x"; break; case NFF_ALU|NFF_SUB|NFF_X: - snprintf(op, 4, "sub"); + sprintf(op, "sub"); fmt = "x"; break; case NFF_ALU|NFF_MUL|NFF_X: - snprintf(op, 4, "mul"); + sprintf(op, "mul"); fmt = "x"; break; case NFF_ALU|NFF_DIV|NFF_X: - snprintf(op, 4, "div"); + sprintf(op, "div"); fmt = "x"; break; case NFF_ALU|NFF_AND|NFF_X: - snprintf(op, 4, "and"); + sprintf(op, "and"); fmt = "x"; break; case NFF_ALU|NFF_OR|NFF_X: - snprintf(op, 3, "or"); + sprintf(op, "or"); fmt = "x"; break; case NFF_ALU|NFF_LSH|NFF_X: - snprintf(op, 4, "lsh"); + sprintf(op, "lsh"); fmt = "x"; break; case NFF_ALU|NFF_RSH|NFF_X: - snprintf(op, 4, "rsh"); + sprintf(op, "rsh"); fmt = "x"; break; case NFF_ALU|NFF_ADD|NFF_K: - snprintf(op, 4, "add"); + sprintf(op, "add"); fmt = " #%d"; break; case NFF_ALU|NFF_SUB|NFF_K: - snprintf(op, 4,"sub"); + sprintf(op, "sub"); fmt = " #%d"; break; case NFF_ALU|NFF_MUL|NFF_K: - snprintf(op, 4, "mul"); + sprintf(op, "mul"); fmt = " #%d"; break; case NFF_ALU|NFF_DIV|NFF_K: - snprintf(op, 4, "div"); + sprintf(op, "div"); fmt = " #%d"; break; case NFF_ALU|NFF_AND|NFF_K: - snprintf(op, 4, "and"); + sprintf(op, "and"); fmt = " #%d"; break; case NFF_ALU|NFF_OR|NFF_K: - snprintf(op, 3, "or"); + sprintf(op, "or"); fmt = " #%d"; break; case NFF_ALU|NFF_LSH|NFF_K: - snprintf(op, 4, "lsh"); + sprintf(op, "lsh"); fmt = " #%d"; break; case NFF_ALU|NFF_RSH|NFF_K: - snprintf(op, 4, "rsh"); + sprintf(op, "rsh"); fmt = " #%d"; break; case NFF_ALU|NFF_NEG: - snprintf(op, 4, "neg"); + sprintf(op, "neg"); fmt = ""; break; case NFF_MISC|NFF_TAX: - snprintf(op, 4, "tax"); + sprintf(op, "tax"); fmt = ""; break; case NFF_MISC|NFF_TXA: - snprintf(op, 4, "txa"); + sprintf(op, "txa"); fmt = ""; break; } @@ -3395,13 +3533,16 @@ if (!(strcmp (fmt, "#%f"))) (void)snprintf(operand, 64, fmt, f); else + if (!(strcmp (fmt, "\"%s\""))) { + (void)snprintf(operand, 64, fmt, s); + } else (void)snprintf(operand, 64, fmt, v); - (void)snprintf(image, 256, - (NFF_CLASS(p->code) == NFF_JMP && - NFF_OP(p->code) != NFF_JA) ? - "(%03d) %-8s %-16s jt %d\tjf %d" - : "(%03d) %-8s%s", - n, op, operand, n + 1 + p->jt, n + 1 + p->jf); + if ((NFF_CLASS(p->code) == NFF_JMP) && (NFF_OP(p->code) != NFF_JA)) + (void)snprintf(image, 256, "(%03d) %-8s %-16s jt %d\tjf %d", + n, op, operand, (n + 1 + p->jt), (n + 1 + p->jf)); + else + (void)snprintf(image, 256, "(%03d) %-8s%s", n, op, operand); + return image; } diff -Nru securityonion-argus-server-3.0.6/common/argus_util.c securityonion-argus-server-3.0.8/common/argus_util.c --- securityonion-argus-server-3.0.6/common/argus_util.c 2012-03-15 05:13:08.000000000 +0000 +++ securityonion-argus-server-3.0.8/common/argus_util.c 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common library routines - Utilities - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/common/argus_util.c#71 $ - * $DateTime: 2012/03/15 01:13:08 $ - * $Change: 2335 $ + * $Id: //depot/argus/argus/common/argus_util.c#82 $ + * $DateTime: 2014/06/18 23:25:40 $ + * $Change: 2880 $ */ #ifdef HAVE_CONFIG_H @@ -67,7 +67,6 @@ #include #include -#include #include #include @@ -115,6 +114,7 @@ void ArgusFreeEtherarray(struct ArgusParserStruct *); void ArgusFreeServarray(struct ArgusParserStruct *); void ArgusFreeProtoidarray(struct ArgusParserStruct *); +void ArgusFreeLlcsaparray(struct ArgusParserStruct *); u_int ipaddrtonetmask(u_int); u_int getnetnumber( u_int); @@ -130,6 +130,8 @@ retn->ArgusCIDRPtr = &retn->ArgusCIDRBuffer; ArgusInitAddrtoname (retn, 0L, 0L); + retn->pflag = 6; + return (retn); } @@ -139,9 +141,9 @@ ArgusFreeEtherarray(parser); ArgusFreeServarray(parser); ArgusFreeProtoidarray(parser); + ArgusFreeLlcsaparray(parser); /* ArgusFreeEprotoarray(parser); - ArgusFreeLlcsaparray(parser); ArgusFreeDSCodepointarray(parser); */ } @@ -215,8 +217,8 @@ } if (daemonflag) { -#ifdef ARGUS_SYSLOG - syslog (LOG_ALERT, buf, strlen(buf)); +#ifdef HAVE_SYSLOG + syslog (LOG_ALERT, "%s", buf); #endif } else fprintf (stderr, "%s", buf); @@ -236,7 +238,7 @@ if (daemonflag) { #ifdef HAVE_SYSLOG - syslog (LOG_ALERT, buf, strlen(buf)); + syslog (LOG_ALERT, "%s", buf); #endif } else fprintf (stderr, "%s", buf); @@ -277,7 +279,7 @@ void ArgusPrintHex (const u_char *, u_int); #if defined(_LITTLE_ENDIAN) -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__sun__) #include #if !defined(ntohll) #define ntohll(x) EXTRACT_64BITS(&x) @@ -1443,6 +1445,117 @@ } + +char *ArgusProcessStr = NULL; + +void +ArgusPrintDirection (char *buf, struct ArgusRecordStruct *argus, int len) +{ + switch (argus->hdr.type & 0xF0) { + case ARGUS_MAR: + break; + + case ARGUS_EVENT: + case ARGUS_NETFLOW: + case ARGUS_FAR: { + struct ArgusMetricStruct *metric = (struct ArgusMetricStruct *)argus->dsrs[ARGUS_METRIC_INDEX]; + struct ArgusFlow *flow = (struct ArgusFlow *)argus->dsrs[ARGUS_FLOW_INDEX]; + struct ArgusNetworkStruct *net = (struct ArgusNetworkStruct *)argus->dsrs[ARGUS_NETWORK_INDEX]; + int type, src_count = 0, dst_count = 0; + + if (metric == NULL) { + sprintf (buf, "%*.*s ", len, len, " "); + } else { + char dirStr[16]; + sprintf (dirStr, "%s", "<->"); + + if ((dst_count = metric->dst.pkts) == 0) + dirStr[0] = ' '; + if ((src_count = metric->src.pkts) == 0) + dirStr[2] = ' '; + if ((src_count == 0) && (dst_count == 0)) + dirStr[1] = ' '; + + if (flow != NULL) { + switch (flow->hdr.subtype & 0x3F) { + case ARGUS_FLOW_CLASSIC5TUPLE: { + switch (type = (flow->hdr.argus_dsrvl8.qual & 0x1F)) { + case ARGUS_TYPE_IPV4: + switch (flow->ip_flow.ip_p) { + case IPPROTO_TCP: { + if (net != NULL) { + struct ArgusTCPObject *tcp = (struct ArgusTCPObject *)&net->net_union.tcp; + if (!((tcp->status & ARGUS_SAW_SYN) || (tcp->status & ARGUS_SAW_SYN_SENT))) { + dirStr[1] = '?'; + } + if ((tcp->status & ARGUS_SAW_SYN) || (tcp->status & ARGUS_SAW_SYN_SENT)) { + if (flow->hdr.subtype & ARGUS_REVERSE) { + dirStr[0] = '<'; + dirStr[2] = ' '; + } else { + dirStr[0] = ' '; + dirStr[2] = '>'; + } + } + } + } + break; + } + break; + + case ARGUS_TYPE_IPV6: + switch (flow->ipv6_flow.ip_p) { + case IPPROTO_TCP: { + if (net != NULL) { + struct ArgusTCPObject *tcp = (struct ArgusTCPObject *)&net->net_union.tcp; + if (!((tcp->status & ARGUS_SAW_SYN) || (tcp->status & ARGUS_SAW_SYN_SENT))) { + dirStr[1] = '?'; + } else { + if ((tcp->status & ARGUS_SAW_SYN) || (tcp->status & ARGUS_SAW_SYN_SENT)) { + if (flow->hdr.subtype & ARGUS_REVERSE) { + dirStr[0] = '<'; + dirStr[2] = ' '; + } else { + dirStr[0] = ' '; + dirStr[2] = '>'; + } + } + } + } + } + break; + } + break; + + case ARGUS_TYPE_RARP: + sprintf (dirStr, "%s", "tel"); + break; + + case ARGUS_TYPE_ARP: + sprintf (dirStr, "%s", "who"); + break; + } + break; + } + + case ARGUS_FLOW_ARP: { + sprintf (dirStr, "%s", "who"); + break; + } + } + } + } + + break; + } + } + +#ifdef ARGUSDEBUG + ArgusDebug (10, "ArgusPrintDirection (%p, %p, %d)", buf, argus, len); +#endif +} + + int ArgusAllocMax = 0; int ArgusAllocBytes = 0; int ArgusAllocTotal = 0; @@ -1975,23 +2088,27 @@ ptr = &buf[strlen(buf)]; va_end (ap); + if (daemonflag) { #ifdef HAVE_SYSLOG - syslog (priority, buf, strlen(buf)); -#else - if (*fmt) { - fmt += (int) strlen (fmt); - if (fmt[-1] != '\n') - snprintf (ptr, 2, "\n"); - } - - for (i = 0; i < ARGUSPRIORITYSTR; i++) - if (ArgusPriorityStr[i].priority == priority) { - label = ArgusPriorityStr[i].label; - break; + syslog (LOG_ALERT, "%s", buf); +#endif + } else { + char *label = NULL; + int i; + if (*fmt) { + fmt += (int) strlen (fmt); + if (fmt[-1] != '\n') + snprintf (ptr, 2, "\n"); } - fprintf (stderr, "%s: %s", label, buf); -#endif + for (i = 0; i < ARGUSPRIORITYSTR; i++) + if (ArgusPriorityStr[i].priority == priority) { + label = ArgusPriorityStr[i].label; + break; + } + + fprintf (stderr, "%s: %s", label, buf); + } switch (priority) { case LOG_ERR: ArgusShutDown(1); break; @@ -2144,7 +2261,8 @@ return tp; } -/* Find the hash node that corresponds the NSAP 'nsap'. */ +/* + Find the hash node that corresponds the NSAP 'nsap'. static inline struct enamemem * lookup_nsap(struct ArgusParserStruct *parser, const u_char *nsap) @@ -2183,6 +2301,8 @@ return tp; } +*/ + /* Find the hash node that corresponds the protoid 'pi'. */ static inline struct protoidmem * @@ -2240,6 +2360,8 @@ table->addr = port; table->nxt = (struct hnamemem *)calloc(1, sizeof(*table)); } + + parser->ArgusSrvInit = 1; endservent(); #endif } @@ -2471,6 +2593,25 @@ } } +void +ArgusFreeLlcsaparray(struct ArgusParserStruct *parser) +{ + int i; + struct hnamemem *table; + + for (i = 0; llcsap_db[i].s != NULL; i++) { + struct hnamemem *ttbl; + table = &parser->llcsaptable[llcsap_db[i].v]; + if ((table = table->nxt) != NULL) { + do { + ttbl = table; + table = table->nxt; + free(ttbl); + } while (table); + } + } +} + char *argus_dscodes[0x100]; void ArgusInitDSCodepointarray(struct ArgusParserStruct *); struct ArgusDSCodePointStruct *ArgusSelectDSCodesTable(struct ArgusParserStruct *); @@ -2706,9 +2847,9 @@ /* Hex digit to integer. */ -inline int xdtoi(int); +int xdtoi(int); -inline int +int xdtoi(int c) { if (isdigit(c)) diff -Nru securityonion-argus-server-3.0.6/common/grammar.y securityonion-argus-server-3.0.8/common/grammar.y --- securityonion-argus-server-3.0.6/common/grammar.y 2012-02-16 16:55:45.000000000 +0000 +++ securityonion-argus-server-3.0.8/common/grammar.y 2014-07-21 20:13:27.000000000 +0000 @@ -1,6 +1,6 @@ %{ /* Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -18,9 +18,9 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * - * $Id: //depot/argus/argus/common/grammar.y#19 $ - * $DateTime: 2012/02/16 11:55:45 $ - * $Change: 2308 $ + * $Id: //depot/argus/argus/common/grammar.y#22 $ + * $DateTime: 2014/07/21 16:13:27 $ + * $Change: 2903 $ */ /* * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 @@ -73,8 +73,7 @@ extern void ArgusLog (int, char *, ...); extern int argus_error (char *); -#define YYDEBUG 2 - +#define YYDEBUG 1 #define QSET(q, p, d, a) (q).proto = (p),\ (q).dir = (d),\ @@ -101,12 +100,12 @@ struct ablock *rblk; } -%type expr id nid pid term rterm qid tid +%type expr id nid pid term rterm qid tid oid %type head thead %type pqual dqual aqual iqual ndaqual %type fqual %type arth narth -%type pname sname tname pnum relop irelop +%type oname pname sname tname pnum relop irelop %type fnum %type and or paren not nuf prog %type other @@ -117,11 +116,15 @@ %token NET AMASK PORT EQUAL LESS GREATER PROTO BYTE PKT APPBYTE %token TRANS ARP RARP IP IPV4 IPV6 TCP UDP ICMP IGMP %token ISIS HELLO LSP CSNP PSNP -%token UDT SVC TCPRTT +%token UDT SVC TCPRTT TCPOPT +%token MSS WSCALE SELECTIVEACKOK SELECTIVEACK TCPECHO TCPECHOREPLY +%token TCPTIMESTAMP TCPCC TCPCCNEW TCPCCECHO SECN DECN + %token ETHER MPLS VLAN ANON VID VPRI MPLSID SPI %token ENCAPS RTP RTCP ESP DECNET LAT MOPRC MOPDL %token TK_BROADCAST TK_MULTICAST FRAG FRAG_ONLY -%token RATE LOAD LOSS PLOSS INTER JITTER CO +%token ABR PCR RATE LOAD LOSS PLOSS GAP DUP CO +%token INTER INTERACTIVE INTERIDLE JITTER JITTERACTIVE JITTERIDLE %token DUR AVGDUR DELTADUR DELTASTART DELTALAST %token DELTASPKTS DELTADPKTS %token SEQ NSTROKE @@ -173,21 +176,26 @@ or: OR { $$ = $0; } ; id: nid - | pnum { $$.b = Argusgen_ncode(NULL, (arg_uint32)$1, $$.q = $0.q, Q_EQUAL); } - | LESS pnum { $$.b = Argusgen_ncode(NULL, (arg_uint32)$2, $$.q = $0.q, Q_LESS); } - | GREATER pnum { $$.b = Argusgen_ncode(NULL, (arg_uint32)$2, $$.q = $0.q, Q_GREATER); } - | EQUAL pnum { $$.b = Argusgen_ncode(NULL, (arg_uint32)$2, $$.q = $0.q, Q_EQUAL); } - | GEQ pnum { $$.b = Argusgen_ncode(NULL, (arg_uint32)$2, $$.q = $0.q, Q_GEQ); } - | LEQ pnum { $$.b = Argusgen_ncode(NULL, (arg_uint32)$2, $$.q = $0.q, Q_LEQ); } + | pnum { $$.b = Argusgen_ncode(NULL, (int)$1, $$.q = $0.q, Q_EQUAL); } | fnum { $$.b = Argusgen_fcode(NULL, (float)$1, $$.q = $0.q, Q_EQUAL); } + + | LESS pnum { $$.b = Argusgen_ncode(NULL, (int)$2, $$.q = $0.q, Q_LESS); } + | GREATER pnum { $$.b = Argusgen_ncode(NULL, (int)$2, $$.q = $0.q, Q_GREATER); } + | EQUAL pnum { $$.b = Argusgen_ncode(NULL, (int)$2, $$.q = $0.q, Q_EQUAL); } + | GEQ pnum { $$.b = Argusgen_ncode(NULL, (int)$2, $$.q = $0.q, Q_GEQ); } + | LEQ pnum { $$.b = Argusgen_ncode(NULL, (int)$2, $$.q = $0.q, Q_LEQ); } + | LESS fnum { $$.b = Argusgen_fcode(NULL, (float)$2, $$.q = $0.q, Q_LESS); } | GREATER fnum { $$.b = Argusgen_fcode(NULL, (float)$2, $$.q = $0.q, Q_GREATER); } | EQUAL fnum { $$.b = Argusgen_fcode(NULL, (float)$2, $$.q = $0.q, Q_EQUAL); } | GEQ fnum { $$.b = Argusgen_fcode(NULL, (float)$2, $$.q = $0.q, Q_GEQ); } | LEQ fnum { $$.b = Argusgen_fcode(NULL, (float)$2, $$.q = $0.q, Q_LEQ); } + | paren pid ')' { $$ = $2; } ; tid: tname { $$.b = Argusgen_tcode($1, $$.q = $0.q); } + +oid: oname { $$.b = Argusgen_ocode($1, $$.q = $0.q); } ; nid: ID { $$.b = Argusgen_scode($1, $$.q = $0.q); } | STRING { $$.q = $0.q; $$.q.type = Q_STRING; @@ -214,7 +222,8 @@ | qid and id { Argusgen_and($1.b, $3.b); $$ = $3; } | qid or id { Argusgen_or($1.b, $3.b); $$ = $3; } ; -qid: pnum { $$.b = Argusgen_ncode(NULL, (arg_uint32)$1, $$.q = $0.q, Q_EQUAL); } +qid: pnum { $$.b = Argusgen_ncode(NULL, (int)$1, $$.q = $0.q, Q_EQUAL); } + | fnum { $$.b = Argusgen_fcode(NULL, (float)$1, $$.q = $0.q, Q_EQUAL); } | pid ; term: rterm @@ -223,10 +232,10 @@ head: pqual dqual aqual { QSET($$.q, $1, $2, $3); } | pqual dqual { QSET($$.q, $1, $2, Q_DEFAULT); } | pqual aqual { QSET($$.q, $1, Q_DEFAULT, $2); } - | pqual iqual { QSET($$.q, $1, Q_DEFAULT, $2); } - | pqual fqual { QSET($$.q, $1, Q_DEFAULT, $2); } - | pqual dqual iqual { QSET($$.q, $1, $2, $3); } - | pqual dqual fqual { QSET($$.q, $1, $2, $3); } + | pqual iqual { QSET($$.q, $1, Q_DEFAULT, $2); $$.q.type = Q_INTEGER; } + | pqual fqual { QSET($$.q, $1, Q_DEFAULT, $2); $$.q.type = Q_FLOAT; } + | pqual dqual iqual { QSET($$.q, $1, $2, $3); $$.q.type = Q_INTEGER; } + | pqual dqual fqual { QSET($$.q, $1, $2, $3); $$.q.type = Q_FLOAT; } | pqual PROTO { QSET($$.q, $1, Q_DEFAULT, Q_PROTO); } | pqual ndaqual { QSET($$.q, $1, Q_DEFAULT, $2); } ; @@ -240,6 +249,7 @@ | pname { $$.b = Argusgen_proto_abbrev($1); $$.q = qerr; } | sname { $$.b = Argusgen_proto_abbrev($1); $$.q = qerr; } | tid { $$ = $1; } + | oid { $$ = $1; } | arth relop arth { $$.b = Argusgen_relation($2, $1, $3, 0); $$.q = qerr; } | arth irelop arth { $$.b = Argusgen_relation($2, $1, $3, 1); $$.q = qerr; } | other { $$.b = $1; $$.q = qerr; } @@ -281,6 +291,8 @@ | TCPRTT { $$ = Q_TCPRTT; } | TCPBASE { $$ = Q_TCPBASE; } | LOSS { $$ = Q_LOSS; } + | GAP { $$ = Q_GAP; } + | DUP { $$ = Q_DUP; } | SPI { $$ = Q_SPI; } | ENCAPS { $$ = Q_ENCAPS; } | DELTADUR { $$ = Q_DELTADUR; } @@ -293,10 +305,16 @@ fqual: DUR { $$ = Q_DUR; } | AVGDUR { $$ = Q_AVGDUR; } | INTER { $$ = Q_INTER; } + | INTERACTIVE { $$ = Q_INTERACTIVE; } + | INTERIDLE { $$ = Q_INTERIDLE; } | JITTER { $$ = Q_JITTER; } + | JITTERACTIVE { $$ = Q_JITTERACTIVE; } + | JITTERIDLE { $$ = Q_JITTERIDLE; } | RATE { $$ = Q_RATE; } | LOAD { $$ = Q_LOAD; } | PLOSS { $$ = Q_PLOSS; } + | ABR { $$ = Q_PCR; } + | PCR { $$ = Q_PCR; } ; /* non-directional address type qualifiers */ ndaqual: GATEWAY { $$ = Q_GATEWAY; } @@ -376,6 +394,21 @@ | CSNP { $$ = Q_CSNP; } | PSNP { $$ = Q_PSNP; } ; +oname: TCPOPT { $$ = Q_TCPOPT; } + | MSS { $$ = Q_MSS; } + | WSCALE { $$ = Q_WSCALE; } + | SELECTIVEACKOK { $$ = Q_SELECTIVEACKOK; } + | SELECTIVEACK { $$ = Q_SELECTIVEACK; } + | TCPECHO { $$ = Q_TCPECHO; } + | TCPECHOREPLY { $$ = Q_TCPECHOREPLY; } + | TCPTIMESTAMP { $$ = Q_TCPTIMESTAMP; } + | TCPCC { $$ = Q_TCPCC; } + | TCPCCNEW { $$ = Q_TCPCCNEW; } + | TCPCCECHO { $$ = Q_TCPCCECHO; } + | SECN { $$ = Q_SECN; } + | DECN { $$ = Q_DECN; } + ; + other: pqual TK_BROADCAST { $$ = Argusgen_broadcast($1); } | pqual TK_MULTICAST { $$ = Argusgen_multicast($1); } | INBOUND { $$ = Argusgen_inbound(0); } @@ -403,7 +436,6 @@ | arth '|' arth { $$ = ArgusArth(NFF_OR, $1, $3); } | arth LSH arth { $$ = ArgusArth(NFF_LSH, $1, $3); } | arth RSH arth { $$ = ArgusArth(NFF_RSH, $1, $3); } - | '-' arth %prec UMINUS { $$ = ArgusNeg($2); } | paren narth ')' { $$ = $2; } | LEN { $$ = ArgusLoadLen(); } ; @@ -419,6 +451,5 @@ yyerror(char *msg) { ++argus_n_errors; - exit(1); - /* NOTREACHED */ + return(1); } diff -Nru securityonion-argus-server-3.0.6/common/Makefile.in securityonion-argus-server-3.0.8/common/Makefile.in --- securityonion-argus-server-3.0.6/common/Makefile.in 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/common/Makefile.in 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ # # Argus Software -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # QOSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS diff -Nru securityonion-argus-server-3.0.6/common/scanner.l securityonion-argus-server-3.0.8/common/scanner.l --- securityonion-argus-server-3.0.6/common/scanner.l 2012-03-15 05:01:31.000000000 +0000 +++ securityonion-argus-server-3.0.8/common/scanner.l 2014-05-12 19:49:11.000000000 +0000 @@ -1,6 +1,6 @@ %{ /* Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -17,9 +17,9 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * - * $Id: //depot/argus/argus/common/scanner.l#28 $ - * $DateTime: 2012/03/15 01:01:31 $ - * $Change: 2333 $ + * $Id: //depot/argus/argus/common/scanner.l#30 $ + * $DateTime: 2014/05/12 15:49:11 $ + * $Change: 2821 $ */ /* @@ -43,16 +43,7 @@ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -#ifdef HAVE_CONFIG_H -#include "argus_config.h" -#endif - -#if defined(HAVE_FEATURES_H) -#define _GNU_SOURCE -#undef _FEATURES_H -#include -#endif - +#define YY_NO_INPUT #include #include #include @@ -69,6 +60,7 @@ #include #include +//#include #include #include @@ -83,7 +75,8 @@ int argus_lex(void); int stoi(char *); -static inline int xdtoi(int); +float stof(char *); +int xdtoi(int); #ifdef FLEX_SCANNER int argus_get_lineno (void); @@ -102,7 +95,6 @@ extern YYSTYPE yylval; %} -%option noinput %option nounput N ([0-9]+|(0X|0x)[0-9A-Fa-f]+) @@ -119,6 +111,7 @@ error return ERROR; man return MAN; +mar return MAN; far return FAR; event return EVENT; index return INDEX; @@ -192,24 +185,51 @@ appbyte return APPBYTE; appbytes return APPBYTE; +pcr return PCR; +pcratio return PCR; +abr return ABR; +abratio return ABR; + nstroke return NSTROKE; nstrokes return NSTROKE; tcpb return TCPBASE; base return TCPBASE; tcprtt return TCPRTT; +tcpopt return TCPOPT; -rate return RATE; -load return LOAD; -inter return INTER; -jitter return JITTER; -dur return DUR; -avgdur return AVGDUR; -deldur return DELTADUR; -delstime return DELTALAST; -delltime return DELTALAST; -loss return LOSS; -ploss return PLOSS; +mss return MSS; +wscale return WSCALE; +selackok return SELECTIVEACKOK; +selack return SELECTIVEACK; +tcpecho return TCPECHO; +tcpechoreply return TCPECHOREPLY; +tcptimestamp return TCPTIMESTAMP; +tcpcc return TCPCC; +tcpccnew return TCPCCNEW; +tcpccecho return TCPCCECHO; +secn return SECN; +decn return DECN; + +rate return RATE; +load return LOAD; +inter return INTER; +intpkt return INTER; +intpktact return INTERACTIVE; +intpktidle return INTERIDLE; +jit return JITTER; +jitter return JITTER; +jitact return JITTERACTIVE; +jitidle return JITTERIDLE; +dur return DUR; +avgdur return AVGDUR; +deldur return DELTADUR; +delstime return DELTALAST; +delltime return DELTALAST; +loss return LOSS; +ploss return PLOSS; +gap return GAP; +dup return DUP; gateway return GATEWAY; @@ -283,9 +303,14 @@ "==" return '='; "<<" return LSH; ">>" return RSH; -{N} { yylval.i = stoi((char *)yytext); return NUM; } -(\.{N}) { yylval.f = strtof((char *)yytext, NULL); return FLOAT; } -({N}\.{N}) { yylval.f = strtof((char *)yytext, NULL); return FLOAT; } +\+?{N} { yylval.i = stoi((char *)yytext); return NUM; } +-{N} { yylval.i = stoi((char *)yytext); return NUM; } + +-(\.{N}) { yylval.f = stof((char *)yytext); return FLOAT; } +\+?(\.{N}) { yylval.f = stof((char *)yytext); return FLOAT; } +-({N}\.{N}) { yylval.f = stof((char *)yytext); return FLOAT; } +\+?({N}\.{N}) { yylval.f = stof((char *)yytext); return FLOAT; } + ({N}\.{N}\.{N}\.{N}) { yylval.s = Argussdup((char *)yytext); return HIDV4; } {B}:{B}:{B}:{B}:{B}:{B} { yylval.e = argus_ether_aton((char *)yytext); return EID; } {V6} { yylval.s = Argussdup((char *)yytext); return HIDV6; } @@ -318,8 +343,8 @@ return 1; } -/* Hex digit to integer. */ -static inline int +/* Hex digit to integer. +int xdtoi(c) int c; { @@ -330,31 +355,104 @@ else return c - 'A' + 10; } +*/ /* * Convert string to integer. Just like atoi(), but checks for * preceding 0x or 0 and uses hex or octal instead of decimal. */ int -stoi(s) -char *s; +stoi(char *s) { int base = 10; int n = 0; + int sign = 0; + + /* Skip whitespace */ + while (isspace(*s)) s++; + + /* Check for sign */ + if (*s == '-') { + sign = 1; + s++; + } else { + if (*s == '+') + s++; + } if (*s == '0') { - if (s[1] == 'x' || s[1] == 'X') { - s += 2; - base = 16; - } - else { - base = 8; - s += 1; + s++; + if (*s == '\0') { + } else { + if (*s == 'x' || *s == 'X') { + s++; + base = 16; + } else { + base = 8; + } } } while (*s) n = n * base + xdtoi(*s++); + if (sign) n *= -1; return n; } + +/* + * Convert string to float. Just like atof(), but checks for + * preceding 0x or 0 and uses hex or octal instead of decimal. + */ + +float +stof(char* s) +{ + float retn = 0.0, frac = 0.0; + int sign = 0; + + /* Skip whitespace */ + while (isspace(*s)) s++; + + /* Check for sign */ + if (*s == '-') { + sign = 1; + s++; + } else { + if (*s == '+') + s++; + } + + /* Read integer part */ + while (isdigit(*s)) + retn = retn * 10 + (*(s++) - '0'); + + /* Read fractional part */ + if (*s == '.') { + float q; + s++; + while (isdigit(*s)) s++; + s--; + do { + q = *s - '0'; + frac = (frac + q) / 10; + } while (isdigit(*(--s))); + while (isdigit(*(++s))) s++; + } + + /* Skip whitespace */ + while (isspace(*s)) s++; + + /* Combine integer and fractional part, and apply sign */ + retn += frac; + if (sign) retn *= -1; + + /* Process E notation */ + if (*s == 'e' || *s == 'E') { + int i, j = atoi(++s); + if (j == 0) return retn; + for (i = 0; i != j; (j > 0) ? i++ : i--) + retn *= (j > 0) ? 10 : -10; + } + return retn; +} diff -Nru securityonion-argus-server-3.0.6/config/config.guess securityonion-argus-server-3.0.8/config/config.guess --- securityonion-argus-server-3.0.6/config/config.guess 2010-08-10 02:26:29.000000000 +0000 +++ securityonion-argus-server-3.0.8/config/config.guess 2014-05-28 19:57:28.000000000 +0000 @@ -1,13 +1,12 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2002-09-03' +timestamp='2014-03-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -16,24 +15,22 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner. # -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + me=`echo "$0" | sed -e 's,.*/,,'` @@ -53,8 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -66,11 +62,11 @@ while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -98,30 +94,32 @@ # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. -# This shell variable is my proudest work .. or something. --bje +# Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; -(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) - || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; -dummy=$tmpdir/dummy ; -files="$dummy.c $dummy.o $dummy.rel $dummy" ; -trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do - if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; - rm -f $files ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; -unset files' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -134,12 +132,33 @@ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -156,6 +175,7 @@ arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched @@ -164,7 +184,7 @@ arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -174,148 +194,139 @@ fi ;; *) - os=netbsd + os=netbsd ;; esac # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - eval $set_cc_for_build - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - 2-1307) - UNAME_MACHINE="alphaev68" - ;; - 3-1307) - UNAME_MACHINE="alphaev7" - ;; - esac - fi - rm -f $dummy.s $dummy && rmdir $tmpdir - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix - exit 0 ;; + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit 0;; + exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -323,29 +334,51 @@ else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; + sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -354,10 +387,10 @@ esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -369,10 +402,10 @@ echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -382,38 +415,41 @@ # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -437,36 +473,36 @@ exit (-1); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS) + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -479,29 +515,29 @@ else echo i586-dg-dgux${UNAME_RELEASE} fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -509,7 +545,7 @@ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -524,16 +560,19 @@ exit(0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; - *:AIX:*:[45]) + exit ;; + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -546,28 +585,28 @@ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in @@ -576,64 +615,84 @@ 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy && rmdir $tmpdir + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -661,277 +720,345 @@ exit (0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:3*) - echo i386-pc-interix3 - exit 0 ;; + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? - echo i386-pc-interix - exit 0 ;; + echo i586-pc-interix + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips - #undef mipsel + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips + CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c && rmdir $tmpdir - test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; + exit ;; i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -939,15 +1066,16 @@ else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1042,64 +1180,109 @@ else echo ns32k-sni-sysv fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit 0 ;; + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then @@ -1107,22 +1290,28 @@ UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1133,189 +1322,55 @@ UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; esac -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 -rm -f $dummy.c $dummy && rmdir $tmpdir - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - cat >&2 <. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. + +# Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -70,8 +68,7 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright 1992-2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -83,11 +80,11 @@ while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -99,7 +96,7 @@ *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,10 +115,18 @@ # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova* | linux-uclibc*) + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -144,10 +149,13 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) + -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -162,13 +170,17 @@ os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -185,6 +197,10 @@ # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -202,6 +218,12 @@ -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; -lynx*) os=-lynxos ;; @@ -226,53 +248,108 @@ # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | clipper \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | epiphany \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ - | openrisc | or32 \ + | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ - | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic80 | tron \ - | v850 | v850e \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -288,54 +365,86 @@ # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ - | clipper-* | cydra-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39 | mipstx39el \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ - | v850-* | v850e-* | vax-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ - | z8k-*) + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. @@ -353,6 +462,9 @@ basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -367,6 +479,12 @@ basic_machine=a29k-none os=-bsd ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -390,6 +508,10 @@ basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -398,10 +520,35 @@ basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -426,12 +573,27 @@ basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -454,6 +616,14 @@ basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -565,7 +735,6 @@ i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 @@ -604,6 +773,14 @@ basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -615,10 +792,21 @@ basic_machine=ns32k-utek os=-sysv ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; mingw32) - basic_machine=i386-pc + basic_machine=i686-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -632,10 +820,6 @@ mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -648,10 +832,21 @@ basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -716,6 +911,12 @@ np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -723,9 +924,12 @@ basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson @@ -743,6 +947,14 @@ basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; @@ -752,32 +964,45 @@ pc532 | pc532-*) basic_machine=ns32k-pc532 ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; - pentiumii | pentium2) + pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; + pentium4) + basic_machine=i786-pc + ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumii-* | pentium2-*) + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown @@ -802,6 +1027,14 @@ basic_machine=i586-unknown os=-pw32 ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -828,6 +1061,14 @@ sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; sequent) basic_machine=i386-sequent ;; @@ -835,6 +1076,12 @@ basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks @@ -853,6 +1100,9 @@ basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -901,10 +1151,6 @@ basic_machine=i386-sequent os=-dynix ;; - t3d) - basic_machine=alpha-cray - os=-unicos - ;; t3e) basic_machine=alphaev5-cray os=-unicos @@ -913,13 +1159,9 @@ basic_machine=t90-cray os=-unicos ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown @@ -934,6 +1176,10 @@ tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -977,13 +1223,16 @@ basic_machine=hppa1.1-winbond os=-proelf ;; - windows32) - basic_machine=i386-pc - os=-windows32-msvcrt + xbox) + basic_machine=i686-pc + os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos @@ -992,6 +1241,10 @@ basic_machine=z8k-unknown os=-sim ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -1011,6 +1264,9 @@ romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1027,13 +1283,10 @@ we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1077,9 +1330,12 @@ if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases + # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1100,24 +1356,31 @@ # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*) + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1129,16 +1392,21 @@ ;; esac ;; + -nto-qnx*) + ;; -nto*) - os=-nto-qnx + os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -1151,6 +1419,9 @@ -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1172,6 +1443,9 @@ -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; @@ -1194,6 +1468,9 @@ -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1224,6 +1501,17 @@ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; -none) ;; *) @@ -1246,6 +1534,12 @@ # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1255,6 +1549,24 @@ arm*-semi) os=-aout ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1273,13 +1585,13 @@ ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; @@ -1298,9 +1610,15 @@ *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1403,7 +1721,7 @@ -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) @@ -1433,9 +1751,15 @@ -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; @@ -1460,7 +1784,7 @@ esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -Nru securityonion-argus-server-3.0.6/configure securityonion-argus-server-3.0.8/configure --- securityonion-argus-server-3.0.6/configure 2012-03-15 04:29:52.000000000 +0000 +++ securityonion-argus-server-3.0.8/configure 2014-06-17 21:53:38.000000000 +0000 @@ -1,13 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for Argus Server Programs 3.0.5. +# Generated by GNU Autoconf 2.69 for Argus Server Programs 3.0.8. # # Report bugs to . # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -136,6 +134,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -169,7 +192,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -214,21 +238,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -331,6 +359,14 @@ } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -452,6 +488,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -486,16 +526,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -507,28 +547,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -560,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='Argus Server Programs' PACKAGE_TARNAME='argus' -PACKAGE_VERSION='3.0.5' -PACKAGE_STRING='Argus Server Programs 3.0.5' +PACKAGE_VERSION='3.0.8' +PACKAGE_STRING='Argus Server Programs 3.0.8' PACKAGE_BUGREPORT='bug-report@qosient.com' PACKAGE_URL='http://qosient.com/argus' @@ -642,6 +662,7 @@ CFLAGS CC SHLICC2 +CLANG target_os target_vendor target_cpu @@ -697,6 +718,8 @@ enable_option_checking with_perl with_gcc +with_examples +with_pluribus with_sasl with_staticsasl enable_largefile @@ -1169,8 +1192,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1256,7 +1277,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Argus Server Programs 3.0.5 to adapt to many kinds of systems. +\`configure' configures Argus Server Programs 3.0.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1322,7 +1343,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Argus Server Programs 3.0.5:";; + short | recursive ) echo "Configuration of Argus Server Programs 3.0.8:";; esac cat <<\_ACEOF @@ -1337,6 +1358,8 @@ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-perl=DIR Use perl in --without-gcc don't use gcc + --without-examples don't compile examples + --with-pluribus Compile for pluribus --with-sasl=DIR Compile with libsasl2 in --with-staticsasl=DIR Compile with staticly linked libsasl in --without-threads don't use native threads package @@ -1425,10 +1448,10 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Argus Server Programs configure 3.0.5 -generated by GNU Autoconf 2.68 +Argus Server Programs configure 3.0.8 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1705,7 +1728,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -1749,7 +1772,8 @@ main () { static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -1765,7 +1789,8 @@ { static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1) < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -1822,7 +1847,8 @@ main () { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2078,8 +2104,8 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Argus Server Programs $as_me 3.0.5, which was -generated by GNU Autoconf 2.68. Invocation command line was +It was created by Argus Server Programs $as_me 3.0.8, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2631,6 +2657,20 @@ withval=$with_gcc; fi + +# Check whether --with-examples was given. +if test "${with_examples+set}" = set; then : + withval=$with_examples; +fi + + +# Check whether --with-pluribus was given. +if test "${with_pluribus+set}" = set; then : + withval=$with_pluribus; with_pluribus=yes +else + with_pluribus=no +fi + V_CCOPT="-O" V_INCLS="" if test "${srcdir}" != "." ; then @@ -2642,6 +2682,50 @@ if test -z "$CC" ; then case "$target_os" in + *darwin*) + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CLANG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CLANG"; then + ac_cv_prog_CLANG="$CLANG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CLANG="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_CLANG" && ac_cv_prog_CLANG="no" +fi +fi +CLANG=$ac_cv_prog_CLANG +if test -n "$CLANG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CLANG" >&5 +$as_echo "$CLANG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test $CLANG = yes ; then + CC=cc + export CC + fi + ;; bsdi*) # Extract the first word of "shlicc2", so it can be a program name with args. set dummy shlicc2; ac_word=$2 @@ -2659,7 +2743,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_SHLICC2="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2692,6 +2776,7 @@ CC=cc export CC fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2714,7 +2799,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2754,7 +2839,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2807,7 +2892,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2848,7 +2933,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -2906,7 +2991,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2950,7 +3035,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3396,8 +3481,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3482,18 +3566,20 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test "$GCC" = yes ; then if test "$SHLICC2" = yes ; then ac_cv_lbl_gcc_vers=2 V_CCOPT="-O3" else + ac_cv_lbl_gcc_vers=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking gcc version" >&5 $as_echo_n "checking gcc version... " >&6; } if ${ac_cv_lbl_gcc_vers+:} false; then : $as_echo_n "(cached) " >&6 else - ac_cv_lbl_gcc_vers=`$CC -v 2>&1 | \ - sed -e '/^gcc version /!d' \ + ac_cv_lbl_gcc_vers=`$CC --version 2>&1 | \ + sed -e '/^ version /!d' \ -e 's/^gcc version //' \ -e 's/ .*//' -e 's/^[^0-9]*//' \ -e 's/\..*//'` @@ -3501,7 +3587,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lbl_gcc_vers" >&5 $as_echo "$ac_cv_lbl_gcc_vers" >&6; } - if test $ac_cv_lbl_gcc_vers -gt 1 ; then + if test $ac_cv_lbl_gcc_vers -gt 0 ; then V_CCOPT="-O3" fi fi @@ -3696,7 +3782,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3736,7 +3822,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3789,7 +3875,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3830,7 +3916,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -3888,7 +3974,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3932,7 +4018,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4128,8 +4214,7 @@ /* end confdefs.h. */ #include #include -#include -#include +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4419,7 +4504,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -4492,7 +4577,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4532,7 +4617,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4585,7 +4670,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_YACC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4629,7 +4714,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_V_RANLIB="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4672,7 +4757,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_V_LEX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4740,7 +4825,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_V_YACC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4796,7 +4881,7 @@ for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -4862,7 +4947,7 @@ for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -5581,7 +5666,33 @@ done -for ac_header in arpa/inet.h fcntl.h inttypes.h limits.h libintl.h malloc.h memory.h netdb.h netinet/in.h +for ac_header in arpa/inet.h fcntl.h inttypes.h limits.h libintl.h malloc.h memory.h netdb.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in net/if.h netinet/in.h netinet/if_ether.h netinet/ether.h netinet/in_systm.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_header in netinet/ip.h netinet/udp.h netinet/tcp.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -5634,11 +5745,11 @@ int main () { -/* FIXME: Include the comments suggested by Paul. */ + #ifndef __cplusplus - /* Ultrix mips cc rejects this. */ + /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; - const charset cs; + const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; @@ -5655,8 +5766,9 @@ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; @@ -5672,10 +5784,10 @@ iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this saying + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; @@ -5942,6 +6054,8 @@ esac rm -rf conftest* fi + + fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if unaligned accesses fail" >&5 @@ -6013,8 +6127,9 @@ V_CCOPT="$V_CCOPT ${LBL_CFLAGS}" fi if test -f .devel ; then + V_CCOPT=`echo $V_CCOPT | sed -e 's/-O3//'` + V_CCOPT=`echo $V_CCOPT | sed -e 's/-O//'` if test "$GCC" = yes ; then - V_CCOPT=`echo $V_CCOPT | sed -e 's/-O3//'` if test "${LBL_CFLAGS+set}" != set; then if test "$ac_cv_prog_cc_g" = yes ; then V_CCOPT="-g $V_CCOPT" @@ -6468,23 +6583,20 @@ /* end confdefs.h. */ $ac_includes_default int -find_stack_direction () +find_stack_direction (int *addr, int depth) { - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; + int dir, dummy = 0; + if (! addr) + addr = &dummy; + *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; + dir = depth ? find_stack_direction (addr, depth - 1) : 0; + return dir + dummy; } int -main () +main (int argc, char **argv) { - return find_stack_direction () < 0; + return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -8468,7 +8580,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PCAP_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8526,7 +8638,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PCAP_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -8751,7 +8863,18 @@ fi - for ac_func in pcap_get_selectable_fd + for ac_func in pcap_fopen_offline +do : + ac_fn_c_check_func "$LINENO" "pcap_fopen_offline" "ac_cv_func_pcap_fopen_offline" +if test "x$ac_cv_func_pcap_fopen_offline" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PCAP_FOPEN_OFFLINE 1 +_ACEOF + +fi +done + + for ac_func in pcap_get_selectable_fd do : ac_fn_c_check_func "$LINENO" "pcap_get_selectable_fd" "ac_cv_func_pcap_get_selectable_fd" if test "x$ac_cv_func_pcap_get_selectable_fd" = xyes; then : @@ -8784,6 +8907,17 @@ fi done + for ac_func in pcap_dump_flush +do : + ac_fn_c_check_func "$LINENO" "pcap_dump_flush" "ac_cv_func_pcap_dump_flush" +if test "x$ac_cv_func_pcap_dump_flush" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PCAP_DUMP_FLUSH 1 +_ACEOF + +fi +done + LIBS="$LBL_LIBS" if test ! -z "$V_PCAPDEP"; then @@ -9064,6 +9198,11 @@ $as_echo "#define CYGWIN /**/" >>confdefs.h fi +if test "$with_pluribus" = yes ; then + +$as_echo "#define ARGUS_PLURIBUS /**/" >>confdefs.h + +fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking tm_gmtoff in struct tm" >&5 $as_echo_n "checking tm_gmtoff in struct tm... " >&6; } @@ -9561,16 +9700,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -9630,28 +9769,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -9672,8 +9799,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Argus Server Programs $as_me 3.0.5, which was -generated by GNU Autoconf 2.68. Invocation command line was +This file was extended by Argus Server Programs $as_me 3.0.8, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -9735,11 +9862,11 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Argus Server Programs config.status 3.0.5 -configured by $0, generated by GNU Autoconf 2.68, +Argus Server Programs config.status 3.0.8 +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -9828,7 +9955,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' diff -Nru securityonion-argus-server-3.0.6/configure.ac securityonion-argus-server-3.0.8/configure.ac --- securityonion-argus-server-3.0.6/configure.ac 2012-03-15 04:29:45.000000000 +0000 +++ securityonion-argus-server-3.0.8/configure.ac 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ # # Argus Software -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # This program is free software; you can redistribute it and/or modify @@ -25,7 +25,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) -AC_INIT([Argus Server Programs], [3.0.5], [bug-report@qosient.com], [argus], [http://qosient.com/argus]) +AC_INIT([Argus Server Programs], [3.0.8], [bug-report@qosient.com], [argus], [http://qosient.com/argus]) AC_CONFIG_SRCDIR([argus/argus.c]) AC_CONFIG_AUX_DIR([config]) AC_CONFIG_HEADER([include/argus_config.h]) @@ -61,7 +61,9 @@ AC_HAVE_HEADERS(sys/sockio.h string.h fcntl.h sys/file.h syslog.h zlib.h) -AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h libintl.h malloc.h memory.h netdb.h netinet/in.h]) +AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h libintl.h malloc.h memory.h netdb.h]) +AC_CHECK_HEADERS([net/if.h netinet/in.h netinet/if_ether.h netinet/ether.h netinet/in_systm.h]) +AC_CHECK_HEADERS([netinet/ip.h netinet/udp.h netinet/tcp.h]) AC_CHECK_HEADERS([stdlib.h stddef.h string.h strings.h sys/file.h sys/ioctl.h sys/param.h sys/socket.h]) AC_CHECK_HEADERS([sys/time.h sys/vfs.h syslog.h termios.h unistd.h values.h features.h]) @@ -402,6 +404,9 @@ if test "$have_cygwin" = yes ; then AC_DEFINE([CYGWIN], [], [Using cygwin]) fi +if test "$with_pluribus" = yes ; then + AC_DEFINE([ARGUS_PLURIBUS], [], [Using Pluribus]) +fi AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [ AC_TRY_COMPILE([#include ], [struct tm tm; tm.tm_gmtoff;], diff -Nru securityonion-argus-server-3.0.6/CREDITS securityonion-argus-server-3.0.8/CREDITS --- securityonion-argus-server-3.0.6/CREDITS 2012-01-04 00:00:09.000000000 +0000 +++ securityonion-argus-server-3.0.8/CREDITS 2014-08-11 18:49:58.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - README - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -21,13 +21,70 @@ CREDITS +This list of people are just some of the people that contributed +significantly to the Argus Project, over its 30 years. + +The individuals that have contributed the most to the theory +of Argus and its applications in networking and computer science +have been: + Dr. Tony Przygienda + Rob Coltun + Lou Berger + +The great people at Carenegie Mellon Univeristy who provided +great support with all things, emotion, time and resources: + Mark Poepping + Chas DiFatta + +The amazing group at Georgia Tech, where Argus got it start. + Ron Hutchins + Ed Coleman + Mark Johnson + Ted Hope + +The Stanford group that have provided the richest source +for Argus innovation in the areas of behavior and dynamism +over the last 10 years + John Gerth + MN + Joseph Little + Johan van Reijendam + +The group at GLORIAD that have implemented the largest +geographic area covered by Argus ... the entire Planet !! + Greg Cole + Harika Tandra + +Academics and cyber security professionals that have used and +written about Argus in their research, books, and work !! + Richard Bejtilch + CS Lee + Doug Burk + + +With the greatest thanks to the late Dr. Hank Dardy, Cheif +Scientist of the U.S. Naval Research Laboratory for his amazing +visonary support of flow monitoring and his group at NRL +that provided support, opinions, suggestions, criticisms +and/or attitude about flows: + Basil Decina + Chas Williams + Eric Kinzie + Heidi Hornstein + Dharmesh Shah + + Much of the work on argus has been done by the members of the -argus mailing list that contributed so much over all the years. -(I hope I didn't miss anyone): +argus developers mailing list. All have contributed so much +over all the years. But two stand out over the many. Peter Van Epp Russell Fulton + +Here is the remaining, very distinguished list, in alphabetical order. +(I hope I didn't miss anyone): + 0100 (four) Aashish Sharma Abdun Mahmood @@ -39,60 +96,126 @@ Andrew Pollock Andrew Thompson Avi Freedman + Ba Ru Bamm Visscher + Berry Kolts + Bart Roos + Benet Leong + Berkay Celik Bjoern Weiland + Blake Mattern Borjz Marcos Brian Zeigler + Can Desem + Carl Andrews Carlw Cedric Vieau + Charles Fair Charles King Chris Keladis + Chris Sanders + Chris Wakelin + Chris Wilson Christoph Badura Christopher Jones + Chungen Li Clauss Strauch + Claudio Luck Conor McGrath - CS Lee + Corey Smith + Craig Merchant Darren Spruell Dave Plonka + David A. J. Ripley + David Binderman + David Edelman + Derek Ditch Dez Blanchfield Dietmar Goldbeck + Digital Ninja + dn1nj4 + Douglas Pichardo Dustin - Earl E.J. Gamarro + Earl + El Draco + Elof2 Eric Graham Eric Pancer Ernie Johanson Esteban G + Estuardo Gamarro + Fabrice Fothe Fopa + Florenzi Alessandro + Fyodor + George Jones George Nychis + Georgios Pallis + Giles Chauvin + Gilson Soares + Glen Bojaza + Graeme Russ + Greg Lapchenko Guilsson + Guy Dickinson Harry Hoffman Henrik Strom + Ignas Kazlauskas + Jaime Vargas + Jaime Nebrera Jake Babbin + James A Robinson + James Grace + Janusz Urbanowicz Jason Baekey + Jason Carr + Jason Cook Jason Ish + Javier Almiliategul JD Durick Jean Michel Rizzardi Jean-Marc Pouchoulon + Jeff Atkinson + Jeff Wolf + Jeroen Roovers + Jesper Skou Jensen + Jesse Bowling + Jim Gargani Jim O'Gorman Johannes Russek + Joel Bergstein + Joel Ebrahimi + John Jenkinson John Lauro + John Kennedy John Nagro John Rodenbiker John Wade + Jon Denton Jonathan Towne Joost Bijl Kevin Kadow + Karl Schuster Karl Tatgenhorst + Kaustubh Gadkari + Keir Novik Kevin Branch Kieran Rhysling Kjell Tore Fossbakk Kulwant Sohi Laird Anglesey + Lee Zelyck Lei Wei + Makatesi + Manaf Gharalbeh Mark Bartlett Mark Borrie + Markus De Shon + Martijn van Oosterhout Martin Bauer Martin Holste + Martin Olsson + Matt Brown Matthew Derenski Matthew Weiner mel @@ -101,52 +224,91 @@ Michael Meisel Michael Sandee Michael Sanderson + Michal Purzynaski Mike Iglesias Mike Patterson Mike Slifcak + Mike Tancsa miodek (Michael) - MN (mike) + modversion morfoh (Chris) + Morgan DeRodeff Morten Christensen Murali Raju + Nate Hausrath + Neal Welland + Nenaudoti Ignas Kazlauskas Neil Long + Neslog + Niall Murphy + Nichole K. Boscia Nick Diel Nick Giordano + Ning Shi Nyuk Loong Kiw + Oguz Yanmtepe Olaf Gellert OlRoy Pablo Rebollo-Sosa Patrick Forsberg Patrick Green + Paul Halliday + Paul Schmehl + Pengiran Awang Pete Troxell Peter Hill Peter Moody - Phillip Deneault + Peter Volkov + Phillip G Deneault Phillip Letschert Poncenby Smythe + Prashanth Prahalad + Rafael Barbosa + Raphael Campos Silva Raffael Marty + Rahimeh Kodadadi Ralf Spenneberg Ramon Kagan Real Melancon + Reykjavik Hindisvik + Riccardo Dias Riccardo Veraldi - Richard Bejtlich Richard Johnson Rick Denton + Robert E. Smith Jr. + Robert Kerr Robert Leyba Robin Gruyters + Rodney McKee + Russ Harvey Russ McRee + Ruvin Gottlieb + Sajeev Nair + Sam Davis + Saptarshi Guha + Saya Peng Scott Dexter Scott McIntyre ScottO + Sean Malone + Sean McCreary + Sebastian Garcia + Sebastian Yepes Fernandez + Sergio Luis Moreira De Silva Shaheen Bakhtiar + Shahram Esfahani + shailwe19 Silas Porterfield Stefan Esser Stephane Peters Steve McInerney Stewart Gray + Sunjeet Singh + Suraj M Susan Mcgill Terry Burton Tim Lavoie + Tim Waters Timo Schilling Timo Suhl Tim-Fang Yen @@ -156,33 +318,16 @@ Tony Webster Torbin Wictorin Tu Nguyen + unFrigidaire Americain Urtho Vaibhav Kaware + Vlad Grigorescu + Wictorin Torbjorn + William S. Cleveland William Setzer + Wolfgang Barth + Woody K. Wimmie Wolfgang Barth Yotam Rubin - -To my colleagues who contributed so much to the theory -of Argus and its applications in networking and computer -science: - Dr. Tony Przygienda - Rob Coltun - Lou Berger - -Of course much thanks to the past and current support of Mark Poepping, -at CMU for his help with all things, resources, configuration, SASL, -and debugging support. - -And thanks to the late Dr. Hank Dardy formerly of the U.S. Naval -Research Laboratory for his amazing support of flow monitoring and -the great people at NRL that provided support, opinions, suggestions, -criticisms and/or attitude about flows: - Basil Decina - Larry O'Ferrall - Chas Williams - Eric Kinzie - Heidi Hornstein - Dharmesh Shah - Dave Burton - Cho Chang + Zi Hu diff -Nru securityonion-argus-server-3.0.6/debian/changelog securityonion-argus-server-3.0.8/debian/changelog --- securityonion-argus-server-3.0.6/debian/changelog 2012-09-11 23:03:16.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian/changelog 2014-10-28 17:46:05.000000000 +0000 @@ -1,11 +1,5 @@ -securityonion-argus-server (3.0.6-0ubuntu0securityonion2) precise; urgency=low - - * add flex to build-deps - - -- Doug Burks Tue, 11 Sep 2012 19:03:04 -0400 - -securityonion-argus-server (3.0.6-0ubuntu0securityonion1) precise; urgency=low +securityonion-argus-server (3.0.8-0ubuntu0securityonion1) precise; urgency=low * Initial release - -- Doug Burks Tue, 11 Sep 2012 16:24:00 -0400 + -- Doug Burks Tue, 28 Oct 2014 13:45:33 -0400 diff -Nru securityonion-argus-server-3.0.6/debian/copyright securityonion-argus-server-3.0.8/debian/copyright --- securityonion-argus-server-3.0.6/debian/copyright 2012-09-11 20:24:02.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian/copyright 2014-10-28 17:46:50.000000000 +0000 @@ -1,20 +1,29 @@ Format: http://dep.debian.net/deps/dep5 -Upstream-Name: securityonion-argus-server -Source: +Upstream-Name: argus +Source: http://qosient.com/argus Files: * -Copyright: - -License: - - +Copyright: 2000-2014 Carter Bullard +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. . - + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + # If you want to use GPL v2 or later for the /debian/* files use # the following clauses, or change it to suit. Delete these two lines Files: debian/* -Copyright: 2012 Doug Burks +Copyright: 2014 Carter Bullard License: GPL-2+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -32,5 +41,3 @@ On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". -# Please also look if there are files or directories which have a -# different copyright/license attached and list them here. diff -Nru securityonion-argus-server-3.0.6/debian.argus/argus.postinst securityonion-argus-server-3.0.8/debian.argus/argus.postinst --- securityonion-argus-server-3.0.6/debian.argus/argus.postinst 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/argus.postinst 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1,41 @@ +#!/bin/sh +# postinst script for argus +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + if [ -x "/etc/init.d/argus" ]; then + if [ ! -e "/etc/init/argus.conf" ]; then + update-rc.d argus start 55 2 3 4 5 . stop 45 0 1 6 . >/dev/null + fi + invoke-rc.d argus start || exit $? + fi + exit 0 + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0 diff -Nru securityonion-argus-server-3.0.6/debian.argus/argus.postrm securityonion-argus-server-3.0.8/debian.argus/argus.postrm --- securityonion-argus-server-3.0.6/debian.argus/argus.postrm 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/argus.postrm 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1,7 @@ +#!/bin/sh +set -e +# Automatically added by dh_installinit +if [ "$1" = "purge" ] ; then + update-rc.d argus remove >/dev/null +fi +# End automatically added section diff -Nru securityonion-argus-server-3.0.6/debian.argus/argus.preinst securityonion-argus-server-3.0.8/debian.argus/argus.preinst --- securityonion-argus-server-3.0.6/debian.argus/argus.preinst 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/argus.preinst 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1,35 @@ +#!/bin/sh +# preinst script for argus +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + install|upgrade) + # + # stop the daemon before upgrade + # + if [ -x "/etc/init.d/argus" ]; then + invoke-rc.d argus stop || exit $? + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac +exit 0 diff -Nru securityonion-argus-server-3.0.6/debian.argus/argus.prerm securityonion-argus-server-3.0.8/debian.argus/argus.prerm --- securityonion-argus-server-3.0.6/debian.argus/argus.prerm 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/argus.prerm 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1,8 @@ +#!/bin/sh +set -e +# +# stop the daemon before uninstall +# +if [ -x "/etc/init.d/argus" ]; then + invoke-rc.d argus stop || exit $? +fi diff -Nru securityonion-argus-server-3.0.6/debian.argus/changelog securityonion-argus-server-3.0.8/debian.argus/changelog --- securityonion-argus-server-3.0.6/debian.argus/changelog 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/changelog 2014-07-11 04:24:42.000000000 +0000 @@ -0,0 +1,5 @@ +argus (3.0.8-1ppa1) precise; urgency=low + + * Initial release Argus 3.0.8 + + -- Ponsonby Britt Thu, 04 Jul 1776 13:38:40 -0400 diff -Nru securityonion-argus-server-3.0.6/debian.argus/compat securityonion-argus-server-3.0.8/debian.argus/compat --- securityonion-argus-server-3.0.6/debian.argus/compat 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/compat 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1 @@ +8 diff -Nru securityonion-argus-server-3.0.6/debian.argus/control securityonion-argus-server-3.0.8/debian.argus/control --- securityonion-argus-server-3.0.6/debian.argus/control 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/control 2014-07-11 03:43:32.000000000 +0000 @@ -0,0 +1,16 @@ +Source: argus +Section: utils +Priority: optional +Maintainer: Carter Bullard +Build-Depends: debhelper (>= 8.0.0), autotools-dev +Standards-Version: 3.9.3 +Homepage: http://qosient.com/argus + +Package: argus +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: network flow sensor + The ARGUS (Audit Record Generation And Utilization System) is an data + network transaction auditing system. The data generated by argus can be used + for a wide range of tasks such as network operations, security and performance + management. diff -Nru securityonion-argus-server-3.0.6/debian.argus/copyright securityonion-argus-server-3.0.8/debian.argus/copyright --- securityonion-argus-server-3.0.6/debian.argus/copyright 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/copyright 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1,43 @@ +Format: http://dep.debian.net/deps/dep5 +Upstream-Name: argus +Source: http://qosient.com/argus + +Files: * +Copyright: 2000-2014 Carter Bullard +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + + +# If you want to use GPL v2 or later for the /debian/* files use +# the following clauses, or change it to suit. Delete these two lines +Files: debian/* +Copyright: 2014 Carter Bullard +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + diff -Nru securityonion-argus-server-3.0.6/debian.argus/docs securityonion-argus-server-3.0.8/debian.argus/docs --- securityonion-argus-server-3.0.6/debian.argus/docs 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/docs 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1 @@ +README diff -Nru securityonion-argus-server-3.0.6/debian.argus/install securityonion-argus-server-3.0.8/debian.argus/install --- securityonion-argus-server-3.0.6/debian.argus/install 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/install 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1,11 @@ +pkg/argus.conf /etc/ +pkg/ubuntu/init.d/argus /etc/init.d/ +pkg/ubuntu/default/argus /etc/default/ + +bin/argus usr/sbin/ +bin/argusbug usr/bin/ +bin/argus-lsof usr/bin/ +bin/argus-snmp usr/bin/ +bin/argus-vmstat usr/bin/ +man/ usr/share/man/ +support/ usr/share/doc/argus diff -Nru securityonion-argus-server-3.0.6/debian.argus/rules securityonion-argus-server-3.0.8/debian.argus/rules --- securityonion-argus-server-3.0.6/debian.argus/rules 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/rules 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1,13 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +%: + dh $@ diff -Nru securityonion-argus-server-3.0.6/debian.argus/source/format securityonion-argus-server-3.0.8/debian.argus/source/format --- securityonion-argus-server-3.0.6/debian.argus/source/format 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/debian.argus/source/format 2014-07-08 17:37:15.000000000 +0000 @@ -0,0 +1 @@ +3.0 (quilt) diff -Nru securityonion-argus-server-3.0.6/doc/pdf/man/man5/argus.conf.5.pdf securityonion-argus-server-3.0.8/doc/pdf/man/man5/argus.conf.5.pdf --- securityonion-argus-server-3.0.6/doc/pdf/man/man5/argus.conf.5.pdf 2012-04-04 17:16:39.000000000 +0000 +++ securityonion-argus-server-3.0.8/doc/pdf/man/man5/argus.conf.5.pdf 2014-08-26 21:49:04.000000000 +0000 @@ -2,22 +2,22 @@ %âãÏÓ 2 0 obj << -/Length 5463 +/Length 5731 >> stream BT /TT2 1 Tf -10 0 0 10 72 793.89 Tm +10 0 0 10 72 744 Tm 0 g /GS1 gs 0 Tc 31.606 Tw (ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj /TT4 1 Tf -10.95 0 0 10.95 72 757.89 Tm +10.95 0 0 10.95 72 708 Tm 0 Tw [(N)20(AME)]TJ -10 0 0 10 108 745.89 Tm +10 0 0 10 108 696 Tm [(ar)10(gus.conf)]TJ /TT1 1 Tf 4.7122 0 TD @@ -35,20 +35,20 @@ 0.5562 0 TD (le.)Tj /TT4 1 Tf -10.95 0 0 10.95 72 729.09 Tm +10.95 0 0 10.95 72 679.2 Tm (SYNOPSIS)Tj -10 0 0 10 108 717.09 Tm +10 0 0 10 108 667.2 Tm [(ar)10(gus.conf)]TJ -10.95 0 0 10.95 72 700.29 Tm +10.95 0 0 10.95 72 650.4 Tm (COPYRIGHT)Tj /TT2 1 Tf -10 0 0 10 108 688.29 Tm -[(Cop)10(yright \(c\) 2000-2012 QoSient, LLC)-750(All rights reserv)15(ed.)]TJ +10 0 0 10 108 638.4 Tm +[(Cop)10(yright \(c\) 2000-2014 QoSient, LLC)-750(All rights reserv)15(ed.)]TJ /TT4 1 Tf -10.95 0 0 10.95 72 671.49 Tm +10.95 0 0 10.95 72 621.6 Tm (DESCRIPTION)Tj /TT2 1 Tf -10 0 0 10 108 659.4901 Tm +10 0 0 10 108 609.6 Tm 0.0386 Tw [(This is the canonical ar)18(gus con)]TJ /TT5 1 Tf @@ -70,7 +70,7 @@ 0 Tw (Þ)Tj /TT2 1 Tf -0.5562 0 TD +0.5561 0 TD (ed)Tj -42.2525 -1.2 TD 0.0272 Tw @@ -121,7 +121,7 @@ 0 Tw (Þ)Tj /TT2 1 Tf -0.5561 0 TD +0.5562 0 TD (guration )Tj /TT5 1 Tf 3.5861 0 TD @@ -160,10 +160,10 @@ 0 Tw (important.)Tj /TT4 1 Tf -10.95 0 0 10.95 72 534.69 Tm +10.95 0 0 10.95 72 484.8 Tm [(V)92(ariable Syntax)]TJ /TT2 1 Tf -10 0 0 10 108 522.69 Tm +10 0 0 10 108 472.8 Tm [(V)111(ariable assignments must be of the form:)]TJ 0.5 -1.2 TD [(V)135(ARIABLE=)]TJ @@ -174,10 +174,10 @@ 0 Tw [(b)20(u)0(t)-250(i)0(f)-250(you w)10(ant to embed comments, then quotes are required.)]TJ /TT4 1 Tf -10.95 0 0 10.95 72 457.89 Tm +10.95 0 0 10.95 72 408 Tm [(ARGUS_FLO)50(W_TYPE / ARGUS_FLO)50(W_KEY)]TJ /TT2 1 Tf -10 0 0 10 108 445.89 Tm +10 0 0 10 108 396 Tm 0.0553 Tw [(The Ar)18(gus can be con)]TJ /TT5 1 Tf @@ -265,10 +265,10 @@ 10.243 0 TD ("CLASSIC_5_TUPLE")Tj /TT4 1 Tf -10.95 0 0 10.95 72 273.0901 Tm +10.95 0 0 10.95 72 223.2 Tm [(ARGUS_D)35(AEMON)]TJ /TT2 1 Tf -10 0 0 10 108 261.0901 Tm +10 0 0 10 108 211.2 Tm 0.0324 Tw [(Ar)18(gus is capable of running as a daemon, doing all the right things that daemons do.)-532.5(When this con)]TJ /TT5 1 Tf @@ -281,19 +281,23 @@ -41.0855 -1.2 TD [(tion is used for the system daemon process, say for /etc/ar)18(gus.conf, this v)25(ariable should be set to "yes".)]TJ 0 -2.4 TD -[(The def)10(ault v)25(alue is to not run as a daemon.)]TJ +0.0752 Tw +[(In the e)15(xamples seen in the ./support/Startup/ar)18(gus scripts, this v)25(alue is set to "yes", as the system startup)]TJ +0 -1.2 TD +0.0451 Tw +[(strate)15(gy requires the program to daemonize themselv)15(es, returning a v)25(alue to the system, hopefully quickly)65(.)]TJ T* -[(This e)15(xample is to support the ./support/Startup/ar)18(gus script which requires that this v)25(ariable be set to "yes".)]TJ +0.0391 Tw +[(Some systems, ho)25(we)25(v)15(e)0(r)40(,)40( )-40.1(w)10(ant to daemonize the tasks themselv)15(es, and those cases, the v)25(alue must be set to)]TJ T* -[(Commandline equi)25(v)25(alent )-250(-d)]TJ -/TT4 1 Tf -T* -[(ARGUS_D)35(AEMON=)]TJ -/TT2 1 Tf -9.0905 0 TD -(yes)Tj --12.6905 -7.92 TD -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(1)]TJ +0 Tw +("no".)Tj +0 -2.4 TD +[(which requires that this v)25(ariable be set to "yes".)]TJ +0 -3.6 TD +[(The def)10(ault v)25(alue is to not run as a daemon.)]TJ +-3.6 -5.52 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(1)]TJ ET endstream endobj @@ -313,42 +317,50 @@ endobj 11 0 obj << -/Length 4861 +/Length 4676 >> stream BT /TT2 1 Tf -10 0 0 10 72 793.89 Tm +10 0 0 10 72 744 Tm 0 g /GS1 gs 0 Tc 31.606 Tw (ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj -/TT4 1 Tf -10.95 0 0 10.95 72 757.89 Tm +3.6 -3.6 TD 0 Tw +[(Commandline equi)25(v)25(alent )-250(-d)]TJ +/TT4 1 Tf +0 -2.4 TD +[(ARGUS_D)35(AEMON=)]TJ +/TT2 1 Tf +9.0905 0 TD +(no)Tj +/TT4 1 Tf +10.95 0 0 10.95 72 643.2 Tm [(ARGUS_MONIT)18(OR_ID)]TJ /TT2 1 Tf -10 0 0 10 108 745.89 Tm -0.0244 Tw -[(/* Ar)18(gus Monitor Data is uniquely identi)]TJ +10 0 0 10 108 631.2 Tm +0.0902 Tw +[(Ar)18(gus Monitor Data is uniquely identi)]TJ /TT5 1 Tf -16.4604 0 TD +15.7367 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.0245 Tw +0.0902 Tw (able based on the source identi)Tj /TT5 1 Tf -12.4238 0 TD +12.7523 0 TD 0 Tw (Þ)Tj /TT2 1 Tf -0.5561 0 TD -0.0245 Tw +0.5562 0 TD +0.0902 Tw (er that is included in each output)Tj --29.9965 -1.2 TD +-29.6013 -1.2 TD 0.0461 Tw [(record. )-250.1(This)-296.2(is to allo)25(w)-296.2(you to w)10(ork with Ar)18(gus Data from multiple monitors at the same time.)-546.1(The ID is)]TJ T* @@ -390,7 +402,7 @@ 27.0211 0 TD (Þ)Tj /TT2 1 Tf -0.5562 0 TD +0.5561 0 TD [(le that w)10(orks for a lot of probes.)]TJ -27.5772 -2.4 TD 0.0073 Tw @@ -430,11 +442,11 @@ 2 Tw [(="en0" //)-250(String)]TJ /TT4 1 Tf -10.95 0 0 10.95 72 441.0901 Tm +10.95 0 0 10.95 72 314.4 Tm 0 Tw [(ARGUS_A)55(CCESS_POR)40(T)]TJ /TT2 1 Tf -10 0 0 10 108 429.0901 Tm +10 0 0 10 108 302.4 Tm 0.0495 Tw [(Ar)18(gus monitors can pro)15(vide a real-time remote access port for collecting Ar)18(gus data.)-549.6(This is a TCP based)]TJ 0 -1.2 TD @@ -451,7 +463,7 @@ 0 Tw (Þ)Tj /TT2 1 Tf -0.5561 0 TD +0.5562 0 TD 0.0566 Tw (gured to try this)Tj -36.6646 -1.2 TD @@ -466,10 +478,10 @@ 11.6989 0 TD (561)Tj /TT4 1 Tf -10.95 0 0 10.95 72 280.2901 Tm +10.95 0 0 10.95 72 153.6 Tm (ARGUS_BIND_IP)Tj /TT2 1 Tf -10 0 0 10 108 268.2901 Tm +10 0 0 10 108 141.6 Tm 0.0867 Tw [(When remote access is enabled \(see abo)15(v)15(e\), you can specify that Ar)18(gus should bind only to a speci)]TJ /TT5 1 Tf @@ -490,28 +502,8 @@ [(Y)110(o)0(u)-250(can pro)15(vide multiple addresses, separated by commas, or on multiple lines.)]TJ T* [(The def)10(ault is to bind to an)15(y)-250(I)0(P)-250(address.)]TJ -T* -[(Commandline equi)25(v)25(alent )-250(-B)]TJ -/TT4 1 Tf -T* -(ARGUS_BIND_IP=)Tj -/TT2 1 Tf -8.5708 0 TD -("::1,127.0.0.1")Tj -/TT4 1 Tf --8.5708 -1.2 TD -(ARGUS_BIND_IP=)Tj -/TT2 1 Tf -8.5708 0 TD -("127.0.0.1")Tj -/TT4 1 Tf --8.5708 -1.2 TD -(ARGUS_BIND_IP=)Tj -/TT2 1 Tf -8.5708 0 TD -("192.168.0.68")Tj --12.1708 -5.04 TD -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(2)]TJ +-3.6 -4.56 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(2)]TJ ET endstream endobj @@ -530,23 +522,43 @@ endobj 14 0 obj << -/Length 4553 +/Length 4295 >> stream BT /TT2 1 Tf -10 0 0 10 72 793.89 Tm +10 0 0 10 72 744 Tm 0 g /GS1 gs 0 Tc 31.606 Tw (ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj -/TT4 1 Tf -10.95 0 0 10.95 72 757.89 Tm +3.6 -3.6 TD 0 Tw +[(Commandline equi)25(v)25(alent )-250(-B)]TJ +/TT4 1 Tf +0 -2.4 TD +(ARGUS_BIND_IP=)Tj +/TT2 1 Tf +8.5708 0 TD +("::1,127.0.0.1")Tj +/TT4 1 Tf +-8.5708 -1.2 TD +(ARGUS_BIND_IP=)Tj +/TT2 1 Tf +8.5708 0 TD +("127.0.0.1")Tj +/TT4 1 Tf +-8.5708 -1.2 TD +(ARGUS_BIND_IP=)Tj +/TT2 1 Tf +8.5708 0 TD +("192.168.0.68")Tj +/TT4 1 Tf +10.95 0 0 10.95 72 619.2 Tm [(ARGUS_INTERF)90(A)55(C)0(E)]TJ /TT2 1 Tf -10 0 0 10 108 745.89 Tm +10 0 0 10 108 607.2 Tm 0.0511 Tw [(By def)10(ault, Ar)18(gus will open the )]TJ /TT5 1 Tf @@ -686,10 +698,42 @@ /TT2 1 Tf 0.5562 0 TD [(ed using the notion used for ARGUS_MONIT)18(OR_ID, as abo)15(v)15(e)0(.)]TJ --7.3595 -2.4 TD +-10.9595 -5.52 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(3)]TJ +ET +endstream +endobj +15 0 obj +<< +/ProcSet [/PDF /Text ] +/Font << +/TT2 5 0 R +/TT4 6 0 R +/TT5 7 0 R +>> +/ExtGState << +/GS1 8 0 R +>> +>> +endobj +17 0 obj +<< +/Length 4152 +>> +stream +BT +/TT2 1 Tf +10 0 0 10 72 744 Tm +0 g +/GS1 gs +0 Tc +31.606 Tw +(ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj +3.6 -3.6 TD +0 Tw [(Commandline equi)25(v)25(alent )-500(-i)]TJ /TT4 1 Tf -T* +0 -2.4 TD [(ARGUS_INTERF)90(A)55(C)0(E)]TJ /TT2 1 Tf 9.7451 0 TD @@ -718,43 +762,11 @@ /TT2 1 Tf 9.7451 0 TD (=en0)Tj --13.3451 -4.8 TD -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(3)]TJ -ET -endstream -endobj -15 0 obj -<< -/ProcSet [/PDF /Text ] -/Font << -/TT2 5 0 R -/TT4 6 0 R -/TT5 7 0 R ->> -/ExtGState << -/GS1 8 0 R ->> ->> -endobj -17 0 obj -<< -/Length 4121 ->> -stream -BT -/TT2 1 Tf -10 0 0 10 72 793.89 Tm -0 g -/GS1 gs -0 Tc -31.606 Tw -(ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj /TT4 1 Tf -10.95 0 0 10.95 72 757.89 Tm -0 Tw +10.95 0 0 10.95 72 595.2 Tm [(ARGUS_GO_PR)30(OMISCUOUS)]TJ /TT2 1 Tf -10 0 0 10 108 745.89 Tm +10 0 0 10 108 583.2 Tm 0.0637 Tw [(By def)10(ault, Ar)18(gus will put its interf)10(ace in promiscuous mode in order to monitor all the traf)]TJ /TT5 1 Tf @@ -783,7 +795,7 @@ 0 Tw [(of an HTTP service or DNS service, you’)10(ll w)10(ant to turn promiscuous mode of)25(f.)]TJ 0 -2.4 TD -[(The def)10(ault v)25(alue is go into prmiscuous mode.)]TJ +[(The def)10(ault v)25(alue goes into prmiscuous mode.)]TJ T* [(Commandline equi)25(v)25(alent )-250(-p)]TJ /TT4 1 Tf @@ -793,55 +805,10 @@ 14.0965 0 TD (yes)Tj /TT4 1 Tf -10.95 0 0 10.95 72 585.0901 Tm -[(ARGUS_COLLECT)18(OR)]TJ -/TT2 1 Tf -10 0 0 10 108 573.0901 Tm -0.1198 Tw -[(By def)10(ault, Ar)18(gus will pro)15(vide its o)25(wn reliable output collection functions, which include writing out to)]TJ -0 -1.2 TD -0 Tw -(multiple )Tj -/TT5 1 Tf -3.8665 0 TD -(Þ)Tj -/TT2 1 Tf -0.5562 0 TD -0.2835 Tw -(les, supporting multiple concurrent remote clients, independent output )Tj -/TT5 1 Tf -30.5947 0 TD -0 Tw -(Þ)Tj -/TT2 1 Tf -0.5562 0 TD -0.2835 Tw -(ltering and strong)Tj --35.5735 -1.2 TD -0.0724 Tw -(authentication and encryption. The support for each of these functions increases the CPU requirements of)Tj -T* -0 Tw -[(ar)18(gus, and as such, in high load en)40(vironments, may not be desireable.)]TJ -0 -2.4 TD -0.0908 Tw -[(When ar)18(gus’)55(s)-340.9(collection functions are disabled, the only w)10(ay to access data is through a sock)10(et, and as a)]TJ -0 -1.2 TD -0 Tw -[(result the ARGUS_A)40(CCESS_POR)60(T)-250(and ARGUS_BIND_ADDRESS mechanisms may need to be used.)]TJ -0 -2.4 TD -[(Commandline equi)25(v)25(alent )-500(-c)]TJ -/TT4 1 Tf -T* -[(ARGUS_COLLECT)18(OR=)]TJ -/TT2 1 Tf -10.9424 0 TD -(yes)Tj -/TT4 1 Tf -10.95 0 0 10.95 72 412.29 Tm +10.95 0 0 10.95 72 422.4 Tm [(ARGUS_CHR)30(OO)40(T_DIR)]TJ /TT2 1 Tf -10 0 0 10 108 400.29 Tm +10 0 0 10 108 410.4 Tm 0.0658 Tw [(Ar)18(gus supports chroot\(2\) in order to control the )]TJ /TT5 1 Tf @@ -895,7 +862,7 @@ 0.5562 0 TD (les.)Tj -8.2788 -2.4 TD -[(Commandline equi)25(v)25(alent )-500(-C)]TJ +[(Commandline equi)25(v)25(alent )-500(-c)-250(dir)]TJ /TT4 1 Tf T* [(ARGUS_CHR)30(OO)40(T_DIR=)]TJ @@ -903,10 +870,10 @@ 11.2786 0 TD (/chroot_dir)Tj /TT4 1 Tf -10.95 0 0 10.95 72 251.49 Tm +10.95 0 0 10.95 72 261.6 Tm (ARGUS_SETUSER_ID)Tj /TT2 1 Tf -10 0 0 10 108 239.49 Tm +10 0 0 10 108 249.6 Tm 0.0704 Tw [(Ar)18(gus can be directed to change its user id using the setuid\(\) system call.)-570.4(This is can used when ar)18(gus is)]TJ 0 -1.2 TD @@ -919,15 +886,31 @@ 0 Tw (ning as daemon.)Tj 0 -2.4 TD -[(Commandline equi)25(v)25(alent )-500(-u)]TJ +[(Commandline equi)25(v)25(alent )-500(-u)-250(user)]TJ /TT4 1 Tf T* (ARGUS_SETUSER_ID=)Tj /TT2 1 Tf 10.7393 0 TD (user)Tj --14.3393 -8.16 TD -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(4)]TJ +/TT4 1 Tf +10.95 0 0 10.95 72 124.8 Tm +[(ARGUS_SETGR)30(OUP_ID)]TJ +/TT2 1 Tf +10 0 0 10 108 112.8 Tm +0.0371 Tw +[(Ar)18(gus can be directed to change its group id using the setgid\(\) system call.)-537.1(This is can used when ar)18(gus is)]TJ +0 -1.2 TD +0.015 Tw +[(started as root, in order to access pri)25(vile)15(ged resources, b)20(ut then after the resources are opened, this directi)25(v)15(e)]TJ +T* +0.0998 Tw +[(can be used to change ar)18(gu’)55(s)-349.9(group id v)25(alue to a ’)10(lesser’ capable account.)-599.9(Recommended when ar)18(gus is)]TJ +T* +0 Tw +(running as daemon.)Tj +-3.6 -5.28 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(4)]TJ ET endstream endobj @@ -946,47 +929,31 @@ endobj 20 0 obj << -/Length 5176 +/Length 4817 >> stream BT /TT2 1 Tf -10 0 0 10 72 793.89 Tm +10 0 0 10 72 744 Tm 0 g /GS1 gs 0 Tc 31.606 Tw (ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj -/TT4 1 Tf -10.95 0 0 10.95 72 757.89 Tm -0 Tw -[(ARGUS_SETGR)30(OUP_ID)]TJ -/TT2 1 Tf -10 0 0 10 108 745.89 Tm -0.0371 Tw -[(Ar)18(gus can be directed to change its group id using the setgid\(\) system call.)-537.1(This is can used when ar)18(gus is)]TJ -0 -1.2 TD -0.015 Tw -[(started as root, in order to access pri)25(vile)15(ged resources, b)20(ut then after the resources are opened, this directi)25(v)15(e)]TJ -T* -0.0998 Tw -[(can be used to change ar)18(gu’)55(s)-349.9(group id v)25(alue to a ’)10(lesser’ capable account.)-599.9(Recommended when ar)18(gus is)]TJ -T* +3.6 -3.6 TD 0 Tw -(running as daemon.)Tj -0 -2.4 TD -[(Commandline equi)25(v)25(alent )-500(-g)]TJ +[(Commandline equi)25(v)25(alent )-500(-g)-250(group)]TJ /TT4 1 Tf -T* +0 -2.4 TD [(ARGUS_SETGR)30(OUP_ID=)]TJ /TT2 1 Tf 11.6526 0 TD (group)Tj /TT4 1 Tf -10.95 0 0 10.95 72 621.09 Tm +10.95 0 0 10.95 72 643.2 Tm (ARGUS_OUTPUT_FILE)Tj /TT2 1 Tf -10 0 0 10 108 609.09 Tm +10 0 0 10 108 631.2 Tm 0.0057 Tw [(Ar)18(gus can write its output to one or a number of )]TJ /TT5 1 Tf @@ -1002,7 +969,7 @@ 0 Tw (Þ)Tj /TT2 1 Tf -0.5562 0 TD +0.5561 0 TD 0.0056 Tw [(les, each with their o)25(w)0(n)]TJ -33.6729 -1.2 TD @@ -1081,10 +1048,10 @@ 11.5713 0 TD [(/v)25(ar/log/ar)18(gus/ar)18(gus.out)]TJ /TT4 1 Tf -10.95 0 0 10.95 72 424.29 Tm +10.95 0 0 10.95 72 446.4 Tm (ARGUS_OUTPUT_STREAM)Tj /TT2 1 Tf -10 0 0 10 108 412.29 Tm +10 0 0 10 108 434.4 Tm 0.1131 Tw [(Ar)18(gus can write its output to one or a number of remote hosts.)-613.1(The def)10(ault limit is 5 concurrent output)]TJ 0 -1.2 TD @@ -1138,10 +1105,10 @@ 13.5156 0 TD [(ar)18(gus-udp://224.0.20.21:561)]TJ /TT4 1 Tf -10.95 0 0 10.95 72 215.49 Tm +10.95 0 0 10.95 72 237.6 Tm (ARGUS_SET_PID)Tj /TT2 1 Tf -10 0 0 10 108 203.49 Tm +10 0 0 10 108 225.6 Tm 0.0321 Tw [(When Ar)18(gus is con)]TJ /TT5 1 Tf @@ -1212,8 +1179,22 @@ /TT2 1 Tf 0.5562 0 TD [(le, is ’/v)25(ar/run’.)]TJ --30.8787 -4.56 TD -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(5)]TJ +-27.2787 -2.4 TD +[(No Commandline equi)25(v)25(alent)]TJ +/TT4 1 Tf +T* +(ARGUS_SET_PID=)Tj +/TT2 1 Tf +8.6826 0 TD +(yes)Tj +/TT4 1 Tf +-8.6826 -1.2 TD +[(ARGUS_PID_P)74(A)95(TH=)]TJ +/TT2 1 Tf +9.4013 0 TD +[(/v)25(ar/run)]TJ +-13.0013 -5.76 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(5)]TJ ET endstream endobj @@ -1232,37 +1213,23 @@ endobj 23 0 obj << -/Length 3759 +/Length 4064 >> stream BT /TT2 1 Tf -10 0 0 10 72 793.89 Tm +10 0 0 10 72 744 Tm 0 g /GS1 gs 0 Tc 31.606 Tw (ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj -3.6 -3.6 TD -0 Tw -[(No Commandline equi)25(v)25(alent)]TJ /TT4 1 Tf -0 -2.4 TD -(ARGUS_SET_PID=)Tj -/TT2 1 Tf -8.6826 0 TD -(yes)Tj -/TT4 1 Tf --8.6826 -1.2 TD -[(ARGUS_PID_P)74(A)95(TH=)]TJ -/TT2 1 Tf -9.4013 0 TD -[(/v)25(ar/run)]TJ -/TT4 1 Tf -10.95 0 0 10.95 72 681.09 Tm +10.95 0 0 10.95 72 708 Tm +0 Tw [(ARGUS_FLO)50(W_ST)90(A)95(TUS_INTER)55(V)135(A)0(L)]TJ /TT2 1 Tf -10 0 0 10 108 669.09 Tm +10 0 0 10 108 696 Tm 0.1072 Tw [(Ar)18(gus will periodically report on a )]TJ /TT5 1 Tf @@ -1315,10 +1282,10 @@ 17.3704 0 TD (60)Tj /TT4 1 Tf -10.95 0 0 10.95 72 520.29 Tm +10.95 0 0 10.95 72 547.2 Tm [(ARGUS_MAR_ST)90(A)95(TUS_INTER)55(V)135(A)0(L)]TJ /TT2 1 Tf -10 0 0 10 108 508.29 Tm +10 0 0 10 108 535.2 Tm 0.0368 Tw [(Ar)18(gus will periodically report on a its o)25(wn health, pro)15(viding interf)10(ace status, total pack)10(et and bytes counts,)]TJ 0 -1.2 TD @@ -1349,10 +1316,10 @@ 16.7529 0 TD (300)Tj /TT4 1 Tf -10.95 0 0 10.95 72 347.49 Tm +10.95 0 0 10.95 72 374.4 Tm [(ARGUS_DEB)10(UG_LEVEL)]TJ /TT2 1 Tf -10 0 0 10 108 335.49 Tm +10 0 0 10 108 362.4 Tm [(If compiled to support this option, Ar)18(gus is capable of generating a lot of deb)20(ug information.)]TJ 0 -2.4 TD [(The def)10(ault v)25(alue is zero \(0\).)]TJ @@ -1365,10 +1332,10 @@ 12.0066 0 TD (0)Tj /TT4 1 Tf -10.95 0 0 10.95 72 210.69 Tm +10.95 0 0 10.95 72 237.6 Tm [(ARGUS_GENERA)95(TE_P)74(A)55(CKET_SIZE)]TJ /TT2 1 Tf -10 0 0 10 108 198.69 Tm +10 0 0 10 108 225.6 Tm 0.0783 Tw [(Ar)18(gus can be con)]TJ /TT5 1 Tf @@ -1398,43 +1365,12 @@ /TT2 1 Tf 17.4049 0 TD (yes)Tj --21.0049 -6.48 TD -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(6)]TJ -ET -endstream -endobj -24 0 obj -<< -/ProcSet [/PDF /Text ] -/Font << -/TT2 5 0 R -/TT4 6 0 R -/TT5 7 0 R ->> -/ExtGState << -/GS1 8 0 R ->> ->> -endobj -26 0 obj -<< -/Length 4003 ->> -stream -BT -/TT2 1 Tf -10 0 0 10 72 793.89 Tm -0 g -/GS1 gs -0 Tc -31.606 Tw -(ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj /TT4 1 Tf -10.95 0 0 10.95 72 757.89 Tm +10.95 0 0 10.95 72 124.8 Tm -0.2451 Tw [(ARGUS_GENERA)95(TE_JITTER_D)35(A)95(T)95( A)]TJ /TT2 1 Tf -10 0 0 10 108 745.89 Tm +10 0 0 10 108 112.8 Tm 0.0782 Tw [(Ar)18(gus can be con)]TJ /TT5 1 Tf @@ -1458,8 +1394,39 @@ (not generate this data.)Tj 0 -2.4 TD [(Commandline equi)25(v)25(alent )-250(-J)]TJ +-3.6 -5.28 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(6)]TJ +ET +endstream +endobj +24 0 obj +<< +/ProcSet [/PDF /Text ] +/Font << +/TT2 5 0 R +/TT4 6 0 R +/TT5 7 0 R +>> +/ExtGState << +/GS1 8 0 R +>> +>> +endobj +26 0 obj +<< +/Length 3600 +>> +stream +BT +/TT2 1 Tf +10 0 0 10 72 744 Tm +0 g +/GS1 gs +0 Tc +31.606 Tw +(ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj /TT4 1 Tf -0 -3.6 TD +3.6 -3.6 TD -0.245 Tw [(ARGUS_GENERA)95(TE_JITTER_D)35(A)95(T)95( A=)]TJ /TT2 1 Tf @@ -1467,11 +1434,11 @@ 0 Tw (no)Tj /TT4 1 Tf -10.95 0 0 10.95 72 633.09 Tm +10.95 0 0 10.95 72 667.2 Tm -0.2451 Tw [(ARGUS_GENERA)95(TE_MA)55(C_D)35(A)95(T)95( A)]TJ /TT2 1 Tf -10 0 0 10 108 621.09 Tm +10 0 0 10 108 655.2 Tm 0.0634 Tw [(Ar)18(gus can be con)]TJ /TT5 1 Tf @@ -1498,10 +1465,10 @@ 0 Tw (no)Tj /TT4 1 Tf -10.95 0 0 10.95 72 496.29 Tm +10.95 0 0 10.95 72 530.4 Tm [(ARGUS_GENERA)95(TE_APPBYTE_METRIC)]TJ /TT2 1 Tf -10 0 0 10 108 484.29 Tm +10 0 0 10 108 518.4 Tm 0.0678 Tw [(Ar)18(gus can be con)]TJ /TT5 1 Tf @@ -1524,10 +1491,10 @@ 19.8659 0 TD (no)Tj /TT4 1 Tf -10.95 0 0 10.95 72 383.4901 Tm +10.95 0 0 10.95 72 417.6 Tm [(ARGUS_GENERA)95(TE_TCP_PERF_METRIC)]TJ /TT2 1 Tf -10 0 0 10 108 371.4901 Tm +10 0 0 10 108 405.6 Tm 0.0072 Tw [(Ar)18(gus by def)10(ault, generates e)15(xtended metrics for TCP that include the connection setup time, windo)25(w)-257.2(sizes,)]TJ 0 -1.2 TD @@ -1545,10 +1512,10 @@ 20.3098 0 TD (yes)Tj /TT4 1 Tf -10.95 0 0 10.95 72 270.69 Tm +10.95 0 0 10.95 72 304.8 Tm [(ARGUS_GENERA)95(TE_BIDIRECTION)20(AL_TIMEST)90(AMPS)]TJ /TT2 1 Tf -10 0 0 10 108 258.69 Tm +10 0 0 10 108 292.8 Tm 0.0782 Tw [(Ar)18(gus by def)10(ault, generates a single pair of timestamps, for the )]TJ /TT5 1 Tf @@ -1556,7 +1523,7 @@ 0 Tw (Þ)Tj /TT2 1 Tf -0.5562 0 TD +0.5561 0 TD 0.0782 Tw [(rst and last pack)10(et seen on a gi)25(v)15(e)0(n)]TJ /TT5 1 Tf @@ -1599,11 +1566,11 @@ 25.9249 0 TD (no)Tj /TT4 1 Tf -10.95 0 0 10.95 72 157.89 Tm +10.95 0 0 10.95 72 192 Tm -0.2451 Tw [(ARGUS_CAPTURE_D)35(A)95(T)95( A_LEN)]TJ /TT2 1 Tf -10 0 0 10 108 145.89 Tm +10 0 0 10 108 180 Tm 0 Tw [(Ar)18(gus can be con)]TJ /TT5 1 Tf @@ -1614,8 +1581,18 @@ [(gured to capture a number of user data bytes from the pack)10(et stream.)]TJ -7.5079 -2.4 TD [(The def)10(ault v)25(alue is to not generate this data.)]TJ --3.6 -4.8 TD -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(7)]TJ +T* +[(Commandline equi)25(v)25(alent )-250(-U)]TJ +/TT4 1 Tf +0 -3.6 TD +-0.245 Tw +[(ARGUS_CAPTURE_D)35(A)95(T)95( A_LEN=)]TJ +/TT2 1 Tf +15.0735 0 TD +0 Tw +(0)Tj +-18.6735 -7.2 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(7)]TJ ET endstream endobj @@ -1634,33 +1611,23 @@ endobj 29 0 obj << -/Length 3625 +/Length 4085 >> stream BT /TT2 1 Tf -10 0 0 10 72 793.89 Tm +10 0 0 10 72 744 Tm 0 g /GS1 gs 0 Tc 31.606 Tw (ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj -3.6 -3.6 TD -0 Tw -[(Commandline equi)25(v)25(alent )-250(-U)]TJ /TT4 1 Tf -T* --0.245 Tw -[(ARGUS_CAPTURE_D)35(A)95(T)95( A_LEN=)]TJ -/TT2 1 Tf -15.0735 0 TD +10.95 0 0 10.95 72 708 Tm 0 Tw -(0)Tj -/TT4 1 Tf -10.95 0 0 10.95 72 681.09 Tm [(ARGUS_FIL)92(TER_OPTIMIZER)]TJ /TT2 1 Tf -10 0 0 10 108 669.09 Tm +10 0 0 10 108 696 Tm 0.032 Tw [(Ar)18(gus uses the pack)10(et )]TJ /TT5 1 Tf @@ -1691,10 +1658,10 @@ 14.5354 0 TD (yes)Tj /TT4 1 Tf -10.95 0 0 10.95 72 556.29 Tm +10.95 0 0 10.95 72 583.2 Tm [(ARGUS_FIL)92(TER)]TJ /TT2 1 Tf -10 0 0 10 108 544.29 Tm +10 0 0 10 108 571.2 Tm 0.0306 Tw [(Y)110(o)0(u)-280.6(can pro)15(vide a )]TJ /TT5 1 Tf @@ -1723,10 +1690,10 @@ 8.2015 0 TD ("")Tj /TT4 1 Tf -10.95 0 0 10.95 72 431.4901 Tm +10.95 0 0 10.95 72 458.4 Tm [(ARGUS_P)74(A)55(CKET_CAPTURE_FILE)]TJ /TT2 1 Tf -10 0 0 10 108 419.4901 Tm +10 0 0 10 108 446.4 Tm 0.0058 Tw [(Ar)18(gus allo)25(ws you to capture pack)10(ets in tcpdump\(\) format if the source of the pack)10(ets is a tcpdump\(\) format-)]TJ 0 -1.2 TD @@ -1753,10 +1720,10 @@ 16.7758 0 TD [("/v)25(ar/log/ar)18(gus/pack)10(et.out")]TJ /TT4 1 Tf -10.95 0 0 10.95 72 318.69 Tm +10.95 0 0 10.95 72 345.6 Tm (ARGUS_SSF)Tj /TT2 1 Tf -10 0 0 10 108 306.69 Tm +10 0 0 10 108 333.6 Tm [(Ar)18(gus supports the use of SASL to pro)15(vide strong authentication and con)]TJ /TT5 1 Tf 29.2683 0 TD @@ -1786,10 +1753,10 @@ 9.1816 0 TD (0)Tj /TT4 1 Tf -10.95 0 0 10.95 72 181.89 Tm +10.95 0 0 10.95 72 208.8 Tm (ARGUS_ENV)Tj /TT2 1 Tf -10 0 0 10 108 169.89 Tm +10 0 0 10 108 196.8 Tm 0.0353 Tw [(Ar)18(gus supports setting en)40(vironment v)25(ariables to enable functions required by the k)10(ernel or shared libraries.)]TJ 0 -1.2 TD @@ -1801,9 +1768,23 @@ 0 -2.4 TD 0.0028 Tw [(Setting en)40(vironment v)25(ariables in this w)10(ay does not af)25(fect internal ar)18(gus v)25(ariable in an)15(y)-252.8(w)10(ay)65(.)-252.8(A)0(s)-252.8(a)-252.8(result, you)]TJ --3.6 -4.8 TD +0 -1.2 TD 0 Tw -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(8)]TJ +[(can’)18(t)-250(set ARGUS_P)92(A)111(T)0(H)-250(using this feature.)]TJ +0 -2.4 TD +0.0829 Tw +[(Care should must be tak)10(en to assure that the v)25(alue gi)25(v)15(e)0(n)-333(the v)25(ariable conform’)55(s)-333(t)0(o)-333(your systems puten)40(v)65(.)0(3)]TJ +0 -1.2 TD +0 Tw +[(system call.)-500(Y)110(o)0(u)-250(can ha)20(v)15(e)15( )-15(as)-250(man)15(y)-250(o)0(f)-250(these directi)25(v)15(e)0(s)-250(a)0(s)-250(you lik)10(e.)]TJ +0 -2.4 TD +0.0731 Tw +[(The e)15(xample belo)25(w)-323.1(i)0(s)-323.1(intended to set a libpcap ring b)20(u)0(f)25(fer length to 300MB, if your system supports this)]TJ +0 -1.2 TD +0 Tw +(feature.)Tj +-3.6 -4.08 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(8)]TJ ET endstream endobj @@ -1822,43 +1803,29 @@ endobj 32 0 obj << -/Length 4606 +/Length 4990 >> stream BT /TT2 1 Tf -10 0 0 10 72 793.89 Tm +10 0 0 10 72 744 Tm 0 g /GS1 gs 0 Tc 31.606 Tw (ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj +/TT4 1 Tf 3.6 -3.6 TD 0 Tw -[(can’)18(t)-250(set ARGUS_P)92(A)111(T)0(H)-250(using this feature.)]TJ -0 -2.4 TD -0.0829 Tw -[(Care should must be tak)10(en to assure that the v)25(alue gi)25(v)15(e)0(n)-333(the v)25(ariable conform’)55(s)-333(t)0(o)-333(your systems puten)40(v)65(.)0(3)]TJ -0 -1.2 TD -0 Tw -[(system call.)-500(Y)110(o)0(u)-250(can ha)20(v)15(e)15( )-15(as)-250(man)15(y)-250(o)0(f)-250(these directi)25(v)15(e)0(s)-250(a)0(s)-250(you lik)10(e.)]TJ -0 -2.4 TD -0.0731 Tw -[(The e)15(xample belo)25(w)-323.1(i)0(s)-323.1(intended to set a libpcap ring b)20(u)0(f)25(fer length to 300MB, if your system supports this)]TJ -0 -1.2 TD -0 Tw -(feature.)Tj -/TT4 1 Tf -0 -2.4 TD (ARGUS_ENV=)Tj /TT2 1 Tf 6.6816 0 TD [("PCAP_MEMOR)65(Y=300000")]TJ /TT4 1 Tf -10.95 0 0 10.95 72 621.09 Tm +10.95 0 0 10.95 72 667.2 Tm [(ARGUS_TUNNEL_DISCO)50(VER)35(Y)]TJ /TT2 1 Tf -10 0 0 10 108 609.09 Tm +10 0 0 10 108 655.2 Tm 0.2087 Tw [(Ar)18(gus can be con)]TJ /TT5 1 Tf @@ -1873,7 +1840,7 @@ -0.015 Tc 0 Tw (ove )Tj -1.8726 0 TD +1.8727 0 TD 0 Tc 0.2088 Tw [(the UDP transport header)40(,)-458.8(speci)]TJ @@ -1899,11 +1866,11 @@ 15.1538 0 TD (no)Tj /TT4 1 Tf -10.95 0 0 10.95 72 484.29 Tm +10.95 0 0 10.95 72 530.4 Tm -0.2451 Tw [(ARGUS_EVENT_D)35(A)95(T)95( A)]TJ /TT2 1 Tf -10 0 0 10 108 472.29 Tm +10 0 0 10 108 518.4 Tm 0.0957 Tw [(Ar)18(gus supports the generation of host originated processes to gather additional data and statistics.)-595.8(These)]TJ 0 -1.2 TD @@ -1977,10 +1944,10 @@ 0 Tw ("prog:/usr/local/bin/ralsof:30s:compress")Tj /TT4 1 Tf -10.95 0 0 10.95 72 239.49 Tm +10.95 0 0 10.95 72 285.6 Tm [(ARGUS_KEYSTR)30(OKE)]TJ /TT2 1 Tf -10 0 0 10 108 227.49 Tm +10 0 0 10 108 273.6 Tm 0.0691 Tw [(This v)15(ersion of Ar)18(gus supports k)10(e)15(ystrok)10(e)-319.1(detection and counting for TCP connections, with speci)]TJ /TT5 1 Tf @@ -2046,46 +2013,14 @@ 0.75 Tw [("no" [def)10(ault])]TJ -12.3753 -2.4 TD -0.7883 Tw -[(The algorithm uses a number of v)25(ariables, all of which can be modifed using the)]TJ --3.6 -4.56 TD -0 Tw -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-19054.5(9)]TJ -ET -endstream -endobj -33 0 obj -<< -/ProcSet [/PDF /Text ] -/Font << -/TT2 5 0 R -/TT4 6 0 R -/TT5 7 0 R ->> -/ExtGState << -/GS1 8 0 R ->> ->> -endobj -35 0 obj -<< -/Length 2520 ->> -stream -BT -/TT2 1 Tf -10 0 0 10 72 793.89 Tm -0 g -/GS1 gs -0 Tc -31.606 Tw -(ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj -3.6 -3.6 TD -0.205 Tw -[(ARGUS_KEYSTR)40(OKE_CONF descriptor)40(,)-455.1(which is a semicolon \(’;’\) separated set of v)25(ariable assign-)]TJ +0.308 Tw +[(The algorithm uses a number of v)25(ariables, all of which can be modifed using the ARGUS_KEY)111(-)]TJ 0 -1.2 TD +0.0758 Tw +[(STR)40(OKE_CONF descriptor)40(,)-325.9(which is a semicolon \(’;’\) separated set of v)25(ariable assignments.)-575.8(Here is the)]TJ +T* 0 Tw -[(ments. )-250(Here)-250(is the list of supported v)25(ariables:)]TJ +[(list of supported v)25(ariables:)]TJ /TT4 1 Tf 0.5 -1.2 TD (DC_MIN)Tj @@ -2126,8 +2061,40 @@ /TT2 1 Tf 4.1665 0 TD [(-)-750(\(int\) Minimum client interpack)10(et arri)25(v)25(a)0(l)-250(time \(microseconds\))]TJ +-8.2665 -4.56 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-19054.5(9)]TJ +ET +endstream +endobj +33 0 obj +<< +/ProcSet [/PDF /Text ] +/Font << +/TT2 5 0 R +/TT4 6 0 R +/TT5 7 0 R +>> +/ExtGState << +/GS1 8 0 R +>> +>> +endobj +35 0 obj +<< +/Length 1473 +>> +stream +BT +/TT2 1 Tf +10 0 0 10 72 744 Tm +0 g +/GS1 gs +0 Tc +31.606 Tw +(ARGUS.CONF\(5\) ARGUS.CONF\(5\))Tj /TT4 1 Tf --4.1665 -1.2 TD +4.1 -3.6 TD +0 Tw (LCS_MAX)Tj /TT2 1 Tf 5.0835 0 TD @@ -2191,15 +2158,15 @@ 13.6385 0 TD (="")Tj /TT4 1 Tf -10.95 0 0 10.95 72 513.09 Tm +10.95 0 0 10.95 72 559.2 Tm (SEE ALSO)Tj -10 0 0 10 108 501.0901 Tm +10 0 0 10 108 547.2 Tm [(ar)10(gus)]TJ /TT2 1 Tf 2.3792 0 TD (\(8\))Tj --5.9792 -42.72 TD -[(ar)18(gus.conf 3.0.6)-13129.5(07 No)15(v)15(ember 2000)-18554.5(10)]TJ +-5.9792 -52.32 TD +[(ar)18(gus.conf 3.0.8)-13129.5(07 No)15(v)15(ember 2000)-18554.5(10)]TJ ET endstream endobj @@ -2238,7 +2205,7 @@ /Descent -250 /Flags 6 /FontBBox [-168 -218 1000 898] -/FontName /FLKNFB+Times-Roman +/FontName /ELCMOF+Times-Roman /ItalicAngle 0 /StemV 84 /XHeight 450 @@ -2253,106 +2220,114 @@ /Length1 230680 >> stream -H‰¼V pTÕþî½owY(d ÞúFÈ -‚–°¡±þw†î’6‘@”ˆ€€Á.ÐA­ŠëÏ8XËR»Q´Q±TÁ)c‡¦ãˆÚ‚c¥S[Ô¶–}ýîË‚i§Óéž9ïžsϹç~ç»wß.€<> `ñŠ¥ËŒ»{ Äåœ^³²ÅüQÔ2ús˜0¤¾vEMxàÈRÀÓÂøèúºd ¼Æ\úOÑ/©o^Ò´³e›—þ1ê½K–®®?²åÎN¨¥ Æw§ê’µ§7þjã‡ôKSœè{®Ï›@Ïýa©¦–U÷>O-0`kã+ZT@¼\ÕƒñUK—×$¡æÎj¢;`{SrUs¯Ó¾¬×Á ³iùí«ê~þÕ#Ìo… -–%›êF>vG;Ô†íìáÚæÛëšÿôæzâY¼ð¾Þ|ûòæWÏ}ôTÃB@Ð\¸¹_î÷ÔŠ£ø¯>dGzªPH ¨‡qàœ¤ž¡žÎV0ÎXöeç·j“Û´Êì”IŽÁX‡P|¾ë‘bœ“é·á>ÀMX€Cøž7"›Q†&QŽaâ”"ŠÇð -W¬ÆræVâ>¹êEç5Εâ9dðü(D9b¬²8‡°ÄçÎÎiŒÅ&fwþ€QheT¢E¬Ùˆf’-ÎfLæ~;ð"ÞœÉèq˜„– …&,ÃFÆ^ÆqtŠÁì&„Ñܧó±àaØø¥*î» ¿“r1¹î~vs ã3ÑWüBv;mŽÃ½-L@…߉]x?Öà0åΈÙb¾²Ô8§—sóóûµ0ª°+š°–ìÀ8Bù€»‹R1W4‹V‘‡e…ºÂðynvî!Ê仜r ñ¯ Òíx>‹ç)¯ã7dÞ/,9U¶Ê³ª¯ -3=+»½Î+ίy"ô&ÿU”›Ð‚U¸ß'Þûñ^ÃïxVÆ9áy"ŸÚÄ ñ‰„ì+¯aµ·Ôr•V{ ;žÉžÍÙg²§œ%΃Îçoì^ÂGî‹1ž2{LÁLÌFµäúV÷~<‚½Ø‡vrwïâÎ!+†°Ïñ¢B,kÄ“â8*¾”RæÉ¡Üó¹Y>NéGåqU  -U±£©‡ÔãêYãO­ç6Ï=û¼ŸøîÍÖdk³+³k³*çaç'NщFŸétÌ`·31‡'X5.×i}—ˆç~Fy¨^ÂA%¶ßã,ïÜ?Ƀßå!@&F‹21IL&Îi""fˆ*q‹˜Ãó™/b")Å:±^l;)»Äì£Ò.^GÄ1ÑI9%>¥|)=Ò'Ò’ÃeXVQæS’²F¦dƒl’Û(ÏȽ²MfÔdU©’[u¨ãªS} þn-Æ]Æ«ÆQã]ã”ñã Ožg´g®gž7à-ó®ô>å=à»Õ÷¼ï]ì'Ç?eOÝ?5X-’ÿÀzy#¿g¿âÛâ-9'±NO‘©§yoÇQÞ£„)c(—Qî!‡#(ȽgŠíÌŽ5ð9'´ÃñA̺x|"ëŒÔu ·N:Î -¹ -n8Ǥ’’*R4¼:63f·FÙáHœ”ðþtTÇì²3+t)Çu æk‰94‚ƨ®*³Yƒ%âét—gíŽtzPZºüŒÀ¥áÜDn^•Œh­vC­Vpž°‚V°ân5š×ëüñf0曾®;Ãc‰ö:—áqÿ#†¯ÿ6 —~+†Çÿ{†'óxÍpÙÿá‰ÝÖof/²|;õz#›È&z=úõ¿ËÜ¿Ä'=‡ùÛš{µ»ºGøUùW\ÿ_à݃uÞ2Ì·a‰ÜƒEÔRÎo66 œùô«9¾'Ë`p¾õ$µœ§æS§R+©ÅÔ&cîÓÔ=ºFNû©mØì[„ ñ ñ̃E«±'YcòiÑ>÷ ªBô§]¤c¾B7¦µœyA=r­^3—ñÁôµ}Ûàç¨×…8ß›uÚd™ÓÁ1¢^E…áöî|JU´}Gqñ˜9»î»qs]š¶A»ˆÜikGõë5Ì÷cŠñ9NŠ¸ïŽu0kŽS¸[<ŠÍz4渇äz«û:ߓƯ1ý¥ñu×¾³Ô÷©gºa»Tû]¢Mj,æçÎhõ~ù6ÊÕnç¸>GÐêëÄö·‘\1j"ÿ~gêèÊ©îµ·±Ó©QgQÃXþ¿H¯ø®ê*~~ÿý_Ûä!nÀÜ`Ž9£èLŒ|¤¹1äÑ\¢’•¢VQ‘i¦=×CÒ‚AJ˜(%f>J 5ŠÇz–&¨AV -ܾçÜs»ûßÿ½wÖÿÿ9¿ï¹çž{~¯ó;çüÒwÂö|šžCC¸W$®§ªt ­Ã|/àñ`ì#aw³øÃ|çÈŠ¡?<¹~B2®ËpÛË>j× -ý¢ÿ3ã’ä¼÷oÀÎ8Ð4Øz´…ǃ1,âuç½7-ÇÖ¤Ó‰xw¨~2Äû¿¶Ûùþ¶úrº‚Lì þ JæušÒ—ЕÞ~y${±û°ÆyFñ(¾Ùä®5ày?ÎÛ~ÛìOCÙoá;±²Ÿ°È9€ÿ‰ïbìç²¾îÙiN,   h .¾ •Æ&ݵÃßòXÕvûûŽ‡ì³û<°Ÿø/¯u£Ø¨J.†ãÜóÙ“³ó'ûÑèÆáÃîó9sªrQyŽQ l‘=.ÌEoí[9¶Èù,w‘ÇÌû®sêj\ª³{«ûnÑë×ëh2Ç)=ƒy|Ë9 ïö‹œh‹ëkð3ŽY®OTÙ}еóÖTâŽ7g¬Sº“j5fÖ™MD^¨µclSǃÊ0—ÑÀ!ø~ ¿5ñw –Uò;Ø[*º•ø¾yd/Ör -C_#€s1çVð,ãçvŒmóÇ8à*Ý¿±à/µBžâ`-ú™Í¶t¬­˜ï -Î5ì»ì;‰aÔj3wÐ(öqÌód>ó.yëÚc»º××®µ·þÏèw`o&ÛÏÜJå°[)ù«EæP–ZÜ‹9o lòUš˜:ˆñ”1ŽHͧrÄ°Z២)Œ’ïZh -¾©IÁ÷Gh<äe©ÐYNC2­4"³@l”e®Û# ß”Y\ -AŸç¦J¬E?ã\”`ê±g%l¿`5Îz÷›Œ#µJØ6#d·á»ì¡ØH½.þY"ñãˆøa¥Œ²ÔlªÄúÖÜGYàùÛ%Ò×**âwkÏÕIô-DJ»,ߤ˜„þéë©\úxAäÕž~:ëÆV”Zûë©ú“a¿±~ç$Äû9nÞ1Ã8÷$Æ›Çyye¬ä–ù7r‹äßZA9¿ìJš‘¹‡fð™)ê‡cT•]$çF°¸œªúÄϬïÅmÉQÎN_|ëm\êÿ%¿#Gûâ·'zÄM[v'ÆÖ.¹dŒ/ææÚñ¾«ò÷çËùãr7Ök 5Mó¯—§ØG2y°;o¹y.{›×øŒr]è[_. G‰#7*oùÖ³öÌmΞ\dßâýÎÅ°œçÃÈõÕÚ¢ÐÃüùyÎÅsòb.¶òWÄYT|þÉãªñÐËŸqÈg”Ï™óç[¥ÖwîJ¹u{…õ³mˆ#·w£NOÒc*ŸZ?å` >}l¦•Éjz$÷½¯êÞ§»]L˜qyöÑ[§z¯æõ£Ú-õõSÆñ™c2ç'ŽÓœ¿8Ž{è]O×Óã\Æ1soyŒã9ç$èO²ù"‘Ë8¦#‡À±Üú°úhçiÆÄfªõjz¾sòÑ{™ëÛnm~ow¾–»dòKCòF¹_×s+¹Ð7WÉav.OjNsë¦2ñ«›>§ûI,^ÐÂ5s4u6r5HúâݽGŒH^‹oõ­A˜êÌÎK \“$†9 .–ûyyïÖ½ìCr|©´ÛWœÕлÆõçHþÚֹߞ圳¥ñÌç¯Î~}žÞ+¿ôpW¯Púäõãý‰C_Ü—}”úI×ÙÛ¯VåÚTêR®A¹æ\Ã5 óduüÌ5§Ô™¨1µ¾¬ÅûŒZW²V©M#(}µsˆ)SC2§9é™NWºt9äsœCÜG>ʼL.9J]LZó†RöYêpÉéTêr‰ê˜0—<Ìå°KtŠR¦ä&ê`JMt:•º\B|éÜ”éÀX¯ëî7ó4Æ{@Æ[EÙYøf¾™…1Î’ÜEé§ÑOßLÃ7 ÌIèg0¨q¼ãÓu÷ÖÑ[κޘk½=ìÍ>fr1Þàt.Gß»1Þ‹A]yܾ§¨Ã%§S©Ë%ªcŠ›wa u6SGÑÍN§R—KTÇéƒðy¡­ÔÌ>—Ý/sŒþÖÆ?q ÷2¬ÛvЃ çcA®Ÿ>;Lð‰6¦<{Ûª$ÏrÆ@Øã6¦ Ö"ß<¹ßL³K¨‡Û²sio|5ë+¤6Ö·q¤sõÓíyøíJÏ)²üq?ç÷½%»wÿ#yû¤TÅñÍ÷\—ó>Ÿ\xoÿþoÚŠøºÕ%L|æ™Âö Çz ö&#ׯ"i'”¦ Lˆ´ÿ -ZKP§Nü+ÌU´ŽÈÁOÞ¯uœG»1!_çgðOØo3T0©¿ S¹+ëåî÷`é ‘ŒÈ•…Ë“ªïÉ߶}Ëoêê“ÈŽg¨tpIÉ0jѹYÊš…´cÈÊSXCý„ÿ'}|Pß¼Zý§>é  ’¼ú¥Šó¼KSaèhŽ“¶Ø.@‚r²Ÿ)Xáùb®ïT»»wÎùgìÿ{kÙ_× Z{€®M©®@ v.\{°åÊèÄØ‘”[®‚†ÄjU¬”ö¤í*Ë £êXÛ'$5Ú§X®–† ÖшPí‘É»"l×$£"´G[îT‰"ü?-Tûô€¤!ÂöXËAãéÌPíw$ã#lOHš"´Ï²ÜDDG—;;T{²â9ÒN‰°ËÿsÏ£©4Þ#üôPí÷*ž/í1¶/´ÜEô>å.Õ¾Ärï§K•kÕnQœ!mkÌHf$—EhϲÜlš#øšª=Oñri¯}0Âöü€äCÚ ’Gh·YîJjWî#¡ÚW$ #l_m¹k裂‹iQ¨ö’€äÚÛK’Eh_g¹Ó'”ûd¨öõŠ7H»,Â.ÿoTüÝD7Ó§…ÿL¨ö-ŠË¥ýlŒí–û­Tîó¡Ú_°Üi•r_ -Õ¾UñËÒÞ3’Û}üWbt Ý¡x§´wùÞ|5öפýº}þF¤íoZî[ôíØ‘tXî;ôÝXíïùøïÇjß­øiïñ½YGû^Ëý~k{åÖ¢rÓ^çã×ÇjÿXñ~i7øÞÜ—Gû'Òn´ÏDÚþ©å¤M±#yÈrÓæXíŸùøŸÇj?¢ø¨´¿ð½Ù’Gû1Ëý’µý„垤§bµü:BûiË=CÏ -n¥ß„j?§ø¼´/€~aûÅ€äwÚÛ’íÚ;,÷{úƒr;Cµw$»#lï±\ýQðÏô§Pí¿${#lï HöGh¿d¹¿Òß”{9TûÅ¿Kûj„]þP|7¼×è áÿª}Hñ°´ÿŒ±ý¦åþEÿVî?¡ÚoYîm:¢ÜÑPícŠ|¿5†¢Gbº¹„)ˆµ1z;5)iÓ1Úi³¦H°Øšã"´ûX®¯ém:ý-w¼«}‚b‰´¥1Ú-7È ŽÖ…NY@qo4öÆh*ŒÜM¥ª¸#šªÛÃ’ˆ{£±7FScô>hjCµ‡$á÷Ecê,7ÒÈ]ÑŒ2Á{¡§3: 95Âö˜€$ü¾hŒ½1š£÷AsF¨ö8E¹%šÆp»ò^oŒ¦ÉŒ7ŒÜñÌÄPm½÷™³¥cûËM1zÃ3SCµ§Yî¿Ü—{”ÕÆoÝ陞E䡈ˆ(( ‰b@E@|!"Å(ÊSQñɪ«¢¢,j#*à*Q1bäDLD ‚  $ã;1FMˆOŒƒ‘–í¢O>-[tŸ¨î“Ï›ûí ðäe«¿´h§ü)De5  (ª¥’ Ÿa Dµ vQì«x˜âÅ1Šç)^­X«x«¢OÇYþ?Ìièõh^1R&§q¬ØJ±­b‡´ÒƉŒ)Œ•(h}1E«i°Ê˜v®•†UZ¹‹bkÅ]SÆ*;$g‡¸“ÛÕâ®lc|w×VÃ6:N;ÅöŠ»¥ŒUötí-îív³¸ow7¾ÀJ쮣í¡ØQqOÅN)og ØјAÜÓøÁìdü°€{s¬ë¬á^ú[]÷Vì¦ØEvÖ¸»âþi¥0Âímñ(×Íâ±ÜÇøñÌkòÙGÇÙWq?Å)c•g¸ý,žèzX<5ƒ=Ÿp%zêh(öRì­Ø'åí¬{sq{_Á>Æ×<ИYî Ôßú†b?žÊ¤qÿô¨5;`?cjlÌÍɳÃç`=÷›Š‡¤±ÕÌxˆ1 jÌÂäiâs¨žû-ÅŠ‡)?@ãÃÓ£vV]ÀÆ, 8Șeîp é¹G(™ÆVÓð=Ò˜³Ò¥á`=w¨â0Å£‡èÑ£4>FqDZi#¬J—=ŸpG[¼&ƒÃ_çŽÑp¸Žs¬âqŠÇ§ŒUntÇY¼ÅoñO3x‚ñ/¡Ä :Ú‰Š#OR•òvÖ+GóFO2þWeü;O6f[ÀÑJœ¬¿8VqŒ2£5>Eñ4Å3§¤•6Îdz=à)JŒÓúSS´šÏŽ7f‡;MÃñZùmÅÓÏH«ÜéN·ø¯¬ ñ?28Áø¯Ü™NÐqÎRœ¨8)e*%Y]âÈM²¸˜ÁÉÆ·8E‰É:ÚTÅiŠg+ž“òvV»€ÓŒéÁ³ï”ÁsŒïpº1ÝݹN×ß:_q†âŠçéÑs5¾H±:­´z&ë_ˆ{» ,î›Á ïï.ÒðBçbÅK/M«à.±x»ÔâÁœiü°€ÕJÌÔÑ.S¼\ñ -Åš”·³Ž x¹1#2x…ñ£2XcüØ€W3Þ]¥á•ú[³¯Q¼Zù«4¾.=jgðc&¼Ö˜©î: ¯Õsg+^ŸÆV3=àõÆÌxƒ1»9Þ çÎU¼QQÁÍQwszÔΪx£15o2f;Lò¹IÏýŽâ¼4¶šÙçSðcnNv!>·è¹ßU¼Mqâ­zt¾Æw(Þ•VÚóÝm/Hv°/ÌàíÆ×¹;4¼]ǹSq¡â¢”±Ê¥ì~ ñ2·Èâå\lüŠ€w)±XG«S¼[ñÅ%)og­ x·1«2xñOdp‰ñkphý×waGc‹7×=¿;[B>?vvù<ü÷±1ØròÛðñ•ØiäwâÇÃ&lNljÆ&‘/Á?…­Æ¶’ÿ¿fh}}gü ›ëë¿Ž|oüKäyüFl öyÇöÇz`Ègâb·c}Èkðƒ±EX?òkðwc+°:ò÷ñÿf -’qþŬ&{mÒ­ó»õõäÉ~˜(›dKTE²«&º"Y¥:Õ:ÝÿªÂ9IG;Ÿ¬Õ.}KÖâ“uá]—>áϸôÍfoTµ³ Ÿ¼§sÂÓô¼ÓÝÍ}„ý¥6Y'û›ÓµÄ}Fžtpüßd%q_Ów±†8aåv@ž7'ü†ÐÈzò¯ñìí²ÛTërôJ9úýVŽu4·ÛŒ=AνÍmÅžÆ~BμEìµ¹—ð]È;B•ä^ãrŒ¡rô[*#ǼEôû9º­u‘ãÚs/Ó‘çÞ«M„®Ë½NNÇûˆ"ǵ帿¹ß“ÓaDܯèŒùŽ¸öˆÞ7zCεGt¯Ñ0ž§ˆyˆ¸÷'¢WŠØ_¢a¬,ѳäày¶òÜçèIrž‹ègäñO“NŒNËóüäÑzyžÛ<«~ž/ϺŸçýȳ:åY‹óóÉ7„x'v?ùzäÿé\ç¡€²Ê3':œBræªÀœè] -»‘£n -ÌIy(t$G¥è -tž‡Â½xÞÅÂ[Aá<ÿ·Àý/°˜§Âï°ضZóîÇ< 1½i<œœ#¦ËŒ™¯˜Þ;f׋ÇxŽâUäÌgü$6[Mλó,ÄìÄñZr–€xCc¼¿1¿3¿1÷)æýÙËbæ7æ>Å[É™›øç: ~‘œ]1æÙ‰Ù7ãWÉÙËbî¿ŽûKrv øí$ÆÞ"gLjY‹bæ<þ ù÷ðºt\žïøA<»zü)Vrvç˜û/%g>ô?±7ÆËÈÅóÌÆÜ¿¢¯uEÖŘ{W¤W.æÉÛ“ó éWŠUä{sÿâzò]É÷Â3Eî_‘.¬È½(2gEÖ°â ræ£Èœy‹ô‚E~»È»Qü{“üK–cží*Öé*e÷¢Šµ³Š5©jù™a=O?iä-Š,*„ŠbðUÁ·ÊœÿÿúñŠ»„¬MðmƒoçZÎ5ò¼…ké`QG×r®ý¦Å\ ½A¸–nïü¾ÁïçZÎÕöÙÁ÷ ->éøZÊ5Ò½…kékQ?×r®¯¿k9×B'ô_ö«:®[‰Žä'Ûaff&ŽÃ33³C“ÃÌÌÌœ´Û`lƒm° –™Q–Ç:»~ë}/‘žÿù{bE÷ŽfîÎõ¬sôvq–R˜/-3edTkd¦¢ŒB°VEfªÊ¨:ÖjÊL¨Œjc­.r=äúà;ïn<5Fn‚Ì¿»ùÌŒü³ÎÒRFþ_¢æãŸY}f–=Kgu•Qwõ”Qo|}_ä~Èaà;ïJ< BŒÌ¿ÅùÌŒC z–á2 ¾3ßhðYÆAô,0? y2òði§âiòLäYà;3ΆèYæÉhøÎ|‹ÀwfY -ѳ¬Àü*™Y-£µX[/3d´ k[df«Œ¶cm§Ìì’ѬíCÞ||çÝ=ˆ§Cȇ‘€ïÌx¢g9.£“à;óß™å DÏržuf]X7Öõf}X?fœ1ÎÏ狈g8Ÿã‘kåß7Œ[ÆÄ›Æmã.â ηxäZ¹cÜeÙ`Ά²al$ÍÆ°q,‚Md“Ù6Mg³Ø6—Íg Œ'Æ3ãâSã¹ññ çg{pߤ} ìöù1| -ŸÁxªÜÑÛz†üÜQ—èõù%|_À—ð•£n_›2ß8èö­)óƒnßËè]¢×2ú)Ü~ø‹[îWÇÜ~óZý]³Û2úÓCõ/ÍnËèÍ=­£8ò¡„âç® †>7 0O ùŽGâËj½³‘DȉI½=º%õZM¦Ù-¹‡\ -ÇfK)0•Sýc¸¥FN'niM™t|§'qË(£Lq0[fe‰·¬n§l»ew;åä;‡ƒn¹L™Üºå±­Ì«Á-ŸÀ‚$?)@ -‘ Rœæç"¤¨IY‚Sv+i[YJÃlÁÈ¥IR–”#åÕ{zq« £ŠÈ•†˜”•5¸UA®JªYj«+»Õ0ejªÏ«[¨)SËA·Ú¦LÝê -¬gCY_ƒ[ÛʆÜ!7&MHSÒŒ4WïéÅ­…Û©¥“^¼+·S¾[;èÖÖ”iç [{Ù¹u”Q'¾»bÜÙEÑE£[7·Swgf’ý{xÌötÈ­—Çlo‡ÜúØVöÕàÖ9Œô'È`NŠó “rˆ·¡¶•Ã4¸ —Ñ åH n£GÇÈQïíÁm,ò8ÑøŠ Ý&ÚVNÒà6Ù¶rŠ·©ÈÓÈt2ƒÌ$³Ô{zq›<‡ÌUê3Ì·¡Z`Ê,$‹^Ãm1YÂq©…jòr²Bi¶•d• Õjä5d­Š›è±Ž¬·Pl@ÞH6)»m&[,[U=°Ï6²Ý†jòN²K¯W·Ýšúì!{m¨ö!ï'â`¶ƒÈo‘·•{"‡-G4ýÖGÉ;Y¨Ž#Ÿ '•O‘ÓŠw5Íö9cCuù9¯äv\´¡zß”ù€\z ·ËäŠ ÕUäkäºÒl’l¨n ß$·TÜDÛ–Š;ÈwÉÇÊnŸX*î!ß'TÝlü>5õyDÛP}Šüy³=E~Fž+õyA^ÚP}nÊ|A¾|-¿¯lh¾Fþ†|«4Ûwä{ª$?©¸‰?[*~Aþ•ü¦ìö;ùÃBñ§ªöù‹üÍñ Õ¿QL*;RJý,†žÙ(£þ6TzÜ°[ E=r|š£„4Ñkø$¦IhRšÌB•\ël),ê)‘SÑÔJ>ihZªtÈéi%·Œ4“ Ufä,4«Š›è‘f·Pä@ÎIs)»å¦y,yU=ܺ峨çG.@ *ù¢…iKUQäb4Hç”±¸×Ô§-iCU -9˜–ŽƒÙÊhíVÖ¢^¹<­ äS‘V¢!´²…ªŠÖÙªZÔ«!W§5”½jÒP E-äÚ´Ž²[]ZÏBQ_Õí[‹zCäF´±’OÚ”6³T5GnA[*¹µ¢­m¨Ú˜2mi;Ží_Ñ­íhCÕ ¹3í¢4[WÚ͆ª;rÚSÅMôèe©è܇öUvëg©CîO(» ´T BLÃUÝlü>C4õJ‡ÙP GAGÆÁl£GÓ1J}ÆÒq6T¦Ìx:ãÄWt›D'ÛPMAžJ§)Í6ΰ¡š‰<‹ÎVq=æX*æ"Ï£ó•ÝX*"/¢‹•Ý–X*–ªz¸u[fQ_Ž¼‚®TòYEWÓ5t­…jÖÙÖ[Ô7 o¤›”½6Ó-Š­ÈÛève·t§…b—ª‡[·Ýõ=È{é>%Ÿýô=èUƒ?!‘à‰ &˜R`éæ˜O`aÁ+ ¬&°¶Àú l'°£ÀnÆ &p”ÀN8Sà"K®¸IàV»Ò¨YÖyC?R¡72þ -Œ¥‘=ý€ÉØ?Vô—šx ã„(ã$¼'GŒ/3©à?öË8ªêŒãÙlh7² MBÈk ìf³Ùìf‘÷KTÀ" ‚ òy?­¸¢<}ðFD@TphÚÚÚ©ÓV§­#­­ÖÚÖZkÇjÇŽc[ÛZû¿ÿ{÷2Þ(3HpÎ7sç¿ß9÷ì¹çžóÝïäRúøïy6µ6 ùªËΉlžÏ~:…¤Ÿ,²ýÚg7‡…ê©¿ê 5^G÷bÕaéHYÌÞ:ÙÔÚzé¬:&](;³MÀ¦Ö&¤DuJJ)KئŒìJ–“ÝÈ -²’¬"«É2hß«}ö–®ªû¶Èrm3À…Ý´vp3V¨˜Tª¾ó—Ñ#¤ZõkÔs%f7£ÇµÈîÚæj©¥ìÎgìaSk'IOÕS$DÙ“mÂd±=ÚršÔ©¾^"ªgáfô‰RÖóÞ2F6’q2A6‘I»¥öp#VAF/pبžÅãêYæ„֮”&Õ7KRõš™Ò6·I/ÊGxÙ›¼˜ìCö%û‘ýÉv{íçŽÙ[Ûl‹Uon‘}´ÍÝÖztôVé§z‡ôW½ÛZ•Ž¾Ïá@õì—A”9ÚÁ6µö¢úp3fųýCÙ|ûF^B'/µýÚçC/QÏ#2\õq쌌~\.S}J.§¼Œ½ GÚZÛœ–‘ªŸ’QªŸ¶vlÛͦÖ>#£U?‹ÝfÙh¶CŽ%Ç‘W‘ãÉ«É äDry}¯öù«ú‡-rœ¶yÞ…WiíOšq¼ú_ľÏè32AõË2Qõ+'©ç5¹Fõo[ädmób†e“ùŒ×ÚÔÚ?ÊTÕo#fX6•m®#§“×ÛmùŽLWý¢KF¿/3T 3)gðÞYä älr9—œGÞh·Ôþ.7¨þÈálõüÇáõ|â¹™ÚvY2Oµq+£¿Ò"çk›\ÞÄÊùór!¹ˆ\lûµ‡.ÔZ¿ imG.ÖÚ.—¨§ÔáR:–p$Ëlj›r‡ËÕSé¬\Î{W’«l­wÕ¸p•ÖÖ:\­ž ofåjöüuòríÑ{#.¼EkšqúãÍx«ú“ù'r+‹Ûlj›‹®UOÞÎʵ¼÷r­õ®þ.\§µƒšq½ú‡ºp+׳ÿä&[ë]Ã]¸Ik/w¸Y=£äNÊÍìç.ònòr ¹•ÜFn·[j£ñ}Ëè±.¼GkÇ»p‹ÖNtáV­ìÂmZ;U¶«žÞ"wh›™wÒ±ƒO´Ë¦¶™íp·zæɽ”»Ùry¹—ÜGî·kõ®›¬ï¹£¹p¯Ö.uá>­], £W·ÈûµÍ-.<ÀÊû9Âȃä!ò°í×Ò.<¨µ·7ã!õ¯oÆÃêßÔŒªÿ.‡GèxcxȦ¶ÙâðaõlwáQV>Ì{!%‘Çm¿ö°Ë…jížf<¦þ}Íx\ýšñ„úÉc”'øï“O'ÉSä“v­ÞuDžP}Ô…'µö˜ Oiícò¤ê“-sÀ'ÿµöÆ+iɲN.¿Áõ*´uùˆ§±ì…(QçÁi,ßê<8¯dã â©·~C#ò{³^‡F¤õàâé‡óô¶ê ±^<È€½kÓ’óJ¬/¢fÎÏP®±~C¿„r£Óæ(A¼Èås~…ãô"åüå.G¿ŠñÓ»ÛÑxk^dµ9xâŒ÷ £U¼Xã9x&/ÖVûwÒòUœ­Ú¿'âÃù&ÏåÃ8}È‹s1N2`ßPhŒÑ‡ׇ9ë×7Âiƒ•ë-’78-ùχ3cÈÃ.ÊÃ>+Ä9±`+®·ý6®Ð8ýü×_¡1—ˆïB‡-®¿@c^ þ† ã/Œ¡?¼×‚Cã„•wúchœ˜ -íø1¶"̹có#_.Â8ýÈAýÈs‹Á:”@çBã:tÅU xâG”ó#;ëø–H1v`1ÖcGÌU1úïôQZº`œ>Æõ/hÌUg,‰ž·Ñ+€ù `~J«˜ŸÆP‚œ!p…õ1)p¥ãG -`~!%˜Û²ùòî|%S¬:h|ÝÈ2K±ƒË°J±žK±ËΠ\EÐXÁê0þî½Ðæ%X ü¥ -ó B#[ "«ÅØz`=×blµÈìz`œµÈ±jÓÐøvBÇ¡BãTĉ°bu-"p-ò‚л"=Ñ( ùa]†7…0!ìÙ¾„!ìÙÐû"a¼ëp_”Ùøý!4úãÛö9s·FvÆÉ!Œñ„ñÎØó0bH]JÌQø%h,¼:|Î1ÜyZ¤óÁ»®ÇÔÃ_ù©Ÿ‹k%4ž½þE\è?Š±G1§Q¬ç(þ7Šýí xE.=¹Œ"þD±&£È±£øŠD±O£?ih‡kLZ°°N°N¾ë ô‡(ñ ?†þ§H ï;†¹aOÄßÄ8±.†}Ãþˆá}Ç0Ï1ä51Œ-†Œ#†Œ&†˜ÃþáÛãÂBnDžÛèÃUùkÄXqRiÄ»nD<‡ ?@‰õLjãùâ؇ñ7¡ñeˆã}Çñ, ¬µör§ÃÖoó™ÀÙ.³@ó™ÀÙ.u”ø®HS!4æ¯ ï¬ þ&Ä·&œ—š^€Æ»hú9®?@#¶%1¦$âCr¼£@#n%ñ>’ˆ{É (±þ’ØËI¬ýÎ_©®iI!¥°GRXÿ)|gRø¥–Bãý -æ\²äB1Ïù€1cÆZŲUyÅÄ%cÆŒµ³âRU.™Gæ;µVœ* *$ý’‰]gÇ„li»æ=ß0fÌX«˜·ŠÄŽH%ô”‘]Ér²YAV’Ud5Y#&3fÌX[0+ -:ºyáÄ%cÆŒ}ÍÊ8B’‰HŸ6+FÕSÅÈF2ÞÚÃ2f̘±s4+z%¨’bÎ|ÆŒk fùRT}Ⱦd?²?9€H"Qƒ3f̘±Ï5+Ÿââ&™sãÙÙ–•Ï §AŽ“‘3f¬-˜•‘¢#&.3f¬-˜—ÆRM—Œ3ÖÌŠK©®%§’ÓÈëœ6V´šN5ƒœ)™vvdÈnÕqþæ=ß0fÌX«X®YbG¤ùô, ’‹ÈÅär)¹Œ\N® WŠÉËŒ3ÖÌʦV9ºyáÄ%cÆŒ}ÍÊ8ÖH&"}Ú¬µ–j¹žÜÐêã2f̘±s3+zm¤Ú,æÌg̘±¶`Ö™ïNª­ä6r;¹ƒÜIî"w“÷~Qƒ3f̘±Ï5+ŸÚãâÛ+™sãÙÙ–•Ïì§:H“‘3f¬-˜•‘–LÜjë–ÅXtT.¬ñ— e¼Ÿeÿc·:à«(žðÌî,EB1„Þ)‚4)ÒKè!ô^Bo„^¥ (U:***D)ÒDP¤( ˆ -RUª´ÿܽû—ç#0oyïÏ ßÌ·s{›o–»çêWF=«Á¿êY®zÖZ1ÆŠÀ¿êÜþUÏfpÕ³ |¥.×y°|Kïnð½q]Æ{³ü¥’àªä ¯Tæz§Ž€oé=¾¢7®ËxsN‚¿Tâê§Á¿ê9®zΛ™‹¦¿¾R£ëk¹ ¾¥÷ -øŠÞ¸®ûïÐ ð¯znm÷Ä_®·ÊóE\„QY1‰q“™>9øJ•q]öÿ¦ÿª'•A0|¥ª{Ó‚OU‚Aà[z³€¯èëâ÷CÀ_*ÉþRInpu|V,¾R™ëë(¾¥·øŠÞ¸.ãÍ)þRIIð—JÊË™¾<øIUàúÝTü«žÊÁjà+UýÛïÀê²–¬!ëÈz”Hˆ²¾l,›R1JŒ³d=ÙT¬ëd+ÙR¶‘ƒe¤lG)ÄV±]ì{d;•MgÄJG²›ì"{ÈJ-n‹¥â.IBL+Åb1™ó™(ИGA“)Ød L')„‚enÊ©rʼ"ZDŠÁbå¦ìFžrL…ÈÚ²¦¬+C)±Ê*ɲ‰ £¤b´)fóÝP&bDŒl-Ãe[ÊOd{J)¶‰b¯Ø+Û«ì*‡8!Ί³”žÒÊì){QqG,÷(£D)űJ,S8Ÿ™2ó(£ÁdJ¶´2ƒL/3P6Ê*óP.•KæÃÅP1DDQÊaä)—ÁT ÕR…«6ª½ê :ª.T—B©m¦zTŸÒf[¨…SKjE]©;õ¤ýÔzP`v@uW=T„ê£ú«jŠ¤!4”¢(’†Q4§‰4&©(­F¨Ñjœ¯&ªÉ4‹fÓZBËh¤¥´œVÒ)f§è]PùT~U@RETQUL• ªTjR U£T‹ÖÓ%c ք¨)5£«tÚR{êH;©u N´‹nšÙS¥TiUV•WU%UEUSH%QêG¨/õ§4’FÓ(£jªZªŽ -U U#ÕD5SÉ©¼JEShÍ ©4fªt*æÒ|ZHGh- EtT™Ù#¸•?Øõ_ÜF&€Ä "L®0m9ÀµÛ‚å&~§Ñ´D2@FÈ ÏC0d…lr@Nȹ!äçà(/B( -Åà%(n=é²ð2”„RPÊ@YxÊAy¨¯BE¨•¡ -Ïx ªB5¨5 &Ô‚ÚP'ÖóqYÝxÏŒmõõ¡AœsB£G\ý©%¬%æ74)$ƒäRÂ3ð,ä…TP‚à9P|ª±›1š3^wÜkÁhi²p+Ó -Z[¬ £-£c~{è`±ŽVìdßël³&ÐÔŒ©¡0¤á˜ B š¹PÓ‡™¾‹é»2ºAwè=™EXkô²WëmÅ>VìËègñþö¬½›M?ˆ1†@$ e6̺eÏŠ¶âp+Ž`Œ|è¿õÔžšØ(+˜>ßC<9ÆØ<-¤c?ƹÍïøÕ ÿøÝYÊÓïO>ù€{57t†ë|Ç ™ŠÏFãJÍ'QGã/wö@îíAÜÝ3qÏbuø·Ÿ—ëËovù‚fŸ/lwzà^ïêï¥-%ž{ü?;|]îÁ¡f6úlcó¬ ã³¹9ŸË-ø,7Oà6|ò¶3OÛŽ|Âvæ“òé¾xÞã­éjúnÚ¿'ͺÛÌè­ÜS{síËݳ?÷ËÜûîw¾ÿ'æ1e³hGvxëø›pð‘öI?Úôc<Ì«]±w̽K¹l¼é'0&9²“ohWð6ÅfSaL‡0Þ„Y0›3sàm˜Ëq,„EÖ¬·óóµ+OX{Çcv±v]ºm‰ƒ/…eì—à -XiŽWy˜ÿ®vÅÞ±÷bÞ·âjø€ý‡Œ5nó?r¬½‚„±Olö)¬…uëa|9ó9l‚/8n/a«Ûs›µ+OXÛk´]»ž'Åv8øWn÷v2v;Æ{»´+öŽíuð¯ÝîícìwŒ¿e|Ã8 ]uÂÛw~ÐfßÛìv…zì°ÍŽÀQö?˜üGÓcœpÌ=É8ÎøI»ê„·S6ûNÃ/ð+ügà,üΙóp.r¼ÀŸñ\ï\Ö^Óa9ø›]Õ®K·]sðë6»aú›Œ[&»wÙßfü­]±wìÞ}îúg2azÉH{>ªø®Œ¤½¶Ç0Lì1›ÄôI)ÙgÉ)ãµr2ݵ=Ö¾‹å×­PaÙ° nez ÙìE,ŒE°(cþ·²%/ëV©a_J:x),m±2¦/ËxÅq¿œnµ^Ü—ò6«€¯bE¬„•± -¾†U±VÇXkam¬ƒuu+õò¾Ôó˜ µY}G¶nµÞ3lèఱŚ˜¾©‡ùaº{Ç°™ÇlsÓ¿Îhéȶb´`„ëVí…}im³6ØÛa{쀱væLì†Ý9F`/ìmÍêÊèÁè©[yïKÙ¾ºué6ìçàýqû8›ã!æGêVì¥}k4ÌŠQÍ~8c¤ãîhÆ·çGé® öeŒÍÆâ8p"NâÑŒÉ8§rœŽ3p¦ÛsÓt+Oà}y3ÖhV¬ÑlÝêôÎqð·Üî½Í˜çÏgÌÕ­ØKû²ÀÁºÝ[ÄXì/e¼ÃX¢[µöe™ƒ/·Ù -›­Ô­Pá*›½‹ï±ßä«Mÿã#ÇÜ2ÖèVí…}ùÄfŸâZ\‡1¸7àg¸‘3›ð ÜÌq nÅmñ\ïsüRwMÿɾlwð6ûJ·.݆;|—Ív›~ãk“}ƒûÙïcìÕ­ØKûrÀÁ¿Åï,vÐôß3Ž¸Í?ï•é®í±öå¨Çìø#ûcŒŸÙSŒŒ“ñZù¸îÚk_~¶ÙiüÅßð žåÑïx/àE¼Äü/¼Š×ÏüÁøóëÇ+±Æ—uWøˆûrÝm|Ãm|S·B=†ÛìÞÆ;¿‹÷LhW¨Ç„𘕂,¦t+Ôc"‘Í‹$"©H&’ÿý2¯¢ºâøy'y/ $/ „@B€@Ø’<ö}ß÷}ß÷]E±ÖeJ)ZEÅ ,E – -Š " RJµÕVki­Ú~>ýÃÏÇ~ª­-=sÞÍqÌôe}wâgÎÍ|gÎÜ;÷Ìͼ{ç’ŸŒ)äh*iº³Ô0.é¿ÖV^³™–ëuugÃq©'^–î\ÜT0[¼ú˜£;Û h鵡ÅoÄÌÕ=n(ØØâ7Ñ{ -æYü¦ÌfºsrCÁæ¿…îlÜS°¥ÅÏ×{ -ˆ× - Y‹°XwVŽÙ†°5¶‰IOmÅk‡íu?wÔl;`ÇõÔI¼ÎØE÷sGͶ+vÃî1驇x=±koìCì«{ l³í‡ýcÔÓñâ ÝÏ5ÛÁ8$F= Õý¬eÌwXŒú.ÞÉ: -GÇè‡|ÇƨŸqâÇ ºŸ:j¶qNŽIOSÄ›ŠÓX§ã ÝÏ‘ál‹?g᜘ô:W¼y8_÷DÍv.ŒQO‹Ä[ŒKt?·m†Ë-þR\†7ŤכŻW°ÞŠ·WêÉk•Å¿¿£^ïo5®Ñ=Q³½¿£žîÒý¬eÊön¼'F=Ý+ž?`]‹?$Þ§{ $¯û-þ:\£^7ˆ÷#ܨ{ l3ü±ÅÄM1éõ!ñ6ãÝc`›áÃZz}Ä&¶•ŽGu‡Þ‚YüÇugãž‚ÛÄ{B¼'éxJwfz >m{†Žíº3Ó[ðY‡øsº3Ó[p‡x;•îÂç‰?љނ»-þOugãž‚{â/èÎLoÁ½7Döá~âÏÊy¿u?Qåü¹Cü€îÌôü…Cü%Ý™é-xÐ!~Hwfz ¾ìEwfz vˆ¿ª;3½ØÄŽÒñšîÌô•õ6†É8f<ÓÏ 0˜‰Ì$f fMf23…d¦2Ó˜éÌZÌÚÌ ff&³.³3‹™Í¬ÏÌa6`6d6bæ23›0ó˜M™Í˜Í™-˜-™ùÌf+f!³ˆYÌ 1[3Û0Û2Û1Û3;0;2;1;3»0»2»1»3{0{2{1{3û0û2û1û30213‡0‡2‡1‡3G0G2G1G3Ç0Ç2Ç1Ç3'0'2'1'3§0§2§1§3g0g2g1g3ç0ç2ç1ç30213—0—2—1—3Øž3'>V!㥗øú%pd@ê$Fa‚Ô¬QåL”¾’!Iü`©XC꧕Š5¥~­*a²Ü?RÄÏtdPêÔ‹ÂT©™Á4‰ç”™éÒ¶a²–ô’«X["MÊÀ iÕ´T¬#õ›—Š™R¿eLYWú-P¬'‘Â(Ì’šÅŠÙi]fÖ—¶m£0Gj¶¯B6^:F°¡Ä;;²‘Ôé…¹R³{•³±ôÕÓ|¯•ß»TÌ“ú}ËÀ¦Òª%³™Üy bs‰ vd ©34 -[JÍáÌ—øÈ2³@ÚŽ®B¶’^Æ*Jd|X$­&–ŠÅRr’VScÊÖÒïtÅ6™Y*¶•ú³#ØNâsËÉör‡ùQØAj.4ç'å/Ž`'‰/Uì,‘åÐEü›»Jdtÿ6sQþí¥b©¿Ê†=åêjGö’:w–Š½¥þ]6ì#Wï1ç'åQØOj®ud©s_8@Z­·á@¹º! -IÍeà`iõ  ‡ÈÕMŠC%²¹ &­ŽÂáRskGHü1Å‘Ù£Ä2‚£%þ´â‰l7çEåÛý“«;͹PùÏÃñwÛp¢\Ý“ÄßkÎsÊßSÄÑœ‡”¦‰ÿ’ât‰‚â¿Á™Uq–DŽš³‘òÙpŽ\=aÎ:Ê? óÄ?eÃùrõ4,ÿ,Í=%þ9X$þysRþEX"þ%sRþeX&þšJüw#ÙëÚ×½~íÚUÒG @ó—óOÒg|“H÷‘Î2 Žv¡¾“øé>ñMHo"Í']CÚô=Ò­$ÒLø)ÍPÿÒ;’0ƒôß¤Ç H¢7 ±.éAÒÕ$gÓFñcÒ\ÒO ®HAúéRi† ¢éÛi“·ˆôKÒ7 ¨EïnzRzKÓAopí¤ÿ =k@]zg2[’ Ý@JÿÌÍÔ£½@ædß 5ŽôÒ©¤ôÛÍZHú9é[4 ûæ‘Ò;–Ó™ô0é6Rûœ¯HiFo0–ôéAÓj‘›MJ³zncòhp›P¿y_‘~h@Sú]äõ0 ù€f; hA»¾fßÒÿ±ùhÒ×H÷P€´q ü -è-ʧûÐ/2<)=_þaÒ'H‘Ò¯1ÿéfÒ7I·ž1 ÿ$é9:§XAˆ”ÞŸ‚õ¤Hÿn@+çVýIo%¨ôÒ3¤_PHßf…ÓHin*™ó¯öÛ'›ãÜsœlùÛ‚îöüæ7¿ý.ŒYàî‹&ÿZÎ/Ëé_ØûíŒp”YC+aœÕ/a¢Ì“Àõ[.?›ý!'ƒ¯¼5¹Ú8 |h¶6 -ó ç/IhõwÓä ‚­=.““]¾²¾Ž=t5øÐúÚ(¾÷Â. 07€½Ü>4[œóßjàvð•±aþ^ÜY îz+ø!8î<{àÞXû½àCkï‘ËþG|¾ò4:#üF•ˆ$|ë b¿3Ùƒ¹pŽï#ÆòúƒÌ?fë•÷¸lœ’ù´Ìgd>+ó9³Ÿó.þj”K&{Eµ_rÝÙ1¡ë($‘ä¯e’9Xæ™Ce“9î‰÷CT6ÂÇ𼊄‚Ö@OèEC1€[ÑkBð þ‰¶Ðë´n`†À-èM;1ŒÞ¥Ýô>½ Ÿ@ØÃÝ0£0öbAZ‡±Ü…öÐ^§ù,}J‹°0íƒËX„fá8L¡ÏékZEßЗôø þÿÄâX‚²à*|JÃ1³è¿"‚ÏóE,KßÓœDÿ£Ã˜•q¥“tœNÑ:G‹±:ô¥ X§Ð%ºJ—á ØûaÖÃô"ôÃF4’æñÅ;øg¾Â‚° a œÊ!Á×ø¶Âû8 -c\ã.‚íp¶áDNådø¾„¯°>ˆ ;cÝx(ã’œ&’yßÈå¸gr%ìÁÕ¸ -×àZ\‡‡Ã ìɣ鮻x¤(ƒ½¹ö…£Üˆ›ÀèáQd4h- ‚ÇhrkÚ, >ɧh+m£pƒ1Tþȧ]NïÑ[ô½OÂ0˜»c$Fc‚…h=ÆqWú˜>¡|†ÏÑg˜Œñ´®`ÍÆñ˜J_пh5ý›¾¢Ü †ÁPŽiX’úÃ¥¸?}+"ù_Âr|œÒ\œL‡èfbœHÇè':A§é,§%XFÒE¬ƒÓégºFW`4Œ‚1ðÖdžôŒÅÆ4Šæó@Íoðe¾ÊbSÆ–8C9’¯óMl÷s4Áþp p7Çö8Ûråã`>€ñ!˜ˆcWƒÝyçt.!RøM‚¸ÌGEÉë©ÎѱçÉ*$˽=^æäÒµTjº@Ôä†w”ï0ÞŸþ_RD«2XÞ  -ç±— ·ÞPú0·ÞpÍ‘ã‘‹•9ä7_ò'úãSÀ]Ÿ?Ýû) -¸´â  F[â­zHPe"$åÐ$CÊíoB…,oq3ä/:PžÙ,sˆ<Ãd.ç©Îà9Ÿ;wÌ#Öz¢¼­KAó‰ózˆ7W)¯ï%Á,óŸd½¼Å§*,šçùËÕ.îe|šÂ’f«„×ã§çj—ò2¾t®v/ãË*,o¶Êy=ÿ -¹Ú^ÆgæjWô2¾’Â*f«²×󯚫]ÍËøê¹Ú5¼Œ¯©°¶Ùªåõüëäj×õ2¾ž†« lãzd)llßDÃ5…f¶ã7×p- ¥*[i4­=2÷)¼ßfü6®-´Se{æOîÏÐÁöùðÈ<¨°£M|' ÷t¶ÿa ׺ÚÆwóÈtWØÃ&þ ×zÙŽß[Ëö±ïë‘ÉRØßÅÓÏj€¦ï0ÈvüG5Ücð¸müZöIÛøÁ™¡ -‡¹x†¸Q ×ô=Fªr”F3Zñª|J£§}ºñ¶Ï?Á#3IádÏD7ª)š¾§Â4Ûñ§k¸0Ó6~––m?Ç#3Oá|Ï\7ªš¾Ÿ†glÇ_¨áž…E¶ñ‹µìÛø¥™e -—»xžs£Z¡é{%¬²µ†[kmã×iÙõ¶ñÏ{dþ¢ð¯.žܨ^ÔôýlPåËÍ+n#¼ªÊMÍkÚ§Ûlûü[<2¯+ÜæâÙêFµ]Ó÷xÃvü75ÜNØe¿[˾eÿ¶Gæ]…ï¹xÞq£z_Ó÷ð¡íøÓp‡´±¦5pOp`€Â`…a -#Æ(ŒSXXa‚Âd…E–PXZay…VUXSa]…äwWUIù…-–Á°ê29ÌPš@'Zl0Yõ0ÙrXÒ„8Ñb#!ÔªÇH­ÃB•&܉V½°ŒsX„ÒD9Ñb Úª'Ë^­4œh±E!Öª§™§±JYЉ–&ÝÄB–§L,¬Ü…TT¼-eùXÄògš˜ ETT¢-Me“,O5“•#IéSœhijš˜jyêÈ'vXªRSXÜY·4õM,ny™˜fyšB UMS±%¦;ë–¦EL·ü­s`)ËßJ«j)ÕO…euKÓÞIJ–§ƒ‰å,OGÇK+§b+(ÌpÖ-Mg3,OW3-O¨¨ª™*¶’ÂÊ¿°_àQoŸ !éMªô!@ ôÞ{QiÒ{ï½IAš4QEAE  ˆ‚€½!¢"*( -" ´øí»ër;{÷pá¹ÛïÌÿŸï™ß|ó27óÎܲ3gäVŸž&+YJ“Ñ–ÒOTFÏVcŒÜê3ÐÆKbcUK®·ôWãTãŒÜê3Êdœ¥Œ5YÝR&ˆH«ã³5Áx#·úL6o)Ó Æ'ÝlŸt{qbRÒª—P»9åǨnIíå”ï¤zµÛR¾‹ò8*k“nO¦º&•u”Ó8·kSÙHù8ªëRÙLùDªPÙFùpªõ¹¶S>ŠêfTvP>ˆj}®”¥z•Þ‰I7ô±÷RéKyÕ‰TŽS¾%>)©•Š‰I7#¨žG%†òpªR©FyFªi-Iñ”GQ½œJåÙ¨^Ie™Ù •ÆfÿõTšQž™êMTh]7³R½•ÊnÊiçñnËMù)ª‡R@ùIªGR)DùioH¥üŒÐ¿!FS~–ê)TÊP~Žêú3IùªgS™fæóõçòKT/ÒŸʯP½„ÊʯQ½œ -íí­®T_BKGùª»SéDù>ª{P‰2uzšµ¬”¢º•^”¦z•<”¥z•ü”ŸwþŒ³Ì8WŒÅ8EŒóÃ89ŒÓÂ8'ŒÂ8"ÌÏg0ëHk¼ÿòŸ¾Q"¥¬D?Aõ•d7ëœfÛ¬“+¿Ù*`ÖÆÙSX¤”]ÐÏÔ±ãtÖÏY}=¥ÌÚ8GË™­òfmœ~Ñf«²YgV¬H);¢Ÿ£)c%Æ _Kë©mÖu Ö3[õͺ¡,AQ’b˜/gȲ†¬/[ÈŽ²ŠŒ‘±²š,+ËÉU²‚¬(WËþr€$˲§ì-ûPφ²‘l"›Ò§âe-¹V&È:r4QN’SäTu„)GË14bgÙEv“ÝiôV²µ\/ÛÊvr͸H.–KäRš}–œ-çÊyB\ÎVÐX‹îqÀû%ü*sÍ…Xµ_ˆutn^ÕïaùèVwŸBtÛ)B§u1ëNR -·Û…~_Ðïwî±tÐßÒú­Úxëï_ý6]o±ú-šÞ'‚nMðÎÐß -é¬Õÿ¶¥g°==ƒéœíl>}ú§?eúÓ¥?Uú“¤?=ý±žxRô'd(µ†Ñó ? ú·?†¾ëÿï‹÷}¹óäwáùÿoÅ+›Èî%”Âx‡Mf÷j1ÅʦÞó)1¦9”éìžB!fxUg&kŒ”³¼ª³Ù}qLJ27Ùc¤Ä˜zÞ„ý.lä ÙýqÅ"p±¢>æ‘/KÙ]ºËÊãìžB!–{UŸ`÷Å+¼ª+Ù}qÇ“à*e-•Õf¾ŽÊñ»K÷c½Wu»/îØnRÔÍùÓb »K÷c«CÙÆî)â‡ò,•íwùÔs쾃σ;<”T^0óÙýqÅKåe*»îò©WØ};vƒ{õUü5ñ:»K÷c/ø†‡’HeŸGûM±ŸÝ¥ûqÀ«zÝw¼¾­¨‡<òwÄav—îÇ»å=öu:Žd”£ìët¼c÷jq<Áî#ÔâðCEýÈ#ÿX|ÂîÒýøüLQ?÷È¿_²»t?¾òªžd÷Å_ƒ§õv_ÜqüVQ¿c÷Å߃gØ}„Züže÷jñ#ø“¢þÌî‹;Îçõv_Üñk@F¹À¾Ž@Çoåwöu:.zU/±ûâŽ?¼ª—Ù}qÇŸà•d~ê*»ï`Ç5ð¯d~êovßÁŽë®Îvƒ}½þÆMWg»Å¾^ã¶CIb÷¡ ‡Âî)B s(©¸=…Bh©Šäö -¡¥±²´Ü^B)´tVÎí%”BKïP"¸=…BhJFnO¡Z¤CÉÄí)B‹r(™¹=…BhYJVnO¡Z6‡r·§P-{@FÉÁ½Ž@‡–3 £äâ^G CËmey¹½ÀEn¦|VV€Û \äçv`ú(Èí@ñs?·ÓG!nŠŸÂÜLE¸(~Šr;0}ãv ø)ÎíÀôñXBQKz䥴2lîJ³Í\,§¨å=ò -Z%6wÙfŽ+S©ê¡VñÈc´jlîbÙfŽ«S‰÷Pkxä5µÚlîj±ÍœÀ5s2}Öqy¾ºÜ+öÓg=—ç«6PÔ†ÜûàÃm#×fj 6QÔ¦Ü;àÃm3×fjνV?}¶py¾–`+EmͽŸmÁ6®Í×l¯¨¸÷Áá³Øѵù:ƒ]µ+÷>8|v»¹6߃àCŠú0÷>8|ö{¸6_/°·¢öáÞîÐû*j?n_Ü¡õ(ê@n_Ü¡ +ên_Ü¡ ‡)êpn_Ÿ#Á®Í7 -­¨c¸÷Áás8Öµùƃu"÷>8|N'¹6ßpª¢NãÞ‡Ïàt×æ› ÎRÔÙÜûàÃí×fš ÎSÔùÜ;àÃí£®Í´\¨¨‹¸wÀ‡ÛÅ®Íô¸DQ—rË\›éqp¹¢>Á½Ü¡­W*ê“ܾ¸C[®VÔ5ܾ¸C[ ®SÔ§¸}q‡¶Ü ¨¹}ùp»Éµ™6ƒO+êîðáv«k3mŸQÔíÜ;àÃí³®Íôø¼¢îàÞ‡Ïà ®Í÷"ø’¢îâÞ‡ÏWÀ—]›o7¸GQ_åÞ‡Ï×Á×\›o/ø†¢îãÞ‡ÏDðM×æÛϽb?}py¾ƒÜ+öÓç[.Ï÷6÷ŠýôyÈåùÞ+ê»ÜûÄ¿§ñ£×Qð}E=ÆíÞ‡Û0Æq턽>ä^«Ÿ«ùÈåù>?QÔO¹÷!ˆ+þLûÜ^_€_*êWÜîƒÚIík?zâöéçj¾qy¾Óà·Šú÷>qÅßkglí¼ö: þ¨¨?q»÷±¦óãg휭ý‹×^¿‚õ7î^h¿kmíK^{ý^VÔ?¹Ý/´+ÚU[ûš×^+êun÷Á í†vÓÖ¾åµ×m0É®† n÷Þ#,UÆÐÂÂlíÔ^{I0¢¦åÞàEXº°p[;½×^`EÍÈí>x–ÉÖŽòÚ+3·O?W“ÅÅÙÌ¿Z:¦êL¦%˜L ¦ÃÁô`˜ÌF‚™À(03˜Ì -fﳃ9Àœ`.07˜Ì æóƒÀ‚àý`!°0X, -‹ƒ€%À’`)°4X, –˃ÀŠ`%0¬ VcÀª`,X Œ«ƒ5Àš`Øl6ƒMÀ¦`3°9Øl ¶[ƒmÀ¶`;°=Øìvú‡ý*΢ºâ7ó‰_†5ûN ,-­*¢€€BØC€$@Ø÷-Pˆ;°€hÃ*;®¥ØƒÚª¨ˆz(­m±¥…ÚV¬-p< §˜þæ1ß-”¿”d:?½¿ßû^†¹ó½yï^Ãņ‡.1<ÜðÃ# —.3\nx”áцÇ®0<Öð8Ãã O0<Ñð$Ó O1<Õð4ÃÓ Ï0<Óð,ó Ï1<×p¥a‹ v8¤Ä·ˆÅgÒâ×Ã?–ê‹ßW?ŽnÿŒDü¾]FzpœŒ6¦xñ›â®?‘Bâ'G±u_‹$ÈÌT²ÅO÷à†2šIÄÏŽâÆÏõà&2šÅM%ÞÒƒ›Éh«9Qæ´¡$ñ¿ãÁÉ2ÚŽRÄ¿ÙGü»(Müï;Ù»~ÎÑŽœ)£÷Q–ø¸œ-‘]ΑÈCÎ;sý®Ô\üî.çI¤‡Ë-$ÒËys®ß›òÅ/pÞ–ëRkñ‹\n#‘.·•È çý¹þú®øÅx‹¿„¾'þ¼Ñˆ_JíÅ/ÇÛø£énñ+ð¦#þ8ºGü ΛvýIt¯øSœwìúÓ¨“ø3ð¦#þ,º_ü9.? ‘J—;KdþµCÌø ¨‹øUø5"~˜qÜUæ,­‘»Éœå7áî2såMø™ù¸³.\5õÿ‰(î%ñµQü¨Ä×cEü ÜGFŸöàÝèÁ}et³Êè—ûId›ËE‰üß_"ϸ<@"»=x ŒîõàA2ºßƒËèA"£ÏEñP‰¿ÅÅ)Š‡IüP—Hü°ËÃ%ò3—GHäˆË#%òªË¥ùy—Iüõ(.—ø›Qe?-EÃeAñ݇лÙøÎmt 8ëmt í èPÇØè‡]EÍb£H@½bvLJºã¨üCƒ¢êá׶Qñ‡ŽCQí‡Þsõm(*þöU}h=õ{gˆJ=´Š*=„÷l£B-„΃VAâ9ç£!<¦FGQ£{lŠŠ;]I"j…äajvÚÑÕˆ#Ÿt¥‰øwRgâ:(:ˆD¼ÿ”SaJÂ.šŠ÷’ô èŽ0%#¿4t®É¨ôÒЯ&#¿´x÷:Á½FGš¼:zz.L)8sÓ{@_„b¥¢jÏÀ¼TìÈ#õôã0¥áy2±.ÒPeâwHCÍ•Ùͽîá^ãwH[ Å}Ò.¢YÅ}Òq.gá>é¸ÖÙ0e ¶ÎÆßeàÛÌ~ú1ô(ö¥ì— AAñr’ — è2±.rÐ)eâœÌ9 =€Bë%³šÅw»ù#ä<~EþÈâSä§lN“Ÿ²9C~Êæ,ø<ìÏ°O¨®dfáÉÿBuéikÓð?©.år‘êÒÓ^‚^¦ºôÄÿ LWȹ0LÓUòC.8Æ÷K.±äŸ\âɹ˜ï%¦!ù!“HþÉ% ©d«]jÚ­öZK­Ök·µØª²XaÕWõQý¸¾µÌÚd½¢F©25F-TUoýQMU“Õtndí±®Zû¬jk‰õ˜µÐZdýËÚk}­ -ToUÈõT¹*U£ÕŽ³Îª)j’šÆ USÕLgê,5H PC8V VÕP¾Mg[ïXïZǬã:Gç*R–ŠQJ5VMTK•¯óT+ÝBµÖùº•µÖZg-·VX'¬_Z­g­O­ *NÅ«D•¤ŠT±ê¯†© -5VÍP3¹)7ædNåDnÆM8…Ó8‰s8‹[èVœÏÍ9›39OçsKÎåðeÃ5ëÛ¹‹NЉܓå>ü -÷âÞ\À¯r?îÏù(ñÄoñPÆÅ\Â#¹ŒK¹œÇðXÏïsã üOæ©Ã{xàs¼—÷óA>Ïç/tSÝ^ߥïÖtkÝF·Õíô&¾¨Çêqz¼ž¤GêR]¦G󗺫î¦ѽtwÝIߧÐ]ô}¿®Ôóôt•ž¯§êiz†ž­§ëAz°ªKôÝGèBÝ_o×}õãz•^£×êÕz‘^¬—êz‰NÆzÚM×êsÇêÃRaí`Å°0l%l=ÅROŒ2¾¡œ¤×»nÅF¯_Î e˜1ßŃf<|Ýß츎;WW~£ºú5w²óµ¾IGÍ’?ìþ…³/Å^{FƳ3žñßì—kp×ÇÏÝÕJk/ëWHK›•0+¶µ²æ%ËkL°x¸Fd`œ›ŒPq¡¡’Ác7apy…·!„ð $OÓ¤|aÒÚ¦M“i:’v¦I‡G:âþï•iÇ̤ý–Îî™sÏïžsöÜ{W»÷ÚŽ§¡Û »ùÙÍÌ¢u‰Ö[lùÿ–Û{ÌìFwú·g‰]+E¥)Sjåf½c¹1Vók/{6ƬZÝ@š_´nÑæ‰–Ø Kã®^ëu²jgK|'ûPâs>+ñÆÙÅAý’Š™¼z $ѳWN«1åÕ·*mo¯‘X«l‡§žvxÚáqÐô0ÂQq6z|ÔÙ¢çG¯=¿è™ÍDÏ=CR“LµN°÷ØLÖx4×x¥#Ç8Å¢l&-$ƒU$»fgØr“Î6ˆö +Ç­¿ãÖÿèÖ7¸õÕný {ŠX*Zfå4èo6èSôš}Rƒ~’M¦dkh‰~ºDO•è{KôU%úʽ¼w'¨á½¢Ýl¹ëõëõ×êõmõúºzý{õú£õº§^_X¨,Ôï/ÔSìÇr7æöæRðH¯¾±¾k‡+L£6Å® ¥eUFŠõ$ce0O&cÚ{ÙZò:V´†¼·«(,ìw™_Øï0¿ˆ;izq[g2ô˜Ždè"Çò‰àãÉÀEx'$cÍFm djVRXå¶<Ú„ðɲsFm>C>6 -î‘áb -ˆôëLÆF#]9‚‰xSŒ%O»S;fÜ0ë¾”žk¾” -ó®7%Lo›0ÖW·Ìfã¡zãç¨ðjì¢Ño.5N”‰ö‡Oñê´ùÙvK3^07»ÍcWH„wD½­1a¶xá±¼ŠÐ £Ës3ˆU#0$³Ê¹¹¸æºÆ»Æ¹ü®Ñ®Q®á®"×Pµ@ÍSsÔ!j¶ªªNÕ¡â½U‡¦þl•òÏt¨3§ƒ·Áyo¥ôW,1U«•bëâlýWVÖ «)åO¬ Ò´dÚÒÁ®¢øÖèœyñEóã•ŠæGãã渞wœ]fïEÂÇÙ%næ£ïa—#Âï ÏŸ?,ŸÑ0/Å.E§XÜ·xðq« ÑøC¢yá -§7¨#U‘—×Á+[%ÒzÒi&ª -Ì O»H¦H3¥‹"íOKt{#á„×+Ru‹”nÅÇSðÀÓ3÷ãÖpÂ4EVvœùżýÙqQ¨H - -ð”De ‰@¥›wÂeépc:Ü(ÂMw¾txg:¼áAŸñÿpµMùby‡›v¬í‹´GZŠ#mЖøS+ ‹¯Yèv'Öîàw\ݲð‘Eܶ¶Åw·…ãk‹ÃîDSß á>n*'¨/›—è³ÚÂÉ&«)RŒôp×úŽÈ¿Õs{¬Žõƒ[Ï‹uð±º"ƒ„#<ÜÅÇŠð±"|¬.«KŒÅ×YQè#ˆFWèx¶×é*øcˆÂî§â-b…¤±26ìcå`?3Á•¬<DZIl"8‚3˜Ø4V^Â/Åq­°UlÏ΃/° ¤I•ì·xqR _“ÆJc M'WIUàñÒxðix¢4 ï¿(’“òOÁÇäÃàßÈ/ƒÏËo€ÿ$_ ¿MšòœüW"e—²‹”\™7Ýß3JÏÒESHlºâÄ‘g’Ã5ï¿â˜.ËÒ}YN×tF_S³þæ©kVZ:ëjpæ­à¬¼ëÁ™y·‚T¼Ì»Š¦ÂÈ÷äz”•©Ÿ(ÑOŽ¦ä·nŽßZ5ëwL“øX÷YCЕ%†¿ÕdÅa^ø]0ïBL”¸Çs¯§Ú‘}ãº}:ó=.µÕV[¿”ºÓV[mµÕV[mµÕV[mµÕV[mµÕV[¿DªÒ£Äˆ_2 M³\a'h$¢äÈ‚gUeX¢š•agØ^“a'xw݌謺)¥±ÅËÚ:ËÛ—µ~ó‹x¨ŽfP#ÔÑ*¥-¦eÔFÔˆö1ZAK©•–ß5«yíàVº{¥ÿ6G<åyêÀº¶yÉD®÷¯bÝ,óÄèŠîë rƒ×X¾*úÏW7 ûÚ†wÆ}Úrs“¾=» ݬÏîø— ƒ© +H‰¼V pTÕþî½owYù (d ÞúFÈʯ(%ìFh¬†ÿ]Æ¡»ä‡M$%E@‚….ÐA­Š+ÔŸ±XËR»ø×(X*à”±CÓaDmÁ±ƒÐ©-j[˾~÷eÅÈ´§Óéž9ïžsϹç~ç»wß.€<> `ñŠ¥ËŒ{z D/ÎΨYÙb~¿ajý¹LZ_»¢&ýÒ'ú]ìû&Ð3Fxª©eÕýcÎæÓ_ ÜÒøí-* ŽW÷`|ÕÒå5I¨ys¡šèÜÖ”\ÕÜû¬ïëupÂlZ~窺Ÿ}þ(óÛ Âeɦ:ëG­¡îÛÆ®k¾³®ùo®#žÅÛïÁæ;—7¿vñƒ¡n”Í…û‘ûä>O­8†ÿêCv¤§ +…Ô€zWÎiêyêÙlãŒe_q~£†2¹]«ÌNŒ‚Vl‡âó]\|ã´˜B¿ÇñnÆBÂ7𜸠iÜ‚24‰r o£Qü¯rÅj,gn%îG«^t^ç\)žCŸÂB”#Æ*[ð¨s;ñ|âìrÎb<60ã„ó{ŒF£(bÍF4‹lq6b +÷ÛŽñ®èLÁLÀdD°)4aÖ3ö +N S a7!Œá>•X€ÍxÀÆ/Ä0q·xÜð;)§ó‰ ‘ë`7Çñ!>ýÄÏÅagˆÓî8ÜÛÂ$T¸ñx»ðCÝ SÎ༘#(KMpz;ãœÏ™ß—¬…Q…Û¸¢ kÙÉv¼£”÷¸k±(óD³hiqXV¨+ Ÿçç^¢ìA¾Ë)·ÿ +"݆‡Èá³xžr¿&ó~aÉi²M^PýTؘåYéÜãìq^u~Åñ ù¯¢ÜŒ¬Â&|‡xÀ x¿åYý …Oä‰|bh§ÄG²Ÿ¼–ÕŽ¨å*­ö0v§Ó˜Énga.O°k\®Óú.Ï~ü”òQ½„—qŒØ~‡ ¼sÿ ~—‡™#ÊÄd1…8§‹ˆ˜)ªÄ­b.Ïgˆ‰¤h­bX/vP»ØG;å€xIÇE'åŒ8GùLz¤O¤%GÈ°¬¢, $eLÉÙ$·Rž‘{d»Ì(¨)ªR%)¶êP'T§zOýÍ(0ZŒ»×ŒcÆIãŒñgãSOžgŒgžg¾7à-ó®ô>åÝï»Ý÷¼ï$ö‘㟰§îŸ¬–Ë¿c¼‰ß³_òmqDÎàI´Šýâ)2õ4ïíÊ;”0e,å +ʽäp$¹÷Œç®%©mßUÛ’Ò#_¿ú½ŠåÍ+Ö€oàeÉ¥õn¶Î——ö×ÞpwèŠÓPT)TøšEí«ƒæ°¡…C +äpÕ•ýûåõíÓ»WÏ+ü=|^¡¤@IÔªL˜öˆ„mŒ°fÌißJr"Ùm"a›œªüjŽm&Ü4ó«™afÖ_–îÊ _ÊyædL•˜Q˴ߊXfF,œ£½5bÅMû¼kÓµ·¹voÚÁ ˜Ñ@*bÚ"aFíÊ•©t4a¹apE¨„L÷Ô…mLO¶¦tFÔ.°"Q{qcª(š¬µ«gÅ¢‘ÁÁ`ÎMdààUɈ¶j7Ôfë +h +áVcx½¾8Þ Æþg†Çugx<ÑŽsžð?bøú¯Ãpé×bxâ¿fx1OÔ —ýÿ¾¡ÃúÍìE–o§ÞodÙDïǾüw™û—ø¤ç0[s¯vWw ¿Šàeþ×Çzw£Õ[†Ùâ,‘»±ˆZÊùÆ}(g~'ýjŽïÈ2œïO=M-§Æ©ùÔiÔJj1µIǘû4u·®‘Óþj+6ú!C(ÇI÷ÉÑ¢aÍ ª÷ˆÇ°QÆ\ãÐ\ïãu__ô¤ñkLÿFGk|Ý5‡ïõ]êùnØ.×þ—i“¹3H}@¾…rµÓ9¡ÏÑ{*´ú:1•ý­'WçZ„È¿ßÅÙŽ:ú£sª{ícìpjÔÔ0–ÿOÒ«¾«ºŠŸßÿ×6yˆ07˜cÎÁh :ÄD#in y„F4—h€d¥¨•DTdšiÏõ´`&J‰™RC̀ⱀ¥ j•·ï9÷Üßîþ÷ïõÿÎï{î¹çžßëüÎ9¿ô°=Ÿ¦'ÆÐÐî‰ë©*]Cë0ß x<ûHØÝ,þ0ßy²bèOŒë2\Àö²ÚµB¿èÿLà¸$9oãý°34 ¶máñ` ‹xÝyïM˱5©Ãt"ÞÝj†ŸLñþ/„ívþ†¿‡­¾Ü‡î… û¨?¨’yÝ£¦ô%t¥·_É^¬Á>¬qžQ<Šo6¹ëG xÞó¶ƒßÁ6ûÓPö[øÎEì£ì'ì#rà⻘û¹¬¯{vš h(ˆ‹ïB¥±Iw­Æð·Æ¾ã!û,Ï‘}*€9º2–°‰µ`‹C¯ÿ\Tžç1ÀEgƘ€Ï>ì'þËkÝ(6ª’‹áß8÷|öäìãüÉ~4ºqÀCø°û¼CÎÇŸª\TžcTC[d sÑ[;ÅVŽ-r¾Ë]ä1ó¾ëœz…—êìÞê¾[ôúõú#šÌqJÏ`ßrè»ý"'ÚâúüŒc–ëUvtí¼5•¸ãÍë”î¤Z™õÀFæA‘êAíÛÄÀñ 2Ìe4p¾_Âï@Müˆe•üö–Šn%¾¯AÙ‹µ\BËÐ×à\̹<Ëø¹c[äü1¸J÷o,ø A­ÐŸ§8X‹~f³-k+滂s û.ûNbu€ÚÌ4Š}ó<™Ï¼KÞºöXÇ®îõµkí­ÿ3úÝØ›Éö3·R9ìVJþj‘9”¥÷bÎ(›|•&¦b|eŒ#Ró©1¬Vø§h +£ä»š‚ojRGðýyYjt–ÓL+È,e™+Äöè7e–—ÂGÐ'ÆŹ©kQÄÏ8%X‡zFìY Û/XM§³ÆýfãHm ¶ÍÙmø®{(6R¯‹–Hü8"~X)c…,5›*±¾õ÷Qx>dçÁv‰ôµŠŠøÆšÀsu} ‘Ò.Ë7)&¡zÁz*—>^yµ§ŸÎº„±¥Âþzª†þdØ/A¬Å9 ñ~Ž›wÌ0Î=‰1ÇæqÞA^+¹e>ÆÜ"ù·VPÎ/»’fdî¡|&$Æ_ŠúáUeɹ,.§ª>OXY)°²RÉZ»pmÂñ‹cWz-¨QêÞ—šìbª)Z+<˪ÕUóYôb2×è¿{q”ë²¢±TUx©Ô2cŸe*Ï`'»ñ3ë{q[rT£³Óßz—zÄÉïÈѾøíʼnq“ǖ݉±µK.㋹¹v¼ïªüýùòEþ¸ÜõZCMÓüëå)ö‘LìÎ[nž‹ÄÞæ5>£\úÖÅ—ËÂQâH£ÄJà[¾õì=s›³'Ù·x¿s1,çù0r}µ¶(ô0>DžsñÅœ¼˜‹­üÕqßò¸j<ôògòåsæÃüùÖC©õ»RnÝ^aýlâÈ-Àݨӓô˜Ê§„ÖO9¨Fc_†›ie²šÉ}﫺÷énSf\ž}ôÖ©Þ«yý¨vK}ý”q|æ˜Ìù‰ã4ç/Žãzg×Óõô8—qLç\Æß[DãxÎ9 ú“l¾ÈEä2ŽéÈa'p,·>¬¾Âyš1±™j½šžïœ|Fô^æú¶[›ßÛ¯å.Ù„üÒ¼Qî—ÃõÜJ.ôÍUr˜Ë“šÓÜ:‡©LüEÇjç¦Ïé~‹†´pMàM\ ’¾¸Fwï#’×â[ýFk¦:ó€óh#×$‰aN'¨‹å~^Þ»u/ûЄ_*íög5ô®q}Æ9’¿¶uî·g9çli<óù«³_Ÿ§÷Ê/=ÜÕ+”>yýxâÐ÷e¥~ÒuööÄ«U¹6•º”kP®9×p è¼Y?sÍ)u&jL­/kñ~£Ö•l§UjÓJ_íbÊÔЄÌiNgz¦Ó•n]ùç÷‘2/S‡KN§R“Ö¼¡”}–:\r:•º\¢:&ÌeÏs9ì¢ÔŸ)¹‰:˜RN¥.—A:÷e:0ÖëºûÍ<ññÖFQv¾™…ofaŒ³$·FQúiô“Æ7Óð (sú ªA/ÆøtݽuôÖ…ó‡î£7æZo{³Ù‡œCL…78…ËÑ÷nŒ÷bÐFW·/Å)êpÉéTêr‰ê˜âæ]XB…ÍÔQt³Ó©ÔåÕ1Eú |^h+5³Ïe÷ËÜc„¿µ1ÁO\½ ë¶ô è¹ÄXë'†Ï|¢)ÏÞ¶*ɳœ1ö¸)ƒµÈ7Oî7Óìêá¶ì\ZçÅ_ͺGãŠÄ©5Äícé\ýt{~»ÒsŠ,ÜÏÇù}oÉîÝÿHÞ>)Uq|ó=×å¼Ï'ÞÛ¿ÿ›¶"¾nuc Ÿy¦°=豨½ÉÈõ«HÚI ¥)Eƒ"-À¿‚ÖÔ©ÿ +s­#rð“÷ÆkçÑnLÈ×ùßüöÛ Lê/ÈTîÊÅz¹û=ØcúEBä#råG¡Ãò¤ê{ò·mßò›ºú$²ãªœER2ŒÚGtn–²f!-À²2ÂVÅP?áãÿIßÔ7¯VÅãi€Oz¨$¯~©âÀ<ïÒT:šã¤-¶  Ü_ìg +Vx¾…˜ë;ÕîîÇsþûÿÞZö×5ˆÖ kSª+P‚ ×l¹2:1v$å–« !±ÚC+¥=)F»Êrè:ÖöÉIM„ö)–«¥á‚u4"T{d@ò®ÛõɨíÑ–;U¢ÿO Õ>= iˆ°=ÖrgÐ8ÁF:3TûÝÉøÛ’¦í³,7ÑÑåÎÕž¬xŽ´S"ìòÿ\Åóh*M£÷?=Tû½ŠçK{AŒí -w½O¹‹Cµ/±ÜûéRåšCµ[gHÛ3’™ÉeÚ³,7›æ~€æ†jÏS¼\Ú+@Œ°=? ùP„ö‚€äÃÚm–»’Ú•ûH¨öUÉÂÛW[îú¨àbZª½$ ¹6ÂöÒ€äcÚ×Yîãô å>ª}½â Ò.‹°Ëÿ?E7ÑÍôiá?ª}‹âri?c{…å>G+•û|¨ö,÷EZ¥Ü—BµoUü²´·ÅŒävÿ•]Cw(Þ)í]¾7_Í£ý5i¿nŸ¿iû›–û};v$–û}7Vû{>þû±Úw+þ@Ú{|oVçѾ×r?¤ÅÚ^c¹µ¨\ã´×ùøõ±Ú?V¼_Ú ¾7÷åÑþ‰´íó‘¶j¹iSìH²Üô9Vûg>þç±Ú(>*í/|o¶äÑ~Ìr¿¤Çcm?a¹'é©Xí_$¿ŽÐ~ÚrÏг‚[é7¡ÚÏ)>/í  ßFØ~1 ù]„ö¶€d{„öËýžþ ÜÎPí]ÉîÛ{,×Eü3ý)Tû/ÉÞÛû’ýÚ/Yî¯ô7å^Õ~EñïÒ¾a—ÿ_Ç ï5zCø„jR<,í?cl¿i¹Ñ¿•ûO¨ö[–{›Ž(w4Tû˜"ßo¡è‘˜n.a +bFmŒÞNMJÚtŒvFÚ¬),6…æ¸í>–ëkúE[†NËoÄjŸ X"miŒö@Ë 2ƒ£u¡SDܽ1š +#7FSi††j*Âö°€$âÞhìÑÔ½šÚPíáIø}ј:Ë4rW4£Lð^èéŒHN°=& ¿/coŒ¦Áè}Ðœª=NQn‰¦1Ü®¼×£i2ãÍ#w<31T[ï}æli'ÇØ>ÇrSŒÞðÌÔPíi–û/÷å%Eu„ñ[wz¦gy("" + +(A¢P_ˆÈC1ŠòTT|²êª¨(‹Ĉ +¸ +FTŒ9Q‚ (‰ÇøNŒQâ£Ç`$“§qóë껕í3;³gçL}UõuõéÛÝ÷Ö7BN QY (AŠj@iFÊèfL…ê±Õƒ2^N-[Ô¡¨” TÐR¢¥‚”³J˜‰ª'Y4Y¦„hjÙêi%ÌÙÆ65)ÓEµ¢œ/¥º°¡fF sA…±/,aÊëESŒr‰=(3ËVW™âååÇÕãA1ÊUR#WŠj<™U¶:è>QÝ'×53öl‹®— ðdNÙêZ‹æÊ!*«%h@Q (Íh@¹¥Q<¿r-A%ŠjAYÐèHºQT%ŠiD¹³âØ -Z$‹+Uj©D©“¦T_¶úžFñ’f«—¯JQîktäÞ&ª—Yt¿,?®ŠQ>‘e»¨Æ“OËVÝ'ªûäófÆþƒE;$(<ùcÙê/-Ú) +QY (AŠj@©¤ÃgXQm‚]û*¦8DqŒâyŠW+Ö*ÞªèÓq–ÿsz=šWŒ”Éi+¶Rl«Ø!­´q¢€cŠc% +Z_LÑjZ¬2¦k¥a•Vî¢ØZq×”±ÊÉÙ!îävµ¸kÛßݵհŽÓN±½ân)c•=]{‹{»Ý,î›ÁÝï°ƒ»ëh{(vTÜS±SÊÛYv4fP÷4~p;?,à^Æë:k¸—þVWŽ»)vÑ£5Zi#Œp{[<Êu³xl÷1~<óš|öÑqöUÜO±GÊXån?‹'ºOÍ`Oã§Ü_‰ž:ÚŠ½{+öIy;kFÀ^Æ\œÁÞÆWg°ñ54f–;HÃõ·¾¡ØO±¯òiÜ?=jgÍØϘڀssòìð9XÏý¦â!il5óbÌ‚€‡³0yšøªç~Kq âaÊÐøðô¨Up 1K2f™;\ÃAzîŠG¦±Õ4|4fEÀÁƬtGi8XϪ8LñhÅ!zô(Q‘VÚ«ÒeOã'ÜѯÉàpã×¹c4®ã«xœâñ)c•ÝqoqÇ[üÓ ž`ü‹G(q‚Žv¢âHÅ“G¥¼õJÀ‘Ƽ‘Á“ŒÿUGÿNÀ“Ùp´'ë/ŽU£ÌhOQÿ}l ¶œü6üpl%vùøã±Ç° ›Ó±Gb£±IäKðOa«±­äÿÁ¯Z_ßÿÂæúzÁ¯#ßÿy¿Û‚½F^űý±Øò™øØíXòü`lÖüüÝØ +¬Žü}ü¿™‚dœ1«É^›tëün}=y²&Ê&YÅU‘쪉®HV©NµN÷¿ªpNÒÑŽÅ'ëCµKß’µød]x×¥Oø3.}³ÙUílÂ'ïéœð4=ïtwsa©MÖIçþæt-qŸ‘'ÿ7YIÜäô]¬!NX¹…çÍ ¿!t²žük<{»lÁ6Õ:’òt±žÙÓ{®ÅÓ]ÊÛøÞä­ðô„ò[<½¤G•øC’£‡ôè +OG&ŸàQtžÃ³¾¢S§ÿòôç~F·åé£<úÁ3§¨Hçér<=¾gNåïxºß?:‰1zýoìáž9÷ìëÉó¬vú?Ù±õ¿±ÿzvH¿KÈ¿"f§óh?ý¯LGñy´Ž§Ÿôì4žûçYWý2<÷ο±&zÞ@Ï~áßLä%9ïŸçþyVeÏšæy³|2Ü?ÿy­Ë¡ØüOº7ÿ>y2&§ÿòÛÉ™½RŽ~ G¿•cÍ­Æ6cOsos[±§±Ÿ3o{mî%|rÆŽP%¹×ðh cGè‡ýV„ÊÈ1oý~Žn+B]ä¸öÜËÄtä¹÷j¡ër¯“Óqç>"‡Èqm9îoî÷ät÷+:c¾#®=¢÷ÆÆsíÝkôŒç)b"î_Äý‰è•"ö—èG+Kô,ùxž­<÷9z’œç"úygüÓ䟣ÓòøλÛO‘› óïn>3#ÿ¬…³´”‘ûç­ÿן¨ùøgVŸ™¥DÏÒYF]eÔ]F=eÔ_ß¹røλÒOƒ#óoq>3㈞e¸ŒF‚ïÌ7|g–q=ËÌOBžŒ<|gÚ©xš<yøÎŒ³!z–y2Z¾3ß"ðY–Bô,+0¿JfVËh-ÖÖËÌmÂÚ™Ù*£íXÛ)3»d´kû÷#ßywâéòaä#à;3…èYŽËè$øÎ|§Áwf9ѳœgYÖug½YÖ…gŒsÆijÆyã"âÎçxäZ¹À÷ ã–qñ¦qÛ¸‹xƒó-¹VîwÙ@6˜…³¡lÉF³1l‹`Ùd6…McÓÙ,6‡ÍeóÙã‰ñÌxøÔxn¼D|Âù\+/Œ—¬0+Š± VŠ³2¬¬qÌ8aœBÒÐ3öuã´7•Ýn ¼Ã÷m¾ò}>†OàÜ7i(»=B~ ŸÂgðž*wô¶ž!?wÔ%z½@~ ŸÃð%|å¨ÛצÌ7º}kÊ|ç Û÷2úÁA—èõ£Œ~Š·Ÿþâ–ûÕ1·ß¼V×ìö‡ŒþôPýK³Ûß2úGsgOëß(ŽüG(aÄŸø¹+ˆ¡Ï ÄSB¾ã‘ø²š@ïl$rb’DognI½V“ivKî!—±ÙR +LåTÿn©‘Óĉ[ZS&ßéIGÜ2Ê(SÌ–YFYâÀ-«Û)›ÃnÙÝN9ùÎá [.S&·ƒnyl+ójpË'° ÉO +B$ˆ'…ù¹)jR– Å”ÝJÚV–Ò0[0riR†”%åHyõž^Ü*Ȩ"r%!&ee nU«’j–ÚêÊn5L™šê3ÄêjÊÔrЭ¶)SÇA·ºëÙPÖ×àÖÀ¶²¡·FÈIÒ”4#ÍÕ{zqkávjé¤ïßÊíÔ†ïÖºµ5eÚ9èÖÞc¶ƒCneÔ‰ï®wvQtÑèÖÍíÔÝ™™dÿ³=rëå1ÛÛ!·>¶•}5¸õC#ýÉ2˜„“â<Ȥ¢Ám¨må0 nÃe4ÂB9RƒÛ(äÑ1òcÔ{{p‹<ŽD`4>†b‚F·‰¶•“4¸M¶­œ¢Ám*ò42Ì 3É,õž^Üf#Ï!s•úÌ#óm¨˜2 É¢×p[L–p\j¡Z†¼œ¬Pšm%YeCµy Y«â&z¬#ë-7’MÊn›É ÅVUì³l·¡Ú¼“ìÒãëÕm·¦>{È^ª}ÈûÉ8˜í ò[ämå^‡Èa ÅM¿õQòÇcªãÈ'ÈIeÇSä´…â]M³½GÎØPE>GÎ+¹] m¨Þ7e> —^Ãí2¹bCuù¹®4Û‡ä#ªÈ7É-7Ñ㶥âò]ò±²Û'–Š{È÷ÉU7¿ÏCM}‘Ç6TŸ"FžÄÁlO‘Ÿ‘çJ}^—6TŸ›2_/_Ëï+š¯‘¿!ß*ÍöùÞ†êäÉO*n¢ÇÏ–Š_%¿)»ýNþ°Pü©ê}þ"süÇBõoS ÊŽ”R? …¡g6ʨ¿ U€7ìhQ‡Ÿ&À(!Mô>‰iš”&³P%×:[ +‹zJäT4µ’OšÖ†*rzšAÉ-#ÍdC•9 ͪâ&zd£Ù-9sÒ\Ên¹i E^U·nù,êù‘ ЂJ>…haZÄRU¹ Ò9e,nÅ5õ)AKÚP•B¦¥ã`¶2Z»•µ¨—C.O+(ùT¤•h­l¡ª¢u¶ªõjÈÕi e¯š4ÔBQ ¹6­£ìV—Ö³PÔWõpëÖÀ¢Þ¹m¬äÓ„6¥Í,UÍ‘[ЖJn­hkª6¦L[ÚŽcûWtë@;ÚPuBîL»(ÍÖ•v³¡êŽÜƒöTq=zY*z#÷¡}•ÝúY*ÂûÓÊn-ƒÓpU7¿ÏM}†Òa6TÑGБq0Û(äÑtŒRŸ±tœ U„)3žNà8ñÝ&ÑÉ6TS§ÒiJ³M§3l¨f"Ï¢³UÜD9–Š¹Èóè|e·–Š…È‹èbe·%–Š¥ªnÝ–YÔ—#¯ +•|VÑÕt ]k¡Z§u¶õõ Èé&e¯Ít‹…b+ò6º]ÙmÝi¡Ø¥êáÖm·E}ò^ºOÉg?=@zÕàOH$øEDb‰¦˜F`z¹æXX`°ÀÊ« ¬-°¾ÀFÛ ì(°›À0ᇠ%0BàDSθHàRkn¸Uàn4j–uÞÐO„Tè L ¿ÀãEidO?`2öý¥&È8!Ê8 ¯DÇÉãËL*øýrŽª:ãøG6Ú̓lÂc“òZ»Ùl6»ÙEäý°ˆ€ ˆ€þ{žM­ H¾ê²sb›ç³Ÿd!é'‹l¿öÙÍa¡zªÄ¯:h×Ñ=¤XuX:R³·N6µ¶^:«ŽIÊÎl°©µ )Q’Rʶ)#»’åd7²‚¬$«Èj²† Ú÷jŸ½¥«ê¾-²\Û pa7­ÜŒê&•ª/Åüeô©V}…Ãõ\‰ÙÍèq-²»¶¹Zj)»ó{ØÔÚIÒSõ Qöd›0YGFl¶œ&uª¯—ˆêYx‡=G¢”õ¼·Œ‘dœLMdÒn©=܈UÑ 6ªg±Ã¸z–¹0¡µ+¥IõÍ’T½¦E¦´ÍmÒ‹2Å^Dö&/&û}É~dr€Ý^û¹£EöÖ6äbÕ›[dms·µ½Uú©Þ!ýUï¶V¥£ïs8P=ûeå@Žv°M­}@†¨>ÜŒYgñlÿP6Â~†‘—ÃÉKm¿öùÃKÔóˆ W};#£—ËTŸ’Ë)/co#È‘¶Ö6§e¤ê§d”ꧭ]Åö_³©µÏÈhÕÏb·Y6šmÆcÉqäUäxòjr9‘œD^cß«}þ@ƪþa‹§mžwáUZû“f¯þ±ï3úŒLPý²LTýŠÃIêyM®QýÛ9YÛ¼˜aÙd>ãµ6µö2UõÛˆ–Me›ëÈéäõ¶G[¾#ÓU¿‡è’ÑïË ÕÈLʼwy9›œCÎ%ç‘7Ú-µ‡¿Ë ª?r8[=ÿq8G=Ÿ¸pn¦¶]–ÌSíEÜÊ说ÈùÚ&×…7±r>Ǽ€\H."Û~í¡À… µÖïÂEZÛÑ…‹µ¶‹Ã%ê)u¸”Ž%É2›Ú¦ÜárõTºp+—óÞ•ä*[ë]5.\¥µµW«'ä›Y¹š=¼…\c{ôÞˆ oÑÚ†f\£þx3Þªþ¤Cþ‰ÜÊâ6›Úæ"‡kÕÓÇ…·³r-c\gk½«¿ ×ií f\¯þ¡.ÜÀÊõì#¹ÉÖz×pnÒÚËnVÏ(¹“r3û¹‹¼›¼‡ÜBn%·‘Ûí–ÚÃh|ß2z¬ ïÑÚñ.Ü¢µ]¸Uk'»p›ÖN•íª§·ÈÚf¦Ãtìàí²©mf;Ü­žyr/ån¶ÜCÞGî%÷‘ûíZ½ë&ë{îèE.Ü«µK]¸OkW ÈèÕ-ò~ms‹ °ò~Žðò yˆÆãCÄó!ÇÌÇò°‹ò°Ï +qN,ØŠë-G¿k'4NÆõWhÌebDÁ»Ðaˇë/Иׂ¿áÂø cèïµàßÐ8aå†þ'¦d;~Œ­sîÇØüÈ—‹0N?rP?òÜ"D°%йÐøŸ]qUB#žøåüÈÎ:¾%RŒXŒõØsUŒþ;}”–.g§qý sÕK"€ç-Aô +`~˜ŸĪæ'€1” g\aý†FL +\éø˜ŸBH æ6€l>€¼»_ÉÀ«_·²ÌRìà2¬‡R¬çRìã²3([¿¡_FyÂiƒì¸ë»t +ôk(ŸÂuú×(¿…ëЯ£üŽUý{”xÞÒgý=\È:ËÞÄÿb|¥?r4ÖkéóÐB‰¼½ÜŸ–nX×åȾ*0æJBX—!äM!ÌA{6„/a{6ô¾Hï:Üe6~¾Ãøv‡}ŽÆ†ó¡‘Ý„qrc= È…ä"r1¹„\J.#—“+È•bò2cÆŒµ³²©UŽnG^8qɘ1c_F³2Ž5’‰HŸ6+F­¥ZG®'7´ú¸Œ3fìÜÌŠ^©6‹9ó3f¬-˜u滓j+¹ÜNî w’»ÈÝä½_ÔàŒ3fìsÍʧö¸øöJæÜxv¶eå3û©’‡ÄddÆŒk fed‡%·Úºe1• k¼ÇåBïgÙÿØ­ø*Š'<³;KG„P ¡7AŠ M@Šôz@½—Ð[ ¡WéJ•ŽŠŠ +AŠ4) +¢‚T•*í?wï~ÇåùˆÌ[ÞûsÃ7óíÜÞæ›ånç¹ú•QÏjð¯zÖ€«žµVŒ±âð¯:7‚Õ³\õl_©ËuìßÒ»|Eo\—ñÞì©ä¸*9hÅCà+•¹Þ©#à[z¯èë2Þœ“à/•¸ºÀið¯z΀«žófæ¢é/¯ÔèúZ.ƒoé½¾¢7®ëþ;tü«žÛAÛ=ñ—ë­ò|aTÁÀDVLbÜÀd¦O¾Re\—ý‡)À¿êIe _©êßÞÅ´àS•`ø–Þ,à+zãºøýÇð—Jr€¿T’\$Ÿ €¯Tæú: +‚oé-¾¢7®ËxsŠƒ¿TRü¥’2Ár¦/~R¸~7Uÿª§²A°øJUÿö;°º¬%kÈ:²%RÁ²¡¬/˦”DŒ#Ä,YO6ëÄ:ÙJ¶”mä`)ÛQ +±Ul{ÄÙNeÇÅq†ÒQ€ì&»È2‚R‹Ûb©¸KA¤“ÅJ±XLæ|& +4æQÁd +¶(ÓÉ@ +¡`™›rªœ2¯ˆ‘b°F¹)»‘§œS!²¶¬)ëÊPJ¬²ÊF²l"Ã(©-FŠÙ|7T†‰#[ËpÙ–òSÙžRŠmb‡Ø+öÊö*»Ê!Nˆ³â,¥§´²»ì*{Ê^”FÜËÄ=Ê(QJ1E¬KÄÎg¦ Æ<Êh0™’-­Ì ÓË ”²Ê<”Kå’ùÄp1T Q”‡ryÊe0ÕBµTáªj¯:¨Žª Õ¥Pj@›©Õ§†´…ÙjAáÔ’ZQWêN=i?u£A˜PÝU¡ú¨þj€¤"i ¥(Š¤aMãi"M I*JE«j´§Æ«‰j2Í¢Ù4‡–Ð2ZA'i)-§•tŠÙ):GT>•_P…TUTS%¨*U§šCÕ¨Õ¢õtɘÅcƒ5¡0jJÍè*]§¶Ôž:ÒNjG¨í¢›fv§ÁT)UZ•UåUEUIUQÕRIEÔ‡úÑêKýi ¤Ñ4ŠÆ¨šª–ª£BUCÕH5QÍTr*¯RÑšF3h*M§™* +¤¹4ŸÒšG hUAföˆÁnåv}Æ7‘ ñ€ÈÓëL[pí6$`¹‰ßi4-¤‡ 2Ãó Y!d‡rAnÈùyFx +Á‹PŠB1x Š[Oº¬¼ %¡”†2P^rP*À«P*Ae¨Â3^ƒªP ªC ¨ µ 6Ô‰õ|\V7Þ3c[=F}h眆ÐèWj k‰ù M +É 9¤€”ð < y!„ xÔŸjlÅfŒæŒ×÷Z0Zš,ÜÊ´‚ÖkÃhËhç˜ß:X¬£;Ù÷:Û¬ 45cj( i8f‚Èf.Ôôa¦ïbú®ŒnÐz@OfÖ½ìÕz[±û2úY¼¿=kÀCïæ@Ób †! C™ ³îEÙ³¢­8ÜŠ##úo=µ§æ6ÊŠ¦Ï÷OŽ†16O éØ…qnsÆ;~uÂ?~w–òôû“O>à^Í á:ÁqB¦â³Ñ¸RóIÀÑøËÀ={{w÷LÜß³X>Ä­Ççåúò›]¾ Ùç ۸׻ú{iK‰çÿÏ_—{p¨Ùƒ>ÛØ<+ÃølnÎçr >‹Ã͸ Ÿ¼íÌÓ¶#Ÿ°ù¤|º/ž÷Åxkºš¾›öoãI³î63zk÷ÔÞÜEûr÷ìÏýr ÷¾ûïÿɆyÌFÙ,Ú‘Ç:þf#|¤}Ò6ýóÇjWìsïR.oú ŒIŽìdÆDÆÚU'¼M±ÙT˜ÓaÌ„7aÌæÌxær\ a‘5ë-Æ<Æ|íÊÖÞñ˜]¬]—n[âàKaûå°VšãUæ¿«]±wì½X£÷­¸>`ÿ!cÛüÜÆk¯ aì›} +kaÄÀzØŸÁFÎ|›à Ž[àKØêöÜfíÊÖ¶Åm×®çI±þ•Û½ŒÝŽñÆ.튽c{ük·{ûûãoß0hWðöƒ´Ù÷6;¤]¡;l³#p”ý&ÿÑôÇ'sO2Ž3~Ò®:áí”Í~†Óð ü +¿Á8 ¿sæ<\€‹/Áðg<×;—µ×ô_Ø_~ÅfWµëÒm×üºÍn˜þ&ã–ÉîÀ]ö·kWì»wŸ»þ™L˜^2Åž*¾+#i¯í1 {Ì&1}RF +GöFrFÊx­œLwmµ/ÏÚ,>‡©1 `Z¥Ãô˜ƒ0#óç1+†8žÉÌÈò€õ18Ö8“î +q_²¹³»sèV¨Ç0§ÍranÌcñ¼˜Ïbùu+ÔcXÀcö,¨[™^ÃB6{ c,ŠÅ˜¿„Å­l Æ˺UjØ—’^ +K[¬ŒéË2^qÜ/§[­÷¥¼Í*à«X+ae¬‚¯aU¬†Õ±ÖÄZXë`]ÝJ½¼/õ±Ù§¸×a ®Ç ønäÌ&ü7sÜ‚[q[<×û¿Ô]Ó²/Û|‡Í¾Ò­K·áNße³Ý¦ßÃøÚdßà~öû{u+öÒ¾pðoñ;‹4ý÷Œ#nóÇ{åCºk{¬}9ê1ûþÈþã'Göããd¼V>®»¶ÇÚ—ŸmvÁ_ñ7<ƒgyô;žÃ x/1ÿ ¯â5Ç30þ|ÀzçñJ¬ñeÝ>â¾\wßpßÔ­Páß6»…·ñŽÅïâ=Úê1!æèÎÆ6ÃZzmhñ1su„ +6¶øMtgãž‚y¿)³™îœÜP°¹Åo¡;÷liñóugãž‚âµÂBÖ",Ö•c¶!lmbÒS[ñÚa{ÝÏ5ÛØ1F=u¯3vÑýÜQ³íŠÝ°{Lzê!^OìÅÚûûêÛlûaÿõ4@¼8H÷sGÍv0‰QOCu?kó£~†‹7G²ŽÂÑÄ1ºGÀ!ß±1êgœxãq‚šíDœ„“cÒÓñ¦â4Öé8C÷óGd8ÛâÏÄY8'&½ÎoÎ×=Q³]€ cÔÓ"ñãÝÏm›ár‹¿—áM1éõfñnÁ¬·âmÄ•ºÇCòZeñoÇïŨ×;Ä[ktAÔlïÄïǨ§»t?k™²½ï‰QO÷ŠgàX×â‰÷éÉë~‹¿×Ç¨× âý7êÛ lñÀqSLz}H¼Í¸E÷Øfø°–^±‰m¥ãQÝã¡·àcÿqÝÙ¸§à6ñžïI:žÒ™Þ‚OÛÄž¡c»îÌô|Ö!þœîÌôÜ!ÞN¥»ðyâOtg¦·àn‹ÿSÝÙ¸§à‡ø º3Ó[pï ‘}¸Ÿø³rÞïEÝOT9î? ;3½áIwfz tˆÒ™Þ‚/;Ä_љނ‡â¯êÎLoÁ#6±£t¼¦;3½Yü㺳qOÁâ½.ÞI:ÞЙނ§lboÒqZwfz žqˆŸÕ™Þ‚o‰wNéÛxžxAwfz ^´øïèÎÆ=/9Ä©;3½/ßù^!þºœ÷{W÷UNÁ÷â¿Ñ™Þ‚¿uˆ¿¯;3½?pˆÿNwfz þÞ6ú¡î¼tüÈ!þÝ™é-ø±Cüº3Ó[ðªCüOº3Ó[ðÏñOtg¦·à_Äû?Óm†ŸÇ¼Oe½M a2ŽÏô3Ìf"3‰YƒY“™ÌLa™©Ì4f:³³63ƒY‡™É¬Ë¬ÇÌbf3ë3s˜ ˜ ™˜¹ÌÆÌ&̳€ÙŠYÈ,b3CÌÖÌ6̶ÌvÌöÌÌŽÌNÌÎÌ.Ì®ÌnÌîÌÌžÌ^ÌÞÌ>̾Ì~ÌþÌÌÌAÌÁÌ!Ì¡ÌaÌáÌÌ‘ÌQÌÑÌ1̱ÌqÌñÌ Ì‰ÌIÌÉÌ)Ì©ÌiÌéÌÌ™ÌYÌÙÌ9̹ÌyÌùÌÌ…ÌEÌÅÌ%Ì¥ÌeÌåL¶çLĉUÈxé%>‚~‰:‰Q˜ 5kT9¥¯dH?X*Öúi¥bM©_«J˜,÷Ï€ñ3”:õ¢0UjfG0Mâ9efº´mX…¬%½ä*Ö–H“20CZ5-ëHýæ¥b¦ÔoSÖ•~ ëI¤0 +³¤f±b¶DZ—™õ¥mÛ(Ì‘ší« ¤—Žl(ñÎŽl$uºFa®Ôì^ål,}õ4ßkå÷.ó¤~ß2°©´ê_Él&w¨Ø\"ƒÙBê –Rsxó%>²Ì,¶£«­¤—±Š…_I«‰¥b±ÔŸ\†¤ÕÔ˜²µô;]±Df–Šm¥þ춓øÜr²½Üa~vš ÍùIù‹#ØIâK;Kd9tÿfÅ®YÝÄ¿ÍœE”{©ØC꯲aO¹ºÚ‘½¤Î¥bo©— ûÈÕ{ÌùIùFö“škÙ_êÜWVëm8P®nˆÂARsc8XZ=hÃ!ru“âP‰l.‡I«‡£p¸ÔÜÁLq¤D¶Á(ñŸŒàh‰?­8F"ÛÍyQùvãäêNs.Tþó0AüÝ6œ(W÷À$ñ÷šóœò÷Ãñ_4ç!å€i⿤8]"‡`†ø¯Dp¦Ä_Uœ%‘£æl¤üc6œ#WO˜³ŽòOÂ<ñOÙp¾\= Ä?KsO‰‰Þœ”–ˆÉœ‡”–‰…f£ÿÝHöºößu¯_»v•ôQÐüåü“ôYß$Ò}¤³ ˆ£]¨ï¤~ºO|Ò›HóI×v }t«‰4“þEJ3Tà?¤ôŽ$Ì ý7éq’è H¬KztµÉÙ´Qü˜4—ôS‚ëRF~DºÃ€Tšaƒh@úvÚä-"ý’ô jÑ»›^‡”ÞÒô†dÐ\{é?HÏP—ޙ̖¤H7Ò's³õh/ù…Ùwd#½‡t*)ýv³’~Nú– è¾9E¤ôŽåt&=LºÍ€†Ô>ç+RšÑŒ%½DzЀƴZäf“Ò¬žÛØ€<Ü&ÔoÞW¤Д~y= h~ ÙNZЮ¯Ù7¤ôl>šô5Ò½ m(¿z‹òéþô‹ÌOJÏ—˜ô Òc¤ôkÌ?Aº™ôMÒ-¤g È?IzŽÎi'V"¥÷§`=éÒ¿ЊƹUÒ[I*}†ô é—Ò·Yá4Rš› +O‘^(Ê2 ˆæÌ"ƒté'¤_“~FJÿ×âžÓ﬘ž«ø@(É€}ᇓ&’® M ]I$½ƒ”v¨¡5¤´‡ ­%¥÷ ´Q)å¢Rèuþ:ßBJãzD)½¯!Ú;†W÷{Šúÿ†t)åÚMqÏkˆÞßÐ~ÒéË*ãJ&“žPç§ÔùiÒ¤g•¾MÏKã:Oº’ô")­È¡K¤ô>„.“ÞBúé…ðï |€ñà‡$$q¼¸ÑjÒ‘¬; Ï<ó¬Ò-¥B­ƒJsYu°È,Ò-1TGG5C‡çnwš_¼t§yºdà6³®5kyæ™gÕÍ’+Ô:…æù^¤#m®U‡oç°ÅÃ(›:Õ!ÿ’oÿñ–kÕa7†0¬#l}¿CÝPZ²^Ï€×ñDµ‚»{¿å™gž}·,¼Ž§”³uv\ -ç>Xq6s®Ž\9Ýc‘;?·®!žyæYlÍü2[ ‘³˜iáï6wZ ñÃߘY7<Ž¸¬ßÄá±wû7ñ·+gPo*žyæY%Z*3­œ­Ó¡lª´\ªÞ|°³oØâ®û&v£ùa˜9¿ß®f4 9¯è– ;Ï<ó¬J,öÝ~Á½9ÓûáX¿ÃÃ_áàòïpP_âžyæÙwÉR*Ô:HßñG+)“ª5_ÄÂy°_Eâáˆ6î´’/¼ºøá +\¿ª˜^YÜ»ª˜f®,{ =óÌ37Y°B­S! Þ'ý+”ÌÁqòí§#“º>5C‡çnwš_¼ ðXçêp,3¶û,Éâ»s5ñÌ3ÏÊc5£Wù?–Lßn_ßõùlêV‡ïé°Åû’lêT‡üÕ~Àg]}7ÔvŸ¡/¬#l}¿CÝPªVn_]¸q–¨ÖNw®šûí{æ™gnµdfJ9[!Õ—k9ÿûÕ&E‘…_¨ÞœÙ–ÀÂ’wÉ9gP +"IâLä$9gE‚ä wŠ" +˜½ñNÁtÞqúÉ‘ ’±¦¦·™]gª¿YTv¸yõÕ_Uïÿ_UuõLU5b¦kË,{uΓ3ÿXίÁüz†øÍo~ûcMÞÌ°äÜÅæ¼·åO ÀZ=cç 3Zöú9ïÆØ\ïÄjíóýøöÉ¡—úÍo~ó!‹T•ÇèhˆÁ–¿Ù\~CìÎÝ×iùù|˶ì·Oæük„}àöÉæ8÷'[þ¶ »=¿ùÍo¿‹c¸û¢É¿–ó ÆÀÁrú#Áö~;#eÖÇJgµÆK˜(ó$pý–ËÏfcÀÉà+oM®6Κ­Bà<ÈùKZýÝ4yCÂ…àCkËädW¯¬¯c] >´¾6 +/À½°K( Ä àCï·€ÍÖ#çü·¸|å_l˜¿wˆ»Á‡Þ +~Ž;ϸ7Ö~/øÐÚ{ä²ÿŸƒ¯<οQ%â ߺ0¨ØïLö „C.œãûˆñ°¬þ óÙzå=.§d>-ó™ÏÊ|Îì缄‹¿å’É^‘píW£\wvLè: +I$ùk£@™ƒd–9DæP™Ãd‡{âýPUð1|¯"¡ 5ÐzÑP àVôš|‚¢-ô:m‡„!p zÓN £wi7½OoÃ'Ðöp7ŒÀ(Œ½XÖa,w¡=´W„ði>KŸÒ",Lûà2¡Y8SèsúšVÑ7ô%ý>ƒÀ?±8– ,¸ +ŸÒpLç,ú¯ˆàó|ËÒ÷4'Ñÿè0f`eœ@Gé$§St†ÎÑb¬}éÖÆ)t‰®ÒeøöÁ~Ø„õ°½ý°¤y<@Dñþ™¯°àlÂAاrGð5¾­ð>Ž‚Ø×8†‹`;€m8‘S9¾†/á+ì€b'ÈÂÎØ…Fc7ÊŸ$§‰dÞÇ·r9®À™\ {p5®Â5¸×ááp{òhz…ëÁ.)Ê`on€}á(7â&0úÃ@x Z ƒà1†Üš6 ƒOò)ÚJÛhÜÄ` •?²Çi†Ó{ô}@ïÀ“ð æî‰ÑX†`!ZqÜ•>¦OD(Ÿásô&c<í‡+˜@³q<¦Òô/ZMÿ¦¯è7ƒa0†c–¤þ0‚F`)îOߊH¾À—°§ƒ4'Ó!:‚™X'Ò1ú‰NÐi:Kçi Ö€‘tëàtú™®Ñ £` <…õ±!½c±1¢ùÊÇøžÊÓñ +OàÙÍ“y.ÏøiüŽR/âç(œ—óJ^Íky ɽ§ñ ¼ÊyÅðžÇ x?CIü,…òb^F¼‚Wñ^ÇK‹Š¢’È™|ˆóÇFQòzªsgtìy² +‰Áro—9y†t-•š.5Äy†á¥À;Œ÷§ÿ—Ѫ –wC„Âyì%È­7Ô£>Ì­7\3B$ÄxäbeùÍWÆŸüÉŸþøp×gàO÷~Š€.­8(¨Ñ‚x«^T™I94Érû›P!Ë[œÃ ù‹”'d¶Ë"ÏÆ0Y†ËyDª38FÎçNã󈵞(oëRÐ|â¼ÞâÍUÊë{I0ËÄ<Æ'Yo#oñ© +‹æyþÅrµ‹{Ÿ¦°¤Ù*áõøé¹Ú¥¼Œ/«]ÆËø² +Ë›­r^Ï¿B®v†—ñ™¹Ú½Œ¯¤°ŠÙªìõü«æjWó2¾z®v /ãk*¬m¶jy=ÿ:¹Úu½Œ¯§áêCÛø†™F +ÛÄ7ÑpM¡™íøÍ5\ h©ÊVMkÌ} +ï·¿†k íTÙ^£ù“†û3t°}þ<2*ìhßIÃ=mÇXÃu®¶ñÝ<2Ýö°‰DÃõ„^¶ã÷Ö²}lãûzd²öwñôs£ é{ ²ÿQ ÷ÿÌë +·¹x¶ºQm×ô½Þ°ÿM ·vÙÆïÖ²oÙÆ¿í‘yWá{.žwܨÞ×ôý|h;þß4Üßá#m¬i À 0Xa˜ÂH…1 +ãV˜ 0YaQ…%–VX^aE…UÖTXW!9Ç]£ÆUUR~áD‹e0¬z€L3”&Љ AV=L¶¤4!N´ØHµê1Rë°P¥ w¢ÅÆA„U/,ã¡4QN´Øˆ¶êɲW‡E+M'ZlQˆµêi&Æ)G¬Rt¢¥I7±å)“ +w!ïDKY>±ü™&&(G•èDKSÙÄ$ËSÍÄdåHRú'Zšš&¦Zž:ò‰–ª”ÅwÖ-M}‹[žF&¦Yž¦PBUÓTlI…éκ¥i‘Ó-ëXÊò·ÒªZJõSFaYgÝÒ´7±¬åé`b9ËÓѱÆÒÊ©Ø + +3œuKÓÙÄ ËÓÕÄLËÓ*ªj¦Š­¤°ò/ì—xÅÆg„@Ez“*½B½÷^TšôÞ{oRD&M@TDQP(¢ `oˆ¨ˆ +Š‚(-~ûîºÜÎÞ=\xîö;óÿç{æ7ß¼Ìͼ3·ì̹է§ÉJ–ÒÇd´¥ô•‘Fã³UÀ#·ú ´1ÆÒ‡ØXÕÒ‡ëß-ýUÅ8ÕÀ8#·úŒ2g)cMV·” ¢ÒêølM0ÞÈ­>“MÆ[Ê4ƒñI7Ç'Ý^œ˜”t„ê%ÔnNù1ª[R{9å;©^Aí¶”ï¢<ŽÊšÄ¤Û“©®Ieå4ÎíÚT6R>ŽêºT6S>‘êT¶Q>œj}®í”¢º•”¢ZŸk'åC©ÞC¥wbÒ }ì½TúRž@u"•ã”o‰OJ*B¥bbÒͪçQ‰¡<œê…TªQž‘jZKR<åQT/§’@y6ªWRYfö_C¥±Ù=•f”g¦zZ×ͬTo¥²›rÚy¼ÛrS~Šê¡TP~’ê‘T +Q~ZàE)?#ôïFˆÑ”Ÿ¥z +•2”Ÿ£z†þLR~êÙT¦™ù|ýy üÕ‹ôçò+T/¡²€òkT/§B{{«+Õ×…ÐÒQ~€êîT:Q¾êT¢Lžf-+凨îG¥凩D%åG©F%?å'Ä?ã,3ÎãD1Nãü0Nã´0Î ã„0N…óóÌ:Òï¿ü§ïE”H)+ÑOP}%ÙÍ:§Yç6kãäÊo¶ +˜µqö)eôó0e¬Ä8õsV_O)³6ÎÑrf«¼Y§_´ÙªlÖÆ™+RÊŽèçhÊX‰qÂ×Æzj›u¨õÌV}³n(KP”¤&ÇËr¬!ë˲£¬"cd¬¬&ËÊrr•¬ +ÊÕ²¿ ÉÁ²‡ì){Ë>Ô³¡l$›È¦ô©xYK®• ²Ž\G#M”“ä9•F!GÊÑr ØYv‘Ýdw½•l-×˶²Ü@3.’‹å¹”fŸ%g˹rž—³4Ö¢{\ ð~ ¿JÇ\s!Víb›ÒYR>õy:iþý=•æ®¿Ö¼E:+ ÷Ù'=N‘È2Ñ[]¯³ÐïÞ‡9ÐÊiõÌeÖ¹é~Ÿ×Ìóß“/ÿ¢@2û¤·òV!°°_Ÿ,Bwý{uYœîý%è}£Ñ»ÆS/MïÿG)Kï¦äÍ[žîôÞôŠtƒWµhz·U¡÷ZUzø7º¤_«élŒ »MQú­¦k™ïy‚ÄDÔ­¼ü['*3D{vÿ›G¿ÍîÖ§ý6‹§÷ù¿íÚ"ÍoQ7 ãÔ£ȳÝ@4tuD“»öi*šùü·æ¢…«~ïÙÀXÑR´m’õɶìÞƒí¨t@ÖQtFÝEtÝl}º‹mí‡ÄÃVÞCô´ò^¢·­_ñˆ­ÝWô³µû‹¶ö@1ÈÊ‹!V>T ³õnÖ#ÄH›>JŒ¶µÇ˜õXeÍ㾋Î/&™Ùd*SÄTÛ¿N³µ¦‹™V>KÌF=G̵õ™'æÛÚÚ¨¤¦³6 Õi©¤£{Zzª#Ð#Á‘¸•e¦;™þ;5ÝÌô{YNº‹é¿Oõ{X>ºƒÀݧÝvŠÐi]̺“”Â-Dàv¡ßô»Á»@,Ýô·´~«6ÞÃúûW¿M×Å[¬~‹¦÷‰ ›@¼3ôwCK:kõÿ‡mélOÏ`G:g;›OŸþÄéO™þtéO•þ$éOO¬gžý J­aô<èO‚þí¡ïúÿûâ}_î<ùã]xþÿ[1ÁÊ&²{ ¥0Þa“Ù}„ZL±²©÷õ»ï`Çóàe'•ÌüEv\ñ’Cy™Ê®»|êvßÁŽÝàE}Õ#M¼ÎîÒýØ ¾á¡$RÙçÑ~Sìgwé~ðªd÷Åoo+ê!üq˜Ý¥ûñn@Fy}Ž#å(û:ïƒÇØ}„ZO°ûµøüPQ?òÈ?Ÿ°»t?>?SÔÏ=ò/Ä—ì.ݯ¼ª'Ù}qÇ×à)Eý†Ýwœ¿UÔïØ}qÇ÷àv¡?€gÙ}„Züþ¤¨?³ûâŽsàyEý…ÝwüQ.°¯#Ðñ[@Fù}Ž‹^ÕK쾸ã¯êev_Üñ'x%™ŸºÊî;Øq ü+™Ÿú›Ýw°ãº«³Ý`_¯¿qÓÕÙn±¯×߸íP’Ø=…@h¡°{ +…ÐÂJ*nO¡Zj‡"¹=…Bhi¬,-·—P +-•…s{ ¥ÐÒ;”nO¡Z‡’‘ÛS(„éP2q{ +…ТJfnO¡Z‡’•ÛS(„–Í¡ÜÇí)BËQrp¯#Сå È(¹¸×èÐr[Y^n/p‘‡Ûé#Ÿ•àöù¹˜> +r;PüÜÏíÀôQˆÛâ§0·ÓGnŠŸ¢ÜLŸ(~Šs;0}<–PÔ’y)­ ›»Òl3—Ë)jy¼‚V‰Í]E¶™£ÁÊTªz¨U<ò­›»X¶™ãÀêTâ=ÔyM­6›»Zl3'pÍœLŸu\ž¯.÷ŠýôYÏåùêƒ µ!÷>øpÛȵ™ƒMµ)÷øpÛ̵™šs¯ÕOŸ-\ž¯%ØJQ[sïƒÃg[°kóµÛ+jî}pøìvtm¾Î`EíʽŸÝÁn®Í÷ ø¢>̽Ÿ=Á®Í× ì­¨}¸÷;´GÀ¾ŠÚÛwhýÁŠ:ÛwhƒÀÁŠ:„ÛwhCÁaŠ:œÛ—ÃçHp„kóG+êî}pøŽum¾ñàEȽŸ“ÁI®Í7œª¨Ó¸÷Áás8ݵùf‚³u6÷>øp;ǵ™æ‚óu>÷øpû¨k3-*ê"îðáv±k3=.QÔ¥Ü;àÃí2×fz\®¨Opïwh+À•Šú$·/îÐV«u ·/îÐÖ‚ëõ)n_Ü¡­7(êFn_>Ünrm¦ÍàÓŠº…{|¸ÝêÚLÛÀgu;÷øpû¬k3=>¯¨;¸wÀás'ø‚k󽾤¨»¸÷Ááóðe×æÛ îQÔW¹÷Ááóuð5×æÛ ¾¡¨û¸÷Áá3|Óµùös¯ØOŸ\žï ÷Šýôù–Ëó½Í½b?}ry¾wÀÊú.÷>qÅïiGüèu|_Qq»÷áöƒŒq\;áG¯¹×êçj>ry¾ÁOõSî}âŠ?Ó>÷£×à—Šú·ûà…vRûÚ^§¸}ú¹šo\žï4ø­¢~ǽA\ñ÷Ú[û¯½Î‚?*êOÜî}¬é|ÆøY;gkÿâµ×¯àEý{‚ÚïÚE[û’×^€—õOn÷Á íŠvÕÖ¾æµ×_àߊzÛ}ðB»¡Ý´µoyíuL²«a‚Û½÷K€1´°0[;µ×^L£¨i¹w x–.,ÜÖNïµW˜AQ3r»^„E†e²µ£¼öÊÌíÓÏÕdqq6ó¯–Ž°©:S©A ¦Ó‚éÀp0=f3‚‘`&0 +Ì f³‚ÙÀûÀì`0'˜ Ì æó‚ùÀü`° x?X, ‹‚ÅÀâà` °$X +, –Ë‚åÀò`°"X Œ+ƒUÀ°* VãÀê` °&Ökƒ `°.X¬6‚ÀÆ`°)Ø l¶[‚­ÀÖ`°-Ølv;‚þa¿Ê£³¨®øͼû bâ—a;KKE+‚Š( „ö ö} âÇN, Zà°ÊŽk)ö ¶**¢J+ÇC[li¡¶kËè)¦¿yÌwËG'å/%™ÎOïïwç¾—aî|oÞ»×p±áa†K 7<ÂðHÃ¥†Ë —ex´á1†+ 5<Îðxà O4<ÉðdÃS O5<ÍðtÃ3 Ï4<ËðlÃs Ï5\iØ"ƒ)ñ-bñ™´øõð_Ä¥úâ7ÀUÄ£ÛÄ¿#?Áƒo—ц'£)^ü¦¸kÄO¤øÉQl]Ç×" 23•lñÓ=¸¡ŒfR#ñ³£¸±Äs=¸‰ŒæEqS‰·ôàf2ÚªFN”9m(Iüïxp²Œ¶£ñïDöÿ.JÿûNö®ßÁƒ3d´£gÊè}”%þ.gKäA—s$òóÎ\¿+5¿»Ëyéár ‰ôrÞœë÷¦|ñ œ·åú…ÔZü"—ÛHd€Ëm%2Èy®?„¾+~1ÞbÄ/¡ï‰?o4â—R{ñËñv#þhº[ü +¼éˆ?Žî‚ó¦]Ý+þç»þ4ê$þ ¼éˆ?‹îŽËH¤ÒåΙí3þê"~~ˆ¦‡Å_\#w•9Kkän2gùM¸»Ì\y~Df>î¬ ×_M=Å"Š{I|m?*ñõXAƒ÷‘ѧ=¸@F7zp_ÝìÁ…2ºÅå~Ùær‘D"ÿ÷—È3.Èn(£{=xŒî÷àÁ2zЃ‡ÈèsQ¢ÉâŸöà)2ú[ž*£g°oEüß×ÈÓeÎÙ›ð ™ù§y¦Ì9_#Ï’9ŸÔȳeÎ_oÂsdæ§5ò\™óY\)s>ï\ýõ“oTW] = ý1ôeèè!÷zt t?tôt«{½ úSè‹aŠ¹‚Û^‚~ ½âêWЯ WÃÄ8jiƹ¢PA;­Œ^]] ÅÞ«7A×BwC±ÖôóaŠÝŒ†ç‹058‡2µ{ƒ?@Q±ÇãÔ[E­·Šª*÷‹» ]ÅóÄý(L!ü»wü&L6N;ÝUt)6ν‰sÄFGbcÙèFl¬ˆ}ÁFÿap¯±ÃÙèJlìe6z»®~Ã.„¢Ë°±OÙAKÑpYP|÷!ôn6¾sAÎz]AB;(:‚Ô16ºäaAQ³ØèP¯ØƒÝñ¡î8*ÿÐß ¨úCøµmTü¡ãPTû¡÷\}ŠŠ?„½ÀFUZEýÂb£R­€¢Já=Û¨ÐC ¡ó UÐ…xÎùh…©ÑQ”À蛢âNDW’ˆZ!¹C˜š„vtu'âÈ']i"þ䙸Š"ï?åT˜’°‹¦â½$ýº#LÉÈ/ k2*½4ô«ÉÈ/-Þ½Np¯Ñ‘&/·^€ž S +ÎÜôСXg©¨Ú30/;@òH=ý8LixžL¬‹4Ôc™øÒPsevs¯{¸×øÒVCqŸ´‹hVqŸtœËY¸O:îŸu6L¨­³ñwø6³Ÿƒ~ }Š})û%èGÐCP¼‡œ$è%(z£L¬‹tJ™8'sNC PÇzɬ†f@ñä.SέÜÏ¡8šãwÏFþÍ@±ó°>³ñ;ç- Sž+ï3è³D-Ð;æ&@±^rÝž†bèZwåtUN7åtQN÷Tß“ÞË@™*æ†h€|ûP„}œ`8¿ g·»7©ëæð-x®üCS#põR€j%ƒÓÝ«H—AÞ½^ö óò(ØËP (Ÿ¼ú½ø¶ÁÔ|'5R€jµßë»Ö‘‚ý)@€µŠ:Q° 6@QgðÃäìI] w÷€õ4W½ ÷Àú +aýn¸K ýWdxl0ll(¬6 V +…•ÁÊa£`£acäNâO€M„M‚M¦º¶—ª[ýøFÀ4…‚ý(@€µL3é?ûQÝøÒùV?@€¾hª¤`? + @m€¦*ðRØ2º¶/ÕmX´œü‘ÇÁ«É¹8P´†ü”Í:òS6O‘Ÿ²ÙDN6[ o7¼Óð.òS–{ÈOÙ ?eó<ù)›Ÿ?²y™ü‘ÇòG¯‘?òxœ<Ž~Ûð1ÃÇÉù½OþÈãù#_‘?òp èù)›Óä§lΟ²9 >û3ìª+™Yxò¿P]zÚšÀtüOªK¹\¤ºô´— —©.=ñÿÓòC. Ót•ü‹ŽqÆý’K,ù'—xòC.æ{‰iH~ÈÅÇ$’rIC*Ùj—Ú£v«½ÖRk£uÄÚm-¶ª¬VXõU}T?®o-³6Y¯¨QªLQ UÇ[TSÕd5Y{¬«Ö>«ÚZb=f-´Yÿ²öZ_«Õ[r=U®JÕhµ€ã¬³jŠš¤¦qCÕT5Ó™:K RÔŽUƒÕ@5”oÓÙÖ;Ö»Ö1ë¸ÎѹŠ”¥b”RUÕRåë<ÕJ·P­u¾ne­µÖYË­Ö ë—ÖAëYëSë‚ŠSñ*Q%©"U¬ú«aªBU3ÔLnÊ9™S9‘›qNá4NâÎâºçssÎæLÎÓùÜ’sù|YÇpGÍúvî¢t"÷äG¹¿Â½¸7ð«Üûó@>ÊE<€ñ[<”‡q1—ðH.ãR.ç1<–Çóû\ÁãxÀ“y*Oçy +Oã|Šgó\žÇs¸’çóB~Œq‡y1/㼜Wò*^ëù ^ÇOòS¼ž7ðÓ¼‘7ñfÞÊÛy'ÿŽ·ñ~†ÏðÞÇøïåý|Ïóßù ÝT·×wé»uÝZ·Ñmu;½‰/ê±zœ¯'鑺T—éÑü¥îª»éGt/Ý]wÒ÷ét½E߯+õ<ý]¥çë©zšž¡gëéz¬‡ê=D÷ѺP÷×Ûu_ý¸^¥×èµzµ^¤ë¥z…^¢“±žvÓµúܱú°TX;X1, [ [O±Ô£Œo('©Ãõ®[±Ñë×3CfÌwñ _÷7;®ãÎÕՇߨ®~Íì|­oÒQ³ä»áìK±×ž‘ñìŒgü7ûåUuÇñß¹wïîM.7/±¥˜pw ¬Iön²^›ÍìI‰au`bC‚fB +} - C&QR^2*"ò”º»<\ž¡Ú‡ÿ0m…¶¶V§v´©vxØ0ýž³+ØN˜±ýÏν¿ùßçü~¿û;çܽ÷œÄñ t+tŸ#»‘ž£S´.ÑÚb‹-ÿßrkùÝèvŸgÉélÇ­=Œ·©]â‹{”|‡=*u2§v0±_U Þ<ƒ=ëäö,±k%©¬8Iã‹­ìŒ_EYv”UýÚËž2«Zgבæ­[´9¢%vÝÒ¸«ÏÅúœìãê‰ïdI|Îg$>äh@R1“W@¯€$z^âÊi¦¼JâV¥õàõàÕ’«b•ðtÀÓO<š^#F˜/*6 ÇGm=?zUèùEÏÄh&z¦è’š`ªuœ½ÏêYÓ‘lãµÎ,ã$«cõ´€ V–èn0N³Ýä&­íV–[×­ÿÑ­¯wë«Üúiö45"°D´ÌÊjÔßjÔ§7êUúÔFý›FEÈÖð"ýT‘ž,Ò÷é+‹ôEziîŽS-Â{D»Ér×êŸÔêoÔê[kõµµú÷kõGkuO­¾ _“¯ß“¯'ÙfoÈî˦ àá>}C|W•™Fu’]>0ŠK*Œ$ëMDK`žLDÕw³5äu0¬h5y%nWRXØï1¿°ße~ÿNÂôⶮDè9˜ÎDèÇbò‰àã‰Àx''¢-Fu ¤k–SXå¶4ڈ𽉒³Fu.O>6î1áB +ˆôÑiëLDÇ!]9Œ‰z“Œ%ŒÏz’;j\7›Œk¾¤ž«¾¤ +óž7)Hï˜0Ö×·Íã¡Zãg¨ðzô‚1`.1Ž—ˆö…Oòê´—ùÙ6K3^27»Ì^cgH„wD½-Qa6{áÆ.r3}»i~OxÞ¼u±Ys“ìbdQEm1‹/³ÚP{HÔ!/\ácåu¤ +òò:xe+DZo*ÍD¤…¹áiÈi¦tA¤åiño$÷zEŠâ£‘Ò£øx +xjæ~ÜŽ›¦ÈÊŒ1¿˜·?3& +ˆBRBž/ !(aóv¸$nJ…›D¸ùvØ— +ïH…w <ä3þ®öû¾\Þ¡æíkú#í…‘ÖÂH;´5öôŠ…#b«¸Ýñ5ÛyÀ“ǵ.xd!·mí±í…íáؚ°;ÞÜ?D¸Ÿ‡› ÃqêDçÆû­öp¢ÙjŽâ=Ô½®3òocõÞ«sÝÅÖñb|¬îÈáwó±"|¬«ÛêcñµE͹¯kˆëÛË—·tuµÐç߬“Vb t²…·ÎTFΙ2q’:À*rô2À\†Ñ0C#¢QÄAÙå@”G¹à|º 5 + .Ñ°yN 7ØCžQÒhp%Á¸! +!ZÑpP[ˆN§jð7)Œh µ :¢Q+µ"ÚÑh %¢' ­¥'1Ïê÷BpFÒSàQñÿs6€7BÚD›°ŠÍ´«ØQèYÑ6ÚŠœí¢~ˆF/ÐÁ/ÑNðnÑ^ÚÞGûPa?íG…^†¸(N‘sŒðœ ãà“‚(tšNã®À]?ÅßD?§×ù ˆB¿§_Âó½Ï%ú øˆF§ÁAú¢Ñeúží5ºþ¢°{èŸøA X>i¬„ûX)ØÏLp9+OÆñDl*›Žà &6ƒÕ€³ûÁKp\+l%[ +Ï«ìðcIð †U°Sì$x€¿É΀ϱsàóì> stream -H‰¼V pTÕþÎ9ww€²‚w½ìÊÓ@”àv#4VÃ{—qè.y°‰„D³"¢ÁŒÂ@èø~«ÖÇ8¨åŠ©]|5*JUœ2vh:–‡-8vPZ­¯¶ÂÞ~çfÅÈ´§Óéýçßó¿Î¾ó³wÀ`~0—·¯\eÜxÆ0@S×’lû}IÉ ¨3¶­nuÚüqÓÅ´Óœ0ª±¾½.<||9ใõ’ixEôwÓ6¶­hÙ–Þê¥ÏùžM+V^׸ä/ŸÞ -µ²ˆ¿—jHÖ÷[ÿ)Ôá¬/O10èäÀ7€~kèNµ¤×Ü:ñXýmÀ°-Í×´§•_¼ œ[Æüš•­uIñAh=Ôë æoiI®ipÌwý0o¶´^½¦á_ÝËú¡ÂþUÉ–†ñ;®yêГÜÃùm­íi(VªC[t}ÛÕ m~c]Ôò,à}µíêÖ¶—O¾ÿ TÓ ,2 ¹r¹SîôÔ‹½ø¯OÒSƒª_Ý!€s„zœz,WÅŽ§(¯â7d¾@Xr–씟©A*lÌó¬vntv8/9¿æ‰xpù¯¡\Š4Ö`~H¼·áY¼‚ßñ¬>ÆIá…¢ˆºÄAñ¡„$DzۛªUeÔÆ6ã g¦gcî±ÜQg…s§ó–ó7î^ÂGîË02k\ŒyX€8êÉõ•îý¸;ð4v‘»ýxq91Šûœ&ªÄR±V<,v‹½âK)e¡<‡kŽ•å”n¹WîWŪD•©Ij™ºK= 7n÷Ô{®òÜáyÚû¡oS®.WŸ[»!÷‚SãÜí<étM€hô™ÎÁ\îvò±Öå:£ïñ<ƒŸSž%ªçñöÛðïÜ òPàòà'E…˜!fçlsE¸\,äù,1‘Í¢C¬ëÅ6Êýâ!²Kâ}Æw¥ï)ß»ØIŽÆ=õ}êp¼Kþëä%üžýŠo‹7åžD‡xF„m2TýíÛL¸eæ·+ìl<­2Ü[>U) -͘ -šQ˴ߎXfV,£½5bÅMû¸kßµoqí´N0£þTÄ´EÂŒÚÕ«S™h"Âv»Â$àÌPL÷ÓmÌNv¤ütEÔ.¶"Q{¸qsª4š¬·kçÅ¢‘@<´Åì:k¹ «Ê8>?]Ï3Y:?ƵCÁ&›û×[õ›³a,Oh+yEÌVɸ-zAãí"+b­}ßÿûµÝÒ'iËÒêdC¦šÔlžÓë&´—ÜB¯fɶrCÎS7‚ù¼ÅyÁš, -jcO ñ£xV8²ˆ”ìâ/˜úÁ2¦ËôuhŠp6±AÆh šÕD]­ÏÍ̘™¹õ³ÚLñÀRwd¢!ŸÀí,ˆ5ñsa,`‡ã#N™ ñø…ì3^÷1Ü>™8;4ç;4»Øà$‹‚ÁR4¦66/fwFFØáHœ”ðþt×Æìn²³*t -)ÇŽ&óùÄGcBo—ìÁñL¦×³vw&3"£¿½~Vàô@8ÈÂmÀ«’µnªÓ -ŒÐ+`+áRy½¾>Þ,&ýg†'÷ex -ÑNvžú?bø‚ïÂpùwbxÚ¿fx:1OÓ Wüÿ¾°ÃúÍìEŽo§¯å¹Ä€û¾ùw™ÿ—ø°g[ó¯vW·‹Á ôßu,õnG‡·óÅUX!·cµœñÆͨd}ýZŽd ÆSP+©qjuµšZFmÑ9Ö>JÝ®{äu°ÚŠ¾eÈÏ(ÏbXÔ)›q„=ÚQD{’ö¹^@•`(íRó•¸9­•¬ è‘sõœE̤¯5àÛŠŽz^ˆñ³Ø§KV8Ý#êeTîÞˆ£†¶ãŽ“8–±Fc×ûLÜeœ—¡mÐ.%7ÚZ§R ôÖcŠùáyNJ¹î8Žu${NU=¸Q܇z4ºGå÷>Eïëë=iüÓ¿Ñ __ÍãûŒzˆz¼¶ÓuðiÚ¢¦`IþŒ†Qo“o£R=èì×çè=UZÿIzµÀwUWñsÿû¿¶ÉCØ€¹ÁØæŒ"à\€ ¡ùHccÈ#”Is‰HVŠZADE¦™ö°õ´`&J‰™Í`Åc=`–&¨AVò¸}Ϲçþv÷¿ÿ{ï¬ÿÿs~ßsÏ=÷ü^çwÎù¥Úiæ·ku8ÞD5Xÿ\çfºÏ£”x®½ã÷Û rŽÑ¼˜¼¶›hzl4 ‰á^»…Ê’•´ó½”ǃ±€Ý­âMökåCX¼~B2®«Òð-öQ³VèýŸ¬“}ïß‚ZÐ4Øz´Çƒ1,æuç½·N­K£3ðîvP=üdˆ÷l·ð7ü=lõæ>t/™Øÿ@}A¥ÌëML^I×¹ûå’ìÅ:ìÃ:{‡âI|³ÅY?‹çNœ·v~ÛìOCØoá;—³²Ÿ°È9€ÿ‰ïbìç²¾ÎÙ©-¤U h@óPwÖj4ËcUÛÍìcì;.²ÏòÙ§|˜¡+ci‡M¬û[ºýg¢ò<~Ú»1Æ|öE`ñ_^ë:±Q_ÿƹç³'gçOö£Î‰.‡çv9sÊ2QyŽQc}Ø {œ›‰îÚ)6rl‘ó ÌYé ™÷]çÔ#Ô¸TmöV÷Ý Û¯ÛÑŽSz³ø–}XßuŠœh›ãkð3ŽYŽO”™}еs×TâŽ;g¬S²ª4fÖë˜MB^¨µ`lSǃŠ0—QÀÁø~)¿Mäï@,+åw°·LtKñ}%òÈA¬åRZŽ¾†çaÎàYÆÏ-Ûr çZàÝ¿qà/5B¾b?`ú™Ã¶t¬˜ï*Î5ì»ì;±rj5[÷ÐHöqÌóL>ó¹ëÚm;ºÖ׬µ»þ;ô»Ã°7‹í§î¤bØ-•üÕ s(J,Äœ7Q:þ:MJÁøŽÈ‡'š¨1¬Jøçi*£ä»šŠo*'ðý yQ¢:+ipª‘†§Š¢Ô5b{8ô'¦–—ÁGÐ'ÆŹ©k‘ÇÏ8X‡FìYÛÏYKcXã~;…q$6QÛf„ì.|×€=‰7Å? $~œ?,•±B–˜C¥Xßšœ‡) ¼²‹a»@úZCyücá¹"Ž¾…HiŸá'*Æ¡?&g#K/‰¼ÂÕO¦ÂØò‹`#U@ -ì Ö䜄x?×É;V9çžØèSó9ï ¯Œ“ÜÒ„q#·HþK«(ã—^M3SÒL>ãg ~8EeéÅrn󋩬׳FV,„¬Pò…Ö.\›püâØ•\ª“:‚÷¥2½„*óÖ Ï² -`d|ݘ̵úÏÇ^œäº,o•åÎZf4òÓÀT âì¤Ñ@~f}7nKŽª³÷zâ[OãR·ø/ù9Ú¿Ý8Ñ-nòØÒ{1¶É%£=17ÓŽû]™·?O¾È—»°Fk¨išÝ<Å>’Ê‚]yËÉs¡ØÓ¼Æg”ëBϺxrY0J©“¸Q -|dzžÝ°{n³d"ûïw&å<†®¯Ö¹.fχÈs¾œ‘3±Ñ—¿º!΢â»ðOW¥‹nþŒB>£|Î<˜=ߺ(µ¾}_©ÛKŒŸíFYÜ:=NO«|j`ý”¾úhö¥XO«ãôdæ{O ÔµO8˜È±j³ì£»N5nÍëEµ[è駈ã3ÇdÎO§9qwÑ=»®®«Ç¹Œc:ç2þÞ òÇsÎIПlòE&"—qLGëϱÜø°úh0çiÆØVªrkz¾sòÑ{™ãÛNmþPW¾–»äDä—±ñÛä~9LÏ­äBÏ\%‡™¹<§9Í©s˜ŠÄ_t¬fnúœì#±hXN×öÉÄÈÕ é‹ktç1<~¾Õo´aª¶µ_mæš$Vn·:Xîåå½S÷²MÈð¥Â._±×BïFÇgìÙk[ûs–3ΖÆ3¿Úú<½G~é⾡ôÉëÇû…ž¸/û(õ“®³»'n­Êµ©Ô¥\ƒr͹Žk@û Ȫù™kN©3Qcj}Y…÷«µ®d;R›†Pòû(Sª’&¤Î±Û’³ìŽd èjÈçÚG¹l”z•Z²Û”:˜´æ ¤ô ÔêݦÔáU3a. y>˜Ë1‡è,¥¾Lñ-ÔÊ”˜d·)u8„øÒ¹û(ÕŠ±ÞÜÕoj;Æ{XÆ[FéÙøf6¾™1ΖÜFÉíè'‰o¦áPj(úªDÏÇøtÝÝut×…ó‡î£;æ*w{²éÇí£L¹·Úm¹+Ñ÷~Œ÷ -ÐfGµ/ù juÈnSêpˆª™¢æ[@­¹õÔšw‡Ý¦ÔáU3…ú |^h'ճϥ;eî¾1Âßš™à'á^†uÛz ´+6äø‰Åg‡ >ÑÌ”eo•äYÎ{ÜÌ”ÂZd›'÷›ªwõpszmpã§f= qEâƒÔÆ¢ö1Št®^º; ¿Gi—"ËŸñòQ~ßS2{÷?’»OJeß<ÏÕï³É…w÷ïÿ¦ˆ¯;XÂÄgž)hº­jo²äú•'ídPŒ’” A‚1‘æà_Bë êÔ†‰u=m ²ñ“÷–ÛÚöS]“¯³¿³ð™oS”3¹¯ S±#ëÅÎ÷`Oé1‘[‘#? –ÇUß•7}ËCÉŒg ¨tp>IÉ0òÑ…iJ[‹h!Æ–&°*õ>ú÷ð½@½³jõU<úy¤ýAYõ dy—¤ÜÀÑœ&m¾Y€eþrd?°ÂóÍÅ\ß­vW?Îœ³ÏØûwײ¯®A¸v?]›B]ì\°ö ÃÑ‘#)6\ ŽÔ¢X*íÐí2ÕSE¤í3}’Êí³ WEëix öŸä=!¶k|’‘!Ú£ w¶DþŸ¨=Æ'b{œáÎ¥ZÁ::/Pû½>ÉøÛ|’‰!Úçn¢£Ã]¨=Eñ}ÒN ±Ëÿ /¦‹h½_øéÚP¼DÚK#l_f¸ËéƒÊ]¨}¥á>D3”«ÔnPœ)mcÄHfù$W…hÏ6Üš+øaš¨=_ñji¯-±Ýä“\¢½Ð'ùHˆv³á®£å>¨}½O²(Äö †»‘>&¸„j/õIn -±½Ì'ùxˆö͆û}R¹Ojߢx«´ËCìòÿ6ÅOÓít}FøÏj¯P\)íç"l¯2Üçiµr_Ôþ¢á¾Dk”ûr öŠ_‘ö®ˆ‘Üíá¿¡kÑ=Š÷J{ŸçÍײh]Úo˜ço†Úþ–áî§oGŽ¤Õpß¡ïFjÏÃ?RûÅHû çÍÚ,Úî‡ô£HÛë ·•k”ö¿1RûÇŠH»Éóæá,Ú?‘v³y~4ÔöO ÷m‰Éã†{‚¶FjÿÌÃÿë‘åœPãɧ9«îê>9_ÁÜÐè‚8…'ÌYý…FåO.Ê©Åi@¡”|Ð}º†àgBl@lI¼‘Ø™8ˆx7ñAb†ø(ÑFólý -=†–WDŸŒÇ8 V"V'ÖŽ*ußaR™”ÀD’õ©µ¦ŠÃ´25L%†iVV&V!V­¬Žvq]SUã†1¬¦|cSa5ÎSƒX“X+b´²©©©qsSKã–1¼LùÖk“¸Œ³]N¬C¼‚X7âuT[‡u”iÃ+”/ˆa]å»:¬§LOSŸa=~WCb#â•Ä¼ZŸqcb³¨Rgèki<À\©ñà^¥üP¬kø¹Šó|x5±IÄhåpsµÆ£LÇÅ°©ò6#Ñ”³}x ±9±EÄë¨I¯Qfj ›+_ÃÊ9¼V™Ùæ:†×ò»¾AlElIþ:Æ­£«:jžÃVÊd^¯ÌâðÙÁçzŽý&±MkÍ2‡m”YáðeV‡O>7pì·ˆíˆ7’o˸CtUG;l§Ì&‡í•Ùl:0lϱ7;F±Ö”þuTf›Ãe¶›N 8¶ ±+±±3¯vb܃Ø7ªÔvDÛ㦛Æ{bØ]ùý¦Ã'±±wÄhå!ÓK㣦·Æ?aå_wØ—DÎv3±±?q@Äë¨7öSæd û+ÿ«Pþ]‡·(sÆá@·ð‘ÈøVâ0âHâبRçùÀáeÎ9¼•ÄÖß¡Ö|æp¨2Ì0†CYùmâíÄᣕÍíÿ{CiüŽPþK3’áÎsqqtÄ”VJ¸»”ƾ­q*†c”¯âp,‰1œmq¬ÌT³€áû¸ˆH0 èGWuT¡ÃEÊ9|D™Ù8aÂÏ#ûâ’(Öšy—(“q¸T™Åá)„ÏRŽý.q9qñQ^]Æø1⺨RgXf–k¼"<Á\¼:†+•/61\ÉyVW×DŒVnÂéWo6k4ÞõÊos¸ŽÄZÎVL\OÜ@Üñ:j»ÃõÊìˆáåwÆp£ò{J±KÉ¥u°n°µGJ.̓ßëÛˆ|!üXØÈ—À6¶ùrøî°í°aÈWÁ÷†=q$š»l l4òð/ÂvÁŽ!ÿüž.%%õá_;RR"ðû‘7‚?Ž<vvyךÁšÀÚ"Ÿß¶Öy|l ¬ò9ðëaÛ`ÅÈÏÂÿKÎó/¬jxÖ†Ý:¾·¤yx†Ê&ÜÅBUžª¡®w©ºÃó/íÆ„í`øp(4Ñ[²>ÜÞ3Ñþ’‰ÞlœT;‡áÃ÷t{š^5<ÝÌG°¿dÂ}Ò˜¿î%æ3äa‡ßî$æsäè»°‡ÁÎ-8ñ¼Áwº9€ü<Îv9 -;œ1JÊ¢‹µè‘-z`‹ÿÅ¢»”ÓðÍ‘W‚GO(¿…G/i¡Jl›0†¡‡´Ð™|EgqrXì¯Ð©Æ¢ÿ²èÏmWº-‹>ÊB?X¬)T¤±èr,z|‹5•¿Ã£+±á†1 = Îp‹5·8×Ãßf±ÛñwâÄæoÃùkqBÚÊ.ÿ1N: íÇߊ¥±P|ZÇ¢Ÿ´8i,îŸÅ¾j7ÃãÞÙ“0ì‰o ÅyaO…ò9Þ?‹ûg±+[ìio– ×÷ϞϊÍ~á‰îÍžE®ÇŸ‘£ÿ²çc=<ôJúý–‡}ÔÛ;Û‰÷Ö;Ûû r¬›³Ö;ß9æö¡J¼ðÐ@æö¡<ô[>T†‡uóÑï{è¶|¨ ÿ»÷btäÞû™Pèïmä踽ƒðð¿y¸¿Þï‘£Ãðq¿ü›`Xoÿ»Þ×69þwÝ«ÿž'ëàãþù¸?>z%ç‹ÿ#vÿeäÀãÙJà>û»‘ã¹ð†¼>ü>äçC§%ðü$ õxnØõØñØ÷x?ØØ‹ËtñEØäà±×&ðü$žFþ²Žyù+ðxÿ4&‰ç! e•Àš$Ñá$«!ÇZ%±&Iô.ÉZÈ¡n’X“$Ö!Y9TJ½CFÏCòqx¼‹Éw`è’OÂã÷&qÿ“8‹“X§äï``g2&À»àYЛÝ‘£ÇÐeX¯½w€S/x†ç(Øë솃íBŽw?À³à$ö"Ç cÞßß`}ܧïo€³,Àú¸OÁ1äX›àç0è€àuä8<;ÎÍà-ä8ËÜÎûKä8‚Óa {9NŒ{Q€5~ƒü{ðšh^<ßÁSð8ÕƒOaÅ.Çéྛc=ø›p6›‘?g6ÀýKÙŒIa_ pïRè•S ä5‘ãN¡_I¥‘_Ž÷/(A^y=x¬E -÷/….,…{‘š¥°‡¥&!Çz¤°f)¼¿)ô‚)|w -ïFêcØ)ä_`;ƳÆ>†¢Lã^¤±w¦±'¥;#éöóèEV#_£¤«H9Ÿv¾RlüÿêÇ+»¬šóÕ¯aþþGþÌê7³t€èY:˨«ŒºË¨§Œzãûû"÷CÿùVúãiò`dþ+Îofѳ —ÑHðŸùFƒÿÌ2¢g™€ùIÈ“‘§€ÿL;O3g"Ïÿ™q6DÏ2OF Àæ[þ3ËRˆžeæWÉÌj­ÅÚz™Ù £MXÛ"3[e´k;ef—Œö`mò~äà?ßîA<B>Œ|ügÆ£=Ëqÿ™ï4øÏ,g z–ó¬3뺱î¬7ëÃú±0ãŒqθ€xÖ8o\D<Ãù\+ø¾aÜ2î Þ4nwop¾Å#×Êã.ȳp6” c#Ùh6†cl"›Ì¦°il:›Åæ°¹l>[`<1ž/ŸÏ—ˆO8?ã‘kå…ñ’²"¬ b¥X0+ÃÊÇŒÆ)ÄãÆIã4â1Î'xäZ9Å÷%ãŠq ñ²qÕ¸Žx‰ó¹V®×YV‰…°*¬*«ÁBY-V‡Õe X#Ö˜5eÍXKÖšµaíX{ãžñÀx„xßxh„4ôŒ}ÝxíMe·[ïð}›ï‡|ß…á¸÷MÚÊnçð<§Ê½­gÈÏu‰^/_Âçð| _9êöµ)óƒnßš2ß9èö½Œ~pÐ%zý(£Ÿ|àö³À_Ür¿:æö›×êïšÝþÑŸªivû[FÿhîìiýÅ‘ÿ%ŒÄ!î -bès#qÆÃS"¾ã“²šPïl$1r’TognɼV“kvKá!—Ò±ÙR LíTÿniÓúÄ-)“žï $£#n™d”Ù³e‘QV¸es;ewØ-‡Û)ß9tËmÊäqÐ-¯me> nù"HAR˜‘â$Ÿ‹¢&e RLÙ­¤me) ³#—&eHYRŽ”WïéÅ­‚Œ*"WbRVÖàV¹*©f©­®ìVÔ©©>C¬n¡¦L-Ýj›2ut«+°ž e} n l+jpk„ܘ4!MI3Ò\½§·n§–Nzñþ­ÜNmøní [[S¦ƒní=f;8äÖQFøîŠqgEnÝÜNÝ™Iöïá1ÛÓ!·^³½rëc[ÙWƒ[?ä0ÒŸ ƒI8(΃LÊ!܆ÚVÓà6\F#,”#5¸B#?F½··±ÈãHFãc(&ht›h[9IƒÛdÛÊ)ܦ"O#ÓÉ 2“ÌRïéÅm6ò2W©Ï<2߆j)³,z ·Åd Ç¥ªeÈËÉ -¥ÙV’U6T«‘×µ*n¢Ç:²ÞB±y#٤춙l±PlUõÀ>ÛÈvªÈ;É.=¾^Ývk곇쵡ڇ¼ŸðÁl‘ß"o+÷:D[(ŽhúÔGÉ;Y¨Ž#Ÿ '•O‘ÓŠw5Íö9cCuù9¯äv\´¡zß”ù€\z ·ËäŠ ÕUäkäºÒl’l¨n ß$·TÜDÛ–Š;ÈwÉÇÊnŸX*î!ß'TÝl|ž‡šú<"m¨>EþŒ<ñÁlO‘Ÿ‘çJ}^—6TŸ›2_/_Ëï+š¯‘¿!ß*ÍöùÞ†êäÉO*n¢ÇÏ–Š_%¿)»ýNþ°Pü©ê}þ"süÇBõoS ÊŽ”Ò …¡g6Êhª¸zÜ°[<‹z|ä4!F‰hâ×ðIB“Òd4¹…*…ÖÙRZÔS!§¦i”|ÒÒt6Té‘3ÐŒJn™hfª,ÈYi67Ñ#;Ía¡È‰œ‹æVvËCóZ(ò©z¸uËoQ/€\Rò)LiKUQäb4Hç”±¸×Ô§-iCU -9˜–öÁle´v+kQ/‡\žVPò©H+ÑZÙBUEëlU-êÕ«ÓÊ^5i¨…¢rmZGÙ­.­g¡¨¯êáÖ­E½!r#ÚXɧ mJ›Yªš#· -•ÜZÑÖ6TmL™¶´Çö¯èÖv´¡ê„Ü™vQš­+ífCÕ¹í©â&zô²TôFîCû*»õ³T„!÷§”ÝZ*!¦áªn6>ÏM}†Òa6TÑGБ>˜mòh:F©ÏX:Ά*”O'pœøŠn“èdª)ÈSé4¥Ù¦Ó6T3‘gÑÙ*n¢ÇKÅ\äyt¾²ÛKÅBäEt±²ÛKÅRU·nË,êË‘WЕJ>«èjº†®µP­Ó:Ûz‹úät“²×fºÅB±yݮ춃î´PìRõpë¶Û¢¾y/ݧ䳟 ½j𠑘P`©¦˜A`ù - XY`5µÖØH`;v&0\à0£Fœ(pªÀ™ \*pÀM· -Ü-FͲΈ -½! Œóûe$Uu…á==@ÏÂô KÏ ÃlÍ@÷ôôôLO7"û&*`AYDöÕˆ-ÊêÂŽ Š€¸*X$VLLLÅJ¢•Ä’ÄDcLbŒ1e4eÊ2‰IŒùßÿ^Ÿ¢Ë×%U©‘Áº§ê}÷ïsï»}ß}÷žw.ÙìHv²ÛhŸñªÎÍÊ\mÓI:¨Î—Žª;£&­‹úÔÓUò(}ü÷|›ZÕågÅB6/`?É"ÒOÛ~í³§Ã"õT‹_uЯ£{K‰ê°t¡,ao]mjmƒtS“î”ÝØ&`SkãRª:)e”¥lSNö +Èžd%YEV“5d-´ïÕ>ûIÕ²²BÛ vaO­–ÁJõ”*ÕcþÒz´Ô¨¾Ìa­z.Çì¦õĬì¥m®”:Ê^|ÆÞ6µvªôQ=]B”}Ø&LÖ“Û£-gJ½êk%¢z.ÞaZÏ—(eïm$cdÙLÆÉ2a·Ô®Ç*HëśԳÌa³zVº0®µk¤Eõ’P½>+“ÚæéK™ä/ û‘’ýÉä@r9Øn¯ýÜ–•ý´Íf¹Põ¶¬ì¯mî´Ö££wÈ@Õ»eê}Öªtô½‡¨ç~J9„£fSk”áªg°ý<Ó?‚͇³Ÿ‘äEä(òbÛ¯}>ìð"õ<&£TÃÎHë'åÕ'åRÊKØÛhrŒ­µÍ)£ú«úYkWÁƲý×ljís2NõóØm–c›ñär"y9‰¼’œLN!§’WÙ÷jŸ? ª˜•µÍ‹.¼Bk’ÁIêû>­OËdÕ¯ÊÕ¯9œªž7ä*Õ¿ÍÊiÚæ-Ä Ë¦ñ¯¶©µ”ªßEÌ°lÛ\CÎ"¯µ=Úò=™¥úD—´þPf«þHæPÎæ½sÉëÈyä|r¹¼Þn©=ü]®Sý‰ÃyêùÃùêùÌ… ÒµíÚËBÕ^Ä­´î˜•‹´Mž o`å"Žy1¹„\J.³ýÚC¡ —h­ß…Kµ¶‹ —imw‡ËÕSæpË9’•6µM…ÃUê©rájV®â½kȵ¶Ö»j]¸Vkë®SOÈ…7²r{þ:y¹Þöè½Þ¤µ\¯þæ Þ¬þ„Cþ‰ÜÌâ›Úæ‡ÔÓß…·²rï½Ühk½k 7jíÐ nRÿnfå&ö¿…Üjk½k” ·jí¥·©g¬ÜN¹ýÜAÞIÞEn'w;É]vKía¾oi=Á…wií$n×Ú).Ü¡µÓ\¸SkgÈ.Õ³²r·¶™ãp»ùD{mj›y÷©g¡ÜM¹-ï!ï%ï#÷“÷Ûµz× Ö÷ÜÑK]xŸÖ®pá~­], ­×eåÚæ&`åáƒäAòyØök)ÔÚ[3xHý›2xXý[3øúïpx„Ž‡8†‡mj›íQÏ.>ÊÊGxïcäãäQò˜í×öºðq­½'ƒGÕ¿?ƒÇÔ ƒÇÕHž <Î’|Š!O«>‘ƒ?û¯µ7^KI{ëäò\¯C[g߉xpËY‚uœÆrð­ñ ÎƒóJ¾ žë74"¿¸ý›Ðˆ´œ@<}¡ñpž~V4Ö‹°wCJr_B‰uâEÔÌýÊõÖoèWPnqÚü%"ˆ¹|î¯Pbœ^D£Ü_¢Üëè×Q"~z÷9oÍ‹¬6ÏáAœñt4¢Šk<ÏäÅÚêð^J:álÕáÎ7yx.ÆéC^œ‡qúûF@cŒ>ä¸>äÈyX¿¾ÑN¬\ß8‘üa))Àx|ˆx>ä˜C>vQ>öYΉ…;p½ãèwqíÆé¯ðϸþ -¹,DŒ(|:lùpýóZø7\Q ýá½þ'¬üSПBãÄTˆlDZcÎý›ùr1ÆéGêGž[ŒÖ¹:ÿÓ¹®*hÄ?¢œÙY—wDJ°K°»`®JÐ×ORÒãìú)®Ac®ºaI𼥈^ÌOóSŠXÀü0†Rä ˬßЈIË?"Pó@)ÅÜÍw—â+˜nÕAãë@–Y†\ŽõP†õ\†}\~åaë7ô«(;m—a}—M‡~å3¸NAÿå·p}úM”ß±ê Ï[öœ£¿‡ YgùÛø_Œ¯ìGŽÆz-{úO(‘·WøSÒëºÙW%Æ\…窜‰ ÙkÕ6”È&+‘ÃVá;X‰œ¯YaÞyå2§ Öl%æ¥9o ÆSiÝì¦c¨Æi¢ú…”ôB6T‹ñómD–Xûmhd:ÁθºBGá{ººÉòá*†ÆP‡ñ÷ê‹þ0/Áhä/Õ˜—`ÙJùXÆÖë¹c«Cf×ã¬CŽU—‚Æ·#8ºú 4N•Aœ{#V×!×!/½/Òý‡ÂИÖeySsž áKž }(Æ»@™ƒßC£ï0¾ÝaŸ£1‡áhd7aœÂOï<Œ9#†Ô£Ä…_Æ«ÇóÔ#O©ÇÕcÜõoA¿€û¨þ)‰`Þ"8CFðŽ"ˆ¬ÈLhìÓÈ7qáÁ}‘gE0ϼëüGü ˜Ÿ†¸Ö@ãÙ^Æ…þ£{sÅzŽâ£Ø_ÑЈ‡QärÑ#ИË(âOk2Š;Š¯Hû4úS‘Æv¸Æ§¤û¨ñ§ë¤ë¤ñû¸NCŒÏÐøcèŠÄð¾c˜ÛöD ùMl°£ëbØw1ìÞw óC^ÃØbÈ8bÈhbˆ91ìßþ·©.,ä&ä¹M>\…И¿&Œµ '•&¼ë&ÄÓæôG(±¾›±šñ|Í؇ÍoCãËÐŒ÷ÝŒg‰c­Å±—ã8Ʊ~ã˜Ï8Îvqœâ˜Ï8Îvq¬£øwEZŠ 1-xg-ð· ¾µà¼Ôò4ÞEËÏqý±-1%“}q+÷‘@ÜKLF‰õ—À^N`í'qþJöHI±(‰=’ÄúOâ;“Äw(¹ïW0çÒ^Îóœë3f¬U,G•WL\2fÌX[0+.åRå‘ùdSkÅ©Bª"Ò/éØufLÈ‘¶kÞs=cÆŒµŠYq«XìˆTJO9Ùƒ¬ {’•dYMÖµbr1cÆŒµ³ò¨ £Û‘çO\2fÌØWѬŒ#$éˆôy³bTUŒl"›[{XÆŒ3v–fE¯8UB̙Ϙ1cmÁ¬3_’ª?9€H"“CÈ¡ä°/kpÆŒ3ö…fåSÃ]|#%}n<3Û²ò™QT£É1b22cÆŒµ³2²±TãÅÄ%cÆŒµ³âÒªÉbâ’1cÆÚ‚Yqi -ÕÕä r&yÓÆŠV³¨f“s$ÁÎŒ 9­:ÎÿϼçzÆŒkËÅ5W숴ˆžÅär)¹Œ\N® W’«ÈÕä1y™1cÆÚ‚YÙÔZG·#ÏŸ¸d̘±¯¢YÇzIG¤Ï›£6Pm$7‘›[}\ÆŒ3vvfE¯-TÛÄœùŒ3ÖÌ:óÝNµƒÜIî"w“{Ƚä>òî/kpÆŒ3ö…ö?ö«°Š¢ ÏìÎÒQ¤†P„Л E¢€é%ô€Jè„Þ $”Ð¥ H—ŽŠŠ -AŠ4) -¢‚T•*¨ÿܽó¸<1€yË{vøf¿Û[¾YöíÆ÷Ôl±¹ð÷ÿ_[Æ÷Ì<“-2ýbHü"Kl‰-±=Íø"[ß[{æ]´|Kïð½q5W½2òY þ•Ï:på³Þêc¬~øWž›Á¿òÙ -®|v€¯äåºvoéÝ ¾¢7®fœ›à/™W&‡­þøJf®3u |Kï ð½q5ãäœÉÄU΂ås\ù\4#—M|%Gׯå*ø–Þkà+zãj÷ÎÐ-ð¯|îm÷Ø7שò܈“0²``«Of<À¦O ¾’e\Íþ·ÃTà_ù¤1¦_ÉêßÎbð©L0|Kovð½q5>ÿþ’Ið—Lòƒ«‚²ú"à+™¹~EÁ·ô–_ÑW3NNið—LÊ‚¿dRÁ XÑô•ÀO²×wSeð¯|ªk‚¯dõoßµd]Y[Ö— )‰Ê!›ÈF²™lAÉÄ1JÌ– e ±AlmeÙ^•2ŒR‰íb§Ø'öÉ0•KœçÄ9ÊHéeÙMö”½)­¸+–‹?)P‚bŠX-–Š)ÏJÆ< -4˜LÅ–^ÈŒ2€‚(‡ÌOyU^YPD‰1TŒ ü”ÛˆS^ƒ© YOÖ‘ d0%U9eSÙX6—!”\D‹Ñb? –!"FÄÈv2Tv ÂTDv¤Ôb‡Ø%ö‹ý²£Ê­òˆSâ¼8O™(ƒ —Ýe/Ù‡Ò‰?Ä -ñe‘(¥˜*Öˆeb*dzQfce1˜LÍ–Af–™dfÊE9eʧòÉBb¤.†‰H*@yŒ8å3˜j­Ú¨PÕ^uTTgÕP05¦­ÔQÚÆlµ¦PjCm©;…S/:H=¨'õ¦CÌ©pÕSõVýÔ@5H Q4Œ†S$EЊ¢ 4‰&Òd©¢Ô(­Æ« j’šB³iÍ¥e´‚VÑiZN+i5av†.Ð%UHVET1UB•T¥TªAµ¨ÅPMªMui#]1fñØ`Í)„ZPKºN7©u¤Î´›Â¨u¡=tÛŒî6˜*§Ê«T%UEUUÕUM…TVõ£4ˆúÓ@L£)šÆÐXUGÕUõU°j¢šªæª¥JI•TšJÓi&M£4KeT4ŸÒb:F h-¡ã*ÐŒ3ÀÂ9\¿@ã7‘‘ é"€ˆ£SêL_ pã.$ƒr Ÿi4- d‚̲ÁÓrB.È y /äƒüP -óŒ"ð ƒg¡”„Rð”¶ÞtYxÊB9(àx*B%¨ /A¨ -Õ :Ïxj@M¨µ¡Ô…zP?ÖûqYƒxÏŒm  qœsš@Ó‡\=ÑÖ’ò M) %¤‚Ôð< ! …@x -Ô}ßjfõ-­¯8žµf´1Y¨i í,ÖžÑæ˜ß:Y¬³Õw±ŸuµYshaöi¡8¤ã>+Av0cÁ¦1}7Ówgô€pè ½˜õ¶Öèc¯Ö×êûY}Æ‹´g zàÝlú!Œ¡0 "`8³Ö³H{V”Õ´úQŒÑüw%Z¢ù‡±úô¦/ôoFÃX›g€ŒìÇÁx·9_ðïÎrž¾?ùæ®Õ\Юû7d¾––o¢ôÜ3peàÚÈÕ=+×÷ìV…r«ñ9¿Âf•/jÖùâv¥®õ®ú^ÞRâ¹Æÿ³Â7àlÖ`£Î63ïʾ›[ñ½ÜšïâPónÏ7o˜yÛvæ¶+ß”‰ûây_ŒSÓÝô=´ÿ67 ·™Q[{sMíËU´?WÏ\/sí»WùþŸl„Çh¤Í¢Ñ‘q¬ão6ÊÁGÛ7}´éÇz˜?N»bï˜{•rÙÓOdLvD§0&1^Õ®:ámªÍ¦Át˜3a¼³aGæÂ<˜Ïý"X K¬Y¯30jWž°ö†ÇèRíºtÛ2_+د„U°Ú¯ñ0ÿM튽coŽmõkáöï2Ö¹ÍÏmü¾ö Æ>°Ù‡°6@ l„MðlæÈÇ°>á~| -ÛÝÞÛª]yÂÚŽX£Úõ<.¶ËÁ?s{¶›±×1ÞÇØ£]±wl¿ƒîöìã cü%ã Æ!íªÞ¾rðÃ6ûÚfG´+ÔcGmv Ž³ÿÆäßšþã”cîiÆIÆwÚU'¼±Ù÷p~€á'8çágŽ\„Kp™û+ð üÏõ.ÀUí9ýö›ƒ_³ÙuíºtÛ ¿i³[¦¿Í¸c²?àOöw¿kWìûëwý1™0½d$‰=U|WFÒžÛ#&õMfúäŒTŽèŒ”ŒÔñZ9…îÜi_ž´Y| -Ób:Lx”3af Ä,ÌŸÆœäx'#û}Ö À±ÆYugøû’ËmœÛmœG·B=†ym–óc‹ÄB+¬[¡Ã"£Ï`QÝÊô³Ù³XK`I,Åü9,mEË0ž×­Rþ”uðrXÞbLÿãEÇóŠºÕzq_*Ù¬2¾„U°*VÃêø2ÖÀšX kc¬‹õ°>6ЭÔËûÒÐc4ØfÑƺÕzÏ°‰ƒ7Åfknúæ‡èVìÖ£­Lÿ -£#Ú–Ñšª[µö¥ÍÚc ÃŽØ ;cìÊ‘nØùï}°¯5«;£'£—nå ¼/ý¤eÔ‡mr[èxD÷|èu|Ô?¦»÷8n•èq‰ž ãIÝ•éu|Ê&÷4ÛtW¦×ñ‡ü³º+Óë¸]¢JwâsÄŸé®L¯ã.KüsÝÕ¸Çq·CþyÝ•éuÜs]f/î#þâ¿ïÝWT1Ž¿tÈï×]™^Ç_9ä_Ô]™^Çùƒº+Óëø’CþeÝ•éu<äEwezÛäŽÐñªîÊô:µÄÇtWãÇã½&Ñ :^×]™^Ç“6¹7è8¥»2½Ž§ògtW¦×ñM‰Î*} ÏÏë®L¯ãKü¶îjÜãxÑ!ÿkÝ•éu¼t]æ7x™øÛü¾wt_QÅ8¾ëÿîÊô:þÞ!ÿžîÊô:¾ïÿƒîÊô:þÑ6ûîºt;~èÿ“îÊô:~äÿ³îÊô:^qÈÿEwezÿêÿXwezÿ&Ñ'ø©îjl+ü,æc*ëi “qÌx¦Ÿ`&0™IÌdf5f -3•d¦1Ó™ÌêÌÌLfMf³³63›™Ã¬ÃÌeÖeÖcÖgæ10213›0›2›1›3ó™ÌÌBf³˜b¶d¶b¶f¶a¶e¶c¶gv`vdvbvfvavevcvgö`ödöböföaöeöcög`dbfaecgŽ`ŽdŽbŽfŽaŽeŽcŽgN`NdNbNfNaNeNcNgÎ`ÎdÎbÎfÎaÎeÎcÎg.`.d.b.f.a.e"°=k"Nb¬DÆË(ñôK>àÈ€´IŒÂi™\éL”±R Iâ`©˜,íÓKÅjÒ¾z¥0E¾?R%ÎrdPÚÔŽÂ4i™ÁtÉç–™Ò·^%²ºŒ’§XC2 ËÀLéÕ¸T¬)í›–ŠYÒ¾yLYKÆ-P¬-™Â(Ì––ÅŠ9’iYfÖ‘¾­£0WZ¶­DÖ•QÚG°žä;:²¾´é…yÒ²k¥³ŒÕݼ¯UܳTl$í{—¥Wß -fùæþŠM%3БͤÍà(l.-‡F0_òÃËÌé;²ÙBF­X(™±e`‘ô_*Kû‰e`HzMŽ)[ʸS[Ifz©ØZÚÏŒ`ÉϾA¶•o˜…í¤å|s}RñÂvübÅŽ’Y -$¾Y±³d–A‰o3Wß^*v“ö+lØ]ήtdisg©ØSÚßeÃ^rvµ¹>©ØˆÂ>Òr#ûJ›{ËÀ~Òk ûËÙõQ8@Zn(J¯l8HÎnT,™MeàéõP•–["8Lò*—ÌV!ñ)ù§GIf›¹.ªØîoŒœÝa®…*~ÆI¼Ë†ãåìn˜ ñsSñ>˜$ñ æ:¤âý0Eâ§Jæ L“øåN—ü+Š3$sÄ\T|Ô†³äìqsÕQñ ˜#ñIΕ³§`žÄghí)‰Ï‰ϙ+Š/À"‰/šëŠ/Á‰/ÓjT¿ÉW¿]ûÚÕ«WH1Í_οIŸðM ÝK:À8z õ0ÀOßßô&Ò|ÒU¤íHß%Ýb@"­dÿÒ -ø†”î‘„i¤ÿ%=f@݉µH®4 %‡^?"Í#ýÄ€àZ€Ôa¤’n7 VØ ±^ò~AúºÕéÞͨIJwiF=2é®1ô_¤g ¨E÷LVsÒý¤ëIé¿“µÉ€Úô.õ¹9wd!]M:™”~»ÙóI?#}Ó€ºô½¹E¤tåv$=DºÕ€zÔ?÷KRZÑëŽ&½HzÀ€´[äåÒªž×À€F4¹ iÜF_’~`@cú]4êf@ÓÃMvÐŒÞúš|MJÿǦ#I_%Ýc@Ò‹ÕW@wQ>}ý"óÇ’Òõå"}œô()ýó“n"}ƒt3éiòOž¥Ïô&V"¥û§`éyÒЂæ¹E_Ò[Iû+}šô4éÒ³YáRZ› -O’^(Ê6 ˆÖÌ"ƒt7éǤ_‘~JJÿ×âîÓ﬘®«ø8@(É€=ᇒ&’.#M ]N$½ƒ”ÞPC«Hé2´†”îƒÐ¥ToˆÞ”B÷«ÏªÏ›IiþC+¥û5DÇÔ÷=IãMº“”ê -í¢<Ígˆæ5D÷ohi€ô%UÇ1¥‡ISH«Ï'ÕçS¤É¤g”¾E×Kó:Gºœô)íÈ¡‹¤t?„.‘ÞBú>éùðï |€ñà‡$Í$q>ÜhÕèHÑ]„gžyVá–Z®ÞAH£µ¬*Xd•–*£#2#ú ¸Óâ”Æ3ý ×î*¦…w÷î*¦™;KùîBÏ<óÌM,Wï4H‡ú¤-¡d ŽS뜹ÒÑ+$´’¶>µB‡×nwš_¢t§uºäÀmfÝ=ª9¶òÌ3Ϫš¥”«w*­ó=H‡Ûœ« -ÏÎa‹‡6mªBý%Ïþc-çªÂÛÂd°Î°õzü}t[@iÉ~= ®ßÇÕîî÷-Ï<óìûeá}<õ{ék¾å³VD| -›¹VGîœî±È7?·î!žyæYlÍ|2[ ‘«˜iáç6wZ ‰ÃϘU7<¸¬ÏÄá¹wû3ñw;gPo)žyæYZ3ý{g@uØXaµT¾ù`;„Wß°Å]óLìFóÃN0k~¾Û7Ìl@s]Ñ-AwžyæY¥X"ì»÷÷ZäJ`}?…ƒËŸÃA=‰{æ™gß'K-Wï =Ç© J*×|ŸÎý.oGôAp§•ìxáÝÅ—áÚ]Å´ðÎâÞ]Å4sg)ß]è™gž¹É‚åêéðéß¡d Ž“§h?ø‡´õ©:¼v»ÓüèH€ÏÁºV‡³`Y±ÝgI–Ø»‰gžyv#V-z“ÿc)ôìöÕuYŸ/Á¦mUxž[¼/ɦMU¨_½ø¬;°ïºÖî3üûÕ&E‘…_¨Þ¼³]–e#°°d–œYrT -*A‰K0‘“äœ ’ƒÞ)Š(`öNÄ;ÓyÇé'GR@2HÆšêÞfv™éþfQ™á毯þªzÿ{UÕÕ3UÕ®+ìú<š‡˜; £4NnL€[¿ÁBŒ³Ó7OÍÛûï@¾ŠÅ‘Œv@¦»´³\[Féܫ󞜾ƒ¼_ƒ¾z†@,äÍ «@Þ]Ì ýÞæ›Â:;cý†é›È]?ýnŒÀõN¬ÖÞçïÄ7ON‡µkàGˆR]ÀèˆÅV¿Ù\~ v}÷ÕáËç[.‚°+Ü<™}„½àæÉæ<÷œ'›o#äNO €ø]Š9àî‹Æw‘÷ FÃrúÃÁö~;Ž0jˆ£%1[c%—y¸~Ëù2ìo A8üå­ÉÕÆàG³µñ8òþ’„¥ÿ„¼!á|ð£µÇ%r²+À_Ö×¹‡®?Z_/ÂÝ°K)ÆuàGï7ÍÖ£¦ÿ[5Ü -þò/֌ߋ;ãN𣷂óγ îŽµß ~´öµÜÄà/OcÂoU‰¸OÒw. -*õ{CÝ/逋æü>b<(«?ÊüS®¿²•2Ÿ”ù”̧e>côsVÒù[F¹`¨—$]¹e”«zÇ„®£d’¿6 -–9DæP™Ãd—9BæH¸+Þ9¨¬‡Oàcx ­‚îЃc·¦×…àcü3m¢7h+\à ƒГ¶c½G;éz>…^°‹»¢£1vcaZƒqÜ™vÑnÆ'ù4}F °í‹X”fàL£/èZAßÒWôøþÿÄX’rà2|FC1“sè¿ÂÁgù<–£hN ÿÑA¬„Uq¦ãt”NÐ):C ±&ô¦sX'ѺLáKØ{a6À†ôôÁÆ4œæp?ÍÛø¾Ä‚ƒ°)‡`KœÌaìà+| [ã= 1®p,ÅöØÛr2§s*|_Á×x>€ ÂÎ4»ò`.Î¥8C¤ò¾!ËsEÎâ*ø×àj\‹ëp= -Ç°;¤W¹ìàá¢,öä†Øscn -ý /ô‡ÇQ£Õ0§!Ìmh£Ðø8Ÿ Í´…¶Áu Åpù#{‚v`$½OoÓ‡ô.<OÂ@î†Qƒ…`&ÐZŒç.ô }*ÂùŸ¡Ï1i/\Â$š‰c1¾¤ÑJú7}Mû¸9 Á03°õ…a4 Ks_úNDñ9¾€åù(í§Ù8‘Ð!ÌÂj8žŽÐÏtŒNÒi:K‹° §óX§Ò/t….ÁH£àiÌÆFô2ŒÆ&4‚ærÃoòE¾Ìc3ÅV8…Ã9Š¯òulƒ÷r ¾p• q·ÀØÛq -ã4 c`ÞñAc…Ýx—àL.)Òø-‚¸WâÊ\åš\[rm®ËõµÒ< ŽcEë9¶s+!Êa/n„}à7áf܃÷ó:þ–Ð4ZFKi:-ǽâŒ8+N‹S¢h/ΉËâŠè"ºŠ«âšè/ˆëZ°¢iš¨+F‰ÑZ’–,¦‹Z¼VH‹ÓbµQO,ÒR´T±V¼ ¥‰WD}qTü$Zˆ–â„8.Ö‹¢£è$6ˆlÑCôűQ4Ô@ÜÅ 1Xc±Y4Å$-Rsˆ-¢™¦…Š&b®˜§E‰m¢¹X*–i‰Zæ#ü#Oæ©x‰ÇñLŠá‰<›çŠŠü ~Ïó)ŒðóÉKy9¯äÕ¼ˆäÞÆSx^æñ<‹byÏáy<Ÿ¥~ŽÂy!/!/㼊×ðbÁ¢²¨"*‰,>Àùs£(u5]ß{ž¬B2@¨ÜÛeN&M‹¥OgZbŸ<Ãð¶RðmÆÒÿKŠ†U†Ê»!B‘öâÖîÑ?­5Òb„(ˆõ¨ÅÉö›¯L R ýñ)èŽÏ îþä€B.­x(lᛉf½($©2Ròø¤BÚÍoBÅ,oqNhò,OÈ\„Ê&ÏÆYFÊyD©38VÎçvãóˆ3Ÿ¨`ëRØxâ‚ÞU*è{I2ÊäƧ˜o£`ñ銋xþÅóµKxŸ¡¸”Ñ*éõø™ùÚ¥½Œ/“¯]ÖËørŠ+­ò^Ï¿b¾v%/ã³òµ+{_Eq5£UÕëùWÏ×®áe|Í|íZ^Æ×V\×hÕñzþõòµë{ßÀBˆ†¶ñ<*7±‰oj¡5ƒæ¶ã·°ÐZB+U¶¶ðiãQ¹Gñ½6ã·µÐÚA{Uv°ðù“…ög¸Ïöùï÷¨< ¸£M|' íAxÈvü‡-´ÎÐÅ6¾«G¥›âGlâµÐºCÛñ{Zª½lã{{Tr÷u±ôqãÕÏ¢ïþ0ÀvüÇ,´Çá Ûø'-Õ§lãzT+âbäÆk¨EßÃ`¸*GXøŒ´ÐFÁhU>má3ÆòéÆÚ>ÿ8ÊÅ],ãÝxM²è{2L±ª…6 ¦ÛÆÏ°TgÚÆÏò¨ÌQ<×Å2Û×<‹¾ŸgmÇŸo¡= lãZª‹lã{T–(^êbyÞ×2‹¾—à -ÛñWZh«`µmüKu­mü •¿(þ«‹åE7^/Yôý2¬Så+>¯Zhëá5Un°ðyÝòé6Ú>ÿ&ÊŠ·¸X6»ñÚjÑ÷6xÓvü·,´í°Ã6~§¥ú¶mü;•÷¿ïby××}ÙŽÿ7 íïð±e¬†NâqNRª8Bq”âXÅñŠ‹(NRœª¸˜â’ŠË(® ¸²âêŠk+®¯˜ôqW©qU•”]èlª šY’É Mùëlª¡bÖ#dˉ妳©FA¸Y•¾N„+ŸHM5f½ˆŒs¡|¢u6Õ$ˆ1멲W'b”O!MµÄ™õ ƒã•!NyÖÙôÉ48Á´”ÍÃE”9AE%êlzVÈÃEM{–ÁIÊPTE%ëlúT58Å´Ô08UR”šÎ¦OmƒÓMK=ùÄN¤+ÏâŠKèuÓ'Ûথ±Á¦¥”TÕ [Jq¦^7}ZæáLÓÞ&—6ím¡Œª–Vý”U\N¯›> þ•ýꀢø³@ @z“*=@¨¡÷bèE¤Iï½÷&E@iÒDE1€" -ö†ˆŠ¨ (ˆ€ÒâÛo×åvöîÇ…ßݾ3ÿÿ½ßûÞ›/³ó¾™ÛÌÌ•²˜K[L{}éSÏ––3r«O'ËYLW£-¦»(4ÏVV4r«OO+ZLc,¦Ÿ¨„4ÏVV1r«Ï@V±ø!6¬jñÃõï–>U1Nu`¬‘[}F™k1cM¬a1DM¤5ðl-`œ‘[}&›g1Ó ŒKºÙ$.éöâĤ¤#—P»åÇ(¶¢örÊwR\AíÊwQK¾&1éödŠµÈ×QNãÜ®C¾‘òqë‘o¦|"ņäÛ(NQ¯µòQ›“ï |E½ÖNʇRÜCÞ;1é†>ö^ò¾”ÇSL$?Nù–¸¤¤"ä“nFPœG^…òt’W§<#EšKRå™).'§<Å•äËÌþkÈ›˜ýד7§<Šâ&rš×ͬ·’列V{[nÊOQJ>€ò“G’¢ü´À7$ŠR~Fèߣ)?Kq -yÊÏQœ¡¿“”_ 8›|š™Ï×ßÊ/Q\¤¿”_¡¸„|å×(.'§µ½Õ…âu!´pÊPìFÞ‘ò}{g6yz›µ¬”¢Ø¼å‡)"ÏCùQŠÃÈóS~BÜùg™q®'ŠqŠç‡qr§…qN'„q*D˜Ïg0c¤5Þù£¯Ef‘Rf¢Ÿ úL²›1§s›Ñ8¹ò›­f4ΞÂ"¥¬‚~¦Œ™§³~Îêó)eFã-g¶¢Íhœ~1f«’3«šH)+¢Ÿ£)c&Æ _[ó©cƺ`ë›­fl$K•$&ÇËr¬)È–²ƒ¬,«Èj²º,+ËÉU²¼¬ WËþr€$˲§ì-ûPÏF²±l*›ÑSq²¶\+ãe]¹ŽFš('É)r*:BŽ”£å±“ì,»Ên4zkÙF®— ²­Ü@ÉÅr‰\JÕgÉÙr®œ'Äål¹èì/é®Ò1×BˆUû…XGçæŃt–D§>O'Í¿¿§ÒÜõך7 ·²t>û¤§Ó)Y&ÚÕõ˜…~7h´æ@+§Õ3—sÓý>¯™ç¿']þYdö/H»òV!`a¿ž,Bwý{UYœîý%h¿Ñh¯ñäKÓžãÿ(eioJ^ÝhºÓ{ã+Ð ^åbho«LûZUÚ ü]Ò¯Õ&t6FÐݦ(ýVÓ¹¨{^£àÙ1±µ—¿u$Ÿ!Ú±küß´Xúmv·>5é·Yíçÿ¶ëˆx6½uE½€ŒSŸN ÏvCÑÈÕy4MïÚ§™hîóo-DKWõÞݲ«‰V¢x0YO&°k–µ%o¬ƒè„ØYt]m}º‰‡líîâa+ï!zZy/ÑÛÖ¯xÄÖî+úÙÚýÅ[{ dåƒÅ+*†Ùú 7ã1ÒÆ£mí1f«Ìy\ÀWÑiãÅ$3›L>ELµýuš­5]Ì´òYb6â1×Ögž˜ok?j»Ï¦"OMgmŠiÉÃéž–žbzd 38·²(º“é¿S³ÑÍL¿—夻˜þûT¿‡å£;XÜ} -Ñm§ÖŬ;I)ÜBnú}A¿ܹ T£Û€¾Kë·jcÖ÷_ý6]»XCýMû‰ ›@SìúÞЊÎZýÿ0ÞÁvôv s¶“ùöéoœþ–éo—þVéo’þöôÇ|àMÑß¡ÔFïƒþ&èßþú®ÿ¿.Þ×åΛ?Þ…÷ÿ¿e¬l"»–P2c›Ì®#ÔlŠ•M½ç1R¢Ms0ÓÙ5…‚ÍðÊÎLÖ)Ñfyeg³ëâ¶9fn²ÇH‰6èy^ ô»°‘/d×Çe‹€‹ö1|‰XÊ®Ò}[æ`g× -¶Ü+û».n[á•]É®‹Ûž®ò`Ö’¯6óuäkÄSì*Ý·õ^٠캸m#p“ÂnöÈŸ[ØUºo[Ì6vM¡`Ï8˜gÉ·ßå©çØuÛžîð`v’¿`æ/²ëã²—ÌËä»îòÔ+캃m»{öUü5ñ:»J÷m/ð &‘|ŸGûM±Ÿ]¥ûvÀ+{]·½|[ayäïˆÃì*Ý·w2Ê{ìó´ È(GÙçh{xŒ]G¨Ùqà v¡f?TØ<òÅ'ì*Ý·OŸ)ìçùâKv•îÛW^ٓ캸íkà)…ý†]·~«°ß±ëâ¶ïgØu„šý<Ë®#ÔìGàO -û3».n;<¯°¿°ëâ¶_2ÊöyÚ~ È(¿³Ï#ÐvÑ+{‰]·ýᕽ̮‹Ûþ^IæSWÙuÛ®ÿJæS³ë¶]wµÚ öùúk7]­v‹}¾þÚm“Ä®)L†]S(˜æ`Rqk -ÓR;É­)LKcei¹µ„’iáV–Ž[K(™–ÞÁDpk -Ó28˜ŒÜšBÁ´H“‰[S(˜–ÙÁDqk -Ó²8˜¬ÜšBÁ´læ>nM¡`Zö€Œ’ƒ{6-g@FÉÅ=@›–ÛÊòrkŠ<Ü -Lù¬¬·¨ÈÏ­ÀÔQ[¢ç~n¦ŽBÜ -=…¹˜:Šp+PôåV`ê(Æ­@ÑSœ[©ã` …-é‘—ÒÊ°©+ÍV¹,°œÂF{ä嵊lê*°UŽV"¯êÁVöÈ«hÕÙÔUc« ¬AçÁÖôÈkiuØÔÕf«ÏU9™:ëº\¯÷ŒýÔYßåz € ¶÷:øPÛصJM€M¶÷ -øPÛܵJ-¸çê§Î–.×kl­°m¸×Á¡3ø kõÚÛ)l{îupèììàZ½NÀÎ -Û…{:»»ºVï!`w…}˜{:{{¸V¯°·Âöá^nÓöUØ~ܺ¸Më °¹uq›68Xa‡pëâ6m(p˜ÂçÖåÐ98µz£€£v ÷:8tŽŽu­Þxà…Ƚ““\«78Ua§q¯ƒCç àt×êÍÎRØÙÜëàCí×*ÍÎSØùÜ+àCí£®UZ\¨°‹¸WÀ‡ÚÅ®Uz ¸Da—r¯€µË\«ô8p¹Â>Á½ܦ­®TØ'¹uq›¶ -¸Za×pëâ6m-pÂ>Å­‹Û´õÀ -»‘[—µ›\«´ø´Âná^j·ºVið…Ýν>Ô>ëZ¥ç€Ï+ìîpèÜ |Áµz/_RØ]ÜëàÐù -ðe×êíîQØW¹×Á¡óuàk®ÕÛ |Ca÷q¯ƒCg"ðM×êíçž±Ÿ:¸\ï ÷ŒýÔù–ËõÞæž±Ÿ:¹\ïàa…}—{‚8ã÷´#~ô: -|_aq«÷¡öƒŒq\;áG¯¹çêçl>r¹ÞÇÀOöSîuâŒ?Ó>÷£×À/ö+nõÁ3í¤öµ½Nqëôs6߸\ï4ð[…ýŽ{‚8ãïµ3¶ö^{þ¨°?q«÷1§óãg휭ý‹×^¿/(ìoÜ+<Ó~×.ÚÚ—¼öúxYaÿäV<Ó®hWmík^{ýü[a¯s«ži7´›¶ö-¯½n“ìl˜àVïÝÂR` -,ÌÖNíµ—¦QØ´Ü+< Kgk§÷Ú+˜Aa3r«ž…E†e²µ3{íÅ­ÓÏÙdq±šù©­CØTSS%0 0-0˜˜ÌÌŒffF³³³ïfææææææææÞ,, ,, -,,|XXX -XXXX ,¬¬ŒVVVVVVÆkkk〵u€ñÀºÀzÀúÀÀ†ÀFÀØ/Ó說+Žïܳ _.CHBBFÂÜRÑŠ R„ S!ÌS˜…ø˜©€ ˆXŒ2ãXZ»Ð¶¶¨ˆº(­,m±¥…ÚV¬-X.ÐU¤ÿ{¸o—‡7å“’ÜÞ û÷ß÷œÃãîûî;gïþ†9† 2Ì5l˜g8Ä0ßp¨á0Ãᆆ…†E†Å†%†# GŽ2m8Æ°Ôp¬a™á8ÃrÃñ†† 'N2œl8Åpªá4Ãé†3 gÎ2¬4œm8Çp®á<Ãù†U†Ûé@IlK̤%n€?‘¸5”¸1®"q,Ý!ñ]˜‰Äq¼Sf›z0Vf›S‰ãñ©‘8B'EѺ×Gâde2Ù·ö`S™M£fgD±¹Œgy°…ÌfG1^ÆÛy°¥Ìv¨• ²¦%Jü &Élj%ñÝÈ>ßC)ÛÉÞ»y0Uf»{0Mf t‰r™!#ßq™)#;ÏÌ{S‰ûºÌ–‘~.ÛÊHŽóäÜx µ—8×yZnœG%ÎwÙIF†¹ì,#Îósã"ú¦Ä%xŠ‘x$}KâÑx¢‘¸”ºJ\†§‰Ëé^‰+ð¤#ñDºOâÉΓvã©t¿ÄÓgìÆ3©‡Ä•xÒ‘x=(ñ<—ÉH•Ëž2²ðú!fâEÔKâj|‘8LH¼´Vö–5ËkeY³òì++Wß‚ÊÊÇ÷Â×R‰ŸˆbŽŒ×Dq€ŒoÀ‰7zpÌ>íÁ\™ÝäÁÁ2»Åƒy2»ÕåÙî2_F"‡ÊÈ3.‡ÉÈ—Ù},Ù,”ÙC,’Ùç¢X,ã/D±DÆ_Šâ?Å‘2þc—£dä'.GËÈ—cdäU—¥2ò³(Ž•ñ×¢X&ã¿Œâ8݃å2û¦ÇËì[¬Ù·=8AfßÅΉOÐ$‰Ob‰Ä¿ñà™=U+§Êš÷išÄ§=8]fçÁ2{ûV$þC­œ%kÎÞ‚•²òϵr¶¬9_+çÈškå\Yó·[pž¬ü¨VΗ5×Ê*YóIÏk_<ù‹k×ÞƒÖ@OB}ºzؽÞÝ -=Ý=Ýæ^ï†þúb˜b®àc/A?ƒ^qõsèçЫabœ -µ4ã\Q¨ VF¯.Ö@±÷êÍÐè(Þ5ý|˜mAÃói˜ŸCˆÚ½ñ¡¨Ø›àÔ]E­» Šª*Ÿ{ºŠû‰ý~˜Bøïúm˜lœvkWÑ¥Ø8clô&6Ή·ÈF7bãM±Ñ‰ØØlôöh÷;œ®ÄÆ^f£ç°±ëÚè7ì<(º û”ý0´ —Åï>„ÞÍÆïÜFg‡³ÞFW׊Ž uŒn yØùPÔ,6z8Ô+v¡;_ìΣòýŠª?„oÛFÅ:EµzÛÕ7 ¨øCØ lTõ¡ PÔï!œ!6*õÐ*(ªôž³ -=´ºZ ]Œû\ˆ†ðX˜šE Œî1wº’Ô -IÝÂÔò$´»«»0Ž|Z¡+MÀÿÓ -y&¬‡¢ƒHÀóou*L‰ØE“ñ\ݦ$ä—‚Î5 •^ -úÕ$ä—ÒĽŽs¯Ñ‘&-ƒ.„^€ž S+œ¹­ûA_„â=KFÕžŠuÉØR‘Gò èaJÁý¤á½HA=–†ï!5WZ÷ºŸ{ï!e-Ÿ“rÍ*>§5Îåt|Nk|~úÙ0¥¢¶ÎÀ¿KÅo3ã9èРؗ2^‚¾= ÅsÈL„^‚¢7JÃ{‘‰N) çdæièAêx_Ò®AS¡ød­ S:έ¬O 8Úà{Ï@þmŽ@ñfãýÌÀ÷œ½BΞÔÛ°/ØÞß\åsáƒáyð!7}J åidX/„Á‹á%ðð‘ðQðÑð1ðRøXx|¼>^>©B¢‰àdøøTø4ªo{©ºÝ7X`}%Æ4‚ý(°À« Æ4›þ»Õ_:ßî,°À¾ÓTEÁ~X`ÕÓT .‡¯ ëûRý6‹V’?òø¸–ü‘‹cŠÖ‘Ÿ²YO~Êæ)òS6›ÉÉf›áÃ]†»ÉOYî%?esü”Íóä§l~HþÈæeòGGÈyü”ü‘ÇkääqÔð Ãc†ÇÉù½CþÈãù#_“?òpLÑ)òS6§ÉOÙœ!?es<ÿ üCª/™Y¸ó¿R}ºÛÚŒéø/ªO¹\¤út·— —©>Ýñÿ2¦+ä‡\®é*ù!Ç8Æ™÷K.È?¹4!?äb~/1Mɹ8Æ1 äŸ\RJ†Ú­öª=jŸµÜÚd±öXK­jk‘VƒÕ 5„Z+¬ÍÖ+jœ«Æ«Åªš›XR3Ô45‹›Y{­«Ö~ëšµÌzÌZl-±þmí³¾P¹j ÊãªL•ªrµˆc­³jºšªfrS¯Zê4® -Ô0UÄT¡®Šùa½i½e³ŽëL¥HY*F)Õ\µPíT{­:趪£n¯;X5Özk¥µÊ:aýÊ:d=k}d]P±ª‰JP‰*_•¨¡j„ªPT¥šÍñÜœ“8™¸%·àVœÂ‰œÉéÜVwàö܆38³u{nÇYüO¾¬c¸»f}'÷Òq:ûóįpä\~•‡ðPÎG9Ÿ‡q¿ÎÅ<‚Kx$á±\Êe<ž'ð$~‡+x"OæwyÏàYüOç™\ɧx.Ïç<«x!/æÇx Ws˜—ò -^Å+y5¯áu¼–Ÿàõü$?Åx#?Í›x3oám¼ƒwñïy;ïägø ïåý|Ïñ>>À‡ø<ÿƒ?Õñº«¾Gß«»éŽº“èÍ|QOÐõ$=UÑ¥z¬.çÏtoÝG?ªst_ÝC? Ò½ôVý ®Ò ôwuµ^¨g虺RÏÕ³t.ÔÅz¤.Òƒt®ÎÓCõ=X?®×èuºF¯ÕKôR½\¯ÒËtÞ§=t½>w¼!<Þ^ÃWÃ7P#êYÆo('©Ã7¼±Ñï¯cÎ -õö«>(ªëŠŸû>؇Ç.ˆ|ãÝ•ïû–QXq×ÄH‘8ZD3vÔØئšªÉH¤©•ú=Jã$~ÆfYѬŠbR“ö:M£mÓ¦fšѦµM:í¨Hï-UÓ¡3™þÙñýæó»çœ{ν÷½wï®%%Ä_†å_}OŸ]÷Èš¡¡Þþ¡¡ÃÁæ×zšÞ²^ùÞá澤DÆ(aìÆ(}÷vܯšcd·†ÇeI›%ïã>îãÿwö˜ÿØî¶Í(q8Zº³‡™2²KÜ»G‰ÿeŠœÌ‘ÌÚ¯j†OcÏê»gϲv­0„)·À°Gÿ²™Ù›YÍ{ùìåffÔjì&Â<–tZÒaIb7 Õ4uÙXWû¼vš`îdŸ æ˜O æƒlˆ‚`ý‚‚‘¼ö˜@/ æm²Uò*ÁÔ -mß¾Z¡Ìr1,‹aY ËbX$šV#*̶2NCˬ:ÍjyЪAËcµtTÓÑÒ­”SŒãì6•5±ó·—Æò>ÖÀ¦Ò\â¬8Ô1Ÿb{ÈIÛ`ÉçX§ö‘Sû½SÛàÔV9µSì%j„c‘%™Û¨}ШMjÔjµ Ú 6‘òà„<ídžÎÓöæi+ó´åyZQz÷P=Ü{-¹ÙpÖk×뵟×kÛëµµõÚwêµyõš«^››®e¥kiéZ˜}÷¨}£½ËNÑ ½]ÚÆ.ؾ8\¬óÚ0»rÄË -Ëy˜u†š ¡^5äµcØÊ—f´šòS¯$¿¥ŸeK›y,ÿ·Bz>º- ù~ µ4äÀr,$·å|*ä€u|¨¹•×F3ïpÎò+¦. -ù6Áý@¨ð,¯c¹äfÙ0g‘×rg’× -7¬£BÍ9—{1Сü0c!~{]X`GùM½‰_s‡%X¾p‡¨óÃÂÁ¿ CIüC½•ÿÎWÏÏ ÃO›x¿¾ˆ/´:ì÷÷™Ùió°†Ê_Ó7ñWõN¾Ûg¹wy­|[›-µ%Æ£¼i–¹ÃlFˆ?í5+¨|!2>UØÀŸ€y‡açî ->]?Á¿¦?ͧE*Õù-5E?nM犡ÕfðZ=ƒWûÎò‰~Ì$Ä+Íî!^)^ⶦWì{˜`zÒQþ@s1‡’Ì(â>i›m{ÔVa+³yl9¶lÛX[†-A‰WJ¬£ŒR%J‘¼·JBxèFù™&D9L%™R²¸C0¥ùŠ¦xµÂlhm­O\^“\ï‹«œìA´ Ë‚‘®ŒàÖ†é3ƒ2fKL2”1«!X6ÝùØÌcìû$à?Æ.šjÚ.v)ÐdÙ]þY³’‚7Î ³‹a8Ì ¦ó" Ac‚3¬<”“ÿ5› -y„rÊ7óà•-·Â:#a:² Ìo*3l€t+L¬°³fXϺü€¿'?ß -‘Ý´Î -Y'»Í,xdätõ÷èº5*È<Ö¸=£‚V¢ +‘׋Ÿ× é)ñ" Ç[b¹õ»îˆ»)ân²Ü-wÝîˆ{WĽ î×ø¸Úüjq‡[v®é´gÚ2í¸Û‚/-ŸŸ\=×éìY³Ót8ƒbNÛÜ'æ›zN{pgf»?¸&ÓïìiéÁÝmº[2ý=ÔhžÙÓm´ûC-FK ôpÇú¥/Õê¼Skéú’­7“-5kuFpLw‡Y+`Ö -˜µ:Œ«–9·À‚é.áúæ3Ï´.[ÖJÿþ £h%¶À(6ÿΙÊHÅ9 Ò(œ¤¸‚­hp N¥Šá*i€J±€DvÀF@¢xŠO§ÑÈ‘Øh, bâñ*N '¸‹\cUʤqàÕ”…º>òÁ[¨8¨ x'Q-øã䇷•Zá ¨ÔFmðÎTZƒC‰èy@¥µôƹŽ:À;œ‘ô=ðR™ÿs6‚odÚL›1‹-´³Ø -È´ ÚAÛ³ êTz…~þíßí£½àûi?2 ÈpPéuÀF=t1Ç(Ë :ÞØè$ Ó):…^ýÔ^oá·Ñ;ô6"ßdú-ý –éX.ÑŸÀÿ ¨ôwúü3@¦Ï•®Ð?°¶×è*øu@fiôO<Ð –N*+dcÁݬÜÃtðV >DZ ¬<€3˜ØCl2øB6|Žk™­d߀åMö,ÇXüÃ,ØIÖÞÏN¿ÏNƒŸcçÀϳó¤ -%ì×xq¼‚7NJ…R® -eBx¹P^!T€ƃW -•à„ à…‰àUBxµP î|à†Pƒl“<}qð~ší±æâ>qøq?øëâAðCâ!ðøð£âað_‰o‚ŸßÿƒxüSñ©ò+â_ˆäÝòn’‡p ¿é.Ø¶É XKMêX…#ÏH'ÉV‡÷_–êDQHŽ²Õ1JQ¢ÿêšÜ”\PðÈÕª©ƒU8®UMu VQMÕ`•ã*D±ÇçŠËÅí’—‡oÞn ‹Þʶjõ‰©Â‹ò||-4Ϩ°K¿HT¹‘±Ä¾Ä•˜hÏG§¤ó”)>:Ö—HK\ª*‰b¬"ðØ)2WRÆò®E‹­êSââ“*«õÔË—“S}¹­Ósz²5Š²‰™¢›••–{KÇŒ¾KàaÉ‚§¨T’ŠÆ¹3ß)±‰9—¥K×½ŽÛóضô’„½L¿È~P¤”»+ÜÑ e·˜¿”¿>Ô î•ß£B*Ã×{È(H)ÍNË.-K++1q^Ê“îyú -ùÙÒKbRª«ýñ²\Z*×É” Jå±a¶"“\fY½ö©L:Ž_C9l…¡åfÅcÒ\ 5 é =avȵ§”–eeÛ’µ˜jYÊͱ•›æèÊ…Ñ¥¹ -}úoR«ÿ–š|fðVRÕ…¤ª[ƒ•ïêÕ©ƒÉ©x&—ÏàÁœq\6Wf¹~Úæ(pœÁ’<>:1)1).'7Kñ/ª«¸‰ë ¿÷V«Õ±+­¤•V’Ï•, [®Ö¶,ɲe´¶ñms®ÚcŒi .v€vm˜NKÂQr´IM'H ¸Îh€4Á.e 3dšk:@H9¦iP;Pp§ÔZ÷­dÒTÇÛ÷vw¤¿ïû¿ÿ‘PЪ,­îô™r¡•£Ôé·ÕÂwøL •+€/â;sÊVŽ_¾{áhýâÞÎP.ì{ŸŸàr›"ííRýóOFû½|U£¨±ë™Åå­p󵃪ÛïݽñœfÇ2+§äÖ /©d݆ñC•K«ï ÀÙK蟕óòKŠ7­*.œþjºØÚRö9õ½w:_ôÛH>ßQ»õL[L¾-G—îºuvÍyør–Ë^C­º¯![YÙű9†Ià¶Q*M–ÛóùøÞ=G ôè>Œ,é’î¬m€»apíO^–÷ïٷâSñZ”ì¯mM×Ê.ùÀ˜@½”M3*‚ÑЕŠfc±ð¼SuRÓdr˜- ¨žÏE{êÁüú5óî€x|/|Ù‹¥%fK8Âc­™XÞÌS^2u]ÙqÒr¸~(°è†søÅ$Ñ©Ã=ÂŽ¡?ɇåéãòg„ªØâû2»Ñ0Ž§ÇÃ)_‹ ‘¥ÔøCè”QÍšÔX缓kÒŸ4:¬¶tLíOfbzúÿ˜ø(`Ó!áZ‹Òò÷…#aëC¾ˆ7›PãüÖ/,­²¼Ö¸½rÑGÎ7F>„«å©-Û×7囿ÿ\ óÞƒð€°ì]ùïò Ûn”K(X5‚­¸Í–ª‚5„“±û‚«ç]¯äòu×9¯i.–|µDm°¡¦ÁÙÀ4•Ç›ŠÝ“|¤ÆT=I56 îµûÅë±öé‰ÔD*†Ñ«'°Ç)/Å÷Ø ŸŽ±W§3—bΫx}o'€f,¾LŽcuñXU_?Fæf4‡Ÿ§´r‹OÄúœâ{Å´l½¡ÝkFç/øeOQváŸùsÝž -ÔQàhrçå®8ÔmZðê²rGÑKm†è· -ï<=ñÄÁ@›XfsÅ"GµËûrsñ¯\¾Â€›ÿõÖXNö¬⼸%?®óÌõ÷Û^Ê°åu³,qi¿ ÄcEv…ÛOå«p -\ÁT‹äýƒ -HC BÍ BâôVÌì/ÔPí·L0Î:! Î2›z6¹Ñ>Kn{2 >f·´vª0¯s¡’x”ë1pjÿKw³YWWÔPYï]xÒ;'¼½È ¡"åsÚV/ñ,„{Q#2`×Ï—t š€N8Td¾ƒUžþß[ì ¶'KK,‚UXÿ%k‘aGZ£Wgþ -?—p—â•,d‘^ÏàÈ5EÈA3ç…ÜtÐ_\Z¢úOn˜[['Šµ5%våP+ŠuéßTÍ\G"ÖæJv@ ÌADà ' ~6º3°ðØé×ñ_8”튅Šüîö€;‰QÌéR¯\õrí£-émžI§Én\£sÁ~Éu~EßæˆIð ¸ ˆR"£ ѦQæ’†QƒFÌ ¤Ë×8ˆ:Ÿ'^~qËd?KÝTrh¯ÝÃy5žl/ëQy^ÀŠBÊÁ3Òˆgz‡! Ú,u&<(=<üÆ^åpC'è,0›Ê}Ø( µR‹‚fEº°»šØH8ˆ¶õ sßz+.¸¤S7Ÿ[3w³|cò¹‘•Ã3X Kÿ¹ä¿¼sD&«îO]8%}› :“Rp½‰ñó]À$Çn‡¼\˜CtªGsÃEü»‡ºáæn0 Øÿ®¥‡KÀí’‰¡ ¤ÒXI EÛ1¯ˆHÀ’qšf¼ýÄø`¶_ÂÒ,ͱ8–dûÃä4|è÷cÏÁf³š8\„…–§I) j*ä ¢ØñtêòP‹}Žsq Éå¤ö?míEªì\uxñFIY›}V‰½Ç~‰ìY !µy̸“í‡OYˆ^tÈ8eœâT¤QÍYNå×p¸çƒv‡Nõ:‚NÂî09ìz$ÕœºÏ@Z¹7²hbÄtÎqip»†]ñtN¶xù;õ³ë¬¾lwâ+žT²+cêÊL1QŠd“iî³U¬ÆC1˜e­ŽÖ“F"µ4¦VÅâ(ô²16ö˜Ú M:5]T:K3% -e¸FB5ì‡êÑ=Oˆ~Ù?öÿð/ò.x©{~©s`ú ÷ì½Çþ¬7²Q{gìã×Þ”¯ÈÃå´üe¦N,Ÿ¹Gl!×üTŠ5;VRˆ*°RQª•ZG­Ó QÚãŽßèyÁnçQ ],cç‘…F %#üN µZÑ‚ëÚ&ɘEŠ#… Û—Köz¡÷}¼, ƒb¤=]Z‚3ƒÔyû£L`hÄÎjçµm06õ­¨‚•Óž6%жËÒM–Bû¬A}Â;ÚRÞ IF­Ò"‚n23 @ªÿ²]åÁM\wø½½´»ºVÂ’vµ²¤µuX’%c˲1#ððN“bšB\ $ibãÉ›£CãÁ`Cœ gè´1’Ö!…t˜Ò’L9Rš´%¶CH›t2m&%ñ¤´@Û€DoeéôÝ÷4¶ìÝï}¿ï>…{ /Xðžc"ÍŠq ûu&3f(f לr:7ÂÑÜ)JDvdhì6ƒ>í×Ú³¹¿€óBa¸žu"d0•`@•ìík“ÒŽ´«ÔQêÐ2T[Þ…?™±ìw^ȽÁlÏͦn=¹9ÿ2nÛlœqÃí+tÛyü×zt‹Š3|‘ #*æa‹JŠ\f‹`÷x%»½Û©ª^v +ÃUº?,TUÊ«xê.Í!1Ô°•í,9>â:ê¢\„ý)ö§’oœkÖ{ÖkØ1O¥qÃdm©k¼ñ>Ž4h­Ã8i8gæ!â Ñ|P h~­X/Šð>Ô.7N2ا2¥ˆ#Œ…!}ñþ~‘YÆî2³s$ÀšGÊ­öÎ’T'ŠÄ¨H7g\¾ã|ç븂p)S \j'!ƒÜ ë)DxƒCUñT±&  Sb’'d|1ÉïÊ GÐþ“2C҈í¨Ø™Á’æ4œè.¡ÈÈ!ƒ#…jH#¥rFm!Ê@'·‡‰~Ñ@™Éü3ämjíÚÞŸ/žÿLWghúšu®¦;ÿáäÙïÙzÅ”ÞÑï?ð·…™M%—w n­9ܺõûôôä¼®e›{¾òõýÍbýòž±u¯iÏ4>uªoûÙc;ûVÔ?P˜Ái·/ÒGàm(Nê­É)×åë -Óä[\¼N]çT}û¤Ýê.ߨô“Ø/c—¥Ë1[ŠWdY) Ò˜fÍJX&>¼`™ Ûî³ÉüH‚•­ìr`IqIóPÁ8Y^HqdXëÇÉœ¶Ëã€/°ÐÀ™ô7ÂF@»$ç$kà¦&;H™% -9NŒñ joä8l@KÈ‹jj‰½Q$Ó^ÀînÝ‚Õ’˜Î45óÛ"à >ô­oî|ãï«»úÎt½(>Öø䜎>©töÃÕ‰Ñ7ÇORÓæzÅþ²‹˜ùñ«Ïý›Žä÷_Ú›?¿áÙƨ«LV+›ùÏ"ï—åêK¿ÇEŽ‡n†·Ò¯Àï5†1còü#Ñ/5 ê5h3ÉEræíϘfƇ8ôˆ^Ãr\¥“¦!²¡ãXš£Xx!žB4ÇT²Û¸m¨›‘—§EkúêD_RP½]Í¥" Kbµý—+çaÍ­Ò³¢-}Ð<ãéIfX jBm`ô“ñ Íf Õ/ÀîH%džV Éi‚«bÞ^]S÷IͶ©‚Þ)a…ÉU"ä+àæéÍE¢ÅÕ•ã›z{7á÷_Ò`ëºgO~ôØÞÊJüH×Ö}eOI|£ïñ}£[€‰ßSœíß!v–g:ÔWý`ŽÁ'Fv~¶8‡__þMI7™Íò°ü­ì4Ä.ÃN6ZŠ~À_dαÄCì#,®‘aÆÎ9¶”HNrÂœYJÀ¾K ;½aÆYÊ„?ËQÉd̹|„9¼Ë°1:ªÞù±qÜ~@U¬2ÎC|VÛ¾RÛ°hÛ¥({ *.Úv…Bе âù„Û'(’êã½Ì€Zô0O¼¾¦8Z„út!­‚›#–o†ÙÃ à‰§T]˜&%ˆÁO~ððhwÚWtÄfËÓó_5GÍ?›Ÿš‡æ‹Ô…3×üé ÆÎ@Nô’ÍP“ÈéÅRó^#ÇÉñè÷oÒ>ôK^.©%Çh²?€»²pÅñ¬,'IÇü#<à!˜1ÕíÑ~$3 ’™90)2Á©IJ‹$JbB\›Ã¦DR%Ž "ðaðæä\SHЊaI+Œ øè”*!ÝÜWœ±ùª-K`wSÿg/zâ5óŸÝM榵]ëp 0ÇÀ’Í[æ-|åBeâÛñ¥Ïå`ÆÈSbþÆÕõ­CÄε%R]²Û\ô¢yyi16½¶kÚ&  Ó±·J«SëSÛR„çdçu×&ðB”óF@$#ÆiZÒ&q¤&_`8Œl&(=D$–¤X%å"’jÂð^u"«y³d0Ð ˆ¢¦“PˆºNDØ!jŽkS穸:Ž»Æ L·¦‘®Á„[ݵkEKlíè}ƒyŠÆ·º›‚êWÃõópå²aTkG´°¦¨ä,\ÏI´¬å}ÖM-:`Êël%gKô›¿2?É„ÀŒ'g‡™Ù[Í7û¾÷ûZnì×(ÀÕ¤jž}jž ™…/ ›êp¿io u¿ù3ˆÐÚGÏåðÄö”!Æ> ©ì^Œ1‰“5¹ -“ˆ‰IˆqŠŸLâIÖÇÿPs]ó\﹂§NÁ›Râõ~m/“äZ}5h—ñ?pýX0-˜3 §Ngkhh¯yIg€6Åé/ÝC•ãŠ»}1\ôì^ŸT*·SŠÕµšn³ï‚>•Ã±#%î"4R~œžˆHœ Éw•³ÔT5ªœ"G?¤ªÏ6æ Y¥(çr9ÂêÉÆF#9"¿+ã9ùùˆLÈã¸í`³w¾|«¹©Vœˆ`¦Òç«î…À@t[ô22-_® «M-¯eÝ>]ɨ> ™W™W™WÃÝæõEÖ5í6ÈœÒ/h›²1™X}Ñ× ¸3t®½sãñ7Í3 ý¡²2Ó›ì,㮹‘´9òSóô;çÆ&@¯Í,7¿ü|ï÷Ì3æó‚yÜãe嘵~ºSUíÁøJsurÃþc ˆoÿÃÒò¶CÝÐÙêázR¸[â( ‘ i ¹‹i $=cRz´Ä59*q¢&«—†O9JØ#B»m6ÒëiH*Š -R$n¤c"IËz$ - eÜjMvÖr‚T†Ëd±f¶6ÆQ£ö–àòx`åðIw¼[C…ÄW“›´¡Á´–»ðÕÐÚZËåÊÄÆ•vÁߪÖÖtªJv¬1Ë`çäûÍòÚvXIêKÛÀsñÚTžåûøw!›Ä,iL&ì,±`ddÄùáÓm#lt〟 †áeK”N$t|q'°P]Î}1‡†¬ˆ”Ô_½Þ=—³.¤Í}}›ñ¯¡gå' §P­ÃÕt±;èhóÐ ‹ÀÉ»f‘a²ÀSWkÒHLÆÜ⎲€ßÍQ6ÉäãL?„Æ؉‰»×ÎB,=ûáð9ãKãósÄöÁ•ÆXÛáBXa\1Þ‡mûOÆÉÁãç/ÁØy`qÚ§DÆêQ 0¨·]ä‡DìtèOaÌ£Û#IÚ3¿DHLö(YÔª˜GŽ$¼8%¥"){;5—R¸U®*íêà„ja‘€ fp”Ûäb»*×GÞÚµœYzÓÕòîBH÷Y$fs(Peî ÄBèâíx<3EmÛÁ¼Žçu†‰R€¦Ê$´õÐÞ3ç ˜‡€ åê^ÓáTç"JÄÉj¬0xxïKv4‡dî—ï;ºá‘Y?ÅDH@Ÿqí éÇ¡¹›ÇÏ»[ÕPrü‰ió.-`羈oüÉcŒ:tà£÷qãëkΚŒÝäË[ø³žV‚Ù!×Üþ¡ø‡Êˆk˜öÄG2\âSß­ñ8­ ‚$è2Ø»P2 ëèVÄ$,ÃHV\AvD½û¼¿÷^÷NxIÓy'+ØÍt]E¹…è©Þ6•CÅo½z5ȃæ¯òÍyî3¾ A°%f£œ~5¡$â ÜVôcü;ü˜˜ô£?0åH€ºEã”)‹öÿx’ô›³“ãh’ÓP5 ú?þäÎ}´ãWÆ×[Ž¯:ÔqИèê:içdßþ.§ž4úûýçëN¶Wø´Pÿ@:>ýLƒbÏ%¿‡<Ë‚ -ðO}SCÀâ™Ø <,ß–¿GeŠKåÒX…¨È¤H ¿ÆJæ;Ç ¨\¢Ä+8ŠÉ2â‹0Ú -²(ÆYȦb‹âOÅ·ÅljxÜáõ -Tʇ•94¡\¦Å°!))xGh­ŽxÐôx¥])çJLW&§Jo¾@ G ¶LžÎ^ßz!XH@t݉vÃV®ýL&AÖ:4?HØ -©ÚüÈðDB®‡–çá:ÓÞ&]->åíÚ€¿Ôg£ -°1IØúÎ7_]°}IÂØÖûȬn¬áw½Ÿ_: -&4§`BŒKØ ÚræĬX(ePãkØÖmøÆg[µ*sû7ûùñWWÚ¬—4ÖØ™‰;xy½4À´®ºcÏÛ7³»Ø]Ž¿Åï(T;½ÌžQ0ÖN)/Û_vîTFìà -UoV@çôôe5]5XM_eJ0ŸDùôÅþÕ~Ìߧz5Åi'ˆhªÁ‹©£O¦À.½õNήȚ@5„=ë…ˆ°ÕÊ:½¤AઓÿHN$ñäÌú¥òÜòàª9Œ›9#}u8»5;È g‘¾?ØšŽùüh>mí&D-ºá ¡ð…ã›rY³;>ü²®Ç:ŽieU¤'î’3€)GGAV¡K™Ý"e@\q9é -{–kŒÝVId€äŽf -³ƒ¦§J“=Ó‹†Ärt|ÖŒLŸV_@t³{¦ y¤håE¡ß:L3©dÃáϧµþ¬å+mé׎-L/¹v¤uÐ¥†éŠªšÚ[Ïvl­®~úÔá9}y¶ózI‡Â'‹>\>WSí•L‰’ðÐd©£;Øšx÷‰ÔÊŽ¾¤÷Ù­%ÛýûW=¸kV2Å>{V0½+"xÓbIüZÿa†ï²áe‘½ìÞÈá½ðý(£P -[OÕ³s¨9ìb¾Kè -wE‡Gˆ•&V£š)»V›S’E‹IA¨Š×0&%2ªZt9+ƒ 5‚,/“ÌlÐÿEV@ ›“‚&4-ÒðíÒf®üâ#lEokåw,®^ô¼¹qÞ¬MÆqãÔ¦YsÖcˆùUºyÝøº¾'÷Z~+}+êªsYßø߇7Ž|²þ¶í¹fFµÎ[Blø*Ò" -Æõ–gBÏðX ´…K‘KÑ‘ÑûÞû>†ñ2¾7äÓ¼šÏF3 … ›óCy«‚ž¹†õ¹aDˆnô‰ÿÐ]­1N\Wøžñc^k{ü?fÖ¯µgü~ŒwmÖÞewYYDHH °­R -¤U‚-E)D-+º)¡J“¦¤)Š*H)ʪ,%TQDR© HQ•AH•Z´êk´ZT¥`oÏŒYšT©­¹÷újì3>ßwÏù¾£ºÆJ¡X0Ê{P¤Ë’”Á™–¥mòA/+y–F…m$K -±®n ½ðš!¬àÒ…×X`ça“îˆmŽŽRzrÎàJ¬´„4Bí©öTpaʤK³‰%Ö`Kç™ÉbÎyHøÀ6S š‹œn¬½Mè - nß[ÍΦq¡(7Ê)ˆv?ÀÅôžþÄ-%¹!J©5“½Z¢ :$¼¾jd~>-;ƒÑ­OnÀ„+h¡Çöµ,ÖêZÿ ØC© VJMß9lÝóâZ[sÍ.ÿ™~s]‡KúË,D_(Fbæ°ŽÖ¹ze{í‰Ð^ù@è[òËäe8å:%œ&§áŒã¬ëáŒrF#spÙuY¸¨\T?T>TûLÝÄc¥C´DÑe(—µ—Ë -YŽcKø©Xä««jµ -ÈdšñÈî+!UVÞ̺d!Í'ää´< ×Ó5=¯HyR™_>p­h1œõ‡¥b!VÖ"š$—-òI’ùb1ƒs¨V©À2µŠÆXëåb!ÄsvVÎ*R­œE´Ñ‹1\¥®$Q%P­X`W’2kçbDé2¬#‡ ïë\ŒÔשz¨±zþx!þôNì‚›–éɶlˆ7ï3 -DÓÄü ¨»¿ø/.rrF‹5¾crbþß@#)š4Ú5g“išfºÖmÿÔçy^äÈ -KºÄéï¶äæXhK"eîÁrK*ò<¤o<.÷ÇF¨äd¸Èâglý‘&¼2^%ÝØúíèCK¢/ûæÖÇVë.øÔÈݵæ_c'¨*pîšGζ uq°( ¿ƒRUÆžhŸú[ç…Ejúîëð6üÒ36µ[ÓEÔIo ïZУŸn$ëê¨ë¨÷{ʬ:[š-Ïj(ÛìNÊKWüÑ.zá@$¤†45•Ì¨­¡Ö+n‹5ì ‹"å“IU½VÉV‘4Í®„+áj5ɇcFfó ‘[ÅgµfÍ‘myU5ãÁ;“ÕjÞCQbUS“¢×N1Ùû«V4±T«™Ë2Yi¸žÿ - n ÿ…ÝÑv"Ü錱ř2 ð -¡h-äš9<ß9D±;›ã¡«Æ†&B‰Žs,¦ãìbˆÒUþ_Ù®”2Í*•‡•ûĸøÐ#ßýO/ØEíÛ.g|œç“¿T=|^ž€…-…‰½ßñá‡l¿ñèøÎÿYã«¢:I…]ûSø>¬ÿd¯UU-¬#ß›òIë µ¿§àb_*˜:Ò9Þ¾¾CëQÒ”¤Ä~ÕÎG£Q-˜÷ð6ûWñüâ™&ò¶¾>Ë4˜qidj?ˆê—WØÏõr³ÖÆ©}ëÖõˆ†ðð¥Þ1xoH{à«'¶ÏŽv–fŸÞLÍgCÊ9R±N> -«lÞi$ÏÒW;Ñ©tö¤…= -_‡cמ±ª¦_p¢¶ù-æÍK|Ø÷‡£ÎWœ– ¬Š'‡}-ã1Ž ñò, yK¹ù¼—áp>]ãœg›[–Îùu»g¶ÑÛÈ<Åž÷‹¥«·—n™¾Khߺj.Œ6ï6ó´x%æuSø›ÃŒ`Ë!'gL>"!Þ‡ÙHxã"ıõT-qpZžï¤¹± Õ2ÖÆÝÊyaK5S®Ü9HíX¶×ž‡¯îH[û_켊 |®s…Ú…Kדôo’p¨¹™tJÐŒˆàô¸±ÓÌi—‹„÷§ño\‚1ËmsRh7ï•Ùá&>ñ¤¡HðiøX¦ 1>gÕ{þ‘³m5Õ—ø÷©¢?µ -cu®ÀÆv’Q½ï~l‡x ít’Ó r ŸÆçáÕóOÝ ‘…{¡W"C¼¶¢€rP‹ÃRgóÅA?Ÿjžƒs+X]¶¯i #.Y&–ååÝÄBzu'´PU؈ÕöB|îuüuüáRš\ÔÊnäÞGvwn\þ‡å˜e½£NF°.îù«zG¥èÔZ;Õ“8Él¼Å½ÅÿÂñ.û;öZéZù&{³|Cû;»Xv=Êäµl 7ê‹’ªË®õ•bCË»8b÷1¾ªB‡úyf¨ÅÐ#”À—F²ºv0SÊžÍRÙyŠèÜh0%õ­±Žéóœ]ƒ¢pq©} cs™ÑnÞBaˆÊßÆQ2õÊTФŽÙÀL?284œH÷€¦‡jW=*8‘æô5BÄd Bü¯*D •¶ô€8]¶a&BÜ)_ä¾-Ӛ亯#G o‚bh¥È%9Яtm¦ÙäDÔ èGLÂ椫RûŒcŒÛ©îTjã3O4Så5;ä‡;Áëë{²Z,rŠ.”ßyóýq…qd%¦ÔWµ,ôïØòÈspˆÊªÅíûwäz74ž|¼ùÄÖ=éQI.õ4˜ºß1˜\û“çÆ¿Ûyjµ?å”W¥Bê¶ÖšXÿÁ)j‘˜g›^^´\±=K‚¨ê go÷€½N: ÁÀ q3é… »B'â²]ä-$>ÄÓò.7sÎS”Î¥””½ä{Oq–Ï£-»nxDd‘˜8Åî^òÉíÅ»pÛ„ ø¦«=¸‰:ïo7ÏMšì¦Ùlšn’Ýl²›4i²i’æÑ´I_Ðx<Ú:T[*U@`¨POfDÏz3X®ãžÀ©Ç(ÈpžžŒÇè1WÄs -z#ç1ÎÝÔq£ ÷ûmRdfûKÓí?ßÏïóúr¼™âÍ p<¼5‚ÜÖzh6a´ìUᬅƖ€XÁ`[cÇDÔ"VYÑvÇÐúMGõ¸+¹bëž³å_ÜpžÏã3ÉgŸÚþ“ùOk¾ó¹Š:]iŸ^ðÝÓåsý‹ßn<79Yêë,ã bƒÄ̇‰ØëÅÞqöUÃ)ú<}Þy‰¾ìѧLp—1GȵÌZǘq9ÆŒ9LAëÔ“ëÄYg­ž¬ÑÖ$àeïe¼3‰x‡èuBˆÞ -P]^ÄÖ€±•ºfË"’Î ò¥)E -Ĉ:­bSï†.‰››’0‹’öÔJ˜•¯‘ý¥ùV]r¡ÛË*vuóI³U6%±„ˆý6ªˆ)³¹†š7½txÏK¢9.[ضïßÝŸ"Ä‘wY%ª¤̇¿zþÛ.y½uÞ®kŸœ lâ›í(ÌÎv¡¸îgÁ׃žŽü=r%¢ÃÖE¾=~#úNø÷ÑÂSÑ2âÉXˆðÂ.LŸi“œi7íáÙÅnÎ3!4Å•˜†Õø䦘ÈÚdNck¤A2Ѩϵɲ`òib6¹È¸bGó鮽  A˜oAô‚^)åa·¡n1ŒÍª •Íb”ʲêG…l©l0’Š¤%,„Gs8)L(wÙ6"¶a°œÐ*§ô)Tp Žz¸<öªP­0_U`ñTÒ–°©öZ¶õ ³Í»´ñnÐáÇùn“äIŸ õü¤ô»ÍCãÛŸü)ñ&Ï@[k'Æì2k-øÚ춖Ù3íI€ ¸Òb|´ÕÕô‡?éÙ×V„Àáþí•_ÎBï Þüš¸‡8s˜ÃÜاÅÁµ†óÛCÌ£úm†1ócôã¶Çì1³–kÖše†û Cô)͇¶iÍeã%«¡Õ`$Y'a$q#IèØ,Eb>¡ã¸UîZý„îe®k¯1¹°0»©3$ {½Ä -AïõTØ;hË^™©òw¦ê¯¥9…çJâK=¦e`áµÛTG­ÇœPçÔZ sÐüÀCcÕ©·¯aÎOUé#f €p‡Å½Š8*<"z_9]z’üÃε»[ÅЗ¯¼ûÑ7'ÞÈópÀTßÜHüã[_O¯_c~ü¯€;~ø{×4/]ïï…yÄ0‚‚\–°GŠé4 Æ:2ÁˆÆI_ø…øB$­Tëpғ΄ xµY[¯ÓI’ððA<†kŠF‹[ˆécÀãà&&Çç姮f)ÈJÔ·a³›™¡+ÞÇsR§œÕ®‚ºš˜J$«žVÑo ˜pƒ#V*]p¤óСðÒ ýãŠÏÝà¦-’oa½õÆõÖ¥qÚî øÎνë>ž×"$ň‹q/¶Ït–¶o,9¨Y Ö\î Þ‡~V‹õ`˱>ìlq¸·£§s¼ãÇëµÚ 6mìtuf;Gˆ‡2ìœÆöZ*Ú »4ÉWK ©ö&#üN„–—Àm_žèñ†…N„ˆÐüE‰>_§ÇÛ²–¾>ɱpÉni¿„K( ÍÚD3?mí–µÇÀ¹¢%üÎ.Ê¡8v;ö;4”ý±©Òà $|¦¦KSˆHˆS…)ˆÜèÅÁQĨX©áa«?YáF[%`†µ>(dm•tEo`ßl^ÙWÉd}×T2¸÷Jô™Vw–¹ŒN§ß;pö®äs¥>ÇJ§9¦ÈkÞ9Øûë%̲ZóaI¿·¿®Ý}ï¼h€Ï—÷½ýêÉÄ‚s” vo¼Èo\¨½ÇPþOqó]p»,ÚB±—_Úr®›XÒàÍ%70®ôòVÒ{qï»Oöú»»ZÌ6Ú ¬¶{”Gîýf0Þ3ö>¾ò6jâ0›ìhÑÑí×Y`d],î2P1¯‚‹Î{ Ü(¶øÞï*p^ ¸/ÎÙnH ‡C¢‹&t²¢¡+&·1z%7G¿«s!‹m¢äpLC ÛiŠC«žW-®·,öûG­^ƒ*u* 9œ’÷=g€•=@-GUWUé^5Õ6Pl%ÌÕtku©¹úÛÒ„;cbj";ê†ðB¼ÿ¾—[øøÂò¢¾¦ö»8‘\VžÏ™ZÖ'3)÷× }é…_þéž-åFŠ$Ç™sëÁäðÖ‡éríÃ3WÉ0¨{Üq4ÁŽ3X”D³µ`æ¼_äy'O-f9çÇ{)«† &qŒÓü¤¬6NÞ4©•½üç”)]ŠAlò·—‘Î w¨-³5ÔUh`qÅö½¬S„:œ\4øÜدå#áÖÖp$ÿă£U11Má#ÝœO—]Úæ¶Võí šLmŸ·×…4¯%ë6ë ¥¦M9Ce¦›Ï”‹àMu¦(¶«(E Ï,®ç¸ Á\cŠ1¢-Ñ0‚Þ²*h ÛÑ -œémѳ3Çq‹©Ó\F2Dâ+ÌP3Õ6’½=?=+ oY¢Ö̓Ye›Ð X‰𨤨jÝ·WºHsê¶L-À­"üå -¯’ -Ž\1K£s™wUc^Y|難~F[ýÓõÿnïÜxŸèj'õ^ŽiFg˜]}xø7ù&!µ¢Z¹©Ýˆe°sÅÑyþ~~”ÙÅ`þéÿŸ_¯á%^šù´0`PîçG”Ÿ3¤àóemvŸÈØE_Ñw§MˆÛ™¸Â(öx\}lì’§"!+æÀê°æ!q™´L2qøžp‹ -.7¹‡ä'ä“2!çÒH‹&{<–áMŸ„ပˢÎòÕWp7¡¦O©U……;l̉ÔUbó˜WfféÿÓ]­Ám\etï>´Òj%­´’µZ­¥]I«‡eI¶V[–ì%ËØŽÓ<㟨t¥XÁ¹eÏH'i€'àI•ÀéÙC?ë»xøèz­v -”Eû¥Õ$ÌnÀþ>EQósÂr÷üm¿H{iLȵç -ÿ¼p€äÐv+KƒµÃCО{ÙÐ×—/2¦Š«"‚WŒ´‰.ú:^² -ôQ—ÇpøÇÞ6ʧsÐéÊ`¸®(®ÉA]N€‰¥T|P>…bvE<A«»b—|ß ±òvM,½°kƒ¾“IŠ”i÷õÓ - U AL9ì{È$òoU(ør"ê_¶£ëëÊ(ÓÇL'±bª*$Þw`øWaÛ2¼Åñ^B„I1) q1\úÄðhI˜ôHLÁW:樎ú‹êèHU-R¿›Àé¡IÖ‘ê÷fûƒA¯ƒœœ(÷%âÔ”>H¬Pué#©«)t$u «¶ºZ(fÖQ¯ªèˆ -OÎ×q66š! TÖeŒ<{¾ÁAxV71&rYŒ.W×ê`v­h¶ÙIiÐhtwéaêQBî´ýäMãfg%=Z9‘&ùx,åñØGb¯ºëèøžŠè+îØuºxL«L=ò¾5ª\èݦåwäÜÒ“•ùT~FëåI¶}%ÆÒ8æl5Ê~pËP=ºfm¤ÿ«c§´ÃŠ™Ì… àÕéÇ’¾¢†¬ßˆñ<]{p'KŸ¬–?^¼>Ïá½bÆ~ˆ(H9¯Îøø =n?c‡Æ”˜lPÉH!’Òɨˆ¡$ˆbvŸ¬~…MV:Ò)Y`qŒT\ŽD¿7æ •¬$R92•39Ü/À›;_pÅÒ Ãu1òº;2†=ºz—Ë0´yNçŠèð ¼iŽ±8Çǹ( ¼|Ì—¸oŽ¹‡é=ô[ù?æ¸z@î¥Ù> kOœØNbÛr“k=ûJ5mÓhIÝÜW Ô!m-¸!XòÛ ‹y¨ä0 R–om»cãoj©UyœÝ<÷æ—¯Žt£DCr÷þ3ã+ÐO8ćS;߲ܲ Ç™m§˜³mQDâƽÞMÔF†(™9Ň’.Ålõyj>+«Âë~GÍaV½-øùVQsõevŽNÄk“iàˆ"^ÌN ܱ$ÜÙ. -Úp¸0”+Š¸Mp1BFÓYô,Ñà!e ‡<¢6—‘Ñp1·|ù-€ß½rIûÌ”vŸ>2{àä1}°ÚÝß^Ö®þ]ðíÜÖ?¼¦-¾ýò@¶¬sÈbdäs Y´ Î,é¸ï„üŠüÝØÍØG13%±1;C23U› \¤«Bö½0':Ð৭F¤™tBI4E ¿¹?LúItWªdíD æbT¥òH"ç%0:ò9#e-é“O÷^ƒ@«iwUË͉c$'¢€ŒÀ¡QÄ$›£ U`õö:׈43q3L‡ c•\m€07·µsO}߉—öŽ}AûùvEV¬¬k±@ƒÙ-;ž»üáOzjað)͹¿ú›K^ßÚ©Y–Ïšj£Ø¥ñ$l¯AP³˜Š=,^Ñ~j÷ôh?•6‡›™«âû>ì L¯×ÔMT’O“ØóßO_L/¦‡¾Ÿþ¸“œè=f¹*Hï…ü†@1³lã¼nÌoòvùå)ê6c8ãã(¥‹äH¦¿Ã*‰vSLÎðªøðj«½”)vFxÕi§cû_À:°Ò(Z¸Æ“’uA I[±fàbqš€uÛ;™(B§)ˆ8Kt£ž&W‚m¤ð€~õîà‚Óž–óê5µÂ¢ Èúp—›K=}øà7¾¼5~ʧ'Û¾Af¦ëÊƽO_àWO2,/‚3ë:§>xáÜu¬ÆÒñAà¸õŽšçcfA¥Ýàé¡@÷_ÿø6Èèg`Ÿƒ8'CêøBC ˜úÔK@ûªêöeñ˜cŽ1¡`KF"!hÆ w;+>ÓÄö®v´ýùv&æ%¡Y=Ã>ÉÆ"Í:ðãW!Á:2‹ ÃŽ:¦7—æ.½Œy!+Xqœ‡R‹~†ñ4Ãa+î=’e[Yî¦$Wïç½Ù<‰©ŸSµ[ŽN´…Ÿjh¬dîžoîÚDà’»ÃÂró™Ý•t¢§>WÖ*›«¨ÔäÚ÷–Ð_@-w#Y€©‹°  MØzmOÐ{m¬èC4•0w Ý×àøƒ¿¹¾ù#¸‡N,©ŽP'ø®©~Aâƒðíõïà£Gÿ.)¹le†ÿ±Â‰ ’u‘„ÒaÍ:xð!GùºyMéŠX.tüKeجã”ã’sÔ‘È)ºùw¸ÆÍ%˜ýà,œ_hÌq­è¼ïÛþûVÀÝÜ-Gx/}øi­¦Õ‹øC¨í „LªU¢†É~‡U¥$kD HH͸ýœêìtÃZºxƒ¿Âߨ,pÌòÂ"Ü2¿† 2°<ÿÏ]á—Ë9˜Œ!ÙÚòΰñÊ…ñPË"jãê‘|ˆoËí/ü‡ìªmëªÂ羿ûÞsb??ÿ<ÿ<Û±ÛqüóœDZc·n“&iÚdl%-Í6Qªv°–¥ w“:iš­M µcP¤Á$~6MmÕMD(‹Lhjé¦NT Á:P5T{œk'¥…(çÝ«ëûî½ï;ç|÷;~ã°(*¾µån‘ÿîtsewjG,á OV.àà%Qµ¹ËSg„îXléŸ|È_Â{1Yx©>·‹îŠì¥{#‡éáÈôúBD‰tGì\HV+¦½'ž¬˜™ž¸«J—é>å7ýɦ*bÆÞ“[¢¶,5SªåÈfšCC;Ÿb%’ì^È瘼@½÷û>Kc$Æ8¬ZEÚ*ßu%è±^Nà“B õw¼—‹ct( -o¬Úò¿]€9ÛB;Ûì…D,Y#mVb@!}¥Š Rs%öOlK$«{ÉøÀ=¥áZ`Qä&F?óàÂì\Ì;MþίùÔDzwΟåzg b´YŸâM‡Ã­Äé콩ê–Ú)Ž~*è¤fã¤bö6âðbý”-å)ÙJžEyA[p.{B{‡äƒÚAçAãPè˜rÌûxø„rÂ{2ü<Ûò÷„Z+‚$uqnÝâ¨Øŵ. ôXäh~ íK=ÇeÜî¡<9Ë?M)O.ÜJWÍω€ -‰É©õY8«ù{‘bû§'2èO‡–·-µ®“§»Ü‡3¹¸°áG”:È §aŒhõ×þB‰xIš³¸Bhd1º[Œ7¼'„âóBèMéý”>I§ÓÚ”!ŒKñ¢*KjQ2dU-z=ž´„Ÿ&iO_ºÇ'ÚH©¨–âž²®¦Ëz§='½(].K‚aéq ­/•Šé¸áQ%y°B:_15çRÈä¦YàƒjIR=˜ӹsŒÍsJÁ&¡jUkíêÚó“Õ°ÚÞƒ­Fuݨvžl Ÿ§bFË,a‹ ó]Û}ÚªL±K™S7<ªU7ý¹é(V}od”ƒ0aÚ¨´‘gè?Úq|[0•\<ó(y7Y,š™±Ð@’lZ þ„ÈCSùÖþIê½ÎqãlÈn]Îüu¥’áO›Äv-æÇïÍÏx:oš‚•úWëѹŽ‹DÄ|zýW~5ZëÂ$«TîÜŒE­ŽþÆ0øñ™/þÓÅrÿ>t±òfâ;¾À@AÇOèÃÐÈm]|ýÙû]_è÷t9¶‰‰åñé}³?KõÕîKÇlZNÏ~i’íýKþ1rM<n(vöæŽØú¸7g—¼ß—ˆ”q?ix¬Ö:Ûü­7üwoMµ0.ÝŽ;¹†›Oî×lcjjº²}ǃÂôÏ“}}_©Ù»èH15ûðlþ=òÿFF;ƽ dï°7ÄEéLÇh/ÚChçd @Aá¡ü@½Ð%£aߎs›Ž?8q=ý®ÇÜ4\Ïã¾Û¼oøpo?®ÀyÁUß W"¸wd çÄŽħz¿ -8ĵS7Òûú¯d_È} ÿ€žkç  øM€‘GÑnt¬ôù ;Ó±ò!€ -b0v †çÙ‚ïlŽ· ÛwŒ÷LàÙwü`r`Ú؉ëÍàyw­ÌöÌ!V÷à¹ÿùì2Eaø?NU][u«º5Òºôâ~§‚èqiU¥Jè‘(ALÄÀ‘ð <€‰‡ibâÌD­SLj¦$$kí|ûüg¯µ×^{í Ê1IwôÝþ+ @yghßì…ÂóWéMƒQ†a†a†a†a†aþ HÙò!ÊJ0j$5©HÓ™YÙÐêrõyù…E†bcIiYy…‰Ì–ªêšZ«Íohljnimkïèìêîqö¢tICÃ#£nϘw|bÒ7åŸÌÌçBó XüêÀë›äEý¦©p@s)ttÕ,˜P ¬p"¹À=ìãØd0Çb%{ͨýqo˜¼GïÞØãçKôÆA-WLéâ«QQªâÔ±CÓ±ç{Ö-Yzcã‚¿~|ÔÒN þNª!Yßs|õÇPG¾d}yŠA'¾ +ô_Adª%½âŽqÇ‹èo†lhþa{ZùÅkÀùe̯XÚZ—ï…VC½’`þö–䊶Ç}‡Øï ófKëõ+~ùÅ}¬ßö/K¶4X»;^…:ü8÷pQ[k{Š•êð]ßv}CÛ_^]Õµ8 x_j»¾µí…“ï~Õt3‹ h®ÜGî’»<õb?þ«Ç“†ôÔ „êW›q6फ़ ÏU1Ï\î9çwj‹»´ÊÜåS0 +ÃÑ{‰¸‡q ŠP†£b*ý.¼‰#¸ ±ßÃcâ +dp*Ð"*1R¼…rDñS<Ï7¢•µÕ¸ÎzÚy‘±r<†,>CJP‰»lÀ}Î^lßñ©³Ý9Ž XÊΟ0ÌJ£”=›Ñ&B2í¬ÅT®w/žÆa1Ä™Šs1SÁ¤Ð‚eXÍÜs8€1œ» aשƬÇØ ¯ˆóÄMb«QजfÌ'‚fÎÛÄݼ‰÷ð‘$~%ö9Ã.ÇáÚ&£ÊÍoÁVlÇÏôN°r 'ı@Yj¢3À¹Øù‚õÉZ5¸†3Zp3wr/^Æë”#\µL”‹y¢MtŠŒØ'«ÔÙ†Ïs•s+Qö#ß•”«‰¿HoÇÝäðQìÄ“ØCîàmÂIäÄîs’¨ ÅJñ Ø+ö‹Ï¥”…ò<®y¡\+ tËýò€*V%ªLW‹Ô=êõ¨q§§Þsç.Ï“Þ÷}ëru¹úÜòÜ͹gg³ó¸ÓM4¢Ñg:3¹ÛY˜ËlÄJ—댾KÄó~AÙMTÏàYì'¶?âÞ¹/ÉC˃ŸLŒbŠ˜JœÓEDÌ5âj1—ç³@ÄDR4‹±J¬[([Åv²G<#^oŠÊ1ñåsé‘>é—–%ò†²€’”u2%›d‹ÜHyDî”]2« ¦ªj•¤Øª[P=êˆú‡Ql¤›ŒŒýÆÛÆ1ãoÆgžBÏ8Ï<Ï|¯ß[á]î}Èû”ïZß¾·±‹ÿœ{êûÔáFyü'VÉ+ø=û5߯É<‰ñ”xˆL=Ì{;‘r¦Œ§œA¹•Ž¦ ÿžñÜ°$•Öö õé”ùzNëDk[ûJœ ,K.mt«u½<µ¾öFºCo†ïJÁ·œB…/U:Ò:?`ž7¢dø°â¡þ¢!çžsöàA…Ïpfÿ3 +úù¼CI`ÔªN˜ö¨„mŒ²fÌißJ2ìHØ&CÕ߬±Í„[f~³2ÌÊÆÓ*ý•áS•¢Ðœ‚)¡ µLûˆefÅÂY1Ú#VÜ´O¸ö÷]ûv×@;à3êOEL[$̨]½<•‰&"l·'LÎyñÈtÝØÆôdGÊÏAWDíb+µ‡Z7§J£Éz»vV,ÄCA[L¯³Û°ªìcòÓõ<“¥³c\;lÒø±þÌz«~}6ŒÅ m%¯‰Ù*·eB¯1hŒ]dE좕ïú¿v¿²¢ú$mYZlÈT“šõ3zÝ„ö’èÕÌ1ÙV®‰Çl±&Þ ÂÅÞ»‹+ª#‰fÓ.°ª¬T¦9AÎ1;¶«8\µ’‘¸ÚØ®¡á¡® +îñ¯º,@Rö„¦…¦éñ²€UïøÞm½ñ·ºû»u{ßáX3û/B¯dÍ$LÛ¬s±ˆu²þh˜ŒLÝd–ñ‰ î²É.˜žÈ^ÊY¶§´Ð23Ÿ‚eøà›‘d>â--üÚÔÇyêF0Ÿ·³¸ X“EAmìI!~Ï +gM‘’=üS?XÄt™¾MΦsaÑZ£ƒf5QWës33fff}Ƭ6SLÝ¡{äu°Úˆµ¾EÈÏÏ|XÔ ›q”=ÚQD{¼ö¹^@•à\Ú¥:ç+qsZ+YÐ#çê9ó˜N_kÀ·õ¼ãg±O—¬pº9FÔ ¨2ܽ;G mDZÇs,cÆ®÷=˜¸Ë8/CÛ ]Jn´µN¤è9¬/ ÆóCóœ”rÝÑ-êpöœ¨zp‹¸kõhÌu1ŽÈï}‚Þ×W{Òø5¦oѱ__Íãû„z˜z¢¶ÓuðiÚ¢&`AþŒ†P7É7P©¶9ô9zÏA•Ö‘^-ð]ÕUüÜÿþ¯mò6`n0¶9£8 H(F>ÒØòeÒ\¢’•¢VQ‘i¦=l=$-¤„‰Rbæ£À@3XñX˜¥ j•…})ÖÓêx=™ùÞSuíÓ&r¬Ú,ûè®S[ózQízú)âøÌ1™óÇiÎ_Ç]tÏ®«ëêq.ã˜Î¹Œ¿7ˆ<Æñœsô'›|‘‰ÈeÓ‘Ãús,7>¬¾Ìyš1¶•ªÜšžïœ|Fô^æø¶S›?Ô•¯å.9ùelü6¹_Ós+¹Ð3WÉaf.ÏiNsê¦"ñ«™›>'ûH,–ÓÀ5}2qr5HúâݹG ß„oõ­A˜ª­GíW@›¹&‰•Ûm –{yyïÔ½ìC2|©°ËWìµÐ»ÑñûDöÚÖ~Ĝ匳¥ñÌã¯v§>Oï‘_º¸¯G(}òúñþD¡'îË>Jý¤ëìî‰[«rm*u)× \s®ãÐ~²j~æšSêLÔ˜Z_Váý*F­+ÙN£Ô¦!”¼Á>Ê”ª¤ ©sì¶ä,»#Ùºò¹öQî#¥^¥V‡ì6¥&­y)ýµ:d·)u8DÕL˜ËBžærÌ!:K©/S| µ2%&ÙmJ!>‚tî>Jµb¬7wõ›ÚŽñ–ñV…Qz6¾™ofcŒ³%7†Qr;úIâ›iø”Š~*Çó1>]wwÝuáü¡û莹ÊÝÞìcúqû(Sî­v[îJô½ã½´Ù‘GíK~‚Z²Û”:¢j¦¨yçPkn=µæÝa·)u8DÕL¡>ŸÚIõìséN™»oŒð·f&ø‰C¸—aÝö€íŠ9~bñÙa‚O43eÙÛF%y–3Â73¥°ÙæÉý¦êB=ÜœžGÜxã©Yh\‘ø µ±Æ€¨}Œ"«—îÎÂïQÚ¥Èòg¼|”ß÷”ÌÞýäî“RÇ7ÏsuÆûlráÝýû¿i'âëN'–0ñ™g +ÚƒnëÚ›,¹~åI;£$%h`L¤9ø—Ðz‚:µá_b]Oˆlüä½å¶¶ýTÆäëìï,ücæÛåLî+ÈTìÈÅz±ó=ØSúELäFäÈOB‡åqÕwåÇMßò»híP2ã*œOR2ŒÄöŸdbˆöù†›„èèpjOQ|Ÿ´SCìòÿBÅ‹é"šFï~z ö/‘öÒÛ—îrú rWj_i¸Ñ åêµgJÛ1’Y>ÉU!Ú³ 7‡æ +~˜æjÏW¼ZÚk@ Bl7ù$׆h/ôI>¢Ýl¸ë¨E¹j_ï“, +±}ƒán¤ .¡ÅÚK}’›Bl/óI>¢}³á>AŸTîSÚ·(Þ*íò»ü¿MñÓt;ÝAŸþ³Ú+WJû¹Û« ÷yZ­Üµ¿h¸/Ñ徨}§âW¤½+b$w{ø¯FèZtâ½ÒÞçyóµ,Ú_—öæù›¡¶¿e¸ûéÛ‘#i5Üw軑ÚßóðßÔ~@ñÒ>èy³6‹öC†û!ý(Òö:íG好ÁÃoŒÔþ±â#Ònò¼y8‹öO¤Ýlž µýSÃ=F["Gò¸áž ­‘Ú?óð?Ô~Rñ)iáy³-‹öÓ†û%=iûYÃ=GÏGjÿÊ'ùuˆövÃí wÒoµw)¾(íK ß†Ø~Ù'ù]ˆönŸdOˆv»á~OPno ö>Ÿdˆí†ë ? +þ™þ¨ýŸä`ˆíC>Igˆö+†û+ýM¹Wµ_Sü»´¯‡ØåÿaÅ7qÃ{ƒÞþÚGIûÏÛoî_ôoåþ¨ýŽáŽÓ åNjŸRäû­eQøH¬..fåDŒÚ²ôvj%¤MFh§¤M[y‚ùV®uZˆv/Ãõ¶ú„[†N_Ãnõ‹Ôî¯X ma„öà ´…ëB§È' ¹7ZæÆh•Xrc´J­!Ú¾;¢Ub»Ü' ¹7ZæÆhUZz´ªµ‡ù$Á÷E˪6ÜKîŠÖHË/tuFù$g‡Øí“ß-ËÜ­±–Þ­sµkÿË}•FIQ]áw_Uwu³ƒˆ¬J"(A‚@†}E!²‹ +2†À² ‹#FNÄ°Jâ1¨HB šqÁè!Ér²&_}õæ:uzºçwÒgîwïýê¾×=¯ªÞ»U¢tÈ=/¯;Å(¤£5žtÉYítŸt#v¯`îõ§ð¤wÎê>õ•›]”SŠÓ€B (h@˜Å ÊS=X£!B=(C嶜ÕN +µ @ J(YPòh@¹#‹•§z´Fcd¬‹Æ嬟ÅLÈ3·ªI™(ÔŠrdëÂÒšIYÌäJ´Ñ<[¿B¡åÕÑ'ã1ˆ•ˆÕ‰µ£JÇw˜T&å0 ‘d}*B­©â0­L S‰aš••‰UˆU#F+k‡£]\×TÕ¸a «)ßØTgXóÔ Ö$ÖŠ­ljjjÜÜÔÒ¸e /S¾µÃÚ$.ãl—ë¯ ÖxÕÖaeÚÇð +å bXWù®ë)ÓÓÔgXßÕ؈x%±¯ÖgܘØ,ªÔúšF0Wj<8†W)?ë~®â<_#^Ml1Z9Ü\­ñ(ÓDãq1lªüD‡ÍH4ål_'^ClNlñ:j’Ãk”™ÃæÊÆ°…òE¯Uf¶¹Žáµü®o[[’¿Žqë誎šç°•2‡×+³8|vð¹žc¿IlÅZ³ÌaeV8¼A™ÕáÓ„Ï û-b;âäÛ2î]ÕQÅÛ)³Éa{e6› ÛsìMÄŽQ¬5¥•Ùæ°@™í¦ÃŽíBìJìFìÌ«÷ ö*u†ѶÇx§é¦ñžvW~¿éÁ°;çéIìEì1ZyÈôÒø¨é­ñOcØGù×ö%ч³ÝLìGìOñ:êM‡ý”9ÃþÊÿ*†”×á-Êœq8Ä-üÆÁÄAd2¾•8Œ8’86ªÔy>p8D™so%1„õ·E¨5Ÿ9ªÌ3ŒáPV~›x;qxÄhåEs»ÆÅÞPÿ#†#”ÿÒŒd8‚óÜAE1¥•î.¥±oFkœŠáå«8Kb gGOœ@¼3âuT ‡ã•©à Ê×áÊ7t8Q™Ææ.†ù]÷''ïæÕ»ßK,Œ*u†¦áþçâæf²Æ-c8EùÖæ^†S8ÏTâ4â}£•mÍ4Û›û4.ˆátå»:,$1³ÝOœA|€Xñ:ª§ÃÊôáʈa‘òƒÎTf¨™Åp&¿k6qñAò³Ï®ê¨áç(3ÊáCÊŒ3s>ıóˆó£Xk&:œ¯Ì$‡+3Õ,`ø0Ç.$."̺ÅÑUUèp‘2EQf6N˜ðóÇ~‡¸$ŠµfžÃ%Êd.Ufqx +á³”c¿K\N\A|”W—1~Œ¸.ªÔ–™å¯O0¯ŽáJå‹Íc WržUÄÕÄ5£•›pú•Æ›Í·Æp­òÛ®#±–³×77F¼ŽÚîp½2;b¸Aù1ܨüžRìRri¬lí‘’Kóà7ÁzÁ6"_¿Ööò%ð߇ ‚mE¾¾;l;lòUð½aÏÃF‰æî|#ü‹°]°cÈÿ¿§KII}ø׎””ü~äà#OÀ‚…@žÆµf°&°¶È§Ã·ƒ­„µ@^_[k…|üzØ6X1ò³ðÿÆ„óü «žµa·Žï-)Až‡¡² w±PU„§j¨+Â]ªnÆðüK»1aG;>Ü +Mô–ì…÷…÷Lô„¿d¢7g#ÕÎaøð=]àž¦W O7óì/™pŸ4æo†{‰ù yØÁá÷†;‰ù9ú.ì!F°s N@î^ÉÇùâÿ†Åùðx¶¸Ïþnäx.üŸ!¯¿ùyÄÐi ™‘?½á,…dþ3_QðŸYø“ÎR +ó¥e¦ŒŒÊa­‚ÌT”QÖªÈLUUÇZM™ •Qm¬ÕE®‡\üçÛm€§ÆÈMùo7¿™‘?ká,-eäþ¼õÿúŠš?³úÍ, z–Î2ê*£î2ê)£Þøþ¾ÈýÃÀ¾•þx„<™ÿŠó›‡@ô,Ãe4üg¾Ñà?³ŒƒèY&`~òdä)à?ÓNÅÓ ä™È³Àfœ ѳ̓ÑðŸùÿ̲¢gYùU2³ZFk±¶^f6ÈhÖ¶ÈÌVmÇÚN™Ù%£=XÛ‡¼ùøÏ·{O‡#ÿ™ñ(DÏr\F'Áæ; þ3ˈžå<ë̺°n¬;ëÍú°~,Ì8cœ3. ž5ÎÏp>Ç#×ʾo·Œ;ˆ7ÛÆ]ÄœoñȵrǸ˲Á,œ eÃØH6šaãX›È&³)l›Îf±9l.›ÏOŒgÆ Ä§Æsã%âÎÏxäZya¼d¬+Æ‚X)ÌÊ°²Æ1ã„q +ñ¸qÒ8xŒó ¹VNñ}ɸb\C¼l\5®#^â|…G®•kÆuVUb!¬ +«Êj°PV‹ÕauYÖˆ5fMY3Ö’µfmX;ÖÞ¸g<0!Þ7ïq~À#×Ê#ã1ÀÃðlQ§È¿P0ß™â†4 â?[ø/’>¥î]„x+`!\•Œï|G®TS L#0=dà˜ë1W&¾3óÏYf˜]`ÈÉ1W,ï³Þ,÷âãÿ;B"H I )Ï¥ä;9¤óò®ÜÈø.Èw!—Za"¢ã;ˆïâ.ú2*‰\ʃcÈ+8¾‡Z>ùÿßÞ›õf½YºVic<ý˜_||3qõŠ|Åã×….×°düú•‚_ÇRÉ÷¤æ÷×´üšyÍÈù=4+¿sf÷±[ä„9pÞœü>[^ÙœZîWÇ"yÕ.ȯ؅åõYçr½Ò;¿‚‹ó»HI~ßvÔ­´)SÆA·²¦L9ÝÊ˨‚ƒ.Ñ«¢ÀJn¹ÇÜ*{­VÑìVUFÕqëdÊtØÅ·®2êæƒÙº»z8ìÖÓíÔ›ï^ºõ1eú:èÖ϶2Lƒ[ƒ` „Á0F@8?¡&åH¦ì6ʶr´†ÙÆ …qãa‚†ž±¯‰2š„‡ÜöÛVÐàvù-xÁQx‹ó“ò˜·ã¶•'4¸”Ñ) åi nï"¿#FCoó:‹|Îct!†â¢F·÷m+?Ðàvɶò²·+ÈWá\‡á# =c_7^A{SÙí–À;|ßæû!ßwácøîÁ}“ö²Û#äÇð)|Oà©rGoëòsG]¢× ä—ð9|_ÂWŽº}mÊ|ã Û·¦Ìwº}/£t‰^?Êè'¸ý,ð·Ü¯Ž¹ýæµú»f·?dô§‡ê_šÝþ–Ñ?š;{ZÿFqä?B #qH€»‚úÜH\ñð”ˆïø$¬&Ô;IŒœ„$ÕÛÙ£[2¯ÕäšÝRxÈ¥tl¶TS;Õ?†[ä´>qKgʤç;Éèˆ[&eöÁlYd”ÕnÙÜNÙvËávÊÅwNÝr›2ytËk[™Oƒ[~…HR&A¤8 äç"¤¨IY‚Sv+i[YJÃlÁÈ¥IR–”#åÕ{zq« £ŠÈ•†˜”•5¸UA®JªYj«+»Õ0ejªÏ«[¨)SËA·Ú¦LÝê +¬gCY_ƒ[ÛʆÜ!7&MHSÒŒ4WïéÅ­…Û©¥“^¼+·S¾[;èÖÖ”iç [{Ù¹u”Q'¾»bÜÙEÑE£[7·Swgf’ý{xÌötÈ­—Çlo‡ÜúØVöÕàÖ9Œô'È`NŠó “rˆ·¡¶•Ã4¸ —Ñ åH n£GÇÈQïíÁm,ò8ÑøŠ Ý&ÚVNÒà6Ù¶rŠ·©ÈÓÈt2ƒÌ$³Ô{zq›<‡ÌUê3Ì·¡Z`Ê,$‹^Ãm1YÂq©…jòr²Bi¶•d• Õjä5d­Š›è±Ž¬·Pl@ÞH6)»m&[,[U=°Ï6²Ý†jòN²K¯W·Ýšúì!{m¨ö!ï'|0ÛAä·ÈÛʽ‘Ê#š>õQòÇcªãÈ'ÈIeÇSä´…â]M³½GÎØPE>GÎ+¹] m¨Þ7e> —^Ãí2¹bCuù¹®4Û‡ä#ªÈ7É-7Ñ㶥âò]ò±²Û'–Š{È÷ÉU7Ÿç¡¦>ÈcªO‘?#O|0ÛSägä¹RŸä¥ Õç¦ÌäË×òûʆækäoÈ·J³}G¾·¡úùGò“Š›èñ³¥âä_ÉoÊn¿“?,ªz`Ÿ¿Èßÿ±PýŨ²#¥4ÀBaè™2dž*®7ìÏ¢9MˆQ"šø5|’Ф4Mn¡J¡u¶”õTÈ©i%Ÿ´4 Uzä 4£’[&šÙ†* rVšMÅMôÈNsX(r"碹•ÝòмŠ|ªnÝò[Ô ¤…”| +Ó@ZÄRU¹ Ò9e,nÅ5õ)AKÚP•B¦¥}0[­ÝÊZÔË!—§”|*ÒJ4„V¶PUÑ:[U‹z5äê´†²WMj¡¨…\›ÖQv«KëY(ê«z¸uk`QoˆÜˆ6VòiB›Òf–ªæÈ-hK%·V´µ US¦-mDZý+ºu m¨:!w¦]”fëJ»ÙPuGîA{ª¸‰½,½‘ûоÊný,aÈýée·–ŠAȃi¸ª›Ï3DSŸ¡t˜ Õpät¤f…<šŽQê3–Ž³¡Š0eÆÓ '¾¢Û$:Ù†j +òT:Mi¶ét† ÕLäYt¶Š›è1ÇR1y¯ì¶ÀR±y]¬ì¶ÄR±TÕíÛ2‹úrät¥’Ï*ºš®¡k-Të´Î¶Þ¢¾y#ݤ쵙n±PlEÞF·+»í ;-»T=Üºí¶¨ïAÞK÷)ùì§èA¯|…DB@D$&˜D`*if˜G`~ƒVXM`mõ6ØN`G݆ 8Là(' +œ*p¦ÀE— +\#p“À­w ¤Q³¬ó†"¤BodãüÇ~™IU]aø@Oг0=ÃÒ3Ã0[3Ð====ÓÓȾ‰ +D@D@‘}5b‹²º°ã‚" n€ +‰S±’h%±$1Ñ“cLM™²Lbcþ÷¿×§èòuIUjd°î©zßýûÜûnßwß½çKv ;’ì6Ú§G¼ªs³2WÛt’ªó¥£êΨIëb‡>õt•sá‚tm»ö²Pµq+­;få"m“çÂX¹ˆc^L.!—’Ël¿öPèÂ%ZëwáR­íâÂeZÛÝárõ”9\AÇrŽd¥MmSáp•zª\¸š•«xïr­­õ®Z®ÕÚ:‡ëÔrá¬\Çž¿NÞD®·=zoÄ…7imc׫¿9ƒ7«?á"7³¸Å¦¶¹Àáõôwá­¬ÜÀ{o#7ÚZïäÂZ;4ƒ›Ô?Â…›Y¹‰ýo!·ÚZïå­Z{©Ãmê+·Snc?ww’w‘ÛÉäNr—ÝR{‡ï[ZOpá]Z;É…ÛµvŠ whí4îÔÚ²Kõ¬¬Ü­mæ8ÜCÇn>Ñ^›ÚfžÃ}êY(wSîcË{È{ÉûÈýäýv­Þuƒõ=wôRÞ§µ+\¸_kW# HëuYù€¶¹É…XùGø y¤þ;¡ã!Žáa›Úf»ÃGԳ˅²òÞûù8y”dÀ¾Ð£9®9rÖ¯o´Ó+×7N$XJ +0"ž9fÆ]”}V„sbá\ï8ú]\{ qú+ü3®¿Bc. # +߇[>\Ƽþ Æ_Cx¯…ÿ†Æ +ÿô§Ð81"ÛñclŘs?ÆæG¾\Œqú‘ƒú‘ç#‚u.…΃Æÿtî« +ñÄ(çGvÖå‘ìÀ¬Ç.˜«ôßõ“”tÇ8»~Šë_И«nXV‡±õÆz®ÃØêÙõÆ8ëcÕ¥ ñín†>Se'ÂÞˆÕuˆÀuÈ Bï‹ôAÿ¡04æ#„uBÞ„°gCø†°gCŠ„ñ®ÃPæà÷ÇÐè;ŒowØçhÌa¸ÙM'‡0ÆÆ;cÎÈ!õÅ(1GáW ±ðêñ<õÈSêñ_õwý[Ð/ Ä>ªÿGJ"˜·Î¼£bFk#2û4òM\8ÇDp_äY‘ÌsïºÿÑæ§a®5Ðxö†—q¡ÿ(ÆÅœF±ž£øß(öWt4âa¹\ô4æ2ŠøÅšŒ"ÇŽâ+Å>þT¤±®ñ)iÄ>jDüiÄ:iÄ:iü>®ÓУÄ34þúŸ"1¼ïæ6†=C~ìhĺö] û#†÷Ã<Ç×Ä0¶2Ž2šbN û7†ÿmê€ ¹ yn“W!4æ¯ cmÂI¥ ïº ñ´9ýJ¬ïf¬f<_3öaóÛÐø24ã}7ãYâXkqìå8N‡q¬ß8æ3Ž³]g8æ3Ž³]ë(þ]‘–"hÌ_ ÞY ü-ˆo-8/µ¼wÑòs\€FlK`L ćÄ$G€FÜJà}$÷“Qbý%°—XûIœ¿’=R’D,Jb$±þ“øÎ$ñJ®€Æû̹´—óÅ<çzÆŒkËQå—Œ3ÖÌŠK¹Tyd>YàÔZqªªˆôK:vr¤íš÷\À˜1c­bVÜ*;"•ÒSNö +Èžd%YEV“5d­˜\̘1cmÁ¬<*èèväù—Œ3öU4+ãI:"}Þ¬Õ@#›ÈæÖ–1cÆŒ¥YÑ+N•sæ3fÌX[0ëÌ—¤êO ’ƒÈÁär(9ìËœ1cÆŒ}¡YùÔpßHIŸÏ̶¬|fÕhrŒ˜ŒÌ˜1cmÁ¬Œl,Õx1qɘ1cmÁ¬¸4j²˜¸d̘±¶`V\šBu59ƒœI^ã´±¢Õ,ªÙäIG°3#CN«Žóÿ3ï¹€1cÆZÅrqÍ;"-¢g1¹„\J.#—“+È•ä*r5¹FL^f̘±¶`V6µÖÑíÈó'.3fì«hVƱ^ÒéófŨ TÉMäæV—1cÆŒYÑk Õ61g>cÆŒµ³Î|·Sí w’»ÈÝär/¹¼ûËœ1cÆŒ}¡ýýꬢhÂ3»³t©!!ô&H¤( Ez = „:¡w %téÒ¥£¢¢B@D"MEŠ‚¨ U¥ +ê?wï<.ÏG `ÞòÞŸ¾Ùoçö–o–};‡ñ=5ÛCl.üýÿFç×–ñ=3Ïd‹L¿¿È[bKlC3¾È–Àß÷ÖãÞ„y­ßÒ»|Eo\ÍU¯Œ|Ö‚å³\ù¬·ú«ßþ•çfð¯|¶‚+Ÿà+y¹îƒ]à[z÷‚¯è«çæøK&‡À•Éa«?¾’™ëLßÒ{|Eo\Í89§Á_2qU³à_ùœW>ÍÈeÓ__ÉÑõk¹ +¾¥÷øŠÞ¸Ú½3t ü+Ÿ»AÛ=öÍuª<7â$Œ,˜Äê“0…éS‚¯dW³ÿí0øW>i ‚éÁW²ú·³˜|* ßÒ›|Eo\Ï?¿d’ü%“üઠ…¬¾øJf®_GQð-½%ÀWôÆÕŒ“Sü%“²à/™T0V4}%ð“¬ÀõÝTü+ŸjÁšà+YýÛw`-YWÖ–õeCJ¢rÈ&²‘l&[P21FŒ³eCÙBld[ÙF¶—Ce„ £Tb»Ø)ö‰}2Lå'Å9qŽ2RzÙCv“=eoJ+îŠåâO +” …˜"V‹¥b +dzR€1 &S±¥—2£   Ê!óS^•WQ"B #(?å6â”×`*HÖ“udLIUNÙT6–Íe%Ñb´˜ÃOƒeˆˆ1² •¨0‘)µØ!v‰ýb¿ì¨r«<â”8/ÎS&Ê ÃewÙKö¡tâ±BüEY$J)¦Š5b™˜Êñl”Ù˜GY &S³e™e&™™rQNY€ò©|²)†‹a"’ +P#Nù ¦Z«6*TµWU'ÕYu£Li+5¤FÔ„¶1ÛF­)”ÚP[êNáÔ‹RêI½é³C*\õT½U?5P RCT £áI4‚¢hM¢‰4YEª(5JE«ñj‚š¤¦ÐlšCsi­ Utš–ÓJZMg˜¡ tIR…UUL•P%U)U†jP-ªC1T“jS]ÚHWŒY<6Xs +¡Ô’®ÓMê@©3í¦0êD]hÝ6£» ¦Ê©òêUIUQUUuUS!•UDýh ¢þ4ÓhŠ¦14VÕQuU}¬š¨¦ª¹j©RR%•†¦ÒtšIÓhÍRUͧ…´˜ŽÑZDKè¸ +4£Ç p§p×/ÐøÅMddHº â(À”úÓWܸ É ‡ÜÂgMK™ 3dlð4䀜 rCÈ ù ?€Â<£<ÅàY(%¡<¥­7]Vž‡²PÊCx^„ŠP *ÃKPªB5¨Î3^†PjAm¨u¡Ôõ~\Ö Þ3c[CF#hçœ&Ðô!WO´„µ¤|B“C +H © 5<OBAHE!žuß·šY}KF+Æ+Žg­mLjEÚB;‹µgt`„9æw„Nëlõ]ìg]mÖZ˜}Z(é¸Ï +AÌX°éCLßÍôÝ= zB/f½­5úØ«õµú~Vߟ1ÀâíYƒx7›~c( ƒÎl„õ,Òžeõ#­~côÿ]‰–hþac¬>½é =À›Ñ0Öæ #ûq0ÞmÎÇW'ü㻳œ§ïO¾ù€k5t†ë~Ç ™†ïF£¥å›(=÷Æß \Ù¸¶ruÏÊõ=»UáƒÜj|Aί°Yå‹šu¾¸]ék½«¾—·”x®ñÿ¬ð ¸›5ب³ÍÌ»2„ïæV|/·æ»8Ô¼ÛóÍfÞ¶ù†íÊ7eâ¾xÞãÔt7}í¿ÇÍÂmfÔÖÞ\SûríÏÕs ×ËÁ\ûîU¾ÿ'á1i³(Gtdëø›rðÑöMmú±æÓ®Ø;æ^¥\6Áô“Ñ)ŒIŒWµ«Nx›j³i0fÀL˜¯Ál˜Ã‘¹0æs¿ÃkÖ댌…Ú•'¬½á1ºT».ݶÌÁ—à +ö+a¬6Çk<ÌS»bïØ[±Fo[ýZx‡ý»Œunóßs¿¯=ƒ„±lö!¬‡ a|›9ò1lO¸ßŸÂv·÷¶jWž°¶#Öh§v=‹írðÏÜžífìuŒ÷1öhWìÛïàŸ»=;À8èÉø‚qH»ê„·¯ü°Í¾¶Ùí +õØQ›ƒãì¿1ù·¦?Á8å˜{šq’ñvÕ oglö=œ…àGø ÎÁyø™#á\æþ +ü¿Æs½ pU{Nÿ…ýæà×lv]».ÝvÃÁoÚì–éo3î˜ìø“ý]ÆïÚ{ÇþºÇ]L&L/IbÏGß•‘´çö†I=F“™>9#•#ú#%#u¼VN¡;·GÚ—'m–ŸÂ´˜ÓceÄL˜1 ó§1'9ÞÉÆÈ~Ÿõ0G¬qVÝ>ä¾ärçvçÑ­Pa^›åÃüXÀâ±Å +ëV¨Ç°ˆÇè3XT·2½†Ålö,ÇXK1K[Ñ2Œçu«Ô°/e¼–·XÓ¿ÀxÑñ¼¢nµ^Ü—J6«Œ/a¬ŠÕ°:¾Œ5°&ÖÂÚXëb=¬ t+õò¾4ô ¶Y#G´±nµÞ3lâàM±™Åš›¾…‡ù!º{Ç°¥Çh+Ó¿Âh㈶e´f„êVí…}ig³öØð#vÂÎØ»r¤öÀpî{cìkÍêÎèÉè¥[yïK?Ñþºué6ààqûÁ8‡šãaæGèVì¥}k4Âê#1ŠýHÆhÇÓhÆ(·÷ÇèÎ öe¬ÍÆáxœ€qNæÑ«Œ)8§q?gâ,·÷¦ëVžÀûòZ¬ÑìX£9ºÕé3œë௻=›ÇXà/dÌ×­ØKû²ÈÁ»=[ÂXê/g¼ÁX¦[µöe…ƒ¯´Ù*›­Ö­P᛽‰o±ÛäkMÿã=ÇÜ÷ï2ÖéVí…}ùÀfâzÜ€1¸7áG¸™#[ðÜÊý6ÜŽ;â¹ÞÇø©îœþ“}Ùéà»lö™n]º w;ø›í5ý>Æç&û²?Àد[±—ö僉_Yì°é¿fs›4Þ+ÑÛ#íËqÑoð[ö'ß9¢g§§ãµòIݹ=Ò¾|o³³øþˆ?á9<Ï£Ÿñ^ÂËx…ùoxo8Þù…ñë}Ö»ˆ×b¯êÎð!÷å¦Ûø–Ûø¶n…z ·Ù¼‹ÿc¿Ì㫨®8~ÞIÞËBò’@$; Iû¾ïû¾ïû®¢X«8¥‚-‚¢â†–"PKE)¥Új«µ´Vm?Ÿþáçc?ÕV¥gλ9΃™¾„$ïNüÌ9™ïï¼3÷¾{æfÞ½3ߨø[ßU3BíêqDÛlƫȯ»B=Ž‰0“0«Qœ‚©äl麫Ô0/–¸:ÖPQ&³&Y–óµtWÃy©-Q¶îZÜä˜#QÌÕ]m…uµŒZÏ×gæéž 786°Ä uWãÇF–¸1³‰îšÜàØÔ7Ó]{›[â|ÝոDZ@¢XÈZ„ź«r¬6„-±ULFj-Ql«ûº£VÛÛÇh¤uÄNº¯;jµ± vÉHÝ$êŽ=X{b/boÝs`[m죑úIÔè¾î¨ÕÄA1i°îk-c½Cb4ÎP‰†ápÖ8’8J÷ 8Ô;:F㌑h,ŽÓ}ÕQ«pbLFš$ÑdœÂ:§é¾þˆ +gZâé8gÅdÔÙÍÁ¹ºç jµóp~ŒFZ ÑB\¤ûºm+\j‰ã¼)&£Þ,Ñ-¸ŒõV¼¸\÷|H]+,ñíøƒz‡D+q•î9ˆZíøÃt—îk-SµwãêtDþˆu þ˜x¯î9ºî³Äkq]ŒF]/ÑOpƒî9°­ð§–ø~|7ÆdÔ%Ú„›uÏm…iõa›Ü:Ñ=zµÄé®Æ=Ž[%z\¢'èxRwezŸ²É=MÇ6Ý•éu|Æ!ÿ¬îÊô:n—h‡Òøñgº+Óë¸Ëÿ\w5îqÜí^wez÷\—Ù‹ûˆ¿¸Áï{A÷UŒã/òûuW¦×ñWùuW¦×ñ€Cþ îÊô:¾äYwez9ä_Ñ]™^ÇÃ6¹#t¼ª»2½ŽG-ñ1ÝÕ¸Çñ¸D¯It‚Ž×uW¦×ñ¤Mî :Né®L¯ãi‡üÝ•éu|S¢³JßÂsÄóº+ÓëxÁ¿­»÷8^tÈÿZwez/]—ù ^&þö¿ïÝWT1Žï:䧻2½Ž¿wÈ¿§»2½Žï;äÿ »2½Ž´Í~ ».ÝŽ:äÿ¤»2½Ž9äÿ¬»2½ŽWòÑ]™^Ç¿:ä?Ö]™^Ç¿Iô ~ª»Û +?‹ù˜Êzš@Ãd3žég˜ ÌDf3™Y™ÂLe™iÌtf³:³3“Y“™Å¬Å¬ÍÌfæ0ë0s™u™õ˜õ™yÌ̆ÌFÌÆÌ&̦ÌfÌæÌ|f³³YÄ,f†˜-™­˜­™m˜m™í˜í™˜™˜™]˜]™Ý˜Ý™=˜=™½˜½™}˜}™ý˜ý™˜™ƒ˜ƒ™C˜C™Ã˜Ã™#˜#™£˜£™c˜c™ã˜ã™˜™“˜“™S˜S™Ó˜Ó™3˜3™³˜³™s˜s™ó˜ó™ ˜ ™‹˜‹™K˜K™lÏšˆ“+‘ñ2J|ý’82 m£0AZ&W:e¬H’8X*&KûôR±š´¯^)L‘ïÏ„T‰³”6µ£0MZæD0]ò¹ef†ô­W‰¬.£ä)ÖLÃ20Sz5.kJû¦¥b–´oSÖ’q kK¦0 +³¥e±bŽdZ–™u¤oë(Ì•–m+‘ue”ö¬'ùŽŽ¬/m:Gaž´ìZél cu7ïk÷,IûÞe`céÕ·‚ÙD¾¹¿bSÉ td3i38 +›KË¡Ì—üð2³@úŽ¬D¶QF+JflX$½Æ—ŠÅÒ~b’^“cÊ–2îTÅV’™^*¶–ö3#ØFò³omåæFa;i9ß\ŸT¼0‚$¿X±£d–B'‰oVì,™eÐEâÛÌUDÅ·—ŠÝ¤ý +v—³+ÙCÚÜY*ö”öwÙ°—œ]m®O*6¢°´\ãȾÒæÞ2°ŸôZgÃþrv}–ÊÀÒë’³KfS8Dz=…C¥å–“ü£ŠÃ%³FHüDGJþ)ÅQ’Ùf®‹*¶û#gw˜k¡ŠŸƒqï²áx9»&H¼Ç\çT¼&Iü‚¹©x?L‘øEÅ©’9Ó$~9‚Ó%ÿŠâ É1W#µá,9{Ü\uT|æH|Ò†såì)˜'ñZ{Jâ³°@âsæ +¤â °Hâ‹æ:¤âK°DâË´•ÄïD²ÇÕo×¾võêÒG @ó—óoÒg|H÷’Î0 ŽÞB}' ðÓ÷Ä7$½‰4Ÿti;ÒwI·H+Yà?¤´B¾!¥{$aéIDw@b-Ò¤+ HÉ¡ÅHóH?1 ¸ ué‡¤Û H£6ˆdl£—¼¤_¾n@uºw3j’Ò]šQÏ€LºƒkÌ#ýéjÑ=“Õœt?ézRúïdm2 6½ d}n@ÎÝÙcHW“N&¥ßnö|ÒÏHß4 .}on)Ýc¹I‘n5 õÏý’”Vôº£I/’0 íy9¤´ªç50 MnC·Ñ—¤И~ºÐô0@“4£·¾&_“Òÿ±éHÒWI÷P€ôâ@õÐ]”Oß_@¿Èü±¤t}ù‡H'=JJ¿Æü㤛Hß ÝLzÚ€ü¤gé3½‰„Héþ)XGzžôŸ´ ynÑ—ôVÒþJŸ&=Mú……ôlV8…”֦“¤WŠ² (¢5³È ÝMú1éW¤Ÿ’Òÿµ¸»Åô;+¦ë*>J2 DOø¡…¤‰¤ËHH—“Iï ¥7ÔÐ*Rz‡ ­!¥û ´A)Õ¢7¥ÐýêóƒêófRšÿÐÃJé~ Ñ»cè1õ}OÒø_“î$¥ºB»(Oó¢y ÑýÚG }IÕqLéaÒÒãêóIõùi2é¥oÑõÒ¼„Α.'½@J;rè")Ý¡K¤·¾Oz>ü{ ÄA<ø! @³IœO7Z5:Rtá™gžU¸¥–«wÒh-« +Y%B†%‡Jã與̈>î´8¥ñL?dõ»ŠiᎻŠiæÎR¾»Ð3ÏiK(YƒãÔ:g®tô + ­¤­O­ÐáµÛæ—(Ái.yp›YwjŽ­<ó̳ªf)åêJë|Òá6çªÂ³sØâa„M›ªPɳÿX˹ªð6†0¬3l½¿CÝPZ²_Oƒë÷ñDµƒ»û}Ë3Ï<û~YxO½ÁÞAzãšoù샟Âf®Õ‘;§{,òÍÏ­{ˆgžy[3ŸÌVBä*fZø¹ÍCâð3¦;­dÕ Ïcîë3qxîÝþLüÝÎÔ[ŠgžyV–ÆL¿ÁÞP6VX-•o>ØáÕ7lq×<»Ñü°ÌšŸ‡ïö 3Ð\WtKÐ]€gžyV)–{Áî}Á½¹Òûá XŸÃÃOáàòçpPOâžyæÙ÷ÉRËÕ;HÏñG*¨’Ê5_Ä'„s`¿‹ÄÃÛ}Üi%;^xwñÃe¸vW1-¼³¸wW1ÍÜYÊwzæ™gn²`¹z§A:¼Gúw(Yƒãä)ÚOGþ!m}j…¯Ýî4¿D:às°®Õá,XVl÷Y’%vçnâ™gžÝˆU‹ÞäÿX +=»}u]ÖçK°i[ž§ÃïK²iSêWï>ëì»®µû ÿÇ~u€IQdáª7ïl`—eÙ,,™%g–•p§‚JPâLä$9gE‚ä wŠ" +˜½ñNÁtÞqúÉ‘ ’±¦º·™]fº¿YTf¸ùë«¿ªÞÿ^UuõLU5Æë +»>æ!æN#È(“àÖo°ãìôÍSóöþû€¯"Bqd£…é.mÄ,×–Q:÷ê¼'§ï ï× ¯ž!À y3Ã*wsB¿·ù&‚°äÎX¿aú&r×O¿c#p½«µ÷ù;ñÍ“Óaí@ø¢G0:b±Õo6—߈Aß}uøòù–‹ ì +7Ofßa/¸y²9Ï=çÉæÛ¹Ó €~„b¸û¢ñ]äý‚Ñp œþpð‡½ß„#ŒâhIcÌÖXIãež®ßr¾ ûCNykrµqøÑlm<μ¿$aé'!oH8ühíq‰œì +ð—õuî¡+ÁÖ×ÆCà‹p7ì’AŠƒqøÑ»ÁMàG³õ¨éÿV ·‚¿ü‹5ã÷âÁ¸üè­àGà¼óì‚»cíwƒ­½G-÷ñøËÓXð[U"î“ô‹‚JýÞP÷K:à¢9¿Êê2ÿ”믬Geã„Ì'e>%ói™Ïýœ•tþ–Q.ê%IWnåªÞ1¡ë($™ä¯‚e‘9Tæ0™ÃeŽ9îŠ÷Cªëáø^CBA« ;ô ÁÄ­éu!øÿL›è Ú +×0Ãàô¤íAïÑNú€ÞO¡ìâ®èÀhŒ…ÝX˜Ö`w¦]´[„ñI>MŸÑ,B{à"¥8Óè ú†Vзôý>‡À?±–¤¸ ŸÑPÌäú¯pðY>åèš…èt+aUG‡é8¥tŠÎÐB¬ ½éÖÅIt.ÓEøöÀ^Ø€ °!½}°1 §9ÜODó6þ…/±à lÊ!Ø's;ø +_ÃÖxGÃAÌ+ËE±=ööœÌéœ +ßÀWð5Þ‡`'ÈÁ‡°3Ä®<˜‹s)Ω¼‡oäò\‘³¸ +>Â5¸×â:\‡Â1ìÎ#éUn;x¸(‹=¹!ö†Ãܘ›B?è ýá1dÔh5 €ÇisÚ(4>Î'h3m¡mpC1\þÈž IïÓÛô!½ OÁ“0»aÆ`!„ ´ã¹ }BŸŠp>ÅgèsLÅDÚ —0‰fâXL§/é_´’þM_Ó>nC`0 Å ,E}a ÃÒÜ—¾Q|Ž/`y>Jûi6N¤t³°Ž§#ô3£“tšÎÒ"¬Ãé<Öéô ]¡K0FÀ(x³±½ £±  ¹Ü_Äð›|‘/³ÆÁØŒC±NápŽâ«|Ûཇ°/\åBœÄ-°öÇvœÂÅ8 Ƈ÷cG|ÆãÃØ…Fa7Â%8“KŠ4~K€ ®À•¸2WÅG¹&Wç–\›ër}­4ƒã؃GÑzΆíÜŠGˆrØ‹a8ÂM¸÷àý¼Ž %4–ÑRšNËq¯8#ΊÓâ”h'Ú‹sⲸ"ºˆ®âª¸&ú‹âº¬…hAš&êŠQb´–¤%‹éb†¯Òâ´X-FÔ‹´-U¬/hiâQ_?‰¢¥8!Ž‹õ¢è(:‰ "[ô=ÅEqAl 57Dc1H ÖXlMÅD1I‹Ôb‹h¦…i¡¢‰˜+æiQb›h.–ŠeZ¢–À‡ùÿÈ“y*^âq<“bx"Ïæ¹¢"?ƒßó| +ãüäÜ(J]M×wFçž'« *÷öD™S§IÓbéÓB –Ø'Ï0¼­|›ñôÿ’¢!F•¡ònˆP¤€½„¸µ†{ôpk´! +b=jq2‡ýæ+HH| +ºã3¤»?9 K+ +[ø&@¢Y/ +IªL†”<>©vó›P1Ë[œšüEË2¡2‡É³1B–‘rQê Ž•ó¹Ýxç<âÌ'*غ6ž¸ 7Dc• +ú^’Œ2¹€ñ)æÛ(X|ºâbžñ|í^Æg(.e´Jz=~f¾vi/ãËäk—õ2¾œâ +F«¼×󯘯]ÉËø¬|íÊ^ÆWQ\ÍhUõzþÕóµkx_3_»–—ñµ×5Zu¼ž½|íú^Æ7°Ð²¡¡m|#JcÅMlâ›ZhÍ ¹íø-,´–ÐJ•­-|ÚxTîQ|¯Íøm-´vÐ^•,|þd¡ýî³}þû=*(îhßÉB{²ÿa ­3t±ïêQé¦ø›øG-´îÐÃvüž–j/ÛøÞ•Å}],}Üxõ³è»? °ÿ1 íqxÂ6þIKõ)Ûø•ÁŠ‡¸X¹ñjÑ÷0®Ê>#-´Q0Z•O[øŒ±|º±¶Ï?Σ2AñDËx7^“,úž SlÇŸj¡Mƒé¶ñ3,Õ™¶ñ³<*sÏu±Ìvã5Ï¢ïgàYÛñç[hÏÁÛø…–ê"ÛøÅ•%Š—ºXžwãµÌ¢ïå°Âvü•Ú*Xm¿ÆR]kÿ‚Gå/ŠÿêbyÑ×K}¿ ëTùŠ…Ï«ÚzxM•,|^·|º¶Ï¿É£ò†â-.–Ín¼¶Zô½ Þ´ÿ- m;ì°ßi©¾mÿŽGå=Åï»XÞuãõEßÂG¶ãÿÍBû;|lk ¡“xœ“ƒ‡*ŽP¥8Vq¼â"Š“§*.¦¸¤â2Š+(®¬¸ºâÚŠë+&}ÜUj\U%e:›*ƒfÖƒdrBS>Á:›j(„˜õÙr"Dù„élªQnÖc¥¯áÊ'RgS‡Y/"ãœp(ŸhM5 bÌzªìÕ‰åSHgS-qf=ÃàxeˆSž…u6}2 N0-eópeNPQ‰:›žòpQÓžep’2UQÉ:›>U N1-5 NU†埦³éSÛàtÓRO>±éʳ¸âzÝôÉ6¸„iilp†ii%U5CÅ–Rœ©×MŸ–y8Ó´·ÉÃ¥M{[(£ª¥U?e—Óë¦Oƒe¿:à£(¾ðl` Þ¤Jj€@è½ziÒ{ï½IAš4QEAE  ˆ‚€½!¢"*( +" ´øöÛu¹½ûqáw·ïÌÿï÷¾÷æËì¼oæ63s¥,&ÁÄÒÓ^_cú”ƳeåŒÜêÓÉÄrÓÕÄh‹é.Ê#Ƴ€ÜêÓÓÄŠÓÇÄ‹é'*!Á³•UŒÜê3ІU,~ˆ «Züpý»¥OUŒSkäVŸQ&ÆZÌXkXÌQi <[ gäVŸÉ&ÆYÌ4ã’n6‰Kº½81)éÅ%ÔnAù1Š­¨½œòWP;ò]”Ç’¯ILº=™b-òu”Ó8·ëo¤|Åzä›)ŸH±!ù6ʇSÔkm§|Åæä;(DQ¯µ“ò¡÷÷NLº¡½—¼/åñÉS¾%.)©y…Ĥ›ç‘W¡<Å…äÕ)ÏH‘æ’GyfŠËÉã)ÏFq%ù2³ÿò&fÿõäÍ)¢¸‰œæu3+Å­ä»)§•ÇÞ–›òS‡’ ü$Å‘ä…(?-𠉢”Ÿúw#ÄhÊÏRœB^†òsgèï$å(Î&Ÿfæóõ÷òKéïåW(.!_@ù5ŠËÉimou¡x]-œò»‘w¤|Åä™MžÞf-+å‡(ö#ïEùaŠƒÈóP~”â0òü”Ÿw>ÆYfœ+Ɖbœ"ÆùaœÆiaœÆ aœ +æóÌi÷_þèk‘Y¤”™è'¨>“ìfÌiÆÜf4N®üf«€³§°H)« Ÿ‡)c&Æ鬟³ú|J™Ñ8GË™­h3§_ŒÙªdFã̪&RÊŠèçhʘ‰qÂ×Æ|꘱.Øúf«Éd%ɆÉñr†\ kʲ¥ì +Ë*²š¬.ËÊrr•,/+ÈÕ²¿ ÉÁ²‡ì){Ë>Ô³‘l,›ÊfôTœ¬-×ÊxYW®£‘&ÊIrŠœJ£Ž#åh9†Fì$;Ë®²ÞZ¶‘ëe‚l+7PÅEr±\"—RõYr¶œ+ç q9[Ac.ºÆûKº«t̵bÕ~!Öѹyñ %Ñ©ÏÓIóïï©4wýµæÍ­,Ï>éétŠD–‰vu=f¡ß í‡9ÐÊiõÌeÆÜt¿ÏkæùïI—V ™ý Ò®|§UXد'‹Ð]ÿ^U§{ Úo4Úk<ùÒ´çø?JYÚ›’W7šîôÞø +tƒW¹ÚÛ*Ó¾V•öÿF—ôkµ t·)J¿Õt.êž×(x6ALDlíåoÉgˆvìÿ7-–~›Ý­OMúmGûù¿í:"žMo]Q/ ãÔ§ȳÝP4ruEÓ»öi&šûü[ ÑÒU½w·lÀj¢•h#LÖ“ ìÚƒemÉÛ#ë :!v]DW[Ÿnâ![»»xØÊ{ˆžVÞKô¶õë#±µûŠ~¶v1ÀÖ(Yù`1ÄʇŠa¶~ÃÍ8BŒ´ñ£Äh[{ŒÇ*sðUtÚx1ÉÌ&“OSmfkM3­|–˜8G̵õ™'æÛÚÚÈSÓY›†bZòpº§¥§è ŽÄ­,ŠîdúïÔlt3Óïe9é.¦ÿ>ÕïaùèVwŸBtÛ)B§u1ëNR +·Û…~_ÐïwîÕè6 ïÒú­Ú؇õýW¿M×Ã.ÖP¿EÓ~"è&Ð{†¾7´¢³Vÿ?L w°½ƒèœíd¾}ú§¿eúÛ¥¿Uú›¤¿=ý1ŸxSô7d(µ†Ñû ¿ ú·?†¾ëÿ¯‹÷u¹óæwáýÿoÙ+›È®%”ÌØÃ&³ë5›beSïyŒ”hÓÌtvM¡`3¼²3“5FJ´Y^ÙÙ캸mŽƒ™›ì1R¢ÍzÞ„ý.lä ÙõqÙ"àb…}Ì#_"–²«tß–9˜ÇÙ5…‚-÷Ê>Á®‹ÛVxeW²ëâ¶'«<˜µä«Í|ùñ»J÷m½Wv».nÛܤ°›=ò§Åv•îÛV³]S(Ø3æYòíwyê9vÝÁ¶ç;<˜ä/˜ù‹ìú¸ì%ó2ù®»<õ +»î`Ûnà…}Õ#M¼Î®Ò}Û |ÃI$ßçÑ~SìgWé¾ðÊd×ÅmoßVØCù;â0»J÷íÝ€Œòû<mG2ÊQöyÚÞc×jvx‚]G¨ÙÀö#ücñ »J÷íSàg +û¹Gþ…ø’]¥ûö•Wö$».nûxJa¿a×Åm§ß*ìw캸í{àv¡f?ϲë5ûø“ÂþÌ®‹ÛÎÏ+ì/캸í×€Œr}¶ß2Êïìó´]ôÊ^b×Åmxe/³ëâ¶?W’ùÔUvÝÁ¶kÀ¿’ùÔß캃m×]­vƒ}¾þÚMW«ÝbŸ¯¿vÛÁ$±k +Ó„ƒa× +¦…9˜TÜšBÁ´ÔFrk +ÓÒXYZn-¡dZ¸•¥ãÖJ¦¥w0ÜšBÁ´ &#·¦P0-ÒÁdâÖ +¦ev0QÜšBÁ´,&+·¦P0-›ƒ¹[S(˜–= £äàžG MËQrqÏ#Ц嶲¼ÜZ "·SG>++À­*òs+0uäV è¹Ÿ[©£·EOan¦Ž"Ü +=E¹˜:Šq+PôçV`êxXBaKz䥴2lêJ³U. ,§°Ñyy­"›º +l•c€•È«z°•=ò*Zu6uÕØ*ÇkÇy°5=òZZ6uµÙ*ÇsUN¦Îº.׫Ç=c?uÖw¹^`C…mĽ>Ô6v­R`S…mƽ>Ô6w­R î¹ú©³¥ËõZ[+lîupèL>èZ½¶Àv +Ûž{:;;¸V¯°³Âvá^‡ÎnÀ®®Õ{Ø]aæ^‡ÎžÀ®Õëì­°}¸×Û´G€}¶·.nÓú(ì@n]ܦ VØ!ܺ¸M +¦°Ã¹u9tŽŽp­Þ(àh…ýã€c]«78Aa'r¯ƒCçdà$×êMNUØiÜëàÐ98ݵz3³v6÷:øP;ǵJsóv>÷ +øPû¨k•*ì"îð¡v±k•.QØ¥Ü+àCí2×*=\®°Op¯·i+€+öIn]ܦ­®VØ5ܺ¸M[ \§°Oqëâ6m=pƒÂnäÖåCí&×*m>­°[¸WÀ‡Ú­®UÚ|Fa·s¯€µÏºVé9àó +»ƒ{:w_p­Þ‹À—v÷:8t¾|Ùµz»{öUîupè|øškõößPØ}ÜëàЙ|Óµzû¹gì§Î.×;È=c?u¾år½·¹gì§ÎC.×{xXaßå^‡ Îø=툽ŽßWØcÜê}¨ý c×NøÑëCî¹ú9›\®÷1ð…ý”{‚8ãÏ´ÏýèõðK…ýŠ[}ðL;©}íG¯SÜ:ýœÍ7.×; üVa¿ã^‡ Îø{팭ýƒ×^g?*ìOÜê}Ìé|ÆøY;gkÿâµ×¯À +û÷ +Ï´ßµ‹¶ö%¯½þ^VØ?¹ÕÏ´+ÚU[ûš×^ÿVØëÜêƒgÚ í¦­}Ëk¯ÛÀ$;&¸Õ{·°TC ³µS{í%i6-÷ +ÏÂÂÃÒÙÚé½öŠfPØŒÜêƒga‘a™líÌ^{Eqëôs6Y\¬f~jë6UÇTÀÔ@ LL ¦¦F33#™€™QÀ,À¬ÀlÀû€Ù9€9¹€¹y€yù€ù€÷  ‹‹‹‹–––––––FË++c€•€•U€UÕ€Õ±ÀÀšÀZÀ8`m``<°.°°>°°!°ðöË4ºªêŠã;÷ìˆÁ—Ë’‘0·T´"¨„!ÈÄBó¦@!>f*`¢£Ì8–Ö.´­-*¢.J+ËE[li¡¶kË– téÿîÛåáMù¤$·wÃþý÷=çð¸û¾ûÎÙ»¿aŽáƃ s æ1Ì7j8Ìp¸aa¡a‘a±a‰áц£ GŽ1,5kXf8ΰÜp¼a…áɆ“ 'N1œj8Ípºá Ù†³ + gÎ1œk8Ïp¾a•¡EÆv:P[Ä3i‰àO$nD %nŒ«HKwH|f"qœï”Ù¦Œ•ÙæÔDâx|j$N ÄIQ´nàõ‘8Y™L¶Ä­=ØTfÓ¨™ÄQl.ãYl!³ÙQŒ—ñvl)³je‚¬éD‰ÃI2Û…ZI|7²Ä÷PŠÄßv²wãnL•ÙîL“Ù(]â‡\fÈÈw\fÊÈÃÎ3sãÞÔFâ¾.³e¤ŸË¶2’ã<97Hí%Îuž–çQG‰ó]v’‘a.;ËHóüܸˆ¾)q žb$Iß’x4žh$.¥®—áéFârºWâ +<éH<‘î“x²ó¤Ýx*Ý/ñtç»ñLê!q%žt$žCJ<ÏåC2R岧Œ,¼~ˆ™xõ’¸ßF$Ó#/­•½eÍòZÙGÖ¬¼ûÊÊշࣲòqç½pãµÔ_â'¢˜#ã5Q ãðEâ$³O{0Wf7yp°Ìnñ`žÌnu9DF¶»Ì—‘Èß¡2òŒËa2²ÇƒÃevŸ dö€ eö‹dö¹(Ëø Q,‘ñ—¢8BÆGq¤ŒÿØå(ù‰ËÑ2rÄåyÕe©Œü,Šceüµ(–Éø/£8NÆ_÷`¹Ì¾éÁñ2û–+dömNÙw±sDâ4Iâ“ØE"ño<8EfOÕÊ©²æ}š&ñiN—Ùßyp†ÌžÁ¾‰ÿP+gÉš³·`¥¬üs­œ-kÎ×Ê9²æÃZ9WÖüíœ'+?ª•óeÍǵ²JÖ|ÒóÚOþâÚµ÷ 5ГÐ@_†n„v¯÷C·B@·CB·¹×»¡?‚¾¦˜+øØKÐÏ W\ýú9ôj˜çƒB-Í8W*h§•Ñk K 5Pì½z3´ºŠwM?¦F[Ðð|¦ÆçP¢voüG(*ö&8õc—@QkÅ.ƒ¢ªŠÅçÅ^†®ƒâ~b¿¦þß»~&§€ÝÚUt)6ν‰sÄFGbã-²ÑØxSlt"6öý‡=Ú½Æg£+±±—Ùè9lìº6ú ;Š.ÃÆ>e? -EÃeAñ»¡w³ñ;·ÑÄᬷÑÄu¢#ˆCc£ˆCv>5‹^ õŠ]èλó¨üC‡¢êáÛ¶Qñ‡ŽCQí‡Þvõ (*þöU}hõ{gˆJ=´ +Š*=„çl£B-†.€VCã>¢!<¦fGQ£{ŒGÅ€®$µBR·0µ< íîê.Œ#ŸVèJðÿ´Bž ë¡è ðü[ +S"vÑd<—ÄŸCw†) ù¥ sMB¥—‚~5 ù¥4q¯ãÜkt¤IË  ¡ çÂÔ +gnë~СxÏ’Qµ§b]2v€Tä‘|úA˜Rp?ix/RP¥á{HAÍ•Öǽîç^ã{HY Åç¤\D³ŠÏis9ŸÓŸŸ~6L©¨­3ðïRñÛÌxúô(ö¥Œ— ïCCñ2¡— èÒð^d¢SJÃ9™yz…:Þ—´kÐT(~Y+ÔŽs+ë(Î6øÞ3›#P¼‡Ùx?3ð=g/S&î+ûcè³DmÑ;fÅAñ¾d¹= ÅÐõîÊ骜nÊ颜;'½—1e:¨˜›F ,°À¾~S„}œâà8¿ g·»7©Öðm¸¯À ìÿÛ45)¨— ,°º`Š’ÀÖîU¤¿K%ï^/ã¦uÙìeX]0EíÉ«ß ,°Àûº©3x75R`VLQWð>x7øýðîìOX]0E=(Ø ,°º`Šz‚³'õ6ì öƒ÷7W9†Á\ø`x|ÈMŸCù_À áEðbx ||$||4| ¼>^/‡—Oªh"8>>>êÛ^ªn÷ X`_‰1M§`? +,°Àê‚1ͦÿîGõã—ηû ,°¯Ä4UQ°X`uÁ4UƒËá+èú¾T¿Í¢•ä<¾®%ä☢uä§lÖ“Ÿ²yŠü”Ífr²Ùf¸Ãp—ánòS–{ÉOÙ$?eó<ù)›’?²y™ü‘ÇòG?%äñ9y5|Ãð˜áqòG~ï?ò8AþÈã×ä<StŠü”ÍiòS6gÈOÙœÏÃÿÿêKfîü¯TŸî¶6cºþ‹êS.©>Ýí%èeªOwü¿Œé +ù!†kºJ~ÈÅ1Žqæý’K#òO.Mȹ˜ßKLSòC.ŽqLù'—¤’¡v«½jÚg-·6YG¬=ÖR«ÚZd…Õ`5H á†Ö +k³õŠ§Æªñj±ªæ&ÖŸÔ 5MÍâfÖ^몵ߺf-³³[K¬[û¬/T®¨ò¸*S¥ª\-âX묚®¦ª™ÜTÅ«–:M§«5Lq#U¨†«b¾CgXoZoYǬã:Sg)R–ŠQJ5W-T;Õ^g«º­ê¨ÛëVµÞZi­²NX¿²YÏZYT¬j¢T¢ÊW%j¨¡*ÔU©fs<7ç$NænÉ-¸§p"gr:·Õ¸=·á NãlÝžÛqÿ“/ëî®YßɽtœNàþ<€ñ+œÃ9—_å!<”‡óQÎça\À¯s1àÉcx,—rç <‰ßá +žÈ“ù]žÆ3x¿ÇÓy&Wò)žËóyÏã*^È‹ù1^ÂÕ楼‚WñJ^Íkx¯å'x=?ÉOñÞÈOó&ÞÌ[xïà]ü{ÞÎ;ù>Ã{y?äs¼ð!>ÏÿàOu¼îªïÑ÷ênº£î¤;ë.z3_ÔôD=IOÕct©«Ëù3Ý[÷ÑêÝW÷Ðè‡t/½U?¨«ôý]]­êz¦®Ôsõ,]  u±©‹ô «óôP½CÖë5z®Ñkõ½T/׫ô2„÷i]¯ÏoO†w—ÀÃðÕð Ôˆúc–ñŠÁIê°Á olôû똳Bý‡ýªŠêºâç¾öáã± "ßxwå;À¾…åC–GÜ51R$Ž–Ñ F£56¶©¦j2ij¥~ÒÆ8‰Ÿ±YV4«¢˜Ô¤ý£NÓhÛ´©™¦C´im“ŽF;*Òß{KÕtèL¦v|¿yçüî9çžsï}ïÝ»kI ñ×aùWßÓg×=²fh¨·hèÄp°ùµž¦·¬W¾w¸‡¹/)‘1J»„1Jßǽ÷«æÙ­á1FYÒfÉû¸ûøÿÆ=æ?v£»m3JŽ–îìa¦Œì÷îQâÙ£"'sd³ö«š¡ÁÓسúîÙ³¬]+LÅaÊ-0ìÑ¿lföfVó^>{¹™µ»‰0%–tX’ØMC5M]6ÖÅ>¯&˜;Ùg‚9æÓ‚9 ¢ X¿ `$o€½&ÐË‚y›l†¼J0µBÀ7€¯dh³\ ËbXò‰f£Õˆ +³­ŒÓÐ2«N³Z´jÐòX-Õt´t«Å%Äã8û„MeMGìüí¥±¼5°©4—8+uLã§Ør’Æ6Xòy#Ö©}äÔ~ïÔ68µUNí{‰áXdIfÄ6j4j“µšFmB£v‚M¤<8D#!O;™§…ó´½yÚÊ6ó»Ä> ø±‹¦š…¶‹] +4Yv—Ö¬ä†àÃ3Ãìb`AŽs‚†é¼CИƒ€†à +åÃä?FͦB¡œòÍÿ és@¥+ô¬í5º +~Yý4ƒ¥“Ê +ÙXp7+÷0¼„ƒÇñDl«à &ö› ¾M_„ãZf+Ù7`y“=Ë1?Á0 v’õ÷³Sàï³ÓàçØ9ðóì<©B û5^¯àS…R¡”«B™P^.”ƒWàã…ñà•B%øaøDa"x•P^-Tƒû¸!Ô ÛdO_Ü#<„Ÿf{E¬¹¸OÜ~@Üþºxüx<$þü¨xüWâ›àçÄ÷Áÿ žÿT¼@ªüŠø"y·¼›ä!\Ãoº ¶mrÖÒF“zV'GáÈ3ÒI²Õáý—¥:QR££luŒR”迺&7%ˆ„CåÊ„0à‹øÎÁœ²•ã¤ï^8Z¿¸·3”ËûÞç'¸Ü¦H{»Tÿü“Ñ>d/_Õèjìzfqy+Üðlí ê6Ç{wo<§Ù±ƒÌÊ)¹õÂK*Y·aüPeÅҪϓããD–¹jåO ê~ÔÝìoI}¡úœÞ°´££Ì¯èT¶ÍÜT°v\ *A3ø¹”§7ÒFC1Í0´‘Ö{üŒ¡ºÁh3ëÍÕ¬ove'à}IWçr¹i=˜ã*M/®ˆÎÀè«]Ž¼7–篩ÄGIïq•;[jò-­ ¸bL\›QY+¼=9d§’Ïxrún<öàî44ú¬øG¾wÏ(=ºã#Kºäƒ;kàn\û“—åý{öÁí°èT¼@£å#ûk[Óµ²K>€0&P/eÓŒŠ`4´E¥¢ÂÄX,<ïTÔ4™fKêÇ„ç3FÑžz0¿~ͼ; ŸÅ ÀEöbi‰ÙŽðXk&–7ó”ׇL]Wvœ´® +,ºá~1ItAêp°cèOòayú¸üÙ¡ê¶ø¾Ìn4ŒãiÄñp EÊ×"hd)5þz#eT³&5Ö9ïäšô'«-Sû“™˜¤þ?&> +ØtH¸Ö¢´ü}áHØÄú/bãÍ&Ô8¿uÁ K«,¯5n¯\ô‘ó‘ájyjËöõM9ÂæïWü÷ < ,{Wþ»|Ƕå +V`+n³¥ª` ádì>‚à*Åy×+¹|ÝuÄkš‹%_-Ql¨ip60 B%Çñ¦b÷$©1UORMƒ{í~ñz¬}z"5‘ŠaôªÅ ìqÊKñ=vħcìÕéÌ¥˜ó*^`ßÛ  ‹/“ãX]g§ø^1-[oh÷šÑù ~ÙS”]øçCþ\·§u8šÜy¹…+u›¼º¬ÜQôR›!ú­Á;OOkPßDOÓ „Œk}2ÿñH¤ócgÑhb_gÿ’@(oΟ_|õh½¯£»r½ü±|wxµà9¹ñý¾E{ rV^¿qQñ·©WÞ;Ö¿jQ ZyêðoåëÍEÎ’Ì>€Çú¹€µðŽv§”7H@’Q«´ˆ`„›Ì C@Єê¿lWyp×~o/í®®•°¤]­,im–dÉزl̼|„Ó¤˜¦IšØx2ÅæèÇx0Ø'CÃ:mL¤uH!¦´$SŽ”&mI§íÒ&L›II<)-Ð6 Ñß[™@:ýc÷=-{÷{ßï;D„A…Oáè ¼ç˜H³¢EÃ~]@…ÉÌŸŠÃ5'‚œÎp4wŠ‘Y»Í Oûµölî/à¼P®g…H@ L%P%{;ÁEÀÚ¤´#í*u”:´ Õ–wáOf,{çro0Ûs³é[OnοŒÛ6gÜpû +ÝÇöAÿµÝ¢â _䈊yØ¢’"—Ù"Ø=^ÉnïvªªW…ÃÆÊÇp•î U•ò*ÞƒºKsH u#le;KŽ¸Žº(a +Å€ý©äÄãçšõžõv EãSiÜ0™A[*Áo`¼# Zë0NÎY†yˆøB4Ôš_+ÖÀ‹"¼µ ÁÓ„ ö©L)âcaH_¼¿OC +%"@ˆÚIÆD˜À›5 + •ˆÄKŒߞ¬ê>œÿôù·™§hê2~%Xê“æ3!W¾·íàÜÞE-³óç®>”}8‘<ÑÿÖNL¯®§ÞÌâ÷Ý~ÛI=âSâ÷7¿ºòOùK“­þdM€íiv=p$Œ¶ë¥K퀮 zÂ’Z´à «M*¥‹šÀ–ŒPÖðò`˜ÂkQ)0ÄWˆF`&r½ge@ÏÏ;íW^Ù •DnwæÁЋH0äò"F‰x]á Öè@•bØÉn5ƒƒLI…P ÁgÂúûûI^+-A)\£yl`1Ap#S‰Cä*rüèÓŸüôhþ,Ž§°½ÇšïÛ(OO¶.|áÒ‰xÓ¾“ö?½{Ý*,å/ãÙ؉Wä~§y4·¼ßqÿøö”o~°æ©ù_¼5TГ2ðÈ=ìdA«ußq?`¢7õðÛLà ¼ ¼ÀBwÃIÝCÌ™ì"` {Yà“fÙƒa³f¾—ËäÔCæéNÉ(¤SÜŽ]àÙZA(jé=ùùxW~†Rè/ìíó3Ì›ú£ÒÈœˆôÔ.8»!v%ä¥qBÝfÚW¼Ë¿KÛ“Ø|>µ+}ÈÿÃÄ‹ÉCé&­lÒ¤Ì4f*7µrjÕL®ÙÓm¬l®ZB·3«˜ÇÙ L·e­u»Û³Fî 3O³›={ÂÇècÌqö„önÙ &PÆ„ä M‹ŒU¬J(ËLd£KØ¥ÊRïÒtÓÁv(ÞŽ´4‹OGd–±»ŒÅì °æ‘r«½³äÕ‰b#1*$ÒÍW§ï8ßùz® \ÊT—ÚÇIÈ ÷‚Äz +ÞàPU==9¯kÙ枯|}³X¿¼g`ìGÝkÚ3OêÛ~öØξõfpÚí‹ô8GJ “zëGòGÊuùºÂ4ù¯S×ùÕAß>i·ºË7*ý$öËØeérÌ–âYVÊ‚4¦Y³–Ɇ/Xföûl2?’`e+;„ØAR\Ò9§£O*ýpubôÍñ“Ô´¹^±¿ì"f~üêsÿ¦#ùý—öæÏox¶1ê*“ÕÊæGþ³È;Åe¹úÒïq‘ã¡ÛŸá­ô+0”Ñ}Tœ79â³BšbÜfŽ³¬M‘•3Ú­'îĶqén<'¡Mô#BêÞ°>ÐX>yºž*oü^ƒ^QÑ4£–¶ÖÏ*O5ÔWÜ::£"9³!UÞd<Ã(t› ð “P-Ñ'Ÿÿ¢Ý¸ í&WL&³/îXµ{{NP;«­zì{Î<éšqPÒ—Ûú¿mçK|aûâ{›Ï{ ¤a̘<ÿHôK ˆz ÚÇLr‘œyû3¦™ñ!=¢×°Wé¤i†Cˆì@è8–æ(^ˆ§Í1•ì6nªÄfäå)ÅÄ_Ñš¾:Ñ—T/ÏË]»–#&‰ ´â'2¬²±©œvá HÓ|ó#æ¨Á½øf-¾¹7¿‰ÌºÊ4Ó^P9Jã*í&lÃÝAWR,ò +¥ð°6ïþÂQJ7²¨b|^®CÔ&WáïÞ¼{‡‡ñw‡‡ Íô#Ä‚Y£P"|V¥í´¤Ð +ã´;%5 t‚‰qutSÇeÙ`›Ø榇™!~‹°ÉºÉ¶É¾I ÷Ñû˜Ö¶öÒ¾À¾`h–u–2ñ<‡`ñoX̲aW2ScI…Ba>6†ÓºSy€Z¤7_þ—ðr n⺣øÞ]=veKZ=w¥}H«Õ®vµ–d[ƒ ¿À7tÊ#¡¸@ÀmS +AÔÁíIÒ LÓI›Ç$Ú¡ Á ¥Ô­™–áRCš&™)4 iÓéð’BÈ´-½w%›Ç¤S>¬ö.ŸîÏçÎùñ–FJ÷Ñã8q %MB¤OWs©HÃ’XmÿåÊyXs«ô¬(GK4ÏxºA’†šP}Àd|H³™Hõ °;R ™§Hr¤àª˜·WÅÔ}R³m*‡ wJXar•ù +¸yú_Gs‘hquåø¦ÞÞMøý×4غîÙ“=¶·²?ÒµõG_ÙSßè{|ßè`â÷Ågûwˆå™õÕc?˜cð‰‘Ÿ-ÎáWcÅ—S’ÃMf3<,ë#; ±Ë°“–¢ð™s,ñû‹kd˜±sŽ-%’“œp g–ð€ïRÃNo˜ñC–2áÏrT2s.aŽ0ï2lŒŽƒªw~l·P+€ÌóŸÕ¶¯Ôö,Úv)Ê^ƒŠ‹¶]a£t-ˆx>áö Š¤úxos'àƒý̯/€)ŽV¡>]Èd« Âæˆå›aö0(xâ)ÕG¦I bðÐâ29½cË™÷Í« öבíýKÔ®ÁÑSæ¯<<Úöñ„ÙòôüWÍQóÏæ§æ¡¹Æ"uáÌ5z$ñ‡3“½d3Ô¤rz±Ô<Á×Èqr<:Æý›´O#ý’—KjÉ€Ä1šìà®,Ü@q<+ËIÒ1ÿxfLu{ô€ÉÌBƒdfLŠŒFpj’Ò" ‚…˜$Áæ°)Q…T‰„£¨|ؼ€99×´bXÒ +#>:¥JH7·Ågl¾jDËØÝÔÿÙËŸžxÍügw“¹imWÇ:\Ì1°dó–y _¹P™øv|és`9˜1ò”˜¿quc}ë±sm‰T—ì6½h^^ZŒM¯íš¶ ÈDÃtì­ÒªÁÔúÔ¶á9YÇy]ÀµÉ#¼å¼É„„qš–´I©ÉÁc› +A‰%)VI¹ˆ¤š°<¤WÝŸÈjÞ, 4¢¨é$¢®vˆšãÂÔy*®Žã®1ÃÓm‚i¤k0áVwíZÑ[;úAß`ž¢ñ­î¦ :ÀÕpý|\¹lÕßÚ-¬…)j9 ×3D-kyŸuDS‹N„˜rgÇ:[ÉÙýæ¯ÌO2!0ãÉÙáÆFföVóÍþ£ïýþÖûð%Špu'©šgŸš'hfáKæ:ÜoÚÛÂ_Ýoþ "´öÄs9<$±=¥Å_ˆ±C*»cLâdM®Â$bbbœâ'“xR†õñ?ÔœF×<×{.Â…à©Sð¦”x} ÂCÛË$¹V_ Äeü\ÿL fã È©ÓÙÚk^Ò MqúK÷På¸ânßF W=;‡×§•Êí”bu­¦[çì» Oå°FìH‰»ˆ”çÄŸ'"'hòFå,5U*§ÈÂ)¤ê³9hV)ʹ\Ž°z²±ÑHŽÈïÊxN~@>"ò8n;Øìo ßjnªç$"˜©ôùª{!0ݽŒL À—+ÈÆjSËkY·OW2ªOCæ•Eæ•FæÕp·y}‘uM» 2§4ä Ú¦lL&V_ô5(î kïÜxüMó H¨¬Ìô&;˸kn$mŽüÔ<ýι± Ð+A3KÄÍ/?ßû=óŒ¹Ç¼`÷xY9f­ŸîTU{0¾Ò\Ü°ÿèâÛÿ°t‡¼íÇPwt¶‡z¸žî–8JCdCZBîãbZIϘ”-qAMŽJœ¨ÉªÄ¥áSŽ6ňÐn›ôz’Š"†‚‰é˜HÒ²‰BÂc·Z“µœ •¡Æ2Y`¬™í‡ †±FÔ¨ýƒ%¸|X9|Òï–ÄP!ñÕä&m(B0­å.|5´¶Örgg¹2±qFå‡]𷪵5¤ª’kÌ2Ø9ù~³¼¶V’úÒ6°Ã\¼¶•gù>þ]È&€±K“I ; d,Ù#q~øtÛ[Ý8à'ƒaxÙå ßF ,”C×…óD_Ì¡!+"%õW¯wÏå¬Kis_ßfükèYù È)Tëp5ÏUÇÌòÍòp+¥XưЭKøuøÅž(Áñ ‹Ga qžL‚’8wF&ld”ò»—ákñ¿ãWqÞÃxܸ=ËP óè·¸ ã±(Nà¹ÜÛça½F”HëO °µÄžL&:†ò “KQM Ù—b ‹–ªïpB¾ë&Õ-0Ô&ww(Z¬oŸ;Y©ìœU'+D(æëÉ‚×g˜;Öµ¹”ÉÜ:eé¯\jŒ<Ùy>²;2qÜ—è¤wD˜0á!ÂA››d÷³Q81Qcãì<–`0Þ ɱM(ÐûQ’ÃüF‚´Ìáî°žäãV<[éŒw–û™“ï¾£‹[VÞøåí0V÷ý¦–HÙ |ñ!ó•© v\‚wQ`Ê|w>Û9Äwg;wö/qbçè’æ %²­b>ª™XéÊR"t@ Õ*ÚÔ­•i•PZ |¨‚¡¡-l+X  J)jIѺ :ÄlmR£®ƒä²÷ÎéºÎJN¾Séž÷ù?ÿ߃ú«“,z% à>Á/†ã +YJë¢.ÕšÛ¯ñq-JkŠ†£I>*ðåœÛÌÆD$ZYxï„:ùÞVb …“Ëq9D2¹\Sš¿Ì#¿ +†i,þIqIU69…6[|C~;(a º­Ú&^lkÝ÷À›pîí™=»Œ¦ñQq|¼¦¬Ûˆ*Îeoàzw‹M}ð/‚Q閵Ŕ4²÷A±|ìú¡:É¡X<8q—<„´+C©¹WŸýi. ­ Ýbï¹î•Þm¬YzC¡`ˆ Ò!‚^ík‹!JIÂýÁ€gÝšƒ­ <š•¢ŽX(ªñ•£•i–:1©“Ë5Žç@¹F³óæ&Ï¿1S4fæ„¡ß&4J™äˆFs|Š†I¤ ÒºQÁštÎCE ’D¬jn†xi­´þeÂØX¯¥vÍÒc§4=„©c*ööá:É®ªŽ'û «Æþj)a†2š¯l&×(\èÓ.z†|C<~ÃsÓw“ǯ¸¹Aÿ• 1âú˜ûØ?$Zh:%–àJeQÈŽ§¼Ð‹:Ã;¯±o±Û!˜` ›`’ý*›X¨¬P®|H)Uª[A¶à~5ú†^½¢lo„]ìºÚïï½×½^ÒtÞÉ +¶C3]WQná0jª·MåÐDñ[¯^ ò ù«|sžûŒoBl‰Ù('€_M(‰x·ýÿ?&&ýèL9 nÑ8eÊb£ý?ž$ýæ¬Æä8šä4TMƒþ?¹síø•ñõ–ã«u4&ººNÚù#Ù·¿Ë©'~ã~ÿùº“í>-Ô?Ž…O¿Ó ØsÉï!ϲ üSßÔÆß°„x&6(Ë·å¯ÅQ™"äR¹4V!*2)ÒGÂ’ùÆñ*—(ñ +Žbc²Œø"Œ¶‚,Šq²©Ø¢øSñmñãq"wx½•òaeM(—i1,ÇDHJ +ÞZ«#4=^iWʹÓã•É©Ò›/PƒÅ¤-“§³Æ·^]w¢Ý°•kEÿ“IµÍ㶀Bª6?2<¤ë¡åy¸Î´·IE‹Oy»6à/õÙ¨lLR¶¾óÍWl_’0¶õ>2«kø]ï痎ƒ‰MÆi#؃ã6¨¶œ91+JÔø¶u¾ñÙF­ÊÜþÍ~~üßÕ•6ë%µ¶À@fâžG^¯ 0­«îØóöÍì.v—ãoñ; +ÕN/³gŒµSÊËö—;•û°BÕ›Ð9ý}YMW VÓW™Ì'Qþ}±µó÷©^MqÚ "šjðâD*ÅèÓ„é°K/B½“³+²&P !GÏúE!",Eµ²N/i¸êä?’I<9³~©<·¼¸jãfÎH_ÎnÍßrÃY¤ï¶æƒ£A>?šO[» Q ‡nøBh#|áø¦\Ö쎿¬ë±ŽcZY鉻ä `ÊÑQUèRæA·ÈDW\NºÂžåc·U ¹£™Âì é)„ÒdÏô¢!1Ÿ5#Ó§ÕÝìž)h)ZyQè·ÓL*ÙFÅpøói­?ë_ùJ[úµc ÓK®it©aº¢ª¦öÖ³[««Ÿ>uxÎc_ží¼^UMð|}ׯléþÑüôòµµu+6üöÚœ¸d|ðõUKΘùh÷š%K7õ}ÒV‚§ð«ÎÑ@3{ôGm—q;ahìðN؉aQÅ0÷|Ô_dZU1ïe¿€¼n`ƒ4ívÚ¼)0§ƒ¡¹8µÃHë.Š.÷DÝî}îcnÂí3‚éÑÑÑ,ÑÑ/¬•`ÖÌBµA?à³F˜Ï¡ðÉ¢—ÏÕT{%S¢$ü4YêhĶ&Þ}¢µ²£/é=G6GkÉvcÿþUîš•L±ÏÞA€•LÞ´XR¿Ö˜á;„lxYd/»7r@x/|?Ê(”ÂÖSõìj»˜ïºÂ]‘ÃáÃbe ÉÕ¨fÊ®ÕfÁ”$AÑbRÀEªâõŒI‰Œª–]ÎÊ`ÀH ËË$3´Äd‘ÐÇÂæd„` M‹4|»´™+¿ø[ÑÛZùÄ‹«=onœ7k“qÜ8µiÖœõb~•n^7¾®ïÉý‡–_ÀJßÊ°ªê\Ö7þ÷á#Ÿ¬?‡m{®™Q­ó–¾Š´ˆ‚q½å™Ð3<mDEáRäRôFäFô¾÷¾a¼Œ/ä ù4¯æ³Ñ C!ÈfÀ<ÀPÞª g®‡a}n¢[}`â?tWkŒ×¾gü˜×Ú?Æ™õkí¿cã]›µwgÙ]–Gl«”Bi• DKQE +QËŠnJ¨Ò¤)iŠ¢ +ÒDŠ€²*K U‘T*(RTåGR¥­úÚ­U)ØÛ3c–&Ujkî½¾ûŒÏ÷Ýs¾ï¨®±R( …òé²$ep¦e)D[£|ÐËÊAž¥QaÉ’B¬«[B/¼f+¸tá5Øyؤ;b›£‡£”‚œ3¸+-! ¤P{ª=\˜2éÒlb‰5ØÒÀyf²˜s>°Íƒæ"'…ÛkoºB„Û÷V3‚³i\(Êr +¢Æcç°F1½§?q‹FInˆRjÍd¯–(ƒ ¯¯‡ŸDKÅÎ`´Cë“0áÀ +Zè±}틵ºÖ?(öPj‚•RÓw[÷¼¸Ö–À\³Ë¦ŸÅ\×á’þã2 ÀŠ‘¤¹¬£u®^Ù^{"´W>ú–ü2yN¹N §Éi8ã8ëzG8£œQçÈ\v].*Õ•Õ>E7ñXé-QtÊe­Àåò…B–ãØ~*ùêªZ­2™f<²ûJH••7³.YHó 99-ÈõtMÏ+RžTæ—\`+Z gýa©Xˆ•µˆfÉe …¼G’d¾XÌàªU*°L­¢1Öz¹Xñœ•³ŠT+gmôb W©+IT TE+ØÕ€¤ÌÃÚ¹‘@º ëÈaÂÂû:#õÃuªj¬ž‡?^ˆ?½»à¦%Dz²-ÛâÁMã»ÇŒÑ41ÿêî/þ‹‹œA…œÑbX„ÿ7ÐHŠ&vÍÙdšæ‡™®uÛ?õyž€9²Â’.qú»-y…9Ú’HY Á…{°Ü’Š<éËý±*9.2¤ø[¤ ¯ „WI7¶~;úÐRçƒèKç¾¹õ1¤ź >5r·C­ù×XÀ ª +œ»æ‘³mB],JBÃï T•q‡'Ú§þÖya‘š¾û:¼ €ôŒMíÖtuÒÈ»ôè§Éz…:ê:êýž2«Î–f˳Ê6»“òÒ¿E´‹Þ@8 ©!Í_M%3jFk¨õŠÛb û¢Hù$ERU¯U²U$M³+áJ¸ZMòᘅ‘ÙÁ|ÆBäVEñY­Ysd[^UÍxðÎdµš÷P”XÕÔ¤èµSLöþªp,Õjæ²LVn…††çÁ¿Bƒ[Âa7AG´7B:ãDlq&†Ì¼‚DhšÆE ¹fÏwQìÎæx誱a€‰P¢ã‹é8»¢t•ÿD¶+¥ŒF³Jåaå>1.>ôÈw@ÿÓKvQû¶Ëçùä/UŸ—'`aKaboç÷pløáÛo<:¾óãÖÄøªè†NRa×þ¾ë?ÙkUU ëÈ÷¦|Rç:H-Åï)¸XÄ— +¦ŽtŽ·¯ïÐz”4%)±AµóÑhT æ=¼MÁþU@<†x¦I†¼­¯Ï2 f\[û+CcÎ{ÁCÓO2™HâNÀ–J'Ád4‚×’’3nBE{å0`=LN&ҙܯ)Žxà3È„ÓÁL$x>#$µ7[Zš^ +.¶ÓíडžP;á@†Û6˜sc«Uš6´m A£¬¬Ms2Ž™Ú¢úåös½Ü¬µqjߺu=¢a <|©w ÞÒøjçãÉ£íã³£¥Ù§7SóÆÙrŽT¬Ó€Â*›wɳôÕNt*ýiEaFÂ×áصg¬ªéœ¨m~‹yóöý¡ä¨ó§%ë€â @ÆÃa_ËxŒ#C¼<ÇKCÞÇRn>ïex œÏG@ä8çÙæÆ–¥s~Ý.Ç™mô62O±çýbéêí¥[¦ïÚ·®š £Í»Í<-^G‰yÝþæ0#ØrÈÉ“HGˆ÷a6Þ¸qlýUKœ–ç;é_n,HµŒµqw†r^ØRÍ”+wR»Ö…íµçá+;ÒÖþ;¯âßë\¡váÒEÆõ$ý›$êcn&‡4ã"8=n,Â4sÚå"!Áýiü— @ÌrÛœÚÍ{ev¸‰O–)HAŒÏÁÙ_5ŇälçAÛFMõ%þ}ªèO­ÂØc+°„±dTï»ÛaćC;ä4C‡\§ñyxõüS÷Bcdá^è•È¯­( Ôâ°ÔÙ|qÐϧšçà\ç +V—„íkZÈK–‰eyy7±^Ý -T6bµ½Ÿ{x”&µ²ù†÷‘ÝÆ—ÿa9f™C﨓¬‹{þªÞQ):µÖNõ$Nr'oqoñ¿p¼ËþŽ½VºV¾ÉÞ,ßÐþÎ.–]2y-èú¢¤êrk}¥ØßÐò.ŽØ}Œ¯ªÐÅ¡~žjñ#ôH#%𥑬®Ì”²g³Tvž":7LÉc}k¬cú<çG× (\\jßBÇØ\@f´›·P¢2Ä·q”L½24©c60Ó  'Ò= )Å¡ÚU +N¤9=d1ˆÀ« +H¥-=D N—m˜‰wʹoKÀ´&¹îëÈÛ Z)r†EIô+]›i695(úÓ° 9éªÔþããvª;Õ€ÚøÌÆÍTyÍÁùáNðúúž¬‹œ"† åwÞ|\a™@D‰)õÕc-Ëý;¶<ò¢²jqûþ¹Þ 'o>±uOzT’K= ¦îw &×þä¹ñïvžZíO9åU©º­µ&ÖpŠZ$æÙ¦—-WlÏ’ ªúèÙÛ=`ï“H0pCÜLzáD®Љ¸ly ‰ñ´¼ËÍGÆœó¥s)%e/ùÞAœ‡åóhË®žY$&F±»—|r{ñ.Ü6!þ‡éjn¢ÎãûÛÍs“&»i6›¦›d7›ì&Mšlš¤y4mÒ´…¶Õ–‡J*Ô…Ñ³Þ –ëx§'pê1 +2œ§Ç§ã1zÌձǜ‚ÞÈyŒs7uœ;àähÂý~›™ÙþÒtûÏ÷óû¼¾o¦x³Go ·µšM-{U8k¡±% V0Xà–ÇØ1$µˆU–@´Ý1´~ÓQ=îJ®Øºçlùß7œçsÀøLòÙ§¶ÿdþÓšï|®¢NWÚ§„|÷Átù\D#äâ7†ÏMN–ú:ËxƒÄ`qóa"öz±wœ}ÕpŠ>OŸw^¢/{ô)ÜeL#Ær-³Ö1fÜFŽ1cSÐÀ:õ$Å:qÖY«'k´5 xÙ{`oçL"Þ!z¢·T—±5àGl¥®Ù²ˆ¤3ƒ…|iŠFQ ‚1¢N«ØÔ»¡KbÀæ¦$Ì"Àƒ¤=µfåk$D?@©„C¾‡U—\èö²Š…]Ý|Òl•MI,!âc¿*bÊl®á…æM/ÞóÀ’hŽË¶íûÅ·@÷§qdÇBV‰*)óᯞÿ¶K^Fo·ëÚ'g@C›8ÄfF; +³3‡](®ûYðõàŸƒ§#\‰è°uÑEÇ£/F…߈¾þ}ô£ðTôƒÌÅð…è_2"¼0„‹ÓgšÅ$gÚM{xv±›óLMq%¦a5>¹)&²„6™ÓØiL4êsm²,˜|š˜M.².ØÑ|ºkoh@æ[½ †ƒWJyØm¨[ c³jCe³¥²¬úQ![*Œ¤"i ËáÑNJ ÊÝF¶ˆm,'´Ê)} +ˆ£.„½*T+ÌWX<•´%lª½VAÇ£­Á@}Âló.m¼ÛGt8Àq¾Ûä0éÆ_ÒgB½C?)ýnóÐxÇög'J¼É3ÐÖÅ 1»ÌZ ¾6»­eöL{à®´mu5ýáOAzöµ!pxçƒ{å—³Ð{ƒ7¿&î!Âæ07öiqp­aļÁöó¨~›aÌüý¸í1ûc̬嚵f™á>Ã}Jó¡mZsÙxÉjh5IÖIIÜH:6K€˜Oè8n•»V?¡{Y‡ëÚkLn',Ìnê HÄ^/qBÐ{=öÚ²Wfªü©úkiNáð©’¸ÁRiXxí6ÕQë1§Ô9µBÂ4ðÐXuê-Àk˜óSUúˆÙ‚ Üaq¯"Ž +€ˆžÆWN—ž$ÿ°síîV1ôå+ï~ô͉7ò¼0ÕÇ77ÿøÖ×Óëטÿ+àŽŸþÞ5ÍKWÇû{aÞ1Œ  —%ì‘b:Mƒ±Ž A0$¢€qÒ~¡À¾ A+Õ:œô¤3a^mÖãÖëtR€$<|ᚢÑâbúð8¸‰É1äyù©«ƒY +²õmØìffèŠ÷ÁñœÔ)gµ« ®&¦ɪ§Uô(&Ü Áˆ•JéÄ_…÷» +œ‡Ã.Æ‹s¶Ãáè¢ ¬h(ÆŠÉmŒ^‰ÁÍÑ/Æê\Èb›(9ÓèvšâPçj€çU‹…ëã-‹ý>ÄQë× J +H§äðÃmÏ`ePËQÕUUºWMµ [ sµÝZ]ªA®þÁ¶4áΘ˜šÈŽº!¼ï¿ïå>¾°¼¨¯©ýîN$—•çs¦–õÄÉLŠÀý5ƒG_z¡Ç—ºgKù‘"ÉqæÜz09¼õaº\ûpÆÌU2 ê·@M°ã %Ñl-˜¹ïyÞÉS‹YÎ9Áñ^ʪá†Iãô?)«“7Mje/ÿ9eEJ—b›<äíe¤óÂjˬD uX\±}/ë¡'W# >7ökùH¸µ5É?ñ`ÆhULLSøH7gÀÓÃe—¶¹­U}{ƒ&S[Àçíu!ÅkɺÍzC©iSÎP™éæ3å"xS)Ší*JÇ3‹ë9nB0טbŒ(DËA4Œ ·¬ +ZÂv4ˆgz[ôÇìÌqœÀbê4—‘ ‘ø +3ÔLµdoÏOO ÁJÃ[–¨€5dó`VÙætƒVâ<*)ªZ÷íÃã•.Òœº-S p«9‡ÂÇ«¤‚£WÌÒè\æ]Õ˜×D_úÁ樂ÑFÿtý¿Û{#÷žÃ'ºÚI½—#EšÑfWþM¾IH@­h Vnj7bì\qtž¿Ÿev1˜úÿç×kx‰—„f>- Ø”ûùåç )ø|Y›Ý'2vÑWôÝiâv&®0Š=WDŸ»ä©HÈŠy °:¬9DH\&-“L¾'Ü¢‚ËMî!ù ù¤Lȹ4Ò¢ÉexÓg'a8 A岨³|õÜM¨éÁSjUaás"u•Ø|fÅ•™YúÿtWkpWÝ»­´ZI+­d­VkiWÒêaY’­ÕÖ%{cÉò#¶ã4“(!$4 ÍLm&:%¡?’¦i“4™šN +4 ?:zšÀ˜N2ÓòÈ„C…â)3¤ýAâ wW²óþ\ݽ²f¼çžósš§ðœ43|’gÊðÓ Ôªmä`ÄÙ)ÃÃ\4Ë™8€ + +ªØ<zÀÏø'*])VpnÙ3ÒIš0à xR%pzöÐÏú.>º^«†eÑ~©F5I ³°¿GQTàüœƒ°Ü=Û/Ò^rí¹Â?/ y´ÝÊÒàEíð´çÄ^6ôõ%Ä‹Œ©¢Áªˆà#m¢‹¾Ž—¬}ÔåÄ1þ±·òétº2®+ŠkrP—`âA)”O¡˜]OGcÐê®Ø%ßÁ7H¬¼]KïìÚ ¯Ãd’"eÚ}gý´BB•DBSû2‰ü[ +¾œˆ:Å—íèºÄº2Êô1ÁIl ˜ª +‰7ÀþUØö¤ oq<„—aRŒDJB\ „>1Ky<ö‘Økî::¾§"zÆŠ;v.Ó*ÓE¼o*z·iù9·ôde>•ŸÑzy’mŸF‰±4N„9[²Ü2T®YéÿêØ)mç°bæsaxugú±¤¯¨!ë7b~‚GÛÏØ¡1%&T2Ò€DÈ‚$†t2*bD( ¢†Ý'«_a“•ŽtJX#—#Ñï9H%+‰TŽÌEåL÷ ðæÎ\±tÃp]Ì…¼îŽŒa®Þå2 -†EÞ†ƒÓ¹â:üDošc,Îñq. +/ó%î›ccîazýVþ9®Þ‡{i¶ÏÂÚ'¶“ضÜäÆZϾRMÛ4ZR7÷UBuH[ n–ü6Èb*9Lgƒ”å[›ÅîØø›ZjD‚@Ug7ÏŽùå«#ݨ‘Äܽ?ÁÌø +ôñ!ÇÔη,·,èqæDÛ)ælÛGц¸q¯wµ‘!JfNñ¡¤K1[}žšÏJÀªðºßQsXUo ~¾UÔ\½FY€]Á€£ñÚd8¢ˆóDÓw, wv„‹‚6. åŠ"n\ŒÑt=K4xHYÄãFÃ!$èÍed@4\Ì-_~ àw¯\Ò>3¥Ý§Ì8yLF_¬v÷·—µë€|;·õ¯i‹o¿ü-ë²ùBC-¨3KA:î;!¿"7v3öQÌLÉDlLÆÎDÀP„ÌLÕ&(×#éª}/̉N#4øi+…i&PRA'MhÀoî“~Ý•°*Y;Qƒ¹U©|’Èy‰ŒN£|N‡ÇHYKúäÓ½× ÐjÚ]Õr³ÁFâ‰Å‰( #pÁch1Éæ(hX½½Î5"ÍLÜ SàaÃX%W› ÌÍ-BíÜSßw⥽c_Ð~¾]‘+ëÚA,Ä`vËŽç.ø“ž„Z|Jsî¯þæÒ…×·vj–峦Ú(vi< ÛkÔ,¦ƒƒbÏ‹W´ŸÚ==ÚÅO¥Íáfæê†ø¾;Óë5u•ä“Å$ö|ç÷ÓÓ‹éß¡ï§?î$':AY® +Ò{!¿!PÌ,Û8¯ó›¼]~¹CŠºÍÎø8Jé"9’éï°J¢Ý“3¼ê~#¼Új/¥@J§^uÚéØþ°N¬4Š®ñd†d]HGÒE¬¸Xœ¦`ÝöN&ŠÐi +"ÎR…À¨§É•`)< _½;¸à4…@€§å¼†zM­°ƒ((²>ÜåæRO>ø/oÍ…‡Ÿ²ÀéɶoЄ™éº²qïÓWøÕ“ ËÇ‹à̺Ω^8w«±t|8n½£æù˜Y@i7xz(Ðý×?¾ 2ºÇY Øç Î ä:¾Å&€>õоªº}YE|æ˜cL(À’‘HšqÂÝΊϴ±½«m¾‰yIhVÏð€O²±H³üøUH°ŽÌb𣅆ŽéÄÍÅ¥¹†K/cÞGÈ +Vç¡ÔߢŸa<ÍpØŠûEdÙV–»)ÉÕûyo6ObêçTEí–£máǧ+™»§À›»6¸äî°°Å|gfw%è©Ï•µÊæ**5¹öĽ%ôPËÝH`ªÄ",hC¶^Ûô^ÛëúM%Ì]B÷58þào.€oþî¡Kª#ÔÁ ¾kª_ø |{ý;øèÑ¿KJ.B™ál£p"¨d]$¡tX³|ÈßãQ¾n^“Eºb – ]ÿR$6ë8å¸äÀu$r +„nþ®qs f?8 çs\k :ïûv…ÿÇß¾Õp·wKÆÏݾ¾²7Íñ)Ä¢Äè¤J˜@t†'ˆÄi Ý\X¥ÍÛšzØÎêÏE… G[” ‚û·A†Á§%o¬~pítv`ö‹ûOÈÅìbLt‡ú?[Ÿzîkïž;R~ÑN»È ï3•Ù ƒ“²:øõ­³Gã”UûÛÎÂîÍ¥m#ÃûOÎ;iì"ä¦ÞK~F«iµÃâþêF{!“j•¨a²ßaU)ÉQB3n?§:;Ý°–.Þà¯ð7* ³¼°·Ì¯á‚ ,Ï¿ÃsWøÅå2D&cH6OsïZô’v ¶¼3l¼2d¡A<Ô²ˆÚ¸z$âÛrû ÿ!»j`Ûºªð¹ïï¾÷œØÏÏ?Ï?ÏvlÇvÿ<çÇqìØ­Û¤Iš6[`IK³M”ª¬e)ÃݤNš&D+@Shí˜i0‰ŸMS[uÓÊ"š„Zº©SUC°N T •ÅçÚIi!Êy÷êú¾{ïûÎ9ßýN£ß8,ŠŠoGm¹[ä¿;Ý\ÙÚKxÓ•‡Ë¸xITmîòÔ¡û#[ú'ò—ð^Ì@^ªÏí¢»"{éÞÈaz8ò}¾Q"Ý;’ÕŠiï‰'+f¦'îƪÒeºOùM2¤©Š˜±ƒ„÷ä–¨-KÍ”j9²Ù„æÐÀÎçX‰$»ò9&/Pï}ľÏÒ‰1«V‘¶Êw] z¬—ø¤CýïåâŠÂÛë…¶üo`Îv…ÐÎ6;A!KÖH›•PH_©b‚Ô\‰ýÛÉê^2>pOi¸X¹‰ÑÏ<¸0;óN“¿óßk>5‘Þóg¹ÞÙ‚mÖ'†xÓáp+1E:{oªº¥vŠ£Ÿ +:©ÙÅ8)˜½ÍŸ…8¼X eKyJ¶’gQ^Ðœ ƞОð!ù vÐyÐ8:¦ó>>¡œðž ?ÏC¦²¢”u `ÙðR:¯‡Ã¡0U¼²èÅ4OL'ƒ2!SEñrúE²~aÊÓ8Âîù©Sq‚R{m©±î3œå÷M_›òטRÃj‹ñ±°’« +°bƒ$nٵمÕT”°€ÂZ*ÉFÈÅáŒb{û\·‘ð&‰9I·®Éª¢ÚåÖïýþ6"¹cZÈl~L~v¥œ +‰åƒÍ‚Ën8¹«{zt)ÂøŠ@ÿ'7ÄgŸ +‘ë_KÒd¡ì)ËÑJLR¨l—²[)øbéØ1÷ ·’â°¸J\‰/ Ò`1P(”õ\!hÍbÀíA—Ê2Ö±¬'ÍëƒÁ"ÎÈåæõX,ËŠƒAœàŽšžnŸ3Ñ7 +vÑiVRšñÙªn™óh@[—4ëÝS _ÊB›ÙHO™”“f,ÇE“Q9?Õ“$É1kmf`¾§]]j4—;ýÆúR§w™ÝÕ»¯Rmu5£­R†ú*·Xà²â¿Ì"öN ÜC›H¦øNƒDÖñ‹‡]°ARÂií!þbµÒm»ðj—™Ï¶ü=¡ÖŠ I]ÜŸ[·8*vq­K=9šHûGÏq·{(OÎòOÓ@Ê“ ·äUó³F" …BbrjýE–Îjþ^¤Øþé‰ E'úÓ¡åmK­ëäé.÷áL..lø¥rÃi#Zýµ¿P"€@À^’æ,®YŒ.Æã ï á„xÁ¼zSz?¥OÒiÇ´6e#ÅR¼¨Ê’Z” YU‹^'-á§IFÚÓ—.Åñ‰6R*ª¥¸§¬«é²^ÄiÏI/J¤Ë’`Xz\B+ÅK¥b:nxTI¬‡ÎWLÍ9ƃ²ù€iø Z’T0ætîcsÇœRp€I¨Ú@ÕZ»º¶Äüd5¬¶÷`«Q]7ª'È穘Ñ2KØbÃ|×vŸ¶*SìRæÔ jÕMn:ŠUŸÃå $L˜6*mäúvßL%Ï”§Š2¯g³™¬bóùñ7ÙJpº‡·LH±Ä„i/ÐÂæoÅ O¹‰{0ò†Ó¬——Vµ  M5W·þoâ0žB´7sÅõH¬º.¹“°6¯{áβ&a’ úòj÷ßÞà»{Íq¥ÓŽÖ›÷=÷åÑÏå½£Ç%¡µ$WùÓ"w'í¡Póg“GÕ€ã"1Ÿ^ÿÅ•_Öú†°É*•;7cQ«£¿†1?'èðãú>ƒ[ã8Û¼N8ÂÍëªjÓ(¡“d™”#šM%Äæ´•’ªr +WVTr8¨“ºdFåT¾L9ºÓݵµî0£Î”¶4õ²úŠº¢òªÛÅÐjÜô]G¥ðÝЗQ]µUӪŔ=ÃÛšåÛlñ‰ÿ k ÿ} P„³Ãù$ÊT-’(“@¥_k^"ÁoÏ%ãæú-.ÞºùÈöî¸@øÓ¾õ•]ߢ­ ~|æ‹ÿt±Ü?]l™º—N #€c5žó â;ÑÇŸñe2s7«³ÍꜶãÀÄûx4Ü×wýbãß_ÇwÙ:¯óËä]ñÒÆp=P磜Þo;ÂÏ9¨p<›ü¿‘ÑŽq/Ù;ì q@:Ó1Ú‹öÚ9YPPx(¿P¯tÉhØ·ãƦãN\Oÿ€ë1w ×ó¸ï6ï[>ÜÛëp^pÀÄwÃU€îYèÁ9±ãñi€Þ¯$N$qíÔ €ô>€þ+ÙWrßÈÿ €çÄyß(~`äQ´+}~ÃÎt¬| ‚Œ¨áy¶à;[qïmÀöÝã=xö?˜œ˜6vâz3xÞ]+³}sˆÕ=xîÿ°G.» EQþÓV][u«{#­[[÷;·R´JÕ¥Z¡D¢1o H D¢ÏÀ˜x‘&&^ÀLÔ:í1¢) ‰ÁZ;ß>ÿÞkíuÖ^{ŠrLÓ=€7 ÌQÞy:·p%óÌü>zS_„a†a†a†a†a˜ÿR @²<ˆ’Š ’š%RÕ@Ff4Ú]n^~A¡¾¨¸¤´¬¼Â@FSUuMmÙb­ohljnimkïèìêîéµõ¡ƒ¶Œ:ÆÆ'œ®I÷Ô´gÆ;;7¿à[ô–°üÕon“õ›¦ÀÍ¥ÐÒU3a@%L¨ƒ ~H৽¡(¥(ÉkD ,ˆyƒä=‰{£OŸL‘ËÈ¥Ü÷Ä&&­Q59‹Í‚\¹ŽF\«H¥—U¤ÑŽí²NA6&e-RD@Ö +ÒG²V‘ÛC.·ÃìÝ­îY=Û¡àÖwv`‡CpÁ Ìðb!¬bš×±MêÑnÂ(+Åm“"q¦ŸÆĺ£¼ÆÝëR´4z€ÔgÕÝ[øxÀhz˲¦÷EÈQÇÖ×6ì{üØö¶òz–u‘n¡eÚljwD7Lî endstream endobj 41 0 obj @@ -2584,7 +2572,7 @@ /Descent -250 /Flags 34 /FontBBox [-168 -218 1000 898] -/FontName /FLKNFO+Times-Roman +/FontName /ELCMPB+Times-Roman /ItalicAngle 0 /StemV 84 /XHeight 450 @@ -2595,113 +2583,133 @@ 43 0 obj << /Filter /FlateDecode -/Length 28878 +/Length 28879 /Length1 231812 >> stream -H‰¼V pTÕþÎ9wwˆ$¨d ïz FØ D .a7Bc5¼d—qp—<ØDB¢YÑ`F¡Ñ:ø~ëc,ÖrÁÔ.Š6(–*8eìÐtQ[pì t´Em«ìíwnVŒLÛq:Þþ=ÿëüç;ß9{w! å‡sIDzåÆ-§ DÑYõ­Éöm{åq¨lflZýŠ´ù£æK*i§9aTSCG}xø¸ -Àsë'45&Óð èï¦lj_Úº)½ÁKÿêíK—ÝØôÈÕûµ¬ PSɆ¾#kþ -uÇe¬¯H1Pt|ÈëÀ •ôG§ZÓ+ïœp¤˜þ&`Øú–ë;ÒÊ/ÞÎ)g~岶ú$Š²&T{!ó[“+Ûñd?ßlm»neã/¾|õ›¡ÂþåÉÖÆqo]ÿ>T÷WÜÃùími(Vªîwt}ûuí~}uÔ’,à}µýº¶ö]Ç?øªùfÐ\¹Ü.·{Ä>üW' é©E)Õ¯îÇ€sˆz”z$Wͧˆj±H¬‹ÝbŸøBJY(ÏæšçÉnù(¥Wî“T‰*Uåj¢Z¬îSª§»= žk=÷x¶y?òÝž«Ï5äVänÎítjûŸ:½D }¦³0›»ƒù<Á&¬r¹Îè»D<Ïáç”ç‰êEìÄ>bûŽñÎ}E -\üdb‚¨ÓÄtâœ)"b¶¨Wˆù<Ÿ…"&’¢EtŠÕbØDyX<Æ}ôPvˆÅ^±_ôQ‹)_HôI¿´ä–µ”…”¤¬—)Ù,[åÊSr«ì‘Y5]Õ¨$ÅV½ê€êSï©¿%FÚ¸ÉØeì3Þ61>÷z&xx®ôú½•ÞÞ'¼Ïù®ñ=ë{ÛÉñϸ§O=n”÷É`µ¼”ß³_ómñ†œÅ“èω'ÈÔ“¼·“)ïP”‰”S)·’ñäß3ž–¦ÒÚ¾¡!Ò#_ÏihkïX…Ó€åÉeMnµ®—'Ö×ÞhwèÏð])ø–R¨ð¹cÊF[ç̳G•ŽQ2Ü_<ì¬3ÏZT8äôÁ§ :µàŸ×c()ŒZ5 Ó“°1Ö¬Y!í[I’ Ûd¨æÛ5¶™pËÌoW†YÙtRe¸¿2|¢RšÓ0-4£–i¿±Ì¬X4'F{CÄŠ›öQ×þ¾kotíÁ´N0£þTÄ´EÂŒÚ5+R™h"Âv;Â$àÔPLÒmÌLv¦ütEÔ.±"Q{¸qsª,šl°ëæÄ¢‘@<´ÅÌzk‰ «Ú2.?]Ï3Y:7ƵCÁfëNk°ÖeÃX’ÐVòª˜­’q[&ôEãìb+b¯úÀÿûµ]? i˲šdc¦†Ô¬›Õï&´—\O¯vžÉ¶rmÇÚ¹'xz%k6aÚf½»ˆE¬SõGãTd꧲ŒO\p—ÍvÁÌD¦ð"β=e…–™ù <(ëèÇߎ$óoYágЦ>Î7‚ù¼Å¹ÁÚ, -êbÛ„øa<+œµYDJwðL]½˜ér}š#œMç¼ c´ÆÍ¢®ÑçffÌÌ소Yc¦xàF™;2ј‰çvæÅšù9?°Ãñ'ÌÆxü"ö§ûnŸLœZòZÜlpœEÁ`-)S›³»"#ìp$NJxzëbv/YŒÇY:”cg³?ù|b¥1¾¿Ë<ö`‹x&ÓïY»7“‘Ñ߃~?+pr œdá6àUÉŠ®:7ÕeF耰„p© ¼^_oÿ3à dxÑ^à2<ùÄð…ß…áŠïÄð”ÍðTbž¢®üÿ1|цõ›Ù‹ßNƒ_Ë%r‰Á}óï2ÿ/ñqÏþ¶æ_í®n*‚ôßu,ònA§·sŵX*·`1µ‚ñnã6T±¾~Çwd% ƇRQ«¨qj1uµ†ZNmÕ9Ö>IÝ¢{äu¨Ú€nßbd‰g”çJXÔI›qˆ=:PL{¢ö¹^@•â,Úe:ç+usZ«XÐ#çê9 ˜I_kÀ·õ¼㧳O¬tz9FÔ.TîÞ‰£–¶ãxŽ9–³Fc×ûJÜ圗¡mÐ.#7ÚZ'S ôÖcŠùáyNʸîXŽu${NV}¸E<„n=ó]Œ£ò{Ÿ¤÷õõž4~éßèxo æñ£¾K=:ÛÉ:ô$mU“°0FèwÉ7Q¥6;ô9zÏDµVß?I¯ø®ê*~îÿ×6y07ÛœƒÑ@œ $#il y„2i.ÑÉJQ+ˆ¨È4Ó¶’ RÂD)1óQ` ¬x¬ÌÒ5ÈJ·ï9÷Üßîþ÷ïõÿÎï{î¹çžßëüÎ9¿vš„ù­ÀZŽ7Q Ö?Wƹ™®Åó(%žkïøýö‚œc´ï&ï…í&šMCb¸WÄn¡²d%mÀ|/åñ`ì#`w«øC“ýdùÐï„ŸŒëª4|‹}Ô¬úEÿçkãdÇû·`§4 ¶žmãñ` ‹yÝyï­†SëÇè ¼»T?™âý_Û-ü [½¹Ý A&ö?P_P)óºG“WÒuî~¹${±û°ÎÞ¡xßlqÖÆâ¹ç­ßÁ6ûÓö[øÎåì£ì'ì#rà⻘û¹¬¯svêc i(Ä<”ÆŵÍßòXÕv3ûûŽ‹ì³…})ÖÓêx=™ùÞSuíÓ&r¬Ú,ûè®S[ózQízú)âøÌ1™óÇiÎ_Ç]tÏ®«ëêq.ã˜Î¹Œ¿7ˆ<Æñœsô'›|‘‰ÈeÓ‘Ãús,7>¬¾Ìyš1¶•ªÜšžïœ|Fô^æø¶S›?Ô•¯å.9ùelü6¹_Ós+¹Ð3WÉaf.ÏiNsê¦"ñ«™›>'ûH,–ÓÀ5}2qr5HúâݹG ß„oõ­A˜ª­GíW@›¹&‰•Ûm –{yyïÔ½ìC2|©°ËWìµÐ»ÑñûDöÚÖ~Ĝ匳¥ñÌã¯v§>Oï‘_º¸¯G(}òúñþD¡'îË>Jý¤ëìî‰[«rm*u)× \s®ãÐ~²j~æšSêLÔ˜Z_Váý*F­+ÙN£Ô¦!”¼Á>Ê”ª¤ ©sì¶ä,»#Ùºò¹öQî#¥^¥V‡ì6¥&­y)ýµ:d·)u8DÕL˜ËBžærÌ!:K©/S| µ2%&ÙmJ!>‚tî>Jµb¬7wõ›ÚŽñ–ñV…Qz6¾™ofcŒ³%7†Qr;úIâ›iø”Š~*Çó1>]wwÝuáü¡û莹ÊÝÞìcúqû(Sî­v[îJô½ã½´Ù‘GíK~‚Z²Û”:¢j¦¨yçPkn=µæÝa·)u8DÕL¡>ŸÚIõìséN™»oŒð·f&ø‰C¸—aÝö€íŠ9~bñÙa‚O43eÙÛF%y–3Â73¥°ÙæÉý¦êB=ÜœžGÜxã©Yh\‘ø µ±Æ€¨}Œ"«—îÎÂïQÚ¥Èòg¼|”ß÷”ÌÞýäî“RÇ7ÏsuÆûlráÝýû¿i'âëN'–0ñ™g -ÚƒnëÚ›,¹~åI;£$%h`L¤9ø—Ðz‚:µá_b]Oˆlüä½å¶¶ýTÆäëìï,ücæÛåLî+ÈTìÈÅz±ó=ØSúELäFäÈOB‡åqÕwåÇMßò»híP2ã*œOR2ŒÄöŸdbˆöù†›„èèpjOQ|Ÿ´SCìòÿBÅ‹é"šFï~z ö/‘öÒÛ—îrú rWj_i¸Ñ åêµgJÛ1’Y>ÉU!Ú³ 7‡æ -~˜æjÏW¼ZÚk@ Bl7ù$׆h/ôI>¢Ýl¸ë¨E¹j_ï“, -±}ƒán¤ .¡ÅÚK}’›Bl/óI>¢}³á>AŸTîSÚ·(Þ*íò»ü¿MñÓt;ÝAŸþ³Ú+WJû¹Û« ÷yZ­Üµ¿h¸/Ñ徨}§âW¤½+b$w{ø¯FèZtâ½ÒÞçyóµ,Ú_—öæù›¡¶¿e¸ûéÛ‘#i5Üw軑ÚßóðßÔ~@ñÒ>èy³6‹öC†û!ý(Òö:íG好ÁÃoŒÔþ±â#Ònò¼y8‹öO¤Ýlž µýSÃ=F["Gò¸áž ­‘Ú?óð?Ô~Rñ)iáy³-‹öÓ†û%=iûYÃ=GÏGjÿÊ'ùuˆövÃí wÒoµw)¾(íK ß†Ø~Ù'ù]ˆönŸdOˆv»á~OPno ö>Ÿdˆí†ë ? -þ™þ¨ýŸä`ˆíC>Igˆö+†û+ýM¹Wµ_Sü»´¯‡ØåÿaÅ7qÃ{ƒÞþÚGIûÏÛoî_ôoåþ¨ýŽáŽÓ åNjŸRäû­eQøH¬..fåDŒÚ²ôvj%¤MFh§¤M[y‚ùV®uZˆv/Ãõ¶ú„[†N_Ãnõ‹Ôî¯X ma„öà ´…ëB§È' ¹7ZæÆh•Xrc´J­!Ú¾;¢Ub»Ü' ¹7ZæÆhUZz´ªµ‡ù$Á÷E˪6ÜKîŠÖHË/tuFù$g‡Øí“ß-ËÜ­±–Þ­sµkå–ø_î«4JŠê -¿ûººª›DdU"A Ä2ì«€, -]T@imXŒ 1r"&€„EPAEbЄˆ FÁH–“Õ0ùê«77S§§{~Ç>s¿{ïW÷½îyUõÞý¤CîyyÝ)Fé$¥@¨ñ¤KÎj§û¤±{s÷Ш§8…'½sV÷Ѩ¯Ü좜Pœj@©@ÊÀ,fPžêÁ êA*·å¬vêP¨JPòè@ÉÒ€’GÊY̨<Õ£5#c]4.gõø,fBž¹UMÊD¡V”{$[–ÖLÊb&ç™{J“[/Š¨b”iâô LÏY]èüýĹçåu§e–ÉL¡Æ“Ù9«îê>™[ÁÜó4š/NáÉ‚œÕÊ"åÔ€â4 PJP––‰—å¯E…S‰B-(+Ê\)G7 -U¢¨F”Uyç^­ÑY›¯’5ª¥XÊS}ñê eâVoržJQž(såñrª7k´EžÌ?3jžÒh«<]au•(ÏTXít¡P+Êse®<[Nõv¢jEùaÞ¹Ÿ×h‡¼¯’5ªåÇRžê‹Wï*ï®°úEç©eo™+{Ê©Þ§Ñ~9fÔ¼¤ÑA9Tau–J”ÃyªUÊQy…þ˜¼š³Ú©D¡”×`y” di@É£åxóFžê75zKN¸èíœÕ'³˜_ä™[Õ¤œjEùµdëÂÒšÓYÌ»yæ~/‹É­ET1ÊqzPÞÏY}ÖyªDù0÷¼¼î£|"Ë9¡Æ“OsV;Ý'Ô}r¾‚¹ÿ Ñq -Oþ˜³ú .ÊŸ\”SŠÓ€B (ù4 ût Á˄؀ؒx#±3qñnâƒÄ ñQ¢æÙú?L0´¼š$zdŒb%bubí¨Rçñúʤ$|Ö§"Ôš*ÓÊÔ0•¦YY™X…X5b´²v8ÚÅuMUÆ°šòMu†Õ8O bMb­ˆÑʦ¦¦ÆÍM-[Æð2å[;¬Mâ2Îv9±ñ -b݈×QmÖQ¦} ¯P¾ †u•ïê°ž2=M}†õø] ‰ˆWðj}Ɖ͢J¡¯i¤ñs¥Æƒcx•òC±®áç*Îó5âÕÄ&£•ÃÍÕ2M4æÊOtØŒDSÎöuâ5Äæį£&9¼F™©1l®|a [(_äðZef›ë^Ëïú±±%ùë·Ž®ê¨y[)“qx½2‹ÃgŸë9ö›Ä6Q¬5˶Qf…ÔY>MøÜÀ±ß"¶#ÞH¾-ãÑUUì°2›¶Wf³éÀ°=ÇÞDìÅZSú×Q™m ”Ùn:1,àØ.Ä®ÄnÄμډqbߨRgØm{Œwšnï‰awå÷› »sžžÄ^ÄÞ£•‡L/šÞÿ4†}”Ýa_}8ÛÍÄ~Äþį£ÞtØO™“1ì¯ü¯b8@ùwޢ̇IÜÂoLDf ã[‰Ãˆ#‰c£Jç‡C”9çðVCX[„Zó™Ã¡Ê\0Ãeå·‰·‡GŒV^4·küWì ¥ñ?b8Bù/ÍH†#8ÏÄQÄÑSZ)áîR{f´Æ©ŽQ¾ŠÃ±$Æp¶qÄñÄ Ä;#^GÕp8^™Ú1œ |ÝÞ©|C‡•ilîb8‘ßuqq2ñn^½‹ñ½Ä¨Rghî.nn&kÜ2†S”omîe8…óL%N#Þ1ZÙÖLÓ¸½¹Oã‚NW¾«ÃBÓ9ÛýÄĈE¯£z:œ¡Lß> ü€)?ØáLe†šY gò»fç$?‹ñÜ誎îpŽ2£>¤Ì83—áC;8?Šµf¢ÃùÊLrø°2S͆sìBâ""Á, []ÕQ…)Säðefã„ ?pìwˆK¢Xkæ9\¢LÆáRe‡§>K9ö»ÄåÄÄGyuãLjë¢Ja™Y®ñŠðsñê®T¾Ø<Æp%çYE\M\1Z¹ §_i¼Ù¬Ñxk ×*¿Íá:k9[1q=qqcÄë¨í×+³#†”ßÃÊï)Å.%—ÖÁºÁÖ)¹4~¬l#ò…ð[`ýaO _ÿ}Ø ØVäËá»Ã¶Ã†!_ßöcPlösOtoö,òp=þŒý—=‡ë‘@¯”@?@¿•À>šØ;Û‰÷6q ¶öäX7gmâ8|ä˜Ûƒ*Iœ€‡J`nú!~˃ÊH`Ý<ôû t[ÔEÿ{â ÄèÈïgB¡ko#GÇø9ˆþ·îoâ÷ÈÑax¸_ÞM0¬·‡ÿÝCïë=„ÿ»‡îÕû Ï“‡uðpÿ<ܽ’‡óÅû ;‹÷2òàñl%qŸ½ÝÈñ\x?C^~òóˆ¡Ó’x~’ÐzI<·IìúIìxIìûI¼IìNIìÅÉeȺø"l òðØk“x~’O#Ù Ç<‹üx¼Éããy𡬒XŽ_ 9ÖÊÇšøè]üZÈ¡n|¬‰uðë ‡JñÑ;øè4|<þãðxýw`èü'áñ{}Üg±uò»;“1ÞýÏB€Þ4èŽ=F€.3Àz轜zÁ 0xœeÖ7À} -Ž!ÇÚ?‡A¯#Ç©àÙ pno!ÇYàþsÞ_"Ç œcØ;ÈqbØ‹¬yðä߃ÿÐDóâùž‚Ç©| -+v9Nç÷5Ø„ëÁß„³1ØŒü9x<³î_ÊfL -ûb€{—B¯œJ"¯‰Ïp -ýJ*ürä¸A òªÈëÁc-R¸)ta)Ü‹Ö,…=,5 9Ö#…5KáýM¡Lá»Sx7RÃN!ÿÛ1ží4öé4e÷"½3=)ÝùH·ŸGŸ(²yù®"å|ÚùJ±ñÿ¯K¬ì²jÎWw¾†ùêüxÞÜÿR[£:æ«óÿý—ýª"i¢ÕiÜÝÝ%@àîîîÁ‚[pwww‡;äÐ;ô½CïÐ;ôÜ];J»™ÍÎ@÷ìÿýû±M¿W]õ¶ÞÖ†of–ßoüfþl€³dÁ|6äìÈ9À¦Í‰§<Èy‘#ŸøüeFþô†³’Q øÏ|EÁfáOB8K)Ì—–™22*‡µ -2SQF!X«"3UeTk5e&TFµ±V¹r}ðŸo·ž#7Aæ¿ÝüfFþ¬…³´”‘ûóÖÿë+j>þÌê7³t€èY:˨«ŒºË¨§Œzãûû"÷CÿùVúãiò`dþ+Îofѳ —ÑHðŸùFƒÿÌ2¢g™€ùIÈ“‘§€ÿL;O3g"Ïÿ™q6DÏ2OF Àæ[þ3ËRˆžeæWÉÌj­ÅÚz™Ù £MXÛ"3[e´k;ef—Œö`mò~äà?ßîA<B>Œ|ügÆ£=Ëqÿ™ï4øÏ,g z–ó¬3뺱î¬7ëÃú±0ãŒqθ€xÖ8o\D<Ãù\+ø¾aÜ2î Þ4nwop¾Å#×Êã.ȳp6” c#Ùh6†cl"›Ì¦°il:›Åæ°¹l>[`<1ž/ŸÏ—ˆO8?ã‘kå…ñ’²"¬ b¥X0+ÃÊÇŒÆ)ÄãÆIã4â1Î'xäZ9Å÷%ãŠq ñ²qÕ¸Žx‰ó¹V®×YV‰…°*¬*«ÁBY-V‡Õe X#Ö˜5eÍXKÖšµaíX{ãžñÀx„xßxh„4ôŒ}ÝxíMe·[ïð}›ï‡|ß…á¸÷MÚÊnçð<§Ê½­gÈÏu‰^/_Âçð| _9êöµ)óƒnßš2ß9èö½Œ~pÐ%zý(£Ÿ|àö³À_Ür¿:æö›×êïšÝþÑŸªivû[FÿhîìiýÅ‘ÿ%ŒÄ!î -bès#qÆÃS"¾ã“²šPïl$1r’TognɼV“kvKá!—Ò±ÙR LíTÿniÓúÄ-)“žï $£#n™d”Ù³e‘QV¸es;ewØ-‡Û)ß9tËmÊäqÐ-¯me> nù"HAR˜‘â$Ÿ‹¢&e RLÙ­¤me) ³#—&eHYRŽ”WïéÅ­‚Œ*"WbRVÖàV¹*©f©­®ìVÔ©©>C¬n¡¦L-Ýj›2ut«+°ž e} n l+jpk„ܘ4!MI3Ò\½§·n§–Nzñþ­ÜNmøní [[S¦ƒní=f;8äÖQFøîŠqgEnÝÜNÝ™Iöïá1ÛÓ!·^³½rëc[ÙWƒ[?ä0ÒŸ ƒI8(΃LÊ!܆ÚVÓà6\F#,”#5¸B#?F½··±ÈãHFãc(&ht›h[9IƒÛdÛÊ)ܦ"O#ÓÉ 2“ÌRïéÅm6ò2W©Ï<2߆j)³,z ·Åd Ç¥ªeÈËÉ -¥ÙV’U6T«‘×µ*n¢Ç:²ÞB±y#٤춙l±PlUõÀ>ÛÈvªÈ;É.=¾^Ývk곇쵡ڇ¼ŸðÁl‘ß"o+÷:D[(ŽhúÔGÉ;Y¨Ž#Ÿ '•O‘ÓŠw5Íö9cCuù9¯äv\´¡zß”ù€\z ·ËäŠ ÕUäkäºÒl’l¨n ß$·TÜDÛ–Š;ÈwÉÇÊnŸX*î!ß'TÝl|ž‡šú<"m¨>EþŒ<ñÁlO‘Ÿ‘çJ}^—6TŸ›2_/_Ëï+š¯‘¿!ß*ÍöùÞ†êäÉO*n¢ÇÏ–Š_%¿)»ýNþ°Pü©ê}þ"süÇBõoS ÊŽ”Ò …¡g6Êhª¸zÜ°[<‹z|ä4!F‰hâ×ðIB“Òd4¹…*…ÖÙRZÔS!§¦i”|ÒÒt6Té‘3ÐŒJn™hfª,ÈYi67Ñ#;Ía¡È‰œ‹æVvËCóZ(ò©z¸uËoQ/€\Rò)LiKUQäb4Hç”±¸×Ô§-iCU -9˜–öÁle´v+kQ/‡\žVPò©H+ÑZÙBUEëlU-êÕ«ÓÊ^5i¨…¢rmZGÙ­.­g¡¨¯êáÖ­E½!r#ÚXɧ mJ›Yªš#· -•ÜZÑÖ6TmL™¶´Çö¯èÖv´¡ê„Ü™vQš­+ífCÕ¹í©â&zô²TôFîCû*»õ³T„!÷§”ÝZ*!¦áªn6>ÏM}†Òa6TÑGБ>˜mòh:F©ÏX:Ά*”O'pœøŠn“èdª)ÈSé4¥Ù¦Ó6T3‘gÑÙ*n¢ÇKÅ\äyt¾²ÛKÅBäEt±²ÛKÅRU·nË,êË‘WЕJ>«èjº†®µP­Ó:Ûz‹úät“²×fºÅB±yݮ춃î´PìRõpë¶Û¢¾y/ݧ䳟 ½j𠑘P`©¦˜A`ù - XY`5µÖØH`;v&0\à0£Fœ(pªÀ™ \*pÀM· -Ü-FͲΈ -½! Œ#ð?öË8ªêŒãl6À&@6á‘–Àn6›M6 "ÈCTÀ" ‚/Á¢€( #* ->xãE@|ï±ujkk§N[¶Ž´¶Zk[k­«;Žmmkíï~÷î7d¼™é Ñ9ßÌýÿ~çܳçž{Îw¿ÓEÙUÙÍoc}F$jº°]Z›nÒÅt±t5݃š¼. 3O)RÓ/öiµqénºß!±D›w×~z({*K•e¾ßú°§yª¥ÔtÂo ‡J/Ó)é­²—öÖǧÕÖɦ³ÒWåÚ&îÓjsRnºE*T–k›~ÊþÊÊÊJe•²Z9H9X™ðïµ>GHÓ£Úåk3&„­v\Vš¢T™>ŽùËëÉ2Èô‰›ç$f7¯g¶Ë!Öæ©Q9DŸq¨O«=U†™>C’*‡i›”²V™ö=ÖržÔš>[Ò¦Ïáæõù’QY§÷Ö+³Êe£2§lR6û-­‡ Yy}qÀó, ØhžKC˜³Ú•Òdú -i6½º]¶X›«e¸Êá‘ÊÊ£”#•£”G+G+Çøí­ŸkÛåks½ez}»imnöÖc 7ÊѦ·ÈhÓÛ½UèÛŽ5ÏrŒÊ±:Úq>­önozOv>ˆû'hóñÚÏDå±ÊIÊã|¿õyoÀcÍó€L2½Ÿ‘×Èñ¦—T¯½MVNñµµyR¦˜~J¦š~ÚÛUØTmÿ5ŸVûŒL3ý,»Í³iÚfºr†r¦òdå,å)ÊÙÊ9ÊS•§ù÷ZŸ?¦Ø.gZ›çCx²Õþ¤ g™ÿEö}^Ù¦_–9¦_ xªy^“ÓLÿ¶]žnmÞ fxvº>ã™>­ö2×ôÛÄ Ïæj›³”ó•gûkùŽÌ7ýÑ%¯ß—¦?…*è½ç(ÏUž§<_yr‘òB¿¥õðw9×ôGÏ3ÏžožOBxA¾¶SgYd:JÜÊë®ír±µ) -áEZ¹XÇ|±r‰r©r™ï·JB¸ÄjKC¸Ôj{‡p™Õö x‰y*.WÇ%:’K}Z›/3OUWhåezïJå*_Û]ƒC¸Êjk^nžd¯ÐÊ˵ç¯+¯T®ö=vo:„WZm}®6c^eþæ€ú'r•Wû´6G\cž‘!¼F+×è½×*¯óµÝ5:„×Yí1m¸ÖüBx½V®ÕþoP®óµÝ5)„ë¬ö„€ëÍ3UnT¹^û¹Iy³òååFå&åf¿¥õ0ï[^Ïá-V;+„¬vN7Zíé!Üdµse³éùír‹µYp«:¶èmóimÎ ¸Ý<‹äV•ÛµåmÊÛ•w(w(ïôkí®‹¼ïy —†ð«]ÂV»‚, ¯/o—wY›+C¸S+ïÒޭܥܭÜãû­‡Öî²ÚkÚp·ù׶áó¯kÃ{ÌSÀ½ê¸GÇp¯Ok³!à}æÙÂûµò>½÷åƒÊ}Êý¾ßzØ­ö¶6Ügþm¸ßü;Ûð!óï–‡U>¤ÿþˆòQåcÊÇ•Oøµv×^yÔôý!|Ìj÷…ðq«}Xž0ýXûóɽ½ñJ«töN.¿ázíA~'á4V°„’º§±¾5ê"œW -ø‚Dê¼ßh"„Üùu4‘6 $2ÍÃEFxuhÖK„ 8º¦U -_ dD‰š…?£\íýF¿DyCÐæ”D(¹|á¯(g”hTøKÊm~•’øÝhÞZ”¬¶çˆg¢»MT‰²Æ y¦(k«Ë;­Ò³U—÷DbœoŠx®㌑1Îplš1ÆÈqcäÈE¬ßØä  +76M¤x\«tg<1"^Œ³;c(f³ÏzrN,ÙÈõV ßæÚŠæôWòg®¿¢™ËbDÉ»è”çãú šy-ùã?ÞkÉ¿Ñœ°ŠŸDŒæÄTB¶SÊØʘóRÆVJ¾\Æ8KÉAKÉsˈ`=ÊÑEhþ§G®*4ñ¤”(WJvÖû-‘^ìÀ^¬ÇÞÌU/úïóQ«ôeœ}>æúš¹:‚%çyˉ^qæ'Îü”«âÌOœ1”“3ÄOô~£‰Iñ“?(ÎüÄ !åÌmœl>NÞ]ÎW2~†W‡æë'ˬ`÷c=T°ž+ØÇýPîñ~£_¦|(hCv\Áú®8ýåS\O¢Mù-®o _§üŽW‡þ=%Ï[ñL ¿ÇEÖÙïMþ—ñUü(Ь׊çÑ¢$oPÚ*Y×Ⱦ*sÏU9‹ìµj=%Ùd%9lßÁJr¾J²Â*Þyå²  k¶’y©&çÄx*½ûÉn1†jNÕϵʲ¡ÁŒ?QìëYâào£Ét=¸ú 3øžE÷B7x>®24k §ŽñNÌKbšü¥šyI$Ðd+ ò±Æ6”õ\ÃØjÈì†2Îr¬šV4ߎÄXt#zšSe‚áPbu ¸†¼ ù®È0úO¦ÐÌG’u™$oJ2Iöl’/a’=›|_$Å»N¢,à÷‡húNñíNÅͦº£ÉnRœRŒ'Å;O1ç)bHm%s”z Í«åyjÉSjù¯ZÆ]ûú9JöQí?Z%ͼ¥9C¦yGibFšµ‘ž‡fŸ¦¿ÉÅ9&Í}é§Eê˜ç4ﺎÿ¨Ã_ÇüÔ]Àµͳ׽ÈEÿÆžaN3¬ç ÿ›aeF¡‰‡r¹Ì^4s™!þdX“rì _‘ û4óS‘úN\Ó[¥ž}TOü©gÔ³Nê¿Ïuý!%ÏPÿcô?E²¼ï,s›eOdÉo²cM¬Ë²ï²ì,ï;˯Á9sæÌÙgš—OñM”ü¹ñàlËËg&©š¬œ".#sæÌYG0/#›ªjº¸¸äÌ™³Ž`^\š¡j¶¸¸äÌ™³Ž`^\š£êLå\å<åYA/ZÍWµ@¹PòìàÈPpXÇùÿYô‹€3g΋r#~DZ¬ž‹•K”K•Ë”—(—+/U^¦\¡\)./sæÌYG0/›ZèNÊ/O\ræÌÙWѼŒcµä#ҧ͋QkT]§\«¼þ°Ë™3gÎͼèuƒªõâÎ|Îœ9ëæùnTµQ¹I¹Y¹E¹U¹M¹]yëç58gÎœ9ûLóò©ÿ±_€UMxfw–Ž"¡z ‚Aš€é%ô"„z ½…NèÒ¤KGEE…€ˆ EšŠQAªJÐîÞy\žÀ¼å½?;|³ßÎí-ß,ûvŽÙbsáïÿ7:¿¶Œï™y&[dúÅðE–ÐZB{šñE¶þ¾·žô&Ì»hø–Þ5à+zck®zeä³ü+ŸuàÊg½ÕG[ý&ð¯<7ƒå³\ùì_ÉËuìßÒ»|EolÍ87À_29®L[ýð•Ì\gêø–Þà+zckÆÉ9 þ’‰« -œÿÊç¸ò¹hF.›þ -øJŽ®_ËUð-½×ÀWôÆÖ[à_ùÜ5Úî‰o®Så¹'adÁÀDVŸÄx€ÉLŸ|%ËØšýo‡)À¿òIe _ÉêßÎbZð©L0|Koð½±5>ÿ˜ ü%“œà/™äWÉoõÀW2sý: -‚oé-¾¢7¶fœœâà/™”ɤŒA°œé˃Ÿd®ï¦ -à_ùT6V_Éêß¾«ËZ²†¬#ëQ",Êú²±lJIÄ1JÌ–õdS±Al­e+ÙV–‘2œRˆíb§Ø'öÉp•]œçÄ9JG²›ì"{ÈJ-îŠåâO -’ …˜"V‹¥b -Ç3Q 1‚ &S°È@™NR6 -–y(—Ê%ó‰"R Ã(å0â”Ë`*›¬-kʺ2”«¬²‘l ›Èf”TD‰Ñb? •ÍD´ˆ–md˜lG!T@¶§”b‡Ø%ö‹ý²½Ê¡rŠSâ¼8Oé)­ì.»Êž²¥÷Ä -ñe”(¥˜*Öˆeb*Ç3Sce4˜LÉ–VféeÊNYe^Ê­rËüb¤*†ˆá”—rqÊm0ÕRµRaª­j¯:¨Žª Õ¥Pj@[©Õ§†´Ù6jIaÔŠZSWêN=é u£A‡˜RÝU¡ú¨þj€¤"i ¥áIÃhM I4‘&«áj„¥¢Ôx5AMRSh6Í¡¹´ŒVÐ*:MËi%­¦3ÌÎк¤ò«U@RETQUL• ªTjR4U£T‹6Òc Ö„šQSjN×é&µ£öÔ‘vS8u N´‡n›ÑÝS¥TiUV•WU%UEUSH%QêG¨/õ§4š¢h U5U-UG…ª†ª‘j¢š«äT^¥¢©4fÒ4šA³T:Hói!-¦c´€Ñ:®‚Ìè1ƒÜ vý_ÜDF&€Ä‹"L©0}%À»‚å>ÓhZ"H #d†g!²BvÈ9!ä†<BxFx -ÁóPŠB1xŠ[oº¬¼%¡”†2P^‚rP*ÀËP*Ae¨Â3^ªP ªC ¨ µ 6Ô‰ñ~lV7Î3cZ=F}h뜆ÐèWO°øµÄ|B“B2H) %<OC>H!žõÀ·[}sF Æ«Žg-­LfEZC‹µe´c„;æ·‡ëhõìgmÖšš}j( i¸ÏÙ š±PÓ73}ÓwetƒîÐz2‹°Öèe¯ÖÛêûX}_F?‹÷·g xèÝhúAŒÁ0"a(³aÖ³áö¬V?ÒêG1F?ôß•` æ6ÆêLŸÿ!ÞŒ‚±6O é؃ñns&8¾:áߥ<}òÍ\«¹ 3\÷#8nÈT|7-5ßDÜ3peäÚÄÕ=×÷,V…ÏæVãóq~!f•/hÖùÂv¥®õ®ú^ÚRâ¹Æÿ³Â×åjÖ`£Î66ïÊf|7·à{¹%ßÅaæ Ü–oÞpó¶íÈ7lg¾)öÅ󾧦«é»iÿmÚ¾é£L?ÖÃüqÚ{ÇÜ«”Ë&˜~"c²#:…1‰ñšvÕñoSm6 ¦Ã ˜ ³àu˜ s82æÁ|îÁbXbÍzƒ±€±P»òøµ7=F—j×¥Û–9ørXÁ~%¬‚Õæx‡ùoiWì{;Æè«_ ï²±Îmþûnã´g?ö¡Í>‚õ°¢a#l‚a3G>-ð)÷Ûà3ØîöÞVíÊã×vÄíÔ®çI±]þ¹Û³ÝŒ½Žñ>Æ튽cûü ·gã¯_2iWÿöµƒ¶Ù76;¢]¡;j³cpœý·&ÿÎô'§sO3N2¾×®:þíŒÍ~€³ð#ü?Ã98¿pä"\‚ËÜ__á·8®w®jÏé¿°ßüšÍ®k×¥Ûn8øM›Ý2ýmÆ“݃?Ùßeü¡]±wì¯ûÜõÇdÂô’‘(æ|Tq]I{na˜Øc4‰é“2R8¢O1’3RÆiådºs{¬}yÚf©ðLi0Óò(¦Ç „™?‹Y1›ãÌŒ,X/ƒcŒ3éÎð÷%»Û8‡Û8§n…z sÙ,7æÁ¼χù-¢[¡Ã£ÏaAÝÊô²ÙóX‹`Q,Æü,nEK0^Ô­Rþ”tðRXÚbeL_–ñ’ãy9Ýj½¸/åmV_ÆŠX +c|«b5¬Ž5°&ÖÂÚXëêVêå}©ç1j³úŽhÝj½gØÐÁac‹51}Só›éVìÃæ£-Lÿ*£•#ښђ¦[µö¥ÍÚb; ÇöØ;b'ìÌ‘.Ø »s½°·5«+££§nåñ¼/}ùþ†Û³yŒŽñBÆ|ÝŠ½´/‹|±Û³%Œ¥ŽñrÆ›ŒeºU{a_V8øJ›­²ÙjÝ -õ®±Ù[ø6ûwL¾Öôï2ÞwÌý€ñcnÕ^Ø—mö®Ç q~Œ›9²?Å­ÜoÃí¸#Žë}‚ŸéÎé?Ù—¾ËfŸëÖ¥Ûp·ƒï±Ù^Óïc|a²/ñ ûŒýº{i_9øWøµÅ›þÆ1·ùGã¼òݹ=Ö¾÷ý¿c‚ñ½#z†qŠq:N+ŸÔÛcíË6;‹?âOø3žÃó<ú/à%¼ŒW˜ÿŽ×ñ†ã_¿=`½‹x-Æøªî q_nºo¹oëV¨Çð›ÝÁ»xïì—y|ÕÇÏ;É{IHò’°„$}ß÷}ß÷}WQ,‚U;¥‚-‚¢â†–"PKE)¥Új«µ´Vm?Ÿþáçc?ÕÖJÏœwsœ3} IÞø™s2ßßygî}÷Ìͼ{gTüï*‚¡ö -õ8¢m6ãUä×]¡Ç€D ˜ˆIX“)NÁT r6ŽtÝUj˜— K\k©¨6³™–óuuWÃy©'Q–îZÜä˜-Q}ÌÑ]m… ´ŒÚÐ7bæêž 786¶ÄMtWãÇ̾Ì~ÌþÌÌÌAÌÁÌ!Ì¡ÌaÌáÌÌ‘ÌQÌÑÌ1̱ÌqÌñÌ Ì‰ÌIÌÉÌ)Ì©ÌiÌéÌÌ™ÌYÌÙÌ9̹ÌyÌùÌÌ…ÌEÌÅÌ%Ì¥ÌeL¶gMÄIŒUÈx%>‚~É6‰Q˜ -kT9e¬H’8X&Ööéeb²´¯Y%L‘ï¯ ©g:2(mêEaš´ÌŽ`ºäsÊÍ éÛ° -YSFÉU¬%™&å`méÕ´L¬#íóËÄLiß"¦¬+ã*Ö“LQfIËÅlÉ´*7ëKß6Q˜#-ÛU!È("ØPòÙHÚt‰Â\iÙ­ÊÙXÆêaÞ×*îU&æIû>å`SéÕ¯’ÙL¾y€b¾d9²¹´…-¤å°H~D¹Y(}GU![Ê(c‹$3®,–^ÊÄi?© I¯)1e+wšbkÉÌ(ÛHûYl+ù97Èvò ó¢°½´\`®O*^ÁŽ’_¢ØI2Ë ³Ä7+v‘Ìrè*ñmæ*¢âÛËÄîÒ~¥ {ÈÙUŽì)mî,{Iû»lØ[ÎÞc®O*6¢°¯´\ãÈ~ÒæÞr°¿ôZgÃrv}”–ÊÁAÒë–³‡HfS98Tz=…äå–—ü£Š#$³FJüDGIþ)ÅÑ’Ùf®‹*¶û+gw˜k¡ŠŸƒñï²á9»&J¼Ç\çT¼&Kü‚¹©x?L•øEÅi’9Ó%~9‚3$ÿŠâLÉ1W#µál9{Ü\uT|æJ|Ò†óäì)˜/ñZ{Jã³°Pâsæ -¤â °Xâ‹æ:¤âK°TâË´•ÆïD²çÕoÖ¾võêÒG @ó—ó/Òg|I÷’Î4 ŽÞB}' ðÓ÷Ä7!½‰´€t5i{ÒwI·H+Yàߤ´BþKJ÷HÂtÒÿ3 ‰î€Äº¤HW’M/Š‘æ’~b@p-@êpÒI·F+l ÈØF/y I¿ }Ý€štïfÔ!¥»4£¡µé®5ŸôŸ¤g ¨K÷Lf Òý¤ëIé¿“¹É€zô.ù¹Ùwd%½‡t -)ýv³~Fú¦ è{sŠIéËéDzˆt« ©Η¤´¢7Cz‘ô€i·ÈÍ&¥U=·±y4¹Mhܼ/I?0 )ý.òº ÙšÓ[_³¯Iéÿ˜?ŠôUÒ="½8P}…tÐ÷Ò/²`)]_Á!ÒÇI’Ò¯±à8é&Ò7H7“ž6 àéYúLob…!Rº -בž'ý‡-iž[ö#½•t€Ò§IO“~a@=›M%¥µ©è$é€â,ŠiÍ,6Hw“~Lú駤ô-éa@ ýÎJèºJŽ„’ Ñ~hi"érÒÒ¤AÒ;Hé 5´š”Þ!CkHé>mPJõ†èM)t¿úü ú¼™”æ?ô°Rº_CôîzL}ß“4þפ;I©®Ð.ÊÓ|†h^Ctÿ†ö‘H_RuSz˜4…ô¸ú|R}>EZƒôŒÒ·èzi^BçHW^ ¥9t‘”î‡Ð%Ò[Hß'=þ½â ü€ Ù€$Î×7Z2)º‹ðÌ3Ï*ÝR+Ô;i´–U‹¬!Ã’C¥qtÄCíˆ>î´8¥ñL?dÁµ»ŠiᎻŠiæÎR±»Ð3Ïî´Ò/¼»øá2\»«˜ÞYÜ»«˜fî,» =óÌ37Y°B½Ó Þ#ý”®Áqòí§#—¶>µB‡×nwš_¢ ð9X×êp,+¶û,É»s7ñÌ3ÏnÄ’£7ù?–BÏn_]—õùlÚV‡çé°Åû’lÚT‡úÕû€Ïºû®kí>Cßÿد0)Š,üBõæ ì²,…%³äÌ’£îTP J\‚‰œ$ç¬HôNQD@@³w"Þ)˜Î;N?9’’A2ÖT÷6³ËL÷7‹Ê 7}õWÕûß«ª®ž©ªŽ×v}ÍCÌFQ'7&À­ß`!ÆÙ雧æíý÷ _E„âÈF; -Ó]ÚˆY®-£tîÕyONßAÞ¯A_=C €?òf†U ï.æ„~oóMaȱ~ÃôM䮟~7ÆFàz'Vkïówâ›'§ÃÚ5€ð#D)Ž.`t Äb«ßl.¿?;ƒ¾ûêðåó-AØnžÌ¾ Â^pódsž{Γͷr§'@ü.Åp÷Eã»Èû£á@9ýáà{¿G5ÄђƘ­±’ÆË<\¿å|ö7† œþòÖäjã ð£ÙÚxœyIÂÒÿNBÞp>øÑÚã9Ùà/ëëÜCW‚­¯‡ÀánØ%ƒã:ð£wƒ›ÀfëQÓÿ­nùkÆïÅ‚q'øÑ[ÁÀyçÙwÇÚï?Z{Zî?â 𗧱á·ªDÜ'é;•ú½¡î—tÀEs~1”Õeþ)×_YÊÆ ™OÊ|JæÓ2Ÿ1ú9+éü-£\0ÔK’®Ü2ÊU½cB×QH2É_Ë"s¨Ìa2‡Ë!s$Üï‡T ÖÃ'ð1¼†„‚VAwèAƒ1ˆ[ÓëBð1þ™6Ñ´®a†Á èIÛ1‚Þ£ô½ŸB/ØÅ]ÑÑ »±0­Á8îL»h·ã“|š>£X„öÀE,J3p ¦Ñô ­ oé+ú|ÿ€b ,I9p>£¡˜É9ô_áà³|ËÑ4 'Ðÿè Vª8ŽÓq:J'è¡…XzÓ9¬‹“è]¦‹ð%ì½°`Cz ú`cNs¸Ÿˆæmü _bÁAØ”C°%Næ0v𾆭ñŽ†ƒ˜W8–‹b{ì‡m9™Ó9¾¯àk¼ÀNƒag‰]y0çRœ!RyßÈå¹"gq|„kp5®Åu¸…cØGÒ«ÜvðpQ{rCì ‡¹17…~ÐúÃcȨÑjÓ æ6´Qh|œOÐfÚBÛà:†b¸ü‘=A;0’Þ§·éCzž‚'a wÃ(ŒÁB0h-Æsú„>á|ŠÏÐ瘊‰´.aÍı˜N_Ò¿h%ý›¾¦}܆À`ŠXŠúÂ0†¥¹/}'¢ø_Àò|”öÓlœHèfa5OGèg:F'é4¥EX †Óy¬‡SéºB—`$Œ€Qð4fc#zFcAs¹¿ˆá7ù"_fƒ±‡b+œÂáÅWù:¶Á{9a_¸Ê…8‰[`ìí8…‹qŒ…10ïÇŽø ŒÇ‡± Ân<„Kp&—iü–A\+qe®ŠrM®Î-¹6×åúZiDZ¢õœ Û¹å°7Â>p„›p3îÁûyÿ@Kh-£¥4–ã^qFœ§Å)ÑN´çÄeqEt]ÅUqMôÄu-X Ñ‚4MÔ£Äh-IKÓÅ -^+¤Åi±ZŒ¨'i)ZªX+^ÐÒÄ+¢¾8*~-DKqBëEÑQtD¶è!zŠ‹â‚Ø(j nˆÆb¬±Ø,šŠ‰b’©9ÄÑL ÓBE1WÌÓ¢Ä6Ñ\,Ë´D-óþ‘'óT¼Äãx&ÅðDžÍsEE~¿çùÆ øyŠä¥¼œWòj^Droã)< /óxžE±<‰çð<žÀÏR -?Gá¼—ƒ—ñ -^Åkx±`QYT•Dàƒ|ȹQ”ºš®ïŒÎ=OV! Tîí‰2§N“¦ÅÒ§3„@-±Ožax[)ø6ãéÿ%ECŒ*CåÝ¡H{ qk ÷èáÖi1BÄzÔâdûÍW&)þøtÇgHwr@!—V<¶ðM€D³^’T™ )y|R!íæ7¡b–·8'4ù‹–'d.Be“gc„,#å<¢Ô+çs»ñÎyÄ™OT°u)lÑ:›jĘõTÙ«1ʧΦZ âÌz†Áñʧ< ëlúdœ`ZÊæá"Êœ ¢u6=+äᢦ=Ëà$e(ª¢’u6}ªœbZjœª )Ê?MgÓ§¶Á馥ž|b'Ò•gqÅ%ôºé“mp ÓÒØà ÓÒ Jªj†Š-¥8S¯›>-óp¦io“‡K›ö¶PFUK«~Ê*.§×MŸ—û•ýꀢø³B ˆô&Uz€@èÐ{‘ÞDšôÞ{oRD&M@TDQP(¢ `oˆ¨ˆ -Š‚(-¾ýv]ngï~\øÝí;óÿßû½ï½ù2;Í̜Ŵ1±”Å´×ט>¥ðl`Y#·út2±¬Åt51Æbº‹rHcðly`#·úô4±‚Åô11Öbú‰ŠHcñl%`œ‘[}Ú0Îâ‡Ø°²Å׿[úTÆ8UÕŒÜê3ÊÄj3ÖÄê3AÔ@ZÏÖƹÕg²‰ñ3ÍÀø¤›ã“n/NLJ:Bq µ›S~ŒbKj/§|'ÅÔnCù.Ê«‘¯ILº=™bMòu”Ó8·k“o¤|źä›)ŸH±ù6ʇSÔkm§|Åfä;(DQ¯µ“ò¡÷÷NLº¡½—¼/å ÉS¾%>)©0yùĤ›ç‘ÇQNq!yUÊ3R¤¹$ÅSž™âròÊ£)®$_fö_CÞØì¿ž¼åQ7‘Ó¼nf¥¸•|7å´òØÛrQ~ŠâPò”Ÿ¤8’¼ 姾!Q„ò3Bÿn„MùYŠSÈKS~Žâ ý¤üÅÙäÓÌ|¾þ>P~‰â"ý} ü -Å%ä (¿Fq99­í­.¯ ¡¥£üÅnä)ßG±yf“§·YËJù!ŠýÈ{Q~˜â òÜ”¥8Œ<å'Äq–çŠq¢§ˆq~'‡qZç„qB§B„ù|3FZãý—?úZd)e&ú ªÏ$›s˜1—“+ŸÙÊoFãì)$RÊ*èçaʘ‰q:ëç¬>Ÿ’f4ÎѲf+ÆŒÆék¶*šÑ8³ªˆ”²"ú9š2fbœðµ„1ŸÚf¬¶žÙªoƆ²8Y ²ar¼œ!Ȳ¾l!;ÈJ2NV‘UeYV®’ådy¹Zö—ä 9Xö=eoÙ‡z6”dÙ”žŠ—µäZ™ ëÈu4ÒD9IN‘SiÔr¤-ÇЈdgÙUv£Ñ[ÉÖr½l#ÛÊ Tq‘\,—È¥T}–œ-çÊyB\Ž.`ÌE׸@` ¿JÇ\s!Víb›ÒY“ú<4ÿþžJs×_kÞ,•…ûì“žN§Hd™hW×cúÝ Ñ~˜­VÏœfÌE÷ûME3Ÿk.Z¸ª÷î ¬"ZŠÖâÁd=Ù†]{°¬-y{dD'Ä΢‹èjëÓMóÄ|[ûQÛ}6yj:kÓPLKžŽîié)F G:ƒ#q+‹¢;™þ;5šnfú½,ÝÅôߧú=,/ÝÁòãîSn;…é´.jÝIJâ"p»Ðï úÝàÎ]  -Ýô]Z¿Uû°¾ÿê·éºØÅè·hÚOÝš`ÏÐ÷†–tÖêÿ‡mèlGï`:g;™oŸþÆéo™þvéo•þ&éoOÌgÞý J­aô>èo‚þí¡ïúÿëâ}]î¼ùã]xÿÿ[6ÁÊ&²k %3ö°Éì:BͦXÙÔ{#%Ú43]S(Ø ¯ìÌd‘m–Wv6».n›ã`æ&{Œ”hó€ž7áB¿ ùBv}\¶¸XaóÈ—ˆ¥ì*Ý·eæqvM¡`˽²O°ëâ¶^ٕ캸íIà*f-ùj3_G¾F<Å®Ò}[ï•ÝÀ®‹Û67)ìfüi±…]¥û¶ÕÁlc× -öŒƒy–|û]žzŽ]w°íyàf'ù fþ"»>.{ÉÁ¼L¾ë.O½Â®;ض¸Ga_õÈ_¯³«tßößð`É÷y´ßûÙUºo¼²ÙuqÛ[À·öGþŽ8Ì®Ò}{7 £¼Ç>@Û‘€Œr”}¶÷ÇØu„šž`×jöðC…ýÈ#ÿX|®Ò}ûø™Â~î‘!¾dWé¾}å•=É®‹Û¾žRØoØuqÛià· -û».nûx†]G¨ÙÀ³ì:BÍ~þ¤°?³ëâ¶sÀó -û ».nû5 £\`ŸG í·€Œò;û<m½²—ØuqÛ^ÙË캸íOà•d>u•]w°íð¯d>õ7»î`ÛuW«Ý`Ÿ¯¿vÓÕj·Øçë¯Ýv0IìšBÀ4á`Ø5…‚ia&·¦P0-µƒ‘ÜšBÁ´4V––[K(™–Îʹµ„’iéL·¦P0-ƒƒÉÈ­)L‹t0™¸5…‚i™L·¦P0-‹ƒÉÊ­)L‹v0÷qk -Ó²d”ìÜó´i92JNîyÚ´\V–‡[ TäæV`êÈkeù¹µ@E>n¦ŽÜ -=÷s+0uäV è)Ä­ÀÔQ˜[¢§·SGQnŠžbÜ -L‹+l ¼¤VšM])¶Êe€e6Æ#/§U`SWž­r,°"ye¶’G§UeSW…­r5`uòx¶†G^S«Í¦®[å®ÊÉÔYÇåzu¹gì§Îz.׫l ° ¹×Á‡ÚF®Uj l¢°M¹WÀ‡Úf®UjÎ=W?u¶p¹^K`+…mͽm€ºV¯-°Â¶ç^‡ÎŽÀ®Õë쬰]¸×Á¡³°«kõvW؇¹×Á¡³'°‡kõz{+lîuà6í`_…íÇ­‹Û´þÀ -;[·iƒ€ƒv·.nÓ†‡)ìpn]##\«7 -8ZaÇp¯ƒCç8àX×êNP؉ÜëàÐ98ɵzS€Sv÷:8tÎNw­ÞLà,…ͽ>ÔÎq­Ò\à<…Ͻ>Ô>êZ¥À… -»ˆ{|¨]ìZ¥Ç€Kv)÷ -øP»ÌµJ—+ìÜ+ÀmÚ -àJ…}’[·i«€«v ·.nÓÖ×)ìSܺ¸M[Ü °¹uùP»ÉµJ›O+ìîð¡v«k•¶ŸQØíÜ+àCí³®Uzø¼Âîà^‡ÎÀ\«÷"ð%…ÝŽ¯_v­Þnà…}•{:_¾æZ½½À7v÷:8t&ßt­Þ~îû©ó€ËõrÏØOo¹\ïmîû©óËõÞVØw¹×!ˆ3~O;âG¯£À÷ö·zj?Àǵ~ôú{®~Îæ#—ë} üDa?å^‡ Îø3ís?z}üRa¿âV<ÓNj_ûÑë·N?góËõN¿UØï¸×!ˆ3þ^;ckÿàµ×Yà -û·zs:€1~ÖÎÙÚ¿xíõ+ð‚ÂþƽÁ3íwí¢­}Ék¯?€—öOnõÁ3íŠvÕÖ¾æµ×_À¿ö:·úà™vC»ikßòÚë60ÉΆ nõÞ-,UÆÐÂÂlíÔ^{I`…M˽Á³°taá¶vz¯½"€6#·úàYXdX&[;³×^QÜ:ýœM«™ŸZ:„MÕ105PÓÓÓÃéÀ ÀŒÀH`&`f`0 0+0x00;00'00700/00?°ð~`A`!`a``Q`1àÀâÀÀ’ÀRÀÒÀ2À²À`9`y``,°"°0XXXX XXX¬¬ LÖÖÖÖ666ú‡ýr®¢ºâøÎœ}1ñfx„$äE»¥¢A¥( !„@Â+ !¼„7…xyS ˆX<åÏÒÚ…¶µEEÔEie¹h‹--Ô¶bmùÀr®"ýÏaî.'å“’LgÃþý÷œs¸Ìž;÷œ½ s û0h˜g8È0ßp°aáÃBá†E†Ã ‡–Ž0i8Êp´áÃRÃ2Ãrñ††ã + ÇN0œh8Ép²áé†U†Ó §Î0¬6œi8Ëp¶áù†ó -2¶Ó’Ø"–˜IKÜ"q#j(qc\EâXºCâ»0‰ã=x§Ì6ñ`¬Ì6£8‰ð©‘8‘B'GѺ×Gâee -Ù§y°‰ÌfPS‰3£ØLƳ=Ø\fs¢˜ ãm=ØBfÛ×ÊDYÓ‘’$þ†“e¶3µ”ønd‰ï¡T‰¿ídïÆ]=˜.³Ý<˜!³P+‰r™)#ßq™%#;ÏÌ{Qk‰û¸Ì‘‘¾.ÛÈH®óäÜxµ“8ÏyZnœO$.pÙQF -]v’‘"çù¹ñpú¦Ä%xŠ‘x$}KâÑx¢‘¸”ºH\Ž§‰+è^‰+ñ¤#ñºOâIΓvã)t¿ÄUÎ3vãéÔ]âj<éH<‹”xŽË‡ddžË2²àú!fâ…ÔSâ|‘8LH¼¤Vö’5ËjeoY³âì#+WÝ‚ÊÊÇ÷Â×P?‰Ÿˆb®Œ¯‹b߀7(oôà@™}Úƒy2»Éƒƒdv‹óev«ËÁ2²ÝeŒDþ‘‘g\ÊÈ•Ù},’Ù&³‡<8\fŸ‹b±Œ¿Å)Š#düpGÊø]Ž’‘Ÿ¸-#G\Ž‘‘W]–ÊÈÏ¢X&ã¯E±\Æű2þº+döMŽ“Ù·(ÔÒŒsE¡‚vZ½ººŠ½Wo†®ƒîâ]Óχ©Ñ4<Ÿ†©ñ9”¨ÝÿŠŠ=§~ìb(j­Ø¥PTU±ø¼ØËеPÜOì÷ÃÂÿ{×oÃdã°Ó\E—b㌱ћØ8Glt$6Þ"݈7ÅF'bc_°ÑØ£Ýkìp6º{™žÃÆ®k£ß°ó¡è2lìSöÃÐR4\¿ûz7¿sA<Îz]A|g(:‚xÔ16ºxäa@Q³ØèâQ¯ØÃÜùbw•èïPTý!|Û6*þÐq(ªýÐÛ®¾EÅÂ^`£ªm€¢~á ±Q©‡VBQ¥‡ðœmTè¡EÐùÐè"Üç4„ÇÂÔô(J`t ¨¸Ñ•$¢VHî¦'¡Ý\Ý…qäÓ]i"þŸ–È3q=D"žËSaJÂ.š‚ç’ôsèÎ0%#¿Tt®É¨ôRѯ&#¿Ô8÷:Þ½FGš¼ºzz.L-qæ¦õ…¾Å{–‚ª=ëR°¤#”ДŠûÉÀ{‘Šz,ßC*j®ŒÞîu_÷ßCê(>'õ"šU|NÎåVøœ4|~«³aJGm‰—ŽßfæsР/@±/e¾}zŠç•½Eo”÷" RÎɬÓЃ(Ôñ¾d\ƒ¦Cñ;È^¦V8·²?âhï=ù·>Å{˜ƒ÷3ßsβ0eá¾r>†>KÔ½cv<ïK¶ÛÓP ]ﮜ®Ê馜.Ê鞺sÒ{S¦ƒŠ¹i4°À ìë7EØÇ)Žó›pv»{“ºa ߆û -,°Àþ¿MSS0‰‚z)°À« ¦(Ls¯"ý]:y÷z™7­Ë¡`/ ,°Àê‚)jG^ý^`Ø×mLÀ»)¨‘ ,°º`Šº€÷Á»Âï‡w£` -,°Àê‚)êNÁ~X`ÕSÔ|„œ=©—a°/¼Ÿ¹Ê5æÁÁóáƒoú”*øÒH!X/†—ÀGÀGÂGÁGÃÇÀKáeðrøXx|œ|R¥DÀIðÉð)ð©TßöRu»o °ÀûJŒ©Š‚ý(°À« Æ4“þ»Õ_:ßî,°À¾Ó4‚ý(°À« ¦©\_N×÷¥úm­ äñ=p ù#Ç­%?e³žü”ÍSä§l6““Í6Æ» w“Ÿ²ÜK~Êæ ù)›çÉOÙüü‘ÍËä<Ž?òø)ù#×ÈÉã¨á†Ç “?ò{‡ü‘Ç òG¿&äᘢSä§lN“Ÿ²9C~Êæ,xþø‡T_2³pç¥út·µÓð_TŸr¹Hõén/A/S}ºãÿeLWȹ0\ÓUòC.ŽqŒ3ï—\‘r‰#?äb~/1Mȹ8Æ1‰äŸ\R‘J¦Ú­öª=jŸµÌÚd±öXK¬k¡VƒÔ@5˜ZË­ÍÖ+j¬*SãÔ"UÃqÖŸÔ45UÍà¦Ö^몵ߺf-µ³Y‹­[û¬/Tž ò¹*W¥ªB-äX묪RSÔtn¢T ¡[©"U¨†s#5L UÅ|‡Î´Þ´Þ²ŽYÇu–ÎV¤,£”j¦š«¶ªÎQíuÕA·Óí­uÖzk…µÒ:aýÊ:d=k}d]P±*N%ª$U JÔ5BUªñªZÍänÆɜ‰܂›sKNå$ÎâVÜF·çvÜš39ƒst;nËÙüO¾¬c¸›f}'÷Ôñ:‘ûqȯp.à<~•óÊG¹€ ¹ˆ_çbÁ%<’Çp—r9ãñ<‘ßáJžÀ“ø]žÊÓx¿ÇU<«ùÏæ¹<Ÿçð<^À‹ø1^Ì5æ%¼œWò -^Å«y-¯á'x=?ÉOñÞÈOó&ÞÌ[xïà]ü{ÞÎ;ù>Ã{y?äs¼ð!>ÏÿàOu‚î¢ïÑ÷ꮺƒî¨;éÎz3_Ôãõ=QOÑct©.Óü™î¥{ëGu®î£»ëôCº§ÞªÔóô|ý]]£èizº®Ö³õ ]¤‡éb=R×užÎ×Cô=H?®Wëµz^£ë%z™^©—êd¼O{èz}îxCx -¼3¼†¯‚o FÔ³ŒßP NR‡ nxc£ß_ÇœÊð?ìWkp×>wW«][,–ŒmL,³’å—l£•-lc,¤µ-ñ°cpŒ’qc ¯”qhh“¡'ƒ’2P^a€6„Ix†F–ˆ7IŸ˜¶NR:¥ã@i'M:Ò 1î·W.ÐŽ;ÓéÏNôÍžóÝsÎ=÷Ü}œk[?ü3¸íCsö>$ÃCCÇÎ 6¿Ö ôå Ï0û’’ªÑ‚Ú-¨Ñò=\;q½nÖȾ®ÑÊ¥ÌåWø -_áÿ÷{Ì¿u£c3JŽ¶Üïa¦Lu‰‡{”øzTêdNu0Þ¯ÂCƒгÎ<Ô³x×JRey’JÊŒ´_ÆXFŒ…åe¯Æ˜Ñ ²»óséâÒÎ%±»†Í4m–Ùf+û´a–`v²O³æ ‚Yaœ Qì¼  ’·ÀÞèUÁ¼L¶%¯L­Ð&ðMàk ZÁ.WÀ²–°¬€ÅBó0jà -óxÆY™«Îâ#?FaŒü|¤c5#4AI0Å8Å>b­¬ýx†ön÷hí ka­´€4V™è¥cûÉE*ÛÄå Æh—ú{—zÅ¥nr©k\ê9ö2µÁ±œKfŒnSßoS›ÚÔp›:¹M=Íê©ÑÈ*UÏ–ªÉRõ@©ººT]UªN(Åì>j†û—Û W³úy³ú‹fug³º®Y}¾Yýz³ênV8ÕB§šçT“ì»'2¶dlΠ4Ðc›Õ-›aû¬¿R×’ìÖñ€V^Q£%Ù†D¬êÅDìˆÖÍzÈkaØÑZò -¦^M®Ÿc~®¿ÍüÜÿ­„îÅ´•‰Ð¡º¡ÜŽeäãÎ¥‰À¬“±N­!†sVQD1õ„Dh+Üe‰Š‹Zƒƒ•Á\HîöP€‡ kk"VŒpé -ò&Kh÷Ö'vB»«·kw|I ,Ÿù’ -Ô5oR8’ЮêPÆXíC½Sû Ô¬ý~ÐÎë˵S|¡È3;d~¶Ë°ioè[µ×õ Ú¾wï ð|;b\m÷ÂxBÛ€4+}IöDB{&`®`Ó–!ãÒŠm!Ì»Œ ÍWQ«ÍÖOkéÏh³R+͈p5]?Å·sËPòµ=_›º¨ÕG°“„VgNOhS‹Wùøö*CjåØžå„V«Ô -°$3&h?%Ï“—kåjÙ/ËEòx9_ÎR2»2Z¥¤+ŠbU, -Þ[%+9ô£ÜüL³¬vSY-¦´pnL)¤¾b)^­$ZgsV…sÙ!GÝÔÈ¢kX–ôËïh™='~8n¼Ê$Cùs[âÕ³]_›s’Ý`E#'ÙuSÍÅØÍnD۹ݙ;7·%þhÛœ$»]’„cÉü¸a:¯Ã7æ# %þÏC^˜"')f*äjÈkæÁ+[ÃÃ6¤ÂtdAXÄTfØéûlçÊ•ôÏoÚJ«Ñ­lñý3•‘ ç€Hé8I-à -b$ŒÒÀ‡FÑ(ÍF*`£Ñ€…2™ì€…2Éî¤1È‘È4°¡i™6œ.p7¹ÇÛÈCàS¨ë†(o°á 6àm¢ð')o'uÂ;°QuÁ;°Q%¢­£QçzêßàŒ¤—À¿O›Éü?g øV@¢m´ »ØNÛ±‹€D¯D»h'bvD{½F?ƒöïˆÒðCtÓad8ØèM@¦>:Š˜“”€å4?Ètèìót³ÞÁßD?¥wù3@¢ßÒÏa¹FïÃrƒþþ'ÀF¥›àŸ} -Øèý ÷öÝÿXý4Ÿ9ÉÆ*Øxp›îg:x«Ÿ„ã‰ØdVÅLl› -¾ŒM_ŽãZb«ÙÓ°¼Í¾ËI–?Í° v–?ÏοÇ.€_b—À/³ËdªØoðâ„€Ã&L&j6¡Z¨¯jÀk…ZðIÂ$ð:¡|²0¼^¨ -Að)Âð7„0²MðôÅýÂ4üiv@Ä=ŠÁ‹‡À߀‚'ÄŸûÁ-¾ ~I|üwâeð›âU²I¯‰&’öIûHÂoøMwÃöŠÔ‚{)SÓ1ͬ8ò 'Yäxÿ%Ë QI³Ê3SÒþâžÚž[^>óv°u08Ó~'Øj R88´ß†¨ônG .·´*y÷ ©å‹ãIñÃ/‹ø·†=YʤoP#]6žÒ”@Ø©_)›ÈÙx¥°,ìô]ñ›œ W<²˜9.è˜è.S "EÁ@™h©m¬—,¢\WàrÚ· ¤“Û%;KòêJjæå“­ º/]-) LÔ‹JʉÔg[Ä­Ò¸¦H’µ÷»»ûyÍ­f‰(ºõ6Ê@ÕÁ .ûà€}  ü±#³Î‘9–_Œó:ˆ:³ŸTú›ž3r²r•´±¹9¹Ù¹¢5+m\1å*cŠY9+/ëé© ±j‡§:P“¨ÊÉβz -Š=Vy4ËvWÕÀÉ­ cGVÎØlwµ?±¸ð8²Æš¦Æ™¡M›„«×ºö–»}ÏOŸ+ÌÅ -‹žt¥µ¦IéÆXýc÷B]>ïÔÊÜi½åy­÷BN±f©°cÊLœÔ&©lªzz›ÅÂìŠ-­²,§,gðæ’IéÎñiˆrN+‘bp^‡;[v¦ž#&+þÁ~¹¼6„üÛG&›¤én·ŠMº,5©IìZój²ÍÛ"DJc%"XÅD©Zh,Z/JnÞ´"xðZ‚/zóâPðA"zô¤Müv»¥z¨ƒ~3ßL¾LÈ÷ÛÃ,D +{N„Ð^ÅV - D^«iÅ7ä×Ò(ÊŸLÄc}Éx¢^EÕB*ÇÛ"¸åu┥ Gþ¨ÇÅ vÚRÙŒHØïs†¢a%¨zó™ FžŒha{óäò™ý¶?µ´´QÇ{©m™Y÷‚® -ŸVßHm9õƒt²mÈ2žzS;xrá}È-ØÈxoF…´ «¦í;1ºÙÑC<–,0ySDÆ’$ð¹5èÈ”g'¨¤¶ûê’­§Ì¯›¸"‘r\pÙ<ÃE«}¥@çRö`GgÙE1;£×e¦©H‰ ìåÜÅô‘Ɉ/>ƲŽgˆÓ}è˽rÌ¡(®~õ{gµ4‘³+ü}B®Ÿ›|»ñN7O¡ü¿3n‰B¡P( +H‰¼V pTÕþÎ9wwˆ$(d ïz FØ D .a7Bc5¼wwɃM$$š-"È(4º@Ÿ¨EÅú‹µ\0µ‹¯FÅR§ŒšŽ#Ú;(m}´Uöö;7+F¦í8Nï?ÿžÿuþó»†òÀ¹¬cÅJcÝiÃdtv}k²}×~yêûÛ›^¿*mþ°ùÒJÚiNÝÔÐQ1¾ðÜÅú‰MÉ4¼ÆBú{é›Ú—·nKoöÒÿˆzëò74=xõÁC­èÔ–Tc²¡ïØú¿BÝv9ë+R ò0h5ý1©ÖôêÛ'+¦¿ ¾©å{iå¯ç–3¿zE[}EYª½ù-­ÉÕíƒù³ŸÆo¶¶]·ºñç_ÜÇúíPaÿÊdkã˜û×= Õý%÷pA{[GŠ•ªûm]ß~]cûŸ_[Ûµ, x_i¿®­ý¥ï} Õ|‹ h®ÜGî–»= âþ«Ç“†ôÔ¢”êW[qࡧËU3Ï\îç·j4‹{´ÊÜ¥Ó1£Ð‰{‰¸ïà"£GÄ ú=8ˆwq9–`/¾ƒ'ÅeÈà +T¢UTaŒxˆâA¼È7 µ5¸ÎzÖy™± +<‰,>CJQ…»lÂ}Î^lÇŸð©ó°s “±‡œ?bº˜•(A{¶ ]„dÚéÆ ®w/žÅ;b¸3Ã0ÓÁr¤ÐŠ•XÏÜ 8„>1Š» a"שÁblÄØ +¿çˆÅF“rZ°ˆZ8ïîæ ÞÇÇ¢HüBìsF9=ŽÃµ-LCµ›ß†ð0~¤w‚}”£8.æ‹ÅÊRSœÁ΅άBÖ¨ÅUœÑŠ›¸“{ñ*öSÞåªå¢B,í¢KdÄ>Y­Î2|ž+œ›‰ò4ò]E¹’ø;ˆt î&‡Oà)Ê+ø ™/–œ)»ä'ªH…¹žUÎ:g§ó¢ókžˆg’ÿZÊåHc5nÅmÄ{žÁËøÏê#œ>Q(Š‰¡GHÈ"y>»½®ÚTFí4`l3{fxºsçŽ:Ë»ýÎ߸{ ¹/ÇTÊ4®q)æb>âh ×׸÷ã>ìÄ.ì!w‡ðãrb4÷9UT‹%bxDìÄçRÊBy×<_vˇ(½ò€<¤JT©*W“ÔRuzH=aÜéið\ë¹Ë³ËûïÖ\}®!·*wSîy§ÖÙêüÄé%šÑè39Üí\,à 6aËuFß%ây?£ÊQñ!åsé‘>é—–+ò–²˜’”õ2%›e«ÜLy\î”=2« f¨•¤ØªWR}ê]õw£ÄH7/Œ·Œ£Æ_ŒÏ<…ž‰ž…žE^¿·Ò»Êû¨÷iß5¾§|oa79þ)÷4ð©Ç òù¬•—ñ{ö+¾-^—³yâiñ(™zŒ÷v +åmJ˜2‰r:åfr8Ž‚ü{ÆsýòTZÛ×7¤Szäë9­míkp°2¹¢É­ÖõòäúÚãý¾+ßrB@ +>olÙëÜ€yÎèÒQ#KFø‹‡;û¬¡E…CÎ|Æ Ó Nóy=†’Á¨U“0í± ÛkÍžÒ¾•d 9 °M†j¾Yc› ·Ìüfe˜•M§T†û+Ã'+E¡9ÓCA3j™öËÌŠ%sc´7G¬¸iwíïºö×L;à3êOEL[$̨]³*•‰&"l·'LNyñÈô ÝØƬdgÊÏAWDí+µGX7§Ê¢É»nn,ÄCA[̪·–Ù°ªí!ãóÓõ<“¥ób\;lÖø±ñŒ«ac6Œe m%¯ŠÙ*·eB¯Q4Þ.¶"vñš÷ü_»_YÑM’¶,«I6fjHÍÆÙýnB{ÉMôjç›l+7Äc¶ØïábïßE£Õ‘D‹iXÕV*Ó’ ç˜Û].‰ZÉHÜF]l÷ˆð× ÷ø×^ ){B3C3õxIÀ¿¶|ÿ–þø›½ƒÜº½¿çX;ï$/B¯dÍ!LÛ¬w±ˆušþhœ†Lý4–ñ‰ î²Ù.˜•È^ÌY¶§¬Ð23Ÿ‚eÿð›‘d>â-+üÚÔÇyòF0Ÿ·³8/X›EA]l—?ˆg…³!‹Héþ‚©«—2]®¯Cs„³éœd`\€Ö¸ YCÔ5úÜÌŒ™™Ó1kÌÜ(sG&3ñ ÜÎüX3?Äv8>ò¤Ù_Ì>ãuÃ퓉³CK¾C‹Û N°(¬%EcëbscvWd¤ŽÄI ïOo]Ìî%‹ñ8«B'‘rìlöç1_@Ì¡q4&ôw™ÏlÏdú=+`÷f2#3ú{ÐïgN „ó,ܼ*YÑU禺¬ÀH°V€°â.5‘×ë«ãÍbÒfø O&Ú ]†§ü¾èÛ0\ñ­žú¯žFÌS5Õÿ?†/À°~3{‘ãÛið«¹D.1øþ¯ÿ]æÿ%>âÙÇßÖü«ÝÕ¢@Eð¼ýwK¼;Ðé­Ä× ¨R £]¦s¾R7§µŠu=r®ž³ùQôµ|›QÀQÏ 1~&ûôÈJ§—cD½„jÃÝ»ó!qÔÒöqœÀqÇrÖhìzßC‰»œó2´ Úeä&@[ëjžÃúbL1?"ÏI×ÇÑ¢ŽbÏ)ªëÄýèÖ£±ÀÅ8:¿÷Éz__íIãטþNÐøjß'Ôw¨Ç`;U‡ž¢­j2çÏh8õùªÔvç>GïÙ¨Öêû'éÕßU]ÅÏýïÿÚ&aæc›s0ˆ€s‚„bä#!P&Í% Y)j™fÚÃÖCÒ‚AJ˜(%f> + 4ƒõ€Yš YÉãö=çžûÛÝÿþï½³þÿÏù}Ï=÷Üó{ß9ç×N“0¿X«Ãñ&ªÁúçÊ87Óµx¥Äsí¿ß^sŒàÝÀä½°ÝDÓc£iH ÷ŠØ-T–¬¤ ˜ï¥<Œ}ình²_ƒ,úÃâð’q]•†o±šµB¿èÿ<`mœìãxÿìÔ‚¦ÁÖ m<Œa1¯;ï½Õpj]âw·ƒêá'“@¼ÿ‹`»…¿áïa«7÷¡{!ÈÄþê *e^÷hbòJºÎÝ/—d/ÖaÖÙ;Oâ›-ÎúÑXåà ]K;lb-ØߢÐí?•çyôsÐÞ1Æà³/ûˆÿòZ׉²øø7Î=Ÿ=9û8²uNp>ì<·Ë™ãøS–‰ÊsŒëÃÙãÜLt×N±‘c‹œo`ÎJy̼ï:§¡Æ¥j³·ºïÝ~Ýþˆ¦pœÒ3˜Å·ìÃú®SäDÛ_ƒŸqÌr|¢Ì샮»¦wÜ9c’mT¥1³XÇ‚>1.ÎM¥X‹<~ƹ(À:Ô0bÏ +Ø~ÎZÃz÷Û)Œ#±‰ +Ø6#dwá»ì¡ØH¼)þY ñã„øa©Œ²Ä*ÅúÖäöâ$×eyã¨,w†Ô2£‘Ÿ¦JÏ`'}ˆò3ë»q[rT½×ßz—ºÅÉïÈÑžøíƉnq“Ç–Þ‹±µH.퉹™vÜïʼýyòEö¸Ü…5ZCMÓüëæ)ö‘TìÊ[Nž Åžæ5>£\zÖÅ“Ë‚QâHÄRà;žõì†Ýs›} Ù·x¿31(çy0t}µ¶Èu1{>Džsð匼˜‰¾üÕ qß…ò¸*]tógòåsæÁìùÖE©õíûNÝ^bül7âÈ +à~ÔéqzZåSë§ ôÕG£°/åÀzZ¯ '3ß{j ®}zÀÁDŽU›eÝuªqk^/ªÝBO?EŸ9&s~â8Íù‹ã¸‹îÙuu]=ÎeÓ9—ñ÷‘Ç8žsN‚þd“/2¹Œc:rXŽåƇÕ×@ƒ9O3ƶR•[Óó“ψÞËßvjó‡ºòµÜ%'"¿Œß&÷Ëazn%zæ*9ÌÌå9ÍiNÃT$þ¢c5sÓçd‰EÃr¸&°O&.@®I_\£;÷ˆáñ›ð­~£5Sµõ¨ý +h3×$±r» ÔÁr//ﺗ}hB†/vùŠ½z7:>cŸÈ^ÛÚ˜³œq¶4žyüÕîÔçé=òK÷õ¥O^?ÞŸ(ôÄ}ÙG©ŸtÝ=qkU®M¥.å”kÎu\Úo@VÍÏ\sJ‰SëË*¼_Ũu%Ûi”Ú4„’7ØG™R•4!uŽÝ–œew$[@WC>×>Ê}d£Ô«ÔêݦÔÁ¤5o ¥_ V‡ì6¥‡¨š sYÈóÁ\Ž9Dg)õeŠo¡V¦Ä$»M©Ã!ÄGÎÝG©VŒõæ®~SÛ1ÞÃ2Þª0JÏÆ7³ñÍlŒq¶ÄàÆ0JnG?I|3 ߀RCÑÏ P%âx>Ƨë».œ?tÝ1W¹{Ø“}L?neʽÕnË]‰¾÷c¼W€6;ò¨}ÉOP«Cv›R‡CTÍ5ïÜjÍ­§Ö¼;ì6¥‡¨š)ÔáóB;©ž}.Ý)s÷þÖÌ?q÷2¬ÛÐc ]±q ÇO,>;Lð‰f¦,{Û¨$ÏrÆ@Øãf¦Ö"Û<¹ßT½C¨‡›Óóhƒo<5ë+¤6ÖµQ¤sõÒÝYø=J»YþŒ—òûž’Ù»ÿ‘Ü}R*ãøæy®ÎxŸM.¼»ÿ7íD|ÝéÄ&>óLA{Ðm=P{“%ׯÉØÛã w.Õ +ÖÑyÚïõIƇ؞à“L Ñ>ßp“î‚@í)Šï“vjˆ]þ_¨x1]DÓèýÂOÔþ€â%Ò^aû2Ã]NTîŠ@í+ ÷!š¡\} vƒâLi#F2Ë'¹*D{¶áæÐ\ÁÓ¼@íùŠWK{ hAˆí&ŸäÚí…>ÉGB´› wµ(÷Ñ@íë}’E!¶o0Üô1Á%´8P{©OrSˆíe>ÉÇC´o6Ü'è“Ê}*PûÅ[¥]b—ÿ·)~šn§;è3Â6P{…âJi?a{•á>O«•ûB ö ÷%Z£Ü—µïTüŠ´wEŒänÿÕ]‹îQ¼WÚû%í/õ•›]”SŠÓ€B (h@˜Å ÊS=X£!B=(C嶜ÕN +µ @ J(YPòh@¹#‹•§z´Fcd¬‹Æ嬟ÅLÈ3·ªI™(ÔŠrdëÂÒšIYÌäJ´Ñ<[ÿ‡ †–W“DL‚q@¬D¬N¬Uê<žC_™”À„ÏúT„ZSÅaZ™¦Ã4++««FŒVÖG»¸®©ªqÃVS¾±©Î°ç©A¬I¬1ZÙÔÔÔ¸¹©¥qË^¦|k‡µI\ÆÙ.'Ö!^A¬ñ:ª­Ã:Ê´áÊÄ°®ò]ÖS¦§©Ï°¿«!±ñJb^­Ï¸1±YT©3ô54`®Ôxp ¯R~(Ö5ü\Åy¾F¼šØ$b´r¸¹ZãQ¦‰ÆãbØTù‰›‘hÊÙ¾N¼†ØœØ"âuÔ$‡×(35†Í•/Œa å‹^«ÌlsÃkù]ß ¶"¶$ãÖÑU5Ïa+e2¯Wfqøìàs=Ç~“Ø&Šµf™Ã6ʬpxƒ2«Ã§ Ÿ8ö[ÄvÄÉ·eÜ!ºª£Š¶Sf“ÃöÊl6¶çØ›ˆ£XkJÿ:*³Ía2ÛM'†Û…Ø•ØØ™W;1îAìUê ;¢mñNÓMã=1ì®ü~ÓƒawÎÓ“Ø‹Ø;b´òé¥ñQÓ[ãŸÆ°ò¯;ìK¢g»™ØØŸ8 âuÔ›û)s2†ý•ÿU (ÿ®Ã[”9ãp ‰[øƒ‰ƒÈ d|+qq$qlT©ó|àpˆ2çÞJbëo‹Pk>s8T™ fá¬ü6ñvâðˆÑÊ‹ævÿŠ½¡4þG G(ÿ¥Ép繃8Š8:bJ+%Ü]JcÏŒÖ8Ã1ÊWq8–ÄÎ6Ž8ž8xgÄë¨Ç+S;†”¯Ã;•oèp¢2Í] 'ò»î!N"N&ÞÍ«w1¾—XUê MÃýÏÅÍÍd[ÆpŠò­Í½ §pž©ÄiÄû"F+Ûši·7÷i\ÃéÊwuXHb:g»Ÿ8ƒø±(âuTO‡3”éÔÃ"å;œ©ÌP3‹áL~×lââƒäg1ž]ÕQÃÎQf”Ç”gæ2|ˆcççG±ÖLt8_™IVfªYÀðaŽ]H\D$˜t‹£«:ªÐá"eŠ>¢Ìlœ0áçŽýqIkÍ<‡K”É8\ªÌâðÂg)Ç~—¸œ¸‚ø(¯.cüq]T©3,3Ë5^ž`.^ÕʛǮä<«ˆ«‰k"F+7áô+7›5oáZå·9\Gb-g+&®'n nŒxµÝázevÄpƒò;c¸Qù=¥Ø¥äÒ:X7ØÚ#%—æÁo‚õ‚mD¾~ ¬?ì äKà¿ÛŠ|9|wØvØ0ä«à{Þ‡8ÍÝ66ùFøa»`Çÿ~O—’’úð¯))øýÈÁGž„?; +;iÌß ÷óò°ƒÃï wó9rô]ØCŒ`眀xÞŒà;]€@~ g»…Î %eÑÅZôÈ=°ÅÿbÑ]ÊiøæÈ+Á£'”ߣ—´P%¶MÃÐCZè +‹ŽL>‡¢³89,öWèTcÑYôç¶+ Ý–Ee¡,Ö*ÒXt9=¾ÅšÊßáÑ•ØÆðÆž„¿ g¸Åš[œëáo³Øíø;qbó·áüµ8!me—‰'…öãoÅÒX(> ­cÑOZœ4÷Ïb_µ›áqïìIöD‹7Ðâ¼°§By‰ïŸÅý³Ø•-ö4‹7ˆkûgÏgLŠÍ~á‰îÍžE®ÇŸ‘£ÿ²çc=è•èè·ØG»`G`;‘ãÞ&ŽÁöÁ~‚ëæá¬M‡o€s{P%‰ðÐ@ ÌíA?$ÐoyP ¬›‡~?n˃ºHàO¼yâýL(tMâmäè¸!‘Àÿ–ÀýMü9: ÷Ë» †õöð¿{è}½g`ƒã÷нz?€áyò°ûã¡Wòp¾x?‚agñ^Fþ<ž­$î³·9ž ïgÈëÃïC~1tZÏOZ/‰ç6‰]?‰/‰}?‰÷#‰Ý)‰½8¹ ùA_„mA~{mÏOòiä/»±á˜g‘¿÷!ùOc|<>”Ukâ£Ãñ«!ÇZùX½‹_ 9Ô5ñ±~äP)>z†çÁï¢ÿ ÿ$<~¯ûïã,ö±Nþï``g2&À»àYЛÝ‘£ÇÐeX¯½w€S/x†ç(Øë솃íBŽw?À³à$ö"Ç cÞßß`}ܧïo€³,Àú¸OÁ1äX›àç0è€àuä8<;ÎÍà-ä8ËÜÎûKä8‚Óa {9NŒ{Q€5~ƒü{ðšh^<ßÁSð8ÕƒOaÅ.Çéྛc=ø›p6›‘?g6ÀýKÙŒIa_ pïRè•SIä5‘ãN¡_I¥‘_Ž÷/(A^y=x¬E +÷/….,…{‘š¥°‡¥&!Çz¤°f)¼¿)ô‚)|w +ïFêcØ)ä_`;ƳÆ>†¢Lã^¤±w¦±'¥;#éöóèEV#O#ßU¤œO;_)6þÿõc‰•]VÍùêÎ×0_ÿÏ›û_jkTÇ|uþ¿ÿ²_àQ$M´º3»»»œàÁÝÝ=Xp îîîîp‡z‡Þ¡wèz‡ž»k§Séo7³Ùèžý¿?¶é÷ª«ÞÖÛÚðÍÌòûßÌŸ p–,˜Ï†œ9øÏ´9ñ”9/r䟿ÌÈŸÞp–B2 +ÿ™¯(øÏ,üIg)…ùÒ2SFFå°VAf*Ê(kUd¦ªŒªc­¦Ì„ʨ6Öê"×C®þóí6ÀScä&Èü·›ßÌÈŸµp––2rÞú}EÍÇŸYýf–=Kgu•Qwõ”Qo|_ä~Èaà?ßJ< BŒÌÅùÍŒC z–á2 þ3ßhðŸYÆAô,0? y2òðŸi§âiòLäYà?3ΆèYæÉhøÏ|‹ÀfY +ѳ¬Àü*™Y-£µX[/3d´ k[df«Œ¶cm§Ìì’ѬíCÞ|üçÛ=ˆ§Cȇ‘€ÿÌx¢g9.£“à?óÿ™å DÏržuf]X7Öõf}X?fœ1ÎÏ狈g8Ÿã‘kåß7Œ[ÆÄ›Æmã.â ηxäZ¹cÜeÙ`Ά²al$ÍÆ°q,‚Md“Ù6Mg³Ø6—Íg Œ'Æ3ãâSã¹ññ çgç1ºCqQ£Ûû¶•hp»d[yYƒÛä«p ®Ã‡ð‘†ž±¯¯ ½©ìvKà¾oóýï»ð1|÷à¾Iû@Ùíòcø>ƒ'ðT¹£·õ ù¹£.ÑëòKø¾€/á+Gݾ6e¾qÐí[Sæ;ݾ—ѺD¯eô“Ü~ø‹[îWÇÜ~óZý]³Û2úÓCõ/ÍnËèÍ=­£8ò¡„‘8$À]A }n$®ÀxxJÄw|’@Vê$FNB’êíìÑ-™×jrÍn)<äR:6[*©êÃ- rZŸ¸¥3eÒódtÄ-“Œ2û`¶,2Êê·ln§ì»åp;åâ;§ƒn¹M™<ºåµ­Ì§Á-¿ÀB¤)H +“ RœòsRÔ¤,AŠ)»•´­,¥a¶`äÒ¤ )KÊ‘òê=½¸UQEäJCLÊÊܪ W%Õ,µÕ•Ýj˜25ÕgˆÕ-Ô”©å [mS¦ŽƒnuÖ³¡¬¯Á­meC n“&¤)iFš«÷ôâÖÂíÔÒI/Þ¿•Û© ß­tkkÊ´sЭ½Çl‡Ü:ʨß]1îì¢è¢Ñ­›Û©»33Éþ=˜í ò[ämå^‡Èa ÅMŸú(y‡ã1 Õqä䤲ã)rÚBñ®¦ÙÞ#gl¨Î"Ÿ#ç•Ü.‹6Tï›2K¯áv™\±¡ºŠ|\WšíCò‘ Õ ä›ä–Š›èqÛRqù.ùXÙíKÅ=äû䪛ÏóPSŸGä± Õ§ÈŸ‘'>˜í)ò3ò\©Ï òÒ†êsSæ òåkù}eCó5ò7ä[¥Ù¾#ßÛPý€ü#ùIÅMôøÙRñ ò¯ä7e·ßÉŠ?U=°Ï_äoŽÿX¨þb +TÙ‘R`¡0ôÌFcCWv‹gQœ€&Ä(Mü>IhRšŒ&·P¥Ð:[J‹z*äÔ4’OZšÎ†*=ršQÉ-ÍlC•9+ͦâ&zd§9,9‘sÑÜÊnyh^ E>U·nù-ê ÒBJ>…i -b©*Š\Œéœ2·âšú” %m¨J!ÓÒ>˜­ŒÖne-êåËÓ +J>i%B+[¨ªh­ªE½ruZCÙ«& µPÔB®Më(»Õ¥õ,õU=ܺ5°¨7DnD+ù4¡Mi3KUsä´¥’[+ÚÚ†ª)Ó–¶ãØþÝ:ÐŽ6T;Ó.J³u¥Ýl¨º#÷ =UÜD^–ŠÞÈ}h_e·~–Š0äþt€²Û@KÅ äÁ4\ÕÍÆ碩ÏP:̆j8ò:Ò³BMÇ(õKÇÙPE˜2ãéŽ_ÑmlC5y*¦4Ût:Æj&ò,:[ÅMô˜c©˜‹<ÎWv[`©Xˆ¼ˆ.Vv[b©XªêáÖm™E}9ò +ºRÉg]M×еªuZg[oQ߀¼‘nRöÚL·X(¶"o£Û•ÝvЊ]ªnÝv[Ô÷ ï¥û”|öÓô W ¾B"! " +L"0•À´3Ì#0¿À@Á+ ¬&°¶Àú l'°£ÀnÆ &p”ÀN8Sà"K®¸IàV»Ò¨YÖyÃR¡72qþÇ~¹GUqüƒÍØ„@È&<’ÀØÍf³É&Ayˆ +XDð"øB´bDEÁo| ˆ/ð=¶NmmíÔi«ÓÖ‘ÖVkmk­µcµcDZ­m­ýÝïÞý†Œ7#34:盹¿óßïœ{öÜsÏùîwº(»*»ùm¬ÏˆDM¶ËBkÓMº˜.–®¦{P“×ecæé#E*cúïÅ>­6.ÝM÷;$–hóîÚOeOe©²Ì÷[Ÿö4Oµ”šNxã ôPée:%½UöÒÞúø´Ú:9ÂtVúª1à`óœÄìæõÌv9ÄÚœ"5*‡è3õiµ§Ê0ÓgHRå0m“RÖ*Ó¾ÇZΓZÓgKÚô9¼Ã¼>_2*ëôÞzeVÙ lTæ”MÊf¿¥õp!« ¯/Ø`žeÍsisV»RšL_!ͦW·Ëksµ WÙ¢#^û™¨ï x¬yI¦÷³3òú9Þôãr‚Êãµ·ÉÊ)¾¶6OÊÓOÉTÓO{» +›ªí¿æÓjŸ‘i¦Ÿe·y6MÛLWÎPÎTž¬œ¥­Íy·›g‘ܪr»¶¼My»òåå~­Ýu‘÷=ôÒÞaµËC¸ÃjWäõåíò.ksewjå]:»•»”»•{|¿õÐÂ]V{Mî6ÿÚ6Ücþumxùo +¸W÷èîõim6¼Ï<›Cx¿VÞ§÷> |P¹O¹ß÷[ÛBø ÕÞÖ†ûÌ¿£ ÷›g>dþÝò°Ê‡ôßQ>ª|Lù¸ò ¿ÖîÚ+š¾?„Yí¾>nµË¦kŸc>ù¯·7^i•ÎÞÉå7\¯¢½3ÈïD"œÆ +–PRá4VÀ·&B]„óJ_H÷Mä;¿Ž&ÒF8D†£y¸È¯Íz‰G×´Já ”¬“(Q³ðg”«½ßè—(oÚü‚’%—/ü%㌠+I¹-ЯR?£ÛÍ[‹’ÕòâLtW ‰*QÖx!Ïemuy§Uºq¶êòžHŒóMÏcœ1òâ"Æ#ŽM@3Æ9nŒ¹ˆõ›´aåƦ‰k•îŒ'FÄ‹‘cvg Åì¢böYOΉ%¹Þ +ôÛ\[ÑœþJþÌõW4sYBŒ(yò|\A3¯%ãbü=³ôÇ{-ù7šVñ“èÑœ˜JÈvJ[s^ÊØJÉ—Ëg)9h)yn¬G9ºÍÿôèÏU…&ž”åJÉÎz¿%Ò‹Ø‹õØ›¹êEÿ}>j•¾Œ³ÏÇ\ÿB3WG°$âVÃ؆²žk[ ™ÝPÆYCŽUÓŠæÛ‘‹nDïBsªLp"J¬®!×$ßFÿÉšùH².“äMIæ ÉžMò%L²g“xשQ”üþMß)¾Ý©X ™ÃTw4ÙMŠ“CŠñ¤xç)æªýG«¤™·4gÈ4ï(MÌH³6ÒóÐìÓô7¹8Ǥ¹/ý´Hóœæ]×ñuø똟º ¸V¢yöº¹è?ÃØ3Ìi†õœá3ì¯Ì(4ñ0C.—Ù‹f.3ÄŸ k2CŽá+’aŸf~*R߉kz«Ô³ê‰?õ¬“zÖIý÷¹ ?¤äêŒþ§H–÷en³ì‰,ùMvL ‰uYö]–ý‘å}g™ç,yM–±eÉ8²d4YbN–ý›åºp±Èsb\%h毱6pRià]7O“è(Y߬Fž¯‘}Øø&š/C#ﻑgɱÖrìå§Ãë7Ç|æ8Ûå8 ä˜Ïg»ë(÷]‘¦žh毉wÖ„¿‰øÖÄy©é4ï¢éç\@ÛšS3ñ¡yV w¢‰[ͼfâ^ólJÖ_3{¹™µßÂù«¥«´‹ZØ#-¬ÿ¾3-|‡Z–£y¿ÂœKgù²Xä‹€3g΋˜ŠŠ‹KÎœ9ëæÅ¥BUEÊbe÷ Ö‹S%ªz*K%»Ž Òq-úEÀ™3g‡Å¼¸U&~D*WO?eåå@e¥²JY­¤,.sæÌYG0/Jº“òË—œ9söU4/ãHJ>"}Ú¼U§*«lP6îa9sæÌÙ!š½rªšÅùœ9sÖÌ;󵨩¥‚ +ë8ÿ?‹~ÑpæÌÙa±B®sÄH‹Õs±r‰r©r™òårå¥ÊË”+”+ÅåeÎœ9ëæeS«ÝIùå‰KÎœ9û*š—q¬–|Dú´y1jªë”k•×öq9sæÌÙ¡™½nPµ^ܙϙ3gÁ¼3ߪ6*7)7+·(·*·)·+oý¼çÌ™3gŸi^>õ?ö«°Š¢ ÏìÎÒQ„!CoA"H"½„^„PBo¡·Ð ]º€t騨¨¤HA‘¢€ *HU©úÏÝ;Ëó˜·¼÷g‡oöÛ¹½å›eßÎ1ÛCl.üýÿFç×–ñ=3Ïd‹L¿¾ÈZBKhOB3¾È–Àß÷Ö“Þ„y­ßÒ»|EolÍU¯Œ|Ö‚å³\ù¬·úh«ßþ•çfð¯|¶‚+Ÿà+y¹îƒ]à[z÷‚¯è­çæøK&‡À•Éa«?¾’™ëLßÒ{|EolÍ89§Á_2qU³à_ùœW>ÍÈeÓ__ÉÑõk¹ +¾¥÷øŠÞØÚý3t ü+Ÿ»AÛ=ñÍuª<7â$Œ,˜Èê“0™é“ƒ¯d[³ÿí0øW>© ‚à+YýÛYL >• oé;¢7¶Æ糿d’ü%“<ઠù­¾øJf®_GAð-½EÀWôÆÖŒ“Sü%“’à/™”1–3}yð“¬ÀõÝTü+ŸÊÁjà+YýÛw`uYKÖud=J¤‚eCY_6–M)‰#F‰Ù²žl*6ˆ ²µl%ÛÊÁ2R†S +±]ìûÄ>®²‹“âœ8Gé(@v“]dA©Å]±\üIA¤SÄj±TLáx& +4æQÁd +¶(ÓÉ@ÊFÁ2åR¹d>1BDŠÁbå¡FœrLe“µeMYW†Rb•U6’ dÙŒ’Š(1ZÌ᧡²™ˆѲ “í(„ +Èö”Rì»Ä~±_¶W9TNqJœç)=¥•ÝeWÙSö¢4âžX!þ¢Œ¥SűLLåxfÊ`Ì£Œ“)ÙÒÊ 2½Ì@Ù)«ÌK¹Un™_ŒCÅ1œòRN#N¹ ¦ZªV*LµUíUÕQu¡ºJ h+Õ£úÔ¶1ÛF-)ŒZQkêJÝ©'¤nÔƒ"è³Cª»ê¡"TÕ_ PƒT$ ¡¡4œ"i  4‰&Òd5\P£T”¯&¨Ij +ͦ94—–Ñ +ZE§i9­¤Õt†Ùº@—T~¢ +¨Bªˆ*ªŠ©T•ªSMŠ¦jTƒjÑFºbÌâ±ÁšP3jJÍé:ݤvÔž:Òn +§Ô‰öÐm3ºÛ`ª”*­Êªòª¢ª¤ª¨j +©¤"êCýhõ¥þ4FS¡±ª¦ª¥ê¨PÕP5RMTs•œÊ«T4•¦ÓLšF3h–J§i>-¤ÅtŒÐ"ZBÇU=f0€;!Á®_ ñ‹›ÈÈx@äQ€)u¦¯¸q’@°ÜÂgMKé!d„Ìð,CVÈ9 'ä‚ÜòBÏ(ÏA!xŠ@Q(/@qëM—•€¡$”‚ÒPÊÂKPÊCx*B%¨ UxÆ+PªAu¨5¡Ô†:1ÞÍêÆyfL«Ç¨ bÓ=âê ¿–˜OhRHÉ!¤„§àiÈ©  Á3 øVc«oÎhÁxÕñ¬%£•É¬Hkhc±¶ŒvŒpÇüöÐÁb­¾“ý¬³Íš@S³O …! ÷™ d@3júf¦ïbú®ŒnÐz@OfÖ½ìÕz[}«ïËègñþö¬½›M?ˆ1†@$ e6Ìz6Üž5ÂêGZý(Æè‡þ»,ÁüÃÆX}€éó?Ä›Q0Öæi!ûq0ÞmÎÇW'ü㻳”§ïO¾ù€k5t†ë~Ç ™ŠïF£¥æ›(€{ão®ì\Ûƒ¸ºgâúžÅªðÙÜj|>Î/ĬòÍ:_Ø®ôÀµÞUßK[J<×øVøº\ƒCÍlÔÙÆæ]ÙŒïæ|/·ä»8̼ÛòÍnÞ¶ù†íÌ7e¾xÞãÔt5}7í¿'ͺŲ̂­\S{síËÕ³?×Ë\ûîW¾ÿ'æ1:Üf#Ñ‘±¬ão6ÊÁGÛ7}”éÇz˜?N»bï˜{•rÙÓOdLvD§0&1^Ó®:þmªÍ¦Át˜3a¼³aGæÂ<˜Ïý"X K¬Yo00jW¿ö¦ÇèRíºtÛ2_+د„U°Ú¯ñ0ÿ-튽coǽcõká]öï1Ö¹Íßmüö âÇ>´ÙG°6@4l„Mð1læÈ'°>å~|ÛÝÞÛª]yüÚŽ£Úõ<)¶ËÁ?w{¶›±×1ÞÇØ£]±wl¿ƒáöìã cüãKÆ!íªãß¾vðÃ6ûÆfG´+ÔcGmv Ž³ÿÖäß™þã”cîiÆIÆ÷ÚUÇ¿±Ùp~„Ÿàg8çáŽ\„Kp™û+ð+üÇõ.ÀUí9ýö»ƒ_³ÙuíºtÛ ¿i³[¦¿Í¸c²{ð'û»Œ?´+öŽýuŸ»þ˜L˜^2Åœ*®+#iÏí1 {Œ&1}RF +Gô)FrFÊ8­œLwnµ/OÛ,>ƒ©1 `Z¥Ãô˜ƒ0#óg1+fs¼“™‘åëbpŒq&Ý>â¾dwçpçÔ­Pa.›åÆ<˜×âù0¿ÅBt+ÔcXÀcô9,¨[™^ÃB6{ c,ŠÅ˜¿€Å­h Æ‹ºUjØ—’^ +K[¬ŒéË2^rÂõ¸£q#nÂq3G¶à§¸•ûm¸wÄq½Oð3Ý9ý'û²ÓÁwÙìsݺtîvð=6Ûkú}Œ/Lö%d€±_·b/íË!ÿ +¿¶ØaÓÃ8æ6ÿhœW>¢;·ÇÚ—ã£ßâwìO0¾wDÏ0N1NÇi哺s{¬}ùÁfgñGü ÆsxžG¿à¼„—ñ +óßñ:Þp¼ó+ã·¬w¯Å_Õá#îËM·ñ-·ñmÝ +õþa³;xïýý2¯¢ºâøy'y/ I^–@B€@ ä±ïû¾ïû¾ï*ŠE°j§T¢EPTÜPÀRj© "" ¥T[mµ–ÖªíçÓ?ü|ì§ÚZé™ónŽó`¦/!É»?sNæû;ï̽™w¿ñ]E0#Ô^¡G´ÍÆa¼Šüº+Ôã(1 k`2Å)˜ŠAΦё®»J ó’a‰kb-ÕfÖ¡#Ór¾®îjc8/õ$ÊÒ]‹›³%ª9º«±­°–QZâFÌ\Ý3áÇÆ–¸‰îjÜã˜g‰›2›é®É Žù–¸¹îjÜãØÂè®Æ=Ž…µÄ"Öb,Ñ]•cµ!l…­c2R‰Úb;Ý×µÚöØ!F#u”¨vÖ}ÝQ«í‚]±[LFê.QìÉÚ {ûèžÛjûb¿Ô_¢8P÷uG­vŽÑHCt_k9ë£q†I4G°ŽÄQÄѺgÀ¡Þ11g¬Dãp¼î«ŽZ휈“b2Òd‰¦àTÖi8]÷õGT8ËÏÀ™8;&£Î‘h.ÎÓ=Q« b4ÒB‰ábÝ×m[á2K¼—âM1õf‰nÁ嬷âmĺçCêZi‰oÇïÅhÔ;$Z…«uÏAÔjïÄïÇh¤»t_k¹ª½ï‰ÑH?ÈÀ²®ÁïÕ=R×}–x-®‹Ñ¨ë%ú1nÐ=¶þÄßàƘŒú D›p³î9°­ð!-£>l“ÛBÇ#ºçC¯ã£–ø1ÝÕ¸Çq«DKôOê®L¯ãS6¹§éئ»2½ŽÏ8äŸÕ]™^ÇííPºŸ#þTwezwYâŸé®Æ=Ž»òÏë®L¯ãžë2{qñç7ø}/è¾¢Êqü…C~¿îÊô:þÒ!ÿ¢îÊô:pÈÔ]™^Ç—ò/ë®L¯ã!‡ü+º+ÓëxØ&w„ŽWuW¦×ñ¨%>¦»÷8—è5‰NÐñºîÊô:ž´É½AÇ)Ý•éu<í?£»2½ŽoJtVé[xŽx^wez/Xâ·uWãÇ‹ù_é®L¯ã¥ë2¿ÆËÄßÜà÷½£ûŠ*Çñ]‡üouW¦×ñwù÷tW¦×ñ}‡üïuW¦×ñ¶Ùt×¥ÛñC‡üuW¦×ñ#‡üŸtW¦×ñŠCþϺ+Óëø‡üǺ+ÓëøW‰>ÁOuWc[ág1SY/h˜ŒcÆ3ýÌ3™ÈLbÖ`&3S˜©Ì 3™ÎÌ`ÖdÖbÖfÖaf2ë2ë1³˜ÙÌúÌffCf#f.³1³ 3Ù”ÙŒ™ÏlÎlÁ,`2[2‹˜ÅÌfˆÙŠÙšÙ†Ù–ÙŽÙžÙّىٙمٕÙÙكًٓٛهٗÙÙŸ9€99ˆ9˜9„9”9Œ9œ9‚9’9Š9š9†9–9Ž9ž99‘9‰9™9…9•999ƒ9“9‹9›9‡9—99Ÿ¹€¹¹ˆ¹˜¹„¹”¹Œ‰Àö¬‰8‰± +/£ÄGÐ/ù€#Ò&1 +¤e*g¢Œ•IËÄÒ>½LL–ö5«„)òýµ!UâLG¥M½(L“–ÙL—|N¹™!}V!kÊ(¹Šµ$Ó¤¬-½š–‰u¤}~™˜)í[Ä”ueÜBÅz’)ŠÂ,iY¢˜-™Våf}éÛ& +s¤e»*d¥CJ¾“#I›.Q˜+-»U9ËX=ÌûZŽÊÄCkOi|J|Î\T|K|Ñ\‡T| –J|™V£ÒøHö¼úÍÚ×®^½BúˆhþrþEú €o"é^Ò™ÄÑ[¨ï„~úžø&¤7‘®&mOú.éi% ü›”V¨ÀIéI˜NúÒc$ÑX—ôé*R²éEñ#Ò\ÒO ®HNú!évÒh… ¢Ûè%o!餯P“îÝŒ:¤t—f44 6ÝÁµæ“þ“ôŒuéžÉlAºŸt=)ýw27PÞ2?7 ûn€¬±¤÷N!¥ßnÖÒÏHß4 }oN1)Ýc9H‘n5 !õÏù’”VôcH/’0 1í¹Ù¤´ªç66 &· ›÷%é4¥ßE^wò4Ûa@szëkö5)ýóG‘¾JºÇ€B¤ª¯î¢úþBúEŒ#¥ë+8Dú8éQRú5'ÝDúéfÒÓœ =KŸéM¬0DJ÷Oá:Òó¤ÿ0 %ÍsË~¤·’Pú4éiÒ/ (¢g³¢©¤´6$½Pœe@1­™ÅénÒI¿"ý””þ¯%= (¡ßY ]WÉq€P’!zÂ-"M$]Nš@º‚4Hz)½¡†V“Ò;dh )Ý¡ J©Þ½)…îWŸTŸ7“Òü‡VJ÷kˆÞC©ï{’Æÿšt')ÕÚEyšÏÍkˆîßÐ>ÒéKªŽcJ“¦WŸOªÏ§HkžQú]/ÍKèé +Ò ¤´#‡.’ÒýºDz éû¤çÿ7ðBă4ÄùàFK¦#EwžyæY¥[j…z!Ö²ê`‘U"dXr¨4ŽŽx¨ÑÁ§4žé‡,¸vW1-¼³¸wW1ÍÜY*vzæ™gn²`…z§A:4"m¥kpœZçÌ•Ž^!¡µ´õ©:¼v»Óü 8­Ó¥ïn3ëî‘ìØÊ3Ï<«n–R¡Þ©´Î÷$as®:<;‡-FÚ´©õ—>û³œ«ocSÀ:ÃÖëñ;ôÑm¥¥ûõt¸~OT;¸»ß·<ó̳÷ñÔì¤7®–Ï>Xñ)læZ¹sºÇ"ßüܺ‡xæ™g±5óÉlD®b¦…ŸÛÜi0$?cºÓJWÝð<à>°>‡çÞíÏÄßîœA½¥xæ™g•hiÌôì5ac¥ÕRõæƒí^}ÃwÍ3±Í;Á¬ùyøvß0³ÍuE·Ýxæ™gUb‰°ìÞÜk‘+½‚õ9<ü.õ$î™gž}—,µB½ƒô¤’*©ZóE|B8ö»H<¼ÑÁVºã…w?\†kwÓÂ;‹{wÓÌ¥bw¡gžyæ& V¨w¤Ã{¤ƒÒ58Nž¢ýtàïÒÖ§VèðÚíNóK #>ëZ΂eÅvŸ%Ybwî&žyæÙXrô&ÿÇRèÙí«ë²>_‚MÛêð<¶x_’M›êP¿zðYw`ßu­ÝgèûûÕ&E‘…_¨Þ¼³]–e#°°d–œYrT +*A‰K0‘“äœ ’ƒÞ)Š(`öNÄ;ÓyÇé'GR@2HÆšêÞfv™éþfQ™á毯þªzÿ{UÕÕ3UÕqàºÂ®Ï£yˆ¹Ó2JãäƸõ,Ä8;}óÔ¼½ÿ~ૈPYÀhDaºK1˵e”ν:ïÉé;Èû5è«gHðÇBÞÌ° +äÝÅœÐïm¾‰ ¬¹3Öo˜¾‰ÜõÓïÆÁØ\ïÄjí}þN|óätX»@~„(ÅÑŒŽXlõ›Íå÷bgÐw_¾|¾å"»ÂÍ“ÙwAØ nžlÎsÏy²ù6Bîô €ß¡˜î¾h|y¿`4(§?üaï·á£†8ZÒ³5VÒx™'€ë·œ/ÃþÆ„Á_Þš\mœ~4[s ï/IXúßIÈÎ?Z{\"'»üe}{èJð£õµñø"Ü »dâ`\~ônpøÑl=jú¿Uíà/ÿbÍø½¸C0î?z+ø8ï<»àîXûÝàGkïQËýG|þò4V üV•ˆû$}碠R¿7Ôý’¸hÎï#ƃ²ú£Ì?åú+ëQÙ8!óI™OÉ|Zæ3F?g%¿e” †zIÒ•[F¹ªwLè: +I&ùk£`™Cd•9Læp™#dŽ„»âýƒªÁzø>†×PÐ*è=h0qkz]>Æ?Ó&zƒ¶Â5 Á0¸=i;FÐ{´“> wàS軸+:0ca7¦5Çiía|’OÓg´‹Ð¸ˆEiŽÁ4ú‚¾¡ô-}EÿÏáðO,%).Ãg439‡þ+|–Ïc9úfáúÄJXÇÑa:NGé¢3´kBo:‡uq] Ët¾„=°6`lH/AlLÃi÷ѼáK,8›r¶ÄÉƾÂ×°5ÞÃÑpsà +ÇrQlý°-'s:§Â7ð|÷áØ rð!ìL#±+æâ\Š3D*ïá¹Â?òdžŠ—xϤžÈ³y®¨ÈÏà÷<ŸÂx?O‘¼”—óJ^Í‹Hîm<…§áeϳ(–'ñžÇøYJáç(œòrð2^Á«x /,*‹*¢’Èâ|97ŠRWÓõѹçÉ*$„ʽ=QæÔiÒ´Xút†¨%öÉ3 o+ßf| ý¿¤hˆQe¨¼")`/!n­áý#ÜZ#-Fˆ‚XZœÌa¿ùÊR ÒŸ‚îø éîO(äÒŠ‡Â¾ hÖ‹B’*“!%O*¤Ýü&TÌòç„&ÑÁò„ÌE¨ÌaòlŒe¤œG”:ƒcå|n7Þ98ó‰ +¶.…'.èM ÑX¥‚¾—$£L.`|Šù6 +Ÿ®¸Xç_<_»„—ñŠK­’^Ÿ™¯]ÚËø2ùÚe½Œ/§¸‚Ñ*ïõü+ækWò2>+_»²—ñUW3ZU½žõ|í^Æ×Ì×®åe|mÅuV¯ç_/_»¾—ñ ,´lhhßÈ£ÒXq›ø¦Z3hn;~ ­%´Rek Ÿ6•{ßk3~[ ­´We Ÿ?Yh†ûlŸÿ~ÊŠ;ÚÄw²Ð„‡lÇØBë ]lã»zTº)~Ä&þQ ­;ô°¿§¥ÚË6¾·G%Gq_K7^ý,úîlÇÌB{ž°ÒR}Ê6~ Ge°â!.–An¼†Zô= †«r„…ÏH mŒVåÓ>c,Ÿn¬íóó¨LP<ÑÅ2Þ×$‹¾'ÃÛñ§ZhÓ`ºmü Ku¦mü,ÊÅs],³ÝxͳèûxÖvüùÚs°À6~¡¥ºÈ6~±Ge‰â¥.–çÝx-³è{9¬°¥…¶ +VÛƯ±T×ÚÆ¿àQù‹â¿ºX^tãõ’Eß/Ã:U¾báóª…¶^Så Ÿ×-Ÿn£íóoò¨¼¡x‹‹e³¯­}oƒ7mÇËBÛ;lãwZªoÛÆ¿ãQyOñû.–wÝx}`Ñ÷‡ð‘íø³Ðþ[Æhè$çä Å¡Š#G)ŽU¯¸ˆâ$Å©Š‹).©¸Œâ +Š++®®¸¶âúŠIw•WUIمΦʠ™õ ™œÐ”O°Î¦ +!f=B¶œQ>a:›j„›õXéëD¸ò‰ÔÙTãÁaÖ‹È8'Ê'ZgSM‚³ž*{u"FùÒÙT‹AœYÏ08^â”gaMŸLƒLKÙ<\D™TT¢Î¦g…<\Ô´gœ¤ EUT²Î¦OUƒSLK ƒS•!Eù§élúÔ68Ý´Ô“OìDºò,®¸„^7}² .aZœaZšAIUÍP±¥gêuÓ§eÎ4ímòpiÓÞʨjiÕOYÅåôºéÓÁàr¿²_ðQ_x60@‘Þ¤J=z/Ò›H“Þ{ïMŠ€Ò¤ ˆŠ( +*bEì QAQ¥Å·ß®ËíìÝ ¿»}gþÿ{¿÷½7_fç}3·™™³˜6&–²˜öúÓ§ž-,käVŸN&–µ˜®&ÆXLwQi ž-¬`äVŸž&V°˜>&ÆZL?Qi,ž­Œ3r«Ï@ÆYüV¶øáúwKŸÊ§*°š‘[}F™XÍbÆšXÝb&ˆH«ãÙšÀx#·úL61Þb¦Ÿt³q|ÒíʼnIIG(.¡vsÊQlIíå”露‚Úm(ßEy5ò5‰I·'S¬I¾Žrçvmò”£X—|3å)6 ßFùpŠz­í”¢ØŒ|åƒ(êµvR>”âòÞ‰I7ô±÷’÷¥€ò“G’¤ü´À7$ŠP~Fèߣ)?Kq +yiÊÏQœ¡¿“”_ 8›|š™Ï×ßÊ/Q\¤¿”_¡¸„|å×(.'§µ½Õ…âu!´t” Ø¼#åû(ö Ïlòô6kY)?D±y/ÊSDž›ò£‡‘ç£ü„¸ó1Î2ã\1Nã1Îãä0N ãœ0NãTˆ0ŸÏ`ÆHk¼ÿòG_‹Ì"¥ÌD?Aõ™d3c3æ2£qrå3[ùÍhœ=…DJYý5è·Y<íçÿ¶k‹6½uDÝ€ŒSN ÏvÑÐÕy4MîÚ§©hæóoÍE WõÞÝ¢UDKÑZ<˜¬'Û°k–µ%o¬ƒè„ØYt]m}º‰‡líîâa+ï!zZy/ÑÛÖ¯xÄÖî+úÙÚýÅ[{ dåƒÅ+*†Ùú 7ã1ÒÆ£mí1f«Ìy\ÀWÑiãÅ$3›L>ELµýuš­5]Ì´òYb6â1×Ögž˜ok?j»Ï¦"OMgmŠiÉÓÑ=-=ÅôÈ@gp$neQt'Ó§FÓÍL¿—å »˜þûT¿‡å¥;X~Ü} +Òm§0ÖE­;IIÜBnú}A¿ܹ T¡Û€¾Kë·jcÖ÷_ý6]»XýMû‰ ›@ìúÞÐ’ÎZýÿ° ½ƒíèì@çl'óíÓß8ý-Óß.ý­Òß$ýíéù À›¢¿!C©5ŒÞýMпý1ô]ÿ]¼¯Ë7¼ ïÿË&XÙDv-¡dÆ6™]G¨Ù+›zÏc¤D›æ`¦³k +›á•™¬1R¢ÍòÊÎf×ÅmsÌÜd‘mÐó&¼@èwa#_È®Ë+ìcù±”]¥û¶ÌÁ<ή)l¹Wö v]ܶÂ+»’]·= \åÁ¬%_mæëÈ׈§ØUºoë½²ØuqÛFà&…Ýì‘?-¶°«t߶:˜mìšBÁžq0Ï’o¿ËSϱë¶=ÜáÁì$ÁÌ_d×Çe/9˜—ÉwÝå©WØuÛv÷(ì«ùkâuv•îÛ^àL"ù>ö›b?»J÷í€Wö ».n{ ø¶ÂòÈ߇ÙUºoïd”÷Øçh;QŽ²Ï#Ðö>ð»ŽP³ãÀì:BÍ>~¨°yä‹OØUºoŸ?SØÏ=ò/Ä—ì*Ý·¯¼²'ÙuqÛ×ÀS +û ».n; üVa¿c×ÅmßÏ°ë5ûx–]G¨ÙÀŸögv]Üvx^aa×Åm¿d” ìó´ýQ~gŸG í¢Wö».nûÃ+{™]·ý ¼’̧®²ë¶]þ•Ì§þf×l»îjµìóõ×nºZíû|ýµÛ&‰]S˜& »¦P0-ÌÁ¤âÖ +¦¥v0’[S(˜–ÆÊÒrk %ÓÒYY8·–P2-½ƒ‰àÖ +¦ep0¹5…‚i‘&·¦P0-³ƒ‰âÖ +¦eq0Y¹5…‚iÑæ>nM¡`Z¶€Œ’{6-G@FÉÉ=@›–ËÊòpkŠÜÜ +Ly­,?·¨ÈÇ­ÀÔQ€[¢ç~n¦Ž‚Ü +=…¸˜: +s+PôáV`ê(Ê­@ÑSŒ[©ã`q…-á‘—ÔJ³©+ÅV¹ °¬ÂÆxäå´ +lêʳUŽV$¯ìÁVòÈã´ªlꪰU®¬NïÁÖðÈkjµÙÔÕb«œÀU9™:ë¸\¯.÷ŒýÔYÏåzõ ¶!÷:øPÛȵJM¶)÷ +øPÛ̵J͹çê§Î.×k l¥°­¹×Á¡³ ðA×굶SØöÜëàÐÙØÁµz€¶ ÷:8tvvu­ÞCÀî +û0÷:8tööp­^/`o…íýܦ=ì«°ý¸uq›Ö8@arëâ6mp°ÂáÖÅmÚPà0…έˡs$p„kõFG+ìîupèëZ½ñÀ +;‘{:''¹Vo +pªÂNã^‡ÎÀé®Õ› œ¥°³¹×Á‡Ú9®Uš œ§°ó¹WÀ‡ÚG]«´¸Paq¯€µ‹]«ôp‰Â.å^j—¹Véqàr…}‚{¸M[\©°Orëâ6mpµÂ®áÖÅmÚZà:…}Š[·iëv#·.j7¹Vi3ði…ݽ>Ônu­Ò6à3 +»{|¨}ÖµJÏŸWØÜ+àйø‚kõ^¾¤°»¸×Á¡óàË®ÕÛ Ü£°¯r¯ƒCçëÀ×\«·ø†Âîã^‡ÎDà›®ÕÛÏ=c?up¹ÞAîû©ó-—ë½Í=c?ur¹Þ;Àà +û.÷:qÆïiGüèuø¾ÂãVïCíã¸vÂ^rÏÕÏÙ|är½Ÿ(ì§ÜëĦ}îG¯/€_*ìWÜêƒgÚIík?zâÖéçl¾q¹Þià· +û÷:qÆßkglí¼ö: üQaâVïcNç0ÆÏÚ9[û¯½~^PØ߸W x¦ý®]´µ/yíõð²ÂþÉ­>x¦]Ñ®ÚÚ×¼öú ø·Â^çV<Ónh7mí[^{Ý&ÙÙ0Á­Þ»…¥ +ÀZX˜­Úk/ L£°i¹W x–.,ÜÖNïµW0ƒÂfäV< ‹ ËdkgöÚ+Š[§Ÿ³Éâb5óSK‡°©:¦¦J``Z`:`80=0˜˜ ÌÌ ŒffFïffææææææææÞ,,, ,, +,|XXXX +XXX,,¬ŒVVÆ+««««kkãµ€µ À:ÀºÀzÀúÀÀ†ÀFÿ°_®ÑUTWß™³ &Þ „¼HBx·T´"¨„!„Hx%!„w€ð¦/o*`Ñ‹§¼ñYZ»Ð¶¶¨ˆº(­,m±¥…ÚV¬-X.ÐU¤ÿ9ÌÝåâ¤|R’élØ¿ÿžs—Ùsçž³·a®aÆ ó æ6,0bXh8Ô°Èp˜ápÃbÃÆ# GŽ6cXjXfXn8Ö°Âpœa¥áxà † 'N6œb8Õ°ÊpšátÆՆ3 gÎ6œc8×pž¡EÆv:P[Ä3i‰àO$nD %nŒ«HKwH|f"q¼ï”Ù&Œ•Ùf'q>5'RHâä(Z7ðúH¼¬L![â46‘Ù j*qf›Éx¶›ËlNd¼­[ÈlûZ™(k:R’Äßð`²Ìv¦–ßì#ñ=”*ñ·ìݸ«Óe¶›3döj%ñC.3eä;.³däa癹q/j-q—92Ò×eÉužœ vç9OËó©ƒÄ.;ÊH¡ËN2Rä‡2µ{ã?BQ±ÇáÔ] E­»Šª*Ÿ{ºŠû‰ý~˜Bøïúm˜lœvš«èRlœ16z爎ÄÆ[d£±ñ¦ØèDlì 6ú{´{ÎFWbc/³ÑsØØumôv>]†}Ê~ZŠ†Ë‚âwBïfãwn£3ˆÇYo£+ˆï EG:ÆF7<ì(j½@<ê{˜;_ìΣòýŠª?„oÛFÅ:EµzÛÕ7 ¨øCØ lTõ¡ PÔï!œ!6*õÐJ(ªôž³ +=´:Z]„û\€†ðX˜šE Œî1w"º’DÔ +É]ÃÔâ$´›«»0Ž|Z¢+MÄÿÓy&®‡¢ƒHÄóoy*LIØESð\’~ݦdä—ŠÎ5•^*úÕdä—ç^Ç»×èH“—B@/@Ï…©%ÎÜ´¾Ð¡xÏRPµ§c] +v€tä‘rúA˜Rq?x/RQeà{HEÍ•ÑÛ½îë^ã{H]Åç¤^D³ŠÏIÃ¹Ü +Ÿ“†Ïou6L騭3ñïÒñÛÌ|úô(ö¥Ì— ïCCñ²’ — è2ð^d¡SÊÀ9™uz…:Þ—ŒkÐt(~Ù+ÂÔ +çVö'Pœ­ñ½g"ÿÖG xsð~fâ{ÎY¦,ÜWÎÇÐg‰Ú wÌŽ‡â}Év{Š¡ëÝ•ÓU9Ý”ÓE9ÝSCwNz/cÊtP17X`}ý¦û8ÅÃq~ÎnwoR7¬áÛp_Øÿ·ij +&QP/X`uÁ%ƒiîU¤¿K'ï^/ó¦u9ìeX]0EíÈ«ß ,°Àûº©x75R`VLQð>xWøýðnìOX]0EÝ)Ø ,°º`Šz€³'õ2ìö…÷3W¹†À<ø x>|ðMŸC_)‹àÃàÃáÅðøøHø(øhøx)¼ ^ ¯€“Oª”h8 >>>•êÛ^ªn÷ X`_‰1UQ°X`uÁ˜fÒ÷£úñKçÛ}ØWbšæQ°X`uÁ4Õ€ËàËéú¾T¿Í¢ä<¾®!ä☢µä§lÖ“Ÿ²yŠü”Ífr²Ùf¸Ãp—ánòS–{ÉOÙ$?eó<ù)›’?²y™ü‘ÇòG?%äñ9y5|Ãð˜áqòG~ï?ò8AþÈã×ä<StŠü”ÍiòS6gÈOÙœÏÃÿÿêKfîü¯TŸî¶6cºþ‹êS.©>Ýí%èeªOwü¿Œé +ù!†kºJ~ÈÅ1Žqæý’K#òO.qä‡\Ìï%¦ ù!Ç8&‘ü“K*RÉT»Õ^µGí³–Y›¬#Ök‰Uc-´Âj¨sCk¹µÙzEUejœZ¤j8Îú“š¦¦ªÜÔÚk]µö[׬¥ÖcÖ"k±õokŸõ…ÊST>7PåªTU¨…kUUjŠšÎMT‚j¡3t+U¤ +Õpn¤†©¡ª˜ïЙ֛Ö[Ö1ë¸ÎÒÙŠ”¥b”RÍTsÕVµÓ9ª½n£:èvº½µÎZo­°VZ'¬_Y‡¬g­¬ *VÅ©D•¤ +T‰¢F¨J5^U«™œÀÍ8™S8‘[psnÉ©œÄYÜŠÛèöÜŽ[s&gpŽnÇm9›ÿÉ—u wÓ¬ïäž:^'r?îÏùÎåœÇ¯ò`ÂCù(p!ñë\Ì#¸„Gò.ãR.çq<ž'ò;\Éx¿ËSyÏà÷¸Š§s5ŸâÙ<—çóžÇ x?Æ‹¹†Ã¼„—óJ^Á«x5¯å5ü¯ç'ù)ÞÀùiÞÄ›y o㼋ÏÛy'?Ãgx/ïçƒ|Ž÷ñ>Äçùü©NÐ]ô=ú^ÝUwÐu'ÝYoæ‹z¼ž 'ê)zŒ.Õeº‚?Ó½toý¨ÎÕ}twý€~H÷Ô[õƒzžž¯¿«kô=MO×Õz¶ž¡‹ô0]¬Gêáz ÎÓùzˆÞ¡éÇõj½V¯Ókôb½D/Ó+õRŒ÷i]¯ÏoOw†—ÀÃðUð Ôˆúa–ñŠÁIê°Á olôû똳Bþ‡ýj nâºÂçîjµk‹Å’±‰eV²ü’m´²…mŒ…´¶%v ŽQ20nŒ¡á•2 m2´àdð@RÊ+ І0 ÏÐÈ2ñ&éóÓ6ÐiBJ§t(í¤IB:!ÆýöÊÚqg:ýÙ‰¾Ùs¾{ι瞻sm â‡÷¯}hÎÞ‡dxhèØù¡¡ÓÃÁæ×zÞá¯ü±áf_RR5ZP»5Z¾‡k'®×ÍÙ—Ã5Z¹”¹ü +_á+üã~ù·nô`lF‰ÃÑ–û=Ì”©.ñpÿCJÌ©ÆûUxhðzÖ™‡zïZIª,ORI¹‘‘öËˈ±ð¯¼ìÕ3Tva~.]\Ú¹$v×°™¦Í2ÛleŸ6ÌÌNö‰`Ö|A0+Œ³!ŠƒTòØ[`½*˜—ÉÖ ä5‚©Ú¾ |­ A+Øå +XVÀ²–°XhFmXaÏ8 #sÕY|äÇ(Œ‘Ÿt¬¦c¤ó‘&( ¦§ØG¬•µÏÐÞí­a-¬•Æ*½³´sl?¹He›¸|ÁíRïR¯¸ÔM.uK=Ç^¦68–sÉŒÑmêûmjS›nS'·©§Y=•Â!Y¥êÙR5Yª(UW—ª«JÕ ¥˜ÝGÍpàr›ájV?oVѬîlV×5«Ï7«_oVÝÍê§ZèTóœj’}÷DÆ–ŒÍ”zl³ºe3lŸõWêZC’Ý:ÐÊ+j´$ÛˆU@½˜ˆÑ²Yy- ;ZK^ÁÔ«)ÂõsÌÏõ·™Ÿû¿•Ð½˜¶2ú!Tw"4€Û±Œ|ܹ4€uR"Ö©5¤±ÀpÎ*Š(¦žm…»,QqQkp°ò±"˜ )ÀÝ +ðð‚amMÄŠ.C¡CÞ$c íÞú¤ÀNhwõvíŽ/iå3_RºæM +GÚUÊ«}¨wj„šµŸ ÃcÚy}¹vª‚O89cf§ƒÌÏv6í }«öº¾AÛâoGŒ«í^Ohf¥/ÉžHhÏÌlÚ2d\ZÑ¢-„y—‘¡ù*jµÙúií1ýmVj¥®¦ë§øvnjC¾Ö çkSBµúv’ÐêÌé mbjñ*ß^eèQ­Û³œÐÊb•Z–dÆíñ§äyòãr­\-ûåb¹H/çËYJ¦bWF+£”tEQ¬ŠEÁ{«d%‡þ`”›Ÿi–Õn*«Å”Îí‚)…ÔW,0EÀ«•dCëâlcΪpn83䨛At Ëò‘~ùñ-³çÄçÏW™d(nK¼z¶ëksN²ì£hä$»nª¹»Ùh;·»#sçæ¶Äm›“d×£K’p,™7LçuâÆ|´ÄŸàyÈ Sä$ÅL…ðýÑA:~ˆ!Ãa:Œ G½ ÈÔGGs’°œ¦Sàg™Î£s˜užÎcÖ;ø[‚è§ô."Hô[ú9,×è}XnÐÁÿØè¯tü@¢OÝ¢¿áÞÞ¡ÛàŸË£¿ãæ3'ÙXîcÀýL¯b•à“p<›ÌêÀ£8ƒ‰McSÁ—±éàËq\Kl5{–·Ùw`9É’à§vÁβ3àçÙ9ð÷ØðKìøev™lBû ^œ€pØ„‰ÂDÍ&T Õà5B x­P >I˜^'ÔO&ƒ× õàA!>E˜Bà†F¶©ž¾¸_˜†?͈¸çâAñ øañø›âð£âQð„ø#ðb?ø¯Å·Á/‰ïÿN¼ ~S¼J6é5ñÏDÒ>iICø ¿énØ^‘Zp/ej:&°’Gžá$‹<ï¿d™!ŠÂ#iVy£qJÚ_ÜSÛsËËgÞ¶gÚï[íƒA +ƒöÛ•þ€Ãí(Áå–V%ï~!µ|q<)~øeÿÖ°'K™ô j¤ËÆSš;õ+b9¯–…¾+ž`“³áŠG3ÇÝejA¤((-µõ’E”ë +\Nûö1tr»dgI^]Ií¼¼q²µ±A÷¥«%e‰zQIÙ#‘úàl‹¸U×I²ö~ww?¯¹Õ,E·ÞF¹¨:Äe°„ƒá?vdÖ92Çò‹q^Qaö“JÓsFNV®’667'7;W´f¥+¦\eL1+gåe==µ!VíðTj2U9ÙYVOA±§À*fÙîª8¹5ƒaìÈÊ›í®6ã'—GÖXÓÔ83´i“põZ×Þr·ïùé3b…Y£XaÑ“®´Ö4)Ý«ì^¨ËçZ™;­·<¯õ^È)Ö,vLù€‰s‚Ú„#•MUOo³X˜]±¥U–å”å Þ\2)Ý9> QÎiE"R ÎëpgËÎÔóoäÏdÅ?Ø/—×&‚0€ûÈì&i’íV°I—¥&5‰]k^M¶yÛ†"…¤–¬b¢T-4­Š¥7oZ^tføÍ~3ûíÀ~¿=ÌBr°¼÷TP —”Z)‚}Ù§fo@Ë ¨@*™ˆwJ$ëùU «o‹âRŒ×‰¯G–B^ùƒžð„¼°Ë–ÎeB¢‘€ßŽE”ê+dCyÖ߯E„çÍ0•û;žXZš¨ã½Ô´ÌlxAWÅko¤¦œþA :Ù¾iDʈîôN;ž„œxr‰62äΪuÕô¢}'F7;zHÄSE¦À`Š‡±dà$~·æ™ò‚Jj{®.Ú:º‰ýdž¯H¤ƒ6;Ïp±jk_¹;غ”;ØÒÙ‡‚Ç“›Òk=2³ HÉ ìåüÅÌ‘±¨?1ȲAŽgˆÃuèËÝñ¸]Qœ]êöÎZy8/(ü=B®Ÿ{»ùO7K¡ü¿3n‘B¡P( …B¡P( -…B¡üm€Œ¶8cb¼¼=~òˆ̑7êóáU·‹c«Û_[õ‚µzý´ pÂÊæ@Æ‘±N–±¯Å£aã$Þ;´bz¡lÅf¶b㦌oKSåbE«Î5fG§õÓ¿³E(ÁþB* Aæ ³°Ó8ž„ó0u8»iÖ(æ-`\‡ÍOúÓ³:¶e8ƒÿë&°gìïÈ3Ó‚U÷­ÍÖÝ£bö3Ó'˜ëåÜŒ9¿¸ÖJtj_o¸o9wáÒ±þo ŠLŒV +…B¡üm€Œ¶ 8ãÂøÿx{ôø—)<ôš#oÔgõU»ãJ»íymÕ ÖëõÓ& +›GÆÚYƾŒúŒx;®tCÊŠYpøs˜qØŠyŒ¬˜`|{´\ªLŒhÕ™ÆôüÀä\£~úwV`ÊP‚ +LÀhP…hÀ4ÌÃ$Ž'á<ÌBÎn™5€ys×aëþ4ǬŽm Îà{Ý£ö,€ðŽ<5-Xu¬¾ø|Ô“ûÄtŠæ|)?e^Ÿ_[I¶j_o¸n9vãÔ¾ñÄ7ÀZŒV endstream endobj 4 0 obj << /Type /Font /Subtype /Type0 -/BaseFont /FLKNFB+Times-Roman +/BaseFont /ELCMOF+Times-Roman /Encoding /Identity-H /DescendantFonts [ 44 0 R ] /ToUnicode 45 0 R @@ -2711,7 +2719,7 @@ << /Type /Font /Subtype /CIDFontType2 -/BaseFont /FLKNFB+Times-Roman +/BaseFont /ELCMOF+Times-Roman /FontDescriptor 37 0 R /CIDSystemInfo<< /Registry (Adobe) @@ -2739,7 +2747,7 @@ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 ] /Encoding /WinAnsiEncoding -/BaseFont /FLKNFE+Times-Roman +/BaseFont /ELCMOH+Times-Roman /FontDescriptor 39 0 R >> endobj @@ -2768,7 +2776,7 @@ /LastChar 223 /Widths [556 556 ] /Encoding /MacRomanEncoding -/BaseFont /FLKNFO+Times-Roman +/BaseFont /ELCMPB+Times-Roman /FontDescriptor 42 0 R >> endobj @@ -2877,13 +2885,13 @@ /Type /Pages /Kids [1 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R] /Count 10 -/MediaBox [0 0 595 842] +/MediaBox [0 0 612 792] >> endobj 48 0 obj << -/CreationDate (D:20120404131639-04'00') -/ModDate (D:20120404131639-04'00') +/CreationDate (D:20140826174904-04'00') +/ModDate (D:20140826174904-04'00') /Producer (Apple pstopdf) >> endobj @@ -2897,62 +2905,62 @@ xref 0 50 0000000000 65535 f -0000151082 00000 n +0000150281 00000 n 0000000016 00000 n -0000005531 00000 n -0000149242 00000 n -0000149598 00000 n -0000150172 00000 n -0000150613 00000 n -0000044422 00000 n -0000151977 00000 n -0000151162 00000 n -0000005659 00000 n -0000010573 00000 n -0000151245 00000 n -0000010691 00000 n -0000015297 00000 n -0000151328 00000 n -0000015415 00000 n -0000019589 00000 n -0000151411 00000 n -0000019707 00000 n -0000024936 00000 n -0000151494 00000 n -0000025054 00000 n -0000028866 00000 n -0000151577 00000 n -0000028984 00000 n -0000033040 00000 n -0000151660 00000 n -0000033158 00000 n -0000036836 00000 n -0000151743 00000 n -0000036954 00000 n -0000041613 00000 n -0000151826 00000 n -0000041731 00000 n -0000044304 00000 n -0000044562 00000 n -0000044783 00000 n -0000073009 00000 n -0000073231 00000 n -0000119849 00000 n -0000120051 00000 n -0000120273 00000 n -0000149389 00000 n -0000150794 00000 n -0000151909 00000 n -0000151937 00000 n -0000152122 00000 n -0000152245 00000 n +0000005799 00000 n +0000148441 00000 n +0000148797 00000 n +0000149371 00000 n +0000149812 00000 n +0000043618 00000 n +0000151176 00000 n +0000150361 00000 n +0000005927 00000 n +0000010656 00000 n +0000150444 00000 n +0000010774 00000 n +0000015122 00000 n +0000150527 00000 n +0000015240 00000 n +0000019445 00000 n +0000150610 00000 n +0000019563 00000 n +0000024433 00000 n +0000150693 00000 n +0000024551 00000 n +0000028668 00000 n +0000150776 00000 n +0000028786 00000 n +0000032439 00000 n +0000150859 00000 n +0000032557 00000 n +0000036695 00000 n +0000150942 00000 n +0000036813 00000 n +0000041856 00000 n +0000151025 00000 n +0000041974 00000 n +0000043500 00000 n +0000043758 00000 n +0000043979 00000 n +0000072205 00000 n +0000072427 00000 n +0000119047 00000 n +0000119249 00000 n +0000119471 00000 n +0000148588 00000 n +0000149993 00000 n +0000151108 00000 n +0000151136 00000 n +0000151321 00000 n +0000151444 00000 n trailer << /Size 50 /Root 49 0 R /Info 48 0 R -/ID [<4c9509ec871556ded0d030acb3b5f7f9><4c9509ec871556ded0d030acb3b5f7f9>] +/ID [] >> startxref -152314 +151513 %%EOF diff -Nru securityonion-argus-server-3.0.6/doc/pdf/man/man8/argus.8.pdf securityonion-argus-server-3.0.8/doc/pdf/man/man8/argus.8.pdf --- securityonion-argus-server-3.0.6/doc/pdf/man/man8/argus.8.pdf 2012-04-04 17:16:39.000000000 +0000 +++ securityonion-argus-server-3.0.8/doc/pdf/man/man8/argus.8.pdf 2014-08-26 21:49:04.000000000 +0000 @@ -2,12 +2,12 @@ %âãÏÓ 2 0 obj << -/Length 8462 +/Length 7808 >> stream BT /TT2 1 Tf -10 0 0 10 72 793.89 Tm +10 0 0 10 72 744 Tm 0 g /GS1 gs 0 Tc @@ -16,10 +16,10 @@ 42.2457 0 TD (ARGUS\(8\))Tj /TT4 1 Tf -10.95 0 0 10.95 72 757.89 Tm +10.95 0 0 10.95 72 708 Tm [(N)20(AME)]TJ /TT2 1 Tf -10 0 0 10 108 745.89 Tm +10 0 0 10 108 696 Tm [(ar)18(gus )]TJ /TT1 1 Tf 2.398 0 TD @@ -28,9 +28,9 @@ 0.564 0 TD ( audit record generation and utilization system)Tj /TT4 1 Tf -10.95 0 0 10.95 72 729.09 Tm +10.95 0 0 10.95 72 679.2 Tm (SYNOPSIS)Tj -10 0 0 10 108 717.09 Tm +10 0 0 10 108 667.2 Tm [(ar)10(gus)]TJ /TT2 1 Tf 2.6292 0 TD @@ -53,72 +53,74 @@ 6.4805 0 TD (])Tj /TT4 1 Tf -10.95 0 0 10.95 72 700.29 Tm +10.95 0 0 10.95 72 650.4 Tm (COPYRIGHT)Tj /TT2 1 Tf -10 0 0 10 108 688.29 Tm -[(Cop)10(yright \(c\) 2000-2012 QoSient, LLC)-750(All rights reserv)15(ed.)]TJ +10 0 0 10 108 638.4 Tm +[(Cop)10(yright \(c\) 2000-2014 QoSient, LLC)-750(All rights reserv)15(ed.)]TJ /TT4 1 Tf -10.95 0 0 10.95 72 671.49 Tm +10.95 0 0 10.95 72 621.6 Tm (DESCRIPTION)Tj -10 0 0 10 108 659.4901 Tm +10 0 0 10 108 609.6 Tm [(Ar)10(gus)]TJ /TT2 1 Tf -2.9336 0 TD -0.0822 Tw -[(is a data netw)10(ork transaction auditing tool that cate)15(gorizes netw)10(ork pack)10(ets that match the libpcap)]TJ -/TT6 1 Tf --2.9336 -1.2 TD +2.8573 0 TD +0.006 Tw +[(is a data netw)10(ork transaction auditing tool that cate)15(gorizes and tracks netw)10(ork pack)10(ets that match the)]TJ +-2.8573 -1.2 TD 0 Tw +(libpcap )Tj +/TT6 1 Tf +3.3583 0 TD (Þ)Tj /TT2 1 Tf 0.5562 0 TD (lter)Tj /TT8 1 Tf -1.6064 0 TD +1.7474 0 TD [(e)20(xpr)37(ession)]TJ /TT2 1 Tf -4.5178 0 TD -0.0239 Tw +4.6588 0 TD +0.1649 Tw (into a protocol-speci)Tj /TT6 1 Tf -8.2675 0 TD +8.5495 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.0239 Tw +0.1649 Tw [(c netw)10(ork )]TJ /TT6 1 Tf -4.2585 0 TD +4.5405 0 TD 0 Tw (ß)Tj /TT2 1 Tf 0.5562 0 TD -0.0239 Tw -[(o)25(w)-273.9(transaction model.)]TJ +0.1649 Tw +[(o)25(w)-414.9(transaction model.)]TJ /TT4 1 Tf -9.4056 0 TD +9.8286 0 TD 0 Tw [(Ar)10(gus)]TJ /TT2 1 Tf -2.8752 0 TD +3.0163 0 TD +0.165 Tw +(reports on the)Tj +-37.3678 -1.2 TD 0.024 Tw -(reports on the transactions)Tj --32.5995 -1.2 TD -0.0552 Tw -[(that it disco)15(v)15(ers, as periodic netw)10(ork )]TJ +[(transactions that it disco)15(v)15(ers, as periodic netw)10(ork )]TJ /TT6 1 Tf -15.2595 0 TD +20.1225 0 TD 0 Tw (ß)Tj /TT2 1 Tf 0.5562 0 TD -0.0552 Tw -[(o)25(w)-305.2(data, that is suitable for historical and near real-time processing)]TJ --15.8156 -1.2 TD +0.0239 Tw +[(o)25(w)-273.9(data, that is suitable for historical and near real-time)]TJ +-20.6787 -1.2 TD 0 Tw -(for forensics, trending and alarm/alerting.)Tj +(processing for forensics, trending and alarm/alerting.)Tj 0 -1.68 TD 0.0544 Tw (Designed to run as a daemon,)Tj @@ -215,7 +217,7 @@ 4.6098 0 TD (Þ)Tj /TT2 1 Tf -0.5561 0 TD +0.5562 0 TD (les.)Tj /TT4 1 Tf 1.874 0 TD @@ -237,41 +239,43 @@ -2 -1.68 TD [(Ar)10(gus)]TJ /TT2 1 Tf -2.8674 0 TD -0.0161 Tw -[(can pro)15(vide address based)-516.1(access control for its sock)10(et connection f)10(acility using)]TJ +2.8607 0 TD +0.0094 Tw +[(can pro)15(vide address based access control for its sock)10(et connection f)10(acility using)]TJ /TT4 1 Tf -32.5648 0 TD +32.2351 0 TD 0 Tw -(tcp_wrapper)Tj +(tcp_wrappers)Tj /TT2 1 Tf -5.7652 0 TD -(tech-)Tj --41.1975 -1.2 TD -0.1307 Tw -[(nology)65(,)-380.8(and it can pro)15(vide strong authentication and con)]TJ +6.1477 0 TD +[(,)-259.5(and)]TJ +-41.2436 -1.2 TD +0.0389 Tw +[(it can pro)15(vide strong authentication and con)]TJ /TT6 1 Tf -23.488 0 TD +17.7689 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.1307 Tw +0.0389 Tw (dentiality protection using)Tj /TT4 1 Tf -11.1401 0 TD +10.8647 0 TD 0 Tw (SASL2)Tj /TT2 1 Tf -3.3822 0 TD -[(technology)65(.)]TJ --38.5664 -1.2 TD -(Refer to package documentation to enable each of these services.)Tj +3.2904 0 TD +0.0389 Tw +[(technology)65(.)-288.9(Refer to pack-)]TJ +-32.4802 -1.2 TD +0 Tw +(age documentation to enable each of these services.)Tj /TT4 1 Tf -10.95 0 0 10.95 72 489.0901 Tm +10.95 0 0 10.95 72 439.2 Tm (OPTIONS)Tj /TT3 1 Tf -10 0 0 10 108 477.0901 Tm +10 0 0 10 108 427.2 Tm <00ef>Tj /TT4 1 Tf 0.5698 0 TD @@ -387,29 +391,119 @@ (e)Tj /TT2 1 Tf 1.9298 0 TD -0.0119 Tw +0.1025 Tw [( Specify the source identi)]TJ /TT6 1 Tf -13.4796 0 TD +13.842 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.0119 Tw +0.1025 Tw (er for this)Tj /TT4 1 Tf -4.1734 0 TD +4.4452 0 TD 0 Tw [(ar)10(gus)]TJ /TT2 1 Tf 2.3792 0 TD -0.0119 Tw -[(.)-511.9(Acceptable v)25(alues are numbers, hostnames or ip)]TJ --20.588 -1.2 TD +0.1026 Tw +[(.)-602.5(Acceptable v)25(alues are numbers, strings, host-)]TJ +-21.2222 -1.2 TD +0.1305 Tw +(names or ip address. Double quotes around the parameter are used to designate the string format.)Tj +T* +0.072 Tw +[(The longest supported string is 4 characeters long.)-572(Be sure and single quote or ’escape’ the double)]TJ +T* 0 Tw -(address.)Tj +[(quotes so that the shell doesn’)18(t)-250(gooble up the delimiters.)]TJ +0 -2.4 TD +(This option sets a global Source identi)Tj +/TT6 1 Tf +15.3311 0 TD +(Þ)Tj +/TT2 1 Tf +0.5561 0 TD +[(er that can be o)15(v)15(erriden by speci)]TJ +/TT6 1 Tf +12.9641 0 TD +(Þ)Tj +/TT2 1 Tf +0.5562 0 TD +(c -i options.)Tj +-28.6575 -2.4 TD +[(ar)18(gus -e ’"ar)18(g1"’)]TJ +0 -1.2 TD +[(ar)18(gus -e \\"ar)18(g2\\")]TJ /TT3 1 Tf --2.5 -1.68 TD +-3.25 -2.88 TD +<00ef>Tj +/TT4 1 Tf +0.5698 0 TD +(f)Tj +/TT2 1 Tf +1.93 0 TD +0.0554 Tw +[(When reading pack)10(ets from a pack)10(et capture )]TJ +/TT6 1 Tf +18.442 0 TD +0 Tw +(Þ)Tj +/TT2 1 Tf +0.5562 0 TD +0.0554 Tw +[(le, the -f option causes ar)18(gus to not stop when end of)]TJ +/TT6 1 Tf +-18.998 -1.2 TD +0 Tw +(Þ)Tj +/TT2 1 Tf +0.5562 0 TD +0.0582 Tw +[(le is reached, b)20(ut rather to w)10(ait for additional pack)10(ets to be appended to the input. The -f option is)]TJ +-0.5562 -1.2 TD +0 Tw +[(ignored if the standard input is a pipe, b)20(ut not if it is a FIFO.)]TJ +-6.1 -6.48 TD +[(ar)18(gus 3.0.8)-15156.5(10 No)15(v)15(ember 2000)-19054.5(1)]TJ +ET +endstream +endobj +3 0 obj +<< +/ProcSet [/PDF /Text ] +/Font << +/TT1 4 0 R +/TT2 5 0 R +/TT3 6 0 R +/TT4 7 0 R +/TT5 8 0 R +/TT6 9 0 R +/TT8 10 0 R +>> +/ExtGState << +/GS1 11 0 R +>> +>> +endobj +14 0 obj +<< +/Length 7911 +>> +stream +BT +/TT2 1 Tf +10 0 0 10 72 744 Tm +0 g +/GS1 gs +0 Tc +0 Tw +(ARGUS\(8\) )Tj +42.2457 0 TD +(ARGUS\(8\))Tj +/TT3 1 Tf +-38.6457 -3.6 TD <00ef>Tj /TT4 1 Tf 0.5698 0 TD @@ -498,14 +592,48 @@ 0 Tw (Þ)Tj /TT2 1 Tf -0.5561 0 TD +0.5562 0 TD 0.0426 Tw [(rst netw)10(ork)]TJ -36.1348 -1.2 TD 0 Tw [(interf)10(ace that is up and running.)]TJ +0 -2.4 TD +0.0477 Tw +[(The syntax for specifying the interf)10(ace is the same format used in the ar)18(gus.conf.5 )]TJ +/TT6 1 Tf +33.7398 0 TD +0 Tw +(Þ)Tj +/TT2 1 Tf +0.5562 0 TD +0.0476 Tw +(le. The optional)Tj +-34.296 -1.2 TD +0 Tw +(source id speci)Tj +/TT6 1 Tf +5.9424 0 TD +(Þ)Tj +/TT2 1 Tf +0.5562 0 TD +[(cation can be an IPv4 address, an inte)15(ger)40(,)-250(o)0(r)-250(a)-250(string denoted using double quotes.)]TJ +-5.9985 -2.4 TD +[(-i interf)10(ace[/srcid])]TJ +0 -1.2 TD +(-i all[/srcid])Tj +T* +[(-i dup:en0,en1/"ap01")-3750(\()-250(en0 and en1 are in ingress and e)15(gress interf)10(aces \))]TJ +T* +[(-i bond:en0,en1/2.3.4.5)-3250(\()-250(en0 and en1 are bonded interf)10(aces \))]TJ +T* +[(-i en0 en1)-6500(\()-250(equi)25(v)25(alent ’-i bond:en0,en1’ \))]TJ +T* +[(-i dup:[bond:en0,en1],en2/3)-2250(\()-250(i)0(n)-250(this case 3 is the srcid \))]TJ +T* +[(-i en0/"en0" -i en1/"en1")-2750(\()-250(equi)25(v)25(alent ’-i ind:en0/srcid,en1/srcid’ \))]TJ /TT3 1 Tf --2.5 -1.68 TD +-3 -1.68 TD <00ef>Tj /TT4 1 Tf 0.5698 0 TD @@ -526,46 +654,8 @@ 0.0003 -1.2 TD 0 Tw [(internal status of ar)18(gus itself.)-500(The def)10(ault is 300 seconds.)]TJ --6.1 -6.48 TD -[(ar)18(gus 3.0.6)-15156.5(10 No)15(v)15(ember 2000)-19054.5(1)]TJ -ET -endstream -endobj -3 0 obj -<< -/ProcSet [/PDF /Text ] -/Font << -/TT1 4 0 R -/TT2 5 0 R -/TT3 6 0 R -/TT4 7 0 R -/TT5 8 0 R -/TT6 9 0 R -/TT8 10 0 R -/TT9 11 0 R ->> -/ExtGState << -/GS1 12 0 R ->> ->> -endobj -15 0 obj -<< -/Length 9010 ->> -stream -BT -/TT2 1 Tf -10 0 0 10 72 793.89 Tm -0 g -/GS1 gs -0 Tc -0 Tw -(ARGUS\(8\) )Tj -42.2457 0 TD -(ARGUS\(8\))Tj /TT3 1 Tf --38.6457 -3.6 TD +-2.5 -1.68 TD <00ef>Tj /TT4 1 Tf 0.5698 0 TD @@ -588,7 +678,7 @@ /TT2 1 Tf 1.9302 -1.2 TD 0.018 Tw -[(Specify the number of pack)10(ets to process.)-518(Y)110(o)0(u)-268(can gi)25(v)15(e)15( )-15.1(an)-268.1(absolute number)40(,)-268.1(o)0(r)-268.1(a)-268.1(range with the syn-)]TJ +[(Specify the number of pack)10(ets to process.)-518.1(Y)110(o)0(u)-268.1(can gi)25(v)15(e)15( )-15.1(an)-268(absolute number)40(,)-268(o)0(r)-268(a)-268(range with the syn-)]TJ T* 0 Tw [(tax "start-stop".)-500(Examples are:)]TJ @@ -611,7 +701,7 @@ /TT2 1 Tf 1.9298 0 TD 0.018 Tw -[(T)45(urn of)25(f)-268.1(Berk)10(ele)15(y)-268.1(P)15(ack)10(et Filter optimizer)55(.)-518.1(N)0(o)-268.1(reason to do this unless you think the optimizer gener)20(-)]TJ +[(T)45(urn of)25(f)-268(Berk)10(ele)15(y)-268(P)15(ack)10(et Filter optimizer)55(.)-518(N)0(o)-268.1(reason to do this unless you think the optimizer gener)20(-)]TJ 0.0003 -1.2 TD 0 Tw (ates bad code.)Tj @@ -629,16 +719,16 @@ 0 -1.2 TD 0 Tc 0.0327 Tw -[(cuous mode, this option may ha)20(v)15(e)15( )-15.1(no)-282.8(ef)25(fect. )-250(Do)-282.7(this to audit only the traf)]TJ +[(cuous mode, this option may ha)20(v)15(e)15( )-15(no)-282.7(ef)25(fect. )-250(Do)-282.7(this to audit only the traf)]TJ /TT6 1 Tf -29.895 0 TD +29.8943 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.0327 Tw +0.0328 Tw (c coming to and from the)Tj --30.4511 -1.2 TD +-30.4504 -1.2 TD 0 Tw [(system ar)18(gus is running on.)]TJ /TT3 1 Tf @@ -649,25 +739,25 @@ (P)Tj /TT2 1 Tf 1.9298 0 TD -0.1603 Tw +0.1604 Tw ( Speci)Tj /TT6 1 Tf -7.1486 0 TD +7.1487 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.1603 Tw +0.1604 Tw (es the)Tj /TT4 1 Tf -2.8753 0 TD +2.8754 0 TD 0 Tw ()Tj /TT2 1 Tf 5.3283 0 TD 0.1603 Tw [(for remote client connection.)-660.3(The def)10(ault is to not support)]TJ --15.908 -1.2 TD +-15.9082 -1.2 TD 0 Tw [(remote access.)-500(Setting the v)25(alue to zero \(0\) will forceably turn of)25(f)-250(the f)10(acility)65(.)]TJ /TT3 1 Tf @@ -690,10 +780,11 @@ (le ... >)Tj /TT2 1 Tf -7.0815 -1.2 TD -0.0337 Tw +0.0336 Tw (Read from)Tj /TT4 1 Tf -4.5659 0 TD +4.5658 0 TD +0.0337 Tw (tcpdump\(1\) , snoop\(1\))Tj /TT2 1 Tf 9.7691 0 TD @@ -705,18 +796,17 @@ [(NLANR’)37(s)-283.7(Moat T)18(ime Sequence Header)]TJ /TT2 1 Tf 17.3054 0 TD -0.0336 Tw [(\(tsh\) pack)10(et capture)]TJ /TT6 1 Tf --32.7571 -1.2 TD +-32.757 -1.2 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD 0.0481 Tw -[(les. )-249.9(If)-298.1(the pack)10(et capture )]TJ +[(les. )-250(If)-298.1(the pack)10(et capture )]TJ /TT6 1 Tf -10.5307 0 TD +10.5308 0 TD 0 Tw (Þ)Tj /TT2 1 Tf @@ -753,7 +843,7 @@ 0.5562 0 TD 0.0481 Tw (le "-")Tj --38.5271 -1.2 TD +-38.5272 -1.2 TD 0 Tw (speci)Tj /TT6 1 Tf @@ -765,15 +855,15 @@ -2.6108 -2.4 TD (The)Tj /TT4 1 Tf -1.8306 0 TD +1.8305 0 TD (type)Tj /TT2 1 Tf -2.1089 0 TD -0.0258 Tw -[(pro)15(vides the opportunity to specify what type of pack)10(et source to e)15(xpect and process.)-525.8(Sup-)]TJ --3.9395 -1.2 TD +2.1088 0 TD +0.0259 Tw +[(pro)15(vides the opportunity to specify what type of pack)10(et source to e)15(xpect and process.)-525.9(Sup-)]TJ +-3.9393 -1.2 TD 0.0755 Tw -[(ported types are ’)74(’)-325.5(\(def)10(ault\) and ’cisco’, where ar)18(gus will process the payload of pack)10(ets as net)]TJ +[(ported types are ’)74(’)-325.6(\(def)10(ault\) and ’cisco’, where ar)18(gus will process the payload of pack)10(ets as net)]TJ /TT6 1 Tf 38.943 0 TD 0 Tw @@ -808,42 +898,42 @@ 0.0008 Tw [(Care should be tak)10(en to ensure that the timestamps in the pack)10(ets are ordered, or une)15(xpected beha)20(vior)]TJ T* -0.1733 Tw -[(may result.)-673.3(If the)]TJ +0.1732 Tw +[(may result.)-673.2(If the)]TJ /TT3 1 Tf -8.0243 0 TD +8.0239 0 TD 0 Tw <00ef>Tj /TT4 1 Tf 0.5698 0 TD (r)Tj /TT2 1 Tf -0.8671 0 TD -0.1733 Tw +0.867 0 TD +0.1732 Tw (option is speci)Tj /TT6 1 Tf -6.1239 0 TD +6.1237 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD (ed,)Tj /TT4 1 Tf -1.617 0 TD +1.6171 0 TD [(ar)10(gus)]TJ /TT2 1 Tf 2.8024 0 TD 0.1732 Tw [(will not put do)25(wn a)]TJ /TT4 1 Tf -8.8683 0 TD +8.8685 0 TD 0 Tw (listen\(2\))Tj /TT2 1 Tf -3.867 0 TD -0.1732 Tw +3.8671 0 TD +0.1733 Tw (to support remote)Tj --33.2961 -1.2 TD +-33.2957 -1.2 TD 0 Tw (access.)Tj /TT3 1 Tf @@ -864,8 +954,45 @@ /TT2 1 Tf 1.9302 0 TD [( Specify the pack)10(et snaplen.)]TJ +-6.1 -5.76 TD +[(ar)18(gus 3.0.8)-15156.5(10 No)15(v)15(ember 2000)-19054.5(2)]TJ +ET +endstream +endobj +15 0 obj +<< +/ProcSet [/PDF /Text ] +/Font << +/TT2 5 0 R +/TT3 6 0 R +/TT4 7 0 R +/TT5 8 0 R +/TT6 9 0 R +/TT8 10 0 R +/TT9 16 0 R +>> +/ExtGState << +/GS1 11 0 R +>> +>> +endobj +18 0 obj +<< +/Length 9525 +>> +stream +BT +/TT2 1 Tf +10 0 0 10 72 744 Tm +0 g +/GS1 gs +0 Tc +0 Tw +(ARGUS\(8\) )Tj +42.2457 0 TD +(ARGUS\(8\))Tj /TT3 1 Tf --2.5 -1.68 TD +-38.6457 -3.6 TD <00ef>Tj /TT4 1 Tf 0.5698 0 TD @@ -877,10 +1004,10 @@ 25.6429 0 TD (Þ)Tj /TT2 1 Tf -0.5562 0 TD +0.5561 0 TD (c )Tj /TT6 1 Tf -0.6938 0 TD +0.6939 0 TD (ß)Tj /TT2 1 Tf 0.5562 0 TD @@ -896,7 +1023,7 @@ 0.1316 Tw [(Indicate that the e)15(xpected pack)10(et capture input )]TJ /TT6 1 Tf -19.7482 0 TD +19.7487 0 TD 0 Tw (Þ)Tj /TT2 1 Tf @@ -904,10 +1031,10 @@ 0.1316 Tw (le is a)Tj /TT4 1 Tf -2.9774 0 TD -[(NLANR’)37(s)-381.7(Moat T)18(ime Sequence Header)]TJ +2.9773 0 TD +[(NLANR’)37(s)-381.6(Moat T)18(ime Sequence Header)]TJ /TT2 1 Tf --23.2817 -1.2 TD +-23.282 -1.2 TD 0 Tw [(\(tsh\) pack)10(et capture )]TJ /TT6 1 Tf @@ -957,18 +1084,18 @@ (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.0542 Tw +0.0541 Tw (le | stream [")Tj /TT6 1 Tf -5.2412 0 TD +5.2409 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.0542 Tw +0.0541 Tw (lter"]> Append transaction status records to)Tj /TT8 1 Tf -18.0146 0 TD +18.0141 0 TD 0 Tw (output-)Tj /TT9 1 Tf @@ -979,11 +1106,11 @@ (le)Tj /TT2 1 Tf 1.0258 0 TD -0.0541 Tw +0.0542 Tw (or write records to the URL)Tj --29.3465 -1.2 TD +-29.3457 -1.2 TD 0.1214 Tw -[(based stream.)-621.4(Supported stream URLs are ’ar)18(gus-udp://host[:port]’, where the def)10(ault port is 561.)]TJ +[(based stream.)-621.5(Supported stream URLs are ’ar)18(gus-udp://host[:port]’, where the def)10(ault port is 561.)]TJ T* 0 Tw (An)Tj @@ -1031,26 +1158,26 @@ (X)Tj /TT2 1 Tf 1.9302 0 TD -0.1207 Tw +0.1206 Tw [(Clear e)15(xisting ar)18(gus con)]TJ /TT6 1 Tf -10.021 0 TD +10.0207 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.1206 Tw -[(guration.)-620.7(This remo)15(v)15(e)0(s)-370.7(a)0(n)15(y)15( )-15.1(initialization done prior to encountering this)]TJ +0.1207 Tw +[(guration.)-620.6(This remo)15(v)15(e)0(s)-370.7(a)0(n)15(y)15( )-15(initialization done prior to encountering this)]TJ /TT6 1 Tf --10.5771 -1.2 TD +-10.5768 -1.2 TD 0 Tw (ß)Tj /TT2 1 Tf 0.5562 0 TD 0.0706 Tw -[(ag. )-250(Allo)25(ws you to eliminate the ef)25(fects of the)]TJ +[(ag. )-250.1(Allo)25(ws you to eliminate the ef)25(fects of the)]TJ /TT8 1 Tf -19.1079 0 TD +19.1085 0 TD 0 Tw [(/etc/ar)37(gus.conf)]TJ /TT6 1 Tf @@ -1059,60 +1186,90 @@ /TT2 1 Tf 0.5562 0 TD 0.0706 Tw -[(le, or an)15(y)-320.7(a)0(r)18(gus.conf )]TJ +[(le, or an)15(y)-320.6(a)0(r)18(gus.conf )]TJ /TT6 1 Tf -8.691 0 TD +8.6908 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.0707 Tw +0.0706 Tw (les that may)Tj --35.7221 -1.2 TD +-35.7225 -1.2 TD 0.015 Tw [(ha)20(v)15(e)15( been )15(loaded.)]TJ -/TT8 1 Tf +/TT3 1 Tf -2.5 -1.68 TD 0 Tw +<00ef>Tj +/TT4 1 Tf +0.5698 0 TD +(Z)Tj +/TT2 1 Tf +1.93 0 TD +0.0233 Tw +[(Collect pack)10(et size information.)-523.3(This options turns on pack)10(et size reporting for all )]TJ +/TT6 1 Tf +33.5246 0 TD +0 Tw +(ß)Tj +/TT2 1 Tf +0.5562 0 TD +0.2734 Tw +[(o)25(ws. Ar)18(gus )250(will)]TJ +-34.0806 -1.2 TD +0.1078 Tw +[(pro)15(vide the mean, max, min and standard de)25(viation of the pack)10(et sizes seen during the )]TJ +/TT6 1 Tf +36.3063 0 TD +0 Tw +(ß)Tj +/TT2 1 Tf +0.5562 0 TD +[(o)25(w)-357.8(status)]TJ +-36.8624 -1.2 TD +[(interv)25(al.)]TJ +/TT8 1 Tf +-2.5 -1.68 TD [(e)20(xpr)37(ession)]TJ /TT2 1 Tf 2.5 -1.2 TD (This)Tj /TT4 1 Tf -2.0693 0 TD +2.0692 0 TD (tcpdump\(1\))Tj /TT2 1 Tf -5.292 0 TD -0.0415 Tw +5.2919 0 TD +0.0414 Tw [(e)15(xpression speci)]TJ /TT6 1 Tf -6.608 0 TD +6.6079 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD 0.0414 Tw -[(es which transactions will be selected.)-541.4(If no)]TJ +[(es which transactions will be selected.)-541.5(If no)]TJ /TT8 1 Tf -18.2707 0 TD +18.2705 0 TD 0 Tw [(e)20(xpr)37(ession)]TJ /TT2 1 Tf -4.5113 0 TD -0.0414 Tw +4.5114 0 TD +0.0415 Tw [(is gi)25(v)15(en,)]TJ --37.3074 -1.2 TD -0.1998 Tw -[(all transactions are selected.)-699.8(Otherwise, only transactions for which)]TJ +-37.307 -1.2 TD +0.1999 Tw +[(all transactions are selected.)-699.9(Otherwise, only transactions for which)]TJ /TT8 1 Tf -29.289 0 TD +29.2897 0 TD 0 Tw [(e)20(xpr)37(ession)]TJ /TT2 1 Tf -4.6698 0 TD -0.1999 Tw +4.6697 0 TD +0.1998 Tw (is ‘true’ will be)Tj --33.9588 -1.2 TD +-33.9594 -1.2 TD 0 Tw [(dumped. )-250(F)15(or a complete)]TJ /TT8 1 Tf @@ -1127,54 +1284,17 @@ /TT2 1 Tf 5.2505 0 TD (man page.)Tj --41.2687 -8.4 TD -[(ar)18(gus 3.0.6)-15156.5(10 No)15(v)15(ember 2000)-19054.5(2)]TJ -ET -endstream -endobj -16 0 obj -<< -/ProcSet [/PDF /Text ] -/Font << -/TT2 5 0 R -/TT3 6 0 R -/TT4 7 0 R -/TT5 8 0 R -/TT6 9 0 R -/TT8 10 0 R -/TT9 11 0 R ->> -/ExtGState << -/GS1 12 0 R ->> ->> -endobj -18 0 obj -<< -/Length 7559 ->> -stream -BT -/TT2 1 Tf -10 0 0 10 72 793.89 Tm -0 g -/GS1 gs -0 Tc -0 Tw -(ARGUS\(8\) )Tj -42.2457 0 TD -(ARGUS\(8\))Tj /TT4 1 Tf -10.95 0 0 10.95 72 757.89 Tm +10.95 0 0 10.95 72 412.8 Tm [(SIGN)20(ALS)]TJ -10 0 0 10 108 745.89 Tm +10 0 0 10 108 400.8 Tm [(Ar)10(gus)]TJ /TT2 1 Tf -2.8933 0 TD -0.042 Tw +2.8932 0 TD +0.0419 Tw (catches a number of)Tj /TT4 1 Tf -8.4418 0 TD +8.4415 0 TD 0 Tw (signal\(3\))Tj /TT2 1 Tf @@ -1189,34 +1309,34 @@ 3.834 0 TD (,)Tj /TT4 1 Tf -0.5419 0 TD +0.542 0 TD (SIGINT)Tj /TT2 1 Tf 3.5015 0 TD -[(,)-291.9(and)]TJ +[(,)-292(and)]TJ /TT4 1 Tf -2.2776 0 TD +2.2779 0 TD (SIGTERM)Tj /TT2 1 Tf -5.015 0 TD +5.0151 0 TD (cause)Tj /TT4 1 Tf -40.9774 -1.2 TD [(ar)10(gus)]TJ /TT2 1 Tf -2.9662 0 TD -0.337 Tw -[(to e)15(xit, writing TIMEDOUT status records for all currently acti)25(v)15(e)15( )-15.1(transactions. )-250.1(The)-587.1(signal)]TJ +2.9663 0 TD +0.3371 Tw +[(to e)15(xit, writing TIMEDOUT status records for all currently acti)25(v)15(e)15( )-14.9(transactions. )-249.9(The)-587(signal)]TJ /TT4 1 Tf --2.9662 -1.2 TD +-2.9663 -1.2 TD 0 Tw (SIGUSR1)Tj /TT2 1 Tf -4.4769 0 TD -0.0033 Tw +4.4768 0 TD +0.0032 Tw (will turn on)Tj /TT4 1 Tf -4.9264 0 TD +4.9261 0 TD 0 Tw [(deb)20(ug)]TJ /TT2 1 Tf @@ -1229,10 +1349,10 @@ (SIGUSR1)Tj /TT2 1 Tf 4.4768 0 TD -0.0032 Tw +0.0033 Tw (signals, will increment the)Tj /TT4 1 Tf -10.816 0 TD +10.8164 0 TD 0 Tw [(deb)20(ug-le)15(v)10(e)0(l)]TJ /TT2 1 Tf @@ -1259,16 +1379,16 @@ 2.8423 0 TD (reporting.)Tj /TT4 1 Tf -10.95 0 0 10.95 72 681.09 Tm +10.95 0 0 10.95 72 336 Tm (FILES)Tj /TT2 1 Tf -10 0 0 10 108 669.09 Tm +10 0 0 10 108 324 Tm [(/etc/ar)18(gus.conf )-2000(-)-250(a)0(r)18(gus daemon con)]TJ /TT6 1 Tf 15.9865 0 TD (Þ)Tj /TT2 1 Tf -0.5562 0 TD +0.5561 0 TD (guration )Tj /TT6 1 Tf 3.5825 0 TD @@ -1287,10 +1407,10 @@ 0.5562 0 TD (le)Tj /TT4 1 Tf -10.95 0 0 10.95 72 628.29 Tm +10.95 0 0 10.95 72 283.2 Tm (EXAMPLES)Tj /TT2 1 Tf -10 0 0 10 108 616.29 Tm +10 0 0 10 108 271.2 Tm (Run)Tj /TT4 1 Tf 1.917 0 TD @@ -1373,17 +1493,17 @@ 0.1042 Tw [(ltering, and ar)18(gus supports multiple output streams, each)]TJ -19.8506 -1.2 TD -0.0206 Tw +0.0205 Tw [(with their o)25(wn independant )]TJ /TT6 1 Tf -11.2771 0 TD +11.2769 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD 0.0206 Tw [(lters.)-520.6(Output streams can be written to udp based sock)10(ets, to unicast or multi-)]TJ --11.8333 -1.2 TD +-11.8331 -1.2 TD 0 Tw (cast addresses.)Tj 0 -2.4 TD @@ -1441,21 +1561,21 @@ ("not icmp" - ip)Tj /TT2 1 Tf -18.2012 -1.68 TD -0.0879 Tw +0.0878 Tw [(Audit the netw)10(ork acti)25(vity that is )]TJ /TT6 1 Tf -13.9343 0 TD +13.9337 0 TD 0 Tw (ß)Tj /TT2 1 Tf 0.5562 0 TD -0.0878 Tw -[(o)25(wing between the tw)10(o)-337.9(g)5(ate)25(w)10(a)0(y)-337.8(routers, whose ethernet addresses are)]TJ --14.4904 -1.2 TD -0.0546 Tw -[(00:08:03:2D:42:01 and 00:00:0C:18:29:F1.)-554.6(W)40(ithout specifying an)]TJ +0.0879 Tw +[(o)25(wing between the tw)10(o)-337.9(g)5(ate)25(w)10(a)0(y)-337.9(routers, whose ethernet addresses are)]TJ +-14.4898 -1.2 TD +0.0547 Tw +[(00:08:03:2D:42:01 and 00:00:0C:18:29:F1.)-554.7(W)40(ithout specifying an)]TJ /TT8 1 Tf -27.3419 0 TD +27.3424 0 TD 0 Tw (output-)Tj /TT9 1 Tf @@ -1466,11 +1586,11 @@ (le)Tj /TT2 1 Tf 0.7217 0 TD -0.0547 Tw -[(,)-304.7(i)0(t)-304.7(i)0(s)-304.7(assumed that the trans-)]TJ --31.4523 -1.2 TD +0.0546 Tw +[(,)-304.7(i)0(t)-304.7(i)0(s)-304.6(assumed that the trans-)]TJ +-31.4528 -1.2 TD 0.1574 Tw -[(action status reports will be written to a remote client.)-657.5(In this case we ha)20(v)15(e)15( )-15(changed the port that the)]TJ +[(action status reports will be written to a remote client.)-657.5(In this case we ha)20(v)15(e)15( )-15.1(changed the port that the)]TJ T* 0 Tw (remote client will use to port 430/tcp.)Tj @@ -1480,7 +1600,43 @@ /TT2 1 Tf 24.7634 0 TD (&)Tj --28.3634 -1.68 TD +-31.9634 -4.08 TD +[(ar)18(gus 3.0.8)-15156.5(10 No)15(v)15(ember 2000)-19054.5(3)]TJ +ET +endstream +endobj +19 0 obj +<< +/ProcSet [/PDF /Text ] +/Font << +/TT2 5 0 R +/TT3 6 0 R +/TT4 7 0 R +/TT6 9 0 R +/TT8 10 0 R +/TT9 16 0 R +>> +/ExtGState << +/GS1 11 0 R +>> +>> +endobj +21 0 obj +<< +/Length 2629 +>> +stream +BT +/TT2 1 Tf +10 0 0 10 72 744 Tm +0 g +/GS1 gs +0 Tc +0 Tw +(ARGUS\(8\) )Tj +42.2457 0 TD +(ARGUS\(8\))Tj +-38.6457 -3.6 TD -0.0001 Tc 0.1182 Tw [(Audit each indi)24.9(vidual ICMP ECHO transaction from data in .)-618.3(Y)109.9(o)-0.1(u)-368.3(w)9.9(ould do this to gather Round)]TJ @@ -1517,10 +1673,10 @@ ("echo" - icmp)Tj /TT2 1 Tf -14.7277 -1.68 TD -0.0927 Tw +0.0926 Tw [(Audit all NFS transactions in)40(v)20(olving the serv)15(er)]TJ /TT9 1 Tf -19.7101 0 TD +19.7095 0 TD 0 Tw (Þ)Tj /TT8 1 Tf @@ -1528,9 +1684,9 @@ (leserver)Tj /TT2 1 Tf 3.5634 0 TD -0.0926 Tw +0.0927 Tw [(and increase the reporting interv)25(al to 3600 sec-)]TJ --23.7735 -1.2 TD +-23.7729 -1.2 TD 0 Tw [(onds \(to pro)15(vide high data reduction\).)-500(Append the output to)]TJ /TT8 1 Tf @@ -1573,30 +1729,30 @@ -32.0436 -1.68 TD (Import )Tj /TT6 1 Tf -3.171 0 TD +3.1711 0 TD (ß)Tj /TT2 1 Tf 0.5562 0 TD -0.1993 Tw -[(o)25(w)-449.3(data from pcap )]TJ +0.1994 Tw +[(o)25(w)-449.4(data from pcap )]TJ /TT6 1 Tf -8.4914 0 TD +8.4918 0 TD 0 Tw (Þ)Tj /TT2 1 Tf 0.5562 0 TD -0.1993 Tw +0.1994 Tw (le containing Cisco )Tj /TT6 1 Tf -8.5686 0 TD +8.5689 0 TD 0 Tw (ß)Tj /TT2 1 Tf 0.5562 0 TD -0.1994 Tw +0.1993 Tw [(o)25(w)-449.4(data pack)10(ets. Write output to stdout, to a)]TJ /TT8 1 Tf -19.6722 0 TD +19.6714 0 TD 0 Tw [(r)15(a.1)]TJ /TT2 1 Tf @@ -1617,15 +1773,15 @@ /TT4 1 Tf 0.9717 0 TD (-w - | ra)Tj -10.95 0 0 10.95 72 270.69 Tm +10.95 0 0 10.95 72 585.6 Tm [(A)50(UTHORS)]TJ /TT2 1 Tf -10 0 0 10 108 258.69 Tm +10 0 0 10 108 573.6 Tm (Carter Bullard \(carter@qosient.com\))Tj /TT4 1 Tf -10.95 0 0 10.95 72 241.89 Tm +10.95 0 0 10.95 72 556.8 Tm (SEE ALSO)Tj -10 0 0 10 108 229.89 Tm +10 0 0 10 108 544.8 Tm (hosts_access)Tj /TT2 1 Tf 5.2773 0 TD @@ -1648,12 +1804,12 @@ /TT2 1 Tf 3.8345 0 TD (\(1\))Tj --25.3788 -15.6 TD -[(ar)18(gus 3.0.6)-15156.5(10 No)15(v)15(ember 2000)-19054.5(3)]TJ +-25.3788 -52.08 TD +[(ar)18(gus 3.0.8)-15156.5(10 No)15(v)15(ember 2000)-19054.5(4)]TJ ET endstream endobj -19 0 obj +22 0 obj << /ProcSet [/PDF /Text ] /Font << @@ -1662,14 +1818,14 @@ /TT5 8 0 R /TT6 9 0 R /TT8 10 0 R -/TT9 11 0 R +/TT9 16 0 R >> /ExtGState << -/GS1 12 0 R +/GS1 11 0 R >> >> endobj -12 0 obj +11 0 obj << /Type /ExtGState /SA false @@ -1683,7 +1839,7 @@ /TR2 /Default >> endobj -20 0 obj +23 0 obj << /Type /FontDescriptor /Ascent 750 @@ -1691,128 +1847,130 @@ /Descent -250 /Flags 262150 /FontBBox [-168 -218 1000 935] -/FontName /FLKOJJ+Times-Bold +/FontName /ELCOLO+Times-Bold /ItalicAngle 0 /StemV 133 /XHeight 461 /StemH 139 -/FontFile2 21 0 R +/FontFile2 24 0 R >> endobj -21 0 obj +24 0 obj << /Filter /FlateDecode -/Length 28762 +/Length 28759 /Length1 232076 >> stream -H‰¼W pTåþÎ}$$<ŒFeIxÜå@²Kx„Gév#iÐ! °­dɃ%$$„ˆS(­F낆:Ÿ=ª,ܲGÙ£7Éaü_=†žä>dº €}”|Âáöû²^oûû˜:”UùÌO.ªð0†âM¨8?ÃväKˆú½H/-`–ŒCHÂèʨeø§ÌD%šñV(©¨A€Þ~ g¼ž˜ŽVx1×nG!!ŽUØB[1VÙoÚï3ÛPf«Å#X-½¹oÆ.—j»}ùØŠ£2Þv¦êa¦‰Z6«‹ ¾‰»¹³PΈÏcI£ýˆÝÊ“™oF°®Íx…\’áÒ¨æ«OÓ’Oz G¤›äÛÓì—íýÌ3yŒÁJÒlÀ ؉6´KŽK³=Ï®·w"‹¹bø~€õx¿Å¿%[üÊ0¥VÙÆÚz"‡äÄžÁj~Âzö☤J™!ó¥QvÈ%¢¾b×Ù¡0Ö0fÜŠW±ûqgè™*=%_j¤UiVÓÕuêF}‘þ’mÚ§YßDLÅB"ô¶ÑÿmÇ \ÀEöà‘ é#C$WFH‘”6Ë6EUš”ÍJ³Ò¦vRŸQ÷i]ÚOرÿETú#›`Ä B˜ÌžëIë‰Õ«x³ÚOÄŽà]Ò)üC4I—Û™)“y¼ÒOî»HEì+,õò<é=9£°)EQv¨…êZ Z“ž«7Ú}í\{éìA%ò݉Ò܉ñîäî'š1Ìcæ‡Ð„G‰ë*<Ë)îÀ>Vð>Æ9|ŠKø¯¨¢K2+H#B¦ äT†ÈHÒ( H!+)’ÉœÓt™ÉŠJd–”ËrY+?”¤×d´ÊrFÎÉ%·J]éÌ©*ÅÊ4e©²ž´]9¬PÏi½µl- ÓNêú(½DBßš”’üë˶7·ï°5{²½ÊÞh¶Ï"·`8îá[0›=Ô²‡,Çj¬#­'=K,Γü -ÏÑnθ•t€tïÕ÷8½“¤¿óŒµ±Ç‹ì/•'È™h†;Ñ</Av7–Jž:Y,KI«äiy–È¿ [x²v°Ç«é yŸôW9Í®?•KìûV%‡4Ùíù>å»ÊrR“ò$OH³²tA½M¦NWïSÕ êõêõ,çX©ÅµÚkÚ!z}’^¦7êê?Ö·éõÃú™¤~IÍÉ«“×%ŸáTfp6y×]?é«7è nz‘=|2½ãžk#ŸmÏç]H[û«öŸÕÞ¬ìû¼¹„Ž»V_<'Ö1°¸¼!æ¬ü jp µu oíùÑêJ×ÛñW®ôèHýÜ%aÈJ(¢ôÏêgöõ}z÷ê™™ÑÃÓýöÛnM¿åæ´›ºuíÒ95¥Sr’®©ŠÀ2 J «©¥õ7'Mò;²¥"z•¢Ô2¨*¸ÖÇ2J]7ãZÏ=+¯ó $<W<%͇q~Ÿ2 ëAÓh‘’â0÷͈aµ¹û»Ýýwß•{¯—!O,hXRj„¬‚E±x¨4Èp» Õïã0@g'°…‰Ñ¥1Ç#de˜ÁÕà º65+-·¦‡CÁL¯7â÷Y2±ÌœmÁÌ·nÊîxÜyΠëÔ0sû}sú±¢K¹Y¾¢%€Ù¥Î.zØR£K)urÜœmu7ƒV÷Oy>?Û…V^e´”¬‚hE¼€Ð¬˜”K)º’RÑ4ƒa•¦HØ’¦H¢·öDfÈÑ”VVŠ™oÆâU¥ÄSÃÛ3!3ŒX˜ÞÞ#ÐÃü¾]žec½e—‚‚³Žõz–%Ö¿=”пµ»³ë·÷}®ES¯à"N&³eZF™›Äd­£¯ŠÑˆ—¦?a—s­”‰¥ñ´1|ÊÒ³ÒL#~”Ùöᵚh‡&)+í<œ­3Î+'‚öŽ} øŠZ2%ü+‘U‘±›Zìµ )Pg=@ó@ç8Ì òi -wø¨äånÏ(`ÕÎÜŒ¸/,FŒײܕ†Šx$‡íL Ïå÷½a¯ˆd^ÙVD"c'Û‰£¹qâF¨êˆPåF`€ËtòùŠQÿ)áâ°µ<˜i‚BÂó³{JØÚM#zù¯TÊué\OG̓Y³79‰(Óƒ!"ñxB2½Öîx<3î¼ ¹Ep½"Сh€G¥E–OqMËMo¦£0½¦—eE‚L5„Çë³ñ¶`è—#<ìj„‡³Úa.¹_Â#ná‘7„ð¨/Fx4kå œ÷õ!<æ„Ç~9Âã®FøNV;ÎExüW„ð7náÀ !<á‹ÎgÍ„'~}¯B8ñK˜„vnºU·nÜmìçÿÅtü7²))ûvü|ºü"6i $Mƒ}‘ÿöí\JzUJ^¦írõµÚj ¥ÿ&Ê%îšgŸ Þ±=L6É}ÈYd?yt‡.—<ÔÉáæY ͉ã®@Mò4ë­ÈÒgÀ˵ˆÜÓÙk'àeEN­j/Ê@2÷¹´e%?NŸÿ‘^=ð]UUüüþÿ~cÎè€Í1 ±1ê5'¢!¥N$L¤\ 4*+þ„D&R* #P)ƒ,°ÿZ45F™ Kšeš<¿ç¼ûîÞ~ï÷ÞÃÚ>ß÷=ïÞóÎ=÷Üsï=¿ýÒ_­ôªù=ÜH×¢¿œeæQ¬ä|´_‰ñ—Ãçuàêðâ3æn´ŠTZI—ËÁ%ÐÉ“¹5R!âP½å–ŒØðX…2ÏFÌ·‘Fãö³<ØÙ'>€sXfÛ¡”ì¡àÒð ¬Ä~ñ¯Xæmοs.fÜ;ðÏñ/i´- í[*•oÚÇ)¡á4|‡Z·ÁCT®¥É<¯È»TÄ@9f ƒ–p=åã=Oü܆¹Õc-ÑôÁ÷Âk¦Pe£/?º¶ëiD°Ìx#ˆª-ØL£ÅÔ„ùÕ(ŸæÀîfɇzµ®ñžØ:E©ùÅX›8G­Xñ¸h+ŒïÓß‚^5P [«$Çà|˜¯Ö ?Pwnc¤ƒ.D7sËMƒíÛå|[ØrÑd€óÏöAPKwZëeAåJ °8œR~ñ¨5Û(‹u"uˆKÒ8Æy »Ã9Gy}9G` e:aÿyœç’kæÞ©F<À¨(Ñ- -=9§yßpîʾ1m󞸞m[ÌyÎsä8§á.º²'Ÿ•½Çy\âÇÖø©¬dÞ/…&ãw@_ÊD 6²¯àÝ&S·X_5gì{Þ{¼÷ù;Þÿc;‡P\©ö\£“Õ˜œ'CR™uxÿvec;Ã:s3‡—˜Œ÷L·1ÝØ~.IŽªu·8u<èôásÊÚƒÎÜâ6Î/ikANßoæò ¿¿ÔþÑyaÅNÇTå.Ï]â„óï|¶ržç² Œ>IEÑM47T6÷@oœÅƒÀE°¹ûð-çq5Ð;2‘ú¢¯ V@s¢Ð- \ìÿy°;ã4I ㎅_SÑÞïõð{¸m½ÑVîŒEWýZðp68 cMføȃùVóžæXrîSC`;UÚ(É9Ž¾ì` bTC+:ãÚ%Ž- -§l±¶â¿Q¾E?ìMeû±VÊáó~plË»©òàØÈ4.z%Iªˆ w·ÁG$æYuø¦2§œh+Õâ÷K2rvvQ’÷JfØLFvÒ¬ØË2'“Ϧ"Ä¿(<{ >„š¨ë|8)ñىح§Á¬bì‰ÕcÝ_¡ p)8‰¹¬@<'F˜6ØW^#èW°O|Gˆ¯hã¹!¾Ã¡—Í÷;× ¡7¡kŽ•Ã}Ñ”ü];kL[¸[2"°ß(zÃUTB¿ ßóQ9C£åÞœ‚¾qÈ/è0ÂO#21ÆI`=ò4 mõÔ—ïŒP‡±CÝ;;øî –+á{÷JÜ-õ”Ëzrÿ.¥”ò_B3bÇiï 9ãGRaböj›ª%À™*̚ݵ­ÛKæÙcÕ.\›ðÞ -ßI-ÀG[Fg[8m9¬oÉ\[¨³ð9ÎáŒù”—Oy83ÊýQûÌÅ] -ßú#‡VÁÖ3æ]%µ:CíçÚyžK]ξßùŽ¶ßåéÎÏŒûà×;¦o¬›jÏfÇú®¸Ëx÷EÚsÙ6óÄÍs´Ïu›ƒm÷–ºç¼ù<ï5¾¸.´ÅÅv—¹3|îŽuÙ Öç[<»p×»Íؗ»9·8?RÙo}ýâ«k ÅéïCê§X×.\œî¾´q¦âȇº7;ëi}ú±UÛ8í}k»w¹v{Ý6žäY4\ù´!^Ûè¤GÝ”žSó gWx"x1ÝÞ’Ú¯j ®ëÖ¡øt OºúEÅ)ߪy»°3ŸÍ³g2ßO|N›õ´ÜAÂÖÞµtµî2>Óù.ãï5ããóœï$9›­û"…ù.ã3wXŸåöÆ8¹È‹î|O3c-·jzþÍi®ìY³f©“÷5ê~>€{ù.‰ÉQÄd€Š%ï[ó.fÍÁº×ô\pË;ÿN4Q*ù¢|Õs³ÞoV¶oäšÀ8E£Û“4!cì5ïîð2$5ìG½Û}Àt©IÍ -í]dôsmá’K™¹bÂÙp«:[^s©mãö½lß[ÏóÍÛ´yiñQÖçâÇëãÇVþZëȹfÅÙZ«VåÚTêR®AQs‚çñ£jÕ®9¥ÎD©êKþ ¶žYÕ•Y\;JmêèLÊD-’=h4G_YÀL£=z·ÑÎc¤Cl55˜0šíš×ñ&j /âm@“F;ƒç¢p] -¤=|†‘‘Fs¤ãÑh˜sw ú6|ŽqïÅX6¨x¹"Ç7“ ´sL½€:·!v9Ðx0Vë€ -£=6 þ©¸[q´â¢ç×és–µ†ç³Žñc”™¨5šU -7í‰Ñ2®çºt+¦ÁCFs·¥@±F;ÃoÞ‰EÔx•20WFù”ØÃø­óN›ƒÈyÁ$ãltšqõai:c‹¨ŠŸf"Q‡º³q8l5AC‹xŸ0ÂÇ©Jà\Û:y—=Æ¿íÎ` b‘nž± T=Šþ!àƒðã05Yç‹­fÝ+u:¤6Vg€ß:úAÍÕšï œUت¸MAË~y¾Ðk÷?ÂZ'à›ìWkýþoÄ9´P%ïyFʬUx8%åŸ_ò¼R”"ÔK8(­!üçÑBZГøÏ Ì¦§ˆ üIÀzÆó”¯Ó÷ðÔßÆ(tu¶0#×lë¹æ÷Ï©/‚Ò€GfûûÐáö°Ò·ÚßÓcËߘæKIû“äg@W ļJÚˆ®‰S<0‡f‡¸xATt¡Èþÿa›|•V+[qwêak½è™VÿbÅ—¤é‹RÂÕ›LyvÓRê_HÖ3+<ßæúaµ;Ç1çœ~Æö+–Ù*ÞÚ=Tl.V艕s×ÞÔÇד\-åQ__í|Åò¼ÔG»PKý¨È×vGK±‡öG´4€ -_Fƒ\µ;Z>êa{ˆ£¥ÄC»TKC©LIÃ\µ‡;ZÊ=lÐÒåt…p’®tÕéh©ð°ý1GK¥‡öUZªÂéhJ£\µ«×Ès´‡]þ¿Fñu4†®¥‹<ÖUûzÅãäù ÛŸÔÒ t£’nrÕ®ÕÒÍ4^I·¸j×)ž ω>žLr´LöоUKSèSŸ¦Û\µ§*ž&ÏéÀí¶ë-3<´g:Z<´ïÐÒ4KIw¹jÏv´Ìñ°}·–æÒg„ï¡Ïºj7:Z>ça{ž£e¾‡ö½ZZ@ •ôyWí&Å‹äù»üÿEÅ_¦/Ñ}ô‘¿êª½Xñy.õ±½LK_£åJºßU{…–¾N+•ô WíSžúx²Ê&?䣠o)^-χm=ßN£½FžßÑïßõ´ýˆ–ÖÒ÷|=Y§¥Gé1_íÇmòz_í Š7Êó [OsíïkiýÀ×öf-mAåê§ý”M~ÚW{«âÉó[ÏÓhÿXžÛôûvOÛ?ÑÒOéY_Ovhi'=ç«ý3›üs_í]ŠŸ—ç/l=»Óh·hiíõµý‚–öÑ~_í_:ZxhÔÒ¯è×Â/Ò!WíÊ#Ï#ÀQÛÇ-Ç=´O8Z~ë¡Ýª¥ßÑï•ôWí?:Z^ò°ý²–þD¯¿F¯ºjÿÙÑrÒÃv›£å”‡ö_´ôWz]IsÕ~Cñßåù¦‡]þ?­øø…×No‰|ÖUûŸŠ;äù¶íiéßôŽ’þãªý®–Þ£ÿ*éý¯(+Š+Z¯~ÿßì»0ìȆ%€ˆ2ȾÈ¢AÙEd@@¶a1‚bÄ„1$,‚€’x *’£&DÔ`ôLÈr²&·o×<§Ï§ûÿ3ï¾÷n¿ªÿ§º»êÝØê+ÎúVÄ$ÿù:²’Êñ«Eœ:•41“£Ú'–“ -ô¥¼TJ¨®¬Q©š<3jªiT]j䬮é|-â59ªkkTGò’kQS7‹IТŠQ£4–F±ÕYQ®M˜»i“ E£´§¥elu~¯EZkÔF¨¥dëÂÒšöYL‡„¹¯Ëbâõ¢ˆ*Fé$NʱէJ”®ñóòºSŒÒ]ºIPãIØj§û¤±wŽ¹ûhÔWœÂ“þ±Õ4(·¸(VŠÓ€B (94  Íb†%T×h„PÊH¹=¶Ú©C¡(AIÐ’¥%AÊ]YÌØ„êq— .š[=)‹™œ0·ªI™"ÔŠrŸdëÂÒš©YÌ´„¹§g1ñzQD£Ì§eVlu¡ógÇÏËëN1Ê<™#s…OæÇV;Ý'Ô}²0ÇÜ‹4Z,NáÉ’Øê"–Ê2Åj@qP¨%‡”•eâUɵ¨p*Q¨eM™+WÑB•(ªe]âÜë5Ú “*Y£*QŠåjª/Z½¥L¼5gõ6ç©å©2Wž¼JõvvÈÓÉ3£ævʳ9«Ë¨Dy.gµÓ…B­(?(såù«Tï&ªV”&Îý‚F{äŤJÖ¨J”ËÕT_´z_™xÎê—œ§R”ƒe®¸Jõ!Ë‘ä™Qó²FGåXÎê,•(ǪUÊIy•þ”¼[íT¢P Êë°%(YP4 œÎbÞL¨~K£·åŒ‹Þ‰­>›Åü"anU“ò®P+ʯ%[–Ö¼ŸÅ|0÷‡YL¼^QÅ(çÄéAù(¶ú¼óT‰òIü¼¼î£|&¿— B'ŸÇV;Ý'Ô}r1ÇÜÔè’8…'Š­þ³F—å/.ŠÕ€â4 PJ’tŸžxEÖ'¶%Þ@¼™8Œx/ñabñq¢ çÙù5¦Z^M=2)Æ>±±*±VX©óx3Ê”sè“È°¾\ˆZSÉayeª™ - ˳²"±±rÈhe­`´‹óLeD°ŠòMLU†U8O5bubÑÊ榺Æù¦†Æm#XSùk‘¨ÉÙ®!Ö&Ö!æ…¼Žêä°¶2]"XGù‚æ)ßÓa]eúšz ëò»ëój=ÆMˆ-ÂJa i¨ñÓHãál¬üH¬kðiÌy®%6%6 ­mšj<Ö4Óxb›+?Åa Í9Û7ˆ-‰ùÄV!¯£¦:l©ÌŒæ+_ÁVÊÏqØZ™ù¦ ÃÖü®oÛÛ’oøCxUG-rØN™"‡í•Y<;ø´çØëˆÃXkV9ì¨Ì‡×+³>xšð¹žco$v&Þ@¾ã®áUUì°³2ÛvQf»éÊ° ÇÞDìÆZSú×M™] ”Ùmº3,àØÄžÄ^Ä›yµ;ã>Äa¥Î°'Üöï5½4>ÁÞÊ6}öæ<}‰ýˆýCF+™~Ÿ4ý5þi(ÿ†Ã$p¶[ˆƒˆƒ‰CB^G½åp2g#8Xù_Epˆò8¼U™s‡’¸•ß8œ8ŒÌPÆ·Gï$N+užŽPæ‚ÃÛHŒ`ýí!jÍG*sÉŒb8’•ß"ÞA2ZyÙÜ¡ñß±7”ÆÿŠàå¿2w2Ãyî"Ž%Ž ™ÒJ v—ÒØ3ã4.ÁñÊWr8ÄxÎ6‘8‰8™xwÈë¨j')S+‚“•Ï‹àÝÊ7p8E™&æ†Sø]÷§§ïåÕ{ßO, +u†æÁþçâ|3M㶜®|s?Ãéœgq&ñÑÊNf¦Æ]ÌDp–ò=’˜ÅÙ$Î&>Dœò:ª¯ÃÙÊ ŒàCʉàå‡;œ«ÌH3á\~×|ââÃäç1^^ÕQ£.Pf¬ÃG”™h2|„c‡±ÖLq¸X™©Uf†YÂðQŽ]J\F$˜%tËë:ªÐá2eæ8|L™ù8a‚ÏcûmâŠ0ÖšEW(Säp¥2˃SŸ•ûâjââ㼺ŠñÄMa¥Î°Ê¬ÖxMp‚¹x}×*_lž`¸–ó¬#®'n­Ü†Ó¯4Þn6h¼3‚•ßåp‰œ­˜¸™¸…¸5äuÔn‡›•ÙÁ-ÊïàVå”b’+›`½`O”\Y¿ Ö¶ùRø°Á°§¯€ÿll'òÕð½a»a£¯ƒï{6æD8÷ ØPØ8ä[á_‚íƒBþ?ø=JJêÁ¿~¢¤Dà#oyþì$ì òò¸ÖÖ Ö ù,øΰµ°VÈçÀÀ6ÀÚ!_¿¶ VŒü<ü±Á<ÿÁªgmЭã{KJça l‚],PÁ©èŠ`—Ê+2<ÿÊ»1AG;>Ø -Mø–„ö…Mø„¿lÂ7g#ÕÎqøà=]âž¦× O7ó)ìoEÁ>iÌ? ÷óò ƒÃï vó%rô]ØCŒ`眀xÞŒà;]€A~g»œ„/2JÊ¢‹µè‘-z`‹ÿÅ¢»”÷áó‘W€GO(¿…G/i¡JlÇ †¡‡´Ð™|EgqrXì¯Ð©Æ¢ÿ²èÏmOº-‹>ÊB?X¬)T¤±èr,z|‹5•£+±Mà‡1 = Îp‹5·8׃ßf±ÛñwâÄæoÃùkqBÚŠ.ÿ -1N: íÇߊ¥±P|ZÇ¢Ÿ´8i,îŸÅ¾j·ÃãÞÙ³0ì‰o Åyaß ä%r¼÷ÏbW¶ØÓ,Þ,¬XdRPlöKOtoö<ò`=þŠý—½€ë‘B¯”B?B¿•Â>šÚ;Û‹÷6u -vöäX7gmê4|}ä˜Ûƒ*I‡Janú!…~˃ÊHaÝ<ôû)t[ÔE -ÿ{êMÄèÈSBפÞAŽŽ;õ)r)üo)ÜßÔ£Ãðp¿¼›`Xoÿ»‡Þ×{6 9þwÝ«÷}ž'ëàáþy¸?z%ç‹÷#vïäÃãÙJã>{û‘ã¹ð~†¼ü!äC§¥ñü¤¡õÒxnÓØõÓØñÒØ÷Óx?ÒØÒØ‹Ó«uñeØäGà±×¦ñü¤ŸEþŠŒyù«ðxÒÿ6&ƒç!e•ÆšdÐádª ÇZe°&ô.™È¡n2X“ Ö!S9TJ½CFÏCæIx¼‹™÷`è2OÃã÷fpÿ38‹3X§Ìï`—`犌wßdzà£7õ{#Gá£Ëô±^>zo§žÿ" Ï‘¿9ÖÓߛۇï¾gÁÇIìDŽ-À?Ä0¼¿>¾ÛÇúú¸O>Þ_g™õõqŸüSȱ6þÏaÐþÈq*úxv|œ›þÛÈq–ù¸ÿœ÷—Èqùï1ì=ä81|ìE>ÖÜÿ òïÂbÂyñ|ûÏÀãT÷?‡»§³ûêÿŸýª€’â¢ÕÍ4·‡»»»î‡»»»»»»;B B š  š  š Q➺¹º~»7{7ÝsyÙÇ6]¿äoý«Ù¥gvÆx=Ì¿ ïAk0Þ‚ˆßÙ üü<|xð\ ÂÏ΃ÏÊqbŒñ;ìÁçO0ÆÉ1ÆÏ/èÆñ1Nˆ×ƒŸŸŸÂ<øYxðšyð óôÀ¯‡¯™ÿÿzðYЃÚü¿á¹û2ÆOñ8Æïv0žÓÁø‹2?‹`<;ƒñL -.q+:ÏÃ_á—ž!½ØÄðÆñyÿÿõÅM—¢„ Aà̈ß7š%™ôR@à̇÷›€™Ÿ h– ”ÏD˜™0 δY)ÊA˜“0ì‰/Pfħ7š%Ÿô -@àÌWg|¢YŠS¾¤Ì”’^ª•“™òÒ«HµÊ2SEzÕ¨VCfB¥W‹juëÖƒÀ¹ºõ)jDؘ»ÌŒø¬E³´žïóÖÿõ>>³Ì,í!b–NÒë"½nÒë!½^ôþ>„} ûAà\•þ "Lˆ¿âfÆ¡1Ëé‚À™o Î,ã!b–I”ŸB8•pδÓ)šE8›pÎŒs!b–Ò[3ßœY–CÄ,«(¿FfÖJo=Õ6ÈÌFém¢Úf™Ù"½­TÛ&3Û¥·ƒj; wî†À¹º{(ÚK¸p?ÎŒ b–CÒ;3ß1œYŽCÄ,§D'ÑYtÝD/Ñ[ôýŒãÆIã4ÙÆ)ã Ùãˆ'Ñó®œÆ}Ù¸j\'{ŸfÜ {ñ*zÞ•ëÆ 1P CÄ01\ŒcÄX1^L“ÅT1MÌ3Å1OÌ Å"ã¾ñÐxLöñÈxBö>âCô¼+'¢€(( -‹Q\”¥Diã qØ8JöqÄ8Fö âaô¼+GqŸ5ÎÉž3.—ÈžE<žwå¢qI”DEQYTÕE¨¨)j‹:¢¾h(‰&¢©h!Z‰Ö¢­hgÜ4nwÉÞ2î÷ÈÞD¼žwå®qàÎLáŸSØ'Tw:€ P€&!ø³‘ô. pó x [¬Å` +î$¸ÃV2Ó&7m -Ó¦†4hÓR=òJ‡;=î g4m&Óf6mÈŠ6[ï¹^.ß‚@à·3.ăøb.)îÄ*šwe'̃;/î|^µüÒ+@X -‘Wwî"^ü¢Ò+FXÜbÈib°ŸZ.Óæþ®ÞËõr½\ºVÓ¦Œôôc}ÅÂmàæéöòà¹Çë K„çW<Ç’É÷$ÇûkJ<ÓÂî¯iñ>šï¡ñΙ9†ÕÂ&ÌBófÅûtvy²¹µ|OÇ‚vjçÅ;¿<Ÿu.ï“ÞýBXï"Åð¾QÂUµ’–L)ÕJ[2e\T++½r.ªD¬ò¦­à“«èšZ¥h«•5«U‘^U?ÕjšÕªK¯†æÎþV(aM¨µ¡Ô‡:‘u5ª50mCŠšâneµ‰æÙš6‡š;û[-£­¶Ò¬ÖÚO®k³µ5m;×úû®ö„bD­£%ÓÉ´]Që"½®10[7Ÿ¨»Ëj=|¢^¸{º¨ÖÛ’éã¢Z_ÇÌ~Ôú›v €0FÀH‚ñPfaŽ‚áÊj£3Çh˜m,á8`"LÒÐ3ê5YzS§švš…9]ƒÚ ™0Ë–;[YmŽ%3Wà Q­y–Ì|ÕX2 ]T[dÚŘK4¨-uÌ\¦Am9á -X «`5¬ÑÐ3êµÖ'Z窃õ>Ñܯ¸¨¶Ñ’yÕEµM~³¯¹¤¶Yz[p¿Aþë^Œ­Õ¶ùDÛ]š)b½é7»Ã%µ·üfwº¤¶Ë1s·µ=„oÃ;°À»°ÏŒ÷[˜5¨rÌ<¬AíˆôŽÚ0iP{ðýHùãz[× Â“pŠ¼Ó‘g4ª}à˜ù¡µ³Ž™ç4¨'¼á|kèõºüÜ+ÊjWM{÷5Üwp߀OàS¸ ·,ÜÛÊjw ïÁgð9܇Ê£[ ¹ª±>/àKø -¾vUíKæ[ÕžZ2ß¹¨ö½ô~pQ%bý(½Ÿb@ígÓþâ“ûÕ5µß¢­þ®Yíéýé§ú—fµ¿¥÷æÎþÖ³p ûÇ8,6‹åË`†>5dZEñp³8²Wïl,>a–Pog¿j‰¢­&Ö¬–ÄO.©k³%3mr·úGRKA˜2FÔRY2©q§ai]QK'½ô10[éeŒµL>Qf—Õ²øDÙpguQ-»%“ÃEµœŽ™¹4¨å6m>–‡åeùY+ -`\²0‹²ÂÊjÅ3‹k˜­aIVŠ•feXYõžÑ¨•“^y -¦­haVÒ V™° -«jË­¦¬VÝ’©¡>C”j¡–LMÕjY2µ]T«cÚº˜õ4¨ÕwÌl A­!a#Ö˜5aMY3õžÑ¨5÷‰Z¸©…ý[úD­q·rQ­%ÓÖEµv~³í]Rë ½Ž¸»ßÉ‹ÑY£ZWŸ¨›;3ÉþÝýf{¸¤ÖÓo¶—Kj½3ûhPëKØõgØ`6„ 4ãAæP jÃ3‡kP!½‘6ÌQÔFŽ‰”«ÞÛÚ8Âñly#1&iT›ì˜9EƒÚTÇÌiÔ¦Î`3Ù,6›ÍQïÚ\Âyl¾RŸl¡Ö"Kf1[òjKÙ2´ËmX+W²UJ³­fk°Ö®cëUÔ̯° 6Œ„¯²MÊj¯±Í6Œ-ªÔçu¶Õë Âml»ÝhÕÞÔÔg{Ëk'á.¶;fÛCø6{G¹×^¶Ï†±_Ó_}€½‹ö  ëáavDYñ(;fÃxOÓlï³ãX'O²SJj§Ù¬,™ÙÙP;ÇÎ;`] ¼È.)ÍöûØë2ávUEÍìqÍ–qðûDYíS[ÆMÂ[춪šƒ¿çŽ¦>wÙ=¬Ï?g÷c`¶„Ù#¥>Ù¬/,™/ÙW/¤÷µÎ7„ß²§J³}ǾwÀúðGö“ŠšÙãg[Æ/„¿²ß”Õ~gØ0þTÕ >±¿ÑþcÃzŽ¸²"ç<– ÃÐ3<¶V5ê汩ÆáqÉ‹Çã¿€Nž'â‰mXI´Î–Ô¦žŒ09O¡¤“’§rÀJM˜†§URKÇÓ;`e ÌÈ3©¨™=2ó,6Œ¬„Ùxveµ<§ #—ª†O·Ü6õ<„yy>%ü¼/hË*DX˜‡èœ2 -µ"šúåÅ°Š–à%c`¶RZ»•¶©—!,ËË)é”çxE^ɆUYëlUlêU «ñêÊZ5x¨ £&a-^[Y­¯k觪áÓ­¾M½aCÞHI§1o›ڲš6ç-”ÔZòVX­-™6¼-ÚvÏ©ÖžwpÀêH؉wVš­ ïê€Õ°;ï¡¢föèiËèEØ›÷QVëkËèGØŸPVhËD8˜QUsð÷ ÕÔgî€5‚p$³&ÃÇ*õÇÇ;`M°d&òIh'?§Ú>Õkát>Ci¶™|–ÖlÂ9|®ŠšÙcž-c>á¾PYm‘-c1á¾TYm™-c¹ª†O·6õ•„«øj%5|-_Çÿe¿\€ãªÊ8~Øͦ°IÓ&mé&}$iÓ”Ýl6›l’RZú†¥X(”ò¨TÞïG)o)Ky¶¼Ê«¼K[ -…> E”EqdT•EADED‡AEEüÝÿ½ûM3ÞPf*œûÍÜßùïwÎ={î¹ç|÷;÷n§Õêÿê³­ÙNýÚ ¼/¶n‡ÿëþØÛi±>(Œ=´Ãÿ¶!¶q;-6íèôèmóvêÊGb[vè¶Æ}åcÛ6ÅC¼è±B¬‹CÅ:±YL‹9qœ8Uœ!î' (.ŠÇ‰§‹‹ÅóÄ‹Ä¢x™x•xx‹x›¸J\'®7‹1ÿYVã’1µ/b¹ØOÜYÜÅoc}Æ]Âty¯,·6»¸~¦+ÝΦPSÒ5“æâ*$“ú÷JŸV›rýMûD¬Róþêg€8P¬k|¿õ92à@ó4ºjÓMÞx=Ö 2qƒ%©·!>­¶Õíj:ï†Jîª6)ŸV[pµ¦»]d­Ú ‡‹#Ä‘b½Ø 6Š£ÄÑb“¯õ9Þ 7=±WŽ°6“C8Òj§õ`½ù÷r ¦÷aþJz–eú€€£Ís ³[Ò÷Ê1ÖæP×,9FÏ8Ö§Õîv3½À¥%wS›ŒØ"f}µ\èZL㲦ç–ôI.'Ùª{ÛļØ.vˆ±Sìò[Z§² -JúŒ€íæY°Ã<ç„°`µç»NÓ¹.ÓKze·µ¹Ô“ìÖwÇ‹{ˆĉâžâ$q²ßÞú¹¼WŽ·6W¹=L/ÍuÞz ô -·§é›Ý$Ó+½Uè;N1ÏÝnªävšO«½×M7½¶cÛp[ÿ 5Ÿ®~ö÷gŠûø~ëóþ€{›çA7ÓôFvFI?ìö5½Õí'¹¯z›%îïkkó˜Ûßôãn¶é'¼]…ÍVû/ø´Ú'ÝÓO±Û<›£6‰sŃÅCÄyâ¡â|ñ0ñpñÿ^ëó»n®éïõʃ­Í3!<Äj؃óÌÿû¾¤_póM¿è3ýRÀÃÍóŠ;Âô¯zå‘Öæ5b†gGê¿èÓjçŽ2ý&1ó£ÔæKâÑâ1¾ÇZ¾åŽ6ýÑ¥¤ßuÇš~Ï'y¬î=^­Í‰Wšçw›äJµ¼]¼C¼S¼K¼Û¯µ»N÷¾ç>+„wZíâÞeµç‘”ô…½òksqW©òð^qµ¸F\ëû­‡bW[íe=¸ÆüWöàZó/ëÁûÌmÀurܧ1ÜïÓÚÜðóÜÂõª|@÷>(>$n7ú~ëáÖ>dµ·÷àóßՃͿª7™Û,¹Iÿþ°øˆ¸EÜ*>ê×Ú]ëÜ#¦×‡p‹ÕnáV«Ýì5½¥wNþè_ÞÞx©èbÞÉå—\/£½3ȯ‹s+;“’º8§±2¾5qêâœWÊø‚Ä[½ßh"œ{M¤s‰Cópññ^šõ'N,-ºòg)Y' ¢fù)—x¿ÑÏS^´ù)%$A._þsJÆ™ •ÿŒòÖ@¿LIüL¬ 4o-AV[Îsĉ3‰Õ&ª$Xãå®4k )Eã3Žþ˜—¦Qhò—F楩 M¶ÒD>ÖÌØƲž›[3™ÝXÆÙLŽÕ\Dóíhš‚î@¯FsªlâD8–XÝLn&/H¿íÜnôŸÎ ™4ë2MÞ”fÒìÙ4_Â4{6ý®sÞuf"e¿ßGÓw†ow&hæ0ÓMv“áäa<Þy†9ÏCZj(™£Ìóh^ ÏÓBžÒµ0î–×ÐOS²ZþZtYæ-Ë2Ë;Ê3²¬ìB4û4û5.Î1YîË>á\+óœå]·ò­ø[™ŸÖ“¹ÎGóì­ÏqÑŽ±ç˜Óë9ÇÿæØ_¹‰hâaŽ\.·Í\æˆ?9ÖdŽ;ÇW$Ç>Íýȹ¶¸*º6öQñ§uÒÆ:iû× è÷)y†¶ ÿæ\ž÷gnóì‰<ùM~r ‰uyö]žý‘ç}ç™çºˆ{]ó)Y]ìå.Ö~7ç¯îáE×M,êft³þ»ùÎtóê^Œæý:æÜÅÜçÅâŸõ"‹,²OÅÊL%\—"‹,²¾`^\*—ª+ÅþA­§ª¤ŠÕ®»¶ e®ïZâ³@d‘Eö©˜·jœ‘jå&Gˆ#Åz±AlG‰£]”‹EYd}Á¼<ª)Ð;‰ŸŸ¸Yd‘ý?š—q¤])"ý§y1ªU*/¶‹Ÿö°"‹,²È>¡yÑ« Õå¢3_d‘EÖÌ;óuKM'Š{Š“ÄÉâqª8í5¸È"‹,²íš—OMñíåJçÆm³-/Ÿ™)5KÜßEYd‘EÖÌËÈfK䢸Yd‘õóâÒ\©ù.ŠK‘EY_°³_VUGtæÞ¹t©ËR„¥7AŠ E)ÒËÒûR–ÎÂÒÛKYº»t.•&AHPˆ‘Ä(&j &X0‰5b™wÿãñöó]@òÿÝÿóf8sÏwßÛ™Ë{3÷[u©»f}´í«m?mãì5Vµê¯Ù@mÁõ -æ® Ô8ïN”é<ñÄ“ HF<ø*ÒHíIÐv´¶c´MÔv¬¶ã´¯ím'j; ¼s™'žx’Ä:MM¶9j>uÉO<‰D±NIp½"Ý,VJÖl®¶ó´M z\žxâ‰'·'Võš¯ÙBð~óyâ‰'™A¬ß|‹4KÕ6MÛeÚ.×v…¶+µ]¥íêPç‰'žxrK±ÎSkøÖÁõßîÓ–užY¯Ùfm·€w"óÄO2ƒX'²­p½nevºí„ðŠw/„K¼‰¯_YùìƒÈÊg?øò9`‡ìñDVžG!²ò9¾|NA¸ä嫧!¼â}Â%ÞŒÄzoÞ„HÉä<ø2yÛßpÉÌ÷N]€ðŠ÷}—x3ë͹‘’‰¯ |‘•Ïeðåó‰ö|¦íU—}_Ëç^ñ~áoFrãú"+ŸkAÇdzñ½U…8 + f±ÇlÖÌ¡mN—,3çÿsAdå“Ç"˜Â%«[½‹ ¬2Áh¯x‹C¸Ä›‘ðû1)™”Hɤ<ø:H%{¬á’™ïë¨ -áo —x3ëÍ© ‘’I]ˆ”LXjÛ"$+ð›CdåÓÌ"ØÂ%«[[ɶ²µl/;RUBv‘d7Ùƒ²‰ybŽX#;Êâ 8(ûË~r œ&“d<å'Åkâ¬8+ãU)ñ¸,.SAÊ/GÉr´L¤¼âšØ!~ h RˆT±Gl©ì/JQÖ:Š¶˜ÌÅš_FÉ‚2Šb¨„,OeUYYQ$‹$1M̤òTÚòSY‹©ÙN¶‘d,eU%eWÙYv—=)»HsÅZ¾+{ŠCâ ãä ªLUä`Ê-N‰Óâœ8'«ÒªŒøP\W¨ r¤#ÇR>ñ½Ø)~¤"¥ib¯Ø.ÒØ_Œ -[먈ÅdnÖ²°,$ S)*)+P9UNV³Å 1]Ì¢ -TÆòS9‹©¾ªŸŠSÕ`5D U#¨ÅRg:N©u¡ÌNP_Š£~ÔŸFR¡·h¦D:Ïì¼JP£U¢¯&©ÉjªJ¢é4ƒfQͤdZDKh1-U³T²š£RÔBµH-Q©´†ÖÒ:ÚN;i7]¤´‹öÐ%f—ècúTUR•UUMÕP5U-U‡ZP+jC‡¨%µ¦¶t˜®Z«xn±îÔ“zP/ú’¾¦A4˜†ÒŠ§!4Œ^§oµ÷ŒÅT=U_=¢©&ª©j®Z*¤ºŠh4€GàQh 1<M )4ƒæ¼âqh-¡´†6ÐÚAût÷g¤n{ezíÈè3\Óºþ§{\ÍÊohvÈ9!ä†{à^¨y *DÃ} ~ö®nöØ‹Ñ›ÑÇu­/£Ÿfq¶§? °Ù@Æ F¼ký`b³¡ö8̹6ÜaÝ¡‡óBuÈÇcQˆâ¥}±ÚöÔv„¶#£ FÃf‰ö3Æ:Ogãíqc¢Í'9«&ßñnNÑv*cL‡$˜Ál¦}m–³*ÙgÛãÆÜ;þ[žz:Ïók[éîLù/Ù.€…~k¹NpÓ¹³^ ó'W>à^Í á«àªy¸6Z’—+Q~­¿ ÜÙ£¸·Gsw/Êý½¸Ýácüz|Eί²îòUuŸ¯îtzà^ïëïõíH÷ø›;|îÁ±º[}¶›®•=¹6÷æºÜ—kqœ®À¹òÆëj;”+ìp®”Þ¾Þë­©í(ãßFfÓ‡Y½5‘{ê8{Nâ~9…{ßÎ÷ÿ¤3zg9,ÙåÁs"Mç¸ø\§Ò§h;?ÀúÆ#úw)Ÿ.Òv1c©Ë›ÊXÂxÂxÔÁ×4‡-ƒå°VÂ*X k`-{ÖÁzØÀãfØ[íUO2626<¸úT@ï6ãq™Öí.¾v²Ý»ažï °þiã‡FŸI7{Ö÷ÁslŸgì÷[ÿ‚ßüEãG_rØËpÂ!8 Gà8Êž_Á1x•Çðk8éwßqã‘WO¥›½f<žÌ¢§]ü7~×Î0ÞpÍÏ2^7qhôœ‹ÿÖïÚ›Œ·\óß3~Ç8o<êàë\üm‡ýÑaïÐŒ¾ë° ðÛ?iþgmßg|èZ{‘ñã/Æ£¾^rØ_á#øüþ—á -ü“=ŸÀ§ðWá_ðïÛ|ÞÇð¹ñœþúÿÂa_Ë´~åâ_;ìm¿e|§Ù÷ðÛkŒÿ84úã îû§™ÐV2²¤_êvŸŒd<·»PÌЛMÛìŒ\.ï=ŒœŒÜ·õä¦s»«}¹×ayð>Ì‹ù0?àYA,„…1‹0¿KbŒëžbŒâ?ó¼(,‘n^Ôt†¿p_JùÍKû͢ŽÐŒbY‡•ÃòXÁæ±’Í*›ŽÐŒb•€Þ°ªéÈÌ*Vs؃Xk`M¬Åü!¬m{ë06¥}©ëâõ°¾ÍhûãQ×õ†¦£ á¾4rXc| ›`Sl†Íñql-±¶Æ6ØÛa{ì`:ÒïKÇ€ÞX‡ury;›Ž6tŠ]\¼+v³Ywm{XßÓtÄ¡QìÐÛ[Û>Œ~.oF_Fœé¨C°/6a<Æ!8‡ápöŒÀQ˜Àc"ŽÅqöª‘ŒÑŒ1¦#ò¾Œè`:.ÓŠ]|Nf;§â4=Ÿ`}’éˆC´/3ÒÍfÚã,Lf;›1×u5…1Çïþy¦3Ò¾ÌwØ\ˆ‹p1.Á¥<{‚‘Ši¸ŒÇ¸WùÝ·ÜtäAÞ—ÕéfkÒÍÖšŽÎœâ:ÒïÚzÆF×|cƒéˆC´/›]|‹ßµ­Œm®ùÆSŒí¦£Á¾ìtñ]Ûí°=¦#4£¸×aOã3lŸÕ|Ÿ¶Ï1^p­}‘ño¢]m祩¸|íZ©Q¸C¨P»š¨6Sµ¹Ï·`iÏD"4jéó­´«IœF­}¾ ³­vM‰Ð¨Ï·×®&quðùbíj§Q‰¸ŽTÊZFåÚUV¦NÔ9.#uw(uÕ¾î˜Õv£Ãâ4ÒáâºÓÚ׳Út$—‘zŠëE½YûÐÑ`_í9ˆZm?꧑ˆHƒ´¯;fµƒé˜84DûZ«YïÐ83LÜpÁ:’FÇjÏ@@½£ã4Îqcé8í«ŽYí8OÇÇe¤ÄM ‰¬“h²öõGTx¢ÏO¡©tR\F&îdš®=1«A3ã4Ò,q³éíëŽZái>*Í¡Óã2êâΤ³XϦsÀ¹Úó!uçóçÒ/â4êùâæÑ|í9ˆYíôË8t¡öµV«Ú‹èâ8ô+q.ýšõú x©öH]—ùüZ§Q‰û--Öžƒ¨þÎç/§+hI\F½RÜRZ¦=Q+¼JeÔ«£ä®Áv­ö|è6ºÎç¯×®&q-wƒ¸±Ý¤]™n£›£änÁ¶B»2ÝF·äoÓ®L·ÑJq·[½ƒî¯]™n£»|þÚÕ$N£Uù»µ+Óm´úg™{è^ðûy¾û´¯¨fý) ¿veºþ@»2ÝFäÒ®L·ÑÃùG´+Ómôh@þ1íÊt=%÷¶'µ+Ómô”Ï?­]Mâ4Z#îqk±=«]™n£uQrë±mЮL·ÑsùÚ•é6Ú$n³Õçi ¸U»2ÝFÛ|þíj§Ñö€ü‹Ú•é6Úñ³ÌKô2øÊ~žïUí+ª™F¯ä_×®L·Ñù7µ+Óm´3 ÿ–veºÞŽš}G».íFïäßÓ®L·Ñûù´+Óm´+ ÿ¡veº> -Ȭ]™n£OÄ}J»µ«‰Zីi£r=¦0S™iÌ3™Á¬Ã¬Ë¬ÇÌdf1³™9ÌúÌ\ffCf#fcf³ ³)3ŸYÀ<„YÈlÆlÎlÁ,b¶d¶b¶f¶a¶e¶c¶gv`3K˜™¥Ì2f93ÌìÄìÌìÂ<”Ù•ÙyópfwæÌÌ#™G1{2{1{3û0föeöcög`dbfÃÂÊÆÎÁÉÅ<–9š9†9–yss<óxæ Ì Ì‰ÌIÌÉÌ)Ì©Ì™'1§1OfNgÎ`ÎdÎbÎfžÂ<•9‡y“ ÇmRÄS-2UFI`šäC IŸŒL—žuk2V¦©#>»J¬+ýëW‰õ¤ƒZa¦œ¿‘ÉŸÈléÓ4s¤gAëK¾°ÚÌ•c›×"È(E– %Óªl$Gµ©KÿvUbžôïW6‘qK,›J¦4ó¥g¹ed:U›‡È±]b°Pzv­E6“Q‹`sÉwd éÓ#‹¤çQµÎ–2V/ᄊ¾O•ØZú÷­ÛÈQýk˜måÌ-ÛIfp ÛKŸ!1ØAz‹`±äGT›%rì¨ZdGe´e©dÆVƒerÔ¸*±\ú_ †å¨ qe'w’egÉL©»Hÿ#x¨ä§í'»Ê¦Ç`7é9Ó[Ÿ¬ŸÁÃ%ªewÉœfŽ†eÉœeŽŽ·ŠXn•ØSúŸ…½äÓyì-}.¨ûHÿ £ðhùôbo}²ÞÁ~Òó’@ö—>—Vƒ䨅Q8P>]ƒƒ¤çâjp°uE#Ÿ.±"™¥ÕàP9êª&=¯‰àpÉ_g9B2ËÍHñ7Fp”äo¶´ô5è5®ÉÀJúŠ*ô÷HúdèwЧ]Sw@FèƒÐy®É,À‹âûÐ"觮É^`LÖpè»Ð•®ÉÁ -›M®É]—¼YÐ/ Ïº¦îÝÜÆPÜ¥¹Í]ÓwpÃÐ/¡]Ó÷L^èýÐEPüwò–º¦)Þò>wMÁEÆä^ Åw7&tt“kšá¼…ePÜc…Ý¡B—»¦9Ž/üŠ½Ùhèv胮i‰§EQ«zQK×´Æä¶Â¸­¿†¾ãš6ø^´îéšvÓöv×´Ç[_Ûï¡ø?¶}ºÚ5%„ÔW‚»¨ç/Á7²x,×Wü(ôèSP|‹×@—B×C—AŸsMñZèfìãM¬$ ÅýS²ºú™k:bž;ö‡ž hõèsÐ/\SŠßf¥¡X›J×AwS–ïš2¬™e.tôcè7ÐÝPü_Ë{¹¦ß³r\WùcÂu\Æ/üðlhô,h:t.4z>o¨áùP¼C†/â>/¶ŠzÃxS -_n÷¯´ûË ˜ÿðÕVq¿†ñî¾Þžï&Œÿ=ô(ê -ß…<æ3Œy ãþ ß A¶uU¼¨x²$îSÅ ïÉr`wa2’‘ŒDŠì::ÇÔ7- Låœb×9o¥Ã+¤é,}»BW¬Ý‰iâB¦» Z§+ß-üOz½’‘Œdl‘y@Ggaï 峃á·sE¤š‘Qú õWþöëûì`x#3ÁøgØ=iÇhGÈjåóz²ùùs<Ã>Áû}+ÉHÆÿWT<dzöóèl¼qÍôí;漈½ŠðÖêÈ'gâDä›_¢>C’‘ŒdÄ7¼_fóLä*æEÅï¶ÄŒqÅWüÆL̨\u+æ1d.3þßÄsŸè¿‰zrfë–’Œd$£#‡Y?Î5 Ì’«¥öÃ1+MÅê[)ûü&NÄH3w¯æ»ÍOÏ /R®+v¤kŒd$£V"ÃÜó?ö«LŠ" ¿Ô3›™…$*9IÎTðN• Ä%˜ÈIrΊÉAïE$+`öNÄSÃqÇé'G’ d‰WS3;Ì.3Ýßì‚Ìpý÷W…ÿ½ªêêîzÕàï!t‘q§7`øžÃݧpñs8xNâ6lظ››-ï8uŽßr‹fr{j;Àø:ƒAh"=â¹£‹»!sTqÁYB7ª¸àŠ,Ù{ mØ°JˆË–w<$À•ô=˜½§hC%õÚ¢g‡vïÝ¡ Ã[r¨ä„Óà»W»[ÁgÇ=Dú”C3šØ°a#+ˆ¶61AŒ:»¥ÝÔŠèôcçi7#ýØ„Ãü=ÿèñ&ëÐaNð]aßû1øÜi8<¹'rc¸ù,Â;C3jfïÛ·aÃF¨"Fsl½ã  ûÔ+øÖ<¹k¯Î9CÿC5†Ø°aã…:™a%ȸ‹¹à>·…&XÒgì>a†&Ò×Ï}6vbð=ëµù3ñÈgnjÆ0B¼æ„,z'B¶¸es¹ý@lîÝ×PŽoép`G¸™C„ÝàFdsÅ=Wd mDÜé Ø°a㶠SÁßMè"ãŒ}ÕôC8ìýV â)!W4Â[©h´JcÀ÷_.”a}bpàX—§¦V§@ÍÖÂBpd|“ÄÔþNBp6„ÑÚã5Ù%.ëëÚC—B­¯……àëp7ì’ÍN\aôlp„Ñljî¯ÕÀM._±áy_üÁ‰Û Œž -~®3Ïv¸;Ö~„ÑÚÔÒ¿ˆÝ.wcÂ=:GÜ«è'µú³Gݧh¿æú?b< Š¿ªt$Ý^·U•*Té”J§U:ãé笢ó7rÁ£¦)º|Ó(WÜúŽBŠI½mäT)B¥H•¢TŠV)F¥X¸+žÅQX _Âð --ƒÎÐ…ú£ƒ[Ò»"|Œ£u´6ÁUŒÀ(¸]i ÆÐÇ´>¥á+èÛ¹#Æa&ÁÌM+0'·§í´C¢ø$Ÿ¦ohæ¥póÓ…h7ýHKh}Oÿ†oáð5Åâ” -—àˆ%9•þ#q|–Ïciú…¦áú/ÀòXGÑ!:NGé¢34«Aw:‡µp] Kt¾ƒ° Ö`]¬Oo@lHƒi÷’ÞÌ¿s ;°1G`sÏQÇ—ù*¶Ä8`*\æ$Îm°>ĸ0§Àð=ü€àcØRñ lOC±#÷ç{¸“ÞÉ×¹ —ã -\ Ÿâû¹ -Wçš\›Â1ìÌCém® [y°Ü‡]¹>v‡CÜC/è ½ád4h9ôgi:¹­ƒó ZOi3\ÃHŒV/Ùs´céú€>£àxúr'ŒÇDÌý0­Ä\ܾ¤¯$šOñúS0í‚4L¦©8 ÓwôOZJÿ¢h/7…Ðb1,A=a ÂRÜ“~’x>Ç° ¥}4ÇÒ~:ˆ° -Ž¦Ãô£“tšÎÒ<¬ƒé<ÖƉô;]¦4 -C`¼ˆõ°½ ñ ¡™Ü[ù=¾È—Ø`'6áHl8šãù -_ÃVø 'ÂAì W8's3|{ck.ÈE¸Œ„0 -Ŷø8ŒÆ'± ÃN<€‹rI..…ø}!.Ëå¹"WƧ¹Wåæ\ƒkq£‚ãØ…‡Ñj®[¸‘ÒØ`8̸ wá}¼Š¡4‰ÑBšL‹q—œ‘³rZNIki#çä’\–ÒQ®ÈUé-}äšá4" ‡aH-&Ãd£€L–)F.#‡‘ÓH2¥¶Ì3 -)²R^3 -É[RGŽÊi&Íå„—ÕRWÚJ;Y#õ¤‹t•‹rAÖJ}äº4”~Òß`Y/e¬Œ3b8Ù(MŒ(#RÉL™eÄËfi* e‘‘ÏÈÇø0ÿÊãy"¦ñ(žJ‰<–§óL)Ç/áÏ<›¢x¿J±¼óR^ÎóHím<'á%ÍÓ(‰Çñ žÅcøe*ȯP4ÏåÇ‹x /ã<_X*J%)/x?àƒ®¢Ä•Âîѵç©"ˆT{{>•R&©¦ùʦ=D@uÙ«bfërfÓß¾þ_®HÔy¤:"äÍb/~[£ÚÇøm5!’j9UŠºå+c_öe_üå¸ã3°¯»ÿŠƒ>µ\ÛÄ6äó–óC²Î @Á 6)PèÆ?¡fV§8 õF;U„LG¤JQ*6ƨ¬ùÖ\$Ëó¿'S½hþÅ4—ðÔŠ=~ÉLõRAúß›©~_þ¥5—õÔÊ=ÿr™êåƒô¯©^1HÿJš«xj•ƒžÕLõûƒô¯–©^=Hÿškyj5ƒžíLõ:Aú×5ÑêA}Kÿ•†šYø76Ñš@SËñ›™hÍ¡…Î[šØ´ -¨< ùA‹ñ2ÑZC?lbó'íÏðˆåý?PyLs[ ÿv&Úãð„åøOšhí¡ƒ¥Ç€J'ÍOYø?m¢u†.–ãw5U»Yúw¨¤jîéÓÒÃU/“¾{CËñŸ1Ñž…ç,ýŸ7U_°ôïPé¯y€OK??VMúƒu>ÄÄf¨‰6 †ëüE›¦w7ÒòþGTÆhëÓ2ÚÕ8“¾ÇÃËñ'šh“`²¥ÿSuª¥ÿ´€Ê Í3}Z¦û±šeÒ÷Kð²åø³M´W`Ž¥ÿ\Suž¥ÿü€ÊÍ }Z^õcµÈ¤ïÅ°Ärü¥&Ú2Xné¿ÂT]iéÿZ@å/šÿêÓòº«7Lú~Véü-›·M´ÕðŽÎטؼkzwk-ï]@eƒæ>-ëýXm2é{3¼g9þû&ÚØjé¿ÍTýÀÒÿÀÊÇš?ñiùÈÕ§&}Ÿ[Žÿ7íïð…©¯õ]Ä£\ìЩ9Fs¼æ$͹4çÕœ¬9EsÍÅ5ß«¹¬æŠš«j®¡¹Žfr»L«‹¤ÛÅÍ^•Áð–êrÁÐ6N7{ÕHˆð–cTÍ…måf¯ÑÞr’²u!ZÛĺ٫æ‚8o9¯òûûÕUÑEç!H Bo¡ŠÐ{1ô"Ò¤÷Þ{“" ‚4i¢"Š‚Š@{CDETPD@iëûÆaß¼Ý/¾Ýw×üÿÞoνsrßÜ3³/3³â9‘&ª¿æcQ*Ž…QÅ' -srš¨þz?‹VqœÄûˆÆÌ\&ªœâs+¦”ó ŸÊk¢Ê,kÁÅÇK̇D >•ßD•SIbÅT•‹DÌ/h¢ÊIXH1µ`ÆâS3 #1c•“(±ˆb’$Æ)¦+Ša>[ ±¸«œÆ,®øf,¡ø–¬$†%pœRˆ¥ÍXå´‘XZ1ÉË(¦ƒXcø”ÁgË!–7c•ÓYbyÅt“¯˜¬†ñølEÄJf¬rzI¬¤˜¾++¦?«‚ae|¶*b53V9ƒ,XMñC-X]ñ#Äw Ÿê8N Äšf¬rFK¬©˜qk)f"«a-|öÄD3V9S$&*fº‰‰®[M]w–¤¸\GÁ/…~Kˆƒo ýï¿úÉ&´µ)®;SÀ?m=Ä0κÐ6A<|}h[ ž¾´í/jí€x4øÐvB<¼¨µ âaà÷Bë“âº)ÆÞ­ÄIàS €xk¢Ë­bŠëV8øùЪA~´gsq%B ~´$ˆ£Á¯‚¶\毅ÖTæo€Öâ(ð›¡Á¼nå¿ Úˆaåqo‹ø4øaÐB| -ü(h…!>ÃðbE!>ËÄwÃ؈ϟ -­,ÄçÁÏï$ÄÁÏ6]Æ Äûñeð‹ÅûñUðK¡-„ø:øÐ`mowƒ1#âƒà»Cëñ~ð=¡EJÞf#'ćÁ÷‡Öâ#àCËñ1ðáÅB|’Ýý˜g™y®˜'ŠyŠ˜ç‡yr˜§…yN˜'„y*„Ëç³J¡Æû/ÄZD²ô2q‚Š™ä’>ô1Ò›'W¬ì”Þ<{Š°ô² -â•OƒQGòQ|  #væ]x7ÞFoÃÛò <™·ã¡âb¾„/åË úl>‡Ïãó»]Èœ‹Ð¸áþv Ž¹–Œ­>ÀØz87/‚³$>ã8iþý=•)Õ_kž,TEa^s²ÀéQvØÕ…Ï¿ Øsc/ÊÌ+} ÜïóË8öžtùfÓ˜_v廽ˆE|z2îú÷ª²8ÜûKÂ~cÀ^ãΗ=Ç÷QÊÁÞ”¶ºñp§÷ÄW„¼ÎU†½­*ìkÕa/ðmt¿V›ÂÙw›¢ð[MpQ÷¼F³‰lú6þÖ ÚLÖž\ãÿ¦Õ„ßf©åÔ†ßf‰°Ÿÿۯ˒ÈôÖcõý2N8ÜûXcGçÑ„5K5§9káõo-Y+Gõ¦nш ¬5kËLÓ“ÉäÚeí uÀ¨#댾 ëʺYrº³‡,ýìa÷d½TÜ›õ±äõeXúýXKhébƒU<„ Uñ06Ü’7Bú‘l”…ÍÆXúc¥§Íy¼ßWÑnØdM6•M³üuº¥7ƒÍRñl6ý\6Ï’3Ÿ-°ôµÜg3@Ëgm&𙡅Â=- øpÌÈ -gpÞÊ¢àN&~§FÃÍLÜËòÀ]Lü>÷°p+ˆwŸÂpÛ‰ƒÓº˜º“”Æ[ÃÛ…¸/ˆ»ÁÝ»@ÜÄ.-nÕæ>,ö_q›®»X#q‹†ý„ÁM îboh g­ø?L†w°=¼ƒáœí,ß>ñƉ·L¼]â­o’x{à|â›"ÞaÐïƒxÄ·?¾ëÿ¯‹çu¹ûæOpàýÿoÙDM"×LfîaSÈu›MUÑ´{#=Út3ƒ\S0ØLì¬4‘m¶Gv¹.j›kcæ¥yŒôhóÝo ™¸ ›ñ"r}T¶q‰Æ>æ/eËÈU:oËmÌãäš‚ÁVxdŸ ×Em+=²«ÈuQÛ“ˆ«Ý˜uÐÖÈx=´µì)r•ÎÛìFr]Ô¶ q³Ænq‹Ÿf[ÉU:oÛlÌvrMÁ`Ïؘg¡íHå©çÈuÚžGÜéÆì‚ö‚Œ_$×Ge/Ù˜—¡íNå©WÈuÚö îÕØWÝâ×Øëä*·}ˆo¸1)Ðö»õßdÈU:o=²‡ÈuQÛ[ˆokìa·øv„\¥óö®_Fy|þ¶£~åù<ümï#'×lvñ$¹Ž`³?ÔØÜâÙ'ä*·O?ÓØÏÝâ/Ø—ä*·¯<²§ÈuQÛ׈§5ör]Ôvñ[ýŽ\µ}x–\G°ÙˆçÈu›ýˆø“ÆþL®‹ÚÎ#^ÐØ_ÈuQÛ¯~å"ù<üm¿ùe”ßÉçáo»ä‘½L®‹ÚþðÈ^!×Em"^MãS×ÈuÚ®#þ•Æ§þ&×h»áhµ›äóõÕn9Zí6ù|}µ;6ÆE®)Ì`6†\S0˜bc2Pk -32ÚN­)ÌȤ¢ÌÔZ‚ÉŒP…Qk &3²Ø˜pjMÁ`FV“ZS0˜ac²Sk -3"mLµ¦`0#‡ÉI­)̈¶1÷Qk -3rùe”ÜÔóð·yü2J^êyøÛŒå§Ö‚*òQ+: -¨¨ µTK­@ê(D­@Ós?µ©£0µMOjRGµMOQjRG1jšžâÔ -¤Žˆ%5¶”[\Ú(K¦® Yårˆå56Þ-®`T"SW‘¬reÄ*Ъ»±UÝâjF 2u d•k"Ö‚–èÆÖv‹0ê’©«CV9‰ªruÖs¸^}êû¨³Ãõ"6ÒØÆÔëàEmÇ*5El¦±Í©WÀ‹ÚŽUjI=Wu¶r¸^kÄ6Û–zl:“t¬^;ÄöÛzl:;!vt¬^gÄ.Û•zl:»#vs¬ÞCˆ=4öaêu°éì…ØÓ±z½ûhl_êu 6ãÄ~ÛŸZµjì j]Ôf F¢±C©uQ›1 q¸ÆŽ ÖeÓ9 -q¤cõF#ŽÑرÔë`Ó9qœcõ& NÔØIÔë`Ó9q²cõ¦"NÓØéÔë`Ó9q†cõf!ÎÖØ9ÔëàEí\Ç*ÍCœ¯± ¨WÀ‹ÚG«´q‘Æ.¦^/j—8Vé1Ä¥»Œz¼¨]îX¥ÇWhìÔ+@mÆJÄUû$µ.j3V#®ÑصԺ¨ÍX‡¸^cŸ¢ÖEmÆÄ»‰Z—µ›«´ñiÝJ½^Ôns¬ÒvÄg4võ -xQû¬c•žC|^cwR¯€Mç.Ä«÷"âK»›zl:_A|Ù±z{÷jì«Ôë`Óù:âkŽÕÛ‡ø†Æî§^›ÎÄ7«w€zÆ>ê<èp½CÔ3öQç[×{›zÆ>ê<ìp½whì»ÔëÀ¿gõ!ëâû{œZ½µøaŒÆI²>¤ž«³ùÈáz#~¢±ŸR¯Cgü™ñ¹Y_ ~©±_Q«œ§Œ¯}È:M­ÓÇÙ|ãp½3ˆßjìwÔëÀoœµôð˜uñGý‰Z½—9]ðÃ?ç-ý_(ì*ì&|HØ]ØCØSØKØ[ØGø°°¯°Ÿ°¿p€p p°@8XX(", ‡ K„Ã…#„#…£„£…c„c…ã„ㅥ Â2áDá$áda¹pŠpªpšpºp†p¦p–p¶pŽp®pžp¾pp¡p‘p±p‰p©Ð"±Ýõ-bõ™lõ_›j©_WQ?–îV¿f¢~¼ëêl}ÆêlCŠS?Ÿõ)¤~r%Z_áÍH¼®L%GýtÖ×ÙLj ~v%6Ôx®él^%&h¼™ëló*™¨kZR’ú÷x0Yg[SŠúm}ÔoGiêßÉÞõ;z0Cg;{0Sg ,õ»ºÌÖÈC.s4Ò#òÌ\¿5Q¿Ë<ôuÙT#ý#OÎõR¾ú‘§åú…ÔBý"—-5R첕FJ"ÏÏõGнêÂSŒúcè>õÇá‰FýRj«~žnÔŸDíÕ/Ç“ŽúS©ƒúÓ#OÚõgR'õgGž±ëÏ¥.êÏÇ“Žú éAõ»ìª‘¥.»idÙÍCLüåÔ]ý -|Q?L=Õ_U%{éš5U²·®Ywöѕ݆ëÊïFÞ ×ß@ýÔ¢ûk|S%Ðø¼AQ«éìÓ,ÐÙm¬³;ÓÙ,ÑÙC®³G<8Bg_¨Ä‘©Giü•J­ñ£•8Fã?r9V#?v9N#Ç\Ž×Èë.K5òÓJœ ñ7*±L㿨ĉÓƒ“tömNÖÙw®’‹tÍ_oÃźò“*¹D×|Z%—êšÏºÝøòɟ߸ñtô4ôûÐW¡[¡GÝëƒÐg ‡ » ‡¡;Ýë½ÐB_SÌ5|ìè¿ ×\ýúôz˜çƒA-Í8W *èH+c?] ÝÅÞko‡n‚îƒâ]³_ Síhx>S (Q»×ù{NýØ•PÔZ±«¡¨ªbñy±W¡¡¸ŸØï…)„ÿ·ÞoÂäàpÒ]E—âàŒqЛ88Gt$Þ"݈ƒ7ÅA'â`_pÐ8ãÜkìpº{™ƒžÃÁ®ë ßp -¡è2ìSNh). Šß}½›ƒß¹ƒÎ g½ƒ® ¾5A<êÝ@<òpŠ ¨Yôñ¨WœáîüHw•èoPTý!|Û*þÐI(ªýл®¾EÅÂ^à ªm¢~á qP©‡ÖCQ¥‡ðœTè¡ÐG Ð¸ÏehO„©Áq”ÀèPq'¢+ID­Ü1LOC;»ºqä“‚®4ÿO -òLÜ E‘ˆçŸr&LIØESñ\’~ݦdä—†Î5•^úÕdä—ç^Ç»×èH“WC—A/A/„)gnz_èËP¼g©¨Ú3°.;@òH=ý(Li¸ŸL¼i¨Ç2ñ=¤¡æÊìí^÷u¯ñ=¤m€âsÒ.£YÅç¤ã\ÎÂç¤ãó³Î‡)µu6þ]~›Ù/@?‚¾ž”ý -ôCèQ(žCNô -½Q&Þ‹tJ™8'sÎB£PÇû’yšÅï w]˜²pnå~Å9Ðß{6òor Š÷0ïg6¾ç¼5aÊÁ}å} -}ž¨)zÇÜx(Þ—\·§¡ºÙ]EºªH7é¢"ÝS-wN{/1#TÌ-ÑÀ ,°oß a§x œß„³ÛÝ›ÌWÖð¸¯À ìÿÛlj&QP/X`ÕÁ %ƒéîU´¿Ë ï^/û–uyìeXu0CùäÕïX`}ÛÆÔ -lCAX`U3Ôì€Ñ£Fg -ö§À ¬:˜¡.ìGXu0CÝÀžÙ“z û€}1úÉUá@°c0F!Æ[>%†Š¾)K0†cŒÀ‰1 -c4ÆŒ±ã0Æc”bLÀ(؈1 c²~R¹zSÁé30fbÌ¢š¶—š;}Ø7bL³)Ø ,°ê`L è¿ûQÍø¥ó¾À ì1›–R°X`ÕÁlª×`¬¥›ûRÍ6‹Ö‘?òø¸ü‘KÄ m$?e³™ü”ÍSä§l¶S$›Âg…{„{ÉOYî'?es˜ü”Í‹ä§l~@þÈæUòGÇÈyü„ü‘ÇÉã¸ð-á áIòG~ï‘?ò8EþÈãWä<"fè ù)›³ä§lΑŸ²9^Äø3ÆÇTS2³pç¡št·UÓ%ðŸT“r¹L5én¯@¯RMºãÿeL×ȹ0†M×ɹDŒc"ó~É¥6ù'—8òC.ò{‰©O~È%b“HþÉ% ©d›½f¿ÙgXk¬mÖ1kŸµÊª°–[a3Ø 2C¸–µÖÚn½f&š f²Ya*8Îú£™cf™yÜÀÚo]·Z7¬ÕÖ£Ö -k¥õoë€õ¥)0M!ßeÊL©™d–s¬uÞÌ63Í\®oLc;ÓÎ2%¦ØŒàÚf¸fFòÝv¶õ¶õŽuÂ:içع†ŒebŒ1 M#ÓÌäÛy¦¹ÝÔ´°óíæÖ&k³µÎZo²~i±ž·>±.™XgM’)2£ÌP3Ú”›)f¾YÀ Ü“9•¹17âNã$Îá,nj7ç|nÂÙœÉyv>7ã\þ_µc¸³Ív]înÇÛ‰Üð ~ûó@.à×yåa|œ‹¸˜KøMÉ£yáñÏâ9Âùïü¹`·µÛÙííŽv »¥ÝÊnmoçËö{ª=Íži·Kí ÿa¿jƒ«¨Îð{NîɽdY’@À „“.„ —ð¾ÙhB\@p@Ko1SЀ@D >%‰´ RH™…è˜,)nhµíX­ÐÂtÚ)µXÛ™´eªtÚIŸsö -±ƒ?ü×é°ï¼ïóìyŸó±»'ï=nˆBQ$ŠÅ41ULÅdQ ˆIbxJ<-žëÅ -±R¬Oˆ -1O<$¢"&æ‹ûÅLñ€˜#‰Y¢FÔŠb—x^l›ÄñœØ,îÆ~j ÿ|®<ï _¯‚o‡¿@!r àoˆá—TÅÄN;ö«ûW]J‘ cúøeë|U§>õ┎Ž–öŽŽ¶¸Xýµž¡³zË·Ä{¨ºò×ÀÚXcàyø>xƒZ#ûW|‰:u¼cwìŽýÛÍó_ÕèÖ½R%ÄÕ›5LE¿Jt®Q _S£ü_f¿‚éz5¥ãßgP³NuªYºjy4!×£áðA¹?Ü•¸+È{z¼Ö-–i¯ôðx5 »Ç·R=þ ÅãÛÉß -èæñ-Óã›]=¾ `x|# ÉãU€.òø3€ Ç7=^ ðøz@‚ÇŸà °Àü;ÂݳXþÎaï;,Ób™ùlW”íÀväñ¡(š§éØWǻ촨y%jžš‡¢fIÔœ5DÍ‚^¬†r߬ã&×ë¸TÇÙ:Z:¦Ú©9æ¥ó`ŽùrŽYšcŽÍ1ÛX2µ —dwk1ÿÐbj1ûµ˜-}Ì“ì]JfÝÜdêÒÊÞeÈöëó¸ôØ 7–¸îÃßÜXàš ®º±² 7û#ÅBx?ìcŠ±yÀ¨> îËʹÂß°r}ÿk²XxɵÚÐý¢¿òá‚k-|àZ9€s®Õðs~æZýï¸N&à¬ë œq¡€v×É´¹N)Às+€7}8îF–\7²QžbMᘾÊõFë³n¬/`ƒ¨tcceA„=IõzkâÏ°÷û@õl+©NçWPÎ?ÎÊõýr Ê?ÆÊõ»x”lÝo žYábך†iºÖ@Ôu†æ»ÎlY`²¹äèÁ$G¯pŽªÓn¤²Ynä -Ö|ý3ÜÈ9YÐ…M§<¦z9ÖêûÜðA¨‡Ç¿J^ükDâO‹•+L¶þ*ƒÈÒ“†±B¥Ëö¿C×ÚÈr­b@¦k dø Ýó½\G=KõvO±Šèþ††ùÿ“òFl€ü¢þŠü~½UmW~fy,lß%?µ®È«ÖùWk¸ü‹•$?ŽdË‹umj%tŠÌžò¼•*?tºËsá+òmì·ÇÊ3V©lÇyÃöÌN–¯[£äkNWÙè,“GÕÖC@ŸýιývXËdMØoßdß-7b“<‰qVEúÊ•í?!WDFËåy ®,cq'äcá=riØ a¹‹ë<ÎlC~ kYà ‘suŸ$ƒ‰–Là–ªS«ý¶ʯa~a[éW­~ [è—«…~}{Ø/e Ëâ< wBÞëô—“0S£+'ªÅºrœ£§ñÔKV¯^Úh9$’#¥“$ç6 -ŽŽŽ -  f3‚}ƒi¡î¡”P·P×PR(J B­äëãëù¶8ÛÆ×ÅÙ:¾V3¨æ6O#ulmb;Ò{­’>¥ûäÔqS oJâ1÷Ö•þun§íDYFÓKÓçÌo:–m¡HGFtzÓà9™±ù­| UTØÊG+ˆÎoe«ø˜¢Ùª­*ŒB6C˨ž†Œb - KèOõJFõ ýµ¬ZÉšëê‹ -›ëëµDì£:-©û´¤ÑÉÂÉVYbYZf%&)6…Ö±r²1˜mkUïdV®T¬¼w²¬—ž/†Ä +Isn‚æp®Nº•Ždét¹Ÿ.÷ç`·òy~÷,?Ÿ…|îÿÒUvÏ7íq¼öruCQYvQIvQ¼¤©víÒô¦ªÒÌÌæêË*‘Ù”0°¤tñR…‹Êš.g—6Ugf6×6Ü&Ý ÒµÙ…ÍÔPôàü滬Эµk‹²FÏ< 3¨„J]3h#•"» fÐVÚŒun§màÕ0¢T¾›v¿3hLÐ^Ú‹§x‘^ÄS¼ô]Ñ~ÚÍË0¢0ƒ¾Oßÿ?#z•^?JG1Â1:†a½ R3½M+¹hi£“à§`Az &è4F¯vjG¯³8_½C?‚ò'0Aé§hù=]BË'ôøŸ`]¥?ƒ_ƒ úfÐßé3¼ÛÐuðÏa‚õ¡/ðA3pX4ØÖ|(~ç 6 ¿úÄF°áàcÙHðñlx›^̦‚—³ûÀ—±e§’-GË›lZZ™ÞÆðì-v -¼ÿ?Ï΃_`Èà#Ø/±qFò‘©8 óQÒ@Ù >†ÏçùàcùXðq|øx>|Ÿ>‘OŸÄ'Oæ“Ám>£Måøú Gx1þ]yå?ì—MHA†ßÝog“´³…B•BHÁö þñÔ…ªP‰QR¤àOJ ¡'/Ús¯½´mz¨ÐÞzµ5zí©Hzk{¨¦úF7G‘…o†göÙÙoæc†Ùæ\Vd…þVVéïå½,eúGù@ÿ$kôMùL¯È}O¶é‡²›fQŽS2%˜S–`¥7nÔä˜Ëzºï7Î!'çÚ7N\ÄnŠ¸¡¸…Æ0Oò¶µÄÔ_~¦êÄþø™XÕÇ#¿ê×Hvtz ïi6‡ëÇË&÷÷ͺìžÜç~JZe'Ë”û¡»[6šŒÝè˜|bôimÀï±´g~&;¬Û‰.'{¼cÏU*õ¹œ¢(×’EQEQEQEQE¹F„1 µ"ðØ^¸C÷wi÷øN„=wи(Ò #žîÐgwéó}ýéÁTªe$?3Qlí-L_Ý>ôsðA¤X[0‚¿/½Ü8¿~}ý­ë_ÛÉ—èÃYÞFêoœ 0Yž +H‰¼W pTåþÎ}$$<ŒDaIxÜõ@²K„Gév#iÐ! ¸²äÁC +Ä)«Ñº Rm+–Riä)„™â Âd(´Š”â VG jjE­¶”Ü~÷nDp‡é8ÿ÷<¾ó߀4~iÀœ…5 ´'»ÜH7j'—/j4^<øÔ›”ïô›ª*–úÌ $-¡}xUe´IÚ Ê[(ûªêçÖ†òç¼GùOäóskšª>™â-¨÷¤ýÙXe´âøÏ?ºjœñ0:FEÏš´ @÷½”Æj—¬šùÚʧ^+ª¿·°QõÈïiª§}IM]yjÉz¨ ߧ}umtI}÷R3^íFm]Ã’Ê]Ÿ¢ÿY¨Ï‚hmåÉWsï…úû‘¬ú†ÊúA~]µ’î)Çêêê_¹tæC¨ Ø£ªÁÁÂý(û”}z³ÅÿõÑcèK@ö¨ÛØÇɧî(µ/éµðv²O¨¹¬ÊŸ`~òP‡‘‹×¡â0tüÛQ !ê÷#]¼´ÌÂl„ÑQËñO¹ UhÁX®¤¢zû1’ñúbÚàÅ<»EX„8Vb m%Xi¿n¿Ël¹ÌV‡G°Júsß‚Ýx[jì6 @`+ŽËÛ™ª‡™&iÙ¬b‚ø.ngäRÌF#>‡M8"Mö#v;Lf¾áź6c';¸(#¥I-PŸ¦¥€ôŽI)°§Û/Ù™gò+‚¤ÕXç± íè)‘{¾Ý`ïBsÅð ~„ux¯âß’-~e„R§lcm}‘CrbÏd5?c=ûqBR¥›Ì”Ò$;äS%¢î´ëí Pk3nÅìÃAÁ9z¦J_)ZiSZÔtu­ºA_¤¿h›öYÖ7 Ó°=†môoã>ÅgìÁ#2@†KžŒ’b)%m–mŠª4+›•¥]í¢>£кuœ²ÿbÿ‹¨ B61ňA„0…=;6Ö«=x…³:HÄŽá$é þ!š¤K/fÊd¯ ”›å6R1û +Kƒ™Þyϵ“Ïwð.¤­cýgµ?+û!.¡ó®ÕÏ5B ,®hŒ9+‚C]ýÂûÁ[{A´¦Êõvü•Ë=:Ò@wIX†p£’Š¨Áƒ²š7yýûõÍÌèãéÝëÆÒ{^Ÿv]îݺ¦¦tINÒ5UøBfa™a *³´AæäÉ~G6£TD¯P”YU…WûXF™ëf\í gÕ—< ÏÀeOI3Æc¼ßg„LÃúCÐ4Z¥´$ÌýãA3bXíîþvw¿ÚÝwçÞëåFÈ –”!«pQ,* 2ÜîHõû8LÐÕ laRtiÌÃÅñYf0dõ1ƒ®MÍ +E+¬©%áP0Óëø}–L*7çX0 ¬ë²;wž3è:-ÌÜ~ß<§~,ïVaV,o `N™³‹Þ¶ÔhÄRÊœ×g[½Í Õûþ3ž/ÄÏw¡W-%«0Z/$4Ë''Ä2GŠ® T<Ý`X¥9¶¤9’(­=ÑE¥r4eÕ†•b˜±xu1Ç´ðöŒ@FÈŒ#¦†·÷ ôq¿o·çq^‚²Û?Ñ?ÑYÇy=$Ö¿=”п±·«ë·ÿ]®ÅÓ.ã"N&³ˆeZF¹›Äd­c¯Ê±ˆ—¥?a—ó¬”Ieñ´[ø”¥g¥™FüpPfûûWk¢š¤¬´Oàlq^>´wî[1ØWÜŠ”©á߈¬Œ´ŠÝÜŠ`¿ÝH:{ÍCœã0/ȧ)Üì£b¨—»¡>£U:s3âF¼¨"n1\ËrW*㑶3=<ßw†½V ’yy[‰ÜÂ8ÙNÍ0Bug„j7\¢“ÏWLˆM —„­eÁL+ŒžŸ½SÃÖ^¢‰Ð˹R®Kçy:kÆšýC¹ÉID™Î ‰Ç’éµöÆã™qç=HÈ­‚/+ŠV¸xTZeÙT×´Ìôf: +ÓkzYV$ÈTÃy¼>o+r¿áW"<’ÕŽpÎû†u-¾&„Ç|5ÂcYóáüoá[®BxÜ×#<þJ„oeµã]„'|CçZ\¿áÖ<ÑAxÒ·‡pð +„¿„Ièà¦GMÇ°Ža=Æ}ñ_Lç#›’òù·oçϧË/`“vŸ¤i°?ã¿}㺓^@µ’—h›EΡ¾N[…\úo¢\ê®ùö)êÛÃd“<€œEö“ÇvêòȹN7Ï*hNwj“ïC‹Þ†,}&¼\‹É}½v +^ÖYìÔªö£ $sŸG[VòãôùéÕßUUÅÏïÿï7æˆØØcƒ¡þXs²!RêÄñG2ÀÁAÊB£²âOHdb!%¡Â0•2(ÁA!ñ¯õGSc”™°¤Y¦Éó{λïîí÷~ï=¬íó}ßóî=ïÜsÏ=÷ÞóÛ/ýÕJ¯šßÃt-úËYf`ÅJÎGû•9|^®?!>cîF«øØHE¡•t¸\<™[#"…Ð[nɈ U(ólÄ|i4¾a?˃}â8‡e¶@‰ÀZ. ÂJìÿŠeÞæü;çbÆͱÿìÿ’F+ÐÂо¥¢QùÖ¨}œN3Àw¨u[ÞóÄÏm˜[=Öm@|?!¼Öh +uP6úò£«a»žFËŒ7‚¨Ú‚Í40ZLM˜_òiìn–|¨7PëSô˜šïPŒµ‰sÔŠ‹¶ÈøÞ8 ù-èU•°µJr >Á‡ùj òuç6F:èBôñxC1·<Ñ4ؾ]¾Á÷°u-M8ÿì`µt§µ^T®´À)åïZ³²X'R‡¸$cœ·°;œs”×—s¶P¦ÓöŸçÁy.¹fîjÄs1PŒŠݢГsš÷ ç®ìÓ6ï‰ëٶŜ秬=èÌ-nãü’¶äôýf®!ÏðûKíVìtLUîòÜ%N8ïñÎg+çy.ËÀØè“TÝDsC`sôÆY<\› ¹ßrW½#©/ú +b4'ZÝÊÅþŸ»ã0N#j1îXø5í=ð^¿—+ÑÖmõàÀX´ñwuЯgƒ³0ÖdÖŒ1˜o5ïiŽ%çNà05¶SU ’œãèËÖ F5´¢3®]âØ¢pÊk+þå[ôÃÞT¶k¥>àǶ,¼ ñx + ŽœA㢷QR¤Šrq y0Hbže°Q‡o*£qʉ¶R-Þy¿$#ç`g%x¯d†Ídd'ÍŠ½,sâ1ùl*Bü‹Âã°×àC¨‰J±ÎW€“ŸˆÝzÌzÁ!ÆžX=ÖýÊ—‚“˜Ë +Äsbôˆiƒ}å5‚~ûÄw„øŠ6žâ;zÙ|¿sÝzºæX9ÜíAÙ¡ñÈß5°³Æ´…»%#Rû¢7\å@%ôËð=ŸÅ‘34ZîÍ)è‡ü‚#ü4ò'cœÖ#O³ÐVO}ùÎu;Ô½³ƒïž`Ù¹¾wp¯ÔÈÝRO¹¬'÷ïRZ@)ñ%4#vœfðž3~$&&`¯¶©Zœ Â¬Ù]Ûº½dž=Víµ ï­ð=°±Eö˜ÔÌq´et¶å€sЖÃú̵֙…: ŸãΘOy‰ñ”‡3£<ѵÏ\ìÑ¥ð­?rhl=cÞUR¨3Ô~®ç¹ÔåüçûïhÛù]žîü̸~½cúƺ©ölv¬ïŠ»Œ×y_¤=—mó0ï@ÜѤ~ŠuMáÂÅéîKg*Ž|¨{³³žÖ÷§[õ·ÓÞ·¶{—k·×mãIžE³Áõ˜OâµNzÔMé95Ÿpv…'‚Ó á!©ýªêºnŠOú¤«_Tœò­š· ;óÙ<»q&óýÄç´YOË$lí]KWëá.ã3ï2þ^3î1>ÏùN’³Ùº/R˜ï2>Óq‡ÕñYnÏaŒ“‹¼èÎ÷43Öâq«¦çßœæúÈž5k–:y_£î縗EL¨Xò¾5ïÂaÖ¬{MÏ÷°¼óïD¥’/ÊW=7ëýfeûF® ŒS‘Q4š!±=I2Æ^óî/£ARƒÁ~Ô+°ÝØL—šä°Ñ¬ÐÞEF?×.¹”Ù™+Æ!œ ·ª³å5—Ú6nßËö½Åñ<ß¼M›—õg}!~¼>~l寵ŽœkVœ­5±jU®M¥.å5'xŸ1ªV-àšSêLÔ˜ª¾äß`ë™U]™Åµ£Ô¦ˆÎ¤LÔ"™ÑƒFsôE ˜Ì4Ú£wígYkx>ë?F™‰ +àQ£9ñP¥p“Ñž-ãz®K·bj?S“u¾ØjÖ½R÷¨óAjcuø­£Ô\­ùžpÁY…­ŠÛ´ì—÷ç ½vÿ#¬u.±ÉnpÕ±ÖïÿÆAœC ÕYðžg¤¬ÁZ…‡SâQNùù•!Ï« E)B½„ƒÒÂm!¤=‰ÿ¼ÀlzŠÈÀŸô¬§a<ßÉAù:}_ÿAýmŒBWg 3rÍv±žk~ñœú"(íxd¶¿n+}«ý==¶üi¾”´?9@ptÑ@Ì«¤èš8Åsh&|ˆ‹‡D%@Šìÿ¶ÉYiµ²w§¶Ö‹€žiõ/V|Iš¾(%\½É”g7€ ¥þ…d=#°ÂóM`®V»ssÎéglÿ·b™­bà­ÝCÅæbžX9wí^ZêM}|=ÉÕRõõÕÎW\ ÏK}´ µÔŠ|m÷w´{hDKh ðe4ÈU{°£å£¶‡8ZJ<´Kµ4”Ê”4ÌU{¸£¥ÜÃö-]NW'éJWí‘Ž– +Ûs´Tzh_¥¥*œŽ¦4ÊU»Zq%üiºÍU{ªâiòœÜîa»ÞÑ2ÃC{¦£¥ÁCû-ÝI³”t—«ölGËÛwki.}Føú¬«v££ås¶ç9Zæ{hß«¥´PIŸwÕnR¼Hž_ð°Ëÿ_TüeúÝG_ù«®Ú‹/‘çRÛË´ô5Z®¤û]µWhéë´RIßpÕ~@ñ7åù '«lòC>ºú–âÕò|ØÖóí4Úkäùýþ]OÛhi-}ÏדuZz”óÕ~Ü&¯÷ÕÞ x£<Ÿ°õ4§Ñþ¾–6Ñ|moÖÒT®~ÚOÙä§}µ·*þ‘<Ÿ±õü0öå¹M¿o÷´ý-ý”žõõd‡–vÒs¾Ú?³É?÷ÕÞ¥øyyþÂÖ³;v‹–öÐ^_Û/hií÷Õþ¥£å€‡öA-ýŠ~-ü"rÕ>¬ø7ò<õ°}ÌÑrÜCû„£å·Ú­Zúý^IpÕþ££å%Û/kéOôŠðkôª«öŸ-'=l·9ZNyhÿEK¥×•ô7Wí7ÿ]žozØåÿÓŠÿ_xíô–Èg]µÿ©¸CžoûØþ—–þMï(é?®Úïjé=ú¯’Þÿ€ð*²¢¸¢õê÷ÿ; ÃŽ,aXˆ( ƒì‹€, +”]T@A@$€d#(FL8@Â"(‰Ç "‰1jBD FÁ„,'«arûvÍsú|ºÿ?óî{ïö«úª»«Þ­¾â| oELò/‘¯#+©¿ZÄ©SI39ª}b9©@_QÊK¥„êÊU‘ªÉ3£¦šFÕ¥FÎêšÎ×"^“£º¶Fu$/¹5u³˜Ý(ª¥P1Jci[¥åÚ„¹›f1 ºQT1J qzPZÆVçg1ñzQ¤µFm„ZQÚI¶.,­iŸÅtH˜ûº,&^/Š¨b”Nâô Ü[ÝÙyªDé?/¯;Å(Ý¥›5žôˆ­vºOz{瘻F}Å)<é[=@£r‹‹b5 8 (Ô€’CÊÐ,fXBõpFõ Œ”Ûc«:jA”(YP4 Ü•ÅŒM¨§Ñx™à¢‰±Õ“²˜É s«š”)B­(÷I¶.,­™šÅLK˜{z¯ET1ÊLqzPfÅV:ÿ qvü¼¼î£Ì“92W¨ñd~lµÓ}BÝ' s̽H£Åâž,‰­.Òh©,sQ¬§…Prh@YY&^•\‹ +§…ZPÖ”¹rÝ(T‰¢QÖ%ν^£ ²1©’5ª¥X®¦ú¢Õ[ÊÄ[sVosžJQž*såÉ«To×h‡<<3jžÑh§<›³ºŒJ”çrV;](ÔŠòƒ2Wž¿Jõn¢jEùaâÜ/h´G^LªdªDù±\MõE«÷•‰÷ç¬~Éy*E9XæÊ«TÒè°Iž5/ktTŽå¬ÎR‰r<¡Zu¡œ”WéOÉk±ÕN% +µ ¼KP‚’¥%AÊé,æÍ„ê·4z[θèØê³YÌ/æV5)ï +µ¢üZ²uaiÍûYÌ s˜ÅÄëEUŒrNœ”b«Ï;O•(ŸÄÏËëN1Êgò{¹ ÔxòylµÓ}BÝ'sÌýG.‰Sxò§Øê?ktYþâ¢X (N +5 $i@÷é€W`}b[â Ä›‰Ãˆ÷&'Úpž_cŠ¡åÕ4Ñ#“bì+«k…•:ç0£L9‡>‰ ëË…¨5•–W¦š©À°<++++‡ŒVÖ +F»8ÏTÖ¸A«(ßÄTeX…óT#V'Ö­lnªkœojhÜ6‚5•ïà°‰šœíbmbb^Èë¨Nk+Ó%‚u”/ˆ`žò=ÖU¦¯©Ç°.¿«±!±±>¯ÖcÜ„Ø"¬Ôš†14ÁÆÊĺŸÆœçZbSb³ÑÊѦ©ÆcM3'F°¹òS¶ Ñœ³}ƒØ’˜Olò:jªÃ–Ê̈`¾ò…l¥ü‡­•™oÚ0lÍïú&±±-ù6Œ;„WuÔ"‡í”)rØ^™åÁ³ƒO{Ž½ŽØ1Œµf•ÃŽÊ¬qx½2냧 Ÿë9öFbgâ ä;1î^ÕQÅ;+³Íae¶›® »pìMÄna¬5¥Ý”Ùå°@™Ý¦;ÃŽíAìIìE¼™W»3îCVê {Âmñ^ÓKãì­üaÓ‡aoÎÓ—ØØ?d´ò˜é§ñIÓ_ãŸFp€òo8Hbg»…8ˆ8˜8$äuÔ[)s6‚ƒ•ÿU‡(ÿÃ[•9çp(‰[ùÉÃÈ e|qñNâ„°RçùØáe.8¼ÄÖߢÖ|áp¤2—Ì(†#Yù-âÄÑ!£•—Íÿ{Ciü¯ŽQþ+s'Ã1œç.âXâ¸)­”`w)=3Nãr¯|%‡HŒçl‰“ˆ“‰w‡¼Žªæp’2µ"8Yù¼Þ­|‡S”ibîa8…ßuq*qñ^^½‡ñýÄ°Rghì.Î7Ó4nÁéÊw0÷3œÎyfg­ìdfjÜÅ< qAg)ßÓa!‰YœíAâlâCÄ9!¯£ú:œ­ÌÀ>¤üÎQ~¸Ã¹ÊŒ4óÎåwÍ'. >L~ã…áU5ÚáeÆ:|D™‰f!ÃG8vqqk͇‹•™êðQef˜% åØ¥ÄeD‚YB·<¼ª£ +.SfŽÃÇ”™&ø<Ʊß&®c­Yäp…2EW*³<8…ðYɱß!®&®!>Ϋ«?AÜVê «Ìj×'˜‹×Gp­òÅæ †k9Ï:âzâ†ÑÊm8ýJãífƒÆ;#¸Qù]7‘ØÈÙŠ‰›‰[ˆ[C^Gív¸Y™=Ü¢üÞnUþ@)ö(¹² Ö ¶ñDÉ•EðÛ`ý`[‘/…ß { +ù +øïÁ†Áv"_ ߶6 +ù:øþ°`cN„s‚ …C¾þ%Ø>Ø)äÿƒ?У¤¤üë'JJþ0ò†ð§‘§áÁNÂÎ /k-`Í`Ï‚ï [ k…||l¬òð›a»`ÅÈÏÃÿKÌó¬jpÖÝ:¾·¤ypÊ&ØÅUœª®v©¼"Ãó¯¼t´Ãáƒý¡Ð„oÉAø`_øЄOøË&|³q6Rí‡ÞÓ%îizÍðt3ŸÂþVì“ÆüÃp/1_ :8üÞ`'1_"Gß…=ÄvnÁ ˆç;CÐÈäWàq¶ËIØñ"c¡¤,ºX‹Ù¢¶ø_,ºKy>yxô„ò[xô’ªÄv bzH ]aÑ‘ÉgðPt'‡Åþ +j,ú/‹þÜö„¡Û²è£,ôƒÅšBE‹.ǢǷXSù'<ºÛ~hÃГð·á ·Xs‹s=øm»'Nlþ6œ¿'¤­èò¯㤳Ð~ü­X Åg¡u,úI‹“ÆâþYì«v;<î= ÞhñZœöÝ@^"Çûgqÿ,ve‹=ÍâͲÁZàþÙ‹E&Åf¿„ðD÷fÏ#Öã¯ÈÑ٠ȱ)ôJ)ô)ô[)죩}°°½ÈqoS§`‡`?AŽuópÖ¦NÃ×GŽ¹=¨’Ôxh æö Rè·<¨ŒÖÍC¿ŸB·åA]¤ð¿§ÞDŒŽ<õQQ tMêäè¸SŸ"‘Âÿ–ÂýMý9: ÷Ë» †õöð¿{è}½ç`Ãã÷нz߇áyò°ûã¡Wòp¾x?‚agñ^Aþ1<ž­4î³·9ž ïgÈëÁB~1tZÏOZ/ç6]?/}?÷#Ý)½8½ +ùQ_†í@~{mÏOúY䯸±Á˜ç‘¿ +÷!ýoc2x2PVi¬IN¦ +r¬Uk’Aï’©ê&ƒ5É`2µ‘C¥dÐ;dÐidðzS¿7rô>ºLëå£÷öqêù/Âðù{c=ýý°‰°}Èñîûx|œÄþAäØü£A Ãûëã»}¬¯ûäãýõq–ùX_÷É?…kãÿ࿧¢gÇǹé¿g™ûÏy‰'ÿ~ÃÞCŽÃÇ^äcÍýß ÿ.ü'&œÏ·ÿ oý__áóá3kÀÌÒ"fé$½.Òë&½ÒëEïïCØ—°ÎUéOÑ ÂÁ„ø+.`f +³ŒÞ(œùÆ@àÌ2"f™Dù)„S §AàL;¢Y„³ ç@àÌ8"fY ½E8ó-À™e9D̲Šòkdf­ôÖSmƒÌl”Þ&ªm–™-ÒÛJµm2³]z;¨¶“pánœ«»‡¢½„û÷CàÌx"f9$½#8óƒÀ™å8DÌrJtEWÑMô½E_ÑÏ8nœ4N“=aœ2Î=Žx=ïÊiÜ—«Æu²WŒkÆ ²—¯¢ç]¹nÜÅ`1D ÃÅ(1FŒãÅ1YLÓÄ 1SÌóÄ|±P,2îÇdŒ'dï#>DÏ»òØx" +ˆ‚¢°ÅE QJ”6‡£dGŒcd"FÏ»r÷Yã¼q‘ì9ã‚q‰ìYÄóèyW.—D9QAT•EQ]„Šš¢¶¨#ꋆ¢‘h"šŠ¢•h-ÚŠvÆMã¶q—ì-ãŽqìMÄÛèyWî÷î Éþ9…}B%p§ +h‚?[ðIï’7Ï€²ÅZ ²áN‚;l%3mrÓ¦0mjHƒ6-Õ#¯t¸ÓãÎ@qFÓf2mfÓf¬h³Eñþ—ëåò]±!~;ãB<ˆ !æ’âN ©¢yWvÂ<¸óâÎçUË/½„¡y…q‡à.âÅ/*½b„Åý(怜&û©å2mîÿàê½\/×Ë¥kÅ1mÊHO?ÖW,Ünaž^a/ž q¼Î°Dx~%Ás,™|Or¼¿¦Ä3-ìþšï£éñšcX-lÂ,4oV¼Og—'›[Ë÷t,a§v^<±óËóYçò>éÝ_!„Eð.R ï%\U+iÉ”rQ­´%SÆEµ²Ò+ç¢JÄ*oÚ +>¹Š®©UŠ¶ZY³ZéUõS­¦Y­ºôjhîìo…Ö„ZPêA}¨‰QW£ZÓ6¤¨)îFÐXV›hž­ash¡¹³¿Õ2Új+Íj­ýäÚ¸6[[Ó¶s­¿ïjOØ!FÔ:Z2LÛÙµ.Òë³u󉺻¬ÖÃ'ê…»§‹j½-™>.ªõuÌì§A­¿iÁƒaŒ„!…aæ(®¬6Ú1sŒ†ÙÆŽƒñ0&Â$ =£^“¥7…pªi§Y˜Ó5¨Í œ ³l¹³•ÕæX2s5ÌÕšgÉÌwQm%³ÐEµE¦]쀹DƒÚRÇÌeÔ–®€•° +Và =£^k}¢u®j1XïmÀýŠ‹j-™W]TÛä7ûšKj›¥·÷ä¿îÅتQm›O´Ý¥™"Ö›~³;\R{Ëov§Kj»3wkPÛCø6¼{á¼ ûÌx¿…yPƒÚ!ÇÌÃÔŽHï¨ ó˜µ÷ß”?®¡·u < §È;‰qF£ÚŽ™jP;ë˜yNƒÚy p.ÁG𱆞Q¯ËÏÁ½¢¬vÕ´×q_Ã}÷ ø>…›p˽­¬v—ð|ŸÃ}x Ü1ºõð‘«*ë1áø¾„¯àkWÕ¾±d¾uQí©%ó‹jßKïU"ÖÒû)Ô~6í/>¹_]Sû-ÚêïšÕþÞŸ~ªiVû[zÿhîìo= Ç°Œ3Áb³X¾ fèScA¦õPw0‹#«qõÎÆâ&` õvö«–(ÚjbÍjIüä’º6[2Ó&w«$µ„)cD-•%“w–ÖµtÒK³e^ÆPËäevY-‹O” wVÕ²[29\TË阙KƒZnÓæcyX^–Ÿ…°"¬ÆY! ³(+¬¬VÌ1³¸†ÙJ–d¥XiV†•UïZ9é•'¬`ÚŠf% j• «°ª¶ÜjÊjÕ-™ê3D©jÉÔtQ­–%SÛEµ:¦­ë€YOƒZ}ÇÌÔ6bYÖ”5SïZsŸ¨…›ZØ¿¥OÔw+ÕÚX2m]Tkç7ÛÞ%µÒ눻 ù¼5ªuõ‰º¹3“ìßÝo¶‡Kj=ýf{¹¤ÖÛ1³µ¾„ýX6€ fCØ@3daÕ 6Ì1s¸µÒiÃ¥Am4á˜Hù±ê½ý¨#Ï&71c’FµÉŽ™S4¨MuÌœ¦Am:á 6“Íb³ÙõžÑ¨Í%œÇæ+õYÀ:`-²d³%/ ¶”-C»Ü†µ‚p%[¥4Ûj¶Æk-á:¶^EÍìñ +Û`ÃØHø*Û¤¬öÛlÃØ¢ªA}^g[°Þ ÜƶëÑVíMM}v°·°vîb»c`¶=„o³w”{íeûlû5ýÕØ»hÚ°fG”²c6Œ÷4Íö>;î€u‚ð$;¥¤všqÀúÀ’ù}µsì¼Ö‹ì’Òl±°.^aWUÔÌ×l× o°O”Õ>µeÜ$¼Ån«ª9ø{îhês—ÝsÀúŒðsv?f{@ø=Rêó˜=qÀúÂ’ù’}õBz_;à|Cø-{ª4Ûwì{¬d?©¨™=~¶eüBø+ûMYíwö‡ ãOU êóûí?6¬gáÈ++rÎcÙ0 =³qÁc;`éQ£n›z0a—¼x<þ è$à y"žØ†•DëlImêÉ“óJ:)y*¬Ô„ixZ%µt<½VÂŒ<“ŠšÙ#3ÏbÃÈJ˜gWVËÁsÚ0r©jøtËmSÏC˜—çSÒÉÏ ð‚¶¬B„…yˆÎ)£P+¢©OQ^Ì«8a ^2f+¥µ[i›z²¼œ’Ny^Wä•lX•µÎVŦ^•°¯®¬Uƒ‡Ú0jÖⵕÕêðº6Œzª>ÝêÛÔ6ä”tó&¼©-«asÞBI­%oå€ÕÚ’iÃÛ¢m÷œjíy¬Ž„xg¥Ùºð®XÝ»ó*jfž¶Œ^„½yeµ¾¶Œ~„ýùeµ¶ŒA„ƒùU5ÏPM}†ñáX#GòQ10ÛhÂ1|¬RŸq|¼ÖKf"Ÿ„vòsªMáS°¦Nç3”f›Ég9`Í&œÃ窨™=æÙ2æ.à •ÕÙ2.áK•Õ–Ù2–«jøt[aS_I¸Š¯VÒYÃ×òuü_öË8®ªŒã‡Ýl +›4mÒ–nÒG’6MÙÍf³É&)¥¥o(PŠ…B)Jåý~”ò–²”gË«¼Ê»´¥PèZDQGF…QPDTDÄAppTTÄßýß»ß4ã e¦"Á¹ßÌýÿ~çܳçž{Îw¿sïvZ­þ¯>ÛšíÔ¯ Êûbëvø¿î=°ëƒòÁØC;üob·ÓbÓŽþGÞ6o§þá |$¶e‡þgkìÑØW>¶M`S<Ä‹+Ä*q°8T¬›Å´˜ljSÅâ~âââq¡xœxº¸X︷yt3Modg”ôÃn_Ó[Ý~’ûª·Yâþ¾¶6¹ýM?îf›~ÂÛUØlµÿ‚O«}ÒÍ1ý»Í³9js8W¿ëæšþ^¯<ØÚ<ÂC¬ö‡=8ÏüϱïKú7ßô‹î0Ó/<Ü<¯¸#LÿªWim^#fxv¤žñ‹>­öwî(Óo3<;Jm¾$-ã{¬å[îhÓï]Jú]w¬é÷Üq’ÇêÞãÅÄÅ“Ä“ÅSÄSý–ÖÃ_Ü ¦?x¢yþð$ó|“Kµ;ÅÜ)¦Ä­’Þ¹Wžfm*Bxº*OÓ˜ÏÏÏù~ë¡*„gZmuϲÚÁ!\dµCžmžº€‹å8[#9ǧµð\ó4„ð­Í 0ÏM!\¯ÊtïƒâCâq£ï·n áCV{{n0ÿ]=¸Ñü«zp“ù׸͒›ô[Ä­â£~­ÝµÎ=bz}·Xí†nµÚÍîQÓ[zçäþåí—Š.æ\~Éõ2Ú;ƒüÚ¹8§±²3)©‹s+ã[§.Îy¥Œ/H¼Õû&òljÀ±WÑDÚ8'ø84ïÕ¡Y/q2àÄÒ¢+–’u’ j–ÿ˜r‰÷ý<åÕA›ŸRAäòå?§dœ ¢QùÏ(o ôË”ÄÏÄÊ@óÖdµå†þ͉©Šl§š±Õ0çÕŒ­š|¹†qV“ƒV“çÖÁÔ¢+ÐüÏ€á\ hâI5Q®šìlðÎ bb=f®ÑÿŠn(ãò!×ßÑÌÕ®,‰Ï[KôJ1?)槖X•b~RŒ¡–œ!u€÷MLJø‰@)æ'E©enSdó)òîZ¾’©^š¯[Š,³Ž<ŒõPÇz®c{r­÷ý"妠 Ùqë»núÊǹCÿ‚òë\_E¿JùM¯ýJž·îÉ@›‹¬sØëü/ã«û~ Y¯uÏ OIÞ>¢ºèF²®G}Õ3æž«~!ÙkÃrJ²Ézrؾƒõä|õd… ¼óúEAÖl=óÒHÎ;ŠñÔ{÷“ÝŒb œ&Ÿ.º1dC£S¥¯›ÈGM¦Ó4€k:‡ï)ô t»çãªA³šRÔ1þ1ãèyi…&id^ššÐd+MäcÍŒm,ë¹™±5“ÙeœÍäXÍE4ߎ¦)èôj4§Ê&N„c‰ÕÍDàfò‚ôÛÎíFÿé šùH³.ÓäMiæ ÍžMó%L³gÓï:—á]g&R–ñû}4}gøvg’f3ýÑd7NÆ“ág˜ó 1¤¥†’9ÊëDYdŸŠyq«Æù©Vžaâpq„8R¬ÄFq”8ÚE¹Xd‘EÖÌË£š½“øù‰K‘EÙÿ£yGÚ•"Òš£Z¥òb»Øñi+²È"‹ìš½ +R].:óEYd}Á¼3_·Ôq¢¸§8Iœ,N§ŠÓþWƒ‹,²È"Û®yùÔôß^®tnÜ6Ûòò™™R³Äý]”‘EYd}Á¼Œl¶ÔA.ŠK‘EY_0/.Í•šï¢¸Yd‘õû7ûÕ`UuDgîKG‘º,EXz¤R"½,½/eé,,½-°”¥»KéÒQQQi„€…IŒb¢bˆ“X#–y÷?o?ß$ÿßý?o†3÷Üy÷½¹¼7s¿U—ºkÖGÛ¾ÚöÓ6Î^cU«þš Ôv\¯`îÊ@AóîD™ÀO< Šdaă¯"ÔžmGk;FÛDmÇj;NÛñÚNÐv¢¶“À;—yâ‰'™A¬ÓÔd›£¶áS—<ñÄ“HëÄ‘×+ÒÍbÕ¨dÍæj;OÛ” Çå‰'žxr{bU¯ùš-ï7Ÿ'žx’ÄúÍ·H³TmÓ´]¦írmWh»RÛUÚ®Upžxâ‰'·ë<µ&€o\ÿÝè>mYç™õšmÖv x'2O<ñ$3ˆu"Û +×ëVf¡kÑN¯x÷B¸Ä›‘øú••Ï>ˆ¬|öƒ/ŸöxÈ@dåy"+ŸãàËç„K^¾zpÂ+Þ7 \âÍH¬÷æMˆ”L΃/“·íñ—Ì|ïÔ¯x߇p‰7#±Þœ‹)™øºÀGYù\_>ŸhÏgÚ^…pÉÑ÷µ|áï.ñf$7Þ¡o ²ò¹ftL¦ß[Xˆ“°²``{Ìf]ÀÚæ„pÉ2#qþï0DV>y,‚ù!\²ºÕ»XÂ*Œ†ðŠ·8„K¼ ¿ÿ‘’Iˆ”Lʃ¯ƒT²Ç*.™ù¾Žª^ñÖ€p‰7#±ÞœÚ)™Ô…HɤE°¡¶ B²ß¹©1DV>Í,‚-!\²ºÕ9°•l+[Ëö²#eQ%dÙIv“=(›˜'æˆ5²£ì!Šƒ²¿ì'Êi2IÆS.qR¼&Ί³2^•ˆËâ2¤ür”!GËDÊ+®‰âŠ– …H{Ä6‘Êþ¢e­£h‹É\¬ùe”,(£(†JÈòTV••E²HÓÄL*O¥-?•µ˜Š‘ídÙAÆRVURv•ewÙ“²‹1W¬å«±²§8$É2N¢ÊTE¦Üâ”8-Ήsr°*­ÊˆÅq… +Q™ GÊ1r,åß‹âG*"QJ‘&öŠí"ýŨ°µŽŠXLæf- ËB²0•¢’²•Såd%1[ÌÓÅ,ª@e,?•³˜ê«ú©85P VCÔP5‚:P,u¦ãÔ‘:Q:Áìõ¥8êGýi$%Ðz‹FÑhJ¤óÌΫ5Z%ªñj’š¬¦ª$šN3h%ÑLJ¦E´„ÓR5K%«9*E-T‹Ô•Jkh-­£í´“vÓEÚA»h]bv‰>¦OU%UYUQÕT USÕRu¨µ¢6tˆZRkjK‡éªµŠçëN=©õ¢/ékDƒi(¡xBÃèuúV{ÏXLÕSõÕ#ª‘j¢šªæª¥Bª«ˆÆÓDšLhM¡¹”Bóh¾j£Úªö*VuQ]UwÕKå¤F*¥ÑrZIËh­RUm M´….ÐFÚL[é=­½,ð]å¾/Ðúâ3ŠdÝ ô.@j{€å»¾ºÙ „<Æï4jÍ… 0bp?”€’P +JC( å Æ¯ÇWäü*ë._U÷ùêN§îõ¾þ^ߎ$p¿¹Ãwà«{°Õg»éZÙ“kso®Ë}¹Çé +<+o¼®¶C¹ÂçJéíKà}±Þš‘ÚŽ2þmd6Mp˜Õ[¹§Žã.:»ç$î—S¸÷Ýè|ÿO:3 w–Ã’]ÞÙ<'ÒtŽ‹Ïu*}Š¶ó¬_`<âШ—òé"m3–º¼©Œ%Œ'ŒG|MsØ2X+`%¬‚Õ°Ö²g¬‡ ‚¿Áßáp®À?Ùó | +Ÿñxþÿ¾Íç} ŸÏé¡ÿqñ/ö¥ñ¸LëW.þµÃ¾Ñö[Æwš}?°½Æø¯ñˆC£?Þྚ m%#Kúõ¨n÷ÉHÆs» Ŭ½Ù´ÍÎÈåòÞÃÈÉÈ}[OÎa:·»Ú—{–ïü˜ócžÄBX£±óû±$Ƹî)Æ(þ3Ï‹ÂéæEMgø ÷¥”ß¼´ß¼ŒéÍ(–uX9,l^+Ù¬²éÍ(V è}«šŽÌ¬b5‡=ˆÕ±ÖÄZÌÂÚ¶·ãaÓQØ—º.^ëÛ¬¶0u]oh:ÚîK#‡5ÆÇ° 6ÅfØÇØ[aklƒm±¶Ç¦# ñ¾t èuX'—·³éhC§ØÅÅ»b7›u׶G€õ=MGÅ^½½µíÃèçòögôeÄ™Ž:û2ÀaqÆã`‚CqgÏ… <&âXg¯ÉÍc:ò ïËø€Þ ¦ã2­8ÑÅ'ád¶Sp*NÓóéÖ'™Ž8Dû2#Ýl¦=ÎÂd¶³s]WSsüîŸg:ƒ íË|‡-À…¸ã\ʳ'©˜†Ëx\+q•ß}ËMGä}Yn¶&Ýl­éèÌ)®sñ'ý®­gltÍ716˜Ž8Dû²ÙÅ·ø]ÛÊØæšï`<ÅØn:êìËNßå°ÝÛc:B3Š{ö4>ÃöYÍ÷iûã×ÚÏ3ö›Ž:ûò’Ã^Æxáa<‚¯àQöÃWñ8'ð$žú‰ý2¯¢ºÂø“ä%@ÂH v’<@PDYd—]@PVE6Å«`ÕN­ E‹àŠŠZ‹h­u_wqÇ ºØÖVë.ýæäæ8ßü^É;þÞ¹™ÿ÷Íywæž¹™wçMÏ·ÆY¯}M52/}~“¸ÍÚui7çyŸß"n+s¶íìv8//b{A»â8ÍËË>ÿŠóªu¯1_ǶsŸþoVùÌoh_ÛÍË[Q³o;ï€ïbûÀ—ýÛûØvUéÌïi_ÛÍËGâ>v>q>uv;{œ¿`ï¯ÎߜϜ8ÿ„ÿó¥ó_ß1ŸcûwÀùþî|±ÿ/í+ÜÏyùjŸý¯÷ÙÿF»Bæ|+î;ç{çëtö’ñ©W¨Óˆ¢fS(Õº4í +u…Ä¥SÕ¡ºT>“²(›³9ØêkW©0/¹>߀Z׈Ù[žïó&ÚÕÆq^šŠË×®%‘ˆ;„ +µ«‰Za3•Q›û| f‘öL$B£–>ßJ»šÄiÔÚçÛ0Ûj×”Úù|{íj§QŸ/Ö®&q•ˆëH¥¬eT®]U`µaêDã2Rq‡RWíëŽYm7:,N#.®;¡}Ý1«íAGÒQq©§¸^Ô›µ öÕžƒ¨Õö£þqi€¸4HûºcV;˜Ž‰ÓHC´¯µšõÓ8ÃÄ §¬#ix¬ö Ô;:NãŒ7–ŽÓ¾ê˜ÕŽ£ñt|\F:AÜšÈ:‰&k_D…'úüšJ'ÅeÔiâN¦éÚs³Ú43N#Í7›NѾæó§Ò:=.£ž!îL:‹õl:œ«=R×y>.ý"N£ž/nÍמƒ˜Õ^@¿ŒÓHj_kµª½ˆ.ŽÓH¿çÒ¯Y/¡ß€—jÏÔu™Ï/ …qu‘¸ßÒbí9ˆZáï|þrº‚–ÄeÔ+Å-¥eÚsµÂ«TF½:Jîl×jχn£ë|þzíj§Ñrq7ˆ»ÛMÚ•é6º9Jîl+´+Ómtk@þ6íÊt­w»Õ;èNð÷Ú•é6ºËçÿ ]Mâ4Z¿[»2ÝF«–¹‡îÿ¸Ÿç»OûŠj¦ÑŸò÷kW¦ÛèÏù´+Ómô`@þ!íÊt=D»2ÝFäÓ®L·ÑãQrO`{R»2ÝFOùüÓÚÕ$N£5âž·Û³Ú•é6Z%·ÛíÊt=ߨ]™n£Mâ6[}ž¶€[µ+Óm´Íç_Ю&qmÈ¿¨]™n£?˼D/ƒ¯ìçù^Õ¾¢šiôZ@þuíÊt½S»2ÝF;òoiW¦Ûèí¨Ùw´ëÒnôn@þ=íÊt½ÿ@»2ÝF»òjW¦Û裀üÇÚ•é6úDܧ´[»š¨î‰û˜6úx ×c +3•™Æ 1Ó™Ì:̺ÌzÌLf3›™Ã¬ÏÌe6`6d6b6fæ1›0›2ó™ÌC˜…ÌfÌæÌÌ"fKf+fkff[f;f{ff1³„Ù‘YÊ,c–3ÃÌNÌÎÌ.ÌC™]™Ý˜‡1gvgÁìÁ<’y³'³³7³óhf_f?fææ@æ æ`æ1Ì!Ì¡ÌaÌáÌÌ‘ÌQÌc™£™c˜c™Ç1Ç1Ç3gžÀœÀœÈœÄœÌœÂœÊ<‘ysódætæ æLæ,ælæ)ÌS™s˜§1ÉpÜæ!E<Õ"Se”Ô¦I>ÈôɈÁtéY·Ö™!ceš:Ⳬĺҿ~•XOú7¨fÊù™,ñyÌ–>Mc0GzD°¾ä «Í\9¶y-²ŒRdÙP2­ªÁFrT›*±±ôoW%æIÿqe·Ä²©dJc0_z–[H¦SµyˆÛ% ¥g×Zd3å°6—|÷@¶>=b°HzUël)cõòîkëûT‰­¥ßj°Õ¿†ÙVÎ<вd²½ôƒ¤ç°K~DµY"ÇŽªEv”QF[–Jfl5X&G«Ë¥ÿñÕ`XŽšWv’q'Yv–Ì”*±‹ô?1‚‡J~Ú~²«œaz v“ž3½õÉúÙ<\ò§Zv—ÌiæñgXöÌYæHñçx«ˆõçV‰=¥ÿyQØK>ÈÞÒç‚*±ô¿0 +–O/öÖ'ëÝì'=/ dési58@ŽZ…åÓE18Hz.®ËQWDá1òéË!’YZ •£®ŠÁaÒóš—üu–#$³ÜŒcGIþfËc%³Â[­ö7F>½Ý[ ­¿Ó'þ®('Ÿ®2ãůöÖ9ëï5'ˆ¿Ï[‡¬¿ßLÿ€å$ÉçšÌ¼(¾-‚~êšìÆd ‡¾ ]隬°ÙäšÜxÉ›ýú¬kàÞÍm Å]šÛÜ5p7œýºÑ5MpÏäu€Þ]Å'o©kšâ] ïs×\dLþèÅÐ P|wógB÷@7¹¦Î[XÅ=VØú(t¹kšãø¯¡XÑ›†n‡>èš–xZ@±ªµtMkLn+ŒÛúkè;®iƒïEëž®i÷¸1mowM{¼õµýŠÿc»QÐ'¡«]SBxq@}%¸‹Šqþ|#‹ÇBq}ÅBo€>Å·±x t)t=tô9ׯ…nÆ>ÞÄJÂPÜ?% ¡[¡Ÿ¹¦#æ¹cèÙÐVo>ýÂ5¥ømV:Šµ©tt—1eù®)ÚYæBWA?†~Ý Åÿµ¼—kÊñ=+Çu•¯1&\Ç5aüÂφf@Ï‚¦CçB³¡çCñ†žÅ;dø(îƒðb«¨7Œ7¥ðåvÿJ»¿ Šù_m÷kïŽáëíùnÂøßC®ð]Èc>Ø×0îßð½Ðôa[ÇÓV‡fB×Øýuv´.t£Õçq½˜—ðè\è6(žÈáíPÜáÐ3¡;¡[+¾oÆ1dRLªI3!“n0¦çëšDŒzØ2µ‹HF2’Qã‘u@Gg›¬eCDVI&×—#«)ØRM£ˆcÈ$f¤XMe¦™|³ïSÅ‹Š'Kâ>U¼ðž,v&#ÉH¤È> £sL}ÓÚÉT®Á)vóV:¼BšÎÒ×±+tÅÚ˜‘&.dº› uºò ÑÂÿô¨Ø+ÉHÆÁ™ttÖùÞÐQ>;~;WDª¥ÏÁPåoÿ±¾Ï†·12Œ†ýדpŒv„¬V>¯'›Ÿ?Ç3ì<±ß·’‘ŒdüEÅs†í ŸÀö4;r¾‡Kp1Iá|]Ëp9®À•ð)¾Ÿ«pu®Éµy ÃÎ<”Þ溰•Ë}Ø•ëcw8Ä ¹1ô‚žÐžAFƒ–Cx– “[ÑZ1ø8Ÿ õ´‘6Ã5ŒÄhõ’=G[1–>¡è3ú^€ç¡/wÂxLÄÐóÐJÌÅèKúJ¢ùŸ¡o1óÑ.HÃdšŠ#±0}Gÿ¤¥ô/úörSýa ÃÔÑ ,Å=é'‰çs|ËðQÚGÓq,í§ƒX«àh:L¿Ñ1:I§é,ÍÃê0˜ÎcmœH¿ÓeJƒ¡0†Á‹XЛ0њɽ%‘ßã‹|‰ vbŽÄ8£9ž¯ð5l…r"Äžp…sp27DZ7¶æ‚\„ ÁH£ðQl‹Ãh|;Ð0ìĸ(—äâRˆßâ²\ž+re|š«qUnÎ5¸×1Jñ 8Ž]x­æz°…[ð)ݸö€Ã܈›pÞÇ«øZ@“h-¤É´wÉ9+§å”´–6rN.Éeé åŠ\•ÞÒG®N#Âp†Ô’a2ÜH6 +Èd™bä2r9$#QjË<£ ‘"+å5£¼%u䨑fÒ\NÈqY-u¥­´“5ROºHW¹(d­Ô7@®KCé'ý –õÒXÆÊ8#Öˆ“ÒĈ2"¥‘Ì”YF¼l–¦²PùŒ<|ˆó¯<ž'bâ©”Ècy:Ï”rüþ̳)Šçð«Ë y1/åå<ÔÞÆx^âÑ<’xÏàY<†_¦‚ü +Eó\^@q¼ˆ—ð2^Áó…¥¢T’òR÷ó>èÚ(J\)ìÞ]{ž*B€Hµ·çS)e’jš¯lÚCT—½*†a¶.g6ýíëÿåJ€DGª³!BÞ,öá·5: }ŒßÖX“â!) –S¥¨[¾2öe_öõÇ_Ž;>ûºû¯8ÈáS˹Mló@>o9?$ë¼Ì`“…nüjfuŠsÁPo´SEÈtDª¥bcŒÊcÕ<âu NRóÉ®¿k9½w”µuÉí¹ã¬žòyV)«Ï%Ù“È¢AïÓÈšaÍE²<ÿ{2Õ‹é_Ls O­xÐã—ÌT/¤ÿ½™ê÷é_ZsYO­LÐó/—©^>Hÿ +™êƒô¯¤¹Š§V9èùWÍT¿?Hÿj™êÕƒô¯¡¹–§V3èù×ÎT¯¤]­Ô·ôoPi¨¹‘…c­ 4µ¿™‰ÖZè¼¥‰M«€Êš´ÿ!­5´ÑùÃ&62Ñþ XÞÿ£•Ç4·µðog¢=OXŽÿ¤‰Ö:Xúw ¨tÒü”…ÿÓ&Zgèb9~WSµ›¥÷€Jªæž>-=üXõ2é»7ô±ÿíYxÎÒÿySõKÿ¾•þšø´ôóc5ФïA0XçCLl†šhÃ`¸Î_4±azw#-ïT@eŒæ±>-£ýX3é{-¯û±zäï7a•Îß2±yÛD[ ïè|‰Í»¦w·Öòþ×T6hÞèÓ²ÞÕ&“¾7Ã{–ã¿o¢m­–þÛLÕ,ý? ¨|¬ùŸ–üX}jÒ÷gð¹åø3Ñþ_˜úzPßE<ÊÅÍ‘šc4ÇkNÒœKs^ÍÉšS4Ñ\\ó½šËj®¨¹ªæšëh&÷¸Ëô¸ºHº]ÜìU oÙ¡. mãt³W„o9FÕ\ˆÐ6Qnöªñí-')[¢µM¬›½j.ˆó–ó*¿ÿ±_àQ]t^` !ˆ”!ô:¡½C/"Mzï½7)"H“& *¢(¨ˆQ°7DTDEA”¶Þ¹oöÍÛý²áÛ}wÍÿïýæÜ;'÷Í=3û23+>˜i¢úk>¥âXU|¢0'§‰ê¯÷³hÇI¼‰hÌÌe¢Ê).1·bJY0Ò¹ñ©¼&ªÌ²ŒQ|¼Ä|HÄàSùMT9•$PLU‰±HÀü‚&ªœ‰…S f,>…0³0b3V9‰‹(&Ibœb°¢Æá³Å‹›±ÊilÁâŠofÁŠoÉJbXÇ)…XÚŒUN‰¥“,±Œb:ˆ5†O|¶by3V9%–WL7‰ñŠéÁ*`ÏVD¬dÆ*§—ÄJŠé+±²bú³*VÆg«"V3c•3È‚Õ?Ô‚Õ?B|·ð©ŽãÔ@¬iÆ*g´ÄšŠ'±–b&²ÚÖÂg@L4c•3Eb¢b¦›˜èºÕ4ÑugIŠËuüRè·„ø8øÖÐ_ñ.ð+¡Ÿ ñnˆkB[›âº3üÐÖC ãÜ© mÄãÁׇ¶âIàAÛñð¢ÖˆGƒom'ăÁ‹Z» ~/´>)®›bì}ÐúAœ>Ú ˆ·&º\qÐ*¦¸n…ƒŸ­ÄaàA«q6ð0W"Ä‘àW@K‚8ü*hËeþZhMeþh- Ž¿ÌëVNðÛ íV÷¶ˆOƒm ħÀ‚Vâ3 ¿!Vâ³L|7Œøø©ÐÊB|üLñNB|ühÓe¼@¼_¿X¼_¿ÚBˆ¯ƒ_ ÖövWð73B!>¾;´NïßZ¤äám6rB||h½!>~0´|?Z,Ä'ÙÝy–™çŠy¢˜§ˆy~˜'‡yZ˜ç„yB˜§B¸|>«ôj¼ÿòG¬E$K/3'¨˜I.éóH#½yrÅÊ^Aéͳ§K/« ÎÃô1ót笘OiéÍs´¼ìÅKož~•e¯Šô晕ÀÒËŠˆs4}ÌÄ<áë0s>u¥¯‡lÙk(}c^¬Øp>Ïä ymÞ·âyU^'ð¼/ÏWó +¼"_Ãð|0Â{ò^¼ï ™yÞŒ7‡§y¾Ž'ñz|=Œ4‰OæSù4u$ÅÇð±0bgÞ…wãÝaô6¼-ßÀ“y;¾*.æKøR¾ ªÏæsø<>Ÿ±+х̹ î/a×à˜kÉØꌭ‡sóÒ!8Kâ3^€“æßßS™RýµæÉBUæ5' œNe‡]]øð»Á€ý07öò¨Ì¼ÒÇÀý>¿ŒcïI—oV0ù…`W¾Û+ŒXħ'ãய*‹Ã½¿$ì7ì5î|Øs|¥ìMi«wzO|E¸Áë\eØ۪¾VößFçðkµ)œáp·) +¿ÕuÏk8›È&¡oãáo ÍdíÉ5þoZMøm–ZNmøm–ûù¿ýº,‰Lo=Vß/ã4€Ƚ߈5vtMX³Tsš³^ÿÖ’µrToê˜ÀZ³¶ìÁ4=™L®=PÖZŒ:²Îè»°®¬›%§;{ÈÒïÁVqOÖKŽYK^_öˆ¥ßõ·ô°–þ 6XÅCØPcÃ-y#¤ÉFYøÑlŒ¥?VúqÚœÇû}í6M–ÑhSÙ4Ë_§[z3Ø,ÏfsÐÏeó,9óÙKÿQË}6´ŒpÖfŸZ(ÜÓ²€ÇŒ¬pGà­, +îdâwj4ÜÌĽ,ÜÅÄïSq+w°‚x÷) ·88­‹©;Ii¼…0¼]ˆû‚¸ܽ $Àm@ìÒâVmîÃbÿ·éú¸‹5·hØOÜšáž!ö†ÖpÖŠÿÃdxÛÃ;ØÎÙÎòíoœxËÄÛ%Þ*ñ&‰·gÎg ¾)â ½áð>ˆ7A|ûcá»þÿºx^—»oþÞÿÿ–MTÑ$r-Ádæ6…\G°ÙTM»ç1Ò£M·13È5ƒÍôÈÎJÓéÑf{dç뢶¹6f^šÇH6Ñý&¼‰»°/"×Ge‹—hìcnñR¶Œ\¥ó¶ÜÆâqrÁf'O’ë6ûñCýÈ-þ˜}B®Òyûñ3ýÜ-þ‚}I®ÒyûÊ#{Š\µ}xZc¿!×Emg¿ÕØïÈuQÛ÷ˆgÉu›ý€xŽ\G°Ùˆ?iìÏ亨í<âý…\µýê—Q.’ÏÃßö›_Fù|þ¶KÙË亨íìr]Ôö'âÕ4>u\w í:â_i|êorݶŽV»I>__í–£Õn“Ï×W»cc\äš‚À fcÈ5ƒ!6&µ¦`0#£áÔš‚ÁŒL*ÊL­%˜ÌUQµ–`2#‹ §Ö fdµ1Ù¨5ƒ6&;µ¦`0#ÒÆDQk +3rؘœÔš‚ÁŒhsµ¦`0#—_FÉM=›‘Ç/£ä¥ž‡¿ÍˆQQ~j-¨"µ©£€Š +RkA±Ô +¤ŽBÔ +4=÷S+: +S+Ðô¡V uÄQ+Ðô¥V u£V é)N­@ê(XRcK¹Å¥²dêÊU.‡X^cãÝâ +F%2uÉ*WF¬­º[Õ-®fÔ S—@V¹&b-h‰nlm·ø£.™º:d•“¨*§Qg=‡ëÕ§ž±:8\¯!b#mL½^Ô6q¬RSÄfÛœz¼¨máX¥–ÔsõQg+‡ëµFl£±m©×Á¦3ñAÇêµCl¯±¨×Á¦³bGÇêuF좱]©×Á¦³;b7Çê=„ØCc¦^›Î^ˆ=«×±Æö¥^j3A짱ý©uQ›1q Æ¢ÖEmÆ`Ä!;”ZµÃ‡kìj]6£G:Vo4âK½6ãÇ9VoâDD½6S';Vo*â4N½63g8VoâlC½^ÔÎu¬Ò<Äù»€z¼¨}Ô±J iìbêð¢v‰c•C\ª±Ë¨WÀ‹ÚåŽUzq…Æ>A½Ôf¬D\¥±ORë¢6c5â]K­‹ÚŒuˆë5ö)j]Ôfl@ܨ±›¨uyQ»Ù±J[ŸÖØ­Ô+àEí6Ç*mG|FcwP¯€µÏ:Vé9Äç5v'õ +ØtîB|Á±z/"¾¤±»©×Á¦óÄ—«·q¯Æ¾J½6¯#¾æX½}ˆohì~êu°éLA|Ó±z¨gì£Îƒ×;D=cu¾åp½·©gì£ÎÃ×{ñˆÆ¾K½œñ{ÆQ²Ž!¾¯±Ç©Õ{QûÆ8aœô!ëCê¹ú8›®÷1â'û)õ:pÆŸŸûõâ—ûµúÀ™qÊøÚ‡¬ÓÔ:}œÍ7×;ƒø­Æ~G½œñ÷ÆYKÿYçÔØŸ¨Õ{™Ó?Œñ³qÞÒÿÅcÖ¯ˆ5ö7ꜿ—,ý˳þ@¼¢±R«œWk–þuY!þ­±7¨ÕÎŒ›Æ-Kÿ¶Ç¬;ˆ.+¨Õ{¶ ~à ±ô3zÌ∙463õ +ÎBBCÂ,ý,³Â³jl6jõ³ˆì–~¤Ç¬(j>Î&‡ƒÕ䧎€i3 fD䈙3#†"†!fAü‡ý2²¢:âxMßjA˜áM³ ³ï ‹"‹l +²Ê: Ã0ì0 0ìû*ÆÇn"@4ÀÙq ‰9hTD=„DŽ‡$˜@L"Æ„Ä$ÿWô«8Ø>)3.¸¿uÝË£«_¿{«ê +c…qÂzÂ0^èë  + „…‰Â$a²0E˜*L¦ 3„™Â,a¶0G˜+l"Ì66æ › [[ +[ ïÞ+l-¼OØFØVØNØ^x¿°ƒ°£°“°³°‹ðáƒÂ®Ân‡„Ý…=„=…½„½…}„ û +û û  + „ƒ……Â!Â"áPa±p˜°D8\8B8R8J8Z8F8V8N8^X*œ ,NNN– §§ +§ § gg +g g çç +ç ç  +  —— +-ÛQß"VŸÉVÿ.ü‰úµ©–úupõcénõëa&êÇ{°®ÎÖ÷`¬Î6¤8õð©Q?‘Bê'W¢õÞŒÄëÊTrÔO÷`}ͤêgWbCçz°‘ÎæUb‚Æ›y°±Î6¯’‰º¦%%©“u¶5¥¨ßÙGýv”¦þý‘ì]¿£3t¶³3uöÊR¿«Ël<ä2G#="ÏÌõ{Qõû¸ÌÓH_—M5Ò?òä\ å«_yZ®_H-Ô/rÙR#Å.[i¤$òü\Ý«þ(<Ũ?†îSžhÔ/¥¶ê—áéFýIÔ^ýr<é¨?•:¨?=ò¤]&uRvä»þ\ê¢þ|<騿T±Ë®Yê²›F–Ý<ÄÄ_NÝÕ¯À·õÃÔSýUU²—®YS%{ëšu·a]ùØmø°®ünä½pý ÔOý'*±¿Æ7UâoÁõ·zpÎ>íÁÝæÁÁ:»Ãƒ…:ûŒË!Ùå²H#Ñ¿C5òœËbìóà0=àÁ=äÁá:{ă#tö…J©ñ—*q”Æ_©ÄÑ?Z‰c4þ#—c5òc—ã4rÌåx¼î²T#?­Ä £Ë4þ‹Jœ¨ñ7=8Igßöàd}ǃå:û®§èìûØ9¢þ)š¦þiì"Qÿל¡³gªäL]ó!ÍRÿ¬gëìo=8GgÏaߊú¿¯’ótÍùÛp¾®üS•\ k.VÉ…ºæã*¹H×üõ6\¬+?©’KtͧUr©®ù¬Û/Ÿüù@7AOC¿}ºzÔ½>}zº zºÓ½Þ ý!ôå0Å\ÃÇ^þ zÍÕ/ _@¯‡‰q>ÔÒŒsÅ ‚Ž´2öãЕÐMPì½övè&è>(Þ5ûÅ0ÕÞ†çó0Õ¹€2µ{?@Q±ÇáÔ] E­»Šª*Ÿ{ºŠû‰ý^˜Bøëý&LN'ÝUt)퉃sÄAGâà-rÐ8xSt"öý‡3νÆç +q°—9è9ìºú §Š.ÃÁ>åô€–¢á² ø݇л9ø;è âqÖ;è +â[CÑÄ£ŽqÐ Ä#§ŠšÅA/zÅîÎtçQù‡þEÕ·í â„¢Ú½ëê[PTü!ìªúÐ(ê÷Εzh=UzÏÙA…Z}Z]û\††ðD˜G Œî1w"º’DÔ +ÉÃÔø4´³«{G>)èJñÿ¤ ÏÄÍPt‰xþ)g”„]4Ï%égÐÝaJF~iè\“Q饡_MF~iqîu¼{Ž4y5tôôB˜Rpæ¦÷…¾ Å{–Šª=ëR±d ÔSД†ûÉÄ{‘†z,ßCj®ÌÞîu_÷ßCÚ(>'í2šU|N:Îå,|N:>?ë|˜2P[gãßeà·™ýô#èKPìKÙ¯@?„…â9ä$A¯@Ñeâ½ÈA§”‰s2ç,ô0 +u¼/™7 Pür×…) çVîgPœMð½g#ÿ&Ç xóð~fã{Î[¦ÜWÞ§Ð牚¢ẇâ}Éu{Š¡›ÝU¤«ŠtS‘.*Ò=Õrç´÷3ÒAÅÜ ,°ÀûöÍöqŠÇÀùM8»Ý½É|e ßû +,°Àþ¿Í¦`õR`VÌP2˜î^Eû» òîõ²oY—GÁ^X`U3”O^ý^`Ø·mL­À6ÔHXu0CmÁ1:at¦` +,°ÀªƒêBÁ~X`U3Ô ìI‘=©—°Ø£Ÿ\õ 0cb ¹åSb¨èk‘b°c8ÆŒ‘£0FcŒÁ‹1cŸáE¼„áż”—ñ +~”Wr‡y¯åõ¼ŽãÇy#oà'x3?ÉOñÞÊOó6ÞÎ;x'?Ë{øw¼‹wós|Ž÷óA>Ìøâ#|‘ÿÎŸÛ v[»ÝÞîh·°[Ú­ìÖöv¾lO±§ÚÓì™öx»Ôžðö«6¸Šê ¿çäžÜK–%  B8 áBØp ßá›&ĹôC0 DÄ áS’HAË …”IQˆŽÉ’↠VÛŽ•Ñ +-L§R‹µiA[¦J§ô9g¯;øÃûÎû>Ïž÷9»{òÞñHà†(E¢XLSÅ1QL‘$Ö‰§ÄÓâ±^¬+Å*ñ„¨óÄC"*bb¾¸_̈9â˜%jD­Ø!v‰çÅF±IlωÍânì§òÏçʃð¾ðaðð*øvø "Ùþ†~IULì´c¿ºÕ¥ : _¶ÎWuêSß)Néèhiïèh‹‹Õ_ë:«·|K¼‡ªK!¬=€5ž‡ïƒ7¨5²Åט¨cPÇ;vÇîØÿ·Ý¬1ÿUnÝ+UB\¸YÃTô«Dç•ð55Êÿeö+˜®WS:þ}5ëT§š¥«–Gr=”ûÃ]‰»‚¼§ÇkÝb™æñ@Wº{|; ÕãÏR<¾ ìñ­€nß0=¾ÐÕ㛆Ç7’<^èâñg!?z| Ñã•áñ§¯$xü) +ëÌ¿#ÜÙ=‹åïö¾Ã2-–™ÏvEÙ®lgA/ÁÓ¤ ¦ðR¼‰C|1î;ø#ˆ×tü@+Þçeˆí|â:úÊ:®àßAœ>‹/Á(R«%_â²]`ðQì=ª “½­c£ŽA;­Â|¯ÂKÝpcé€ë>üÍe®¹±0àª( z³?R,„÷Ã>¦›üˆêêþ·¬œ+ü +×÷¿&‹…—\« Ý/úð+.¸ÖÀ®•8çZý?÷ág®ÕðŽëdκÎ@À× +hw<@›ë”<×¹xÓ‡ãndÀu#å)ÖDÞˆé«ÜXo´>ëÆú6¸±1€J76VDØ“T¯×¸&þ «q¿XT϶’êt~Õéüã¬\ß/ªüc¬\¿‹GÉÖý–à™.v­i˜f¡k D]g8`¾ëÌ–&›KŽìArô +çàH :=àF!›åF®`ý÷Ç×?Ãœ“]ØtÊcª—Ca­¾Ï „zxü«äÅ¿F$þ¹X¹ÂÁdë¯2ˆ,=i+Tºlÿ;ôw­=€,×*dºÖ`@†ÿÒý7ßËuÔ³ôPo÷K¡ˆîoØi˜ÿŸ1)oÄÈ/ê¯ÈÏá×[Õ&påg–ÇÂö]òS늼jµ†Ë¿XIòãH¶¼XצVBç¡Èì)Ï[©òC§»<¾"ßÆ~ûqì Þ#—†½–»¸ÎãÌ6ä·°–Î9×Q÷I2˜hÉn©:µÚ/l«üVᶕ~ÕZá×°…~¹Zè×·‡ýR¶ðx±,ÎÃp'ä½N9 35ºr¢Z¬+Ç9zú‘O½´aõ꥖C"9R:Irnsð¡àøàèà¨àÐàÀ`V0#Ø7˜êJ u u %…B¡ÄP ÄCJó:.ÛTmOKLQP1ÀUä~Ñç,ÄiZA:¯¡ßßß߯‚?¯„¯‡¯ƒ¯…×t\>®z·ò^Ù’âÓJ¾>Þ¸žo‹³m|]œ­ãk5ó€jN`ó4òXÇÖ&¶#½×Ú)éSºON7µð6¡$so]é_×ávÚN”e4½4}Îü¦cѦŠtdD§7 ž“›ßÊÇðQE…­|´‚èüV¶Š)š­ÚÙªÂ(d3´ŒêùhÈ(¦²„þT¯dTŸÐ_˪•¬¹®¾¨°¹¾^KÄ>ªÓ’:±OKý‘,L€‘l%&‘¥eVb’’aSh+'ƒÙ¶VõNfåJÅÊ{'ëÁzéùÂaHœ°’4ç†!hçêô [éH–N—ûérv+ŸçwÏòóYÈçþ/]e÷|ÓÇk/W7•e•d•ÁKšj×.Moª*ÍÌl®¾¬™M KJ/U¸¨¬érvYaSuvafsmÃmÒ *]›]ØL EÎon°Ë +ÝZ»¶({QaôøÌÃ3ve®ê›sÍ8|›Á«Áf¨¹fî¾Mz·JÏTsíVsíVsÍ´g깊sÏêN×kÖøäö¯aõ—gB¦1‘*Y%â¸ðå9“‘b%átA#p×–jPWê* 2auƒ(¤X€ºS*x_ê12`Aê3PÏewƒ2aeQV?ƒ²©?ø$BY¢É4Ù)0‡WÙ{©üÛTˆìBZˆìÃ0ƒJ¨ÙE0ƒ6R)²›`m¥ÍXçvÚ^ #ÚI5à»iø 0ƒöÀí¥½xŠéE<ÅK0Aß…í§}м #:3èûô=ðÐað#0¢Wéð£t#£c¡fÐk° 5Óëд’‹–6: ~ +¤·`‚NÓiôj§vô:‹ó5Ñ;ô#(t‘~Š–ßÓ%´|Bÿ fÐUú3ø5˜ Oaý>ûý]ÿ&Xú4‡Eƒ aýÀ‡âwÞ`Ãð«Ol>–ÏƱ àÅl*x9»|[†q*Ùr´¼É6 ¥•yàm OÁÞb§ÀÛÙiðÙðóì<øv >‚ýg$™Š³0% ”ÍÑàcøð|ž>–ÇÇçãÁ'ð àùDðI|ød>ÜæS0ÚTŽ¯Ÿp„ãß•WþÃ~ù„´Dqø·ûv6‰BÌ„*…Áz­A<¹PÿSSDh )RК€"(ž¼xг×^ +mDж)¢ÐÞ¼ªÇ½”¶§R´Ð[õPí/ºE< +o–oö›Ù·ó˜av…9—Y¡¿•Uú{yG/I‰¾.èeƒþY>Ñ˲Kÿ*{ôCù†ZóF~¦hŠ0ÿX‚•Þ ¸Q“g.Cèí¹kÜ8?„œPœkß8q»1â†âÂ<ÉÛ7cx| üñ3 vìgbüŠ_%ÙÑé%¼Òl·N–MþïË-ùrzû)i•œP:ìÚh4vƒc +‰'ϪþˆýÄýÌïd‡UŸèrr'ûö\¹|ù#—WåVòZQEQEQEQEQna¼€…jx¬/Ü¡{»´&>…aÏtn#Š‡ #žîÐgwé¯Réþl:Û:T˜n뛹¾)¤Ñ,ë,Z1„&0Ši ²à ÆñSWFµ¡“Œ¹zœ›D\dÅ,a˜óY`ÆlÄx¥€ÐAdŸóµ‚LáñÜá:ÿÈòÂçíâüÎù}{ñ{×Yûéf´»&Çfäòÿ TúŒŸ endstream endobj -22 0 obj +25 0 obj << /Type /FontDescriptor /Ascent 750 @@ -1820,115 +1978,120 @@ /Descent -250 /Flags 6 /FontBBox [-168 -218 1000 898] -/FontName /FLKOJL+Times-Roman +/FontName /ELCOMA+Times-Roman /ItalicAngle 0 /StemV 84 /XHeight 450 /StemH 84 -/FontFile2 23 0 R +/FontFile2 26 0 R >> endobj -23 0 obj +26 0 obj << /Filter /FlateDecode -/Length 28135 +/Length 28134 /Length1 230680 >> stream -H‰¼V pTÕþî½owYù  d ßúFÈ D ,a7Bc5üÉ.ãÐ]òÃ&ˆ"¢ÁŒÂ`è V *:ÖòÄÔ.þ5(– -82vh:Ž€-8vP:µEmkÙ×ᆲ™¶ãt:Ý3çÝsî9÷Üï|÷îۅLJ,\¾x‰q_¯Á€èÃÙéµ+ZÍ6N)§?‡ Ãê–׆‡Œ.<­Œi¨O¶ÂkÌ¥¿›~ICË¢æí­½ôQ\´øî†#ëïê‚Zœ`|gª>Y×uvÍ_ Ö¼O¿,ʼnú¿ ôŽÑ‘jn]ùИ³ùôïohúîòV‡«z1¾rñÒÚ$ÔÜ9PÍtojN®lé{Öw‚õ:9a6/]¶²þç_lc~;T8°$Ù\_úvÛPlb׶,«où㛫‰gáVÀûz˲¥-.|ð Tãí€2 ¹p?rŸÜç©Gñ_}ÈŽôT£P[0pNSÏQÏf+g,ûŠó5œÉZevÊ$ŒÄ0´a+Ÿ'q=òQŒÓb2ýÃ)ÜŒù8ˆoáqÒ¸åh!ÞA¢ø^劻±”¹UxA®zÑysex|? -Q«lÀ6ç vâøÔÙåœÅ8¬eÆqç÷(E;£(bÍ&´ˆluÖa2÷ÛŠqR v&ã -ŒÇ$D°)4c Ö0ö -Ž£K c7!Œá>U˜‡õx[`ã—âJqØaø”Ó„Ûˆ ‰ë6³›cøŸˆââ3Ìépîma"*ÝøvìÀ.üXw‚C”38'f‹yÊRã¾ÎuÎÌïOÖ¨Æí\ÑŒ{ÙÉV¼#”SܵX”‰¹¢E´‹´8$+Õ Ãç¹Å¹Ÿ({‘ï -Ê­Ä¿œH7árø4ž¥¼Ž_“y¿°äTÙ.Ï«*lÌô¬pîsö:¯:oóD<èGþ«)7£+ñ ¾G¼›ñ^ÃoyVÂáy"Ÿ:Ä ñ‘„ ¯aµÃj©J«½ŒíÆ ÏdϺìSÙ3Î"ççˆóWv/á#÷Ř@™È=¦`&f#Ž:r}‡{?¶a/žÃ~rwïâ. +†³Ï ¢RÌ«Äâ 8*>—RæÉ+¹ç5r|œÒ)Êãª@ªb5V-PªÇÕÓÆÞ:Ïžxžó~ä{0[›­Ë®ÈÞ›}Ù©v¶8?q:‰&H4úL§c»‰9<Á¬r¹Në»D<Ïãg”ˆê%¼Œ£Äö;œçûyð»<ÈÄQ.&‰ÉÄ9MDÄ Q-nsx>óDL$E“h«Å±²Cìb”ýâ%qD]”3âcÊçÒ#}2 -9R†e5e%)keJ6Êf¹‘ò”Ü+;dFAMVU*I±U§:®ºÔ)õ7£Àh5î1Gw3ÆŸÏçÚßvíM®Ý—v0Èf4Š˜¶H˜Q»jE*MDXn˜\*áÅ#Ó½uaÓ’m©µ ¬HÔbEܘ*Š&ëìš™±hdh0•ØbZ­µÐ†Ui÷[®×™LãÞ¡’FëûÔYuë3a,Lh+y{ÌVɸ-z£í|+bç¯ú ð•û¥ÝÐ#hË¢ªd}ºŠÔ¬ŸÞí&´—Ü@¯z¶É²rm&ŽjÚ>Ž¥Çr,fŽÆ®ûHÜÅ\—¦mÐ."7AÚZÇSýz óýĘb|HŽ“"î;Š£EÆšãUîa9.Æá¹ÞÇé¾¾ìIãטþ–j|=5‡ï<õ$õ\l—êÀK´YüÜ ¦n–o¡BítŽësô^ŽJ­¾.LakÈÕ9£!òïwqv ž~iNu¯ýŒíN­:ZÆòÿIzµÀwUWñóûïÿÚ&qæsÌ9 D‡¸`‚ˆ`ä#Í!Јæ ¬µ’ˆŠL3í¹’ RÂD)1óQj¨P<Ö°4A ²Ràö=çžûÛÝÿþï½³þÿÏù}Ï=÷Üó{ß9ç—¾¶çÓôÄšÀ½"q=U¥khæ{c »›Åæ;¯@V ýáÉýð’q]† Ø^öQ»VèýŸ —$çm¼vƦÁÖà-<Œa¯;ï½i9¶&u˜NÄ»›@Í𓉠Þÿ…°ÝÎßð÷°Õ—ûнdbÿõU2¯{Ô”¾„®ôöË#Ù‹5؇5Î3ŠGñÍ&wý¨ÏûqÞvð;ØfÊ~ ß¹ˆ}”ý„}DÎüO|ó`?—õuÏNsb­e@qñ]¨46é®Õþ–Ǫ¶ÛØÇØw•#†Õ -ÿMa”|×BSðMMê¾?Bã!/Kí€Îr’i¥™b£,s…Øý¦Ì2àRøúĸ87Ub-Šøç¢ëPψ=+aû«étÖøßÌ`© T¶!» ßµ`ÅFêuñωGÄ+e¬¥fS%Ö·¾à>Êχì<Ø.‘¾VQ¿ÃXx®N¢o!RÚeù&Å$ôO/XOåÒÇ "¯öôÓY—0¶¢ÔBØ_OÕП û%ˆõ£8'!ÞÏqóŽƹ'1æØ<Î;È+c%·ÌǸ‘[$ÿ6Ð -ÊùeWÒŒÌ=4ƒÏ„ÄøKQ?£ªì"97‚ÅåTÕç ++–BV*ùBk®M8~qìJ¯5JÁûR“]L5Ek…gY5°²j>‹^LæÚýc/Žr]V4–ª -/•Zf òÓ Lâìd÷Ñ ~f}/nKŽjtvúâ[oãRø/ù9Ú¿½8Ñ#nòز;1¶vÉ%c|17׎÷]•¿?_¾È—»±^k¨iš½<Å>’ɃÝyËÍs‘ØÛ¼Æg”ëBߺørY8Ji”¸Q |Ë·ž=°gnsöä"ûïw.†å<F®¯Ö…æχÈs.¾˜“s±5¿z ΢â;ðOW‡^þŒC>£|Î|˜?ßz(µ¾sWÊ­Û+¬ŸmC¹¸uz’Sù”Ðú)õÑhìË0`3­LVÓ#¹ï}5P÷>ÝíbªÀŒË³Þ:Õ{5¯Õn©¯Ÿ2ŽÏ“9?qœæüÅqÜCïìzºžç2ŽéœËø{‹ÈcÏ9'A’͹ˆ\Æ19ìŽåÖ‡Õ×@C8O3&6S­WÓó“ψÞË\ßvkó{»óµÜ%›_’7Êýr¸ž[É…¾¹J³syRsš[ç0•‰¿èXíÜô9ÝObÑð‚® œ£©³‘«AÒ×èî=bDòZ|«ßh ÂTgp^mäš$1Ìéu±ÜÏË{·îešãK¥Ý¾â¬†Þ5®Ï8Gò׶Îýö,çœ-g>uöëóô^ù¥‡»z…Ò'¯ïOúâ¾ì£ÔOºÎÞžxµ*צR—r Ê5ç®× «ãg®9¥ÎD©õe-Þ¯`Ôº’í´JmAé«CL™š9ÍéLÏtºÒí Ë!Ÿãâ>òQæeêpÉéTêbÒš7”²ÏR‡KN§R—KTÇ„¹,àù`.‡]¢S”ú3%7QSj¢Ó©Ôåâ#Hç LÆz]w¿™§1Þ2ÞÚ(ÊÎÂ7³ðÍ,Œq–ÄàÖ(J?~Òøf¾eNB?ƒA5ˆãÅŸ®»·ŽÞºpþÐ}ôÆ\ëíaoö1ûsˆ©ð§³p9úÞñ^ ÚèÊãö¥8E.9J].QSܼ K¨£°™:Šnv:•º\¢:¦H„Ï m¥fö¹ì~™{`Œð·6&ø‰K¸—aݶƒ=— rýÄðÙa‚O´1åÙÛV%y–3·1e°ùæÉýfš]B=Ü–Kë¼xã«Y÷h\‘ø µ±Æ€¸}Œ#«ŸnÏÃoWzN‘åûù8¿ï-Ù½ûÉÛ'¥*Žo¾çºœ÷ùäÂ{û÷ÓVÄ×­n,aâ3϶=Öµ7¹~I; ” 4¥h°`B¤øWÐZ‚:uâ_a®¢uD~òÞx­ã<Ú ù:ÿ;ƒÂ~›¡‚Iý™Ê]¹X/w¿{L¿HˆÜ`D®ü(tXžT}Oþ¶í[~SWŸDv<ƒ@ ƒ€³HJ†QûˆÎÍRÖ,¤CVF˜Âªê'|ü?éãû€úæÕê¯x< ðIO•äÕ/U˜ç]š -CGsœ´Åv”û+ýLÁ -Ï·s}§ÚÝý¸sÎ?cÿß[ËþºÑÚtmJuJ°sáÚƒ-WF'ÆŽ¤Ür4$V{¨b¥´'ÅhWYnUÇÚ>9 ©‰Ð>Årµ4\°ŽF„j HÞa»> ¡=Úr§Jáÿi¡Ú§$ ¶ÇZî 'ØHg†j¿; a{B@Ò¡}–å&":ºÜÙ¡Ú“Ï‘vJ„]þŸ«xM¥iôᧇj¿Wñ|i/ˆ±}¡å.¢÷)wq¨ö%–{?]ª\s¨v‹â i[cF23 ¹,B{–åfÓÁÐÜPíyŠ—K{胶ç$ŠÐ^|8B»ÍrWR»r Õ¾* YaûjË]C\L‹Bµ—$×FØ^|,Bû:Ë}œ>¡Ü'Cµ¯W¼AÚevù£â§è&º™>-ügBµoQ\.ígcl¯°Üçh¥rŸÕþ‚å¾H«”ûR¨ö­Š_–ö¶˜‘Üîã¿£kèÅ;¥½Ë÷æ«y´¿&í×íó7"mÓrߢoÇŽ¤Ãrß¡ïÆjÏÇ?VûnÅH{ïÍê<Ú÷Zî‡ô£XÛk,·•kœö:¿>VûÇŠ÷K»Á÷æ¾<Ú?‘v£}~ ÒöO-÷ mŠÉC–{˜6ÇjÿÌÇÿÆg^“Ï>:ξŠû)öH«<ÃígñD×Ãâ©ìiüô€û+ÑSG;@±—boÅ>)ogÍØ˘‹3ØÛøê ö1¾&àÆÌrix þÖ7û)öUþ û§Gí¬ÙûSð`cnNž>ë¹ßT<$­f~ÀCŒYðPc&OŸCõÜo)Te¬r£;Îâ-îx‹šÁŒ1à%NÐÑNT©x’⨔·³^ 8Ò˜72x’ñ¿Êà(ãß x²1ÛŽVâdýűŠc”­ñ)Š§)ž©8%­´q>8ΘíOQbœÖŸš¢Õ|p¼1;ÜiŽ×Êo+ž®xFÊXåNwºÅemhˆÿ‘Á ÆåÎÔp‚Žs–âDÅI)ÓP)ÉêÒGn’ÅÅ N6¾uÀ)JLÖѦ*NS<[ñœ”·³ÚœfL‡ žm|§ žc|×€ÓéîÎÕpºþÖùŠ3/P?»ëC^ƒŒ-Âú‘_ƒ¿[Õ‘¿ÿ7SŒó/f5Ùk“nß­¯'OöÃDÙ$«X¢*’]5ÑÉ*Õ©ÖéþWÎI:Ú±ød}¨vé[²Ÿ¬ ïºô Æ¥o6{£ªMøä=ž¦çînî#ì/µÉ:éÜßœ®%î3ò¤ƒãÿ&+‰û‚œ¾‹5Ä +·°ò¼9á7„.@Ö“go—-ئZçQRž.ÖÓ#{z`ϵxºKyß›¼žžP~‹§—ô¨Hcô]áéÈä<ŠÎ³sxÖWtªóô_žþÜÃè¶<}”G?xæé<]Ž§Ç÷Ì©üOWâ»ãG'1FO¢ÿ=Ü3çž}=ùožÕNÿ';¶þ7ö_Ïéw ùWÄìtí§ÿ•©ñ(>Öñô“žÆsÿ<ëª_†çÞù70ÖDÏèÙ/ü›‰¼$çýóÜ?ϪìYÓGO’ó\D?#üsbtZžç'ÖËóÜæYõó¬xyÖý<ïGžÕ)ÏZœŸO¾!Ä;±ûÉ×ãYkóã'±©ØjrÞý˜g!f'Ž×’³Ä’ãýùí˜ù¹O1ïoÌ^3¿1÷)ÞJÎÜÄ?ÇÐñ‹äìŠ1ÏN̾¿JÎ^sÿuÜ_’³Åo'1ö9;FÌZ3çñoÈ¿‡ÿÐ¥ãò|ÇâÙÕãO±º³;ÇÜ×x)9ó¡ÿ‰½1^Fþ(žg6æþ}­+².ÆÜ»"½r1OÞžœg¸H¿R¬"߃œûדïJ¾ž¹(rÿŠtaEîE‘9+²†g3Eæ¬Èû[¤,òÛEÞâÇØ›ä_²ólW±NW¡(«¸U¬U¬IUCÈÏ ëyúI#oQdQ!Tƒ¯ -¾Uæüÿ×WÜ%dm‚o|;×r®‘ç-\K‹:º–s}ì7-æZè µt |÷à÷ ~?×r®¶GȾWðIÇ×R®‘î-\K_‹ú¹–s}ý]˹:¡ÿ²_ÐqÝJt$?Ù3339àpv˜™™r˜fffæ¤ 4ØÛ`lƒm°ÌŒ²<ÖÙõ[ï{‰ôüÏß+ºw4sw®g£·‹³”Â|i™)#£rX« 3e‚µ*2SUFÕ±VSfBeTku‘ë!×ßywà©1rdþÝÍgf䟵p––2rÿ¼õÿú5ÿÌê3³t€èY:˨«ŒºË¨§Œzãëû"÷CßyWúãiò`dþ-Îgfѳ —ÑHðùFƒïÌ2¢g™€ùIÈ“‘§€ïL;O3g"Ïß™q6DÏ2OF Àwæ[¾3ËRˆžeæWÉÌj­ÅÚz™Ù £MXÛ"3[e´k;ef—Œö`mò~äà;ïîA<B>Œ||gÆ£=Ëqß™ï4øÎ,g z–ó¬3뺱î¬7ëÃú±0ãŒqθ€xÖ8o\D<Ãù\+ø¾aÜ2î Þ4nwop¾Å#×Êã.ȳp6” c#Ùh6†cl"›Ì¦°il:›Åæ°¹l>[`<1ž/ŸÏ—ˆO8?ã‘kå…ñ’fEX1ÄJ±`V†•5Ž'ŒSˆÇ“ÆiÄcœOðȵrŠïKÆãâeãªqñç+JÞáxÌBuù9©ìxŠœ¶P¼«i¶÷Ȫ³ÈçÈy%· ä¢ Õû¦ÌäÒk¸]&Wl¨®"_#וfû|dCuù&¹¥â&zܶTÜA¾K>VvûÄRqù>y êfã÷y¨©Ï#ò؆êSäÏÈ“8˜í)ò3ò\©Ï òÒ†êsSæ òåkù}eCó5ò7ä[¥Ù¾#ßÛPý€ü#ùIÅMôøÙRñ ò¯ä7e·ßÉŠ?U=°Ï_äoŽÿX¨þb -TÙ‘Rêg¡0ôÌFõ·¡ -Ðã†Ý-êñãÓ%¤‰^Ã'1MB“ÒdªäZgKaQO‰œŠ¦VòICÓÚP¥CNO3(¹e¤™l¨2#g¡YUÜDl4»…"rNšKÙ-7Íc¡È«êáÖ-ŸE=?rZPɧ-L‹XªŠ"£A:§ŒÅ­¸¦>%hIªRÈÁ´tÌVFk·²õrÈåi%ŸŠ´ ¡•-TU´ÎVÕ¢^ ¹:­¡ìU“†Z(j!צu”ÝêÒzŠúªnÝXÔ"7¢•|šÐ¦´™¥ª9r ÚRÉ­mmCÕÆ”iKÛqlÿŠnhGªNÈi¥ÙºÒn6TÝ‘{О*n¢G/KEoä>´¯²[?KEr:@Ùm ¥bò`®êfã÷¢©ÏP:̆j8ò:2f…<šŽQê3–Ž³¡Š0eÆÓ '¾¢Û$:Ù†j -òT:Mi¶ét† ÕLäYt¶Š›è1ÇR1y¯ì¶ÀR±y]¬ì¶ÄR±TÕíÛ2‹úrät¥’Ï*ºš®¡k-Të´Î¶Þ¢¾y#ݤ쵙n±PlEÞF·+»í ;-»T=Üºí¶¨ïAÞK÷)ùì§èA¯ü ‰¿ˆHL 0±À”ÓL/0·À| XY`5µÖØH`;v&0\à0£Fœ(pªÀ™ \*pÀM· -Ü-FͲÎú‰ -½! ô 0P`¼(ìéLÆþ±¢¿Ôă'„@'á•è89b|™Iÿ±_.ÀQUgÿÈfC»yMxlB^K`7›Íf7»ˆ¼_¢‡ÈûiÅåéƒ7" ¢( ‚CëÔÖÖN¶:mimµÖ¶ÖZ;V;vÛÚÖÚÿýß»ßñF™éD‚s¾™û;ÿýιgÏ=÷œï~'—ÒÇϳ©µÉW]vN,`ó|öÓ,$ýd‘í×>»9,TO•øU­ñ:º‡«KGÊböÖɦÖÖKgÕ1éBÙ™m6µ6!%ªSRJYÂ6edW²œìFV•dYMÖAû^í³·tUÝ·E–k›.즵ƒ›±BýäRõ¥˜¿Œ!Õª¯pX£ž+1»=®Ev×6WK-ew>c›Z;Izªž"!Êžl&ëȈíÑ–Ó¤NõõQ= ï0£çH”²ž÷61²‘Œ“ ²‰LÚ-µ‡± -2zÃFõ,vWÏ2&´v¥4©¾Y’ª×´È”¶¹MzQ¦8‹ÈÞäÅd²/ÙìO°Ûk?w´ÈÞÚfƒ\¬zs‹ì£mî¶Ö££·J?Õ;¤¿êÝÖªtô}ªg¿ ¢ÈѶ©µÈÕ‡›1ë,žíÊæCØÏ0òr8y©í×>rx‰z‘áªcgdôãr™êSr9åeìm9ÒÖÚæ´ŒTý”ŒRý´µ«`£Øþk6µö­úYì6ËF³Ír,9Ž¼ŠO^MN '’“Èkì{µÏÈXÕ?l‘ã´Íó.¼JkÒŒãÕÿ"ö}FŸ‘ ª_–‰ª_q8I=¯É5ªÛ"'k›73,›Ìg¼Ö¦ÖþQ¦ª~1ò©ls9¼ÞöhËwdºê÷]2ú}™¡ú™I9ƒ÷Î"o g“sȹä<òF»¥öðw¹AõGg«ç?ç¨çÎÍԶ˒yª½ˆ[ý•9_Ûäºð&VÎç˜ ÉEäbÛ¯=¸p¡Öú]¸Hk;ºp±Övq¸D=¥—Ò±„#YfSÛ”;\®žJ®`årÞ»’\ek½«Æ…«´¶Öájõ„\x3+W³ç¯“·klÞqá-ZÛÐŒkÔoÆ[ÕŸtÈ?‘[YÜfSÛ\äp­zú¸ðvV®å½wël­wõwá:­ÔŒëÕ?Ô…X¹žýo$7ÙZïîÂMZ{¹ÃÍê%wRnf?w‘w“÷[È­ä6r»ÝR{ï[Fuá=Z;Þ…[´v¢ ·jídnÓÚ©²]õô¹CÛÌt¸“Ž|¢]6µÍl‡»Õ3Oî¥ÜÍ–{ÈûȽä>r¿]«wÝd}Ͻȅ{µv© ÷ií -d½ºEÞ¯mnqáVÞÏ>@$‘‡m¿öváA­½½©}3Vÿ¦f|Pýw9ù¯µ7^IK–urù ®W¡­3ÈïD<8e/D‰:NcÙøÖxPçÁy%_O½õ‘߃œõ:4"­'O/h<œ§·UõâAì]›–œPbx5s~†rõú%”6¿@‰âE.Ÿó+”§Ñ(ç—(w9úU”ˆŸÞÝŽÆ[ó"«ÍÁsxg¼¨âÅÏÁ3y±¶Ú¿“–¯âlÕþ=Î7¹x.ÆéC^œ‹qúû†BcŒ>ä¸>äȹX¿¾N¬\ßh‘¼ÁiÉÇx|ˆx>ä˜ùCvQöY!Ή[q½åè·qí„Æé¯àϸþ -¹,@Œ(x:lùpýóZð7\a ýá½ü'¬¼ÓÐCãÄT€lDZaÎý›ùrÆéGêGž[„Ö¡:ÿÓ¡+®JhÄ?¢œÙYÇ·DŠ±‹±;b®ŠÑ§ÒÒãìô1®Ac®:cIð¼%ˆ^ÌOóS‚XÀü0†ä +¬ßЈI+?"Pó@)ÁÜÍw—à+˜bÕAãë@–YŠ\†õPŠõ\Š}\våaë7ôË(O8m—b}—N~ åS¸NCÿå·p}úu”ß±ê Ï[úŒ£¿‡ YgÙ›ø_Œ¯ôGŽÆz-}úO(‘·—ûÓÒ ëºÙWÆ\‰çª˜† Ùkåf”È&+ÃVâ;Xœ¯Ya%ÞyÅb§ Ölæ¥ -9o5ÆSaÝì¦c¨Âi¢ê¹´tG6TƒñólD–Xómhd:Á¸:AGá{ººÑòá*‚ÆP‡ñwï…þ0/Ájhä/U˜—`ÙJùX-ÆÖë¹c«Ef×ã¬EŽU›†Æ·#8:}§Ê N„=«kk‘„Þé‰þCahÌGë2„¼)„9aφð% aφÞ ã]‡û¢ÌÆï¡Ñwßî°ÏјÃp>4²›0NaŒ'ŒwÆœ‡CêŠPbŽÂ/AcáÕáyê§Ôá¿ê0îº7 ŸC‰}T÷´D0oœ!#xGÄŒÖFd4öi䛸pŽ‰à¾ÈÓ"õ˜çÞu=þ£þzÌOý\\+¡ñìõ/âBÿQŒ=Š9b=Gñ¿Qì¯h_hÄÃ(r¹èhÌeñ'Š5EŽÅW$Š}ý©HC;\cÒÒ€}Ô€øÓ€uÒ€uÒð}\g ?D‰ghø1ô?Ebxß1Ìm {"†ü&6Àшu1ì»öG ï;†yŽ!¯‰al1d1d41Äœöo ÿÛØr#òÜF®hÌ_#ÆÚˆ“J#Þu#âi<ýJ¬ï8Ö@ÏÇ>Œ¿ /Cï;ŽgI`­%°—8&°~˜ÏÎv œ˜ÏÎv ¬£ÄwEš -¡1MxgMð7!¾5á¼Ôô4ÞEÓÏqý±-‰1%’ã}q+‰÷‘DÜKN@‰õ—Ä^Nbí§pþJuMK -±(…=’ÂúOá;“Âw(µïW0ç’%ŠyÎ÷Œ3Ö*–­Ê+&.3f¬-˜—r¨rÉ<2ß©µâTU!é—Lì:;&dKÛ5ïù€1cÆZŬ¸U$vD*¡§ŒìJ–“ÝÈ -²’¬"«É1¹˜1cÆÚ‚YyTÐÑíÈ '.3fìËhVÆ’LDú´Y1ªž*F6’ñÖ–1cÆŒ£YÑ+A•sæ3fÌX[0ëÌ—¢êCö%û‘ýÉä@r9ø‹œ1cÆŒ}®YùÔß0ÉœÏζ¬|f8Õr¤˜ŒÌ˜1cmÁ¬ŒlÕ1qɘ1cmÁ¬¸4–j‚˜¸d̘±¶`V\šHu-9•œF^ç´±¢ÕtªäLÉD°³#Cv«Žóÿ3ïù€1cÆZÅrpÍ;"ͧg¹\D.&—KÉeärr¹RL^f̘±¶`V6µÊÑíÈ '.3fìËhVƱF2éÓfŨµTëÈõä†V—1cÆŒ›YÑk#Õf1g>cÆŒµ³Î|wRm%·‘ÛÉäNr¹›¼÷‹œ1cÆŒ}®YùÔß^ÉœÏζ¬|f?ÕAò˜ŒÌ˜1cmÁ¬Œì°dâV[·,Æ¢£ra÷¸\(ãý,û»Õ_Eñ„gvgé(B€Š!ô&H¤ H‘^B¡÷z $ô*]@©ÒQQQ! "H‘&‚"EATªR¥ýçîÝï¸<1€yË{nøf¾ÛÛ|³ÜíÌô]Lß•Ñ ºCèÉ,ÂZ£—½Zo+ö±b_F?‹÷·g xèÝhúAŒÁ0"a(³aÖ½({V´‡[qcäCÿ­§öÔüÃFY1ÀôùâÉÑ0Ææi!û±0ÎmÎxǯNøÇïÎRž~òÉÜ«¹¡3\ç#8NÈT|6Wj>‰8¸³roâû{«Ã‡¸õø¼\_~³Ë4û|a»Ó÷zW/m)ñÜãÿÙáër5{°Ñg›geŸÍÍù\nÁgq¸y·á“·yÚvä¶3Ÿ”O÷Åó¾oMWÓwÓþmÃHÎH¯•“é®í±öåY›¥Âç05¦ÁLË£t˜3`fdþc®nÅ^Ú—¾ÐíÞ"ÆbÇx)ãÆݪ½°/Ë|¹ÍVØl¥n…z WÙì]|ýû&_mú9æ~Ìø±F·j/ìË'6û×â:ŒÁõ¸?Üل_àfŽ[p+n‹çzŸã—ºkúOöe»ƒï°ÙWºué6Üéà»l¶Ûô{_›ìÜÏ~c¯nÅ^Ú—þ-~g±ƒ¦ÿžqÄmþáx¯|Hwmµ/G=fÀÙcüäÈžbœ`œŒ×ÊÇu×öXûò³ÍNã/ø+þ†gð,~Çsx/â%æáU¼æxæÆŸXï<^‰5¾¬»ÂGÜ—ënãn㛺ê1üÛf·ð6Þ±ø]¼'À`B»B=&„Ǭd1¥[¡‰l–X$IE2‘üì—y|ÕÇÏ;É{I yI –ä±ïû¾ïû¾ï*ŠE°.S*HÑ"(*n(`)µTPRª­¶ZKkÕöóé~>öSmmé™ónŽó`¦/ë»?snæû;sæÞ¹gnæÝ;—üdLÁ GSéHÓ¥†qI·øµ°¶ò2˜uèÈ´\¯«;ÛŽK=ñ²tç⦂ÙâÕÇÝÙØfØ@K¯ -~#f®î‘pCÁÆ¿‰îlÜS0Ïâ7e6Ó“ -6·ø-tgãž‚--~¾îlÜS°@¼VXÈZ„ź³rÌ6„­±MLzj+^;l¯û¹£fÛ;ƨ§NâuÆ.ºŸ;j¶]±vIO=Ä뉽X{cb_Ýc`›m?죞ˆ7é~î¨ÙÆ!1êi¨îg-c¾ÃbÔÏpñFàHÖQ8š8F÷8ä;6FýŒoÝc yÝoñ×áúõºA¼áFÝc`›á-þø nŠI¯‰··èÛ ÖÒë#6±­t<ª{<ô|Ìâ?®;÷Ü&Þâ=IÇSº3Ó[ði›Ø3tl×™Þ‚Ï:ÄŸÓ™Þ‚;ÄÛ©t>Oü‰îÌôÜmñª;÷ÜãAwfz î½!²÷VÎû½¨û‰*§àÏâtg¦·à/â/éÎLoÁƒñCº3Ó[ðe‡ø+º3Ó[ð°CüUÝ™é-xÄ&v”Ž×tg¦·à1‹\w6î)xB¼×Å;IǺ3Ó[ð”MìM:NëÎLoÁ3ñ³º3Ó[ð-ñÎ)}Ï/èÎLoÁ‹ÿÝÙ¸§à%‡ø/ug¦·àå"¿Â+Ä_—ó~ïê~¢Ê)øžCü7º3Ó[ð·ñ÷ug¦·àñßéÎLoÁßÛF?Ô—î‚9Äÿ ;3½?vˆÿQwfz ^uˆÿIwfz þÙ!þ‰îÌôü‹xŸâgº³±Íðó˜÷©¬· 4LÆ1ã™~f€™ÀLd&1k0k2“™)Ì 3•™ÆLgÖbÖff0ë03™u™õ˜YÌlf}f³³!³3—٘ل™ÇlÊlÆlÎlÁlÉÌg0[1 ™EÌbfˆÙšÙ†Ù–ÙŽÙžÙّىٙمٕÙÙكًٓٛهٗÙÙŸ9€99ˆ9˜9„9”9Œ9œ9‚9’9Š9š9†9–9Ž9ž99‘9‰9™9…9•999ƒ9“9‹9›9‡9—99Ÿ¹€¹¹ˆ¹˜¹„¹”¹Œ¹œ‰Àöœ‰8ñ± -/½ÄGÐ/ñ€#R'1 -¤f*g¢ô• IâKÅR?­T¬)õkU “åþ"~¦#ƒR§^¦JÍì¦I<§ÌL—¶ «µ¤—\ÅÚiRfH«¦¥b©ß¼TÌ”ú-cʺÒob=‰Fa–Ô,VÌ–Hë2³¾´m…9R³}²ôÒ1‚ %ÞÙ‘¤N×(Ì•šÝ«œ¥¯žæ{­üÞ¥bžÔï[6•Vý+™ÍäΛKd°#[H¡QØRj`¾ÄG–™Òvt²•ô2V±P"ãËÀ"i5±T,–ú“ËÀ´šS¶–~§+¶‘ÈÌR±­ÔŸÁvŸ[N¶—;ÌÂRs¡9?)q;I|©bg‰,‡.â߬ØU"+ ›ø·™³ˆòo/{HýU6ì)WW;²—Ô¹³Tì-õï²a¹z9?)߈Â~Rs­#ûKûÊÀÒj½ ÊÕ Q8Hjn,K«m8D®nR*‘Íeà0iõp—š[#8Bâ)Ž”È6%þ“-ñ§ÇHd»9/*ßîoœ\ÝiÎ…Ê&ˆ¿Û†åê˜$þ^sžSþ~˜"þ‹æ<¤ü0Mü—§KäÌÿ•Δø«Š³$rÔœ”̆säê sÖQþI˜'þ)Η«§aøgiî)ñÏÁ"ñÏ›3ò/Âñ/™óò/Ã2ñ¯ÐlTâ¿É^×þ»îõk×®’>jš¿œ’> à›Dºt–q´ õ4ÀO÷‰oBzi>éÒ¤ï‘n5 ‘f²À¿Hi† -ü‡”Þ‘„¤ÿ&=n@½‰uI’®6 9›6Š“æ’~j@p@ÊÒHwJ3l HßN›¼E¤_’¾a@-zwÓëÒ[šÞЀ zƒk/ ýéYêÒ;“Ù’ôéRúïdn6 í2¿0 ûn€¬q¤÷N%¥ßnÖBÒÏIß2 Ý7§ˆ”Þ±œÎ¤‡I·ÐÚç|EJ3zƒ±¤—HИV‹ÜlRšÕsGƒÛ„úÍûŠôCšÒï"¯‡Í4Ûi@ Úõ5û†”þÍG“¾Fº×€¤åW@oQ>Ý¿€~‘ùãIéùò“>AzŒ”~ù'H7“¾Iº…ôŒù'IÏÑ9íÄ -B¤ôþ¬'½@úwZÑ8·êOz+é@¥Ïž!ýÒ€Bú6+œFJsSá)Ò«EYÑœYdî!ý„ôkÒÏHéÿZÜÓ€búÓsŸ%¢/üÐbÒDÒ¤ ¤+Iƒ¤wÒ5´†”ö¡µ¤ô„6*¥|C´S -= ÎRç[HiüC(¥÷5D{ÇÐãê~OQÿßî"¥¼B»)Nã¢q ÑûÚO }Yåq\éÒdÒêü”:?MZƒô¬Ò·éyi\BçIW’^$¥9t‰”Þ‡ÐeÒ[H? ½þ½â ü€ Ñ€$Ž×7ZM:’u'á™gžUº¥T¨uRi.«™%Bº%†Jã與Œˆ6î´8¥ñL?dÁõ«Šiá•Å½«ŠiæÊR±·Ð3Ï°Û/¸×"gz?ëwxø+\þêKÜ3Ï<û.YJ…Zé;þh%eRµæ‹8C8ö«H<¼ÑÁV²â…W?\ëWÓÂ+‹{WÓÌ•¥bo¡gžyæ& V¨u*¤Áû¤…’98N¾¢ýtàoRקfèðÜíNó‹ #¾ë\Ž‚eÆvŸ%Y|w®&žyæYy¬fô*ÿÇ’éÛíë¢>_‚MÝêð=¶x_’Mê¿Úø¬+°ï†Úî3ôe€u„­Ïãwh£ÛJÕÊí« 7îÁÕÚéÎU³b¿}Ï<óÌ­–ÌL)gë ¤úr-çÿc¿:À¤(²ð Õ›3»À²XXò.9ç J¸CA$I\‚‰œ$ç¬HôNQD@@³w"Þ)˜Î;N?9’’A2ÖÔô6³ëLõ7‹Ê7¯¾ú«êýÿ«ª®ž©ªFÌtm™¥c¯ÎyræËù5˜_Ï¿ùÍo¬É›V‚œ»˜Ãœ÷¶üiX ²gì¼aæOË^?çÝ8‚ëX­}¾¿ß>9#ôR¿ùÍo>d‘ -£ò 1Øò7›Ëïoˆ]À¹û:-?ŸoÙ€ÝàöÉœ°Ü>ÙçžãdËßt·'à7¿ùíw±`Ìw_4ù×r~Á8XN$øÂÞog„£ÌâX ã¬Öx ež®ßrùÙìo 8|å­ÉÕÆYàC³µQœ9IB«¿›&oH¸|híq™œì*ð•õuì¡«Á‡Ö×F!ð¸vÉ…¸|èÝàð¡ÙzäœÿV·ƒ¯ü‹ ó÷âÎq7øÐ[ÁÁqçÙ÷ÆÚïZ{\ö?âsð•§Ñá7ªD< á[ûÉ”pÈ…s|1–Õdþ1[¯¼Çeã”̧e>#óY™Ï™ýœ—pñW£\2Ù+®ýj”ëÎŽ ]G!‰$m(sÌÁ2‡È*s˜ÌápO¼Š *°>†àU$´zB/ŠÜŠ^‚OðO´…^§ípƒ0nAoÚ‰aô.í¦÷émøúÀ1° Ò:Œå.´‡öŠ>ÍgéSZ„…i\Æ"4 Ça -}N_Ó*ú†¾¤ÿÀgðø'Ç”WáSŽéœEÿ|ž/bYúžæà$úÆ ¬Œè(¤ãtŠÎÐ9ZŒÕ¡/]ÀÚ8….ÑUº _À>Ø›°6 ¡6¢‘4ˆ(ÞÁ?ó€M8[àTá¾Æ7°ÞÇQp³àÇpl‡° 'r*'Ã×ð%|…ðAìYØ»ÐhìÆC¹—ä4‘Ìûø–@.Ç8“+a®ÆU¸×â:<N`OM¯p=ØÅ#EìÍ °/åFÜ@"£AkaE[i퀛Œ¡òGö8íÂpzÞ¢èxž€ÁÜ#1 À,Dë1Ž»ÒÇô‰å3|Ž>ÃdŒ§ýph6ŽÇTú‚þE«éßôàf0 †ÂpLÃ’ÔFÐ,Åýé[Éø–ããtæâd:DG0«àD:F?Ñ :Mgé<-Á0’.bœN?Ó5º£aŒ§°>6¤—`,6¦Q4ŸŠh~ƒ/óU68›r0¶ÄiÊ‘|obk¼Ÿ£áö‡ë\€¸9¶ÇØ–“¸(§ÀxðìˆÁD|»ÒìÎø8§s ‘Âo -Äå9ƒ+re|„«sUnÁ5¹6×5Jñ8‰½x mäú°“[ò(QûpCìǸ17å^|7ð÷´ŒfÐ -ZN3i%îçÄyqVœmE;qA\×DWÑM\7Ä@1HÜ4 #À0Dm1FŒ5ŒD1SÌ2âŒF¬cD‹:b‰‘d$‹õây#E¼,êŠãâGÑ\´§ÄI±QÔE'±IÔ½DoqY\›EÄ-ÑH C [E1YL1±M45BŒ`ÑXÌ ŒH±C4ËÅ -#Þ(ÄGùÿÀSy:^á <›¢y2Ïåù¢?ßñB -áEü…ór^É«y-/!¹·ñ4žWy"Ï¡žÂóxOâg(‰Ÿ¥P^ÌË(‚Wð*^Ãëx©`QQT"“ña>âØ(J^Ou=OV! Xîíñ2'Ï®¥RÓ‚ †8 Ï0¼£x‡ñþôÿ’¢ Z•ÁònˆP8½¹õ†zÔ‡¹õ†kFˆ„\¬Ì!¿ùÊø“?ùÓŸîú üéÞOPÀ¥5ÚBoÕ‹@‚*!)‡&Rn*dy‹s˜!Ñò„̶`™CäÙ&Ëp9HuÇÈùÜi¼c±Öåm] -šOœ×›@¼¹Jy}/ f™˜Çø$ëmä->UaÑ<Ï¿X®vq/ãÓ–4[%¼?=W»”—ñ¥sµËx_Vay³UÎëùWÈÕÎð2>3W»¢—ñ•V1[•½žÕ\íj^ÆWÏÕ®áe|M…µÍV-¯ç_'W»®—ñõ4\}h`ßÐ#ÓHac›ø&®)4³¿¹†k-UÙJ£i푹Oáý6ã·Ñpm¡*Ûk4Òp†¶Ïÿ€GæA…mâ;i¸‡ ³íøk¸.ÐÕ6¾›G¦»Â6ñh¸žÐËvüÞZ¶m|_L–Âþ.ž~nT4}„A¶ã?ªáƒÇmãŸÐ²OÚÆöÈ U8ÌÅ3Äj¸¦ï0R•£4šÑn ŒUåSÍ8íÓ·}þ ™I -'»x&ºQMÑô=¦ÙŽ?]ÃÍ€™¶ñ³´ìlÛø9™y -ç»xæºQ-Ðôý4ÝfÛçßâ‘y]á6ÏV7ªíš¾wÀ¶ã¿©ávÂ.ÛøÝZö-Ûø·=2ï*|ÏÅóŽÕûš¾?€mÇÿ›†û;|¤5­x‚+ S©0FaœÂ -&+,ª°„ÂÒ -Ë+¬¨°ªÂš -ë*$ç¸kÔ¸ªJÊ/œh± †UÉa†Ò:Ñbƒ!Ȫ‡É–”&ĉ ¡V=Fjª4áN´Ø8ˆ°ê…eœÃ"”&ʉ›ÑV=Yöê°h¥)àD‹- -±V=ÍÄ8åˆUÊ‚N´4é&²±ÃR•²˜ÂâꥩobqËÓÈÄ4ËÓJ¨jšŠ-©0ÝY·4-r`ºåoKYþ6PZUK©~Ê(,ë¬[šö&–µ<L,gy::ÖXZ9[Aa†³ni:›˜ayºš˜iyz@EUÍT±•Vþ…ýò¢xÃøl`€¡HoR¥·@¡÷Þ‹J“Þ{ïMŠ€Ò¤ ˆŠ( -*bEì QAQ¥Åoß]—ÛÙ»‡ ÏÝ~gþÿ|Ïüæ›—¹™wæ–9#·úô4YÉRú˜Œ¶”~¢2Òh|¶ -cäVŸ6ÆXú«Zúpý»¥¿ª§gäVŸQ&ã,e¬Éê–2AÔ@ZŸ­ ƹÕg²ÉxK™f0>éfãø¤Û‹“’ŽP½„ÚÍ)?FuKj/§|'Õ+¨Ý–ò]”ÇQY“˜t{2Õ5©¬£œÆ¹]›ÊFÊÇQ]—ÊfÊ'RÝ€Ê6ʇS­ÏµòQT7£²ƒòATësí¤|(Õ{¨ôNLº¡½—J_ʨN¤rœò-ñIIE¨TLLºAõ<*1”‡S½J5Ê3RMkIŠ§<ŠêåT(ÏFõJ*ËÌþk¨46û¯§ÒŒòÌTo¢B뺙•ê­TvSN;w[nÊOQ=”ÊÊOR=’J!ÊO |C¢(åg„þÝ1šò³TO¡R†òsTÏПIÊ/P=›Ê43Ÿ¯?”_¢z‘þƒYGZãý—ÿô½ˆ)e%ú ª¯$»Yç4ëÜfmœ\ùÍV³6ΞÂ"¥ì‚~¦Œ•§³~Îêë)eÖÆ9ZÎl•7kãô‹6[•ÍÚ8³bEJÙýM+1NøZÂXOm³®µžÙªoÖ e Š’Ãäx9C.5d}ÙBv”UdŒŒ•ÕdYYN®’dE¹Zö—ä 9Xö=eoÙ‡z6”dÙ”>/kɵ2AÖ‘ëh¤‰r’œ"§Ò¨#äH9ZŽ¡;Ë.²›ìN£·’­åzÙV¶“hÆEr±\"—Òì³äl9WÎâr¶‚ÆZt Þ/áWé˜k.ĪýB¬£sóâA:Kʧ>O'Í¿¿§ÒÜõך·Hgeá>û¤§Ó)Y&z«ëuúÝ Ñû0Z9­ž¹Ì:7Ýïóšyþ{òå_Hfÿ‚ôV¾Ó*öë“E讯.‹Ó½¿½o4z×xê¥éãÿ(eéÝ”¼yËÓÞ›^‘nðªMï¶*ô^«JïÿF—ôkµ1t·)J¿Õt-ó=ïQðb‚˜ˆº•—ëDe†hÏîñ3âè·ÙÝúÔ ßfñô>ÿ·][$°ù­#êdœzty¶ˆ†®®£‘hr×>ME3ŸÿÖ\´pÕïÝ#+ZŠÖ¢M²>Ù–Ý{°¢•È:ŠÎ¨»ˆ®¢›­Owñ ­ýxØÊ{ˆžVÞKô¶õë#±µûŠ~¶v1ÀÖ(Yù`1ÄʇŠa¶~ÃÍz„iÓG‰Ñ¶ö³«¬y\ÀwÑãÅ$3›LeŠ˜jû×i¶Öt1ÓÊg‰Ù¨çˆ¹¶>óÄ|[ûQÛ}6•ÔtÖ¦¡:-•ttOKOuzd 38·²Ìt'Ó§f£›™~/ËIw1ý÷©~ËGw°¸û¢ÛN:­‹Yw’R¸…Ü.ôû‚~7¸sˆ¥Û€þ–ÖoÕÆ{Xÿê·éºx‹5ÐoÑô>th‚w†þnhIg­þÿ°-=ƒíéìHçlgóéÓŸ8ý)ÓŸ.ý©ÒŸ$ýééõ À“¢?!C©5ŒžýIпý1ô]ÿ_¼ïË'¼ Ïÿ+&XÙDv/¡Æ;l2»P‹)V6õžÇH‰1Í¡Lg÷ -1ë:3Yc¤Ä˜åUÍî‹;æ8”¹É#%Æ<Ðó&¼@èwa#_Èî+‹õ1|‰XÊîÒýXæPg÷ -±Ü«ú»/îXáU]Éî‹;žWy(k©¬6óuTÖˆ§Ø]º뽪Ø}qÇFp“¢nöÈŸ[Ø]º[Ê6vO¡Ï8”g©l¿Ë§žc÷ìxÜá¡ì¤ò‚™¿Èî+^r(/SÙu—O½Âî;رÜ£¨¯z䯉×Ù]º{Á7<”D*û<ÚoŠýì.Ý^Ճ쾸ã-ðmE=ä‘¿#³»t?Þ È(ﱯ#Ðq$ £e_G ã}ð»P‹ãà v¡€*êGùÇâv—îǧàgŠú¹Gþ…ø’Ý¥ûñ•Wõ$»/îø<¥¨ß°ûâŽÓà·Šú»/îø<Ãî#Ôâð,»P‹ÁŸõgv_Üq<¯¨¿°ûâŽ_2Êöu:~ È(¿³¯#ÐqÑ«z‰ÝwüáU½Ìî‹;þ¯$óSWÙ};®%óS³ûv\wu¶ìëõ7nº:Û-öõú·J»§M8vO¡Z˜CIÅí)BKíP$·§P-•¥åöJ¡¥³²pn/¡Zz‡Áí)BËàP2r{ -…Ð"J&nO¡Z”CÉÌí)BËâP²r{ -…в9”û¸=…BhÙ2Jîu:´œ%÷:Zn+ËËí.òp;0}ä³²Ü^à"?·ÓGAnŠŸû¹˜> -q;Püæv`ú(Âí@ñS”Û飷ÅOqn¦ÀŠZÒ#/¥•asWšmæ²`9E-ï‘WÐ*±¹«È6s4X™JUµŠG£UcsË6sXJ¼‡ZÃ#¯©ÕfsW‹mæ®™“鳎ËóÕå^±Ÿ>ë¹<_}°¢6äÞn¹6Sc°‰¢6åÞn›¹6Ssîµúé³…Ëóµ[)jkî}pøl ¶qm¾v`{EíÀ½ŸÀŽ®Í×좨]¹÷Áá³;Ø͵ùRÔ‡¹÷Áá³'Øõùz½µ÷>p‡öØWQûqûâ­?8@Qrûâm8XQ‡pûâm(8LQ‡sûrø Žpm¾QàhEýŸãÀ±®Í7œ ¨¹÷Áás28ɵù¦€Su÷>8|Χ»6ßLp–¢ÎæÞnç¸6Ó\pž¢ÎçÞnum¦àBE]Ľ>Ü.vm¦ÇÀ%Šº”{|¸]æÚLƒËõ îàm¸RQŸäöÅÚ*pµ¢®áöÅÚZp¢>Åí‹;´õàEÝÈíˇÛM®Í´|ZQ·p[]›iøŒ¢nçÞnŸum¦çÀçu÷8|î_pm¾Á—u÷>8|¾¾ìÚ|»Á=Šú*÷>8|¾¾æÚ|{Á7u÷>8|&‚oº6ß~îûéó€Ëóä^±Ÿ>ßry¾·¹Wì§ÏC.Ï÷xXQßåÞ‡ ®ø=툽Ž‚ï+ê1n÷>Ü~€1Žk'üèõ!÷Zý\ÍG.Ï÷1ø‰¢~ʽA\ñgÚç~ôúüRQ¿âv¼ÐNj_ûÑë·O?WóËó¿UÔï¸÷!ˆ+þ^;ckÿàµ×YðGEý‰Û½5À?kçlí_¼öú¼ ¨¿qï@ðBû]»hk_òÚëð²¢þÉí>x¡]Ñ®ÚÚ×¼öú ü[Q¯s»^h7´›¶ö-¯½nƒIv5Lp»÷a©0†fk§öÚK‚i5-÷/ÂÒ……ÛÚé½öŠ3(jFn÷Á‹°È°L¶v”×^™¹}ú¹š,.ÎfþÕÒ6Ug*05(Á4`Z0¦#À `F0ÌF™Á,`V0x˜Ìæs¹Á<`^0˜,ï …Á"`Q°X|,–K¥Á2`Y°X¬V+Ñ`e° -VcÁj`X¬ÖãÁZ`m0¬ÖëõÁ`C°Øl6›ÍÁ`K°Øl¶ÛíÁ`G°Ó?ìWytÕ¿™wDLü2¬Ùwai©hEP„Â$¾oBüØ©€D VÙq-ÅÔVEEÔCiåxh‹--Ô¶bmùƒã=Åô7ùnùè¤ü¥$ÓùéýýîÜ÷2ÌïÍ{÷.6<Ìp‰áá†Gi¸Ôp™árã 6<Æp…᱆Çox‚ቆ'žlxŠá©†§žnx†á™†gžmxŽá¹†+ [d°Ã!%¾E,>“¿þ‹ø±T_ü¸Šøqt›øw`$â'xðí2ÚЃãd´1Å‹ßwø‰?9Š­ëøZ$Af¦’-~º7”ÑLj$~v7–x®7‘Ѽ(n*ñ–ÜLF[Õȉ2§ %‰ÿN–Ñv”"þÈ>âßEiâßÉÞõ;xp†ŒvôàL½²ÄÀål‰<èrŽDrÞ™ëw¥æâww9O"=\n!‘^ΛsýÞ”/~ó¶\¿Z‹_är‰ p¹­D9ïÏõ‡ÐwÅ/Æ[Œø%ô=ñGàFüRj/~9ÞnÄMw‹_7ñÇÑ=âOpÞ´ëO¢{ÅŸâ¼cןFÄŸ7ñgÑýâÏqù‰TºÜY"ó¯bÆ_@]į¯ñÃô°ø‹kä®2giÜMæ,¿ w—™+oÂÈÌÇuáú«©§øODq/‰¯âG%¾+(âoðà>2ú´ÈèFî+£›=¸PF·¸ÜO"Û\.’HäÿþyÆåÙíÁet¯’Ñý«‘+eÎç«¿~òêê¡k¡'¡?†¾ Ý=ä^ïƒnî‡nƒ€nu¯wA -}1L1WpÛKÐ/¡W\ý -úôj˜çƒB-Í8W*h§•Ñ« ‹ k¡Ø{õ&èZèn(Öš~>L±›Ñð|¦çP¢voð(*öxœúq‹ ¨µâ–@QUÅá~q—¡k xž¸…)„÷Žß„ÉÆ)`§»Š.ÅÆc£7±qŽØèHl¬"݈•b£±±/Øè?ìî5v8]‰½ÌFÏac×µÑoØ…Pt6ö)û!h). Šï>„ÞÍÆwn£3HÀYo£+HhEG€:ÆF7€<ì"(j½@ê{°;>ÔGåúU¿¶Š?tŠj?ôž«oCQñ‡°بêC롨ßC8ClTê¡PTé!¼gzh!t´ -ºÏ9 á±05:ŠÝcST܉èJQ+$wS³“ÐŽ®îDù¤ +MÄ¿“‚<×AÑA$âý§œ -SvÑT¼—¤_@w„)ù¥¡sMF¥—†~5ù¥Å»× î5:Òä%ÐùÐ ÐsaJÁ™›Þú"ë,U{æ¥bÈ@©' ‡) Ï“‰u‘†z,¿Cj®Ìnîu÷¿CÚj(î“vÍ*î“Žs9 ÷IÇý³Î†)µu6þ.ßfösС/@±/e¿ýzŠ÷“½Eo”‰u‘ƒN)çdÎièêX/™ÕÐ (¾ƒÜåaʹ•û9ç@süîÙÈ¿ù(ÖaÖg6~ç¼¥aÊÁså}}–¨zÇÜ(ÖK®ÛÓP ]뮜®Ê馜.Êéžê»cÒ{(ÓAÅÜ  @€oŠ°S ç7áìv÷&uÝ¾Ï @€ÿohjN¢ ^ - @m€¢dpº{éï2È»×˾a^{Y€jå“W¿ @€ß6˜Ú‚鸞F - @m€¢öà{``÷Â:R°? 6@Q' -ö£Ô(ê ~˜œ=©«áîఞ檗áÞàX_X!¬ß w‰¡¢ÿŠ ‚ † …ÆÁJ`Ãa#`#a¥°2X9ll4lŒÜ©B¼qà °‰°I°ÉT×öRu« @€ß˜¦P° 6€i&ýg?ª_:ßê À7M•ìG¨ ÐT^ -[F×ö¥º ‹–“?òø!x5ù#ŠÖŸ²YG~Êæ)òS6›ÈÉf«áí†wÞE~Êrù)›ä§lž'?eóòG6/“?ò8BþÈã5òG¯““ÇQÃo>fø8ù#¿÷Éyœ äñ+òG"?esšü”ÍòS6gÁça†}Bu%3 OþªKO[˜.€ÿIu)—‹T—žöô2Õ¥'þ_`ºB~È…aš®’rqÀ1θ_r‰%ÿäO~ÈÅ|/1 ɹ8à˜DòO.iH%[íR{Ônµ×Zjm´ŽX»­ÅV•µÀ -«¾ªêÇõ­eÖ&ë5J•©1j¡ªâxëjªš¬¦s#kuÕÚgU[K¬Ç¬…Ö"ë_Ö^ëkU z«B®§ÊU©­pœuVMQ“Ô4n¨šªf:Sg©Aj€±j°¨†òm:ÛzÇz×:f×9:W‘²TŒRª±j¢Zª|§Z骵Î×­¬µÖ:k¹µÂ:aýÒ:h=k}j]Pq*^%ª$U¤ŠU5LU¨±j†šÉM¹1's*'r3nÂ)œÆIœÃYÜB·â|nÎÙœÉy:Ÿ[r.ÿƒ/ëî¨YßÎ]t‚Näžü(÷áW¸÷æ~•ûqÈG¹ˆð ~‹‡ò0.æÉe\Êå<†Çòx~Ÿ+xOàx2Oåéü!Oái<ƒOñlžËóxWò|^Èñ"®â0/æe¼‚—óJ^Åkx5?ÁëøI~Š×ó~š7ò&ÞÌ[y;ïäßñ6ÞÁÏðÞÃûøŸã½¼Ÿòyþ;¡›êöú.}·î [ë6º­n§7ñE=VÓãõ$=R—ê2=š¿Ô]u7ýˆî¥»ëNú>ý€î¢·èûu¥ž§ «ô|=UOÓ3ôl=]ÒƒõP]¢‡è>º@êþz»î«׫ô½V¯Ö‹ôb½T¯ÐKt2ÖÓnºVŸ;V– -k+†…a+aë)–zb”ñ Åà$u¸Þu+6zý:pf(ÃŒù.4ãáëþfÇuܹºúðÕÕ¯¹“¯õM:j–üa÷/œ})öÚ32žñŒÿf¿Üƒ£ªî8þ;÷îݽÉåæ%¶Tî.á‘5ÉÞMÂk³¹‘Ý »@bX˜ØàDA ™‚m‡Ð!Cª )/HyJÝ,—g¨öá?ô!´µµ:µƒ v¦ÚáaGÀô{ή`;aÆö?;÷þæw~Ÿóûýîïœs÷ÞsÇÓÐ-Ð|ŽìzfŽNѺDk‹-¶üËÍ=æ?v£[}ž%g²7÷0Þ¦w‰/îQòmö¨ôÉœÞÁÄ~U3pã4ö¬_سĮ•¢ŠÒ)µr³~g¹qVó/{.άZ]Cš_´nÑ扖Ø5Kã®ëq²kë%¾“}$ñ9Ÿ–ø l€ ~IÅL^½ ’è9‰+§˜ò +H‰¼V pTÕþî½owYùKPɾõ‘!+ XÂn„Æjø“]Æ¡»ä‡M$!åOŒÀ`è VA U*:ÖòÄÔ.þ5*–*8eìÐtQ[pì tj ÚÖ²¯ß}Y10­ãt:Ý3çÝsî9÷Üï|÷îۅLJ,X¶h±±®×@@ôáì´ºåmæ›&WП̈́¡õËêƒF”ž6ÆG56$Ûà5æÐßK¿¬±uaË®¶­^úǨ÷.\´ªñÈæ]P‹Œ?šjHÖwÞðW¨ Ð/Oq"ÿ|ÿ7€Þ1úÃR-m+ïuº€þÝÀÀ-Íß]Ö¦âMàê^Œ¯\´¤. 5g6T ÝÛZ’+[ûžö`½NN˜-K–®løù1¿*Xœliî^ujý6öp]ëÒ†Ö?½±–x켯µ.]ÒúÊù?…jºP4îG<õâ(þ«Ù‘žQj.œ“Ô3ÔÓÙ*Æ˾äüV er‡V™<%‚5Ø Åç{¸(ÅI1‰~Žá}ÜŒy8„oá)qÒ¸h•&ÞF9¢ø^æŠUXÂÜj܇ W=ï¼Ê¹r<… >ƒE¨DŒU¶à!çÅqÎÙãœÆldÆqç‰vF% +QÌšÍh!ÙælÂ$î·Ïã=1Й„+1ÁB¤Ð‚ÅØÀØK8Ž.1„Ý„0ŠûTc.6ã~ì€_Š«Ä]b·áwRN3n#‚f®ÛÎnŽá#|*òÅ/ÄagˆÓá8ÜÛÂxT¹ñ]Ø=ø±î‡)§pFÌs•¥Æ:}ë/˜ßŸ¬…QƒÛ¹¢w³“xG(ïs×RQ.æˆVÑ.Òâ°¬R—>Ï-Î=DÙ‹|WRn%þeDº Ã'ñ4å5ü†Ìû…%§ÈvyVå«°1óÜYçìw^v~Íñ ù¯¡ÜŒ6¬Ä½øñnÇsx¿ãYýç…Oä‰bè'ÄÇ2_^Ëjoª%*­ö0v'<“<›²OdO9 œ#Îßؽ„Ü—be<÷˜Œ˜…8êÉõîýxûñ ’»ãx'pY1”}ŽUbžX-‡ÄQñ¹”2O^Å=¯•›ä#”NyTW…ªH•ªÑj¾zP=¢ž4î÷Ô{îôüÀóŒ÷cß½Ùºl}vyöîì‹N³Ãù‰ÓI4A¢Ñg: ÓÙí Ìæ 6bµËuZß%ây?£¡|.=Ò'Ò’%2,k(s)IY'S²I¶È­”'ä~Ù!3 +j’ªVIŠ­:ÕqÕ¥ÞW7 +6ã.ãã¨ñŽqÊø‹ñ™'Ï3Ê3Çs›7à­ð.÷îõ>ë»Ã÷´ï Ç?eO=?uX%”ÿÀZy¿g¿âÛâM9'±F<+ö’©ÇyoÇRÞ¥„)£)—Qî!‡Ã)Ƚg<+¦Ú´½¢¾-¥G¾~õ{KZ—­ßÀ‹“‹Ýl//쯽aîÐ)¥¡¨R¨ð5%Å쫃æUC‹† .(xå—ÈÏë߯oŸÞ—ù{ù¼CI²¨U0í’„m”XÓ¦…´o%9‘ì1‘°MNU_œc› 7ͼ83ÌÌÆK2ÃÝ™á ™"Ïœˆ‰¡23j™ö[Ë̈y3b´·F¬¸iŸqío»ö6×îK;ä3HEL[$̨]½<•Ž&",w0L. •ñâ‘éÞº°©É5©µ ­HÔdEܘ*Ž&ëíÚ±hdp0•ÙbjµÀ†Ue÷‘[®×™LãÞ¡²&›ûÔ[õ›3a,Hh+y{ÌVɸ-züv± VøÊýÒŠné´equ²!]Mj6OëvÚKn¡W3ËdY¹1³ÅÆx7{w VTÏ$šMÛoUY©ts‚œcfì@a¸0j%#qµ±ƒÂƒ\'Tv0°öÆ I9šš¢ÇƒµÝãGë»çßîìíæú€cÍÌ ¼½“50m³ÎÝÄ"ÖñúÑ0éºñLã'.Øe“ퟚHçMà*ÛSœg™ésàAYg>¹x&™›ñçƒ6õq^¸Œçì ®)«ÉÀ_{FˆïÇ3ÂÙ˜A¤è ÁÔwæ3\ª¯CS„«é\[ƉáAZÃËÌj¢®Öçf¦Íôôú´Ym¦xàF±;2ÐŽd;³bM|ÎŽíp|ð³!ŸÀ:#tí“Ž³Bs®B³[Î3©¬¬†•ÔÆfÄìöÈ`;‰“ÞŸÎÚ˜ÝIãqf…. 带)Ã|1‡†ÓÙ]ek°D<îö¬ Ý™NNëïA·Ÿ¸t"œ›ÈÀ-À«’íµn¨Ý +ÖVÐ +V<­Fñz}y¼Œþz†¯ïÉð¢½Þexìÿˆá¾ Ãå߈áqÿžáñÄ]#§ÔVlòÍG†x†znƒE£±'Yc +hÖ>÷ ª"\I»XÇ|EnLk%ó‚zäZ½fãCèk ú¶ÂÏQ¯ q¾ëtÈ +§“cD½‚*ÃíÝù„8jhû8Žä8šc)s4vÝ÷â.åº4mƒv1¹ ÒÖ:–ê×k˜ï'Æãƒrœsßá-êÖ«º°N<ŒMz4f»‡æz£ûú²'_cú:Rãë©9|g©ïQÏôÀv©¸D[ÔÌÍÑ@êvù*Õ£Îq}ŽÞ+P¥Õ×…Éìo¹:cÔ#Dþý.Î4ЙSÝk?c—S§Î¢Ž±‚‘^-ð]ÕUüüþû¿¶ÉCÜ€¹ÁsFÑ!.˜ "ùHscÈ#4¢¹D$+E­$¢"ÓL{®‡¤ƒ”0QJÌ|”jõ,MPƒ¬¸}Ϲçþv÷¿ÿ{ï¬ÿÿs~ßsÏ=÷ü^çwÎù¥ï„íù4=1††&p¯H\OUéZ‡ù^ÀãÁØGÂîfñ‡ùÎ+Cxr?ü„d\—ᶗ}Ô®úEÿgÇ%Éyï߀q i°õ0h cXÄëÎ{oZŽ­I¦ñî&P3üd"ˆ÷!l·ó7ü=lõå>t/™Øÿ@ýA•Ìë5¥/¡+½ýòHöb öaóŒâQ|³É]?jÀó~œ·ü¶ÙŸ†²ßÂw.be?a‘sÿßÅ<ØÏe}ݳӜX@+@Ð@\|*Mºk5†¿å±ªí6ö1öÙgyŽìSÌÑ•±ì€M¬û[zýç¢ò<.:Û0Æ|öy`?ñ_^ëF±Q•\ ÿƹç³'gçOö£Ñ‡Ýçræ8þTå¢ò£Ø"{\˜‹ÞÚ)¶rl‘ó ,Xî"™÷]çÔ+Ô¸Tg÷V÷ݢׯ×ÑdŽSzóø–s@ßí9Ñ××àg³\Ÿ¨²û kç­©ÄoÎX§t'Õj̬62šˆ¼PjÇئ Ž•a.£Cðý~jâï@,«äw°·Tt+ñ} òÈ^¬åZ†¾FçbέàYÆÏíÛ2 çqÀUºcÁ_j…þ<ÅÀZô3›méX[1ßœkØwÙwèÔfî Qìã˜çÉ|æ]òÖµÇ:vu¯¯]koýŸÑïÀÞL¶Ÿ¹•Êa·RòW‹Ì¡,µ¸sÞ@Ùä«41uã;(c‘šOåˆaµÂ?ES%ßµÐ|S“:‚ïÐxÈËR; ³œ†dZiDfØ(Ë\!¶G@¿)³ ¸>‚>1.ÎM•X‹"~ƹ(Á:Ô3bÏJØ~Áj:õ0î73Gj•°mFÈnÃw-ØC±‘z]ü³DâÇñÃJ+d©ÙT‰õ­/¸²Àó!;¶K¤¯UTÄï0Öž«“è[ˆ”vY¾I1 ýÓ ÖS¹ôñ‚È«=ýtÖ%Œ­(µö×S5ô'Ã~ bý(ÎIˆ÷sܼc†qîIŒ96óòÊXÉ-ó1näÉ¿ ´‚r~Ù•4#sÍà3!1þRÔǨ*»HÎ`q9UõyÂÊJ¥•J¾ÐÚ…kŽ_»ÒkARGð¾ÔdSMÑZáYV ¬†¬šÏ¢“¹¶@ÿÅØ‹£\—¥ªÂK¥–ƒü4(Sx;Ù}4ˆŸYß‹Û’£¾øÖÛ¸Ô#þK~GŽöÅo/Nôˆ›<¶ìNŒ­]rÉ_Ì͵ã}WåïÏ—/òÇån¬×jšæ_/O±dò`wÞró\$ö6¯ñåºÐ·.¾\ŽG%nTßò­gì™Ûœ=¹È¾Åû‹a9χ‘뫵E¡‡ùó!òœ‹/æäÅ\l 䯈³¨øü“ÇUã¡—?ãÏ(Ÿ3æÏ·J­ïÜ•rëö +ëgÛGnîFž¤ÇT>%´~ÊÁ@}4û2 ØL+“ÕôHî{_ Ô½Ow»˜*0ãò죷Nõ^ÍëGµ[ê만ã3ÇdÎO§9q÷Ð;»ž®§Ç¹Œc:ç2þÞ"òÇsÎIПdóE."—qLG;c¹õaõ5ÐÎÓŒ‰ÍTëÕô|çä3¢÷2×·ÝÚüÞî|-wÉ&ä—†är¿®çVr¡o®’Ãì\žÔœæÖ9Leâ/:V;7}N÷“X4¼ …kçhêläjôÅ5º{‘¼ßê7Zƒ0Õ™œ—@¹&I s:A],÷óòÞ­{Ù‡&äøRi·¯8«¡wë3Αüµ­s¿=Ë9gKã™Ï_ýú<½W~éá®^¡ôÉëÇû‡¾¸/û(õ“®³·'^­Êµ©Ô¥\ƒr͹†k@ç5Èêø™kN©3Qcj}Y‹÷+µ®d;­R›FPújçS¦†&dNs:Ó3®t;èrÈç8‡¸|”y™:\r:•º˜´æ ¥ì³Ôá’Ó©ÔåÕ1a. x>˜Ëa—è¥þLÉMÔÁ”šèt*u¹„øÒ¹(Ó±^×ÝoæiŒ÷€Œ·6Š²³ðÍ,|3 cœ%1¸5ŠÒO£Ÿ4¾™†o@™“ÐÏ`P âx1Ƨëî­£·.œ?t½1×z{Ø›}Ì>äb*¼Áé,\Ž¾wc¼ƒ6ºò¸})NQ‡KN§R—KTÇ7ïÂê(l¦Ž¢›N¥.—¨Ž)ÒáóB[©™}.»_æ#ü­ ~âîeX·í AÏ%Æ‚\?1|v˜àmLyö¶UIžåŒ°ÇmL¬E¾yr¿™f—P·eçÒ:/ÞøjÖ=W$>Hm¬1 nãHçê§ÛóðÛ•žSdùã~>Îï{KvïþGòöI©Šã›ï¹.ç}>¹ðÞþýß´ñu«K˜øÌ3…íAõ@íMF®_EÒN%(M),˜iþ´– NøW˜«h‘ƒŸ¼7^ë8vcB¾ÎÿÎàŸ°ßf¨`RA¦rW.ÖËÝïÁÓ/"7‘+? +–'Uß“¿mû–ßÔÕ'‘Ï Pè à,’’aÔ>¢s³”5 iÆ•¦°*†ú ÿOúø> ¾yµú+O|Ò@%yõKæy—¦ÂÐÑ'm±]€åþ +d?S°Âó-Ä\ß©vw?îœóÏØÿ÷Ö²¿®A´ö]›R]ì\¸ö`˕щ±#)·\ ‰ÕªX)íI1ÚU–FÕ±¶OHj"´O±\- ¬£¡Ú#’wEØ®HFEh¶Ü©EøZ¨öéIC„í±–;ƒÆ 6Ò™¡ÚïHÆGØž4EhŸe¹‰ˆŽ.wv¨ödÅs¤a—ÿç*žGSi½Gøé¡ÚïU<_Ú bl_h¹‹è}Ê]ª}‰åÞO—*תݢ8CÚÖ˜‘Ì H.‹Ðže¹Ù4Gð47T{žâåÒ^ú`„íùɇ"´$ŽÐn³Ü•Ô®ÜGBµ¯ +HFؾÚr×ÐGÓ¢Pí%ɵ¶—$‹Ð¾Îr§O(÷ÉPíëovY„]þߨø)º‰n¦O ÿ™Pí[—KûÙÛ+,÷9Z©ÜçCµ¿`¹/Ò*循}«â—¥½-f$·ûø¯ÄèºCñNiïò½ùjí¯IûuûüHÛß´Ü·èÛ±#é°Üwè»±ÚßóñßÕ¾[ñÒÞã{³:ö½–û!ý(ÖöË­E姽ÎǯÕþ±âýÒnð½¹/öO¤ÝhŸˆ´ýSË=H›bGòå¦Í±Ú?óñ?Õ~DñQiá{³%öc–û%=kû Ë=IOÅjÿ* ùu„öÓ–{†žÜJ¿ Õ~Nñyi_ý6Âö‹Éï"´·$Û#´wXî÷ôåv†jï +HvGØÞc¹.ú£àŸéO¡Ú HöFØÞìÐ~Ér¥¿)÷r¨ö+Š—öÕ»ü? ø:nx¯ÑÂÿ#TûâaiÿcûMËý‹þ­ÜBµß²ÜÛtD¹£¡ÚÇù~k EÄts S3jcôvjRÒ¦c´3ÒfM‘`±)4ÇEh÷±\_Ó/Ú2tú[îx3 VûÅiKc´Zn­ ²€$âÞhìÑT¹1šJ34T;pG4U¶‡$÷FcoŒ¦Æè}ÐÔ†jHÂï‹ÆÔYn¤‘»¢e‚÷BOgt@rj„í1Iø}Ñ{c4 FïƒæŒPíqŠrK4ávå½ÞM“o&¹ã™‰¡Úzï3gK;9Æö9–›bô†g¦†jO³Ü¹/÷()ª#ŒßºÓ3=‹ÈCQP@ Å€Š€øBDŠQ”§¢â“UWEEYÔ FTÀU0¢bÄȉ˜ˆA@I<ÆwbŒšŸ=#yœ<›_Wß­lŸÙ™ý;;gꫪ¯«ïLßî¾·¾rbˆÊj@ PTJ3PF—0c*Tµhœ¨”ñrjÙê Eµ  ¥‚” (4 œUÂL¬P=É¢É2%DSËVO+aή0¶©I™.ªå|)Õ… 53J˜ *Œ}a S^/Š˜b”K$èA™Y¶º:øË//?®ŠQ®’¹RTãɬ²ÕA÷‰ê>¹®™±g[t½…'sÊV×Z4Wn QY (AŠj@iFÊ-âù•k©*QT Ê‚FGšÐ¢*QL#ÊÇ^hÑ"Y\©RkL%J4¥ú²Õ÷4Š—4[½4xUŠr_£#÷6Q½Ì¢ûåÊ#Só EËå¡f«©Dy¸Ùê  Eµ¢<ÚèÈ#MT¯T4­(?¬8öc­’Ç+Uj©Dù±4¥ú²Õ«ÅO6[ýTðªem£#kš¨~Ú¢u²¾òÈÔQÝ'Ÿ73ö,Ú!AáÉËViÑNùSˆÊj@ PTJ% >Èjì¢ØWñ0Å!ŠcÏS¼Z±VñVEŸŽ³ü˜ÓÐëѼb¤LNãX±•b[Åi¥,S +QÐúbŠVÓ:`•1í\+ «´rÅÖŠ»¦ŒUvHÎq'·«Å]3ØÆøî®­†mtœvŠíwK«ìéÚ[ÜÛífqß în|ÿ€”Ø]GÛC±£âžŠRÞΰ£1ƒ2¸§ñƒ3ØÉøa÷2æX×Yýô·º*î­ØM±‹í¬qwÅýÓJa„ÛÛâQ®›Åc3¸ñã™×䳎³¯â~Š=RÆ*ÏpûY<Ñõ°xj{?=àþJôÔÑPì¥Ø[±OÊÛY3ö2æâ ö6¾:ƒ}Œ¯ x 1³ÜA¨¿õ Å~Š}•?HãþéQ;kvÀ~ÆÔ<ؘ›“g‡ÏÁzî7Ic«™ðc<Ô˜…ÉÓÄçP=÷[ŠS~€Æ‡§Gí¬º€Yp1ËÜáÒsP<2­¦á{¤1+6f¥;JÃÁzîPÅaŠG+Ñ£Gi|Œâˆ´ÒFX•.{?ᎶxM‡¿Î£ápçXÅãO«Ü莳x‹;ÞâŸfðã_ 8B‰t´G*ž¤8*åí¬WŽ4æ ždü¯28Êøwžl̶€£•8Yq¬âeFk|ŠâiŠg*NI+mœŽ3f{ÀS”§õ§¦h5ŸoÌwš†ãµòÛŠ§+ž‘2V¹Ónñ_Yâdp‚ñ_¹35œ ãœ¥8QqRÊ4TJ²º4Ä‘›dq1ƒ“opŠ“u´©ŠÓÏV<'åí¬v§Ó!ƒgß)ƒçß5àtcº»s5œ®¿u¾â Å ÏÓ£çj|‘buZi#ôLÖ¿÷vXÜ7ƒßß]¤á…:ÎÅŠ—(^š2V9À]bñ w©Åƒ38Óøa«•˜©£]¦x¹âŠ5)ogðrcFdð +ãGe°Æø±¯4f¼»JÃ+õ·f)^£xµòWi|]zÔÎ:#à5ÆL x­1SÝu^«çÎV¼>­fzÀë™ðc.vs4¼AÏ«x£¢‚›£îæô¨UðFcjÞdÌ,v˜äs“žûÅyil5³Î3¦6à-ÆÜœìB|nÑs¿«x›âÅ[õè|ïP¼+­´æ»Û,^ì`!^˜ÁÛ¯swhx»Žs§âBÅE)c•KÙýâen‘ÅË3¸ØøïRb±ŽV§x·â=ŠKRÞÎZðncVeðãŸÈàã×4àÐú¯ïÂŽÆo®ÿz6~)v¶„|.þ~ì$ì>òyøïcc°åä·á‡c+±ÓÈïÄ=†MØœŽ=M"_‚ +[m%ÿ~ÍÐúúÎø6×× ~ùÞø—ÈóøØì5ò*ŽíõÀÏÄÄnÇú×àc‹°~ä×àïÆV`uäïãÿÍ$ãü‹YMöÚ¤[çwëëÉ“ý0Q6É*–¨ŠdWMtE²JuªuºÿU…s’Žv,>Yª]ú–¬Å'ë».}Ÿqé›ÍÞ¨jg>yO焧éy§»›ûûKm²N:÷7§k‰ûŒ<éàø¿ÉJâ¾ §ïb qÂÊ-ì€Ç#×ʾo·Œ;ˆ7ÛÆ]ÄœoñȵrǸ˲Á,œ eÃØH6šaãX›È&³)l›Îf±9l.›ÏOŒgÆ Ä§Æsã%âÎÏxäZya¼d…YVŒ±R,˜•aecÆ ãâqã¤qñç¥î]„@Èé· ®JÊwr¾#WJ©¦˜ÒsÌ€õ˜+#ß™øÎŒç,³ +Ì&0;äà˜3–׿Yo–ûò‡`ügH‰ 1$á¹|'ƒ´^^• 9?ßø.èR+$£ÂÈE (FÅø⻸‹¾„ŒJ"—òà˜òŽç¡–W`¾ÿÁ»÷f½Yo–®_`šŸ~Ì?~||3q{Eþò{!¾Ë–”ß_Éù=–R¾&¾¦áwZäó5ŽfâÏÐ,üÉ™-ŽÝ"'ÌŽóæàÏé\òfsj¹ßŽE òÖ.ÀoìBò~Ö¹\ozçWrqþ)ÉŸÁŽº•6eÊ8èVÖ”)ç [yUpÐ%zUXÉ-â˜[e¯Õ*šÝªÊ¨š‡juÍn5dTSsgO+¹Ô†:P@ÝŠzÝ +l„§f|7†&²ÚTólÍ‘[@KÍ=­V^«­5»µñkëØlí¶w¬¿ûê€Ü1NÜ:™2vqÄ­«ŒºÅÁlÝÝN=vëévêÍw/Ýú˜2}tëg[¦Á­¿ÀA0Â`# œŸ‡ÀP“r$ Sve[9ZÃlcÇÂ8ˆ€ñ0ACÏØ×DMBž,pŠI9UƒÛ4äé0ÃR;SÙm–)3[à ±­9¦Ì\Ýæ™2ót[ p¡ å" n‹m+—hp[Š¼ –à +X «4ôŒ}­v;­qÔ‹ÀZ·Óz¾×9è¶Á”Ùè Û&Ù͹m‘ÑV¾w`¼ÍE±]£ÛN·Ó.‡fŠ^»=f÷8ä¶×cvŸCnûm+hp;ˆü¼ ‡à(¼‡ÅùˆIyLƒÛqÛÊÜNÊè”…ò´·w‘ß‹‘?£¡·yE>ç1ºCqQ£Ûû¶•hp»d[yYƒÛä«p ®Ã‡ð‘†ž±¯¯ ½©ìvKà¾oóýï»ð1|÷à¾Iû@Ùíòcø>ƒ'ðT¹£·õ ù¹£.ÑëòKø¾€/á+Gݾ6e¾qÐí[Sæ;ݾ—ѺD¯eôS¸ý,ð·Ü¯Ž¹ýæµú»f·?dô§‡ê_šÝþ–Ñ?š;{ZÿFqä?B #þÄÏ]A }n$@` žòÄ—Õzg#‰“$z;{tK굚L³[r¹ŽÍ–R`*§úÇpKœ&NÜÒš2éøNO28â–QF™â`¶Ì2ÊnYÝNÙvËîvÊÉwÝr™2¹tËc[™Wƒ[>I~R€"A¤8)ÌÏEHQ“²)¦ìVÒ¶²”†Ù‚‘K“2¤,)GÊ«÷ôâVAF‘+ 1)+kp«‚\•T³ÔVWv«aÊÔTŸ!V·PS¦–ƒnµM™:ºÕXφ²¾·¶• 5¸5BnLš¦¤i®ÞÓ‹[ ·SK'½xÿVn§6|·vЭ­)ÓÎA·ö³rë(£N|wŸ³‹¢‹F·nn§îÎÌ$û÷ð˜íé[/ÙÞ¹õ±­ì«Á­réOÁ$œ çA&å nCm+‡ip.£Ê‘ÜF!Ž‘£ÞÛƒÛXäq$£ñ14ºM´­œ¤Ám²må nS‘§‘éd™If©÷ôâ6y™«Ôg™oCµÀ”YH½†Ûb²„ãR Õ2äåd…Òl+É*ªÕÈkÈZ7ÑcYo¡Ø€¼‘lRvÛL¶X(¶ªz`Ÿmd» Õäd—_¯n»5õÙCöÚPíCÞOÄÁl‘ß"o+÷:D[(Žhú­’w8³PG>AN*;ž"§-ïjší=rƆê,ò9r^Éí¹hCõ¾)ó¹ôn—ɪ«È×Èu¥Ù>$ÙPÝ@¾In©¸‰·-wï’•Ý>±TÜC¾O¨ºÙø}jêóˆ<¶¡úù3ò$f{ŠüŒûézЫB"Á/"L,0¥À4Ó Ì-0ŸÀƒVXM`mõ6ØN`G݆ 8Là(' +œ*p¦ÀE— +\#p“À­w ¤Q³¬ó†~"¤Bodý /J#{ú“±¬è/5ñ @Æ !PÆIx%:NŽ_fRÁì— pTÕÇ?²ÙÐnd›„×ØÍf³ÙÍ."ï—¨€E@Aä!ò~ZqEyúàˆ€( +¨àÐ:µµµS§­N[GZ[­µ­µÖŽÕŽǶ¶µöÿ÷î7d¼Qf:‘àœoæþοsîÙsÏ=ç»ßÉ¥ôñßóljm@òU— Ø<Ÿýt I?YdûµÏn ÕS%~ÕAk¼Žî!ŪÃÒ‘²˜½u²©µõÒYuLºPvf›€M­MH‰ê””R–°MÙ•,'»‘d%YEV“5dоWûì-]U÷m‘åÚf€ »iíàf¬Pÿ0©T})æ/£GHµê+Ö¨çJÌnFk‘ݵÍÕRKÙÏØæÖN’žª§Hˆ²'Û„É:2b{´å4©S}½DTÏÂ;Ìè9¥¬ç½ dŒl$ãd‚l"“vKíáF¬‚Œ^à°Q=‹Æճ̅ ­])Mªo–¤ê5-2¥mn“^”)Žð"²7y1Ù‡ìKö#û“ìöÚÏ-²·¶Ù «ÞÜ"ûh›»­õèè­ÒOõé¯z·µ*}ŸÃêÙ/ƒ(r´ƒmjí2DõáfÌ:‹gû‡²ùö3Œ¼„N^jûµÏ‡^¢žGd¸êãØý¸\¦ú”\Ny{AŽ´µ¶9-#U?%£T?mí*Ø(¶ÿšM­}FF«~»Í²Ñl3†KŽ#¯"Ç“W“ȉä$òû^íó2Võ[ä8mó¼ ¯ÒÚŸ4ãxõ¿ˆ}ŸÑgd‚ê—e¢êWNRÏkrê߶ÈÉÚæ Ä Ë&󯵩µ”©ªßFÌ°l*Û\GN'¯·=Úò™®ú=D—Œ~_f¨þ@fRÎཱིÈÈÙär.9¼Ñn©=ü]nPý‘ÃÙêùÃ9êùÄ…s3µí²džj/âVF¥EÎ×6¹.¼‰•ó9æäBr¹Øök.\¨µ~.ÒÚŽ.\¬µ].QO©Ã¥t,áH–ÙÔ6å—«§Ò…+X¹œ÷®$WÙZïªqá*­­u¸Z=!ÞÌÊÕìùëä-äÛ£÷F\x‹Ö64ãõÇ›ñVõ'òOäV·ÙÔ69\«ž>.¼•kyïä:[ë]ý]¸Nk5ãzõuáV®gÿÉM¶Ö»†»p“Ö^îp³zFÉ”›ÙÏ]äÝä=är+¹Ün·ÔFãû–Ñc]xÖŽwá­è­Z;Ù…Û´vªlW=½EîÐ63î¤cŸh—Mm3ÛánõÌ“{)w³åò>r/¹Üo×ê]7YßsG/rá^­]êÂ}Z»Y@F¯n‘÷k›[\x€•÷s„ÉCäaÛ¯=¤]xPkooÆCê_ߌ‡Õ¿©Tÿ]Ðñ ÇðMm³ÅáÃêÙ|˜÷>B>J#Û~ía— ÕÚ=ÍxLýûšñ¸ú4ã õ’Ç(Oðß'Ÿ O’§È'íZ½ëˆ<¡ú¨ Ojí1žÒÚÇäIÕ'[æ€OþkíWÒ’e\~ƒëUhë ò;NcÙ Q¢ÎƒÓX6¾5Ôyp^ÉÆÄSoý†Fä÷ g½HëÁ ÄÓ çémÕAc½x{צ%ç”X'^DÍœŸ¡\cý†~ åF§Í/P"‚x‘Ëçü +%ÆéE4Êù%Ê]Ž~%â§w·£ñÖ¼ÈjsðÄïAG#ªx±ÆsðL^¬­öï¤å«8[µOćóM.žË‡qúçbœ>dÀ¾¡Ð£9®9r.Ö¯o„Ó+×7Z$opZò1"ž9f>Ƈ]”‡}VˆsbÁV\o9úm\;¡qú+ø3®¿Bc. # +Þ…[>\Ƽü Æ_Cx¯ÿ†Æ +ï4ôÇÐ81 ÛñclE˜s?ÆæG¾\„qú‘ƒú‘ç!‚u(Î…Æÿt芫ñÄ(çGvÖñ-‘bìÀb¬ÇŽ˜«bôß飴tÁ8;}Œë_И«ÎXãèïáBÖYö&þã+ý‘£±^KŸ‡þJäíåþ´tú.GöU1Wâ¹*¦áBöZ¹%²É +ä°•øV ç«@VX‰w^±Øiƒ5[y©BÎ[ñTX÷#»©Æªpš¨z.-Ý‘ Õ`üÁ<[‘%Ö|™N°®NÐQøž….†n´|¸Š ±‚ÔaüÝ{¡?ÌK°ùKæ%„F¶D>V‹±õÀz®ÅØj‘ÙõÀ8k‘cÕ¦¡ñí„ŽC„Æ©2ˆaÄêZDàZä¡wEz¢ÿPóº !o +aBس!| Cس¡÷EÂx×á¾(³ñûChôÆ·;ìs4æ0œì&Œ“Cã ã‡1çaĺ"”˜£ðKÐXxuxž:ä)uø¯:Œ»î èçPbÕý#-Ì[gÈÞQ1#‚µ™}ù&.œc"¸/ò´H=æ9‚w]ÿ¨‡¿óS?×Jh<{ý‹¸ÐcbN£XÏQüoû+Úñ0Š\.zsEü‰bMF‘cGñ‰bŸF*ÒÐט´4`5 þ4`4`4|×èQâ~ ýO‘Þw sÞˆ!¿‰ p4b] û.†ýÃûŽažcÈkb[ G M 1'†ýÃÿ6¶Ç……܈<·Ñ‡«ó׈±6â¤Òˆw݈xA€ë;Ž5ÇóűãoBãËÇûŽãYXk ìåN‡ ¬ßæ3³]gæ3³]ë(ñ]‘¦BhÌ_ÞYüMˆoM8/5½wÑôs\€FlKbLIćäxG€FÜJâ}$÷’Pbý%±—“Xû)œ¿R]Ó’B,Ja¤°þSøΤðJ-…Æû̹dÉ…bžó=cÆŒµŠe«òŠ‰KÆŒk fÅ¥ª\2Ìwj­8U@UHú%»ÎŽ ÙÒvÍ{¾`̘±V1+n‰‘Jè)#»’åd7²‚¬$«Èj²FL.f̘±¶`Vtt;ò‰KÆŒû2š•q„$‘>mVŒª§Š‘d¼µ‡e̘1cçhVôJP%ÅœùŒ3ÖÌ:ó¥¨ú}É~dr9Dþ¢g̘1cŸkV>5ÄÅ7L2çƳ³-+ŸN5‚)fÌX[0+#E5FL\2fÌX[0+.¥š &.3f¬-˜—&R]KN%§‘×9m¬h5j9S2ììÈݪãüÿÌ{¾`̘±V±\³ÄŽHóéY@.$‘‹É%äRr¹œ\A®“—3f¬-˜•M­rt;ò‰KÆŒû2š•q¬‘LDú´Y1j-Õ:r=¹¡ÕÇe̘1cçfVôÚHµY̙Ϙ1cmÁ¬3ßT[Émävr¹“ÜEî&ïý¢g̘1cŸkV>µÇÅ·W2çƳ³-+ŸÙOu<$fÌX[0+#;,™¸ÕÖ-‹±è¨\Xã=.Êx?ËþÇnuÀWQ<á™ÝY:Š „b½ RiR¤—ÐB轄Þ ½JPªtTTTˆR¤‰ HQ@¤ªTiÿ¹{÷;.ÏG `ÞòÞŸ¾™oçö6ß,w;ÏÕ¯ŒzVƒÕ³\õ¬µbŒ7€Õ¹ü«žÍàªgøJ]®ó`ø–ÞÝà+z㺌÷føK%ÀUÉA+_©ÌõNßÒ{ |Eo\—ñ朩ÄÕNƒÕs\õœ73M |¥F××r|Kïð½q]÷ß¡à_õÜ6Ú\o•ç‹¸£ +&²bã&3}rð•*ãºìÿ;LþUO*ƒ`øJUÿö.¦ŸªƒÀ·ôf_Ñ×Åï?†€¿T’ü¥’Üàê ù¬X|¥2××Q|Koð½q]Æ›Sü¥’’à/•”1–3}yð“ªÀõ»©øW=• ‚ÕÀWªú·ßÕe-YCÖ‘õ(‘ +– e}ÙX6¥$b”!fÉz²©X'ÖÉV²¥l#ËHÙŽRˆ­b»Ø#öÈv*›8.Έ3”Žd7ÙEö”ZÜKÅ] +’ …˜,VŠÅb2ç3Q 1‚ &S°È@™NRËÜ”Så”yE´ˆƒÅ0ÊMÙ<å4˜ +‘µeMYW†Rb•U6’ dFIÅh1RÌ满2LĈÙZ†Ë¶”Ÿ +Èö”Rl;Ä^±W¶WÙUqBœg)=¥•ÝeWÙSö¢4âŽX&îQF‰RŠ)b•X"¦p>3e0æQFƒÉ”lie™^f l”Uæ¡\*—Ì'†‹¡bˆˆ¢<”ÃÈS.ƒ©ª¥ +WmT{ÕAuT]¨.…RÚLõ¨>5¤-̶P +§–ÔŠºRwêIû©õ :Àì€ê®z¨ÕGõWÔ ICh(EQ$ £hOiMRQ*ZP£Õ85^MT“iͦ9´„–Ñ +:IKi9­¤SÌNÑ9º ò©üª€*¤Š¨¢ª˜*AU©:Õ¤ªF5¨­§KÆ,¬ …QSjFWé:µ¥öÔ‘vR;ê@hÝ4³; ¦J©Òª¬*¯*ªJªŠª¦J*¢>ÔP_êOi$¦Q4FÕTµTªªFª‰j¦’Sy•Š¦Ð4šASi:ÍTéT Í¥ù´ŽÐ/×—ßìòÍ>_ØîôÀ½ÞÕßK[J<÷øvøºÜƒCÍlôÙÆæYÆgss>—[ðYnžÀmøämgž¶ù„íÌ'åÓ}ñ¼/Æ[ÓÕôÝ´Ošu·™Ñ[#¸§öæ.Ú—»gî—¹÷Ýï|ÿO6Ìc6ÊfÑŽìð8Öñ7áà#í“~´éÇx˜?V»bï˜{—rÙxÓO`Lrd'3&2ÞЮ:ámŠÍ¦Â4˜3`&¼ ³`6gæÀÛ0—ãX‹¬Yo1æ1ækWž°öŽÇìbíºtÛ_ +ËØ/‡°Ò¯ò0ÿ]튽cïŽoÅÕðûkÜæä6þX{ cŸØìSX ë ÖÃø 6ræsØ_pÜ_ÂV·ç6kWž°¶-Öh»v=OŠípð¯ÜîídìvŒ÷0viWìÛëà_»ÝÛÇØïËø†q@»ê„·ïü Í¾·Ù!í +õØa›£ì0ù¦?Æ8á˜{’qœñ“vÕ o§lö3œ†_àWø ÎÀYø3çá\äx þ€?ã¹Þ9¸¬½¦ÿÂþrð+6»ª]—n»æà×mvÃô7·LvÍø[»bïؽûÜõÏdÂô’‘(ö|Tñ]I{ma˜Øc6‰é“2R8²Ï0’3RÆkådºk{¬}yÖf©ð9Li0Óò(¦Ç „™?Y1ÄñLfF–¬ˆÁ±Æ™tWøˆû’ÍmœÝmœC·B=†9m– sc‹çÅ|˯[¡Ã³/`AÝÊô²Ù‹X‹`Q,Æü%,neK0^Ö­Rþ”tðRXÚbeL_–ñŠã~9Ýj½¸/åmV_ÅŠX +c| «b5¬Ž5°&ÖÂÚXëêVêå}©ç1j³úŽlÝj½gØÐÁac‹51}SóÃt+öŽa3Ùæ¦ÑÒ‘mÅhÁ×­Ú ûÒÚfm°-¶ÃöØ;b'ìÌ™.Ø »sŒÀ^ØۚՕуÑS·òÞ—>³}uëÒmØÏÁûãöq6ÇC<ÌÔ­ØKû24Öh˜£0šýpÆHÇÝÑŒnÏÒ]AíË›Åq8'àDœÄ£7“q +Nå8gàL·ç¦éVžÀûòf¬Ñ¬X£ÙºÕé3œãào¹Ý{›1Ï1žÏ˜«[±—öeƒ/t»·ˆ±Ø1^Êx‡±D·j/ìË2_n³6[©[¡ÃU6{ßcÿ¾ÉW›þÆGŽ¹3>d¬Ñ­Ú ûò‰Í>ŵ¸cp=nÀÏp#g6ḙãÜŠÛâ¹Þçø¥îšþ“}Ùîà;lö•n]º w:ø.›í6ýÆ×&û÷³ßÇØ«[±—ö倃‹ßYì é¿gq›8Þ+Ò]ÛcíËQÙðGöÇ?9²§''ãµòqݵ=Ö¾ül³Óø þŠ¿á<Ë£ßñ^À‹x‰ù_x¯9žùƒñçÖ;Wb/ë®ð÷åºÛø†Ûø¦n…z ÿ¶Ù-¼w,~ï 0˜Ð®P á1+YLéV¨ÇD"›%IDR‘L$ÿûe_EuÅñóNò^H^„°%$yìû¾ïû¾ï»Šb¬Ë” +R´ŠŠ +XŠ@-A@D@¤”j«­ÖÒZµý|ú‡ŸýT[[zæ¼›ã<˜éËúîÄÏœ›ùþÎœ¹wî™›y÷Î%?S0ÈÑT:Òtg©a\Ò-~-¬­¼ f:2-×ëêÎ6†ãRO¼,ݹ¸©`¶xõ1Gw6¶6ÐÒkC‹ßˆ™«{$ÜP°±Åo¢;÷̳øM™Ítç䆂Í-~ ÝÙ¸§`K‹Ÿ¯;÷,¯²a±î¬³ akl“žÚŠ×Ûë~î¨ÙvÀŽ1ê©“x±‹î玚mWì†ÝcÒSñzb/ÖÞ؇ØW÷ØfÛûǨ§â ÄAºŸ;j¶ƒqHŒzªûY˘ï°õ3\¼8’uŽ&ŽÑ=ùŽQ?ãÄt?uÔl'â$œ“ž¦ˆ7§±NǺŸ?"ÃÙ&ÎÂ91éu®xóp¾î1ˆší\£ž‰·—è~nÛ —[ü¥¸ oŠI¯7‹w ®`½o#®Ô=’×*‹;~/F½Þ!Þj\£{ ¢f{'~?F=Ý¥ûYË”íÝxOŒzºW<ÀºH¼O÷H^÷[üu¸>F½nïG¸Q÷Øføc‹ÿ>ˆ›bÒëCâmÆ-ºÇÀ6ǵôúˆMl+ê½³øëÎÆ=·‰÷„xOÒñ”îÌô|Ú&ö Ûug¦·à³ñçtg¦·àñv*Ý…Ï¢;3½w[üŸêÎÆ=÷8Ä_Йނ{oˆìÃýÄŸ•ó~/ê~¢Ê)øs‡øÝ™é-ø ‡øKº3Ó[ð CüîÌô|Ù!þŠîÌô<ìUwfz ±‰¥ã5Ý™é-xÌâ×{ +žïuñNÒñ†îÌôé_¡dŽ“¯h?ø›Ôõ©:ë +컡¶û }`aëóøÚ趀RµrûêÂ{°DµvºsÕ¬Øoß3ÏôVðCpÜyöÀ½±ö{Á‡ÖÞ#—ýø|åitFø*HøÖ…AÅ~g²%ráßGŒ‡eõ™ÌÖ+ïqÙ8%ói™ÏÈ|Væsf?ç%\üÕ(—LöŠ„k¿庳cB×QH"É_Ê$s°Ì!2‡Ê&s8Üï‡"¨ +l„á#x ­žÐ‹†b·¢×„àüm¡×i;ÜÀ [Лvb½K»é}z>>°‡»aFa ìÅ‚´c¹ í¡½"„OóYú”aaÚ—±ÍÂq˜BŸÓ×´Š¾¡/é?ðüþ‰Å±eÁUø”†c:gÑEŸç‹X–¾§98‰þG‡1+ã:J'é8¢3tŽcuèK°6N¡Kt•.ðöÃ&¬‡ èEè‡h$Íã"ŠwðÏ|…`Â8•C8‚¯ñ l…÷qÆ,¸Æ1\ÛálÉœÊÉð5| _a|;AvÆ.4»ñP.Æ%9M$ó>¾%ËqÎäJ؃«q®Áµ¸‡Ø“GÓ+\vñHQ{sì G¹7УÈhÐZÑ0 äÖ´Y|’OÑVÚF;à&c¨ü‘=N»0œÞ£·èzž„'`0wÇHŒÆ0 ÑzŒã®ô1}"Bù Ÿ£Ï0ãi?\Ášã1•¾ Ñjú7}E¸ ƒ¡0Ó°$õ‡4KqúVDò¾„åø8¤¹8™ÑÌÄ*8‘ŽÑOt‚NÓY:OK°Œ¤‹X§ÓÏt®Àhcà)¬ é%‹iÍç"šßàË|• ĦŒ-q‡r$_ç›Øïçh8‚ýá:ànŽíq ¶å$.Ê)0ÆÁ|;âC0Æ®4»ó0.Îé\B¤ð›qyÎàŠ\áê\•[pM®ÍuR<Nb/C¹>ìä–ÜûÁ1nÌM¹ä ü=-£´‚–ÓLZ‰ûÅ9q^œgD[ÑN\WÅ5ÑUt×Å 1P 7@#È0 Q[Œc#Q̳Œ8£€kÄÑ¢ŽXb$Éb½xÞH/‹ºâ¸øQ4-Ä)qRlõDGÑIlõE/Ñ[\—ÄfÑÀqK4CÄPƒÅVÑDLSŒp#BlM#X4óÅ#RìÍÄr±Âˆ7 +ñQ>Æ?ðTžŽWxϦhžÌsy¾¨ÀOãw¼Bx?GἜWòj^ËKHîmº÷SpiÅAA¶Ä[õ" ÊDHÊ¡I†”Ûß„ +YÞâfÈ_t wï˜G¬õDy[—‚æçõ&o®R^ßK‚Y&æ1>Ézy‹OUX4Ïó/–«]ÜËø4…%ÍV ¯ÇOÏÕ.åe|é\í2^Æ—UXÞl•ózþrµ3¼ŒÏÌÕ®èe|%…UÌVe¯ç_5W»š—ñÕsµkx_Sam³UËëù×ÉÕ®ëe|= WØÆ7ôÈ4RØØ&¾‰†k +ÍlÇo®áZ@KU¶ÒhZ{dîSx¿Íøm4\[h§ÊöÍŸ4ÜŸ¡ƒíó?à‘yPaG›øNî!èl;þî tµïæ‘é®°‡Mü#®'ô²¿·–ícß×#“¥°¿‹§ŸÕMßaíøj¸ÇàqÛø'´ì“¶ñƒ=2Csñ q£®é{ŒTå(f´†cUù”F3NûtãmŸ‚Gf’ÂÉ.ž‰nTS4}O…i¶ãO×p3`¦mü,-;Û6~ŽGfžÂù.ž¹nT 4}? ÏØŽ¿PÃ= ‹lãkÙ%¶ñK=2Ë.wñ<çFµBÓ÷JXe;þj ·ÖÚƯӲëmãŸ÷ÈüEá_] B(Ò›Té-B€@è½÷¢Ò¤÷Þ{“" ‚4i¢"Š‚Š@{CDETPD@iñÛw×åvöîáÂs·ß™ÿ?ß3¿ùæenæ¹egÎÈ­>=MV²”>&£-¥Ÿ¨Œ4Ÿ­Æ¹Õg 1–>Äƪ–>\ÿné¯*ƩƹÕg”É8Kk²º¥L5VÇgk‚ñFnõ™l2ÞR¦ŒOºÙ8>éöâĤ¤#T/¡vsÊQÝ’ÚË)ßIõ +j·¥|åqTÖ$&ÝžLuM*ë(§qnצ²‘òqT×¥²™ò‰T7 ²òáTësm§|Õͨì |Õú\;)Jõ*½“nècï¥Ò—òª©§|K|RR*“nFP=J åáT/¤RòŒTÓZ’â)¢z9•ʳQ½’Ê2³ÿ*Íþë©4£<3Õ›¨Ðºnf¥z+•Ý”ÓÎãÝ–›òST¥2€ò“T¤RˆòÓß(Jù¡7BŒ¦ü,ÕS¨”¡üÕ3ôg’ò TϦ2ÍÌçëÏå—¨^¤?”_¡z •”_£z9ÚÛ[]©¾.„–ŽòTw§Ò‰ò}T÷ eêô4kY)?Du?*½(?Lõ *y(?Jõ0*ù)?!îüg™q®'ŠqŠç‡qr§…qN'„q*D˜ŸÏ`Ö‘Öxÿå?}/¢DJY‰~‚ê+ÉnÖ9Í:·Y'W~³UÀ¬³§°H)» Ÿ‡)c%Æ鬟³úzJ™µqŽ–3[åÍÚ8ý¢ÍVe³6άX‘RvD?GSÆJŒ¾–0ÖSÛ¬ë@­g¶ê›uCY‚¢$Å09^Î d Y_¶e#ce5YV–“«dYQ®–ýå9H–=dOÙ[ö¡ž e#ÙD6¥OÅËZr­Luä:i¢œ$§È©4ê9RŽ–chÄβ‹ì&»Óè­dk¹^¶•íäšq‘\,—È¥4û,9[Ε󄸜­ ±Ýã÷KøU:æš ±j¿ëèܼxÎ’ò©ÏÓIóïï©4wýµæ-ÒYY¸Ï>éétŠD–‰Þêz…~7hô>ÌVN«g.³ÎM÷û¼fžÿž|ù’Ù¿ ½•ï´ +…ýúdºëß«Ëâtï/AïÞ5žzizçø?JYz7%oÞòt§÷¦W¤¼ªEÓ»­ +½×ªÒ»À¿Ñ%ýZmLgcÝmŠÒo5]Ë|Ï{¼˜ &¢nååß:Q™!Ú³{üߌ8úmv·>5è·Y<½Ïÿm× l~눺§@ží¢¡«ëh$šÜµOSÑÌç¿5-\õ{÷ÈÆŠ–¢µh“¬O¶e÷¬hG¥²Ž¢3ê.¢«èfëÓ]X ±ò¡b˜­ßp³!FÚôQb´­=ƬÇ*kð]tÆx1ÉÌ&S™"¦Úþuš­5]Ì´òYb6ê9b®­Ï<1ßÖ~ÔvŸME%5µi¨NK%ÝÓÒSè ŽÄ­,3ÝÉôß©Ùèf¦ßËrÒ]Lÿ}ªßÃòѬî>…è¶S„NëbÖ¤n!· ý¾ ß îÜbé6 ¿¥õ[µñÖß¿úmº.Þb ô[4½OÝšà¡¿ZÒY«ÿ?lKÏ`{z;Ò9ÛÙ|úô'NÊô§Kªô'Izúc=ð¤èOÈPj £çAôo }×ÿßïûrçÉïÂóÿߊ V6‘ÝK(…ñ›Ìî#ÔbŠ•M½ç1RbLs(ÓÙ=…BÌðªÎLÖ)1fyUg³ûâŽ9en²ÇH‰1ô¼ /ú]ØȲûãŠEàbE}Ì#_"–²»t?–9”ÇÙ=…B,÷ª>Áî‹;VxUW²ûâŽ'ÁUÊZ*«Í|•5â)v—îÇz¯êv_ܱܤ¨›=ò§Åv—îÇV‡²ÝS(Ä3åY*Ûïò©çØ};žwx(;©¼`æ/²û㊗ÊËTvÝåS¯°ûvì÷(ê«ùkâuv—îÇ^ð %‘Ê>ö›b?»K÷ã€Wõ »/îx |[QyäïˆÃì.Ýw2Ê{ìët È(GÙ×èx<Æî#Ôâ8x‚ÝG¨Åà‡Šú‘Gþ±ø„Ý¥ûñ)ø™¢~î‘!¾dwé~|åU=Éî‹;¾O)ê7쾸ã4ø­¢~Çî‹;¾Ï°ûµø<Ëî#ÔâGð'Eý™ÝwœÏ+ê/쾸ã×€Œr}Žß2Êïìët\ôª^b÷ÅxU/³ûâŽ?Á+ÉüÔUvßÁŽkà_ÉüÔß쾃×]íûzý›®Îv‹}½þÆm‡’Äî)B…ÝS(„æPRq{ +…ÐR;Éí)BKcei¹½„Rhé¬,œÛK(…–Þ¡Dp{ +…Ð28”ŒÜžB!´H‡’‰ÛS(„åP2s{ +…в8”¬ÜžB!´lå>nO¡Zö€Œ’ƒ{-g@FÉŽŽ@‡–ÛÊòr{‹<ÜLù¬¬·¸ÈÏíÀôQÛâç~n¦BÜ?…¹˜>Šp;Püåv`ú(Æí@ñSœÛéã°„¢–ôÈKieØÜ•f›¹,XNQË{ä´Jlî*²Í V¦RÕC­â‘ÇhÕØÜŲÍV§ï¡ÖðÈkjµÙÜÕb›9kædú¬ãò|u¹Wì§Ïz.ÏWl ¨ ¹÷Á‡ÛF®ÍÔl¢¨M¹wÀ‡Ûf®ÍÔœ{­~úláò|-ÁVŠÚš{>Û‚m\›¯Ø^Q;pïƒÃg'°£kóu»(jWî}pøìvsm¾Á‡õaî}pøì öpm¾^`oEíýÜ¡=öUÔ~ܾ¸CëPÔܾ¸CVÔ!ܾ¸C +SÔáܾ>G‚#\›o8ZQÇpïƒÃç8p¬kó'(êDî}pøœ Nrm¾)àTEƽŸ3Àé®Í7œ¥¨³¹÷Á‡Û9®Í4œ§¨ó¹wÀ‡ÛG]›i¸PQq‹]›é1p‰¢.åÞn—¹6ÓãàrE}‚{¸C[®TÔ'¹}q‡¶ +\­¨k¸}q‡¶\§¨Oqûâm=¸AQ7rûòáv“k3mŸVÔ-Ü;àÃíV×fÚ>£¨Û¹wÀ‡Ûg]›é9ðyEÝÁ½Ÿ;Á\›ïEð%EÝŽŸ¯€/»6ßnp¢¾Ê½Ÿ¯ƒ¯¹6ß^ð EÝǽŸ‰à›®Í·Ÿ{Å~ú<àò|¹Wì§Ï·\žïmîûéóËó½VÔw¹÷!ˆ+~O;âG¯£àûŠzŒÛ½·`ŒãÚ ?z}ȽV?Wó‘Ëó} ~¢¨ŸrïCWü™ö¹½¾¿TÔ¯¸Ý/´“Ú×~ô:ÅíÓÏÕ|ãò|§Áoõ;î}⊿×ÎØÚ?xíuüQQâvïcMç0ÆÏÚ9[û¯½~/(êoÜ;¼Ð~×.ÚÚ—¼öú¼¬¨r»^hW´«¶ö5¯½þÿVÔëÜîƒÚ í¦­}Ëk¯Û`’] Üî½GXªŒ¡……ÙÚ©½ö’`EM˽Á‹°taá¶vz¯½"À Šš‘Û}ð",2,“­åµWfnŸ~®&‹‹³™µt„MÕ™ +L J0 ˜L†ƒéÁ0˜Œ3Q`f0 ˜ÌÞfs€9Á\`n0˜Ìæ €ÁûÁB`a°X,K€%ÁR`i° X,–+€ÁJ`4X¬Æ€UÁX°Vk€5Áx°XLë€uÁz`}°Øl6›€MÁf`s°Øl¶Û€mÁv`{°ØìôûUEuÅoæÝ¿ kö@XZ*ZTD!„°‡I€°ï[ ?v*`чUv\K±µUQõPZ9ÚbK µ­X[þàx@O1ýÍc¾[>:))Ét~z¿;÷½ sç{óÞ½†‹ 3\bx¸á†G.5\f¸Üð(ã 1\ax¬áq†Çž`x¢áI†'žbxªái†§žax¦áY†gžcx®áJÃìpH‰o‹Ï¤Å¯‡ÿ"~,Õ¿®"~Ý&þ‰ø |»Œ6ôà8mLñâ7Å]#~"…ÄOŽbë:¾I™©d‹ŸîÁ e4“‰ŸÅ%žëÁMd4/Š›J¼¥7“ÑV5r¢ÌiCIâǃ“e´¥ˆ'²øwQšøßw²wýœ!£=8SFï£,ñp9["ºœ#‘‡œwæú]©¹øÝ]ΓH—[H¤—óæ\¿7å‹_à¼-×/¤Öâ¹ÜF"\n+‘AÎûsý!ô]ñ‹ñ#~ }Oüx£¿”Ú‹_Ž·ñGÓÝâWàMGüqtøœ7íú“è^ñ§8ïØõ§Q'ñgàMGüYt¿øs\~@"•.w–Èük‡˜ñPñ«ðkDü0=,þ⹫ÌYZ#w“9ËoÂÝeæÊ›ð#2óqg]¸þjê)þQÜKâk£øQ‰¯Ç +Šø<¸Œ>íÁ2ºÑƒûÊèf.”Ñ-.÷“È6—‹$ù¿¿Džqy€Dv{ð@ÝëÁƒdt¿–у)èJñï¤ ÏÄuPt‰xÿ)§Â”„]4ï%éÐaJF~iè\“Q饡_MF~iñîu‚{Ž4y t>ôô\˜Rpæ¦÷€¾Å:KEÕžy©Ø2Gê èÇaJÃódb]¤¡ËÄ+³›{ÝýÆﶊû¤]D³Šû¤ã\ÎÂ}Òqÿ¬³aÊ@m¿ËÀ·™ýôcè PìKÙ/A?‚‚â=ä$A/AÑeb]ä SÊÄ9™sz…:ÖKf54Šï wy˜²pnå~Å9п{6òo~Šu˜‡õ™ß9oi˜rð\yŸAŸ%jÞ17Šõ’ëö4C׺+§«rº)§‹rº§úî˜ô^ÊtP17DàÛ‡"ìã”ÃùM8»Ý½I]7‡oÁsàÿš“(¨—P (œî^Eú» òîõ²o˜—GÁ^ @€ÚEùäÕï À· ¦¶à;)¨‘P ¨=øXؽ°ŽìO¨ PÔ‰‚ý(@€µŠ:ƒ&gOêj¸;¸¬§¹êe¸7¸ÖVëwÃ]b¨è¿"Àƒ`ƒaC`CaÅ°a°ØpØØHX)¬ V #wªoxl"ll2Õµ½TÝê À7¦)ìG¨ `šIÿÙêƗηúð@S%ûQ€j4U—–ѵ}©nâåä<~^MþÈÅ¢5ä§lÖ‘Ÿ²yŠü”Í&r²Ùjx»á†w‘Ÿ²ÜC~Êæù)›çÉOÙü„ü‘ÍËä<Ž?òxü‘ÇëääqÔðÛ†>NþÈï}òG'ÈyüŠü‘‡E§ÈOÙœ&?es†ü”ÍYðyØŸaŸP]ÉÌ“ÿ…êÒÓÖ¦ àR]Êå"Õ¥§½½Lué‰ÿ˜®ra˜¦«ä‡\pŒ3î—\bÉ?¹Ä“r1ßKLCòC.8&‘ü“KRÉV»Ôµ[íµ–Z­#Önk±Ue-°Âª¯ê£úq}k™µÉzERejŒZ¨ª8Þú£šª&«éÜÈÚc]µöYÕÖë1k¡µÈú—µ×úZ¨Þªë©rUªF«gUSÔ$5ª¦ª™ÎÔYj †p¬¬ª¡|›Î¶Þ±ÞµŽYÇuŽÎU¤,£”j¬š¨–*_ç©Vº…j­óu+k­µÎZn­°NX¿´ZÏZŸZTœŠW‰*I©bÕ_ Sj¬š¡frSnÌɜʉ܌›p +§qçp·Ð­8Ÿ›s6gržÎç–œËÿàË:†;jÖ·s ¹'?Ê}ø€_å~ÜŸòQ.â<ˆßâ¡<Œ‹¹„Gr—r9á±<žßç +ÇøžÌSy:ÈSxÏàS<›çò<žÃ•<Ÿòc¼ˆ«8Ì‹y¯àå¼’Wñ^ÍOð:~’Ÿâõ¼Ÿæ¼‰7óVÞÎ;ùw¼wð3|†÷ð>>Àçx/ïçƒ|žÿÎ_覺½¾Kß­;èÖºn«ÛéM|QÕãôx=IÔ¥ºLæ/uWÝM?¢{é¾O? »è-ú~]©çéè*=_OÕÓô =[O׃ô`=T—è!º.Ð…º¿Þ®ûêÇõ*½F¯Õ«õ"½X/Õ+ôŒõ´›®ÕçŽÕ‡¥ÂÚÁŠaaØJØzŠ¥že|C18I®wÝŠ^¿œÊ0c¾‹Íxøº¿Ùqw®®>üFuõkîdçk}“Žš%Øý g_Š½öŒŒgg<ã¿Ù/×à&®+ŽŸ»«•Ö^Ö¯–&6+aVlke ÌK–WA‚`cì%ãÔØdœ@€zŒ } - œ„ÁåÜ„Â34’xDò…ih›6%Ót$íL“tÄýß+ÒŽ™Iû-Ý3çžß=çì¹÷®vïµÏB·@wò9²™9:Eë­-¶Øòÿ-·ö˜ÿØn÷y–œÉvÜÚÃx›Þ%¾¸GÉwØ£Ò'szûUÍÀÍÓسN|aÏ»VŠ*JS4¦ÔÊÍúUŒåÆXͯ½ì…³Â:»Ž4¿hÝ¢Í-±ë–Æ]½.Öëd‡$¾“}$ñ9Ÿ–ø ãl€â ~IÅL^½ +’è‰+§˜ò ‰[•Ö×WJ -¬ŠU¶ÃÓO;<íð8h.z a®¨Xµ^ôüèÕ ç=£™è™¢gHj’©Ö1ö›Áç¯vä'XŒÍ yd°ŠdW½qŠí"7élhŸ°rÜú;nýOn}[_áÖO±§¨E¢eVNƒþfƒ>¥A¯iÐ'5èÇÙd*A@¶†–è'KôT‰¾»D_^¢/+ÑËKpwEÞ-Ú–;ªÕ_ê[¢úê¨þ½¨þHT÷Dõy…úÈBýîB=Å~p$w}nO.eõèë{à»r°Â4jSìÒá€QZVe¤Xw2^ód2¾ß¨½“­"¯ƒaE+É+q»œÂÂ~—ù…ýó‹øãIÓ‹Û:“¡ga:’¡óx É'‚%çáŒ7µY,©YIa•ÛòdhÂ÷$Ëεùl ùØ(¸GR@„‹) ÒGd¬3tå&:àM1–4>[“’ØãšÙh\õ¥ð\ñ¥T˜w½)iÒxÛ„±¾n¼e6 EŸ¡ÂkñóF¿¹È8V&nØ>Á«Óæg[-ÍxÑÜ`ì4»!Þõ6Ç…Ùä…óˆÑ2¾{0i, ð4c!*>V3†{«•køÊƳÌãÆýæ£>=Ò´°0÷™ÇÄr.Yzm‘QkÕ¡3Æä0V’4&òÛ“ÆØôà•>±¼ŠÐt£Ës1î‰W#0$³ÊuÍu=àïçò»F»F¹†»Š\CÕ5OÍQ‡¨Ùªª:U‡Š÷Všø‹UÊ?Ó¡ÎêÄg÷õZmád“Õ)Æz°kmGäßÆê¾9VÇÚAŠ­åÅ:øX]‘AÂîâcEøX>V—Õ%Æâk‹,˜uoç ×·—.mîìl¦Ï¿X'-Çèdóož©Œ4œ2eã$u€Uä(èe!ù ¡!†F:D£ˆƒr!.ʃ8¨€òÁ…tjA\4¢a2 -4œn°‡<Ã5*¦àj‰qCB´¢á ¶BµàoRÑfjFt.D£jA´¢Ñ*JDO@4ZMObžk¨ Ü ÁI?ÿˆzˆÿŸ³¼¢ÐFÚˆUl¢MXÅfˆBÏ@ˆ¶ÒälƒõB4zž~ ~‘v€wAˆöÐnð^Ú‹ -ûh*ì‡hôÄE}t9G) Ïq:>qÑIˆB§èîê§~ÜõSü-Aôsz™¿€(ôú%<ïÒ›ð\¤¿‚߇hôwúüD¡!]¢àÙ^¥ËàO -»›þ‰´ˆ’ÆÊØp°•ƒýÌW² -ðOÄ&±‰àÎ`bSYx!»¼ǵ–³Åð¼Â¾ÏQ–gX;ÉN€ûÙ)ðì4ø,; >ÇΑ&U²ßáÅ H|M+54iœ4\%UÇKãÁ¤ à‰ÒDð$ix²4”‚àj©’B`KªAµ: ¿¾¼KšŠ?ÍvËxæòyxŸ¼ü’¼|@>NÊ?‘‚+¿>+¿þ³|üü6iÊóò‡DÊe)¸2oº¾g”ž¥‹¦’Ø4ʼn#Ï*$‡kÞÅ1M–¥»²œ®iŒ¾¡fýÍS×8¬´tæåàŒÁ™yWƒ3òn©&x#˜wM…?ïÉõ(ËR×>UbŸNÉo]%¾µjÖï˜*ñ±î²† +K «ÉŠÃ<÷û`Þ¹ ™(q‡çNOµ#ûÚU)ötæ{\d«­¶~%u»­¶Új«­¶Új«­¶Új«­¶Új«­¶~…T¥Gˆ¿d*@›f¸ ÃNÐHDÉ‘Ï0ªÊ°D943Ã22Ê°¼2ÃNðκé±úèôÒø‚Åmåí‹[¿õe«gM‡s×;sŒ¬ŽÕÓ<2XE²»Á8Åv‘›t¶N´OZ9ný]·þG·¾Î­¯pë§Ø3ÔˆÀ"Ñ2+§Q»QŸÒ¨×4ê“õãl2• [CKô“%zªDß]¢//Ñ—•èå%¸;AµïíFË]«R«¿Y«o©ÕW×ê߯Õ«Õ=µú¼B}d¡~o¡žb?<’»>·7—²€‡zõõ½ð]=Xaá»|8`”–U)Ö“Œ•Á<•Œí7Âw³Uäu0¬h%y%n—SDØï1¿°ße~ÿNÒôⶮdèy˜ÎdèÇBò‰àÉÀx'$c-F8‹25+)¢r[ž m@ø¾dÙ#œÏÆ‚{$D¸˜"}DÆ:“±ÑHWa¢ÞcIã³5)‰1®›MÆ5_ÊÏU_J…yÏ›’ö'ó&Œõuã³ÅøC¨Öø*¼»`ô›‹Œce↽‘¼:ía~¶ÕÒŒ—Í ÆN³ÇØáíQosL˜M^8=(ÓåK±‡“Æ’A3¢âeuÆ£poµr _Ùxc–yÜxÐ\b4¤Gšæó˜XÎeKa³È¨1&G°’¤1‘ßž4Ʀ¯ô‰åU„f¥Xžãˆq_¬Â!™Un<ô¸k®ë!×x×8—ß5Ú5Ê5ÜU䪨yjŽ:DÍVUÕ©:T¼·êÐÔÀŸ­Rþ™uæqãtðÖ!8Oâ­”þŠ%¦JxµRl`uœ­ýÚ²ša5¡ü‰S#ƒ4­™¶t°«(¾¹nÖìø¾¢9ñJEsêâãf¹™}”]bïG#GÙEnæ ïa—¢MÂï‰Ì™3¬.>£qvŠ]Œ.H!° -nñàE8âVêâ‹:ä…+r”bÜ ŽTE^^¯l•HëI§™¨‚´7<í™"Í”.ˆ´3<-±Æ$¼^‘¢øhHY£øx +xzæ~ÜI˜¦ÈÊŽ3¿˜·?;. +‰BRBž’¨ !¨aóv¸,nJ‡›D¸ùvØ—oO‡·#<è3þ®öû¿\ÞÁæm«ú¢íÅÑÖâh;´5þ̲ùÃâ+ç¹Ý‰UÛxÀ—G·Î{t>·míñmÅí‘øªâˆ;ÑÜ7H¸‡›‹# ê‹Æf'ú¬öH²ÙjŽã=ؽ¶3úocõÜ«sí ÅÖòb|¬îè á(wó±¢|¬(«ÛêcñµE̺¿këÛK—¶tuµÐç߬“–c t²ù·ÎTFΙ²q’:À*rô²À|†ÐC#¢QÄA¹åAT@ùàBº 5Š .Ñ°N 7ØCžáÓp5ĸ! +!ZÑpP[ˆN¡0ø›A´…Z Ѩ•Zmƒh´ +‡Ñ“VÓS˜çê÷@pFÒÓàQ/ñÿsÖƒ7@ÚH±ŠM´ «Ø Qè9ÑVÚ‚œm¢>ˆF/ÒÁ/Óð.ÑÚ ÞK{QaíC…ý^¸(As”’ð§cà„(tŠNá®~êÇ]?ÅßD?§×‘ù ˆB¿§_Âó½ Ï%ú øˆF§ÁAú¢Ñeúží5ºþ¢°{éŸøA‹X!i¬Œ ûX9ØÏLp%«OÀñDl›Žâ &6M/d€á¸VØr¶ž×Øà9ÊRàã «`'Ù p?;~‹ŸegÁçØ9Ò¤Jö[¼8)¯Ic¥±†&“Æ«¤*ðxi> endobj -25 0 obj +28 0 obj << /Filter /FlateDecode -/Length 44966 -/Length1 252024 +/Length 45045 +/Length1 252112 >> stream -H‰¼V pTÕþÎ9ww] ¨d ïz F؈\Ân„ÆjÂCv‡î’›HH4[D4˜ª vŽoÐbÕúk¹bj_Š¥*N+ÆqDmÁ±ƒàh+ÚVÙÛïܬ™¶ãt:½ÿü{þ×ùÏw¾söîBÁæÒ®å+ŒëN ˆ£sÛSþ·°ê¯{£qeÆüiëU´3œ0¶¥©«12jb%à¹õ“[šSx…ôwÒµt.kß’Ùè¥ÿ õ¦e˯nùÑë¡–÷ ‡ÒÍ©¦þƒ7þê­ë+Ó ?:ìe`È*úãÒí™U·L>XL 0rCÛ»2* ^Î(g~ÕòŽÆ”xúHÔsË™¿¹=µªsèAß>ö3™7Û;®\Õüë/ïbý}P‘ÀŠT{ó¤÷»?†z“xÄÙ](Vª7÷èúÎ+›;?~yM?ÔÒà}±óÊŽÎç~ð)Tëµ,2 ¹r¹]n÷4‰Ýø¯OÒS‡Rj@mÂ)€³Ÿz˜z0_ÂÇ(/âdÞ/,9KöÈÏÔp1<+ëœmÎsÎïy"œLþë(!ƒU¸ ?&Þ[ñ$^À[<«OpTøD‘(&†^±O|$!‡Ë³ØíÕ¡²j›c‹±Ï3Ó³.ÿpþ€³Ì¹ÃyÕùw/á#÷å˜F™Î5.@æ#&r}¹{?îÂ6<Žän/ÞÆ>E^Œå>§‰±X¬ˆb·øBJY$OçšgÉuò^JŸÜ-÷ªUªÊÕµDÝ©îU·yšãûŠ<ø]db²¨3ÄLâœ-¢b®¨—ˆ<ŸE".R¢Mt‹5âF±…r¸Ÿûè¥ìO‹WÅÑO9 Q¾é“iÉñ2"ë(‹()Ù(Ó²U¶Ë”‡å6Ù+s -j¦ªU)Š­úÔ^Õ¯ÞS7JŒŒqñ¼±ÛxÛ8`üÅøÜSä™ìYè¹ÔðVyWzô>á»Ü÷˜ïml'Ç¿äž?¸ZÞ)ÿ5òB~Ï~Ç·Å+rO¢[¯ÇPR ³j“¦=>iã­9sÂÚ·R ¤’¶ÉPí·kl3閙߮Œ°²å¸ÊÈ@eäX¥(2g`F8dÆ,Ó~-j™9±¸!N{cÔJ˜öa×þ¾kßìÚCiƒœ`Æé¨i‹¤³kW¦³±d”ívè–Ã!^<2=D7¶1;ÕpÐ1»ÄŠÆìQVÔÍ©²XªÉ®oˆÇ¢£ƒÁD8d‹ÙÖRV=lbaºžg²t^œk‡C­?ÖŸÔd5­ÏE°4©­Ôeq[¥¶Lê5†O´‹­¨]¼úƒÀ7î×Vlà¤-ËjSÍÙZR³~΀›Ô^j½ºù&Ûʵ‰¸-Ö&@¸ØvÑlÅt$ÙfÚ~«ÆJgÛ’äóâÛK"%1+Mبoå:áÐŽÀšóƒ$eGxVx–ÏÖ ŒÞ0½oˆ[·ó}ŽuóŽñ"ôJÖ\´ÍFw‹X§ëæéÈ6NgŸ„à.[mÿìd¶è<β=eE–™=”uøз#©BÄ[VtÚÔÇyìF0_°s83T—ƒ¿>þ¸?I䄳6‡héþ‚©,aº\_‡Ö(gÓ9+ÄÀ„ ­ !³–¨kõ¹™Y3;·)kÖši¸QæŽL4g“¸ùñV~.ˆíHbô1³9‘8}&ê>†Û'›`‡¶B‡6·eQ(TGŠÆ×ÇâvOt´‰&H ïO_}Üî#‹‰«ÂÇrìn 0ŸMÌá 4& t™Ïl‘Èf<+h÷e³£³ú{0àçŽD -ܼ*9ÑSï¦z¬àh°‚V°Q.5™×ëëãÍaÊføœÁ O%Ús\†+þG Ÿû]®üN Oû× O'æišáªÿÃç bX¿™½Èóí4ô¥|2Ÿz÷7ÿ. ÿðìâokáÕîêVáWQv·Š?4Ù¯A–ýañNø ɸ®J÷ØGÍZ¡_ô°6Nöq¼ vjAÓ`ë Ð6Æ°˜×÷Þj8µ.qŒÎÀ»ÛAõð“I ÞÿE°ÝÂßð÷°Õ›ûнdbÿõ•2¯{41y%]çî—K²ë°ëìŠ'ñÍgýh,ž;qÞÚùl³? a¿…ï\Î>Ê~Â>"çþ'¾‹y°ŸËú:g§>¶VR IÌCi\ÜY«Ñü-Um7³±ï¸È>ËsdŸòa†®Œ¥6±ìoQèöŸ‰Êó<ú9hïÆcðÙ}Äy­ëÄFY| üçžÏžœ}œ?Ù:'¸vžÛåÌqü)ËDå9Fõaƒìqn&ºk§ØȱEÎ70g¥ƒQföA×Î]S‰;NÉ6ªÒ˜Y¬c4 y¡Ô‚±ME *Â\Fãû¥ü4‘¿±¬”ßÁÞ2Ñ-Å÷•È#±–Ki9úœ‡97‚g?·`lËœ?jktÿÆ¿ ÔýùŠý€UègÛÒ±6b¾«8×°ï²ïÄÊ©ÔlÝC#ÙÇ1Ï3ùÌ;ä®k·uìèZ_³ÖîúïÐïÃÞ,¶Ÿº“Ša·TòWƒÌ¡(±xsÞDéøë4)qã;"cžh¢bÄ°*៧©Œ’ïh*¾©LœÀ÷'h<äE‰v謤Á©FžZ(6ŠR׈íáП˜Z\AŸç¦R¬E?ã\`j±gl?g-a=ŒûíÆ‘ØDl›²»ð]öPl$Þÿ,øqBü°TÆ -Yb•b}kr¦4ðÈ.†íék åñ;Œ5†çŠ8ú"¥}†Ÿ¨‡þ˜œT,}¼$ò -W?™vcËK,‚ýTý)°_€X?’sâý\'ïXåœ{b£OÍ缃¼2NrKÆÜ"ùw,­¢Œ_z5ÍL=H3ùLHŒŸúá•¥˹Ì/¦²^ÏY!°²BÉZ»pmÂñ‹cWr=¨NêÞ—ÊôªÌ[/<Ë*€UðYtc2×è?{q’ë²¼qT–;Cj™ÑÈOS%ˆg°“>Dù™õݸ-9ªÎÞë‰o=KÝâ¿äwähOüvãD·¸ÉcKïÅØZ$—ŒöÄÜL;îweÞþ<ù"{\î­¡¦iþuóûH* vå-'Ï…bOóŸQ® =ëâÉeÁ(q¤NâF)ðÏzvÃî¹Í>‰ì[¼ß™”ó<º¾Z[亘="Ï9ørF^ÌÄF_þê†8‹ŠïÂ?y\•.ºù3 -ùŒò9ó`ö|ë¢Ôúö} §n/1~¶qdp?êô8=­ò©õSúê£QØ—r`=­ŽWГ™ï=5P×>=à`"ǪͲî:Õ¸5¯Õn¡§Ÿ"ŽÏ“9?qœæüÅqÜE÷캺®ç2ŽéœËø{ƒÈcÏ9'A²É™ˆ\Æ19¬?ÇrãÃêk Áœ§c[©Ê­éùÎÉgDïeŽo;µùC]ùZî’‘_ÆÆo“ûå0=·’ =s•fæòœæ4§Îa*ѱš¹és²Ä¢a9 \Ø' Wƒ¤/®Ñ{ÄðøMøV¿Ñ„©ÚzÔ~´™k’X¹Ýê`¹——÷NÝË>4!× -»|Å^ ½Ÿ±Od¯míGÌYÎ8[Ï<þjwêóôù¥‹ûz„Ò'¯ïOzâ¾ì£ÔOºÎµ*צR—r Ê5ç:®í7 «æg®9¥ÎD©õeÞ¯bÔº’í4JmBÉì£L©Jš:ÇnKβ;’- «!Ÿkå>²QêUjuÈnSê`Òš7Ò/P«Cv›R‡CTÍ„¹,äù`.Ç¢³”ú2Å·P+Sb’ݦÔáâ#Hçî£T+ÆzsW¿©íïaoU¥gã›Ùøf6Æ8[bpc%·£Ÿ$¾™†o@©¡èg¨q<ãÓuw×Ñ]κÜ=ìÉ>¦·2åÞj·å®Dßû1Þ+@›yÔ¾ä'¨Õ!»M©Ã!ªfŠšwnµæÖSkÞv›R‡CTÍêƒðy¡TÏ>—ûÆkf‚Ÿ8„{Ömè1ЮØ8ã'Ÿ&øD3S–½mT’g9c ìq3S -k‘mžÜoªÞ!ÔÃÍéy´Á7žšõ€Æ‰Rk ˆÚÇ(Ò¹zéî,ü¥]Š,ÆËGù}OÉìÝÿHî>)•q|ócïß]˾ºáÚýtm -u -°sÁÚƒ WDgDŽ¤Øp%48R{ˆb©´C#´Ë WN‘¶ÏôI*C´Ï2\ ¬¦áÚ#|’÷„Ø®ñIF†h2ÜÙEøN öŸdlˆíq†;—jëè¼@í÷ú$ãClOðI&†hŸo¸IˆŽwA öÅ÷I;5Ä.ÿ/T¼˜.¢iô~á§j@ñi/°}™á.§*wE ö•†ûÍP®>P»Aq¦´#™å“\¢=Ûpsh®à‡i^ ö|Å«¥½´ Äv“OrmˆöBŸä#!Ú͆»ŽZ”ûh öõ>É¢Û7îFú˜àZ¨½Ô'¹)Äö2Ÿäã!Ú7îôIå>¨}‹â­Ò.±ËÿÛ?M·Óôá?¨½Bq¥´Ÿ‹°½ÊpŸ§ÕÊ}!Pû‹†û­QîËÚw*~EÚ»"Fr·‡ÿj„®E÷(Þ+í}ž7_Ë¢ýui¿až¿jû[†»Ÿ¾9’VÃ}‡¾©ý=ÿýHí 탞7k³h?d¸Ò"m¯3ÜzT®QÚ<üÆHí+>"í&Ï›‡³hÿDÚÍæùÑPÛ?5Üc´%r$î Ú©ý3ÿóHí'Ÿ’öž7Û²h?m¸_Ò3‘¶Ÿ5Üsô|¤ö¯|’_‡ho7ÜzAp'ý&P{—â‹Ò¾úmˆí—}’ß…hïöIö„h·î÷ôåöjïóIö‡Ø>`¸ú£àŸéOÚñI†Ø>ä“t†h¿b¸¿Òß”{5Pû5Å¿Kûzˆ]þV|7¼7è-áÿ¨}Tñ˜´ÿŒ°ý¶áþEÿVî?Úïî8Pîd ö)E¾ßZ…ÄêâbVNĨ-Ko§VBÚd„vJÚ´•'˜oåZ§…h÷2\o«O¸eèô5ÜéV¿HíþŠÒFh0Ü@kP¸.tŠ|’{£enŒV‰%7F«Ô¨í»#Ze!¶Ë}’{£enŒV¥¥÷A«*P{˜O|_´¬jðä®h´ü÷BWg”OrvˆíÑ>Ið}ѲÌÑké}Ð:7P»VQn‰ÿå¾J£¤¨®ð»¯««ºÙADV%” A þ -È¢ÙEq@ `نŊ#'bHX%ñT$!Mˆ¸`ôŒd9Y “¯¾zs3uzºçwì3÷»÷~ußëžWUïÝO:äž—×b”NÒQ +H‰¼V pTÕþÎ9ww] ¨d ïz FØ D ,a7†ÆjxÉ.ãÐ]ò` ‰f‹€3 +ƒ]Àñ-*V­q°–+¦vñÕ¨XªÆ©c'㈶Ç¥£­VËÞ~çfÅÈ´ŽÓéôþóïù_ç?ßùÎÙ» `? ˜+;W¯1®9a4 BŒÖ6´¥:üwÏ] Õ)c} k3æÝ-s+ig8a|scgCdÌä +Às+ë§67¥2ðKéï£jîXÕ¶3³ÝKÿ#êõ«V¯o¾aväÏP«»E¦›R‡7ý êͬ¯H30ò舗aëèOH·eÖÝ4õp1ýÀèm­?į̀€x8£œùu«ÛRâÙ/z žëcþƶԺŽá‡}ØOÏ7ÛÚ¯X×ô‹/ïdý}P‘ÀšT[Sp×úÔ@-÷pvG{gŠ•j@÷3;®hêøËË Væï‹W´w<ô½¡Z®f‘Í•ûÈ=r§Qôá¿z<HOJ©uNœƒÔ#ÔÃùjæ™Ë?ëüNgqV™Ÿ;1]ØAÄ]xç¢å8(æÐïÁëxb9öá{xT\€,.B%ÚD&ˆ7P~Œç8c=ÚY[ƒ›䬧œ«À£Èá3øQŠ*ÄÙeîtöá>ü Ÿ:÷;‡1›YÑïüSÐͬD Êس",3ÎÌáz;ðÞ£98 30Q¬BmXƒMÌ=‹~ ˆqÜMS¹N –a+nÁ°ñ+qº¸JÜcø´ÓŠKˆ •ónæn^ÇûøXŒ¿ûqNãpm ³PíæwâÜŸè`?厈Åb™²Ô g¸sŽó%ëGµêp)g´ájîd^«”w¹j¹¨KE‡èY±_V«S Ÿç"çZ¢<|WQ.&þN"½·‘ÃGðåEü–Ìû…%çÉnù‰©"ÆBÏZçg·óœóžˆ'“ÿ:Ê…È`®Çˆ÷f<‰ð&Ïê#>Q$Š‰¡GHÈ‘ò,v{Eµ«¬ÚmÀØiðÌñlÉ?œ?ä¬rns^uþÎÝKøÈ}9fRfq¹XˆÅH ‘\_æÞ;±c/¹ëÇ[8€£È‹ñÜçLQ-–‹ â±Oô‰Ï¥”Eòt®y–Ü"ï¥ôÊ>Ù¯JT©*WÓÔ +u»ºW=bÜâiô\î¹Õó¸÷ßõù†|c~mþêü3Ns‡óS§—h‚D£Ï´ ¸Û…XÂlÆ—묾KÄó~Ny’¨žÆ3è#¶?àÞ¹’¿ËC€LL•b¶˜CœóET,uâb±„ç³LÄEJ´Š.±Ql;)÷ˆû¹Ê^ñ´xU¼.(‡Ä‡”Ï¥Gúd@Zr¢ŒÈ:Ê2JJ6È´l‘mr;åa¹[öÈœ‚š£jTŠb«^Õ¯Ô»êF‰‘1®2ž7úŒ·ŒCÆ_ϾtÜØ’1âѧzʨ‘E#N~Ò°ý'ø¼CIP̪IšöĤmL´jkÃÚ·R ¤†’¶ÉPÍ7kl3閙߬Œ°²ù¸ÊÈ`eäX¥(2gcv8dÆ,Ó~-j™9±|aœöö¨•0í#®ý}׾ѵ‡Ó9ÁŒÒQÓI3f׬MgcÉ(Ûí€Ã!^<2=L7¶1?Õ•pÐ1»ÄŠÆì1VÔÍ©²XªÑ®_Eǃ‰pÈó¬•6¬j{ÄäÂt=Ïdé¢8ׇZ4~l=©ÑjÜš‹`eR[©Kã¶J%l™ÔkŒœl[Q»xÃ{¯Ý¯¬Ø¶!I[–Õ¤š²5¤fkí ›Ô^j½ºÅ&ÛÊ͉¸-6'A¸ØwÑdÅt$ÙjÚ~«ÚJg[“ä‹â{J"%1+Mبïã:áÐÞÀÆóƒ$eox^xžÏ6Žï_7£w˜[·ï÷ëãE蕬„i› î"±ÎÒM³m˜Å2> Á]¶ØþùÉlÑyœe{ÊŠ,3û)xPÖ‘¿I"Þ²¢O¡M}œÇnó;‡3Cu9øëã qC"'œÍ9DK÷òLý`Óåú:´D9›ÎY!&iM +™5D]£ÏÍÌšÙY³ÆLóÀ2wd¢)›˜Âí,Ž·ðsIÙ;´:´ºØà(‹B¡:R4±>¾0nwGÇÚ‘h‚”ðþôÖÇí^²˜H°*| )Ç®–@óÙÄžDcÊ`—ÅìÁ‰lvг‚vo6;6«¿ƒ~Nàø@¤àÿÝ€W%'ºëÝT·«VÐ +V"Ê¥¦òz}u¼9Lûv†ÏÊðt¢=ÇexÆÿˆás¿ Ã߉á™ÿžáYÄ=²ÒéåUÏ£Úp÷î|Hu´}§pœÆ±œ5»Þ÷(â.ç¼,mƒv¹ ÒÖ:ƒê×sXï'Æ4óc +œ”qÝI-ê8öœ¡p¸ [ôh,q1Ž/ì}ºÞ×W{Òø5¦ÿ S4¾¡ZÀ÷ õê‘!ØŽ×QÇi›šŽe…3M½Y¾†*uŸÓ¯ÏÑ{*ªµúþEzµÀwUWñsÿû¿¶ÉCØ€¹ÁØæ D@\€CB1ò‘ÆÆG(“æ ¬µ‚ˆŠL3íaë!iÁ %L”3šÅc=`–&¨AVò¸}Ϲçþv÷¿ÿ{ï¬ÿÿs~ßsÏ=÷ü^çwÎùQ=æ·ku8ÞLµXÿ\ç&ºÏ#•x®½ã÷ÛósŽÑ|¼˜¼¶›iZl ‰á^»…Ê’•´ó½”ǃ±‡Ý-âÍökåCX¼~B2®«Òð-öQ³VèýŸ'û8Þ¿;ã@Saë ÐVÆ°ˆ×÷Þj<µ6qŒÎÀ»ÛA ð“zïÿBØnåoø{ØêÍ}è^2±ÿú‚J™×=š˜¼’®s÷Ë%Ù‹µØ‡µövÅ“øf³³~4Ï8o{øl³? a¿…ï\Î>Ê~Â>"çþ'¾‹y°ŸËú:g§!¶€V‚R IÌCilÜY«Qü-Um·°±ï¸È>ËsdŸòa†®Œelb-ØߢÐí?•çyôsÐÞ…1Æà³/ûˆÿòZ׉²øbø7Î=Ÿ=9û8²uNp>ì<ï‘3Çñ§,•ç5Ƈ²Ç¹™è®bÇ9ßÀœò˜yßuN=BK5fouß ºýºýMæ8¥g0‹oÙ‡õ]§È‰¶:¾?ã˜åøD™Ù];wM%î¸sÆ:%Û©Jcf-°ŽyP=òB-¨c›‚8T„¹ŒÆ÷Køh"bY)¿ƒ½¥¢[Šï+‘Gb-—Ð2ôU œ‹97g?·blË€œ?ÆWëþ¨ úóû«ÐÏl¶¥cmÂ|Wr®aße߉•S¨Åº‡F°cžgò™wÈ]×nëØѵ¾f­Ýõ߮߆½™l?u'Ãn©ä¯F™CQbð 漑Òñש>qã;"c¬N4S1bX•ðÏÓFÉw4ßT&Nàû4ò¢Ä謠Á©&ªN-E©kÄv5ô'¦–—ÂGÐ'ÆŹ©k‘ÇÏ8X‡ZFìYÛÏYC£Yã~;…q$6RÛf„ì.|׈=‰7Å? $~œ?,•±B–˜M¥XßÚœ‡) ¼²‹a»@úZMyücá¹"Ž¾…HiŸá'*Æ¡?:gK/‰¼ÂÕO¦ÂØò aU@2ì Öàœ„x?ÇÉ;V9çžØ¨Só8ï ¯Œ•ÜÒŒq#·HþC+)ã—^E3RÒ >㧣~8EeéErn󋩬׳FV,„¬Pò…Ö.\›püâØ•\ª“:‚÷¥2½˜*óÖ Ï² +`d|ݘ̵úÏÇ^œäº,o,•åN—ZfòÓÀT âì¤Ñ@~f}7nKŽª³÷zâ[OãR·ø/ù9Ú¿Ý8Ñ-nòØÒ{1¶VÉ%£<17ÓŽû]™·?O¾È—»°Vk¨©šÝ<Å>’Ê‚]yËÉs¡ØÓ¼Æg”ëBϺxrY0J©“¸Q +|dzžÝ°{n³d"ûïw&å<†®¯Ö¹.fχÈs¾œ‘3±É—¿º!΢â»ðOW¥‹nþŒB>£|Î<˜=ߺ(µ¾}_©ÛKŒŸíBYÜ:=NO«|J`ý”¾úh$ö¥Ø@«âôdæ{O ÔµO8˜È±ÆeÙGwjݚ׋j·ÐÓOÇgŽÉœŸ8Nsþâ8î¢{v]]WsÇtÎeü½Aä1Žçœ“ ?Éä‹LD.㘎ÖŸc¹ñaõ5Ð`ÎÓŒ±-TåÖô|çä3¢÷2Ç·Úü¡®|-wɉÈ/câ·Éýr˜ž[É…ž¹J3syNsšSç0‰¿èXÍÜô9ÙGbÑ°œF® 쓉 «AÒ×èÎ=¢:~¾Õo´aª±µ_mâš$Vn·ƒ:Xîåå½S÷²MÈð¥Â._±×@ïFÇgìÙk[ûs–3ΖÆ3¿Úú<­G~é⾡ôÉëÇû…ž¸/û(õ“®³»'n­Êµ©Ô¥\ƒr͹–k@û Èjø™kN©3Qcj}Y…÷+µ®d;MR›†Pòû(Sª’&¤Î±Û“3íŽd+èjÈçØG¹l”z•Ú²Û•:˜´æ ¤ô ÔæÝ®ÔáÕ0a. x>˜Ë1‡è,¥¾LñÍÔÆ”¨·Û•:B|éÜ}”jÃXoîê7µ ã=,ã­ +£ô,|3 ßÌÂgI n +£ä6ô“Ä7Sñ (5ý U"Žçc|ºîî:ºëÂùC÷Ñs•»‡=ÙÇôãöQ¦Ü[íöÜè{?Æ{h“#Ú—üµ9d·+u8D5LQóÎ- ¶ÜjË»ÃnWêpˆj˜B}>/´ƒØçÒ2wßáo-Lð‡p/úí=Ú rüÄâ³ÃŸhaʲ·MJò,g „=naJa-²Í“ûM58„z¸%=—Ö»ñÆS³и"ñAjcQûE:W/Ý…ß­´S‘åÏxù(¿ï)™½ûÉÝ'¥2ŽožçšŒ÷Ùä»û÷ÓÄ×N,aâ3Ï´ÝÖµ7YrýÊ“v(FIJÐ Á˜Hsð/¡uujǿĺžÖÙøÉ{Ëmmû©.ŒÉ×ÙßYøÇÌ·)Ê™ÔW©Ø‘‹õbç{°§ô‹˜È-ŒÈ‘Ÿ„ËãªïÊ›¾åwÑš¡dÆ3T:8Ÿ¤dqˆèÂ4¥­…´cHËX‹úý{ø^ ÞYµú*žNý<Òþ ‚¬ú…Š²¼KRnàhN“6ß,@Œ29²Ÿ Xáùæb®ïV»«gÎÙgìý»kÙW× \»Ÿ®M¡®@v.X{áŠèŒÈ‘®„GjQ,•vh„v™áÊ©"Òö™>IeˆöY†«¢a‚5T¨=Ü'yOˆíZŸdDˆöHÃ-Q„ÿçjöIÆ„Øk¸siœ`¨ý^Ÿd|ˆí >ÉÄíó WèèpjOV|Ÿ´SBìòÿBÅ‹é"šJï~Z ö/‘öÒÛ—îrú rWj_i¸ÑtåµgHÛ1’™>ÉU!Ú³ 7›æ~˜æjÏS¼ZÚk@óCl7û$׆h/ðI>¢Ýb¸ë¨U¹j_ï“, ±}ƒán¤ .¦EÚK|’›Bl/õI>¢}³á>AŸTîSÚ·(Þ*í²»ü¿MñÓt;ÝAŸþ³ÚËWHû¹Û+ ÷yZ¥Üµ¿h¸/Ñj徨}§âW¤½+b$w{ø¯FèZtâ½ÒÞçyóµ,Ú_—öæù›¡¶¿e¸ûéÛ‘#i3Üw軑ÚßóðßÔ~@ñÒ>èy³&‹öC†û!ý(ÒöZíC好ÞÃoˆÔþ±â#Ònô¼y8‹öO¤Ýdž µýSÃ=F›#Gò¸áž -‘Ú?óð?Ô~Rñ)iáy³5‹öÓ†û%=iûYÃ=GÏGjÿÊ'ùuˆö6Ãm§wÐoµw*¾(íK ß†Ø~Ù'ù]ˆö.ŸdwˆöÃýžþ ÜÞ@í}>ÉþÛ ×Aü3ý)Pû/>ÉÁÛ‡|’ÎíW ÷Wú›r¯j¿¦øwi_±ËÿÊoâ†÷½%ü?µ*“öŸ¶ß6Ü¿èßÊý'PûÃ§Ê Ô>¥È÷[Ë¢ð‘X]\ÌʉµeéíÔJH›ŒÐNI›¶òó­\ë´í^†ëmõ · ¾†;Ýê©Ý_±@ÚÂí†h +×…N‘Oro´ÌÑ*±äÆh•ZCµ}wD«,Äv¹Oro´ÌѪ´ô>hUjóI‚ï‹–Uc¸á–Ü­–ÿ^èêŒôIα=Ê' ¾/Z–¹1Zc,½ZçjS”[¢õ_î«4JŠê +¿ûººª›DdU"A Ä2ì«€, +]T@imXŒ 1r"&€„EPAEbЄˆ FÁH–“Õ0ùê«77S§§{~Ç>s¿{ïW÷½îyUõÞý:äž—×b”NÒQ „Oºä¬vºOº»W0wzŠSxÒ;guúÊÍ.Ê©Åi@¡” 4  Ìb婬ѡ”¡r[Îj§…ZP %”, (y4 Ü‘ÅŒÊS=Z£12ÖEãrVÏb&ä™[Õ¤LjE¹G²uaiͤ,frž¹§d1¹õ¢ˆ*F™&NÊôœÕ…ÎßOœ‘{^^wŠQfI‘Ìj<™³Úé>¡î“¹Ì=O£ùâž,ÈYÑh¡,rQN (N 5 T ei™xYþZT8•(Ô‚²¢Ì•rt£P%ŠjDY•wîÕ­‘µù*Y£*QŠ¥<Õ¯ÞP&ÞXaõ&ç©å‰2W/§z³F[äÉü3£æ)¶ÊÓV—Q‰òL…ÕN @@ -1973,41 +2137,54 @@ å bXWù®ë)ÓÓÔgXßÕ؈x%±¯ÖgܘØ,ªÔúšF0Wj<8†W)?ë~®â<_#^Ml1Z9Ü\­ñ(ÓDãq1lªüD‡ÍH4ål_'^ClNlñ:j’Ãk”™ÃæÊÆ°…òE¯Uf¶¹Žáµü®o[[’¿Žqë誎šç°•2‡×+³8|vð¹žc¿IlÅZ³ÌaeV8¼A™ÕáÓ„Ï û-b;âäÛ2î]ÕQÅÛ)³Éa{e6› ÛsìMÄŽQ¬5¥•Ùæ°@™í¦ÃŽíBìJìFìÌ«÷ ö*u†ѶÇx§é¦ñžvW~¿éÁ°;çéIìEì1ZyÈôÒø¨é­ñOcØGù×ö%ч³ÝLìGìOñ:êM‡ý”9ÃþÊÿ*†”×á-Êœq8Ä-üÆÁÄAd2¾•8Œ8’86ªÔy>p8D™so%1„õ·E¨5Ÿ9ªÌ3ŒáPV~›x;qxÄhåEs»ÆÅÞPÿ#†#”ÿÒŒd8‚óÜAE1¥•î.¥±gFkœŠáå«8Kb gGOœ@¼3âuT ‡ã•©à Ê×áÊ7t8Q™Ææ.†ù]÷''ïæÕ»ßK,Œ*u†¦áþçâæf²Æ-c8EùÖæ^†S8ÏTâ4â}£•mÍ4Û›û4.ˆátå»:,$1³ÝOœA|€Xñ:ª§ÃÊôáʈa‘òƒÎTf¨™Åp&¿k6qñAò³Ï®ê¨áç(3ÊáCÊŒ3s>ıóˆó£Xk&:œ¯Ì$‡+3Õ,`ø0Ç.$."̺ÅÑUUèp‘2EQf6N˜ðóÇ~‡¸$ŠµfžÃ%Êd.Ufqx á³”c¿K\N\A|”W—1~Œ¸.ªÔ–™å¯O0¯ŽáJå‹Íc WržUÄÕÄ5£•›pú•Æ›Í·Æp­òÛ®#±–³×77F¼ŽÚîp½2;b¸Aù1ܨüžRìRri¬lí‘’Kóà7ÁzÁ6"_¿Ööò%ð߇ ‚mE¾¾;l;lòUð½aÏÃF‰æî|#ü‹°]°cÈÿ¿§KII}ø׎””ü~äà#O‚…@žÆµf°&°¶È§Ã·ƒ­„µ@^_[k…|üzØ6X1ò³ðÿÆ„óü «žµa·Žï-)Až‡¡² w±PU„§j¨+Â]ªnÆðüK»1aG;>Ü Mô–ì…÷…÷Lô„¿d¢7g#ÕÎaøð=]àž¦W O7óì/™pŸ4æo†{‰ù yØÁá÷†;‰ù9ú.ì!F°s N@žÊ*‰5ñÑáøÕc­|¬‰Þů…êÆÇšøX¿r¨½ƒNÃÇóà?wцŽÀ¿×Çý÷qûX'ÿw° °3àÝð,èMƒîÈÑcè2¬W€Þ;À©¼Ãsì@Žõ vÃÆÁv!Ç»àYp{‘c †1 ïo€ï°¾îS€÷7ÀY`}ܧàr¬Mðst@ð:rœŠžçfðrœeî?çý%rœ@Áé0†½ƒ'F€½(Àš¿Aþ=øM4/žïà)xœêÁ§°b—ãtp_ƒMȱüM8ƒÍÈŸƒÇ3àþ¥lƤ°/¸w)ôÊ©$òšÈñ §Ð¯¤ÒÈ/GŽû” ¯Š¼<Ö"…û—B–½HaÍRØÃR“c=RX³ÞßzÁ¾;…w#õ1ìò/°ãÙNcŸNCQ¦q/ÒØ;ÓØ“Ò‘tûyô‰"«‘§‘ï*RΧ¯ÿÿú±ÄÊ.«æ|uçk˜¯ÎÿˆçÍý/µ5ªc¾:ÿßÙ¯ -ð(’&ZÝ™ÆÝÝ] Nðàîî,¸wwww¸C½CïÐ;ô½CÏݵөô·›Ùì tÏþß¿Ûô{ÕUoëmmøffùýÆofáÏ8KÌgCÎŽœügÚœxʃœ9ò‰Ï_fäOo8K!‚ÿÌWügþ$„³”Â|i™)#£rX« 3e‚µ*2SUFÕ±VSfBeTku‘ë!×ÿùvà©1rdþÛÍofäÏZ8KK¹?oý¿¾¢æãϬ~3Kˆž¥³ŒºÊ¨»Œzʨ7¾¿/r?ä0ðŸo¥?ž!Fæ¿âüfÆ!=Ëpÿ™o4øÏ,ã z– ˜Ÿ„<y -øÏ´Sñ4y&ò,ðŸgCô,ód´üg¾Eà?³,…èYV`~•Ì¬–ÑZ¬­—™ 2Ú„µ-2³UFÛ±¶SfvÉhÖö!ïG>þóíÄÓ!äÃÈGÀf< -ѳ—ÑIðŸùNƒÿÌr¢g9Ï:³.¬ëÎz³>¬ 3ÎçŒ ˆgóÆEÄ3œÏñȵrïÆ-ãâMã¶qñç[4€º1õ4º5ØOÍøn Mdµ©æÙš#·€–š;{Z­¼V[kvkã!×Ö±ÙÚ lïX÷Õ¹£OÜ:™2vqÄ­«Œºù`¶în§»õt;õæ»—ƒn}L™¾ºõ³­ ÓàÖ_à a0 ‡ÎÏC`¨I9†)»²­­a¶1ÈcaDÀx˜ ¡gìk¢Œ&!O8ŤœªÁmòt˜a©©ì6Ë”™­a†ØÖSf®ƒnóL™ùº-¸Ð†r‘·Å¶•K4¸-E^Ëa¬„UzƾV»Ö8êE`­Ûi=ßëtÛ`ÊltÐm“Çìf‡Ü¶Èh+ß;0Þæ¢Ø®Ñm§Ûi—C3E¯Ý³{rÛë1»Ï!·ý¶•4¸D~ Þ†CpÞÃâ|Ĥ<¦Áí¸må n'etÊByZƒÛ»ÈïÅÈŸÑÐÛ¼Î"Ÿƒó]ˆ¡¸¨Ñí}ÛÊ4¸]²­¼¬Áí -òU¸×áCøHCÏØ×WÐÞTv»%ðß·ù~È÷]ø>{pߤ} ìöù1| -ŸÁxªÜÑÛz†üÜQ—èõù%|_À—ð•£n_›2ß8èö­)óƒnßËè]¢×2úÉn? üÅ-÷«cn¿y­þ®Ùíýé¡ú—f·¿eôæΞֿQùPÂHà® †>7W`<<%â;>I « õÎF#'!Iõvöè–Ìk5¹f·r)›-•ÀÔNõá–9­OÜÒ™2éùÎ@2:â–IF™}0[eõ[6·Sv‡Ýr¸rñÓA·Ü¦LÝòÚVæÓà–_`!R€$…I)Nù¹)jR– Å”ÝJÚV–Ò0[0riR†”%åHyõž^Ü*Ȩ"r%!&ee nU«’j–ÚêÊn5L™šê3ÄêjÊÔrЭ¶)SÇA·ºëÙPÖ×àÖÀ¶²¡·FÈIÒ”4#ÍÕ{zqkávjé¤ïßÊíÔ†ïÖºµ5eÚ9èÖÞc¶ƒCneÔ‰ï®wvQtÑèÖÍíÔÝ™™dÿ³=rëå1ÛÛ!·>¶•}5¸õC#ýÉ2˜„“â<Ȥ¢Ám¨må0 nÃe4ÂB9RƒÛ(äÑ1òcÔ{{p‹<ŽD`4>†b‚F·‰¶•“4¸M¶­œ¢Ám*ò42Ì 3É,õž^Üf#Ï!s•úÌ#óm¨˜2 É¢×p[L–p\j¡Z†¼œ¬Pšm%YeCµy Y«â&z¬#ë-7’MÊn›É ÅVUì³l·¡Ú¼“ìÒãëÕm·¦>{È^ª}ÈûÉÌvù-ò¶r¯C䰅∦O}”¼Ãñ˜…ê8ò rRÙñ9m¡xWÓlï‘36Tg‘Ï‘óJnÈEª÷M™È¥×p»L®ØP]E¾F®+Íö!ùȆêòMrKÅMô¸m©¸ƒ|—|¬ìö‰¥âò}ò@ÕÍÆçy¨©Ï#ò؆êSäÏÈÌöùy®ÔçyiCõ¹)óùòµü¾²¡ùùò­Òlß‘ïm¨~@þ‘ü¤â&zül©øùWò›²Ûïä ÅŸªØç/ò7Ç,TÿF1ªìH) °Pzf£ŒÆ±¡Š«Ç »Å³¨ÇGN@b”ˆ&~ Ÿ$4)MF“[¨Rh-¥E=rjšFÉ'-MgC•9ͨ䖉f¶¡Ê‚œ•fSq=²ÓŠœÈ¹hne·<4¯…"Ÿª‡[·üõÈi!%ŸÂ4±TE.FƒtN‹[qM}JÐ’6T¥ƒiiÌVFk·²õrÈåi%ŸŠ´ ¡•-TU´ÎVÕ¢^ ¹:­¡ìU“†Z(j!צu”ÝêÒzŠúªnÝXÔ"7¢•|šÐ¦´™¥ª9r ÚRÉ­mmCÕÆ”iKÛqlÿŠnhGªNÈi¥ÙºÒn6TÝ‘{О*n¢G/KEoä>´¯²[?KEr:@Ùm ¥bò`®êfãó ÑÔg(fC5yéƒÙF!¦c”úŒ¥ãl¨"L™ñtlj¯è6‰N¶¡š‚<•NSšm:aC5y­â&ẕTÌEžGç+»-°T,D^D+»-±T,Uõpë¶Ì¢¾y]©ä³Š®¦kèZ Õ:­³­·¨o@ÞH7){m¦[,[‘·ÑíÊn;èN Å.U·n»-ê{÷Ò}J>ûézЫ_!‘‰ &˜J`Zæ˜_` À`•VX[`}¶ØQ`7aÃ8J`„À‰§ -œ)p‘À¥×Ü$p«ÀÝiÔ,ë¼a€©Ð™À8ÿc¿\€£ªÎ8þÁflB dI` ìf³Ùd“ ‚€PÄø[§¶¶vê´ÕiëHk«µ¶µÖÚ±Ú±ãØÖ¶Öþîwï~CÆ›‘™óÍÜßùïwÎ={î¹ç|÷;]”]•Ýü6ÖgD¢¦ Ûe¡µé&]LKWÓ=¨Éë²€1óô‘"•1ý÷bŸV—î¦ûK´ywí§‡²§²TYæû­Ï{š§ZJM'¼ñz¨ô2’Þ*{io}|Zma:+}U¡mâ>­6'å¦[¤Be¹¶é§ì¯ ¨¬TV)«•ƒ”ƒ• ÿ^ës„ô7=ª]°6cB8Ðjǵa¥ù'J•é㘿¼ž,ƒLŸp°yNbvózf»bmN‘•Cô‡ú´ÚSe˜é3$©r˜¶I)k•ißc-çI­é³%múÞa^Ÿ/•uzo½2«lP6*sÊ&e³ßÒz¸U×l0ϲ€æ¹4„9«])M¦¯fÓ«Ûe‹µ¹Z†«lÑ©¡„'[íOÚp–ù_dßçõ™múe™cú•€§šç59ÍôoÛåéÖæ b†g§ë3žéÓjÿ(sM¿MÌðl®¶9K9_y¶ï±–ïÈ|Óï]òú}Y`úY¨rÞ{Žò\åyÊó•()/ô[Z—sMð<óü'àùæù$„äk;u–E¦£Ä­¼îÚ.[›¢^¤•‹uÌ+—(—*—ù~ë¡$„K¬¶4„K­¶w—Ym߀—˜§"àru\¢#¹Ô§µð2óT…p…V^¦÷®T®òµÝ58„«¬¶&àåæI†ð -­¼\{þºòJåjßc÷¦Cx¥ÕÖ·ájó7¶áUæo¨"WiqµOksdÀ5æÂk´rÞ{­ò:_Û]£CxÕÓ†kÍ?!„×kåZíÿå:_Û]“B¸ÎjO¸ÞÑ6ŸÖæ¼€ÛͳHnU¹][Þ¦¼]y‡r‡òN¿ÖîºÈûžziï°Úå!Üaµ+Èòúòvy—µ¹2„;µò.áÝÊ]ÊÝÊ=¾ßzh á.«½¦ w›mî1ÿº6¼Çü7Ü«Ž{t ÷ú´6ÞgžÍ!¼_+ïÓ{P>¨Ü§Üïû­‡m!|ÐjokÃ}æßцûÍ¿³ 2ÿnyXåCúï(U>¦|\ù„_kwí•GMßÂǬv_·Ú‡å ÓµÏ1Ÿü×Û¯´Jgïäò®WÑÞäw"NcK(©‹p+à[¡.Ây¥€/H¤Îû&òGˆÀ_Gi#œ@"ÃÑ<\d„W‡f½DÈ€£kZ¥ðJÖI”¨Yø3ÊÕÞoôK”7m~AI‰’ËþŠ’qF‰F…¿¤ÜèW)‰ŸÑíæ­EÉj yŽq&º+ÐD•(k¼gŠ²¶º¼Ó*Ý8[uyO$Æù¦ˆçŠ1Îyq㌑Ç& cŒ7FŽ\ÄúMÚ°rcÓDŠÇµJwÆ#âÅÈ1»3†bvQ1û¬'çÄ’\oúm®­hN%æú+š¹,!F”¼‹Ny>®¿ ™×’¿q1þžYúã½–üÍ «øIôÇhNL%d;¥Œ­Œ9/el¥äËeŒ³”´”<·ŒÖ£]„æzôçªBOJ‰r¥dg½ßéÅìÅzìÍ\õ¢ÿ>µJ_ÆÙçc®¡™«#Xqž·œèg~âÌO9±*ÎüÄC99CüDï7š˜?)ðâÌOœRÎÜÆÉæãäÝå|%ãgxuh¾nq²Ì -vp?ÖC빂}Üïåï7úeʇ‚6dǬïŠ3ЯQ>Åõ$ú×”ßâúúuÊïxuèßSò¼Ïú{\dýÞä_ÅÍz­xý'Jòö¥­2u=€ì«’1Wñ\•ó¸È^«ÖS’MV’ÃVñ¬$ç«$+¬âW. Ú°f+™—jrÞAŒ§Ò»Ÿìfc¨æ4Qý\« !ÌøžN%þ6šL'у«:ƒïYt/tƒçã*C³qêÿáôǼ$¡É_ª™—DM¶’ «alCYÏ5Œ­†Ìn(ã¬!ǪiEóíHŒE7¢w¡9U&8%V×kÈ ’ïŠ £ÿd -Í|$Y—Iò¦$sdÏ&ù&Ù³É÷ER¼ëÔ(Ê~ˆ¦ïßîT,ÐÌaª;šì&ÅÉ!ÅxR¼ósž"†Ô–Q2G©—Ð,¼Zž§–<¥–ÿªeܵo Ÿ£dÕþ£UÒÌ[š3dšw”&f¤Yéyhöiú›\œcÒÜ—~Z¤ŽyNó®ëø:üuÌOÝ\+Ñ<{Ý‹\ôŸaìæ4ÃzÎð¿öWfšx˜!—ËìE3—âO†5™!ÇÎðÉ°O3?©ïÄ5½UêÙGõÄŸzÖI=ë¤þû\ÐRò õ?FÿS$ËûÎ2·YöD–ü&;&Ðĺ,û.ËþÈò¾³Ìs–¼&ËزdY2š,1'ËþÍò¿ ]¸XÈ ä¹ 1®4ó×ÀX8©4𮈧Iô”¬ïFÖ@#Ï×È>l|Í—¡‘÷ÝȳäXk9örŽÓaŽõ›c>sœírœrÌgŽ³]Žu”û®HSO4ó×Ä;kÂßD|kâ¼ÔôšwÑôs®? ‰mÍŒ©™øÐ<+Ð;ÑÄ­fÞG3q¯y6%믙½ÜÌÚoáüÕÒ¿UZˆE-ì‘Ö ß™¾C-ËѼ_aÎ¥³|Y,òEÀ™3g‡Å -LEÅÅ%gÎœuóâR¡ª"e±²{PëÅ©U=•¥’]Ç„é¸ý¢àÌ™³Ãb^Ü*?"•«§Ÿ²¿r€r ²RY¥¬VR—‹9sæ¬#˜—G%ÝIùå‰KÎœ9û*š—q$%‘>m^ŒªS•U6(÷°œ9sæìÍ‹^9UÍâÎ|Îœ9ëæùZTTŽR­­£«"}Ú¼µFÕuʵÊëû¸œ9sæìÐÌ‹^7¨Z/îÌçÌ™³Ž`Þ™ïFU•›”›•[”[•Û”Û•·~^ƒsæÌ™³Ï4/ŸúûÕXEÑ„gvgé(B€Š¡· H¤ H‘^B/B(¡·Ð[è„.]@ºtTTTˆR¤‰ HQ@¤ªTýçîÇåùˆÌ[Þû³Ã7ûíÜÞòͲoç˜í!6þþ£ókËøž™g²E¦_ _d -¡%´'¡_dKàï{ëIo¼‹V€oé]¾¢7¶æªWF>kÁ¿òY®|Ö[}´ÕoÿÊs3øW>[Á•Ïð•¼\÷Á.ð-½{ÁWôÆÖŒssü%“CàÊä°Õ_ÉÌu¦Žoé=¾¢7¶fœœÓà/™¸ªÀYð¯|Î+Ÿ‹fä²é¯€¯äèúµ\ßÒ{ |Eolíþºþ•Ï]ƒ ížøæ:UžqF LdõIŒ˜ÌôÉÁW²Œ­Ùÿv˜ü+ŸTÁð•¬þí,¦ŸÊƒÀ·ôf_Ñ[ãóÙÀ_2É þ’IpUüV_|%3ׯ£ ø–Þ"à+zckÆÉ)þ’IIð—LÊË™¾<øIVàúnªþ•Oeƒ`5ð•¬þí;°º¬%kÈ:²%RÁ²¡¬/˦”DŒ£ÄlYO6ÄÙZ¶’må`)Ã)…Ø.vŠ}bŸ WÙÅIqNœ£t »É.²‡Œ Ôâ®X.þ¤ Rˆ)bµX*¦p<ó(È`2[€ ”éd e£`™‡r©\2Ÿ!"Å`1ŒòP#N¹ ¦²ÉÚ²¦¬+C)±Ê*ɲ‰lFIE”-æðÓPÙLD‹hÙF†ÉvBd{J)vˆ]b¿Ø/Û«*§8%΋ó”žÒÊì){QqO¬QF‰RŠ©bX&¦r<3e0æQFƒÉ”lie™^f ì”Uæ¥Ü*·Ì/FŠ¡bˆNy)§§ÜS-U+¦Úªöªƒê¨ºP] -¥´•êQ}jHÛ˜m£–F­¨5u¥îÔ“R7êAtˆÙ!Õ]õPªê¯¨A*’†ÐPN‘4ŒFКDi²®F¨Q*JWÔ$5…fÓšKËh­¢Ó´œVÒj:Ãì ] K*¿ -QT!UDUÅT ªJÕ©&ES5ªAµh#]1fñØ`M¨5¥ætnR;jOi7…SêD{è¶Ým0UJ•VeUyUQURUT5…TRõ¡~4€úRH£)ŠÆÐXUSÕRuT¨j¨©&ª¹JNåU*šJÓi&M£4K¥S4ŸÒb:F h-¡ã*ÈŒ3À`×/ÐøÅMddH¼ ò(À”:ÓWܸ I Xná3¦%‚ô2Bfx‚!+d‡rAnÈy!„g€ç <E (ƒ ¸õ¦ËJÀ‹PJAi(eá%(塼 ¡T†*<㨠-Õ :Ô€šP jCïÇfuã<3¦ÕcÔ‡±Îiqõ‹_KÌ'4)$ƒäRÂSð4äƒTP‚àP|«±Õ7g´`¼êxÖ’ÑÊdaV¤5´±X[F;F¸c~{è`±ŽVßÉ~ÖÙfM ©Ù§†Â†ûL ²@  5}3Ów1}WF7è= '³k^öj½­¾Õ÷eô³x{Ö€‡ÞͦÄ C †2f=nÏaõ#­~côCÿ] –`þac¬>ÀôùâÍ(kó´Žý8ï6g‚ã«þñÝYÊÓ÷'ß|Àµš :Ãu?‚ã†LÅw£ÑRóMÀ½ñ7Wö@®íA\Ý3q}ÏbUøln5>çbVù‚f/lWzàZïªï¥-%žkü?+|]®Á¡f 6êlcó®lÆws ¾—[ò]fÞÀmùæ 7oÛŽ|Ãvæ›2a_<ï‹qjºš¾›ößÆ“fÝmfÔÖ®©½¹ŠöåêÙŸëå@®}÷+ßÿ“ ón³ŽèÈXÖñ7åà£í›>Êôc=̧]±w̽J¹l‚é'2&;¢S“¯iWÿ6ÕfÓ`:Ì€™0 ^‡Ù0‡#saÌç~,†%Ö¬7  µ+_{Óct©v]ºm™ƒ/‡ìWÂ*XmŽ×x˜ÿ–vÅÞ±·cŒÞ±úµð.û÷ëÜæ¿ï6þ@{ñcÚì#X 6Â&ø6säØŸr¿ >ƒínïmÕ®<~mGŒÑNízžÛåàŸ»=ÛÍØëïcìÑ®Ø;¶ßÁ¿p{v€qÐ1þŠñ%ãvÕño_;øa›}c³#Úê±£6;ÇÙkòïL‚qÊ1÷4ã$ã{íªãßÎØì8 ?ÂOð3œƒóð G.Â%¸Ìýø~‹ãzàªöœþ ûÝÁ¯Ùìºv]ºí†ƒß´Ù-ÓßfÜ1Ù=ø“ý]ÆÚ{ÇþºÏ]L&L/‰bÎGו‘´çö†‰=F“˜>)#…#ú#9#eœVN¦;·ÇÚ—§m– -ŸÁÔ˜0-ÒazÌ€A˜‘ù³˜³9ÞÉÌÈò€õ18Æ8“î q_²»s¸sêV¨Ç0—ÍrcÌkñ|˜ßb!ºê1,à1úÔ­L¯a!›=…±ÅbÌ_ÀâV´ãEÝ*5ìKI/…¥-VÆôe/9ž—Ó­Ö‹ûRÞfðe¬ˆ•°2VÁW°*VÃêXkb-¬u°®n¥^Þ—z£¡6«ïˆ6ЭÖ{† ¼6¶XÓ7õ0¿™nÅÞ1lî1ÚÂô¯2Z9¢­-aºU{a_Úج-¶Ãpl°#vÂÎé‚Ý°;÷Ø {[³º2z0zêVÏûÒÇc´¯n]º û9xÀ~ ÂÁæxˆ‡ù‘º{i_†Æ ³úá8‚ýHÆhÇÓ(Æ(·÷ÇèÎ žöe¬ÍÆáxœ€qNæÑkŒ)8§q?gâ,·÷¦ëVÏûòzŒÑì£9ºÕé3œëào¸=›ÇXà/dÌ×­ØKû²ÈÁ»=[ÂXê/g¼ÉX¦[µöe…ƒ¯´Ù*›­Ö­P᛽…o³ÇäkMÿ.ã}ÇÜï1ÖéVí…}ùÐfáz܀Ѹ7áǸ™#[ðSÜÊý6ÜŽ;â¸Þ'ø™îœþ“}Ùéà»lö¹n]º w;ø›í5ý>Æ&û²?Àد[±—ö僅_[ì°é¿as›4Î+ÑÛcíËqÑoñ;ö'ß;¢g§§ã´òIݹ=Ö¾ü`³³ø#þ„?ã9<Ï£_ð^ÂËx…ùïxo8Þù•ñÛÖ»ˆ×bŒ¯êÎð÷å¦Ûø–Ûø¶n…z ÿ°Ù¼‹÷þÇ~™ÇWQ]qü¼“¼—„$/ K !@ HHòØ÷}ß÷}ßwÅ"XµS*HÑ"(*n(`)µTPRª­¶ZKkÕöóé~>öSm­ôÌy7Çy0Ó—ä݉Ÿ9'óýwæÞwÏÜÌ»wFÅßø®"˜j¯P#Úfã0^E~Ýêq H”€‰˜„50™âLÅ gÓèH×]¥†yÉ°Ä5±–Šj3ëБi9_Wwµ1œ—zeé®ÅMŽÙÕÇÝÕØVØ@˨ -q#f®î™pƒccKÜDw5îq̳ÄM™Ít×äÇ|KÜ\w5îqla‰ tWãÇB‰Zbk1–è®Ê±Ú¶ÂÖ1©Dm±îëŽZm{죑:JÔ ;ë¾î¨ÕvÁ®Ø-&#u—¨ödí…½‰}tÏmµ}±_ŒFê/Ѩûº£V;Çh¤!º¯µœõÑ8Ã$Ž#XGâ(âhÝ3àPï˜3V¢q8^÷UG­vNÄI1i²DSp*ë4œ®ûú#*œe‰gàLœ“QçH4ç鞃¨ÕÎÇ1i¡D‹p±î붭p™%^‚Kñ¦˜Œz³D·àrÖ[ñ6â -Ýó!u­´Ä·ã÷b4ê­ÂÕºç jµwâ÷c4Ò]º¯µ\ÕÞ÷Äh¤HdàY×àˆ÷êž©ë>K¼×ÅhÔõý7èžÛ -b‰ïÇpcLF}P¢M¸Y÷ØVø–Q¶Ém¡ãÝó¡×ñQKü˜îjÜã¸U¢Ç%z‚Ž'uW¦×ñ)›ÜÓtlÓ]™^ÇgòÏê®L¯ãv‰v(݉Ϫ»2½Ž»,ñÏtWãÇÝùçuW¦×qÏu™½¸øóü¾t_Qå8þÂ!¿_wezéQwez8äê®L¯ãKù—uW¦×ñCþÝ•éu§Ü̾ «5e”\ÅZ’iRÖ–^MËÄ:Ò>¿LÌ”ö-bʺ2n¡b=ÉEa–´,QÌ–L«r³¾ôm…9Ò²]²ŒÒ!‚ %ßÉ‘¤M—(Ì•–ݪœe¬æ}­â^ebž´ïS6•^ý*™Íä›(æKf#›K›!QØBZ‹`äG”›…ÒwT²¥Œ2F±H2ãÊÁbé5¡L,‘ö“ÊÁôšS¶’q§)¶–ÌŒ2±´ŸÁ¶’Ÿsƒl'ß0/ -ÛKËæú¤âEì(ù%Š$³ :K|³bÉ,‡®ßf®"*¾½Lì.íWÚ°‡œ]åÈžÒæÎ2±—´¿Ë†½åì=æú¤b# -ûJË5Žì'mî-ûK¯u6 g×Gá@i¹¡$½°á`9»Qqˆd6•ƒC¥×CQ8LZn‰àpÉ?ª8B2[a¤ÄODp”äŸR-™m溨b»¿±rv‡¹ªø9/ñ.N³»a¢Ä{ÌuNÅû`²Ä/˜ëŠ÷ÃT‰_Tœ&™ƒ0]â—#8Cò¯(ΔÌs5RñQΖ³ÇÍUGÅ'`®Ä'm8OΞ‚ùŸ¡µ§4> %>g®@*¾‹%¾h®C*¾K%¾L«QiüN${^ýfíkW¯^!}Ä49ÿ"}À7‘t/éLâè-ÔwÂ?}O|Ò›H HW“¶'}—t‹‰´’þMJ+T࿤t$L'ýé1’èH¬Kz€t•)Ùô¢øi.é'פ'ýt»i´ÂÑ€Œmô’·ô Ò× ¨I÷nFRºK3P›îàZóIÿIzÆ€ºtÏd¶ ÝOºž”þ;™› ¨G}7@ÖXÒ{H§Òo7kég¤oЀ¾7§˜”N¤‡H·Ðúç|IJ+zƒ1¤IИv‹ÜlRZÕsG“Û„ÆÍû’ôšÒï"¯»ù‡ší0 9½õ5ûš”þù£H_%Ýc@!Ò‹ÕWHwQ}!ý" Æ‘Òõ"}œô()ý Ž“n"}ƒt3éi -Nž¥Ïô&V"¥û§péyÒÐ’æ¹e?Ò[I(}šô4éѳYÑTRZ›ŠN’^(Î2 ˜ÖÌbƒt7éǤ_‘~JJÿ×’”Ðffl®«ä8@(É€=ᇑ&’.'M ]A$½ƒ”ÞPC«Ié2´†”îƒÐ¥ToˆÞ”B÷«ÏªÏ›IiþC+¥û5DÇÔ÷=IãMº“”ê -í¢<Ígˆæ5D÷ohi€ô%UÇ1¥‡ISH«Ï'ÕçS¤5HÏ(}‹®—æ%tŽtéRÚ‘CIé~]"½…ô}Òóáßø!âÁHš Hâ| p£%Ó‘¢»Ï<ó¬Ò-µB½ƒFkYu°È*2,9TGG<ÔŽèƒàN‹SÏôC\»«˜ÞYÜ»«˜fî,» =óÌ37Y°B½Ó ‘¶‚Ò58N­sæJG¯ÐZÚúÔ -^»Ýi~‰Ð œÖéÒw·™u÷Hvlå™gžU7K©PïTZç{’Ž°9WžÃ#mÚT‡úKŸýÇYÎU‡·1„)`aëõøú趀ÒÒýz:\¿'ªÜÝï[žyæÙwËÂûxê öÒ×Ëg¬Œø6s­ŽÜ9Ýc‘o~nÝC<óؚ̳ùd¶ -"W1ÓÂÏmî´‡Ÿ1Ýi¥«nxpXŸ‰ÃsïögâowΠÞR<ó̳J´4fú ö΀š°±Òj©zóÁv¯¾a‹»æ™Øæ‡`Öü<|»o˜Ù€æº¢[‚î<ó̳*±DØ vï îµÈ•ÞÁú~ -—?‡ƒz÷Ì3ϾK–Z¡ÞAzŽ?RI•T­ù">!œû]$ÞŽèƒàN+Ýñ»‹.õ»ŠiᎻŠiæÎR±»Ð3Ï'¾yr:¬] ?B”âèFÇ@,¶úÍæòû±3軯_>ßr„]áæÉì» ì7O6ç¹ç<Ù|!wzÀï‚PÌw_4¾‹¼_0”Óþ°÷Ûp„QC-iŒÙ+i¼ÌÀõ[Ηac‰à/oM®6Î?š­‡À9÷—$,ýï$ä 热=.‘“]þ²¾Î=t%øÑúÚx|î†]2Hq0®?z7¸ üh¶5ýߪáVð—±fü^Ü!w‚½üœwž]pw¬ýnð£µ÷¨åþ#¾y+~«JÄ}’¾sQP©ßê~I\4ç÷ãAYýQæŸrý•õ¨lœù¤Ì§d>-󣟳’Îß2ÊC½$éÊ-£\Õ;&t…$“üµQ°Ì!2‡Ê&s¸Ì2GÂ]ñ~ÈAÕ`=|ÃkH(ht‡4ƒ¸5½.ãŸi½A[á†`Ü€ž´#è=ÚIÐ;ð)ô‚]ܱ° ÓŒãδ‹v‹0>ɧé3Z€Eh\Ä¢4Ç`}AßÐ -ú–¾¢ÿÀçðø'–À’”—á3Š™œCÿ>Ëç±ý@³pýb%¬Šãè0§£t‚NÑZˆ5¡7ú8‰.Ðeº_ÂØ °6¤— 6¦á4‡û‰hÞÆ¿ð%„M9[âdc_ákØïáh8ˆ9p…c¹(¶Ç~Ø–“9Sáø -¾Æûðì9øv¦‘Ø•sq.Å"•÷ð \ž+rWÁG¸WãZ\‡ëñP8†Ýy$½Ê `e±'7ÄÞp˜sSè}¡?<†Œ­†ð8 Á`nC…ÆÇùm¦-´ ®c(†ËÙ´#é}z›>¤wá)xr7ŒÂ,ƒ0ÖbȇœE©«éúÎèÜód’BåÞž(sê4iZ,}:CÔû䆷•‚o3>þ_R4Ĩ2TÞ Š°—·Öpþn­‘#DA¬G-Næ°ß|e)éOAw|t÷'riÅCa ßH4ëE!I•É’Ç'Òn~*fy‹sB“¿è`yBæ"Tæ0y6FÈ2RÎ#JÁ±r>·ïœGœùD[—ÂÆô&h¬RAßK’Q&0>Å|‹OW\¬Àó/ž¯]ÂËø Å¥ŒVI¯ÇÏÌ×.íe|™|í²^Æ—S\Áh•÷zþóµ+yŸ•¯]ÙËø*Š«­ª^Ï¿z¾v /ãkæk×ò2¾¶âºF«Ž×ó¯—¯]ßËøZ64´oäQi¬¸‰M|S ­4·¿……ÖZ©²µ…OÊ=Šïµ¿­…ÖÚ«²ƒ…ÏŸ,´?Ã}¶Ï¿GåÅmâ;YhÂC¶ã?l¡u†.¶ñ]=*Ý?bÿ¨…ÖzØŽßÓRíeßÛ£’£¸¯‹¥¯~}÷‡¶ã?f¡=OØÆ?i©>e?У2XñË 7^C-úÃU9ÂÂg¤…6 -F«òi Ÿ1–O7ÖöùÇyT&(žèbïÆk’Eß“aŠíøS-´i0Ý6~†¥:Ó6~–GeŽâ¹.–Ùn¼æYôý °èûCøÈvü¿Yh‡-c 4tsrâPÅŠ£Ç*ŽW\Dq’âTÅÅ—T\FqÅ•WW\[q}Ť»J«ª¤ìBgSeÐÌzLNhÊ'XgS …³![N„(Ÿ0M5 -ÂÍz¬ôu"\ùDêlªñà0ëEdœå­³©&AŒYO•½:£| -élªÅ άg¯ qʳ°Î¦O¦Á ¦¥l.¢Ì **QgÓ³B.jÚ³ NR†¢**YgÓ§ªÁ)¦¥†Á©Ê¢üÓt6}jœnZêÉ'v"]yW\B¯›>Ù—0- Î0-Í ¤ªf¨ØRŠ3õºéÓ2gšö6y¸´io eTµ´ê§¬ârzÝôé`p¹_Ù¯ø(Š/< HoR¥„½éM¤Iï½÷&E@iÒDE1€" -ö†ˆŠ¨ (ˆ€ÒâÛo×åvöîÇ…ßݾ3ÿÿ½ßûÞ›/³ó¾™ÛÌÌYLKYL{}éS +i,º‹ßbMåïðèJlcøa COÂ߆3ÜbÍ-Îõð·Yìvü8±ùÛpþZœ¶²Ë¿DŒ“ÎBûñ·bi,Ÿ…Ö±è'-N‹ûg±¯ÚÍð¸wö$ {¢Åhq^ØS¡¼DŽ÷ÏâþYìÊ{šÅ›eõÀý³ç3&Åf?‡ðD÷fÏ"×ãÏÈÑÙsȱ ôJ ô ô[ 죉]°#°ÈqoÇ`û`?AŽuópÖ&ŽÃ7@Ž¹=¨’Ä xh æö è·<¨ŒÖÍC¿Ÿ@·åA]$ð¿'Þ@ŒŽ<ñ~&º&ñ6rt܉ƒHàKàþ&~†‡ûåÝÃz{øß=ô¾Þ3°AÈñ¿{è^½ÀðžÊ*‰5ñÑáøÕc­|¬‰Þů…êÆÇšøX¿r¨½ƒNÃÇóà?wцŽÀ¿×Çý÷qûX'ÿw° °3àÝð,èMƒîÈÑcè2¬W€Þ;À©¼Ãsì@Žõ vÃÆÁv!Ç»àYp{‘c †1 ïo€ï°¾îS€÷7ÀY`}ܧàr¬Mðst@ð:rœŠžçfðrœeî?çý%rœ@Áé0†½ƒ'F€½(Àš¿Aþ=øM4/žïà)xœêÁ§°b—ãtp_ƒMȱüM8ƒÍÈŸƒÇ3àþ¥lƤ°/¸w)ôÊ©$òšÈñ §Ð¯¤ÒÈ/GŽû” ¯Š¼<Ö"…û—B–½HaÍRØÃR“c=RX³ÞßzÁ¾;…w#õ1ìò/°ãÙNcŸNCQ¦q/ÒØ;ÓØ“Ò‘tûyô‰"«‘§‘ï*RΧ¯ÿÿú±ÄÊ.«æ|uçk˜¯ÎÿˆçÍý/µ5ªc¾:ÿΛÿ²_àQ$M´º3»»»œàÁÝÝ=Xp îîîîp‡z‡Þ¡wèz‡ž»k§SÛßnf³3Ð=ù¿?¶é÷ª«ÞÖÛÚðÍÌúÍ,üÙgÉ‚ùlÈÙ‘s€ÿL›Oyó"G>ñùËŒüé g)$£@ðŸùŠ‚ÿÌŸ„p–R˜/-3edTkd¦¢ŒB°VEfªÊ¨:ÖjÊL¨Œjc­.r=äúà?ßn<5Fn‚Ì»ùÍŒüY gi)#Ïç­ÿ×WÔ|ü™Õofé®Y:˨«ŒºË¨§Œzãûû"÷CÿùVúãiò`dþ+Îof®Y†Ëh$øÏ|£Áf®Y&`~òdä)à?ÓNÅÓ ä™È³Àfœ ®YæÉhøÏ|‹ÀfY +®YV`~•Ì¬–ÑZ¬­—™ 2Ú„µ-2³UFÛ±¶SfvÉhÖö!ïG>þóíÄÓ!äÃÈGÀf< +®YŽËè$øÏ|§Áf9®Yγά ëƺ³Þ¬ëÇÂŒ3Æ9ãâYã¼qñ çsáüŒGî•ÆKÈŠ°b,ˆ•bÁ¬ +k3N§'ÓˆÇ8Ÿà‘{åß—Œ+Æ5ÄËÆUã:â%ÎWxä^¹f\gX%ª°ª¬ eµXV—5`XcÖ”5c-YkÖ†µcí{Æãâ}ã¡ññçš™ßC³ò;göXv‹œ0Λ“ߧsË+›SËóêX"¯Úù»°¼>ë\îWzçWrq~)ÉïÁŽº•6eÊ8èVÖ”)ç [yUpÐŵ* +¬ä‘ qÌ­²ÏjÍnUeTÍKµºf·2ª©¹³·Š\ jC¨  n4E=n 6ÂS3¾CYmªy¶æÈ- ¥æÎÞV+ŸÕÖšÝÚxɵul¶vÛ;Ößsu@î+nL™Î»8âÖUFÝba¶î§»õô8õæ»—ƒn}L™¾ºõ³­ ÓàÖ_à a0 ‡ÎÏC`¨I9†)»²­­a¶1ÈcaDÀx˜ ¡gÌk¢Œ&!O8ŤœªÁmòt˜a©©ì6Ë”™­a†˜ÖSf®ƒnóL™ùº-¸Ð†r‘·Å¶•K4¸-E^Ëa¬„UzƼV{œÖ8êE`­Çi=ßëtÛ`ÊltÐm“×ìf‡Ü¶Èh+ß;0Þæ¦Ø®Ñm§Çi—C3¹Ön¯Ù=¹íõšÝçÛ~ÛÊÜ"¿oÃ!8 +ïÀaq>bRÓàvܶò„·“2:e¡<­Áí]ä÷¢åÏhèm^g‘ÏÁyŒ.DS\Ôèö¾måÜ.ÙV^Öàvù*\ƒëð!|¤¡gÌëÆ+ho*»Ýx‡ïÛ|?äû.| ŸÀ=¸oÒ>Pv{„ü>…Ïà «¿kvûCFz©þ¥Ùíoý£¹³·õoGþ#”0‡x*ˆ¡ÏÄO‰øŽOÈjB½³‘ÄÈIHR½½º%óYM®Ù-…—\JÇfK%0µSý£¹¥AN+néL™ô|g qË$£Ì±0[e·l§ì»åð8åâ;§ƒn¹M™<ºåµ­Ì§Á-¿ÀB¤)H +“ RœòsRÔ¤,AŠ)»•´­,¥a¶`äÒ¤ )KÊ‘òê=}¸UQEäJCLÊÊܪ W%Õ,µÕ•Ýj˜25ÕgˆÑ-Ô”©å [mS¦ŽƒnuÖ³¡¬¯Á­meC n“&¤)iFš«÷ôáÖÂãÔÒI/Þ¿•Ç© ß­tkkÊ´sЭ½×l‡Ü:ʨß]1îì¦è¢Ñ­›Ç©»33Éþ=¼f{:äÖËk¶·Cn}l+ûjpë‡Fú“d0 'ÅyI9DƒÛPÛÊa܆Ëh„…r¤·QÈ££åǨ÷öâ6y‰Àh|4Ånm+'ip›l[9EƒÛTäid:™Af’Yê=}¸ÍFžCæ*õ™GæÛP-0e’E¯á¶˜,á¸ÔBµ y9Y¡4ÛJ²Ê†j5ò²VÅMôXGÖ[(6 o$›”Ý6“-Š­ªØgÙnCµy'Ù¥ÇקÛnM}ö½6Tû÷“±0ÛAä·ÈÛʽ‘Ê#š>õQòÇcªãÈ'ÈIeÇSä´…â]M³½GÎØPE>GÎ+¹] m¨Þ7e> —^Ãí2¹bCuù¹®4Û‡ä#ªÈ7É-7Ñ㶥âò]ò±²Û'–Š{È÷ÉU7Ÿç¡¦>ÈcªO‘?#Oba¶§ÈÏÈs¥>/ÈKªÏM™/È—¯å÷• Í×Èßo•fûŽ|oCõòä'7ÑãgKÅ/È¿’ß”Ý~'X(þTõÀ>‘¿9þc¡ú7Š)PeGJi€…ÂÐ3e4Ž U\=nØ-žE=>rš£D4ñkø$¡Ii2šÜB•Bël)-ê©SÓ4J>ii:ªôÈhF%·L4³ Uä¬4›Š›è‘æ°PäDÎEs+»å¡y-ùT=<ºå·¨@.H )ù¦´ˆ¥ª(r1¤sÊÜŠkêS‚–´¡*…LKÇÂle´v+kQ/‡\žVPò©H+ÑZÙBUEëlU-êÕ«ÓÊ^5i¨…¢rmZGÙ­.­g¡¨¯êáÑ­E½!r#ÚXɧ mJ›Yªš#· -•ÜZÑÖ6TmL™¶´Çö¯èÖv´¡ê„Ü™vQš­+ífCÕ¹í©â&zô²TôFîCû*»õ³T„!÷§”ÝZ*!¦áªn6>ÏM}†Òa6TÑGБ±0Û(äÑtŒRŸ±tœ U„)3žNà8ñÝ&ÑÉ6TS§ÒiJ³M§3l¨f"Ï¢³UÜD9–Š¹Èóè|e·–Š…È‹èbe·%–Š¥ªÝ–YÔ—#¯ +•|VÑÕt ]k¡Z§u¶õõ Èé&e¯Ít‹…b+ò6º]ÙmÝi¡Ø¥êáÑm·E}ò^ºOÉg?=@úÔà+$""1¡À$S L+0ƒÀ<ó ,°²Àjk ¬/°‘Àv; +ì&0L`¸ÀaG Œ8QàT3.¸Tà›n¸[ še/ !zC G`ÜÿØ/ਪ+ŽØlÀM$€nBX»Ùl6Ù$Š ‚¨ˆEP¿@TùP+FT@üBüF@ü[§¶¶vê´ÕiëHk«µ¶µÖÚ±Ú±ãØÖ¶ÖþÞyoÏñed¦ƒDçž™÷»ÿ=÷¾»÷Ýwïyç*{*ñÛXŸ‰š.ì”…ÖæéaºXzšîMM^—Œ™§¿©Œé¿û´Ú¸ô2]¹_,Ñæ½´ŸÞÊ>ÊRe™ï·>ìcžZ)5ðÆè¡Ò×tJú©ì«½õ÷iµ r¨é¬¦òPm÷iµ9)7Ý&*˵M¥r€²J9PY­¬QÖ*)+þ½Öçp`zd§¬²6£C8ÐjÇv`µùÇKé㘿¼ž(ƒLŸp°yNfvóú”N9ÄÚœ&u*‡è3õiµ§Ë0ÓgIRå0m“RÖ+Ó¾ÇZÎ’zÓçJÚôÞa^Ï“ŒÊ½·Q™U6)›•9e‹²Õoi=\Ì*Èë›Ì³8`³y. aÎjWH‹é+¤ÕôÊNÙfm®–ÃU¶éPW©¡©Ü×?N›£ýŒW«œ <Î÷[Ÿ<Ö<ËÓ;Ùyý¸ozœ òxím¢òD_[›§äDÓOË$ÓÏx» +›¤í¿æÓjŸ•É¦Ÿc·y6YÛLQNUž¢¯÷ÊtÓ¯È Ó¯<Ý<¯Ë¦Û)Ï´6o3<;SŸñlŸVûG™iúb†g3µÍ9ÊÙÊs}µ|Wf›~Ÿè’×Èy¦?”óUž§÷ÎQ^ œ«œ§¼Py‘òb¿¥õðw¹ÀôÇçšç?ç™çÓ^˜¯íÖ].2%nåuÏN9ßڅ𭜯c^ \¨\¤\ìû­‡’.´ÚÒ.²Ú~!\lµ‡\bžŠ€KÕ±DGr©OkSp™yjB¸\+—é½+”—ùÚîÂˬ¶.àåæI†ð +­¼\{þºòJåJßc÷¦Cx¥Õ6vàJó7wàUæo ¨"WiqµOksDÀUæÂk´r•Þ{­ò:_Û]£BxÕÝ«Í?.„k´rµö¿Vy½¯í® !¼ÞjO¸Î<“ä•ë´Ÿ•7)oVÞ¢\¯¼U¹Áoi=Læû–×SCx³ÕN á-V;#„ë­öÌÞjµ3eƒéÙr£µ9?àmêبO´É§µ™p³y.’ÛUnÖ–w(ïTÞ¥¼[y_kw]â}Ͻ(„wYíÒÞmµËÉòúòNy¯µ¹2„[´ò^á}Ê­ÊmÊí¾ßzháV«½¦·™un7ÿõx¿ùo ¸C÷ëðimn ø y6„ð!­|Pï}XùˆòQåNßo=l +á#V{G>jþ»;p§ù·tà.óo“ÇTîÒ\ù„r·ròI¿ÖîÚ!O˜~(„»­öÑî±ÚÇäIÓ»;çèOÿëíWÛ¥»wrù ×khï ò;‘§±‚…”ÔE8ð­‰Pá¼RÀ$ÒàýFù#Dàîo ‰´N ‘ÃÑ<\d¸W‡f½DÈ€£«Ú¥ðEJÖI”¨Yø3Ê•ÞoôË”kƒ6¿ $‚DÉå EÉ8£D£Â_Rn +ôk”ÄÏèæ@óÖ¢dµ…®24k §Žñ9œþ˜—Ä 4ùK-ó’H ÉVäcuŒm(빎±Õ‘Ù eœuäXuíh¾‰1èfôV4§Ê'¡Äê:"pyAò=‘aôŸL¡™$ë2IÞ”d’ìÙ$_Â${6ùHŠwIYÀïÐôâÛŠš9LõB“ݤ89¤OŠwžbÎSÄú2Jæ(õ2š…WÏóÔ“§Ôó_õŒ»þMôó”ì£ú´KšyKs†LóŽÒÄŒ4k#= Í>M“‹sLšûÒψ40ÏiÞuÿÑ€¿ùi¸kšgox‰‹þ3Œ=ÃœfXÏþ7ÃþÊŒD3är™hæ2CüÉ°&3äؾ"öiæ§"ݸ¦´K#û¨‘øÓÈ:id4~Ÿk/ú#Jž¡ñÇèŠdyßYæ6˞ȒßdGšX—eßeÙYÞw–yÎ’×d[–Œ#KF“%ædÙ¿Yþ·© ¹‰<·)ÆU‚fþšk'•&Þuñ´9‰þ’õÝÌhæùšÙ‡Ío¡ù24ó¾›y–k-Ç^Îq:̱~sÌgŽ³]Ž³@ŽùÌq¶Ë±ŽrßiéƒfþZxg-ø[ˆo-œ—Z^Dó.Z~Îõ4±­•1µZ§z š¸ÕÊûh%îµN§dýµ²—[Yûmœ¿Ú´K±¨=ÒÆúoã;ÓÆw¨m)š÷+̹t—/‹Eöœ9sv@¬ÀTT\\ræÌYW0/.ª*R+{µ^œ*QÕGY*ùصoL(®kу=gÎœóâV™ø©\=•ÊÊ*å@eµ²FY«¤,.sæÌYW0/Jº›òË—œ9söU4/ãHJ>"}Ö¼Õ *«lR6èa9sæÌÙ~š½rªZÅùœ9sÖÌ;󵩡©uÇÿدÀ*Š&<³;KG‘B1ô.H¤ H‘^B/Bh¡‡Þ $”Ð¥ H—ŽŠŠ +AŠ4) +¢‚T•* ÿܽó¸<1€yË{vøf¿Û[¾Yöíbsáïÿ7:¿¶Œï™y&[dúÅðE–ÐZB{šñE¶þ¾·žô&Ì»hø–Þ5à+zck®zeä³ü+ŸuàÊg½ÕG[ý&ð¯<7ƒå³\ùì_ÉËuìßÒ»|EolÍ87À_29®L[ýð•Ì\gêø–Þà+zckÆÉ9 þ’‰« +œÿÊç¸ò¹hF.›þ +øJŽ®_ËUð-½×ÀWôÆÖ[à_ùÜ5Úî‰o®Så¹'adÁÀDVŸÄx€ÉLŸ|%ËØšýo‡)À¿òIeL ¾’Õ¿ÅtàS™` ø–Þ¬à+zck|þ1;øK&¹À_2É ® +RÀê ¯dæúußÒ[ |EolÍ89%Á_2) þ’I9ƒ`ÓW?É +\ßM•À¿ò©j¬¾’Õ¿}Ö”ud-YO6 D*H6– eSÙœ’ˆ1b”˜-ÈæbƒØ ÛÊ6²½*ÃeGJ!¶‹bŸØ';ªâ¤8'ÎQzJ+{Èn²§ìM©Å]±\üI¤SÄj±TLáxf +0æQ Ád +¶´2@¦—”‚d^Ê­rËü"R„‹¡b奜FœrLe—uemY_Sb•M6‘d3Ù‚’Š(1ZÌá§Á²…ˆѲ ‘¨ ’¡”Rì»Ä~±_†ªœ*—8%΋ó”ÒÉ0Ù]ö’}(¸'Vˆ¿(“D)ÅT±F,S9ž…2ó(“ÁdJ¶t2£Ì 3RÊ&óQ•G#Åp1LDP>ÊeÄ)ÁTkÕF…¨ö*TuRU7ªOÁÔˆ¶RjHi³mÔšB¨ µ¥îF½è õ žÔ›1;¤ÂTOÕ[õSÕ 5D…Ó0NN#(’&Ð$šH“U„ŠT£T”¯&¨Ij +ͦ94—–Ñ +ZE§i9­¤Õt†Ùº@—TUPRET1U\•P¥¨:Õ¤ÚM5¨Õ¡tŘÅcƒ5£ÔœZÒuºI(”:ÓnêH¨ í¡Ûft·ÁTUV•WUeUEUS5RiEÔÐ êOi0¦(CcUmUGÕSÁª±j¢š©–*9UT©h*M§™4fÐ,•^Ð|ZH‹é- E´„Ž«@3zÌ`w +¹~Æ/n"#3@âEáG¦Ô˜¾àÆ]HAr Ÿi4-d€Œ ²À³Ù ä„\ò@^ÈyF!xŠÀóP ŠC xJZoº¬¼¥¡ ”…rP^‚ +P*ÁËPª@U¨Æ3^êPjB-¨ u .Ô‹ñ~lV?Î3cZFChëœÆÐäWO°øµÄ|B“B2H) %<OC~H…!žõÀ·šZ}KF+Æ«Žg­mLbEÚB;‹µgt`ttÌ…Nëlõ]ìg]mÖ š›}j( +i¸Ï Ù!+˜±`Ó·0}7Ówgô€0è ½˜õ¶Öèc¯Ö×êûY}Æ‹´g zèÝlú!Œ¡0 Âa8³Ö³{V¤Õ´úQŒÑýw%X‚ù‡±ú´¦/ðoFÁX›§ƒôìÇÁx·9_ðïÎ2ž¾?ùæ®Õ\Юû7d*¾–šo¢´Ü3peàÚÈÕ=3×÷¬V…ÏîVãós~Í*_جóEíJ\ë]õ½¬¥Äsÿg…¯Ï58جÁFmjÞ•-ønnÅ÷rk¾‹C̸=ß¼ÍÛ¶3ß°]ù¦LØÏûbœšî¦ï¡ý·ñ¤Y˜ÍŒÚÚ›kj_®¢ý¹zäz9˜kßýÊ÷ÿd#Ú¾é£L?ÖÃüqÚ{ÇÜ«”Ë&˜~"c²#:…1‰ñšvÕñoSm6 ¦Ã ˜ ³àu˜ s82æÁ|îÁbXbÍzƒ±€±P»òøµ7=F—j×¥Û–9ørXÁ~%¬‚Õæx‡ùoiWì{;Æè«_ ï²±Îmþûnã´g?ö¡Í>‚õ°¢a#l‚a3G>-ð)÷Ûà3ØîöÞVíÊã×vÄíÔ®çI±]þ¹Û³ÝŒ½Žñ>Æ튽cûü ·gã¯_2iWÿöµƒ¶Ù76;¢]¡;j³cpœý·&ÿÎô'§sO3N2¾×®:þíŒÍ~€³ð#ü?Ã98¿pä"\‚ËÜ__á·8®w®jÏé¿°ßüšÍ®k×¥Ûn8øM›Ý2ýmÆ“݃?Ùßeü¡]±wì¯ûÜõÇdÂô’‘(æ|Tq]I{na˜Øc4‰é“2R8¢O1’3RÆiådºs{¬}yÚf©ðLi0-¦ãQzÌ€131³avÇ;YY°^ÅgÖá#îK·qN·q.Ý +õæ¶YÌ‹ù,ž X¬ n…z yŒ>‡…u+ÓkXÄfÏcQ,†Å±ó°¤-ÅxQ·J ûRÚÁË`Y‹•3}yÆKŽçt«õâ¾T´Y%|+c¬ŠÕð¬Ž5°&ÖÂÚXëb=¬¯[©—÷¥Çh°Í:¢t«õžaco‚M-ÖÌôÍ=Ìo¡[±w [zŒ¶2ý«Œ6Žh[FkFˆnÕ^Ø—v6k°#†b'ìŒ]°+Gºa ã¾7öÁ¾Ö¬îŒžŒ^º•Çó¾ôóí¯[—nÃ>±ŒCp¨9æa~¸nÅ^Ú—á1F#¬>#ÙdŒvùþ†Û³yŒŽñBÆ|ÝŠ½´/‹|±Û³%Œ¥ŽñrÆ›ŒeºU{a_V8øJ›­²ÙjÝ +õ®±Ù[ø6ûwL¾Öôï2ÞwÌý€ñcnÕ^Ø—mö®Ç q~Œ›9²?Å­ÜoÃí¸#Žë}‚ŸéÎé?Ù—¾ËfŸëÖ¥Ûp·ƒï±Ù^Óïc|a²/ñ ûŒýº{i_9øWøµÅ›þÆ1·ùGã¼òݹ=Ö¾÷ý¿c‚ñ½#z†qŠq:N+ŸÔÛcíË6;‹?âOø3žÃó<ú/à%¼ŒW˜ÿŽ×ñ†ã_¿=`½‹x-Æøªî q_nºo¹oëV¨Çð›ÝÁ»xÏâÿc¿Ì㫨®8~ÞIÞKÉËB$[ !Écß÷}ß÷}ßU‹`ÕN© E‹ ¨¸¡€¥ÔRADD@J©¶Új-­UÛϧøùØOµµÒ3çÝçÁL_B’w'~æœÌ÷wÞ™{ß=s3ïÞ™o|W̵W¨Çm³q¯"¿î +õ8$JÀDLÂX“âdLÁ gSéHÓ]¥†yI·ÄXKE™ÌÚtdYÎ×Ñ]m 祮DÙºkq“cŽDõ0Ww5¶Ö×2jKÜ™§{&ÜàØÈ7Ö]{›Xâ¦Ìfºkrƒc¾%n®»÷8¶°Äº«qc¡D-±ˆµKtWåXm[a똌ÔF¢¶ØN÷uG­¶=vˆÑH%ê„u_wÔj»`Wì“‘ºKÔ{²öÂÞÄ>ºçÀ¶Ú¾Ø/F#õ—hÔ}ÝQ«„ƒc4ÒÝ×ZÎz‡Æhœa Ǭ#qq´îp¨wLŒÆ+Ñ8¯ûª£V;'⤘Œ4Y¢)8•uN×}ýβÄ3p&Ύɨs$š‹ótÏAÔjçã‚´P¢E¸X÷uÛV¸Ì/Á¥xSLF½Y¢[p9ë­xq…îùºVZâÛñ{1õ‰VájÝsµÚ;ñû1é.Ý×Z®jïÆ{b4Ò$2ð‡¬kðGÄ{uÏÔuŸ%^‹ëb4êz‰~ŒtÏm…?±Ä÷ã¸1&£>(Ñ&ܬ{l+|H˨Ûä¶ÐñˆîùÐëø¨%~Lw5îqÜ*Ñã=AÇ“º+Óëø”Mîi:¶é®L¯ã3ùguW¦×q»D;”îÄçˆ?Õ]™^Ç]–øgº«qãn‡üóº+Óë¸çºÌ^ÜGüù ~ß º¯¨rá߯»2½Ž¿tÈ¿¨»2½ŽòuW¦×ñ%‡ü˺+ÓëxÈ!ÿŠîÊô:¶É¡ãUÝ•éuàÈ€´IŒÂiY£Ê™(c%C’ÄÁ2±†´O+kJûŒ*a²|&¤HœåÈ ´©…©Ò2'‚i’Ï-7Ó¥oƒ*d†Œ’§XK2ËÁLéÕ´L¬-íóËÄ,iß"¦¬#ã*Ö•LQfKËÅÉ´*7ëIß6Q˜+-ÛU!ëË("Ø@òÙPÚt‰ÂjÃÙrö¸¹ê¨øÌ•ø¤ çÉÙS0_â3´ö”Æga¡ÄçÌHÅ`±ÄÍuHÅ—`©Ä—i5*߉dϫ߬}íêÕ+¤€æ/ç_¤Ïø&’î%i@½…úNà§ï‰oLziéjÒö¤ï’n1 ‘V²À¿Ii… +ü—”î‘„é¤ÿ!=f@݉uH®2 9‡^?"Í#ýÄ€àZ€”ᤒn7 •VØ ¾^ò’~Aúºtï¦×&¥»4½™tךOúOÒ3Ô¡{&«é~Òõ¤ôßÉÚd@]zÈúÜ€œ»²Ç’ÞC:…”~»Ù H?#}Ó€úô½¹Å¤tåv"=DºÕ€Ô?÷KRZÑë!½HzÀ€F´[äåÒªž×È€&4¹iÜ&_’~`@Sú]4én@þa€f; hNo};&¥ÿcþ(ÒWI÷Pˆôâ@õÒ]T@ß_H¿È‚q¤t}‡H'=JJ¿Æ‚㤛Hß ÝLzÚ€‚¤gé3½‰†Héþ)\Gzžô´¤ynÙôVÒJŸ&=Mú…EôlV4•”Ö¦¢“¤WŠ³ (¦5³Ø ÝMú1éW¤Ÿ’Òÿµ¤‡%ô;+¡ë*9J2 DOø¡E¤‰¤ËIHWIï ¥7ÔÐjRz‡ ­!¥û ´A)Õ¢7¥ÐýêóƒêófRšÿÐÃJé~ Ñ»cè1õ}OÒø_“î$¥ºB»(Oó¢y ÑýÚG }IÕqLéaÒdÒãêóIõùi Ò3Jߢë¥y #]Az”väÐERºB—Ho!}Ÿô|ø÷>@ˆƒxðC€f’8_Üh5éHÖ]„gžyVé–R¡ÞAH¥µ¬:Xd•é–*£#2#ú ¸Óâ”Æ3ý ×î*¦…w÷î*¦™;KÅîBÏ<óÌM¬PïTHƒ†¤­ t ŽS뜹ÒÑ+$´–¶>µB‡×nwš_¢t§uºôÀmfÝ=j:¶òÌ3Ϫ›%W¨w +­ó=IGØœ«ÏÎa‹‡‘6mªCý¥Ïþã,çªÃÛ°ΰõzü}t[@ié~=®ßÇÕîî÷-Ï<óì»eá}<å{ékå³VF| +›¹VGîœî±È7?·î!žyæYlÍ|2[‘«˜iáç6wZ ‰ÃϘî´ÒU7<¸¬ÏÄá¹wû3ñ·;gPo)žyæY%Z*3í{§Cl¬´ZªÞ|°«oØâ®y&v£ùa'˜5?ßîf6 ¹®è– »Ï<ó¬J,ö‚Ýû‚{-r¥÷ÃA°>‡‡ŸÂÁåÏá žÄ=ó̳T¨wžãTR%Uk¾ˆOçÀ~‰‡·#ú ¸ÓJw¼ðîâ‡Ëpí®bZxgqï®bš¹³Tì.ôÌ3ÏÜdÁ +õN…4xôoPºÇÉS´ŸŽü]ÚúÔ +^»Ýi~‰t$Àç`]«ÃY°¬Øî³$KìÎÝÄ3Ï<»«½Éÿ±dzvû꺬ϗ`Ó¶:Iß¹(¨Ôï u¿¤.šóûˆñ ¬þ(óO¹þÊzT6NÈ|RæS2Ÿ–ùŒÑÏYIçoå‚¡^’tå–Q®êºŽB’IþÚ(Xæ™Ce“9\æ™#á®x?ä j°>á5$´ +ºCŒAÜš^‚ñÏ´‰Þ ­p C0 n@OÚŽôí¤èøzÁ.ÆXØ…i ÆqgÚE»EŸäÓô-À"´.bQšc0¾ oh}K_ÑàsøüK`IÊËð ÅLΡÿ +ŸåóXŽ~ Y8þG±VÅqt˜ŽÓQ:A§è -ĚЛÎa]œDè2]„/aì… ØÒKÐÓpšÃýD4oã_ø ¦‚-q2‡±ƒ¯ð5l÷p4ĸ±\Ûc?lËɜΩð |_ã}øv‚|;ÓHìʃ¹8—â ‘Ê{ø†@.Ï9‹«à#\ƒ«q-®Ãõx(Ãî<’^å°ƒ‡‹²Ø“bo8̹)ôƒ¾ÐCFVÃxœ†`0·¡Bãã|‚6ÓÚ×1Ãåì Ú‘ô>½MÒ»ð< ¹Fa ‚A˜@k1ž»Ð'ô©çS|†>ÇTL¤½p “h&ŽÅtú’þE+éßô5íãæ0ÃPÌÀRÔ†Ñ0,Í}é;Åçø–磴ŸfãD:@‡0 «áx:B?Ó1:I§é,-ÂZ0œÎc=œJ¿Ðº#aŒ‚§1ÑË0›ÐšËýE ¿Éù2kŒÍ8[áç(¾Ê×± ÞË1pûÂU.ÄIÜ;`lÇ)\ŒÓ`,Œqx?vÄa<>Œ]hvã!\‚3¹¤Hã·â +\‰+sU|”krunɵ¹.××Jó08Ž=x­çlØέx„(‡½¸ö#Ü„›qÞÏëøZBÓh-¥é´÷Š3â¬8-N‰v¢½8'.‹+¢‹è*®Šk¢¿ ®kÁZˆ¤i¢®%FkIZ²˜.fhñZ!-N‹ÕbD=±HKÑRÅZñ‚–&^õÅQñ“h!ZŠâ¸X/ˆŽ¢“Ø ²EÑS\ÄFÑPqC4ƒÄ`ÅfÑTL“´HÍ!¶ˆfZ˜*šˆ¹bž%¶‰æb©X¦%j |˜ð<™§â%Ç3)†'òlž+*ò3ø=ϧ0^ÀÏS$/åå¼’Wó"’{Oáix™Çó,ŠåI<‡çñ~–Rø9 +ç…¼„¼ŒWð*^Ë‹Ê¢Š¨$²øäC΢ÔÕt}gtîy² +É¡roO”9uš4-–>!j‰}ò ÃÛJÁ·Hÿ/)bT*ï†E +ØKˆ[k¸Gÿ·ÖH‹¢ Ö£'sØo¾2Hôǧ ;>ƒ@ºû“ +¹´â¡°…o$šõ¢¤ÊdHÉã“ +i7¿ ³¼Å9¡É_t°Ûç¿ß£ò€âŽ6ñ,´á!Ûñ¶Ð:CÛø®•nŠ±‰ÔBë=lÇïi©ö²ïíQÉQÜ×ÅÒÇW?‹¾ûÃÛñ³Ð‡'l㟴TŸ²èQ¬xˆ‹e¯¡}ƒáªaá3ÒB£Uù´…Ï˧kûüã<*Ot±Œwã5É¢ïÉ0Åvü©Ú4˜n?ÃRi?Ë£2Gñ\Ël7^ó,ú~žµ¾…ö,°_h©.²_ìQY¢x©‹åy7^Ë,ú^+lÇ_i¡­‚Õ¶ñk,Õµ¶ñ/xTþ¢ø¯.–Ýx½dÑ÷Ë°N•¯Xø¼j¡­‡×T¹ÁÂçu˧Ûhûü›<*o(ÞâbÙìÆk«EßÛàMÛñ߲жÃÛø–êÛ¶ñïxTÞSü¾‹å]7^Xôý!|d;þß,´¿ÃÇ–±:‰Ç99Hq¨âÅQŠcÇ+.¢8IqªâbŠK*.£¸‚âÊŠ«+®­¸¾bÒÇ]¥ÆUURv¡³©2hf=H&'4嬳©†BˆY-'B”O˜Î¦áf=Vú:®|"u6Õxp˜õ"2Î ‡ò‰ÖÙT“ Ƭ§Ê^ˆQ>…t6ÕbgÖ3 ŽW†8åYXgÓ'ÓàÓR6Q敨³éY!5íY')CQ•¬³éSÕàÓRÃàTeHQþi:›>µ N7-õä;‘®<‹+.¡×MŸlƒK˜–Æg˜–fPRU3Tl)Å™zÝôi™‡3M{›<\Ú´·…2ªZZõSVq9½nút0¸œiù•ýꀢø³B ˆô&Uz€@èÐ{‘ÞDšôÞ{oRD&M@TDQP(¢ `oˆ¨ˆ +Š‚(-¾ýv]ngï~\øÝí;óÿßû½ï½ù2;ÍÌ\KYL{}éS Ï––5r«O'ËZLWc,¦»(‡4Ï–V0r«OO+XLc-¦Ÿ¨ˆ4ÏVƹÕg  ã,~ˆ +[üpý»¥OeŒSXÍÈ­>£L¬f1cM¬n1D ¤ÕñlM`¼‘[}&›o1Ó ŒOºÙ8>éöâĤ¤#—P»9åÇ(¶¤örÊwR\Aí6”ùšÄ¤Û“)Ö$_G9s»6ùFÊÇQ¬K¾™ò‰o£|8E½ÖvÊGQlF¾ƒòAõZ;)JqyïĤúØ{ÉûRž@1‘ü8å[â“’ “—OLºAqyåá’W¥<#EšKR<å™).'O <šâJòefÿ5äÍþëÉ›QEq9ÍëfVŠ[ÉwSN+½-å§(%@ùIŠ#É R~ZàE(?#ôïFˆÑ”Ÿ¥8…¼4åç(ÎÐßIÊ/PœM>ÍÌçëïå—(.ÒßʯP\B¾€òk—“ÓÚÞêBñºZ:ÊPìFÞ‘ò}{g6yz›µ¬”¢Ø¼å‡)"ÏMùQŠÃÈóQ~BÜùg™q®'ŠqŠç‡qr§…qN'„q*D˜Ïg0c¤5Þù£¯Ef‘Rf¢Ÿ úL²™1‡s™Ñ8¹ò™­üf4ΞB"¥¬‚~¦Œ™§³~Îêó)iFã-k¶bÌhœ~±f«¢3«ŠH)+¢Ÿ£)c&Æ _Kó©mÆ:`ë™­úfl(‹“• &ÇËr¬!ë˲ƒ¬$ãdYU–‘eå*YN–—«e9@’ƒeÙSö–}¨gCÙH6‘Mé©xYK®• ²Ž\G#M”“ä9•F!GÊÑr ØIv–]e7½•l-×Ë6²­Ü@ÉÅr‰\JÕgÉÙr®œ'ÄåèÆ\t ö—ð«tÌ5bÕ~!Öѹyñ %1©ÏÓIóïï©4wýµæÍÒYY¸Ï>éétŠD–‰vu=f¡ß í‡ÙÑÊaõÌiÆ\t¿ÏcæùîI—–?™ý Ю|§UXȯ' Ó]ÿ^U£{qÚo4Úk<ùR´çø?JÚ›’W7†îôÞøòtƒW¹XÚÛ*ѾV™öÿF—ôkµ1t·)B¿Õt.êž×(x6ALDlååoÉgˆvìÿ7­ý6»[ŸôÛ,žöóÛµE›Þ:¢n@Æ©G'g»hèê<‰&wíÓT4óù·æ¢…«zïnÑÀ*¢¥h-LÖ“mصËÚ’·GÖAtBì,ºˆ®¶>ÝÄC¶vwñ°•÷=­¼—èmë×Gé¶S˜Në¢Ö¤$n!· ý¾ ß îܪÐm@ߥõ[µ±ëû¯~›®‹]¬~‹¦ýDÐM  ö }ohIg­þ؆ÞÁvôv s¶“ùöéoœþ–éo—þVéo’þöôÇ|àMÑß¡ÔFïƒþ&èßþú®ÿ¿.Þ×åΛ?Þ…÷ÿ¿e¬l"»–P2c›Ì®#ÔlŠ•M½ç1R¢Ms0ÓÙ5…‚ÍðÊÎLÖ)Ñfyeg³ëâ¶9fn²ÇH‰6èy^ ô»°‘/d×Çe‹€‹ö1|‰XÊ®Ò}[æ`g× ¶Ü+û».n[á•]É®‹Ûž®ò`Ö’¯6óuäkÄSì*Ý·õ^٠캸m#p“ÂnöÈŸ[ØUºo[Ì6vM¡`Ï8˜gÉ·ßå©çØuÛžîð`v’¿`æ/²ëã²—ÌËä»îòÔ+캃m»{öUü5ñ:»J÷m/ð &‘|ŸGûM±Ÿ]¥ûvÀ+{]·½|[ayäïˆÃì*Ý·w2Ê{ìó´ È(GÙçh{xŒ]G¨Ùqà v¡f?TØ<òÅ'ì*Ý·OŸ)ìçùâKv•îÛW^ٓ캸íkà)…ý†]·~«°ß±ëâ¶ïgØu„šý<Ë®#ÔìGàO @@ -2022,87 +2199,85 @@ ¸Za×pëâ6m-pÂ>Å­‹Û´õÀ »‘[—µ›\«´ø´Âná^j·ºVið…Ýν>Ô>ëZ¥ç€Ï+ìîpèÜ |Áµz/_RØ]ÜëàÐù ðe×êíîQØW¹×Á¡óuàk®ÕÛ |Ca÷q¯ƒCg"ðM×êíçž±Ÿ:¸\ï ÷ŒýÔù–ËõÞæž±Ÿ:¹\ïàa…}—{‚8ã÷´#~ô: -|_aq«÷¡öƒŒq\;áG¯¹çêçl>r¹ÞÇÀOöSîuâŒ?Ó>÷£×À/ö+nõÁ3í¤öµ½Nqëôs6߸\ï4ð[…ýŽ{‚8ãïµ3¶ö^{þ¨°?q«÷1§óãg휭ý‹×^¿/(ìoÜ+<Ó~×.ÚÚ—¼öúxYaÿäV<Ó®hWmík^{ýü[a¯s«ži7´›¶ö-¯½n“ìl˜àVïÝÂR` -,ÌÖNíµ—¦QØ´Ü+< Knk§÷Ú+˜Aa3r«ž…E†e²µ3{íÅ­ÓÏÙdq±šù©¥CØTSS%0 0-00˜ÌÌŒffF³³£÷³³ssssóóóó ï>,,, ,, ,, Œ––VÆ++〕U€UÕ€Õ5€5ñÀZÀÚÀ``]`=`}``C`£Ø/×è*ª+ŽïÌÙo†GHB^$!¼[*ZTŠB€B$¼’Â;@xSˆ—7°€hÅSÞø,­]h[[TD]”V–‹¶ØÒBm+Ö–,è*ÒÿæîrqR>)Ét6ìßÏ9‡Ëì¹sÏÙÛ0×°¿áÆy†ƒ ó 1,4jXd8Ìp¸a±a‰áц£ GŽ1,5,3,7kXa8ΰÒp¼áɆ“ 'N1œjXe8Ípºá ÃjÙ†³ gÎ1œk8ÏÐ"c;(‰-b‰™´Ä ð'7¢†7ÆU$Ž¥;$¾ 3‘8ÞƒwÊlÆÊl3Š“8Ÿ‰)$qr­x}$^V¦-qš›Èl5•83ŠÍd<ÛƒÍe6'Š 2ÞÖƒ-d¶}­L”5)Iâox0Yf;SK‰ïFö‘øJ•øÛNönÜÕƒé2Û̓2ûµ’ø!—™2ò—Y2ò°óÌܸµ–¸Ëé벌ä:OÎP;‰óœ§åÆùÔAâ—e¤Ðe')ržŸ§oJ\‚§‰GÒ·$'‰K©‹Äåxº‘¸‚O:O û$žä²rÕ-ø¨¬|Üy/Üx õ“ø‰(æÊøº(ö—ñ xƒ"ñF”Ù§=˜'³›<8Hf·x0_f·º,#Û]ÈHäïyÆe¡ŒìñàP™ÝçÁ"™=àÁa2{ȃÃeö¹(Ëø Q,‘ñ—¢8BÆGq¤ŒÿØå(ù‰ËÑ2rÄåyÕe©Œü,Še2þZËeü—Q+ã¯{°Bfßôà8™}˃•2û¶ÇËì»Ø9"ñ š(ñIì"‘ø7œ,³§jåYó>M•ø´«döwœ&³g°oEâ?Ôʲæì-X-+ÿ\+gÊšóµr–¬ù°VΖ5»çÈÊjå\Yóq­œ'k>éqí‹'qíÚ{ÐuГÐ@_†n„v¯÷C·B@·CB·¹×»¡?‚¾¦˜+øØKÐÏ W\ýú9ôj˜çƒB-Í8W*h§•Ñ«¡‹¡ë Ø{õfè:è(Þ5ý|˜mAÃói˜ŸCˆÚ½ñ¡¨ØãpêÇ.†¢ÖŠ] -EU‹Ï‹½ ] ÅýÄ~?L!ü¿wý6L6N;ÍUt)6ν‰sÄFGbã-²ÑØxSlt"6öý‡=Ú½Æg£+±±—Ùè9lìº6ú ;Š.ÃÆ>e? -EÃeAñ»¡w³ñ;·ÑÄ㬷ÑÄw†¢#ˆGc£ˆGv5‹^ õŠ=Ì/vçQù‡þEÕ·m£â‡¢Ú½íêPTü!ì6ªúÐ(ê÷Εzh%UzÏÙF…Z­.Â}.@Cx,LM¢F÷˜€Š;]I"j…ä®ajqÚÍÕ]G>-Ñ•&âÿi‰<×CÑA$âù·<¦$ì¢)x.I?‡î S2òKE皌J/ýj2òKs¯ãÝkt¤ÉK¡   çÂÔgnZ_è‹P¼g)¨ÚÓ±.;@:òH9ý L©¸Ÿ ¼©¨Ç2ð=¤¢æÊèí^÷u¯ñ=¤®âsR/¢YÅç¤á\n…ÏIÃç·:¦tÔÖ™øwéømf>ýúûRæKÐ÷¡‡¡xYIÐKPôFx/²Ð)eàœÌ: =ˆBïKÆ5h:¿ƒìaj…s+û(ÎÖøÞ3‘ë#P¼‡9x?3ñ=ç, Sî+çcè³DmÐ;fÇCñ¾d»= ÅÐõîÊ骜nÊ颜;'½—1e:¨˜›F ,°À¾~S„}œâá8¿ g·»7©Öðm¸¯À ìÿÛ45“(¨— ,°º`Š’Á4÷*Òߥ“w¯—yÓº -ö²À ¬.˜¢väÕïX`}ÝÆÔ ¼›‚)°À« ¦¨ x¼+ü~x7 -ö§À ¬.˜¢îìGX]0E=ÀGÈÙ“zöûÂû™«\Ã`|<>ø¦O‰¡‚/‚Eðaðáðbx ||$||4| ¼^/‡…WÀÇÉ'UJ4œŸ ŸŸJõm/U·û ,°¯Ä˜ª(Ø ,°º`L3é¿ûQýø¥óí¾À ì+1Mó(Ø ,°º`šjÀeðåt}_ªßfÑ -òGß×?rqLÑZòS6ëÉOÙÇûøâóüþT'è.ú}¯îª;莺“î¬7óE=^OÐõ=F—ê2]ÁŸé^º·~Tçê>º»~@?¤{ê­úA=OÏ×ßÕ5zž¦§ëj=[ÏÐEz˜.Ö#õp=Pçé|=DïЃôãzµ^«×é5z±^¢—é•z©NÆû´‡®×çŽ7„§À;ÃKàaø*øjDý0Ëø Åà$uØà†76úýuÌY¡ ÿÃ~•Gq\á×sìŒ4Œvu ¡Uï"É’vVZ$q,«‘ÙÅ £€LAaN )ÀÄä(ƒ]ȇ@¸ HŒ)›ÓÄ«åðBÂNò*‰!'>*NÉ'T †”A(ßô*€SJU*?Şé÷õ{¯ßëžéy½RàßsÙ¾ò1»h뺻vtwŸêqv¾Ö3ôŽØòG{F8uIOÍQÁÜÌQùîí¸_wæÈîôÌÑ%ZM´ññÿ{5æߪÑý¾ã%÷x+÷j˜Ó¦ªÄƒ5Jþ5*u2§*˜¨WuÝ]gP³Ú¨Y¢j%©²,ICÊlwÚ¯š™»™Õýº”½ÚÌìz“݆[P´>ÑzDKì¶m8ª Ûàb×ê'HN%»*9s>#93Œ³nŠƒuH:fòØ[`½*9·Ã^À”_©Ózðõà+%RÇ*C³šÅÐ,†F¡™è5!ÃLqzNÖ ¢D¯½ èYÈf¡g‰—ôÓí“ì36žM<ææï.Íàm¬‘§9ÄYe¢eog{ÉG&[/Úí Ÿù‰ÏüƒÏ\ï3_ð™íìj‚a‘h™Ñd~ÐdŽn2ëšÌMæ)6’J`íœót‰™,1÷•˜+JÌå%fE F·RÌûD»Ùö5˜·Ì_6˜ÛÌÕ æwÌy ¦¿ÁœSh,4ûšIö½ãîî nJ=ºÁܸº/ŽTZ¼>É® ñ²òždkÍå/%šñú¾l•* +ZI¥’#WPTÈï° ßfAaÿVÂ*Å°e‰ÈO –&"x ) ŒÏ$BÐK4Ïàõi,Ô³Š¢º#+‘M0?’(?Ïë3Ù -°AP¤0SH¸è‘®Dó`¸«G1ÑîÒ$c ~wMRbÇùmk"¿H*Ð|HꟖ&¥C þ±açñ­ü÷‘~~ÖÜÉ;¬Eüd¹p ÚæD§ý,ÈvØÃÚÄ_·Öò=aÞñ¶6 ±¥Êã|-Â, $Ùä6äd0øBD|¦¼‘? õÛÍåµ|’uŠÍz–OHeb¬uR,çºmÖ{y½åå£"çùÈ(V’àÃá >4•¼* –Wyœ—ayÊqþHs%€”Ì®àO~]›©=©ÕjÕZP¬ ÒŠ4¯–£gé=CëºîÒûVÏIvÿÑ.s>Ó—Ç.ÅiÁ=’ÓJ©¯Xbº„­•dÝ«ãl]îòºüº¬Hæð1Ñ^šY=mYo—7¾µqÒ”øAïÔx•Cº½SãÕ“|OM9Á.³ÏbÑì’#¦¢ïg—c…Þ:5¿1þxÓ”$»[„aÁì¸í/A·gá1>YÄ¡R¨¢'¨Ùˆ#ÕP©[¶F¸­M¹Yˆ·¨#·N²„›%u -·óŽ[ëšÒX´µ´T¸¨Z#\Ö¨Ç<5ó †F[-Kx¥ÇYPÌ;˜¼"P(—HÈqi­ -Á¡5T%ÌÖ}syÊ<1ež(ÌÓî›)óî”y7̽>ãÿášûèçwdÚÎU»bs‹c³ŠcsqÏŠ¿²|~~|埯uÕNÇà‹ËƒgÍyz¾#gÏï,ž¯*ŽúZ§íêżË1O+Ž¶Ò®Xó”Ö]öÜhbš=-VŒz¤eÝÒØWr­½—kéº^‚­s‚-urµÄz1Çs‹“+æäŠ9¹Zì‘ËY[lÁ¤G—õr}ó¹çf,[6ƒþõ-@ºhJ ‹Í¿w¦22pÈ”Ž“T×ᣢ—dÔ‡úpƒLÀ  @!7 ‘P(‹2Á )1¼€FE€ -ij œ>p?ù‹ *¦à£h òF(k`à ¶aMõàÓ) -ë šëLÀ Y4 ÖÙ€A«p(½´š^Â<×P øZg$}üG´œÿs6‚oTÚL›±Š-´«Ø -¨´ ÚAÛá³ Úôýü Ú¾ ÚOûÀÐD8Há`Л€F­t>'(Í): ÞhtP©Ú1ªƒ:0êü– zÞ…çÏ•~G¿€æSúšËô'ð?ý>¿ -¨t 0è:ýÏö&Ý¿¨¬?ý/ÔË -É`å¬<À*ÀƒÌ¯b•àÃp<Á†ƒÇp{Œ_ÈÆ‚/Âq­²ìм͞‡æK‚ŸbX;ÍÚÀ;X;øûì øvü"»H†TÅ~‹’B™†4TÊ ©Zª¯‘jÀk¥ZðaÒ0ðáÒpðÒð‘ÒHð°%Hp[ªC´1Þ¾¼Wz ?ÍöÉxæò~y?øAùø›ò!ðÃòað„üSðãòðßÈoƒ_ßÿH¾þ¹ü1êkò_ˆÔ=êR»qõìt?tÛÔF¾/ͳkÝʹ\ƒÛÞ%î%þÜ\·WÎîWÈûõðì [^¢,ñ†"˺Ä3ƪ\ïWÄwø-ÙÇwvuffå e\¹’_àùä«}‹ž·òÅtÈ¥ÉÅr€U­ Uåö;Os`aO©R°b¨¢T ¿W¥Éeƒƒ~Ée)·Bž»óضªœÁVµu7—ýpTž^¨ ¤åTß]ÐóÛYîRÇ9¿©Ýž>¹éŒy²sò·É¨@Éè#Éý#Í¥)éÞtU¦œ¾ª(ê_—«ÚüŒžnd¸%—IJ³T-ÖÇôdªºË[Ø/?½_F¾Û(ô¦Ûégܹ}³23N²käfW™þB‡zÙÕã\×î÷YçÂg/žõܹ⹈ۡç -4OØÞJ8\—îÊ ;ÌSðQèhª'/|ï-β‹e(»¸6”’ÅýOª«8jóŒþÿ¯kÉ+í½Z_òz×Økv×^ï.Âl v0W8|ppÁ bל-‡™v ”6tJÌŒÛ@8 -¡ÐMHBfMShšÆMŽiÜNp/,÷“l:tlI¿´²÷é½÷½ï0¶€ÃØȤækÍÚ±¶ñëzÖ][Ûý€c yÀ}uíúàlíUüO¼@;„ÕãcÚ}«×~>ct…¾YÌù‚íyäCÍh—:K’ŠàgvmU¸P¶ÛøñR_Ã&ãùe‰[ƨfr£¯l~N£uvUq!÷À-ÖÜD"TF™ër˹µnušR+·º'-ôµ´¦ñ¢SÊ÷FÍÙ0 Öl'KöòòòèðõÁ¨îT}oP¬„«Qp‡~)šDpI*™( òX—Óí!ÉT°œ~¿ÐÔ©]ý—*+[ׯ~üÒßš•;9g÷»ÛŸÛz(Þ·uËwÓ© . ‡M¢ZÛSßn‹ÆÚrå^ïÓY_™¿xNqÅ‘½ßÿèqèw­ÚÒ úHhªšÉ 4%˜xMó% ‡Ç#ÓÇMu’ÏîHcë#<ßkœúä·î êj ¯p@Š–ÄìàHDÝÃ… -ˆÔzyóqÇÁ©Ý‘¦rÏ‹ƒT+æ.U6w¤ÔÖ®íQ&…øî}ÓLžZÀãDõj®™`›È±ðKYmœ%ÖáLÎ:ëq›Ïå605ÌÅtoøÿ1î¢ ú(Ñõá -’©¤$‚”Ûc—HmãŒÇ¶>>ɱ¿vãĦå½Wð2mhÝÆ•uYÊóß¹†—áœ3ïQ¼¡ýU; -Ø®jŸá!tº{½ú )b¢Å -„2‰û8« ½Êb6ì8/øœ®óJײáõƒ«½càËãñ‡èJb¸…\ºµBÎðn8<ôò\Ç’évË”¢ikªÛgKn,Ê0q©²q3—-,³ð.RK2 ÂrU ª¤°Ì ͤñ/@%ã{o‰wP´a°$æP\Ê,üÍL266òg|]„RL‘Õ*rSññÂûJ×®‡¥ôpIŒý¯8»fJ4Z39æÕ5ÑèãÒ#×It£P•êEõ˜L(xB±Ž¡{ !:ùSø -ŸÐ aU]A° ‘ðñ0Ç|±]›ôóÌ¿×ýÃ>2Hd–@ÿÈF/«yGñWüm'u}Šn#ª%˜ršibû²™Œ>·@zíib:•ké•Ó„;™›½å?4ˆª!JbSºÕ (‹yƒÎ)˜ƒtHðX¹HsY°bl°²ú2;`gö³ LI°ÓçKüȽRµäÛ¥²È£ 9 ìà‰# -¤$¦’q²a•RõúëÕJžzâæ¦'«ž×n\ØÔ»¸g$ˆkpÉ7/á í˽¿Ù«1“¾~øƒÚéSçp&o ë¼Þþ‚L+r£NշιÝIBΤ“ðÃKM7ò¨-ånœ7„4^õ†c©37ª’ÀS„6¹Ç{AWB¥qì4Ï >÷mÜüÿ · ±^M|LæŠj°dÃýÁø~8 5ævI‹.%ö”Œ˜äÁ8YŠg?;|©»Þ;Nž“;yf!cþÏ̆":3›M.¢ÄJ³Ä̳:öJÀ~‘iG~”Vgí0e­ÂËT;Ùg² 9iÆÆ:]¶ “›œ0`¯ÏbÅV E!™òú$Ÿ×jÁ ëd;2—³_V‘âç©^émßYxíÍgp'³2£—n‰C÷@]¹ò’W†x×sÞ3JúJè}òCûLZ49T6[x+c£Ø̃´´;¤Ë«÷ЇÒ>—2¥™ÇUj”ÁJ)d¥TâU˜íëÜ9/—þmçá+_hÛñÅ%%rçƒ?y`žl?¼÷'í©Õæ;§>Ù߯]Öz" yí/£9·päkj³EÑÕŠé¾ÅáòÝù…\97ƒ[Á­0us=¦Ã¾_ç[=Š×ëAT1ί‡8xr¿PÍ”÷ÌØlŽ: —ר6?í-ÄŽl¦£/„CïÀœR‚œDÅÄ|²$$µÜþx´ô>ØR)¾‡²U®s%{PB-IhmI½áé²Ô£,ÀÒ­)£©õééêô¦Z>¼"éK¿Ô²jn$‘3nàÅW^›Z0{ÉÄ•Ú'ÚÝžeJðøêw:;švb"OÜ׳ruSq3÷ã3‡V=Ñ)/L-?ø®v}z‘Q=àŸÀûÞ¶¶©9]f–6J@¯± …ÄS´aHá³x-̲<þÑi ÅXxKg«fÔoŽÑ7hB§qòW¹¬Êö±{–Xàjl†}ZîµT ß‚ÎÃìý -i´¥é”숄iH%k›Î‹+Ž¸w¤€¤$È<Í…¿ªi»råÕá÷èÝÃõÔÖë·iGð¼m†Æ“G¾¤61›P1ú½Z°Ý&§ #RèaœyN—•7Û<²h³­±ûý²V4SXœÆ¥jvÐÜï÷Ù'÷«.Ei2˜Ž¼3}®.âÒÝA…àþÈø1ø†®òyYŸnÊa¾+MfGF$ÌO`<‡¬• ¥Ag/ÔC(3Ÿ2å*9J¶’¥@/ -™2H»|رŠ93ýt€@8BYÑW´e 3‡K„À)‡Q\(º+<ÙŒ¡Cº3þðf隣ÚÝW¶º­&ò_¶«<¸‰ëŒ¿·—v%KZ KÚ•lY+ë°. Y²ˆŒe|È`ƒMŠÓÇÂÑbÇ“á4â€Ç€ q: ` ÓÚ' -t˜¶!i8B -iù£¥„&Ð¡Ó $UÓ”@ˆ–¾·2Mþ茴ïi´;úô½ß÷;Hâ -ßÕ霱¶ûñõϯ–¯Oý—C£'WôŒïüðØþ›ób}ŽM‹ºú·M{£eÛ+äŒàœ®…[Ö|ï‰Ñ´ºjњͿX½¶=V÷ì¯7¾pú讋«ÍÍ`åý‹ä!tŽ:à'R-ŸŸˆ·…Û"U_øHQ·µ»°ßÚ_8Ìﶎó¿òþÎ{…¿âÕ•±¢ ˆ¥v’´Ft xúšê n–N`Gü´ ¥@>ÌÇ..¨(Å=r.kUÏi»AýE(TúŒóF#ê¶Ãícx­µ“Ã=Ué•åyS{YDj<«ø8¨´ƒL‹cy#rŒXPï¾ è«¸êA¦3DˆšÕ3ØÿäVîzç_«º6žêzUýúg;6ò%³—FýãïeN•MuoéEHýòÈŽ¯H·šÖ‰‚xJúæé¶-Ãkϱ©“¡€ø®Yß\˜:#U¨ûIu*ªŸ'µUµ²êªÐ7‡g†‚5Õez…?*ïN¥©BÀ€e©i4Ä $I1à" †&‚F‘‡%ÉPaz;³„¡XXBT±ŸJõߟÌ"¨P>ü2‹…掆ÔQ´ -Ê&<Õe„1DTúÞJ%ú÷Â{qxo¯Ü‡j1 Zº”Z–§â Í:l (’  UBT I T ¦4„…ÿ¿˜ŒRLŽÃ(T ‹j p1¬RÌ\J ¨¶{cd3¹y¯LÇez/Ü”ÃùÄý¿1C(Ûh@#8™Z›(©åvÙG§Ž†GËG#çÝï‡8AgŠ»L®xB‹×§k¶«·Æ‡Õ›`YGà6{`•zbÂaÑKPJKž‡jR9¦€‡½QÓ¨ }~Ò¶Ùšp@“vœU¬[sª¢ú9M¡Ó—2üÕ•Ø»%Bë>BЮ2$äç†Ûß›BUåM‹€ïÀãq:óžP{;Údsj¦€)·A¡ ÂHäŠdÇ>ŽÀr˜EÁ@ð1Ç#øJ¤Á8Kì*&Ÿ7›¤r4fÙ‚LME÷‹Ó£Ë¯þëõ¯î пuV~¥3â€æ­M+_†ª}é¥zé@Üañé„òÅ¿—_ú³|ëÒw' iáʃϸwËwöÁ7›`ïcѤ|a[öŸ' `âãöŒ|}N><3­\>Üû:´ÎŠ-_±`‡«@ôAÍ;ŸÝ=qN¾&ßÛWè{"±èaESlÐcˆ‹`G'™'õ$/’"eÐxk±Õî'ý”—I *Á$‹“öVu«y¤Ø­\Ÿ¶Oקïã‹íÃä0µS»S·S¿“.¶;kµµ:BŲ 0›LôEHYÉ×Þª×Zu¥j ý€Þn Hò×C–³³ 0 9µÚk@O2"iRs¬Dë hR3”`‡, fa¶¦ò¸”ı¤]¯#Ù’jT<ƒ\nú;$ÁGèK‹˜Í -X‘“H““œÝÛKLÚweθ=´ -ÊƯøúDBEd`ˆ¿¯è7ý<Ýs:ÙÏ'U|-º$ò¸Hg4¢Ì‡hƒ“ù/êA ërwFHîÈ|*/in^^ -åHeCö? ¢†Öì–bŸ¥zÍ^ÈþÛÅ-¿Nfîu¯‰«].ÖÔ7ùμÿ˜%ZǸÐa¡s+€zKñ-.P.¦Z¶Z·Øˆ -²l³Î³ƒgá%xÙÿwxï.cyIkuù’Õ,)òx9>- -Óùž`yc¸ã ÿ@CšvƒeˆóÊœN뀑”A|”˜Ÿ²o²¿m'íÑ©œ7ŸŸ È#ÑÔÄÿ^¦±QœgŸwfvwfÏÙsÎ=fggvÖëÝõ¬ÖñâÊ'T5$¸l( -´D­ ër„HKDš~HQ[ÑE‰E*P@¨¥ṅŠ#%&P…HÅim¤”Cˆ®C>PzØ;ô}gJUxgƲ¬y~óþÏÿa.Öçv!º¾UjWáP§gFtÚ.±¶vYa9 ¤µ¸ÖΦ–LÁ—ƒ6.³Ù¹»oj£~3¶Ò’^8Z,¤ÎïÙrÙšÓp¶ÈX¾¹j½yܸø¯“9^( ×No_¼x;þð ¯ëyùì'›ß®­ÅOÌßõó¯*FÞ]òÜ‘Ã;ÏŽª¶¾ï{*ó¬Ú§~²4-ÅG÷|>”ÃoE ¯½STBF|¬ûî'bW`f=\>–®³W8b%÷4‡ëTˆµˆÖEJ”m¶q0¯‡ø~-dó„Xd©¾¬H'QÛšQö{%`¢¶Ó<ƒÑqÜò+M5´Q¾ -ñ™ÛÈTc„Þw*Nèâº1¨%)îò†UYóJž<æŠÃƒ‰øò˜;æ̃ǦkÍÉwû3@Ãd Ê4!/Öp±8±î¦;<ËžöçRý;'ÿdÜÑ¿Œ¾8°J›¿îðûÆoOûÝè³YžêÅY?|Ã8l|d|f$ý¸¶bÞ†?¾  }~r’¡—쀚tCN¯»&Dp§Æ…1ñß”eå“=bBOøe‘ÕŸ·g9ŽÅñ¬¢$(ëà H̘ær§ü>$3 ’™QnŠŒAp’Òù8AGÂÑp,,‡I+© -*¥qkÐ<<,a<ÙD{ ZÁLi…/“Ôd¤›{⊱¤·aèøüµÏ~Ðøû‚NcûÆùý#¸ØS`ÕŽËV¼~­6ñØꟂ5`îèK‘îé[Ûœ=›ˆ=‹”¶ê€ñø«Fuu!úÒ ût2ѱv®øíuÉ-ÉÝIÂ}Ö!zìÀ¾ÝÞ'ˆð™0!c¢®'HY¤t%°1p™@8à&øh‚æÔ¤HhqÒï¦<ÚÑxV÷d©€¿=‰è) +|_aq«÷¡öƒŒq\;áG¯¹çêçl>r¹ÞÇÀOöSîuâŒ?Ó>÷£×À/ö+nõÁ3í¤öµ½Nqëôs6߸\ï4ð[…ýŽ{‚8ãïµ3¶ö^{þ¨°?q«÷1§óãg휭ý‹×^¿/(ìoÜ+<Ó~×.ÚÚ—¼öúxYaÿäV<Ó®hWmík^{ýü[a¯s«ži7´›¶ö-¯½n“ìl˜àVïÝÂR` -,ÌÖNíµ—¦QØ´Ü+< Knk§÷Ú+˜Aa3r«ž…E†e²µ3{íÅ­ÓÏÙdq±šù©¥CØTSS%0 0-00˜ÌÌŒffF³³£÷³³ssssóóóó ï>,,, ,, ,, Œ––VÆ++〕U€UÕ€Õ5€5ñÀZÀÚÀ``]`=`}``C`#à?ì—ktÕÇwæ숉7Ã#$!/’Þ-­*E!@!^Iá ¼)ÄË› +X@´Àâ)o|–Ö.´­-*¢.J+ËE[li¡¶kË– tésw¹8)Ÿ”d:öï¿çœÃeöܹçìkØßp€á@Ã<ÃA†ù†ƒ ‡5,2f8Ü°Ø°Äp„áHÃQ†£ Ç–––Ž5¬0gXi8Þp‚áDÃI†“ §N5¬2œf8Ýp†aµáLÃY†³ çÎ5œgh‘±”ıÄLZâø‰QC‰ã*ÇÒß…™HïÁ;e¶‰ce¶ÅIœ€Oĉ’89ŠÖ ¼>/+SÈ–8̓Md6ƒšJœÅf2žíÁæ2›ÅoëÁ2Û¾V&ÊšŽ”$ñ7<˜,³©¥Äw#ûH|¥Jüm'{7îêÁt™íæÁ ™}€ZIüËLùŽË,yØyfnÜ‹ZKÜÇeŽŒôuÙFFr'çƨÄyÎÓrã|ê qËŽ2R貓Œ9ÏχÓ7%.ÁSŒÄ#é[ÆÄ¥ÔEâr<ÝH\A÷J\‰'‰'Ð}Orž´O¡û%®rž±O§îWãIGâYô Äs\>$#ó\ö‘×1/¤ž×àÛˆÄazDâ%µ²—¬YV+{Ëš·`Y¹ê|TV>î¼n¼†úIüDse|]ûËø¼A‘x£ÊìÓÌ“ÙM$³[<˜/³[]–‘í. d$òwˆŒ<ã²PFöxp¨Ìîó`‘Ìðà0™=äÁá2û\‹eü…(–ÈøKQ!㇣8RÆìr”ŒüÄåh9ârŒŒ¼ê²TF~Å2-Šå2þË(Ž•ñ×=X!³ozpœÌ¾åÁJ™}Ûƒãeö]ì‘øM”ø$v‘HüN–ÙSµrŠ¬yŸ¦J|ÚƒU2û;N“Ù3Ø·"ñjå Ysö¬–•®•3eÍùZ9KÖ|X+gËš¿Ý‚sdåGµr®¬ù¸VΓ5Ÿô¸öÅ“¿¸ví=è:èIè /C7B»×û¡[¡ Û¡¡ÛÜëÝÐA_ SÌ|ì%ègÐ+®~ýz5LŒóA¡–fœ+ +´ÓÊèÕÐÅÐuPì½z3ttïš~>L¶ áù4LÏ¡ DíÞøPTìq8õcCQkÅ.…¢ªŠÅçÅ^†®…â~b¿¦þß»~&§€æ*ºgŒÞÄÆ9b£#±ñÙèFl¼)6:û‚þÃí^c‡³Ñ•ØØËlô6v]ý†E—acŸ²†–¢á² ø݇лÙøÛè âqÖÛè +â;CÑÄ£Ž±Ñ Ä#»ŠšÅF/zÅæλó¨üC‡¢êáÛ¶Qñ‡ŽCQí‡Þvõ (*þöU}hõ{gˆJ=´Š*=„çl£B-‚·Ö@á> !<¦¦GQ£{L@ň®$µBr×0µ8 íæê.Œ#Ÿ–èJñÿ´Dž‰ë¡è ñü[ž +SvÑ<—¤ŸCw†)ù¥¢sMF¥—Š~5ù¥Æ¹×ñî5:Òä¥ÐÐ Ðsaj‰37­/ôE(Þ³TíéX—‚ y¤œ€~¦TÜOÞ‹TÔcøRQseôv¯ûº×øR×@ñ9©ѬâsÒp.·Âç¤áó[ S:jëLü»tü63Ÿƒ~}Š})ó%èûÐÃP<‡¬$è%(z£ ¼Yè”2pNf†D¡Ž÷%ã4ŠßAöŠ0µÂ¹•ý ç@k|ï™È¿õ(ÞüŸ™øžs–…) ÷•ó1ôY¢6è³ã¡x_²Ýž†bèzwåtUN7åtQN÷ÔГÞ˘2TÌM£X`_¿)Â>Nñpœß„³ÛÝ›Ô kø6ÜW`öÿmšš‚IÔKX]0EÉ`š{éïÒÉ»×˼i]{Y`VLQ;òê÷ ,°À¾ncêÞMAX`ÕSÔ¼Þ~?¼ûS`VLQw +ö£À ¬.˜¢à#äìI½ û€}áýÌU®á0>ž|Ó§ÄPÁ—F +Á"ø0øpx1¼>>> +>>^ +/ƒ—ÃÇÂ+àãä“*%šN‚O†OO¥ú¶—ªÛ}ØWbLUìGX]0¦™ôßý¨~üÒùvß@`ö•˜¦yìGX]0M5à2ørº¾/Õo³hù#ïkȹ8¦h-ù)›õä§lž"?e³™œl¶î0Üe¸›ü”å^òS6ÉOÙÊ\ÈEü:ó.á‘<†Ë¸”Ëyç‰üWòžÄïòTžÆ3ø=®âé\ͧx6Ïåù<‡çñ^Äñb®á0/áå¼’Wð*^Íky ?ÁëùI~Š7ðF~š7ñfÞÂÛxïâßóvÞÉÏðÞËûù Ÿã}|€ñyþªt}¾WwÕtGÝIwÖ›ù¢¯'è‰zŠ£Ku™®àÏt/Ý[?ªsuÝ]? Ò=õVý ž§çëïê½@OÓÓuµž­gè"=Lë‘z¸¨ót¾¢wèAúq½Z¯Õëô½X/ÑËôJ½T'ã}ÚC×ësÇÂSàá%ð0||5¢~˜eü†bp’:lpÃýþ:æ¬P†üö«48Šã +¿žcg¤a´«I­zqH–´³Ò"‰cYÌ.Éd + +sº `H&&GáìB†8Â]@bLÙœ&^-‡vp’PI ©8ñQqJ†8¡)0¤ Bù¦WœRªRù™b>M¿¯ß{ý^÷LÏëü{.[ØW>0f÷m]w÷ÑŽîîS=ÎÎ×z†Þ[þhϧ.é©9*˜»‚9*?À½÷ëÎÙž9ºD«‰ö!â!þ¿q¯Æü[5ºßw¼äoå^ sÚT•x°FÉÿ¡F¥NæTõª®»ë jVÛ5KT­$U–%iH™íNûU3s7³º_—²W›™]o²Ûp ŠÖ'Zh‰Ý¶ GµAc\ìZýÉ©dW%gÎg$g†qÖMq°IÇLÞ{ L¢W%çvØ ˜ò ’#uZ¾|¥¤BêXåbhC³šÅÐ(4½&d˜)"N@ÏÉ:Aô‚èÕ¡= Ù,ô,Ñã’ž`º}’}ÆƳ‰ÇÜüÝ¥¼5²ñ4‡8«L´Làíl/ùÈdëEû¢á3?ñ™ð™ë}æ >³½BM0,-³3šÌšÌÑMf]“9¢É<ÅFR ²Sbž.1“%æ¾sE‰¹¼Ä¬(ÁèVj€yŸh7Û¾óVƒùËs{ƒ¹ºÁünƒ9¯Áô7˜s +Í…fÿB3ɾwܽѽÁMi G7˜7@÷Å‘J‹×'Ùõc!^V^Ólm¢¹â¥Dó!^ß—­¢R…aE+©Trä +Š +ùòÛ,(ìßJX¥¶,ù ÄÒD¤c!„ñ™D¨Úa‰æ¼>…zbVQTwdE"² æGåçy}&B6êæb + ÷=Ò•h wõ(&Ú]šd,Áï®IJì8¿mMä7Iš/IâÓÒ¤t(Á?¶ ì<þ¡5ƒÿ>ÒÀÏ"ÂÏš;y‡µˆŸ,Dۜ负ÙÛàoX›øëÖZ¾'"Ì»C"ÞÖf!¶”Byœ¯E˜e$›œàφœ _ˆˆÏ”7ò§¡Þa»y ¼–O²Nñ¯YÏò ©Lã¢BŒµNŠå\·Íz/¯·¼|Tä<ÅJ|¸3<Á‡¦’WÄò*#ó2,O9Îi®ä’Ùüɯk3µ'µZ­Z jƒµAZ‘æÕrô,Ý£gè}ôt]×]º¢cßê9Éî?ÚeÎgšãò8Â¥8­"¸GrZ)õKL—°µ’¬{uœ­Ë]^—_—É>&ÚK3«§-ëíòÆ·6Nš?è¯rH·wjc¼z’ï©)'ØeöY,z‚]rÄTôýìrl¢Ðû£S§æ7Æoš’d—b ’0,˜·ã%(âöl84Æ'‹8T +Uô5;q¤*uâ`ËÖ·µ)7 Qàu„ãÖI–p³¤NávÞqk]S‹¶–– +5@k„Ë5à¸à§fÄÐh«e ¯ô8 ŠyÓã"W +…à 9.­U!8´†ª„Ùºo.O™'¦Ì…yÚ}s eÞ2×gü?\sýïüŽLÛ¹jWlnqlVql.îYñW–Ïϯœãóµ®Úé|qyð¬9OÏwäì¹ñÅs£ñUÅQ_ë´]½˜w9æiÅÑVÚkžÒºËžML³§ÅŠñB´¬[ûJ®µ÷r-]×K°uN°¥N®–X/æ˜cnqrÅœ\1'W‹Ý"r9k‹-˜ôè²^®o>÷ÜŒeËfп¾H­@ t±ù÷ÎTFΙÒq’*à:|TôÒÀLƒúPn ”(ä4ò +eQ&x!e#†Ш0Px–Ãî'‘AÅ4| DÞE`­ Ô6¬£©|:EaA3` 4‹fÁ:0h%¢ƒVÓK˜çj_ àŒ¤ïƒÿˆ6óÎFðM€J›i3V±…¶`[•¶D;h;|vD»ƒ^£ƒ¿A{À÷Dûiø:€é " zШ•Ãç% 9E'ÁÛN*µS;FuPF½ƒßDïÑ»ðü9 ÒïèÐ|J@s™þþgÀ ¿ÑçàW•®]§¿ãÙޤ෕õ§à…zY!¬œXxYàU¬|Ž'b#ØpðÎ`b±1à ÙXðE8®U¶‚}š·ÙóÐœ`IðS «`§YxkŸ¿À.€_dɪØo±qBR(Ó†JC¹!UKÕà5R x­T >L>\>B>R –ÂࣤQà)nKuˆ6FÂÛ—÷Já§Ù>Ï\Þ/ï?(S>~X> ž +~\>þùmð òûàÉÁ?—?&C}Mþ ‘ºGÝCj7®žî‡n›Úˆg©Ñ裧ºpäÙ…¤hã°ÿUeœ,Ki.m£~zÚ_ýc&æ—•=q#<¾+ü„çfx¼§+Luá®°çšÊ`(ÓŸ9·_]ž¼ý¥Úø層üáA"W›\ ½¬ÎÇ×â¥yv­[9—kpۻĽğ›ëöÊÙý +y¿±žaËK”%~ÃPd9C—xÆX•ëýŠøÿ¢Å"ûøήÎ̬¼á£¬‚+Wò <Ÿ|µoÑóV¾˜¹4¹X°ê¡5¡ªÜ¾Ù÷i,ì)U +V U”Šâ÷ª4¹lpÐ/¹,åVÈswÛVX•3ت¶î沎ÊÓkµ´œê» z~;Ë]ê8ç×"µÛÓ'21OvNžâ6(}$¹¿b¤¹Ô"%Ý›®Ê”ÓWUEý òrU›ŸÑÓ ·ä’Xv–ªÒú˜žLUwy ûå§÷ËÈw…Þt;ýŒ;·oVfÆIvÜìj"Ó_èP/»zœëšÂý>ë\øìųž;W<q;´à\æ ;À[ ‡ëòÂ]ya‡y +>*Mõä…ïý±¥ÓYv±ìe׆²C²¸µR]%ÀQ›gôÿ]{H^iïÕú’×»Æ^³»özw1ø¦`c°ƒ¹ÂჀs€ N€»æl9Ì´CH ´¡SbfÜÂQ…nB2hšB;Ð0nÂÐpL›àvÒ€{a¹ŸdÓ¡cKú¥•½Oï½ï}ŸÆp™Ô|­Y;6Ð6 þq]Ϻkk»_p 4¸¯®]ÿœ­½Šÿ‰h‡ð¢z|L›£oõÚÏgŒ®ð±Ñ7‹Ù#_0# =|¨íRgIRüÌ®­ +Êv?^*âkØd<¿,‘`kØpÕLnô•ÍÏi´Î®*.äá¸Åš›H„Ê(s]nY"·Ö­NSjåV÷¤…¾–Ö4^tJùÞ¨9†Áš òïdÉ^^^¾>ÕÝªï ŠƒÕƒp5 +îÐ/EX“.I%e¡@ërº=$™Šà–ÓOâà—‚G-“=UpZ*H(.¸Ç†30çö¸ã¥©dÊk¸ȃcþ0E¾)]´xÚÌ9ãó«ú¦·.öéÔܽkBg²œØÑsà·kÌY¶bv¡¬â7§(ÉPÙ„3ÆÅ;;k"™Ñl¶N)›ZXðD[yÛ¢æ®Ý}çŽì§vÆæ?Ó¸diSõžÆš:µ«ÿReeëúÕ¯‘_ú[³r'çì~wûs[Åû¶nùn:5Á%0á°IôOk{êÛmÑX[®³Üë}:+âà+óÏ)®8²÷û=ý®UÛC:A MU3y¦ï i^ $Ááðxdú¸©NòÙil}„ç{SŸüÖT] DcàèCñÃ’˜Ý| ’è±{¸P‘Z/o>î88µ;ÒtCîyqjÅÜÁ¥Êæî´ƒÚƒÃÚµ=ʤ£ß£ošIÀS xœ¨^Í5l9~)«³±¢Ä:Ü€ÉYg=nó¹Ü¦†ù£˜î ÿ?&Ð]4 A%º>\A2•”ÄRr{ì©mœñØÖÇ'9ö×nœØô±| ÷ +^¦ ­Û¸².Kyþ;×ð2œsã=Ê‚7´¿jGÛUí3<„.Cw¯WC¿¡1EL¡XP&qgu²WY̆çŸÓu^éC6¼~pµw \Ã`y<þ]I ·Ð€K·V(À¾Ñ ‡‡^žëX2Ýn™R4mbMuû¬ã¡qÉE&.U6næ²€eÞEjITX®jA•–䣙4þ¨d|ï-ñŠ6 –ÄŠK™…ÿ¡™IÆfƒãÏFþŒÏ¡‹ÐACªƒ)²Z@n*">^x_éÚõ°”.‰Ñ¡ÿUBg×L‰Fk&Ǽú¡&büOzä:‰‚nªR½ˆ¢³‚ /Cˆ"Ö1toá"¤àC' +_áÓz!¬ª+0¶£!Þ ^Fâ8€/¶k“žbžù÷:£ØG©“ÌèÙèe5ï(þŠ¿í¤. OÑmD• S.P3Ml_6“ÑçH¯=ML§r-½ršp'ss¢— ü‡Q5D@IlJ·:eñ!oÐ23Cb K!I`. VŒ VV_FaìÌ~6) vú|‰™£·@Š¢–|»TV@y$$‚Ý=]ýƒÞTËç‚W$}é—ZVÍ$rÆ ¼øÊkS f/™¸RûD»Û³L _ýNgGÓNLä‰ûzV®n*næ~|æЪ'š"å…©åßÕ®O/’c£3ªüóxŸÀÛÖ65§‹ÂŒÀÒfB ã5vA °€xŠ¶ )|¯…Y–Ç?:m¡ oIãlÕŒúÍ1úMè4Nþ*—UÙ>–bÏ ¼³ñ@-ðO˽–Šá[Ð9`˜½_!¶4’‘0 ©„`mÓy1cÅ—⮀”™§¹ðW5mW®¼:ü½{¸žÚú`ý6íž·ÍÐxòÈ—Ô&f*F¿W ¶ûqÂätaD +=Œ3Ïé²òf›Gm¶5v¿_öÊf +‹Ó¸TÍšûý~"ûä~Õ¥H"M†‚Ó‘w¦ÏuÂE\ºû#¨Ü?ßеB>/ëÓM9 ÁwÅA£ÉìȈ„ã Œç‘âµ’¡4èì…zeæS¦\%GÉV²èE!S&i—;V1'p¦ŸG( #úŠ¶lÁcæƒ`‰"å0*‚ËÀEw…'ƒ1ôqHwÆÞ,]sT»ûÊV·ÕD¨ÿ²]åÁM\gü½½´+YÒZXÒ®dËZY‡uYÈ’Ed,ãClRœ&8Ž;ž §é<lˆÓIq˜Ö8iÜP À´ IÃRHË-%4f ©š¦š@´ô½•iòGg¤}O£Ýѧïý¾ßA\í%…ü\Êi”{Z4õÌo˜-ŸùâÉäRðxïù]\UEr¬††WM6Ý Ž>T(úNYò±|yJq‹-˜ÃF=êíIz=ˆ ¼*iÓ£îrj³‹·4?m…Öz+‘RKí!´®`†f$ +ozøâ«‚Çf"ÛsZ@ÝSšg©üÀ"ëBB{&?7 +_¸íN£P¢ÛbtÅ DÇ@ D;ÁdA;åˆ'pàþL*Coo/ö%Ï»¦IØ¢2xjÜeˆŒÜ?òäg¿9,_ƒÂ]XA÷MÏÚ$̶Ìûéåã¾úŸ½±=·»û)ÈËWàlh€‹³”ÌÍ醫]nƒý£ ?xãñiÏî—ÏÈñI)ÒHœçòÀªTáu?»_E®P­a·«6s˱y€c9åª L™±8SÈ»pP EyèSÀÈÒ †N‹‘¥èN|9:5ãyÀ`š4}‰œ»‚íЈ4[ÊEœÜ#ÏÝ ‡ä¦Å­Õ%ÕÅ"Ý(Ý=E½—ZÎ4ÎT2A:»z òˆ@j|»j¸hÈ6$íñï¾T6³½î58¹ÔÒASðS•Ôtfzxzy “6×{êÂéòd;õµ‚Þ@­Î[§]kZm^+¬q RÏÑ[Ì{\GÉ£Ô1ú¸ôa骸”r +1’TSj¨Ijº;éY@·‰m–¶HÕAwˆ–Ž_ËFÜMéÊ¢1ŒÓš‘€Vßé8Ntð"¥41cgá1¶óí a,Å¢Kíl2ð5G±æœU0Tî++’øñ”:Èb° 1ÅfŒ|»éO™9 ºb— Š} (ÆGÓ:QOIß<ýÀ¶eøoí96µ`2tbß5ë›ëSg¤Êu?©N…Bõ3㤶ª6PV]úæðÌP°¦º,P¯ðGåýÏ©4U°,5f˜°$)¼CdÁÐ$CÐ(ò° *Log¶ƒ0Ô Kˆ*öS©þû“™CUʇ_f±ÐÀÜÑ°“:ŠVAÙ„§ºŒ0†hƒJß»C©³Dÿ^x/ïí•ûP-TK—RËòTœ¡@‡ E2€¡AØ!Á J(€j!i‚a€Š¡Ã”†°°àÿ“QŠÉq…ŠaQ .†UŠ™‚K‰AÕvoŒl&7ï•é¸Lï…›r8Ÿ¸ÿ7fe h'Sk%µÜ.ûèÔÑðhùhä¼ûý'èLq—ÉO¨cñútmÃvõÖø°Zcó,ëòÀf¬ò@OÌA8,z JiÉóPMê!ÇPã°7j´ÏOÚÂ6[XhÒ΀³¢ªÂukNUT?§)túR†¿º{·DhÝBèÚU†„üÜ`û{S¨ª¼iðxæx_‰4øg‰]Åäóf“TŽÆÂÌ [©©è~qztÙáÕ½þÕ$ú·ÎʯtFмµiåËPµ/½T/ˆ;,>P¾ø÷òK–o]ºñî4-\yð÷nùÎ>øfì},š”/lËþóäoaL|üÑž‘¯Ïɇg¢•Ë‡{_‡ÖY±eã+ìpˆ>¨yç³»'ÎÉ×ä[cû +}O$=¬hŠ z qì(â$S㤞äER¤ zo-¶Úý¤Ÿò2 2A%˜dqÒÞªn5’ƒÔ»•ëÓöéúô}ü`ñ }˜¦vjwêvêwòÃÅÃvg­¶VG¨X–f“ ‚€Þ¢)+ùÃ[õZ«®T-¡ÐÛM"!IþzÈrv–at#§V{ èIF$MjŽ•hMj†ìDÀ,LÀÖT—’8–´ëu$[RÍ!ƒªƒgËm@‡$8à}i³Y+rirÒ‚³r{‰Iû®ÌÙ·‡VAÙø_ŸH(  ñ·ñ½ñ¦Ÿ§{N'ûù¤ŠO¢E—DéŒB”ùâ0mp2ÿEÝ!(aÝAîÎÉ™Oå%ÍÍ‹àÏK¡©lÈþgA´ÀК½ÑRì³4@¡#¢Ù Ù»¸å×É̽î5qµËÅšƒú&ß™÷³D ò:,tn%Po)¾ÅÊÁÅTËVëQA6mÖy¶cð,¼/ûÿoøÕe,/i­® 3_²ƒ%E/Çç±Ea:ß,o w\£áhHÓ.c° Ñ`^™Óéb½0’2ˆóSöMö·í¤=:•óæóy$A¢‚šÈÿ—ð2â<ãø¼3³»3{Ξsî1;;³³^ï®`å°Ž/PŽ8¡ª!ÁeCQ %jMX—#¤@Z"ÒôCŠÚŠ†(J,RÑ€B-uc>T)1*D*Nh#¥BtòÒÃÞ¡ï;{@PªúÃ;3–eÍó›ÿóþÏÅúÜ.00D×·£Jí*\êǫ̂“N›Ã%ÖÖ.+,‡´×ÚÙÔr€)ørÐÆe– ;—c÷MmÔoæÀVÚ@Ò G‹‚ôÂù=[î"[sÎË7W­ 7ÿu2Ç …áÚéí‹oǾäu=#/ŸýdóÛµµø‰ù»~þµCÅÈ»Kž;rx'0ðÙQÕÖ÷]bOežU{ãÔO–¦¥øèžÏ‡rø­háµwŠJ¨Óè"ußýÄÂ@ì +̬‡‹ÂÇÒuö +G¬äžæp +±Ѻ³H‰²Í6æãð߯…lžëƒ,—éD"j[3Êž`/°LÔÖcšg0:Ž[~¥©æ€6ÊW!>s™jìQ˜Ð{CànCÅ ½SœA7µ$Å]Þ°*k^É“Ç\qx0_sÇœyÐâØt­9ùn¿bh˜¬¡A™&áÅ.'ÖÝt‡gÙÓþ\ªç䟌[ ú—ÑVió×~ßøíéc¿›}6ËSý±¸1ëGƒo‡ŒÏŒã¤×VÌÛðÇwA¤ÏOBN2ô’P“nÈéÕbׄRãÔ¸0&þ›²Ì¡|²GLè ¿,²ºâóãö,DZ8žU”e&dLÔõ)‹”®ö±"Æ.ÜMÐœš´ -NúÝ”G;Ïêž,ð·‡#=EA!¦RÏm¢—Ú7aÚ2 ×ÆqûXÚM‘‚™nkÀ„[ïíÛSl}è‚~7ÅL¡öõ™ ê Œ¬cþQSÕtº~mH!éÌvä Y%iÛ…çR‰ŽŽtbT¹ à9å1å„B(ã8y¬Ë3˜F¾ÕÕÙX,ÊHDp¦2Wëî…À@L¯PE¦àͲ±F×JzÖåM©Í«#óÊ"ójCæÕþEóú2ëšsdE,o€lÙ˜B _÷¶«® “ë+m;}Ƙm—Õµ™Å‰R·?·£¿0.~pel,–¡™ÅcÆW÷.þ¾1i2®§ÝN‰ƒ¯lyȦi–@l­1œxöè)°Dþð©©;äm¯@Ý¥¡³­\(.Lâ.Y¤uD6¨Ç•%bT#饛Òcd1 +‚,FtE“Å6x*Aªižq‘$åq·'T5 Оn‹F(FIñ$<–qi Ù™ËRJ,ÍcöìL0¬Ù¢éÆŒ©•ûðÀÈá•ï»7%†‰·!7ùÙÓS™Ckë©”J•ÚĶ¹µŸÍ‡×ºÖ6ôSšFõo0*`Oó~¦²±Fgq7ø±1´±•gú>þtÜx½åÖ°vùÓ×e`£i‡U⬔rô8J+¤oIçh‡¶;í>Q”ì4òE"áˆh'0›Ë&:°$La‰€’ Õ¤Š’êNÝÒ…„¥tU'à?K!* +)Æ‹´™ŒDÛëu'µfÝæƒ _­2U8IªÕÞœpVà°>¶PcMÅÖÿÀbcÒ$ŒÌ&ÍP(1—±ûÈÐàA¡xÍØ,³Ï/Z¸ì—À°o¤¿¼ÞÚm©VëŒ=cDU×Ê7‰â3%«6ýO’Ö¨ÒpC¥ö»ˆ}Ó#ä“3vËNÕœÇwoXBvpÛÁöû?æÀüzþ¯Ž›î›Ák’Õ–žçxGñ$…ùè—>;ÁÄ(ÅѲL„8Ö.8¼ºÓÑβ>ÝT±S᣺ÐNÒzL7é(qH§Z-ÔªPµ€vŽjsÀ¢Á;ƒ¸Ô +Hê=õ}ÔÆXÒ Y¨o›&–dî½2ð€ÛTN‹€H¤L_XM»ä +øtó£ÊÌ“þÉã‡òl×f4üÈ¡nÙ®iΡýÓçȧfþf’@MA`½p^|ϲs`"&aŠ³Þó œˆ|——â¼û s&tž#/»'™ÉÐeŽ,QTVòx–¥%I´ ~Ãü0³½óŠã-îÑ`ˆ„Ñ`(ß)Oµ­iü]˜À«AÍ¥yUÀ9ò²À¤æ†w°ô<À×È<ìN*¬>*oÎÐ4¸€2Lû/ÝeÅuÇñ÷Þsy׳»ö3{ÎÎÌÞ‡×ÞõšØñ:ÁÆàr$õrDq\ X å±IÁ)©Š¬ 4i‹hR5­EN0Š Øm%„(’U¥(Q5]µRÜ6Mð¸ofHÕdÿ˜Ù÷´öï}ßïçk­Ï¨iaß÷;ì–0Ô€PRNL@¨Ü>:9wëÊ)XkO½3}ZùTùøôïÑ0\£¼ ° .…Qåmå-Øy~âØ”2©ŒM9{æÑY å(ö3}Qãؘ*tžç.¹Ñ1×<ÈZ ½1Òº¨šÝáX!Àˉ Uð†l:"ô&é.b!;t܆dÒÜÍòi~¯ãU㈅ +ÝFÂw£¤y«"X +GeÉR&±X%3½.c¨J‚2ã1!rá‡ÉMàtÅ{©ù,XØýt¢|D/ ²ÍlsL3P)IØw0ûfá=æÅ…Jä`yðtý¿^±«ÕÓ(°?zhÏíCOÍkû.rC=¬Q®Ü <îZ°}ö¬~O‡ìŠÍþՀ /Þ^Â,ø¾nà;ó)ùÒ÷ÞÒ)Ïom¦´9kQööjÚ +ƒ +)É9Â\2ŸaÏØ/‰ïH×ÌÓì´ýšxMªÂ‚ ý©æÃþ!²Àó·ƒLb½  @O/ Ž`9‚ÈÀ¸Wº}¶aÛomïÚælUycQ¦;¬ª.©Ô¨ÒuõäðDqƒ—/;9Ðú¯Rk‰ýW(Ωf³v9$…ÄÎXÑ£øz ÝÑ£ÝqO‘¸¦â½+ÊJ£øMìê¬Or +ʪ@ÿOŸìé÷výXùlÇ‘µ¯w(s}}c47ÚóÆW)ulJ™P>Ÿ8[?Ö­‘r¹ßª–®; S Ò3 ÷aÍ2 +þQØÖÉý‘G!÷‰à”0-\>sÏ„^¨jƒQ·$Üä¨çMª^T…ÁD,£Jµ$FY‚ +BÄêñàTÜn‘L2¸Lü–¸S<"êE±Êfã‰d òW…ùˆ@º=BÐ I×íÚPÀy¬juyºg°tÝÉN÷àó]ôƒÂ–Ñí¾Œ¡KÙ¿í·T$–èvéÁšªvݘ^ÕXR?)J"$&Gä˜v¢YÎõñ}ž>ïAÏAofeë1æ æõ*à¼f½^–lV€¨¤›’e¿ÓlŠ;*@†õ†ˆ? zC8ô?Yaü)wš2Á2ªÁ#þe†.G~e ­îïˆ?|ã‹åée›àÕ…mÛ”#Êø¶¶ö­3¿L¶nžÝ¼ï‘ý¯?vÕ¾VddÙ´jßì'Ó×ÞßzíÜÔJÉÚ}Ss·ˆ­ø,òðDá¥4YÀ—øa˜nij§ó™UÙÇ]}ü€k¿ì…ÃÕÃìpŽ˜W¿ÁŽH#ò8‡'«O²Ç¥ãòyé¼,hÿÙ¬zÂEpˆHÃtº.AÇâ‰D”¦©^%“L}C6›<è'­¼å”Kæ¥×¢Õ<f‚¼ØÏ7òùp¶—¸8ÈLÎ ŒQ™:?~º¹dŸ®óÖÅ­EG‰¸•ãx&™Œà·+›ÉDð>™ÍÔ‘ú|:™p1´‘⣗MGy¯(’Îä%'ÊÔ%Ô<‡ƒ“&aǸp; ;ÁN@Á3Úò;ó(ïjš7 ÿ<Øô(væ%3=œkñ,çœÅïYç’öuóoÞí¨ZqSuÛ„ßØI†'cæAvÊ0”t~ÅlúSØëñïÕ¿áœì?A ~݃`ÍÍÍ®æf²Y[ •ëÄfa­‘À–aw@æfM/• +æÊ1QÙ#t„.ÒÁ Þƒs-\’a`øêj>çoCâbO’da;iÈy›áÏ= ÜÕâvß7g”)ßž#Š`m!Ê’¨‘½·ôÀ¿ç;ÌP–!mÉZùè,@ÇïKrl“Ý„d™´xÌ¢<_Bý· GáG0!Š¼1ÀïèÞ3È…\Aá4¼ zAiM8>³q†+WÊÙîÖP\N"Ò9œXåp’o”ö³5+Ç6ÅÿÓƒf±,RžGp}T b°Ñ¾>µY2AUÜÑ Ïv$¿^ý`h{凓¥êÌä·æaÓ–¶ˆ&à©fៜ"ÕÒLÜÛ8á¥nú´Ii!`µ="4IÐé@«¿Æ¯=­@¦®œÈê”íÌ¡:‡$Å1òÈ­!²H‚ÓÍü xìdάÖXŠÇªó‰¤h¾Ø³ÒΞEÛ„v>Š…Ãæ D—ŽNÈ@7(ˆÓðàáJ(Jmøò'ìNvy4¤¡@ÄGÏEQ·‹?W¹D<ùÅtST[wõ œ‘3H©à}X›Fª jXh`QiZ-8@‘ :ö? ÷__/ UÆÖK{Pä›(h¢P9S÷z»EȽ +_­žiò›âñdÕÀ,ÀggW¢º-ÌÌF±“?±ÝÝøˆ¡@§G½Fÿ+¥Ìþߟ@Þ³ŠP]Xõñžˆ‘9JL-ìeöf1‡T/kNÓ¤/Ä/$nÒ7דÿ¢Ë Ý0M†­·É R:Ôõ7ÅZ²É¨ŽJeJùÉXG‹ŠêÈ«Šd1`Uñb¸ÅÃÇÂXx¦ÄìÝÞ.EwaƒÇK]R ˜©  Gr·È•Ü'h± Í‚^åˆ5•/J º û™öŽN!¨¶BókD¥h¡QŒìP¸€Ùgu¡`Y q5QŸµ:¢“r}Àäzhk lm„Õ­r2²øÔ,Ž/Óâ¯ÙTYÌh‡!?#dnj[®%#º¨}4Cl`ÃÀT.诂-…F“wM*cüfgcâèoÞîñSšÕå÷ø[Ûºóø`Ëc mXXŒ-{,âøRvÍòÜ7® +–lö¸:KµZ4í¾9?ÝÒóÝêú6K@kOÄÅù.OËøV®é9[ÆÏßrÏ·ÕP©†{5P àuó<à€S‚ÒO +¼]iVá€ïP‘öz•«[;aE+eÜtÖ ÍÓpö8²u%Oƒ:Rr$¡©ƒn—ïÃÛr 8‡GÍzÔ.:Xt¸5¼:;t9nÕá4"QI!¬’#—h6 "DjÔLd-O$1[zé¦]ïWÿ{sýUO¤ÞùÜ–ç{¿¯øÜk+(••ý‰ÈÀçï\©^^UðmÉ{Ë/ïÞ].U±q„Á~ xú'­¿¦Îé¯ê¯rëo¹ÈfòBªQz”Ym^mÙL3›Í›-ª eåH†µr˜•3’Œ†Ð¤P³w¡±èP X—àæD¯ùÙn·ÄV¿O­w Y‰¤å”Œ.ê%–ÁA±çelìNž1hp²"Ðòè`ô.£t(Ѳ2á „ê&Y¶Ò²w–SÆZgS¤lóoc ¡Y­Öxø–§öÝõäüX›#Û9¾ÿçŸAå¢ø±­C|6K4[ÌïøÉgÝ…úMs¶ßùð ×°I"lÊÄF´·ÚÀº=ÁCÁ ÁóÑ¿Gg¢J°.öØdìg±#‘WboD~{/r1öNëÍÈØŸ[µxd0„ ”êºbãPMé]ë<§Ãõß”LÄV…7Ь8‘nSõ0j$Û:^åUÄ ‚" Næ2Ý/†aX‚0×.Ñ«,ÌJI+ûaÖ¬ì&¬YÀÊ,«ÔÈÖœ F›£dƒèh‰¤EØj{„lcÛ€ÕbÕËœ"›3P‘Dæ7ÕU‡v› ,Öœ6¤ ²¼ÖAÇbù ßžRÜ ¿êeýJ b˜§GeQ)'÷‘­¡þe‡?¬¼¾aÙd×–»Œ÷˜ý°#ÃpÞ¬¶© -¶:;Þ~ÿR1 1K´ÓÏämq¤¸Y_ ]s•—[k˜^<1«==|@ÿÂCšB¦ú8:ýµýnÝ»¿ÂÀf†¡ºÇHGbœ†—WŠ(K¢Ùu< b„u‘P±Å1H+²]5‰St¥Ôˆxu•Ï mjÈ·u^7)³5ì-ÔÀrYÏݲî ÌÍ©K‘bl|yÛ/ÔÚ“ÝÝÉöÚWl®¬ƒË'_„V¼<­ T©§Û|{Ûmï8®÷¤3âìlehëbþѪÕÜ@UŽØšÁ*Ø»Úì¼MœåžâÎpŸÈŸÉ4)ÆÅx´$–£“¾Éì^ñ¡ìqÎÅ:=¾˜Äù¤˜Ûè‰æ|\.Ëe}¹\VŠE¡ÆÃM˸°pB VJqX)«v.‡Þ­RWó­»Ô'Ô9•P«eÃ{_.S×æP34 Tí42úÆ Äâì{Ëf4óh²Ì³1hçÍ…;îæ*Z§­¬Øº›®´Éâ=Ê!QÝŠ1yšƒ§¸ ‡ Tn.ƒ¨ÑorWw6å…îí{‡Ûi ¸0—ª‚ÓûŸþE×¥g¯×û%7´Ûô_Â#zÒùÄ'«ã8¡€‹²Ý¹p3$2zÕíɤ᠀é Ó>H€ñ{­S¾×.¥r~Ù,«}_·3<øMÔvêÚ:7ïôWY,Q¹Æøn¯ßZ ¡á‰(†YŠÄ Øö™KÁ¢ˆ»ÅçøÚÄÚÎv±ã‘ ¢^NõÃÄà6‚] M7«¡S‹‘U Nˆ²\…m¢T®Ã.Q©ÂqQbDjÚÒWÿH¨¬ ÷kåRJù(’œðºòƒ=|¾'á]ôÄx­+Ñf_gŽC’3éC©«)|8u¬ÖZ†´R9Ó{H»ªáÃZ¹0DzÕ‘ eª²6cöœÙ›³’gåá#³ÕŒHgØ“1ø%`^b¼æ æNƒF#—5àÁlê÷òN+0nÈ ÿ«û4g4ú?—–W¢B›šâ8ç°ú +Eá{íí¹ÑòÔžÓ¥H}ƒÞ½µÌ)ûz5¥Ô¹Cï˜*ú¢wϦ:&õNö¶nÅ©Ñ4II–»óàöÁ¡xï¹ç›£§ôéÕ«­¥à¥éô†d°¬cë7‚À < 'ª»ûK‹×Ǫ@0ú:WâÏıVÄ.h“Aa\À9Ï8QD¢l>RÈDëQJ©Ã¨3ÌXeX…¢(!ÖÏGØt¥+R —$è‚Ç•èáU]ÈGE{‘.Æ•L‘ AtrJ5!Ò(æR‡‘¬žÎÅ +i3n"¶q/w>C~ªA6Ã@m m8 ÍCÝ–UT+lª¨ö"ºªk£~Xµi›ýÛia|÷ø¹Ç’ï÷ÿÿ/¬,þ´7A¸spጅdÅ—„'+â²`á.DÝ8–^7rƒcÍ/öÊ°)m¡`_y»Ó !­ë°‰Iì‰åmäéç—ŸûöÑØÌ7x`OÙœëûæ§KŸ?úôM„þð5QÖ‡*èµÇ2»?<ñjJö m¦M»ï5Êz’3lT;„žÞjÞÿë›(‡5Ž°/Î)âlcGËBER³^ +äk –/w”žóCщXTzpÐ1N)¦=c¢¨™7IóG¦˜TY«3:ÒÓrr°g/ýl8·ÚìÊQ«‰1Ýywumbo ÚSž‡š­+Î#.·ß~]áé9Á¾½­mþ‰z¼ ØRõ)µXf©Æ©F©Qˆ'v†b_ÙÝìÈ6WØ~}ðqm+ü¬ âO÷šÈ¦6L/Ö;{·v¯×Ž¡TÔqS¥8 EŽE°C.‹°Åˆ…ˆ>`q‘KözlCYôi¬”äX¢ß²ôY5Øúª­&§—·Ï'ëä+§Ëßá$‘Ñ؈âlüæôîï}÷ÖÅï×/ø<’KGq4~bâøÜæá]ñÆæg?7$¸;|iìÐÞÚ³3'_Zza(à¡®Ao@]Æé°Vóa>€Â©UËan[˜a7úÝ Áv6,›pȜ֌1lõŽþ†~g¢¥‰íÖ*,ÅÛp!&ÛKoëÚúäj»È3†f Æ(¥û®•õ!Lmå@¬ûÊÐ…ÝÆ#ùUÒ«M–=4zrliX=ærñÚÖ‰E¯‹zi¶}}Gr«YÓµ£Õ/“ORŒKp+Õ™ ´÷߸·¤kÔ-ÐÅ4‘!~ÖصÝÙÏîcEN³/³/Gøˆ7â#MN¨¾h,Q3Òј)J6”sÆ@ÂÞ•ö èäFÛa¤óg2qÑ/]Î(O`]ÈŽtÃfܼ_NÄ$†9¬^Úª>" ’3HÒT‚vÀÇÉtA¢@ /tí©£è&„î´ù '1º¬„úJ–ãhBŽœÚOÔ÷£-…Ç*£ú‚‹œÚðøæwîrB³ècêÇí3S©#rpgÞe·S%ÊðûÞᙕ=ÉúƉs$»;` æ¤8`v“Z!bÄ«'“îd°â®¸yq>0¯î3÷YG¸ÃâáÀaõˆyŠ?zÊZæ—Cg­‰‘ʱÏW%h`N ±ìœdY¦Åò!Î5à8¢L!#€¡Œs,χHé*ºeFµØiÂòò̹«}£¹t_SÕw—ÚZ—òo`§i óë‚`ÅÕû7°`$®†±lvAÁ™ŠE¸¡ K%ðº:šæÝ7/yÕx(ŒB:Õù 'ð‚ë¼ÈS+FqDÓhßC¿³gåd€§"ºz¸—}j€¼³/*1‘^V~ð‘ëyÀ§†¸Æ³ 6‘¯«áª]sžå|œŸSø¼æ¤œSʲÂ'I—t…¬Pš)–õ|¾*äÃFØ(ëJJÊqcñŠ™“Šá2œ™“ÇvFòåb(¶ôjøÐÂç +µ¤ÈD4w]áÈ ˜Ñõ%í†w&ÈÀ語ï!Þ‰VQ5a8#¤°açòL4㹋0ó]ñNs©½Ø[/ÝoöV·±RԼΊ­VZl±õ„[¸xø/âŽ}¸wi½‰$Õ»‘õêÄF8ÖÝ¢®Ök^÷•×=F6Óˆšë4ÃxÈ¿wþK².Ù¹UˆæЉl!¥ÅO\"ÓŠRÊ¢êVOG¬N½nPã:cš®ÄÌýyŽ¡É\û.î;f¡ˆ)sqS³s=ãQŽ¥Gbt¿Ž`u€ÎãHl\{ŸE4A#"H„PŠÌ‘yslÁ^pbK¡ezÙuŸbþ†ùGRšfgý³âŒJ•+±²À1B™Q9A(‡‚Á¯Æ¨©àPªƒ+|Æ*e¡ V%!U•ÊpìæUæ +s›¡ÕœcàS‰U*åTL + W¬!¿DÕ 10NŒ™+Rºaä TX¨0B>7ŽÏŽ˜p[¨‰B=wãÎ&®Sn)×­1©Öï«õÞod³¬+-¦›p‡®]·|b‹caÉâ¢ö+*Ö×ë¹^(œ>GûåGÈBØUúsõc{…力Lኢw岑7 à ´¹´þ9âJ3ÙÎAS$¤ÁÀuÅôEF;Mp½–ÙF7lÉ Ù-{²ÛBºDKþ§s|W–4 ’Ô$yS´þ¢soÄdkng#šC±ù(kÇõ{àøxÕŸ4¾¾±‚ª §2Ûø©ð¶ÌÞð‘ÌYálæBæZæOßl%ÓB& ÓïvW% ì)ÏÏI™L:ûµxÆå⤤r†L0N|ÊðåÙüú³<¯g¤#g …°g½Ýl‰ý +Mµ[“ÿ?8˜§íõY‘í ƒЧã’CÖºÜKw<5q½VÔ²‚÷Ÿ¿¢þÇ~ùÆ6Q‡qüû»kïÚ붶·n½•.]×mm׎me[¡ìÝ¿¶ÁD¶Ì© ÈbÌHxa¢Q¢ ”Cð$úBe/Œ^èâ¿ð‚ßhÀY"1$Î7f&bºÎçz3QM|q¿»ÏïžþòÜóï~wyš[æö°ü`Кþ¼ÿìÑè£MÕ®½…ÑiÁž/­«e7øY3åVä/ßá,¦¨äR8Îã1®¦>ºöI4¨£? Uf—Ľ×ÃZÿUOïÁÕÏoƇÜgǸY’,6‘‰úÊtŠ³Y$Æ,vË&» Iœ™Ûd–d‘£E™Å·×ä‹—DNìtäl‰[Ý^»ß6²í’4'ÍK¼äÈW«5µ¤Ü¢NÉ¥,Ú¦¾¡î*Ó5}V;{µ~t…•Õ+ÍtN…GèTÔ‚R9µo>óª]ï0¯Úm,çcË_³ug’>wêçK/M´äú lˆŸURóݧÅôN¾µëÀÏùê»ÿM²q +\£äYÀKöK¯¾[@y¨ ¤\*É^è†ÆúAðIʧ†r«YÐØàШ%;u·ˆh8l$QòÕHq4]šÏilVˆ9 Nñn%û-CåÐþ +ÐA1$(öåÑE1u'€^Ê7y ØN÷íÈÉ2¨óŸAÏ­¿GGGGGGGGGGGGGGGGGGGçÿ80¨Ã^•˜‹pßÁÃHZfXr«Í.ç; -1•"xn½Ô¾ Ó–i¸6ŽÛÇÒ¾hŠ$Ìt[&Üzoß.˜bëCô»)f -µ¯Ïl\Po`dó2˜ª¦Óõkãš]9ߢæW²p}E$Ñ2Ûí5Q×¢'Bl¥Ô?Bm³„õ¿1nf‚`î ‹Bì¢]Æ™“¾÷XOyú¾J5—(͸ôÒ²°näÝjh[ KoèëG_B„fÞB<×À‡v¨8ô¥—`HebŒÊ¢¢+u˜D4’€[ü -O(0^ÿ‡^Úa_fÿÐNØ<­¯¥Ä;åmwMr=Þ4ˆ+ý?pýXpZ°ÛæBN%[OpÓÛÆ ô§?/ØT;­ºúv[ë€^^*¥Z€Š•>Z5óVçÝ+–ýЧrXv¢(^ÇN)ω‘·â¼,†uå~£²;ëF•SžðA -Ig¶#Í*IÛÖ(<—Jtt¤£ÊÏ))'BÇÉc]žÁ4ò­®ÎÆbQF"‚3•¹Zw/²`z…*2-o¦5ºVÒ³.oJÍh^™W™W2¯ö/š×—Yל{ ƒ(bydËÆbøº·]ue˜\_iÛé3Æ$h»¬®Í,N”*¸ý¾Íý…qñƒ+c`± Í,3¾ºwñ÷IãqÍ8íöpJ|eËC6M³bkáijGO ò‡OMÝ!o{ê. måBqawÉ"­#²A=®,£zI/Ý”#‹]d1¢+š,¶ÁSRMóŒ‹$)»=¡ª‘`€¦ðt[4B1JŠ ᱌KkÈÎ\ÞÊPbi³g`‚aÍM7~`L­Ü‡F¯|ß½)1H¼ ¹ÉÏ ˜žÊ||Z[O¥TªÔ&¶Í­ýl>¼Öµ¶¡ŸÒ4ªƒQ{š÷3•}0’8‹»Á¡E¨<Ó÷ñç!?Àž(êL&ŽìÌŸ1ad·,úàé" Ò*öû¨@[¤Ý°#¡ã“ÄqœÀ‚9T.ì'æz5Y)i ^ÞÅ™EyÇ’%;ð'ÑY{äTºgk}žkÖy•™ÊÖZ5£îïÃ{«{×ñ›ùù½ü~Œ·Þ{]¡ùíx6D¸‰P€tQÜÑ@V€o W$.Æ-ãYƒd¾2úF’زd¨ÈI¡"G0?ÎͲùêÐ3íÑtG¼T`“l÷Bà=94kíô¯ï™¡f}ø›3zG>5ó7“j -ë…óâ{–õ˜1 ;Pœõžï\àœ@|仸$çÝg˜3¡óyÙ=ÉL†.sd‰¢²’‡À³,-I¢eð~à‡™íWo9pÇ ˆC$ŒCùNyªhMãïÂ^ j.Í«ΑLj&57¼ƒ¥ç&À¸FàawRy`õQys€¦Áý”¡`Êÿ¥»Ìc£¸î8þÞÛc.ïzv×ÞcfÏÙ™ÙûðÚ»^;^'Ø\Ž¤^Ž(Ž «¡"6)8%U‘”&mMª¦µhÀ FÛ`B -` „E²ª%ª€¢¦«VŠÛ¦ ÷Íì©šì3ûžÖþã½ïïûý|µ>£¦AP@„}ßï°[XÂPsBI91¡rûèäÜ­+§` ¬=õÎôiåSåãÓ¿GÃpò6LÀ.¸F•·•·`çù‰cSʤ26uäì˜Gg–£ØÏôEcC`ªÐyž»äFÇ\ð köÆHë¢j>t‡c…/'‚VÁ²éˆ@Ò›¤»ˆ„ìÐip’Is7˧ùe¼ŽW#b*t ß5Ž’æu¬Š`ý)•%K™Äb•Ìôº<Œ  * ÊŒÇ\„È…&7]€Óï¥æ³`a÷ÓŠò½€$üÈ6³Í1uÎ@¥$aßÁì›…÷˜*}PƒåÁÓõÿzÅ®VO£Àþè¡=·=5¯í»È õ°F¹r3ð¸kÁöÙ³ú=²+6ûW -/¼x{ ³àûºï̧äKÞ{K§<¿µ™Òæ¬EÙcØ«i+ >*¤$çsÉ|†=c¿$¾#]3O³Óökâ5© - .ô§šCú‡ÈÏÜ2‰ö&€=¼,8‚ä"ã^mèöÙ†m¿µ½k›³TåE™î°ªºh¤R£J×Õ“ÃÅ ^¾ìä@ë¿J­%ö\¡8§v˜ÍBØåC:cEâWè1tGvÇ=E⚊Oô®(+âk4i°«³D<É)(«ý?}²§ßÛõcå³GÖ¾Þ=¢ÌõõÑÜhÏ_¥Ô±)eBù|âlýXW´FÊ5æ~g¨Zºî$LJÏ0܇5Ë€(øGa['÷G…Ü'‚S´p]øÌ=#z¡V¨ FÝ’`p“£ž7=¨zQ±Œ*Õ’e &(«ÇƒSAp»E2Éà2ñ[âNñˆ¨Å*›'’5È_æ#éöA74$]·kC籪ñ8-EØjUãñؽÒQR3Ö:6¾VMä©žs³ƒçœeÄÏ!œ ƒl3¨èß‹íÒ¬v§Þè ²ÑŽ¯wXõPÓ<ܬÊkº¡"ñ{ÚÎ8ìµ5Fz¡ê˜DYáhkï«?]ò슲³^ÛFÔø›þ/‚#¡%-Ê1Ź£ö4%?xâh[ЕTˆÙ'˜Žº'¤äDñúÏ÷s³ÿIÇê7(¶´ÐšÖ‹s7t%¬õh„©‚l >Mogv3»«þ"Þˆ.r]”CÒsôs¦!é=-9ÁMÙg -«êúêPݾx’Ww|Ü3…åöõvdß'ÛÂ’‰Öë}ÉF›NŸLR…>; û -ՀϙXZÂ<Ñèâ9¼7áæ½üJŒõõ…êFžMÇþ›‹ébM¹•Â$Üq°i±MùÔåéžÁÒu';݃Ïwñ`É9ãäJ3¥”–M˜ZX¼àʦñ…åZþÖ£²ûÝ/›·h×ÑàO¬¢Y(*‚¯ÂÀ¿/±ˆŠ@”Ì&2Ja$LÑƸ¾_±<;xzʦt‡ómxH0٫קÍH¶!WŸ¹Ãþ¸á+Å‘çƒví2U§ŒDPØÐñ½‰5/v¦^:¼4µâÊhÇ”YöÑD]æÃ'»ÓéuãÛçzª÷ÝjÑ¥O´Àð•Ý¿¸cã·¥Û©_ýÔ/®´‹åS¯¬]¹4ßtÿÆ'V¬Ü¶ïýθ Žë.—9Ës`Ï”ì-Üo¼¨ãÑaxáF¨ö"äƒ>„,‹xSB |U"h»hç‘ÃfFH’“Ñ–„™ªHž‹£¨ NB²`&ȈÕgéµ [[ô¼ut9N -8S333=xÉ—ŽËç¥ó² ýg °ê Á!" Ó麋'Qš¦Rx•L2õ Ùlò Ÿ´ò–S.™—^‹Vól˜ òb?ßÈçÃÙB\ââ 3970Feêüø]èæ’ ºÎ[·RM$âVŽã™d2‚ß®l&Áûd6SGêóédÂÅÐFŠJ\6å9¼¢H:“—Dœ\(S—LPóNš„ã~ÀAî$ì;Ïh?ÈïÌ£¼«iÞ$üóX`ӣؙ—Ìôp®Å³œs¿gKÚ×Í¿y·£jÅMÕm~c'ZœŒ™Ù)ÃPÒù_°éOa¯Ç¿Wÿ†s²ÿ%øu‚577¸B˜›Éfm1T®›U@„µF[†Ým˜›5½T6(˜+ÇDeк`Hƒ DxεpI†á««ùœ¿ ‰‹=I’…aì¤!çm†?kô4pW‹Û}ßœQ¦|{Žl(>‚µ…(K¢FöÞVÐÿžï0CY†´%k壳¿/ɱMv’eÒâY0;ü‰ò| õßþ%…ÁðA.ófg÷¯°î F £dÙεô/Ø_I·:œ’ "VQ Šxç¿L— lçÆß÷Îö}øëüyŸ/>Ʊç;qâ„$KP +Ù 6Œ¥LiC*ªŽ…NYZÇFéÖÁ -QTFCmÕ¡vŒt´”¡Q§uª¶yꦀÊÀÎÞ;; årŽ˯ü¼Ïûü« -\¯ÀÕ{ƒ±àAgØ0¯Ëé&YÊLrD½ -GßÀh`†w -ToØâžpÞ½ „²&’˜›ãJå’4Væn.N(MD £¬”V)'ùĘ<ŸYI©mªÿ·70< -mbMX”<èú`A¥Ä`#}}:› AfmÂÕ ßnO ~­òáâ]åN+s“ßZ‚MËZ:¢ú ¯"Á?ºE*f ˜¸¿iªÒX}¼Èâ.ø(Ü}q›ªz^OUÎaënFÐS¨'Þ¬‡~r¶Þ0!¤Æ`6!Cä!£Ô1¦küæ3Šu•FV³lG}ÏÅrâXxDkÈ,rà´A -ž8³éôöΕ¥ê”hþ{0nfÐÚÝ•spNéÅ‚ÿþÚzym¨g ™AK àIÔ™kü4|þäÖÚÒhe¦¶ôÂÊoZH¸(D¥o®²äõ6»6˜{¾Z9×° -êGR’¼.˜øüüzÔÞ\ÌÌ¡*õþÔôéèƒo‚ÄbT¸Lh/ÐûÀzùóÿÆwã§@'Ô6ü]¼+bDp‘Ó ûéýÒúˆöeýYêÔÅÄÅä,5›¼žú'UJ‡ÈX*º¼V/HÐØßo–R1# 4VÒšñöf-Ùž×vRÑ&:#…Ôx89Á"Ó(ÐE.èìöw©º Óš„õm´MÃù“»fdæ@;RÊ>ÈAPÜ*݃·”-à\>ãÓyDèbÐÍ«çEè6:ÑATêPMN :ôi¤JZDq6+%B¦@òªˆN†ŸØ¹˜—’ñd“ÝöÞ¡Ÿ|Þ\nzbÑ®Û]‚‘ª6)¤MI=†æJ+¸QØò|èHèbèBìo±¹˜l‰'>ÿYüXô•øÑßÆßÎÄßm™Þˆÿ©Å€GØ@j¯«–Ð.í”Éãc—¸]žçøÆT2¡bUþ`cB`qu¦Uen0ÁLºhmy­_•0 ,DNç²Ý/D`D–0×&Û«$Àrásßa¬¤L{VŒâ²ÚCÕlMR(ÖËŠ@ -¡[s4#–pëf•ÝX;kRŽá¼MçЩ ØFi¼íޥΠÄx,ÙF=™w4@âø5˜½÷òê0<þô¦¿¼ô‹{({CóŸá_Å jnp­0¼‘Ñm5o¶=IŒ“Ûu¦§ÌÖ Û=Ãm£~9¹\c:¯zÏ|Eu“úÄHæIŠf9œ¢1ŠÆ5¨áïÅ5.×:·…xNóK ¦éÔkÝ‚7s‰†´ì^/~ƒ‘¥÷zªî6K¨áUý[ªåkyá„£«fâˆÁ Ô¶€C´š•DuÎë8µÝäBCtS5Ê. mXÈSåèËÎæ=PÖAPMqxÙèYì‘+åïÒo>½q*/„ÿúÒÙ÷ÿõÖ+9ŸÖ:SÛð£¿{í³+ß\¯{êÏÐuæ¬ï_ß¼ìÑÔÊ~4ïBà ò²/d³4$©::ŒÄñà?®ç;\œW‹;gÚÇ¥µÐ«–ôõ8æ<'C%Î*½ª)©eZõüÊՔиaÚ&Tq'4ReÑ®²Ë3bÕÊÄLy¸„Ì„®™+eä©ÒBc›AÊÍÉŽJ”k#¼z°•_I᲌æê@˜ˆ]ò5W§«üÄ[‚­ÊôWg²O~®ªÎàÄèòãÿè.ûØ6Î:Žßs/>û|±Ï/ç³ÏOì³ïÎ×ñ»c;Ž_^›¤IÚôu隦i·¶j4ƒV4„¶NüÑ–¢v´Hk‹ ­ÆØ4ú2±FµT¡nBth* ÑNbmž;'iÇË?ÏŸó?Ï÷ùþ~ßϯbAüRF‰Ÿ¿±ïôÕõ¥o¨kãíA6›Ó~ýÌÈ'ù >ö%/ãyãd¨·uf(S`ËsƉ׾;_\ÕÇf„¶Á¹Ûj}vn»êÛ»ÕnüCÿüú~Dê€À‹jèe\;¾mÏ{ƒÄäŠh­ôÄOÛ£’›iÍ~ûù?=¢ t±^O´MzÈÉ}qæ¯Óùá}oá«_½È¯ lÎaçôÀ`üSApÑÎe£9\nÀèpGþÍIŠØ€IN5`V’—ÚnRN¥’²è!lZŽäx7¦õðt.0Šœ ‰f‹-pZ*Kæíò¨Î­¯[-M`Ë-ö^ˆ›Ôƒ®Á*uNM‚‰€BP´°àh±«Zv_lª= „f˜[´Œõ‹Anmx×[«N¾¥ý«¡mx#ÿÀ#ßé’òcÆêM…Þ͇KŒ•ÐÙõ81_í p¥EµGè…ãÃñú³Ã{ŒÏ<ª3²µÇÁ‘Ù/íö¾ÝU63 Õ=îB::ãLë ™u7X¨JŠ,IA‰[#Ààa(E97 Uûƒ´ª0šEœ’ó¥E¥ëœÛ¬ôDiSG¾5‡ÓFcÜ¢ÌfÔp·QËç¼÷ʺƒ°§-FŠyð¥c¿XoOuw§ÚëO=Vu¸sN¾zyÚñʬ!RåžnëëÓ±\ï %IWÔÕÙÊÒö…Â5»u&€ª±;5‡U±÷ô½CÊÒ^þþ4ÿ‘ò‰B“RBJÄÊR%6åŸÊí”Íã™X<ÞéõÇeÞ/Çõø:o,ïçó9>çÏçsr<†5iZÆEÂÚ°r’HÀjEcø<úN´Ê9\+´nÓžÒæ5B«ULï9ýùlUr^›GÍÐ4P­ÓÌè7‹s¿š¾dE³€&¿lk‚æDxëæ]OsíÓvNL‰\=- —Ûdé>å¨Õœ ­ÁÐÜ@@†Cª47IÔè7¹­;—öAÏæÃí´|„O×À©ÝÏþ´ëâC“F¿ìŒÃøE12bÄ ]XG|´2ã0º)ÇÝó·Â+°„ôªWÊ¿ð$-B°.§ß2 ¢8Š íUËO_ÆlT—xŒèÇ  )ÉË^#kNÈòzH‚DLùè57K¦ƒ‚–ƒ,û Æï·Nå~»”+…%³¬˜îsú»]±Ðþ7i¢¾Õ€ÐѹŽx·/´Âf‹)uÖgrS‘†¦'bf+/bØ':,‡Jî‘^pá«“«ë8×ÅG'ˆF%Ý“o‚;vu4Ý@¬Žnq,NÖ08!)J ¶Ir¥»$y¤Ç%™•¨5èH‡Ýý#áŠ>2ܯWÊi%ì§HvpÂç. ö…žhTpÓãõ®d³Æ,§¬d3ÓWÓøpúX©· éåJ¶÷ ~ULJu´s~ˆôi#YÊReuÖê9{oí"y–_þlu º©ãÜMî¦ÅÂ"0/2^sódÀôt>gƒÕÔï#9äV`>AþW÷iÎhôn-íÄ&Ä6-Íó®aíUŠÂwÛÙ-ñ£•™§ÊÑÆZ£{S…Wwõêj¹s‹Ñ1SòÇëÞ›î˜2:EÚ׺ §F3$%[×þ̓C‰ÞUJÏ×FO³+‹vÚËëÀ˳™µ©PÅÀ&×¢È< ‚ÇkÛûË ×Çj@4ûºWâOÄ°"VÂÎëS!q\ĺN»PDc\!ZÌÆ1JmÀ˜7ÍX”Xƒ’$#Ö/˜WØt¥;“V¡$è¢×ì47],Ä$¦D—j¶D†!º¹óe¯–Éis¹ÃLΊoçB…´ ·Ûx–:Ÿ)?5M6Ã@k ŠmÁã­­Eµèôyg¨KÕWØ<óõËûQ5©—û>gx¾Ðÿ›ù çl7 gm#ÄüX -MkQ0à°í¹òŽñº‹¯ÎØå&c䑾"ææ­½«o`Rbª’"Ž´?s1s%ó;üÃÌÇíôx;¨ÚÕ~{?¶ -”°«-AÁO„mB.¬®ˆ%üv‚äBA¦˜£ƒ4׳“\6MÍŠz„-Xk8‘iÓv¬™¶3µý/a=E°DЋº¶¥²´Ï‹„t§Z˜3‹‡Ç>¿«K`l†AŠû˜ˆéB`c©%SÊ÷Õ¯ÉÊ^ÔM‘ÐÀ/&¯U½hH³+âؤœóÓ_9°ÿß\Wmlg¿çî|o~;ß}—óÏwŽí\ìø5®cÇnÜ6MBßÖÖ¤í<^Zh *4¥¤«`PMÓRø‰¶Û$´ 6!ñu´U+!TW S'Ö2M™xQÇ4¶h˜@Sc—ÿÙÉÖòÁ÷üýÜcÉÏÿå÷òÝoïŽM~ôõ鎶wf¢ø™#OÜDèO_áEu Œ^|(½û½óß$ÆEÏÀf‘¤ûn£¤&ÍDՃ艭‘ü;{eŽc!Ù!Ï6v¦±£Ae 6rPÏúÚâЗ;JŽŽùo"ÕßoÛ’.FOë(ªçt\ÿ±Î'eÈê´ŠÔ”˜ìïÉßK¿„Ì.5»tÔj:9Ýygielo Òcžûš­3Î*w­ýºÄÓS‚kò¶4ÙGkñžØŠ}iw³#šL~7úÝG\¤) ²¢Âñ?Û{°ž±G&æjúž-¸ÙëµÃ÷VðßÃ,ç±"¦ˆ‰(„ÛÞŠ÷°çˆ÷”û”猇³™œ– à~sýðW› ¿5¨h}¯5š©p{ç| :ïR¦àÅ8þ±—#]F± Ю⠻àWÑê=W'˜M,—DÉaë*úwƒÇ’ÇüÏû¯û ÿ6Œ†‹ºùוæÐ~€…ó­æœ²ˆOx»®¾¯¨¾ÝD­@´ÒÝR•ßF¼Z_ ŸÚ€5y§©l&‚¢+‚Ñ®fòFak`à‹X·×Cƒ,Ê }`¹(Æk-k OªAÇЗM99±°}¦0vì›'ž?Uú#ð”B’µñ»¿÷Ô­‹?¨]ðy—ŠâhôxýØôæÁ]ñÆæ§÷;;À¹;ï~~ÃÁ=ÕG§&O<;n à!®AoöA]FÉEV3A6€Â.ᕈE5Ü&7Ioô»œéîoDL̳RXiÒØ°¥eõu¹ÞRøvk Bþ6<°±öüëªòŠ:¶Ô®Aæ@C³c„Ô½kY¦}ȶR Ö½2ta·ñpv ÷*ý%K ŸØ0?(u¹Xek}Îë"žj_ß‘ÜjÅC‘‰ê‘ÊñÇÊŹ¥ÊäÒû§·„{+Ä-àÅ–Æ~ÞصÞnì£÷Gé£Æ)ú9ú9ƒ5¼†×®ªù¢±DUKEc¸(Q“Îöi} çXWʇQÀ“MwšÖ’\ÖŸNÇy?v9ƒ¡l<áðBf¨k6k .à~YÞ1Ãj5€­Ê” Xý8I$H ôw¬Aô -ØüBWþ 0z®CèN›°uÔE%'Q_ÉRÕÅøñMñDmÚ’¨<\Wg]øøÈ#ŸÙ¹Ë -M¡ˆŸ´OÛ;†úÒxÿÎœËl7Æ‹„æ÷K¬ÅR‹'këgqzw8@k“â³›Ä"Ã^h<–t'ƒew98ËÌð3y¯¾7r˜9Ä -’ë'Ù“¡Ç# ìBèLäì$34ò˜‘C4=-D"z„fCŒ«Ï²x‘@ZÀIeœ¡Y6„ WÑê•I9BÇpÂË“gc¤öæüª"*oÍ·•.äßp”¸-¯h+¦¶¶8 AnÄå°C›Ý¤8žŠFNC—J8;èêpŠuß¼ä•ã¡Òò)»óW†c9Óy5>Ø—# J²x]kßE0§Äd€% ƒ¬jçDŸÀ—÷FÊèyÕÁ{﻾ù©"¦ñt‚Nä*ÁJ¸bV-Š¥ãg$6§X¶uRZØ$æ’,ãe¢LR…’šËU„¡\X k%U -BI|¬QÓB!\‚CCÓ‚e™ÖP®TÃÉÔ‚^%Á|®€VMò”¡¸kƒù°®.i7¼“A -~@VÔ\hUš5„› v.OF(1š½1 v’ù¿ÜœoÏõâùÕf/ºí0Eí„×h¾ÕJñ-ÚÉz Ì-\'‚üÏ9{ ÝÅõ$’Do ëÕ%èl•áXw‹¸Z«zÝW^òh™t§/ªw®“åÁÿÑù§]¼s+͢㙼­Ä_ÂS’TÌ EâIZM‡"8zIÛ/ÇUJ×]‰ÉÕ÷X†"ñlûÏ.Ö¿ŸJÑPÄ>[ŸÛÔìÜAOz¤£©¡¹VG:€ ç±QÄ7®½C##ÄBÈƳxNß0kÎZ³±ùйຢ]Ñ_¦þ™&è)ÿ?)“JåX‰c(®DÉ Ç•BÁ MÁÕ(ÙØå<᳡\âʱ`EàìŠP‚c稨+ÔmŠ”³BŒ‚O9V.—ì˜ä(¦PE~¨j|`”À(=[ TMËå‰0W¦¸ 9|jÔ9; ÂyGBÕóµìåM§NÙùl·zؘ\[•k½§³‘ÉЮŸj -‹S»nùøCCH;E]«(_[¯çz¡÷9¼6Q~„"ÈÑFåµ9ƒúѽÂwSY$œŠ¢7¥’–Õóƒ ´¹8þbŠ“™Î]6B`‹¼¨ûŒáΆSï^¯¦·ç5$FÄÙÌ–‡3ÛBª@h™Mþ·slW×4WqS´þœuw(‰ZÓÜÖF4b3QZŒ×: â€ñYЪ?m|u_¢9Y´ÓÛØñð¶ôžðáôîLúBúZú/ißT%S\:ÓïvWä)ËN ét*ͺ•>xÇdã¸$²šˆQV|\óåèÜú»+a§%$ŒÓÐBŽf½Ýlñk˜j·Æþpœ‚l¯ÏŠh)Ç}<.Yt?`­Ó½àäÝ™š¸†^,(Îû¯_Þ~Í@¢mû;/úÜ×G¾0:¤ -|‹";×­b-ç Äx>]o„»™NUpÜ0\{õ7oüväì—]h[eÇÿçœäœä¤m’Ó´IÓŒ&ÍÚ|u¦[“~&3ëGÚ¤mú¹u³-µhuuýp›+C:è… è˜v**ób§ÛÅб ŠìbÞ(LÄ 2°ÞHÄÒÖçôœ® àÅyÏù½çÉËó¾ÏÇyÏË“¸¿†þ€T"{%ÂJý¡ï`ˆòg…„÷#vö –5 H Ë°’(š,#$Ëè”I ,c1‰ c²š¬¼(²F¶Á(JKƒ“à]ƒ/!\X!eË{4avy¬>Ëhû%ñ²¸$r¢­PÎÖ\Öq‡*%§cÙ2÷5UWëUÓça¹²—óGÏxرñ¤žî¹ð(Ý9¡”NåÌg ªÂÕ;wÕD¢µuõhD »‘@3ZÛ’í©tg2=½}ýƒ{÷ í?ðØðÈ(ÆþÎàÇŸlíÔ¿Ùt¸J}n’D꽨D@õ?…½Â CvvÏc§ÝwÉÚÍq£œtý¨RcíºOw‡HwQÑ]û~« ·ÏÝ>§¾¡‡mÜ–<¥®ÉA¢žQ#–èRdž¤íòŽÐiÄZUfQ€Œ*s¤1¢Ê:’T™'ùB²«³'Ýœœž8º£vz|æaF¤lu¢i"„AÊí4&pýÔ?c˜¢ y ÖÒ›%y^éŸê¬gG‡)®×!gÀBW Üå?£¸™·söí_?3Ç~a¬†õßçãÃëÏë¯~]}Ò°1ŠF4có–8ZÐÖÞ±-ÑÙÕ݃dßöýƒ;w =´ûá=Ã#ý+‡ïpÿ þÍaÀÍ”d¢Ù‡ +µøщÂn¨¡îÇ3˜Æ饤he…î(A)iP•ÑŒ£'£¹‡4Çp€4g4Í•ïÿþ@ùÂù…óÙgó`ƒ¿¯† Od-òifÙLe:4Y ©LÝ 3­(hÈÊòÌÊÈ +Ú©N­èC/Í! RU'1Ž£è§y/Ža‚ªwäžZÕ¤wˆä1ÜÛÒ?ÕÉTÇx‡)¯³P+`££ o ŸRÞlõÙ̺¿|uÔÚü ³›2¿/Äöd®W^þ.’~$u&÷u‰Þ˜Wïø]€¼Ž endstream endobj -26 0 obj +29 0 obj << /Type /FontDescriptor /Ascent 750 @@ -2110,182 +2285,165 @@ /Descent -250 /Flags 262178 /FontBBox [-168 -218 1000 935] -/FontName /FLKOKC+Times-Bold +/FontName /ELCOMG+Times-Bold /ItalicAngle 0 /StemV 133 /XHeight 461 /StemH 139 -/FontFile2 27 0 R +/FontFile2 30 0 R >> endobj -27 0 obj +30 0 obj << /Filter /FlateDecode -/Length 43066 -/Length1 249972 +/Length 43255 +/Length1 250188 >> stream -H‰¼W pTåþÎ}$$<ŒDaIxÜõD²KïÒ%ìFÒ CHÁÝh!K,1!¤@œÁÒj´]h€Z­B+j©6r‹)„™â ÅI©TAjq¬VF¤jjA,´Hn¿{7Fp‡é8ÿùÏ9÷<¾ó߀þüÒ`,l¨Y¢=ÒëV@|ÔÎ,¯Öj¹£êÁ Ô½]¾¼ÑxþÀ£oRnôª*ʃîž$m¢ÿ˜ªÊh#’´¹Üÿž{_Uý¢ÚPÞÂ÷¸?G>½¨¦©êñ3O·A]ú ¬‰UF+Žþü£Û¡šJÿ‰1*úפMúã~x¬¶qåºy¯-úiÀ€µÕßihT=òšÖÓ¾²¦®<*Kî…º3FûúÚèÊú¾¥d¼Á´µuËVVîºø(Õ jÀ³$Z[yhn1ÔWYdÕ×54B¥§úêŸÿúe•õ#Îþªj¥¤¼Q¿¬®þ¥K'Î@]ÂþU VîGÙ§ìÓ›åþ¯Ã`ò0²GÝŽ À>J>îpW©}I¯…·ëû-5—UúÌÏxTã~äâk>Ocò%Dý~¤‹—–ùX S’0ú2j9þ%w  -­øk”TÔ"@o?Æ1Þ`ÌE¼Xlw¡ËG ¶ÑVŒûí ŸËluxëd(åVìÆ;Rcw`ò±Ïá¨L³·ÑÏÃL3´lV1A|·1r) ‚ŸÄV–&û»ƒ&3ßL`]Ï`';¸(ã¤IÍW£%Ÿô:Þ~’o—Ø/ؘg$ò+‚µ¤õØ„§° è’)–Vûn{™½ YÌÃ÷ðlÄøþ#ÙâWÆ*uÊvÖ69$'ö]Çí¿Úÿ&*#MŒ'0b!ÌbÏ‚ËH‰Õ¼ÄY boàmÒ üS4I—Ì”É<^.7É­¤"ö–eò$é]9¥°)EQÚÔBuƒ­Y¯7Ù7ØãíI¤WÙƒJä¥ ¸ÓÜÉÝE4c¸›™ïC3$®-ØÂ)¶áeVð!Îà,Îá">UtIfiDÈ”‘œÊ™Hš$)d%E2‹sš+w°¢RY ²Z6ÈeéEÙ'òžœ’³rÑ­RWzsj…J±R¢¬R6’v(GÔÕ³ÚP-[ hoiïëú$½TX.)%ù7—>èjíj³5{–Ýbo¶Ø§‘Šþ‡Ûù,duì¡«±‘6’¶Ë_ð$ïä9ÚËw^!Ä_ˆê»œÞû¤ðŒu²Ç ì/•'È™h†;Ñ<™&AvWB -KÏF½¬U¤yL¶ù§dOV{¼œ^“c¤¿ÉIv}N.²ïë”Ò,·ç;•ï*«IÍÊ#`„<± aI™² -–Ç⡲ Ãí€T¿ÃD½ÀfDWÅ<\•aCÖ 3èÚÔ¬P´Âš]3½ÞˆßgÉŒrs¡3ߺ&»ûqç9ƒ®sÂÌí÷-vêÇš>fÅšö–9Rô®°¥F#–Ræä¸6Ûh­÷œð|¶ýT -­½Ìh)YÑÊx¡Y33±-svѵÜ• «4G–4GE¸µ'º¨4CŽ¦¬Ú°RÌ|3¯.#æ˜Þ‘È™Ñ`ÄÂìðŽAAîÆïÛí¹wŠ— ìöO÷OwÖ)^Ͻ‰õï÷%ô¯ïííúí?ƵhN.âd2 Y¦e”»ILÖ:ÙùªœŒxùdºñv¹ØJ™QO»™OYzVšiÄ?ev~p¥&Ú­IÊJûŽèŒ³çDÐÞ-·ãF_Q;Rf‡-Òi»¹Á!»‘uÁ|šG:ÇaqOss“ŠQ^J£|F«.pæfÄxaEÜ(0b¸–å®4TÆ#9l§$¼˜ßß -{­@$³G¬ŒDnfœl'ŽæƉG¡º;Bµ.ÑÉç+"D#f‡‹ÃÖê`¦F ÏÏÞÙak/QŒDèåï©”ëªÅžîšG³fÿ( -9‰(%ŒÁ‘x<±3½ÖÞx<3}»àóŠ@·¢n•vY=Û5­6½™ŽÂôš^– 2Õ¯OÇÛŽÜ/Gxìåcµc]„ÇEO¸„'^“¾áɬy’ƒpÞׇðÍW <åËžz9·°Ú©.ÂÓ¾"„¿q5® -áé_Œp>kžî <ãëC8x‰_Â$tQèWÓ5ºkt¿)ŸýÓýßÈÖ¤<þíÛýóéò³Øª-•4 öþã5¥p1éYT+yx¶ùäêë´uÈ¥ÿVîKÝ5Ï>N½c»Ÿl’‡‘³È~òänÝxr®“ÃͳšÇ]Úä¥hÕ;þGzÕ@YUUáýþßÆq@t€ùs&@b†A}LãÈ̈”:âð#àÀ(‚”/*+~B" ) #P)ƒ,°!($þš~45†2SfÅ¢µZ¹âöí}Ï=sçÝwïÅš·¾ûí{ξûì³Ï>ç졲H•€',‡ÏP üœÀ¾† -ñNƒ\…¾²Øè’þ:¥WÇïáÝŒþ*–˜G™’‹Ð~=Æ_Ÿ7‚ëÂϊϘ»Ñ!>¦¨4´†®WË¡S sKQ âP½U–ŒØðX%2Ï曢|Ã~V»ûÄpËl;4˜ý´\Š•8$þ•É¼ÍùwÏÅŒ›bþÙ!þ% ¡}KGJù–Ò>N¢Ùà{Õº-¥šp#MãyEþM¥ Ä‘c¶1h7SÞ ÄϘ[3ÖmÀ|?9¼Áh ] \ôE×Áv3VïQµÛhH´ŒZ1¿zåÓ|ØÝ&ùÐl Ö5>[géi5ßk+ç¨+måñ½ñ>ä@¯¨­µ’cð >,RkPhº¸%r.G7s+Í„í{ä|[—ÙrÑd€óÏöAÐH÷YëeAåJ;°8 œU~ñh4Û(‡u"MˆKÒ8Éy »£8Gy}9G` e:cÿyœç’kæÞ©C<—ÕÀØ(Ñ -}9§yßpîʾ1móž˜À¶-æ<ç9rœ3p]Ù“/ÉÞã<.÷ckütV2ï—“ñ@!e#[ØWð>“©W¬PÍûž÷ï}þŽ÷?ÇØΡGר=—r²“ódx:³ïßžlì·b§cØdîoæðr“ñží6¦ÛÏ%ÉQµî§|NY{Й[ÜÆù%míÈéGÌ\Cžáÿ/µt^X±Ó1U¹Ës—8á¼Ç;Ÿ­œçù,ã£ÏQit+-ƒÍ=ÐgñPp)l.á>|Ëy\ôL¡BôÇŠi~´ºÅ”ý¿v'bœ1îxø5í}ðÞ ¿W‚kÐÖmÍà>Àx´ñwMÐoç‚s0Ö4ÖŒq˜oïiŽ%çNàµvQm “’œãèË Ö#Fõ´º;®=âØ®pÖk+þ[ä[ôÃÞ ¶ë <>àǶ2¼ñxŒŠ!‹‡œE£wSR¤êrqy40Hbž•°Ñ„oj¢qÊ‹vP#Þy¿$#ag/%x¯a†Íddͽ!sâ1ùl*EüKñ×àC¨•*°ÎדŸ=ˆÝ&ÆzÁáÆþX3ÖýMÊW€“˜ËjÄsJô¸iƒ}å5‚~5ûÄw„øŠ6žâ; -z¹|¿sÝzºæXyÜíC¹¡IÈßõ°³Þ´…»%+R û)Ñ¥r ú•øžÏˆ²È9j{s:ú&"¿ Ã¿€üÉÆg€MÈÓ´5S!ß¡ Ænuïìæ»'Xy±œïÜ+õr·4S>ëÉý»‚SÚ_|9ÍŽ¢Ù¼'äŒC%‰ÉØ«ª–g¨$g^϶^¯›gU»pmÂ{+ü ll—=&µsmYÝmyà<´å±¾u&sm¡Î—9‡³QAbą̀J Bí³{t|„Z [/šw•Ôê µŸk—x.õ8ÿù~ç;Úv~We:?³†_ÿ2}cÝt{6;Öwe=Æë¾/2žË¶y˜w îhž£ý{®Ûl»·Ô=çÍ—x¯ñ}Äu¡-.¶»Ìáso¬Ëfµ>¯ÚâÙƒ{ÞmÆÁ4ÞǹÅù‘Î~ëë_][(Î|Ò@ź¦pá²L÷¥³G>Ô½Ù]OëûÓ­úÛÆï[۽˵Û;¶ñ$Ï¢¹àf̧ñÚIg<ê¦ÌœžO8»ÂSÀËèÖðžÀðô~Uõ\· Šß ÈT¿¨8Y5ovæ³yvãLæû‰Ïi³ž–;HØÚ»–®ÖÃ]Æg:ßeü½fÜc|žó$g³u_¤1ße|¦ãkâ³ÜžÃ'yÑ›ïif¬Å3VMÏÿsšë#{Ö¬Yšä}½ºŸã^¾_br1¬bÉûÖ¼ GZs°î5=ÜÃòÎÿ'š¨|Q¾ê¹Yïw(Û·qM`œŒ¥†Äö MfÈÌ»;¼’†J R¿À.ã 0Kj’cF›BWý\[¸äRvw®Gq6ܥΖ·]jÛ¸}/Û÷ÇóRó6c^Z|Ÿõy„øñúø±•¿Ö:r®Yq¶ÖĪU¹6•º”kPÔœà…|ƨZµ˜kN©3Qcªú’ÿÛĬêÊ®¥6õ@te£ÉŽ1Ú¢¯)`.0ÇèŠ>`tñ™[G-&Œ6;¤æõ@¼•ZÈ‹x'ЪÑÅà¹(Ü’iŸ£FdŒÑ©Çxç4ºæ܈þ¾Î¸a,T¼\㛩Рº8¦^@Û»¸€x0Öj£+6þ©¸[q´â¢ç×ísŽµ†—²Žñ“”¨ž2ÚOµ -·]‰×s]z•Q‹àq£­× - L£‹á7ïÄRjI¼E-Y˜+#|JNbüŽîygÌAä¼`ªq>:Ó8ú°"“±¥TˈÏ4‘hBÝ¿Í8œv˜ À¼OáST+p®m“‚¼ËãÿíÎa b‘iž±ÍT=þáà#ðãµZç‹­f= u:¤6Vg€ß:úAÍÕšïiœWØ¡¸SAË~y©Ðk÷?ÂZ'à*›ìWkýþoÁ9´D%ïyFÚlPx"-U¿²äy#¤(E¨ŸpPZCøÐvBZÐsøæÑóDþ¤?`= ã•nÊ×™ûøõ·1 -ݘ+ÌÈ7ÛÅz¾ù=Ä‹ê‹ ´à‘Ùþèp{Xé[íè±åo\ÛÕ¤ýÉ -€s ˆ†`^åD7Å)˜OsàC\<Œ *º\dÿ_Ø&_ädÔÊUÜ›úØZ¯úfÔ¿RñUú¢”põ&[ž½t‚”þ’õŒÀ -Ï7¹~XíîqÌ9gž±ýgÅ2WÅÀ[»ŠÍ•*}±rîÚý´ÔŸøz’¯¥*ôÕ.R\,Ï«}´K´4J}mr´”yhDKƒiˆð54ÔU{˜£å£¶‡;ZÊ=´+´4‚*•4ÒU{”£¥ÊÃöh-]K× 'ézWí1Ž–jÛs´Ôxhß ¥ZœŽ¦4ÖU»Nq½<<ìòï&Å·Ð8º™>.òxWí Š'Êó>¶?©¥[é6%ÝîªÝ¨¥;h’’îtÕnRça{¡£e‘‡öCZZLK”ôyWíVÅKåù»üû¢â/Ó—èaúŠÈ_uÕ^¦x¹’Ê9¡Ç“ÇV;ß'ô}r>ÇØÿQvAœÃ“ÿÆV¢ì’|êX¬ç…P’< ût ÀË°±ñzâMÄAÄ{ˆó‰m8ζ0Ejy5Mô¨¤È}b)byb•°RÇñfT)áЧa}‰µ¦ŒÃ’ªT0¥HK²²4± ±l¨he• ·ãÕMYåµ#XNõz¦À\­|pëª>ó|êrœkˆõ‰ BE+‡›úÊGšÊÇF°¡ê6¢Ð£ýˆØ˜Ø„Ø4Ôµ×D‡U™Á&ªO`SÕó6Se¶iNÚŒßõcbKb êÍÉ[‡Wµ×<‡-UÉwØJ•ÅÁ³ƒO+ö½–Ø&äZ³ÌaUV8¼N•ÕÁÓ„Ïuì{±ñzêmÉ;„Wµ×z‡íTÙì°½*[LÒöì{#±cȵ¦ð¯£*ÛvRe‡éLÚ‰}»»»oâÕÎä=ˆ}ÃJag¸ì‘ï2Ý”ï`wÕ˜¤Ý9NOb/bïPÑÊæ—òc¦·òßE°ê¯;ìK¡G»™ØØŸ8 Ôµ×›û©r*‚ýUÿs¨þ®Ã[T9ãp …[øƒ‰ƒ¨ $¿•8ŒxqLX©ã|àpˆ*çÞJaëo Qk>v8T• féPVþ„x;qx¨hå%s»ò/°6ò¯#8BõËæÒçNâHâ¨P)¬”`u)䞥¼DG«^Æá -£9ÚXâ8âxâ]¡®½*8§J•ŽW½zïR½¶Ã ªÔ3w“NàwÝKœHœD¼‡Wï&¿8=¬ÔëŸãMÌ$å-"8YõÖæ>ÒÉg -q*ñþPÑʶfªòöæ~å"8Mõ®§S˜ÆÑ Î >HÌ uíÕÓá UúFðAÕD0OõÁgª2ÔÌ"ÉïšMœC|ˆú,ò¹áUí5ÜáUF:|X•±f.éÃì;8?äZ3Áá|U&:|D•)fé#컸ˆH0 Ø,¯j¯é©’çðQUfc‡ >²ïcÄ%!ךy—¨’ïp©*‹ƒ]Ÿ¥ìûSârâ -â㼺Œü ⺰RGXf–+_ì`Ž¯ŽàJÕ×›'HWrœUÄÕÄ5¡¢•›±ûò-fòm\«úv‡ë(¬åh뉈‰›B]{íp¸A•ܨú®nR}o!v)¸²Ñ ±öhÁ•yh7#z!6!_ˆv+¢?â)äKÐþ1± ùr´Ý;ïBÛñ m;ÄJDSäyh;!Ö Z"Ÿƒvb;b=ò³h¿Ãã|‹Y öÚà´Žï-(@쇳 V±ÀU»jà+‚Uªz¾áþWÒõ N´ƒÑëÃt¾%ûÐëÂ{&|Â_2᛽‘nçÚà=]àž¦W w7ó!âóü`4æKõÄ|Œ<8Áá÷+‰¹ˆç.¬!F°r v@D!…ÿ-…û›úrœ0<Ü/ïFæÛÃÿîáìë=‹„ÿ»‡Ó«÷ ž'óàáþy¸?ÎJöï׬,ÞËÈ?@‹g+ûìíAŽçÂû=òšh÷#?Ÿ–Æó“†×Kã¹McÕOcÅKcÝOãýHcuJc-N/C~ÈñKˆ­È¢ÅZ›Æó“~ùË®oÐç9䯠ÅûþƘ ž‡ œUs’Á 'S9æ*ƒ9Éàì’©„î&ƒ9É`2U‘Ã¥dpvÈऑÁóy-ÞÅÌ_8džF‹ß›ÁýÏ`/Î`ž2G\@œÉ7>Þ}Ï‚³©ß9Î>N™>æËÇÙÛǮ翀ÀsäïDŽùô÷ Æ"v#Ç»ïãYð±ûûc ð÷×Çwû˜_÷ÉÇûëc/ó1¿>î“9æÆÿ>À9vEÏŽ}Ó 9ö2÷Ÿãþ 9v ÿôÿÙ¯ -0)Ž&ZÝL³{¸»»Ëáîp¸»»»»»K!!!H‚MÐMÐà÷„¿n®®¿Ý›½›î¹ÿË~lÓõJÞÖ»š]zfÃ}Ü—0Æ;†Ï"^sÏ5ŒW"Þ…ˆ¾øýö¬AÄ»ºçîeãÝÙƒŸ«gÆx=Ì¿ ïžUoDÄï¬??/Ÿ^<=øÙyñYÙ+0NŠ1~‡½ø¼â Á8%Æøùyžbœã´ˆx-¼øùyñ)Ì‹Ÿ…¯™Ï0o/Œñzxñšyñÿ¯Ÿ½¨íÅÿÞ{¸/`ücün‡à9‚¿(Cð³Á³3ϤŠ·¡ó<âáqéÒ‹K /aa<¿÷ÿW_Ü´ñ)JD˜˜0 ÏŒø}£YRH/Ï|x¿ šYðÙ€fÉDù,„Y ³AðL›¢\„¹ ßø‚eF|z£Y -H¯Ï|E xfÁ'!š¥$åKËLé•£Z™©(½ÊT«*3Õ¤Wƒjµd&Lzu¨V°>až«Û¢&„M ñ·[Ð̈ÏZ4K+éù?oýW_óá3kÐÌÒ"gé"½nÒë!½^ÒëCïïGØŸpÏUHÑ¡„ø+.hf‘³Œ’ÞžùÆAðÌ2"g™Bùi„Ó g@ðL;“¢9„s çAðÌ8"gY$½%<ó-ƒà™e9Dβ’ò«dfµôÖPm­Ì¬“Þzªm™ÒÛDµÍ2³Ez[©¶p;áž«»“¢]„» ÷@ð̸"gÙ/½ƒ<ó†à™åDÎr\t]EwÑCô}E1À8b3N=j7N’=‚x =ßÊ ÜŒKƲËÆU²/¡ç[¹b\ƒÅP1LŒ#Å1NŒÅ$1UL3Ä,1[Ì ÄB±X,1îŒGdïÇdï!>@Ï·òÈx, -‰Â¢¨%E)QF”5öŒCd÷Ãd÷!@Ï·r÷)ãŒqŽìiã¬qžì)Ä3èùVÎçEQITUE5QS„‰Ú¢®¨'ŠÆ¢‰h&š‹V¢h+Ú‹Æuã¦q›ì ã–q‡ìuÄ›èùVnwn Ëñ9…B¥pgð„4 ÅŸ-ø‹¤oi€ë'Á 9â,YIp'þR˜6¥iS™6-¤C›žêQWÜqg¢8³i³˜6«i³Av´9¢yÿ‹õbù¯¸àßÎøB"HŒ¹ä¸“BšÞ•“0îü¸ øÔ -J¯aa(B^QÜ¡¸‹ùð‹K¯aÉŠ¹ ·‰!jyL›÷ÿpõ^¬ëÅÒµâ™6u”§ë+n·0O¯ð—Ï…x>gX<¿’á9–B¾'%Þ_Sã™~M÷ÑŒxÍŒwά±¬>a6š7;Þ§sÊ“Í­å:†ðS;?žØåù¬sùžôî¯PÂbx)÷R®ª•¶dʸ¨VÖ’)ç¢ZyéUpQ%rU4m%¿\e×ÔªÄX­ªY­šôª¨ÖЬVSzµ4w´ÂkC¨  !ԋ¨¯Q­‘iSÔwh*«Í4ÏÖ‚°%´ÒÜ9Ðjcµfµ¶rí\›­½i;¸Ößu$ì+j-™.¦íêŠZ7éu…ÙzøE=]VëåõÁÝÛEµ¾–L?Õú;fР6дC` †¡0 -FÃ0Œ‡Ã s ŒTVë˜9NÃlã 'ÀD˜“aŠ†žÑ¯©Ò›F8Ý´3,Ì™ÔfΆ9¶Ü¹Êjó,™ùfˆn-°dº¨¶È’Yì¢ÚÓ.uÀ\¦Aí%ÇÌ—5¨-'\¯ÀJxVièýZí½æªƒ5~ÑZܯ»¨¶Î’yÃEµõ³oº¤¶Azq¿Mþ[>ŒMÕ6ûE[\š)r½0»Õ%µwf·¹¤¶Ý1s‡µ„ïÁû° ö°ی÷X˜û4¨íwÌ< Aí ôÙ0kPûð£(ù#z[×QÂcpœ¼Q'5ª}ì˜ù‰µSŽ™§5¨!< çà<| -Ÿièýºð Ü‹Êj—L{÷eÜ·p_…Ïá\‡îMeµÛ„wà.|÷à¾rǘÖ‡®ªD®G„áKø -¾†o\UûÖ’ùÎEµ'–Ì÷.ªý ½]T‰\?IïçXPûÅ´¿úå~sMí÷«hVûSz¨þ­Yíéý«¹s õ4Ãÿ1΋Ëâø3˜¡OyLë¥(îOVãë%$LÄëíP-IŒÕ¤šÕ’È%wm¶¦MéVÿ(j©SÇŠZK&-ît,½+j¤—1fË$½Ì± –Å/Êê²Z6¿(îì.ªå´dr¹¨–Û13µ¼¦-Àò±ü¬ eÅX!Œ ³"fqVTY­„cfI ³•",ÍÊ°²¬+¯Þ3µ -Ò«HXÉ´•-Ì*ÔªVcÕm¹5”ÕjZ2µÔgˆV-Ì’©í¢ZK¦®‹jõL[ß³µ†Ž™4¨5&lš²f¬9k¡Þ3µ–~Q+7µ°k¿¨-î6.ªµ³dÚ»¨Ö!`¶£Kj¤×w7ò»ø0ºjTëîõpg&Ù¿gÀl/—ÔzÌöqI­¯cf? jý °lʆ±Áf<Ä®Am„cæH j£¤7Ú†9FƒÚXÂqQòãÕ{P›@8‘M"orÆjS3§iP›î˜9CƒÚLÂYl6›Ãæ²yê=cP›O¸€-T곈-vÀZbÉ,eËžCí%ö2Úå6¬„¯°•J³½ÊV9`­&|­QQ3{¼ÎÖÚ0Ö¾ÁÖ+«½É6Ø06ªjPŸ·Ø&¬· 7³-ztcT{GSŸ­ì]¬m„ÛÙŽX˜m'á{ì}å^»ØnÆMõ^öÚ}6¬ý„ØAeÅCì° ãCM³}ÄŽ8`%<ÆŽ+©`'°>¶d>a§žCí4;ã€u–ð;¯4Û§ì3¬ „Ù%5³Çe[Æ«ìseµk¶Œë„7ØMU5Ï-M}n³;Xw ¿`÷ba¶û„ØC¥>Øc¬/-™¯Ø×Ï¥÷η„ß±'J³}Ï~pÀú‘ð'ö³ŠšÙã[Ư„¿±ß•Õþ`Ú0þRÕ >³ÐþkÃz¸²"ç<Ž ÃÐ3<®–GuóÚÔCãñøä%à ŸC'OÌ“ð¤6¬dZgKnSOA˜’§RÒIÍÓ8`¥%LÇÓ+©eà°2fæYTÔÌYy6FvÂ<§²Z.žÛ†‘GUï[^›z>Âü¼€’NA^ˆ¶e!,ÊCuNZ1M}ŠóX% KñÒ±0[­ÝÊÚÔË–ç”t*òJ¼2¯bêªu¶j6õê„5xMe­Z<̆Q›°¯«¬V×·a4PÕðëÖЦވ°1o¢¤Ó”7ãÍmY-[òVJj­y¬¶–L;Þm‡gTëÈ;9`u&ì»*ÍÖwwÀêAØ“÷RQ3{ô¶eô!ìËû)«õ·e È)« ¶e !ʇ©ª9ø{†kê3‚tÀE8š‰…ÙÆŽãã•úLà°&Y2“ù´SŸQmŸî€5ƒp&Ÿ¥4Ûl>Çk.á<>_EÍì±À–±ðì— p]UÇïå¥ð’¦MÚÒ—tIÒ¦)ï%yyÉKRJK7ʾX¶²V*û¾”²Ky”½l¥K¡´¥Pè-¢Œ(Š#£Â¨ ( -"*"â 88 **âïþï}ßô7„™ˆçž™û;ÿ÷}çž{î¹ç|ï;‹c·õûiKúl±4¨—Å–÷ûi+úlq{ŸQÒÛ}øï ê»b+ûõœ»c÷ÄVÅîí£Õêÿê»­éÿ6¨ï‹­ë÷³î=ÐG‹õAý`ì¡~?mClc-6õ÷%½mîÃÿpP?ÛÒ¯çl=ûÊǶ Ê4ñ‚Ç -±J*ëÄf1-fÅ âtq¦¸Ÿxx°8Gœ+ž$ž-Î// âUâuââ2ñvq•¸N\/ncþ»¬þ8Æ%cj_&&Ärq€¸£¸“ßÆúŒ»„éò^YnmvrLWºMÂSÔ5“fæ*$“zz¥Oó¦Ü@Ó#>«Ô| ú$«Åßn}Ž8Ø,®Út“7Þ@wCLgÜPÉ!êm˜Oó¶¹MçÜpÉÕ&åÓ¼yWkºÇÕIÖªÍq¤8J-Ö‹ b£8F+6ù÷ZŸÝHÓ“{å(k35„£Í;£„õfßÓ5˜Þ‡ù+êýÝÓk–ƒ™Ý¢>¬WŽ³6G¸fÉqzÇñ>Í{´ÛÅô—–ÜEm2b‹Øê[¬å\×bú×júd¾aQŸæ²’mº·]̉b§˜»Än¿¥õp&« ¨Ï Øa–y;ÍrAóæ½Øu™¾Ìu›^Ð+{¬Í•n‚dF¸«8QÜMœ$Nw§ˆSýöÖÏÕ½r¢µ¹ÎífzQ¯œdmnöÖc »ÝM/uSL¯ðVe ï 8Í,w»é’Ó4Ú>Í{¯ÛÃôÚƶá¶ö™j¾‡úÙSÜKÜ[ÜÇ·[Ÿ÷ÜË,º½ModgõÃn_Ó[Ý~’ûª·ýÅ|mms˜~Ühú oWQTû/ø4ï“n–é§Øm^™¥6‡ˆ‡Š‡‰‡‹³Å#Ä#ţģÅcü{­ÏïºCM¯Wfmž ááæýa g›ý9ö}Q¿àŽ4ý¢;ÊôK6Ë+îÓ¿ê•ÇZ›×ˆ^9VïøEŸæý;Îô›Ä ¯§6_Oð-Öò-w¼éwˆ.Eý®;Ñô{î$ÉuïÉâ)â©âiâéââ™~Këá/îÓ<Õ,ÿ xšY> -áéEï1w†éq«¨wì•gY›Šž-çYó9â¹âyâ<ßn=T…ð\óV‡ð<ó á<óx¾YêΗá|äŸÖfTÀ ÍÒ‹ä¼P÷^,^âk»kl/1osÀKÍ’áer^ªž¿,^..ð-vok/7o{ ˜½³„W˜½; â®Pu¥Ok³kÀ…f™«ä\¨{¯¯ñµÝ5%„טwz ¯5ûÌ^'çµêÿzñ_Û]{‡ðóîp‘Yt7J.R?7‰7‹·ˆ·Š‹ÅÛÄ%~KëaÿoE}ho1ïìÞjÞ£B¸Ø¼Ç†ð6óç–˜>¾W.µ6'\&ÃR½ÑrŸÖæÔ€+Ìr†»]r…ZÞ!Þ)Þ%®ïö½v×ÙÞÿy Ï á]æ•潈, ¨/í•÷X›ËC¸JÎ{4Â{ÅÕâq­o· -!\mÞ«J¸Æì×–p­Ùo(á}f¿)à:îÓî÷imn ø€Y–„p½œèÞÅ‡Ä âFßn=,áCæ½£„̾²„;ª„›Ì¾Æm–ܤ§?,>"n·Šú^»k{Äôún1ï†n5ïf÷¨é-½sêGÿòöÆKóN.¿äzíA~í\œÓXÙ¹ÔøâœÆÊø¯‰ã‹s^)ã$ÞæýFùãDàØ«h"mœH|š—‹Oô|hÖKœ 8±°àÊŸ¥f$ˆšå?¦^àýF?O}}Ðæ§ÔD¹|ùÏ©g‚hTþ3êå~™šø™Xh¾Z‚¬¶œ÷ˆg«MTI°ÆËy§kkÀ[·g«ï8—ä|SÁ{%g’¼¸‚q&É€“3ÑŒ1IŽ›$G®`ý&÷Ú°r“³œ«œQpO’ˆ—$ÇÈ*ÙE•ì³Áœ«s½è7¹–¡9ýUýëOh沊Qõ6:ãÙ¸þˆf^«þÌÅøçèïZõ4'¬ÊÇТ91U‘íT3¶漚±U“/×0ÎjrÐjòÜ"Ø Ztšç ÉÕ€&žTåªÉΆ¾áÜvàÖãPæjýû à†3ÎarýÍ\íÌ’Hñ¾µD¯ó“b~j‰U)æ'ÅjÉRy¿ÑĤÔÁ”b~R„Zæ6E6Ÿ"ï®å_25Çó¡ùwK‘eÖ±ƒG°êXÏuìã/P¯õ~£_¤Þ´!;®c}×ÍA¿Bý8×cè_Pë«èW©¿éùп¡æ}ëž ô·¹È:G¼Îs_Ý÷Íz­{ý{jòöQÕ7šu=Šì«ž17ð^õs¹È^Q“MÖ“Ã6ð?XOÎWOVØÀ7¯Ÿ´aÍÖ3/ä¼cO½w?ÙÍÆÐÈi¢ñé‚G64–ñ7Uúº‰,qì7Ðd:Mƒ¸†¡³ØžBAwx6®4k )…ñ›@ÌKÓ4ùK#óÒÔ„&[i"kflãYÏÍŒ­™Ìn<ãl&Çj. ùïhš†îD¯FsªlâD8žXÝLn&/H¿íÜ.ôŸÎ ™4ë2MÞ”fÒìÙ4ÿ„iölú]ç2|ëÌdê2~¿¦ï ÿÝ™d ™ÃÌ@4ÙM†“C†ñdøææóœíò¬£ü·œëŒfþºøf]Ø»ˆo]œ—ºžEó-º~Âõ[4±­›1uºgzš¸ÕÍ÷è&îuIÍúëf/w³ö{8õŒ,¸bQ{¤‡õßÃÿLÿC=óÑ|_Çœ»˜û¼”øg=€¨D%*ŸJ)3•pQ\ŠJT¢²=/.•KUˆ•âÀÀëÅ©*©Ábµ+Æ®mcB™Û~Kâ³@T¢•O¥xq«Æù©V–âHq”8Z¬ÄFqŒ8ÖE¹XT¢•í¡xyTS w??q)*Q‰Êÿcñ2Ž´+F¤ÿ,^Œj“ʉbç§=¬¨D%*Qù„Å‹^y©nù¢•¨lÅ;óõHM'‹»‹SÄ©â4qº8ã5¸¨D%*Qé³xùÔ!¶=]ñܸm¶åå3ÿf¿J³*Žðìî,7Š „Ãn‚‚\rÈŽ„+H!á - á -W  € á–[nTT<@k-T¤(ÔJk[µPÛB=°­gÅcÞþÇËÏoÒÿßüß7Ìì·óö½Ì,ïÍìß[±~ÊöçDæÀƒ’ãD¡X$8uÉ%F]ŠRl8uÉ%F]ŠVlŒ²±ÊÆ)o®1ªÕXÅ”×*˜½2 Wã¼=HÝ8pàÀ+(Eš®Š”¬<)ʦ*;MÙ4e§+;CÙ™ÊÎRv¶²éàœË8pP`œ¦æ˜œ)ë?uÉãÄ‘×*Ò0jT–bÙÊ.U6Çëq9pàÀAñ`T¯eŠ­ç7ŸJŒß|¹Šå)›¯ìe ”]«ì:e×+»ÁWÁ9pàÀÁMaœ§6zðm†k¿í§-ã<³E±ÊîçDæÀƒ’ãD¶ ®Õ­’®jÑ>ð¯x¿Ä[\ýÊÈç0V>GÀ•ÏóæxÌ_„ÀÊó%¬|Žƒ+Ÿ“à/y¹êÁ)ð¯x_‰·(ïÍ(™œW&o™ãÛà/™¹Þ©óà_ñ¾þoQ0Þœ (™¸ºÀ‡Xù\W>+ϧÊ^ÉÑõµ|þïçà/ñ…ëïÐ×Xù\5³L‰‡ë­ò ¤$Œ,HY)s,c\`å”-þ’eQ°þïX¬|*„¿du³w±*øU&,ü+Þ:à/ñzÿYJ& P2i ®ÒÌ›ƒ¿dæú:Z€ÅÛü%Þ¢`¼9í P2é’Igƒ°®ÊvƒÉ -\ç¦îXùô2ë þ’ÕÍÎýÄÑ_ ‘XJ†Šabˆ!Fb¾”/áE¤Éò£b¬ˆ b¾È‰X¿Â_ågø‘(ëñ÷ù%~ «a˜*¦ˆT‘†•ùU¾—!çyü ßÍóÈ_ ƒub0Q$H‹j"Ã0T4Ɔ²¡hʳxŸÏac¬oø±¡Ád˜("Ä`…¥e]1\ Ñ"ËòžÍ7ÑÕ(Ãñcbœˆã1›‹$¬ÈOòSü,?+’d}Ù€À/óËX«Š‘,¦‰éX…Ç÷ñ°¦`Bð|~ˆïáùä¯5ŒuXÓ`¢"IUQCT5°ÖM°‘l$šñÅ|!_À3± 60üØÈ`2VÆÉx™ “ä9QNÁÁ…Cñ8Fâ†'ˆÀXŒÇ8‹É˜‚ÓðMœŠ©˜†çˆ“)2U¦É™2]Αód.À…˜‰¸³0WáJ\-3e–\"sä -™+WÉ<܈›p3îÁ}x/à^Üñ"±‹ø~"›ÉpÙ\¶”­eÙV¶Ç>Ø#ðöÅþ8_À+Æ*š,cp$ŽÂ/ð+I8Oc"NÀIø~£¼§ &;ÊN²‹ì&{Èž²·ì+vˆ3q6ÎÁY˜Žs1sp).“r€$£ä09\FËQ²GÙeÖ/×±oĽK¹$WÙ•¤«mÞ<ÒU¤kÚû’o±5Pka¬‡ °6‘g3l­4Ë\õé6ÒíÚ#÷®<êÑ»[{\ºeï…}d÷Ã8¨æ‡<¬L{ľ‘Ç Íž0ÇÃð$Ù§H¸­ÚmþŒö ¼#ÏZì9xŽÂ1x^„_ÀKäù%¼ ¿¢ñü^q»ï¸öȽ+' Í^ÕOI‘S6þ·k§I_·ÍϾ¦=bßÈYÿ­Ûµ7Hß´ÍOú;ÒsÚ£ö¾üÁÆß²Ø-ö¶öõÈ;;ï’ý“âVö=Òlk/¾OúíQ{_.Zì¯ð!ü þÿ€KpþIžáø”Æ+ð/øw1Ÿ÷|¦=§ÿ…üÇÆ?·ØÚãÒ-_ÚøWûZÙoH¿Uì;øžìUÒÿjØ7òÃuîú§WV–*¼žÉâ>™¡öÜnCXiÞ2Ê–%­`óÞAZž´b±ž\Nwn·µ/wZ¬»‹UfUX«J³j¬:«ÁBXMâw³º,ÌvOmÒ:?ñ¼`Zh^Kw†?s_ê¹Íë»ÍèŽP°†kij&&oÊš™,\w„z„5÷轇µÐ™^a--v/kÅZ³6¬-ñûX;ÓÛžô~ÝQjØ—6Þ‘u2Yge»>`»ÞUw´>Ü—nëÎd=XOÖ‹õf±>¬/ëÇú³6€ dƒØ`Ý‘úx_"=z£,6Äæª;Zß fãÃÙ“E+;ÒÃúÝûFØ(ÞÑÊŽ!³yÇ’Æ’ÆëŽÚû2Îb la›mü·k[H·ÙæÛI·êŽØGû²ÃÆwº]ÛEºÛ6ßKú(éÝQû`_öÙø~‹°ØAÝêvÈb±ÇÉ>¡øaeŸ$}Ú¶öÒ§HüÈ~™ÀWQ]aüÎÉB€,„% ì$$y€ €l²‰È&û²+¸b­Ú)U¤h÷}·–"µTTÙAÄ]Ü ‹mm±âJ¿wrs:Þü^É;þÞ=™ÿ÷Íywæž¹™wçvÕQ˜—çŽà¬pV:«œÕ΋Îg-2/9ë ÐÎ&gsÏ·ÎyYûš*d^¶xüVqÛ´ëÒg»Çï·“¹ Ûnv{œ×ÀW±½¢]q”æåuÃyÓº·˜ocÛ{TÿwË|æw´¯í„æå½°Ù÷}àØ>öd?Áö¶ýe:ó‡Ú×vBóò©¸ÏœÏ/œÎAçÏØû‹óWçKçïÎ?àÿí|íüÇsÌWØþås¾¿9‡Böÿ©}…Ç9/ßµø¨ýoµ+Ô ç;qß;?8?Zÿ“s„LБz…:A6›@‰Ö%iW¨”,® -¥PUªFÕáS)Ò9›­†v• -ó’éñ5©–uµ™u°ey>¯«]m神¸líZb)(GÜ)”«]MØ -ë«ŒÚÀã2ó´g"‚y|cíjb'¨‰Ç7e6Ó®)‚š{| íjb'¨¥ÇçkW;AâZQ!kkWå[m€ZS›¨ŒÔVÜ©ÔNûº#VÛžN‹ÒH§‹ë@µ¯;bµè ê•‘ºˆëJÝX»Ó™`í9[mOꥑz‹ëCgi_wÄjûÒÙQ©Ÿöµ–³Þs¢4Nqh ë  ž«=>õ‰Ò8CÅ £áÚW±Ú4’FEe¤ÑâÆÐXÖq4^ûúC*œäñh"•Q'‹›BSµç bµÓhz”Fš!n&¯}Ýa+œíñÐ,º0*£^$îbº„õRº œ£=R×9ý,J£^)n.]¥=«½š~¥‘®Ñ¾ÖrU{-]¥‘~!Î¥_²Î£_×kÏÔu£Çß@ó£4êq¿¦…Ús¶ÂßxüMt3Ý•Qo·ˆnÓžƒ°Þ®2êarwb»K{>tƒîöø{´«‰ {ÅÝ'î~lhW¦ô`˜ÜCØÖ®L7èŸü£Ú•é=&îq«OГàoµ+Ó zÊã§]Mì-öÉÿ^»2Ý %Çdž¦¥àŽó|Ïh_QÅýÑ'¿L»2Ý ?ùäŸÕ®L7h¹Oþ9íÊtƒž÷É¿ ]™nÐ -ŸüJíÊtƒV…É­Æö¢veºAk<~­v5±´NÜKâÖcÛ ]™nÐÆ0¹—±mÒ®L7h³O~‹veºA[Åm³ºv€;µ+Ó Úåñ¯hW;A»}ò¯jW¦´ç˜Ìkô:øÆqžïMí+ª˜ ·|òokW¦ôŽOþ]íÊtƒöúäßÓ®L7èý°Ù}Úui}à“ÿP»2Ý |òkW¦´ß'ÿ‰veºAŸúä?Ó®L7èsq_ÐíjÂVx0êcÚÖ=rƒL`&2“˜ÉÌ*ÌfUf5fuf*3™ÎÌ`Ö`f2k2k1k3ë0³˜u™õ˜ÙÌæ)Ì\f}ffCf³³1³ ³)³³9³³%3ŸYÀlÅ,d1‹™fkff[æ©ÌvÌöÌÓ˜§3;0;2;1Ï`vfvavevcvgžÉìÁìÉìÅìÍìÃ<‹Ù—y6³ófææ@æ æ`æ¹Ì!Ì¡ÌaÌáÌÌ‘ÌQÌÑÌ1̱ÌqÌñÌ Ì‰ÌIÌ󘓙S˜S™Ó˜Ó™3˜3™ç3/`ÎbÎf’áöh â©™(£$†0IòɾL–>)XEzV«t¦ÈX©¦ªøô2±šô¯Q&V—þ5+…©rþÚ&M|–/Ó¥O½Ìž9!¬!ùÜr3SŽmP‰¬)£äYÖ’Lãr°¶Õ´L¬#ý›—‰YÒ¿eTYWÆ-°¬'™ÂÌ–žÅ–9’i]nž"ǶÀ\éÙ®Y_F9-„ $ßÁ— ¥O§Ì“ž+d¬®ÁûÚúîebéߣl*Gõª`6“3÷±l.™¾¾l!}úE`KéÙ?„ù’Xnȱƒ+‘­d”!–…’VÉQ#ÊÄbé?ª ÈQc¢ÊÖ2î8Ë6’™P&¶•þ“Bxªä''ÛɦF`{é9=¸>Y?3„§KþË’™m:Š¿È²“d.1gˆ¿,¸ŠXy™ØEú_†]åÓ¹¾ì&}®.»KÿkÂðLùôºàúd½=¥ç<_ö’>×—ƒ½å¨ùaØG>]gIÏ…å`_9êæ0<[>½Å²Ÿd•ƒçÈQ·G`éygHþnË’¹× KþAËs%ópp]´>ÜßPùôñàZhý“f¸ø§Âp„|ºØŒ¿$¸ÎY¿ÔŒÿLp²~™+þYËq’yÎŒÿB'H~¥åDɬ®FÖ¯ ÃóäÓuÁUÇúõfŠøa8U>Ýd¦‰ß‚µ§Ôo33Äï®@Öï2ç‹ß\‡¬ßcf‰«Q©3”ÝŽütÃKGŽì‡Þå -~s¾>bŒ3ú4t¢kðê¬wMΓØz!4z´=ô-è®IÁJ–ü+TòPÜ#UÆC¿‡®uMUÜ)u¡Ë¡s]“šƒÅ yÐ/\“~ƒ1i @sMVØtrMæÃxÉ›=Ýàšš¸w3ë@q—f6pMmÜÁµ¦A¿†nqM]Ü3Y-¡Ë   øïd-rM=¼ d}åšœkÉ -½:ŠïnötèAèV×ÔÇys‹ ¸Çr;@W@ïuMŸ{Š½þènèr×4ÂÓ"/ŠU=¯‘kš`rcÜ&‡¡û\Óß‹&]\Ó|•1ÍwM ¼õ5ûŠÿcóÁСK\S@xq@}¸‹òqþ|#ó‡Aq}ù+ ÷A×@ñmÌ_]}zt³kò×C·aob(ùÐÐ/]Ó -óܪôRh«A7C¹¦¿Í -ÇB±6n„î7¦(Û5EX3‹\èbègÐo¡ ø¿wuM1¾gŸ®âuƪº&€_ø™Ðè%Ð*Ð9Ðtè•P¼¡®‚â20Šû °Ð*ê àM)p“Ý¿ÕîßÅüî°Šû5€wÇÀ=ö|`ü O@QWà)ä1ŸÌk÷o`)4ú¼­c­ÕUÐTè:»¿Ñîo‚Vƒn±º׋y ì€Îî‚â‰Ø Åýؽºº³äûfC&Á$š$“lª̆©Êùj&[ul©ÚEÄ[¼Å[…·´::Ýd`-;Zh•d2=9²š€-ÑÔ9†Ll¶«‰Ì$“mŽ~ª[É“%vŸ*Á|²œØ]oño±ÔÒOèè SÃ4„¶6¥kp‚]ç‚+^!MéëغdíŽÍ–$.Ùt0~ëté;@¬5ïÓ£ºo¯x‹·x;ÙZê †u¾t`˜ÏN†ßÎ%-Ñ -Óçd¨¿ô·ÿ0Ïg'ÃÛ™1Æ;ÃÞëIò9F»%[-}^7Ç>ÇSì<¶ß·â-Þâíÿ«•<ÇÓŽóèt¼qM÷ì;抽’\«CŸœ±ÓBßübõoñoÑmÁ_fsMè*l%¿Ûb³%W|ÉoÌØl¥«nÉ<&›÷7qÉÜÇúoâÿ=9ÓuK‰·x‹· -lÌÇyt¦©in©°ZþË~u€IQdá—zfs"³°€D%'É9ƒ -Þ© ”¸9IÎY‘ 9耈dÌÞ‰x*`8î8ýäH$ƒ,ñjjf—Ùe¦û›]pg¸þû«¿ºê¯ªºz¦Þ뻄åà>}Ýà 9q0€•àZó*¸7\½Žl^—5œÙ½6lÜ„Áðõ½¼HÒ° ¼ópwAž‡ƒ'·aÃƽ„è,yǨ<~ÛZÉݦkìßQDàët>Á‰ÔˆçŽ.ì…ŒQÅwd Þ¨â‚+²díWhÆ`BL–¼c!ö©ú¤žÁœ–Eª8àxš-zNh÷Ùœ0Òîª8á,xŸÕî^ð:±ƒá^÷ÁMlØ°‘DZ›˜ Jån)·õ":}؆B>í†`¸›PX¿ç{½#0Þf| Ì Þ;ìý<†Ÿì†ÃS{"7æÛ¿ÁÂ<±38£fÖþû6lØVDiŽÎ¤w Äba¯6bï–§vÕé#gð ý×`°Æ6lü±P™V‚ô§˜ î¼-8áÀšºbw†œHÝ?wnìÄàë½úœøVäŒ17µaÃF!Vs\&½ã![ܱµÜ} ¶÷éëF0Ç·T8°#ÜŠÌÁ Ânp+²¹âž+²7²{6lظ+ÇdðõE¼Hÿc`_µüÁ -g¿‡xî‡+‘Ö©h´*cÀû[.˜a18p,„Ê[S»S „Vka!8Òÿ’ÄÔ>;¡2$œ !´÷¸@-v „ÊþºÎÐ¥Bûka!ø&Ü §¤C³WC½Ü!´Z¿šûßjà•±áù½ø‚w@½ü\9ÏN¸7ö~„ÐÞûÕRÿ{!TžÆ „ût¸_ÑO^ -jõgz@ÑA/Íõ}ÄxHÝþªÊ±T{Ý{\5N©rZ•3ªœUåœgœóŠ.Þ6Ë%š¢èêm³\sLè= )&õk#§*aª„«¡J¤*QªDÃ=ñ~(†ªÀZø¾€wPht†.ÔÜ’Þáüm M´®cFÀMèJÛ0Š>¦ô)}_A7ØÉ1ã0vanZ9¹=í¤]Á§ù,}Cs0/í†Ë˜Ÿ¦à,D{éGZBûè{ú7| ÿ€¯±(§d¸ßÐ@,ÉÉô‰áó|KÓ/4 ÇÐé–ÇÊ8ŠŽÐI:N§è £¹X ºÓ¬…ãè]¡Ëðì†=°ëb}z z`CL3¸—ÄñVþSXØ9 ›ãxŽà¾Ê×±%>Äqp“á*'p~lƒ½ð.À…9 ~„ïá| ŸÀvŒOa{Š¹?ßÇ%¸˜$ñn¾)Èe¸WàJø ?ÈU¸:×äÚ<N`gJos]Ø΃åìÊõ±;á†ÜzAOè Ï!£AË¡¡è3ú^‚¡/wÂXŒÇÐóÐJÌÅèKúJ"ù Ÿ£o1 óÑHÁDšŠ#±0}Gÿ¤¥ô/úösSýa ÃÔÑ ,Å=é'‰å | Ëðq:@Óq,¤ÃX«àh:J¿Ñ :Mgé<ÍÃê0˜.bmœH¿ÓUJ¡0†ÁËXÐ*ŽhÍäÞÏïñe¾Â;± ‡c œÀ‘Ë×ø¶Â‡9cO¸Æ98‘›á£ØA.Â…`$Œ€Qø8¶Å'a4>hvâ\”Krq)Äï qY.Ϲ2>ËÕ¸*7ç\‹ë¥xœÄ.<ŒÖr=ØÆ-xˆ”ÆnÜ{ÀQnÄM¸ àÕü - I´ˆÒdZŒ{䜜—³rFZK¹ WäªtŽrM®Koé#7 §f8 CjÉ0n$d²L1r9ŒœF‚/µežQÐH’•ò†QHÖH9.Ǥ™4—SrRÖJ]i+ídÔ“.ÒU.Ë%Y/õ ›ÒPúIƒe£4–±2Έ6bd³41"Œpi$3e–+[¥©,”EF>#á£ü+牘£x*ÅóXžÎ3¥¿‚?ólŠà9ü:EóB^ÌKy9Ï#u¶ñž„Wx4O£Ç3xáW© ¿F‘<—P /â%¼ŒWð|a©(•¤¼Tàƒ|ˆ»Š× -»OF×™§n¡@¸:Ûó©’4IuÍW6í! ªË~Ã0K—3‹þöõÿrÅA¼®ÃUnˆ7“£„ùìôkå³7Úd†XHð«åT%âŽïŒ}Ù—}ýñ—#ÛW`_÷þ9¼Z¹ ·‰mÈ—vŸu] -¦³I‚B·¾ 5³Êâ\0Ô/Ú©"d*ÂU‰P±1JÕÑj±:'¨õdÕßµŽœiO”¹}ÉíyâÌfù<»”Ù÷’è© dÒ¿`ÚÛÈœaÍE2½þû2´‹è_Ls O«xÀó—ÌÐ. ÿýÚè_ZsYO«LÀë/—¡]>@ÿ -Úô¯¤¹Š§U9àõWÍÐ~0@ÿjÚÕô¯¡¹–§U3àõ×ÎЮ ]­Ô·ôoàWi¨¹‘…c­ 4µœ¿™‰ÖZ躥‰M+¿ÊCš¶˜ÿ­5´Ñõ£&62Ñþ Y>ÿã~•'4·µðog¢= OYÎÿ´‰Ö:Xúwô«tÒüŒ…ÿ³&Zgèb9WSµ›¥w¿J²æž^==|Xõ2»7ô±œÿ9íyxÁÒÿESõ%Kÿ¾~•þšxõôóa5ÐdìA0X×CLl†šhÃ`¸®_6±aút#-Ÿ”_eŒæ±^=£}X3{‘X“ÃDõí,Jå±s"…•¹LT5Å%æVL) F#ŸÊc¢ª,kÁÅÇIÌ‹D >•ÏDUSIb~ÅT•X‰üX_ÐDU/±bjÁŒÅ§VF,bæª&AbÅ$JŒULCVÓX|¶bq3W5M,X\ñÍ-XBñ­XILK`?¥K›¹ªi+±´b’$–QLG±Æð)ƒÏ–C,o檦‹ÄòŠé.1N1=YLãðÙŠˆ•Ì\Õô–XI1ý$VVÌVÓÊølUÄjf®j[°šâ‡Y°ºâGŠ¿-|ªc?5kš¹ª#±¦bÆK¬¥˜I¬6¦µðÙ:ˆ f®j¦JLPÌ \·›%¸î.Mv¹ŽA\íVŸ€ØÚ+!ß q´“ ßyMðuÉ®»S!Öß9ôs·øfÈ'@l¾òɃï€|$D1ÖNÈÇ@l ¾ ò!ÅX»!qxßd×-Ñ÷~ðþ'BL? ù¶—+¼b²ëv8ÄàÕ ƒ¸¼äY Â\\ gƒ¸<ò(ˆ«ÁWÈúuàÍdýFð–GBÜóºâvð½ÃÊãÞùˆÃÁA~âhðŸeøbE!?ÇÄ߆±±Ÿ‡8 ¼,ä Îï$ä— ÎŸ!ó…â}€ü -Ä%â}€üÄeà‹ ¿q%8¬íno2f„B~bðÎ€Ø <›äám6r@~âð>…8„å½xoÞ—÷ƒÊ&¼)oÎ[ÀS ¼._Ïy}¾zšÌ§ði|:ô:Šæcù8è± ïÊ»óÐ{[ÞŽoäI¼=ß#.áKù2¾FŸÃçòù|cW£ -™s1Ü_®Ã1׊±5ÛçæåÃp–Ä¥¿'Í¿¿§2¤økÍ“…ª,ÌkM&8"0Ë -»ºˆÙáwƒûanlE«Ê<2ÆÀý>ŸÌ Ü—.߬`*ë Á®|¯U±ˆOOÆÂ]ÿ~U‡{IØo ØkÜù2°çøÞK9Ø›R7nÜé=ñá¯s•ao« -ûZuØ |ëïÕfp6†Ãݦ(üV\ä}¯Qàl›Œ±­‡ï:ƒÏbÈ5þoZMøm–RMmøm–ûù¿íz,‘Lo}ÖÀ/ý4„Ƚݘ5qtMYókZ°–^¿kÅZ;ª7e‹BŒgmX;ö`ªžL"×(kÞ³N¬ Æ®¬ën©éÁ²´{²‡UÞ‹õVyÖ×R×=bi÷g,íl¥=˜ QùP6LåÃÙKÝHG±Ñ~ ki“q¼6ç ~_E»MdSd6|›nùv†¥5“ÍVù6ã<6ßR³€-´´µÜgÓ§‡³6ÄŒà¡pOË1+2÷²H¸“‰ß©Qp3÷²h¸‹‰ß§â–î`ñîSn;±pZSw’Òx ax»÷q7¸wˆ‡Û€Ø¥Å­Ú܇Åþ+nÓ pk,nÑ°Ÿ0¸ 4Ç=Cì mà¬ÿ‡Iðv€w°œ³]äÛ'Þ8ñ–‰·K¼UâMoÏ@œÏ |SÄ2Z#à}o‚ø냿õÿ×ÅóºÜ{ó':ðþÿ·l’Ê&“k &3÷°©ä:‚ͦ©lú}÷‘m†™I®)l–GvvªúH‹6Ç#;—\µÍ³1óSÝGZ´ˆî7áELÜ…Í|1¹>*[‚¸TcsË—±åä*·6æqrMÁ`+=²O뢶UÙÕ亨íIÄ5nÌzðµ2ß¾Ž=E®ÒyÛè‘ÝD®‹Ú6#nÑØ­nùÓl¹Jçm»ÙA®)ìó,øΞzŽ\w íyÄ]nÌnðdþ"¹>*{ÉƼ ¾'…§^!×hÛ‹¸Oc_uË_c¯“«tÞö#¾áÆ$ƒpk¿É’«tÞyd“뢶·ßÖØ#nù;ì(¹Jçí]¿ôòù<ümÇüÒËqòyøÛÞGêlèðxklêu𢶩c#5Cl®±-¨WÀ‹Ú–ŽÔŠz®>êlíðxmÛjl;êu°éLB|бñÚ#vÐØŽÔë`ÓÙ±“cãuA쪱ݨ×Á¦³bwÇÆ{±§Æ>L½6½{96^ľÛz¨Íx±¿Æ ÖEmÆ@ÄA;˜ZµC‡jì0j]Ôf G¡±#©uÙtŽFåØxcÇjì8êu°éœ€8Þ±ñ&"NÒØÉÔë`Ó9qŠcãMCœ®±3¨×Á¦sâLÇÆ›8GcçR¯ƒµói>â]H½^Ô>êØH‹kìêð¢v©c#=†¸Lc—S¯€µ+éqÄ•ûõ -P›± -qµÆ>I­‹ÚŒ5ˆk5vµ.j3Ö#nÐا¨uQ›±q“Æn¦ÖåEíÇFÚŠø´Æn£^/j·;6ÒÄg4v'õ -xQû¬c#=‡ø¼Æî¢^›Î݈/86Þ‹ˆ/iìêu°é|ñeÇÆÛ‹¸Oc_¥^›Î×_sl¼ýˆohìêu°éLF|Ó±ñRÏØG‡ï0õŒ}Ôù–Ãã½M=cuqx¼wjì»ÔëÀ¿gó¡ê8âû{‚Z½µø¡“Æ)ª>¤ž«³ùÈáñ>FüDc?¥^‡Îø3ãsª¾@üRc¿¢V83N_ûPu†Z§³ùÆáñÎ"~«±ßQ¯Cgü½qÎÒþÁcÕyÄ5ö'jõ^ætÑ}ül\°´ñXõ+â%ýzgÆïÆeKûŠÇª?¯jìŸÔêgÆ5㺥}ÃcÕ_ˆkìMjõ3ã–qÛÒ¾ã±ê.¢Ëʆ0jõž-$ú0BB,íô«8bÍH½³Ð0K;“ǪpÄÌ›…Z}à,$"äöË4ÊŠêˆã5}«Yg|¯Y†Ùw†ET6eÙ—aØ·aØ÷}‘ãc7 à‚츆Ä4‰ *¢B"ÇCLH &câŽâ ’ÿ+úU|¤'ä‹0ÓéÂûûW×½¾éê×ïÞªPÜuØs•s§ïó̦Îmük®uŠÂŠDi„,´…Õ„Õ…5„5…µ„µ…‰Â$á]Â0,t„u„u…õ„õ…ÉÂÂaª0M˜.Ìf -³„ÙÂa®0O˜/,6 -  ‹„M„M…Í„Í…w ï¶Þ+l)l%¼Ox¿ðakaa[a;a{áƒÂ‡„„…„…]„]…Ý„Ý…=„ { -{ { ûû -û û  - ‹…ƒ…%Â!¡ÂaÂá‘ÂQÂÑÂ1±ÂqÂRáxa™p‚p¢p’p²pŠpªpšpºp†p¦p–p¶pŽp®pžp¾pp¡p‘p±p‰p©Ð"±ÝQõ-bõ™lõ«á_̯AÕÕ¯…«˜ŸH5Õ¿ 31?ìÁÚ:[ǃ‰:[’ÔOƧÆü -©ŸGëk¼ ëÊ rÔÏò`Í¡ºêçűžÆ ÊTÿhö®ßƃÙ:Û΃9:û åªßÁežF:¹Ì×H—è3sýnÔPý. 5ÒÓe#ôŽ>9×ïKEê÷>-×HMÕ/vÙL#%.›kdhôù¹þpºGý‘xŠ14Ý«þX<ј_J­Ô/ÃÓùé~õ'ãIÇü©ÔZýéÑ'íú3©­ú³£ÏØõçR{õçãIÇü…ôú‹]vÐÈR—5²ìÆ!&þrê¬~9¾˜¡®ê¯ªÝtÍš -Ù]׬»{èÊÇnÁ‡uå·£ï…ëo ^ê?ÇÞßÇ>ß‚7(æoõ`?}Úƒýuv›èìÔÙg\ÒÈ.—ʼný7X#Ϲ,ÑÈ>ÑÙª³‡<8Lgxp¸Î¾Ç)Ž#5þJGiühGkü.Çhä‡.Çjä˜ËqyÝe©F~Çñ#ŽeÿY'hüMNÔÙ·=8Igßñàd}׃Stö}ì1ÿMSÿ4v‘˜ÿKÎÐÙ3r¦®ùf©Öƒ³uöל£³ç°oÅüßVÈyºæü-8_Wþ¡B.Ð5+äB]óq…\¤kþ| .Ö•ŸTÈ%ºæÓ -¹T×|ÖñúWOþôúõ › §¡ß…¾ -Ý -=ê^„>=Ý= Ýé^ï…~úr„®âc/Cÿ½êê—Ð/¡×"Ä8 jiƹbPAG[ûqèJè&(ö^{;ttïšýb„jì@ÃóE„j]@ˆÚ½Öؓpê'®„¢ÖJ\ EU•ˆÏK¼ÝÅý$~'B!üÝ»~!§€“å*ºgŒƒÞÄÁ9â #qð9èF¼):û‚ƒþÃë^c‡sЕ8ØËôv]ý†3Š.ÃÁ>åt–¢á² ø݇л9ø;è Â8ëtáPtaÔ1º0òpŠ¡¨YôaÔ+Î0w~„;Ê?ô(ªþ¾mè$Õ~è]Wß‚¢âa/pPÕ‡¶@Q¿‡p†8¨ÔC롨ÒCxÎ*ôÐ -è#Ðrè -Üç24„'"T÷8J`tɨ¸SЕ¤ VHk¡§¡í\݃8òIGWš‚¿“Ž:¥œ“ùg¡‡Q¨ã}ɹ͆âwP°.B¹8· ->ƒâhˆï=ù7<Å{Xˆ÷3ßsášåã¾ -?…>OÔ½cAŠ÷¥Àíi(ntWÑ®*ÚME»¨h÷TÝÓÞKÌH•pS4°À ìö›!ìãÆÀùM8»Ý½É|m ßû -,°Àþ¿Í¦º`*õR`VÌP˜å^Åú»lòîõònZWHÁ^X`U3TD^ý^`Øí6¦æ`K -j¤À ¬2˜¡V`kŒ6m1ÚQ°?X`•Á µ§`? -,°À*ƒêv¥èžÔMØì‰ÑK®z û‚ý1` ÄtÓ§$PñDJÀ¡Ã0†cŒÀ‰1 -c4ÆŒ±ã0J1Æc”aLÀ˜ˆ1I?i²zSÁé30fbÌ¢ª¶—š;}Ø7bL³)Ø ,°Ê`L èßûQÕø¥ó¾À ì1›–R°X`•Ál*×`¬¥ûRÕ6‹Ö‘?òø¸ü‘KÔ m$?e³™ü”ÍSä§l¶S4›Âg…{„{ÉOYî'?es˜ü”Í‹ä§l¾GþÈæUòGÇÈyüˆü‘ÇÍã¸ð-á áIòG~ï‘?ò8EþÈãä<¢fè ù)›³ä§lΑŸ²9^Äø#ÆÇTU2³p碪t·Ó%ðïT•rùœªÒÝ^†^¡ªtÇÿ͘®’ra ›®‘r‰'Dçý’K òO.Iä‡\ä÷’P‡üKÔ8!…ü“K&RÉ3{Í~³Ï°ÖXÛ¬cÖ>k•Un-·"f€égquk­µÝzÍL0ãÍ$³Â”s’õ{3ÇÌ2󸮵ߺf´®[«­G­ÖJëŸÖë+Óßô5¹š)3¥f¢YΉÖy3ÛÌ4s¹ŽI6 ì;× 5%f8×0ÃÌ3‚kÚyÖÛÖ;Ö ë¤o2–I0ÆÔ3õMcSdš&v#ÓÔ.²›X›¬ÍÖ:k½uÊú¹uÄzÞúĺdM’I1©¦ØŒ4ƒÍ(3ÙL1óÍNæzœÆœÂ ¸>§s&§r>çr#» qCÎã.´‹¸1ðßøŠÀíl¶ksg;l§p/îÃýø5îÍ}¹?¿Îƒx0áã\Ì%<”ßä<ŠGòhÇã¹”ËxOáiüOæ©<ßçY<‡çñ<›çò|>Ëx ?‹y)/ãü(¯ärŽð*^Ëëy?ÆóFÞÀOðf~’Ÿâ-¼•Ÿæm¼wðN~–÷ðoxïæçøïçƒ|˜/ð>ÄGø"ÿ•¿°“íVö¿Ø­Úà*ª3üž“{r/Y–$0ÉÉâ†køJ‡ÀFâ"‚¢\z‹!˜‚„"bÔI¢‘ZŠR&µBtL–7 ´Úv¬ŒVlu:í”ÚXÛ™´eªtÚIŸsö -±ø¯ÓaßyßçÙó>çcwÏ}ï™& +H‰¼W pTåþÎ}$$<ŒaIxÜõ@²KxCév#iÐR`7ZÈ’KLH€ˆ,V£íB¨UÐVhÅR*ÆÜb +a¦8HaR*‘R[ª#Ú5µ¢VZ$·ß½Ça:Ž{æìþsÎ=ïü÷ß 7¿4‹VT-Õëv; >jg”VGk{fÍŸõåרûcéÊ:ã¹Ã;r ß\Q¶¢4Ðÿž @Òfúª(Ö!I›Ëýï¸÷UÔ.®å.z‹ûÉçWÕWìÓ¿]uÙ'@hf¬…m8&õöCv;;Lf¾QϺ¶c7;¸(c¥^ÍSŸ %ô*NH/ɳ‹ìçíÃÌ3¹ŒÁzÒlÆÓ؃tJŽÌ–fû{¹½YÌÃýø6áIüÿ‘lñ+c”¥…µ @ɉ=Õü„õÄë’*=dž,•zi••ˆºÛ®µ·@a¬1̸ûp‡q gé™*$Oª¥]iVÓÕGÔ-úJý9Û´Ï°¾é˜ƒDèûh¡ÿk8…Óø؃G2d°Œ’q2^ +¥˜´]ZUiP¶+ÍJ‡ÚM}R=¤õèVoRǨsÕ»Ôzu³ºCý¥ú’zŽs¬ÐâÚíí˜}°>C/Õëõ‡õë-úý¸~6iHRsrSò#Ég9•yœMî5×O:OØOñÄ”•J+o„A¼û+ÑÂ;ý¿J7vµJÒ9ëz¢—÷þ›rÒ”QÊÄÇmÓ ÕM<ò®˜È7öß­lä›sùrP™‡3È›,Ýî€Ç>§×éun!’=|2½ëžë ŸëÌã]H[ç>ûOê Vö]Þ#\B×]«¯Z«ƒXUVsVþDÕ9†šÚ÷¢°4ZUáz;þÊåÝwIX†SàM/EÔÀ°¡YCÌ›½ÆàAdfô÷ôë{SŸôÞ7¦ÝЫgî©)Ý’“tMU¾™_bXCK,m¨9c†ßÙ›Q*¢W(J,ƒªü«},£Äu3®ö гâÏ@Â3pÙSÒŒ)˜â÷!Ó°^šF›ÏSþAÐŒV‡+ßáÊ\¹'e¯—!O,hXRb„¬ü•±x¨$Èp{ Õïã0@w'°…éÑ51Ç#de˜ÁÕß º65+-³f͇‚™^oÄï³dz©¹È‚™gÝÝõ¸óœA×9aæöû–8õc]2³l][‹J)zwØR£K)qrܘmõ3ƒV¿{ßñ|¶ýT +­¿Âh)YùÑòx>¡Y7#±-qvÑõÜ «4D–4DE¸µ'º(7CŽ¦¤Ò°RÌ<3¯,!æ˜Þ•È™Ñ`Ĭð®þþîÆïÛë¹o²— ìõOóOsÖÉ^Ï}‰õï$ô¯îïîú|“káœË¸ˆ“É,`™–Qê&1Yë$ç«|⥓èÆODØå+ezI<íV>eéYi¦ÿ”ÙñîÕšh—&)+í#8¢3ÎË'‚ö.¹ Ã|…mH™þ•Hc¤Mì†6îE +Ô… hî‡%A>ÍÍ->*Fx)ðù¬:ß™›7âeq#߈qàZ–»ÒPä°¢ð~#쵑ÌËby$r+ãd;q47N<•]*Ý p‰N>_!!:+<;l­ fZ`„ðü쟶öÅH„^þË•r]³ÄÓUóHÖìA!'¥ˆ1"'v¦×ÚgÆ÷ ±o\«t)ÚààQi“µ³\ÓZÓ›é(L¯éeY‘ Sâñút¼mýŹᱬvŒ‹ð¸/ áñ׃ð„ëBxâç#<‰5OtÎýê¾õ*„'1ÂS®Dø6V;ÅExê—„ð×®áÀu!<íóÎcÍÓ„§u¯@8ñK˜„N +½ª:GvŽì5ù³ÿbºþÙ–”Ë¿}»~>]~Û´e’¦Á¾À¼&w.&=ƒJ%ÏÓ¶€œC}Ö„ÑôßÆ}±»æÚ§©wl’Mò`rÙOžÔ¥Gíäpó4Asâ¸+P¼ ÍúÿH¯(«ª*¼ßÿ{Ã8ˆ0ÃHÌ00¨i™Ñ€RG~$EòBCeÅOHdb!%¡Â`*eP‚6 …Ä_Ó¦ÆPfʬX´V+Wܾ½ï¹gî¼ûî½X3ë»ß¾çì»Ï>ûìsÎ~‡¨,ÒD%à @Ëá3T?'°¯¡B¼Å W¡¯,¶:‡¤¿NéÕñ{8E7£¿ŠeæQ¦ä"´_ñWÁçàºð³â3æntˆ)* ­¡kÀUàrèÈÜRT‚8”@o•%#6ñœÇ2Û ¦D`?-W„‡b%‰e2osþÝs1ãæ€ØvˆI£hghßÒ‘R¾¥´ÓC£h6ø^µn‹ƒG©&ÜHÓx^‘S)qä˜-F ÚÃÍT„÷ñs'æÖŒµD0ßOo0ZC(}EÑu°ÝL£ƒ•Æ»ATmÁ6-£V̯^ù4v·I>4¨uÄÖYzZÍwÆÚÊ9jÅŠÇE[9d|o¼ùЫj`k­ä|‚‹Ôš.n‰\ ËÑÇãÀÜ +D3aûùßÃÖe¶\4àü³ƒ}4Ò}ÖzYP¹Òlg•_¼Í6ÊaHâ’4NrÞÂî(ÎQ^_ÎØB™NãØžç¹äš¹wêÏe@506Jt§B_ÎiÞ7œ»²oLÛ¼'&°m‹9ÏyŽç ÜCWöäK²÷8ËýØ?•Ìû¥Ädü(¤lÄ` û +Þg2õŠª9cßóÞã½ÏßñþçÛ9ô¨âµçRNVcrž OgÖáýÛ“ýVìt ›ÌýÍ^n2Þ³ÝÆtcû¹$9ªÖÝâôñ 3€Ï)k:s‹Û8¿¤­9ýˆ™kÈ3üþRûGç…;S•»ú•F·Ò‚P1ØÜýq—Âæî÷œÇu@ÿÈ*D_q¬˜æG«¡[LùØÿ aw"ÆII ㎇_3ÐÞïÍð{%¸mýÑÖ îŒG×ýFð8p.8cMcøȇùÖñžæXrîŽQK`Õ:)É9Ž¾Ü`=bTO«»ãÚ#Ží +gm±¶â¿E¾E?ìÍ`û±Êãó~pl+Ã{Ǩò°ØqÈY41z7%IªŽ w·aGS€$æY Mø¦&§¼h5â÷K2rvöR’÷fØLFöÐÜØ2'“ϦRÄ¿4<{ >„Z©ë|8)ñÙƒØm¢a¬nì5cÝߤ,p8‰¹¬F<§D›6ØW^#èW³O|Gˆ¯hã¹!¾£ —Ë÷;× ¡÷ kŽ•Ç}Ñ>”š„ü];ëM[¸[²"Õ°Ÿ½Q*j _‰ïùŒ(‹œ£¹7§£o"ò :Œð ÈŸlŒqØ„<ÍA[3òº`ìV÷În¾{‚•ËùÞÁ½R/wK3峞ܿ+h1¥ýÅ—ÓìØ)šÍ{BÎø1T’˜Œ½Ú©j pv€JræõlëõºyöXµ ×&¼·ÂÂÆvÙcR 0ÇÑ–ÕÝ–ÎC[ë[g2×ê,|™s8k$&QÎŒªÄ Ô> °GWÀ·AÈ¡µ°õ¢yWIm ÎPû¹v‰çRóŸïw¾£mçwU¦ó3ëaøõ/Ó7ÖM·g³c}WÖc¼îû"ã¹l›‡yâŽæ9Ú¿çºÍÁ¶{KÝsÞ|‰÷ßG\Úâb»ËÜ>÷ƺlVëóª-ž=¸çÝfLã}œ[œéì·¾~ñÕµ…âÌ÷! T¬k +.Ët_Ú8[qäCÝ›Ýõ´¾?ýت¿mœñ¾µÝ»\»½cOò,š nÆ|:¯tÆ£nÊÌéù„³+<¼Œn ï OïW5PÏu» øýÀ€Lõ‹ŠS‘Uóö`g>›g7Îd¾Ÿøœ6ëi¹ƒ„­½kéj=Üe|¦ó]ÆßkÆ=Æç9ßIr6[÷Eó]Æg:î°&>Ëí9Œqò‘½ùžfÆZG-ŒÈ£-RñÎit ̹;ý'|…qÂX6¨x¹"Ç7S¡tqL½€:·%v-pñ`¬6ÕFWl$üSq·âhÅEϯÛçk /eã');Q Íqñ0‚¨èr‘ýÿÃ6ù2 '£V®âÞÔÇÖzÐ7£þ•Š¯ÊÐ¥„«7Ùò쥤ô¿¬gVx¾ ÌõÃjwcÎ9óŒíÿV,sU ¼µû¨Ø\©"Ð+ç®ÝOKýi€¯'ùZ* B_í"ÅÅò¼ÚG»DK©Ô×ö GK™‡öG´4˜†_CC]µ‡9Z>êa{¸£¥ÜC»BK#¨RI#]µG9ZªïªÝªx©<¿àa—ÿ¿¨øËô%z˜¾"òW]µ—)^.Ï>¶Wjék´JI¸j¯ÖÒ×i’¾áªý¨âoÊó1OÖÚäÇ}tô-Åëäù„­çÛ´×Ëó;úý»ž¶ŸÔÒúž¯'µô=í«ýŒMÞ䫽Yñy>këiË ý}-m¥øÚÞ¦¥í¨\ý´Ÿ·É/øjïPü#y¾hëùaíËs§~ßåiû'Zú)½äëÉn-í¡—}µf“Wñ+òü…­g_ív-í§¾¶_ÕÒA:ä«ýKGËaí#ZúýZø5:êª}Lñoäy8áaû¤£å”‡öiGËo=´;´ô;ú½’þàªýGGËë¶ßÐÒŸèMá·é-Wí?;ZÎxØît´œõÐþ‹–þJï(éo®Úï*þ»<ßó°û_«ZŠâŠÖ«é™fßeßd Ÿ%€ˆ²/²(DPvQA?òA ûâ FL8@Â"(‰Ç "‰IÔ"Æ`â!q‰+òsûvýçï3tÏÀ»ußíW5ó«»«êÿ.¸ö"Þ'æSòÏb«?wíÄÿåûKe_™¯û&¶ú[eß™KŽ}[}Ùµ¿1É¿D~`VR9~µˆs§’&frTûÄRŠmi))eªË*+'å“GFMe¥RÎêÊ®­B¼*GuUeÕ¤zr-jjd) ¾QÔ1Jm¡c”zR7¶:Ë#ÊÕ c7ÈR|£¨c”Æâü 4‰­ÎËRâý¢H3eÍ…^QZJ¶/,ªi•¥´Nûš,%Þ/Š¨c”¶âü \[Ýεt‰Ò!~\^wŽQ:KGé$ôxÒ%¶Úù>éFìžcìÊzŠsxÒ;¶º²¾r“c±Pœz@Éáe`–2(¡z°²!B?(CåÖØjç…^Pà%ÁJ–”(wd)#ªG)-c[=.KŸ0¶ºI™ ôŠrdû¢š‰Yʤ„±'g)ñ~QD£LçeZlõt×ÞOœ?.¯;Ç(³$_f +=žÌŽ­v¾OèûdnŽ±ç)›/ÎáÉ‚Øêe e‘c±Pœz@Éáei1¾,¹Î% +½ ¬(vå +¾QèE=¢¬J{µ²5²6©’5êe½\ÉõE«7ã›rVov-¢•¥ü1alu“ò¶Ð+Ê_%ÛÕ¼“¥¼›0ö{YJ¼_QÇ(§ÅùAy?¶úŒkéåñãòºsŒò‘üSÎ +=žü;¶Úù>¡ï“s9Æþ²óâžü7¶úeåSÇb= 8(ô€’äݧk^A€µˆ-ˆ×o$"ÞM|X@|ŒhÃq¶ý€)RË«i¢G%EîKË«„•:Žç0£J ‡>… ëK„¨5e–T¥‚)EZ’•¥‰eˆeCE+«½¯nÊ*¯Árª×7åIËqœ +ÄŠÄJ¡¢•LEåy¦’ò¬¬zk‡U(TæhW«««‡ºöjë°ª*í#XMõN¬®zW‡5Téij’ÖàwÕ&Ö!Ö%ÖâÕšäõ‰ÃJ¡¯©£|€©«|pë©>ó|êqœ«‰ ˆ CE+‡›ÊGš†ÊÇF°‘ê6¦Ðˆ£ýˆØ„˜GlêÚk¢Ã&ªL‰`žêÓ#ØTõ|‡ÍT™mš“6ãwý˜Ø’Ø‚zsòÖáUí5ÏaKU +¶ReqðìàÓŠ}¯!¶ ¹Ö,sØF•¯Ueuð4ás-û^OlG¼Žz[òáUíµÞa;U6;l¯ÊÓ´=ûÞ@ìr­)úßQ•í;©²Ãt&íľ]ˆ]‰Ýˆ7òjgòľa¥Ž°3\öÈw™nÊ÷F°»êLÒî§'±±w¨håaÓKù1Ó[ùï"ØGõ×ö¥Ð‡£ÝDìGìOêÚë ‡ýT9Áþªÿ9‚T×áͪœv8ÂÍüÆÁÄAT’ßBF¼8&¬Ôq>p8D•³o¡0„õ·†¨5;ªÊy3Œt(+B¼8‹|nxU{ w8G•‘Re¬™KúûÎ#ιÖLp8_•‰VeŠY@ú0û.$."Ì6‹Ã«ÚkºÃEªä;|D•ÙØa‚Ï#ìû(qIȵfžÃ%ª8\ªÊâ`Âg)ûþ”¸œ¸‚ø¯.#œ¸.¬Ô–™åÊW;˜ã«#¸RõõæqÒ•gq5qM¨håfì~E|‹Y£|[ת¾Ýá: +k9ÚzââFâ¦P×^;nPeg7ª¾+‚›Tß[„] +/¯CtC¬=ZxyÚ͈^ˆMȢ݊èxù´?G BlC¾mwÄÄ0ä«ÐöF<‡q4»b bòMh_@ìFGþ=Ú½] + k¢}õha¡ =€¼ÚÈÓh#Ž!N"/‰k m‘OCÛ±Ñy>ÚNˆ5ˆ–Èç Ý€ØŽXü Úï0Á8ßbVƒ½68­ã{ ‘ûaàl‚U,pÁ®øŠ`•ª^`¸ÿ•t}‚í`´Áú0Ý„oÉ>´Áºðž ŸðMøfco¤Û9‚6xO¸§éÃÝÍ|ˆø¼ X'ùÒp-1#Npø½ÁJb. ǹ kˆ¬Ü‚Ï›|‡à ‘_F‹½]Ž!Ž 'eqŠµ8#[œ-þ‹Ó¥¼ƒ6y)´8ÊßÐâ,iáJl›€#p†´ð'2ù-ÅÎa±¾Â§‹ó—ÅùÜvEà´eqŽ²ðs +i,N9g|‹9•¯ÐâTbë£pÎ$ümØÃ-æÜb_~›ÅjÇ߉›¿ û¯ÅiK»ü8v: ïÇߊ©±p|^Çâ{{ã¹ð~¼&ÚýÈÏç¥ñü¤áõÒxnÓXõÓXñÒX÷Óx?ÒXÒX‹ÓËrü"b+òƒh±Ö¦ñü¤ŸFþ’ëôyùËhñ>¤¿1&ƒç!g•ÆœdpÂÉ”CŽ¹Ê`N28»d*!‡»É`N2˜‡LUäp)œ28idðý=ˆ±ˆÝÈñîûx|ìÄþ>äXüCGàýõñÝ>æ×Ç}òñþúØË|̯ûäGŽ¹ñÿ€€ð_CŽ]ÑdzãcßôßDŽ½ÌÇýç¸BŽÈÿ?ûU&ÅÑD«›ivwww9ÜwwwwwwI B B I  š  œ Qâžð×ÍÕõ·{³w3Ð=÷Ùmº^ÉÛzW³KÏì•p÷%ŒñŽáÁ³Èƒ×Üs 㕈w!¢/~¿=kñ®îy„{ÅxwöàçêY1^óoÂ{£gÆñ;ëÁÏÏË'ÏE~v^|Vö +Œ“bŒßa/>¯xC0N‰1~~ž§'Ä8-"^ /~~^| +óâgáÅkæÅ3ÌÛ c¼^¼f^üÿëÅgA/j{ñÿ†÷î ?Áã¿Û!xN‡à/Êü,Bðì Á3)¤"Æmè aVÂl<Óf§(anÂð'¾`™ŸÞh–Ò+Á3_žYðIˆf)IùÒ2SFzå¨VAf*J¯2ÕªÊL5éÕ Z-™ “^ªÕ#¬OØ‚çê6¤¨ aSBüí43â³ÍÒJzþÏ[ÿÕWÄ|øÌ4³t„ÈYºH¯›ôzH¯—ôúÐûûö'ÁsUR4„p(!þŠ š‡Cä,£¤7‚g¾q<³L„ÈY¦P~átÂ<ÓΤhá\Ây<3·ÈYIo Ï|Ë xfY‘³¬¤ü*™Y-½5T[+3뤷žjdf£ô6Qm³Ìl‘ÞVªm#ÜN¸‚çêî¤hánÂ=<3î…ÈYöKï Ï|‡!xf9‘³]DWÑ]ô}D_Ñ_ 0ŽÇŒdÇ“d CÏ·r÷ã’q…ìEã²q•ìÄKèùV®WÅ`1T #ÄH1FŒãÅD1ILÓÅ 1KÌóıP,KŒ{ÆãÙûÆCã1Ù{ˆÐó­<2‹B¢°(*BEIQJ”e}ÆãÙýÆAã0Ù}ˆÐó­Â}Ê8cœ#{Ú8kœ'{ +ñ z¾•sÆyQAT•EUQMÔa¢¶¨+ꉆ¢±h"š‰æ¢•h#ÚŠö¢ƒqݸiÜ&{øeÜ!{ñ&z¾•ÛÆ€[òD|NáŸP)Ü$€„c.9î¤&†wå$̇;?î>µ‚Ò+DXŠWw(îb>üâÒ+AX2€b.ÈmbH€ZÓæý?\½ëÅz±t­x¦MåéÇúŠƒÛÀ-ÌÓ+üåÅs!žÏ–ϯdxŽ¥ïI‰÷×Ôx¦…ß_Óã}4#ÞC3ã3k,«…O˜æÍŽ÷éœòdskùŸŽ…!üÔÎ'vAy>ë\¾'½û+”°ÞEJà}£”«j¥-™2.ª•µdʹ¨V^z\T‰\M[É/WÙ5µ*1V«jV«&½êª54«Õ”^-Í­0ÂÚPêBhõ¢0êkTkdÚÆ5ÇÝšÊj3ͳµ l ­4w´ZÇXm£Y­m€\;×fkoÚ®õ÷_ ;ÅŠZgK¦‹i»º¢ÖMzÝca¶~QO—ÕzùE}p÷vQ­¯%ÓÏEµþŽ™4¨ 4íƒa(Œ‚Ñ0 ãá0ÂÂ#•ÕÆ:fŽÓ0Ûx 0&Ád˜¢¡gôkªô¦N7í s¦µY„³aŽ-w®²Ú삽ðì6ã=æ> jû3hP;(½C6ÌÃÔ>$ü(Jþˆ†ÞÖu”ð'ïDÆIj;f~¢Aí”cæi jgÏÂ98ŸÂgzF¿.<÷¢²Ú%Ó^Á}÷-ÜWás¸×ᆅ{SYí6Ḡ_À=¸¯Ü1¦õ€ð¡«*‘ëácø¾‚¯áWÕ¾µd¾sQí‰%ó½‹j?HïGU"×OÒû9Ô~1í¯~¹ß\Sû=ÆêšÕþ”Þ_ªkVûGzÿjîh=ÀðŒ3Áâ²8þ fèScÓz)J€;„Å“Õøzgc ±Äz;TKc5©fµdrÉ]›-…iSºÕ?ŠZ*ÂÔ±¢–Æ’I‹;KïŠZéeŒ…Ù2I/s,¨eñ‹²º¬–Í/Ê;»‹j9-™\.ªåvÌÌ£A-¯i °|,?+ÈBY1V㬈…YœUV+á˜YRÃl¥K³2¬,+ÇÊ«÷ŒA­‚ô*V2me ³Šµª„ÕXu[n eµš–L-õ¢U ³dj»¨VÇ’©ë¢Z=ÓÖwÀl A­¡cf# j ›°¦¬kÎZ¨÷ŒA­¥_ÔÊM-ìßÚ/j‹»‹jí,™ö.ªu˜íè’Z'éuÆÝü.>Œ®ÕºûE=Ü™Iöï0ÛË%µÞ³}\Rëë˜ÙOƒZÂl Ć²al°±0‡kPá˜9RƒÚ(é¶aŽÑ 6–p\”üxõÞÔ&Nd“È›…1E£ÚTÇÌiÔ¦;fÎР6“p›Íæ°¹lžzÏÔæ.` •ú,b‹°–X2KÙ²çP{‰½Œv¹ ká+l¥Òl¯²UX« _ckTÔ̯³µ6Œu„o°õÊjo² 6ŒªÔç-¶ÉëmÂÍl‹ÝÕÞÑÔg+{×káv¶#fÛIø{_¹×.¶Û†±GÓ_½—}€vŸ k?ávPYñ;lÃøPÓl±#XG ±ãJj'ØI¬-™OØ©çP;ÍÎ8`%<ÇÎ+Íö)ûÌëáEvIEÍìqÙ–q…ð*û\Yíš-ã:á vSUÍÁßsKSŸÛìŽÖ]Â/ؽX˜í>áöP©Ï#öØëKKæ+öõsé}ã€ó-áwì‰Òlß³°~$ü‰ý¬¢föøÅ–ñ+áoìweµ?ØŸ6Œ¿T5¨Ïßì´ÿÚ°žF ®¬È9cÃ0ôÌÆë€åÑ£Fݼ6õÂx<>y xÂçÐIÄó$<© +™ÖÙ’ÛÔS¦ä©”tRó4Xi ÓñôJjxF¬L„™y5³GVžÍ†‘0Ï©¬–‹ç¶aäQÕðë–צž0?/ ¤Sâ…mYE‹òPSF£VLSŸâ¼„VIÂR¼t,ÌVFk·²6õr„åy%Š¼¯Ì«Ø°ªj­šM½:a ^SY«³aÔ&¬Ãë*«Õãõm T5üº5´©7"lÌ›(é4åÍxs[V –¼•’ZkÞÆ«­%ÓŽ·GÛáÕ:òNX »ð®J³uãÝ°zöä½TÔ̽m}ûò~ÊjýmòAÊjƒmC‡òaªjþžášúŒà#°FŽæcba¶±„ãøx¥>øD¬I–Ìd>íÔgT›Æ§;`Í œÉg)Í6›ÏqÀšK8ÏWQ3{,°e,üûe\WUÆñÃ{y)¼¤i“¶ô%]’´iÊ{I^^ò’”ÒÒ²/–­¬•Ê¾/¥ìRe/[éÆR(m)º@‹(#ŠâȨ0*Š‚ˆŠˆ8ƒŠŠø»ÿ{ß7}ã a&"ŹgæþÎÿ}ß¹çž{î9ßûNP/ŽÝÖï§-é³ÅÒ ^[Þ吝è³Åíý}FIowôá¿3¨ïŠ­ì×sîŽÝ[»·V«ÿ«ï¶¦ÿÚ ¾/¶®ßϺ?ö@-Öõƒ±‡úý´ ±}´ØÔßg”ô¶¹ÿÃAýHlK¿ž³5öhì+Û&(Ó<Ä +Ä*q¨8\¬›Å´˜'ˆÓÅ™â~âAâÁâq®x’x¶8_¼H¼L,ˆW‰×‰7ŠËÄÛÅUâ:q½¸YŒùï²úã—Œ©}™˜ËÅâŽâN~ë3î¦Ë{e¹µÙÉ 0]év4=OQ×Lše˜«Lêé•>Í›rMøD¬Róêg8X¬k|»õ9:à`³4ºjÓMÞx=Þ 1qC%‡¨·a>ÍÛæv6sÃ%wV›”Oóæ]­éW'Y«6#Ä‘â(q´X/6ˆâq¬Øäßk}Nt#MOî•£¬ÍÔŽ6ïŒÖ›}O×`z毨÷wcLp¬Yfv‹ú°^9ÎÚáš%ÇéÇû4ïÑnÓs\ZrµÉˆ-b«o±–s]‹é\«é“ù†E}šËJ¶éÞv1'vˆb^ì»ý–ÖÙ¬‚¢>'`‡Yæì4Ë!Ì›÷b×eú2×mzA¯ì±6Wº ’=á®âDq7q’8YÜ]œ"NõÛ[?W÷ʉÖæ:·›éE½r’µ¹Ù[^ìv7½ÔM1½Â[•¾3à4³Üí¦KNÓhgø4ï½nÓkKÛ†ÛÚgªùêgOq/qoqßn}Þp/³<èö6½‘QÔ»}MouûIî«ÞöðµµyÌ`úqw é'¼]E9Pí¿àÓ¼OºY¦Ÿb·ye–Ú"*&.Îñïµ>¿ë5ý½^y˜µy&„‡›÷‡%œmöçØ÷Eý‚;Òô‹î(Ó/<Ú,¯¸cLÿªWkm^#fxåX½ã}š÷wî8Óo3¼rœÚ|I<^<Á·XË·Üñ¦ß!ºõ»îDÓ﹓$OÔ½'‹§ˆ§Š§‰§‹gˆgú-­‡¿¸SLðT³ü3àifù(„§½;Äܦĭ¢Þ±Wžem*Bx¶œgiÌçˆçŠç‰ó|»õPÂsÍ[ÂóÌ;4„óÌ;<àùf© 8_†ó5’ |Z›Q/4KC/’óBÝ{±x‰¯í®±!¼Ä¼Í/5K:„—Éy©zþ²x¹¸À·Ø½­!¼Ü¼í%\`öÎ^aöî€zˆ»BÕ•>­Í®šeR¯’s¡î½Z¼Æ×v×”^cÞé%¼Öì3Cxœ×ªÿëÅ|mwíÂÌ»_ÀEf9ÐÝ(¹HýÜ$Þ,Þ"Þ*.o—ø-­‡Yü¿õ¡!¼Å¼³Cx«y +ábóÂÛÌ{œ[búø^¹ÔÚœp™ KõFË}Z›S®0ËîvÉjy‡x§x—¸R¼Û÷Ú]g{ÿç>/„w™w~Wš÷"²€¢¾´WÞcm.á*9ïÑïW‹kĵ¾Ýz(„pµy¯*á³_[µf¿¡„÷™ý¦€ëd¸Oc¸ß§µ¹5àfYÂõr> {7ˆ}»õ°<„™÷Žn0ûÊn4ûªn2û·Yr“žþ°øˆ¸EÜ*>ê{í®uîÓëC¸Å¼B¸Õ¼›Ý£¦·ôΩýËÛ/\Ì;¹ü’ëe´wùµsqNceçRã‹s+ã¿&Ž/Îy¥Œx›÷Mäc¯¢‰´qN ñ h^.>Ñó¡Y/q2àÄ‚+–šu’ j–ÿ˜z÷ý<õõA›ŸRAäòå?§fœ ¢QùϨ—úejâgbE ùj ²ÚrÞ#NœI¬4Q%Á/笭oÜNœ­¼ã\’óMï•dœIòâ +Æ™$NÎD3Æ$9n’¹‚õ›Ü?hÃÊMÎr®rFÁ dÆ?ný1/McÐä/ÌKSšl¥‰|¬™±g=73¶f2»ñŒ³™«¹€æ¿£iº½Í©²‰áxbu3¸™¼ ý¶s»Ð:ƒf>Ò¬Ë4ySš9H³gÓü¦Ù³éwËð­3“©Ëøý>š¾3üwg’f3Ñd7NÆ“á›g˜ó 1¤¥†š9Ê-ä)-<«…q·¼†~šš}ÔòׂkeÞZ9C¶òZ‰­¬Ö¹höië׸8Ç´r_ëε1Ï­|ë6žÑ†½ùi;ëb4ïÞöýg{–9Ͳž³<7ËþÊNF³ärÙuhæ2Küɲ&³äØYþE²ìÓìœkßë‚kgµÚY'í¬“öïp½€~ŸšwhÿúoÎåøÞ9æ6Ǟȑß䦚X—cßåØ9¾wŽyΑ×ä[ŽŒ#GF“#æäØ¿9žÛ1€‹…ÜAžÛ‘äªB3Œµƒ“JߺƒxÚ™F¿GÍúîd tò~ìÃÎ×Ñü3tò½;y—•âÅ­çG¤ZYFˆ#ÅQâh±^lÅ1âXåbQ‰JT¶‡âåQMÞAüüÄ¥¨D%*ÿÅË8Ò®‘þ³x1ªM*'vˆŸö°¢•¨Då/z奺]tæ‹JT¢²=ïÌ×#5Iœ,î.N§ŠÓÄéâŒÿÕ࢕¨D¥ÏâåS{„ØötÅsã¶ÙÖ¿Ù¯À¬Š#<»;Ë"á0„‚ ‡ —9äGÂ$p…„p…+$ € á–[nT¼ZAk-T¤(ÔJk[µPÛB=°­gÅcÞþÇËÏoéÿoþ¿ïföÛyû^f–÷fö7Î3}ë¯ìpNd8( 0Nd‘ŠES—8pP`Ô¥hÅF‚S—8pP`Ô¥ÅÆ*§l¼² æ£ZS,QÙ pµ‚Ù+z5ÎÛƒÔ€¼‚2¤IàªH)Ê“ªlš²Ó•MWv†²3•¥ìleç(›ιÌ¥Æij®É™²þS—8pˆ0N™pµ"]£Få(–«ìReó¼—ÜŒêµL±àüæsàÀAi€ñ›/_±e •]£l‘²k•]§ìze7ø*88¸!ŒóÔF¾Ípõw£ý´eœg¶(¶CÙàœÈ8pP`œÈvÁÕºUÚÁU-Úþï!ð—xK‚«_ù†ÀÊçpåóœ95Ç °ò|+ŸcàÊçøK^®zpü+Þ×À_â- Æ{ó:J&gÁ•É›æøøKf®wêøW¼ï‚¿Ä[Œ7ç<J&®.ðV>Á•ÏGÊ󉲗Á_rt}-Ÿ‚ÅûøK¼%áÚ;ôV>W Â,Sêáz«<) # RVÆËXe+‚¿dY¬ÿ;V +Ÿ*aAà/YÝè]¬~• ÿŠ·øK¼%Þ’I#”Lš‚«ƒ´0Ç–à/™¹¾ŽVà_ñ¶‰·$oN”L:A dÒÕ ¬»² YëÜÔ+ŸÞaýÀ_²ºÑ9°¿(ˆÁ" +ËÈP1\ #Å(,Ç—ò%|£ˆ£ø~DŒñ"Q,™" +ñ—ù+ü4?-’dþ¿È/b ÓÄT‘&Ò±*¿Â÷òï0D€à¼€ä»yùë`°±C &*‘‰`QCc†Š¦ØX6ÍyÏä x6ņ†L†‰A"R ÑXVÖ#Ä0#b±<Ïã¹|]±ü(?*Æ‹1ñ¥HÆÊü?ÉÏð3"Y6”øûü¿„5±ºH)bº˜Õø·|ÿk &/ä‡ø^HþºXËX‡µ &*“TµDMQ `}Ñ ›È&¢_Ìñ…<›a#ÃM &ãd¼L‰2YN”“äT‚Ñ8 aÅáxœØqŒÃŒÇq˜‚©8ßÀi˜†éx–ØY™*Ódºœ%3ä\9_fâB\„Ù˜‰Y˜ƒù¸ +Wâj™-sä™'WÈ|¹JàFÜ„›qîÃx÷â~<ˆˆ]ÀñcÙB†Ë–²µl+ÛÉö²#öÅþ‰G±Àø<^6VÑÜ`1‹£p4~Ž_âLÆIx +“p"NÆWñkå=e0ÙYv‘Ýd„ì){É>²ŸdØI"ÎÂ98gcÎÃ\ÌÃ¥¸LFÊr°Œ–Ãå#GËŠ!«`!á:\ƒkq½¬!ƒq+nÇx·áÜ…ïÈå=g0€oÂC]_ ñÅ­$­Pv@æÛƒŠö|qÊA¨x‰Þi¦¤ Ô„ZPêÂÝ +õ¡4„FК@Shá´¢%Ü­á^h í =ÜÌ;]Òî‡Nк@Wè@wˆ€ð ô„^ÐúЊ‡ /ôƒþ0"a ‚ÁÅî/I†ÜôÊâE:†•¸f8Œø‰OwÄ»R–ÞÐòP*B%¨ wÀЪ@+»@þè]#Íq4éÒ±¶kq¤ñŠ%˜žq0Þd‰¤H“lë“a¢É&™ãdëÚ‹ÅÀ(5V…6PÆ:õ Xù¢•Uvª²)¤Ó Ò`:±tó3¬§Í4ÇYæ8›tŽÉ3¬Usoy7ç);Ÿt,„LXD,˼–m­Ê1ÇÅ渄4÷–ÿ–#Ž†,5Ç e[ÜÂy°ÌâÕ¡Ùå°ÂmM¾íÔ ×;;{:RåêÕÔÐI]õl² +ÕFU©Ñhüe ÎL½=„º{êïõÌæÖã›S~áªË·R}¾Õéz½«¿w1#ñÜã¯ïðC¨G«lôÙ‘ªVÆRmCu9Žjq‚ªÀ‰Ty“TµDv +UJg_<ï‹ñÖ¤(;Mû·QÚ$ÕbFoM§ž:“ºèlêžÔ/çQï»ÖùþŸ$Ë£7Ûb96ïâžh²ÄÆs­JŸ§ì2ë—kØ7âÞ¥\’¯ìJÒÕ6oé*Ò‡µGí})´Ø(‚µ°ÖÃ؛ȳ¶ÀVwÀNØe®z„téví‘{WõèÝ­=.ݲÇÆ÷Â>²ûáTóCÖ?¦=bßÈãÅfO˜ãax’ìS¤Ï¸­Úmþ¬ö ¼#?³ØÏá98Gáyx~/’ç—ðüŠÆãðkxÙí¾cÚ#÷®œ(6{E{<¥ENÚøoÜ®"}Í6?Múªöˆ}#glü·n×^'}Ã6ÿ=éïHÏjÚûòÓb´Ø[Ú#Ô#o[ì¼CöOŠÿYÙwIß·­=Oúé_´Gí}¹`±¿Âð7ø;ü.Â%ø'y>‚á/ÿàß7ù¼áSí9ý/ä?6þ™Å>×—nùÂÆ¿´ØWÊ~MúbßÂwd¯þW{ľ‘ï¯q×?Ÿ²‚´LñõLÞì“jÏí6„•õè-§lyÒJ6ï¤I+ßÔ“+èÎí¶öåN‹Uaw±ª¬ bÕiVƒÕdµX«MünVŸ…Ùî©KZïGžÌB‹ÍëèÎð'îK·yC·y#ÝêÖØbMXSÖÌäÍY “…ëŽP°–½÷°Vº#Ó+¬µÅîemX[ÖŽµ'~ë`z;’Þ¯;J ûÒÉÆ;³.&ëªl7Òl×»ëŽÖ‡ûa±ìAÖ“õb½YöëËú±þl‹dÙ 6˜ Ñ©÷%Ê£7ÚbCmÞaº£õ°á6>‚4YŒ²£<¬Õ±o„öè£ìXÒx›wii‚î¨}°/ã-–È&°$–Ì&²Il2›Bž©lK¥1Í`3ÍU)¤i¤ÓuGîå}™åÑ;[w\º…ͱñ 6—ì<6Ÿ-Pó…ÖgêŽØGû²¨Ø,˳YÙŤ¹¶«y¤KÜî_ª;/íË2‹-g+X>[ÉV±Õ4{˜´€²54®eëØz·ûŠtGîå}ÙPl¶±Øl“îèô Ûlã¸]ÛBºÍ6ßNºUwÄ>Ú—6¾ÓíÚ.Òݶù^ÒGI÷èŽÚû²ÏÆ÷[ì€ÅêŽP°C{Œ=Nö Å+û$éÓ¶µÏ’>Eúûå_E•…ñ;'•B „NB’GAŠŠ€H^DªbÁ²ˆ®²³®…EWÁÞûº®º®+*½H“&"VTDl°ÅÝuW׆²ß;¹9;ßü^È;ý½{2ÿï›óîÌ=s3ïΛÅÚUGa^^÷¢³ÄYê,s–;+œ•Î*dÖ8k— ëœ ÎÆJžoµ³^ûšŽÊ¼lòø—ÅmÖ®K;œ-¿UÜ6ævl;Øít^_ÅöŠvÅQš—]ÿºó†uo2߶û°þïTúÌok_ÛÍË»a³ï9ïƒ{°}èÉ~„m/¶}•:óÚ×vDóò±¸OœOÏœýÎçÏØû‹óWçsçïÎ?àÿí|åüÇsÌØþås¾¿9_†ìÿSû +«9/_¶ÿÍaûßjW¨Îwâ¾w:?Xÿ£sˆLБz…:A6›@‰Ö%iW¨”,.…R©¥QmøtÊ LÎfa«£]¥Â¼d{|]ªg]³>¶\Ïç ´«â¼4—§]K,å‹;Ž +´« [a#•Q{|f¡öLÄBPSo¦]Mì5÷øÌ–Ú5ÅBP+o­]Mìµñø"íjb'¨X\[*a-¥2íª|« P;j•‘:ˆëH´¯;bµ©K”F:^\W:Aûº#VÛºÓ‰Q©‡¸žÔ‹µ7ž¬=a«=…úDi¤SÅõ¥~Ú×±ÚþtZ”F }­U¬÷ô(3PÜ Ì:„†‚ghÏ€O½Ã¢4Îpq#èLí«ŽXíHE££2Òqciëxš }ý!žåñiMŽÊ¨g‹›BSµç bµÓhz”Fš!n&£}Ýa+<ÏãÏ¥Yt~TF½@Ü…4›õ"º¼D{>¤®9)ý,J£^&n.]®=«½‚~¥‘®Ô¾Ö*U{Í‹ÒH¿çÒ/Y¯¦_×hÏÔu½Ç_K×EiÔùâ~M ´ç l…¿ñøèFº)*£Þ,n!-Òžƒ°Þ¢2ê­ar·a»]{>tƒîðø;µ«‰ »ÄÝ-îl÷jW¦t_˜ÜýØЮL7èAŸüCÚ•é=,î«Òcàoµ+Ó zÜã§]Mì=á“ÿ½veºAOþ$ó= þ¡šç{FûŠŽNÐ}òÏjW¦ô'ŸüsÚ•é-öÉ?¯]™nÐ >ùµ+Ó Zâ“_ª]™nв0¹åØVhW¦´ÒãWiW;A«Å­·ÛKÚ•é­ “[mƒveºA}ò›´+Ó zYÜf«[h+¸M»2Ý íÿŠv5±´Ã'ÿªveºA;’yv¯Wó|oh_ÑÑ zÓ'ÿ–veºAoûäßÑ®L7h·Oþ]íÊtƒÞ ›}_».í =>ù´+Ó Úë“ÿP»2Ý }>ù´+Ó úØ'ÿ‰veºAŸŠûŒökW¶ÂQÓ¶ÞAd3‘™ÄLf¦0S™µ˜iÌÚÌtf3“™Å¬ÃÌfÖeÖcæ0ë3s™ ˜ ™yÌ|æqÌf#fcff!³)³³9³³%³³5³ ³ˆYÌlË,a–2˘f;f{ffGf'fgfæñ̮̘ݘݙ'2{0{2{1{3ObžÌ<…Ù‡y*³/³³?ó4ææéÌÌAÌÁÌ!Ì¡Ì3˜Ã˜Ã™#˜g2G2G1G3Ç0Ç2Ç1Ç3'0'2'1ÏbNfžÍœÂœÊœÆœÎœÁœÉ<‡y.só<&n‘ žj‰2Jb“$ŸìËdé“)Ò3­Æ™*c¥›Zâ3+Å4é_§R¬-ýëÖÓåü9&C|®/3¥OÃÌ’žù!¬#ù‚*3[Žm\ƒ¬+£ZÖ“L³*0GŽjQ)Ö—þ­*Å\éß&ªl ã[6”LIæIÏ2Ë|É´«2“c;D`ôìTƒl$£t acÉwõeéÓ- ¥ç‰5Φ2VÏà}m}ïJ±¹ô?¹ +l!Gõ9Êl)gîkÙJ2ý}ÙZú ˆÀ6Òs`‹$?¸Ê,–c‡Ö ÛÊ(Ã,K$3¢ +,•£FVŠeÒt£ÆF•ídÜñ–í%3±Rì ýÏ +aGÉŸ]Mv’3LÀÎÒszp}²~f—ü¹–]%sž9Aü–Ý$3Ûtqp±þÒJ±‡ôŸ†=åÓ¹¾ì%}®¨{Kÿ+Ãð$ùt^p}²ÞÀS¤çÕ¾ì#}®©O•£® þòéüì'=Týå¨Ãð4ùô&Ë’YXž.GÝ¥çm!$ù;,Kæ.3Dü=!*ùû,ÏÌÁuÑúpÃåÓG‚k¡õ™3Å?†#åÓ'Ì(ñO×9ëŸ6cÄ?\‡¬ÖŒÿœåxÉèí®¡à7çkèƒÆ8£ OA'¹&o¡ÎZ×$á<‰Í çC‹ —C;Cß„ÞæšT¬dÉßA±B%ÿÅ=’2ú=t•kjáHm] ëšô|¼(î…B?sMæµÆd ‚î>ìš,¬°™äšìð’7ú%ô%×ÔŽ›]Š»4»±krp×›ý +ºÉ5 pÏä¶> Å'w¡kâ] ÷ ×ä_eLÞpè<èX(¾»yÓ¡ /»¦Î[P +Å=Vкz—kãø‚o XÑ ƒî€.vMS<- +ó¡XÕ ›º¦9&·Æmþ ô}×´À÷¢y×´ZfLËG\Óo}-Bñl5ºú¤kŠ /¨¯wQÎ_ŒodÑ(®¯h ônèJ(¾E«¡ ¡ë¡‹ ]S´ºûx+@qÿ_ÝýÜ5m1Ïmû@/‚öµz?t#ôK×”à·YÉ8(Ö¦’uÐ}Ɣ湦kf© }ú ô[è~(þ¯e=]S†ïY®«lµ1Z® à~`&4:š½š ½ Š7ÔÀåP¼C®†â>,°ŠzxS +Ü`÷o¶û‹ ˜ÿÀ­Vq¿ðî¸Óžï^Œú(uGóÀ¼pÿž†&C_°u¬²º š]m÷×Ùý Ð4è&«[p½˜—ÀVè%ÐíP<‘; ¸;¡BwC·•ߌcÈ$˜D“d’MŠÁl˜ZœO3±ØjcK×."Þâ-ÞŽzË8¢£3MÖ²c¡…VI&Û“#« ØMNÈ1db³%XMd&™ÇBý¿ýGx>;ÞÆÈŒ5Þö^O’Ï1Ú-ÙjÅóz‚ùés<Õ>Ácû}+Þâ-Þþ¿Zùs<£šGgâkºgß1sBöÊ[p­}rÆN }ó‹ÕgH¼Å[¼E·™Í5¡«X°•ÿn‹Í–l\ñå¿1c³U¬ºåó˜l®7ÞßÄås뿉ÿ÷äÌÔ-%Þâ-ÞŽbËbÖ©æÑÙ¦®¹é¿ìW˜E~©g6'2 HTr’œ3¨à +*A‰K0‘“äœ ’ƒÞ ˆHVÀ숧†ãŽÓOŽ$A2ȯ¦fv™]fº¿Ùw†ë¿¿ú««þ÷ª^WÏÔ«¾c±Ü} ,÷îëg8# X ®˜WÁ­¼áêuds\Öpfw6lظ+ƒ5àë{!x‘~§7`xŸÃݧpòs8xNâ6lظ—%ïuŽßv‡"¹»Àt-‚]à;‹|· 8‘šñÜÙÅ€½1«¸àÎ,Á›U\pe–¬ý +mØ°LˆÉ’w,ÄÁ>UƒÔ=˜ÓNц*8žf‹žÚ½w'Œ´;‡*N8 Þ{µ»¼vìàC¸×}pf6ld‘Ö&&ˆRg·”Ûz>lCá<í†`¸›Pˆßó=€Þo³>æïö~ÃOvÃá©=™óÀíß`ažÜœY3kÿ}6l+¢4GgÒ;b±°W±‚wËS»öêô™3xþk0Xsˆ 6þX¨“V‚ô»˜ îs[pÂ5!5b÷ 38‘º~î³±€÷™X¯}П‰oeÎsS6l„b5ÇeÒ;°Å‹åî±=¸w_7‚9¿¥ÂáVf^vƒ[™Í•÷\™-¸–ÝØ°aã® “Á×Mð"ýŒ}Uøƒ!ö~+ñÜ!W4"­5RÑhUÆ€÷·\0ÃúÄàÀ±*oM­6NŠÖÂBp¤ÿ%‰©}vBp6„ÐÚãì•õuí¡K!„Ö×ÂBðM¸vI‡f'®†z7¸B(Z¿šûßjà•±áù½ø‚w@½ü\gžpo¬ý.¡µ÷«¥þ#öB¨<÷éq¿¢Ÿ¼ÔêÏõ€¢ƒ^šëûˆñºýU•c©öº÷¸jœRå´*gT9«Ê9Ï8ç]¼m–K5EÑÕÛf¹æ˜Ð{RLê×FNUÂT W%B•HU¢T‰†{âýP Uµð%|ï ¡Ð2è ]¨?:¸%½+Â'ø7Ú@›h \Ç0Œ€›Ð•¶a}L;èSú¾‚n°“;b ÆaìÂÜ´sr{ÚI»$‚OóYú†æ`^Ú —1?MÁXˆöÒ´„öÑ÷ôoøþ_cQ,NÉp¾¡X’“é?Ãçù"–¦_hŽ¡ÿÒ!,•q¡“tœNÑ:Gs±t§ X ÇÑ%ºB—á;Ø {`ÖÅúôôÀ†4˜fp/‰ã­ü;§°°s6ÇñÁ1|•¯cK|ˆãà&ÃUNàüØ{á#\€ süßÃø>í ŸÂö4;r¾Kp1IâÝ|SËp9®À•ð~«pu®Éµy œÀÎ<”Þ溰ËØ•ëcw8 ¹1ô‚žÐžCFƒ–Cxž “[Ñz1ø$Ÿ¢´™¶Â ÇHõ#{¶c4}BÐgô¼/B_9 æ¡•˜‹;Зô•Dò>Gßbæ£=‚‰4GbaúŽþIKé_ôíç¦0úÃ@,†%¨' ¢AXŠ{ÒOËø–áãt€¦ãX:H‡±VÁÑt”~£tšÎÒyš‡Õa0]ÄÚ8‘~§«”Ca ƒ—±6 U0њɽ%žßãË|… vbÇ8#9–¯ñ l…s<Æžpsp"7ÃG±7¶æ‚\„ ÁH£ðql‹OÂh|;Ð0ìĸ(—äâRˆßâ²\ž+re|–«qUnÎ5¸×1Jñ 8‰]x­åz°[ð)ݸö€£Üˆ›p>À«ùZ@“h-¤É´÷È99/g匴–6rA®ÈUé åš\—ÞÒGnN#Ìp†Ô’a2ÜH4 +Èd™bä2r9#^jË<£ ‘$+å £¬‘:r\ŽI3i.§ä¤¬•ºÒVÚÉ:©']¤«\–K²^ê 7¥¡ô“þËFi,ceœmÄÈfibDáÒHfÊ,#V¶JSY(‹Œ|F>ÂGùWÏ1…GñTŠç±?$êºLg“…n}jfuŠsÁP¿h§Ê©W%BåÆ(UG«8buNPñdÕßGδ'ÊܺäöÝzËçßàWÙ¤y³WÏFV[LÆÞ +ïYÎÿ¾‰¶ ¶[úï0U?°ôÿЯò±æO¼z>òaõ©ÉØŸÁç–óÿÍDû;|aêëA}ñ(;4‡kŽÒ«9As.Íy5'jNÒ\DsqÍ÷k.«¹¢æªškh®£™Üó.Óóê[Òýâæ4•ÁH»w¨ËCÛ8ÿÇ~u€GUtÑy„@  „*„ÞB'´@è½ziÒ{ï½IAš4QEAE  ˆ‚€½!¢"*( +" ´õÎ}ã°oÞî— ßî»kþïwϽsö¾™3“—™YÕ·a,T噡%>¡X“ÉDõmV®òìP+>áX“ÅDõmN¡òhxN|"°&›‰êÛ¼,Rå Wñ‰Äš&ªo`Q*•˜‰(¬Ìe¢ª).1·bJY0éÜøTUeY Æ(>Nb^$bð©|&ªšJó+¦ªÄHäÇú‚&ªšx‰…S f,>…°²0b3W5 ‹(&Qb¬b²¢˜Æâ³Å‹›¹ªibÁâŠonÁŠoÅJbZû)…XÚÌUM[‰¥“$±Œb:Š5†O|¶by3W5]$–WLw‰qŠéÉ*`‡ÏVD¬d檦·ÄJŠé'±²b°*˜VÆg«"V3sU3Ø‚Õ?Ì‚Õ?RümáSû©XÓÌU͉53^b-ÅLbµ1­…ÏÖAL0sU3Ub‚bf˜˜àºÝ,Áuwi²Ëu â2h·‚üÄ6Ð^ ùnˆ« ùÈk‚¯KvÝ +±øÈ¡Ÿ»õÀ7C>bð­O†Ø|ä#!Š±vB>bKð](ÆÚ ùpˆûÀû&»n‰¾÷ƒ÷‡<b2øIÈ·%¸\±à“]·Ã!.¯yÄÅà5 ÏæâJ€<Ä•à‰GA\ ¾BÖ¯o&ë7‚·„<âp˜×í·ƒï…V÷¶ÈÏ@>òÓGƒ†ü,ÿ+ +ù9&þ6Œ…ü<Äiàe!¿q–x'!¿q.ø ™/ïäW .ïä× ._ù ˆ+Áamïtƒx“1#òC{€w†üÄ^àÙ$o³‘ò#€÷ü(Ä!ày!?qxÈO±{ó,3ÏóD1Oóü0Oó´0Ï ó„0O…pù|f#TÿåX‹l,­ÌDœ b&¹dŒ–1FFóä* [e4Ïž",­¬‚8ÓÆLÌÓYœ³b>¥e4ÏÑò²'£yúU–­*2šgV² e«‘ŒMxI°R`#øD>‹/âµy#ÞšwâUy5Ïkðr¼<_Ã+ðŠ|-Èñ!|(ïÅ{ó¾¼T6áMysÞžJàuùzžÈëó ÐÓd>…OãÓ¡×Q|4ËÇA]xWÞ÷€ÞÛòv|#Oâíù&q _Ê—ñå0ú>—Ïç »UÈœ‹Ð¸ˆáþvŽ¹VŒ­9ÈØ87/†³$.ýE8iþý=•!Å_kž,Tea^k2ÁéYVØÕEÌ¿ Øsc+ZUæ‘1î÷ùd^à¾tùfSY_vå{­ÂˆE|z2îú÷«²8ÜûKÂ~cÀ^ãΗ=Ç÷^ÊÁÞ”ºqãàN7x« {[UØתÃ^à[ï~­6ƒ³1î6Eá·šà"ï{g“ØdŒm=|×|ë@®ñÓjÂo³”jjÃo³ØÏÿm×c‰dzë³~é§!œ@îíƬ‰£óhÊš§XÓ‚µôú]+ÖÚQ½)[b›<=œµ f…{Z&ˆáX‘Î༕EÂLüN‚›™¸—EÃ]Lü>÷°üp+ˆwŸÂpÛ‰…Óº˜º“”Æ[ÃÛ…¸/ˆ»Á½»@<ÜÄ.-nÕæ>,ö_q›n€»Xcq‹†ý„ÁM 9îbohg­ø?L‚w°¼ƒàœí"ß>ñƉ·L¼]â­o’x{â|á›"ÞáÐïƒxÄ_ü­ÿ¿.ž×åÞ›?Ñ÷ÿ¿e“T6™\K0™¹‡M%×l6MeÓï»´h3lÌLrMÁ`³<²³SÕGZ´9ٹ亨mž™Ÿê>Ò¢-@t¿ /bâ.læ‹ÉõQÙÄ¥û˜[¾Œ-'Wé¼­°1“k +[é‘}‚\µ­òÈ®&×EmO"®qcÖƒ¯•ùðuì)r•ÎÛFì&r]Ô¶q‹ÆnuËŸfÛÈU:oÛmÌrMÁ`ÏؘgÁw¦ðÔsäºmÏ#îrcvƒ¿ óÉõQÙK6æeð=)<õ +¹î@Û^Ä}ûª[þ{\¥ó¶ñ 7&ü€[ûMv\¥óvÈ#{˜\µ½…ø¶ÆqËßaGÉU:oïú¥—÷Èçáo;æ—^Ž“ÏÃßö>â rÁf'O‘ë6ûñCýÈ-ÿ˜}B®Òyûñ3ýÜ-ÿ‚}I®ÒyûÊ#{š\µ}xFc¿!×Emg¿ÕØïÈuQÛ÷ˆçÈu›ý€xž\G°Ùˆ?iìÏ亨íâEý…\µýê—^.‘ÏÃßö›_zù|þ¶ËÙ+亨íìUr]Ôö'âµT>u\w íâ_©|êorݶ›ŽŽv‹|¾¾ÚmGG»C>__í®q‘k +3˜!× f„ؘtÔš‚ÁŒô6†Sk +32¨,#µ–`2#TeaÔZ‚ÉŒL6&œZS0˜‘ÙÆd¡Ö fDؘ¬Ôš‚ÁŒl6&’ZS0˜‘ÝÆä Ö fDÙ˜œÔš‚ÁŒ\~é%7õ<ümF´_zÉC=›£²|ÔZPE^jRG~•¤Ö‚* +P+: +Q+Ðô<@­@ê(L­@ÓS„ZÔK­@ÓS”ZÔQŒZ¦§8µ©£bI-å–—6Ê’©+C6r9Äòç–W0*‘©«H6reÄ*àÕÝتny5£™ºx²‘k"ÖOpck»åuŒzdêê’œH5r*uÖwx¼Ô3öQgC‡Çk„ØXc›P¯ƒµM©bsmA½^Ô¶tl¤VÔsõQgk‡ÇkƒØVcÛQ¯ƒMg⃎×±ƒÆv¤^›ÎΈ¯ bWíF½6=»;6ÞCˆ=5öaêu°éìØ˱ñú öÕØ~Ôë@mÆ#ˆý5vµ.j3"ÒØÁÔº¨Í‚8Tc‡Që¢6c8âI­Ë¦s4â(Çƃ8VcÇQ¯ƒMçÄñŽ7q’ÆN¦^›Î©ˆSoâtA½6³g:6ÞlÄ9;—z¼¨çØHóhìBêð¢öQÇFZ„¸Xc—P¯€µKé1Äe»œz¼¨]áØH#®ÔØ'¨W€ÚŒUˆ«5öIj]Ôf¬A\«±ë¨uQ›±qƒÆ>E­‹ÚŒˆ›4v3µ./j·86ÒVħ5võ +xQ»Ý±‘v >£±;©WÀ‹Úgé9Äç5võ +ØtîF|Á±ñ^D|Ic÷P¯ƒMç+ˆ/;6Þ^Ä}û*õ:Øt¾ŽøšcãíG|CcP¯ƒMg2⛎wzÆ>ê<äðx‡©gì£Î·ïmêû¨óˆÃ㽃xTcߥ^‡Îø=ã˜UÇß×ØÔ꽨ýÀ}œ4NùPõ!õ\}œÍG÷1â'û)õ:pÆŸŸûPõâ—ûµúÀ™qÚøÚ‡ª3Ô:}œÍ7wñ[ýŽz8ãïs–ö«Î#þ¨±?Q«÷2§‹~èãgã‚¥ý‹Çª_/iìoÔ+83~7.[ÚW}zº zºÓ½Þ ý>ôå%\ÅÇ^†þzÕÕ/¡_B¯Eˆq>ÔÒŒsÅ ‚Ž¶2öãЕÐMPì½övè&è>(Þ5ûÅÕ؆ç‹Õº€2µ{­ßAQ±'áÔO\ E­•¸Šª*Ÿ—xºŠûIüN„Bø»wý*BN'ËUt)퉃sÄAGâà-rÐ8xSt"öý‡3Ö½Æç +q°—9è9ìºú g ]†ƒ}Êé-EÃeAñ»¡wsð;wЄqÖ;è +Â- è¨ctaäáCQ³8è¨Wœaîüw•è/PTý!|Û*þÐI(ªýл®¾EÅÂ^à ªm¢~á qP©‡ÖCQ¥‡ðœTè¡ÐG åиÏehOD¨îq”Àè“Qq§ +IA­Ö&B NCÛ¹ºqä“Ž®4'y¦l†¢ƒHÁóO?¡Tì¢x.©?îŽPòËD皆J/ýjòËLr¯Ãî5:Ò´ÕÐeÐKÐ JÇ™›Õú2ïYªöl¬ËÀ<2NA?ŠP&î'ïE&ê±|™¨¹rº»×=Ýk|™ øœÌÏѬâs²p.çâs²ðù¹ç#”Ú:ÿ_6~›y/@?‚¾ž”÷ +ôCèQ(žC~*ô2½QÞ‹|tJ98'óÏB£PÇû’sš Åï `]„rqn|Å9Ðß{òox Š÷°ïg¾çÂ5ÊÇ}~ +}ž¨zÇ‚0ïKÛÓPÝ订]U´›ŠvQÑ;§½—˜‘*á¦h`Øí7CØÇ)Œó›pv»{“ùÚ¾÷X`ý›MuÁT +ê¥À ¬2˜¡40˽ŠõwÙäÝëåÝ´®‚½,°À« f¨ˆ¼ú½À ,°ÛmLÍÁ–ÔHXe0C­ÀÖm0Úb´£` +,°À*ƒjOÁ~X`U3ÔìJÑ=©›°Ø£—\õöûc Àˆ1è¦OI âÿˆ”€C1†a Ç1cÆhŒ1c1Æa”bŒÇ(Ø€1c’~Òdõ¦‚Ó1f`ÌĘEUm/5wú ,°oĘfS°X`•Á˜п÷£ªñKç;}Ø7b6-¥`? +,°À*ƒÙT®ÁXK7ö¥ªm­#äñ-pù#—¨ÚH~Êf3ù)›§ÈOÙl§h6;…Ï +÷÷’Ÿ²ÜO~Êæ0ù)›ÉOÙ|ü‘Í«ä<Ž‘?òøù#7(šÇqá[“äüÞ#äqŠü‘Ç/ÈyDÍÐòS6gÉOÙœ#?es¼ˆñGŒ©ªdfáÎÿDUén+2¦Kàß©*åò9U¥»½ ½BUéŽÿ›1]%?äÂ6]#?ä5NˆÎû%—äŸ\’ȹÈï%¡ù!—¨qB +ù'—L¤’göšýfŸ9`­±¶YǬ}Ö*«ÜZnEÌÓÏ âêÖZk»õš™`Æ›If…)ç$ë÷fŽ™eæq]k¿uÍ:h]·V[Z+¬•Ö?­ÖW¦¿ékr5SfJÍD³œ­óf¶™iær“lØ9v®jJÌp®a†™!f×´ó¬·­w¬ÖI;ß.0d,“`Œ©gê›Æ¦È.4MìF¦©]d7±6Y›­uÖzë”õsëˆõ¼õ‰uÉ$š$“bRM±i›Qf²™b曜Ìõ838…p}NçLNå|ÎåFv.↜Ç9\hqc.à¿ñ;ÛÙl×æÎvØNá^܇ûñkÜ›ûr~ñ`Âǹ˜Kx(¿É#xäÑ<ŽÇs)—ñ$žÂÓø=žÌSy:¿Ï³xÏãx6Ïåù|†ñ~„óR^Æ+øQ^ÉåáU¼–×ó:~Œ缟àÍü$?Å[x+?ÍÛx;ïàü,ïáßð.ÞÍÏñ9ÞÏù0_à|ˆðEþ+a'Û­þÅnÕWQá÷œÜ“{ɲ$€AHN>¸7\ÃW>6šåÒ[ Á4 £† HDÐR´2©¢c²¤¸!h Õ¶ce´b«Ói§ÔÆÚδ -S¥ÓNúœ³WˆøÃûÎû>Ïž÷9»{î{˜& Åt‘/&Šˆ˜$¾8/V‹5â.±VÜ!*ÄJqgà¢(e¢\ÌóÄ,q˜#JÄsb¶Ø*Ä6±^lŽ¢FÜ&nQËÄÍb¡¸E,Å"Ñ(šÄb·x\lõâñ˜Ø!®Æ~j#ÿ|®< Ÿ_¯ƒï‚?E!r à7ÄðOªbâ€ûåý«.¥HÐ1}ü²u¾n@ŸÖqnWoO\¬~­'é”Þò]ñª.…ü5°öÖx¾Þ¦ÖÈþ_c¢ŽA¯Ø»bÿßv©ÆüW5º|¯T quàR SѯkTÂWÔ(ÿŸÙ¯`º^Ííÿ÷IÔ¬j–®ZÍÊ÷h2|Bþw'îò‘orËešÇ#<Þîñ]€T?HñøN@²Ç óø#Óã;C=^0<¾äñ:À? yü!@Ðã=^ ðø6@‚Çïà °Àü;Â=²\þÎao;,ËbYÅlw”íÇž,)àxšÄ^‰7q¯Â}?¿ñ¼ŽïhÅÛ¼ ±—¯D|YG_ù¤Žëù·/â«1ŠÔjÉW»,d—|{‹jÈd¯ëØ®cÐN«1ߪ1טÏטu5欳¨Æ,Ib¿ bä;u¬Òq¼m›/›[ŠÍÜb%ù˜¢hž¯ãX¯²Ó¢f_Ô<5FÍŠ¨y[Ô5KF±FÊC~‡Žõ:nÓqŽ‹u´tLµSóÌòÌyæ³yfež9=ÏìaÉÔ…\’=¬ËüC—9¡ËÌì2»Æ˜ÇÙ›”̆¹É4¤›½ÉÍsôØE7–¸àÃßÜX༠ι±ñ²d4û#ÅBx?ì#Š±Û€Rk@Ýÿ–Us…¿aÕúþ×d±0ð×êA÷÷}ø•ï¹ÖrÀ;®•8íZ9€Ÿûð3×ʼá:Y€S®3pÒu®ôºN Çu*žëô^ñá¨Y pÝÈvy‚uP„·cú:76­»±±€ÝX ÖM—%vµê5nŽ?Ã&ÜïÖÕ³m f_OÍ:«Ö÷ë€*7«Öïâ.²u¿Õxf…«\k>¦YáZQ×™ Xæ:‹e‰É–’£»•½Â%8¨N·¸‘vȹ‘>¬ÿæøú¸‘Ó²d»‰ ˜êåPX«otàžÿ*ñ¯‰?A>V®ð²õW™@–ž4Œ*]®ÿr\k ÛµÊY®u Ãÿéþ›å:êYF¨·{‚¥PD÷7ì4ÌÿϘ”cãäç­}ò3ø…nµ \ù©å±°}•üÄê“ç¬)ò¯Ödù+I~É•ï7÷¨•Ð(²FÊ3Vª|×.O‡ûäëØo?Ž'­JÙ‹ ò²í˜,_²¦É¡²ÝY+;ªm„|}ö;{ä^ô{ÂZ+Ã~{½}µÜŽMrÆÙ+7D<¶ÿ˜\)”ë @]YÆâŽÉ»Ã{äš°ÂrW5{œÙ†üֲܙ(—:ê>I-™À-U§6ù…m£_Ãjü¶Á¯Zëý¶Â/W+üúv‡_ÊV-—åÁÉ‘³1S»+¯S‹uå GO?5â©—6©U½´B91’'¥“$—voÎ §¯ Žf3‚cƒi¡á¡”аÐÐPR(J B­åÛâÛøÎ8ÛÉ·ÆÙV¾E3¨ævÎ'õ?ÚÁžHµenúÜásRgÌ+$TÄcþå+ý«: ¦@YFÇ37-YÖq$#Ú1E‘þŒèM×,ÉŠ-ëæE|ZYi7/T]ÖÍ6ò¢²Åªm,B¶@˨•BF1%äP«’QkBŽ–5(YgskYigk«–ˆ}Ô¬%ÍbŸ–´û#Y˜#Ù KL"KˬÄ$%æÐ:VM6³m­̪•ŠUNÖƒÒó…Ã8a%éÌCÐÎ×é —Ó‘l®öÓÕþìr¾Àïží糑Ïÿ_ºª®ÿº=Ž6mh+«Ê-«È-«‚Wt4mY“ÞQW™•ÕÙpV%²:ÆWT®Z£peUÇÙܪҎ†ÜҬΦ¶AÒm*Ý”[ÚIme·.ël³«JÝ&»©,weiôèÂC Z¾4WÃ¥¹d°Cj°j®…-ƒ¤[Tz¡š«EÍÕ¢æZh/Ôs•ÝµäúM®{7oöÉà¯aÓgB¦1‘jY%â¸ðÅ9“‘b%átA#p7–jÐP* 2a ƒ(¤X€†S*øX12`AÊ„¨çr¸AY0ƒ²);Ó \ÊŸM(K4‡æ ;fàðj#{•€“J‘]A+½fPU »fÐvªD¶fУ´ëÜE;Á`DOR#x í -fИ ½´Oñ4=§x&èÛ0¢ý´šgaDÏÁ ú}üûtüyÑ ôðÃt#¡#¡fЋ° uÒKÐt“‹–:~¤Wa‚^£×Ы—zÑëÎ×DoРü LÐûôS´üž>@ËÇô!øŸ`£?ƒŸ‡ úfÐßéS¼ÛÐðÏ`‚¡ÏñA3pX4ØD– ~-þç 6 ÿúĦ°ÉàÓÙTð™lx›^ÎæW³Áײµ§–­CË+ìA´t3¼‡á)Ø«ìx/{ ü]vü ;þ{ >…ýg*ŸšŠ³0Ÿ& ”ÍBð"^^Ì‹Á§óéà3ø ð™ü?DW p×}oß®ÖZ­¤]I»+ËÆÒêc,ɲd ËöBmlpl¾)_AMB †ÐB·SwÚC'í´ pêx -I˜`HMí¤˜OiëÐO…^ÇøMôƧÑiŒÏ£3÷¢Œ¯£w0¾†1A71¾>êUôÔQê( &ðkRé>t&êiœKÌV -)o„HÚ‰µO‘N„‡^G;!ÈÏÃN^Ú#{!¶–±Ds&ÑÂ'š¹LÔ&2 í -‡"¼Ìûñå£îø°›zú?G>DzTŒ]•Cj¥Úp¸Á¥„+ ]Bô#§Juö:Ùétèêè:Ùl& ^÷p1lðogîfîò–xuÐñùçSw»öH)ýýýᛎFT -£å±i†1Z¥=¨8».xa&EÔ+õˆä fÃ{žžÆpJ}žÑQWªPm-sL¯Î‡½V¿-ä -¿²(5£7A} öVsUVÍÉרÝÄVª÷vBq9t†`V’5"ÞhµJ’É[Åç[¬å%Él–š3c-õëëîÚZK<ñÁ¤¥"æt´Žç$QŠýÅhÍŽƒPè._´¸üµëmopÈqwâp<µõ¼šTW÷<¿-¾ñâðñ‡ æ0s°‚9Š7æñ„Ž"cÂE4ói0ë*æŒ)ß&<”—¯ËñËLòHd‰ð)Ë´ z¢±ŠÏù‹ýQRy¢ò/)ç™î(fÓ MwÃz±£~{|{ê<|íÙšŠ¿<þwu4Çç˜ÚAÂj`-Jà"xÇ>€¥d·³4 I°òZùk0q&f»lÊÏw\–7O¥'˪9­•3ÃG"Yb€иY1«h¹¿ØãÖyܸŽÙ2Úh}.\ÂlL‘®zE²iuj_c›zA -™/Yê›óšŸÜû\w[c 涮!šˆ&LÈ©è‚ -ä“TŒôÈ›³‰åî`óP8d•y%| š‰¦ôd\ŸÂ ŽËŠ+Ê31*dÈgÿžüõPÛœ‡j`–`–ì±õëµëÎúÊõZpbýŽÚƒÝB•Šo§y§’RE'¹“¶öã…yL§…":FºCô˜:~/CÙãÞLf¸œ¢t-~ -HzÅHÎ _®eFà¦o\6ŽÖžì×ÞpÛ܆N¾¡®¾Q}ïµïŸü`ÛÏöö|÷|mL4ÒCg®8o}}öÜWj€X8ð«+×ÔÔïw¦Z÷4ý(û><3Ú1OH)ìq¶—½ÊÞb¿b)4Û‚5 lp;–&1¶bì,þ$a/žŠÌ¯Ìþ’%Ø>xM1›I„l&Êʾ/BÑdîƒ{Ñ[$$EA ÏŒÁ¤ÖRüËdúü2ÐB¬(›ŒW;ê‹ð61"Èí?_î æ—Ëq‚ò6vf@ø‰ð¸Â3bù_nݲ0œ«›sÆÜ‹À&Elç ÍCI”µ}=öã¹À%A Ÿç¶ˆeéfŠI@j -³¥A)˜&ºƒÌ—Ó»érp#ŽþAÇŽ›ö4ž=qP›é¯Í$ãx—4Å9îÀ„Æ&+€&×gÏ”h(Èe±Š’=°¡õHj×sóKœ•uÿìêøǦ½êo¡çH2^ýèt>õÃá£Ožhš^kèÊûë†w©·ù²Mê¢\LΉ¿¡w©Ý ¼©,Ü~g%]¯Æú¬=¥OYw:w¸ÒmÂß!ý!¡Ë}\U°ˆ.½‹q¹\rÌ“cîEúEL—«KfQ -@#»DÑëøR¢.Pô%¼ƒ*í(1Ê}ðc…ñ^4AÓƒÓà´ßÀ3€!Œ -s‘‚Ôo( -âÔ`A&ÓcÉt’Õ„9Ä¥µÎÅíÇ·àPv¶$Vj¶…ýÑØÿ“ãe'²„³#A­£å\{CtEÙ¼ö好/FWíZ»¼¡df ´¢ã½—>`š–îzþÔ9õÁ¾·j¡eàÐڳߩ™-Jêwlبxìîé|á‰ýsøʦ‘WŽ­[üØ‚)oËö‰•ü=Å» ½€m¨ Go½(²1¤‚dcC6#i²öÁÅij IòV@òX³Š‰1°fÄ™Œ"²Y5íÞND¸Ýwí‰)Q=hÇ^t ÇŽ•<–ø$щ£)Lj&h’K.¡¥ò(Ç*¬°"ÂG6I9JøLê–•–Ò[кäØž=ê• ôDCfÐ*b— -µª†¾ûÙx*'>ÍÆc%`¥’Û çzV87n˜vÕ3êóТd¦D© 6+6‹E¶v–P†NÙXrÍÜQ4ƒêðöO›1=88žæ^Ä’ÎÖ.m‰ÓYOÐÜI“2ÐaWl¢T³£ê-å -'ØHðœ/惧\:¤Ã£±ªf™ƒ[š„wÿ¨~e¼ŽHìð_Õ½¬¦¡í!Ü…ïŒüdìÙ_Ìjl]ëþú1¯X¦Y{íúgã0 -9˜JÿÁ‰ËÊqŒ—pŒF¼{N€JSu °¿´½ªk¥õ* Ä€lpÓeaÙe7êx]ç ŠïŒáŠéñwÈæG7fγ½ } F´â}µÞ|ÛÿÓ -5xÛ0žKsj:×ØR<ë;Z2xi* “ŠÕ 6ìÒ@úŸ–±q űŠh)ôkû ï”/ ¢”KŽ7J´›ì‹×Ï[½íKÔ -»žYþÉ,Káø–êíö÷ô>¾ô_ÂË=¶‰û€ã÷»—ßöÝùqgŸcçì³çe'q Ns´”ð¦¬PHˆyHVC"j - •’†Ð 6JÔ´£”nk¦uêX£$Mêc‚„°0@ݘÒe­T¢NP²N,ʉ/ûýì¤PiÚ¤D>ûŸŸî£ïïû¸Ú4¿ñdE½úOÞT'ˆ3¾ÊÕ»OlY²·1J¿òä‹Í[×WlªÔléÚX´Òû¢ñ­å×ßki]S$››ßÓyiôܯ²¹R™ ftÆš߈TÚ—È륦œ&Ïeù+yZÖ¦HÊ n@ÝH fŽ Où(ë©°‰:HáÛú -ÂP(^„¨ ‰dŒQWŽ£¨‡Ý!ƒ¨¢ò1 :PŽ25bEˆ2‘••B¡P4…GД -Å./\¢¬Ý¦Êïì\¤Ïw–T¼}h{¯ƒz}6›­œ–>R·ý­ùO•vüívº_ZÖ¬3møìÿ\ýX} ¶|=äȼw&£‰A˜Ñógª2DJý½²i·ß´Ÿ;’óÓk9]Þ.é Jßëéó Ù¯9®ðáïðÓ<çp8$޿ؾбص–FØ!´Ø[ù—MíövG;ßmïvtóCæKì%Ïoœãy魨Ѥ@iÝ‹§xd^cxÁjŒÈ„u¯[‡”ªÉÕ,„¨€ °¢ m°ì´à–úÜÞø>Ñð,R“ɱ¬X31G<1æîÄ8`PX Íš.Y†%ëϘ.ÎÚxN‚!]É#ÓÍ Y¦²B -]€¶„"t<¶låúÿð^Ùf€Ÿ9ºª¹êù?Po\½52 ò(êð愤J§ëºÕ7Õ?W'7”í)}9ñÝÞA°¬ºö;*›/nxïÛ m°]Uj[Ø>ö²i€½,Ü4¸o ·„N £Øn²sëŒëœ ÆçQ÷«ÆNs'sŠëÊév¦L)7‹ôi«Íè³ÖOR¼'­ç#V«M몷 õ|þYõä9õÍéŽA\þ›Ör³( Ð8âØÌj„×’u¯ô%âÒ|/Ø?Ø×U};Ý -þ~¢ÿNu㽧&F±Þï÷V{9MìJJ½¢Þùxäûó»FNOùÕÓLöýá¤$¨¥ì]—”¼–ç-GäN¹[¦*C5¡õ¡¡–eÀàkaµ>:O4Ôú1'p¦ð}ö" 20|£RîñøX1à¾HÓæyyAJ1‹’Éä (¢ JNgÀ«D)ôVlîžAˆ¤7ßæ­‚®¾½'¿&i¦“drXpU .$WU:áfŸ²?A ß­¾;ŒžŽ'ÓãI˜ ÛE±dYù#ôX1È\LGFXð Z\™Ý¤ ø_-yº4ôÛm*;w@ŠÅíçžØyñþ–øÓé¿Ç{î†Ù‹©n8š¯ñ—~^qî„Ê,ŒtÝPŸAF2>ö.Ô{UÑ·šA­`#[‘%KKasr$F'™ˆ—0ѧõ¥¯ÈÅÅ‹Rö “b‚_ŒŠñ##a X=U¤Þ/?T̲wæàÍ$Ä“F(D’U.晆û-™¤2»ÞþhùÅ<_=ÙQì½WWҽϋٽ³{oÚ;K¡Ök¥!…_ÏSƒÄɳéÝ]ªsËêhùÌ­ƒ8Šà’ëSb \ÖÆJ‡€–Ó81¾”\j®ãv²­l[þëølW¡%0O”j}bž˜›nEç׉ú£h0 ßÑ7ÐÈw\D1Q\\"áÈ•$!G$¬ƒs  Ï°èZ@55ôJQk}24ä ¯ L@#G%/ÍBTB#}Åæ7î3wé8h.¥Žo;á•P²ôìp:°4™±"°üÒ0¨:4í•òLY'èÿå½—Š\ñÀ÷ðšÿCwÙÇ6qÞqüž{‰ïÎŽ}¾K|ç;Çgß'Nr$¹8ØÁ‹€ÐaèB)$$/U*aÀ&ªJ-EêÛkh‹P&ªmë¥EM`ÝÖ­x ÐŽµT •icƒQ²® bÄ—=wçúÇ,ù|wòÏó}¾¿ïïó[¸ÀüøWæ/Æ~‚]ùäòšZÝÉ¢cæéiÄl’çž+c­Þ¸t³y¿jÅå3@G¯A/A)òB/5 /f–3°Þ4%—‚šR—bšb¥LÃLÊpqIÐT9Û¢Z—êáµJÆñê†0Ç8í¯©®Ö‚L¡†ú˜FrU#aÀý'™š'† }|ÊŠ!ëbƒ„õ…Zš÷;ƒC¢ð©›ó°J-0€SÞÃO'8µ-<Å–+ɹ=±Zm7›”:¶:Ú”V—çÛ¡áL¡U{<¿ÄÀ¹Hvm•ÌR†AÀ{³³íf¸8¹s*º:Âa†mCð¹˜1›]èô\2òòL¥£–¥P`†üq©^¡xê(%yŒZ"0¼Š0†®G&q2õ+Vàþᦗþ¿Ãè€(]UÞ:OëAÇû´T__Þë ”‹tc׺e‡'ÊÊ=SÑ•-åÄ5ÝŒ} -ÏSAÉSn€7Kˆ¦”Å%Ų;£âe>ÄGé‚‚ e¡üÚÛ: *{4Uÿ,Ïä퓹š·Ò®Ð €mÄ’Â$R@{kD©Ÿ]0öéÙ¡—u¥RËêt¥Gö§c[‰ƒlšzáÊ®ÝoôfW®h©_M†å”¶ßž ³¸áøázƒÈ÷Oi_³ä¶ÖY­8z>šçtD‚c”3Hω™€õÁ´CøA~/ÿÛ %ù˜Ü -ö·%q¦ÕåÆs0ÕEŽ*–ÔI™¸mm -Âû[zÛ;,$u4¶BK·@’ÿÑcíÇîw§»ßû06xëî©ä‚ꣷÍ9p°§»zá*éLu 0Êãq…i™£DwÈ#ÊíÔ>Š~™þf©X³¢‡×l"UX‰ì×ð¸Dj*Û m¤*G¤rKªH,†WøÝxYttú¹L -‡#·»† ‡ËÜÔAÈ-"#,EÑ9\æqÓ))´;]P6 -º2¥ÅÅŠDÝÿ•+Êå0 CÒˆŸµ¼XUjpÌòb\w¤J--ÔcʆxÍ_‡¹e¨ø¾ÚDŽ€TŸ#÷Až·îÔŸœr¹H@”÷– îgDåÄ÷«@µó>‡v,úÞüàÇ(>Íä;»{|&ÝdTöi3j€Žl|E#iLe±w 2½sjç¶EÐíXSûçý,~xjí†^Âpêrú -qº?+ôtfaÌ:/ÄDxƒß g§aêO¹iš¢FXˆ“d„v |·¢Š@\¥ë$—}MsIäuÂsD‚ÿ®*‘dëŒÊ`IC)#2à©(bwM ÃGH)(µ$Uƒ"”ÔòŸªÌú/%¦!XÀê0Dj¾wÀ†‡oؙщM2Zã#žBf°Â–²ØR:’ÚrÚ:#Rt{[ou98Žþ–Înc}ßINíñŠ•{Í9èŸ ¬ãQìì¦aLý];УŽ™Û{ÿ»xûÔÕÞŠù„3Á™¨ ²ý¿áƒ #22œéU:…Ÿ"?òŸå -w‘$S$Pq¹EÜ oxîùîúïr“ü½ E"$á"]ž"¦¨„¨Ð°˜;<$dN–œN„˜"=Œyõ%c²ÌŠ“Ø=]…mÄP¬‡µÑ=ÚIÐ(Ý#Z4ÑÇ'-tŸÈå°»%EÙ–Ó¸¹ ª*˜5² ˆÃ¨ÑFWqdeíïß¼¹²¦öñ›`îùK—.˜çÌÑ‹œm üÿÚAÖüòÀ—_0¿"¶œ>o¾o¾þôŸ/ ´]üãl¾ãç`Ó¬^Íä`“¸£t(0$> Ç–gÅë½}%pH¼…^&Á€ËÛì–Ô. æ×¥†›%ES½áê+¢CuÒf™t;­pEzI —Ob=ƒüoøk°)Ø|N…G|ÞoóyÎtÏÙäžòÖ$ãDq¢0µ4ÍN`¶Ü"¸5 zgê ½^ÛûLºÑ¤û.ZEÀ¿eOîä{°ÐV¢ïU´žþ—eUù+ù§\íO`ûŸL»Ÿ_ì{n9c>m•ÙV? -õˆ ä­L®‹ÛÇcEÅÏ£X³].°»Pš*5K²¦b’Á+lPà7s€ãÒ¬ ƒ+HïåbM ˆ Å@E…NÁROª=^¾¦J±KçÅ5íÕʇl%>»j‘”…ŽÂD2ea¹S.0œöz¢6×àJ!…„2£‘“Cv²×ó°[¹Š\ ¬¢)„@ +£Ùšð&ôÀù½“{z7Ãþò™3WÍ]¼5ŸEϼM/o0ˆÛ±ý;52«þúfßâ’ü˜àCëЧÌÁ­KpýhËïv.ÜQ©çïBÝÚ§ÿ†‹Ä‹HiA¾Î”ó±xvïòBõØcžËî[Þì$ë¦ØÝ,ši–’ý@ªBQ=žÌ4Ž‚â SU› JbHª’àO&`½\RUO01Zq5º@‹b.P@*¥À)vþ×)8V™ÕŠ' -A`á,ÊxÎÓ`5¬¬Â!Á×`—Ѥw´ãÍ…ßˉÏ/ÜÕù†%‰¯”o,ˆaþ:<¯ªjþ:¬‹uþ=Ÿ‘×ÔŒyI -eÝç¼(Р]ßãÞ¯ß{ÛK(¨Ø´@+ RcnFI>žçf¹…^ž³S&XÕ­÷èD(Ú9Êw\²»’ž'À)VVþ&ÿà«<Ölä<Ýç_ª€”öÇ 9“o[Ï/ è'›;…–“w—”.ÚN¤·n•ïÉ¿xiNÃjô>„K¬ySnÉÛÝc‡–D×?·†œ¥v07,?xõÕ×FnH«üŠ—ÕËvÃ;¯G®H/B]+B‰YD]„©Ã긆Æ]Ô‹þŠŠ8cÁµ¥Æ,,Æ–&-3Ê€àf€ÌF›ÀYL wU”rZ†õ“ˆÎë2êÜ7ÄÔPx‚¸ëëDTþ†yôÊ6¬^ð¬ ð!•Ô×'W? '¯f2“taôQù+—* EÊÊ*QJBkˆ)­H§2ø›C]‹Ñ p‹Šç…dku@¥¥ŠÐâ,ÐgÐV“7?uX‚uÕÊt¡ßÊq ‚µ¥`H^Ÿ]‰žl¢‹>|wv…· E~8&ƒ ísêrm}Þ¸ÅqqÁ _ßV\+#UT‘3 ΠKš*ᜄÛ"LÐ._ø÷šP ­ƒ ¦ŸËoåNדIS¸¨ZO¬ü~u¯PÃó¼æSïb;L•䘴âI]/Ókyy¬Ôe™¬e ³Å¢' R§×ǧËID#Š‚KpŠ"¡w -.RGú`¬š¨Û‚ œÏí'K4%NÑ©wbO±—Ø[ðæØR!ºbm1!^ªPÜ‘מ|â‰ëwsuw/¨¹’··D> ‡¢Ö¼œ]-?\‚‹Ù,¥~Ÿ$ÑÔÌLë *-jUg¦6üò*þ§ÈxbUÊÀÄ|ÝjçcÞApºÜ+8å-ÏåêÖÏ—_jBú)´– P\LfÁJ®¬¯aŒDU•Îh çFäí[”©tî:Gßmq›¢l€ŒÊèJüYÄ„Ì‘BÄÉ)t$H^œ2ðiBmbŠìvAöýNªè -wç8بƟê€dº`ηgßQؾ~‡Òœ3gUc‘µ%uÜÚÖ[hÝ/Oh÷µÔôÝŸjˆÏUúéѼHå5ˆO¢H  ÇD“èë“D*‘ ¤þo¡É÷s§ñí÷·¨3j3<3§ž¹E -⧑ öä”a„ǵˆFÔ#¦~-®y¬?üNáÈðÄtáÈ3'®VÒúE TsææwZ‰¾mà–<17Þ€{{k[¾~ -þODžÆGÏÃóºnÅ8.‚ú#Ü¢VøÑ):…$ mšábpëŽ -W=šÒ|¦9 i‚“ņöt6ý3ë{ï¥qo {#¦0‰áHc$=ŒV¼Uökp ì@ãôqðÇâe'O¤?(ž(»Rìh"Þ–@]æg(Œ+¢520Œ †öòêCSS0J—ƒòò–h]QP¥£`[tgŽ£OKT )IžàZé’tKÒHãèÀá–fÈË™ÉtŽþ"3œûô#EÄÃŽ¼ß¦àÜ1~Œ®¿å)“ÎÃQš…Yu[e  -0ÉÂHöAIkù ŒìšJ…›”ȹm‡›ù T²ú«ø<æà7fDù;@<µm$i¤Ì•É%7÷ývã;e´°þT{ieÔaè^Ý”îú8¾ÑLj ÆÆÚ‡[æLî[ü“þ¥¿‘ÖQ戽>Ýڼ镖ÙGeÚæ×±±VSíKvó¶ÕÃ=ô 2Uú· ²ùËÒÜn²›µµŸeÏZÏÙo³_²:Ž 9bÞ!rˆ²n†NÒ<ðó>>É{¼&‘G§ñ[xD×e!4‚ÏiÐJ¯Ù€MÉr@™¢>Éüãèò<Šg¾aqXÇtž/ŠáGÝ’]I܉B¨¬`¬, &x5¾À&Ô•]Ú±®yaYdþ҃˟Ÿ[¼µv¯·4ýZ¨õæÄÞÏž¶æî`{sÓ GL¾wF–§¥ª Ø )®«P|2úèšUPJfï–ºEk, izÌ}>®‡ï ­ -¬âþd=8ÞÜ笧‡ë燸_±¸‘"árÛH}8n£i¨4[»ß ŠhÇõh“äâþãnX€£Åi-äCEVJzÃ÷†ïî:ïúâô¿‚¤òrRm~)JΨӈM•Œ‚y3HÍ2JªdƒVW!•<úúŸçׇ½µ¨ÓÅ-ëüé‹‹ê‚⊴už¹t7J5ç·V/`]:ž­aÙËÛÿ"? Ygñ;ªÜÀ5qÄÕÜ€ýˆÍ† `rü^š§ÔŠ[-V¶éGzˆ^SÝé‘Yãd£/DÆ7#¿  ~HŸ ^ Þ þ+òßàƒˆ›vïsmã=¼ßS’DÞïÁ ‰a¼-ä±b×R6³ Ñv™ ª«¸˜7ðßµEÝØŽGâz)¦+^¢Ì¬ôW©ÜmDÙ -J±+J±×Ñ!ô—ÓªµïT—⃅ìE¥ÇìyöQ3ƒDu¡ÅÐÖlß¼gÃVVÈÊeÿÜ·(N¦žÇËZ³bk}ÙOt“Üsì^ôã±Î×Ñ¥ÀYìh›;¬âÁT®M˜Íüö”÷t—ml÷ÇïwöÙ>??Ü8ûÎ9ߟÈ98vâ$@Õ!n½QªÐQu™¶´ c¢-…ÐÁTjV ªªhë`£q¶€îBäÌ -¬G5+ª[×ZyÙyà·ŒKc´ ¡eÐh{¡}½Šj•¬-d¸ -¾V •‹33©Ñ»³ç;sÕT›/¯\¹Ò½·q+gH£óµ-ÇŸ¸ôì㪕¿Ùä·—v5ÿSkÌMe‰‚#™æö{8W+D¶#£È—•sŽ =d]G&ŒEd$dC¡uÁUtŽ¼¼ÞV•vHc›&¤é•Ä+ÉcÅ#'¥s‰·×_(^踺~¡øño˜Ö"YÆ1<fñ*Ý_îÁ c,¡A™8 ã_®ò˜PÊšKÛRf!E8„mŽQbtTÃhÜñœ€ ²¥ºE3ÞØ¥e¬÷§ƒQ>|q{¯õÆÙøe¨jc;27?©/Õk¦Álu2‹ufD,æOuõ|\­%jÀ‡p–ü™YZ~Hݺevoø^¦;ðý¼µ@Fõ`ßpªÒÅ”b»Eáß4Ð䢡ÑQO;¸¨®‡4Œ®ÚzzuŃRWó²£#¥îM)Ï>øíMs_›l^ŽØýW‡k]Áìé¡Éƒý`èyØÏI‰÷v{<,Çó¬cwðåé‘×?ýÎå“—ÀïPbCíðKG¿øÅ•‰!7ÿx{{ÀÍ lÝn§™ÄÐŽYÆóÙc×BŽgÄÉîƒ1Ô ‰aG1 wýø×›ÅPf¿¦çr£2ë#}”¤H5SfÚ3Š~ÊOS1J”)™®Q5z/µ—žŒMŠoPoÐç©óôµ@SNSØ1J D=ôê!àQÖÔuYŸå0ø\Ì–p› ‰@q¶’Hù,Á@Ü邼7óÑ8Ž©¢—µÐ·¤²°K 2ååú#ªÁqvu-jªÝÇtë@túõ¨\ð­1Î-%ÑŸpíÉ^p¬<763Ÿ)6ÃEÉÎ ¶OÃ,âÉ™*îéΙò[¾~ä¦w aÍåÈX?¸W–w»ŸöÇÈ¢éìj†”„txºÒáô…ƒ¨Íê,ZÙÒ抪…ÓQ68¥]NÌ*›@ÆLøŒ¡ ÅP‰€ä,¬ý*EÇ]N•ë2jØ]‚&L5 paëÚö‚‹* ÜknSV³®^Øþz_o½ÞÛW¯)^6ÞŽÀ’C¼^ïëƒ?†Íî`­õ¤ÈüÊ}­ }þ›áüÓÈO*Ï¿ÊüÁ‚R¦@ŒJR)9,GDAŽ‰I1¥JLI*©ªPU“ÕÔaOl"9‘:=Òv2y2uËÿ7èT씈JŒ$Æ~†´˜¼Áš——u“‘uÐسi Cú1äÁ¤ã,`³IŽk#Ïf27aJu~2 ìb+ÁÂؤƧ†úÖ´„zÕ@M¥“’´b©þ#|ú´•T|8pÚ[ìï•…¾ž3à˜•r7ù¤ìâ>LñÕ&“³%6âž^É–_ù0в5ì5f2&{ ç­Æ_\$–Ë¡n%šžüßÒ朦 úü'²½" +@à%ØQuÿŠ¶ÿJÔRdíð7Žaâ°[ÔM¿j¶À=W§íÔ¦ý™:iX Œ Cév.Þt.æ²kê\SÈ¡dÇÚ¯û``cÜ®í£ö}Œ/a·~°»òÁ·À¿Ÿ¿€_ä.òó ø,7ËÏæg sÜ?—Ÿ+Ìsóü|~¾`•]2'ór^.T{«}SÜ?•Ÿ*fÎÌ›óæ®ØjÐV¥ú;Ç\Y?òݱÞñÝé$k\¯åkÜiGP.+¤ò}Jè-dyÁaú;Û QÖ s”(Ñ®7¥ôt))!Dp³·?R¥a‡wODò0Ã8³±¿/Ÿã"–5¦øƒ¡xl"zY!+T„ãÂYÁ ü´UCÉT¼8„(½¬€Œ’U*Êqå¬bP࿯ Yøž¸W»¼QíòÒÌýz}z¶{õÅ’FÈ–²š]ëŸ9—볡ź«[‡Ì*h 4L«²Q|t|>ͬCÎ]š×‚g w¾ò€ëðñé^p¨fÿÆo/µojß;éR3БÌôµÞ/§¤“å}±Ž&•#\Áa´VI›ò¯÷ ý%nó`[çÑ5ƒ¢1—3‰àÞ¶OztDå± -îm­=mk! ÕYµ]BdäzeÖ6ÊFc1Lô“!*D«³Sãôû>j}Ê®bþu‰¾N]§oS·iÆJYiTå=*RÑÀW`¯1/ÊCÒã!µ(o2jœ— Yva«´O<¢}"žùxE¥}¥åö´±Àyèè»ys•ôÓÿCßÿ!=¡?õ‰>p(wú‰C?|„úqFe=J«´‡<ÌÂ~nzòÕ‹M×€D<‚ýˆ¨wv CR0;݆¯HÄ=ïLeP&²¿@ÿ¿k¼kù¿o¼o!`\¤^°¿àœñÎPÆ1Ë”}¯Û‰ìÄÇŒ˜Ú_‡`"D ` w¸»bPóRhÜüR5¾¡ ¾åúé®úØ&Î;ì÷Îç³Ïyïüuw¶Ï÷áÏóÇÅ_ Nlr°'|Œ$:“j|4hª -h¸£ÚªÆèªIë†@š¶¡BÕÂXʤj[»Œ±À¨tl@¥"65Ò4¤­Äì=')ôù,ß½¯ïŸ÷ù=¿ç÷<ð‘AÅ%ÛkøôuÆTÈ›Z™ÐT2?µ'Èj¸3€üýþÄtõRó¿ ãSF·-_12ªøO`gм}íJóßøpøÐÔÌý+‡6_s­mn1't¢ ðý€‡WB)éyÇPhH˜ä&—¤âýÐ}aZü§4j³„Šóe¾ßÄï v†v -ß&~h?:&8 /œYœV\B¶;Â(‚¯[Iv -™ƒJÒNÙ¬§“r6Æ2v+á´ IŸÅ9(Û³×q€ëßCdA`èT»_Ž«ŒNzi,ÌÕ[V >ÛòȳÚßjH°8-òžz¤óS;ìñÀSš,6¦3\XÜk3Dl2îÕ¿¼A5ue{F‡ÕDßî7îŸ\“H@öÌ_:20öö_å›.a¤ÙAj+Ì„ž±å¯’ºþý¯šËñío½ATÕÀó9„g i°uÙ˜>¢xë1LiËƾdŠïŠí¡ü{Çõ×åØ¥ø­Ø­ø?bŸÄ á2·Ùbx8ƒ˜Ø‚eÃ7t+¯_ô‹Ñ ÙcÆ–¨’ÎÁ¨=pá¢êóéQµé ƒ:†gBéqnÁ1!˜*󦽋8¡(±÷<“?; ÏtQ+Da%lïúÞÕ/o`ÕW›¾ÇW_\“ÌfWÎßÝZͨk7ÿü궻1~ù¶§¶ù$öðªlaß'ÝÕ™+ë†A8Ã¥÷]c6EQ~Ú†pMßÕ7*°Ëq^€“ð&œ •p€pŠ˜hÓ .Í@C_T8Ÿ§x@äìî÷è%†~šb˜¢y™’HçWtÛ òAùšŒË’6UoÙÇ™EÕ"Ì3|•ú‚ÉGJÒ>#%-kõT¢£ÝY CnñЊƒƒ=;jå#îäÆîMóws¤Z©`CŒO mX_YÿꎭÍoì,XsŠO¦±¨¯Ê¦.Ó´®z>3l?æ8ŸžLϤ¦­NK'™hf§ý’k2>™˜LÞLRo" &ÀßÇËãziØ~!e °kœ×}hGß(¹£fGݤ9šµw‘]]ÓòFOîc?"l&Á´]ÛƒÀ[óÒvHvÓn«Í¢%ºŸ³‹ºGòÖìH:)YjÈ„þ Öó—ø)Ô]|õ -ËßkÜFË÷M=³èÖ3eìNµÀjh îR‡aÐá ^…ö´´ºÓoYL´H”´úÚâ{ï9=ÙDG Éoúf_Ç(>Tæä\qç¾æé-óc©P¦œgKõ@ñ;ØØbæx2m^ƒxAõŽ¾JæÀZçZVqV\˜´rÉqÝ¡Õ¡Íä.ò8y†¼H^ðMúnúf|mÐ#˜¬PŠàº¨ˆŠéP<ÝPq ž àÒc~ÝÆ®ô‹,¤lDÄe²h úƒA¿=JF£0ÌÊ”Mmƒ†}U âŒjmÄ´VJ»·4¸×!…Æ·Á“Û—yøpö1xˆFxõ: ›²H@Ï\ K-„b ª?mã×å´@²°Œµ¯zwÛKýíƒÏo;«V0?7ß¿ß œ] #Y䚊ø\ (ªø¹<摬)ªù -ØÊÛR~ÏãZõñ lDß]êšóKg%Ž£³‡à&xJv) ø½/óŠ?Éecj\+[;lËøUÖUü µnÛ’y‘ÛŸ};¬¾ž=8c=Ã_`.¸Å 9Æ- •É¤Sét†RÁ`I$<×wÙ•éMQ”j%ûÎ"ÁA+-«i¤ÕF¥Ò&Y¨%ò­`K¥½¬]Ïh}ÙZ¶@Ѫ”ˆ$uÓÊdßnú ýg§kt!R*µÉëïÓåFU«³2™×˜r•¿C#_Î6´F¹z‡gM=(ú ¸‘ª“l¤ê X!aeé¡šbaÅŠŠ€UÈ*D ¢Ò2ÏUÁ@^ú¿¥A0Þ”´Å6f?$Úa(>J—HjÔq7rÀMùš¿ÕþdûO¾ùA,bÔ -÷+Ÿ¿ù2 ¿â ºˆ|cø¶¸Ôü>8L1ÖoÎçÉh×ã)ì¥ù#Xs¤dÍ/pÕæä]T¿nT¿_ZÝvÑ&-³˜Í¢Y]½RMv ;·Ä·$¶;¶;Ég¸3ü7ÅC7-{<5F”DZÆ-nIe™¶à–|1Ê!Ét1/æ5²X¬18n‘Ün|T;©ašÊÈ´œGo’GéS4F«ÿc¿\c£¨¢8þŸ™Ýí¾:Û}̶Ûnw[¶Ýv³ÝÝ––n틶”–>hyZ@l‘Æ"Q4š¨‚ &jMô ‚‚!|ðƒ&ŒQCLcÀÓ’ŠšR5$~€&hBÏÌlkmª‰&~˜;û»{æÞ3sïÜsϹ÷æñïwòvG€KI%†„Åk~!gòy ,fS -rð•Õ¯)7©õ†`½ªnðš½e æú†4¹Ä¬pcV^le”SÖ¼|’òd%¹ô¸-Œé4Ó‡G<ÂñtšŠlaÁ8«ŸåS<Õ©yš7ÒZ¥§š)u­¡E[þ1K-·h6Š <Ç(Û;y'Cë‘la*u)ëya²³«xO ó›¿,È¢Ã3Ú“¨ªe¶–åÇ3LÜì3ŽpÂeñæÖŠÍþÖd2sN2&¶—½RɼYå!;šrâéÔKë<>%šœ™L&j·çH+Pl©ûK¢;¼~'+ecvfÅŸ«H"E箼$FöZÙιωÝÅÛîÛâ}÷}Ñ¢×[“îòr·¿ÈWl-.òùágüyäv¾¢¢Ê<›ÍXm¶"„ê£F'+–UpN_¹ËÀæ Æm)^®N¥B.„˜PMÒU-}™¾9¥n뤉’G^ͯ5.C-#¢h%çŠaÈm”£ð•Úå¡w+›hÞ©†î…°µœóØ9”3þÚªF½37ö&³ÁŒE¼·¼'1Yëj™šPÒ›ùzðÐË;v3s_´¬ E­îþÄäb\K0Îï)ÎŒ2Où¢v5ð;Lÿxæ±zÝ ùÌArœNýQ:¥U4¹X0&½(p¸Î2ù:ýõÀÀAO8Üs/½a>ÝÓ6¶–ö„Uñ@©=ÉtÎÌÐcŠßM²ß²fýq¸‘º´‰a8Ö·|ÌÄšòXÆıœÀ÷ ŒpŒ¯s{DéÚ­»wGÔ™}o^ø^™óìŠõ[,îrKCïÐàÈ~]ê—ÝÑ6ic‡ÛbÕt6WÚ?KíRû"Þ¶Swšâc‡Èé¬;­Œõ˜®Î‘ï‘nÞ¸3¿Ø¼Òº£fµ²ó*UM© ?øhX4™%¦–Íý[ž;Üs‚Ó5Iƒë6«~¨}îŸ<}d  iïŸa"Ëð!Mì¦%ܤ¸å!&TtNbп¨Žÿ@ÅøºJÎ`ú0§³\P±DþÀú.`ûVv"úã w;IÏ5¸Étb*˯@>̓ªó^ -§U|F ø<à? –PV=“å¤ûàÉ,Ó*åÃ@¨¨ØTRyøU Bú±Q@¢¾ÅGUªHNÄéV“N •­¦~Ô^êèë»4GÃ:àêkã= ù -ÐZ„ÆÙw턆†††††††††††††††††Æÿ°` ''8Yb -VLôÊ¿Ùä -v8œ.·ˆ|x ‹PŒ°*XVª¨ G¢âU‰$ªkV×õi<ÒØ„¬mkïX×¹¾«=½}ý7mÞ²uhÛöa`ç_5xñÒÊú7“—)ÀO’…òT †j°ô X>lÂF¨»ã8„0é÷øó>¤§dí='íZE»Ý؈­ØNÚâ Ò~CÕ~øÓÊ‚s§æNeíô÷·¢†{²oå`§œÉ~¹.U6T"Ï ]•xÌÊ,lèÊÊi eeÉÏgeÉï´wwõvµ†Ç÷ˆ¶ìŸ]¹í4X]è%ZÆ ï>Œá àdz˜ !|zY­(M®ý¤³ü{þ‰†:*ú³d7ŽÑˆ±èjøŸs¾¡ïeìrþ“ïÌMßgìFåþÌÑ«Êÿ•×nUgb>·Õ›hn#gá‰ß¡Ú›ª +fИ ½´Oñ4=§x&èÛ0¢ý´šgaDÏÁ ú}üûtüyÑ ôðÃt#¡#¡fЋ° uÒKÐt“‹–:~¤Wa‚^£×Ы—zÑëÎ×DoРü LÐûôS´üž>@ËÇô!øŸ`£?ƒŸ‡ úfÐßéS¼ÛÐðÏ`‚¡ÏñA3pX4ØD– ~-þç 6 ÿúĦ°ÉàÓÙTð™lx›^ÎæW³Áײµ§–­CË+ìA´t3¼‡á)Ø«ìx/{ ü]vü ;þ{ >…ýg*ŸšŠ³0Ÿ& ”ÍBð"^^Ì‹Á§óéà3ø ð™ÿ!ºZ€›¸®è{ûvµÖj%íJÚ]Y6–VË `I–%[X¶jcƒcóMù +Òh…€È0„À¸ºÓÆ:i§ Ä@H€€SÇSHÂCjj'Å|J[‡~âaJ&š”Žã4­ûV²[iV{žf¤=÷Þsïy˜…qQ…q‚H`\MTc\CÔ`¬µøßæ¸úè8Ñ€+'Î9:‰Nb| +½Žñ›è ŒO£ÓŸGg0îE=_Gï`| c<‚nb|} Ô«è3¨£ÔQ@MàפÒ}èLÔÓ8—4˜­R:'Þ‘´kŸ"½ŽvBŸ‡¼´GþöBl-c‰æL¢…O4s™¨MdÚEx™÷ãËGÝÿða7õôŽ|ˆþô¨»*‡ÔJµáqƒJ W@ :»„èGN3”êìu²Óé.ÐÕÑu²ÙL¼îábØà ÞÎÜÍÜå-ñê ãóϧîví‘R/úûûÃ! +6<¨FË+bÒ c´.J{Pqv]& +ðÂLŠ¨WêÉ̆÷ <=á”ú<££®T¡ÚZ"æ˜^{­~[È~eQjFo‚úì­æ+ª¬š“;®Q»‰­Tîí„ârè Á­$kD¼Ñj•$:“·ŠÏ·XÊK’Ù,5gÆZê××ݵµ–xâ+‚IKEÌ'èhÏI¢$û‹Ñš¡Ð]¾hqùk×ÛÞàãîÄáxjëy5©®îy~[|ãÅ/àã9AÌaæ`soÌã E"Æ„‹hæ)Ò*`ÖUÌS¾Mx(/_—ã1–™ä‘Èá-R– hôDc1žóû£¤$òDå^RÎ3ÝQ̦šî†!õbGýöøöÔyø*<Ú³5yüïêhŽÏ1µƒ(„ÕÀZ”ÀEðŽ}KÉngi@’&`7äµò!Ö` ãLÌvÙ”Ÿï¸,ožJO–UsZ+g†D²Ä7 q³bVÑr±Ç­ó¸q³e´Ñ:ú\2¸„1ؘ"]õŠdÓêÔ¾Æ6õ‚Z2_0²Ô7ç5?¹÷¹î¶ÆÌm%\C4M˜SÑÈ'©>é‘7g3ÊÝÁæ¡pÈ* òJø@5Méɸ&>…—+V"”g0bþTÈÏÿ=ùë)þ ¶9ÕÀ,Á,Ùcë×k×õ9”ëµàÄ(úµ»… *ßNóN!%¥ŠNr'm'ìÇ ó˜N Et:Œt‡è1uü^†²Ç¼™Ìp#8EéZüôŠ‘2œ¾\ËŒÀM߸l­=Ù¯½á¶¹ +œ|C]}£úÞkß?ùÁþ¶ŸííùîùÚ˜h¤‡Î]qÞúú칯ԱpàWW®©©‡^ïLµîiúQ6ö}xf´cž6RØãl/{•½Å~ÅRh¶k@Øàv,3LblÅØXüIÂ^<™_ÿ˜ý%K°}ðšb6“ÙL”•}_„¢ÉÜ7ö¢·HHŠ‚žƒI­9¤ø—Éô#øe  …XQ6®vÔámbDÛ¾ÜÌ/—ãåmìÌ€ð/ áq…gÄò¿<ܺea8W7æ>Œ¹MŠØÎAš‡’(kûzìÇsK‚>Ï)lËÒ7Ì!’€ÔfKƒR0M.t)™.'¦wÓ1äàFýƒŽ7íi<{â 6Ó_›IÆñ/iŠsÜ 1LVM®9Ξ)-ÐPËb${`Cë‘Ô®çæ—8+ëþÙÕñM{ÕßBÏ‘d0¼úÑé |ê‡ÃGŸ<Ñ4½þÖЕ÷× ïRoóe›ÔE¹˜œCïR»A)xSY,¸ýÎJº^ÿŒõY{JŸ²îtîp¤Û„¾CúCB—û¸þª` \zãr¹ä˜+&ÇÜ‹ô‹˜.W—Ì +¢(€&Fv‰£×ñ¥D\ èKxUÚQb”ûàÇ +ã½h‚¦ ¦Ái¿gCæ"©ÞP Ä©Á‚L¦Ç’é$7ª sˆKk‹Û7ŽoÁ¡ìlI¬Ôl û£±ÿ'ÇËNd gG(‚ZG˹ö†èŠ²yíËK{_Œ®ÚµvyCÉÌ@hEÇ{/}À4-Ýõü©sêƒ}oÕ6BËÀ¡µg¿S3[”ÔïØ°Qñ6Ø7,ÜÓùÂûæð•M#¯[·ø±SÞ–í7+ù{Šwz ÚP:ŽÞ&zQ$dcHÉ6ƆlFÒdíƒ%Š‰g’ä­$,€ä±fc`͈3Ed³jÚ½ˆp»ïÚ#R¢zÐŽ½èŽ+y,ñI¢ÿGSŽLÐ$—\BKä=P(ŽUXaE„l’r”ð™Ô-+-¥· uɱ={Ô;*A艆̠UÄ.„7>jUÿ }÷³ñTN|šÇJÀJ%ÿ¶Îõ¬pn(Ü0íªgÔ3æ¡EÉL‰RAlVl‹lí,¡ ²±äš¹£hÕáí#ž:7czpp<ͽˆ%­]Ú¦³ž ¹“&e Ã® ØD©fG .ÔZÊN°‘7à9_ÌO¹tH‡GcUÍ2·4 ïþQý"Êx‘ØῪÿ:{YMCÛC¸ ÞùÉس¿˜Õغ,Öýõb^±:6L³:öÚõÏÆar0•þƒ— ”ã/áx÷œ;•*¦ê@`i{U×,J/ê=T@4ˆ)Øà¦Ë²ËnÔñºÎß7Ã!ÓãïÍnÌœg{ú@ŒhÅûj=¼ù¶ÿ§…7Zjð¶a<=–æÔt®±¥xÖw´dðÒT&«lØ¥ô?-cãŠ+bÑRè×öÞ)_D)—o”h7Ù¯Ÿ·zÛ7–¨„w7<³ ü“Y–Âñ-ÕÛíîé|ü_ÂË=¶‰û€ã÷»—ßöÝùqgŸcçì³çe'q Ns´”ð¦¬PHˆy+‚!%j + µ% ¡l”¨iG)ÝÖLëÔ±FI0šÔÒ ÂÂucJ—µR‰:AÉ:±(c$¾ì÷³“B¥i“ùì~º¾¿ïãÂÕ¦ù'*êÕ|ò–:AœöU®Þs|Ë’}‰PúÕ'_Üu°u}ŦÚHÍ–®eA+Ýo-ï¼þ~Këš"ÙÜôøÞÎK£g•Í•Èl0£‹0¶KñøA¥}‰¼^jÊiò\–¿’§e-lZ€¤,¼à„Ñb渰ñ¤²ž ›¨c¾­¯ …âEˆ +ò‘HÆuåø7úxØ2ˆ**ƒ2¡“å(P#V„(ÙXY) +ESxtM™¡PìòÂ%ÊÚmªüîžÁEú|gIÅ;7¶÷0¨×g`³ÙÊiéÃuÛßžÿdPùaÇßn§û¥eíÀª1Ó†Ï>ú+ÀÕÕjË×CŽÌ{g2š„ÍcåŠ[…u&j38aR³÷yÖÞ)8ïKÍÇg;+3Î<Œl§\ÅÃÐfyþYcÍ’†¹Gÿij ÙŸÒÎE:¬É3·È²nÕ +‹„—#)ÀËÁR¥ðúXÎà‡b©! 8M€À´4¥Õ@M0äÈ2Z¦GãÓ‚†)`¨Cjа뀔“i+>>µŸ¬ùBýÚ3†Weóà[ç8Ï€ I/GQ™{ˆÌñð\` hœ¤ ¡1xîèÿ¢Çˆ"çŒ ¸R SYE>–0‹²Ÿ±hD `‘CPµçË!æsgRà³ÿù<þ,ŒL¸F'“£®/¡«E°jØ/h0Àš‰:Ü,sq…òŠÇ2¹¸€J¶›‹… CÁa¡a2ëE€ãi»”¼]R9R~(òdv ‹ìyõز¢œ +0C+W,N7m¯fôlL™ÄþÅê&ü +¸>Uƒêê±P¹uj¸¯ ÅHW¹P’>ðB`µ\h3€äŒüVòŸpŸ‰x vZYC›íæFG»é%󀉦ÍÏ9wå¿àüÒ1鸟¯!ó0Q”e*OÔË~2æ¬QJ +슔œ‰&ªD÷F¯GÉhTÔKƒG\.QëI=ç,–BÞZXϧð}erIE¦ð픕F†'¯ÉôEõtf¼:ºP$™g;øÕ6„©²"ÓLQâK¥|¦ͺb`s~ +ÑÏ™©†•ž–«â¾Z¼õ\ëØùçö­ý¹: N¥wãç_Zת”‹³æÇÍ/®úEŒ°æÖŸ×y­T,õC0…cýï}‚O8Ý|¦`žKÿÀYxúħK + yÃò™?S !Rêï•M»¹ý¦ýÜᜟ˜^ÏéòvIoúSú^OŸoÈ~Íq…ÿ ‡Ÿæ9‡Ã!ñþÅö…ŽÅ®µü3¡ÅÞÊ¿bj··;Úùn{·£›2_b/y†|ãÏ ”H7hE&J{èX¤8Å#ó‹À VcD&¬ûÜ:¤TM®f&D\€€]hƒe§·Ôç¦ðÆ ˆ†'`‘šLŽeÅš‰¡x<‚ä‰1w'ƃÂjhÖtÉ2Ô(YÆtqÖÆs éJ™nn(È2•Rˆè´%¡ã±e+Ôÿ‡÷Ë6üô‘U»ªžßøÓõÆÕ[#à ¢^ÚœTéT]·ú–ú§Ñcê䆲½¥¯$¾Û;Ö€U×~GeóÅ ï}Ô  ¶ë#Jm ÛÇ^6 °—…›æ÷má¶óðÀi aÛMvnq³ÁØà<â~ÍØiîdNr]9ÝΔ)åf‘>mµ}ÖúIŠ÷D à|Äjµi]õ¤¾€Ï?«¾€<§¾9Ý1ˆËÓZnv…G›YðZ²î•¾D\Zƒïûûú¯ªï¤[Á¿ÃOôß©n¼÷”ÀÄ(ÖûâÞj/§‰]I©WÔ;|`÷È©)Ÿ£zšÉ¾?¼ƒ”µ‚½ë’’·Óò¼å°Ü)wËTe¨&´>´#Ô¢ |-¬ÖG牆Z?æξ±Ï^dA†oTÊ=kb#Ü bÚ<"//H)fQ2™œEDÉé x•€(…Þ‚ÍÁ=ÁãA"‘ôæÛ¼UÐÕ·÷äׄ#-ÃÂ4b’L ®ªqÁ…DãªJ'\ÂìSö'¨£á»Õw‡ÑóÁñdz< 3d»(–,+„ë/™‹éÈ ~A‹+³[€´!_à«%O•†~û¯MegH±˜£ýì;/Þß:ý÷aÏÝ0{1Õm'BóÕ þò¯Ó+ÎW™…‘®ê3ÈÈ@ÆÇÞƒòc¯)úV3¨5Lbd+²di)lNŽÄèD#Ñã&ú´¾àÙ£¸xQÊ^ ÁcRLð‹Q1^0Æ€ÕSEêýòCÅL {gÞLB¶‰óŽã÷ÜK|wvìó]â;ß9>ûîœ8q’#É…ÄÁ^„CJ!!qˆ@x©2P 6QUj)Rß&XC[„2Q­h[ÿ(-jë¶níÄK€v¬¥b¨LŒ’uh#¾ì¹;'Ð?fÉ结ÿxžïóý}Ÿßæ… Ìeþbü×è'Ø•O.¯©Õ,:fžžFÌÁ&yþç¹2ÖêK7›÷«V\>tôôä"/ôRòbf9ëMSÂq)¨)Uq)¦)VÊ4̤ —M•ã°-ª5q©^«d¯ns Óþšêj-(Àj¨i$W5†Ü¢‘©qb¨ÑÐǧ¬².6HX_h ¥y¿38$ +Ÿº9Û¨Ô8å=üäp‚S{ÑÂSl¹’l»Ñ«Õp³IÉ¡c«£Miuy¾ÎZµÇóK œ‹ta×VÉ,e¼7;Á1Ûn†‹“;§¢«#fØ6Ÿ›ñمN@Ï #/ÏT:jY +f8Á—J᪠R’Çø %Ãû¡cèzDÐa'Sÿ°bînzéÿÛ1ŒˆBÑUå­ó´t¼OKõõå °Þ@¹H7v­[æpx¢¬Ü3]ÙbQ@\ÓÍاð<ä‘L1åx³„hJY\R,»3*^æC|”.(ZÁO¡ý°­³ ò¸GSõñÏòLÞ>™«y+í + ØF,)L"´·F”úÙcŸ>‘ÚyùÐXW*µ¬NWzd:¶•0ÈÖ¡©®ìÚýFov劖úÕdXNi+ðí¹0‹Žÿ®7ˆ|ÿDö5KnkÕŠ£'á£yNG$8†@9ƒd𜘠HQL;„ä÷ò/ñ¸ Z’Á­`[gZ]n<S]à¨bIÔ™‰ÛÖ¦@!¼¿¥·½ÃBRGc+´t $©ñ=Ö¾qì~wê±û½c“·îžJ.¨>zÛœ÷{º«î¡™ÎT—Ñ£<W˜–9Jt‡<¢ÜNí£è—Iào–Š5+zxMÁÖ!R…•È~ K¤¦²ÍÐFªrD*·ð¨ŠÄbx…ß—EG§ŸËÔÐr8âq»kØp¸ÌM”Ñ" 2ÂR‘Ãe7M‘’B»#Ñe£ +SZ\ì¡HÔý_¹¢\ó2$øYË‹•Q¥Ç,/ÆuGªÔÒB=¦l8€×üu˜[ö€Šï«MäHõ9räyë.@a°ñIÁ)W+€Dy¿a +á~FTÞA|¿ +T;ÿáshÇ¢ïm@qpÀ~ŒâÙì@¾³»ÇgÒM&AeŸ6£èèÀÆW4’ÆT{× Ó;§vn[ÝŽ5å°ÞÏ⇧Önè% §.§¯‡¡û#°BOgƬùBL„7øÍpv¦Žñ”›¦)j„…8IFh·Àq+ªÄUºNòwÙçÑ4—D^'â)d+l)k-¥#©-§-¡3"E··õV—ƒãèoéìv0Ö÷äÔ¯X¹×œƒþÉÀ:ÅÎnŠÆÔOѵ]0꘹½÷¿‹·O]í­˜O8#œ‰Ú Ûÿ>x‘0"#ÙþW¥Sø)ò#ÿYŽ pI2E%7‘[Ä ò†çžï®ÿ.7Éß R$B.Òå)bŠJ( + û‡¹CÁCÒIædÉ áDˆ)ÒØWP2&ˬ8‰Ý£ÑUØF ÅzXÝ£ôÒ=¢ÕA£}|ÒB÷‰\î»[Räm9›ÛÈ ª‚Yó!Û€8ŒatGVÖþþÍ›+kj¿ æž¿té‚yνøÁÙqÐBÀð_ dÍ/|ùÕó+bËéóæûæûçOÿùÐ@ÛÅ?Îæ;~Ö1 ÉêÕLîÐ 6‰;J‡Câ³plyV¼NÐÐW‡Ä[èuaÜ ¸¼ÍnIíÒ`nq]j¸YR4Õ©¾":T'm–i@·Ó +W¤—”ppù$Ö3Èÿ†¿›‚ÍçTxÄçý6Ÿç,@·ñœMé9!oM2N' +SKÓìôfË-‚[¢w¦¾Ð 鵽ϤMºá¢õèPü[öäN¾ m%ú^EëùçYV•¿’ÊÕþ¶ÿÉ´ÛøùÅþ·ç–3æÓV™=`õ£P’@ÞÊ亸}ìp1VTül1Š5Ûå» ¥©R³$k*&‰¼"Á~38.Í +B0(±‚Äñ^. ÙÄ€¸P TTè,%! ñ¤Úãåkª¤»tÞY\Ó^ ¡|ÈVⳫIYˆàH!L$S–;åÃi¡'js ®RPHH 399d'{=»•«ÈÂÀ*š‚@Ô°Â1:­ oBœß;¹§w8ì/™9sÕÜÅ[óYôÌ[ÑäðòƒX°Û¿S(#±ê¯oö-.É >´}Êܺ7жünç•zþ.Ô­}úo¸H¼ˆ$‘äëL9ûgwñ./T=æ¹ì¾å½ÁN²nŠÝÍ¢™f)Ù¤*EÑãÉLã((Î0Uµ™ $ö‡¤* þdÖË%UÅñ£W£ ´( æ ÄcÅ4ŽË:‡áz-Õ‚µ´0’´æ'.àºÍ$ôÄ`Kˆ©$R÷š”Û:3È Lp^j ïD÷ŸA´ìNnéDîNjt¼¹þ ô`¸ÃÚ³‹ÑVI‹·EáÎ8`Ò"¤XADû͇…7¢à×°Zúêrm£¡v†sq˜ ÖÁ QþË~ëRAû¼úk/??ÔZùÃgþÐÑqù‹m—|ŠH¦“•ìJ6ðÚÆôöoÌÿ´îm{E*"PóÀ×à‹¿üÒ£=-åé¶u}}/¼ð³íõ¿lëX;§nM¶¡õÉŸ½nNð‚'b +ñì×ÐÞ}Í#G3õÄ&b¨d¸ß_:ŠŸÆ¯”â(Ï#^Òïu±ÿcºìc›¸Ï8~¿ó]îÎo9ßßãØçó9±Çyuð%„Àá%a!õB“.M€•„QZ* 1ÒŽ¤–­ZkÇ€²ªebŒ±A T(, +MáAÑŠF4©e• +øØsçNŠrÎ/?ÛÏ=÷ü¾ßÏí&¯ÅLÿÉî÷*÷^°q¼_±)¯xˆîÅ×á‡qÇ×*vÊ|•Þk¹j;Í¡×Ë­ãsˆÝÚ¿hÔâ<÷ý}Ýry§ÓÉéÌt®.R …ÂÉÿ6 ±Ê¦w<1c¼Èkñ  Kƒ•ÐYÀ!%UWñzßXûîÅ?É„_^üVÇ›|=9¨ößZ#ýcdAEÅÂa¢Šˆuü3ë‘7t”±0¶U y/øpcQ›±Ë{Àø¡ïK¥¡bwÐÙR´îñršóI’Xã•»%Ñi%™ç0œYŸÇ„ á°S´Zâ®+NäÔü¯ ÷DMÊ + ¾ó?¸•§ó9K÷Ù›šAJçS†œõ·YÏ.Éøç/uÈͧî/+^²éKmÞ¬~¥þn뼆5øC€K¢icfÙ;{¯:„¯a˜_ÝŸQ½þúgÃGðC’æ +¿¦eHײ]ðÌë°kÊ«Ÿ[oäâT Uáj‰Zq§i§ù-뛀ÅYYœãÉœb‚¼@ÅH§åÆ8ô +‡¼2qˆÛËå$HÈ]eÅb'øiŒñyÌŒ7Ï ˜*¨Á0o]mX¦µÿyFmQ'ç ˼HNÖëê×ϲ“×ÓéIv&úèü•I΄"í…¶JÓ@c 1í(²Étþrék1¶¶èxžÖH¶šA:-h]‰ãAgÑÖ?=,A_ ”–.´æÛEqQ°º ¨kâsËñsýlîÇïÏ-óµâØÏ÷¨hCÛ¼ÚLëJ_œw]^Ô/ÕµV«X…5×]ÎáËË!'‘Žtª—þ½6TÄ2°`ù­úvæÔH ˜L[ +r+Ãè{ƒ¯UvËU‚9Ëkùú³Ø®R„Wžû>ÓÍuóÏcÏ£Afˆâ7q›x#MÑŒÑçÜ7MQ \8,{dw8Lݲ‡fè|„8»!êå1\Ì÷úé"C‘;ì6z §…+ÂmxrB±‡ +{b­19^¬QÜÑ"ÏÞ\ÈñÄÍû™Úû—t_ÉÊ[" ׆DÂ¥Mkž@Æ©·–`‘"Í’úïIOÎf"è3*çõ®Î¦6 +ýòjú§ñÄê¤I@˜í¦Ý)Å|ýèL©Ov«›:^ÈÔ®_¨n—«B2~:GXŘ* A±¤MªâÌTEcæ 2£ê¶›µT:Åñ÷›½6¤M6ŽÁ¨‘ô’Çl»Ò:ˆjà̳¥ÓÆÞ›ˆAÀY6Ë O A@³ÑÌõ*¬hó8Œ½­ +-3[˜ÌĢ Éôbn;În0ˆºA´?€õ‰Ë³ñŽ \^B¢z0©YBöhŸMMOf˜bÉKé'¼µ^€Lñ¢B<¤*TcȽ×-o]PTS#ʃö!©½ªêÑ3ø¨Hb íé«ß…Þa[PXå5BEؘ:’?Â,Ø<%DšÂGƒôå)˨Dѱ.×éôPtìu[s¯‰wO ˜^w²È{Ѽν«±7”Û®‰oíºí ŽzdC··t—Z¨9û›«V>œjˆÏ×ôâÉh®6£,_±Ò8 8ÂI``´“—Ø›“—°D2‘DiRÍ3xý‡™3䶇›àk‚šE½æf%H^žÂFƒ9§¦L£™ƒ™XL/Ùl¶ôäzÉãhý‘wgJ†ŠÙ™’g+®ÔÜô0†*E[Ó»-ÄÊ-è¶:1?Þ@úº«›¿ý|'¦NØ“—¡^ïqÔ‰á$Fã¨î¨¸¤>:É&±д f”€­;vhì_ñdÊpÏp3a +ÖÉiC[j(õûs>H‘É^7'b) +Bá‚ÈœHj!+{»äè`ÉÁ9S'Ð_ O–œœs2u¶p¢äZ¡«‘zGAµ „Ÿ³b®YXM'Ë”©­´²ÁÔØŒ²¥¨´´9Z›4DÙ(ÚÝÅ£ãø³Šµ™V”¼à:åŠr[1(ãxß‘æ&ÈéÉ[l†}ÉÜùT;¤#®¬Ÿ$!WM§ž"²ç“ìø¥SYø Út…s”!y–@Ž|8²9R¤ª\ãBÍRKœ°Y +ÂIÕ¯áJ„¾Ž¹Ä¥s†Âê‘åµ÷U·Ò´Ùjk/¯_öÅþ?¾¸Ái5ó‚?ÙV\Þu™:×4¦–ÿx1Ÿ £˜kiž7¹é¯zVDüf–±Ú"κTKÓÆíÍs©¬Ãϱ–<®2¿¾Sr¬1áKÀŒQð' dW•ùt§0f?æS¿¾°tsõ>_qêPËûî=kÏÜ%öe¦®˜úÕ9UV*6·”8S¦iWôÉ¿ «aþ4&Ù¥t†í±@$dè²­ ¬»¤®ÐêÀjñoö“sÂÅÀCÉ,äu‰=Ò€øž@šE¦<^ma“ˆ$, “æhó›Âax<ø1{>x#x7ø?²Ë6¶‰ûŽã÷¿;?Ûçç;Ûçœ}w>ßÙñ³ãsâ8¶“'Ò–pçŽÑ…&¨Ë´…*ŒŠV´ ÂS)¨i5ئ¢Q˜Æ¥K‡TTµc“¶©ÒB'M]·i;Mʆª®í¶ö¿³¡–ö‘}ñ ÿž>ßï÷Ÿ‘ϸ»Úæ$Ïøó~>À@Õ#*a>àÇ!Äpž ùÝ8Ðh ÒîC´“v1)I¼‰?HFi?<Ç_Æ•n¥YñlìU±ñ¢DÒö¦PʦP}¶wÛ6îucÔ»S)Åsmo8”£ZÞNÕDèríC«sµÍûE·K˜k¦>úñö²Ø_|¬¦ª—¿þd!µuç™÷§=àcïž³ÛOÿpÛÐià•<%p`BÀ3w÷VÒÚ¤ÝÎ-v%šQü†$ Ë…»äƒNCTʤKQÏ2v`»,»<;½³Þ_;L§ÃIÐì(4莧LœŽã|zÃÀYàçÎ;Q'Ü›WC,g¬ø”N„x؉Æ:\›…O6:2’âÒŠ¶Ûï”&ø`ò¹¢…%[Þ¶½%!»Ð +9ÎÄÝ_Ì\M…]ãS[<;V ɯÚ>w¶ù9šB{ÚÖ}hæ]ÈùÖ.ÆéJ×Kâ¿€fß«§.œGU?ë‡Eû5G Öšÿè“Çè5ŒD²IhÁò#õ‡0^#Q´#H fÀj¾ è´ZI4BþBôÎT n+ceø¨[Ew#‘ä=XbŒî)i¤eD˶CôØUF@tyÅàð¹l®GAù€¬mdسn¾å„üåüâb|ꃥ‹£ýéj<äÎÈW¯Ì5n¥5‰qt¥¶õäW.?þp_µç¶è½Dawó³Zcy>¥K#8’lNc‚s5#42‰L!ÿ­\°Ò„ßÜeêÖ摉Íøý]t7™·M<Óc©J;¤éÍ3Ò¢ôl÷³±ùc½§¥ Ý?éy%ÿJﵞÕüçºa ¦<Öñ±ƒW©ár Ž¸pŽe +$)`…‰f£Ê`B!e(l‹„¸Î*l³N馦d1€FµAç)¸ [«[åiíÍÝ2§6ÊsQú©ÉAóÍóÑ+PÕ¦w$ßz·¾ñ T¯ÅôMžµºg¢%Xž¿Ö•ó±·—¨Â5Ú8ô¾g}CqùJ›­HàèûNrÀ÷‡Öy!@F[Á ~`¥ Ëù\XeT>—ª¼‘4:Šà©Ç·ôb@V]OWKñ ÔÕ\ÌÔDa`óvùÀÑÃßܼü¥Ùæ• á½6^+Ò©³c³‡ÿþÆØ, .Hݯí>p:–ãëú™…‰çÞûÖ•S³—Á;¨®¯vôéãO}êÞ̘ƒ{8—ó9X©åéÛ±ä!¢/=~âºßº_œ¸9F5´_ p8Š¡h øâo·ˆþä~½•ÓTJÈÍÊ’Ûä¢&ÒD¡Ò@iÃZÑKz)2LŠ2BÕÈ5GÎQ³áYñòê"y‘Z%W)Ò¦¸i#Eï¤Î3ú~ÞžgÜ2Ïú`°õÙ˜6 á=„â8nÑI"é6Ò¾¨Í1x=jàø(Ž)¢¨¡v]aaQ jåú0T‚-b+×T Uïc¡} -ú•.¸;‚A[IZOØÞ\lœ(/O/®$óÍ@^"<£¹˜µœi]²Š;ÒúLãæÖ/{¹éé6§Ó¦ð0¸SåË{÷†Ã¦4¢êìj€ÔéðX¥×æШÅlË›¿²óJáÏÐ 4X¯Õk²‹‰–À1X’G­×‡†àëî¸ÁAWÑZ)n‚a@-£5ÿ-pþ 䧕'¾ëù³%õ¾0#ã‘@$( +‘°ã² ‡å˜¯ +Õp5Vïö†gb3ñãü±ÐéØéø-ïG^ÿ™ð•<’öy=&£Þ…è=bw1m,Ø=“0zL^Ì)9áW0é$˜”QŠDÕ‘§’Éß7Å¢íÝ;Õ·¦¨±P‰‡ 壾„­ª|Ûs? Z4œíǘÎÝš¶öç\ù!ðZY*'̤£ÉÅ"vöÍ8WmzÒ–îM¸sP²dî}h¨ˆ9àÒ&“zÂWúQãov–N£§‘Ogæ# CZÕ„Öüg+2Y‘´:3@à%¨²ÿVYÝ™7æþÅ1̪G¬„QÙôk#ÜseÚ6uÚ*“†ÂøÑ­©#¶µ·lkéTG…‰õvþÜ»#›¢„ºêïÑ>ÝB†ÁžÊ«ì*÷zæõ,~‰½Ä]Ê\ÊâKì·”YÊ.³ËÜrf9»Â®p+™•¬9b°.’‰d«ƒÕ¡yvž›ÏÌgMÖÀ2†,.[drÔR%‡û§ío›ßvß6ßvßî7ÕØWËÔ²¸Í¢lJˆg†ä̦8Áa†ûCž1@ÃÌ3A™/–œ®¸\*ÊqÁoÒà×p° +ãV×Þ`DÆ=«Î ʤ٠qD‰)^Ú !BP@¯ )¤„ŠpR8/h„_PÅ7‹Gócˆ”Ñ+2HÊ)¹"Ÿ”ÏËþûú˜‘+E5¸ÒåMJ—×?­×a»¼YWÉÙRV²kýCÛFý>`úÚŒ¡Š-È< ”†E6ò_Ÿ[5ëóY¹%ÍàéàÎÿ=`{Ý\bɦví?¸)Ì…Üä£û^Nš¾ÞXr(÷mx¿¬œˆ”÷…{›dZg§ÇÑZ%¡Ï<7, Ø-£¡þãÏ7£¢6Ö‹#àζ_s¶•Ö‰Upç¡Úc–6²Ð롶KH¹QYr…´PX½&?é§ÈO»È]Ô^b¹:C(˜¿L^¦n7þGwÙÇ6qÞqüž;ŸÏ>¿ä¹ó˽Ø>Ÿïâ÷—‹c;©›YCÞ#„ÖЗ†IÓ wTCU)¬š´nh,BÓ64ÊÄPEµ0”2©ÚT– ˆi@Ç­´ˆU4Mi+1{ÎqhªmÙ~ûŸçûü~Ÿß÷Ë]ö^æx»×Îáïñ¨Wÿöuæ© +"½‰ b Ê[ÌuÎÇ©xœ!žÐ>¹DûdB›|dо†.¥áöêׂîc}/>!ýžgàùÒS ;¡>Ù ^ÏþøÅ×°„úaÞ`=δG*$†N·pJ4Áê `ÇÂ\¥n*³u<‹4a¸zC‚ÆhlXä=•æö'vØíÍ¥2i4¦7\XÔc3TøDÔ£¥I5­»%­ƒÃ‰Xßî7§O¬Š% zÖÏ_<º~ôÝ?C¬9¥­µ6J[n"õ´µõðŠPÇ¿ÿõqíïY±å7™õ%2aèù<Ò³1غlTߪz*\mÊD^Ä£»"û#(?FÞs^v^‰\ŠÞŽÜŽþ3òY’NS“5B}ÐËUÉP1|C§êöp2'‡ý^TÈná0‡=r „m~Ÿ“^ÎH «3JÇðL(=Î-8&$SiÉ´·¡Š ÁqÏSÉñ™àØž{ª‹ê! +/à{×ö¬üú:>ñjÍûèÚË«âÙþL÷üG[ÊéÄêá__ûÒv..ÛvÿÔ/‡Oâ/O‚Ïíû¬³œ£²yrÍFL )àyߘMa”Ÿ¶!]dì{úvØOÁópÞ‚3ð!´v B—­„ŠIòâÜðU¥àUðzÆGødÁFœ[‡(1ô;Ѭƒ4#*´âCœGµ¢[_R*×B i“•º}œix¨zÁ1¸}ýÚÒÚWwl©}{gÎ’5ê ÿx +¿úªˆu`SzÂÊé¶cös©‰ÔLêAÊâ`ðTœ §wÚ.9'¢±‰ø­8ýjüc¬8¦Æõ7¡ÌÏ|À7v‰cºíèB®0›‚ae +glTG‡í¡àtX¡tAÇüR¨Ï·¬÷S +P¯aɃɷ’D²¤?'**˜2¥åµŸÃwáïàuh‚¥Nm%§ÊÜ=±< gE«ê\-çfyÑ(=K,BBBñS1 +k|. EWEƒGш¢Rí ²R3 QkAPC†Ä¨ïR*È¥“¿¸2æÍŽ~3_8õ£å?d•Î^zþ R`ýî‘–uo¿ßPV]VŠ` ƒ¶£û{;Ú£~egOÏ–WÞIz\µ¿ŽXjnGÛZµuûöþñØ)Ü'3uoôxÿ)iÅ$l»´ù§×ÃØt²a»-V³î1ý‚MÖÝ!O¯mÑØ®S!‹#ÀÐO’a"‚Ú#ñ’8‰ºK,_åÅ{Õ;hyëšE]“Æîd]¬ªfâ*´>çQwÕ휹‘™/VÐ*«ó|àpgbm¾lsëÐwúÚFˆÁ¢ dó;÷ÕNmžMÒÅV~ Pñå¿‹62Çã)Ó*TWͨ£ÞÓW(XíXíÄKŽ’·RA ¡3°20Lí¢ŽS§© Ôyï„÷–wÆÛ°WTZ•œTY•šÛTw'T]’{8õ§[ùnNæ!m%›˜Y#Ùï÷s¶0à ¯ÐÖD4ìk$ä gt×FL«§´{‹ƒ{ ²Qh|urçŠÌ>Ð/ßàA£éÐ([ ô”ÁuªPW(²@í0øE“¸&«ùâ¹5`´eÅûÛ¾Öß2ð¶3‰Ngçû—rA&†÷è9¢u>¨gÍË(‡»ÄÌ8i˜c±á‹Og{¾¥ÆD¸[iº—EسPT‚^ h/ª@”XÙÌs¶¾ú)³çXœtšd¾…?Çyý×þ;o÷»$‡Üj³X$‹LÚûäBlÄ=âÙX»1¹Ý½Ýs(v:t:<š +³~.ÆóŸ$K\Œ¶ùeYŠÅ8mSs*ºCŽq9UR&—+øhÚ&ûý|ì˜ò–B)õ¾SQ“9ƽÍQ\½Q‰g8¿L甘Mu;Áª¤ÑHØí²‘¶dœ†h¢£½ÖiÔÛ↺-âŠ$:]y\3ì73Úf«¡ß²fµ›T°,i¥‡½©1ÖžÏ3ÖÔX=œÏc‘7ÅÚg¬3Œý"ƒuFžgì¸WY±æ¢±×ভý‘;=7ï6Œ Môãv’ÁýHó0–ôý¼2Û¿ªz‡\º)%â‚»’;Ô¦V²!j”§IÆKþ”pG*ZÅ¥Ò²l¶tJ±«›ÏÖ“›‚èG§Ã/žÈ=¹"e)ô¡“¯+•JiŽs( +ņ1¶Ô‹Ã5ëÒ÷F$žRÊ1»´ãÏg…Þ»ö1ŠØ°ÓsÀ{J8%žΉׄkâ á†è¶Z=Y¡¶Vª¢Õžêª¨‘ +>\vѪªzŸ×ëI7x¼Þ*©ëÓvžu4­ Ø(G1ãÍ1Zu.7¯ @’$[²få“üå‹úå¶MéT0µÝ|ªkÎF®!ŒVZ®;—~pd?×B»6ô‚~ˆfx#tÏ…­»-/ÑB9‘‡[›º¬|…šŠdËÁŒ‚L'ã~ƒ}Úéik%-Él¤ôEñÀS÷n%W?îiO¦=°zt>®©„—™`ui;y0šæŒÀ/ܺôÃÉm–i\3ûqáô[ŸÁ[Z]w€â´Šb˜†¯(²X¿’×í¦Rƒ×ó«góƒ}½x&ìjÊÈ5\–ôOOãkúº;J}K¹¬‡A€Üùõ„Д?ã¾@»}qÒÍ2kXÂbÚ„ ¨L]ùå—1cf_Ÿe¿×FÆgìîúyºeþÙ|ôå‚[‡Ýn¡ÖÝ94Z›´ä~ÝšîSÖ·Ç:Ö¿tâÈ.Ýþ›h¿í‹ ž}…Ã8 ç–p Òϸ‡xYÚü¡ rù›ŸgçÍëÖý-‹õ“Wn4g4×Á{›•¢ÓÅÇœ=#›‡îyô±Á#´¥[)®ä½ëèòÕ[žxàÄÓëa.íü3¤á.œÁ‰Ý}—1n‘=¹`} À†uÌ»öç œï¸òeθþÀó:€÷;v‡ø°=~ü6z«ºNÌ•ù „ó Œu‘*/DíÕïH¯ÈwP“Xô0@¼ˆL$P/q°Ìƒ$¶«.PýKayÚN£¾Ò y ©×@E9Ë4£n ê,Ʋ֗ڰ¿íh+}É_X‚6»p\ºgz°M½ö;0ùÏ@ÿö ˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜ü_ +h‰Z“H±Á‚‰«þërT°øù€ B"•UP 2À¢x¢6YWŸjHƒ’iR³Ðܲ¸ #ß¹¤«z ·oyaEÿÊU08´fxíºâú‘{6ŒnÜ´`ü¯ ž;¿p£þÍd ˜×ƒ„’óÔA#ä Ú!K`%¬õ0†Ýà •‚Rèöm|GÓMBdP·U×] +°6 î}°u_0toÿ¸Ðñ«Ç¯/{èï&zA ;ì(“sRî1‡!ÛPŠi3ÂâÀ’ dË2^XU–iÔ-Ë”/Ë6”_ëX6´º*îÚ;±/Ý3¹gûÂЇô †`5 Eؽ0ûpè&à~xöàð=tW­4NªIÔ¹ûwþ‰†1*Ö7Ñg68„#F‹Oó“ãkì/™ó +Ùö]f¼"ƒpvýÿ“Ï|¦ÿ~úÜ•æRã­½NœÓà˜{ãw‘Ï3 endstream endobj -28 0 obj +31 0 obj << /Type /FontDescriptor /Ascent 750 @@ -2293,110 +2451,116 @@ /Descent -250 /Flags 262178 /FontBBox [-168 -218 1000 935] -/FontName /FLKOKJ+Times-Bold +/FontName /ELCOMN+Times-Bold /ItalicAngle 0 /StemV 133 /XHeight 461 /StemH 139 -/FontFile2 29 0 R +/FontFile2 32 0 R >> endobj -29 0 obj +32 0 obj << /Filter /FlateDecode -/Length 29098 +/Length 29101 /Length1 232728 >> stream -H‰¼W pTåþÎ}äÅÃHT–„Ç].$»†7".a7’w£•,y° $â –ªÑvAµŠÚ -­XJÅÈ©„iubS -­"Cqh©ŒH ÔÔŠXh‘Ü~÷nD`‡é8ÿùÏ9÷<¾ó߀^üÒ`Ìk¨Y¨=‘r; >j§–ÕFë_JU.BçS—_¶¤ÑxqïSïPnô•å e> ÆIOÒxeE´IÚlîǽ¯²~~m(oÞ{ÜŸ%Ÿž_ÓT¹ñெB]ô)cX±ŠhùáŸ~|'ÔUÇè?6FE¯šôI@g?(VÛ¸¬eΛó€žpÓªêo74ªù=Mkh_VSWEÊ£éP^ }MmtY}Óö3Þ.ÚÚºÅË*v\x -ÈNð,ŒÖVœøíma¨+Y¯d××54B¥§ºr™ã_¿¸¢~ð™j V@ê¡úÅuõ¯_<ñÔ…çé¤ÁÁÊý(»•Ýz³ÄÿõÑcèK@ö¨[‘ ؇ÉÇî,±/êµðv#X¥?ÁüŒF5¼Ś÷CÇÏ° ¢~2ÄK˽˜+ùI=µ ÿ’»P‰V|ˆ•Jj ·£¯/f£^TÙ(Âı›i›Õö[¶ƒþf«ÃÃh‘þ”[±G¥ÆnÇ`!¶à°L²7ÓÏÃLS´V1A|w0r 梜ŸÅF&ûa»&3ßpŒa]›ð -;¸ £¤I-PŸ¦¥€ô6IO)°gÙ/Û{™g(ò+‚U¤5xÏa:Ð)¹2CZíöb{²™+†ïâ{X‡gðüGrįŒTê”­¬­/rINì9¬æǬgŽHšt—9²Pšd»œS"ê+v½½ -cdÆ-x»±pŠžiÒW -¤VÚ•V5C}L]¯/Ñ_´Mû$뛂™h BßÇVú¿ƒ£8Žs8Ï<’)d¸Œ–1R,%¤M²UQ•fe“Òªt¨)ê3êZ÷Îãö_í•ÁÈ!Æc1ˆ¦±gÁŤuÄêU¼ÎYí%b‡ðÒ üS4É›˜)‹y¼2Hn–ÛIÅì+,‹åYÒ»rJaSŠ¢lW‹Ôµ´f}´Þd´GÛãHd*‘ïM”ÆàVLr'wÑŒa3?ˆfÒ~ü™¨¾Ëé½OúÏX{<ÏþÒˆq‚œ‰fºÍ“Idw³Ha©äÙ¨—¥²œ´Zž– Dþ9ÙÌ“µ=^NoÊ1Òßä$»>+Ø÷ J.išÛóÝÊw”¤få žVå Ò9õFu¤:[½[mRŸT7«¿P÷©§9ÇJ-®­×^ÓèÐèSõ2½IDÿ‘¾U߯ÔO% JjMnI~,ù§2‡³É»êúÉà û ~˜²DÙΡ?ïþjlåþ_%…]-• κ‰èåò­ÿ–Üte¸òCñqFõbuÏÄã¼+Æñ=Êw«kùæF¡ìQæà$úñ&Ë°;à±Oëz#‡[Œ~dŸÌèºç:ȧ; xÒÖùªý'µ?+{€÷Ã0—Ðu×êKçÇ!––7Æœ•?QŽ¡®¾á>tFk*]oÇ_¹Ô£³ä. ËP -¼éE ˆ28{9Ðk è߯oVfOï›n¼!£×õé×õìѽ[ZjJr’®©ŠÀ2 K kp©¥ 6§Nõ;{3JEô2E©ePUx¥e”ºnÆ•žzV^åHx.yJº‘|¿Ï™†õ‡ i´IÉŒ0åGƒfÄ°:\ùW^ãÊ=({½|ÀybAÃ’R#d.‰ÅC¥A†Û i~‡‰º9-L‰.y¸8!+Ó †¬>fе©Ù¡h¹5}F8Ìòz#~Ÿ%SÊÌyÌ뺜®Çç ºÎ 3·ßWåÔ•ÝËÍò•mÌ+u¤è=aKF,¥ÔÉq}ŽÕÛ Z½ï;áù|û™Zu™ÑR² £ñBB³rjb[ê좫¸+že0¬Ò [ÒIáÖžè¢Â 9šÒjÃJ5 ÌX¼º”˜cfx[f 3dFƒ ÓÃÛúú¸¿o§çþ‰^‚²Ó?Ù?ÙY'z=÷'Ö¿?˜Ð¿½«›ë·ç×â™—p'“YÄ2-£ÌMb²ÖñÎWÅxÄËÆÓŸˆ°Ë*+uJi<}Ÿ²ôìtÓˆÊìøàJM´K“”þ Ñç¥A{—܆!¾â6¤N¿$²:Ò&vs‚ýv"êÜ{iꇪ Ÿææfü”†ùŒBV]èÌ͈ñ¢ò¸QhÄ8p-Û]i¨ˆGrÙάp¿¿öZHÖ%±"™À89NÍ0BuW„j7\¤“ÏWLˆOÏ[+‚YV !${ÎÜsÏ9Xs¿ÿüëì½ÎÚk¯½öÞk©<(`9|šJàçxö5Tˆw¢ä*ô•ÅVCç ô×)½:~§èfôW±ÌÀ<Ê”\„öë1þJø¼\~N|ÆÜvñ1E¥¡Õt ¸ -\™[ŠJ‡è­´dĆÇ*‘y¦0ßÁ7ìgU°«O|ç±Ì¶C)ØG‹ÀáÁX‰ƒâ_™ÌÛœ×\̸9 vàŸâ_ÒhÚÚ·t¤”o)íã´Ðš¾W­Û¢àª 7ÐTžWäßTÊ@9f‹ƒ¶pá½@üܹ5a-ÑôÃ÷“Âë–ÐÊE_Qt-l7ÑÈ`¥ñ^U[°•E˨ó«W>̓ݭ’Mj]ã±u†žQ󆱶pŽZ±âqÑVßg!ÿzu@ l­‘ƒOða¡Zƒ¢@ãÅÍ‘ t9úx¼a˜[€hlß#ßà{غ̖‹&œv°‚ºÏZ/ *WÚ€ÍÀ!àŒò‹÷@ƒÙF9¬iD\’Æ Î[ØÁ9ÊëË9[(Ói,ûÏóà<—\3÷N⹨FG‰îTèÍ9Íû†sWöi›÷Äx¶m1ç9ϑ㜻éÊž|Yöçq¹[㧳’y¿”˜Œÿ -)1Ø̾‚÷šL=b…jÎØ÷¼÷xïów¼ÿ9Æv=¦¸Fí¹”“Õ˜œ'CÓ™uxÿvgcŸ;ÃFs3‡—™Œ÷l·1ÝØ~.IŽªu·8}<èôãsÊÚƒÎÜâ6Î/ikCN?jæò ÿ©ý£óŠŽ©Ê]ž»Ä ç=Þùlå<Ïg}žJ£[h~¨lî¾8‹ƒKas1÷á[Îã: od2¢¯8VLó¢ÕÐ-¦|ìÿ°;㤀$ЀqÇÁ¯éhï…÷&ø½\ƒ¶¾hk÷Æ¡¿k„~x,8œƒ±¦²|dŒÅ|ëxOs,9wG©9°“j”äG_n°1ª§U]qíÇ6…3¶X[ñß,ߢö¦³ýX;åñy?8¶•á=ˆÇãT yHìä,š½›’‚$UG;ˆÛÈ#É@ó¬„F|SS^´ðÎû%¹;{(ÉÀ{ 3l&#»iNìM™ÉgS)â_ž€½B-Tu¾œ”øìFì6ÒÖ 5öÅš°îoQ¸œÄ\V!ž“£ÇLì+¯ô«Ù'¾#ÄW´ñÜßÐËåûë†ÐûÐ5ÇÊã¾h/Ê MDþ®ƒu¦-Ü-Y‘jØO‰Þ•5ЯÄ÷|F”EÎѹ7§¡oò :Œð‹ÈŸlŒq؈<ÍA[òº`ìR÷Î.¾{‚•ËùÞÁ½R/wK峞ܿËi¥ýŗѬØIšÅ{BÎøQT’˜„½Ú¡j pv€Jrævoëñ†yöXµ ×&¼·ÂÂÆ6ÙcR 0ÇÑ–ÕÕ–ÎC[ë[g2×ê,|…s8k!$&RÎŒªÄÔ>ó±G—÷È¡5°õ’yWIm ÎPû¹v‰çR·óŸïw¾£mçwU¦ó3ëøõ/Ó7ÖM·g³c}WÖm¼®û"ã¹l›‡yâŽæ9Ú¿çºÍÁ¶{KÝsÞ|‰÷ßG\Úâb»ËÜ>÷ĺlRëóš-žÝ¸ûÝfH㽜[œéì·¾~ñÕµ…âÌ÷!õW¬k -.Ët_Ú8[qäCÝ›]õ´¾?ýت¿mœñ¾µÝ»\»½kOò,š nÂ|:¯tÚ£nÊÌéù„³+<¼”n ï MïW5P÷u» øl _¦úEũȪy»±3ŸÍ³g2ßO|N›õ´ÜAÂÖÞµtµî2>Óù.ãï5ããóœï$9›­û"ù.ã3wX#ŸåöÆ8ùÈ‹ž|O3c-žµjzþŸÓ\Ù³fÍÒ(ïëÔý|÷òý“ãˆÉ@KÞ·æ]8Üšƒu¯é¹à–wþ?ÑD…ä‹òUÏÍz¿CÙ¾kãLd4aHlOÓ$†Œ±ß¼»Ã+h°Ô @°?õ ì43¥&9j´*tv“Ñϵ…K.ewåŠqgÃ]êlyÇ¥¶Û÷²}oqçXkx)ë?AÙ‰jài£5ñP«p»Ñ™#ãz®K2jš£¤û]µç:ZæyØ~@Kóé3ÂÒg]µSŽ–ÏyØ^àhYè¡ý–Ñb%}ÞU»Eñy~ÁÃ.ÿ¾¨øKô0=B_ù+®ÚK/“çrÛ+´ôUZ©¤G]µWiék´ZI_wÕ~Lñ7äù¸'klò>ºú¦âµò|ÒÖó­ ÚëäùmýþOÛOii=}×ד ZzšžñÕ~Ö&oôÕÞ¤x³<Ÿ³õ´fÐþž–¶Ð÷}moÕÒ6T®~Ú/Øä}µ·+þ¡<_²õü ƒöä¹C¿ïô´ýc-ý„^öõd—–vÓ+¾Ú?µÉ?óÕÞ£øUyþÜÖ³7ƒv›–öÑ~_Û¯iéôÕþ…£å‡öa-ý’~%ü:qÕ>ªø×ò<÷°}ÂÑrÒCû”£å7ÚíZú-ýNI¿wÕþƒ£å Ûojéô–ð;ô¶«öŸ-§=lw8ZÎxhÿYK¡w•ôWWí÷ÿMžï{ØåßYÅÿ/áU-EqEëÕôL³ïÂgG–°Q@@öE@…Ê.* " È `Ù`0b‰˜A@I<IŒAOˆƒ‰‡`Ä%®ÈÏíÛõŸ¿Ïüî™óß­ûn¿ª™_Ý]Uïó)ùg±ÕŸ»ö âÿrŒý¥²¯Ì׎}[ý­²ïÌeǾ­¾âÚÀߊ˜ä_"?0+©¿ZĹSI39ª}b )Ŷ´””2 Õe••“òÉ#£¦‚²ŠR)gue×V!^•£ºª²j’—\‹šêYJ‚ouŒRK襮ԉ­ÎòˆruÂØõ³”ß(ꥑ8?(c«›d)ñ~Q¤™²æB¯(-%ÛÖ´ÊRZ'Œ}M–ïEÔ1J[q~P®­nçZºDé?.¯;Ç(¥£tz<é[í|Ÿt#vÏ1ve=Å9<é[ÝGY_¹É±X(Î -= äð€20K”P=XÙ¡”¡rklµs‡B/(p‚’à%ËJ‚”;²”‘ Õ£”–1Ž­—¥ŒO[ݤLzE¹G²}aaÍÄ,eRÂØ“³”x¿(¢ŽQ¦Šóƒ2-¶zºkï'Έ—×c”Ù2Sf =žÌ‰­v¾Oèûd^Ž±ç+[ ÎáÉÂØê|e‹d±c±Pœz@ÉáeY¾<¹Î% -½ ¬,r¥ß(t‰¢QV'Ž½FÙZY—TÉu‰²AŠs}ÑêMEøæœÕ[\K§(O¹òx1Õ[•m“'“GFÍÏ•m—§rVq‰òtÎjç …^Q~UäÊ3ÅTï$ªW”_'Žý¬²]ò\R%kÔ%Êo¥8×­ÞS„ïÍYý¼kée‘+ûŠ©> ì J5/(;,GrVg¹D9šP­¾PŽËKlOÈ˱ÕÎ% -½ ¼‚Hp‚’å%ÁÊÉ,嵄êו½!§{3¶út–ò§„±ÕMÊ[B¯(•l_XXs&Ky'aìw³”x¿(¢ŽQΊóƒò^lõ9×Ò%Ê?âÇåuçåCù§œz<ùwlµó}Bß'rŒýeÅ9<ùolõ'Ê.ɧŽÅz@qPè%ɺO×¼ük[¯#ÞHD¼›ø 1Ÿø(цãlÿS¤–WÓDJŠÜ'–"–'V +uÏaF•} -Ö—QkÊ8,©JSŠ´$+KˈŠVV z;žgÊ*¯Árª×3åIËqœ -ÄŠÄJ¡¢• MEåML%å-"XYõÖ«P¨ÌÑ®"V%V#æ…ºöjë°ª*í#XMõNÌS½«Ãêªô45H«ó»jkëkòj òzÄFa¥ŽÐ×ÔV>ÀÔQ>8‚uUŠy >u9ÎÕÄúÄ¡¢•ÃM}å#Måc#ØPõ QhÈÑ~DlLlBlêÚk¢ÃƪL‰`Õ§G°©ê36SeŽiNÚŒßõcbKb êÍÉ[‡Wµ×|‡-UÉwØJ•%Á³ƒO+ö½†Ø&äZ³ÜaUV:¼V•5Áӄϵì{=±ñ:êmÉ;„Wµ×‡íTÙâ°½*[MÒöì{±cȵ¦ð¯£*;vRe§éLÚ‰}»»»oäÕÎä=ˆ}ÃJaW¸ì‘ï6Ý”ï‹`wÕš¤Ý9NOb/bïPÑÊ#¦—ò㦷òßG°ê¯:ìK¡G»‰ØØŸ8 Ôµ×ëû©r:‚ýUÿK¨þŽÃ›U9ëp …›ùƒ‰ƒ¨ $¿…8Œx;qLX©ã¼ïpˆ*çÞBaëo Qk>r8T•‹féPVþ„xqx¨hå%s›ò/°6ò¯#8BõËævÒçâHâ¨P)¬”`u)䞥¼DG«^Æá -£9ÚXâ8âxâ¡®½*8§J•ŽW=/‚wª^ËáUê™»H'ð»î!N$N"ÞÍ«w‘ßKœVê ƒõÏñ&f’òœ¬zks/édŽ3…8•x_¨he[3Uy{sŸòNœ¦zW‡Ó)Lãh÷g Î uíÕÓá UúFðÕDp¦êƒÎRe¨™M:‹ß5‡8—ø õÙäó«Úk¸Ã¹ªŒtø*cÍ<Ò‡Øw>qAȵf‚êLtø°*SÌBÒ‡Ùwq1‘`²Y^Õ^Ó.Ve¦ÃGT™ƒ&ø<¾?%. ¹ÖÌw¸T•|‡ËTYìBø,cߟWWåÕåäׇ•:Âr³BùÊ`s|MW©¾ÁD Gg±sX¬¯ð©Æâüeq>·]8mYœ£,üƒÅœÂE‹SŽÅßbNå+´8•Øzh3 öp‹9·Ø׃ßf±ÚñwbÇæoÃþk±CÚÒ.¿ ŽÎÂûñ·bj,Ÿ…×±8OZì4÷Ïb]µ[ÑâÞÙÓ¬‰o Å~aß -ì%r¼÷ÏbU¶XÓ,Þ,ÌoRplöcOœÞì9äÁ||†ç/{9æ#…³R -çÎ[)¬£©=ˆcˆÝÈqoS'¿CŽyó°×¦N¢­‰c{p%©SháRÛƒHá¼åÁe¤0oÎû)œ¶<¸‹þ÷Ôkà8‘§ÞËŒ®I½‰'îÔÈ!¤ð¿¥pSÿBŽ†‡ûåÝ€À|{øß=œ}½§ƒã÷pzõ~‰Àóäa<Ü?÷ÇÃYÉÃþâý•Å{ùûhñl¥qŸ½½Èñ\x@^íäÀáÓÒx~Òðzi<·i¬úi¬xi¬ûi¼i¬Ni¬ÅéåÈ;~ ± ù!´XkÓx~ÒO!Ñõ ú<ƒü%´xÒß“Áó³JcN28ádÊ!Ç\e0'œ]2•ÃÝd0'ÌC¦*r¸” Îœ42x2£Å»˜yAæI´ø½Üÿ öâ æ)ówÄEÄÙ|ããÝ÷ñ,ø8›úÝ‘ãŒáã”éc¾|œ½}ìzþsž;±¿9–ÿpÀx}|·ùõqŸ|¼¿>ö2óëã>ù'cnü?"àüW‘cWôñìøØ7ý7c/óqÿ9còÏñöÿÙ¯ -0)Ž&ZÝL³{¸»»Ëáîp¸»»»»»K!!!H‚MÐMÐà÷„¿n®®¿Ý›½›î¹ÿË~lÓõJÞÖ»š]zf1Æ;†Ï"^sÏ5ŒW"Þ…ˆ¾øýö¬AÄ»ºçîeãÝÙƒŸ«gÆx=Ì¿ ïžUoDÄï¬??/Ÿ^<=øÙyñYÙ+0NŠ1~‡½ø¼â Á8%Æøùyžbœã´ˆx-¼øùyñ)Ì‹Ÿ…¯™Ï0o/Œñzxñšyñÿ¯Ÿ½¨íÅÿÞ{¸/`ücün‡à9‚¿(Cð³Á³3ϤŠ·¡ó<âáqéÒ‹K /aa<¿÷ÿW_Ü´ñ)JD˜˜0 ÏŒø}£YRH/Ï|x¿ šYðÙ€fÉDù,„Y ³AðL›¢\„¹ ßø‚eF|z£Y -H¯Ï|E xfÁ'!š¥$åKËLé•£Z™©(½ÊT«*3Õ¤Wƒjµd&Lzu¨V°>až«Û¢&„M ñ·[Ð̈ÏZ4K+éù?oýW_óá3kÐÌÒ"gé"½nÒë!½^ÒëCïïGØŸpÏUHÑ¡„ø+.hf‘³Œ’ÞžùÆAðÌ2"g™Bùi„Ó g@ðL;“¢9„s çAðÌ8"gY$½%<ó-ƒà™e9Dβ’ò«dfµôÖPm­Ì¬“Þzªm™ÒÛDµÍ2³Ez[©¶p;áž«»“¢]„» ÷@ð̸"gÙ/½ƒ<ó†à™åDÎr\t]EwÑCô}E1À8b3N=j7N’=‚x =ßÊ ÜŒKƲËÆU²/¡ç[¹b\ƒÅP1LŒ#Å1NŒÅ$1UL3Ä,1[Ì ÄB±X,1îŒGdïÇdï!>@Ï·òÈx, -‰Â¢¨%E)QF”5öŒCd÷Ãd÷!@Ï·r÷)ãŒqŽìiã¬qžì)Ä3èùVÎçEQITUE5QS„‰Ú¢®¨'ŠÆ¢‰h&š‹V¢h+Ú‹Æuã¦q›ì ã–q‡ìuÄ›èùVnwn Ëñ9…B¥pgð„4 ÅŸ-ø‹¤oi€ë'Á 9â,YIp'þR˜6¥iS™6-¤C›žêQWÜqg¢8³i³˜6«i³Av´9¢yÿ‹õbù¯¸àßÎøB"HŒ¹ä¸“BšÞ•“0îü¸ øÔ -J¯aa(B^QÜ¡¸‹ùð‹K¯aÉŠ¹ ·‰!jyL›÷ÿpõ^¬ëÅÒµâ™6u”§ë+n·0O¯ð—Ï…x>gX<¿’á9–B¾'%Þ_Sã™~M÷ÑŒxÍŒwά±¬>a6š7;Þ§sÊ“Í­å:†ðS;?žØåù¬sùžôî¯PÂbx)÷R®ª•¶dʸ¨VÖ’)ç¢ZyéUpQ%rU4m%¿\e×ÔªÄX­ªY­šôª¨ÖЬVSzµ4w´ÂkC¨  !ԋ¨¯Q­‘iSÔwh*«Í4ÏÖ‚°%´ÒÜ9Ðjcµfµ¶rí\›­½i;¸Ößu$ì+j-™.¦íêŠZ7éu…ÙzøE=]VëåõÁÝÛEµ¾–L?Õú;fР6дC` †¡0 -FÃ0Œ‡Ã s ŒTVë˜9NÃlã 'ÀD˜“aŠ†žÑ¯©Ò›F8Ý´3,Ì™ÔfΆ9¶Ü¹Êjó,™ùfˆn-°dº¨¶È’Yì¢ÚÓ.uÀ\¦Aí%ÇÌ—5¨-'\¯ÀJxVièýZí½æªƒ5~ÑZܯ»¨¶Î’yÃEµõ³oº¤¶Azq¿Mþ[>ŒMÕ6ûE[\š)r½0»Õ%µwf·¹¤¶Ý1s‡µ„ïÁû° ö°ی÷X˜û4¨íwÌ< Aí ôÙ0kPûð£(ù#z[×QÂcpœ¼Q'5ª}ì˜ù‰µSŽ™§5¨!< çà<| -Ÿièýºð Ü‹Êj—L{÷eÜ·p_…Ïá\‡îMeµÛ„wà.|÷à¾rǘÖ‡®ªD®G„áKø -¾†o\UûÖ’ùÎEµ'–Ì÷.ªý ½]T‰\?IïçXPûÅ´¿úå~sMí÷«hVûSz¨þ­Yíéý«¹s õ4Ãÿ1΋Ëâø3˜¡OyLë¥(îOVãë%$LÄëíP-IŒÕ¤šÕ’È%wm¶¦MéVÿ(j©SÇŠZK&-ît,½+j¤—1fË$½Ì± –Å/Êê²Z6¿(îì.ªå´dr¹¨–Û13µ¼¦-Àò±ü¬ eÅX!Œ ³"fqVTY­„cfI ³•",ÍÊ°²¬+¯Þ3µ -Ò«HXÉ´•-Ì*ÔªVcÕm¹5”ÕjZ2µÔgˆV-Ì’©í¢ZK¦®‹jõL[ß³µ†Ž™4¨5&lš²f¬9k¡Þ3µ–~Q+7µ°k¿¨-î6.ªµ³dÚ»¨Ö!`¶£Kj¤×w7ò»ø0ºjTëîõpg&Ù¿gÀl/—ÔzÌöqI­¯cf? jý °lʆ±Áf<Ä®Am„cæH j£¤7Ú†9FƒÚXÂqQòãÕ{P›@8‘M"orÆjS3§iP›î˜9CƒÚLÂYl6›Ãæ²yê=cP›O¸€-T곈-vÀZbÉ,eËžCí%ö2Úå6¬„¯°•J³½ÊV9`­&|­QQ3{¼ÎÖÚ0Ö¾ÁÖ+«½É6Ø06ªjPŸ·Ø&¬· 7³-ztcT{GSŸ­ì]¬m„ÛÙŽX˜m'á{ì}å^»ØnÆMõ^öÚ}6¬ý„ØAeÅCì° ãCM³}ÄŽ8`%<ÆŽ+©`'°>¶d>a§žCí4;ã€u–ð;¯4Û§ì3¬ „Ù%5³Çe[Æ«ìseµk¶Œë„7ØMU5Ï-M}n³;Xw ¿`÷ba¶û„ØC¥>Øc¬/-™¯Ø×Ï¥÷η„ß±'J³}Ï~pÀú‘ð'ö³ŠšÙã[Ư„¿±ß•Õþ`Ú0þRÕ >³ÐþkÃz¸²"ç<Ž ÃÐ3<®–GuóÚÔCãñøä%à ŸC'OÌ“ð¤6¬dZgKnSOA˜’§RÒIÍÓ8`¥%LÇÓ+©eà°2fæYTÔÌYy6FvÂ<§²Z.žÛ†‘GUï[^›z>Âü¼€’NA^ˆ¶e!,ÊCuNZ1M}ŠóX% KñÒ±0[­ÝÊÚÔË–ç”t*òJ¼2¯bêªu¶j6õê„5xMe­Z<̆Q›°¯«¬V×·a4PÕðëÖЦވ°1o¢¤Ó”7ãÍmY-[òVJj­y¬¶–L;Þm‡gTëÈ;9`u&ì»*ÍÖwwÀêAØ“÷RQ3{ô¶eô!ìËû)«õ·e È)« ¶e !ʇ©ª9ø{†kê3‚tÀE8š‰…ÙÆŽãã•úLà°&Y2“ù´SŸQmŸî€5ƒp&Ÿ¥4Ûl>Çk.á<>_EÍì±À–±p_ü?öË8®ªŒã‡Ýn -›4mÒ–nÒG’6MÙM²Ùd“”ÒÒ…,¯ò¬TÞïG)o)Ky—Wé‹G¡´¥PèZDQGF…QPDTDÄAppTTÄßýß»ßtÇÂLDŠsÏÌýÿ~ß¹çž{î9ß~§ÏO[Úk‹eA½<¶¢ÏO[Ùk‹ÛûúŒ’ÞîèÅgPß[Õ§çÜ»'¶:vo/­ÖüWßmm/þuA}_l}ŸŸuì^Zlêcõùic›zi±¹¯Ï(émK/þ‡ƒú‘ØÖ>=g[ìÑØW>¶MP¦zˆ<–‹•âq˜X+6‰i1+Ž§‰3ÄýŃăŹâ<ñ$ñlqx‘x™X¯¯o—‹·‹«Åõâq‹óßeÍÇ1.Sû~bB,û‹;‹»øm¬Ï¸K˜.ë‘eÖf×ßt…ÛÙô@Í›w5¦»]­dÚ Gˆ#ÅQbX/6ˆ£Å1b£¯õ9Á0=©GŽ´6SB8ʼÓKXgö½]½é}™¿¢žåF›>(à³Ììõa=r¬µ9Â5IŽÕ;ŽóiÞ£Ýn¦çº´änj“›Åßb-ç¹fÓ'¸Ó'ó ‹ú4—•lÕ½mbNl;ļØ)vù-­‡3YE}NÀv³ÌØa– B˜7ïÅ®Óôe®ËôÂÙmm®tã%»5ÂÝÅ ââDq’¸§8Yœâ··~®î‘¬ÍunÓ‹{äDks³·½Äíiz™›lz¥·*}gÀ©f¹ÛM“œªÑN÷iÞ{Ý^¦×•0¶··ÏPó½ÔÏÞâ>âLq_ßn}Þp³<èfšÞÄÎ(ê‡Ý~¦·¹ý%÷So³Ä|mms˜~Ühú oWQTû/ø4ï“n¶é§Øm^™­6‡ˆ‡Š‡‰‡‹sÄ#Ä#ţģÅcü{­ÏïºCM¯Gfmž ááæýa ç˜ý9ö}Q¿àŽ4ý¢;ÊôK6Ë+îÓ¿ê‘ÇZ›×ˆ^9VïøEŸæý;Îô›Ä ¯§6_Oð-Öò-w¼éwˆ.Eý®;Ñô{î$ÉuïÉâ)â©âiâéââ™~Këá/îÓ<Õ,ÿ xšY> -áéEïN1w†éq«¨wî‘gY›òž-çYó9â¹âyâ|ßn=T†ð\óV…ð<ó á|ó x¾Yj.á|äŸÖfdÀ ÍR‹ä¼P÷^,^âk»kL/1oSÀKÍ’áer^ªž¿,^..ô-voK/7o[ š½£„W˜½+ â®Pu¥Ok³{ÀEf™«ä\¤{¯¯ñµÝ59„טwZ ¯5ûŒ^'çµêÿzñ_Û]3Cxƒy÷¸Ø,º%«Ÿ›Ä›Å[Ä[Å%âmâR¿¥õ0›ÿ·¢>4„·˜wNo5ïQ!\bÞcCx›ysKMß#—Y›“.—a™Þh…OksjÀ•f9ÃÝ.¹R-ïïïW‰wû^»ëlïÿ<Ðç…ð.ó.á*ó^DPÔ—öÈ{¬Íå!\-ç=á½âq­¸Î·[…®1ïU%\kökK¸Îì7”ð>³ßp½ ÷i ÷û´6·|À,KC¸AÎtïƒâCâFq“o·V„ð!óÞQÂf_UÂMf_]ÂÍf_ë¶HnÖÓ·ŠÛÄG}¯ÝµÞ=bzC·šwc·™w‹{ÔôÖž9å£y{㥂‹y'—_r½ŒöÎ ¿v.Îi¬ß¹ÔøâœÆúñ_Çç¼Òx«÷Mäc¯¢‰´qN ññh^.>Áó¡Y/q2àÄ¢‚+{–šu’ j–ý˜z¡÷ý<õõA›ŸRAäòe?§fœ ¢QÙϨWúejâgbe ùj ²Ú2Þ#NœI¬ 4Q%Á/㬭þoÜ.œ­ú¿ã\’óM9ï•dœIòârÆ™$NÎ@3Æ$9n’¹œõ›œ´aå&g;W1½à0ž$/IŽ9€1T°‹*Øgƒ8'V.áz#Ðor-Gsú«üןÐÌe%1¢òmtƳqýͼVþ™‹ñÊÑßµòhNX¡?Dsbª$Û©blÕÌyc«"_®fœUä Uä¹ÕD°5èr4Ï8‚«M<©"ÊU‘ yùÁìÀÁ¬Ç!ÌÕ`úúAÁ cœC?äú;š¹Ú•%‘â}kˆ^)æ'ÅüÔ«RÌOŠ1Ô3¤ò~£‰I©ƒ;(Åü¤!5ÌmŠl>EÞ]ÿdj®çCóï–"ˬeg=Ô²žkÙÇÃ_ ^çýF¿H½9hCv\Ëú®‹~…úq®Çп þ:×WѯRÓó¡CÍûÖ>èos‘uç2¾ÚïšõZû ú÷Ôäí#« -nëz$ÙWc®ç½êæq‘½Ö/¦&›¬#‡­ç°Žœ¯Ž¬°žo^7?hÚ­c^ÈyG3ž:ï~²›ÑŒ¡ÓDÃÓ7–lh ão¬ðu#Yâ˜o Étr Eg±=…Œn÷l\ÕhÖ@c -ã;žþ˜—ÆÑhò—楱M¶ÒH>ÖÄØƱž›[™Ý8ÆÙDŽÕT@óßÑ8Ý^ƒæTÙȉp±º‰ÜD^~Û¹Ýè?A3iÖeš¼)ͤٳiþ ÓìÙô»ÎeøÖ™IÔýøý>š¾3üwg’f3Ðd7NÆ“á›g˜ó 1¤¹šš9ÊÍä)Í<«™q7¿†~šš}ÔüׂkaÞZ8C¶ðZˆ-¬–yhöiË׸8Ç´p_Ëε2Ï-|ëVžÑŠ½•ùi=ëb4ïÞúýg{–9Ͳž³<7ËþÊNB³ärÙõhæ2Küɲ&³äØYþE²ìÓìœkÛ‰ë‚kcµÚX'm¬“¶ïp½€~ŸšwhûúoÎåøÞ9æ6Ǟȑß䦚X—cßåØ9¾wŽyΑ×ä[ŽŒ#GF“#æäØ¿9žÛÞŸ‹…ÜNžÛžäªD3팵“J;ߺxÚ‘F¿GÍúî` tð~ìÃŽ×Ñü3tð½;x—ëD%*QùTŠ·ª‘jd.ŽGŠ£Ä:±^lG‹c\”‹E%*QÙŠ—G5z'ñ󗢕¨ü?/ãH»bDúÏâŨV©œØ.v|ÚÊJT¢•OX¼è•—êrÑ™/*Q‰ÊŽP¼3_·ÔDq’¸§8Yœ"N§‰ÓÿWƒ‹JT¢•^‹—OíbÛÛÏÛg[^>3SjÖ¿Ù¯À¬Š#<»;Ë"á0Â9¹ä@8® „„+$„+\B€&Ü ·Ü¨¨hÏBEŠB­´V±U µ-ÔÛzVÔÎÛÿñxùù ýÿÍÿ÷}ÃÌ~;oßËÌòÞÌþÊöçDæÀƒ’ãD¥X48uÉ%F]ŠQl8uÉ%F]ŠUl”²ñÊ&(›h®1ªÕhÅ’” W+˜½2 Wã¼=HÝ8pàÀ+(Eš ®Š”ª”¿ùò+P¶PÙUÊ®Vv²k•]§ìz_çÀ7„qžÚàÁ· ®þn´Ÿ¶ŒóÌfŶ+»œ™JŒÙN¸Z·J:¸ªE{Á¿â=þoqpõ+#ŸCXùW>Ï™ãQs|+Ï— °ò9®|N€¿äåª'Á¿â}ü%Þâ`¼7oB dr\™¼mŽï€¿dæz§ÎÅû>øK¼ÅÁxsÎC dâêA`ås\ù|¢<Ÿ){ü%G××ò9øW¼_€¿Ä[®½Cß@`åsÅ Ì2%®·Ê3’0² e¥Ì±Œq•S¶<øK–ÅÁú¿c °ò©dþ’ÕÞŪàW™°ð¯x뀿Ä[èýga(™„C dÒ\¤©96ÉÌõu4ÿŠ·øK¼ÅÁxsÚB dÒ%“Na]”í -’¸ÎMÝ °òéi þ’ÕÎ}D?ÑW ÑXJ†Š!b&†c¾˜/âD´Îð#b´HIb®ÈÉX¿Ê_ã§ùi‘,ëñøE~«a˜,&‰t‘•ù¾‡ÿ€!çüßÅ È_ ƒub0Q$H‹j"Ã0T4²hÂsxŸË`#¬oø±Ád˜è/¢Ä@ƒ¥e]1T ±"Ëò<žË7ÒÕÇò£bŒHc1›‰¬ÈOð“ü ?#Rd}Î?ä—ø%¬ŽUEšHSÄT¬Â¿ç{ùXS0!x!?ÈwóBò×ÆÆ:¬i0Q‘¤ª¨!ª‹XëŠÆØP6MùB>ŸÏãÙØà ?64˜Œ— 2Q&É9NŽ—“p Æà`<†Ñ8‡àqbÇ11Gc*¦á| 'c:fàYbgešL—rºÌ”³ä™…óp>fc.ÀÌǸWÊl™#É<¹Læ˲7àFÜ„»q/îÇó¸÷á¼@ì~ŒŸÊ¦2B6“-d+ÙZ¶‘í°7öÁ(<Š‘ØûáóxÙXEsƒÅbÇø%~c1Çã)LÆq8_Ço•÷”ÁdÙQv–]ewÙCö’‘’a{‰8gâ,œ™8s1ã%ûÉ2F‘Ce¬!ËcWY q5®ÅU¸×Éj2·à6Üçp+nÇøž QÞsø."Ôõ_ÜrÒZ¥·d½ P0`õ>€¯®@¯Ð;Í””‚êPjBm¸B¡.Ôƒú  !4‚ÆA+šÁ=Ðî…VÐÚÀ}ÐÖ¼Ó%íà~h #t‚Îðt®Ð „îÐzB/Zñô†Hè}! -úAPäþâdàM¯,*Ѥƒ`p±k†ÀПùtG¼+¥é - å Æ™l¼9N°®M´X, Wceh Uh¬aP‚•/FÙ8e')›J:Ò ¦Ë0Ÿ1ÕzÚ4sœnŽ3Hgš<ÓZ5ë–ws¶²sHçÂ<È‚ùĘײ­U9æ¸Ð‘æÞòßrÄ‘ÀÅæ¤lÓ[¸3–X¼*T#»–¹­É·:áºsgOçOª|@½š:©«>‚­BV¢Úh 2U¢ ¿ ÔÙƒ©·‡Pw¯Eý½ŽÙáÃÜz|Ê/BuùæªÏ·´:=P¯wõ÷Žf$ž{üõ~ õàÕƒ>;LÕÊ8ªÍ#©.ÇS-NT8‰*o²ª¶ã©ÂN¤Jéì‹ç}1ÞšTe'kÿ6Jš¤YÌè­ÔS§QAÝ3“úålê}×:ßÿ“,ðèͶXŽÍ»°˜çš,²ñ\«Òç)»ÄÃú¥Ú#ö¸w)—ä+»œt¥Í[@º‚ôaíQ{_ --¶ -VÃX ë`=l€äÙ›a Ûaì4W=Bº•t›öȽ+zôîÒ—nÙmã{`/Ù}°¨ùAëÓ±oäñ"³'Ìñ‚¿Âßàïp.Á?Èó | -ŸÑxþ ÿºÉç} ŸkÏé!ÿ¶ñ/,ö¥ö¸tËW6þµÅ¾Qö[Òïû~ {…ô?Ú#öüx»þ)Æ•¤¥Š®gòfŸÌP{n·!¬´GoeË’V°yï -OZñ¦ž\Nwn·µ/wZ¬»‹UfUX«J³j¬:«ÁBXMâw³º,ÌvOmÒ:?ñ¼`Zd^Kw†?s_ê¹Íë»ÍÃuG¨GX‹5dXc“7aMM¡;B=šyôÞÚëŽL¯°»—µd­XkÖ†ø}¬­émGz¿î(5ìK{ïÀ:š¬“²I°]ï¢;ZîKW‹uc²î¬ëÉz±‡XoÉú°¾,ŠõcýÙ6Pw¤>Þ—hÞ‹ ²yëŽÖw†ØøP6Ìd±Ê÷°>Nwľ6£w¤²£HlÞѤñ¤‰º£öÁ¾Œ±XË’Y -ÇƳ l"y&±É,Æ 6•M3W¥’¦“Nѹ—÷eºGï Ýqé6ÓÆ3Ù,²³Ù6WÍçyXŸ¥;bíËü"³æ˜ÍrÈ.$͵]Í#]ävÿbÝxi_–Xl)[ÆòÙr¶‚­¤Ù䬭¢q [ËֹݷZwä^Þ—õEfŠÌ6êŽNŸ°M6þˆÛµÍ¤[móm¤[tGì£}Ùnã;Ü®í$Ýe›ï!}”t·î¨}°/{m|ŸÅö[ì€îõ;h±ÇØãdŸPü²O’>m[û éS¤‡uGíƒ}yö¿ì— |ÕÆïœ,„…$ I ›(«ˆˆl²Ê¢XE«vJ­ZÅ}ß­µJ­eQ‹€ˆ¨ â†¸ÒŶ¶Zwé÷NnNçá›ßKHòΣ¿wOæÿ}sÞ¹gnæÝy#n¹³ÂYé¬ržužsV;kYë¬sÖC78MÕ<_…ó¼ö5ÕɼlöøÄmÑ®K;œ=~«¸mÌíØv°Ûé¼¾Œí%튣4/¯zükÎ.ëv3_Ƕç þoVûÌoh_[­æå­°Ù·wÀw±½ïÉ~€m/¶}Õ:ó{Ú×V«yùPÜGÎÇÎ'ΧÎ~çÏØû‹óWç3çïÎ?àÿí|éüÇsÌçØþås¾¿9_„ìÿSû -q^¾:hÿëƒö¿Ñ®P'œoÅ}ç|ïü`ýÎ2AGêêQØl%Z—¤]¡NP²¸”B )•Á§Q:ep6[cí*æ%Ë㳩‰uM™Í°åx>o®]m祅¸\íZb)(OÜ”¯]MØ -[ªŒÚÊã[3 ´g"‚Úx|[íjb'¨ÐãÛ1Ûk× AEßA»šØ êèñÅÚÕÄNP‰¸NTÊZFåÚUùV ÎÔ%*#uw$uÓ¾îˆÕv§Q©§¸^t”öuG¬¶7MÇDe¤>âúR?Öþ4¨=a«=–Ei¤ãÄ ¦ãµ¯;bµCè„(4TûZkXï‰Qg˜¸á4‚u$OÒžŸzGGiœ1âÆÒ8í«ŽXíxš@'Ge¤‰â&ÑdÖ)4UûúC*<Åã§Ñt:5*£ž&îtš¡=«I³¢4Òlqsè íë[á\?“΢³£2ê9âÎ¥y¬çÑùà|íùº.ôø ègQõ"q èbí9ˆXí%ôó(t©öµÖ¨ÚËèò(ô q.ý’u!ý -¼B{¤®+=~-ŽÒ¨W‰û5]­=a+üÇ_C×ÒuQõzqKèí9[á*£Þ&w3¶[´çC7èV¿M»šØ º]ÜâîÄv—veºAw‡É݃í^íÊtƒîóÉ߯]™nÐâ´ú= þV»2Ý G<þwÚÕÄNУ>ùßkW¦ôØO2ÓRð‡x¾'´¯¨n‚þè“R»2Ý ?ùäŸÒ®L7h™OþiíÊtƒžñÉ/×®L7h…O~¥veºA«ÂäžÅöœveºA«=~v5±T!n­¸uØÖkW¦´!Lîylµ+Ó Úä“߬]™nÐ â¶X}‘¶‚Û´+Ó Úîñ/iW;A;|ò/kW¦´ó'™WèUðµC<ß.í+ª› Ý>ù×µ+Ó zÃ'ÿ¦veºA{|òoiW¦ôvØì;Úui½ë“O»2Ý ½>ù÷µ+Ó Úç“ÿ@»2Ý }òiW¦ô±¸OèSíjÂV¸?êcÚÖ?rƒL`&2“˜ÉÌÌfCf*³3™ÎÌ`f23³˜ÙÌ&̦ÌfÌfsf f.3y3ŸÙ’ÙŠÙšYÀlÃlË,d¶c¶g1;0;2‹™%ÌNÌRf³œ`vfvaveÉìÆìÎìÁìÉìÅ<ŠÙ›y4óff_f?fææ@æ±ÌAÌ㘃™Ç3‡0O`ežÈÆÎÁÉÅ<‰9š9†9–9Ž9ž9y2s"ss2s -s*ss:óæ©ÌÓ˜§3g0g2g1g3ç0Ï`žÉ<‹9—I†ÛýA$ˆ§zd¢Œ’Â$É'û2Yú¤D`é™ZïL‘±ÒLCñÕbªôo\-6’þÙõÂ49S“.>Ç—Ò§EfJϼ6–|~™%ǶªGfË(–M$Ó¶l*Gµ«›Iÿ¢j1GúwŒ*›Ë¸%–-$S¹Ò³Ü2O2kÌ#äØ®˜/=»Õ#[Ê(=BØJò½|ÙZúôŽÀéyL½³ŒÕ7x_[ß¿Z,”þkÀvrÔ :f{9ó`Ë"É ñeé34;JÏa!,–üˆ³DŽUì$£Œ¶,•ÌØ°LŽ_-–Kÿ“kÀ€5)ªì,ãN±ì"™iÕbWéJ”üi‡Ènr†Ø]zÎ -®OÖÏ aOÉŸiÙK2sÍQâϱì-™yæhñçWë/¨ûHÿ ð¯|ºÀ—ý¤Ï%ÕbéiO/®OÖ»x¬ô\èËAÒçŠð89jq–O¯ŠÀã¥çÕ5à9êÚ0½Îr¨d–Ô€'ÊQ7Fà0éys‡KþVË’¹ÝŒgGIþnË“$sop]´>ÜßùôÁàZhýÃfœøGÂp¼|ú¨™ þ±à:gýR3QüÁuÈú'ÍdñOYN‘ÌÓfªøå!œ&ù•–Ó%ólp5²~už*ŸVWë×™ÓÅoÃòéF3Süf¬=U~‹™-~kp²~»9CüŽà:dýNs–øW±Uù]¡ìwàÇEkؽÅ5üæ|½Ïgôqèt×$à-ÔYçš$œ'±-ôlh1ôbhwènèÍ®IÁJ–ü-+TòPÜ# ¦B¿ƒ®qMCÜ)Í¡Ë  \“–‡ŽÐè'®ÉXdLúpè»Ð\“‰6ƒ\“u/^òfC¿€®wM6îݬfPÜ¥Y­\Ówp“™Ð/¡›]Ó÷LNGè“Ы øïä,qM ¼ ä|ˌɽ: Šïnî,è~è ®i‰óæ—Aqå÷‚®€ÞîšV8>ÿk(Vô–£¡; Ë\ÓO‹‚<(Võ‚6®)Ää¶Å¸…_CßqM;|/ -û¸¦h•1ítM¼õµÿŠÿcÑ(èsÐÇ\SBxq@}%¸‹Šqþ|#‹ÇBq}Å+ w@WCñm,®€.>½ºÉ5Åë [°7±’÷OÉbè6èg®é„yî4zt°Õ{ › _¸¦¿ÍJ'C±6•n€î3¦,×5eX3Ë\è£Ð ß@?…âÿZÞ×5åøž•ãºÊ+Œ 4tM¿ðs )ÐyÐÐùÐ èEP¼¡.†â2°Šû pµUÔÀ›R໽ݿŠùÜd÷kïŽÛìùîÂøßC‚¢®À#Èc>˜×îßÀRh2ô[Ç«« iÐ -»¿Áîo„¦B7[}׋y l…·n‡â‰ØÅýØ =ºº­òûfC&Á$š$“l̆iÈùT‹­¶4í"â-Þâ­Î[z­ŽÎ0™XˇZ%™,OŽ¬&`K4MCŽ!›-Áj"3É䚃Ÿ*ÁVùd‰Ý§J°Ÿ,µ» ã-Þâ-–ZF­ŽÎ4MkhgSµ'Øu.¸ÒáÒt‘¾Ž]¡+×îØlIâ’M/ã·NW½ÄZó>=ùöŠ·x‹·Ã­¥Õêèt¬óý #Â|v8üv®l‰fd˜>‡CýU¿ýÇz>;ÞÆÈL2Þö^O’Ï1Ú-ÙjÕózªùés<Å>Ácû}+Þâ-Þþ¿Zås<ýÎÀ×,Ͼc. Ù«lÁµ:ôÉ;-ôÍ/VŸ!ñoñÝüe¶À„®bÁVù»-6[²qÅWþÆŒÍVµêVÎc²¹ÒxWÎ}¬ÿ&þß“3C·”x‹·x«Ã–Él|ˆGg™ls]ÕRÿÍ1ÿe¿:À¤(²ðK=³9‘YX@¢’“äœAïTP J\‚‰œ$ç¬HôN@D²fïD<0wœ~r$ ’A–x55³Ëì2ÓýÍ.¸3\ÿýÕ_]õ¿WU]=SïõrpŸ¾np†œ8aÀJp­yÜŠ®^G6¯ËÎì^€ 6î -Â` øú^^¤?é ØÞy¸; ‡ ÏÃÁ“‰Û°aã^Bt–¼cT¿í­äîÓµvï("ðu:‚àDjÄsGöBƨâ‚;²oTqÁY²ö+´aÃF0!&KÞ±ûT} RÏ`NË¢ Up<Í='´ûìNiwUœp¼Ïjw/xØÁ‡p¯ûàŒ&6lØÈ "­ML¥r·”Ûz>lC!ŸvC0܇M(¬ßó=€Þo³>æïö~ÃOvÃá©=‘óÀíß`ažØœQ3kÿ}6l+¢4GgÒ;b±°W±‚wËS»Îêô‘3xþk0Xcˆ 6þX¨Ì +AúSÌwÞœp`MH]±;à N¤îŸ;7vbðΉõÞ}N|+rƘ›Ú°a#„«9.“Þñ€-îØZî>Ûƒûôu#˜ã[*ØnEæàa7¸Ù\qÏÙ‚aÙ½6lÜ„c2øú¢ ^¤ÿ‚1°¯Zþ`…³ß -„Cb<¤nUåXª½î=®§T9­ÊUΪrÎ3ÎyEo›å’GMQtõ¶Y®¹&ôž…“úµ‘S•0UÂU‰P%R•(U¢ážx?CU`-| _À;H(´ :CênIïŠð þ6Ð&Ú×1 #à&t¥mEÓú”>„¯ ì䎃q˜»07­ÀœÜžvÒ.‰àÓ|–¾¡9˜—vÃeÌOSp¢½ô#-¡}ô=ý¾…À×X‹S2\oh –ädúÄðy¾ˆ¥éš†cè¿tËceEGè$§St†ÎÑ\¬ÝéÖÂqt‰®ÐeøvÃX‡u±>½=°! ¦ÜKâx+ÿÎ),ìÀƆÍq†O`;HƧ°= ÅŽÜŸïã\L’x7ßä2\Ž+p%|†ä*\krm'°3¥·¹.lçÁòvåúØŽpCn ½ 'ô†çÑ åО§èäV´^ >ɧh#m¦­pÃ1RýÈ^ íMŸÐô}/Á‹Ð—;a,Æcè‡yh%æâô%}%‘|†ÏÑ·˜„ùh¤`"MÅ‘X˜¾£ÒRúý@û¹) €þ0‹a ê ƒh–âžô“Äò¾„eø8 é8–Òa¬€Up4¥ß観tžæauL±6N¤ßé*¥ÀPÃàe¬‡ h ÇF4„fro‰ç÷ø2_aƒØ„ñNàHŽåk|[áDZ'\ãœÈÍðQì­¹ áB0FÀ(|Ûâ“0ŸÆ4 ;ñ.Ê%¹¸â÷„¸,—çŠ\Ÿåj\•›s ®ÅuŒR<NbFk¹lãć]E‰k…Ý'£ëÌS·P \íùTIš¤ºæ+›öÕe¿Ša˜¥Ë™Eûú¹â ^×á*7DÈ›ÉQÂ|öFúµòÙm2C,$øÕrªqÇwƾì˾þøË‘í+°¯{ÿŠ^­\ÛÄ6äK»Ï‰º.ÓÙ$A¡[ß„šYeq.êíT2áªD¨Ø¥êhµŽXƒÔz²êïZGδ'Êܾäö¬z™ŒÝúXÎÿœ‰ö<¼`éÿ¢©ú’¥_¿Jͼzúù°h2ö ¬ë!&6CM´a0\×/›ØŒ0}º‘–Ï?ʯ2FóX¯žÑ>¬Æ™Œ=&XÎ?ÑD›“-ý§˜ªS-ý§ùUfhžéÕ3݇Õ,“±_W-çŸm¢½s,ý皪ó,ýçûUh^èÕóº«E&c/†%–ó/5Ñ–ÁrKÿ¦êJKÿ7ü*ÑüW¯ž7}X½e2ö*X­ë5&6o›hká]¯3±y×ôéÖ[>ÿ¿Ê&Í›½z6ú°Úb2öVxÏrþ÷M´m°ÝÒ‡©ú¥ÿ‡~•5âÕó‘«OMÆþ >·œÿo&Úßá S_껈G¹Ø¡9\s”æXÍ šsiΫ9Qs’æ"š‹k¾_sYÍ5WÕ\CsÍäžw™žWß’î7§© FÚ½C].ÚÆéæ45þÇ~u€GUtÑy@ $ „*„ÞB'´@è½ziÒ{ï½IAš4QEAE  ˆ‚€½!¢"*( -" ´õÎ}ã°oÞî— ßî»kþïwϽsö¾™3“—™ÙP•g–ø„bMfÕ·ÙX˜Ê³C­ø„aMVÕ·9Y¸Ê£á9ñ ÇšÕ·yY¤Ê @¯â‰59LTß>À¢T+1'QX™ËDUS\bnÅ”²`4Ò¹ñ©<&ªÊ²ŒQ|œÄ¼HÄàSùLT5•$æWLU‰ÈõMT5ñ )¦ÌX| -aeaÄ"f®j$QL¢ÄXÅ4dE1Åg‹!7sUÓÄ‚ÅßÜ‚%ߊ•Ä´öS -±´™«š¶K+&IbÅtk Ÿ2øl9Äòf®jºH,¯˜îãÓ“UÀ4Ÿ­ˆXÉÌUMo‰•ÓObeÅ `U0­ŒÏVE¬fæªf°«)~˜«+~¤øÛ§:öS±¦™«š1k*f¼ÄZŠ™ÄjcZ Ÿ­ƒ˜`æªfªÄÅÌ01Áu»Y‚ëîÒd—ëÄeÐnù ˆm ½òÝWA; ò=×_—ìº;bð C?wëo†|Äà[!Ÿ ±1øÈGBcí„| Ä–à» QŒµòá÷÷MvÝ}ïïy"Ädð“oKp¹bÁ+&»n‡A\^ òLƒ×€<+D˜‹+òˆ+Á!‚¸|…¬_ÞLÖoo y$Ä-à0¯Û9 nß 9¬<îm1Ÿ8|ä§!Ž/ ùY†!VòsLüm ùyˆÓÀËB~â,ñNB~ â\ð2_(Þȯ@\"ÞȯA\¾òW‚ÃÚÞéñ&cF(ä‡ öï ùˆ½À#$o³‘ò#€÷ü(Ä!ày!?qxÈO±{ó,3ÏóD1Oóü0Oó´0Ï ó„0O…0ù|ÃUÿåX‹–Vf"NP1“\2FË#£yr­‚2šgO–VVAœ‡ic&æé,ÎY1ŸÒ2šçhyÙŠ“Ñ<ý*ËVÍ3+ž¥•çhÚ˜‰yÂ×eæ|êÉXÙ†²ÕHÆ&¼$X)°|"ŸÅñÚ¼oÍ;ñª¼ç5x9^ž¯áxE¾–äƒø>”÷â½y_Þ*›ð¦¼9oO%ðº|=Oäõùèi2ŸÂ§ñéÐë(>šåã Ç.¼+ïÎ{@ïmy;¾‘'ñö|Œ¸„/åËør}ŸËçóŒ]*dÎEh\ÄpÉtŽ¹VŒ­9ÈØ87/†³$.ýE8iþý=•!Å_kž,Te™¼Öd†Ó)³l°«‹˜~7°æÆV´ªÌ#c ÜïóɼÀ}éòÍ -¦²¾ìÊ÷Z…‹øôd,ÜõïWeq¸÷—„ýÆ€½Æ/{Žï½”ƒ½)uãÆÁÞ_nð:Wö¶ª°¯U‡½À·Þ9üZmgcÜmŠÂo5ÁEÞ÷Î&±ÉÛzø®3ø,Ö\ãÿ¦Õ„ßf)ÕÔ†ßf °ŸÿÛ®ÇÉôÖg üÒOC8ÜÛYGçÑ”5O±¦kéõ»V¬µ£zS¶(ÄxÖ†µc¦êÉ$rí²öà1ëĺ`ìʺ±î–šì!K»'{Xå½Xo•÷a}-uýØ#–v6ÀÒÈYÚƒÙ•eÃT>œ°Ô”qmáÇ°±–ö8Çksžà÷U´ÛD6EfSÁ§±é–ogXZ3Ùl•Ïas1Îcó-5 ØBKûQË}6xz8k3@Ì -÷´Ìð" œÁáx+‹„;™ø73q/‹†»˜ø}*îaùáVï>…ᶠ§u1u')·†· q_wƒ{wx¸ ˆ]ZܪÍ}Xì¿â6Ýw±Æâ û ƒ›@sÜ3ÄÞÐÎZñ˜ï`x;Á9ÛE¾}âo™x»Ä[%Þ$ñö Äù Â7E¼!á5Þñ&ˆ¿þ8ø[ÿ]<¯Ë½7¢ïÿË&©l2¹–`2s›J®#ØlšÊ¦ßwiÑfؘ™äš‚Áfydg§ª´hs<²sÉuQÛ<3?Õ}¤E[€è~^ÄÄ]ØÌ“룲%ˆK5ö1·|[N®Òy[ac'× ¶Ò#û¹.j[å‘]M®‹ÚžD\ãƬ_+ó àëØSä*·ÙM亨m3âÝê–?Ͷ‘«t޶ۘ䚂Áž±1Ï‚ïLá©çÈuÚžGÜåÆìAæ/’룲—lÌËà{Rxêrݶ½ˆû4öU·ü5ö:¹Jçm?ânL2ø·ö›ì ¹JçíGö0¹.j{ ñm=â–¿ÃŽ’«tÞÞõK/ï‘ÏÃßvÌ/½'Ÿ‡¿í}Ää:‚ÍN"ž"×löâ‡û‘[þ1û„\¥óö)âgû¹[þû’\¥óö•Gö4¹.jûñŒÆ~C®‹ÚÎ"~«±ß‘뢶ïÏ‘ë6ûñ<¹Ž`³ÒØŸÉuQÛÄ‹û ¹.jûÕ/½\"Ÿ‡¿í7¿ôò;ù<üm—=²WÈuQÛ٫亨íOÄk©|ê:¹î@Û Ä¿RùÔßäºm7íù|}µÛŽŽv‡|¾¾Ú]ã"×f0C®)̱1é¨5ƒém §Ö fdPYFj-ÁdF¨Ê2Qk &32Û˜0jMÁ`F“•ZS0˜nc²Qk -3"lL$µ¦`0#»ÉA­)̈²19©5ƒ¹üÒKnêyøÛŒh¿ô’‡zþ6#Feù¨µ Š¼Ô -¤Žü*+H­U V u¢V éy€ZÔQ˜Z¦§µ©#–Z¦§(µ©£µMOqjRG Ä’[Ê-/m”%SW†lärˆå56Î-¯`T"SW‘läʈUÀ«»±UÝòjF 2uñd#×D¬žàÆÖvËëõÈÔÕ%9‘jäTê¬ïðx ¨gì£Î†×±±Æ6¡^/j›:6R3ÄæÛ‚z¼¨méØH­¨çê£ÎÖ×±­Æ¶£^›Î$į=bíH½6;96^Ä®Ûzl:{ vwl¼‡{jìÃÔë`ÓÙ±—cãõA쫱ý¨×ÚŒGûkìj]Ôf D¤±ƒ©uQ›1q¨Æ£ÖEmÆpÄ;’Z—MçhÄQŽ7q¬ÆŽ£^›Î ˆão"â$L½6S§86Þ4Äé;ƒzl:g!Îtl¼Ùˆs4v.õ:xQ;ϱ‘æ#.ÐØ…Ô+àEí£Ž´q±Æ.¡^/j—:6ÒcˆË4v9õ -xQ»Â±‘G\©±OP¯µ«Wkì“Ôº¨ÍXƒ¸Vc×Që¢6c=â}ŠZµ7iìfj]^Ônql¤­ˆOkì6êð¢v»c#í@|FcwR¯€µÏ:6ÒsˆÏkì.ê°éÜø‚c㽈ø’Æî¡^›ÎW_vl¼½ˆû4öUêu°é|ñ5ÇÆÛø†Æ ^›ÎdÄ7ï õŒ}ÔyÈáñSÏØGo9<ÞÛÔ3öQç‡Ç{ñ¨Æ¾K½œñ{Æ1ªŽ#¾¯±'¨Õ{Qûú8iœò¡êCê¹ú8›ïcÄO4öSêuàŒ?3>÷¡ê Ä/5ö+jõ3ã´ñµUg¨uú8›oï,â·ûõ:pÆßç,ípf\3®[Ú7lÃþ¯r`|ì&‚DAטƒ&1AEÔCHäxH‚ Ä$bLüÀñ@ l/ì ì(ì$ì,|Pø°‹°«°›°»°‡°§°—°·°ðaa_a?aáá@á ap°°P8DX$*&.!)%-,ŽŽŽŽN–' -K…“„“…S„e©ÂiÂé™ÂYÂÙÂ9¹ÂyÂùÂÂ…ÂEÂÅÂ%Â¥ÂeB‹ÄöD`Ô·ˆÕg²Õ¯Q¿ÕT¿®¢~,ÕVÿÌDýxÖÕÙzŒÕÙ§~>5ê'RHýä -´¾Æ›‘x]™JŽú鬧³™T_ýì -l ñ\6ÔÙ¼ -LÐxS6ÒÙf•2Q×´ $õïõ`²Î¶¢õ[#û¨ß–ÒÔ ’½ëwð`†Îvò`¦Î>HYêwq™­‘n.s4Ò#òÌ\¿5V¿Ë<ôuÙD#ý#OÎõR¾ú‘§åú…Ô\ý"—-42ÌeKŒˆ= Ý =Ýå^ïƒ~úr˜b®ác¯@ÿ½æê—Ð/¡×ÃÄ8 jiƹbPAGZûqè*èf(ö^{t3t?ïšýb˜jíDÃóE˜ê\DˆÚ½Îï ¨ØãpêÇ®‚¢ÖŠ]EU‹Ï‹½ -ÝÅýÄ~'L!üÝ{~&§€“î*ºgŒƒÞÄÁ9â #qð9èF¼):û‚ƒþÃï^c‡sЕ8ØËôv]ý†SE—á`Ÿrz@KÐpYPüîCèÝüÎtñ8ëtñ­ èâQÇ8è⑇SEÍâ ˆG½âŒtçG»ó¨üC¢êáÛvPñ‡NAQí‡Þuõ-(*þöU}h+õ{gˆƒJ=´Š*=„çì B­„>-‡®Ä}.GCx2LõO F÷˜€Š;]I"j…äajtÚÉÕ½ˆ#Ÿt¥‰ø;)È3q D"žÊÙ0%aMÅsIú tO˜’‘_:×dTzièW“‘_Zœ{ï^£#M^]½ ½¦œ¹é}¡/Cñž¥¢jÏÀºTìÈ#õ4ô£0¥á~2ñ^¤¡ËÄ÷†š+³·{Ý×½Æ÷¶ŠÏIûÍ*>'çr>'ŸŸu!L¨­³ñÿeà·™ýô#èKPìKÙ¯@?„ƒâ9ä$A¯@Ñeâ½ÈA§”‰s2çô -u¼/™7 Pürׇ) çVîgPœñ½g#ÿÆÇ¡xóð~fã{Î[¦ÜWÞ§Ð牚 ẇâ}Éu{Š¡›ÝU¤«ŠtS‘.*Ò=Õtç´÷3ÒAÅÜ ,°À»ófû8Åcàü&œÝîÞd¾¶†ïÂ}X`ÿßfS}0‰‚z)°À« -f(Lw¯¢ý]y÷zÙ·¬Ë£`/ ,°Àª‚Ê'¯~/°À ìNSK°55R`VÌP°=FŒŽ(ØŸ ,°ª`†:S°X`UÁ u{RdOê%ìöÅè'Wý…ÁŒÁ…Cnù”*úÈ0pÆHŒQ£1Š1Æ`ŒÅ‡1cF ÆDŒRŒI“1¦è'•©7 œ1cÆlªn{©¹Û7X`}#Æ4‡‚ý(°À« -Æ´þ½U_:ßí,°À¾³iûQ`V̦rp-Æ:º¹/Uo³h=ù#oɹDÌÐ&òS6[ÈOÙË‹y)?ÂKx/ç•ü(¯ârój^Çx=?Æó&ÞÈOð~’Ÿâ­¼Ÿæí¼ƒwò.~–÷òox7ïáçø<àC|„/òA>ÌGùÿ•¿°ì6v[»Ý¿Ø­Úà*ª3üž“{r/Y–$0á$„ aÃ%|‡&ĹôB0 DÄ áS’HAK‘BʤVˆŽÉ’↠VÛŽ•Ñ --L§R‹µiA[¦J§ô9g¯;øÃûÎû>Ïž÷9»{î{+rÅÃÄw×ıT,ËÅBQ"‰G7D¡(Åbª˜"&ˆ{Ä$Q Š‰b½xR<%žÄJ±J¬‹ -1W<,¢"&æ‰Ä ñ ˜-‹™¢FÔŠb·xNl›ÅVñ¬Ø"îÆ~j ÿ|®<ï Ÿ¯‚ï€?O!r à7ÄðOªbb§ûåý«.¥HÐ1}ü²u¾ªSŸúNqrGGK{GG[\¬~­gè¬Þò-ñª.…ü5°öÖx¾Þ ÖÈþ_c¢ŽAïØ»cÿßv³ÆüW5ºu¯T quàf SѯkTÂWÔ(ÿŸÙ¯`º^Mîø÷Ô¬Sj–®ZMÈõh8|Pîw'îòž¯u‹ešÇk=<^ èîñ€T? Hñøv@²Ç·ºy|+Àôø@WoßHòx ‹ÇŸ„<þ4 èñ€DW„ÇŸ<¾àñ'8(¬0ÿŽpg÷,–¿sØ{Ë´Xf>Ûe»°]y¼O“‚˜ÂKñ&óŸïà ^Óñ}­x—!¶óEˆ¯ëè+w鸒 q&øL¾£H­–|‰ËBvÁG±w©‚Lö–Ž:í´ -óÝ -ód…ùr…YUaN¨0ÇT˜Iì”|³Že:´|ó•|s]¾™¯$SÍSuì«ã]vZÔ¼5ÏFÍÃQ³$jΚ¢fA/VC9ÈoÑq³Žt\ªã,-SíÔóRŽy(Ç|)Ç,Í1Çæ˜m,™ZK²»µ˜h1µ˜ýZÌ–>æIö%³nn2uieï0dûõyLzì†K\÷áon,pÍ…WÝØ@YЛý‘b!¼öÅØ\à‡TP÷¿eå\áoX¹¾ÿ5Y, ¼äZmè~ч_ùpÁµæÞw­À9×êø¹?s­~€·]'pÖuθÎP@»ëäÚ\§à¹ÎÀ>w#Ë®Ù$O±&ŠðFL_åÆz£õ7Ö°ÑTº±±² ž z½ÆµñgXƒûÀ - z¶UT§ó+©Nçcåú~Påeåú],#[÷[‚gV¸Øµ¦bš®5uá€y®3K˜l9z°‡ÈÑ+œ#êô i„l¦¹‚õ?_ÿt7rNtaÓ(©^…µú~7|êáñ¯’ÿ‘øäbå -“­¿Ê ²ô¤a¬Pé²ýïÐßµö²\«éZƒþH÷ß|/×QÏÒC½ÝS,…"º¿a§aþƤ¼ ?¯¿"?ƒ_oU›À•ŸZ ÛwÉO¬+òª5BþÕ.ÿb%É"Ùòb]›Z ‡"³§)uÜ”ÂÛ„’x̽u¥U‡Ûi;Q–Ñôâ´ÙóšŽeD›F(Ò‘Ö4xvfl^+ÃG¶òÑ -¢óZÙj>¦h–jg« £M×2ªç£!£˜ÈúS½’Q}B-«V²æºú¢Âæúz-û©NKêÄ~-iôG²0F²@–˜D––Y‰IJ†M¡u¬œl fÛZÕ;™•++ï¬ë¥ç ‡!qÂJÒœ† 9œ«Óƒn¥#Y:]î§Ëý9Ø­|žß=ËÏg!Ÿû¿t•Ýûu{¯½\ÝPT–]T’]T/iª]·4½©ª43³¹ú²Jd6% ,)]¼Tᢲ¦ËÙe…MÕÙ…™Íµ ·I7¨tmva35=4¯¹Á.+tkíÚ¢ìE…Ñã3ŽLß󥹪oÎ5ýÈm;¢›®æš±ç6é=*=C͵G͵GÍ5Þ¡ç*Z6ûÞ5®Ç×®õÉí_Ú/΄Lc"U²*JÄqá‹s&#'ÄJÂé2‚Fà® 8,Õ ®ÔUd ê P2,H)°u§Tð¾ÔcdÀ‚Ôf žËîe ʢ¬~eSð‰„²D“h²“a¯6²÷Qø7©Ù´Ù…0ƒJ¨ÙE0ƒ6Q)²›am£-XçÚ^ #ÚE5à{h7øó0ƒöÂí£}xŠè<Å‹0A߆ ýм#:3è{ô]ðïÓð—aD¯ÐÀÒQŒpŒŽa„F˜A¯Â‚ÔL¯AÓJ.ZÚè$ø)XÞ„ :M§Ñ«ÚÑë,Î×DoÓ ü LÐEú)Z~O—Ðò1}þ'˜AWéÏà×`‚>ôwúïötü3˜`}ès|Ð  6„õŠÿyƒ ÿ>±l8øX6|<^Ä&€³)àåì~ðål9Æ©d+ÐòÛˆ–Væ·1<{“og§Á?`gÀϳóàØ2øöKlœ‘|d*ÎÂ|”4P6GƒácÀóy>øX>|>žŸðöË%¦‰ ÀÿÎìƒ")]èCVmiKÛ¡´ö±j—v‹±D+` |$Jb¢D"‘‹W9›xRâû%QN†JŒ >.F9LÄhâ9(ÿm×£/tfóýûÍäïdúw6Û!)thèm¤ =MÒè:Éàl9‚¿>½L:ð¸r…bÍéUzý:½†~“Þ@¿Eo¡ß£·ÑïÓ1ôiúý9}†þš¾@Ÿ£o`…pž~F…Q–±™;= Z…>¬¥Y}µ zð/ypï ¼‡R¢XDÉÃA]¾ÉÃcÞƒÛðõÑ5¯uµ.Û‚Öi+jÑŠšA4“½r s“ß. }_OOÒW‹A|žVð›…ÜÛ§ôLj‰×Æý -ŸŒ¤6TѺêê@†“ê¤PrPUíbKýq‡=îJÝ“ ‡ý•4«TùüMuî”2Nzõªl­¯±)¡¦ZSëâãdßݬÞúd^›ý¨gm µYÛü'¹f½M™Rp…ZÑ…kÄÕfžfpصހ3B4ÂËé°K¢ßLÄÕxÐï“Ä5\,Íe8Ùît9¼‰4—ãÁfNv¹9£ŸT“ ÙŸˆÅÕ¤šæbdªpºÝP;ÙÖá€sZ+ìhU—<ëB«’“6,Y3ßð°¢äõ‹»„wÓ`—ǦE\m+½ýéóû¨d©Z|— IÑèŠàFr(PSìÕW9ÅhT²)yrv×™ŽÝººöÇÁ¶ÁøÁC+ƒÁ`0 ƒÁ`0 ƒÁø ŒfjÜ8áo¿O᡾y£>Ÿg–—˱ú­Y/(×ë—­˜ÙdŒœ9³ŒWÙE4Ÿ1oÁ‘•3€ò¦SÌØi:~Ütý\nk¾;¿¥¹§ 0ÔÒ~äðþß@¶âäÝÈh†è‡(ÀlÇxŽÁaè…£?Íjv8‚9?ŸçO2ÊU.À^ü>#X16¼6Hï-/KÕ7ë}oúŽ}oµö…“+JýÑK÷G'gKáŇÖTåìZ~|â»Ú: +H‰¼W pTåþÎ}äÅÃHT–„Ç].$»†wDº„ÝHtxܲy±„„’qKÕh» REmÅV,¥b䊴:HqR*­"Cq¨TF¤jjE,´Hn¿{7"0ŽÃt÷ÌÙÿüçœ{ßùï¿ @/~i0Êkh§ÜˆÚ)uц—R•‹PãÔT,n2^Ü÷ä;”›}`uecE Ïü±@Òô^]mB’6‹ûßsï«n˜[Ê/Ÿû³äÓsk›«7üÍP¨ ?c +V­<üóOòýÇƨèU›>èáìÅêš–®žýf9ÐSnZYóÝÆ&Õ# i íKkë+¢Hy4jã ´¯©‹.mèñIÚ~ÆÛM»QW¿hiÕÎ OÙ)PžѺªw÷Œ¼ê +Ö+Ù õMPé©®Xêø7,ªj|æ…Z¨Uz¨aQ}ÃkO| uÁy:ip°r?ÊeÞ"ñ}ôú’=êVdöaòq‡;Kí‹z¼oØGÔ¬ÒŸ`~F£aÞbÍû¡ã؆B Q¿â¥å^Ì‘„$ŒŒZɨF+> +% uÐÛQŒ×³Ð/æÙ(Æbı +›i›ŽUö[¶ƒþf«ÇÃX-ý)·bŽJ­ÝŽ(ÄlÁa™ho¦Ÿ‡™&k9¬b‚ø6ngäRÌA%#>‹8 ÍöÃv;;Lf¾áú6a;¸ £¤Y-TŸ¢¥ô6IO)´gÚ/Ûû˜g(ò+‚•¤5xÏa':Ð)¹2]Zíùö"{'²™+†ïãX§ñ;üGrįŒTê•­¬­/rINì٬槬g/ŽHšt—Ù²@še»œS"ê»ÁÞ…±F2㼂=؇8EÏ4é+…R'íJ«š¡®S7è‹õmÓ>Éú&c‰Ð±•þïà(ŽãγdÊ.£eŒ”H)i“lUT¥EÙ¤´*jŠú´úºÖ½ó¸ýWûßDe0rˆñF "„©ìÙApi=±z¯qVûˆØ!¼K:Š&r3e1WÉÍr©„}…e‘ÆœÅ|&ªè’Ì +Ò‰)C9•á2–”')f%%2•sš%w²¢R™#•²\ÖÊd'éUÙ#íò¾œ’3rÁ­RWºqjÅÊte¦²LYOÚ¦T‡¨g´þZŽÐŽhè™zž^ª?¦oIJMþõÅ;[;·Ûš=Õ^eo°Ú§‘†^…;ø”³‡zöЄåXu¤õ¤gˆå/y’wðíæŒÛIoöã/Dõ=NïÒ?xÆ:Øãyö—FŒäL4Óh¾L” »›I +K5ÏFƒ,‘e¤Uò”ÝYÈ»¶ÎWì?«ýYÙ¼†¹„®»V_27Ö1°¤²)æ¬ü‰jr õ ÷¡;° Z[íz;þÊ¥Ý wIX†RàM/EÔÀÁÙƒÌ^c@ÿ~}³2ûxzßtã ½®O¿®gîÝÒRS’“tMU¾YTfXƒË,m°9eŠßÙ›Q*¢—)Ê,ƒª¢+},£Ìu3®ô гú*Ï@Â3pÉSÒø}FÈ4¬?M£MJ§‡)?4#†ÕáÊ·»òWîAÙëåFÈ –”!«hq,* 2Ü®Hóû8LÐÍ lartYÌÃÅñY™f0dõ1ƒ®MÍE+­iÓá`–×ñû,™\a–[0 ­ërºwž3è:#ÌÜ~ß<§~¬è^iV®h  ¼Ì‘¢w‡-5±”2'Çõ9Vo3hõ¾ï„ç‹íçRhåeFKÉ.ŠVÅ‹ÍŠ)‰m™³‹®ä®d¦Á°JK$lIK$Q„[{¢‹*3ähÊj +Õ,4cñš2bŽám™Ì F,L oëèãnü¾]žû'x Ê.ÿ$ÿ$gàõÜŸXÿþ`Bÿöîn®ßÞc\Kf\ÂEœLf1Ë´Œ +7‰ÉZÇ9_Uã¯G7~"Â.çY©“Ëâéãù”¥g§›FüSpPfLJWj¢]š¤ìôOáˆÎ8/Ú»ä6 ñ•´!uZø%‘U‘6±[Úì· ©PçÜKóPç8Ì òinnöQ1ÌKi˜Ï(bÕEÎÜŒ¸/®ŒEFŒײݕ†ªx$—íÌ Ïã÷wÂ^+ɺ$VE"ã'lj£¹qâF¨éŠPãF`€‹tòùJÑàiáéaky0Ë +#„„çg÷´°µ›(F"ôò_ª”ë²yž®šoaÍþarQf2CDâñÄÎôZ»ãñ¬¸ó$öm‚«.EÜ<*m²|škZnz³…é5½,+dªá<^Ÿ· #¾á‘—#<ŠÕŽtý5!<æZ{Mç}9ÂãXsžƒpþ7‡ðø+žðÕ\Žð­¬¶ÀExâׄð·®áÀ5!<éË.dÍ“„'s/C8ñK˜„N +=k;oé¼¥ç„/þ‹éúodcR>ÿöíúùtùylÔJºû<ÿñš\Hz5J>^¦í^r.õõÚjŒ ÿFîKÝ5ß>N½c{ˆl’³É~ò¸.Ýhò'‡›g54'Ž»uÉ Ñª·#[ÿéÕfUU…×}ß;Œã€èór&@b†A½LãÈ ¢¥Ž8<$EòBCiÅ#$2±’Pa0•2(Á‚BâÕôÐÔÊL˜â£ïëË/NÿZgŸ=gî¹ç¬¹ßþuö^gíµ×^{ï5T°>M%ðs<û*Ä;Q rúÊb«¡sPúë”^¿‡St3ú«Xf`eJ.Bûõ%|Þ® ?'>cîF»ø˜¢ÒÐjº\.‡NÌ-E%ˆC ôVZ2bÃc•È€óXfÛ¡”ì£EàŠð`¬ÄAñ¯Læmοk.fÜ;ðÏñ/i´m í[:RÊ·”öqZhÍß«ÖmQðÕ„h*Ï+òo*e Ž³EˆA[¸‰Šð^ ~îÀÜš°–húáûIáõFKè墯(º¶›hd°Òx/ˆª-ØJƒ¢eÔ‚ùÕ+ŸæÁîVɇ&µ®ñØ:CϨùÃX[8G­Xñ¸h+‡Œï³ÿ½: ¶ÖHŽÁ'ø°P­AQ ñâæȺ}<Þ0Ì­@@4¶ï‘oð=l]fËE“Î?;ØAÝg­—•+mÀfàpFùÅ{ Ál£Ö‰4".Iãç-ìŽàåõå-”é4–ýçypžK®™{§ñ\ +T££Dw*ôæœæ}ù+ûÆ´Í{b<Û¶˜óœçÈqÎÀÝteO¾,{ó¸Ü­ñÓYɼ_JLÆÿ…”lf_Á{M¦±B5gì{Þ{¼÷ù;Þÿc;‡S\£ö\ÊÉjLΓ¡éÌ:¼»³±ÏŠŽa£¹¿™ÃËLÆ{¶Û˜nl?—$GÕº[œ>túñ9eíAgnqç—´µ!§5s y†ÿ¿ÔþÑyaÅNÇTå.Ï]â„óï|¶ržç³ Œ‹>O¥Ñ-4?T 6÷@_œÅƒÁ¥°¹˜ûð-çqÐ72™ +ÑW+¦yÑjèS>öÿØ€qR@hÀ¸ãà×t´÷Â{ü^®A[_´5{ãÐÆß5B¿<œ ÎÁXSY>2Æb¾u¼§9–œ;£ÔØIµJrŽ£/7XÕÓª®¸v‹c›Â[¬­øo–oÑ{ÓÙ~¬òø<‚ÛÊðÄãq*†<$v rMˆÞMIA’ª#ÈÄmä‘Àd ‰yVÂF#¾©‰Æ)/ÚN xçý’Œ\„=”dཆ6“‘Ý4'ö¦Ì‰Ç䳩ñ/ OÀ^ƒ¡ªÀ:_NJ|v#vië‡ûbMX÷·( \Nb.«ÏÉÑc¦ ö•×úÕìßâ+ÚxnˆïèåòýÎuCè}èšcåq_´å†&"×ÁÎ:Óî–¬H5ì§Do„ÊèWâ{>#Ê"çhŒÜ›ÓÐ7ùFøEäO6Æ8 lDžæ ­‰ +ùÎ]0v©{gß=ÁÊ‹å|ïà^©—»¥‰òYOîßå´ˆÒþâËhVì$Íâ=!gü(*ILÂ^íPµ8;@%9s»·õxÃ<{¬Ú…kÞ[áac›ì1©˜ãhËêjËç¡-õ­3™k u¾Â9œµ +©gFUbjŸùØ£ËáÛäÐØzɼ«¤6Pg¨ý\»Äs©ÛùÏ÷;ßѶó»*Óù™õüú—éë¦Û³Ù±¾+ë6^×}‘ñ\¶ÍüqGóíßsÝæ`Û½¥î9o¾Ä{ï#® mq±Ýeî Ÿ{b]6©õyÍÏnÜýn3¤ñ^Î-Îtö[_¿øêÚBqæûú+Ö5… —eº/mœ­8ò¡îÍ®zZߟ~lÕß6ÎxßÚî]®ÝÞµ'yÍ7a>ˆ×:íQ7eæô|ÂÙž ^J·†w†¦÷«¨ûº]P|6Ð/Sý¢âTdÕ¼ÝØ™ÏæÙ3™ï'>§ÍzZî akïZºZwŸé|—ñ÷šqñyÎw’œÍÖ}‘Æ|—ñ™Ž;¬‘Ïr{cœ|äEO¾§™±ÏZ5=ÿÏi®ìY³fi”÷uê~>„{ù~‰ÉqÄd Š%ï[ó.nÍÁº×ô\pË;ÿŸh¢BòEùªçf½ß¡lßÆ5q&2šÆ0$¶§iCÆØoÞÝá4Xj ØŸúv€™R“5Z:»ÉèçÚÂ%—²»rÅ8‚³á.u¶¼ãRÛÆí{Ù¾·8ž—š·óÒâãþ¬Ï#Ä×Ç­üµÖ‘sÍŠ³µ&V­Êµ©Ô¥\ƒ¢æ/à3FÕªÅ\sJ‰SÕ—ü?ØFfUWæpí(µ©¢³)µHvô°Ñ}Hs€ÙFgô£“ÇÈ„ØZj6a´Ú!5¯â-Ô,@^Ä;€NÏEá–4H{ø53"£ŒÖH=Æ;§Ñ)0çî@ôŸðu&Æ}cÙ âåŠxßLn\ÐÉ1õêÜæصÀă±ØT±áðOÅÝŠ£=¿.Ÿs¬5¼”uŒŸ ìD5ð´Ñšx +¨U¸ÝèLŒ‘q=×¥G5 ž0Z{,Ê4:~óN,¡æÄÛÔœ…¹2ȧÄàÆoïšwÆDÎ ¦ç£3Œó¨+2ù[BµŒø ‰FÔý[óÀ)`» \Áû„>IµçÚ6*È»ì1þßîÆ` ™æÛDµÑãè +> ?ŽR‹u¾ØjÖýR÷¨óAjcuø­£Ô\­ùžrÁy…íŠ;´ì—÷— +½vÿ#¬u®²ÉnpÕ±ÖïÿÆaœC‹ÕYðžg¤­Áz…'ÓâQEù÷+Kž7AŠR„ú¥5„_m#¤=_A`.½@dàOúÖÓ0^íâ |¹/€_P£Ð¹ÂŒ|³]¬ç›ßC¼¨¾J{™íÿ·‡•¾Õþ[þƶ^MÚŸ< 8ºhæUÞAtSœây4>ÄÅâ ËEöÿ…mòe@NF­\Å=©—­õ + wFý+_•¡/J Wo²åÙC Hé!YϬð|˜ë‡ÕîÇœsæÛV,sU ¼µ{©Ø\©"Ð+ç®ÝGK}©Ÿ¯'ùZ* B_í"ÅÅò¼ÚG»DKý©Ô×öGK™‡öG´4 _Cƒ]µ‡8Z>êa{¨£¥ÜC»BKèRIÃ]µG8ZªïªÝ¢x‰<¿àa—_Tü%z˜¡/‹üWí¥Š—És¹íZú*­TÒ£®Ú«´ô5Z­¤¯»j?¦øò|ÜÇ“56ù Ý}SñZy>iëùVíuòü¶~ÿŽ§í§´´ž¾ëëÉ-=MÏøj?k“7újoR¼YžÏÙzZ3hOK[èû¾¶·ji*W?ílò‹¾ÚÛÿPž/Ùz~AûGòÜ¡ßwzÚþ±–~B/ûz²KK»é_íŸÚäŸùjïQüª<nëÙ›A»MKûh¿¯í×´t€újÿÂÑrÈCû°–~I¿~Ž¸jUükyŽ{Ø>áh9é¡}ÊÑòív-ý–~§¤ß»jÿÁÑò†‡í7µôGzKøzÛUûOŽ–Ó¶;-g<´ÿ¬¥¿Ð»Jú««ö{Šÿ&Ï÷=ìòï¬â¿ÿ—ð*–¢¸¢õjz¦Ùwá³#KXˆ( û" ‹Beäƒ0€ì‹G01áDL ‹  $ƒŠ$Æ 'DŒÁÄC0âWäçöíúÏßg~÷ÌùïÖ}·_Õ̯ ‡÷‰ù”ü³ØêÏ]ûñ9ÆþRÙWækǾ‰­þVÙwæ²cßÇV_qmàoELò/‘˜•TŽ_-âÜ©¤‰™Õ>±„”b[ZJJ™„ê²ÊÊIùä‘QSAYE©”³º²k«¯ÊQ]UY5ÉK®EMõ,%Á7Š:F©%tŒRWêÄVgyD¹:aìúYJ‚ouŒÒHœ”ƱÕM²”x¿(ÒLYs¡W”–’í kZe)­ƾ&K‰÷‹"ꥭ8?(×ÇV·s-]¢tˆ—×c”ÎÒQ: =žt‰­v¾Oº»ç»‡²žâžôŽ­î£¬¯ÜäX¬ç…Prx@˜¥ J¨¬lˆÐÊP¹5¶Ú¹C¡8AIð’å%ÁÊYÊÈ„êQÊFËÇÆÆVËRÆ'Œ­nR&½¢Ü#Ù¾°°fb–2)aìÉYJ¼_QÇ(SÅùA™[=ݵ÷gÄËëÎ1Êl™)³„OæÄV;ß'ô}2/ÇØó•-çðdalu¾²E²Ø±X(Î += äð€²¬_ž\‹ +ç…^PV¹RŒoºDQ(«Ç^£l­¬KªdºD٠Ź¾hõ¦"|sÎê-®¥S”'Š\y¼˜ê­Ê¶É“É#£æçʶËS9«‹¸Dy:gµó…B¯(¿*rå™bªwÕ+ʯÇ~VÙ.y.©’5êå·Rœë‹Vï)Â÷æ¬~ÞµtŠ²¿È•}ÅTPvP%Œš”–#9«³\¢M¨V_(Çå%¶'äåØjç…^P^A$8AÉò€’àåd–òZBõëÊÞSŽ½[}:KùSÂØê&å-¡W”¿J¶/,¬9“¥¼“0ö»YJ¼_QÇ(gÅùAy/¶úœkéåñãòºsŒò¡üSÎ =žü;¶Úù>¡ï“ 9Æþ²‹âžü7¶úe—äSÇb= 8(ô€’äݧk^~€5‰-ˆ×o$"ÞM|˜O|”hÃq¶ÿ€)RË«i¢G%EîKË«„•:Žç0£J ‡>… ëK„¨5e–T¥‚)EZ’•¥‰eˆeCE+«½Ï3e•×Š`9Õë™ò¤å8NbEb¥PÑʆ¦¢ò&¦’ò¬¬zk‡U(TæhW««óB]{µuXU•ö¬¦z§æ©ÞÕauUzš¤Õù]µˆµ‰uˆ5yµy=b£°RGèkj+`ê(ÁºªżŸºçjb}bƒPÑÊᦾò‘¦ò±l¨ú‡(4äh?"6&6!6 uí5ÑacU¦D°‰êÓ#ØTõ™›©2Ç4'mÆïú1±%±õæä­Ã«Úk¾Ã–ªä;l¥Ê’àÙÁ§û^Clr­Yî°*+^«ÊšàiÂçZö½žØŽxõ¶ä«ÚkƒÃvªlqØ^•­¦i{ö½Ø1äZSø×Q•;©²Ót&íľ]ˆ]‰Ýˆ7òjgòľa¥Ž°+\öÈw›nÊ÷E°»êMÒî§'±±w¨håÓKùqÓ[ùï#ØGõWö¥Ð‡£ÝDìGìOêÚëu‡ýT9Áþªÿ%‚TÇáͪœu8ÂÍüÆÁÄAT’ßBF¼8&¬ÔqÞw8D•óo¡0„õ·†¨59ªÊE3Œt(+B¼8>CŽó—=ó‘ÂY)…ó@ +ç­ÖÑÔÄ1Än丷©ˆˆß!ǼyØkS'ÑÖDŽ±=¸’Ô)´ð@)ŒíÁ?¤pÞòà2R˜7çýN[ÜE +ÿ{ê5pœÈSïåFפÞDŽwêäRøßR¸¿©!Ç ÃÃýòn@`¾=üïξÞÓˆAÈñ¿{8½z¿Dàyò0ûãá¬äañ~ƒÀÊ⽈ü}´x¶Ò¸ÏÞ^äx.¼? ¯öò àðiiÎÞ>v=ÿ9ž#ŗ¿1±9Þ}Ï‚ØßK€8༿>¾ÛÇüú¸O>Þ_{™ùõqŸüÈ17þðþ«È±+úxv|ì›þȱ—ù¸ÿ÷ÏȱùgŽxûÿìW˜G­n¦Ù=ÜÝÝåpw8ÜÝÝÝÝÝ%$A‚&h‚&hp‚F‰{Â_7W×ßîÍÞÍ@÷Üÿe?¶éz%oë]Í.=³ãÃg‘¯¹çÆ+ïBD_ü~{Ö â]Ýó÷2ŠñîìÁÏÕ³c¼æß„÷FÏ*Œ7"âwÖƒŸŸ—O/ž‹üì¼ø¬ì'Å¿Ã^|^ñ†`œcüü¼ßÍ,øl@³d¢|¬„Ù x¦ÍNQ.ÂÜ„áO|Á2#>½Ñ,¤W‚g¾"<³à“ÍR’ò¥e¦ŒôÊQ­‚ÌT”^eªU•™jÒ«AµZ2&½:T«GXŸ°ÏÕmHQ¦„øÛ-hfÄg-š¥•ôüŸ·þ«¯ˆùð™5hf鑳t‘^7éõ^/éõ¡÷÷#ìO8‚çª ¤háPBü43‡ÈYFIo Ï|ã xf™‘³L¡ü4Âé„3 x¦Iѹ„ó xfœ‘³,’Þžù–Að̲"gYIùU2³Zzk¨¶VfÖIo=Õ6ÈÌFém¢Úf™Ù"½­TÛF¸pÏÕÝIÑ.ÂÝ„{ xfÜ ‘³ì—ÞAžùCðÌr"g9.ºˆ®¢»è!úˆ¾¢¿`1Ž'È5Ž'ÉA<†žoåî Æ%ã +Ù‹Æeã*Ù ˆ—Ðó­\1®ŠÁb¨&Fˆ‘bŒ'Æ‹‰b’˜*¦‹b–˜-æ‰b¡X,–÷ŒÆ#²÷‡Æc²÷ ç[yd<…DaQT„Š’¢”(#ÊûŒÆ!²ûƒÆa²û ç[9„û”qÆ8Gö´qÖ8Oöâô|+çŒó¢‚¨$*‹ª¢š¨)ÂDmQWÔ EcÑD4ÍE+ÑF´íEãºqÓ¸Mö†q˸Cö:âMô|+·;·†e‰øœÂ?¡R¸3xš…âÏüEÒ·4Àõ“à…q–‚¬$¸“á_)L›Ò´©L›Ò¡MOõ¨+3QœÙ´YL›Õ´Ù ;ÚѼÿÅz±üW\ð€Àog|H !$Æ\rÜI!M ïÊI˜w~Ü|j¥Wˆ°0!¯(îPÜÅ|øÅ¥W‚°dÅ\Ûĵ<¦Íû¸z/Ö‹õbéZñL›:ÊÓõ·[˜§WøË‹çB<Ÿ3, ž_ÉðK!ß“ﯩñL ¿¿¦ÇûhF¼‡fÆ;gÖXV Ÿ0Í›ïÓ9åÉæÖò? Cø©Oì‚ò|Ö¹|Oz÷W(a1¼‹”ÀûF)WÕJ[2e\T+kÉ”sQ­¼ô*¸¨¹*š¶’_®²kjUb¬VÕ¬VMzÕTkhV«)½Zš;Za„µ¡Ô…ÐêEaÔרÖÈ´)jŽ» 4•ÕfšgkAØZiîhµŽ±ÚF³ZÛ¹v®ÍÖÞ´\ëï¿:vŠµÎ–LÓvuE­›ôºÇÂl=ü¢ž.«õò‹úàîí¢Z_K¦Ÿ‹jý3hPhÚ!0ÃP£aÆÃa„…9F*«u̧a¶ñ„`"L‚É0ECÏè×TéM#œnÚæL j³gÃ[î\eµy–Ì| 3D·X2 ]T[dÉ,vQm‰i—:`.Ó ö’cæËÔ–®€W`%¼ +«4ôŒ~­ö‹^sU‹Á¿h-î×]T[gɼá¢Úú€Ù7]RÛ ½¸ß&ÿ-Æ&j›ý¢-.Í¹Þ ˜Ýê’Ú»³Û\RÛCƒÚNÂ÷à}Ø{áØmÆ{,Ì}Ôö;fРvPz‡l˜‡5¨}HøQ”ü ½­ë(á18NÞ‰(Œ“Õ>vÌüDƒÚ)ÇÌÓÔΞ…sp>…Ï4ôŒ~]xîEeµK¦½‚û2î[¸¯Âçp ®Ã ÷¦²ÚmÂ;p¾€{p_¹cLëáCWU"×#ÂÇð%|_Ã7®ª}kÉ|ç¢ÚKæ{Õ~Þ.ªD®Ÿ¤÷s,¨ýbÚ_ýr¿¹¦ö{ŒÕ?4«ý)½¿TÿÖ¬öôþÕÜ9Ðzáÿg‚ÅeqüÌЧÆ<¦õR”w‹'«ñõÎÆ&b‰õv¨–$ÆjRÍjÉä’»6[ +Ó¦t«µT„©cE-%“w:–Þµ ÒË ³e’^æXPËâeuY-›_”wvÕrZ2¹\TË혙GƒZ^Ó`ùX~V…²b¬Æ…Y ³8+ª¬VÂ1³¤†ÙJ–feXYVŽ•WïƒZéU$¬dÚÊf jU «±ê¶ÜÊj5-™Zê3D«fÉÔvQ­Ž%S×Eµz¦­ï€Ù@ƒZCÇÌFÔ6aMY3ÖœµPïƒZK¿¨•›ZØ¿µ_ÔwÕÚY2í]Të0ÛÑ%µNÒ댻ù]|]5ªu÷‹z¸3“ìß3`¶—Kj½fû¸¤Ö×1³Ÿµþ„Ø@6ˆ eÃØ`3ba× 6Â1s¤µQÒmãAm,á¸(ùñ꽨M œÈ&‘79 +cŠFµ©Ž™Ó4¨MwÌœ¡Am&á,6›ÍasÙ<õž1¨Í'\À*õYÄ;`-±d–²eÏ¡ö{írÖ +ÂWØJ¥Ù^e«°V¾ÆÖ¨¨™=^gkmëß`ë•ÕÞdlU5¨Ï[l“ÖÛ„›Ù=º1ª½£©ÏVö®Ö6ÂílG,̶“ð=ö¾r¯]l· c¦¿z/ûí>Ö~Âì ²â!v؆ñ¡¦Ù>bG°ŽcÇ•ÔN°“X[2Ÿ°SÏ¡všqÀ:KxŽWšíSö™Ö‹쒊šÙã²-ã +áUö¹²Ú5[ÆuÂ즪šƒ¿ç–¦>·Ù¬»„_°{±0Û}Âì¡RŸGì±Ö—–ÌWìëçÒûÆç[Âïإپg?8`ýHøûYEÍìñ‹-ãWÂßØïÊj°?m©jPŸ¿Ù?hÿµa=@\Y‘sdžaè™ ×Ë£Gºymê!„ñx|òð„Ï¡“ˆ'æIxRV2­³%·©§ LÉS)é¤æi°Ò¦ãé•Ô2ðŒX™3ó,*jf¬<› #;ažSY-ÏmÃÈ£ªá×-¯M=a~^@I§ /Ä Û²Šå¡:§ŒF­˜¦>Åy ¬’„¥xéX˜­ŒÖnemêåËó +J:y%^™W±aUÕ:[5›zu¼¦²V-fèMX‡×UV«ÇëÛ0¨jøukhSoDؘ7QÒiÊ›ñ涬„-y+%µÖ¼V[K¦o¶Ã3ªuä°:vá]•fëÆ»;`õ ìÉ{©¨™=zÛ2úöåý”ÕúÛ2䃔ÕÛ2†åÃTÕü=Ã5õÁG:`"ÍÇÄÂlc ÇññJ}&ð‰X“,™É| +کϨ6OwÀšA8“ÏRšm6Ÿã€5—pŸ¯¢föX`ËXH¸ˆ/þûåWUÆñÃn7…Mš6iK7é#I›¦ì&Ùl²IJié‹B–WyV*ï÷£”·”¥¼Ë«ôÅ£PÚR(ô-¢Œ(Š#£Â¨ ( +"*"â 88 **âïþïÝoºã a&"ŹgæþοïÜsÏ=÷œo¿Óç§-íµÅ² ^[Ñ秭ìµÅí}}FIowôâ¿3¨ïŠ­êÓsîŽÝ[»·—Vkþ«ï¶¶ÿº ¾/¶¾ÏϺ?ö@/-6õƒ±‡úü´±M½´ØÜ×g”ô¶¥ÿÃAýHlkŸž³-öhì+Û&(S=Ä ËÅJqˆ8L¬›Ä´˜Ç‹ÓÄâþâAâÁâ\qžx’x¶¸@¼H¼L,ˆW‰×‰7ŠËÅÛÅÕâzqƒ¸EŒùï²æã—Œ©}?1!–‰ýÅÅ]ü6ÖgÜ%L—õÈ2k³‹ëoºÂílz ž¢®˜4ËPW.™ÔÓ+|š7å˜þ‰X©æÔÏ@qX%VûvësTÀAfipU¦½ñzœl:ã†HVoC}š·Õíj:ç†Iîª6)ŸæÍ»ÓÝ®V²Fm†‹#Ä‘â(±N¬ÄÑâ±Ñ¿×úœàF˜žÔ#GZ›)!eÞé%¬3ûÞ®Þô¾Ì_QÏr£MpŒYfv‹ú°9ÖÚáš$ÇêÇù4ïÑn7Ós]Zr7µÉˆÍb‹o±–ó\³é\‹é“ù†E}šËJ¶êÞ61'¶‹b^ì»ü–ÖÙ¬‚¢>'`»Yæì0Ë!Ì›÷b×iú2×ezaì¶6Wºñ’Ýáîâqq¢8IÜSœ,NñÛ[?W÷È Öæ:·‡éÅ=r¢µ¹Ù[^âö4½ÌM6½Ò[•¾3àT³Üí¦INÕh§û4ï½n/ÓëJÛŽÛÛg¨ù^êgoqq¦¸¯o·>ï¸Yt3MobgõÃn?ÓÛÜþ’û©·Y⾶6¹L?î4ý„·«(ªý|š÷I7ÛôSì6¯ÌV›CÄCÅÃÄÃÅ9ââ‘âQâÑâ1þ½ÖçwÝ¡¦¿×#³6Ï„ðpóþ°„sÌþû¾¨_pGš~Ñeú¥€G›åwŒé_õÈc­ÍkÄ ¯«wü¢OóþÎgúMb†WŽS›/‰Ç‹'økù–;Þô;D—¢~×hú=w’䉺÷dññTñ4ñtñ ñL¿¥õðwŠéžj–<Í,…ðô¢w§˜;Ãt‚¸UÔ;÷ȳ¬MyÏ–ó,ùñ\ñ`–¥!Ü çº÷Añ!q£¸É·[+Bøyï(áF³¯*á&³¯.áf³¯u[$7ë鋈[Åm⣾×îZï1½!„[Í»1„ÛÌ»Å=jzkÏœòÑ¿¼½ñRÁż“Ë/¹^F{g_;ç4Öï\j|qNcýø¯‰ã‹s^éÇ?H¼Õû&òljÀ±WÑDÚ8'øx4/ŸàùЬ—8pbQÁ•=KÍ:I5Ë~L½Ðû~žúú ÍO©‰ rù²ŸS3ÎѨìgÔ+ý25ñ3±2Ð|µYmï'Î$Öš¨’`—ñN ÖVÿ· +nÎVýßq.Éù¦œ÷J2Î$yq9ãL’'g c’7IŽ\ÎúMÎ +Ú°r“³«˜^pO’ˆ—$ÇÀ*ØEì³Aœ+—p½è7¹–£9ýUþëOhæ²’Qù6:ãÙ¸þˆf^+ÿÌÅøåèïZù4'¬ŠÇТ91U’íT1¶j漊±U‘/W3Î*rÐ*òÜj"ØÀt9šç ÁU&žTåªÈΆ¼áÜ`và`Öãæj0ýý à†1ΡrýÍ\íÊ’Hñ¾5D¯ó“b~jˆU)æ'ÅjÈRy¿ÑĤÔÁ”b~R„æ6E6Ÿ"ï®á_25×ó¡ùwK‘eÖ²ƒ‡³jYϵìãá/P¯ó~£_¤Þ´!;®e}×ÎE¿Bý8×cè_Pë«èW©¿éùп¡æ}kŸ ô·¹È:‡¿Îs_í÷Íz­}ý{jòö‘U7Šu=’ì«Ž1×ó^uó¸È^ëS“MÖ‘ÃÖó?XGÎWGVXÏ7¯›´aÍÖ1/ ä¼£Ow?ÙÍhÆÐÀi¢áé‚K64†ñ7Vøº‘,qÌ7Ðd:¹†¢³ØžBF·{6®j4k 1…ñOÌKãh4ùKóÒ؈&[i$kblãXÏMŒ­‰Ìnãl"Çj* ùïhœŠî@¯AsªläD8ŽXÝDn"/H¿íÜnôŸÎ ™4ë2MÞ”fÒìÙ4ÿ„iölú]ç2|ëÌ$ê~ü~Mßþ»3É@3‡™h²› '‡ ãÉðÍ3Ìy†Ò\MÍežG³ðšyŸfò”fžÕ̸›_C?MÍ>jþkÁµ0o-œ![øF-ÄŒÖFË<4û´åk\œcZ¸¯å çZ™ç¾u+ÏhÅÞÊü´žÎu1šwo}Ž‹þ³Œ=ËœfYÏYž›ee'¡‰‡Yr¹ìz4s™%þdY“Yrì,ÿ"YöiöGεíÄuHÁµ±Úˆ?m¬“6ÖIÛw¸^@¿OÍ;´ýý7çr|ïs›cOäÈorSM¬Ë±ïrìß;Ç<çÈkrŒ-GÆ‘#£ÉsrìßÏmïÏÅBn'ÏmOrU¢™¿vÆÚÎI¥oÝN<íH£ß£f}w°:x¿öaÇëhþ:øÞ¼Kžµ–g/ç9æY¿yæ3ÏÙ.ÏY Ï|æ9ÛåYGùo9×9ÍüuòÍ:±wß:9/u>‹æ[tþ„ë·hb[cê">tÍ ôj4q«‹ïÑEÜë:’šõ×Å^îbíwsþêQpÝÄ¢nöH7ë¿›ÿ™nþ‡º ù¾Ž9w1÷y)ñÏzQ‰JT>•ÒÏTÂEq)*Q‰ÊŽP¼¸T&U.Vˆ¯§*¥‰U®»¶ ýÜŽ[Ÿõ¢•¨|*Å‹[ÕÎH5² Gˆ#ÅQbX/6ˆ£Å1.ÊÅ¢•¨ìÅË£½“øù‰KQ‰JTþ‹—q¤]1"ýgñbT«TNl;>íaE%*Q‰Ê',^ôÊKu¹èÌ•¨DeG(Þ™¯[j¢8IÜSœ,N§ŠÓÄéÿ«ÁE%*Q‰J¯Å˧ö +±ííŠçÆí³-/Ÿ™)5ëßìW `VÅžÝåF„pá ‚‚\rH  WB®@!@n[nTT´‚g¡"E¡VZ«Øª…Úêm=+jçíÿx¼üüþÿæÿû¾af¿·ïefyofeû‚s"sàÀAI€q"‹R,œºäÀƒ’£.Å(6 œºäÀƒ’£.Å*6JÙxe”M4×Õj´bIÊŽ…«Ì^ЫqÞ¤î8pà”"MWEJUž4eÓ•¢l†²S•¦ìteg(;SÙLpÎe8( 0NS³LΔõŸºäÀƒ@„qâÈ‚«éz5*G±\e+›çõ¸8pààæ`T¯%Š-ç7ŸJŒß|ùŠ([¨ì*eW+»FٵʮSv½¯‚sàÀƒÂ8OmðàÛW7ÚO[Æyf³bÛ•ÝΉÌ%Ɖl'\­[%\Õ¢½à_ñ‰·8¸ú•‘Ï!¬|ƒ+ŸçÌñ¨9¾•çKXùW>'À_òrÕƒ“à_ñ¾þoq0Þ›7!P29 ®LÞ6ÇwÀ_2s½SçÀ¿â}ü%Þâ`¼9ç!P2qu °ò¹®|>QžÏ”½ þ’£ëkùü+Þ/À_â-×Þ¡o °ò¹bf™×[åHIY²RæXƸÀÊ)[ü%Ëâ`ýß± +XùT2 ÉêFïbUð«LXøW¼uÀ_â-ôþ³0”LÂ!P2i®ÒÔ›¿dæú:šƒÅÛ +ü%Þâ`¼9m!P2i’I'ƒ°.Êv…É +\ç¦nXùô4‹ÉêFçÀ>¢Ÿè+ˆh,%CÅ1H ñ _Ìñ "Z çGø1Z$ˆ$1Wd‰d¬À_å¯ñÓü´H–õøü"¿ˆÕ0HL“DºÈÀÊü +ßÃÀ‚ó~€ïâ䯅ÁÆ: 1˜¨@$‚E5Œa*aÙ@4á9<‹Ïå °Ö7üØÀ`2LôQb ˆÁÒ²®*‹X‡eyÏåéjŒˆãGùQ1F$Š±ÍD +Vä'øI~†Ÿ)²¾ çòKüVǪ"M¤Š)b*Váßó½üG¬)˜¼ä»y!ùkc cÖ4˜¨HRUÔÕE ¬‡uEcl(Š¦|!ŸÏçñllŒá†LÆË™(“dŠ'ÇËI8cp0Ãh„Cð8±ã‰˜€£1Óp +¾…“13ð,±³2M¦Ë 9]fÊYrŽÌÂy8³1 `æã +\Ž+e¶Ì‘‹dž\&óå +Y€p#nÂݸ÷ãy܃ûð^ v?ÆOeS!›É²•l-ÛÈvØû`ÅHì‹ýðy¼l¬¢¹Áb1‡ãü¿Æ±˜‚ãñ&ã8œ€¯ã·Ê{Ê`²ƒì(;Ë®²»ì!{ÉHÉ°½DœŽ3qÎÀLœ¹˜‡‹q‰Œ’ýä#‡È¡2VŽå±«¬„…¸×â*\ƒëd5Œ[pîÀs¸·ãN|O†(ï9ƒ|êú/n9i-€ÒÛ²Þ(°zÀWW  „ŠWèfJJAu¨5¡6Ü ¡PêA}‡ÐAcˆ Íàh÷B+h mà>hkÞé’vp?´‡Ð:Agxº@WèBwè=¡­xzC$ô¾ý ? (rq2ð¦W•hÒA0¸Ø5C`èÏ|º#Þ•Òô†–…rP*@E¸î„&P šCÜò'ïfŽ#HG’Ž²]‹'MP,ÑôŒ†1&K"Kšl[ŸãL6Þ'X×&Z,†«±2´„*4Ö‚0¨ÁÊ£lœ²“”M% iSˆe˜Ï˜j=mš9N7Ǥ3Mži­šuË»9[Ù9¤sadÁ|b ÌkÙÖªs\hŽ‹Hsoùo9âH`Èbs R¶é-Ü™K,^ª‘] +ËÜÖäÛNpݹ³ƒ§ó'U> ^M ÔUÁV!+Qm4P™*QÆ_êìÁÔÛC¨»×¢þ^Çìðan=¾ 塺|sÕç[Z¨×»ú{G3Ï=þú?zpŒêÁFŸ¦jeÕæ‘T—ã©'ª +œD•7YUÛñTa'R¥töÅó¾oMª²“µ%MÒ,fôÖ ê©Ó¨‹Î î™Iýr6õ¾kïÿIxôf[,Çæ]XÌsMÙx®Uéó”]âaýRíûFÜ»”Kò•]NºÒæ- ]Aú°ö¨½/…[«a ¬…u°6ÀFòl‚Í°…Æí°vš«!ÝJºM{äÞ•G=zwiK·ì¶ñ=°—ì>ØÔü ‡õiØ7òx‘Ùæxž$ûéa·õO»ÍŸÑžwäY‹ýžƒ#pž‡àEx‰…Ïh¼ ÿ„Ýäó>†Ïµçô¿ÛøûR{\ºå+ÿÚbß(û-éwŠ}?½BúíûF~¼Æ]ÿãÊ +ÒRE×3y³Of¨=·ÛVÚ£·Œ²eI+ؼw–'­xSO.§;·ÛÚ—;-V‰ÝÅ*³*,ˆU¥Y5VÕ`!¬&ñ»Y]f»§6iŸx^0 -2¯¥;ß¹/õÜæõÝæáº#Ô#¬Å²F¬±É›°¦&‹Ð¡aÍÖÖô¶#½_w”ö¥½w`MÖIÙΤØ®wÑ­÷¥«Åº±YwÖƒõd½ØC¬7‹d}X_Åú±þl¨;RïK´GoŒÅÙ¼ƒuGë;aCl|(f²Xe‡{X§;bßáÑ;RÙQ¤ 6ïhÒxÒDÝQû`_ÆX,‰eÉ,…cãÙ6‘<“Ød–Fc›Ê¦™«RIÓI§èŽÜËû2Ý£w†î¸t ›iã™lÙÙl›«æó<¬ÏÒ±öe~‘ÙsÌf9d’æÚ®æ‘.r»±î ¼´/K,¶”-cùl9[ÁVÒìaÒVÈVѸ†­eëÜî[­;r/ïËú"³ EfuG§OØ&ÄíÚfÒ­¶ù6Ò-º#öѾl·ñn×v’î²Í÷>Jº[wÔ>Ø—½6¾Ïbû-v@w„z„´Øcìq²O(~HÙ'IŸ¶­}†ô)Òú£öÁ¾<û_ö˾Šê +ãwNBÈB„$M”UDD6YewaSQQ¬¢U;¥‚V­â¾ïÖZ¥ÖŠ²(„E@DTPqC\éb[[­»ô{'7§óðÍï%$yçÑß»'óÿ¾9ïÎÜ37óî¼·ÜYá¬tV9Ï:Ï9«5ȬuÖ9로Φjž¯Ây^ûšêd^6{ü â¶h×¥΋¿UÜ6ævl;Øít^_Æö’vÅQš—W=þ5g—u»™¯cÛsPÿ7«}æ7´¯­VóòVØìÛÎ;à»ØÞ÷d?À¶Û¾jù=ík«Õ¼|(î#çcççSg¿ógìýÅù«ó™ówçðÿv¾tþã9æslÿò9ßßœ/Böÿ©}…‡8/_´ÿõAûßhW¨ηâ¾s¾w~°þGç™ #õ +u‚(l6­KÒ®P'(Y\J¡†”JàÓ(28›‰­±v• +ó’åñÙÔĺ¦ÌfØr<Ÿ7×®6ŠóÒB\®v-±”'îÊ×®&l…-UFmåñ­™Ú3 Am<¾­v5±Tèñí˜íµkŠ… "ï ]Mìuôøbíjb'¨D\'*e-£ríª|« Pgê•‘ºŠ;’ºi_wÄj»S(ÔS\/:Jûº#VÛ›Ž¦c¢2Rq}©kÔžƒ°ÕKƒ¢4ÒqâÓñÚ×±Ú!tB”Fª}­5¬÷Ä(3LÜpÁ:’F'iÏ€O½££4ÎqciœöUG¬vù—µ+Ó Úù“Ì+ô*øÚ!žo—öÕMÐnŸüëÚ•é½á“S»2Ý =>ù·´+Ó z;löíº´ƒÞõÉ¿§]™nÐ^ŸüûÚ•éíóÉ ]™nЇ>ù´+Ó úXÜ'ô©v5a+Üõ1më¹A&0™IÌdff +³!3•Ùˆ™ÆLgf03™™YÌlffSf3f³9³3—™Ç<‚™ÏlÉlÅlÍ,`¶a¶e2Û1Û3‹˜˜™ÅÌf'f)³ŒYÎ 0;3»0»2dvcvgö`ödöbÅìÍ<šy ³³/³³?ss óXæ æqÌÁÌã™C˜'0‡2OdcgŽ`ŽdŽbžÄÍÃËÇÏœÀ<™9‘9‰9™9…9•99y +óTæiÌÓ™3˜3™³˜³™s˜g0ÏdžÅœË$Ãíþ ÄS=2QFI a’ä“}™,}R"°ôL­w¦ÈXi¦¡øŒj1Uú7®Iÿìzašœ¿©IŸãË éÓ"3¥g^K>¿ÆÌ’c[Õ#³e”Ë&’i[6•£ÚU‹Í¤Qµ˜#ý;F•ÍeÜË’)À\éYn™'™Î5ærl×Ì—žÝê‘-e”!l%ù^¾l-}zG`ô<¦ÞÙFÆ꼯­ï_-Jÿ5`;9jP³½œy°e‘d†ø²ƒô¥ç°K~DY"ÇŽªGv’QF[–Jfl X&G¯Ë¥ÿÉ5`@ŽšUv–q§Xv‘Ì´j±«ô?%„GJþ´Cd79ÃŒì.=g×'ëç„°§äÏ´ì%™¹æ(ñçXö–Ì]àË~Òç’j±¿ô¿4 ȧ—×'ëÝ}ÔLÿXp³~©™(þ‰à:dý“f²ø§,§Hæi3UüòN“üJËé’y6¸Y¿: O•O+‚«ŽõëÌéâ7„á ùt£™)~3Öž*¿ÅÌ¿5¸Y¿Ýœ!~Gp²~§9Kü«Xªü®Pö;ð㢵ìƒÞâ +~s¾‚ÞgŒ3ú8tºkðê¬sMΓØz6´z1´;t7ôfפ`%KþŠ*ù(î‘S¡ßA׸¦!æÐeЮIËËâ^hô×d,2&}8ô]è®ÉÄ +›A®Éº/y³¡_@×»&÷nV3(îÒ¬V®iŠ;¸ÉLè—ÐÍ®iŽ{&§#ôIèUPüwr–¸¦Þr>wMÞeÆäŽ^Åw7wt?ô×´ÄyóË ¸Çò{AW@owM+Ÿÿ5+zËÑÐÐe®iƒ§EA«zA×brÛbܯ¡ï¸¦¾…}\S´Ê˜öº¦ÞúÚÅÿ±hô9èc®)!¼8 ¾ÜEÅ8 ¾‘Åc¡¸¾âÐ; «¡ø6W@—@Ÿ‡ÞÝäšâuÐ-ØÇ›XIŠû§d1tô3×tÂ;~;W¶D32LŸÃ¡þªßþc=Ÿocd&ï {¯'Éçí–lµêy=Õüô9žbŸà±ý¾oñoÿ_­ò9ž~ˆGgàk–gß1†ìU¶àZúäŒúæ«Ïx‹·x‹n þ2[`BW±`«üÝ›-Ù¸â+cÆf«Zu+ç1Ù\i¼¿‰+ç>ÖÿïÉ™¡[J¼Å[¼ÕaËd6>Ä£³L¶¹®Îj©ÿæ˜ÿ²_`RYø¥žÙœÈ,, QÉIrΠ‚w*¨%.ÁDN’sV$Hz' "Y³w"ž +Ž;N?9’É K¼ššÙev™éþfÜ®ÿþ꯮úß«ª®ž©÷z9¸O_78CNŒ0`%¸Ö¼ +nÅ W¯#›×e gv/À† wa°|}//ÒŸôlï<Ü…CçáàÉÄmØ°q/!:KÞ1*ßv‡VrwéZ»Àwø:Ap"5â¹£‹{!cTqÁY‚7ª¸àŠ,YûÚ°a#˜“%ïXˆƒ}ª>©g0§eц*8žf‹žÚ}v'Œ´;‡*N8 Þgµ»¼NìàC¸×}pF6ld‘Ö&&ˆR¹[Êm½ˆN¶¡O»!îÃ&Öïù@Ys‚÷{?áÇ'»áðÔžÈyàöo°0Oì Ψ™µÿ¾ 6‚Qš£3é±XØ«XÁ»å©]guúÈ'¾9cÌMmØ°BˆÕ—IïxHÀwl-wˆíÁ}úºÌñ-ì·"sð‚°ÜŠl®¸çŠlÁ°ì^€ 6î +Â1|}Ñ/ÒÁØW-0„ÂÙoÂ!ž;ÄáŠF¤µF*­Êðþ– fXg  ¡òÖÔnã¡ÕZX΀ô¿$1µÏN¨ gCí=.P‹]¡²¿®3t)„ÐþZX¾ ÷Â)éÐìÄÕBï7@­Ö¯æþ·¸Bå_lx~/¾àÄBo?Wγî½ß!´÷~µÔÄ^•§1á>]#îWô“—‚ZýÙ£PtÐKs}1R·¿ªr,Õ^÷WSªœVåŒ*gU9çç¼¢‹·ÍrÉ£¦(ºzÛ,×ÜzÏBŠIýÚÈ©J˜*áªD¨©J”*ÑpO¼Š¡*°¾„/à$Z¡ õG·¤wEøÿFhmë†pºÒ6Œ¢i}JÂWÐ vrGŒÁ8L€]˜›V`NnO;i—Dði>KßÐÌK»á2æ§)8 Ñ^ú‘–Ð>úžþ ßÂ?àk,ŠÅ)®À74Kr2ýGbø<_ÄÒô MÃ1ô_:„å±2Ž¢#t’ŽÓ):Cçh.Vƒîtká8ºDWè2|»a¬ÃºXŸÞ‚ØÓ î%q¼•çv`cÃæ8ž#8†¯òul‰qÂd¸Ê œÛ`/|„ paN‚á{øÃ'°$ãSØž†bGîÏ÷q .&I¼›o +r.Ǹ>Ãr®Î5¹6„Ø™‡ÒÛ\¶ó`y»r}ìG¸!7†^ÐzÃsÈhÐrèÏÓtr+Z/ŸäS´‘6ÓV¸á©~d/ÐvŒ¦OèúŒ>‚—àEèË0ã1ôÃ<´sqú’¾’H>Ãçè[LÂ|´R0‘¦âH,LßÑ?i)ý‹~ ýÜ@ˆÅ°õ„A4KqOúIbù_Â2|œÐtKé0VÀ*8šŽÒot‚NÓY:Oó°: ¦‹X'Òït•R`( að2Öô +†c#B3¹·Äó{|™¯°ÁNlÂáØ'p$Çò5¾­ðaŽ‡ÃØ®qNäfø(öÆÖ\‹p! #`>ŽmñIOc†xå’\\ +ñûB\–ËsE®ŒÏr5®Ê͹×â:F)'± £µ\¶q "¥±7Àp”qîÂx5ÿB h-¢…4™ã9'ç嬜‘ÖÒF.ȹ*¤£\“ëÒ[úÈ Ãi„ÃZ2L†‰F™,SŒ\F#§‘`ÄKm™g4’d¥¼a’5RGŽË1i&Í唜”µRWÚJ;Y'õ¤‹t•ËrIÖK}ä¦4”~Òß`Ù(e¬Œ3¢Ù,MŒ#\ÉL™eÄÊVi* e‘‘ÏÈÃGø(ÿÊãy"¦ð(žJñ<–§óL)ǯàÏ<›"x¿NѼóR^ÎóHm<'áÍÓ(Çñ žÅcøU*ȯQ$ÏåËx /ã<_X*J%)/ø âĵÂî“Ñuæ©[(®Îö|ª$MR]ó•M{ƒê²_Å0ÌÒåÌ¢¿}ý¿\q¯ëp•"äÍä(a>{#ýÚGùì6™!üj9U‰¸ã;c_öe_üåÈöØ×½Å@¯V.Èmb›ò¥Ýç‡D]€‚él’ Ð­oBͬ²8 õ‹vª™ŠpU"TlŒRu´ZG¬ŽÁ j=Yõw­#gÚen_r{ž8³™@>Ï.eö½$zê™ô/˜ö62ç_Xs‘L¯ÿ¾ í¢úÓ\ÂÓ*ðü%3´Kè†öú—Ö\ÖÓ*ðúËeh—пB†vÅý+i®âiUxýU3´ пZ†võýkh®åiÕ xýµ3´ëè_×D«õ-ýøUjndáßØDkM-çof¢5‡ºnibÓʯòæ‡-æÄDk mtý¨‰ÍŸL´?Ãc–Ïÿ¸_å Ím-üÛ™hOÂS–ó?m¢µ‡–þý*4?cáÿ¬‰ÖºXÎßÕTíféßݯ’¬¹§WOV½LÆî },çÎD{^°ôÑT}ÉÒ¿¯_¥¿æ^=ý|X 4{ Öõ›¡&Ú0®ë—MlF˜>ÝHËçåW£y¬WÏhVãLÆ,çŸh¢M‚É–þSLÕ©–þÓü*34Ïôê™îÃj–ÉدÀ«–óÏ6Ñ^ƒ9–þsMÕy–þóý* 4/ôêy݇Õ"“±ÃËù—šhË`¹¥ÿ +Su¥¥ÿ~•¿hþ«WÏ›>¬Þ2{¬Öõ›·M´µðŽ®×™Ø¼kútë-Ÿƒ_e“æÍ^=}Xm1{+¼g9ÿû&Ú6Øné¿ÃTýÀÒÿC¿ÊÇš?ñêùȇէ&cŸ[Îÿ7íïð…©¯õ]Ä£\ìЮ9Js¬æ͹4çÕœ¨9IsÍÅ5߯¹¬æŠš«j®¡¹ŽfrÏ»LÏ«oI÷‹›ÓT#íÞ¡. mãtsšÿc¿:À£*ºè¼À@ BBo¡Z ô^ ½ˆ4é½÷Þ¤ˆ Mš€¨ˆ¢ "PDAÀÞQPÚzç¾qØ7o÷ˆo÷Ý5ÿ¿÷»çÞ9{ßÌ™ÉËÌl¨Ê³@K|B±&³‰êÛl,LåÙ¡V|°&«‰êÛœ,\åÑðœø„cM„‰êÛ¼,Rå Wñ‰Äš&ªo`Q*•˜‰(¬Ìe¢ª).1·bJY0éÜøTUeY Æ(>Nb^$bð©|&ªšJó+¦ªÄHäÇú‚&ªšx‰…S f,>…°²0b3W5 ‹(&Qb¬b²¢˜Æâ³Å‹›¹ªibÁâŠonÁŠoÅJbZû)…XÚÌUM[‰¥“$±Œb:Š5†O|¶by3W5]$–WLw‰qŠéÉ*`‡ÏVD¬d檦·ÄJŠé'±²b°*˜VÆg«"V3sU3Ø‚Õ?Ì‚Õ?RümáSû©XÓÌU͉53^b-ÅLbµ1­…ÏÖAL0sU3Ub‚bf˜˜àºÝ,Áuwi²Ëu â2h·‚üÄ6Ð^ ùnˆ« ùÈk‚¯KvÝ +±øÈ¡Ÿ»õÀ7C>bð­O†Ø|ä#!Š±vB>bKð](ÆÚ ùpˆûÀû&»n‰¾÷ƒ÷‡<b2øIÈ·%¸\±à“]·Ã .¯y&ˆ‹Ák@ž"ÌÅ•yÄ•à‰GA\ ¾BÖ¯o&ë7‚·„<âp˜×í·ƒï…V÷¶ÈÏ@>òÓGƒ†ü,ÿ+ +ù9&þ6Œ…ü<Äiàe!¿q–x'!¿q.ø ™/ïäW .ïä× ._ù ˆ+Áamïtƒx“1#òC{€w†üÄ^à’‡·ÙÈùˆÀû@~âð¼‡8¼ä§Ø½y–™çŠy¢˜§ˆy~˜'‡yZ˜ç„yB˜§B˜|>‹Œáª¿ÿòG¬EK+3'¨˜I.£eŒ‘Ñ<¹ +ÈVAͳ§K+« Îô1ót笘OiÍs´¼lÅÉhž~•e«ŠŒæ™ÏÒÊŠˆs4mÌÄ<áë2s>õd¬lCÙj$c^¬Ø>‘Ïâ‹xmÞˆ·æxU^Çó¼/Ï×ð +¼"_ËòA|Ê{ñÞ¼/ï•MxSÞœ·€§x]¾ž'òú|ô4™OáÓøtèuÍÇòqÐcÞ•wç= ÷¶¼ßÈ“x{¾ F\—òe|9Œ>‡ÏåóùÆ®F2ç"4.b¸¿dºÇ\+ÆÖdlœ›—ÃY—þ"œ4ÿþžÊâ¯5Oª²L^k2ÃéŽY6ØÕEÌ¿ Øsc+ZUæ‘1î÷ùd^à¾tùfSY_vå{­ÂˆE|z2îú÷«²8ÜûKÂ~cÀ^ãΗ=Ç÷^ÊÁÞ”ºqãàN7x« {[UØתÃ^à[ï~­6ƒ³1 î6Eá·šà"ï{g“ØdŒm=|×|ë@®ñÓjÂo³”jjÃo³ØÏÿm×c‰dzë³~é§!œ@îíƬ‰£óhÊš§XÓ‚µôú]+ÖÚQ½)[b›<=œµ f…{ZfˆaX‘Îàp¼•EÂLüN‚›™¸—EÃ]Lü>÷°üp+ˆwŸÂpÛ‰…Óº˜º“”Æ[ÃÛ…¸/ˆ»Á½»@<ÜÄ.-nÕæ>,ö_q›n€»Xcq‹†ý„ÁM 9îbohg­ø?L‚w°¼ƒàœí"ß>ñƉ·L¼]â­o’x{â|á›"ÞáÐïƒxÄ_ü­ÿ¿.ž×åÞ›?Ñ÷ÿ¿e“T6™\K0™¹‡M%×l6MeÓï»´h3lÌLrMÁ`³<²³SÕGZ´9ٹ亨mž™Ÿê>Ò¢-@t¿ /bâ.læ‹ÉõQÙÄ¥û˜[¾Œ-'Wé¼­°1“k +[é‘}‚\µ­òÈ®&×EmO"®qcÖƒ¯•ùðuì)r•ÎÛFì&r]Ô¶q‹ÆnuËŸfÛÈU:oÛmÌrMÁ`ÏؘgÁw¦ðÔsäºmÏ#îrcvƒ¿ óÉõQÙK6æeð=)<õ +¹î@Û^Ä}ûª[þ{\¥ó¶ñ 7&ü€[ûMv\¥óvÈ#{˜\µ½…ø¶ÆqËßaGÉU:oïú¥—÷Èçáo;æ—^Ž“ÏÃßö>â rÁf'O‘ë6ûñCýÈ-ÿ˜}B®Òyûñ3ýÜ-ÿ‚}I®ÒyûÊ#{š\µ}xFc¿!×Emg¿ÕØïÈuQÛ÷ˆçÈu›ý€xž\G°Ùˆ?iìÏ亨íâEý…\µýê—^.‘ÏÃßö›_zù|þ¶ËÙ+亨íìUr]Ôö'âµT>u\w íâ_©|êorݶ›ŽŽv‹|¾¾ÚmGG»C>__í®q‘k +3˜!× f„ؘtÔš‚ÁŒô6†Sk +32¨,#µ–`2#Te™¨µ“™mLµ¦`0#‹ÉJ­)Ì·1Ù¨5ƒ6&’ZS0˜‘ÝÆä Ö fDÙ˜œÔš‚ÁŒ\~é%7õ<ümF´_zÉC=›£²|ÔZPE^jRG~•¤Ö‚* +P+: +Q+Ðô<@­@ê(L­@ÓS„ZÔK­@ÓS”ZÔQŒZ¦§8µ©£bI-å–—6Ê’©+C6r9Äòç–W0*‘©«H6reÄ*àÕÝتny5£™ºx²‘k"ÖOpck»åuŒzdêê’œH5r*uÖwx¼Ô3öQgC‡Çk„ØXc›P¯ƒµM©bsmA½^Ô¶tl¤VÔsõQgk‡ÇkƒØVcÛQ¯ƒMg⃎×±ƒÆv¤^›ÎΈ¯ bWíF½6=»;6ÞCˆ=5öaêu°éìØ˱ñú öÕØ~Ôë@mÆ#ˆý5vµ.j3"ÒØÁÔº¨Í‚8Tc‡Që¢6c8âI­Ë¦s4â(Çƃ8VcÇQ¯ƒMçÄñŽ7q’ÆN¦^›Î©ˆSoâtA½6³g:6ÞlÄ9;—z¼¨çØHóhìBêð¢öQÇFZ„¸Xc—P¯€µKé1Äe»œz¼¨]áØH#®ÔØ'¨W€ÚŒUˆ«5öIj]Ôf¬A\«±ë¨uQ›±qƒÆ>E­‹ÚŒˆ›4v3µ./j·86ÒVħ5võ +xQ»Ý±‘v >£±;©WÀ‹Úgé9Äç5võ +ØtîF|Á±ñ^D|Ic÷P¯ƒMç+ˆ/;6Þ^Ä}û*õ:Øt¾ŽøšcãíG|CcP¯ƒMg2⛎wzÆ>ê<äðx‡©gì£Î·ïmêû¨óˆÃ㽃xTcߥ^‡Îø=ã˜UÇß×ØÔ꽨ýÀ}œ4NùPõ!õ\}œÍG÷1â'û)õ:pÆŸŸûPõâ—ûµúÀ™qÚøÚ‡ª3Ô:}œÍ7wñ[ýŽz8ãïs–ö«Î#þ¨±?Q«÷2§‹~èãgã‚¥ý‹Çª_/iìoÔ+83~7.[ÚWvÁ¢Ž ÈŽkHÌA“˜ "ê!$r<$Á„b1&~àx ž ù¿¢_Å!=!_„™NÞß¿ºîõMW¿~÷Vy®rîö}þÙÔ»ƒ͵nXá…¶°†°¦°–°¶°Ž°®0V'¼GÆ a=a}aaCa‚°‘0Q˜$L¦S…iÂta†0S˜%Ìæs……yÂ&¦Â|a3asa aKá½Âû„­„÷ [ ÛÛ +Û ¶vvvv>(|HØEØUØMØ]ØCØSØKØ[ØGø°°¯°Ÿ°¿p€p p°@8XX(",ŽŽŽŽ ÇÇ +Ç Ç 'K„…¥ÂIÂÉÂ)Â2áTá4átá áLá,áláá\á<á|ááBá"ábááRá2¡Eb{"0ê[Äê3Ùê×À¿¨_‹jª_WQ?–j«f¢~¼ëêl=ÆêlŠS?Ÿõ)¤~rZ_ãÍH¼®L%GýtÖÓÙLª¯~v6Ðx®êl^&h¼©él³J™¨kZP’ú÷z0Yg[QŠú­‘}ÔoKiê?ÉÞõ;x0Cg;y0Sg¤,õ»¸ÌÖH7—9éyf®ß‹«ßÇežFúºl¢‘þ‘'çú)_ý‚ÈÓrýBj®~‘Ëæ²¥FFDžŸë¢ûÔ/ÆSŒúcé~õÇã‰Fýj£~)žnÔŸLíÔ/ÓŽúÓ¨½ú3"OÚõgQGõçDž±ëÏ£Îê/À“Žú‹è!õ—¸ì¢‘e.»jdùÍCLüÔ]ýr|Q?L=Õ_]){éšµ•²·®Yöѕ݆ëÊoGÞ ×ßHýÔ¢ûk|sÐøV¼AQ›éìÓ,ÐÙí¬³;=X¨³Ï¸¢‘Ý.‹4ýo¨Fžs9L#û=8\gzp„ÎöàH=êÁQ:ûBŽÖøKX¬ñW*pŒÆUàXÿÀå8üÐåxw9A#¯»,ÑÈ+p¢ÆߨÀRÿ¬'iüMNÖÙ·=8Egßñ`™Î¾ëÁ©:û>vŽ¨š¦«»HÔÿ¥gêìÙJ9K×|H³Õ?çÁ9:ûkÎÕÙóØ·¢þo+å|]sá6\ +ÿP)êšK•r‘®ù¸R.Ö5¾ —èÊO*åR]ói¥\¦k>ëzã«'zãÆÐÍÐ3ÐïB_…nƒs¯AŸ†î†îr¯÷A¿}9L1×ð±W ÿ€^sõKè—Ðëabœµ4ã\1¨ #­Œý8tt3{¯½ººŠwÍ~1Lµv¢áù"Lu.¢ Dí^çwPTìq8õcWAQkÅ®¢ªŠÅçÅ^…n‚â~b¿¦þî=¿ +“ƒSÀIw]Šƒ3ÆAoâàqБ8x‹t#Þˆƒ}ÁAÿáŒw¯±Ã9èJìez»®ƒ~Ã)„¢Ëp°O9= %h¸,(~÷!ôn~ç:ƒxœõº‚øVPtñ¨ctñÈÃ)‚¢fqРģ^qFºó£ÝyTþ¡¿@Qõ‡ðm;¨øC§ ¨öCïºú{ƒª>´Šú=„3ÄA¥ÚE•ÂsvP¡‡VB–CWâ>—£!<¦ú'P£{L@ň®$µBr‡05:íäê^Ä‘O +ºÒDü䙸Š"Ï?ål˜’°‹¦â¹$ýº'LÉÈ/ k2*½4ô«ÉÈ/-νŽw¯Ñ‘&¯.‡^†^ S +ÎÜô¾Ð—¡xÏRQµg`]*v€ ä‘zúQ˜Òp?™x/ÒPeâ{HCÍ•ÙÛ½îë^ã{HÛÅç¤}ŽfŸ“Žs9 Ÿ“ŽÏϺ¦ ÔÖÙøÿ2ðÛÌ~úô%(ö¥ìW BAñr’ W è2ñ^ä SÊÄ9™sz…:Þ—ÌÐ (~¹ëÔ…s+÷3(ÎÆøÞ³‘ããP¼‡yx?³ñ=ç­ Sî+ïSèóDMÐ;æÆCñ¾äº= ÅÐÍî*ÒUEº©HéžjºsÚ{‰é bn‰X`Ýy3„}œâ1p~Înwo2_[Ãwá¾ ,°ÿo³©>˜DA½X`U3” ¦»WÑþ.ƒ¼{½ì[ÖåQ°—X`UÁ å“W¿X`v§©%Øš‚)°À« +f¨ Ø£FGŒNìOXU0C)Ø ,°ª`†º‚=)²'õöûbô“«þÂ`Æ`ŒBŒ!·|J ýGd8c$Æ(ŒÑÅc0ÆbŒÃ1£c"F)Æ$ŒÉSô“ÊÔ›ÎÀ˜‰1 c6U·½ÔÜí,°À¾cšCÁ~X`UcZHÿÞªÇ/ïö X`߈ٴŒ‚ý(°À« +fS9¸cÝÜ—ª·Y´žü‘Ç·Àä\"fhù)›-ä§lž"?e³ƒ"Ùì>+Ü+ÜG~Êòù)›#ä§l^$?eó=òG6¯’?ò8NþÈãGä<Þ H'„o O +O‘?ò{ü‘ÇiòG¿ ä1CgÉOÙœ#?esžü”ÍðÆ1>¦ê’™…;ÿU§»­Ì˜.ƒ§ê”ËçTîö +ô*U§;þoÆtü cØtüKÄ8&2ï—\j‘r‰#?ä"¿—˜zä‡\"Æ1‰äŸ\ÒJ¶Ùg˜ýæ µÖÚn·ö[«­rk…6ƒÍ 3„kZë¬Ökf’™h¦˜•¦œã¬ß›¹f¶™Ïõ­ÖuëuÃZc=j­´VYÿ´Z_™3Ðr SjJÌd³‚c­ fŽ™eæq=“`Ù™v–a†™Q\ËŒ4ÃÍh®mg[o[ïX'­SvŽkÈX&ÆÓÀ44MM¾gšÙMLs;ßnfm¶¶Xë­ ÖiëçÖQëyë벉5q&Ñ$™"Sl†š1¦ÌL5 ÌBNàœÌ©œÈ¸!§p'qgq»çscÎæLγó¹)çòßøªÃl¶ërw;ÞNä~<€ñkÜŸr¿ÎCx(ç\ÄÃx¿É£y óXžÀ¹„Ky +Oåéü—ñ4žÁïólžËóùžÃóxŸåż”á%¼Œ—óJ~”Wq9‡y5¯ã ¼žãÇyoä'x ?ÉOñVÞÆOóvÞÁ;y?Ë{ù7¼›÷ðs|žð!>Âù æ£|‰ÿÊ_Ø v»­Ýî_ìVmpÕ~ÏÉ=¹—,K„pÂ…°á¾Ã‡ÀFâ‚‚\z !˜„"bÐð)I$€ ¥H!eR+DÇdIqC@«mÇÊh…¦ÓN©ÅÚδ -S¥ÓNúœ³Wˆüá¿N‡}ç}ŸgÏûœÝ=÷½GŒ¹bˆˆˆaâ;kb‰X*–‰åb¡(‹Ä#¢P‰b1ULÄ=b’(ÅD±^<)žO‹ b¥X%V‹ÇE…˜+QóÄb†xṖÅLQ#jÅN±[<'6‰Íb«xVlwc?5>W„÷…ƒÏ‡WÁwÀŸ§9Èðbø'U1±ÓŽýòþU—R$è€>~Ù:_Õ©O}§8¹££¥½££-.V¿Ö3tVoù–xU—BþX{k <ßoPkdÿŠ¯1QÇ ŽwìŽÝ±ÿo»Ycþ«ݺWª„¸:p³†©èW‰Î5*á+j”ÿÏìW0]¯&wüû jÖ©N5KW-&äz4>(÷‡»wyO׺Å2Íã5€¯t÷ø@ªÇŸ¤x|; ÙãÛÝ<¾`z|  «Ç7 o$y¼ +ÐÅãÏBôøF@¢Ç+ÂãOßHðø“Ö˜G¸³{Ëß9ì=‡eZ,3ŸíŽ²ÝØ®‚<^‚§IALá¥x‡ùbÜwðG¯éø¾V¼ÇËÛù"Ä×uô•»t\É¿…8|&_‚Q¤VK¾Äe!»Àà£Ø»TA&{KÇFƒvZ…ùn…y²Â|¹Â¬ª0'T˜c*Ì‚$ö ÊG¾YÇ2ÚF¾ùJ¾¹.ßÌÎW’)Šæ©:öÕñ.;-j^‰šg£æá¨Y5çFÍQ³ «¡ä·è¸YÇ :.Õq–Ž–Ž©vjŽy)Ç<”c¾”c–æ˜csÌ6–L-È%ÙÝZÌ?´˜ƒZÌ~-fKó${‡’Y77™º´²w²ýú<&=vÃ¥®ûð77–¸æÆ€«nl ,èÍþH±Þûˆbl.ðCª¨ûß²r®ð7¬\ßÿš,^r­6t¿èï|¸àZóï»Vàœkõü܇Ÿ¹V?ÀÛ®“ 8ë:g\g( Ýuòm®S +ð\ç +à Ž»‘å×l’§XEx#¦¯rc½ÑúŒë ØèÆÆ*ÝØXYaOP½^ãÚø3¬Áý`P=Û*ªÓù•T§ó±r}¿¨ò²rý.–‘­û-Á3+\ìZS1Í׈ºÎpÀ<×™% L6‡=ØCäèÎÆ‘@uzÐ4B6Ó\Áúˆ¯º9' º°i”ÇT/‡ÂZ}¿>õðøWÉ‹Hü r±r…ƒÉÖ_eYzÒ0V¨tÙþwèïZ{Y®U Èt­Á€ ÿ¤ûo¾—ë¨gé¡Þî)–BÝß°Ó0ÿ?cRÞˆ Ÿ×_‘ŸÁ¯·ªMàÊO-…í»ä'ÖyÕ!ÿj —±’äG‘ly±®M­„ÎC‘ÙSž·RåNwy.|E¾…ýöãØ!yÆ*•íØ ¯Û^€ÙÉò5k”|Õé*åò¨£ÚzȃèsÀÙ+÷¡ßNk¹¬ ûí›í»å&l’'0ÎêH_¹*â±'äÊÈh¹"Ô•åa,î„|4¼W. {!,wqÇ™mÈo`-ó!rŽ£î“d0Ñ’ ÜRuj_ØVû5¬Â/l«üªµÒ¯a ürµÀ¯o ýR¶àx±,ÎÃp'ä}N935ºòµXWŽsôô##žziÃêÕK-‡Dr¤t’äœæàÃÁñÁÑÁQÁ¡ÁÁ¬`F°o0-Ô=”êêJ +…B‰¡@ˆ‡(”æu\¶¨Úž–˜¢ 1 b€«Èý¢ÏYˆÓÔ‚t^C!¾¾¾¾^^ ß__¯é¸|\õnå5¼²%ŧ•|C¼qßgÛùú8[Ï×iæÕœÀæ©ä±ŽmMlgz¯u“Ó'wŸ”:nJámBI<æÞºÒ¿ªÃí´(ËhzqÚìyMÇ2¢M#éȈNk<;36¯•á£Š +[ùhÑy­l5S4Kµ³Õ…QȦkÕóÑQLd ý©^ɨ>¡¿–U+Ys]}Qas}½–ˆýT§%ub¿–4ú#Y˜#Ù + KL"KˬÄ$%æÐ:VN6³m­êÌÊ•Š•÷NÖƒõÒó…Ã8a%iÎ CÐÎÕéA·Ò‘,.÷ÓåþìV>Ïïžåç³Ïý_ºÊîýº=Ž×^®n(*Ë.*É.*ƒ—4Õ®[šÞTUš™Ù\}Y%2›–”.^ªpQYÓåì²Â¦êìÂÌæÚ†Û¤Tº6»°™Šš×Ü`—ºµvmQö¢ÂèñG¦ïùÒ\Õ7çš~ä6ƒQƒMWsÍØs›ô•ž¡æÚ£æÚ£æšaÏÐs-›}ïšN×ãk×úäö¯aÍgB¦1‘*Y%â¸ðÅ9“‘b%átA#p×–jPWê* 2auƒ(¤X€ºS*x_ê12`Aê3PÏewƒ2aeQV?ƒ²©?øDBY¢I4 ÙÉ0‡WÙû¨ü›TˆìZ€ìB˜A%T‚ì"˜A›¨ÙÍ0ƒ¶Ñ¬sm¯†í¢ð=´üy˜A{a‚öÑ><Å ôžâE˜ oÈÐ~h^‚„ô=ú.ø÷éøË0¢WèàGé(F8FÇ0B#Ì WaAj¦× i%-mtü,Ho¦ÓèÕNíèuçk¢·éGPþ&è"ý-¿§Khù˜>ÿÌ «ôgðk0AŸÀ ú;}ŠwûºþL°>ô9>h‹ÂúÅÿ¼Á†á_ŸØ6|, >ž/bÀ‹Ùðrv?ør¶ãT²hyƒmDK+óÀÛž‚½ÉN·³Óà°3àçÙyð ì|û%6ÎH>2ga>J(›£ÁÇð1àù<|, >ŽÏǃOøûåÓDàgº»tyhiKK€PZûX K»…1Ðb D HäâUÎ&žÐÄøÂ&J¢œ „|4ÊÁ`"FÈA)ø–#/tfóýûÍäïdúw6Û!!t•¨èõ¤=LÂè‰àlÍ}z´àqåÅšÓi:~‹ÞD¿Co£ÏÐôûô.ú:‹¾L¢¿ ÏÑßÒ—èkô¤ñ“ô?ÅO¿MßéN!ƒïÇZŠÕŠxÁŠ„ ¢÷>o°RJd£ Z9(HÁ7¹{ÖÖw_ñu5–P㦠5fJ¨Qj¯Ç'Ù¤2Äɯ-ü¸Æ÷ŸX o6]ø<ò㸷/h‘Pñgû˲!è Õ¥Ó‚ÌLg„ Ä²àˆ¢äU%ÅÔcq[-©šµÙí.w¤ÎÓ¨œn/uTXBòéÑÒ£ÙöòŠ€ªÕøçH÷½¨Výt]]ý¬&VMÕUÓú)«Ö$/ɸB5aÆ5âj#Ï"8l®MÂ%ƒ×Ã9/7GvWÀ¯ø]»(s¾0ᤜ> endobj -31 0 obj +34 0 obj << /Filter /FlateDecode -/Length 28876 +/Length 28875 /Length1 231812 >> stream -H‰¼V pTÕþÎ9wwˆ$¨d ïz FØ• ˆ\Ân„ÆjxÉ.ãà.y°‰„D³ED•èàûQT¬±XËS»øjT,UpÊØ¡qѶàØAq´õÑVÙÛïܬ™¶ãt:½ÿü{þ×ùÏw¾söîBÎæÒÎå+Œµ'DÑÙ mÉŽ{å1¨nelzÃÊ´ùã–‹ªh§9aLscgCxä„JÀsë+š›’ix…ôwÓ6w,kÛ’Þä¥ÿ1uý²å×5?påþŸB-ïÔæTS²±ÿÈÍ…ºåÖW¦(:6ìU`È*úcSméU·V)¦¿±±õiå¯g•3¿jy{CEYª£ùÍmÉUCø²ŸÆo¶µ_³ªé—_ÞËú­PaÿŠd[SÅ›k?‚êùŠ{8·£½3 ÅJÕó¶®ï¸¦©ã£W×ôC-ÍÞ—;®iïxñØ{Ÿ@µÜÀ"š+÷‘;åNO£Ø‡ÿêñ¤!=u(¥úÕÝ8 pQRäj˜g.÷¼ó{5†Å½Zeî¢é‡ÑèÂ=DÜ…wp>ŠQŽCbý^ìÇ»¸‹±ßÃâbdp)ªÐ&ª1V¼JDñ^àŒëÐÎÚZÜŠg=ã¼ÄX%ž@Ÿ£¥¨FŒ]6â^g7¶âÏøÌyÈ9‚ÉXÇŠΟ0ÝÌJ” Œ=[Ñ!B2íô`×»Ïà1™30ÓÁ2¤Ð†¸™¹çqýb4wBשÅ"lÀí¸6~-Î׋û'å´âr"hå¼Û¸›ýxŸˆ"ñ+±Çíô:׶0 5n~ îÇCø‰Þ öP㨘/)KMq†:ç9_²~Y £WpFnàNîÁ+ØKy—«–‹J±Ptˆn‘{d:Íðy.un$Ê“Èw5å2âï$Ò͸“>Ž')/ãwd¾@Xr¦ì–Ÿª"6æzV:kíÎ Îoy"œJþë(— UX[ˆ÷6<—ð&Ïêc>Q(Š‰¡WHÈ"y»½¦ÚUFm7`l1zfxzrå;Ëœ;½Î߸{ ¹/ÇTÊ4®qæb>âh$×W¹÷ã^lÇì"wðârb ÷9UÔˆÅbµxXìûÄRÊBy&×é—–'òŽ²ˆ’” 2%[d›ÜDyLn—½2« f¨Z•¤ØªOPýê]õw£ÄH×/ûŒ·ŒÃÆ_ŒÏ=…ž -ÏBÏå^¿·Ê»Òûˆ÷)ßU¾'}oa'9þ9÷4øiÀuò.ù¬‘ó{ö¾-^“³y]â)ñ™z”÷v -åmJ˜2‰r2åFr8ž‚ü{Æsí²TZÛ×6¦Szäë9­í«q -°"¹¼Ù­ÖõòøúÚë¾+ßrB@ ->{\ÙX묀yæ˜ÒÑ£JFú‹GœqúiË -‡:ô”!'œäóz %‚Q«6aÚã¶1Κ=;¤}+É@rP a› Õ~»Æ6n™ùíÊ0+›O¨ T†WŠBs:¦‡‚fÔ2í×#–™‹çÆhoŠXqÓ>êÚßwíÍ®=”v À fÔŸŠ˜¶H˜Q»ve*MDØnW˜œ -òâ‘é!º±YÉ®”Ÿƒ®ˆÚ%V$j´"nN•E“výÜX42*ˆ‡‚¶˜Õ`-µaÕØÃ&ä§ëy&KçŸv(Ø¢ñcÃ)Vã†lKÚJ^³U2nË„^£h‚]lEìâÕïù¿q¿¶¢%mYV›lÊÔ’š ³Ü„ö’éÕÍ7ÙV®‹Çl±.>ÂÅ>°‹&+ª#‰VÓ.°j¬T¦5AÎ1/¶³$\µ’‘¸úØΑᑮ -îò¯¹0@Rv…f†fêñ€ÍÀøþMñ7ú†¸u»ÿÀ±nÞq^„^ÉšC˜¶Ùà.bë4ýÑ4 ™†i,ãÜe‹]0+‘)¼€³lOY¡ef>Ê:úá·#É|Ä[Vø´©óø`>ogqv°.‹‚úØ!~Ï -g]‘Ò]üSW.aº\_‡–gÓ9'ÈÀø­ñA³–¨kõ¹™33§1cÖš)¸QæŽL4eâ¹ù±~.ˆìp|Ôq³)¿€}&è>†Û'g‡Ö|‡V·cQ0XGŠÆÕÇæÆìîÈ(;‰“ÞŸ¾ú˜ÝGãqV…Ž#åØÕâÏc>—˜CãiLè2Ÿ=Ø"žÉ xVÀîËdFeô÷`ÀÏ -œçY¸ xU²¢»ÞMu[Q:`¬aÅ#\ª‚×ëëãÍbÒfø¼Á O&Úó\†§ü>ÿ»0\ùžú¯žFÌS5ÃUÿ?†/Ä°~3{‘ãÛiè+¹D.1ô¾oþ]æÿ%>ìÙÃßÖü«ÝÕm¢@Eðœýw‹½ÛÐå­ÂŽõ"j wï·ÄQGÛÇq"ÇIËY£±ë}'îrÎËÐ6h—‘›m­S¨zë ˆ1ÅüÈ<'e\wjÖ -ý¢ÿó€µq²ãý[°S š[O€¶ñx0†Å¼î¼÷Véu‰ctÞݪ‡ŸLñþ/‚íþ†¿‡­ÞÜ‡î… û¨/¨”yÝ£‰É+é:w¿\’½X‡}XgïP<‰o¶8ëGcñ܉óÖÎï`›ýiû-|çröQöö9ð?ñ]̃ý\Ö×9;õ±…´ -” HbJãâÎZæoy¬j»™}Œ}ÇEöYž#û”3te,í°‰µ`‹B·ÿLTžçÑÏA{7ƃϾì#þËk]'6ÊâKàß8÷|öäìãüÉ~Ô9qÀEø°óÜ.gŽãOY&*Ï1j¬ds3Ñ];ÅFŽ-r¾9+ä1ó¾ëœz„—ªÍÞê¾tûuû#šÂqJÏ`ß²ë»N‘ms| ~Æ1Ëñ‰2³ºvîšJÜqçŒuJ¶Q•ÆÌ`ó IÈ 5 Œm*bàxPæ2 -8ß/åw ‰üˆe¥üö–‰n)¾¯D9ˆµ\JËÑ×pà<̹<Ëø¹c[äüQ \£û7üe FèÏWì¬B?sØ–Žµó]Ź†}—}'VN­ fëÉ>ŽyžÉgÞ!w]»­cG×úšµvׇ~wöf±ýÔT »¥’¿dE‰ÅÀƒ˜ó&JÇ_§I‰#ßãðD#†U ÿçä•q’[š0näÉ¿cieüÒ«ifêAšÉgBbü Ô§¨,½XÎ`~1•õzÖÈ -…J¾ÐÚ…kŽ_»’ëAuRGð¾T¦—PeÞzáYV¬€¬‚Ï¢“¹¶@ÿùØ‹“\—売ÜRËŒF~˜*A<ƒô!ÈϬïÆmÉQuö^O|ëi\êÿ%¿#G{â·'ºÅM[z/ÆÖ"¹d´'æfÚq¿+óöçÉÙãrÖh 5M󯛧ØGRY°+o9y.{š×øŒr]èYO. F‰#u7JïxÖ³vÏmöLdßâýÎÄ œçÁÐõÕÚ"×ÅìùyÎÁ—3òb&6úòW7ÄYT|þÉãªtÑÍŸQÈg”Ï™³ç[¥Ö·ïK8u{‰ñ³Ýˆ#+€ûQ§Çéi•O ¬Ÿ2ÐW¾”ëiu¼‚žÌ|喙öé9Vm–}tשƭy½¨v =ýq|æ˜Ìù‰ã4ç/Žã.ºg×Õuõ8—qLç\ÆßDãxÎ9 ú“M¾ÈDä2ŽéÈaý9–V_ æ<ÍÛJUnMÏwN>#z/s|Û©ÍêÊ×r—œˆü26~›Ü/‡é¹•\虫ä03—ç4§9uS‘ø‹ŽÕÌMŸ“}$ ËiàšÀ>™¸¹$}qîÜ#†Ço·úÖ LÕÖ£ö+ Í\“ÄÊí6P˽¼¼wê^ö¡ ¾TØå+öZèÝèøŒ}"{mk?bÎrÆÙÒxæñW»SŸ§÷È/]Ü×#”>yýx¢Ð÷e¥~Òuv÷Ä­U¹6•º”kP®9×q h¿Y5?sÍ)u&jL­/«ð~£Ö•l§QjÓJÞ`eJUÒ„Ô9v[r–Ý‘l] ù\û(÷‘R¯R«Cv›R“Ö¼”~Z²Û”:¢j&Ìe!Ïs9æ¥Ô—)¾…Z™“ì6¥‡A:w¥Z1Ö›»úMmÇxËx«Â(=ßÌÆ7³1ÆÙƒÃ(¹ý$ñÍ4|J E?ƒ@•ˆãùŸ®»»ŽîºpþÐ}tÇ\åîaOö1ý¸}”)÷V»-w%úÞñ^ÚìÈ£ö%?A­ÙmJQ5SÔ¼s ¨5·žZóî°Û”:¢j¦P„Ï í¤zö¹t§ÌÝ7Fø[3üÄ!ÜË°n{@vÅÆ?±øì0Á'š™²ìm£’<Ëa›™RX‹lóä~Sõ¡nNÏ£ n¼ñÔ¬4®H|ÚXc@Ô>F‘ÎÕKwgá÷(íRdù3^>Êï{JfïþGr÷I©Œã›ç¹:ã}6¹ðîþýß´ñu§K˜øÌ3íA·õ@íM–\¿ò¤ ŠQ’4H0&ÒüKh=AÚð/±®§ D6~òÞr[Û~ª còuöwþ1ómŠr&÷d*väb½Øùì)ý"&r #rä'¡Ãò¸ê»òã¦où]´v(™ñ •€ŽÎ')F"º0Mik-ÄÒ2ÂVÅ¢>ÂGÿ㾨wV­¾Š§S?´?¨ «~¡â€,ï’”8šÓ¤Í7 £Ì_ŽìgVx¾¹˜ë»ÕîêÇ™sö{ÿîZöÕ5×î§kS¨+P€ Öd¸":#r$ņ+¡Á‘ÚCK¥¡]f¸rªˆ´}¦OR¢}–áªh˜`5 Ôᓼ'ÄvO22D{”áΖ(ÂÿsµÇø$cCl3ܹT+XGçj¿×'b{‚O21Dû|ÃMBtt¸ µ§(¾OÚ©!vù¡âÅtM£÷ ?=PûŠ—H{i„íË w9}P¹+µ¯4܇h†rõÚ Š3¥mŒÉ,ŸäªíÙ†›Cs?Lóµç+^-í5 !¶›|’kC´ú$ Ñn6ÜuÔ¢ÜGµ¯÷I…ؾÁp7ÒÇ—Ðâ@í¥>ÉM!¶—ù$ѾÙpŸ O*÷©@í[o•vyˆ]þߦøiºî ÏÿÙ@íŠ+¥ý\„íU†û<­Vî Ú_4Ü—hr_Ô¾Sñ+ÒÞ1’»=üW#t-ºGñ^iïó¼ùZí¯Kû óüÍPÛß2ÜýôíÈ‘´î;ôÝHíïyøïGj? øiô¼Y›Eû!Ãý~i{áÖ£rÒÞàá7FjÿXñi7yÞ<œEû'Òn6φÚþ©á£-‘#yÜpOÐÖHíŸyøŸGj?©ø”´¿ð¼Ù–EûiÃý’ž‰´ý¬áž£ç#µå“ü:D{»ávÐ ‚;é7Ú»_”ö%ÐoCl¿ì“ü.D{·O²'D»Ýp¿§?(·7P{ŸO²?ÄöÃuÐÿL -Ôþ‹Or0Äö!Ÿ¤3DûÃý•þ¦Ü«Ú¯)þ]Ú×Cìòÿ°â›¸á½Ao ÿ@í£ŠÇ¤ýg„í· ÷/ú·rÿ Ô~ÇpÇé„r'µO)òýÖ²(|$V³r"FmYz;µÒ&#´SÒ¦­<Á|+×:-D»—áz[}Â-C§¯áN·úEj÷W,¶0B{€áZƒÂu¡Sä“„Ü-sc´J,¹1Z¥Ö@mßÑ* ±]î“„Ü-sc´*-½ZUÚÃ|’àû¢eUn„%wEk¤å¿º:£|’³ClöI‚ï‹–enŒÖXKïƒÖ¹ÚµŠrKü/÷U%Eu…ß}]]ÕÍ"²*ˆ  böU@…È.* Ȉ‚€4HÈ6,FPŒ9@Â"(‰Ç " 1hBÄ£‡`$ËÉj˜|õÕ››©ÓÓ=¿cŸ¹ß½÷«û^÷¼ªzï~Ò!÷¼¼î£t’ŽR ÔxÒ%gµÓ}Òؽ‚¹{hÔSœÂ“Þ9«ûhÔWnvQN (N -5 T e`3(Oõ`†õ  •ÛrV;u(Ô‚%(yt di@É£åŽ,fTžêÑ‘±.—³z|3!Ïܪ&e¢P+Ê=’­ Kk&e1“óÌ=%‹É­ET1Ê4qzP¦ç¬.tþ~âŒÜóòºSŒ2KŠd¦PãÉìœÕN÷ uŸÌ­`îyͧðdAÎêŒF e‘‹rj@qP¨¥ (KËÄËòע©D¡”e®”£…*QT#ʪ¼s¯Öh¬ÍWÉU‰R,婾xõ†2ñÆ -«79O¥(O”¹òx9Õ›5Ú"OæŸ5Oi´Už®°ºŒJ”g*¬vºP¨å¹2Wž-§z;Qµ¢ü0ïÜÏk´C^ÈWÉU‰òc)OõÅ«w•‰wWXý¢óTŠ²·Ì•=åTïÓh¿È?3j^Òè ª°:K%Êá<Õª 娼BL^ÍYíT¢P Êk°ë‘åœPãɧ9«îê>9_ÁÜÐè‚8…'ÌYý…FåO.Ê©Åi@¡”|Ð}º†àeBl@lI¼‘Ø™8ˆx7ñAb†ø(ÑFólý&Z^M=2 Ʊ±:±vT©óx}eR>ëSjM‡iej˜J Ó¬¬L¬B¬1ZY;í⺦ªÆ cXMùƦ:Ãjœ§±&±VÄheSSSã榖Æ-cx™ò­Ö&qg»œX‡x±nÄ먶ë(Ó>†W(_úÊwuXO™ž¦>Ãzü®†ÄFÄ+‰ xµ>ãÆÄfQ¥ÎÐ×4Òx€¹RãÁ1¼Jù¡X×ðsçùñjb“ˆÑÊáæjG™&‹aSå':lF¢)gû:ñbsb‹ˆ×Q“^£ÌÔ6W¾0†-”/rx­2³Íu ¯åw}ƒØŠØ’üuŒ[GWuÔ<‡­”É8¼^™Å᳃ÏõûMb›(ÖšeÛ(³Âá ʬŸ&|nàØoÛo$ß–q‡èªŽ*vØN™MÛ+³Ùt`Øžco"vŒb­)ýë¨Ì6‡Êl7plbWb7bg^íĸ±oT©3숶=Æ;M7÷Ä°»òûM†Ý9OOb/bïˆÑÊC¦—ÆGMoÃ>Ê¿î°/‰>œífb?b ×Qo:ì§ÌÉöWþW1 ü»oQæŒÃ$ná7&"3ñ­ÄađıQ¥ÎóÃ!Êœsx+‰!¬¿-B­ùÌáPe.˜a ‡²òÛÄÛ‰Ã#F+/šÛ5þ+ö†Òø1¡ü—f$Ãœçâ(âèˆ)­”pw)=3ZãT Ç(_ÅáXc8Û8âxâ⯣j8¯LíNP¾n ïT¾¡Ã‰Ê46w1œÈﺇ8‰8™x7¯ÞÅø^baT©34 ÷?77“5nÃ)Ê·6÷2œÂy¦§ï‹­lk¦iÜÞܧqA §+ßÕa!‰éœí~â âÄ¢ˆ×Q=ÎP¦o P~@ ‹”ìp¦2CÍ,†3ù]³‰sˆ’ŸÅxntUG w8G™QRfœ™Ëð!ŽGœÅZ3Ñá|e&9|X™©fÇ9v!q‘`Ð-Ž®ê¨B‡‹”)røˆ2³q„ŸG8ö;Ä%Q¬5ó.Q&ãp©2‹ÃSŸ¥û]ârâ -⣼ºŒñcÄuQ¥Î°Ì,×xEx‚¹xu W*_lc¸’ó¬"®&®‰­Ü„Ó¯4ÞlÖh¼5†k•ßæp‰µœ­˜¸ž¸¸1âuÔv‡ë•Ùà ÊïŒáFå÷”b—’Kë`Ý`k”\š¿ Ö ¶ùBø-°þ°'/ÿ>ll+òåðÝaÛaï‚ï {6âH4w?Ø@Øhäá_„í‚Cþø=]JJêÿv¤¤Dà÷#oyþì(ìò4®5ƒ5µE>¾l%¬ò"øØX+äsà×öÁŠ‘Ÿ…ÿ7– œç_XÕ𬠻u|oI òð< •M¸‹…ª"ÖÄÇ:øuC¥øè|t>žÿqx¼‹þ;0tþ“ðø½>ØÇ:ù¿ƒ]€É˜ï~€g!@otGŽ#@—`½ôÞN½àž£`r¬g°6¶ 9ÞýÏB€“8Ø‹[@p0Œax|w€õ pŸ¼¿βëà>Çcm‚ŸÃ ‚בãT ðì87ƒ·ã, pÿ9ï/‘ã -N‡1ìä81ìEÖ<ø òïÁh¢yñ|OÁãT>…»§s€ûlBŽõàoÂÙlFþ<žÙ÷/e3&…}1À½K¡WN%‘×DŽg8…~%•F~9rÜ¿ yUäõà±)Ü¿º°îE -k––š„ë‘š¥ðþ¦Ð ¦ðÝ)¼©a§íÏvûtŠ2{‘Æޙƞ”îŒ|¤ÛÏ£OY<|W‘r>í|¥Øøÿ×%VvY5ç«;_Ã|uþGrväà?ÓæÄSä¼È‘O|þ2#zÃY -É(üg¾¢à?³ð'!œ¥æKËL•ÃZ™©(£¬U‘™ª2ªŽµš2*£ÚX«‹\¹>øÏ·ÛO‘› óßn~3#ÖÂYZÊÈýyëÿõ5fõ›Y:@ô,eÔUFÝeÔSF½ñý}‘û!‡ÿ|+ýñ4y02ÿç73èY†Ëh$øÏ|£ÁfѳLÀü$äÉÈSÀ¦Š§È3‘gÿÌ8¢g™'£à?ó-ÿ™e)Dϲó«dfµŒÖbm½ÌlÑ&¬m‘™­2ÚŽµ2³KF{°¶y?òðŸo÷ ž!F>þ3ãQˆžå¸ŒN‚ÿÌwüg–3=ËyÖ™uaÝXwÖ›õaýX˜qÆ8g\@pûYà/n¹_sûÍkõwÍnÈèOÕ¿4»ý-£4wö´þâÈ„Fâw1ô¹‘¸ãá)ßñIYM¨w6’9 Iª·³G·d^«É5»¥ðKéØl©¦vª ·4Èi}â–ΔIÏw’Ñ·L2ÊìƒÙ²È(«ܲ¹²;ì–Ã픋å6eò8è–׶2Ÿ·ü ‘¤ )L‚HqÈÏEHQ“²)¦ìVÒ¶²”†Ù‚‘K“2¤,)GÊ«÷ôâVAF‘+ 1)+kp«‚\•T³ÔVWv«aÊÔTŸ!V·PS¦–ƒnµM™:ºÕXφ²¾·¶• 5¸5BnLš¦¤i®ÞÓ‹[ ·SK'½xÿVn§6|·vЭ­)ÓÎA·ö³rë(£N|wŸ³‹¢‹F·nn§îÎÌ$û÷ð˜íé[/ÙÞ¹õ±­ì«Á­réOÁ$œ çA&å nCm+‡ip.£Ê‘ÜF!Ž‘£ÞÛƒÛXäq$£ñ14ºM´­œ¤Ám²må nS‘§‘éd™If©÷ôâ6y™«Ôg™oCµÀ”YH½†Ûb²„ãR Õ2äåd…Òl+É*ªÕÈkÈZ7ÑcYo¡Ø€¼‘lRvÛL¶X(¶ªz`Ÿmd» Õäd—_¯n»5õÙCöÚPíCÞOø`¶ƒÈo‘·•{"‡-G4}ê£äŽÇ,TÇ‘O“ÊŽ§Èi Å»šf{œ±¡:‹|ŽœWr»@.ÚP½oÊ|@.½†Ûerņê*ò5r]i¶ÉG6T7o’[*n¢ÇmKÅä»äce·O,÷n6>ÏCM}‘Ç6TŸ"Fžø`¶§ÈÏÈs¥>/ÈKªÏM™/È—¯å÷• Í×Èßo•fûŽ|oCõòä'7ÑãgKÅ/È¿’ß”Ý~'X(þTõÀ>‘¿9þc¡ú7Š)PeGJi€…ÂÐ3e4Ž U\=nØ-žE=>rš£D4ñkø$¡Ii2šÜB•Bël)-ê©SÓ4J>ii:ªôÈhF%·L4³ Uä¬4›Š›è‘æ°PäDÎEs+»å¡y-ùT=ܺ巨@.H )ù¦´ˆ¥ª(r1¤sÊXÜŠkêS‚–´¡*…LKû`¶2Z»•µ¨—C.O+(ùT¤•h­l¡ª¢u¶ªõjÈÕi e¯š4ÔBQ ¹6­£ìV—Ö³PÔWõpëÖÀ¢Þ¹m¬äÓ„6¥Í,UÍ‘[ЖJn­hkª6¦L[ÚŽcûWtë@;ÚPuBîL»(ÍÖ•v³¡êŽÜƒöTq=zY*z#÷¡}•ÝúY*ÂûÓÊn-ƒÓpU7Ÿgˆ¦>Cé0ªáÈ#èHÌ6 -y4£Ôg,gCaÊŒ§8N|E·It² Õä©tšÒlÓé ª™È³èl7ÑcŽ¥b.ò<:_Ùm¥b!ò"ºXÙm‰¥b©ª‡[·eõåÈ+èJ%ŸUt5]C×Z¨Öim½E}òFºIÙk3Ýb¡ØŠ¼nWvÛAwZ(v©z¸uÛmQ߃¼—îSòÙOЃ^5ø -‰„€ˆHL(0‰ÀTÓ -Ì 0Àü ¬,°šÀÚë l$°ÀŽ» .p˜ÀQ#N8UàL‹.¸Fà&[îH£fYç DH…ÞÈÆøûåUuÆñ6` ›ðHK`7›Í&›ä!*`Áˆà Q@Њ¼ñ" ¾À÷Ø:µµµS§­N[GZ[­µ­µÖŽÕŽǶ¶µöw¿{÷2ÞŒÌtÐèœoæþοsîÙsÏ=ç»ßé¢ìªìæ·±>#5]Ø. ­M7ébºXºšîAM^—Œ™§©Œé¿û´Ú¸t7ÝïX¢Í»k?=”=•¥Ê2ßo} ØÓ<ÕRj:á7ÐC¥—é”ôVÙK{ëãÓjëäÓYé«òm÷iµ9)7Ý"*˵M?eåå@e¥²JY­¤¬Lø÷ZŸ#¤¿éQír€µÂV;® +Í?QªLÇüåõddúÄ€ƒÍs³›×3ÛåksŠÔ¨¢Ï8Ô§Õž*ÃLŸ!I•Ã´MJY«Lûk9OjMŸ-iÓçðóú|ɨ¬Ó{ë•Yeƒ²Q™S6)›ý–ÖÃ…¬‚¼¾8`ƒy–l4Ï¥!ÌYíJi2}…4›^Ý.[¬ÍÕ2\e‹ŽðHååQÊ‘ÊQÊ£•£•cüöÖϵír„µ¹^Ž2½¾]Ž´67{ë1ÐåhÓ[d´éíÞª ôíÇšçN9FåXí8ŸV{·Œ7½§ ;ăý´ùxíg¢òXå$åq¾ßú¼7à±æy@&™ÞÏÎÈëGäxÓË *×Þ&+§øÚÚ<)SL?%SM?íí*lª¶ÿšO«}F¦™~–ÝæÙ4m3]9C9Sy²r–òålåå©ÊÓü{­ÏÈ Ó?l—3­Íó!<ÙjÒ†³Ìÿ"û>¯ÈlÓ/ËÓ¯<Õ<¯Éi¦Û.O·6o3<;]ŸñLŸVûG™kúmb†gsµÍYÊùʳ}µ|Gæ›~è’×ïËÓÈB• ôÞs”ç*ÏSž¯¼@¹Hy¡ßÒzø»œkú£€ç™ç?Ï7Ï'!¼ _Û©³,2%nåu×v¹ØÚ…ð"­\¬c¾X¹D¹T¹Ì÷[%!\bµ¥!\jµ½C¸Ìjû¼Ä<—«ãÉ¥>­Í€€—™§*„+´ò2½w¥r•¯í®Á!\eµ5/7O2„WhååÚóוW*Wû»7Â+­¶¾ W›¿± ¯2s@ý¹J‹«}Z›#®1ÏÈ^£•kôÞk•×ùÚîÂë¬ö˜6\kþ !¼^+×jÿ7(×ùÚîšÂuV{BÀõæ™*7ª\¯ýܤ¼Yy‹rƒr£r“r³ßÒz˜Æ÷-¯g„ð« V;'„­öôn²Ú¹²Ùôüv¹ÅÚ, ¸U[ô‰¶ù´6çÜnžEr«ÊíÚò6åíÊ;”;”wúµv×EÞ÷<ÐKCx‡Õ.á«]A×—·Ë»¬Í•!Ü©•wéïVîRîVîñýÖCkwYí5m¸ÛükÛpù×µá=æ¿)à^uÜ£c¸×§µÙð>óláýZyŸÞû€òAå>å~ßo=l áƒV{[î3ÿŽ6ÜoþmøùwËÃ*ÒDù¨ò1åãÊ'üZ»k¯fµûBø¸Õ>,O˜~¬}Žùä¿ÞÞx¥U:{'—ßp½ŠöÎ ¿‰p+XBI]„ÓXßšuÎ+|A"uÞo4‘?Bîü:šHáŽæá"#¼:4ë%B]Ó*…/P²N¢DÍŸQ®ö~£_¢¼!hó J"H”\¾ðW”Œ3J4*ü%å¶@¿JIüŒn4o-JV[ÈsDˆ3Ñ]&ªDYã…sý Í\Á’ˆó¼åD¯8óg~ʉUqæ'ÎÊÉâ'z¿ÑĤøIŸg~â„ræ6N6'ï.ç+?ëCóu‹“eV°ƒû±*XÏìã~(÷x¿Ñ/S>´!;®`}Wœ~ò)®'Ñ¿¦ü×7ЯS~Ç«Cÿž’ç­x&Ðßã"ëì÷&ÿËø*~hÖkÅóè?Q’·(m•¬ëd_•Œ¹ŠçªœÇEöZµž’l²’¶Šï`%9_%Yaï¼rYІ5[ɼT“ób<•Þýd7ƒC5§‰êçZeÙÐ`ÆŸ(öu‚,qð·Ñd:‰\}Ð|Ï¢{¡<Wš5ˆSÇø‡ §?æ%1MþRͼ$h²•ùX cÊz®al5dvCg 9VM+šoGb,º½ Í©2Á‰p(±º†\C^|Wdý'Shæ#ɺL’7%™ƒ${6É—0ÉžM¾/’â]§FQðûC4}§øv§bfSÝÑd7)N)Ɠ⧘ó1¤¶Œ’9J½„fáÕò<µä)µüW-ã®}ý%û¨ö­’fÞÒœ!Ó¼£41#ÍÚHÏC³OÓßäâ“æ¾ôÓ"uÌsšw]ÇÔá¯c~ê.àZ‰æÙë^ä¢ÿ cÏ0§Ös†ÿÍ°¿2£ÐÄà ¹\f/š¹Ì2¬É 9v†¯H†}šù©H}'®é­RÏ>ª'þÔ³NêY'õßç:€þ’g¨ÿ1úŸ"YÞw–¹Í²'²ä7Ù1&ÖeÙwYöG–÷ež³ä5YÆ–%ãÈ’Ñd‰9Yöo–ÿmèÂÅBn Ïmˆq• ™¿ÆÚÀI¥wÝ@sœír¬£ÜwEšz¢™¿&ÞYþ&â[祦싦ŸsýMlkfLÍćæYÞ‰&n5ó>š‰{ͳ)YÍìåfÖ~ 篖þ­ÒB,ja´°þ[øδðjYŽæý -s.åËb‘/zÎœ9;,V`**..9sæ¬#˜— -U)‹•ÝƒZ/N•¨ê©,•|ì:8&Hǵè=gÎœóâV™ø©\=ý”ý•”••Ê*eµrr°¸\Ì™3gÁ¼<*èNÊ/O\ræÌÙWѼŒ#)ùˆôióbTª¬²AÙx¸‡åÌ™3g‡h^ôÊ©jwæsæÌYG0ïÌ×¢j¤r”òhåhååXå1ÊqŸ×àœ9sæì3Í˧Ƈø&JþÜxp¶åå3“TMVN—‘9sæ¬#˜—‘MU5]\\ræÌYG0/.ÍP5[\\ræÌYG0/.ÍQu¦r®ržò¬ ­æ«Z \(ùvpd(8¬ãüÿ,úEÀ™3g‡Å -¹Î?"-VÏÅÊ%Ê¥ÊeÊK”Ë•—*/S®P®——9sæ¬#˜—M­ -t'å—'.9sæì«h^ƱZòéÓæŨ5ª®S®U^ØÇåÌ™3g‡f^ôºAÕzqg>gÎœuóÎ|7ªÚ¨Ü¤Ü¬Ü¢ÜªÜ¦Ü®¼õóœ3gÎœ}¦yùÔÿدÀ*Š&<³;KG„P ½AŠ M@ŠôzB ½…ÞB'téÒ¥£¢¢B@D"MEŠ‚¨ U¥ -è?wï<.ÏG `ÞòÞŸ¾Ùoçö–o–};Çl±¹ð÷ÿ_[Æ÷Ì<“-2ýbHø"Kh -¡= Íø"[ß[Ozæ]´|Kïð½±5W½2òY þ•Ï:på³Þ꣭~øWž›Á¿òÙ -®|v€¯äåºvoéÝ ¾¢7¶fœ›à/™W&‡­þøJf®3u |Kï ð½±5ãäœÉÄU΂ås\ù\4#—M|%Gׯå*ø–Þkà+zck÷ÏÐ-ð¯|îm÷Ä7שò܈“0²``"«Ob<Àd¦O¾’elÍþ·Ãà_ù¤2€¯dõog1-øT&¾¥7 øŠÞØŸÌþ’INð—Lò€«‚ä·úà+™¹~Á·ô_ÑNqð—LJ‚¿dRÆ XÎôåÁO²×wSð¯|*«¯dõoßÕe-YCÖ‘õ(‘ -– e}ÙX6¥$bŒ%fËz²©Ø 6ÈÖ²•l+ËHN)Äv±Sìûd¸Ê.NŠs⥣ÙMv‘=d¥wÅrñ'IBL«ÅR1…ã™(ИGA“)Ød L')Ë<”Kå’ùÄ)‹a”‡rqÊe0•MÖ–5e]J‰UVÙH6Md3J*¢Äh1‡Ÿ†Êf"ZDË62L¶£* ÛSJ±CìûÅ~Ù^åP9Å)q^œ§ô”Vv—]eOÙ‹Òˆ{b…ø‹2J”RLkÄ21•ã™)ƒ12L¦dK+3Èô2e§¬2/åV¹e~1R CÄpÊK98å6˜j©Z©0ÕVµWTGÕ…êR(5 ­TêSCÚÆlµ¤0jE­©+u§žtºQŠ C̩ŠP}T5@ R‘4„†ÒpŠ¤a4‚&Ð$šH“Õp5BRQj¼š &©)4›æÐ\ZF+h¦å´’VÓfgè]RùUˆ*  -©"ª¨*¦JPUªN5)šªQ ªEéŠ1‹ÇkBͨ)5§ët“ÚQ{êH»)œ:P'ÚC·Íènƒ©Rª´*«Ê«Šª’ª¢ª)¤’Š¨õ£Ô—úÓ@MQ4†Æªšª–ª£BUCÕH5QÍUr*¯RÑTšN3iÍ Y* -¤ù´Ó1Z@‹h WAfô˜Áî„»~Æ/n"#@âE‘G¦Ô˜¾àÆ]HÁr Ÿi4-¤‡ 2ó Y!;䀜 rCÈ !<£<…ày(E¡¼Å­7]V^„’P -JC( /A9(àe¨• 2Tá¯@U¨Õ¡Ô„ZPêÄx?6«ç™1­£>4ˆuNChôˆ«'XüZb>¡I!$‡ž‚§!¤‚‚Ï€zà[­¾9£ãUdz–ŒV& ³"­¡ÅÚ2Ú1ÂóÛC‹u´úNö³Î6kMÍ>5†4Üg‚lÍX¨é›™¾‹é»2ºAwè=™EXkô²Wëmõ}¬¾/£ŸÅûÛ³<ôn4ý Æ`‘0”Ù0ëÙp{Ö«iõ££úïJ°ócõ¦ÏÿoFÁX›§…tìÇÁx·9_ðïÎRž¾?ùæ®Õ\Юû7d*¾–šo¢î¿¸²rmâ꞉ë{«Âgs«ñù8¿³Ê4ë|a»Ò×zW}/m)ñ\ãÿYáër 5k°Qg›we3¾›[ð½Ü’ïâ0ónË7o¸yÛvä¶3ß” ûây_ŒSÓÕôÝ´ÿ6ž4ën3£¶FpMíÍU´/WÏþ\/rí»_ùþŸl˜Çèp›pDGƲŽ¿Ù(mßôQ¦ëaþ8튽cîUÊeL?‘1Ù˜ÄxM»êø·©6›ÓaÌ„Yð:̆9™ ó`>÷‹`1,±f½ÁXÀX¨]yüÚ›£KµëÒmË|9¬`¿VÁjs¼ÆÃü·´+öŽ½côŽÕ¯…wÙ¿ÇXç6ÿ}·ñÚ3ˆûÐfÁzØÑ°6ÁÇ°™#ŸÀø”ûmðlw{o«våñk;bŒvj×ó¤Ø.ÿÜíÙnÆ^ÇxcvÅÞ±ýþ…Û³ŒƒŽñWŒ/‡´«ŽûÚÁÛì›Ñ®PµÙ18Îþ[“gúŒSŽ¹§'ßkWÿvÆf?ÀYø~‚Ÿáœ‡_8r.Áeî¯À¯ð[×»Wµçô_Øï~Íf×µëÒm7ü¦Ín™þ6ãŽÉîÁŸìï2þЮØ;ö×}îúc2azÉHs>ª¸®Œ¤=·Ç0Lì1šÄôI)ѧÉ)ã´r2ݹ=Ö¾£}uëÒmØÏÁûãöq6ÇC<ÌÔ­ØKû24Æh˜ÕÇìG2F;žF1F¹½?Fwñ´/cm6Ç㜈“p2^cLÁ©8û8g¹½7]·òxÞ—×cŒfÇÍÑ­NŸá\ÃíÙ<ÆÇx!c¾nÅ^Ú—E¾ØíÙÆRÇx9ãMÆ2ݪ½°/+|¥ÍVÙlµn…z ×Øì-|›ý;&_kúwï;æ~Àx±N·j/ìˇ6û×ãŒÆ¸ ?ÆÍÙ‚ŸâVî·ávÜÇõ>ÁÏtçôŸìËNße³ÏuëÒm¸ÛÁ÷Øl¯é÷1¾0Ù—xýÆ~ÝŠ½´/‡ü+üÚb‡Mÿ ã˜Ûü£q^ùˆîÜk_Ž{Œ~‹ß±?ÁøÞ=Ã8Å8§•OêÎí±öå›Åñ'üÏáyý‚ð^Æ+ÌÇëxÃñίŒß°ÞE¼c|Uw†¸/7ÝÆ·ÜÆ·u+Ôcø‡Íîà]¼÷?öË<¾ŠêŠãçä½$$yIX @B’Ǿïû¾ïû¾«(ÁªRAŠAQqCK¨¥‚"ˆˆ€”RmµÕZZ«¶ŸOÿðó±Ÿjk¥gλ9΃™¾„$ïNüÌ9™ïï¼3÷¾{æfÞ½3*þÆwÁŒP{…zÑ6‡ñ*òë®Pc@¢LÄ$¬É§`*9›FGºî*5ÌK†%®‰µTT›Y‡ŽLËùºº«á¼Ô“(Kw-nrÌ–¨>æè®Æ¶ÂZFmh‰1suÏ„[â&º«qcž%nÊl¦»&78æ[â溫qc K\ »÷8JÔ‹X‹±DwUŽÕ†°¶ŽÉHm$j‹ít_wÔjÛc‡ÔQ¢NØY÷uG­¶ vÅn1©»D=°'k/ìMì£{l«í‹ýb4R‰à@Ý×µÚA88F# Ñ}­å¬whŒÆ&ÑpÁ:GG랇zÇÄhœ±Ãñº¯:jµp"NŠÉH“%š‚SY§átÝ×Qá,K<gâ옌:G¢¹8O÷D­v>.ˆÑH %Z„‹u_·m…Ë,ñ\Š7ÅdÔ›%º—³ÞŠ·Wèž©k¥%¾¿£Qïh®Ö=Q«½¿£‘îÒ}­åªön¼'F#ý@"ȺD¼W÷H]÷Y⵸.F£®—èǸA÷ØVøK|?>€c2êƒmÂͺçÀ¶Â‡´Œú°Mn èž½ŽZâÇtWãÇ­=.Ñt<©»2½ŽOÙ䞦c›îÊô:>ãVwez·K´CéN|ŽøSÝ•éuÜe‰¦»÷8îvÈ?¯»2½Ž{®ËìÅ}ÄŸßà÷½ ûŠ*Çñùýº+ÓëøK‡ü‹º+ÓëxÀ!Pwez_rÈ¿¬»2½Ž‡ò¯è®L¯ãa›Ü:^Õ]™^Ç£–ø˜îjÜãx\¢×$:AÇëº+ÓëxÒ&÷§tW¦×ñ´CþŒîÊô:¾)ÑY¥oá9âyÝ•éu¼`‰ßÖ]{/:䥻2½Ž—®Ëü/sƒß÷Žî+ªÇwò¿Õ]™^Çß9äßÓ]™^Ç÷ò¿×]™^Ç?Øf?Ð]—nÇòÔ]™^ÇòÒ]™^Ç+ù?ë®L¯ã_òë®L¯ã_%ú?Õ]m…ŸÅ|Le½L a2ŽÏô3Ìf"3‰Yƒ™ÌLa¦2ƒÌ4f:3ƒY“Y‹Y›Y‡™É¬Ë¬ÇÌbf3ë3s˜ ˜ ™˜¹ÌÆÌ&̳9³³€YÈlÉ,b3K˜!f+fkff[f;f{ffGf'fgffWf7fwffOf/foff_f?fææ@æ æ`ææPæ0æpææHæ(æhææXæ8æxææDæ$ædææTæ4ætæ æLæ,ælææ\æ<æ|ææBæ"æbææRæ2&Û³&â$Æ*d¼ŒA¿äŽ H›Ä(L–5ªœ‰2V -$I,kHûô21YÚ׬¦È÷׆T‰3”6õ¢0MZfG0]ò9åf†ômX…¬)£ä*Ö’L“r°¶ôjZ&Ö‘öùeb¦´oSÖ•q ëI¦( -³¤e‰b¶dZ•›õ¥o›(Ì‘–íª d”l(ùNŽl$mºDa®´ìVål,cõ0ïk÷*ó¤}Ÿr°©ôêWÉl&ß<@1_2ƒÙ\Ú ‰ÂÒrX $?¢Ü,”¾£ª-e”1ŠE’WK¯ eb‰´ŸT†¤×”˜²•Œ;M±µdf”‰m¤ý¬¶•üœd;ù†yQØ^Z.0×'/Š`GÉ/Qì$™eÐYâ›»Hf9t•ø6sQñíebwi¿Ò†=äì*Gö”6w–‰½¤ý]6ì-gï1×'QØWZ®qd?iso9Ø_z­³á9»> -JË åà éõ€ ËÙŠC$³©*½ŠÂaÒrK‡KþQÅ’Ù -#%~"‚£$ÿ”âhÉl3×EÛý•³;̵PÅÏÁx‰wÙp‚œÝ %Þc®s*Þ“%~Á\‡T¼¦Jü¢â4É„é¿Á’Eq¦dŽ˜«‘ŠÚp¶œ=n®:*>s%>iÃyröÌ—ø ­=¥ñYX(ñ9sRñX,ñEsRñ%X*ñeZJãw"Ùóê7k_»zõ -é# ùËùé3¾‰¤{IgGo¡¾øé{â›ÞDZ@ºš´=黤[ H¤•,ðoRZ¡ÿ%¥{$a:éHDw@b]Ò¤« HɦÅHsI?1 ¸ u8é‡¤Û H£6ˆdl£—¼…¤_¾n@Mºw3êÒ]šÑЀÚtךOúOÒ3Ô¥{&³é~Òõ¤ôßÉÜd@=zÈü܀컲ƒÞC:…”~»Y H?#}Ó€ô½9Ťtåt"=DºÕ€†Ô?çKRZÑŒ!½HzÀ€Æ´[äf“ÒªžÛØ€<šÜ&4nÞ—¤Д~yÝ È? Ðl‡Íé­¯ÙפôÌEú*é -‘^¨¾Bº‹ -èû éY0Ž”®¯àéã¤GIé×Xpœt餛IOPp‚ô,}¦7±Â)Ý?…ëHÏ“þÀ–4Ï-û‘ÞJ:@éÓ¤§I¿0 ˆžÍŠ¦’ÒÚTt’ô -@q–Å´f¤»I?&ýŠôSRú¿–ô0 „~g%t]%ÇBI„è ?´ˆ4‘t9ié -Ò é¤ô†ZMJï¡5¤t„6(¥zCô¦º_}~P}ÞLJózX)ݯ!zw =¦¾ïIÿkÒ¤TWhåi>C4¯!ºCûH¤/©:Ž)=LšBz\}>©>Ÿ"­AzFé[t½4/¡s¤+H/ÒŽºHJ÷Cèé-¤ï“žÿÞÀq~@Ðl@çk€-™ŽÝExæ™g•n©ê„4Z˪ƒEV‰aÉ¡Ò8:â¡vDwZœÒx¦²àÚ]Å´ðÎâÞ]Å4sg©Ø]è™gž¹É‚êéЈ´”®Áqj3W:z…„ÖÒÖ§VèðÚíNóK€Nà´N—¾¸Í¬»G²c+Ï<ó¬ºYJ…z§Ò:ß“t„͹êðì¶xiÓ¦:Ô_úì?Îr®:¼!Lë [¯ÇïÐG·”–î×Óáú}û`eħ°™kuäÎé‹|ósëâ™gžÅÖÌ'³U¹Š™~ns§À8üŒéN+]uÃó€ûÀúLž{·?»sõ–â™gžU¢¥1Óo°wÔ„•VKÕ›¶Cxõ [Ü5ÏÄn4?ì³æçáÛ}ÃÌ4×Ýtà™gžU‰%Â^°{_p¯E®ô~8ÖçððS8¸ü9Ô“¸gžyö]²Ô -õÒsü‘Jª¤jÍñ áØï"ñðvDwZéŽÞ]üp®ÝUL ï,îÝUL3w–ŠÝ…žyæ™›,X¡Þiï‘þ J×à8yŠöÓ€¿K[ŸZ¡Ãk·;Í/Q€Žø¬ku8 –Û}–d‰Ý¹›xæ™g7bÉÑ›üK¡g·¯®Ëú| 6m«ÃótØâ}I6mªCýê}ÀgÝ}×µvŸ¡ïìW˜E~¡zóÎvY–ÀÂ’YrfÉQ w*¨%.ÁDN’sV$Hz§("  €Ù;ïL租IÉ kª{›Ùe¦û›Ee†›¿¾ú«êýïUUWÏTUÇë -»>æ!æN#È(“àÖo°ãìôÍSóöþû€¯"Bqd£…é.mÄ,×–Q:÷ê¼'§ï ï× ¯ž!À y3Ã*wsB¿·ù&‚°äÎX¿aú&r×O¿c#p½«µ÷ù;ñÍ“Óaí@ø¢G0:b±Õo6—߈Aß}uøòù–‹ ì -7Ofßa/¸y²9Ï=çÉæÛ¹Ó €~„b¸û¢ñ]äý‚Ñp œþpð‡½ß„#ŒâhIcÌÖXIãež®ßr¾ ûCNykrµqøÑlm<μ¿$aé'!oH8ühíq‰œì -ð—õuî¡+ÁÖ×ÆCà‹p7ì’AŠƒqøÑ»ÁMàG³õ¨éÿV ·‚¿ü‹5ã÷âÁ¸üè­àGà¼óì‚»cíwƒ­½G-÷ñøËÓXð[U"î“ô‹‚JýÞP÷K:à¢9¿Êê2ÿ”믬Geã„Ì'e>%ói™Ïýœ•tþ–Q.ê%IWnåªÞ1¡ë($™ä¯‚e‘9Tæ0™ÃeŽ9îŠ÷Cªëáø^CBA« ;ô ÁÄ­éu!øÿL›è Ú -×0Ãàô¤íAïÑNú€ÞO¡ìâ®èÀhŒ…ÝX˜Ö`w¦]´[„ñI>MŸÑ,B{à"¥8Óè ú†Vзôý>‡À?±–¤¸ ŸÑPÌäú¯pðY>åèš…èt+aUG‡é8¥tŠÎÐB¬ ½éÖÅIt.ÓEøöÀ^Ø€ °!½}°1 §9ÜODó6þ…/±à lÊ!Ø's;ø -_ÃÖxGÃAÌ+ËE±=ööœÌéœ -ßÀWð5Þ‡`'ÈÁ‡°3Ä®<˜‹s)Ω¼‡oäò\‘³¸ ->Â5¸×â:\‡Â1ìÎ#éUn;x¸(‹=¹!ö†Ãܘ›B?è ýá1dÔh5 €ÇisÚ(4>Î'h3m¡mpC1\þÈž IïÓÛô!½ OÁ“0»aÆ`!„ ´ã¹ }BŸŠp>ÅgèsLÅDÚ —0‰fâXL§/é_´’þM_Ó>nC`0 Å ,E}a ÃÒÜ—¾Q|Ž/`y>Jûi6N¤t³°Ž§#ô3£“tšÎÒ"¬Ãé<Öéô ]¡K0FÀ(x³±½ £±  ¹Ü_Äð›|‘/³ÆÁØŒC±NápŽâ«|Ûཇ°/\åBœÄ-°öÇvœÂÅ8 Ƈ÷cG|ÆãÃØ…Fa7Â%8“KŠ4~K€ ®À•¸2WÅG¹&Wç–\›ër}­4ƒã؃GÑzΆíÜŠGˆrØ‹a8ÂM¸÷àý¼Ž %4–ÑRšNËq¯8#ΊÓâ”h'Ú‹sⲸ"ºˆ®âª¸&ú‹âº¬…hAš&êŠQb´–¤%‹éb†¯Òâ´X-FÔ‹´-U¬/hiâQ_?‰¢¥8!Ž‹õ¢è(:‰ "[ô=ÅEqAl 57Dc1H ÖXlMÅD1I‹Ôb‹h¦…i¡¢‰˜+æiQb›h.–ŠeZ¢–À‡ùÿÈ“y*^âq<“bx"Ïæ¹¢"?ƒßó| -ãüäÜ(J]M×wFçž'« *÷öD™S§IÓbéÓB –Ø'Ï0¼­|›ñôÿ’¢!F•¡ònˆP¤€½„¸µ†{ôpk´! -b=jq2‡ýæ+HH| -ºã3¤»?9 K+ -[ø&@¢Y/ -IªL†”<>©vó›P1Ë[œšüEË2¡2‡É³1B–‘rQê Ž•ó¹Ýxç<âÌ'*غ6ž¸ 7Dc• -ú^’Œ2¹€ñ)æÛ(X|ºâbžñ|í^Æg(.e´Jz=~f¾vi/ãËäk—õ2¾œâ -F«¼×󯘯]ÉËø¬|íÊ^ÆWQ\ÍhUõzþÕóµkx_3_»–—ñµ×5Zu¼ž½|íú^Æ7°Ð²¡¡m|#JcÅMlâ›ZhÍ ¹íø-,´–ÐJ•­-|ÚxTîQ|¯Íøm-´vÐ^•,|þd¡ýî³}þû=*(îhßÉB{²ÿa ­3t±ïêQé¦ø›øG-´îÐÃvüž–j/ÛøÞ•Å}],}Üxõ³è»? °ÿ1 íqxÂ6þIKõ)Ûø•ÁŠ‡¸X¹ñjÑ÷0®Ê>#-´Q0Z•O[øŒ±|º±¶Ï?Σ2AñDËx7^“,úž SlÇŸj¡Mƒé¶ñ3,Õ™¶ñ³<*sÏu±Ìvã5Ï¢ïgàYÛñç[hÏÁÛø…–ê"ÛøÅ•%Š—ºXžwãµÌ¢ïå°Âvü•Ú*Xm¿ÆR]kÿ‚Gå/ŠÿêbyÑ×K}¿ ëTùŠ…Ï«ÚzxM•,|^·|º¶Ï¿É£ò†â-.–Ín¼¶Zô½ Þ´ÿ- m;ì°ßi©¾mÿŽGå=Åï»XÞuãõEßÂG¶ãÿÍBû;|lk ¡“xœ“ƒ‡*ŽP¥8Vq¼â"Š“§*.¦¸¤â2Š+(®¬¸ºâÚŠë+&}ÜUj\U%e:›*ƒfÖƒdrBS>Á:›j(„˜õÙr"Dù„élªQnÖc¥¯áÊ'RgS‡Y/"ãœp(ŸhM5 bÌzªìÕ‰åSHgS-qf=ÃàxeˆSž…u6}2 N0-eópeNPQ‰:›žòpQÓžep’2UQÉ:›>U N1-5 NU†埦³éSÛàtÓRO>±éʳ¸âzÝôÉ6¸„iilp†ii%U5CÅ–Rœ©×MŸ–y8Ó´·ÉÃ¥M{[(£ª¥U?e—Óë¦OƒËýÊ~uÀGQ|áÙÀ!Dz“*=@ ô@è½Ho"Mzï½7)"H“& *¢(¨ˆQ°7DTDEA”ß~».·³w?.üîöùÿïýÞ÷Þ|™÷ÍÜffÎbÚ˜XÊbÚëkLŸRx¶ °¬‘[}:™XÖbºšc1ÝE9¤1x¶<°‚‘[}zšXÁbú˜k1ýDE¤±x¶0ÎÈ­>mgñClXÙâ‡ëß-}*cœªÀjFnõeb5‹kbu‹™ j ­ŽgkãÜê3ÙÄx‹™f`|ÒÍÆñI·'&%¡¸„ÚÍ)?F±%µ—S¾“â -j·¡|åÕÈ×$&ÝžL±&ù:ÊiœÛµÉ7R>Žb]òÍ”O¤Ø€|åÃ)굶S>Šb3ò”¢¨×ÚIùPŠ{È{'&ÝÐÇÞKÞ—òŠ‰äÇ)ߟ”T˜¼|bÒÍŠóÈã(§¸¼*å)Ò\’â)ÏLq9yåÑW’/3û¯!olö_OÞŒò(Š›Èi^7³RÜJ¾›rZyìm¹(?Eq(ùÊORI^òÓß(Bù¡7BŒ¦ü,Å)ä¥)?Gq†þNR~âlòif>_(¿Dq‘þ>P~…âò”_£¸œœÖöVŠ×…ÐÒQ~€b7òŽ”ï£Øƒ<³ÉÓÛ¬e¥üÅ~ä½(?LqynÊRFžòâÎÇ8ËŒsÅ8QŒSÄ8?Œ“Ã8-ŒsÂ8!ŒS!Â|>ƒ#­ñþË}-2‹”2ýÕg’ÍŒ9̘ˌÆÉ•Ïlå7£qö)eôó0eÌÄ8õsVŸOI3çhY³cFãô‹5[ÍhœYUDJYýM31NøZ˜Om3Ö[ÏlÕ7cCYœ¬Ù09^Î d Y_¶d%'«Èª²Œ,+WÉr²¼\-ûËr,{Èž²·ìC=ÊF²‰lJOÅËZr­Luä:i¢œ$§È©4ê9RŽ–chÄN²³ì*»Ñè­dk¹^¶‘m媸H.–KäRª>KΖsåC´c×ø¿iÕè·ÙÝúÔ ßfñ´ŸÿÛ®-ØôÖu2N=:<Û DCWçÑH4¹kŸ¦¢™Ï¿5-\Õ{w‹V-Ekñ`²žlî=XÖ–¼=²¢bgÑEtµõé&²µ»‹‡­¼‡èiå½Do[¿>â[»¯ègk÷líb•C¬|¨fë7ÜŒ#ÄH?JŒ¶µÇ˜q¬2çq_E§“Ìl2ù1Õö×i¶Öt1ÓÊg‰ÙˆsÄ\[Ÿyb¾­ý¨í>›Š<5µi(¦%OG÷´ô#Ð#Á‘¸•EÑLÿM73ý^–ƒîbúïSý–—î`ùq÷)H·ÂtZµî$%q ¸]è÷ýnpç.P…nú.­ßª}XßõÛt]ìb ô[4í'‚nM°gè{CK:kõÿÃ6ô¶£w°³Ì·Oãô·L»ô·J“ô·§?æ3oŠþ† ¥Ö0zô7AÿöÇÐwýÿuñ¾.wÞüñ.¼ÿÿ-›`eÙµ„’{Ødv¡fS¬lê=‘mšƒ™Î®)l†Wvf²ÆH‰6Ë+;›]·Íq0s“=FJ´y@Ï›ð¡ß…|!»>.[\¬°yäKÄRv•îÛ2ó8»¦P°å^Ù'ØuqÛ -¯ìJv]Üö$p•³–|µ™¯#_#žbWé¾­÷Ên`×Åm›v³Gþ´Ø®Ò}Ûê`¶±k -{ÆÁ@ÛûÀcì:BÍŽO°ë5ûø¡Â~ä‘,>aWé¾} -üLa?÷È¿_²«tß¾òÊžd×Åm_O)ì7캸í4ð[…ýŽ]·}<î#ÔìàYv¡f?RØŸÙuqÛ9ày…ý…]·ýQ.°Ï#Ðö[@Fù}¶‹^ÙK캸í¯ìev]Üö'ðJ2ŸºÊ®;Øv øW2Ÿú›]w°íº«Õn°Ï×_»éjµ[ìóõ×n;˜$vM!`šp0ìšBÁ´0“Š[S(˜–ÚÁHnM¡`Z+KË­%”LKgeáÜZBÉ´ô&‚[S(˜–ÁÁdäÖ -¦E:˜LÜšBÁ´Ì&Š[S(˜–ÅÁdåÖ -¦E;˜û¸5…‚iÙ2JvîyÚ´%'÷<mZ.+Ëí*rs+0uäµ²üÜZ "·SGnŠžû¹˜: -r+PôâV`ê(Ì­@ÑS„[©£(·EO1n¦Ž€Å¶„G^R+ͦ®[å2À² -ã‘—Ó*°©+ÏV9X‘¼²[É#Óª²©«ÂV¹°:y¼[Ã#¯©ÕfSW‹­rWådê¬ãr½ºÜ3öSg=—ëÕ6P؆ÜëàCm#×*56QئÜ+àCm3×*5çž«Ÿ:[¸\¯%°•Â¶æ^‡Î6À]«×ØNaÛs¯ƒCgG`×êuvVØ.ÜëàÐÙ ØÕµz»+ìÃÜëàÐÙØõz½€½¶÷:p›ö°¯ÂöãÖÅmZà…È­‹Û´AÀÁ -;„[·iCÃv8·.‡Î‘À®Õ­°c¸×Á¡sp¬kõÆ'(ìDîupèœ œäZ½)À© -;{:g§»Vo&p–ÂÎæ^jç¸Vi.pžÂÎç^ju­ÒàB…]Ľ>Ô.v­ÒcÀ% -»”{|¨]æZ¥ÇËö îà6mp¥Â>É­‹Û´UÀÕ -»†[·ikëö)n]ܦ­nPØܺ|¨ÝäZ¥ÍÀ§v ÷ -øP»ÕµJÛ€Ï(ìvîð¡öY×*=|^awp¯€CçNà ®Õ{ø’Âîâ^‡ÎW€/»Vo7p¾ʽ¯_s­Þ^à -»{:oºVo?÷ŒýÔyÀåz¹gì§Î·\®÷6÷ŒýÔyÈåzï+ì»ÜëÄ¿§ñ£×Qàû -{Œ[½µ`ŒãÚ ?z}È=W?gó‘Ëõ>~¢°Ÿr¯Cgü™ö¹½¾~©°_q«ži'µ¯ýèuŠ[§Ÿ³ùÆåz§ß*ìwÜëį±µðÚë,ðG…ý‰[½9À?kçlí_¼öúxAaã^à™ö»vÑÖ¾äµ×ÀË -û'·úà™vE»jk_óÚë/àß -{[}ðL»¡Ý´µoyíu˜dg÷zï–*chaa¶vj¯½$0¦å^àYXº°p[;½×^À -›‘[}ð,,2,“­Ùk¯(n~Î&‹‹ÕÌO-Â¦ê˜ -˜(i€ié€áÀôÀ``F`$0030 -˜˜ ¼˜ ˜˜˜˜ ˜˜˜˜˜Xx?° °°0°°(°ð`q` `I`)`i``Y` °°<°0XX ¬ ¬¬ -¬¬¬¬ ŒÖÖ&ëëëëýÃ~¹FWQ]q|gÎ>€˜x3íÁ<™ÝäÁA2»Åƒù2»Õå`Ùî²@F"‡ÈÈ3. ed‡Êì>Éì“ÙC.³ÏE±XÆ_ˆb‰Œ¿Å2~8Š#eüÇ.GÉÈO\Ž–‘#.ÇÈÈ«.KeägQ,“ñ×¢X.ã¿ŒâX݃2û¦ÇÉì[¬”Ù·=8^fßÅΉOÐD‰Ob‰Ä¿ñàd™=U+§Èš÷iªÄ§=X%³¿óà4™=ƒ}+ÿ¡VÎ5goÁjYùçZ9SÖœ¯•³d͇µr¶¬ùÛ-8GV~T+çÊškå' çr+|N>¿ÕÙ0¥£¶ÎÄ¿KÇo3ó9èРؗ2_‚¾= ÅsÈJ‚^‚¢7ÊÀ{‘…N)çdÖièAêx_2®AÓ¡ød¯S+œ[ÙŸ@q´Æ÷ž‰ü[â=ÌÁû™‰ï9gY˜²p_9CŸ%jƒÞ1;Š÷%Ûíi(†®wWNWåtSNåtO Ý9齌)ÓAÅÜ4X`öõ›"ìãÇùM8»Ý½IÝ°†oÃ}X`ÿߦ©)˜DA½X`ÕS” ¦¹W‘þ.¼{½Ì›ÖåP°—X`uÁµ#¯~/°À ìë6¦NàÝÔHX]0E]Àûà]á÷ûQ°?X`uÁu§`? -,°Àê‚)ê>BΞÔË°ØÞÏ\åóàƒàùðÁ7}J |i¤,‚ƒ‡ÃKà#à#á£à£ácà¥ð2x9|,¼>N>©R¢ à$ødøøTªo{©ºÝ7X`}%ÆTEÁ~X`ÕcšIÿÝêÇ/o÷ X`_‰išGÁ~X`ÕÓT.ƒ/§ëûRý6‹V?òø¸†ü‘‹cŠÖ’Ÿ²YO~Êæ)òS6›ÉÉf›áÃ]†»ÉOYî%?esü”Íóä§l~HþÈæeòGGÈyü”ü‘ÇkääqÔð Ãc†ÇÉù½CþÈãù#_“?òpLÑ)òS6§ÉOÙœ!?es<ÿ üCª/™Y¸ó¿R}ºÛÚŒéø/ªO¹\¤út·— —©>Ýñÿ2¦+ä‡\®é*ù!Ç8Æ™÷K.È?¹Ä‘r1¿—˜&ä‡\ã˜DòO.©H%SíV{ÕµÏZfm²ŽX{¬%VµÐ -«Aj Ì ­åÖfë5V•©qj‘ªá8ëOjššªfpSk¯uÕÚo]³–ZY‹¬ÅÖ¿­}Ö*O PùÜ@•«RU¡r¬uVU©)j:7Q ª…ÎЭT‘*Tù‘¦†ªb¾CgZoZoYǬã:Kg+R–ŠQJ5SÍU[ÕNç¨öºê ÛéöÖ:k½µÂZi°~e²žµ>².¨X§U’*P%jˆ¡*ÕxU­fr7ãdNáDnÁ͹%§rgq+n£Ûs;nÍ™œÁ9º·ålþ'_Ö1ÜM³¾“{êxÈý¸?äW8—p¿Êƒyå£\À…\įs1àÉc¸ŒK¹œÇñxžÈïp%OàIü.Oåi<ƒßã*žÎÕ|Šgó\žÏsx/àEü/æó^Î+y¯âÕ¼–×𼞟ä§xoä§yoæ-¼wð.þ=oçü Ÿá½¼Ÿò9ÞÇøŸçð§:AwÑ÷è{uWÝAwÔtg½™/êñz‚ž¨§è1ºT—é -þL÷Ò½õ£:W÷ÑÝõú!ÝSoÕêyz¾þ®®Ñ ô4=]WëÙz†.ÒÃt±©‡ë:Oçë!z‡¤׫õZ½N¯Ñ‹õ½L¯ÔKu2Þ§=t½>w¼!<Þ^ÃWÁ7P#ê‡YÆo('©Ã7¼±Ñï¯cÎ -eøö«5¸‰ë -Ÿ»«Õ®-KÆ6&–YÉòK¶Ñʶ1ÒÚ–xØ18FÉÀ¸1††WÊ84´ÉЂ“ÁI(¯0@Â$ε-ˆþÜ¿ö¡9{’á¡¡c燆N›_ëz‡¿òdžg˜}IIÕhAíÔhù®¸^7kd_×håRæò+|…¯ðÿû=æߺу±%G[î÷0S¦ºÄÃ=Jü=*u2§:ïWá¡Á èYgêY¼k%©²Ê»\µ\Tˆ…¢]t‰ŒØ+«Õ†Ïs™s3QžB¾«(—‘nÄ=äðIDé•ûåAU¢JU¹š¤–¨{ÕCêIã.OƒçÏÝžÞ|·åês ¹•¹sÏ;µÎ}ÎO^¢ >ÓÙ˜ÃÝÎÅž`V»\gô]"ž]ø9å¢zÏc?±ýŸðÎ}I +\üdb¢¨ÓÅ âœ%"bŽ¨—‹<ŸE"&’¢EtŠ5âV±™²E<Ì}ôPv‹çÄ>q@ôQŽˆ)ŸKôI¿´ä–µ”E”¤¬—)Ù,[åÊr»ì‘Y5CÕ¨$ÅV½ê êSïª%FÚ¸ÁxÉØo¼e1þj|æ)ôLô,ô\áõ{+½+½ywù®ö=í{ ;Éñϸ§O=®—÷Êb¼„ß³_ómñºœÍ“è»ÄcdêqÞÛ)”·)aÊ$Ê©”›Éá8 +òïÏuËRim_×N鑯ç´N´µw¬ÆiÀŠäò&·Z×Ëëko´;ôgø®|Ë )TøÜ1e£­sæÙ£JGŽ(î/vÖ™g -*rúàÓZpŠÏë1”F­š„iIØÆköìö­$É„m2TóÍÛL¸eæ7+ìl:©2Ü_>Q) +Íé˜ +šQ˴߈XfV,ž£½!bÅMû˜kßµ7ºö`Ú'˜Q*bÚ"aFíš•©L4a»Ýapj(È‹G¦éÆ6f%;S~º"j—X‘¨=ÜŠ¸9UM6ØuscÑȈ@  +ÚbV½µÔ†UmŸŸ®ç™,ãÚ¡`³Æu§5X ë²a,Mh+yeÌVɸ-z¢ñv±±‹W¿çÿÚýÊŠ®´eYM²1SCjÖÍîwÚK®§W;ßd[¹6³ÅÚx?{ÿ.­¨Ž$ZL»Àª¶R™–9ǼØÎ’pIÔJFâ6êb;‡‡‡»N(¸Û¿æ¢IÙšš©Ç‹þ5ýãû·ôÇßìäÖíùÇÚy'xz%kaÚf½»ˆE¬ÓôGã4d꧱ŒO\p—ÍvÁ¬D¦ðBβ=e…–™ù<(ë؇ߌ$óoYá§Ð¦>Î7‚ù¼Å¹ÁÚ, +êb;„øQ<+œµYDJwóL]µ„ér}š#œMglqZã‚f Q×ès33ffNCƬ1S{°E<“é÷¬€Ý›ÉŒÈèïA¿Ÿ89ÎøG7àUÉŠ®:7ÕeF耰„p©‰¼^_o“þ3Ãçdx2Ñžï2<åÄðß…áŠïÄðÔÏð4bžª®üÿ1|á†õ›Ù‹ßNƒ_Í%r‰Á|ýï2ÿ/ñQÏ^þ¶æ_í®n*‚ç è¿ëXì݆No%æ‰k°LnÃjãÝÆ-¨b}ý:ŽoËJŒ¥¦VQãÔbêLj µœÚªs¬}œºM÷ÈëPµݾ%ÈÏ(Ï°¨“56ã0{t ˜ö$ís½€*ÅY´ËtÎWêæ´V±. GÎÕs2?’¾Ö€o +8êy!ÆOgŸYéôrŒ¨—Pm¸{w>$ŽZÚ>Ž8NâXÎ]ï{(q—s^†¶A»ŒÜhkB-ÐsX_@Œ)æ‡ç9)ãºã8ZÔ‘ì9Eõá&ñºõh,p1ŽÊï}²Þ×W{Òø5¦oÑ ß@Íãû„úõØl'ëГ´UMÆ¢ü £Þ)ß@•ÚêÔçè=ÕZ}}ÿ"½Z໪«ø¹ÿý_Ûä!lÀÜ`lsŽ" .À!¡ùHccÈ#”Is‰HVŠZADE¦™ö°õ´`&J‰™Í€â±0KÔ +yܾçÜs»ûßÿ½wÖÿÿ9¿ï¹çž{~¯ó;çü¨ó[Žµ:o¦Z¬®Œs]‹ç‘J<×Þñûíù9Çh>Þ LÞ ÛÍ4-6Š†Äp¯ˆÝBeÉJZù^ÊãÁ؇Ãîñ‡fû5Èò¡?,Þ ?!×Uiøû¨Y+ô‹þÏŽ‹“}ïß‚q ©°õh+cXÄëÎ{o5žZ›8FgàÝí øI=ˆ÷!l·ò7ü=lõæ>t/™Øÿ@}A¥ÌëML^I×¹ûå’ìÅZìÃZ{»âI|³ÙY?ƒçNœ·=ü¶ÙŸ†°ßÂw.ge?a‘sÿßÅ<ØÏe}³Ó[@+A)Ѐ$æ¡46î¬Õ(þ–Ǫ¶[ØÇØw\dŸå9²Où0CWƲ6±ìoQèöŸ‰Êó<ú9hïÂcðÙ}Äy­ëÄFY|1üçžÏžœ}œ?Ù:'¸vž÷È™ãøS–‰ÊsŒãÃFÙãÜLt×N±‰c‹œo`Î +y̼ï:§¡Æ¥³·ºïÝ~Ýþˆ&sœÒ3˜Å·ìÃú®SäD[_ƒŸqÌr|¢Ì샮»¦wÜ9c’íT¥1³XÇ<¨y¡ÔŠ±MA *Â\Fãû%ü4‘¿±¬”ßÁÞRÑ-Å÷•È#±–KhúªÎÅœ›À³ŒŸ[1¶e@Î〫uÿÆ‚¿ ÔýyŠý€Uèg6ÛÒ±6a¾+9×°ï²ïÄÊ© ÔbÝC#ØÇ1Ï3ùÌ;ä®k·uìèZ_³Öîúo×ïÃÞL¶Ÿº“Ša·TòW£Ì¡(±xsÞHéøëTŸ8‚ñ‘1V'š©1¬Jøçi +£ä»Fš‚o*'ðý yQbtVÐàTU§ˆ¢Ô5b»úSË€Ká#èãâÜTŠµÈãgœ‹¬C-#ö¬€í笡Ѭ‡q¿Â8©€m3Bv¾kÄŠÄ›âŸ?Nˆ–ÊX!K̦R¬omÎÔ^ÙÅ°] }­¦<~‡±Æð\GßB¤´ÏðãгŠ¥—D^áê'Óaly‰…°¿* ?ö ëGpNB¼Ÿãä«œsOlÔ©yœwWÆJniƸ‘[$ÿŽ¡•”ñK¯¢©iŸ ‰ñÓQ?œ¢²ô"97‚ùÅTÖëY#+BV(ùBk®M8~qìJ®ÕIÁûR™^L•yë„gY°² +>‹nLæÚýçc/Nr]–7–Êr§K-3 +ùi`ªñ vÒ‡h ?³¾·%GÕÙ{=ñ­§q©[ü—üŽí‰ßnœè7ylé½[«ä’Qž˜›iÇý®ÌÛŸ'_dË]X«5ÔTÍ¿nžbIeÁ®¼åä¹Pìi^ã3Êu¡g]<¹,%ŽÔIÜ(¾ãYÏnØ=·Ù2‘}‹÷;ƒržC×Wk‹\³çCä9_ÎÈ‹™ØäË_ÝgQñ]ø'«ÒE7F!ŸQ>gÌžo]”Zß¾/áÔí%ÆÏv!Ž,îG§§U>%°~Ê@_}4ûRl Uñ +z2ó½§êÚ§LäXã²ì£»NµnÍëEµ[è駈ã3ÇdÎO§9qwÑ=»®®«Ç¹Œc:ç2þÞ òÇsÎIПdòE&"—qLGëϱÜø°úh0çiÆتrkz¾sòÑ{™ãÛNmþPW¾–»äDä—1ñÛä~9LÏ­äBÏ\%‡™¹<§9Í©s˜ŠÄ_t¬fnúœì#±hXN#×öÉÄÈÕ é‹ktçQ¿ ßê7Zƒ0ÕXÚ¯€6qM+·ÛA,÷òòÞ©{Ù‡&døRa—¯Øk w£ã3ö‰ìµ­ýˆ9ËgKã™Ç_íN}žÖ#¿tq_Púäõãý‰BOÜ—}”úI×ÙÝ·VåÚTêR®A¹æ\Ë5 ýd5üÌ5§Ô™¨1µ¾¬Âû•ŒZW²&©MC(yƒ}”)UIRçØíÉ™vG²t5äsì£ÜG6J½JmÙíJLZóRújsÈnWêpˆj˜0—<Ìå˜Ct–R_¦øfjcJÔÛíJ!>‚tî>Jµa¬7wõ›Ú†ñ–ñV…Qz¾™…ofaŒ³$7…QrúI⛩ø”Š~*Çó1>]wwÝuáü¡û莹ÊÝÞìcúqû(Sî­v{î +ô½ã½´É‘GíK~‚Ú²Û•:¢¦¨yçP[nµåÝa·+u8D5L¡>ŸÚA ìséN™»oŒð·&ø‰C¸—aÝvƒíŒ9~bñÙa‚O´0eÙÛ&%y–3·0¥°ÙæÉý¦B=Ü’žKëÝxã©Yh\‘ø µ±Æ€¨}Œ"«—îÎÂïVÚ©Èòg¼|”ß÷”ÌÞýäî“RÇ7ÏsMÆûlráÝýû¿iâë'–0ñ™g +ÚƒnëÚ›,¹~åI; £$%h`L¤9ø—Ð:‚:µã_b]Oë‰lüä½å¶¶ýTÆäëìï,ücæÛåLê+ÈTìÈÅz±ó=ØSúELäFäÈOB‡åqÕwåÇMßò»hÍP2ã*œOR2Œ8DtašÒÖBZ€1¤e„ ¬ŠE}„þÇ=|/Pï¬Z}O§~iPAVýBÅYÞ%)7p4§I›o F™¿ÙϬð|s1×w«ÝÕ3çì3öþݵì«k®ÝOצPW ;¬=ÈpEtFäHŠ WBƒ#µ‡(–J;4B»ÌpåTiûLŸ¤2Dû,ÃUÑ0ÁªÔ'Äv­O2"D{¤áΖ(ÂÿsµGû$cBl5ܹ4N°ŽÎ Ô~¯O2>ÄöŸdbˆöù†«Gtt¸ µ'+¾OÚ)!vù¡âÅtM¥÷ ?-PûŠ—H{i„íË w9}P¹+µ¯4܇hºr ÚŠ3¤mŠÉLŸäªíY†›Ms?Lsµç)^-í5 ù!¶›}’kC´ø$ Ñn1ÜuÔªÜGµ¯÷I†Ø¾Áp7ÒÇÓ¢@í%>ÉM!¶—ú$ѾÙpŸ O*÷©@í[o•vYˆ]þߦøiºî ÏÿÙ@íåŠ+¤ý\„핆û<­Rî Ú_4Ü—hµr_Ô¾Sñ+ÒÞ1’»=üW#t-ºGñ^iïó¼ùZí¯Kû óüÍPÛß2ÜýôíÈ‘´î;ôÝHíïyøïGj? øiô¼Y“Eû!Ãý~i{­áÖ¡rÒ^ïá7DjÿXñi7zÞ<œEû'Òn2φÚþ©á£Í‘#yÜpOЖHíŸyøŸGj?©ø”´¿ð¼ÙšEûiÃý’ž‰´ý¬áž£ç#µå“ü:D{›á¶Ó ‚;è7Ú;_”ö%ÐoCl¿ì“ü.D{—O²;D{á~OPno ö>Ÿdˆí†ë ? +þ™þ¨ýŸä`ˆíC>Igˆö+†û+ýM¹Wµ_Sü»´¯‡ØåÿaÅ7qÃ{ƒÞþÚGIûÏÛoî_ôoåþ¨ýŽáŽÓ åNjŸRäû­eQøH¬..fåDŒÚ²ôvj%¤MFh§¤M[y‚ùV®uZˆv/Ãõ¶ú„[†N_Ãnõ‹Ôî¯X ma„öà ´…ëB§È' ¹7ZæÆh•Xrc´J­!Ú¾;¢Ub»Ü' ¹7ZæÆhUZz´ªµ‡ù$Á÷E˪1ÜpKîŠÖË/tuFú$g‡Øå“ß-ËÜ­1–Þ­sµÇ)Ê-Ñú/÷U%Eu…ß}]]ÕÍ"²*ˆ  böU@…È.* Ȉ‚€4HÈ6,FPŒ9@Â"(‰Ç " 1hBÄ£‡`$ËÉj˜|õÕ››©ÓÓ=¿cŸ¹ß½÷«û^÷¼ªzï~rÏËëN1J'é(B']rV;Ý'݈Ý+˜»‡F=Å)<鳺F}åfåÔ€â4 PJPf1ƒòTÖhˆPÊP¹-gµS‡B-(P‚’GJ–”<PîÈbFå©­Ñë¢q9«Çg1òÌ­jR& +µ¢Ü#Ùº°´fR39ÏÜS²˜ÜzQD£L§ezÎêBçï'ÎÈ=/¯;Å(³¤Hf +5žÌÎYítŸP÷ÉÜ +枧Ñ|q +Oä¬Îh´P¹(§§…P*Ѐ²´L¼,-*œJjAYQæJ9ºQ¨E5¢¬Ê;÷jÖÈÚ|•¬Q•(ÅRžê‹Wo(o¬°z“óTŠòD™+—S½Y£-òdþ™Qó”F[åé +«Ë¨Dy¦Âj§ …ZQž+såÙrª·U+ÊóÎý¼F;ä…|•¬Q•(?–òT_¼zW™xw…Õ/:O¥({Ë\ÙSNõ>öËü3£æ%Ê¡ +«³T¢ÎS­ºPŽÊ+ôÇäÕœÕN% +µ ¼Ë£%KJ (dz˜7òT¿©Ñ[rÂEoç¬>™Åü"Ïܪ&å”P+ʯ%[–ÖœÎbÞÍ3÷{YLn½(¢ŠQΈӃò~Îê³ÎS%ʇ¹çåu§åùXÎ 5ž|š³Úé>¡î“óÌý.ˆSxòÇœÕ_htQþ䢜Pœj@ɧݧk^&ÄĖĉ‰ƒˆw$fˆm4ÏÖÿa‚¡åÕ$Ñ#“`+«kG•:çÐW&å0 á³>¡ÖTq˜V¦†©Ä0ÍÊÊÄ*Ī£•µÃÑ.®kªjÜ0†Õ”olª3¬ÆyjkkEŒV6555nnjiÜ2†—)ßÚam—q¶Ë‰uˆWëF¼Žjë°Ž2ícx…ò1¬«|W‡õ”éiê3¬ÇïjHlD¼’Ø€Wë3nLlUê }M#˜+5딊u ?Wqž¯¯&6‰­n®Öx”i¢ñ¸6U~¢Ãf$šr¶¯¯!6'¶ˆx5Éá5ÊLaså cØBù"‡×*3Û\ÇðZ~×7ˆ­ˆ-É_ǸutUGÍsØJ™ŒÃë•Y>;ø\ϱß$¶‰b­Yæ°2+Þ ÌêðiÂçŽý±ñFòmwˆ®ê¨b‡í”Ùä°½2›M†í9ö&bÇ(ÖšÒ¿ŽÊlsX ÌvÓ‰aÇv!v%v#væÕNŒ{ûF•:ÃŽhÛc¼ÓtÓxO »+¿ßô`Øóô$ö"öŽ­@,ŠxÕÓá eúÆðåÄ°HùÁg*3ÔÌb8“ß5›8‡ø ùYŒçFWuÔp‡s”åð!eÆ™¹ âØyÄùQ¬5ÎWf’Ç•™j0|˜c fÝâ誎*t¸H™"‡(3'Løy„c¿C\ÅZ3Ïáe2—*³8<…ðYʱß%.'® >Ê«Ë?F\Uê ËÌrW„'˜‹WÇp¥òÅæ1†+9Ï*âj⚈ÑÊM8ýJãÍfÆ[c¸VùmבXËÙŠ‰ë‰ˆ#^Gmw¸^™1Ü üÎnT~O)v)¹´Ö ¶öHÉ¥yð›`½`‘/„ßë{ùøïÃÁ¶"_߶6 ù*øÞ°ça#ŽDs÷ƒ „F¾þEØ.Ø1äÿßÓ¥¤¤>ükGJJ~?òFðÇ‘'áÁŽÂN OãZ3XX[äÓáÛÁVÂZ /‚/€­µB>~=l¬ùYøc Âyþ…U ÏÚ°[Ç÷–” ÏÃPÙ„»X¨*ÂS5Ôá.U7cxþ¥Ý˜°£ î…&zKö‡ûÂ{&zÂ_2Ñ›³‘jç0|øž.pOÓ«†§›ùö—L¸Oó7ýÄ|†<ìàð{ÃÄ|Ž}ö#ع' ž7#øA _‚ÇÙ.Ga‡3ÆBIYt±=²Elñ¿Xt—r¾9òJðè å·ðè%-T‰mÆ0ôºÂ¢#“Oà¡è,N‹ý:ÕXô_ý¹í +C·eÑGYè‹5…Š4]ŽEo±¦òwxt%¶1üÀ0†¡'áoÃn±æçzøÛ,v;þNœØüm8-NH[Ùå_"ÆIg¡ýø[±4ŠÏBëXô“'Åý³ØWífxÜ;{†=Ñâ ´8/ì©P^"Çûgqÿ,ve‹=ÍâͲáZàþÙó“€b³ŸCx¢{³g‘‡ëñgäè¿ì9äXz¥úú­öÑÄ.ØØN丷‰c°}°Ÿ Ǻy8kÇá ÇÜTIâ<4Ps{Ð ô[TFëæ¡ßO Ûò .øßo FGžx? +]“x9:îÄGÈA$ð¿%p¿GŽÃÃýòn‚a½=üïz_ïØ äøß=t¯Þ`xž<¬ƒ‡ûçáþxè•<œ/Þ`ØY¼—‘g+‰ûìíFŽçÂûòúðûŸG –Äó“„ÖKâ¹Mb×ObÇKbßOâýHbwJb/N.C~ÐÅa[€Ç^›Äó“|ùËnl8æYä¯Àã}HþÓσe•ÄšøèpüjȱV>ÖÄGïâ×BuãcM|¬ƒ_9TŠÞÁG§áãyð‡Ç»è¿CGà? ßëãþû8‹}¬“ÿ;ØØ™Œ ðîxô¦Awäè1t™Ö+@ïàÔ ^€á9 +v Çz»aã`»ãÝð,8‰ƒ½È±Ã†÷7ÀwXß÷)Àûà, °¾îSp 9Ö&ø9 : x9NÅÏN€s3x 9β÷Ÿóþ9N àtÃÞAŽ#À^`Íƒß ÿü‡&šÏwðþÌê7³t×,eÔUFÝeÔSF½ñý}‘û!‡ÿ|+ýñ4y02ÿç73×,Ãe4üg¾Ñà?³Œ×,0? y2òðŸi§âiòLäYà?3Î×,ód´üg¾Eà?³,×,+0¿JfVËh-ÖÖËÌmÂÚ™Ù*£íXÛ)3»d´kû÷#ÿùvâéòaä#à?3×,Çetüg¾Óà?³œ×,çYgÖ…ucÝYoÖ‡õcaÆãœqñ¬qÞ¸ˆx†ó9¹W.ð}øeÜA¼iÜ6î"Þà|‹Gî•;Æ]6 fál(ÆF²Ñl Ç"ØD6™MaÓØt6‹ÍasÙ|¶Àxb<3^ >5ž/Ÿp~Æ#÷Ê ã% dEX1ÄJ±`V†•5Ž'ŒSˆÇ“ÆiÄcœOðȽrŠïKÆãâeãªqñç+¦L_ÝúÙV†ipë/p €0†Ãçç!0Ô¤ ÔÝFÙVŽÖ0Ûä±0"`ÒÐ3æuã´7•Ýn ¼Ã÷m¾ò}>†OàÜ7i(»=B~ ŸÂgðž*wôµž!?wÔŵ^ ¿„Ïá ø¾rÔíkSæݾ5e¾sÐí{ýà ‹ký(£ŸbÁíg¿xä~uÌí7ŸÕß5»ý!£?½TÿÒìö·ŒþÑÜÙÛú7Š#ÿJ‰C<ÄÐçFâ +Œ‡§D|Ç' d5¡ÞÙHbä$$©ÞÎ^Ý’ù¬&×ì–ÂK.¥c³¥˜Ú©þÑÜÒ §·t¦Lz¾3ŒŽ¸e’QæX˜-‹Œ²Æ‚[6Sv‡ÝrxœrñÓA·Ü¦LÝòÚVæÓà–_`!R€$…I)Nù¹)jR– Å”ÝJÚV–Ò0[0riR†”%åHyõž>Ü*Ȩ"r%!&ee nU«’j–ÚêÊn5L™šê3ÄèjÊÔrЭ¶)SÇA·ºëÙPÖ×àÖÀ¶²¡·FÈIÒ”4#ÍÕ{úpkáqjé¤ïßÊãÔ†ïÖºµ5eÚ9èÖÞk¶ƒCneÔ‰ï®wvStÑèÖÍãÔÝ™™dÿ^³=rëå5ÛÛ!·>¶•}5¸õC#ýÉ2˜„“â<Ȥ¢Ám¨må0 nÃe4ÂB9RƒÛ(äÑÑòcÔ{{q‹<ŽD`4>šb‚F·‰¶•“4¸M¶­œ¢Ám*ò42Ì 3É,õž>Üf#Ï!s•úÌ#óm¨˜2 É¢×p[L–p\j¡Z†¼œ¬Pšm%YeCµy Y«â&z¬#ë-7’MÊn›É ÅVUì³l·¡Ú¼“ìÒãëÓm·¦>{È^ª}ÈûÉX˜í ò[ämå^‡Èa ÅMŸú(y‡ã1 Õqä䤲ã)rÚBñ®¦ÙÞ#gl¨Î"Ÿ#ç•Ü.‹6Tï›2K¯áv™\±¡ºŠ|\WšíCò‘ Õ ä›ä–Š›èqÛRqù.ùXÙíKÅ=äû䪛ÏóPSŸGä± Õ§ÈŸ‘'±0ÛSägä¹RŸä¥ Õç¦ÌäË×òûʆækäoÈ·J³}G¾·¡úùGò“Š›èñ³¥âä_ÉoÊn¿“?,ªz`Ÿ¿Èßÿ±PýŨ²#¥4ÀBaè™2dž*®7ìÏ¢9MˆQ"šø5|’Ф4Mn¡J¡u¶”õTÈ©i%Ÿ´4 Uzä 4£’[&šÙ†* rVšMÅMôÈNsX(r"碹•ÝòмŠ|ªÝò[Ô ¤…”| +Ó@ZÄRU¹ Ò9e nÅ5õ)AKÚP•B¦¥ca¶2Z»•µ¨—C.O+(ùT¤•h­l¡ª¢u¶ªõjÈÕi e¯š4ÔBQ ¹6­£ìV—Ö³PÔWõðèÖÀ¢Þ¹m¬äÓ„6¥Í,UÍ‘[ЖJn­hkª6¦L[ÚŽcûWtë@;ÚPuBîL»(ÍÖ•v³¡êŽÜƒöTq=zY*z#÷¡}•ÝúY*ÂûÓÊn-ƒÓpU7Ÿgˆ¦>Cé0ªáÈ#èÈX˜mòh:F©ÏX:Ά*”O'pœøŠn“èdª)ÈSé4¥Ù¦Ó6T3‘gÑÙ*n¢ÇKÅ\äyt¾²ÛKÅBäEt±²ÛKÅRUnË,êË‘WЕJ>«èjº†®µP­Ó:Ûz‹úät“²×fºÅB±yݮ춃î´PìRõðè¶Û¢¾y/ݧ䳟 }j𠑘P`©¦˜A`ù + XY`5µÖØH`;v&0\à0£Fœ(pªÀ™ \*pÀM· +Ü-FͲΈ +½! Œ#0îì— pTÕÇl6à&@7 ! ,Ýl6›lEATÄ"(‚_ *‚Š| +¨#* ~!~# ~‚ +Ž­S[[;uÚê´u¤µÕZÛZkíXíØqlk[kï¼·gÈø22ÓA¢sÏÌûÝÿž{ßÝûî»÷¼s•=•‡øm¬ÏˆDMvÊBksˆô0],=M÷¦&¯ËÆÌÓ_ŠTÆôß‹}Zm\z™®Ü/–hó^ÚOoee©²Ì÷[Ÿö1O­”šNxã ôPék:%ýTöÕÞúû´Ú9ÔtVSy¨¶‰û´Úœ”›n“ +•åÚ¦R9@Y¥¨¬VÖ(k•ƒ”ƒ• ÿ^ës¸ 0=²SVY›Ñ!hµc;°Úüã¥ÆôqÌ_^O”A¦O +8Ø<'3»y}J§bmN“:•Cô‡ú´ÚÓe˜é³$©r˜¶I)ë•ißc-gI½és%mzï0¯çIFeƒÞÛ¨Ì*›”ÍÊœ²EÙê·´.fäõ‚€MæY°Ù<—†0gµ+¤ÅôÒjze§l³6WËá*Ût„G(‡+TŽPŽT¥¥í··~®í”íÍ9ÒôºN9ÂÚÜä­Ç@¯—£Lo”Q¦7{«2Ðwcž{äh•ct´c}Zí}rŒéíØ}îë§ÍÑ~Æ+UNPçû­Ïkž‡e‚é쌼~\Ž7½GNPy¼ö6Qy¢¯­ÍSr¢é§e’ég¼]…MÒö_óiµÏÊdÓϱÛ<›¬m¦(§*OQžªœ¦åVå6åvßo=´‡p«Õ^ÓÛÌ¿º·›ÿú¼ßü7Ü¡Žûu ø´6·|Ð<BøV>¨÷>¬|Dù¨r§ï·6…𫽣5ÿݸÓü[:p—ù·Éc*wé¿?®|B¹[¹Gù¤_kwí'L?ÂÝVûh÷Xícò¤éÝsô§ÿõöÆ«íÒÝ;¹ü†ë5´wùH„ÓXÁBJê"œÆ +øÖD¨‹p^)à ið~£‰ü"p÷7ÐDÚ'Èáh.2Ü«C³^"dÀÑUíRø"%ë$JÔ,üåJï7úeʵA›_PA¢äò…¿¢dœQ¢Qá/)7ú5Jâgts ykQ²ÚBž#Bœ‰n 4Q%Ê/䙢¬­ï¶Ë!œ­z¼/ã|SÄsÅgŒ¼¸ˆqÆÈ€cãÐŒ1FŽ#G.býÆ&mX¹±É"ÅcÛ¥ã‰ñb䘽C1»¨˜}Ö‡sbÉz®·ý×mhN%æú+š¹,!F”¼‡Ny>®¿ ™×’¿q1þ>Yúã½–üÍ «ø)ô'hNL%d;¥Œ­Œ9/el¥äËeŒ³”´”<·ŒÖ»]„æzàªAOJ‰r¥dgýÞéËìËzìÇ\õ¥ÿþ·ËaŒ³ÿ'\ÿB3W‡²$âk^ŒjP•U6)›ô°œ9sæl?Í‹^9U­âÎ|Îœ9ë +æùÚTPŽT¥¥­£"}Ö¼µJÕuÊÕÊ5|\Îœ9s¶æE¯µªÖ‰;ó9sæ¬+˜wæ»AÕzå­Ê ÊÊÛ”›”›•·QƒsæÌ™³Ï5/ŸºãìW`EžÙ¥£H ¡z¤Ò¤H/¡!´ÐCïJèÒ¤KGEE…€ˆ EšŠQAªJÐîÞy\žÀ¼å½?;|³ßÎí-ß,ûv±¹ð÷ÿ_[Æ÷Ì<“-2ýbHø"Kh -¡= Íø"[ß[Ozæ]´|Kïð½±5W½2òY þ•Ï:på³Þ꣭~øWž›Á¿òÙ +®|v€¯äåºvoéÝ ¾¢7¶fœ›à/™W&‡­þøJf®3u |Kï ð½±5ãäœÉÄU΂ås\ù\4#—M|%Gׯå*ø–Þkà+zck÷ÏÐ-ð¯|îm÷Ä7שò܈“0²``"«Ob<Àd¦O¾’elÍþ·Ãà_ù¤2¦_ÉêßÎb:ð©L0|KoVð½±5>ÿ˜ü%“\à/™äW)`õ…ÀW2sý: +ƒoé-¾¢7¶fœœ’à/™”ɤœA°‚é+‚Ÿd®ï¦Jà_ùT5Ö_Éêß¾kÊ:²–¬'P"$ˆ²©lNIÄ1JÌ– ds±AlmeÙ^•á²#¥ÛÅN±Oì“UqRœç(=¥•=d7ÙSö¦Ôâ®X.þ¤@ Rˆ)bµX*¦p<3ó(Ð`2[Z ÓËÊNA2/åV¹e~)ÂÅP1‚òRN#N¹ ¦²Ëº²¶¬/ƒ)±Ê&›ÈF²™lAIE”-æðÓ`ÙBD‹hÙN†ÈT +ÉPJ)vˆ]b¿Ø/CUN•KœçÅyÊ@éd˜ì.{É>”FÜ+Ä_”I¢”bªX#–‰©ÏBy”É`2%[:™Qf)e“ù(Ê# ˆ‘b¸&"(å2â”Ç`ªµj£BT{ª:©ÎªÕ§`jD[©5¤Æ´Ù6jM!Ô†ÚRw +£^tzPOêM‡˜Raª§ê­ú©j¢Âi § +§IhM¤É*BEªQ*JWÔ$5…fÓšKËh­¢Ó´œVÒj:Ãì ] Kª€*¨ +©"ª˜*®J¨RTjRmŠ¦T‹êÐFºbÌâ±ÁšQ jN-é:ݤJi7u¤NÔ…öÐm3ºÛ`ªŒ*«Ê«Šª²ª¢ª© +©´"êGhõ§4˜FS¡±ª¶ª£ê©`ÕX5QÍTK•œ*ªT4•¦ÓLšF3h–J¯h>-¤ÅtŒÐ"ZBÇU =f0€;ƒ\¿@ã7‘‘ ñ"€ð£SêL_ pã.$ ¹…Ï4š–2@FÈYàY‚lrB.È y /䃂<£<Eày(Å¡¼%­7]V +^„ÒPÊB9(/A¨•àe¨ U *Tã¯@u¨5¡Ô†:PêÅx?6«ç™1­£!4ŠuNchòˆ«'XüZb>¡I!$‡ž‚§!?¤‚ÂÏ€zà[M­¾%£ãUdz֌6& ±"m¡ÅÚ3:0::æ‡B'‹u¶ú.ö³®6kÍÍ>5…4Üg†ìÌX°é[˜¾›é»3z@ô„^Ìz[kô±Wëkõý¬¾?c€ÅÚ³=ôn6ýÆPá0œÙëY„=+ÒêGZý(Æè‡þ»,ÁüÃÆX}ZÓxˆ7£`¬ÍÓAzöã`¼Ûœ Ž¯NøÇwgOߟ|ó×j.è ×ýŽ2ßFKÍ7QZ²pmäêž™ë{V«Âgw«ñù9¿‚f•/lÖù¢v¥®õ®ú^ÖRâ¹Æÿ³Â×çlÖ`£Î65ïÊ|7·â{¹5ßÅ!æ ÜžoÞŽæmÛ™oØ®|S&ì‹ç}1NMwÓ÷ÐþÛxÒ,ÌfFmíÍ5µ/WÑþ\=r½̵ï~åû²£6‹tDGƲŽ¿Ù(mßôQ¦ëaþ8튽cîUÊeL?‘1Ù˜ÄxM»êø·©6›ÓaÌ„Yð:̆9™ ó`>÷‹`1,±f½ÁXÀX¨]yüÚ›£KµëÒmË|9¬`¿VÁjs¼ÆÃü·´+öŽ½côŽÕ¯…wÙ¿ÇXç6ÿ}·ñÚ3ˆûÐfÁzØÑ°6ÁÇ°™#ŸÀø”ûmðlw{o«våñk;bŒvj×ó¤Ø.ÿÜíÙnÆ^ÇxcvÅÞ±ýþ…Û³ŒƒŽñWŒ/‡´«ŽûÚÁÛì›Ñ®PµÙ18Îþ[“gúŒSŽ¹§'ßkWÿvÆf?ÀYø~‚Ÿáœ‡_8r.Áeî¯À¯ð[×»Wµçô_Øï~Íf×µëÒm7ü¦Ín™þ6ãŽÉîÁŸìï2þЮØ;ö×}îúc2azÉHs>ª¸®Œ¤=·Ç0Lì1šÄôI)ѧÉ)ã´r2ݹ=Ö¾ÁÏtçôŸìËNße³ÏuëÒm¸ÛÁ÷Øl¯é÷1¾0Ù—xýÆ~ÝŠ½´/‡ü+üÚb‡Mÿ ã˜Ûü£q^ùˆîÜk_Ž{Œ~‹ß±?ÁøÞ=Ã8Å8§•OêÎí±öå›Åñ'üÏáyý‚ð^Æ+ÌÇëxÃñίŒß°ÞE¼c|Uw†¸/7ÝÆ·ÜÆ·u+Ôcø‡Íîà]¼gñÿ±_æñUTW?ï$ï%äe!„-ä±ïû¾ïû¾ï*ŠE°j§T¢EPTÜPÀRj© "" ¥T[mµ–ÖªíçÓ?ü|ì§ÚZé™ónŽó`¦/!É»?sNæû;ï̽™wïÌ7¾«f„Ú+Ô㈶Ù8ŒW‘_w…z%`"&a ¬Iq2¦`³©t¤é®Rü¤[â ¬¥¢Lfm:²,çëè®6†óRW¢lݵ¸É1G¢z˜«»Û +ëkµ%nÈÌÓ=npld‰ë®Æ=ŽM,qSf3Ý5¹Á1ß7×]{[XâÝոDZP¢–XÄZŒ%º«r¬6„­°uLFj#Q[l§ûº£VÛ;Äh¤ŽuÂκ¯;jµ]°+v‹ÉHÝ%ê=Y{aobÝs`[m_죑úK4ê¾î¨ÕÂÁ1iˆîk-g½Cc4Î0‰†ãÖ‘8Š8Z÷ 8Ô;&F㌕hŽ×}ÕQ«€qRLFš,ÑœÊ: §ë¾þˆ +gYâ8gÇdÔ9ÍÅyºç jµóqAŒFZ(Ñ"\¬ûºm+\f‰—àR¼)&£Þ,Ñ-¸œõV¼¸B÷|H]+-ñíø½z‡D«pµî9ˆZíøýt—îk-Wµwã=1éøCÖ5ø#⽺ç@êºÏ¯Åu1u½D?Æ ºçÀ¶ÂŸXâûñÜ“Q”hnÖ=¶>¤eÔ‡mr[èxD÷|èu|Ô?¦»÷8n•èq‰ž ãIÝ•éu|Ê&÷4ÛtW¦×ñ‡ü³º+Óë¸]¢JwâsÄŸê®L¯ã.Kü3ÝÕ¸Çq·CþyÝ•éuÜs]f/î#þü¿ïÝWT9Ž¿pÈï×]™^Ç_:ä_Ô]™^Çùƒº+Óëø’CþeÝ•éu<äEwezÛäŽÐñªîÊô:µÄÇtWãÇã½&Ñ :^×]™^Ç“6¹7è8¥»2½Ž§ògtW¦×ñM‰Î*} ÏÏë®L¯ãKü¶îjÜãxÑ!ÿ+Ý•éu¼t]æ×x™ø›ü¾wt_Qå8¾ëÿ­îÊô:þÎ!ÿžîÊô:¾ïÿ½îÊô:þÁ6ûîºt;~èÿ£îÊô:~äÿ“îÊô:^qÈÿYwezÿâÿXwezÿ*Ñ'ø©îjl+ü,æc*ëe “qÌx¦Ÿ`&0™IÌÌšÌdf +3ÈLe¦1Ó™ÌZÌLfmf³³.3›™Ã¬ÇÌeÖg6`6dæ113›0›2›1ó™Í™-˜ÌBfKf³˜Y 1[1[3Û0Û2Û1Û3;0;2;1;3»0»2»1»3{0{2{1{3û0û2û1û30213‡0‡2‡1‡3G0G2G1G3Ç0Ç2Ç1Ç3'0'2'1'3§0§2§1§3g0g2g1g3ç0ç2ç1ç30213—0—2—1Øž5'1V!ãe”øú%pd@Ú$Fa‚´¬QåL”±’!Iâ`™XCÚ§•‰5¥}F•0Y¾?R$ÎrdPÚÔÂTi™Á4Éç–›éÒ·A2CFÉS¬%™Æå`¦ôjZ&Ö–öùeb–´oSÖ‘q ëJ¦( +³¥e‰bŽdZ•›õ¤o›(Ì•–íªõe”l ùNŽl(mºDaž´ìVål$cõ0ïk÷*›Hû>å`SéÕ¯’ÙL¾y€b¾d9²¹´…-¤å°H~D¹Y(}GU![Ê(c‹$3®,–^ÊÄi?© I¯)1e+wšbkÉÌ(ÛHûYl+ù97Èvò ó¢°½´\`®O*^ÁŽ’_¢ØI2Ë ³Ä7+v‘Ìrè*ñmæ*¢âÛËÄîÒ~¥ {ÈÙUŽì)mî,{Iû»lØ[ÎÞc®O*6¢°¯´\ãÈ~ÒæÞr°¿ôZgÃrv}”–ÊÁAÒë–³‡HfS98Tz=…äå–—ü£Š#$³FJüDGIþ)ÅÑ’Ùf®‹*¶û+gw˜k¡ŠŸƒñï²á9»&J¼Ç\çT¼&Kü‚¹©x?L•øEÅi’9Ó%~9‚3$ÿŠâLÉ1W#µál9{Ü\uT|æJ|Ò†óäì)˜/ñZ{Jã³°Pâsæ +¤â °Xâ‹æ:¤âK°TâË´•ÆïD²çÕoÖ¾võêÒG @ó—ó/Òg|I÷’Î4 ŽÞB}' ðÓ÷Ä7&½‰´€t5i{ÒwI·H+Yàߤ´BþKJ÷HÂtÒÿ3 ‰î€Ä:¤HWœC/Š‘æ‘~b@p-@ÊpÒI·J+l HßF/y I¿ }Ý€ ºwÓk“Ò]šÞÀ€LºƒkÍ'ý'éêÐ=“Õ‚t?ézRúïdm2 .½ d}n@ÎÝÙcIï!BJ¿Ý줟‘¾i@}úÞÜbRºÇr;‘"Ýj@êŸû%)­èõÇ^$=`@#Ú-òrHiUÏkd@šÜÆ4n“/I?0 )ý.št7 ÿ0@³4§·¾f_“Òÿ1髤{ (Dzq ú +é.* ï/¤_dÁ8Rº¾‚C¤“%¥_cÁqÒM¤on&=m@Á Ò³ô™ÞÄ +C¤tÿ®#=OúZÒ<·ìGz+é¥O“ž&ý€"z6+šJJkSÑIÒ+ÅÙÓšYlî&ý˜ô+ÒOIéÿZÒÀú•Ðu•%¢'üÐ"ÒDÒå¤ ¤+Hƒ¤wÒjh5)½C†ÖÒ}Ú ”ê Ñ›Rè~õùAõy3)Íèa¥t¿†èÝ1ô˜ú¾'iü¯Iw’R]¡]”§ù Ѽ†èþ í# ¾¤ê8¦ô0i2éqõù¤ú|Š´é¥oÑõÒ¼„Α® ½@J;rè")Ý¡K¤·¾Oz>ü{ ÄA<ø! @³Iœ¯n´št$ë.Â3Ï<«tK©Pï ¤ÒZV,²J„tK•ÆÑ™}ÜiqJã™~ȆkwÓÂ;‹{wÓÌ¥bw¡gžyæ& V¨w*¤ACÒVPºÇ©uÎ\éèZK[ŸZ¡Ãk·;Í/Q:Ó:]úà6³î5[yæ™gÕÍ’+Ô;…Öùž¤#lÎU‡gç°ÅÃH›6Õ¡þÒgÿq–sÕám a +XgØz=~‡>º- ´t¿ž×ïã‰jw÷û–gžyöݲð>žrƒ½ƒôƵÀòÙ+#>…Í\«#wN÷X䛟[÷Ï<ó,¶f>™­‚ÈUÌ´ðs›;-†ÄágLwZ骞ÇÜÖgâðÜ»ý™øÛ3¨·Ï<ó¬-•™vƒ½Ó!6VZ-Uo>ØáÕ7lq×<»Ñü°ÌšŸ‡o÷ 3Ð\WtKÐ]€gžyV%–{Áî}Á½¹Òûá XŸÃÃOáàòçpPOâžyæÙwÉR*Ô;HÏñG*©’ª5_Ä'„s`¿‹ÄÃÛ}Üi¥;^xwñÃe¸vW1-¼³¸wW1ÍÜY*vzæ™gn²`…z§B¼Gú7(]ƒãä)ÚOGþ.m}j…¯Ýî4¿D:às°®Õá,XVl÷Y’%vçnâ™gžÝˆÕŒÞäÿX2=»}u]ÖçK°i[ž§ÃïK²iSêWï>ëì»®µû }™ÿc¿:À¤(²ð Õ›w6°Ë²l–Ì’3KŽJ¸SA%(q &r’œ³"ArÐ;EÌÞ‰x§`:ï8ýäH +HÉXSÝÛÌ.3Ýß,*3ÜüõÕ_Uﯪºz¦ª\WØõy41wAFiœÜ˜·~ƒ…g§ožš·÷ß €|Š# í€(Lwi#f¹¶ŒÒ¹Wç=9}y¿}õ €þXÈ›V¼»˜ú½Í7„u wÆú Ó7‘»~úÝ8ëX­½Ï߉ožœk×À¥8º€Ñ1‹­~³¹üþ@ì úî«Ã—Ï·\aW¸y2û.{ÁÍ“Íyî9O6ßFÈž@ð» sÀÝï"åô‡ƒ?ìýv aÔGKc¶ÆJ/ópý–óeØß‚p"øË[“«3Àfkã!päý% Kÿ; yCÂùàGkKädW€¿¬¯s] ~´¾6_„»a— RŒëÀÞ n?š­GMÿ·j¸üå_¬¿wÆàGo?çgÜk¿ühí=j¹ÿˆ/À_žÆ +„ߪqŸ¤ï\Tê÷†º_ÒÍù}ÄxPV”ù§\e=*'d>)ó)™OË|Æè笤ó·ŒrÁP/IºrË(WõŽ ]G!É$m,sˆÌ¡2‡É.s„Ì‘pW¼rP5XŸÀÇð +ZÝ¡ Æ nM¯ ÁÇøgÚDoÐV¸†!7 'mÇzvÒô| +½`wEFc,ìÆ´ã¸3í¢Ý"ŒOòiúŒ`Ú±(ÍÀ1˜F_Ð7´‚¾¥¯è?ð9üþ‰%°$åÀeøŒ†b&çÐ…ƒÏòy,G?Ð,œ@ÿ£ƒX «â8:LÇé( St†bMèMç°.N¢ t™.—°öÂl€ é%èƒi8Íá~"š·ñ/|‰aSÁ–8™ÃØÁWø¶Æ{8b\áX.Ší±¶ådNçTø¾‚¯ñ>|;A>„i$våÁ\œKq†Hå=|C —犜ÅUð®ÁÕ¸×áz<ŽawI¯rØÁÃEYìÉ ±7æÆÜúA_è!£F«aA›i mƒëŠáòGöíÀHzŸÞ¦é]x +ž„Ü £0 Á L µÏ]èúT„ó)>CŸc*&Ò^¸„I4Çb:}Iÿ¢•ôoúšöqsƒa(f`)ê Ãh–æ¾ôˆâs|ËóQÚO³q" C˜…Õp<¡Ÿé¤Ót–a-Nç±N¥_è +]‚‘0FÁÓ˜èeMhÍåþ"†ßä‹|™5ÆfŠ­p +‡s_åëØïå8„}á*â$n°?¶ã.Æi0ÆÀ8¼;âƒ0Æ.4 +»ñ.Á™\R¤ñ[q®Ä•¹*>Ê5¹:·äÚ\—ëk¥yÇ<ŠÖs6lçVÌGøGžÌSñã™Ãy6ÏùüžçS/àç)’—òr^É«yɽ§ð4¼ÌãyÅò$žÃóx?K)ü…óB^B^Æ+x¯áÅ‚EeQETY|€ò!çFQêjº¾3:÷y†ám¥àÛŒ¤ÿ— 1ª •wC„"ì%Ä­5Ü£„[k¤ÅQëQ‹“9ì7_™@ +¤@úãSПA ÝýÉ…\ZñPØÂ7ÍzQHRe2¤äñI…´›ß„ŠYÞâœÐä/:Xž¹•9Lž²Œ”óˆRgp¬œÏíÆ;çg>QÁÖ¥°ñĽ $«TÐ÷’d”ÉŒO1ßFÁâÓ+ðü‹çk—ð2>Cq)£UÒëñ3óµK{_&_»¬—ñåW0Z彞Å|íJ^ÆgåkWö2¾ŠâjF«ª×󯞯]ÃËøšùÚµ¼Œ¯­¸®Ñªãõüëåk×÷2¾…– mãyT+nbßÔBkÍmÇoa¡µ„VªlmáÓÆ£râ{mÆok¡µƒöªì`áó' íÏpŸíóßïQy@qG›øNÚƒðíø[h¡‹m|WJ7ÅØÄ?j¡u‡¶ã÷´T{ÙÆ÷ö¨ä(îëbéãÆ«ŸEßýa€íøYhöñOZªOÙÆô¨ V<ÄÅ2È×P‹¾‡ÁpUŽ°ði¡‚Ѫ|ÚÂgŒåÓµ}þq• Š'ºXÆ»ñšdÑ÷d˜b;þT mL·Ÿa©Î´ŸåQ™£x®‹e¶¯y}?ÏÚŽ?ßB{ØÆ/´TÙÆ/ö¨,Q¼ÔÅò¼¯e}/‡¶ã¯´ÐVÁjÛø5–êZÛø<*QüWË‹n¼^²èûeX§ÊW,|^µÐÖÃkªÜ`áóºåÓm´}þM•7oq±lvãµÕ¢ïmð¦íøoYhÛa‡müNKõmÛøw<*ï)~ßÅò®¯,úþ>²ÿoÚßácËX Ä㜤8Tq„â(űŠãQœ¤8Uq1Å%—Q\AqeÅÕ×V\_1éã®Rãª*)»ÐÙT4³$“šò ÖÙTC!ĬGÈ–!Ê'LgS‚p³+}W>‘:›j<8Ìzç„CùDëlªIcÖSe¯NÄ(ŸB:›j1ˆ3ëÇ+Cœò,¬³é“ip‚i)›‡‹(s‚ŠJÔÙô¬‡‹šö,ƒ“”¡¨ŠJÖÙô©jpŠi©apª2¤(ÿ4MŸÚ§›–zò‰HWžÅ—Ðë¦O¶Á%LKcƒ3LK3(©ª*¶”âL½nú´ÌÙ¦½M.mÚÛBU-­ú)«¸œ^7}:\δüÊ~uÀGQ|áÙÀ!Dz“*=@ ô@è½Ho"Mzï½7)"H“& *¢(¨ˆQ°7DTDEA”ß~».·³w?.üîöùÿïýÞ÷Þ|™÷ÍÜff®‰¥,¦½¾Æô)…gË˹է“‰e-¦«‰1Ó]”CƒgË+¹Õ§§‰,¦‰±ÓOTD‹g+ãŒÜê3Іq?Ć•-~¸þÝÒ§2Æ© +¬fäVŸQ&V³˜±&V·˜ ¢Òêx¶&0ÞÈ­>“MŒ·˜iÆ'ÝlŸt{qbRÒŠK¨Ýœòc[R{9å;)® vÊwQ^|MbÒíÉk’¯£œÆ¹]›|#åã(Ö%ßLùDŠ È·Q>œ¢^k;å£(6#ßAù Šz­”¥¸‡¼wbÒ }ì½ä})O ˜H~œò-ñII…ÉË'&ÝŒ 8<ŽòpŠ É«Rž‘"Í%)žòÌ—“'PMq%ù2³ÿòÆfÿõäÍ(¢¸‰œæu3+Å­ä»)§•ÇÞ–‹òS‡’ ü$Å‘ä)?-ð ‰"”Ÿúw#ÄhÊÏRœB^šòsgèï$å(Î&Ÿfæóõ÷òKéïåW(.!_@ù5ŠËÉimou¡x]-å(v#ïHù>Š=È3›<½ÍZVÊQìGÞ‹òÑç¦ü(Åaäù(?!î|Œ³Ì8WŒÅ8EŒóÃ89ŒÓÂ8'ŒÂ8"Ìç3˜1Òï¿üÑ×"³H)3ÑOP}&Ù̘̹Ìhœ\ùÌV~3gO!‘RVA?SÆLŒÓY?gõù”4£qŽ–5[1f4N¿X³UьƙUE¤”ÑÏÑ”1ㄯ%ŒùÔ6c°õÌV}36”ÅÉJ “ãå ¹@Öõe ÙAV’q²Š¬*ËȲr•,'ËËÕ²¿ ÉÁ²‡ì){Ë>Ô³¡l$›È¦ôT¼¬%×ÊYG®£‘&ÊIrŠœJ£Ž#åh9†Fì$;Ë®²ÞJ¶–ëeÙVn Š‹äb¹D.¥ê³äl9WÎârtc.ºÆûKøU:æš ±j¿ëèܼxÎ’˜Ôçé¤ù÷÷Tš»þZófé¬,ÜgŸôt:E"ËD»º³ÐïöÃìhå°zæ4c.ºßç1ó|÷¤Ë?ËŸÌþhW¾Ó*,äד…鮯*‹Ñ½¿8í7í5ž|)Úsü¥ íMÉ«Cwzo|yºÁ«\,ím•h_«L{£KúµÚ˜Îƺۡßj:uÏk<› &"¶òò·Žä3D;vÿ›V~›Ý­O úmOûù¿íÚ"MoQ7 ãÔ£ȳÝ@4tuD“»öi*šùü[sÑÂU½w·h`ÑR´&ëÉ6ìÚƒemÉÛ#ë :!v]DW[Ÿnâ![»»xØÊ{ˆžVÞKô¶õë#±µûŠ~¶v1ÀÖ(Yù`1ÄʇŠa¶~ÃÍ8BŒ´ñ£Äh[{ŒÇ*sðUtÚx1ÉÌ&“OSmfkM3­|–˜8G̵õ™'æÛÚÚÈSÓY›†bZòttOKO1=2Љ[YÝÉôß©Ñt3Óïe9è.¦ÿ>Õïayé–wŸ‚tÛ)L§uQëNR·Û…~_ÐïwîUè6 ïÒú­Ú؇õýW¿M×Å.Ö@¿EÓ~"è&Ð{†¾7´¤³Vÿ?lCï`;z;Ð9ÛÉ|ûô7NËô·K«ô7I{úc>ð¦èoÈPj £÷Aôo }×ÿ_ïërçÍïÂûÿß² V6‘]K(™±‡Mf×j6ÅʦÞó)Ѧ9˜éìšBÁfxeg&kŒ”h³¼²³ÙuqÛ37Ùc¤D›ô¼ /ú]ØȲëã²EÀÅ +û˜G¾D,eWé¾-s0³k +[î•}‚]·­ðÊ®d×ÅmOWy0kÉW›ù:ò5â)v•îÛz¯ìv]ܶ¸Ia7{äO‹-ì*Ý·­f»¦P°g̳äÛïòÔs캃mÏwx0;É_0óÙõqÙKæeò]wyêvÝÁ¶ÝÀ= +ûªGþšx]¥û¶ø†“H¾Ï£ý¦ØÏ®Ò};à•=È®‹ÛÞ¾­°‡<òwÄav•îÛ»å=öyÚŽd”£ìó´½<Æ®#Ôì8ð»ŽP³€*ìGùÇâv•îÛ§ÀÏösü ñ%»J÷í+¯ìIv]Üö5ð”Â~î‹ÛN¿UØïØuqÛ÷À3ì:BÍ~že×jö#ð'…ý™]·žWØ_ØuqÛ¯åû<m¿d”ßÙçh»è•½Ä®‹ÛþðÊ^f×Åm¯$ó©«ìºƒm×€%ó©¿ÙuÛ®»Zíû|ýµ›®V»Å>_í¶ƒIbצ î)L s0©¸5…‚i©ŒäÖ +¦¥±²´ÜZBÉ´tVέ%”LKï`"¸5…‚iLFnM¡`Z¤ƒÉÄ­)LËì`¢¸5…‚iYLVnM¡`Z´ƒ¹[S(˜–- £dçžG MËQrrÏ#Ц岲<ÜZ "7·SG^+ËÏ­*òq+0uàV è¹Ÿ[©£ ·EO!n¦ŽÂÜ +=E¸˜:Šr+PôãV`êxX\aKxä%µÒlêJ±U.,«°1y9­›ºòl•cÉ+{°•<ò8­*›º*l•««“Ç{°5<òšZm6uµØ*'pUN¦Î:.׫Ë=c?uÖs¹^}`…mȽ>Ô6r­Rc`…mʽ>Ô6s­Rsî¹ú©³…ËõZ[)lkîupèl|еzmí¶=÷:8tvvp­^'`g…í½Ý€]]«÷°»Â>̽==\«× Ø[aûp¯·iû*l?n]ܦõPØܺ¸M¬°C¸uq›68La‡sërè áZ½QÀÑ +;†{:ÇǺVo°°!°ðöË5ºŠêŠã;söÄÄ›á’Iï–ŠV•¢€ „ ¯$„ðÞâåM, Z`ñ”7>KkÚÖQ¥•å¢-¶´PÛŠµå˺Šô?‡¹»\œ”OJ2 û÷ßsÎá2{îÜsöÎ5ìo8Àp ažá Ã|ÃÁ††C ‡3nXlXb8Âp¤á(Ãцc K Ë Ë ÇVŽ3¬4o8Áp¢á$ÃɆS §VN3œn8ðÚp¦á,ÃÙ†s çÎ3´ÈØNJb‹Xb&-qü‰Ä¨¡Äq‰cé‰ïÂL$Ž÷à2Ûă±2ÛŒâ$NÀ§FâD +IœEë^‰—•)dKœæÁ&2›AM%ÎŒb3Ïö`s™Í‰b‚Œ·õ` ™m_+eMGJ’øL–ÙÎÔR⻑}$¾‡R%þ¶“½wõ`ºÌvó`†Ì>@­$~Èe¦Œ|Çe–Œ<ì<37îE­%îã2GFúºl##¹Î“sãÔNâ<çi¹q>u¸ÀeG)tÙIFŠœççÆÃé›—à)Fâ‘ô-‰Gã‰FâRê"q9žn$® {%®Ä“ŽÄè>‰'9OÚ§ÐýW9ÏاSw‰«ñ¤#ñ,zPâ9.’‘y.{ÈȂ뇘‰RO‰kðmDâ0="ñ’ZÙKÖ,«•½eÍŠ[°¬\u >*+wÞ 7^Cý$~"Š¹2¾.Šýe|Þ H¼ÑƒeöiæÉì&’Ù-Ì—Ù­.ËÈv—2ù;DFžqY(#{<8Tf÷y°Hfxp˜Ìòàp™}.ŠÅ2þBKdü¥(ŽñÃQ)ã?v9JF~âr´Œq9FF^uY*#?‹b™Œ¿ÅrÿeÇÊøë¬Ù7=8Nfßò`¥Ì¾íÁñ2û.vŽH|‚&J|»H$þ'Ëì©Z9EÖ¼OS%>íÁ*™ý§Éìì[‘øµr†¬9{ VËÊ?×Ê™²æ|­œ%k>¬•³eÍßnÁ9²ò£Z9WÖ|\+çÉšOz\ûâÉ_\»ötô$ôЗ¡¡‡ÝëýЭÐÐíЃÐmîõnè /†)æ +>öô3èW?‡~½&Æù PK3Î… +Úieôjèbè:(ö^½ººŠwM?¦F[Ðð|¦ÆçP¢voüG(*ö8œú±‹¡¨µb—BQUÅâób/C×Bq?±ßSÿï]¿ “SÀNs]Š3ÆFobã±Ñ‘Øx‹lt#6Þˆ}ÁFÿav¯±ÃÙèJlìe6z»®~÷¢Ë°±OÙCKÑpYPüîCèÝlüÎmtñ8ëmtñ¡èâQÇØè⑇]EÍb£ˆG½bsç‹ÝyTþ¡¿CQõ‡ðmÛ¨øCÇ¡¨öCo»ú{ª>´Šú=„3ÄF¥Z E•Âs¶Q¡‡AçCk ‹pŸ Ð SÓ£(Ñ=& âNDW’ˆZ!¹k˜Zœ„vsuÆ‘OKt¥‰øZ"ÏÄõPt‰xþ-O…) »h +žKÒÏ¡;ÔŒüRѹ&£ÒKE¿šŒüRãÜëx÷iòRèèè¹0µÄ™›Öú"ïY +ªöt¬KÁŽ>À‡ø<ÿƒ?Õ º‹¾Gß«»êº£î¤;ëÍ|Q×ôD=EÑ¥ºLWðgº—î­Õ¹ºî®Ðéžz«~PÏÓóõwu^ §ééºZÏÖ3t‘¦‹õH=\Ôy:_Ñ;ô ý¸^­×êuz^¬—èez¥^ª“ñ>í¡ëõ¹ã á)ðÎðx¾ +¾Q?Ì2~C18I6¸á~sV(CþûÕÜÄu…ÏÝÕj׋%cˬdù%Ûhe Û imK<ì£d`ÜCÃ+eÚdhÁÉठ”W  až¡‘e âMÒç¦m Ó„”Né8PÚI“„tBŒûí• ´ãÎtú³}³ç|÷œsÏ=wçÚˆþÜ¿ö¡9{’á¡¡c燆N›_ëz‡¿òdžg˜}IIÕhAíÔhù®¸^7kd_×håRæò+|…¯ðÿû=æߺу±%G[î÷0S¦ºÄÃ=Jü=*u2§:ïWá¡Á èYgêY¼k%©²Ò±šŽ‘ÎGš $˜bœb±VÖ~߬~½Yu7« œj¡SÍsªIöÝ[26gPè±Íê–Í°}Ö_©k Ivëx@+¯¨Ñ’lC"Võb"vDkÈf=äµ0ìh-yS¯¦×Ï1?×ßf~îÿVB÷bÚÊDè‡P݉ÐnÇ2òqçÒD`ÖI‰X§ÖÆÃ9«(¢˜zB"´î²DÅE­ÁÁJÈÇŠ`.¤w{(Àà †µ5+F¸t …y“Œ%´{ë“;¡ÝÕÛµ;¾¤–Ï|Iêš7)IhWu(c¬ö¡Þ©}jÖ~‚ ?Ž hçõåÚ© >áP䌙2?ÛeØ´7ô­Úëúm_ˆ»÷x¾1®¶{a<¡m@š•¾${"¡=0W°iËqiE‹¶æ]F†æ«¨Õf맵Çôg´Y©•fD¸š®ŸâÛ¹e¨ ùZƒž¯M ]Ôê#ØIB«3§'´‰©Å«||{•¡GµrlÏrB+‹UjX’´ÇŸ’çÉ˵rµì—‹å"y¼œ/g)™Š]­ŒRÒE±*ï­’•úƒQn~¦YV»©¬SZ8· ¦R_±À¯V’ ­‹³9«Â¹áÌ£njdÑ5,ËGúåÇw´Ìž?œ?7^e’¡ü¹-ñêÙ®¯Í9Én°¢‘“캩æbìf7¢íÜîŽÌ›Û´mN’].I±d~Ü0×aˆóЂç!/L‘“3ò5ä5óà•­áaRa:² ,b*3l€t¦ <ì¢Ö·Þôy½ÚÍéÛc,Š$:ŒŽ¨´¿wcwô_ÖÚp­î#$Ûh&ë6×êŽàŽšî^s­¨¹VÔ\«×èåk™{‹.™Ý¸r„ß7Ÿ}¶såÊNúç·m¥ÕhV¶øþ™ÊȆs@¤tœ¤p1Fià€ÃF£h”f#°ÑhÀB€LvÀB™äwÒäÈdØдLN ¸›Üãmä¡ð)TˆuC‚7 ØpPð6Qø“·“:áب‹ºàب‡Ñ €ÖÑ‹¨s=õ‚opFÒKàߧÍdþŸ³|+ Ñ6Ú†]l§íØÅ@¢W¢]´1»¢=€^£€¿AûÀ÷Déø!:„ ‡é02lô& SEÌIJÀršNŸd: HtŽÎaÖy:Yïào ¢ŸÒ»ˆü Ñoéç°\£÷a¹Aÿ`£¿ÒMðO‰>lt‹þ†{{‡nƒH,þŽšÏœdcl<¸M÷3¼ŠU‚OÂñDl2«â &6M_Ʀƒ/Çq-±ÕìiXÞfßå$K‚ŸfØ;Ë΀ŸgçÀßcÀ/±Kà—Ùe² Uì7xqBÀa& 5›P-Tƒ×5àµB-ø$axP>Y˜ ^/Ôƒ… øa xHBÙ¦ xúâ~aþ4; âž‹Ńà‡ÅCàoŠGÀŠGÁâÀOˆýà¿ß¿$¾þ;ñ2øMñ*Ù¤×Ä?Iû¤}$ á7ü¦»a{EjÁ½”©é˜ÀfHVy†“,ò ¼ÿ’e†( -¤YåŒÆ)iqOmÏ-/Ÿy;Ø:œi¿lµ) ÚoCTú·£—[Z•¼û…ÔòÅñ¤øá—Eü[Þ,eÒ7¨‘.OiJ ìÔ¯ˆMäl¼RXvú®x‚MΆ+YÌtLt—©‘¢` L´Ô6ÖKQ®+p9íÛÇÒÉí’%yu%µ óòÆÉÖÆÝ—®–”&êE%eDꃳ-âVi\S$ÉÚûÝÝý¼æV³DÝzå ê`—}pÀ>†?þØ‘YçÈË/ÆyD„ÙO*ýMÏ9Y¹JÚØÜœÜì\Ñš•6®˜r•1Ŭœ•—õôÔ†XµÃS¨É TådgY=Åž«<še»«jàäÖ †±#+gl¶»ÚŒŸX\xYcMSãÌЦMÂÕk]{Ëݾç§Ïˆfb…EOºÒZÓ¤t c¬þ±{¡.Ÿwjeî´Þò¼Ö{!§X³TØ1å&Î jŽT6U=½ÍbavÅ–VY–S–3xsɤtçø4D9§‰H18¯Ã-;SÏ¿‘?“ÿ`¿\^›Âþí#³›¤Én·‚Mº,µ©IìZój²ÍÛ"TJb%"XÅD©Zh,Ú*^”Þ¼ÙŠàÁk=xñ¢7 â? x¨ ½ -zÒ&~»ÝR=ÔÇÁ‹Î ¿Ùof¿Øï·‡YˆB^ì=ÃûÔZ)‚}9¨eÔþ€žAQT2ï–IÖó«šÖ8ÞÅ¥oŸ"‡|ÊG#!…|°Ë‘ÎeB¢‘À€+‹¨!Í_ȆtòthH!Η/ÜgÜÛñØÖÒBïå–mfà º*~Z{#·”ôZÐÉöM#êhFô¦w:ñ$äÆóGtQoVƒŒhh–ý;1†ÕÑC"ž*2S$Æ–7’øÝZtdÉ*©ï¹ºìèê $ªÇǮȤ‹œÝ'Ïp±Z{¹7ؾ”;Ô6Ø‚$妌zŸÂ,ªrò{91st":aÙ Ç3Äå9üåN%îTUwv½½VË *—k o7ÿéf)”ÿó`Æ-S( +¤YåŒÆ)iqOmÏ-/Ÿy;Ø:œi¿lµ) ÚoCTú·£—[Z•¼û…ÔòÅñ¤øá—Eü[Þ,eÒ7¨‘.OiJ ìÔ¯ˆMäl¼RXvú®x‚MΆ+YÌtLt—©‘¢` L´Ô6ÖKQ®+p9íÛÇÒÉí’%yu%µ óòÆÉÖÆÝ—®–”&êE%eDꃳ-âVi\S$ÉÚûÝÝý¼æV³DÝzå ê`—}pÀ>†?þØ‘YçÈË/ÆyD„ÙO*ýMÏ9Y¹JÚØÜœÜì\Ñš•6®˜r•1Ŭœ•—õôÔ†XµÃS¨É TådgY=Åž«<še»«jàäÖ †±#+gl¶»ÚŒŸX\xYcMSãÌЦMÂÕk]{Ëݾç§Ïˆfb…EOºÒZÓ¤t c¬þ±{¡.Ÿwjeî´Þò¼Ö{!§X³TØ1å&Î jŽT6U=½ÍbavÅ–VY–S–3xsɤtçø4D9§‰H18¯Ã-;SÏ¿‘?“ôöË%´‰ Àÿ¾f7I“lSÁ&]–šÔ$v­y5ÙæmŠb%"XÅD©Zh,Z/JoÞ´"xðZÞD¼è͈g/BU$¢AAOµ‰ÿn·Tõqð¢3Ã7óÏäÏ„üßf£ƒ—{O¥pI  •"(Ñå5£øûZERÉD¼[&Yo̧¨ZXåx!Š[1^'¾>òz>é wÈ »„t.+üöp,¢„T_!ÒȳÁA-"†8o¾ð€ÙÇKK u|[–™ /èªøyí­Üò¤ЂN¶oQF2’+½Ó†7!Þ‡œ’@F\Y2’®š^´ïÄèfG‰xªÈLq3– ü ‰Ï­¹@G¦<‘ ’úž«‹BWÏp Q=6zE&]ä¸äl<ÃÅjí}åÞ`ûRî`[gŠnwnJ¯÷y˜EN^`/ç/fŽLDý‰a– r> endobj -33 0 obj +36 0 obj << /Type /FontDescriptor /Ascent 750 @@ -2562,18 +2732,18 @@ << /Type /Font /Subtype /Type0 -/BaseFont /FLKOJL+Times-Roman +/BaseFont /ELCOMA+Times-Roman /Encoding /Identity-H -/DescendantFonts [ 34 0 R ] -/ToUnicode 35 0 R +/DescendantFonts [ 37 0 R ] +/ToUnicode 38 0 R >> endobj -34 0 obj +37 0 obj << /Type /Font /Subtype /CIDFontType2 -/BaseFont /FLKOJL+Times-Roman -/FontDescriptor 22 0 R +/BaseFont /ELCOMA+Times-Roman +/FontDescriptor 25 0 R /CIDSystemInfo<< /Registry (Adobe) /Ordering (Identity) @@ -2594,32 +2764,32 @@ /Widths [250 0 408 500 0 0 778 0 333 333 0 0 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 0 564 0 564 0 921 722 667 667 722 611 556 722 722 333 0 0 611 889 722 722 -556 722 667 556 611 722 0 944 0 722 0 333 0 333 0 500 +556 722 667 556 611 722 0 944 0 722 0 333 278 333 0 500 0 444 500 444 500 444 333 500 500 278 0 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 0 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 ] /Encoding /WinAnsiEncoding -/BaseFont /FLKOJO+Times-Roman -/FontDescriptor 24 0 R +/BaseFont /ELCOMC+Times-Roman +/FontDescriptor 27 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type0 -/BaseFont /FLKOJJ+Times-Bold +/BaseFont /ELCOLO+Times-Bold /Encoding /Identity-H -/DescendantFonts [ 36 0 R ] -/ToUnicode 37 0 R +/DescendantFonts [ 39 0 R ] +/ToUnicode 40 0 R >> endobj -36 0 obj +39 0 obj << /Type /Font /Subtype /CIDFontType2 -/BaseFont /FLKOJJ+Times-Bold -/FontDescriptor 20 0 R +/BaseFont /ELCOLO+Times-Bold +/FontDescriptor 23 0 R /CIDSystemInfo<< /Registry (Adobe) /Ordering (Identity) @@ -2640,14 +2810,14 @@ /Widths [250 0 555 0 0 0 0 0 333 333 0 0 250 333 250 0 500 500 500 500 500 0 500 0 500 500 333 0 570 0 570 0 0 722 667 722 722 667 611 778 778 389 500 0 667 944 722 778 -611 0 722 556 667 722 0 0 722 722 0 333 278 333 0 500 +611 0 722 556 667 722 0 0 722 722 667 333 278 333 0 500 0 500 556 444 556 444 333 500 556 278 0 556 278 833 556 500 556 556 444 389 333 556 500 722 500 500 0 0 220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 ] /Encoding /WinAnsiEncoding -/BaseFont /FLKOKC+Times-Bold -/FontDescriptor 26 0 R +/BaseFont /ELCOMG+Times-Bold +/FontDescriptor 29 0 R >> endobj 8 0 obj @@ -2658,8 +2828,8 @@ /LastChar 222 /Widths [556 ] /Encoding /MacRomanEncoding -/BaseFont /FLKOKJ+Times-Bold -/FontDescriptor 28 0 R +/BaseFont /ELCOMN+Times-Bold +/FontDescriptor 31 0 R >> endobj 9 0 obj @@ -2670,8 +2840,8 @@ /LastChar 223 /Widths [556 556 ] /Encoding /MacRomanEncoding -/BaseFont /FLKOKN+Times-Roman -/FontDescriptor 30 0 R +/BaseFont /ELCONB+Times-Roman +/FontDescriptor 33 0 R >> endobj 10 0 obj @@ -2688,10 +2858,10 @@ 444 0 444 ] /Encoding /WinAnsiEncoding /BaseFont /Times-Italic -/FontDescriptor 32 0 R +/FontDescriptor 35 0 R >> endobj -11 0 obj +16 0 obj << /Type /Font /Subtype /TrueType @@ -2700,10 +2870,10 @@ /Widths [500 ] /Encoding /MacRomanEncoding /BaseFont /Times-Italic -/FontDescriptor 33 0 R +/FontDescriptor 36 0 R >> endobj -35 0 obj +38 0 obj << /Filter /FlateDecode /Length 215 @@ -2713,7 +2883,7 @@ ¬7éèj6‹Ž 3yÜׄË@.@× ù™‡k⦩}jA¾³Eö4gäY}}gdÜbüÁ)A}—Wßô‚ +ñœöˆ jßÚÁâµAÖ4#tMƒ®? ’ý??YWgnšÅ¹­T«z‘·¼ðÊMwfcÎëáÕH±à ￉!µâW€Xk endstream endobj -37 0 obj +40 0 obj << /Filter /FlateDecode /Length 215 @@ -2725,110 +2895,121 @@ 1 0 obj << /Type /Page -/Parent 13 0 R +/Parent 12 0 R /Resources 3 0 R /Contents 2 0 R >> endobj -14 0 obj +13 0 obj << /Type /Page -/Parent 13 0 R -/Resources 16 0 R -/Contents 15 0 R +/Parent 12 0 R +/Resources 15 0 R +/Contents 14 0 R >> endobj 17 0 obj << /Type /Page -/Parent 13 0 R +/Parent 12 0 R /Resources 19 0 R /Contents 18 0 R >> endobj -38 0 obj +20 0 obj +<< +/Type /Page +/Parent 12 0 R +/Resources 22 0 R +/Contents 21 0 R +>> +endobj +41 0 obj << /S /D >> endobj -39 0 obj +42 0 obj << -/Nums [0 38 0 R ] +/Nums [0 41 0 R ] >> endobj -13 0 obj +12 0 obj << /Type /Pages -/Kids [1 0 R 14 0 R 17 0 R] -/Count 3 -/MediaBox [0 0 595 842] +/Kids [1 0 R 13 0 R 17 0 R 20 0 R] +/Count 4 +/MediaBox [0 0 612 792] >> endobj -40 0 obj +43 0 obj << -/CreationDate (D:20120404131639-04'00') -/ModDate (D:20120404131639-04'00') +/CreationDate (D:20140826174904-04'00') +/ModDate (D:20140826174904-04'00') /Producer (Apple pstopdf) >> endobj -41 0 obj +44 0 obj << /Type /Catalog -/Pages 13 0 R -/PageLabels 39 0 R +/Pages 12 0 R +/PageLabels 42 0 R >> endobj xref -0 42 +0 45 0000000000 65535 f -0000234350 00000 n +0000237657 00000 n 0000000016 00000 n -0000008530 00000 n -0000231035 00000 n -0000231391 00000 n -0000231951 00000 n -0000232305 00000 n -0000232852 00000 n -0000233028 00000 n -0000233209 00000 n -0000233602 00000 n -0000025699 00000 n -0000234667 00000 n -0000234431 00000 n -0000008705 00000 n -0000017768 00000 n -0000234515 00000 n -0000017933 00000 n -0000025545 00000 n -0000025840 00000 n -0000026067 00000 n -0000054920 00000 n -0000055141 00000 n -0000083367 00000 n -0000083589 00000 n -0000128646 00000 n -0000128873 00000 n -0000172030 00000 n -0000172257 00000 n -0000201446 00000 n -0000201668 00000 n -0000230635 00000 n -0000230835 00000 n -0000231182 00000 n -0000233774 00000 n -0000232097 00000 n -0000234062 00000 n -0000234599 00000 n -0000234627 00000 n -0000234763 00000 n -0000234886 00000 n +0000007876 00000 n +0000234338 00000 n +0000234694 00000 n +0000235256 00000 n +0000235610 00000 n +0000236159 00000 n +0000236335 00000 n +0000236516 00000 n +0000028736 00000 n +0000238058 00000 n +0000237738 00000 n +0000008039 00000 n +0000016003 00000 n +0000236909 00000 n +0000237822 00000 n +0000016168 00000 n +0000025746 00000 n +0000237906 00000 n +0000025900 00000 n +0000028582 00000 n +0000028877 00000 n +0000029104 00000 n +0000057954 00000 n +0000058175 00000 n +0000086400 00000 n +0000086622 00000 n +0000131758 00000 n +0000131985 00000 n +0000175331 00000 n +0000175558 00000 n +0000204750 00000 n +0000204972 00000 n +0000233938 00000 n +0000234138 00000 n +0000234485 00000 n +0000237081 00000 n +0000235402 00000 n +0000237369 00000 n +0000237990 00000 n +0000238018 00000 n +0000238161 00000 n +0000238284 00000 n trailer << -/Size 42 -/Root 41 0 R -/Info 40 0 R -/ID [<38e3798258cfbc8c1c1a354e5067ad9c><38e3798258cfbc8c1c1a354e5067ad9c>] +/Size 45 +/Root 44 0 R +/Info 43 0 R +/ID [<385f53d49f016a68c61f1df3ba3583b7><385f53d49f016a68c61f1df3ba3583b7>] >> startxref -234956 +238354 %%EOF Binary files /tmp/nbYCe7RrLh/securityonion-argus-server-3.0.6/doc/pdf/man.pdf.tar.gz and /tmp/ljYiAsTql2/securityonion-argus-server-3.0.8/doc/pdf/man.pdf.tar.gz differ diff -Nru securityonion-argus-server-3.0.6/doc/README securityonion-argus-server-3.0.8/doc/README --- securityonion-argus-server-3.0.6/doc/README 2012-03-15 04:43:34.000000000 +0000 +++ securityonion-argus-server-3.0.8/doc/README 2014-08-11 18:49:58.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * QOSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS @@ -21,8 +21,9 @@ or argus@qosient.com. Man page conversion to pdf's is done with the shell script below, using -Ghostscript's ps2pdf on Mac OS X, where "man -t" generates postscript output. -This maybe the case on all Unix's but not sure about that. +Ghostscript's ps2pdf on Linux and pstopdf on Mac OS X. Both use +"man -t" to generates postscript output. This maybe the case on all +Unix's but not sure about that. for i in man/*/*; \ do echo $i; \ diff -Nru securityonion-argus-server-3.0.6/events/argus-lsof.pl securityonion-argus-server-3.0.8/events/argus-lsof.pl --- securityonion-argus-server-3.0.6/events/argus-lsof.pl 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/events/argus-lsof.pl 2014-06-19 03:48:39.000000000 +0000 @@ -1,7 +1,7 @@ #!@PERLBIN@ # # Argus Software -# Copyright (c) 2006-2012 QoSient, LLC +# Copyright (c) 2006-2014 QoSient, LLC # All rights reserved. # # argus-lsof - Report open inet sockets and provide application names as diff -Nru securityonion-argus-server-3.0.6/events/argus-snmp.sh securityonion-argus-server-3.0.8/events/argus-snmp.sh --- securityonion-argus-server-3.0.6/events/argus-snmp.sh 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/events/argus-snmp.sh 2014-06-19 03:48:39.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # # Argus Software -# Copyright (c) 2006-2012 QoSient, LLC +# Copyright (c) 2006-2014 QoSient, LLC # All rights reserved. # # argus-snmp - collect snmp stats and report them as XML oriented argus events. @@ -12,13 +12,13 @@ # Carter Bullard # QoSient, LLC # -# $Id: //depot/argus/argus/events/argus-snmp.sh#3 $ -# $DateTime: 2012/01/03 19:15:19 $ -# $Change: 2274 $ +# $Id: //depot/argus/argus/events/argus-snmp.sh#6 $ +# $DateTime: 2014/06/18 23:21:37 $ +# $Change: 2879 $ # -prog="/usr/bin/snmpwalk -Os -c qosient -v 2c 192.168.0.1" -stats="/usr/bin/snmpget -Os -c qosient -v 2c 192.168.0.1" +prog="/usr/bin/snmpwalk -Os -c qosient -v 2c 10.0.1.1" +stats="/usr/bin/snmpget -Os -c qosient -v 2c 10.0.1.1" interfaces="2 3 9" echo "" diff -Nru securityonion-argus-server-3.0.6/events/argus-vmstat.sh securityonion-argus-server-3.0.8/events/argus-vmstat.sh --- securityonion-argus-server-3.0.6/events/argus-vmstat.sh 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/events/argus-vmstat.sh 2014-06-19 03:48:39.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/bash # # Argus Software -# Copyright (c) 2006-2012 QoSient, LLC +# Copyright (c) 2006-2014 QoSient, LLC # All rights reserved. # # vmstat - report vmstat output as XML oriented argus event. @@ -12,9 +12,9 @@ # QoSient, LLC # # -# $Id: //depot/argus/argus/events/argus-vmstat.sh#3 $ -# $DateTime: 2012/01/03 19:15:19 $ -# $Change: 2274 $ +# $Id: //depot/argus/argus/events/argus-vmstat.sh#5 $ +# $DateTime: 2014/06/18 23:21:37 $ +# $Change: 2879 $ # output=`vm_stat | sed -e 's/"//g' -e 's/\.//' -e 's/: */:/' | \ diff -Nru securityonion-argus-server-3.0.6/events/Makefile.in securityonion-argus-server-3.0.8/events/Makefile.in --- securityonion-argus-server-3.0.6/events/Makefile.in 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/events/Makefile.in 2014-07-10 14:55:08.000000000 +0000 @@ -1,6 +1,6 @@ # # Argus Software -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # QOSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS @@ -102,9 +102,9 @@ $(INSTALL) $(srcdir)/../bin/argus-snmp $(DESTDIR)$(BINDIR)/argus-snmp $(INSTALL) $(srcdir)/../bin/argus-vmstat $(DESTDIR)$(BINDIR)/argus-vmstat -uninstall: force +uninstall: all force rm -f $(DESTDIR)$(BINDIR)/argus-lsof - rm -f $(DESTDIR)$(BINDIR)/argus-smnp + rm -f $(DESTDIR)$(BINDIR)/argus-snmp rm -f $(DESTDIR)$(BINDIR)/argus-vmstat clean: diff -Nru securityonion-argus-server-3.0.6/events/README securityonion-argus-server-3.0.8/events/README --- securityonion-argus-server-3.0.6/events/README 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/events/README 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - README - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify diff -Nru securityonion-argus-server-3.0.6/include/argus/CflowdFlowPdu.h securityonion-argus-server-3.0.8/include/argus/CflowdFlowPdu.h --- securityonion-argus-server-3.0.6/include/argus/CflowdFlowPdu.h 2012-01-04 00:11:07.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus/CflowdFlowPdu.h 2014-06-12 23:14:40.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -468,14 +468,12 @@ #define k_CiscoV9FirstSwitched 22 #define k_CiscoV9OutBytes 23 #define k_CiscoV9OutPkts 24 - -/* ... */ - +#define k_CiscoV9MinPktLen 25 +#define k_CiscoV9MaxPktLen 26 #define k_CiscoV9IpV6SrcAddr 27 #define k_CiscoV9IpV6DstAddr 28 #define k_CiscoV9IPv6SrcMask 29 #define k_CiscoV9IpV6DstMask 30 - #define k_CiscoV9IpV6FlowLabel 31 #define k_CiscoV9IpV6IcmpType 32 #define k_CiscoV9IpV6MulIgmpType 33 @@ -499,17 +497,16 @@ /* ... */ +#define k_CiscoV9MinTtl 52 +#define k_CiscoV9MaxTtl 53 +#define k_CiscoV9IPv4IpId 54 #define k_CiscoV9DstTos 55 #define k_CiscoV9SrcMac 56 #define k_CiscoV9DstMac 57 #define k_CiscoV9SrcVlan 58 #define k_CiscoV9DstVlan 59 - #define k_CiscoV9IpProtocolVersion 60 #define k_CiscoV9Direction 61 - -/* ... */ - #define k_CiscoV9IpV6NextHop 62 #define k_CiscoV9BgpIpV6NextHop 63 #define k_CiscoV9IpV6OptionHeaders 64 @@ -526,7 +523,6 @@ #define k_CiscoV9MplsLabel8 77 #define k_CiscoV9MplsLabel9 78 #define k_CiscoV9MplsLabel10 79 - #define k_CiscoV9InDstMac 80 #define k_CiscoV9OutSrcMac 81 #define k_CiscoV9IfName 82 @@ -540,4 +536,47 @@ #define k_CiscoV9FragmentOffset 88 #define k_CiscoV9ForwardingStatus 89 +#define k_CiscoV9MplsPalRD 90 +#define k_CiscoV9MplsPrefixLen 91 +#define k_CiscoV9SrcTrafficIndex 92 +#define k_CiscoV9DstTrafficIndex 93 +#define k_CiscoV9ApplicationDesc 94 +#define k_CiscoV9ApplicationTag 95 +#define k_CiscoV9ApplicationName 96 + +/* ... */ + +#define k_CiscoV9PostDSCP 98 +#define k_CiscoV9MulticastReplication 99 + +/* ... */ + +#define k_CiscoV9ConnId 148 + +/* ... */ + +#define k_CiscoV9IcmpType 176 +#define k_CiscoV9IcmpCode 177 +#define k_CiscoV9IcmpTypeV6 178 +#define k_CiscoV9IcmpCodeV6 179 + +/* ... */ + +#define k_CiscoV9NatInsideGlobalAddr 225 +#define k_CiscoV9NatOutsideGlobalAddr 226 +#define k_CiscoV9postNatL4SrcPort 227 +#define k_CiscoV9postNatL4DstPort 228 +#define k_CiscoV9postNatEvent 230 + +/* ... */ + +#define k_CiscoV9IngressVRFID 234 + +/* ... */ + +#define k_CiscoEventTimeMilliSec 323 +#define k_CiscoEventTimeMicroSec 324 +#define k_CiscoEventTimeNanoSec 325 + + #endif /* _FlowPDU_H_ */ diff -Nru securityonion-argus-server-3.0.6/include/argus/cons_def.h securityonion-argus-server-3.0.8/include/argus/cons_def.h --- securityonion-argus-server-3.0.6/include/argus/cons_def.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus/cons_def.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -42,9 +42,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus/cons_def.h#3 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus/cons_def.h#5 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ diff -Nru securityonion-argus-server-3.0.6/include/argus/cons_out.h securityonion-argus-server-3.0.8/include/argus/cons_out.h --- securityonion-argus-server-3.0.6/include/argus/cons_out.h 2012-04-13 15:28:33.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus/cons_out.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files. cons_out.h - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus/cons_out.h#4 $ - * $DateTime: 2012/04/13 11:28:33 $ - * $Change: 2361 $ + * $Id: //depot/argus/argus/include/argus/cons_out.h#6 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ diff -Nru securityonion-argus-server-3.0.6/include/argus/extract.h securityonion-argus-server-3.0.8/include/argus/extract.h --- securityonion-argus-server-3.0.6/include/argus/extract.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus/extract.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -42,9 +42,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus/extract.h#4 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus/extract.h#6 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #ifdef TCPDUMP_ALIGN @@ -95,7 +95,7 @@ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * @(#) $Header: //depot/argus/argus/include/argus/extract.h#4 $ (LBL) + * @(#) $Header: //depot/argus/argus/include/argus/extract.h#6 $ (LBL) */ /* diff -Nru securityonion-argus-server-3.0.6/include/argus/fddi.h securityonion-argus-server-3.0.8/include/argus/fddi.h --- securityonion-argus-server-3.0.6/include/argus/fddi.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus/fddi.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files. fddi.h - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus/fddi.h#3 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus/fddi.h#5 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ /* diff -Nru securityonion-argus-server-3.0.6/include/argus/gencode.h securityonion-argus-server-3.0.8/include/argus/gencode.h --- securityonion-argus-server-3.0.6/include/argus/gencode.h 2012-02-13 15:49:41.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus/gencode.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -42,9 +42,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus/gencode.h#4 $ - * $DateTime: 2012/02/13 10:49:41 $ - * $Change: 2296 $ + * $Id: //depot/argus/argus/include/argus/gencode.h#7 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ /* @@ -87,6 +87,8 @@ #define Q_SPI 30 #define Q_LOSS 31 #define Q_PLOSS 32 +#define Q_ABR 139 +#define Q_PCR 139 #define Q_APPBYTE 33 #define Q_CO 34 #define Q_COCODE 35 @@ -94,6 +96,10 @@ #define Q_ASN 37 #define Q_SEQ 137 #define Q_STRING 138 +#define Q_INTEGER 139 +#define Q_FLOAT 140 +#define Q_GAP 141 +#define Q_DUP 142 /* Protocol qualifiers. */ @@ -225,6 +231,27 @@ #define Q_OR 130 #define Q_AND 131 +/* TCP Option qualifiers. */ + +#define Q_TCPOPT 143 +#define Q_MSS 144 +#define Q_WSCALE 145 +#define Q_SELECTIVEACKOK 146 +#define Q_SELECTIVEACK 147 +#define Q_TCPECHO 148 +#define Q_TCPECHOREPLY 149 +#define Q_TCPTIMESTAMP 150 +#define Q_TCPCC 151 +#define Q_TCPCCNEW 152 +#define Q_TCPCCECHO 153 +#define Q_SECN 154 +#define Q_DECN 155 + +#define Q_JITTERACTIVE 156 +#define Q_JITTERIDLE 157 +#define Q_INTERACTIVE 158 +#define Q_INTERIDLE 159 + #define Q_DEFAULT 0 #define Q_UNDEF 255 @@ -242,12 +269,13 @@ struct stmt { u_int dsr; - int code; + int code, type; struct slist *jt; /*only for relative jump in ablock*/ struct slist *jf; /*only for relative jump in ablock*/ union { int i; float f; + char s[8]; long long k; } data; }; @@ -319,12 +347,15 @@ }; struct qual { - unsigned char addr; unsigned short type; /* is this IPv4 or IPv6; */ unsigned short proto; unsigned char dir; + unsigned char addr; }; +#define ARGUS_ADDR_VALUE 1 +#define ARGUS_FLOAT_VALUE 2 + #ifndef __GNUC__ #define volatile #endif @@ -348,11 +379,14 @@ void Argusgen_or(struct ablock *, struct ablock *); void Argusgen_not(struct ablock *); +struct ablock *Argusgen_stat(struct ablock *, struct ablock *, unsigned int); + +struct ablock *Argusgen_ocode(int, struct qual); struct ablock *Argusgen_scode(char *, struct qual); struct ablock *Argusgen_tcode(int, struct qual); struct ablock *Argusgen_ecode(unsigned char *, struct qual); struct ablock *Argusgen_mcode(char *, char *, int, struct qual); -struct ablock *Argusgen_ncode(char *, unsigned int, struct qual, unsigned int); +struct ablock *Argusgen_ncode(char *, int, struct qual, unsigned int); struct ablock *Argusgen_fcode(char *, float, struct qual, unsigned int); struct ablock *Argusgen_proto_abbrev(int); struct ablock *Argusgen_relation(int, struct arth *, struct arth *, int); @@ -378,7 +412,7 @@ void Arguslex_init(char *); void Argussappend(struct slist *, struct slist *); -int ArgusFilterCompile(struct nff_program *, char *, int); +char *ArgusFilterCompile(struct nff_program *, char *, int); /* XXX */ #define JT(b) ((b)->et.succ) diff -Nru securityonion-argus-server-3.0.6/include/argus_client.h securityonion-argus-server-3.0.8/include/argus_client.h --- securityonion-argus-server-3.0.6/include/argus_client.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_client.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files. Client - * Copyright (C) 2000-2012 QoSient, LLC. + * Copyright (C) 2000-2014 QoSient, LLC. * All Rights Reserved * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_client.h#13 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_client.h#15 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ diff -Nru securityonion-argus-server-3.0.6/include/argus_code.h securityonion-argus-server-3.0.8/include/argus_code.h --- securityonion-argus-server-3.0.6/include/argus_code.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_code.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,383 +0,0 @@ -/* - * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -/* - * Copyright (c) 1990, 1991, 1992, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that: (1) source code distributions - * retain the above copyright notice and this paragraph in its entirety, (2) - * distributions including binary code include the above copyright notice and - * this paragraph in its entirety in the documentation or other materials - * provided with the distribution, and (3) all advertising materials mentioning - * features or use of this software display the following acknowledgement: - * ``This product includes software developed by the University of California, - * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of - * the University nor the names of its contributors may be used to endorse - * or promote products derived from this software without specific prior - * written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -/* - * $Id: //depot/argus/argus/include/argus_code.h#15 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ - */ - -/* - * filter.h must be included before this file. - */ - -#include - -/* Address qualifers. */ - -#define Q_HOST 1 -#define Q_SRCID 2 -#define Q_NET 3 -#define Q_PORT 4 -#define Q_GATEWAY 5 -#define Q_PROTO 6 -#define Q_IPID 7 -#define Q_TTL 8 -#define Q_TOS 9 -#define Q_DSB 10 -#define Q_VID 11 -#define Q_VPRI 12 -#define Q_MPLSID 13 -#define Q_SERVICE 14 -#define Q_BYTE 15 -#define Q_PKT 16 -#define Q_TCPBASE 17 -#define Q_TRANS 18 -#define Q_RATE 19 -#define Q_LOAD 20 -#define Q_INTER 21 -#define Q_JITTER 22 -#define Q_DUR 23 -#define Q_AVGDUR 24 -#define Q_DELTADUR 25 -#define Q_DELTASTART 26 -#define Q_DELTALAST 27 -#define Q_DELTASPKTS 28 -#define Q_DELTADPKTS 29 -#define Q_SPI 30 -#define Q_LOSS 31 -#define Q_PLOSS 32 -#define Q_APPBYTE 33 -#define Q_CO 34 -#define Q_COCODE 35 -#define Q_INODE 36 -#define Q_ASN 37 - -/* Protocol qualifiers. */ - -#define Q_MAN 38 -#define Q_FAR 132 -#define Q_EVENT 133 -#define Q_INDEX 134 - -/* Keystroke Behavior Keywords */ - -#define Q_NKEY 135 -#define Q_NSTROKE 136 - -#define Q_LINK 39 -#define Q_IP 40 -#define Q_IPV6 41 -#define Q_IPV4 42 -#define Q_IB 43 -#define Q_IBGBL 44 -#define Q_IBLCL 45 -#define Q_ISO 46 -#define Q_SVC 47 -#define Q_ETHER 48 -#define Q_LLC 49 -#define Q_ARP 50 -#define Q_RARP 51 -#define Q_TCP 52 -#define Q_UDP 53 -#define Q_ICMP 54 -#define Q_IGMP 55 -#define Q_IGRP 56 -#define Q_UDT 57 -#define Q_LID 58 -#define Q_QP 59 - -#define Q_DECNET 60 -#define Q_LAT 62 -#define Q_MOPRC 63 -#define Q_MOPDL 64 - -#define Q_ANON 65 -#define Q_MERGED 66 - -/* TCP Protocol qualifiers. */ - -#define Q_NORMAL 67 -#define Q_MULTIPATH 68 -#define Q_RESET 69 -#define Q_TIMEDOUT 70 -#define Q_WINSHUT 71 -#define Q_ESTABLISHED 72 -#define Q_RETRANS 73 -#define Q_SRCRETRANS 74 -#define Q_DSTRETRANS 75 -#define Q_OUTOFORDER 76 -#define Q_SRCOUTOFORDER 77 -#define Q_DSTOUTOFORDER 78 -#define Q_FRAG 79 -#define Q_SRCFRAG 80 -#define Q_DSTFRAG 81 -#define Q_FRAG_ONLY 82 -#define Q_CONNECTED 83 -#define Q_REJECT 84 -#define Q_ECHO 85 -#define Q_UNREACH 86 -#define Q_REDIRECT 87 -#define Q_TIMEXED 88 -#define Q_LOOP 89 -#define Q_CORRELATED 90 -#define Q_ICMPMAP 91 - -#define Q_SYN 92 -#define Q_SYNACK 93 -#define Q_DATA 94 -#define Q_SRCDATA 95 -#define Q_DSTDATA 96 -#define Q_FIN 97 -#define Q_FINACK 98 -#define Q_WAIT 99 -#define Q_ACK 100 -#define Q_URGENT 101 -#define Q_PUSH 102 -#define Q_ECE 103 -#define Q_CWR 104 - -#define Q_TCPRTT 105 - -/* RTP Protocol qualifiers. */ - -#define Q_RTP 106 -#define Q_RTCP 107 -#define Q_ESP 108 -#define Q_ECN 109 -#define Q_MPLS 110 -#define Q_VLAN 111 - -#define Q_RTR 112 -#define Q_MBR 113 -#define Q_LVG 114 - -/* Cause qualifers. */ - -#define Q_START 115 -#define Q_STOP 116 -#define Q_STATUS 117 -#define Q_SHUTDOWN 118 -#define Q_ERROR 119 - -/* Application Specific qualifers. */ -#define Q_DNS 120 - -/* Encapsulations */ -#define Q_ENCAPS 121 - -/* ISIS */ - -#define Q_ISIS 122 -#define Q_HELLO 123 -#define Q_LSP 124 -#define Q_CSNP 125 -#define Q_PSNP 126 -#define Q_RSVP 127 - - -/* Directional qualifers. */ - -#define Q_SRC 128 -#define Q_DST 129 -#define Q_OR 130 -#define Q_AND 131 - -#define Q_DEFAULT 0 -#define Q_UNDEF 255 - -/* Operational qualifiers. */ -#define Q_EQUAL 1 -#define Q_LESS 2 -#define Q_GREATER 3 -#define Q_GEQ 4 -#define Q_LEQ 5 - -/* DNS Opcode qualifiers. */ -#define Q_AUTH 1 -#define Q_RECURS 2 - - -struct stmt { - u_int dsr; - int code; - struct slist *jt; /*only for relative jump in ablock*/ - struct slist *jf; /*only for relative jump in ablock*/ - union { - int i; - float f; - long long k; - } data; -}; - -struct slist { - struct stmt s; - struct slist *next; -}; - -/* - * A bit vector to represent definition sets. We assume TOT_REGISTERS - * is smaller than 8*sizeof(atomset). - */ - -typedef unsigned int atomset; -#define ATOMMASK(n) (1 << (n)) -#define ATOMELEM(d, n) (d & ATOMMASK(n)) - -/* - * An unbounded set. - */ - -typedef unsigned int *uset; - -/* - * Total number of atomic entities, including accumulator (A) and index (X). - * We treat all these guys similarly during flow analysis. - */ - -#define N_ATOMS (NFF_MEMWORDS+2) - -struct edge { - int id; - int code; - uset edom; - struct ablock *succ; - struct ablock *pred; - struct edge *next; /* link list of incoming edges for a node */ -}; - -struct ablock { - int id; - struct slist *stmts; /* side effect stmts */ - struct stmt s; /* branch stmt */ - int mark; - int longjt; /* jt branch requires long jump */ - int longjf; /* jf branch requires long jump */ - int level; - int offset; - int sense; - struct edge et; - struct edge ef; - struct ablock *head; - struct ablock *link; /* link field used by optimizer */ - uset dom; - uset closure; - struct edge *in_edges; - atomset def, kill; - atomset in_use; - atomset out_use; - long long oval; - long long val[N_ATOMS]; -}; - -struct arth { - struct ablock *b; /* protocol checks */ - struct slist *s; /* stmt list */ - int regno; /* virtual register number of result */ -}; - -struct qual { - unsigned char addr; - unsigned short type; /* is this IPv4 or IPv6; */ - unsigned short proto; - unsigned char dir; -}; - -#ifndef __GNUC__ -#define volatile -#endif - -/* -#define yylex argus_lex -#define yyparse argus_parse -*/ - -extern int argus_lex(void); -extern int argus_parse (void); -extern void argus_lex_init(char *buf); - -struct arth *ArgusLoadI(int); -struct arth *ArgusLoad(int, struct arth *, int); -struct arth *ArgusLoadLen(void); -struct arth *ArgusArth(int, struct arth *, struct arth *); -struct arth *ArgusNeg(struct arth *); - -void Argusgen_and(struct ablock *, struct ablock *); -void Argusgen_or(struct ablock *, struct ablock *); -void Argusgen_not(struct ablock *); - -struct ablock *Argusgen_scode(char *, struct qual); -struct ablock *Argusgen_tcode(int, struct qual); -struct ablock *Argusgen_ecode(unsigned char *, struct qual); -struct ablock *Argusgen_mcode(char *, char *, int, struct qual); -struct ablock *Argusgen_ncode(char *, unsigned int, struct qual, unsigned int); -struct ablock *Argusgen_fcode(char *, float, struct qual, unsigned int); -struct ablock *Argusgen_proto_abbrev(int); -struct ablock *Argusgen_relation(int, struct arth *, struct arth *, int); -struct ablock *Argusgen_less(int); -struct ablock *Argusgen_greater(int); -struct ablock *Argusgen_byteop(int, int, int); -struct ablock *Argusgen_broadcast(int); -struct ablock *Argusgen_multicast(int); -struct ablock *Argusgen_inbound(int); -struct ablock *Argusgen_dns(int, int, int); -static struct ablock *Argusgen_appbytes(int, int, u_int); - -void Argusnff_optimize(struct ablock **); - -void Argus_error(char *fmt, ...); - -void Argusfinish_parse(struct ablock *); -char *Argussdup(char *); - -struct nff_insn *Argusicode_to_fcode(struct ablock *, int *); - -int Arguspcap_parse(void); -void Arguslex_init(char *); -void Argussappend(struct slist *, struct slist *); - -int ArgusFilterCompile(struct nff_program *, char *, int); - -/* XXX */ -#define JT(b) ((b)->et.succ) -#define JF(b) ((b)->ef.succ) diff -Nru securityonion-argus-server-3.0.6/include/argus_compat.h securityonion-argus-server-3.0.8/include/argus_compat.h --- securityonion-argus-server-3.0.6/include/argus_compat.h 2012-04-13 15:28:33.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_compat.h 2014-07-08 19:09:35.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_compat.h#5 $ - * $DateTime: 2012/04/13 11:28:33 $ - * $Change: 2361 $ + * $Id: //depot/argus/argus/include/argus_compat.h#8 $ + * $DateTime: 2014/07/08 15:09:35 $ + * $Change: 2886 $ */ #if !defined(Argus_compat_h) @@ -37,8 +37,18 @@ #include "argus_config.h" #endif +#if defined(HAVE_SYS_TYPES_H) +#include +#endif + +#if defined(HAVE_SYS_WAIT_H) +#include +#endif + #define argtimeval timeval +#include + #if defined(HAVE_SOLARIS) #include #include diff -Nru securityonion-argus-server-3.0.6/include/argus_config.h.in securityonion-argus-server-3.0.8/include/argus_config.h.in --- securityonion-argus-server-3.0.6/include/argus_config.h.in 2012-03-15 04:29:52.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_config.h.in 2014-06-19 03:48:39.000000000 +0000 @@ -6,6 +6,9 @@ /* Using Argus memory */ #undef ARGUSMEMDEBUG +/* Using Pluribus */ +#undef ARGUS_PLURIBUS + /* Description */ #undef ARGUS_SASL @@ -169,9 +172,27 @@ /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_ETHER_H +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IF_ETHER_H + /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IN_SYSTM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_TCP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_UDP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NET_IF_H + /* Define to 1 if you have the `openlog' function. */ #undef HAVE_OPENLOG @@ -181,9 +202,15 @@ /* pcap datalink val to desc */ #undef HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION +/* Define to 1 if you have the `pcap_dump_flush' function. */ +#undef HAVE_PCAP_DUMP_FLUSH + /* Define to 1 if you have the `pcap_dump_ftell' function. */ #undef HAVE_PCAP_DUMP_FTELL +/* Define to 1 if you have the `pcap_fopen_offline' function. */ +#undef HAVE_PCAP_FOPEN_OFFLINE + /* Define to 1 if you have the `pcap_get_selectable_fd' function. */ #undef HAVE_PCAP_GET_SELECTABLE_FD @@ -475,6 +502,11 @@ /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS diff -Nru securityonion-argus-server-3.0.6/include/argus_config.h.in~ securityonion-argus-server-3.0.8/include/argus_config.h.in~ --- securityonion-argus-server-3.0.6/include/argus_config.h.in~ 2012-03-15 02:17:04.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_config.h.in~ 1970-01-01 00:00:00.000000000 +0000 @@ -1,552 +0,0 @@ -/* include/argus_config.h.in. Generated from configure.ac by autoheader. */ - -/* Using Argus debug */ -#undef ARGUSDEBUG - -/* Using Argus memory */ -#undef ARGUSMEMDEBUG - -/* Description */ -#undef ARGUS_SASL - -/* Using Argus threads */ -#undef ARGUS_THREADS - -/* Define to 1 if the `closedir' function returns void instead of `int'. */ -#undef CLOSEDIR_VOID - -/* System has x86 endian support */ -#undef CONFIG_X86_BSWAP - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -/* Using cygwin */ -#undef CYGWIN - -/* Define to 1 if using `alloca.c'. */ -#undef C_ALLOCA - -/* Define to 1 if you have the `alarm' function. */ -#undef HAVE_ALARM - -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_ARPA_INET_H - -/* Define to 1 if you have the `backtrace' function. */ -#undef HAVE_BACKTRACE - -/* Define to 1 if you have the `bzero' function. */ -#undef HAVE_BZERO - -/* Mac OS X */ -#undef HAVE_DARWIN - -/* Define to 1 if you have the declaration of `ether_hostton', and to 0 if you - don't. */ -#undef HAVE_DECL_ETHER_HOSTTON - -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. - */ -#undef HAVE_DECL_TZNAME - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -#undef HAVE_DIRENT_H - -/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -#undef HAVE_DOPRNT - -/* Define to 1 if you have the `endgrent' function. */ -#undef HAVE_ENDGRENT - -/* Define to 1 if you have the `endpwent' function. */ -#undef HAVE_ENDPWENT - -/* Define to 1 if you have the `ether_hostton' function. */ -#undef HAVE_ETHER_HOSTTON - -/* Define to 1 if you have the header file. */ -#undef HAVE_FCNTL_H - -/* Define to 1 if you have the `floor' function. */ -#undef HAVE_FLOOR - -/* Define to 1 if you have the `floorf' function. */ -#undef HAVE_FLOORF - -/* Define to 1 if you have the `fork' function. */ -#undef HAVE_FORK - -/* Define to 1 if you have the `getaddrinfo' function. */ -#undef HAVE_GETADDRINFO - -/* Define to 1 if you have the `gethostbyaddr' function. */ -#undef HAVE_GETHOSTBYADDR - -/* Define to 1 if you have the `gethostbyname' function. */ -#undef HAVE_GETHOSTBYNAME - -/* Define to 1 if you have the `gethostname' function. */ -#undef HAVE_GETHOSTNAME - -/* Define to 1 if you have the `getpass' function. */ -#undef HAVE_GETPASS - -/* Define to 1 if you have the `gettimeofday' function. */ -#undef HAVE_GETTIMEOFDAY - -/* HPUX 10 */ -#undef HAVE_HPUX10_20 - -/* HPUX 9 */ -#undef HAVE_HPUX9 - -/* Define to 1 if you have the `inet_aton' function. */ -#undef HAVE_INET_ATON - -/* Define to 1 if you have the `inet_ntoa' function. */ -#undef HAVE_INET_NTOA - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the `isascii' function. */ -#undef HAVE_ISASCII - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIBINTL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H - -/* Define to 1 if you have the `localtime_r' function. */ -#undef HAVE_LOCALTIME_R - -/* Define to 1 if your system has a GNU libc compatible `malloc' function, and - to 0 otherwise. */ -#undef HAVE_MALLOC - -/* Define to 1 if you have the header file. */ -#undef HAVE_MALLOC_H - -/* Define to 1 if you have the `memchr' function. */ -#undef HAVE_MEMCHR - -/* Define to 1 if you have the `memmove' function. */ -#undef HAVE_MEMMOVE - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the `memset' function. */ -#undef HAVE_MEMSET - -/* Define to 1 if you have the `mkdir' function. */ -#undef HAVE_MKDIR - -/* Define to 1 if you have the `modf' function. */ -#undef HAVE_MODF - -/* Define to 1 if you have the header file, and it defines `DIR'. */ -#undef HAVE_NDIR_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_NETDB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_NETINET_ETHER_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_NETINET_IN_H - -/* Define to 1 if you have the `openlog' function. */ -#undef HAVE_OPENLOG - -/* pcap datalink name */ -#undef HAVE_PCAP_DATALINK_NAME_TO_VAL - -/* pcap datalink val to desc */ -#undef HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION - -/* Define to 1 if you have the `pcap_dump_ftell' function. */ -#undef HAVE_PCAP_DUMP_FTELL - -/* Define to 1 if you have the `pcap_get_selectable_fd' function. */ -#undef HAVE_PCAP_GET_SELECTABLE_FD - -/* pcap list datalinks */ -#undef HAVE_PCAP_LIST_DATALINKS - -/* Define to 1 if you have the `pcap_next_ex' function. */ -#undef HAVE_PCAP_NEXT_EX - -/* pcap set datalink */ -#undef HAVE_PCAP_SET_DATALINK - -/* Define to 1 if you have the `pfopen' function. */ -#undef HAVE_PFOPEN - -/* Define to 1 if you have the `pow' function. */ -#undef HAVE_POW - -/* Define to 1 if you have the `putenv' function. */ -#undef HAVE_PUTENV - -/* Define to 1 if your system has a GNU libc compatible `realloc' function, - and to 0 otherwise. */ -#undef HAVE_REALLOC - -/* Define to 1 if you have the `realpath' function. */ -#undef HAVE_REALPATH - -/* Define to 1 if you have the `regcomp' function. */ -#undef HAVE_REGCOMP - -/* Define to 1 if you have the `remainderf' function. */ -#undef HAVE_REMAINDERF - -/* Define to 1 if you have the `sched_get_priority_min' function. */ -#undef HAVE_SCHED_GET_PRIORITY_MIN - -/* Define to 1 if you have the `select' function. */ -#undef HAVE_SELECT - -/* Define to 1 if you have the `setenv' function. */ -#undef HAVE_SETENV - -/* Define to 1 if you have the `setlinebuf' function. */ -#undef HAVE_SETLINEBUF - -/* Define to 1 if you have the `snprintf' function. */ -#undef HAVE_SNPRINTF - -/* Define to 1 if you have the `socket' function. */ -#undef HAVE_SOCKET - -/* On solaris */ -#undef HAVE_SOLARIS - -/* Define to 1 if you have the `sqrt' function. */ -#undef HAVE_SQRT - -/* Define to 1 if you have the `srandomdev' function. */ -#undef HAVE_SRANDOMDEV - -/* Define to 1 if `stat' has the bug that it succeeds when given the - zero-length file name argument. */ -#undef HAVE_STAT_EMPTY_STRING_BUG - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDDEF_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `strcasecmp' function. */ -#undef HAVE_STRCASECMP - -/* Define to 1 if you have the `strchr' function. */ -#undef HAVE_STRCHR - -/* Define to 1 if you have the `strdup' function. */ -#undef HAVE_STRDUP - -/* Define to 1 if you have the `strerror' function. */ -#undef HAVE_STRERROR - -/* Define to 1 if you have the `strftime' function. */ -#undef HAVE_STRFTIME - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the `strlcat' function. */ -#undef HAVE_STRLCAT - -/* Define to 1 if you have the `strlcpy' function. */ -#undef HAVE_STRLCPY - -/* Define to 1 if you have the `strncasecmp' function. */ -#undef HAVE_STRNCASECMP - -/* Define to 1 if you have the `strpbrk' function. */ -#undef HAVE_STRPBRK - -/* Define to 1 if you have the `strrchr' function. */ -#undef HAVE_STRRCHR - -/* Define to 1 if you have the `strstr' function. */ -#undef HAVE_STRSTR - -/* Define to 1 if you have the `strtof' function. */ -#undef HAVE_STRTOF - -/* Define to 1 if you have the `strtol' function. */ -#undef HAVE_STRTOL - -/* struct ether addr */ -#undef HAVE_STRUCT_ETHER_ADDR - -/* Define to 1 if `tm_zone' is a member of `struct tm'. */ -#undef HAVE_STRUCT_TM_TM_ZONE - -/* Define to 1 if you have the `syslog' function. */ -#undef HAVE_SYSLOG - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYSLOG_H - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -#undef HAVE_SYS_DIR_H - -/* sys_errlist in stdio.h */ -#undef HAVE_SYS_ERRLIST - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_FILE_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_IOCTL_H - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -#undef HAVE_SYS_NDIR_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_PARAM_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SELECT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SOCKET_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SOCKIO_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_VFS_H - -/* Define to 1 if you have that is POSIX.1 compatible. */ -#undef HAVE_SYS_WAIT_H - -/* Using Tcp wrappers */ -#undef HAVE_TCP_WRAPPER - -/* Define to 1 if you have the header file. */ -#undef HAVE_TERMIOS_H - -/* tm_gmtoff in struct tm */ -#undef HAVE_TM_GMTOFF - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#undef HAVE_TM_ZONE - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -#undef HAVE_TZNAME - -/* Define to 1 if you have the `tzset' function. */ -#undef HAVE_TZSET - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_VALUES_H - -/* Define to 1 if you have the `vfork' function. */ -#undef HAVE_VFORK - -/* Define to 1 if you have the header file. */ -#undef HAVE_VFORK_H - -/* Define to 1 if you have the `vfprintf' function. */ -#undef HAVE_VFPRINTF - -/* Define to 1 if you have the `vprintf' function. */ -#undef HAVE_VPRINTF - -/* Define to 1 if you have the `vsnprintf' function. */ -#undef HAVE_VSNPRINTF - -/* Define to 1 if `fork' works. */ -#undef HAVE_WORKING_FORK - -/* Define to 1 if `vfork' works. */ -#undef HAVE_WORKING_VFORK - -/* Using system XDR library */ -#undef HAVE_XDR - -/* Define to 1 if you have the `xdrmem_create' function. */ -#undef HAVE_XDRMEM_CREATE - -/* Define to 1 if you have the header file. */ -#undef HAVE_ZLIB_H - -/* Description */ -#undef LBL_ALIGN - -/* Define to 1 if `lstat' dereferences a symlink specified with a trailing - slash. */ -#undef LSTAT_FOLLOWS_SLASHED_SYMLINK - -/* Define to 1 if netinet/ether.h declares `ether_hostton' */ -#undef NETINET_ETHER_H_DECLARES_ETHER_HOSTTON - -/* Define to 1 if netinet/if_ether.h declares `ether_hostton' */ -#undef NETINET_IF_ETHER_H_DECLARES_ETHER_HOSTTON - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define as the return type of signal handlers (`int' or `void'). */ -#undef RETSIGTYPE - -/* Define to the type of arg 1 for `select'. */ -#undef SELECT_TYPE_ARG1 - -/* Define to the type of args 2, 3 and 4 for `select'. */ -#undef SELECT_TYPE_ARG234 - -/* Define to the type of arg 5 for `select'. */ -#undef SELECT_TYPE_ARG5 - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at runtime. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Define to 1 if your declares `struct tm'. */ -#undef TM_IN_SYS_TIME - -/* Number of bits in a file offset, on hosts where this is settable. */ -#undef _FILE_OFFSET_BITS - -/* needed on HP-UX */ -#undef _HPUX_SOURCE - -/* Define for large files, on AIX-style hosts. */ -#undef _LARGE_FILES - -/* Description */ -#undef _SUN - -/* Define for Solaris 2.5.1 so the uint32_t typedef from , - , or is not used. If the typedef were allowed, the - #define below would cause a syntax error. */ -#undef _UINT32_T - -/* Define for Solaris 2.5.1 so the uint8_t typedef from , - , or is not used. If the typedef were allowed, the - #define below would cause a syntax error. */ -#undef _UINT8_T - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define to `int' if doesn't define. */ -#undef gid_t - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif - -/* Define to the type of a signed integer type of width exactly 16 bits if - such a type exists and the standard includes do not define it. */ -#undef int16_t - -/* Define to the type of a signed integer type of width exactly 32 bits if - such a type exists and the standard includes do not define it. */ -#undef int32_t - -/* Define to the type of a signed integer type of width exactly 8 bits if such - a type exists and the standard includes do not define it. */ -#undef int8_t - -/* Define to rpl_malloc if the replacement function should be used. */ -#undef malloc - -/* Define to `int' if does not define. */ -#undef pid_t - -/* Define to rpl_realloc if the replacement function should be used. */ -#undef realloc - -/* Description */ -#undef sinix - -/* Define to `unsigned int' if does not define. */ -#undef size_t - -/* Define to `int' if doesn't define. */ -#undef uid_t - -/* Define to the type of an unsigned integer type of width exactly 16 bits if - such a type exists and the standard includes do not define it. */ -#undef uint16_t - -/* Define to the type of an unsigned integer type of width exactly 32 bits if - such a type exists and the standard includes do not define it. */ -#undef uint32_t - -/* Define to the type of an unsigned integer type of width exactly 8 bits if - such a type exists and the standard includes do not define it. */ -#undef uint8_t - -/* Define as `fork' if `vfork' does not work. */ -#undef vfork diff -Nru securityonion-argus-server-3.0.6/include/argus_dag.h securityonion-argus-server-3.0.8/include/argus_dag.h --- securityonion-argus-server-3.0.6/include/argus_dag.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_dag.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -23,9 +23,9 @@ * Data structures required to define struct Dag Record. * Derived from Dag source code tree ./include/dagapi.h * - * $Id: //depot/argus/argus/include/argus_dag.h#4 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_dag.h#6 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #define TYPE_LEGACY 0 diff -Nru securityonion-argus-server-3.0.6/include/argus_debug.h securityonion-argus-server-3.0.8/include/argus_debug.h --- securityonion-argus-server-3.0.6/include/argus_debug.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_debug.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_debug.h#4 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_debug.h#6 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ diff -Nru securityonion-argus-server-3.0.6/include/argus_def.h securityonion-argus-server-3.0.8/include/argus_def.h --- securityonion-argus-server-3.0.6/include/argus_def.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_def.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_def.h#39 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_def.h#46 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ /* Argus_def.h */ @@ -117,7 +117,7 @@ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Type | Cause | Vers | Opt | Length | + | Type | Vers | Cause | Opt | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */ @@ -200,6 +200,7 @@ #define ARGUS_CLOSED 0x70 /* Argus Initiates Shutdown */ #define ARGUS_ERROR 0x80 /* Error - Major Problem */ +#define ARGUS_SUPPLEMENTAL 0x90 /* Argus Supplemental Record */ /* Argus Record Header Option Field @@ -223,6 +224,9 @@ Argus Status Option Messages */ /* + Argus Supplemental Option Messages +*/ +/* Argus Stop Option Messages */ /* @@ -608,6 +612,8 @@ #define ARGUS_TIME_DST_START 0x20 #define ARGUS_TIME_DST_END 0x40 +#define ARGUS_TIME_MASK (ARGUS_TIME_SRC_START | ARGUS_TIME_DST_START | ARGUS_TIME_SRC_END | ARGUS_TIME_DST_END) + /* Argus Flow Descriptor DSR Qualifiers */ @@ -768,14 +774,16 @@ #define ARGUS_FLOW_MPLS 0x04 #define ARGUS_FLOW_VLAN 0x05 #define ARGUS_FLOW_ARP 0x06 +#define ARGUS_FLOW_LAYER_2 0x07 -#define ARGUS_FLOW_KEYS 0x00000006 +#define ARGUS_FLOW_KEYS 0x00000007 #define ARGUS_FLOW_KEY_CLASSIC5TUPLE 0x00000001 #define ARGUS_FLOW_KEY_LAYER_2_MATRIX 0x00000002 #define ARGUS_FLOW_KEY_LAYER_3_MATRIX 0x00000004 #define ARGUS_FLOW_KEY_LOCAL_MPLS 0x00000008 #define ARGUS_FLOW_KEY_COMPLETE_MPLS 0x00000010 #define ARGUS_FLOW_KEY_VLAN 0x00000020 +#define ARGUS_FLOW_KEY_LAYER_2 0x00000040 #define ARGUS_FLOW_COMPOSITE 0x08 @@ -783,7 +791,7 @@ #define ARGUS_FLOW_ETH_IANA 0x11 /* this is the layer 3 protocol ids */ #define ARGUS_FLOW_IP_IANA 0x12 /* this is the layer 4 protocol/nexthop number */ -#define ARGUS_FLOW_RMON 0x40 /* this is the layer 4 protocol/nexthop number */ +#define ARGUS_FLOW_RMON 0x40 /* this has been created usig RMON options */ /* Argus Flow Descriptor DSR Qualifiers */ #define ARGUS_SYSTEM_FLOW 0x20 diff -Nru securityonion-argus-server-3.0.6/include/argus_dscodepoints.h securityonion-argus-server-3.0.8/include/argus_dscodepoints.h --- securityonion-argus-server-3.0.6/include/argus_dscodepoints.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_dscodepoints.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_dscodepoints.h#4 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_dscodepoints.h#6 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ diff -Nru securityonion-argus-server-3.0.6/include/argus_encapsulations.h securityonion-argus-server-3.0.8/include/argus_encapsulations.h --- securityonion-argus-server-3.0.6/include/argus_encapsulations.h 2012-01-04 00:14:57.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_encapsulations.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_encapsulations.h#5 $ - * $DateTime: 2012/01/03 19:14:57 $ - * $Change: 2273 $ + * $Id: //depot/argus/argus/include/argus_encapsulations.h#7 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ diff -Nru securityonion-argus-server-3.0.6/include/argus_ethernames.h securityonion-argus-server-3.0.8/include/argus_ethernames.h --- securityonion-argus-server-3.0.6/include/argus_ethernames.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_ethernames.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_ethernames.h#4 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_ethernames.h#6 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ diff -Nru securityonion-argus-server-3.0.6/include/argus_ethertype.h securityonion-argus-server-3.0.8/include/argus_ethertype.h --- securityonion-argus-server-3.0.6/include/argus_ethertype.h 2011-01-26 22:11:49.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_ethertype.h 2014-06-12 23:16:26.000000000 +0000 @@ -18,13 +18,13 @@ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * @(#) $Header: //depot/argus/argus/include/argus_ethertype.h#7 $ (LBL) + * @(#) $Header: //depot/argus/argus/include/argus_ethertype.h#10 $ (LBL) */ /* - * $Id: //depot/argus/argus/include/argus_ethertype.h#7 $ - * $DateTime: 2011/01/26 17:11:49 $ - * $Change: 2087 $ + * $Id: //depot/argus/argus/include/argus_ethertype.h#10 $ + * $DateTime: 2014/04/08 06:43:27 $ + * $Change: 2794 $ */ #ifndef Argus_Ethertype_h diff -Nru securityonion-argus-server-3.0.6/include/argus_filter.h securityonion-argus-server-3.0.8/include/argus_filter.h --- securityonion-argus-server-3.0.6/include/argus_filter.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_filter.h 2014-06-17 05:11:41.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -61,9 +61,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_filter.h#14 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_filter.h#17 $ + * $DateTime: 2014/06/17 01:11:15 $ + * $Change: 2873 $ */ @@ -108,8 +108,8 @@ char *read_infile(char *); static inline int xdtoi(int c); -unsigned int ArgusFilterRecord (struct nff_insn *pc, struct ArgusRecordStruct *); -unsigned int ArgusFilterOrig (struct nff_insn *, struct ArgusRecordStruct *, int, int); +int ArgusFilterRecord (struct nff_insn *pc, struct ArgusRecordStruct *); +int ArgusFilterOrig (struct nff_insn *, struct ArgusRecordStruct *, int, int); static inline int skip_space(FILE *); static inline int skip_line(FILE *); @@ -155,6 +155,7 @@ void nff_dump(struct nff_program *, char *, int, int); + char *intoa(unsigned int); extern SIGRET nohostname(int); char *ArgusGetName(struct ArgusParserStruct *, unsigned char *); @@ -198,8 +199,8 @@ extern int ArgusLookupNet(char *, unsigned int *, unsigned int *, char *); extern char *read_infile(char *); -extern unsigned int ArgusFilterRecord (struct nff_insn *pc, struct ArgusRecordStruct *); -extern unsigned int ArgusFilterOrig (struct nff_insn *, u_char *, int, int); +extern int ArgusFilterRecord (struct nff_insn *pc, struct ArgusRecordStruct *); +extern int ArgusFilterOrig (struct nff_insn *, u_char *, int, int); //extern struct argus_etherent *argus_next_etherent(FILE *fp); extern char *ArgusLookupDev(char *); diff -Nru securityonion-argus-server-3.0.6/include/argus_gre.h securityonion-argus-server-3.0.8/include/argus_gre.h --- securityonion-argus-server-3.0.6/include/argus_gre.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_gre.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files - output structures - * Copyright (C) 2000-2012 QoSient, LLC. + * Copyright (C) 2000-2014 QoSient, LLC. * All Rights Reserved * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_gre.h#10 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_gre.h#12 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #if !defined(Argus_gre_h) diff -Nru securityonion-argus-server-3.0.6/include/argus_int.h securityonion-argus-server-3.0.8/include/argus_int.h --- securityonion-argus-server-3.0.6/include/argus_int.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_int.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files - interface - * Copyright (C) 2000-2012 QoSient, LLC. + * Copyright (C) 2000-2014 QoSient, LLC. * All Rights Reserved * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_int.h#15 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_int.h#17 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #if !defined(Argus_int_h) diff -Nru securityonion-argus-server-3.0.6/include/argus_isis.h securityonion-argus-server-3.0.8/include/argus_isis.h --- securityonion-argus-server-3.0.6/include/argus_isis.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_isis.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software Common include files - output structures - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_isis.h#5 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_isis.h#7 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #ifndef ArgusIsis_h diff -Nru securityonion-argus-server-3.0.6/include/argus_namedb.h securityonion-argus-server-3.0.8/include/argus_namedb.h --- securityonion-argus-server-3.0.6/include/argus_namedb.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_namedb.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software Common include files - name database - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -55,9 +55,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_namedb.h#10 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_namedb.h#12 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #if !defined(Argus_namedb_h) diff -Nru securityonion-argus-server-3.0.6/include/argus-namedb.h securityonion-argus-server-3.0.8/include/argus-namedb.h --- securityonion-argus-server-3.0.6/include/argus-namedb.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus-namedb.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files. namedb - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -54,9 +54,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus-namedb.h#10 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus-namedb.h#12 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #if !defined(argus_namedb_h) diff -Nru securityonion-argus-server-3.0.6/include/argus_os.h securityonion-argus-server-3.0.8/include/argus_os.h --- securityonion-argus-server-3.0.6/include/argus_os.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_os.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_os.h#16 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_os.h#19 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #ifndef ArgusOs_h @@ -82,6 +82,11 @@ #define ETHERPUP_IPTYPE ETHERTYPE_IP #define ETHERPUP_REVARPTYPE ETHERTYPE_REVARP #define ETHERPUP_ARPTYPE ETHERTYPE_ARP + +typedef uint8_t u_int8_t; +typedef uint16_t u_int16_t; +typedef uint32_t u_int32_t; +typedef uint64_t u_int64_t; #endif #if defined(__sgi) diff -Nru securityonion-argus-server-3.0.6/include/argus_out.h securityonion-argus-server-3.0.8/include/argus_out.h --- securityonion-argus-server-3.0.6/include/argus_out.h 2012-03-14 01:31:47.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_out.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software Common include files - output structures - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_out.h#37 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_out.h#51 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ @@ -37,6 +37,8 @@ #include #endif +#include + #if defined(__OpenBSD__) #include #endif @@ -44,7 +46,6 @@ #include #include -#include #include #include #include @@ -326,8 +327,6 @@ } o_un; }; - - struct ArgusESPFlow { unsigned int ip_src, ip_dst; unsigned char ip_p, tp_p; @@ -335,7 +334,6 @@ unsigned int spi; }; - struct ArgusESPv6Flow { unsigned int ip_src[4], ip_dst[4]; #if defined(_LITTLE_ENDIAN) @@ -591,7 +589,7 @@ struct ArgusUniStats { - unsigned int pkts, bytes, appbytes; + long long pkts, bytes, appbytes; }; struct ArgusStatObject { @@ -751,6 +749,16 @@ }l_un; }; +struct ArgusIdStruct { + int status; + char name[64]; +}; + +struct ArgusInputStruct { + struct ArgusDSRHeader hdr; + struct ArgusIdStruct id; +}; + struct ArgusEventStruct { struct ArgusDSRHeader event; /* immediate data */ @@ -778,6 +786,12 @@ unsigned int thisid, record_len; }; +struct ArgusMarSupStruct { + unsigned int status, argusid; + struct ArgusTime startime, now; + struct ArgusInputStruct input; +}; + struct ArgusFarStruct { struct ArgusFlow flow; }; @@ -804,13 +818,15 @@ struct ArgusRecord { struct ArgusRecordHeader hdr; union { - struct ArgusMarStruct mar; - struct ArgusFarStruct far; - struct ArgusEventStruct event; + struct ArgusMarStruct mar; + struct ArgusMarSupStruct sup; + struct ArgusFarStruct far; + struct ArgusEventStruct event; } ar_un; }; #define argus_mar ar_un.mar +#define argus_sup ar_un.sup #define argus_far ar_un.far #define argus_event ar_un.event @@ -880,16 +896,17 @@ struct RaBinProcessStruct *bins; struct ArgusInput *input; struct ArgusDSRHeader *dsrs[ARGUSMAXDSRTYPE]; - struct ArgusCorStruct *correlates; - float srate, drate, sload, dload, dur, mean; - float sploss, dploss; - long long offset; struct ArgusHashTableHdr *htblhdr; struct ArgusHashTableHdr *hinthdr; struct ArgusQueueStruct *nsq; struct ArgusRecordHeader hdr; struct ArgusCanonRecord canon; + + struct ArgusCorStruct *correlates; + float srate, drate, sload, dload, dur, mean; + float pcr, sploss, dploss; + long long offset; }; diff -Nru securityonion-argus-server-3.0.6/include/argus_parse.h securityonion-argus-server-3.0.8/include/argus_parse.h --- securityonion-argus-server-3.0.6/include/argus_parse.h 2012-04-13 15:28:33.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_parse.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software Common include files - parsing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_parse.h#14 $ - * $DateTime: 2012/04/13 11:28:33 $ - * $Change: 2361 $ + * $Id: //depot/argus/argus/include/argus_parse.h#16 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #if !defined(Argus_parse_h) @@ -506,7 +506,7 @@ #if !defined(NFC_AGGREGATIONDEFINITION_H) #define NFC_AGGREGATIONDEFINITION_H -/* $Id: //depot/argus/argus/include/argus_parse.h#14 $ +/* $Id: //depot/argus/argus/include/argus_parse.h#16 $ * $Source: $ *------------------------------------------------------------------ * Definition of "Key" and "Value" fields used for purpose of @@ -906,7 +906,7 @@ #define NFC_DATAFILE_H /* *------------------------------------------------------------------ - * $Id: //depot/argus/argus/include/argus_parse.h#14 $ + * $Id: //depot/argus/argus/include/argus_parse.h#16 $ * $Source: $ *------------------------------------------------------------------ * Definition of datafile formats. diff -Nru securityonion-argus-server-3.0.6/include/argus_parser.h securityonion-argus-server-3.0.8/include/argus_parser.h --- securityonion-argus-server-3.0.6/include/argus_parser.h 2012-03-15 05:13:08.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_parser.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software Common include files - Parser - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_parser.h#15 $ - * $DateTime: 2012/03/15 01:13:08 $ - * $Change: 2335 $ + * $Id: //depot/argus/argus/include/argus_parser.h#20 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ @@ -41,7 +41,6 @@ #include #include -#include #include #define ARGUS_PRINTSRC 0x0001 @@ -61,6 +60,18 @@ #define ARGUS_MAX_S_OPTIONS 34 #define HASHNAMESIZE 256 +#define ARGUS_FORCE_LOCAL_SRC 0x02 +#define ARGUS_FORCE_LOCAL_DST 0x04 +#define ARGUS_SUGGEST_LOCAL_SRC 0x08 +#define ARGUS_SUGGEST_LOCAL_DST 0x10 + +#define ARGUS_PORT_SERVICES 0x100 +#define ARGUS_PORT_WELLKNOWN 0x200 +#define ARGUS_PORT_REGISTERED 0x400 + +#define ARGUS_ADDR_DIR_MASK (ARGUS_SUGGEST_LOCAL_SRC | ARGUS_SUGGEST_LOCAL_DST | ARGUS_FORCE_LOCAL_SRC | ARGUS_FORCE_LOCAL_DST) +#define ARGUS_PORT_DIR_MASK (ARGUS_PORT_SERVICES | ARGUS_PORT_WELLKNOWN | ARGUS_PORT_REGISTERED) + #include struct h6namemem { @@ -102,13 +113,14 @@ int status; char fflag, nflag, tflag, uflag, Wflag; char Iflag, Tflag, rflag, Rflag, Sflag, xflag; - char Xflag, XMLflag, zflag, Zflag; + char Xflag, XMLflag, zflag, Zflag, pflag; int RaCumulativeMerge, RaFlowMajorModified; int RaAllocHashTableHealers, RaAllocArgusRecord; int RaThisActiveIndex, RaThisFlowNum; int RaThisModelNum, RaParseError; int ArgusSessionId, NonBlockingDNS, ArgusDSCodePoints; + int ArgusDirectionFunction; char *RaFlowModelFile, *ArgusFlowModelFile, *ArgusRemoteFilter; struct RaFlowModelStruct *RaFlowModel; @@ -120,6 +132,8 @@ int ArgusFilterFiledes[2]; int ArgusControlFiledes[2]; + + int ArgusSrvInit; unsigned int f_localnet, f_netmask; struct protoidmem protoidtable[HASHNAMESIZE]; diff -Nru securityonion-argus-server-3.0.6/include/argus_udt.h securityonion-argus-server-3.0.8/include/argus_udt.h --- securityonion-argus-server-3.0.6/include/argus_udt.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_udt.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files - UDT processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_udt.h#5 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/argus_udt.h#7 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ #ifndef ArgusUdt_h diff -Nru securityonion-argus-server-3.0.6/include/argus_util.h securityonion-argus-server-3.0.8/include/argus_util.h --- securityonion-argus-server-3.0.6/include/argus_util.h 2012-04-13 15:28:33.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_util.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files - Utilities - * Copyright (c) 2000-201! QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_util.h#17 $ - * $DateTime: 2012/04/13 11:28:33 $ - * $Change: 2361 $ + * $Id: //depot/argus/argus/include/argus_util.h#23 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ #if !defined(Argus_util_h) @@ -34,7 +34,9 @@ #endif #include +#include #include + #include #include @@ -156,6 +158,8 @@ void ArgusLog (int, char *, ...); +void ArgusInitServarray(struct ArgusParserStruct *); + #else extern void ArgusAdjustGlobalTime (struct timeval *); diff -Nru securityonion-argus-server-3.0.6/include/argus_v3_def.h securityonion-argus-server-3.0.8/include/argus_v3_def.h --- securityonion-argus-server-3.0.6/include/argus_v3_def.h 2011-01-26 22:11:49.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/argus_v3_def.h 2014-06-12 23:17:21.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Common include files - Version 3 definitions - * Copyright (c) 2000-201! QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/argus_v3_def.h#9 $ - * $DateTime: 2011/01/26 17:11:49 $ - * $Change: 2087 $ + * $Id: //depot/argus/argus/include/argus_v3_def.h#11 $ + * $DateTime: 2014/06/12 19:17:21 $ + * $Change: 2864 $ */ diff -Nru securityonion-argus-server-3.0.6/include/net/etherdefs.h securityonion-argus-server-3.0.8/include/net/etherdefs.h --- securityonion-argus-server-3.0.6/include/net/etherdefs.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/net/etherdefs.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - main argus processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/net/etherdefs.h#5 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/net/etherdefs.h#7 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ #ifndef _NET_ETHERNET_H_ #define _NET_ETHERNET_H_ diff -Nru securityonion-argus-server-3.0.6/include/net/nff.h securityonion-argus-server-3.0.8/include/net/nff.h --- securityonion-argus-server-3.0.6/include/net/nff.h 2011-12-28 19:23:55.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/net/nff.h 2014-06-17 05:11:41.000000000 +0000 @@ -290,15 +290,6 @@ */ /* - * Encapsulated packets for IPsec; DLT_ENC is 13 in OpenBSD, but that's - * DLT_SLIP_BSDOS in NetBSD, so we don't use 13 for it in OSes other - * than OpenBSD. - */ -#if !defined(DLT_ENC) -#define DLT_ENC 109 -#endif - -/* * This is for Linux cooked sockets. */ #if !defined(DLT_LINUX_SLL) @@ -306,26 +297,6 @@ #endif /* - * Juniper-private data link type, as per request from - * Hannes Gredler . - * The DLT_ are used for prepending meta-information - * like interface index, interface name - * before standard Ethernet, PPP, Frelay & C-HDLC Frames - */ -#if !defined(DLT_JUNIPER_ETHER) -#define DLT_JUNIPER_ETHER 178 -#endif -#if !defined(DLT_JUNIPER_PPP) -#define DLT_JUNIPER_PPP 179 -#endif -#if !defined(DLT_JUNIPER_FRELAY) -#define DLT_JUNIPER_FRELAY 180 -#endif -#if !defined(DLT_JUNIPER_CHDLC) -#define DLT_JUNIPER_CHDLC 181 -#endif - -/* * The instruction encodings. */ /* instruction classes */ @@ -391,14 +362,15 @@ * The instruction data structure. */ struct nff_insn { - int dsr; + int dsr, type; unsigned short code; unsigned char jt; unsigned char jf; union { int i; float f; - nff_u_int64 k; + char s[8]; + nff_int64 k; } data; }; diff -Nru securityonion-argus-server-3.0.6/include/net/slip.h securityonion-argus-server-3.0.8/include/net/slip.h --- securityonion-argus-server-3.0.6/include/net/slip.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/net/slip.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - main argus processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/net/slip.h#4 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/net/slip.h#6 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ /* linux does not give us the link level header */ #define SLIP_HDRLEN 16 diff -Nru securityonion-argus-server-3.0.6/include/netinet/rtp.h securityonion-argus-server-3.0.8/include/netinet/rtp.h --- securityonion-argus-server-3.0.6/include/netinet/rtp.h 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/include/netinet/rtp.h 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software. Argus files - main argus processing - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,9 +20,9 @@ */ /* - * $Id: //depot/argus/argus/include/netinet/rtp.h#4 $ - * $DateTime: 2012/01/03 19:15:19 $ - * $Change: 2274 $ + * $Id: //depot/argus/argus/include/netinet/rtp.h#6 $ + * $DateTime: 2014/06/18 23:31:17 $ + * $Change: 2881 $ */ diff -Nru securityonion-argus-server-3.0.6/INSTALL securityonion-argus-server-3.0.8/INSTALL --- securityonion-argus-server-3.0.6/INSTALL 2012-01-04 00:00:17.000000000 +0000 +++ securityonion-argus-server-3.0.8/INSTALL 2014-06-12 23:32:55.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -35,25 +35,34 @@ DEPENDENCIES The argus distribution is dependant on two public domain packages; libpcap, -which provides the argus server's portable packet capture interface, and bison() -which is used for the filter compilers. Both of these packages must be -installed in order to compile argus. Most versions of Linux/Unix/Mac OS X/xBSD -have these packages installed by default, so hopefully it won't be a problem. +which provides the argus server's portable packet capture interface, and flex/bison() +which are used for to build the filter compilers. Both of these sets of +packages must be installed in order to compile argus. Most versions of +Linux/Unix/Mac OS X/xBSD have these packages installed by default, so +hopefully it won't be a problem. Below is the offical source of libpcap and current version: -libpcap-1.1.1 -http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz +libpcap-1.5.3 +http://www.tcpdump.org/release/libpcap-1.5.3.tar.gz -And the official site and current version of bison is: +The official site and current version of bison is: -bison-2.4.3 +bison-3.0.1 http://ftp.gnu.org/gun/bison/ -Because argus is dependant on libpcap and bison, you will need to have -them installed prior to building the package. Please refer to the +And the offical site for Flex: The Fast Lexical Analyzer is: + +flex-2.5.39 +http://flex.sourceforge.net +http://sourceforge.net/projects/flex/files + + + +Because argus is dependant on libpcap and flex/bison, you will need to +have them available prior to building the package. Please refer to the individual packages for installation instructions. If you are not interested in performing a system installtion for libpcap, then you can simply untar libpcap in the same directory where you untared argus. @@ -64,7 +73,9 @@ files. On Fedora, the libpcap library is provided, however, compilers etc... can't find the library at compile time. Installing libpcap-devel fixes this problem: + yum install libpcap-devel + apt-get install libpcap-devel Argus supports block compression for some of its functions. To support this, argus will look for a usable zlib. If not found, it will not @@ -103,7 +114,7 @@ The program, ./configure, will scan the file system, looking for a lot of things, including the libpcap and tcp_wrapper directories and libraries and make assumptions about the platform which will allow ./configure to choose -between gcc, acc, cc, flex, lex, bison, yacc, and where your specific +between gcc, acc, cc, flex, lex, bison, yacc, pcre, sasl and where your specific version of Perl. If the libpcap or bison packages are not discovered, the ./configure diff -Nru securityonion-argus-server-3.0.6/lib/argus.spec securityonion-argus-server-3.0.8/lib/argus.spec --- securityonion-argus-server-3.0.6/lib/argus.spec 2012-04-10 12:28:37.000000000 +0000 +++ securityonion-argus-server-3.0.8/lib/argus.spec 2014-07-08 19:09:35.000000000 +0000 @@ -1,6 +1,6 @@ %define ver 3.0 %if %{?rel:0}%{!?rel:1} -%define rel 6 +%define rel 8 %endif %if %{?srcext:0}%{!?srcext:1} %define srcext .gz @@ -17,15 +17,15 @@ %description The ARGUS (Audit Record Generation And Utilization System) is an data -network transaction auditing tool. The data generated by argus can be used +network transaction auditing system. The data generated by argus can be used for a wide range of tasks such as network operations, security and performance management. -Copyright: (c) 2000-2012 QoSient, LLC +Copyright: (c) 2000-2014 QoSient, LLC -%define argusdir /usr/local -%define argusman /usr/local/share/man -%define argusdocs /usr/local/share/doc/argus-%{ver} +%define argusdir /usr +%define argusman /usr/share/man +%define argusdocs /usr/share/doc/argus %define argusbin %{argusdir}/bin %define argussbin %{argusdir}/sbin @@ -33,16 +33,19 @@ %prep %setup -n %{name}-%{ver}.%{rel} %build -./configure +./configure --prefix=%{argusdir} make %install rm -rf $RPM_BUILD_ROOT make DESTDIR="$RPM_BUILD_ROOT" install -install -D -m 0600 support/Config/argus.conf $RPM_BUILD_ROOT/etc/argus.conf -install -D -m 0755 support/Startup/argus $RPM_BUILD_ROOT/etc/rc.d/init.d/argus +install -D -m 0600 pkg/argus.conf $RPM_BUILD_ROOT/etc/argus.conf +install -D -m 0644 pkg/rhel/sysconfig/argus $RPM_BUILD_ROOT/etc/sysconfig/argus +install -D -m 0755 pkg/rhel/init.d/argus $RPM_BUILD_ROOT/etc/rc.d/init.d/argus install -D -m 0755 support/Archive/argusarchive $RPM_BUILD_ROOT/%{argusbin}/argusarchive +install -d -m 0755 $RPM_BUILD_ROOT/%{argusdocs}/support +cp -av support $RPM_BUILD_ROOT/%{argusdocs}/ %post /sbin/chkconfig --add argus @@ -72,9 +75,10 @@ %{argusbin}/argusarchive %doc %{argusdocs} -%{argusman}/man5/argus.conf.5 -%{argusman}/man8/argus.8 +%{argusman}/man5/argus.conf.5.gz +%{argusman}/man8/argus.8.gz /etc/rc.d/init.d/argus %config /etc/argus.conf +%config /etc/sysconfig/argus diff -Nru securityonion-argus-server-3.0.6/Makefile.in securityonion-argus-server-3.0.8/Makefile.in --- securityonion-argus-server-3.0.6/Makefile.in 2012-01-04 00:00:23.000000000 +0000 +++ securityonion-argus-server-3.0.8/Makefile.in 2014-08-11 18:49:58.000000000 +0000 @@ -1,6 +1,6 @@ # # Makefile for Argus -# Copyright (C) 1996-2012 QoSient, LLC +# Copyright (C) 1996-2014 QoSient, LLC # All rights reserved # This program is free software; you can redistribute it and/or modify @@ -45,7 +45,7 @@ INSTDIRS = ./argus ./events DISTFILES = AUTHORS COPYING ChangeLog INSTALL MANIFEST Makefile.in\ - CREDITS README VERSION bin common argus events doc include\ + CREDITS README VERSION bin common argus events doc include pkg debian\ lib man support aclocal.m4 acsite.m4 config configure configure.ac\ lib/argus.spec .threads @@ -99,8 +99,6 @@ (mkdir -p $(DESTDIR)@prefix@; chmod 755 $(DESTDIR)@prefix@) [ -d $(DESTDIR)$(docdir) ] || \ (mkdir -p $(DESTDIR)$(docdir); chmod 755 $(DESTDIR)$(docdir)) - $(INSTALL) -m 0644 $(srcdir)/doc/FAQ $(DESTDIR)$(docdir) - $(INSTALL) -m 0644 $(srcdir)/doc/HOW-TO $(DESTDIR)$(docdir) $(INSTALL) -m 0644 $(srcdir)/README $(DESTDIR)$(docdir) $(INSTALL) -m 0644 $(srcdir)/COPYING $(DESTDIR)$(docdir) @@ -116,6 +114,7 @@ cd ..; \ fi; \ done + rm -f $(DESTDIR)@bindir@/argusbug installdirs: ${srcdir}/config/mkinstalldirs $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)\ diff -Nru securityonion-argus-server-3.0.6/man/man5/argus.conf.5 securityonion-argus-server-3.0.8/man/man5/argus.conf.5 --- securityonion-argus-server-3.0.6/man/man5/argus.conf.5 2012-04-04 17:28:25.000000000 +0000 +++ securityonion-argus-server-3.0.8/man/man5/argus.conf.5 2014-08-26 22:59:11.000000000 +0000 @@ -1,16 +1,16 @@ .\" .\" Argus Software -.\" Copyright (c) 2000-2012 QoSient, LLC +.\" Copyright (c) 2000-2014 QoSient, LLC .\" All rights reserved. .\" .\" -.TH ARGUS.CONF 5 "07 November 2000" "argus.conf 3.0.6" +.TH ARGUS.CONF 5 "07 November 2000" "argus.conf 3.0.8" .SH NAME \fBargus.conf\fP \- \fBargus\fP resource file. .SH SYNOPSIS .B argus.conf .SH COPYRIGHT -Copyright (c) 2000-2012 QoSient, LLC All rights reserved. +Copyright (c) 2000-2014 QoSient, LLC All rights reserved. .SH DESCRIPTION This is the canonical argus configuration file. All options that @@ -65,19 +65,25 @@ daemon process, say for /etc/argus.conf, this variable should be set to "yes". -The default value is to not run as a daemon. +In the examples seen in the ./support/Startup/argus scripts, +this value is set to "yes", as the system startup strategy +requires the program to daemonize themselves, returning a value +to the system, hopefully quickly. Some systems, however, want +to daemonize the tasks themselves, and those cases, the value +must be set to "no". -This example is to support the ./support/Startup/argus script which requires that this variable be set to "yes". + +The default value is to not run as a daemon. + Commandline equivalent -d -\fBARGUS_DAEMON=\fPyes +\fBARGUS_DAEMON=\fPno .SH ARGUS_MONITOR_ID -/* Argus Monitor Data is uniquely identifiable based on the source identifier that is included in each output record. This is to allow you to work with Argus Data from multiple monitors at the @@ -112,6 +118,7 @@ \fBARGUS_MONITOR_ID\fP="en0" // String .fi + .SH ARGUS_ACCESS_PORT Argus monitors can provide a real-time remote access port @@ -222,7 +229,7 @@ an HTTP service or DNS service, you'll want to turn promiscuous mode off. -The default value is go into prmiscuous mode. +The default value goes into prmiscuous mode. Commandline equivalent -p @@ -231,26 +238,6 @@ .fi -.SH ARGUS_COLLECTOR - -By default, Argus will provide its own reliable output collection -functions, which include writing out to multiple files, supporting -multiple concurrent remote clients, independent output filtering and -strong authentication and encryption. The support for each of these -functions increases the CPU requirements of argus, and as such, in -high load environments, may not be desireable. - -When argus's collection functions are disabled, the only way to access -data is through a socket, and as a result the ARGUS_ACCESS_PORT -and ARGUS_BIND_ADDRESS mechanisms may need to be used. - -Commandline equivalent -c - -.nf -\fBARGUS_COLLECTOR=\fPyes -.fi - - .SH ARGUS_CHROOT_DIR Argus supports chroot(2) in order to control the file system that @@ -261,7 +248,7 @@ This option will cause the output file names to be relative to this directory, and so consider this when trying to find your output files. -Commandline equivalent -C +Commandline equivalent -c dir .nf \fBARGUS_CHROOT_DIR=\fP/chroot_dir @@ -277,7 +264,7 @@ a 'lesser' capable account. Recommended when argus is running as daemon. -Commandline equivalent -u +Commandline equivalent -u user .nf \fBARGUS_SETUSER_ID=\fPuser @@ -293,7 +280,7 @@ a 'lesser' capable account. Recommended when argus is running as daemon. -Commandline equivalent -g +Commandline equivalent -g group .nf \fBARGUS_SETGROUP_ID=\fPgroup diff -Nru securityonion-argus-server-3.0.6/man/man8/argus.8 securityonion-argus-server-3.0.8/man/man8/argus.8 --- securityonion-argus-server-3.0.6/man/man8/argus.8 2012-04-13 15:46:02.000000000 +0000 +++ securityonion-argus-server-3.0.8/man/man8/argus.8 2014-08-26 22:59:11.000000000 +0000 @@ -1,9 +1,9 @@ .\" .\" Argus Software -.\" Copyright (c) 2000-2012 QoSient, LLC +.\" Copyright (c) 2000-2014 QoSient, LLC .\" All rights reserved. .\" -.TH ARGUS 8 "10 November 2000" "argus 3.0.6" +.TH ARGUS 8 "10 November 2000" "argus 3.0.8" .SH NAME argus \- audit record generation and utilization system .SH SYNOPSIS @@ -14,14 +14,14 @@ .B filter expression ] .SH COPYRIGHT -Copyright (c) 2000-2012 QoSient, LLC All rights reserved. +Copyright (c) 2000-2014 QoSient, LLC All rights reserved. .SH DESCRIPTION .IX "argus command" "" "\fLargus\fP \(em Internet audit facility" .IX servers argus "" "\fLargus\fP \(em Internet audit facility" .LP .B Argus is a data network transaction auditing tool that categorizes -network packets that match the libpcap filter +and tracks network packets that match the libpcap filter .I expression into a protocol-specific network flow transaction model. .B Argus @@ -50,9 +50,9 @@ transaction logs to stdout. .LP .B Argus -can provide address based access control for its socket connection facility using -.B tcp_wrapper -technology, and it can provide strong authentication and confidentiality protection +can provide address based access control for its socket connection facility using +.B tcp_wrappers +, and it can provide strong authentication and confidentiality protection using .B SASL2 technology. Refer to package documentation to enable each of these services. @@ -100,12 +100,22 @@ characeters long. Be sure and single quote or 'escape' the double quotes so that the shell doesn't gooble up the delimiters. +This option sets a global Source identifier that can be overriden by +specific -i options. + .nf argus -e '"arg1"' argus -e \\"arg2\\" .fi .TP 5 5 +.B \-f +When reading packets from a packet capture file, the -f option causes argus +to not stop when end of file is reached, but rather to wait for additional +packets to be appended to the input. The -f option is ignored if the standard +input is a pipe, but not if it is a FIFO. + +.TP 5 5 .B \-F Use \fIconffile\fP as a source of configuration information. Options set in this file override any other specification, and so @@ -122,6 +132,21 @@ Specify the physical network \fB\fP to be audited. The default is the first network interface that is up and running. + +The syntax for specifying the interface is the same format used +in the argus.conf.5 file. The optional source id specification can +be an IPv4 address, an integer, or a string denoted using double +quotes. +.nf + + -i interface[/srcid] + -i all[/srcid] + -i dup:en0,en1/"ap01" ( en0 and en1 are in ingress and egress interfaces ) + -i bond:en0,en1/2.3.4.5 ( en0 and en1 are bonded interfaces ) + -i en0 en1 ( equivalent '-i bond:en0,en1' ) + -i dup:[bond:en0,en1],en2/3 ( in this case 3 is the srcid ) + -i en0/"en0" -i en1/"en1" ( equivalent '-i ind:en0/srcid,en1/srcid' ) +.fi .TP 5 5 .BI \-J\ Generate packet peformance data in each audit record. @@ -222,6 +247,11 @@ to encountering this flag. Allows you to eliminate the effects of the \fI/etc/argus.conf\fP file, or any argus.conf files that may have been loaded. .TP 5 5 +.B \-Z +Collect packet size information. This options turns on packet size reporting +for all flows. Argus will provide the mean, max, min and standard deviation +of the packet sizes seen during the flow status interval. +.TP 5 5 .B \fIexpression\fP This .B tcpdump(1) diff -Nru securityonion-argus-server-3.0.6/MANIFEST securityonion-argus-server-3.0.8/MANIFEST --- securityonion-argus-server-3.0.6/MANIFEST 2012-04-13 19:48:39.000000000 +0000 +++ securityonion-argus-server-3.0.8/MANIFEST 2014-08-27 19:18:20.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -19,166 +19,185 @@ * */ -Argus 3.0.6 distribution -total 896 --r--r--r-- 1 carter staff 462 Jan 3 19:15 AUTHORS +Argus 3.0.8 distribution +total 904 +-r--r--r-- 1 carter staff 515 Aug 11 14:49 AUTHORS -r--r--r-- 1 carter staff 32477 Aug 9 2010 COPYING --r--r--r-- 1 carter staff 3932 Jan 3 19:00 CREDITS --r--r--r-- 1 carter staff 6274 Apr 10 08:28 ChangeLog --r--r--r-- 1 carter staff 12351 Jan 3 19:00 INSTALL --rw-r--r-- 1 carter staff 12204 Apr 13 15:48 MANIFEST --rw-r--r-- 1 carter staff 5358 Apr 13 15:43 Makefile --r--r--r-- 1 carter staff 5127 Jan 3 19:00 Makefile.in --r--r--r-- 1 carter staff 2768 Mar 14 22:15 README --r--r--r-- 1 carter staff 6 Apr 13 11:26 VERSION +-r--r--r-- 1 carter staff 6720 Aug 11 14:49 CREDITS +-r--r--r-- 1 carter staff 8187 Jul 8 15:07 ChangeLog +-r--r--r-- 1 carter staff 12570 Jun 12 19:32 INSTALL +-r--r--r-- 1 carter staff 13915 Aug 27 15:18 MANIFEST +-r--r--r-- 1 carter staff 5054 Aug 11 14:49 Makefile.in +-r--r--r-- 1 carter staff 3480 Aug 11 14:49 README +-r--r--r-- 1 carter staff 6 Jul 14 18:45 VERSION -r--r--r-- 1 carter staff 609 Oct 12 2010 aclocal.m4 --r--r--r-- 1 carter staff 50530 Apr 12 16:07 acsite.m4 -drwxr-xr-x 33 carter staff 1122 Apr 13 15:46 argus -drwxr-xr-x 4 carter staff 136 Apr 13 15:46 bin -drwxr-xr-x 9 carter staff 306 Apr 13 15:46 common -drwxr-xr-x 6 carter staff 204 Aug 9 2010 config --rwxr-xr-x 1 carter staff 285304 Mar 15 00:29 configure --r--r--r-- 1 carter staff 10844 Mar 15 00:29 configure.ac -drwxr-xr-x 4 carter staff 136 Mar 14 23:26 doc -drwxr-xr-x 7 carter staff 238 Apr 13 15:46 events -drwxr-xr-x 36 carter staff 1224 Apr 13 15:46 include -drwxr-xr-x 3 carter staff 102 Apr 13 15:46 lib -drwxr-xr-x 4 carter staff 136 Feb 28 2011 man -drwxr-xr-x 8 carter staff 272 Jan 3 19:10 support +-r--r--r-- 1 carter staff 51085 Jun 9 08:25 acsite.m4 +drwxr-xr-x 33 carter staff 1122 Aug 27 15:17 argus +drwxr-xr-x 4 carter staff 136 Aug 27 15:17 bin +drwxr-xr-x 9 carter staff 306 Aug 27 15:17 common +drwxr-xr-x 6 carter staff 204 Jul 14 21:40 config +-rwxr-xr-x 1 carter staff 288423 Jun 17 17:53 configure +-r--r--r-- 1 carter staff 11082 Jun 18 23:48 configure.ac +drwxr-xr-x 14 carter staff 476 Jul 14 21:41 debian +drwxr-xr-x 4 carter staff 136 Aug 26 17:44 doc +drwxr-xr-x 7 carter staff 238 Aug 27 15:17 events +drwxr-xr-x 34 carter staff 1156 Aug 27 15:17 include +drwxr-xr-x 3 carter staff 102 Aug 27 15:17 lib +drwxr-xr-x 4 carter staff 136 Jul 14 21:40 man +drwxr-xr-x 6 carter staff 204 Jul 14 21:41 pkg +drwxr-xr-x 8 carter staff 272 Jul 14 21:40 support ./argus: -total 1920 --r--r--r-- 1 carter staff 9800 Jan 3 19:15 Argus802.11.c --r--r--r-- 1 carter staff 20208 Jan 3 19:15 ArgusApp.c --r--r--r-- 1 carter staff 9227 Jan 3 19:15 ArgusArp.c --r--r--r-- 1 carter staff 9373 Jan 3 19:15 ArgusAuth.c --r--r--r-- 1 carter staff 5201 Jan 3 19:15 ArgusEsp.c --r--r--r-- 1 carter staff 14156 Mar 15 01:13 ArgusEvents.c --r--r--r-- 1 carter staff 2762 Jan 3 19:15 ArgusEvents.h --r--r--r-- 1 carter staff 19488 Jan 3 19:15 ArgusFrag.c --r--r--r-- 1 carter staff 14837 Jan 3 19:15 ArgusIcmp.c --r--r--r-- 1 carter staff 4205 Jan 3 19:15 ArgusIgmp.c --r--r--r-- 1 carter staff 31629 Feb 28 16:54 ArgusIsis.c --r--r--r-- 1 carter staff 3288 Apr 12 16:09 ArgusLcp.c --r--r--r-- 1 carter staff 1573 Jan 3 19:15 ArgusMac.c --r--r--r-- 1 carter staff 169962 Mar 22 15:31 ArgusModeler.c --r--r--r-- 1 carter staff 27549 Jan 3 19:15 ArgusModeler.h --r--r--r-- 1 carter staff 49652 Mar 14 22:52 ArgusNetflow.c --r--r--r-- 1 carter staff 2255 Jan 3 19:03 ArgusNetflow.h --r--r--r-- 1 carter staff 61207 Apr 13 15:41 ArgusOutput.c --r--r--r-- 1 carter staff 6014 Jan 3 19:15 ArgusOutput.h --r--r--r-- 1 carter staff 46626 Jan 3 19:15 ArgusSflow.c --r--r--r-- 1 carter staff 1185 Jan 3 19:15 ArgusSflow.h --r--r--r-- 1 carter staff 143529 Apr 4 01:48 ArgusSource.c --r--r--r-- 1 carter staff 34408 Feb 28 16:49 ArgusSource.h --r--r--r-- 1 carter staff 40387 Apr 4 01:48 ArgusTcp.c --r--r--r-- 1 carter staff 2206 Jan 3 19:15 ArgusUdp.c --r--r--r-- 1 carter staff 29541 Jan 3 19:15 ArgusUdt.c --r--r--r-- 1 carter staff 79195 Mar 22 15:31 ArgusUtil.c --r--r--r-- 1 carter staff 11934 Jan 3 19:15 ArgusUtil.h --r-xr-xr-x 1 carter staff 3827 Jan 3 19:15 Makefile.in --r--r--r-- 1 carter staff 64328 Apr 13 15:47 argus.c --r--r--r-- 1 carter staff 3950 Jan 3 19:15 argus.h +total 2024 +-r--r--r-- 1 carter staff 9800 May 12 11:12 Argus802.11.c +-r--r--r-- 1 carter staff 21312 May 30 00:28 ArgusApp.c +-r--r--r-- 1 carter staff 9227 May 12 11:12 ArgusArp.c +-r--r--r-- 1 carter staff 9373 May 12 11:12 ArgusAuth.c +-r--r--r-- 1 carter staff 5201 May 12 11:12 ArgusEsp.c +-r--r--r-- 1 carter staff 14156 May 12 11:12 ArgusEvents.c +-r--r--r-- 1 carter staff 2762 May 12 11:12 ArgusEvents.h +-r--r--r-- 1 carter staff 19495 May 12 11:12 ArgusFrag.c +-r--r--r-- 1 carter staff 14837 May 12 11:12 ArgusIcmp.c +-r--r--r-- 1 carter staff 4205 May 12 11:12 ArgusIgmp.c +-r--r--r-- 1 carter staff 31630 May 12 11:12 ArgusIsis.c +-r--r--r-- 1 carter staff 3288 May 12 11:12 ArgusLcp.c +-r--r--r-- 1 carter staff 1573 May 12 11:12 ArgusMac.c +-r--r--r-- 1 carter staff 173831 Jul 23 16:17 ArgusModeler.c +-r--r--r-- 1 carter staff 27857 Jun 17 17:32 ArgusModeler.h +-r--r--r-- 1 carter staff 81619 Jun 18 23:48 ArgusNetflow.c +-r--r--r-- 1 carter staff 2255 May 12 10:53 ArgusNetflow.h +-r--r--r-- 1 carter staff 67138 Jun 18 23:48 ArgusOutput.c +-r--r--r-- 1 carter staff 6081 Jun 18 23:48 ArgusOutput.h +-r--r--r-- 1 carter staff 46626 May 12 11:12 ArgusSflow.c +-r--r--r-- 1 carter staff 1185 May 12 11:12 ArgusSflow.h +-r--r--r-- 1 carter staff 150268 Jul 14 18:51 ArgusSource.c +-r--r--r-- 1 carter staff 34967 Jun 17 17:32 ArgusSource.h +-r--r--r-- 1 carter staff 40852 May 12 11:12 ArgusTcp.c +-r--r--r-- 1 carter staff 2206 May 12 11:12 ArgusUdp.c +-r--r--r-- 1 carter staff 29541 May 12 11:12 ArgusUdt.c +-r--r--r-- 1 carter staff 81037 Jun 18 23:48 ArgusUtil.c +-r--r--r-- 1 carter staff 12345 May 12 15:49 ArgusUtil.h +-r-xr-xr-x 1 carter staff 3827 May 12 11:12 Makefile.in +-r--r--r-- 1 carter staff 65249 Jul 14 21:48 argus.c +-r--r--r-- 1 carter staff 3950 Jun 17 17:32 argus.h ./bin: total 32 --r-xr-xr-x 1 carter staff 10073 Apr 12 16:09 argusbug --r-xr-xr-x 1 carter staff 2350 Aug 9 2010 mkdep +-r-xr-xr-x 1 carter staff 10073 Jun 18 23:48 argusbug +-r-xr-xr-x 1 carter staff 2395 Jun 18 23:48 mkdep ./common: -total 744 --r-xr-xr-x 1 carter staff 3659 Jan 3 19:15 Makefile.in --r--r--r-- 1 carter staff 14197 Jan 3 19:15 argus_auth.c --r--r--r-- 1 carter staff 133627 Feb 16 11:53 argus_code.c --r--r--r-- 1 carter staff 83642 Jan 3 19:15 argus_filter.c --r--r--r-- 1 carter staff 109353 Mar 15 01:13 argus_util.c --r-xr-xr-x 1 carter staff 13387 Feb 16 11:55 grammar.y --r-xr-xr-x 1 carter staff 9430 Mar 15 01:01 scanner.l +total 784 +-r-xr-xr-x 1 carter staff 3659 Jun 18 23:48 Makefile.in +-r--r--r-- 1 carter staff 14197 Jun 18 23:48 argus_auth.c +-r--r--r-- 1 carter staff 146629 Jul 23 16:17 argus_code.c +-r--r--r-- 1 carter staff 87217 Jul 21 16:13 argus_filter.c +-r--r--r-- 1 carter staff 114424 Jun 18 23:48 argus_util.c +-r-xr-xr-x 1 carter staff 14718 Jul 21 16:13 grammar.y +-r-xr-xr-x 1 carter staff 11606 May 12 15:49 scanner.l ./config: -total 168 --r-xr-xr-x 1 carter staff 39923 Aug 9 2010 config.guess --r-xr-xr-x 1 carter staff 29644 Aug 9 2010 config.sub +total 184 +-r-xr-xr-x 1 carter staff 42856 May 28 15:57 config.guess +-r-xr-xr-x 1 carter staff 35740 May 28 15:58 config.sub -r-xr-xr-x 1 carter staff 5585 Aug 9 2010 install-sh -r-xr-xr-x 1 carter staff 616 Aug 9 2010 mkinstalldirs +./debian: +total 88 +-rwxr-xr-x 1 carter staff 1045 Jul 8 13:37 argus.postinst +-rwxr-xr-x 1 carter staff 160 Jul 8 13:37 argus.postrm +-rwxr-xr-x 1 carter staff 705 Jul 8 13:37 argus.preinst +-rwxr-xr-x 1 carter staff 130 Jul 8 13:37 argus.prerm +-rw-r--r-- 1 carter staff 153 Jul 11 00:24 changelog +-rw-r--r-- 1 carter staff 2 Jul 8 13:37 compat +-rw-r--r-- 1 carter staff 559 Jul 10 23:43 control +-rw-r--r-- 1 carter staff 1786 Jul 8 13:37 copyright +-rw-r--r-- 1 carter staff 7 Jul 8 13:37 docs +-rw-r--r-- 1 carter staff 264 Jul 8 13:37 install +-rwxr-xr-x 1 carter staff 442 Jul 8 13:37 rules +drwxr-xr-x 3 carter staff 102 Jul 14 21:41 source + +./debian/source: +total 8 +-rw-r--r-- 1 carter staff 12 Jul 8 13:37 format + ./doc: total 8 --r--r--r-- 1 carter staff 1305 Mar 15 00:43 README -drwxr-xr-x 3 carter staff 102 Mar 14 23:26 pdf +-r--r--r-- 1 carter staff 1333 Aug 11 14:49 README +drwxr-xr-x 4 carter staff 136 Aug 26 17:49 pdf ./doc/pdf: -total 0 -drwxr-xr-x 4 carter staff 136 Mar 14 23:26 man +total 656 +drwxr-xr-x 4 carter staff 136 Aug 26 17:45 man +-rw-r--r-- 1 carter staff 333383 Aug 26 17:49 man.pdf.tar.gz ./doc/pdf/man: total 0 -drwxr-xr-x 3 carter staff 102 Mar 14 23:26 man5 -drwxr-xr-x 3 carter staff 102 Mar 14 23:26 man8 +drwxr-xr-x 3 carter staff 102 Aug 26 17:45 man5 +drwxr-xr-x 3 carter staff 102 Aug 26 17:45 man8 ./doc/pdf/man/man5: total 304 --rw-r--r-- 1 carter staff 153471 Apr 4 13:16 argus.conf.5.pdf +-rw-r--r-- 1 carter staff 152670 Aug 26 17:49 argus.conf.5.pdf ./doc/pdf/man/man8: -total 464 --rw-r--r-- 1 carter staff 235953 Apr 4 13:16 argus.8.pdf +total 472 +-rw-r--r-- 1 carter staff 239411 Aug 26 17:49 argus.8.pdf ./events: total 40 --r-xr-xr-x 1 carter staff 3109 Jan 3 19:15 Makefile.in --r--r--r-- 1 carter staff 3217 Jan 3 19:15 README --r-xr-xr-x 1 carter staff 596 Jan 3 19:15 argus-lsof.pl --r-xr-xr-x 1 carter staff 1605 Jan 3 19:15 argus-snmp.sh --r-xr-xr-x 1 carter staff 842 Jan 3 19:15 argus-vmstat.sh +-r-xr-xr-x 1 carter staff 3113 Jul 10 10:55 Makefile.in +-r--r--r-- 1 carter staff 3217 Jun 18 23:48 README +-r-xr-xr-x 1 carter staff 596 Jun 18 23:48 argus-lsof.pl +-r-xr-xr-x 1 carter staff 1599 Jun 18 23:48 argus-snmp.sh +-r-xr-xr-x 1 carter staff 842 Jun 18 23:48 argus-vmstat.sh ./include: -total 872 +total 824 -r--r--r-- 1 carter staff 17917 Jan 26 2011 CflowdFlowPdu.h -drwxr-xr-x 16 carter staff 544 Apr 12 16:17 argus --r--r--r-- 1 carter staff 3974 Jan 3 19:15 argus-namedb.h --r--r--r-- 1 carter staff 12168 Jan 3 19:15 argus_client.h --r--r--r-- 1 carter staff 9107 Jan 3 19:15 argus_code.h --r--r--r-- 1 carter staff 6273 Apr 13 11:28 argus_compat.h --r--r--r-- 1 carter staff 14921 Mar 15 00:29 argus_config.h.in --rw-r--r-- 1 carter staff 14837 Mar 14 22:17 argus_config.h.in~ --r--r--r-- 1 carter staff 2326 Jan 3 19:15 argus_dag.h --r--r--r-- 1 carter staff 2166 Jan 3 19:15 argus_debug.h --r--r--r-- 1 carter staff 98611 Jan 3 19:15 argus_def.h +drwxr-xr-x 16 carter staff 544 Jul 14 21:40 argus +-r--r--r-- 1 carter staff 3974 Jun 12 19:17 argus-namedb.h +-r--r--r-- 1 carter staff 12168 Jun 12 19:17 argus_client.h +-r--r--r-- 1 carter staff 6414 Jul 8 15:09 argus_compat.h +-r--r--r-- 1 carter staff 15830 Jun 18 23:48 argus_config.h.in +-r--r--r-- 1 carter staff 2326 Jun 12 19:17 argus_dag.h +-r--r--r-- 1 carter staff 2166 Jun 12 19:17 argus_debug.h +-r--r--r-- 1 carter staff 98944 Jun 18 23:48 argus_def.h -r--r--r-- 1 carter staff 120 Jan 26 2011 argus_def_v2.h --r--r--r-- 1 carter staff 2987 Jan 3 19:15 argus_dscodepoints.h --r--r--r-- 1 carter staff 3726 Jan 3 19:14 argus_encapsulations.h --r--r--r-- 1 carter staff 11827 Jan 3 19:15 argus_ethernames.h --r--r--r-- 1 carter staff 4308 Jan 26 2011 argus_ethertype.h --r--r--r-- 1 carter staff 8962 Jan 3 19:15 argus_filter.h +-r--r--r-- 1 carter staff 2987 Jun 12 19:17 argus_dscodepoints.h +-r--r--r-- 1 carter staff 3726 Jun 12 19:17 argus_encapsulations.h +-r--r--r-- 1 carter staff 11827 Jun 12 19:17 argus_ethernames.h +-r--r--r-- 1 carter staff 4310 Jun 12 19:16 argus_ethertype.h +-r--r--r-- 1 carter staff 8927 Jun 17 01:11 argus_filter.h -r--r--r-- 1 carter staff 1039 Jan 26 2011 argus_gmpls.h --r--r--r-- 1 carter staff 1878 Jan 3 19:15 argus_gre.h --r--r--r-- 1 carter staff 2704 Jan 3 19:15 argus_int.h --r--r--r-- 1 carter staff 18623 Jan 3 19:15 argus_isis.h +-r--r--r-- 1 carter staff 1878 Jun 12 19:17 argus_gre.h +-r--r--r-- 1 carter staff 2704 Jun 12 19:17 argus_int.h +-r--r--r-- 1 carter staff 18623 Jun 12 19:17 argus_isis.h -r--r--r-- 1 carter staff 4248 Jan 26 2011 argus_llc.h --r--r--r-- 1 carter staff 4010 Jan 3 19:15 argus_namedb.h --r--r--r-- 1 carter staff 4448 Jan 3 19:15 argus_os.h --r--r--r-- 1 carter staff 29118 Mar 13 21:31 argus_out.h --r--r--r-- 1 carter staff 52784 Apr 13 11:28 argus_parse.h --r--r--r-- 1 carter staff 4032 Mar 15 01:13 argus_parser.h --r--r--r-- 1 carter staff 3237 Jan 3 19:15 argus_udt.h --r--r--r-- 1 carter staff 5093 Apr 13 11:28 argus_util.h --r--r--r-- 1 carter staff 43119 Jan 26 2011 argus_v3_def.h -drwxr-xr-x 7 carter staff 238 Aug 6 2010 cygwin-include -drwxr-xr-x 8 carter staff 272 Jan 3 19:11 net -drwxr-xr-x 3 carter staff 102 Aug 6 2010 netbsd-include -drwxr-xr-x 4 carter staff 136 Jan 3 19:11 netinet +-r--r--r-- 1 carter staff 4010 Jun 12 19:17 argus_namedb.h +-r--r--r-- 1 carter staff 4559 Jun 12 19:17 argus_os.h +-r--r--r-- 1 carter staff 29477 Jun 18 23:48 argus_out.h +-r--r--r-- 1 carter staff 52784 Jun 12 19:17 argus_parse.h +-r--r--r-- 1 carter staff 4615 Jun 18 23:48 argus_parser.h +-r--r--r-- 1 carter staff 3237 Jun 12 19:17 argus_udt.h +-r--r--r-- 1 carter staff 5174 Jun 18 23:48 argus_util.h +-r--r--r-- 1 carter staff 43120 Jun 12 19:17 argus_v3_def.h +drwxr-xr-x 7 carter staff 238 Jul 14 21:40 cygwin-include +drwxr-xr-x 8 carter staff 272 Jul 14 21:40 net +drwxr-xr-x 3 carter staff 102 Jul 14 21:40 netbsd-include +drwxr-xr-x 4 carter staff 136 Dec 12 2013 netinet ./include/argus: total 248 --r--r--r-- 1 carter staff 22533 Jan 3 19:11 CflowdFlowPdu.h +-r--r--r-- 1 carter staff 23545 Jun 12 19:14 CflowdFlowPdu.h -r--r--r-- 1 carter staff 3786 Jan 26 2011 bootp.h -r--r--r-- 1 carter staff 3262 Oct 12 2010 cflowd.h --r--r--r-- 1 carter staff 4553 Jan 3 19:15 cons_def.h --r--r--r-- 1 carter staff 4368 Apr 13 11:28 cons_out.h --r--r--r-- 1 carter staff 8596 Jan 3 19:15 extract.h --r--r--r-- 1 carter staff 3781 Jan 3 19:15 fddi.h --r--r--r-- 1 carter staff 9142 Feb 13 10:49 gencode.h +-r--r--r-- 1 carter staff 4553 Jun 12 19:17 cons_def.h +-r--r--r-- 1 carter staff 4368 Jun 12 19:17 cons_out.h +-r--r--r-- 1 carter staff 8596 Jun 12 19:17 extract.h +-r--r--r-- 1 carter staff 3781 Jun 12 19:17 fddi.h +-r--r--r-- 1 carter staff 9916 Jun 18 23:48 gencode.h -r--r--r-- 1 carter staff 956 Oct 12 2010 global.h -r--r--r-- 1 carter staff 18685 Oct 12 2010 ieee802_11.h -r--r--r-- 1 carter staff 1470 Oct 12 2010 md5.h @@ -188,10 +207,10 @@ ./include/cygwin-include: total 0 -drwxr-xr-x 4 carter staff 136 Aug 9 2010 linux -drwxr-xr-x 3 carter staff 102 Aug 9 2010 net -drwxr-xr-x 11 carter staff 374 Aug 9 2010 netinet -drwxr-xr-x 3 carter staff 102 Aug 9 2010 protocols +drwxr-xr-x 4 carter staff 136 Jul 14 21:40 linux +drwxr-xr-x 3 carter staff 102 Jul 14 21:40 net +drwxr-xr-x 11 carter staff 374 Jul 14 21:40 netinet +drwxr-xr-x 3 carter staff 102 Jul 14 21:40 protocols drwxr-xr-x 3 carter staff 102 Aug 9 2010 sys ./include/cygwin-include/linux: @@ -226,11 +245,11 @@ ./include/net: total 72 -r--r--r-- 1 carter staff 3222 Jan 26 2011 arcnet.h --r--r--r-- 1 carter staff 2172 Jan 3 19:15 etherdefs.h --r--r--r-- 1 carter staff 13419 Dec 28 14:23 nff.h +-r--r--r-- 1 carter staff 2172 Jun 18 23:48 etherdefs.h +-r--r--r-- 1 carter staff 12674 Jun 17 01:11 nff.h -r--r--r-- 1 carter staff 3563 Jan 26 2011 ppp.h -r--r--r-- 1 carter staff 3873 Jan 26 2011 slcompress.h --r--r--r-- 1 carter staff 1103 Jan 3 19:15 slip.h +-r--r--r-- 1 carter staff 1103 Jun 18 23:48 slip.h ./include/netbsd-include: total 0 @@ -242,56 +261,91 @@ ./include/netinet: total 24 --r--r--r-- 1 carter staff 4892 Jan 3 19:15 rtp.h +-r--r--r-- 1 carter staff 4892 Jun 18 23:48 rtp.h -r--r--r-- 1 carter staff 2182 Jan 26 2011 tcp_fsm.h ./lib: total 8 --r--r--r-- 1 carter staff 1795 Apr 10 08:28 argus.spec +-r--r--r-- 1 carter staff 1998 Jul 8 15:09 argus.spec ./man: total 0 -drwxr-xr-x 3 carter staff 102 Apr 4 13:16 man5 -drwxr-xr-x 3 carter staff 102 Apr 13 11:45 man8 +drwxr-xr-x 3 carter staff 102 Aug 26 17:48 man5 +drwxr-xr-x 3 carter staff 102 Aug 26 17:48 man8 ./man/man5: total 40 --r-xr-xr-x 1 carter staff 20005 Apr 4 13:28 argus.conf.5 +-r-xr-xr-x 1 carter staff 19625 Aug 26 18:59 argus.conf.5 ./man/man8: total 24 --r-xr-xr-x 1 carter staff 9998 Apr 13 11:46 argus.8 +-r-xr-xr-x 1 carter staff 11249 Aug 26 18:59 argus.8 + +./pkg: +total 64 +-r--r--r-- 1 carter staff 4201 Jul 11 00:45 README +-r--r--r-- 1 carter staff 21769 Jul 8 13:35 argus.conf +drwxr-xr-x 5 carter staff 170 Jul 14 21:41 rhel +drwxr-xr-x 5 carter staff 170 Jul 14 21:41 ubuntu + +./pkg/rhel: +total 8 +-rw-r--r-- 1 carter staff 1916 Jul 10 21:13 README +drwxr-xr-x 3 carter staff 102 Jul 14 21:41 init.d +drwxr-xr-x 3 carter staff 102 Jul 14 21:41 sysconfig + +./pkg/rhel/init.d: +total 8 +-r-xr-xr-x 1 carter staff 2796 Jul 8 13:35 argus + +./pkg/rhel/sysconfig: +total 8 +-r--r--r-- 1 carter staff 551 Jul 8 13:35 argus + +./pkg/ubuntu: +total 8 +-rw-r--r-- 1 carter staff 1913 Jul 10 21:14 README +drwxr-xr-x 3 carter staff 102 Jul 14 21:41 default +drwxr-xr-x 3 carter staff 102 Jul 14 21:41 init.d + +./pkg/ubuntu/default: +total 8 +-rw-r--r-- 1 carter staff 551 Jul 8 13:35 argus + +./pkg/ubuntu/init.d: +total 16 +-rwxr-xr-x 1 carter staff 4384 Jul 8 13:35 argus ./support: total 8 -drwxr-xr-x 4 carter staff 136 Jan 3 19:11 Archive -drwxr-xr-x 3 carter staff 102 Apr 4 15:15 Config -drwxr-xr-x 3 carter staff 102 Apr 13 14:26 Deployment --r--r--r-- 1 carter staff 2026 Jan 3 19:15 README -drwxr-xr-x 6 carter staff 204 Jan 3 19:11 Startup -drwxr-xr-x 4 carter staff 136 Jan 3 19:12 System +drwxr-xr-x 4 carter staff 136 Jul 14 21:40 Archive +drwxr-xr-x 3 carter staff 102 Jul 25 12:48 Config +drwxr-xr-x 3 carter staff 102 Jul 14 21:40 Deployment +-r--r--r-- 1 carter staff 2026 Jun 18 23:48 README +drwxr-xr-x 6 carter staff 204 Jul 14 21:40 Startup +drwxr-xr-x 4 carter staff 136 Dec 12 2013 System ./support/Archive: total 48 -r--r--r-- 1 carter staff 5181 Aug 9 2010 README.argusarchive --r-xr-xr-x 1 carter staff 14629 Jan 3 19:15 argusarchive +-r-xr-xr-x 1 carter staff 14629 Jun 18 23:48 argusarchive ./support/Config: total 48 --r-xr-xr-x 1 carter staff 21342 Feb 13 12:14 argus.conf +-r-xr-xr-x 1 carter staff 21584 Jul 25 12:57 argus.conf ./support/Deployment: total 16 --r-xr-xr-x@ 1 carter staff 7623 Apr 13 15:41 sample +-r-xr-xr-x 1 carter staff 7623 Jun 18 23:48 sample ./support/Startup: total 32 --r--r--r-- 1 carter staff 3693 Jan 3 19:15 README --r--r--r-- 1 carter staff 3104 Jan 3 19:15 argus --r--r--r-- 1 carter staff 559 Dec 18 16:54 argus.service --r--r--r-- 1 carter staff 723 Dec 18 16:59 com.qosient.argus.plist +-r--r--r-- 1 carter staff 3693 Jun 18 23:48 README +-r--r--r-- 1 carter staff 3104 Jun 18 23:48 argus +-r--r--r-- 1 carter staff 559 Dec 18 2011 argus.service +-r--r--r-- 1 carter staff 723 Dec 18 2011 com.qosient.argus.plist ./support/System: total 16 --r-xr-xr-x 1 carter staff 1170 Jan 3 19:15 crontab --r-xr-xr-x 1 carter staff 1094 Jan 3 19:15 magic +-r-xr-xr-x 1 carter staff 1170 Jun 18 23:48 crontab +-r-xr-xr-x 1 carter staff 1094 Jun 18 23:48 magic diff -Nru securityonion-argus-server-3.0.6/pkg/argus.conf securityonion-argus-server-3.0.8/pkg/argus.conf --- securityonion-argus-server-3.0.6/pkg/argus.conf 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/pkg/argus.conf 2014-07-08 17:35:33.000000000 +0000 @@ -0,0 +1,660 @@ +# +# Argus Software +# Copyright (c) 2000-2014 QoSient, LLC +# All rights reserved. +# +# Example argus.conf +# +# Argus will open this argus.conf if its installed as /etc/argus.conf. +# It will also search for this file as argus.conf in directories +# specified in $ARGUSPATH, or $ARGUSHOME, $ARGUSHOME/lib, +# or $HOME, $HOME/lib, and parse it to set common configuration +# options. All values in this file can be overriden by command +# line options, or other files of this format that can be read in +# using the -F option. +# +# +# Variable Syntax +# +# Variable assignments must be of the form: +# +# VARIABLE=value +# VARIABLE="compound values" +# +# with no white space between the VARIABLE and the '=' sign. +# +# +# Comments +# +# Comments are supported using a '#' as the first character +# in the string, such as this string that you are reading. +# +# Embedded comments are supported preceeded by a " //" as you +# see in the C language. The preceeding white space is very important. +# The space or tab is absolutely required to delimit the end of the +# variable values and the beginning of the comment. Without the space, +# the comment will be included as a part of the configuration variable. +# +# VARIABLE=value // comment +# VARIABLE="compound values" // comment +# +# +# Variable Explanations +# +# The Argus can be configured to support a large number of +# flow types. The Argus can provide either type, i.e. +# uni-directional or bi-directional flow tracking and +# the flow can be further defined by specifying the key. +# The argus supports a set of well known key strategies, +# such as 'CLASSIC_5_TUPLE', 'LAYER_2', 'LAYER_2_MATRIX', +# 'LAYER_2_MATRIX', 'MPLS', and/or 'VLAN', or the argus can +# be configured to # formulate key strategies from a list of +# the specific objects that the Argus understands. See the +# man page for a complete description. +# +# The default is the classic 5-tuple IP flow, CLASSIC_5_TUPLE. +# + +ARGUS_FLOW_TYPE="Bidirectional" +ARGUS_FLOW_KEY="CLASSIC_5_TUPLE" +#ARGUS_FLOW_KEY="CLASSIC_5_TUPLE+LAYER_2" + + +# Argus is capable of running as a daemon, doing all the right things +# that daemons do. When this configuration is used for the system +# daemon process, say for /etc/argus.conf, this variable should be +# set to "yes". +# +# The default value is to not run as a daemon. +# +# This example is to support the ./support/Startup/argus script +# which works when this variable be set to "yes". +# +# Commandline equivalent -d +# + +#ARGUS_DAEMON=no + + +# Argus Monitor Data is uniquely identifiable based on the source +# identifier that is included in each output record. This is to +# allow you to work with Argus Data from multiple monitors at the +# same time. The ID is 32 bits long, and argus suppors a number of +# formats as legitimate values. Argus support unsigned ints, IPv4 +# addresses and 4 bytes strings, as values. +# +# The formats are discerned from the values provided. Double-quoted +# values are treated as strings, and are truncated to 4 characters. +# Non-quoted values are tested for whether they are hostnames, and if +# not, then they are tested wheter they are numbers. +# +# The configuration allows for you to use host names, however, do +# have some understanding how `hostname` will be resolved by the +# nameserver before commiting to this strategy completely. +# +# For convenience, argus supports the notion of "`hostname`" for +# assigning the probe's id. This is to support management of +# large deployments, so you can have one argus.conf file that works +# for a lot of probes. +# +# For security, argus does not rely on system programs, like hostname.1. +# It implements the logic of hostname itself, so don't try to run +# arbitrary programs using this method, because it won't work. +# +# Commandline equivalent -e +# + +#ARGUS_MONITOR_ID=`hostname` // IPv4 address returned +#ARGUS_MONITOR_ID=10.2.45.3 // IPv4 address +#ARGUS_MONITOR_ID=2435 // Number +#ARGUS_MONITOR_ID="en0" // String + + +# Argus monitors can provide a real-time remote access port +# for collecting Argus data. This is a TCP based port service and +# the default port number is tcp/561, the "experimental monitor" +# service. This feature is disabled by default, and can be forced +# off by setting it to zero (0). +# +# When you do want to enable this service, 561 is a good choice, +# as all ra* clients are configured to try this port by default. +# +# Commandline equivalent -P +# + +#ARGUS_ACCESS_PORT=561 + + +# When remote access is enabled (see above), you can specify that Argus +# should bind only to a specific IP address. This is useful, for example, +# in restricting access to the local host, or binding to a private +# interface while capturing from another. +# +# You can provide multiple addresses, separated by commas, or on multiple +# lines. +# +# The default is to bind to any IP address. +# +# Commandline equivalent -B +# + +#ARGUS_BIND_IP="::1,127.0.0.1" +#ARGUS_BIND_IP="127.0.0.1" +#ARGUS_BIND_IP="192.168.0.68" + + +# By default, Argus will open the first appropriate interface on a +# system that it encounters. For systems that have only one network +# interface, this is a reasonable thing to do. But, when there are +# more than one suitable interface, you should specify the +# interface(s) Argus should use either on the command line or in this +# file. +# +# Argus can track packets from any or all interfaces, concurrently. +# The interfaces can be tracked as: +# 1. independant - this is where argus tracks flows from each +# interface independant from the packets seen on any other +# interface. This is useful for hosts/routers that +# have full-duplex interfaces, and you want to distinguish +# flows based on their interface. There is an option to specify +# a distinct srcid to each independant modeler. +# +# 2. duplex - where argus tracks packets from 2 interfaces +# as if they were two half duplex streams of the same link. +# Because there is a single modeler tracking the 2 +# interfaces, there is a single srcid that can be passed as +# an option. +# +# 3. bonded - where argus tracks packets from multiple interfaces +# as if they were from the same stream. Because there is a +# single modeler tracking the 2 interfaces, there is a single +# srcid that can be passed as an option. +# +# Interfaces can be specified as groups using '[',']' notation, to build +# flexible definitions of packet sources. However, each interface +# should be referenced only once (this is due to performance and OS +# limitations, so if your OS has no problem with this, go ahead). +# +# The lo (loopback) interface will be included only if it is specifically +# indicated in the option. +# +# The syntax for specifying this either on the command line or in this file: +# -i ind:all +# -i dup:en0,en1/srcid +# -i bond:en0,en1/srcid +# -i dup:[bond:en0,en1],en2/srcid +# -i en0/srcid -i en1/srcid (equivalent '-i ind:en0/srcid,en1/srcid') +# -i en0 en1 (equivalent '-i bond:en0,en1') +# -i en1(dlt)/srcid -i en1(dlt)/srcid +# +# In all cases, if there is a "-e srcid" provided, the srcid provided is used +# as the default. If a srcid is specified using this option, it overrides +# the default. +# +# Srcid's are specified using the notion used for ARGUS_MONITOR_ID, as above. +# +# Commandline equivalent -i +# + +#ARGUS_INTERFACE=any +#ARGUS_INTERFACE=ind:all +#ARGUS_INTERFACE=ind:en0/192.168.0.68,en2/192.168.2.1 +#ARGUS_INTERFACE=ind:en0/"en0",en2/19234 +#ARGUS_INTERFACE=en0 + + +# By default, Argus will put its interface in promiscuous mode +# in order to monitor all the traffic that can be collected. +# This can put an undo load on systems. + +# If the intent is to monitor only the network activity of +# the specific system, say to measure the performance of +# an HTTP service or DNS service, you'll want to turn +# promiscuous mode off. +# +# The default value is go into prmiscuous mode. +# +# Commandline equivalent -p +# + +#ARGUS_GO_PROMISCUOUS=yes + + +# Argus supports chroot(2) in order to control the file system that +# argus exists in and can access. Generally used when argus is running +# with privileges, this limits the negative impacts that argus could +# inflict on its host machine. +# +# This option will cause the output file names to be relative to this +# directory, and so consider this when trying to find your output files. +# +# Commandline equivalent -c +# + +#ARGUS_CHROOT_DIR=/chroot_dir + + +# Argus can be configured to enable detailed control plane +# flow monitoring for specific control plane protocols. +# +# This feature requires full packet capture for the monitored +# interface in order to capture the complete control plane +# protocol, and will have a performance impact on the sensor. +# +# The default is to not turn this feature on. +# +# Commandline equivalent -C +# + +#ARGUS_CAPTURE_FULL_CONTROL_DATA=no + + +# Argus can be directed to change its user id using the setuid() system +# call. This is can used when argus is started as root, in order to +# access privileged resources, but then after the resources are opened, +# this directive will cause argus to change its user id value to +# a 'lesser' capable account. Recommended when argus is running as +# daemon. +# +# Commandline equivalent -u +# + +#ARGUS_SETUSER_ID=user + + +# Argus can be directed to change its group id using the setgid() system +# call. This is can used when argus is started as root, in order to +# access privileged resources, but then after the resources are opened, +# this directive can be used to change argu's group id value to +# a 'lesser' capable account. Recommended when argus is running as +# daemon. +# +# Commandline equivalent -g +# + +#ARGUS_SETGROUP_ID=group + + +# Argus can write its output to one or a number of files. +# The default limit is 5 concurrent files, each with their +# own independant filters. +# +# The format is: +# ARGUS_OUTPUT_FILE=/full/path/file/name +# ARGUS_OUTPUT_FILE="/full/path/file/name filter" +# +# Most sites will have argus write to a file, for reliablity. +# The example file name is used here as supporting programs, +# such as ./support/Archive/argusarchive are configured to use +# this file (with any chroot'd directory prepended). +# +# Commandline equivalent -w +# + +#ARGUS_OUTPUT_FILE=/var/log/argus/argus.out + + +# Argus can push its output to one or a number of remote hosts. +# The default limit is 5 concurrent output streams, each with their +# own independant filters. +# +# The format is: +# ARGUS_OUTPUT_STREAM="URI [filter]" +# ARGUS_OUTPUT_STREAN="argus-udp://multicastGroup:port +# ARGUS_OUTPUT_STREAN="argus-udp://host:port 'tcp and not udp'" +# +# Most sites will have argus listen() for remote sites to request argus data, +# using a "pull" data model. But for some sites and applications, pushing +# records without explicit registration is desired. This option will cause +# argus to transmit records that match the optional filter, to the configured +# targets using UDP as the transport mechanism. +# +# The primary purpose for this feature is to multicast argus records to +# a number of listeners on an interface, but it is not limited to this +# purpose. The multicast TTL is set to 128 by default, so that you can +# send records some distance. +# +# Commandline equivalent -w argus-udp://host:port +# + +#ARGUS_OUTPUT_STREAM=argus-udp://224.0.20.21:561 + + +# When Argus is configured to run as a daemon, with the -d +# option, Argus can store its pid in a file, to aid in +# managing the running daemon. However, creating a system +# pid file requires priviledges that may not be appropriate +# for all cases. +# +# When configured to generate a pid file, if Argus cannot +# create the pid file, it will fail to run. This variable +# is available to override the default, in case this gets +# in your way. +# +# The default value is to generate a pid. The default +# path for the pid file, is '/var/run'. +# +# No Commandline equivalent +# + +#ARGUS_SET_PID=yes +#ARGUS_PID_PATH="/var/run" + + +# Argus will periodically report on a flow's activity every +# ARGUS_FLOW_STATUS_INTERVAL seconds, as long as there is +# new activity on the flow. This is so that you can get a +# multiple status reports into the activity of a flow. The +# default is 5 seconds, but this number may be too low or +# too high depending on your uses. Argus does suppport +# a minimum value of 0.000001 seconds. Values under 1 sec +# are very useful for doing measurements in a controlled +# experimental environment where the number of flows is small. +# +# Because the status interval affects the memory utilization +# of the monitor, find the minimum acceptable value is +# recommended. +# +# Commandline equivalent -S +# + +ARGUS_FLOW_STATUS_INTERVAL=5 + + +# Argus will periodically report on a its own health, providing +# interface status, total packet and bytes counts, packet drop +# rates, and flow oriented statistics. +# +# These records can be used as "keep alives" for periods when +# there is no network traffic to be monitored. +# +# The default value is 300 seconds, but a value of 60 seconds is +# very common. +# +# Commandline equivalent -M +# + +ARGUS_MAR_STATUS_INTERVAL=60 + + +# Argus has a number of flow state timers that specify how long argus +# will 'remember' the caches of specific flows after they have gone +# idle. +# +# The default values have been chosen to aggresively timeout flow +# caches to conserve memory utilization. Increasing values can have +# an impact on argus memory use, so take care when modifying values. +# +# The maxium value for any timeout is 65534 seconds. +# +# If you think there is a flow type that doesn't have appropriate +# timeout support, send email to the developer's list, we'll add one +# for you. +# + +#ARGUS_IP_TIMEOUT=30 +#ARGUS_TCP_TIMEOUT=60 +#ARGUS_ICMP_TIMEOUT=5 +#ARGUS_IGMP_TIMEOUT=30 +#ARGUS_FRAG_TIMEOUT=5 +#ARGUS_ARP_TIMEOUT=5 +#ARGUS_OTHER_TIMEOUT=30 + + +# If compiled to support this option, Argus is capable of +# generating a lot of debug information. +# +# The default value is zero (0). +# +# Commandline equivalent -D +# + +#ARGUS_DEBUG_LEVEL=0 + + +# Argus can be configured to report on flows in a manner than +# provides the best information for calculating application +# reponse times and network round trip times. +# +# The default value is to not generate this data. +# +# Commandline equivalent -R +# + +#ARGUS_GENERATE_RESPONSE_TIME_DATA=no + + +# Argus can be configured to generate packet size information +# on a per flow basis, which provides the max and min packet +# size seen . The default value is to not generate this data. +# +# Commandline equivalent -Z +# + +#ARGUS_GENERATE_PACKET_SIZE=yes + + +# Argus can be configured to generate packet jitter information +# on a per flow basis. The default value is to not generate +# this data. +# +# Commandline equivalent -J +# + +#ARGUS_GENERATE_JITTER_DATA=no + + +# Argus can be configured to provide MAC addresses in +# it audit data. The default value is to not generate +# this data. +# +# Commandline equivalent -m +# + +#ARGUS_GENERATE_MAC_DATA=yes + + +# Argus can be configured to generate metrics that include +# the application byte counts as well as the packet count +# and byte counters. +# +# Commandline equivalent -A +# + +#ARGUS_GENERATE_APPBYTE_METRIC=yes + + +# Argus by default, generates extended metrics for TCP +# that include the connection setup time, window sizes, +# base sequence numbers, and retransmission counters. +# You can suppress this detailed information using this +# variable. +# +# No commandline equivalent +# + +#ARGUS_GENERATE_TCP_PERF_METRIC=yes + + +# Argus by default, generates a single pair of timestamps, +# for the first and last packet seen on a given flow, during +# the obseration period. For bi-directional flows, this +# results in loss of some information. By setting this +# variable to 'yes', argus will store start and ending +# timestamps for both directions of the flow. +# +# No commandline equivalent +# + +#ARGUS_GENERATE_BIDIRECTIONAL_TIMESTAMPS=yes + + +# Argus can be configured to capture a number of user data +# bytes from the packet stream. +# +# The default value is to not generate this data. +# +# Commandline equivalent -U +# + +#ARGUS_CAPTURE_DATA_LEN=32 + + +# Argus uses the packet filter capabilities of libpcap. If +# there is a need to not use the libpcap filter optimizer, +# you can turn it off here. The default is to leave it on. +# +# Commandline equivalent -O +# + +#ARGUS_FILTER_OPTIMIZER=yes + + +# You can provide a filter expression here, if you like. +# It should be limited to 2K in length. The default is to +# not filter. +# +# The commandline filter will override this filter expression. +# + +#ARGUS_FILTER="" + + + +# Argus allows you to capture packets in tcpdump() format if the source +# of the packets is a tcpdump() formatted file or live packet source. +# +# Specify the path to the packet capture file here. +# +# Argus can be further configured to either capture all packets (default) that +# it receives, or to capture only the packets that cause internal errors, +# such as those that can't be classified into an appropritate flow model. +# +# Specify the path to the packet capture file here. +# + +#ARGUS_PACKET_CAPTURE_FILE="/var/log/argus/packet.out" +#ARGUS_PACKET_CAPTURE_ON_ERROR="no" + + +# Argus supports the use of SASL to provide strong +# authentication and confidentiality protection. +# +# The policy that argus uses is controlled through +# the use of a minimum and maximum allowable protection +# strength. Set these variable to control this policy. +# + +#ARGUS_MIN_SSF=40 +#ARGUS_MAX_SSF=128 + + +# Argus supports setting environment variables to enable +# functions required by the kernel or shared libraries. +# This feature is intended to support libraries such as +# the net pf_ring support for libpcap as supported by +# code at http://public.lanl.gov/cpw/ +# +# Setting environment variables in this way does not affect +# internal argus variable in any way. As a result, you +# can't set ARGUS_PATH using this feature. +# +# Care should must be taken to assure that the value given +# the variable conform's to your systems putenv.3 system call. +# You can have as many of these directives as you like. +# +# The example below is intended to set a libpcap ring buffer +# length to 300MB, if your system supports this feature. +# + +#ARGUS_ENV="PCAP_MEMORY=300000" + + +# Argus can be configured to discover tunneling protocols +# above the UDP transport header, specifically Teredo +# (IPv6 over UDP). The algorithm is simple and so, having +# this on by default may generate false tunnel matching. + +# The default is to not turn this feature on. + +#ARGUS_TUNNEL_DISCOVERY="no" + + + +# Argus can be configured to identify and track duplicate +# packets as a separate metric. While the algorithms are +# traffic type specific, you can use this strategy to +# identify problems within your packet collection infrastructure. + +# The default is to not turn this feature on. + +#ARGUS_TRACK_DUPLICATES="no" + + + +# Argus can be configured to be self synchronizing with other +# argi. This involves using state from packets contents to +# synchronize the flow reporting. +# + +#ARGUS_SELF_SYNCHRONIZE=yes + + + +# Argus supports the generation of host originated processes +# to gather additional data and statistics. These include +# periodic processes to poll for SNMP data, as an example, or +# to collect host statistics through reading procfs(). Or +# single run programs that run at a specified time. +# +# These argus events, are generated from the complete list of +# ARGUS_EVENT_DATA directives that are specified here. +# +# The syntax is: +# Syntax is: "method:path|prog:interval[:postproc]" +# Where: method = [ "file" | "prog" ] +# pathname | program = "%s" +# interval = %d[smhd] [ zero means run once ] +# postproc = [ "compress" | "compress2" ] +# +#ARGUS_EVENT_DATA="prog:/usr/local/bin/argus-vms:20s:compress" +#ARGUS_EVENT_DATA="prog:/usr/local/bin/argus-snmp:1m:compress" +#ARGUS_EVENT_DATA="file:/proc/vmstat:30s:compress" +#ARGUS_EVENT_DATA="prog:/usr/bin/uptime:30s" +#ARGUS_EVENT_DATA="prog:/usr/local/bin/argus-lsof:30s:compress" + + +# This version of Argus supports keystroke detection and counting for +# TCP connections, with specific algoritmic support for SSH connections. +# +# The ARGUS_KEYSTROKE variable turns the feature on. Values for +# this variable are: +# ARGUS_KEYSTROKE="yes" - turn on TCP flow tracking +# ARGUS_KEYSTROKE="tcp" - turn on TCP flow tracking +# ARGUS_KEYSTROKE="ssh" - turn on SSH specific flow tracking +# ARGUS_KEYSTROKE="no" [default] +# +# The algorithm uses a number of variables, all of which can be +# modifed using the ARGUS_KEYSTROKE_CONF descriptor, which is a +# semicolon (';') separated set of variable assignments. Here is +# the list of supported variables: +# +# DC_MIN - (int) Minimum client datagram payload size in bytes (48) +# DC_MAX - (int) Maximum client datagram payload size in bytes (128) +# GS_MAX - (int) Maximum server packet gap (3) +# DS_MIN - (int) Minimum server datagram payload size in bytes (24) +# DS_MAX - (int) Maximum server datagram payload size in bytes (256) +# IC_MIN - (int) Minimum client interpacket arrival time (50000 microseconds) +# LCS_MAX - (int) Maximum something - Not sure what this is +# GPC_MAX - (int) Maximum client packet gap (3) +# ICR_MIN - (float) Minimum client/server interpacket arrival ratio (0.816) +# ICR_MAX - (float) Maximum client/server interpacket arrival ratio (1.122) +# +# All variables have default values, this variable is used to override +# those values. The syntax for the variable is: +# +# ARGUS_KEYSTROKE_CONF="DC_MIN=20;DS_MIN=20" +# + +#ARGUS_KEYSTROKE="no" +#ARGUS_KEYSTROKE_CONF="GPC_MAX=4" diff -Nru securityonion-argus-server-3.0.6/pkg/README securityonion-argus-server-3.0.8/pkg/README --- securityonion-argus-server-3.0.6/pkg/README 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/pkg/README 2014-07-11 04:45:32.000000000 +0000 @@ -0,0 +1,98 @@ +######################################################################## + Note: These materials are a work-in-progress and not yet + meant for production use. +######################################################################## + +/* + * Argus Software. Tools to read, analyze and manage Argus data. + * Copyright (c) 2000-2014 QoSient, LLC + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + * + */ + +Argus 3.0 +QoSient, LLC +argus@qosient.com +http://qosient.com/argus + +This directory tree contains files used to create standard install materials +for various operating system distributions. The idea is to be able to +install and configure argus in the ways familiar to system administrators. + +Files that reside in this directory are default argus configurations which +are common across all distributions. Files that differ by distribution +are stored in sub-directories. For most distributions, the initial bootstrap +for the packaging instructions lies in fixed directories at the root of +the source tarball. + +In order to do packaging, one must install distribution-specific packaging tools +in addition to the normal complement of development tools, e.g. compilers. +The tools can be used to create both source and binary packages. + +The rest of this README discusses the individual distributions. +Look also at the README files in the subdirectories. + +######################################################################## + RedHat Enterprise Linux (and derivatives such as Fedora and CentOS ) +######################################################################## +subdirectory: rhel/ +bootstrap packaging: lib/argus.spec +default prefix: /usr + +argus has for some time provided the .spec file which can be used +to build RPMs directly from the compressed tarball with: + rpmbuild -ta argus-n.n.n.tar.gz + +Descriptions of RPM packaging for RHEL-based distibutions can be found at: + http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/index.html + +The .spec file is divided into a number of sections describing how to build +binaries, where production binaries and configuration files will be placed, +and commands to be executed pre- and post-installation. + +A single .spec file can describe building multiple RPMS + +######################################################################## + Debian Linux ( here the Ubuntu variant ) +######################################################################## + +subdirectory: ubuntu/ +bootstrap packaging: debian/ +default prefix: /usr + +Debian-based distribution use a directory of files to specify the +build, install, pre- and post-installation commands. There can +be multiple versions of the files describing multiple packages. + +To learn about the packaging files in the 'debian' directory, see: + http://packaging.ubuntu.com/html/debian-dir-overview.html + +Note: The debian/control needs work, especially Build-Depends + +Note: Pay particular attention the formatting instructions for + the debian/changelog file. In particular, the line describing + the maintainer must *exactly* match your GPG-key when + signing a package. + +Canonical, the overseer of Ubuntu, provides via Launchpad.net a +place where one can practice building and distributing packages +either as group projects or Personal Package Archives (PPA). +For information and instructions, see: + http://packaging.ubuntu.com/html/packaging-new-software.html +and for package naming conventions + https://help.launchpad.net/Packaging/PPA/BuildingASourcePackage + diff -Nru securityonion-argus-server-3.0.6/pkg/rhel/init.d/argus securityonion-argus-server-3.0.8/pkg/rhel/init.d/argus --- securityonion-argus-server-3.0.6/pkg/rhel/init.d/argus 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/pkg/rhel/init.d/argus 2014-07-08 17:35:33.000000000 +0000 @@ -0,0 +1,114 @@ +#!/bin/sh +# +# Copyright (c) 2000-2014 QoSient, LLC +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software and +# its documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and +# that both that copyright notice and this permission notice appear +# in supporting documentation, and that the name of QoSient not be +# used in advertising or publicity pertaining to distribution of the +# software without specific, written prior permission. +# +# QOSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +# SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS, IN NO EVENT SHALL QOSIENT, LLC BE LIABLE FOR ANY +# SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# argus This shell script takes care of starting and stopping +# argus, on RH Linux. Should be useful for other versions. +# +# chkconfig: 2345 55 45 +# description: argus-3.0 generates network transaction audit records. +# processname: argus +# config: /etc/argus.conf + +# Source function library. +if [ -f /etc/init.d/functions ]; then +. /etc/init.d/functions +fi + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 1 + +# +# The assumption here is that /etc/argus.conf specifies ARGUS_DAEMON=no. +# If not the system will hang running argus. If this is not set to the +# default, change DAEMON_ARGS in /etc/sysconfig/argus +# + +DAEMON_ARGS="-d" + + +# Set argus path by defining $ARGUSHOME for this script. +# If argus was installed in another way, modify /etc/sysconfig/argus +# to specify ARGUSDIR where the argus binary was installed. + +ARGUSDIR=/usr/sbin + +# Source argus configuration. +. /etc/sysconfig/argus + +ARGUSHOME=$ARGUSDIR +export PATH=$ARGUSHOME:$PATH + +[ -f $ARGUSHOME/argus ] || exit 1 + +RETVAL=0 + +start() { + # Start daemons. + + echo -n "Starting argus: " + argus $DAEMON_ARGS > /dev/null 2>&1 && success || failure + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/argus + echo +} + +stop() { + # Stop daemons. + echo -n "Shutting down argus: " + killproc argus + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/argus + echo +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + stop + start + RETVAL=$? + ;; + condrestart) + if [ -f /var/lock/subsys/argus ]; then + stop + start + RETVAL=$? + fi + ;; + status) + status argus + RETVAL=$? + ;; + *) + echo "Usage: argus {start|stop|restart|condrestart|status}" + exit 1 + ;; +esac +exit $RETVAL diff -Nru securityonion-argus-server-3.0.6/pkg/rhel/README securityonion-argus-server-3.0.8/pkg/rhel/README --- securityonion-argus-server-3.0.6/pkg/rhel/README 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/pkg/rhel/README 2014-07-11 01:13:46.000000000 +0000 @@ -0,0 +1,50 @@ +######################################################################## + Note: These materials are a work-in-progress and not yet + meant for production use. +######################################################################## + +/* + * Argus Software. Tools to read, analyze and manage Argus data. + * Copyright (c) 2000-2014 QoSient, LLC + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + * + */ + +Argus 3.0 +QoSient, LLC +argus@qosient.com +http://qosient.com/argus + +This directory tree contains files used to create standard install materials +for Redhat-based distributions. + +The .spec file is divided into a number of sections describing how to build +binaries, where production binaries and configuration files will be placed, +and commands to be executed pre- and post-installation. + +The lib/argus-clients.spec file references files in this directory tree +so that they will be copied into the RPM for installation. + +The files in sysconfig are designated as config files so that they won't +be removed during an uninstall or update. + +init.d/ - has /etc/init.d daemon script for argus + +sysconfig/ - has /etc/sysconfig default daemon arguments for argus + and commented out examples of using argus, radium and rasplit together + + diff -Nru securityonion-argus-server-3.0.6/pkg/rhel/sysconfig/argus securityonion-argus-server-3.0.8/pkg/rhel/sysconfig/argus --- securityonion-argus-server-3.0.6/pkg/rhel/sysconfig/argus 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/pkg/rhel/sysconfig/argus 2014-07-08 17:35:33.000000000 +0000 @@ -0,0 +1,19 @@ +# +# Local configuration sample options for argus daemons +# +# This file is sourced by /etc/init.d/argus +# +# Sample values +# Default option - just be a daemon and read config from /etc/argus.conf + DAEMON_ARGS="-d" +# +# Monitoring with local-only ra client access on default port +# +# DAEMON_ARGS="-d -B 127.0.0.1 -P 561" +# +# Monitoring span port on eth1 with local-only access remapping port so radium can multiplex over default +# +# DAEMON_ARGS="-d -i eth1 -B 127.0.0.1 -P 562" +# +# Where argus is installed (override for testing) + ARGUSDIR=/usr/sbin diff -Nru securityonion-argus-server-3.0.6/pkg/ubuntu/default/argus securityonion-argus-server-3.0.8/pkg/ubuntu/default/argus --- securityonion-argus-server-3.0.6/pkg/ubuntu/default/argus 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/pkg/ubuntu/default/argus 2014-07-08 17:35:33.000000000 +0000 @@ -0,0 +1,19 @@ +# +# Local configuration sample options for argus daemons +# +# This file is sourced by /etc/init.d/argus +# +# Sample values +# Default option - just be a daemon and read config from /etc/argus.conf + DAEMON_ARGS="-d" +# +# Monitoring with local-only ra client access on default port +# +# DAEMON_ARGS="-d -B 127.0.0.1 -P 561" +# +# Monitoring span port on eth1 with local-only access remapping port so radium can multiplex over default +# +# DAEMON_ARGS="-d -i eth1 -B 127.0.0.1 -P 562" +# +# Where argus is installed (override for testing) + ARGUSDIR=/usr/sbin diff -Nru securityonion-argus-server-3.0.6/pkg/ubuntu/init.d/argus securityonion-argus-server-3.0.8/pkg/ubuntu/init.d/argus --- securityonion-argus-server-3.0.6/pkg/ubuntu/init.d/argus 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/pkg/ubuntu/init.d/argus 2014-07-08 17:35:33.000000000 +0000 @@ -0,0 +1,154 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: argus +# Required-Start: $network $local_fs $remote_fs +# Required-Stop: $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Argus flow sensor +# Description: A data network transaction auditing tool that categorizes network packets that match the libpcap filter +# expression into a protocol-specific network flow transaction model. +### END INIT INFO + +# Author: John Gerth + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC=argus # Introduce a short description here +NAME=argus # Introduce the short server's name here +DAEMON=/usr/sbin/argus # Introduce the server's location here +DAEMON_ARGS="-d" # Arguments to run the daemon with +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x $DAEMON ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null 2>&1\ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ + $DAEMON_ARGS \ + || return 2 + # Add code here, if necessary, that waits for the process to be ready + # to handle requests from services started subsequently which depend + # on this one. As a last resort, sleep for some time. +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --exec $DAEMON > /dev/null 2>&1 + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + # Wait for children to finish too if this is a daemon that forks + # and if the daemon is only ever run from this initscript. + # If the above conditions are not satisfied then add some other code + # that waits for the process to drop all resources that could be + # needed by services started subsequently. A last resort is to + # sleep for some time. + #start-stop-daemon --stop --oknodo --retry=0/10/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + sleep 1 + return "$RETVAL" +} + +# +# Function that sends a SIGHUP to the daemon/service +# +do_reload() { + # + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + # + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME + return 0 +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + #reload|force-reload) + # + # If do_reload() is not implemented then leave this commented out + # and leave 'force-reload' as an alias for 'restart'. + # + #log_daemon_msg "Reloading $DESC" "$NAME" + #do_reload + #log_end_msg $? + #;; + restart|force-reload) + # + # If the "reload" option is implemented then remove the + # 'force-reload' alias + # + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1|143) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff -Nru securityonion-argus-server-3.0.6/pkg/ubuntu/README securityonion-argus-server-3.0.8/pkg/ubuntu/README --- securityonion-argus-server-3.0.6/pkg/ubuntu/README 1970-01-01 00:00:00.000000000 +0000 +++ securityonion-argus-server-3.0.8/pkg/ubuntu/README 2014-07-11 01:14:40.000000000 +0000 @@ -0,0 +1,48 @@ +######################################################################## + Note: These materials are a work-in-progress and not yet + meant for production use. +######################################################################## + +/* + * Argus Software. Tools to read, analyze and manage Argus data. + * Copyright (c) 2000-2014 QoSient, LLC + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + * + */ + +Argus 3.0 +QoSient, LLC +argus@qosient.com +http://qosient.com/argus + +This directory tree contains files used to create standard install materials +for debian-based distributions. + +The files in the parent "debian" directory contain instructions for building +binaries, where production binaries and configuration files will be placed, +and commands to be executed pre- and post-installation, update, removal. + +The debian/install file references files in this directory tree +so that they will be copied into the .deb for installation. + +The files in sysconfig are designated as config files so that they won't +be removed during an uninstall or update. + +init.d/ - has /etc/init.d daemon scripts for argus + +default/ - has /etc/default daemon arguments for argus + and commented out examples of using argus, radium and rasplit together diff -Nru securityonion-argus-server-3.0.6/README securityonion-argus-server-3.0.8/README --- securityonion-argus-server-3.0.6/README 2012-03-15 02:15:09.000000000 +0000 +++ securityonion-argus-server-3.0.8/README 2014-08-11 18:49:58.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - README - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * This program is free software; you can redistribute it and/or modify @@ -20,55 +20,74 @@ */ -Argus 3.0.6 +Argus 3.0.8 QoSient, LLC http://qosient.com/argus This directory contains source code for Argus, an IP network -transaction auditing tool, that generates a persistent audit of all -network transactions and their performance. The data that Argus -generates can be used for a wide range of tasks including -Network Operations, Security, Assurance and Performance Management. +transaction auditing tool, that generates a network activity audit +of all network transactions, their state, and their performance. +The data that Argus generates can be used for a wide range of tasks +including Network Operations, Security, Assurance and Performance +Management. + +This package contains the network activity sensor, that takes in +raw packet data, from either a file or from the network, and generates +network flow activity status records. Argus is comprehensive, in +that it accounts for all network activity,, not just IP traffic. + +Use the accompaning argus-clients-3.0.8 tools to collect, +process, print, graph, store, archive and manage the data that +Argus generates. To install the software and get started, see the ./INSTALL file. -For answers to many questions, please see the ./docs/FAQ file. +For answers to many questions, please see the argus web site +at http://qosient.com/argus. -The Argus 3.0 has been ported to SunOS and Solaris, Linux, FreeBSD, -OpenBSD, NetBSD and Irix, and the sample client code has -been successfully used under most variants of Unix. If you port -Argus to another system, please let us know on the mailing list. +The Argus 3.0 has been ported to SunOS, Solaris, Linux, FreeBSD, +OpenBSD, NetBSD, BSD Unix, AIX, HPUX, Irix, Onix, UniCos, VxWorks, +Cygwin and OpenWRT, to name just a few, and the argus client +software has been successfully used under most if not all +the same platforms. If you port Argus to another system, please +let us know on the mailing list. -Problems, bugs, questions, desirable enhancements, source code -contributions, etc., should be sent to argus-info@lists.andrew.cmu.edu ************************************************************ IMPORTANT: -Send problems, bug reports, questions and comments to the argus +Please send problems, bug reports, questions and comments to the argus mailing list at Carnegie Mellon University: -argus-info@lists.andrew.cmu.edu. + argus-info@lists.andrew.cmu.edu. -Please use the './bin/argusbug' script when posting bug reports -about Argus. Argusbug will gather some information about your -system and start your editor with a form in which you can describe -your problem. Delete information that you consider non-relevant -to your problem. Bug reports not generated by Argusbug might -be silently ignored by the Argus maintainers, so please use the -tool. A report that says 'Argus does not work. Why?' will -not be considered a valid bug report. +We encourage you to use the './bin/argusbug' script when posting +bug reports about Argus. Argusbug will gather some information about +your system and start your editor with a form in which you can +describe your problem. Delete information that you consider non- +relevant to your problem. Bug reports not generated by Argusbug +may be silently ignored by the Argus maintainers, so please use +consider using the tool. + +Email that reports that 'Argus does not work. Why?' will +be completely ignored. ************************************************************ -Comprehensive network transaction auditing is an extremely powerful -network management tool, and a large number of sites can benefit from -the prototype work that has been done through the Argus Project. + +Argus is the first netflow technology, started in 1984 at Georgia +Tech, and adapted for cyber security operations in 1991 at Carengie +Mellon University's Software Engineering Institute. While it has +a long history, we still think of argus as innovative and leading +edge. Comprehensive network transaction auditing is an extremely +powerful network management tool, and a large number of sites do + benefit from the prototype work that has been done through the +Argus Project. Again, thank you for your interest in Argus. I hope that you find the software useful. +Carter -Carter Bullard carter@qosient.com diff -Nru securityonion-argus-server-3.0.6/support/Archive/argusarchive securityonion-argus-server-3.0.8/support/Archive/argusarchive --- securityonion-argus-server-3.0.6/support/Archive/argusarchive 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/support/Archive/argusarchive 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # Argus Software -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # QoSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS diff -Nru securityonion-argus-server-3.0.6/support/Config/argus.conf securityonion-argus-server-3.0.8/support/Config/argus.conf --- securityonion-argus-server-3.0.6/support/Config/argus.conf 2012-02-13 17:14:57.000000000 +0000 +++ securityonion-argus-server-3.0.8/support/Config/argus.conf 2014-07-25 16:57:28.000000000 +0000 @@ -1,6 +1,6 @@ # # Argus Software -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # Example argus.conf @@ -46,17 +46,18 @@ # uni-directional or bi-directional flow tracking and # the flow can be further defined by specifying the key. # The argus supports a set of well known key strategies, -# such as 'CLASSIC_5_TUPLE', 'LAYER_3_MATRIX', 'LAYER_2_MATRIX', -# 'MPLS', and/or 'VLAN', or the argus can be configured to -# formulate key strategies from a list of the specific -# objects that the Argus understands. See the man page for -# a complete description. +# such as 'CLASSIC_5_TUPLE', 'LAYER_2', 'LAYER_2_MATRIX', +# 'LAYER_2_MATRIX', 'MPLS', and/or 'VLAN', or the argus can +# be configured to # formulate key strategies from a list of +# the specific objects that the Argus understands. See the +# man page for a complete description. # # The default is the classic 5-tuple IP flow, CLASSIC_5_TUPLE. # ARGUS_FLOW_TYPE="Bidirectional" ARGUS_FLOW_KEY="CLASSIC_5_TUPLE" +#ARGUS_FLOW_KEY="CLASSIC_5_TUPLE+LAYER_2" # Argus is capable of running as a daemon, doing all the right things @@ -64,10 +65,14 @@ # daemon process, say for /etc/argus.conf, this variable should be # set to "yes". # -# The default value is to not run as a daemon. +# In the examples seen in the ./support/Startup/argus scripts, +# this value is set to "yes", as the system startup strategy +# requires the program to daemonize themselves, returning a value +# to the system, hopefully quickly. Some systems, however, want +# to daemonize the tasks themselves, and those cases, the value +# must be set to "no". # -# This example is to support the ./support/Startup/argus script -# which works when this variable be set to "yes". +# The default value is to not run as a daemon. # # Commandline equivalent -d # @@ -211,7 +216,7 @@ # an HTTP service or DNS service, you'll want to turn # promiscuous mode off. # -# The default value is go into prmiscuous mode. +# The default value is goes into prmiscuous mode. # # Commandline equivalent -p # @@ -227,27 +232,12 @@ # This option will cause the output file names to be relative to this # directory, and so consider this when trying to find your output files. # -# Commandline equivalent -c +# Commandline equivalent -c dir # #ARGUS_CHROOT_DIR=/chroot_dir -# Argus can be configured to enable detailed control plane -# flow monitoring for specific control plane protocols. -# -# This feature requires full packet capture for the monitored -# interface in order to capture the complete control plane -# protocol, and will have a performance impact on the sensor. -# -# The default is to not turn this feature on. -# -# Commandline equivalent -C -# - -#ARGUS_CAPTURE_FULL_CONTROL_DATA=no - - # Argus can be directed to change its user id using the setuid() system # call. This is can used when argus is started as root, in order to # access privileged resources, but then after the resources are opened, @@ -384,6 +374,8 @@ # caches to conserve memory utilization. Increasing values can have # an impact on argus memory use, so take care when modifying values. # +# The maxium value for any timeout is 65534 seconds. +# # If you think there is a flow type that doesn't have appropriate # timeout support, send email to the developer's list, we'll add one # for you. @@ -578,6 +570,17 @@ +# Argus can be configured to identify and track duplicate +# packets as a separate metric. While the algorithms are +# traffic type specific, you can use this strategy to +# identify problems within your packet collection infrastructure. + +# The default is to not turn this feature on. + +#ARGUS_TRACK_DUPLICATES="no" + + + # Argus can be configured to be self synchronizing with other # argi. This involves using state from packets contents to # synchronize the flow reporting. diff -Nru securityonion-argus-server-3.0.6/support/Deployment/sample securityonion-argus-server-3.0.8/support/Deployment/sample --- securityonion-argus-server-3.0.6/support/Deployment/sample 2012-04-13 19:41:51.000000000 +0000 +++ securityonion-argus-server-3.0.8/support/Deployment/sample 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * Permission to use, copy, modify, and distribute this software and Binary files /tmp/nbYCe7RrLh/securityonion-argus-server-3.0.6/support/Deployment/._sample and /tmp/ljYiAsTql2/securityonion-argus-server-3.0.8/support/Deployment/._sample differ diff -Nru securityonion-argus-server-3.0.6/support/README securityonion-argus-server-3.0.8/support/README --- securityonion-argus-server-3.0.6/support/README 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/support/README 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * QOSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS diff -Nru securityonion-argus-server-3.0.6/support/Startup/argus securityonion-argus-server-3.0.8/support/Startup/argus --- securityonion-argus-server-3.0.6/support/Startup/argus 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/support/Startup/argus 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # Permission to use, copy, modify, and distribute this software and diff -Nru securityonion-argus-server-3.0.6/support/Startup/README securityonion-argus-server-3.0.8/support/Startup/README --- securityonion-argus-server-3.0.6/support/Startup/README 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/support/Startup/README 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ /* * Argus Software - * Copyright (c) 2000-2012 QoSient, LLC + * Copyright (c) 2000-2014 QoSient, LLC * All rights reserved. * * Permission to use, copy, modify, and distribute this software and diff -Nru securityonion-argus-server-3.0.6/support/System/crontab securityonion-argus-server-3.0.8/support/System/crontab --- securityonion-argus-server-3.0.6/support/System/crontab 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/support/System/crontab 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ # # Argus Software -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # Permission to use, copy, modify, and distribute this software and diff -Nru securityonion-argus-server-3.0.6/support/System/magic securityonion-argus-server-3.0.8/support/System/magic --- securityonion-argus-server-3.0.6/support/System/magic 2012-01-04 00:15:19.000000000 +0000 +++ securityonion-argus-server-3.0.8/support/System/magic 2014-06-19 03:48:39.000000000 +0000 @@ -1,6 +1,6 @@ # # Argus Software -# Copyright (c) 2000-2012 QoSient, LLC +# Copyright (c) 2000-2014 QoSient, LLC # All rights reserved. # # QOSIENT, LLC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS diff -Nru securityonion-argus-server-3.0.6/VERSION securityonion-argus-server-3.0.8/VERSION --- securityonion-argus-server-3.0.6/VERSION 2012-04-13 15:26:11.000000000 +0000 +++ securityonion-argus-server-3.0.8/VERSION 2014-07-14 22:45:47.000000000 +0000 @@ -1 +1 @@ -3.0.6 +3.0.8