From 61cefa411c4968714b05cd6a838e23a34f85c837 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Mon, 2 Apr 2012 14:23:38 +0200 Subject: [PATCH 01/27] internal functions should be static --- firmware/basic/uuid.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/basic/uuid.c b/firmware/basic/uuid.c index 12cdf72..a61db3d 100644 --- a/firmware/basic/uuid.c +++ b/firmware/basic/uuid.c @@ -8,7 +8,7 @@ uint32_t uuid32=0; uint16_t uuid16=0; -uint32_t __GetUUID32(void){ +static uint32_t __GetUUID32(void){ IAP_return_t iap_return; iap_return = iapReadSerialNumber(); if (iap_return.ReturnCode == 0){ @@ -24,7 +24,7 @@ uint32_t __GetUUID32(void){ }; // What OpenBeacon used. Do we want this? -uint16_t __GetUUID16(void){ +static uint16_t __GetUUID16(void){ IAP_return_t iap_return; iap_return = iapReadSerialNumber(); return crc16 ((uint8_t *) iap_return.Result, sizeof (iap_return.Result)); From b504bc9ed777912fbbd736355e0c0e3a63021fdc Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Tue, 3 Apr 2012 14:24:22 +0200 Subject: [PATCH 02/27] Do UUID init globally. Increase firmware version --- firmware/basic/uuid.c | 6 ------ firmware/main.c | 3 ++- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/firmware/basic/uuid.c b/firmware/basic/uuid.c index a61db3d..c6d59a2 100644 --- a/firmware/basic/uuid.c +++ b/firmware/basic/uuid.c @@ -36,16 +36,10 @@ uint32_t initUUID(void){ }; uint32_t GetUUID32(void){ - if(uuid32==0){ - initUUID(); - }; return uuid32; }; uint16_t GetUUID16(void){ - if(uuid32==0){ - initUUID(); - }; return uuid16; }; diff --git a/firmware/main.c b/firmware/main.c index 67c740f..277a196 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -50,6 +50,7 @@ void main(void) { // initialise basic badge functions rbInit(); + initUUID(); // Cache UUID values. lcdInit(); // display @@ -80,5 +81,5 @@ void main(void) { } int getrelease(void){ - return 0x0000010d; + return 0x0000010e; }; From 69bfec035937a9a10ef746fc781bcbf9050a782e Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Wed, 4 Apr 2012 19:22:00 +0200 Subject: [PATCH 03/27] rudimentary openbeacon-style "reader" implementation --- tools/mesh/beacon-udp.pl | 76 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 tools/mesh/beacon-udp.pl diff --git a/tools/mesh/beacon-udp.pl b/tools/mesh/beacon-udp.pl new file mode 100755 index 0000000..4b981ef --- /dev/null +++ b/tools/mesh/beacon-udp.pl @@ -0,0 +1,76 @@ +#!/usr/bin/perl +# +# vim:set ts=4 sw=4: + +use strict; +use POSIX qw(strftime); +use Time::HiRes qw(time); + +use lib '.'; +use r0ket; + +$|=1; + +r0ket::r0ket_init(); + +# Default openbeacon settings. +r0ket::set_txmac(pack("H*","0102030201")); +r0ket::set_rxmac(pack("H*","0102030201")); +r0ket::set_channel(81); +r0ket::set_rxlen(16); + +#r0ket::readbeacon(); + +my $str; +my %bdata; + +use Socket; +use Sys::Hostname; + +my($iaddr,$proto,$port,$paddr); +$iaddr = gethostbyname(hostname()); +$proto = getprotobyname('udp'); +#$port = getservbyname('time', 'udp'); +$port = "7777"; +$paddr = sockaddr_in(0, $iaddr); # 0 means let kernel pick + +socket(SOCKET, PF_INET, SOCK_DGRAM, $proto) || die "socket: $!"; +bind(SOCKET, $paddr) || die "bind: $!"; + +my $host="127.0.0.1"; +my $hisiaddr = inet_aton($host) || die "unknown host"; +my $hispaddr = sockaddr_in($port, $hisiaddr); + +###send(SOCKET, 0, 0, $hispaddr); + + +my $beaconctr=0; +my $lasttime; +my $crcerr=0; +my $ctr=0; +while(1){ + $str=r0ket::get_packet(); + $ctr++; + next if($str eq "ack"); # in-band signalling. + + my $hdr= + pack("nCCnnNN", + 0xeeee, # icrc16 + 1, # proto (BEACONLOG_SIGHTING) + 0, # interface (we only have one antenna per "reader") + 1234, # readerid + 32, # size + $ctr, # sequence + time # timestamp + ); + send (SOCKET, $hdr.$str,0,$hispaddr); + + my $p=r0ket::nice_beacon($str); + if($p->{crc} ne "ok"){ + $crcerr++; + next; + }; + +}; +print "received $ctr pkts, $crcerr crc errors\n"; +r0ket::rest(); From 2c03614af849d081b32244e82b80194c017d2c86 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Wed, 4 Apr 2012 20:56:24 +0200 Subject: [PATCH 04/27] Add "quiet" flag. --- tools/mesh/r0ket.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/mesh/r0ket.pm b/tools/mesh/r0ket.pm index 38baaab..26267b9 100755 --- a/tools/mesh/r0ket.pm +++ b/tools/mesh/r0ket.pm @@ -13,6 +13,7 @@ use Time::HiRes; our $verbose=0; our $bridge; # Open device +our $quiet=0; ### Utility sub sprint{ @@ -111,7 +112,7 @@ sub get_packet{ if($firstpkt){ $firstpkt--; }else{ - print STDERR "Unparseable stuff: <",sprint($1),">\n"; + print STDERR "Unparseable stuff: <",sprint($1),">\n" if(!$quiet); }; }elsif ($buffer =~ s/^\\2\\0//s){ return 'ack'; # In-band signalling. Evil %) @@ -128,7 +129,7 @@ sub get_packet{ sub rest{ if(length($buffer)>0){ - print "rest: <", sprint($buffer), ">\n"; + print "rest: <", sprint($buffer), ">\n" if(!$quiet); }; }; @@ -255,7 +256,7 @@ sub nice_beacon{ $out->{idx}, $out->{beacon}; if(unpack("H*",substr($pkt,12,2)) ne "ffff"){ - print "unused=",unpack("H*",substr($pkt,12,2))," "; + print "unused=",unpack("H*",substr($pkt,12,2))," " if (!$quiet); }; }elsif($type eq "\x23"){ $out->{type}= "nick"; From be10004c40a68771431e422a1c2e35f00a1dba82 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Wed, 4 Apr 2012 20:56:52 +0200 Subject: [PATCH 05/27] Fix crc and correct default port. it works now[tm] --- tools/mesh/beacon-udp.pl | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tools/mesh/beacon-udp.pl b/tools/mesh/beacon-udp.pl index 4b981ef..52a227c 100755 --- a/tools/mesh/beacon-udp.pl +++ b/tools/mesh/beacon-udp.pl @@ -4,7 +4,8 @@ use strict; use POSIX qw(strftime); -use Time::HiRes qw(time); +#use Time::HiRes qw(time); +use Digest::CRC qw(crcccitt); use lib '.'; use r0ket; @@ -18,10 +19,8 @@ r0ket::set_txmac(pack("H*","0102030201")); r0ket::set_rxmac(pack("H*","0102030201")); r0ket::set_channel(81); r0ket::set_rxlen(16); +$r0ket::quiet=1; # Hackety-hack :) -#r0ket::readbeacon(); - -my $str; my %bdata; use Socket; @@ -30,8 +29,7 @@ use Sys::Hostname; my($iaddr,$proto,$port,$paddr); $iaddr = gethostbyname(hostname()); $proto = getprotobyname('udp'); -#$port = getservbyname('time', 'udp'); -$port = "7777"; +$port = "2342"; $paddr = sockaddr_in(0, $iaddr); # 0 means let kernel pick socket(SOCKET, PF_INET, SOCK_DGRAM, $proto) || die "socket: $!"; @@ -48,29 +46,31 @@ my $beaconctr=0; my $lasttime; my $crcerr=0; my $ctr=0; +my $fast=0; +my $pkt; while(1){ - $str=r0ket::get_packet(); + $pkt=r0ket::get_packet(); + next if($pkt eq "ack"); # in-band signalling. $ctr++; - next if($str eq "ack"); # in-band signalling. - my $hdr= - pack("nCCnnNN", - 0xeeee, # icrc16 - 1, # proto (BEACONLOG_SIGHTING) - 0, # interface (we only have one antenna per "reader") - 1234, # readerid - 32, # size - $ctr, # sequence - time # timestamp + my $hdr= pack("CCnnNN", + 1, # proto (BEACONLOG_SIGHTING) + 0, # interface (we only have one antenna per "reader") + 1234, # readerid + 32, # size + $ctr, # sequence + time # timestamp ); - send (SOCKET, $hdr.$str,0,$hispaddr); + my $crc=pack("n",0xffff ^ crcccitt($hdr.$pkt)); - my $p=r0ket::nice_beacon($str); + send(SOCKET, $crc.$hdr.$pkt,0,$hispaddr); + + next if($fast); + my $p=r0ket::nice_beacon($pkt); if($p->{crc} ne "ok"){ $crcerr++; next; }; - }; print "received $ctr pkts, $crcerr crc errors\n"; r0ket::rest(); From aefbbd56113bb3395eb292367834c120b8412724 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Thu, 5 Apr 2012 14:08:54 +0200 Subject: [PATCH 06/27] Use findbin to find r0ket.pm --- tools/mesh/beacon-udp.pl | 4 +++- tools/mesh/beacontrace.pl | 3 ++- tools/mesh/{ => lib}/r0ket.pm | 0 tools/mesh/meshtrace.pl | 3 ++- tools/mesh/rf | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) rename tools/mesh/{ => lib}/r0ket.pm (100%) diff --git a/tools/mesh/beacon-udp.pl b/tools/mesh/beacon-udp.pl index 52a227c..a3fbfdd 100755 --- a/tools/mesh/beacon-udp.pl +++ b/tools/mesh/beacon-udp.pl @@ -7,7 +7,9 @@ use POSIX qw(strftime); #use Time::HiRes qw(time); use Digest::CRC qw(crcccitt); -use lib '.'; +use FindBin; +use lib "$FindBin::Bin/lib"; + use r0ket; $|=1; diff --git a/tools/mesh/beacontrace.pl b/tools/mesh/beacontrace.pl index fe90f61..8b71c66 100755 --- a/tools/mesh/beacontrace.pl +++ b/tools/mesh/beacontrace.pl @@ -7,7 +7,8 @@ use Curses; use POSIX qw(strftime); use Time::HiRes qw(time); -use lib '.'; +use FindBin; +use lib "$FindBin::Bin/lib"; use r0ket; $|=1; diff --git a/tools/mesh/r0ket.pm b/tools/mesh/lib/r0ket.pm similarity index 100% rename from tools/mesh/r0ket.pm rename to tools/mesh/lib/r0ket.pm diff --git a/tools/mesh/meshtrace.pl b/tools/mesh/meshtrace.pl index 2788083..2ba2a33 100755 --- a/tools/mesh/meshtrace.pl +++ b/tools/mesh/meshtrace.pl @@ -6,7 +6,8 @@ use strict; use Curses; use POSIX qw(strftime); -use lib '.'; +use FindBin; +use lib "$FindBin::Bin/lib"; use r0ket; $|=1; diff --git a/tools/mesh/rf b/tools/mesh/rf index 5bf5b17..ccc5894 100755 --- a/tools/mesh/rf +++ b/tools/mesh/rf @@ -9,7 +9,7 @@ use Digest::CRC qw(crcccitt); use POSIX qw(strftime); use FindBin; -use lib "$FindBin::Bin"; +use lib "$FindBin::Bin/lib"; use r0ket; $|=1; From 72194bf139e272c48d613c5c6704fb4978aea2b5 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Thu, 5 Apr 2012 14:41:11 +0200 Subject: [PATCH 07/27] Do not die if no packets are coming in. --- tools/mesh/lib/r0ket.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/mesh/lib/r0ket.pm b/tools/mesh/lib/r0ket.pm index 26267b9..d296a45 100755 --- a/tools/mesh/lib/r0ket.pm +++ b/tools/mesh/lib/r0ket.pm @@ -104,7 +104,7 @@ sub get_packet{ }; my $cnt=0; - while(++$cnt<100){ + while(1){ if(length($buffer)<2){ _get_bytes(); }elsif($buffer !~ /^\\[12]/){ @@ -123,8 +123,12 @@ sub get_packet{ }else{ _get_bytes(); }; + if(++$cnt%100 == 0){ + if(!$quiet){ + print STDERR "No packets for 5 seconds?\n"; + }; + }; }; - die "No packets for 5seconds?\n"; }; sub rest{ From b7155bbb7166c9e2f28129a8e11049e02948fde4 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Thu, 5 Apr 2012 14:54:12 +0200 Subject: [PATCH 08/27] Add commandline options and verbose mode with on-the-fly statistics --- tools/mesh/beacon-udp.pl | 101 +++++++++++++++++++++++++++++++++------ 1 file changed, 86 insertions(+), 15 deletions(-) diff --git a/tools/mesh/beacon-udp.pl b/tools/mesh/beacon-udp.pl index a3fbfdd..f9b3666 100755 --- a/tools/mesh/beacon-udp.pl +++ b/tools/mesh/beacon-udp.pl @@ -3,23 +3,49 @@ # vim:set ts=4 sw=4: use strict; +use warnings; use POSIX qw(strftime); #use Time::HiRes qw(time); use Digest::CRC qw(crcccitt); use FindBin; use lib "$FindBin::Bin/lib"; - use r0ket; $|=1; +use Getopt::Long; +my $server = "127.0.0.1"; +my $port = 2342; +my $id = 1234; +my $verbose = 0; +my $fast = 0; +my $channel = 81; +my $mac = "0102030201"; +my $help = 0; +my $intvl = 2; +my $lintvl = 60; +GetOptions ( + "server=s" => \$server, + "port=n" => \$port, + "id=n" => \$id, + "fast" => \$fast, + "verbose" => \$verbose, + "channel=n" => \$channel, + "mac=s" => \$mac, + "help" => \$help, + ); + +if($help){ + die "Currently no help. Please check the source\n"; +}; + r0ket::r0ket_init(); # Default openbeacon settings. -r0ket::set_txmac(pack("H*","0102030201")); -r0ket::set_rxmac(pack("H*","0102030201")); -r0ket::set_channel(81); +r0ket::set_txmac(pack("H*",$mac)); # Not really needed. +r0ket::set_rxmac(pack("H*",$mac)); +r0ket::set_channel($channel); r0ket::set_rxlen(16); $r0ket::quiet=1; # Hackety-hack :) @@ -28,38 +54,76 @@ my %bdata; use Socket; use Sys::Hostname; -my($iaddr,$proto,$port,$paddr); +my($iaddr,$proto,$paddr); $iaddr = gethostbyname(hostname()); $proto = getprotobyname('udp'); -$port = "2342"; $paddr = sockaddr_in(0, $iaddr); # 0 means let kernel pick socket(SOCKET, PF_INET, SOCK_DGRAM, $proto) || die "socket: $!"; bind(SOCKET, $paddr) || die "bind: $!"; -my $host="127.0.0.1"; -my $hisiaddr = inet_aton($host) || die "unknown host"; +my $hisiaddr = inet_aton($server) || die "unknown server name"; my $hispaddr = sockaddr_in($port, $hisiaddr); ###send(SOCKET, 0, 0, $hispaddr); -my $beaconctr=0; -my $lasttime; my $crcerr=0; +my $errors=0; my $ctr=0; -my $fast=0; +my($lcrcerr,$lctr,$lerrors)=(0,0,0); +if($verbose){ + print "OpenBeacon Reader $id sending to [$server:$port]\n"; + print "\n"; +}; +my $lasttime=time; +my $llasttime=time; my $pkt; +my $donl=0; + +my($typenick,$typebeacon,$typeunknown)=(0,0,0); +my($ltypenick,$ltypebeacon,$ltypeunknown)=(0,0,0); while(1){ $pkt=r0ket::get_packet(); + + if($verbose){ + if(time-$lasttime >= $intvl){ + print "\r"; + if(time-$llasttime >= $lintvl){ + $donl=1; + $llasttime=time; + }; + $lasttime=time; + print strftime("%Y-%m-%d %H:%M:%S ",localtime); + printf "[%ds] cnt=%3d [b=%3d, n=%3d, ?=%3d] errs=%3d crcerr=%3d ", + $intvl, + ($ctr-$lctr), + ($typebeacon-$ltypebeacon), + ($typenick-$ltypenick), + ($typeunknown-$ltypeunknown), + ($errors-$lerrors), + ($crcerr-$lcrcerr); + ($lctr,$lerrors,$lcrcerr)= ($ctr,$errors,$crcerr); + ($ltypenick,$ltypebeacon,$ltypeunknown)= ($typenick,$typebeacon,$typeunknown); + if($donl){ + $donl=0; + print "\n"; + }; + }; + }; + next if($pkt eq "ack"); # in-band signalling. + if(length($pkt) != 16){ # Sanity check + $errors++; + next; + }; $ctr++; my $hdr= pack("CCnnNN", 1, # proto (BEACONLOG_SIGHTING) 0, # interface (we only have one antenna per "reader") - 1234, # readerid - 32, # size + $id, # readerid + length($pkt)+16, # size $ctr, # sequence time # timestamp ); @@ -67,12 +131,19 @@ while(1){ send(SOCKET, $crc.$hdr.$pkt,0,$hispaddr); - next if($fast); + next if($fast); + my $p=r0ket::nice_beacon($pkt); if($p->{crc} ne "ok"){ $crcerr++; next; }; + if($p->{type} eq "beacon"){ + $typebeacon++; + }elsif($p->{type} eq "nick"){ + $typenick++; + }else{ + $typeunknown++; + }; }; -print "received $ctr pkts, $crcerr crc errors\n"; r0ket::rest(); From 6ccd4478702db46a9a8a1ce288c9cfc73a305540 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Thu, 5 Apr 2012 15:00:27 +0200 Subject: [PATCH 09/27] Allow easy selection of the serial device --- tools/mesh/beacon-udp.pl | 12 ++++++++++-- tools/mesh/lib/r0ket.pm | 7 ++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/tools/mesh/beacon-udp.pl b/tools/mesh/beacon-udp.pl index f9b3666..8b89189 100755 --- a/tools/mesh/beacon-udp.pl +++ b/tools/mesh/beacon-udp.pl @@ -22,6 +22,7 @@ my $verbose = 0; my $fast = 0; my $channel = 81; my $mac = "0102030201"; +my $ser = undef; my $help = 0; my $intvl = 2; my $lintvl = 60; @@ -29,6 +30,7 @@ GetOptions ( "server=s" => \$server, "port=n" => \$port, "id=n" => \$id, + "dev=s" => \$ser, "fast" => \$fast, "verbose" => \$verbose, "channel=n" => \$channel, @@ -40,7 +42,7 @@ if($help){ die "Currently no help. Please check the source\n"; }; -r0ket::r0ket_init(); +$ser=r0ket::r0ket_init($ser); # Default openbeacon settings. r0ket::set_txmac(pack("H*",$mac)); # Not really needed. @@ -73,7 +75,13 @@ my $errors=0; my $ctr=0; my($lcrcerr,$lctr,$lerrors)=(0,0,0); if($verbose){ - print "OpenBeacon Reader $id sending to [$server:$port]\n"; + my($dev)=$ser; + if(!defined $dev){ + $dev=""; + }else{ + $dev=~s!/dev/!!; + }; + print "OpenBeacon Reader $id sending [$dev] to [$server:$port]\n"; print "\n"; }; my $lasttime=time; diff --git a/tools/mesh/lib/r0ket.pm b/tools/mesh/lib/r0ket.pm index d296a45..013457f 100755 --- a/tools/mesh/lib/r0ket.pm +++ b/tools/mesh/lib/r0ket.pm @@ -288,11 +288,7 @@ sub nice_beacon{ }; sub r0ket_init{ - my $ser; - if ($ARGV[0] eq "-s"){ - shift; - $ser=shift; - }; + my $ser=shift; if(!defined $ser){ if (defined $ENV{R0KETBRIDGE} && -e $ENV{R0KETBRIDGE}){ $ser=$ENV{R0KETBRIDGE} @@ -305,6 +301,7 @@ sub r0ket_init{ if($verbose){ print "using: $ser\n"; }; + return $ser; }; sub send_raw { From 1133138f86cde9739665087aca63f063737399a9 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Thu, 5 Apr 2012 15:43:55 +0200 Subject: [PATCH 10/27] Add support to change screen titles --- tools/mesh/beacon-udp.pl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/mesh/beacon-udp.pl b/tools/mesh/beacon-udp.pl index 8b89189..8488631 100755 --- a/tools/mesh/beacon-udp.pl +++ b/tools/mesh/beacon-udp.pl @@ -69,6 +69,8 @@ my $hispaddr = sockaddr_in($port, $hisiaddr); ###send(SOCKET, 0, 0, $hispaddr); +my $xterm=0; +my $screen=1; my $crcerr=0; my $errors=0; @@ -82,8 +84,30 @@ if($verbose){ $dev=~s!/dev/!!; }; print "OpenBeacon Reader $id sending [$dev] to [$server:$port]\n"; + if($xterm){ + print "\e]2;", + "$id\[$dev] -> $server:$port @ ", + strftime("%Y-%m-%d %H:%M:%S ",localtime), + "\a"; + }elsif($screen){ + print "\ek", + "$id\[$dev]", + "\e\\"; + }; print "\n"; }; + +sub interrupt { + if($xterm){ + print "\e]2;", "", "\a"; + }elsif($screen){ + print "\ek", `hostname`, "\e\\"; + }; + exit; +} +if($verbose){ + $SIG{INT} = \&interrupt; +}; my $lasttime=time; my $llasttime=time; my $pkt; From 681f809f0a15492ab0f6e6a815bf3df4bd1e5365 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Thu, 5 Apr 2012 16:12:35 +0200 Subject: [PATCH 11/27] Better use wildcard source ip. --- tools/mesh/beacon-udp.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/mesh/beacon-udp.pl b/tools/mesh/beacon-udp.pl index 8488631..3b2a370 100755 --- a/tools/mesh/beacon-udp.pl +++ b/tools/mesh/beacon-udp.pl @@ -58,6 +58,7 @@ use Sys::Hostname; my($iaddr,$proto,$paddr); $iaddr = gethostbyname(hostname()); +$iaddr = pack('C4', 0,0,0,0); $proto = getprotobyname('udp'); $paddr = sockaddr_in(0, $iaddr); # 0 means let kernel pick From e4a9868bccaa04c92f2f8bbcfe361737e5a78a7d Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Fri, 6 Apr 2012 14:57:42 +0200 Subject: [PATCH 12/27] New fahrplan for easterhegg 2012 --- firmware/l0dable/files/fahrplan.scd | Bin 115487 -> 43724 bytes firmware/l0dable/files/fp-mini.scd | Bin 8692 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 firmware/l0dable/files/fp-mini.scd diff --git a/firmware/l0dable/files/fahrplan.scd b/firmware/l0dable/files/fahrplan.scd index 44dba4d441f491c0175e9a3a03b2826ffde978c3..bd72e04c3f1fe7f89ccc4a86f019ae8196777a3e 100644 GIT binary patch literal 43724 zcmeI5OOG7eme;MGfW!ca8Xy6Kxb6#Gc01E{+2>)ym6i3dUDqzVZe`i->)Q_^Gb1a* znHiBcBGTn5x_NXnK|(?TAtclTgb*z;Vbn-`0)zz27%_qof)CIjG2r)KYe!^cWmSWq zd35(F=^R&OM(o&o?e+YxwO9PilkQIRM{nIqw{G$C8@F!lKa3tedhp=qA3S*cRn))r zwm6Hkw2Z5~h(^h+SII?|S4ni;&+f(3=qNo~CbMY!n6v)B){oZI0L%&%T&2zRFN|yO-#y@_iNX?CBJae8_gCfoNwY$bG z`s0_k#Hs)KkE}T65gc=JtDj${@yxd!W__O*RS}=X$s~Igyj-ZvSN$_ z&4mArm&v49W@phh6N=s?1Ab4kJ5icNiz1#@sn{h7tje_QGVw${VSv4SzF5KyckV@_ zG>MLjI4NNr<6tgMGrmj8GS_+dPf3{?7 z-GcS#Cu<8A;@Z6dB=J%4r z4y6f;=p;Eqmk)|~$tt6yj56p^MW54Tb}xb*P!=}lc{Gc&GqlRgBsYkiFQ?7o>-;a3 z+3@sXHi=OK*onK*K94SBWS+w`S%d*ujt6nAU)OifQCnlpWjImvCji ztU5tTI?*{>g(|m&zLWeRC~0Dx8y3K`O^CxScQucyNUFdqui)PWx1k2aB?#jjPCPSN zFrircBruUJ?j*r>pa!A|0{AJO6p84Ex+%u|p*2XJYThXCtuH7%o=I-##n)RhqyO%Y znO^*QWyG&oQdWv0LMUPRtEOChHZg=_M}?PTsxQKQQu1%j~1W zMzWFhlsm^o{wbLv8Ry9i;-GdU`Y*PxM$J!ejXiG(T_3rWilJzk%$c^aWbybGYn5pMu&N@7d)UeAw0@QxC)o4 z=|y?jETc9a20wKBTHCe*&jT&Qn0B16WL zNqUB{5SSoE&Rg0(h?+=~h_0KHnj*|PW?^wY~D7%AMepW8>syoc*YggsaaX8DDBl`wP zg~44=H?+ZQOD@vy{BhF;-_+V*-LJ+=Y98$B;Jh|To4(R_x}jDt-{}U6mcG*szh8C3 za7%8&5C6ovZs^~-;whZqJj+o!$8usMKTNQ5X&Dvi8Ghi}k95Nk%66XMCY@p5R*u7m zB*IS`=fxa%B94f5(&{2Y`wypz;up&Swt#r$qKt+_3)p?G zBNA02k1bT66I5WqS*&8`uml@TPxwrj%$=VwWvu54nWUqcgAoIZ!~i|wX@(qO2=i=+ zcOm+WF>d;o9rJO|^9UbUqa~Pdh9yL;Ci#*r85vdP`Di&y{c6bC+77KR$_Vb0;ZjrD z49b77C0q03En}%~Yjd+6lqZ=Gq)s2xsEHlN1&h1sM=Z6AxgAB%(^h02Z0Y&=d3QJ* zUQW8h$$bV5V}>Dn**uxy^|+HmxYdmwbsu+k9z5KMb{;+b>d6X)`Mnu$!}^|XNxXjZ zPZ~L%7&#t(1)z3C!uHw5=S#eZqoj&E`*9UZP~hH;ACaTT&zCLq>Ier2Uy4xaT!I54 zV*#3c7d)ng0Xc=chImG2iCtR-*A90EFDcw;9?dkL&zG5b&Gkjyh*(g*H7+ww<7Y=y zqVu%CZDQ)T*XK?&rpezHc2vj9s~`Z32mYB2%4(EPmvi@n<-nEEs~N12e5t|!=8^@6 zI)Mq|0)N(`JIVPgpXbzpKtXgOgvWXDfS6U@r2I+9$^Y?+K4)d|Ub*%=TH(z__~vm&0)<+qy)Y4OZRP)nTQ^C|q6&KSi&4JE`^ zU<(bGxYEE8!dHYuF=)IT+iZQ?46Kot+-G&ZoGeFCoC~n2NrqH__nKr&R0OE%!1Hc2E5@P7Mr0Wh`<@81qV4l86I+$ z5c`T`qW6`XTg=uKOvs!G9Z_%5ZkojcLoW!6(0!M1rteD4o$}fZR|y1fCQJx9m_f&i z*kKeG=xU)7f=xD9Q4AUw%OXP%OaPG8lHw5=X8 z>3{iCu0kFOliyGwIPfU_sz?U}VbYXfeMW2yN+G*T%z{A^=zaA^3Z+M=MkpI+%Q9VA z?1M5ICle_YmNzvB67UM!ufR|^ml!b#;$`d-`3@Tv%xxIv^Ms8}v+T0~K&;KVahJi9 z-RLz2RDz_yR{#O1Fp~GZbqN)t=@Qv;XT-Upb_LjuJ0ajnIjw-tY@1+$*I@7Y0!$GB z*KH=ICQ&{BjO5cjOJGY75Fm;GPWlDnBzOozJ;(S*`$10yNKj#)l&e+`5yI;DwZ9yo z&VX#*)#{cK$cM3uAmgF>o?LYeiI``hdc{t$rJ(d zFWZh3j}qbI;_c_}`UkQX+-3V+)Lz$&RzsUqa2Y}(8KyHB1#Q zOOgSRBX#HE6(wsVezzIW@K~t2-J6}K8N(eZ_&_YG@1dtL^hs$6z?mN4;HAS?P@{wT zN-|Rd+h^%nZv4v-uK~6!h^q$aOgcrf`Z36^yJu!0-hr^%ocq<1oz?i;66wo<^1v>p zemUQmW6@7g>v7S1cu8jA)KXAf?xtL1UrlS4&f>8UKc@9EE=K1BQ%}jy+VgOc2YHna z%V_&Vzrl27TWoTYV7$Wud)97Zu{(P9I-ZXf<$fUaKoJ$m@o6E|D35@ zbZ%W@a3vx_#Uj3}JDNWOvA^oIwEmXL9nbR1Y0GuF-MSr*HNPEgE1WI`5R{61_1E0L zfwYQ3@n?{8lAC1;#||&FlZzO6wOqx$2p~Nf!m6Xyy+rb=I*5X+b)Hre`8XF?>=ZKz z$PRpv&&sad(m)E7P6$?j!1yN3L80=rQx0K~L7^ClH5r;y90S$-Z(_zy?~SOax1WZ4u@fOqKod5qzT8Es); z1FFQ<2hk89%{0bg9~yM9EC%ubm&NB4SOn@hFoWO4#0+N${75QhPV}>~2slhbh<^bv z0bh|vEYZ(A+=-1*xri4V;X29c>Z1 z-q^0B>ZYx?1XT)&6_Ji=3`AEmD8w|%Aef6JU%+hVpi(@8nb?5m@dYFqVX$EdBU}oY zH5QZQGd_-IQxzK~x4g0!!>hLV*O$sGKA)mWGHI=>0F<=ppV&{n#ta82HbK zA}$D%gXmD%;H-KtYDmin!+wSi!z{7J{b}K4b=ib}v?29Vb`XGo1BlTc9a0p|6 z!n7KGhp-8MGzQm{MOz_oT^^(TV1vt?;I<`t=n@!Ne%B2mr{FA(#s%)YcvLkUHj5w% z(ocENq3v=&n25fA@4oRktk#s$rcw=W?1vcO$)Cr) zqu>t%I~uR~gAsLRN}0sD{USleQ@1hA1ZnYXl_!(X?yKRV0qU2{W*^;rG?3NC?i_F3 z!j%42$9CriYYI3(a#psT5nmDql-L=0&!s2{03k>E`XBAw6}0iW(xLL!@xe*34h#}` zA+Mz9d?bx4#|rurmbD*+Rm0JSMdoq~ECd{|Sr4c0?;*k&{*Wc{->8PgM%UD8{D>rQ zzR1aiDx2&PpW*`ixKQk|hBGQabv%I}OW_F-pwLV}D-0P=n*pj1DBNk!kAXEGd7aFO zNYg8>aF^vDcB7XBvO9JtmhF`ZvOrSa+mIUWGi=WQnwN?UyH@zaL#Tc` zQ}m{Y+MF+y4v;#@7D_F!D~L>+5XcV%?wsV4qH}t&VAAfkwYS5BaQ!wQJ_;f1snPM| z0$c(Tm#x7rOLar+Pj}Ne$q(fYa41umP4j7h|b%tV7VHaxn#hHDkaRc+huA6h_opr+yUkO8%9gk)=_qTWYjSD zl>jlVE-n82$N&e%b|So3=n8-0=My}v^FvE6#P;yG+y@02S|~A$d-`t_fOv6+=J}ow zZkb5z4cHf)cj{Ubsm)9TU0J{hTxUZY-ri}iV>`O3)uqwjgOlVdD}2Rl!awoCd=1Pg z$x;giX#4IRybHWQ0u>=r2)6!}!NhxnbIq#aIF>2EJwhh~iE>J* z_`i5$TicYsujfrM0xr^r3i^?QgtZXZ! zih)!VKjC9r&=bNX@dE5_g>mj8Rq<4J<1-Q2Szv}!X}Mk8{)gW@C34w2=%30#+{IJp zWI&0_tCVX=JrvG6Pn{%ZXG-GAvxQ|k@Jrm$VY;5q9nKM1K!{l33{a8; zY$;u!T5NqmWcR@&ZCPN{72z^zWux=#zT_AnBpgJ-X2wGm>8M}^3+GVU=NOb)b`ZOT zDjX4!61#dSk20Z!Voa9fAuLb(F#_)+d@uR|8Y8;>V^mi=Mi*s>I}{_5{-2m}l-5Wn zakW2q65hZ?m!K(x^#)AXZPJDS_flYlrPTSLi%nl^x(+Zj#3BeCf@A0Hc+K5Rj2Lf1)^8B?a7~CHnAuqOk8gU$W8(Nl=E9;+(@UfGw)a z3fl=2D6ljSM^#V(LD^=P0C8iAq7-xr20A=?i{C?*69WPcR6pN0R3%ak*}_)-K>XH+^ zPJkj9rLG8RY2ogg67I6Y5!9(K)Rz#^HMD>EsQI!{v|VYd4I6Q`B`GszW$oRwBU@&D)cW&4|3U@mU!CuLRiWU4PzBvX*3(nD&9+iZv}@P=Kn zoFp@D^zo_G&NWjE#aEVE&~T>7C3@!j23oQl@EHV< z*#rg+q zA-bd3&=curK_@;FY!@33CMz_{mae#w!%mz`<0=ke`iWGDHRuY*n4%Y=lF+F4tc{IV z3Ey(wDoEL9^cEF$EA_w+4IT%>nsdng(%`pY++}e`#Bb5>G0Cy>X#A{W>837!Twg%-()3$cL%aiCkI}bEt!EVuIY(;l= z10TTG+$gd(R4@kUyzo=%+!AUi{2Gwe`g9o7uL)iYXW&)2q{l zXE*?%#E8R!D<;9Dr6us%a*Tg(^$yy{kE&fY-Ve*mr?SONmqkd$zz0kShEYKR<$P2s zT&^MQSJu>5Qf8QRT5E&D40}efc}N8>^HA1nu$|E#QE3y^ht#aJyQ-Wp5Lg@3mqH{7 z1!?%*RzVNKeg3Y9H9j-;#{GTZyU>cvcLMZLwsrA!rK+&HDyiSb2+ z7XNNr^^DKaxAoCuA_yz@HL9e!PgAqm@9n+36TTIY%p;X?a5U4NFPOm&v||Ymyw1bx z7ZI&vKh6nrtP&USKnz3-JPOW^%g?S@rP(1Rig-(>>B8%Pj&Pd@2b1D^8xBdnC2!=P zzA!b|98i0Es|{+_$k)E`pv|9akgvm|;1&^dm=_mJkPKRc__qKm z{*qC;P081^0?w)~Z#!aD2Nm)~1~NjF;1UYqTzDjwD><#uLbv0g+BpzB78R33hrx{C z&B&6H-6ijyVmt9n+;n`(*&W?V-hoh+4;7c&gtFp{Pd#0Esk8=|2X|3%3?%N=Y+W{7*3%M zW`v2f07Fa5Y6f~|KT@}zS;Te$yYnyJpN|q(c}Bkw*0+O zp8cHiI&vzl3Rky9@o=b=gt6dQXLZ~M9uj1iIFiqo1&k@B-#|nbx#(E>ia9OxuFo2! z)3i&5Wue?i+`$9YNi&Pu?(e;PDqZ)~;PMTX`RiM98~@DVy2@Nn77)X|LZ!Py^ciTW zcJ9oUUeTc&o+F_0HPGH+yUH5ZTlUTiCC@^O3p@k2J<8jmJ{PJ7M_lWI@nC91eanJI zp(DZ|K{=upII+VBo+NK#ng6Sg-5~Z)w`8229IX?(zh<8x_FJXn_f@6`(O<^%!Lqoa zszSv6p-wN576)lvIq7nz_V)IgyXBkKh4E(hYcv10ZpS1wYjx99TVjPlNO6dOK@C(? z<{nd{)8}4UDi68f=s|M@Fx6LLOppPUG#d3*JE^%R-QWx^O1A6*WXe%)P;I6dX=5U?-XrP2=# zja!2EYLCQG9fpm}DIf{yZ>uRVK3J_CO{AVixPZQ^+9(9prYo*!9DVKA7)c-NRGXl3+GyFq zjGC5Isu&@RnF2>Z+^`i!Zq8Py9yD~Xu`M^vGHv{PZou`tG{8vgaJeM<;NYI0iKriO zPy9Ckdek(p69>)wcAz0c*0S`06H0a{f>Q$oYj||Xgh3D5oy7Q&J{5LWXY&9_vL!YA z-`==#(BZ5d+_mRd50E^kWdtInLn#Ve)_$Z8Zfuxl?amMcas?EjQWT0D!U7;Kxxg4z zV-g^fkz{f6^b3C&I#Q}jn*T~cDqGVC4lWx^pWv1Y(^;DJdP;AKU3}Wr_;Rs$0-x*A z^%r+l+{mcJsNB3hDgVxpH<}``2lt}fjz+_@cY{U6Fd_j=p8NzsmV7;`Q^^!a3L(o~ zeu0Io+EX*A=fmNzd`=kSaO_=SdgewB%mPD>N6LmgiiSFIjln4y$sjzZfFUyKjzR7B zH84!ECFP#{$hNR`V!0iEpx^gp!l-IM$dHPa(p=k1`{PFae#jb)vs{35hRh3PR->u6 z7P_L2on0NOg5n6tmj)fhJe}Wx8chYEuukA?Xs8fe^=md!Kb&P^=LZ+{4FbaF3L>G| zsYSR~pRXf*EpAcakbLdN$_o_edx?>>Ex{sUX{Bv*iAzhbt)`AAz;`lbHWVB<2L;(* zpSi6I6@)=RUu(q&lJTsf;FoG~i~uvcT!vi=&<>^5t(ZG#>?yo3j zgJbbi;QQH3kP^R;;c)tpl%nnqP z(M?EbYW31Ec1TR~-P9GYwxlTjqcd9TEO;C5gVBz9uMVPvUjN6@%eSY|_rL%B=y|Vy z`n_wq)``&o795u_Z?TwJ5b&>;N%dpMv3Ju4*w*xJQnV z1Q#+em{O#69+W=im%=$X&f1GjD4;ym0hwn%RLCSFR zw5-8U?sbM+p>DG^^=W2phaG0rp*5uRKqNHkdWcKJ*`}`Iv#7>Us zj9c`!yd;aCm(y@U`!#9PDUub>F1(@ans`aQWH5L6pw&A@hO_PzY95)Z`_Ke{h6_-x zXYB#+*;z;_3_scFjwhUhhEhDrR*G3nfwU&(Ub(c&#_TTbz@1Eq1yQ)lejpEdG$SBS zOXY|%R|Szlz0B|N+qR1Ewo zpLEUk>gf!tyLv=CnlfvIiR~)Pb#MnXc^N5PjC|@)fcqA1-t={&PPJOHH6(lQV;Qgh z(1DHki|bJe7z$}jJ4kMp8lkSc({aMyj`%_YJy_-Q+!V|?e#H^(+(^7DHL{!sqfH9S z8<=t>=l{rf0WW)Z4T~Q|1Bt5?LhZ%BFggoFXI&nt1e$B-)+f7qdW!>~M>A96N{>5x z%PQ~mlj^?xazr(t$i+bco0xlXmrHBB1_zq?_kOlqAim&3ky_MgKgzUA&~+Ni`b*f( zvbn1TRLknlHM7T|RtASbp&!SCDMAR+q%*0|kmQ&`7-DwDwzc?7&vPCu!f_(C=E&>E zH?I&CPNIIWF?-tsDpbE;pHnA8LpW+Rq&~+V0v{yGwc=s)myN6~3S>mZ(eSk4O^;PPSPD6AQE`rm}k(Q?2SKtwMgS&AVnI z@Pj>F!RZNtV&#WrO%++zDLIm8k}?S9@^6o?L1!3JJInLs^{t19wVt8_irNCoFJw+R zF_95+5%Wu*Hc~v$Rw30zXB!#frya{jOE<`fs(T=|&PCJ~$)#;VGT|^?OLVq$4`hRr z5Kk|w)zWmO_U7&f%_zmo*>%LlG(e5QX#?~K5P%JL>aT3cm-@%Qyi)wvrmOcMi?)`- zfdyH%T~8U7p|nbzdrWdTUCwa~XYrcuZ~Y-Nu%r-f1}h?saIGmJ_co>HsED})D4d!s zpy6ypYH|#I6MNyMQ+uCuaJoVkx}|pV)dX*cq-L1mZAHhBABThF_f%+xpb&QzaAA>Y z{KUC~6AqFMMq?_UI89)TL<&PapJ}s1K75>h3C>Q(w6g_itvtM1C9G7g@kG-<1GW)! zdW3dKA7XD3%fu|Sk_lv)=wEpFvg=|6VWu(3`Pv$w4NwK9^7+b}khn7NZ$wGXI@z%; z`9OtywR{fY?4~O_z(aJ9#%vsfsf=TZ{s`5%gRuL)pZr!o@YK4NcAyIA7L|XRgEV>5 z{zi~|d*8Y=!d%~q4G#Q;E%_b)Y-AkRI*Mq?^i}B+rk>-5a}0fm&?rR3rLx^o=OnKg zkTd==FN(Yvr!&rN1`8vp)>mZg!D{eht&?htGxe*ubI+T}v(+-076t9|M3W>oK;+h+ zG2V|yFvh8^C(4N~EnL(A7CG16%GNZyX%7_wAj-Hl*5I=n?ZwP@reaC8V1iwwR!Aqt zqx_3G4Q?1;BvJ@kF=oQsvY-_CTjtlD3(4Udm8@$LQNm&VgbG(|CuoxWXUHi!Lx-FM zw5jp8*%GI$(d?Pwlwfm|x~ZowhF$GfoWb;9Tgp5-E-&yBl<%~#CpgiTxRz<$w^XO5 zfxKFp()8;GAy49R$oQI`%XTu_@!T37;c9!LHzFcfVD9RwVU@MsS0Z#|Rs1n10AmRm zdc;5UHfA;k`+6@jsrq2{K$VF@nNB-GL($`+neR?#7c6Uxci%!vj+9;&0?$TD!?M)+ zD3)!!WVMeF%kTi_3Rels1^J3q&cGe73W{YE+@SR(n81Yt{xw9Ph7lB+L8S?hVcGbP?>$S_Qauh#eED$dqoV!6x0EElnhk1*Mtyc-Xs)f){9T7 zT#daHzva8{~<7@e3OGhR5|5%@yUS@+ts#7ws-gq9zij_gJ0bXvibael*+L_Yb5Jr|0ruuZ@ixcG+ zT*3F%1xGA8`{@#a7^k6;p{&Wi-jE{yQM*X)MtWJt95tBK0mll}=V5IwBBHW=(h8y5 zxK1%vvM|UI9wExll5pBSIjvo?kWx#SIx6YiP;)!7qrDBQadW{{rmivecBq-84$6?6 zRFFWYP8XBHN5YHW3HvBw#9S%_ZzP&uIc9^fu~T9a8T7TESM@{1I@19QKweX zFRJ&mv>)z{7J|d3@Rxo+o8T)g^l%)0`03XEqZ`{809(9{FOp)%9N5o`?0eDeT{|yf zDTG-*CH8vb#~CEj%26C@e{n`{U(ZqcR9wYzQtbN-G0W5dWaTn2?e|W4_6>3YcnuUh zB5x>ocm7P&-XFhFu22~+foE>=RKq5l$;#`A$V{={x=xua0ruv#Y3tZp8XYNxG*_3h zdE-P|m<2-`>R5+R`?1*DT-JaoxF(PRVlWBum^HCm(rU{u(YE}4$aY5zq_~aDY`Dc- zk8X5nC#9*9TB51(8U3L1;o|exqN^Q*mcj{Gni6Kb-x$!k>BfnC60-! zCr#KGgZzdykJ4&G31yg&lZ5TiB<-mdMwp^Jgtj`F5}GGUPji>#2K++l=C(d;!nb<= z9zBRUUq4_Xb#yIt*NC&$WqQD*YgIQP#+47If0>bW05CPfc^>y)-FXgisBK5h9$M}` zx(7}%LTE)6Vd{_$E+GE4=`4;%=wD;*Xs4YSj@|>?Mn8`wB5!7Xm`<3(ht|0hixs_P z2#8*;7_830Na#0o@_0)M`L|{!XDyw41s=p#OLqJF*s&s^IKWupdI^&B^yX?|sZ3!b zIQ0PXI<;(ASycd%w^3spyW zH~(f=_jOs2U)vhy0;LbM0V$bfW>(Ks8jc|>(Jg@D&>8s^_Kt;V`#&n)b7L$1lm|uq zk4_gbi~|LhXi5lTNO9H!vw^lOK4Sd(FFmgH^ysd=xr8og+{&+p$_0#6AAlnvVBQS% zlp;h9tx=;-4>dm1_s~Ke1f+Vzb$h*&V`I6+xV*@QnhsZl=8n2Rsz4jOt(7P#fCn*h zgTWzKxg4ko?%GAZ)ZvnIc%UejQCCqDWInBFkr7V@R6f3Bb-D+p7o>{fh zi`eK^!`UHQP}fJboH^<@Frf69nJP?!HfZl=N!nfgjkjbele1LFTf>%`AFRSG-0N*U zSVK^XpqDJIJptcZFKfZ$kfUfpQXE!VBLo)ROWFkK!QviGST+U~!6V@}O$@4iWXJUh zSgDHQ(4v-Zt+i-GZH*l=wKHm=3p2PvH##Qjis{Zm6FCcV{X=V7Qil!oHZcJVk)c`l z*1JKM?3Qsr>k@)kcajypWiic8mCoTA{HuT;?uBBo3)amqB(QagSbh#qd~DL!d{5;F zIFHP=b?9T6w_lO1L-C@NLPQtjY%Wg-b};9Pm&T!)@!M}3wM^VufEMI= z#TPt9ooJHTOcduZOL0M?UUPe9gzlU;Lc3U1mzVZHCBRHq8b5fJ*1)OTDMSBSk4(ff4K^gKFRt zxRekJZh}aV0(ONhZ2&n|Q!g!$_GK3&67)O9+eL@D-Z-K#nlsBMd(kenqjcogS$&qG zN(M_>`flR8p%U>ij1AiR&%>g<*>XToi4I~)NZTu%WD;v?%W4a2i&9rzOp|g$bN)rz zOU!OPuhunZe=TbliWu8wSpiryId1Yq{sRnR^F#B%tV?tNnZmfq{pl-ttus)Stax1wFFEI(0=~;lrWY|r(C8wY z&4V_W>@RJ}Hvg@2V=`+$u=xs4%ya)}p9YlXks7~KKNtX3TlbKDq2p@R3X!zK?I*L}7SpbA z-wS{hTua+cwdO+4*<{|mryCC{m3&u>Cu?x8S80m*1vx}d-bcGL-eGFU3~bFuJJGxM z5iMkm<)TMVzRKqM^h@;M+Xr7!Ysv0N2jG?X$GdyqKK^Ep-!)I3Cl7YJH(P)bbyx+qJ`+DI%6G_>(%RioR&DvlZkbWvs@Ae>;#JbZe5F1M!;6Z89w7XxIj| z+pw$90`U{^<#UrKtsk^XzY9#4wZ=tc9JGdDiYL%tj4yA|kZ0)#&^|Sl#sX+C zP$OR_^Me59{kUzg6Igyp@02BSfOj7fyz!b6eNjNswVe>wg@y66TO35S`Ga69^!9~> zDRW=nl)M$ulB}bBC%h%DcmbfMz17^%%@pvZ)zp9()gsur$NFn;)M7FH0w7kdsjYcK zkbbl!RsCNtR)VydYE#ces<1#LPU4X&zL^UkbV{ngeD*b2k|5EcqSf^2Ei9lmtA65` zUJ(=ObjTTUhygrm3X=-m7~+^uDJspDysAvO2BJkum?_+Rz9dyNp_!0Q7sZqcQ{vzB zbT~y*>?WKgrjLeQUEhzNfNu2zP~r&Y9H-h@Jr`|Clhh$60lI$j8c%9UGacD+!vMPqO+4&4*T(Iv0&W6!B>ugrg3v`@QD}LnsHI(?8$#oJ^-`yvRAK ziwZ}L&qtv<=4x0~$HEHKyf$&c2B%$YNnf8|8mBeyiac5K3*fXCi+K@*XuQT@^&gv@ z_Pad&!x>5ZHyYfAA7J;4X)FKtD4<4QAQ(JW5a;r)P)TW;~gG%`ing0 z%&Ldk#1~br3^T%XNtW=;pj8-J9u5{4l{)RbOg|xleA($$93`-__hvi);I46lQO~!; zrT_BRj8*KE=nh9PPp-b1T#k*MBlhD?oGH8s0TAQN<4JsGU^N zWOB>VhTrh>6>z8*uvrbD{J!4jmGmbnK3)G2nLsiF9&Kc$zche^_b&%;4IPWSTwI!QA=>V{Xga}q(n zpy=_lXzNSD5|BMm9extrM+<7wy)`(U=hT9|bL?Mo^Sid;}v0WM; zD$YaqvZ%DwAwX;d3eS3u=qvd;bJTxCngN|+mB-I6LD8?^)5a2@=It%2jP?<(3J@jyOc zAUfK>la`6_1QcK1Fl%}G8r1H{GlsD9K1`YJCDsLp(}Q{lakxsuPMIbkgpm-D(m3axk;5iiAYkFWx3)*`{wS$Vy7KzHfI2I2Vp5Zv*Y{^{xo4;YI z*pGW~G_1dNZWQN+>;ZG~H;q9{i!y|RDgI>p`ytP@u9f*qiuou;W3BXYU-<*!1$3XT zUtbr>AnH0XP+8OAr^LkLJoEOzSOd#p#+iXqf@`gMRghE2H;xF|*a*;A=EU2i1x;A+ zPD>OHXF%q9?l|xJf`P(0${J#|02=C#!N!yfW{K1)s8&@&wd!F68#5i10Pw{N9JPsh z5kV1@^Octu`YED)Ylov{i(v2OW3rhJMHN1YdTJWPqH?dtwET4#RIdtTr!|?bV@4(L z+NBjDC`L2v=BBOE+T;yNF0rffIQab-p0(q-O0LrT%xZ!(%h1}GmtAp_;#==K?ifAz zQCPSUf_PxeywuKv9IVd3HM4A73QM|sd}}XWq57?Un-*G4ixyn~#*`bISaCGN9C&q8 z=<+{a_@C7eL0nGN2V6`< z$167jpdrA<3riv=)~FtD0@l%T0s)cIp1t!6cB9e?uW|c-#7q$y8L2H(onox;P zrBJCivCykQ&D^AKJYb5u(y%%_qRoW2Rl!UlTv$_M z6@1+rmS?i12;i6hrdu96_=e@#h?O|uXQ)VLpA#eIRyPfru2>t{nn4Qo(u7Bfn!{0V zNr9jJ(DG0#K36sfis&QB+U6s$9+WO}NrRLd=BE_SfuA@^P27n^sGk+&(;}a!GxN0oczuF)zypAK+Y}9b69*toC4>8qg^j>g(6}hvVKG%A{6} zw1jk|^=TW%mG`v7=aDmD0kgU>QP2Nlj<=YOYb34?W z(S@>kg8}&{%%p?jD1DZTCAI7|%ck?4D)!di-k?#*XX|iTy z4xV{|q9O6-`pPhyJ1M{Ngs$_QV*v5Xl*(6hI7&G;vqy9ogjv*kt}sb<2UIrWMylg@E0==BUlTpPv3xGUECj~W9NzF1Q^ zG#SMWP~jDCWbtFL@+R7hU=#EbBBe>R9xX*jr;X4Wcg`lrIi}7*zeuB9yXVd{YC6bq ziRo^1^7hE~@S*+DJMw%O)3H1`*2pR^uaTNH2@zH4fP}7Znjyp15RF;MX^*wdc1XqQ z2JYC%Ea;_`;%jcu?un|Z;5LVxQE(dcUKL^sH6l4C+0c1IITAp>iKZ)P zJ3c6AyhENBTgzK@ttq$H(ssSgA{i=wOA#CtiWWpvA_4QX8_5x?1<~xl_&BHXfewJP z*ar_aGIjr+MUNj4eyQB7eoc(@K<6cRI}3N0#rDn2A|8@m%hZTZ?d9Qi?trI>464n4 zxbux&)Qra|5|9bw$ist!gXr4_JKcw0bszI?$rulwGEE7lwTT5Q7I>k!#S+a*TAmQt zdcchuGJ#M-pB}tRE)@5vmb#WYQ%yZPp&2!}wC|W@&}T6?h6Q{YztPE!X3!A?Vh9`v zwo-%0R_drVXE-Dd`W9yKkRkKWnK|mr3RSO3CNH++!TiqOHKWlw?9)av37;(|M9nD) zOf@xk^a8L5y_cz}u39DIk9wU^%V@0sDibmvcE!45)o*2MndC3m0&6e`g0ElcuoTC7^-^J9=R$&C7NEzOue#NU?HY(fvm|j=lH_ zc$^w9Sr2{gwsyGoaxkSXxWT|KVHDRaxbEdY1_?r~IW30vZbg)i|5-mC;Kttc(X<+F z+S^;Vm(_FSLUXdm@jYe-NW#in89UL-dL#;Yl|2ugftx0W^`3FtO5uM;ZGV}-|3PYR z1Pbw%yt04w_f5ubF4jHG?Nth)UAD1lA6E@#|3ITkB)hlEpPN6DsxipxN~UyMosvU$ zV$v`Rb$<$Ack?Y65EgSdq`Nv&V38iN1*KwW6D4gpwI&~ zkzH^LsE%penp&Hnix^t<4iYQSEDH3{T8OS)i>6&DVL}ze0cAhiL^(-;HV5Xy{+n4= zXOB$pyt#wMEy-PY5n*+)2#5}9m7-c8#85J*0GYGp%f)@2JW@528#at*(@n-g6|0@a z8)Q0O&8Y?Tmv~W8Z=`B-sQN3t*RP-H9W$?Z_3m=6w{(NSP-TTq$F9-J23MDHnQ$1x z6}`_$_E*~f$phR=1El<*N+X?zJYBGw>X%YVDrRJ0ybP|c@v_`0PqL~IJ@Gn^l4pto z%qoOB=zUhN&l#kC;zeW>lCD>FD7f=sJur#ODR(a{Z{rwbE zhv@m~XUcZk%)<#>V=0vsDc-GwIz|sV`%0|X1nnTF=mSt$T?)%E=kyc8!pU##@H^i5 zran_L+gGyN9S@G&yDC}9xltw&_6Y(XSX~Z;^Oe@mX5vJxj#9F*FrvIxmW|j2cWIw9 z)p|V@=oF5m=n|$N8Duvok@pje+``nY3=>|s=2Y0zEqM)(fAiM<;~P)R$eKd znpus89Hwi3q{jAR-Ymrd3iZMs0a|lHZl%=@^&(NdbjA};C=1!rbJCNXK=udd&CzlM z^h#R&3vF|?z2ltiSzXtJ4jWtFYvk390p_l^&#CDV(8>9voy zMF<;SNZR!2_eqe{A}gw3#Oi2}Qu(o-oHI+!^tAl4;;4 z9RKMb7@b?j<4P|nI|(<8_H%N*fZ{4=#x1+r4%gsCZtB{Adz!!xiSZ3eYLz7ynPo* zEB*GfR_FzC);v{OPQmXs;zFuuZGm@e8s;b~BS7|!3)Sj_s1Nlct?XEp#Jho5RkUh7 z(nY5&Ulf8E<-t>9qXK#owRf|1mYkK@F`zzL$}u!B8W)h!0o zsWrFKCwj6e&C3f$)K2I>Q#;a_C(79Rd`wk;=vsxd0Br3zQj^J-NU%18m)R) z)-bHdID!`U7gOGYM6scv@K!VI++l3DIXmY#%2`Fdutxl!xZUT zjM1t4jC#<1g!xraM(sH{lE6k<%Hsnaj2(ZG;ah3ydLuL!y+%k#iuP9)SR!D^KYGxc zjGBe?lPsbNkMa9<-4WtmZKxbQeI8EaXyG-2z)m~Obi0!Yqs`pPO)Td+k(HbHkJ$5n^0$q}xHP_D26sW=rXK^o-I+I`_V`6Ce zDh*06mKDv|W^T39eGnGs0T@IKY4vc9#$fdQRJk@(rInWm5mKaGa74qptJEKVTzVeY zzSkqfTlV^7gE;~LF?|mI!GepGPZl;;x4|^#sbPQuYq zh+r8^)1nJMj$?|+5HvYEVI(S#ya>5w86W>$Ci7UvGjjaA-bG$;J&ApoeURfGIU7Eo zn1@EwhgjBNfnx`6s!p=gpD z*&sDh%%&Z^B9%?c&YT<2A}A45Dip9;klYAtN>3f+L^~xOsz2@NeN;nXztH&=FV!<9 zK<{uaDV&As);^jN!loeG95c+-jk-sq^0(tc9j zO2(;BfKB`Gy7vZLgh9z-X&_gUFZxG#Cue8;X=S9``a0$W)WQN*SsgSZ`Es_FiW-?r zbfH)Xj|^Ri=BV9%I&Mwa0-u<>>Jp*DW9H!Bu-Dv=>M@+(SgK;{O7Bvtjxt&!N)?ry(;`4~W#n=aCS3(p`lhI0IhCi>!7K71 zFhS^pG$!8+>|JQMGs>~!0T?Z}Rc&@e7g-ETU;g7AbCWAkz%X%XdJ-;rrzf+5TzF7| z|1n19JZV?-DOI4#3CS3Ed5Pk5Gav=w!5nav4t|Qnq`~!Q{JTjWhfN=H=(?c+n4D}%cMYW{aRlRqsTBQB0dd*7w`toi+F?)1aA+DpguS-4QJ``#<{r_deq1(?9mn;e+bIgGcv& z`~HLb_p1jV9nS~jX7#S}XI6joqFyY<^;uJWzL-y|XU$~tS@m*Ot{R=w%g?Ge=i^CJjaMHptNCPD&6=wv3#nIC zy@ENbF(`Hal8{R#iud4BKxn^ex*URAbzj*QQMk{CMSRzUDA47otHk8a0E}nBVTq z7uB>0zz-LG@SEpd&xXz7Y%%BGyA`i4$J0wzzg&%{oZ%{84@@|0z=V_Y@v^#T-mx~m zswWrK73Ua>045x6#cCFB$IX@7?9MDsy*p_4JD$CrPu>EZJ6B^MT34g_U>y*4y)VYY zA&`1fFTpVoc{E?Jr|Njl$gAqB*?2y?%PB8v@rUOd23xQA)LAz`#D>e#_xvTi>_Fz6+ z)#KR|RJh$+M0L4danfgbnjp6We03aSKKW|5k}+)k{Jr1%=SseFGnYpU1caYx{XV_@D)hU*y&0IFVA?U3wf2>77I zU)1Md;&^ef;*rss zZ#e=UVAN&fs10-ptVS>^M?aQp?N&#@Qku!M2H0a)1~*#O4JbR~orV7#0`~@*zNlw2 z2;aqg(=Zs5d&ER4M$6Cc2UW{ksWRYhLTRLa`=XC?sGW+N2 z*#+-Unpu51TEL0#ReKK}{(R@_W-$U3?#kH?*9(9TJp;Sg)3SOsf_FCykY)e0SzI); zncqQY)zNgip203bVz z!PhSqW3aBCjDhIF8HDPq1(eB_X4P5aAYaz+$1DW$uHIkCN(43MBC5Ll+b?8N8v;M% zv;TK6;crPK5F9rUp}KSX8EoL)8NB5-d`MKEd%ROH2-f@mVLWk{Phkg>Nh0KJsr3ET zILN#@8=r#M%j$~>@xO{!K7_(R=pH@NVs0Z-%vt|(t?qZHkhBSdqAlsQ`T0L2uHK#BU zm;rPNBN|u8D42$S^XFoHF6V+=p9Y7SROlGZX?c9i+q2;n5E;(V2xO?s7&;cjAi>^d zu&y&W`)>8}G>CRtv)*L^`qNw-L!e|e6ZVVFbOx}4@xri&uv`Xz-?)(7>S;ZDkI>^t z{CI`NbB-Fcf^9OuXiNO~$3J{aUG?7Iw=IGmZmFxy?4viTgRm7;#Z_~35+d!&&xUiQ zJz{)3RgCX#iKD7gARU}9Sb!Sj(2>*iyA@R|$Lv46I2Z@oC-_B?6b}MwF8Qj88iiW`M$tnsK^bHr15bP_HMUkOpjd6qu?pHgB8B{E}Z$O#a)7YR zuLtw_WrG5Q7N|;xa@}byOxP$qLT6H?xwB|??p|NUvK|k6^DFDxg`cSV35^LbMU7H5 zm`qT~P-^DL@&Tj^6R4JR4vl3X_xS{MZ45Lg6H#%1j(t3@E>UsWCSX#nUR0;f;WTwM zsV`Ua%X=6ctJC@XLj81ApH7gT0m^stwUeDUla2g(EDRz<;9PIWxxKWO_v&3{9S9uI0@{ee?27y+_*s8{FjfR3BOJj%VHh|M=k7lLJM z5O{xrHMc&)GV!HOxu3E&b`DWpL*g2Vn@x}O) zFas{@;qDEldv;5u|9}1y+f4V-N6+d(Y)mGKkKlxJ+SmB59{vO$!q?ExJS_Y*ps0@D zp$AU2*)TFDuus`mz;2rd%Yu*JLZL4wa0<-nkB{HJghW5Sizfi2>#T&QbAdXYb4vIh z7TV~=u06omoumFY)xn?q$)`DGe_;p5VXq70(*@MDI>+J!(Zq(gvFbBy@=!`SGce?8 zRNE=?01`tR``5prHvQPeC^D%b|G&*GD)U&gWNRVOaXG2sehvZI%PLtjy7; zAzC!zrh@L1TrlNuZ1^g#Twx?MVo#}eGwO2gM?l zIaaSBTJ;!WsE(Hpl2JSLkLn;^yE-a2T4)ejIaH%YV(t02tau|TmcR9PJ z2|o+|fIzO?h@O}J(fr{jvRggJyMZYOoAT)%#xQlq=-@r)^<>0ZZ_o?}SkP{Nh!=BC ze?Eb@*f!r!WY=hPEz=G%hZ7@755QZQ12loCfkDmk*jdDKK3WA@I7&>@3?ck+xT=Cn zA@s3$=hdqN&H}kNUtD07h80)UZ|m_SP65>?gb8%l?4ed@_^TR%T+G4&obuSaf&@rF zDYiLNbj1T5E|2;IQW)T}ffM8U=^)Nx6X1o4 zG}0ThKSXBpXdv%K2uNCS&bMLF;<%%nHudzjDiUlJw-YiKM_Sn;utRa(>@WuSZqiga z0^)igh2%0$Hym;br}AD3_-49WeZ_fVt%r*X!#lVAtX@pfLG^`=Yi|^LBC?=yF zkbiup66d$9p2^tV4aWUvZ>cKd<<+_S>HW^R+h^Qp%NRP6x{Hwh{MJQ(;3t^#su^*z zkJowuF6s?K4z3u2TFnjz%Cb6H)T0s3NEKK{zjN~9Za{IY?@N~~7yy*ued6QS^YN>y z*6BJZ2ppbCF#q`C-6b687rZNe$U# zk5@7m_z_(D=oL(He)Q@tgbj!K7A@C;uY~_0+qlJuaZT@ z>9Dw&m<95)x8&p;V&d23{8ERX21Ac1l^0DcL>)83jXln{if z$h_6pMn?Mk1N^wnws*!RpmZ3c#!D=*cXqqglK`YnN2Hj}Xo*I40C3=f38V-&99>s@R$Alwq~@ZAg)9#rx-IPT&y(CzT# z4P0V!W>DaKdQYwS&tP2X5RbzF`_PTCUfqbg5O3*IRWrh17{m$ujhYWSvHmZv3|_C!TEe1OH>1A*{pAY`s&(5$JkbHOU17w|s?*v&f(u}{?qRYp`c0R6t z)tvX#t}j7wgw@9!=ouPm9A}KouWYQaJ`ie%)}k|gyxQBSC`Y3nFRbFddud~-3-Fd2 zjy&Z1xDDiKoe`(@4F;;21!hZDF+Nr&LRH>OT!d&6Jo}dj(^K^eRj9n*PcOg&OSCCQ?P2Vc!#-1Z~=boepyL3Bq68j;m-z-l$X;G&&Z7a zT(NLmIdQ_VzyMCwNSz^~5iHf`uz-VugL-;df=D_P3S&=@roo6{N>G9He6Qw%XD8^L zAQmzL(KkQ?#_x?D4t!QMXzY4&6nQ2d?s^#pq;hApW;;ch!=@f%lYn0gfy-yn8uF4Z z5hj@PZuRIs8hwl=tk5`;G6AO3^nkDQng=C^PV^S8y}v@kVUNJLp780=Wnjao@@yO< z-*ED?CRT`*6E2A!;Nmr4c7(hrXzY;%erSq1R@hzV@F3hLdYRObP`NY67hm#<5iGwB zzBWZq0gP_p3bQH{p;i-x4<_{3&H+$Hc!*XprDj-YseMkFTTxMWOcs=?dZ)q3@MA&pH%H=9f<(w`%zL^!^IN!VzUk-Kk(X zfbe{x=i@Ov3=wpSmjn8M$!WsfwE6zyTj~wJ{J}O)xnc9Ex&}`ZC1LYu4#VqCwPZLw z)!~cU&;lroYiP02AKugpVj`T|u=>@Sa6vcHX>3&8a^>N*R9AqpTo)E7U=KDlV!!PQzT6@+arjFe*!3mk5FiK zzR#nRonzl#oExinkB?`~^PSCg$b?^`E8<=P0+WW&%L?q!t*rl@fiRXH-QW49<}Z{L zR>yjDb*A_539hf%X?;E`v*_SWTjRor&hi2;oE}~W4CnA^Q@p~m0ez-W;|!-{8RisI z7>_OrHajBRGpXCR4IG60AhZFzgcJa9F@k_G&=DpRpo{&0wl#Bl5NBF_*%ZJYHtQA7 z^C+HClzLAEA%*T4N3zS4`g=VcJ>nVoxq~NHZ?gVU+$`}c&iBPU4*z&%2<$zMR=nIC z48yUMyWlbyJ4G^+9nem>hJrXwz^s89>%gCkx=xU9k^q{pwNspxfH1dGB7!wu_}2|? ztroW8KX7%I;qx&99%p9cL|{0unfr{8!dIep3D+(0Rs~)N!Da76RRq9wR1HK86cXTsBgGNpt@k9qnvDRt z98CSmjbZatZ$vtds1M0Rj7ekMQOH(_-Qrz6%SZ`Bi&%J@cwpi|>G2NrQ=*)qa?aM0 zaCLz;HCl<*`{mvD>sfQoDGiNk;Lk^^t-in?ga7iP*vN;VRga`x{^tZu-V{KfS~t!YccED4Q1?y-%}I&*FO%%i688@?>~I-V-jlmHrKHE z=+F(V>UzZr=ik(f{XxBq4`rP9-`AI;)j7iT00j^m=RHteFW%oXWIMa4UJHZ8JsfKz z3^UkTgQs%CS@U(&fQY|DKwV4=sGf-Eia)ExjznJ1oh8!l)b~C$;axclPuwECdDZ!RkG6k8SOquXPwUw;^sr?s#O6% zE28gEP{?E7f|~<187!9htMx^M$l{$#xDqx}oH=8p@KDgS#Cbxpm5z=v3>42MAlpAB z1Vtn?AVIV(ggbD;G?j*Uc0w+OR$Plopq}eMg}oZ1lpu{ry<*`kX>%L|A||L&m@>cO z1TfIvbI6?7z3O(#U>W38zH(_i_dTd~TCd5WnadwoAE4zp5dMZ(Lq3r5)IEODz8BA| zr+3rRQ7*iZ^FXMeu51>w1-s=2FZuB;HL&r$4KFb{?}lM_e6WAGAEw5u=Lgl->xrBS zF_^v&xcLE*Vk`u=KY`Z{+OM`)j(p~%sn6Dkw-e&dHHO7&+`yf~{e_?4QCPx)VzzJa zE`}$s$`!O8im+N(3SLtTI-_mMyFti;;T#WF>+-@b$KlDE{66#D(ofp?E%C-o=0Co-jrM+0P)fHU9CLo{kleB8@&OQT z?ZM~Hbb8G;O79yi$nhD0fG}8Ehi11U&46?&wb&9Xj**P|6jQVFXaSovW4LZm-fCB8M^L`bJ3-3%|alocU--801R;97 zkBhy&a>j@;aJE{tgnTbaij4S&d-0LnV0E^}O6D{opeABIB}|D)r}NCwk=h#9w>s`L0a1eUq#h*IIsGi0GD`q1N%R4 z+{DT}-LjP=50X1jnl_UH=dwV~9EN+?jI<&j{QMr0bBRO(8QPw=l%lgGVIRHKz+sPY=v}EEvSP>V-;ANUkOMku$k-B-3iOoxmkb z%g}VH@XVNr2;N}-DUctVP(l1XbKnm728k;c!IQB&PZi1N%Zq$1vH;V9P}-Uv$L`D6 zPu7e1C0p9aFr~B>K8kM`UTGq;^!qJ?g2gO@vm^~$(ss6g4F^Vpp!JSkgHE{Wvo^cUc-(Y ztr1w5ZTBkEUomkAF$fC0hh!H`2%3m(PR>W*0SPd!244<(-v!Zhz7-lHbBj>cS^imr z$|DvOb!`g6K|9+wfn$@;)}VgRhGe@;`tPfVZQzG~ZQl8QI3pMkNVVy`;GjO8N$S~( zG3+liR0$1D!&lx$zACRJ=rF5s`A=PC;C7)qwz1@B_^V{$LjCVWjtC8gzbJ^cL&q>Q z`F=QFU>P&oSJU7U;^*xa$s|wHnQvF7$-Y%X1q7?=-D1*=wuaQ!O87-m+If27A)%`iR_#DI_+JWCC6A8`2C9>QAr>1(r zVb5w!@GzVWi;m{Ab!(*LxTf5S~i7o?rl>7Fb>n;X77c#NkDX zFMxFk?34$eg?28Tl0bF=DS?(@X#`*t!RqG^9J z9iN>OjywEv|GIB8yqb6-O=3TmwpQ5WUlH1QqwTXTiC8`W$MT%S+9N+2rlv84;W7fe zD9QvHnI<+ChUD>O9IIA|l;TEV0mYw5;8y1$5QiQXpeA;2NG`N!d2$#i`{a#Z>M{s+ zV!piqA_S-3ZoC5D!fVxVpuud+U?*Y%pJ5b+AjvzAZaoTbqAPLj)a49gohNg-F;*;^ z7yb8Ls78e7(CL%g-Y?Z;Uk-! zk%fMy5M|r?ouuca6;^xAE4QeAg>!Kicd=r*oal8E_VL=0PsB1>6# zIw%`&@gu~pas;b=e0JgV(#sK1K$0ugOeX&!;mArVS1d;yf&sWrkkrEle@IB`#3jbh zP5T&pc7QipZ*7{Q1un&vivCIRRLMxz(!Gqj0HIPnRe%v*C-SULgebI3BIaOVU={8V zE0-?N2XqGq>xtQOmwmu;UT!;aW6^~EpROprN&N?ihDTe!@byC@w@+tF=k?%;@D_oK zPF#4-amW<*@a=ecQ$PJzZmFF9BR}6}0^5NOf~WiI)!YQV0V1!&lQ|2b)8P>erM#}5 zzWPcHwf`f7pzsZ=+sImHOaIbPQsi{C-iQn@=`_c^kV!xJ(S<1mC1*t5QH?XdtbNLa z07Hr#E0LvKW=R$69&uQ{C+pU94D>!j;2H>RtjH`@&5qVKF?#FYZ8*!|70-UZy8V=c z5DcByZgz(A4HpIxZjk(4b^Acwa%lqfhn}tO96WtRnSzQb><5kUj;lYn!z)N6mIG1zz;wM%vC%<*vn4gzSMv5a=-_V102xr z^5g2!p#eh_Ifgw{n_EzygvE#ZAlzkPSYxY2Cd2nP^n63I{HwPVEC178Al1({Rh4}w zFp}kG_aE+3Jow76naV4qQGV^CkiUm>W>J&iR6U)~hd>)UtivWe8M+j#L{znRw4L#6 zCx7c1&65eJBnZYcfu}FqFei2_C1>L~_A0w~9i4wd-h~E%{>Z79!1YmB%t+$a8i&gv zxmGJD_5{%zJzO*}Pb{;OWTpsfw=Fm_SkboY(LB|mlDP_=>w6FnnRR0IdzheZ3=u@ zbvRrC3d=@ziPHtdc6DLL5o8g>GIs##_axp3Iu8N#=o}#l<~CuZgOFJ$fYoH7T)P0o zalAPc(@&HeW8d zru^(^V&W-DU!SNGAAn#Wty_l&IPE!U60FRZ^@QVVVHDX_%fN0R_33;_p4a{`lZ52N zoLu$O9W#G+V8)_%zH2*e1+I^8tAFL4>*{ktUu%$qd zFE^xBxaO5P0xhhqWEc(sG}xgNURxmvWrFT4{w{AOfBv(#)M`ebZ_A)<>&E0yE25N3 z+Sbb{_9OiHMqyMdgTAQ8`2H|Bdb-TvJk$udUQ}FwzXpAWVnI~7>kd}-BI+qdB$H=C zJbJcAxJl;ix6*+TElV8Up^3owafu|hNDYH`dVe4|KT@wl-&KGBkqHRBSN&p*+JxW3 zoPT)Ac&8n8Qj%*_<1tS`o`Ufi_yuXp<)8|OibOLoZ#3S>AT)z1 zauP55z3Pa6VbnA>K(`{$Q_ld(C7E|oAYno{zE^7wd^8lRNUCP^ME!a-oi8tedF;2I zeH-m4++6eR00(Dy9Q*lK9W=;?EA>_kRt`kU2@pos@q?fL>^{Qe1ju)@o6yE;!77T= ztfE)x1OS(D+Ioq4h;}e*5DJkB%T#605qDC*w76`aq}_#ibD~rD z^o2IgUofm&1*S~8uHc$ZnB5?7fc{313M$M~x4^fZC zUp(Eb?)<8_go!#9$LX>)#KWD2%g}Q8OY$KtFE!MDSBL?pPj`Oy6EY_@Cj{!CL~gh} zBK-n4+5~LZ$p}@+sK6%msFh1(HAn;8&IOU)vWkRRrfz0^np~_!F}4bWa}(*p}r(GCu6d2AXAumyZqdX@N z=rcw1rvXuvrM)xM?!6$cz0;cCf>_xyBbYEjn+Iqx7!#^n7mwou46jtR%`QK+Es7;< zR^~AkZwsMFe#BKkE-VzPhC>lEWgUH-f*cUO1i8e_K~y?`!!MHF@_c~CV1lE=++%I@ z#592KVhexAhy@R0-MGUePg)>@rL4|`d|jY}=ovzqQj|Wz1BN>)GuU~a0R|{a1)W|{ z(}5Klu%AOWH|(H){+342pLnq?gSLY|$e*t z5o#xES{Y<}n(MYw{;kFIxL)k-p=>q7UYPjLnP1OTHC{4c<4lX zU$W4xdZs&-I((@tPN!?6Za1{yaIl4J5$I8$=x;3Gmfv{-}E z=-%Rq#N!S~u`cC~Ief6m5&@Ryay~$>I2_oFd%}b>wZEq1;d| z;jh1YW~g@;D6-hSy^BOTMB6Zux<>hL|EXiq@hO1~ecem)E&Szo34N?~FV?udA+cSo zNYeNIe@y+`8dFjCRz7t`8yb6DUaah zJxa+gS+cX#Ae9o+%QP;q^AKav9*ZRe8A)^t?9G!Z2)KF-nZz0|OATAALGEZ-+W zMNGNjpTwz13AY>z`A52NFlVw)tW*;re1-*}hE(S!bKp5pf9`p@j7S7pset2_9HD-G zh9wf#1h4ZZU*KKScix@O&h-^C6Ih@>qxqJSJ4F#l?DPz8BB7>Ze6L@Ih7UMNz8w%u zi)ToajHn=zU#bcp4XGK42{+~{S!H-lChP_yCKRUZJwTfTixHs~(HPM>$r3ZRp{!*e zI7xYriBvQ&Hd+`L?P4@ZQrx^iUFgkc*$iEsm?sW<^Dxe)@YK>@RGnMmSFrG%OyF$V_~m z+K)=2PA;be?Rf}%)UXTK!m2zNQLB`?zVq)QvO25x!H=n{1ai*&@IJq{44d6WVcu?h zwMhmI*9yK^V*oLcZ*FY(oQn*HG$Psz$#6Kk7M=!;Q~`9}7t1D*!+}T%4oU9srcgqi zy7t*k?4I|EmhS`0^=Y9|%-CocRIG|{kN5=gVTNyIv1y~|8b}HWoaKT3mUE|Pa}*rl z=j*X+<-$DTbn%%;I%&QwHPt=^E1Ka;n`I~j=0qL_V~7^XYj}t~CqN1eu*c!tdf+=* zbTq^F2t$r0phV^j44AshbIuYrqJ^UoJB!hW2Jm?7w+Vrg>x9u3S-^NVuOdc8D2cGW zA*^WpSt=xT8R|LR3AbC(2S_vwn7}45=mR^PJ1{8iqC&x!%Vs^KnZOkK3RfwU;NuGy zE#w7PAt}7EsS&B1ilSGld}JrB$fm&|K=y<#T%53^tWng=?s5~bB0~V6uk8*=B{GeE zcJ^7dcW2N349*!qPo(b@8eJir&l!@9Xu<9t<`U2cj?g9|hF{14)TdkAceWubMH}Um zL*Up3YvXd_Rq%xGzjI!=3;q&>yT&*tWK*F~6m+b>)nMACFP4W#;4=|;Ye;dSgQt7* z167(*N^ahUe#21ElK7GKFlW5bf(g7p>DXvg&J<4ZINH5x50If^QA?4wH6YO*Zfr$? zMo4-HUMgccO=A}&+ivaPtj179h?76#c=*wsxqvEN?#b{_7m3 zJ%$!Efft3!HsBHLXp34nvkp{+DfKAZRRjm179PJKz(R`Rbwnc3QMWV-cF_-hOl^bT z`v)nldT7}(f8vJ^se!PwKUqA`t}md!E*>_f`VjYxh<4BU?*vymrwf1<1`d#K!i>#4 z`0=NYVj&V;k6kJ3@x8X}FBsAd6XMhFX+Qk&KfNuBZg{*N>+cx8Qm0#WVyFC~^x3DO zWA(y1oo2D~f}#xay}NLK|K(ksQX(;`JVB%hF5inW5CX?cn+Xg7)EQ>wxQTWQvke2v zC4NcrDSfIyVyojUUOz|>DGW>m8GMPrgpb~SUSFBD5%jD=4CF`xIi{|{d?!C{o2pfJ zj*p%meR)F0$3d0>w!J;JpE`K?!lwf6flW|inNUVivxd^HN|d*GLP|p%HZXU~3v=AI zr~sd}t5yz3DaVIZ-UlPTX7wuv$k?R+^6 zL|0NJdkSAzoVtohqz>SYH1J3O*rXj0AmhUwp=~DWVFMt(Z4;B(?Eq6g(}tdr_1$8k zGCf^-tUq;Q3{uoTeaG5UC6El4kD)dINzufjd&`R?ipVl4`@-xip@(qzZEG-`?QI$t zESJPUgcfT32BBL9dgEXHM}u4+Y+4#WE5R;FGO80O)QULZlrjTk zeDp2(P>URi_Y2s!>9b!_f_Sfbz8=&SO>AxCyP@F&Gr3|E{TGVw65ZT*XO$`%Gg!s$ zW(b|pex_^cqF`98V^Nt|!u}}BAf=eHRqS3O8JvKU*0Aal7Z4;RTi~QJt{+K6I!YpS zXUn?LL~Ch>dBPy#SkcMM=M1_UQ|JKy+A_^w7^7JF5NDsGzJ;Jn|jO~fn{e7>~ktW2IPyfAykk;{%8b6Z(E+b%}tL(6~m(Gr3zV) zgbgy4T2`6KBS5!|b4SL#$xN!2DMg$Iw8c3h%j#wej1C5#uY(Vh`8#U`(or5QC$@&^JY%RWB|uvURDzo|0p$MI34-nZ~`ha#;|F#z12!A zVQ5omL1HY=UEj_k+g5|beeF~}{+P+wE-ggpVpl6XEi7s6ySqc}S= zqQVSgiWY1v#T!&XQOpz&-G;o2c!pS9FM%Kc2ktR`Y$kKf6BQbIH!xCLBoe9f1pnIB zBFeC?6iRjF8oJmXB2uXTNJmG_Na%An4lz>R`>E$_kzuod8HUxi0LgNTS#?4rJDMyk zj_gAnsP_t$UJlmGO5V7c>3gK+yXcieDO#)1yCZiE+WR9Jz^jKzJY)_w6Kq$XM<-R1d zq=yHSSk7?U2)To8|1@y+Q2%#Vy73k1n=}{YIYliyD={-V?OPTg7D|C>~_E zre8PG2s7iR&3tYXoumH`O~8QJ^&c6*>t;xUKp@a*;rsYn^y(BvtjO)KPGIh#qUv}n zl4Z+v*yT32!UOrJI7Dl>jEHD^e;9~mY>@rZLPJ8=bC zfz0WfRzgXb7(#HML1V*o=5vxR#cG%zk}il;zjw%0m^W!=vVT{mWdQ-|kX+628|+4P zg!x!}x#?)@<0*PAmkyDNz*w%;bHP5RAa{rD7-iy37c}Fzg0RI`j#rZu{=Bmgud7W`oh-VrOJDYG%f<9(t#UKIF?W zxETs7iA!XL_aY`JWMp*EYKxbZi$mJ+7?dXsA~J&TESm~|X2zyezS_Ws+5u_5h{Z4_ zG9L?e&Id<_)o)?!z@--9*e&ygCl9+N6l(1p)gLq-nWWmmlD9nW(w_nK?~VP|Tvbnr z+&Fa)kA7J_K6+{Ioi!aejRY)hd4}qxv!{spdNNfl=!1>TnRq~NJ_y`=7JlDg_HPwO zc6-|JT3|b14a%=X0z|tRL2ecueNGzfD|1fxi>D*?L~MYi+W<8Ro!U{Z(@_td&~(Nt z)d~?^)FO%kSc}h#sEJkC1_wGrzrUnqJ@S4d#>Jr~rrv$YtbDk|KVC2NmT&T58FL zq>>5Im2+r;7Pt5`u?5c*G$C6+9=ga2#a$$Ie7I6iR0lFmb+~IC{Cy@!Ayh& zEic|}M9O!Kp&8=cOEcs`AS_9z&+JnW&JFoj=aAkn7WbmjH>=wM)Bimwjd@Gg(#iu2 z1Bj8t&+6!7YT~kXNCPb+$k>h_u$2GHTMFO*@NydrH{|azIs{1c5-$XlM~jKJB?}*J z{|JT`HKrsO^D1fyI?;Lp0u@_HOpr5Wi2>8>s4GgQoZ_~UWgaZ#( z99f8g@@PYmKF_lD=tBA}ne7OoUzQBqCAxZ0zOP>vn1ysN1$D1^d=6pWBwg_^=DB9GLW?xPsQzK| z9msgYY%j_X7Dn`x19F0w1)46(a34N3c`mhd2s;`hV<0(EhrHkYR?L45=d%Qe z(b|T(-wkzy9NHQxyyavCZ7{Vm{IuBuNBrF=i#E6ztf!HgRP7%>e|@hyeDW%#Ih-Sv zgqt;+f996_c)XGq-M`-!ZgXj&smbLBuiYz11P42b>`#FV?hL+tc=6!DCy&~P+JD2; zrr*5>ncZm1 zJFEE)|3D|aisFEd!UG{40Gx!JH+4vPH7-39#_vIXDZ;DW??lQ5BPs*$tvf{cUBE8Y`i}v6-nwdFH@>MeTcT3s&eoeOGGHJZnv6ls}}r! zOZ-b~V&D&lqEf*SKx{)R@y;(*F#Qeo;Sn9V3pBmmyCE{T@dd`TPCKIA%2N(4wtV#Z z0NE`|iwLeoTE$zZRDaW)(iDt~9spTbIwXFA8rT%DRR<2^q#gACrhnO~y9vL253x!% zI%c@{SfV{hFFqIxYi8ff)#42t*TZj!45jN&WVB%98+s*^8+1c``m4888ve%nj}9OH zrVBE*2`cc?U+G)`i15SIL&v%cVMAJ;FLhr1uu87Q=Q@nJ66H~OdCZb5&rCjUH~h)3R3 z8D225L-2tqISf5AzMelj9n5-NbE2JYwyhDCcFQG~M6hGbc(l>z0T|k1@Jh)<-=Tn@ z{k3AnubBl0>rQq09*zG^`T^raT^YW=Y@*EBu>)=sqtTUq$JUMg#zsBX3hA-63C5Ym zXz3vlZws62Z@pldECn+gQHLh{!3U!^N^%5>)~JVLDIWe&R&^ILTch>DiP5&AN3zM6 z*L=))b40VV<^oss1@xVl|5cx3QrI*FgB>S4ock~up17HC<>Ti19Op&gXm^yt?R5`f zg@cRQoPG!fmlMbpm;&{SyRh*?fT2?~_=g*6J*3KSJ1>#M$iHy~Y4kY->1h$9I}}La z<%nTO)oY&&=9DCae~;8(n%cU{;xN}e0%~%7Os>$!Wj(nzA^dcW_m4i@i?f}52pIPZ zVl4va9Fdo-(zId{ImE!w6>rhe>>43ecb*;HWeqmB(G4A70eCyTX|~sZA2^2n8WO{V zDb1_0Ll{WM4XGp?01|;LD!nlFx)rx@+dR;l;d5_Bet$y>{iR!~i~saLwk?Goesn-k zi-vw7Z^-O^0&qChqWtgA%!IqdDGYgE`%xwxV7yu)M7F_Pr#ilr zhpIOqaQZifgs4+-%XDm-6{$a!s!5zQN~=I{B$G=Tkw62EGYEdbIfa(8+?te3{F`n9 z90O^y1gY$xq(ixPc@r+ia*S|s=1hcA1vzC_mnC(uVLDbq23Eu2EXBHHZ5ZIvN$knL`2#1SE@}fA znT?8KBn-@Xr*byR9+B{!JuVnXA~y{=9_vMtw<@wyfkuIyrElJKOt$0iA0mId$IIO%81+Fh@~57`A^(ZGx~e}T%hH5->CdV zG^e*A?CBaBW@ixS^nyHtMtSsta1E#Pn6~QF8PNl|!^6^N53}Q;zE}cZD;hFyh9-kY zD#I;xY4jvHvvZ=hz&6lQ=+KnU*m<`^mTU>M;ktQAW~f9QT2OA=+lX@?MQ?O2t1~l! zJC36lAdeYZf(Q2}pAsD6Y-N5nD%)R=&S23Y6WQAp{4j1vE#d>jdEj(85%`B zSTD2nQagTom_6O-1`^)8C1d=(e`m z{>UkRxu$uGw{e-u-m|FHIpMzTPy;;h2CE`-2~;#qj{ z+67+kyFsBv*i59$v{$V4^N?g1-TN>fXHM5NE~?F)Z5%tDzn}sh7vSs5611Y{7mgnI zeg`3VQK$Q!^v(v!<=M3B+yK&q)vd{{nYL=YcpFK>e3173%^@%-?BvKO|pO4};$_pg|G|L5~QB z7Wi~n6q^p2gtqPq`Y??GX#^RXO_%i@4>5{9*mpf_j7TN@5RmRv=pU9;AeoSXERcfc zg{e;Qa%7$&TQUZ5ujI0n@S6{lr52%hJ&0N+Aa&cr7-kfgZ-Lktxi- z7WVQMydx765qBYs9W%V#jLV&6)~`4Knb39?feQvwZ;%eDnpY@-9Z|%9dogfrH77QQ zJ{H;V^wWw;-l$KZ&!ISw+#~r)<0KwhhqIbWi9RII+T-19X9({C>mN+U{WD-6X z%E3cV02$35aSJ~DAn%lKerX%M&q?#&u+0sj-&n$5z9knw{bz!aKhiDwVMZPoT@g@0 zN!O19B3^uO1<`fvbF@Z{_whNXK({OXESuG+aE7-iSgHpY+_^;9-u2zutu6(yWf0;4 zygRc!(dgRfjf5ErU>Bd{spvbrtUjq|m0k#pV+#^t8?8u+E4{a-EHTPpVOYU!c$^4$ zwC!q96ix>LU*U`E`QCGUKDXxr8f@vmjg^E%%9N3SI&8*Dr-*Apg@Bh+csp|s>^k-H?$ zgr`x!31>9SmMNh%HHn8MVKH+9?TKVouMqVXubSj?TF%zA0*X>*2PT@*4NdXV=J|qO zMt3~)B5&m5EyHS2P*E*MU_+Q3gNr>pO1K5R4ArO+Cz3wj_W6h>b*+wCWc?uOP~%Y> zwdo+zMn}-~P~TKWTu~sW_>}uvT~*OFL=zq6 zfh4}%U1}M+&jwY@Q$0}vkU8r03qW4k58zwk+1yyZ2_LnQ)oxPgh_#ozk|+U(Xd)s> zBiAUpOvGkm^(A?g5MG}+K!wN&+?v;;DB#E41k&jFPWj=EvPxG<&zw|6Y}DoT*S>XZ zL8gTuz|$^0qUC&h=(B!kvO*{ycbeU^U2RXY734gBYZ(C5c$yKRc#G`m< zc{3#|A4K_8$Vc#32Z9@E6CXgMmNU81t)+_?EeFHfVs!|0l5ucAsl7&z`xN5z9kN#1 z-^`nMc1vma-~V$VjlSdZS%P#==s#uJzP8XzJcZ*OC*Lk993MWyU z58boV{vvCer3>b~>6L(vjBXR3H;;joBpIJj-z@$PDl=_+qzqwcVBR=tl&n*?oKUzS@AZ38YZ zRjQ$NpcQplr0~A}UbmfhT)qLnr7HmmE5FH}{TsK`f&ToT-yq%x)u7i(TL44?Duiep z=Zut^$DpCr_}5WtqacY~v^Br->Iq{<9R|ILu2l{}T4xNA_w;%S=;u*8TfQ=vF7wtx zHlx`hY$T`_2Zi^k1w2u4!2qdt+-#q@c(Fut}`s900UsE;k zP$1D&8#YQNPtaux09$Jij_~OKYMd*7VH1K*6MF9P&G|c|uKffz+&U1@fhZBI4-I!I?Gtc2phy3h`_G?gM2?Ny+O+bz}@o~D8`(!r9O z5f(wA3ie%2=*TO5$@4_Z5(i}L$rYSv8TqF2w=5>{NKyZAb4L(0{L_jn0(ou%m5Yns z44V0h_C@4k(ekS8K7BJ#{NLSDSp48$OtQ84N|Noh<}3TvW2}r3R}R=#FqH3C6M7$# zctpzXcmGJXuL&UFhT~q}*@kQbt8g{I)4=xmCBWN>`bGA^>ZA5VUvOr%`kd2}NY@a3 z<#Nx5_q-c7L*_i+J`lM6;AeE^1d^EWN7(eEIn{(AEdgnl$VTFkAqd_@%%D#RePP}& ztLGa{t6&=np|6hPvFz&ABax%9%Jpp$S13qQT2Q3KcN#n1drE1QK;bJy0ji%b1l4EZ zzOp!j%7K^mI%Wy3EQ*=qXk(d}DbO`(Xv5Ohk9-G8q zIjQ(V_@gn{Dj3==EQ#SSb}W_&5-p~^!YbAi%k0b-eIdH_7@^80Yc4O;-(VJG=UV|C z(QZ~}CJT2n-9*TL`IbWD-}#Gyka3fvx36vAA8uFqTma7 zDkYfb)pPtTk$sP=h0QXmz^M zHy)N?lMU^c+_l_^puA2iKHtE^;bZ$mHEhQkbK<=r2Rxb$wrNQmE{w6H^uIlZlt3){S#1#TF@2K;r0Ij-r^z3ijPTBZ_6ydBo+{s2J7OQQv`&c7}Y!#5M2h z1KrwN6GCwd1Dg#9@hd#}nm@`&OE%+zLO)2eBE=JE^|7dHj3AE5{=PIRjbcp$Qdwfr zcH-rDH)jY=rCq_o)=87XN?|GpJpEAi8$~PiLKu8_4>`L?2rZ$(E;1M|tWUABX~8QG z-%z>8;%&l%fJd~JU*hG~eGY9|9Uq+OB>R^XAqn_PIV6xSVyrU{B3*df3W?+Qd_u8G z?JZ#h2?7*u10?^$lm76@b!{FoG&m&46-2#nQX-t#9c-q9*DxR>wThlY0@{3fv$ji2A+hND@-=(d~$g% zTpPgjY5_-UPC}>7SkP0gB2O;LlUEr7sxk*+d76ohVf=tKLaQ70k19SwyEGn_5J#o1XUbnyp^N_+`&o;8gex zx%pqDa#??&7)n@hX65s(q!VZ>X?L_tZV>VLEI&XEgAYM z7ZJlGV#IdlZqjb$K-zcWGM@h8A-h1EC|$(0Q$6Bb;p2>~lD(7FpB_4)p{s4M#PN2D zQ*No-2a}!U`D_ro)VJa=J&#$*)gU)r5~3=fFd=)hxGx|j+$Dw_HgGu>N}~su4%AY8 zs(-W?z%C_eGF2e##WY@`3BXQ7htcj)dgGPcvt-_P90f-U-ZPIjGCHauPYmWQxOU6) zK;i^2*6nvwxJ91F4S8{XOa1+?|7+Xw;?ecXM_-k2;L+?Yf*jV#2~%4=FMY*}c7L;7 zoC^KHdx;?j!zrCvm`h{Vn%k7k0QKF4}xPE>G`%vH0|HPX@5>Z-xf zbQ3c{2v79xP=w=zY#d_iF1~~~H`;3E6_}T6;}6Xt6CtK!$jyZwTI~8pOGICR$rc7` zKuya_!`;mBhATo*UK*K2jwvX4iunYsWKh6Ja>#YH9;47Dr0lq1vzZ!K^4Z)4P8QSy zd==5$v#myk1ky3BxyP%7(|isrg(i3o$RG3u)e89~5-WsZ0W*FH1xM>dlW>MXt^bR9gr zo!8qn+@^yA1+DDuc7K*=@5;$U&p~t`k|MKPUG&EQ5YX89m|IQAUiQQ?Mp91Pl#)F0 z@OW_fHYzK+R%9(MgG@+m02X8@C%ITM@owimM#oJ<{*Ql8m9hD^f(vx_JZ>BEB!523 zU~Ki`^H(>#zf$`C46#VQ6Q(h6?}(jrgvj8ufVap+k2{)QTJvJrU(JP6{dC55iq?v&cfXi+j5F`|DJ9jU;Q$2IDZ6FPoHd5>^zH z3P)g#ZF+IB@OwLLEt{>S#6~fKl@qSk{iczWmqVFBgptIl10U8VVx}7rHsz%YH~|#J z+HMlokgIUuGvWGjEKAEYM1*hX-2kU}3nE1oEL_HpGEEklA7re1L+ zK(@4*l1rxRhHZ1;g-^&>vPLYp>Fq5Hx}yMpc$fJ%kob&yWuufxUu$%7j(LZ-V^knZ zQYPABA8SCh%$+4~lm2*~aX7ek=A#`n8~VF?D7~~=NnU2un)uyG2P0v4urS&Tc$|VJ z{t$wlP4-)My^HW=Za46|t;0HpJPvDG@Tp7&l1hgHRWXAiJmP z%&zyLwF$3-Gh~l&5`v@#ATg~QpZLkpSC71wW%C@^9;6twB zMje|)e!NwvGjxqsCGCOg zP8=|M!lRxzWRkg3i|Z6zM%dC_=dMrOemolDfoB894YfRnw|={0hZ7b=`*Pb$sY&e+ z?zjua?qkq!P)I+pj_=~OOD>G3Ko%D$M~OjNQlD_g#1U~;P^9jf3^pf9x5yHTj-D_0 z&Dq?diO_gCXvVy7YB=n$x}kpl$y@54JAY+c@NBy)5Im1TCEQ0(EV{e?qu_bgOwMXD zkSB}zI~e&!^c;DY44%uPDU=SKnOQGcwT-=T&cG);nP4B{00gRPh^9%*&#gsYarvn= z7dD8QmYXdhLw<$t>-^@>?593Ub4iH9aNbO{L zZ+iJgO+?8clMC<|k{sU{Z-zS88E0r`a6d;w9e{5eB0%JvAqEm7d0g`c1!r@+UTDZh z_~tMf`T~`1NF_>2)(h-Ic?Dpi+ayd`lu!s3-7tRXu}&R$;pE#aERcc68ARmDcY(P$ z)jCiRV6D41a*-7daRCatF)R@sGq?$BB=Ko$?hwCi9ClK_%NwIY^lcRRuS|*|yFT>Y z$gPnkG7gYkXGYkoHrs7YXE?U-WRWOjpa#DS|5SGq`aJT}`@rJlYZxFwH#(f0@JK<| zHze55Ao5Q=_|t%Kt06W$H6ui~<($ZvO~iIN446`B?5GG8TZ-Yb$u82y4qX;@8Dc8x z!7K@(xNoQX@@_z)kDQpO(Y-h~)c?jEPT^&6lJ?BfL$2P0un2W|3*Kxyo7VSMBaw7P zCq0^LO|y+ii*|PEB*j%##F`Q_GWqSF@bP?{` z#7gRzTSv92fQ!ay*g&ik%Ki$E3XcdiH0k)qQA|e`{vW!u-bytPw7GrUV;OQ`lmaxm z$8YX^1MzLMirW-CPt1a!s)C0he&ayXVkntppjlkk8wv;NDcI&B3bq;VfNvjx#K0x; z9^6a%#X9+Z#}PFQISVBD@7%pxf~%iZ=d0D_XPb#=Atc0d<*keBj+pzZh6;a$-l z_Y!Nc_D-Kq{OgmG^XAuy)4vX!zRAb`g&BwRh2=MU(<5}M7cX}ErFcfI0 zE*oAAW#Kw+Z~qQALbRJVG3hZyJ8G>jUOpWkM?DQ*=)J`rtpKZE#qH+MUC;h_UD{^g zRJ1W(MjjG~aqE=m^aBe4aC)AT3-^QlgOmOIg#50W-{zO^uFzF*Fo!lcpVB_smqeN_ zPVocOg{}}N()K)}Yg^!J$UYlz7m zc#${hRbPclN+d|Oly$puosA<09F=@G#%+5%?)acP$S@L0ilZJ1902KQAmecsHxzCh zazW{$u7G!$>eob50bVOP)n4n(uCt-j4VB|Rxuw4G7yi9K)$hJ}`WXQ1MdQzZaUh8zZ1m3ID~d@0*e_^$WX)YP%MiZD1l01LQ9pv$Pu7TRL{&x~ z^~eCGt+^2G-YMpA$J~-bzM@_GS!a%LfZm`12wr+S-$v66n z^f;eNf;Zm=5m8@&uIa~F?w0&66rG;`?FQt0`5JuF*bH8{L4N!yaYrAh0y6hcQn{aL z-=a~wdh(V~lH53e$o3=QQVr!y2UiHoxLLM9%B6?gmDX@VBPmk#MfZcxY4mM|ci^}` zxWtp)MvUJnNoo(gVJ<9mXxDl>pT!{U-Rw9eH^!W!`zUn!#;`KQd)-*UeXI%<#6Gyy z57D`M><-5h_qn&ZS1$AfDaQ5mbS5Wbe3i2k15ebr)8Z4KI8v&XFb#}R_Ru<|GYu=Y zn6L?lm1l27Iub4jJIwehDrdLvm*Xz;>Kli5t_HXnUMg(#&|fX7}FfaBHo z%lh(k!jDlp^2V~QRl5k-*vGp#$+w{5mkin4*>k|8>S#QuxQ{>q6&Zx0-K-+`k4K7 z?CIJsa;sx1ERn(Rp<|uN@9AjOu_s27vcvQ@9cyO0t7uyd8AC@ZnkuodD$u|ECcGUR z^;!U9E@79TwukYHz0`L6L4s1&l>Sl~6w`rMJyi>DY&fzvc{G6b6tf$LVW7=+Gizau zx@`6mE9$wCGi`$RNGA%_Dr}l@=(#e-+-bXo8>?6IWFKz8`2*G1PRQ=CSJD=Xi1!f^ zDRp-J?9n?dW`rPNiviJ1_@hkxVGu)Kx=KX;&c$+lr6u*7olSN!7q7&Dx73822bm{$ zEt6e(>vD;<(%$1xEoA&Kcne+QO9Loo^jK}tD*W3G$+?ykHgOV_5fQ;ni%a#HquHR- z^`*6=J&qfhE4v1ahz5e^i|Y9Ip6?uW?xG$$=<=^zHg-8UXjE)dAYYQWgJQ*}Os5VW z5iWUlk$dXlQt_=~83qb+BA^;LWa2N_fiABlAKz_q#F5@@V1bVKKhKVlM9=YS^!kpK^uf; z$1zx@bce+Q@5HZCNXA#bp?h+u8Ev7L%Y^(cbmn6tfaw}94X0CfwZ9=s{-s;$ z!2iL2x-Ck!yHyUGkDhQqG#DaC$cd8oLr-x?76)u}$Z6e0%zdoeN$(~#?;pOfh3loz z7dZYe=CJNg#6T6~LO^w;?=`1^)ANkf;qjT$7NahVMoahYMPpMLEBftsL!}7$J2(r_ zO24MJfc|B^eov+iAER-_bNLK^y2eN)_V$TMbW`C8yQ?!+wyBvC#3B=)W$wH>i1$f| zB#~}J(<$dM8gs#spdc|rHzMmDQR~lVXeZf?9UGfgF>W(LA8wO1)3RmL_<&o%5hzTi zP0Mf-!urws8w~*o6aR_)Bo3iny9$#7m3{}jYVZVfXG?4u{R+n=3j5`Sp%M)^j z8{KEI*W4w*;+EzS9dO_RrAsoq#I_b5T7+@j*}lmB4fN{+1T5!io-^&;alR8-#TAW~ zz`63BZ5znD-+2yT%V_}^S~l5ei6&!orik(5`JqWV-c_3RC+3hYV+~8#J1uu61qYmT zAMA6KMMZ}!xYHr(ZMsi68-CNC#COW~y(e`AAb9C1#|4$q^#MDE*TEeZWwKwpoA>J+ zALn%r?P(RnW_XE=m{D1KpgZs8ll7_X(c3mpwB|uKvT;(PP#;qRG#^6NKH>@f?!dZ3 zWN-S8k#+@<;Rs~d!zICBAwr+Fqc3-!usQLkqYiXIpoqszCM1TpV6?vwOA+BcD2HYk z@+HoJiv4%Rcs~ss;{?kSNYLEa=M5m_zK=<~?-2&s78;2A5yo81G^{}${&(732|*+A zgtLymq`8+K6UPGfc~!t0zT%mBEmD!9C@9xc_Clu-BV#(UKnau6GuBjypa_^A2zTjrOOm)v00xJO@&R}nZkJDzEOE@hR{lmKLesVL}C3I^w z>S=vmfAT{A^{jeUtGjjFj+Rz&$3bzM1QR(i+FIRtP0|>k38#ydq0751D-ml+p9$r$ znefc#j)9vt7WWl!qmv4q{X{d-6QWmFk}lbx?8PY%uPc&F@V^_bo16kk4nEn^K559L zdu_e!Jy-qCR||R5ON%xZLB;mD#$J{DJvXF+mpx8V`P-JmtlIjH3Ef! za;?cSrnx?+$AqQr7|zyg{{rafy2gJ)D9BsNX86Zq}5+!f{45Xa}{8NXrgvpH)vXHWuye9G)b5HX6GGIi~jM=_5slu6JHd z8WOpd*vVMuPRnH?-@p{`vkJ5?jMajv1pB;;!@fq3p$Za=iqI$2BC+U*iaTHep0U|h z*t5GRCY$lDmvqEdJr}rFWClf}KPG277tlU`M)W79W$4))yDkoqtmYwMf}j)o35^+T`3iXW+T;Dlm2U^YL1$_WXdnXAHu}#(Oz|sAow1BU@+6z9KofY>w zPP!NB4bDUuc+SzWCsd3#V|sL{#&b+@vXOL$MW0;`Wt)rl(kmZ4A%sxV_p4>h(U}lX zi8G3eZ^#Po4i_8^8a}OW2#x>zmg?|7`Pa6E#trAn>-l^Y&Cof!$o+hCt>*fgi>3Wj z!LUyRa-qj|u#pHRI-ITv%c_HE8$@MMF~;(G?r_+Jb&TCQH)}6yahuOckSJ!A7tH;xl6Kn<-DL+Dw2I3c3Z z2Na=CS-%_Y>7C0_1WoZkMhoGc@S}LWD3_4;@<-BVl^)BDO+^ALLNwf_*&f0f>`Bq) zB04;JBGs@GxYf=ro=j5SUGb0v`)9+e^E zOnQeFNY(|%WW}COBmuPxE8r(U9l^g~H$Id*L07`Jgj z8Gmch%k*1ycdujOA1fi|SD&;q4<>Vb_D11#-RsIM^y*O!kZbC7))EJu#)q5zCv@Gs zljxau8fRm>n*t2ZYJ;}F#IB6A3XpY8i@ac-0TIjrnF>14bxxOgSN)XgKst)-N}-%l z45*9z6UYjpg$n>-nF@VDY2dAkIuaWThys@ONdbi17Sh$C!KQG;z#cddyK)IsNEg7E zZ3XH@!xgi^b-xvYjip+A#mXf4wb{wtX~2)nA)? zw`@%ALRJ&t=IrX~_i$V2QnmCB3}=bgf0Rg1sa2Q|qqMom1oL-qBbaboL`5uXM4l*+ z06%tsCkC;YgE;{)LD6mo;s;#sq9DUIfC#xLrN#@1XNsf>WY#U6t3kd_y6 z(NDM?*>+U5vsCO854>#}$0`g?kqp$HP=@S+2S;+L{@1plN4U&!N$QnkkgSwv2+yGp zAQtv{>zJnGid&L-NUj?7hmW4>fADySenkNrxgLclUPGCUVERFav5`6dgDlF*S{xUv z@D9=iJ!mo8G8yx57j&gMw*^h4(DyC~{tTr8MJBRk5-c4Q7>>LL_8I9c=BzO|K0)9Q zJh=M~4@S8|tZg!6^<9uTju2i%GJ#ca{noc@E(Hc}ZN4+Frvtk!Avd7GqZAe5GAUiXmn`J7`F1f|e@PX z2&wD*pd_%5A|#KgARlWX1rT4?sHm@GC+GkzMF$?#6R-{Pxt7Q+dQEEVytv*xb5S1t z^x#pZ&B}hvL+1_)1iGl}2@@ITHuGT2*O$lh-D*I1kV9jY{gFKqDs?LL)DMJg4H}>p zSo1Bm3t(}N$fY7b6}(l)w^$0;HgMxp?`}`af?h2;?oxvew3U?Lz+wT1(f>xMBJc)O zlij-^m=14gC;h>H8-nROE`>%g?VHkGy#>mpx86bM=+!IKY33x({ox-4)8hppC@l zg_h~lWGo?uEFtSU29>~BstNIstejzJYT;p!dI-&Qs{Mu|w@lBl9`1nXcN6c!zVx<3 zQj(5|V2F!WRB#v}mRjA#Re{J9(eQlW0U8_Pj)x-Q8v;3v{Dvs!f^D{`Wgr*qN1s`# z(P%X)A#loFvhiqJFpyoAim{wyv{r86M0I_di9ICq#_4=ncpd$k zX?2h4a5Bfl|4y_9*~1B7l@xMjhnj`i4yprnTzERpYc4C7Dy2Q1l86KbL^@Dcf~VqO6-Ifw^y$U@-^&I9 zhr_)kLIjtQn|tq%oGpmPZMPKk43y)<^KOt=8Lcdc6iSNQVeO%hK(HNvao-dGZ>gYiUL#YBh+NlSHgpl75kvBQLS@N9x5 zw93~&rZr;QX_Ns%(^;X_Mq#iK;<#+ljQZjtfkL9mZnwEsAhPT2?MOQ5n+1gUpQXCG zdid!lKlMm9yd&b^%oG7&bA*!?A@N?)y=T!@E#f|y(w27vh$)0hDP<798wXYS`pEy#{oM!E1+Bg=JpkkmFzeutn{wyJxGFEs zNL1`wiK?q%iWapH@Nr$JMob!9aT6T7i!Mx}Zp0b5<8(Xj41#sup>n8{KMuG1SU)Ez=MLg)YU;-uCzq`@jYvjI2YF31N{a!3?DDC|e)fUu4^u1KJ0zqkRCuH{3k$;Gp&79iEJv8kjN)C4oy(_562{%U9FEG#Z&^PFsZv z4E!X;(!!`ngm6m|84M_wVhtPIrA^aUG2_6M9o7Iug{$5o^A(UbbRq#=;l0GKlKXq4 z8$B8Z(8OKefM2v6)o^UGq|7{ncCAZ|6ZB)x&pB)_=(EKnz(E#9bp-j}macpaW;^D|D<8*L{8^Q?Ix4lhx#TKM- ze8K6xKd$W-IBak_VND?SLw*Ft7U#GPCIB(=S$>~zONXaSBK(caT=vP_K;OFbOkVS^ zi{vPgJq>mS^plru1k#cAI;YY1I)oAe5p~H*uDE~LOlsDYO+>6}bg=C?UMqIYPJ> z7v^mLm*NjE&QkapQtFaG0GK)RyFtiv1v1h2>h+W7uV0d%O;_CAT>`6+6na?X>Vk>w zIujd4xLqTg{Z8H{`sMHYP7fYEbGH;@e1-^s(wXSP82?>BF2+(ifm^axo6; z*AKAW0x9T-DvgM4iKZTl|D9I{(<1o}*pFtCSn0`anq$MS5eYW>EqqC>B$|Y8IU%6% zR;FOP!kbjkr4+Py6&(zw(&n`NII#UZ?$(1ivC*$DU6QtpqqvN8<%m^7Tfh7c?Q+<& z`;2|F=WAFPv=#)bcmX}UWF7xcX_(RN3R8eAUfsPhSXuMvra<~@x3sNx|F;lGy$iq( zIy0&0_R z?AhIZBd!1ece8v-%mCR!8dFTsG#8v!nOS#iiv6GrM0hx*ci?*Dr11hQ4EG7X*(g= zz<{7DH(^K8RdgF+eerp|)hcEz3}8vT_#cZqC9PbbTM%+pYPBjfs&%D+lJC_G(!a7a*C%=cRf+SD;t!C511|np>(od4;{^gmK$*lUm{jt zlFP#S=pW;Y=2$`;r3|mLN1_8(4QrO^?T^kPz>1b7B!lb`Zh?Ke55w`wARfPdnuukP z7R3b(F2E*|fRxxI&KIvIxanc}3%68A|NXzY%>uSPEM(jfl;S8TBp>b^N1H7sdPbT3u>^dB|#|7z$MY3VxgsUPs`Uf z)yBB-G;V|mc;i=!Rm7W7C5{uVdtDf@b?l2=L98@;La>woAvSn)-r1mi6=>f&WLV|C z98|ZNNQ3yJf~0rpV|$gP=-SC;j3P)^cMgrXM0Qs~EG_!{7S6t?Pfy{cAyXMQG`MV9 z2U;ZDSUe19#TK78c0LMQ)uCLENC1{+eV+02&9SK@g<{OOOHf!a-hPR3IgJi1ZjkGG zo@z^9i_$Z;@=RP}{pkCE>Gn0)+ztrsl<`6`r-o2ya68l=p}S}Y$k-5P+b;$v1j@JV zEP}?%q0s1WG5!|NXBl%bUlm|TT+H>3{7M;Ba76-E15`E=?%)?uDIN-xmL!6(R1&t$ zXOd}L!%m?YL!HWYJkU67h%%Y{?HA+40@#)VESEo!bIV1!c!Rfd*;H{1j7 zZ>fsS{*P@|{OF_7q%U}>wfG90pkUAXDe)Bq_#2~R`-o90jlxu>4Gvk7AJ)AbDfF*W zKKK-BuyXkx;hK!6J+>pmh6Cf@QDcfgRllJ`wuZ0aLqT>hC|%Vq%U`YV?$=%=@dC}R zBbYxErvz8kB8GWgCs&KWpioVk^cmk_fYI; z68i8F1HJ%|!{*@S;gd2!r1khrKnZ~bu2>9_jKP9Rn&+=r4xN1q+)70yTr9GlAQAK} zIAZv-up!jr)Xh>!7UDW|f;*aIx`%26VU;WTV(oK7da(e6N2c<`05DpZr%&6JpUhRS zhq}7gZbd~ZTQZPVVoyl#H*?1^6d(~qL|rtfc24Fy2klPo9G)C_X>#I0E;b0$0=NhQb1ZNIjDw%>i3isKIU7Po&6709j6w#Un4utbLHNb`z#9i zA59B00IiVrghx;e2+nwVtUoElm_bYx054S^+ zaXpCEwMBYl_dnG898HTZ;t`=eXq2%pM43*&Hq{Hy5)t;0>)sG{xkhfW&|PE(X;na? zju|7ncE+FLj7!!`y<@TwYA*E~LMdEPsqF9;*NO&Q!w1I9X!0P+gCB~L5>J0F()`VH zj3}z#rG=bLL1UXRh$w@GFgdjW;P-F~Jao z-X_MUNIp%Bso8tg5W;>8>7=j*Q5!uKb#asLGmVV01GhGBYOQ zBOM=A6~zLC01Jc!vV;H$$zC91gOL~Z#3=yZ1v1uP5~)KAf0OC9%=c z3bHeTDR%JIbKB}8{gUk%X@wO;t;x>pYU8b%$myygeZ0ovJ-Hg+ zu%&5O6gB*dK|b5V605`&3!6N})Nj ze0(E5BrI||_7c&{Y`jpcSd5_z+af#j+@j>5ZMrg^UFsQV0_w3_KT@2=vTRxX>84XTa~ zYq##y@{s@lcER5%w1kBC`@x*IS?A(ED9gl@@^9EIZt{5dU;VEBj}!ChE{2Q)3h7Lj zf}hl?q}8g07uh9s4YS*?_fA)TIC-;5kv}44ca`>o1oOUU&dJ$6HB|c8;4AH7Zol~9 zm?wA~{<{193m`|~?aQRwFph4xHblwbHG7!49dny0-ASDzGI|DPsEpM;?#z$5O3-e8 zcJjlSw$Cm%UzKRoi@<^)GOs0<=#}1>{bsznYqw{gu71uv?(HA$zF|in_4~EX(hAD< z3NPn)_S_lr7q2^|k7~}^h}hhFUfArO7*&Ok2nbYDkcP8ar<58Pd$sPGzIE0LkRH(v zPRWz{q2*OOK3ST?m3yRT%x&jdEyik9K-M^AHvC~Kw15R4fSf$eC7SE~_6%9tt9Zcg zhB3J-L>e`i2&#s05)74`jIutqoL71&gcleVaJ|}lZC7ceDfm@NwAScZ-U~v>K3*-O{fBwSc&o6#=@{hl;Bs=bXpx*FXD?b@j z2Qm_wD?L>muy-#C`fW2VO08Rv9A(pvO2Wu_mR7$0fg;MS;n!3v@17jfh3hTEhOgkgf0SBlEj{ec(QDk^2shCaCH>2@;~%ci?jGZ# z3`Yivq`YqKA!jBg_Lt=HqjyA{(T&|a2WVo)zJRFEouy_Sb`_RS7NU|O4q*=Xep#n_n|TT zj*3SFqSh`M^n@p^h=gFU4`)XrKa9Qr7fwA$f(;%g362(C02Q;9)uAs65)qeF6Y)P- zD0L>-G27rDg2Cnivpcy7DoowJWt+bt)?tBt{XmYggG@zFf-$AoQtng^1WwjSsl4v> z?=32cX#-B10rVd}N;VJ8D9$J;!g+<^r091a)P?HJ3d3SaxgM%MFO~l3-r$)C;lsxH z!M9u$RpU52;Ea55U8|FyU$=4}6vn-2d2BvFpjamC-#2&P8mX)W1?*E>H&+QZ060Bq zohDB3P^#EMc{0cQc13{WK>GX(u)v^bIjOxKm-PDn89i&MZFupTW^QM^k;lXu9KtWc zz#n&(Qzg3Wru5I8hXhkyw#XFgP@Sf{!|)@RJ$#Z6xOBwFkg;4 z{A1=Ft^DNPKQoeGDUQ8Wp`?c0@C0i&4#E3?Z0A+H%8EReMjuM7j6{26+&NM=82Q9=9qC|Uay4vhTSju4%4bYVEbRGr6le1@+#W6sHtMPP>Fg=A zuA;0@iA;V7ERW+W;ICh-64T|@4Mrw_hUYcG8*vkL-uU-wTvjdPO^*)8A|6>4K`7_6 zQtNHgL~RzSJvI+jKru-b_mMLDvO#&mtsCwE(Ge5LxER017N92^=b7e2qVsVud`)Tb zw*X~##qRr7hMCyNrv#eYs0vnTt>cDAZJf-HZHF~{*Yn~`i`MQ*_AtZ^BrO=mu>K4< z9-h8IdJDe_1!$+VGzd`HV6O^Jkv6_S&1Q50PZejJ{%vm4)_)#r^Hzf#?&i~@)AM)b z#HpP0jm!*LIv)@l57^RXIE27#R~fj-w|SKKYha5%6#Voo3A~z$w*c3cEjYPB>X_i& zak3`WAP}2?JHUeuDoV@!dNx^b{E=3irmD*BxOgF9)I$kV#k7qWaC+!KC9y&#?Aa~$ zY~(Ru5-%NYUK7X5*WDf+;J6to8R6*Fg6@)0Ce{fQbhNym@<;!IJ_0h!QuK`wYbS*$ zE(U(*<1KoFCs~tFr(*@P0#iv1P3igWhX9`ZHLb_^qrlY+ZpW5K82BDIC%e9-55+Oi zDDl14PzYy52$(3+FawUyKg&;n26EEWz?gaMx}y%W>;AO!XA_K z8Q{FFrN-w-`guz zm>H@U@HI^uPeo7>>=cO2TZMva{0yHKq=m=)62ty~{WI!E|KmS9;m@c@OSy{M)mhd+ zy?HT%%WE4$t*3Wh#-QcTca03*!;^W0k9BL8nN&{!$a2g1tvoe}`;69nK zShW!(%k#b)TMyba zhi^-uH-`MMC&I!;t<|SUD?VYDPokR44gY6%T{3t!MGB6J^R`+Q&Cpc}goYHy*P@^} z;~3Q98%jA^R&SDejoGt2lC#5wy#g}0Z(@Z*>J>nJDJvQ(ynC{isc-08z(2VWidv7% z^E>8#g4q4d3msAURo_=nGDHDRsaU`JRpLpgPe6UH$INsVVLRmRY2|ZHT;kvEm8X31 zRw92a8w>ckipV1Ww?y6?csKsXhk%rLx{;QKMx{@nA`Q*`BlY`bPOn+dK0ixnRxKm~ zB!S>|_OR%1=Ly>D!EQ6xed&}onhfIBpB{>dxl(TA+S6lw-0;%E`JFGgkYesNhI#Ql zKxi&1cqC;S@AH2ff@D$wsVzwAhmnF)5R92!JcYu1jo=+R4V7lL0`NJ zz-QAJ*d7~hd2zfVZ z?(zj7tjblDE;Ld+$u*%LI6-GBprt`* z=7x!<>AavZLk95lwQ>q!Y$f^_6%Jeg6u5;ilyr44LJ`FU!K4`j%X@MyT@(YWYS$qKbR=EG z%^n{$d*c|(35JfScma$R(!qMZBKr$3en;;e${1&vJ2$!6w&zCFLoLB>WC+Dz3feE( zhZ%?lY^esvP7~Y!S+v_iuXuyMnQJ~I0=>0RvAMzATL8kNTQ#H{eWeP``RLbY`{y_D zfSc1skntBr)KF(?oRmi=jrtwZHC7I>>E{q##!;Ea0C2xvq(Q-5dWy|fgWfI;vuGsG~3kxqG7FW-JtOfA2f$g{xC}V}J zpq3Cgl=+&w;1xKo+6qwxdEaC=T*?sx>G*#$l5!y#e9mhS8G7V>H4_?RdZXc2FcyC$ z;^cx-pEAHGH)73DaKz{n+KSdp*sBjHsyD|04C}zUaQa^B z$4jTf6xe=Ou(Ewtq+|=WU9h26iAadMJe_|JNY!jjrbug_c;MlcKt5avuUAk-n}^$} z!4W{ZtfHvHUC^?NnQB{7J-QwMYcD0Q)pyyqgV%GWa72-W4`>!wRbbU`g4YkTpgD|8 zvD8X%)?YmP?AhvM)wV~dw6X`$@wyV-%GBojuQ3%)-w;v*g)Zpw#fI`?@F9j1(9y=S zj*?SlZ4`78=-91QR{Vc=c0i?wb-YHEtUn00z`96(Aw>;7gq75q!Vlo8bXSd5Piy~l z06rn1cpW@?%eoD6!z@C70;P7mn$FPE=Ozz} zBh=NdJ`Cz#9iXk80#R(cP#DBR5(lt<=-mj~38OReSKdKBtfbtbw>ZCVrDGhz#R^xg zvnjCk8M_{Gl3CbLmmjFIi5uw!*UDabR_tg5gJ?x{DUCc$#Jcw;0=uzW2Bdte8c5=Y zsSs$8fWUky0@hpzNgv6F(`GH*$l$dS+f4^~mz4T{>&go1^zLlr!=+JQ2tpZj<05Dz zeL6?lE&NeWZfP>l3FRN`E@W-`O9X0uM+mS|1juNk?tOeS@YUN zKoiBVwE#*Y3Op%7 z6a4_F49n}Gx1qLw8&>$5xT5g`*H_Fl0~OoP6rRk!k~87;PT+BM=ZHW!x3J483CkdB z_%%SM!I3S=U3WYjVKbrvp6&X~+zS>pkm5sI22+rA{*(~051DGPmt>9uA~VM4jaCuX zNsfqt4_jiJd_(lhCY^?fd{?9Q6Q~8MXA!n!r*XIgOU{j=lUToNw_l^cgI0U-(rk)f z*E4h&B_yQC{}NbK<-rT&fph|KT3NFWn;?7sHS z6hAJ*ixDT%fBN+qdZ4gUJFq05-WxhtNfuCmSNy9*-arL*Akf|V^d@=;n@c3*m-zbw zhzi5vy|>G8T=0HhA5hq|*f1LrH-htqJXvZ3FB2Cn(>%eSz@A{0uSs{>k`rtoq7U)n zQwCB<4-MVBFB~`ty^wFyNI{1!FHdjJ9*zy|Ng)xoGvj!{X8AT-Lz;u_93Q1b#N>@^muwxc0lwl$bQn8( z<$^~NTS)9+8c=nT?ib3tD}x4FqTO&MIfX>X-m(goG?INg^jaR19@LN1?>LwF+^{47 z7Mqf)Gl5V$FJPb7r5wu~r8qE%(6qkS7FM;bIY&D-4jP2wfNhlo+SB>gpVzh(JzQYxrBajQ zdo=nz9srf2-GhT*+w^@4?@2sa#g=uj&Q0EtOtyxF3;}PhJ;r8-QO+wj$9OKgf|>~Y z(~B5`c&)}o@D@>WopkEeJM>0GOlpnsF$r2kgQ*Jwm5L&RDSWe*K?o;UU(yAp)cr3X(_QHk)a-QDsQ z#3AVOM7$_!g=(MGcmcFSo=BFT34q+>R_;V;U7|4wraKJ}7~4Q--0LLcVb*TTeN51Y zNtI#*8r3cdBrpk?U_;^%=x^Ex53(mndyq3ngSfl(k!c|q(CD3of`kN-3uY9M-l#%A zdZf+2;a;0eS%f3-fsAGS*;gpm^W-X)Btp}e)4*QELD$HO6B9l_rAFdJ5BO(|ns|#! z--e2W2j`6!0qdF`^aAdpur?@|eG(mMPJ-!}Li30iGhqIh{bpwc` z%@*Rsqi|w+YSA+iRjX=3)RtFK2AF?sMoO3ryh;TR?v4ZFHDYhsJMkAkSV1NJQ@4j9BLSPg{l7{7{EN#B#93K{|Yn9S)I{g-rFW1!vI(C@4PrB}l&vex~i%)Jmz8Nw4TS!QSLs_iE69X+(V zkk~G-$Bd&i{(9RUr%}<+Ffhx}!x*@j80}?NgA%ajzP)CLEdYQlW75FN*1Wo6>NqJwcuDlDKzz0e8G%+K?Ht)xt)q zeIUdc1haloN+XRspg9>d%yuv0D|K}QHaI^)PWD?C~*2s=IEaiA*{s= za(Z*2Tu@*=*CP~*u%Gqa8@lzFoua!L{WxfdwvIy(B@g#`ijzf3y@c6Y^S<|YgAwUH zL*NdMUTtVd&N$nlfaY$&JrP+U)(%^{%_pKGCkkrpm!TIw|$v3=WnB z%;MhSA3^uq*9b<+1A39`Xzv7H-A0H5SgeZ412p8<^rf)3E&vlfmSJke8m0l_?Y4nW zwC75;p)0pj_P!q|5W` zYa6r`0UL0Fr#^Kc#MisTqn&qaWnq{E_qKP4@+0t?lL|lw0Chtxg6I{HVTW6wx9IPo zjv9~#b*Do)AsU*$!)8E$p(O!`CLb|_Fg_;A5?;TtJ`&7p7$G5W#wF*%Cs$TbPXF2` zVWU6S$-Atdl3V-qNQ=bg6UicB=;X6I-&|m)^-q~9klUEC$I4wzM41Vk+h!*7OCsJ0dt`lC_wFm zz94w|fn}=!bl!ZNRwVPJB``-UXE2@x(hY}ryfVPH?un_1b*yxrT4wS;D{M90YlPiuTj%+vP)9Rgb|i}iG~sy$baEEMq~w2ra40(0b64h zMBZs(L!)s#Fx3{y!=H%sz$jOA3L|?$87(?nu@+#(2L}v&6Iz+6KdhW8IDVC z2#pLUMB@=cyw9u*b80;`IJerta?_>%`pOFG?XQ1lWX)>0OPO^WDM|LAYv4Cn?1cLb zbd3svT*{>VP)1Gpt`qp^#cWeWJRF+_=JqX+L(4mz?@So^7DbLty2+RT7aD@lnuJBi z4e&Wpsn!O)Q3f#aXXU$nDV*$1{!Ymbh=M}{^zn6SxFkk}M0##Pftr^ZO+?1y z&Y06_7eG|%lhZ=JZ8eOo!A;Pu#S~=X><4ur3@^#d_&6oFAz*_!+1j^szKVpg)ja6b zo4I5_s9r9>lV7j3l)BTQs~K^NpbT-WG;3kS&wjCfD^ElGt)*TVS>ySfe|QUttl*qv zkEwz{NkHc4#j7(y6_J!3%uzU`9Ik$B9v!V?0?HmKVe~?_%!<~p2ZX3I4TJ^U$_;$0V%Df??dGo|}W{O`xr|9uoaZ zU?Dgs@GPjlR_xFoEG^?Vy=qDy?iVjnh*3Q_{~jQUnSBlIOm13hKqp+~aAIltOs?nu z6#}sVOWE{*Ks_Ed3h|JQIZm|6N{akGp*U@nRe>~6lOVH1jZ3IBCFa4LLJipl4m=D( zs+FU!iqNUZtutx(y${2>jaR>jh#C_2uwL!jv9L>+8?~zh>pA$& ztKFxA7BqR^X1s+HTXGpfIYKGMUl1E2Q8FoxNv?B_rZLzOsS^@qhkqNvg}8+!_%R z94C6Q_wozFOO+P**^N(rR8nn|CiH-8IoP$GrAG6jzW`)GoB8yYzx)JDnmy@rX&yf- zHd}gYoB9)EbvO|=ZIl}{hJEck^sB_LoBN=t2jZc~sFAO=3$Bnq1diG|m?@!abcCRM ziJGIHkpn$0j+iG?YZlU23bE!!p(=iLCd z3qN8XmN2w)w9bmv8#S4krVVh{4f|qQjYG~syknXb%w``mG;;s#`Rp1#Ez|x~!?~c} zM%_hMDk0tVckDz^T=0p>nV8eN zz)`TqP6$R)5y@;M{Tq}Hqv>@Mw$`mu?U1>m!*0nO@Uza^toAL*uQgS1-s&}-VVe5 zozZzdP3^OT7;j77txDyQ^)ZM|hi-}V5B0~83nV68_@ik7vz{YSo-;yrQbW16pQ;p$ z%i|1qiddC;TQ=rUg8_|xzG_)i=*9uuvE@aazxVcz+uXt;}uST(YTQ%aAtqDZl@#fUGRUwnxGTz zH_jXw_TJ%YIXB7KA}Cc>x>X|X3-W}RZN%aLuv#=e3cs`$j7KALC0t{4j&U~)n(^!Q zUCCLN;1@wukpn!i)}`I!=bzp9+0D;x{LatrYuh3lNQ5`H^klaAX#M8nwe{<>CtKHN zceb|fKf6AA^oW0NJ=s|2@AtQ#lAmw#DDR+uTpoXNXN@1x7-j9*vS;$& zzp{cx@n`QX;^=29>o9sl1pWa>w}FLSJ|r>!e)J7(k}hp$CsuClkr+0geIwqEIs`wv z(_SHH>lHs`rbE382#^tRqraMeqWpO`p+J66d4*GBJ4+ z358O?@3w5G#^eiOpp8U0Pr)*WIkgp%;BJt??apUc?=yn+DvS8fa%%Bi7PHRjs;r!E za6IdfA&agwVr5_DO7Ag_LJ7j+ZHeob{%TZjytuUTABlDL%?&Z*8jyzDn>+pydChN5 zPv3oU^ClJ6dnc=_-}}hTS$`C%s6;qHkly|N^<3A~9_*d{L9!WTX~8AAAQ(aSAMcDFu;e`->m=kAD7kiht$EjEbUm{#vyMZ>|;jLNwoJq=JDQh(=ALlYCh zu|*ir6^ewC0>bgpIcZ;1$r~lJR=# zlo1|5b<4JbiPZm_pHM(BazvjUPC{U??@uQyFDZ{IYAaWKn~C<851i1!SHkSr>`Ezd z1jn=f-YYynuH%S%oN4WBaohvngJvx@tSL2mzvW#2s`c!pEz6#xO$Y_QBPMT9iK7Xs zsD&a;k6N)2Fbxf$U4MkF_jqsp-jUsyt~D}w^%6*&9Y`f`jD)nnjiA_V;AJ}^OotI~ zwLN$Z`FZ%ZI*$!t%Cnl%cz!wMRs&E{?;h5)%{v!y(R%6ESi$4F-;vgZ~+)SW;0_f=fQ@xqt3r;|xRfj~#G?*%CSvuz2n(b*N=(B5*l zc2)6^Nlffd0@t}lvq1Zk{lTjFm^2V=w9}72{$lpAH~CKj)IXlhe(Sf)_kM0%Q6=Z% z^@ud%*u|OvEpoNu8-fnTWV;l8&(HDul=i!yG5iVQkEQ@~g1HRSjZN6lyhW zd3*Bv%)9w{WCl#qK&xa>?j`tmdDHUhbfUn;Hl@233}Tbd=I77gcf#~B2RSEg65j^= z_9=vdOQA2;;ekIKpRz@eaP&sT^pe85if;Ao?oI0f=KD9dRoAF4+P%46@i_$DSi$fs zdW@CubLFp(NOOq809V0*o}JnAzT*m8vD4=dH?z&J@lcO1nq6yb4O=%DQ_deYZ<{yU z7AsbB$8EQ_8N}?+2f@hoI$G_0ixLlJ4 zKYqB-wZS`k{BZkm%Ssg|9$-Z7S(3v@9GD-jVzzP6 zRdNV+I0@chtm5IdsoLSSDu0Zl$jgJdAgp`^geqTm`yJm6?t>9y`zT;GN9v$C!7$N- ziN6b%aWj=?39 zg%amA!;&n?xY2O;n1{gWQI~p&h8W&eN}d~Z(Sks85sGi<)eiBscoL2Ag<4)|h<>Sy ziRAh4h6GSuq@zDcaHTo;{sQ0fMeu{P8m3tU7ixUp_TOwiuitwYR8Lr@X+^LiQb5^# z+bLZ>9Ws&8gnn$|1Rg@v@V)N|i$d_Dt*|wAYOoy6&9)2elMT7BRAq1h_5Rr7-M6;0 zo0b4BgKo`(aD(wN$lbOP4k`1A$=i465g1nn!~`=vwRz3Uqj%@LgBp`DXa$Q6oNClw zv*Ztnh!)csEhj9O=Chk*K#5r{dJzS{R6Gv|2lD*fS**=YxTfLZ&GL5>tcm~R!oKc# z+zvLpF(fO5rM6Y|h8$J$n96jOgO4#+7u6%tAp^JDu^U6~+10-WOR0Pw>8h}*y67id-)yJyY)ht}0nBBTUj_#gA-ahZS|@KrTw_ozfmQs5 z7F#Oi0Ld8-w4Tkr>JlhVpas4~TWg@#f+K&%mf2+$*Ho=Su|RqOvR>QRi+Mnb)}m$@ zJEk5Udm6riq1!fB*cXO%1J5q#OW!%zRo#2-~@tY)TQ3P7Ymkd4RdYg2oPv!RCc8gmTjVoA%V9Z`Sjlw9)Yep4N_Qv^XIL+4Kyz(dq0l$zHE! zzfU^XhKPIVALS1P7PIv;oR`1GdlLPE`Y`Tc5J*pkaqKZZIUTQ?IK5x(eXmESpo|B_ z009P9=)&6F%7Ya~l@E9AuE>`6Kk!~mD?`AKr|-S1z~ zo-{ETPcrV0lO$Ro&GqEXwr2^7tbMCdYy0D`hSZ7b?45uRl8iRi1_uk;C=Rv`-eBZp zcBn}&KbRqpP?}7252Gtki~@;ZZ~0U@;7@e3_swH;^X);{zDoWY&0Dx+uuSwkJNJ1Q>fwtA(p} zJZ*QyB@J)gy!VycI>1jmepp!dk+ec-@q%~}u-(-KqX>uR8GxKdfsr&m!%`wq{AW=P z-%#E{YBkRd#r?7(X1CQKU(*6|oW(>gfI?L4+Jk3_OjDCs>>v)@L!&U@D8w(X^a<4i6T)l_qap{i&X_Mjvq!$)0R5pqs3V0kNlk!l)Zm1735Uk58L88*y2=8w%YuwA5zIQJm}xAQea=ICZfV$ddw4ZPL|=jH@*cD;Md5~RIX8e+ ze=0wzRl>_G)Wp~%;zq#Z&8|wbb+hSh%)E5VRapmLc8ZYf46m<&3hGoVuRb3(CPwgi zy*gW2OW_h69_s^sVS+9(ger!0{~YLO_Z=KceN;G*Qy`8ar?5p#btE>8I*owR`hkno z9Y8#()FP7%9gLwZln7v~h)Y#ulZV^0^VfLlUt6%N>ZYH@Sx+6BRJB6-v`}V6Hc6A- z!(Ch^k2A4%_pk~x?;gLQ9*nnBQwAGpHN!dLk3N{{Ggjs*W?aNrRBuCM%Ij!ro$c^W z9<6Z*hd4cU@r1s7W2<6LEUYIRsE*26o1Q0RHDEfD=bV=By;L!kjQ%ba#}cQtp@+yU zyq2DyJN;Mtt`>;e{f|5 zt@0oJp>+Hi zC*%bKuCtN4w<|lc0_6rhtmozIr2~?fitFB39efrPOPbQqv&D4e-aNSPxW%T7z?d=A z1MuxUyn_@A?Gg|f*Q;R*0r(N3RLRw6whGpxnwOzA?MH#`Xq@^64*saSNrl z5`3GfP%p++gf(i5h-`!k)#KTHf|x){QIvA8Qf0{XiWBC9)?SFoSRv|g=ZpqV{A-P1 zCtGI6@=H`>v%`cEtztzroRskJgJ_X8KNHLHDxrE5e2RKGHP#*7E)1ioykG4&!{*lI zuREjyQQJ9jbJXZSj)j6Ea>d58ljWI{YAkd0jU6+1XM^?-mfOd^;8*6%kjx~P=PETN zu#+{b+VkFHbwn}Ck!TsPL6i1l`cHodTYJVZR5AGy3VC&91u^$uyjrA?MbisO=V{0B zt<{kcHv#xxV*3^bC~#DP?`ps`a(RXkzaC;6CQU29_mGpc^lMR3A#*n_hEOBuoZ?;0w zM&v^&(4@^~_@03or!?8CD|QX=MW zb)tSa+uT|ku_AEs8Ae>-(u|w6AqK>=IaFk*&H2N1d>uN(A;L$DMNXybnzHcQiaxK6 zN{pCLitTXCfBgHq`Nz9G3hKZ})71Yzxks49!-DcrU+Zv=!Uidy8AU~n8N*?yBH|VujNk8Nf=@UKM*-S7b6%qB}oEa_d&C!n1 zWh?15cRwT*7fzl1wY-R9yxlc&R(B+&->ix%?mn(eAsIBvT zY(}(j9K2lb;7!~HQv2`*M0O=fc4YUJz;!iQk;FY)?Fn+)wO${Xl})rC>E4(+%ddVq zyLSKXQ&fGNF|+}pF8j#zsFo*VEpNe&jfAh0!i9ouZ>?u3!E5$#QXPUzC}+nOkT+o# zpm|QVla$QDob5Nvr#jcm8bqy_%zi6TmB}?iWy8xLcYxpZ>}NUwA`g*Y%+uu z`Javp#xlc-z;Ed{;B%an<;_5OC0nyAp@iI$K8Kb{wMjkCa&eBaR4Hb?0E;boSsj4T z#bC)UA;EuoWd-f#pWhD>F#V{T01ui0?M;IO4v&BCgie!*@7J8`qcRG9U*+XFom|)6 zy<5VIQd=;68Tt*U)zlhL;(0F%O0*PcVB-QsV=gytS6_iDxMXA_w~R*(7G)Vv`E)BR z#o^%xbN=H+OAv&R9L8>n&cq)ar6#c-^}NUShwzFbFnfJcc91(QhxFdb;ca?aX*c_< z8^g&(yP@0cgv6n@B*6>lvv;Me_)t=${jeNe)6O2Kf*b=i1>V(v3Kq~ZFaAM3^#$?b zR=?zIMZAGN@C>UY%M3(g@Pa@dh(w&&)%>MB0Tl~uzAA3~@Ry&k(an2|xD&+;JMr%a z+m9dpEZhu^Zpi!vsdo51PJlbH68w%y!V&==V$_3IMhO5Xbtu5LIbz##O*q9sz*N8C z-FvZtT|HA*kRjdtJkcE6cYzXM8j0NbH0kjRo7bO?tC>oS?PHp zH<<83J8cyPP*8_w%u1cIm9{9Rws0dkxbhD2g=Y|D$g|0?qt#!I`6%2JnB zStpm>-EBxGfjhDozCA*i!UGa)Zy=kbw)XY1j8|m>Dj1j?C$osHeh;jYCg@x6hdQ)~ z_*pAe!g;H4)@*${Y{lXeYRKTe0?&|W;fE*c>u9XGs@rKT-iQYPGyfcQEb?}~bCg`H z2CZxnt`p8+fJlO#7YDU_E`uH)cg zyk~Sdl_XwNb_IhN(WZRx8Ex?c=I3Z}@91y2M`IbTk|Qu-yUdpn$|lm8 zlX~<5yvU4}L3_ppwTD8+c8)9n_U39dwf!BP15j27fVmJQ$*r<(o(cxTr`k&z&Z$#b zL~(5UjGj`g3{`r=WuPB?j41K6i@(!(gO>VeO0}{B7kh-PB_s?(>hgmgq_~>Uz6<7Y z2*SShVyQRpB0FOXd+L1qs1FdUAaoO~oCw&{N?jvy2ajwf8lW+z6P8+%3fH?c+E;+&Lq<=^HL$(v>%_og8;@=! zBw+x;cP*lKBTYS07YmLyFE2<{eR6#LB>vvZ)uY3z$H%7$O?YgE8f!arJw=6xOakPT zJ>9`MdrRfEZL%Z!+y>CDIaK*CbnU6Ae+G*2R)K>f8r8;H81iA8wW@WiW0}N5wwfEh zdiVI4Z$GibpHY-Qk;>@aM zI`M(TfP66<(%p!TUipe7L6R%ArSecSF1hpDvj^zCPKRTAR4W)F!h2|-iNcXG8q=J;-n&(sEwNnx{g&P+Qva*rA}kPO?WcpG*H>mPbe;oND(x&%|x zbZ!zMAA1V$^G8-S(D37xJ+CyCNUUP9OqH3ugV-Z#4a}94q4KV$G6f2=4OMf{^bvy~ zEThAz{FxCR)4g-fLR;rV;D{wn-M?M2rzp!J$)j)@5D5-r#S_T+Vp+D z`+syER(oq4X0bl_l`@v-9wDC{ocAa`{}1zgRp9R-QNB-n?-5Z<;^EhgMP4$rcg=2c za0qSPOyC8X&BY+z&3tLTqgSetOxuzAdA1>a^;xyXWYciD^{Y0rz7YFxb5}HG3RBuBT}E z4+rO=EmW6q5B?7Nmomu5w)1>V|JAhk{SvVI>>f&yE#3RyPYj~_@lR)uq`LgQV!yx! zWyjBcx^%l6AFLon|MI`Kc)LrrqR!o2$2FsY{psv$NZ@Ejs(2F{m!*K0Z1t{3vAG7S zLDB^6tss&EVORp>i8#d6GF1N>VYl>fvqTqvK+r)Sh3ueD+RP@=+=@ex%yIx5z`;bu z@4gg@cdWxykluUQF^m8)+Atj}BZJZ|#*u-57 z!(PvMAJrWtDXMG#+<_02O-6rqvlCY;G`umhSE!;NLv|$v^%#7VmCJ3EJw) z?(9o5%oqN6KhM(n;I3GIvX4L*w44h9xfz$GD=)mX_2knBF}r(@hOXU4mIK$JuUrXS*r~~ zidN%l%n;hTyACm-USNd;A?o=B3!xj`w07jimq$1aaQl z(*p$_Q5-!D_crEBkBE%v!@Qhg8a$Abu~RL7j=Sb`oF(Rx+XCM&t@$wFK{LPOMLJK4 zE+B)|nVi{d?0(xQcItHesw5(N1d34}j@?aAGn4ew$hR`5o?m#nkW z(tT^)h$r>l3xX#f)>ALr6&e2=S__j6o`|gm7rPsBY&Cu-B~D@nU?dmA+ZpKdJ4TRT45&BSx~j-6r?^e11{>-(ZdB5=D2dCe@H7hVkU2^& zajSpk(@NJ};->%el@-L`pZ?2o(@#E0XAfo^f4V~K>buS}nKy9tiTPh>EsS&6du5PBo&-dee#^yZAR<{4!zN)+zQ2S%@)bkWI(D(yz&V@i9bT7Xzr2LHiVU&qqN__ z{SC}PNR>;tgB26i=Cr7I!f1VJI^s$*7ESdal|U8cg-!FXwB7S^QPZr&1~a^@>f7dZ zxvhO#zEb)?R=ULOyQ7SUd0>7$Ed#N4frNm{xjU!3jY5qHBGp>`p{rHT0WA2Bp$uU z#DO?{Q_a_^l&p!RMrA2-J{i4yJtIiJA?3v#jeiwE1SnB;N^Xv{L@A!tQa?6MVJ&`J@Vz5=R4wcAM75rYfdhcTeAQ|A2W?BfGeqr< zQLrLjI1^qvyV2C?D-APsP6Fj>oz-6t2d~}8ljs_lls&D^Iw7v9)Kz4Gi@%7GOnwH0 zCIj%L4r3@K7`9^)q;cd}kH#xgwlx|&OW6DJ$_m=f$$z+ry^H1}*!%nPxDA>F0mb8+ z>!H7!nWO4&U`}@M`kG^}cPmiTRo!LT{Pl8e| zj~kUlhSTORNg3i&HHr%~BD#(Zq0-KOwm@ter0F<@kfp_%?kbUA! z=YH$gWsLB9c~d)<^iU{4cnXJwi4$ro){wjI5Qa+d4knj=K5&-?Ft`ozwHnx6mP&an zz42n%2om1Y`b_x`Mmkm}%5YeYL>*yu_B8?_uCy4xd-1$_aLM$=X^>41{be{+0upCU z0xIqr=M12ZkhN-X2FLF(Dbk@Z=n#JIaM2IEMTQcIhF{(0{S9Zf?!2}_T6 z++@?Ri2*s&Q~9I; z^Wv?xTDsAJK0tQxasxw57-*ZB&lN7laRUR9ai?cSy?Xh`>*%}hs8h%9jRU3rF{_h^iOz-q13digfx?wx2%|0$7LZS`mLk@~ZaJ3>DCK3-{HhqXu&J0xl9J zkIr76i}r%r`M6Ft-w&Uye+VR*{Sl=ru(Caq z->USWACBvJuBJ*QP%!E~|guoN;$j%sGhyZ+AYXiXEQ)MU-2hq2CNwLpL@{ zSgW*N}(b%u8~xTN*QRWm?T8iLtX^mdqJHW{dDA;AAkJ5gSv&* z`K@omSE_v`X#!WBSqpv3$P%sw1de?4$7D}9(t_|}@2=SCq<+K&vw!>11Yt$nCKS}5 z%05H5m>t3+b-0#uh1G~-UVyb6g5ol!0P$z5ddXr2wZ=N4?DP&XAu(m!JvYbHHRD}T z0gt{ju$Mm(o=6_)lLO7M%DpS10@M<5M&5#4SVsoWjkw|qiRCW(a1FL1oc-p_{D`cH z`Qe*6tpyBYm{$fHL)P-NfA=1(t!PU=t%NeZL=_=iN|eeJrFwOHEnrJ1m4orh1Nb6> zE$xkMa3~x$=gusk^w%M1ZYWld?btd2KRH8&5&I!9YmA*B4gaLkGui{1!ND0}vy?|4 z&VEUgZ^|cZHIZ;m+o&jr-BfwGSt1DG-IotD`cw^3mvLYvb6UQg-i4fBS*m7RcDJ+< z(^L6Uv{)8z3q=%K%RP8-s=3{sz8CI6FzU ztWfHJ(hNL2I3*@qC7WUvlaTKa!abv7%4?i0+pG8bK1@!0T!U$UKuoNiy~@;Dookjg zZ(&CuSX*58E&T-em;yly{qW<>#qW%oWlK^#Nk@dIj!moEuc#~~e#}_4tzw%viI5;9 zkMETjan*Dae8pund`6%h1%#qkdgYnN$bn@tI2NEToaUCs9^mR^EGz{kI1+Z8gUc?R z6HA=!&|198Fkx7y+k9&;DC&!;XRmr*;dF9D_wdBDjVfDWg#y8k(P{cMu@oOLCL4Ut zH;j2D!bAESizh_RFk9kkZkDam`-Gqd70P72Riqo8oFQN+B!}Dzz{Abv(x7GTuQC@{ z#Ve)Y0Dx?+&cSF*Hvr4`B8Up+s2&;wY%>^e% zWPAe|Qu_&BiXoM2z+DEUjn+jX3pT(Q$uCpbsb}p;Cawu|x8guiATj8cFe;dMeZXld zVYsZrxfR&l9b`J+75#Ab7BAZ?q9yp%rsM}@oS-%lrZ9^kEfhHT-fJW&tdDQm z`pY-$O(b4;?<~~*!;L#P*p$4(9c`h-i~WGq+1xsPn0x7aG~y+;Kmkjq5dg`uhQ1dd zP(&H5WMp^h>?Ly&+#9fK&y2C&NbgPI~rc8)SFO=YwF>Pd>%h@C+ReWFp{R z^^yQ)NRpfbxWWi8;xe!*+MsaV&C@DVXvDrqCYI# z1$H$@T?%g=>FbOmZ=2LVdo`TTJ|Bh8B;LXkk7q*ZHY8vk$km;y~ zN&L6=&T|?=ON9byxt%(uQjK|T%qqnZjT(--w15bp4X-zydWd|~j#Ri%7?V>txwukm zDZPkqtBTnsF7eX-qm~hQXx9*pb2$I3Jo=jBy(^H$4`2{k9_kVs_NgwI5Qa_?z&q4> zmhQcnaZ;ZtN_1&yg}9Fd`QRA@$X;Xnuov*Gm7~<2P&is!Vi+yz+5}+oxL_Dq;P0j# zk1Z7jccx_!s;1oK9KIqMs7tr6LG9(rq5tE`3LN6E{O6(2&&TA#X?0#}KR_}pd<*5y z6E&w}a>&!=nu;Z{gJO`B8x@)emD()m1RXZE4 zK-ORyVG=^!zgz`$iM~vz&dp|rY=%e4(9PHo*5?)oJ?Mb;nG3FY%E|hg>Clf^3G=Gp ztE)EiHb)VwbElZxhp%x*is$$NdF#Fz4MUzTNw?%}vsL!#OIp7K_RP&yx){hiL3Mi1QzZVpMdGkIh|oJNT7#2bGgwCSm1J3F=h;|=*HqssQz3m(RfXW9g5}PS zSM}y5!=TkCHT$=!x+63E5yOe4Hp$u0q0#t03?wXn7{cK2D+8=GFytC}1F%2Z6IGj& zF*Q)M8l4gFtAQK^N@iwsn6xt{RDjp)6)G!fl3X@@)VZ9v@`v&&j)Wr6k^s9_RC!#d zlY}IQ7nw6|6b1^{a>eQSrKJ{y<#Sl8le%&w z6R5l2f-jvcJV0m>9Jl^>FPgx8`g=2|dh=e&5nYmtv(1ZY-{-zNRa%)sp>F~#;Wn_< z75)9C4sc-Oz#kaw|6T0*TykMO?{^+0Vx}!%!4}V)7y;mDe%h`PT9&YK^X9+@tBHYk9~iL2&O3O5^+9 zWOhGoc7aPNG)u(Q8nW9H0nuvWZ`iprYKL?iuu*g*CPf|wG!Dh^p9^qc=#b(HNc+T8 z0iJ61?*mMqoC4t#PBsN>Sg~H)7)K)uOt?8IB}VmhI}r}w$)zolu)-<5?SO3Cd4=`( zmzUDU@B$)YYw#yeM`}B@;kWX@N3SI7-gL>iLXu3#jwAs7{+u*^)i#KLjBVT_lrk1y4EodRl*kv z0RtEMJ$R1}Y(x>h#vL+sf8fp-0;aoh_?6qFD|_v(!y;duF?Xu=POf6E|CBl&)5bRinA&7n5>B(pOVm z>W`vWMN36^vCMUJwvbjrED_wE7LBR_i$?#MHu!o&!rdb%avw>HOp^Kq-?( z9I`Hj&6EoEE775jEfrO1A9?U^gyY^^r!{|jhYtY#$XD|TXQrlZd?Eg6Uzi~pg&5FL z<7h;AZB!7`EjNe}J`!ffQjY7zOB;Qs5K-(4;F%mJzpu=}s-+7NSO`&5+-{^dcvc{q zwRjHr)&xh(kbeVBSJ!I7k_8IR7n4w@O2P7mHH1q%?AnzTRL+0>?}Uf_e6(J->{Eis z^$-4~-?Kw0?lR6c{bq@umA$%oMBw6-WGVXjaA^ZK>u>3*i`WuFDkmSUKLk5WD!Jb& zU;tc*MG|U>IceThQm%2Cx;OBnwVuutt-MmH8jqFK4x=#DCBB$Uu0R08Cp65!Y?j)SO8iUG~0t@rxk$#e=hB$pAE^*Lt>!H^y888EoZcs%b#Y0Ug^)y8v7z^7^pqr0E$e%V=tsxMl!A>GLm+xh$^n2@DuZwh1r}oaw){l;FgOdFd zGDeQ~zP~-`nQ2H|kINF<`70!D{_USU_$R$_Ioekaa+->1QBt^`*&G z*A3FWnV1EBx-c)i)1_6Jj}bSeltV*gL=?HAj3;IXuz^DZ#^_tQINN7%m1bA4Yq6+t zs8Y=Qz~hjIx5q@#P&8moxd30;cY|L2L{;UE)pP{ydSDtC27^q&RAz9askVm`hfc#~ z;<)Vq4v9AFDwy2{D-UTP-2p`tDLR^levYscV4GZ+nuz%t)Cys$2aE`1DqIC@WfS6b zAR>bUp}T}(@`RqsN;<>+pp75B21JfEY(U+stlW-_L4pjV2%!pq2ObM0AZrQ(P!vxz zRR`dd%3|_8||!GtMsP-L)zSn zGkmc@44e}LStDg&pk|B8ZJWI@sZ=zA*j%lWk_T#;LS7@qNMXFg0=?cYqSc3oQxqb= zKy`~4rIO9`VyJ6p6dVu`YoluiOTUJq#@hhgL?tYr#Fjk}WYQC3mrB<*y= zAh5y!ZyR{jYv+e&3Sh*v4Kao2I}V6ct)`!x3UxDjKEIdU1YY1HhMT6pQRWJi99yp? zCW1_K7_)}!!b}sEEph}s9>SNnrKXjXX&BX-H``H!X9p3!#K=#ste`ypOMicnkuPT8 zqd#t}|2D`C*q`!VTxhhBZs=hIxT%=@oPt0e0kJi^2sTKN*$+RrK zuYRzC?EdfS*55Ni9$)oV&x(CwgdC9yr@Q=*w?6Hjk&eG328;q|2?0O+UP6Ac zKaGi@^twnZmS6|8)|9WQZv=08b5!4>Gt!n5P*J|4(o&C<{5Pbd#-z|JJFh>CbC72B zP%T0ufy>Ykc$wz3ft$xjc{~M6`m@-ocQ>gE=;DCQ*^(+>+qtuU-i1{wha@(US-t;9>~zGOP5kwcgqX!!EdAet|EN%10rCyqRwZVI!@b{e}Qcjyu- zE7=2W@TiY7MD+xSr1HmPhS=pe?2uU~uZPI~%mxJm^;_ehx{%7nLRWDX?-z7D9=$@3fpV*8j} zMMJ9T1bf? zF_J&cD!mG4IuY=nJ&XeYJ_he>rvGhbHe%y#o6sJgRvHR$$d+w1pWT1>S~fG*<6h#o&8RsU~ox8B(R diff --git a/firmware/l0dable/files/fp-mini.scd b/firmware/l0dable/files/fp-mini.scd deleted file mode 100644 index 54a8d46c5bfeae7e25431299b0aef2fd926d7105..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8692 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 Date: Sat, 7 Apr 2012 16:35:04 +0200 Subject: [PATCH 13/27] Unify device handling. "-d" for all now --- tools/mesh/beacontrace.pl | 7 ++++++- tools/mesh/meshtrace.pl | 7 ++++++- tools/mesh/rf | 13 +++++++++---- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/tools/mesh/beacontrace.pl b/tools/mesh/beacontrace.pl index 8b71c66..ea632fc 100755 --- a/tools/mesh/beacontrace.pl +++ b/tools/mesh/beacontrace.pl @@ -13,7 +13,12 @@ use r0ket; $|=1; -r0ket::r0ket_init(); +my $ser; +if($ARGV[0] eq "-d"){ + shift; + $ser=shift; +}; +r0ket::r0ket_init($ser); # Default openbeacon settings. r0ket::set_txmac(pack("H*","0102030201")); diff --git a/tools/mesh/meshtrace.pl b/tools/mesh/meshtrace.pl index 2ba2a33..c30caa2 100755 --- a/tools/mesh/meshtrace.pl +++ b/tools/mesh/meshtrace.pl @@ -12,7 +12,12 @@ use r0ket; $|=1; -r0ket::r0ket_init(); +my $ser; +if($ARGV[0] eq "-d"){ + shift; + $ser=shift; +}; +r0ket::r0ket_init($ser); # Default mesh settings. r0ket::set_txmac("ORBIT"); diff --git a/tools/mesh/rf b/tools/mesh/rf index ccc5894..2f23e76 100755 --- a/tools/mesh/rf +++ b/tools/mesh/rf @@ -14,14 +14,19 @@ use r0ket; $|=1; -r0ket::r0ket_init(); +my $ser; +if($ARGV[0] eq "-d"){ + shift; + $ser=shift; +}; +r0ket::r0ket_init($ser); my @fh; my $read; -if ($ARGV[0] =~ /^-?-?h/){ +if ($ARGV[0] =~ /^-?-?h/ || $#ARGV == -1){ print STDERR "Mini-Help:\n"; - print STDERR "-s (or \$R0KETBRIDGE)\n"; + print STDERR "-d (or \$R0KETBRIDGE)\n"; print STDERR "-w write beacon2nick file\n"; print STDERR "\n"; print STDERR "recv: receive (number) pakets\n"; @@ -181,7 +186,7 @@ if($cmd =~ /^r/){ if($scmd eq "t"){ $pkt.="T"; $pkt.=chr(shift); #gen - $pkt.=pack("N",scalar(time)+1*60*60); + $pkt.=pack("N",scalar(time)+2*60*60); $pkt.=pack("N",0); $pkt.=pack("N",0); From ef16649125a56893a9e32209b472b8fc58bf859a Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sat, 7 Apr 2012 16:39:52 +0200 Subject: [PATCH 14/27] unify gmt offset to $r0ket::timediff --- tools/mesh/lib/r0ket.pm | 3 ++- tools/mesh/meshtrace.pl | 2 +- tools/mesh/rf | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/mesh/lib/r0ket.pm b/tools/mesh/lib/r0ket.pm index 013457f..802e511 100755 --- a/tools/mesh/lib/r0ket.pm +++ b/tools/mesh/lib/r0ket.pm @@ -14,6 +14,7 @@ use Time::HiRes; our $verbose=0; our $bridge; # Open device our $quiet=0; +our $timediff=60*60*2; ### Utility sub sprint{ @@ -154,7 +155,7 @@ sub nice_mesh{ $out->{string}.=sprintf " t=%s (%+4d) rel=%s beacon=%s", strftime("%Y-%m-%d %H:%M:%S",gmtime $out->{time}), - $out->{time}-(Time::HiRes::time+3600), + $out->{time}-(Time::HiRes::time+$timediff), $out->{release}, resolvebeacon($out->{beacon}); }elsif($type eq "i"){ diff --git a/tools/mesh/meshtrace.pl b/tools/mesh/meshtrace.pl index c30caa2..0b285e9 100755 --- a/tools/mesh/meshtrace.pl +++ b/tools/mesh/meshtrace.pl @@ -61,7 +61,7 @@ while(1){ $p->{generation}, $p->{release}, strftime("%Y-%m-%d %H:%M:%S",gmtime $p->{time}), - $p->{time}-(time+3600), + $p->{time}-(time+$r0ket::timediff), r0ket::getbeacon($p->{beacon}) ); $win->refresh; diff --git a/tools/mesh/rf b/tools/mesh/rf index 2f23e76..0411e67 100755 --- a/tools/mesh/rf +++ b/tools/mesh/rf @@ -186,7 +186,7 @@ if($cmd =~ /^r/){ if($scmd eq "t"){ $pkt.="T"; $pkt.=chr(shift); #gen - $pkt.=pack("N",scalar(time)+2*60*60); + $pkt.=pack("N",scalar(time)+$r0ket::timediff); $pkt.=pack("N",0); $pkt.=pack("N",0); @@ -197,7 +197,7 @@ if($cmd =~ /^r/){ }elsif($scmd eq "a"){ $pkt.="A"; $pkt.=chr(shift); #gen - $pkt.=pack("N",scalar(time)+1*60*60+ 300); + $pkt.=pack("N",scalar(time)+$r0ket::timediff+ 300); $pkt.= pack("C",shift||0); $pkt.= pack("C",0); @@ -212,7 +212,7 @@ if($cmd =~ /^r/){ }elsif($scmd eq "b"){ $pkt.="B"; $pkt.=chr(shift); #gen - $pkt.=pack("N",scalar(time)+1*60*60+ 600); + $pkt.=pack("N",scalar(time)+$r0ket::timediff+ 600); $pkt.= pack("C",shift||0); $pkt.= pack("C",0); @@ -227,7 +227,7 @@ if($cmd =~ /^r/){ }elsif($scmd eq "c"){ $pkt.="\x1"; $pkt.=chr(shift); #gen - $pkt.=pack("N",scalar(time)+1*60*60+ 600); + $pkt.=pack("N",scalar(time)+$r0ket::timediff+ 600); $pkt.= pack("C",shift||0); $pkt.= pack("C",0); From 5a71fbd1ee74cc97bee1062cd8a8b3fc21ae6c42 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sat, 7 Apr 2012 19:15:17 +0200 Subject: [PATCH 15/27] New fahrplan from ray --- firmware/l0dable/files/fahrplan.scd | Bin 43724 -> 115487 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/firmware/l0dable/files/fahrplan.scd b/firmware/l0dable/files/fahrplan.scd index bd72e04c3f1fe7f89ccc4a86f019ae8196777a3e..44dba4d441f491c0175e9a3a03b2826ffde978c3 100644 GIT binary patch literal 115487 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 literal 43724 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 Date: Sat, 7 Apr 2012 20:01:43 +0200 Subject: [PATCH 16/27] support for relaying --- tools/mesh/beacon-udp.pl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/mesh/beacon-udp.pl b/tools/mesh/beacon-udp.pl index 3b2a370..a68e7df 100755 --- a/tools/mesh/beacon-udp.pl +++ b/tools/mesh/beacon-udp.pl @@ -152,10 +152,15 @@ while(1){ }; $ctr++; + my $idoff=0; + if(substr($pkt,12,1) eq "\xee"){ + $idoff=1000; + }; + my $hdr= pack("CCnnNN", 1, # proto (BEACONLOG_SIGHTING) 0, # interface (we only have one antenna per "reader") - $id, # readerid + $id+$idoff, # readerid length($pkt)+16, # size $ctr, # sequence time # timestamp @@ -178,5 +183,8 @@ while(1){ }else{ $typeunknown++; }; + if($idoff){ + $typeunknown++; + }; }; r0ket::rest(); From 7b0c755c87446080181c2a343b5d931f450f5e8e Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sun, 8 Apr 2012 19:21:05 +0200 Subject: [PATCH 17/27] Newer easterhegg fahrplan. Ray broke the old one :) --- firmware/l0dable/files/fahrplan.scd | Bin 115487 -> 45348 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/firmware/l0dable/files/fahrplan.scd b/firmware/l0dable/files/fahrplan.scd index 44dba4d441f491c0175e9a3a03b2826ffde978c3..287c261fa5b794c33cc76f8967cf524b67eba069 100644 GIT binary patch literal 45348 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 From 2b5341713b00f013089b4e6cdb4caa177266c835 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sun, 15 Apr 2012 22:58:04 +0200 Subject: [PATCH 18/27] Add support to read UUID from bridge-r0ket --- firmware/BRIDGE-PROTOCOL | 3 ++- firmware/applications/bridge.c | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/firmware/BRIDGE-PROTOCOL b/firmware/BRIDGE-PROTOCOL index e812eae..4e8a6c6 100644 --- a/firmware/BRIDGE-PROTOCOL +++ b/firmware/BRIDGE-PROTOCOL @@ -14,5 +14,6 @@ h->r:\5\0 r->h: \2\0 h->r:\6\0 r->h: \2\0 - +h->r:\7\0 +r->h: \7\0 diff --git a/firmware/applications/bridge.c b/firmware/applications/bridge.c index 6c5cb9b..c3b1b98 100644 --- a/firmware/applications/bridge.c +++ b/firmware/applications/bridge.c @@ -99,6 +99,14 @@ void main_bridge(void) config.maclen[0]=serialmsg_message[0]; nrf_config_set(&config); break; + case '7': + puts("\\7"); + char s[sizeof(uint32_t)+1]; + *((uint32_t*)s) =GetUUID32(); + s[sizeof(uint32_t)]=0; + puts(s); + puts("\\0"); + break; }; puts("\\2\\0"); } From 4f859c82a0b8ea82b538147b0c7e5a9b467c00ae Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sun, 15 Apr 2012 23:01:42 +0200 Subject: [PATCH 19/27] improve get_pkt() code in bridge perl lib. - length filter for received packets - no more in-band signalling - allow new packet types --- tools/mesh/lib/r0ket.pm | 57 ++++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/tools/mesh/lib/r0ket.pm b/tools/mesh/lib/r0ket.pm index 802e511..0087c6b 100755 --- a/tools/mesh/lib/r0ket.pm +++ b/tools/mesh/lib/r0ket.pm @@ -16,11 +16,17 @@ our $bridge; # Open device our $quiet=0; our $timediff=60*60*2; +my $rxlen=0; # Filter for get_pkt() + ### Utility sub sprint{ return join("",map { if (ord($_)>30 && ord($_)<127){ - $_; + if(ord($_)==92){ + "\\\\"; + }else{ + $_; + }; }else{ # "[x".unpack("H*",$_)."]"; "\\".unpack("C",$_); @@ -93,8 +99,9 @@ sub writebeacon{ ### Packet mgmt our $buffer; -our $firstpkt=2; -sub get_packet{ +our $firstpkt=1; +sub get_data{ + my $filter=shift||0; sub _get_bytes{ my $rr; sysread($bridge,$rr,1024); @@ -102,25 +109,33 @@ sub get_packet{ select(undef,undef,undef,0.05); }; $buffer.=$rr; +# print "recv: ",unpack("H*",$rr),"\n"; }; my $cnt=0; while(1){ if(length($buffer)<2){ _get_bytes(); - }elsif($buffer !~ /^\\[12]/){ - $buffer=~s/^(.[^\\]*)//s; + }elsif($buffer !~ /^\\[1-9]/){ + if($buffer =~ /[^\\]\\[1-9]/){ + $buffer =~ s/^(.*?[^\\])(\\[1-9])/\2/s; + }else{ + $buffer = s/(.*)//s; + }; if($firstpkt){ $firstpkt--; }else{ print STDERR "Unparseable stuff: <",sprint($1),">\n" if(!$quiet); }; - }elsif ($buffer =~ s/^\\2\\0//s){ - return 'ack'; # In-band signalling. Evil %) - }elsif ($buffer =~ s/^\\1(.*?)\\0//s){ - my $str=$1; + }elsif ($buffer =~ s/^\\(\d)(.*?)\\0//s){ + my ($type,$str)=($1,$2); $str=~s/\\\\/\\/g; # dequote - return $str; +# print STDERR "ret:pkt[$type]=",(sprint $str),"\n"; + if($filter==0){ + return ($type,$str); + }elsif($filter==$type){ + return $str; + }; }else{ _get_bytes(); }; @@ -132,6 +147,16 @@ sub get_packet{ }; }; +sub get_packet{ + my $pkt; + while(1){ + $pkt=get_data(1); + if($rxlen==0 || length($pkt)==$rxlen){ + return $pkt; + }; + }; +}; + sub rest{ if(length($buffer)>0){ print "rest: <", sprint($buffer), ">\n" if(!$quiet); @@ -271,6 +296,7 @@ sub nice_beacon{ $out->{string}=sprintf "NICK beacon=%s nick=%s", $out->{beacon}, $out->{nick}; + addbeacon($out->{beacon},$out->{nick}); }else{ $out->{string}=""; }; @@ -332,15 +358,16 @@ sub set_channel { send_pkt_num(pack("C",shift),5); }; sub set_rxlen { + $rxlen=$_[0]; send_pkt_num(pack("C",shift),6); }; sub wait_ok { - my $pkt; - $pkt=get_packet(); - while($pkt ne "ack"){ - print "pkt=",(sprint $pkt),"\n"; - $pkt=get_packet(); + my ($type,$pkt); + ($type,$pkt)=get_data(); + while($type ne "2"){ + print "pkt[$type]=[",length($pkt),"]",(sprint $pkt),"\n"; + ($type,$pkt)=get_data(); }; print "ok!\n"; return 1; From e6b3afbab02e07a4f915e7704f52cab598416a92 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sun, 15 Apr 2012 23:08:01 +0200 Subject: [PATCH 20/27] better commandline handling allow reading of uuid with "c id" --- tools/mesh/rf | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/tools/mesh/rf b/tools/mesh/rf index 0411e67..332ada4 100755 --- a/tools/mesh/rf +++ b/tools/mesh/rf @@ -14,22 +14,26 @@ use r0ket; $|=1; -my $ser; -if($ARGV[0] eq "-d"){ - shift; - $ser=shift; -}; -r0ket::r0ket_init($ser); +### Commandline options +use Getopt::Long; +my $ser = undef; +my $help = 0; +my $writend = 0; +GetOptions ( + "dev=s" => \$ser, + "help" => \$help, + "write" => \$writend, + ); -my @fh; -my $read; +$help=1 if($ARGV[0] =~ /^[h?]/); -if ($ARGV[0] =~ /^-?-?h/ || $#ARGV == -1){ +if ($help){ print STDERR "Mini-Help:\n"; print STDERR "-d (or \$R0KETBRIDGE)\n"; print STDERR "-w write beacon2nick file\n"; print STDERR "\n"; print STDERR "recv: receive (number) pakets\n"; + print STDERR " - r : try to autodetect packet format\n"; print STDERR " - r hex : hexdump packets\n"; print STDERR " - r ascii : asciidump packets\n"; print STDERR " - r beacon : parse as openbeacon\n"; @@ -52,22 +56,23 @@ if ($ARGV[0] =~ /^-?-?h/ || $#ARGV == -1){ print STDERR "- c tx - set txmac\n"; print STDERR "- c len - set rxlength\n"; print STDERR "- c ch - set channel\n"; - print STDERR "- c hex - set any option via hex string\n"; + print STDERR "- c hex - set any of the previous option via hex string\n"; + print STDERR "- c id - read beacon id\n"; print STDERR "\n"; print STDERR "etc...\n"; exit(1); }; -my $writend=0; -if ($ARGV[0] eq "-w"){ - shift; - $writend=1; -}; - END{ r0ket::writebeacon if($writend); }; +r0ket::r0ket_init($ser); +$r0ket::verbose=1; + +my @fh; +my $read; + my $cmd=shift; if($cmd =~ /^r/){ @@ -163,6 +168,10 @@ if($cmd =~ /^r/){ r0ket::set_channel(shift); }elsif ($set =~ /^len/){ r0ket::set_rxlen(shift); + }elsif ($set =~ /^id/){ + r0ket::send_pkt_num("",7); + my $id=r0ket::get_data(7); + print "r0ket id: ",r0ket::hprint($id),"\n"; }else{ die "Unknown config argument $set\n"; }; From f1b4da67c0e1ef025ca31cb67edc46543538c45a Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Wed, 18 Apr 2012 00:43:39 +0200 Subject: [PATCH 21/27] Do not store signed value in unsigned variable. Took me an hour to find :-/ --- firmware/filesystem/util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/filesystem/util.c b/firmware/filesystem/util.c index f4ace01..c172c43 100644 --- a/firmware/filesystem/util.c +++ b/firmware/filesystem/util.c @@ -103,7 +103,7 @@ int readFile(char * filename, char * data, int len){ }; int readTextFile(char * filename, char * data, int len){ - UINT readbytes; + int readbytes; readbytes=readFile(filename,data,len-1); if(len>=0) From 524dbf1b911801f23da0d431f99b0ce93e906615 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Wed, 18 Apr 2012 00:47:37 +0200 Subject: [PATCH 22/27] Fix a typo in a comment --- firmware/lcd/render.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/lcd/render.c b/firmware/lcd/render.c index 37f0110..24bd604 100644 --- a/firmware/lcd/render.c +++ b/firmware/lcd/render.c @@ -384,7 +384,7 @@ int DoChar(int sx, int sy, int c){ }; #define UTF8 -// decode 2 and 4-byte utf-8 strings. +// decode 2 and 3-byte utf-8 strings. #define UT2(a) ( ((a[0]&31)<<6) + (a[1]&63) ) #define UT3(a) ( ((a[0]&15)<<12) + ((a[1]&63)<<6) + (a[2]&63) ) From 7ac2394a61c4d14fe2346703105e743da5885030 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Wed, 18 Apr 2012 01:12:44 +0200 Subject: [PATCH 23/27] Fix initUUID() prototype and add it to the .h --- firmware/basic/uuid.c | 2 +- firmware/basic/uuid.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/firmware/basic/uuid.c b/firmware/basic/uuid.c index c6d59a2..69c1430 100644 --- a/firmware/basic/uuid.c +++ b/firmware/basic/uuid.c @@ -30,7 +30,7 @@ static uint16_t __GetUUID16(void){ return crc16 ((uint8_t *) iap_return.Result, sizeof (iap_return.Result)); }; -uint32_t initUUID(void){ +void initUUID(void){ uuid32=__GetUUID32(); uuid16=__GetUUID16(); }; diff --git a/firmware/basic/uuid.h b/firmware/basic/uuid.h index d64d92b..75f6087 100644 --- a/firmware/basic/uuid.h +++ b/firmware/basic/uuid.h @@ -3,6 +3,7 @@ #include uint32_t GetUUID32(void); +void initUUID(void); #endif From 66717f7c35ad0e07d2bfeb892218e5e7875aaeb2 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Wed, 18 Apr 2012 01:23:01 +0200 Subject: [PATCH 24/27] make readTextFile() better. (ignore newlines at the end and fail better on non-existing file) --- firmware/filesystem/util.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/firmware/filesystem/util.c b/firmware/filesystem/util.c index c172c43..a5c01b5 100644 --- a/firmware/filesystem/util.c +++ b/firmware/filesystem/util.c @@ -105,9 +105,16 @@ int readFile(char * filename, char * data, int len){ int readTextFile(char * filename, char * data, int len){ int readbytes; + if(len<1) return -1; readbytes=readFile(filename,data,len-1); - if(len>=0) - data[readbytes]=0; + if(readbytes<0){ + data[0]=0; + return readbytes; + }; + data[readbytes]=0; + while(readbytes>0 && data[readbytes-1]<0x20){ + data[--readbytes]=0; + }; return readbytes; }; From e97a5ffafc2035912c863b6752d7fc656920e7d7 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sat, 21 Apr 2012 14:59:08 +0200 Subject: [PATCH 25/27] make smartflash ignore bridge r0kets. Also allow flashing different firmwares via commandline --- tools/smartflash/Makefile | 5 +++++ tools/smartflash/flash | 12 ++++++++++-- tools/smartflash/smartflash | 11 ++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/tools/smartflash/Makefile b/tools/smartflash/Makefile index acd9615..878746e 100644 --- a/tools/smartflash/Makefile +++ b/tools/smartflash/Makefile @@ -27,6 +27,11 @@ setup: @echo @echo "Now run ./smartflash (as root)" +bridge: + cd ../../firmware && make APP=bridge TABLE=NO USBSERIAL=YES clean all + cp ../../firmware/bridge.bin . + sudo ./smartflash bridge.bin + run: sudo ./smartflash diff --git a/tools/smartflash/flash b/tools/smartflash/flash index b2307a9..4e09e00 100755 --- a/tools/smartflash/flash +++ b/tools/smartflash/flash @@ -1,3 +1,11 @@ #!/bin/sh -dd if=firmware.bin seek=4 of=/dev/$1 2>/dev/null -echo "FLASH done: $1 @ $2" +bin=frimware.bin +if [ ! -z "$3" ] ; then + bin=$3 +fi +dd if=$3 seek=4 of=/dev/$1 2>/dev/null +if [ -z "$3" ] ; then + echo "FLASH done: $1 @ $2" +else + echo "=== FLASH of $3 done: $1 @ $2" +fi diff --git a/tools/smartflash/smartflash b/tools/smartflash/smartflash index 76d5728..33777e3 100755 --- a/tools/smartflash/smartflash +++ b/tools/smartflash/smartflash @@ -5,6 +5,8 @@ $|=1; my $DEV="/sys/bus/usb/devices"; +my $arg=$ARGV[0]; + sub getline{ my($path)=@_; open(my $f,"<",$DEV."/".$path) || do { @@ -110,10 +112,17 @@ sub dwim{ return 1; }; print "flash $dev -> $sdev\n"; - system("./flash $sdev $dev"); + system("./flash $sdev $dev $arg"); $done{$dev}=2; return 1; }; + if("$ve:$pr" eq "239a:1002") { + return 1 if $done{$dev}==3; + my $sdev=getdev($dev); + $done{$dev}=3; + print "BRIDGE r0ket $dev, ignoring\n"; + return 0; + }; print "$ve:$pr [$mf] @ "; return -1; }; From 19463bac69a9383457152eccf9acd4a2bb9d66d6 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sat, 21 Apr 2012 16:21:25 +0200 Subject: [PATCH 26/27] smartflash: no need to ignore devices forever --- tools/smartflash/smartflash | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tools/smartflash/smartflash b/tools/smartflash/smartflash index 33777e3..001d715 100755 --- a/tools/smartflash/smartflash +++ b/tools/smartflash/smartflash @@ -120,14 +120,13 @@ sub dwim{ return 1 if $done{$dev}==3; my $sdev=getdev($dev); $done{$dev}=3; - print "BRIDGE r0ket $dev, ignoring\n"; + print "BRIDGE r0ket @ $dev, ignoring\n"; return 0; }; print "$ve:$pr [$mf] @ "; return -1; }; -my %disable; while(1){ opendir(my $dh, $DEV); my @paths=grep {/^[^.]/} readdir($dh); @@ -135,15 +134,15 @@ while(1){ # print "f: ",join(",",@files),"\n"; device: for my $path (@paths){ - next if ($disable{$path}); next if $path =~ /^usb/; next if $path =~ /:/; # print "p $path\n"; $found{$path}=1; - my $res=dwim($path); + my $res=0; + $res=dwim($path) unless ($done{$path}==-1); if($res==-1){ - print "$path -- ignoring it forever\n"; - $disable{$path}=1; + print "$path -- unknown device, skipping\n"; + $done{$path}=-1; }; }; for my $a (keys %done){ From 401fb5e02c420339297e9b4e23f2f2cc3d0b1f22 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Sat, 21 Apr 2012 16:22:18 +0200 Subject: [PATCH 27/27] gitignore more files --- tools/mesh/.gitignore | 1 + tools/smartflash/.gitignore | 1 + 2 files changed, 2 insertions(+) create mode 100644 tools/mesh/.gitignore diff --git a/tools/mesh/.gitignore b/tools/mesh/.gitignore new file mode 100644 index 0000000..39624cc --- /dev/null +++ b/tools/mesh/.gitignore @@ -0,0 +1 @@ +BEACON diff --git a/tools/smartflash/.gitignore b/tools/smartflash/.gitignore index b211c62..15221b8 100644 --- a/tools/smartflash/.gitignore +++ b/tools/smartflash/.gitignore @@ -1,2 +1,3 @@ firmware.bin +bridge.bin files