Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1124 → Rev 1085

/demos/branches/pj/block/idelin.c
File deleted
/demos/branches/pj/block/idetest3.c
File deleted
/demos/branches/pj/block/idernd.c
File deleted
/demos/branches/pj/block/common.c
File deleted
/demos/branches/pj/block/readme
File deleted
/demos/branches/pj/block/initblk.c
File deleted
/demos/branches/pj/block/makefile
File deleted
/demos/branches/pj/block/common.h
File deleted
/demos/branches/pj/block/idetest0.c
File deleted
/demos/branches/pj/block/idetest1.c
File deleted
/demos/branches/pj/block/idetest2.c
File deleted
/demos/branches/pj/bca/bca.h
File deleted
/demos/branches/pj/bca/aereo.c
File deleted
/demos/branches/pj/bca/dummy.c
File deleted
/demos/branches/pj/bca/makefile
File deleted
/demos/branches/pj/bca/fab_lib/fab_msg.h
File deleted
/demos/branches/pj/bca/fab_lib/fab_grx.sys
File deleted
/demos/branches/pj/bca/fab_lib/fab_tool.h
File deleted
/demos/branches/pj/bca/fab_lib/fab_grx.h
File deleted
/demos/branches/pj/bca/fab_lib/fab_show.h
File deleted
/demos/branches/pj/bca/scenario.c
File deleted
/demos/branches/pj/bca/initfile.c
File deleted
/demos/branches/pj/bca/missile.c
File deleted
/demos/branches/pj/bca/bca_lib.c
File deleted
/demos/branches/pj/bca/readme
File deleted
/demos/branches/pj/bca/bca_raw/aereo1_h.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/cannon_h.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/esplo1.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/aereo2_h.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/esplo2.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/esplo3.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/bca.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/esplo4.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/missile1.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/esplo5.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/missile2.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/sfondo.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/aereo1.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/cannon.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/bca_raw/aereo2.raw
File deleted
\ No newline at end of file
/demos/branches/pj/bca/fab_lib.c
File deleted
/demos/branches/pj/bca/control.c
File deleted
/demos/branches/pj/bca/cannone.c
File deleted
/demos/branches/pj/bca/esplo.c
File deleted
/demos/branches/pj/bca/bca.c
File deleted
/demos/branches/pj/perf/readme
File deleted
/demos/branches/pj/perf/makefile
File deleted
/demos/branches/pj/perf/perf1.c
File deleted
/demos/branches/pj/perf/perf2.c
File deleted
/demos/branches/pj/perf/perf3.c
File deleted
/demos/branches/pj/perf/perf4.c
File deleted
/demos/branches/pj/perf/initfile.c
File deleted
/demos/branches/pj/first/test5.c
File deleted
/demos/branches/pj/first/test6.c
File deleted
/demos/branches/pj/first/cbsstar.h
File deleted
/demos/branches/pj/first/rmstar.c
File deleted
/demos/branches/pj/first/testiq.c
File deleted
/demos/branches/pj/first/rmstar.h
File deleted
/demos/branches/pj/first/edfstar.c
File deleted
/demos/branches/pj/first/makefile
File deleted
/demos/branches/pj/first/iqueue.c
File deleted
/demos/branches/pj/first/edfstar.h
File deleted
/demos/branches/pj/first/test1.c
File deleted
/demos/branches/pj/first/test2.c
File deleted
/demos/branches/pj/first/cbsstar.c
File deleted
/demos/branches/pj/first/test3.c
File deleted
/demos/branches/pj/first/iqueue.h
File deleted
/demos/branches/pj/first/test4.c
File deleted
/demos/branches/pj/tracer/dfixed/dfixed.c
File deleted
/demos/branches/pj/tracer/dfixed/initfile.c
File deleted
/demos/branches/pj/tracer/dfixed/readme
File deleted
/demos/branches/pj/tracer/dfixed/makefile
File deleted
/demos/branches/pj/tracer/udp/initfile.c
File deleted
/demos/branches/pj/tracer/udp/udptrace.c
File deleted
/demos/branches/pj/tracer/udp/readme
File deleted
/demos/branches/pj/tracer/udp/makefile
File deleted
/demos/branches/pj/tracer/small/treec1.c
File deleted
/demos/branches/pj/tracer/small/hello.c
File deleted
/demos/branches/pj/tracer/small/treec2.c
File deleted
/demos/branches/pj/tracer/small/hello1.c
File deleted
/demos/branches/pj/tracer/small/hello2.c
File deleted
/demos/branches/pj/tracer/small/treef1.c
File deleted
/demos/branches/pj/tracer/small/common.c
File deleted
/demos/branches/pj/tracer/small/simple.c
File deleted
/demos/branches/pj/tracer/small/readme
File deleted
/demos/branches/pj/tracer/small/initfs.c
File deleted
/demos/branches/pj/tracer/small/makefile
File deleted
/demos/branches/pj/tracer/small/common.h
File deleted
/demos/branches/pj/tracer/small/test0.c
File deleted
/demos/branches/pj/tracer/readme
File deleted
/demos/branches/pj/tracer/makefile
File deleted
/demos/branches/pj/tracer/utils/util.c
File deleted
/demos/branches/pj/tracer/utils/udpdump.c
File deleted
/demos/branches/pj/tracer/utils/jdump.c
File deleted
/demos/branches/pj/tracer/utils/util.h
File deleted
/demos/branches/pj/tracer/utils/sa.c
File deleted
/demos/branches/pj/tracer/utils/wait.c
File deleted
/demos/branches/pj/tracer/utils/distr.c
File deleted
/demos/branches/pj/tracer/utils/road.c
File deleted
/demos/branches/pj/tracer/utils/types.h
File deleted
/demos/branches/pj/tracer/utils/tdump.c
File deleted
/demos/branches/pj/tracer/utils/readme
File deleted
/demos/branches/pj/tracer/utils/makefile
File deleted
/demos/branches/pj/makefile
File deleted
/demos/branches/pj/parport/initfile.c
File deleted
/demos/branches/pj/parport/ppdemo.c
File deleted
/demos/branches/pj/parport/readme.txt
File deleted
/demos/branches/pj/parport/makefile
File deleted
/demos/branches/pj/orbit/orbit.c
18,11 → 18,11
 
/*
------------
CVS : $Id: orbit.c,v 1.3 2003-01-07 17:10:17 pj Exp $
CVS : $Id: orbit.c,v 1.1.1.1 2002-09-02 09:37:45 pj Exp $
 
File: $File$
Revision: $Revision: 1.3 $
Last update: $Date: 2003-01-07 17:10:17 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:45 $
------------
*/
 
185,11 → 185,12
/* MAIN */
/*--------------------------------------------------------------*/
 
int main()
TASK main()
{
HARD_TASK_MODEL m;
char c; /* carattere letto da tastiera */
 
set_exchandler_grx();
sys_atrunlevel(my_fine, NULL, RUNLEVEL_BEFORE_EXIT);
 
sem_init(&mutex,0,1);
/demos/branches/pj/thdemo/demo.c
137,9 → 137,29
}
 
 
void demo_exc_handler(int signo, siginfo_t *info, void *extra)
{
struct timespec t;
 
grx_close();
 
/* Default action for an kern exception is */
kern_cli();
ll_gettime(TIME_EXACT, &t),
kern_printf("\nHartik Exception raised!!!"
"\nTime (s:ns) :%ld:%ld"
"\nException number:%d"
"\nPID :%d\n",
t.tv_sec, t.tv_nsec, info->si_value.sival_int,
info->si_task);
sys_end();
// ll_abort(5);
}
 
void my_close(void *arg)
{
grx_close();
// sys_status(3);
}
 
 
179,6 → 199,8
 
KEY_EVT k;
 
struct sigaction action;
 
srand(4);
 
version();
212,6 → 234,18
k.ascii = 13;
keyb_hook(k,endfun);
 
/* Init the standard Hartik exception handler */
/* Set the signal action */
action.sa_flags = SA_SIGINFO;
action.sa_sigaction = demo_exc_handler;
action.sa_handler = 0;
sigfillset(&action.sa_mask); /* we block all the other signals... */
 
if (sigaction(SIGHEXC, &action, NULL) == -1) {
perror("Error initializing signals...");
sys_end();
}
 
sys_atrunlevel(my_close, NULL, RUNLEVEL_BEFORE_EXIT);
 
 
/demos/branches/pj/thdemo/fftplay.c
619,6 → 619,7
void my_close(void *arg)
{
grx_close();
sys_status(3);
}
 
 
/demos/branches/pj/simcity/keyboard.c
46,4 → 46,4
k.scan = KEY_D;
k.ascii = 'd';
keyb_hook(k, sensor_switch);
}
}
/demos/branches/pj/simcity/include/simcity.h
2,7 → 2,7
// global variables and tasks bodies declaration
 
#include <kernel/func.h>
#include <semaphore.h>
#include <semaphor.h>
#ifndef CST
#include "constant.h"
#endif
/demos/branches/pj/simcity/include/keyfunct.h
7,4 → 7,4
void h_car_kill(KEY_EVT *);
void endfun(KEY_EVT *);
void refresh(KEY_EVT *);
void sensor_switch(KEY_EVT *);
void sensor_switch(KEY_EVT *);
/demos/branches/pj/simcity/initfile.c
77,7 → 77,10
 
HARTPORT_init();
 
kern_printf("TIME=%d\n",sys_gettime(NULL));
KEYB_init(NULL);
kern_printf("TIME=%d\n",sys_gettime(NULL));
KEYB_init(NULL);
 
__call_main__(mb);
 
/demos/branches/pj/simcity/car.c
172,4 → 172,4
set_spd=MAX_SPEED;
}
cd->speed=set_spd;
}
}
/demos/branches/pj/simcity/simcity.c
6,7 → 6,7
#include <drivers/keyb.h>
#include <drivers/glib.h>
#include <kernel/kern.h>
#include <semaphore.h>
#include <semaphor.h>
#include <math.h>
#include "include/constant.h"
#include "include/misc.h"
76,6 → 76,23
cprintf("Ferrari Fabio\n");
}
 
void demo_exc_handler(int signo, siginfo_t *info, void *extra)
{
struct timespec t;
 
grx_close();
/* Default action for an kern exception is */
kern_cli();
ll_gettime(TIME_EXACT, &t),
kern_printf("\nS.Ha.R.K. Exception raised!!!"
"\nTime (s:ns) :%d:%d"
"\nException number:%d"
"\nPID :%d\n",
t.tv_sec, t.tv_nsec, info->si_value.sival_int,
info->si_task);
sys_end();
}
 
void my_close(void *arg)
{
grx_close();
86,9 → 103,20
{
int i;
char tl_name[4];
struct sigaction action;
 
version();
 
/* Init the standard Hartik exception handler */
/* Set the signal action */
action.sa_flags = SA_SIGINFO;
action.sa_sigaction = demo_exc_handler;
action.sa_handler = 0;
sigfillset(&action.sa_mask); /* we block all the other signals... */
if (sigaction(SIGHEXC, &action, NULL) == -1) {
perror("Error initializing signals...");
sys_end();
}
sys_atrunlevel(my_close, NULL, RUNLEVEL_BEFORE_EXIT);
 
//resetting kill flags
/demos/branches/pj/simcity/tasks.c
5,7 → 5,7
#include <string.h>
#include <kernel/func.h>
#include <drivers/glib.h>
#include <semaphore.h>
#include <semaphor.h>
#include <math.h>
#include "include/simcity.h"
#include "include/states.h"
406,4 → 406,4
cd->xp=my_rint(cd->xpos);
cd->yp=my_rint(cd->ypos);
}
}
}
/demos/branches/pj/simcity/keyfunct.c
82,4 → 82,4
void sensor_switch(KEY_EVT *k) {
if(sens==0) sens=1;
else sens=0;
}
}
/demos/branches/pj/simcity/misc.c
212,4 → 212,4
break;
}
return min_tl;
}
}
/demos/branches/pj/edfact/edfact.c
18,11 → 18,11
 
/**
------------
CVS : $Id: edfact.c,v 1.4 2003-01-07 17:10:16 pj Exp $
CVS : $Id: edfact.c,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.4 $
Last update: $Date: 2003-01-07 17:10:16 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
**/
 
84,7 → 84,7
/*+ used to manage the JOB_TASK_MODEL and the
periodicity +*/
 
IQUEUE ready; /*+ the ready queue +*/
QUEUE ready; /*+ the ready queue +*/
 
int flags; /*+ the init flags... +*/
 
95,27 → 95,35
 
static void EDFACT_timer_deadline(void *par);
 
static void EDFACT_internal_activate(EDFACT_level_des *lev, PID p,
struct timespec *t)
static void EDFACT_internal_activate(EDFACT_level_des *lev, PID p)
{
struct timespec *temp;
TIMESPEC_ASSIGN(&proc_table[p].timespec_priority,
&proc_table[p].request_time);
ADDUSEC2TIMESPEC(lev->period[p], &proc_table[p].timespec_priority);
 
temp = iq_query_timespec(p, &lev->ready);
 
TIMESPEC_ASSIGN(temp,t);
ADDUSEC2TIMESPEC(lev->period[p], temp);
 
TIMESPEC_ASSIGN(&lev->deadline_timespec[p],
temp);
&proc_table[p].timespec_priority);
 
/* Insert task in the correct position */
proc_table[p].status = EDFACT_READY;
iq_timespec_insert(p,&lev->ready);
q_timespec_insert(p,&lev->ready);
 
/* needed because when there is a wcet miss I disable CONTROL_CAP */
proc_table[p].control |= CONTROL_CAP;
}
 
static char *EDFACT_status_to_a(WORD status)
{
if (status < MODULE_STATUS_BASE)
return status_to_a(status);
 
switch (status) {
case EDFACT_READY : return "EDFACT_Ready";
case EDFACT_IDLE : return "EDFACT_Idle";
default : return "EDFACT_Unknown";
}
}
 
static void EDFACT_timer_deadline(void *par)
{
PID p = (PID) par;
126,8 → 134,10
switch (proc_table[p].status) {
case EDFACT_IDLE:
edfact_printf("I%d",p);
TIMESPEC_ASSIGN(&proc_table[p].request_time,
&proc_table[p].timespec_priority);
 
EDFACT_internal_activate(lev,p, &lev->deadline_timespec[p]);
EDFACT_internal_activate(lev,p);
 
event_need_reschedule();
break;
159,17 → 169,93
kern_raise(XDEADLINE_MISS,p);
}
 
static int EDFACT_level_accept_task_model(LEVEL l, TASK_MODEL *m)
{
if (m->pclass == HARD_PCLASS || m->pclass == (HARD_PCLASS | l)) {
HARD_TASK_MODEL *h = (HARD_TASK_MODEL *)m;
 
if (h->wcet && h->mit && h->periodicity == PERIODIC)
return 0;
}
 
return -1;
}
 
static int EDFACT_level_accept_guest_model(LEVEL l, TASK_MODEL *m)
{
if (m->pclass == JOB_PCLASS || m->pclass == (JOB_PCLASS | l))
return 0;
else
return -1;
}
 
 
static char *onoff(int i)
{
if (i)
return "On ";
else
return "Off";
}
 
static void EDFACT_level_status(LEVEL l)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
PID p = lev->ready;
 
kern_printf("On-line guarantee : %s\n",
onoff(lev->flags & EDFACT_ENABLE_GUARANTEE));
kern_printf("Used Bandwidth : %u/%u\n",
lev->U, MAX_BANDWIDTH);
 
while (p != NIL) {
if ((proc_table[p].pclass) == JOB_PCLASS)
kern_printf("Pid: %2d (GUEST)\n", p);
else
kern_printf("Pid: %2d Name: %10s %s: %9d Dline: %9d.%6d Stat: %s\n",
p,
proc_table[p].name,
"Period ",
lev->period[p],
proc_table[p].timespec_priority.tv_sec,
proc_table[p].timespec_priority.tv_nsec/1000,
EDFACT_status_to_a(proc_table[p].status));
p = proc_table[p].next;
}
 
for (p=0; p<MAX_PROC; p++)
if (proc_table[p].task_level == l && proc_table[p].status != EDFACT_READY
&& proc_table[p].status != FREE )
kern_printf("Pid: %2d Name: %10s %s: %9d Dline: %9d.%6d Stat: %s\n",
p,
proc_table[p].name,
"Period ",
lev->period[p],
proc_table[p].timespec_priority.tv_sec,
proc_table[p].timespec_priority.tv_nsec/1000,
EDFACT_status_to_a(proc_table[p].status));
}
 
/* The scheduler only gets the first task in the queue */
static PID EDFACT_public_scheduler(LEVEL l)
static PID EDFACT_level_scheduler(LEVEL l)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
return iq_query_first(&lev->ready);
/* { // print 4 dbg the ready queue
PID p= lev->ready;
kern_printf("(s");
while (p != NIL) {
kern_printf("%d ",p);
p = proc_table[p].next;
}
kern_printf(") ");
}
*/
return (PID)lev->ready;
}
 
/* The on-line guarantee is enabled only if the appropriate flag is set... */
static int EDFACT_public_guarantee(LEVEL l, bandwidth_t *freebandwidth)
static int EDFACT_level_guarantee(LEVEL l, bandwidth_t *freebandwidth)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
187,17 → 273,14
 
}
 
static int EDFACT_public_create(LEVEL l, PID p, TASK_MODEL *m)
static int EDFACT_task_create(LEVEL l, PID p, TASK_MODEL *m)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
HARD_TASK_MODEL *h;
/* if the EDFACT_task_create is called, then the pclass must be a
valid pclass. */
 
if (m->pclass != HARD_PCLASS) return -1;
if (m->level != 0 && m->level != l) return -1;
h = (HARD_TASK_MODEL *)m;
if (!h->wcet || !h->mit || h->periodicity != PERIODIC) return -1;
/* now we know that m is a valid model */
HARD_TASK_MODEL *h = (HARD_TASK_MODEL *)m;
 
lev->period[p] = h->mit;
 
239,7 → 322,7
return 0; /* OK, also if the task cannot be guaranteed... */
}
 
static void EDFACT_public_detach(LEVEL l, PID p)
static void EDFACT_task_detach(LEVEL l, PID p)
{
/* the EDFACT level doesn't introduce any dinamic allocated new field.
we have only to reset the NO_GUARANTEE FIELD and decrement the allocated
253,17 → 336,22
lev->U -= (MAX_BANDWIDTH / lev->period[p]) * proc_table[p].wcet;
}
 
static void EDFACT_public_dispatch(LEVEL l, PID p, int nostop)
static int EDFACT_task_eligible(LEVEL l, PID p)
{
return 0; /* if the task p is chosen, it is always eligible */
}
 
static void EDFACT_task_dispatch(LEVEL l, PID p, int nostop)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* the task state is set EXE by the scheduler()
we extract the task from the ready queue
NB: we can't assume that p is the first task in the queue!!! */
iq_extract(p, &lev->ready);
q_extract(p, &lev->ready);
}
 
static void EDFACT_public_epilogue(LEVEL l, PID p)
static void EDFACT_task_epilogue(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
276,14 → 364,13
}
 
/* the task it returns into the ready queue... */
iq_timespec_insert(p,&lev->ready);
q_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
}
 
static void EDFACT_public_activate(LEVEL l, PID p)
static void EDFACT_task_activate(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
struct timespec t;
 
/* Test if we are trying to activate a non sleeping task */
/* save activation (only if needed... */
293,9 → 380,10
return;
}
 
kern_gettime(&t);
EDFACT_internal_activate(lev,p, &t);
ll_gettime(TIME_EXACT, &proc_table[p].request_time);
 
EDFACT_internal_activate(lev,p);
 
/* Set the deadline timer */
lev->deadline_timer[p] = kern_event_post(&lev->deadline_timespec[p],
EDFACT_timer_deadline,
303,24 → 391,24
 
}
 
static void EDFACT_public_unblock(LEVEL l, PID p)
static void EDFACT_task_insert(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* Insert task in the coEDFect position */
proc_table[p].status = EDFACT_READY;
iq_timespec_insert(p,&lev->ready);
q_timespec_insert(p,&lev->ready);
}
 
static void EDFACT_public_block(LEVEL l, PID p)
static void EDFACT_task_extract(LEVEL l, PID p)
{
}
 
static int EDFACT_public_message(LEVEL l, PID p, void *m)
static void EDFACT_task_endcycle(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
struct timespec t;
 
 
/* we reset the capacity counters... */
proc_table[p].avail_time = proc_table[p].wcet;
 
331,14 → 419,15
lev->nact[p]--;
 
/* see also EDFACT_timer_deadline */
kern_gettime(&t);
EDFACT_internal_activate(lev,p, &t);
ll_gettime(TIME_EXACT, &proc_table[p].request_time);
 
EDFACT_internal_activate(lev,p);
 
/* check if the deadline has already expired */
if (TIMESPEC_A_LT_B(iq_query_timespec(p, &lev->ready), &schedule_time)) {
if (TIMESPEC_A_LT_B(&proc_table[p].timespec_priority, &schedule_time)) {
/* count the deadline miss */
lev->dline_miss[p]++;
kern_event_delete(lev->deadline_timer[p]);
event_delete(lev->deadline_timer[p]);
}
 
}
349,16 → 438,11
proc_table[p].status = EDFACT_IDLE;
 
/* when the deadline timer fire, it recognize the situation and set
correctly all the stuffs (like reactivation, etc... ) */
correctly all the stuffs (like reactivation, request_time, etc... ) */
}
 
jet_update_endcycle(); /* Update the Jet data... */
trc_logevent(TRC_ENDCYCLE,&exec_shadow); /* tracer stuff */
 
return 0;
}
 
static void EDFACT_public_end(LEVEL l, PID p)
static void EDFACT_task_end(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
366,35 → 450,35
 
/* we finally put the task in the ready queue */
proc_table[p].status = FREE;
iq_insertfirst(p,&freedesc);
q_insertfirst(p,&freedesc);
/* and free the allocated bandwidth */
lev->U -= (MAX_BANDWIDTH/lev->period[p]) * proc_table[p].wcet;
 
if (lev->deadline_timer[p] != -1) {
edfact_printf("²%d",p);
kern_event_delete(lev->deadline_timer[p]);
event_delete(lev->deadline_timer[p]);
}
}
 
static void EDFACT_task_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_TASK,exec_shadow); }
 
static void EDFACT_task_delay(LEVEL l, PID p, TIME usdelay)
{ kern_raise(XUNVALID_TASK,exec_shadow); }
 
/* Guest Functions
These functions manages a JOB_TASK_MODEL, that is used to put
a guest task in the EDFACT ready queue. */
 
static void EDFACT_private_insert(LEVEL l, PID p, TASK_MODEL *m)
static int EDFACT_guest_create(LEVEL l, PID p, TASK_MODEL *m)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
JOB_TASK_MODEL *job = (JOB_TASK_MODEL *)m;
 
JOB_TASK_MODEL *job;
/* if the EDFACT_guest_create is called, then the pclass must be a
valid pclass. */
 
if (m->pclass != JOB_PCLASS || (m->level != 0 && m->level != l) ) {
kern_raise(XINVALID_TASK, p);
return;
}
 
job = (JOB_TASK_MODEL *)m;
 
TIMESPEC_ASSIGN(iq_query_timespec(p, &lev->ready), &job->deadline);
TIMESPEC_ASSIGN(&proc_table[p].timespec_priority, &job->deadline);
lev->deadline_timer[p] = -1;
lev->dline_miss[p] = 0;
403,50 → 487,83
 
if (job->noraiseexc)
lev->flag[p] = EDFACT_FLAG_NORAISEEXC;
else {
else
lev->flag[p] = 0;
lev->deadline_timer[p] = kern_event_post(iq_query_timespec(p, &lev->ready),
EDFACT_timer_guest_deadline,
(void *)p);
}
 
lev->period[p] = job->period;
 
/* Insert task in the correct position */
iq_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
 
/* there is no bandwidth guarantee at this level, it is performed
by the level that inserts guest tasks... */
 
return 0; /* OK, also if the task cannot be guaranteed... */
}
 
static void EDFACT_private_dispatch(LEVEL l, PID p, int nostop)
static void EDFACT_guest_detach(LEVEL l, PID p)
{
/* the EDFACT level doesn't introduce any dinamic allocated new field.
No guarantee is performed on guest tasks... so we don't have to reset
the NO_GUARANTEE FIELD */
}
 
static void EDFACT_guest_dispatch(LEVEL l, PID p, int nostop)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* the task state is set to EXE by the scheduler()
we extract the task from the ready queue
NB: we can't assume that p is the first task in the queue!!! */
iq_extract(p, &lev->ready);
q_extract(p, &lev->ready);
}
 
static void EDFACT_private_epilogue(LEVEL l, PID p)
static void EDFACT_guest_epilogue(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* the task has been preempted. it returns into the ready queue... */
iq_timespec_insert(p,&lev->ready);
q_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
}
 
static void EDFACT_private_extract(LEVEL l, PID p)
static void EDFACT_guest_activate(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* Insert task in the correct position */
q_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
 
/* Set the deadline timer */
if (!(lev->flag[p] & EDFACT_FLAG_NORAISEEXC))
lev->deadline_timer[p] = kern_event_post(&proc_table[p].timespec_priority,
EDFACT_timer_guest_deadline,
(void *)p);
 
}
 
static void EDFACT_guest_insert(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* Insert task in the correct position */
q_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
}
 
static void EDFACT_guest_extract(LEVEL l, PID p)
{
}
 
static void EDFACT_guest_endcycle(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void EDFACT_guest_end(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
//kern_printf("EDFACT_guest_end: dline timer %d\n",lev->deadline_timer[p]);
if (proc_table[p].status == EDFACT_READY)
{
iq_extract(p, &lev->ready);
q_extract(p, &lev->ready);
//kern_printf("(g_end rdy extr)");
}
 
453,17 → 570,23
/* we remove the deadline timer, because the slice is finished */
if (lev->deadline_timer[p] != NIL) {
// kern_printf("EDFACT_guest_end: dline timer %d\n",lev->deadline_timer[p]);
kern_event_delete(lev->deadline_timer[p]);
event_delete(lev->deadline_timer[p]);
lev->deadline_timer[p] = NIL;
}
 
}
 
static void EDFACT_guest_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void EDFACT_guest_delay(LEVEL l, PID p, TIME usdelay)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
/* Registration functions */
 
/*+ Registration function:
int flags the init flags ... see EDFACT.h +*/
LEVEL EDFACT_register_level(int flags)
void EDFACT_register_level(int flags)
{
LEVEL l; /* the level that we register */
EDFACT_level_des *lev; /* for readableness only */
472,33 → 595,58
printk("EDFACT_register_level\n");
 
/* request an entry in the level_table */
l = level_alloc_descriptor(sizeof(EDFACT_level_des));
l = level_alloc_descriptor();
 
lev = (EDFACT_level_des *)level_table[l];
printk(" alloco descrittore %d %d\n",l,(int)sizeof(EDFACT_level_des));
 
/* alloc the space needed for the EDFACT_level_des */
lev = (EDFACT_level_des *)kern_alloc(sizeof(EDFACT_level_des));
 
printk(" lev=%d\n",(int)lev);
 
/* update the level_table with the new entry */
level_table[l] = (level_des *)lev;
 
/* fill the standard descriptor */
lev->l.private_insert = EDFACT_private_insert;
lev->l.private_extract = EDFACT_private_extract;
lev->l.private_dispatch = EDFACT_private_dispatch;
lev->l.private_epilogue = EDFACT_private_epilogue;
strncpy(lev->l.level_name, EDFACT_LEVELNAME, MAX_LEVELNAME);
lev->l.level_code = EDFACT_LEVEL_CODE;
lev->l.level_version = EDFACT_LEVEL_VERSION;
 
lev->l.public_scheduler = EDFACT_public_scheduler;
lev->l.level_accept_task_model = EDFACT_level_accept_task_model;
lev->l.level_accept_guest_model = EDFACT_level_accept_guest_model;
lev->l.level_status = EDFACT_level_status;
lev->l.level_scheduler = EDFACT_level_scheduler;
 
if (flags & EDFACT_ENABLE_GUARANTEE)
lev->l.public_guarantee = EDFACT_public_guarantee;
lev->l.level_guarantee = EDFACT_level_guarantee;
else
lev->l.public_guarantee = NULL;
lev->l.public_create = EDFACT_public_create;
lev->l.public_detach = EDFACT_public_detach;
lev->l.public_end = EDFACT_public_end;
lev->l.public_dispatch = EDFACT_public_dispatch;
lev->l.public_epilogue = EDFACT_public_epilogue;
lev->l.public_activate = EDFACT_public_activate;
lev->l.public_unblock = EDFACT_public_unblock;
lev->l.public_block = EDFACT_public_block;
lev->l.public_message = EDFACT_public_message;
lev->l.level_guarantee = NULL;
 
lev->l.task_create = EDFACT_task_create;
lev->l.task_detach = EDFACT_task_detach;
lev->l.task_eligible = EDFACT_task_eligible;
lev->l.task_dispatch = EDFACT_task_dispatch;
lev->l.task_epilogue = EDFACT_task_epilogue;
lev->l.task_activate = EDFACT_task_activate;
lev->l.task_insert = EDFACT_task_insert;
lev->l.task_extract = EDFACT_task_extract;
lev->l.task_endcycle = EDFACT_task_endcycle;
lev->l.task_end = EDFACT_task_end;
lev->l.task_sleep = EDFACT_task_sleep;
lev->l.task_delay = EDFACT_task_delay;
 
lev->l.guest_create = EDFACT_guest_create;
lev->l.guest_detach = EDFACT_guest_detach;
lev->l.guest_dispatch = EDFACT_guest_dispatch;
lev->l.guest_epilogue = EDFACT_guest_epilogue;
lev->l.guest_activate = EDFACT_guest_activate;
lev->l.guest_insert = EDFACT_guest_insert;
lev->l.guest_extract = EDFACT_guest_extract;
lev->l.guest_endcycle = EDFACT_guest_endcycle;
lev->l.guest_end = EDFACT_guest_end;
lev->l.guest_sleep = EDFACT_guest_sleep;
lev->l.guest_delay = EDFACT_guest_delay;
 
/* fill the EDFACT descriptor part */
for(i=0; i<MAX_PROC; i++) {
lev->period[i] = 0;
509,18 → 657,19
lev->nact[i] = 0;
}
 
iq_init(&lev->ready,&freedesc, 0);
lev->ready = NIL;
lev->flags = flags & 0x07;
lev->U = 0;
 
return l;
}
 
bandwidth_t EDFACT_usedbandwidth(LEVEL l)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
return lev->U;
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
return lev->U;
else
return 0;
}
 
int EDFACT_get_dline_miss(PID p)
527,8 → 676,11
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
return lev->dline_miss[p];
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
return lev->dline_miss[p];
else
return -1;
}
 
int EDFACT_get_wcet_miss(PID p)
535,8 → 687,11
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
return lev->wcet_miss[p];
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
return lev->wcet_miss[p];
else
return -1;
}
 
int EDFACT_get_nact(PID p)
543,8 → 698,11
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
return lev->nact[p];
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
return lev->nact[p];
else
return -1;
}
 
int EDFACT_reset_dline_miss(PID p)
551,9 → 709,14
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
lev->dline_miss[p] = 0;
return 0;
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
{
lev->dline_miss[p] = 0;
return 0;
}
else
return -1;
}
 
int EDFACT_reset_wcet_miss(PID p)
560,8 → 723,13
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
lev->wcet_miss[p] = 0;
return 0;
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
{
lev->wcet_miss[p] = 0;
return 0;
}
else
return -1;
}
 
/demos/branches/pj/edfact/edfact.h
20,11 → 20,11
 
/**
------------
CVS : $Id: edfact.h,v 1.2 2003-01-07 17:10:16 pj Exp $
CVS : $Id: edfact.h,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2003-01-07 17:10:16 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
 
This file contains the server EDFACT (EDF with pending activations)
103,6 → 103,7
#include <kernel/config.h>
#include <sys/types.h>
#include <kernel/types.h>
#include <modules/codes.h>
 
 
 
131,10 → 132,8
 
/*+ Registration function:
int flags Options to be used in this level instance...
 
returns the level number at which the module has been registered.
+*/
LEVEL EDFACT_register_level(int flags);
void EDFACT_register_level(int flags);
 
/*+ Returns the used bandwidth of a level +*/
bandwidth_t EDFACT_usedbandwidth(LEVEL l);
/demos/branches/pj/myapp/initfile.c
0,0 → 1,66
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "mymod.h"
#include "modules/dummy.h"
 
/*+ sysyem tick in us +*/
#define TICK 300
 
TIME __kernel_register_levels__(void *arg)
{
struct multiboot_info *mb = (struct multiboot_info *)arg;
 
MYMOD_register_level(120);
dummy_register_level();
 
// periodic timer
return TICK;
// one-shot timer
// return 0
}
 
TASK __init__(void *arg)
{
struct multiboot_info *mb = (struct multiboot_info *)arg;
 
__call_main__(mb);
 
return (void *)0;
}
 
 
 
/demos/branches/pj/myapp/mymod.c
0,0 → 1,270
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
 
#include "mymod.h"
#include <ll/string.h>
#include <kernel/model.h>
#include <kernel/descr.h>
#include <kernel/var.h>
#include <kernel/func.h>
 
// other include files if needed
 
// NOTE: NO GLOBAL OR STATIC VARIABLES!!!
// (put them inside the level descriptor!)
 
/* Statuses used in the level */
#define MYMOD_READY MODULE_STATUS_BASE
#define MYMOD_WAIT MODULE_STATUS_BASE+3
#define MYMOD_IDLE MODULE_STATUS_BASE+4
 
/* the level redefinition for the Module */
typedef struct {
level_des l; /* the standard level descriptor */
 
int myvar[100]; /* other local (private) variables of the module */
 
} MYMOD_level_des;
 
// example of OSLib event
static void MYMOD_timer_deadline(void *par)
{
// usually the void *par is a pointer to a structure or a PID
// if it is a PID, you can do that to retrieve it and the correspondent
// level descriptor
PID p = (PID) par;
MYMOD_level_des *lev;
 
lev = (MYMOD_level_des *)level_table[proc_table[p].task_level];
 
// now you know the PID of the task and the level descriptor
// ... so, you know all the things you need
}
 
static int MYMOD_level_accept_task_model(LEVEL l, TASK_MODEL *m)
{
// your code here
return 0; // dummy number
}
 
static int MYMOD_level_accept_guest_model(LEVEL l, TASK_MODEL *m)
{
// your code here
return 0; // dummy number
}
 
static void MYMOD_level_status(LEVEL l)
{
}
 
/* The scheduler only gets the first task in the queue */
static PID MYMOD_level_scheduler(LEVEL l)
{
return 0; // dummy number
}
 
/* The on-line guarantee is enabled only if the appropriate flag is set... */
static int MYMOD_level_guarantee(LEVEL l, bandwidth_t *freebandwidth)
{
return 0; // dummy number
}
 
static int MYMOD_task_create(LEVEL l, PID p, TASK_MODEL *m)
{
return 0; // dummy number
}
 
static void MYMOD_task_detach(LEVEL l, PID p)
{
}
 
static int MYMOD_task_eligible(LEVEL l, PID p)
{
return 0; // dummy number
}
 
static void MYMOD_task_dispatch(LEVEL l, PID p, int nostop)
{
}
 
static void MYMOD_task_epilogue(LEVEL l, PID p)
{
}
 
static void MYMOD_task_activate(LEVEL l, PID p)
{
}
 
static void MYMOD_task_insert(LEVEL l, PID p)
{
}
 
static void MYMOD_task_extract(LEVEL l, PID p)
{
}
 
static void MYMOD_task_endcycle(LEVEL l, PID p)
{
}
 
static void MYMOD_task_end(LEVEL l, PID p)
{
}
 
static void MYMOD_task_sleep(LEVEL l, PID p)
{
}
 
static void MYMOD_task_delay(LEVEL l, PID p, TIME usdelay)
{
}
 
static int MYMOD_guest_create(LEVEL l, PID p, TASK_MODEL *m)
{
return 0; // dummy number
}
 
static void MYMOD_guest_detach(LEVEL l, PID p)
{
}
 
static void MYMOD_guest_dispatch(LEVEL l, PID p, int nostop)
{
}
 
static void MYMOD_guest_epilogue(LEVEL l, PID p)
{
}
 
static void MYMOD_guest_activate(LEVEL l, PID p)
{
}
 
static void MYMOD_guest_insert(LEVEL l, PID p)
{
}
 
static void MYMOD_guest_extract(LEVEL l, PID p)
{
}
 
static void MYMOD_guest_endcycle(LEVEL l, PID p)
{
}
 
static void MYMOD_guest_end(LEVEL l, PID p)
{
}
 
static void MYMOD_guest_sleep(LEVEL l, PID p)
{
}
 
static void MYMOD_guest_delay(LEVEL l, PID p, TIME usdelay)
{
}
 
 
 
 
/* Registration functions */
 
/*+ Registration function:
int flags the init flags ... see MYMOD.h +*/
void MYMOD_register_level(int flags)
{
LEVEL l; /* the level that we register */
MYMOD_level_des *lev; /* for readableness only */
PID i; /* a counter */
 
/* request an entry in the level_table */
l = level_alloc_descriptor();
 
/* alloc the space needed for the MYMOD_level_des */
lev = (MYMOD_level_des *)kern_alloc(sizeof(MYMOD_level_des));
 
/* update the level_table with the new entry */
level_table[l] = (level_des *)lev;
 
/* fill the standard descriptor */
strncpy(lev->l.level_name, MYMOD_LEVELNAME, MAX_LEVELNAME);
lev->l.level_code = MYMOD_LEVEL_CODE;
lev->l.level_version = MYMOD_LEVEL_VERSION;
 
lev->l.level_accept_task_model = MYMOD_level_accept_task_model;
lev->l.level_accept_guest_model = MYMOD_level_accept_guest_model;
lev->l.level_status = MYMOD_level_status;
lev->l.level_scheduler = MYMOD_level_scheduler;
lev->l.level_guarantee = MYMOD_level_guarantee;
 
lev->l.task_create = MYMOD_task_create;
lev->l.task_detach = MYMOD_task_detach;
lev->l.task_eligible = MYMOD_task_eligible;
lev->l.task_dispatch = MYMOD_task_dispatch;
lev->l.task_epilogue = MYMOD_task_epilogue;
lev->l.task_activate = MYMOD_task_activate;
lev->l.task_insert = MYMOD_task_insert;
lev->l.task_extract = MYMOD_task_extract;
lev->l.task_endcycle = MYMOD_task_endcycle;
lev->l.task_end = MYMOD_task_end;
lev->l.task_sleep = MYMOD_task_sleep;
lev->l.task_delay = MYMOD_task_delay;
 
lev->l.guest_create = MYMOD_guest_create;
lev->l.guest_detach = MYMOD_guest_detach;
lev->l.guest_dispatch = MYMOD_guest_dispatch;
lev->l.guest_epilogue = MYMOD_guest_epilogue;
lev->l.guest_activate = MYMOD_guest_activate;
lev->l.guest_insert = MYMOD_guest_insert;
lev->l.guest_extract = MYMOD_guest_extract;
lev->l.guest_endcycle = MYMOD_guest_endcycle;
lev->l.guest_end = MYMOD_guest_end;
lev->l.guest_sleep = MYMOD_guest_sleep;
lev->l.guest_delay = MYMOD_guest_delay;
 
/* fill the MYMOD descriptor part */
for (i=0; i<100; i++)
lev->myvar[i] = 0;
}
 
// put here the other interface functions added
 
 
 
 
 
 
 
/demos/branches/pj/myapp/myapp.c
0,0 → 1,55
/*
* Project: S.Ha.R.K.
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
// if you want to use some functions, types, task models provided
// by your new module
 
#include "mymod.h"
 
// then, include any file you want here
 
// then, the classic C-style function
int main(int argc, char **argv)
{
// ... your stuff here
return 0;
}
 
 
 
 
 
 
 
 
/demos/branches/pj/myapp/readme.txt
0,0 → 1,7
This is a template application, and it DOES NOTHING!!!
 
This is only an example package.
 
Please refer to the How To Compile reference guide for more informations.
 
Paolo
/demos/branches/pj/myapp/mymod.h
0,0 → 1,113
/*
* Project: S.Ha.R.K.
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* put here a description of the module */
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
 
 
#ifndef __MYMOD_H__
#define __MYMOD_H__
 
#include <kernel/model.h>
// maybe you need here some include file
 
// then... we define a new Task Model without modifying
// the standard kernel distribution
 
// pick a pclass number not used into include/kernel/model.h
#define MY_PCLASS 0x0700
 
/*
maybe a description of the new fields of the Model is useful here
*/
 
typedef struct {
TASK_MODEL t;
int myparameter;
} MY_TASK_MODEL;
 
#define my_task_default_model(m) \
task_default_model((m).t,MY_PCLASS), \
(m).myparameter = 0
#define my_task_def_level(m,l) task_def_level((m).t,l)
#define my_task_def_arg(m,a) task_def_arg((m).t,a)
#define my_task_def_stack(m,s) task_def_stack((m).t,s)
#define my_task_def_stackaddr(m,s) task_def_stackaddr((m).t,s)
#define my_task_def_group(m,g) task_def_group((m).t,g)
#define my_task_def_usemath(m) task_def_usemath((m).t)
#define my_task_def_system(m) task_def_system((m).t)
#define my_task_def_nokill(m) task_def_nokill((m).t)
#define my_task_def_ctrl_jet(m) task_def_ctrl_jet((m).t)
#define my_task_def_myparameter(m,p) (m).myparameter = (p)
#define my_task_def_joinable(m) task_def_joinable((m).t)
#define my_task_def_unjoinable(m) task_def_unjoinable((m).t)
#define my_task_def_trace(m) task_def_trace((m).t)
#define my_task_def_notrace(m) task_def_notrace((m).t)
 
// pick a code and a version not used into the file include/modules/codes.h
#define MYMOD_LEVELNAME "My new scheduling module"
#define MYMOD_LEVEL_CODE 999
#define MYMOD_LEVEL_VERSION 1
 
// if the module raises some new exception list them here
// pincking up unused numbers from include/bits/errno.h
 
/*+ Registration function:
int parameter Options to be used in this level instance... +*/
void MYMOD_register_level(int parameter);
 
/* here you can also put some other functions similar for example
to the EDF_usedbandwidth() in the file include/modules/edf.h */
 
#endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/demos/branches/pj/myapp/makefile
0,0 → 1,16
#
#
#
 
ifndef BASE
BASE=..
endif
include $(BASE)/config/config.mk
 
PROGS= myapp
 
include $(BASE)/config/example.mk
 
myapp:
make -f $(SUBMAKE) APP=myapp INIT= OTHEROBJS="initfile.o mymod.o"
 
/demos/branches/pj/static/static.c
18,11 → 18,11
 
/**
------------
CVS : $Id: static.c,v 1.4 2003-01-07 17:10:18 pj Exp $
CVS : $Id: static.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.4 $
Last update: $Date: 2003-01-07 17:10:18 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
**/
 
68,7 → 68,7
typedef struct {
level_des l; /*+ the standard level descriptor +*/
 
IQUEUE mytable;
QUEUE mytable;
 
PID currenttask;
 
87,7 → 87,7
lev->currenttask = p;
event_need_reschedule();
 
// STATIC_printf("(o p%d t%d)", p, (int)proc_table[p].timespec_priority.tv_sec);
STATIC_printf("(o p%d t%d)", p, (int)proc_table[p].timespec_priority.tv_sec);
}
 
static void STATIC_activateall(STATIC_level_des *lev)
97,15 → 97,15
 
STATIC_printf("(A ");
 
for (my_table_index = iq_query_first(&lev->mytable);
for (my_table_index = (PID)lev->mytable;
my_table_index != NIL;
my_table_index = iq_query_next(my_table_index, &lev->mytable)) {
ADDTIMESPEC(&lev->ref,iq_query_timespec(my_table_index, &lev->mytable),&x);
my_table_index = proc_table[my_table_index].next) {
ADDTIMESPEC(&lev->ref,&proc_table[my_table_index].timespec_priority,&x);
kern_event_post(&x, STATIC_offset_activate,(void *)my_table_index);
 
STATIC_printf("|p%d t%d ",
my_table_index,
(int)iq_query_timespec(my_table_index, &lev->mytable)->tv_sec);
(int)proc_table[my_table_index].timespec_priority.tv_sec);
}
 
STATIC_printf(")");
130,8 → 130,26
}
 
 
static int STATIC_level_accept_task_model(LEVEL l, TASK_MODEL *m)
{
if (m->pclass == STATIC_PCLASS || m->pclass == (STATIC_PCLASS | l))
return 0;
 
return -1;
}
 
static int STATIC_level_accept_guest_model(LEVEL l, TASK_MODEL *m)
{
return -1;
}
 
 
 
static void STATIC_level_status(LEVEL l)
{ kern_raise(XUNVALID_TASK,exec_shadow); }
 
/* The scheduler only gets the first task in the queue */
static PID STATIC_public_scheduler(LEVEL l)
static PID STATIC_level_scheduler(LEVEL l)
{
STATIC_level_des *lev = (STATIC_level_des *)(level_table[l]);
 
138,8 → 156,14
return lev->currenttask;
}
 
static int STATIC_public_create(LEVEL l, PID p, TASK_MODEL *m)
/* The on-line guarantee is enabled only if the appropriate flag is set... */
static int STATIC_level_guarantee(LEVEL l, bandwidth_t *freebandwidth)
{
return 1;
}
 
static int STATIC_task_create(LEVEL l, PID p, TASK_MODEL *m)
{
STATIC_level_des *lev = (STATIC_level_des *)(level_table[l]);
 
/* if the STATIC_task_create is called, then the pclass must be a
147,66 → 171,110
 
STATIC_TASK_MODEL *h = (STATIC_TASK_MODEL *)m;
 
if (m->pclass != STATIC_PCLASS) return -1;
if (m->level != 0 && m->level != l) return -1;
iq_query_timespec(p, &lev->mytable)->tv_sec = h->offset.tv_sec;
iq_query_timespec(p, &lev->mytable)->tv_nsec = h->offset.tv_nsec;
iq_timespec_insert(p,&lev->mytable);
proc_table[p].timespec_priority.tv_sec = h->offset.tv_sec;
proc_table[p].timespec_priority.tv_nsec = h->offset.tv_nsec;
q_timespec_insert(p,&lev->mytable);
 
return 0; /* OK, also if the task cannot be guaranteed... */
}
 
static void STATIC_public_dispatch(LEVEL l, PID p, int nostop)
static void STATIC_task_detach(LEVEL l, PID p)
{
}
 
static void STATIC_public_epilogue(LEVEL l, PID p)
static int STATIC_task_eligible(LEVEL l, PID p)
{
return 0; /* if the task p is chosen, it is always eligible */
}
 
static void STATIC_public_activate(LEVEL l, PID p)
static void STATIC_task_dispatch(LEVEL l, PID p, int nostop)
{
}
 
static void STATIC_public_unblock(LEVEL l, PID p)
static void STATIC_task_epilogue(LEVEL l, PID p)
{
}
 
static void STATIC_public_block(LEVEL l, PID p)
static void STATIC_task_activate(LEVEL l, PID p)
{
}
 
static int STATIC_public_message(LEVEL l, PID p, void *m)
static void STATIC_task_insert(LEVEL l, PID p)
{
}
 
static void STATIC_task_extract(LEVEL l, PID p)
{
}
 
static void STATIC_task_endcycle(LEVEL l, PID p)
{
STATIC_level_des *lev = (STATIC_level_des *)(level_table[l]);
 
lev->currenttask = NIL;
 
jet_update_endcycle(); /* Update the Jet data... */
trc_logevent(TRC_ENDCYCLE,&exec_shadow); /* tracer stuff */
 
return 0;
}
 
static void STATIC_public_end(LEVEL l, PID p)
static void STATIC_task_end(LEVEL l, PID p)
{
STATIC_level_des *lev = (STATIC_level_des *)(level_table[l]);
 
lev->currenttask = NIL;
 
iq_extract(p,&lev->mytable);
q_extract(p,&lev->mytable);
 
/* we finally put the task in the ready queue */
proc_table[p].status = FREE;
iq_insertfirst(p,&freedesc);
q_insertfirst(p,&freedesc);
}
 
static void STATIC_task_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_TASK,exec_shadow); }
 
static void STATIC_task_delay(LEVEL l, PID p, TIME usdelay)
{ kern_raise(XUNVALID_TASK,exec_shadow); }
 
/* Guest Functions
These functions manages a JOB_TASK_MODEL, that is used to put
a guest task in the STATIC ready queue. */
 
static int STATIC_guest_create(LEVEL l, PID p, TASK_MODEL *m)
{ kern_raise(XUNVALID_GUEST,exec_shadow); return 0; }
 
static void STATIC_guest_detach(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_dispatch(LEVEL l, PID p, int nostop)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_epilogue(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_activate(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_insert(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_extract(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_endcycle(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_end(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void STATIC_guest_delay(LEVEL l, PID p, TIME usdelay)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
/* Registration functions */
 
/*+ Registration function:
int flags the init flags ... see STATIC.h +*/
LEVEL STATIC_register_level()
void STATIC_register_level()
{
LEVEL l; /* the level that we register */
STATIC_level_des *lev; /* for readableness only */
214,32 → 282,62
printk("STATIC_register_level\n");
 
/* request an entry in the level_table */
l = level_alloc_descriptor(sizeof(STATIC_level_des));
l = level_alloc_descriptor();
 
lev = (STATIC_level_des *)level_table[l];
printk(" alloco descrittore %d %d\n",l,(int)sizeof(STATIC_level_des));
 
/* alloc the space needed for the STATIC_level_des */
lev = (STATIC_level_des *)kern_alloc(sizeof(STATIC_level_des));
 
printk(" lev=%d\n",(int)lev);
 
/* update the level_table with the new entry */
level_table[l] = (level_des *)lev;
 
/* fill the standard descriptor */
lev->l.public_scheduler = STATIC_public_scheduler;
lev->l.public_create = STATIC_public_create;
lev->l.public_end = STATIC_public_end;
lev->l.public_dispatch = STATIC_public_dispatch;
lev->l.public_epilogue = STATIC_public_epilogue;
lev->l.public_activate = STATIC_public_activate;
lev->l.public_unblock = STATIC_public_unblock;
lev->l.public_block = STATIC_public_block;
lev->l.public_message = STATIC_public_message;
strncpy(lev->l.level_name, STATIC_LEVELNAME, MAX_LEVELNAME);
lev->l.level_code = STATIC_LEVEL_CODE;
lev->l.level_version = STATIC_LEVEL_VERSION;
 
lev->l.level_accept_task_model = STATIC_level_accept_task_model;
lev->l.level_accept_guest_model = STATIC_level_accept_guest_model;
lev->l.level_status = STATIC_level_status;
lev->l.level_scheduler = STATIC_level_scheduler;
 
lev->l.level_guarantee = NULL;
 
lev->l.task_create = STATIC_task_create;
lev->l.task_detach = STATIC_task_detach;
lev->l.task_eligible = STATIC_task_eligible;
lev->l.task_dispatch = STATIC_task_dispatch;
lev->l.task_epilogue = STATIC_task_epilogue;
lev->l.task_activate = STATIC_task_activate;
lev->l.task_insert = STATIC_task_insert;
lev->l.task_extract = STATIC_task_extract;
lev->l.task_endcycle = STATIC_task_endcycle;
lev->l.task_end = STATIC_task_end;
lev->l.task_sleep = STATIC_task_sleep;
lev->l.task_delay = STATIC_task_delay;
 
lev->l.guest_create = STATIC_guest_create;
lev->l.guest_detach = STATIC_guest_detach;
lev->l.guest_dispatch = STATIC_guest_dispatch;
lev->l.guest_epilogue = STATIC_guest_epilogue;
lev->l.guest_activate = STATIC_guest_activate;
lev->l.guest_insert = STATIC_guest_insert;
lev->l.guest_extract = STATIC_guest_extract;
lev->l.guest_endcycle = STATIC_guest_endcycle;
lev->l.guest_end = STATIC_guest_end;
lev->l.guest_sleep = STATIC_guest_sleep;
lev->l.guest_delay = STATIC_guest_delay;
 
/* fill the STATIC descriptor part */
 
iq_init(&lev->mytable, &freedesc, 0);
lev->mytable = NIL;
lev->currenttask = NIL;
 
NULL_TIMESPEC(&lev->hp);
NULL_TIMESPEC(&lev->ref);
 
return l;
}
 
void STATIC_start(LEVEL l, struct timespec *h, struct timespec *o)
248,7 → 346,7
struct timespec x;
 
kern_cli();
kern_gettime(&x);
ll_gettime(TIME_EXACT, &x);
lev->hp = *h;
 
ADDTIMESPEC(&x,o,&lev->ref);
/demos/branches/pj/static/test1st.c
16,11 → 16,11
 
/**
------------
CVS : $Id: test1st.c,v 1.2 2002-11-11 07:55:13 pj Exp $
CVS : $Id: test1st.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2002-11-11 07:55:13 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
 
78,7 → 78,7
 
STATIC_TASK_MODEL m;
 
struct timespec my_time, h, o;
struct timespec my_time, h, o, fineprg;
 
my_time.tv_nsec=0;
 
/demos/branches/pj/static/static.h
20,11 → 20,11
 
/**
------------
CVS : $Id: static.h,v 1.2 2003-01-07 17:10:18 pj Exp $
CVS : $Id: static.h,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2003-01-07 17:10:18 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Static scheduler demo (FIRST Project Hand-off)
58,6 → 58,7
#include <kernel/config.h>
#include <sys/types.h>
#include <kernel/types.h>
#include <modules/codes.h>
 
 
 
80,6 → 81,10
#define STATIC_LEVEL_VERSION 1
 
 
/* -----------------------------------------------------------------------
ELASTIC_HARD_TASK_MODEL: elastic hard Tasks
----------------------------------------------------------------------- */
 
typedef struct {
TASK_MODEL t;
109,7 → 114,7
/*+ Registration function:
int flags Options to be used in this level instance...
+*/
LEVEL STATIC_register_level(void);
void STATIC_register_level(void);
 
void STATIC_start(LEVEL l, struct timespec *h, struct timespec *o);
 
/demos/branches/pj/pse51/ptest1
0,0 → 1,426
+vìƒì h1#èŸæƒÄjjèWXƒÄƒì jèb=ƒÄ=vìƒì h@1#èoæƒÄjh,jjèÀZƒÄƒì jè*=ƒÄ=ÿ4 vìƒì h2#è7æƒÄÿuÔèTOÇ$/2#è 渃ÄÉÉöU‰åƒìhà.#èæEü‰$è…kƒÄjEüPèŸkƒÄEøPEüPèClƒÄ ÿuøPh/#èÊ布ÄÉÃU‰åƒì4h@/#è°åEä‰$è1kƒÄjEäPèKkƒÄEèPEäPè7lƒÄÿuðÿuìÿuèPh€/#èpå¸ƒÄ ÉÉöU‰åƒì4hÀ/#èTåEä‰$èÕjƒÄjEäPèïjÇE؍EØÇ@£áƒÄ PEèPEäPèákƒÄÿuðÿuìÿuèPh0#èå¸ƒÄ ÉÃU‰åƒìh@0#èèäƒÄÉÍvU‰åVSƒì<h€0#èÎäEԉ$èOjƒÄjEÔPèijÇEÈ
+uÈÇFÇEØÐ"ÇEÜÇ$èª=‰Ã‹‰EàE؉ƒÄ VEèPEÔPè5k‹Uà‰ƒÄÿuðÿuìÿuèPhÀ0#èQä¸ƒÄ eø[^]ÉöU‰åƒìèÁ:ÉÍvU‰åƒìj ÿujh'èMè‰è‡¬è¶²è1™ƒÄ jjjèÿLèîv¸èƒÄÉÃU‰åWVSƒìX‹]}¨¾ü[#ü¹ó¥E¸‰E¨fÇE¸ÇE¼ÇEÀfÇEÄÇEÐÇEÔÇEÜÇEà‰]ÈÇEØÇEÌjè8L‰EÐÇEÜÇEàƒMÌ
+è֜E¨‰$ècƒÄ…Àyƒì h@2#è»ãƒÄƒì SèoE¸ƒÄeô[^_]ÍvU‰åƒìŠU€= ]#„¶€ú*t€úªt
+]#éTþÿÿv€út€ú¸uÆ]#é;þÿÿ‰ö¸„҈рúRt2€úOt-€úSt(€úPt#€úQt€úKt€úLt€úMt€úGt
+]#t¶Âf¾€ ˆ#·Àë-v€=]#t¶Âf¾€Àˆ#·Àëv¶Âf¾€€‡#·ÀÉÃU‰åWVSƒì,}؃ìjE×PèòƒÄ…À„¡ƒì ¶E×Pèöüÿÿ‰ÂƒÄf…Ò„†÷Âÿt  ]#ƒÈ@ë‰ö ]#ˆE؈UيE׈EÚ±»;x‡#}8¾‡#v݊D2:EÚuŠ2:EØuƒì Wÿ’‡#±ƒÄC;x‡#|ЄÉuƒìjW¿B‰#Pèý¡ƒÄè-é<ÿÿÿU‰å‹E£]#Šˆ‚‡#ŠPˆƒ‡#ŠPˆ„‡#ŠPˆ…‡#ŠPˆ†‡#ŠPˆ‡‡#ŠPˆˆ‡#ŠPˆ‰‡#ŠPˆŠ‡#ŠP ˆ‹‡#ŠP
+ˆ%ˆ#ŠPˆ&ˆ#ŠPˆ'ˆ#ŠPˆ(ˆ#ŠPˆ)ˆ#ŠPˆ*ˆ#ŠPˆ+ˆ#ŠPˆŒ‡#ŠPˆ,ˆ#ŠPˆ‡#ŠPˆ-ˆ#ŠPˆš‡#ŠPˆ:ˆ#ŠPˆ›‡#ŠPˆ;ˆ#ŠPˆ§‡#ŠPˆGˆ#ŠPˆ¨‡#ŠPˆHˆ#ŠP ˆ©‡#ŠP!ˆIˆ#ŠP"ˆµ‡#ŠP#ˆUˆ#ŠP$ˆ³‡#ŠP%ˆSˆ#ŠP&ˆ´‡#ŠP'ˆTˆ#ŠP(ˆ«‡#ŠP)ˆKˆ#ŠP*ˆ¹‡#ŠP+ˆYˆ#ŠP,ˆŽ‡#ŠP-ˆ.ˆ#ŠP.ˆ‡#ŠÖˆ/ˆ#ŠP0ˆ‡#ŠP1ˆ!ˆ#ŠP2ˆœ‡#ŠP3ˆ<ˆ#ŠP4ˆ„ˆ#ŠP5ˆoˆ#ŠP6ˆpˆ#ŠP7ˆqˆ#ŠP8ˆkˆ#ŠP9ˆlˆ#ŠP:ˆmˆ#ŠP;ˆgˆ#ŠP<ˆhˆ#ŠP=ˆiˆ#ŠP>ˆrˆ#ŠP?ˆsˆ#ŠP@ˆ·#ŠPAˆ·‡#ŠPBˆµ‡#ŠPCˆʇ#ŠPDˆnˆ#ŠPEˆWˆ#ŠPFˆjˆ#ŠPGˆž‡#ŠPHˆ>ˆ#ŠPIˆ°‡#ŠPJˆPˆ#ŠPKˆ®‡#ŠPLˆNˆ#ŠPMˆ ‡#ŠPNˆ@ˆ#ŠPOˆ’‡#ŠPPˆ2ˆ#ŠPQˆ¡‡#ŠPRˆAˆ#ŠPSˆ¢‡#ŠPTˆBˆ#ŠPUˆ£‡#ŠPVˆCˆ#ŠPWˆ—‡#ŠPXˆ7ˆ#ŠPYˆ¤‡#ŠPZˆDˆ#ŠP[ˆ¥‡#ŠPRˆEˆ#ŠP]ˆ¦‡#ŠP^ˆFˆ#ŠP_ˆ²‡#ŠP`ˆRˆ#ŠPaˆ±‡#ŠPbˆQˆ#ŠPcˆ˜‡#ŠPdˆ8ˆ#ŠPeˆ™‡#ŠPfˆ9ˆ#ŠPgˆ‡#ŠPhˆ0ˆ#ŠPiˆ“‡#ŠPjˆ3ˆ#ŠPkˆŸ‡#ŠPlˆ?ˆ#ŠPmˆ”‡#ŠPnˆ4ˆ#ŠPoˆ–‡#ŠPpˆ6ˆ#ŠPqˆ¯‡#ŠPrˆOˆ#ŠPsˆ‘‡#ŠPtˆ1ˆ#ŠPuˆ­‡#ŠPvˆMˆ#ŠPwˆ•‡#ŠPxˆ5ˆ#ŠPyˆ¬‡#ŠPzˆLˆ#ŠP{ˆڈ#ŠP|ˆۈ#ŠP}ˆçˆ#Š@~¢èˆ#]ÍvU‰åWVSƒì\‹]}ؾ ]#ü¹󥿸ƒ=]#…Qº¾€‡#¹ ˆ#‰ö·ÂÆ0ÆBfúví…Ûu]؃{ÿuÇC\#ƒì ÿsèûÿÿÇ$jjjhy2#èϔf£B‰#ƒÄ fƒøÿu ¸þÿÿÿéÞ‰öjjjhy2#è0˜f£D‰#ƒÄfƒøÿuƒì ¿B‰#P蕛¸ýÿÿÿ頍vÇx‡#ƒ{ÿuÇCx"ƒ{tIÆE™cÆEš.ÆE˜ƒìÿsƒì‹E˜f‰$ÆD$.èÅÆE˜ƒÄÿsƒì‹E˜f‰$ŠEšˆD$襃ă;ÿuQfÇE¨ÇE¬ÇE°fÇE´ÇE¸ÇEÐÇEÈÐÇEÄ ÇEÀ¨aÇE¼
+x‡#Í»‡#‹Ef‰ŠE
+x‡#‹$ÉÉöU‰åƒìèÉÍvU‰åƒìè±ÉÍvU‰åƒì¸ÿÿÿÿƒ=]#t9蓃ì ÿ5H‰#è-4¿B‰#‰$è昿D‰#‰$èט¸ƒÄÉÐU‰åƒìjèoÔÇ$è+ÔÇ$h2#èóÓè²-ƒÄÉÐU‰åWVSƒìŠEˆEó¿1¾d»`‰ö¹v‰òì©t"‰ÈA=þÿÿvì¸ÿÿÿÿ…Àu‰ÚŠEóî¸ë‰ö¸ë搸ÿÿÿÿÇEì¹d…Àt¸ÿÿÿÿët¸ë‰Êì©uî‹EìÿEì=þÿÿvé¸ÿÿÿÿ…Àu‰Úì¶Àë¸ÿÿÿÿƒøÿu
+‰Êì‰ðF=þÿv鳪¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸놐¸ÿÿÿÿ…Àt¸÷ÿÿÿéݐ¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿƒøUt¸ÿÿÿÿ錸ë&³«¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸öÿÿÿé9¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸þÿÿÿé鐸ë&³®¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…À…<èzüÿÿ…À…Žƒì hóèIúÿÿƒÄ…Àt
+Œá#I‰ÐÁà)ЋÅdâ#ƒì‹…Àá#QPÿRLè{ ƒÄhŒá#jÿˆ]#ÇŒá#ÿÿÿÿÇ á#ÿÿÿÿèV ¡Œá#@‰ÂÁâ)¿Õhâ#‰$èã­è:ƒÄû‹]üÉÐU‰åƒìh$*"è( ƒÄÉÍvU‰åƒìjè ƒÄÉÉöU‰åƒìƒ=T]#u(èè
+ƒì ¡Œá#@‰ÂÁâ)¿Õhâ#Pèt­ƒÄÉÍvU‰åWVSƒìhŠ2#è]$ƒÄ»`â#ëv‹Eð@‰ÐÁà)ЁLÃ0€ƒì hâ#èÊ+‰EðƒÄƒøÿ„“@‰ÐÁà)ÐöDÃ1@u¾‹UðR‰ÃÁã)ÃÁã¾`â#¡P]#‰3@£P]#‹E ‰Dƒìjÿuƒtâ#Pè ¾ÆD'ƒÃ fÇD3‹Mf‹%ÿf‰D3
+‰ƒ`â#¿dâ#Ç;¾hâ#¡Œá#@‰ÂÁâ)‹DÖ0‰3ºlâ#ǍAP‹]ð‰˜`â#Ç8ÇÿÿÿÿÇ0ÿÿÿÿǁÀâ#°Ç8Ç0ǁÁÀǁ`â#Ç9ºۍƒ€ 
+Ç…Äâ#Bƒúvì‹Eð@‰ÐÁà)ÐÁàÀǂhâ#ÿÿÿÿǂlâ#´â#‰0ã#º‹Mðɍ€ ‰ö
+Ç…0ã#Bƒú~ì»ëC;á#sƒì‹Àá#ÿuSÿPƒÄ…Àxß;á#u7‹]ð[‰ÂÁâ)ÂfÇՈâ#ƒìhâ#SèÚ)è¡ÕDŽ鄉ö‹Eð@‰ÐÁà)Ѝ4ʼnždâ#ƒì‹Àá#ÿuÿuðSÿP,ƒÄ…ÀyWfdžˆâ#ƒìhâ#ÿuðèz)èAÕDžë'è3Õǃ釃ì ÿuðè9èÕdž¸ÿÿÿÿƒÄëjƒE‹U‹zü…ÿtY‰ö¾ëF;5„á#s0ƒìµ‹ƒ â#WVÿP ƒÄ…Àxۃ싃 â#WÿuðVÿP$ƒÄ;5„á#t‡ƒE‹M‹yü…ÿu©‹Eðeô[^_]ÉöU‰åƒìEPÿuÿu ÿuè`üÿÿƒÄÉÍvU‰åWVSƒì ‹} ƒt6‹EÑàE‰ÂÁâ)‹G‰Õlâ#‰Æ‹UÑâU‰ÐÁà)Ѓ Őâ#@ën‰öƒì ‹UÑâU‰ÐÁà)зŎâ#Pè@‹UÑâU‰ÑÁá)Ñ»lâ#‰ˉƋEÑàE‰ÂÁâ)ƒÄƒ<Óuƒì ÿuèìèËÓLjëtv‹EÑàE‰ÂÁâ)»`â#·DÓ.ƃì ·GPjÿwVh1"è-‰ÁƒÄ f…Éu?ƒì‹UÑâU‰ÐÁà)зDÃ.PVèƒÄÿuèvèUÓlj¸ÿÿÿÿƒÄëN‹EÑàE‰ÂÁâ)Âf‰ Õhâ#ƒìU‰ÐPjÿˆ]#ƒÄöGu ÿ€á#ëvöGuÿ@â#¸eô[^_]ÍvU‰åWVSƒì ‹M‹U ‹]œúX‰ÇEPSRQè­úÿÿ‰ÆƒÄƒþÿ„ɍv‰ÐÁà)ЋÅdâ#‹…Àá#ƒx(„èà…À‰€»;„á#svƒì‹ â#VSÿP(ƒÄC;„á#råv‰ÃÁã)ÃÁ㋃dâ#ƒì‹…Àá#VPÿR0fǃˆâ#ƒÄhâ#Vè\&ƒÄè ÒLJ‰øP¸ÿÿÿÿë#vƒìSVèŽýÿÿƒÄº…À”ÂJ ։øP‰ðeô[^_]ÃU‰åVS‹u»;„á#svƒì‹ â#VSÿP(ƒÄC;„á#råv‰ÃÁã)ÃÁ㋃dâ#ƒì‹…Àá#VPÿR0fǃˆâ#ƒÄhâ#Vè¬%ƒÄeø[^]ÉöU‰åVS‹]è ƒì ¡Œá#@‰ÂÁâ)¾`â#SÿTÖú‰$èn¡Œá#@‰ÂÁâ)¿DÖ‰$èn¦ƒÄeø[^]ÃU‰åWVSƒì‹]‹}úû™w! [‰ÈÁà)ÈÁàº`â#öD0tfƒ|(u û¸ÿÿÿÿéDžÿy$[‰ÁÁá)Á Í°¸dâ#‹<Çë ‰öƒÿv¿[‰ÁÁá)Á Í°‰Mä¹hâ#‰Mì‹Uä‹
+Œá#I‰ÐÁà)ÐÁà¾`â#fÇD(‹¸dâ#ƒì‹½Àá#‹ á#¸;Œá#•ÀPQWÿS8¡Œá#@‰ÂÁâ)ƒÄöDÖ1„Ü¡ á#;Œá#…Ë¡Dâ#‰EèM行á#@‰ÂÁâ)»lâ#‹DÓ@º@B‰Ö™÷þ’’’Áâ‰Ö5Hâ#‰q¿¡/¸D‰ø÷î‰×Áÿ‰ð™‰þ)Ö¡Œá#@‰ÂÁâ)‹\Ó@ºƒÞC‰Ø÷êÁú‰ØÁø)2Eè‹AºÊš;‰Ó™÷û‰Qjh<?"ÿuìÿuèÿdá#‰ÃƒÄƒûÿuƒìÿ5Œá#jèû7ƒÄ‰œá#¡Dâ#£”á#¡Hâ#£˜á#eô[^_]ÉöU‰åWVSƒìÇð¡%úÿuèD»ƒÄ¿dâ#¾`â#‰ö[‰ÂÁâ)ÂÁâÇ:ÿÿÿÿǂlâ#ÆDB fÇD0fÇD0
+fÇD0 fÇD0B0Ç0Ç8ǀhâ#ǀlâ#‚¤â#Ç@Çǂ¬â#BP‰0Ç8ÇD`DŽÐ‚8å#Ç@Ǎ‚àÇ0ÿÿÿÿÇ8ÿÿÿÿ‚°Ç8ǀhâ#ǀlâ#ÂÀÇ2Ç:ºۍƒ€ v
+ÇD‡`Bƒúvï[‰ÐÁà)ЍÅÀǀhâ#ÿÿÿÿǀlâ#ºۍƒ€ 
+@â#ƒ=@â#uèúÿÿƒìhDâ#jèÒyƒÄƒ=œá#ÿtƒì ÿ5œá#ÿhá#Çœá#ÿÿÿÿƒÄè­ïÿÿeô[^_]ÐU‰åVS‹uúv‰ÐÁà)ÐÁàº`â#öD0ufƒ|(uèѼNJû¸ÿÿÿÿ麍v‰ÐÁà)Ðöőâ#tû雉ö;5Œá#uJv‰ÐÁà)л`â#‹DÃ0©t0©u)ƒì jè¥üÿÿ¡Œá#@‰ÂÁâ)¿DÓ‰$襑ƒÄ»ëvC;X]#}ƒìÝÿ°‘#Vÿ‘#ƒÄ…Àtٍv‰ÐÁà)Ё Őâ#û¸eø[^]ÍvU‰åWVSƒì ‹Ef‰Eòf…Àuèâ»ÇŒ¸ÿÿÿÿé‰öú¡ á#@‰ÂÁâ)Âf‹Mòf; Ռâ#”Eñ¾¿`â#‰öv‰ÐÁà)ÐÁà‹T0÷Â…ˆƒÀ fƒ|8t}÷Âuuf‹Mòf9L8 uj;5Œá#u!÷Ât÷Âuƒì jè{ûÿÿƒÄëC‰ö»ëC;X]#}ƒìÝÿ°‘#Vÿ‘#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™ŽNÿÿÿ€}ñt(ƒì ¡ á#@‰ÂÁâ)¿Õhâ#P萃Äëvû¸eô[^_]ÉöU‰åWVSƒì ¾¿`â#v‰ÐÁà)ÐÁàfƒ|(tL÷D0
+4”#‰ÊÁâ‹‚¬‘#£4”#‹E‰‚ ‘#‹E ‰‚¤‘#‰ðƒà‰‚¨‘#‰ðƒàƒøtOƒø
+0”#‰ØP¸[^]ÐU‰åƒìƒ=á#uƒì h`3#èŒÇ$謃ġá#P‰á#ÉÐU‰åƒìƒ=„á#uƒì h3#èPÇ$èÌ«ƒÄ¡„á#P‰„á#ÉÐU‰åWVS‹E‹u ‹}»‹HÇöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿ[^_]ÐU‰åWVSì¬‹EµTþÿÿ½Xþÿÿ»‹HDžTþÿÿöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿƒì…XþÿÿPÿµTþÿÿèQµÿÿƒÄeô[^_]ÉöU‰å¸¹¬‘#v‰ÂÁâ@‰
+4”#ƒûÿu¸Ç`á#eô[^_]ÉöU‰åƒìEüPEøPEôPEðPèI‡Ç$@”#èÍӃÄjjhÿÿjhD”#h@”#èøɃÄjjhÿÿÿhh`”#h@”#èØɃÄjjhÿÿÿþhh|”#h@”#è¸ÉƒÄ ƒ}ütƒì‹EüHPÿuøh@”#è‚ȃă}ôtƒìÿuôÿuðh@”#èfȃÄÉÐU‰åƒì‹E…Àu¸ëƒìjPh@”#èʃÄÉÍvU‰åƒìÿuÿuÿu ÿuh@”#èÀËƒÄ ÉÍvU‰åƒì ÿuÿuÿuÿuÿu ÿuh@”#èºËƒÄ ÉÐU‰åƒì ÿu ÿuh@”#ènЃÄÉÐU‰åƒìÿuh@”#èU΃ÄÉÃU‰åƒìÿuh@”#èU҃ÄÉÃU‰åƒì jÿuh@”#è[ɃÄÉÉöU‰åƒì ÿu ÿuh@”#èЃÄÉÐU‰åƒìh@”#èÎÇ$@”#è(҃ÄÉÍvU‰åWVSƒì} ‹uEðPhÔ3#VèÖ¥‰ÃƒÄƒûuƒ}ðvÇEðƒÆë ‰öÇEð‹Eðº;\]#~hƒìWVh ”#蜃Äj
+VèK›ƒÄ»…À•ÃœúX‰Æƒìh ”#‹Eðÿ4…`]#hÙ3#è]™ƒÄ…Ûuƒì h|4#èI™ƒÄ‰ðPº‰Ðeô[^_]ÍvU‰åVSƒìu ‹]EôPhÔ3#S襃ăøuƒ}ôvÇEôƒÃëÇEô‹Eôº;\]#~JƒìVSh ”#èB›ƒÄj
+S臚ƒÄœúX‰Ãƒìh ”#‹Eôÿ4…`]#hÙ3#裘ƒÄ‰ØPº‰Ðeø[^]ÉöU‰åVSƒì@‹u‹] ‹EfÇEÈÇEÌÇEÐfÇEÔÇEàÇEäÇEìÇEð‰EØÇEÜÇEè…ÛtT‹C‰E̋C‰EЃ{u
+ÇûÿU ëû¸ÉÃU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹8å#‰U苀<å#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õ8å#|[‰Eäv1‰ÐÁà)ЍÅ;š8å#u ‹Eì;‚<å#|1‰Ï‰ÐÁà)Ћ Ÿâ#ƒùÿt4 1‰ÐÁà)Ћ]ä;Å8å#}«ƒÿÿt‰ÐÁà)ЋU‰Ÿâ#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰żâ#‹E@‰ÐÁà)ЍÅP‰ˆhâ#‰¸lâ#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)лdâ#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»hâ#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Ÿâ#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰żâ#‹E@‰ÐÁà)ЍÅP‰ˆhâ#‰¸lâ#ƒÄ[^_]ÍvU‰åWVS‹}‰ÐÁà)ЍÅP‹lâ#‹°hâ#ƒúÿu ‹E ‰0ë#‰öR‰ÁÁá)Á»hâ#‰ÐÁà)ЋDÃP‰DËPƒþÿt!v‰ÁÁá)Á»lâ#‰ÐÁà)ЋDÃP‰DËP[^_]ÃU‰åS‹]‹ ‰Èƒùÿt/I‰ÐÁà)ЋŸâ#‰ƒøÿt@‰ÐÁà)ÐÇżâ#ÿÿÿÿ‰È‹$ÉÃU‰åS‹]‹M ƒ9ÿt‹@‰ÂÁâ)‰Õ¼â#[‰ÂÁâ)ÕP‹‰‚hâ#ǂlâ#ÿÿÿÿ‰‹$ÉÃU‰åWVSƒì ‹M‹] ‹}ÇEðú¡Œá#@‰ÂÁâ)4Õ`â#…ÿt‹F8‰…ÛtBƒùt"ƒù ƒùt ë*‰öƒùtë!‹F8 ‰F8ë‰ö‹÷Ð!F8ëv‹‰F8ëÇEð‹F8‰Ã÷ЋÀš#‰Ñ…ÂtB‰ö‰Ø÷л!Ètv‰Ú©u
+Àš#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…Ât=‰Ø÷л!Ètv‰Ú©u
+¸éӍvú‰ÈÁàö€È˜#uƒ¸À˜#uû魉öv‰ÐÁà)ЍŜâ#ƒùvèÍ©Çë
+‹MԉÈP¸eô[^_]ÐU‰åWVSƒì,¸ƒ} „T¸ƒ} ‡EœúX‰Â‰Uԋu Áæ}؁ÆÀ˜#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé ‰ö÷Eàu;ƒ} vèܤǸÿÿÿÿëv¸ŠM Óà#Àš#…Àt ‹UԉÐPéÃ=¨%ÿu‹MԉÈP¸ 鮉ö‹5¨%vÁ๢%‹‰¨%‹U ‰¢%‹U‰¢%‹U‰ ¢%‹Œá#‰¢%Çÿÿÿÿ‹E Áàºàš#ƒ<ÿu‰4ë>‰ö‹M ‹àš#‰ÁЃ<Å¢%ÿt»¢%
+‹Í 
+èÌ Çë ¸þÿÿÿ‰ñÓÀ![Áâ¹¢%‹
+‹u ‰‹‚¢%‰F‹‚ ¢%‰FƒÂ‹
+©t ƒàý‰
+è@Çë¸þÿÿÿ‰ñÓÀ!Àš#ûé vƒì µƒàš#Pèúðÿÿ‰ÇƒÄƒ»àš#ÿu#ƒþvèòœÇë‰ö¸þÿÿÿ‰ñÓÀ!Àš#Áâ¹¢%‹
+‹] ‰‹‚¢%‰C‹‚ ¢%‰CƒÂ‹
+©t ƒàý‰
+Œá#I‰ÐÁà)ЋÅdâ#ƒì‹…Àá#QPÿRHƒÄhĚ#ÿ5Œá#èÍîÿÿ¡Œá#@‰ÂÁâ)»`â#fÇDÓ(ÇŒá#ÿÿÿÿÇ á#ÿÿÿÿè Íÿÿ¡Œá#@‰ÂÁâ)¿DÓ‰$è™oè‹F<#ƒÄ…Àuû¸ë èÿû¸eô[^_]ÐU‰åSƒì‹]úEðPjè¢VƒÄƒ=h›#ÿu
+vÇh›#ÿÿÿÿû‹Eè‹]üÉÐU‰åVSƒì‹uƒ<µàš#ÿuC‰uèÇEìÇEð¡Œá#‰Eôƒþvèü˜Ç鮐¸þÿÿÿ‰ñÓÀ!Àš#降 µºàš#‹[‹Å¢%‰ƒøÿu"ƒþv豘Ç됸þÿÿÿ‰ñÓÀ!Àš#[Á๢%‹‰U苐¢%‰U싐 ¢%‰Uð‹¢%‰UôP‹
+©tƒàý‰
+ë[¡¨%‰Õ¢%‰¨%ƒìEèPVè
+‰F0‹F8‰Ã÷ЋÀš#‰Ñ…ÂtA‰Ø÷л!Ètv‰Ú©u
+Àš#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…ÂtZ‰Ø÷л!Ètv‰Ú©u
+‹Uè‹E ‰¸‹}üÉÐU‰åƒì jÿu ÿuèñÿÿƒÄÉÃU‰åƒì‹E…Àu¸ëƒìPÿu ÿuèíðÿÿƒÄÉÃU‰åƒìÿuÿ5Œá#è`èÿÿƒÄÉÍvU‰åVSƒì ‹]‹E ‰EèÇEìÇEð脒‹0ƒìEØPEèPSèAéÿÿƒÄ»ÿÿÿÿ…Àu ÷Eàu‹]ØèT’‰0‰Øeø[^]ÐU‰å‹M¡Œá#@‰ÂÁâ)¡Àš# ՜â#‰¸]ÉöU‰åSƒì‹E‹U ú‹Œá#‰Œá#Ç€]#jPj jèœìÿÿƒÄÇ€]#‰Œá#û‹]üÉÍvU‰åS‹M‹] ¡„]#ʼnŠ€›#‰š„›#@£„]#‹$ÉÍvU‰åVS‹]Cÿƒøv苑Ç~¸ÿÿÿÿëp‰öœúX‰Æ[€<…(œ#u‰ðPèa‘ǸÿÿÿÿëF[Áâ¹ œ#‹E ‰
+‹E‰‚$œ#ÆD
+ƒìjh\r"Sè¹T·Ã‰$èÒeƒÄ‰ðP¸eø[^]ÍvU‰åƒì¸ÉÍvU‰åƒì ‹E‰EèÇEìÇEð‹Œá#‰UôUèRPè›ùÿÿƒÄÉÉöU‰åVS‹uv‰ÃÁã)ÃÁã¸`â#DŽàÿÿÿÿL0ƒìhĚ#Vèõãÿÿ‹ƒdâ#ƒÄ‹…Àá#VPÿRDèç·ÿÿƒÄeø[^]ÐU‰åƒìÇh›#ÿÿÿÿjjèWèÿÿè¾·ÿÿƒÄÉÐU‰åƒìEüÇEüÿÿÿÿPèôÿÿƒÄÉÐU‰åƒì‹E‹‰EüEüPjÿˆ]#‹UüRÁ๠œ#ƒÄƒ<t ûƒì RÿƒÄú‹Eü@ƒì ÿ4…$œ#覱ÿÿƒÄÉÐU‰åWVSƒì ‹u ‹]ƒ}t讏Ǹÿÿÿÿén‰öúƒ=à£#ÿt ƒ=¨%ÿuûèƒÇ ¸ÿÿÿÿéCv¡à£#‰‹à£#Õ)пäœ#‹DÇ0£à£#‹Õ)йàœ#ÇDÁ0…öu8‹Õ)ÐÇÁ‹Õ)ÐÇÇ‹Õ)ЉÅèœ#닍<Å)Ǎ<ýàœ#ü¹ó¥‹Õ)ЍŃºàœ#u#¡¨%‰‚#@Áàƒˆ¢%‹€¢%£¨%‹Õ)ÐÇÅôœ#ÿÿÿÿ‹Õ)ЍÅøœ#Ç@NjÕ)Ѝŝ#Ç@NjÕ)ÐÇÅ #û¸ƒÄ [^_]ÃU‰åSƒì‹]ƒûwúÝ)؃<ŝ#uûèÿÇ¸ÿÿÿÿ閍vÝ)ØÁàǀ#ƒÀºäœ#ƒ<ÿtƒì ÿ4ÿhá#ƒÄÝ)ØÁàƒ¸àœ#uE‹#R Åö¢%u¡¨%‰¢%‰¨%Ý)؋ŝ#@ƒ$Å¢%üû¸‹]üÉÃU‰åWVSƒìL‹E‰E´Áà+E´Áàƒ¸àœ#…‹P ‹‚èœ#@öÅ¢%t¸ìœ#ƒ< „ôÿéì‰ö‹M´Áá+M´Ááy LJìœ#¾èœ#‹7@‹¨%‰Ý¢%£¨%jÿ41ÿ±äœ#jèhçÿÿ‹7@ƒ Å¢%錐‹E´Áà+E´Áà¹àœ#ƒ<uwPƒ<
+tÿ°èœ#ÿ°ìœ#ÿ4
+ƒ¸ìœ#„Àº#‹E´Áà+E´ŋ‰E¸M¸‹D‰A‹E¸ƒøœ#‰ƒ#‹Aƒüœ#‰B…Àyÿ‹#Bʚ;ë‰özÿɚ;~ ÿjʚ;‹E´Áà+E´ÿu´h(u"ÿ4ŝ#ÿ4ŝ#ÿdá#‰ÃƒÄƒûÿuƒìÿ5Œá#jè+ùÿÿƒÄ‹E´Áà+E´‰Åôœ#ë‰ö‹E´Áà+E´ÇÅôœ#ÿÿÿÿeô[^_]ÃU‰åWVSƒì‹u‹}ÇEäƒþw3ƒ}t-‹Exÿɚ;w!‹]{ ÿɚ;wúõ)ðƒ<ŝ#uûèÁŠÇ¸ÿÿÿÿ鐅ÿ„·õ)ðƒ<Åôœ#ÿuÇG ÇGëwƒìEèPjèGÇEäƒÄ¹#õ)ðō]è‹D;C|‹+Eè‰G‹D+Cë(¹#õ)òÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹øœ#õ)ðÁà‹‰‹D‰Gõ)ðÅºäœ#ƒ<ÿtƒì ÿ4ÿhá#ƒÄ‹Eƒxu
+ƒx „þºøœ#õ)ð ŋ]‹‰
+‹C‰D
+ÇÇ@è¸ÉÃU‰åƒì‹UƒúwúÕ)Ѓ<ŝ#uûè܆ǸÿÿÿÿëvÕ)ЋÅ #ûÉÐU‰åWVS¹»äœ#¿àœ#¾ìœ#‰öÍ)ÈÁàÇDÿÿÿÿøœ#ÇBǍP0Ç:ÇD A‰‰Áƒù~ºÇÜ£#ÿÿÿÿÇà£#[^_]ÐU‰å]ÍvU‰å¸]ÉöU‰åVSœúX‰Ã¡Œá#@‰ÂÁâ)¾`â#‹DÖ0©t0©t)ƒì jè"Æÿÿ¡Œá#@‰ÂÁâ)¿DÖ‰$è"[ƒÄ‰ØPeø[^]ÃU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡Œá#@‰ÂÁâ)¹`â#‹DÑ0Áèƒà‹U ‰¡Œá#@‰ÂÁâ)Õ0‹
+%ÿþÿÿ ؉
+û¸‹$ÉÉöU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡Œá#@‰ÂÁâ)¹`â#‹DÑ0Áè ƒà‹U ‰¡Œá#@‰ÂÁâ)Õ0‹
+%ÿýÿÿ ؉
+¸ÿÿÿÿ…ÿtrOëՐv‰ÐÁà)Ѝ Åö‘â#tRQ@»lâ#ƒ<D‹Då#‰ƒìý‰Ø‹Uð‚ðPVè`¥ƒÄ‹Eð˜ðSV艦ƒÄéiÿÿÿ‰ðeô[^_]ÉöU‰åWVSƒì‹E‹…Àá#‰Eð‹Mƒy(…©‹=Œá#‰ÐÁà)Ѝždâ#‹U93…‹M I‰ÂÁâ)ÂÁ⋄Љ„йlâ#‹D@‰D@‹„à‰„àƒÂ0¹`â#‹
+%ÿ÷ÿÿ‹\0ã ؉
+9Âu¸ë¸ÿÿÿÿ]ÐU‰å¸ÿÿÿÿ]ÉöU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰åSƒì ‹E‹M ‹…Àá#I‰ÐÁà)ЋÅ4å#‹“ðÂPQè?œƒÄ‹]üÉÍvU‰åWVSƒì ‹E‹u ‹<…Àá#v‰ÐÁà)Ðfƒ<ňâ#tµ€Gƒ<ÿtHÿëCƒìv‰ÃÁã)ÃÁ㍃¤â#PjèR5fǃˆâ#€ƒÄ‹ƒ4å#‹—ðÂPVèðœƒÄeô[^_]ÐU‰åSƒì ‹E‹M ‹…Àá#I‰ÐÁà)ÐÁàfǀˆâ#€‹€4å#‹“ðÂPQ褜ƒÄ‹]üÉÃU‰å]ÍvU‰åWVSƒì ‹U‹•Àá#‰Eð‹U <•€‰ÆƒÆƒ<7~MƒìR‰ÃÁã)ÃÁ㍃¤â#Pjè‹4ÿ 7ƒÄ‹ƒ4å#‹Mð‹‘ðÂPÿu 辛fǃˆâ#€ƒÄë‹E @‰ÐÁà)ÐfÇňâ#eô[^_]ÐU‰åƒì‹E‹M ‹…Àá#ƒÀDŽˆ€ÿÿÿÿI‰ÐÁà)ÐfÇňâ#hâ#QèðÉÿÿƒÄÉÍvU‰å‹E‹U ‹…Àá#ƒÀDŽ€R‰ÐÁà)ÐfÇňâ#]ÃU‰åWVSƒì4‹u v‰EäÁà+EäfÇňâ#EèPjè“3Mè»@B‹Eº÷ó‰Uà’€€‰E܋A‹U܍ЉE؉A»¡/¸D÷ë‰ÓÁû‹EØÁø)ÿƒÞC‹E÷ç‰×‰øÁèEè‹A»Êš;™÷û‰Ó‰YƒÄVhL"ÿuìÿuèÿdá#‰ÃƒÄƒûÿuƒìÿ5Œá#jèAäÿÿƒÄ v‰ÈÁà)ȉÅ@å#eô[^_]ÐU‰åƒìÿ5Œá#jèäÿÿ¸ƒÄÉÍvU‰åƒìÿ5Œá#jèñãÿÿƒÄÉÃU‰åƒìÿ5Œá#jèÙãÿÿƒÄÉÃU‰åƒìÿ5Œá#jèÁãÿÿƒÄÉÃU‰åƒìÿ5Œá#jè©ãÿÿƒÄÉÃU‰åƒìÿ5Œá#jè‘ãÿÿƒÄÉÃU‰åƒìÿ5Œá#jèyãÿÿƒÄÉÃU‰åƒìÿ5Œá#jèaãÿÿƒÄÉÃU‰åƒìÿ5Œá#jèIãÿÿƒÄÉÃU‰åƒìÿ5Œá#jè1ãÿÿƒÄÉÃU‰åƒìÿ5Œá#jèãÿÿƒÄÉÃU‰åWVSƒì‹MI‰ÃÁã)ÃÁãºdâ#‹‹4…Àá#¿`â#fÇD(€‹„Ћ–ðÂPQèA™Ç„àÿÿÿÿèQœÿÿƒÄeô[^_]ÉöU‰åVSƒì h6#è
+Áÿÿè]¼ÿÿ‰ÆÇ$Œè׿ÿÿ‰Ã‰µÀá#ƒÄ jh˜5#Sè®[fÇCÆCÇCøŽ"ÇC,"ÇC 8"ÇC$`"ÇC(ÇC,x"ÇC0„"ÇC4Œ"ÇC8˜"ÇC< "ÇC@¼"ÇCDä"ÇCH "ÇCL4"ÇCP\"ÇCT„"ÇCX¬"ÇC\Ԑ"ÇC`‘"ÇCd(‘"ÇChP‘"ÇClx‘"ÇCp ‘"ÇCtȑ"ÇCxð‘"ÇC|’"ǃ€@’"ǃ„h’"ǃˆÿÿÿÿÇ$£5#èô¿ÿÿƒÄ jVh’"è,ºÿÿƒÄeø[^]ÉöU‰å‹M‹E ‹Àá#fƒ8t·9Èu¸ƒºˆÿt¸ÿÿÿÿ]ÉöU‰å¸ÿÿÿÿ]ÉöU‰åƒì‹E‹…Àá#ÿ°ˆh5#èìYƒÄÉÍvU‰å‹E‹…Àá#‹€ˆ]ÍvU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰å]ÍvU‰å‹E @‰ÂÁâ)ÂfÇՈâ#]ÃU‰åƒìh5#èxYƒÄÿ5Œá#j è„àÿÿƒÄÉÍvU‰åƒìh5#èPYƒÄÿ5Œá#j è\àÿÿƒÄÉÍvU‰åƒìh"5#è(YƒÄÿ5Œá#j è4àÿÿƒÄÉÍvU‰åƒìh)5#èYƒÄÿ5Œá#j è àÿÿƒÄÉÍvU‰åƒìh05#èØXƒÄÿ5Œá#j èäßÿÿƒÄÉÍvU‰åƒìh75#è°XƒÄÿ5Œá#j è¼ßÿÿƒÄÉÍvU‰åƒìh>5#èˆXƒÄÿ5Œá#j è”ßÿÿƒÄÉÍvU‰åƒìhE5#è`XƒÄÿ5Œá#jèlßÿÿ¸ƒÄÉÉöU‰åƒìhL5#è4XƒÄÿ5Œá#jè@ßÿÿƒÄÉÍvU‰åƒìhS5#è XƒÄÿ5Œá#jèßÿÿƒÄÉÍvU‰åƒìhZ5#èäWƒÄÿ5Œá#jèðÞÿÿƒÄÉÍvU‰åƒìha5#è¼WƒÄÿ5Œá#jèÈÞÿÿƒÄÉÍvU‰åƒìhh5#è”WƒÄÿ5Œá#jè ÞÿÿƒÄÉÍvU‰åƒìho5#èlWƒÄÿ5Œá#jèxÞÿÿƒÄÉÍvU‰åƒìhv5#èDWƒÄÿ5Œá#jèPÞÿÿƒÄÉÍvU‰åƒìh}5#èWƒÄÿ5Œá#jè(ÞÿÿƒÄÉÍvU‰åƒìh„5#èôVƒÄÿ5Œá#jèÞÿÿƒÄÉÍvU‰åƒìh‹5#èÌVƒÄÿ5Œá#jèØÝÿÿƒÄÉÍvU‰åSƒì0‹]ÇEÜÇEàfÇEäÇEè¶Ãf‰EØÇEìEØjjPh“"h’5#趜ÿÿƒÄ ‹Àá#‰Ã‰šˆƒûÿuƒì hÀ5#èÒ»ÿÿƒÄ[‰ÐÁà)ÐÇŘâ#ÿÿÿÿ‹]üÉÐU‰åôëýU‰åWVSƒì ‹} ¾ú»ëvCûÿ2Ý)ØÁ຤#€|t߃ìÿ4ÿuèaVƒÄ…Àuʾ…öt1ÿÀuèðnÇûéÜûÝ)؍…¤#éˉö÷Ç@uè¿nÇû髍v‹E‰Eð=ÿ~èžnÇû銉ö‹ÐÄ#ƒúÿtqÕ)Ѝ<…w‹†¤#£ÐÄ#ƒì ÿuèV@‰$臹ÿÿ»¤#‰ƒÄÿuPè7U‹Eð‰‡¤#‡ ¤#‰$è0‘ÆDƒÄû‡¤#ëvènÇû¸eô[^_]ÍvU‰åWVSƒì ¾ú¿»¤#vý)øÁà€|tƒìÿ4ÿuèUƒÄ…Àu¾Gÿÿ~ʅötJƒì ÿuèOUƒÄ@Pý)ûÁ㾤#ÿ43è%¹ÿÿƒÃÆD3¡ÐÄ#‰ƒ¤#‰=ÐÄ#ƒÄûë‰öèSmÇû¸eô[^_]ÍvU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…¤#uèmǸÿÿÿÿé‰öèÏæÿÿúè5B‹Œá#R‰ÑÁá)Ñf‰Íhâ#‹Õ)Ѝ4…¤#ƒ~ ÿu
+¸ÿÿÿÿéìvƒì hàÄ#ègñÿÿƒÄ‹]¾¹º÷ñ‰×ëf‰ö¿€<Å@¨%t0ƒìÿu¿ōƒ ¨%Pè³EƒÄ…Àu€»8¨%„Ÿ¾ëG¹‰øº÷ñ‰×fÿEæfƒ}懜‰ó„Ût–¿Áãƃ@¨%ƒìÿuƒ ¨%Pè÷D‹E쉃4¨%ƒÄ€}óu‰Â’‹] f‰ňª%ëv‹E썀‹E ¯Ef‰Ոª%úƒì ‹U썒Áã·ƒˆª%PèݨÿÿºŒª%‰ƒÄû…Àu%è”]ǒƒì hàÄ#èAõÿÿ¸ÿÿÿÿ魍v‹E썀ÁãS‰Uྀª%‹ƒŒª%‰‚„ª%‰2ƒìjjƒœª%Pè:ûÿÿƒÄ ·D3Pjƒ ª%Pè#ûÿÿƒÄ jjÃ¤ª%SèûÿÿŠ]ó‹Eàˆ\0ƒÄúƒ=(°%ÿuèø\ǎûÇEèÿÿÿÿë¡(°%Å)‹•ä¬%‰(°%û‰Eèƒ}èÿu_ƒì hàÄ#èvôÿÿ‹Eèéä‰öè§\ǐƒì hàÄ#èTôÿÿ¸ÿÿÿÿéÀ‰öèƒ\Ǒƒì hàÄ#è0ôÿÿ¸ÿÿÿÿ霉ö‹EèÁà+EèÁà¹à¬%ŠUòˆT P‹]ì‰
+‹] f‰\
+(°%ûƃ ¨%Ç$àÄ#è
+™ÿÿ‰ÆÇ$èKœÿÿ‰Ã‰µ â#ƒÄ jhØ6#Sè"8fÇCÍÆCÇCÇC²"ÇC \²"ÇC$h²"ÇC(p²"ÇC, ²"ÇC0̲"ÇC4³"ÇC8t¯"ÇC<\³"ÇC@\°"ºƒÄsK •ÇD@DŽ ÿÿÿÿBú™~ݍeø[^]ÉöU‰åVS‹E‹… â#ƒì h 6#è7¾ƒÄƒÃƒìÿt³@h¿6#èû6ƒÄFþ™~ãeø[^]ÃU‰å¸ÿÿÿÿ]ÉöU‰å]ÍvU‰åƒì‹E‹U ‹… â#ƒÀƒ|@tƒìRj
+9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] j èӚÿÿ‰ÂƒÄ¸ …Òt!ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìj ÿsèäšÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì ‹}‹u ú‹^…Ûu*ƒì j è3šÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‰>‰Fƒ;ÿt
+Œá#I‰ÂÁâ)‹ƒ¬‹‰D×P‹ƒ¬‹@‰„‹‹“¬¡Œá#‰B‹ƒ¬ÿ@èj€ÿÿ¡Œá#@‰ÂÁâ)ƒì ¿D×Pèù"èPŠÿÿƒÄûúéRÿÿÿ‰ö¸;J ’Àérÿÿÿ‹E‹… â#¡Œá#ÿDƒD¡Œá#‰¹‹ƒ¬‹V ë‰ö‰Á‹A…Àt;P sò…Ét‰q됉³¬…Àt‰p‰F‰Nû¸eô[^_]ÍvU‰åWVS‹}‹E ‹ ½ â#ú‹X¸…Û„Ù‹;Œá#uû¸#éčv‹Œá#‹C ;„‘°s
+‹Eð‰¬ë‰ö‹G‰A…Òt‹G‰Bèã}ÿÿ¡Œá#@‰ÂÁâ)ƒì ¿Õhâ#Pèo èƇÿÿƒÄû¸eô[^_]ÐU‰åVSƒì h7#èJ—ÿÿèْÿÿ‰ÃÇ$€è–ÿÿ‰Æ‰4 â#ƒÄ jh7#Vèî1fÇFÌÆFÇFÇF¹"ÇF œ¹"ÇF$ȹ"ÇF(ø¹"ÇF,@º"ÇF0lº"ÇF4ĺ"ÇF8Ô³"ÇF<\µ"ÇF@`¶"ºƒÄ^N•ÇD@DŽ°ÿÿÿÿDŽÿÿÿÿBú™~Òdž¬eø[^]ÐU‰å‹U‹M ¸ÿÿÿÿ…Òt;‹‹… â#ƒxu‹@%ÿÿÿ=Ìu…Ét ‹B‹@ ‰ë
+9u
+¸ëv¸ÿÿÿÿ]ÐU‰åS‹E‹U ‹]‹ … â#Áâ‹C‰„°ÇD
+D‹$ÉÉöU‰åVS‹E‹u ‹… â#ƒ|³DtƒìVj
+9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] jè3“ÿÿ‰ÂƒÄ¸ …Òt1ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‹@‰B ÇB‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìjÿsè4“ÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì$·]Sh"7#è .‰Ø-yƒÀÁèƒÄ ·À‰Eè@ÛÁã¿à¼%ÿt8CP‰Eä·8Ph)7#èá-ƒÄ ÿt;·D;Ph77#èÊ-ƒÄ ÿt; s·>PhH7#è±-ƒÄ ÿt>·D>PhY7#èš-ƒÄ ‹Uä·D:P·DLPhj7#è~-‹UèÕƒÄ·ØSh{7#èc-EóPEòPEìPS蹃ĶUóR¶UòRÿuìPhÀ7#è6-ƒÄ eô[^_]ÍvU‰åWVSƒì ‹E‹U‹]¹‹u ƒî‰ƒî‰ºÀ?&fƒ=À?&yA¿Áfƒ<Byfù™~îfù™~ƒì h7#èÎ,¸ƒÄé ¿Á<¹À?&‰Úf Ê€f‰Ǎ<ÿÁçºà¼%‰tÇD _ÇDfŒÙf‰LfÇfÇDÇD _ ‹M‰ ÇDÇDO0ÇDÇD Ǎ_@ÇÇD‰t‰t fŒÉf‰L fŒÙf‰LfŒÛOPf‰\fŒÛf‰fÇD 0fÇD0O`fÇfÇDfÇDÇL½%¾A&¹üó¥Å˜eô[^_]ÐU‰åVS‹u ¿E-‰Â…ÀyP‰ÐÁø@ÀÁà¹à¼%f‰tX@Vf‰T f‰t ƒÀPf‰tf‰4[^]ÉöU‰å¿E-‰Â…ÀyP‰ÐÁøfDŽÀ?&]ÉöU‰åSƒì‹]¿E Ph¨7#Sè~3‰ØƒÄ‹]üÉÃU‰åVS趉Æès»‰öƒìhÅ"SèƒÄh¾"SèìƒÄCƒû~ۉðeø[^]ÉöU‰åƒìèaÉÍvU‰åSƒì‹]‹˜]#€82uºð°îƒìSh9#èˆ*ƒÄÁ㋃˜]#@Ph]C#èp*ƒÄÿ³Ü]#ènƒÄ‹]üÉÉöU‰åƒìÿuh9#èE*èèûÇ$èG7ƒÄÉÉöU‰åWVSƒì‹E‹} ƒ=$»%„à…ÿ„Ø¡ ±%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡¤±%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡¤±%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø‰Ó)øƒÞC÷o‰ÑÁù‹GÁø)Á‰È؉‹OÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰O‹éԉö]è¡ ±%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+œ±%ºÓMb‰È÷êÁúÁù)ÊӅÿ„…¡˜±%‰¡œ±%éqvƒø…綄±%ƒøtƒø…Àt
+ ±%º×®¬]‰È÷êÁú‰ÈÁø)¤±%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰È£ ±%f‰±%…ÿ„̍€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡¤±%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡¤±%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø‰Ó)Ëw¸ƒÞC÷î‰ÑÁù‰ðÁø)Á‰È؉‰óÁú‰ÙÁù)ʍ’’’’’’Áâ‰Ø)Ѝ€€€Áà‰G‹ ±%’’’4Õ¹Á6ۉð÷é‰Ó3‰ÁÁù
+¤±%ɍ‘ÑÁâ)ʉÑÁá)эÈ鍃ø…ƒ=”±%…rU衘±%‰¡œ±%‰B»@¹C°Ò‰Êî‰Úì¶ÈìÁàf¶Ñ з𷠻%9Æv%h&9#j_h89#h?9#èm%Ç$èmƒÄ· »%)󯈱%· »%‰Ø‰Ñº÷ñ‰Ãº °
+D^#eø[^]ÍvU‰åWVSº¿L°%¾H°%»D°%¹@°%’ÁàÇ8‰0ÇÇBƒú~ÜÇD^#[^_]ÐU‰åVS‹U‹] ‹uú’ƒ<…L°%t÷Æu¸ÿÿÿÿëH’ …ǁL°%û…Ût‰™D°%º@°%H°%‰‰t
+€±%‰‹AƒÄ [^_]ÐU‰å‹E¹‹€±%됉ы…Òt;Buó¸ÿÿÿÿ…Òt$…Éu
+;B u‹Eä;B~ÇEÜÇEØëK}؋€±%Mà‹B;A|‹B +Eà‰E؉Ћ@+Aë ¡€±%‹@ +EàH‰EØ¡€±%‹@+Eäʚ;‰G‹E؍€€€€€€Áà‰EԋMÜ¿ÓMb‰È÷ïÁúÁù)ÊUԍҍB‰ÂÁâ)‰Ð÷çÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèFeô[^_]ÃU‰åWVSƒì¶„±%ƒøtƒø…Àt
+¤±%‰AÁà)ȍÁ‰ÁÁá ȉò)‰ ±%f‰±%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¤±%‰AÁà)ȍÁ‰ÁÁá ȉò)‰ ±%f‰±%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡¤±%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡¤±%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰C‹€±%‹Mè;J 
+;B u‹Eô;B~ÇEìÇEèëJ]è‹€±%Mð‹B;A|‹B +Eð‰Eè‰Ð‹@+Aë ¡€±%‹@ +EðH‰E血±%‹@+Eôʚ;‰C‹E荀€€€€€‰ÆÁæ‹Mì»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèeø[^]Éöú‹D$¼èÔ#PèŒëÿÿ`fff f¨f¸0ŽØŽÀ° º î¡,^#@£,^#1ÛfŒÓü¡”±%ƒøtèùòÿÿëè6ùÿÿ°
+º îì¨t ¸@Pè–ÿÿÿf¡4^#f9:^#t f£:^#ÿ-6^#ƒ=0^#t‹0^#ÿÓf©f¡ffaωöU‰å‹EØf£:^#f£4^#]Ã1ÀÈÃU‰åf¸0ŽØŽÀ‹Ef;:^#t f£:^#ÿ-6^#]ÉöU‰åƒìjjjj@èaƒÄÉÃU‰åWVSƒì ‹]‹u ‹}聉€:y"…Ût‹B8‰…öt‹BÁà
+‰…ÿt)‹B4‰ë"‰ö…ÛtÇ…öt‹BÁà
+‰…ÿtÇ@ƒ}t ‹BÁà
+‹U‰ƒÄ [^_]ÍvU‰åƒìjjjj@è̓Ä·@0ÉÃU‰å¡ø[#]ÉöU‰å]ÍvU‰åSƒì‹ø[#誃ì Sèucÿÿè ƒÄ‹]üÉÃU‰åWVS‹M ‹u‹}Š]‰ÈÁàeèÿÿ Eè‰ÈÁèUèˆBáÿbÿÿÿ J‰ðˆB‹Ef‰Eè‹EÁè‰EäŠEäƒà ÃË@¶ÃÁàbÿÿÿ Bçüÿ=ê[#‹‰‹B‰G[^_]ÐU‰åWVSƒì ‹] ‹u‹}·EMèê[#‹‰‹@‰A‰Ê¶JÁá¶B ÁÁá·B Á…ÛtŠBƒà¶ÐÁâ·Eè Љ…ötŠE툅ÿt
+ŠEî%ðˆ‰ÈƒÄ [^_]ÉöU‰å‹E ¶UÁâ¹_#fÇD
+8Ƃ_#îƂ_#f‰
+Áèf‰D
+]ÍvU‰åº °îº!°@î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰åº °îº!°î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰å‹Mf…ÉtWfƒùw¸Óà
+@^#ë7fƒùw<·Éƒé¸Óà
+A^#¢A^#º¡î<ÿu @^#©uƒÈ¢@^#º!î]ÃU‰å‹Mf…ÉtUfƒùw¸þÿÿÿÓÀ"@^#ë5fƒùw:·Éƒé¸þÿÿÿÓÀ"A^#¢A^#º¡î @^#©t%û¢@^#º!î]ÉöU‰å¿4^#]ÃU‰åƒì‹Ef£4^#˜PèWüÿÿƒÄÉÐU‰å¿4^#]ÃU‰åƒì‹E‰Âf£4^#ƒ=D^#uƒì ¿ÂPèüÿÿƒÄÉÐU‰åWVì¾¹L^#ºŒ^#‰öµÇ€Û"Ç€Û"Fƒþ~åƒì EÈPèÅèºÇ€A&Á9#‹EÈ£„A&¶H^#£ˆA&ƒÄ‹EУA&‹EÔ£”A&‹EØ£˜A&h)Ý"jè£ýÿÿƒÄh3Ý"jè”ýÿÿƒÄh=Ý"jè…ýÿÿƒÄhDÝ"jèvýÿÿƒÄhKÝ"jègýÿÿƒÄhRÝ"jèXýÿÿƒÄhYÝ"jèIýÿÿƒÄhŸÝ"jè:ýÿÿƒÄh`Ý"jè+ýÿÿƒÄhgÝ"j èýÿÿƒÄhnÝ"j
+ô@&€¾ƒÄvÀÅà¼%ƒì jh‰hØPõ·ÀPèúÿÿƒÄ Fþš~ǃì hÐèFùÿÿƒÄÛãݵTÿÿÿ›¿A&µTÿÿÿ¹üó¥ ÀƒÈ""ÀÛãèƒûÿÿèúÿÿeø^_]ÍvU‰åSƒìº!°ÿîè’ûÿÿ¹@ºC°6Êîîƒ=„A&~¹AºC°tî°‰Êî°ë»B¹C°°‰ÊÚîîºaî‹]üÉÃU‰å‹U‹E ‰•Œ^#]ÉöU‰å‹U‹E ‰•L^#]ÉöU‰åƒìh 9#è
+è— ƒÄÉÉöœX‰Á5PœX9ÈtQ¸Ã¸ÜX‰Á5 PœX1ÈtQ¸øÃf1Àžf¸f»öóŸ€üu¸øÃÆH^#Ûã¹âþfÇJ^#ZZÝ=J^#¹âþf¡J^#<u+Ù=J^#¹âþf¡J^#f%?fƒø?uÆH^#ÆH^#Éö`¸ëp`¸ëh`¸ë``¸ëX`¸ëP`¸ëH`¸ë@`¸ë8`¸ ë0`¸
+ë`¸ë`¸ë ¨Pf¸0ŽÀŽØüX1ÛfŒÓP‹…L^#ÿÓ[° ƒûrº îº îf¡4^#f;:^#t f£:^#ÿ-6^#©¡aϸ鋸選ëz¸ës¸ël¸ëe¸ë^¸ëW¸ ëP¸
+ë4¸ë-¸ë&¸ë` ¨f¸0ŽÀŽØüèש¡aÏPf¸0ŽØŽÀXfŒÓ‹=ê[#ß1ۊŠ_Áãf‹_ÜfŒÒfŒÛŽÓSRPÿ…Œ^#ƒÄX[ŽÐ)ÜÏU‰åWVSƒì ‹u¸¹ ‰÷üó«è|ýÿÿ…ÀtÇëUèŠýÿÿ…Àt7ÇFǸ¢‰^‰N‰V …Àt+¸¢‰F‰^‰N‰V ëÇècýÿÿ…ÀtÇ ƒÄ [^_]ÍvU‰åWV¿Ì^#È·À-yƒÀÁø9ÂtU¿Ì^#@ÀÝ4ÅL½%›È·À-yƒÀÁøf£Ì^#¿5Ì^#¿ÀA&4v4ö4õL½%¹üó¥Ý%ÀA&^_]ÉöU‰å¿Ì^#]ÃU‰åWVSƒì(ŠM¡Ð^#Áà ˜€ f¶.B&f£êÔ#f¶-B&f£ìÔ#€ù t%€ù €ù„óé‰ö€ù
+êÔ#·êÔ#·ìÔ#¯0B&ÂÆS fÿêÔ#éõ‰ö·êÔ#·ìÔ#¯0B&Ј CfÿêÔ#·êÔ#;0B&Ž¿fÇêÔ#·ìÔ#¡4B&H9Â…š¡0B&H‰EԉUÐf¾,B&Áâf‰UÚ¡Ð^#Áà °€ ¿;}Ð=v¹;MÔ*_ÿv‰ø¯0B&È·F‰Ø¯0B&Èf‰FA;MÔ~ÜG;}Ð~ƹ;MÔ'Wÿ‰Ð¯0B&Èf‹]Úf‰FA;MÔ~çëfÿìÔ#·5êÔ#·=ìÔ#‰øf¯0B&f‰EΡÐ^#Áà fEÎfuλÔ°‰Úî¹Õ‰ÊŠEÎî°‰Úîf‹EÎfÁè‰Êî‰óˆ.B&‰ø¢-B&ƒÄ([^_]ÐU‰åWVSƒì‹u‹} ‰øf¯0B&f‰Eò¡Ð^#Áà fEòfuò»Ô°‰Úî¹Õ‰ÊŠEòî°‰Úîf‹EòfÁè‰Êî‰ð¢.B&‰úˆ-B&ƒÄ[^_]ÍvU‰åS¹Ô°
+‰Êî»Õ‰ÚŠEî° ‰Êî‰ÚŠE î‹$ÉÍvU‰åWVSƒìf¾EÁàf‰Eò¡Ð^#Áà ¸€ ‹]ë0‹M ;M(sÿ‰Ø¯0B&È·G‰ð¯0B&Èf‰GA;M~ÜC;]~ʋM ;MSÿv‰Ð¯0B&Èf‹]òf‰GA;M~çƒÄ[^_]ÍvU‰åWVSƒì ¡0B&H‰Eð‹4B&K‰]ìf¾,B&Áàf‰Eê¡Ð^#Áà °€ ¿9ß<‰ö¹;Mð*_ÿv‰ø¯0B&È·F‰Ø¯0B&Èf‰FA;Mð~ÜG;}ì~ƹ;MðWÿ‰Ð¯0B&Èf‹]êf‰FA;Mð~çƒÄ [^_]ÍvU‰å·J‰0B&¶„@£4B&¶„ÿ ¢,B&¶P¢.B&¶Q¢-B&¶`¢ïÔ#¶a¢îÔ#ÇÔ^#ÇÐ^#]ÃU‰åWVSƒì .B&¢P -B&¢Q¶ÀP¶.B&PèŠýÿÿ¶îÔ#¶5ïÔ#ƒÄ¹Ô°
+‰Êî¾Õ‰òˆØî° ‰Êî‰ØfÁè‰òî[^]ÃU‰åVS‹u‹Ð^#Áâ»Õ#¶.B&‰¹ Õ#¶-B&‰
+µŠ¢.B&Š
+¢-B&‰5Ð^#[^]ÃU‰å¡Ô^#]ÉöU‰å¡Ð^#]ÉöU‰åWVSƒì ‹}f¾u Áæf¾E Ƌ]‹E9Ã3v‹M9ù#‰Ê¯0B&¡Ð^#Áà ÐØf‰´€ A9ù~ÞC;]~ЃìÿuÿuèüÿÿŠE¢-B&ŠE¢.B&ƒÄeô[^_]ÍvU‰åWVSƒì ¡0B&H‰Eð‹=4B&Of¾,B&ÁãƒË ¾9Æ4¹9ù%v‰Ê¯0B&¡Ð^#Áà Ððf‰œ€ A9ù~ÞF;uð~̃ìjjèûÿÿÆ-B&Æ.B&ƒÄeô[^_]ÍvU‰åS‹U ‹]‹M¯0B&¡Ð^#Áà ÂU”€ ˆ
+¸€:tBAŠ:t)Ð]ÃU‰åS‹U‹] ‹M…Éëv¶¶Sÿ)Ð됊C8uíŠB„ÀtIu︋$ÉÐU‰å‹U¸€:tB@€:uù]ÍvU‰åS‹E‹] €8t‰Ú€:tŠv:
+tB€:uö@€8u下$ÉÉöU‰å‹E‹U €8t ‰ö8t @€8uö¸]ÍvU‰åS‹]‰Ú€;t‰öŠ
+AŸ<wAàˆB€:uì‰Ø‹$ÉÐU‰åS‹]‰Ú€;t‰öŠ
+A¿<wA ˆB€:uì‰Ø‹$ÉÐU‰åS‹U‹M ‰Ó€;tvB€:uú늈AB€9uõƉ؋$ÉÍvU‰åWVSƒì<‹u‹]ÇEèÇEäÇEàÇEÜÇEØÇEÔÇEпÇEÌÙîÝ]À‰uì‹E €8„D‹U €:%t…ÿuŠˆB‰U FÿEèév‹E €8%u%@‰E ¿ÇEä
+vƒÃ¿Sü‰Uԃì ÿuÌÿuäj
+vƒÃ·Sü‰UЃì ÿuÌÿuäj
+ë>vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèa‰EÜEèÆ¿ƒÄ é±ÇEØé¥ÇEØ陃MÌ鐍vƒMÌ鄍v¿ƒMÌëvƒÿu?ƒìEìPj
+ÿu èb
+‰EäƒÄ‹E €80u ÷EÌtƒMÌ됃MÌ‹UìJ‰U ë4vƒÿu,ƒìEìPj
+ÿu è
+‰Eà‹EìH‰E ¿ƒÄë‰ö¿ÿE ‹U €:…¼üÿÿÆ‹Eèeô[^_]ÉöU‰åƒì EPÿu ÿuè7üÿÿƒÄÉÉöU‰åWVSƒì,‹u‹} ‹]ÇEìÇEèÇEäÇEàÇEÜÇEØÇEÔÇEЉuð€?„>€?%tƒ}Ôu ŠˆGFÿEìëá€?%uGÇEÔÇEè
+ÇEàÇEоƒè%ƒøS‡çÿ$…Ð)#Æ%FÿEìéԃÉòFŠCüˆÿEìéÁƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ¿Cü‰E܃ì ÿuÐÿuèj
+VÿuÜè鏐ƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèj
+ëBƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèjVÿuØè6‰EäEìÆÇEÔƒÄ éҍvƒÃ‹Sü€:tŠˆBFÿEä€:uò‹EäEì飍vÇEàé›ÇEà鏃MÐ醍vƒMÐë}‰öÇEÔƒMÐënvƒ}Ôu6ƒìEðPj
+W蓉EèƒÄ€?0u ÷EÐtƒMÐ됃MЋ}ðOë1‰öƒ}Ôu)ƒìEðPj
+WèW‹}ðOÇEÔƒÄë
+vÇEÔGé¼ýÿÿvÆ‹Eìeô[^_]ÉöU‰åƒì EPÿu ÿuèGýÿÿƒÄÉÉöU‰åWVSƒì,‹}‹uÇEèÇEäÇEàÇEÜÇEØ»‰}ì饐‹U €:%t…Ûu B‰U 鏍v‹E €8%u%@‰E »ÇEäÇEàÇEÜÇE؋U ¾ƒè*ƒøN‡Eÿ$… +#‰öƒû…8ƒìEìPj
+ÿu èN‰E܃MØ‹EìH‰E ƒÄéŠGƒÆ‹^üˆëÝØÿEèéõƒÆ‹^üëG€?tƒì ¾PèBƒÄ…ÀuçÇEÔë#‰ö÷EØuŠˆCë‹UÜ9UÔ}ŠˆCÿEÔG€?tƒì ¾PèþƒÄ…ÀtÇÆ덉öƒìhè9#Wè&÷ÿÿ‰ÇƒÄ EìPj
+WèՉ‹}ìƒÄƒ}à…Wƒ}ät)ƒ}ä ƒ}ätéCÿÿÿƒ}ä…9ÿÿÿƒÆ‹Fü‰é,ÿÿÿƒÆ‹Füf‰éÿÿÿ‰öƒìhõ9#Wè¶öÿÿ‰ÇƒÄ EìPj
+ƒ}äté¹þÿÿ‰öƒ}ä…­þÿÿƒÆ‹Vü‰é þÿÿƒÆ‹Vüf‰é‘þÿÿ‰öƒìh:#Wè*öÿÿ‰ÇƒÄEìPWè;‹}ìƒÄƒ}àu`ƒ}ät)ƒ}ä ƒ}ätéMþÿÿƒ}ä…CþÿÿƒÆ‹FüÝé8þÿÿƒÆ‹FüÙé*þÿÿvÇEäë vÇEäëvÇEàëÝؐ»ÿE ‹E €8…Pýÿÿ‹Eèeô[^_]ÐU‰åƒì EPÿu ÿuèïüÿÿƒÄÉÉöU‰åWVSƒì,‹u ÇEп‹Eƒð‰EԋU‰U̅Òy‰Ñ÷ىM̃}y ‹E…Ày÷Ø됋E÷EÔu ƒ}yƒ}yGƒ}u‹EÐÆD(Ø0@‰EÐë8v…Àt1U؉Uȉöƒì º÷ủÃRèI‹MȋUЈ
+‰öÆ FGB;U|õƒ}y ƒ}yÆ-ë ÷EÔtÆ+F‹Eԃàƒøu‰ú;}} Æ0FGB;U|õ‹UÐJx M؊
+ˆFJy÷‹Eԃàƒøu‰ú;}} Æ FGB;U|õƉøeô[^_]ÃU‰åƒì‹Eÿuÿu÷ØPÿu ÿuèŸþÿÿƒÄ ÉÉöU‰å‹E…Ày÷Ø]ÉöU‰åSƒì‹]èÁîÿÿƒì SèY
+ÿÿU‰åWVSƒì‹M‹} ÙîÙÀÙ軀9-u ¾ÿÿÿÿë
+‰ö¾ëA€90túŠƒè0< w(Ý`,#ëÙˍv¾ƒè0AÜËÙËPÚ$XŠƒè0< vâÝۀ9.u9AŠƒè0< w/Ý`,#ëÙÉÙʉö¾ƒè0AÜÊÙÊPÚ$ÙÉXØʊƒè0< vÝÝÚÙÉÞùÞÁVÚ $^€9et €9E…“A€9-u
+¾ÿÿÿÿAë‰ö€9+u ¾Aëv¾Šƒè0< weÝ`,#¾ƒê0A·ÃÙÀPÚ $Ù}ð‹]ðÆEñ Ùmð‰]ðÛ]ìÙmð‹Eì·À‰$Û$‰$Ú$ZÙ}ð‹UðÆEñ Ùmð‰UðÛ]ìÙmð‹Eì‰ÃŠƒè0< v£Ý؅ö~!ºf…Ût4Ý`,#·Ã‰öÜÉB9Â|ùëvº·Ã‰Ã9Â}Ý`,#ÜùB9Ú|ùÝ؅ÿt‰ƒÄ[^_]ÐU‰åWVSƒì ‹]‹} ÇE쾀;-u ÇEðÿÿÿÿCë‰ö€;+u ÇEðCëÇEð€;0u>C€;0túë6ƒì ¾PCè‰ÂƒÄ9ú…Òy
+¸ëEv‰ð¯÷Ö9ð~ÇEìƒìW¾P聃ąÀu¶ƒ}t‹E‰ƒ}ìt¾ÿÿÿ¯uð‰ðeô[^_]ÉöU‰åWVSƒì ‹]‹} ÇEð¾€;0uC€;0tú€;xuKƒÿuFC€;0u@‰öC€;0túë6ƒì ¾PCè_‰ÂƒÄ9ú…Òy
+¸ëAv‰ð¯÷Ö9ðvÇEðƒìW¾PèуÄ…Àu¶ƒ}t‹E‰ƒ}ðt¾ÿÿÿ‰ðeô[^_]ÉöU‰åŠUBÐ< w ¾Âƒè0ë&vB¿<w ¾Âƒè7됍BŸ<w ¾ÂƒèW됾Â]ÍvU‰å‹Uƒú w B0¾À됍BöƒøwB7¾Àë¾Â]ÍvU‰åŠUƒê0¸€ú –À]ÉöU‰åŠUBÐ<vBŸ<w¸ë¸]ÐU‰åŠU€ú/~‹E Ø^#:Pÿ¸ë¸]ÐU‰åŠUBŸ<w Bà¾Àëv¾Â]ÍvU‰åŠUB¿<w B ¾Àëv¾Â]ÍvU‰åVS¾ƒì ¾]Sè%ƒÄ…Àuƒì Sè5ÿÿÿƒÄ…Àt¾‰ðeø[^]ÃU‰åŠUƒêA¸€ú9–À]ÉöU‰å¸€}/žÀ]ÍvU‰åŠUƒêa¸€ú–À]ÉöU‰åŠUB÷<v
+¸€ú u¸]ÉöU‰åŠUƒêA¸€ú–À]ÉöU‰åWVSƒì ÝEÝUè‹]‹}ÇEäSd$øÝ$èoƒÄ…Àtƒì Sè·îÿÿƒÄéPvÙîÝEèÚéßà€äE€üu Æ-C€uï€ë÷EtÆ+CÿEäÝh,#ÝEèÚéßà€äE€üuÆ0ÆC¸éû‰öÙèÝEèÝáßà€äE€üu3¾Ýéßà€äE€üuHÝ8:#ÝEèØÉÝUèNÝêßà€äE€ütëÝØë)vÝØÝؾÝ8:#ÝEèë ÝEèØñÝUèFÝéßàöÄtîÝ؃ì Vè÷ùÿÿƒÄƒøc~ƒïë‰öƒø ~ƒïë‰ö…ö~Oƒì‹EƒÈPÿuWSÿuìÿuèèUEäƒÄ …öu‹Eäë;‰ö]äÆeCƒì jºgfff‰ð÷êÁú‰ðÁø)ƒÂRj
+SVè\ùÿÿ‹UäD‰EäƒÄ eô[^_]ÍvU‰åWVSìŒÝEݝþÿÿ‹]Dž€þÿÿ½¸þÿÿ¹K¸üó«ƒìSÿµ”þÿÿÿµþÿÿ貃ąÀtƒì SèúìÿÿƒÄé‰öÙî݅þÿÿÚéßà€äE€üuÆ-C€µ—þÿÿ€ëv÷Et
+Æ+Cÿ…€þÿÿƒì…˜þÿÿPÿµ”þÿÿÿµþÿÿèþݝpþÿÿ‹…pþÿÿ‹•tþÿÿ‰Æ‰×DžŒþÿÿƒÄ݅˜þÿÿÙèÙÉÝáßàöÄ…ø重vh$@jÿµœþÿÿÿµ˜þÿÿè$݅˜þÿÿÜ5p,#ݝ˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿß½¨þÿÿÙ­´þÿÿ‹…¨þÿÿ‰$èûÿÿ‹•Œþÿÿˆ„*¸þÿÿB‰•ŒþÿÿƒÄ݅˜þÿÿÙèÙÉÚéßàöÄ„oÿÿÿ‹•Œþÿÿ•€þÿÿ‰ÑI…¸þÿÿ‰…|þÿÿë‰ö‹•|þÿÿŠˆCI‹•Œþÿÿƒê‰ÐÁèH!Â9Ñ}ޅÉx‹Œþÿÿƒéx
+p,#ݝpþÿÿ‹µpþÿÿ‹½tþÿÿƒì…˜þÿÿPWVèݝpþÿÿ‹•pþÿÿ‹tþÿÿ‰Ö‰Ï݅˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿ۝¤þÿÿÙ­´þÿÿ‹…¤þÿÿƒÄ…Àtƒ½ˆþÿÿu
+Džˆþÿÿƒì PèÓùÿÿˆCÿ…€þÿÿÿ…ŒþÿÿƒÄƒ½ˆþÿÿt‹E9…Œþÿÿ~
+Dž„þÿÿ‹•€þÿÿ9U}
+Dž„þÿÿƒ½„þÿÿ„ýþÿÿKë
+ƒìjhî:#é½ ÝØÇEغ;#ƒøc~º;#‰U܃=è^#uÇEðàÇEôÿÿïÇë¡Ü^#‹à^#ò€‰Eð‰Uôƒ=è^#„à ƒì EØPèð ƒÄ…À…» ƒ=è^#…Ÿ ƒìjh;#é1 ÝØÇEغ;#ƒøc~º;#‰U܃=è^#uÇEðàÇEôÿÿïÇë¡Ü^#‹à^#ò€‰Eð‰Uôƒ=è^#„7 ƒì EØPèd ƒÄ…À…/ ƒ=è^#… ƒìjh;#é¥ ÝØÇEغ;#ƒøc~º ;#‰U܃=è^#uÇEðàÇEôÿÿïGéP ¡Ü^#‹à^#‰Eð‰Uôé9 ‰öÝØÇEغ;#ƒøc~º ;#‰U܃=è^#uÇEðàÇEôÿÿïGë¡Ü^#‹à^#‰Eð‰Uôƒ=è^#„a ƒì EØPèŽ ƒÄ…À…Y ƒ=è^#…= ƒìjh(;#éÏ
+vÝØÇEغ<;#ƒøc~º@;#‰U܃=è^#uÇEðàÇEôÿÿïÇë¡Ü^#‹à^#ò€‰Eð‰Uôƒ=è^#„å ƒì EØPè ƒÄ…À…Ë
+ƒ=è^#…¯
+ƒìjhE;#éA
+ÝØÇEغ<;#ƒøc~º@;#‰U܃=è^#uÇEðàÇEôÿÿïÇë¡Ü^#‹à^#ò€‰Eð‰Uôƒ=è^#„G
+ƒì EØPèt
+ƒÄ…À…?
+ƒ=è^#…#
+Ü^#‹à^#‰Mð‰]ôÙîÙÉÚéßàöÄEtC‰È‰Úò€‰Eð‰Uôë1‰öÇEغ¨<#ƒøc~º®<#‰U܍d$øÝ$jjè›Ý]ðƒÄƒ=è^#…jé|vÝØÇEغµ<#ƒøcŽ•º¸<#鋍vÝØÇEغW5#ƒøc~uºÔ:#ën‰öÝØÇEغË<#ƒøc~YºÎ<#ëR‰öÝØÇEغ5#ƒøc~=ºê:#ë6‰öÝØÇEغÒ<#ƒøc~!ºÕ<#ë‰öÝØÇEغ;#ƒøc~º;#‰UÜÇEðÇEôƒ=è^#„¯ƒì EØPèʃąÀ…•ƒ=è^#…‹ƒìjÿuÜjè£îÿÿƒÄ jh¼<#jè’îÿÿƒÄëfÝØÇEغ;#ƒøc~º!;#‰U܃=è^#uÇEðàÇEôÿÿïGë¡Ü^#‹à^#‰Eð‰Uôƒ=è^#tƒì EØPè2ƒÄ…À…ýè®íÿÿÇ"éívÝØÇEغ;#ƒøc~º!;#‰U܃=è^#uÇEðàÇEôÿÿïGë¡Ü^#‹à^#‰Eð‰Uôƒ=è^#„‰ƒì EØP趃Ä…À…ƒ=è^#uiƒìjh);#jè‘íÿÿƒÄëSÇEغž;#ƒøc~º¢;#‰UÜÝ]ðƒ=è^#ÿt ƒ=è^#uÇEðÇEôð?ë$‰öƒì EØPè@ƒÄ…ÀuèÀìÿÿÇ!ëÝØÝEðeø[^]ËT$â€‹D$%ÿÿÿ ЉD$ÝD$ÉöU‰å¸]ÉöÝD$ÙüÉö¼'U‰åWVSƒì ‹E ‰EðEƒEðƒeðøƒàø‰Eì‹Eð9EìsƒìjUh=#h"=#è˜ ƒÄ‹Eð9Eì„Ä‹E‹…Û„·‹C;C rƒìj`h=#h-=#è` ƒÄöCtƒìjah=#h`=#èC ƒÄöC tƒìjbh=#h =#è& ƒÄ‹Eì;CvL‹Eð;C sD‰Æ‹}ì;ss‹s;{ v‹{ 9÷wƒìjnh=#hA=#èæ ƒÄƒì‰ø)ðPVÿu蚃ċ…Û…Iÿÿÿeô[^_]ÐU‰åWVSƒì ‹u ‹E‹}‰ÂUƒÀƒàøƒâø9†ŒÇF‰F‰V ‹E‰F‰~ÇF‹MëF‰ö9óuƒìjlhÐ=#hÛ=#èX ƒÄ‹F ;Cv‹F;C sƒìjmhÐ=#h>#è1 ƒÄ‰Ù‹…Ût9{±9{u‹S +S‹F +F9Âwœ‰‰1eô[^_]ÃU‰åWVSƒì ‹]‹} …ÛuƒìjLh->#h5>#èÙ
+ƒÄ…ÿuƒìjMh->#h>>#è¾
+ƒÄƒÇƒçø‹3…ö„rvƒ~uƒ~t‹F;FsƒìjUh->#h€>#è€
+ƒÄƒ~t‹F;F rƒìjUh->#hà>#è[
+ƒÄ‹F +F9FvƒìjUh->#h ?#è9
+ƒÄ‹F÷ЅE…åF‰Eð‹^…Û„ԍv÷Ãtƒìj^h->#h`?#èø ƒÄöCtƒìj_h->#h ?#èÛ ƒÄƒ;t9wƒìj`h->#hà?#è» ƒÄ;^ rƒìjah->#hV>#èŸ ƒÄ9{rGv‹‰‹C)ø‰B‹Eð‰ë
+v‹‹Uð‰9~sƒìjwh->#hm>#è\ ƒÄ)~‰Øë‰ö‰]ð‹…Û…/ÿÿÿ‹6…ö…‘þÿÿ¸eô[^_]ÃU‰åƒì jÿjÿuÿuÿuÿu ÿuèƒÄ ÉÐU‰åWVSƒì‹]‹EE ‰Eð…ÛuƒìjTh @#h5>#èۃă} uƒìjUh @#h>>#较ċ;…ÿ„lƒuƒt‹G;Gsƒìj[h @#h€>#舃ăt‹G;G rƒìj[h @#hà>#ècƒÄ‹G +G9Gvƒìj[h @#h ?#èAƒÄ‹G÷ЅE…á‹Uð9WƒÕ‹M9O †ÉG‰Eì‹_…Û„¸v÷Ãtƒìjkh @#h`?#èèƒÄöCtƒìjlh @#h ?#è˃ă;t9wƒìjmh @#hà?#諃Ä;_ rƒìjnh @#hV>#菃ċU 9S‚$‰Þ;]s‹u¹;M}ºÓâ‹E1ð…ÂtÖA;M|è‰ð)ØE ;C‡è‹M 1;Eð‡æ‰ðƒàø‰Eè9Øsƒìh‘h @#h@#èƒÄ9]èvC‹Uè)ډUä÷Âtƒìh–h @#h@@#èãƒÄ‹‹M艋C+Eä‰A‹Eä‰C‰]ì‰ðƒà‹U Tƒâø‰U ‹Mè9Qv‰ÊU ‹‰‹A+E ‰B‹Eì‰ë
+‹Uè‹‹M쉋E 9Gsƒìh´h @#hm>#èkƒÄ‹U )W‰ðë‰ö‰]ì‹…Û…Kþÿÿ‹?…ÿ…•ýÿÿ¸eô[^_]ÃU‰åƒì jÿjjj ÿu hÿuèýÿÿƒÄ ÉÐU‰åWVSƒì‹]Shr@#è]Ìÿÿ‹3ƒÄ…ö„ƒìÿvÿvÿv‹F +FPÿv ÿvhA#è-ÌÿÿƒÄ ƒ~uƒ~t‹F;Fsƒìjah„@#h€>#袃ă~t‹F;F rƒìjah„@#hà>#è}ƒÄ‹F +F9Fvƒìjah„@#h ?#è[ƒÄ¿‹^…Û„¾ƒì ÿ3ÿs‰ØCPSh@A#èËÿÿƒÄ ÷Ãtƒìjih„@#h`?#èƒÄöCtƒìjjh„@#h€A#èóƒÄƒ{wƒìjkh„@#h‹@#èփă;t9wƒìjlh„@#hà?#趃Ä;^ rƒìjmh„@#hV>#蚃Ä{‹…Û…BÿÿÿƒìWh§@#èÜÊÿÿƒÄ9~tƒìjsh„@#hº@#è`ƒÄ‹6…ö…cþÿÿƒì hÒ@#è¦ÊÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u‹] ‰ßƒçø…öuƒìjNh=#h5>#è ƒÄ…ÛuƒìjOh=#h²A#èñƒÄƒ}uƒìjPh=#h>>#èԃĉ؃à‹UTƒâø‰U‹ëv‹…ÛuƒìjXh=#h½A#螃ă{uƒ{t‹C;CsƒìjYh=#h€>#èsƒÄƒ{t‹C;C rƒìjYh=#hà>#èNƒÄ‹C +C9CvƒìjYh=#h ?#è,ƒÄ;{‚hÿÿÿ;{ ƒ_ÿÿÿ‹EC‹C +C9Cvƒìjbh=#h ?#èòƒÄÇEð‹sëv‰uð‹6…öt9þróƒ}ðtm‹Eð@9ørc9øtƒìjnh=#hàA#諃ąöt8‹U:9ðr.9ðtƒìjuh=#h B#肃ċEF‹UðB‹‰ëE‹E‹UðBë9ƒ}ðt
+‹Eð‰8ëv‰{…öt‹U:9ðr‰ÐF‰G‹‰ë ‹E‰G‰7eô[^_]ÃU‰åƒì hÿu ÿuèÒýÿÿƒÄÉÐU‰å‹EÇ]ÉöU‰åWVSƒì ÇEèÇEìÇEð‹E‹0…ö„Zƒ~uƒ~t‹F;Fsƒìj]hFB#h€>#蠃ă~t‹F;F rƒìj]hFB#hà>#è{ƒÄ‹F +F9Fvƒìj]hFB#h ?#èYƒÄÿEð¿‹^…Û„¨v÷ÃtƒìjdhFB#h`?#è$ƒÄöCtƒìjehFB#h€A#èƒÄƒ{wƒìjfhFB#h‹@#èêƒÄƒ;t9wƒìjghFB#hà?#èʃÄ;^ rƒìjhhFB#hV>#讃ÄÿEì{‹…Û…[ÿÿÿ9~tƒìjnhFB#hº@#肃Ä‹FEè‹6…ö…§þÿÿƒì ÿuìÿuðÿuèÿuh`B#è¶ÆÿÿƒÄ eô[^_]ÍvU‰åVS‹u‹] EƒìPÿuh`Ù#è}ÈÿÿƒÄh`Ù#ÿ5 á#jSVhàB#è5ƒÄ eø[^]ÍvU‰åƒìÿ5Œá#jÿuÿu ÿuh B#èƒÄ ÉÉöU‰åƒì E Pÿuh`Ý#èÈÿÿƒÄ jjhX##èä%ÿÿƒÄh`Ý#hCC#è‚ÅÿÿÇ$Mè>ÿÿƒÄÉÐU‰åƒìh`Ý#h C#è[ÅÿÿƒÄÉÉöU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)лdâ#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»hâ#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Ÿâ#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰żâ#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆhâ#‰¸lâ#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹8å#‰U苀<å#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õ8å#|[‰Eäv1‰ÐÁà)ЍÅ;š8å#u ‹Eì;‚<å#|1‰Ï‰ÐÁà)Ћ Ÿâ#ƒùÿt4 1‰ÐÁà)Ћ]ä;Å8å#}«ƒÿÿt‰ÐÁà)ЋU‰Ÿâ#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰żâ#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆhâ#‰¸lâ#ƒÄ[^_]ÍvU‰å‹EÇÿÿÿÿÇ@ÿÿÿÿ]ÍvU‰åWVS‹uv‰ÐÁà)ЍÅP‹˜lâ#¿hâ#‹ 8ƒûÿt[‰ÐÁà)ЉLÇPëv‹E ‰ƒùÿt&I‰ÁÁá)Á»lâ#v‰ÐÁà)ЋDÃP‰DËPë v‹E ‰X[^_]ÐU‰åS‹M‹‰Øƒûÿt=‹@‰ÂÁâ)‹Õ¸â#‰ƒøÿt@‰ÐÁà)ÐÇżâ#ÿÿÿÿë
+vÇAÿÿÿÿ‰Ø‹$ÉÉöU‰åS‹M‹] ƒ;ÿt)I‰ÐÁà)Ћ‰Ÿâ#‹@‰ÂÁâ)‰ Õ¼â#됉KI‰ÐÁà)ÐÇŸâ#ÿÿÿÿI‰ÐÁà)ÐÇżâ#ÿÿÿÿ‰ ‹$ÉÃU‰åS‹M‹] ƒ{ÿt,I‰ÐÁà)ЋS‰żâ#‹C@‰ÂÁâ)‰ Õ¸â#ë‰ö‰ I‰ÐÁà)ÐÇżâ#ÿÿÿÿI‰ÐÁà)ÐÇŸâ#ÿÿÿÿ‰K‹$ÉÃU‰å‹E‹]ÉöU‰å‹E‹@]ÐU‰å·Eƒøt ƒø…Àtë-ƒøtƒøtë ¸aC#됸fC#됸jC#됸pC#됸14#]ÐU‰åWVSƒìœúX‰Â‰Uä÷Et$ƒìEèPjèD—ÿÿƒÄ ÿuìÿuèh€C#è]ÁÿÿƒÄ÷EtN¾;5á#sA¿Àá#vƒì µ‹;¶BP·BPRVhÀC#èÁÿÿƒÄ‹;VÿP ƒÄF;5á#rÇ÷Etƒì h›C#èíÀÿÿèP&ÿÿƒÄ‹Uä‰ÐPeô[^_]Éöì"Èî"Èî"Èî"Èî"Èî"4î"Èî"@î"Lî"Èî"Xî"Xî"Xî"Xî"Xî"Xî"Xî"Xî"Xî"Xî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî"Èî" ì" ì"Œí"Lí"Ìí"(î" ì"Èî"Èî"î"Èî"(î"Èî"í"Èî"Èî"$í"Èî"lì"Èî"Èî"¸ì"¬ï"Œñ"Œñ"Œñ"Œñ"Œñ"ñ"Œñ"ñ"ñ"Œñ"(ñ"(ñ"(ñ"(ñ"(ñ"(ñ"(ñ"(ñ"(ñ"(ñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"Œñ"¸ï"Ìï"Œñ"Œñ"Œñ"øð"Ìï"Œñ"Œñ"ìð"Œñ"øð"Œñ"Œñ"Œñ"Œñ"Äð"Œñ"ð"Œñ"Œñ"`ð"˜ô"¤ô"¤ô"¤ô"¤ô"¤ô"hò"hò"hò"hò"hò"hò"hò"hò"hò"hò"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"¤ô"˜ò"ó"ô"ô"ô"Œô"ó"¤ô"¤ô"€ô"¤ô"Œô"¤ô"¤ô"¤ô"¤ô"°ò"¤ô"Œó"¤ô"¤ô"¨ó"$@$@#p#Ü#L#œ#ì#<#l#ø#„##œ#( #´ #
+#Œ
+#L#|##Œ## ##„#ð#\#À# #P#t##¬#È#ä#d#Ü#d#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä##p#Ü#L#œ#ì#<#l#ø#„##œ#( #´ #
+#Œ
+#L#|##Œ## ##„#ð#\#À# #P#t##¬#È#ä#d#Ü#d#J1 starts and call sigwait(31)
+J1 exit from sigwait(), err=%d, sig=%d
+J2 starts and call sigwaitinfo(30)
+J2 exit from sigwaitinfo(), err=%d, signo=%d code=%d value=%d
+J3 starts and call sigtimedwait(29)
+J3 exit from sigtimedwait(), err=%d, signo=%d code=%d value=%d
+J4: AAAARRRRGGGHHH!!! killed by someone...
+J4 starts and call sigtimedwait(28)
+J4 exit from sigtimedwait(), err=%d, signo=%d code=%d value=%d
+main: kill(31), then wait until t=0.4 sec
+main: sigqueue(30), then wait until t=0.8 sec
+main: creating J1
+Error creating J1
+main: creating J2
+Error creating J2
+main: creating J3
+Error creating J3
+main: creating J4
+Error creating J4
+main: waiting 0.2 sec
+main: kill(J4)
+main: ending...
+Error during Keyboard Initialization!!!Ctrl-C pressed!
+KeybPortKeyTasktask_create
+scheduletime %lus %luns * caplasttime %lus %luns * exec=%d TIME = %lu
+The system tick must be less than 55 mSec!Abort detected
+Code : %u
+Too many scheduling levels!!!
+Too many resource levels!!!
+debug info noticewarn err crit alert emerg <%i>[%s] %sPosix task
+Signal number %d...
+with value : %d
+POSIX_ReadyPOSIX_DelayPOSIX_UnknownSlice: %d
+MainPOSIX_register_level
+ alloco descrittore %d %d
+ lev=%d
+POSIX schedulerPid: %d Name: %20s Prio: %3ld Status: %s
+
+Panic!!! can't create main task...
+dummy PID: %d
+Dummy1Dummy2Dummy3Dummy4Dummy5Dummy6Dummy7Dummy8Dummy9Dummy0DummyaDummybDummycDummydDummyeDummyfDummygDummyhDummyDummy (RR) Posto dummy_create
+
+Panic!!! can't create dummy task...
+Entro in dummy_register_level
+Port des :
+Free port des : %d
+%d %s vt: %d pn: %d
+%d pd: %d vt: %d pn: %d Resources owned by the tasks:
+%-4dPI_register_module
+PI module
+PC priority of the tasks:
+%-4ldPC_register_module
+PC moduleTR %x
+SS:SP %x:%lx
+Stack0 : %x:%lx
+Stack1 : %x:%lx
+Stack2 : %x:%lx
+CS : %x DS : %x
+Descriptor [%x] InfoNo more Descriptors...
+%x (Hex)Base : %lx Lim : %lx Acc : %x Gran %x
+2Coprocessor error#Page fault*General protection fault*Stack exception*Segment not present*Unvalid TSS#INTEL reserved*Double defect1FPU context switch*Unvalid opcode#BOUND limit exceeded#Overflow detected on INTO#Breakpoint trap#NMI detected#Debug fault#Division by 0Exception %d occurred
+ABORT %d !!!LL Time Panic!!!
+time.cError! File:%s Line:%d %sOne-shot timer selected...
+Periodic timer selected...
+Unhandled Exc or Int occured!!!
+Æ@,ú1°<NaN+Inf-Infacosacosfacos: DOMAIN error
+asinasinfasin: DOMAIN error
+atan2atan2fatan2: DOMAIN error
+hypothypotfexpexpfy0fy0: DOMAIN error
+y1fy1: DOMAIN error
+ynynfyn: DOMAIN error
+lgammalgammaflgamma: SING error
+loglogflog: SING error
+log: DOMAIN error
+log10log10flog10: SING error
+log10: DOMAIN error
+powpowfpow(0,0): DOMAIN error
+pow(0,neg): DOMAIN error
+sinhsinhfsqrtsqrtfsqrt: DOMAIN error
+fmodfmodffmod: DOMAIN error
+remainderremainderfremainder: DOMAIN error
+acoshacoshfacosh: DOMAIN error
+atanhatanhfatanh: DOMAIN error
+atanh: SING error
+scalbscalbfj0j0f: TLOSS error
+j1j1fjnjnfneg**non-integral: DOMAIN error
+à?addfree.cmax >= minreg->min < reg->maxnew_max > new_min(reg->min & (sizeof(struct lmm_node) - 1)) == 0(reg->max & (sizeof(struct lmm_node) - 1)) == 0addregio.cr != reg(reg->max <= r->min) || (reg->min >= r->max)alloc.clmm != 0size > 0reg->free >= 0(DWORD)node < reg->maxreg->free >= size(reg->nodes == 0 && reg->free == 0) || (DWORD)reg->nodes >= reg->minreg->nodes == 0 || (DWORD)reg->nodes < reg->maxreg->free <= reg->max - reg->min((DWORD)node & (sizeof(struct lmm_node) - 1)) == 0((DWORD)node->size & (sizeof(struct lmm_node) - 1)) == 0(node->next == 0) || (node->next > node)alloc_ge.canode >= node(split_size & (sizeof(struct lmm_node) - 1)) == 0lmm_dump(lmm=%p)
+dump.cnode->size >= sizeof(*node) free_check=%08lx
+reg->free == free_checklmm_dump done
+ region %08lx-%08lx size=%08lx flags=%08lx pri=%d free=%08lx
+ node %p-%08lx size=%08lx next=%p
+(node->size & (sizeof(struct lmm_node) - 1)) == 0block != 0reg != 0(DWORD)prevnode + prevnode->size == (DWORD)node(DWORD)node + size == (DWORD)nextnodestats.cLMM=%p: %u bytes in %u regions, %d nodes
+assertion %s failed in %s at line %i (task:%i_%i)
+MAGIC assertion failed in %s at line %i (task:%i_%i): %s
+KERNEL PANIC (sys_panic_stub): %s
+KERNEL PANIC (sys_panic): %s
+FreeExeSleepWaiting on joinTime (EXACT) : %lus %luns
+< Memory Dump >
+< Level %d : %s Code: %d Version: %d >
+1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ[]@#\#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍ3#Æ3#¿3#¸3#±3#ª3#£3#œ3#@|"H|"H|"ó8#æ8#Ø8#Ç8#¬8#–8#†8#r8#c8#S8#F8#18# 8#8#ú7#S8#ç7#þþAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAš':#ðÿÿÿÿGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.text.rodata.data.sbss.bss.comment.note"€p(!€(#)h )èS#hD /ì^#€O5_#€O8ã :€OLCÌ`h4gI
\ No newline at end of file
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: pse51/ptest2
===================================================================
--- pse51/ptest2 (.../tags/rel_0_3) (nonexistent)
+++ pse51/ptest2 (.../branches/pj) (revision 1085)
@@ -0,0 +1,437 @@
+ELF"4`d4 ( €""È@È@ HAÈP#ÈP# Pî 덶°­üORäe‹Ká€uU¿€ Ç–eÆG1GeÆGGeÆG2GeÆG¸Ôæ"fe£èP#Áèfe£îP#ÈX#¿€ Ç’eÆG0GeÆGf¸0ŽØŽÀŽÐŽàŽè¼àƒ#Ç°¹%àc#Ç´¹%àƒ#£ÔX#‰ØX#ÈX#êµ"8ÎX#üèâÒê U‰å‹Eê ‰öU‰åƒì0ÆEéxÆEê-ÆEèh0"ƒì‹Eèf‰$ÆD$-èiÇ$’-#èaæƒÄh@"hLÞ#èã>ƒÄÿ5LÞ#h¬-#è<æÇ$À-#è0æh†h°"jEäPèMƒÄ …Àtƒì hÓ-#èæƒÄƒìÿuähæ-#èôåÇ$û-#èèåhE h°"jEàPèGMƒÄ …Àtƒì h.#è¿åƒÄƒìÿuàh!.#è¬åÇ$6.#è åƒÄƒì jèn<ƒÄ=vìƒì hM.#è{åƒÄÿuäè˜NƒÄÿuàèNÇ$c.#èY布ÄÉÍvU‰åƒìÿ5lÞ#hp-#è6åƒÄÉÐU‰åSƒì‹]Sÿ5lÞ#h€.#è庅ëQ‰Ø÷êÁúÁû)ڃÄRÿ5LÞ#è9>ƒÄ‹]üÉÐU‰åƒìÿ5LÞ#èû=ƒÄ Pÿ5lÞ#hÀ.#èÇäƒÄÉÉöU‰åSƒì ‹]h$"hÜX#è¯OƒÄÿ5lÞ#hà.#è”äƒÄSÿ5LÞ#èÉ=ƒÄÿ5LÞ#è—=ƒÄ Pÿ5lÞ#hÀ.#ècäƒÄÿ5lÞ#h€-#èP七Ä‹]üÉÍvU‰åƒìèÁ:ÉÍvU‰åƒìj ÿujh'èMè‰è‡¬è¶²è1™ƒÄ jjjèÿLèîv¸èƒÄÉÃU‰åWVSƒìX‹]}¨¾àX#ü¹ó¥E¸‰E¨fÇE¸ÇE¼ÇEÀfÇEÄÇEÐÇEÔÇEÜÇEà‰]ÈÇEØÇEÌjè8L‰EÐÇEÜÇEàƒMÌ
+è֜E¨‰$ècƒÄ…Àyƒì h /#è»ãƒÄƒì SèoE¸ƒÄeô[^_]ÍvU‰åƒìŠU€=ðY#„¶€ú*t€úªt
+€ú6t€ú¶uÆðY#¸é›„Òy,ÆðY#€ú¸uÆüY#ÆòY#ëՀúuÐÆüY#ëljöÆðY#€ú8u€ +üY#ÆòY#멀úu € +üY#뛉ö€ú5uf¾•„#·Àé)v€ú…•f¾|„#·Àé +v€úàuÆðY#éTÿÿÿv€ú*t€ú6u2ÆñY#€ú*u€ +üY#é/ÿÿÿ‰ö€ú6…$ÿÿÿ€ +üY# éÿÿÿv€úªt€ú¶u"ÆñY#€úªt €ú¶…öþÿÿÆüY#éêþÿÿ€úFu€=õY#•õY#ë.v€ú:u€=óY#•óY#ëv€úEu;€=ôY#•ôY#ƒì¶õY#P¶óY#P¶ôY#Pèõ¸ƒÄé€úu€ +üY#éhþÿÿv€ú8u€ +üY#éTþÿÿv€út€ú¸uÆüY#é;þÿÿ‰ö¸„҈рúRt2€úOt-€úSt(€úPt#€úQt€úKt€úLt€úMt€úGt
+€úHt€úIu€=ôY#uT€=ñY#uK·Â +ÿë~€=óY#t/Bð< vBâ<vBÔ<w€=ñY#t¶Âf¾€`„#·ÀëG€=ñY#t¶Âf¾€…#·Àë-v€=òY#t¶Âf¾€ …#·Àëv¶Âf¾€`„#·ÀÉÃU‰åWVSƒì,}؃ìjE×PèòƒÄ…À„¡ƒì ¶E×Pèöüÿÿ‰ÂƒÄf…Ò„†÷Âÿt  üY#ƒÈ@ë‰ö üY#ˆE؈UيE׈EÚ±»;X„#}8¾àƒ#v݊D2:EÚuŠ2:EØuƒì Wÿ’äƒ#±ƒÄC;X„#|ЄÉuƒìjW¿"†#Pèý¡ƒÄè-é<ÿÿÿU‰å‹E£ìY#Šˆb„#ŠPˆc„#ŠPˆd„#ŠPˆe„#ŠPˆf„#ŠPˆg„#ŠPˆh„#ŠPˆi„#ŠPˆj„#ŠP ˆk„#ŠP
+ˆ…#ŠP ˆ…#ŠP ˆ…#ŠP +ˆ…#ŠPˆ…#ŠPˆ…#ŠPˆ…#ŠPˆ …#ŠPˆ
+…#ŠPˆ …#ŠPˆl„#ŠPˆ …#ŠPˆm„#ŠPˆ +…#ŠPˆz„#ŠPˆ…#ŠPˆ{„#ŠPˆ…#ŠPˆ‡„#ŠPˆ'…#ŠPˆˆ„#ŠPˆ(…#ŠP ˆ‰„#ŠP!ˆ)…#ŠP"ˆ•„#ŠP#ˆ5…#ŠP$ˆ“„#ŠP%ˆ3…#ŠP&ˆ”„#ŠP'ˆ4…#ŠP(ˆ‹„#ŠP)ˆ+…#ŠP*ˆ™„#ŠP+ˆ9…#ŠP,ˆn„#ŠP-ˆ…#ŠP.ˆo„#ŠÖˆ…#ŠP0ˆa„#ŠP1ˆ…#ŠP2ˆ|„#ŠP3ˆ…#ŠP4ˆd…#ŠP5ˆO…#ŠP6ˆP…#ŠP7ˆQ…#ŠP8ˆK…#ŠP9ˆL…#ŠP:ˆM…#ŠP;ˆG…#ŠP<ˆH…#ŠP=ˆI…#ŠP>ˆR…#ŠP?ˆS…#ŠP@ˆ®„#ŠPAˆ—„#ŠPBˆ•„#ŠPCˆª„#ŠPDˆN…#ŠPEˆ7…#ŠPFˆJ…#ŠPGˆ~„#ŠPHˆ…#ŠPIˆ„#ŠPJˆ0…#ŠPKˆŽ„#ŠPLˆ.…#ŠPMˆ€„#ŠPNˆ …#ŠPOˆr„#ŠPPˆ…#ŠPQˆ„#ŠPRˆ!…#ŠPSˆ‚„#ŠPTˆ"…#ŠPUˆƒ„#ŠPVˆ#…#ŠPWˆw„#ŠPXˆ…#ŠPYˆ„„#ŠPZˆ$…#ŠP[ˆ…„#ŠPRˆ%…#ŠP]ˆ†„#ŠP^ˆ&…#ŠP_ˆ’„#ŠP`ˆ2…#ŠPaˆ‘„#ŠPbˆ1…#ŠPcˆx„#ŠPdˆ…#ŠPeˆy„#ŠPfˆ…#ŠPgˆp„#ŠPhˆ…#ŠPiˆs„#ŠPjˆ…#ŠPkˆ„#ŠPlˆ…#ŠPmˆt„#ŠPnˆ…#ŠPoˆv„#ŠPpˆ…#ŠPqˆ„#ŠPrˆ/…#ŠPsˆq„#ŠPtˆ…#ŠPuˆ„#ŠPvˆ-…#ŠPwˆu„#ŠPxˆ…#ŠPyˆŒ„#ŠPzˆ,…#ŠP{ˆº…#ŠP|ˆ»…#ŠP}ˆDž#Š@~¢È…#]ÍvU‰åWVSƒì\‹]}ؾZ#ü¹󥿸ƒ=øY#…Qº¾`„#¹…#‰ö·ÂÆ0ÆBfúví…Ûu]؃{ÿuÇCìX#ƒì ÿsèûÿÿÇ$jjjhY/#èϔf£"†#ƒÄ fƒøÿu ¸þÿÿÿéÞ‰öjjjhY/#è0˜f£$†#ƒÄfƒøÿuƒì ¿"†#P蕛¸ýÿÿÿ頍vÇX„#ƒ{ÿuÇC "ƒ{tIÆE™cÆEš.ÆE˜ƒìÿsƒì‹E˜f‰$ÆD$.èÅÆE˜ƒÄÿsƒì‹E˜f‰$ŠEšˆD$襃ă;ÿuQfÇE¨ÇE¬ÇE°fÇE´ÇE¸ÇEÐÇEÈÐÇEÄ ÇEÀ¨aÇE¼
+ÇE̍E¨ë‹ƒì jjPh("hb/#èÿ‰ÃƒÄ ‰(†#ƒøÿu'ƒì ¿"†#P蓚¿$†#‰$脚‰Ø钐ƒ=Z#uWƒì ÿ5(†#艉ǃąÿt4ƒì ¿"†#PèLš¿$†#‰$è=šƒÄÿ5(†#èg5¸üÿÿÿë=ÇZ#ëèƒì¶õY#P¶óY#P¶ôY#PèûÇøY#‰øƒÄeô[^_]ÃU‰åƒì¶EPEèP¿$†#Pè0œƒÄ„Àt÷Eè@u¶Eéë‰ö¸ÉÐU‰åƒì ¶E Pÿu¿$†#Pèõ›·ÀƒÄÉÐU‰åSƒ=X„#0‹ +X„#Í»àƒ#‹Ef‰ŠE
+ˆD‹E ‰‚äƒ#A‰ +X„#‹$ÉÉöU‰åƒìèÉÍvU‰åƒìè±ÉÍvU‰åƒì¸ÿÿÿÿƒ=øY#t9蓃ì ÿ5(†#è-4¿"†#‰$è昿$†#‰$èט¸ƒÄÉÐU‰åƒìjèoÔÇ$è+ÔÇ$H/#èóÓè²-ƒÄÉÐU‰åWVSƒìŠEˆEó¿1¾d»`‰ö¹v‰òì©t"‰ÈA=þÿÿvì¸ÿÿÿÿ…Àu‰ÚŠEóî¸ë‰ö¸ë搸ÿÿÿÿÇEì¹d…Àt¸ÿÿÿÿët¸ë‰Êì©uî‹EìÿEì=þÿÿvé¸ÿÿÿÿ…Àu‰Úì¶Àë¸ÿÿÿÿƒøÿu
+¸þÿÿÿë3v=úu ¸ë"‰ö=þt ¸ýÿÿÿë‰ö‰øO…À9ÿÿÿ¸üÿÿÿƒÄ[^_]ÃU‰åVSƒìŠEˆE÷³Ô¾¹d‰ö‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë搸ÿÿÿÿ…Àt¸ÿÿÿÿëL¸ë&»¹d‰ö‰Êì©tâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuº`ŠE÷î¸ëv¸ÿÿÿÿ…Àt¸ÿÿÿÿëj¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuºdì© tº`ì¶Ðëvºÿÿÿÿ‰Ð…Òx¸úú”ÀDþƒÄ[^]ÃU‰åWVSƒì »¾`‰ØK…À~^ƒì hÿè¼ýÿÿ‰ÂƒÄ…Òu{¿¹d‰Êì©u‰øG=þÿÿvì¸ÿÿÿÿ…Àu‰òì¶Ðëv¸ëꐺÿÿÿÿúªu›¸üÿÿÿúª…ƃì hõèMýÿÿ‰ÂƒÄ…Òt(¸ûÿÿÿ馉ö¸ýÿÿÿ隉ö¸ë.¸ëZ³`¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³e¾¹dv‰Êì©t®‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîƒì hôèªüÿÿ‰ÂƒÄ¸…Ò•ÀHƒàƒèeô[^_]ÃU‰åWVSƒì ¾»d¹`‰Úì©t +‰Êì‰ðF=þÿvé³­¾¹d‰Êì©„‚‰ðF=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¾»d¹`‰Úì©t +‰Êì‰ðF=þÿv鳪¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸놐¸ÿÿÿÿ…Àt¸÷ÿÿÿéݐ¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿƒøUt¸ÿÿÿÿ錸ë&³«¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸öÿÿÿé9¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸þÿÿÿé鐸ë&³®¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…À…<èzüÿÿ…À…Žƒì hóèIúÿÿƒÄ…Àt
+¸ùÿÿÿépƒì jè.úÿÿƒÄ…Àt¸øÿÿÿéU¸ë.ÆZ#³©¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ôÿÿÿéù¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸óÿÿÿ驐¸ë&³¨¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸õÿÿÿéU¸ë&³Ó¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ðÿÿÿ鐸ë&³Z¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë¸ÿÿÿÿ…Àt¸ïÿÿÿ魐ÆZ#ëBv¸ë^¹þÿ¾d»`‰òì¶ø÷Çt‰Úì¶À÷Ç tƒøZt»IƒùÿuÙ³§¾¹d‰Êì©tª‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àté»þÿÿ‰ö¸ë:€=Z#„þÆZ#³¨¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸îÿÿÿ鱐¸ëvƒì hóèWøÿÿ‰ÃÇ$dèIøÿÿÃÇ$èè;øÿÿÃÇ$è-øÿÿÃÇ$çèøÿÿþ§ƒÄ¿¹dv‰Êì©t’‰øG=þÿÿvì¸ÿÿÿÿ…Àuºd‰ðî¸ë¸ÿÿÿÿ…Àt¸íÿÿÿë…ÛuÆZ#¸eô[^_]ÃU‰åVS¡$Z#…Àt¡$Z#H£$Z#¸é²¸ë6ƒ=Z#uKŠ Z#¾¹dv‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿZ#뤍v¸ë:ƒ=Z#uGÇZ#³ô¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…À…Xÿÿÿº`ˆØîéKÿÿÿ‰ö¸[^]ÍvU‰åWVSƒì ¡(Z#@£(Z#¾õ³Ô¿¹dv‰Êì©t"‰øG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîœúX‰Çƒì hõè5õÿÿ‰ÃƒÄ…Ût¸ûÿÿÿéù‰ö¸ë1¾§ÇEð¹dv‰Êì©tڋEðÿEð=þÿÿvé¸ÿÿÿÿ…Àu ºd‰ðî¸ë¸ë=¸ëq¸ÿÿÿÿþ`ÇEð¹d‰Êì©t΋EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuºd‰ðî¾eÇEð¹dv‰Êì©tš‹EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuº`‰ðîƒì hôè;ôÿÿÃĉøPÆZ#‰Øeô[^_]ÐU‰åWVSƒì ¸ÿÿÿÿ€=Z#„ºœúX‰Æƒì hõèóóÿÿƒÄ…Àt(¸ûÿÿÿé—‰ö¸ë:¸ëf¸é“‰ö³`¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³G¿¹dv‰Êì©t¢‰øG=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØ¿¹dv‰Êì©„rÿÿÿ‰øG=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt ¸îÿÿÿ鐃ì hôèÿòÿÿƒÄ…Àt¸Ûÿÿÿ飉ö¸ë:‰ðP¡(Z#@£(Z#¾ô³Ô¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîÆZ#¸eô[^_]ÍvU‰åƒìÇD‡#Ç@‡#ƒ=Z#t!úè‹õÿÿ£Z#ÇZ#û…Àtúèôÿÿû¡Z#…Àuƒìÿuh ""jèQ¸ƒÄÉÍvU‰åVS¡$Z#@£$Z#³õ¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åVS¡$Z#@£$Z#³ô¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åƒì‹MœúX‰Â¡@‡#@%ÿ£@‡#Š€@†#ˆ‰ÐP€9úu è(úÿÿë‰ö¸ÉÐU‰åƒìƒ=0Z#t(Ǥ‡#Ç ‡#Ǩ‡#Ç0Z#‹E£,Z#ƒ=Z#t!úèôÿÿ£Z#ÇZ#û…Àtúèòÿÿû¡Z#…Àu.¸ìÿÿÿ€=Z#t ƒìjÿhH""j èOÆZ#¸ƒÄÉÉöU‰åS‹MœúX‰Ã¡ ‡#@ƒà?£ ‡#º`‡#ŠˆA¡ ‡#@ƒà?£ ‡#Šˆ¡ ‡#@ƒà?£ ‡#ŠˆA‰ØP¸‹$ÉÉöU‰åƒì€=Z#tèäùÿÿƒì j èŽOÆZ#¸ƒÄÉÐU‰åƒìƒ=Z#t!úè óÿÿ£Z#ÇZ#û…Àtúè™ñÿÿû¡Z#…Àt¸ë¶Z#ÉÍvU‰åVSŠEŠU€} t ƒ + Z#ë ‰öƒ% Z#„Àt ƒ + Z#ëƒ% Z#„Òtƒ + Z#ë¸ë6¸ëbƒ% Z#³õ¾¹d‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî³í¾¹dv‰Êì©t¦‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿZ#[^]ÐU‰åSƒìœúX‰Ã€=Z#tè–øÿÿè‘ðÿÿƒì hóèhîÿÿƒÄ…Àuƒì jèWîÿÿƒÄ…Àu‰ØP‹]üÉÍvU‰åº`ì¶ÈœúX‰Â¡@‡#;D‡#t¡D‡#ˆˆ@†#@%ÿ£D‡#‰ÐP]ÉöU‰åƒìº`ì¶Ðƒ=¨‡#u €úúu¡(Z#H£(Z#郍v÷ÂÀuxÿ¨‡#œúX‰Á¡ ‡#;¤‡#t¡¤‡#ˆ`‡#@ƒà?£¤‡#ë"‰ö¡¤‡#+¨‡#ƒÀAƒà?£¤‡#Ǩ‡#‰ÈPƒ=¨‡#uǨ‡#ƒì ÿ5,Z#èƒÄÉÉöU‰åSƒì}™w‹UÑâU‰ÐÁà)Ðfƒ<Åhß#uèùÝNj¸ÿÿÿÿ鏐ƒ=@Þ#tcœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€Aß# t ÿ€Dß#ë-v‹EÑàE‰ÂÁâ)‹ÕDß#ƒì‹• Þ#ÿuRÿP@ƒÄ‰ØPéèƒ¡…ÀtgœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€Aß# t ÿ€Dß#ë2v‹EÑàE‰ÂÁâ)‹ÕDß#ƒì‹• Þ#ÿuRÿP@蔃ĉØPé­úèJ²‹lÞ#R‰ÑÁá)Ñ»@ß#f‰DË‹UÑâU‰ÐÁà)ЍÅ0öD t ÿ€Dß#ë?vƒìU‰ÐPjÿlZ#‹MI‰ÐÁà)ЋÅDß#ƒÄ‹• Þ#QRÿP@è/ƒÄ¡lÞ#@‰ÂÁâ)ƒì ¿ÕHß#P踱èƒÄû¸‹]üÉÐU‰åWVSƒì ‹]f…Ûuè>Ünj¸ÿÿÿÿé"‰öƒ=@Þ#„“œúX‰ÇÇEð}ð™s¾@ß#‹UðÑâUð‰ÐÁà)ÐÁàf9\,uHƒÀ0öD0 t ÿ€Dß#ë6ƒìEðPjÿlZ#‹MðI‰ÐÁà)ЋÅDß#ƒÄ‹• Þ#QRÿP@ƒÄÿEð}ð™~“‰øPé}‰ö蓟…À„›œúX‰ÇÇEð}ð™w¾@ß#‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€Dß#ë8vƒìEðPjÿlZ#‹MðI‰ÐÁà)ЋÅDß#ƒÄ‹• Þ#QRÿP@ƒÄÿEð}ð™~èj‰øPéԐúè"°‹lÞ#R‰ÑÁá)Ñf‰ÍHß#ÇEð}ð™w¾@ß#‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€Dß#ë8v‹MðI‰ÐÁà)ЋÅDß#ƒì‹• Þ#QRÿP@ƒÄEðPjÿlZ#ƒÄÿEð}ð™~èÞ ¡lÞ#@‰ÂÁâ)ƒì ¿ÕHß#Pèj¯èÁƒÄû¸eô[^_]ÃU‰åSƒìúè;¯‹lÞ#R‰ÑÁá)Ñf‰ÍHß#ƒìh$ß#jèl–ƒÄUð¡(ß#;xÞ#|¡$ß#+tÞ#‰Eð¡(ß#+xÞ#ë!‰ö¡$ß#+tÞ#H‰Eð¡(ß#+xÞ#ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыlÞ#R‰ÐÁà)Ð) Ōß#ƒì Qè. ƒÄƒ=|Þ#ÿtƒì ÿ5|Þ#ÿHÞ#Ç|Þ#ÿÿÿÿƒÄ‹ +lÞ#I‰ÐÁà)ЋÅDß#ƒì‹… Þ#QPÿRLè{ ƒÄhlÞ#jÿlZ#ÇlÞ#ÿÿÿÿÇ€Þ#ÿÿÿÿèV ¡lÞ#@‰ÂÁâ)¿ÕHß#‰$èã­è:ƒÄû‹]üÉÐU‰åƒìhÌ("è( ƒÄÉÍvU‰åƒìjè ƒÄÉÉöU‰åƒìƒ=8Z#u(èè
+ƒì ¡lÞ#@‰ÂÁâ)¿ÕHß#Pèt­ƒÄÉÍvU‰åWVSƒìhj/#è]$ƒÄ»@ß#ëv‹Eð@‰ÐÁà)ЁLÃ0€ƒì häÞ#èÊ+‰EðƒÄƒøÿ„“@‰ÐÁà)ÐöDÃ1@u¾‹UðR‰ÃÁã)ÃÁã¾@ß#¡4Z#‰3@£4Z#‹E ‰DƒìjÿuƒTß#Pè ¾ÆD'ƒÃ fÇD3‹Mf‹%ÿf‰D3
+f‹A f‰D3 ƒÄ‰Ø‰ñº‹]ƒ{tf‹Sf‰T‹UðR‰ÁÁá)ÁÁáY0‹U‹B +‰ƒ@ß#¿Dß#Ç;¾Hß#¡lÞ#@‰ÂÁâ)‹DÖ0‰3ºLß#ǍAP‹]ð‰˜@ß#Ç8ÇÿÿÿÿÇ0ÿÿÿÿǁ ß#°Ç8Ç0ǁÁÀǁ@ß#Ç9ºۍƒ€ 
+Ç…¤ß#Bƒúvì‹Eð@‰ÐÁà)ÐÁàÀǂHß#ÿÿÿÿǂLß#”ß#‰à#º‹Mðɍ€ ‰ö
+Ç…à#Bƒú~ì»ëC;pÞ#sƒì‹ Þ#ÿuSÿPƒÄ…Àxß;pÞ#u7‹]ð[‰ÂÁâ)ÂfÇÕhß#ƒìhäÞ#SèÚ)è¡ÕDŽ鄉ö‹Eð@‰ÐÁà)Ѝ4ʼnžDß#ƒì‹ Þ#ÿuÿuðSÿP,ƒÄ…ÀyWfdžhß#ƒìhäÞ#ÿuðèz)èAÕDžë'è3Õǃ釃ì ÿuðè9èÕdž¸ÿÿÿÿƒÄëjƒE‹U‹zü…ÿtY‰ö¾ëF;5dÞ#s0ƒìµ‹ƒß#WVÿP ƒÄ…Àxۃ싃ß#WÿuðVÿP$ƒÄ;5dÞ#t‡ƒE‹M‹yü…ÿu©‹Eðeô[^_]ÉöU‰åƒìEPÿuÿu ÿuè`üÿÿƒÄÉÍvU‰åWVSƒì ‹} ƒt6‹EÑàE‰ÂÁâ)‹G‰ÕLß#‰Æ‹UÑâU‰ÐÁà)Ѓ Åpß#@ën‰öƒì ‹UÑâU‰ÐÁà)зÅnß#Pè@‹UÑâU‰ÑÁá)Ñ»Lß#‰ˉƋEÑàE‰ÂÁâ)ƒÄƒ<Óuƒì ÿuèìèËÓLjëtv‹EÑàE‰ÂÁâ)»@ß#·DÓ.ƃì ·GPjÿwVh¸/"è-‰ÁƒÄ f…Éu?ƒì‹UÑâU‰ÐÁà)зDÃ.PVèƒÄÿuèvèUÓlj¸ÿÿÿÿƒÄëN‹EÑàE‰ÂÁâ)Âf‰ ÕHß#ƒìU‰ÐPjÿlZ#ƒÄöGu ÿ`Þ#ëvöGuÿ ß#¸eô[^_]ÍvU‰åWVSƒì ‹M‹U ‹]œúX‰ÇEPSRQè­úÿÿ‰ÆƒÄƒþÿ„ɍv‰ÐÁà)ЋÅDß#‹… Þ#ƒx(„èà…À‰€»;dÞ#svƒì‹ß#VSÿP(ƒÄC;dÞ#råv‰ÃÁã)ÃÁ㋃Dß#ƒì‹… Þ#VPÿR0fǃhß#ƒÄhäÞ#Vè\&ƒÄè ÒLJ‰øP¸ÿÿÿÿë#vƒìSVèŽýÿÿƒÄº…À”ÂJ ։øP‰ðeô[^_]ÃU‰åVS‹u»;dÞ#svƒì‹ß#VSÿP(ƒÄC;dÞ#råv‰ÃÁã)ÃÁ㋃Dß#ƒì‹… Þ#VPÿR0fǃhß#ƒÄhäÞ#Vè¬%ƒÄeø[^]ÉöU‰åVS‹]è ƒì ¡lÞ#@‰ÂÁâ)¾@ß#SÿTÖú‰$èn¡lÞ#@‰ÂÁâ)¿DÖ‰$èn¦ƒÄeø[^]ÃU‰åWVSƒì‹]‹}úû™w! [‰ÈÁà)ÈÁàº@ß#öD0tfƒ|(u û¸ÿÿÿÿéDžÿy$[‰ÁÁá)Á Í°¸Dß#‹<Çë ‰öƒÿv¿[‰ÁÁá)Á Í°‰Mä¹Hß#‰Mì‹Uä‹
+‰Â)úƒÂ‰Ð¾º÷ö‰Eð‹uä;tMۍƒ€4‹MðىÈÁà)ȍ Å°‰ö2‹…¤ß#‹] ‰ƒÃ‰] B»‰Ðº÷ó‹]ì;uÔû‰øƒÄ[^_]ÐU‰åSƒì‹]‹ +lÞ#I‰ÐÁà)ЍÅö‚pß#tɍ€È‚øß#…¤ß#¡$ß#;tÞ#|;tÞ#uA¡(ß#;xÞ#}4ƒìSÿ5lÞ#ÿ5xÞ#ÿ5tÞ#ÿ5(ß#ÿ5$ß#h€/#è8¶ƒÄ è@ ‹]üÉÍvU‰åWVS‹ +lÞ#I‰ÐÁà)ЍÅöƒpß#„›ɍ€ȍ‹°Hß#ºDß#‹t‚`‹”À¸Lß#94s‰4‹lÞ#[‰ÁÁá)ÁÁፁÀ°@ß#¿Dß#B‰8±°‹†Hß#@º‰Ñº÷ñ‰–Hß#ۍƒ€ØÐÇD‡`ƒ<>wÿ>[^_]ÉöU‰åWVS‹M‹] ‹u‹}úù™w!I‰ÐÁà)ÐÁàº@ß#öD0tfƒ|(uû¸ÿÿÿÿëy…ÛtI‰ÂÁâ)‹Õà#‰…ötI‰ÂÁâ)‹Õüß#‰…ÿtI‰ÂÁâ)‹Õà#‰ƒ}t(ɍ€ȍ I‰ÊÁâ)ÊÕøß#‹…¤ß#‹U‰û¸[^_]ÉöU‰å‹Múù™w!I‰ÐÁà)ÐÁàº@ß#öD0tfƒ|(uû¸ÿÿÿÿë7I‰ÂÁâ)ÂÁ⍂Àǀ@ß#ǀDß#ǂüß#û¸]ÍvU‰åWVSƒì ƒ=lÞ#ÿt¡lÞ#@‰ÂÁâ)ÂöÕpß#…3ƒ=lÞ#ÿ„ƒìh$ß#j證ƒÄUè¡(ß#;xÞ#|¡$ß#+tÞ#‰Eè¡(ß#+xÞ#ë"v¡$ß#+tÞ#H‰Eè¡(ß#+xÞ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыlÞ#R‰ÐÁà)Ð) Ōß#ƒì QènüÿÿƒÄƒ=|Þ#ÿtƒì ÿ5|Þ#ÿHÞ#Ç|Þ#ÿÿÿÿƒÄ‹ +lÞ#I‰ÐÁà)Ћ<ÅDß#ƒì‹½ Þ#QWÿP<ƒÄ¿4½ƒì ‹† Þ#WÿP$‰ÃƒÄƒûÿt%ƒì[‰ÐÁà)ЋÅDß#‹… Þ#SPÿR4ƒÄ븅Àx»ƒûÿuG뫍v‹5lÞ#‰€Þ#‰lÞ#[‰ÐÁà)Ð;Őß#t0»@ß#‰ö¡lÞ#@‰ÂÁâ)‹TÓP‰lÞ# R‰ÈÁà)È;TÃPu×;5lÞ#tƒìhlÞ#jÿlZ#ƒÄ‹ +lÞ#I‰ÐÁà)ÐÁà¾@ß#fÇD(‹¸Dß#ƒì‹½ Þ#‹€Þ#¸;lÞ#•ÀPQWÿS8¡lÞ#@‰ÂÁâ)ƒÄöDÖ1„Ü¡€Þ#;lÞ#…Ë¡$ß#‰EèMè¡lÞ#@‰ÂÁâ)»Lß#‹DÓ@º@B‰Ö™÷þ’’’Áâ‰Ö5(ß#‰q¿¡/¸D‰ø÷î‰×Áÿ‰ð™‰þ)Ö¡lÞ#@‰ÂÁâ)‹\Ó@ºƒÞC‰Ø÷êÁú‰ØÁø)2Eè‹AºÊš;‰Ó™÷û‰Qjhä="ÿuìÿuèÿDÞ#‰ÃƒÄƒûÿuƒìÿ5lÞ#jèû7ƒÄ‰|Þ#¡$ß#£tÞ#¡(ß#£xÞ#eô[^_]ÉöU‰åWVSƒìÇО%úÿuèD»ƒÄ¿Dß#¾@ß#‰ö[‰ÂÁâ)ÂÁâÇ:ÿÿÿÿǂLß#ÆDB fÇD0fÇD0
+fÇD0 fÇD0B0Ç0Ç8ǀHß#ǀLß#‚„ß#Ç@ÇǂŒß#BP‰0Ç8ÇD`DŽÐ‚â#Ç@Ǎ‚àÇ0ÿÿÿÿÇ8ÿÿÿÿ‚°Ç8ǀHß#ǀLß#ÂÀÇ2Ç:ºۍƒ€ v
+ÇD‡`Bƒúvï[‰ÐÁà)ЍÅÀǀHß#ÿÿÿÿǀLß#ºۍƒ€ 
+DŽ†ÐBƒú~ìCû™Žƒþÿÿ»¹Hß#[‰ÂÁâ)C‰DÑP‰Ãû˜~åÇ@œ%ÿÿÿÿ»™¹Lß#[‰ÂÁâ)Cÿ‰DÑP‰Ã…ÛéÇœß#ÿÿÿÿÇäÞ#ÇhÞ#Ç`Þ#Ç ß#Ç€Þ#ÿÿÿÿÇlÞ#ÿÿÿÿÇ|Þ#ÿÿÿÿÇxÞ#ÇtÞ#ÇpÞ#ÇdÞ#Ç@Þ#èÚè}è42ƒì ÿuèqÉÿÿ£èÞ#ƒÄ=×Övƒì hà/#èÇ$è »ƒÄ¸ƒ=èÞ#”À‰Eè]è¡èÞ#‰CÇО%躂ƒì S豌Ç$x>"èÇÇ$¸("聎Ç$Ð="蕎ƒÄjjèEÿtZ#ƒÄh$ß#jèLƒèOùÿÿèê›f£àÞ#¡lÞ#@‰ÂÁâ)¾@ß#¿DÖ‰$èϛÇ$è7ŽÿpZ#ÇО%ƒÄ»ƒ=hÞ#ŸÃSjèɃă= ß#teè„ Ç8Z#ƒìh$ß#j軂è^›f£àÞ#è³øÿÿÇ$Ð="èǍ¡lÞ#@‰ÂÁâ)¿DÖ‰$è7›Ç$蟍ƒÄÇО%ƒìSjèCèÇО%ƒÄjjè(ƒÄúƒ=hÞ#t"ƒìÿ5hÞ#h 0#èP¬Ç$ÿÿÿÿèX¹ƒÄƒì jèK¹ƒÄeô[^_]ÃU‰åSƒìƒ=8Z#…•èW‰…Àuú腚‹lÞ#R‰ÑÁá)Ñf‰ÍHß#‹E£hÞ#Ç8Z#ƒ=lÞ#ÿ„ƒìh$ß#j藁ƒÄUð¡(ß#;xÞ#|¡$ß#+tÞ#‰Eð¡(ß#+xÞ#ë ¡$ß#+tÞ#H‰Eð¡(ß#+xÞ#ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыlÞ#R‰ÐÁà)Ð) Ōß#ƒì QèZôÿÿƒÄƒ=|Þ#ÿtƒì ÿ5|Þ#ÿHÞ#Ç|Þ#ÿÿÿÿƒÄ‹ +lÞ#I‰ÐÁà)ЋÅDß#ƒì‹… Þ#QPÿR<Ç€Þ#ÿÿÿÿÇlÞ#ÿÿÿÿƒÄèü‡…Àtƒì ¿àÞ#Pè,™ƒÄëvƒì ¿àÞ#Pè™èkƒÄû‹]üÉÉöU‰åSƒìÇEøÿÿÿÿ»º Þ#¡ Þ#ƒx(t1ƒì‹šUøRSÿP(ƒÄ…Àu¸ÿÿÿÿëCƒûwº Þ#‹šƒx(uи‹]üÉÉöU‰åƒìè è+ÉÉöU‰åƒìÇ|Þ#ÿÿÿÿè§êÿÿÉÐU‰åSƒìœúX‰Ãƒ=О%tƒ= ß#t‰ØPëƒì jè–ýÿÿƒÄ‰ØP‹]üÉÉöU‰åƒìÿuèzýÿÿƒÄÉÐU‰åSƒì‹UœúX‰ÃƒìRjèZ‰ÂƒÄ‰ØP‰Ð‹]üÉÉöU‰å¸hÞ#ƒ=lÞ#ÿt‹lÞ#R‰ÐÁà)ЍÅ ß#]ÉöU‰åSƒìœúX‰Ãƒ=О%tƒ= ß#t‰ØPëƒì ÿuèíüÿÿƒÄ‰ØP‹]üÉÐU‰å]ÍvU‰åWVSƒì ÇEðÇE컍[ …ƒ¹È‡#t[¿À‡#ƒ<9tP‹lÞ#ҍ‚€Ð؍…о@ß#ƒ<0t+ûƒì ÿ40ÿ9ƒÄú‹lÞ#ҍ‚€Ð؋´†Ð uìCƒû~Œƒ}ìt +ÿEðƒ}ðŽmÿÿÿeô[^_]ÐU‰åVSº¾À‡#»Ä‡#¹È‡#vRÁàÇ0B‰Çƒú~ãǸ#ÿÿÿÿÇÀ#Çȇ#ÇÀ‡#Çć#ÿÿÿÿ[^]ÐU‰åS‹Múƒ=À#ÿu û¸ ënv¡À#@Ǖȇ#‰¡À#@‹…ć#£À#‹@‹U ‰…À‡#º»@ß#‰öҍ‚€ÐDŽƒÐBú™~ßû¸‹$ÉÃU‰åú¡lÞ#À’ÂU‹•à#û]ÍvU‰å‹Múƒùw +Iƒ<…ȇ#u û¸ë%v¡lÞ#À’ÂʋE ‰•à#û¸]ÃU‰åS‹]œúX‰Áƒûw +[ƒ<…ȇ#u‰ÈP¸ë.v[Áà‹À#‰Ä‡#ǀȇ#‰À#‰ÈP¸‹$ÉÃU‰åWVSƒì ¡lÞ#‰Eð‰ÂÑâ‰ÐÁà)ЍÅ¿@ß#öD0 tm‹E‰‚ à#‹UðÑâUð‰ÐÁà)ЁLÇ0@‹UðÑâUð‰ÐÁà)ЍÅÀºHß#ƒ<ÿt,‹4v‰ÃÁã)ÃÁ㋃Dß#ƒì‹… Þ#VPÿRD‰tPƒÄ¹»@ß#;MðtI‰ÐÁà)ЋUð9TÃP„ˆAù™~ۋUðÑâUð‰ÐÁà)Ѓ<Ŕß#t[»Dß#ûƒì ‹UðÑâUð‰ÐÁà)ЋDÃPÿpÿƒÄú‹EðÑàEð‰ÂÁâ)ÕP‹‹@‰‹UðÑâUð‰ÐÁà)Ѓ|ÃPu«èJüÿÿƒì ‹EðÑàEð‰ÂÁâ)»@ß#¿DÓPèÔyƒÄEðPjÿlZ#‹Eð@‰ÂÁâ)ՃÄöD0@u%ƒì·D.P‹Eð@‰ÂÁâ)Âÿ4ÕLß#èÁ ƒÄ»;dÞ#sƒì‹ß#ÿuðSÿP(ƒÄC;dÞ#rã‹MðI‰ÐÁà)ЋÅDß#ƒì‹… Þ#QPÿRPÇlÞ#ÿÿÿÿÇ€Þ#ÿÿÿÿ‹Eð@‰ÂÁâ)ƒÄöÕpß#u&ÿ +`Þ#ƒ=`Þ#uBèZúÿÿë;ƒìRjèY+ƒÄëg‹Eð@‰ÂÁâ)ÂöÕpß#uÿ + ß#ƒ= ß#uèúÿÿƒìh$ß#jèÒyƒÄƒ=|Þ#ÿtƒì ÿ5|Þ#ÿHÞ#Ç|Þ#ÿÿÿÿƒÄè­ïÿÿeô[^_]ÐU‰åVS‹uúv‰ÐÁà)ÐÁàº@ß#öD0ufƒ|(uèѼNJû¸ÿÿÿÿ麍v‰ÐÁà)ÐöÅqß#tû雉ö;5lÞ#uJv‰ÐÁà)л@ß#‹DÃ0©t0©u)ƒì jè¥üÿÿ¡lÞ#@‰ÂÁâ)¿DÓ‰$襑ƒÄ»ëvC;<Z#}ƒìÝÿ°ä#Vÿà#ƒÄ…Àtٍv‰ÐÁà)Ё Åpß#û¸eø[^]ÍvU‰åWVSƒì ‹Ef‰Eòf…Àuèâ»ÇŒ¸ÿÿÿÿé‰öú¡€Þ#@‰ÂÁâ)Âf‹Mòf; Õlß#”Eñ¾¿@ß#‰öv‰ÐÁà)ÐÁà‹T0÷Â…ˆƒÀ fƒ|8t}÷Âuuf‹Mòf9L8 uj;5lÞ#u!÷Ât÷Âuƒì jè{ûÿÿƒÄëC‰ö»ëC;<Z#}ƒìÝÿ°ä#Vÿà#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™ŽNÿÿÿ€}ñt(ƒì ¡€Þ#@‰ÂÁâ)¿ÕHß#P萃Äëvû¸eô[^_]ÉöU‰åWVSƒì ¾¿@ß#v‰ÐÁà)ÐÁàfƒ|(tL÷D0
+uB»ë‰öC;<Z#}ƒìÝÿ°ä#Vÿà#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™~–eô[^_]ÉöU‰åSƒì¡lÞ#@‰ÂÁâ)»@ß#‹DÓ0©t7©u0©t)ƒì jè"úÿÿ¡lÞ#@‰ÂÁâ)¿DÓ‰$è"ƒÄ‹]üÉÉöU‰åS‹M‹] ¡<Z#ʼnŠà#‰šä#@£<Z#‹$ÉÍvU‰åƒìúÿuè½ùÿÿ¡lÞ#@‰ÂÁâ)¿ÕHß#‰$躎ƒÄÉÐU‰åVS¶uœúX‰Ãƒ=‘#ÿuèH¹Ç‚‰ØP¸ÿÿÿÿéۋ +‘#‰ÊÁâ‹‚ŒŽ#£‘#‹E‰‚€Ž#‹E ‰‚„Ž#‰ðƒà‰‚ˆŽ#‰ðƒàƒøtOƒø
+ƒøt +ësvƒøtSëi‰ÈÁàǀŒŽ#ÿÿÿÿƒ=‘#ÿu‰ +‘#ë¡‘#Áà‰ˆŒŽ#‰ +‘#ëH‰ö‰ÊÁâ¡‘#‰‚ŒŽ#‰ +‘#ë.‰ÊÁâ¡ ‘#‰‚ŒŽ#‰ + ‘#ë‰ÊÁâ¡‘#‰‚ŒŽ#‰ +‘#‰ØP¸[^]ÐU‰åƒìƒ=pÞ#uƒì h@0#èŒÇ$謃ġpÞ#P‰pÞ#ÉÐU‰åƒìƒ=dÞ#uƒì h_0#èPÇ$èÌ«ƒÄ¡dÞ#P‰dÞ#ÉÐU‰åWVS‹E‹u ‹}»‹HÇöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿ[^_]ÐU‰åWVSì¬‹EµTþÿÿ½Xþÿÿ»‹HDžTþÿÿöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿƒì…XþÿÿPÿµTþÿÿ詶ÿÿƒÄeô[^_]ÉöU‰å¸¹ŒŽ#v‰ÂÁâ@‰
+ƒø&~òÇü#ÿÿÿÿÇ‘#ÿÿÿÿÇ‘#ÿÿÿÿÇ‘#ÿÿÿÿÇ ‘#ÿÿÿÿÇ‘#ÿÿÿÿÇ‘#]ÉöU‰åWVSƒì ‹E‹} ƒøt4ƒø ƒøtéЃøt3ƒøtB鳐‹‘#Ç‘#ÿÿÿÿë:‰ö‹‘#Ç‘#ÿÿÿÿë&‰ö‹ ‘#Ç ‘#ÿÿÿÿë‰ö‹‘#Ç‘#ÿÿÿÿÇ@Þ#ƒûÿtM¾ŒŽ#…ÿt‰ØÁàƒ¸ˆŽ#uƒì ‰ØÁàÿ°„Ž#ÿ€Ž#ƒÄ‰Ù‰ØÁà‹0‰Â¡‘#‰2‰ +‘#ƒûÿu¸Ç@Þ#eô[^_]ÉöU‰åƒìEüPEøPEôPEðPèI‡Ç$ ‘#èÅӃÄjjhÿÿjh$‘#h ‘#èðɃÄjjhÿÿÿhh@‘#h ‘#èÐɃÄjjhÿÿÿþhh\‘#h ‘#è°ÉƒÄ ƒ}ütƒì‹EüHPÿuøh ‘#èzȃă}ôtƒìÿuôÿuðh ‘#è^ȃÄÉÐU‰åƒì‹E…Àu¸ëƒìjPh ‘#èʃÄÉÍvU‰åƒìÿuÿuÿu ÿuh ‘#è¸ËƒÄ ÉÍvU‰åƒì ÿuÿuÿuÿuÿu ÿuh ‘#è²ËƒÄ ÉÐU‰åƒì ÿu ÿuh ‘#èfЃÄÉÐU‰åƒìÿuh ‘#èM΃ÄÉÃU‰åƒìÿuh ‘#èM҃ÄÉÃU‰åƒì jÿuh ‘#èSɃÄÉÉöU‰åƒì ÿu ÿuh ‘#èþσÄÉÐU‰åƒìh ‘#è ÎÇ$ ‘#è ҃ÄÉÍvU‰åWVSƒì} ‹uEðPh´0#VèÖ¥‰ÃƒÄƒûuƒ}ðvÇEðƒÆë ‰öÇEð‹Eðº;@Z#~hƒìWVh€‘#蜃Äj
+VèK›ƒÄ»…À•ÃœúX‰Æƒìh€‘#‹Eðÿ4…DZ#h¹0#è]™ƒÄ…Ûuƒì h\1#èI™ƒÄ‰ðPº‰Ðeô[^_]ÍvU‰åVSƒìu ‹]EôPh´0#S襃ăøuƒ}ôvÇEôƒÃëÇEô‹Eôº;@Z#~JƒìVSh€‘#èB›ƒÄj
+S臚ƒÄœúX‰Ãƒìh€‘#‹Eôÿ4…DZ#h¹0#裘ƒÄ‰ØPº‰Ðeø[^]ÉöU‰åVSƒì@‹u‹] ‹EfÇEÈÇEÌÇEÐfÇEÔÇEàÇEäÇEìÇEð‰EØÇEÜÇEè…ÛtT‹C‰E̋C‰EЃ{u
+ÇEÜ1됃eÜߋC ‰EàÇEÀƒì ÿ5€•#è)7ƒÄ+C ‰EċC‰Eì‹C‰EðëD‰öÇEÌÇEЃMÜ ÇEàÇEÀƒì ÿ5€•#èâ6ƒÄ‰EÄÇEìÇEðèI±‹ƒì jEÀPEÈPÿuhÁ0#èAÞÿÿ‰ƒÄ ƒøÿt ƒì PèòÒÿÿƒÄ豉¸ƒ>ÿ”ÀHƒàêƒÀeø[^]ÍvU‰åƒìÿ5€•#èc6ƒÄÉÉöU‰åƒìÿ5€•#èc6ƒÄÉÉöU‰åƒìÿ5€•#è{5ƒÄÉÉöU‰å‹E‹U ‹M£€•#‰„•#‰ +ˆ•#]ÐU‰åVS‹]è°‹0ƒì Sètóÿÿ‰Ãèm°‰0ƒÄ¸…Û•À@eø[^]ÃU‰åƒìúÿuÿu ÿuÿ5€•#èé5ƒÄûÉÍvU‰åWVSƒì ‹}‹uúÿ6ÿu Wÿ5€•#è3‰ÃƒÄ…Ûu#ƒìÿ5€•#èx5ƒÄ+PWÿ5ˆ•#èffƒÄû‰Øeô[^_]ÃU‰åSƒì ‹] Sÿuè¡eƒÄÿ5€•#è75ƒÄ+‰¸‹]üÉÉöU‰åVSƒì‹u‹] …Ûtƒ;uÇEôƒìEôPë7ƒ;uÇEðƒìEðPë!vÇEèƒì jè_þÿÿ+CUè‰BƒÄRVèT*ƒÄeø[^]ÉöU‰åWVSƒì‹u ‹}ÇEðÿ5€•#è“4‰ÃƒÄ9Þƒþ} ¸ëG‰öƒì ÿuèµ*ƒÄ W‰Ø)ðPÿuè eƒÄ…ÀtÇEð…ÿt‰Ø+‰ƒì ÿuèÙ*‹EðƒÄeô[^_]ÍvU‰åƒì‹Eúƒ8u +ÇûÿU ëû¸ÉÃU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹â#‰U苀â#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õâ#|[‰Eäv1‰ÐÁà)ЍÅ;šâ#u ‹Eì;‚â#|1‰Ï‰ÐÁà)Ћ Řß#ƒùÿt4 1‰ÐÁà)Ћ]ä;Åâ#}«ƒÿÿt‰ÐÁà)ЋU‰Řß#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Ŝß#‹E@‰ÐÁà)ЍÅP‰ˆHß#‰¸Lß#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)лDß#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»Hß#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Řß#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Ŝß#‹E@‰ÐÁà)ЍÅP‰ˆHß#‰¸Lß#ƒÄ[^_]ÍvU‰åWVS‹}‰ÐÁà)ЍÅP‹Lß#‹°Hß#ƒúÿu ‹E ‰0ë#‰öR‰ÁÁá)Á»Hß#‰ÐÁà)ЋDÃP‰DËPƒþÿt!v‰ÁÁá)Á»Lß#‰ÐÁà)ЋDÃP‰DËP[^_]ÃU‰åS‹]‹ ‰Èƒùÿt/I‰ÐÁà)ЋŘß#‰ƒøÿt@‰ÐÁà)ÐÇŜß#ÿÿÿÿ‰È‹$ÉÃU‰åS‹]‹M ƒ9ÿt‹@‰ÂÁâ)‰՜ß#[‰ÂÁâ)ÕP‹‰‚Hß#ǂLß#ÿÿÿÿ‰‹$ÉÃU‰åWVSƒì ‹M‹] ‹}ÇEðú¡lÞ#@‰ÂÁâ)4Õ@ß#…ÿt‹F8‰…ÛtBƒùt"ƒù ƒùt ë*‰öƒùtë!‹F8 ‰F8ë‰ö‹÷Ð!F8ëv‹‰F8ëÇEð‹F8‰Ã÷Ћ —#‰Ñ…ÂtB‰ö‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì R范ċ^8‰Ø÷Ћ + —#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…Ât=‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè|ƒÄ‹^8‰Ø÷ЋN<…ÁuÃû‹Eðeô[^_]ÍvU‰åVS‹u‹M ¸…É„¸ƒù‡òv‰ÐÁà)Ðfƒ<Åhß#u +¸éӍvú‰ÈÁàö€¨•#uƒ¸ •#uû魉öv‰ÐÁà)ЍÅ|ß#ƒùvèÍ©Çë
+¸Óà »ëC;hZ#}ƒìÝÿ°d˜#Vÿ`˜#ƒÄ…Àtٍv‰ÐÁà)ЍÅfƒ»hß#u&ƒìh¤—#VèÔüÿÿ‹ƒDß#ƒÄ‹… Þ#VPÿRDƒÄèSm…Àuèû¸eø[^]ÐU‰åWVSƒì‹]‹U ƒûvè©Ç¸ÿÿÿÿévœúX‰Á‰Mðƒ}t‰ÞÁæÆ •#ü¹‹}ó¥…Òt‰ßÁçÇ •#ü¹‰Öó¥…Ò„ºöB…°ƒ:‡§ƒ<À—#ÿtq4‰uìºÀ—#‹@Áà‰Eè‰ÇƒÇ‹ +à¤%¸àž%‹U苉E䋇äž%©t +ƒàý‰‡äž%ë‰ö¾À—#‹Uì‹2@‰ Õàž%‰Áƒ}äÿu»‰ +à¤%ǝÀ—#ÿÿÿÿƒûv +è¨Çë¸þÿÿÿˆÙÓÀ! —#‹uð‰ðP¸ƒÄ[^_]ÐU‰åWVSƒì,‹] ¸…Û„~¸ƒû‡pœúX‰Â‰UԉÞÁæ}؁Ơ•#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé5vƒûv膧Ǹÿÿÿÿ됸ˆÙÓà# —#…Àt +‹UԉÐPéûƒûvèN§Çë‰ö¸ˆÙÓà  —#‹5¤—#ƒþÿ„ô¸‰ÇˆÙÓçvv‰ÐÁà)Ѝŀß#ƒûvèý¦Ç¸ÿÿÿÿë‰ú#‰Ð…À„–v‰ÐÁà)ÐÁàfƒ¸hß#u|ß#ƒûv +輦Çë 8ƒìh¤—#Vèúÿÿv‰ÃÁã)ÃÁ㋃Dß#ƒÄ‹… Þ#VPÿRDÃà¾@ß#ƒÄƒ<3ÿtƒì ÿ43ÿHÞ#Ç3ÿÿÿÿƒÄ‹MԉÈPéîv‰ÐÁà)Ћ4Řß#ƒþÿ…ÿÿÿ¾¸‰ÇˆÙÓç‰öv‰ÐÁà)ÐÁàfƒ¸hß#„…xß#ƒûvèö¥Ç¸ÿÿÿÿ됉ú#‰Ð…Àu^v‰ÐÁà)ЍÅ|ß#ƒûvèÃ¥Çëv 8»ëvC;hZ#}0ƒìÝÿ°d˜#Vÿ`˜#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèzi…Àuè9 +‹MԉÈP¸eô[^_]ÐU‰åWVSƒì,¸ƒ} „T¸ƒ} ‡EœúX‰Â‰Uԋu Áæ}؁Ơ•#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé ‰ö÷Eàu;ƒ} vèܤǸÿÿÿÿëv¸ŠM Óà# —#…Àt ‹UԉÐPéÃ=à¤%ÿu‹MԉÈP¸ 鮉ö‹5à¤%vÁà¹àž%‹‰à¤%‹U ‰äž%‹U‰èž%‹U‰ìž%‹lÞ#‰ðž%Çÿÿÿÿ‹E ÁàºÀ—#ƒ<ÿu‰4ë>‰ö‹M ‹À—#‰ÁЃ<Åàž%ÿt»àž%
+‹Í 
+ƒ<ÃÿuîR‰4Åàž%ƒ} vèé£Ç됸ŠM Óà  —#‹5¤—#ƒþÿ„û¸‰ÃŠM Ó㐍v‰ÐÁà)Ѝŀß#ƒ} v蘣Ǹÿÿÿÿë v‰Ú#‰Ð…À„šv‰ÐÁà)ÐÁàfƒ¸hß#u|ß#ƒ} vèS£Çëv ƒìh¤—#Vè¨öÿÿv‰ÃÁã)ÃÁ㋃Dß#ƒÄ‹… Þ#VPÿRDÃà¾@ß#ƒÄƒ<3ÿtƒì ÿ43ÿHÞ#Ç3ÿÿÿÿƒÄ‹MԉÈPé÷v‰ÐÁà)Ћ4Řß#ƒþÿ…ÿÿÿ¾¸‰ÃŠM Ó㐍v‰ÐÁà)ÐÁàfƒ¸hß#„…xß#ƒ} v艢Ǹÿÿÿÿë‰Ú#‰Ð…Àu^v‰ÐÁà)ЍÅ|ß#ƒ} vèV¢Çë‰ö »ëvC;hZ#}0ƒìÝÿ°d˜#Vÿ`˜#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèf…Àuƒ=dZ#uèÄ ‹MԉÈP¸eô[^_]ÃU‰åWVSƒì‹u‹]¡lÞ#@‰ÂÁâ)<Õ@ß#èŠú¡ —##„Hºv©u=BÑøuô¾ƒ<µÀ—#ÿue‹E ‰0Ç@Ç@W<ƒþvèa¡Ç됉Öëɸþÿÿÿ‰ñÓÀ!ƒþvè?¡Çëv¸þÿÿÿ‰ñÓÀ! —#ûév µºÀ—#‹[‹Åàž%‰ƒøÿu"ƒþvèñ Ç됸þÿÿÿ‰ñÓÀ! —#W<ƒþv +èÌ Çë ¸þÿÿÿ‰ñÓÀ![Áâ¹äž%‹
+‹u ‰‹‚èž%‰F‹‚ìž%‰FƒÂ‹
+©t ƒàý‰
+ëv[¡à¤%‰Õàž%‰à¤%ûéI‰Öë‹G<#tUº©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè Çëv¸þÿÿÿ‰ñÓÀ!ûéëv…Ûtƒ;uƒ{u +û¸ éÓ‰ö‹‰G@úèu‹lÞ#R‰ÑÁá)Ñf‰ÍHß#ƒìh$ß#jèN\ƒÄUè¡(ß#;xÞ#|¡$ß#+tÞ#‰Eè¡(ß#+xÞ#ë¡$ß#+tÞ#H‰Eè¡(ß#+xÞ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰ÁáºÓMb‹Eì÷êÁú‹EìÁø)ÂыlÞ#R‰ÐÁà)Ð) Ōß#ƒì QèÏÿÿƒÄƒ=|Þ#ÿtƒì ÿ5|Þ#ÿHÞ#Ç|Þ#ÿÿÿÿƒÄ‹ +lÞ#I‰ÐÁà)ЋÅDß#ƒì‹… Þ#QPÿRHƒÄh¤—#ÿ5lÞ#èæòÿÿ¡lÞ#@‰ÂÁâ)ÂfÇÕhß#ƒÄ…Û„’ƒìEàPjè[U؃Ä‹Eà‰E؋EäC‰B…Ày +ÿM؁Bʚ;됁zÿɚ;~ ÿjʚ;ÿ5lÞ#hdp"ÿuÜÿuØÿDÞ#‰ÃƒÄƒûÿuƒìÿ5lÞ#jèù ƒÄ¡lÞ#@‰ÂÁâ)‰Õ â#ÇlÞ#ÿÿÿÿÇ€Þ#ÿÿÿÿè‡Ðÿÿƒì ¡lÞ#@‰ÂÁâ)»@ß#¿DÓPèsè”ÇG@¡lÞ#@‰ÂÁâ)ƒÄöDÓ2tû¸ é~‰Öë%¡ —##„ûº‰ö©uáBÑøuô¾ƒ<µÀ—#ÿu=‹M ‰1ÇAÇAƒþv +è@Çë¸þÿÿÿ‰ñÓÀ! —#ûé vƒì µƒÀ—#Pèúðÿÿ‰ÇƒÄƒ»À—#ÿu#ƒþvèòœÇë‰ö¸þÿÿÿ‰ñÓÀ! —#Áâ¹äž%‹
+‹] ‰‹‚èž%‰C‹‚ìž%‰CƒÂ‹
+©t ƒàý‰
+ëv¡à¤%‰Õàž%‰=à¤%ûël‹G<#…Àuû¸ë`v‰Öë‹G<º#t ©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè/œÇëv¸þÿÿÿ‰ñÓÀ!û¸eô[^_]ÍvU‰åWVSƒì ‹}¡lÞ#@‰ÂÁâ)4Õ@ß#è¹ú‹F<#…Àt è¦û颋‰F@úèq‹lÞ#R‰ÑÁá)Ñf‰ÍHß#ƒìh$ß#jè6XƒÄUè¡(ß#;xÞ#|¡$ß#+tÞ#‰Eè¡(ß#+xÞ#ë¡$ß#+tÞ#H‰Eè¡(ß#+xÞ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыlÞ#R‰ÐÁà)Ð) Ōß#ƒì QèúÊÿÿƒÄƒ=|Þ#ÿtƒì ÿ5|Þ#ÿHÞ#Ç|Þ#ÿÿÿÿƒÄ‹ +lÞ#I‰ÐÁà)ЋÅDß#ƒì‹… Þ#QPÿRHƒÄh¤—#ÿ5lÞ#èÍîÿÿ¡lÞ#@‰ÂÁâ)»@ß#fÇDÓ(ÇlÞ#ÿÿÿÿÇ€Þ#ÿÿÿÿè Íÿÿ¡lÞ#@‰ÂÁâ)¿DÓ‰$è™oè‹F<#ƒÄ…Àuû¸ë èÿû¸eô[^_]ÐU‰åSƒì‹]úEðPjè¢VƒÄƒ=H˜#ÿu
+ÇEèëWMèUð¡D˜#;B|¡@˜#+Eð‰Eè¡D˜#+Bëv¡@˜#+EðH‰Eè¡D˜#+Eôʚ;‰Aƒì ÿ5H˜#ÿHÞ#ƒÄ…ÛtN]ð‹Eð£@˜#‹Eô£D˜#jhÄp"ÿuôÿuðÿDÞ#‰ÃƒÄƒûÿuƒìÿ5lÞ#jè:ƒÄ‰H˜#ë +vÇH˜#ÿÿÿÿû‹Eè‹]üÉÐU‰åVSƒì‹uƒ<µÀ—#ÿuC‰uèÇEìÇEð¡lÞ#‰Eôƒþvèü˜Ç鮐¸þÿÿÿ‰ñÓÀ! —#降 µºÀ—#‹[‹Åàž%‰ƒøÿu"ƒþv豘Ç됸þÿÿÿ‰ñÓÀ! —#[Áà¹äž%‹‰U苐èž%‰U싐ìž%‰Uð‹ðž%‰UôP‹
+©tƒàý‰
+ë[¡à¤%‰Õàž%‰à¤%ƒìEèPVè
+ƒÄeø[^]ÃU‰åVSƒì¡lÞ#@‰ÂÁâ)4Õ@ß#‹F0©…Í +‰F0‹F8‰Ã÷Ћ —#‰Ñ…ÂtA‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè„þÿÿƒÄ‹^8‰Ø÷Ћ + —#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…ÂtZ‰Ø÷л!Ètv‰Ú©u
+CÑøuòº‰UèÇEìÇEð¡lÞ#‰EôƒìEèPRèƒÄ‹^8‰Ø÷ЋN<…Áu¦f0ÿïÿÿeø[^]ÃU‰åWVSƒì,‹]œúX‰Â‰UÌ¡lÞ#@‰ÂÁâ)Õ@ß#‰UЉÞÁæ}؁Ơ•#ü¹ó¥÷Eàuƒ}Ø„îƒ}Øÿ„ä÷EàuCƒ}Øu=ƒìShÌ0#èw}ƒÄ÷Eàtƒì‹M ÿqhâ0#èX}ƒÄƒì jè—ÓÿÿƒÄ‹UЋB8‰EԉƍUԃûv +èh–Çë ¸ˆÙÓà ‹EÔ E܉EԋUЃÂ<ƒûv +è<–Çë ¸þÿÿÿˆÙÓÀ!‹EԋUЉB8û÷Eàtƒìjÿu SÿUäëƒìj‹M ÿqSÿU؃Äú‹EЉp8‹ỦÐPeô[^_]ÃU‰åWVSƒì ‹}‰ÐÁà)ÐÁà¾@ß#fƒ|(uF˜àƒ<3ÿtƒì ÿ43ÿHÞ#Ç3ÿÿÿÿƒÄƒìh¤—#Wèúèÿÿ‰ÂÁâ)‹ÕDß#ƒÄë ‰ÐÁà)ÐÁàfƒ¸hß#u!‹Dß#ƒì‹• Þ#WRÿPD¸ƒÄë‰ö¸eô[^_]ÍvU‰åWVSƒì º¿¨•#¾¤•#»¬•#¹À—#‰ö‰ÐÁàǀ •#Ç8Ç0ÇÇ‘ÿÿÿÿBƒúvϺ»àž%¹äž%RÁàB‰ÇDƒú>~éÇȤ%ÿÿÿÿÇܤ%Çà¤%Ç —#Ǥ—#ÿÿÿÿÇH˜#ÿÿÿÿº¹™#»™#‰öRÁàÇÇÿÿÿÿÆDBƒú~áƒìjhDk"ènÚÿÿƒÄeô[^_]ÍvU‰å‹EǸ]ÐU‰å‹EÇÿÿÿÿ¸]ÐU‰åƒì‹U‹M ƒùvèê“Ǹÿÿÿÿ됸Óà ¸ÉÃU‰åƒì‹U‹M ƒùv趓Ǹÿÿÿÿ됸þÿÿÿÓÀ!¸ÉÃU‰åƒì‹M ƒùv腓Ǹÿÿÿÿë ¸Óà‹U#ÉÉöU‰åƒì ÿuÿu ÿuèÔçÿÿƒÄÉÍvU‰åWƒì$‹UEè‰E丹‹}äüó«ƒìjÿuäRèBñÿÿƒÄ…Àu +‹Uè‹E ‰¸‹}üÉÐU‰åƒì jÿu ÿuèñÿÿƒÄÉÃU‰åƒì‹E…Àu¸ëƒìPÿu ÿuèíðÿÿƒÄÉÃU‰åƒìÿuÿ5lÞ#è`èÿÿƒÄÉÍvU‰åVSƒì ‹]‹E ‰EèÇEìÇEð脒‹0ƒìEØPEèPSèAéÿÿƒÄ»ÿÿÿÿ…Àu ÷Eàu‹]ØèT’‰0‰Øeø[^]ÐU‰å‹M¡lÞ#@‰ÂÁâ)¡ —# Õ|ß#‰¸]ÉöU‰åSƒì‹E‹U ú‹lÞ#‰lÞ#ÇdZ#jPj jèœìÿÿƒÄÇdZ#‰lÞ#û‹]üÉÍvU‰åS‹M‹] ¡hZ#ʼnŠ`˜#‰šd˜#@£hZ#‹$ÉÍvU‰åVS‹]Cÿƒøv苑Ç~¸ÿÿÿÿëp‰öœúX‰Æ[€<…™#u‰ðPèa‘ǸÿÿÿÿëF[Áâ¹™#‹E ‰
+‹E‰‚™#ÆD
+ƒìjhq"Sè¹T·Ã‰$èÒeƒÄ‰ðP¸eø[^]ÍvU‰åƒì¸ÉÍvU‰åƒì ‹E‰EèÇEìÇEð‹lÞ#‰UôUèRPè›ùÿÿƒÄÉÉöU‰åVS‹uv‰ÃÁã)ÃÁã¸@ß#DŽàÿÿÿÿL0ƒìh¤—#Vèõãÿÿ‹ƒDß#ƒÄ‹… Þ#VPÿRDèç·ÿÿƒÄeø[^]ÐU‰åƒìÇH˜#ÿÿÿÿjjèWèÿÿè¾·ÿÿƒÄÉÐU‰åƒìEüÇEüÿÿÿÿPèôÿÿƒÄÉÐU‰åƒì‹E‹‰EüEüPjÿlZ#‹UüRÁ๙#ƒÄƒ<t ûƒì RÿƒÄú‹Eü@ƒì ÿ4…™#覱ÿÿƒÄÉÐU‰åWVSƒì ‹u ‹]ƒ}t讏Ǹÿÿÿÿén‰öúƒ=À #ÿt ƒ=à¤%ÿuûèƒÇ ¸ÿÿÿÿéCv¡À #‰‹À #Õ)пę#‹DÇ0£À #‹Õ)йÀ™#ÇDÁ0…öu8‹Õ)ÐÇÁ‹Õ)ÐÇÇ‹Õ)ЉÅș#닍<Å)Ǎ<ýÀ™#ü¹ó¥‹Õ)ЍŃºÀ™#u#¡à¤%‰‚è™#@Áàƒˆôž%‹€àž%£à¤%‹Õ)ÐÇÅԙ#ÿÿÿÿ‹Õ)ЍÅؙ#Ç@NjÕ)ЍÅà™#Ç@NjÕ)ÐÇÅì™#û¸ƒÄ [^_]ÃU‰åSƒì‹]ƒûwúÝ)؃<Åð™#uûèÿÇ¸ÿÿÿÿ閍vÝ)ØÁàǀð™#ƒÀºÄ™#ƒ<ÿtƒì ÿ4ÿHÞ#ƒÄÝ)ØÁàƒ¸À™#uE‹è™#R Åöôž%u¡à¤%‰àž%‰à¤%Ý)؋Åè™#@ƒ$Åôž%üû¸‹]üÉÃU‰åWVSƒìL‹E‰E´Áà+E´Áàƒ¸À™#…‹P ‹‚È™#@öÅôž%t¸Ì™#ƒ< „ôÿéì‰ö‹M´Áá+M´Ááy LJ̙#¾È™#‹7@‹à¤%‰Ýàž%£à¤%jÿ41ÿ±Ä™#jèhçÿÿ‹7@ƒ Åôž%錐‹E´Áà+E´Áà¹À™#ƒ<uwPƒ<
+tÿ°È™#ÿ°Ì™#ÿ4
+ëQvÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà‹E´Áà+E´ÁàÈ™#Rÿ°Ì™#EÈPEÄPèÙÙÿÿƒÄ‹E´Áà+E´Åƒ¸È™#u +ƒ¸Ì™#„Àºà™#‹E´Áà+E´ŋ‰E¸M¸‹D‰A‹E¸ƒØ™#‰ƒà™#‹AƒÜ™#‰B…Àyÿ‹à™#Bʚ;ë‰özÿɚ;~ ÿjʚ;‹E´Áà+E´ÿu´hÐs"ÿ4Åä™#ÿ4Åà™#ÿDÞ#‰ÃƒÄƒûÿuƒìÿ5lÞ#jè+ùÿÿƒÄ‹E´Áà+E´‰Åԙ#ë‰ö‹E´Áà+E´ÇÅԙ#ÿÿÿÿeô[^_]ÃU‰åWVSƒì‹u‹}ÇEäƒþw3ƒ}t-‹Exÿɚ;w!‹]{ ÿɚ;wúõ)ðƒ<Åð™#uûèÁŠÇ¸ÿÿÿÿ鐅ÿ„·õ)ðƒ<Åԙ#ÿuÇG ÇGëwƒìEèPjèGÇEäƒÄ¹à™#õ)ðō]è‹D;C|‹+Eè‰G‹D+Cë(¹à™#õ)òÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹Ø™#õ)ðÁà‹‰‹D‰Gõ)ðÅºÄ™#ƒ<ÿtƒì ÿ4ÿHÞ#ƒÄ‹Eƒxu
+ƒx „þºØ™#õ)ð ŋ]‹‰
+‹C‰D
+÷E t¸à™#‹S‰‹S ‰Tëmvƒ}äuƒìEèPjèøEƒÄõ)ð ō‘à™#‹Eè‹]C‰à™#‹EìC ‰B…Àyÿ‰à™#Bʚ;ëzÿɚ;~ ÿjʚ;õ)ðVhÐs"ÿ4Åä™#ÿ4Åà™#ÿDÞ#‰ÃƒÄƒûÿuƒìÿ5lÞ#jè­öÿÿƒÄõ)ð‰Åԙ#û¸eô[^_]ÃU‰åWVSƒì ‹]‹} ƒûwúÝ)؃<Åð™#uûèzˆÇ¸ÿÿÿÿ鷉öÝ)؃<Åԙ#ÿuÇG ÇGëoƒìEèPjèÒDƒÄ¹à™#Ý)؍ōuè‹D;F|‹+Eè‰G‹D+Fë'¹à™#Ý)ÚÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹Ø™#Ý)ØÁà‹‰‹D‰Gû¸eô[^_]ÍvU‰åƒìƒ}t藇Çëv臇ǸÿÿÿÿÉÉöU‰åƒìƒ}tèg‡Ç¸ÿÿÿÿë‰öƒì ÿu èuÄÿÿ¸ƒÄÉÍvU‰åƒì‹E ƒ}tè,‡Ç¸ÿÿÿÿëv…Àt +ÇÇ@è¸ÉÃU‰åƒì‹UƒúwúÕ)Ѓ<Åð™#uûè܆ǸÿÿÿÿëvÕ)ЋÅì™#ûÉÐU‰åWVS¹»Ä™#¿À™#¾Ì™#‰öÍ)ÈÁàÇDÿÿÿÿØ™#ÇBǍP0Ç:ÇD A‰‰Áƒù~ºÇ¼ #ÿÿÿÿÇÀ #[^_]ÐU‰å]ÍvU‰å¸]ÉöU‰åVSœúX‰Ã¡lÞ#@‰ÂÁâ)¾@ß#‹DÖ0©t0©t)ƒì jè"Æÿÿ¡lÞ#@‰ÂÁâ)¿DÖ‰$è"[ƒÄ‰ØPeø[^]ÃU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡lÞ#@‰ÂÁâ)¹@ß#‹DÑ0Áèƒà‹U ‰¡lÞ#@‰ÂÁâ)Õ0‹
+%ÿþÿÿ ؉
+û¸‹$ÉÉöU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡lÞ#@‰ÂÁâ)¹@ß#‹DÑ0Áè ƒà‹U ‰¡lÞ#@‰ÂÁâ)Õ0‹
+%ÿýÿÿ ؉
+û¸‹$ÉÉöU‰åWVSƒì ‹} ÇEðú‹EÇÿÿÿÿÇ@¾;5dÞ#s9v‹µß#ƒ{u ƒìWVÿS,ƒÄ…ÀxƒìWÿuVÿS0‰EðƒÄF;5dÞ#rÊû‹Eðeô[^_]ÉöU‰åƒì‹U¸ƒ:ÿt ¸ƒzu‹‹…ß#ƒìRÿ2ÿP4ƒÄÉÍvU‰åƒì‹U¸ƒ:ÿt‹‹…ß#ƒìRÿ2ÿP8ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹…ß#ƒìRÿ2ÿP<ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹…ß#ƒìRÿ2ÿP@ƒÄÉÉöU‰åVS‹u‹µ Þ#ƒìÿ°ôh1#è^j»ƒÄ‰ö[‰ÐÁà)ÐÁà9°Dß#……ƒÀ º@ß#f|€ttfƒ|tlƒì f‹Dfƒøwƒì ·ÀP訃Äë%v·Ð¸ó0#ú€t¸ÿ0#út¸ 1#P[‰ÐÁà)ÐÁàÿ°â#Tß#PSh€1#è¹iƒÄ Cû™ŽUÿÿÿeø[^]ÉöU‰åWVSƒì ‹E‹… Þ#‰Eð‹¸üƒì ‹Uð‹‚ðøPèk§‰ÆƒÄƒþÿu +¸ÿÿÿÿ…ÿtrOëՐv‰ÐÁà)Ѝ Åöqß#tRQ@»Lß#ƒ<D‹$â#‰ƒìý‰Ø‹Uð‚ðPVèX¥ƒÄ‹Eð˜ðSV聦ƒÄéiÿÿÿ‰ðeô[^_]ÉöU‰åWVSƒì‹E‹… Þ#‰Eð‹Mƒy(…©‹=lÞ#‰ÐÁà)ЍžDß#‹U93…‹M I‰ÂÁâ)ÂÁ⋄Љ„йLß#‹D@‰D@‹„à‰„àƒÂ0¹@ß#‹
+%ÿ÷ÿÿ‹\0ã ؉
+‹UðƒÂ¸ƒ¼º€ÿ•ÀH‹] ‰„š€é¢v‹U R‰ÂÁâ)ÂÁâ»Dß#‹A‰„Ѓyt‹A‰‚Œß#‹A‰„àë-‰ö‹] [‰ÐÁà)ÐÁà‹]ð‹“ô‰Œß#‹“ô‰$â#ƒy$u‹E @‰ÐÁà)Ё Åpß#¸ƒy ”ÀH‹U ‹Mð‰„‘ˆ¸ƒÄ[^_]ÃU‰åWVSƒì ‹U‹<• Þ#ƒ¿t8LJƒì‹E @‰ÐÁà)ЋÅâ#‹—ðÂPÿu 襤酋E @‰ÐÁà)ЍÅöƒqß#t?K@¾Lß#ƒ<11ºDß#‹1„à‰1ƒì‹„Ћ—ðÂPÿu èG¤ë*ƒì‹E @‰ÐÁà)ЋÅâ#‹—ðÂPÿu 诣ƒÄ‹E @‰ÐÁà)ÐfÇÅhß#€eô[^_]ÐU‰åWVSƒìH‹]ÇE¼ÇEÀfÇEÄÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà¶Ã +f‰E¸‹ Þ#‹€ø‰EÈÇE̍E¸jjPhˆ"h%1#è-¬ÿÿ‰ÆƒÄ ƒþÿuƒì hÀ1#èVËÿÿƒÄ‹< Þ#v‰ÐÁà)Ðfƒ<Åhß#tµ€Gƒ<ÿtJÿëE‰öƒìv‰ÃÁã)ÃÁ㍃„ß#PjèJ;fǃhß#€ƒÄ‹ƒâ#‹—ðÂPVèࢃčeô[^_]ÐU‰åWVSƒì‹}h*1#è¾ÊÿÿèÆÿÿ‰EðƒÄ hPh@1#è£ÊÿÿÇ$èwÉÿÿ‰ÃƒÄSh^1#è‡Êÿÿ‹Eð‰… Þ#ƒÄ jhj1#Sè=efÇCÆCÇCx‡"ÇC¤‡"ÇC l}"ÇC$L~"ÇC(°‡"ÇC, "ÇC0¼‡"ÇC4ć"ÇC8Ї"ÇC<„€"ÇC@ˆ"ÇCDœˆ"ÇCHäˆ"ÇCLìˆ"ÇCP„‰"ÇCT̉"ÇCXŠ"ÇC\äŠ"ÇC`‹"ÇCd‹"ÇCh4‹"ÇClL‹"ÇCpd‹"ÇCt|‹"ÇCx”‹"ÇC|¬‹"ǃ€Ä‹"ǃ„Ü‹"¸ƒÄS‰öDŽ‚€ÿÿÿÿ@=™~í‹EH‰ƒüƒì ‹EÁàPè@Èÿÿ‰ƒð¾ƒÄ;u}ƒì ‹ƒððPè柃ÄF;u|åÿçw¿èÿ ¡v¿ ¡‰»ô‹E‰ƒøƒ} tƒìjÿuðh€"è8ÃÿÿƒÄeô[^_]ÐU‰åWVSƒì ‹M‹u ‹]‹ Þ#‰Eð…Éx[; +pÞ#sS‹ Þ#‹@%ÿÿÿ=u=þ™wv‰ÐÁà)Ðfƒ<Åhß#u +¸éèvv‰ÐÁà)Ð9 ÅDß#t +¸&éȍv…Ûuv‰ÐÁà)Ё Åpß#ë)ƒûuv‰ÐÁà)Ё$Åpß#ÿ÷ÿÿë ¸郉öv‰ÐÁà)ÐÁà˜Ð¿Dß#‹U9;t\f¸hß#€u=ƒì‹;‹Mð‹‘ðÂPV蘞‹E‰;ƒÄ‹Uð‹‚ð‹MÈPV赟ƒÄëv‰ÐÁà)ЋU‰Åâ#¸eô[^_]ÍvU‰åVS‹M‹4 Þ#…Éx; +pÞ#s‹ Þ#‹@%ÿÿÿ=t¸ÿÿÿÿëw¡lÞ#@‰ÂÁâ)¸ÿÿÿÿ9 ÕDß#uZúè!P‹lÞ#R‰ÑÁá)Ñ»@ß#f‰DËdžèX­ÿÿ¡lÞ#@‰ÂÁâ)ƒì ¿DÓPèçOè>·ÿÿƒÄû¸eø[^]ÉöU‰å‹E‹… Þ#‹€ü]ÍvU‰å‹E‹… Þ#‹€ô]ÍvU‰åS‹]‹M …ÛxU;pÞ#sM‹ Þ#‹@%ÿÿÿ=u7ù™wI‰ÐÁà)Ðfƒ<Åhß#u¸ëMI‰ÐÁà)Ð9ÅDß#t ¸&ë3‰öI‰ÁÁá)ÁÁá¸öqß#”À‹U‰‹‘â#‹E‰¸‹$ÉÉöU‰å‹E f8t·‹E +9Âu¸ë¸ÿÿÿÿ]ÐU‰å¸ÿÿÿÿ]ÉöU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰åSƒì ‹E‹M ‹… Þ#I‰ÐÁà)ЋÅâ#‹“ðÂPQè7œƒÄ‹]üÉÍvU‰åWVSƒì ‹E‹u ‹<… Þ#v‰ÐÁà)Ðfƒ<Åhß#tµ€Gƒ<ÿtHÿëCƒìv‰ÃÁã)ÃÁ㍃„ß#PjèR5fǃhß#€ƒÄ‹ƒâ#‹—ðÂPVè蜃čeô[^_]ÐU‰åSƒì ‹E‹M ‹… Þ#I‰ÐÁà)ÐÁàfǀhß#€‹€â#‹“ðÂPQ蜜ƒÄ‹]üÉÃU‰å]ÍvU‰åWVSƒì ‹U‹• Þ#‰Eð‹U <•€‰ÆƒÆƒ<7~MƒìR‰ÃÁã)ÃÁ㍃„ß#Pjè‹4ÿ 7ƒÄ‹ƒâ#‹Mð‹‘ðÂPÿu 趛fǃhß#€ƒÄë‹E @‰ÐÁà)ÐfÇÅhß#eô[^_]ÐU‰åƒì‹E‹M ‹… Þ#ƒÀDŽˆ€ÿÿÿÿI‰ÐÁà)ÐfÇÅhß#häÞ#QèðÉÿÿƒÄÉÍvU‰å‹E‹U ‹… Þ#ƒÀDŽ€R‰ÐÁà)ÐfÇÅhß#]ÃU‰åWVSƒì4‹u v‰EäÁà+EäfÇÅhß#EèPjè“3Mè»@B‹Eº÷ó‰Uà’€€‰E܋A‹U܍ЉE؉A»¡/¸D÷ë‰ÓÁû‹EØÁø)ÿƒÞC‹E÷ç‰×‰øÁèEè‹A»Êš;™÷û‰Ó‰YƒÄVhô‹"ÿuìÿuèÿDÞ#‰ÃƒÄƒûÿuƒìÿ5lÞ#jèAäÿÿƒÄ v‰ÈÁà)ȉÅ â#eô[^_]ÐU‰åƒìÿ5lÞ#jèäÿÿ¸ƒÄÉÍvU‰åƒìÿ5lÞ#jèñãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jèÙãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jèÁãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jè©ãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jè‘ãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jèyãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jèaãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jèIãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jè1ãÿÿƒÄÉÃU‰åƒìÿ5lÞ#jèãÿÿƒÄÉÃU‰åWVSƒì‹MI‰ÃÁã)ÃÁãºDß#‹‹4… Þ#¿@ß#fÇD(€‹„Ћ–ðÂPQè9™Ç„àÿÿÿÿèQœÿÿƒÄeô[^_]ÉöU‰åVSƒì hà2#è
+Áÿÿè]¼ÿÿ‰ÆÇ$Œè׿ÿÿ‰Ã‰µ Þ#ƒÄ jhx2#Sè®[fÇCÆCÇC "ÇCԍ"ÇC à"ÇC$Ž"ÇC(ÇC, Ž"ÇC0,Ž"ÇC44Ž"ÇC8@Ž"ÇC<HŽ"ÇC@dŽ"ÇCDŒŽ"ÇCH´Ž"ÇCL܎"ÇCP"ÇCT,"ÇCXT"ÇC\|"ÇC`¨"ÇCdЏ"ÇChø"ÇCl "ÇCpH"ÇCtp"ÇCx˜"ÇC|À"ǃ€è"ǃ„‘"ǃˆÿÿÿÿÇ$ƒ2#èô¿ÿÿƒÄ jVh8‘"è,ºÿÿƒÄeø[^]ÉöU‰å‹M‹E ‹ Þ#fƒ8t·9Èu¸ƒºˆÿt¸ÿÿÿÿ]ÉöU‰å¸ÿÿÿÿ]ÉöU‰åƒì‹E‹… Þ#ÿ°ˆhå1#èìYƒÄÉÍvU‰å‹E‹… Þ#‹€ˆ]ÍvU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰å]ÍvU‰å‹E @‰ÂÁâ)ÂfÇÕhß#]ÃU‰åƒìhô1#èxYƒÄÿ5lÞ#j è„àÿÿƒÄÉÍvU‰åƒìhû1#èPYƒÄÿ5lÞ#j è\àÿÿƒÄÉÍvU‰åƒìh2#è(YƒÄÿ5lÞ#j è4àÿÿƒÄÉÍvU‰åƒìh 2#èYƒÄÿ5lÞ#j è àÿÿƒÄÉÍvU‰åƒìh2#èØXƒÄÿ5lÞ#j èäßÿÿƒÄÉÍvU‰åƒìh2#è°XƒÄÿ5lÞ#j è¼ßÿÿƒÄÉÍvU‰åƒìh2#èˆXƒÄÿ5lÞ#j è”ßÿÿƒÄÉÍvU‰åƒìh%2#è`XƒÄÿ5lÞ#jèlßÿÿ¸ƒÄÉÉöU‰åƒìh,2#è4XƒÄÿ5lÞ#jè@ßÿÿƒÄÉÍvU‰åƒìh32#è XƒÄÿ5lÞ#jèßÿÿƒÄÉÍvU‰åƒìh:2#èäWƒÄÿ5lÞ#jèðÞÿÿƒÄÉÍvU‰åƒìhA2#è¼WƒÄÿ5lÞ#jèÈÞÿÿƒÄÉÍvU‰åƒìhH2#è”WƒÄÿ5lÞ#jè ÞÿÿƒÄÉÍvU‰åƒìhO2#èlWƒÄÿ5lÞ#jèxÞÿÿƒÄÉÍvU‰åƒìhV2#èDWƒÄÿ5lÞ#jèPÞÿÿƒÄÉÍvU‰åƒìh]2#èWƒÄÿ5lÞ#jè(ÞÿÿƒÄÉÍvU‰åƒìhd2#èôVƒÄÿ5lÞ#jèÞÿÿƒÄÉÍvU‰åƒìhk2#èÌVƒÄÿ5lÞ#jèØÝÿÿƒÄÉÍvU‰åSƒì0‹]ÇEÜÇEàfÇEäÇEè¶Ãf‰EØÇEìEØjjPhđ"hr2#趜ÿÿƒÄ ‹ Þ#‰Ã‰šˆƒûÿuƒì h 2#èÒ»ÿÿƒÄ[‰ÐÁà)ÐÇÅxß#ÿÿÿÿ‹]üÉÐU‰åôëýU‰åWVSƒì ‹} ¾ú»ëvCûÿ2Ý)ØÁàºà #€|t߃ìÿ4ÿuèaVƒÄ…Àuʾ…öt1ÿÀuèðnÇûéÜûÝ)؍…ä #éˉö÷Ç@uè¿nÇû髍v‹E‰Eð=ÿ~èžnÇû銉ö‹°Á#ƒúÿtqÕ)Ѝ<…w‹†ä #£°Á#ƒì ÿuèV@‰$臹ÿÿ»à #‰ƒÄÿuPè7U‹Eð‰‡è #‡ì #‰$è(‘ÆDƒÄû‡ä #ëvènÇû¸eô[^_]ÍvU‰åWVSƒì ¾ú¿»à #vý)øÁà€|tƒìÿ4ÿuèUƒÄ…Àu¾Gÿÿ~ʅötJƒì ÿuèOUƒÄ@Pý)ûÁã¾à #ÿ43è%¹ÿÿƒÃÆD3¡°Á#‰ƒä #‰=°Á#ƒÄûë‰öèSmÇû¸eô[^_]ÍvU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…ø #uèmǸÿÿÿÿé‰öèÏæÿÿúè5B‹lÞ#R‰ÑÁá)Ñf‰ÍHß#‹Õ)Ѝ4…à #ƒ~ ÿu
+ƒ~…“ƒìWjÿlZ#ƒÄh$ß#jè8)ƒÄUè¡(ß#;xÞ#|¡$ß#+tÞ#‰Eè¡(ß#+xÞ#ë!‰ö¡$ß#+tÞ#H‰Eè¡(ß#+xÞ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыlÞ#R‰ÐÁà)Ð) Ōß#ƒì Qèú›ÿÿƒÄƒ=|Þ#ÿtƒì ÿ5|Þ#ÿHÞ#Ç|Þ#ÿÿÿÿƒÄ‹ +lÞ#I‰ÐÁà)ЋÅDß#ƒì‹… Þ#QPÿRH‹ +lÞ#I‰ÐÁà)л@ß#fÇDÃ(Íǂà¼#‹‰‚ä¼#ƒÄF PQ辏ÇlÞ#ÿÿÿÿÇ€Þ#ÿÿÿÿèõÿÿ¡lÞ#@‰ÂÁâ)¿DÓ‰$è…@èܧÿÿƒÄûèÿäÿÿë8ÿNƒìWjÿlZ#¡lÞ#@‰ÂÁâ)¿ÕHß#‰$èF@蝧ÿÿƒÄû¸eô[^_]ÃU‰åWVSƒì ‹}‹]?ÿw‹Õ)Ѐ<…ø #uè¯jǸÿÿÿÿéVv…ÛuúëúèÒ?‹lÞ#R‰ÑÁá)Ñf‰ÍHß#‹Õ)Ѝ4…à #…Ûu0ƒ~ ÿu‹E 9F}èMjÇ û¸ÿÿÿÿéó‹E )Fûéâèäÿÿƒ~ ÿu ‹E 9F‘ƒìWjÿlZ#ƒÄh$ß#jèš&ƒÄUè¡(ß#;xÞ#|¡$ß#+tÞ#‰Eè¡(ß#+xÞ#ë¡$ß#+tÞ#H‰Eè¡(ß#+xÞ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыlÞ#R‰ÐÁà)Ð) Ōß#ƒì Qè^™ÿÿƒÄƒ=|Þ#ÿtƒì ÿ5|Þ#ÿHÞ#Ç|Þ#ÿÿÿÿƒÄ‹ +lÞ#I‰ÐÁà)ЋÅDß#ƒì‹… Þ#QPÿRH‹ +lÞ#I‰ÐÁà)л@ß#fÇDÃ(͋E ‰‚à¼#‹‰‚ä¼#ƒÄF PQè#ÇlÞ#ÿÿÿÿÇ€Þ#ÿÿÿÿèZ›ÿÿ¡lÞ#@‰ÂÁâ)¿DÓ‰$èê=èA¥ÿÿƒÄûèdâÿÿë<‰ö‹E )FƒìWjÿlZ#¡lÞ#@‰ÂÁâ)¿ÕHß#‰$è§=èþ¤ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…ø #uèhǸÿÿÿÿéU‰öè,…À„‡œúX‰Æ‹Õ)Ѝ…à #‹JA‰J‹Z ƒûÿtG‹Ýà¼#9È<)Á‰È‰BƒìB PSèƊ[‰ÐÁà)ЋÅDß#ƒÄ‹• Þ#SRÿPDèÿÿƒÄƒìWjÿlZ#ƒÄ‰ðPé¼‰öúèª<‹€Þ#R‰ÑÁá)Ñf‰ÍHß#‹Õ)Ѝ…à #‹JA‰J‹Z ƒûÿtG‹Ýà¼#9È<)Á‰È‰BƒìB PSè&Š[‰ÐÁà)ЋÅDß#ƒÄ‹• Þ#SRÿPD荙ÿÿƒÄƒìWjÿlZ#¡lÞ#@‰ÂÁâ)¿ÕHß#‰$è <èb£ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹] ÇEð‹E8ÿw‹Õ)Ѐ<…ø #uèlfǸÿÿÿÿéÊèc*…À„ÃœúX‰Â‰Uì‹E‹Õ)Ѝ4…à #^‹^ ƒûÿts݉‹€à¼#;F_¿à¼#ÇEðv‹F+:‰FƒìF PS艍[‰ÐÁà)ЋÅDß#ƒÄ‹• Þ#SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿlZ#ƒÄƒ}ðtèÿÿ‹Uì‰ÐPéõúèÊ:‹€Þ#R‰ÑÁá)Ñf‰ÍHß#‹E‹Õ)Ѝ4…à #^‹^ ƒûÿtr݉‹€à¼#;F^¿à¼#ÇEð‰ö‹F+:‰FƒìF PSè.ˆ[‰ÐÁà)ЋÅDß#ƒÄ‹• Þ#SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿlZ#ƒÄƒ}ðtèd—ÿÿ¡lÞ#@‰ÂÁâ)ƒì ¿ÕHß#Pèð9èG¡ÿÿƒÄû¸eô[^_]ÉöU‰åWVSƒì ¾¿ä #õ)óÁãǃà #‰4;ǃè #ƒì ƒì #PèB‡ƒÃF‰;ƃè #ƒÄ‰Æþÿ~±Çؼ#ÿÿÿÿÇ°Á#ƒìjhx "è:ªÿÿƒÄeô[^_]ÍvU‰åVS‹uú>ÿw‹Õ)Ѐ<…ø #uèÉcÇû¸ÿÿÿÿënvƒì ‹Õ)лà #ÿ4ƒèUKƒÄ@P‹Õ)Ðÿ4ƒè1¯ÿÿ‹Õ)ÐÆDƒ‹Õ)Ћ°Á#‰…ô #‹£°Á#ƒÄû¸eø[^]ÉöU‰åƒì‹Mú9ÿw‹Õ)Ѐ<…ø #uècÇû¸ÿÿÿÿëb‰ö‹Õ)Ѓ<…ì #ÿtèîbÇû¸ÿÿÿÿë8‹Õ)ÐÆ…ø #‹Õ)Ћ°Á#‰…ô #‹£°Á#û¸ÉÉöU‰åSƒì‹M‹] 9ÿw‹Õ)Ѐ<…ø #uèubǸÿÿÿÿë_ú‹Õ)ÐÁàƒ¸ì #ÿu ‹€è #‰ë7‰öÇ‹Õ)Ћ…ì #¹Hß#vÿ @‰ÐÁà)ЋDÁPƒøÿuëû¸‹]üÉÃU‰åVS‹u‹M¸ùÿ‡–ú‹°Á#‰ƒúÿtnÕ)Ћ…ô #£°Á#‹Õ)лà #ǃ‹Õ)Љ …è #ƒì ‹Õ)Ѝ…ì #P聄‹Õ)ÐÆDƒƒÄëègaÇû¸ÿÿÿÿëû¸eø[^]ÍvU‰åƒì‹M9ÿw‹Õ)Ѐ<…ø #uèaǸÿÿÿÿë=ú‹Õ)Ѝ…à #ƒx ÿuƒxuèì`Ç û¸ÿÿÿÿë ‰öÿHû¸ÉÐU‰å‹E@‰ÂÁâ)¸fƒ<Õhß#”À]ÐU‰åVS‹][‰ÐÁà)Ѝ4Åfƒ¾hß#uAƒì‹Ýä¼#Õ)Ѝ…ì #PS考‹†Dß#ƒÄ‹… Þ#SPÿRD¸ƒÄ됸eø[^]ÃU‰åVSƒ=xZ#…ÚÇxZ#¹»¥%¾¥%‰ÁàP ÆÇ2ÿÿÿÿÆDAƒùváƒìjjhÀÁ#èÜýÿÿ¹ƒÄ¾d§%»`§%‰ö‰ÁàQ‰0Ɖуù +véÇ”©%ÿÿÿÿƐ©%ÇX§%¹¾Ä©%»À©%vÍ)ÈÁàQ‰0ƉуùvãÇð¬%ÿÿÿÿÆì¬%Ç­%eø[^]ÐU‰åWVSƒìŠEˆEóŠUˆUòfÇEæ¾<u€út €}óu€}òuè_Ǐ¸ÿÿÿÿé7‰öúƒ=X§%ÿuèí^ǍûÇEìÿÿÿÿ됡X§%€‹Õd§%‰X§%û‰Eìƒ}ìÿu +¸ÿÿÿÿéìvƒì hÀÁ#ègñÿÿƒÄ‹]¾¹º÷ñ‰×ëf‰ö¿€<Å ¥%t0ƒìÿu¿ōƒ¥%Pè³EƒÄ…Àu€»¥%„Ÿ¾ëG¹‰øº÷ñ‰×fÿEæfƒ}懜‰ó„Ût–¿Áãƃ ¥%ƒìÿuƒ¥%Pè÷D‹E쉃¥%ƒÄ€}óu‰Â’‹] f‰Åh§%ëv‹E썀‹E ¯Ef‰Õh§%úƒì ‹U썒Áã·ƒh§%Pèݨÿÿºl§%‰ƒÄû…Àu%è”]ǒƒì hÀÁ#èAõÿÿ¸ÿÿÿÿ魍v‹E썀ÁãS‰Uà¾`§%‹ƒl§%‰‚d§%‰2ƒìjjƒ|§%Pè:ûÿÿƒÄ ·D3Pjƒ€§%Pè#ûÿÿƒÄ jjÃ„§%SèûÿÿŠ]ó‹Eàˆ\0ƒÄúƒ=­%ÿuèø\ǎûÇEèÿÿÿÿë¡­%Å)‹•Ä©%‰­%û‰Eèƒ}èÿu_ƒì hÀÁ#èvôÿÿ‹Eèéä‰öè§\ǐƒì hÀÁ#èTôÿÿ¸ÿÿÿÿéÀ‰öèƒ\Ǒƒì hÀÁ#è0ôÿÿ¸ÿÿÿÿ霉ö‹EèÁà+EèÁà¹À©%ŠUòˆT P‹]ì‰
+‹] f‰\
+ǀĩ%ÿÿÿÿ‰ºÈ©%‹]썛ÆÕ`§%ƍ¿ōr¿¥%€|>t%ƒì¶D>Pš¥%SèGõÿÿÆD>‰$èšøÿÿƒÄƒì hÀÁ#èŽóÿÿ¿EèƒÄeô[^_]ÍvU‰åWVSƒìŠEˆEóŠ]ÇEè¿ÆEç<u„Ût €}óu€ûuè‚[Ǐ¸ÿÿÿÿé0‰öúƒ=­%ÿuèa[ǎûÇEìÿÿÿÿë ¡­%Å)‹•Ä©%‰­%û‰Eìƒ}ìÿu ¸ÿÿÿÿéߐ‹EìÁà+EìÁàºÀ©%ˆ\ ‹M f‰Lǀĩ%ÿÿÿÿƒì hÀÁ#è°íÿÿƒÄ‹U¾¹º÷ñ‰Öë]v¶€<Å ¥%u ¿ÆEçë8ƒìÿu¶Å¥%PèöAƒÄ…Àu¿ëF¹‰ðº÷ñ‰ÖÿEèƒ}è‡Ò‰ù„Ét €}çuR¶Á㸥%ÆD ÆDƒìÿuPè>AƒÄ jjÃ¥%Sè/øÿÿÇ$ÀÁ#èçñÿÿƒÄ jjSè:ïÿÿëM¶ōCº¥%€|t'þDƒì hÀÁ#è®ñÿÿƒÄ jjƒ¥%Pèûîÿÿ됃ì hÀÁ#è‹ñÿÿƒÄ¶‹<Å¥%¿ŠUó:Åx§%tèªYǓ¸ÿÿÿÿéX‰ö€}óu¿·Åh§%9E u€}ót(¿·Åh§%™÷} …ÒtèdYǔ¸ÿÿÿÿéƒì hÀÁ#è ìÿÿ¶‹Å$¥%ƒÄƒúÿ„­€}óu#è&YǕƒì hÀÁ#èÓðÿÿ¸ÿÿÿÿéЍÕ)з…Ô©%9E t"èíXǔƒì hÀÁ#èšðÿÿ¸ÿÿÿÿ鋋MìÁá+M썶Å »¥%‹‰Ä©%‹Mì‰ ë/‰öèŸXǑƒì hÀÁ#èLðÿÿ¸ÿÿÿÿë@¶‹Uì‰Å$¥%ƒì hÀÁ#è*ðÿÿ‹EìÁà+EìÁàH‰±È©%ºÀ©%‰<Æ¿EìƒÄeô[^_]ÉöU‰åWVSƒì¿E‰Eì‰ÇÁç)ÇÁ獗À©%‰UðhÀÁ#èÏêÿÿ‹Mð‹Y›ÁãC‰E躥%‹€Áà°`§%ƀ`§%F‰$èôÿÿF ‰$è„ôÿÿF$‰$èyôÿÿƒÄú·FPÿv èX£ÿÿû¹¥%‹Eè‹ú ’¡X§%‰Íd§%‰X§%ûƇÀ©%ƒÃ ‹Uð‹B‰ƒ¥%ú¡­%‰‡Ä©%‹Mì‰ +­%ûƃ¥%Ç$ÀÁ#è
+ïÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u ŠM¿UÕ)Ѝ…À©%‰Eð‹@€Å`§%‹Eð€x uèûVǔ¸ÿÿév€;uèÞVǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC PèÈëÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC PèœëÿÿƒÄ…ÀuÔƒì CPè-éÿÿƒÄ‹Uð·B‹{‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC$PèZïÿÿëƒì‹Uð·BPC$PèDïÿÿC‰$èíÿÿƒÄ¸eô[^_]ÐU‰åWVSƒì ‹} ŠM¿UÕ)Ѝ…À©%‰Eð‹@€Å`§%‹Eð€x uè‹Uǔ¸ÿÿév€;uènUǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC$PèXêÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC$Pè,êÿÿƒÄ…ÀuÔƒì CPè½çÿÿƒÄ‹Uð·B‹s‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC Pèêíÿÿëƒì‹Uð·BPC PèÔíÿÿC‰$è-ìÿÿƒÄ¸eô[^_]ÐU‰åSƒìhÿ2#è;ƒÄÿ5X§%h 3#è;»ƒÄÝ)ØÁà€¸À©%t8À©%‹B€Å`§%ƒì ÿp ÿp$‹B€Å¥%PSh3#è®:ƒÄ Cƒûv­‹]üÉÃU‰åƒì`¿MÍ)ȋ…Щ%’Å`§%ÿp ÿp$RQh@3#E¨Pèf:ƒÄ ÉÐU‰åSƒì‹]hÀÁ#èHæÿÿ¿ÓÕ)Ѝ …‹Ø©%€Å ƒÄ€º¥%u ‹Ä©%‰‚¥%¿ÃÅ)ÂÁâƂÀ©%ú‹ +­%‰ŠÄ©%£­%ûƒì hÀÁ#èÓêÿÿƒÄ‹]üÉÍvU‰åWVSƒì ‹u ‹E‹<…ß#ú‹^…Ûu-ƒì j èžÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‹U‰‰F‹;lÞ#u û¸#é~ƒ;ÿtc¾@ß#‰ö‹ +lÞ#I‰ÐÁà)Ћ‰TÆP‹C‰„¬¡lÞ#‰CÿCè…ÿÿ¡lÞ#@‰ÂÁâ)ƒì ¿DÖPèŸ'èöŽÿÿƒÄûúƒ;ÿu¤¡lÞ#ÿD‡D¡lÞ#‰û¸eô[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„À‹;lÞ#tû¸髍vúè*'‹lÞ# [‰ÊÁâ)Êf‰ÕHß#‹E‹…ß#ÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt-p ‰Ù[‰ÐÁà)ЉŐß#‹œž DŽŽ ÿÿÿÿƒûÿuÖÇGè„ÿÿ¡lÞ#@‰ÂÁâ)ƒì ¿ÕHß#Pè¢&èùÿÿƒÄû¸eô[^_]ÃU‰åVSƒì h¤3#è~ÿÿè +™ÿÿ‰ÆÇ$èKœÿÿ‰Ã‰µß#ƒÄ jh¸3#Sè"8fÇCÍÆCÇCÇC¸°"ÇC ±"ÇC$±"ÇC(±"ÇC,H±"ÇC0t±"ÇC4¼±"ÇC8®"ÇC<²"ÇC@¯"ºƒÄsK •ÇD@DŽ ÿÿÿÿBú™~ݍeø[^]ÉöU‰åVS‹E‹…ß#ƒì h€3#è7¾ƒÄƒÃƒìÿt³@hŸ3#èû6ƒÄFþ™~ãeø[^]ÃU‰å¸ÿÿÿÿ]ÉöU‰å]ÍvU‰åƒì‹E‹U ‹…ß#ƒÀƒ|@tƒìRj
+èȽÿÿƒÄÉÍvU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] j èӚÿÿ‰ÂƒÄ¸ …Òt!ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìj ÿsèäšÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì ‹}‹u ú‹^…Ûu*ƒì j è3šÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‰>‰Fƒ;ÿt
+û¸ë"‰ö¡lÞ#‹½ß#ƒÂÿD‚@¡lÞ#‰û¸eô[^_]ÃU‰åWVSƒì ‹E ‹U‹•ß#ú‹p¸…ö„V‹;lÞ#u û¸#éA‹lÞ#‹F ¿@ß#;„“°v +¸é v¡lÞ#‹Œƒ°‹“¬…Òt‰ö‹;lÞ#…Š‹R…Òu븅À…†‹ +lÞ#I‰ÂÁâ)‹ƒ¬‹‰D×P‹ƒ¬‹@‰„‹‹“¬¡lÞ#‰B‹ƒ¬ÿ@èj€ÿÿ¡lÞ#@‰ÂÁâ)ƒì ¿D×Pèù"èPŠÿÿƒÄûúéRÿÿÿ‰ö¸;J ’Àérÿÿÿ‹E‹…ß#¡lÞ#ÿDƒD¡lÞ#‰¹‹ƒ¬‹V ë‰ö‰Á‹A…Àt;P sò…Ét‰q됉³¬…Àt‰p‰F‰Nû¸eô[^_]ÍvU‰åWVS‹}‹E ‹ ½ß#ú‹X¸…Û„Ù‹;lÞ#uû¸#éčv‹lÞ#‹C ;„‘°s
+¸饡lÞ#‹´°‹‘¬…Òt‰ö‹;lÞ#u‹R…Òu︅Àuû¸ëk‰ö¸;r ’Àëåv‹ ½ß#¡lÞ#ÿDD¡lÞ#‰¾‹¬‹S 됉ƋF…Àt;P sò…öt‰^됉™¬…Àt‰X‰C‰sû¸[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„ï‹;lÞ#tû¸éڍvúè&!‹lÞ# [‰ÊÁâ)Êf‰ÕHß#‹E‹…ß#‰EðÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt2‰ÆƒÆv‰Ù[‰ÐÁà)ЉŐß#‹œžDŽŽÿÿÿÿƒûÿuÖÇG‹O‹W…Éu +‹Eð‰¬ë‰ö‹G‰A…Òt‹G‰Bèã}ÿÿ¡lÞ#@‰ÂÁâ)ƒì ¿ÕHß#Pèo èƇÿÿƒÄû¸eô[^_]ÐU‰åVSƒì hä3#èJ—ÿÿèْÿÿ‰ÃÇ$€è–ÿÿ‰Æ‰4ß#ƒÄ jhø3#Vèî1fÇFÌÆFÇFÇFÀ·"ÇF D¸"ÇF$p¸"ÇF( ¸"ÇF,è¸"ÇF0¹"ÇF4l¹"ÇF8|²"ÇF<´"ÇF@µ"ºƒÄ^N•ÇD@DŽ°ÿÿÿÿDŽÿÿÿÿBú™~Òdž¬eø[^]ÐU‰å‹U‹M ¸ÿÿÿÿ…Òt;‹‹…ß#ƒxu‹@%ÿÿÿ=Ìu…Ét ‹B‹@ ‰ë
+‰ö¸ÿÿÿÿ됸]ÐU‰å‹U‹M¸ÿÿÿÿ…Òt@‹‹…ß#ƒxu‹@%ÿÿÿ=Ìt¸ÿÿÿÿ됅Ét‹B‹@ ‰‹R‹E ‰B ¸]ÃU‰å‹E‹M ‹U‹…ß#‰”ˆ°]ÃU‰åWVSƒì‹E‹<…ß#h€3#è0»ƒÄwƒìÿtž@hŸ3#èó/ƒÄCû™~ãƒì hÂ3#èÚ/»ƒÄ‰öƒìÿ´Ÿ°hÞ3#è¼/ƒÄCû™~àeô[^_]ÃU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åS‹E‹U ‹]‹ …ß#Áâ‹C‰„°ÇD
+D‹$ÉÉöU‰åVS‹E‹u ‹…ß#ƒ|³DtƒìVj
+èD¶ÿÿƒÄë vÇD³DDŽ³°ÿÿÿÿeø[^]ÉöU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] jè3“ÿÿ‰ÂƒÄ¸ …Òt1ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‹@‰B ÇB‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìjÿsè4“ÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì$·]Sh4#è .‰Ø-yƒÀÁèƒÄ ·À‰Eè@ÛÁã¿À¹%ÿt8CP‰Eä·8Ph 4#èá-ƒÄ ÿt;·D;Ph4#èÊ-ƒÄ ÿt; s·>Ph(4#è±-ƒÄ ÿt>·D>Ph94#èš-ƒÄ ‹Uä·D:P·DLPhJ4#è~-‹UèÕƒÄ·ØSh[4#èc-EóPEòPEìPS蹃ĶUóR¶UòRÿuìPh 4#è6-ƒÄ eô[^_]ÍvU‰åWVSƒì ‹E‹U‹]¹‹u ƒî‰ƒî‰º <&fƒ= <&yA¿Áfƒ<Byfù™~îfù™~ƒì hp4#èÎ,¸ƒÄé ¿Á<¹ <&‰Úf Ê€f‰Ǎ<ÿÁçºÀ¹%‰tÇD _ÇDfŒÙf‰LfÇfÇDÇD _ ‹M‰ ÇDÇDO0ÇDÇD Ǎ_@ÇÇD‰t‰t fŒÉf‰L fŒÙf‰LfŒÛOPf‰\fŒÛf‰fÇD 0fÇD0O`fÇfÇDfÇDÇ,º%¾à=&¹üó¥Å˜eô[^_]ÐU‰åVS‹u ¿E-‰Â…ÀyP‰ÐÁø@ÀÁà¹À¹%f‰tX@Vf‰T f‰t ƒÀPf‰tf‰4[^]ÉöU‰å¿E-‰Â…ÀyP‰ÐÁøfDŽ <&]ÉöU‰åSƒì‹]¿E Phˆ4#Sè~3‰ØƒÄ‹]üÉÃU‰åVS趉Æès»‰öƒìh¬Ã"SèƒÄh8½"SèìƒÄCƒû~ۉðeø[^]ÉöU‰åƒìèaÉÍvU‰åSƒì‹]‹|Z#€82uºð°îƒìShâ5#èˆ*ƒÄÁ㋃|Z#@Ph=@#èp*ƒÄÿ³ÀZ#ènƒÄ‹]üÉÉöU‰åƒìÿuhù5#èE*èèûÇ$èG7ƒÄÉÉöU‰åWVSƒì‹E‹} ƒ=¸%„à…ÿ„Ø¡€®%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡„®%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡„®%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø‰Ó)øƒÞC÷o‰ÑÁù‹GÁø)Á‰È؉‹OÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰O‹éԉö]血®%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+¡„®%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡„®%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø)‰Uè‹{¸ƒÞC÷ï‰ÑÁù‰øÁø)Á‰ÈEè‰ùÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰K‹E荀€€€€€‰ÃÁã‰È÷îÁúÁù)ʍéèvƒøuc¸ƒ=t®%…Ρx®%€€€€€€‰ÃÁã‹ +|®%ºÓMb‰È÷êÁúÁù)ÊӅÿ„…¡x®%‰¡|®%éqvƒø…ç¶d®%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +p®%f)Ù·É +€®%º×®¬]‰È÷êÁú‰ÈÁø)„®%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰È£€®%f‰p®%…ÿ„̍€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡„®%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡„®%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø‰Ó)Ëw¸ƒÞC÷î‰ÑÁù‰ðÁø)Á‰È؉‰óÁú‰ÙÁù)ʍ’’’’’’Áâ‰Ø)Ѝ€€€Áà‰G‹€®%’’’4Õ¹Á6ۉð÷é‰Ó3‰ÁÁù
+‰ð™‰È)Ћ +„®%ɍ‘ÑÁâ)ʉÑÁá)эÈ鍃ø…ƒ=t®%…rUè¡x®%‰¡|®%‰B»@¹C°Ò‰Êî‰Úì¶ÈìÁàf¶Ñ зð·¸%9Æv%h6#j_h6#h6#èm%Ç$èmƒÄ·¸%)ó¯h®%·¸%‰Ø‰Ñº÷ñ‰Ãº °
+îì©t‹ +h®%;ÍÌÌ̉ð÷âÁê9Ós‰Ëu荛€€‹V‰Eä‰F¸¡/¸D÷mä‰ÑÁù‹EäÁø)Á‰ÈEè‹N¸¡/¸D÷éÁú‰ÈÁø)’’’’’’’’’Áâ )щN¡x®%€€€€€€Áà‰Eä‹ +|®%ºÓMb‰È÷êÁúÁù)ʋEäÐÅÿt ‰ð‹‰‹@‰G‰Øëv¸eô[^_]ÍvU‰åVSƒìŠEˆE÷ÿ([#ƒ=([#uƒ=[#tÿ[#¶E÷€Áàº,­%ƒ<uIÇö€0­%tûƒì ¶]÷›Áã¾ ­%ÿ43ÿ“$­%ƒÄöDtú¶E÷€Ç…,­%ÿ [#ƒ=([#uƒ=[#tÿ[#ÿ +([#eø[^]ÍvU‰åWVSº¿,­%¾(­%»$­%¹ ­%’ÁàÇ8‰0ÇÇBƒú~ÜÇ([#[^_]ÐU‰åVS‹U‹] ‹uú’ƒ<…,­%t÷Æu¸ÿÿÿÿëH’ …ǁ,­%û…Ût‰™$­%º ­%(­%‰‰t
+됍’Ç…,­%¸[^]ÐU‰å¡([#]ÉöU‰åSƒì¶d®%ƒøt!ƒø…Àt ë.‰öƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +p®%f)Ù·É +€®%º×®¬]‰È÷êÁú‰ÈÁø)„®%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰ +€®%f‰p®%ÿ([#ƒ=([#uƒ=[#tÿ[#¡|®%‰ÃÄÁ#º¡/¸D‰Ø÷êÁú‰ÙÁù)Êx®%’’’’’’’’’Á⠉Ø)У|®%‹`®%ë$‹¡l®%‰‰l®%‰`®%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;x®%;x®%uƋB;|®%~»ƒ=([#uƒ=[#tÿ[#ÿ +([#‹]üÉÃU‰åWVSƒì‹uhÒ"j@èØ +ƒÄƒ>t,ƒì h96#èß »ÿÿƒÄ¿@¹C°8‰ÊîˆØ‰úîëaƒì hU6#è³ ‹N‰ +h®%ɍA‰ÂÁâ‰Ñ)ÁºÓMb‰È÷âƒÄ‰ÑÁéu¹f‰ +¸%‰Ë¿@¹C°4‰Êî‰úˆØî‰ØfÁèî‹£t®%ƒ=d>&~»A¹C°p‰ÊÚîîÆd®%ë%Æd®%»B¹C°°‰ÊÚîîºa°îº!ì%þî¹¾ ®%»¤®%ƒùbIÁà¸®%‰0I‰LÃAƒùc~ßÇè·%Çl®% ®%Ç[#Ç[#¡h®%€€€Áà£ÄÁ#Ç|®%Çx®%Ç€®%Ç„®%fÇp®%ƒ=t®%uÇDÞ#øÈ"ÇHÞ#É"ëÇDÞ#àÉ"ÇHÞ#lÐ"eô[^_]ÃU‰å‹E£[#]ÍvU‰å‹E£[#]ÍvU‰å‹E£[#]ÍvU‰åWVSƒì ‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=l®%tl‹ +l®%‹£l®%‹E‰A‹Eè‰A ‹Eì‰A‹E‰A»‹`®%}è‹uè됋…Òt‰ð;B  +;B u‹G;B~‰Óëâ‰ö…Ût‰ ë‰ +`®%‰‹AƒÄ [^_]ÐU‰å‹E¹‹`®%됉ы…Òt;Buó¸ÿÿÿÿ…Òt$…Éu
+‹£`®%됋‰¡l®%‰‰l®%¸]ÃU‰åWVSƒì,‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=l®%„q‹5l®%‹£l®%‹E‰F‹Eè‰F ‹Eì‰F‹E‰Fº‹`®%}è‹Mè됋…Ût‰È;C  +;C u‹G;C~‰Úëâ‰ö…Òt‰2鐉5`®%ƒ=¸%…ôƒìEàPjè3óÿÿ‹`®%ƒÄ‹Eà;B  +;B u‹Eä;B~ÇEÜÇEØëK}؋`®%Mà‹B;A|‹B +Eà‰E؉Ћ@+Aë ¡`®%‹@ +EàH‰EØ¡`®%‹@+Eäʚ;‰G‹E؍€€€€€€Áà‰EԋMÜ¿ÓMb‰È÷ïÁúÁù)ÊUԍҍB‰ÂÁâ)‰Ð÷çÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèFeô[^_]ÃU‰åWVSƒì¶d®%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹p®%f)Ú·Ò‰Ö5€®%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +„®%‰AÁà)ȍÁ‰ÁÁá ȉò)‰€®%f‰p®%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡„®%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡„®%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰Cƒ=`®%„/Ǹ%‹`®%‹Eè;B ;B …Œ‹C;BŽ€ƒ=([#uƒ=[#tÿ[#ÿ([#‹`®%ë#‹¡l®%‰‰l®%‰`®%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;Eè +;EèűB;Eì~ă=([#uƒ=[#tÿ[#ÿ +([#¶d®%ƒøt"ƒø …Àt +ë/vƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹p®%f)Ú·Ò‰Ö5€®%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +„®%‰AÁà)ȍÁ‰ÁÁá ȉò)‰€®%f‰p®%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡„®%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡„®%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰C‹`®%‹Mè;J 
+;J u;B~ÇEäÇEàëJ]à‹`®%Mè‹B;A|‹B +Eè‰Eà‰Ð‹@+Aë ¡`®%‹@ +EèH‰Eà¡`®%‹@+Eìʚ;‰C‹Eà€€€€€€‰ÆÁæ‹Mä»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèîǸ%ë +‰öº@°î°ðîeô[^_]ÐU‰åVSƒì‹E»¹‹`®%ëv‰Ñ‹…Òt;Buó¸ÿÿÿÿ…Ò„I…Éu‹£`®%»ë‹‰¡l®%‰‰l®%ƒ=¸%…ƒ=`®%uº@°î°ðéû‰ö…Û„òƒìEðPjèºìÿÿ‹`®%ƒÄ‹Eð;B  +;B u‹Eô;B~ÇEìÇEèëJ]è‹`®%Mð‹B;A|‹B +Eð‰Eè‰Ð‹@+Aë ¡`®%‹@ +EðH‰Eè¡`®%‹@+Eôʚ;‰C‹E荀€€€€€‰ÆÁæ‹Mì»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèeø[^]Éöú‹D$¼ÈÑ#PèŒëÿÿ`fff f¨f¸0ŽØŽÀ° º î¡[#@£[#1ÛfŒÓü¡t®%ƒøtèùòÿÿëè6ùÿÿ°
+º îì¨t ¸@Pè–ÿÿÿf¡[#f9[#t f£[#ÿ-[#ƒ=[#t‹[#ÿÓf©f¡ffaωöU‰å‹EØf£[#f£[#]Ã1ÀÈÃU‰åf¸0ŽØŽÀ‹Ef;[#t f£[#ÿ-[#]ÉöU‰åƒìjjjj@èaƒÄÉÃU‰åWVSƒì ‹]‹u ‹}聉€:y"…Ût‹B8‰…öt‹BÁà
+‰…ÿt)‹B4‰ë"‰ö…ÛtÇ…öt‹BÁà
+‰…ÿtÇ@ƒ}t ‹BÁà
+‹U‰ƒÄ [^_]ÍvU‰åƒìjjjj@è̓Ä·@0ÉÃU‰å¡ØX#]ÉöU‰å]ÍvU‰åSƒì‹ØX#誃ì Sèucÿÿè ƒÄ‹]üÉÃU‰åWVS‹M ‹u‹}Š]‰ÈÁàeèÿÿ Eè‰ÈÁèUèˆBáÿbÿÿÿ J‰ðˆB‹Ef‰Eè‹EÁè‰EäŠEäƒà ÃË@¶ÃÁàbÿÿÿ Bçüÿ=ÊX#‹‰‹B‰G[^_]ÐU‰åWVSƒì ‹] ‹u‹}·EMèÊX#‹‰‹@‰A‰Ê¶JÁá¶B ÁÁá·B Á…ÛtŠBƒà¶ÐÁâ·Eè Љ…ötŠE툅ÿt
+ŠEî%ðˆ‰ÈƒÄ [^_]ÉöU‰å‹E ¶UÁâ¹à[#fÇD
+8Ƃå[#îƂä[#f‰
+Áèf‰D
+]ÍvU‰åº °îº!°@î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰åº °îº!°î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰å‹Mf…ÉtWfƒùw¸Óà
+$[#ë7fƒùw<·Éƒé¸Óà
+%[#¢%[#º¡î<ÿu $[#©uƒÈ¢$[#º!î]ÃU‰å‹Mf…ÉtUfƒùw¸þÿÿÿÓÀ"$[#ë5fƒùw:·Éƒé¸þÿÿÿÓÀ"%[#¢%[#º¡î $[#©t%û¢$[#º!î]ÉöU‰å¿[#]ÃU‰åƒì‹Ef£[#˜PèWüÿÿƒÄÉÐU‰å¿[#]ÃU‰åƒì‹E‰Âf£[#ƒ=([#uƒì ¿ÂPèüÿÿƒÄÉÐU‰åWVì¾¹0[#ºp[#‰öµÇ(Ú"Ç(Ú"Fƒþ~åƒì EÈPèÅèºÇ`>&¡6#‹EÈ£d>&¶,[#£h>&ƒÄ‹EУp>&‹EÔ£t>&‹EØ£x>&hÑÛ"jè£ýÿÿƒÄhÛÛ"jè”ýÿÿƒÄhåÛ"jè…ýÿÿƒÄhìÛ"jèvýÿÿƒÄhóÛ"jègýÿÿƒÄhúÛ"jèXýÿÿƒÄhÜ"jèIýÿÿƒÄhGÜ"jè:ýÿÿƒÄhÜ"jè+ýÿÿƒÄhÜ"j èýÿÿƒÄhÜ"j
+è +ýÿÿƒÄhÜ"j èþüÿÿƒÄh$Ü"j èïüÿÿƒÄh+Ü"j +èàüÿÿƒÄh2Ü"jèÑüÿÿƒÄh9Ü"jèÂüÿÿƒÄh@Ü"jè³üÿÿƒÄhÛ"jAè¤üÿÿƒÄhÛ"jBè•üÿÿƒÄhÛ"jCè†üÿÿƒÄhÛ"jDèwüÿÿƒÄh Û"jEèhüÿÿƒÄh(Û"jFèYüÿÿƒÄh0Û"jGèJüÿÿƒÄh8Û"jpè;üÿÿƒÄh@Û"jqè,üÿÿƒÄhHÛ"jrèüÿÿƒÄhPÛ"jsèüÿÿƒÄhXÛ"jtèÿûÿÿƒÄh`Û"juèðûÿÿƒÄhhÛ"jvèáûÿÿƒÄhpÛ"jwèÒûÿÿf +Ô=&€¾ƒÄvÀÅÀ¹%ƒì jh‰hØPõ·ÀPèúÿÿƒÄ Fþš~ǃì hÐèFùÿÿƒÄÛãݵTÿÿÿ›¿à=&µTÿÿÿ¹üó¥ ÀƒÈ""ÀÛãèƒûÿÿèúÿÿeø^_]ÍvU‰åSƒìº!°ÿîè’ûÿÿ¹@ºC°6Êîîƒ=d>&~¹AºC°tî°‰Êî°ë»B¹C°°‰ÊÚîîºaî‹]üÉÃU‰å‹U‹E ‰•p[#]ÉöU‰å‹U‹E ‰•0[#]ÉöU‰åƒìh€6#è
+è— ƒÄÉÉöœX‰Á5PœX9ÈtQ¸Ã¸ÜX‰Á5 PœX1ÈtQ¸øÃf1Àžf¸f»öóŸ€üu¸øÃÆ,[#Ûã¹âþfÇ.[#ZZÝ=.[#¹âþf¡.[#<u+Ù=.[#¹âþf¡.[#f%?fƒø?uÆ,[#Æ,[#Éö`¸ëp`¸ëh`¸ë``¸ëX`¸ëP`¸ëH`¸ë@`¸ë8`¸ ë0`¸
+ë(`¸ ë `¸ ë`¸ +ë`¸ë`¸ë ¨Pf¸0ŽÀŽØüX1ÛfŒÓP‹…0[#ÿÓ[° ƒûrº îº îf¡[#f;[#t f£[#ÿ-[#©¡aϸ鋸選ëz¸ës¸ël¸ëe¸ë^¸ëW¸ ëP¸
+ëI¸ ëB¸ ë;¸ +ë4¸ë-¸ë&¸ë` ¨f¸0ŽÀŽØüèש¡aÏPf¸0ŽØŽÀXfŒÓ‹=ÊX#ß1ۊŠ_Áãf‹_ÜfŒÒfŒÛŽÓSRPÿ…p[#ƒÄX[ŽÐ)ÜÏU‰åWVSƒì ‹u¸¹ ‰÷üó«è|ýÿÿ…ÀtÇëUèŠýÿÿ…Àt7ÇFǸ¢‰^‰N‰V …Àt+¸¢‰F‰^‰N‰V ëÇècýÿÿ…ÀtÇ ƒÄ [^_]ÍvU‰åWV¿°[#È·À-yƒÀÁø9ÂtU¿°[#@ÀÝ4Å,º%›È·À-yƒÀÁøf£°[#¿5°[#¿ >&4v4ö4õ,º%¹üó¥Ý% >&^_]ÉöU‰å¿°[#]ÃU‰åWVSƒì(ŠM¡´[#Áà ˜€ f¶?&f£ÊÑ#f¶ +?&f£ÌÑ#€ù t%€ù €ù„óé‰ö€ù
+„#é‰öfƒÊÑ#·ÊÑ#;?&Œ½fÇÊÑ#·ÌÑ#¡?&H9Â…¿¡?&H‰Eì‰Uèf¾ ?&Áâf‰Uò¡´[#Áà °€ ¿;}è:¹;Mì*_ÿv‰ø¯?&È·F‰Ø¯?&Èf‰FA;Mì~ÜG;}è~ƹ;MìKWÿ‰Ð¯?&Èf‹]òf‰FA;Mì~çé)‰öfÇÈÑ#·ÊÑ#‰Áƒø~ºƒÂ·ÂƒÀ9È|óf‰ÈÑ#f¡ÈÑ#f£ÊÑ#éævfÇÊÑ#·ÌÑ#¡?&H9Â…¾¡?&H‰Eà‰UÜf¾ ?&Áâf‰Uæ¡´[#Áà °€ ¿;}Ü=v¹;Mà*_ÿv‰ø¯?&È·F‰Ø¯?&Èf‰FA;Mà~ÜG;}Ü~ƹ;MàGWÿ‰Ð¯?&Èf‹]æf‰FA;Mà~çé%‰öfÿ +ÊÑ#·ÊÑ#·ÌÑ#¯?&ÂÆS fÿÊÑ#éõ‰ö·ÊÑ#·ÌÑ#¯?&Ј CfÿÊÑ#·ÊÑ#;?&Ž¿fÇÊÑ#·ÌÑ#¡?&H9Â…š¡?&H‰EԉUÐf¾ ?&Áâf‰UÚ¡´[#Áà °€ ¿;}Ð=v¹;MÔ*_ÿv‰ø¯?&È·F‰Ø¯?&Èf‰FA;MÔ~ÜG;}Ð~ƹ;MÔ'Wÿ‰Ð¯?&Èf‹]Úf‰FA;MÔ~çëfÿÌÑ#·5ÊÑ#·=ÌÑ#‰øf¯?&f‰EΡ´[#Áà fEÎfuλÔ°‰Úî¹Õ‰ÊŠEÎî°‰Úîf‹EÎfÁè‰Êî‰óˆ?&‰ø¢ +?&ƒÄ([^_]ÐU‰åWVSƒì‹u‹} ‰øf¯?&f‰Eò¡´[#Áà fEòfuò»Ô°‰Úî¹Õ‰ÊŠEòî°‰Úîf‹EòfÁè‰Êî‰ð¢?&‰úˆ +?&ƒÄ[^_]ÍvU‰åS¹Ô°
+‰Êî»Õ‰ÚŠEî° ‰Êî‰ÚŠE î‹$ÉÍvU‰åWVSƒìf¾EÁàf‰Eò¡´[#Áà ¸€ ‹]ë0‹M ;M(sÿ‰Ø¯?&È·G‰ð¯?&Èf‰GA;M~ÜC;]~ʋM ;MSÿv‰Ð¯?&Èf‹]òf‰GA;M~çƒÄ[^_]ÍvU‰åWVSƒì ¡?&H‰Eð‹?&K‰]ìf¾ ?&Áàf‰Eê¡´[#Áà °€ ¿9ß<‰ö¹;Mð*_ÿv‰ø¯?&È·F‰Ø¯?&Èf‰FA;Mð~ÜG;}ì~ƹ;MðWÿ‰Ð¯?&Èf‹]êf‰FA;Mð~çƒÄ [^_]ÍvU‰å·J‰?&¶„@£?&¶„ÿ ¢ ?&¶P¢?&¶Q¢ +?&¶`¢ÏÑ#¶a¢ÎÑ#Ǹ[#Ç´[#]ÃU‰åWVSƒì ?&¢P  +?&¢Q¶ÀP¶?&PèŠýÿÿ¶ÎÑ#¶5ÏÑ#ƒÄ¹Ô°
+‰Êî¿Õ‰úˆØî° ‰Êî‰ú‰ðîeô[^_]ÍvU‰åSƒì‹]€;tŠCƒì ¾ÀPèiùÿÿƒÄ€;ué‹]üÉÃU‰åVS‹E‰ÃÁã £¸[#¹Ô° +‰Êî¾Õ‰òˆØî° ‰Êî‰ØfÁè‰òî[^]ÃU‰åVS‹u‹´[#Áâ»àÑ#¶?&‰¹Ò#¶ +?&‰
+µŠ¢?&Š
+¢ +?&‰5´[#[^]ÃU‰å¡¸[#]ÉöU‰å¡´[#]ÉöU‰åWVSƒì ‹}f¾u Áæf¾E Ƌ]‹E9Ã3v‹M9ù#‰Ê¯?&¡´[#Áà ÐØf‰´€ A9ù~ÞC;]~ЃìÿuÿuèüÿÿŠE¢ +?&ŠE¢?&ƒÄeô[^_]ÍvU‰åWVSƒì ¡?&H‰Eð‹=?&Of¾ ?&ÁãƒË ¾9Æ4¹9ù%v‰Ê¯?&¡´[#Áà Ððf‰œ€ A9ù~ÞF;uð~̃ìjjèûÿÿÆ +?&Æ?&ƒÄeô[^_]ÍvU‰åS‹U ‹]‹M¯?&¡´[#Áà ÂU”€ ˆ
+ˆZ‹$ÉÉöU‰åS‹E ‹]‹M‰Â¯?&¡´[#Áà ÂU”€ ¶B…Étˆ¶‰Â…Ûtˆ¾Â‹$ÉÐU‰åS‹E ‹MŠ]‰Â¯?&¡´[#Áà ÂU”€ €9tŠˆABˆB€9uò‹$ÉÐU‰åƒìh¼6#èTýÿÿôƒÄÉÉöU‰åƒìjèƒÄÉÉöU‰åƒìh4èƒÄÉÍvU‰åVS‹Ef£r¹d»þ¾v‰Êì©t Fþÿÿ~í¸@=Ÿ†~ø‰ÚˆÈö@=Ÿ†~øë‰öU‰åSƒìE Pÿuh Ò#èX‰ÃÇ$ Ò#è¢üÿÿ‰ØƒÄ‹]üÉÃU‰åWVSìð‹} ŠEˆ…ÿÿÿEPÿuÿÿÿSè‰ÆS¾…ÿÿÿPWÿuè±þÿÿ‰ðƒÄ eô[^_]ÃU‰åSƒìE Pÿuh Ô#謉ÃÇ$ Ô#è&üÿÿ‰ØƒÄ‹]üÉÃU‰åS‹M‹U ‰Ë€:tvŠˆBA€:uõƉ؋$ÉÍvU‰åVS‹]‹U ‹M‰Þë‰öŠˆBC€:t‰ÈI…ÀîƉð[^]ÐU‰å‹U‹M ë +¸€:tBAŠ:t)Ð]ÃU‰åS‹U‹] ‹M…Éëv¶¶Sÿ)Ð됊C8uíŠB„ÀtIu︋$ÉÐU‰å‹U¸€:tB@€:uù]ÍvU‰åS‹E‹] €8t‰Ú€:tŠv:
+tB€:uö@€8u下$ÉÉöU‰å‹E‹U €8t ‰ö8t @€8uö¸]ÍvU‰åS‹]‰Ú€;t‰öŠ
+AŸ<wAàˆB€:uì‰Ø‹$ÉÐU‰åS‹]‰Ú€;t‰öŠ
+A¿<wA ˆB€:uì‰Ø‹$ÉÐU‰åS‹U‹M ‰Ó€;tvB€:uú늈AB€9uõƉ؋$ÉÍvU‰åWVSƒì<‹u‹]ÇEèÇEäÇEàÇEÜÇEØÇEÔÇEпÇEÌÙîÝ]À‰uì‹E €8„D‹U €:%t…ÿuŠˆB‰U FÿEèév‹E €8%u%@‰E ¿ÇEä
+ÇEàÇEØÇE̋U ¾ƒè%ƒøS‡Ñÿ$… '#‰öÆ%FÿEè鼃ÉòFŠCüˆÿEè驐ƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÔë +vƒÃ¿Sü‰Uԃì ÿuÌÿuäj
+VÿuÔè¾ éœƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäj
+VÿuÐè.éPƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäjVÿuÐèâ鐃ËCü‰EЃì jÿuäjVPèÂé䐃ËSü€:tŠˆBFÿE܀:uò‹UÜUèévƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèYë~vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀè} +ë>vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèa‰EÜEèÆ¿ƒÄ é±ÇEØé¥ÇEØ陃MÌ鐍vƒMÌ鄍v¿ƒMÌëvƒÿu?ƒìEìPj
+ÿu èb
+‰EäƒÄ‹E €80u ÷EÌtƒMÌ됃MÌ‹UìJ‰U ë4vƒÿu,ƒìEìPj
+ÿu è
+‰Eà‹EìH‰E ¿ƒÄë‰ö¿ÿE ‹U €:…¼üÿÿÆ‹Eèeô[^_]ÉöU‰åƒì EPÿu ÿuè7üÿÿƒÄÉÉöU‰åWVSƒì,‹u‹} ‹]ÇEìÇEèÇEäÇEàÇEÜÇEØÇEÔÇEЉuð€?„>€?%tƒ}Ôu ŠˆGFÿEìëá€?%uGÇEÔÇEè
+ÇEàÇEоƒè%ƒøS‡çÿ$…p(#Æ%FÿEìéԃÉòFŠCüˆÿEìéÁƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ¿Cü‰E܃ì ÿuÐÿuèj
+VÿuÜè鏐ƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèj
+ëBƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèjVÿuØè6‰EäEìÆÇEÔƒÄ éҍvƒÃ‹Sü€:tŠˆBFÿEä€:uò‹EäEì飍vÇEàé›ÇEà鏃MÐ醍vƒMÐë}‰öÇEÔƒMÐënvƒ}Ôu6ƒìEðPj
+W蓉EèƒÄ€?0u ÷EÐtƒMÐ됃MЋ}ðOë1‰öƒ}Ôu)ƒìEðPj
+WèW‹}ðOÇEÔƒÄë
+vÇEÔGé¼ýÿÿvÆ‹Eìeô[^_]ÉöU‰åƒì EPÿu ÿuèGýÿÿƒÄÉÉöU‰åWVSƒì,‹}‹uÇEèÇEäÇEàÇEÜÇEØ»‰}ì饐‹U €:%t…Ûu B‰U 鏍v‹E €8%u%@‰E »ÇEäÇEàÇEÜÇE؋U ¾ƒè*ƒøN‡Eÿ$…À)#‰öƒû…8ƒìEìPj
+ÿu èN‰E܃MØ‹EìH‰E ƒÄéŠGƒÆ‹^üˆëÝØÿEèéõƒÆ‹^üëG€?tƒì ¾PèBƒÄ…ÀuçÇEÔë#‰ö÷EØuŠˆCë‹UÜ9UÔ}ŠˆCÿEÔG€?tƒì ¾PèþƒÄ…ÀtÇÆ덉öƒìhÈ6#Wè&÷ÿÿ‰ÇƒÄ EìPj
+WèՉ‹}ìƒÄƒ}à…Wƒ}ät)ƒ}ä ƒ}ätéCÿÿÿƒ}ä…9ÿÿÿƒÆ‹Fü‰é,ÿÿÿƒÆ‹Füf‰éÿÿÿ‰öƒìhÕ6#Wè¶öÿÿ‰ÇƒÄ EìPj
+됃ìhà6#Wèšöÿÿ‰ÇƒÄ EìPjWè ‹}ìƒÄƒ}à…̓}ät+ƒ}ä +ƒ}äté¹þÿÿ‰öƒ}ä…­þÿÿƒÆ‹Vü‰é þÿÿƒÆ‹Vüf‰é‘þÿÿ‰öƒìhø6#Wè*öÿÿ‰ÇƒÄEìPWè;‹}ìƒÄƒ}àu`ƒ}ät)ƒ}ä ƒ}ätéMþÿÿƒ}ä…CþÿÿƒÆ‹FüÝé8þÿÿƒÆ‹FüÙé*þÿÿvÇEäë vÇEäëvÇEàëÝؐ»ÿE ‹E €8…Pýÿÿ‹Eèeô[^_]ÐU‰åƒì EPÿu ÿuèïüÿÿƒÄÉÉöU‰åWVSƒì,‹u ÇEп‹Eƒð‰EԋU‰U̅Òy‰Ñ÷ىM̃}y ‹E…Ày÷Ø됋E÷EÔu ƒ}yƒ}yGƒ}u‹EÐÆD(Ø0@‰EÐë8v…Àt1U؉Uȉöƒì º÷ủÃRèI‹MȋUЈ
+B‰UЉ؃Ä…Àu×}ЋEԃàƒøu‰ú;}} +‰öÆ FGB;U|õƒ}y ƒ}yÆ-ë ÷EÔtÆ+F‹Eԃàƒøu‰ú;}} Æ0FGB;U|õ‹UÐJx M؊
+ˆFJy÷‹Eԃàƒøu‰ú;}} Æ FGB;U|õƉøeô[^_]ÃU‰åƒì‹Eÿuÿu÷ØPÿu ÿuèŸþÿÿƒÄ ÉÉöU‰å‹E…Ày÷Ø]ÉöU‰åSƒì‹]èÁîÿÿƒì Sè± ÿÿU‰åWVSƒì‹M‹} ÙîÙÀÙ軀9-u ¾ÿÿÿÿë
+‰ö¾ëA€90túŠƒè0< w(Ý+#ëÙˍv¾ƒè0AÜËÙËPÚ$XŠƒè0< vâÝۀ9.u9AŠƒè0< w/Ý+#ëÙÉÙʉö¾ƒè0AÜÊÙÊPÚ$ÙÉXØʊƒè0< vÝÝÚÙÉÞùÞÁVÚ $^€9et €9E…“A€9-u
+¾ÿÿÿÿAë‰ö€9+u ¾Aëv¾Šƒè0< weÝ+#¾ƒê0A·ÃÙÀPÚ $Ù}ð‹]ðÆEñ Ùmð‰]ðÛ]ìÙmð‹Eì·À‰$Û$‰$Ú$ZÙ}ð‹UðÆEñ Ùmð‰UðÛ]ìÙmð‹Eì‰ÃŠƒè0< v£Ý؅ö~!ºf…Ût4Ý+#·Ã‰öÜÉB9Â|ùëvº·Ã‰Ã9Â}Ý+#ÜùB9Ú|ùÝ؅ÿt‰ƒÄ[^_]ÐU‰åWVSƒì ‹]‹} ÇE쾀;-u ÇEðÿÿÿÿCë‰ö€;+u ÇEðCëÇEð€;0u>C€;0túë6ƒì ¾PCè‰ÂƒÄ9ú…Òy
+¸ëEv‰ð¯÷Ö9ð~ÇEìƒìW¾P聃ąÀu¶ƒ}t‹E‰ƒ}ìt¾ÿÿÿ¯uð‰ðeô[^_]ÉöU‰åWVSƒì ‹]‹} ÇEð¾€;0uC€;0tú€;xuKƒÿuFC€;0u@‰öC€;0túë6ƒì ¾PCè_‰ÂƒÄ9ú…Òy
+¸ëAv‰ð¯÷Ö9ðvÇEðƒìW¾PèуÄ…Àu¶ƒ}t‹E‰ƒ}ðt¾ÿÿÿ‰ðeô[^_]ÉöU‰åŠUBÐ< w ¾Âƒè0ë&vB¿<w ¾Âƒè7됍BŸ<w ¾ÂƒèW됾Â]ÍvU‰å‹Uƒú w B0¾À됍BöƒøwB7¾Àë¾Â]ÍvU‰åŠUƒê0¸€ú –À]ÉöU‰åŠUBÐ<vBŸ<w¸ë¸]ÐU‰åŠU€ú/~‹E ¼[#:Pÿ¸ë¸]ÐU‰åŠUBŸ<w Bà¾Àëv¾Â]ÍvU‰åŠUB¿<w B ¾Àëv¾Â]ÍvU‰åVS¾ƒì ¾]Sè%ƒÄ…Àuƒì Sè5ÿÿÿƒÄ…Àt¾‰ðeø[^]ÃU‰åŠUƒêA¸€ú9–À]ÉöU‰å¸€}/žÀ]ÍvU‰åŠUƒêa¸€ú–À]ÉöU‰åŠUB÷<v
+¸€ú u¸]ÉöU‰åŠUƒêA¸€ú–À]ÉöU‰åWVSƒì ÝEÝUè‹]‹}ÇEäSd$øÝ$èoƒÄ…Àtƒì Sè·îÿÿƒÄéPvÙîÝEèÚéßà€äE€üu Æ-C€uï€ë÷EtÆ+CÿEäÝ+#ÝEèÚéßà€äE€üuÆ0ÆC¸éû‰öÙèÝEèÝáßà€äE€üu3¾Ýéßà€äE€üuHÝ7#ÝEèØÉÝUèNÝêßà€äE€ütëÝØë)vÝØÝؾÝ7#ÝEèë ÝEèØñÝUèFÝéßàöÄtîÝ؃ì Vè÷ùÿÿƒÄƒøc~ƒïë‰öƒø ~ƒïë‰ö…ö~Oƒì‹EƒÈPÿuWSÿuìÿuèèUEäƒÄ …öu‹Eäë;‰ö]äÆeCƒì jºgfff‰ð÷êÁú‰ðÁø)ƒÂRj
+SVè\ùÿÿ‹UäD‰EäƒÄ eô[^_]ÍvU‰åWVSìŒÝEݝþÿÿ‹]Dž€þÿÿ½¸þÿÿ¹K¸üó«ƒìSÿµ”þÿÿÿµþÿÿ貃ąÀtƒì SèúìÿÿƒÄé‰öÙî݅þÿÿÚéßà€äE€üuÆ-C€µ—þÿÿ€ëv÷Et
+Æ+Cÿ…€þÿÿƒì…˜þÿÿPÿµ”þÿÿÿµþÿÿèþݝpþÿÿ‹…pþÿÿ‹•tþÿÿ‰Æ‰×DžŒþÿÿƒÄ݅˜þÿÿÙèÙÉÝáßàöÄ…ø重vh$@jÿµœþÿÿÿµ˜þÿÿè$݅˜þÿÿÜ5+#ݝ˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿß½¨þÿÿÙ­´þÿÿ‹…¨þÿÿ‰$èûÿÿ‹•Œþÿÿˆ„*¸þÿÿB‰•ŒþÿÿƒÄ݅˜þÿÿÙèÙÉÚéßàöÄ„oÿÿÿ‹•Œþÿÿ•€þÿÿ‰ÑI…¸þÿÿ‰…|þÿÿë‰ö‹•|þÿÿŠˆCI‹•Œþÿÿƒê‰ÐÁèH!Â9Ñ}ޅÉx‹Œþÿÿƒéx
+vÆ0CIyùÆëÝØÝØÆ0Cÿ…€þÿÿÝ 7#‰µpþÿÿ‰½tþÿÿ݅pþÿÿÚéßàöÄE…\‹E@9…€þÿÿLÆ.Cÿ…€þÿÿ‹Eƒà‰…ˆþÿÿDž„þÿÿDžŒþÿÿv‰µpþÿÿ‰½tþÿÿ݅pþÿÿÜ(7#Ü ++#ݝpþÿÿ‹µpþÿÿ‹½tþÿÿƒì…˜þÿÿPWVèݝpþÿÿ‹•pþÿÿ‹tþÿÿ‰Ö‰Ï݅˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿ۝¤þÿÿÙ­´þÿÿ‹…¤þÿÿƒÄ…Àtƒ½ˆþÿÿu
+Džˆþÿÿƒì PèÓùÿÿˆCÿ…€þÿÿÿ…ŒþÿÿƒÄƒ½ˆþÿÿt‹E9…Œþÿÿ~
+Dž„þÿÿ‹•€þÿÿ9U}
+Dž„þÿÿƒ½„þÿÿ„ýþÿÿKë
+‰öÿ€þÿÿ‰Ã€;0u Cÿ€{ÿ.uêCÆ‹…€þÿÿeô[^_]ÃU‰åWVSƒì‹]‹u ‹}WVSèZƒÄ…Àtƒì Wè¢éÿÿƒÄéñ‰öÙî‰]è‰uìÝEèÝáßàÝـäE€üuÙàëvÝ؉]è‰uìÝEèÝ+#ÙÉÝáßàÝـäE€üuÝØÆ0ÆG¸雺ÙèÙÉÝáßà€äE€üu/Ýáßà€äE€üu?Ý7#ëÙɐÜÉÙÉJÝâßà€äE€ütìÝØëvÝÙÝ7#ë‰öØñÙÉBÙÉÝáßàöÄtðÝØÝ؍BƒøvƒìÿuÿuÿuWVSèÔùÿÿë‰öƒìÿuÿuÿuWVSèXûÿÿƒÄ eô[^_]ÐU‰åƒìSÙ}ü›f‹Eüf +? f‰EøÙmø›ÝEÙüÝ]ð›‹Uð‹Mô‹]‰‰KÝEÜeðeì›ÛâÙmü›[ÉÍvU‰åƒì‹E‹U ‰Eø‰Uü‹MUøf‹BfÁè%ÿ=ÿt¸ëk÷Bÿÿuƒ:t…Étƒìh07#QèDçÿÿƒÄ¸ë@‰ö€zy…Étƒìh47#Qè çÿÿƒÄ¸ë‰ö…Étƒìh97#QèçÿÿƒÄ¸ÉÃU‰åƒì¸ Ö#ƒ=È[#tÿÈ[#ÉÃU‰å‹E£È[#]ÍvU‰åƒì‹E‹U ‰Eø‰UüUø¹f‹BfÁè%ÿ=ÿu÷Bÿÿuƒ}øt¹‰ÈÉÉöU‰åSƒì‹E ‹]ÆPè‰âÿÿ‰ØƒÄ‹]üÉÍvU‰åVSƒì ÝEÝUð‹]‹uVSd$øÝ$èrÝ]èƒÄƒ=Ì[#ÿtWƒìVSèYÿÿÿƒÄ…ÀuFƒìÿuôÿuðèDÿÿÿƒÄ…Àu1Ùî‰]à‰uäÝEàÚéßà€äE€ô@uƒì jVSÿuôÿuðè4ƒÄ ëvÝEèeø[^]ÉöÝD$ ÝD$Ùø›ßàžzøÝÙͶ¼'U‰åVSƒì0ÝE‹]‹u‹EÝUà‰]è‰uìPÿú‡Èÿ$•0+#ÝØÇEغ>7#ƒøc~ºC7#‰UÜÇEðÇEôƒ=Ì[#„}ƒì EØP誃ąÀ…uƒ=Ì[#…YƒìjhI7#éëvÝØÇEغ]7#ƒøc~ºb7#‰UÜÇEðÇEôƒ=Ì[#„ƒì EØPè>ƒÄ…À… ƒ=Ì[#…íƒìjhh7#év‰]à‰uäÝ]èÇEغ|7#ƒøc~º‚7#‰UÜÇEðÇEôƒ=Ì[#„žƒì EØPè˃ąÀ…–ƒ=Ì[#…zƒìjh‰7#é ÝØÇEغž7#ƒøc~º¤7#‰U܃=Ì[#uÇEðàÇEôÿÿïGé¸ +¡À[#‹Ä[#‰Eð‰Uôé¡ +‰öÝØÇEغ29#ƒøc~º89#‰U܃=Ì[#uÇEðàÇEôÿÿïGéh +¡À[#‹Ä[#‰Eð‰UôéQ +‰öÝØÇEغ«7#ƒøc~º¯7#‰U܃=Ì[#uÇEðàÇEôÿÿïGé +¡À[#‹Ä[#‰Eð‰Uôé +‰öÝØÇEغ«7#ƒøc~º¯7#‰UÜÇEðÇEôéÑ ‰öÝØÇEغ72#ƒøc~º´7#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„óƒì EØPè ƒÄ…À…ëƒ=Ì[#…σìjh¸7#éaÝØÇEغ72#ƒøc~º´7#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„gƒì EØP蔃ąÀ…_ƒ=Ì[#…Cƒìjh¸7#éÕ +ÝØÇEغø1#ƒøc~ºÊ7#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„Û +ƒì EØPèƒÄ…À…Ó +ƒ=Ì[#…· +ƒìjhÎ7#éI +ÝØÇEغø1#ƒøc~ºÊ7#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„O +ƒì EØPè| +ƒÄ…À…G +ƒ=Ì[#…+ +ƒìjhÎ7#é½ ÝØÇEغà7#ƒøc~ºã7#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„à ƒì EØPèð ƒÄ…À…» ƒ=Ì[#…Ÿ ƒìjhç7#é1 ÝØÇEغà7#ƒøc~ºã7#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„7 ƒì EØPèd ƒÄ…À…/ ƒ=Ì[#… ƒìjhç7#é¥ ÝØÇEغù7#ƒøc~º8#‰U܃=Ì[#uÇEðàÇEôÿÿïGéP ¡À[#‹Ä[#‰Eð‰Uôé9 ‰öÝØÇEغù7#ƒøc~º8#‰U܃=Ì[#uÇEðàÇEôÿÿïGë¡À[#‹Ä[#‰Eð‰Uôƒ=Ì[#„a ƒì EØPèŽ ƒÄ…À…Y ƒ=Ì[#…= ƒìjh8#éÏ
+vÝØÇEغ8#ƒøc~º 8#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„å ƒì EØPè ƒÄ…À…Ë
+ƒ=Ì[#…¯
+ƒìjh%8#éA
+ÝØÇEغ8#ƒøc~º 8#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„G
+ƒì EØPèt
+ƒÄ…À…?
+ƒ=Ì[#…#
+ƒìjh68#éµ ÝØÇEغI8#ƒøc~ºO8#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„Íƒì EØPèè ƒÄ…À…³ ƒ=Ì[#…— ƒìjhV8#é) ÝØÇEغI8#ƒøc~ºO8#‰U܃=Ì[#uÇEðàÇEôÿÿïÇë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„/ ƒì EØPè\ ƒÄ…À…' ƒ=Ì[#… ƒìjhi8#靐ÝØÇEغ~8#ƒøc~º‚8#‰UÜÇEðÇEôƒ=Ì[#… ƒì EØPèòƒÄ…À…½ƒìjh‡8#jèÞõÿÿèeõÿÿÇ!ƒÄ降vÇEغ~8#ƒøc~º‚8#‰U܃=Ì[#uvÇEðàÇEôÿÿïG‰]ЉuÔÝEÐÜ +è9#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…¯ƒìVSèjƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„‡ÇEðàÇEôÿÿïÇét¡À[#‹Ä[#‰Eð‰Uô‰]ЉuÔÝEÐÜ +è9#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…6ƒìVSèñƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„¡À[#‹Ä[#ò€‰Eð‰UôéòvÝØÇEغ~8#ƒøc~º‚8#‰UÜÇEðÇEôéÁ‰öÝØÇEغ~8#ƒøc~º‚8#‰U܃=Ì[#uÇEðÇEôë¡À[#‹Ä[#ò€‰Eð‰Uôƒ=Ì[#„ãƒì EØPèƒÄ…À…Ûƒ=Ì[#…¿ƒìjhŸ8#éQÝØÇEغ~8#ƒøc~º‚8#‰U܃=Ì[#uÇEðÇEôëÇEðÇEôøƒ=Ì[#„`ƒì EØP荃ąÀ…Xƒ=Ì[#…<ƒìj hÀ9#éΉöÇEغ¹8#ƒøc~º¾8#‰U܃=Ì[#u6ÙîÙÉÚéßàöÄEuÇEðàÇEôÿÿïGém‰öÇEðàÇEôÿÿïÇéX‹ +À[#‹Ä[#‰Mð‰]ôÙîÙÉÚéßàöÄE„4‰È‰Úò€‰Eð‰UôéÝØÇEغÄ8#ƒøc~ºÉ8#‰U܃=Ì[#uÇEðÇEôëÇEðÇEôøƒ=Ì[#„Lƒì EØPèyƒÄ…À…Dƒ=Ì[#…(ƒìjhÏ8#麉öÇEغã8#ƒøc~ºè8#‰U܃=Ì[#uÝ]ðëÝØÇEðÇEôøƒ=Ì[#„Òƒì EØPèÿƒÄ…À…ʃ=Ì[#…®ƒìjhî8#é@ÝØÇEغ9#ƒøc~º +9#‰UÜÇEðÇEôøƒ=Ì[#„iƒì EØP薃ąÀ…aƒ=Ì[#…Eƒìjh9#é׍vÝØÇEغ19#ƒøc~º79#‰UÜÇEðÇEôøƒ=Ì[#„ýƒì EØPè*ƒÄ…À…õƒ=Ì[#…Ùƒìjh>9#ékvÝØÇEغS9#ƒøc~ºY9#‰UÜÇEðÇEôøƒ=Ì[#„‘ƒì EØP较ąÀ…‰ƒ=Ì[#…mƒìjh`9#éÿvÇEغS9#ƒøc~ºY9#‰UÜÜ5ð9#Ý]ðƒ=Ì[#„,ƒì EØPèYƒÄ…À…$ƒ=Ì[#…ƒìjhu9#隉öÇEغˆ9#ƒøc~ºŽ9#‰U܋ +À[#‹Ä[#‰Mð‰]ôÙîÙÉÚéßàöÄEtC‰È‰Úò€‰Eð‰Uôë1‰öÇEغˆ9#ƒøc~ºŽ9#‰U܍d$øÝ$jjè›Ý]ðƒÄƒ=Ì[#…jé|vÝØÇEغ•9#ƒøcŽ•º˜9#鋍vÝØÇEغ72#ƒøc~uº´7#ën‰öÝØÇEغ«9#ƒøc~Yº®9#ëR‰öÝØÇEغø1#ƒøc~=ºÊ7#ë6‰öÝØÇEغ²9#ƒøc~!ºµ9#ë‰öÝØÇEغà7#ƒøc~ºã7#‰UÜÇEðÇEôƒ=Ì[#„¯ƒì EØPèʃąÀ…•ƒ=Ì[#…‹ƒìjÿuÜjè«îÿÿƒÄ jhœ9#jèšîÿÿƒÄëfÝØÇEغú7#ƒøc~º8#‰U܃=Ì[#uÇEðàÇEôÿÿïGë¡À[#‹Ä[#‰Eð‰Uôƒ=Ì[#tƒì EØPè2ƒÄ…À…ýè¶íÿÿÇ"éívÝØÇEغú7#ƒøc~º8#‰U܃=Ì[#uÇEðàÇEôÿÿïGë¡À[#‹Ä[#‰Eð‰Uôƒ=Ì[#„‰ƒì EØP趃Ä…À…ƒ=Ì[#uiƒìjh 8#jè™íÿÿƒÄëSÇEغ~8#ƒøc~º‚8#‰UÜÝ]ðƒ=Ì[#ÿt ƒ=Ì[#uÇEðÇEôð?ë$‰öƒì EØPè@ƒÄ…ÀuèÈìÿÿÇ!ëÝØÝEðeø[^]ËT$â€‹D$%ÿÿÿ ЉD$ÝD$ÉöU‰å¸]ÉöÝD$ÙüÉö¼'U‰åWVSƒì ‹E ‰EðEƒEðƒeðøƒàø‰Eì‹Eð9EìsƒìjUhø9#h:#è˜ ƒÄ‹Eð9Eì„Ä‹E‹…Û„·‹C;C rƒìj`hø9#h +:#è` ƒÄöCtƒìjahø9#h@:#èC ƒÄöC tƒìjbhø9#h€:#è& ƒÄ‹Eì;CvL‹Eð;C sD‰Æ‹}ì;ss‹s;{ v‹{ 9÷wƒìjnhø9#h!:#èæ ƒÄƒì‰ø)ðPVÿu蚃ċ…Û…Iÿÿÿeô[^_]ÐU‰åWVSƒì ‹u ‹E‹}‰ÂUƒÀƒàøƒâø9†ŒÇF‰F‰V ‹E‰F‰~ÇF‹MëF‰ö9óuƒìjlh°:#h»:#èX ƒÄ‹F ;Cv‹F;C sƒìjmh°:#hà:#è1 ƒÄ‰Ù‹…Ût9{±9{u‹S +S‹F +F9Âwœ‰‰1eô[^_]ÃU‰åWVSƒì ‹]‹} …ÛuƒìjLh +;#h;#èÙ
+ƒÄ…ÿuƒìjMh +;#h;#è¾
+ƒÄƒÇƒçø‹3…ö„rvƒ~uƒ~t‹F;FsƒìjUh +;#h`;#è€
+ƒÄƒ~t‹F;F rƒìjUh +;#hÀ;#è[
+ƒÄ‹F +F9FvƒìjUh +;#h<#è9
+ƒÄ‹F÷ЅE…åF‰Eð‹^…Û„ԍv÷Ãtƒìj^h +;#h@<#èø ƒÄöCtƒìj_h +;#h€<#èÛ ƒÄƒ;t9wƒìj`h +;#hÀ<#è» ƒÄ;^ rƒìjah +;#h6;#èŸ ƒÄ9{rGv‹‰‹C)ø‰B‹Eð‰ë
+v‹‹Uð‰9~sƒìjwh +;#hM;#è\ ƒÄ)~‰Øë‰ö‰]ð‹…Û…/ÿÿÿ‹6…ö…‘þÿÿ¸eô[^_]ÃU‰åƒì jÿjÿuÿuÿuÿu ÿuèƒÄ ÉÐU‰åWVSƒì‹]‹EE ‰Eð…ÛuƒìjThé<#h;#èۃă} uƒìjUhé<#h;#较ċ;…ÿ„lƒuƒt‹G;Gsƒìj[hé<#h`;#舃ăt‹G;G rƒìj[hé<#hÀ;#ècƒÄ‹G +G9Gvƒìj[hé<#h<#èAƒÄ‹G÷ЅE…á‹Uð9WƒÕ‹M9O †ÉG‰Eì‹_…Û„¸v÷Ãtƒìjkhé<#h@<#èèƒÄöCtƒìjlhé<#h€<#è˃ă;t9wƒìjmhé<#hÀ<#諃Ä;_ rƒìjnhé<#h6;#菃ċU 9S‚$‰Þ;]s‹u¹;M}ºÓâ‹E1ð…ÂtÖA;M|è‰ð)ØE ;C‡è‹M 1;Eð‡æ‰ðƒàø‰Eè9Øsƒìh‘hé<#hô<#èƒÄ9]èvC‹Uè)ډUä÷Âtƒìh–hé<#h =#èãƒÄ‹‹M艋C+Eä‰A‹Eä‰C‰]ì‰ðƒà‹U Tƒâø‰U ‹Mè9Qv‰ÊU ‹‰‹A+E ‰B‹Eì‰ë
+‹Uè‹‹M쉋E 9Gsƒìh´hé<#hM;#èkƒÄ‹U )W‰ðë‰ö‰]ì‹…Û…Kþÿÿ‹?…ÿ…•ýÿÿ¸eô[^_]ÃU‰åƒì jÿjjj ÿu hÿuèýÿÿƒÄ ÉÐU‰åWVSƒì‹]ShR=#èeÌÿÿ‹3ƒÄ…ö„ƒìÿvÿvÿv‹F +FPÿv ÿvhà=#è5ÌÿÿƒÄ ƒ~uƒ~t‹F;Fsƒìjahd=#h`;#袃ă~t‹F;F rƒìjahd=#hÀ;#è}ƒÄ‹F +F9Fvƒìjahd=#h<#è[ƒÄ¿‹^…Û„¾ƒì ÿ3ÿs‰ØCPSh >#è—ËÿÿƒÄ ÷Ãtƒìjihd=#h@<#èƒÄöCtƒìjjhd=#h`>#èóƒÄƒ{wƒìjkhd=#hk=#èփă;t9wƒìjlhd=#hÀ<#趃Ä;^ rƒìjmhd=#h6;#蚃Ä{‹…Û…BÿÿÿƒìWh‡=#èäÊÿÿƒÄ9~tƒìjshd=#hš=#è`ƒÄ‹6…ö…cþÿÿƒì h²=#è®ÊÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u‹] ‰ßƒçø…öuƒìjNhû9#h;#è ƒÄ…ÛuƒìjOhû9#h’>#èñƒÄƒ}uƒìjPhû9#h;#èԃĉ؃à‹UTƒâø‰U‹ëv‹…ÛuƒìjXhû9#h>#螃ă{uƒ{t‹C;CsƒìjYhû9#h`;#èsƒÄƒ{t‹C;C rƒìjYhû9#hÀ;#èNƒÄ‹C +C9CvƒìjYhû9#h<#è,ƒÄ;{‚hÿÿÿ;{ ƒ_ÿÿÿ‹EC‹C +C9Cvƒìjbhû9#h<#èòƒÄÇEð‹sëv‰uð‹6…öt9þróƒ}ðtm‹Eð@9ørc9øtƒìjnhû9#hÀ>#諃ąöt8‹U:9ðr.9ðtƒìjuhû9#h?#肃ċEF‹UðB‹‰ëE‹E‹UðBë9ƒ}ðt
+‹Eð‰8ëv‰{…öt‹U:9ðr‰ÐF‰G‹‰ë ‹E‰G‰7eô[^_]ÃU‰åƒì hÿu ÿuèÒýÿÿƒÄÉÐU‰å‹EÇ]ÉöU‰åWVSƒì ÇEèÇEìÇEð‹E‹0…ö„Zƒ~uƒ~t‹F;Fsƒìj]h&?#h`;#蠃ă~t‹F;F rƒìj]h&?#hÀ;#è{ƒÄ‹F +F9Fvƒìj]h&?#h<#èYƒÄÿEð¿‹^…Û„¨v÷Ãtƒìjdh&?#h@<#è$ƒÄöCtƒìjeh&?#h`>#èƒÄƒ{wƒìjfh&?#hk=#èêƒÄƒ;t9wƒìjgh&?#hÀ<#èʃÄ;^ rƒìjhh&?#h6;#讃ÄÿEì{‹…Û…[ÿÿÿ9~tƒìjnh&?#hš=#肃Ä‹FEè‹6…ö…§þÿÿƒì ÿuìÿuðÿuèÿuh@?#è¾ÆÿÿƒÄ eô[^_]ÍvU‰åVS‹u‹] EƒìPÿuh@Ö#è…ÈÿÿƒÄh@Ö#ÿ5€Þ#jSVhÀ?#è5ƒÄ eø[^]ÍvU‰åƒìÿ5lÞ#jÿuÿu ÿuh€?#èƒÄ ÉÉöU‰åƒì E Pÿuh@Ú#èÈÿÿƒÄ jjhø!#èì%ÿÿƒÄh@Ú#h#@#èŠÅÿÿÇ$MèFÿÿƒÄÉÐU‰åƒìh@Ú#h@#ècÅÿÿƒÄÉÉöU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)лDß#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»Hß#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Řß#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Ŝß#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆHß#‰¸Lß#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹â#‰U苀â#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õâ#|[‰Eäv1‰ÐÁà)ЍÅ;šâ#u ‹Eì;‚â#|1‰Ï‰ÐÁà)Ћ Řß#ƒùÿt4 1‰ÐÁà)Ћ]ä;Åâ#}«ƒÿÿt‰ÐÁà)ЋU‰Řß#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Ŝß#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆHß#‰¸Lß#ƒÄ[^_]ÍvU‰å‹EÇÿÿÿÿÇ@ÿÿÿÿ]ÍvU‰åWVS‹uv‰ÐÁà)ЍÅP‹˜Lß#¿Hß#‹ 8ƒûÿt[‰ÐÁà)ЉLÇPëv‹E ‰ƒùÿt&I‰ÁÁá)Á»Lß#v‰ÐÁà)ЋDÃP‰DËPë v‹E ‰X[^_]ÐU‰åS‹M‹‰Øƒûÿt=‹@‰ÂÁâ)‹՘ß#‰ƒøÿt@‰ÐÁà)ÐÇŜß#ÿÿÿÿë
+vÇAÿÿÿÿ‰Ø‹$ÉÉöU‰åS‹M‹] ƒ;ÿt)I‰ÐÁà)Ћ‰Řß#‹@‰ÂÁâ)‰ ՜ß#됉KI‰ÐÁà)ÐÇŘß#ÿÿÿÿI‰ÐÁà)ÐÇŜß#ÿÿÿÿ‰ ‹$ÉÃU‰åS‹M‹] ƒ{ÿt,I‰ÐÁà)ЋS‰Ŝß#‹C@‰ÂÁâ)‰ ՘ß#ë‰ö‰ I‰ÐÁà)ÐÇŜß#ÿÿÿÿI‰ÐÁà)ÐÇŘß#ÿÿÿÿ‰K‹$ÉÃU‰å‹E‹]ÉöU‰å‹E‹@]ÐU‰å·Eƒøt ƒø…Àtë-ƒøtƒøtë ¸A@#됸F@#됸J@#됸P@#됸1#]ÐU‰åWVSƒìœúX‰Â‰Uä÷Et$ƒìEèPjèL—ÿÿƒÄ ÿuìÿuèh`@#èeÁÿÿƒÄ÷EtN¾;5pÞ#sA¿ Þ#vƒì µ‹;¶BP·BPRVh @#è!ÁÿÿƒÄ‹;VÿP ƒÄF;5pÞ#rÇ÷Etƒì h{@#èõÀÿÿèX&ÿÿƒÄ‹Uä‰ÐPeô[^_]Éö¨ê"pí"pí"pí"pí"pí"Üì"pí"èì"ôì"pí"í"í"í"í"í"í"í"í"í"í"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"pí"´ê"Èê"4ì"ôë"tì"Ðì"Èê"pí"pí"Äì"pí"Ðì"pí"¬ë"pí"pí"Ìë"pí"ë"pí"pí"`ë"Tî"4ð"4ð"4ð"4ð"4ð"¬ï"4ð"¸ï"Àï"4ð"Ðï"Ðï"Ðï"Ðï"Ðï"Ðï"Ðï"Ðï"Ðï"Ðï"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"4ð"`î"tî"4ð"4ð"4ð" ï"tî"4ð"4ð"”ï"4ð" ï"4ð"4ð"4ð"4ð"lï"4ð"Äî"4ð"4ð"ï"@ó"Ló"Ló"Ló"Ló"Ló"ñ"ñ"ñ"ñ"ñ"ñ"ñ"ñ"ñ"ñ"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"Ló"@ñ"Äñ"Àò"Àò"Àò"4ó"Äñ"Ló"Ló"(ó"Ló"4ó"Ló"Ló"Ló"Ló"Xñ"Ló"4ò"Ló"Ló"Pò"$@$@¤##|#ì#<#Œ#Ü# #˜#$#°#<#È#T#¤#, #¸ #D
+#Ð
+#\ #Ð #ì # +#¨ +#,#¼#@#¸#$##ü#`#¬#ð##0#L#h#„##|##d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#d#¤##|#ì#<#Œ#Ü# #˜#$#°#<#È#T#¤#, #¸ #D
+#Ð
+#\ #Ð #ì # +#¨ +#,#¼#@#¸#$##ü#`#¬#ð##0#L#h#„##|##ONCE: (pid=%d)
+J (pid=%d) exits
+main: creating prova_key
+main: provakey =%d
+main: creating J1
+Error creating J1
+main: J1 has PID %d
+main: creating J2
+Error creating J2
+main: J2 has PID %d
+main: waiting 0.4 sec
+main: kill J1 and J2
+main: ending...
+J (pid=%d) destructor called with value %d
+J (pid=%d) printtest value=%d
+J (pid=%d) starts and call setspecific
+Error during Keyboard Initialization!!!Ctrl-C pressed!
+KeybPortKeyTasktask_create
+scheduletime %lus %luns * caplasttime %lus %luns * exec=%d TIME = %lu
+The system tick must be less than 55 mSec!Abort detected
+Code : %u
+Too many scheduling levels!!!
+Too many resource levels!!!
+debug info noticewarn err crit alert emerg <%i>[%s] %sPosix task
+Signal number %d...
+with value : %d
+POSIX_ReadyPOSIX_DelayPOSIX_UnknownSlice: %d
+MainPOSIX_register_level
+ alloco descrittore %d %d
+ lev=%d
+POSIX schedulerPid: %d Name: %20s Prio: %3ld Status: %s
+
+Panic!!! can't create main task...
+dummy PID: %d
+Dummy1Dummy2Dummy3Dummy4Dummy5Dummy6Dummy7Dummy8Dummy9Dummy0DummyaDummybDummycDummydDummyeDummyfDummygDummyhDummyDummy (RR) Posto dummy_create
+
+Panic!!! can't create dummy task...
+Entro in dummy_register_level
+Port des :
+Free port des : %d
+%d %s vt: %d pn: %d
+%d pd: %d vt: %d pn: %d Resources owned by the tasks:
+%-4dPI_register_module
+PI module
+PC priority of the tasks:
+%-4ldPC_register_module
+PC moduleTR %x
+SS:SP %x:%lx
+Stack0 : %x:%lx
+Stack1 : %x:%lx
+Stack2 : %x:%lx
+CS : %x DS : %x
+Descriptor [%x] InfoNo more Descriptors...
+%x (Hex)Base : %lx Lim : %lx Acc : %x Gran %x
+2Coprocessor error#Page fault*General protection fault*Stack exception*Segment not present*Unvalid TSS#INTEL reserved*Double defect1FPU context switch*Unvalid opcode#BOUND limit exceeded#Overflow detected on INTO#Breakpoint trap#NMI detected#Debug fault#Division by 0Exception %d occurred
+ABORT %d !!!LL Time Panic!!!
+time.cError! File:%s Line:%d %sOne-shot timer selected...
+Periodic timer selected...
+Unhandled Exc or Int occured!!!
+32/LINUX CrossCompiled/ELFHalt called1234567890-+12345678901234567890xabcdefABCDEF1234567890.e+-0123456789ABCDEF$@ +Æ@,ú1°<NaN+Inf-Infacosacosfacos: DOMAIN error
+asinasinfasin: DOMAIN error
+atan2atan2fatan2: DOMAIN error
+hypothypotfexpexpfy0fy0: DOMAIN error
+y1fy1: DOMAIN error
+ynynfyn: DOMAIN error
+lgammalgammaflgamma: SING error
+loglogflog: SING error
+log: DOMAIN error
+log10log10flog10: SING error
+log10: DOMAIN error
+powpowfpow(0,0): DOMAIN error
+pow(0,neg): DOMAIN error
+sinhsinhfsqrtsqrtfsqrt: DOMAIN error
+fmodfmodffmod: DOMAIN error
+remainderremainderfremainder: DOMAIN error
+acoshacoshfacosh: DOMAIN error
+atanhatanhfatanh: DOMAIN error
+atanh: SING error
+scalbscalbfj0j0f: TLOSS error
+j1j1fjnjnfneg**non-integral: DOMAIN error
+à?addfree.cmax >= minreg->min < reg->maxnew_max > new_min(reg->min & (sizeof(struct lmm_node) - 1)) == 0(reg->max & (sizeof(struct lmm_node) - 1)) == 0addregio.cr != reg(reg->max <= r->min) || (reg->min >= r->max)alloc.clmm != 0size > 0reg->free >= 0(DWORD)node < reg->maxreg->free >= size(reg->nodes == 0 && reg->free == 0) || (DWORD)reg->nodes >= reg->minreg->nodes == 0 || (DWORD)reg->nodes < reg->maxreg->free <= reg->max - reg->min((DWORD)node & (sizeof(struct lmm_node) - 1)) == 0((DWORD)node->size & (sizeof(struct lmm_node) - 1)) == 0(node->next == 0) || (node->next > node)alloc_ge.canode >= node(split_size & (sizeof(struct lmm_node) - 1)) == 0lmm_dump(lmm=%p)
+dump.cnode->size >= sizeof(*node) free_check=%08lx
+reg->free == free_checklmm_dump done
+ region %08lx-%08lx size=%08lx flags=%08lx pri=%d free=%08lx
+ node %p-%08lx size=%08lx next=%p
+(node->size & (sizeof(struct lmm_node) - 1)) == 0block != 0reg != 0(DWORD)prevnode + prevnode->size == (DWORD)node(DWORD)node + size == (DWORD)nextnodestats.cLMM=%p: %u bytes in %u regions, %d nodes
+assertion %s failed in %s at line %i (task:%i_%i)
+MAGIC assertion failed in %s at line %i (task:%i_%i): %s
+KERNEL PANIC (sys_panic_stub): %s
+KERNEL PANIC (sys_panic): %s
+FreeExeSleepWaiting on joinTime (EXACT) : %lus %luns
+< Memory Dump >
+< Level %d : %s Code: %d Version: %d >
+8Œÿÿ’ÏÿÿšÏÿÈP#ÿà[#ÿÿÿÿÿÿÿÿÿÿÿÿ1234567890!@#$%^&*()-_=+[{]};:'"`~/?,<.>\|   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ 1234567890!"œ$%&/()='?^Š‚+*•‡…ø\|<_,:.;—õ   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ[]@#ìX#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­0#¦0#Ÿ0#˜0#‘0#Š0#ƒ0#|0#èz"ðz"ðz"Ó5#Æ5#¸5#§5#Œ5#v5#f5#R5#C5#35#&5#5#5#æ4#Ú4#35#Ç4#þþAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAš7#ðÿÿÿÿGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.text.rodata.data.sbss.bss.comment.note"€'! '# '¨ )ÈP#HA /Ð[#`L5à[#`L8ã :`LLC¬]hdI
\ No newline at end of file
/pse51/ptest2
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: pse51/ptest3
===================================================================
--- pse51/ptest3 (.../tags/rel_0_3) (nonexistent)
+++ pse51/ptest3 (.../branches/pj) (revision 1085)
@@ -0,0 +1,423 @@
+ELF"4Àg4 ( €""(D(D ¨D(T#(T# Pî 덶°­üORäe‹Ká€uU¿€ Ç–eÆG1GeÆGGeÆG2GeÆG¸@é"fe£HT#Áèfe£NT#(\#¿€ Ç’eÆG0GeÆGf¸0ŽØŽÀŽÐŽàŽè¼@‡#ǽ%@g#ǽ%@‡#£4\#‰8\#(\#êµ"8.\#üèNÕê U‰å‹Eê ‰öU‰åSìüƅÿÿÿxƅÿÿÿ-ƅÿÿÿht"ƒì‹…ÿÿÿf‰$ÆD$-èÅÇE´"ÇE°]¨E¬‰$è9nƒÄ jSjè$YƒÄ jSjèYÇEˆÇEŒÇE+DžhÿÿÿDžlÿÿÿDžpÿÿÿšDžHÿÿÿDžPÿÿÿ DžTÿÿÿ„"…(ÿÿÿ‰…XÿÿÿƒÄ Dž(ÿÿÿDž,ÿÿÿDž8ÿÿÿDž<ÿÿÿDž@ÿÿÿDž0ÿÿÿDž4ÿÿÿ
+ÇEèÇEìeÍÇEðÇEôÇEØÇEÜÂë ÇEàÇEäÇEÈÇEÌ£áÇEÐÇEÔÇEÄÇEÀÇE¼ÇE¸…ÿÿÿPEˆPjèWqƒÄƒøÿuƒì h`1#èVçƒÄƒì…ÿÿÿP…hÿÿÿPjè'qƒÄƒøÿuƒì h€1#è&çƒÄƒì… ÿÿÿP…HÿÿÿPjè÷pƒÄƒøÿuƒì h 1#èöæƒÄjEèPjÿµÿÿÿè€uƒÄƒøÿuƒì hÜ/#èËæƒÄjEØPjÿµÿÿÿèUuƒÄƒøÿuƒì hù/#è æƒÄjEÈPjÿµ ÿÿÿè*uƒÄƒøÿuƒì h0#èuæƒÄƒì h30#èeæƒÄ‰öƒì jè2=ƒÄ=³vìƒì hM0#è?æEØPE¸PjÿµÿÿÿèÊtƒÄ ƒøÿuƒì hÀ1#èæƒÄƒì‹MäºÓMb‰È÷êÁú‰ÈÁø)ÂRÿuàhà1#èëåƒÄƒì jèº<ƒÄ=–˜vìƒì hf0#èÇåEèPE¸PjÿµÿÿÿèRtƒÄ ƒøÿuƒì h 2#èåƒÄƒì‹MôºÓMb‰È÷êÁú‰ÈÁø)ÂRÿuðh@2#èsåƒÄƒì jèB<ƒÄ=ÿ·vìƒì h0#èOåÇEèÇEìÇEð +ÇEôjEèPjÿµÿÿÿèÀsƒÄ ƒøÿuƒì h‘0#è åƒÄƒì jèÚ;ƒÄ=ŸÕvìƒì h®0#èç七Ä‹]üÉÉöU‰åSƒì‹E‹] ƒøt
+ƒøt +ëvÿ<\#ëÿ@\#ƒì jè€;ƒÄPÿ5@\#ÿ5<\#ÿs ÿs¸Ð/#ƒ{t¸Ö/#Pÿ3hÀ0#èqäƒÄ ‹]üÉÐU‰åƒìèé:ÉÍvU‰åSƒì‹]jè#;ƒÄ PSh 1#è8äƒÄ‹]üÉÃU‰åƒìj ÿujh'èMè‰è‡¬è¶²è1™ƒÄ jjjèÿLèîv¸èƒÄÉÃU‰åWVSƒìX‹]}¨¾D\#ü¹ó¥E¸‰E¨fÇE¸ÇE¼ÇEÀfÇEÄÇEÐÇEÔÇEÜÇEà‰]ÈÇEØÇEÌjè8L‰EÐÇEÜÇEàƒMÌ
+è֜E¨‰$ècƒÄ…Àyƒì h€2#è»ãƒÄƒì SèoE¸ƒÄeô[^_]ÍvU‰åƒìŠU€=T]#„¶€ú*t€úªt
+€ú6t€ú¶uÆT]#¸é›„Òy,ÆT]#€ú¸uÆ`]#ÆV]#ëՀúuÐÆ`]#ëljöÆT]#€ú8u€ +`]#ÆV]#멀úu € +`]#뛉ö€ú5uf¾õ‡#·Àé)v€ú…•f¾܇#·Àé +v€úàuÆT]#éTÿÿÿv€ú*t€ú6u2ÆU]#€ú*u€ +`]#é/ÿÿÿ‰ö€ú6…$ÿÿÿ€ +`]# éÿÿÿv€úªt€ú¶u"ÆU]#€úªt €ú¶…öþÿÿÆ`]#éêþÿÿ€úFu€=Y]#•Y]#ë.v€ú:u€=W]#•W]#ëv€úEu;€=X]#•X]#ƒì¶Y]#P¶W]#P¶X]#Pèõ¸ƒÄé€úu€ +`]#éhþÿÿv€ú8u€ +`]#éTþÿÿv€út€ú¸uÆ`]#é;þÿÿ‰ö¸„҈рúRt2€úOt-€úSt(€úPt#€úQt€úKt€úLt€úMt€úGt
+€úHt€úIu€=X]#uT€=U]#uK·Â +ÿë~€=W]#t/Bð< vBâ<vBÔ<w€=U]#t¶Âf¾€À‡#·ÀëG€=U]#t¶Âf¾€`ˆ#·Àë-v€=V]#t¶Âf¾€‰#·Àëv¶Âf¾€À‡#·ÀÉÃU‰åWVSƒì,}؃ìjE×PèòƒÄ…À„¡ƒì ¶E×Pèöüÿÿ‰ÂƒÄf…Ò„†÷Âÿt  `]#ƒÈ@ë‰ö `]#ˆE؈UيE׈EÚ±»;¸‡#}8¾@‡#v݊D2:EÚuŠ2:EØuƒì Wÿ’D‡#±ƒÄC;¸‡#|ЄÉuƒìjW¿‚‰#Pèý¡ƒÄè-é<ÿÿÿU‰å‹E£P]#Šˆ‡#ŠPˆÇ#ŠPˆć#ŠPˆŇ#ŠPˆƇ#ŠPˆLJ#ŠPˆȇ#ŠPˆɇ#ŠPˆʇ#ŠP ˆˇ#ŠP
+ˆbˆ#ŠP ˆcˆ#ŠP ˆdˆ#ŠP +ˆeˆ#ŠPˆfˆ#ŠPˆgˆ#ŠPˆhˆ#ŠPˆiˆ#ŠPˆjˆ#ŠPˆkˆ#ŠPˆ̇#ŠPˆlˆ#ŠPˆ͇#ŠPˆmˆ#ŠPˆڇ#ŠPˆzˆ#ŠPˆۇ#ŠPˆ{ˆ#ŠPˆç‡#ŠPˆ‡ˆ#ŠPˆè‡#ŠPˆˆˆ#ŠP ˆé‡#ŠP!ˆ‰ˆ#ŠP"ˆõ‡#ŠP#ˆ•ˆ#ŠP$ˆó‡#ŠP%ˆ“ˆ#ŠP&ˆô‡#ŠP'ˆ”ˆ#ŠP(ˆë‡#ŠP)ˆ‹ˆ#ŠP*ˆù‡#ŠP+ˆ™ˆ#ŠP,ˆ·#ŠP-ˆnˆ#ŠP.ˆχ#ŠÖˆoˆ#ŠP0ˆÁ‡#ŠP1ˆaˆ#ŠP2ˆ܇#ŠP3ˆ|ˆ#ŠP4ˆĈ#ŠP5ˆ¯ˆ#ŠP6ˆ°ˆ#ŠP7ˆ±ˆ#ŠP8ˆ«ˆ#ŠP9ˆ¬ˆ#ŠP:ˆ­ˆ#ŠP;ˆ§ˆ#ŠP<ˆ¨ˆ#ŠP=ˆ©ˆ#ŠP>ˆ²ˆ#ŠP?ˆ³ˆ#ŠP@ˆˆ#ŠPAˆ÷‡#ŠPBˆõ‡#ŠPCˆ
+ˆ#ŠPDˆ®ˆ#ŠPEˆ—ˆ#ŠPFˆªˆ#ŠPGˆއ#ŠPHˆ~ˆ#ŠPIˆð‡#ŠPJˆˆ#ŠPKˆî‡#ŠPLˆŽˆ#ŠPMˆà‡#ŠPNˆ€ˆ#ŠPOˆ҇#ŠPPˆrˆ#ŠPQˆá‡#ŠPRˆˆ#ŠPSˆâ‡#ŠPTˆ‚ˆ#ŠPUˆã‡#ŠPVˆƒˆ#ŠPWˆׇ#ŠPXˆwˆ#ŠPYˆä‡#ŠPZˆ„ˆ#ŠP[ˆå‡#ŠPRˆ…ˆ#ŠP]ˆæ‡#ŠP^ˆ†ˆ#ŠP_ˆò‡#ŠP`ˆ’ˆ#ŠPaˆñ‡#ŠPbˆ‘ˆ#ŠPcˆ؇#ŠPdˆxˆ#ŠPeˆه#ŠPfˆyˆ#ŠPgˆЇ#ŠPhˆpˆ#ŠPiˆӇ#ŠPjˆsˆ#ŠPkˆ߇#ŠPlˆˆ#ŠPmˆԇ#ŠPnˆtˆ#ŠPoˆև#ŠPpˆvˆ#ŠPqˆï‡#ŠPrˆˆ#ŠPsˆч#ŠPtˆqˆ#ŠPuˆí‡#ŠPvˆˆ#ŠPwˆՇ#ŠPxˆuˆ#ŠPyˆì‡#ŠPzˆŒˆ#ŠP{ˆ‰#ŠP|ˆ‰#ŠP}ˆ'‰#Š@~¢(‰#]ÍvU‰åWVSƒì\‹]}ؾh]#ü¹󥿸ƒ=\]#…Qº¾À‡#¹`ˆ#‰ö·ÂÆ0ÆBfúví…Ûu]؃{ÿuÇCP\#ƒì ÿsèûÿÿÇ$jjjh¹2#èϔf£‚‰#ƒÄ fƒøÿu ¸þÿÿÿéÞ‰öjjjh¹2#è0˜f£„‰#ƒÄfƒøÿuƒì ¿‚‰#P蕛¸ýÿÿÿ頍vǸ‡#ƒ{ÿuÇCŒ"ƒ{tIÆE™cÆEš.ÆE˜ƒìÿsƒì‹E˜f‰$ÆD$.èÅÆE˜ƒÄÿsƒì‹E˜f‰$ŠEšˆD$襃ă;ÿuQfÇE¨ÇE¬ÇE°fÇE´ÇE¸ÇEÐÇEÈÐÇEÄ ÇEÀ¨aÇE¼
+ÇE̍E¨ë‹ƒì jjPh” "hÂ2#èÿ‰ÃƒÄ ‰ˆ‰#ƒøÿu'ƒì ¿‚‰#P蓚¿„‰#‰$脚‰Ø钐ƒ=d]#uWƒì ÿ5ˆ‰#艉ǃąÿt4ƒì ¿‚‰#PèLš¿„‰#‰$è=šƒÄÿ5ˆ‰#èg5¸üÿÿÿë=Çd]#ëèƒì¶Y]#P¶W]#P¶X]#PèûÇ\]#‰øƒÄeô[^_]ÃU‰åƒì¶EPEèP¿„‰#Pè0œƒÄ„Àt÷Eè@u¶Eéë‰ö¸ÉÐU‰åƒì ¶E Pÿu¿„‰#Pèõ›·ÀƒÄÉÐU‰åSƒ=¸‡#0‹ +¸‡#Í»@‡#‹Ef‰ŠE
+ˆD‹E ‰‚D‡#A‰ +¸‡#‹$ÉÉöU‰åƒìèÉÍvU‰åƒìè±ÉÍvU‰åƒì¸ÿÿÿÿƒ=\]#t9蓃ì ÿ5ˆ‰#è-4¿‚‰#‰$è昿„‰#‰$èט¸ƒÄÉÐU‰åƒìjèoÔÇ$è+ÔÇ$¨2#èóÓè²-ƒÄÉÐU‰åWVSƒìŠEˆEó¿1¾d»`‰ö¹v‰òì©t"‰ÈA=þÿÿvì¸ÿÿÿÿ…Àu‰ÚŠEóî¸ë‰ö¸ë搸ÿÿÿÿÇEì¹d…Àt¸ÿÿÿÿët¸ë‰Êì©uî‹EìÿEì=þÿÿvé¸ÿÿÿÿ…Àu‰Úì¶Àë¸ÿÿÿÿƒøÿu
+¸þÿÿÿë3v=úu ¸ë"‰ö=þt ¸ýÿÿÿë‰ö‰øO…À9ÿÿÿ¸üÿÿÿƒÄ[^_]ÃU‰åVSƒìŠEˆE÷³Ô¾¹d‰ö‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë搸ÿÿÿÿ…Àt¸ÿÿÿÿëL¸ë&»¹d‰ö‰Êì©tâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuº`ŠE÷î¸ëv¸ÿÿÿÿ…Àt¸ÿÿÿÿëj¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuºdì© tº`ì¶Ðëvºÿÿÿÿ‰Ð…Òx¸úú”ÀDþƒÄ[^]ÃU‰åWVSƒì »¾`‰ØK…À~^ƒì hÿè¼ýÿÿ‰ÂƒÄ…Òu{¿¹d‰Êì©u‰øG=þÿÿvì¸ÿÿÿÿ…Àu‰òì¶Ðëv¸ëꐺÿÿÿÿúªu›¸üÿÿÿúª…ƃì hõèMýÿÿ‰ÂƒÄ…Òt(¸ûÿÿÿ馉ö¸ýÿÿÿ隉ö¸ë.¸ëZ³`¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³e¾¹dv‰Êì©t®‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîƒì hôèªüÿÿ‰ÂƒÄ¸…Ò•ÀHƒàƒèeô[^_]ÃU‰åWVSƒì ¾»d¹`‰Úì©t +‰Êì‰ðF=þÿvé³­¾¹d‰Êì©„‚‰ðF=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¾»d¹`‰Úì©t +‰Êì‰ðF=þÿv鳪¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸놐¸ÿÿÿÿ…Àt¸÷ÿÿÿéݐ¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿƒøUt¸ÿÿÿÿ錸ë&³«¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸öÿÿÿé9¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸þÿÿÿé鐸ë&³®¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…À…<èzüÿÿ…À…Žƒì hóèIúÿÿƒÄ…Àt
+¸ùÿÿÿépƒì jè.úÿÿƒÄ…Àt¸øÿÿÿéU¸ë.Æt]#³©¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ôÿÿÿéù¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸óÿÿÿ驐¸ë&³¨¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸õÿÿÿéU¸ë&³Ó¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ðÿÿÿ鐸ë&³Z¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë¸ÿÿÿÿ…Àt¸ïÿÿÿ魐Æt]#ëBv¸ë^¹þÿ¾d»`‰òì¶ø÷Çt‰Úì¶À÷Ç tƒøZt»IƒùÿuÙ³§¾¹d‰Êì©tª‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àté»þÿÿ‰ö¸ë:€=t]#„þÆt]#³¨¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸îÿÿÿ鱐¸ëvƒì hóèWøÿÿ‰ÃÇ$dèIøÿÿÃÇ$èè;øÿÿÃÇ$è-øÿÿÃÇ$çèøÿÿþ§ƒÄ¿¹dv‰Êì©t’‰øG=þÿÿvì¸ÿÿÿÿ…Àuºd‰ðî¸ë¸ÿÿÿÿ…Àt¸íÿÿÿë…ÛuÆt]#¸eô[^_]ÃU‰åVS¡ˆ]#…Àt¡ˆ]#H£ˆ]#¸é²¸ë6ƒ=€]#uKŠ„]#¾¹dv‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿ€]#뤍v¸ë:ƒ=€]#uGÇ€]#³ô¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…À…Xÿÿÿº`ˆØîéKÿÿÿ‰ö¸[^]ÍvU‰åWVSƒì ¡Œ]#@£Œ]#¾õ³Ô¿¹dv‰Êì©t"‰øG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîœúX‰Çƒì hõè5õÿÿ‰ÃƒÄ…Ût¸ûÿÿÿéù‰ö¸ë1¾§ÇEð¹dv‰Êì©tڋEðÿEð=þÿÿvé¸ÿÿÿÿ…Àu ºd‰ðî¸ë¸ë=¸ëq¸ÿÿÿÿþ`ÇEð¹d‰Êì©t΋EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuºd‰ðî¾eÇEð¹dv‰Êì©tš‹EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuº`‰ðîƒì hôè;ôÿÿÃĉøPÆu]#‰Øeô[^_]ÐU‰åWVSƒì ¸ÿÿÿÿ€=t]#„ºœúX‰Æƒì hõèóóÿÿƒÄ…Àt(¸ûÿÿÿé—‰ö¸ë:¸ëf¸é“‰ö³`¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³G¿¹dv‰Êì©t¢‰øG=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØ¿¹dv‰Êì©„rÿÿÿ‰øG=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt ¸îÿÿÿ鐃ì hôèÿòÿÿƒÄ…Àt¸Ûÿÿÿ飉ö¸ë:‰ðP¡Œ]#@£Œ]#¾ô³Ô¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîÆu]#¸eô[^_]ÍvU‰åƒìǤŠ#Ç Š#ƒ=|]#t!úè‹õÿÿ£x]#Ç|]#û…Àtúèôÿÿû¡x]#…Àuƒìÿuhx$"jèQ¸ƒÄÉÍvU‰åVS¡ˆ]#@£ˆ]#³õ¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åVS¡ˆ]#@£ˆ]#³ô¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åƒì‹MœúX‰Â¡ Š#@%ÿ£ Š#Š€ ‰#ˆ‰ÐP€9úu è(úÿÿë‰ö¸ÉÐU‰åƒìƒ=”]#t(Ç‹#Ç‹#Ç‹#Ç”]#‹E£]#ƒ=|]#t!úèôÿÿ£x]#Ç|]#û…Àtúèòÿÿû¡x]#…Àu.¸ìÿÿÿ€=t]#t ƒìjÿh´$"j èOÆu]#¸ƒÄÉÉöU‰åS‹MœúX‰Ã¡‹#@ƒà?£‹#ºÀŠ#ŠˆA¡‹#@ƒà?£‹#Šˆ¡‹#@ƒà?£‹#ŠˆA‰ØP¸‹$ÉÉöU‰åƒì€=u]#tèäùÿÿƒì j èŽOÆu]#¸ƒÄÉÐU‰åƒìƒ=|]#t!úè óÿÿ£x]#Ç|]#û…Àtúè™ñÿÿû¡x]#…Àt¸ë¶t]#ÉÍvU‰åVSŠEŠU€} t ƒ +„]#ë ‰öƒ%„]#„Àt ƒ +„]#ëƒ%„]#„Òtƒ +„]#ë¸ë6¸ëbƒ%„]#³õ¾¹d‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî³í¾¹dv‰Êì©t¦‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿ€]#[^]ÐU‰åSƒìœúX‰Ã€=u]#tè–øÿÿè‘ðÿÿƒì hóèhîÿÿƒÄ…Àuƒì jèWîÿÿƒÄ…Àu‰ØP‹]üÉÍvU‰åº`ì¶ÈœúX‰Â¡ Š#;¤Š#t¡¤Š#ˆˆ ‰#@%ÿ£¤Š#‰ÐP]ÉöU‰åƒìº`ì¶Ðƒ=‹#u €úúu¡Œ]#H£Œ]#郍v÷ÂÀuxÿ‹#œúX‰Á¡‹#;‹#t¡‹#ˆÀŠ#@ƒà?£‹#ë"‰ö¡‹#+‹#ƒÀAƒà?£‹#Ç‹#‰ÈPƒ=‹#uÇ‹#ƒì ÿ5]#èƒÄÉÉöU‰åSƒì}™w‹UÑâU‰ÐÁà)Ðfƒ<ÅÈâ#uèùÝNj¸ÿÿÿÿ鏐ƒ= á#tcœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€¡â# t ÿ€¤â#ë-v‹EÑàE‰ÂÁâ)‹Õ¤â#ƒì‹•â#ÿuRÿP@ƒÄ‰ØPéèƒ¡…ÀtgœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€¡â# t ÿ€¤â#ë2v‹EÑàE‰ÂÁâ)‹Õ¤â#ƒì‹•â#ÿuRÿP@蔃ĉØPé­úèJ²‹Ìá#R‰ÑÁá)Ñ» â#f‰DË‹UÑâU‰ÐÁà)ЍÅ0öD t ÿ€¤â#ë?vƒìU‰ÐPjÿÐ]#‹MI‰ÐÁà)ЋŤâ#ƒÄ‹•â#QRÿP@è/ƒÄ¡Ìá#@‰ÂÁâ)ƒì ¿Õ¨â#P踱èƒÄû¸‹]üÉÐU‰åWVSƒì ‹]f…Ûuè>Ünj¸ÿÿÿÿé"‰öƒ= á#„“œúX‰ÇÇEð}ð™s¾ â#‹UðÑâUð‰ÐÁà)ÐÁàf9\,uHƒÀ0öD0 t ÿ€¤â#ë6ƒìEðPjÿÐ]#‹MðI‰ÐÁà)ЋŤâ#ƒÄ‹•â#QRÿP@ƒÄÿEð}ð™~“‰øPé}‰ö蓟…À„›œúX‰ÇÇEð}ð™w¾ â#‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€¤â#ë8vƒìEðPjÿÐ]#‹MðI‰ÐÁà)ЋŤâ#ƒÄ‹•â#QRÿP@ƒÄÿEð}ð™~èj‰øPéԐúè"°‹Ìá#R‰ÑÁá)Ñf‰ͨâ#ÇEð}ð™w¾ â#‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€¤â#ë8v‹MðI‰ÐÁà)ЋŤâ#ƒì‹•â#QRÿP@ƒÄEðPjÿÐ]#ƒÄÿEð}ð™~èÞ ¡Ìá#@‰ÂÁâ)ƒì ¿Õ¨â#Pèj¯èÁƒÄû¸eô[^_]ÃU‰åSƒìúè;¯‹Ìá#R‰ÑÁá)Ñf‰ͨâ#ƒìh„â#jèl–ƒÄUð¡ˆâ#;Øá#|¡„â#+Ôá#‰Eð¡ˆâ#+Øá#ë!‰ö¡„â#+Ôá#H‰Eð¡ˆâ#+Øá#ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыÌá#R‰ÐÁà)Ð) Åìâ#ƒì Qè. ƒÄƒ=Üá#ÿtƒì ÿ5Üá#ÿ¨á#ÇÜá#ÿÿÿÿƒÄ‹ +Ìá#I‰ÐÁà)ЋŤâ#ƒì‹…â#QPÿRLè{ ƒÄhÌá#jÿÐ]#ÇÌá#ÿÿÿÿÇàá#ÿÿÿÿèV ¡Ìá#@‰ÂÁâ)¿ըâ#‰$èã­è:ƒÄû‹]üÉÐU‰åƒìh8+"è( ƒÄÉÍvU‰åƒìjè ƒÄÉÉöU‰åƒìƒ=œ]#u(èè
+ƒì ¡Ìá#@‰ÂÁâ)¿ըâ#Pèt­ƒÄÉÍvU‰åWVSƒìhÊ2#è]$ƒÄ» â#ëv‹Eð@‰ÐÁà)ЁLÃ0€ƒì hDâ#èÊ+‰EðƒÄƒøÿ„“@‰ÐÁà)ÐöDÃ1@u¾‹UðR‰ÃÁã)ÃÁã¾ â#¡˜]#‰3@£˜]#‹E ‰Dƒìjÿuƒ´â#Pè ¾ÆD'ƒÃ fÇD3‹Mf‹%ÿf‰D3
+f‹A f‰D3 ƒÄ‰Ø‰ñº‹]ƒ{tf‹Sf‰T‹UðR‰ÁÁá)ÁÁáY0‹U‹B +‰ƒ â#¿¤â#Ç;¾¨â#¡Ìá#@‰ÂÁâ)‹DÖ0‰3º¬â#ǍAP‹]ð‰˜ â#Ç8ÇÿÿÿÿÇ0ÿÿÿÿǁã#°Ç8Ç0ǁÁÀǁ â#Ç9ºۍƒ€ 
+Ç…ã#Bƒúvì‹Eð@‰ÐÁà)ÐÁàÀǂ¨â#ÿÿÿÿǂ¬â#ôâ#‰pã#º‹Mðɍ€ ‰ö
+Ç…pã#Bƒú~ì»ëC;Ðá#sƒì‹â#ÿuSÿPƒÄ…Àxß;Ðá#u7‹]ð[‰ÂÁâ)ÂfÇÕÈâ#ƒìhDâ#SèÚ)è¡ÕDŽ鄉ö‹Eð@‰ÐÁà)Ѝ4ʼnž¤â#ƒì‹â#ÿuÿuðSÿP,ƒÄ…ÀyWfdžÈâ#ƒìhDâ#ÿuðèz)èAÕDžë'è3Õǃ釃ì ÿuðè9èÕdž¸ÿÿÿÿƒÄëjƒE‹U‹zü…ÿtY‰ö¾ëF;5Äá#s0ƒìµ‹ƒ`â#WVÿP ƒÄ…Àxۃ싃`â#WÿuðVÿP$ƒÄ;5Äá#t‡ƒE‹M‹yü…ÿu©‹Eðeô[^_]ÉöU‰åƒìEPÿuÿu ÿuè`üÿÿƒÄÉÍvU‰åWVSƒì ‹} ƒt6‹EÑàE‰ÂÁâ)‹G‰Õ¬â#‰Æ‹UÑâU‰ÐÁà)Ѓ ÅÐâ#@ën‰öƒì ‹UÑâU‰ÐÁà)зÅÎâ#Pè@‹UÑâU‰ÑÁá)Ñ»¬â#‰ˉƋEÑàE‰ÂÁâ)ƒÄƒ<Óuƒì ÿuèìèËÓLjëtv‹EÑàE‰ÂÁâ)» â#·DÓ.ƃì ·GPjÿwVh$2"è-‰ÁƒÄ f…Éu?ƒì‹UÑâU‰ÐÁà)зDÃ.PVèƒÄÿuèvèUÓlj¸ÿÿÿÿƒÄëN‹EÑàE‰ÂÁâ)Âf‰ Õ¨â#ƒìU‰ÐPjÿÐ]#ƒÄöGu ÿÀá#ëvöGuÿ€â#¸eô[^_]ÍvU‰åWVSƒì ‹M‹U ‹]œúX‰ÇEPSRQè­úÿÿ‰ÆƒÄƒþÿ„ɍv‰ÐÁà)ЋŤâ#‹…â#ƒx(„èà…À‰€»;Äá#svƒì‹`â#VSÿP(ƒÄC;Äá#råv‰ÃÁã)ÃÁ㋃¤â#ƒì‹…â#VPÿR0fǃÈâ#ƒÄhDâ#Vè\&ƒÄè ÒLJ‰øP¸ÿÿÿÿë#vƒìSVèŽýÿÿƒÄº…À”ÂJ ։øP‰ðeô[^_]ÃU‰åVS‹u»;Äá#svƒì‹`â#VSÿP(ƒÄC;Äá#råv‰ÃÁã)ÃÁ㋃¤â#ƒì‹…â#VPÿR0fǃÈâ#ƒÄhDâ#Vè¬%ƒÄeø[^]ÉöU‰åVS‹]è ƒì ¡Ìá#@‰ÂÁâ)¾ â#SÿTÖú‰$èn¡Ìá#@‰ÂÁâ)¿DÖ‰$èn¦ƒÄeø[^]ÃU‰åWVSƒì‹]‹}úû™w! [‰ÈÁà)ÈÁຠâ#öD0tfƒ|(u û¸ÿÿÿÿéDžÿy$[‰ÁÁá)Á Í°¸¤â#‹<Çë ‰öƒÿv¿[‰ÁÁá)Á Í°‰M乨â#‰Mì‹Uä‹
+‰Â)úƒÂ‰Ð¾º÷ö‰Eð‹uä;tMۍƒ€4‹MðىÈÁà)ȍ Å°‰ö2‹…ã#‹] ‰ƒÃ‰] B»‰Ðº÷ó‹]ì;uÔû‰øƒÄ[^_]ÐU‰åSƒì‹]‹ +Ìá#I‰ÐÁà)ЍÅö‚Ðâ#tɍ€È‚Xã#…ã#¡„â#;Ôá#|;Ôá#uA¡ˆâ#;Øá#}4ƒìSÿ5Ìá#ÿ5Øá#ÿ5Ôá#ÿ5ˆâ#ÿ5„â#hà2#è8¶ƒÄ è@ ‹]üÉÍvU‰åWVS‹ +Ìá#I‰ÐÁà)ЍÅöƒÐâ#„›ɍ€ȍ‹°¨â#º¤â#‹t‚`‹”À¸¬â#94s‰4‹Ìá#[‰ÁÁá)ÁÁፁÀ° â#¿¤â#B‰8±°‹†¨â#@º‰Ñº÷ñ‰–¨â#ۍƒ€ØÐÇD‡`ƒ<>wÿ>[^_]ÉöU‰åWVS‹M‹] ‹u‹}úù™w!I‰ÐÁà)ÐÁຠâ#öD0tfƒ|(uû¸ÿÿÿÿëy…ÛtI‰ÂÁâ)‹Õ`ã#‰…ötI‰ÂÁâ)‹Õ\ã#‰…ÿtI‰ÂÁâ)‹Õdã#‰ƒ}t(ɍ€ȍ I‰ÊÁâ)ÊÕXã#‹…ã#‹U‰û¸[^_]ÉöU‰å‹Múù™w!I‰ÐÁà)ÐÁຠâ#öD0tfƒ|(uû¸ÿÿÿÿë7I‰ÂÁâ)ÂÁ⍂Àǀ â#ǀ¤â#ǂ\ã#û¸]ÍvU‰åWVSƒì ƒ=Ìá#ÿt¡Ìá#@‰ÂÁâ)ÂöÕÐâ#…3ƒ=Ìá#ÿ„ƒìh„â#j證ƒÄU衈â#;Øá#|¡„â#+Ôá#‰E衈â#+Øá#ë"v¡„â#+Ôá#H‰E衈â#+Øá#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыÌá#R‰ÐÁà)Ð) Åìâ#ƒì QènüÿÿƒÄƒ=Üá#ÿtƒì ÿ5Üá#ÿ¨á#ÇÜá#ÿÿÿÿƒÄ‹ +Ìá#I‰ÐÁà)Ћ<Ťâ#ƒì‹½â#QWÿP<ƒÄ¿4½ƒì ‹†â#WÿP$‰ÃƒÄƒûÿt%ƒì[‰ÐÁà)ЋŤâ#‹…â#SPÿR4ƒÄ븅Àx»ƒûÿuG뫍v‹5Ìá#‰àá#‰Ìá#[‰ÐÁà)Ð;Åðâ#t0» â#‰ö¡Ìá#@‰ÂÁâ)‹TÓP‰Ìá# R‰ÈÁà)È;TÃPu×;5Ìá#tƒìhÌá#jÿÐ]#ƒÄ‹ +Ìá#I‰ÐÁà)ÐÁྠâ#fÇD(‹¸¤â#ƒì‹½â#‹àá#¸;Ìá#•ÀPQWÿS8¡Ìá#@‰ÂÁâ)ƒÄöDÖ1„Ü¡àá#;Ìá#…Ë¡„â#‰EèMè¡Ìá#@‰ÂÁâ)»¬â#‹DÓ@º@B‰Ö™÷þ’’’Áâ‰Ö5ˆâ#‰q¿¡/¸D‰ø÷î‰×Áÿ‰ð™‰þ)Ö¡Ìá#@‰ÂÁâ)‹\Ó@ºƒÞC‰Ø÷êÁú‰ØÁø)2Eè‹AºÊš;‰Ó™÷û‰QjhP@"ÿuìÿuèÿ¤á#‰ÃƒÄƒûÿuƒìÿ5Ìá#jèû7ƒÄ‰Üá#¡„â#£Ôá#¡ˆâ#£Øá#eô[^_]ÉöU‰åWVSƒìÇ0¢%úÿuèD»ƒÄ¿¤â#¾ â#‰ö[‰ÂÁâ)ÂÁâÇ:ÿÿÿÿǂ¬â#ÆDB fÇD0fÇD0
+fÇD0 fÇD0B0Ç0Ç8ǀ¨â#ǀ¬â#‚äâ#Ç@Çǂìâ#BP‰0Ç8ÇD`DŽÐ‚xå#Ç@Ǎ‚àÇ0ÿÿÿÿÇ8ÿÿÿÿ‚°Ç8ǀ¨â#ǀ¬â#ÂÀÇ2Ç:ºۍƒ€ v
+ÇD‡`Bƒúvï[‰ÐÁà)ЍÅÀǀ¨â#ÿÿÿÿǀ¬â#ºۍƒ€ 
+DŽ†ÐBƒú~ìCû™Žƒþÿÿ»¹¨â#[‰ÂÁâ)C‰DÑP‰Ãû˜~åÇ Ÿ%ÿÿÿÿ»™¹¬â#[‰ÂÁâ)Cÿ‰DÑP‰Ã…ÛéÇüâ#ÿÿÿÿÇDâ#ÇÈá#ÇÀá#Ç€â#Çàá#ÿÿÿÿÇÌá#ÿÿÿÿÇÜá#ÿÿÿÿÇØá#ÇÔá#ÇÐá#ÇÄá#Ç á#èÚè}è42ƒì ÿuèqÉÿÿ£Hâ#ƒÄ=×Övƒì h@3#èÇ$è »ƒÄ¸ƒ=Hâ#”À‰Eè]è¡Hâ#‰CÇ0¢%躂ƒì S豌Ç$ä@"èÇÇ$$+"聎Ç$<@"蕎ƒÄjjèEÿØ]#ƒÄh„â#jèLƒèOùÿÿèê›f£@â#¡Ìá#@‰ÂÁâ)¾ â#¿DÖ‰$èϛÇ$è7ŽÿÔ]#Ç0¢%ƒÄ»ƒ=Èá#ŸÃSjèɃă=€â#teè„ Çœ]#ƒìh„â#j軂è^›f£@â#è³øÿÿÇ$<@"èǍ¡Ìá#@‰ÂÁâ)¿DÖ‰$è7›Ç$蟍ƒÄÇ0¢%ƒìSjèCèÇ0¢%ƒÄjjè(ƒÄúƒ=Èá#t"ƒìÿ5Èá#hk3#èP¬Ç$ÿÿÿÿèX¹ƒÄƒì jèK¹ƒÄeô[^_]ÃU‰åSƒìƒ=œ]#…•èW‰…Àuú腚‹Ìá#R‰ÑÁá)Ñf‰ͨâ#‹E£Èá#Çœ]#ƒ=Ìá#ÿ„ƒìh„â#j藁ƒÄUð¡ˆâ#;Øá#|¡„â#+Ôá#‰Eð¡ˆâ#+Øá#ë ¡„â#+Ôá#H‰Eð¡ˆâ#+Øá#ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыÌá#R‰ÐÁà)Ð) Åìâ#ƒì QèZôÿÿƒÄƒ=Üá#ÿtƒì ÿ5Üá#ÿ¨á#ÇÜá#ÿÿÿÿƒÄ‹ +Ìá#I‰ÐÁà)ЋŤâ#ƒì‹…â#QPÿR<Çàá#ÿÿÿÿÇÌá#ÿÿÿÿƒÄèü‡…Àtƒì ¿@â#Pè,™ƒÄëvƒì ¿@â#Pè™èkƒÄû‹]üÉÉöU‰åSƒìÇEøÿÿÿÿ»ºâ#¡â#ƒx(t1ƒì‹šUøRSÿP(ƒÄ…Àu¸ÿÿÿÿëCƒûwºâ#‹šƒx(uи‹]üÉÉöU‰åƒìè è+ÉÉöU‰åƒìÇÜá#ÿÿÿÿè§êÿÿÉÐU‰åSƒìœúX‰Ãƒ=0¢%tƒ=€â#t‰ØPëƒì jè–ýÿÿƒÄ‰ØP‹]üÉÉöU‰åƒìÿuèzýÿÿƒÄÉÐU‰åSƒì‹UœúX‰ÃƒìRjèZ‰ÂƒÄ‰ØP‰Ð‹]üÉÉöU‰å¸Èá#ƒ=Ìá#ÿt‹Ìá#R‰ÐÁà)ЍÅã#]ÉöU‰åSƒìœúX‰Ãƒ=0¢%tƒ=€â#t‰ØPëƒì ÿuèíüÿÿƒÄ‰ØP‹]üÉÐU‰å]ÍvU‰åWVSƒì ÇEðÇE컍[ …ƒ¹(‹#t[¿ ‹#ƒ<9tP‹Ìá#ҍ‚€Ð؍…о â#ƒ<0t+ûƒì ÿ40ÿ9ƒÄú‹Ìá#ҍ‚€Ð؋´†Ð uìCƒû~Œƒ}ìt +ÿEðƒ}ðŽmÿÿÿeô[^_]ÐU‰åVSº¾ ‹#»$‹#¹(‹#vRÁàÇ0B‰Çƒú~ãÇ‘#ÿÿÿÿÇ ‘#Ç(‹#Ç ‹#Ç$‹#ÿÿÿÿ[^]ÐU‰åS‹Múƒ= ‘#ÿu û¸ ënv¡ ‘#@Ç•(‹#‰¡ ‘#@‹…$‹#£ ‘#‹@‹U ‰… ‹#º» â#‰öҍ‚€ÐDŽƒÐBú™~ßû¸‹$ÉÃU‰åú¡Ìá#À’ÂU‹•pã#û]ÍvU‰å‹Múƒùw +Iƒ<…(‹#u û¸ë%v¡Ìá#À’ÂʋE ‰•pã#û¸]ÃU‰åS‹]œúX‰Áƒûw +[ƒ<…(‹#u‰ÈP¸ë.v[Áà‹ ‘#‰$‹#ǀ(‹#‰ ‘#‰ÈP¸‹$ÉÃU‰åWVSƒì ¡Ìá#‰Eð‰ÂÑâ‰ÐÁà)ЍÅ¿ â#öD0 tm‹E‰‚lã#‹UðÑâUð‰ÐÁà)ЁLÇ0@‹UðÑâUð‰ÐÁà)ЍÅÀº¨â#ƒ<ÿt,‹4v‰ÃÁã)ÃÁ㋃¤â#ƒì‹…â#VPÿRD‰tPƒÄ¹» â#;MðtI‰ÐÁà)ЋUð9TÃP„ˆAù™~ۋUðÑâUð‰ÐÁà)Ѓ<Åôâ#t[»¤â#ûƒì ‹UðÑâUð‰ÐÁà)ЋDÃPÿpÿƒÄú‹EðÑàEð‰ÂÁâ)ÕP‹‹@‰‹UðÑâUð‰ÐÁà)Ѓ|ÃPu«èJüÿÿƒì ‹EðÑàEð‰ÂÁâ)» â#¿DÓPèÔyƒÄEðPjÿÐ]#‹Eð@‰ÂÁâ)ՃÄöD0@u%ƒì·D.P‹Eð@‰ÂÁâ)Âÿ4Õ¬â#èÁ ƒÄ»;Äá#sƒì‹`â#ÿuðSÿP(ƒÄC;Äá#rã‹MðI‰ÐÁà)ЋŤâ#ƒì‹…â#QPÿRPÇÌá#ÿÿÿÿÇàá#ÿÿÿÿ‹Eð@‰ÂÁâ)ƒÄöÕÐâ#u&ÿ +Àá#ƒ=Àá#uBèZúÿÿë;ƒìRjèY+ƒÄëg‹Eð@‰ÂÁâ)ÂöÕÐâ#uÿ +€â#ƒ=€â#uèúÿÿƒìh„â#jèÒyƒÄƒ=Üá#ÿtƒì ÿ5Üá#ÿ¨á#ÇÜá#ÿÿÿÿƒÄè­ïÿÿeô[^_]ÐU‰åVS‹uúv‰ÐÁà)ÐÁຠâ#öD0ufƒ|(uèѼNJû¸ÿÿÿÿ麍v‰ÐÁà)ÐöÅÑâ#tû雉ö;5Ìá#uJv‰ÐÁà)л â#‹DÃ0©t0©u)ƒì jè¥üÿÿ¡Ìá#@‰ÂÁâ)¿DÓ‰$襑ƒÄ»ëvC; ]#}ƒìÝÿ°D‘#Vÿ@‘#ƒÄ…Àtٍv‰ÐÁà)Ё ÅÐâ#û¸eø[^]ÍvU‰åWVSƒì ‹Ef‰Eòf…Àuèâ»ÇŒ¸ÿÿÿÿé‰öú¡àá#@‰ÂÁâ)Âf‹Mòf; ÕÌâ#”Eñ¾¿ â#‰öv‰ÐÁà)ÐÁà‹T0÷Â…ˆƒÀ fƒ|8t}÷Âuuf‹Mòf9L8 uj;5Ìá#u!÷Ât÷Âuƒì jè{ûÿÿƒÄëC‰ö»ëC; ]#}ƒìÝÿ°D‘#Vÿ@‘#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™ŽNÿÿÿ€}ñt(ƒì ¡àá#@‰ÂÁâ)¿ըâ#P萃Äëvû¸eô[^_]ÉöU‰åWVSƒì ¾¿ â#v‰ÐÁà)ÐÁàfƒ|(tL÷D0
+uB»ë‰öC; ]#}ƒìÝÿ°D‘#Vÿ@‘#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™~–eô[^_]ÉöU‰åSƒì¡Ìá#@‰ÂÁâ)» â#‹DÓ0©t7©u0©t)ƒì jè"úÿÿ¡Ìá#@‰ÂÁâ)¿DÓ‰$è"ƒÄ‹]üÉÉöU‰åS‹M‹] ¡ ]#ʼnŠ@‘#‰šD‘#@£ ]#‹$ÉÍvU‰åƒìúÿuè½ùÿÿ¡Ìá#@‰ÂÁâ)¿ըâ#‰$躎ƒÄÉÐU‰åVS¶uœúX‰Ãƒ=t”#ÿuèH¹Ç‚‰ØP¸ÿÿÿÿéۋ +t”#‰ÊÁâ‹‚ì‘#£t”#‹E‰‚à‘#‹E ‰‚ä‘#‰ðƒà‰‚è‘#‰ðƒàƒøtOƒø
+ƒøt +ësvƒøtSëi‰ÈÁàǀì‘#ÿÿÿÿƒ=`”#ÿu‰ +`”#ë¡d”#Áà‰ˆì‘#‰ +d”#ëH‰ö‰ÊÁâ¡h”#‰‚ì‘#‰ +h”#ë.‰ÊÁâ¡l”#‰‚ì‘#‰ +l”#ë‰ÊÁâ¡p”#‰‚ì‘#‰ +p”#‰ØP¸[^]ÐU‰åƒìƒ=Ðá#uƒì h 3#èŒÇ$謃ġÐá#P‰Ðá#ÉÐU‰åƒìƒ=Äá#uƒì h¿3#èPÇ$èÌ«ƒÄ¡Äá#P‰Äá#ÉÐU‰åWVS‹E‹u ‹}»‹HÇöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿ[^_]ÐU‰åWVSì¬‹EµTþÿÿ½Xþÿÿ»‹HDžTþÿÿöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿƒì…XþÿÿPÿµTþÿÿè=´ÿÿƒÄeô[^_]ÉöU‰å¸¹ì‘#v‰ÂÁâ@‰
+ƒø&~òÇ\”#ÿÿÿÿÇ`”#ÿÿÿÿÇd”#ÿÿÿÿÇh”#ÿÿÿÿÇl”#ÿÿÿÿÇp”#ÿÿÿÿÇt”#]ÉöU‰åWVSƒì ‹E‹} ƒøt4ƒø ƒøtéЃøt3ƒøtB鳐‹`”#Ç`”#ÿÿÿÿë:‰ö‹h”#Çh”#ÿÿÿÿë&‰ö‹l”#Çl”#ÿÿÿÿë‰ö‹p”#Çp”#ÿÿÿÿÇ á#ƒûÿtM¾ì‘#…ÿt‰ØÁàƒ¸è‘#uƒì ‰ØÁàÿ°ä‘#ÿà‘#ƒÄ‰Ù‰ØÁà‹0‰Â¡t”#‰2‰ +t”#ƒûÿu¸Ç á#eô[^_]ÉöU‰åƒìEüPEøPEôPEðPèI‡Ç$€”#èÉӃÄjjhÿÿjh„”#h€”#èôɃÄjjhÿÿÿhh ”#h€”#èÔɃÄjjhÿÿÿþhh¼”#h€”#è´ÉƒÄ ƒ}ütƒì‹EüHPÿuøh€”#è~ȃă}ôtƒìÿuôÿuðh€”#èbȃÄÉÐU‰åƒì‹E…Àu¸ëƒìjPh€”#è ʃÄÉÍvU‰åƒìÿuÿuÿu ÿuh€”#è¼ËƒÄ ÉÍvU‰åƒì ÿuÿuÿuÿuÿu ÿuh€”#è¶ËƒÄ ÉÐU‰åƒì ÿu ÿuh€”#èjЃÄÉÐU‰åƒìÿuh€”#èQ΃ÄÉÃU‰åƒìÿuh€”#èQ҃ÄÉÃU‰åƒì jÿuh€”#èWɃÄÉÉöU‰åƒì ÿu ÿuh€”#èЃÄÉÐU‰åƒìh€”#èÎÇ$€”#è$҃ÄÉÍvU‰åWVSƒì} ‹uEðPh4#VèÖ¥‰ÃƒÄƒûuƒ}ðvÇEðƒÆë ‰öÇEð‹Eðº;¤]#~hƒìWVhà”#蜃Äj
+VèK›ƒÄ»…À•ÃœúX‰Æƒìhà”#‹Eðÿ4…¨]#h4#è]™ƒÄ…Ûuƒì h¼4#èI™ƒÄ‰ðPº‰Ðeô[^_]ÍvU‰åVSƒìu ‹]EôPh4#S襃ăøuƒ}ôvÇEôƒÃëÇEô‹Eôº;¤]#~JƒìVShà”#èB›ƒÄj
+S臚ƒÄœúX‰Ãƒìhà”#‹Eôÿ4…¨]#h4#裘ƒÄ‰ØPº‰Ðeø[^]ÉöU‰åVSƒì@‹u‹] ‹EfÇEÈÇEÌÇEÐfÇEÔÇEàÇEäÇEìÇEð‰EØÇEÜÇEè…ÛtT‹C‰E̋C‰EЃ{u
+ÇEÜ1됃eÜߋC ‰EàÇEÀƒì ÿ5à˜#è)7ƒÄ+C ‰EċC‰Eì‹C‰EðëD‰öÇEÌÇEЃMÜ ÇEàÇEÀƒì ÿ5à˜#èâ6ƒÄ‰EÄÇEìÇEðèI±‹ƒì jEÀPEÈPÿuh!4#èAÞÿÿ‰ƒÄ ƒøÿt ƒì PèòÒÿÿƒÄ豉¸ƒ>ÿ”ÀHƒàêƒÀeø[^]ÍvU‰åƒìÿ5à˜#èc6ƒÄÉÉöU‰åƒìÿ5à˜#èc6ƒÄÉÉöU‰åƒìÿ5à˜#è{5ƒÄÉÉöU‰å‹E‹U ‹M£à˜#‰ä˜#‰ +è˜#]ÐU‰åVS‹]è°‹0ƒì Sètóÿÿ‰Ãèm°‰0ƒÄ¸…Û•À@eø[^]ÃU‰åƒìúÿuÿu ÿuÿ5à˜#èé5ƒÄûÉÍvU‰åWVSƒì ‹}‹uúÿ6ÿu Wÿ5à˜#è3‰ÃƒÄ…Ûu#ƒìÿ5à˜#èx5ƒÄ+PWÿ5è˜#èffƒÄû‰Øeô[^_]ÃU‰åSƒì ‹] Sÿuè¡eƒÄÿ5à˜#è75ƒÄ+‰¸‹]üÉÉöU‰åVSƒì‹u‹] …Ûtƒ;uÇEôƒìEôPë7ƒ;uÇEðƒìEðPë!vÇEèƒì jè_þÿÿ+CUè‰BƒÄRVèT*ƒÄeø[^]ÉöU‰åWVSƒì‹u ‹}ÇEðÿ5à˜#è“4‰ÃƒÄ9Þƒþ} ¸ëG‰öƒì ÿuèµ*ƒÄ W‰Ø)ðPÿuè eƒÄ…ÀtÇEð…ÿt‰Ø+‰ƒì ÿuèÙ*‹EðƒÄeô[^_]ÍvU‰åƒì‹Eúƒ8u +ÇûÿU ëû¸ÉÃU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹xå#‰U苀|å#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õxå#|[‰Eäv1‰ÐÁà)ЍÅ;šxå#u ‹Eì;‚|å#|1‰Ï‰ÐÁà)Ћ Åøâ#ƒùÿt4 1‰ÐÁà)Ћ]ä;Åxå#}«ƒÿÿt‰ÐÁà)ЋU‰Åøâ#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Åüâ#‹E@‰ÐÁà)ЍÅP‰ˆ¨â#‰¸¬â#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)л¤â#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»¨â#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Åøâ#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Åüâ#‹E@‰ÐÁà)ЍÅP‰ˆ¨â#‰¸¬â#ƒÄ[^_]ÍvU‰åWVS‹}‰ÐÁà)ЍÅP‹¬â#‹°¨â#ƒúÿu ‹E ‰0ë#‰öR‰ÁÁá)Á»¨â#‰ÐÁà)ЋDÃP‰DËPƒþÿt!v‰ÁÁá)Á»¬â#‰ÐÁà)ЋDÃP‰DËP[^_]ÃU‰åS‹]‹ ‰Èƒùÿt/I‰ÐÁà)ЋÅøâ#‰ƒøÿt@‰ÐÁà)ÐÇÅüâ#ÿÿÿÿ‰È‹$ÉÃU‰åS‹]‹M ƒ9ÿt‹@‰ÂÁâ)‰Õüâ#[‰ÂÁâ)ÕP‹‰‚¨â#ǂ¬â#ÿÿÿÿ‰‹$ÉÃU‰åWVSƒì ‹M‹] ‹}ÇEðú¡Ìá#@‰ÂÁâ)4Õ â#…ÿt‹F8‰…ÛtBƒùt"ƒù ƒùt ë*‰öƒùtë!‹F8 ‰F8ë‰ö‹÷Ð!F8ëv‹‰F8ëÇEð‹F8‰Ã÷Ћ›#‰Ñ…ÂtB‰ö‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì R范ċ^8‰Ø÷Ћ +›#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…Ât=‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè|ƒÄ‹^8‰Ø÷ЋN<…ÁuÃû‹Eðeô[^_]ÍvU‰åVS‹u‹M ¸…É„¸ƒù‡òv‰ÐÁà)Ðfƒ<ÅÈâ#u +¸éӍvú‰ÈÁàö€™#uƒ¸™#uû魉öv‰ÐÁà)ЍÅÜâ#ƒùvèÍ©Çë
+¸Óà »ëC;Ì]#}ƒìÝÿ°Ä›#VÿÀ›#ƒÄ…Àtٍv‰ÐÁà)ЍÅfƒ»Èâ#u&ƒìh›#VèÔüÿÿ‹ƒ¤â#ƒÄ‹…â#VPÿRDƒÄèSm…Àuèû¸eø[^]ÐU‰åWVSƒì‹]‹U ƒûvè©Ç¸ÿÿÿÿévœúX‰Á‰Mðƒ}t‰ÞÁæÆ™#ü¹‹}ó¥…Òt‰ßÁçÇ™#ü¹‰Öó¥…Ò„ºöB…°ƒ:‡§ƒ< ›#ÿtq4‰uìº ›#‹@Áà‰Eè‰ÇƒÇ‹ +@¨%¸@¢%‹U苉E䋇D¢%©t +ƒàý‰‡D¢%ë‰ö¾ ›#‹Uì‹2@‰ Õ@¢%‰Áƒ}äÿu»‰ +@¨%ǝ ›#ÿÿÿÿƒûv +è¨Çë¸þÿÿÿˆÙÓÀ!›#‹uð‰ðP¸ƒÄ[^_]ÐU‰åWVSƒì,‹] ¸…Û„~¸ƒû‡pœúX‰Â‰UԉÞÁæ}؁ƙ#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé5vƒûv膧Ǹÿÿÿÿ됸ˆÙÓà#›#…Àt +‹UԉÐPéûƒûvèN§Çë‰ö¸ˆÙÓà ›#‹5›#ƒþÿ„ô¸‰ÇˆÙÓçvv‰ÐÁà)ЍÅàâ#ƒûvèý¦Ç¸ÿÿÿÿë‰ú#‰Ð…À„–v‰ÐÁà)ÐÁàfƒ¸Èâ#uÜâ#ƒûv +輦Çë 8ƒìh›#Vèúÿÿv‰ÃÁã)ÃÁ㋃¤â#ƒÄ‹…â#VPÿRDÃྠâ#ƒÄƒ<3ÿtƒì ÿ43ÿ¨á#Ç3ÿÿÿÿƒÄ‹MԉÈPéîv‰ÐÁà)Ћ4Åøâ#ƒþÿ…ÿÿÿ¾¸‰ÇˆÙÓç‰öv‰ÐÁà)ÐÁàfƒ¸Èâ#„…Øâ#ƒûvèö¥Ç¸ÿÿÿÿ됉ú#‰Ð…Àu^v‰ÐÁà)ЍÅÜâ#ƒûvèÃ¥Çëv 8»ëvC;Ì]#}0ƒìÝÿ°Ä›#VÿÀ›#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèzi…Àuè9 +‹MԉÈP¸eô[^_]ÐU‰åWVSƒì,¸ƒ} „T¸ƒ} ‡EœúX‰Â‰Uԋu Áæ}؁ƙ#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé ‰ö÷Eàu;ƒ} vèܤǸÿÿÿÿëv¸ŠM Óà#›#…Àt ‹UԉÐPéÃ=@¨%ÿu‹MԉÈP¸ 鮉ö‹5@¨%vÁà¹@¢%‹‰@¨%‹U ‰D¢%‹U‰H¢%‹U‰L¢%‹Ìá#‰P¢%Çÿÿÿÿ‹E Áຠ›#ƒ<ÿu‰4ë>‰ö‹M ‹ ›#‰ÁЃ<Å@¢%ÿt»@¢%
+‹Í 
+ƒ<ÃÿuîR‰4Å@¢%ƒ} vèé£Ç됸ŠM Óà ›#‹5›#ƒþÿ„û¸‰ÃŠM Ó㐍v‰ÐÁà)ЍÅàâ#ƒ} v蘣Ǹÿÿÿÿë v‰Ú#‰Ð…À„šv‰ÐÁà)ÐÁàfƒ¸Èâ#uÜâ#ƒ} vèS£Çëv ƒìh›#Vè¨öÿÿv‰ÃÁã)ÃÁ㋃¤â#ƒÄ‹…â#VPÿRDÃྠâ#ƒÄƒ<3ÿtƒì ÿ43ÿ¨á#Ç3ÿÿÿÿƒÄ‹MԉÈPé÷v‰ÐÁà)Ћ4Åøâ#ƒþÿ…ÿÿÿ¾¸‰ÃŠM Ó㐍v‰ÐÁà)ÐÁàfƒ¸Èâ#„…Øâ#ƒ} v艢Ǹÿÿÿÿë‰Ú#‰Ð…Àu^v‰ÐÁà)ЍÅÜâ#ƒ} vèV¢Çë‰ö »ëvC;Ì]#}0ƒìÝÿ°Ä›#VÿÀ›#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèf…Àuƒ=È]#uèÄ ‹MԉÈP¸eô[^_]ÃU‰åWVSƒì‹u‹]¡Ìá#@‰ÂÁâ)<Õ â#èŠú¡›##„Hºv©u=BÑøuô¾ƒ<µ ›#ÿue‹E ‰0Ç@Ç@W<ƒþvèa¡Ç됉Öëɸþÿÿÿ‰ñÓÀ!ƒþvè?¡Çëv¸þÿÿÿ‰ñÓÀ!›#ûév µº ›#‹[‹Å@¢%‰ƒøÿu"ƒþvèñ Ç됸þÿÿÿ‰ñÓÀ!›#W<ƒþv +èÌ Çë ¸þÿÿÿ‰ñÓÀ![Áâ¹D¢%‹
+‹u ‰‹‚H¢%‰F‹‚L¢%‰FƒÂ‹
+©t ƒàý‰
+ëv[¡@¨%‰Õ@¢%‰@¨%ûéI‰Öë‹G<#tUº©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè Çëv¸þÿÿÿ‰ñÓÀ!ûéëv…Ûtƒ;uƒ{u +û¸ éÓ‰ö‹‰G@úèu‹Ìá#R‰ÑÁá)Ñf‰ͨâ#ƒìh„â#jèN\ƒÄU衈â#;Øá#|¡„â#+Ôá#‰E衈â#+Øá#ë¡„â#+Ôá#H‰E衈â#+Øá#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰ÁáºÓMb‹Eì÷êÁú‹EìÁø)ÂыÌá#R‰ÐÁà)Ð) Åìâ#ƒì QèÏÿÿƒÄƒ=Üá#ÿtƒì ÿ5Üá#ÿ¨á#ÇÜá#ÿÿÿÿƒÄ‹ +Ìá#I‰ÐÁà)ЋŤâ#ƒì‹…â#QPÿRHƒÄh›#ÿ5Ìá#èæòÿÿ¡Ìá#@‰ÂÁâ)ÂfÇÕÈâ#ƒÄ…Û„’ƒìEàPjè[U؃Ä‹Eà‰E؋EäC‰B…Ày +ÿM؁Bʚ;됁zÿɚ;~ ÿjʚ;ÿ5Ìá#hÐr"ÿuÜÿuØÿ¤á#‰ÃƒÄƒûÿuƒìÿ5Ìá#jèù ƒÄ¡Ìá#@‰ÂÁâ)‰Հå#ÇÌá#ÿÿÿÿÇàá#ÿÿÿÿè‡Ðÿÿƒì ¡Ìá#@‰ÂÁâ)» â#¿DÓPèsè”ÇG@¡Ìá#@‰ÂÁâ)ƒÄöDÓ2tû¸ é~‰Öë%¡›##„ûº‰ö©uáBÑøuô¾ƒ<µ ›#ÿu=‹M ‰1ÇAÇAƒþv +è@Çë¸þÿÿÿ‰ñÓÀ!›#ûé vƒì µƒ ›#Pèúðÿÿ‰ÇƒÄƒ» ›#ÿu#ƒþvèòœÇë‰ö¸þÿÿÿ‰ñÓÀ!›#Áâ¹D¢%‹
+‹] ‰‹‚H¢%‰C‹‚L¢%‰CƒÂ‹
+©t ƒàý‰
+ëv¡@¨%‰Õ@¢%‰=@¨%ûël‹G<#…Àuû¸ë`v‰Öë‹G<º#t ©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè/œÇëv¸þÿÿÿ‰ñÓÀ!û¸eô[^_]ÍvU‰åWVSƒì ‹}¡Ìá#@‰ÂÁâ)4Õ â#è¹ú‹F<#…Àt è¦û颋‰F@úèq‹Ìá#R‰ÑÁá)Ñf‰ͨâ#ƒìh„â#jè6XƒÄU衈â#;Øá#|¡„â#+Ôá#‰E衈â#+Øá#ë¡„â#+Ôá#H‰E衈â#+Øá#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыÌá#R‰ÐÁà)Ð) Åìâ#ƒì QèúÊÿÿƒÄƒ=Üá#ÿtƒì ÿ5Üá#ÿ¨á#ÇÜá#ÿÿÿÿƒÄ‹ +Ìá#I‰ÐÁà)ЋŤâ#ƒì‹…â#QPÿRHƒÄh›#ÿ5Ìá#èÍîÿÿ¡Ìá#@‰ÂÁâ)» â#fÇDÓ(ÇÌá#ÿÿÿÿÇàá#ÿÿÿÿè Íÿÿ¡Ìá#@‰ÂÁâ)¿DÓ‰$è™oè‹F<#ƒÄ…Àuû¸ë èÿû¸eô[^_]ÐU‰åSƒì‹]úEðPjè¢VƒÄƒ=¨›#ÿu
+ÇEèëWMèU𡤛#;B|¡ ›#+Eð‰E衤›#+Bëv¡ ›#+EðH‰E衤›#+Eôʚ;‰Aƒì ÿ5¨›#ÿ¨á#ƒÄ…ÛtN]ð‹E𣠛#‹Eô£¤›#jh0s"ÿuôÿuðÿ¤á#‰ÃƒÄƒûÿuƒìÿ5Ìá#jè:ƒÄ‰¨›#ë +vǨ›#ÿÿÿÿû‹Eè‹]üÉÐU‰åVSƒì‹uƒ<µ ›#ÿuC‰uèÇEìÇEð¡Ìá#‰Eôƒþvèü˜Ç鮐¸þÿÿÿ‰ñÓÀ!›#降 µº ›#‹[‹Å@¢%‰ƒøÿu"ƒþv豘Ç됸þÿÿÿ‰ñÓÀ!›#[Áà¹D¢%‹‰U苐H¢%‰U싐L¢%‰Uð‹P¢%‰UôP‹
+©tƒàý‰
+ë[¡@¨%‰Õ@¢%‰@¨%ƒìEèPVè
+ƒÄeø[^]ÃU‰åVSƒì¡Ìá#@‰ÂÁâ)4Õ â#‹F0©…Í +‰F0‹F8‰Ã÷Ћ›#‰Ñ…ÂtA‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè„þÿÿƒÄ‹^8‰Ø÷Ћ +›#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…ÂtZ‰Ø÷л!Ètv‰Ú©u
+CÑøuòº‰UèÇEìÇEð¡Ìá#‰EôƒìEèPRèƒÄ‹^8‰Ø÷ЋN<…Áu¦f0ÿïÿÿeø[^]ÃU‰åWVSƒì,‹]œúX‰Â‰UÌ¡Ìá#@‰ÂÁâ)Õ â#‰UЉÞÁæ}؁ƙ#ü¹ó¥÷Eàuƒ}Ø„îƒ}Øÿ„ä÷EàuCƒ}Øu=ƒìSh,4#èw}ƒÄ÷Eàtƒì‹M ÿqhB4#èX}ƒÄƒì jè—ÓÿÿƒÄ‹UЋB8‰EԉƍUԃûv +èh–Çë ¸ˆÙÓà ‹EÔ E܉EԋUЃÂ<ƒûv +è<–Çë ¸þÿÿÿˆÙÓÀ!‹EԋUЉB8û÷Eàtƒìjÿu SÿUäëƒìj‹M ÿqSÿU؃Äú‹EЉp8‹ỦÐPeô[^_]ÃU‰åWVSƒì ‹}‰ÐÁà)ÐÁྠâ#fƒ|(uF˜àƒ<3ÿtƒì ÿ43ÿ¨á#Ç3ÿÿÿÿƒÄƒìh›#Wèúèÿÿ‰ÂÁâ)‹Õ¤â#ƒÄë ‰ÐÁà)ÐÁàfƒ¸Èâ#u!‹¤â#ƒì‹•â#WRÿPD¸ƒÄë‰ö¸eô[^_]ÍvU‰åWVSƒì º¿™#¾™#» ™#¹ ›#‰ö‰ÐÁàǀ™#Ç8Ç0ÇÇ‘ÿÿÿÿBƒúvϺ»@¢%¹D¢%RÁàB‰ÇDƒú>~éÇ(¨%ÿÿÿÿÇ<¨%Ç@¨%Ç›#Ç›#ÿÿÿÿǨ›#ÿÿÿÿº¹`œ#»dœ#‰öRÁàÇÇÿÿÿÿÆDBƒú~áƒìjh°m"ènÚÿÿƒÄeô[^_]ÍvU‰å‹EǸ]ÐU‰å‹EÇÿÿÿÿ¸]ÐU‰åƒì‹U‹M ƒùvèê“Ǹÿÿÿÿ됸Óà ¸ÉÃU‰åƒì‹U‹M ƒùv趓Ǹÿÿÿÿ됸þÿÿÿÓÀ!¸ÉÃU‰åƒì‹M ƒùv腓Ǹÿÿÿÿë ¸Óà‹U#ÉÉöU‰åƒì ÿuÿu ÿuèÔçÿÿƒÄÉÍvU‰åWƒì$‹UEè‰E丹‹}äüó«ƒìjÿuäRèBñÿÿƒÄ…Àu +‹Uè‹E ‰¸‹}üÉÐU‰åƒì jÿu ÿuèñÿÿƒÄÉÃU‰åƒì‹E…Àu¸ëƒìPÿu ÿuèíðÿÿƒÄÉÃU‰åƒìÿuÿ5Ìá#è`èÿÿƒÄÉÍvU‰åVSƒì ‹]‹E ‰EèÇEìÇEð脒‹0ƒìEØPEèPSèAéÿÿƒÄ»ÿÿÿÿ…Àu ÷Eàu‹]ØèT’‰0‰Øeø[^]ÐU‰å‹M¡Ìá#@‰ÂÁâ)¡›# ÕÜâ#‰¸]ÉöU‰åSƒì‹E‹U ú‹Ìá#‰Ìá#ÇÈ]#jPj jèœìÿÿƒÄÇÈ]#‰Ìá#û‹]üÉÍvU‰åS‹M‹] ¡Ì]#ʼnŠÀ›#‰šÄ›#@£Ì]#‹$ÉÍvU‰åVS‹]Cÿƒøv苑Ç~¸ÿÿÿÿëp‰öœúX‰Æ[€<…hœ#u‰ðPèa‘ǸÿÿÿÿëF[Áâ¹`œ#‹E ‰
+‹E‰‚dœ#ÆD
+ƒìjhps"Sè¹T·Ã‰$èÒeƒÄ‰ðP¸eø[^]ÍvU‰åƒì¸ÉÍvU‰åƒì ‹E‰EèÇEìÇEð‹Ìá#‰UôUèRPè›ùÿÿƒÄÉÉöU‰åVS‹uv‰ÃÁã)ÃÁ㸠â#DŽàÿÿÿÿL0ƒìh›#Vèõãÿÿ‹ƒ¤â#ƒÄ‹…â#VPÿRDèç·ÿÿƒÄeø[^]ÐU‰åƒìǨ›#ÿÿÿÿjjèWèÿÿè¾·ÿÿƒÄÉÐU‰åƒìEüÇEüÿÿÿÿPèôÿÿƒÄÉÐU‰åƒì‹E‹‰EüEüPjÿÐ]#‹UüRÁà¹`œ#ƒÄƒ<t ûƒì RÿƒÄú‹Eü@ƒì ÿ4…dœ#覱ÿÿƒÄÉÐU‰åWVSƒì ‹u ‹]ƒ}t讏Ǹÿÿÿÿén‰öúƒ= ¤#ÿt ƒ=@¨%ÿuûèƒÇ ¸ÿÿÿÿéCv¡ ¤#‰‹ ¤#Õ)п$#‹DÇ0£ ¤#‹Õ)й #ÇDÁ0…öu8‹Õ)ÐÇÁ‹Õ)ÐÇÇ‹Õ)ЉÅ(#닍<Å)Ǎ<ý #ü¹ó¥‹Õ)ЍŃº #u#¡@¨%‰‚H#@ÁàƒˆT¢%‹€@¢%£@¨%‹Õ)ÐÇÅ4#ÿÿÿÿ‹Õ)ЍÅ8#Ç@NjÕ)ЍÅ@#Ç@NjÕ)ÐÇÅL#û¸ƒÄ [^_]ÃU‰åSƒì‹]ƒûwúÝ)؃<ÅP#uûèÿÇ¸ÿÿÿÿ閍vÝ)ØÁàǀP#ƒÀº$#ƒ<ÿtƒì ÿ4ÿ¨á#ƒÄÝ)ØÁàƒ¸ #uE‹H#R ÅöT¢%u¡@¨%‰@¢%‰@¨%Ý)؋ÅH#@ƒ$ÅT¢%üû¸‹]üÉÃU‰åWVSƒìL‹E‰E´Áà+E´Áàƒ¸ #…‹P ‹‚(#@öÅT¢%t¸,#ƒ< „ôÿéì‰ö‹M´Áá+M´Ááy LJ,#¾(#‹7@‹@¨%‰Ý@¢%£@¨%jÿ41ÿ±$#jèhçÿÿ‹7@ƒ ÅT¢%錐‹E´Áà+E´Á๠#ƒ<uwPƒ<
+tÿ°(#ÿ°,#ÿ4
+ëQvÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà‹E´Áà+E´Áà(#Rÿ°,#EÈPEÄPèÙÙÿÿƒÄ‹E´Áà+E´Åƒ¸(#u +ƒ¸,#„Àº@#‹E´Áà+E´ŋ‰E¸M¸‹D‰A‹E¸ƒ8#‰ƒ@#‹Aƒ<#‰B…Àyÿ‹@#Bʚ;ë‰özÿɚ;~ ÿjʚ;‹E´Áà+E´ÿu´h<v"ÿ4ÅD#ÿ4Å@#ÿ¤á#‰ÃƒÄƒûÿuƒìÿ5Ìá#jè+ùÿÿƒÄ‹E´Áà+E´‰Å4#ë‰ö‹E´Áà+E´ÇÅ4#ÿÿÿÿeô[^_]ÃU‰åWVSƒì‹u‹}ÇEäƒþw3ƒ}t-‹Exÿɚ;w!‹]{ ÿɚ;wúõ)ðƒ<ÅP#uûèÁŠÇ¸ÿÿÿÿ鐅ÿ„·õ)ðƒ<Å4#ÿuÇG ÇGëwƒìEèPjèGÇEäƒÄ¹@#õ)ðō]è‹D;C|‹+Eè‰G‹D+Cë(¹@#õ)òÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹8#õ)ðÁà‹‰‹D‰Gõ)ðÅº$#ƒ<ÿtƒì ÿ4ÿ¨á#ƒÄ‹Eƒxu
+ƒx „þº8#õ)ð ŋ]‹‰
+‹C‰D
+÷E t¸@#‹S‰‹S ‰Tëmvƒ}äuƒìEèPjèøEƒÄõ)ð ō‘@#‹Eè‹]C‰@#‹EìC ‰B…Àyÿ‰@#Bʚ;ëzÿɚ;~ ÿjʚ;õ)ðVh<v"ÿ4ÅD#ÿ4Å@#ÿ¤á#‰ÃƒÄƒûÿuƒìÿ5Ìá#jè­öÿÿƒÄõ)ð‰Å4#û¸eô[^_]ÃU‰åWVSƒì ‹]‹} ƒûwúÝ)؃<ÅP#uûèzˆÇ¸ÿÿÿÿ鷉öÝ)؃<Å4#ÿuÇG ÇGëoƒìEèPjèÒDƒÄ¹@#Ý)؍ōuè‹D;F|‹+Eè‰G‹D+Fë'¹@#Ý)ÚÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹8#Ý)ØÁà‹‰‹D‰Gû¸eô[^_]ÍvU‰åƒìƒ}t藇Çëv臇ǸÿÿÿÿÉÉöU‰åƒìƒ}tèg‡Ç¸ÿÿÿÿë‰öƒì ÿu èuÄÿÿ¸ƒÄÉÍvU‰åƒì‹E ƒ}tè,‡Ç¸ÿÿÿÿëv…Àt +ÇÇ@è¸ÉÃU‰åƒì‹UƒúwúÕ)Ѓ<ÅP#uûè܆ǸÿÿÿÿëvÕ)ЋÅL#ûÉÐU‰åWVS¹»$#¿ #¾,#‰öÍ)ÈÁàÇDÿÿÿÿ8#ÇBǍP0Ç:ÇD A‰‰Áƒù~ºÇ¤#ÿÿÿÿÇ ¤#[^_]ÐU‰å]ÍvU‰å¸]ÉöU‰åVSœúX‰Ã¡Ìá#@‰ÂÁâ)¾ â#‹DÖ0©t0©t)ƒì jè"Æÿÿ¡Ìá#@‰ÂÁâ)¿DÖ‰$è"[ƒÄ‰ØPeø[^]ÃU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡Ìá#@‰ÂÁâ)¹ â#‹DÑ0Áèƒà‹U ‰¡Ìá#@‰ÂÁâ)Õ0‹
+%ÿþÿÿ ؉
+û¸‹$ÉÉöU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡Ìá#@‰ÂÁâ)¹ â#‹DÑ0Áè ƒà‹U ‰¡Ìá#@‰ÂÁâ)Õ0‹
+%ÿýÿÿ ؉
+û¸‹$ÉÉöU‰åWVSƒì ‹} ÇEðú‹EÇÿÿÿÿÇ@¾;5Äá#s9v‹µ`â#ƒ{u ƒìWVÿS,ƒÄ…ÀxƒìWÿuVÿS0‰EðƒÄF;5Äá#rÊû‹Eðeô[^_]ÉöU‰åƒì‹U¸ƒ:ÿt ¸ƒzu‹‹…`â#ƒìRÿ2ÿP4ƒÄÉÍvU‰åƒì‹U¸ƒ:ÿt‹‹…`â#ƒìRÿ2ÿP8ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹…`â#ƒìRÿ2ÿP<ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹…`â#ƒìRÿ2ÿP@ƒÄÉÉöU‰åVS‹u‹µâ#ƒìÿ°ôhy4#è^j»ƒÄ‰ö[‰ÐÁà)ÐÁà9°¤â#……ƒÀ º â#f|€ttfƒ|tlƒì f‹Dfƒøwƒì ·ÀPè ¨ƒÄë%v·Ð¸S4#ú€t¸_4#út¸k4#P[‰ÐÁà)ÐÁàÿ°tå#´â#PShà4#è¹iƒÄ Cû™ŽUÿÿÿeø[^]ÉöU‰åWVSƒì ‹E‹…â#‰Eð‹¸üƒì ‹Uð‹‚ðøPèo§‰ÆƒÄƒþÿu +¸ÿÿÿÿ…ÿtrOëՐv‰ÐÁà)Ѝ ÅöÑâ#tRQ@»¬â#ƒ<D‹„å#‰ƒìý‰Ø‹Uð‚ðPVè\¥ƒÄ‹Eð˜ðSV腦ƒÄéiÿÿÿ‰ðeô[^_]ÉöU‰åWVSƒì‹E‹…â#‰Eð‹Mƒy(…©‹=Ìá#‰ÐÁà)Ѝž¤â#‹U93…‹M I‰ÂÁâ)ÂÁ⋄Љ„й¬â#‹D@‰D@‹„à‰„àƒÂ0¹ â#‹
+%ÿ÷ÿÿ‹\0ã ؉
+‹UðƒÂ¸ƒ¼º€ÿ•ÀH‹] ‰„š€é¢v‹U R‰ÂÁâ)ÂÁ⻤â#‹A‰„Ѓyt‹A‰‚ìâ#‹A‰„àë-‰ö‹] [‰ÐÁà)ÐÁà‹]ð‹“ô‰ìâ#‹“ô‰„å#ƒy$u‹E @‰ÐÁà)Ё ÅÐâ#¸ƒy ”ÀH‹U ‹Mð‰„‘ˆ¸ƒÄ[^_]ÃU‰åWVSƒì ‹U‹<•â#ƒ¿t8LJƒì‹E @‰ÐÁà)ЋÅtå#‹—ðÂPÿu 詤酋E @‰ÐÁà)ЍÅöƒÑâ#t?K@¾¬â#ƒ<11º¤â#‹1„à‰1ƒì‹„Ћ—ðÂPÿu èK¤ë*ƒì‹E @‰ÐÁà)ЋÅtå#‹—ðÂPÿu è³£ƒÄ‹E @‰ÐÁà)ÐfÇÅÈâ#€eô[^_]ÐU‰åWVSƒìH‹]ÇE¼ÇEÀfÇEÄÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà¶Ã +f‰E¸‹â#‹€ø‰EÈÇE̍E¸jjPhô"h…4#è-¬ÿÿ‰ÆƒÄ ƒþÿuƒì h 5#èVËÿÿƒÄ‹<â#v‰ÐÁà)Ðfƒ<ÅÈâ#tµ€Gƒ<ÿtJÿëE‰öƒìv‰ÃÁã)ÃÁ㍃äâ#PjèJ;fǃÈâ#€ƒÄ‹ƒtå#‹—ðÂPVè䢃čeô[^_]ÐU‰åWVSƒì‹}hŠ4#è¾ÊÿÿèÆÿÿ‰EðƒÄ hPh 4#è£ÊÿÿÇ$èwÉÿÿ‰ÃƒÄSh¾4#è‡Êÿÿ‹Eð‰…â#ƒÄ jhÊ4#Sè=efÇCÆCÇCä‰"ÇCŠ"ÇC Ø"ÇC$¸€"ÇC(Š"ÇC,x"ÇC0(Š"ÇC40Š"ÇC8<Š"ÇC<ð‚"ÇC@|Š"ÇCD‹"ÇCHP‹"ÇCLX‹"ÇCPð‹"ÇCT8Œ"ÇCXlŒ"ÇC\P"ÇC`p"ÇCdˆ"ÇCh "ÇCl¸"ÇCpЍ"ÇCtè"ÇCxŽ"ÇC|Ž"ǃ€0Ž"ǃ„HŽ"¸ƒÄS‰öDŽ‚€ÿÿÿÿ@=™~í‹EH‰ƒüƒì ‹EÁàPè@Èÿÿ‰ƒð¾ƒÄ;u}ƒì ‹ƒððPèꟃÄF;u|åÿçw¿èÿ ¡v¿ ¡‰»ô‹E‰ƒøƒ} tƒìjÿuðhìƒ"è8ÃÿÿƒÄeô[^_]ÐU‰åWVSƒì ‹M‹u ‹]‹â#‰Eð…Éx[; +Ðá#sS‹â#‹@%ÿÿÿ=u=þ™wv‰ÐÁà)Ðfƒ<ÅÈâ#u +¸éèvv‰ÐÁà)Ð9 Ťâ#t +¸&éȍv…Ûuv‰ÐÁà)Ё ÅÐâ#ë)ƒûuv‰ÐÁà)Ё$ÅÐâ#ÿ÷ÿÿë ¸郉öv‰ÐÁà)ÐÁà˜Ð¿¤â#‹U9;t\f¸Èâ#€u=ƒì‹;‹Mð‹‘ðÂPV蜞‹E‰;ƒÄ‹Uð‹‚ð‹MÈPV蹟ƒÄëv‰ÐÁà)ЋU‰Åtå#¸eô[^_]ÍvU‰åVS‹M‹4â#…Éx; +Ðá#s‹â#‹@%ÿÿÿ=t¸ÿÿÿÿëw¡Ìá#@‰ÂÁâ)¸ÿÿÿÿ9 Õ¤â#uZúè!P‹Ìá#R‰ÑÁá)Ñ» â#f‰DËdžèX­ÿÿ¡Ìá#@‰ÂÁâ)ƒì ¿DÓPèçOè>·ÿÿƒÄû¸eø[^]ÉöU‰å‹E‹…â#‹€ü]ÍvU‰å‹E‹…â#‹€ô]ÍvU‰åS‹]‹M …ÛxU;Ðá#sM‹â#‹@%ÿÿÿ=u7ù™wI‰ÐÁà)Ðfƒ<ÅÈâ#u¸ëMI‰ÐÁà)Ð9Ťâ#t ¸&ë3‰öI‰ÁÁá)ÁÁá¸öÑâ#”À‹U‰‹‘tå#‹E‰¸‹$ÉÉöU‰å‹E f8t·‹E +9Âu¸ë¸ÿÿÿÿ]ÐU‰å¸ÿÿÿÿ]ÉöU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰åSƒì ‹E‹M ‹…â#I‰ÐÁà)ЋÅtå#‹“ðÂPQè;œƒÄ‹]üÉÍvU‰åWVSƒì ‹E‹u ‹<…â#v‰ÐÁà)Ðfƒ<ÅÈâ#tµ€Gƒ<ÿtHÿëCƒìv‰ÃÁã)ÃÁ㍃äâ#PjèR5fǃÈâ#€ƒÄ‹ƒtå#‹—ðÂPVè윃čeô[^_]ÐU‰åSƒì ‹E‹M ‹…â#I‰ÐÁà)ÐÁàfǀÈâ#€‹€tå#‹“ðÂPQ蠜ƒÄ‹]üÉÃU‰å]ÍvU‰åWVSƒì ‹U‹•â#‰Eð‹U <•€‰ÆƒÆƒ<7~MƒìR‰ÃÁã)ÃÁ㍃äâ#Pjè‹4ÿ 7ƒÄ‹ƒtå#‹Mð‹‘ðÂPÿu 躛fǃÈâ#€ƒÄë‹E @‰ÐÁà)ÐfÇÅÈâ#eô[^_]ÐU‰åƒì‹E‹M ‹…â#ƒÀDŽˆ€ÿÿÿÿI‰ÐÁà)ÐfÇÅÈâ#hDâ#QèðÉÿÿƒÄÉÍvU‰å‹E‹U ‹…â#ƒÀDŽ€R‰ÐÁà)ÐfÇÅÈâ#]ÃU‰åWVSƒì4‹u v‰EäÁà+EäfÇÅÈâ#EèPjè“3Mè»@B‹Eº÷ó‰Uà’€€‰E܋A‹U܍ЉE؉A»¡/¸D÷ë‰ÓÁû‹EØÁø)ÿƒÞC‹E÷ç‰×‰øÁèEè‹A»Êš;™÷û‰Ó‰YƒÄVh`Ž"ÿuìÿuèÿ¤á#‰ÃƒÄƒûÿuƒìÿ5Ìá#jèAäÿÿƒÄ v‰ÈÁà)ȉŀå#eô[^_]ÐU‰åƒìÿ5Ìá#jèäÿÿ¸ƒÄÉÍvU‰åƒìÿ5Ìá#jèñãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jèÙãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jèÁãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jè©ãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jè‘ãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jèyãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jèaãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jèIãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jè1ãÿÿƒÄÉÃU‰åƒìÿ5Ìá#jèãÿÿƒÄÉÃU‰åWVSƒì‹MI‰ÃÁã)ÃÁ㺤â#‹‹4…â#¿ â#fÇD(€‹„Ћ–ðÂPQè=™Ç„àÿÿÿÿèQœÿÿƒÄeô[^_]ÉöU‰åVSƒì h@6#è
+Áÿÿè]¼ÿÿ‰ÆÇ$Œè׿ÿÿ‰Ã‰µâ#ƒÄ jhØ5#Sè®[fÇCÆCÇC "ÇC@"ÇC L"ÇC$t"ÇC(ÇC,Œ"ÇC0˜"ÇC4 "ÇC8¬"ÇC<´"ÇC@А"ÇCDø"ÇCH ‘"ÇCLH‘"ÇCPp‘"ÇCT˜‘"ÇCXÀ‘"ÇC\è‘"ÇC`’"ÇCd<’"ÇChd’"ÇClŒ’"ÇCp´’"ÇCtܒ"ÇCx“"ÇC|,“"ǃ€T“"ǃ„|“"ǃˆÿÿÿÿÇ$ã5#èô¿ÿÿƒÄ jVh¤“"è,ºÿÿƒÄeø[^]ÉöU‰å‹M‹E ‹â#fƒ8t·9Èu¸ƒºˆÿt¸ÿÿÿÿ]ÉöU‰å¸ÿÿÿÿ]ÉöU‰åƒì‹E‹…â#ÿ°ˆhE5#èìYƒÄÉÍvU‰å‹E‹…â#‹€ˆ]ÍvU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰å]ÍvU‰å‹E @‰ÂÁâ)ÂfÇÕÈâ#]ÃU‰åƒìhT5#èxYƒÄÿ5Ìá#j è„àÿÿƒÄÉÍvU‰åƒìh[5#èPYƒÄÿ5Ìá#j è\àÿÿƒÄÉÍvU‰åƒìhb5#è(YƒÄÿ5Ìá#j è4àÿÿƒÄÉÍvU‰åƒìhi5#èYƒÄÿ5Ìá#j è àÿÿƒÄÉÍvU‰åƒìhp5#èØXƒÄÿ5Ìá#j èäßÿÿƒÄÉÍvU‰åƒìhw5#è°XƒÄÿ5Ìá#j è¼ßÿÿƒÄÉÍvU‰åƒìh~5#èˆXƒÄÿ5Ìá#j è”ßÿÿƒÄÉÍvU‰åƒìh…5#è`XƒÄÿ5Ìá#jèlßÿÿ¸ƒÄÉÉöU‰åƒìhŒ5#è4XƒÄÿ5Ìá#jè@ßÿÿƒÄÉÍvU‰åƒìh“5#è XƒÄÿ5Ìá#jèßÿÿƒÄÉÍvU‰åƒìhš5#èäWƒÄÿ5Ìá#jèðÞÿÿƒÄÉÍvU‰åƒìh¡5#è¼WƒÄÿ5Ìá#jèÈÞÿÿƒÄÉÍvU‰åƒìh¨5#è”WƒÄÿ5Ìá#jè ÞÿÿƒÄÉÍvU‰åƒìh¯5#èlWƒÄÿ5Ìá#jèxÞÿÿƒÄÉÍvU‰åƒìh¶5#èDWƒÄÿ5Ìá#jèPÞÿÿƒÄÉÍvU‰åƒìh½5#èWƒÄÿ5Ìá#jè(ÞÿÿƒÄÉÍvU‰åƒìhÄ5#èôVƒÄÿ5Ìá#jèÞÿÿƒÄÉÍvU‰åƒìhË5#èÌVƒÄÿ5Ìá#jèØÝÿÿƒÄÉÍvU‰åSƒì0‹]ÇEÜÇEàfÇEäÇEè¶Ãf‰EØÇEìEØjjPh0”"hÒ5#趜ÿÿƒÄ ‹â#‰Ã‰šˆƒûÿuƒì h6#èÒ»ÿÿƒÄ[‰ÐÁà)ÐÇÅØâ#ÿÿÿÿ‹]üÉÐU‰åôëýU‰åWVSƒì ‹} ¾ú»ëvCûÿ2Ý)ØÁàº@¤#€|t߃ìÿ4ÿuèaVƒÄ…Àuʾ…öt1ÿÀuèðnÇûéÜûÝ)؍…D¤#éˉö÷Ç@uè¿nÇû髍v‹E‰Eð=ÿ~èžnÇû銉ö‹Å#ƒúÿtqÕ)Ѝ<…w‹†D¤#£Å#ƒì ÿuèV@‰$臹ÿÿ»@¤#‰ƒÄÿuPè7U‹Eð‰‡H¤#‡L¤#‰$è,‘ÆDƒÄû‡D¤#ëvènÇû¸eô[^_]ÍvU‰åWVSƒì ¾ú¿»@¤#vý)øÁà€|tƒìÿ4ÿuèUƒÄ…Àu¾Gÿÿ~ʅötJƒì ÿuèOUƒÄ@Pý)ûÁã¾@¤#ÿ43è%¹ÿÿƒÃÆD3¡Å#‰ƒD¤#‰=Å#ƒÄûë‰öèSmÇû¸eô[^_]ÍvU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…X¤#uèmǸÿÿÿÿé‰öèÏæÿÿúè5B‹Ìá#R‰ÑÁá)Ñf‰ͨâ#‹Õ)Ѝ4…@¤#ƒ~ ÿu
+ƒ~…“ƒìWjÿÐ]#ƒÄh„â#jè8)ƒÄU衈â#;Øá#|¡„â#+Ôá#‰E衈â#+Øá#ë!‰ö¡„â#+Ôá#H‰E衈â#+Øá#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыÌá#R‰ÐÁà)Ð) Åìâ#ƒì Qèú›ÿÿƒÄƒ=Üá#ÿtƒì ÿ5Üá#ÿ¨á#ÇÜá#ÿÿÿÿƒÄ‹ +Ìá#I‰ÐÁà)ЋŤâ#ƒì‹…â#QPÿRH‹ +Ìá#I‰ÐÁà)л â#fÇDÃ(Íǂ@À#‹‰‚DÀ#ƒÄF PQèÇÌá#ÿÿÿÿÇàá#ÿÿÿÿèõÿÿ¡Ìá#@‰ÂÁâ)¿DÓ‰$è…@èܧÿÿƒÄûèÿäÿÿë8ÿNƒìWjÿÐ]#¡Ìá#@‰ÂÁâ)¿ըâ#‰$èF@蝧ÿÿƒÄû¸eô[^_]ÃU‰åWVSƒì ‹}‹]?ÿw‹Õ)Ѐ<…X¤#uè¯jǸÿÿÿÿéVv…ÛuúëúèÒ?‹Ìá#R‰ÑÁá)Ñf‰ͨâ#‹Õ)Ѝ4…@¤#…Ûu0ƒ~ ÿu‹E 9F}èMjÇ û¸ÿÿÿÿéó‹E )Fûéâèäÿÿƒ~ ÿu ‹E 9F‘ƒìWjÿÐ]#ƒÄh„â#jèš&ƒÄU衈â#;Øá#|¡„â#+Ôá#‰E衈â#+Øá#ë¡„â#+Ôá#H‰E衈â#+Øá#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыÌá#R‰ÐÁà)Ð) Åìâ#ƒì Qè^™ÿÿƒÄƒ=Üá#ÿtƒì ÿ5Üá#ÿ¨á#ÇÜá#ÿÿÿÿƒÄ‹ +Ìá#I‰ÐÁà)ЋŤâ#ƒì‹…â#QPÿRH‹ +Ìá#I‰ÐÁà)л â#fÇDÃ(͋E ‰‚@À#‹‰‚DÀ#ƒÄF PQè'ÇÌá#ÿÿÿÿÇàá#ÿÿÿÿèZ›ÿÿ¡Ìá#@‰ÂÁâ)¿DÓ‰$èê=èA¥ÿÿƒÄûèdâÿÿë<‰ö‹E )FƒìWjÿÐ]#¡Ìá#@‰ÂÁâ)¿ըâ#‰$è§=èþ¤ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…X¤#uèhǸÿÿÿÿéU‰öè,…À„‡œúX‰Æ‹Õ)Ѝ…@¤#‹JA‰J‹Z ƒûÿtG‹Ý@À#9È<)Á‰È‰BƒìB PSèʊ[‰ÐÁà)ЋŤâ#ƒÄ‹•â#SRÿPDèÿÿƒÄƒìWjÿÐ]#ƒÄ‰ðPé¼‰öúèª<‹àá#R‰ÑÁá)Ñf‰ͨâ#‹Õ)Ѝ…@¤#‹JA‰J‹Z ƒûÿtG‹Ý@À#9È<)Á‰È‰BƒìB PSè*Š[‰ÐÁà)ЋŤâ#ƒÄ‹•â#SRÿPD荙ÿÿƒÄƒìWjÿÐ]#¡Ìá#@‰ÂÁâ)¿ըâ#‰$è <èb£ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹] ÇEð‹E8ÿw‹Õ)Ѐ<…X¤#uèlfǸÿÿÿÿéÊèc*…À„ÃœúX‰Â‰Uì‹E‹Õ)Ѝ4…@¤#^‹^ ƒûÿts݉‹€@À#;F_¿@À#ÇEðv‹F+:‰FƒìF PSè
+‰[‰ÐÁà)ЋŤâ#ƒÄ‹•â#SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿÐ]#ƒÄƒ}ðtèÿÿ‹Uì‰ÐPéõúèÊ:‹àá#R‰ÑÁá)Ñf‰ͨâ#‹E‹Õ)Ѝ4…@¤#^‹^ ƒûÿtr݉‹€@À#;F^¿@À#ÇEð‰ö‹F+:‰FƒìF PSè2ˆ[‰ÐÁà)ЋŤâ#ƒÄ‹•â#SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿÐ]#ƒÄƒ}ðtèd—ÿÿ¡Ìá#@‰ÂÁâ)ƒì ¿Õ¨â#Pèð9èG¡ÿÿƒÄû¸eô[^_]ÉöU‰åWVSƒì ¾¿D¤#õ)óÁãǃ@¤#‰4;ǃH¤#ƒì ƒL¤#PèF‡ƒÃF‰;ƃH¤#ƒÄ‰Æþÿ~±Ç8À#ÿÿÿÿÇÅ#ƒìjhä¢"è:ªÿÿƒÄeô[^_]ÍvU‰åVS‹uú>ÿw‹Õ)Ѐ<…X¤#uèÉcÇû¸ÿÿÿÿënvƒì ‹Õ)л@¤#ÿ4ƒèUKƒÄ@P‹Õ)Ðÿ4ƒè1¯ÿÿ‹Õ)ÐÆDƒ‹Õ)ЋÅ#‰…T¤#‹£Å#ƒÄû¸eø[^]ÉöU‰åƒì‹Mú9ÿw‹Õ)Ѐ<…X¤#uècÇû¸ÿÿÿÿëb‰ö‹Õ)Ѓ<…L¤#ÿtèîbÇû¸ÿÿÿÿë8‹Õ)ÐÆ…X¤#‹Õ)ЋÅ#‰…T¤#‹£Å#û¸ÉÉöU‰åSƒì‹M‹] 9ÿw‹Õ)Ѐ<…X¤#uèubǸÿÿÿÿë_ú‹Õ)ÐÁàƒ¸L¤#ÿu ‹€H¤#‰ë7‰öÇ‹Õ)Ћ…L¤#¹¨â#vÿ @‰ÐÁà)ЋDÁPƒøÿuëû¸‹]üÉÃU‰åVS‹u‹M¸ùÿ‡–ú‹Å#‰ƒúÿtnÕ)Ћ…T¤#£Å#‹Õ)л@¤#ǃ‹Õ)Љ …H¤#ƒì ‹Õ)Ѝ…L¤#P腄‹Õ)ÐÆDƒƒÄëègaÇû¸ÿÿÿÿëû¸eø[^]ÍvU‰åƒì‹M9ÿw‹Õ)Ѐ<…X¤#uèaǸÿÿÿÿë=ú‹Õ)Ѝ…@¤#ƒx ÿuƒxuèì`Ç û¸ÿÿÿÿë ‰öÿHû¸ÉÐU‰å‹E@‰ÂÁâ)¸fƒ<ÕÈâ#”À]ÐU‰åVS‹][‰ÐÁà)Ѝ4Åfƒ¾Èâ#uAƒì‹ÝDÀ#Õ)Ѝ…L¤#PS脃‹†¤â#ƒÄ‹…â#SPÿRD¸ƒÄ됸eø[^]ÃU‰åVSƒ=Ü]#…ÚÇÜ]#¹»`¨%¾d¨%‰ÁàP ÆÇ2ÿÿÿÿÆDAƒùváƒìjjh Å#èÜýÿÿ¹ƒÄ¾Äª%»Àª%‰ö‰ÁàQ‰0Ɖуù +véÇô¬%ÿÿÿÿÆð¬%Ǹª%¹¾$­%» ­%vÍ)ÈÁàQ‰0ƉуùvãÇP°%ÿÿÿÿÆL°%Çh°%eø[^]ÐU‰åWVSƒìŠEˆEóŠUˆUòfÇEæ¾<u€út €}óu€}òuè_Ǐ¸ÿÿÿÿé7‰öúƒ=¸ª%ÿuèí^ǍûÇEìÿÿÿÿ됡¸ª%€‹ÕĪ%‰¸ª%û‰Eìƒ}ìÿu +¸ÿÿÿÿéìvƒì h Å#ègñÿÿƒÄ‹]¾¹º÷ñ‰×ëf‰ö¿€<ŀ¨%t0ƒìÿu¿ōƒ`¨%Pè³EƒÄ…Àu€»x¨%„Ÿ¾ëG¹‰øº÷ñ‰×fÿEæfƒ}懜‰ó„Ût–¿Áãƃ€¨%ƒìÿuƒ`¨%Pè÷D‹E쉃t¨%ƒÄ€}óu‰Â’‹] f‰ÅȪ%ëv‹E썀‹E ¯Ef‰ÕȪ%úƒì ‹U썒Á㷃Ȫ%PèݨÿÿºÌª%‰ƒÄû…Àu%è”]ǒƒì h Å#èAõÿÿ¸ÿÿÿÿ魍v‹E썀ÁãS‰Uà¾Àª%‹ƒÌª%‰‚Ī%‰2ƒìjjƒÜª%Pè:ûÿÿƒÄ ·D3Pjƒàª%Pè#ûÿÿƒÄ jjÃäª%SèûÿÿŠ]ó‹Eàˆ\0ƒÄúƒ=h°%ÿuèø\ǎûÇEèÿÿÿÿë¡h°%Å)‹•$­%‰h°%û‰Eèƒ}èÿu_ƒì h Å#èvôÿÿ‹Eèéä‰öè§\ǐƒì h Å#èTôÿÿ¸ÿÿÿÿéÀ‰öèƒ\Ǒƒì h Å#è0ôÿÿ¸ÿÿÿÿ霉ö‹EèÁà+EèÁ๠­%ŠUòˆT P‹]ì‰
+‹] f‰\
+ǀ$­%ÿÿÿÿ‰º(­%‹]썛ÆÕÀª%ƍ¿ōr¿`¨%€|>t%ƒì¶D>Pš|¨%SèGõÿÿÆD>‰$èšøÿÿƒÄƒì h Å#èŽóÿÿ¿EèƒÄeô[^_]ÍvU‰åWVSƒìŠEˆEóŠ]ÇEè¿ÆEç<u„Ût €}óu€ûuè‚[Ǐ¸ÿÿÿÿé0‰öúƒ=h°%ÿuèa[ǎûÇEìÿÿÿÿë ¡h°%Å)‹•$­%‰h°%û‰Eìƒ}ìÿu ¸ÿÿÿÿéߐ‹EìÁà+EìÁຠ­%ˆ\ ‹M f‰Lǀ$­%ÿÿÿÿƒì h Å#è°íÿÿƒÄ‹U¾¹º÷ñ‰Öë]v¶€<ŀ¨%u ¿ÆEçë8ƒìÿu¶Å`¨%PèöAƒÄ…Àu¿ëF¹‰ðº÷ñ‰ÖÿEèƒ}è‡Ò‰ù„Ét €}çuR¶Áã¸`¨%ÆD ÆDƒìÿuPè>AƒÄ jjÃ|¨%Sè/øÿÿÇ$ Å#èçñÿÿƒÄ jjSè:ïÿÿëM¶ōCº`¨%€|t'þDƒì h Å#è®ñÿÿƒÄ jjƒ|¨%Pèûîÿÿ됃ì h Å#è‹ñÿÿƒÄ¶‹<Åt¨%¿ŠUó:Åت%tèªYǓ¸ÿÿÿÿéX‰ö€}óu¿·ÅȪ%9E u€}ót(¿·ÅȪ%™÷} …ÒtèdYǔ¸ÿÿÿÿéƒì h Å#è ìÿÿ¶‹ń¨%ƒÄƒúÿ„­€}óu#è&YǕƒì h Å#èÓðÿÿ¸ÿÿÿÿéЍÕ)з…4­%9E t"èíXǔƒì h Å#èšðÿÿ¸ÿÿÿÿ鋋MìÁá+M썶Å »d¨%‹‰$­%‹Mì‰ ë/‰öèŸXǑƒì h Å#èLðÿÿ¸ÿÿÿÿë@¶‹Uì‰ń¨%ƒì h Å#è*ðÿÿ‹EìÁà+EìÁàH‰±(­%º ­%‰<Æ¿EìƒÄeô[^_]ÉöU‰åWVSƒì¿E‰Eì‰ÇÁç)ÇÁ獗 ­%‰Uðh Å#èÏêÿÿ‹Mð‹Y›ÁãC‰Eèºd¨%‹€Áà°Àª%ƀÀª%F‰$èôÿÿF ‰$è„ôÿÿF$‰$èyôÿÿƒÄú·FPÿv èX£ÿÿû¹d¨%‹Eè‹ú ’¡¸ª%‰ÍĪ%‰¸ª%ûƇ ­%ƒÃ ‹Uð‹B‰ƒd¨%ú¡h°%‰‡$­%‹Mì‰ +h°%ûƃ`¨%Ç$ Å#è
+ïÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u ŠM¿UÕ)Ѝ… ­%‰Eð‹@€ÅÀª%‹Eð€x uèûVǔ¸ÿÿév€;uèÞVǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC PèÈëÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC PèœëÿÿƒÄ…ÀuÔƒì CPè-éÿÿƒÄ‹Uð·B‹{‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC$PèZïÿÿëƒì‹Uð·BPC$PèDïÿÿC‰$èíÿÿƒÄ¸eô[^_]ÐU‰åWVSƒì ‹} ŠM¿UÕ)Ѝ… ­%‰Eð‹@€ÅÀª%‹Eð€x uè‹Uǔ¸ÿÿév€;uènUǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC$PèXêÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC$Pè,êÿÿƒÄ…ÀuÔƒì CPè½çÿÿƒÄ‹Uð·B‹s‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC Pèêíÿÿëƒì‹Uð·BPC PèÔíÿÿC‰$è-ìÿÿƒÄ¸eô[^_]ÐU‰åSƒìh_6#è;ƒÄÿ5¸ª%hk6#è;»ƒÄÝ)ØÁà€¸ ­%t8 ­%‹B€ÅÀª%ƒì ÿp ÿp$‹B€Å`¨%PSh6#è®:ƒÄ Cƒûv­‹]üÉÃU‰åƒì`¿MÍ)ȋ…0­%’ÅÀª%ÿp ÿp$RQh 6#E¨Pèf:ƒÄ ÉÐU‰åSƒì‹]h Å#èHæÿÿ¿ÓÕ)Ѝ …‹8­%€Å ƒÄ€º`¨%u ‹$­%‰‚d¨%¿ÃÅ)ÂÁâƂ ­%ú‹ +h°%‰Š$­%£h°%ûƒì h Å#èÓêÿÿƒÄ‹]üÉÍvU‰åWVSƒì ‹u ‹E‹<…`â#ú‹^…Ûu-ƒì j èžÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‹U‰‰F‹;Ìá#u û¸#é~ƒ;ÿtc¾ â#‰ö‹ +Ìá#I‰ÐÁà)Ћ‰TÆP‹C‰„¬¡Ìá#‰CÿCè…ÿÿ¡Ìá#@‰ÂÁâ)ƒì ¿DÖPèŸ'èöŽÿÿƒÄûúƒ;ÿu¤¡Ìá#ÿD‡D¡Ìá#‰û¸eô[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„À‹;Ìá#tû¸髍vúè*'‹Ìá# [‰ÊÁâ)Êf‰Õ¨â#‹E‹…`â#ÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt-p ‰Ù[‰ÐÁà)ЉÅðâ#‹œž DŽŽ ÿÿÿÿƒûÿuÖÇGè„ÿÿ¡Ìá#@‰ÂÁâ)ƒì ¿Õ¨â#Pè¢&èùÿÿƒÄû¸eô[^_]ÃU‰åVSƒì h7#è~ÿÿè +™ÿÿ‰ÆÇ$èKœÿÿ‰Ã‰µ`â#ƒÄ jh7#Sè"8fÇCÍÆCÇCÇC$³"ÇC p³"ÇC$|³"ÇC(„³"ÇC,´³"ÇC0à³"ÇC4(´"ÇC8ˆ°"ÇC<p´"ÇC@p±"ºƒÄsK •ÇD@DŽ ÿÿÿÿBú™~ݍeø[^]ÉöU‰åVS‹E‹…`â#ƒì hà6#è7¾ƒÄƒÃƒìÿt³@hÿ6#èû6ƒÄFþ™~ãeø[^]ÃU‰å¸ÿÿÿÿ]ÉöU‰å]ÍvU‰åƒì‹E‹U ‹…`â#ƒÀƒ|@tƒìRj
+èȽÿÿƒÄÉÍvU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] j èӚÿÿ‰ÂƒÄ¸ …Òt!ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìj ÿsèäšÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì ‹}‹u ú‹^…Ûu*ƒì j è3šÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‰>‰Fƒ;ÿt
+û¸ë"‰ö¡Ìá#‹½`â#ƒÂÿD‚@¡Ìá#‰û¸eô[^_]ÃU‰åWVSƒì ‹E ‹U‹•`â#ú‹p¸…ö„V‹;Ìá#u û¸#éA‹Ìá#‹F ¿ â#;„“°v +¸é v¡Ìá#‹Œƒ°‹“¬…Òt‰ö‹;Ìá#…Š‹R…Òu븅À…†‹ +Ìá#I‰ÂÁâ)‹ƒ¬‹‰D×P‹ƒ¬‹@‰„‹‹“¬¡Ìá#‰B‹ƒ¬ÿ@èj€ÿÿ¡Ìá#@‰ÂÁâ)ƒì ¿D×Pèù"èPŠÿÿƒÄûúéRÿÿÿ‰ö¸;J ’Àérÿÿÿ‹E‹…`â#¡Ìá#ÿDƒD¡Ìá#‰¹‹ƒ¬‹V ë‰ö‰Á‹A…Àt;P sò…Ét‰q됉³¬…Àt‰p‰F‰Nû¸eô[^_]ÍvU‰åWVS‹}‹E ‹ ½`â#ú‹X¸…Û„Ù‹;Ìá#uû¸#éčv‹Ìá#‹C ;„‘°s
+¸饡Ìá#‹´°‹‘¬…Òt‰ö‹;Ìá#u‹R…Òu︅Àuû¸ëk‰ö¸;r ’Àëåv‹ ½`â#¡Ìá#ÿDD¡Ìá#‰¾‹¬‹S 됉ƋF…Àt;P sò…öt‰^됉™¬…Àt‰X‰C‰sû¸[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„ï‹;Ìá#tû¸éڍvúè&!‹Ìá# [‰ÊÁâ)Êf‰Õ¨â#‹E‹…`â#‰EðÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt2‰ÆƒÆv‰Ù[‰ÐÁà)ЉÅðâ#‹œžDŽŽÿÿÿÿƒûÿuÖÇG‹O‹W…Éu +‹Eð‰¬ë‰ö‹G‰A…Òt‹G‰Bèã}ÿÿ¡Ìá#@‰ÂÁâ)ƒì ¿Õ¨â#Pèo èƇÿÿƒÄû¸eô[^_]ÐU‰åVSƒì hD7#èJ—ÿÿèْÿÿ‰ÃÇ$€è–ÿÿ‰Æ‰4`â#ƒÄ jhX7#Vèî1fÇFÌÆFÇFÇF,º"ÇF °º"ÇF$ܺ"ÇF( »"ÇF,T»"ÇF0€»"ÇF4Ø»"ÇF8è´"ÇF<p¶"ÇF@t·"ºƒÄ^N•ÇD@DŽ°ÿÿÿÿDŽÿÿÿÿBú™~Òdž¬eø[^]ÐU‰å‹U‹M ¸ÿÿÿÿ…Òt;‹‹…`â#ƒxu‹@%ÿÿÿ=Ìu…Ét ‹B‹@ ‰ë
+‰ö¸ÿÿÿÿ됸]ÐU‰å‹U‹M¸ÿÿÿÿ…Òt@‹‹…`â#ƒxu‹@%ÿÿÿ=Ìt¸ÿÿÿÿ됅Ét‹B‹@ ‰‹R‹E ‰B ¸]ÃU‰å‹E‹M ‹U‹…`â#‰”ˆ°]ÃU‰åWVSƒì‹E‹<…`â#hà6#è0»ƒÄwƒìÿtž@hÿ6#èó/ƒÄCû™~ãƒì h"7#èÚ/»ƒÄ‰öƒìÿ´Ÿ°h>7#è¼/ƒÄCû™~àeô[^_]ÃU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åS‹E‹U ‹]‹ …`â#Áâ‹C‰„°ÇD
+D‹$ÉÉöU‰åVS‹E‹u ‹…`â#ƒ|³DtƒìVj
+èD¶ÿÿƒÄë vÇD³DDŽ³°ÿÿÿÿeø[^]ÉöU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] jè3“ÿÿ‰ÂƒÄ¸ …Òt1ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‹@‰B ÇB‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìjÿsè4“ÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì$·]Shb7#è .‰Ø-yƒÀÁèƒÄ ·À‰Eè@ÛÁã¿ ½%ÿt8CP‰Eä·8Phi7#èá-ƒÄ ÿt;·D;Phw7#èÊ-ƒÄ ÿt; s·>Phˆ7#è±-ƒÄ ÿt>·D>Ph™7#èš-ƒÄ ‹Uä·D:P·DLPhª7#è~-‹UèÕƒÄ·ØSh»7#èc-EóPEòPEìPS蹃ĶUóR¶UòRÿuìPh8#è6-ƒÄ eô[^_]ÍvU‰åWVSƒì ‹E‹U‹]¹‹u ƒî‰ƒî‰º@&fƒ=@&yA¿Áfƒ<Byfù™~îfù™~ƒì hÐ7#èÎ,¸ƒÄé ¿Á<¹@&‰Úf Ê€f‰Ǎ<ÿÁçº ½%‰tÇD _ÇDfŒÙf‰LfÇfÇDÇD _ ‹M‰ ÇDÇDO0ÇDÇD Ǎ_@ÇÇD‰t‰t fŒÉf‰L fŒÙf‰LfŒÛOPf‰\fŒÛf‰fÇD 0fÇD0O`fÇfÇDfÇDÇŒ½%¾@A&¹üó¥Å˜eô[^_]ÐU‰åVS‹u ¿E-‰Â…ÀyP‰ÐÁø@ÀÁ๠½%f‰tX@Vf‰T f‰t ƒÀPf‰tf‰4[^]ÉöU‰å¿E-‰Â…ÀyP‰ÐÁøfDŽ@&]ÉöU‰åSƒì‹]¿E Phè7#Sè~3‰ØƒÄ‹]üÉÃU‰åVS趉Æès»‰öƒìhÆ"SèƒÄh¤¿"SèìƒÄCƒû~ۉðeø[^]ÉöU‰åƒìèaÉÍvU‰åSƒì‹]‹à]#€82uºð°îƒìShB9#èˆ*ƒÄÁ㋃à]#@PhC#èp*ƒÄÿ³$^#ènƒÄ‹]üÉÉöU‰åƒìÿuhY9#èE*èèûÇ$èG7ƒÄÉÉöU‰åWVSƒì‹E‹} ƒ=d»%„à…ÿ„Ø¡à±%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡ä±%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡ä±%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø‰Ó)øƒÞC÷o‰ÑÁù‹GÁø)Á‰È؉‹OÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰O‹éԉö]è¡à±%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+¡ä±%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡ä±%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø)‰Uè‹{¸ƒÞC÷ï‰ÑÁù‰øÁø)Á‰ÈEè‰ùÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰K‹E荀€€€€€‰ÃÁã‰È÷îÁúÁù)ʍéèvƒøuc¸ƒ=Ô±%…Ρر%€€€€€€‰ÃÁã‹ +ܱ%ºÓMb‰È÷êÁúÁù)ÊӅÿ„…¡Ø±%‰¡Ü±%éqvƒø…ç¶ı%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +б%f)Ù·É +à±%º×®¬]‰È÷êÁú‰ÈÁø)Âä±%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰È£à±%f‰б%…ÿ„̍€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡ä±%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡ä±%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø‰Ó)Ëw¸ƒÞC÷î‰ÑÁù‰ðÁø)Á‰È؉‰óÁú‰ÙÁù)ʍ’’’’’’Áâ‰Ø)Ѝ€€€Áà‰G‹à±%’’’4Õ¹Á6ۉð÷é‰Ó3‰ÁÁù
+‰ð™‰È)Ћ +ä±%ɍ‘ÑÁâ)ʉÑÁá)эÈ鍃ø…ƒ=Ô±%…rUè¡Ø±%‰¡Ü±%‰B»@¹C°Ò‰Êî‰Úì¶ÈìÁàf¶Ñ зð·`»%9Æv%hf9#j_hx9#h9#èm%Ç$èmƒÄ·`»%)ó¯ȱ%·`»%‰Ø‰Ñº÷ñ‰Ãº °
+îì©t‹ +ȱ%;ÍÌÌ̉ð÷âÁê9Ós‰Ëu荛€€‹V‰Eä‰F¸¡/¸D÷mä‰ÑÁù‹EäÁø)Á‰ÈEè‹N¸¡/¸D÷éÁú‰ÈÁø)’’’’’’’’’Áâ )щN¡Ø±%€€€€€€Áà‰Eä‹ +ܱ%ºÓMb‰È÷êÁúÁù)ʋEäÐÅÿt ‰ð‹‰‹@‰G‰Øëv¸eô[^_]ÍvU‰åVSƒìŠEˆE÷ÿŒ^#ƒ=Œ^#uƒ=h^#tÿh^#¶E÷€Áຌ°%ƒ<uIÇö€°%tûƒì ¶]÷›Áã¾€°%ÿ43ÿ“„°%ƒÄöDtú¶E÷€Ç…Œ°%ÿp^#ƒ=Œ^#uƒ=l^#tÿl^#ÿ +Œ^#eø[^]ÍvU‰åWVSº¿Œ°%¾ˆ°%»„°%¹€°%’ÁàÇ8‰0ÇÇBƒú~ÜÇŒ^#[^_]ÐU‰åVS‹U‹] ‹uú’ƒ<…Œ°%t÷Æu¸ÿÿÿÿëH’ …ǁŒ°%û…Ût‰™„°%º€°%ˆ°%‰‰t
+됍’Ç…Œ°%¸[^]ÐU‰å¡Œ^#]ÉöU‰åSƒì¶ı%ƒøt!ƒø…Àt ë.‰öƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +б%f)Ù·É +à±%º×®¬]‰È÷êÁú‰ÈÁø)Âä±%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰ +à±%f‰б%ÿŒ^#ƒ=Œ^#uƒ=h^#tÿh^#¡Ü±%‰Ã$Å#º¡/¸D‰Ø÷êÁú‰ÙÁù)Êر%’’’’’’’’’Á⠉Ø)Уܱ%‹À±%ë$‹¡Ì±%‰‰̱%‰À±%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;ر%;ر%uƋB;ܱ%~»ƒ=Œ^#uƒ=l^#tÿl^#ÿ +Œ^#‹]üÉÃU‰åWVSƒì‹uhtÔ"j@èØ +ƒÄƒ>t,ƒì h™9#èß »ÿÿƒÄ¿@¹C°8‰ÊîˆØ‰úîëaƒì hµ9#è³ ‹N‰ +ȱ%ɍA‰ÂÁâ‰Ñ)ÁºÓMb‰È÷âƒÄ‰ÑÁéu¹f‰ +`»%‰Ë¿@¹C°4‰Êî‰úˆØî‰ØfÁèî‹£Ô±%ƒ=ÄA&~»A¹C°p‰ÊÚîîÆı%ë%Æı%»B¹C°°‰ÊÚîîºa°îº!ì%þî¹¾²%»²%ƒùbIÁà²%‰0I‰LÃAƒùc~ßÇH»%Ç̱%²%Çh^#Çl^#¡È±%€€€Áà£$Å#Çܱ%Çر%Çà±%Çä±%fÇб%ƒ=Ô±%uǤá#dË"Ǩá#üË"ëÇ¤á#LÌ"Ǩá#ØÒ"eô[^_]ÃU‰å‹E£h^#]ÍvU‰å‹E£l^#]ÍvU‰å‹E£x^#]ÍvU‰åWVSƒì ‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=̱%tl‹ +̱%‹£Ì±%‹E‰A‹Eè‰A ‹Eì‰A‹E‰A»‹À±%}è‹uè됋…Òt‰ð;B  +;B u‹G;B~‰Óëâ‰ö…Ût‰ ë‰ +À±%‰‹AƒÄ [^_]ÐU‰å‹E¹‹À±%됉ы…Òt;Buó¸ÿÿÿÿ…Òt$…Éu
+‹£À±%됋‰¡Ì±%‰‰̱%¸]ÃU‰åWVSƒì,‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=̱%„q‹5̱%‹£Ì±%‹E‰F‹Eè‰F ‹Eì‰F‹E‰Fº‹À±%}è‹Mè됋…Ût‰È;C  +;C u‹G;C~‰Úëâ‰ö…Òt‰2鐉5À±%ƒ=d»%…ôƒìEàPjè3óÿÿ‹À±%ƒÄ‹Eà;B  +;B u‹Eä;B~ÇEÜÇEØëK}؋À±%Mà‹B;A|‹B +Eà‰E؉Ћ@+Aë ¡À±%‹@ +EàH‰EØ¡À±%‹@+Eäʚ;‰G‹E؍€€€€€€Áà‰EԋMÜ¿ÓMb‰È÷ïÁúÁù)ÊUԍҍB‰ÂÁâ)‰Ð÷çÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèFeô[^_]ÃU‰åWVSƒì¶ı%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹б%f)Ú·Ò‰Ö5à±%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +ä±%‰AÁà)ȍÁ‰ÁÁá ȉò)‰à±%f‰б%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡ä±%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡ä±%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰Cƒ=À±%„/Çd»%‹À±%‹Eè;B ;B …Œ‹C;BŽ€ƒ=Œ^#uƒ=h^#tÿh^#ÿŒ^#‹À±%ë#‹¡Ì±%‰‰̱%‰À±%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;Eè +;EèűB;Eì~ă=Œ^#uƒ=l^#tÿl^#ÿ +Œ^#¶ı%ƒøt"ƒø …Àt +ë/vƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹б%f)Ú·Ò‰Ö5à±%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +ä±%‰AÁà)ȍÁ‰ÁÁá ȉò)‰à±%f‰б%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡ä±%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡ä±%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰C‹À±%‹Mè;J 
+;J u;B~ÇEäÇEàëJ]à‹À±%Mè‹B;A|‹B +Eè‰Eà‰Ð‹@+Aë ¡À±%‹@ +EèH‰Eà¡À±%‹@+Eìʚ;‰C‹Eà€€€€€€‰ÆÁæ‹Mä»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèîÇd»%ë +‰öº@°î°ðîeô[^_]ÐU‰åVSƒì‹E»¹‹À±%ëv‰Ñ‹…Òt;Buó¸ÿÿÿÿ…Ò„I…Éu‹£À±%»ë‹‰¡Ì±%‰‰̱%ƒ=d»%…ƒ=À±%uº@°î°ðéû‰ö…Û„òƒìEðPjèºìÿÿ‹À±%ƒÄ‹Eð;B  +;B u‹Eô;B~ÇEìÇEèëJ]è‹À±%Mð‹B;A|‹B +Eð‰Eè‰Ð‹@+Aë ¡À±%‹@ +EðH‰Eè¡À±%‹@+Eôʚ;‰C‹E荀€€€€€‰ÆÁæ‹Mì»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèeø[^]Éöú‹D$¼(Õ#PèŒëÿÿ`fff f¨f¸0ŽØŽÀ° º î¡t^#@£t^#1ÛfŒÓü¡Ô±%ƒøtèùòÿÿëè6ùÿÿ°
+º îì¨t ¸@Pè–ÿÿÿf¡|^#f9‚^#t f£‚^#ÿ-~^#ƒ=x^#t‹x^#ÿÓf©f¡ffaωöU‰å‹EØf£‚^#f£|^#]Ã1ÀÈÃU‰åf¸0ŽØŽÀ‹Ef;‚^#t f£‚^#ÿ-~^#]ÉöU‰åƒìjjjj@èaƒÄÉÃU‰åWVSƒì ‹]‹u ‹}聉€:y"…Ût‹B8‰…öt‹BÁà
+‰…ÿt)‹B4‰ë"‰ö…ÛtÇ…öt‹BÁà
+‰…ÿtÇ@ƒ}t ‹BÁà
+‹U‰ƒÄ [^_]ÍvU‰åƒìjjjj@è̓Ä·@0ÉÃU‰å¡8\#]ÉöU‰å]ÍvU‰åSƒì‹8\#誃ì Sèucÿÿè ƒÄ‹]üÉÃU‰åWVS‹M ‹u‹}Š]‰ÈÁàeèÿÿ Eè‰ÈÁèUèˆBáÿbÿÿÿ J‰ðˆB‹Ef‰Eè‹EÁè‰EäŠEäƒà ÃË@¶ÃÁàbÿÿÿ Bçüÿ=*\#‹‰‹B‰G[^_]ÐU‰åWVSƒì ‹] ‹u‹}·EMè*\#‹‰‹@‰A‰Ê¶JÁá¶B ÁÁá·B Á…ÛtŠBƒà¶ÐÁâ·Eè Љ…ötŠE툅ÿt
+ŠEî%ðˆ‰ÈƒÄ [^_]ÉöU‰å‹E ¶UÁâ¹@_#fÇD
+8ƂE_#îƂD_#f‰
+Áèf‰D
+]ÍvU‰åº °îº!°@î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰åº °îº!°î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰å‹Mf…ÉtWfƒùw¸Óà
+ˆ^#ë7fƒùw<·Éƒé¸Óà
+‰^#¢‰^#º¡î<ÿu ˆ^#©uƒÈ¢ˆ^#º!î]ÃU‰å‹Mf…ÉtUfƒùw¸þÿÿÿÓÀ"ˆ^#ë5fƒùw:·Éƒé¸þÿÿÿÓÀ"‰^#¢‰^#º¡î ˆ^#©t%û¢ˆ^#º!î]ÉöU‰å¿|^#]ÃU‰åƒì‹Ef£|^#˜PèWüÿÿƒÄÉÐU‰å¿|^#]ÃU‰åƒì‹E‰Âf£|^#ƒ=Œ^#uƒì ¿ÂPèüÿÿƒÄÉÐU‰åWVì¾¹”^#ºÔ^#‰öµÇ”Ü"Ç”Ü"Fƒþ~åƒì EÈPèÅèºÇÀA&:#‹EÈ£ÄA&¶^#£ÈA&ƒÄ‹EУÐA&‹EÔ£ÔA&‹EØ£ØA&h=Þ"jè£ýÿÿƒÄhGÞ"jè”ýÿÿƒÄhQÞ"jè…ýÿÿƒÄhXÞ"jèvýÿÿƒÄh_Þ"jègýÿÿƒÄhfÞ"jèXýÿÿƒÄhmÞ"jèIýÿÿƒÄh³Þ"jè:ýÿÿƒÄhtÞ"jè+ýÿÿƒÄh{Þ"j èýÿÿƒÄh‚Þ"j
+è +ýÿÿƒÄh‰Þ"j èþüÿÿƒÄhÞ"j èïüÿÿƒÄh—Þ"j +èàüÿÿƒÄhžÞ"jèÑüÿÿƒÄh¥Þ"jèÂüÿÿƒÄh¬Þ"jè³üÿÿƒÄhlÝ"jAè¤üÿÿƒÄhtÝ"jBè•üÿÿƒÄh|Ý"jCè†üÿÿƒÄh„Ý"jDèwüÿÿƒÄhŒÝ"jEèhüÿÿƒÄh”Ý"jFèYüÿÿƒÄhœÝ"jGèJüÿÿƒÄh¤Ý"jpè;üÿÿƒÄh¬Ý"jqè,üÿÿƒÄh´Ý"jrèüÿÿƒÄh¼Ý"jsèüÿÿƒÄhÄÝ"jtèÿûÿÿƒÄhÌÝ"juèðûÿÿƒÄhÔÝ"jvèáûÿÿƒÄhÜÝ"jwèÒûÿÿf +4A&€¾ƒÄvÀÅ ½%ƒì jh‰hØPõ·ÀPèúÿÿƒÄ Fþš~ǃì hÐèFùÿÿƒÄÛãݵTÿÿÿ›¿@A&µTÿÿÿ¹üó¥ ÀƒÈ""ÀÛãèƒûÿÿèúÿÿeø^_]ÍvU‰åSƒìº!°ÿîè’ûÿÿ¹@ºC°6Êîîƒ=ÄA&~¹AºC°tî°‰Êî°ë»B¹C°°‰ÊÚîîºaî‹]üÉÃU‰å‹U‹E ‰•Ô^#]ÉöU‰å‹U‹E ‰•”^#]ÉöU‰åƒìhà9#è
+è— ƒÄÉÉöœX‰Á5PœX9ÈtQ¸Ã¸ÜX‰Á5 PœX1ÈtQ¸øÃf1Àžf¸f»öóŸ€üu¸øÃƐ^#Ûã¹âþfÇ’^#ZZÝ=’^#¹âþf¡’^#<u+Ù=’^#¹âþf¡’^#f%?fƒø?uƐ^#Ɛ^#Éö`¸ëp`¸ëh`¸ë``¸ëX`¸ëP`¸ëH`¸ë@`¸ë8`¸ ë0`¸
+ë(`¸ ë `¸ ë`¸ +ë`¸ë`¸ë ¨Pf¸0ŽÀŽØüX1ÛfŒÓP‹…”^#ÿÓ[° ƒûrº îº îf¡|^#f;‚^#t f£‚^#ÿ-~^#©¡aϸ鋸選ëz¸ës¸ël¸ëe¸ë^¸ëW¸ ëP¸
+ëI¸ ëB¸ ë;¸ +ë4¸ë-¸ë&¸ë` ¨f¸0ŽÀŽØüèש¡aÏPf¸0ŽØŽÀXfŒÓ‹=*\#ß1ۊŠ_Áãf‹_ÜfŒÒfŒÛŽÓSRPÿ…Ô^#ƒÄX[ŽÐ)ÜÏU‰åWVSƒì ‹u¸¹ ‰÷üó«è|ýÿÿ…ÀtÇëUèŠýÿÿ…Àt7ÇFǸ¢‰^‰N‰V …Àt+¸¢‰F‰^‰N‰V ëÇècýÿÿ…ÀtÇ ƒÄ [^_]ÍvU‰åWV¿_#È·À-yƒÀÁø9ÂtU¿_#@ÀÝ4Ō½%›È·À-yƒÀÁøf£_#¿5_#¿B&4v4ö4õŒ½%¹üó¥Ý%B&^_]ÉöU‰å¿_#]ÃU‰åWVSƒì(ŠM¡_#Áà ˜€ f¶nB&f£*Õ#f¶mB&f£,Õ#€ù t%€ù €ù„óé‰ö€ù
+„#é‰öfƒ*Õ#·*Õ#;pB&Œ½fÇ*Õ#·,Õ#¡tB&H9Â…¿¡pB&H‰Eì‰Uèf¾lB&Áâf‰Uò¡_#Áà °€ ¿;}è:¹;Mì*_ÿv‰ø¯pB&È·F‰Ø¯pB&Èf‰FA;Mì~ÜG;}è~ƹ;MìKWÿ‰Ð¯pB&Èf‹]òf‰FA;Mì~çé)‰öfÇ(Õ#·*Õ#‰Áƒø~ºƒÂ·ÂƒÀ9È|óf‰(Õ#f¡(Õ#f£*Õ#éævfÇ*Õ#·,Õ#¡tB&H9Â…¾¡pB&H‰Eà‰UÜf¾lB&Áâf‰Uæ¡_#Áà °€ ¿;}Ü=v¹;Mà*_ÿv‰ø¯pB&È·F‰Ø¯pB&Èf‰FA;Mà~ÜG;}Ü~ƹ;MàGWÿ‰Ð¯pB&Èf‹]æf‰FA;Mà~çé%‰öfÿ +*Õ#·*Õ#·,Õ#¯pB&ÂÆS fÿ*Õ#éõ‰ö·*Õ#·,Õ#¯pB&Ј Cfÿ*Õ#·*Õ#;pB&Ž¿fÇ*Õ#·,Õ#¡tB&H9Â…š¡pB&H‰EԉUÐf¾lB&Áâf‰UÚ¡_#Áà °€ ¿;}Ð=v¹;MÔ*_ÿv‰ø¯pB&È·F‰Ø¯pB&Èf‰FA;MÔ~ÜG;}Ð~ƹ;MÔ'Wÿ‰Ð¯pB&Èf‹]Úf‰FA;MÔ~çëfÿ,Õ#·5*Õ#·=,Õ#‰øf¯pB&f‰EΡ_#Áà fEÎfuλÔ°‰Úî¹Õ‰ÊŠEÎî°‰Úîf‹EÎfÁè‰Êî‰óˆnB&‰ø¢mB&ƒÄ([^_]ÐU‰åWVSƒì‹u‹} ‰øf¯pB&f‰Eò¡_#Áà fEòfuò»Ô°‰Úî¹Õ‰ÊŠEòî°‰Úîf‹EòfÁè‰Êî‰ð¢nB&‰úˆmB&ƒÄ[^_]ÍvU‰åS¹Ô°
+‰Êî»Õ‰ÚŠEî° ‰Êî‰ÚŠE î‹$ÉÍvU‰åWVSƒìf¾EÁàf‰Eò¡_#Áà ¸€ ‹]ë0‹M ;M(sÿ‰Ø¯pB&È·G‰ð¯pB&Èf‰GA;M~ÜC;]~ʋM ;MSÿv‰Ð¯pB&Èf‹]òf‰GA;M~çƒÄ[^_]ÍvU‰åWVSƒì ¡pB&H‰Eð‹tB&K‰]ìf¾lB&Áàf‰Eê¡_#Áà °€ ¿9ß<‰ö¹;Mð*_ÿv‰ø¯pB&È·F‰Ø¯pB&Èf‰FA;Mð~ÜG;}ì~ƹ;MðWÿ‰Ð¯pB&Èf‹]êf‰FA;Mð~çƒÄ [^_]ÍvU‰å·J‰pB&¶„@£tB&¶„ÿ ¢lB&¶P¢nB&¶Q¢mB&¶`¢/Õ#¶a¢.Õ#Ç_#Ç_#]ÃU‰åWVSƒì nB&¢P mB&¢Q¶ÀP¶nB&PèŠýÿÿ¶.Õ#¶5/Õ#ƒÄ¹Ô°
+‰Êî¿Õ‰úˆØî° ‰Êî‰ú‰ðîeô[^_]ÍvU‰åSƒì‹]€;tŠCƒì ¾ÀPèiùÿÿƒÄ€;ué‹]üÉÃU‰åVS‹E‰ÃÁã £_#¹Ô° +‰Êî¾Õ‰òˆØî° ‰Êî‰ØfÁè‰òî[^]ÃU‰åVS‹u‹_#Áâ»@Õ#¶nB&‰¹`Õ#¶mB&‰
+µŠ¢nB&Š
+¢mB&‰5_#[^]ÃU‰å¡_#]ÉöU‰å¡_#]ÉöU‰åWVSƒì ‹}f¾u Áæf¾E Ƌ]‹E9Ã3v‹M9ù#‰Ê¯pB&¡_#Áà ÐØf‰´€ A9ù~ÞC;]~ЃìÿuÿuèüÿÿŠE¢mB&ŠE¢nB&ƒÄeô[^_]ÍvU‰åWVSƒì ¡pB&H‰Eð‹=tB&Of¾lB&ÁãƒË ¾9Æ4¹9ù%v‰Ê¯pB&¡_#Áà Ððf‰œ€ A9ù~ÞF;uð~̃ìjjèûÿÿÆmB&ÆnB&ƒÄeô[^_]ÍvU‰åS‹U ‹]‹M¯pB&¡_#Áà ÂU”€ ˆ
+ˆZ‹$ÉÉöU‰åS‹E ‹]‹M‰Â¯pB&¡_#Áà ÂU”€ ¶B…Étˆ¶‰Â…Ûtˆ¾Â‹$ÉÐU‰åS‹E ‹MŠ]‰Â¯pB&¡_#Áà ÂU”€ €9tŠˆABˆB€9uò‹$ÉÐU‰åƒìh:#èTýÿÿôƒÄÉÉöU‰åƒìjèƒÄÉÉöU‰åƒìh4èƒÄÉÍvU‰åVS‹Ef£r¹d»þ¾v‰Êì©t Fþÿÿ~í¸@=Ÿ†~ø‰ÚˆÈö@=Ÿ†~øë‰öU‰åSƒìE Pÿuh€Õ#èX‰ÃÇ$€Õ#è¢üÿÿ‰ØƒÄ‹]üÉÃU‰åWVSìð‹} ŠEˆ…ÿÿÿEPÿuÿÿÿSè‰ÆS¾…ÿÿÿPWÿuè±þÿÿ‰ðƒÄ eô[^_]ÃU‰åSƒìE Pÿuh€×#謉ÃÇ$€×#è&üÿÿ‰ØƒÄ‹]üÉÃU‰åS‹M‹U ‰Ë€:tvŠˆBA€:uõƉ؋$ÉÍvU‰åVS‹]‹U ‹M‰Þë‰öŠˆBC€:t‰ÈI…ÀîƉð[^]ÐU‰å‹U‹M ë +¸€:tBAŠ:t)Ð]ÃU‰åS‹U‹] ‹M…Éëv¶¶Sÿ)Ð됊C8uíŠB„ÀtIu︋$ÉÐU‰å‹U¸€:tB@€:uù]ÍvU‰åS‹E‹] €8t‰Ú€:tŠv:
+tB€:uö@€8u下$ÉÉöU‰å‹E‹U €8t ‰ö8t @€8uö¸]ÍvU‰åS‹]‰Ú€;t‰öŠ
+AŸ<wAàˆB€:uì‰Ø‹$ÉÐU‰åS‹]‰Ú€;t‰öŠ
+A¿<wA ˆB€:uì‰Ø‹$ÉÐU‰åS‹U‹M ‰Ó€;tvB€:uú늈AB€9uõƉ؋$ÉÍvU‰åWVSƒì<‹u‹]ÇEèÇEäÇEàÇEÜÇEØÇEÔÇEпÇEÌÙîÝ]À‰uì‹E €8„D‹U €:%t…ÿuŠˆB‰U FÿEèév‹E €8%u%@‰E ¿ÇEä
+ÇEàÇEØÇE̋U ¾ƒè%ƒøS‡Ñÿ$…€)#‰öÆ%FÿEè鼃ÉòFŠCüˆÿEè驐ƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÔë +vƒÃ¿Sü‰Uԃì ÿuÌÿuäj
+VÿuÔè¾ éœƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäj
+VÿuÐè.éPƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäjVÿuÐèâ鐃ËCü‰EЃì jÿuäjVPèÂé䐃ËSü€:tŠˆBFÿE܀:uò‹UÜUèévƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèYë~vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀè} +ë>vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèa‰EÜEèÆ¿ƒÄ é±ÇEØé¥ÇEØ陃MÌ鐍vƒMÌ鄍v¿ƒMÌëvƒÿu?ƒìEìPj
+ÿu èb
+‰EäƒÄ‹E €80u ÷EÌtƒMÌ됃MÌ‹UìJ‰U ë4vƒÿu,ƒìEìPj
+ÿu è
+‰Eà‹EìH‰E ¿ƒÄë‰ö¿ÿE ‹U €:…¼üÿÿÆ‹Eèeô[^_]ÉöU‰åƒì EPÿu ÿuè7üÿÿƒÄÉÉöU‰åWVSƒì,‹u‹} ‹]ÇEìÇEèÇEäÇEàÇEÜÇEØÇEÔÇEЉuð€?„>€?%tƒ}Ôu ŠˆGFÿEìëá€?%uGÇEÔÇEè
+ÇEàÇEоƒè%ƒøS‡çÿ$…Ð*#Æ%FÿEìéԃÉòFŠCüˆÿEìéÁƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ¿Cü‰E܃ì ÿuÐÿuèj
+VÿuÜè鏐ƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèj
+ëBƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèjVÿuØè6‰EäEìÆÇEÔƒÄ éҍvƒÃ‹Sü€:tŠˆBFÿEä€:uò‹EäEì飍vÇEàé›ÇEà鏃MÐ醍vƒMÐë}‰öÇEÔƒMÐënvƒ}Ôu6ƒìEðPj
+W蓉EèƒÄ€?0u ÷EÐtƒMÐ됃MЋ}ðOë1‰öƒ}Ôu)ƒìEðPj
+WèW‹}ðOÇEÔƒÄë
+vÇEÔGé¼ýÿÿvÆ‹Eìeô[^_]ÉöU‰åƒì EPÿu ÿuèGýÿÿƒÄÉÉöU‰åWVSƒì,‹}‹uÇEèÇEäÇEàÇEÜÇEØ»‰}ì饐‹U €:%t…Ûu B‰U 鏍v‹E €8%u%@‰E »ÇEäÇEàÇEÜÇE؋U ¾ƒè*ƒøN‡Eÿ$… ,#‰öƒû…8ƒìEìPj
+ÿu èN‰E܃MØ‹EìH‰E ƒÄéŠGƒÆ‹^üˆëÝØÿEèéõƒÆ‹^üëG€?tƒì ¾PèBƒÄ…ÀuçÇEÔë#‰ö÷EØuŠˆCë‹UÜ9UÔ}ŠˆCÿEÔG€?tƒì ¾PèþƒÄ…ÀtÇÆ덉öƒìh(:#Wè&÷ÿÿ‰ÇƒÄ EìPj
+WèՉ‹}ìƒÄƒ}à…Wƒ}ät)ƒ}ä ƒ}ätéCÿÿÿƒ}ä…9ÿÿÿƒÆ‹Fü‰é,ÿÿÿƒÆ‹Füf‰éÿÿÿ‰öƒìh5:#Wè¶öÿÿ‰ÇƒÄ EìPj
+됃ìh@:#Wèšöÿÿ‰ÇƒÄ EìPjWè ‹}ìƒÄƒ}à…̓}ät+ƒ}ä +ƒ}äté¹þÿÿ‰öƒ}ä…­þÿÿƒÆ‹Vü‰é þÿÿƒÆ‹Vüf‰é‘þÿÿ‰öƒìhX:#Wè*öÿÿ‰ÇƒÄEìPWè;‹}ìƒÄƒ}àu`ƒ}ät)ƒ}ä ƒ}ätéMþÿÿƒ}ä…CþÿÿƒÆ‹FüÝé8þÿÿƒÆ‹FüÙé*þÿÿvÇEäë vÇEäëvÇEàëÝؐ»ÿE ‹E €8…Pýÿÿ‹Eèeô[^_]ÐU‰åƒì EPÿu ÿuèïüÿÿƒÄÉÉöU‰åWVSƒì,‹u ÇEп‹Eƒð‰EԋU‰U̅Òy‰Ñ÷ىM̃}y ‹E…Ày÷Ø됋E÷EÔu ƒ}yƒ}yGƒ}u‹EÐÆD(Ø0@‰EÐë8v…Àt1U؉Uȉöƒì º÷ủÃRèI‹MȋUЈ
+B‰UЉ؃Ä…Àu×}ЋEԃàƒøu‰ú;}} +‰öÆ FGB;U|õƒ}y ƒ}yÆ-ë ÷EÔtÆ+F‹Eԃàƒøu‰ú;}} Æ0FGB;U|õ‹UÐJx M؊
+ˆFJy÷‹Eԃàƒøu‰ú;}} Æ FGB;U|õƉøeô[^_]ÃU‰åƒì‹Eÿuÿu÷ØPÿu ÿuèŸþÿÿƒÄ ÉÉöU‰å‹E…Ày÷Ø]ÉöU‰åSƒì‹]èÁîÿÿƒì SèE ÿÿU‰åWVSƒì‹M‹} ÙîÙÀÙ軀9-u ¾ÿÿÿÿë
+‰ö¾ëA€90túŠƒè0< w(Ý`-#ëÙˍv¾ƒè0AÜËÙËPÚ$XŠƒè0< vâÝۀ9.u9AŠƒè0< w/Ý`-#ëÙÉÙʉö¾ƒè0AÜÊÙÊPÚ$ÙÉXØʊƒè0< vÝÝÚÙÉÞùÞÁVÚ $^€9et €9E…“A€9-u
+¾ÿÿÿÿAë‰ö€9+u ¾Aëv¾Šƒè0< weÝ`-#¾ƒê0A·ÃÙÀPÚ $Ù}ð‹]ðÆEñ Ùmð‰]ðÛ]ìÙmð‹Eì·À‰$Û$‰$Ú$ZÙ}ð‹UðÆEñ Ùmð‰UðÛ]ìÙmð‹Eì‰ÃŠƒè0< v£Ý؅ö~!ºf…Ût4Ý`-#·Ã‰öÜÉB9Â|ùëvº·Ã‰Ã9Â}Ý`-#ÜùB9Ú|ùÝ؅ÿt‰ƒÄ[^_]ÐU‰åWVSƒì ‹]‹} ÇE쾀;-u ÇEðÿÿÿÿCë‰ö€;+u ÇEðCëÇEð€;0u>C€;0túë6ƒì ¾PCè‰ÂƒÄ9ú…Òy
+¸ëEv‰ð¯÷Ö9ð~ÇEìƒìW¾P聃ąÀu¶ƒ}t‹E‰ƒ}ìt¾ÿÿÿ¯uð‰ðeô[^_]ÉöU‰åWVSƒì ‹]‹} ÇEð¾€;0uC€;0tú€;xuKƒÿuFC€;0u@‰öC€;0túë6ƒì ¾PCè_‰ÂƒÄ9ú…Òy
+¸ëAv‰ð¯÷Ö9ðvÇEðƒìW¾PèуÄ…Àu¶ƒ}t‹E‰ƒ}ðt¾ÿÿÿ‰ðeô[^_]ÉöU‰åŠUBÐ< w ¾Âƒè0ë&vB¿<w ¾Âƒè7됍BŸ<w ¾ÂƒèW됾Â]ÍvU‰å‹Uƒú w B0¾À됍BöƒøwB7¾Àë¾Â]ÍvU‰åŠUƒê0¸€ú –À]ÉöU‰åŠUBÐ<vBŸ<w¸ë¸]ÐU‰åŠU€ú/~‹E  _#:Pÿ¸ë¸]ÐU‰åŠUBŸ<w Bà¾Àëv¾Â]ÍvU‰åŠUB¿<w B ¾Àëv¾Â]ÍvU‰åVS¾ƒì ¾]Sè%ƒÄ…Àuƒì Sè5ÿÿÿƒÄ…Àt¾‰ðeø[^]ÃU‰åŠUƒêA¸€ú9–À]ÉöU‰å¸€}/žÀ]ÍvU‰åŠUƒêa¸€ú–À]ÉöU‰åŠUB÷<v
+¸€ú u¸]ÉöU‰åŠUƒêA¸€ú–À]ÉöU‰åWVSƒì ÝEÝUè‹]‹}ÇEäSd$øÝ$èoƒÄ…Àtƒì Sè·îÿÿƒÄéPvÙîÝEèÚéßà€äE€üu Æ-C€uï€ë÷EtÆ+CÿEäÝh-#ÝEèÚéßà€äE€üuÆ0ÆC¸éû‰öÙèÝEèÝáßà€äE€üu3¾Ýéßà€äE€üuHÝx:#ÝEèØÉÝUèNÝêßà€äE€ütëÝØë)vÝØÝؾÝx:#ÝEèë ÝEèØñÝUèFÝéßàöÄtîÝ؃ì Vè÷ùÿÿƒÄƒøc~ƒïë‰öƒø ~ƒïë‰ö…ö~Oƒì‹EƒÈPÿuWSÿuìÿuèèUEäƒÄ …öu‹Eäë;‰ö]äÆeCƒì jºgfff‰ð÷êÁú‰ðÁø)ƒÂRj
+SVè\ùÿÿ‹UäD‰EäƒÄ eô[^_]ÍvU‰åWVSìŒÝEݝþÿÿ‹]Dž€þÿÿ½¸þÿÿ¹K¸üó«ƒìSÿµ”þÿÿÿµþÿÿ貃ąÀtƒì SèúìÿÿƒÄé‰öÙî݅þÿÿÚéßà€äE€üuÆ-C€µ—þÿÿ€ëv÷Et
+Æ+Cÿ…€þÿÿƒì…˜þÿÿPÿµ”þÿÿÿµþÿÿèþݝpþÿÿ‹…pþÿÿ‹•tþÿÿ‰Æ‰×DžŒþÿÿƒÄ݅˜þÿÿÙèÙÉÝáßàöÄ…ø重vh$@jÿµœþÿÿÿµ˜þÿÿè$݅˜þÿÿÜ5p-#ݝ˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿß½¨þÿÿÙ­´þÿÿ‹…¨þÿÿ‰$èûÿÿ‹•Œþÿÿˆ„*¸þÿÿB‰•ŒþÿÿƒÄ݅˜þÿÿÙèÙÉÚéßàöÄ„oÿÿÿ‹•Œþÿÿ•€þÿÿ‰ÑI…¸þÿÿ‰…|þÿÿë‰ö‹•|þÿÿŠˆCI‹•Œþÿÿƒê‰ÐÁèH!Â9Ñ}ޅÉx‹Œþÿÿƒéx
+vÆ0CIyùÆëÝØÝØÆ0Cÿ…€þÿÿÝ€:#‰µpþÿÿ‰½tþÿÿ݅pþÿÿÚéßàöÄE…\‹E@9…€þÿÿLÆ.Cÿ…€þÿÿ‹Eƒà‰…ˆþÿÿDž„þÿÿDžŒþÿÿv‰µpþÿÿ‰½tþÿÿ݅pþÿÿ܈:#Ü +p-#ݝpþÿÿ‹µpþÿÿ‹½tþÿÿƒì…˜þÿÿPWVèݝpþÿÿ‹•pþÿÿ‹tþÿÿ‰Ö‰Ï݅˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿ۝¤þÿÿÙ­´þÿÿ‹…¤þÿÿƒÄ…Àtƒ½ˆþÿÿu
+Džˆþÿÿƒì PèÓùÿÿˆCÿ…€þÿÿÿ…ŒþÿÿƒÄƒ½ˆþÿÿt‹E9…Œþÿÿ~
+Dž„þÿÿ‹•€þÿÿ9U}
+Dž„þÿÿƒ½„þÿÿ„ýþÿÿKë
+‰öÿ€þÿÿ‰Ã€;0u Cÿ€{ÿ.uêCÆ‹…€þÿÿeô[^_]ÃU‰åWVSƒì‹]‹u ‹}WVSèZƒÄ…Àtƒì Wè¢éÿÿƒÄéñ‰öÙî‰]è‰uìÝEèÝáßàÝـäE€üuÙàëvÝ؉]è‰uìÝEèÝx-#ÙÉÝáßàÝـäE€üuÝØÆ0ÆG¸雺ÙèÙÉÝáßà€äE€üu/Ýáßà€äE€üu?Ýx:#ëÙɐÜÉÙÉJÝâßà€äE€ütìÝØëvÝÙÝx:#ë‰öØñÙÉBÙÉÝáßàöÄtðÝØÝ؍BƒøvƒìÿuÿuÿuWVSèÔùÿÿë‰öƒìÿuÿuÿuWVSèXûÿÿƒÄ eô[^_]ÐU‰åƒìSÙ}ü›f‹Eüf +? f‰EøÙmø›ÝEÙüÝ]ð›‹Uð‹Mô‹]‰‰KÝEÜeðeì›ÛâÙmü›[ÉÍvU‰åƒì‹E‹U ‰Eø‰Uü‹MUøf‹BfÁè%ÿ=ÿt¸ëk÷Bÿÿuƒ:t…Étƒìh:#QèDçÿÿƒÄ¸ë@‰ö€zy…Étƒìh”:#Qè çÿÿƒÄ¸ë‰ö…Étƒìh™:#QèçÿÿƒÄ¸ÉÃU‰åƒì¸€Ù#ƒ=,_#tÿ,_#ÉÃU‰å‹E£,_#]ÍvU‰åƒì‹E‹U ‰Eø‰UüUø¹f‹BfÁè%ÿ=ÿu÷Bÿÿuƒ}øt¹‰ÈÉÉöU‰åSƒì‹E ‹]ÆPè‰âÿÿ‰ØƒÄ‹]üÉÍvU‰åVSƒì ÝEÝUð‹]‹uVSd$øÝ$èvÝ]èƒÄƒ=0_#ÿtWƒìVSèYÿÿÿƒÄ…ÀuFƒìÿuôÿuðèDÿÿÿƒÄ…Àu1Ùî‰]à‰uäÝEàÚéßà€äE€ô@uƒì jVSÿuôÿuðè8ƒÄ ëvÝEèeø[^]ÉöÝD$ ÝD$Ùø›ßàžzøÝÙͶ¼'U‰åVSƒì0ÝE‹]‹u‹EÝUà‰]è‰uìPÿú‡Èÿ$•-#ÝØÇEغž:#ƒøc~º£:#‰UÜÇEðÇEôƒ=0_#„}ƒì EØP誃ąÀ…uƒ=0_#…Yƒìjh©:#éëvÝØÇEغ½:#ƒøc~ºÂ:#‰UÜÇEðÇEôƒ=0_#„ƒì EØPè>ƒÄ…À… ƒ=0_#…íƒìjhÈ:#év‰]à‰uäÝ]èÇEغÜ:#ƒøc~ºâ:#‰UÜÇEðÇEôƒ=0_#„žƒì EØPè˃ąÀ…–ƒ=0_#…zƒìjhé:#é ÝØÇEغþ:#ƒøc~º;#‰U܃=0_#uÇEðàÇEôÿÿïGé¸ +¡$_#‹(_#‰Eð‰Uôé¡ +‰öÝØÇEغ’<#ƒøc~º˜<#‰U܃=0_#uÇEðàÇEôÿÿïGéh +¡$_#‹(_#‰Eð‰UôéQ +‰öÝØÇEغ ;#ƒøc~º;#‰U܃=0_#uÇEðàÇEôÿÿïGé +¡$_#‹(_#‰Eð‰Uôé +‰öÝØÇEغ ;#ƒøc~º;#‰UÜÇEðÇEôéÑ ‰öÝØÇEغ—5#ƒøc~º;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„óƒì EØPè ƒÄ…À…ëƒ=0_#…σìjh;#éaÝØÇEغ—5#ƒøc~º;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„gƒì EØP蔃ąÀ…_ƒ=0_#…Cƒìjh;#éÕ +ÝØÇEغX5#ƒøc~º*;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„Û +ƒì EØPèƒÄ…À…Ó +ƒ=0_#…· +ƒìjh.;#éI +ÝØÇEغX5#ƒøc~º*;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„O +ƒì EØPè| +ƒÄ…À…G +ƒ=0_#…+ +ƒìjh.;#é½ ÝØÇEغ@;#ƒøc~ºC;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„à ƒì EØPèð ƒÄ…À…» ƒ=0_#…Ÿ ƒìjhG;#é1 ÝØÇEغ@;#ƒøc~ºC;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„7 ƒì EØPèd ƒÄ…À…/ ƒ=0_#… ƒìjhG;#é¥ ÝØÇEغY;#ƒøc~º`;#‰U܃=0_#uÇEðàÇEôÿÿïGéP ¡$_#‹(_#‰Eð‰Uôé9 ‰öÝØÇEغY;#ƒøc~º`;#‰U܃=0_#uÇEðàÇEôÿÿïGë¡$_#‹(_#‰Eð‰Uôƒ=0_#„a ƒì EØPèŽ ƒÄ…À…Y ƒ=0_#…= ƒìjhh;#éÏ
+vÝØÇEغ|;#ƒøc~º€;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„å ƒì EØPè ƒÄ…À…Ë
+ƒ=0_#…¯
+ƒìjh…;#éA
+ÝØÇEغ|;#ƒøc~º€;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„G
+ƒì EØPèt
+ƒÄ…À…?
+ƒ=0_#…#
+ƒìjh–;#éµ ÝØÇEغ©;#ƒøc~º¯;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„Íƒì EØPèè ƒÄ…À…³ ƒ=0_#…— ƒìjh¶;#é) ÝØÇEغ©;#ƒøc~º¯;#‰U܃=0_#uÇEðàÇEôÿÿïÇë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„/ ƒì EØPè\ ƒÄ…À…' ƒ=0_#… ƒìjhÉ;#靐ÝØÇEغÞ;#ƒøc~ºâ;#‰UÜÇEðÇEôƒ=0_#… ƒì EØPèòƒÄ…À…½ƒìjhç;#jèÚõÿÿèaõÿÿÇ!ƒÄ降vÇEغÞ;#ƒøc~ºâ;#‰U܃=0_#uvÇEðàÇEôÿÿïG‰]ЉuÔÝEÐÜ +H=#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…¯ƒìVSèjƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„‡ÇEðàÇEôÿÿïÇét¡$_#‹(_#‰Eð‰Uô‰]ЉuÔÝEÐÜ +H=#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…6ƒìVSèñƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„¡$_#‹(_#ò€‰Eð‰UôéòvÝØÇEغÞ;#ƒøc~ºâ;#‰UÜÇEðÇEôéÁ‰öÝØÇEغÞ;#ƒøc~ºâ;#‰U܃=0_#uÇEðÇEôë¡$_#‹(_#ò€‰Eð‰Uôƒ=0_#„ãƒì EØPèƒÄ…À…Ûƒ=0_#…¿ƒìjhÿ;#éQÝØÇEغÞ;#ƒøc~ºâ;#‰U܃=0_#uÇEðÇEôëÇEðÇEôøƒ=0_#„`ƒì EØP荃ąÀ…Xƒ=0_#…<ƒìj h =#éΉöÇEغ<#ƒøc~º<#‰U܃=0_#u6ÙîÙÉÚéßàöÄEuÇEðàÇEôÿÿïGém‰öÇEðàÇEôÿÿïÇéX‹ +$_#‹(_#‰Mð‰]ôÙîÙÉÚéßàöÄE„4‰È‰Úò€‰Eð‰UôéÝØÇEغ$<#ƒøc~º)<#‰U܃=0_#uÇEðÇEôëÇEðÇEôøƒ=0_#„Lƒì EØPèyƒÄ…À…Dƒ=0_#…(ƒìjh/<#麉öÇEغC<#ƒøc~ºH<#‰U܃=0_#uÝ]ðëÝØÇEðÇEôøƒ=0_#„Òƒì EØPèÿƒÄ…À…ʃ=0_#…®ƒìjhN<#é@ÝØÇEغc<#ƒøc~ºm<#‰UÜÇEðÇEôøƒ=0_#„iƒì EØP薃ąÀ…aƒ=0_#…Eƒìjhx<#é׍vÝØÇEغ‘<#ƒøc~º—<#‰UÜÇEðÇEôøƒ=0_#„ýƒì EØPè*ƒÄ…À…õƒ=0_#…Ùƒìjhž<#ékvÝØÇEغ³<#ƒøc~º¹<#‰UÜÇEðÇEôøƒ=0_#„‘ƒì EØP较ąÀ…‰ƒ=0_#…mƒìjhÀ<#éÿvÇEغ³<#ƒøc~º¹<#‰UÜÜ5P=#Ý]ðƒ=0_#„,ƒì EØPèYƒÄ…À…$ƒ=0_#…ƒìjhÕ<#隉öÇEغè<#ƒøc~ºî<#‰U܋ +$_#‹(_#‰Mð‰]ôÙîÙÉÚéßàöÄEtC‰È‰Úò€‰Eð‰Uôë1‰öÇEغè<#ƒøc~ºî<#‰U܍d$øÝ$jjè›Ý]ðƒÄƒ=0_#…jé|vÝØÇEغõ<#ƒøcŽ•ºø<#鋍vÝØÇEغ—5#ƒøc~uº;#ën‰öÝØÇEغ =#ƒøc~Yº=#ëR‰öÝØÇEغX5#ƒøc~=º*;#ë6‰öÝØÇEغ=#ƒøc~!º=#ë‰öÝØÇEغ@;#ƒøc~ºC;#‰UÜÇEðÇEôƒ=0_#„¯ƒì EØPèʃąÀ…•ƒ=0_#…‹ƒìjÿuÜjè§îÿÿƒÄ jhü<#jè–îÿÿƒÄëfÝØÇEغZ;#ƒøc~ºa;#‰U܃=0_#uÇEðàÇEôÿÿïGë¡$_#‹(_#‰Eð‰Uôƒ=0_#tƒì EØPè2ƒÄ…À…ýè²íÿÿÇ"éívÝØÇEغZ;#ƒøc~ºa;#‰U܃=0_#uÇEðàÇEôÿÿïGë¡$_#‹(_#‰Eð‰Uôƒ=0_#„‰ƒì EØP趃Ä…À…ƒ=0_#uiƒìjhi;#jè•íÿÿƒÄëSÇEغÞ;#ƒøc~ºâ;#‰UÜÝ]ðƒ=0_#ÿt ƒ=0_#uÇEðÇEôð?ë$‰öƒì EØPè@ƒÄ…ÀuèÄìÿÿÇ!ëÝØÝEðeø[^]ËT$â€‹D$%ÿÿÿ ЉD$ÝD$ÉöU‰å¸]ÉöÝD$ÙüÉö¼'U‰åWVSƒì ‹E ‰EðEƒEðƒeðøƒàø‰Eì‹Eð9EìsƒìjUhX=#hb=#è˜ ƒÄ‹Eð9Eì„Ä‹E‹…Û„·‹C;C rƒìj`hX=#hm=#è` ƒÄöCtƒìjahX=#h =#èC ƒÄöC tƒìjbhX=#hà=#è& ƒÄ‹Eì;CvL‹Eð;C sD‰Æ‹}ì;ss‹s;{ v‹{ 9÷wƒìjnhX=#h=#èæ ƒÄƒì‰ø)ðPVÿu蚃ċ…Û…Iÿÿÿeô[^_]ÐU‰åWVSƒì ‹u ‹E‹}‰ÂUƒÀƒàøƒâø9†ŒÇF‰F‰V ‹E‰F‰~ÇF‹MëF‰ö9óuƒìjlh>#h>#èX ƒÄ‹F ;Cv‹F;C sƒìjmh>#h@>#è1 ƒÄ‰Ù‹…Ût9{±9{u‹S +S‹F +F9Âwœ‰‰1eô[^_]ÃU‰åWVSƒì ‹]‹} …ÛuƒìjLhm>#hu>#èÙ
+ƒÄ…ÿuƒìjMhm>#h~>#è¾
+ƒÄƒÇƒçø‹3…ö„rvƒ~uƒ~t‹F;FsƒìjUhm>#hÀ>#è€
+ƒÄƒ~t‹F;F rƒìjUhm>#h ?#è[
+ƒÄ‹F +F9FvƒìjUhm>#h`?#è9
+ƒÄ‹F÷ЅE…åF‰Eð‹^…Û„ԍv÷Ãtƒìj^hm>#h ?#èø ƒÄöCtƒìj_hm>#hà?#èÛ ƒÄƒ;t9wƒìj`hm>#h @#è» ƒÄ;^ rƒìjahm>#h–>#èŸ ƒÄ9{rGv‹‰‹C)ø‰B‹Eð‰ë
+v‹‹Uð‰9~sƒìjwhm>#h­>#è\ ƒÄ)~‰Øë‰ö‰]ð‹…Û…/ÿÿÿ‹6…ö…‘þÿÿ¸eô[^_]ÃU‰åƒì jÿjÿuÿuÿuÿu ÿuèƒÄ ÉÐU‰åWVSƒì‹]‹EE ‰Eð…ÛuƒìjThI@#hu>#èۃă} uƒìjUhI@#h~>#较ċ;…ÿ„lƒuƒt‹G;Gsƒìj[hI@#hÀ>#舃ăt‹G;G rƒìj[hI@#h ?#ècƒÄ‹G +G9Gvƒìj[hI@#h`?#èAƒÄ‹G÷ЅE…á‹Uð9WƒÕ‹M9O †ÉG‰Eì‹_…Û„¸v÷ÃtƒìjkhI@#h ?#èèƒÄöCtƒìjlhI@#hà?#è˃ă;t9wƒìjmhI@#h @#諃Ä;_ rƒìjnhI@#h–>#菃ċU 9S‚$‰Þ;]s‹u¹;M}ºÓâ‹E1ð…ÂtÖA;M|è‰ð)ØE ;C‡è‹M 1;Eð‡æ‰ðƒàø‰Eè9Øsƒìh‘hI@#hT@#èƒÄ9]èvC‹Uè)ډUä÷Âtƒìh–hI@#h€@#èãƒÄ‹‹M艋C+Eä‰A‹Eä‰C‰]ì‰ðƒà‹U Tƒâø‰U ‹Mè9Qv‰ÊU ‹‰‹A+E ‰B‹Eì‰ë
+‹Uè‹‹M쉋E 9Gsƒìh´hI@#h­>#èkƒÄ‹U )W‰ðë‰ö‰]ì‹…Û…Kþÿÿ‹?…ÿ…•ýÿÿ¸eô[^_]ÃU‰åƒì jÿjjj ÿu hÿuèýÿÿƒÄ ÉÐU‰åWVSƒì‹]Sh²@#èaÌÿÿ‹3ƒÄ…ö„ƒìÿvÿvÿv‹F +FPÿv ÿvh@A#è1ÌÿÿƒÄ ƒ~uƒ~t‹F;FsƒìjahÄ@#hÀ>#袃ă~t‹F;F rƒìjahÄ@#h ?#è}ƒÄ‹F +F9FvƒìjahÄ@#h`?#è[ƒÄ¿‹^…Û„¾ƒì ÿ3ÿs‰ØCPSh€A#è“ËÿÿƒÄ ÷ÃtƒìjihÄ@#h ?#èƒÄöCtƒìjjhÄ@#hÀA#èóƒÄƒ{wƒìjkhÄ@#hË@#èփă;t9wƒìjlhÄ@#h @#趃Ä;^ rƒìjmhÄ@#h–>#蚃Ä{‹…Û…BÿÿÿƒìWhç@#èàÊÿÿƒÄ9~tƒìjshÄ@#hú@#è`ƒÄ‹6…ö…cþÿÿƒì hA#èªÊÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u‹] ‰ßƒçø…öuƒìjNh[=#hu>#è ƒÄ…ÛuƒìjOh[=#hòA#èñƒÄƒ}uƒìjPh[=#h~>#èԃĉ؃à‹UTƒâø‰U‹ëv‹…ÛuƒìjXh[=#hýA#螃ă{uƒ{t‹C;CsƒìjYh[=#hÀ>#èsƒÄƒ{t‹C;C rƒìjYh[=#h ?#èNƒÄ‹C +C9CvƒìjYh[=#h`?#è,ƒÄ;{‚hÿÿÿ;{ ƒ_ÿÿÿ‹EC‹C +C9Cvƒìjbh[=#h`?#èòƒÄÇEð‹sëv‰uð‹6…öt9þróƒ}ðtm‹Eð@9ørc9øtƒìjnh[=#h B#諃ąöt8‹U:9ðr.9ðtƒìjuh[=#h`B#肃ċEF‹UðB‹‰ëE‹E‹UðBë9ƒ}ðt
+‹Eð‰8ëv‰{…öt‹U:9ðr‰ÐF‰G‹‰ë ‹E‰G‰7eô[^_]ÃU‰åƒì hÿu ÿuèÒýÿÿƒÄÉÐU‰å‹EÇ]ÉöU‰åWVSƒì ÇEèÇEìÇEð‹E‹0…ö„Zƒ~uƒ~t‹F;Fsƒìj]h†B#hÀ>#蠃ă~t‹F;F rƒìj]h†B#h ?#è{ƒÄ‹F +F9Fvƒìj]h†B#h`?#èYƒÄÿEð¿‹^…Û„¨v÷Ãtƒìjdh†B#h ?#è$ƒÄöCtƒìjeh†B#hÀA#èƒÄƒ{wƒìjfh†B#hË@#èêƒÄƒ;t9wƒìjgh†B#h @#èʃÄ;^ rƒìjhh†B#h–>#讃ÄÿEì{‹…Û…[ÿÿÿ9~tƒìjnh†B#hú@#肃Ä‹FEè‹6…ö…§þÿÿƒì ÿuìÿuðÿuèÿuh B#èºÆÿÿƒÄ eô[^_]ÍvU‰åVS‹u‹] EƒìPÿuh Ù#èÈÿÿƒÄh Ù#ÿ5àá#jSVh C#è5ƒÄ eø[^]ÍvU‰åƒìÿ5Ìá#jÿuÿu ÿuhàB#èƒÄ ÉÉöU‰åƒì E Pÿuh Ý#èÈÿÿƒÄ jjhh$#èè%ÿÿƒÄh Ý#hƒC#è†ÅÿÿÇ$MèBÿÿƒÄÉÐU‰åƒìh Ý#h`C#è_ÅÿÿƒÄÉÉöU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)л¤â#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»¨â#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Åøâ#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Åüâ#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆ¨â#‰¸¬â#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹xå#‰U苀|å#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õxå#|[‰Eäv1‰ÐÁà)ЍÅ;šxå#u ‹Eì;‚|å#|1‰Ï‰ÐÁà)Ћ Åøâ#ƒùÿt4 1‰ÐÁà)Ћ]ä;Åxå#}«ƒÿÿt‰ÐÁà)ЋU‰Åøâ#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Åüâ#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆ¨â#‰¸¬â#ƒÄ[^_]ÍvU‰å‹EÇÿÿÿÿÇ@ÿÿÿÿ]ÍvU‰åWVS‹uv‰ÐÁà)ЍÅP‹˜¬â#¿¨â#‹ 8ƒûÿt[‰ÐÁà)ЉLÇPëv‹E ‰ƒùÿt&I‰ÁÁá)Á»¬â#v‰ÐÁà)ЋDÃP‰DËPë v‹E ‰X[^_]ÐU‰åS‹M‹‰Øƒûÿt=‹@‰ÂÁâ)‹Õøâ#‰ƒøÿt@‰ÐÁà)ÐÇÅüâ#ÿÿÿÿë
+vÇAÿÿÿÿ‰Ø‹$ÉÉöU‰åS‹M‹] ƒ;ÿt)I‰ÐÁà)Ћ‰Åøâ#‹@‰ÂÁâ)‰ Õüâ#됉KI‰ÐÁà)ÐÇÅøâ#ÿÿÿÿI‰ÐÁà)ÐÇÅüâ#ÿÿÿÿ‰ ‹$ÉÃU‰åS‹M‹] ƒ{ÿt,I‰ÐÁà)ЋS‰Åüâ#‹C@‰ÂÁâ)‰ Õøâ#ë‰ö‰ I‰ÐÁà)ÐÇÅüâ#ÿÿÿÿI‰ÐÁà)ÐÇÅøâ#ÿÿÿÿ‰K‹$ÉÃU‰å‹E‹]ÉöU‰å‹E‹@]ÐU‰å·Eƒøt ƒø…Àtë-ƒøtƒøtë ¸¡C#됸¦C#됸ªC#됸°C#됸q4#]ÐU‰åWVSƒìœúX‰Â‰Uä÷Et$ƒìEèPjèH—ÿÿƒÄ ÿuìÿuèhÀC#èaÁÿÿƒÄ÷EtN¾;5Ðá#sA¿â#vƒì µ‹;¶BP·BPRVhD#èÁÿÿƒÄ‹;VÿP ƒÄF;5Ðá#rÇ÷Etƒì hÛC#èñÀÿÿèT&ÿÿƒÄ‹Uä‰ÐPeô[^_]Éöí"Üï"Üï"Üï"Üï"Üï"Hï"Üï"Tï"`ï"Üï"lï"lï"lï"lï"lï"lï"lï"lï"lï"lï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï"Üï" í"4í" î"`î"àî"<ï"4í"Üï"Üï"0ï"Üï"<ï"Üï"î"Üï"Üï"8î"Üï"€í"Üï"Üï"Ìí"Àð" ò" ò" ò" ò" ò"ò" ò"$ò",ò" ò"<ò"<ò"<ò"<ò"<ò"<ò"<ò"<ò"<ò"<ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò" ò"Ìð"àð" ò" ò" ò" ò"àð" ò" ò"ò" ò" ò" ò" ò" ò" ò"Øñ" ò"0ñ" ò" ò"tñ"¬õ"¸õ"¸õ"¸õ"¸õ"¸õ"|ó"|ó"|ó"|ó"|ó"|ó"|ó"|ó"|ó"|ó"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¸õ"¬ó"0ô",õ",õ",õ" õ"0ô"¸õ"¸õ"”õ"¸õ" õ"¸õ"¸õ"¸õ"¸õ"Äó"¸õ" ô"¸õ"¸õ"¼ô"$@$@#€#ì#\#¬#ü#L#|##”# #¬ #8
+#Ä
+# #œ #( #´ #@ +#Ì +#@#\#Œ##œ#,#°#(#”##l#Ð##`#„# #¼#Ø#ô#t#ì#t#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô#Ô##€#ì#\#¬#ü#L#|##”# #¬ #8
+#Ä
+# #œ #( #´ #@ +#Ì +#@#\#Œ##œ#,#°#(#”##l#Ð##`#„# #¼#Ø#ô#t#ì#t#TimerOthermain: unable to set timer 1
+main: unable to set timer 2
+main: unable to set timer 3
+main: waiting signals...
+main: disarm the timer2
+main: disarm the timer1
+main: arm timer1
+main: unable to arm timer 1
+main: ending...
+Signal %d code=%s value=%d task=%d count25=%d count26=%d time=%ldusec
+task_timer: value = %d, time = %ldusec
+main: unable to create timer 1
+main: unable to create timer 2
+main: unable to create timer 3
+main: unable to disarm timer 2
+main: timer2 disarmed, itvalue=%ld.%ld
+main: unable to disarm timer 1
+main: timer1 disarmed, itvalue=%ld.%ld
+Error during Keyboard Initialization!!!Ctrl-C pressed!
+KeybPortKeyTasktask_create
+scheduletime %lus %luns * caplasttime %lus %luns * exec=%d TIME = %lu
+The system tick must be less than 55 mSec!Abort detected
+Code : %u
+Too many scheduling levels!!!
+Too many resource levels!!!
+debug info noticewarn err crit alert emerg <%i>[%s] %sPosix task
+Signal number %d...
+with value : %d
+POSIX_ReadyPOSIX_DelayPOSIX_UnknownSlice: %d
+MainPOSIX_register_level
+ alloco descrittore %d %d
+ lev=%d
+POSIX schedulerPid: %d Name: %20s Prio: %3ld Status: %s
+
+Panic!!! can't create main task...
+dummy PID: %d
+Dummy1Dummy2Dummy3Dummy4Dummy5Dummy6Dummy7Dummy8Dummy9Dummy0DummyaDummybDummycDummydDummyeDummyfDummygDummyhDummyDummy (RR) Posto dummy_create
+
+Panic!!! can't create dummy task...
+Entro in dummy_register_level
+Port des :
+Free port des : %d
+%d %s vt: %d pn: %d
+%d pd: %d vt: %d pn: %d Resources owned by the tasks:
+%-4dPI_register_module
+PI module
+PC priority of the tasks:
+%-4ldPC_register_module
+PC moduleTR %x
+SS:SP %x:%lx
+Stack0 : %x:%lx
+Stack1 : %x:%lx
+Stack2 : %x:%lx
+CS : %x DS : %x
+Descriptor [%x] InfoNo more Descriptors...
+%x (Hex)Base : %lx Lim : %lx Acc : %x Gran %x
+2Coprocessor error#Page fault*General protection fault*Stack exception*Segment not present*Unvalid TSS#INTEL reserved*Double defect1FPU context switch*Unvalid opcode#BOUND limit exceeded#Overflow detected on INTO#Breakpoint trap#NMI detected#Debug fault#Division by 0Exception %d occurred
+ABORT %d !!!LL Time Panic!!!
+time.cError! File:%s Line:%d %sOne-shot timer selected...
+Periodic timer selected...
+Unhandled Exc or Int occured!!!
+32/LINUX CrossCompiled/ELFHalt called1234567890-+12345678901234567890xabcdefABCDEF1234567890.e+-0123456789ABCDEF$@ +Æ@,ú1°<NaN+Inf-Infacosacosfacos: DOMAIN error
+asinasinfasin: DOMAIN error
+atan2atan2fatan2: DOMAIN error
+hypothypotfexpexpfy0fy0: DOMAIN error
+y1fy1: DOMAIN error
+ynynfyn: DOMAIN error
+lgammalgammaflgamma: SING error
+loglogflog: SING error
+log: DOMAIN error
+log10log10flog10: SING error
+log10: DOMAIN error
+powpowfpow(0,0): DOMAIN error
+pow(0,neg): DOMAIN error
+sinhsinhfsqrtsqrtfsqrt: DOMAIN error
+fmodfmodffmod: DOMAIN error
+remainderremainderfremainder: DOMAIN error
+acoshacoshfacosh: DOMAIN error
+atanhatanhfatanh: DOMAIN error
+atanh: SING error
+scalbscalbfj0j0f: TLOSS error
+j1j1fjnjnfneg**non-integral: DOMAIN error
+à?addfree.cmax >= minreg->min < reg->maxnew_max > new_min(reg->min & (sizeof(struct lmm_node) - 1)) == 0(reg->max & (sizeof(struct lmm_node) - 1)) == 0addregio.cr != reg(reg->max <= r->min) || (reg->min >= r->max)alloc.clmm != 0size > 0reg->free >= 0(DWORD)node < reg->maxreg->free >= size(reg->nodes == 0 && reg->free == 0) || (DWORD)reg->nodes >= reg->minreg->nodes == 0 || (DWORD)reg->nodes < reg->maxreg->free <= reg->max - reg->min((DWORD)node & (sizeof(struct lmm_node) - 1)) == 0((DWORD)node->size & (sizeof(struct lmm_node) - 1)) == 0(node->next == 0) || (node->next > node)alloc_ge.canode >= node(split_size & (sizeof(struct lmm_node) - 1)) == 0lmm_dump(lmm=%p)
+dump.cnode->size >= sizeof(*node) free_check=%08lx
+reg->free == free_checklmm_dump done
+ region %08lx-%08lx size=%08lx flags=%08lx pri=%d free=%08lx
+ node %p-%08lx size=%08lx next=%p
+(node->size & (sizeof(struct lmm_node) - 1)) == 0block != 0reg != 0(DWORD)prevnode + prevnode->size == (DWORD)node(DWORD)node + size == (DWORD)nextnodestats.cLMM=%p: %u bytes in %u regions, %d nodes
+assertion %s failed in %s at line %i (task:%i_%i)
+MAGIC assertion failed in %s at line %i (task:%i_%i): %s
+KERNEL PANIC (sys_panic_stub): %s
+KERNEL PANIC (sys_panic): %s
+FreeExeSleepWaiting on joinTime (EXACT) : %lus %luns
+< Memory Dump >
+< Level %d : %s Code: %d Version: %d >
+8Œÿÿ’ÏÿÿšÏÿ(T#ÿ@_#ÿÿÿÿÿÿÿÿÿÿÿÿ1234567890!@#$%^&*()-_=+[{]};:'"`~/?,<.>\|   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ 1234567890!"œ$%&/()='?^Š‚+*•‡…ø\|<_,:.;—õ   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ[]@#P\#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +4#4#ÿ3#ø3#ñ3#ê3#ã3#Ü3#T}"\}"\}"39#&9#9#9#ì8#Ö8#Æ8#²8#£8#“8#†8#q8#`8#F8#:8#“8#'8#þþAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAšg:#ðÿÿÿÿGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.text.rodata.data.sbss.bss.comment.note"€€)!€)#*¨ )(T#¨D /4_#ÀO5@_#ÀO8ã :ÀOLC ahtgI
\ No newline at end of file
/pse51/ptest3
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: pse51/ptest4
===================================================================
--- pse51/ptest4 (.../tags/rel_0_3) (nonexistent)
+++ pse51/ptest4 (.../branches/pj) (revision 1085)
@@ -0,0 +1,418 @@
+ELF"4ˆi4 ( €""¨E¨E (F¨U#¨U# 0ó 덶°­üORäe‹Ká€uU¿€ Ç–eÆG1GeÆGGeÆG2GeÆG¸ë"fe£ÈU#Áèfe£ÎU#¨]#¿€ Ç’eÆG0GeÆGf¸0ŽØŽÀŽÐŽàŽè¼Àˆ#ÇpÃ%Àh#ÇtÃ%Àˆ#£´]#‰¸]#¨]#êµ"8®]#üèž×ê U‰å‹Eê ‰öU‰åSƒì<ÆEÙxÆEÚ-ÆEØhD"ƒì‹EØf‰$ÆD$-è|ÇEô("ÇEð]èEì‰$è˜pƒÄ jSjèƒ[Ç$L3#èóêjhx"jEÔPèURƒÄ …Àtƒì h_3#èÍêƒÄƒì hr3#è½êjhx"jEÐPèRƒÄ …Àtƒì h…3#è—êƒÄƒì h˜3#è‡êjhx"jEÌPèéQƒÄ …Àtƒì h«3#èaêƒÄƒì h¾3#èQêƒÄ‰öƒì jèv<ƒÄ=?Bvìƒì h3#è+êƒÄjÿuÔè‚YƒÄvƒì jèB<ƒÄ=„vìƒì hÓ3#è÷éƒÄÿuÐèSÇ$í3#èà鸃Ä‹]üÉÍvU‰åƒìÿ5Lã#h@2#èºéƒÄÉÐU‰åWVSƒì4ÿ5Lã#h€2#è›éÇEЍ}ÐÇGuÈÇFÇEÈÇEØ\"ÇEÜÇ$è×=‰Ã‹‰EàE؉ƒÄVWèK‰Ç‹Uà‰‹NºÓMb‰È÷êÁúÁù)ʉ$ÿuÈWÿ5Lã#hÀ2#èé¸ƒÄ eô[^_]ÍvU‰åƒìÿ5Lã#h43#èîèƒÄÉÐU‰åƒìèÁ:ÉÍvU‰åƒìj ÿujh'èõƒè¨è/±è^·èٝƒÄ jjjè§Qè–{¸èƒÄÉÃU‰åWVSƒìX‹]}¨¾¼]#ü¹ó¥E¸‰E¨fÇE¸ÇE¼ÇEÀfÇEÄÇEÐÇEÔÇEÜÇEà‰]ÈÇEØÇEÌjèàP‰EÐÇEÜÇEàƒMÌ
+è~¡E¨‰$ècƒÄ…Àyƒì h4#ècèƒÄƒì SèoE¸ƒÄeô[^_]ÍvU‰åƒìŠU€=Ì^#„¶€ú*t€úªt
+€ú6t€ú¶uÆÌ^#¸é›„Òy,ÆÌ^#€ú¸uÆØ^#ÆÎ^#ëՀúuÐÆØ^#ëljöÆÌ^#€ú8u€ +Ø^#ÆÎ^#멀úu € +Ø^#뛉ö€ú5uf¾u‰#·Àé)v€ú…•f¾\‰#·Àé +v€úàuÆÌ^#éTÿÿÿv€ú*t€ú6u2ÆÍ^#€ú*u€ +Ø^#é/ÿÿÿ‰ö€ú6…$ÿÿÿ€ +Ø^# éÿÿÿv€úªt€ú¶u"ÆÍ^#€úªt €ú¶…öþÿÿÆØ^#éêþÿÿ€úFu€=Ñ^#•Ñ^#ë.v€ú:u€=Ï^#•Ï^#ëv€úEu;€=Ð^#•Ð^#ƒì¶Ñ^#P¶Ï^#P¶Ð^#Pèõ¸ƒÄé€úu€ +Ø^#éhþÿÿv€ú8u€ +Ø^#éTþÿÿv€út€ú¸uÆØ^#é;þÿÿ‰ö¸„҈рúRt2€úOt-€úSt(€úPt#€úQt€úKt€úLt€úMt€úGt
+€úHt€úIu€=Ð^#uT€=Í^#uK·Â +ÿë~€=Ï^#t/Bð< vBâ<vBÔ<w€=Í^#t¶Âf¾€@‰#·ÀëG€=Í^#t¶Âf¾€à‰#·Àë-v€=Î^#t¶Âf¾€€Š#·Àëv¶Âf¾€@‰#·ÀÉÃU‰åWVSƒì,}؃ìjE×PèòƒÄ…À„¡ƒì ¶E×Pèöüÿÿ‰ÂƒÄf…Ò„†÷Âÿt  Ø^#ƒÈ@ë‰ö Ø^#ˆE؈UيE׈EÚ±»;8‰#}8¾Àˆ#v݊D2:EÚuŠ2:EØuƒì Wÿ’Ĉ#±ƒÄC;8‰#|ЄÉuƒìjW¿‹#P襦ƒÄè-é<ÿÿÿU‰å‹E£È^#ŠˆB‰#ŠPˆC‰#ŠPˆD‰#ŠPˆE‰#ŠPˆF‰#ŠPˆG‰#ŠPˆH‰#ŠPˆI‰#ŠPˆJ‰#ŠP ˆK‰#ŠP
+ˆâ‰#ŠP ˆã‰#ŠP ˆä‰#ŠP +ˆå‰#ŠPˆæ‰#ŠPˆç‰#ŠPˆè‰#ŠPˆé‰#ŠPˆê‰#ŠPˆë‰#ŠPˆL‰#ŠPˆì‰#ŠPˆM‰#ŠPˆí‰#ŠPˆZ‰#ŠPˆú‰#ŠPˆ[‰#ŠPˆû‰#ŠPˆg‰#ŠPˆŠ#ŠPˆh‰#ŠPˆŠ#ŠP ˆi‰#ŠP!ˆ Š#ŠP"ˆu‰#ŠP#ˆŠ#ŠP$ˆs‰#ŠP%ˆŠ#ŠP&ˆt‰#ŠP'ˆŠ#ŠP(ˆk‰#ŠP)ˆ Š#ŠP*ˆy‰#ŠP+ˆŠ#ŠP,ˆN‰#ŠP-ˆî‰#ŠP.ˆO‰#ŠÖˆï‰#ŠP0ˆA‰#ŠP1ˆá‰#ŠP2ˆ\‰#ŠP3ˆü‰#ŠP4ˆDŠ#ŠP5ˆ/Š#ŠP6ˆ0Š#ŠP7ˆ1Š#ŠP8ˆ+Š#ŠP9ˆ,Š#ŠP:ˆ-Š#ŠP;ˆ'Š#ŠP<ˆ(Š#ŠP=ˆ)Š#ŠP>ˆ2Š#ŠP?ˆ3Š#ŠP@ˆŽ‰#ŠPAˆw‰#ŠPBˆu‰#ŠPCˆŠ‰#ŠPDˆ.Š#ŠPEˆŠ#ŠPFˆ*Š#ŠPGˆ^‰#ŠPHˆþ‰#ŠPIˆp‰#ŠPJˆŠ#ŠPKˆn‰#ŠPLˆŠ#ŠPMˆ`‰#ŠPNˆŠ#ŠPOˆR‰#ŠPPˆò‰#ŠPQˆa‰#ŠPRˆŠ#ŠPSˆb‰#ŠPTˆŠ#ŠPUˆc‰#ŠPVˆŠ#ŠPWˆW‰#ŠPXˆ÷‰#ŠPYˆd‰#ŠPZˆŠ#ŠP[ˆe‰#ŠPRˆŠ#ŠP]ˆf‰#ŠP^ˆŠ#ŠP_ˆr‰#ŠP`ˆŠ#ŠPaˆq‰#ŠPbˆŠ#ŠPcˆX‰#ŠPdˆø‰#ŠPeˆY‰#ŠPfˆù‰#ŠPgˆP‰#ŠPhˆð‰#ŠPiˆS‰#ŠPjˆó‰#ŠPkˆ_‰#ŠPlˆÿ‰#ŠPmˆT‰#ŠPnˆô‰#ŠPoˆV‰#ŠPpˆö‰#ŠPqˆo‰#ŠPrˆŠ#ŠPsˆQ‰#ŠPtˆñ‰#ŠPuˆm‰#ŠPvˆ +Š#ŠPwˆU‰#ŠPxˆõ‰#ŠPyˆl‰#ŠPzˆ Š#ŠP{ˆšŠ#ŠP|ˆ›Š#ŠP}ˆ§Š#Š@~¢¨Š#]ÍvU‰åWVSƒì\‹]}ؾà^#ü¹󥿸ƒ=Ô^#…Qº¾@‰#¹à‰#‰ö·ÂÆ0ÆBfúví…Ûu]؃{ÿuÇCÈ]#ƒì ÿsèûÿÿÇ$jjjh94#èw™f£‹#ƒÄ fƒøÿu ¸þÿÿÿéÞ‰öjjjh94#è؜f£‹#ƒÄfƒøÿuƒì ¿‹#Pè= ¸ýÿÿÿ頍vÇ8‰#ƒ{ÿuÇC4"ƒ{tIÆE™cÆEš.ÆE˜ƒìÿsƒì‹E˜f‰$ÆD$.èÅÆE˜ƒÄÿsƒì‹E˜f‰$ŠEšˆD$襃ă;ÿuQfÇE¨ÇE¬ÇE°fÇE´ÇE¸ÇEÐÇEÈÐÇEÄ ÇEÀ¨aÇE¼
+ÇE̍E¨ë‹ƒì jjPh<"hB4#èÿ‰ÃƒÄ ‰‹#ƒøÿu'ƒì ¿‹#Pè;Ÿ¿‹#‰$è,Ÿ‰Ø钐ƒ=Ü^#uWƒì ÿ5‹#艉ǃąÿt4ƒì ¿‹#Pèôž¿‹#‰$è垃Äÿ5‹#èg5¸üÿÿÿë=ÇÜ^#ëèƒì¶Ñ^#P¶Ï^#P¶Ð^#PèûÇÔ^#‰øƒÄeô[^_]ÃU‰åƒì¶EPEèP¿‹#PèØ ƒÄ„Àt÷Eè@u¶Eéë‰ö¸ÉÐU‰åƒì ¶E Pÿu¿‹#P蝠·ÀƒÄÉÐU‰åSƒ=8‰#0‹ +8‰#Í»Àˆ#‹Ef‰ŠE
+ˆD‹E ‰‚Ĉ#A‰ +8‰#‹$ÉÉöU‰åƒìèÉÍvU‰åƒìè±ÉÍvU‰åƒì¸ÿÿÿÿƒ=Ô^#t9蓃ì ÿ5‹#è-4¿‹#‰$莝¿‹#‰$蝸ƒÄÉÐU‰åƒìjèÙÇ$èÓØÇ$(4#è›Øè²-ƒÄÉÐU‰åWVSƒìŠEˆEó¿1¾d»`‰ö¹v‰òì©t"‰ÈA=þÿÿvì¸ÿÿÿÿ…Àu‰ÚŠEóî¸ë‰ö¸ë搸ÿÿÿÿÇEì¹d…Àt¸ÿÿÿÿët¸ë‰Êì©uî‹EìÿEì=þÿÿvé¸ÿÿÿÿ…Àu‰Úì¶Àë¸ÿÿÿÿƒøÿu
+¸þÿÿÿë3v=úu ¸ë"‰ö=þt ¸ýÿÿÿë‰ö‰øO…À9ÿÿÿ¸üÿÿÿƒÄ[^_]ÃU‰åVSƒìŠEˆE÷³Ô¾¹d‰ö‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë搸ÿÿÿÿ…Àt¸ÿÿÿÿëL¸ë&»¹d‰ö‰Êì©tâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuº`ŠE÷î¸ëv¸ÿÿÿÿ…Àt¸ÿÿÿÿëj¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuºdì© tº`ì¶Ðëvºÿÿÿÿ‰Ð…Òx¸úú”ÀDþƒÄ[^]ÃU‰åWVSƒì »¾`‰ØK…À~^ƒì hÿè¼ýÿÿ‰ÂƒÄ…Òu{¿¹d‰Êì©u‰øG=þÿÿvì¸ÿÿÿÿ…Àu‰òì¶Ðëv¸ëꐺÿÿÿÿúªu›¸üÿÿÿúª…ƃì hõèMýÿÿ‰ÂƒÄ…Òt(¸ûÿÿÿ馉ö¸ýÿÿÿ隉ö¸ë.¸ëZ³`¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³e¾¹dv‰Êì©t®‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîƒì hôèªüÿÿ‰ÂƒÄ¸…Ò•ÀHƒàƒèeô[^_]ÃU‰åWVSƒì ¾»d¹`‰Úì©t +‰Êì‰ðF=þÿvé³­¾¹d‰Êì©„‚‰ðF=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¾»d¹`‰Úì©t +‰Êì‰ðF=þÿv鳪¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸놐¸ÿÿÿÿ…Àt¸÷ÿÿÿéݐ¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿƒøUt¸ÿÿÿÿ錸ë&³«¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸öÿÿÿé9¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸þÿÿÿé鐸ë&³®¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…À…<èzüÿÿ…À…Žƒì hóèIúÿÿƒÄ…Àt
+¸ùÿÿÿépƒì jè.úÿÿƒÄ…Àt¸øÿÿÿéU¸ë.Æì^#³©¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ôÿÿÿéù¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸óÿÿÿ驐¸ë&³¨¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸õÿÿÿéU¸ë&³Ó¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ðÿÿÿ鐸ë&³Z¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë¸ÿÿÿÿ…Àt¸ïÿÿÿ魐Æì^#ëBv¸ë^¹þÿ¾d»`‰òì¶ø÷Çt‰Úì¶À÷Ç tƒøZt»IƒùÿuÙ³§¾¹d‰Êì©tª‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àté»þÿÿ‰ö¸ë:€=ì^#„þÆì^#³¨¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸îÿÿÿ鱐¸ëvƒì hóèWøÿÿ‰ÃÇ$dèIøÿÿÃÇ$èè;øÿÿÃÇ$è-øÿÿÃÇ$çèøÿÿþ§ƒÄ¿¹dv‰Êì©t’‰øG=þÿÿvì¸ÿÿÿÿ…Àuºd‰ðî¸ë¸ÿÿÿÿ…Àt¸íÿÿÿë…ÛuÆì^#¸eô[^_]ÃU‰åVS¡_#…Àt¡_#H£_#¸é²¸ë6ƒ=ø^#uKŠü^#¾¹dv‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿø^#뤍v¸ë:ƒ=ø^#uGÇø^#³ô¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…À…Xÿÿÿº`ˆØîéKÿÿÿ‰ö¸[^]ÍvU‰åWVSƒì ¡_#@£_#¾õ³Ô¿¹dv‰Êì©t"‰øG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîœúX‰Çƒì hõè5õÿÿ‰ÃƒÄ…Ût¸ûÿÿÿéù‰ö¸ë1¾§ÇEð¹dv‰Êì©tڋEðÿEð=þÿÿvé¸ÿÿÿÿ…Àu ºd‰ðî¸ë¸ë=¸ëq¸ÿÿÿÿþ`ÇEð¹d‰Êì©t΋EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuºd‰ðî¾eÇEð¹dv‰Êì©tš‹EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuº`‰ðîƒì hôè;ôÿÿÃĉøPÆí^#‰Øeô[^_]ÐU‰åWVSƒì ¸ÿÿÿÿ€=ì^#„ºœúX‰Æƒì hõèóóÿÿƒÄ…Àt(¸ûÿÿÿé—‰ö¸ë:¸ëf¸é“‰ö³`¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³G¿¹dv‰Êì©t¢‰øG=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØ¿¹dv‰Êì©„rÿÿÿ‰øG=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt ¸îÿÿÿ鐃ì hôèÿòÿÿƒÄ…Àt¸Ûÿÿÿ飉ö¸ë:‰ðP¡_#@£_#¾ô³Ô¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîÆí^#¸eô[^_]ÍvU‰åƒìÇ$Œ#Ç Œ#ƒ=ô^#t!úè‹õÿÿ£ð^#Çô^#û…Àtúèôÿÿû¡ð^#…Àuƒìÿuh ""jè½U¸ƒÄÉÍvU‰åVS¡_#@£_#³õ¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åVS¡_#@£_#³ô¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åƒì‹MœúX‰Â¡ Œ#@%ÿ£ Œ#Š€ ‹#ˆ‰ÐP€9úu è(úÿÿë‰ö¸ÉÐU‰åƒìƒ= _#t(Ç„Œ#Ç€Œ#LjŒ#Ç _#‹E£_#ƒ=ô^#t!úèôÿÿ£ð^#Çô^#û…Àtúèòÿÿû¡ð^#…Àu.¸ìÿÿÿ€=ì^#t ƒìjÿh\""j è'TÆí^#¸ƒÄÉÉöU‰åS‹MœúX‰Ã¡€Œ#@ƒà?£€Œ#º@Œ#ŠˆA¡€Œ#@ƒà?£€Œ#Šˆ¡€Œ#@ƒà?£€Œ#ŠˆA‰ØP¸‹$ÉÉöU‰åƒì€=í^#tèäùÿÿƒì j è6TÆí^#¸ƒÄÉÐU‰åƒìƒ=ô^#t!úè óÿÿ£ð^#Çô^#û…Àtúè™ñÿÿû¡ð^#…Àt¸ë¶ì^#ÉÍvU‰åVSŠEŠU€} t ƒ +ü^#ë ‰öƒ%ü^#„Àt ƒ +ü^#ëƒ%ü^#„Òtƒ +ü^#ë¸ë6¸ëbƒ%ü^#³õ¾¹d‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî³í¾¹dv‰Êì©t¦‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿø^#[^]ÐU‰åSƒìœúX‰Ã€=í^#tè–øÿÿè‘ðÿÿƒì hóèhîÿÿƒÄ…Àuƒì jèWîÿÿƒÄ…Àu‰ØP‹]üÉÍvU‰åº`ì¶ÈœúX‰Â¡ Œ#;$Œ#t¡$Œ#ˆˆ ‹#@%ÿ£$Œ#‰ÐP]ÉöU‰åƒìº`ì¶Ðƒ=ˆŒ#u €úúu¡_#H£_#郍v÷ÂÀuxÿˆŒ#œúX‰Á¡€Œ#;„Œ#t¡„Œ#ˆ@Œ#@ƒà?£„Œ#ë"‰ö¡„Œ#+ˆŒ#ƒÀAƒà?£„Œ#LjŒ#‰ÈPƒ=ˆŒ#uLjŒ#ƒì ÿ5_#èƒÄÉÉöU‰åSƒì}™w‹UÑâU‰ÐÁà)Ðfƒ<ÅHä#uè¡âNj¸ÿÿÿÿ鏐ƒ= ã#tcœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€!ä# t ÿ€$ä#ë-v‹EÑàE‰ÂÁâ)‹Õ$ä#ƒì‹•€ã#ÿuRÿP@ƒÄ‰ØPéè+¦…ÀtgœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€!ä# t ÿ€$ä#ë2v‹EÑàE‰ÂÁâ)‹Õ$ä#ƒì‹•€ã#ÿuRÿP@蔃ĉØPé­úèò¶‹Lã#R‰ÑÁá)Ñ» ä#f‰DË‹UÑâU‰ÐÁà)ЍÅ0öD t ÿ€$ä#ë?vƒìU‰ÐPjÿL_#‹MI‰ÐÁà)ЋÅ$ä#ƒÄ‹•€ã#QRÿP@è/ƒÄ¡Lã#@‰ÂÁâ)ƒì ¿Õ(ä#Pè`¶èƒÄû¸‹]üÉÐU‰åWVSƒì ‹]f…Ûuèæànj¸ÿÿÿÿé"‰öƒ= ã#„“œúX‰ÇÇEð}ð™s¾ ä#‹UðÑâUð‰ÐÁà)ÐÁàf9\,uHƒÀ0öD0 t ÿ€$ä#ë6ƒìEðPjÿL_#‹MðI‰ÐÁà)ЋÅ$ä#ƒÄ‹•€ã#QRÿP@ƒÄÿEð}ð™~“‰øPé}‰öè;¤…À„›œúX‰ÇÇEð}ð™w¾ ä#‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€$ä#ë8vƒìEðPjÿL_#‹MðI‰ÐÁà)ЋÅ$ä#ƒÄ‹•€ã#QRÿP@ƒÄÿEð}ð™~èj‰øPéԐúèÊ´‹Lã#R‰ÑÁá)Ñf‰Í(ä#ÇEð}ð™w¾ ä#‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€$ä#ë8v‹MðI‰ÐÁà)ЋÅ$ä#ƒì‹•€ã#QRÿP@ƒÄEðPjÿL_#ƒÄÿEð}ð™~èÞ ¡Lã#@‰ÂÁâ)ƒì ¿Õ(ä#Pè´èÁƒÄû¸eô[^_]ÃU‰åSƒìúè㳋Lã#R‰ÑÁá)Ñf‰Í(ä#ƒìhä#j蛃čUð¡ä#;Xã#|¡ä#+Tã#‰Eð¡ä#+Xã#ë!‰ö¡ä#+Tã#H‰Eð¡ä#+Xã#ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыLã#R‰ÐÁà)Ð) Ålä#ƒì Qè. ƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄ‹ +Lã#I‰ÐÁà)ЋÅ$ä#ƒì‹…€ã#QPÿRLè{ ƒÄhLã#jÿL_#ÇLã#ÿÿÿÿÇ`ã#ÿÿÿÿèV ¡Lã#@‰ÂÁâ)¿Õ(ä#‰$苲è:ƒÄû‹]üÉÐU‰åƒìhà("èФƒÄÉÍvU‰åƒìj軤ƒÄÉÉöU‰åƒìƒ=_#u(èè
+ƒì ¡Lã#@‰ÂÁâ)¿Õ(ä#P貃ÄÉÍvU‰åWVSƒìhJ4#è)ƒÄ» ä#ëv‹Eð@‰ÐÁà)ЁLÃ0€ƒì hÄã#èr0‰EðƒÄƒøÿ„“@‰ÐÁà)ÐöDÃ1@u¾‹UðR‰ÃÁã)ÃÁã¾ ä#¡_#‰3@£_#‹E ‰Dƒìjÿuƒ4ä#PèHÃÆD'ƒÃ fÇD3‹Mf‹%ÿf‰D3
+f‹A f‰D3 ƒÄ‰Ø‰ñº‹]ƒ{tf‹Sf‰T‹UðR‰ÁÁá)ÁÁáY0‹U‹B +‰ƒ ä#¿$ä#Ç;¾(ä#¡Lã#@‰ÂÁâ)‹DÖ0‰3º,ä#ǍAP‹]ð‰˜ ä#Ç8ÇÿÿÿÿÇ0ÿÿÿÿǁ€ä#°Ç8Ç0ǁÁÀǁ ä#Ç9ºۍƒ€ 
+Ç…„ä#Bƒúvì‹Eð@‰ÐÁà)ÐÁàÀǂ(ä#ÿÿÿÿǂ,ä#tä#‰ðä#º‹Mðɍ€ ‰ö
+Ç…ðä#Bƒú~ì»ëC;Pã#sƒì‹€ã#ÿuSÿPƒÄ…Àxß;Pã#u7‹]ð[‰ÂÁâ)ÂfÇÕHä#ƒìhÄã#Sè‚.èIÚDŽ鄉ö‹Eð@‰ÐÁà)Ѝ4ʼnž$ä#ƒì‹€ã#ÿuÿuðSÿP,ƒÄ…ÀyWfdžHä#ƒìhÄã#ÿuðè".èéÙDžë'èÛÙǃ釃ì ÿuðè9èÀÙdž¸ÿÿÿÿƒÄëjƒE‹U‹zü…ÿtY‰ö¾ëF;5Dã#s0ƒìµ‹ƒàã#WVÿP ƒÄ…Àxۃ싃àã#WÿuðVÿP$ƒÄ;5Dã#t‡ƒE‹M‹yü…ÿu©‹Eðeô[^_]ÉöU‰åƒìEPÿuÿu ÿuè`üÿÿƒÄÉÍvU‰åWVSƒì ‹} ƒt6‹EÑàE‰ÂÁâ)‹G‰Õ,ä#‰Æ‹UÑâU‰ÐÁà)Ѓ ÅPä#@ën‰öƒì ‹UÑâU‰ÐÁà)зÅNä#Pè@‹UÑâU‰ÑÁá)Ñ»,ä#‰ˉƋEÑàE‰ÂÁâ)ƒÄƒ<Óuƒì ÿuèìèsØLjëtv‹EÑàE‰ÂÁâ)» ä#·DÓ.ƃì ·GPjÿwVhÌ/"èՑ‰ÁƒÄ f…Éu?ƒì‹UÑâU‰ÐÁà)зDÃ.PVèƒÄÿuèvèý×lj¸ÿÿÿÿƒÄëN‹EÑàE‰ÂÁâ)Âf‰ Õ(ä#ƒìU‰ÐPjÿL_#ƒÄöGu ÿ@ã#ëvöGuÿä#¸eô[^_]ÍvU‰åWVSƒì ‹M‹U ‹]œúX‰ÇEPSRQè­úÿÿ‰ÆƒÄƒþÿ„ɍv‰ÐÁà)ЋÅ$ä#‹…€ã#ƒx(„èà…À‰€»;Dã#svƒì‹àã#VSÿP(ƒÄC;Dã#råv‰ÃÁã)ÃÁ㋃$ä#ƒì‹…€ã#VPÿR0fǃHä#ƒÄhÄã#Vè+ƒÄèÈÖLJ‰øP¸ÿÿÿÿë#vƒìSVèŽýÿÿƒÄº…À”ÂJ ։øP‰ðeô[^_]ÃU‰åVS‹u»;Dã#svƒì‹àã#VSÿP(ƒÄC;Dã#råv‰ÃÁã)ÃÁ㋃$ä#ƒì‹…€ã#VPÿR0fǃHä#ƒÄhÄã#VèT*ƒÄeø[^]ÉöU‰åVS‹]è ƒì ¡Lã#@‰ÂÁâ)¾ ä#SÿTÖú‰$èn¡Lã#@‰ÂÁâ)¿DÖ‰$諃čeø[^]ÃU‰åWVSƒì‹]‹}úû™w! [‰ÈÁà)ÈÁຠä#öD0tfƒ|(u û¸ÿÿÿÿéDžÿy$[‰ÁÁá)Á Í°¸$ä#‹<Çë ‰öƒÿv¿[‰ÁÁá)Á Í°‰Mä¹(ä#‰Mì‹Uä‹
+‰Â)úƒÂ‰Ð¾º÷ö‰Eð‹uä;tMۍƒ€4‹MðىÈÁà)ȍ Å°‰ö2‹…„ä#‹] ‰ƒÃ‰] B»‰Ðº÷ó‹]ì;uÔû‰øƒÄ[^_]ÐU‰åSƒì‹]‹ +Lã#I‰ÐÁà)ЍÅö‚Pä#tɍ€È‚Øä#…„ä#¡ä#;Tã#|;Tã#uA¡ä#;Xã#}4ƒìSÿ5Lã#ÿ5Xã#ÿ5Tã#ÿ5ä#ÿ5ä#h`4#èàºƒÄ è@ ‹]üÉÍvU‰åWVS‹ +Lã#I‰ÐÁà)ЍÅöƒPä#„›ɍ€ȍ‹°(ä#º$ä#‹t‚`‹”À¸,ä#94s‰4‹Lã#[‰ÁÁá)ÁÁፁÀ° ä#¿$ä#B‰8±°‹†(ä#@º‰Ñº÷ñ‰–(ä#ۍƒ€ØÐÇD‡`ƒ<>wÿ>[^_]ÉöU‰åWVS‹M‹] ‹u‹}úù™w!I‰ÐÁà)ÐÁຠä#öD0tfƒ|(uû¸ÿÿÿÿëy…ÛtI‰ÂÁâ)‹Õàä#‰…ötI‰ÂÁâ)‹ÕÜä#‰…ÿtI‰ÂÁâ)‹Õää#‰ƒ}t(ɍ€ȍ I‰ÊÁâ)ÊÕØä#‹…„ä#‹U‰û¸[^_]ÉöU‰å‹Múù™w!I‰ÐÁà)ÐÁຠä#öD0tfƒ|(uû¸ÿÿÿÿë7I‰ÂÁâ)ÂÁ⍂Àǀ ä#ǀ$ä#ǂÜä#û¸]ÍvU‰åWVSƒì ƒ=Lã#ÿt¡Lã#@‰ÂÁâ)ÂöÕPä#…3ƒ=Lã#ÿ„ƒìhä#jèUŽƒÄUè¡ä#;Xã#|¡ä#+Tã#‰Eè¡ä#+Xã#ë"v¡ä#+Tã#H‰Eè¡ä#+Xã#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыLã#R‰ÐÁà)Ð) Ålä#ƒì QènüÿÿƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄ‹ +Lã#I‰ÐÁà)Ћ<Å$ä#ƒì‹½€ã#QWÿP<ƒÄ¿4½ƒì ‹†€ã#WÿP$‰ÃƒÄƒûÿt%ƒì[‰ÐÁà)ЋÅ$ä#‹…€ã#SPÿR4ƒÄ븅Àx»ƒûÿuG뫍v‹5Lã#‰`ã#‰Lã#[‰ÐÁà)Ð;Åpä#t0» ä#‰ö¡Lã#@‰ÂÁâ)‹TÓP‰Lã# R‰ÈÁà)È;TÃPu×;5Lã#tƒìhLã#jÿL_#ƒÄ‹ +Lã#I‰ÐÁà)ÐÁྠä#fÇD(‹¸$ä#ƒì‹½€ã#‹`ã#¸;Lã#•ÀPQWÿS8¡Lã#@‰ÂÁâ)ƒÄöDÖ1„Ü¡`ã#;Lã#…Ë¡ä#‰EèMè¡Lã#@‰ÂÁâ)»,ä#‹DÓ@º@B‰Ö™÷þ’’’Áâ‰Ö5ä#‰q¿¡/¸D‰ø÷î‰×Áÿ‰ð™‰þ)Ö¡Lã#@‰ÂÁâ)‹\Ó@ºƒÞC‰Ø÷êÁú‰ØÁø)2Eè‹AºÊš;‰Ó™÷û‰Qjhø="ÿuìÿuèÿ$ã#‰ÃƒÄƒûÿuƒìÿ5Lã#jè£<ƒÄ‰\ã#¡ä#£Tã#¡ä#£Xã#eô[^_]ÉöU‰åWVSƒìÇ°£%úÿuèD»ƒÄ¿$ä#¾ ä#‰ö[‰ÂÁâ)ÂÁâÇ:ÿÿÿÿǂ,ä#ÆDB fÇD0fÇD0
+fÇD0 fÇD0B0Ç0Ç8ǀ(ä#ǀ,ä#‚dä#Ç@Çǂlä#BP‰0Ç8ÇD`DŽÐ‚øæ#Ç@Ǎ‚àÇ0ÿÿÿÿÇ8ÿÿÿÿ‚°Ç8ǀ(ä#ǀ,ä#ÂÀÇ2Ç:ºۍƒ€ v
+ÇD‡`Bƒúvï[‰ÐÁà)ЍÅÀǀ(ä#ÿÿÿÿǀ,ä#ºۍƒ€ 
+DŽ†ÐBƒú~ìCû™Žƒþÿÿ»¹(ä#[‰ÂÁâ)C‰DÑP‰Ãû˜~åÇ ¡%ÿÿÿÿ»™¹,ä#[‰ÂÁâ)Cÿ‰DÑP‰Ã…ÛéÇ|ä#ÿÿÿÿÇÄã#ÇHã#Ç@ã#Çä#Ç`ã#ÿÿÿÿÇLã#ÿÿÿÿÇ\ã#ÿÿÿÿÇXã#ÇTã#ÇPã#ÇDã#Ç ã#èÚè}èÜ6ƒì ÿuèqÉÿÿ£Èã#ƒÄ=×Övƒì hÀ4#è5Ç$豿ƒÄ¸ƒ=Èã#”À‰Eè]è¡Èã#‰CÇ°£%èb‡ƒì SèY‘Ç$Œ>"è­ËÇ$Ì("è)“Ç$ä="è=“ƒÄjjèEÿT_#ƒÄhä#jèô‡èOùÿÿ蒠f£Àã#¡Lã#@‰ÂÁâ)¾ ä#¿DÖ‰$èw Ç$èߒÿP_#Ç°£%ƒÄ»ƒ=Hã#ŸÃSjèɃă=ä#teè„ Ç_#ƒìhä#jèc‡è f£Àã#è³øÿÿÇ$ä="èo’¡Lã#@‰ÂÁâ)¿DÖ‰$èߟÇ$èG’ƒÄÇ°£%ƒìSjèCèj†Ç°£%ƒÄjjè(ƒÄúƒ=Hã#t"ƒìÿ5Hã#hë4#èø°Ç$ÿÿÿÿ较ăì jèó½ƒÄeô[^_]ÃU‰åSƒìƒ=_#…•èÿ…Àuúè-Ÿ‹Lã#R‰ÑÁá)Ñf‰Í(ä#‹E£Hã#Ç_#ƒ=Lã#ÿ„ƒìhä#jè?†ƒÄUð¡ä#;Xã#|¡ä#+Tã#‰Eð¡ä#+Xã#ë ¡ä#+Tã#H‰Eð¡ä#+Xã#ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыLã#R‰ÐÁà)Ð) Ålä#ƒì QèZôÿÿƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄ‹ +Lã#I‰ÐÁà)ЋÅ$ä#ƒì‹…€ã#QPÿR<Ç`ã#ÿÿÿÿÇLã#ÿÿÿÿƒÄ褌…Àtƒì ¿Àã#PèԝƒÄëvƒì ¿Àã#P輝èkƒÄû‹]üÉÉöU‰åSƒìÇEøÿÿÿÿ»º€ã#¡€ã#ƒx(t1ƒì‹šUøRSÿP(ƒÄ…Àu¸ÿÿÿÿëCƒûwº€ã#‹šƒx(uи‹]üÉÉöU‰åƒìè èÀ/ÉÉöU‰åƒìÇ\ã#ÿÿÿÿè§êÿÿÉÐU‰åSƒìœúX‰Ãƒ=°£%tƒ=ä#t‰ØPëƒì jè–ýÿÿƒÄ‰ØP‹]üÉÉöU‰åƒìÿuèzýÿÿƒÄÉÐU‰åSƒì‹UœúX‰ÃƒìRj脉ƒĉØP‰Ð‹]üÉÉöU‰å¸Hã#ƒ=Lã#ÿt‹Lã#R‰ÐÁà)Ѝŀä#]ÉöU‰åSƒìœúX‰Ãƒ=°£%tƒ=ä#t‰ØPëƒì ÿuèíüÿÿƒÄ‰ØP‹]üÉÐU‰å]ÍvU‰åWVSƒì ÇEðÇE컍[ …ƒ¹¨Œ#t[¿ Œ#ƒ<9tP‹Lã#ҍ‚€Ð؍…о ä#ƒ<0t+ûƒì ÿ40ÿ9ƒÄú‹Lã#ҍ‚€Ð؋´†Ð uìCƒû~Œƒ}ìt +ÿEðƒ}ðŽmÿÿÿeô[^_]ÐU‰åVSº¾ Œ#»¤Œ#¹¨Œ#vRÁàÇ0B‰Çƒú~ãǘ’#ÿÿÿÿÇ ’#ǨŒ#Ç Œ#ǤŒ#ÿÿÿÿ[^]ÐU‰åS‹Múƒ= ’#ÿu û¸ ënv¡ ’#@Ç•¨Œ#‰¡ ’#@‹…¤Œ#£ ’#‹@‹U ‰… Œ#º» ä#‰öҍ‚€ÐDŽƒÐBú™~ßû¸‹$ÉÃU‰åú¡Lã#À’ÂU‹•ðä#û]ÍvU‰å‹Múƒùw +Iƒ<…¨Œ#u û¸ë%v¡Lã#À’ÂʋE ‰•ðä#û¸]ÃU‰åS‹]œúX‰Áƒûw +[ƒ<…¨Œ#u‰ÈP¸ë.v[Áà‹ ’#‰¤Œ#ǀ¨Œ#‰ ’#‰ÈP¸‹$ÉÃU‰åWVSƒì ¡Lã#‰Eð‰ÂÑâ‰ÐÁà)ЍÅ¿ ä#öD0 tm‹E‰‚ìä#‹UðÑâUð‰ÐÁà)ЁLÇ0@‹UðÑâUð‰ÐÁà)ЍÅÀº(ä#ƒ<ÿt,‹4v‰ÃÁã)ÃÁ㋃$ä#ƒì‹…€ã#VPÿRD‰tPƒÄ¹» ä#;MðtI‰ÐÁà)ЋUð9TÃP„ˆAù™~ۋUðÑâUð‰ÐÁà)Ѓ<Åtä#t[»$ä#ûƒì ‹UðÑâUð‰ÐÁà)ЋDÃPÿpÿƒÄú‹EðÑàEð‰ÂÁâ)ÕP‹‹@‰‹UðÑâUð‰ÐÁà)Ѓ|ÃPu«èJüÿÿƒì ‹EðÑàEð‰ÂÁâ)» ä#¿DÓPè|~ƒÄEðPjÿL_#‹Eð@‰ÂÁâ)ՃÄöD0@u%ƒì·D.P‹Eð@‰ÂÁâ)Âÿ4Õ,ä#èÁ ƒÄ»;Dã#sƒì‹àã#ÿuðSÿP(ƒÄC;Dã#rã‹MðI‰ÐÁà)ЋÅ$ä#ƒì‹…€ã#QPÿRPÇLã#ÿÿÿÿÇ`ã#ÿÿÿÿ‹Eð@‰ÂÁâ)ƒÄöÕPä#u&ÿ +@ã#ƒ=@ã#uBèZúÿÿë;ƒìRjè0ƒÄëg‹Eð@‰ÂÁâ)ÂöÕPä#uÿ +ä#ƒ=ä#uèúÿÿƒìhä#jèz~ƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄè­ïÿÿeô[^_]ÐU‰åVS‹uúv‰ÐÁà)ÐÁຠä#öD0ufƒ|(uèyÁNJû¸ÿÿÿÿ麍v‰ÐÁà)ÐöÅQä#tû雉ö;5Lã#uJv‰ÐÁà)л ä#‹DÃ0©t0©u)ƒì jè¥üÿÿ¡Lã#@‰ÂÁâ)¿DÓ‰$èM–ƒÄ»ëvC;_#}ƒìÝÿ°Ä’#VÿÀ’#ƒÄ…Àtٍv‰ÐÁà)Ё ÅPä#û¸eø[^]ÍvU‰åWVSƒì ‹Ef‰Eòf…ÀuèŠÀnj¸ÿÿÿÿé‰öú¡`ã#@‰ÂÁâ)Âf‹Mòf; ÕLä#”Eñ¾¿ ä#‰öv‰ÐÁà)ÐÁà‹T0÷Â…ˆƒÀ fƒ|8t}÷Âuuf‹Mòf9L8 uj;5Lã#u!÷Ât÷Âuƒì jè{ûÿÿƒÄëC‰ö»ëC;_#}ƒìÝÿ°Ä’#VÿÀ’#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™ŽNÿÿÿ€}ñt(ƒì ¡`ã#@‰ÂÁâ)¿Õ(ä#PèĔƒÄëvû¸eô[^_]ÉöU‰åWVSƒì ¾¿ ä#v‰ÐÁà)ÐÁàfƒ|(tL÷D0
+uB»ë‰öC;_#}ƒìÝÿ°Ä’#VÿÀ’#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™~–eô[^_]ÉöU‰åSƒì¡Lã#@‰ÂÁâ)» ä#‹DÓ0©t7©u0©t)ƒì jè"úÿÿ¡Lã#@‰ÂÁâ)¿DÓ‰$èʓƒÄ‹]üÉÉöU‰åS‹M‹] ¡_#ʼnŠÀ’#‰šÄ’#@£_#‹$ÉÍvU‰åƒìúÿuè½ùÿÿ¡Lã#@‰ÂÁâ)¿Õ(ä#‰$èb“ƒÄÉÐU‰åVS¶uœúX‰Ãƒ=ô•#ÿuèð½Ç‚‰ØP¸ÿÿÿÿéۋ +ô•#‰ÊÁâ‹‚l“#£ô•#‹E‰‚`“#‹E ‰‚d“#‰ðƒà‰‚h“#‰ðƒàƒøtOƒø
+ƒøt +ësvƒøtSëi‰ÈÁàǀl“#ÿÿÿÿƒ=à•#ÿu‰ +à•#ë¡ä•#Áà‰ˆl“#‰ +ä•#ëH‰ö‰ÊÁâ¡è•#‰‚l“#‰ +è•#ë.‰ÊÁâ¡ì•#‰‚l“#‰ +ì•#ë‰ÊÁâ¡ð•#‰‚l“#‰ +ð•#‰ØP¸[^]ÐU‰åƒìƒ=Pã#uƒì h 5#è4 Ç$è°°ƒÄ¡Pã#P‰Pã#ÉÐU‰åƒìƒ=Dã#uƒì h?5#èøÇ$èt°ƒÄ¡Dã#P‰Dã#ÉÐU‰åWVS‹E‹u ‹}»‹HÇöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿ[^_]ÐU‰åWVSì¬‹EµTþÿÿ½Xþÿÿ»‹HDžTþÿÿöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿƒì…XþÿÿPÿµTþÿÿ蕶ÿÿƒÄeô[^_]ÉöU‰å¸¹l“#v‰ÂÁâ@‰
+ƒø&~òÇܕ#ÿÿÿÿÇà•#ÿÿÿÿÇä•#ÿÿÿÿÇè•#ÿÿÿÿÇì•#ÿÿÿÿÇð•#ÿÿÿÿÇô•#]ÉöU‰åWVSƒì ‹E‹} ƒøt4ƒø ƒøtéЃøt3ƒøtB鳐‹à•#Çà•#ÿÿÿÿë:‰ö‹è•#Çè•#ÿÿÿÿë&‰ö‹ì•#Çì•#ÿÿÿÿë‰ö‹ð•#Çð•#ÿÿÿÿÇ ã#ƒûÿtM¾l“#…ÿt‰ØÁàƒ¸h“#uƒì ‰ØÁàÿ°d“#ÿ`“#ƒÄ‰Ù‰ØÁà‹0‰Â¡ô•#‰2‰ +ô•#ƒûÿu¸Ç ã#eô[^_]ÉöU‰åƒìEüPEøPEôPEðPèñ‹Ç$–#èq؃Äjjhÿÿjh–#h–#èœÎƒÄjjhÿÿÿhh –#h–#è|΃Äjjhÿÿÿþhh<–#h–#è\ÎƒÄ ƒ}ütƒì‹EüHPÿuøh–#è&̓ă}ôtƒìÿuôÿuðh–#è
+̓ÄÉÐU‰åƒì‹E…Àu¸ëƒìjPh–#è´ÎƒÄÉÍvU‰åƒìÿuÿuÿu ÿuh–#èdÐƒÄ ÉÍvU‰åƒì ÿuÿuÿuÿuÿu ÿuh–#è^ÐƒÄ ÉÐU‰åƒì ÿu ÿuh–#èՃÄÉÐU‰åƒìÿuh–#èù҃ÄÉÃU‰åƒìÿuh–#èùփÄÉÃU‰åƒì jÿuh–#èÿ̓ÄÉÉöU‰åƒì ÿu ÿuh–#èªÔƒÄÉÐU‰åƒìh–#è¸ÒÇ$–#èÌփÄÉÍvU‰åWVSƒì‹E@‰ÐÁà)Ðfƒ<ÅHä#…¿ƒìEèPjè½tƒÄ]àºÀ£%Mè‹u‹Dò;A|‹ò+Eè‰Eà‹Dò+A됸À£%‹M‹È+UèJ‰Uà‹DÈ+Eìʚ;‰CºÀ£%‹Eà‹u‰ò‹Eä‰Dòƒì v‰ÃÁã)ÃÁ㍻ྠä#ÿ47ÿ(ã#Ç7ÿÿÿÿ‹ƒ$ä#ƒÄ‹…€ã#ÿuPÿRD¸ƒÄë‰ö¸eô[^_]ÍvU‰åWVSƒì ‹u‹} ƒ>x ~ʚ;~ ¸é–úèvŒ‹Lã#R‰ÑÁá)Ñf‰Í(ä#ƒ=_#t+Ç_#ƒìjhHQ"èˆøÿÿƒÄjhŒM"è%ƒÄƒìhä#jèssƒÄUè¡ä#;Xã#|¡ä#+Tã#‰Eè¡ä#+Xã#ë ¡ä#+Tã#H‰Eè¡ä#+Xã#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыLã#R‰ÐÁà)Ð) Ålä#ƒì QèŽáÿÿƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄ‹ +Lã#I‰ÐÁà)ЋÅ$ä#ƒì‹…€ã#QPÿRH‹Lã# R‰ÈÁà)ÈfÇÅHä#ÕÀ£%ƒÄ¡ä#‰Ã‰¡ä#‰ÁN‰J…ÉyCÿ‰Êš;‰Bëzÿɚ;~ ÿjʚ;¡Lã#Ph¼Q"ÿ4ÅÄ£%ÿ4ÅÀ£%ÿ$ã#‰ÆƒÄƒþÿuƒìÿ5Lã#jè1#ƒÄ¡Lã#@‰ÂÁâ)» ä#‰´ÓàÇLã#ÿÿÿÿÇ`ã#ÿÿÿÿèãÿÿ¡Lã#@‰ÂÁâ)ƒì ¿DÓPèIŠèøìÿÿƒÄûèÃ.¡Lã#Áàƒ¸À£%u ƒ¸Ä£%t)…ÿt¡Lã#ºÀ£%‹‰¡Lã#‹D‰G¸ëv¸eô[^_]ÍvU‰åWVSƒì ‹E@‰ÐÁà)Ѝ4Å¿ ä#fƒ|7(u:ƒì žàÿ4;ÿ(ã#Ç;ÿÿÿÿ‹†$ä#ƒÄ‹…€ã#ÿuPÿRD¸ƒÄ븍eô[^_]ÍvU‰åƒì‹M¸À£%ÇDÈÇȍI‰ÐÁà)ÐÁàǀç#ÿÿÿÿ‹€$ä#‹…€ã#QPÿRDè­ÖÿÿƒÄÉÃU‰åƒì ‹E‰EøUøÇBEðPRèTüÿÿ‹EðƒÄÉÃU‰åWVSƒì} ‹uEðPh”5#VèÖ¥‰ÃƒÄƒûuƒ}ðvÇEðƒÆë ‰öÇEð‹Eðº; _#~hƒìWVh`–#蜃Äj
+VèK›ƒÄ»…À•ÃœúX‰Æƒìh`–#‹Eðÿ4…$_#h™5#è]™ƒÄ…Ûuƒì h<6#èI™ƒÄ‰ðPº‰Ðeô[^_]ÍvU‰åVSƒìu ‹]EôPh”5#S襃ăøuƒ}ôvÇEôƒÃëÇEô‹Eôº; _#~JƒìVSh`–#èB›ƒÄj
+S臚ƒÄœúX‰Ãƒìh`–#‹Eôÿ4…$_#h™5#裘ƒÄ‰ØPº‰Ðeø[^]ÉöU‰åVSƒì@‹u‹] ‹EfÇEÈÇEÌÇEÐfÇEÔÇEàÇEäÇEìÇEð‰EØÇEÜÇEè…ÛtT‹C‰E̋C‰EЃ{u
+ÇEÜ1됃eÜߋC ‰EàÇEÀƒì ÿ5`š#è)7ƒÄ+C ‰EċC‰Eì‹C‰EðëD‰öÇEÌÇEЃMÜ ÇEàÇEÀƒì ÿ5`š#èâ6ƒÄ‰EÄÇEìÇEðèI±‹ƒì jEÀPEÈPÿuh¡5#è™Ùÿÿ‰ƒÄ ƒøÿt ƒì PèJÎÿÿƒÄ豉¸ƒ>ÿ”ÀHƒàêƒÀeø[^]ÍvU‰åƒìÿ5`š#èc6ƒÄÉÉöU‰åƒìÿ5`š#èc6ƒÄÉÉöU‰åƒìÿ5`š#è{5ƒÄÉÉöU‰å‹E‹U ‹M£`š#‰dš#‰ +hš#]ÐU‰åVS‹]è°‹0ƒì SèÌîÿÿ‰Ãèm°‰0ƒÄ¸…Û•À@eø[^]ÃU‰åƒìúÿuÿu ÿuÿ5`š#èé5ƒÄûÉÍvU‰åWVSƒì ‹}‹uúÿ6ÿu Wÿ5`š#è3‰ÃƒÄ…Ûu#ƒìÿ5`š#èx5ƒÄ+PWÿ5hš#èffƒÄû‰Øeô[^_]ÃU‰åSƒì ‹] Sÿuè¡eƒÄÿ5`š#è75ƒÄ+‰¸‹]üÉÉöU‰åVSƒì‹u‹] …Ûtƒ;uÇEôƒìEôPë7ƒ;uÇEðƒìEðPë!vÇEèƒì jè_þÿÿ+CUè‰BƒÄRVèT*ƒÄeø[^]ÉöU‰åWVSƒì‹u ‹}ÇEðÿ5`š#è“4‰ÃƒÄ9Þƒþ} ¸ëG‰öƒì ÿuèµ*ƒÄ W‰Ø)ðPÿuè eƒÄ…ÀtÇEð…ÿt‰Ø+‰ƒì ÿuèÙ*‹EðƒÄeô[^_]ÍvU‰åƒì‹Eúƒ8u +ÇûÿU ëû¸ÉÃU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹øæ#‰U苀üæ#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õøæ#|[‰Eäv1‰ÐÁà)ЍÅ;šøæ#u ‹Eì;‚üæ#|1‰Ï‰ÐÁà)Ћ Åxä#ƒùÿt4 1‰ÐÁà)Ћ]ä;Åøæ#}«ƒÿÿt‰ÐÁà)ЋU‰Åxä#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Å|ä#‹E@‰ÐÁà)ЍÅP‰ˆ(ä#‰¸,ä#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)л$ä#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»(ä#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Åxä#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Å|ä#‹E@‰ÐÁà)ЍÅP‰ˆ(ä#‰¸,ä#ƒÄ[^_]ÍvU‰åWVS‹}‰ÐÁà)ЍÅP‹,ä#‹°(ä#ƒúÿu ‹E ‰0ë#‰öR‰ÁÁá)Á»(ä#‰ÐÁà)ЋDÃP‰DËPƒþÿt!v‰ÁÁá)Á»,ä#‰ÐÁà)ЋDÃP‰DËP[^_]ÃU‰åS‹]‹ ‰Èƒùÿt/I‰ÐÁà)ЋÅxä#‰ƒøÿt@‰ÐÁà)ÐÇÅ|ä#ÿÿÿÿ‰È‹$ÉÃU‰åS‹]‹M ƒ9ÿt‹@‰ÂÁâ)‰Õ|ä#[‰ÂÁâ)ÕP‹‰‚(ä#ǂ,ä#ÿÿÿÿ‰‹$ÉÃU‰åWVSƒì ‹M‹] ‹}ÇEðú¡Lã#@‰ÂÁâ)4Õ ä#…ÿt‹F8‰…ÛtBƒùt"ƒù ƒùt ë*‰öƒùtë!‹F8 ‰F8ë‰ö‹÷Ð!F8ëv‹‰F8ëÇEð‹F8‰Ã÷Ћ€œ#‰Ñ…ÂtB‰ö‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì R范ċ^8‰Ø÷Ћ +€œ#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…Ât=‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè|ƒÄ‹^8‰Ø÷ЋN<…ÁuÃû‹Eðeô[^_]ÍvU‰åVS‹u‹M ¸…É„¸ƒù‡òv‰ÐÁà)Ðfƒ<ÅHä#u +¸éӍvú‰ÈÁàö€ˆš#uƒ¸€š#uû魉öv‰ÐÁà)ЍÅ\ä#ƒùvèÍ©Çë
+¸Óà »ëC;H_#}ƒìÝÿ°D#Vÿ@#ƒÄ…Àtٍv‰ÐÁà)ЍÅfƒ»Hä#u&ƒìh„œ#VèÔüÿÿ‹ƒ$ä#ƒÄ‹…€ã#VPÿRDƒÄèSm…Àuèû¸eø[^]ÐU‰åWVSƒì‹]‹U ƒûvè©Ç¸ÿÿÿÿévœúX‰Á‰Mðƒ}t‰ÞÁæÆ€š#ü¹‹}ó¥…Òt‰ßÁçÇ€š#ü¹‰Öó¥…Ò„ºöB…°ƒ:‡§ƒ< œ#ÿtq4‰u캠œ#‹@Áà‰Eè‰ÇƒÇ‹ + ®%¸ ¨%‹U苉E䋇¤¨%©t +ƒàý‰‡¤¨%ë‰ö¾ œ#‹Uì‹2@‰ Õ ¨%‰Áƒ}äÿu»‰ + ®%ǝ œ#ÿÿÿÿƒûv +è¨Çë¸þÿÿÿˆÙÓÀ!€œ#‹uð‰ðP¸ƒÄ[^_]ÐU‰åWVSƒì,‹] ¸…Û„~¸ƒû‡pœúX‰Â‰UԉÞÁæ}؁ƀš#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé5vƒûv膧Ǹÿÿÿÿ됸ˆÙÓà#€œ#…Àt +‹UԉÐPéûƒûvèN§Çë‰ö¸ˆÙÓà €œ#‹5„œ#ƒþÿ„ô¸‰ÇˆÙÓçvv‰ÐÁà)ЍÅ`ä#ƒûvèý¦Ç¸ÿÿÿÿë‰ú#‰Ð…À„–v‰ÐÁà)ÐÁàfƒ¸Hä#u\ä#ƒûv +輦Çë 8ƒìh„œ#Vèúÿÿv‰ÃÁã)ÃÁ㋃$ä#ƒÄ‹…€ã#VPÿRDÃྠä#ƒÄƒ<3ÿtƒì ÿ43ÿ(ã#Ç3ÿÿÿÿƒÄ‹MԉÈPéîv‰ÐÁà)Ћ4Åxä#ƒþÿ…ÿÿÿ¾¸‰ÇˆÙÓç‰öv‰ÐÁà)ÐÁàfƒ¸Hä#„…Xä#ƒûvèö¥Ç¸ÿÿÿÿ됉ú#‰Ð…Àu^v‰ÐÁà)ЍÅ\ä#ƒûvèÃ¥Çëv 8»ëvC;H_#}0ƒìÝÿ°D#Vÿ@#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèzi…Àuè9 +‹MԉÈP¸eô[^_]ÐU‰åWVSƒì,¸ƒ} „T¸ƒ} ‡EœúX‰Â‰Uԋu Áæ}؁ƀš#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé ‰ö÷Eàu;ƒ} vèܤǸÿÿÿÿëv¸ŠM Óà#€œ#…Àt ‹UԉÐPéÃ= ®%ÿu‹MԉÈP¸ 鮉ö‹5 ®%vÁ๠¨%‹‰ ®%‹U ‰¤¨%‹U‰¨¨%‹U‰¬¨%‹Lã#‰°¨%Çÿÿÿÿ‹E Áຠœ#ƒ<ÿu‰4ë>‰ö‹M ‹ œ#‰ÁЃ<Å ¨%ÿt» ¨%
+‹Í 
+ƒ<ÃÿuîR‰4Å ¨%ƒ} vèé£Ç됸ŠM Óà €œ#‹5„œ#ƒþÿ„û¸‰ÃŠM Ó㐍v‰ÐÁà)ЍÅ`ä#ƒ} v蘣Ǹÿÿÿÿë v‰Ú#‰Ð…À„šv‰ÐÁà)ÐÁàfƒ¸Hä#u\ä#ƒ} vèS£Çëv ƒìh„œ#Vè¨öÿÿv‰ÃÁã)ÃÁ㋃$ä#ƒÄ‹…€ã#VPÿRDÃྠä#ƒÄƒ<3ÿtƒì ÿ43ÿ(ã#Ç3ÿÿÿÿƒÄ‹MԉÈPé÷v‰ÐÁà)Ћ4Åxä#ƒþÿ…ÿÿÿ¾¸‰ÃŠM Ó㐍v‰ÐÁà)ÐÁàfƒ¸Hä#„…Xä#ƒ} v艢Ǹÿÿÿÿë‰Ú#‰Ð…Àu^v‰ÐÁà)ЍÅ\ä#ƒ} vèV¢Çë‰ö »ëvC;H_#}0ƒìÝÿ°D#Vÿ@#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèf…Àuƒ=D_#uèÄ ‹MԉÈP¸eô[^_]ÃU‰åWVSƒì‹u‹]¡Lã#@‰ÂÁâ)<Õ ä#èŠú¡€œ##„Hºv©u=BÑøuô¾ƒ<µ œ#ÿue‹E ‰0Ç@Ç@W<ƒþvèa¡Ç됉Öëɸþÿÿÿ‰ñÓÀ!ƒþvè?¡Çëv¸þÿÿÿ‰ñÓÀ!€œ#ûév µº œ#‹[‹Å ¨%‰ƒøÿu"ƒþvèñ Ç됸þÿÿÿ‰ñÓÀ!€œ#W<ƒþv +èÌ Çë ¸þÿÿÿ‰ñÓÀ![Á⹤¨%‹
+‹u ‰‹‚¨¨%‰F‹‚¬¨%‰FƒÂ‹
+©t ƒàý‰
+ëv[¡ ®%‰Õ ¨%‰ ®%ûéI‰Öë‹G<#tUº©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè Çëv¸þÿÿÿ‰ñÓÀ!ûéëv…Ûtƒ;uƒ{u +û¸ éÓ‰ö‹‰G@úèu‹Lã#R‰ÑÁá)Ñf‰Í(ä#ƒìhä#jèN\ƒÄUè¡ä#;Xã#|¡ä#+Tã#‰Eè¡ä#+Xã#ë¡ä#+Tã#H‰Eè¡ä#+Xã#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰ÁáºÓMb‹Eì÷êÁú‹EìÁø)ÂыLã#R‰ÐÁà)Ð) Ålä#ƒì QèkÊÿÿƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄ‹ +Lã#I‰ÐÁà)ЋÅ$ä#ƒì‹…€ã#QPÿRHƒÄh„œ#ÿ5Lã#èæòÿÿ¡Lã#@‰ÂÁâ)ÂfÇÕHä#ƒÄ…Û„’ƒìEàPjè[U؃Ä‹Eà‰E؋EäC‰B…Ày +ÿM؁Bʚ;됁zÿɚ;~ ÿjʚ;ÿ5Lã#h u"ÿuÜÿuØÿ$ã#‰ÃƒÄƒûÿuƒìÿ5Lã#jèù ƒÄ¡Lã#@‰ÂÁâ)‰Õç#ÇLã#ÿÿÿÿÇ`ã#ÿÿÿÿèßËÿÿƒì ¡Lã#@‰ÂÁâ)» ä#¿DÓPèsè”ÇG@¡Lã#@‰ÂÁâ)ƒÄöDÓ2tû¸ é~‰Öë%¡€œ##„ûº‰ö©uáBÑøuô¾ƒ<µ œ#ÿu=‹M ‰1ÇAÇAƒþv +è@Çë¸þÿÿÿ‰ñÓÀ!€œ#ûé vƒì µƒ œ#Pèúðÿÿ‰ÇƒÄƒ» œ#ÿu#ƒþvèòœÇë‰ö¸þÿÿÿ‰ñÓÀ!€œ#Á⹤¨%‹
+‹] ‰‹‚¨¨%‰C‹‚¬¨%‰CƒÂ‹
+©t ƒàý‰
+ëv¡ ®%‰Õ ¨%‰= ®%ûël‹G<#…Àuû¸ë`v‰Öë‹G<º#t ©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè/œÇëv¸þÿÿÿ‰ñÓÀ!û¸eô[^_]ÍvU‰åWVSƒì ‹}¡Lã#@‰ÂÁâ)4Õ ä#è¹ú‹F<#…Àt è¦û颋‰F@úèq‹Lã#R‰ÑÁá)Ñf‰Í(ä#ƒìhä#jè6XƒÄUè¡ä#;Xã#|¡ä#+Tã#‰Eè¡ä#+Xã#ë¡ä#+Tã#H‰Eè¡ä#+Xã#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыLã#R‰ÐÁà)Ð) Ålä#ƒì QèRÆÿÿƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄ‹ +Lã#I‰ÐÁà)ЋÅ$ä#ƒì‹…€ã#QPÿRHƒÄh„œ#ÿ5Lã#èÍîÿÿ¡Lã#@‰ÂÁâ)» ä#fÇDÓ(ÇLã#ÿÿÿÿÇ`ã#ÿÿÿÿèaÈÿÿ¡Lã#@‰ÂÁâ)¿DÓ‰$è™oè‹F<#ƒÄ…Àuû¸ë èÿû¸eô[^_]ÐU‰åSƒì‹]úEðPjè¢VƒÄƒ=(#ÿu
+ÇEèëWMèUð¡$#;B|¡ #+Eð‰Eè¡$#+Bëv¡ #+EðH‰Eè¡$#+Eôʚ;‰Aƒì ÿ5(#ÿ(ã#ƒÄ…ÛtN]ð‹E𣠝#‹Eô£$#jh€u"ÿuôÿuðÿ$ã#‰ÃƒÄƒûÿuƒìÿ5Lã#jè:ƒÄ‰(#ë +vÇ(#ÿÿÿÿû‹Eè‹]üÉÐU‰åVSƒì‹uƒ<µ œ#ÿuC‰uèÇEìÇEð¡Lã#‰Eôƒþvèü˜Ç鮐¸þÿÿÿ‰ñÓÀ!€œ#降 µº œ#‹[‹Å ¨%‰ƒøÿu"ƒþv豘Ç됸þÿÿÿ‰ñÓÀ!€œ#[Á๤¨%‹‰U苐¨¨%‰U싐¬¨%‰Uð‹°¨%‰UôP‹
+©tƒàý‰
+ë[¡ ®%‰Õ ¨%‰ ®%ƒìEèPVè
+ƒÄeø[^]ÃU‰åVSƒì¡Lã#@‰ÂÁâ)4Õ ä#‹F0©…Í +‰F0‹F8‰Ã÷Ћ€œ#‰Ñ…ÂtA‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè„þÿÿƒÄ‹^8‰Ø÷Ћ +€œ#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…ÂtZ‰Ø÷л!Ètv‰Ú©u
+CÑøuòº‰UèÇEìÇEð¡Lã#‰EôƒìEèPRèƒÄ‹^8‰Ø÷ЋN<…Áu¦f0ÿïÿÿeø[^]ÃU‰åWVSƒì,‹]œúX‰Â‰UÌ¡Lã#@‰ÂÁâ)Õ ä#‰UЉÞÁæ}؁ƀš#ü¹ó¥÷Eàuƒ}Ø„îƒ}Øÿ„ä÷EàuCƒ}Øu=ƒìSh¬5#èw}ƒÄ÷Eàtƒì‹M ÿqhÂ5#èX}ƒÄƒì jèïÎÿÿƒÄ‹UЋB8‰EԉƍUԃûv +èh–Çë ¸ˆÙÓà ‹EÔ E܉EԋUЃÂ<ƒûv +è<–Çë ¸þÿÿÿˆÙÓÀ!‹EԋUЉB8û÷Eàtƒìjÿu SÿUäëƒìj‹M ÿqSÿU؃Äú‹EЉp8‹ỦÐPeô[^_]ÃU‰åWVSƒì ‹}‰ÐÁà)ÐÁྠä#fƒ|(uF˜àƒ<3ÿtƒì ÿ43ÿ(ã#Ç3ÿÿÿÿƒÄƒìh„œ#Wèúèÿÿ‰ÂÁâ)‹Õ$ä#ƒÄë ‰ÐÁà)ÐÁàfƒ¸Hä#u!‹$ä#ƒì‹•€ã#WRÿPD¸ƒÄë‰ö¸eô[^_]ÍvU‰åWVSƒì º¿ˆš#¾„š#»Œš#¹ œ#‰ö‰ÐÁàǀ€š#Ç8Ç0ÇÇ‘ÿÿÿÿBƒúvϺ» ¨%¹¤¨%RÁàB‰ÇDƒú>~éLj®%ÿÿÿÿÇœ®%Ç ®%Ç€œ#Ç„œ#ÿÿÿÿÇ(#ÿÿÿÿº¹à#»ä#‰öRÁàÇÇÿÿÿÿÆDBƒú~áƒìjhp"èÆÕÿÿƒÄeô[^_]ÍvU‰å‹EǸ]ÐU‰å‹EÇÿÿÿÿ¸]ÐU‰åƒì‹U‹M ƒùvèê“Ǹÿÿÿÿ됸Óà ¸ÉÃU‰åƒì‹U‹M ƒùv趓Ǹÿÿÿÿ됸þÿÿÿÓÀ!¸ÉÃU‰åƒì‹M ƒùv腓Ǹÿÿÿÿë ¸Óà‹U#ÉÉöU‰åƒì ÿuÿu ÿuèÔçÿÿƒÄÉÍvU‰åWƒì$‹UEè‰E丹‹}äüó«ƒìjÿuäRèBñÿÿƒÄ…Àu +‹Uè‹E ‰¸‹}üÉÐU‰åƒì jÿu ÿuèñÿÿƒÄÉÃU‰åƒì‹E…Àu¸ëƒìPÿu ÿuèíðÿÿƒÄÉÃU‰åƒìÿuÿ5Lã#è`èÿÿƒÄÉÍvU‰åVSƒì ‹]‹E ‰EèÇEìÇEð脒‹0ƒìEØPEèPSèAéÿÿƒÄ»ÿÿÿÿ…Àu ÷Eàu‹]ØèT’‰0‰Øeø[^]ÐU‰å‹M¡Lã#@‰ÂÁâ)¡€œ# Õ\ä#‰¸]ÉöU‰åSƒì‹E‹U ú‹Lã#‰Lã#ÇD_#jPj jèœìÿÿƒÄÇD_#‰Lã#û‹]üÉÍvU‰åS‹M‹] ¡H_#ʼnŠ@#‰šD#@£H_#‹$ÉÍvU‰åVS‹]Cÿƒøv苑Ç~¸ÿÿÿÿëp‰öœúX‰Æ[€<…è#u‰ðPèa‘ǸÿÿÿÿëF[Áâ¹à#‹E ‰
+‹E‰‚ä#ÆD
+ƒìjhÀu"Sè¹T·Ã‰$èÒeƒÄ‰ðP¸eø[^]ÍvU‰åƒì¸ÉÍvU‰åƒì ‹E‰EèÇEìÇEð‹Lã#‰UôUèRPè›ùÿÿƒÄÉÉöU‰åVS‹uv‰ÃÁã)ÃÁ㸠ä#DŽàÿÿÿÿL0ƒìh„œ#Vèõãÿÿ‹ƒ$ä#ƒÄ‹…€ã#VPÿRDè?³ÿÿƒÄeø[^]ÐU‰åƒìÇ(#ÿÿÿÿjjèWèÿÿè³ÿÿƒÄÉÐU‰åƒìEüÇEüÿÿÿÿPèôÿÿƒÄÉÐU‰åƒì‹E‹‰EüEüPjÿL_#‹UüRÁà¹à#ƒÄƒ<t ûƒì RÿƒÄú‹Eü@ƒì ÿ4…ä#èþ¬ÿÿƒÄÉÐU‰åWVSƒì ‹u ‹]ƒ}t讏Ǹÿÿÿÿén‰öúƒ= ¥#ÿt ƒ= ®%ÿuûèƒÇ ¸ÿÿÿÿéCv¡ ¥#‰‹ ¥#Õ)п¤ž#‹DÇ0£ ¥#‹Õ)й ž#ÇDÁ0…öu8‹Õ)ÐÇÁ‹Õ)ÐÇÇ‹Õ)ЉŨž#닍<Å)Ǎ<ý ž#ü¹ó¥‹Õ)ЍŃº ž#u#¡ ®%‰‚Èž#@Áàƒˆ´¨%‹€ ¨%£ ®%‹Õ)ÐÇÅ´ž#ÿÿÿÿ‹Õ)ЍŸž#Ç@NjÕ)ЍÅÀž#Ç@NjÕ)ÐÇÅ̞#û¸ƒÄ [^_]ÃU‰åSƒì‹]ƒûwúÝ)؃<ÅО#uûèÿÇ¸ÿÿÿÿ閍vÝ)ØÁàǀО#ƒÀº¤ž#ƒ<ÿtƒì ÿ4ÿ(ã#ƒÄÝ)ØÁàƒ¸ ž#uE‹Èž#R Åö´¨%u¡ ®%‰ ¨%‰ ®%Ý)؋ÅȞ#@ƒ$Å´¨%üû¸‹]üÉÃU‰åWVSƒìL‹E‰E´Áà+E´Áàƒ¸ ž#…‹P ‹‚¨ž#@öÅ´¨%t¸¬ž#ƒ< „ôÿéì‰ö‹M´Áá+M´Ááy LJ¬ž#¾¨ž#‹7@‹ ®%‰Ý ¨%£ ®%jÿ41ÿ±¤ž#jèhçÿÿ‹7@ƒ Å´¨%錐‹E´Áà+E´Á๠ž#ƒ<uwPƒ<
+tÿ°¨ž#ÿ°¬ž#ÿ4
+ëQvÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà‹E´Áà+E´Áà¨ž#Rÿ°¬ž#EÈPEÄPèÙÙÿÿƒÄ‹E´Áà+E´Åƒ¸¨ž#u +ƒ¸¬ž#„ÀºÀž#‹E´Áà+E´ŋ‰E¸M¸‹D‰A‹E¸ƒ¸ž#‰ƒÀž#‹Aƒ¼ž#‰B…Àyÿ‹Àž#Bʚ;ë‰özÿɚ;~ ÿjʚ;‹E´Áà+E´ÿu´hŒx"ÿ4ÅĞ#ÿ4ÅÀž#ÿ$ã#‰ÃƒÄƒûÿuƒìÿ5Lã#jè+ùÿÿƒÄ‹E´Áà+E´‰Å´ž#ë‰ö‹E´Áà+E´ÇÅ´ž#ÿÿÿÿeô[^_]ÃU‰åWVSƒì‹u‹}ÇEäƒþw3ƒ}t-‹Exÿɚ;w!‹]{ ÿɚ;wúõ)ðƒ<ÅО#uûèÁŠÇ¸ÿÿÿÿ鐅ÿ„·õ)ðƒ<Å´ž#ÿuÇG ÇGëwƒìEèPjèGÇEäƒÄ¹Àž#õ)ðō]è‹D;C|‹+Eè‰G‹D+Cë(¹Àž#õ)òÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹¸ž#õ)ðÁà‹‰‹D‰Gõ)ðÅº¤ž#ƒ<ÿtƒì ÿ4ÿ(ã#ƒÄ‹Eƒxu
+ƒx „þº¸ž#õ)ð ŋ]‹‰
+‹C‰D
+÷E t¸Àž#‹S‰‹S ‰Tëmvƒ}äuƒìEèPjèøEƒÄõ)ð ō‘Àž#‹Eè‹]C‰Àž#‹EìC ‰B…Àyÿ‰Àž#Bʚ;ëzÿɚ;~ ÿjʚ;õ)ðVhŒx"ÿ4ÅĞ#ÿ4ÅÀž#ÿ$ã#‰ÃƒÄƒûÿuƒìÿ5Lã#jè­öÿÿƒÄõ)ð‰Å´ž#û¸eô[^_]ÃU‰åWVSƒì ‹]‹} ƒûwúÝ)؃<ÅО#uûèzˆÇ¸ÿÿÿÿ鷉öÝ)؃<Å´ž#ÿuÇG ÇGëoƒìEèPjèÒDƒÄ¹Àž#Ý)؍ōuè‹D;F|‹+Eè‰G‹D+Fë'¹Àž#Ý)ÚÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹¸ž#Ý)ØÁà‹‰‹D‰Gû¸eô[^_]ÍvU‰åƒìƒ}t藇Çëv臇ǸÿÿÿÿÉÉöU‰åƒìƒ}tèg‡Ç¸ÿÿÿÿë‰öƒì ÿu èÍ¿ÿÿ¸ƒÄÉÍvU‰åƒì‹E ƒ}tè,‡Ç¸ÿÿÿÿëv…Àt +ÇÇ@è¸ÉÃU‰åƒì‹UƒúwúÕ)Ѓ<ÅО#uûè܆ǸÿÿÿÿëvÕ)ЋÅ̞#ûÉÐU‰åWVS¹»¤ž#¿ ž#¾¬ž#‰öÍ)ÈÁàÇDÿÿÿÿ¸ž#ÇBǍP0Ç:ÇD A‰‰Áƒù~ºÇœ¥#ÿÿÿÿÇ ¥#[^_]ÐU‰å]ÍvU‰å¸]ÉöU‰åVSœúX‰Ã¡Lã#@‰ÂÁâ)¾ ä#‹DÖ0©t0©t)ƒì jèzÁÿÿ¡Lã#@‰ÂÁâ)¿DÖ‰$è"[ƒÄ‰ØPeø[^]ÃU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡Lã#@‰ÂÁâ)¹ ä#‹DÑ0Áèƒà‹U ‰¡Lã#@‰ÂÁâ)Õ0‹
+%ÿþÿÿ ؉
+û¸‹$ÉÉöU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡Lã#@‰ÂÁâ)¹ ä#‹DÑ0Áè ƒà‹U ‰¡Lã#@‰ÂÁâ)Õ0‹
+%ÿýÿÿ ؉
+û¸‹$ÉÉöU‰åWVSƒì ‹} ÇEðú‹EÇÿÿÿÿÇ@¾;5Dã#s9v‹µàã#ƒ{u ƒìWVÿS,ƒÄ…ÀxƒìWÿuVÿS0‰EðƒÄF;5Dã#rÊû‹Eðeô[^_]ÉöU‰åƒì‹U¸ƒ:ÿt ¸ƒzu‹‹…àã#ƒìRÿ2ÿP4ƒÄÉÍvU‰åƒì‹U¸ƒ:ÿt‹‹…àã#ƒìRÿ2ÿP8ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹…àã#ƒìRÿ2ÿP<ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹…àã#ƒìRÿ2ÿP@ƒÄÉÉöU‰åVS‹u‹µ€ã#ƒìÿ°ôhù5#è^j»ƒÄ‰ö[‰ÐÁà)ÐÁà9°$ä#……ƒÀ º ä#f|€ttfƒ|tlƒì f‹Dfƒøwƒì ·ÀPè ¨ƒÄë%v·Ð¸Ó5#ú€t¸ß5#út¸ë5#P[‰ÐÁà)ÐÁàÿ°ôæ#4ä#PSh`6#è¹iƒÄ Cû™ŽUÿÿÿeø[^]ÉöU‰åWVSƒì ‹E‹…€ã#‰Eð‹¸üƒì ‹Uð‹‚ðøPèo§‰ÆƒÄƒþÿu +¸ÿÿÿÿ…ÿtrOëՐv‰ÐÁà)Ѝ ÅöQä#tRQ@»,ä#ƒ<D‹ç#‰ƒìý‰Ø‹Uð‚ðPVè\¥ƒÄ‹Eð˜ðSV腦ƒÄéiÿÿÿ‰ðeô[^_]ÉöU‰åWVSƒì‹E‹…€ã#‰Eð‹Mƒy(…©‹=Lã#‰ÐÁà)Ѝž$ä#‹U93…‹M I‰ÂÁâ)ÂÁ⋄Љ„й,ä#‹D@‰D@‹„à‰„àƒÂ0¹ ä#‹
+%ÿ÷ÿÿ‹\0ã ؉
+‹UðƒÂ¸ƒ¼º€ÿ•ÀH‹] ‰„š€é¢v‹U R‰ÂÁâ)ÂÁâ»$ä#‹A‰„Ѓyt‹A‰‚lä#‹A‰„àë-‰ö‹] [‰ÐÁà)ÐÁà‹]ð‹“ô‰lä#‹“ô‰ç#ƒy$u‹E @‰ÐÁà)Ё ÅPä#¸ƒy ”ÀH‹U ‹Mð‰„‘ˆ¸ƒÄ[^_]ÃU‰åWVSƒì ‹U‹<•€ã#ƒ¿t8LJƒì‹E @‰ÐÁà)ЋÅôæ#‹—ðÂPÿu 詤酋E @‰ÐÁà)ЍÅöƒQä#t?K@¾,ä#ƒ<11º$ä#‹1„à‰1ƒì‹„Ћ—ðÂPÿu èK¤ë*ƒì‹E @‰ÐÁà)ЋÅôæ#‹—ðÂPÿu è³£ƒÄ‹E @‰ÐÁà)ÐfÇÅHä#€eô[^_]ÐU‰åWVSƒìH‹]ÇE¼ÇEÀfÇEÄÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà¶Ã +f‰E¸‹€ã#‹€ø‰EÈÇE̍E¸jjPhœ"h6#腧ÿÿ‰ÆƒÄ ƒþÿuƒì h 6#èVËÿÿƒÄ‹<€ã#v‰ÐÁà)Ðfƒ<ÅHä#tµ€Gƒ<ÿtJÿëE‰öƒìv‰ÃÁã)ÃÁ㍃dä#PjèJ;fǃHä#€ƒÄ‹ƒôæ#‹—ðÂPVè䢃čeô[^_]ÐU‰åWVSƒì‹}h
+6#è¾ÊÿÿèiÁÿÿ‰EðƒÄ hPh 6#è£ÊÿÿÇ$èÏÄÿÿ‰ÃƒÄSh>6#è‡Êÿÿ‹Eð‰…€ã#ƒÄ jhJ6#Sè=efÇCÆCÇC4Œ"ÇC`Œ"ÇC (‚"ÇC$ƒ"ÇC(lŒ"ÇC,ȃ"ÇC0xŒ"ÇC4€Œ"ÇC8ŒŒ"ÇC<@…"ÇC@̌"ÇCDX"ÇCH "ÇCL¨"ÇCP@Ž"ÇCTˆŽ"ÇCX¼Ž"ÇC\ "ÇC`À"ÇCd؏"ÇChð"ÇCl"ÇCp "ÇCt8"ÇCxP"ÇC|h"ǃ€€"ǃ„˜"¸ƒÄS‰öDŽ‚€ÿÿÿÿ@=™~í‹EH‰ƒüƒì ‹EÁàPè˜Ãÿÿ‰ƒð¾ƒÄ;u}ƒì ‹ƒððPèꟃÄF;u|åÿçw¿èÿ ¡v¿ ¡‰»ô‹E‰ƒøƒ} tƒìjÿuðh<†"萾ÿÿƒÄeô[^_]ÐU‰åWVSƒì ‹M‹u ‹]‹€ã#‰Eð…Éx[; +Pã#sS‹€ã#‹@%ÿÿÿ=u=þ™wv‰ÐÁà)Ðfƒ<ÅHä#u +¸éèvv‰ÐÁà)Ð9 Å$ä#t +¸&éȍv…Ûuv‰ÐÁà)Ё ÅPä#ë)ƒûuv‰ÐÁà)Ё$ÅPä#ÿ÷ÿÿë ¸郉öv‰ÐÁà)ÐÁà˜Ð¿$ä#‹U9;t\f¸Hä#€u=ƒì‹;‹Mð‹‘ðÂPV蜞‹E‰;ƒÄ‹Uð‹‚ð‹MÈPV蹟ƒÄëv‰ÐÁà)ЋU‰Åôæ#¸eô[^_]ÍvU‰åVS‹M‹4€ã#…Éx; +Pã#s‹€ã#‹@%ÿÿÿ=t¸ÿÿÿÿëw¡Lã#@‰ÂÁâ)¸ÿÿÿÿ9 Õ$ä#uZúè!P‹Lã#R‰ÑÁá)Ñ» ä#f‰DËdžè°¨ÿÿ¡Lã#@‰ÂÁâ)ƒì ¿DÓPèçO薲ÿÿƒÄû¸eø[^]ÉöU‰å‹E‹…€ã#‹€ü]ÍvU‰å‹E‹…€ã#‹€ô]ÍvU‰åS‹]‹M …ÛxU;Pã#sM‹€ã#‹@%ÿÿÿ=u7ù™wI‰ÐÁà)Ðfƒ<ÅHä#u¸ëMI‰ÐÁà)Ð9Å$ä#t ¸&ë3‰öI‰ÁÁá)ÁÁá¸öQä#”À‹U‰‹‘ôæ#‹E‰¸‹$ÉÉöU‰å‹E f8t·‹E +9Âu¸ë¸ÿÿÿÿ]ÐU‰å¸ÿÿÿÿ]ÉöU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰åSƒì ‹E‹M ‹…€ã#I‰ÐÁà)ЋÅôæ#‹“ðÂPQè;œƒÄ‹]üÉÍvU‰åWVSƒì ‹E‹u ‹<…€ã#v‰ÐÁà)Ðfƒ<ÅHä#tµ€Gƒ<ÿtHÿëCƒìv‰ÃÁã)ÃÁ㍃dä#PjèR5fǃHä#€ƒÄ‹ƒôæ#‹—ðÂPVè윃čeô[^_]ÐU‰åSƒì ‹E‹M ‹…€ã#I‰ÐÁà)ÐÁàfǀHä#€‹€ôæ#‹“ðÂPQ蠜ƒÄ‹]üÉÃU‰å]ÍvU‰åWVSƒì ‹U‹•€ã#‰Eð‹U <•€‰ÆƒÆƒ<7~MƒìR‰ÃÁã)ÃÁ㍃dä#Pjè‹4ÿ 7ƒÄ‹ƒôæ#‹Mð‹‘ðÂPÿu 躛fǃHä#€ƒÄë‹E @‰ÐÁà)ÐfÇÅHä#eô[^_]ÐU‰åƒì‹E‹M ‹…€ã#ƒÀDŽˆ€ÿÿÿÿI‰ÐÁà)ÐfÇÅHä#hÄã#QèðÉÿÿƒÄÉÍvU‰å‹E‹U ‹…€ã#ƒÀDŽ€R‰ÐÁà)ÐfÇÅHä#]ÃU‰åWVSƒì4‹u v‰EäÁà+EäfÇÅHä#EèPjè“3Mè»@B‹Eº÷ó‰Uà’€€‰E܋A‹U܍ЉE؉A»¡/¸D÷ë‰ÓÁû‹EØÁø)ÿƒÞC‹E÷ç‰×‰øÁèEè‹A»Êš;™÷û‰Ó‰YƒÄVh°"ÿuìÿuèÿ$ã#‰ÃƒÄƒûÿuƒìÿ5Lã#jèAäÿÿƒÄ v‰ÈÁà)ȉÅç#eô[^_]ÐU‰åƒìÿ5Lã#jèäÿÿ¸ƒÄÉÍvU‰åƒìÿ5Lã#jèñãÿÿƒÄÉÃU‰åƒìÿ5Lã#jèÙãÿÿƒÄÉÃU‰åƒìÿ5Lã#jèÁãÿÿƒÄÉÃU‰åƒìÿ5Lã#jè©ãÿÿƒÄÉÃU‰åƒìÿ5Lã#jè‘ãÿÿƒÄÉÃU‰åƒìÿ5Lã#jèyãÿÿƒÄÉÃU‰åƒìÿ5Lã#jèaãÿÿƒÄÉÃU‰åƒìÿ5Lã#jèIãÿÿƒÄÉÃU‰åƒìÿ5Lã#jè1ãÿÿƒÄÉÃU‰åƒìÿ5Lã#jèãÿÿƒÄÉÃU‰åWVSƒì‹MI‰ÃÁã)ÃÁãº$ä#‹‹4…€ã#¿ ä#fÇD(€‹„Ћ–ðÂPQè=™Ç„àÿÿÿÿ詗ÿÿƒÄeô[^_]ÉöU‰åVSƒì hÀ7#è
+Áÿÿèµ·ÿÿ‰ÆÇ$Œè/»ÿÿ‰Ã‰µ€ã#ƒÄ jhX7#Sè®[fÇCÆCÇC\’"ÇC’"ÇC œ’"ÇC$Ē"ÇC(ÇC,ܒ"ÇC0è’"ÇC4ð’"ÇC8ü’"ÇC<“"ÇC@ “"ÇCDH“"ÇCHp“"ÇCL˜“"ÇCPÀ“"ÇCTè“"ÇCX”"ÇC\8”"ÇC`d”"ÇCdŒ”"ÇCh´”"ÇClܔ"ÇCp•"ÇCt,•"ÇCxT•"ÇC||•"ǃ€¤•"ǃ„Ì•"ǃˆÿÿÿÿÇ$c7#èô¿ÿÿƒÄ jVhô•"脵ÿÿƒÄeø[^]ÉöU‰å‹M‹E ‹€ã#fƒ8t·9Èu¸ƒºˆÿt¸ÿÿÿÿ]ÉöU‰å¸ÿÿÿÿ]ÉöU‰åƒì‹E‹…€ã#ÿ°ˆhÅ6#èìYƒÄÉÍvU‰å‹E‹…€ã#‹€ˆ]ÍvU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰å]ÍvU‰å‹E @‰ÂÁâ)ÂfÇÕHä#]ÃU‰åƒìhÔ6#èxYƒÄÿ5Lã#j è„àÿÿƒÄÉÍvU‰åƒìhÛ6#èPYƒÄÿ5Lã#j è\àÿÿƒÄÉÍvU‰åƒìhâ6#è(YƒÄÿ5Lã#j è4àÿÿƒÄÉÍvU‰åƒìhé6#èYƒÄÿ5Lã#j è àÿÿƒÄÉÍvU‰åƒìhð6#èØXƒÄÿ5Lã#j èäßÿÿƒÄÉÍvU‰åƒìh÷6#è°XƒÄÿ5Lã#j è¼ßÿÿƒÄÉÍvU‰åƒìhþ6#èˆXƒÄÿ5Lã#j è”ßÿÿƒÄÉÍvU‰åƒìh7#è`XƒÄÿ5Lã#jèlßÿÿ¸ƒÄÉÉöU‰åƒìh 7#è4XƒÄÿ5Lã#jè@ßÿÿƒÄÉÍvU‰åƒìh7#è XƒÄÿ5Lã#jèßÿÿƒÄÉÍvU‰åƒìh7#èäWƒÄÿ5Lã#jèðÞÿÿƒÄÉÍvU‰åƒìh!7#è¼WƒÄÿ5Lã#jèÈÞÿÿƒÄÉÍvU‰åƒìh(7#è”WƒÄÿ5Lã#jè ÞÿÿƒÄÉÍvU‰åƒìh/7#èlWƒÄÿ5Lã#jèxÞÿÿƒÄÉÍvU‰åƒìh67#èDWƒÄÿ5Lã#jèPÞÿÿƒÄÉÍvU‰åƒìh=7#èWƒÄÿ5Lã#jè(ÞÿÿƒÄÉÍvU‰åƒìhD7#èôVƒÄÿ5Lã#jèÞÿÿƒÄÉÍvU‰åƒìhK7#èÌVƒÄÿ5Lã#jèØÝÿÿƒÄÉÍvU‰åSƒì0‹]ÇEÜÇEàfÇEäÇEè¶Ãf‰EØÇEìEØjjPh€–"hR7#è˜ÿÿƒÄ ‹€ã#‰Ã‰šˆƒûÿuƒì h€7#èÒ»ÿÿƒÄ[‰ÐÁà)ÐÇÅXä#ÿÿÿÿ‹]üÉÐU‰åôëýU‰åWVSƒì ‹} ¾ú»ëvCûÿ2Ý)ØÁàºÀ¥#€|t߃ìÿ4ÿuèaVƒÄ…Àuʾ…öt1ÿÀuèðnÇûéÜûÝ)؍…Ä¥#éˉö÷Ç@uè¿nÇû髍v‹E‰Eð=ÿ~èžnÇû銉ö‹Æ#ƒúÿtqÕ)Ѝ<…w‹†Ä¥#£Æ#ƒì ÿuèV@‰$èß´ÿÿ»À¥#‰ƒÄÿuPè7U‹Eð‰‡È¥#‡Ì¥#‰$è,‘ÆDƒÄû‡Ä¥#ëvènÇû¸eô[^_]ÍvU‰åWVSƒì ¾ú¿»À¥#vý)øÁà€|tƒìÿ4ÿuèUƒÄ…Àu¾Gÿÿ~ʅötJƒì ÿuèOUƒÄ@Pý)ûÁã¾À¥#ÿ43è}´ÿÿƒÃÆD3¡Æ#‰ƒÄ¥#‰=Æ#ƒÄûë‰öèSmÇû¸eô[^_]ÍvU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…Ø¥#uèmǸÿÿÿÿé‰öèÏæÿÿúè5B‹Lã#R‰ÑÁá)Ñf‰Í(ä#‹Õ)Ѝ4…À¥#ƒ~ ÿu
+ƒ~…“ƒìWjÿL_#ƒÄhä#jè8)ƒÄUè¡ä#;Xã#|¡ä#+Tã#‰Eè¡ä#+Xã#ë!‰ö¡ä#+Tã#H‰Eè¡ä#+Xã#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыLã#R‰ÐÁà)Ð) Ålä#ƒì QèR—ÿÿƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄ‹ +Lã#I‰ÐÁà)ЋÅ$ä#ƒì‹…€ã#QPÿRH‹ +Lã#I‰ÐÁà)л ä#fÇDÃ(ÍǂÀÁ#‹‰‚ÄÁ#ƒÄF PQèÇLã#ÿÿÿÿÇ`ã#ÿÿÿÿèM™ÿÿ¡Lã#@‰ÂÁâ)¿DÓ‰$è…@è4£ÿÿƒÄûèÿäÿÿë8ÿNƒìWjÿL_#¡Lã#@‰ÂÁâ)¿Õ(ä#‰$èF@èõ¢ÿÿƒÄû¸eô[^_]ÃU‰åWVSƒì ‹}‹]?ÿw‹Õ)Ѐ<…Ø¥#uè¯jǸÿÿÿÿéVv…ÛuúëúèÒ?‹Lã#R‰ÑÁá)Ñf‰Í(ä#‹Õ)Ѝ4…À¥#…Ûu0ƒ~ ÿu‹E 9F}èMjÇ û¸ÿÿÿÿéó‹E )Fûéâèäÿÿƒ~ ÿu ‹E 9F‘ƒìWjÿL_#ƒÄhä#jèš&ƒÄUè¡ä#;Xã#|¡ä#+Tã#‰Eè¡ä#+Xã#ë¡ä#+Tã#H‰Eè¡ä#+Xã#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыLã#R‰ÐÁà)Ð) Ålä#ƒì Q趔ÿÿƒÄƒ=\ã#ÿtƒì ÿ5\ã#ÿ(ã#Ç\ã#ÿÿÿÿƒÄ‹ +Lã#I‰ÐÁà)ЋÅ$ä#ƒì‹…€ã#QPÿRH‹ +Lã#I‰ÐÁà)л ä#fÇDÃ(͋E ‰‚ÀÁ#‹‰‚ÄÁ#ƒÄF PQè'ÇLã#ÿÿÿÿÇ`ã#ÿÿÿÿ貖ÿÿ¡Lã#@‰ÂÁâ)¿DÓ‰$èê=虠ÿÿƒÄûèdâÿÿë<‰ö‹E )FƒìWjÿL_#¡Lã#@‰ÂÁâ)¿Õ(ä#‰$è§=èV ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…Ø¥#uèhǸÿÿÿÿéU‰öè,…À„‡œúX‰Æ‹Õ)Ѝ…À¥#‹JA‰J‹Z ƒûÿtG‹ÝÀÁ#9È<)Á‰È‰BƒìB PSèʊ[‰ÐÁà)ЋÅ$ä#ƒÄ‹•€ã#SRÿPDè]ŠÿÿƒÄƒìWjÿL_#ƒÄ‰ðPé¼‰öúèª<‹`ã#R‰ÑÁá)Ñf‰Í(ä#‹Õ)Ѝ…À¥#‹JA‰J‹Z ƒûÿtG‹ÝÀÁ#9È<)Á‰È‰BƒìB PSè*Š[‰ÐÁà)ЋÅ$ä#ƒÄ‹•€ã#SRÿPDèå”ÿÿƒÄƒìWjÿL_#¡Lã#@‰ÂÁâ)¿Õ(ä#‰$è <躞ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹] ÇEð‹E8ÿw‹Õ)Ѐ<…Ø¥#uèlfǸÿÿÿÿéÊèc*…À„ÃœúX‰Â‰Uì‹E‹Õ)Ѝ4…À¥#^‹^ ƒûÿts݉‹€ÀÁ#;F_¿ÀÁ#ÇEðv‹F+:‰FƒìF PSè
+‰[‰ÐÁà)ЋÅ$ä#ƒÄ‹•€ã#SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿL_#ƒÄƒ}ðtèlˆÿÿ‹Uì‰ÐPéõúèÊ:‹`ã#R‰ÑÁá)Ñf‰Í(ä#‹E‹Õ)Ѝ4…À¥#^‹^ ƒûÿtr݉‹€ÀÁ#;F^¿ÀÁ#ÇEð‰ö‹F+:‰FƒìF PSè2ˆ[‰ÐÁà)ЋÅ$ä#ƒÄ‹•€ã#SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿL_#ƒÄƒ}ðt輒ÿÿ¡Lã#@‰ÂÁâ)ƒì ¿Õ(ä#Pèð9蟜ÿÿƒÄû¸eô[^_]ÉöU‰åWVSƒì ¾¿Ä¥#õ)óÁãǃÀ¥#‰4;ǃȥ#ƒì ƒÌ¥#PèF‡ƒÃF‰;ƃȥ#ƒÄ‰Æþÿ~±Ç¸Á#ÿÿÿÿǐÆ#ƒìjh4¥"蒥ÿÿƒÄeô[^_]ÍvU‰åVS‹uú>ÿw‹Õ)Ѐ<…Ø¥#uèÉcÇû¸ÿÿÿÿënvƒì ‹Õ)лÀ¥#ÿ4ƒèUKƒÄ@P‹Õ)Ðÿ4ƒè‰ªÿÿ‹Õ)ÐÆDƒ‹Õ)ЋÆ#‰…Ô¥#‹£Æ#ƒÄû¸eø[^]ÉöU‰åƒì‹Mú9ÿw‹Õ)Ѐ<…Ø¥#uècÇû¸ÿÿÿÿëb‰ö‹Õ)Ѓ<…Ì¥#ÿtèîbÇû¸ÿÿÿÿë8‹Õ)ÐÆ…Ø¥#‹Õ)ЋÆ#‰…Ô¥#‹£Æ#û¸ÉÉöU‰åSƒì‹M‹] 9ÿw‹Õ)Ѐ<…Ø¥#uèubǸÿÿÿÿë_ú‹Õ)ÐÁàƒ¸Ì¥#ÿu ‹€È¥#‰ë7‰öÇ‹Õ)Ћ…Ì¥#¹(ä#vÿ @‰ÐÁà)ЋDÁPƒøÿuëû¸‹]üÉÃU‰åVS‹u‹M¸ùÿ‡–ú‹Æ#‰ƒúÿtnÕ)Ћ…Ô¥#£Æ#‹Õ)лÀ¥#ǃ‹Õ)Љ …È¥#ƒì ‹Õ)Ѝ…Ì¥#P腄‹Õ)ÐÆDƒƒÄëègaÇû¸ÿÿÿÿëû¸eø[^]ÍvU‰åƒì‹M9ÿw‹Õ)Ѐ<…Ø¥#uèaǸÿÿÿÿë=ú‹Õ)Ѝ…À¥#ƒx ÿuƒxuèì`Ç û¸ÿÿÿÿë ‰öÿHû¸ÉÐU‰å‹E@‰ÂÁâ)¸fƒ<ÕHä#”À]ÐU‰åVS‹][‰ÐÁà)Ѝ4Åfƒ¾Hä#uAƒì‹ÝÄÁ#Õ)Ѝ…Ì¥#PS脃‹†$ä#ƒÄ‹…€ã#SPÿRD¸ƒÄ됸eø[^]ÃU‰åVSƒ=X_#…ÚÇX_#¹»À®%¾Ä®%‰ÁàP ÆÇ2ÿÿÿÿÆDAƒùváƒìjjh Æ#èÜýÿÿ¹ƒÄ¾$±%» ±%‰ö‰ÁàQ‰0Ɖуù +véÇT³%ÿÿÿÿÆP³%DZ%¹¾„³%»€³%vÍ)ÈÁàQ‰0ƉуùvãÇ°¶%ÿÿÿÿƬ¶%Çȶ%eø[^]ÐU‰åWVSƒìŠEˆEóŠUˆUòfÇEæ¾<u€út €}óu€}òuè_Ǐ¸ÿÿÿÿé7‰öúƒ=±%ÿuèí^ǍûÇEìÿÿÿÿ됡±%€‹Õ$±%‰±%û‰Eìƒ}ìÿu +¸ÿÿÿÿéìvƒì h Æ#ègñÿÿƒÄ‹]¾¹º÷ñ‰×ëf‰ö¿€<Åà®%t0ƒìÿu¿ōƒÀ®%Pè³EƒÄ…Àu€»Ø®%„Ÿ¾ëG¹‰øº÷ñ‰×fÿEæfƒ}懜‰ó„Ût–¿Áãƃà®%ƒìÿuƒÀ®%Pè÷D‹E쉃Ԯ%ƒÄ€}óu‰Â’‹] f‰Å(±%ëv‹E썀‹E ¯Ef‰Õ(±%úƒì ‹U썒Áã·ƒ(±%Pè5¤ÿÿº,±%‰ƒÄû…Àu%è”]ǒƒì h Æ#èAõÿÿ¸ÿÿÿÿ魍v‹E썀ÁãS‰Uྠ±%‹ƒ,±%‰‚$±%‰2ƒìjjƒ<±%Pè:ûÿÿƒÄ ·D3Pjƒ@±%Pè#ûÿÿƒÄ jjÃD±%SèûÿÿŠ]ó‹Eàˆ\0ƒÄúƒ=ȶ%ÿuèø\ǎûÇEèÿÿÿÿë¡È¶%Å)‹•„³%‰ȶ%û‰Eèƒ}èÿu_ƒì h Æ#èvôÿÿ‹Eèéä‰öè§\ǐƒì h Æ#èTôÿÿ¸ÿÿÿÿéÀ‰öèƒ\Ǒƒì h Æ#è0ôÿÿ¸ÿÿÿÿ霉ö‹EèÁà+EèÁเ³%ŠUòˆT P‹]ì‰
+‹] f‰\
+ǀ„³%ÿÿÿÿ‰ºˆ³%‹]썛ÆÕ ±%ƍ¿ōr¿À®%€|>t%ƒì¶D>PšÜ®%SèGõÿÿÆD>‰$èšøÿÿƒÄƒì h Æ#èŽóÿÿ¿EèƒÄeô[^_]ÍvU‰åWVSƒìŠEˆEóŠ]ÇEè¿ÆEç<u„Ût €}óu€ûuè‚[Ǐ¸ÿÿÿÿé0‰öúƒ=ȶ%ÿuèa[ǎûÇEìÿÿÿÿë ¡È¶%Å)‹•„³%‰ȶ%û‰Eìƒ}ìÿu ¸ÿÿÿÿéߐ‹EìÁà+EìÁ຀³%ˆ\ ‹M f‰Lǀ„³%ÿÿÿÿƒì h Æ#è°íÿÿƒÄ‹U¾¹º÷ñ‰Öë]v¶€<Åà®%u ¿ÆEçë8ƒìÿu¶ÅÀ®%PèöAƒÄ…Àu¿ëF¹‰ðº÷ñ‰ÖÿEèƒ}è‡Ò‰ù„Ét €}çuR¶Áã¸À®%ÆD ÆDƒìÿuPè>AƒÄ jjÃÜ®%Sè/øÿÿÇ$ Æ#èçñÿÿƒÄ jjSè:ïÿÿëM¶ōCºÀ®%€|t'þDƒì h Æ#è®ñÿÿƒÄ jjƒÜ®%Pèûîÿÿ됃ì h Æ#è‹ñÿÿƒÄ¶‹<ÅÔ®%¿ŠUó:Å8±%tèªYǓ¸ÿÿÿÿéX‰ö€}óu¿·Å(±%9E u€}ót(¿·Å(±%™÷} …ÒtèdYǔ¸ÿÿÿÿéƒì h Æ#è ìÿÿ¶‹Åä®%ƒÄƒúÿ„­€}óu#è&YǕƒì h Æ#èÓðÿÿ¸ÿÿÿÿéЍÕ)з…”³%9E t"èíXǔƒì h Æ#èšðÿÿ¸ÿÿÿÿ鋋MìÁá+M썶Å »Ä®%‹‰„³%‹Mì‰ ë/‰öèŸXǑƒì h Æ#èLðÿÿ¸ÿÿÿÿë@¶‹Uì‰Åä®%ƒì h Æ#è*ðÿÿ‹EìÁà+EìÁàH‰±ˆ³%º€³%‰<Æ¿EìƒÄeô[^_]ÉöU‰åWVSƒì¿E‰Eì‰ÇÁç)ÇÁ獗€³%‰Uðh Æ#èÏêÿÿ‹Mð‹Y›ÁãC‰EèºÄ®%‹€Áà° ±%ƀ ±%F‰$èôÿÿF ‰$è„ôÿÿF$‰$èyôÿÿƒÄú·FPÿv 谞ÿÿû¹Ä®%‹Eè‹ú ’¡±%‰Í$±%‰±%ûƇ€³%ƒÃ ‹Uð‹B‰ƒÄ®%ú¡È¶%‰‡„³%‹Mì‰ +ȶ%ûƃÀ®%Ç$ Æ#è
+ïÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u ŠM¿UÕ)Ѝ…€³%‰Eð‹@€Å ±%‹Eð€x uèûVǔ¸ÿÿév€;uèÞVǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC PèÈëÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC PèœëÿÿƒÄ…ÀuÔƒì CPè-éÿÿƒÄ‹Uð·B‹{‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC$PèZïÿÿëƒì‹Uð·BPC$PèDïÿÿC‰$èíÿÿƒÄ¸eô[^_]ÐU‰åWVSƒì ‹} ŠM¿UÕ)Ѝ…€³%‰Eð‹@€Å ±%‹Eð€x uè‹Uǔ¸ÿÿév€;uènUǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC$PèXêÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC$Pè,êÿÿƒÄ…ÀuÔƒì CPè½çÿÿƒÄ‹Uð·B‹s‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC Pèêíÿÿëƒì‹Uð·BPC PèÔíÿÿC‰$è-ìÿÿƒÄ¸eô[^_]ÐU‰åSƒìhß7#è;ƒÄÿ5±%hë7#è;»ƒÄÝ)ØÁà€¸€³%t8€³%‹B€Å ±%ƒì ÿp ÿp$‹B€ÅÀ®%PShÿ7#è®:ƒÄ Cƒûv­‹]üÉÃU‰åƒì`¿MÍ)ȋ…³%’Å ±%ÿp ÿp$RQh 8#E¨Pèf:ƒÄ ÉÐU‰åSƒì‹]h Æ#èHæÿÿ¿ÓÕ)Ѝ …‹˜³%€Å ƒÄ€ºÀ®%u ‹„³%‰‚Ä®%¿ÃÅ)ÂÁâƂ€³%ú‹ +ȶ%‰Š„³%£È¶%ûƒì h Æ#èÓêÿÿƒÄ‹]üÉÍvU‰åWVSƒì ‹u ‹E‹<…àã#ú‹^…Ûu-ƒì j èl™ÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‹U‰‰F‹;Lã#u û¸#é~ƒ;ÿtc¾ ä#‰ö‹ +Lã#I‰ÐÁà)Ћ‰TÆP‹C‰„¬¡Lã#‰CÿCèh€ÿÿ¡Lã#@‰ÂÁâ)ƒì ¿DÖPèŸ'èNŠÿÿƒÄûúƒ;ÿu¤¡Lã#ÿD‡D¡Lã#‰û¸eô[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„À‹;Lã#tû¸髍vúè*'‹Lã# [‰ÊÁâ)Êf‰Õ(ä#‹E‹…àã#ÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt-p ‰Ù[‰ÐÁà)ЉÅpä#‹œž DŽŽ ÿÿÿÿƒûÿuÖÇGènÿÿ¡Lã#@‰ÂÁâ)ƒì ¿Õ(ä#Pè¢&èQ‰ÿÿƒÄû¸eô[^_]ÃU‰åVSƒì h„8#è~ÿÿèe”ÿÿ‰ÆÇ$裗ÿÿ‰Ã‰µàã#ƒÄ jh˜8#Sè"8fÇCÍÆCÇCÇCtµ"ÇC Àµ"ÇC$̵"ÇC(Ôµ"ÇC,¶"ÇC00¶"ÇC4x¶"ÇC8ز"ÇC<À¶"ÇC@À³"ºƒÄsK •ÇD@DŽ ÿÿÿÿBú™~ݍeø[^]ÉöU‰åVS‹E‹…àã#ƒì h`8#è7¾ƒÄƒÃƒìÿt³@h8#èû6ƒÄFþ™~ãeø[^]ÃU‰å¸ÿÿÿÿ]ÉöU‰å]ÍvU‰åƒì‹E‹U ‹…àã#ƒÀƒ|@tƒìRj
+èȽÿÿƒÄÉÍvU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] j è+–ÿÿ‰ÂƒÄ¸ …Òt!ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìj ÿsè<–ÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì ‹}‹u ú‹^…Ûu*ƒì j 苕ÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‰>‰Fƒ;ÿt
+û¸ë"‰ö¡Lã#‹½àã#ƒÂÿD‚@¡Lã#‰û¸eô[^_]ÃU‰åWVSƒì ‹E ‹U‹•àã#ú‹p¸…ö„V‹;Lã#u û¸#éA‹Lã#‹F ¿ ä#;„“°v +¸é v¡Lã#‹Œƒ°‹“¬…Òt‰ö‹;Lã#…Š‹R…Òu븅À…†‹ +Lã#I‰ÂÁâ)‹ƒ¬‹‰D×P‹ƒ¬‹@‰„‹‹“¬¡Lã#‰B‹ƒ¬ÿ@èÂ{ÿÿ¡Lã#@‰ÂÁâ)ƒì ¿D×Pèù"訅ÿÿƒÄûúéRÿÿÿ‰ö¸;J ’Àérÿÿÿ‹E‹…àã#¡Lã#ÿDƒD¡Lã#‰¹‹ƒ¬‹V ë‰ö‰Á‹A…Àt;P sò…Ét‰q됉³¬…Àt‰p‰F‰Nû¸eô[^_]ÍvU‰åWVS‹}‹E ‹ ½àã#ú‹X¸…Û„Ù‹;Lã#uû¸#éčv‹Lã#‹C ;„‘°s
+¸饡Lã#‹´°‹‘¬…Òt‰ö‹;Lã#u‹R…Òu︅Àuû¸ëk‰ö¸;r ’Àëåv‹ ½àã#¡Lã#ÿDD¡Lã#‰¾‹¬‹S 됉ƋF…Àt;P sò…öt‰^됉™¬…Àt‰X‰C‰sû¸[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„ï‹;Lã#tû¸éڍvúè&!‹Lã# [‰ÊÁâ)Êf‰Õ(ä#‹E‹…àã#‰EðÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt2‰ÆƒÆv‰Ù[‰ÐÁà)ЉÅpä#‹œžDŽŽÿÿÿÿƒûÿuÖÇG‹O‹W…Éu +‹Eð‰¬ë‰ö‹G‰A…Òt‹G‰Bè;yÿÿ¡Lã#@‰ÂÁâ)ƒì ¿Õ(ä#Pèo èƒÿÿƒÄû¸eô[^_]ÐU‰åVSƒì hÄ8#èJ—ÿÿè1Žÿÿ‰ÃÇ$€èo‘ÿÿ‰Æ‰4àã#ƒÄ jhØ8#Vèî1fÇFÌÆFÇFÇF|¼"ÇF ½"ÇF$,½"ÇF(\½"ÇF,¤½"ÇF0н"ÇF4(¾"ÇF88·"ÇF<À¸"ÇF@Ĺ"ºƒÄ^N•ÇD@DŽ°ÿÿÿÿDŽÿÿÿÿBú™~Òdž¬eø[^]ÐU‰å‹U‹M ¸ÿÿÿÿ…Òt;‹‹…àã#ƒxu‹@%ÿÿÿ=Ìu…Ét ‹B‹@ ‰ë
+‰ö¸ÿÿÿÿ됸]ÐU‰å‹U‹M¸ÿÿÿÿ…Òt@‹‹…àã#ƒxu‹@%ÿÿÿ=Ìt¸ÿÿÿÿ됅Ét‹B‹@ ‰‹R‹E ‰B ¸]ÃU‰å‹E‹M ‹U‹…àã#‰”ˆ°]ÃU‰åWVSƒì‹E‹<…àã#h`8#è0»ƒÄwƒìÿtž@h8#èó/ƒÄCû™~ãƒì h¢8#èÚ/»ƒÄ‰öƒìÿ´Ÿ°h¾8#è¼/ƒÄCû™~àeô[^_]ÃU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åS‹E‹U ‹]‹ …àã#Áâ‹C‰„°ÇD
+D‹$ÉÉöU‰åVS‹E‹u ‹…àã#ƒ|³DtƒìVj
+èD¶ÿÿƒÄë vÇD³DDŽ³°ÿÿÿÿeø[^]ÉöU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] j苎ÿÿ‰ÂƒÄ¸ …Òt1ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‹@‰B ÇB‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìjÿs茎ÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì$·]Shâ8#è .‰Ø-yƒÀÁèƒÄ ·À‰Eè@ÛÁã¿€Ã%ÿt8CP‰Eä·8Phé8#èá-ƒÄ ÿt;·D;Ph÷8#èÊ-ƒÄ ÿt; s·>Ph9#è±-ƒÄ ÿt>·D>Ph9#èš-ƒÄ ‹Uä·D:P·DLPh*9#è~-‹UèÕƒÄ·ØSh;9#èc-EóPEòPEìPS蹃ĶUóR¶UòRÿuìPh€9#è6-ƒÄ eô[^_]ÍvU‰åWVSƒì ‹E‹U‹]¹‹u ƒî‰ƒî‰º`F&fƒ=`F&yA¿Áfƒ<Byfù™~îfù™~ƒì hP9#èÎ,¸ƒÄé ¿Á<¹`F&‰Úf Ê€f‰Ǎ<ÿÁ纀Ã%‰tÇD _ÇDfŒÙf‰LfÇfÇDÇD _ ‹M‰ ÇDÇDO0ÇDÇD Ǎ_@ÇÇD‰t‰t fŒÉf‰L fŒÙf‰LfŒÛOPf‰\fŒÛf‰fÇD 0fÇD0O`fÇfÇDfÇDÇìÃ%¾ G&¹üó¥Å˜eô[^_]ÐU‰åVS‹u ¿E-‰Â…ÀyP‰ÐÁø@ÀÁเÃ%f‰tX@Vf‰T f‰t ƒÀPf‰tf‰4[^]ÉöU‰å¿E-‰Â…ÀyP‰ÐÁøfDŽ`F&]ÉöU‰åSƒì‹]¿E Phh9#Sè~3‰ØƒÄ‹]üÉÃU‰åVS趉Æès»‰öƒìhhÈ"SèƒÄhôÁ"SèìƒÄCƒû~ۉðeø[^]ÉöU‰åƒìèaÉÍvU‰åSƒì‹]‹\_#€82uºð°îƒìShÂ:#èˆ*ƒÄÁ㋃\_#@PhE#èp*ƒÄÿ³ _#ènƒÄ‹]üÉÉöU‰åƒìÿuhÙ:#èE*èèûÇ$èG7ƒÄÉÉöU‰åWVSƒì‹E‹} ƒ=ÄÁ%„à…ÿ„Ø¡@¸%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡D¸%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡D¸%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø‰Ó)øƒÞC÷o‰ÑÁù‹GÁø)Á‰È؉‹OÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰O‹éԉö]è¡@¸%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+¡D¸%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡D¸%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø)‰Uè‹{¸ƒÞC÷ï‰ÑÁù‰øÁø)Á‰ÈEè‰ùÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰K‹E荀€€€€€‰ÃÁã‰È÷îÁúÁù)ʍéèvƒøuc¸ƒ=4¸%…Ρ8¸%€€€€€€‰ÃÁã‹ +<¸%ºÓMb‰È÷êÁúÁù)ÊӅÿ„…¡8¸%‰¡<¸%éqvƒø…ç¶$¸%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +0¸%f)Ù·É +@¸%º×®¬]‰È÷êÁú‰ÈÁø)ÂD¸%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰È£@¸%f‰0¸%…ÿ„̍€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡D¸%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡D¸%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø‰Ó)Ëw¸ƒÞC÷î‰ÑÁù‰ðÁø)Á‰È؉‰óÁú‰ÙÁù)ʍ’’’’’’Áâ‰Ø)Ѝ€€€Áà‰G‹@¸%’’’4Õ¹Á6ۉð÷é‰Ó3‰ÁÁù
+‰ð™‰È)Ћ +D¸%ɍ‘ÑÁâ)ʉÑÁá)эÈ鍃ø…ƒ=4¸%…rUè¡8¸%‰¡<¸%‰B»@¹C°Ò‰Êî‰Úì¶ÈìÁàf¶Ñ зð·ÀÁ%9Æv%hæ:#j_hø:#hÿ:#èm%Ç$èmƒÄ·ÀÁ%)ó¯(¸%·ÀÁ%‰Ø‰Ñº÷ñ‰Ãº °
+îì©t‹ +(¸%;ÍÌÌ̉ð÷âÁê9Ós‰Ëu荛€€‹V‰Eä‰F¸¡/¸D÷mä‰ÑÁù‹EäÁø)Á‰ÈEè‹N¸¡/¸D÷éÁú‰ÈÁø)’’’’’’’’’Áâ )щN¡8¸%€€€€€€Áà‰Eä‹ +<¸%ºÓMb‰È÷êÁúÁù)ʋEäÐÅÿt ‰ð‹‰‹@‰G‰Øëv¸eô[^_]ÍvU‰åVSƒìŠEˆE÷ÿ`#ƒ=`#uƒ=ä_#tÿä_#¶E÷€Áàºì¶%ƒ<uIÇö€ð¶%tûƒì ¶]÷›Áã¾à¶%ÿ43ÿ“ä¶%ƒÄöDtú¶E÷€Ç…ì¶%ÿì_#ƒ=`#uƒ=è_#tÿè_#ÿ +`#eø[^]ÍvU‰åWVSº¿ì¶%¾è¶%»ä¶%¹à¶%’ÁàÇ8‰0ÇÇBƒú~ÜÇ`#[^_]ÐU‰åVS‹U‹] ‹uú’ƒ<…ì¶%t÷Æu¸ÿÿÿÿëH’ …ǁì¶%û…Ût‰™ä¶%ºà¶%è¶%‰‰t
+됍’Ç…ì¶%¸[^]ÐU‰å¡`#]ÉöU‰åSƒì¶$¸%ƒøt!ƒø…Àt ë.‰öƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +0¸%f)Ù·É +@¸%º×®¬]‰È÷êÁú‰ÈÁø)ÂD¸%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰ +@¸%f‰0¸%ÿ`#ƒ=`#uƒ=ä_#tÿä_#¡<¸%‰Ã¤Æ#º¡/¸D‰Ø÷êÁú‰ÙÁù)Ê8¸%’’’’’’’’’Á⠉Ø)У<¸%‹ ¸%ë$‹¡,¸%‰‰,¸%‰ ¸%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;8¸%;8¸%uƋB;<¸%~»ƒ=`#uƒ=è_#tÿè_#ÿ +`#‹]üÉÃU‰åWVSƒì‹uhÄÖ"j@èØ +ƒÄƒ>t,ƒì h;#èß »ÿÿƒÄ¿@¹C°8‰ÊîˆØ‰úîëaƒì h5;#è³ ‹N‰ +(¸%ɍA‰ÂÁâ‰Ñ)ÁºÓMb‰È÷âƒÄ‰ÑÁéu¹f‰ +ÀÁ%‰Ë¿@¹C°4‰Êî‰úˆØî‰ØfÁèî‹£4¸%ƒ=$H&~»A¹C°p‰ÊÚîîÆ$¸%ë%Æ$¸%»B¹C°°‰ÊÚîîºa°îº!ì%þî¹¾`¸%»d¸%ƒùbIÁàx¸%‰0I‰LÃAƒùc~ßǨÁ%Ç,¸%`¸%Çä_#Çè_#¡(¸%€€€ÁࣤÆ#Ç<¸%Ç8¸%Ç@¸%ÇD¸%fÇ0¸%ƒ=4¸%uÇ$ã#´Í"Ç(ã#LÎ"ëÇ$ã#œÎ"Ç(ã#(Õ"eô[^_]ÃU‰å‹E£ä_#]ÍvU‰å‹E£è_#]ÍvU‰å‹E£ô_#]ÍvU‰åWVSƒì ‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=,¸%tl‹ +,¸%‹£,¸%‹E‰A‹Eè‰A ‹Eì‰A‹E‰A»‹ ¸%}è‹uè됋…Òt‰ð;B  +;B u‹G;B~‰Óëâ‰ö…Ût‰ ë‰ + ¸%‰‹AƒÄ [^_]ÐU‰å‹E¹‹ ¸%됉ы…Òt;Buó¸ÿÿÿÿ…Òt$…Éu
+‹£ ¸%됋‰¡,¸%‰‰,¸%¸]ÃU‰åWVSƒì,‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=,¸%„q‹5,¸%‹£,¸%‹E‰F‹Eè‰F ‹Eì‰F‹E‰Fº‹ ¸%}è‹Mè됋…Ût‰È;C  +;C u‹G;C~‰Úëâ‰ö…Òt‰2鐉5 ¸%ƒ=ÄÁ%…ôƒìEàPjè3óÿÿ‹ ¸%ƒÄ‹Eà;B  +;B u‹Eä;B~ÇEÜÇEØëK}؋ ¸%Mà‹B;A|‹B +Eà‰E؉Ћ@+Aë ¡ ¸%‹@ +EàH‰EØ¡ ¸%‹@+Eäʚ;‰G‹E؍€€€€€€Áà‰EԋMÜ¿ÓMb‰È÷ïÁúÁù)ÊUԍҍB‰ÂÁâ)‰Ð÷çÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèFeô[^_]ÃU‰åWVSƒì¶$¸%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹0¸%f)Ú·Ò‰Ö5@¸%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +D¸%‰AÁà)ȍÁ‰ÁÁá ȉò)‰@¸%f‰0¸%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡D¸%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡D¸%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰Cƒ= ¸%„/ÇÄÁ%‹ ¸%‹Eè;B ;B …Œ‹C;BŽ€ƒ=`#uƒ=ä_#tÿä_#ÿ`#‹ ¸%ë#‹¡,¸%‰‰,¸%‰ ¸%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;Eè +;EèűB;Eì~ă=`#uƒ=è_#tÿè_#ÿ +`#¶$¸%ƒøt"ƒø …Àt +ë/vƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹0¸%f)Ú·Ò‰Ö5@¸%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +D¸%‰AÁà)ȍÁ‰ÁÁá ȉò)‰@¸%f‰0¸%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡D¸%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡D¸%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰C‹ ¸%‹Mè;J 
+;J u;B~ÇEäÇEàëJ]à‹ ¸%Mè‹B;A|‹B +Eè‰Eà‰Ð‹@+Aë ¡ ¸%‹@ +EèH‰Eà¡ ¸%‹@+Eìʚ;‰C‹Eà€€€€€€‰ÆÁæ‹Mä»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèîÇÄÁ%ë +‰öº@°î°ðîeô[^_]ÐU‰åVSƒì‹E»¹‹ ¸%ëv‰Ñ‹…Òt;Buó¸ÿÿÿÿ…Ò„I…Éu‹£ ¸%»ë‹‰¡,¸%‰‰,¸%ƒ=ÄÁ%…ƒ= ¸%uº@°î°ðéû‰ö…Û„òƒìEðPjèºìÿÿ‹ ¸%ƒÄ‹Eð;B  +;B u‹Eô;B~ÇEìÇEèëJ]è‹ ¸%Mð‹B;A|‹B +Eð‰Eè‰Ð‹@+Aë ¡ ¸%‹@ +EðH‰Eè¡ ¸%‹@+Eôʚ;‰C‹E荀€€€€€‰ÆÁæ‹Mì»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèeø[^]Éöú‹D$¼¨Ö#PèŒëÿÿ`fff f¨f¸0ŽØŽÀ° º î¡ð_#@£ð_#1ÛfŒÓü¡4¸%ƒøtèùòÿÿëè6ùÿÿ°
+º îì¨t ¸@Pè–ÿÿÿf¡ø_#f9þ_#t f£þ_#ÿ-ú_#ƒ=ô_#t‹ô_#ÿÓf©f¡ffaωöU‰å‹EØf£þ_#f£ø_#]Ã1ÀÈÃU‰åf¸0ŽØŽÀ‹Ef;þ_#t f£þ_#ÿ-ú_#]ÉöU‰åƒìjjjj@èaƒÄÉÃU‰åWVSƒì ‹]‹u ‹}聉€:y"…Ût‹B8‰…öt‹BÁà
+‰…ÿt)‹B4‰ë"‰ö…ÛtÇ…öt‹BÁà
+‰…ÿtÇ@ƒ}t ‹BÁà
+‹U‰ƒÄ [^_]ÍvU‰åƒìjjjj@è̓Ä·@0ÉÃU‰å¡¸]#]ÉöU‰å]ÍvU‰åSƒì‹¸]#誃ì SèÍ^ÿÿè ƒÄ‹]üÉÃU‰åWVS‹M ‹u‹}Š]‰ÈÁàeèÿÿ Eè‰ÈÁèUèˆBáÿbÿÿÿ J‰ðˆB‹Ef‰Eè‹EÁè‰EäŠEäƒà ÃË@¶ÃÁàbÿÿÿ Bçüÿ=ª]#‹‰‹B‰G[^_]ÐU‰åWVSƒì ‹] ‹u‹}·EMèª]#‹‰‹@‰A‰Ê¶JÁá¶B ÁÁá·B Á…ÛtŠBƒà¶ÐÁâ·Eè Љ…ötŠE툅ÿt
+ŠEî%ðˆ‰ÈƒÄ [^_]ÉöU‰å‹E ¶UÁâ¹À`#fÇD
+8ƂÅ`#îƂÄ`#f‰
+Áèf‰D
+]ÍvU‰åº °îº!°@î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰åº °îº!°î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰å‹Mf…ÉtWfƒùw¸Óà
+`#ë7fƒùw<·Éƒé¸Óà
+`#¢`#º¡î<ÿu `#©uƒÈ¢`#º!î]ÃU‰å‹Mf…ÉtUfƒùw¸þÿÿÿÓÀ"`#ë5fƒùw:·Éƒé¸þÿÿÿÓÀ"`#¢`#º¡î `#©t%û¢`#º!î]ÉöU‰å¿ø_#]ÃU‰åƒì‹Ef£ø_#˜PèWüÿÿƒÄÉÐU‰å¿ø_#]ÃU‰åƒì‹E‰Âf£ø_#ƒ=`#uƒì ¿ÂPèüÿÿƒÄÉÐU‰åWVì¾¹`#ºP`#‰öµÇäÞ"ÇäÞ"Fƒþ~åƒì EÈPèÅèºÇ H&;#‹EÈ£$H&¶ `#£(H&ƒÄ‹EУ0H&‹EÔ£4H&‹EØ£8H&hà"jè£ýÿÿƒÄh—à"jè”ýÿÿƒÄh¡à"jè…ýÿÿƒÄh¨à"jèvýÿÿƒÄh¯à"jègýÿÿƒÄh¶à"jèXýÿÿƒÄh½à"jèIýÿÿƒÄhá"jè:ýÿÿƒÄhÄà"jè+ýÿÿƒÄhËà"j èýÿÿƒÄhÒà"j
+è +ýÿÿƒÄhÙà"j èþüÿÿƒÄhàà"j èïüÿÿƒÄhçà"j +èàüÿÿƒÄhîà"jèÑüÿÿƒÄhõà"jèÂüÿÿƒÄhüà"jè³üÿÿƒÄh¼ß"jAè¤üÿÿƒÄhÄß"jBè•üÿÿƒÄhÌß"jCè†üÿÿƒÄhÔß"jDèwüÿÿƒÄhÜß"jEèhüÿÿƒÄhäß"jFèYüÿÿƒÄhìß"jGèJüÿÿƒÄhôß"jpè;üÿÿƒÄhüß"jqè,üÿÿƒÄhà"jrèüÿÿƒÄh à"jsèüÿÿƒÄhà"jtèÿûÿÿƒÄhà"juèðûÿÿƒÄh$à"jvèáûÿÿƒÄh,à"jwèÒûÿÿf +”G&€¾ƒÄvÀŀÃ%ƒì jh‰hØPõ·ÀPèúÿÿƒÄ Fþš~ǃì hÐèFùÿÿƒÄÛãݵTÿÿÿ›¿ G&µTÿÿÿ¹üó¥ ÀƒÈ""ÀÛãèƒûÿÿèúÿÿeø^_]ÍvU‰åSƒìº!°ÿîè’ûÿÿ¹@ºC°6Êîîƒ=$H&~¹AºC°tî°‰Êî°ë»B¹C°°‰ÊÚîîºaî‹]üÉÃU‰å‹U‹E ‰•P`#]ÉöU‰å‹U‹E ‰•`#]ÉöU‰åƒìh`;#è
+è— ƒÄÉÉöœX‰Á5PœX9ÈtQ¸Ã¸ÜX‰Á5 PœX1ÈtQ¸øÃf1Àžf¸f»öóŸ€üu¸øÃÆ `#Ûã¹âþfÇ`#ZZÝ=`#¹âþf¡`#<u+Ù=`#¹âþf¡`#f%?fƒø?uÆ `#Æ `#Éö`¸ëp`¸ëh`¸ë``¸ëX`¸ëP`¸ëH`¸ë@`¸ë8`¸ ë0`¸
+ë(`¸ ë `¸ ë`¸ +ë`¸ë`¸ë ¨Pf¸0ŽÀŽØüX1ÛfŒÓP‹…`#ÿÓ[° ƒûrº îº îf¡ø_#f;þ_#t f£þ_#ÿ-ú_#©¡aϸ鋸選ëz¸ës¸ël¸ëe¸ë^¸ëW¸ ëP¸
+ëI¸ ëB¸ ë;¸ +ë4¸ë-¸ë&¸ë` ¨f¸0ŽÀŽØüèש¡aÏPf¸0ŽØŽÀXfŒÓ‹=ª]#ß1ۊŠ_Áãf‹_ÜfŒÒfŒÛŽÓSRPÿ…P`#ƒÄX[ŽÐ)ÜÏU‰åWVSƒì ‹u¸¹ ‰÷üó«è|ýÿÿ…ÀtÇëUèŠýÿÿ…Àt7ÇFǸ¢‰^‰N‰V …Àt+¸¢‰F‰^‰N‰V ëÇècýÿÿ…ÀtÇ ƒÄ [^_]ÍvU‰åWV¿`#È·À-yƒÀÁø9ÂtU¿`#@ÀÝ4ÅìÃ%›È·À-yƒÀÁøf£`#¿5`#¿`H&4v4ö4õìÃ%¹üó¥Ý%`H&^_]ÉöU‰å¿`#]ÃU‰åWVSƒì(ŠM¡”`#Áà ˜€ f¶ÎH&f£ªÖ#f¶ÍH&f£¬Ö#€ù t%€ù €ù„óé‰ö€ù
+„#é‰öfƒªÖ#·ªÖ#;ÐH&Œ½fǪÖ#·¬Ö#¡ÔH&H9Â…¿¡ÐH&H‰Eì‰Uèf¾ÌH&Áâf‰Uò¡”`#Áà °€ ¿;}è:¹;Mì*_ÿv‰ø¯ÐH&È·F‰Ø¯ÐH&Èf‰FA;Mì~ÜG;}è~ƹ;MìKWÿ‰Ð¯ÐH&Èf‹]òf‰FA;Mì~çé)‰öfǨÖ#·ªÖ#‰Áƒø~ºƒÂ·ÂƒÀ9È|óf‰¨Ö#f¡¨Ö#f£ªÖ#éævfǪÖ#·¬Ö#¡ÔH&H9Â…¾¡ÐH&H‰Eà‰UÜf¾ÌH&Áâf‰U桔`#Áà °€ ¿;}Ü=v¹;Mà*_ÿv‰ø¯ÐH&È·F‰Ø¯ÐH&Èf‰FA;Mà~ÜG;}Ü~ƹ;MàGWÿ‰Ð¯ÐH&Èf‹]æf‰FA;Mà~çé%‰öfÿ +ªÖ#·ªÖ#·¬Ö#¯ÐH&ÂÆS fÿªÖ#éõ‰ö·ªÖ#·¬Ö#¯ÐH&Ј CfÿªÖ#·ªÖ#;ÐH&Ž¿fǪÖ#·¬Ö#¡ÔH&H9Â…š¡ÐH&H‰EԉUÐf¾ÌH&Áâf‰UÚ¡”`#Áà °€ ¿;}Ð=v¹;MÔ*_ÿv‰ø¯ÐH&È·F‰Ø¯ÐH&Èf‰FA;MÔ~ÜG;}Ð~ƹ;MÔ'Wÿ‰Ð¯ÐH&Èf‹]Úf‰FA;MÔ~çëfÿ¬Ö#·5ªÖ#·=¬Ö#‰øf¯ÐH&f‰EΡ”`#Áà fEÎfuλÔ°‰Úî¹Õ‰ÊŠEÎî°‰Úîf‹EÎfÁè‰Êî‰óˆÎH&‰ø¢ÍH&ƒÄ([^_]ÐU‰åWVSƒì‹u‹} ‰øf¯ÐH&f‰Eò¡”`#Áà fEòfuò»Ô°‰Úî¹Õ‰ÊŠEòî°‰Úîf‹EòfÁè‰Êî‰ð¢ÎH&‰úˆÍH&ƒÄ[^_]ÍvU‰åS¹Ô°
+‰Êî»Õ‰ÚŠEî° ‰Êî‰ÚŠE î‹$ÉÍvU‰åWVSƒìf¾EÁàf‰Eò¡”`#Áà ¸€ ‹]ë0‹M ;M(sÿ‰Ø¯ÐH&È·G‰ð¯ÐH&Èf‰GA;M~ÜC;]~ʋM ;MSÿv‰Ð¯ÐH&Èf‹]òf‰GA;M~çƒÄ[^_]ÍvU‰åWVSƒì ¡ÐH&H‰Eð‹ÔH&K‰]ìf¾ÌH&Áàf‰Eꡔ`#Áà °€ ¿9ß<‰ö¹;Mð*_ÿv‰ø¯ÐH&È·F‰Ø¯ÐH&Èf‰FA;Mð~ÜG;}ì~ƹ;MðWÿ‰Ð¯ÐH&Èf‹]êf‰FA;Mð~çƒÄ [^_]ÍvU‰å·J‰ÐH&¶„@£ÔH&¶„ÿ ¢ÌH&¶P¢ÎH&¶Q¢ÍH&¶`¢¯Ö#¶a¢®Ö#ǘ`#Ç”`#]ÃU‰åWVSƒì ÎH&¢P ÍH&¢Q¶ÀP¶ÎH&PèŠýÿÿ¶®Ö#¶5¯Ö#ƒÄ¹Ô°
+‰Êî¿Õ‰úˆØî° ‰Êî‰ú‰ðîeô[^_]ÍvU‰åSƒì‹]€;tŠCƒì ¾ÀPèiùÿÿƒÄ€;ué‹]üÉÃU‰åVS‹E‰ÃÁã £˜`#¹Ô° +‰Êî¾Õ‰òˆØî° ‰Êî‰ØfÁè‰òî[^]ÃU‰åVS‹u‹”`#Áâ»ÀÖ#¶ÎH&‰¹àÖ#¶ÍH&‰
+µŠ¢ÎH&Š
+¢ÍH&‰5”`#[^]ÃU‰å¡˜`#]ÉöU‰å¡”`#]ÉöU‰åWVSƒì ‹}f¾u Áæf¾E Ƌ]‹E9Ã3v‹M9ù#‰Ê¯ÐH&¡”`#Áà ÐØf‰´€ A9ù~ÞC;]~ЃìÿuÿuèüÿÿŠE¢ÍH&ŠE¢ÎH&ƒÄeô[^_]ÍvU‰åWVSƒì ¡ÐH&H‰Eð‹=ÔH&Of¾ÌH&ÁãƒË ¾9Æ4¹9ù%v‰Ê¯ÐH&¡”`#Áà Ððf‰œ€ A9ù~ÞF;uð~̃ìjjèûÿÿÆÍH&ÆÎH&ƒÄeô[^_]ÍvU‰åS‹U ‹]‹M¯ÐH&¡”`#Áà ÂU”€ ˆ
+ˆZ‹$ÉÉöU‰åS‹E ‹]‹M‰Â¯ÐH&¡”`#Áà ÂU”€ ¶B…Étˆ¶‰Â…Ûtˆ¾Â‹$ÉÐU‰åS‹E ‹MŠ]‰Â¯ÐH&¡”`#Áà ÂU”€ €9tŠˆABˆB€9uò‹$ÉÐU‰åƒìhœ;#èTýÿÿôƒÄÉÉöU‰åƒìjèƒÄÉÉöU‰åƒìh4èƒÄÉÍvU‰åVS‹Ef£r¹d»þ¾v‰Êì©t Fþÿÿ~í¸@=Ÿ†~ø‰ÚˆÈö@=Ÿ†~øë‰öU‰åSƒìE Pÿuh×#èX‰ÃÇ$×#è¢üÿÿ‰ØƒÄ‹]üÉÃU‰åWVSìð‹} ŠEˆ…ÿÿÿEPÿuÿÿÿSè‰ÆS¾…ÿÿÿPWÿuè±þÿÿ‰ðƒÄ eô[^_]ÃU‰åSƒìE PÿuhÙ#謉ÃÇ$Ù#è&üÿÿ‰ØƒÄ‹]üÉÃU‰åS‹M‹U ‰Ë€:tvŠˆBA€:uõƉ؋$ÉÍvU‰åVS‹]‹U ‹M‰Þë‰öŠˆBC€:t‰ÈI…ÀîƉð[^]ÐU‰å‹U‹M ë +¸€:tBAŠ:t)Ð]ÃU‰åS‹U‹] ‹M…Éëv¶¶Sÿ)Ð됊C8uíŠB„ÀtIu︋$ÉÐU‰å‹U¸€:tB@€:uù]ÍvU‰åS‹E‹] €8t‰Ú€:tŠv:
+tB€:uö@€8u下$ÉÉöU‰å‹E‹U €8t ‰ö8t @€8uö¸]ÍvU‰åS‹]‰Ú€;t‰öŠ
+AŸ<wAàˆB€:uì‰Ø‹$ÉÐU‰åS‹]‰Ú€;t‰öŠ
+A¿<wA ˆB€:uì‰Ø‹$ÉÐU‰åS‹U‹M ‰Ó€;tvB€:uú늈AB€9uõƉ؋$ÉÍvU‰åWVSƒì<‹u‹]ÇEèÇEäÇEàÇEÜÇEØÇEÔÇEпÇEÌÙîÝ]À‰uì‹E €8„D‹U €:%t…ÿuŠˆB‰U FÿEèév‹E €8%u%@‰E ¿ÇEä
+ÇEàÇEØÇE̋U ¾ƒè%ƒøS‡Ñÿ$…à+#‰öÆ%FÿEè鼃ÉòFŠCüˆÿEè驐ƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÔë +vƒÃ¿Sü‰Uԃì ÿuÌÿuäj
+VÿuÔè¾ éœƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäj
+VÿuÐè.éPƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäjVÿuÐèâ鐃ËCü‰EЃì jÿuäjVPèÂé䐃ËSü€:tŠˆBFÿE܀:uò‹UÜUèévƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèYë~vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀè} +ë>vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèa‰EÜEèÆ¿ƒÄ é±ÇEØé¥ÇEØ陃MÌ鐍vƒMÌ鄍v¿ƒMÌëvƒÿu?ƒìEìPj
+ÿu èb
+‰EäƒÄ‹E €80u ÷EÌtƒMÌ됃MÌ‹UìJ‰U ë4vƒÿu,ƒìEìPj
+ÿu è
+‰Eà‹EìH‰E ¿ƒÄë‰ö¿ÿE ‹U €:…¼üÿÿÆ‹Eèeô[^_]ÉöU‰åƒì EPÿu ÿuè7üÿÿƒÄÉÉöU‰åWVSƒì,‹u‹} ‹]ÇEìÇEèÇEäÇEàÇEÜÇEØÇEÔÇEЉuð€?„>€?%tƒ}Ôu ŠˆGFÿEìëá€?%uGÇEÔÇEè
+ÇEàÇEоƒè%ƒøS‡çÿ$…0-#Æ%FÿEìéԃÉòFŠCüˆÿEìéÁƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ¿Cü‰E܃ì ÿuÐÿuèj
+VÿuÜè鏐ƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèj
+ëBƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèjVÿuØè6‰EäEìÆÇEÔƒÄ éҍvƒÃ‹Sü€:tŠˆBFÿEä€:uò‹EäEì飍vÇEàé›ÇEà鏃MÐ醍vƒMÐë}‰öÇEÔƒMÐënvƒ}Ôu6ƒìEðPj
+W蓉EèƒÄ€?0u ÷EÐtƒMÐ됃MЋ}ðOë1‰öƒ}Ôu)ƒìEðPj
+WèW‹}ðOÇEÔƒÄë
+vÇEÔGé¼ýÿÿvÆ‹Eìeô[^_]ÉöU‰åƒì EPÿu ÿuèGýÿÿƒÄÉÉöU‰åWVSƒì,‹}‹uÇEèÇEäÇEàÇEÜÇEØ»‰}ì饐‹U €:%t…Ûu B‰U 鏍v‹E €8%u%@‰E »ÇEäÇEàÇEÜÇE؋U ¾ƒè*ƒøN‡Eÿ$…€.#‰öƒû…8ƒìEìPj
+ÿu èN‰E܃MØ‹EìH‰E ƒÄéŠGƒÆ‹^üˆëÝØÿEèéõƒÆ‹^üëG€?tƒì ¾PèBƒÄ…ÀuçÇEÔë#‰ö÷EØuŠˆCë‹UÜ9UÔ}ŠˆCÿEÔG€?tƒì ¾PèþƒÄ…ÀtÇÆ덉öƒìh¨;#Wè&÷ÿÿ‰ÇƒÄ EìPj
+WèՉ‹}ìƒÄƒ}à…Wƒ}ät)ƒ}ä ƒ}ätéCÿÿÿƒ}ä…9ÿÿÿƒÆ‹Fü‰é,ÿÿÿƒÆ‹Füf‰éÿÿÿ‰öƒìhµ;#Wè¶öÿÿ‰ÇƒÄ EìPj
+됃ìhÀ;#Wèšöÿÿ‰ÇƒÄ EìPjWè ‹}ìƒÄƒ}à…̓}ät+ƒ}ä +ƒ}äté¹þÿÿ‰öƒ}ä…­þÿÿƒÆ‹Vü‰é þÿÿƒÆ‹Vüf‰é‘þÿÿ‰öƒìhØ;#Wè*öÿÿ‰ÇƒÄEìPWè;‹}ìƒÄƒ}àu`ƒ}ät)ƒ}ä ƒ}ätéMþÿÿƒ}ä…CþÿÿƒÆ‹FüÝé8þÿÿƒÆ‹FüÙé*þÿÿvÇEäë vÇEäëvÇEàëÝؐ»ÿE ‹E €8…Pýÿÿ‹Eèeô[^_]ÐU‰åƒì EPÿu ÿuèïüÿÿƒÄÉÉöU‰åWVSƒì,‹u ÇEп‹Eƒð‰EԋU‰U̅Òy‰Ñ÷ىM̃}y ‹E…Ày÷Ø됋E÷EÔu ƒ}yƒ}yGƒ}u‹EÐÆD(Ø0@‰EÐë8v…Àt1U؉Uȉöƒì º÷ủÃRèI‹MȋUЈ
+B‰UЉ؃Ä…Àu×}ЋEԃàƒøu‰ú;}} +‰öÆ FGB;U|õƒ}y ƒ}yÆ-ë ÷EÔtÆ+F‹Eԃàƒøu‰ú;}} Æ0FGB;U|õ‹UÐJx M؊
+ˆFJy÷‹Eԃàƒøu‰ú;}} Æ FGB;U|õƉøeô[^_]ÃU‰åƒì‹Eÿuÿu÷ØPÿu ÿuèŸþÿÿƒÄ ÉÉöU‰å‹E…Ày÷Ø]ÉöU‰åSƒì‹]èÁîÿÿƒì SèõÿÿU‰åWVSƒì‹M‹} ÙîÙÀÙ軀9-u ¾ÿÿÿÿë
+‰ö¾ëA€90túŠƒè0< w(ÝÀ/#ëÙˍv¾ƒè0AÜËÙËPÚ$XŠƒè0< vâÝۀ9.u9AŠƒè0< w/ÝÀ/#ëÙÉÙʉö¾ƒè0AÜÊÙÊPÚ$ÙÉXØʊƒè0< vÝÝÚÙÉÞùÞÁVÚ $^€9et €9E…“A€9-u
+¾ÿÿÿÿAë‰ö€9+u ¾Aëv¾Šƒè0< weÝÀ/#¾ƒê0A·ÃÙÀPÚ $Ù}ð‹]ðÆEñ Ùmð‰]ðÛ]ìÙmð‹Eì·À‰$Û$‰$Ú$ZÙ}ð‹UðÆEñ Ùmð‰UðÛ]ìÙmð‹Eì‰ÃŠƒè0< v£Ý؅ö~!ºf…Ût4ÝÀ/#·Ã‰öÜÉB9Â|ùëvº·Ã‰Ã9Â}ÝÀ/#ÜùB9Ú|ùÝ؅ÿt‰ƒÄ[^_]ÐU‰åWVSƒì ‹]‹} ÇE쾀;-u ÇEðÿÿÿÿCë‰ö€;+u ÇEðCëÇEð€;0u>C€;0túë6ƒì ¾PCè‰ÂƒÄ9ú…Òy
+¸ëEv‰ð¯÷Ö9ð~ÇEìƒìW¾P聃ąÀu¶ƒ}t‹E‰ƒ}ìt¾ÿÿÿ¯uð‰ðeô[^_]ÉöU‰åWVSƒì ‹]‹} ÇEð¾€;0uC€;0tú€;xuKƒÿuFC€;0u@‰öC€;0túë6ƒì ¾PCè_‰ÂƒÄ9ú…Òy
+¸ëAv‰ð¯÷Ö9ðvÇEðƒìW¾PèуÄ…Àu¶ƒ}t‹E‰ƒ}ðt¾ÿÿÿ‰ðeô[^_]ÉöU‰åŠUBÐ< w ¾Âƒè0ë&vB¿<w ¾Âƒè7됍BŸ<w ¾ÂƒèW됾Â]ÍvU‰å‹Uƒú w B0¾À됍BöƒøwB7¾Àë¾Â]ÍvU‰åŠUƒê0¸€ú –À]ÉöU‰åŠUBÐ<vBŸ<w¸ë¸]ÐU‰åŠU€ú/~‹E œ`#:Pÿ¸ë¸]ÐU‰åŠUBŸ<w Bà¾Àëv¾Â]ÍvU‰åŠUB¿<w B ¾Àëv¾Â]ÍvU‰åVS¾ƒì ¾]Sè%ƒÄ…Àuƒì Sè5ÿÿÿƒÄ…Àt¾‰ðeø[^]ÃU‰åŠUƒêA¸€ú9–À]ÉöU‰å¸€}/žÀ]ÍvU‰åŠUƒêa¸€ú–À]ÉöU‰åŠUB÷<v
+¸€ú u¸]ÉöU‰åŠUƒêA¸€ú–À]ÉöU‰åWVSƒì ÝEÝUè‹]‹}ÇEäSd$øÝ$èoƒÄ…Àtƒì Sè·îÿÿƒÄéPvÙîÝEèÚéßà€äE€üu Æ-C€uï€ë÷EtÆ+CÿEäÝÈ/#ÝEèÚéßà€äE€üuÆ0ÆC¸éû‰öÙèÝEèÝáßà€äE€üu3¾Ýéßà€äE€üuHÝø;#ÝEèØÉÝUèNÝêßà€äE€ütëÝØë)vÝØÝؾÝø;#ÝEèë ÝEèØñÝUèFÝéßàöÄtîÝ؃ì Vè÷ùÿÿƒÄƒøc~ƒïë‰öƒø ~ƒïë‰ö…ö~Oƒì‹EƒÈPÿuWSÿuìÿuèèUEäƒÄ …öu‹Eäë;‰ö]äÆeCƒì jºgfff‰ð÷êÁú‰ðÁø)ƒÂRj
+SVè\ùÿÿ‹UäD‰EäƒÄ eô[^_]ÍvU‰åWVSìŒÝEݝþÿÿ‹]Dž€þÿÿ½¸þÿÿ¹K¸üó«ƒìSÿµ”þÿÿÿµþÿÿ貃ąÀtƒì SèúìÿÿƒÄé‰öÙî݅þÿÿÚéßà€äE€üuÆ-C€µ—þÿÿ€ëv÷Et
+Æ+Cÿ…€þÿÿƒì…˜þÿÿPÿµ”þÿÿÿµþÿÿèþݝpþÿÿ‹…pþÿÿ‹•tþÿÿ‰Æ‰×DžŒþÿÿƒÄ݅˜þÿÿÙèÙÉÝáßàöÄ…ø重vh$@jÿµœþÿÿÿµ˜þÿÿè$݅˜þÿÿÜ5Ð/#ݝ˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿß½¨þÿÿÙ­´þÿÿ‹…¨þÿÿ‰$èûÿÿ‹•Œþÿÿˆ„*¸þÿÿB‰•ŒþÿÿƒÄ݅˜þÿÿÙèÙÉÚéßàöÄ„oÿÿÿ‹•Œþÿÿ•€þÿÿ‰ÑI…¸þÿÿ‰…|þÿÿë‰ö‹•|þÿÿŠˆCI‹•Œþÿÿƒê‰ÐÁèH!Â9Ñ}ޅÉx‹Œþÿÿƒéx
+vÆ0CIyùÆëÝØÝØÆ0Cÿ…€þÿÿÝ<#‰µpþÿÿ‰½tþÿÿ݅pþÿÿÚéßàöÄE…\‹E@9…€þÿÿLÆ.Cÿ…€þÿÿ‹Eƒà‰…ˆþÿÿDž„þÿÿDžŒþÿÿv‰µpþÿÿ‰½tþÿÿ݅pþÿÿÜ<#Ü +Ð/#ݝpþÿÿ‹µpþÿÿ‹½tþÿÿƒì…˜þÿÿPWVèݝpþÿÿ‹•pþÿÿ‹tþÿÿ‰Ö‰Ï݅˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿ۝¤þÿÿÙ­´þÿÿ‹…¤þÿÿƒÄ…Àtƒ½ˆþÿÿu
+Džˆþÿÿƒì PèÓùÿÿˆCÿ…€þÿÿÿ…ŒþÿÿƒÄƒ½ˆþÿÿt‹E9…Œþÿÿ~
+Dž„þÿÿ‹•€þÿÿ9U}
+Dž„þÿÿƒ½„þÿÿ„ýþÿÿKë
+‰öÿ€þÿÿ‰Ã€;0u Cÿ€{ÿ.uêCÆ‹…€þÿÿeô[^_]ÃU‰åWVSƒì‹]‹u ‹}WVSèZƒÄ…Àtƒì Wè¢éÿÿƒÄéñ‰öÙî‰]è‰uìÝEèÝáßàÝـäE€üuÙàëvÝ؉]è‰uìÝEèÝØ/#ÙÉÝáßàÝـäE€üuÝØÆ0ÆG¸雺ÙèÙÉÝáßà€äE€üu/Ýáßà€äE€üu?Ýø;#ëÙɐÜÉÙÉJÝâßà€äE€ütìÝØëvÝÙÝø;#ë‰öØñÙÉBÙÉÝáßàöÄtðÝØÝ؍BƒøvƒìÿuÿuÿuWVSèÔùÿÿë‰öƒìÿuÿuÿuWVSèXûÿÿƒÄ eô[^_]ÐU‰åƒìSÙ}ü›f‹Eüf +? f‰EøÙmø›ÝEÙüÝ]ð›‹Uð‹Mô‹]‰‰KÝEÜeðeì›ÛâÙmü›[ÉÍvU‰åƒì‹E‹U ‰Eø‰Uü‹MUøf‹BfÁè%ÿ=ÿt¸ëk÷Bÿÿuƒ:t…Étƒìh<#QèDçÿÿƒÄ¸ë@‰ö€zy…Étƒìh<#Qè çÿÿƒÄ¸ë‰ö…Étƒìh<#QèçÿÿƒÄ¸ÉÃU‰åƒì¸Û#ƒ=¨`#tÿ¨`#ÉÃU‰å‹E£¨`#]ÍvU‰åƒì‹E‹U ‰Eø‰UüUø¹f‹BfÁè%ÿ=ÿu÷Bÿÿuƒ}øt¹‰ÈÉÉöU‰åSƒì‹E ‹]ÆPè‰âÿÿ‰ØƒÄ‹]üÉÍvU‰åVSƒì ÝEÝUð‹]‹uVSd$øÝ$èvÝ]èƒÄƒ=¬`#ÿtWƒìVSèYÿÿÿƒÄ…ÀuFƒìÿuôÿuðèDÿÿÿƒÄ…Àu1Ùî‰]à‰uäÝEàÚéßà€äE€ô@uƒì jVSÿuôÿuðè8ƒÄ ëvÝEèeø[^]ÉöÝD$ ÝD$Ùø›ßàžzøÝÙͶ¼'U‰åVSƒì0ÝE‹]‹u‹EÝUà‰]è‰uìPÿú‡Èÿ$•ð/#ÝØÇEغ<#ƒøc~º#<#‰UÜÇEðÇEôƒ=¬`#„}ƒì EØP誃ąÀ…uƒ=¬`#…Yƒìjh)<#éëvÝØÇEغ=<#ƒøc~ºB<#‰UÜÇEðÇEôƒ=¬`#„ƒì EØPè>ƒÄ…À… ƒ=¬`#…íƒìjhH<#év‰]à‰uäÝ]èÇEغ\<#ƒøc~ºb<#‰UÜÇEðÇEôƒ=¬`#„žƒì EØPè˃ąÀ…–ƒ=¬`#…zƒìjhi<#é ÝØÇEغ~<#ƒøc~º„<#‰U܃=¬`#uÇEðàÇEôÿÿïGé¸ +¡ `#‹¤`#‰Eð‰Uôé¡ +‰öÝØÇEغ>#ƒøc~º>#‰U܃=¬`#uÇEðàÇEôÿÿïGéh +¡ `#‹¤`#‰Eð‰UôéQ +‰öÝØÇEغ‹<#ƒøc~º<#‰U܃=¬`#uÇEðàÇEôÿÿïGé +¡ `#‹¤`#‰Eð‰Uôé +‰öÝØÇEغ‹<#ƒøc~º<#‰UÜÇEðÇEôéÑ ‰öÝØÇEغ7#ƒøc~º”<#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„óƒì EØPè ƒÄ…À…ëƒ=¬`#…σìjh˜<#éaÝØÇEغ7#ƒøc~º”<#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„gƒì EØP蔃ąÀ…_ƒ=¬`#…Cƒìjh˜<#éÕ +ÝØÇEغØ6#ƒøc~ºª<#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„Û +ƒì EØPèƒÄ…À…Ó +ƒ=¬`#…· +ƒìjh®<#éI +ÝØÇEغØ6#ƒøc~ºª<#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„O +ƒì EØPè| +ƒÄ…À…G +ƒ=¬`#…+ +ƒìjh®<#é½ ÝØÇEغÀ<#ƒøc~ºÃ<#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„à ƒì EØPèð ƒÄ…À…» ƒ=¬`#…Ÿ ƒìjhÇ<#é1 ÝØÇEغÀ<#ƒøc~ºÃ<#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„7 ƒì EØPèd ƒÄ…À…/ ƒ=¬`#… ƒìjhÇ<#é¥ ÝØÇEغÙ<#ƒøc~ºà<#‰U܃=¬`#uÇEðàÇEôÿÿïGéP ¡ `#‹¤`#‰Eð‰Uôé9 ‰öÝØÇEغÙ<#ƒøc~ºà<#‰U܃=¬`#uÇEðàÇEôÿÿïGë¡ `#‹¤`#‰Eð‰Uôƒ=¬`#„a ƒì EØPèŽ ƒÄ…À…Y ƒ=¬`#…= ƒìjhè<#éÏ
+vÝØÇEغü<#ƒøc~º=#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„å ƒì EØPè ƒÄ…À…Ë
+ƒ=¬`#…¯
+ƒìjh=#éA
+ÝØÇEغü<#ƒøc~º=#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„G
+ƒì EØPèt
+ƒÄ…À…?
+ƒ=¬`#…#
+ƒìjh=#éµ ÝØÇEغ)=#ƒøc~º/=#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„Íƒì EØPèè ƒÄ…À…³ ƒ=¬`#…— ƒìjh6=#é) ÝØÇEغ)=#ƒøc~º/=#‰U܃=¬`#uÇEðàÇEôÿÿïÇë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„/ ƒì EØPè\ ƒÄ…À…' ƒ=¬`#… ƒìjhI=#靐ÝØÇEغ^=#ƒøc~ºb=#‰UÜÇEðÇEôƒ=¬`#… ƒì EØPèòƒÄ…À…½ƒìjhg=#jèÚõÿÿèaõÿÿÇ!ƒÄ降vÇEغ^=#ƒøc~ºb=#‰U܃=¬`#uvÇEðàÇEôÿÿïG‰]ЉuÔÝEÐÜ +È>#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…¯ƒìVSèjƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„‡ÇEðàÇEôÿÿïÇét¡ `#‹¤`#‰Eð‰Uô‰]ЉuÔÝEÐÜ +È>#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…6ƒìVSèñƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„¡ `#‹¤`#ò€‰Eð‰UôéòvÝØÇEغ^=#ƒøc~ºb=#‰UÜÇEðÇEôéÁ‰öÝØÇEغ^=#ƒøc~ºb=#‰U܃=¬`#uÇEðÇEôë¡ `#‹¤`#ò€‰Eð‰Uôƒ=¬`#„ãƒì EØPèƒÄ…À…Ûƒ=¬`#…¿ƒìjh=#éQÝØÇEغ^=#ƒøc~ºb=#‰U܃=¬`#uÇEðÇEôëÇEðÇEôøƒ=¬`#„`ƒì EØP荃ąÀ…Xƒ=¬`#…<ƒìj h >#éΉöÇEغ™=#ƒøc~ºž=#‰U܃=¬`#u6ÙîÙÉÚéßàöÄEuÇEðàÇEôÿÿïGém‰öÇEðàÇEôÿÿïÇéX‹ + `#‹¤`#‰Mð‰]ôÙîÙÉÚéßàöÄE„4‰È‰Úò€‰Eð‰UôéÝØÇEغ¤=#ƒøc~º©=#‰U܃=¬`#uÇEðÇEôëÇEðÇEôøƒ=¬`#„Lƒì EØPèyƒÄ…À…Dƒ=¬`#…(ƒìjh¯=#麉öÇEغÃ=#ƒøc~ºÈ=#‰U܃=¬`#uÝ]ðëÝØÇEðÇEôøƒ=¬`#„Òƒì EØPèÿƒÄ…À…ʃ=¬`#…®ƒìjhÎ=#é@ÝØÇEغã=#ƒøc~ºí=#‰UÜÇEðÇEôøƒ=¬`#„iƒì EØP薃ąÀ…aƒ=¬`#…Eƒìjhø=#é׍vÝØÇEغ>#ƒøc~º>#‰UÜÇEðÇEôøƒ=¬`#„ýƒì EØPè*ƒÄ…À…õƒ=¬`#…Ùƒìjh>#ékvÝØÇEغ3>#ƒøc~º9>#‰UÜÇEðÇEôøƒ=¬`#„‘ƒì EØP较ąÀ…‰ƒ=¬`#…mƒìjh@>#éÿvÇEغ3>#ƒøc~º9>#‰UÜÜ5Ð>#Ý]ðƒ=¬`#„,ƒì EØPèYƒÄ…À…$ƒ=¬`#…ƒìjhU>#隉öÇEغh>#ƒøc~ºn>#‰U܋ + `#‹¤`#‰Mð‰]ôÙîÙÉÚéßàöÄEtC‰È‰Úò€‰Eð‰Uôë1‰öÇEغh>#ƒøc~ºn>#‰U܍d$øÝ$jjè›Ý]ðƒÄƒ=¬`#…jé|vÝØÇEغu>#ƒøcŽ•ºx>#鋍vÝØÇEغ7#ƒøc~uº”<#ën‰öÝØÇEغ‹>#ƒøc~YºŽ>#ëR‰öÝØÇEغØ6#ƒøc~=ºª<#ë6‰öÝØÇEغ’>#ƒøc~!º•>#ë‰öÝØÇEغÀ<#ƒøc~ºÃ<#‰UÜÇEðÇEôƒ=¬`#„¯ƒì EØPèʃąÀ…•ƒ=¬`#…‹ƒìjÿuÜjè§îÿÿƒÄ jh|>#jè–îÿÿƒÄëfÝØÇEغÚ<#ƒøc~ºá<#‰U܃=¬`#uÇEðàÇEôÿÿïGë¡ `#‹¤`#‰Eð‰Uôƒ=¬`#tƒì EØPè2ƒÄ…À…ýè²íÿÿÇ"éívÝØÇEغÚ<#ƒøc~ºá<#‰U܃=¬`#uÇEðàÇEôÿÿïGë¡ `#‹¤`#‰Eð‰Uôƒ=¬`#„‰ƒì EØP趃Ä…À…ƒ=¬`#uiƒìjhé<#jè•íÿÿƒÄëSÇEغ^=#ƒøc~ºb=#‰UÜÝ]ðƒ=¬`#ÿt ƒ=¬`#uÇEðÇEôð?ë$‰öƒì EØPè@ƒÄ…ÀuèÄìÿÿÇ!ëÝØÝEðeø[^]ËT$â€‹D$%ÿÿÿ ЉD$ÝD$ÉöU‰å¸]ÉöÝD$ÙüÉö¼'U‰åWVSƒì ‹E ‰EðEƒEðƒeðøƒàø‰Eì‹Eð9EìsƒìjUhØ>#hâ>#è˜ ƒÄ‹Eð9Eì„Ä‹E‹…Û„·‹C;C rƒìj`hØ>#hí>#è` ƒÄöCtƒìjahØ>#h ?#èC ƒÄöC tƒìjbhØ>#h`?#è& ƒÄ‹Eì;CvL‹Eð;C sD‰Æ‹}ì;ss‹s;{ v‹{ 9÷wƒìjnhØ>#h?#èæ ƒÄƒì‰ø)ðPVÿu蚃ċ…Û…Iÿÿÿeô[^_]ÐU‰åWVSƒì ‹u ‹E‹}‰ÂUƒÀƒàøƒâø9†ŒÇF‰F‰V ‹E‰F‰~ÇF‹MëF‰ö9óuƒìjlh?#h›?#èX ƒÄ‹F ;Cv‹F;C sƒìjmh?#hÀ?#è1 ƒÄ‰Ù‹…Ût9{±9{u‹S +S‹F +F9Âwœ‰‰1eô[^_]ÃU‰åWVSƒì ‹]‹} …ÛuƒìjLhí?#hõ?#èÙ
+ƒÄ…ÿuƒìjMhí?#hþ?#è¾
+ƒÄƒÇƒçø‹3…ö„rvƒ~uƒ~t‹F;FsƒìjUhí?#h@@#è€
+ƒÄƒ~t‹F;F rƒìjUhí?#h @#è[
+ƒÄ‹F +F9FvƒìjUhí?#hà@#è9
+ƒÄ‹F÷ЅE…åF‰Eð‹^…Û„ԍv÷Ãtƒìj^hí?#h A#èø ƒÄöCtƒìj_hí?#h`A#èÛ ƒÄƒ;t9wƒìj`hí?#h A#è» ƒÄ;^ rƒìjahí?#h@#èŸ ƒÄ9{rGv‹‰‹C)ø‰B‹Eð‰ë
+v‹‹Uð‰9~sƒìjwhí?#h-@#è\ ƒÄ)~‰Øë‰ö‰]ð‹…Û…/ÿÿÿ‹6…ö…‘þÿÿ¸eô[^_]ÃU‰åƒì jÿjÿuÿuÿuÿu ÿuèƒÄ ÉÐU‰åWVSƒì‹]‹EE ‰Eð…ÛuƒìjThÉA#hõ?#èۃă} uƒìjUhÉA#hþ?#较ċ;…ÿ„lƒuƒt‹G;Gsƒìj[hÉA#h@@#舃ăt‹G;G rƒìj[hÉA#h @#ècƒÄ‹G +G9Gvƒìj[hÉA#hà@#èAƒÄ‹G÷ЅE…á‹Uð9WƒÕ‹M9O †ÉG‰Eì‹_…Û„¸v÷ÃtƒìjkhÉA#h A#èèƒÄöCtƒìjlhÉA#h`A#è˃ă;t9wƒìjmhÉA#h A#諃Ä;_ rƒìjnhÉA#h@#菃ċU 9S‚$‰Þ;]s‹u¹;M}ºÓâ‹E1ð…ÂtÖA;M|è‰ð)ØE ;C‡è‹M 1;Eð‡æ‰ðƒàø‰Eè9Øsƒìh‘hÉA#hÔA#èƒÄ9]èvC‹Uè)ډUä÷Âtƒìh–hÉA#hB#èãƒÄ‹‹M艋C+Eä‰A‹Eä‰C‰]ì‰ðƒà‹U Tƒâø‰U ‹Mè9Qv‰ÊU ‹‰‹A+E ‰B‹Eì‰ë
+‹Uè‹‹M쉋E 9Gsƒìh´hÉA#h-@#èkƒÄ‹U )W‰ðë‰ö‰]ì‹…Û…Kþÿÿ‹?…ÿ…•ýÿÿ¸eô[^_]ÃU‰åƒì jÿjjj ÿu hÿuèýÿÿƒÄ ÉÐU‰åWVSƒì‹]Sh2B#èaÌÿÿ‹3ƒÄ…ö„ƒìÿvÿvÿv‹F +FPÿv ÿvhÀB#è1ÌÿÿƒÄ ƒ~uƒ~t‹F;FsƒìjahDB#h@@#袃ă~t‹F;F rƒìjahDB#h @#è}ƒÄ‹F +F9FvƒìjahDB#hà@#è[ƒÄ¿‹^…Û„¾ƒì ÿ3ÿs‰ØCPShC#è“ËÿÿƒÄ ÷ÃtƒìjihDB#h A#èƒÄöCtƒìjjhDB#h@C#èóƒÄƒ{wƒìjkhDB#hKB#èփă;t9wƒìjlhDB#h A#趃Ä;^ rƒìjmhDB#h@#蚃Ä{‹…Û…BÿÿÿƒìWhgB#èàÊÿÿƒÄ9~tƒìjshDB#hzB#è`ƒÄ‹6…ö…cþÿÿƒì h’B#èªÊÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u‹] ‰ßƒçø…öuƒìjNhÛ>#hõ?#è ƒÄ…ÛuƒìjOhÛ>#hrC#èñƒÄƒ}uƒìjPhÛ>#hþ?#èԃĉ؃à‹UTƒâø‰U‹ëv‹…ÛuƒìjXhÛ>#h}C#螃ă{uƒ{t‹C;CsƒìjYhÛ>#h@@#èsƒÄƒ{t‹C;C rƒìjYhÛ>#h @#èNƒÄ‹C +C9CvƒìjYhÛ>#hà@#è,ƒÄ;{‚hÿÿÿ;{ ƒ_ÿÿÿ‹EC‹C +C9CvƒìjbhÛ>#hà@#èòƒÄÇEð‹sëv‰uð‹6…öt9þróƒ}ðtm‹Eð@9ørc9øtƒìjnhÛ>#h C#諃ąöt8‹U:9ðr.9ðtƒìjuhÛ>#hàC#肃ċEF‹UðB‹‰ëE‹E‹UðBë9ƒ}ðt
+‹Eð‰8ëv‰{…öt‹U:9ðr‰ÐF‰G‹‰ë ‹E‰G‰7eô[^_]ÃU‰åƒì hÿu ÿuèÒýÿÿƒÄÉÐU‰å‹EÇ]ÉöU‰åWVSƒì ÇEèÇEìÇEð‹E‹0…ö„Zƒ~uƒ~t‹F;Fsƒìj]hD#h@@#蠃ă~t‹F;F rƒìj]hD#h @#è{ƒÄ‹F +F9Fvƒìj]hD#hà@#èYƒÄÿEð¿‹^…Û„¨v÷ÃtƒìjdhD#h A#è$ƒÄöCtƒìjehD#h@C#èƒÄƒ{wƒìjfhD#hKB#èêƒÄƒ;t9wƒìjghD#h A#èʃÄ;^ rƒìjhhD#h@#讃ÄÿEì{‹…Û…[ÿÿÿ9~tƒìjnhD#hzB#肃Ä‹FEè‹6…ö…§þÿÿƒì ÿuìÿuðÿuèÿuh D#èºÆÿÿƒÄ eô[^_]ÍvU‰åVS‹u‹] EƒìPÿuh Û#èÈÿÿƒÄh Û#ÿ5`ã#jSVh D#è5ƒÄ eø[^]ÍvU‰åƒìÿ5Lã#jÿuÿu ÿuh`D#èƒÄ ÉÉöU‰åƒì E Pÿuh ß#èÈÿÿƒÄ jjh¸&#è@!ÿÿƒÄh ß#hE#è†ÅÿÿÇ$MèšÿÿƒÄÉÐU‰åƒìh ß#hàD#è_ÅÿÿƒÄÉÉöU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)л$ä#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»(ä#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Åxä#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Å|ä#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆ(ä#‰¸,ä#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹øæ#‰U苀üæ#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õøæ#|[‰Eäv1‰ÐÁà)ЍÅ;šøæ#u ‹Eì;‚üæ#|1‰Ï‰ÐÁà)Ћ Åxä#ƒùÿt4 1‰ÐÁà)Ћ]ä;Åøæ#}«ƒÿÿt‰ÐÁà)ЋU‰Åxä#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰Å|ä#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆ(ä#‰¸,ä#ƒÄ[^_]ÍvU‰å‹EÇÿÿÿÿÇ@ÿÿÿÿ]ÍvU‰åWVS‹uv‰ÐÁà)ЍÅP‹˜,ä#¿(ä#‹ 8ƒûÿt[‰ÐÁà)ЉLÇPëv‹E ‰ƒùÿt&I‰ÁÁá)Á»,ä#v‰ÐÁà)ЋDÃP‰DËPë v‹E ‰X[^_]ÐU‰åS‹M‹‰Øƒûÿt=‹@‰ÂÁâ)‹Õxä#‰ƒøÿt@‰ÐÁà)ÐÇÅ|ä#ÿÿÿÿë
+vÇAÿÿÿÿ‰Ø‹$ÉÉöU‰åS‹M‹] ƒ;ÿt)I‰ÐÁà)Ћ‰Åxä#‹@‰ÂÁâ)‰ Õ|ä#됉KI‰ÐÁà)ÐÇÅxä#ÿÿÿÿI‰ÐÁà)ÐÇÅ|ä#ÿÿÿÿ‰ ‹$ÉÃU‰åS‹M‹] ƒ{ÿt,I‰ÐÁà)ЋS‰Å|ä#‹C@‰ÂÁâ)‰ Õxä#ë‰ö‰ I‰ÐÁà)ÐÇÅ|ä#ÿÿÿÿI‰ÐÁà)ÐÇÅxä#ÿÿÿÿ‰K‹$ÉÃU‰å‹E‹]ÉöU‰å‹E‹@]ÐU‰å·Eƒøt ƒø…Àtë-ƒøtƒøtë ¸!E#됸&E#됸*E#됸0E#됸ñ5#]ÐU‰åWVSƒìœúX‰Â‰Uä÷Et$ƒìEèPjèH—ÿÿƒÄ ÿuìÿuèh@E#èaÁÿÿƒÄ÷EtN¾;5Pã#sA¿€ã#vƒì µ‹;¶BP·BPRVh€E#èÁÿÿƒÄ‹;VÿP ƒÄF;5Pã#rÇ÷Etƒì h[E#èñÀÿÿè¬!ÿÿƒÄ‹Uä‰ÐPeô[^_]Éödï",ò",ò",ò",ò",ò"˜ñ",ò"¤ñ"°ñ",ò"¼ñ"¼ñ"¼ñ"¼ñ"¼ñ"¼ñ"¼ñ"¼ñ"¼ñ"¼ñ",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò",ò"pï"„ï"ðð"°ð"0ñ"Œñ"„ï",ò",ò"€ñ",ò"Œñ",ò"hð",ò",ò"ˆð",ò"Ðï",ò",ò"ð"ó"ðô"ðô"ðô"ðô"ðô"hô"ðô"tô"|ô"ðô"Œô"Œô"Œô"Œô"Œô"Œô"Œô"Œô"Œô"Œô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ðô"ó"0ó"ðô"ðô"ðô"\ô"0ó"ðô"ðô"Pô"ðô"\ô"ðô"ðô"ðô"ðô"(ô"ðô"€ó"ðô"ðô"Äó"ü÷"ø"ø"ø"ø"ø"Ìõ"Ìõ"Ìõ"Ìõ"Ìõ"Ìõ"Ìõ"Ìõ"Ìõ"Ìõ"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"ø"üõ"€ö"|÷"|÷"|÷"ð÷"€ö"ø"ø"ä÷"ø"ð÷"ø"ø"ø"ø"ö"ø"ðö"ø"ø" ÷"$@$@d#Ð#<#¬#ü#L #œ #Ì #X
+#ä
+#p #ü #ˆ # +#d +#ì +#x#####¬#Ü#h#ì#|##x#ä#P#¼# #l#°#Ô#ð# #(#D#Ä#<#Ä#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#d#Ð#<#¬#ü#L #œ #Ì #X
+#ä
+#p #ü #ˆ # +#d +#ì +#x#####¬#Ü#h#ì#|##x#ä#P#¼# #l#°#Ô#ð# #(#D#Ä#<#Ä#J: (pid=%d) AAAARRRRGGGHHH!!! killed by someone...
+J (pid=%d) starts and call nanosleep
+J (pid=%d) ending, nanosleep returns errno=%d, t2=%ld.%ld
+main: pthread_kill on j1, then wait until t=2 sec
+SIGNAL HANDLER: pid=%d
+main: creating J1
+Error creating J1
+main: creating J2
+Error creating J2
+main: creating J3
+Error creating J3
+main: waiting 1 sec
+main: pthread_cancel(J2)
+main: ending...
+Error during Keyboard Initialization!!!Ctrl-C pressed!
+KeybPortKeyTasktask_create
+scheduletime %lus %luns * caplasttime %lus %luns * exec=%d TIME = %lu
+The system tick must be less than 55 mSec!Abort detected
+Code : %u
+Too many scheduling levels!!!
+Too many resource levels!!!
+debug info noticewarn err crit alert emerg <%i>[%s] %sPosix task
+Signal number %d...
+with value : %d
+POSIX_ReadyPOSIX_DelayPOSIX_UnknownSlice: %d
+MainPOSIX_register_level
+ alloco descrittore %d %d
+ lev=%d
+POSIX schedulerPid: %d Name: %20s Prio: %3ld Status: %s
+
+Panic!!! can't create main task...
+dummy PID: %d
+Dummy1Dummy2Dummy3Dummy4Dummy5Dummy6Dummy7Dummy8Dummy9Dummy0DummyaDummybDummycDummydDummyeDummyfDummygDummyhDummyDummy (RR) Posto dummy_create
+
+Panic!!! can't create dummy task...
+Entro in dummy_register_level
+Port des :
+Free port des : %d
+%d %s vt: %d pn: %d
+%d pd: %d vt: %d pn: %d Resources owned by the tasks:
+%-4dPI_register_module
+PI module
+PC priority of the tasks:
+%-4ldPC_register_module
+PC moduleTR %x
+SS:SP %x:%lx
+Stack0 : %x:%lx
+Stack1 : %x:%lx
+Stack2 : %x:%lx
+CS : %x DS : %x
+Descriptor [%x] InfoNo more Descriptors...
+%x (Hex)Base : %lx Lim : %lx Acc : %x Gran %x
+2Coprocessor error#Page fault*General protection fault*Stack exception*Segment not present*Unvalid TSS#INTEL reserved*Double defect1FPU context switch*Unvalid opcode#BOUND limit exceeded#Overflow detected on INTO#Breakpoint trap#NMI detected#Debug fault#Division by 0Exception %d occurred
+ABORT %d !!!LL Time Panic!!!
+time.cError! File:%s Line:%d %sOne-shot timer selected...
+Periodic timer selected...
+Unhandled Exc or Int occured!!!
+32/LINUX CrossCompiled/ELFHalt called1234567890-+12345678901234567890xabcdefABCDEF1234567890.e+-0123456789ABCDEF$@ +Æ@,ú1°<NaN+Inf-Infacosacosfacos: DOMAIN error
+asinasinfasin: DOMAIN error
+atan2atan2fatan2: DOMAIN error
+hypothypotfexpexpfy0fy0: DOMAIN error
+y1fy1: DOMAIN error
+ynynfyn: DOMAIN error
+lgammalgammaflgamma: SING error
+loglogflog: SING error
+log: DOMAIN error
+log10log10flog10: SING error
+log10: DOMAIN error
+powpowfpow(0,0): DOMAIN error
+pow(0,neg): DOMAIN error
+sinhsinhfsqrtsqrtfsqrt: DOMAIN error
+fmodfmodffmod: DOMAIN error
+remainderremainderfremainder: DOMAIN error
+acoshacoshfacosh: DOMAIN error
+atanhatanhfatanh: DOMAIN error
+atanh: SING error
+scalbscalbfj0j0f: TLOSS error
+j1j1fjnjnfneg**non-integral: DOMAIN error
+à?addfree.cmax >= minreg->min < reg->maxnew_max > new_min(reg->min & (sizeof(struct lmm_node) - 1)) == 0(reg->max & (sizeof(struct lmm_node) - 1)) == 0addregio.cr != reg(reg->max <= r->min) || (reg->min >= r->max)alloc.clmm != 0size > 0reg->free >= 0(DWORD)node < reg->maxreg->free >= size(reg->nodes == 0 && reg->free == 0) || (DWORD)reg->nodes >= reg->minreg->nodes == 0 || (DWORD)reg->nodes < reg->maxreg->free <= reg->max - reg->min((DWORD)node & (sizeof(struct lmm_node) - 1)) == 0((DWORD)node->size & (sizeof(struct lmm_node) - 1)) == 0(node->next == 0) || (node->next > node)alloc_ge.canode >= node(split_size & (sizeof(struct lmm_node) - 1)) == 0lmm_dump(lmm=%p)
+dump.cnode->size >= sizeof(*node) free_check=%08lx
+reg->free == free_checklmm_dump done
+ region %08lx-%08lx size=%08lx flags=%08lx pri=%d free=%08lx
+ node %p-%08lx size=%08lx next=%p
+(node->size & (sizeof(struct lmm_node) - 1)) == 0block != 0reg != 0(DWORD)prevnode + prevnode->size == (DWORD)node(DWORD)node + size == (DWORD)nextnodestats.cLMM=%p: %u bytes in %u regions, %d nodes
+assertion %s failed in %s at line %i (task:%i_%i)
+MAGIC assertion failed in %s at line %i (task:%i_%i): %s
+KERNEL PANIC (sys_panic_stub): %s
+KERNEL PANIC (sys_panic): %s
+FreeExeSleepWaiting on joinTime (EXACT) : %lus %luns
+< Memory Dump >
+< Level %d : %s Code: %d Version: %d >
+8Œÿÿ’ÏÿÿšÏÿ¨U#ÿÀ`#ÿÿÿÿÿÿÿÿÿÿÿÿ1234567890!@#$%^&*()-_=+[{]};:'"`~/?,<.>\|   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ 1234567890!"œ$%&/()='?^Š‚+*•‡…ø\|<_,:.;—õ   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ[]@#È]#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ5#†5#5#x5#q5#j5#c5#\5#¤"¬"¬"³:#¦:#˜:#‡:#l:#V:#F:#2:##:#:#:#ñ9#à9#Æ9#º9#:#§9#þþAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAšç;#ðÿÿÿÿGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.text.rodata.data.sbss.bss.comment.note"€Ð+!à+#`,È )¨U#(F /°`#@Q5À`#@Qè :@Q‚CÂb|>iI
\ No newline at end of file
/pse51/ptest4
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: pse51/ptest5
===================================================================
--- pse51/ptest5 (.../tags/rel_0_3) (nonexistent)
+++ pse51/ptest5 (.../branches/pj) (revision 1085)
@@ -0,0 +1,403 @@
+ELF"4àa4 ( €""H>H> È>HN#HN# Pî 덶°­üORäe‹Ká€uU¿€ Ç–eÆG1GeÆGGeÆG2GeÆG¸Tå"fe£hN#Áèfe£nN#HV#¿€ Ç’eÆG0GeÆGf¸0ŽØŽÀŽÐŽàŽè¼`#Ç0·%`a#Ç4·%`#£TV#‰XV#HV#êµ"8NV#üèbÑê U‰å‹Eê ‰öU‰åƒìÿ5ìÛ#hð+#èåƒÄÉÐU‰åƒìè};ÉÍvU‰åSƒì,ÆEÙxÆEÚ-ÆEØhô"ƒì‹EØf‰$ÆD$-è¼ ÇEôØ"ÇEð]èEì‰$è0jƒÄ jSjèUÇ$ ,#è‹äÇ$èdƒÄƒì jèN;ƒÄ=„vìƒì jèöcƒÄPh`,#èPäèÃmÇ$,#è?七Ä‹]üÉÉöU‰åƒìj ÿujh'èMè‰è‡¬è¶²è1™ƒÄ jjjèÿLèîv¸èƒÄÉÃU‰åWVSƒìX‹]}¨¾\V#ü¹ó¥E¸‰E¨fÇE¸ÇE¼ÇEÀfÇEÄÇEÐÇEÔÇEÜÇEà‰]ÈÇEØÇEÌjè8L‰EÐÇEÜÇEàƒMÌ
+è֜E¨‰$ècƒÄ…Àyƒì h ,#è»ãƒÄƒì SèoE¸ƒÄeô[^_]ÍvU‰åƒìŠU€=lW#„¶€ú*t€úªt
+€ú6t€ú¶uÆlW#¸é›„Òy,ÆlW#€ú¸uÆxW#ÆnW#ëՀúuÐÆxW#ëljöÆlW#€ú8u€ +xW#ÆnW#멀úu € +xW#뛉ö€ú5uf¾‚#·Àé)v€ú…•f¾ü#·Àé +v€úàuÆlW#éTÿÿÿv€ú*t€ú6u2ÆmW#€ú*u€ +xW#é/ÿÿÿ‰ö€ú6…$ÿÿÿ€ +xW# éÿÿÿv€úªt€ú¶u"ÆmW#€úªt €ú¶…öþÿÿÆxW#éêþÿÿ€úFu€=qW#•qW#ë.v€ú:u€=oW#•oW#ëv€úEu;€=pW#•pW#ƒì¶qW#P¶oW#P¶pW#Pèõ¸ƒÄé€úu€ +xW#éhþÿÿv€ú8u€ +xW#éTþÿÿv€út€ú¸uÆxW#é;þÿÿ‰ö¸„҈рúRt2€úOt-€úSt(€úPt#€úQt€úKt€úLt€úMt€úGt
+€úHt€úIu€=pW#uT€=mW#uK·Â +ÿë~€=oW#t/Bð< vBâ<vBÔ<w€=mW#t¶Âf¾€à#·ÀëG€=mW#t¶Âf¾€€‚#·Àë-v€=nW#t¶Âf¾€ ƒ#·Àëv¶Âf¾€à#·ÀÉÃU‰åWVSƒì,}؃ìjE×PèòƒÄ…À„¡ƒì ¶E×Pèöüÿÿ‰ÂƒÄf…Ò„†÷Âÿt  xW#ƒÈ@ë‰ö xW#ˆE؈UيE׈EÚ±»;؁#}8¾`#v݊D2:EÚuŠ2:EØuƒì Wÿ’d#±ƒÄC;؁#|ЄÉuƒìjW¿¢ƒ#Pèý¡ƒÄè-é<ÿÿÿU‰å‹E£hW#Šˆâ#ŠPˆã#ŠPˆä#ŠPˆå#ŠPˆæ#ŠPˆç#ŠPˆè#ŠPˆé#ŠPˆê#ŠP ˆë#ŠP
+ˆ‚‚#ŠP ˆƒ‚#ŠP ˆ„‚#ŠP +ˆ…‚#ŠPˆ†‚#ŠPˆ‡‚#ŠPˆˆ‚#ŠPˆ‰‚#ŠPˆŠ‚#ŠPˆ‹‚#ŠPˆì#ŠPˆŒ‚#ŠPˆí#ŠPˆ‚#ŠPˆú#ŠPˆš‚#ŠPˆû#ŠPˆ›‚#ŠPˆ‚#ŠPˆ§‚#ŠPˆ‚#ŠPˆ¨‚#ŠP ˆ ‚#ŠP!ˆ©‚#ŠP"ˆ‚#ŠP#ˆµ‚#ŠP$ˆ‚#ŠP%ˆ³‚#ŠP&ˆ‚#ŠP'ˆ´‚#ŠP(ˆ ‚#ŠP)ˆ«‚#ŠP*ˆ‚#ŠP+ˆ¹‚#ŠP,ˆî#ŠP-ˆŽ‚#ŠP.ˆï#ŠÖˆ‚#ŠP0ˆá#ŠP1ˆ‚#ŠP2ˆü#ŠP3ˆœ‚#ŠP4ˆä‚#ŠP5ˆς#ŠP6ˆЂ#ŠP7ˆт#ŠP8ˆ˂#ŠP9ˆ̂#ŠP:ˆ͂#ŠP;ˆǂ#ŠP<ˆȂ#ŠP=ˆɂ#ŠP>ˆ҂#ŠP?ˆӂ#ŠP@ˆ.‚#ŠPAˆ‚#ŠPBˆ‚#ŠPCˆ*‚#ŠPDˆ΂#ŠPEˆ·‚#ŠPFˆʂ#ŠPGˆþ#ŠPHˆž‚#ŠPIˆ‚#ŠPJˆ°‚#ŠPKˆ‚#ŠPLˆ®‚#ŠPMˆ‚#ŠPNˆ ‚#ŠPOˆò#ŠPPˆ’‚#ŠPQˆ‚#ŠPRˆ¡‚#ŠPSˆ‚#ŠPTˆ¢‚#ŠPUˆ‚#ŠPVˆ£‚#ŠPWˆ÷#ŠPXˆ—‚#ŠPYˆ‚#ŠPZˆ¤‚#ŠP[ˆ‚#ŠPRˆ¥‚#ŠP]ˆ‚#ŠP^ˆ¦‚#ŠP_ˆ‚#ŠP`ˆ²‚#ŠPaˆ‚#ŠPbˆ±‚#ŠPcˆø#ŠPdˆ˜‚#ŠPeˆù#ŠPfˆ™‚#ŠPgˆð#ŠPhˆ‚#ŠPiˆó#ŠPjˆ“‚#ŠPkˆÿ#ŠPlˆŸ‚#ŠPmˆô#ŠPnˆ”‚#ŠPoˆö#ŠPpˆ–‚#ŠPqˆ‚#ŠPrˆ¯‚#ŠPsˆñ#ŠPtˆ‘‚#ŠPuˆ +‚#ŠPvˆ­‚#ŠPwˆõ#ŠPxˆ•‚#ŠPyˆ ‚#ŠPzˆ¬‚#ŠP{ˆ:ƒ#ŠP|ˆ;ƒ#ŠP}ˆGƒ#Š@~¢Hƒ#]ÍvU‰åWVSƒì\‹]}ؾ€W#ü¹󥿸ƒ=tW#…Qº¾à#¹€‚#‰ö·ÂÆ0ÆBfúví…Ûu]؃{ÿuÇChV#ƒì ÿsèûÿÿÇ$jjjhÙ,#èϔf£¢ƒ#ƒÄ fƒøÿu ¸þÿÿÿéÞ‰öjjjhÙ,#è0˜f£¤ƒ#ƒÄfƒøÿuƒì ¿¢ƒ#P蕛¸ýÿÿÿ頍vÇ؁#ƒ{ÿuÇC "ƒ{tIÆE™cÆEš.ÆE˜ƒìÿsƒì‹E˜f‰$ÆD$.èÅÆE˜ƒÄÿsƒì‹E˜f‰$ŠEšˆD$襃ă;ÿuQfÇE¨ÇE¬ÇE°fÇE´ÇE¸ÇEÐÇEÈÐÇEÄ ÇEÀ¨aÇE¼
+ÇE̍E¨ë‹ƒì jjPh¨"hâ,#èÿ‰ÃƒÄ ‰¨ƒ#ƒøÿu'ƒì ¿¢ƒ#P蓚¿¤ƒ#‰$脚‰Ø钐ƒ=|W#uWƒì ÿ5¨ƒ#艉ǃąÿt4ƒì ¿¢ƒ#PèLš¿¤ƒ#‰$è=šƒÄÿ5¨ƒ#èg5¸üÿÿÿë=Ç|W#ëèƒì¶qW#P¶oW#P¶pW#PèûÇtW#‰øƒÄeô[^_]ÃU‰åƒì¶EPEèP¿¤ƒ#Pè0œƒÄ„Àt÷Eè@u¶Eéë‰ö¸ÉÐU‰åƒì ¶E Pÿu¿¤ƒ#Pèõ›·ÀƒÄÉÐU‰åSƒ=؁#0‹ +؁#Í»`#‹Ef‰ŠE
+ˆD‹E ‰‚d#A‰ +؁#‹$ÉÉöU‰åƒìèÉÍvU‰åƒìè±ÉÍvU‰åƒì¸ÿÿÿÿƒ=tW#t9蓃ì ÿ5¨ƒ#è-4¿¢ƒ#‰$è昿¤ƒ#‰$èט¸ƒÄÉÐU‰åƒìjèoÔÇ$è+ÔÇ$È,#èóÓè²-ƒÄÉÐU‰åWVSƒìŠEˆEó¿1¾d»`‰ö¹v‰òì©t"‰ÈA=þÿÿvì¸ÿÿÿÿ…Àu‰ÚŠEóî¸ë‰ö¸ë搸ÿÿÿÿÇEì¹d…Àt¸ÿÿÿÿët¸ë‰Êì©uî‹EìÿEì=þÿÿvé¸ÿÿÿÿ…Àu‰Úì¶Àë¸ÿÿÿÿƒøÿu
+¸þÿÿÿë3v=úu ¸ë"‰ö=þt ¸ýÿÿÿë‰ö‰øO…À9ÿÿÿ¸üÿÿÿƒÄ[^_]ÃU‰åVSƒìŠEˆE÷³Ô¾¹d‰ö‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë搸ÿÿÿÿ…Àt¸ÿÿÿÿëL¸ë&»¹d‰ö‰Êì©tâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuº`ŠE÷î¸ëv¸ÿÿÿÿ…Àt¸ÿÿÿÿëj¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuºdì© tº`ì¶Ðëvºÿÿÿÿ‰Ð…Òx¸úú”ÀDþƒÄ[^]ÃU‰åWVSƒì »¾`‰ØK…À~^ƒì hÿè¼ýÿÿ‰ÂƒÄ…Òu{¿¹d‰Êì©u‰øG=þÿÿvì¸ÿÿÿÿ…Àu‰òì¶Ðëv¸ëꐺÿÿÿÿúªu›¸üÿÿÿúª…ƃì hõèMýÿÿ‰ÂƒÄ…Òt(¸ûÿÿÿ馉ö¸ýÿÿÿ隉ö¸ë.¸ëZ³`¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³e¾¹dv‰Êì©t®‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîƒì hôèªüÿÿ‰ÂƒÄ¸…Ò•ÀHƒàƒèeô[^_]ÃU‰åWVSƒì ¾»d¹`‰Úì©t +‰Êì‰ðF=þÿvé³­¾¹d‰Êì©„‚‰ðF=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¾»d¹`‰Úì©t +‰Êì‰ðF=þÿv鳪¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸놐¸ÿÿÿÿ…Àt¸÷ÿÿÿéݐ¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿƒøUt¸ÿÿÿÿ錸ë&³«¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸öÿÿÿé9¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸þÿÿÿé鐸ë&³®¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…À…<èzüÿÿ…À…Žƒì hóèIúÿÿƒÄ…Àt
+¸ùÿÿÿépƒì jè.úÿÿƒÄ…Àt¸øÿÿÿéU¸ë.ÆŒW#³©¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ôÿÿÿéù¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸óÿÿÿ驐¸ë&³¨¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸õÿÿÿéU¸ë&³Ó¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ðÿÿÿ鐸ë&³Z¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë¸ÿÿÿÿ…Àt¸ïÿÿÿ魐ƌW#ëBv¸ë^¹þÿ¾d»`‰òì¶ø÷Çt‰Úì¶À÷Ç tƒøZt»IƒùÿuÙ³§¾¹d‰Êì©tª‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àté»þÿÿ‰ö¸ë:€=ŒW#„þÆŒW#³¨¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸îÿÿÿ鱐¸ëvƒì hóèWøÿÿ‰ÃÇ$dèIøÿÿÃÇ$èè;øÿÿÃÇ$è-øÿÿÃÇ$çèøÿÿþ§ƒÄ¿¹dv‰Êì©t’‰øG=þÿÿvì¸ÿÿÿÿ…Àuºd‰ðî¸ë¸ÿÿÿÿ…Àt¸íÿÿÿë…ÛuÆŒW#¸eô[^_]ÃU‰åVS¡ W#…Àt¡ W#H£ W#¸é²¸ë6ƒ=˜W#uKŠœW#¾¹dv‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿ˜W#뤍v¸ë:ƒ=˜W#uGǘW#³ô¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…À…Xÿÿÿº`ˆØîéKÿÿÿ‰ö¸[^]ÍvU‰åWVSƒì ¡¤W#@£¤W#¾õ³Ô¿¹dv‰Êì©t"‰øG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîœúX‰Çƒì hõè5õÿÿ‰ÃƒÄ…Ût¸ûÿÿÿéù‰ö¸ë1¾§ÇEð¹dv‰Êì©tڋEðÿEð=þÿÿvé¸ÿÿÿÿ…Àu ºd‰ðî¸ë¸ë=¸ëq¸ÿÿÿÿþ`ÇEð¹d‰Êì©t΋EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuºd‰ðî¾eÇEð¹dv‰Êì©tš‹EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuº`‰ðîƒì hôè;ôÿÿÃĉøPÆW#‰Øeô[^_]ÐU‰åWVSƒì ¸ÿÿÿÿ€=ŒW#„ºœúX‰Æƒì hõèóóÿÿƒÄ…Àt(¸ûÿÿÿé—‰ö¸ë:¸ëf¸é“‰ö³`¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³G¿¹dv‰Êì©t¢‰øG=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØ¿¹dv‰Êì©„rÿÿÿ‰øG=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt ¸îÿÿÿ鐃ì hôèÿòÿÿƒÄ…Àt¸Ûÿÿÿ飉ö¸ë:‰ðP¡¤W#@£¤W#¾ô³Ô¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîƍW#¸eô[^_]ÍvU‰åƒìÇĄ#ÇÀ„#ƒ=”W#t!úè‹õÿÿ£W#Ç”W#û…Àtúèôÿÿû¡W#…ÀuƒìÿuhŒ "jèQ¸ƒÄÉÍvU‰åVS¡ W#@£ W#³õ¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åVS¡ W#@£ W#³ô¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åƒì‹MœúX‰Â¡À„#@%ÿ£À„#Š€Àƒ#ˆ‰ÐP€9úu è(úÿÿë‰ö¸ÉÐU‰åƒìƒ=¬W#t(Ç$…#Ç …#Ç(…#ǬW#‹E£¨W#ƒ=”W#t!úèôÿÿ£W#Ç”W#û…Àtúèòÿÿû¡W#…Àu.¸ìÿÿÿ€=ŒW#t ƒìjÿhÈ "j èOƍW#¸ƒÄÉÉöU‰åS‹MœúX‰Ã¡ …#@ƒà?£ …#ºà„#ŠˆA¡ …#@ƒà?£ …#Šˆ¡ …#@ƒà?£ …#ŠˆA‰ØP¸‹$ÉÉöU‰åƒì€=W#tèäùÿÿƒì j èŽOƍW#¸ƒÄÉÐU‰åƒìƒ=”W#t!úè óÿÿ£W#Ç”W#û…Àtúè™ñÿÿû¡W#…Àt¸ë¶ŒW#ÉÍvU‰åVSŠEŠU€} t ƒ +œW#ë ‰öƒ%œW#„Àt ƒ +œW#ëƒ%œW#„Òtƒ +œW#ë¸ë6¸ëbƒ%œW#³õ¾¹d‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî³í¾¹dv‰Êì©t¦‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿ˜W#[^]ÐU‰åSƒìœúX‰Ã€=W#tè–øÿÿè‘ðÿÿƒì hóèhîÿÿƒÄ…Àuƒì jèWîÿÿƒÄ…Àu‰ØP‹]üÉÍvU‰åº`ì¶ÈœúX‰Â¡À„#;Ą#t¡Ä„#ˆˆÀƒ#@%ÿ£Ä„#‰ÐP]ÉöU‰åƒìº`ì¶Ðƒ=(…#u €úúu¡¤W#H£¤W#郍v÷ÂÀuxÿ(…#œúX‰Á¡ …#;$…#t¡$…#ˆà„#@ƒà?£$…#ë"‰ö¡$…#+(…#ƒÀAƒà?£$…#Ç(…#‰ÈPƒ=(…#uÇ(…#ƒì ÿ5¨W#èƒÄÉÉöU‰åSƒì}™w‹UÑâU‰ÐÁà)Ðfƒ<ÅèÜ#uèùÝNj¸ÿÿÿÿ鏐ƒ=ÀÛ#tcœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€ÁÜ# t ÿ€ÄÜ#ë-v‹EÑàE‰ÂÁâ)‹ÕÄÜ#ƒì‹• Ü#ÿuRÿP@ƒÄ‰ØPéèƒ¡…ÀtgœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€ÁÜ# t ÿ€ÄÜ#ë2v‹EÑàE‰ÂÁâ)‹ÕÄÜ#ƒì‹• Ü#ÿuRÿP@蔃ĉØPé­úèJ²‹ìÛ#R‰ÑÁá)Ñ»ÀÜ#f‰DË‹UÑâU‰ÐÁà)ЍÅ0öD t ÿ€ÄÜ#ë?vƒìU‰ÐPjÿèW#‹MI‰ÐÁà)ЋÅÄÜ#ƒÄ‹• Ü#QRÿP@è/ƒÄ¡ìÛ#@‰ÂÁâ)ƒì ¿ÕÈÜ#P踱èƒÄû¸‹]üÉÐU‰åWVSƒì ‹]f…Ûuè>Ünj¸ÿÿÿÿé"‰öƒ=ÀÛ#„“œúX‰ÇÇEð}ð™s¾ÀÜ#‹UðÑâUð‰ÐÁà)ÐÁàf9\,uHƒÀ0öD0 t ÿ€ÄÜ#ë6ƒìEðPjÿèW#‹MðI‰ÐÁà)ЋÅÄÜ#ƒÄ‹• Ü#QRÿP@ƒÄÿEð}ð™~“‰øPé}‰ö蓟…À„›œúX‰ÇÇEð}ð™w¾ÀÜ#‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€ÄÜ#ë8vƒìEðPjÿèW#‹MðI‰ÐÁà)ЋÅÄÜ#ƒÄ‹• Ü#QRÿP@ƒÄÿEð}ð™~èj‰øPéԐúè"°‹ìÛ#R‰ÑÁá)Ñf‰ÍÈÜ#ÇEð}ð™w¾ÀÜ#‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€ÄÜ#ë8v‹MðI‰ÐÁà)ЋÅÄÜ#ƒì‹• Ü#QRÿP@ƒÄEðPjÿèW#ƒÄÿEð}ð™~èÞ ¡ìÛ#@‰ÂÁâ)ƒì ¿ÕÈÜ#Pèj¯èÁƒÄû¸eô[^_]ÃU‰åSƒìúè;¯‹ìÛ#R‰ÑÁá)Ñf‰ÍÈÜ#ƒìh¤Ü#jèl–ƒÄUð¡¨Ü#;øÛ#|¡¤Ü#+ôÛ#‰Eð¡¨Ü#+øÛ#ë!‰ö¡¤Ü#+ôÛ#H‰Eð¡¨Ü#+øÛ#ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыìÛ#R‰ÐÁà)Ð) Å Ý#ƒì Qè. ƒÄƒ=üÛ#ÿtƒì ÿ5üÛ#ÿÈÛ#ÇüÛ#ÿÿÿÿƒÄ‹ +ìÛ#I‰ÐÁà)ЋÅÄÜ#ƒì‹… Ü#QPÿRLè{ ƒÄhìÛ#jÿèW#ÇìÛ#ÿÿÿÿÇÜ#ÿÿÿÿèV ¡ìÛ#@‰ÂÁâ)¿ÕÈÜ#‰$èã­è:ƒÄû‹]üÉÐU‰åƒìhL'"è( ƒÄÉÍvU‰åƒìjè ƒÄÉÉöU‰åƒìƒ=´W#u(èè
+ƒì ¡ìÛ#@‰ÂÁâ)¿ÕÈÜ#Pèt­ƒÄÉÍvU‰åWVSƒìhê,#è]$ƒÄ»ÀÜ#ëv‹Eð@‰ÐÁà)ЁLÃ0€ƒì hdÜ#èÊ+‰EðƒÄƒøÿ„“@‰ÐÁà)ÐöDÃ1@u¾‹UðR‰ÃÁã)ÃÁã¾ÀÜ#¡°W#‰3@£°W#‹E ‰DƒìjÿuƒÔÜ#Pè ¾ÆD'ƒÃ fÇD3‹Mf‹%ÿf‰D3
+f‹A f‰D3 ƒÄ‰Ø‰ñº‹]ƒ{tf‹Sf‰T‹UðR‰ÁÁá)ÁÁáY0‹U‹B +‰ƒÀÜ#¿ÄÜ#Ç;¾ÈÜ#¡ìÛ#@‰ÂÁâ)‹DÖ0‰3ºÌÜ#ǍAP‹]ð‰˜ÀÜ#Ç8ÇÿÿÿÿÇ0ÿÿÿÿǁ Ý#°Ç8Ç0ǁÁÀǁÀÜ#Ç9ºۍƒ€ 
+Ç…$Ý#Bƒúvì‹Eð@‰ÐÁà)ÐÁàÀǂÈÜ#ÿÿÿÿǂÌÜ#Ý#‰Ý#º‹Mðɍ€ ‰ö
+Ç…Ý#Bƒú~ì»ëC;ðÛ#sƒì‹ Ü#ÿuSÿPƒÄ…Àxß;ðÛ#u7‹]ð[‰ÂÁâ)ÂfÇÕèÜ#ƒìhdÜ#SèÚ)è¡ÕDŽ鄉ö‹Eð@‰ÐÁà)Ѝ4ʼnžÄÜ#ƒì‹ Ü#ÿuÿuðSÿP,ƒÄ…ÀyWfdžèÜ#ƒìhdÜ#ÿuðèz)èAÕDžë'è3Õǃ釃ì ÿuðè9èÕdž¸ÿÿÿÿƒÄëjƒE‹U‹zü…ÿtY‰ö¾ëF;5äÛ#s0ƒìµ‹ƒ€Ü#WVÿP ƒÄ…Àxۃ싃€Ü#WÿuðVÿP$ƒÄ;5äÛ#t‡ƒE‹M‹yü…ÿu©‹Eðeô[^_]ÉöU‰åƒìEPÿuÿu ÿuè`üÿÿƒÄÉÍvU‰åWVSƒì ‹} ƒt6‹EÑàE‰ÂÁâ)‹G‰ÕÌÜ#‰Æ‹UÑâU‰ÐÁà)Ѓ ÅðÜ#@ën‰öƒì ‹UÑâU‰ÐÁà)зÅîÜ#Pè@‹UÑâU‰ÑÁá)Ñ»ÌÜ#‰ˉƋEÑàE‰ÂÁâ)ƒÄƒ<Óuƒì ÿuèìèËÓLjëtv‹EÑàE‰ÂÁâ)»ÀÜ#·DÓ.ƃì ·GPjÿwVh8."è-‰ÁƒÄ f…Éu?ƒì‹UÑâU‰ÐÁà)зDÃ.PVèƒÄÿuèvèUÓlj¸ÿÿÿÿƒÄëN‹EÑàE‰ÂÁâ)Âf‰ ÕÈÜ#ƒìU‰ÐPjÿèW#ƒÄöGu ÿàÛ#ëvöGuÿ Ü#¸eô[^_]ÍvU‰åWVSƒì ‹M‹U ‹]œúX‰ÇEPSRQè­úÿÿ‰ÆƒÄƒþÿ„ɍv‰ÐÁà)ЋÅÄÜ#‹… Ü#ƒx(„èà…À‰€»;äÛ#svƒì‹€Ü#VSÿP(ƒÄC;äÛ#råv‰ÃÁã)ÃÁ㋃ÄÜ#ƒì‹… Ü#VPÿR0fǃèÜ#ƒÄhdÜ#Vè\&ƒÄè ÒLJ‰øP¸ÿÿÿÿë#vƒìSVèŽýÿÿƒÄº…À”ÂJ ։øP‰ðeô[^_]ÃU‰åVS‹u»;äÛ#svƒì‹€Ü#VSÿP(ƒÄC;äÛ#råv‰ÃÁã)ÃÁ㋃ÄÜ#ƒì‹… Ü#VPÿR0fǃèÜ#ƒÄhdÜ#Vè¬%ƒÄeø[^]ÉöU‰åVS‹]è ƒì ¡ìÛ#@‰ÂÁâ)¾ÀÜ#SÿTÖú‰$èn¡ìÛ#@‰ÂÁâ)¿DÖ‰$èn¦ƒÄeø[^]ÃU‰åWVSƒì‹]‹}úû™w! [‰ÈÁà)ÈÁàºÀÜ#öD0tfƒ|(u û¸ÿÿÿÿéDžÿy$[‰ÁÁá)Á Í°¸ÄÜ#‹<Çë ‰öƒÿv¿[‰ÁÁá)Á Í°‰Mä¹ÈÜ#‰Mì‹Uä‹
+‰Â)úƒÂ‰Ð¾º÷ö‰Eð‹uä;tMۍƒ€4‹MðىÈÁà)ȍ Å°‰ö2‹…$Ý#‹] ‰ƒÃ‰] B»‰Ðº÷ó‹]ì;uÔû‰øƒÄ[^_]ÐU‰åSƒì‹]‹ +ìÛ#I‰ÐÁà)ЍÅö‚ðÜ#tɍ€È‚xÝ#…$Ý#¡¤Ü#;ôÛ#|;ôÛ#uA¡¨Ü#;øÛ#}4ƒìSÿ5ìÛ#ÿ5øÛ#ÿ5ôÛ#ÿ5¨Ü#ÿ5¤Ü#h-#è8¶ƒÄ è@ ‹]üÉÍvU‰åWVS‹ +ìÛ#I‰ÐÁà)ЍÅöƒðÜ#„›ɍ€ȍ‹°ÈÜ#ºÄÜ#‹t‚`‹”À¸ÌÜ#94s‰4‹ìÛ#[‰ÁÁá)ÁÁፁÀ°ÀÜ#¿ÄÜ#B‰8±°‹†ÈÜ#@º‰Ñº÷ñ‰–ÈÜ#ۍƒ€ØÐÇD‡`ƒ<>wÿ>[^_]ÉöU‰åWVS‹M‹] ‹u‹}úù™w!I‰ÐÁà)ÐÁàºÀÜ#öD0tfƒ|(uû¸ÿÿÿÿëy…ÛtI‰ÂÁâ)‹ՀÝ#‰…ötI‰ÂÁâ)‹Õ|Ý#‰…ÿtI‰ÂÁâ)‹ՄÝ#‰ƒ}t(ɍ€ȍ I‰ÊÁâ)ÊÕxÝ#‹…$Ý#‹U‰û¸[^_]ÉöU‰å‹Múù™w!I‰ÐÁà)ÐÁàºÀÜ#öD0tfƒ|(uû¸ÿÿÿÿë7I‰ÂÁâ)ÂÁ⍂ÀǀÀÜ#ǀÄÜ#ǂ|Ý#û¸]ÍvU‰åWVSƒì ƒ=ìÛ#ÿt¡ìÛ#@‰ÂÁâ)ÂöÕðÜ#…3ƒ=ìÛ#ÿ„ƒìh¤Ü#j證ƒÄU表Ü#;øÛ#|¡¤Ü#+ôÛ#‰E表Ü#+øÛ#ë"v¡¤Ü#+ôÛ#H‰E表Ü#+øÛ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыìÛ#R‰ÐÁà)Ð) Å Ý#ƒì QènüÿÿƒÄƒ=üÛ#ÿtƒì ÿ5üÛ#ÿÈÛ#ÇüÛ#ÿÿÿÿƒÄ‹ +ìÛ#I‰ÐÁà)Ћ<ÅÄÜ#ƒì‹½ Ü#QWÿP<ƒÄ¿4½ƒì ‹† Ü#WÿP$‰ÃƒÄƒûÿt%ƒì[‰ÐÁà)ЋÅÄÜ#‹… Ü#SPÿR4ƒÄ븅Àx»ƒûÿuG뫍v‹5ìÛ#‰Ü#‰ìÛ#[‰ÐÁà)Ð;ÅÝ#t0»ÀÜ#‰ö¡ìÛ#@‰ÂÁâ)‹TÓP‰ìÛ# R‰ÈÁà)È;TÃPu×;5ìÛ#tƒìhìÛ#jÿèW#ƒÄ‹ +ìÛ#I‰ÐÁà)ÐÁà¾ÀÜ#fÇD(‹¸ÄÜ#ƒì‹½ Ü#‹Ü#¸;ìÛ#•ÀPQWÿS8¡ìÛ#@‰ÂÁâ)ƒÄöDÖ1„Ü¡Ü#;ìÛ#…Ë¡¤Ü#‰EèMè¡ìÛ#@‰ÂÁâ)»ÌÜ#‹DÓ@º@B‰Ö™÷þ’’’Áâ‰Ö5¨Ü#‰q¿¡/¸D‰ø÷î‰×Áÿ‰ð™‰þ)Ö¡ìÛ#@‰ÂÁâ)‹\Ó@ºƒÞC‰Ø÷êÁú‰ØÁø)2Eè‹AºÊš;‰Ó™÷û‰Qjhd<"ÿuìÿuèÿÄÛ#‰ÃƒÄƒûÿuƒìÿ5ìÛ#jèû7ƒÄ‰üÛ#¡¤Ü#£ôÛ#¡¨Ü#£øÛ#eô[^_]ÉöU‰åWVSƒìÇPœ%úÿuèD»ƒÄ¿ÄÜ#¾ÀÜ#‰ö[‰ÂÁâ)ÂÁâÇ:ÿÿÿÿǂÌÜ#ÆDB fÇD0fÇD0
+fÇD0 fÇD0B0Ç0Ç8ǀÈÜ#ǀÌÜ#‚Ý#Ç@Çǂ Ý#BP‰0Ç8ÇD`DŽÐ‚˜ß#Ç@Ǎ‚àÇ0ÿÿÿÿÇ8ÿÿÿÿ‚°Ç8ǀÈÜ#ǀÌÜ#ÂÀÇ2Ç:ºۍƒ€ v
+ÇD‡`Bƒúvï[‰ÐÁà)ЍÅÀǀÈÜ#ÿÿÿÿǀÌÜ#ºۍƒ€ 
+DŽ†ÐBƒú~ìCû™Žƒþÿÿ»¹ÈÜ#[‰ÂÁâ)C‰DÑP‰Ãû˜~åÇÀ™%ÿÿÿÿ»™¹ÌÜ#[‰ÂÁâ)Cÿ‰DÑP‰Ã…ÛéÇÝ#ÿÿÿÿÇdÜ#ÇèÛ#ÇàÛ#Ç Ü#ÇÜ#ÿÿÿÿÇìÛ#ÿÿÿÿÇüÛ#ÿÿÿÿÇøÛ#ÇôÛ#ÇðÛ#ÇäÛ#ÇÀÛ#èÚè}è42ƒì ÿuèqÉÿÿ£hÜ#ƒÄ=×Övƒì h`-#èÇ$è »ƒÄ¸ƒ=hÜ#”À‰Eè]è¡hÜ#‰CÇPœ%躂ƒì S豌Ç$ø<"èÇÇ$8'"聎Ç$P<"蕎ƒÄjjèEÿðW#ƒÄh¤Ü#jèLƒèOùÿÿèê›f£`Ü#¡ìÛ#@‰ÂÁâ)¾ÀÜ#¿DÖ‰$èϛÇ$è7ŽÿìW#ÇPœ%ƒÄ»ƒ=èÛ#ŸÃSjèɃă= Ü#teè„ Ç´W#ƒìh¤Ü#j軂è^›f£`Ü#è³øÿÿÇ$P<"èǍ¡ìÛ#@‰ÂÁâ)¿DÖ‰$è7›Ç$蟍ƒÄÇPœ%ƒìSjèCèÇPœ%ƒÄjjè(ƒÄúƒ=èÛ#t"ƒìÿ5èÛ#h‹-#èP¬Ç$ÿÿÿÿèX¹ƒÄƒì jèK¹ƒÄeô[^_]ÃU‰åSƒìƒ=´W#…•èW‰…Àuú腚‹ìÛ#R‰ÑÁá)Ñf‰ÍÈÜ#‹E£èÛ#Ç´W#ƒ=ìÛ#ÿ„ƒìh¤Ü#j藁ƒÄUð¡¨Ü#;øÛ#|¡¤Ü#+ôÛ#‰Eð¡¨Ü#+øÛ#ë ¡¤Ü#+ôÛ#H‰Eð¡¨Ü#+øÛ#ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыìÛ#R‰ÐÁà)Ð) Å Ý#ƒì QèZôÿÿƒÄƒ=üÛ#ÿtƒì ÿ5üÛ#ÿÈÛ#ÇüÛ#ÿÿÿÿƒÄ‹ +ìÛ#I‰ÐÁà)ЋÅÄÜ#ƒì‹… Ü#QPÿR<ÇÜ#ÿÿÿÿÇìÛ#ÿÿÿÿƒÄèü‡…Àtƒì ¿`Ü#Pè,™ƒÄëvƒì ¿`Ü#Pè™èkƒÄû‹]üÉÉöU‰åSƒìÇEøÿÿÿÿ»º Ü#¡ Ü#ƒx(t1ƒì‹šUøRSÿP(ƒÄ…Àu¸ÿÿÿÿëCƒûwº Ü#‹šƒx(uи‹]üÉÉöU‰åƒìè è+ÉÉöU‰åƒìÇüÛ#ÿÿÿÿè§êÿÿÉÐU‰åSƒìœúX‰Ãƒ=Pœ%tƒ= Ü#t‰ØPëƒì jè–ýÿÿƒÄ‰ØP‹]üÉÉöU‰åƒìÿuèzýÿÿƒÄÉÐU‰åSƒì‹UœúX‰ÃƒìRjèZ‰ÂƒÄ‰ØP‰Ð‹]üÉÉöU‰å¸èÛ#ƒ=ìÛ#ÿt‹ìÛ#R‰ÐÁà)ЍÅ Ý#]ÉöU‰åSƒìœúX‰Ãƒ=Pœ%tƒ= Ü#t‰ØPëƒì ÿuèíüÿÿƒÄ‰ØP‹]üÉÐU‰å]ÍvU‰åWVSƒì ÇEðÇE컍[ …ƒ¹H…#t[¿@…#ƒ<9tP‹ìÛ#ҍ‚€Ð؍…оÀÜ#ƒ<0t+ûƒì ÿ40ÿ9ƒÄú‹ìÛ#ҍ‚€Ð؋´†Ð uìCƒû~Œƒ}ìt +ÿEðƒ}ðŽmÿÿÿeô[^_]ÐU‰åVSº¾@…#»D…#¹H…#vRÁàÇ0B‰Çƒú~ãÇ8‹#ÿÿÿÿÇ@‹#ÇH…#Ç@…#ÇD…#ÿÿÿÿ[^]ÐU‰åS‹Múƒ=@‹#ÿu û¸ ënv¡@‹#@Ç•H…#‰¡@‹#@‹…D…#£@‹#‹@‹U ‰…@…#º»ÀÜ#‰öҍ‚€ÐDŽƒÐBú™~ßû¸‹$ÉÃU‰åú¡ìÛ#À’ÂU‹•Ý#û]ÍvU‰å‹Múƒùw +Iƒ<…H…#u û¸ë%v¡ìÛ#À’ÂʋE ‰•Ý#û¸]ÃU‰åS‹]œúX‰Áƒûw +[ƒ<…H…#u‰ÈP¸ë.v[Áà‹@‹#‰D…#ǀH…#‰@‹#‰ÈP¸‹$ÉÃU‰åWVSƒì ¡ìÛ#‰Eð‰ÂÑâ‰ÐÁà)ЍÅ¿ÀÜ#öD0 tm‹E‰‚ŒÝ#‹UðÑâUð‰ÐÁà)ЁLÇ0@‹UðÑâUð‰ÐÁà)ЍÅÀºÈÜ#ƒ<ÿt,‹4v‰ÃÁã)ÃÁ㋃ÄÜ#ƒì‹… Ü#VPÿRD‰tPƒÄ¹»ÀÜ#;MðtI‰ÐÁà)ЋUð9TÃP„ˆAù™~ۋUðÑâUð‰ÐÁà)Ѓ<ÅÝ#t[»ÄÜ#ûƒì ‹UðÑâUð‰ÐÁà)ЋDÃPÿpÿƒÄú‹EðÑàEð‰ÂÁâ)ÕP‹‹@‰‹UðÑâUð‰ÐÁà)Ѓ|ÃPu«èJüÿÿƒì ‹EðÑàEð‰ÂÁâ)»ÀÜ#¿DÓPèÔyƒÄEðPjÿèW#‹Eð@‰ÂÁâ)ՃÄöD0@u%ƒì·D.P‹Eð@‰ÂÁâ)Âÿ4ÕÌÜ#èÁ ƒÄ»;äÛ#sƒì‹€Ü#ÿuðSÿP(ƒÄC;äÛ#rã‹MðI‰ÐÁà)ЋÅÄÜ#ƒì‹… Ü#QPÿRPÇìÛ#ÿÿÿÿÇÜ#ÿÿÿÿ‹Eð@‰ÂÁâ)ƒÄöÕðÜ#u&ÿ +àÛ#ƒ=àÛ#uBèZúÿÿë;ƒìRjèY+ƒÄëg‹Eð@‰ÂÁâ)ÂöÕðÜ#uÿ + Ü#ƒ= Ü#uèúÿÿƒìh¤Ü#jèÒyƒÄƒ=üÛ#ÿtƒì ÿ5üÛ#ÿÈÛ#ÇüÛ#ÿÿÿÿƒÄè­ïÿÿeô[^_]ÐU‰åVS‹uúv‰ÐÁà)ÐÁàºÀÜ#öD0ufƒ|(uèѼNJû¸ÿÿÿÿ麍v‰ÐÁà)ÐöÅñÜ#tû雉ö;5ìÛ#uJv‰ÐÁà)лÀÜ#‹DÃ0©t0©u)ƒì jè¥üÿÿ¡ìÛ#@‰ÂÁâ)¿DÓ‰$襑ƒÄ»ëvC;¸W#}ƒìÝÿ°d‹#Vÿ`‹#ƒÄ…Àtٍv‰ÐÁà)Ё ÅðÜ#û¸eø[^]ÍvU‰åWVSƒì ‹Ef‰Eòf…Àuèâ»ÇŒ¸ÿÿÿÿé‰öú¡Ü#@‰ÂÁâ)Âf‹Mòf; ÕìÜ#”Eñ¾¿ÀÜ#‰öv‰ÐÁà)ÐÁà‹T0÷Â…ˆƒÀ fƒ|8t}÷Âuuf‹Mòf9L8 uj;5ìÛ#u!÷Ât÷Âuƒì jè{ûÿÿƒÄëC‰ö»ëC;¸W#}ƒìÝÿ°d‹#Vÿ`‹#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™ŽNÿÿÿ€}ñt(ƒì ¡Ü#@‰ÂÁâ)¿ÕÈÜ#P萃Äëvû¸eô[^_]ÉöU‰åWVSƒì ¾¿ÀÜ#v‰ÐÁà)ÐÁàfƒ|(tL÷D0
+uB»ë‰öC;¸W#}ƒìÝÿ°d‹#Vÿ`‹#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™~–eô[^_]ÉöU‰åSƒì¡ìÛ#@‰ÂÁâ)»ÀÜ#‹DÓ0©t7©u0©t)ƒì jè"úÿÿ¡ìÛ#@‰ÂÁâ)¿DÓ‰$è"ƒÄ‹]üÉÉöU‰åS‹M‹] ¡¸W#ʼnŠ`‹#‰šd‹#@£¸W#‹$ÉÍvU‰åƒìúÿuè½ùÿÿ¡ìÛ#@‰ÂÁâ)¿ÕÈÜ#‰$躎ƒÄÉÐU‰åVS¶uœúX‰Ãƒ=”Ž#ÿuèH¹Ç‚‰ØP¸ÿÿÿÿéۋ +”Ž#‰ÊÁâ‹‚ Œ#£”Ž#‹E‰‚Œ#‹E ‰‚Œ#‰ðƒà‰‚Œ#‰ðƒàƒøtOƒø
+ƒøt +ësvƒøtSëi‰ÈÁàǀ Œ#ÿÿÿÿƒ=€Ž#ÿu‰ +€Ž#ë¡„Ž#Áà‰ˆ Œ#‰ +„Ž#ëH‰ö‰ÊÁ⡈Ž#‰‚ Œ#‰ +ˆŽ#ë.‰ÊÁâ¡ŒŽ#‰‚ Œ#‰ +ŒŽ#ë‰ÊÁ⡐Ž#‰‚ Œ#‰ +Ž#‰ØP¸[^]ÐU‰åƒìƒ=ðÛ#uƒì hÀ-#èŒÇ$謃ġðÛ#P‰ðÛ#ÉÐU‰åƒìƒ=äÛ#uƒì hß-#èPÇ$èÌ«ƒÄ¡äÛ#P‰äÛ#ÉÐU‰åWVS‹E‹u ‹}»‹HÇöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿ[^_]ÐU‰åWVSì¬‹EµTþÿÿ½Xþÿÿ»‹HDžTþÿÿöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿƒì…XþÿÿPÿµTþÿÿèU¸ÿÿƒÄeô[^_]ÉöU‰å¸¹ Œ#v‰ÂÁâ@‰
+ƒø&~òÇ|Ž#ÿÿÿÿÇ€Ž#ÿÿÿÿÇ„Ž#ÿÿÿÿLjŽ#ÿÿÿÿÇŒŽ#ÿÿÿÿǐŽ#ÿÿÿÿÇ”Ž#]ÉöU‰åWVSƒì ‹E‹} ƒøt4ƒø ƒøtéЃøt3ƒøtB鳐‹€Ž#Ç€Ž#ÿÿÿÿë:‰ö‹ˆŽ#LjŽ#ÿÿÿÿë&‰ö‹ŒŽ#ÇŒŽ#ÿÿÿÿë‰ö‹Ž#ǐŽ#ÿÿÿÿÇÀÛ#ƒûÿtM¾ Œ#…ÿt‰ØÁàƒ¸Œ#uƒì ‰ØÁàÿ°Œ#ÿŒ#ƒÄ‰Ù‰ØÁà‹0‰Â¡”Ž#‰2‰ +”Ž#ƒûÿu¸ÇÀÛ#eô[^_]ÉöU‰åƒìEüPEøPEôPEðPèI‡Ç$ Ž#èÅӃÄjjhÿÿjh¤Ž#h Ž#èðɃÄjjhÿÿÿhhÀŽ#h Ž#èÐɃÄjjhÿÿÿþhh܎#h Ž#è°ÉƒÄ ƒ}ütƒì‹EüHPÿuøh Ž#èzȃă}ôtƒìÿuôÿuðh Ž#è^ȃÄÉÐU‰åƒì‹E…Àu¸ëƒìjPh Ž#èʃÄÉÍvU‰åƒìÿuÿuÿu ÿuh Ž#è¸ËƒÄ ÉÍvU‰åƒì ÿuÿuÿuÿuÿu ÿuh Ž#è²ËƒÄ ÉÐU‰åƒì ÿu ÿuh Ž#èfЃÄÉÐU‰åƒìÿuh Ž#èM΃ÄÉÃU‰åƒìÿuh Ž#èM҃ÄÉÃU‰åƒì jÿuh Ž#èSɃÄÉÉöU‰åƒì ÿu ÿuh Ž#èþσÄÉÐU‰åƒìh Ž#è ÎÇ$ Ž#è ҃ÄÉÍvU‰åWVSƒì} ‹uEðPh4.#VèÖ¥‰ÃƒÄƒûuƒ}ðvÇEðƒÆë ‰öÇEð‹Eðº;¼W#~hƒìWVh#蜃Äj
+VèK›ƒÄ»…À•ÃœúX‰Æƒìh#‹Eðÿ4…ÀW#h9.#è]™ƒÄ…Ûuƒì hÜ.#èI™ƒÄ‰ðPº‰Ðeô[^_]ÍvU‰åVSƒìu ‹]EôPh4.#S襃ăøuƒ}ôvÇEôƒÃëÇEô‹Eôº;¼W#~JƒìVSh#èB›ƒÄj
+S臚ƒÄœúX‰Ãƒìh#‹Eôÿ4…ÀW#h9.#裘ƒÄ‰ØPº‰Ðeø[^]ÉöU‰åVSƒì@‹u‹] ‹EfÇEÈÇEÌÇEÐfÇEÔÇEàÇEäÇEìÇEð‰EØÇEÜÇEè…ÛtT‹C‰E̋C‰EЃ{u
+ÇEÜ1됃eÜߋC ‰EàÇEÀƒì ÿ5“#è)7ƒÄ+C ‰EċC‰Eì‹C‰EðëD‰öÇEÌÇEЃMÜ ÇEàÇEÀƒì ÿ5“#èâ6ƒÄ‰EÄÇEìÇEðèI±‹ƒì jEÀPEÈPÿuhA.#èAÞÿÿ‰ƒÄ ƒøÿt ƒì PèòÒÿÿƒÄ豉¸ƒ>ÿ”ÀHƒàêƒÀeø[^]ÍvU‰åƒìÿ5“#èc6ƒÄÉÉöU‰åƒìÿ5“#èc6ƒÄÉÉöU‰åƒìÿ5“#è{5ƒÄÉÉöU‰å‹E‹U ‹M£“#‰“#‰ +“#]ÐU‰åVS‹]è°‹0ƒì Sètóÿÿ‰Ãèm°‰0ƒÄ¸…Û•À@eø[^]ÃU‰åƒìúÿuÿu ÿuÿ5“#èé5ƒÄûÉÍvU‰åWVSƒì ‹}‹uúÿ6ÿu Wÿ5“#è3‰ÃƒÄ…Ûu#ƒìÿ5“#èx5ƒÄ+PWÿ5“#èffƒÄû‰Øeô[^_]ÃU‰åSƒì ‹] Sÿuè¡eƒÄÿ5“#è75ƒÄ+‰¸‹]üÉÉöU‰åVSƒì‹u‹] …Ûtƒ;uÇEôƒìEôPë7ƒ;uÇEðƒìEðPë!vÇEèƒì jè_þÿÿ+CUè‰BƒÄRVèT*ƒÄeø[^]ÉöU‰åWVSƒì‹u ‹}ÇEðÿ5“#è“4‰ÃƒÄ9Þƒþ} ¸ëG‰öƒì ÿuèµ*ƒÄ W‰Ø)ðPÿuè eƒÄ…ÀtÇEð…ÿt‰Ø+‰ƒì ÿuèÙ*‹EðƒÄeô[^_]ÍvU‰åƒì‹Eúƒ8u +ÇûÿU ëû¸ÉÃU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹˜ß#‰U苀œß#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;՘ß#|[‰Eäv1‰ÐÁà)ЍÅ;š˜ß#u ‹Eì;‚œß#|1‰Ï‰ÐÁà)Ћ ÅÝ#ƒùÿt4 1‰ÐÁà)Ћ]ä;Řß#}«ƒÿÿt‰ÐÁà)ЋU‰ÅÝ#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰ÅÝ#‹E@‰ÐÁà)ЍÅP‰ˆÈÜ#‰¸ÌÜ#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)лÄÜ#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»ÈÜ#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰ÅÝ#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰ÅÝ#‹E@‰ÐÁà)ЍÅP‰ˆÈÜ#‰¸ÌÜ#ƒÄ[^_]ÍvU‰åWVS‹}‰ÐÁà)ЍÅP‹ÌÜ#‹°ÈÜ#ƒúÿu ‹E ‰0ë#‰öR‰ÁÁá)Á»ÈÜ#‰ÐÁà)ЋDÃP‰DËPƒþÿt!v‰ÁÁá)Á»ÌÜ#‰ÐÁà)ЋDÃP‰DËP[^_]ÃU‰åS‹]‹ ‰Èƒùÿt/I‰ÐÁà)ЋÅÝ#‰ƒøÿt@‰ÐÁà)ÐÇÅÝ#ÿÿÿÿ‰È‹$ÉÃU‰åS‹]‹M ƒ9ÿt‹@‰ÂÁâ)‰ÕÝ#[‰ÂÁâ)ÕP‹‰‚ÈÜ#ǂÌÜ#ÿÿÿÿ‰‹$ÉÃU‰åWVSƒì ‹M‹] ‹}ÇEðú¡ìÛ#@‰ÂÁâ)4ÕÀÜ#…ÿt‹F8‰…ÛtBƒùt"ƒù ƒùt ë*‰öƒùtë!‹F8 ‰F8ë‰ö‹÷Ð!F8ëv‹‰F8ëÇEð‹F8‰Ã÷Ћ •#‰Ñ…ÂtB‰ö‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì R范ċ^8‰Ø÷Ћ + •#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…Ât=‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè|ƒÄ‹^8‰Ø÷ЋN<…ÁuÃû‹Eðeô[^_]ÍvU‰åVS‹u‹M ¸…É„¸ƒù‡òv‰ÐÁà)Ðfƒ<ÅèÜ#u +¸éӍvú‰ÈÁàö€(“#uƒ¸ “#uû魉öv‰ÐÁà)ЍÅüÜ#ƒùvèÍ©Çë
+¸Óà »ëC;äW#}ƒìÝÿ°ä•#Vÿà•#ƒÄ…Àtٍv‰ÐÁà)ЍÅfƒ»èÜ#u&ƒìh$•#VèÔüÿÿ‹ƒÄÜ#ƒÄ‹… Ü#VPÿRDƒÄèSm…Àuèû¸eø[^]ÐU‰åWVSƒì‹]‹U ƒûvè©Ç¸ÿÿÿÿévœúX‰Á‰Mðƒ}t‰ÞÁæÆ “#ü¹‹}ó¥…Òt‰ßÁçÇ “#ü¹‰Öó¥…Ò„ºöB…°ƒ:‡§ƒ<@•#ÿtq4‰uìº@•#‹@Áà‰Eè‰ÇƒÇ‹ +`¢%¸`œ%‹U苉E䋇dœ%©t +ƒàý‰‡dœ%ë‰ö¾@•#‹Uì‹2@‰ Õ`œ%‰Áƒ}äÿu»‰ +`¢%ǝ@•#ÿÿÿÿƒûv +è¨Çë¸þÿÿÿˆÙÓÀ! •#‹uð‰ðP¸ƒÄ[^_]ÐU‰åWVSƒì,‹] ¸…Û„~¸ƒû‡pœúX‰Â‰UԉÞÁæ}ØÆ “#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé5vƒûv膧Ǹÿÿÿÿ됸ˆÙÓà# •#…Àt +‹UԉÐPéûƒûvèN§Çë‰ö¸ˆÙÓà  •#‹5$•#ƒþÿ„ô¸‰ÇˆÙÓçvv‰ÐÁà)ЍÅÝ#ƒûvèý¦Ç¸ÿÿÿÿë‰ú#‰Ð…À„–v‰ÐÁà)ÐÁàfƒ¸èÜ#uüÜ#ƒûv +輦Çë 8ƒìh$•#Vèúÿÿv‰ÃÁã)ÃÁ㋃ÄÜ#ƒÄ‹… Ü#VPÿRDÃà¾ÀÜ#ƒÄƒ<3ÿtƒì ÿ43ÿÈÛ#Ç3ÿÿÿÿƒÄ‹MԉÈPéîv‰ÐÁà)Ћ4ÅÝ#ƒþÿ…ÿÿÿ¾¸‰ÇˆÙÓç‰öv‰ÐÁà)ÐÁàfƒ¸èÜ#„…øÜ#ƒûvèö¥Ç¸ÿÿÿÿ됉ú#‰Ð…Àu^v‰ÐÁà)ЍÅüÜ#ƒûvèÃ¥Çëv 8»ëvC;äW#}0ƒìÝÿ°ä•#Vÿà•#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèzi…Àuè9 +‹MԉÈP¸eô[^_]ÐU‰åWVSƒì,¸ƒ} „T¸ƒ} ‡EœúX‰Â‰Uԋu Áæ}ØÆ “#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé ‰ö÷Eàu;ƒ} vèܤǸÿÿÿÿëv¸ŠM Óà# •#…Àt ‹UԉÐPéÃ=`¢%ÿu‹MԉÈP¸ 鮉ö‹5`¢%vÁà¹`œ%‹‰`¢%‹U ‰dœ%‹U‰hœ%‹U‰lœ%‹ìÛ#‰pœ%Çÿÿÿÿ‹E Áàº@•#ƒ<ÿu‰4ë>‰ö‹M ‹@•#‰ÁЃ<Å`œ%ÿt»`œ%
+‹Í 
+ƒ<ÃÿuîR‰4Å`œ%ƒ} vèé£Ç됸ŠM Óà  •#‹5$•#ƒþÿ„û¸‰ÃŠM Ó㐍v‰ÐÁà)ЍÅÝ#ƒ} v蘣Ǹÿÿÿÿë v‰Ú#‰Ð…À„šv‰ÐÁà)ÐÁàfƒ¸èÜ#uüÜ#ƒ} vèS£Çëv ƒìh$•#Vè¨öÿÿv‰ÃÁã)ÃÁ㋃ÄÜ#ƒÄ‹… Ü#VPÿRDÃà¾ÀÜ#ƒÄƒ<3ÿtƒì ÿ43ÿÈÛ#Ç3ÿÿÿÿƒÄ‹MԉÈPé÷v‰ÐÁà)Ћ4ÅÝ#ƒþÿ…ÿÿÿ¾¸‰ÃŠM Ó㐍v‰ÐÁà)ÐÁàfƒ¸èÜ#„…øÜ#ƒ} v艢Ǹÿÿÿÿë‰Ú#‰Ð…Àu^v‰ÐÁà)ЍÅüÜ#ƒ} vèV¢Çë‰ö »ëvC;äW#}0ƒìÝÿ°ä•#Vÿà•#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèf…Àuƒ=àW#uèÄ ‹MԉÈP¸eô[^_]ÃU‰åWVSƒì‹u‹]¡ìÛ#@‰ÂÁâ)<ÕÀÜ#èŠú¡ •##„Hºv©u=BÑøuô¾ƒ<µ@•#ÿue‹E ‰0Ç@Ç@W<ƒþvèa¡Ç됉Öëɸþÿÿÿ‰ñÓÀ!ƒþvè?¡Çëv¸þÿÿÿ‰ñÓÀ! •#ûév µº@•#‹[‹Å`œ%‰ƒøÿu"ƒþvèñ Ç됸þÿÿÿ‰ñÓÀ! •#W<ƒþv +èÌ Çë ¸þÿÿÿ‰ñÓÀ![Áâ¹dœ%‹
+‹u ‰‹‚hœ%‰F‹‚lœ%‰FƒÂ‹
+©t ƒàý‰
+ëv[¡`¢%‰Õ`œ%‰`¢%ûéI‰Öë‹G<#tUº©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè Çëv¸þÿÿÿ‰ñÓÀ!ûéëv…Ûtƒ;uƒ{u +û¸ éÓ‰ö‹‰G@úèu‹ìÛ#R‰ÑÁá)Ñf‰ÍÈÜ#ƒìh¤Ü#jèN\ƒÄU表Ü#;øÛ#|¡¤Ü#+ôÛ#‰E表Ü#+øÛ#롤Ü#+ôÛ#H‰E表Ü#+øÛ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰ÁáºÓMb‹Eì÷êÁú‹EìÁø)ÂыìÛ#R‰ÐÁà)Ð) Å Ý#ƒì QèÏÿÿƒÄƒ=üÛ#ÿtƒì ÿ5üÛ#ÿÈÛ#ÇüÛ#ÿÿÿÿƒÄ‹ +ìÛ#I‰ÐÁà)ЋÅÄÜ#ƒì‹… Ü#QPÿRHƒÄh$•#ÿ5ìÛ#èæòÿÿ¡ìÛ#@‰ÂÁâ)ÂfÇÕèÜ#ƒÄ…Û„’ƒìEàPjè[U؃Ä‹Eà‰E؋EäC‰B…Ày +ÿM؁Bʚ;됁zÿɚ;~ ÿjʚ;ÿ5ìÛ#hän"ÿuÜÿuØÿÄÛ#‰ÃƒÄƒûÿuƒìÿ5ìÛ#jèù ƒÄ¡ìÛ#@‰ÂÁâ)‰Õ ß#ÇìÛ#ÿÿÿÿÇÜ#ÿÿÿÿè‡Ðÿÿƒì ¡ìÛ#@‰ÂÁâ)»ÀÜ#¿DÓPèsè”ÇG@¡ìÛ#@‰ÂÁâ)ƒÄöDÓ2tû¸ é~‰Öë%¡ •##„ûº‰ö©uáBÑøuô¾ƒ<µ@•#ÿu=‹M ‰1ÇAÇAƒþv +è@Çë¸þÿÿÿ‰ñÓÀ! •#ûé vƒì µƒ@•#Pèúðÿÿ‰ÇƒÄƒ»@•#ÿu#ƒþvèòœÇë‰ö¸þÿÿÿ‰ñÓÀ! •#Áâ¹dœ%‹
+‹] ‰‹‚hœ%‰C‹‚lœ%‰CƒÂ‹
+©t ƒàý‰
+ëv¡`¢%‰Õ`œ%‰=`¢%ûël‹G<#…Àuû¸ë`v‰Öë‹G<º#t ©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè/œÇëv¸þÿÿÿ‰ñÓÀ!û¸eô[^_]ÍvU‰åWVSƒì ‹}¡ìÛ#@‰ÂÁâ)4ÕÀÜ#è¹ú‹F<#…Àt è¦û颋‰F@úèq‹ìÛ#R‰ÑÁá)Ñf‰ÍÈÜ#ƒìh¤Ü#jè6XƒÄU表Ü#;øÛ#|¡¤Ü#+ôÛ#‰E表Ü#+øÛ#롤Ü#+ôÛ#H‰E表Ü#+øÛ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыìÛ#R‰ÐÁà)Ð) Å Ý#ƒì QèúÊÿÿƒÄƒ=üÛ#ÿtƒì ÿ5üÛ#ÿÈÛ#ÇüÛ#ÿÿÿÿƒÄ‹ +ìÛ#I‰ÐÁà)ЋÅÄÜ#ƒì‹… Ü#QPÿRHƒÄh$•#ÿ5ìÛ#èÍîÿÿ¡ìÛ#@‰ÂÁâ)»ÀÜ#fÇDÓ(ÇìÛ#ÿÿÿÿÇÜ#ÿÿÿÿè Íÿÿ¡ìÛ#@‰ÂÁâ)¿DÓ‰$è™oè‹F<#ƒÄ…Àuû¸ë èÿû¸eô[^_]ÐU‰åSƒì‹]úEðPjè¢VƒÄƒ=ȕ#ÿu
+ÇEèëWMèUð¡Ä•#;B|¡À•#+Eð‰Eè¡Ä•#+Bëv¡À•#+EðH‰Eè¡Ä•#+Eôʚ;‰Aƒì ÿ5ȕ#ÿÈÛ#ƒÄ…ÛtN]ð‹Eð£À•#‹Eô£Ä•#jhDo"ÿuôÿuðÿÄÛ#‰ÃƒÄƒûÿuƒìÿ5ìÛ#jè:ƒÄ‰ȕ#ë +vÇȕ#ÿÿÿÿû‹Eè‹]üÉÐU‰åVSƒì‹uƒ<µ@•#ÿuC‰uèÇEìÇEð¡ìÛ#‰Eôƒþvèü˜Ç鮐¸þÿÿÿ‰ñÓÀ! •#降 µº@•#‹[‹Å`œ%‰ƒøÿu"ƒþv豘Ç됸þÿÿÿ‰ñÓÀ! •#[Áà¹dœ%‹‰U苐hœ%‰U싐lœ%‰Uð‹pœ%‰UôP‹
+©tƒàý‰
+ë[¡`¢%‰Õ`œ%‰`¢%ƒìEèPVè
+ƒÄeø[^]ÃU‰åVSƒì¡ìÛ#@‰ÂÁâ)4ÕÀÜ#‹F0©…Í +‰F0‹F8‰Ã÷Ћ •#‰Ñ…ÂtA‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè„þÿÿƒÄ‹^8‰Ø÷Ћ + •#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…ÂtZ‰Ø÷л!Ètv‰Ú©u
+CÑøuòº‰UèÇEìÇEð¡ìÛ#‰EôƒìEèPRèƒÄ‹^8‰Ø÷ЋN<…Áu¦f0ÿïÿÿeø[^]ÃU‰åWVSƒì,‹]œúX‰Â‰UÌ¡ìÛ#@‰ÂÁâ)ÕÀÜ#‰UЉÞÁæ}ØÆ “#ü¹ó¥÷Eàuƒ}Ø„îƒ}Øÿ„ä÷EàuCƒ}Øu=ƒìShL.#èw}ƒÄ÷Eàtƒì‹M ÿqhb.#èX}ƒÄƒì jè—ÓÿÿƒÄ‹UЋB8‰EԉƍUԃûv +èh–Çë ¸ˆÙÓà ‹EÔ E܉EԋUЃÂ<ƒûv +è<–Çë ¸þÿÿÿˆÙÓÀ!‹EԋUЉB8û÷Eàtƒìjÿu SÿUäëƒìj‹M ÿqSÿU؃Äú‹EЉp8‹ỦÐPeô[^_]ÃU‰åWVSƒì ‹}‰ÐÁà)ÐÁà¾ÀÜ#fƒ|(uF˜àƒ<3ÿtƒì ÿ43ÿÈÛ#Ç3ÿÿÿÿƒÄƒìh$•#Wèúèÿÿ‰ÂÁâ)‹ÕÄÜ#ƒÄë ‰ÐÁà)ÐÁàfƒ¸èÜ#u!‹ÄÜ#ƒì‹• Ü#WRÿPD¸ƒÄë‰ö¸eô[^_]ÍvU‰åWVSƒì º¿(“#¾$“#»,“#¹@•#‰ö‰ÐÁàǀ “#Ç8Ç0ÇÇ‘ÿÿÿÿBƒúvϺ»`œ%¹dœ%RÁàB‰ÇDƒú>~éÇH¢%ÿÿÿÿÇ\¢%Ç`¢%Ç •#Ç$•#ÿÿÿÿÇȕ#ÿÿÿÿº¹€–#»„–#‰öRÁàÇÇÿÿÿÿÆDBƒú~áƒìjhÄi"ènÚÿÿƒÄeô[^_]ÍvU‰å‹EǸ]ÐU‰å‹EÇÿÿÿÿ¸]ÐU‰åƒì‹U‹M ƒùvèê“Ǹÿÿÿÿ됸Óà ¸ÉÃU‰åƒì‹U‹M ƒùv趓Ǹÿÿÿÿ됸þÿÿÿÓÀ!¸ÉÃU‰åƒì‹M ƒùv腓Ǹÿÿÿÿë ¸Óà‹U#ÉÉöU‰åƒì ÿuÿu ÿuèÔçÿÿƒÄÉÍvU‰åWƒì$‹UEè‰E丹‹}äüó«ƒìjÿuäRèBñÿÿƒÄ…Àu +‹Uè‹E ‰¸‹}üÉÐU‰åƒì jÿu ÿuèñÿÿƒÄÉÃU‰åƒì‹E…Àu¸ëƒìPÿu ÿuèíðÿÿƒÄÉÃU‰åƒìÿuÿ5ìÛ#è`èÿÿƒÄÉÍvU‰åVSƒì ‹]‹E ‰EèÇEìÇEð脒‹0ƒìEØPEèPSèAéÿÿƒÄ»ÿÿÿÿ…Àu ÷Eàu‹]ØèT’‰0‰Øeø[^]ÐU‰å‹M¡ìÛ#@‰ÂÁâ)¡ •# ÕüÜ#‰¸]ÉöU‰åSƒì‹E‹U ú‹ìÛ#‰ìÛ#ÇàW#jPj jèœìÿÿƒÄÇàW#‰ìÛ#û‹]üÉÍvU‰åS‹M‹] ¡äW#ʼnŠà•#‰šä•#@£äW#‹$ÉÍvU‰åVS‹]Cÿƒøv苑Ç~¸ÿÿÿÿëp‰öœúX‰Æ[€<…ˆ–#u‰ðPèa‘ǸÿÿÿÿëF[Áâ¹€–#‹E ‰
+‹E‰‚„–#ÆD
+ƒìjh„o"Sè¹T·Ã‰$èÒeƒÄ‰ðP¸eø[^]ÍvU‰åƒì¸ÉÍvU‰åƒì ‹E‰EèÇEìÇEð‹ìÛ#‰UôUèRPè›ùÿÿƒÄÉÉöU‰åVS‹uv‰ÃÁã)ÃÁã¸ÀÜ#DŽàÿÿÿÿL0ƒìh$•#Vèõãÿÿ‹ƒÄÜ#ƒÄ‹… Ü#VPÿRDèç·ÿÿƒÄeø[^]ÐU‰åƒìÇȕ#ÿÿÿÿjjèWèÿÿè¾·ÿÿƒÄÉÐU‰åƒìEüÇEüÿÿÿÿPèôÿÿƒÄÉÐU‰åƒì‹E‹‰EüEüPjÿèW#‹UüRÁเ–#ƒÄƒ<t ûƒì RÿƒÄú‹Eü@ƒì ÿ4…„–#覱ÿÿƒÄÉÐU‰åWVSƒì ‹u ‹]ƒ}t讏Ǹÿÿÿÿén‰öúƒ=@ž#ÿt ƒ=`¢%ÿuûèƒÇ ¸ÿÿÿÿéCv¡@ž#‰‹@ž#Õ)пD—#‹DÇ0£@ž#‹Õ)й@—#ÇDÁ0…öu8‹Õ)ÐÇÁ‹Õ)ÐÇÇ‹Õ)ЉÅH—#닍<Å)Ǎ<ý@—#ü¹ó¥‹Õ)ЍŃº@—#u#¡`¢%‰‚h—#@Áàƒˆtœ%‹€`œ%£`¢%‹Õ)ÐÇÅT—#ÿÿÿÿ‹Õ)ЍÅX—#Ç@NjÕ)ЍÅ`—#Ç@NjÕ)ÐÇÅl—#û¸ƒÄ [^_]ÃU‰åSƒì‹]ƒûwúÝ)؃<Åp—#uûèÿÇ¸ÿÿÿÿ閍vÝ)ØÁàǀp—#ƒÀºD—#ƒ<ÿtƒì ÿ4ÿÈÛ#ƒÄÝ)ØÁàƒ¸@—#uE‹h—#R Åötœ%u¡`¢%‰`œ%‰`¢%Ý)؋Åh—#@ƒ$Åtœ%üû¸‹]üÉÃU‰åWVSƒìL‹E‰E´Áà+E´Áàƒ¸@—#…‹P ‹‚H—#@öÅtœ%t¸L—#ƒ< „ôÿéì‰ö‹M´Áá+M´Ááy LJL—#¾H—#‹7@‹`¢%‰Ý`œ%£`¢%jÿ41ÿ±D—#jèhçÿÿ‹7@ƒ Åtœ%錐‹E´Áà+E´Áà¹@—#ƒ<uwPƒ<
+tÿ°H—#ÿ°L—#ÿ4
+ëQvÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà‹E´Áà+E´ÁàH—#Rÿ°L—#EÈPEÄPèÙÙÿÿƒÄ‹E´Áà+E´Åƒ¸H—#u +ƒ¸L—#„Àº`—#‹E´Áà+E´ŋ‰E¸M¸‹D‰A‹E¸ƒX—#‰ƒ`—#‹Aƒ\—#‰B…Àyÿ‹`—#Bʚ;ë‰özÿɚ;~ ÿjʚ;‹E´Áà+E´ÿu´hPr"ÿ4Åd—#ÿ4Å`—#ÿÄÛ#‰ÃƒÄƒûÿuƒìÿ5ìÛ#jè+ùÿÿƒÄ‹E´Áà+E´‰ÅT—#ë‰ö‹E´Áà+E´ÇÅT—#ÿÿÿÿeô[^_]ÃU‰åWVSƒì‹u‹}ÇEäƒþw3ƒ}t-‹Exÿɚ;w!‹]{ ÿɚ;wúõ)ðƒ<Åp—#uûèÁŠÇ¸ÿÿÿÿ鐅ÿ„·õ)ðƒ<ÅT—#ÿuÇG ÇGëwƒìEèPjèGÇEäƒÄ¹`—#õ)ðō]è‹D;C|‹+Eè‰G‹D+Cë(¹`—#õ)òÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹X—#õ)ðÁà‹‰‹D‰Gõ)ðÅºD—#ƒ<ÿtƒì ÿ4ÿÈÛ#ƒÄ‹Eƒxu
+ƒx „þºX—#õ)ð ŋ]‹‰
+‹C‰D
+÷E t¸`—#‹S‰‹S ‰Tëmvƒ}äuƒìEèPjèøEƒÄõ)ð ō‘`—#‹Eè‹]C‰`—#‹EìC ‰B…Àyÿ‰`—#Bʚ;ëzÿɚ;~ ÿjʚ;õ)ðVhPr"ÿ4Åd—#ÿ4Å`—#ÿÄÛ#‰ÃƒÄƒûÿuƒìÿ5ìÛ#jè­öÿÿƒÄõ)ð‰ÅT—#û¸eô[^_]ÃU‰åWVSƒì ‹]‹} ƒûwúÝ)؃<Åp—#uûèzˆÇ¸ÿÿÿÿ鷉öÝ)؃<ÅT—#ÿuÇG ÇGëoƒìEèPjèÒDƒÄ¹`—#Ý)؍ōuè‹D;F|‹+Eè‰G‹D+Fë'¹`—#Ý)ÚÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹X—#Ý)ØÁà‹‰‹D‰Gû¸eô[^_]ÍvU‰åƒìƒ}t藇Çëv臇ǸÿÿÿÿÉÉöU‰åƒìƒ}tèg‡Ç¸ÿÿÿÿë‰öƒì ÿu èuÄÿÿ¸ƒÄÉÍvU‰åƒì‹E ƒ}tè,‡Ç¸ÿÿÿÿëv…Àt +ÇÇ@è¸ÉÃU‰åƒì‹UƒúwúÕ)Ѓ<Åp—#uûè܆ǸÿÿÿÿëvÕ)ЋÅl—#ûÉÐU‰åWVS¹»D—#¿@—#¾L—#‰öÍ)ÈÁàÇDÿÿÿÿX—#ÇBǍP0Ç:ÇD A‰‰Áƒù~ºÇ<ž#ÿÿÿÿÇ@ž#[^_]ÐU‰å]ÍvU‰å¸]ÉöU‰åVSœúX‰Ã¡ìÛ#@‰ÂÁâ)¾ÀÜ#‹DÖ0©t0©t)ƒì jè"Æÿÿ¡ìÛ#@‰ÂÁâ)¿DÖ‰$è"[ƒÄ‰ØPeø[^]ÃU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡ìÛ#@‰ÂÁâ)¹ÀÜ#‹DÑ0Áèƒà‹U ‰¡ìÛ#@‰ÂÁâ)Õ0‹
+%ÿþÿÿ ؉
+û¸‹$ÉÉöU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡ìÛ#@‰ÂÁâ)¹ÀÜ#‹DÑ0Áè ƒà‹U ‰¡ìÛ#@‰ÂÁâ)Õ0‹
+%ÿýÿÿ ؉
+û¸‹$ÉÉöU‰åWVSƒì ‹} ÇEðú‹EÇÿÿÿÿÇ@¾;5äÛ#s9v‹µ€Ü#ƒ{u ƒìWVÿS,ƒÄ…ÀxƒìWÿuVÿS0‰EðƒÄF;5äÛ#rÊû‹Eðeô[^_]ÉöU‰åƒì‹U¸ƒ:ÿt ¸ƒzu‹‹…€Ü#ƒìRÿ2ÿP4ƒÄÉÍvU‰åƒì‹U¸ƒ:ÿt‹‹…€Ü#ƒìRÿ2ÿP8ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹…€Ü#ƒìRÿ2ÿP<ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹…€Ü#ƒìRÿ2ÿP@ƒÄÉÉöU‰åVS‹u‹µ Ü#ƒìÿ°ôh™.#è^j»ƒÄ‰ö[‰ÐÁà)ÐÁà9°ÄÜ#……ƒÀ ºÀÜ#f|€ttfƒ|tlƒì f‹Dfƒøwƒì ·ÀP訃Äë%v·Ð¸s.#ú€t¸.#út¸‹.#P[‰ÐÁà)ÐÁàÿ°”ß#ÔÜ#PSh/#è¹iƒÄ Cû™ŽUÿÿÿeø[^]ÉöU‰åWVSƒì ‹E‹… Ü#‰Eð‹¸üƒì ‹Uð‹‚ðøPèk§‰ÆƒÄƒþÿu +¸ÿÿÿÿ…ÿtrOëՐv‰ÐÁà)Ѝ ÅöñÜ#tRQ@»ÌÜ#ƒ<D‹¤ß#‰ƒìý‰Ø‹Uð‚ðPVèX¥ƒÄ‹Eð˜ðSV聦ƒÄéiÿÿÿ‰ðeô[^_]ÉöU‰åWVSƒì‹E‹… Ü#‰Eð‹Mƒy(…©‹=ìÛ#‰ÐÁà)ЍžÄÜ#‹U93…‹M I‰ÂÁâ)ÂÁ⋄Љ„йÌÜ#‹D@‰D@‹„à‰„àƒÂ0¹ÀÜ#‹
+%ÿ÷ÿÿ‹\0ã ؉
+‹UðƒÂ¸ƒ¼º€ÿ•ÀH‹] ‰„š€é¢v‹U R‰ÂÁâ)ÂÁâ»ÄÜ#‹A‰„Ѓyt‹A‰‚ Ý#‹A‰„àë-‰ö‹] [‰ÐÁà)ÐÁà‹]ð‹“ô‰ Ý#‹“ô‰¤ß#ƒy$u‹E @‰ÐÁà)Ё ÅðÜ#¸ƒy ”ÀH‹U ‹Mð‰„‘ˆ¸ƒÄ[^_]ÃU‰åWVSƒì ‹U‹<• Ü#ƒ¿t8LJƒì‹E @‰ÐÁà)ЋŔß#‹—ðÂPÿu 襤酋E @‰ÐÁà)ЍÅöƒñÜ#t?K@¾ÌÜ#ƒ<11ºÄÜ#‹1„à‰1ƒì‹„Ћ—ðÂPÿu èG¤ë*ƒì‹E @‰ÐÁà)ЋŔß#‹—ðÂPÿu 诣ƒÄ‹E @‰ÐÁà)ÐfÇÅèÜ#€eô[^_]ÐU‰åWVSƒìH‹]ÇE¼ÇEÀfÇEÄÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà¶Ã +f‰E¸‹ Ü#‹€ø‰EÈÇE̍E¸jjPh"h¥.#è-¬ÿÿ‰ÆƒÄ ƒþÿuƒì h@/#èVËÿÿƒÄ‹< Ü#v‰ÐÁà)Ðfƒ<ÅèÜ#tµ€Gƒ<ÿtJÿëE‰öƒìv‰ÃÁã)ÃÁ㍃Ý#PjèJ;fǃèÜ#€ƒÄ‹ƒ”ß#‹—ðÂPVèࢃčeô[^_]ÐU‰åWVSƒì‹}hª.#è¾ÊÿÿèÆÿÿ‰EðƒÄ hPhÀ.#è£ÊÿÿÇ$èwÉÿÿ‰ÃƒÄShÞ.#è‡Êÿÿ‹Eð‰… Ü#ƒÄ jhê.#Sè=efÇCÆCÇCø…"ÇC$†"ÇC ì{"ÇC$Ì|"ÇC(0†"ÇC,Œ}"ÇC0<†"ÇC4D†"ÇC8P†"ÇC<"ÇC@†"ÇCD‡"ÇCHd‡"ÇCLl‡"ÇCPˆ"ÇCTLˆ"ÇCX€ˆ"ÇC\d‰"ÇC`„‰"ÇCdœ‰"ÇCh´‰"ÇCl̉"ÇCpä‰"ÇCtü‰"ÇCxŠ"ÇC|,Š"ǃ€DŠ"ǃ„\Š"¸ƒÄS‰öDŽ‚€ÿÿÿÿ@=™~í‹EH‰ƒüƒì ‹EÁàPè@Èÿÿ‰ƒð¾ƒÄ;u}ƒì ‹ƒððPè柃ÄF;u|åÿçw¿èÿ ¡v¿ ¡‰»ô‹E‰ƒøƒ} tƒìjÿuðh€"è8ÃÿÿƒÄeô[^_]ÐU‰åWVSƒì ‹M‹u ‹]‹ Ü#‰Eð…Éx[; +ðÛ#sS‹ Ü#‹@%ÿÿÿ=u=þ™wv‰ÐÁà)Ðfƒ<ÅèÜ#u +¸éèvv‰ÐÁà)Ð9 ÅÄÜ#t +¸&éȍv…Ûuv‰ÐÁà)Ё ÅðÜ#ë)ƒûuv‰ÐÁà)Ё$ÅðÜ#ÿ÷ÿÿë ¸郉öv‰ÐÁà)ÐÁà˜Ð¿ÄÜ#‹U9;t\f¸èÜ#€u=ƒì‹;‹Mð‹‘ðÂPV蘞‹E‰;ƒÄ‹Uð‹‚ð‹MÈPV赟ƒÄëv‰ÐÁà)ЋU‰Ŕß#¸eô[^_]ÍvU‰åVS‹M‹4 Ü#…Éx; +ðÛ#s‹ Ü#‹@%ÿÿÿ=t¸ÿÿÿÿëw¡ìÛ#@‰ÂÁâ)¸ÿÿÿÿ9 ÕÄÜ#uZúè!P‹ìÛ#R‰ÑÁá)Ñ»ÀÜ#f‰DËdžèX­ÿÿ¡ìÛ#@‰ÂÁâ)ƒì ¿DÓPèçOè>·ÿÿƒÄû¸eø[^]ÉöU‰å‹E‹… Ü#‹€ü]ÍvU‰å‹E‹… Ü#‹€ô]ÍvU‰åS‹]‹M …ÛxU;ðÛ#sM‹ Ü#‹@%ÿÿÿ=u7ù™wI‰ÐÁà)Ðfƒ<ÅèÜ#u¸ëMI‰ÐÁà)Ð9ÅÄÜ#t ¸&ë3‰öI‰ÁÁá)ÁÁá¸öñÜ#”À‹U‰‹‘”ß#‹E‰¸‹$ÉÉöU‰å‹E f8t·‹E +9Âu¸ë¸ÿÿÿÿ]ÐU‰å¸ÿÿÿÿ]ÉöU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰åSƒì ‹E‹M ‹… Ü#I‰ÐÁà)ЋŔß#‹“ðÂPQè7œƒÄ‹]üÉÍvU‰åWVSƒì ‹E‹u ‹<… Ü#v‰ÐÁà)Ðfƒ<ÅèÜ#tµ€Gƒ<ÿtHÿëCƒìv‰ÃÁã)ÃÁ㍃Ý#PjèR5fǃèÜ#€ƒÄ‹ƒ”ß#‹—ðÂPVè蜃čeô[^_]ÐU‰åSƒì ‹E‹M ‹… Ü#I‰ÐÁà)ÐÁàfǀèÜ#€‹€”ß#‹“ðÂPQ蜜ƒÄ‹]üÉÃU‰å]ÍvU‰åWVSƒì ‹U‹• Ü#‰Eð‹U <•€‰ÆƒÆƒ<7~MƒìR‰ÃÁã)ÃÁ㍃Ý#Pjè‹4ÿ 7ƒÄ‹ƒ”ß#‹Mð‹‘ðÂPÿu 趛fǃèÜ#€ƒÄë‹E @‰ÐÁà)ÐfÇÅèÜ#eô[^_]ÐU‰åƒì‹E‹M ‹… Ü#ƒÀDŽˆ€ÿÿÿÿI‰ÐÁà)ÐfÇÅèÜ#hdÜ#QèðÉÿÿƒÄÉÍvU‰å‹E‹U ‹… Ü#ƒÀDŽ€R‰ÐÁà)ÐfÇÅèÜ#]ÃU‰åWVSƒì4‹u v‰EäÁà+EäfÇÅèÜ#EèPjè“3Mè»@B‹Eº÷ó‰Uà’€€‰E܋A‹U܍ЉE؉A»¡/¸D÷ë‰ÓÁû‹EØÁø)ÿƒÞC‹E÷ç‰×‰øÁèEè‹A»Êš;™÷û‰Ó‰YƒÄVhtŠ"ÿuìÿuèÿÄÛ#‰ÃƒÄƒûÿuƒìÿ5ìÛ#jèAäÿÿƒÄ v‰ÈÁà)ȉÅ ß#eô[^_]ÐU‰åƒìÿ5ìÛ#jèäÿÿ¸ƒÄÉÍvU‰åƒìÿ5ìÛ#jèñãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jèÙãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jèÁãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jè©ãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jè‘ãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jèyãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jèaãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jèIãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jè1ãÿÿƒÄÉÃU‰åƒìÿ5ìÛ#jèãÿÿƒÄÉÃU‰åWVSƒì‹MI‰ÃÁã)ÃÁãºÄÜ#‹‹4… Ü#¿ÀÜ#fÇD(€‹„Ћ–ðÂPQè9™Ç„àÿÿÿÿèQœÿÿƒÄeô[^_]ÉöU‰åVSƒì h`0#è
+Áÿÿè]¼ÿÿ‰ÆÇ$Œè׿ÿÿ‰Ã‰µ Ü#ƒÄ jhø/#Sè®[fÇCÆCÇC Œ"ÇCTŒ"ÇC `Œ"ÇC$ˆŒ"ÇC(ÇC, Œ"ÇC0¬Œ"ÇC4´Œ"ÇC8ÀŒ"ÇC<Ȍ"ÇC@äŒ"ÇCD "ÇCH4"ÇCL\"ÇCP„"ÇCT¬"ÇCXԍ"ÇC\ü"ÇC`(Ž"ÇCdPŽ"ÇChxŽ"ÇCl Ž"ÇCpȎ"ÇCtðŽ"ÇCx"ÇC|@"ǃ€h"ǃ„"ǃˆÿÿÿÿÇ$0#èô¿ÿÿƒÄ jVh¸"è,ºÿÿƒÄeø[^]ÉöU‰å‹M‹E ‹ Ü#fƒ8t·9Èu¸ƒºˆÿt¸ÿÿÿÿ]ÉöU‰å¸ÿÿÿÿ]ÉöU‰åƒì‹E‹… Ü#ÿ°ˆhe/#èìYƒÄÉÍvU‰å‹E‹… Ü#‹€ˆ]ÍvU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰å]ÍvU‰å‹E @‰ÂÁâ)ÂfÇÕèÜ#]ÃU‰åƒìht/#èxYƒÄÿ5ìÛ#j è„àÿÿƒÄÉÍvU‰åƒìh{/#èPYƒÄÿ5ìÛ#j è\àÿÿƒÄÉÍvU‰åƒìh‚/#è(YƒÄÿ5ìÛ#j è4àÿÿƒÄÉÍvU‰åƒìh‰/#èYƒÄÿ5ìÛ#j è àÿÿƒÄÉÍvU‰åƒìh/#èØXƒÄÿ5ìÛ#j èäßÿÿƒÄÉÍvU‰åƒìh—/#è°XƒÄÿ5ìÛ#j è¼ßÿÿƒÄÉÍvU‰åƒìhž/#èˆXƒÄÿ5ìÛ#j è”ßÿÿƒÄÉÍvU‰åƒìh¥/#è`XƒÄÿ5ìÛ#jèlßÿÿ¸ƒÄÉÉöU‰åƒìh¬/#è4XƒÄÿ5ìÛ#jè@ßÿÿƒÄÉÍvU‰åƒìh³/#è XƒÄÿ5ìÛ#jèßÿÿƒÄÉÍvU‰åƒìhº/#èäWƒÄÿ5ìÛ#jèðÞÿÿƒÄÉÍvU‰åƒìhÁ/#è¼WƒÄÿ5ìÛ#jèÈÞÿÿƒÄÉÍvU‰åƒìhÈ/#è”WƒÄÿ5ìÛ#jè ÞÿÿƒÄÉÍvU‰åƒìhÏ/#èlWƒÄÿ5ìÛ#jèxÞÿÿƒÄÉÍvU‰åƒìhÖ/#èDWƒÄÿ5ìÛ#jèPÞÿÿƒÄÉÍvU‰åƒìhÝ/#èWƒÄÿ5ìÛ#jè(ÞÿÿƒÄÉÍvU‰åƒìhä/#èôVƒÄÿ5ìÛ#jèÞÿÿƒÄÉÍvU‰åƒìhë/#èÌVƒÄÿ5ìÛ#jèØÝÿÿƒÄÉÍvU‰åSƒì0‹]ÇEÜÇEàfÇEäÇEè¶Ãf‰EØÇEìEØjjPhD"hò/#趜ÿÿƒÄ ‹ Ü#‰Ã‰šˆƒûÿuƒì h 0#èÒ»ÿÿƒÄ[‰ÐÁà)ÐÇÅøÜ#ÿÿÿÿ‹]üÉÐU‰åôëýU‰åWVSƒì ‹} ¾ú»ëvCûÿ2Ý)ØÁàº`ž#€|t߃ìÿ4ÿuèaVƒÄ…Àuʾ…öt1ÿÀuèðnÇûéÜûÝ)؍…dž#éˉö÷Ç@uè¿nÇû髍v‹E‰Eð=ÿ~èžnÇû銉ö‹0¿#ƒúÿtqÕ)Ѝ<…w‹†dž#£0¿#ƒì ÿuèV@‰$臹ÿÿ»`ž#‰ƒÄÿuPè7U‹Eð‰‡hž#‡lž#‰$è(‘ÆDƒÄû‡dž#ëvènÇû¸eô[^_]ÍvU‰åWVSƒì ¾ú¿»`ž#vý)øÁà€|tƒìÿ4ÿuèUƒÄ…Àu¾Gÿÿ~ʅötJƒì ÿuèOUƒÄ@Pý)ûÁã¾`ž#ÿ43è%¹ÿÿƒÃÆD3¡0¿#‰ƒdž#‰=0¿#ƒÄûë‰öèSmÇû¸eô[^_]ÍvU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…xž#uèmǸÿÿÿÿé‰öèÏæÿÿúè5B‹ìÛ#R‰ÑÁá)Ñf‰ÍÈÜ#‹Õ)Ѝ4…`ž#ƒ~ ÿu
+ƒ~…“ƒìWjÿèW#ƒÄh¤Ü#jè8)ƒÄU表Ü#;øÛ#|¡¤Ü#+ôÛ#‰E表Ü#+øÛ#ë!‰ö¡¤Ü#+ôÛ#H‰E表Ü#+øÛ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыìÛ#R‰ÐÁà)Ð) Å Ý#ƒì Qèú›ÿÿƒÄƒ=üÛ#ÿtƒì ÿ5üÛ#ÿÈÛ#ÇüÛ#ÿÿÿÿƒÄ‹ +ìÛ#I‰ÐÁà)ЋÅÄÜ#ƒì‹… Ü#QPÿRH‹ +ìÛ#I‰ÐÁà)лÀÜ#fÇDÃ(Íǂ`º#‹‰‚dº#ƒÄF PQ辏ÇìÛ#ÿÿÿÿÇÜ#ÿÿÿÿèõÿÿ¡ìÛ#@‰ÂÁâ)¿DÓ‰$è…@èܧÿÿƒÄûèÿäÿÿë8ÿNƒìWjÿèW#¡ìÛ#@‰ÂÁâ)¿ÕÈÜ#‰$èF@蝧ÿÿƒÄû¸eô[^_]ÃU‰åWVSƒì ‹}‹]?ÿw‹Õ)Ѐ<…xž#uè¯jǸÿÿÿÿéVv…ÛuúëúèÒ?‹ìÛ#R‰ÑÁá)Ñf‰ÍÈÜ#‹Õ)Ѝ4…`ž#…Ûu0ƒ~ ÿu‹E 9F}èMjÇ û¸ÿÿÿÿéó‹E )Fûéâèäÿÿƒ~ ÿu ‹E 9F‘ƒìWjÿèW#ƒÄh¤Ü#jèš&ƒÄU表Ü#;øÛ#|¡¤Ü#+ôÛ#‰E表Ü#+øÛ#롤Ü#+ôÛ#H‰E表Ü#+øÛ#ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыìÛ#R‰ÐÁà)Ð) Å Ý#ƒì Qè^™ÿÿƒÄƒ=üÛ#ÿtƒì ÿ5üÛ#ÿÈÛ#ÇüÛ#ÿÿÿÿƒÄ‹ +ìÛ#I‰ÐÁà)ЋÅÄÜ#ƒì‹… Ü#QPÿRH‹ +ìÛ#I‰ÐÁà)лÀÜ#fÇDÃ(͋E ‰‚`º#‹‰‚dº#ƒÄF PQè#ÇìÛ#ÿÿÿÿÇÜ#ÿÿÿÿèZ›ÿÿ¡ìÛ#@‰ÂÁâ)¿DÓ‰$èê=èA¥ÿÿƒÄûèdâÿÿë<‰ö‹E )FƒìWjÿèW#¡ìÛ#@‰ÂÁâ)¿ÕÈÜ#‰$è§=èþ¤ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…xž#uèhǸÿÿÿÿéU‰öè,…À„‡œúX‰Æ‹Õ)Ѝ…`ž#‹JA‰J‹Z ƒûÿtG‹Ý`º#9È<)Á‰È‰BƒìB PSèƊ[‰ÐÁà)ЋÅÄÜ#ƒÄ‹• Ü#SRÿPDèÿÿƒÄƒìWjÿèW#ƒÄ‰ðPé¼‰öúèª<‹Ü#R‰ÑÁá)Ñf‰ÍÈÜ#‹Õ)Ѝ…`ž#‹JA‰J‹Z ƒûÿtG‹Ý`º#9È<)Á‰È‰BƒìB PSè&Š[‰ÐÁà)ЋÅÄÜ#ƒÄ‹• Ü#SRÿPD荙ÿÿƒÄƒìWjÿèW#¡ìÛ#@‰ÂÁâ)¿ÕÈÜ#‰$è <èb£ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹] ÇEð‹E8ÿw‹Õ)Ѐ<…xž#uèlfǸÿÿÿÿéÊèc*…À„ÃœúX‰Â‰Uì‹E‹Õ)Ѝ4…`ž#^‹^ ƒûÿts݉‹€`º#;F_¿`º#ÇEðv‹F+:‰FƒìF PS艍[‰ÐÁà)ЋÅÄÜ#ƒÄ‹• Ü#SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿèW#ƒÄƒ}ðtèÿÿ‹Uì‰ÐPéõúèÊ:‹Ü#R‰ÑÁá)Ñf‰ÍÈÜ#‹E‹Õ)Ѝ4…`ž#^‹^ ƒûÿtr݉‹€`º#;F^¿`º#ÇEð‰ö‹F+:‰FƒìF PSè.ˆ[‰ÐÁà)ЋÅÄÜ#ƒÄ‹• Ü#SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿèW#ƒÄƒ}ðtèd—ÿÿ¡ìÛ#@‰ÂÁâ)ƒì ¿ÕÈÜ#Pèð9èG¡ÿÿƒÄû¸eô[^_]ÉöU‰åWVSƒì ¾¿dž#õ)óÁãǃ`ž#‰4;ǃhž#ƒì ƒlž#PèB‡ƒÃF‰;ƃhž#ƒÄ‰Æþÿ~±ÇXº#ÿÿÿÿÇ0¿#ƒìjhøž"è:ªÿÿƒÄeô[^_]ÍvU‰åVS‹uú>ÿw‹Õ)Ѐ<…xž#uèÉcÇû¸ÿÿÿÿënvƒì ‹Õ)л`ž#ÿ4ƒèUKƒÄ@P‹Õ)Ðÿ4ƒè1¯ÿÿ‹Õ)ÐÆDƒ‹Õ)Ћ0¿#‰…tž#‹£0¿#ƒÄû¸eø[^]ÉöU‰åƒì‹Mú9ÿw‹Õ)Ѐ<…xž#uècÇû¸ÿÿÿÿëb‰ö‹Õ)Ѓ<…lž#ÿtèîbÇû¸ÿÿÿÿë8‹Õ)ÐÆ…xž#‹Õ)Ћ0¿#‰…tž#‹£0¿#û¸ÉÉöU‰åSƒì‹M‹] 9ÿw‹Õ)Ѐ<…xž#uèubǸÿÿÿÿë_ú‹Õ)ÐÁàƒ¸lž#ÿu ‹€hž#‰ë7‰öÇ‹Õ)Ћ…lž#¹ÈÜ#vÿ @‰ÐÁà)ЋDÁPƒøÿuëû¸‹]üÉÃU‰åVS‹u‹M¸ùÿ‡–ú‹0¿#‰ƒúÿtnÕ)Ћ…tž#£0¿#‹Õ)л`ž#ǃ‹Õ)Љ …hž#ƒì ‹Õ)Ѝ…lž#P聄‹Õ)ÐÆDƒƒÄëègaÇû¸ÿÿÿÿëû¸eø[^]ÍvU‰åƒì‹M9ÿw‹Õ)Ѐ<…xž#uèaǸÿÿÿÿë=ú‹Õ)Ѝ…`ž#ƒx ÿuƒxuèì`Ç û¸ÿÿÿÿë ‰öÿHû¸ÉÐU‰å‹E@‰ÂÁâ)¸fƒ<ÕèÜ#”À]ÐU‰åVS‹][‰ÐÁà)Ѝ4Åfƒ¾èÜ#uAƒì‹Ýdº#Õ)Ѝ…lž#PS考‹†ÄÜ#ƒÄ‹… Ü#SPÿRD¸ƒÄ됸eø[^]ÃU‰åVSƒ=ôW#…ÚÇôW#¹»€¢%¾„¢%‰ÁàP ÆÇ2ÿÿÿÿÆDAƒùváƒìjjh@¿#èÜýÿÿ¹ƒÄ¾ä¤%»à¤%‰ö‰ÁàQ‰0Ɖуù +véǧ%ÿÿÿÿƧ%Çؤ%¹¾D§%»@§%vÍ)ÈÁàQ‰0ƉуùvãÇpª%ÿÿÿÿÆlª%Ljª%eø[^]ÐU‰åWVSƒìŠEˆEóŠUˆUòfÇEæ¾<u€út €}óu€}òuè_Ǐ¸ÿÿÿÿé7‰öúƒ=ؤ%ÿuèí^ǍûÇEìÿÿÿÿ됡ؤ%€‹Õä¤%‰ؤ%û‰Eìƒ}ìÿu +¸ÿÿÿÿéìvƒì h@¿#ègñÿÿƒÄ‹]¾¹º÷ñ‰×ëf‰ö¿€<Å ¢%t0ƒìÿu¿ōƒ€¢%Pè³EƒÄ…Àu€»˜¢%„Ÿ¾ëG¹‰øº÷ñ‰×fÿEæfƒ}懜‰ó„Ût–¿Áãƃ ¢%ƒìÿuƒ€¢%Pè÷D‹E쉃”¢%ƒÄ€}óu‰Â’‹] f‰Åè¤%ëv‹E썀‹E ¯Ef‰Õè¤%úƒì ‹U썒Áã·ƒè¤%Pèݨÿÿºì¤%‰ƒÄû…Àu%è”]ǒƒì h@¿#èAõÿÿ¸ÿÿÿÿ魍v‹E썀ÁãS‰Uà¾à¤%‹ƒì¤%‰‚ä¤%‰2ƒìjjƒü¤%Pè:ûÿÿƒÄ ·D3Pjƒ¥%Pè#ûÿÿƒÄ jjÃ¥%SèûÿÿŠ]ó‹Eàˆ\0ƒÄúƒ=ˆª%ÿuèø\ǎûÇEèÿÿÿÿ롈ª%Å)‹•D§%‰ˆª%û‰Eèƒ}èÿu_ƒì h@¿#èvôÿÿ‹Eèéä‰öè§\ǐƒì h@¿#èTôÿÿ¸ÿÿÿÿéÀ‰öèƒ\Ǒƒì h@¿#è0ôÿÿ¸ÿÿÿÿ霉ö‹EèÁà+EèÁà¹@§%ŠUòˆT P‹]ì‰
+‹] f‰\
+ǀD§%ÿÿÿÿ‰ºH§%‹]썛ÆÕà¤%ƍ¿ōr¿€¢%€|>t%ƒì¶D>Pšœ¢%SèGõÿÿÆD>‰$èšøÿÿƒÄƒì h@¿#èŽóÿÿ¿EèƒÄeô[^_]ÍvU‰åWVSƒìŠEˆEóŠ]ÇEè¿ÆEç<u„Ût €}óu€ûuè‚[Ǐ¸ÿÿÿÿé0‰öúƒ=ˆª%ÿuèa[ǎûÇEìÿÿÿÿë ¡ˆª%Å)‹•D§%‰ˆª%û‰Eìƒ}ìÿu ¸ÿÿÿÿéߐ‹EìÁà+EìÁàº@§%ˆ\ ‹M f‰LǀD§%ÿÿÿÿƒì h@¿#è°íÿÿƒÄ‹U¾¹º÷ñ‰Öë]v¶€<Å ¢%u ¿ÆEçë8ƒìÿu¶ŀ¢%PèöAƒÄ…Àu¿ëF¹‰ðº÷ñ‰ÖÿEèƒ}è‡Ò‰ù„Ét €}çuR¶Á㸀¢%ÆD ÆDƒìÿuPè>AƒÄ jjÃœ¢%Sè/øÿÿÇ$@¿#èçñÿÿƒÄ jjSè:ïÿÿëM¶ōCº€¢%€|t'þDƒì h@¿#è®ñÿÿƒÄ jjƒœ¢%Pèûîÿÿ됃ì h@¿#è‹ñÿÿƒÄ¶‹<Ŕ¢%¿ŠUó:Åø¤%tèªYǓ¸ÿÿÿÿéX‰ö€}óu¿·Åè¤%9E u€}ót(¿·Åè¤%™÷} …ÒtèdYǔ¸ÿÿÿÿéƒì h@¿#è ìÿÿ¶‹Ť¢%ƒÄƒúÿ„­€}óu#è&YǕƒì h@¿#èÓðÿÿ¸ÿÿÿÿéЍÕ)з…T§%9E t"èíXǔƒì h@¿#èšðÿÿ¸ÿÿÿÿ鋋MìÁá+M썶Å »„¢%‹‰D§%‹Mì‰ ë/‰öèŸXǑƒì h@¿#èLðÿÿ¸ÿÿÿÿë@¶‹Uì‰Ť¢%ƒì h@¿#è*ðÿÿ‹EìÁà+EìÁàH‰±H§%º@§%‰<Æ¿EìƒÄeô[^_]ÉöU‰åWVSƒì¿E‰Eì‰ÇÁç)ÇÁ獗@§%‰Uðh@¿#èÏêÿÿ‹Mð‹Y›ÁãC‰E躄¢%‹€Áà°à¤%ƀà¤%F‰$èôÿÿF ‰$è„ôÿÿF$‰$èyôÿÿƒÄú·FPÿv èX£ÿÿû¹„¢%‹Eè‹ú ’¡Ø¤%‰Íä¤%‰ؤ%ûƇ@§%ƒÃ ‹Uð‹B‰ƒ„¢%ú¡ˆª%‰‡D§%‹Mì‰ +ˆª%ûƃ€¢%Ç$@¿#è
+ïÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u ŠM¿UÕ)Ѝ…@§%‰Eð‹@€Åà¤%‹Eð€x uèûVǔ¸ÿÿév€;uèÞVǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC PèÈëÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC PèœëÿÿƒÄ…ÀuÔƒì CPè-éÿÿƒÄ‹Uð·B‹{‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC$PèZïÿÿëƒì‹Uð·BPC$PèDïÿÿC‰$èíÿÿƒÄ¸eô[^_]ÐU‰åWVSƒì ‹} ŠM¿UÕ)Ѝ…@§%‰Eð‹@€Åà¤%‹Eð€x uè‹Uǔ¸ÿÿév€;uènUǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC$PèXêÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC$Pè,êÿÿƒÄ…ÀuÔƒì CPè½çÿÿƒÄ‹Uð·B‹s‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC Pèêíÿÿëƒì‹Uð·BPC PèÔíÿÿC‰$è-ìÿÿƒÄ¸eô[^_]ÐU‰åSƒìh0#è;ƒÄÿ5ؤ%h‹0#è;»ƒÄÝ)ØÁà€¸@§%t8@§%‹B€Åà¤%ƒì ÿp ÿp$‹B€ŀ¢%PShŸ0#è®:ƒÄ Cƒûv­‹]üÉÃU‰åƒì`¿MÍ)ȋ…P§%’Åà¤%ÿp ÿp$RQhÀ0#E¨Pèf:ƒÄ ÉÐU‰åSƒì‹]h@¿#èHæÿÿ¿ÓÕ)Ѝ …‹X§%€Å ƒÄ€º€¢%u ‹D§%‰‚„¢%¿ÃÅ)ÂÁâƂ@§%ú‹ +ˆª%‰ŠD§%£ˆª%ûƒì h@¿#èÓêÿÿƒÄ‹]üÉÍvU‰åWVSƒì ‹u ‹E‹<…€Ü#ú‹^…Ûu-ƒì j èžÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‹U‰‰F‹;ìÛ#u û¸#é~ƒ;ÿtc¾ÀÜ#‰ö‹ +ìÛ#I‰ÐÁà)Ћ‰TÆP‹C‰„¬¡ìÛ#‰CÿCè…ÿÿ¡ìÛ#@‰ÂÁâ)ƒì ¿DÖPèŸ'èöŽÿÿƒÄûúƒ;ÿu¤¡ìÛ#ÿD‡D¡ìÛ#‰û¸eô[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„À‹;ìÛ#tû¸髍vúè*'‹ìÛ# [‰ÊÁâ)Êf‰ÕÈÜ#‹E‹…€Ü#ÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt-p ‰Ù[‰ÐÁà)ЉÅÝ#‹œž DŽŽ ÿÿÿÿƒûÿuÖÇGè„ÿÿ¡ìÛ#@‰ÂÁâ)ƒì ¿ÕÈÜ#Pè¢&èùÿÿƒÄû¸eô[^_]ÃU‰åVSƒì h$1#è~ÿÿè +™ÿÿ‰ÆÇ$èKœÿÿ‰Ã‰µ€Ü#ƒÄ jh81#Sè"8fÇCÍÆCÇCÇC8¯"ÇC „¯"ÇC$¯"ÇC(˜¯"ÇC,ȯ"ÇC0ô¯"ÇC4<°"ÇC8œ¬"ÇC<„°"ÇC@„­"ºƒÄsK •ÇD@DŽ ÿÿÿÿBú™~ݍeø[^]ÉöU‰åVS‹E‹…€Ü#ƒì h1#è7¾ƒÄƒÃƒìÿt³@h1#èû6ƒÄFþ™~ãeø[^]ÃU‰å¸ÿÿÿÿ]ÉöU‰å]ÍvU‰åƒì‹E‹U ‹…€Ü#ƒÀƒ|@tƒìRj
+èȽÿÿƒÄÉÍvU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] j èӚÿÿ‰ÂƒÄ¸ …Òt!ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìj ÿsèäšÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì ‹}‹u ú‹^…Ûu*ƒì j è3šÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‰>‰Fƒ;ÿt
+û¸ë"‰ö¡ìÛ#‹½€Ü#ƒÂÿD‚@¡ìÛ#‰û¸eô[^_]ÃU‰åWVSƒì ‹E ‹U‹•€Ü#ú‹p¸…ö„V‹;ìÛ#u û¸#éA‹ìÛ#‹F ¿ÀÜ#;„“°v +¸é v¡ìÛ#‹Œƒ°‹“¬…Òt‰ö‹;ìÛ#…Š‹R…Òu븅À…†‹ +ìÛ#I‰ÂÁâ)‹ƒ¬‹‰D×P‹ƒ¬‹@‰„‹‹“¬¡ìÛ#‰B‹ƒ¬ÿ@èj€ÿÿ¡ìÛ#@‰ÂÁâ)ƒì ¿D×Pèù"èPŠÿÿƒÄûúéRÿÿÿ‰ö¸;J ’Àérÿÿÿ‹E‹…€Ü#¡ìÛ#ÿDƒD¡ìÛ#‰¹‹ƒ¬‹V ë‰ö‰Á‹A…Àt;P sò…Ét‰q됉³¬…Àt‰p‰F‰Nû¸eô[^_]ÍvU‰åWVS‹}‹E ‹ ½€Ü#ú‹X¸…Û„Ù‹;ìÛ#uû¸#éčv‹ìÛ#‹C ;„‘°s
+¸饡ìÛ#‹´°‹‘¬…Òt‰ö‹;ìÛ#u‹R…Òu︅Àuû¸ëk‰ö¸;r ’Àëåv‹ ½€Ü#¡ìÛ#ÿDD¡ìÛ#‰¾‹¬‹S 됉ƋF…Àt;P sò…öt‰^됉™¬…Àt‰X‰C‰sû¸[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„ï‹;ìÛ#tû¸éڍvúè&!‹ìÛ# [‰ÊÁâ)Êf‰ÕÈÜ#‹E‹…€Ü#‰EðÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt2‰ÆƒÆv‰Ù[‰ÐÁà)ЉÅÝ#‹œžDŽŽÿÿÿÿƒûÿuÖÇG‹O‹W…Éu +‹Eð‰¬ë‰ö‹G‰A…Òt‹G‰Bèã}ÿÿ¡ìÛ#@‰ÂÁâ)ƒì ¿ÕÈÜ#Pèo èƇÿÿƒÄû¸eô[^_]ÐU‰åVSƒì hd1#èJ—ÿÿèْÿÿ‰ÃÇ$€è–ÿÿ‰Æ‰4€Ü#ƒÄ jhx1#Vèî1fÇFÌÆFÇFÇF@¶"ÇF Ķ"ÇF$ð¶"ÇF( ·"ÇF,h·"ÇF0”·"ÇF4ì·"ÇF8ü°"ÇF<„²"ÇF@ˆ³"ºƒÄ^N•ÇD@DŽ°ÿÿÿÿDŽÿÿÿÿBú™~Òdž¬eø[^]ÐU‰å‹U‹M ¸ÿÿÿÿ…Òt;‹‹…€Ü#ƒxu‹@%ÿÿÿ=Ìu…Ét ‹B‹@ ‰ë
+‰ö¸ÿÿÿÿ됸]ÐU‰å‹U‹M¸ÿÿÿÿ…Òt@‹‹…€Ü#ƒxu‹@%ÿÿÿ=Ìt¸ÿÿÿÿ됅Ét‹B‹@ ‰‹R‹E ‰B ¸]ÃU‰å‹E‹M ‹U‹…€Ü#‰”ˆ°]ÃU‰åWVSƒì‹E‹<…€Ü#h1#è0»ƒÄwƒìÿtž@h1#èó/ƒÄCû™~ãƒì hB1#èÚ/»ƒÄ‰öƒìÿ´Ÿ°h^1#è¼/ƒÄCû™~àeô[^_]ÃU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åS‹E‹U ‹]‹ …€Ü#Áâ‹C‰„°ÇD
+D‹$ÉÉöU‰åVS‹E‹u ‹…€Ü#ƒ|³DtƒìVj
+èD¶ÿÿƒÄë vÇD³DDŽ³°ÿÿÿÿeø[^]ÉöU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] jè3“ÿÿ‰ÂƒÄ¸ …Òt1ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‹@‰B ÇB‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìjÿsè4“ÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì$·]Sh‚1#è .‰Ø-yƒÀÁèƒÄ ·À‰Eè@ÛÁã¿@·%ÿt8CP‰Eä·8Ph‰1#èá-ƒÄ ÿt;·D;Ph—1#èÊ-ƒÄ ÿt; s·>Ph¨1#è±-ƒÄ ÿt>·D>Ph¹1#èš-ƒÄ ‹Uä·D:P·DLPhÊ1#è~-‹UèÕƒÄ·ØShÛ1#èc-EóPEòPEìPS蹃ĶUóR¶UòRÿuìPh 2#è6-ƒÄ eô[^_]ÍvU‰åWVSƒì ‹E‹U‹]¹‹u ƒî‰ƒî‰º :&fƒ= :&yA¿Áfƒ<Byfù™~îfù™~ƒì hð1#èÎ,¸ƒÄé ¿Á<¹ :&‰Úf Ê€f‰Ǎ<ÿÁçº@·%‰tÇD _ÇDfŒÙf‰LfÇfÇDÇD _ ‹M‰ ÇDÇDO0ÇDÇD Ǎ_@ÇÇD‰t‰t fŒÉf‰L fŒÙf‰LfŒÛOPf‰\fŒÛf‰fÇD 0fÇD0O`fÇfÇDfÇDÇ¬·%¾`;&¹üó¥Å˜eô[^_]ÐU‰åVS‹u ¿E-‰Â…ÀyP‰ÐÁø@ÀÁà¹@·%f‰tX@Vf‰T f‰t ƒÀPf‰tf‰4[^]ÉöU‰å¿E-‰Â…ÀyP‰ÐÁøfDŽ :&]ÉöU‰åSƒì‹]¿E Ph2#Sè~3‰ØƒÄ‹]üÉÃU‰åVS趉Æès»‰öƒìh,Â"SèƒÄh¸»"SèìƒÄCƒû~ۉðeø[^]ÉöU‰åƒìèaÉÍvU‰åSƒì‹]‹øW#€82uºð°îƒìShb3#èˆ*ƒÄÁ㋃øW#@Ph½=#èp*ƒÄÿ³<X#ènƒÄ‹]üÉÉöU‰åƒìÿuhy3#èE*èèûÇ$èG7ƒÄÉÉöU‰åWVSƒì‹E‹} ƒ=„µ%„à…ÿ„Ø¡¬%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡¬%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡¬%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø‰Ó)øƒÞC÷o‰ÑÁù‹GÁø)Á‰È؉‹OÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰O‹éԉö]衬%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+¡¬%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡¬%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø)‰Uè‹{¸ƒÞC÷ï‰ÑÁù‰øÁø)Á‰ÈEè‰ùÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰K‹E荀€€€€€‰ÃÁã‰È÷îÁúÁù)ʍéèvƒøuc¸ƒ=ô«%…Ρø«%€€€€€€‰ÃÁã‹ +ü«%ºÓMb‰È÷êÁúÁù)ÊӅÿ„…¡ø«%‰¡ü«%éqvƒø…ç¶ä«%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +ð«%f)Ù·É +¬%º×®¬]‰È÷êÁú‰ÈÁø)¬%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰È£¬%f‰ð«%…ÿ„̍€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡¬%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡¬%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø‰Ó)Ëw¸ƒÞC÷î‰ÑÁù‰ðÁø)Á‰È؉‰óÁú‰ÙÁù)ʍ’’’’’’Áâ‰Ø)Ѝ€€€Áà‰G‹¬%’’’4Õ¹Á6ۉð÷é‰Ó3‰ÁÁù
+‰ð™‰È)Ћ +¬%ɍ‘ÑÁâ)ʉÑÁá)эÈ鍃ø…ƒ=ô«%…rUè¡ø«%‰¡ü«%‰B»@¹C°Ò‰Êî‰Úì¶ÈìÁàf¶Ñ з𷀵%9Æv%h†3#j_h˜3#hŸ3#èm%Ç$èmƒÄ·€µ%)ó¯è«%·€µ%‰Ø‰Ñº÷ñ‰Ãº °
+îì©t‹ +è«%;ÍÌÌ̉ð÷âÁê9Ós‰Ëu荛€€‹V‰Eä‰F¸¡/¸D÷mä‰ÑÁù‹EäÁø)Á‰ÈEè‹N¸¡/¸D÷éÁú‰ÈÁø)’’’’’’’’’Áâ )щN¡ø«%€€€€€€Áà‰Eä‹ +ü«%ºÓMb‰È÷êÁúÁù)ʋEäÐÅÿt ‰ð‹‰‹@‰G‰Øëv¸eô[^_]ÍvU‰åVSƒìŠEˆE÷ÿ¤X#ƒ=¤X#uƒ=€X#tÿ€X#¶E÷€Áຬª%ƒ<uIÇö€°ª%tûƒì ¶]÷›Áã¾ ª%ÿ43ÿ“¤ª%ƒÄöDtú¶E÷€Ç…¬ª%ÿˆX#ƒ=¤X#uƒ=„X#tÿ„X#ÿ +¤X#eø[^]ÍvU‰åWVSº¿¬ª%¾¨ª%»¤ª%¹ ª%’ÁàÇ8‰0ÇÇBƒú~ÜǤX#[^_]ÐU‰åVS‹U‹] ‹uú’ƒ<…¬ª%t÷Æu¸ÿÿÿÿëH’ …ǁ¬ª%û…Ût‰™¤ª%º ª%¨ª%‰‰t
+됍’Ç…¬ª%¸[^]ÐU‰å¡¤X#]ÉöU‰åSƒì¶ä«%ƒøt!ƒø…Àt ë.‰öƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +ð«%f)Ù·É +¬%º×®¬]‰È÷êÁú‰ÈÁø)¬%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰ +¬%f‰ð«%ÿ¤X#ƒ=¤X#uƒ=€X#tÿ€X#¡ü«%‰ÃD¿#º¡/¸D‰Ø÷êÁú‰ÙÁù)Êø«%’’’’’’’’’Á⠉Ø)Уü«%‹à«%ë$‹¡ì«%‰‰ì«%‰à«%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;ø«%;ø«%uƋB;ü«%~»ƒ=¤X#uƒ=„X#tÿ„X#ÿ +¤X#‹]üÉÃU‰åWVSƒì‹uhˆÐ"j@èØ +ƒÄƒ>t,ƒì h¹3#èß »ÿÿƒÄ¿@¹C°8‰ÊîˆØ‰úîëaƒì hÕ3#è³ ‹N‰ +è«%ɍA‰ÂÁâ‰Ñ)ÁºÓMb‰È÷âƒÄ‰ÑÁéu¹f‰ +€µ%‰Ë¿@¹C°4‰Êî‰úˆØî‰ØfÁèî‹£ô«%ƒ=ä;&~»A¹C°p‰ÊÚîîÆä«%ë%Æä«%»B¹C°°‰ÊÚîîºa°îº!ì%þî¹¾ ¬%»$¬%ƒùbIÁà8¬%‰0I‰LÃAƒùc~ßÇhµ%Çì«% ¬%Ç€X#Ç„X#¡è«%€€€Áà£D¿#Çü«%Çø«%Ǭ%Ǭ%fÇð«%ƒ=ô«%uÇÄÛ#xÇ"ÇÈÛ#È"ëÇÄÛ#`È"ÇÈÛ#ìÎ"eô[^_]ÃU‰å‹E£€X#]ÍvU‰å‹E£„X#]ÍvU‰å‹E£X#]ÍvU‰åWVSƒì ‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=ì«%tl‹ +ì«%‹£ì«%‹E‰A‹Eè‰A ‹Eì‰A‹E‰A»‹à«%}è‹uè됋…Òt‰ð;B  +;B u‹G;B~‰Óëâ‰ö…Ût‰ ë‰ +à«%‰‹AƒÄ [^_]ÐU‰å‹E¹‹à«%됉ы…Òt;Buó¸ÿÿÿÿ…Òt$…Éu
+‹£à«%됋‰¡ì«%‰‰ì«%¸]ÃU‰åWVSƒì,‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=ì«%„q‹5ì«%‹£ì«%‹E‰F‹Eè‰F ‹Eì‰F‹E‰Fº‹à«%}è‹Mè됋…Ût‰È;C  +;C u‹G;C~‰Úëâ‰ö…Òt‰2鐉5à«%ƒ=„µ%…ôƒìEàPjè3óÿÿ‹à«%ƒÄ‹Eà;B  +;B u‹Eä;B~ÇEÜÇEØëK}؋à«%Mà‹B;A|‹B +Eà‰E؉Ћ@+Aë ¡à«%‹@ +EàH‰EØ¡à«%‹@+Eäʚ;‰G‹E؍€€€€€€Áà‰EԋMÜ¿ÓMb‰È÷ïÁúÁù)ÊUԍҍB‰ÂÁâ)‰Ð÷çÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèFeô[^_]ÃU‰åWVSƒì¶ä«%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ð«%f)Ú·Ò‰Ö5¬%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +¬%‰AÁà)ȍÁ‰ÁÁá ȉò)‰¬%f‰ð«%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡¬%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡¬%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰Cƒ=à«%„/Ç„µ%‹à«%‹Eè;B ;B …Œ‹C;BŽ€ƒ=¤X#uƒ=€X#tÿ€X#ÿ¤X#‹à«%ë#‹¡ì«%‰‰ì«%‰à«%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;Eè +;EèűB;Eì~ă=¤X#uƒ=„X#tÿ„X#ÿ +¤X#¶ä«%ƒøt"ƒø …Àt +ë/vƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ð«%f)Ú·Ò‰Ö5¬%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +¬%‰AÁà)ȍÁ‰ÁÁá ȉò)‰¬%f‰ð«%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡¬%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡¬%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰C‹à«%‹Mè;J 
+;J u;B~ÇEäÇEàëJ]à‹à«%Mè‹B;A|‹B +Eè‰Eà‰Ð‹@+Aë ¡à«%‹@ +EèH‰Eà¡à«%‹@+Eìʚ;‰C‹Eà€€€€€€‰ÆÁæ‹Mä»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèîÇ„µ%ë +‰öº@°î°ðîeô[^_]ÐU‰åVSƒì‹E»¹‹à«%ëv‰Ñ‹…Òt;Buó¸ÿÿÿÿ…Ò„I…Éu‹£à«%»ë‹‰¡ì«%‰‰ì«%ƒ=„µ%…ƒ=à«%uº@°î°ðéû‰ö…Û„òƒìEðPjèºìÿÿ‹à«%ƒÄ‹Eð;B  +;B u‹Eô;B~ÇEìÇEèëJ]è‹à«%Mð‹B;A|‹B +Eð‰Eè‰Ð‹@+Aë ¡à«%‹@ +EðH‰Eè¡à«%‹@+Eôʚ;‰C‹E荀€€€€€‰ÆÁæ‹Mì»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèeø[^]Éöú‹D$¼HÏ#PèŒëÿÿ`fff f¨f¸0ŽØŽÀ° º X#@£ŒX#1ÛfŒÓü¡ô«%ƒøtèùòÿÿëè6ùÿÿ°
+º îì¨t ¸@Pè–ÿÿÿf¡”X#f9šX#t f£šX#ÿ-–X#ƒ=X#t‹X#ÿÓf©f¡ffaωöU‰å‹EØf£šX#f£”X#]Ã1ÀÈÃU‰åf¸0ŽØŽÀ‹Ef;šX#t f£šX#ÿ-–X#]ÉöU‰åƒìjjjj@èaƒÄÉÃU‰åWVSƒì ‹]‹u ‹}聉€:y"…Ût‹B8‰…öt‹BÁà
+‰…ÿt)‹B4‰ë"‰ö…ÛtÇ…öt‹BÁà
+‰…ÿtÇ@ƒ}t ‹BÁà
+‹U‰ƒÄ [^_]ÍvU‰åƒìjjjj@è̓Ä·@0ÉÃU‰å¡XV#]ÉöU‰å]ÍvU‰åSƒì‹XV#誃ì Sèucÿÿè ƒÄ‹]üÉÃU‰åWVS‹M ‹u‹}Š]‰ÈÁàeèÿÿ Eè‰ÈÁèUèˆBáÿbÿÿÿ J‰ðˆB‹Ef‰Eè‹EÁè‰EäŠEäƒà ÃË@¶ÃÁàbÿÿÿ Bçüÿ=JV#‹‰‹B‰G[^_]ÐU‰åWVSƒì ‹] ‹u‹}·EMèJV#‹‰‹@‰A‰Ê¶JÁá¶B ÁÁá·B Á…ÛtŠBƒà¶ÐÁâ·Eè Љ…ötŠE툅ÿt
+ŠEî%ðˆ‰ÈƒÄ [^_]ÉöU‰å‹E ¶UÁâ¹`Y#fÇD
+8ƂeY#îƂdY#f‰
+Áèf‰D
+]ÍvU‰åº °îº!°@î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰åº °îº!°î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰å‹Mf…ÉtWfƒùw¸Óà
+ X#ë7fƒùw<·Éƒé¸Óà
+¡X#¢¡X#º¡î<ÿu  X#©uƒÈ¢ X#º!î]ÃU‰å‹Mf…ÉtUfƒùw¸þÿÿÿÓÀ" X#ë5fƒùw:·Éƒé¸þÿÿÿÓÀ"¡X#¢¡X#º¡î  X#©t%û¢ X#º!î]ÉöU‰å¿”X#]ÃU‰åƒì‹Ef£”X#˜PèWüÿÿƒÄÉÐU‰å¿”X#]ÃU‰åƒì‹E‰Âf£”X#ƒ=¤X#uƒì ¿ÂPèüÿÿƒÄÉÐU‰åWVì¾¹¬X#ºìX#‰öµÇ¨Ø"ǨØ"Fƒþ~åƒì EÈPèÅèºÇà;&!4#‹EÈ£ä;&¶¨X#£è;&ƒÄ‹EУð;&‹EÔ£ô;&‹EØ£ø;&hQÚ"jè£ýÿÿƒÄh[Ú"jè”ýÿÿƒÄheÚ"jè…ýÿÿƒÄhlÚ"jèvýÿÿƒÄhsÚ"jègýÿÿƒÄhzÚ"jèXýÿÿƒÄhÚ"jèIýÿÿƒÄhÇÚ"jè:ýÿÿƒÄhˆÚ"jè+ýÿÿƒÄhÚ"j èýÿÿƒÄh–Ú"j
+è +ýÿÿƒÄhÚ"j èþüÿÿƒÄh¤Ú"j èïüÿÿƒÄh«Ú"j +èàüÿÿƒÄh²Ú"jèÑüÿÿƒÄh¹Ú"jèÂüÿÿƒÄhÀÚ"jè³üÿÿƒÄh€Ù"jAè¤üÿÿƒÄhˆÙ"jBè•üÿÿƒÄhÙ"jCè†üÿÿƒÄh˜Ù"jDèwüÿÿƒÄh Ù"jEèhüÿÿƒÄh¨Ù"jFèYüÿÿƒÄh°Ù"jGèJüÿÿƒÄh¸Ù"jpè;üÿÿƒÄhÀÙ"jqè,üÿÿƒÄhÈÙ"jrèüÿÿƒÄhÐÙ"jsèüÿÿƒÄhØÙ"jtèÿûÿÿƒÄhàÙ"juèðûÿÿƒÄhèÙ"jvèáûÿÿƒÄhðÙ"jwèÒûÿÿf +T;&€¾ƒÄvÀÅ@·%ƒì jh‰hØPõ·ÀPèúÿÿƒÄ Fþš~ǃì hÐèFùÿÿƒÄÛãݵTÿÿÿ›¿`;&µTÿÿÿ¹üó¥ ÀƒÈ""ÀÛãèƒûÿÿèúÿÿeø^_]ÍvU‰åSƒìº!°ÿîè’ûÿÿ¹@ºC°6Êîîƒ=ä;&~¹AºC°tî°‰Êî°ë»B¹C°°‰ÊÚîîºaî‹]üÉÃU‰å‹U‹E ‰•ìX#]ÉöU‰å‹U‹E ‰•¬X#]ÉöU‰åƒìh4#è
+è— ƒÄÉÉöœX‰Á5PœX9ÈtQ¸Ã¸ÜX‰Á5 PœX1ÈtQ¸øÃf1Àžf¸f»öóŸ€üu¸øÃƨX#Ûã¹âþfǪX#ZZÝ=ªX#¹âþf¡ªX#<u+Ù=ªX#¹âþf¡ªX#f%?fƒø?uƨX#ƨX#Éö`¸ëp`¸ëh`¸ë``¸ëX`¸ëP`¸ëH`¸ë@`¸ë8`¸ ë0`¸
+ë(`¸ ë `¸ ë`¸ +ë`¸ë`¸ë ¨Pf¸0ŽÀŽØüX1ÛfŒÓP‹…¬X#ÿÓ[° ƒûrº îº îf¡”X#f;šX#t f£šX#ÿ-–X#©¡aϸ鋸選ëz¸ës¸ël¸ëe¸ë^¸ëW¸ ëP¸
+ëI¸ ëB¸ ë;¸ +ë4¸ë-¸ë&¸ë` ¨f¸0ŽÀŽØüèש¡aÏPf¸0ŽØŽÀXfŒÓ‹=JV#ß1ۊŠ_Áãf‹_ÜfŒÒfŒÛŽÓSRPÿ…ìX#ƒÄX[ŽÐ)ÜÏU‰åWVSƒì ‹u¸¹ ‰÷üó«è|ýÿÿ…ÀtÇëUèŠýÿÿ…Àt7ÇFǸ¢‰^‰N‰V …Àt+¸¢‰F‰^‰N‰V ëÇècýÿÿ…ÀtÇ ƒÄ [^_]ÍvU‰åWV¿,Y#È·À-yƒÀÁø9ÂtU¿,Y#@ÀÝ4Ŭ·%›È·À-yƒÀÁøf£,Y#¿5,Y#¿ <&4v4ö4õ¬·%¹üó¥Ý% <&^_]ÉöU‰å¿,Y#]ÃU‰åWVSƒì(ŠM¡0Y#Áà ˜€ f¶Ž<&f£JÏ#f¶<&f£LÏ#€ù t%€ù €ù„óé‰ö€ù
+„#é‰öfƒJÏ#·JÏ#;<&Œ½fÇJÏ#·LÏ#¡”<&H9Â…¿¡<&H‰Eì‰Uèf¾Œ<&Áâf‰Uò¡0Y#Áà °€ ¿;}è:¹;Mì*_ÿv‰ø¯<&È·F‰Ø¯<&Èf‰FA;Mì~ÜG;}è~ƹ;MìKWÿ‰Ð¯<&Èf‹]òf‰FA;Mì~çé)‰öfÇHÏ#·JÏ#‰Áƒø~ºƒÂ·ÂƒÀ9È|óf‰HÏ#f¡HÏ#f£JÏ#éævfÇJÏ#·LÏ#¡”<&H9Â…¾¡<&H‰Eà‰UÜf¾Œ<&Áâf‰Uæ¡0Y#Áà °€ ¿;}Ü=v¹;Mà*_ÿv‰ø¯<&È·F‰Ø¯<&Èf‰FA;Mà~ÜG;}Ü~ƹ;MàGWÿ‰Ð¯<&Èf‹]æf‰FA;Mà~çé%‰öfÿ +JÏ#·JÏ#·LÏ#¯<&ÂÆS fÿJÏ#éõ‰ö·JÏ#·LÏ#¯<&Ј CfÿJÏ#·JÏ#;<&Ž¿fÇJÏ#·LÏ#¡”<&H9Â…š¡<&H‰EԉUÐf¾Œ<&Áâf‰UÚ¡0Y#Áà °€ ¿;}Ð=v¹;MÔ*_ÿv‰ø¯<&È·F‰Ø¯<&Èf‰FA;MÔ~ÜG;}Ð~ƹ;MÔ'Wÿ‰Ð¯<&Èf‹]Úf‰FA;MÔ~çëfÿLÏ#·5JÏ#·=LÏ#‰øf¯<&f‰EΡ0Y#Áà fEÎfuλÔ°‰Úî¹Õ‰ÊŠEÎî°‰Úîf‹EÎfÁè‰Êî‰óˆŽ<&‰ø¢<&ƒÄ([^_]ÐU‰åWVSƒì‹u‹} ‰øf¯<&f‰Eò¡0Y#Áà fEòfuò»Ô°‰Úî¹Õ‰ÊŠEòî°‰Úîf‹EòfÁè‰Êî‰ð¢Ž<&‰úˆ<&ƒÄ[^_]ÍvU‰åS¹Ô°
+‰Êî»Õ‰ÚŠEî° ‰Êî‰ÚŠE î‹$ÉÍvU‰åWVSƒìf¾EÁàf‰Eò¡0Y#Áà ¸€ ‹]ë0‹M ;M(sÿ‰Ø¯<&È·G‰ð¯<&Èf‰GA;M~ÜC;]~ʋM ;MSÿv‰Ð¯<&Èf‹]òf‰GA;M~çƒÄ[^_]ÍvU‰åWVSƒì ¡<&H‰Eð‹”<&K‰]ìf¾Œ<&Áàf‰Eê¡0Y#Áà °€ ¿9ß<‰ö¹;Mð*_ÿv‰ø¯<&È·F‰Ø¯<&Èf‰FA;Mð~ÜG;}ì~ƹ;MðWÿ‰Ð¯<&Èf‹]êf‰FA;Mð~çƒÄ [^_]ÍvU‰å·J‰<&¶„@£”<&¶„ÿ ¢Œ<&¶P¢Ž<&¶Q¢<&¶`¢OÏ#¶a¢NÏ#Ç4Y#Ç0Y#]ÃU‰åWVSƒì Ž<&¢P <&¢Q¶ÀP¶Ž<&PèŠýÿÿ¶NÏ#¶5OÏ#ƒÄ¹Ô°
+‰Êî¿Õ‰úˆØî° ‰Êî‰ú‰ðîeô[^_]ÍvU‰åSƒì‹]€;tŠCƒì ¾ÀPèiùÿÿƒÄ€;ué‹]üÉÃU‰åVS‹E‰ÃÁã £4Y#¹Ô° +‰Êî¾Õ‰òˆØî° ‰Êî‰ØfÁè‰òî[^]ÃU‰åVS‹u‹0Y#Áâ»`Ï#¶Ž<&‰¹€Ï#¶<&‰
+µŠ¢Ž<&Š
+¢<&‰50Y#[^]ÃU‰å¡4Y#]ÉöU‰å¡0Y#]ÉöU‰åWVSƒì ‹}f¾u Áæf¾E Ƌ]‹E9Ã3v‹M9ù#‰Ê¯<&¡0Y#Áà ÐØf‰´€ A9ù~ÞC;]~ЃìÿuÿuèüÿÿŠE¢<&ŠE¢Ž<&ƒÄeô[^_]ÍvU‰åWVSƒì ¡<&H‰Eð‹=”<&Of¾Œ<&ÁãƒË ¾9Æ4¹9ù%v‰Ê¯<&¡0Y#Áà Ððf‰œ€ A9ù~ÞF;uð~̃ìjjèûÿÿƍ<&ÆŽ<&ƒÄeô[^_]ÍvU‰åS‹U ‹]‹M¯<&¡0Y#Áà ÂU”€ ˆ
+ˆZ‹$ÉÉöU‰åS‹E ‹]‹M‰Â¯<&¡0Y#Áà ÂU”€ ¶B…Étˆ¶‰Â…Ûtˆ¾Â‹$ÉÐU‰åS‹E ‹MŠ]‰Â¯<&¡0Y#Áà ÂU”€ €9tŠˆABˆB€9uò‹$ÉÐU‰åƒìh<4#èTýÿÿôƒÄÉÉöU‰åƒìjèƒÄÉÉöU‰åƒìh4èƒÄÉÍvU‰åVS‹Ef£r¹d»þ¾v‰Êì©t Fþÿÿ~í¸@=Ÿ†~ø‰ÚˆÈö@=Ÿ†~øë‰öU‰åSƒìE Pÿuh Ï#èX‰ÃÇ$ Ï#è¢üÿÿ‰ØƒÄ‹]üÉÃU‰åWVSìð‹} ŠEˆ…ÿÿÿEPÿuÿÿÿSè‰ÆS¾…ÿÿÿPWÿuè±þÿÿ‰ðƒÄ eô[^_]ÃU‰åSƒìE Pÿuh Ñ#謉ÃÇ$ Ñ#è&üÿÿ‰ØƒÄ‹]üÉÃU‰åS‹M‹U ‰Ë€:tvŠˆBA€:uõƉ؋$ÉÍvU‰åVS‹]‹U ‹M‰Þë‰öŠˆBC€:t‰ÈI…ÀîƉð[^]ÐU‰å‹U‹M ë +¸€:tBAŠ:t)Ð]ÃU‰åS‹U‹] ‹M…Éëv¶¶Sÿ)Ð됊C8uíŠB„ÀtIu︋$ÉÐU‰å‹U¸€:tB@€:uù]ÍvU‰åS‹E‹] €8t‰Ú€:tŠv:
+tB€:uö@€8u下$ÉÉöU‰å‹E‹U €8t ‰ö8t @€8uö¸]ÍvU‰åS‹]‰Ú€;t‰öŠ
+AŸ<wAàˆB€:uì‰Ø‹$ÉÐU‰åS‹]‰Ú€;t‰öŠ
+A¿<wA ˆB€:uì‰Ø‹$ÉÐU‰åS‹U‹M ‰Ó€;tvB€:uú늈AB€9uõƉ؋$ÉÍvU‰åWVSƒì<‹u‹]ÇEèÇEäÇEàÇEÜÇEØÇEÔÇEпÇEÌÙîÝ]À‰uì‹E €8„D‹U €:%t…ÿuŠˆB‰U FÿEèév‹E €8%u%@‰E ¿ÇEä
+ÇEàÇEØÇE̋U ¾ƒè%ƒøS‡Ñÿ$… %#‰öÆ%FÿEè鼃ÉòFŠCüˆÿEè驐ƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÔë +vƒÃ¿Sü‰Uԃì ÿuÌÿuäj
+VÿuÔè¾ éœƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäj
+VÿuÐè.éPƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäjVÿuÐèâ鐃ËCü‰EЃì jÿuäjVPèÂé䐃ËSü€:tŠˆBFÿE܀:uò‹UÜUèévƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèYë~vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀè} +ë>vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèa‰EÜEèÆ¿ƒÄ é±ÇEØé¥ÇEØ陃MÌ鐍vƒMÌ鄍v¿ƒMÌëvƒÿu?ƒìEìPj
+ÿu èb
+‰EäƒÄ‹E €80u ÷EÌtƒMÌ됃MÌ‹UìJ‰U ë4vƒÿu,ƒìEìPj
+ÿu è
+‰Eà‹EìH‰E ¿ƒÄë‰ö¿ÿE ‹U €:…¼üÿÿÆ‹Eèeô[^_]ÉöU‰åƒì EPÿu ÿuè7üÿÿƒÄÉÉöU‰åWVSƒì,‹u‹} ‹]ÇEìÇEèÇEäÇEàÇEÜÇEØÇEÔÇEЉuð€?„>€?%tƒ}Ôu ŠˆGFÿEìëá€?%uGÇEÔÇEè
+ÇEàÇEоƒè%ƒøS‡çÿ$…ð&#Æ%FÿEìéԃÉòFŠCüˆÿEìéÁƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ¿Cü‰E܃ì ÿuÐÿuèj
+VÿuÜè鏐ƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèj
+ëBƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèjVÿuØè6‰EäEìÆÇEÔƒÄ éҍvƒÃ‹Sü€:tŠˆBFÿEä€:uò‹EäEì飍vÇEàé›ÇEà鏃MÐ醍vƒMÐë}‰öÇEÔƒMÐënvƒ}Ôu6ƒìEðPj
+W蓉EèƒÄ€?0u ÷EÐtƒMÐ됃MЋ}ðOë1‰öƒ}Ôu)ƒìEðPj
+WèW‹}ðOÇEÔƒÄë
+vÇEÔGé¼ýÿÿvÆ‹Eìeô[^_]ÉöU‰åƒì EPÿu ÿuèGýÿÿƒÄÉÉöU‰åWVSƒì,‹}‹uÇEèÇEäÇEàÇEÜÇEØ»‰}ì饐‹U €:%t…Ûu B‰U 鏍v‹E €8%u%@‰E »ÇEäÇEàÇEÜÇE؋U ¾ƒè*ƒøN‡Eÿ$…@(#‰öƒû…8ƒìEìPj
+ÿu èN‰E܃MØ‹EìH‰E ƒÄéŠGƒÆ‹^üˆëÝØÿEèéõƒÆ‹^üëG€?tƒì ¾PèBƒÄ…ÀuçÇEÔë#‰ö÷EØuŠˆCë‹UÜ9UÔ}ŠˆCÿEÔG€?tƒì ¾PèþƒÄ…ÀtÇÆ덉öƒìhH4#Wè&÷ÿÿ‰ÇƒÄ EìPj
+WèՉ‹}ìƒÄƒ}à…Wƒ}ät)ƒ}ä ƒ}ätéCÿÿÿƒ}ä…9ÿÿÿƒÆ‹Fü‰é,ÿÿÿƒÆ‹Füf‰éÿÿÿ‰öƒìhU4#Wè¶öÿÿ‰ÇƒÄ EìPj
+됃ìh`4#Wèšöÿÿ‰ÇƒÄ EìPjWè ‹}ìƒÄƒ}à…̓}ät+ƒ}ä +ƒ}äté¹þÿÿ‰öƒ}ä…­þÿÿƒÆ‹Vü‰é þÿÿƒÆ‹Vüf‰é‘þÿÿ‰öƒìhx4#Wè*öÿÿ‰ÇƒÄEìPWè;‹}ìƒÄƒ}àu`ƒ}ät)ƒ}ä ƒ}ätéMþÿÿƒ}ä…CþÿÿƒÆ‹FüÝé8þÿÿƒÆ‹FüÙé*þÿÿvÇEäë vÇEäëvÇEàëÝؐ»ÿE ‹E €8…Pýÿÿ‹Eèeô[^_]ÐU‰åƒì EPÿu ÿuèïüÿÿƒÄÉÉöU‰åWVSƒì,‹u ÇEп‹Eƒð‰EԋU‰U̅Òy‰Ñ÷ىM̃}y ‹E…Ày÷Ø됋E÷EÔu ƒ}yƒ}yGƒ}u‹EÐÆD(Ø0@‰EÐë8v…Àt1U؉Uȉöƒì º÷ủÃRèI‹MȋUЈ
+B‰UЉ؃Ä…Àu×}ЋEԃàƒøu‰ú;}} +‰öÆ FGB;U|õƒ}y ƒ}yÆ-ë ÷EÔtÆ+F‹Eԃàƒøu‰ú;}} Æ0FGB;U|õ‹UÐJx M؊
+ˆFJy÷‹Eԃàƒøu‰ú;}} Æ FGB;U|õƉøeô[^_]ÃU‰åƒì‹Eÿuÿu÷ØPÿu ÿuèŸþÿÿƒÄ ÉÉöU‰å‹E…Ày÷Ø]ÉöU‰åSƒì‹]èÁîÿÿƒì Sè1 +ÿÿU‰åWVSƒì‹M‹} ÙîÙÀÙ軀9-u ¾ÿÿÿÿë
+‰ö¾ëA€90túŠƒè0< w(Ý€)#ëÙˍv¾ƒè0AÜËÙËPÚ$XŠƒè0< vâÝۀ9.u9AŠƒè0< w/Ý€)#ëÙÉÙʉö¾ƒè0AÜÊÙÊPÚ$ÙÉXØʊƒè0< vÝÝÚÙÉÞùÞÁVÚ $^€9et €9E…“A€9-u
+¾ÿÿÿÿAë‰ö€9+u ¾Aëv¾Šƒè0< weÝ€)#¾ƒê0A·ÃÙÀPÚ $Ù}ð‹]ðÆEñ Ùmð‰]ðÛ]ìÙmð‹Eì·À‰$Û$‰$Ú$ZÙ}ð‹UðÆEñ Ùmð‰UðÛ]ìÙmð‹Eì‰ÃŠƒè0< v£Ý؅ö~!ºf…Ût4Ý€)#·Ã‰öÜÉB9Â|ùëvº·Ã‰Ã9Â}Ý€)#ÜùB9Ú|ùÝ؅ÿt‰ƒÄ[^_]ÐU‰åWVSƒì ‹]‹} ÇE쾀;-u ÇEðÿÿÿÿCë‰ö€;+u ÇEðCëÇEð€;0u>C€;0túë6ƒì ¾PCè‰ÂƒÄ9ú…Òy
+¸ëEv‰ð¯÷Ö9ð~ÇEìƒìW¾P聃ąÀu¶ƒ}t‹E‰ƒ}ìt¾ÿÿÿ¯uð‰ðeô[^_]ÉöU‰åWVSƒì ‹]‹} ÇEð¾€;0uC€;0tú€;xuKƒÿuFC€;0u@‰öC€;0túë6ƒì ¾PCè_‰ÂƒÄ9ú…Òy
+¸ëAv‰ð¯÷Ö9ðvÇEðƒìW¾PèуÄ…Àu¶ƒ}t‹E‰ƒ}ðt¾ÿÿÿ‰ðeô[^_]ÉöU‰åŠUBÐ< w ¾Âƒè0ë&vB¿<w ¾Âƒè7됍BŸ<w ¾ÂƒèW됾Â]ÍvU‰å‹Uƒú w B0¾À됍BöƒøwB7¾Àë¾Â]ÍvU‰åŠUƒê0¸€ú –À]ÉöU‰åŠUBÐ<vBŸ<w¸ë¸]ÐU‰åŠU€ú/~‹E 8Y#:Pÿ¸ë¸]ÐU‰åŠUBŸ<w Bà¾Àëv¾Â]ÍvU‰åŠUB¿<w B ¾Àëv¾Â]ÍvU‰åVS¾ƒì ¾]Sè%ƒÄ…Àuƒì Sè5ÿÿÿƒÄ…Àt¾‰ðeø[^]ÃU‰åŠUƒêA¸€ú9–À]ÉöU‰å¸€}/žÀ]ÍvU‰åŠUƒêa¸€ú–À]ÉöU‰åŠUB÷<v
+¸€ú u¸]ÉöU‰åŠUƒêA¸€ú–À]ÉöU‰åWVSƒì ÝEÝUè‹]‹}ÇEäSd$øÝ$èoƒÄ…Àtƒì Sè·îÿÿƒÄéPvÙîÝEèÚéßà€äE€üu Æ-C€uï€ë÷EtÆ+CÿEä݈)#ÝEèÚéßà€äE€üuÆ0ÆC¸éû‰öÙèÝEèÝáßà€äE€üu3¾Ýéßà€äE€üuHݘ4#ÝEèØÉÝUèNÝêßà€äE€ütëÝØë)vÝØÝؾݘ4#ÝEèë ÝEèØñÝUèFÝéßàöÄtîÝ؃ì Vè÷ùÿÿƒÄƒøc~ƒïë‰öƒø ~ƒïë‰ö…ö~Oƒì‹EƒÈPÿuWSÿuìÿuèèUEäƒÄ …öu‹Eäë;‰ö]äÆeCƒì jºgfff‰ð÷êÁú‰ðÁø)ƒÂRj
+SVè\ùÿÿ‹UäD‰EäƒÄ eô[^_]ÍvU‰åWVSìŒÝEݝþÿÿ‹]Dž€þÿÿ½¸þÿÿ¹K¸üó«ƒìSÿµ”þÿÿÿµþÿÿ貃ąÀtƒì SèúìÿÿƒÄé‰öÙî݅þÿÿÚéßà€äE€üuÆ-C€µ—þÿÿ€ëv÷Et
+Æ+Cÿ…€þÿÿƒì…˜þÿÿPÿµ”þÿÿÿµþÿÿèþݝpþÿÿ‹…pþÿÿ‹•tþÿÿ‰Æ‰×DžŒþÿÿƒÄ݅˜þÿÿÙèÙÉÝáßàöÄ…ø重vh$@jÿµœþÿÿÿµ˜þÿÿè$݅˜þÿÿÜ5)#ݝ˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿß½¨þÿÿÙ­´þÿÿ‹…¨þÿÿ‰$èûÿÿ‹•Œþÿÿˆ„*¸þÿÿB‰•ŒþÿÿƒÄ݅˜þÿÿÙèÙÉÚéßàöÄ„oÿÿÿ‹•Œþÿÿ•€þÿÿ‰ÑI…¸þÿÿ‰…|þÿÿë‰ö‹•|þÿÿŠˆCI‹•Œþÿÿƒê‰ÐÁèH!Â9Ñ}ޅÉx‹Œþÿÿƒéx
+vÆ0CIyùÆëÝØÝØÆ0Cÿ…€þÿÿÝ 4#‰µpþÿÿ‰½tþÿÿ݅pþÿÿÚéßàöÄE…\‹E@9…€þÿÿLÆ.Cÿ…€þÿÿ‹Eƒà‰…ˆþÿÿDž„þÿÿDžŒþÿÿv‰µpþÿÿ‰½tþÿÿ݅pþÿÿܨ4#Ü +)#ݝpþÿÿ‹µpþÿÿ‹½tþÿÿƒì…˜þÿÿPWVèݝpþÿÿ‹•pþÿÿ‹tþÿÿ‰Ö‰Ï݅˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿ۝¤þÿÿÙ­´þÿÿ‹…¤þÿÿƒÄ…Àtƒ½ˆþÿÿu
+Džˆþÿÿƒì PèÓùÿÿˆCÿ…€þÿÿÿ…ŒþÿÿƒÄƒ½ˆþÿÿt‹E9…Œþÿÿ~
+Dž„þÿÿ‹•€þÿÿ9U}
+Dž„þÿÿƒ½„þÿÿ„ýþÿÿKë
+‰öÿ€þÿÿ‰Ã€;0u Cÿ€{ÿ.uêCÆ‹…€þÿÿeô[^_]ÃU‰åWVSƒì‹]‹u ‹}WVSèZƒÄ…Àtƒì Wè¢éÿÿƒÄéñ‰öÙî‰]è‰uìÝEèÝáßàÝـäE€üuÙàëvÝ؉]è‰uìÝEèݘ)#ÙÉÝáßàÝـäE€üuÝØÆ0ÆG¸雺ÙèÙÉÝáßà€äE€üu/Ýáßà€äE€üu?ݘ4#ëÙɐÜÉÙÉJÝâßà€äE€ütìÝØëvÝÙݘ4#ë‰öØñÙÉBÙÉÝáßàöÄtðÝØÝ؍BƒøvƒìÿuÿuÿuWVSèÔùÿÿë‰öƒìÿuÿuÿuWVSèXûÿÿƒÄ eô[^_]ÐU‰åƒìSÙ}ü›f‹Eüf +? f‰EøÙmø›ÝEÙüÝ]ð›‹Uð‹Mô‹]‰‰KÝEÜeðeì›ÛâÙmü›[ÉÍvU‰åƒì‹E‹U ‰Eø‰Uü‹MUøf‹BfÁè%ÿ=ÿt¸ëk÷Bÿÿuƒ:t…Étƒìh°4#QèDçÿÿƒÄ¸ë@‰ö€zy…Étƒìh´4#Qè çÿÿƒÄ¸ë‰ö…Étƒìh¹4#QèçÿÿƒÄ¸ÉÃU‰åƒì¸ Ó#ƒ=DY#tÿDY#ÉÃU‰å‹E£DY#]ÍvU‰åƒì‹E‹U ‰Eø‰UüUø¹f‹BfÁè%ÿ=ÿu÷Bÿÿuƒ}øt¹‰ÈÉÉöU‰åSƒì‹E ‹]ÆPè‰âÿÿ‰ØƒÄ‹]üÉÍvU‰åVSƒì ÝEÝUð‹]‹uVSd$øÝ$èrÝ]èƒÄƒ=HY#ÿtWƒìVSèYÿÿÿƒÄ…ÀuFƒìÿuôÿuðèDÿÿÿƒÄ…Àu1Ùî‰]à‰uäÝEàÚéßà€äE€ô@uƒì jVSÿuôÿuðè4ƒÄ ëvÝEèeø[^]ÉöÝD$ ÝD$Ùø›ßàžzøÝÙͶ¼'U‰åVSƒì0ÝE‹]‹u‹EÝUà‰]è‰uìPÿú‡Èÿ$•°)#ÝØÇEغ¾4#ƒøc~ºÃ4#‰UÜÇEðÇEôƒ=HY#„}ƒì EØP誃ąÀ…uƒ=HY#…YƒìjhÉ4#éëvÝØÇEغÝ4#ƒøc~ºâ4#‰UÜÇEðÇEôƒ=HY#„ƒì EØPè>ƒÄ…À… ƒ=HY#…íƒìjhè4#év‰]à‰uäÝ]èÇEغü4#ƒøc~º5#‰UÜÇEðÇEôƒ=HY#„žƒì EØPè˃ąÀ…–ƒ=HY#…zƒìjh 5#é ÝØÇEغ5#ƒøc~º$5#‰U܃=HY#uÇEðàÇEôÿÿïGé¸ +¡<Y#‹@Y#‰Eð‰Uôé¡ +‰öÝØÇEغ²6#ƒøc~º¸6#‰U܃=HY#uÇEðàÇEôÿÿïGéh +¡<Y#‹@Y#‰Eð‰UôéQ +‰öÝØÇEغ+5#ƒøc~º/5#‰U܃=HY#uÇEðàÇEôÿÿïGé +¡<Y#‹@Y#‰Eð‰Uôé +‰öÝØÇEغ+5#ƒøc~º/5#‰UÜÇEðÇEôéÑ ‰öÝØÇEغ·/#ƒøc~º45#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„óƒì EØPè ƒÄ…À…ëƒ=HY#…σìjh85#éaÝØÇEغ·/#ƒøc~º45#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„gƒì EØP蔃ąÀ…_ƒ=HY#…Cƒìjh85#éÕ +ÝØÇEغx/#ƒøc~ºJ5#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„Û +ƒì EØPèƒÄ…À…Ó +ƒ=HY#…· +ƒìjhN5#éI +ÝØÇEغx/#ƒøc~ºJ5#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„O +ƒì EØPè| +ƒÄ…À…G +ƒ=HY#…+ +ƒìjhN5#é½ ÝØÇEغ`5#ƒøc~ºc5#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„à ƒì EØPèð ƒÄ…À…» ƒ=HY#…Ÿ ƒìjhg5#é1 ÝØÇEغ`5#ƒøc~ºc5#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„7 ƒì EØPèd ƒÄ…À…/ ƒ=HY#… ƒìjhg5#é¥ ÝØÇEغy5#ƒøc~º€5#‰U܃=HY#uÇEðàÇEôÿÿïGéP ¡<Y#‹@Y#‰Eð‰Uôé9 ‰öÝØÇEغy5#ƒøc~º€5#‰U܃=HY#uÇEðàÇEôÿÿïGë¡<Y#‹@Y#‰Eð‰Uôƒ=HY#„a ƒì EØPèŽ ƒÄ…À…Y ƒ=HY#…= ƒìjhˆ5#éÏ
+vÝØÇEغœ5#ƒøc~º 5#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„å ƒì EØPè ƒÄ…À…Ë
+ƒ=HY#…¯
+ƒìjh¥5#éA
+ÝØÇEغœ5#ƒøc~º 5#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„G
+ƒì EØPèt
+ƒÄ…À…?
+ƒ=HY#…#
+ƒìjh¶5#éµ ÝØÇEغÉ5#ƒøc~ºÏ5#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„Íƒì EØPèè ƒÄ…À…³ ƒ=HY#…— ƒìjhÖ5#é) ÝØÇEغÉ5#ƒøc~ºÏ5#‰U܃=HY#uÇEðàÇEôÿÿïÇë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„/ ƒì EØPè\ ƒÄ…À…' ƒ=HY#… ƒìjhé5#靐ÝØÇEغþ5#ƒøc~º6#‰UÜÇEðÇEôƒ=HY#… ƒì EØPèòƒÄ…À…½ƒìjh6#jèÞõÿÿèeõÿÿÇ!ƒÄ降vÇEغþ5#ƒøc~º6#‰U܃=HY#uvÇEðàÇEôÿÿïG‰]ЉuÔÝEÐÜ +h7#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…¯ƒìVSèjƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„‡ÇEðàÇEôÿÿïÇét¡<Y#‹@Y#‰Eð‰Uô‰]ЉuÔÝEÐÜ +h7#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…6ƒìVSèñƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„¡<Y#‹@Y#ò€‰Eð‰UôéòvÝØÇEغþ5#ƒøc~º6#‰UÜÇEðÇEôéÁ‰öÝØÇEغþ5#ƒøc~º6#‰U܃=HY#uÇEðÇEôë¡<Y#‹@Y#ò€‰Eð‰Uôƒ=HY#„ãƒì EØPèƒÄ…À…Ûƒ=HY#…¿ƒìjh6#éQÝØÇEغþ5#ƒøc~º6#‰U܃=HY#uÇEðÇEôëÇEðÇEôøƒ=HY#„`ƒì EØP荃ąÀ…Xƒ=HY#…<ƒìj h@7#éΉöÇEغ96#ƒøc~º>6#‰U܃=HY#u6ÙîÙÉÚéßàöÄEuÇEðàÇEôÿÿïGém‰öÇEðàÇEôÿÿïÇéX‹ +<Y#‹@Y#‰Mð‰]ôÙîÙÉÚéßàöÄE„4‰È‰Úò€‰Eð‰UôéÝØÇEغD6#ƒøc~ºI6#‰U܃=HY#uÇEðÇEôëÇEðÇEôøƒ=HY#„Lƒì EØPèyƒÄ…À…Dƒ=HY#…(ƒìjhO6#麉öÇEغc6#ƒøc~ºh6#‰U܃=HY#uÝ]ðëÝØÇEðÇEôøƒ=HY#„Òƒì EØPèÿƒÄ…À…ʃ=HY#…®ƒìjhn6#é@ÝØÇEغƒ6#ƒøc~º6#‰UÜÇEðÇEôøƒ=HY#„iƒì EØP薃ąÀ…aƒ=HY#…Eƒìjh˜6#é׍vÝØÇEغ±6#ƒøc~º·6#‰UÜÇEðÇEôøƒ=HY#„ýƒì EØPè*ƒÄ…À…õƒ=HY#…Ùƒìjh¾6#ékvÝØÇEغÓ6#ƒøc~ºÙ6#‰UÜÇEðÇEôøƒ=HY#„‘ƒì EØP较ąÀ…‰ƒ=HY#…mƒìjhà6#éÿvÇEغÓ6#ƒøc~ºÙ6#‰UÜÜ5p7#Ý]ðƒ=HY#„,ƒì EØPèYƒÄ…À…$ƒ=HY#…ƒìjhõ6#隉öÇEغ7#ƒøc~º7#‰U܋ +<Y#‹@Y#‰Mð‰]ôÙîÙÉÚéßàöÄEtC‰È‰Úò€‰Eð‰Uôë1‰öÇEغ7#ƒøc~º7#‰U܍d$øÝ$jjè›Ý]ðƒÄƒ=HY#…jé|vÝØÇEغ7#ƒøcŽ•º7#鋍vÝØÇEغ·/#ƒøc~uº45#ën‰öÝØÇEغ+7#ƒøc~Yº.7#ëR‰öÝØÇEغx/#ƒøc~=ºJ5#ë6‰öÝØÇEغ27#ƒøc~!º57#ë‰öÝØÇEغ`5#ƒøc~ºc5#‰UÜÇEðÇEôƒ=HY#„¯ƒì EØPèʃąÀ…•ƒ=HY#…‹ƒìjÿuÜjè«îÿÿƒÄ jh7#jèšîÿÿƒÄëfÝØÇEغz5#ƒøc~º5#‰U܃=HY#uÇEðàÇEôÿÿïGë¡<Y#‹@Y#‰Eð‰Uôƒ=HY#tƒì EØPè2ƒÄ…À…ýè¶íÿÿÇ"éívÝØÇEغz5#ƒøc~º5#‰U܃=HY#uÇEðàÇEôÿÿïGë¡<Y#‹@Y#‰Eð‰Uôƒ=HY#„‰ƒì EØP趃Ä…À…ƒ=HY#uiƒìjh‰5#jè™íÿÿƒÄëSÇEغþ5#ƒøc~º6#‰UÜÝ]ðƒ=HY#ÿt ƒ=HY#uÇEðÇEôð?ë$‰öƒì EØPè@ƒÄ…ÀuèÈìÿÿÇ!ëÝØÝEðeø[^]ËT$â€‹D$%ÿÿÿ ЉD$ÝD$ÉöU‰å¸]ÉöÝD$ÙüÉö¼'U‰åWVSƒì ‹E ‰EðEƒEðƒeðøƒàø‰Eì‹Eð9EìsƒìjUhx7#h‚7#è˜ ƒÄ‹Eð9Eì„Ä‹E‹…Û„·‹C;C rƒìj`hx7#h7#è` ƒÄöCtƒìjahx7#hÀ7#èC ƒÄöC tƒìjbhx7#h8#è& ƒÄ‹Eì;CvL‹Eð;C sD‰Æ‹}ì;ss‹s;{ v‹{ 9÷wƒìjnhx7#h¡7#èæ ƒÄƒì‰ø)ðPVÿu蚃ċ…Û…Iÿÿÿeô[^_]ÐU‰åWVSƒì ‹u ‹E‹}‰ÂUƒÀƒàøƒâø9†ŒÇF‰F‰V ‹E‰F‰~ÇF‹MëF‰ö9óuƒìjlh08#h;8#èX ƒÄ‹F ;Cv‹F;C sƒìjmh08#h`8#è1 ƒÄ‰Ù‹…Ût9{±9{u‹S +S‹F +F9Âwœ‰‰1eô[^_]ÃU‰åWVSƒì ‹]‹} …ÛuƒìjLh8#h•8#èÙ
+ƒÄ…ÿuƒìjMh8#hž8#è¾
+ƒÄƒÇƒçø‹3…ö„rvƒ~uƒ~t‹F;FsƒìjUh8#hà8#è€
+ƒÄƒ~t‹F;F rƒìjUh8#h@9#è[
+ƒÄ‹F +F9FvƒìjUh8#h€9#è9
+ƒÄ‹F÷ЅE…åF‰Eð‹^…Û„ԍv÷Ãtƒìj^h8#hÀ9#èø ƒÄöCtƒìj_h8#h:#èÛ ƒÄƒ;t9wƒìj`h8#h@:#è» ƒÄ;^ rƒìjah8#h¶8#èŸ ƒÄ9{rGv‹‰‹C)ø‰B‹Eð‰ë
+v‹‹Uð‰9~sƒìjwh8#hÍ8#è\ ƒÄ)~‰Øë‰ö‰]ð‹…Û…/ÿÿÿ‹6…ö…‘þÿÿ¸eô[^_]ÃU‰åƒì jÿjÿuÿuÿuÿu ÿuèƒÄ ÉÐU‰åWVSƒì‹]‹EE ‰Eð…ÛuƒìjThi:#h•8#èۃă} uƒìjUhi:#hž8#较ċ;…ÿ„lƒuƒt‹G;Gsƒìj[hi:#hà8#舃ăt‹G;G rƒìj[hi:#h@9#ècƒÄ‹G +G9Gvƒìj[hi:#h€9#èAƒÄ‹G÷ЅE…á‹Uð9WƒÕ‹M9O †ÉG‰Eì‹_…Û„¸v÷Ãtƒìjkhi:#hÀ9#èèƒÄöCtƒìjlhi:#h:#è˃ă;t9wƒìjmhi:#h@:#諃Ä;_ rƒìjnhi:#h¶8#菃ċU 9S‚$‰Þ;]s‹u¹;M}ºÓâ‹E1ð…ÂtÖA;M|è‰ð)ØE ;C‡è‹M 1;Eð‡æ‰ðƒàø‰Eè9Øsƒìh‘hi:#ht:#èƒÄ9]èvC‹Uè)ډUä÷Âtƒìh–hi:#h :#èãƒÄ‹‹M艋C+Eä‰A‹Eä‰C‰]ì‰ðƒà‹U Tƒâø‰U ‹Mè9Qv‰ÊU ‹‰‹A+E ‰B‹Eì‰ë
+‹Uè‹‹M쉋E 9Gsƒìh´hi:#hÍ8#èkƒÄ‹U )W‰ðë‰ö‰]ì‹…Û…Kþÿÿ‹?…ÿ…•ýÿÿ¸eô[^_]ÃU‰åƒì jÿjjj ÿu hÿuèýÿÿƒÄ ÉÐU‰åWVSƒì‹]ShÒ:#èeÌÿÿ‹3ƒÄ…ö„ƒìÿvÿvÿv‹F +FPÿv ÿvh`;#è5ÌÿÿƒÄ ƒ~uƒ~t‹F;Fsƒìjahä:#hà8#袃ă~t‹F;F rƒìjahä:#h@9#è}ƒÄ‹F +F9Fvƒìjahä:#h€9#è[ƒÄ¿‹^…Û„¾ƒì ÿ3ÿs‰ØCPSh ;#è—ËÿÿƒÄ ÷Ãtƒìjihä:#hÀ9#èƒÄöCtƒìjjhä:#hà;#èóƒÄƒ{wƒìjkhä:#hë:#èփă;t9wƒìjlhä:#h@:#趃Ä;^ rƒìjmhä:#h¶8#蚃Ä{‹…Û…BÿÿÿƒìWh;#èäÊÿÿƒÄ9~tƒìjshä:#h;#è`ƒÄ‹6…ö…cþÿÿƒì h2;#è®ÊÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u‹] ‰ßƒçø…öuƒìjNh{7#h•8#è ƒÄ…ÛuƒìjOh{7#h<#èñƒÄƒ}uƒìjPh{7#hž8#èԃĉ؃à‹UTƒâø‰U‹ëv‹…ÛuƒìjXh{7#h<#螃ă{uƒ{t‹C;CsƒìjYh{7#hà8#èsƒÄƒ{t‹C;C rƒìjYh{7#h@9#èNƒÄ‹C +C9CvƒìjYh{7#h€9#è,ƒÄ;{‚hÿÿÿ;{ ƒ_ÿÿÿ‹EC‹C +C9Cvƒìjbh{7#h€9#èòƒÄÇEð‹sëv‰uð‹6…öt9þróƒ}ðtm‹Eð@9ørc9øtƒìjnh{7#h@<#諃ąöt8‹U:9ðr.9ðtƒìjuh{7#h€<#肃ċEF‹UðB‹‰ëE‹E‹UðBë9ƒ}ðt
+‹Eð‰8ëv‰{…öt‹U:9ðr‰ÐF‰G‹‰ë ‹E‰G‰7eô[^_]ÃU‰åƒì hÿu ÿuèÒýÿÿƒÄÉÐU‰å‹EÇ]ÉöU‰åWVSƒì ÇEèÇEìÇEð‹E‹0…ö„Zƒ~uƒ~t‹F;Fsƒìj]h¦<#hà8#蠃ă~t‹F;F rƒìj]h¦<#h@9#è{ƒÄ‹F +F9Fvƒìj]h¦<#h€9#èYƒÄÿEð¿‹^…Û„¨v÷Ãtƒìjdh¦<#hÀ9#è$ƒÄöCtƒìjeh¦<#hà;#èƒÄƒ{wƒìjfh¦<#hë:#èêƒÄƒ;t9wƒìjgh¦<#h@:#èʃÄ;^ rƒìjhh¦<#h¶8#讃ÄÿEì{‹…Û…[ÿÿÿ9~tƒìjnh¦<#h;#肃Ä‹FEè‹6…ö…§þÿÿƒì ÿuìÿuðÿuèÿuhÀ<#è¾ÆÿÿƒÄ eô[^_]ÍvU‰åVS‹u‹] EƒìPÿuhÀÓ#è…ÈÿÿƒÄhÀÓ#ÿ5Ü#jSVh@=#è5ƒÄ eø[^]ÍvU‰åƒìÿ5ìÛ#jÿuÿu ÿuh=#èƒÄ ÉÉöU‰åƒì E PÿuhÀ×#èÈÿÿƒÄ jjhx #èì%ÿÿƒÄhÀ×#h£=#èŠÅÿÿÇ$MèFÿÿƒÄÉÐU‰åƒìhÀ×#h€=#ècÅÿÿƒÄÉÉöU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)лÄÜ#‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»ÈÜ#‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰ÅÝ#ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰ÅÝ#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆÈÜ#‰¸ÌÜ#ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹˜ß#‰U苀œß#‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;՘ß#|[‰Eäv1‰ÐÁà)ЍÅ;š˜ß#u ‹Eì;‚œß#|1‰Ï‰ÐÁà)Ћ ÅÝ#ƒùÿt4 1‰ÐÁà)Ћ]ä;Řß#}«ƒÿÿt‰ÐÁà)ЋU‰ÅÝ#ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰ÅÝ#ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆÈÜ#‰¸ÌÜ#ƒÄ[^_]ÍvU‰å‹EÇÿÿÿÿÇ@ÿÿÿÿ]ÍvU‰åWVS‹uv‰ÐÁà)ЍÅP‹˜ÌÜ#¿ÈÜ#‹ 8ƒûÿt[‰ÐÁà)ЉLÇPëv‹E ‰ƒùÿt&I‰ÁÁá)Á»ÌÜ#v‰ÐÁà)ЋDÃP‰DËPë v‹E ‰X[^_]ÐU‰åS‹M‹‰Øƒûÿt=‹@‰ÂÁâ)‹ÕÝ#‰ƒøÿt@‰ÐÁà)ÐÇÅÝ#ÿÿÿÿë
+vÇAÿÿÿÿ‰Ø‹$ÉÉöU‰åS‹M‹] ƒ;ÿt)I‰ÐÁà)Ћ‰ÅÝ#‹@‰ÂÁâ)‰ ÕÝ#됉KI‰ÐÁà)ÐÇÅÝ#ÿÿÿÿI‰ÐÁà)ÐÇÅÝ#ÿÿÿÿ‰ ‹$ÉÃU‰åS‹M‹] ƒ{ÿt,I‰ÐÁà)ЋS‰ÅÝ#‹C@‰ÂÁâ)‰ ÕÝ#ë‰ö‰ I‰ÐÁà)ÐÇÅÝ#ÿÿÿÿI‰ÐÁà)ÐÇÅÝ#ÿÿÿÿ‰K‹$ÉÃU‰å‹E‹]ÉöU‰å‹E‹@]ÐU‰å·Eƒøt ƒø…Àtë-ƒøtƒøtë ¸Á=#됸Æ=#됸Ê=#됸Ð=#됸‘.#]ÐU‰åWVSƒìœúX‰Â‰Uä÷Et$ƒìEèPjèL—ÿÿƒÄ ÿuìÿuèhà=#èeÁÿÿƒÄ÷EtN¾;5ðÛ#sA¿ Ü#vƒì µ‹;¶BP·BPRVh >#è!ÁÿÿƒÄ‹;VÿP ƒÄF;5ðÛ#rÇ÷Etƒì hû=#èõÀÿÿèX&ÿÿƒÄ‹Uä‰ÐPeô[^_]Éö(é"ðë"ðë"ðë"ðë"ðë"\ë"ðë"hë"të"ðë"€ë"€ë"€ë"€ë"€ë"€ë"€ë"€ë"€ë"€ë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"ðë"4é"Hé"´ê"tê"ôê"Pë"Hé"ðë"ðë"Dë"ðë"Pë"ðë",ê"ðë"ðë"Lê"ðë"”é"ðë"ðë"àé"Ôì"´î"´î"´î"´î"´î",î"´î"8î"@î"´î"Pî"Pî"Pî"Pî"Pî"Pî"Pî"Pî"Pî"Pî"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"´î"àì"ôì"´î"´î"´î" î"ôì"´î"´î"î"´î" î"´î"´î"´î"´î"ìí"´î"Dí"´î"´î"ˆí"Àñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"ï"ï"ï"ï"ï"ï"ï"ï"ï"ï"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Ìñ"Àï"Dð"@ñ"@ñ"@ñ"´ñ"Dð"Ìñ"Ìñ"¨ñ"Ìñ"´ñ"Ìñ"Ìñ"Ìñ"Ìñ"Øï"Ìñ"´ð"Ìñ"Ìñ"Ðð"$@$@$##ü#l#¼# #\#Œ##¤#0#¼#H#Ô#$#¬#8#Ä#P #Ü #P
+#l #œ #( #¬ #< +#À +#8#¤##|#à#,#p#”#°#Ì#è##„#ü#„#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#ä#$##ü#l#¼# #\#Œ##¤#0#¼#H#Ô#$#¬#8#Ä#P #Ü #P
+#l #œ #( #¬ #< +#À +#8#¤##|#à#,#p#”#°#Ì#è##„#ü#„#SIGNAL HANDLER: pid=%d
+main: ending...
+main: alarm(5), waiting t=2 sec
+main: alarm(3) return %d, waiting t=6 sec
+Error during Keyboard Initialization!!!Ctrl-C pressed!
+KeybPortKeyTasktask_create
+scheduletime %lus %luns * caplasttime %lus %luns * exec=%d TIME = %lu
+The system tick must be less than 55 mSec!Abort detected
+Code : %u
+Too many scheduling levels!!!
+Too many resource levels!!!
+debug info noticewarn err crit alert emerg <%i>[%s] %sPosix task
+Signal number %d...
+with value : %d
+POSIX_ReadyPOSIX_DelayPOSIX_UnknownSlice: %d
+MainPOSIX_register_level
+ alloco descrittore %d %d
+ lev=%d
+POSIX schedulerPid: %d Name: %20s Prio: %3ld Status: %s
+
+Panic!!! can't create main task...
+dummy PID: %d
+Dummy1Dummy2Dummy3Dummy4Dummy5Dummy6Dummy7Dummy8Dummy9Dummy0DummyaDummybDummycDummydDummyeDummyfDummygDummyhDummyDummy (RR) Posto dummy_create
+
+Panic!!! can't create dummy task...
+Entro in dummy_register_level
+Port des :
+Free port des : %d
+%d %s vt: %d pn: %d
+%d pd: %d vt: %d pn: %d Resources owned by the tasks:
+%-4dPI_register_module
+PI module
+PC priority of the tasks:
+%-4ldPC_register_module
+PC moduleTR %x
+SS:SP %x:%lx
+Stack0 : %x:%lx
+Stack1 : %x:%lx
+Stack2 : %x:%lx
+CS : %x DS : %x
+Descriptor [%x] InfoNo more Descriptors...
+%x (Hex)Base : %lx Lim : %lx Acc : %x Gran %x
+2Coprocessor error#Page fault*General protection fault*Stack exception*Segment not present*Unvalid TSS#INTEL reserved*Double defect1FPU context switch*Unvalid opcode#BOUND limit exceeded#Overflow detected on INTO#Breakpoint trap#NMI detected#Debug fault#Division by 0Exception %d occurred
+ABORT %d !!!LL Time Panic!!!
+time.cError! File:%s Line:%d %sOne-shot timer selected...
+Periodic timer selected...
+Unhandled Exc or Int occured!!!
+32/LINUX CrossCompiled/ELFHalt called1234567890-+12345678901234567890xabcdefABCDEF1234567890.e+-0123456789ABCDEF$@ +Æ@,ú1°<NaN+Inf-Infacosacosfacos: DOMAIN error
+asinasinfasin: DOMAIN error
+atan2atan2fatan2: DOMAIN error
+hypothypotfexpexpfy0fy0: DOMAIN error
+y1fy1: DOMAIN error
+ynynfyn: DOMAIN error
+lgammalgammaflgamma: SING error
+loglogflog: SING error
+log: DOMAIN error
+log10log10flog10: SING error
+log10: DOMAIN error
+powpowfpow(0,0): DOMAIN error
+pow(0,neg): DOMAIN error
+sinhsinhfsqrtsqrtfsqrt: DOMAIN error
+fmodfmodffmod: DOMAIN error
+remainderremainderfremainder: DOMAIN error
+acoshacoshfacosh: DOMAIN error
+atanhatanhfatanh: DOMAIN error
+atanh: SING error
+scalbscalbfj0j0f: TLOSS error
+j1j1fjnjnfneg**non-integral: DOMAIN error
+à?addfree.cmax >= minreg->min < reg->maxnew_max > new_min(reg->min & (sizeof(struct lmm_node) - 1)) == 0(reg->max & (sizeof(struct lmm_node) - 1)) == 0addregio.cr != reg(reg->max <= r->min) || (reg->min >= r->max)alloc.clmm != 0size > 0reg->free >= 0(DWORD)node < reg->maxreg->free >= size(reg->nodes == 0 && reg->free == 0) || (DWORD)reg->nodes >= reg->minreg->nodes == 0 || (DWORD)reg->nodes < reg->maxreg->free <= reg->max - reg->min((DWORD)node & (sizeof(struct lmm_node) - 1)) == 0((DWORD)node->size & (sizeof(struct lmm_node) - 1)) == 0(node->next == 0) || (node->next > node)alloc_ge.canode >= node(split_size & (sizeof(struct lmm_node) - 1)) == 0lmm_dump(lmm=%p)
+dump.cnode->size >= sizeof(*node) free_check=%08lx
+reg->free == free_checklmm_dump done
+ region %08lx-%08lx size=%08lx flags=%08lx pri=%d free=%08lx
+ node %p-%08lx size=%08lx next=%p
+(node->size & (sizeof(struct lmm_node) - 1)) == 0block != 0reg != 0(DWORD)prevnode + prevnode->size == (DWORD)node(DWORD)node + size == (DWORD)nextnodestats.cLMM=%p: %u bytes in %u regions, %d nodes
+assertion %s failed in %s at line %i (task:%i_%i)
+MAGIC assertion failed in %s at line %i (task:%i_%i): %s
+KERNEL PANIC (sys_panic_stub): %s
+KERNEL PANIC (sys_panic): %s
+FreeExeSleepWaiting on joinTime (EXACT) : %lus %luns
+< Memory Dump >
+< Level %d : %s Code: %d Version: %d >
+8Œÿÿ’ÏÿÿšÏÿHN#ÿ`Y#ÿÿÿÿÿÿÿÿÿÿÿÿ1234567890!@#$%^&*()-_=+[{]};:'"`~/?,<.>\|   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ 1234567890!"œ$%&/()='?^Š‚+*•‡…ø\|<_,:.;—õ   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ[]@#hV#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-.#&.#.#.#.#
+.#.#ü-#hy"py"py"S3#F3#83#'3# 3#ö2#æ2#Ò2#Ã2#³2#¦2#‘2#€2#f2#Z2#³2#G2#þþAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAš‡4#ðÿÿÿÿGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.text.rodata.data.sbss.bss.comment.note"€%! %# &¨ )HN#È> /LY#àI5`Y#àI8ã :àILC,[h”aI
\ No newline at end of file
/pse51/ptest5
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: pse51/ptest6
===================================================================
--- pse51/ptest6 (.../tags/rel_0_3) (nonexistent)
+++ pse51/ptest6 (.../branches/pj) (revision 1085)
@@ -0,0 +1,527 @@
+ELF"4(4 ( €""H[H[ È[Hk#Hk# ðõ 덶°­üORäe‹Ká€uU¿€ Ç–eÆG1GeÆGGeÆG2GeÆG¸”#fe£hk#Áèfe£nk#Hs#¿€ Ç’eÆG0GeÆGf¸0ŽØŽÀŽÐŽàŽè¼`ž#ÇÐÛ%`~#ÇÔÛ%`ž#£Ts#‰Xs#Hs#êµ"8Ns#üè¢íê U‰å‹Eê ‰öU‰åSìŒÿuh€D#èAE„Pjd]ˆSÿ5L$èœ]ƒÄ Sÿu„PhÀD#èƒÄh,$ÿ5L$è_aƒÄ…Àtƒì謃Äÿ0h E#èéèÀAƒÄƒì h…H#èԃĐƒì jèòAƒÄ=?Bvìƒì h@E#è¯jj +hH#ÿ5L$è;XƒÄ …Àtƒìè@ƒÄÿ0hªH#è}èTAƒÄjhø"jhH$èêcjhä"jh$$è×cƒÄhÈH#èBƒÄ‹]üÉÉöU‰åSìh×H#è$E„Pjd]ˆSÿ5L$è\ƒÄ Sÿu„Ph E#èýÿÇ$ñH#èñÿƒÄ‰öƒì jèAƒÄ=_ãvìƒì hàE#èËÿjjh I#ÿ5L$èWWƒÄ …Àtƒìè\ƒÄÿ0h F#è™ÿèp@ƒÄƒì hI#è„ÿjjhI#ÿ5L$èWƒÄ …ÀtƒìèƒÄÿ0h@F#èRÿè)@ƒÄƒì hI#è=ÿjjhI#ÿ5L$èÉVƒÄ …Àtƒìè΃Äÿ0h`F#è ÿèâ?ƒÄƒì hI#èöþjj h I#ÿ5L$è‚VƒÄ …Àtƒì臃Äÿ0h€F#èÄþè›?ƒÄƒì hI#è¯þjjh,I#ÿ5L$è;VƒÄ …Àtƒìè@ƒÄÿ0h F#è}þèT?ƒÄƒì hI#èhþÇ$;I#è\þ¸ƒÄ‹]üÉÍvU‰åVSìœhJI#è7þƒÄƒì jèV?ƒÄ=¿‘!v썅tÿÿÿPjd]ˆSÿ5L$èxZSÿµtÿÿÿPhG#èöýƒÄ vƒì jè?ƒÄ=ÿž$v썅tÿÿÿPjd]ˆSÿ5L$è4ZSÿµtÿÿÿPhG#è²ýƒÄ vƒì jèÎ>ƒÄ=?¬'v썅tÿÿÿPjd]ˆSÿ5L$èðYSÿµtÿÿÿPhG#ènýƒÄ vƒì jèŠ>ƒÄ=¹*v썅tÿÿÿPjd]ˆSÿ5L$è¬YSÿµtÿÿÿPhG#è*ýƒÄ vƒì jèF>ƒÄ=¿Æ-v썅tÿÿÿPjduˆVÿ5L$èhYVÿµtÿÿÿPhG#èæüDžxÿÿÿè"Dž|ÿÿÿƒÄjè8@‰Ã‹‰E€…xÿÿÿ‰…tÿÿÿPjdVÿ5L$èYƒÄ VÿµtÿÿÿPhG#èü‹E€‰ƒÄ¸eø[^]ÍvU‰åSƒì<ÆEÉxÆEÊ-ÆEÈh@"ƒì‹EÈf‰$ÆD$-è˜ÇEô"ÇEð]èEì‰$輁ƒÄ jSjè§lÇ,$Ç0$Ç4$+ÇT$Ç\$ Ç`$Ø"Çd$$ƒÄÇ$Ç $Ç$Ç$Ç $Ç$ÇD$
+Ç$
+ÇEØÇEÜÇEàdEØPjjBhpI#è»K£L$ƒÄƒøÿuƒìèƒÄÿ0h€G#錍vƒìhT$ÿ5L$è[ƒÄ…Àtƒìè΃Äÿ0h G#ë[‰öƒì hàG#èÿújh"jhP$èt^ƒÄh H#èßúƒÄƒì jèþ;ƒÄ=ßg5vìƒì ÿ5$$èö_Ç$sI#è®ú¸ƒÄ‹]üÉÐU‰åƒìh`D#èújj hLH#ÿ5L$èRƒÄ …Àtƒìè!ƒÄÿ0hXH#ë ƒì hvH#èSú¸ƒÄÉÐU‰åƒìhÀF#è8úƒÄÉÍvU‰åSƒì‹] jèK;ƒÄPÿs ÿs¸dI#ƒ{t¸jI#Pÿ3h@G#èøùƒÄ ‹]üÉÃU‰åƒìèÁ:ÉÍvU‰åƒìj ÿujh'èý”è°žè7ÂèfÈèá®ƒÄ jjjèÃ^螌¸èƒÄÉÃU‰åWVSƒìX‹]}¨¾\s#ü¹ó¥E¸‰E¨fÇE¸ÇE¼ÇEÀfÇEÄÇEÐÇEÔÇEÜÇEà‰]ÈÇEØÇEÌjèü]‰EÐÇEÜÇEàƒMÌ
+膲E¨‰$ècƒÄ…Àyƒì h I#èkùƒÄƒì SèoE¸ƒÄeô[^_]ÍvU‰åƒìŠU€=lt#„¶€ú*t€úªt
+€ú6t€ú¶uÆlt#¸é›„Òy,Ælt#€ú¸uÆxt#Ænt#ëՀúuÐÆxt#ëljöÆlt#€ú8u€ +xt#Ænt#멀úu € +xt#뛉ö€ú5uf¾Ÿ#·Àé)v€ú…•f¾üž#·Àé +v€úàuÆlt#éTÿÿÿv€ú*t€ú6u2Æmt#€ú*u€ +xt#é/ÿÿÿ‰ö€ú6…$ÿÿÿ€ +xt# éÿÿÿv€úªt€ú¶u"Æmt#€úªt €ú¶…öþÿÿÆxt#éêþÿÿ€úFu€=qt#•qt#ë.v€ú:u€=ot#•ot#ëv€úEu;€=pt#•pt#ƒì¶qt#P¶ot#P¶pt#Pèõ¸ƒÄé€úu€ +xt#éhþÿÿv€ú8u€ +xt#éTþÿÿv€út€ú¸uÆxt#é;þÿÿ‰ö¸„҈рúRt2€úOt-€úSt(€úPt#€úQt€úKt€úLt€úMt€úGt
+€úHt€úIu€=pt#uT€=mt#uK·Â +ÿë~€=ot#t/Bð< vBâ<vBÔ<w€=mt#t¶Âf¾€àž#·ÀëG€=mt#t¶Âf¾€€Ÿ#·Àë-v€=nt#t¶Âf¾€  #·Àëv¶Âf¾€àž#·ÀÉÃU‰åWVSƒì,}؃ìjE×PèòƒÄ…À„¡ƒì ¶E×Pèöüÿÿ‰ÂƒÄf…Ò„†÷Âÿt  xt#ƒÈ@ë‰ö xt#ˆE؈UيE׈EÚ±»;؞#}8¾`ž#v݊D2:EÚuŠ2:EØuƒì Wÿ’dž#±ƒÄC;؞#|ЄÉuƒìjW¿¢ #Pè­·ƒÄè-é<ÿÿÿU‰å‹E£ht#Šˆâž#ŠPˆãž#ŠPˆäž#ŠPˆåž#ŠPˆæž#ŠPˆçž#ŠPˆèž#ŠPˆéž#ŠPˆêž#ŠP ˆëž#ŠP
+ˆ‚Ÿ#ŠP ˆƒŸ#ŠP ˆ„Ÿ#ŠP +ˆ…Ÿ#ŠPˆ†Ÿ#ŠPˆ‡Ÿ#ŠPˆˆŸ#ŠPˆ‰Ÿ#ŠPˆŠŸ#ŠPˆ‹Ÿ#ŠPˆìž#ŠPˆŒŸ#ŠPˆíž#ŠPˆŸ#ŠPˆúž#ŠPˆšŸ#ŠPˆûž#ŠPˆ›Ÿ#ŠPˆŸ#ŠPˆ§Ÿ#ŠPˆŸ#ŠPˆ¨Ÿ#ŠP ˆ Ÿ#ŠP!ˆ©Ÿ#ŠP"ˆŸ#ŠP#ˆµŸ#ŠP$ˆŸ#ŠP%ˆ³Ÿ#ŠP&ˆŸ#ŠP'ˆ´Ÿ#ŠP(ˆ Ÿ#ŠP)ˆ«Ÿ#ŠP*ˆŸ#ŠP+ˆ¹Ÿ#ŠP,ˆîž#ŠP-ˆŽŸ#ŠP.ˆïž#ŠÖˆŸ#ŠP0ˆáž#ŠP1ˆŸ#ŠP2ˆüž#ŠP3ˆœŸ#ŠP4ˆäŸ#ŠP5ˆϟ#ŠP6ˆП#ŠP7ˆџ#ŠP8ˆ˟#ŠP9ˆ̟#ŠP:ˆ͟#ŠP;ˆǟ#ŠP<ˆȟ#ŠP=ˆɟ#ŠP>ˆҟ#ŠP?ˆӟ#ŠP@ˆ.Ÿ#ŠPAˆŸ#ŠPBˆŸ#ŠPCˆ*Ÿ#ŠPDˆΟ#ŠPEˆ·Ÿ#ŠPFˆʟ#ŠPGˆþž#ŠPHˆžŸ#ŠPIˆŸ#ŠPJˆ°Ÿ#ŠPKˆŸ#ŠPLˆ®Ÿ#ŠPMˆŸ#ŠPNˆ Ÿ#ŠPOˆòž#ŠPPˆ’Ÿ#ŠPQˆŸ#ŠPRˆ¡Ÿ#ŠPSˆŸ#ŠPTˆ¢Ÿ#ŠPUˆŸ#ŠPVˆ£Ÿ#ŠPWˆ÷ž#ŠPXˆ—Ÿ#ŠPYˆŸ#ŠPZˆ¤Ÿ#ŠP[ˆŸ#ŠPRˆ¥Ÿ#ŠP]ˆŸ#ŠP^ˆ¦Ÿ#ŠP_ˆŸ#ŠP`ˆ²Ÿ#ŠPaˆŸ#ŠPbˆ±Ÿ#ŠPcˆøž#ŠPdˆ˜Ÿ#ŠPeˆùž#ŠPfˆ™Ÿ#ŠPgˆðž#ŠPhˆŸ#ŠPiˆóž#ŠPjˆ“Ÿ#ŠPkˆÿž#ŠPlˆŸŸ#ŠPmˆôž#ŠPnˆ”Ÿ#ŠPoˆöž#ŠPpˆ–Ÿ#ŠPqˆŸ#ŠPrˆ¯Ÿ#ŠPsˆñž#ŠPtˆ‘Ÿ#ŠPuˆ +Ÿ#ŠPvˆ­Ÿ#ŠPwˆõž#ŠPxˆ•Ÿ#ŠPyˆ Ÿ#ŠPzˆ¬Ÿ#ŠP{ˆ: #ŠP|ˆ; #ŠP}ˆG #Š@~¢H #]ÍvU‰åWVSƒì\‹]}ؾ€t#ü¹󥿸ƒ=tt#…Qº¾àž#¹€Ÿ#‰ö·ÂÆ0ÆBfúví…Ûu]؃{ÿuÇChs#ƒì ÿsèûÿÿÇ$jjjhÙI#èªf£¢ #ƒÄ fƒøÿu ¸þÿÿÿéÞ‰öjjjhÙI#èà­f£¤ #ƒÄfƒøÿuƒì ¿¢ #PèE±¸ýÿÿÿ頍vÇ؞#ƒ{ÿuÇC0"ƒ{tIÆE™cÆEš.ÆE˜ƒìÿsƒì‹E˜f‰$ÆD$.èÅÆE˜ƒÄÿsƒì‹E˜f‰$ŠEšˆD$襃ă;ÿuQfÇE¨ÇE¬ÇE°fÇE´ÇE¸ÇEÐÇEÈÐÇEÄ ÇEÀ¨aÇE¼
+ÇE̍E¨ë‹ƒì jjPh8 "hâI#èÿ‰ÃƒÄ ‰¨ #ƒøÿu'ƒì ¿¢ #PèC°¿¤ #‰$è4°‰Ø钐ƒ=|t#uWƒì ÿ5¨ #艉ǃąÿt4ƒì ¿¢ #Pèü¯¿¤ #‰$èí¯ƒÄÿ5¨ #èg5¸üÿÿÿë=Ç|t#ëèƒì¶qt#P¶ot#P¶pt#PèûÇtt#‰øƒÄeô[^_]ÃU‰åƒì¶EPEèP¿¤ #PèృÄ„Àt÷Eè@u¶Eéë‰ö¸ÉÐU‰åƒì ¶E Pÿu¿¤ #P襱·ÀƒÄÉÐU‰åSƒ=؞#0‹ +؞#Í»`ž#‹Ef‰ŠE
+ˆD‹E ‰‚dž#A‰ +؞#‹$ÉÉöU‰åƒìèÉÍvU‰åƒìè±ÉÍvU‰åƒì¸ÿÿÿÿƒ=tt#t9蓃ì ÿ5¨ #è-4¿¢ #‰$薮¿¤ #‰$臮¸ƒÄÉÐU‰åƒìjèêÇ$èÛéÇ$ÈI#è£éè²-ƒÄÉÐU‰åWVSƒìŠEˆEó¿1¾d»`‰ö¹v‰òì©t"‰ÈA=þÿÿvì¸ÿÿÿÿ…Àu‰ÚŠEóî¸ë‰ö¸ë搸ÿÿÿÿÇEì¹d…Àt¸ÿÿÿÿët¸ë‰Êì©uî‹EìÿEì=þÿÿvé¸ÿÿÿÿ…Àu‰Úì¶Àë¸ÿÿÿÿƒøÿu
+¸þÿÿÿë3v=úu ¸ë"‰ö=þt ¸ýÿÿÿë‰ö‰øO…À9ÿÿÿ¸üÿÿÿƒÄ[^_]ÃU‰åVSƒìŠEˆE÷³Ô¾¹d‰ö‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë搸ÿÿÿÿ…Àt¸ÿÿÿÿëL¸ë&»¹d‰ö‰Êì©tâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuº`ŠE÷î¸ëv¸ÿÿÿÿ…Àt¸ÿÿÿÿëj¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àuºdì© tº`ì¶Ðëvºÿÿÿÿ‰Ð…Òx¸úú”ÀDþƒÄ[^]ÃU‰åWVSƒì »¾`‰ØK…À~^ƒì hÿè¼ýÿÿ‰ÂƒÄ…Òu{¿¹d‰Êì©u‰øG=þÿÿvì¸ÿÿÿÿ…Àu‰òì¶Ðëv¸ëꐺÿÿÿÿúªu›¸üÿÿÿúª…ƃì hõèMýÿÿ‰ÂƒÄ…Òt(¸ûÿÿÿ馉ö¸ýÿÿÿ隉ö¸ë.¸ëZ³`¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³e¾¹dv‰Êì©t®‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîƒì hôèªüÿÿ‰ÂƒÄ¸…Ò•ÀHƒàƒèeô[^_]ÃU‰åWVSƒì ¾»d¹`‰Úì©t +‰Êì‰ðF=þÿvé³­¾¹d‰Êì©„‚‰ðF=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¾»d¹`‰Úì©t +‰Êì‰ðF=þÿv鳪¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸놐¸ÿÿÿÿ…Àt¸÷ÿÿÿéݐ¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿƒøUt¸ÿÿÿÿ錸ë&³«¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸öÿÿÿé9¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸þÿÿÿé鐸ë&³®¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…À…<èzüÿÿ…À…Žƒì hóèIúÿÿƒÄ…Àt
+¸ùÿÿÿépƒì jè.úÿÿƒÄ…Àt¸øÿÿÿéU¸ë.ÆŒt#³©¾¹d‰Êì©tډðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ôÿÿÿéù¸ë&»¹d‰ö‰Êì©uâ‰ØC=þÿÿvì¸ÿÿÿÿ…Àu º`ì¶Àë¸ÿÿÿÿ…Àt¸óÿÿÿ驐¸ë&³¨¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸õÿÿÿéU¸ë&³Ó¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸ðÿÿÿ鐸ë&³Z¾¹d‰Êì©tâ‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë¸ÿÿÿÿ…Àt¸ïÿÿÿ魐ƌt#ëBv¸ë^¹þÿ¾d»`‰òì¶ø÷Çt‰Úì¶À÷Ç tƒøZt»IƒùÿuÙ³§¾¹d‰Êì©tª‰ðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àté»þÿÿ‰ö¸ë:€=Œt#„þÆŒt#³¨¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt¸îÿÿÿ鱐¸ëvƒì hóèWøÿÿ‰ÃÇ$dèIøÿÿÃÇ$èè;øÿÿÃÇ$è-øÿÿÃÇ$çèøÿÿþ§ƒÄ¿¹dv‰Êì©t’‰øG=þÿÿvì¸ÿÿÿÿ…Àuºd‰ðî¸ë¸ÿÿÿÿ…Àt¸íÿÿÿë…ÛuÆŒt#¸eô[^_]ÃU‰åVS¡ t#…Àt¡ t#H£ t#¸é²¸ë6ƒ=˜t#uKŠœt#¾¹dv‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿ˜t#뤍v¸ë:ƒ=˜t#uGǘt#³ô¾¹d‰Êì©tΉðF=þÿÿvì¸ÿÿÿÿ…À…Xÿÿÿº`ˆØîéKÿÿÿ‰ö¸[^]ÍvU‰åWVSƒì ¡¤t#@£¤t#¾õ³Ô¿¹dv‰Êì©t"‰øG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ë搸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîœúX‰Çƒì hõè5õÿÿ‰ÃƒÄ…Ût¸ûÿÿÿéù‰ö¸ë1¾§ÇEð¹dv‰Êì©tڋEðÿEð=þÿÿvé¸ÿÿÿÿ…Àu ºd‰ðî¸ë¸ë=¸ëq¸ÿÿÿÿþ`ÇEð¹d‰Êì©t΋EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuºd‰ðî¾eÇEð¹dv‰Êì©tš‹EðÿEð=þÿÿvé¸ÿÿÿÿ…Àuº`‰ðîƒì hôè;ôÿÿÃĉøPÆt#‰Øeô[^_]ÐU‰åWVSƒì ¸ÿÿÿÿ€=Œt#„ºœúX‰Æƒì hõèóóÿÿƒÄ…Àt(¸ûÿÿÿé—‰ö¸ë:¸ëf¸é“‰ö³`¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî³G¿¹dv‰Êì©t¢‰øG=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØ¿¹dv‰Êì©„rÿÿÿ‰øG=þÿÿvè¸ÿÿÿÿ…ÀuºdˆØî¸ë¸ÿÿÿÿ…Àt ¸îÿÿÿ鐃ì hôèÿòÿÿƒÄ…Àt¸Ûÿÿÿ飉ö¸ë:‰ðP¡¤t#@£¤t#¾ô³Ô¿¹d‰Êì©tΉøG=þÿÿvì¸ÿÿÿÿ…ÀuºdˆØî¸ë +¸ë.¸ÿÿÿÿ…Àu0»¹d‰Êì©tډØC=þÿÿvì¸ÿÿÿÿ…Àuº`‰ðîƍt#¸eô[^_]ÍvU‰åƒìÇÄ¡#ÇÀ¡#ƒ=”t#t!úè‹õÿÿ£t#Ç”t#û…Àtúèôÿÿû¡t#…Àuƒìÿuh'"jèÅf¸ƒÄÉÍvU‰åVS¡ t#@£ t#³õ¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åVS¡ t#@£ t#³ô¾¹d‰Êì©t"‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî¸ë +¸ë搸ÿÿÿÿ[^]ÍvU‰åƒì‹MœúX‰Â¡À¡#@%ÿ£À¡#Š€À #ˆ‰ÐP€9úu è(úÿÿë‰ö¸ÉÐU‰åƒìƒ=¬t#t(Ç$¢#Ç ¢#Ç(¢#Ǭt#‹E£¨t#ƒ=”t#t!úèôÿÿ£t#Ç”t#û…Àtúèòÿÿû¡t#…Àu.¸ìÿÿÿ€=Œt#t ƒìjÿhX'"j è/eƍt#¸ƒÄÉÉöU‰åS‹MœúX‰Ã¡ ¢#@ƒà?£ ¢#ºà¡#ŠˆA¡ ¢#@ƒà?£ ¢#Šˆ¡ ¢#@ƒà?£ ¢#ŠˆA‰ØP¸‹$ÉÉöU‰åƒì€=t#tèäùÿÿƒì j è>eƍt#¸ƒÄÉÐU‰åƒìƒ=”t#t!úè óÿÿ£t#Ç”t#û…Àtúè™ñÿÿû¡t#…Àt¸ë¶Œt#ÉÍvU‰åVSŠEŠU€} t ƒ +œt#ë ‰öƒ%œt#„Àt ƒ +œt#ëƒ%œt#„Òtƒ +œt#ë¸ë6¸ëbƒ%œt#³õ¾¹d‰Êì©t҉ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØî³í¾¹dv‰Êì©t¦‰ðF=þÿÿvì¸ÿÿÿÿ…Àuº`ˆØîÿ˜t#[^]ÐU‰åSƒìœúX‰Ã€=t#tè–øÿÿè‘ðÿÿƒì hóèhîÿÿƒÄ…Àuƒì jèWîÿÿƒÄ…Àu‰ØP‹]üÉÍvU‰åº`ì¶ÈœúX‰Â¡À¡#;Ä¡#t¡Ä¡#ˆˆÀ #@%ÿ£Ä¡#‰ÐP]ÉöU‰åƒìº`ì¶Ðƒ=(¢#u €úúu¡¤t#H£¤t#郍v÷ÂÀuxÿ(¢#œúX‰Á¡ ¢#;$¢#t¡$¢#ˆà¡#@ƒà?£$¢#ë"‰ö¡$¢#+(¢#ƒÀAƒà?£$¢#Ç(¢#‰ÈPƒ=(¢#uÇ(¢#ƒì ÿ5¨t#èƒÄÉÉöU‰åSƒì}™w‹UÑâU‰ÐÁà)Ðfƒ<ň$uè©óNj¸ÿÿÿÿ鏐ƒ=$tcœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€a$ t ÿ€d$ë-v‹EÑàE‰ÂÁâ)‹Õd$ƒì‹•À$ÿuRÿP@ƒÄ‰ØPéè3·…ÀtgœúX‰Ã‹UÑâU‰ÐÁà)ЍÅ0ö€a$ t ÿ€d$ë2v‹EÑàE‰ÂÁâ)‹Õd$ƒì‹•À$ÿuRÿP@蔃ĉØPé­úèúNjŒ$R‰ÑÁá)Ñ»`$f‰DË‹UÑâU‰ÐÁà)ЍÅ0öD t ÿ€d$ë?vƒìU‰ÐPjÿìt#‹MI‰ÐÁà)ЋÅd$ƒÄ‹•À$QRÿP@è/ƒÄ¡Œ$@‰ÂÁâ)ƒì ¿Õh$PèhÇèƒÄû¸‹]üÉÐU‰åWVSƒì ‹]f…Ûuèîñnj¸ÿÿÿÿé"‰öƒ=$„“œúX‰ÇÇEð}ð™s¾`$‹UðÑâUð‰ÐÁà)ÐÁàf9\,uHƒÀ0öD0 t ÿ€d$ë6ƒìEðPjÿìt#‹MðI‰ÐÁà)ЋÅd$ƒÄ‹•À$QRÿP@ƒÄÿEð}ð™~“‰øPé}‰öèCµ…À„›œúX‰ÇÇEð}ð™w¾`$‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€d$ë8vƒìEðPjÿìt#‹MðI‰ÐÁà)ЋÅd$ƒÄ‹•À$QRÿP@ƒÄÿEð}ð™~èj‰øPéԐúèÒŋŒ$R‰ÑÁá)Ñf‰Íh$ÇEð}ð™w¾`$‹Eð@‰ÂÁâ)Õf9\,uJƒÀ0öD0 t ÿ€d$ë8v‹MðI‰ÐÁà)ЋÅd$ƒì‹•À$QRÿP@ƒÄEðPjÿìt#ƒÄÿEð}ð™~èÞ ¡Œ$@‰ÂÁâ)ƒì ¿Õh$PèÅèÁƒÄû¸eô[^_]ÃU‰åSƒìúèëċŒ$R‰ÑÁá)Ñf‰Íh$ƒìhD$j謃čUð¡H$;˜$|¡D$+”$‰Eð¡H$+˜$ë!‰ö¡D$+”$H‰Eð¡H$+˜$ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì Qè. ƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)ЋÅd$ƒì‹…À$QPÿRLè{ ƒÄhŒ$jÿìt#ÇŒ$ÿÿÿÿÇ $ÿÿÿÿèV ¡Œ$@‰ÂÁâ)¿Õh$‰$è“Ãè:ƒÄû‹]üÉÐU‰åƒìhÜ-"èصƒÄÉÍvU‰åƒìjèõƒÄÉÉöU‰åƒìƒ=´t#u(èè
+ƒì ¡Œ$@‰ÂÁâ)¿Õh$Pè$ÃÄÉÍvU‰åWVSƒìhêI#è!6ƒÄ»`$ëv‹Eð@‰ÐÁà)ЁLÃ0€ƒì h$èzA‰EðƒÄƒøÿ„“@‰ÐÁà)ÐöDÃ1@u¾‹UðR‰ÃÁã)ÃÁã¾`$¡°t#‰3@£°t#‹E ‰Dƒìjÿuƒt$PèPÔÆD'ƒÃ fÇD3‹Mf‹%ÿf‰D3
+f‹A f‰D3 ƒÄ‰Ø‰ñº‹]ƒ{tf‹Sf‰T‹UðR‰ÁÁá)ÁÁáY0‹U‹B +‰ƒ`$¿d$Ç;¾h$¡Œ$@‰ÂÁâ)‹DÖ0‰3ºl$ǍAP‹]ð‰˜`$Ç8ÇÿÿÿÿÇ0ÿÿÿÿǁÀ$°Ç8Ç0ǁÁÀǁ`$Ç9ºۍƒ€ 
+Ç…Ä$Bƒúvì‹Eð@‰ÐÁà)ÐÁàÀǂh$ÿÿÿÿǂl$´$‰0$º‹Mðɍ€ ‰ö
+Ç…0$Bƒú~ì»ëC;$sƒì‹À$ÿuSÿPƒÄ…Àxß;$u7‹]ð[‰ÂÁâ)ÂfÇՈ$ƒìh$SèŠ?èQëDŽ鄉ö‹Eð@‰ÐÁà)Ѝ4ʼnžd$ƒì‹À$ÿuÿuðSÿP,ƒÄ…ÀyWfdžˆ$ƒìh$ÿuðè*?èñêDžë'èãêǃ釃ì ÿuðè9èÈêdž¸ÿÿÿÿƒÄëjƒE‹U‹zü…ÿtY‰ö¾ëF;5„$s0ƒìµ‹ƒ $WVÿP ƒÄ…Àxۃ싃 $WÿuðVÿP$ƒÄ;5„$t‡ƒE‹M‹yü…ÿu©‹Eðeô[^_]ÉöU‰åƒìEPÿuÿu ÿuè`üÿÿƒÄÉÍvU‰åWVSƒì ‹} ƒt6‹EÑàE‰ÂÁâ)‹G‰Õl$‰Æ‹UÑâU‰ÐÁà)Ѓ Ő$@ën‰öƒì ‹UÑâU‰ÐÁà)зŎ$Pè@‹UÑâU‰ÑÁá)Ñ»l$‰ˉƋEÑàE‰ÂÁâ)ƒÄƒ<Óuƒì ÿuèìè{éLjëtv‹EÑàE‰ÂÁâ)»`$·DÓ.ƃì ·GPjÿwVhÈ4"èÝ¢‰ÁƒÄ f…Éu?ƒì‹UÑâU‰ÐÁà)зDÃ.PVèƒÄÿuèvèélj¸ÿÿÿÿƒÄëN‹EÑàE‰ÂÁâ)Âf‰ Õh$ƒìU‰ÐPjÿìt#ƒÄöGu ÿ€$ëvöGuÿ@$¸eô[^_]ÍvU‰åWVSƒì ‹M‹U ‹]œúX‰ÇEPSRQè­úÿÿ‰ÆƒÄƒþÿ„ɍv‰ÐÁà)ЋÅd$‹…À$ƒx(„èà…À‰€»;„$svƒì‹ $VSÿP(ƒÄC;„$råv‰ÃÁã)ÃÁ㋃d$ƒì‹…À$VPÿR0fǃˆ$ƒÄh$Vè <ƒÄèÐçLJ‰øP¸ÿÿÿÿë#vƒìSVèŽýÿÿƒÄº…À”ÂJ ։øP‰ðeô[^_]ÃU‰åVS‹u»;„$svƒì‹ $VSÿP(ƒÄC;„$råv‰ÃÁã)ÃÁ㋃d$ƒì‹…À$VPÿR0fǃˆ$ƒÄh$Vè\;ƒÄeø[^]ÉöU‰åVS‹]è ƒì ¡Œ$@‰ÂÁâ)¾`$SÿTÖú‰$èn¡Œ$@‰ÂÁâ)¿DÖ‰$較čeø[^]ÃU‰åWVSƒì‹]‹}úû™w! [‰ÈÁà)ÈÁàº`$öD0tfƒ|(u û¸ÿÿÿÿéDžÿy$[‰ÁÁá)Á Í°¸d$‹<Çë ‰öƒÿv¿[‰ÁÁá)Á Í°‰Mä¹h$‰Mì‹Uä‹
+‰Â)úƒÂ‰Ð¾º÷ö‰Eð‹uä;tMۍƒ€4‹MðىÈÁà)ȍ Å°‰ö2‹…Ä$‹] ‰ƒÃ‰] B»‰Ðº÷ó‹]ì;uÔû‰øƒÄ[^_]ÐU‰åSƒì‹]‹ +Œ$I‰ÐÁà)ЍÅö‚$tɍ€È‚$…Ä$¡D$;”$|;”$uA¡H$;˜$}4ƒìSÿ5Œ$ÿ5˜$ÿ5”$ÿ5H$ÿ5D$hJ#èèËƒÄ è@ ‹]üÉÍvU‰åWVS‹ +Œ$I‰ÐÁà)ЍÅöƒ$„›ɍ€ȍ‹°h$ºd$‹t‚`‹”À¸l$94s‰4‹Œ$[‰ÁÁá)ÁÁፁÀ°`$¿d$B‰8±°‹†h$@º‰Ñº÷ñ‰–h$ۍƒ€ØÐÇD‡`ƒ<>wÿ>[^_]ÉöU‰åWVS‹M‹] ‹u‹}úù™w!I‰ÐÁà)ÐÁàº`$öD0tfƒ|(uû¸ÿÿÿÿëy…ÛtI‰ÂÁâ)‹Õ $‰…ötI‰ÂÁâ)‹Õ$‰…ÿtI‰ÂÁâ)‹Õ$$‰ƒ}t(ɍ€ȍ I‰ÊÁâ)ÊÕ$‹…Ä$‹U‰û¸[^_]ÉöU‰å‹Múù™w!I‰ÐÁà)ÐÁàº`$öD0tfƒ|(uû¸ÿÿÿÿë7I‰ÂÁâ)ÂÁ⍂Àǀ`$ǀd$ǂ$û¸]ÍvU‰åWVSƒì ƒ=Œ$ÿt¡Œ$@‰ÂÁâ)ÂöՐ$…3ƒ=Œ$ÿ„ƒìhD$jè]ŸƒÄUè¡H$;˜$|¡D$+”$‰Eè¡H$+˜$ë"v¡D$+”$H‰Eè¡H$+˜$ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì QènüÿÿƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)Ћ<Åd$ƒì‹½À$QWÿP<ƒÄ¿4½ƒì ‹†À$WÿP$‰ÃƒÄƒûÿt%ƒì[‰ÐÁà)ЋÅd$‹…À$SPÿR4ƒÄ븅Àx»ƒûÿuG뫍v‹5Œ$‰ $‰Œ$[‰ÐÁà)Ð;Å°$t0»`$‰ö¡Œ$@‰ÂÁâ)‹TÓP‰Œ$ R‰ÈÁà)È;TÃPu×;5Œ$tƒìhŒ$jÿìt#ƒÄ‹ +Œ$I‰ÐÁà)ÐÁà¾`$fÇD(‹¸d$ƒì‹½À$‹ $¸;Œ$•ÀPQWÿS8¡Œ$@‰ÂÁâ)ƒÄöDÖ1„Ü¡ $;Œ$…Ë¡D$‰EèM行$@‰ÂÁâ)»l$‹DÓ@º@B‰Ö™÷þ’’’Áâ‰Ö5H$‰q¿¡/¸D‰ø÷î‰×Áÿ‰ð™‰þ)Ö¡Œ$@‰ÂÁâ)‹\Ó@ºƒÞC‰Ø÷êÁú‰ØÁø)2Eè‹AºÊš;‰Ó™÷û‰QjhôB"ÿuìÿuèÿ($‰ÃƒÄƒûÿuƒìÿ5Œ$jè«MƒÄ‰œ$¡D$£”$¡H$£˜$eô[^_]ÉöU‰åWVSƒìÇðÀ%úÿuèD»ƒÄ¿d$¾`$‰ö[‰ÂÁâ)ÂÁâÇ:ÿÿÿÿǂl$ÆDB fÇD0fÇD0
+fÇD0 fÇD0B0Ç0Ç8ǀh$ǀl$‚¤$Ç@Çǂ¬$BP‰0Ç8ÇD`DŽÐ‚8$Ç@Ǎ‚àÇ0ÿÿÿÿÇ8ÿÿÿÿ‚°Ç8ǀh$ǀl$ÂÀÇ2Ç:ºۍƒ€ v
+ÇD‡`Bƒúvï[‰ÐÁà)ЍÅÀǀh$ÿÿÿÿǀl$ºۍƒ€ 
+DŽ†ÐBƒú~ìCû™Žƒþÿÿ»¹h$[‰ÂÁâ)C‰DÑP‰Ãû˜~åÇ`¾%ÿÿÿÿ»™¹l$[‰ÂÁâ)Cÿ‰DÑP‰Ã…ÛéǼ$ÿÿÿÿÇ$Lj$Ç€$Ç@$Ç $ÿÿÿÿÇŒ$ÿÿÿÿÇœ$ÿÿÿÿǘ$Ç”$ǐ$Ç„$Ç$èÚè}èäGƒì ÿuèqÉÿÿ£$ƒÄ=×Övƒì h`J#èQ%Ç$è¹ÐƒÄ¸ƒ=$”À‰Eè]è¡$‰CÇðÀ%èj˜ƒì Sèa¢Ç$ˆC"èµÜÇ$È-"è1¤Ç$àB"èE¤ƒÄjjèEÿôt#ƒÄhD$jèü˜èOùÿÿ蚱f£$¡Œ$@‰ÂÁâ)¾`$¿DÖ‰$è±Ç$èç£ÿðt#ÇðÀ%ƒÄ»ƒ=ˆ$ŸÃSjèɃă=@$teè„ Ç´t#ƒìhD$jèk˜è±f£$è³øÿÿÇ$àB"èw£¡Œ$@‰ÂÁâ)¿DÖ‰$èç°Ç$èO£ƒÄÇðÀ%ƒìSjèCèr—ÇðÀ%ƒÄjjè(ƒÄúƒ=ˆ$t"ƒìÿ5ˆ$h‹J#èÂÇ$ÿÿÿÿèσăì jèû΃čeô[^_]ÃU‰åSƒìƒ=´t#…•èŸ…Àuúè5°‹Œ$R‰ÑÁá)Ñf‰Íh$‹E£ˆ$Ç´t#ƒ=Œ$ÿ„ƒìhD$jèG—ƒÄUð¡H$;˜$|¡D$+”$‰Eð¡H$+˜$ë ¡D$+”$H‰Eð¡H$+˜$ʚ;‰B‹Mð ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ôºÓMb‰Ø÷êÁú‰ØÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì QèZôÿÿƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)ЋÅd$ƒì‹…À$QPÿR<Ç $ÿÿÿÿÇŒ$ÿÿÿÿƒÄ謝…Àtƒì ¿$PèÜ®ƒÄëvƒì ¿$PèÄ®èkƒÄû‹]üÉÉöU‰åSƒìÇEøÿÿÿÿ»ºÀ$¡À$ƒx(t1ƒì‹šUøRSÿP(ƒÄ…Àu¸ÿÿÿÿëCƒûwºÀ$‹šƒx(uи‹]üÉÉöU‰åƒìè èÈ@ÉÉöU‰åƒìÇœ$ÿÿÿÿè§êÿÿÉÐU‰åSƒìœúX‰Ãƒ=ðÀ%tƒ=@$t‰ØPëƒì jè–ýÿÿƒÄ‰ØP‹]üÉÉöU‰åƒìÿuèzýÿÿƒÄÉÐU‰åSƒì‹UœúX‰ÃƒìRjè
+•‰ÂƒÄ‰ØP‰Ð‹]üÉÉöU‰å¸ˆ$ƒ=Œ$ÿt‹Œ$R‰ÐÁà)ЍÅÀ$]ÉöU‰åSƒìœúX‰Ãƒ=ðÀ%tƒ=@$t‰ØPëƒì ÿuèíüÿÿƒÄ‰ØP‹]üÉÐU‰å]ÍvU‰åWVSƒì ÇEðÇE컍[ …ƒ¹H¢#t[¿@¢#ƒ<9tP‹Œ$ҍ‚€Ð؍…о`$ƒ<0t+ûƒì ÿ40ÿ9ƒÄú‹Œ$ҍ‚€Ð؋´†Ð uìCƒû~Œƒ}ìt +ÿEðƒ}ðŽmÿÿÿeô[^_]ÐU‰åVSº¾@¢#»D¢#¹H¢#vRÁàÇ0B‰Çƒú~ãÇ8¨#ÿÿÿÿÇ@¨#ÇH¢#Ç@¢#ÇD¢#ÿÿÿÿ[^]ÐU‰åS‹Múƒ=@¨#ÿu û¸ ënv¡@¨#@Ç•H¢#‰¡@¨#@‹…D¢#£@¨#‹@‹U ‰…@¢#º»`$‰öҍ‚€ÐDŽƒÐBú™~ßû¸‹$ÉÃU‰åú¡Œ$À’ÂU‹•0$û]ÍvU‰å‹Múƒùw +Iƒ<…H¢#u û¸ë%v¡Œ$À’ÂʋE ‰•0$û¸]ÃU‰åS‹]œúX‰Áƒûw +[ƒ<…H¢#u‰ÈP¸ë.v[Áà‹@¨#‰D¢#ǀH¢#‰@¨#‰ÈP¸‹$ÉÃU‰åWVSƒì ¡Œ$‰Eð‰ÂÑâ‰ÐÁà)ЍÅ¿`$öD0 tm‹E‰‚,$‹UðÑâUð‰ÐÁà)ЁLÇ0@‹UðÑâUð‰ÐÁà)ЍÅÀºh$ƒ<ÿt,‹4v‰ÃÁã)ÃÁ㋃d$ƒì‹…À$VPÿRD‰tPƒÄ¹»`$;MðtI‰ÐÁà)ЋUð9TÃP„ˆAù™~ۋUðÑâUð‰ÐÁà)Ѓ<Å´$t[»d$ûƒì ‹UðÑâUð‰ÐÁà)ЋDÃPÿpÿƒÄú‹EðÑàEð‰ÂÁâ)ÕP‹‹@‰‹UðÑâUð‰ÐÁà)Ѓ|ÃPu«èJüÿÿƒì ‹EðÑàEð‰ÂÁâ)»`$¿DÓP脏ƒÄEðPjÿìt#‹Eð@‰ÂÁâ)ՃÄöD0@u%ƒì·D.P‹Eð@‰ÂÁâ)Âÿ4Õl$èÁ ƒÄ»;„$sƒì‹ $ÿuðSÿP(ƒÄC;„$rã‹MðI‰ÐÁà)ЋÅd$ƒì‹…À$QPÿRPÇŒ$ÿÿÿÿÇ $ÿÿÿÿ‹Eð@‰ÂÁâ)ƒÄöՐ$u&ÿ +€$ƒ=€$uBèZúÿÿë;ƒìRjè AƒÄëg‹Eð@‰ÂÁâ)ÂöՐ$uÿ +@$ƒ=@$uèúÿÿƒìhD$j肏ƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄè­ïÿÿeô[^_]ÐU‰åVS‹uúv‰ÐÁà)ÐÁàº`$öD0ufƒ|(uèÒNJû¸ÿÿÿÿ麍v‰ÐÁà)Ðöő$tû雉ö;5Œ$uJv‰ÐÁà)л`$‹DÃ0©t0©u)ƒì jè¥üÿÿ¡Œ$@‰ÂÁâ)¿DÓ‰$èU§ƒÄ»ëvC;¸t#}ƒìÝÿ°d¨#Vÿ`¨#ƒÄ…Àtٍv‰ÐÁà)Ё Ő$û¸eø[^]ÍvU‰åWVSƒì ‹Ef‰Eòf…Àuè’Ñnj¸ÿÿÿÿé‰öú¡ $@‰ÂÁâ)Âf‹Mòf; Ռ$”Eñ¾¿`$‰öv‰ÐÁà)ÐÁà‹T0÷Â…ˆƒÀ fƒ|8t}÷Âuuf‹Mòf9L8 uj;5Œ$u!÷Ât÷Âuƒì jè{ûÿÿƒÄëC‰ö»ëC;¸t#}ƒìÝÿ°d¨#Vÿ`¨#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™ŽNÿÿÿ€}ñt(ƒì ¡ $@‰ÂÁâ)¿Õh$PèÌ¥ƒÄëvû¸eô[^_]ÉöU‰åWVSƒì ¾¿`$v‰ÐÁà)ÐÁàfƒ|(tL÷D0
+uB»ë‰öC;¸t#}ƒìÝÿ°d¨#Vÿ`¨#ƒÄ…Àtٍv‰ÐÁà)ЁLÇ0Fþ™~–eô[^_]ÉöU‰åSƒì¡Œ$@‰ÂÁâ)»`$‹DÓ0©t7©u0©t)ƒì jè"úÿÿ¡Œ$@‰ÂÁâ)¿DÓ‰$èÒ¤ƒÄ‹]üÉÉöU‰åS‹M‹] ¡¸t#ʼnŠ`¨#‰šd¨#@£¸t#‹$ÉÍvU‰åƒìúÿuè½ùÿÿ¡Œ$@‰ÂÁâ)¿Õh$‰$èj¤ƒÄÉÐU‰åVS¶uœúX‰Ãƒ=”«#ÿuèøÎǂ‰ØP¸ÿÿÿÿéۋ +”«#‰ÊÁâ‹‚ ©#£”«#‹E‰‚©#‹E ‰‚©#‰ðƒà‰‚©#‰ðƒàƒøtOƒø
+ƒøt +ësvƒøtSëi‰ÈÁàǀ ©#ÿÿÿÿƒ=€«#ÿu‰ +€«#ë¡„«#Áà‰ˆ ©#‰ +„«#ëH‰ö‰ÊÁ⡈«#‰‚ ©#‰ +ˆ«#ë.‰ÊÁâ¡Œ«#‰‚ ©#‰ +Œ«#ë‰ÊÁ⡐«#‰‚ ©#‰ +«#‰ØP¸[^]ÐU‰åƒìƒ=$uƒì hÀJ#èPÇ$è¸ÁƒÄ¡$P‰$ÉÐU‰åƒìƒ=„$uƒì hßJ#èÇ$è|ÁƒÄ¡„$P‰„$ÉÐU‰åWVS‹E‹u ‹}»‹HÇöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿ[^_]ÐU‰åWVSì¬‹EµTþÿÿ½Xþÿÿ»‹HDžTþÿÿöt<€9t5‹ ‰‡€: t€:t‰öC€< t€< uó€< uÆ Cÿ€< uÌÿƒì…XþÿÿPÿµTþÿÿèy¶ÿÿƒÄeô[^_]ÉöU‰å¸¹ ©#v‰ÂÁâ@‰
+ƒø&~òÇ|«#ÿÿÿÿÇ€«#ÿÿÿÿÇ„«#ÿÿÿÿLj«#ÿÿÿÿÇŒ«#ÿÿÿÿǐ«#ÿÿÿÿÇ”«#]ÉöU‰åWVSƒì ‹E‹} ƒøt4ƒø ƒøtéЃøt3ƒøtB鳐‹€«#Ç€«#ÿÿÿÿë:‰ö‹ˆ«#Lj«#ÿÿÿÿë&‰ö‹Œ«#ÇŒ«#ÿÿÿÿë‰ö‹«#ǐ«#ÿÿÿÿÇ$ƒûÿtM¾ ©#…ÿt‰ØÁàƒ¸©#uƒì ‰ØÁàÿ°©#ÿ©#ƒÄ‰Ù‰ØÁà‹0‰Â¡”«#‰2‰ +”«#ƒûÿu¸Ç$eô[^_]ÉöU‰åƒìEüPEøPEôPEðPèùœÇ$ «#èuéƒÄjjhÿÿjh¤«#h «#è ßƒÄjjhÿÿÿhhÀ«#h «#è€ßƒÄjjhÿÿÿþhhÜ«#h «#è`៎ ƒ}ütƒì‹EüHPÿuøh «#è*ރă}ôtƒìÿuôÿuðh «#èރÄÉÐU‰åƒì‹E…Àu¸ëƒìjPh «#è¸ßƒÄÉÍvU‰åƒìÿuÿuÿu ÿuh «#èháƒÄ ÉÍvU‰åƒì ÿuÿuÿuÿuÿu ÿuh «#èbáƒÄ ÉÐU‰åƒì ÿu ÿuh «#èæƒÄÉÐU‰åƒìÿuh «#èýãƒÄÉÃU‰åƒìÿuh «#èýçƒÄÉÃU‰åƒì jÿuh «#è߃ÄÉÉöU‰åƒì ÿu ÿuh «#è®åƒÄÉÐU‰åƒìh «#è¼ãÇ$ «#èÐçƒÄÉÍvU‰åWVSƒì ¾ú»ë‰öCƒû/ۍCÁàö€¬#tèƒìÿ°¬#ÿuèo°ƒÄ…Àuо…öt#} ÀuèýÈÇûéِû‰ØéÕ÷E @uèÚÈÇû鶉ö÷E uè¾ÈÇ +û隉ö‹u‹=0³#ƒÿÿ„zƒì ÿuèK°@‰$èþÿÿÿWÁ⹬#‰
+ƒÄ…ÀuèmÈÇûéIƒìÿuÿG…ÿ³¬#è:¯ƒÄ…öt‹F‰ƒ¬#‹F‰ƒ ¬#ë vÿGÁàǀ¬#
+ǀ ¬#€ƒì ÿG…ƒ8¬#P臍ƒ@¬#‰$èyCº¬#ǹ¬#ÇÿÿÿÿÇD ƒÄ÷E t
+Ç ëÿGÇ…¬#ƒì ÿG4…‹†¬#¯† ¬#PèôüÿÿV‰‚¬#ƒÄ…Àu0ƒì ÿuè +¯ƒÄ@Pÿ¶¬#èAýÿÿè@ÇǃÄûéƒì ÿG…‹ƒ¬#@ÁàPè’üÿÿs‰† ¬#ƒÄ…ÀuNƒì ÿuè«®ƒÄ@Pÿ³¬#èßüÿÿƒÄ‹ƒ¬#¯ƒ ¬#Pÿ¶¬#èÃüÿÿèÂÆǃÄû雍v»ý‰ÁøGº¬#‰Uð‹‚ë+‰Î7WÁâ‹‚¬#‰Eì [C‹]ì‰D‹‰Ã‰ñ‹uð‹2H9Ã|ЍÿWÁ⾬#‹2@‹Š¬#ÇDüÿÿÿÿǂ ¬#‹D@£0³#û‰øë‰öèÆÇû¸ÿÿÿÿeô[^_]ÍvU‰åWVSƒì úƒ}w‹UҍBö…¬#uèàÅÇ û¸ÿÿÿÿ重vƒì ‹EÀXÁ㾬#ÿ43èh­ƒÄ@Pÿ43èŸûÿÿƒÄ¾¬#‹3¯ƒ ¬#P{ÿ47èûÿÿƒÄ‹3@ÁàPÿ· ¬#èiûÿÿǃ¬#¡0³#‰D@‹U‰0³#ƒÄû¸eô[^_]ÃU‰åWVSƒì ‹}»ú¾öFÁàö€¬#tƒìÿ°¬#Wè[¬ƒÄ…Àu»Fƒþ~ͅÛ„…ƒì W蜬ƒÄ@Pö^Áãÿ³¬#èÇúÿÿƒÄ‹ƒ¬#¯ƒ ¬#P{ÿ·¬#è¨úÿÿƒÄ‹ƒ¬#@ÁàPÿ· ¬#èúÿÿǃ¬#¡0³#‰ƒH¬#‰50³#ƒÄû¸ëvècÄÇû¸ÿÿÿÿeô[^_]ÍvU‰åWVSƒì‹}ÇEìÿÿÿÿÿG…‹ˆ¬#‹€ ¬#‰Eä‹U R‹]䋃‰EðƒùÿtBý‰Eà ‰ÆÈë'‰ö‰Mì‹UàG‹…¬#1‹Lƒƒùÿt4 1‹Uð;ƒvӃ}ìÿtÿG‹…¬#‹]ì[‹] ‰\‚됍ÿG‹U ‰…¬#ÿG‹…¬#‹] [‰L‚ƒÄ[^_]ÐU‰åVS‹][‰ÐÁà)Ѝ4Åfƒ¾ˆ$ uƒì‹Ýd®#ÀP•8¬#ë2[‰ÐÁà)Ѝ4Åfƒ¾ˆ$
+u=ƒì‹Ýd®#ÀP•@¬#RS賋–d$ƒÄ‹•À$SRÿPD¸ƒÄ븍eø[^]ÃU‰åVS‹][‰ÐÁà)Ѝ4Åfƒ¾ˆ$ u)¡Œ$ÇÅ`®#ƒì‹Ýd®#ÀP•8¬#ëB[‰ÐÁà)Ѝ4Åfƒ¾ˆ$
+uM¡Œ$ÇÅ`®#ƒì‹Ýd®#ÀP•@¬#RSèó‹–d$ƒÄ‹•À$SRÿPD¸ƒÄ븍eø[^]ÃU‰åWVSƒìLèÞ;úƒ=¼t#t+Ǽt#ƒìjhpX"èkòÿÿƒÄjhY"è0ƒÄƒ}w‹UҍBö…¬#uè³ÁÇ û¸ÿÿÿÿéV‰ö‹MɍA‹U;… ¬#vè†ÁÇZû¸ÿÿÿÿé)ƒ} vèiÁÇû¸ÿÿÿÿé ‹MɍAÁàƒ¸ ¬#ÿ…Ïö€¬#tè1ÁÇ û¸ÿÿÿÿéÔ¡Œ$ÇÅ`®#ƒìhD$jè}ƒÄUÀ¡H$;˜$|¡D$+”$‰EÀ¡H$+˜$ë"v¡D$+”$H‰EÀ¡H$+˜$ʚ;‰B‹MÀ ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ĺÓMb‰Ø÷êÁú‰ØÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì Qè®ÚÿÿƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)ЋÅd$ƒì‹…À$QPÿRH‹ +Œ$I‰ÐÁà)л`$fÇDÃ( ƒÄ‹UҍB…8¬#PQèf +ÇŒ$ÿÿÿÿÇ $ÿÿÿÿèµÜÿÿ¡Œ$@‰ÂÁâ)¿DÓ‰$èõ”èt'ès9¡Œ$ƒÄƒ<Å`®#t脿Çû¸ÿÿÿÿé'v‹MɍA…z ¹¬#‹‰E´B‹˜ ¬#‹u´v‹T“‰ÿ‹UҍB‰÷¯<… ¬#<…¬#‹MÁé‹u ‹Eüó¥¨tf¥¨t¤ҍB<…_¹ ¬#‹ ‹u´vÁà‹u‰4‹ ‹M‰Lƒìÿu´ÿuèzúÿÿƒÄƒ»¬#…dƒì ‡@¬#Pè׉ƃăþÿtqèܓ‹Œ$R‰ÑÁá)Ñ»`$f‰Dˍv‰ÐÁà)ЋÅd$ƒì‹…À$VPÿRDèMÛÿÿ¡Œ$@‰ÂÁâ)¿DÓ‰$荓è4åÿÿƒÄûéލv‹uöF…¹¬#‹
+©„·ƒàû‰
+B ƒ<ujÿ° ¬#ÿ°¬#jè•鋋UҍBÁàP ¹¬#ƒ<
+utƒÀ0ƒ<tÿ² ¬#ÿ²¬#ÿ4ëNÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà‹MɍAÁà,¬#Rÿ°0¬#EÈPE¼Pè)ƒÄû¸eô[^_]ÃU‰åWVSƒì,‹} è 7úƒ=¼t#t+Ǽt#ƒìjhpX"è˜íÿÿƒÄjhY"è1+ƒÄƒ}w‹UҍBö…¬#uèà¼Ç û¸ÿÿÿÿékv‹UҍB‹U;… ¬#vè²¼ÇZû¸ÿÿÿÿé=‹UҍBÁຬ#ƒ|ÿ…ÐöDtèx¼Ç û¸ÿÿÿÿév¡Œ$ÇÅ`®#ƒìhD$jèáxƒÄUè¡H$;˜$|¡D$+”$‰Eè¡H$+˜$ë"v¡D$+”$H‰Eè¡H$+˜$ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì QèòÕÿÿƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)ЋÅd$ƒì‹…À$QPÿRH‹ +Œ$I‰ÐÁà)о`$fÇDÆ(
+ƒÄ‹UҍB…@¬#PQèªÇŒ$ÿÿÿÿÇ $ÿÿÿÿèù×ÿÿ¡Œ$@‰ÂÁâ)¿DÖ‰$è9è¸"è·4¡Œ$ƒÄƒ<Å`®#tèȺÇû¸ÿÿÿÿéSv‹UҍB‹…¬#ҍBÁຠ¬#‰Þ¯4°¬#‹‰ÁÁéüó¥¨tf¥¨t¤‹UҍBÁà‰E܉ƃƹ¬#ÿ‹† ¬#‰Eà[<•‹T8‰–¬#‹U܃ ‰U܋
+‹Uà‰D:‹E܉ƒ}t‹† ¬#‹8‹U‰‹UҍB<…‹¬#[‹D‘‰Eäƒì ‡8¬#Pè
+‰ÆƒÄƒþÿtm菋Œ$R‰ÑÁá)Ñ¿`$f‰Dύv‰ÐÁà)ЋÅd$ƒì‹…À$VPÿRDè…Öÿÿ¡Œ$@‰ÂÁâ)¿D׉$èŎèlàÿÿƒÄûë‰öû‹Eäeô[^_]ÃU‰åVS‹U‹] úƒúwҍBö…¬#uè6¹Ç û¸ÿÿÿÿëwҍB …¾¬#‹1©t$…Ûu ƒàû‰1ûëIvè÷¸Çû¸ÿÿÿÿë8ҍBÁàƒˆ¬#$¬#‹‰‹S‰P‹S‰P‹S ‰P ‹S‰Pû¸[^]ÐU‰åSƒì‹]‹MúƒûwۍCö…¬#uè„¸Ç û¸ÿÿÿÿëd‰ö…Ét2ۍCÁà‹¬#â‰‹¬#‰Q‹ ¬#‰Q‹€¬#‰A  ۍ KÁỬ#‹%ÿ÷ÿÿ‹U ‹â Љû¸‹]üÉÐU‰åƒì‹U‹M úƒúwҍBö…¬#uèå·Ç û¸ÿÿÿÿë;vҍBÁà‹¬#â‰‹¬#‰Q‹ ¬#‰Q‹€¬#‰A û¸ÉÉöU‰åWVSƒì} ‹uEðPh4K#V詉Ãăûuƒ}ðvÇEðƒÆë ‰öÇEð‹Eðº;Àt#~hƒìWVh@³#èòŸƒÄj
+Vè7ŸƒÄ»…À•ÃœúX‰Æƒìh@³#‹Eðÿ4…Ät#h9K#èIƒÄ…Ûuƒì hÜK#è5ƒÄ‰ðPº‰Ðeô[^_]ÍvU‰åVSƒìu ‹]EôPh4K#Sèû¨ƒÄƒøuƒ}ôvÇEôƒÃëÇEô‹Eôº;Àt#~JƒìVSh@³#è.ŸƒÄj
+SèsžƒÄœúX‰Ãƒìh@³#‹Eôÿ4…Ät#h9K#菜ƒÄ‰ØPº‰Ðeø[^]ÉöU‰åVSƒì@‹u‹] ‹EfÇEÈÇEÌÇEÐfÇEÔÇEàÇEäÇEìÇEð‰EØÇEÜÇEè…ÛtT‹C‰E̋C‰EЃ{u
+ÇEÜ1됃eÜߋC ‰EàÇEÀƒì ÿ5@·#è;ƒÄ+C ‰EċC‰Eì‹C‰EðëD‰öÇEÌÇEЃMÜ ÇEàÇEÀƒì ÿ5@·#èÎ:ƒÄ‰EÄÇEìÇEðè5µ‹ƒì jEÀPEÈPÿuhAK#è}Ìÿÿ‰ƒÄ ƒøÿt ƒì Pè.ÁÿÿƒÄèþ´‰¸ƒ>ÿ”ÀHƒàêƒÀeø[^]ÍvU‰åƒìÿ5@·#èO:ƒÄÉÉöU‰åƒìÿ5@·#èO:ƒÄÉÉöU‰åƒìÿ5@·#èg9ƒÄÉÉöU‰å‹E‹U ‹M£@·#‰D·#‰ +H·#]ÐU‰åVS‹]èk´‹0ƒì Sè°áÿÿ‰ÃèY´‰0ƒÄ¸…Û•À@eø[^]ÃU‰åƒìúÿuÿu ÿuÿ5@·#èÕ9ƒÄûÉÍvU‰åWVSƒì ‹}‹uúÿ6ÿu Wÿ5@·#èk7‰ÃƒÄ…Ûu#ƒìÿ5@·#èd9ƒÄ+PWÿ5H·#èRjƒÄû‰Øeô[^_]ÃU‰åSƒì ‹] SÿuèiƒÄÿ5@·#è#9ƒÄ+‰¸‹]üÉÉöU‰åVSƒì‹u‹] …Ûtƒ;uÇEôƒìEôPë7ƒ;uÇEðƒìEðPë!vÇEèƒì jè_þÿÿ+CUè‰BƒÄRVè@.ƒÄeø[^]ÉöU‰åWVSƒì‹u ‹}ÇEðÿ5@·#è8‰ÃƒÄ9Þƒþ} ¸ëG‰öƒì ÿuè¡.ƒÄ W‰Ø)ðPÿuèøhƒÄ…ÀtÇEð…ÿt‰Ø+‰ƒì ÿuèÅ.‹EðƒÄeô[^_]ÍvU‰åƒì‹Eúƒ8u +ÇûÿU ëû¸ÉÃU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)лd$‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»h$‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Ÿ$ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰ż$ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆh$‰¸l$ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹8$‰U苀<$‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õ8$|[‰Eäv1‰ÐÁà)ЍÅ;š8$u ‹Eì;‚<$|1‰Ï‰ÐÁà)Ћ Ÿ$ƒùÿt4 1‰ÐÁà)Ћ]ä;Å8$}«ƒÿÿt‰ÐÁà)ЋU‰Ÿ$ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰ż$ë
+‹E‹U ‰B‹E@‰ÐÁà)ЍÅP‰ˆh$‰¸l$ƒÄ[^_]ÍvU‰å‹EÇÿÿÿÿÇ@ÿÿÿÿ]ÍvU‰åWVS‹uv‰ÐÁà)ЍÅP‹˜l$¿h$‹ 8ƒûÿt[‰ÐÁà)ЉLÇPëv‹E ‰ƒùÿt&I‰ÁÁá)Á»l$v‰ÐÁà)ЋDÃP‰DËPë v‹E ‰X[^_]ÐU‰åS‹M‹‰Øƒûÿt=‹@‰ÂÁâ)‹Õ¸$‰ƒøÿt@‰ÐÁà)ÐÇż$ÿÿÿÿë
+vÇAÿÿÿÿ‰Ø‹$ÉÉöU‰åS‹M‹] ƒ;ÿt)I‰ÐÁà)Ћ‰Ÿ$‹@‰ÂÁâ)‰ Õ¼$됉KI‰ÐÁà)ÐÇŸ$ÿÿÿÿI‰ÐÁà)ÐÇż$ÿÿÿÿ‰ ‹$ÉÃU‰åS‹M‹] ƒ{ÿt,I‰ÐÁà)ЋS‰ż$‹C@‰ÂÁâ)‰ Õ¸$ë‰ö‰ I‰ÐÁà)ÐÇż$ÿÿÿÿI‰ÐÁà)ÐÇŸ$ÿÿÿÿ‰K‹$ÉÃU‰å‹E‹]ÉöU‰å‹E‹@]ÐU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)ÐÁà‹8$‰U苀<$‰Eìƒùÿtw ‰ÆȉÂÁâ)‹Eè‰Ã;Õ8$|[‰Eäv1‰ÐÁà)ЍÅ;š8$u ‹Eì;‚<$|1‰Ï‰ÐÁà)Ћ Ÿ$ƒùÿt4 1‰ÐÁà)Ћ]ä;Å8$}«ƒÿÿt‰ÐÁà)ЋU‰Ÿ$ë‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰ż$‹E@‰ÐÁà)ЍÅP‰ˆh$‰¸l$ƒÄ[^_]ÍvU‰åWVSƒì¿ÿÿÿÿ‹E ‹‹E@‰ÐÁà)лd$‰]ð‹´ÃЃùÿtCI‰ÐÁà)Ð;´ÃÐr0»h$‰Ï‰ÐÁà)ЋLÃPƒùÿtI‰ÐÁà)ЋUð;´ÂÐsՃÿÿt‰ÐÁà)ЋU‰Ÿ$ë
+‰ö‹E‹U ‰ƒùÿtI‰ÐÁà)ЋU‰ż$‹E@‰ÐÁà)ЍÅP‰ˆh$‰¸l$ƒÄ[^_]ÍvU‰åWVS‹}‰ÐÁà)ЍÅP‹l$‹°h$ƒúÿu ‹E ‰0ë#‰öR‰ÁÁá)Á»h$‰ÐÁà)ЋDÃP‰DËPƒþÿt!v‰ÁÁá)Á»l$‰ÐÁà)ЋDÃP‰DËP[^_]ÃU‰åS‹]‹ ‰Èƒùÿt/I‰ÐÁà)ЋŸ$‰ƒøÿt@‰ÐÁà)ÐÇż$ÿÿÿÿ‰È‹$ÉÃU‰åS‹]‹M ƒ9ÿt‹@‰ÂÁâ)‰Õ¼$[‰ÂÁâ)ÕP‹‰‚h$ǂl$ÿÿÿÿ‰‹$ÉÃU‰åWVSƒì ‹M‹] ‹}ÇEðú¡Œ$@‰ÂÁâ)4Õ`$…ÿt‹F8‰…ÛtBƒùt"ƒù ƒùt ë*‰öƒùtë!‹F8 ‰F8ë‰ö‹÷Ð!F8ëv‹‰F8ëÇEð‹F8‰Ã÷Ћ`¹#‰Ñ…ÂtB‰ö‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì R范ċ^8‰Ø÷Ћ +`¹#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…Ât=‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè|ƒÄ‹^8‰Ø÷ЋN<…ÁuÃû‹Eðeô[^_]ÍvU‰åVS‹u‹M ¸…É„¸ƒù‡òv‰ÐÁà)Ðfƒ<ň$u +¸éӍvú‰ÈÁàö€h·#uƒ¸`·#uû魉öv‰ÐÁà)ЍŜ$ƒùvèÍ©Çë
+¸Óà »ëC;èt#}ƒìÝÿ°$º#Vÿ º#ƒÄ…Àtٍv‰ÐÁà)ЍÅfƒ»ˆ$u&ƒìhd¹#VèÔüÿÿ‹ƒd$ƒÄ‹…À$VPÿRDƒÄèSm…Àuèû¸eø[^]ÐU‰åWVSƒì‹]‹U ƒûvè©Ç¸ÿÿÿÿévœúX‰Á‰Mðƒ}t‰ÞÁæÆ`·#ü¹‹}ó¥…Òt‰ßÁçÇ`·#ü¹‰Öó¥…Ò„ºöB…°ƒ:‡§ƒ<€¹#ÿtq4‰u캀¹#‹@Áà‰Eè‰ÇƒÇ‹ +Ç%¸Á%‹U苉E䋇Á%©t +ƒàý‰‡Á%ë‰ö¾€¹#‹Uì‹2@‰ ÕÁ%‰Áƒ}äÿu»‰ +Ç%ǝ€¹#ÿÿÿÿƒûv +è¨Çë¸þÿÿÿˆÙÓÀ!`¹#‹uð‰ðP¸ƒÄ[^_]ÐU‰åWVSƒì,‹] ¸…Û„~¸ƒû‡pœúX‰Â‰UԉÞÁæ}؁Æ`·#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé5vƒûv膧Ǹÿÿÿÿ됸ˆÙÓà#`¹#…Àt +‹UԉÐPéûƒûvèN§Çë‰ö¸ˆÙÓà `¹#‹5d¹#ƒþÿ„ô¸‰ÇˆÙÓçvv‰ÐÁà)ЍÅ $ƒûvèý¦Ç¸ÿÿÿÿë‰ú#‰Ð…À„–v‰ÐÁà)ÐÁàfƒ¸ˆ$uœ$ƒûv +輦Çë 8ƒìhd¹#Vèúÿÿv‰ÃÁã)ÃÁ㋃d$ƒÄ‹…À$VPÿRDÃà¾`$ƒÄƒ<3ÿtƒì ÿ43ÿh$Ç3ÿÿÿÿƒÄ‹MԉÈPéîv‰ÐÁà)Ћ4Ÿ$ƒþÿ…ÿÿÿ¾¸‰ÇˆÙÓç‰öv‰ÐÁà)ÐÁàfƒ¸ˆ$„…˜$ƒûvèö¥Ç¸ÿÿÿÿ됉ú#‰Ð…Àu^v‰ÐÁà)ЍŜ$ƒûvèÃ¥Çëv 8»ëvC;èt#}0ƒìÝÿ°$º#Vÿ º#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèzi…Àuè9 +‹MԉÈP¸eô[^_]ÐU‰åWVSƒì,¸ƒ} „T¸ƒ} ‡EœúX‰Â‰Uԋu Áæ}؁Æ`·#ü¹ó¥÷Eàuƒ}Øu ‰ÐPé ‰ö÷Eàu;ƒ} vèܤǸÿÿÿÿëv¸ŠM Óà#`¹#…Àt ‹UԉÐPéÃ=Ç%ÿu‹MԉÈP¸ 鮉ö‹5Ç%vÁà¹Á%‹‰Ç%‹U ‰Á%‹U‰Á%‹U‰ Á%‹Œ$‰Á%Çÿÿÿÿ‹E Á຀¹#ƒ<ÿu‰4ë>‰ö‹M ‹€¹#‰ÁЃ<ÅÁ%ÿt»Á%
+‹Í 
+ƒ<ÃÿuîR‰4ÅÁ%ƒ} vèé£Ç됸ŠM Óà `¹#‹5d¹#ƒþÿ„û¸‰ÃŠM Ó㐍v‰ÐÁà)ЍÅ $ƒ} v蘣Ǹÿÿÿÿë v‰Ú#‰Ð…À„šv‰ÐÁà)ÐÁàfƒ¸ˆ$uœ$ƒ} vèS£Çëv ƒìhd¹#Vè¨öÿÿv‰ÃÁã)ÃÁ㋃d$ƒÄ‹…À$VPÿRDÃà¾`$ƒÄƒ<3ÿtƒì ÿ43ÿh$Ç3ÿÿÿÿƒÄ‹MԉÈPé÷v‰ÐÁà)Ћ4Ÿ$ƒþÿ…ÿÿÿ¾¸‰ÃŠM Ó㐍v‰ÐÁà)ÐÁàfƒ¸ˆ$„…˜$ƒ} v艢Ǹÿÿÿÿë‰Ú#‰Ð…Àu^v‰ÐÁà)ЍŜ$ƒ} vèV¢Çë‰ö »ëvC;èt#}0ƒìÝÿ°$º#Vÿ º#ƒÄ…ÀtÙëvFþ™ŽSÿÿÿèf…Àuƒ=ät#uèÄ ‹MԉÈP¸eô[^_]ÃU‰åWVSƒì‹u‹]¡Œ$@‰ÂÁâ)<Õ`$èŠú¡`¹##„Hºv©u=BÑøuô¾ƒ<µ€¹#ÿue‹E ‰0Ç@Ç@W<ƒþvèa¡Ç됉Öëɸþÿÿÿ‰ñÓÀ!ƒþvè?¡Çëv¸þÿÿÿ‰ñÓÀ!`¹#ûév µº€¹#‹[‹ÅÁ%‰ƒøÿu"ƒþvèñ Ç됸þÿÿÿ‰ñÓÀ!`¹#W<ƒþv +èÌ Çë ¸þÿÿÿ‰ñÓÀ![Áâ¹Á%‹
+‹u ‰‹‚Á%‰F‹‚ Á%‰FƒÂ‹
+©t ƒàý‰
+ëv[¡Ç%‰ÕÁ%‰Ç%ûéI‰Öë‹G<#tUº©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè Çëv¸þÿÿÿ‰ñÓÀ!ûéëv…Ûtƒ;uƒ{u +û¸ éÓ‰ö‹‰G@úèu‹Œ$R‰ÑÁá)Ñf‰Íh$ƒìhD$jèN\ƒÄUè¡H$;˜$|¡D$+”$‰Eè¡H$+˜$ë¡D$+”$H‰Eè¡H$+˜$ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰ÁáºÓMb‹Eì÷êÁú‹EìÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì Qèc¹ÿÿƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)ЋÅd$ƒì‹…À$QPÿRHƒÄhd¹#ÿ5Œ$èæòÿÿ¡Œ$@‰ÂÁâ)ÂfÇՈ$ƒÄ…Û„’ƒìEàPjè[U؃Ä‹Eà‰E؋EäC‰B…Ày +ÿM؁Bʚ;됁zÿɚ;~ ÿjʚ;ÿ5Œ$h$‹"ÿuÜÿuØÿ($‰ÃƒÄƒûÿuƒìÿ5Œ$jèù ƒÄ¡Œ$@‰ÂÁâ)‰Õ@$ÇŒ$ÿÿÿÿÇ $ÿÿÿÿè׺ÿÿƒì ¡Œ$@‰ÂÁâ)»`$¿DÓPèsè”ÇG@¡Œ$@‰ÂÁâ)ƒÄöDÓ2tû¸ é~‰Öë%¡`¹##„ûº‰ö©uáBÑøuô¾ƒ<µ€¹#ÿu=‹M ‰1ÇAÇAƒþv +è@Çë¸þÿÿÿ‰ñÓÀ!`¹#ûé vƒì µƒ€¹#Pèúðÿÿ‰ÇƒÄƒ»€¹#ÿu#ƒþvèòœÇë‰ö¸þÿÿÿ‰ñÓÀ!`¹#Áâ¹Á%‹
+‹] ‰‹‚Á%‰C‹‚ Á%‰CƒÂ‹
+©t ƒàý‰
+ëv¡Ç%‰ÕÁ%‰=Ç%ûël‹G<#…Àuû¸ë`v‰Öë‹G<º#t ©uéBÑøuô¾‹E ‰0Ç@Ç@W<ƒþvè/œÇëv¸þÿÿÿ‰ñÓÀ!û¸eô[^_]ÍvU‰åWVSƒì ‹}¡Œ$@‰ÂÁâ)4Õ`$è¹ú‹F<#…Àt è¦û颋‰F@úèq‹Œ$R‰ÑÁá)Ñf‰Íh$ƒìhD$jè6XƒÄUè¡H$;˜$|¡D$+”$‰Eè¡H$+˜$ë¡D$+”$H‰Eè¡H$+˜$ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì QèJµÿÿƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)ЋÅd$ƒì‹…À$QPÿRHƒÄhd¹#ÿ5Œ$èÍîÿÿ¡Œ$@‰ÂÁâ)»`$fÇDÓ(ÇŒ$ÿÿÿÿÇ $ÿÿÿÿèY·ÿÿ¡Œ$@‰ÂÁâ)¿DÓ‰$è™oè‹F<#ƒÄ…Àuû¸ë èÿû¸eô[^_]ÐU‰åSƒì‹]úEðPjè¢VƒÄƒ=º#ÿu
+ÇEèëWMèUð¡º#;B|¡º#+Eð‰E衺#+Bëv¡º#+EðH‰E衺#+Eôʚ;‰Aƒì ÿ5º#ÿh$ƒÄ…ÛtN]ð‹Eð£º#‹Eô£º#jh„‹"ÿuôÿuðÿ($‰ÃƒÄƒûÿuƒìÿ5Œ$jè:ƒÄ‰º#ë +vǺ#ÿÿÿÿû‹Eè‹]üÉÐU‰åVSƒì‹uƒ<µ€¹#ÿuC‰uèÇEìÇEð¡Œ$‰Eôƒþvèü˜Ç鮐¸þÿÿÿ‰ñÓÀ!`¹#降 µº€¹#‹[‹ÅÁ%‰ƒøÿu"ƒþv豘Ç됸þÿÿÿ‰ñÓÀ!`¹#[Áà¹Á%‹‰U苐Á%‰U싐 Á%‰Uð‹Á%‰UôP‹
+©tƒàý‰
+ë[¡Ç%‰ÕÁ%‰Ç%ƒìEèPVè
+ƒÄeø[^]ÃU‰åVSƒì¡Œ$@‰ÂÁâ)4Õ`$‹F0©…Í +‰F0‹F8‰Ã÷Ћ`¹#‰Ñ…ÂtA‰Ø÷л!Ètv‰Ú©u
+CÑøuòºƒì Rè„þÿÿƒÄ‹^8‰Ø÷Ћ +`¹#…ÁuÀ‹F8‰Ã÷ЋV<‰Ñ…ÂtZ‰Ø÷л!Ètv‰Ú©u
+CÑøuòº‰UèÇEìÇEð¡Œ$‰EôƒìEèPRèƒÄ‹^8‰Ø÷ЋN<…Áu¦f0ÿïÿÿeø[^]ÃU‰åWVSƒì,‹]œúX‰Â‰UÌ¡Œ$@‰ÂÁâ)Õ`$‰UЉÞÁæ}؁Æ`·#ü¹ó¥÷Eàuƒ}Ø„îƒ}Øÿ„ä÷EàuCƒ}Øu=ƒìShLK#èw}ƒÄ÷Eàtƒì‹M ÿqhbK#èX}ƒÄƒì jèç½ÿÿƒÄ‹UЋB8‰EԉƍUԃûv +èh–Çë ¸ˆÙÓà ‹EÔ E܉EԋUЃÂ<ƒûv +è<–Çë ¸þÿÿÿˆÙÓÀ!‹EԋUЉB8û÷Eàtƒìjÿu SÿUäëƒìj‹M ÿqSÿU؃Äú‹EЉp8‹ỦÐPeô[^_]ÃU‰åWVSƒì ‹}‰ÐÁà)ÐÁà¾`$fƒ|(uF˜àƒ<3ÿtƒì ÿ43ÿh$Ç3ÿÿÿÿƒÄƒìhd¹#Wèúèÿÿ‰ÂÁâ)‹Õd$ƒÄë ‰ÐÁà)ÐÁàfƒ¸ˆ$u!‹d$ƒì‹•À$WRÿPD¸ƒÄë‰ö¸eô[^_]ÍvU‰åWVSƒì º¿h·#¾d·#»l·#¹€¹#‰ö‰ÐÁàǀ`·#Ç8Ç0ÇÇ‘ÿÿÿÿBƒúvϺ»Á%¹Á%RÁàB‰ÇDƒú>~éÇèÆ%ÿÿÿÿÇüÆ%ÇÇ%Ç`¹#Çd¹#ÿÿÿÿǺ#ÿÿÿÿº¹Àº#»Äº#‰öRÁàÇÇÿÿÿÿÆDBƒú~áƒìjh†"è¾ÄÿÿƒÄeô[^_]ÍvU‰å‹EǸ]ÐU‰å‹EÇÿÿÿÿ¸]ÐU‰åƒì‹U‹M ƒùvèê“Ǹÿÿÿÿ됸Óà ¸ÉÃU‰åƒì‹U‹M ƒùv趓Ǹÿÿÿÿ됸þÿÿÿÓÀ!¸ÉÃU‰åƒì‹M ƒùv腓Ǹÿÿÿÿë ¸Óà‹U#ÉÉöU‰åƒì ÿuÿu ÿuèÔçÿÿƒÄÉÍvU‰åWƒì$‹UEè‰E丹‹}äüó«ƒìjÿuäRèBñÿÿƒÄ…Àu +‹Uè‹E ‰¸‹}üÉÐU‰åƒì jÿu ÿuèñÿÿƒÄÉÃU‰åƒì‹E…Àu¸ëƒìPÿu ÿuèíðÿÿƒÄÉÃU‰åƒìÿuÿ5Œ$è`èÿÿƒÄÉÍvU‰åVSƒì ‹]‹E ‰EèÇEìÇEð脒‹0ƒìEØPEèPSèAéÿÿƒÄ»ÿÿÿÿ…Àu ÷Eàu‹]ØèT’‰0‰Øeø[^]ÐU‰å‹M¡Œ$@‰ÂÁâ)¡`¹# ՜$‰¸]ÉöU‰åSƒì‹E‹U ú‹Œ$‰Œ$Çät#jPj jèœìÿÿƒÄÇät#‰Œ$û‹]üÉÍvU‰åS‹M‹] ¡èt#ʼnŠ º#‰š$º#@£èt#‹$ÉÍvU‰åVS‹]Cÿƒøv苑Ç~¸ÿÿÿÿëp‰öœúX‰Æ[€<…Ⱥ#u‰ðPèa‘ǸÿÿÿÿëF[Áâ¹Àº#‹E ‰
+‹E‰‚ĺ#ÆD
+ƒìjhċ"Sè¹T·Ã‰$èÒeƒÄ‰ðP¸eø[^]ÍvU‰åƒì¸ÉÍvU‰åƒì ‹E‰EèÇEìÇEð‹Œ$‰UôUèRPè›ùÿÿƒÄÉÉöU‰åVS‹uv‰ÃÁã)ÃÁã¸`$DŽàÿÿÿÿL0ƒìhd¹#Vèõãÿÿ‹ƒd$ƒÄ‹…À$VPÿRDè7¢ÿÿƒÄeø[^]ÐU‰åƒìǺ#ÿÿÿÿjjèWèÿÿè¢ÿÿƒÄÉÐU‰åƒìEüÇEüÿÿÿÿPèôÿÿƒÄÉÐU‰åƒì‹E‹‰EüEüPjÿìt#‹UüRÁà¹Àº#ƒÄƒ<t ûƒì RÿƒÄú‹Eü@ƒì ÿ4…ĺ#èö›ÿÿƒÄÉÐU‰åWVSƒì ‹u ‹]ƒ}t讏Ǹÿÿÿÿén‰öúƒ=€Â#ÿt ƒ=Ç%ÿuûèƒÇ ¸ÿÿÿÿéCv¡€Â#‰‹€Â#Õ)п„»#‹DÇ0£€Â#‹Õ)й€»#ÇDÁ0…öu8‹Õ)ÐÇÁ‹Õ)ÐÇÇ‹Õ)Љň»#닍<Å)Ǎ<ý€»#ü¹ó¥‹Õ)ЍŃº€»#u#¡Ç%‰‚¨»#@ÁàƒˆÁ%‹€Á%£Ç%‹Õ)ÐÇŔ»#ÿÿÿÿ‹Õ)ЍŘ»#Ç@NjÕ)ЍÅ »#Ç@NjÕ)ÐÇŬ»#û¸ƒÄ [^_]ÃU‰åSƒì‹]ƒûwúÝ)؃<Å°»#uûèÿÇ¸ÿÿÿÿ閍vÝ)ØÁàǀ°»#ƒÀº„»#ƒ<ÿtƒì ÿ4ÿh$ƒÄÝ)ØÁàƒ¸€»#uE‹¨»#R ÅöÁ%u¡Ç%‰Á%‰Ç%Ý)؋Ũ»#@ƒ$ÅÁ%üû¸‹]üÉÃU‰åWVSƒìL‹E‰E´Áà+E´Áàƒ¸€»#…‹P ‹‚ˆ»#@öÅÁ%t¸Œ»#ƒ< „ôÿéì‰ö‹M´Áá+M´Ááy LJŒ»#¾ˆ»#‹7@‹Ç%‰ÝÁ%£Ç%jÿ41ÿ±„»#jèhçÿÿ‹7@ƒ ÅÁ%錐‹E´Áà+E´Áเ»#ƒ<uwPƒ<
+tÿ°ˆ»#ÿ°Œ»#ÿ4
+ëQvÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà‹E´Áà+E´Áàˆ»#Rÿ°Œ»#EÈPEÄPèíÕÿÿƒÄ‹E´Áà+E´Åƒ¸ˆ»#u +ƒ¸Œ»#„Àº »#‹E´Áà+E´ŋ‰E¸M¸‹D‰A‹E¸ƒ˜»#‰ƒ »#‹Aƒœ»#‰B…Àyÿ‹ »#Bʚ;ë‰özÿɚ;~ ÿjʚ;‹E´Áà+E´ÿu´hŽ"ÿ4Ť»#ÿ4Å »#ÿ($‰ÃƒÄƒûÿuƒìÿ5Œ$jè+ùÿÿƒÄ‹E´Áà+E´‰Ŕ»#ë‰ö‹E´Áà+E´ÇŔ»#ÿÿÿÿeô[^_]ÃU‰åWVSƒì‹u‹}ÇEäƒþw3ƒ}t-‹Exÿɚ;w!‹]{ ÿɚ;wúõ)ðƒ<Å°»#uûèÁŠÇ¸ÿÿÿÿ鐅ÿ„·õ)ðƒ<Ŕ»#ÿuÇG ÇGëwƒìEèPjèGÇEäƒÄ¹ »#õ)ðō]è‹D;C|‹+Eè‰G‹D+Cë(¹ »#õ)òÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹˜»#õ)ðÁà‹‰‹D‰Gõ)ðÅº„»#ƒ<ÿtƒì ÿ4ÿh$ƒÄ‹Eƒxu
+ƒx „þº˜»#õ)ð ŋ]‹‰
+‹C‰D
+÷E t¸ »#‹S‰‹S ‰Tëmvƒ}äuƒìEèPjèøEƒÄõ)ð ō‘ »#‹Eè‹]C‰ »#‹EìC ‰B…Àyÿ‰ »#Bʚ;ëzÿɚ;~ ÿjʚ;õ)ðVhŽ"ÿ4Ť»#ÿ4Å »#ÿ($‰ÃƒÄƒûÿuƒìÿ5Œ$jè­öÿÿƒÄõ)ð‰Ŕ»#û¸eô[^_]ÃU‰åWVSƒì ‹]‹} ƒûwúÝ)؃<Å°»#uûèzˆÇ¸ÿÿÿÿ鷉öÝ)؃<Ŕ»#ÿuÇG ÇGëoƒìEèPjèÒDƒÄ¹ »#Ý)؍ōuè‹D;F|‹+Eè‰G‹D+Fë'¹ »#Ý)ÚÁâ‹+EèH‰G‹D+Eìʚ;‰G ¹˜»#Ý)ØÁà‹‰‹D‰Gû¸eô[^_]ÍvU‰åƒìƒ}t藇Çëv臇ǸÿÿÿÿÉÉöU‰åƒìƒ}tèg‡Ç¸ÿÿÿÿë‰öƒì ÿu èÅ®ÿÿ¸ƒÄÉÍvU‰åƒì‹E ƒ}tè,‡Ç¸ÿÿÿÿëv…Àt +ÇÇ@è¸ÉÃU‰åƒì‹UƒúwúÕ)Ѓ<Å°»#uûè܆ǸÿÿÿÿëvÕ)ЋŬ»#ûÉÐU‰åWVS¹»„»#¿€»#¾Œ»#‰öÍ)ÈÁàÇDÿÿÿÿ˜»#ÇBǍP0Ç:ÇD A‰‰Áƒù~ºÇ|Â#ÿÿÿÿÇ€Â#[^_]ÐU‰å]ÍvU‰å¸]ÉöU‰åVSœúX‰Ã¡Œ$@‰ÂÁâ)¾`$‹DÖ0©t0©t)ƒì jèr°ÿÿ¡Œ$@‰ÂÁâ)¿DÖ‰$è"[ƒÄ‰ØPeø[^]ÃU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡Œ$@‰ÂÁâ)¹`$‹DÑ0Áèƒà‹U ‰¡Œ$@‰ÂÁâ)Õ0‹
+%ÿþÿÿ ؉
+û¸‹$ÉÉöU‰åS‹]úût ¸ÿÿÿÿ…ÛuL¡Œ$@‰ÂÁâ)¹`$‹DÑ0Áè ƒà‹U ‰¡Œ$@‰ÂÁâ)Õ0‹
+%ÿýÿÿ ؉
+û¸‹$ÉÉöU‰åWVSƒì ‹} ÇEðú‹EÇÿÿÿÿÇ@¾;5„$s9v‹µ $ƒ{u ƒìWVÿS,ƒÄ…ÀxƒìWÿuVÿS0‰EðƒÄF;5„$rÊû‹Eðeô[^_]ÉöU‰åƒì‹U¸ƒ:ÿt ¸ƒzu‹‹… $ƒìRÿ2ÿP4ƒÄÉÍvU‰åƒì‹U¸ƒ:ÿt‹‹… $ƒìRÿ2ÿP8ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹… $ƒìRÿ2ÿP<ƒÄÉÉöU‰åƒì‹U¸ƒ:ÿt‹‹… $ƒìRÿ2ÿP@ƒÄÉÉöU‰åVS‹u‹µÀ$ƒìÿ°ôh™K#è^j»ƒÄ‰ö[‰ÐÁà)ÐÁà9°d$……ƒÀ º`$f|€ttfƒ|tlƒì f‹Dfƒøwƒì ·ÀPè0¤ƒÄë%v·Ð¸sK#ú€t¸K#út¸‹K#P[‰ÐÁà)ÐÁàÿ°4$t$PShL#è¹iƒÄ Cû™ŽUÿÿÿeø[^]ÉöU‰åWVSƒì ‹E‹…À$‰Eð‹¸üƒì ‹Uð‹‚ðøPèÔÿÿ‰ÆƒÄƒþÿu +¸ÿÿÿÿ…ÿtrOëՐv‰ÐÁà)Ѝ Åö‘$tRQ@»l$ƒ<D‹D$‰ƒìý‰Ø‹Uð‚ðPVèôÑÿÿƒÄ‹Eð˜ðSVèÓÿÿƒÄéiÿÿÿ‰ðeô[^_]ÉöU‰åWVSƒì‹E‹…À$‰Eð‹Mƒy(…©‹=Œ$‰ÐÁà)Ѝžd$‹U93…‹M I‰ÂÁâ)ÂÁ⋄Љ„йl$‹D@‰D@‹„à‰„àƒÂ0¹`$‹
+%ÿ÷ÿÿ‹\0ã ؉
+‹UðƒÂ¸ƒ¼º€ÿ•ÀH‹] ‰„š€é¢v‹U R‰ÂÁâ)ÂÁâ»d$‹A‰„Ѓyt‹A‰‚¬$‹A‰„àë-‰ö‹] [‰ÐÁà)ÐÁà‹]ð‹“ô‰¬$‹“ô‰D$ƒy$u‹E @‰ÐÁà)Ё Ő$¸ƒy ”ÀH‹U ‹Mð‰„‘ˆ¸ƒÄ[^_]ÃU‰åWVSƒì ‹U‹<•À$ƒ¿t8LJƒì‹E @‰ÐÁà)ЋÅ4$‹—ðÂPÿu èAÑÿÿ酋E @‰ÐÁà)ЍÅöƒ‘$t?K@¾l$ƒ<11ºd$‹1„à‰1ƒì‹„Ћ—ðÂPÿu èãÐÿÿë*ƒì‹E @‰ÐÁà)ЋÅ4$‹—ðÂPÿu èKÐÿÿƒÄ‹E @‰ÐÁà)ÐfÇň$€eô[^_]ÐU‰åWVSƒìH‹]ÇE¼ÇEÀfÇEÄÇEÈÇEÌÇEÐÇEÔÇEØÇEÜÇEà¶Ã +f‰E¸‹À$‹€ø‰EÈÇE̍E¸jjPh˜"h¥K#è}–ÿÿ‰ÆƒÄ ƒþÿuƒì h@L#èjÇÿÿƒÄ‹<À$v‰ÐÁà)Ðfƒ<ň$tµ€Gƒ<ÿtJÿëE‰öƒìv‰ÃÁã)ÃÁ㍃¤$PjèJ;fǃˆ$€ƒÄ‹ƒ4$‹—ðÂPVè|ÏÿÿƒÄeô[^_]ÐU‰åWVSƒì‹}hªK#èÒÆÿÿèa°ÿÿ‰EðƒÄ hPhÀK#è·ÆÿÿÇ$èdzÿÿ‰ÃƒÄShÞK#è›Æÿÿ‹Eð‰…À$ƒÄ jhêK#Sè=efÇCÆCÇC8¢"ÇCd¢"ÇC ,˜"ÇC$ ™"ÇC(p¢"ÇC,̙"ÇC0|¢"ÇC4„¢"ÇC8¢"ÇC<D›"ÇC@Т"ÇCD\£"ÇCH¤£"ÇCL¬£"ÇCPD¤"ÇCTŒ¤"ÇCXÀ¤"ÇC\¤¥"ÇC`Ä¥"ÇCdÜ¥"ÇChô¥"ÇCl ¦"ÇCp$¦"ÇCt<¦"ÇCxT¦"ÇC|l¦"ǃ€„¦"ǃ„œ¦"¸ƒÄS‰öDŽ‚€ÿÿÿÿ@=™~í‹EH‰ƒüƒì ‹EÁàP萲ÿÿ‰ƒð¾ƒÄ;u}ƒì ‹ƒððPè‚ÌÿÿƒÄF;u|åÿçw¿èÿ ¡v¿ ¡‰»ô‹E‰ƒøƒ} tƒìjÿuðh@œ"舭ÿÿƒÄeô[^_]ÐU‰åWVSƒì ‹M‹u ‹]‹À$‰Eð…Éx[; +$sS‹À$‹@%ÿÿÿ=u=þ™wv‰ÐÁà)Ðfƒ<ň$u +¸éèvv‰ÐÁà)Ð9 Åd$t +¸&éȍv…Ûuv‰ÐÁà)Ё Ő$ë)ƒûuv‰ÐÁà)Ё$Ő$ÿ÷ÿÿë ¸郉öv‰ÐÁà)ÐÁà˜Ð¿d$‹U9;t\f¸ˆ$€u=ƒì‹;‹Mð‹‘ðÂPVè4Ëÿÿ‹E‰;ƒÄ‹Uð‹‚ð‹MÈPVèQÌÿÿƒÄëv‰ÐÁà)ЋU‰Å4$¸eô[^_]ÍvU‰åVS‹M‹4À$…Éx; +$s‹À$‹@%ÿÿÿ=t¸ÿÿÿÿëw¡Œ$@‰ÂÁâ)¸ÿÿÿÿ9 Õd$uZúè!P‹Œ$R‰ÑÁá)Ñ»`$f‰DËdž託ÿÿ¡Œ$@‰ÂÁâ)ƒì ¿DÓPèçO莡ÿÿƒÄû¸eø[^]ÉöU‰å‹E‹…À$‹€ü]ÍvU‰å‹E‹…À$‹€ô]ÍvU‰åS‹]‹M …ÛxU;$sM‹À$‹@%ÿÿÿ=u7ù™wI‰ÐÁà)Ðfƒ<ň$u¸ëMI‰ÐÁà)Ð9Åd$t ¸&ë3‰öI‰ÁÁá)ÁÁá¸ö‘$”À‹U‰‹‘4$‹E‰¸‹$ÉÉöU‰å‹E f8t·‹E +9Âu¸ë¸ÿÿÿÿ]ÐU‰å¸ÿÿÿÿ]ÉöU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰åSƒì ‹E‹M ‹…À$I‰ÐÁà)ЋÅ4$‹“ðÂPQèÓÈÿÿƒÄ‹]üÉÍvU‰åWVSƒì ‹E‹u ‹<…À$v‰ÐÁà)Ðfƒ<ň$tµ€Gƒ<ÿtHÿëCƒìv‰ÃÁã)ÃÁ㍃¤$PjèR5fǃˆ$€ƒÄ‹ƒ4$‹—ðÂPVè„ÉÿÿƒÄeô[^_]ÐU‰åSƒì ‹E‹M ‹…À$I‰ÐÁà)ÐÁàfǀˆ$€‹€4$‹“ðÂPQè8ÉÿÿƒÄ‹]üÉÃU‰å]ÍvU‰åWVSƒì ‹U‹•À$‰Eð‹U <•€‰ÆƒÆƒ<7~MƒìR‰ÃÁã)ÃÁ㍃¤$Pjè‹4ÿ 7ƒÄ‹ƒ4$‹Mð‹‘ðÂPÿu èRÈÿÿfǃˆ$€ƒÄë‹E @‰ÐÁà)ÐfÇň$eô[^_]ÐU‰åƒì‹E‹M ‹…À$ƒÀDŽˆ€ÿÿÿÿI‰ÐÁà)ÐfÇň$h$QèðÉÿÿƒÄÉÍvU‰å‹E‹U ‹…À$ƒÀDŽ€R‰ÐÁà)ÐfÇň$]ÃU‰åWVSƒì4‹u v‰EäÁà+EäfÇň$EèPjè“3Mè»@B‹Eº÷ó‰Uà’€€‰E܋A‹U܍ЉE؉A»¡/¸D÷ë‰ÓÁû‹EØÁø)ÿƒÞC‹E÷ç‰×‰øÁèEè‹A»Êš;™÷û‰Ó‰YƒÄVh´¦"ÿuìÿuèÿ($‰ÃƒÄƒûÿuƒìÿ5Œ$jèAäÿÿƒÄ v‰ÈÁà)ȉÅ@$eô[^_]ÐU‰åƒìÿ5Œ$jèäÿÿ¸ƒÄÉÍvU‰åƒìÿ5Œ$jèñãÿÿƒÄÉÃU‰åƒìÿ5Œ$jèÙãÿÿƒÄÉÃU‰åƒìÿ5Œ$jèÁãÿÿƒÄÉÃU‰åƒìÿ5Œ$jè©ãÿÿƒÄÉÃU‰åƒìÿ5Œ$jè‘ãÿÿƒÄÉÃU‰åƒìÿ5Œ$jèyãÿÿƒÄÉÃU‰åƒìÿ5Œ$jèaãÿÿƒÄÉÃU‰åƒìÿ5Œ$jèIãÿÿƒÄÉÃU‰åƒìÿ5Œ$jè1ãÿÿƒÄÉÃU‰åƒìÿ5Œ$jèãÿÿƒÄÉÃU‰åWVSƒì‹MI‰ÃÁã)ÃÁãºd$‹‹4…À$¿`$fÇD(€‹„Ћ–ðÂPQèÕÅÿÿDŽàÿÿÿÿ衆ÿÿƒÄeô[^_]ÉöU‰åVSƒì h`M#è½ÿÿè­¦ÿÿ‰ÆÇ$Œè'ªÿÿ‰Ã‰µÀ$ƒÄ jhøL#Sè®[fÇCÆCÇC`¨"ÇC”¨"ÇC  ¨"ÇC$Ȩ"ÇC(ÇC,à¨"ÇC0ì¨"ÇC4ô¨"ÇC8©"ÇC<©"ÇC@$©"ÇCDL©"ÇCHt©"ÇCLœ©"ÇCPÄ©"ÇCTì©"ÇCXª"ÇC\<ª"ÇC`hª"ÇCdª"ÇCh¸ª"ÇClàª"ÇCp«"ÇCt0«"ÇCxX«"ÇC|€«"ǃ€¨«"ǃ„Ы"ǃˆÿÿÿÿÇ$M#è¼ÿÿƒÄ jVhø«"è|¤ÿÿƒÄeø[^]ÉöU‰å‹M‹E ‹À$fƒ8t·9Èu¸ƒºˆÿt¸ÿÿÿÿ]ÉöU‰å¸ÿÿÿÿ]ÉöU‰åƒì‹E‹…À$ÿ°ˆheL#èìYƒÄÉÍvU‰å‹E‹…À$‹€ˆ]ÍvU‰å¸]ÉöU‰å]ÍvU‰å¸]ÉöU‰å]ÍvU‰å‹E @‰ÂÁâ)ÂfÇՈ$]ÃU‰åƒìhtL#èxYƒÄÿ5Œ$j è„àÿÿƒÄÉÍvU‰åƒìh{L#èPYƒÄÿ5Œ$j è\àÿÿƒÄÉÍvU‰åƒìh‚L#è(YƒÄÿ5Œ$j è4àÿÿƒÄÉÍvU‰åƒìh‰L#èYƒÄÿ5Œ$j è àÿÿƒÄÉÍvU‰åƒìhL#èØXƒÄÿ5Œ$j èäßÿÿƒÄÉÍvU‰åƒìh—L#è°XƒÄÿ5Œ$j è¼ßÿÿƒÄÉÍvU‰åƒìhžL#èˆXƒÄÿ5Œ$j è”ßÿÿƒÄÉÍvU‰åƒìh¥L#è`XƒÄÿ5Œ$jèlßÿÿ¸ƒÄÉÉöU‰åƒìh¬L#è4XƒÄÿ5Œ$jè@ßÿÿƒÄÉÍvU‰åƒìh³L#è XƒÄÿ5Œ$jèßÿÿƒÄÉÍvU‰åƒìhºL#èäWƒÄÿ5Œ$jèðÞÿÿƒÄÉÍvU‰åƒìhÁL#è¼WƒÄÿ5Œ$jèÈÞÿÿƒÄÉÍvU‰åƒìhÈL#è”WƒÄÿ5Œ$jè ÞÿÿƒÄÉÍvU‰åƒìhÏL#èlWƒÄÿ5Œ$jèxÞÿÿƒÄÉÍvU‰åƒìhÖL#èDWƒÄÿ5Œ$jèPÞÿÿƒÄÉÍvU‰åƒìhÝL#èWƒÄÿ5Œ$jè(ÞÿÿƒÄÉÍvU‰åƒìhäL#èôVƒÄÿ5Œ$jèÞÿÿƒÄÉÍvU‰åƒìhëL#èÌVƒÄÿ5Œ$jèØÝÿÿƒÄÉÍvU‰åSƒì0‹]ÇEÜÇEàfÇEäÇEè¶Ãf‰EØÇEìEØjjPh„¬"hòL#è‡ÿÿƒÄ ‹À$‰Ã‰šˆƒûÿuƒì h M#èæ·ÿÿƒÄ[‰ÐÁà)ÐÇŘ$ÿÿÿÿ‹]üÉÐU‰åôëýU‰åWVSƒì ‹} ¾ú»ëvCûÿ2Ý)ØÁຠÂ#€|t߃ìÿ4ÿuèaVƒÄ…Àuʾ…öt1ÿÀuèðnÇûéÜûÝ)؍…¤Â#éˉö÷Ç@uè¿nÇû髍v‹E‰Eð=ÿ~èžnÇû銉ö‹pã#ƒúÿtqÕ)Ѝ<…w‹†¤Â#£pã#ƒì ÿuèV@‰$è×£ÿÿ» Â#‰ƒÄÿuPè7U‹Eð‰‡¨Â#‡¬Â#‰$èĽÿÿÆDƒÄû‡¤Â#ëvènÇû¸eô[^_]ÍvU‰åWVSƒì ¾ú¿» Â#vý)øÁà€|tƒìÿ4ÿuèUƒÄ…Àu¾Gÿÿ~ʅötJƒì ÿuèOUƒÄ@Pý)ûÁã¾ Â#ÿ43èu£ÿÿƒÃÆD3¡pã#‰ƒ¤Â#‰=pã#ƒÄûë‰öèSmÇû¸eô[^_]ÍvU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…¸Â#uèmǸÿÿÿÿé‰öèÏæÿÿúè5B‹Œ$R‰ÑÁá)Ñf‰Íh$‹Õ)Ѝ4… Â#ƒ~ ÿu
+ƒ~…“ƒìWjÿìt#ƒÄhD$jè8)ƒÄUè¡H$;˜$|¡D$+”$‰Eè¡H$+˜$ë!‰ö¡D$+”$H‰Eè¡H$+˜$ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì QèJ†ÿÿƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)ЋÅd$ƒì‹…À$QPÿRH‹ +Œ$I‰ÐÁà)л`$fÇDÃ(Íǂ Þ#‹‰‚¤Þ#ƒÄF PQèZ¼ÿÿÇŒ$ÿÿÿÿÇ $ÿÿÿÿèEˆÿÿ¡Œ$@‰ÂÁâ)¿DÓ‰$è…@è,’ÿÿƒÄûèÿäÿÿë8ÿNƒìWjÿìt#¡Œ$@‰ÂÁâ)¿Õh$‰$èF@èí‘ÿÿƒÄû¸eô[^_]ÃU‰åWVSƒì ‹}‹]?ÿw‹Õ)Ѐ<…¸Â#uè¯jǸÿÿÿÿéVv…ÛuúëúèÒ?‹Œ$R‰ÑÁá)Ñf‰Íh$‹Õ)Ѝ4… Â#…Ûu0ƒ~ ÿu‹E 9F}èMjÇ û¸ÿÿÿÿéó‹E )Fûéâèäÿÿƒ~ ÿu ‹E 9F‘ƒìWjÿìt#ƒÄhD$jèš&ƒÄUè¡H$;˜$|¡D$+”$‰Eè¡H$+˜$ë¡D$+”$H‰Eè¡H$+˜$ʚ;‰B‹Mè ‰ ‰ ‰ ‰ ‰ ‰Áá‹]ìºÓMb‰Ø÷êÁú‰ØÁø)ÂыŒ$R‰ÐÁà)Ð) Ŭ$ƒì Q讃ÿÿƒÄƒ=œ$ÿtƒì ÿ5œ$ÿh$Çœ$ÿÿÿÿƒÄ‹ +Œ$I‰ÐÁà)ЋÅd$ƒì‹…À$QPÿRH‹ +Œ$I‰ÐÁà)л`$fÇDÃ(͋E ‰‚ Þ#‹‰‚¤Þ#ƒÄF PQ迹ÿÿÇŒ$ÿÿÿÿÇ $ÿÿÿÿ誅ÿÿ¡Œ$@‰ÂÁâ)¿DÓ‰$èê=葏ÿÿƒÄûèdâÿÿë<‰ö‹E )FƒìWjÿìt#¡Œ$@‰ÂÁâ)¿Õh$‰$è§=èNÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹}?ÿw‹Õ)Ѐ<…¸Â#uèhǸÿÿÿÿéU‰öè,…À„‡œúX‰Æ‹Õ)Ѝ… Â#‹JA‰J‹Z ƒûÿtG‹Ý Þ#9È<)Á‰È‰BƒìB PSèb·ÿÿ[‰ÐÁà)ЋÅd$ƒÄ‹•À$SRÿPDèUyÿÿƒÄƒìWjÿìt#ƒÄ‰ðPé¼‰öúèª<‹ $R‰ÑÁá)Ñf‰Íh$‹Õ)Ѝ… Â#‹JA‰J‹Z ƒûÿtG‹Ý Þ#9È<)Á‰È‰BƒìB PSè¶ÿÿ[‰ÐÁà)ЋÅd$ƒÄ‹•À$SRÿPDè݃ÿÿƒÄƒìWjÿìt#¡Œ$@‰ÂÁâ)¿Õh$‰$è <貍ÿÿƒÄû¸eô[^_]ÐU‰åWVSƒì ‹] ÇEð‹E8ÿw‹Õ)Ѐ<…¸Â#uèlfǸÿÿÿÿéÊèc*…À„ÃœúX‰Â‰Uì‹E‹Õ)Ѝ4… Â#^‹^ ƒûÿts݉‹€ Þ#;F_¿ Þ#ÇEðv‹F+:‰FƒìF PS袵ÿÿ[‰ÐÁà)ЋÅd$ƒÄ‹•À$SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿìt#ƒÄƒ}ðtèdwÿÿ‹Uì‰ÐPéõúèÊ:‹ $R‰ÑÁá)Ñf‰Íh$‹E‹Õ)Ѝ4… Â#^‹^ ƒûÿtr݉‹€ Þ#;F^¿ Þ#ÇEð‰ö‹F+:‰FƒìF PSèÊ´ÿÿ[‰ÐÁà)ЋÅd$ƒÄ‹•À$SRÿPD‹^ ƒÄƒûÿt݋:;F~°ƒìÿujÿìt#ƒÄƒ}ðt贁ÿÿ¡Œ$@‰ÂÁâ)ƒì ¿Õh$Pèð9藋ÿÿƒÄû¸eô[^_]ÉöU‰åWVSƒì ¾¿¤Â#õ)óÁãǃ Â#‰4;ǃ¨Â#ƒì ƒ¬Â#PèÞ³ÿÿƒÃF‰;ƃ¨Â#ƒÄ‰Æþÿ~±Ç˜Þ#ÿÿÿÿÇpã#ƒìjh8»"芔ÿÿƒÄeô[^_]ÍvU‰åVS‹uú>ÿw‹Õ)Ѐ<…¸Â#uèÉcÇû¸ÿÿÿÿënvƒì ‹Õ)л Â#ÿ4ƒèUKƒÄ@P‹Õ)Ðÿ4ƒè™ÿÿ‹Õ)ÐÆDƒ‹Õ)Ћpã#‰…´Â#‹£pã#ƒÄû¸eø[^]ÉöU‰åƒì‹Mú9ÿw‹Õ)Ѐ<…¸Â#uècÇû¸ÿÿÿÿëb‰ö‹Õ)Ѓ<…¬Â#ÿtèîbÇû¸ÿÿÿÿë8‹Õ)ÐÆ…¸Â#‹Õ)Ћpã#‰…´Â#‹£pã#û¸ÉÉöU‰åSƒì‹M‹] 9ÿw‹Õ)Ѐ<…¸Â#uèubǸÿÿÿÿë_ú‹Õ)ÐÁàƒ¸¬Â#ÿu ‹€¨Â#‰ë7‰öÇ‹Õ)Ћ…¬Â#¹h$vÿ @‰ÐÁà)ЋDÁPƒøÿuëû¸‹]üÉÃU‰åVS‹u‹M¸ùÿ‡–ú‹pã#‰ƒúÿtnÕ)Ћ…´Â#£pã#‹Õ)л Â#ǃ‹Õ)Љ …¨Â#ƒì ‹Õ)Ѝ…¬Â#Pè±ÿÿ‹Õ)ÐÆDƒƒÄëègaÇû¸ÿÿÿÿëû¸eø[^]ÍvU‰åƒì‹M9ÿw‹Õ)Ѐ<…¸Â#uèaǸÿÿÿÿë=ú‹Õ)Ѝ… Â#ƒx ÿuƒxuèì`Ç û¸ÿÿÿÿë ‰öÿHû¸ÉÐU‰å‹E@‰ÂÁâ)¸fƒ<Ո$”À]ÐU‰åVS‹][‰ÐÁà)Ѝ4Åfƒ¾ˆ$uAƒì‹ݤÞ#Õ)Ѝ…¬Â#PSè°ÿÿ‹†d$ƒÄ‹…À$SPÿRD¸ƒÄ됸eø[^]ÃU‰åVSƒ=øt#…ÚÇøt#¹» Ç%¾$Ç%‰ÁàP ÆÇ2ÿÿÿÿÆDAƒùváƒìjjh€ã#èÜýÿÿ¹ƒÄ¾„É%»€É%‰ö‰ÁàQ‰0Ɖуù +véÇ´Ë%ÿÿÿÿÆ°Ë%ÇxÉ%¹¾äË%»àË%vÍ)ÈÁàQ‰0ƉуùvãÇÏ%ÿÿÿÿÆ Ï%Ç(Ï%eø[^]ÐU‰åWVSƒìŠEˆEóŠUˆUòfÇEæ¾<u€út €}óu€}òuè_Ǐ¸ÿÿÿÿé7‰öúƒ=xÉ%ÿuèí^ǍûÇEìÿÿÿÿ됡xÉ%€‹ՄÉ%‰xÉ%û‰Eìƒ}ìÿu +¸ÿÿÿÿéìvƒì h€ã#ègñÿÿƒÄ‹]¾¹º÷ñ‰×ëf‰ö¿€<Å@Ç%t0ƒìÿu¿ōƒ Ç%Pè³EƒÄ…Àu€»8Ç%„Ÿ¾ëG¹‰øº÷ñ‰×fÿEæfƒ}懜‰ó„Ût–¿Áãƃ@Ç%ƒìÿuƒ Ç%Pè÷D‹E쉃4Ç%ƒÄ€}óu‰Â’‹] f‰ňÉ%ëv‹E썀‹E ¯Ef‰ՈÉ%úƒì ‹U썒Áã·ƒˆÉ%Pè-“ÿÿºŒÉ%‰ƒÄû…Àu%è”]ǒƒì h€ã#èAõÿÿ¸ÿÿÿÿ魍v‹E썀ÁãS‰UྀÉ%‹ƒŒÉ%‰‚„É%‰2ƒìjjƒœÉ%Pè:ûÿÿƒÄ ·D3Pjƒ É%Pè#ûÿÿƒÄ jjÃ¤É%SèûÿÿŠ]ó‹Eàˆ\0ƒÄúƒ=(Ï%ÿuèø\ǎûÇEèÿÿÿÿë¡(Ï%Å)‹•äË%‰(Ï%û‰Eèƒ}èÿu_ƒì h€ã#èvôÿÿ‹Eèéä‰öè§\ǐƒì h€ã#èTôÿÿ¸ÿÿÿÿéÀ‰öèƒ\Ǒƒì h€ã#è0ôÿÿ¸ÿÿÿÿ霉ö‹EèÁà+EèÁà¹àË%ŠUòˆT P‹]ì‰
+‹] f‰\
+ǀäË%ÿÿÿÿ‰ºèË%‹]썛ÆՀÉ%ƍ¿ōr¿ Ç%€|>t%ƒì¶D>Pš<Ç%SèGõÿÿÆD>‰$èšøÿÿƒÄƒì h€ã#èŽóÿÿ¿EèƒÄeô[^_]ÍvU‰åWVSƒìŠEˆEóŠ]ÇEè¿ÆEç<u„Ût €}óu€ûuè‚[Ǐ¸ÿÿÿÿé0‰öúƒ=(Ï%ÿuèa[ǎûÇEìÿÿÿÿë ¡(Ï%Å)‹•äË%‰(Ï%û‰Eìƒ}ìÿu ¸ÿÿÿÿéߐ‹EìÁà+EìÁàºàË%ˆ\ ‹M f‰LǀäË%ÿÿÿÿƒì h€ã#è°íÿÿƒÄ‹U¾¹º÷ñ‰Öë]v¶€<Å@Ç%u ¿ÆEçë8ƒìÿu¶Å Ç%PèöAƒÄ…Àu¿ëF¹‰ðº÷ñ‰ÖÿEèƒ}è‡Ò‰ù„Ét €}çuR¶Á㸠Ç%ÆD ÆDƒìÿuPè>AƒÄ jjÃ<Ç%Sè/øÿÿÇ$€ã#èçñÿÿƒÄ jjSè:ïÿÿëM¶ōCº Ç%€|t'þDƒì h€ã#è®ñÿÿƒÄ jjƒ<Ç%Pèûîÿÿ됃ì h€ã#è‹ñÿÿƒÄ¶‹<Å4Ç%¿ŠUó:ŘÉ%tèªYǓ¸ÿÿÿÿéX‰ö€}óu¿·ňÉ%9E u€}ót(¿·ňÉ%™÷} …ÒtèdYǔ¸ÿÿÿÿéƒì h€ã#è ìÿÿ¶‹ÅDÇ%ƒÄƒúÿ„­€}óu#è&YǕƒì h€ã#èÓðÿÿ¸ÿÿÿÿéЍÕ)з…ôË%9E t"èíXǔƒì h€ã#èšðÿÿ¸ÿÿÿÿ鋋MìÁá+M썶Å »$Ç%‹‰äË%‹Mì‰ ë/‰öèŸXǑƒì h€ã#èLðÿÿ¸ÿÿÿÿë@¶‹Uì‰ÅDÇ%ƒì h€ã#è*ðÿÿ‹EìÁà+EìÁàH‰±èË%ºàË%‰<Æ¿EìƒÄeô[^_]ÉöU‰åWVSƒì¿E‰Eì‰ÇÁç)ÇÁ獗àË%‰Uðh€ã#èÏêÿÿ‹Mð‹Y›ÁãC‰Eèº$Ç%‹€Áà°€É%ƀ€É%F‰$èôÿÿF ‰$è„ôÿÿF$‰$èyôÿÿƒÄú·FPÿv 訍ÿÿû¹$Ç%‹Eè‹ú ’¡xÉ%‰̈́É%‰xÉ%ûƇàË%ƒÃ ‹Uð‹B‰ƒ$Ç%ú¡(Ï%‰‡äË%‹Mì‰ +(Ï%ûƃ Ç%Ç$€ã#è
+ïÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u ŠM¿UÕ)Ѝ…àË%‰Eð‹@€ŀÉ%‹Eð€x uèûVǔ¸ÿÿév€;uèÞVǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC PèÈëÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC PèœëÿÿƒÄ…ÀuÔƒì CPè-éÿÿƒÄ‹Uð·B‹{‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC$PèZïÿÿëƒì‹Uð·BPC$PèDïÿÿC‰$èíÿÿƒÄ¸eô[^_]ÐU‰åWVSƒì ‹} ŠM¿UÕ)Ѝ…àË%‰Eð‹@€ŀÉ%‹Eð€x uè‹Uǔ¸ÿÿév€;uènUǖ¸ÿÿéù‰ö€{tQ€{u,ƒì¶ÁP‹Uð·BPC$PèXêÿÿƒÄ…Àt;¸évƒì¶ÁP‹Uð·BPC$Pè,êÿÿƒÄ…ÀuÔƒì CPè½çÿÿƒÄ‹Uð·B‹s‰ÁÁéüó¥¨tf¥¨t¤·B‰ÁK‰K·S‰ÐC 9Ár‰È)ЉC€{u ƒì CPë8‰ö€{uƒì‹Uð·BPC Pèêíÿÿëƒì‹Uð·BPC PèÔíÿÿC‰$è-ìÿÿƒÄ¸eô[^_]ÐU‰åSƒìhM#è;ƒÄÿ5xÉ%h‹M#è;»ƒÄÝ)ØÁà€¸àË%t8àË%‹B€ŀÉ%ƒì ÿp ÿp$‹B€Å Ç%PShŸM#è®:ƒÄ Cƒûv­‹]üÉÃU‰åƒì`¿MÍ)ȋ…ðË%’ŀÉ%ÿp ÿp$RQhÀM#E¨Pèf:ƒÄ ÉÐU‰åSƒì‹]h€ã#èHæÿÿ¿ÓÕ)Ѝ …‹øË%€Å ƒÄ€º Ç%u ‹äË%‰‚$Ç%¿ÃÅ)ÂÁâƂàË%ú‹ +(Ï%‰ŠäË%£(Ï%ûƒì h€ã#èÓêÿÿƒÄ‹]üÉÍvU‰åWVSƒì ‹u ‹E‹<… $ú‹^…Ûu-ƒì j èdˆÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‹U‰‰F‹;Œ$u û¸#é~ƒ;ÿtc¾`$‰ö‹ +Œ$I‰ÐÁà)Ћ‰TÆP‹C‰„¬¡Œ$‰CÿCè`oÿÿ¡Œ$@‰ÂÁâ)ƒì ¿DÖPèŸ'èFyÿÿƒÄûúƒ;ÿu¤¡Œ$ÿD‡D¡Œ$‰û¸eô[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„À‹;Œ$tû¸髍vúè*'‹Œ$ [‰ÊÁâ)Êf‰Õh$‹E‹… $ÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt-p ‰Ù[‰ÐÁà)ЉÅ°$‹œž DŽŽ ÿÿÿÿƒûÿuÖÇGèfnÿÿ¡Œ$@‰ÂÁâ)ƒì ¿Õh$Pè¢&èIxÿÿƒÄû¸eô[^_]ÃU‰åVSƒì h$N#蒙ÿÿè]ƒÿÿ‰ÆÇ$蛆ÿÿ‰Ã‰µ $ƒÄ jh8N#Sè"8fÇCÍÆCÇCÇCxË"ÇC ÄË"ÇC$ÐË"ÇC(ØË"ÇC,Ì"ÇC04Ì"ÇC4|Ì"ÇC8ÜÈ"ÇC<ÄÌ"ÇC@ÄÉ"ºƒÄsK •ÇD@DŽ ÿÿÿÿBú™~ݍeø[^]ÉöU‰åVS‹E‹… $ƒì hN#è7¾ƒÄƒÃƒìÿt³@hN#èû6ƒÄFþ™~ãeø[^]ÃU‰å¸ÿÿÿÿ]ÉöU‰å]ÍvU‰åƒì‹E‹U ‹… $ƒÀƒ|@tƒìRj
+èȽÿÿƒÄÉÍvU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] j è#…ÿÿ‰ÂƒÄ¸ …Òt!ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìj ÿsè4…ÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì ‹}‹u ú‹^…Ûu*ƒì j 胄ÿÿƒÄ…ÀtÇÿÿÿÿÇ@Ç@ÿÿÿÿ‰>‰Fƒ;ÿt
+û¸ë"‰ö¡Œ$‹½ $ƒÂÿD‚@¡Œ$‰û¸eô[^_]ÃU‰åWVSƒì ‹E ‹U‹• $ú‹p¸…ö„V‹;Œ$u û¸#éA‹Œ$‹F ¿`$;„“°v +¸é v¡Œ$‹Œƒ°‹“¬…Òt‰ö‹;Œ$…Š‹R…Òu븅À…†‹ +Œ$I‰ÂÁâ)‹ƒ¬‹‰D×P‹ƒ¬‹@‰„‹‹“¬¡Œ$‰B‹ƒ¬ÿ@èºjÿÿ¡Œ$@‰ÂÁâ)ƒì ¿D×Pèù"è tÿÿƒÄûúéRÿÿÿ‰ö¸;J ’Àérÿÿÿ‹E‹… $¡Œ$ÿDƒD¡Œ$‰¹‹ƒ¬‹V ë‰ö‰Á‹A…Àt;P sò…Ét‰q됉³¬…Àt‰p‰F‰Nû¸eô[^_]ÍvU‰åWVS‹}‹E ‹ ½ $ú‹X¸…Û„Ù‹;Œ$uû¸#éčv‹Œ$‹C ;„‘°s
+¸饡Œ$‹´°‹‘¬…Òt‰ö‹;Œ$u‹R…Òu︅Àuû¸ëk‰ö¸;r ’Àëåv‹ ½ $¡Œ$ÿDD¡Œ$‰¾‹¬‹S 됉ƋF…Àt;P sò…öt‰^됉™¬…Àt‰X‰C‰sû¸[^_]ÉöU‰åWVSƒì ‹E ‹x¸…ÿ„ï‹;Œ$tû¸éڍvúè&!‹Œ$ [‰ÊÁâ)Êf‰Õh$‹E‹… $‰EðÿL˜DÇÿÿÿÿ‹_ÇGÿÿÿÿƒûÿt2‰ÆƒÆv‰Ù[‰ÐÁà)ЉÅ°$‹œžDŽŽÿÿÿÿƒûÿuÖÇG‹O‹W…Éu +‹Eð‰¬ë‰ö‹G‰A…Òt‹G‰Bè3hÿÿ¡Œ$@‰ÂÁâ)ƒì ¿Õh$Pèo èrÿÿƒÄû¸eô[^_]ÐU‰åVSƒì hdN#è^“ÿÿè)}ÿÿ‰ÃÇ$€èg€ÿÿ‰Æ‰4 $ƒÄ jhxN#Vèî1fÇFÌÆFÇFÇF€Ò"ÇF Ó"ÇF$0Ó"ÇF(`Ó"ÇF,¨Ó"ÇF0ÔÓ"ÇF4,Ô"ÇF8<Í"ÇF<ÄÎ"ÇF@ÈÏ"ºƒÄ^N•ÇD@DŽ°ÿÿÿÿDŽÿÿÿÿBú™~Òdž¬eø[^]ÐU‰å‹U‹M ¸ÿÿÿÿ…Òt;‹‹… $ƒxu‹@%ÿÿÿ=Ìu…Ét ‹B‹@ ‰ë
+‰ö¸ÿÿÿÿ됸]ÐU‰å‹U‹M¸ÿÿÿÿ…Òt@‹‹… $ƒxu‹@%ÿÿÿ=Ìt¸ÿÿÿÿ됅Ét‹B‹@ ‰‹R‹E ‰B ¸]ÃU‰å‹E‹M ‹U‹… $‰”ˆ°]ÃU‰åWVSƒì‹E‹<… $hN#è0»ƒÄwƒìÿtž@hN#èó/ƒÄCû™~ãƒì hBN#èÚ/»ƒÄ‰öƒìÿ´Ÿ°h^N#è¼/ƒÄCû™~àeô[^_]ÃU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åS‹E‹U ‹]‹ … $Áâ‹C‰„°ÇD
+D‹$ÉÉöU‰åVS‹E‹u ‹… $ƒ|³DtƒìVj
+èD¶ÿÿƒÄë vÇD³DDŽ³°ÿÿÿÿeø[^]ÉöU‰å‹U :t ‹E +9u
+¸ëv¸ÿÿÿÿ]ÐU‰åSƒì‹] jèƒ}ÿÿ‰ÂƒÄ¸ …Òt1ÇÿÿÿÿÇBÇBÿÿÿÿ‹E‹@‰B ÇB‹E‰‰S¸‹]üÉÍvU‰åSƒì‹] ‹Cƒxt ¸ë&‰öúƒ{tƒìjÿsè„}ÿÿÇCƒÄû¸‹]üÉÍvU‰åWVSƒì$·]Sh‚N#è .‰Ø-yƒÀÁèƒÄ ·À‰Eè@ÛÁã¿àÛ%ÿt8CP‰Eä·8Ph‰N#èá-ƒÄ ÿt;·D;Ph—N#èÊ-ƒÄ ÿt; s·>Ph¨N#è±-ƒÄ ÿt>·D>Ph¹N#èš-ƒÄ ‹Uä·D:P·DLPhÊN#è~-‹UèÕƒÄ·ØShÛN#èc-EóPEòPEìPS蹃ĶUóR¶UòRÿuìPh O#è6-ƒÄ eô[^_]ÍvU‰åWVSƒì ‹E‹U‹]¹‹u ƒî‰ƒî‰ºÀ^&fƒ=À^&yA¿Áfƒ<Byfù™~îfù™~ƒì hðN#èÎ,¸ƒÄé ¿Á<¹À^&‰Úf Ê€f‰Ǎ<ÿÁçºàÛ%‰tÇD _ÇDfŒÙf‰LfÇfÇDÇD _ ‹M‰ ÇDÇDO0ÇDÇD Ǎ_@ÇÇD‰t‰t fŒÉf‰L fŒÙf‰LfŒÛOPf‰\fŒÛf‰fÇD 0fÇD0O`fÇfÇDfÇDÇLÜ%¾`&¹üó¥Å˜eô[^_]ÐU‰åVS‹u ¿E-‰Â…ÀyP‰ÐÁø@ÀÁà¹àÛ%f‰tX@Vf‰T f‰t ƒÀPf‰tf‰4[^]ÉöU‰å¿E-‰Â…ÀyP‰ÐÁøfDŽÀ^&]ÉöU‰åSƒì‹]¿E PhO#Sè~3‰ØƒÄ‹]üÉÃU‰åVS趉Æès»‰öƒìhlÞ"SèƒÄhø×"SèìƒÄCƒû~ۉðeø[^]ÉöU‰åƒìèaÉÍvU‰åSƒì‹]‹üt#€82uºð°îƒìShbP#èˆ*ƒÄÁ㋃üt#@Ph½Z#èp*ƒÄÿ³@u#ènƒÄ‹]üÉÉöU‰åƒìÿuhyP#èE*èèûÇ$èG7ƒÄÉÉöU‰åWVSƒì‹E‹} ƒ=$Ú%„à…ÿ„Ø¡ Ð%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡¤Ð%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡¤Ð%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø‰Ó)øƒÞC÷o‰ÑÁù‹GÁø)Á‰È؉‹OÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰O‹éԉö]è¡ Ð%€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+¡¤Ð%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡¤Ð%ÀP‰ÑÁá)ѾÓMb‰È÷îÁú‰ÈÁø)‰Uè‹{¸ƒÞC÷ï‰ÑÁù‰øÁø)Á‰ÈEè‰ùÁú‰ÈÁø)’’’’’’Áâ)э ‰ ‰ ‰Áá‰K‹E荀€€€€€‰ÃÁã‰È÷îÁúÁù)ʍéèvƒøuc¸ƒ=”Ð%…Ρ˜Ð%€€€€€€‰ÃÁã‹ +œÐ%ºÓMb‰È÷êÁúÁù)ÊӅÿ„…¡˜Ð%‰¡œÐ%éqvƒø…綄Ð%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +Ð%f)Ù·É + Ð%º×®¬]‰È÷êÁú‰ÈÁø)¤Ð%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰È£ Ð%f‰Ð%…ÿ„̍€€€ źm¶‰È÷â‰È)ÐÑ草ÁÁé
+‰O¡¤Ð%ÀP‰ÐÁà)кè‰Ó™÷û’’’щW¡¤Ð%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø‰Ó)Ëw¸ƒÞC÷î‰ÑÁù‰ðÁø)Á‰È؉‰óÁú‰ÙÁù)ʍ’’’’’’Áâ‰Ø)Ѝ€€€Áà‰G‹ Ð%’’’4Õ¹Á6ۉð÷é‰Ó3‰ÁÁù
+‰ð™‰È)Ћ +¤Ð%ɍ‘ÑÁâ)ʉÑÁá)эÈ鍃ø…ƒ=”Ð%…rU衘Ð%‰¡œÐ%‰B»@¹C°Ò‰Êî‰Úì¶ÈìÁàf¶Ñ зð· Ú%9Æv%h†P#j_h˜P#hŸP#èm%Ç$èmƒÄ· Ú%)ó¯ˆÐ%· Ú%‰Ø‰Ñº÷ñ‰Ãº °
+îì©t‹ +ˆÐ%;ÍÌÌ̉ð÷âÁê9Ós‰Ëu荛€€‹V‰Eä‰F¸¡/¸D÷mä‰ÑÁù‹EäÁø)Á‰ÈEè‹N¸¡/¸D÷éÁú‰ÈÁø)’’’’’’’’’Áâ )щN¡˜Ð%€€€€€€Áà‰Eä‹ +œÐ%ºÓMb‰È÷êÁúÁù)ʋEäÐÅÿt ‰ð‹‰‹@‰G‰Øëv¸eô[^_]ÍvU‰åVSƒìŠEˆE÷ÿ¨u#ƒ=¨u#uƒ=„u#tÿ„u#¶E÷€ÁàºLÏ%ƒ<uIÇö€PÏ%tûƒì ¶]÷›Áã¾@Ï%ÿ43ÿ“DÏ%ƒÄöDtú¶E÷€Ç…LÏ%ÿŒu#ƒ=¨u#uƒ=ˆu#tÿˆu#ÿ +¨u#eø[^]ÍvU‰åWVSº¿LÏ%¾HÏ%»DÏ%¹@Ï%’ÁàÇ8‰0ÇÇBƒú~ÜǨu#[^_]ÐU‰åVS‹U‹] ‹uú’ƒ<…LÏ%t÷Æu¸ÿÿÿÿëH’ …ǁLÏ%û…Ût‰™DÏ%º@Ï%HÏ%‰‰t
+됍’Ç…LÏ%¸[^]ÐU‰å¡¨u#]ÉöU‰åSƒì¶„Ð%ƒøt!ƒø…Àt ë.‰öƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹ +Ð%f)Ù·É + Ð%º×®¬]‰È÷êÁú‰ÈÁø)¤Ð%’BÁà)Ѝ‚‰ÂÁâ Ð)Á‰ + Ð%f‰Ð%ÿ¨u#ƒ=¨u#uƒ=„u#tÿ„u#¡œÐ%‰Ã„ã#º¡/¸D‰Ø÷êÁú‰ÙÁù)ʘÐ%’’’’’’’’’Á⠉Ø)УœÐ%‹€Ð%ë$‹¡ŒÐ%‰‰ŒÐ%‰€Ð%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;˜Ð%;˜Ð%uƋB;œÐ%~»ƒ=¨u#uƒ=ˆu#tÿˆu#ÿ +¨u#‹]üÉÃU‰åWVSƒì‹uhÈì"j@èØ +ƒÄƒ>t,ƒì h¹P#èß »ÿÿƒÄ¿@¹C°8‰ÊîˆØ‰úîëaƒì hÕP#è³ ‹N‰ +ˆÐ%ɍA‰ÂÁâ‰Ñ)ÁºÓMb‰È÷âƒÄ‰ÑÁéu¹f‰ + Ú%‰Ë¿@¹C°4‰Êî‰úˆØî‰ØfÁèî‹£”Ð%ƒ=„`&~»A¹C°p‰ÊÚîîÆ„Ð%ë%Æ„Ð%»B¹C°°‰ÊÚîîºa°îº!ì%þî¹¾ÀÐ%»ÄÐ%ƒùbIÁàØÐ%‰0I‰LÃAƒùc~ßÇÚ%ÇŒÐ%ÀÐ%Ç„u#Lju#¡ˆÐ%€€€Áࣄã#ÇœÐ%ǘÐ%Ç Ð%ǤÐ%fǐÐ%ƒ=”Ð%uÇ($¸ã"Çh$Pä"ëÇ($ ä"Çh$,ë"eô[^_]ÃU‰å‹E£„u#]ÍvU‰å‹E£ˆu#]ÍvU‰å‹E£”u#]ÍvU‰åWVSƒì ‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=ŒÐ%tl‹ +ŒÐ%‹£ŒÐ%‹E‰A‹Eè‰A ‹Eì‰A‹E‰A»‹€Ð%}è‹uè됋…Òt‰ð;B  +;B u‹G;B~‰Óëâ‰ö…Ût‰ ë‰ +€Ð%‰‹AƒÄ [^_]ÐU‰å‹E¹‹€Ð%됉ы…Òt;Buó¸ÿÿÿÿ…Òt$…Éu
+‹£€Ð%됋‰¡ŒÐ%‰‰ŒÐ%¸]ÃU‰åWVSƒì,‹E‹U ‰Eè‰Uì¸ÿÿÿÿƒ=ŒÐ%„q‹5ŒÐ%‹£ŒÐ%‹E‰F‹Eè‰F ‹Eì‰F‹E‰Fº‹€Ð%}è‹Mè됋…Ût‰È;C  +;C u‹G;C~‰Úëâ‰ö…Òt‰2鐉5€Ð%ƒ=$Ú%…ôƒìEàPjè3óÿÿ‹€Ð%ƒÄ‹Eà;B  +;B u‹Eä;B~ÇEÜÇEØëK}؋€Ð%Mà‹B;A|‹B +Eà‰E؉Ћ@+Aë ¡€Ð%‹@ +EàH‰EØ¡€Ð%‹@+Eäʚ;‰G‹E؍€€€€€€Áà‰EԋMÜ¿ÓMb‰È÷ïÁúÁù)ÊUԍҍB‰ÂÁâ)‰Ð÷çÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèFeô[^_]ÃU‰åWVSƒì¶„Ð%ƒøtƒø…Àt
+ë,ƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹Ð%f)Ú·Ò‰Ö5 Ð%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +¤Ð%‰AÁà)ȍÁ‰ÁÁá ȉò)‰ Ð%f‰Ð%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡¤Ð%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡¤Ð%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰Cƒ=€Ð%„/Ç$Ú%‹€Ð%‹Eè;B ;B …Œ‹C;BŽ€ƒ=¨u#uƒ=„u#tÿ„u#ÿ¨u#‹€Ð%ë#‹¡ŒÐ%‰‰ŒÐ%‰€Ð%ƒì ÿrÿRƒÄ‰Ú…Òt‹B ;Eè +;EèűB;Eì~ă=¨u#uƒ=ˆu#tÿˆu#ÿ +¨u#¶„Ð%ƒøt"ƒø …Àt +ë/vƒøtë%¹@°ë#v¹A°ëv¹B°ë v»ë"ºCÐî‰Êì¶ØìˆÁ‰ÊÁâf¶Ã‰Ó Ãf‹Ð%f)Ú·Ò‰Ö5 Ð%¹×®¬]‰È÷î‰ÑÁù‰ðÁø)Á +¤Ð%‰AÁà)ȍÁ‰ÁÁá ȉò)‰ Ð%f‰Ð%]荒’’ Õ¾m¶‰ð÷á‰Ö‰Ê)òÑê2‰ÁÁé
+¡¤Ð%ÀP‰ÐÁà)кè‰Ö™÷þ’’’щS¡¤Ð%ÀP‰ÑÁá)ѺÓMb‰È÷êÁú‰ÈÁø)‰Uè‹s¿ƒÞC‰ð÷ï‰ÑÁù‰ðÁø)Á‰ÈEè‰ðÁú‰ñÁù)ʍ’’’’’’Áâ)Ѝ€€€Áà‰C‹€Ð%‹Mè;J 
+;J u;B~ÇEäÇEàëJ]à‹€Ð%Mè‹B;A|‹B +Eè‰Eà‰Ð‹@+Aë ¡€Ð%‹@ +EèH‰EࡀÐ%‹@+Eìʚ;‰C‹Eà€€€€€€‰ÆÁæ‹Mä»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèîÇ$Ú%ë +‰öº@°î°ðîeô[^_]ÐU‰åVSƒì‹E»¹‹€Ð%ëv‰Ñ‹…Òt;Buó¸ÿÿÿÿ…Ò„I…Éu‹£€Ð%»ë‹‰¡ŒÐ%‰‰ŒÐ%ƒ=$Ú%…ƒ=€Ð%uº@°î°ðéû‰ö…Û„òƒìEðPjèºìÿÿ‹€Ð%ƒÄ‹Eð;B  +;B u‹Eô;B~ÇEìÇEèëJ]è‹€Ð%Mð‹B;A|‹B +Eð‰Eè‰Ð‹@+Aë ¡€Ð%‹@ +EðH‰E血Ð%‹@+Eôʚ;‰C‹E荀€€€€€‰ÆÁæ‹Mì»ÓMb‰È÷ëÁúÁù)ʍ2ҍB‰ÂÁâ)‰Ð÷ãÁê¸ðúðw¸ÈúÇv‰Ðº@îfÁèeø[^]Éöú‹D$¼ˆó#PèŒëÿÿ`fff f¨f¸0ŽØŽÀ° º u#@£u#1ÛfŒÓü¡”Ð%ƒøtèùòÿÿëè6ùÿÿ°
+º îì¨t ¸@Pè–ÿÿÿf¡˜u#f9žu#t f£žu#ÿ-šu#ƒ=”u#t‹”u#ÿÓf©f¡ffaωöU‰å‹EØf£žu#f£˜u#]Ã1ÀÈÃU‰åf¸0ŽØŽÀ‹Ef;žu#t f£žu#ÿ-šu#]ÉöU‰åƒìjjjj@èaƒÄÉÃU‰åWVSƒì ‹]‹u ‹}聉€:y"…Ût‹B8‰…öt‹BÁà
+‰…ÿt)‹B4‰ë"‰ö…ÛtÇ…öt‹BÁà
+‰…ÿtÇ@ƒ}t ‹BÁà
+‹U‰ƒÄ [^_]ÍvU‰åƒìjjjj@è̓Ä·@0ÉÃU‰å¡Xs#]ÉöU‰å]ÍvU‰åSƒì‹Xs#誃ì SèÅMÿÿè ƒÄ‹]üÉÃU‰åWVS‹M ‹u‹}Š]‰ÈÁàeèÿÿ Eè‰ÈÁèUèˆBáÿbÿÿÿ J‰ðˆB‹Ef‰Eè‹EÁè‰EäŠEäƒà ÃË@¶ÃÁàbÿÿÿ Bçüÿ=Js#‹‰‹B‰G[^_]ÐU‰åWVSƒì ‹] ‹u‹}·EMèJs#‹‰‹@‰A‰Ê¶JÁá¶B ÁÁá·B Á…ÛtŠBƒà¶ÐÁâ·Eè Љ…ötŠE툅ÿt
+ŠEî%ðˆ‰ÈƒÄ [^_]ÉöU‰å‹E ¶UÁâ¹`v#fÇD
+8Ƃev#îƂdv#f‰
+Áèf‰D
+]ÍvU‰åº °îº!°@î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰åº °îº!°î°î°î°ÿ°°pî°î°î°ÿî]ÐU‰å‹Mf…ÉtWfƒùw¸Óà
+¤u#ë7fƒùw<·Éƒé¸Óà
+¥u#¢¥u#º¡î<ÿu ¤u#©uƒÈ¢¤u#º!î]ÃU‰å‹Mf…ÉtUfƒùw¸þÿÿÿÓÀ"¤u#ë5fƒùw:·Éƒé¸þÿÿÿÓÀ"¥u#¢¥u#º¡î ¤u#©t%û¢¤u#º!î]ÉöU‰å¿˜u#]ÃU‰åƒì‹Ef£˜u#˜PèWüÿÿƒÄÉÐU‰å¿˜u#]ÃU‰åƒì‹E‰Âf£˜u#ƒ=¨u#uƒì ¿ÂPèüÿÿƒÄÉÐU‰åWVì¾¹°u#ºðu#‰öµÇèô"Çèô"Fƒþ~åƒì EÈPèÅèºÇ€`&!Q#‹EÈ£„`&¶¬u#£ˆ`&ƒÄ‹EУ`&‹EÔ£”`&‹EØ£˜`&h‘ö"jè£ýÿÿƒÄh›ö"jè”ýÿÿƒÄh¥ö"jè…ýÿÿƒÄh¬ö"jèvýÿÿƒÄh³ö"jègýÿÿƒÄhºö"jèXýÿÿƒÄhÁö"jèIýÿÿƒÄh÷"jè:ýÿÿƒÄhÈö"jè+ýÿÿƒÄhÏö"j èýÿÿƒÄhÖö"j
+è +ýÿÿƒÄhÝö"j èþüÿÿƒÄhäö"j èïüÿÿƒÄhëö"j +èàüÿÿƒÄhòö"jèÑüÿÿƒÄhùö"jèÂüÿÿƒÄh÷"jè³üÿÿƒÄhÀõ"jAè¤üÿÿƒÄhÈõ"jBè•üÿÿƒÄhÐõ"jCè†üÿÿƒÄhØõ"jDèwüÿÿƒÄhàõ"jEèhüÿÿƒÄhèõ"jFèYüÿÿƒÄhðõ"jGèJüÿÿƒÄhøõ"jpè;üÿÿƒÄhö"jqè,üÿÿƒÄhö"jrèüÿÿƒÄhö"jsèüÿÿƒÄhö"jtèÿûÿÿƒÄh ö"juèðûÿÿƒÄh(ö"jvèáûÿÿƒÄh0ö"jwèÒûÿÿf +ô_&€¾ƒÄvÀÅàÛ%ƒì jh‰hØPõ·ÀPèúÿÿƒÄ Fþš~ǃì hÐèFùÿÿƒÄÛãݵTÿÿÿ›¿`&µTÿÿÿ¹üó¥ ÀƒÈ""ÀÛãèƒûÿÿèúÿÿeø^_]ÍvU‰åSƒìº!°ÿîè’ûÿÿ¹@ºC°6Êîîƒ=„`&~¹AºC°tî°‰Êî°ë»B¹C°°‰ÊÚîîºaî‹]üÉÃU‰å‹U‹E ‰•ðu#]ÉöU‰å‹U‹E ‰•°u#]ÉöU‰åƒìhQ#è
+è— ƒÄÉÉöœX‰Á5PœX9ÈtQ¸Ã¸ÜX‰Á5 PœX1ÈtQ¸øÃf1Àžf¸f»öóŸ€üu¸øÃƬu#Ûã¹âþfÇ®u#ZZÝ=®u#¹âþf¡®u#<u+Ù=®u#¹âþf¡®u#f%?fƒø?uƬu#Ƭu#Éö`¸ëp`¸ëh`¸ë``¸ëX`¸ëP`¸ëH`¸ë@`¸ë8`¸ ë0`¸
+ë(`¸ ë `¸ ë`¸ +ë`¸ë`¸ë ¨Pf¸0ŽÀŽØüX1ÛfŒÓP‹…°u#ÿÓ[° ƒûrº îº îf¡˜u#f;žu#t f£žu#ÿ-šu#©¡aϸ鋸選ëz¸ës¸ël¸ëe¸ë^¸ëW¸ ëP¸
+ëI¸ ëB¸ ë;¸ +ë4¸ë-¸ë&¸ë` ¨f¸0ŽÀŽØüèש¡aÏPf¸0ŽØŽÀXfŒÓ‹=Js#ß1ۊŠ_Áãf‹_ÜfŒÒfŒÛŽÓSRPÿ…ðu#ƒÄX[ŽÐ)ÜÏU‰åWVSƒì ‹u¸¹ ‰÷üó«è|ýÿÿ…ÀtÇëUèŠýÿÿ…Àt7ÇFǸ¢‰^‰N‰V …Àt+¸¢‰F‰^‰N‰V ëÇècýÿÿ…ÀtÇ ƒÄ [^_]ÍvU‰åWV¿0v#È·À-yƒÀÁø9ÂtU¿0v#@ÀÝ4ÅLÜ%›È·À-yƒÀÁøf£0v#¿50v#¿À`&4v4ö4õLÜ%¹üó¥Ý%À`&^_]ÉöU‰å¿0v#]ÃU‰åWVSƒì(ŠM¡4v#Áà ˜€ f¶.a&f£Šó#f¶-a&f£Œó#€ù t%€ù €ù„óé‰ö€ù
+„#é‰öfƒŠó#·Šó#;0a&Œ½fÇŠó#·Œó#¡4a&H9Â…¿¡0a&H‰Eì‰Uèf¾,a&Áâf‰Uò¡4v#Áà °€ ¿;}è:¹;Mì*_ÿv‰ø¯0a&È·F‰Ø¯0a&Èf‰FA;Mì~ÜG;}è~ƹ;MìKWÿ‰Ð¯0a&Èf‹]òf‰FA;Mì~çé)‰öfLjó#·Šó#‰Áƒø~ºƒÂ·ÂƒÀ9È|óf‰ˆó#f¡ˆó#f£Šó#éævfÇŠó#·Œó#¡4a&H9Â…¾¡0a&H‰Eà‰UÜf¾,a&Áâf‰Uæ¡4v#Áà °€ ¿;}Ü=v¹;Mà*_ÿv‰ø¯0a&È·F‰Ø¯0a&Èf‰FA;Mà~ÜG;}Ü~ƹ;MàGWÿ‰Ð¯0a&Èf‹]æf‰FA;Mà~çé%‰öfÿ +Šó#·Šó#·Œó#¯0a&ÂÆS fÿŠó#éõ‰ö·Šó#·Œó#¯0a&Ј CfÿŠó#·Šó#;0a&Ž¿fÇŠó#·Œó#¡4a&H9Â…š¡0a&H‰EԉUÐf¾,a&Áâf‰UÚ¡4v#Áà °€ ¿;}Ð=v¹;MÔ*_ÿv‰ø¯0a&È·F‰Ø¯0a&Èf‰FA;MÔ~ÜG;}Ð~ƹ;MÔ'Wÿ‰Ð¯0a&Èf‹]Úf‰FA;MÔ~çëfÿŒó#·5Šó#·=Œó#‰øf¯0a&f‰EΡ4v#Áà fEÎfuλÔ°‰Úî¹Õ‰ÊŠEÎî°‰Úîf‹EÎfÁè‰Êî‰óˆ.a&‰ø¢-a&ƒÄ([^_]ÐU‰åWVSƒì‹u‹} ‰øf¯0a&f‰Eò¡4v#Áà fEòfuò»Ô°‰Úî¹Õ‰ÊŠEòî°‰Úîf‹EòfÁè‰Êî‰ð¢.a&‰úˆ-a&ƒÄ[^_]ÍvU‰åS¹Ô°
+‰Êî»Õ‰ÚŠEî° ‰Êî‰ÚŠE î‹$ÉÍvU‰åWVSƒìf¾EÁàf‰Eò¡4v#Áà ¸€ ‹]ë0‹M ;M(sÿ‰Ø¯0a&È·G‰ð¯0a&Èf‰GA;M~ÜC;]~ʋM ;MSÿv‰Ð¯0a&Èf‹]òf‰GA;M~çƒÄ[^_]ÍvU‰åWVSƒì ¡0a&H‰Eð‹4a&K‰]ìf¾,a&Áàf‰Eê¡4v#Áà °€ ¿9ß<‰ö¹;Mð*_ÿv‰ø¯0a&È·F‰Ø¯0a&Èf‰FA;Mð~ÜG;}ì~ƹ;MðWÿ‰Ð¯0a&Èf‹]êf‰FA;Mð~çƒÄ [^_]ÍvU‰å·J‰0a&¶„@£4a&¶„ÿ ¢,a&¶P¢.a&¶Q¢-a&¶`¢ó#¶a¢Žó#Ç8v#Ç4v#]ÃU‰åWVSƒì .a&¢P -a&¢Q¶ÀP¶.a&PèŠýÿÿ¶Žó#¶5ó#ƒÄ¹Ô°
+‰Êî¿Õ‰úˆØî° ‰Êî‰ú‰ðîeô[^_]ÍvU‰åSƒì‹]€;tŠCƒì ¾ÀPèiùÿÿƒÄ€;ué‹]üÉÃU‰åVS‹E‰ÃÁã £8v#¹Ô° +‰Êî¾Õ‰òˆØî° ‰Êî‰ØfÁè‰òî[^]ÃU‰åVS‹u‹4v#Áâ» ó#¶.a&‰¹Àó#¶-a&‰
+µŠ¢.a&Š
+¢-a&‰54v#[^]ÃU‰å¡8v#]ÉöU‰å¡4v#]ÉöU‰åWVSƒì ‹}f¾u Áæf¾E Ƌ]‹E9Ã3v‹M9ù#‰Ê¯0a&¡4v#Áà ÐØf‰´€ A9ù~ÞC;]~ЃìÿuÿuèüÿÿŠE¢-a&ŠE¢.a&ƒÄeô[^_]ÍvU‰åWVSƒì ¡0a&H‰Eð‹=4a&Of¾,a&ÁãƒË ¾9Æ4¹9ù%v‰Ê¯0a&¡4v#Áà Ððf‰œ€ A9ù~ÞF;uð~̃ìjjèûÿÿÆ-a&Æ.a&ƒÄeô[^_]ÍvU‰åS‹U ‹]‹M¯0a&¡4v#Áà ÂU”€ ˆ
+ˆZ‹$ÉÉöU‰åS‹E ‹]‹M‰Â¯0a&¡4v#Áà ÂU”€ ¶B…Étˆ¶‰Â…Ûtˆ¾Â‹$ÉÐU‰åS‹E ‹MŠ]‰Â¯0a&¡4v#Áà ÂU”€ €9tŠˆABˆB€9uò‹$ÉÐU‰åƒìh<Q#èTýÿÿôƒÄÉÉöU‰åƒìjèƒÄÉÉöU‰åƒìh4èƒÄÉÍvU‰åVS‹Ef£r¹d»þ¾v‰Êì©t Fþÿÿ~í¸@=Ÿ†~ø‰ÚˆÈö@=Ÿ†~øë‰öU‰åSƒìE Pÿuhàó#èX‰ÃÇ$àó#è¢üÿÿ‰ØƒÄ‹]üÉÃU‰åWVSìð‹} ŠEˆ…ÿÿÿEPÿuÿÿÿSè‰ÆS¾…ÿÿÿPWÿuè±þÿÿ‰ðƒÄ eô[^_]ÃU‰åSƒìE Pÿuhàõ#謉ÃÇ$àõ#è&üÿÿ‰ØƒÄ‹]üÉÃU‰åS‹M‹U ‰Ë€:tvŠˆBA€:uõƉ؋$ÉÍvU‰åVS‹]‹U ‹M‰Þë‰öŠˆBC€:t‰ÈI…ÀîƉð[^]ÐU‰å‹U‹M ë +¸€:tBAŠ:t)Ð]ÃU‰åS‹U‹] ‹M…Éëv¶¶Sÿ)Ð됊C8uíŠB„ÀtIu︋$ÉÐU‰å‹U¸€:tB@€:uù]ÍvU‰åS‹E‹] €8t‰Ú€:tŠv:
+tB€:uö@€8u下$ÉÉöU‰å‹E‹U €8t ‰ö8t @€8uö¸]ÍvU‰åS‹]‰Ú€;t‰öŠ
+AŸ<wAàˆB€:uì‰Ø‹$ÉÐU‰åS‹]‰Ú€;t‰öŠ
+A¿<wA ˆB€:uì‰Ø‹$ÉÐU‰åS‹U‹M ‰Ó€;tvB€:uú늈AB€9uõƉ؋$ÉÍvU‰åWVSƒì<‹u‹]ÇEèÇEäÇEàÇEÜÇEØÇEÔÇEпÇEÌÙîÝ]À‰uì‹E €8„D‹U €:%t…ÿuŠˆB‰U FÿEèév‹E €8%u%@‰E ¿ÇEä
+ÇEàÇEØÇE̋U ¾ƒè%ƒøS‡Ñÿ$…>#‰öÆ%FÿEè鼃ÉòFŠCüˆÿEè驐ƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÔë +vƒÃ¿Sü‰Uԃì ÿuÌÿuäj
+VÿuÔè¾ éœƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäj
+VÿuÐè.éPƒ}Øt"ƒ}؃}Øtëƒ}ØuƒÃ‹Cü‰EÐë +vƒÃ·Sü‰UЃì ÿuÌÿuäjVÿuÐèâ鐃ËCü‰EЃì jÿuäjVPèÂé䐃ËSü€:tŠˆBFÿE܀:uò‹UÜUèévƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèYë~vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀè} +ë>vƒ}Øtƒ}؃}Øtëƒ}Øu ƒÃÝCøÝ]ÀƒìÿuÌÿuàÿuäVÿuÄÿuÀèa‰EÜEèÆ¿ƒÄ é±ÇEØé¥ÇEØ陃MÌ鐍vƒMÌ鄍v¿ƒMÌëvƒÿu?ƒìEìPj
+ÿu èb
+‰EäƒÄ‹E €80u ÷EÌtƒMÌ됃MÌ‹UìJ‰U ë4vƒÿu,ƒìEìPj
+ÿu è
+‰Eà‹EìH‰E ¿ƒÄë‰ö¿ÿE ‹U €:…¼üÿÿÆ‹Eèeô[^_]ÉöU‰åƒì EPÿu ÿuè7üÿÿƒÄÉÉöU‰åWVSƒì,‹u‹} ‹]ÇEìÇEèÇEäÇEàÇEÜÇEØÇEÔÇEЉuð€?„>€?%tƒ}Ôu ŠˆGFÿEìëá€?%uGÇEÔÇEè
+ÇEàÇEоƒè%ƒøS‡çÿ$…P?#Æ%FÿEìéԃÉòFŠCüˆÿEìéÁƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ¿Cü‰E܃ì ÿuÐÿuèj
+VÿuÜè鏐ƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèj
+ëBƒ}àt&ƒ}àƒ}àt
+ë"ƒ}àt
+ëƒÃ‹CüëƒÃ‹CüëƒÃ·Cü‰E؃ì ÿuÐÿuèjVÿuØè6‰EäEìÆÇEÔƒÄ éҍvƒÃ‹Sü€:tŠˆBFÿEä€:uò‹EäEì飍vÇEàé›ÇEà鏃MÐ醍vƒMÐë}‰öÇEÔƒMÐënvƒ}Ôu6ƒìEðPj
+W蓉EèƒÄ€?0u ÷EÐtƒMÐ됃MЋ}ðOë1‰öƒ}Ôu)ƒìEðPj
+WèW‹}ðOÇEÔƒÄë
+vÇEÔGé¼ýÿÿvÆ‹Eìeô[^_]ÉöU‰åƒì EPÿu ÿuèGýÿÿƒÄÉÉöU‰åWVSƒì,‹}‹uÇEèÇEäÇEàÇEÜÇEØ»‰}ì饐‹U €:%t…Ûu B‰U 鏍v‹E €8%u%@‰E »ÇEäÇEàÇEÜÇE؋U ¾ƒè*ƒøN‡Eÿ$… @#‰öƒû…8ƒìEìPj
+ÿu èN‰E܃MØ‹EìH‰E ƒÄéŠGƒÆ‹^üˆëÝØÿEèéõƒÆ‹^üëG€?tƒì ¾PèBƒÄ…ÀuçÇEÔë#‰ö÷EØuŠˆCë‹UÜ9UÔ}ŠˆCÿEÔG€?tƒì ¾PèþƒÄ…ÀtÇÆ덉öƒìhHQ#Wè&÷ÿÿ‰ÇƒÄ EìPj
+WèՉ‹}ìƒÄƒ}à…Wƒ}ät)ƒ}ä ƒ}ätéCÿÿÿƒ}ä…9ÿÿÿƒÆ‹Fü‰é,ÿÿÿƒÆ‹Füf‰éÿÿÿ‰öƒìhUQ#Wè¶öÿÿ‰ÇƒÄ EìPj
+됃ìh`Q#Wèšöÿÿ‰ÇƒÄ EìPjWè ‹}ìƒÄƒ}à…̓}ät+ƒ}ä +ƒ}äté¹þÿÿ‰öƒ}ä…­þÿÿƒÆ‹Vü‰é þÿÿƒÆ‹Vüf‰é‘þÿÿ‰öƒìhxQ#Wè*öÿÿ‰ÇƒÄEìPWè;‹}ìƒÄƒ}àu`ƒ}ät)ƒ}ä ƒ}ätéMþÿÿƒ}ä…CþÿÿƒÆ‹FüÝé8þÿÿƒÆ‹FüÙé*þÿÿvÇEäë vÇEäëvÇEàëÝؐ»ÿE ‹E €8…Pýÿÿ‹Eèeô[^_]ÐU‰åƒì EPÿu ÿuèïüÿÿƒÄÉÉöU‰åWVSƒì,‹u ÇEп‹Eƒð‰EԋU‰U̅Òy‰Ñ÷ىM̃}y ‹E…Ày÷Ø됋E÷EÔu ƒ}yƒ}yGƒ}u‹EÐÆD(Ø0@‰EÐë8v…Àt1U؉Uȉöƒì º÷ủÃRèI‹MȋUЈ
+B‰UЉ؃Ä…Àu×}ЋEԃàƒøu‰ú;}} +‰öÆ FGB;U|õƒ}y ƒ}yÆ-ë ÷EÔtÆ+F‹Eԃàƒøu‰ú;}} Æ0FGB;U|õ‹UÐJx M؊
+ˆFJy÷‹Eԃàƒøu‰ú;}} Æ FGB;U|õƉøeô[^_]ÃU‰åƒì‹Eÿuÿu÷ØPÿu ÿuèŸþÿÿƒÄ ÉÉöU‰å‹E…Ày÷Ø]ÉöU‰åSƒì‹]èÁîÿÿƒì SèñðþÿU‰åWVSƒì‹M‹} ÙîÙÀÙ軀9-u ¾ÿÿÿÿë
+‰ö¾ëA€90túŠƒè0< w(ÝàA#ëÙˍv¾ƒè0AÜËÙËPÚ$XŠƒè0< vâÝۀ9.u9AŠƒè0< w/ÝàA#ëÙÉÙʉö¾ƒè0AÜÊÙÊPÚ$ÙÉXØʊƒè0< vÝÝÚÙÉÞùÞÁVÚ $^€9et €9E…“A€9-u
+¾ÿÿÿÿAë‰ö€9+u ¾Aëv¾Šƒè0< weÝàA#¾ƒê0A·ÃÙÀPÚ $Ù}ð‹]ðÆEñ Ùmð‰]ðÛ]ìÙmð‹Eì·À‰$Û$‰$Ú$ZÙ}ð‹UðÆEñ Ùmð‰UðÛ]ìÙmð‹Eì‰ÃŠƒè0< v£Ý؅ö~!ºf…Ût4ÝàA#·Ã‰öÜÉB9Â|ùëvº·Ã‰Ã9Â}ÝàA#ÜùB9Ú|ùÝ؅ÿt‰ƒÄ[^_]ÐU‰åWVSƒì ‹]‹} ÇE쾀;-u ÇEðÿÿÿÿCë‰ö€;+u ÇEðCëÇEð€;0u>C€;0túë6ƒì ¾PCè‰ÂƒÄ9ú…Òy
+¸ëEv‰ð¯÷Ö9ð~ÇEìƒìW¾P聃ąÀu¶ƒ}t‹E‰ƒ}ìt¾ÿÿÿ¯uð‰ðeô[^_]ÉöU‰åWVSƒì ‹]‹} ÇEð¾€;0uC€;0tú€;xuKƒÿuFC€;0u@‰öC€;0túë6ƒì ¾PCè_‰ÂƒÄ9ú…Òy
+¸ëAv‰ð¯÷Ö9ðvÇEðƒìW¾PèуÄ…Àu¶ƒ}t‹E‰ƒ}ðt¾ÿÿÿ‰ðeô[^_]ÉöU‰åŠUBÐ< w ¾Âƒè0ë&vB¿<w ¾Âƒè7됍BŸ<w ¾ÂƒèW됾Â]ÍvU‰å‹Uƒú w B0¾À됍BöƒøwB7¾Àë¾Â]ÍvU‰åŠUƒê0¸€ú –À]ÉöU‰åŠUBÐ<vBŸ<w¸ë¸]ÐU‰åŠU€ú/~‹E <v#:Pÿ¸ë¸]ÐU‰åŠUBŸ<w Bà¾Àëv¾Â]ÍvU‰åŠUB¿<w B ¾Àëv¾Â]ÍvU‰åVS¾ƒì ¾]Sè%ƒÄ…Àuƒì Sè5ÿÿÿƒÄ…Àt¾‰ðeø[^]ÃU‰åŠUƒêA¸€ú9–À]ÉöU‰å¸€}/žÀ]ÍvU‰åŠUƒêa¸€ú–À]ÉöU‰åŠUB÷<v
+¸€ú u¸]ÉöU‰åŠUƒêA¸€ú–À]ÉöU‰åWVSƒì ÝEÝUè‹]‹}ÇEäSd$øÝ$èoƒÄ…Àtƒì Sè·îÿÿƒÄéPvÙîÝEèÚéßà€äE€üu Æ-C€uï€ë÷EtÆ+CÿEäÝèA#ÝEèÚéßà€äE€üuÆ0ÆC¸éû‰öÙèÝEèÝáßà€äE€üu3¾Ýéßà€äE€üuHݘQ#ÝEèØÉÝUèNÝêßà€äE€ütëÝØë)vÝØÝؾݘQ#ÝEèë ÝEèØñÝUèFÝéßàöÄtîÝ؃ì Vè÷ùÿÿƒÄƒøc~ƒïë‰öƒø ~ƒïë‰ö…ö~Oƒì‹EƒÈPÿuWSÿuìÿuèèUEäƒÄ …öu‹Eäë;‰ö]äÆeCƒì jºgfff‰ð÷êÁú‰ðÁø)ƒÂRj
+SVè\ùÿÿ‹UäD‰EäƒÄ eô[^_]ÍvU‰åWVSìŒÝEݝþÿÿ‹]Dž€þÿÿ½¸þÿÿ¹K¸üó«ƒìSÿµ”þÿÿÿµþÿÿ貃ąÀtƒì SèúìÿÿƒÄé‰öÙî݅þÿÿÚéßà€äE€üuÆ-C€µ—þÿÿ€ëv÷Et
+Æ+Cÿ…€þÿÿƒì…˜þÿÿPÿµ”þÿÿÿµþÿÿèþݝpþÿÿ‹…pþÿÿ‹•tþÿÿ‰Æ‰×DžŒþÿÿƒÄ݅˜þÿÿÙèÙÉÝáßàöÄ…ø重vh$@jÿµœþÿÿÿµ˜þÿÿè$݅˜þÿÿÜ5ðA#ݝ˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿß½¨þÿÿÙ­´þÿÿ‹…¨þÿÿ‰$èûÿÿ‹•Œþÿÿˆ„*¸þÿÿB‰•ŒþÿÿƒÄ݅˜þÿÿÙèÙÉÚéßàöÄ„oÿÿÿ‹•Œþÿÿ•€þÿÿ‰ÑI…¸þÿÿ‰…|þÿÿë‰ö‹•|þÿÿŠˆCI‹•Œþÿÿƒê‰ÐÁèH!Â9Ñ}ޅÉx‹Œþÿÿƒéx
+vÆ0CIyùÆëÝØÝØÆ0Cÿ…€þÿÿÝ Q#‰µpþÿÿ‰½tþÿÿ݅pþÿÿÚéßàöÄE…\‹E@9…€þÿÿLÆ.Cÿ…€þÿÿ‹Eƒà‰…ˆþÿÿDž„þÿÿDžŒþÿÿv‰µpþÿÿ‰½tþÿÿ݅pþÿÿܨQ#Ü +ðA#ݝpþÿÿ‹µpþÿÿ‹½tþÿÿƒì…˜þÿÿPWVèݝpþÿÿ‹•pþÿÿ‹tþÿÿ‰Ö‰Ï݅˜þÿÿÙ½´þÿÿ‹´þÿÿƅµþÿÿ Ù­´þÿÿ‰´þÿÿ۝¤þÿÿÙ­´þÿÿ‹…¤þÿÿƒÄ…Àtƒ½ˆþÿÿu
+Džˆþÿÿƒì PèÓùÿÿˆCÿ…€þÿÿÿ…ŒþÿÿƒÄƒ½ˆþÿÿt‹E9…Œþÿÿ~
+Dž„þÿÿ‹•€þÿÿ9U}
+Dž„þÿÿƒ½„þÿÿ„ýþÿÿKë
+‰öÿ€þÿÿ‰Ã€;0u Cÿ€{ÿ.uêCÆ‹…€þÿÿeô[^_]ÃU‰åWVSƒì‹]‹u ‹}WVSèZƒÄ…Àtƒì Wè¢éÿÿƒÄéñ‰öÙî‰]è‰uìÝEèÝáßàÝـäE€üuÙàëvÝ؉]è‰uìÝEèÝøA#ÙÉÝáßàÝـäE€üuÝØÆ0ÆG¸雺ÙèÙÉÝáßà€äE€üu/Ýáßà€äE€üu?ݘQ#ëÙɐÜÉÙÉJÝâßà€äE€ütìÝØëvÝÙݘQ#ë‰öØñÙÉBÙÉÝáßàöÄtðÝØÝ؍BƒøvƒìÿuÿuÿuWVSèÔùÿÿë‰öƒìÿuÿuÿuWVSèXûÿÿƒÄ eô[^_]ÐU‰åƒìSÙ}ü›f‹Eüf +? f‰EøÙmø›ÝEÙüÝ]ð›‹Uð‹Mô‹]‰‰KÝEÜeðeì›ÛâÙmü›[ÉÍvU‰åƒì‹E‹U ‰Eø‰Uü‹MUøf‹BfÁè%ÿ=ÿt¸ëk÷Bÿÿuƒ:t…Étƒìh°Q#QèDçÿÿƒÄ¸ë@‰ö€zy…Étƒìh´Q#Qè çÿÿƒÄ¸ë‰ö…Étƒìh¹Q#QèçÿÿƒÄ¸ÉÃU‰åƒì¸à÷#ƒ=Hv#tÿHv#ÉÃU‰å‹E£Hv#]ÍvU‰åƒì‹E‹U ‰Eø‰UüUø¹f‹BfÁè%ÿ=ÿu÷Bÿÿuƒ}øt¹‰ÈÉÉöU‰åSƒì‹E ‹]ÆPè‰âÿÿ‰ØƒÄ‹]üÉÍvU‰åVSƒì ÝEÝUð‹]‹uVSd$øÝ$èrÝ]èƒÄƒ=Lv#ÿtWƒìVSèYÿÿÿƒÄ…ÀuFƒìÿuôÿuðèDÿÿÿƒÄ…Àu1Ùî‰]à‰uäÝEàÚéßà€äE€ô@uƒì jVSÿuôÿuðè4ƒÄ ëvÝEèeø[^]ÉöÝD$ ÝD$Ùø›ßàžzøÝÙͶ¼'U‰åVSƒì0ÝE‹]‹u‹EÝUà‰]è‰uìPÿú‡Èÿ$•B#ÝØÇEغ¾Q#ƒøc~ºÃQ#‰UÜÇEðÇEôƒ=Lv#„}ƒì EØP誃ąÀ…uƒ=Lv#…YƒìjhÉQ#éëvÝØÇEغÝQ#ƒøc~ºâQ#‰UÜÇEðÇEôƒ=Lv#„ƒì EØPè>ƒÄ…À… ƒ=Lv#…íƒìjhèQ#év‰]à‰uäÝ]èÇEغüQ#ƒøc~ºR#‰UÜÇEðÇEôƒ=Lv#„žƒì EØPè˃ąÀ…–ƒ=Lv#…zƒìjh R#é ÝØÇEغR#ƒøc~º$R#‰U܃=Lv#uÇEðàÇEôÿÿïGé¸ +¡@v#‹Dv#‰Eð‰Uôé¡ +‰öÝØÇEغ²S#ƒøc~º¸S#‰U܃=Lv#uÇEðàÇEôÿÿïGéh +¡@v#‹Dv#‰Eð‰UôéQ +‰öÝØÇEغ+R#ƒøc~º/R#‰U܃=Lv#uÇEðàÇEôÿÿïGé +¡@v#‹Dv#‰Eð‰Uôé +‰öÝØÇEغ+R#ƒøc~º/R#‰UÜÇEðÇEôéÑ ‰öÝØÇEغ·L#ƒøc~º4R#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„óƒì EØPè ƒÄ…À…ëƒ=Lv#…σìjh8R#éaÝØÇEغ·L#ƒøc~º4R#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„gƒì EØP蔃ąÀ…_ƒ=Lv#…Cƒìjh8R#éÕ +ÝØÇEغxL#ƒøc~ºJR#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„Û +ƒì EØPèƒÄ…À…Ó +ƒ=Lv#…· +ƒìjhNR#éI +ÝØÇEغxL#ƒøc~ºJR#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„O +ƒì EØPè| +ƒÄ…À…G +ƒ=Lv#…+ +ƒìjhNR#é½ ÝØÇEغ`R#ƒøc~ºcR#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„à ƒì EØPèð ƒÄ…À…» ƒ=Lv#…Ÿ ƒìjhgR#é1 ÝØÇEغ`R#ƒøc~ºcR#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„7 ƒì EØPèd ƒÄ…À…/ ƒ=Lv#… ƒìjhgR#é¥ ÝØÇEغyR#ƒøc~º€R#‰U܃=Lv#uÇEðàÇEôÿÿïGéP ¡@v#‹Dv#‰Eð‰Uôé9 ‰öÝØÇEغyR#ƒøc~º€R#‰U܃=Lv#uÇEðàÇEôÿÿïGë¡@v#‹Dv#‰Eð‰Uôƒ=Lv#„a ƒì EØPèŽ ƒÄ…À…Y ƒ=Lv#…= ƒìjhˆR#éÏ
+vÝØÇEغœR#ƒøc~º R#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„å ƒì EØPè ƒÄ…À…Ë
+ƒ=Lv#…¯
+ƒìjh¥R#éA
+ÝØÇEغœR#ƒøc~º R#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„G
+ƒì EØPèt
+ƒÄ…À…?
+ƒ=Lv#…#
+ƒìjh¶R#éµ ÝØÇEغÉR#ƒøc~ºÏR#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„Íƒì EØPèè ƒÄ…À…³ ƒ=Lv#…— ƒìjhÖR#é) ÝØÇEغÉR#ƒøc~ºÏR#‰U܃=Lv#uÇEðàÇEôÿÿïÇë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„/ ƒì EØPè\ ƒÄ…À…' ƒ=Lv#… ƒìjhéR#靐ÝØÇEغþR#ƒøc~ºS#‰UÜÇEðÇEôƒ=Lv#… ƒì EØPèòƒÄ…À…½ƒìjhS#jèÞõÿÿèeõÿÿÇ!ƒÄ降vÇEغþR#ƒøc~ºS#‰U܃=Lv#uvÇEðàÇEôÿÿïG‰]ЉuÔÝEÐÜ +hT#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…¯ƒìVSèjƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„‡ÇEðàÇEôÿÿïÇét¡@v#‹Dv#‰Eð‰Uô‰]ЉuÔÝEÐÜ +hT#Ý]Ћ]ЋuÔÙîÙÉÚéßà€äE€ü…6ƒìVSèñƒÄ‰]ЉuÔÝEÐÙÉÚéßà€äE€ü@„¡@v#‹Dv#ò€‰Eð‰UôéòvÝØÇEغþR#ƒøc~ºS#‰UÜÇEðÇEôéÁ‰öÝØÇEغþR#ƒøc~ºS#‰U܃=Lv#uÇEðÇEôë¡@v#‹Dv#ò€‰Eð‰Uôƒ=Lv#„ãƒì EØPèƒÄ…À…Ûƒ=Lv#…¿ƒìjhS#éQÝØÇEغþR#ƒøc~ºS#‰U܃=Lv#uÇEðÇEôëÇEðÇEôøƒ=Lv#„`ƒì EØP荃ąÀ…Xƒ=Lv#…<ƒìj h@T#éΉöÇEغ9S#ƒøc~º>S#‰U܃=Lv#u6ÙîÙÉÚéßàöÄEuÇEðàÇEôÿÿïGém‰öÇEðàÇEôÿÿïÇéX‹ +@v#‹Dv#‰Mð‰]ôÙîÙÉÚéßàöÄE„4‰È‰Úò€‰Eð‰UôéÝØÇEغDS#ƒøc~ºIS#‰U܃=Lv#uÇEðÇEôëÇEðÇEôøƒ=Lv#„Lƒì EØPèyƒÄ…À…Dƒ=Lv#…(ƒìjhOS#麉öÇEغcS#ƒøc~ºhS#‰U܃=Lv#uÝ]ðëÝØÇEðÇEôøƒ=Lv#„Òƒì EØPèÿƒÄ…À…ʃ=Lv#…®ƒìjhnS#é@ÝØÇEغƒS#ƒøc~ºS#‰UÜÇEðÇEôøƒ=Lv#„iƒì EØP薃ąÀ…aƒ=Lv#…Eƒìjh˜S#é׍vÝØÇEغ±S#ƒøc~º·S#‰UÜÇEðÇEôøƒ=Lv#„ýƒì EØPè*ƒÄ…À…õƒ=Lv#…Ùƒìjh¾S#ékvÝØÇEغÓS#ƒøc~ºÙS#‰UÜÇEðÇEôøƒ=Lv#„‘ƒì EØP较ąÀ…‰ƒ=Lv#…mƒìjhàS#éÿvÇEغÓS#ƒøc~ºÙS#‰UÜÜ5pT#Ý]ðƒ=Lv#„,ƒì EØPèYƒÄ…À…$ƒ=Lv#…ƒìjhõS#隉öÇEغT#ƒøc~ºT#‰U܋ +@v#‹Dv#‰Mð‰]ôÙîÙÉÚéßàöÄEtC‰È‰Úò€‰Eð‰Uôë1‰öÇEغT#ƒøc~ºT#‰U܍d$øÝ$jjè›Ý]ðƒÄƒ=Lv#…jé|vÝØÇEغT#ƒøcŽ•ºT#鋍vÝØÇEغ·L#ƒøc~uº4R#ën‰öÝØÇEغ+T#ƒøc~Yº.T#ëR‰öÝØÇEغxL#ƒøc~=ºJR#ë6‰öÝØÇEغ2T#ƒøc~!º5T#ë‰öÝØÇEغ`R#ƒøc~ºcR#‰UÜÇEðÇEôƒ=Lv#„¯ƒì EØPèʃąÀ…•ƒ=Lv#…‹ƒìjÿuÜjè«îÿÿƒÄ jhT#jèšîÿÿƒÄëfÝØÇEغzR#ƒøc~ºR#‰U܃=Lv#uÇEðàÇEôÿÿïGë¡@v#‹Dv#‰Eð‰Uôƒ=Lv#tƒì EØPè2ƒÄ…À…ýè¶íÿÿÇ"éívÝØÇEغzR#ƒøc~ºR#‰U܃=Lv#uÇEðàÇEôÿÿïGë¡@v#‹Dv#‰Eð‰Uôƒ=Lv#„‰ƒì EØP趃Ä…À…ƒ=Lv#uiƒìjh‰R#jè™íÿÿƒÄëSÇEغþR#ƒøc~ºS#‰UÜÝ]ðƒ=Lv#ÿt ƒ=Lv#uÇEðÇEôð?ë$‰öƒì EØPè@ƒÄ…ÀuèÈìÿÿÇ!ëÝØÝEðeø[^]ËT$â€‹D$%ÿÿÿ ЉD$ÝD$ÉöU‰å¸]ÉöÝD$ÙüÉö¼'U‰åWVSƒì ‹E ‰EðEƒEðƒeðøƒàø‰Eì‹Eð9EìsƒìjUhxT#h‚T#è˜ ƒÄ‹Eð9Eì„Ä‹E‹…Û„·‹C;C rƒìj`hxT#hT#è` ƒÄöCtƒìjahxT#hÀT#èC ƒÄöC tƒìjbhxT#hU#è& ƒÄ‹Eì;CvL‹Eð;C sD‰Æ‹}ì;ss‹s;{ v‹{ 9÷wƒìjnhxT#h¡T#èæ ƒÄƒì‰ø)ðPVÿu蚃ċ…Û…Iÿÿÿeô[^_]ÐU‰åWVSƒì ‹u ‹E‹}‰ÂUƒÀƒàøƒâø9†ŒÇF‰F‰V ‹E‰F‰~ÇF‹MëF‰ö9óuƒìjlh0U#h;U#èX ƒÄ‹F ;Cv‹F;C sƒìjmh0U#h`U#è1 ƒÄ‰Ù‹…Ût9{±9{u‹S +S‹F +F9Âwœ‰‰1eô[^_]ÃU‰åWVSƒì ‹]‹} …ÛuƒìjLhU#h•U#èÙ
+ƒÄ…ÿuƒìjMhU#hžU#è¾
+ƒÄƒÇƒçø‹3…ö„rvƒ~uƒ~t‹F;FsƒìjUhU#hàU#è€
+ƒÄƒ~t‹F;F rƒìjUhU#h@V#è[
+ƒÄ‹F +F9FvƒìjUhU#h€V#è9
+ƒÄ‹F÷ЅE…åF‰Eð‹^…Û„ԍv÷Ãtƒìj^hU#hÀV#èø ƒÄöCtƒìj_hU#hW#èÛ ƒÄƒ;t9wƒìj`hU#h@W#è» ƒÄ;^ rƒìjahU#h¶U#èŸ ƒÄ9{rGv‹‰‹C)ø‰B‹Eð‰ë
+v‹‹Uð‰9~sƒìjwhU#hÍU#è\ ƒÄ)~‰Øë‰ö‰]ð‹…Û…/ÿÿÿ‹6…ö…‘þÿÿ¸eô[^_]ÃU‰åƒì jÿjÿuÿuÿuÿu ÿuèƒÄ ÉÐU‰åWVSƒì‹]‹EE ‰Eð…ÛuƒìjThiW#h•U#èۃă} uƒìjUhiW#hžU#较ċ;…ÿ„lƒuƒt‹G;Gsƒìj[hiW#hàU#舃ăt‹G;G rƒìj[hiW#h@V#ècƒÄ‹G +G9Gvƒìj[hiW#h€V#èAƒÄ‹G÷ЅE…á‹Uð9WƒÕ‹M9O †ÉG‰Eì‹_…Û„¸v÷ÃtƒìjkhiW#hÀV#èèƒÄöCtƒìjlhiW#hW#è˃ă;t9wƒìjmhiW#h@W#諃Ä;_ rƒìjnhiW#h¶U#菃ċU 9S‚$‰Þ;]s‹u¹;M}ºÓâ‹E1ð…ÂtÖA;M|è‰ð)ØE ;C‡è‹M 1;Eð‡æ‰ðƒàø‰Eè9Øsƒìh‘hiW#htW#èƒÄ9]èvC‹Uè)ډUä÷Âtƒìh–hiW#h W#èãƒÄ‹‹M艋C+Eä‰A‹Eä‰C‰]ì‰ðƒà‹U Tƒâø‰U ‹Mè9Qv‰ÊU ‹‰‹A+E ‰B‹Eì‰ë
+‹Uè‹‹M쉋E 9Gsƒìh´hiW#hÍU#èkƒÄ‹U )W‰ðë‰ö‰]ì‹…Û…Kþÿÿ‹?…ÿ…•ýÿÿ¸eô[^_]ÃU‰åƒì jÿjjj ÿu hÿuèýÿÿƒÄ ÉÐU‰åWVSƒì‹]ShÒW#èeÌÿÿ‹3ƒÄ…ö„ƒìÿvÿvÿv‹F +FPÿv ÿvh`X#è5ÌÿÿƒÄ ƒ~uƒ~t‹F;FsƒìjahäW#hàU#袃ă~t‹F;F rƒìjahäW#h@V#è}ƒÄ‹F +F9FvƒìjahäW#h€V#è[ƒÄ¿‹^…Û„¾ƒì ÿ3ÿs‰ØCPSh X#è—ËÿÿƒÄ ÷ÃtƒìjihäW#hÀV#èƒÄöCtƒìjjhäW#hàX#èóƒÄƒ{wƒìjkhäW#hëW#èփă;t9wƒìjlhäW#h@W#趃Ä;^ rƒìjmhäW#h¶U#蚃Ä{‹…Û…BÿÿÿƒìWhX#èäÊÿÿƒÄ9~tƒìjshäW#hX#è`ƒÄ‹6…ö…cþÿÿƒì h2X#è®ÊÿÿƒÄeô[^_]ÍvU‰åWVSƒì ‹u‹] ‰ßƒçø…öuƒìjNh{T#h•U#è ƒÄ…ÛuƒìjOh{T#hY#èñƒÄƒ}uƒìjPh{T#hžU#èԃĉ؃à‹UTƒâø‰U‹ëv‹…ÛuƒìjXh{T#hY#螃ă{uƒ{t‹C;CsƒìjYh{T#hàU#èsƒÄƒ{t‹C;C rƒìjYh{T#h@V#èNƒÄ‹C +C9CvƒìjYh{T#h€V#è,ƒÄ;{‚hÿÿÿ;{ ƒ_ÿÿÿ‹EC‹C +C9Cvƒìjbh{T#h€V#èòƒÄÇEð‹sëv‰uð‹6…öt9þróƒ}ðtm‹Eð@9ørc9øtƒìjnh{T#h@Y#諃ąöt8‹U:9ðr.9ðtƒìjuh{T#h€Y#肃ċEF‹UðB‹‰ëE‹E‹UðBë9ƒ}ðt
+‹Eð‰8ëv‰{…öt‹U:9ðr‰ÐF‰G‹‰ë ‹E‰G‰7eô[^_]ÃU‰åƒì hÿu ÿuèÒýÿÿƒÄÉÐU‰å‹EÇ]ÉöU‰åWVSƒì ÇEèÇEìÇEð‹E‹0…ö„Zƒ~uƒ~t‹F;Fsƒìj]h¦Y#hàU#蠃ă~t‹F;F rƒìj]h¦Y#h@V#è{ƒÄ‹F +F9Fvƒìj]h¦Y#h€V#èYƒÄÿEð¿‹^…Û„¨v÷Ãtƒìjdh¦Y#hÀV#è$ƒÄöCtƒìjeh¦Y#hàX#èƒÄƒ{wƒìjfh¦Y#hëW#èêƒÄƒ;t9wƒìjgh¦Y#h@W#èʃÄ;^ rƒìjhh¦Y#h¶U#讃ÄÿEì{‹…Û…[ÿÿÿ9~tƒìjnh¦Y#hX#肃Ä‹FEè‹6…ö…§þÿÿƒì ÿuìÿuðÿuèÿuhÀY#è¾ÆÿÿƒÄ eô[^_]ÍvU‰åVS‹u‹] EƒìPÿuhø#è…ÈÿÿƒÄhø#ÿ5 $jSVh@Z#è5ƒÄ eø[^]ÍvU‰åƒìÿ5Œ$jÿuÿu ÿuhZ#èƒÄ ÉÉöU‰åƒì E Pÿuhü#èÈÿÿƒÄ jjh¸<#è<ÿÿƒÄhü#h£Z#èŠÅÿÿÇ$Mè–ÿÿƒÄÉÐU‰åƒìhü#h€Z#ècÅÿÿƒÄÉÉöU‰å·Eƒøt ƒø…Àtë-ƒøtƒøtë ¸ÁZ#됸ÆZ#됸ÊZ#됸ÐZ#됸‘K#]ÐU‰åWVSƒìœúX‰Â‰Uä÷Et$ƒìEèPjè8›ÿÿƒÄ ÿuìÿuèhàZ#èQÅÿÿƒÄ÷EtN¾;5$sA¿À$vƒì µ‹;¶BP·BPRVh [#è +ÅÿÿƒÄ‹;VÿP ƒÄF;5$rÇ÷Etƒì hûZ#èáÄÿÿè”ÿÿƒÄ‹Uä‰ÐPeô[^_]Éöh#0#0#0#0#0#œ#0#¨#´#0#À#À#À#À#À#À#À#À#À#À#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#t#ˆ#ô#´#4##ˆ#0#0#„#0##0#l#0#0#Œ#0#Ô#0#0# # #ô
+#ô
+#ô
+#ô
+#ô
+#l
+#ô
+#x
+#€
+#ô
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+#ô
+# #4 #ô
+#ô
+#ô
+#`
+#4 #ô
+#ô
+#T
+#ô
+#`
+#ô
+#ô
+#ô
+#ô
+#,
+#ô
+#„ #ô
+#ô
+#È ## # # # # #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #„ #€ +#€ +#€ +#ô +#„ # # #è +# #ô +# # # # # # #ô # # # +#$@$@d#Ð#<#¬#ü#L#œ#Ì#X #ä #p!#ü!#ˆ"###d##ì##x$#%#%#&#&#¬'#Ü'#h(#ì(#|)#*#x*#ä*#P+#¼+# ,#l,#°,#Ô,#ð,# -#(-#D-#Ä-#<.#Ä.#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#$/#d#Ð#<#¬#ü#L#œ#Ì#X #ä #p!#ü!#ˆ"###d##ì##x$#%#%#&#&#¬'#Ü'#h(#ì(#|)#*#x*#ä*#P+#¼+# ,#l,#°,#Ô,#ð,# -#(-#D-#Ä-#<.#Ä.#T1: started, sending a message
+T2: value = %d, receiving a message
+T2: received message: length=%ld, prio=%d, text=°%s°, notify...
+T2: mq_notify returns errno %d
+T2: 1 sec. reached, sending another message and creating T3 and T4,
+T3: received message: length=%ld, prio=%d, text=°%s°
+T3: 2 sec. reached, sending 5 messages
+T3: mq_send1 returns errno %d
+T3: mq_send2 returns errno %d
+T3: mq_send3 returns errno %d
+T3: mq_send4 returns errno %d
+T3: mq_send5 returns errno %d
+T4: AAAARRRRGGGHHH!!! killed by someone...
+T4: received message: length=%ld, prio=%d, text=°%s°
+Signal %d code=%s value=%d task=%d time=%ldusec
+main: mq_open returns errno %d
+main: mq_notify returns errno %d
+main: created mq, creating T1...
+main: waiting t= 3.5 sec., then kill T4...
+Donald DuckT1: mq_send returns errno %d
+T1: ending...
+T2: waiting t = 1 sec.
+Mickey MouseT2: mq_send returns errno %d
+T2: ending...
+T3: waiting a message...
+T3: waiting t = 1.5 sec.
+GoofyÛMinniePlutoRocker DuckOncle ScroodgeT3: ending...
+T4: waiting t = 2.2 sec.
+TimerOthermqmain: ending...
+Error during Keyboard Initialization!!!Ctrl-C pressed!
+KeybPortKeyTasktask_create
+scheduletime %lus %luns * caplasttime %lus %luns * exec=%d TIME = %lu
+The system tick must be less than 55 mSec!Abort detected
+Code : %u
+Too many scheduling levels!!!
+Too many resource levels!!!
+debug info noticewarn err crit alert emerg <%i>[%s] %sPosix task
+Signal number %d...
+with value : %d
+POSIX_ReadyPOSIX_DelayPOSIX_UnknownSlice: %d
+MainPOSIX_register_level
+ alloco descrittore %d %d
+ lev=%d
+POSIX schedulerPid: %d Name: %20s Prio: %3ld Status: %s
+
+Panic!!! can't create main task...
+dummy PID: %d
+Dummy1Dummy2Dummy3Dummy4Dummy5Dummy6Dummy7Dummy8Dummy9Dummy0DummyaDummybDummycDummydDummyeDummyfDummygDummyhDummyDummy (RR) Posto dummy_create
+
+Panic!!! can't create dummy task...
+Entro in dummy_register_level
+Port des :
+Free port des : %d
+%d %s vt: %d pn: %d
+%d pd: %d vt: %d pn: %d Resources owned by the tasks:
+%-4dPI_register_module
+PI module
+PC priority of the tasks:
+%-4ldPC_register_module
+PC moduleTR %x
+SS:SP %x:%lx
+Stack0 : %x:%lx
+Stack1 : %x:%lx
+Stack2 : %x:%lx
+CS : %x DS : %x
+Descriptor [%x] InfoNo more Descriptors...
+%x (Hex)Base : %lx Lim : %lx Acc : %x Gran %x
+2Coprocessor error#Page fault*General protection fault*Stack exception*Segment not present*Unvalid TSS#INTEL reserved*Double defect1FPU context switch*Unvalid opcode#BOUND limit exceeded#Overflow detected on INTO#Breakpoint trap#NMI detected#Debug fault#Division by 0Exception %d occurred
+ABORT %d !!!LL Time Panic!!!
+time.cError! File:%s Line:%d %sOne-shot timer selected...
+Periodic timer selected...
+Unhandled Exc or Int occured!!!
+32/LINUX CrossCompiled/ELFHalt called1234567890-+12345678901234567890xabcdefABCDEF1234567890.e+-0123456789ABCDEF$@ +Æ@,ú1°<NaN+Inf-Infacosacosfacos: DOMAIN error
+asinasinfasin: DOMAIN error
+atan2atan2fatan2: DOMAIN error
+hypothypotfexpexpfy0fy0: DOMAIN error
+y1fy1: DOMAIN error
+ynynfyn: DOMAIN error
+lgammalgammaflgamma: SING error
+loglogflog: SING error
+log: DOMAIN error
+log10log10flog10: SING error
+log10: DOMAIN error
+powpowfpow(0,0): DOMAIN error
+pow(0,neg): DOMAIN error
+sinhsinhfsqrtsqrtfsqrt: DOMAIN error
+fmodfmodffmod: DOMAIN error
+remainderremainderfremainder: DOMAIN error
+acoshacoshfacosh: DOMAIN error
+atanhatanhfatanh: DOMAIN error
+atanh: SING error
+scalbscalbfj0j0f: TLOSS error
+j1j1fjnjnfneg**non-integral: DOMAIN error
+à?addfree.cmax >= minreg->min < reg->maxnew_max > new_min(reg->min & (sizeof(struct lmm_node) - 1)) == 0(reg->max & (sizeof(struct lmm_node) - 1)) == 0addregio.cr != reg(reg->max <= r->min) || (reg->min >= r->max)alloc.clmm != 0size > 0reg->free >= 0(DWORD)node < reg->maxreg->free >= size(reg->nodes == 0 && reg->free == 0) || (DWORD)reg->nodes >= reg->minreg->nodes == 0 || (DWORD)reg->nodes < reg->maxreg->free <= reg->max - reg->min((DWORD)node & (sizeof(struct lmm_node) - 1)) == 0((DWORD)node->size & (sizeof(struct lmm_node) - 1)) == 0(node->next == 0) || (node->next > node)alloc_ge.canode >= node(split_size & (sizeof(struct lmm_node) - 1)) == 0lmm_dump(lmm=%p)
+dump.cnode->size >= sizeof(*node) free_check=%08lx
+reg->free == free_checklmm_dump done
+ region %08lx-%08lx size=%08lx flags=%08lx pri=%d free=%08lx
+ node %p-%08lx size=%08lx next=%p
+(node->size & (sizeof(struct lmm_node) - 1)) == 0block != 0reg != 0(DWORD)prevnode + prevnode->size == (DWORD)node(DWORD)node + size == (DWORD)nextnodestats.cLMM=%p: %u bytes in %u regions, %d nodes
+assertion %s failed in %s at line %i (task:%i_%i)
+MAGIC assertion failed in %s at line %i (task:%i_%i): %s
+KERNEL PANIC (sys_panic_stub): %s
+KERNEL PANIC (sys_panic): %s
+FreeExeSleepWaiting on joinTime (EXACT) : %lus %luns
+< Memory Dump >
+< Level %d : %s Code: %d Version: %d >
+8Œÿÿ’ÏÿÿšÏÿHk#ÿ`v#ÿÿÿÿÿÿÿÿÿÿÿÿ1234567890!@#$%^&*()-_=+[{]};:'"`~/?,<.>\|   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ 1234567890!"œ$%&/()='?^Š‚+*•‡…ø\|<_,:.;—õ   + +1234567890.+*/-+*-aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ[]@#hs#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-K#&K#K#K#K#
+K#K#üJ#¨•"°•"°•"SP#FP#8P#'P# P#öO#æO#ÒO#ÃO#³O#¦O#‘O#€O#fO#ZO#³O#GO#þþAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAš‡Q#ðÿÿÿÿGCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.1 2.96-98)01.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.0101.01.symtab.strtab.shstrtab.text.rodata.data.sbss.bss.comment.note"€ä=!>#€>H )Hk#È[ /Pv#àf5`v#àfØê :àf‚Cbx|Þ~I
\ No newline at end of file
/pse51/ptest6
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: mix/mix.c
===================================================================
--- mix/mix.c (.../tags/rel_0_3) (revision 1124)
+++ mix/mix.c (.../branches/pj) (revision 1085)
@@ -18,11 +18,11 @@
/*
------------
- CVS : $Id: mix.c,v 1.3 2003-01-07 17:10:17 pj Exp $
+ CVS : $Id: mix.c,v 1.1.1.1 2002-09-02 09:37:45 pj Exp $
File: $File$
- Revision: $Revision: 1.3 $
- Last update: $Date: 2003-01-07 17:10:17 $
+ Revision: $Revision: 1.1.1.1 $
+ Last update: $Date: 2002-09-02 09:37:45 $
------------
*/
@@ -636,7 +636,7 @@
/****************************** MAIN ******************************/
-int main()
+TASK main()
{
char s[20]; /* carattere letto da tastiera */
int x0, y0;
@@ -648,6 +648,7 @@
NRT_TASK_MODEL m2;
KEY_EVT eva, evx, evs;
+ set_exchandler_grx();
sys_atrunlevel(byebye, NULL, RUNLEVEL_BEFORE_EXIT);
/* set the keyboard handler */
/demos/branches/pj/cbs_ft/cbs_ft.c
15,11 → 15,11
 
/**
------------
CVS : $Id: cbs_ft.c,v 1.4 2003-01-07 17:10:16 pj Exp $
CVS : $Id: cbs_ft.c,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.4 $
Last update: $Date: 2003-01-07 17:10:16 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
 
This file contains the server CBS_FT
50,9 → 50,22
 
#include "cbs_ft.h"
 
/*+ 4 debug purposes +*/
#undef CBS_FT_TEST
 
#ifdef TESTG
#include "drivers/glib.h"
TIME x,oldx;
extern TIME starttime;
#endif
 
 
 
/*+ Status used in the level +*/
#define CBS_FT_IDLE APER_STATUS_BASE /*+ waiting the activation +*/
#define CBS_FT_ZOMBIE APER_STATUS_BASE+1 /*+ waiting the period end +*/
#define CBS_FT_DELAY APER_STATUS_BASE+2 /*+ waiting the delay end +*/
 
/* structure of an element of the capacity queue */
struct cap_queue {
128,7 → 141,7
new = (struct cap_queue *)kern_alloc(sizeof(struct cap_queue));
if (new == NULL) {
kern_printf("\nNew cash_queue element failed\n");
kern_raise(XINVALID_TASK, p);
kern_raise(XUNVALID_TASK, p);
return -1;
}
new->next = NULL;
229,7 → 242,7
/* If the budget is still less than 0, an exception is raised */
if (proc_table[p].avail_time <= 0) {
kern_printf("\nnegative value for the budget!\n");
kern_raise(XINVALID_TASK, p);
kern_raise(XUNVALID_TASK, p);
return;
}
 
263,16 → 276,33
job_task_default_model(job, lev->cbs_ft_dline[p]);
job_task_def_yesexc(job);
level_table[ lev->scheduling_level ]->
private_insert(lev->scheduling_level, p, (TASK_MODEL *)&job);
guest_create(lev->scheduling_level, p, (TASK_MODEL *)&job);
level_table[ lev->scheduling_level ]->
guest_activate(lev->scheduling_level, p);
}
 
 
static char *CBS_FT_status_to_a(WORD status)
{
if (status < MODULE_STATUS_BASE)
return status_to_a(status);
 
switch (status) {
case CBS_FT_IDLE : return "CBS_FT_Idle";
case CBS_FT_ZOMBIE : return "CBS_FT_Zombie";
case CBS_FT_DELAY : return "CBS_FT_Delay";
default : return "CBS_FT_Unknown";
}
}
 
 
 
 
/* this is the periodic reactivation of the task... */
static void CBS_FT_timer_reactivate(void *par)
{
PID p = (PID) par;
CBS_FT_level_des *lev;
struct timespec t;
 
lev = (CBS_FT_level_des *)level_table[proc_table[p].task_level];
 
281,7 → 311,7
reactivated */
/* request_time represents the time of the last instance release!! */
TIMESPEC_ASSIGN(&t, &lev->reactivation_time[p]);
TIMESPEC_ASSIGN(&proc_table[p].request_time, &lev->reactivation_time[p]);
/* If idle=1, then we have to discharge the capacities stored in
the capacity queue up to the length of the idle interval */
289,7 → 319,7
TIME interval;
struct timespec delta;
lev->idle = 0;
SUBTIMESPEC(&t, &lev->start_idle, &delta);
SUBTIMESPEC(&proc_table[p].request_time, &lev->start_idle, &delta);
/* length of the idle interval expressed in usec! */
interval = TIMESPEC2NANOSEC(&delta) / 1000;
 
322,7 → 352,7
else {
/* this situation cannot occur */
kern_printf("\nTrying to reactivate a primary task which is not IDLE!\n");
kern_raise(XINVALID_TASK,p);
kern_raise(XUNVALID_TASK,p);
}
}
 
405,7 → 435,7
 
/* we finally put the task in the FREE status */
proc_table[p].status = FREE;
iq_insertfirst(p,&freedesc);
q_insertfirst(p,&freedesc);
 
 
/* and free the allocated bandwidth */
412,14 → 442,67
lev->U -= (MAX_BANDWIDTH / lev->period[p]) * (TIME)lev->maxcap[p];
}
 
static PID CBS_FT_public_scheduler(LEVEL l)
 
static int CBS_FT_level_accept_task_model(LEVEL l, TASK_MODEL *m)
{
 
if (m->pclass == FT_PCLASS || m->pclass ==
(FT_PCLASS | l)) {
FT_TASK_MODEL *f = (FT_TASK_MODEL *) m;
//kern_printf("accept :FAULT TOLERANT TASK found!!!!!!\n"); */
if (f->type == PRIMARY && f->execP > 0 && f->budget < (int)f->period
&& f->backup != NIL) return 0;
if (f->type == BACKUP && f->wcetB > 0)
return 0;
}
return -1;
}
 
 
 
static int CBS_FT_level_accept_guest_model(LEVEL l, TASK_MODEL *m)
{
return -1;
}
 
static char *onoff(int i)
{
if (i)
return "On ";
else
return "Off";
}
 
static void CBS_FT_level_status(LEVEL l)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
PID p;
 
kern_printf("On-line guarantee : %s\n",
onoff(lev->flags & CBS_FT_ENABLE_GUARANTEE));
kern_printf("Used Bandwidth : %u/%u\n",
lev->U, MAX_BANDWIDTH);
 
for (p=0; p<MAX_PROC; p++)
if (proc_table[p].task_level == l && proc_table[p].status != FREE )
kern_printf("Pid: %2d Name: %10s Period: %9ld Dline: %9ld.%6ld Stat: %s\n",
p,
proc_table[p].name,
lev->period[p],
lev->cbs_ft_dline[p].tv_sec,
lev->cbs_ft_dline[p].tv_nsec/1000,
CBS_FT_status_to_a(proc_table[p].status));
}
 
static PID CBS_FT_level_scheduler(LEVEL l)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
/* it stores the actual time and set the IDLE flag in order to handle
the capacity queue discharging!!! */
lev->idle = 1;
kern_gettime(&lev->start_idle);
ll_gettime(TIME_EXACT, &lev->start_idle);
 
/* the CBS_FT don't schedule anything...
429,7 → 512,7
 
 
/* The on-line guarantee is enabled only if the appropriate flag is set... */
static int CBS_FT_public_guarantee(LEVEL l, bandwidth_t *freebandwidth)
static int CBS_FT_level_guarantee(LEVEL l, bandwidth_t *freebandwidth)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
 
450,22 → 533,17
}
 
 
static int CBS_FT_public_create(LEVEL l, PID p, TASK_MODEL *m)
static int CBS_FT_task_create(LEVEL l, PID p, TASK_MODEL *m)
 
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
FT_TASK_MODEL *s;
 
if (m->pclass != FT_PCLASS) return -1;
if (m->level != 0 && m->level != l) return -1;
s = (FT_TASK_MODEL *) m;
//kern_printf("accept :FAULT TOLERANT TASK found!!!!!!\n"); */
if (!(s->type == PRIMARY && s->execP > 0 && s->budget < (int)s->period
&& s->backup != NIL)) return -1;
if (!(s->type == BACKUP && s->wcetB > 0))
return -1;
/* now we know that m is a valid model */
/* if the CBS_FT_task_create is called, then the pclass must be a
valid pclass. */
FT_TASK_MODEL *s = (FT_TASK_MODEL *)m;
 
/* Enable budget check */
proc_table[p].control |= CONTROL_CAP;
 
507,7 → 585,7
}
 
 
static void CBS_FT_public_detach(LEVEL l, PID p)
static void CBS_FT_task_detach(LEVEL l, PID p)
{
/* the CBS_FT level doesn't introduce any dynamic allocated new field.
we have only to reset the NO_GUARANTEE FIELD and decrement the allocated
522,14 → 600,37
}
 
 
static void CBS_FT_public_dispatch(LEVEL l, PID p, int nostop)
static int CBS_FT_task_eligible(LEVEL l, PID p)
{
return 0; /* if the task p is chosen, it is always eligible */
}
 
#ifdef __TEST1__
extern int testactive;
extern struct timespec s_stime[];
extern TIME s_curr[];
extern TIME s_PID[];
extern int useds;
#endif
 
static void CBS_FT_task_dispatch(LEVEL l, PID p, int nostop)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
level_table[ lev->scheduling_level ]->
private_dispatch(lev->scheduling_level,p,nostop);
guest_dispatch(lev->scheduling_level,p,nostop);
 
#ifdef __TEST1__
if (testactive)
{
TIMESPEC_ASSIGN(&s_stime[useds], &schedule_time);
s_curr[useds] = proc_table[p].avail_time;
s_PID[useds] = p;
useds++;
}
#endif
}
 
static void CBS_FT_public_epilogue(LEVEL l, PID p)
static void CBS_FT_task_epilogue(LEVEL l, PID p)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
 
542,7 → 643,7
kern_raise(XWCET_VIOLATION,p);
/* we kill the current activation */
level_table[ lev->scheduling_level ]->
private_extract(lev->scheduling_level, p);
guest_end(lev->scheduling_level, p);
return;
}
 
552,11 → 653,11
/* The budget must be greater than 0! */
if (proc_table[p].avail_time <= 0) {
kern_printf("\nBackup task starting with exhausted budget\n");
kern_raise(XINVALID_TASK, p);
kern_raise(XUNVALID_TASK, p);
lev->CP[p] = 0;
/* we kill the current activation */
level_table[ lev->scheduling_level ]->
private_extract(lev->scheduling_level, p);
guest_end(lev->scheduling_level, p);
return;
}
}
564,20 → 665,21
/* the task returns into the ready queue by
calling the guest_epilogue... */
level_table[ lev->scheduling_level ]->
private_epilogue(lev->scheduling_level,p);
guest_epilogue(lev->scheduling_level,p);
}
 
 
static void CBS_FT_public_activate(LEVEL l, PID p)
static void CBS_FT_task_activate(LEVEL l, PID p)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
struct timespec t;
 
kern_gettime(&t);
ll_gettime(TIME_EXACT, &proc_table[p].request_time);
 
 
if (lev->P_or_B[p] == BACKUP) {
kern_printf("\nTrying to activate a BACKUP task!\n");
kern_raise(XINVALID_TASK, p);
kern_raise(XUNVALID_TASK, p);
}
else {
587,7 → 689,7
TIME interval;
struct timespec delta;
lev->idle = 0;
SUBTIMESPEC(&t, &lev->start_idle, &delta);
SUBTIMESPEC(&proc_table[p].request_time, &lev->start_idle, &delta);
/* length of the idle interval expressed in usec! */
interval = TIMESPEC2NANOSEC(&delta) / 1000;
607,7 → 709,7
}
}
CBS_FT_activation(lev, p, &t);
CBS_FT_activation(lev, p, &proc_table[p].request_time);
/* Set the reactivation timer */
620,13 → 722,28
}
}
 
static int CBS_FT_public_message(LEVEL l, PID p, void *m)
 
static void CBS_FT_task_insert(LEVEL l, PID p)
{
printk("CBS_FT_task_insert\n");
kern_raise(XUNVALID_TASK,p);
}
 
 
static void CBS_FT_task_extract(LEVEL l, PID p)
{
printk("CBS_FT_task_extract\n");
kern_raise(XUNVALID_TASK,p);
}
 
 
static void CBS_FT_task_endcycle(LEVEL l, PID p)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
 
level_table[ lev->scheduling_level ]->
private_extract(lev->scheduling_level,p);
guest_end(lev->scheduling_level,p);
 
proc_table[p].status = CBS_FT_IDLE;
646,8 → 763,10
job_task_default_model(job, lev->cbs_ft_dline[p]);
job_task_def_yesexc(job);
level_table[ lev->scheduling_level ]->
private_insert(lev->scheduling_level, lev->backup[p],
guest_create(lev->scheduling_level, lev->backup[p],
(TASK_MODEL *)&job);
level_table[ lev->scheduling_level ]->
guest_activate(lev->scheduling_level, lev->backup[p]);
}
else {
/* A spare capacity is inserted in the capacity queue!! */
668,15 → 787,10
proc_table[p].avail_time = 0;
}
}
 
jet_update_endcycle(); /* Update the Jet data... */
trc_logevent(TRC_ENDCYCLE,&exec_shadow); /* tracer stuff */
 
return 0;
}
 
 
static void CBS_FT_public_end(LEVEL l, PID p)
static void CBS_FT_task_end(LEVEL l, PID p)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
 
684,7 → 798,7
in a new release */
if (lev->P_or_B[p] == BACKUP) {
kern_printf("\nKilling a BACKUP task!\n");
kern_raise(XINVALID_TASK, p);
kern_raise(XUNVALID_TASK, p);
return;
}
 
698,11 → 812,11
}
level_table[ lev->scheduling_level ]->
private_extract(lev->scheduling_level,p);
guest_end(lev->scheduling_level,p);
 
 
/* we delete the reactivation timer */
kern_event_delete(lev->reactivation_timer[p]);
event_delete(lev->reactivation_timer[p]);
lev->reactivation_timer[p] = -1;
 
714,11 → 828,62
(void *)p);
}
 
 
static void CBS_FT_task_sleep(LEVEL l, PID p)
{
printk("CBS_FT_task_sleep\n");
kern_raise(XUNVALID_TASK,p);
}
 
 
static void CBS_FT_task_delay(LEVEL l, PID p, TIME usdelay)
{
printk("CBS_FT_task_delay\n");
kern_raise(XUNVALID_TASK,p);
}
 
 
static int CBS_FT_guest_create(LEVEL l, PID p, TASK_MODEL *m)
{ kern_raise(XUNVALID_GUEST,exec_shadow); return 0; }
 
static void CBS_FT_guest_detach(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_dispatch(LEVEL l, PID p, int nostop)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_epilogue(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_activate(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_insert(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_extract(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_endcycle(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_end(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBS_FT_guest_delay(LEVEL l, PID p,DWORD tickdelay)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
 
 
 
/* Registration functions */
 
/*+ Registration function:
int flags the init flags ... see CBS.h +*/
LEVEL CBS_FT_register_level(int flags, LEVEL master)
void CBS_FT_register_level(int flags, LEVEL master)
{
LEVEL l; /* the level that we register */
CBS_FT_level_des *lev; /* for readableness only */
727,28 → 892,58
printk("CBS_FT_register_level\n");
 
/* request an entry in the level_table */
l = level_alloc_descriptor(sizeof(CBS_FT_level_des));
l = level_alloc_descriptor();
 
lev = (CBS_FT_level_des *)level_table[l];
printk(" alloco descrittore %d %d\n",l,sizeof(CBS_FT_level_des));
 
/* alloc the space needed for the CBS_FT_level_des */
lev = (CBS_FT_level_des *)kern_alloc(sizeof(CBS_FT_level_des));
 
printk(" lev=%d\n",(int)lev);
 
/* update the level_table with the new entry */
level_table[l] = (level_des *)lev;
 
/* fill the standard descriptor */
lev->l.public_scheduler = CBS_FT_public_scheduler;
strncpy(lev->l.level_name, CBS_FT_LEVELNAME, MAX_LEVELNAME);
lev->l.level_code = CBS_FT_LEVEL_CODE;
lev->l.level_version = CBS_FT_LEVEL_VERSION;
 
lev->l.level_accept_task_model = CBS_FT_level_accept_task_model;
lev->l.level_accept_guest_model = CBS_FT_level_accept_guest_model;
lev->l.level_status = CBS_FT_level_status;
lev->l.level_scheduler = CBS_FT_level_scheduler;
 
if (flags & CBS_FT_ENABLE_GUARANTEE)
lev->l.public_guarantee = CBS_FT_public_guarantee;
lev->l.level_guarantee = CBS_FT_level_guarantee;
else
lev->l.public_guarantee = NULL;
lev->l.level_guarantee = NULL;
 
lev->l.public_create = CBS_FT_public_create;
lev->l.public_detach = CBS_FT_public_detach;
lev->l.public_end = CBS_FT_public_end;
lev->l.public_dispatch = CBS_FT_public_dispatch;
lev->l.public_epilogue = CBS_FT_public_epilogue;
lev->l.public_activate = CBS_FT_public_activate;
lev->l.public_message = CBS_FT_public_message;
lev->l.task_create = CBS_FT_task_create;
lev->l.task_detach = CBS_FT_task_detach;
lev->l.task_eligible = CBS_FT_task_eligible;
lev->l.task_dispatch = CBS_FT_task_dispatch;
lev->l.task_epilogue = CBS_FT_task_epilogue;
lev->l.task_activate = CBS_FT_task_activate;
lev->l.task_insert = CBS_FT_task_insert;
lev->l.task_extract = CBS_FT_task_extract;
lev->l.task_endcycle = CBS_FT_task_endcycle;
lev->l.task_end = CBS_FT_task_end;
lev->l.task_sleep = CBS_FT_task_sleep;
lev->l.task_delay = CBS_FT_task_delay;
 
lev->l.guest_create = CBS_FT_guest_create;
lev->l.guest_detach = CBS_FT_guest_detach;
lev->l.guest_dispatch = CBS_FT_guest_dispatch;
lev->l.guest_epilogue = CBS_FT_guest_epilogue;
lev->l.guest_activate = CBS_FT_guest_activate;
lev->l.guest_insert = CBS_FT_guest_insert;
lev->l.guest_extract = CBS_FT_guest_extract;
lev->l.guest_endcycle = CBS_FT_guest_endcycle;
lev->l.guest_end = CBS_FT_guest_end;
lev->l.guest_sleep = CBS_FT_guest_sleep;
lev->l.guest_delay = CBS_FT_guest_delay;
 
/* fill the CBS_FT descriptor part */
for (i=0; i<MAX_PROC; i++) {
NULL_TIMESPEC(&lev->cbs_ft_dline[i]);
768,8 → 963,6
lev->scheduling_level = master;
 
lev->flags = flags & 0x07;
 
return l;
}
 
 
776,9 → 969,13
 
bandwidth_t CBS_FT_usedbandwidth(LEVEL l)
{
CBS_FT_level_des *lev = (CBS_FT_level_des *)(level_table[l]);
 
return lev->U;
if (lev->l.level_code == CBS_FT_LEVEL_CODE &&
lev->l.level_version == CBS_FT_LEVEL_VERSION)
return lev->U;
else
return 0;
}
 
 
/demos/branches/pj/cbs_ft/cbs_ft.h
15,11 → 15,11
 
/**
------------
CVS : $Id: cbs_ft.h,v 1.2 2003-01-07 17:10:16 pj Exp $
CVS : $Id: cbs_ft.h,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2003-01-07 17:10:16 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
 
This file contains the server CBS_FT
57,7 → 57,6
#include <kernel/descr.h>
#include <kernel/var.h>
#include <kernel/func.h>
#include <kernel/trace.h>
 
 
 
134,7 → 133,7
#define ft_task_def_primary_exec(m,b) (m).execP = b
 
/************************************************************************/
LEVEL CBS_FT_register_level(int flags, LEVEL master);
void CBS_FT_register_level(int flags, LEVEL master);
 
 
bandwidth_t CBS_FT_usedbandwidth(LEVEL l);
/demos/branches/pj/jumpball/demo.c
18,11 → 18,11
 
/**
------------
CVS : $Id: demo.c,v 1.3 2003-01-07 17:10:17 pj Exp $
CVS : $Id: demo.c,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.3 $
Last update: $Date: 2003-01-07 17:10:17 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
**/
 
144,9 → 144,9
 
/* Default action for an kern exception is */
kern_cli();
kern_gettime(&t),
ll_gettime(TIME_EXACT, &t),
kern_printf("\nS.Ha.R.K. Exception raised!!!"
"\nTime (s:ns) :%ld:%ld"
"\nTime (s:ns) :%d:%d"
"\nException number:%d"
"\nPID :%d\n",
t.tv_sec, t.tv_nsec, info->si_value.sival_int,
182,8 → 182,8
grx_close();
kern_cli();
for (p = firstevent; p != NULL; p = p->next) {
kern_printf("par:%d time:%ld.%ld p:%d handler:%d\n",
(int)p->par, p->time.tv_sec, p->time.tv_nsec/1000, (int)p, (int)p->handler);
kern_printf("par:%d time:%d.%d p:%d handler:%d\n",
p->par, p->time.tv_sec, p->time.tv_nsec/1000, p, p->handler);
}
kern_sti();
}
216,6 → 216,7
k.ascii = 13;
keyb_hook(k,endfun);
 
set_exchandler_grx();
sys_atrunlevel(my_close, NULL, RUNLEVEL_BEFORE_EXIT);
 
 
/demos/branches/pj/robots/mouse2.c
770,6 → 770,8
 
// char StrAux[15];
 
set_exchandler_grx();
 
for (i=0; i<NMouses; i++)
Mouse[i].Flag=0;
for (i=0; i<(360+90); i++) // Inicializar a tabela de senos
/demos/branches/pj/auto/auto.c
21,11 → 21,11
 
/**
------------
CVS : $Id: auto.c,v 1.2 2003-01-07 17:10:15 pj Exp $
CVS : $Id: auto.c,v 1.1.1.1 2002-09-02 09:37:42 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2003-01-07 17:10:15 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:42 $
------------
**/
 
324,6 → 324,9
sys_end();
}
 
/* Set the exception handler */
set_exchandler_grx();
 
/* Set the closing function */
sys_atrunlevel(byebye, NULL, RUNLEVEL_BEFORE_EXIT);
 
/demos/branches/pj/auto/edfact.c
18,11 → 18,11
 
/**
------------
CVS : $Id: edfact.c,v 1.4 2003-01-07 17:10:15 pj Exp $
CVS : $Id: edfact.c,v 1.1.1.1 2002-09-02 09:37:42 pj Exp $
 
File: $File$
Revision: $Revision: 1.4 $
Last update: $Date: 2003-01-07 17:10:15 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:42 $
------------
**/
 
84,7 → 84,7
/*+ used to manage the JOB_TASK_MODEL and the
periodicity +*/
 
IQUEUE ready; /*+ the ready queue +*/
QUEUE ready; /*+ the ready queue +*/
 
int flags; /*+ the init flags... +*/
 
95,27 → 95,35
 
static void EDFACT_timer_deadline(void *par);
 
static void EDFACT_internal_activate(EDFACT_level_des *lev, PID p,
struct timespec *t)
static void EDFACT_internal_activate(EDFACT_level_des *lev, PID p)
{
struct timespec *temp;
TIMESPEC_ASSIGN(&proc_table[p].timespec_priority,
&proc_table[p].request_time);
ADDUSEC2TIMESPEC(lev->period[p], &proc_table[p].timespec_priority);
 
temp = iq_query_timespec(p, &lev->ready);
 
TIMESPEC_ASSIGN(temp,t);
ADDUSEC2TIMESPEC(lev->period[p], temp);
 
TIMESPEC_ASSIGN(&lev->deadline_timespec[p],
temp);
&proc_table[p].timespec_priority);
 
/* Insert task in the correct position */
proc_table[p].status = EDFACT_READY;
iq_timespec_insert(p,&lev->ready);
q_timespec_insert(p,&lev->ready);
 
/* needed because when there is a wcet miss I disable CONTROL_CAP */
proc_table[p].control |= CONTROL_CAP;
}
 
static char *EDFACT_status_to_a(WORD status)
{
if (status < MODULE_STATUS_BASE)
return status_to_a(status);
 
switch (status) {
case EDFACT_READY : return "EDFACT_Ready";
case EDFACT_IDLE : return "EDFACT_Idle";
default : return "EDFACT_Unknown";
}
}
 
static void EDFACT_timer_deadline(void *par)
{
PID p = (PID) par;
126,8 → 134,10
switch (proc_table[p].status) {
case EDFACT_IDLE:
edfact_printf("I%d",p);
TIMESPEC_ASSIGN(&proc_table[p].request_time,
&proc_table[p].timespec_priority);
 
EDFACT_internal_activate(lev,p, &lev->deadline_timespec[p]);
EDFACT_internal_activate(lev,p);
 
event_need_reschedule();
break;
159,17 → 169,93
kern_raise(XDEADLINE_MISS,p);
}
 
static int EDFACT_level_accept_task_model(LEVEL l, TASK_MODEL *m)
{
if (m->pclass == HARD_PCLASS || m->pclass == (HARD_PCLASS | l)) {
HARD_TASK_MODEL *h = (HARD_TASK_MODEL *)m;
 
if (h->wcet && h->mit && h->periodicity == PERIODIC)
return 0;
}
 
return -1;
}
 
static int EDFACT_level_accept_guest_model(LEVEL l, TASK_MODEL *m)
{
if (m->pclass == JOB_PCLASS || m->pclass == (JOB_PCLASS | l))
return 0;
else
return -1;
}
 
 
static char *onoff(int i)
{
if (i)
return "On ";
else
return "Off";
}
 
static void EDFACT_level_status(LEVEL l)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
PID p = lev->ready;
 
kern_printf("On-line guarantee : %s\n",
onoff(lev->flags & EDFACT_ENABLE_GUARANTEE));
kern_printf("Used Bandwidth : %u/%u\n",
lev->U, MAX_BANDWIDTH);
 
while (p != NIL) {
if ((proc_table[p].pclass) == JOB_PCLASS)
kern_printf("Pid: %2d (GUEST)\n", p);
else
kern_printf("Pid: %2d Name: %10s %s: %9d Dline: %9d.%6d Stat: %s\n",
p,
proc_table[p].name,
"Period ",
lev->period[p],
proc_table[p].timespec_priority.tv_sec,
proc_table[p].timespec_priority.tv_nsec/1000,
EDFACT_status_to_a(proc_table[p].status));
p = proc_table[p].next;
}
 
for (p=0; p<MAX_PROC; p++)
if (proc_table[p].task_level == l && proc_table[p].status != EDFACT_READY
&& proc_table[p].status != FREE )
kern_printf("Pid: %2d Name: %10s %s: %9d Dline: %9d.%6d Stat: %s\n",
p,
proc_table[p].name,
"Period ",
lev->period[p],
proc_table[p].timespec_priority.tv_sec,
proc_table[p].timespec_priority.tv_nsec/1000,
EDFACT_status_to_a(proc_table[p].status));
}
 
/* The scheduler only gets the first task in the queue */
static PID EDFACT_public_scheduler(LEVEL l)
static PID EDFACT_level_scheduler(LEVEL l)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
return iq_query_first(&lev->ready);
/* { // print 4 dbg the ready queue
PID p= lev->ready;
kern_printf("(s");
while (p != NIL) {
kern_printf("%d ",p);
p = proc_table[p].next;
}
kern_printf(") ");
}
*/
return (PID)lev->ready;
}
 
/* The on-line guarantee is enabled only if the appropriate flag is set... */
static int EDFACT_public_guarantee(LEVEL l, bandwidth_t *freebandwidth)
static int EDFACT_level_guarantee(LEVEL l, bandwidth_t *freebandwidth)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
187,17 → 273,14
 
}
 
static int EDFACT_public_create(LEVEL l, PID p, TASK_MODEL *m)
static int EDFACT_task_create(LEVEL l, PID p, TASK_MODEL *m)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
HARD_TASK_MODEL *h;
/* if the EDFACT_task_create is called, then the pclass must be a
valid pclass. */
 
if (m->pclass != HARD_PCLASS) return -1;
if (m->level != 0 && m->level != l) return -1;
h = (HARD_TASK_MODEL *)m;
if (!h->wcet || !h->mit || h->periodicity != PERIODIC) return -1;
/* now we know that m is a valid model */
HARD_TASK_MODEL *h = (HARD_TASK_MODEL *)m;
 
lev->period[p] = h->mit;
 
239,7 → 322,7
return 0; /* OK, also if the task cannot be guaranteed... */
}
 
static void EDFACT_public_detach(LEVEL l, PID p)
static void EDFACT_task_detach(LEVEL l, PID p)
{
/* the EDFACT level doesn't introduce any dinamic allocated new field.
we have only to reset the NO_GUARANTEE FIELD and decrement the allocated
253,17 → 336,22
lev->U -= (MAX_BANDWIDTH / lev->period[p]) * proc_table[p].wcet;
}
 
static void EDFACT_public_dispatch(LEVEL l, PID p, int nostop)
static int EDFACT_task_eligible(LEVEL l, PID p)
{
return 0; /* if the task p is chosen, it is always eligible */
}
 
static void EDFACT_task_dispatch(LEVEL l, PID p, int nostop)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* the task state is set EXE by the scheduler()
we extract the task from the ready queue
NB: we can't assume that p is the first task in the queue!!! */
iq_extract(p, &lev->ready);
q_extract(p, &lev->ready);
}
 
static void EDFACT_public_epilogue(LEVEL l, PID p)
static void EDFACT_task_epilogue(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
276,14 → 364,13
}
 
/* the task it returns into the ready queue... */
iq_timespec_insert(p,&lev->ready);
q_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
}
 
static void EDFACT_public_activate(LEVEL l, PID p)
static void EDFACT_task_activate(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
struct timespec t;
 
/* Test if we are trying to activate a non sleeping task */
/* save activation (only if needed... */
293,9 → 380,10
return;
}
 
kern_gettime(&t);
EDFACT_internal_activate(lev,p, &t);
ll_gettime(TIME_EXACT, &proc_table[p].request_time);
 
EDFACT_internal_activate(lev,p);
 
/* Set the deadline timer */
lev->deadline_timer[p] = kern_event_post(&lev->deadline_timespec[p],
EDFACT_timer_deadline,
303,24 → 391,24
 
}
 
static void EDFACT_public_unblock(LEVEL l, PID p)
static void EDFACT_task_insert(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* Insert task in the coEDFect position */
proc_table[p].status = EDFACT_READY;
iq_timespec_insert(p,&lev->ready);
q_timespec_insert(p,&lev->ready);
}
 
static void EDFACT_public_block(LEVEL l, PID p)
static void EDFACT_task_extract(LEVEL l, PID p)
{
}
 
static int EDFACT_public_message(LEVEL l, PID p, void *m)
static void EDFACT_task_endcycle(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
struct timespec t;
 
 
/* we reset the capacity counters... */
proc_table[p].avail_time = proc_table[p].wcet;
 
331,14 → 419,15
lev->nact[p]--;
 
/* see also EDFACT_timer_deadline */
kern_gettime(&t);
EDFACT_internal_activate(lev,p, &t);
ll_gettime(TIME_EXACT, &proc_table[p].request_time);
 
EDFACT_internal_activate(lev,p);
 
/* check if the deadline has already expired */
if (TIMESPEC_A_LT_B(iq_query_timespec(p, &lev->ready), &schedule_time)) {
if (TIMESPEC_A_LT_B(&proc_table[p].timespec_priority, &schedule_time)) {
/* count the deadline miss */
lev->dline_miss[p]++;
kern_event_delete(lev->deadline_timer[p]);
event_delete(lev->deadline_timer[p]);
}
 
}
349,16 → 438,11
proc_table[p].status = EDFACT_IDLE;
 
/* when the deadline timer fire, it recognize the situation and set
correctly all the stuffs (like reactivation, etc... ) */
correctly all the stuffs (like reactivation, request_time, etc... ) */
}
 
jet_update_endcycle(); /* Update the Jet data... */
trc_logevent(TRC_ENDCYCLE,&exec_shadow); /* tracer stuff */
 
return 0;
}
 
static void EDFACT_public_end(LEVEL l, PID p)
static void EDFACT_task_end(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
366,35 → 450,35
 
/* we finally put the task in the ready queue */
proc_table[p].status = FREE;
iq_insertfirst(p,&freedesc);
q_insertfirst(p,&freedesc);
/* and free the allocated bandwidth */
lev->U -= (MAX_BANDWIDTH/lev->period[p]) * proc_table[p].wcet;
 
if (lev->deadline_timer[p] != -1) {
edfact_printf("²%d",p);
kern_event_delete(lev->deadline_timer[p]);
event_delete(lev->deadline_timer[p]);
}
}
 
static void EDFACT_task_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_TASK,exec_shadow); }
 
static void EDFACT_task_delay(LEVEL l, PID p, TIME usdelay)
{ kern_raise(XUNVALID_TASK,exec_shadow); }
 
/* Guest Functions
These functions manages a JOB_TASK_MODEL, that is used to put
a guest task in the EDFACT ready queue. */
 
static void EDFACT_private_insert(LEVEL l, PID p, TASK_MODEL *m)
static int EDFACT_guest_create(LEVEL l, PID p, TASK_MODEL *m)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
JOB_TASK_MODEL *job = (JOB_TASK_MODEL *)m;
 
JOB_TASK_MODEL *job;
/* if the EDFACT_guest_create is called, then the pclass must be a
valid pclass. */
 
if (m->pclass != JOB_PCLASS || (m->level != 0 && m->level != l) ) {
kern_raise(XINVALID_TASK, p);
return;
}
 
job = (JOB_TASK_MODEL *)m;
 
TIMESPEC_ASSIGN(iq_query_timespec(p, &lev->ready), &job->deadline);
TIMESPEC_ASSIGN(&proc_table[p].timespec_priority, &job->deadline);
lev->deadline_timer[p] = -1;
lev->dline_miss[p] = 0;
403,50 → 487,83
 
if (job->noraiseexc)
lev->flag[p] = EDFACT_FLAG_NORAISEEXC;
else {
else
lev->flag[p] = 0;
lev->deadline_timer[p] = kern_event_post(iq_query_timespec(p, &lev->ready),
EDFACT_timer_guest_deadline,
(void *)p);
}
 
lev->period[p] = job->period;
 
/* Insert task in the correct position */
iq_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
 
/* there is no bandwidth guarantee at this level, it is performed
by the level that inserts guest tasks... */
 
return 0; /* OK, also if the task cannot be guaranteed... */
}
 
static void EDFACT_private_dispatch(LEVEL l, PID p, int nostop)
static void EDFACT_guest_detach(LEVEL l, PID p)
{
/* the EDFACT level doesn't introduce any dinamic allocated new field.
No guarantee is performed on guest tasks... so we don't have to reset
the NO_GUARANTEE FIELD */
}
 
static void EDFACT_guest_dispatch(LEVEL l, PID p, int nostop)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* the task state is set to EXE by the scheduler()
we extract the task from the ready queue
NB: we can't assume that p is the first task in the queue!!! */
iq_extract(p, &lev->ready);
q_extract(p, &lev->ready);
}
 
static void EDFACT_private_epilogue(LEVEL l, PID p)
static void EDFACT_guest_epilogue(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* the task has been preempted. it returns into the ready queue... */
iq_timespec_insert(p,&lev->ready);
q_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
}
 
static void EDFACT_private_extract(LEVEL l, PID p)
static void EDFACT_guest_activate(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* Insert task in the correct position */
q_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
 
/* Set the deadline timer */
if (!(lev->flag[p] & EDFACT_FLAG_NORAISEEXC))
lev->deadline_timer[p] = kern_event_post(&proc_table[p].timespec_priority,
EDFACT_timer_guest_deadline,
(void *)p);
 
}
 
static void EDFACT_guest_insert(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
/* Insert task in the correct position */
q_timespec_insert(p,&lev->ready);
proc_table[p].status = EDFACT_READY;
}
 
static void EDFACT_guest_extract(LEVEL l, PID p)
{
}
 
static void EDFACT_guest_endcycle(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void EDFACT_guest_end(LEVEL l, PID p)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
//kern_printf("EDFACT_guest_end: dline timer %d\n",lev->deadline_timer[p]);
if (proc_table[p].status == EDFACT_READY)
{
iq_extract(p, &lev->ready);
q_extract(p, &lev->ready);
//kern_printf("(g_end rdy extr)");
}
 
453,17 → 570,23
/* we remove the deadline timer, because the slice is finished */
if (lev->deadline_timer[p] != NIL) {
// kern_printf("EDFACT_guest_end: dline timer %d\n",lev->deadline_timer[p]);
kern_event_delete(lev->deadline_timer[p]);
event_delete(lev->deadline_timer[p]);
lev->deadline_timer[p] = NIL;
}
 
}
 
static void EDFACT_guest_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void EDFACT_guest_delay(LEVEL l, PID p, TIME usdelay)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
/* Registration functions */
 
/*+ Registration function:
int flags the init flags ... see EDFACT.h +*/
LEVEL EDFACT_register_level(int flags)
void EDFACT_register_level(int flags)
{
LEVEL l; /* the level that we register */
EDFACT_level_des *lev; /* for readableness only */
472,33 → 595,58
printk("EDFACT_register_level\n");
 
/* request an entry in the level_table */
l = level_alloc_descriptor(sizeof(EDFACT_level_des));
l = level_alloc_descriptor();
 
lev = (EDFACT_level_des *)level_table[l];
printk(" alloco descrittore %d %d\n",l,(int)sizeof(EDFACT_level_des));
 
/* alloc the space needed for the EDFACT_level_des */
lev = (EDFACT_level_des *)kern_alloc(sizeof(EDFACT_level_des));
 
printk(" lev=%d\n",(int)lev);
 
/* update the level_table with the new entry */
level_table[l] = (level_des *)lev;
 
/* fill the standard descriptor */
lev->l.private_insert = EDFACT_private_insert;
lev->l.private_extract = EDFACT_private_extract;
lev->l.private_dispatch = EDFACT_private_dispatch;
lev->l.private_epilogue = EDFACT_private_epilogue;
strncpy(lev->l.level_name, EDFACT_LEVELNAME, MAX_LEVELNAME);
lev->l.level_code = EDFACT_LEVEL_CODE;
lev->l.level_version = EDFACT_LEVEL_VERSION;
 
lev->l.public_scheduler = EDFACT_public_scheduler;
lev->l.level_accept_task_model = EDFACT_level_accept_task_model;
lev->l.level_accept_guest_model = EDFACT_level_accept_guest_model;
lev->l.level_status = EDFACT_level_status;
lev->l.level_scheduler = EDFACT_level_scheduler;
 
if (flags & EDFACT_ENABLE_GUARANTEE)
lev->l.public_guarantee = EDFACT_public_guarantee;
lev->l.level_guarantee = EDFACT_level_guarantee;
else
lev->l.public_guarantee = NULL;
lev->l.public_create = EDFACT_public_create;
lev->l.public_detach = EDFACT_public_detach;
lev->l.public_end = EDFACT_public_end;
lev->l.public_dispatch = EDFACT_public_dispatch;
lev->l.public_epilogue = EDFACT_public_epilogue;
lev->l.public_activate = EDFACT_public_activate;
lev->l.public_unblock = EDFACT_public_unblock;
lev->l.public_block = EDFACT_public_block;
lev->l.public_message = EDFACT_public_message;
lev->l.level_guarantee = NULL;
 
lev->l.task_create = EDFACT_task_create;
lev->l.task_detach = EDFACT_task_detach;
lev->l.task_eligible = EDFACT_task_eligible;
lev->l.task_dispatch = EDFACT_task_dispatch;
lev->l.task_epilogue = EDFACT_task_epilogue;
lev->l.task_activate = EDFACT_task_activate;
lev->l.task_insert = EDFACT_task_insert;
lev->l.task_extract = EDFACT_task_extract;
lev->l.task_endcycle = EDFACT_task_endcycle;
lev->l.task_end = EDFACT_task_end;
lev->l.task_sleep = EDFACT_task_sleep;
lev->l.task_delay = EDFACT_task_delay;
 
lev->l.guest_create = EDFACT_guest_create;
lev->l.guest_detach = EDFACT_guest_detach;
lev->l.guest_dispatch = EDFACT_guest_dispatch;
lev->l.guest_epilogue = EDFACT_guest_epilogue;
lev->l.guest_activate = EDFACT_guest_activate;
lev->l.guest_insert = EDFACT_guest_insert;
lev->l.guest_extract = EDFACT_guest_extract;
lev->l.guest_endcycle = EDFACT_guest_endcycle;
lev->l.guest_end = EDFACT_guest_end;
lev->l.guest_sleep = EDFACT_guest_sleep;
lev->l.guest_delay = EDFACT_guest_delay;
 
/* fill the EDFACT descriptor part */
for(i=0; i<MAX_PROC; i++) {
lev->period[i] = 0;
509,18 → 657,19
lev->nact[i] = 0;
}
 
iq_init(&lev->ready,&freedesc, 0);
lev->ready = NIL;
lev->flags = flags & 0x07;
lev->U = 0;
 
return l;
}
 
bandwidth_t EDFACT_usedbandwidth(LEVEL l)
{
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
return lev->U;
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
return lev->U;
else
return 0;
}
 
int EDFACT_get_dline_miss(PID p)
527,8 → 676,11
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
return lev->dline_miss[p];
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
return lev->dline_miss[p];
else
return -1;
}
 
int EDFACT_get_wcet_miss(PID p)
535,8 → 687,11
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
return lev->wcet_miss[p];
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
return lev->wcet_miss[p];
else
return -1;
}
 
int EDFACT_get_nact(PID p)
543,8 → 698,11
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
return lev->nact[p];
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
return lev->nact[p];
else
return -1;
}
 
int EDFACT_reset_dline_miss(PID p)
551,9 → 709,14
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
lev->dline_miss[p] = 0;
return 0;
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
{
lev->dline_miss[p] = 0;
return 0;
}
else
return -1;
}
 
int EDFACT_reset_wcet_miss(PID p)
560,8 → 723,13
{
LEVEL l = proc_table[p].task_level;
EDFACT_level_des *lev = (EDFACT_level_des *)(level_table[l]);
 
lev->wcet_miss[p] = 0;
return 0;
if (lev->l.level_code == EDFACT_LEVEL_CODE &&
lev->l.level_version == EDFACT_LEVEL_VERSION)
{
lev->wcet_miss[p] = 0;
return 0;
}
else
return -1;
}
 
/demos/branches/pj/auto/edfact.h
20,11 → 20,11
 
/**
------------
CVS : $Id: edfact.h,v 1.2 2003-01-07 17:10:15 pj Exp $
CVS : $Id: edfact.h,v 1.1.1.1 2002-09-02 09:37:42 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2003-01-07 17:10:15 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:42 $
------------
 
This file contains the server EDFACT (EDF with pending activations)
103,6 → 103,7
#include <kernel/config.h>
#include <sys/types.h>
#include <kernel/types.h>
#include <modules/codes.h>
 
 
 
131,10 → 132,8
 
/*+ Registration function:
int flags Options to be used in this level instance...
 
returns the level number at which the module has been registered.
+*/
LEVEL EDFACT_register_level(int flags);
void EDFACT_register_level(int flags);
 
/*+ Returns the used bandwidth of a level +*/
bandwidth_t EDFACT_usedbandwidth(LEVEL l);
/demos/branches/pj/myapp2/myapp.c
0,0 → 1,55
/*
* Project: S.Ha.R.K.
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
// if you want to use some functions, types, task models provided
// by your new module
 
#include "mymod.h"
 
// then, include any file you want here
 
// then, the classic C-style function
int main(int argc, char **argv)
{
// ... your stuff here
return 0;
}
 
 
 
 
 
 
 
 
/demos/branches/pj/myapp2/readme.txt
0,0 → 1,7
This is a template application, and it DOES NOTHING!!!
 
This is only an example package.
 
Please refer to the How To Compile reference guide for more informations.
 
Paolo
/demos/branches/pj/myapp2/makefile
0,0 → 1,16
#
#
#
 
ifndef BASE
BASE=..
endif
include $(BASE)/config/config.mk
 
PROGS= $(APP)
 
include $(BASE)/config/example.mk
 
$(APP):
make -f $(SUBMAKE) INIT=hartik3.o OTHEROBJS=
 
/demos/branches/pj/eli/eli.c
18,11 → 18,11
 
/**
------------
CVS : $Id: eli.c,v 1.3 2003-01-07 17:10:16 pj Exp $
CVS : $Id: eli.c,v 1.1.1.1 2002-09-02 09:37:45 pj Exp $
 
File: $File$
Revision: $Revision: 1.3 $
Last update: $Date: 2003-01-07 17:10:16 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:45 $
------------
 
This file is similar to the configuration of Hartik 3.3.1
50,7 → 50,6
 
#include "eli.h"
 
#include <time.h>
 
//########################################
// Definizione variabili globali
122,14 → 121,8
}
 
TASK pulisci(int i)
{
int x,y,dim;
struct timespec delay;
 
delay.tv_sec=0;
delay.tv_nsec=3000000;
 
while (1)
{ int x,y,dim;
while (1)
{
 
if(i==1)
146,7 → 139,7
}
 
 
nanosleep(&delay, NULL);
task_delay(3000);
PULISCI(x,y,dim);
 
sem_post(&pu);
697,6 → 690,8
// Sezione esecutiva del main ##
//####################################
 
set_exchandler_grx();
 
// Inizializzazione dei parametri hartik
sem_init(&mutex,0,1);
sem_init(&pu,0,1);
/demos/branches/pj/slsh/slsh.h
21,11 → 21,11
 
/**
------------
CVS : $Id: slsh.h,v 1.2 2003-01-07 17:10:18 pj Exp $
CVS : $Id: slsh.h,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2003-01-07 17:10:18 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
Author: Tomas Lennvall, Date: Feb 2000.
 
127,6 → 127,7
#include <kernel/config.h>
#include <sys/types.h>
#include <kernel/types.h>
#include <modules/codes.h>
 
#define STATIC_PCLASS 0x0500
 
195,7 → 196,7
} SLSH_interval;
 
/*+ Registration function: */
LEVEL SLSH_register_level();
void SLSH_register_level();
 
void SLSH_set_interval(LEVEL l, int start, int end, int maxt);
void SLSH_set_variables(LEVEL l, TIME length);
/demos/branches/pj/slsh/slsh.c
20,11 → 20,11
 
/**
------------
CVS : $Id: slsh.c,v 1.4 2003-01-07 17:10:18 pj Exp $
CVS : $Id: slsh.c,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.4 $
Last update: $Date: 2003-01-07 17:10:18 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
 
This file contains the scheduling module for Slot-Shifting.
63,7 → 63,6
#include <kernel/descr.h>
#include <kernel/var.h>
#include <kernel/func.h>
#include <kernel/trace.h>
 
//#define eslsh_printf kern_printf
#define slsh_printf printk
91,9 → 90,9
/* task lists */
SLSH_task tasks[MAX_PROC]; /* est and dl's for static and guaranteed task */
IQUEUE idle_statics; /* finished static tasks */
QUEUE idle_statics; /* finished static tasks */
IQUEUE unspecified; /* tasks with only a wcet */
QQUEUE unspecified; /* tasks with only a wcet */
/* the Intervals list */
SLSH_interval intervals[MAX_INTERVALS];
108,6 → 107,39
} SLSH_level_des;
 
 
/* Which task models the Slot-Shifting module accepts */
static int SLSH_level_accept_task_model(LEVEL l, TASK_MODEL* m)
{
HARD_TASK_MODEL* h;
SOFT_TASK_MODEL* s;
 
/* Check the models */
switch(m->pclass)
{
case STATIC_PCLASS: /* offline scheduled tasks */
return 0;
case HARD_PCLASS: /* hard aperiodic tasks */
h = (HARD_TASK_MODEL *) m;
if(h->drel != 0 && h->wcet != 0) /* must be set */
return 0;
break;
case SOFT_PCLASS: /* soft aperiodic tasks */
s = (SOFT_TASK_MODEL *) m;
if(s->wcet != 0) /* must be set */
return 0;
break;
default:
}
 
return -1; /* Not accepted model */
}
 
 
static void SLSH_level_status(LEVEL l)
{
kern_printf("Level status not implemented\n");
}
 
/* check if some tasks are ready, return 0 if ready, -1 otherwise */
static int SLSH_R(SLSH_task* tasks)
{
123,9 → 155,9
}
 
/* check if unspecified exists, return 0 if it exists, -1 otherwise */
static int SLSH_T(IQUEUE *unspecified)
static int SLSH_T(QQUEUE unspecified)
{
if(!iq_isempty(unspecified))
if(unspecified.first != NIL)
return 0;
else
return -1;
174,8 → 206,8
{
lowest_dl = lev->tasks[t].dabs;
pid = t;
}
}
}
}
}/* for all tasks */
186,7 → 218,7
static PID SLSH_candidates(SLSH_task* tasks)
{
int lowest_dl = 0;
PID pid = -1;
PID pid;
int t;
 
/* Use the EDL algorithm again to decide which task to run */
251,7 → 283,7
}
 
/* The scheduler, decides which task to run. */
static PID SLSH_public_scheduler(LEVEL l)
static PID SLSH_level_scheduler(LEVEL l)
{
SLSH_level_des* lev = (SLSH_level_des *)(level_table[l]);
PID pid;
268,10 → 300,10
else if(SLSH_R(lev->tasks) > 0 && SLSH_sc(lev->intervals, lev->current) > 0)
{
/* If unspecified exist, execute it according to FIFO order */
if(SLSH_T(&lev->unspecified) == 0)
if(SLSH_T(lev->unspecified) == 0)
{
SLSH_decSc(lev->intervals, lev->current, 1); /* decrease sc by 1 */
return iq_getfirst(&lev->unspecified);
return (PID)qq_getfirst(&lev->unspecified);
}
else /* No unspecified, execute task from candidates (statics) */
{
290,7 → 322,7
}
 
/* not used, slot-shifting handles all guarantees itself, it handles all bandwidth */
static int SLSH_public_guarantee(LEVEL l, bandwidth_t *freebandwidth)
static int SLSH_level_guarantee(LEVEL l, bandwidth_t *freebandwidth)
{
*freebandwidth = 0;
return 1;
424,7 → 456,7
}
 
/* check if task model is accepted and store nessecary parameters */
static int SLSH_public_create(LEVEL l, PID p, TASK_MODEL *m)
static int SLSH_task_create(LEVEL l, PID p, TASK_MODEL *m)
{
SLSH_level_des *lev = (SLSH_level_des *)(level_table[l]);
STATIC_TASK_MODEL* s;
431,27 → 463,6
HARD_TASK_MODEL* h;
SOFT_TASK_MODEL* u;
 
 
/* Check the models */
switch(m->pclass)
{
case STATIC_PCLASS: /* offline scheduled tasks */
break;
case HARD_PCLASS: /* hard aperiodic tasks */
h = (HARD_TASK_MODEL *) m;
if (h->drel == 0 || h->wcet == 0) /* must be set */
return -1;
break;
case SOFT_PCLASS: /* soft aperiodic tasks */
u = (SOFT_TASK_MODEL *) m;
if(u->wcet == 0) /* must be set */
return -1;
break;
default:
return -1;
}
 
 
/* if the SLSH_task_create is called, then the pclass must be a
valid pclass. Slot-shifting accepts STATIC_TASK, HARD_TASK
and SOFT_TASK models with some restrictions */
483,7 → 494,7
u = (SOFT_TASK_MODEL *) m;
proc_table[p].avail_time = u->wcet;
proc_table[p].wcet = u->wcet;
iq_insertlast(p, &lev->unspecified); /* respect FIFO order */
qq_insertlast(p, &lev->unspecified); /* respect FIFO order */
break;
default: /* a task model not supported */
return -1;
494,6 → 505,17
return 0;
}
 
static void SLSH_task_detach(LEVEL l, PID p)
{
/* do nothing */
}
 
/* check if a task chosen by scheduler is correct */
static int SLSH_task_eligible(LEVEL l, PID p)
{
return 0; /* if the task p is chosen, it is always eligible */
}
 
/************* The slot end event handler *************/
static void SLSH_slot_end(void* p)
{
521,7 → 543,7
{
lev->slot = 0;
while((pid = iq_getfirst(&lev->idle_statics)) != NIL)
while((pid = q_getfirst(&lev->idle_statics)) != NIL)
{
if(lev->tasks[pid].est <= lev->slot)
proc_table[pid].status = SLSH_READY;
537,7 → 559,7
}
 
/* when a task becomes executing (EXE status) */
static void SLSH_public_dispatch(LEVEL l, PID pid, int nostop)
static void SLSH_task_dispatch(LEVEL l, PID pid, int nostop)
{
SLSH_level_des *lev = (SLSH_level_des *)(level_table[l]);
struct timespec t;
547,7 → 569,7
NB: we can't assume that p is the first task in the queue!!! */
if(proc_table[pid].pclass == SOFT_PCLASS)
iq_extract(pid, &lev->unspecified);
qq_extract(pid, &lev->unspecified);
 
/* also start the timer for one slot length */
lev->slot_event = kern_event_post(&TIME2TIMESPEC(lev->slot_length, t),
555,7 → 577,7
}
 
/* called when task is moved from EXE status */
static void SLSH_public_epilogue(LEVEL l, PID pid)
static void SLSH_task_epilogue(LEVEL l, PID pid)
{
SLSH_level_des *lev = (SLSH_level_des *)(level_table[l]);
 
569,7 → 591,7
else /* the end of a slot. the task returns into the ready queue... */
{
if(proc_table[pid].pclass == SOFT_PCLASS)
iq_insertfirst(pid,&lev->unspecified);
qq_insertfirst(pid,&lev->unspecified);
proc_table[pid].status = SLSH_READY;
}
576,7 → 598,7
}
 
/* when task go from SLEEP to SLSH_READY or SLSH_WAIT */
static void SLSH_public_activate(LEVEL l, PID pid)
static void SLSH_task_activate(LEVEL l, PID pid)
{
SLSH_level_des *lev = (SLSH_level_des *)(level_table[l]);
WORD type = proc_table[pid].pclass;
598,13 → 620,13
/* insert unspecified tasks in QQUEUE and make it ready */
if(type == SOFT_PCLASS)
{
iq_insertlast(pid ,&lev->unspecified);
qq_insertlast(pid ,&lev->unspecified);
proc_table[pid].status = SLSH_READY;
}
}
 
/* when a task i returned to module from a semaphore, mutex ... */
static void SLSH_public_unblock(LEVEL l, PID pid)
static void SLSH_task_insert(LEVEL l, PID pid)
{
SLSH_level_des *lev = (SLSH_level_des *)(level_table[l]);
 
612,11 → 634,11
proc_table[pid].status = SLSH_READY;
if(proc_table[pid].pclass == SOFT_PCLASS)
iq_insertfirst(pid ,&lev->unspecified);
qq_insertfirst(pid ,&lev->unspecified);
}
 
/* when a semaphore, mutex ... taskes a task from module */
static void SLSH_public_block(LEVEL l, PID pid)
static void SLSH_task_extract(LEVEL l, PID pid)
{
/* Extract the running task from the level
. we have already extract it from the ready queue at the dispatch time.
629,8 → 651,14
*/
}
 
/* task has finished execution for this period */
static void SLSH_task_endcycle(LEVEL l, PID pid)
{
/* do nothing */
}
 
/* the task has finihed its wcet, kill task (dont kill static tasks) */
static void SLSH_public_end(LEVEL l, PID pid)
static void SLSH_task_end(LEVEL l, PID pid)
{
SLSH_level_des *lev = (SLSH_level_des *)(level_table[l]);
 
637,7 → 665,7
if(proc_table[pid].pclass == SOFT_PCLASS)
{
if (proc_table[pid].status == SLSH_READY)
iq_extract(pid, &lev->unspecified);
qq_extract(pid, &lev->unspecified);
}
else if(proc_table[pid].pclass == HARD_PCLASS)
{
650,7 → 678,7
{
proc_table[pid].avail_time = proc_table[pid].wcet;
proc_table[pid].status = SLSH_IDLE;
iq_priority_insert(pid, &lev->idle_statics);
q_insert(pid, &lev->idle_statics);
}
proc_table[pid].status = FREE;
657,25 → 685,61
}
 
/* called when a task should sleep but not execute for awhile, mabe a mode change */
//static void SLSH_task_sleep(LEVEL l, PID pid)
//{
//
// /* the task has terminated his job before it consume the wcet. All OK! */
// proc_table[pid].status = SLEEP;
//
// /* we reset the capacity counters... only for static tasks */
// if (proc_table[pid].pclass == STATIC_PCLASS)
// proc_table[pid].avail_time = proc_table[pid].wcet;
//
//}
static void SLSH_task_sleep(LEVEL l, PID pid)
{
 
/* the task has terminated his job before it consume the wcet. All OK! */
proc_table[pid].status = SLEEP;
/* we reset the capacity counters... only for static tasks */
if (proc_table[pid].pclass == STATIC_PCLASS)
proc_table[pid].avail_time = proc_table[pid].wcet;
}
 
static void SLSH_task_delay(LEVEL l, PID p, TIME usdelay) { }
 
/** Guest Functions, slot shifing accepts no guests, so all generates exceptions **/
 
static int SLSH_level_accept_guest_model(LEVEL l, TASK_MODEL* m) { return -1; }
 
static int SLSH_guest_create(LEVEL l, PID p, TASK_MODEL *m)
{ kern_raise(XUNVALID_GUEST,exec_shadow); return 0; }
 
static void SLSH_guest_detach(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_dispatch(LEVEL l, PID p, int nostop)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_epilogue(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_activate(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_insert(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_extract(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_endcycle(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_end(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void SLSH_guest_delay(LEVEL l, PID p, TIME usdelay)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
/******* Registration functions *******/
 
/*+ Registration function: */
LEVEL SLSH_register_level()
void SLSH_register_level()
{
LEVEL l; /* the level that we register */
SLSH_level_des *lev; /* for readableness only */
683,24 → 747,53
kern_printf("SLSH_register_level\n");
/* request an entry in the level_table */
l = level_alloc_descriptor(sizeof(SLSH_level_des));
/* request an entry in the level_table */
l = level_alloc_descriptor();
lev = (SLSH_level_des *)level_table[l];
/* alloc the space needed for the EDF_level_des */
lev = (SLSH_level_des *)kern_alloc(sizeof(SLSH_level_des));
printk(" lev=%d\n",(int)lev);
/* update the level_table with the new entry */
level_table[l] = (level_des *)lev;
/* fill the standard descriptor */
lev->l.public_scheduler = SLSH_public_scheduler;
lev->l.public_guarantee = SLSH_public_guarantee;
lev->l.public_create = SLSH_public_create;
lev->l.public_end = SLSH_public_end;
lev->l.public_dispatch = SLSH_public_dispatch;
lev->l.public_epilogue = SLSH_public_epilogue;
lev->l.public_activate = SLSH_public_activate;
lev->l.public_unblock = SLSH_public_unblock;
lev->l.public_block = SLSH_public_block;
/* fill the standard descriptor */
strncpy(lev->l.level_name, SLSH_LEVELNAME, MAX_LEVELNAME);
 
lev->l.level_code = SLSH_LEVEL_CODE;
lev->l.level_version = SLSH_LEVEL_VERSION;
 
lev->l.level_accept_task_model = SLSH_level_accept_task_model;
lev->l.level_accept_guest_model = SLSH_level_accept_guest_model;
lev->l.level_status = SLSH_level_status;
lev->l.level_scheduler = SLSH_level_scheduler;
 
lev->l.level_guarantee = SLSH_level_guarantee;
lev->l.task_create = SLSH_task_create;
lev->l.task_detach = SLSH_task_detach;
lev->l.task_eligible = SLSH_task_eligible;
lev->l.task_dispatch = SLSH_task_dispatch;
lev->l.task_epilogue = SLSH_task_epilogue;
lev->l.task_activate = SLSH_task_activate;
lev->l.task_insert = SLSH_task_insert;
lev->l.task_extract = SLSH_task_extract;
lev->l.task_endcycle = SLSH_task_endcycle;
lev->l.task_end = SLSH_task_end;
lev->l.task_sleep = SLSH_task_sleep;
lev->l.task_delay = SLSH_task_delay;
lev->l.guest_create = SLSH_guest_create;
lev->l.guest_detach = SLSH_guest_detach;
lev->l.guest_dispatch = SLSH_guest_dispatch;
lev->l.guest_epilogue = SLSH_guest_epilogue;
lev->l.guest_activate = SLSH_guest_activate;
lev->l.guest_insert = SLSH_guest_insert;
lev->l.guest_extract = SLSH_guest_extract;
lev->l.guest_endcycle = SLSH_guest_endcycle;
lev->l.guest_end = SLSH_guest_end;
lev->l.guest_sleep = SLSH_guest_sleep;
lev->l.guest_delay = SLSH_guest_delay;
/* fill the SLSH descriptor part */
for(i = 0; i < MAX_PROC; i++)
{
723,8 → 816,6
lev->slot = 0;
lev->slot_length = 0;
lev->slot_event = -1;
 
return l;
}
 
 
/demos/branches/pj/mpeg2/spatscal.c
92,7 → 92,7
#ifdef VERBOSE
if (Verbose_Flag>1)
printf("reading %s\n",fname);
#endif
#endif VERBOSE
fd=fopen(fname,"rb");
if (fd==NULL) sys_abort(-1); // PJ exit(-1);
for (j=0; j<lh; j++) {
123,7 → 123,7
#ifdef VERBOSE
if (Verbose_Flag>1)
printf("reading %s\n",fname);
#endif
#endif VERBOSE
fd=fopen(fname,"rb");
if (fd==NULL) sys_abort(-1); // PJ exit(-1);
for (j=0; j<lh; j+=lower_layer_progressive_frame?1:2)
137,7 → 137,7
#ifdef VERBOSE
if (Verbose_Flag>1)
printf("reading %s\n",fname);
#endif
#endif VERBOSE
fd=fopen(fname,"rb");
if (fd==NULL) sys_abort(-1); // PJ exit(-1);
for (j=1; j<lh; j+=2)
/demos/branches/pj/mpeg2/getvlc.c
347,7 → 347,7
#ifdef TRACE /* *CH* */
if (Trace_Flag)
printf("macroblock_type(SNR) (");
#endif
#endif TRACE
 
code = Show_Bits(3);
 
367,7 → 367,7
Print_Bits(code,3,SNRMBtab[code].len);
printf("): %s (%d)\n",MBdescr[(int)SNRMBtab[code].val],SNRMBtab[code].val);
}
#endif
#endif TRACE
 
 
return SNRMBtab[code].val;
/demos/branches/pj/base/iaster3.c
File deleted
/demos/branches/pj/base/iaster7.c
File deleted
/demos/branches/pj/base/iaster6.c
File deleted
/demos/branches/pj/base/isemdemo.c
File deleted
/demos/branches/pj/base/semdemo.c
File deleted
/demos/branches/pj/base/sig.c
File deleted
/demos/branches/pj/base/srpdemo.c
File deleted
/demos/branches/pj/base/preempt.c
File deleted
/demos/branches/pj/base/readme
File deleted
/demos/branches/pj/base/mousfind.c
File deleted
/demos/branches/pj/base/isched.c
File deleted
/demos/branches/pj/base/condtest.c
File deleted
/demos/branches/pj/base/jointest.c
File deleted
/demos/branches/pj/base/ihello.c
File deleted
/demos/branches/pj/base/hello.c
File deleted
/demos/branches/pj/base/intsem.c
File deleted
/demos/branches/pj/base/imdemo.c
File deleted
/demos/branches/pj/base/iaster1.c
File deleted
/demos/branches/pj/base/pcidemo.c
File deleted
/demos/branches/pj/base/iaster4.c
File deleted
/demos/branches/pj/base/aster1.c
File deleted
/demos/branches/pj/base/aster2.c
File deleted
/demos/branches/pj/base/aster3.c
File deleted
/demos/branches/pj/base/aster4.c
File deleted
/demos/branches/pj/base/aster5.c
File deleted
/demos/branches/pj/base/aster6.c
File deleted
/demos/branches/pj/base/aster7.c
File deleted
/demos/branches/pj/base/aster8.c
File deleted
/demos/branches/pj/base/memtest.c
File deleted
/demos/branches/pj/base/iaster8.c
File deleted
/demos/branches/pj/base/pcdemo.c
File deleted
/demos/branches/pj/base/pidemo.c
File deleted
/demos/branches/pj/base/keycode.c
File deleted
/demos/branches/pj/base/talk.c
File deleted
/demos/branches/pj/base/time.c
File deleted
/demos/branches/pj/base/sched.c
File deleted
/demos/branches/pj/base/aster.c
File deleted
/demos/branches/pj/base/mdemo.c
File deleted
/demos/branches/pj/base/cabs.c
1,42 → 1,3
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/*
* Copyright (C) 2000 Giorgio Buttazzo, Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*
* CVS : $Id: cabs.c,v 1.3 2003-01-07 17:10:15 pj Exp $
*/
 
/*--------------------------------------------------------------*/
/* TEST ON CABS */
/*--------------------------------------------------------------*/
88,6 → 49,32
 
/****************************************************************/
 
/* This is the exception handler. It is called when an exception
is raised.
It exits from the graphical mode, then it prints a message and
shutdown the kernel using sys_abort()
*/
 
void demo_exc_handler(int signo, siginfo_t *info, void *extra)
{
struct timespec t;
 
grx_close();
 
/* Default action for an kern exception is */
kern_cli();
ll_gettime(TIME_EXACT, &t),
kern_printf("\nS.Ha.R.K. Exception raised!!!"
"\nTime (s:ns) :%ld:%ld"
"\nException number:%d (numbers in include/bits/errno.h)"
"\nPID :%d\n",
t.tv_sec, t.tv_nsec, info->si_value.sival_int,
info->si_task);
sys_abort(1);
}
 
/******************************************************************/
 
/* This function is called when Alt-X is pressed.
It simply shutdown the system using sys_end.
Note that the byebye() function is called only if we exit from
122,7 → 109,7
void byebye(void *arg)
{
grx_close();
cprintf("Bye Bye!\n");
kern_printf("Bye Bye!\n");
}
 
/*--------------------------------------------------------------*/
134,10 → 121,23
 
int main(int argc, char **argv)
{
struct sigaction action;
 
char c = 0; /* character from keyboard */
 
/* Init the standard S.Ha.R.K. exception handler */
action.sa_flags = SA_SIGINFO; /* Set the signal action */
action.sa_sigaction = demo_exc_handler;
action.sa_handler = 0;
sigfillset(&action.sa_mask); /* we block all the other signals... */
 
if (sigaction(SIGHEXC, &action, NULL) == -1) { /* set the signal */
perror("Error initializing signals...");
sys_end();
}
 
/* Set the closing function */
sys_atrunlevel(byebye, NULL, RUNLEVEL_BEFORE_EXIT);
sys_atrunlevel(byebye, NULL, RUNLEVEL_BEFORE_EXIT|NO_AT_ABORT);
 
/* graphic card Initialization */
if (grx_init() < 1) {
145,9 → 145,10
}
if (grx_open(640, 480, 8) < 0) {
cprintf("GRX Err\n");
kern_printf("GRX Err\n");
sys_abort(1);
}
kern_printf("Video card ok!\n");
 
grx_clear(BLACK);
 
/demos/branches/pj/base/fly.c
18,11 → 18,11
 
/**
------------
CVS : $Id: fly.c,v 1.3 2003-01-07 17:10:15 pj Exp $
CVS : $Id: fly.c,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.3 $
Last update: $Date: 2003-01-07 17:10:15 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
**/
 
147,7 → 147,7
void byebye(void *arg)
{
grx_close();
cprintf("Bye Bye!\n");
kern_printf("Bye Bye!\n");
}
 
/****************************** MAIN ******************************/
160,6 → 160,9
int i = 0; /* number of tasks created */
TIME seme; /* used to init the random seed */
 
/* Set the exception handler */
set_exchandler_grx();
 
/* Set the closing function */
sys_atrunlevel(byebye, NULL, RUNLEVEL_BEFORE_EXIT);
 
169,9 → 172,10
}
if (grx_open(640, 480, 8) < 0) {
cprintf("GRX Err\n");
kern_printf("GRX Err\n");
sys_abort(1);
}
kern_printf("Video card ok!\n");
 
/* The scenario */
grx_rect(XMIN-D-1, YMIN-D-1, XMAX+D+1, YMAX+D+1, 14);
/demos/branches/pj/base/ego.c
18,11 → 18,11
 
/**
------------
CVS : $Id: ego.c,v 1.3 2003-01-07 17:10:15 pj Exp $
CVS : $Id: ego.c,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.3 $
Last update: $Date: 2003-01-07 17:10:15 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
**/
 
111,6 → 111,32
 
/****************************************************************/
 
/* This is the exception handler. It is called when an exception
is raised.
It exits from the graphical mode, then it prints a message and
shutdown the kernel using sys_abort()
*/
 
void demo_exc_handler(int signo, siginfo_t *info, void *extra)
{
struct timespec t;
 
grx_close();
 
/* Default action for an kern exception is */
kern_cli();
ll_gettime(TIME_EXACT, &t),
kern_printf("\nS.Ha.R.K. Exception raised!!!"
"\nTime (s:ns) :%ld:%ld"
"\nException number:%d (numbers in include/bits/errno.h)"
"\nPID :%d\n",
t.tv_sec, t.tv_nsec, info->si_value.sival_int,
info->si_task);
sys_abort(1);
}
 
/******************************************************************/
 
/* This function is called when Alt-X is pressed.
It simply shutdown the system using sys_end.
Note that the byebye() function is called only if we exit from
140,7 → 166,7
void byebye(void *arg)
{
grx_close();
cprintf("Bye Bye!\n");
kern_printf("Bye Bye!\n");
}
 
/****************************** MAIN ******************************/
150,9 → 176,21
PID pid1, pid2, pid3;
KEY_EVT emerg;
HARD_TASK_MODEL m1, m2, m3;
struct sigaction action;
 
/* Init the standard S.Ha.R.K. exception handler */
action.sa_flags = SA_SIGINFO; /* Set the signal action */
action.sa_sigaction = demo_exc_handler;
action.sa_handler = 0;
sigfillset(&action.sa_mask); /* we block all the other signals... */
 
if (sigaction(SIGHEXC, &action, NULL) == -1) { /* set the signal */
perror("Error initializing signals...");
sys_end();
}
 
/* Set the closing function */
sys_atrunlevel(byebye, NULL, RUNLEVEL_BEFORE_EXIT);
sys_atrunlevel(byebye, NULL, RUNLEVEL_BEFORE_EXIT|NO_AT_ABORT);
 
/* Initializes the semaphore */
sem_init(&mutex,0,1);
163,9 → 201,10
}
 
if (grx_open(640, 480, 8) < 0) {
cprintf("GRX Err\n");
kern_printf("GRX Err\n");
sys_abort(1);
}
kern_printf("Video card ok!\n");
 
/* set the keyboard handler to exit correctly */
emerg.ascii = 'x';
/demos/branches/pj/base/makefile
7,96 → 7,10
endif
include $(BASE)/config/config.mk
 
PROGS = hello sig time preempt
PROGS += aster aster1 aster2 aster3 aster4 aster5 aster6 aster7 aster8
PROGS += pcidemo talk mousfind keycode memtest
PROGS += jointest condtest intsem semdemo pidemo pcdemo srpdemo mdemo
PROGS += ego fly cabs sched
PROGS= ego fly cabs
 
include $(BASE)/config/example.mk
 
 
# Text applications
hello:
make -f $(SUBMAKE) APP=hello INIT= OTHEROBJS="ihello.o" OTHERINCL=
 
time:
make -f $(SUBMAKE) APP=time INIT= OTHEROBJS="ihello.o" OTHERINCL=
 
sig:
make -f $(SUBMAKE) APP=sig INIT= OTHEROBJS="ihello.o" OTHERINCL=
 
preempt:
make -f $(SUBMAKE) APP=preempt INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
semdemo:
make -f $(SUBMAKE) APP=semdemo INIT= OTHEROBJS="isemdemo.o" OTHERINCL=
 
pidemo:
make -f $(SUBMAKE) APP=pidemo INIT= OTHEROBJS="imdemo.o" OTHERINCL=
 
pcdemo:
make -f $(SUBMAKE) APP=pcdemo INIT= OTHEROBJS="imdemo.o" OTHERINCL=
 
srpdemo:
make -f $(SUBMAKE) APP=srpdemo INIT= OTHEROBJS="imdemo.o" OTHERINCL=
 
mdemo:
make -f $(SUBMAKE) APP=mdemo INIT= OTHEROBJS="imdemo.o" OTHERINCL=
 
aster:
make -f $(SUBMAKE) APP=aster INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
aster1:
make -f $(SUBMAKE) APP=aster1 INIT= OTHEROBJS="iaster1.o" OTHERINCL=
 
aster2:
make -f $(SUBMAKE) APP=aster2 INIT= OTHEROBJS="iaster1.o" OTHERINCL=
 
aster3:
make -f $(SUBMAKE) APP=aster3 INIT= OTHEROBJS="iaster3.o" OTHERINCL=
 
aster4:
make -f $(SUBMAKE) APP=aster4 INIT= OTHEROBJS="iaster4.o" OTHERINCL=
 
aster5:
make -f $(SUBMAKE) APP=aster5 INIT= OTHEROBJS="imdemo.o" OTHERINCL=
 
aster6:
make -f $(SUBMAKE) APP=aster6 INIT= OTHEROBJS="iaster6.o" OTHERINCL=
 
aster7:
make -f $(SUBMAKE) APP=aster7 INIT= OTHEROBJS="iaster7.o" OTHERINCL=
 
aster8:
make -f $(SUBMAKE) APP=aster8 INIT= OTHEROBJS="iaster8.o" OTHERINCL=
 
pcidemo:
make -f $(SUBMAKE) APP=pcidemo INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
talk:
make -f $(SUBMAKE) APP=talk INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
mousfind:
make -f $(SUBMAKE) APP=mousfind INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
jointest:
make -f $(SUBMAKE) APP=jointest INIT= OTHEROBJS="imdemo.o" OTHERINCL=
 
condtest:
make -f $(SUBMAKE) APP=condtest INIT= OTHEROBJS="imdemo.o" OTHERINCL=
 
intsem:
make -f $(SUBMAKE) APP=intsem INIT= OTHEROBJS="imdemo.o" OTHERINCL=
 
keycode:
make -f $(SUBMAKE) APP=keycode INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
memtest:
make -f $(SUBMAKE) APP=memtest INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
# Graphical applications
 
ego:
make -f $(SUBMAKE) APP=ego INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
106,5 → 20,3
cabs:
make -f $(SUBMAKE) APP=cabs INIT= OTHEROBJS="initfile.o" OTHERINCL=
 
sched:
make -f $(SUBMAKE) APP=sched INIT= OTHEROBJS="isched.o" OTHERINCL=
/demos/branches/pj/oldexamples/makefile
File deleted
/demos/branches/pj/oldexamples/tracer/test0.c
0,0 → 1,71
/*
*
*
*
*/
 
#include <kernel/func.h>
 
#include <fs/bdevinit.h>
#include <fs/fsinit.h>
#include <fs/bdev.h>
 
#include <drivers/keyb.h>
 
#include <sys/mount.h>
 
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
 
#include "common.h"
 
#define FILENAME "/TEMP/ALFA1.TXT"
 
#include <trace/trace.h>
#include <trace/queues.h>
 
int __register_sub_init_prologue(void)
{
TRC_init_phase1(NULL);
trc_register_fixed_queue();
trc_create_queue(TRC_FIXED_QUEUE,NULL);
return 0;
}
 
int main(int argc,char *argv[])
{
int h;
 
showmessage("A file is opened for reading while the tracer\n"
"with a fixed queue is runnig\n");
cprintf("OPENING %s\n",FILENAME);
h=open(FILENAME,O_RDONLY);
if (h>=0) {
char buffer[128];
int len;
cprintf("OPENED!\n");
 
cprintf("READING...\n");
len=read(h,buffer,sizeof(buffer));
cprintf("READ %i bytes\n",len);
memset(buffer,'\0',sizeof(buffer));
cprintf("buffer='%s'\n",buffer);
 
cprintf("READING...\n");
len=read(h,buffer,sizeof(buffer));
cprintf("READ %i bytes\n",len);
memset(buffer,'\0',sizeof(buffer));
cprintf("buffer='%s'\n",buffer);
 
close(h);
} else
cprintf("FAILED!\n");
waitend();
return 0;
}
/demos/branches/pj/oldexamples/tracer/hello.c
0,0 → 1,209
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Massimiliano Giorgi <massy@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/*
* Copyright (C) 2000 Massimiliano Giorgi
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/*
* CVS : $Id: hello.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
*
* File: $File$
* Revision: $Revision: 1.1.1.1 $
* Last update: $Date: 2002-09-02 09:37:48 $
*/
 
/*
* Example of tracer initialization.
*/
 
#include <ll/i386/cons.h>
 
#include <kernel/func.h>
#include <kernel/trace.h>
 
#include <fs/bdevinit.h>
#include <fs/fsinit.h>
#include <fs/bdev.h>
 
#include <drivers/keyb.h>
 
#include <trace/trace.h>
#include <trace/queues.h>
 
#include <sys/mount.h>
#include <stddef.h>
 
/*
this example use initfs.c to initialize the system; this file define
the following two function.
__kernel_register_levels__(), must initialize all kernel modules,
it has this structure:
 
{
__register_sub_init_prologue();
 
... modules initialization....
__register_sub_init();
}
 
__init__(void *arg) is called when the first task is created
and must call the main():
 
{
 
... drivers initialization ....
 
__bdev_sub_init();
__fs_sub_init();
 
call_main()
 
}
*/
 
/*
* This function is called before all other modules initialization because
* all modules that need the tracer must follow tracer initialization.
*/
int __register_sub_init_prologue(void)
{
/* the first functions to call... parameters can be passed */
TRC_init_phase1(NULL);
/* all the tracer queues must be registrated (in this case only */
/* a dummy queue is initialized) */
trc_register_dummy_queue();
/* the queues must be created (only one in this example) */
trc_create_queue(TRC_DUMMY_QUEUE,NULL);
/* events can be dispatch to a queue (nothing in this case) */
return 0;
}
 
/*
* This function is called after all other modules initialization
* functions... notjing to do.
*/
int __register_sub_init(void)
{
return 0;
}
 
__dev_t root_device;
__dev_t temp_device;
 
/*
* Now the system is running... we have to initialize the block device
* drivers
*/
int __bdev_sub_init(void)
{
BDEV_PARMS bdev=BASE_BDEV;
 
/* This to initialize the block device drivers... a NULL can be passed */
/* to the bdev_init() functions */
bdev_def_showinfo(bdev,FALSE);
bdev_init(&bdev);
 
/* The following phase ca be made in several way: we must decide the */
/* device that we want mount as root... we use the bdev_find_byname() */
/* functions to find a specific device */
root_device=bdev_find_byname("ide/hda1");
if (root_device<0) {
cprintf("can't find root device to mount on /!!!\n");
sys_end();
return -1;
}
 
/* Well, we want a device to mount into /TEMP */
temp_device=bdev_find_byname("ide/hdb3");
if (temp_device<0) {
cprintf("can't find a filesystem to mount on /TEMP!!!\n");
sys_end();
return -1;
}
return 0;
}
 
 
/*
* This is the real filesystem initialization!
*/
int __fs_sub_init(void)
{
FILESYSTEM_PARMS fs=BASE_FILESYSTEM;
extern int libc_initialize(void);
int res;
struct mount_opts opts;
 
/* We set the root device and call the filesystem_init() function */
filesystem_def_rootdevice(fs,root_device);
filesystem_def_fs(fs,FS_MSDOS);
filesystem_def_showinfo(fs,FALSE);
filesystem_init(&fs);
 
/* We must initialize the libC if we use it */
libc_initialize();
 
/* We have choose to mount the second partiotion into the /TEMP */
/* directory with read/write privilegies (this step is not required) */
if (temp_device>=0) {
memset(&opts,0,sizeof(struct mount_opts));
opts.flags=MOUNT_FLAG_RW;
res=mount(temp_device,FS_MSDOS,"/TEMP",&opts);
if (res!=0) {
cprintf("can't mount XXX on /TEMP (errno: %i)\n",errno);
}
}
 
/* NOW we call the tracer initialization phase 2!!! */
/* It must FOLLOW the filesystem initialization... (this function */
/* can be called after the call to filesystem_init() functions but */
/* we do it here because we want be able to write into the /TEMP */
/* directory! */
TRC_init_phase2();
return 0;
}
 
void ctrlc_exit(KEY_EVT *k)
{
sys_end();
}
 
int main(int argc,char *argv[])
{
cprintf("\nHello, world!\n");
return 0;
}
/demos/branches/pj/oldexamples/tracer/sa.c
0,0 → 1,81
 
#include <netinet/in.h>
 
#include <stdlib.h>
#include <stdio.h>
#include "types.h"
#include <trace.h>
#include "util.h"
 
/* distribuzione del delta schedule_time - arrival_time */
 
#define MAXX 50
#define PREC 100
#define DELTA ((double)MAXX/(double)PREC)
 
#include "distr.c"
 
int task;
long a=-1;
long s;
 
int safunc(trc_event_t *ev)
{
if (event_class(ev->event)!=TRC_CLASS_SYSTEM) return 0;
if (ev->x.sys.task!=task) return 0;
 
if (a==-1) {
if (ev->event==TRC_ACTIVATE||ev->event==TRC_INTACTIVATION)
a=ev->time;
} else {
if (ev->event==TRC_SCHEDULE) {
s=ev->time;
d_insert(s-a);
a=-1;
}
}
return 0;
}
 
/* -- */
 
int main(int argc, char *argv[])
{
int res;
if (argc!=4) {
fprintf(stderr,"usage: sa [tracefile] [pid] [outputfile]\n");
return -1;
}
 
d_init();
 
task=atoi(argv[2]);
res=read_trace(argv[1],safunc);
 
if (res==0) {
FILE *fout;
fout=fopen(argv[3],"wt");
if (fout==NULL) {
fprintf(stderr,"error writing output file!\n");
return 0;
}
d_dump(fout);
fclose(fout);
}
 
if (res!=0) {
fprintf(stderr,"error=%i\n",res);
perror("ERROR");
}
 
return 0;
}
 
 
 
 
 
 
 
/demos/branches/pj/oldexamples/tracer/wait.c
0,0 → 1,56
 
#include <stdio.h>
#include <stdlib.h>
#include "types.h"
#include <trace.h>
#include "util.h"
 
/* distribuzione dei tempi di attesa sulle richieste al disco */
 
#define MAXX 37000
#define PREC 37000
#define DELTA ((double)MAXX/(double)PREC)
 
#include "distr.c"
 
int task;
long a=-1;
 
int waitfunc(trc_event_t *ev)
{
if (event_class(ev->event)!=TRC_CLASS_USER) return 0;
if (ev->x.usr.n!=task) return 0;
if (ev->event==TRC_USER1) {
a=ev->time;
return 0;
}
if (ev->event==TRC_USER2) {
if (a!=-1) d_insert(ev->time-a);
a=-1;
}
return 0;
}
 
int main(int argc, char *argv[])
{
FILE *fout;
int res;
if (argc!=4) {
fprintf(stderr,"missing filename!\n");
return -1;
}
d_init();
task=atoi(argv[2]);
res=read_trace(argv[1],waitfunc);
if (res==0) {
fout=fopen(argv[3],"wt");
if (fout!=NULL) {
d_dump(fout);
fclose(fout);
} else
fprintf(stderr,"can't create output file!\n");
} else
fprintf(stderr,"read_trace error\n");
return 0;
}
/demos/branches/pj/oldexamples/tracer/types.h
0,0 → 1,13
#ifndef __TYPES_H__
#define __TYPES_H__
 
#include <sys/types.h>
 
typedef unsigned char u_int8_t;
typedef unsigned short u_int16_t;
typedef unsigned long u_int32_t;
 
#include <types.h>
 
#endif
 
/demos/branches/pj/oldexamples/tracer/util.c
0,0 → 1,122
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
 
#include "types.h"
#include <trace.h>
#include <types.h>
 
static char *names[]={
"reserved",
"hoops",
/*--*/
"create",
"activate",
"schedule",
"delay",
"sleep",
"endcycle",
"destroy",
"intactiv",
/*--*/
"user0",
"user1",
"user2",
"user3",
"user4",
"user5",
"user6",
"user7",
/*--*/
"wait",
"waitnb",
"signal"
};
 
int classtable[TRC_NUMCLASSES+1]={
TRC_F_TRACER,
TRC_F_SYSTEM,
TRC_F_USER,
TRC_F_SEM,
TRC_F_LAST
};
 
int event_class(int ev)
{
int i;
if (ev<0||ev>=TRC_NUMEVENTS) return -1;
for (i=0;i<TRC_NUMCLASSES;i++)
if (ev>=classtable[i]&&ev<classtable[i+1]) return i;
return -1;
}
 
char *event_name(int ev)
{
if (ev<0||ev>=TRC_NUMEVENTS) return "unknown";
return names[ev];
}
 
char *event_hexdump(u_int8_t *ptr,int maxsize)
{
static char buffer[256];
int i;
for (i=0;i<maxsize;i++) sprintf(buffer+i*2,"%02x",*(ptr+i));
buffer[maxsize*2]='\0';
return buffer;
}
 
char *event_strdump(u_int8_t *ptr, int maxsize)
{
static char buffer[256];
memcpy(buffer,ptr,maxsize);
buffer[maxsize]='\0';
return buffer;
}
 
 
char *format_time(long time)
{
static char buffer[256];
if (time<1000l) {
sprintf(buffer,"%li",time);
return buffer;
}
if (time<1000000l) {
sprintf(buffer,"%li,%03li",time/1000l,time%1000l);
return buffer;
}
sprintf(buffer,"%li,%03li,%03li",
(time/1000000l),
(time%1000000l)/1000l,
time%1000l);
return buffer;
}
 
#ifndef O_BINARY
#define O_BINARY 0
#endif
 
int read_trace(char *filename,int (*func)(trc_event_t *))
{
trc_event_t buffer;
int fin;
int res;
fin=open(filename,O_RDONLY|O_BINARY);
if (fin==-1) return -1;
for (;;) {
res=read(fin,&buffer,sizeof(trc_event_t));
if (res!=sizeof(trc_event_t)) {
close(fin);
return res==0?0:-2;
}
res=(*func)(&buffer);
if (res!=0) {
close(fin);
return res;
}
}
close(fin);
return 0;
}
/demos/branches/pj/oldexamples/tracer/jdump.c
0,0 → 1,465
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Massimiliano Giorgi <massy@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/*
* Copyright (C) 1999 Massimiliano Giorgi
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/*
* CVS : $Id: jdump.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
*
* File: $File$
* Revision: $Revision: 1.1.1.1 $
* Last update: $Date: 2002-09-02 09:37:48 $
*/
 
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
 
#include "types.h"
#include <trace.h>
#include "util.h"
 
/*
*
*
*
*/
 
/* All times are dived by this costant. */
#define TIMESCALE 1
 
/* If defined dump on stdout the packets (in ascii) that will be written
* on the output file (the file of the tracer).
*/
 
#define DUMPOUT
 
/*
*
*
*
*/
 
int pippo=0;
 
int writeInt(int h, int x)
{
int y,res;
y=htonl(x);
res=write(h,&y,sizeof(int));
return res!=sizeof(int);
}
 
 
int writeStr(int h, char *s)
{
int res,size;
size=strlen(s);
writeInt(h,size);
res=write(h,s,size);
return res!=size;
}
 
/*
*
*/
 
#define TASK_ARRIVAL 0
#define TASK_SCHEDULE 1
#define TASK_DESCHEDULE 2
#define TASK_END 3
#define TASK_DLINEPOST 4
#define TASK_DLINESET 5
#define TASK_WAIT 6
#define TASK_SIGNAL 7
#define TASK_IDLE 8
#define TASK_NAME 9
 
#define EVT_NUMBER 10
 
char *eventsname[]={
"task_arrival",
"task_schedule",
"task_deschedule",
"task_end",
"task_dlinepost",
"task_dlineset",
"task_wait",
"task_signal",
"task_idle",
"task_name"
};
 
struct j_evt_prolog {
int type;
int time;
};
 
struct j_evt_task {
struct j_evt_prolog p;
int task;
};
 
struct j_evt_dlinepost {
struct j_evt_task t;
int taskD;
int taskD2;
};
 
struct j_evt_dlineset {
struct j_evt_task t;
int taskD;
};
 
struct j_evt_semaph {
struct j_evt_task t;
int res;
char *name;
};
 
struct j_evt_name {
struct j_evt_task t;
char *name;
};
 
/*
*
*/
 
int j_write_prolog(int h, void *ptr)
{
#ifdef DUMPOUT
printf("%10i ",((struct j_evt_prolog *)ptr)->time);
printf("%-18s ",eventsname[((struct j_evt_prolog *)ptr)->type]);
#endif
if (writeInt(h,((struct j_evt_prolog *)ptr)->type)) return -2;
if (writeInt(h,((struct j_evt_prolog *)ptr)->time)) return -3;
return 0;
}
 
int j_write_task(int h, void *ptr)
{
int res;
res=j_write_prolog(h,ptr);
#ifdef DUMPOUT
printf("tsk=%i ",((struct j_evt_task *)ptr)->task);
#endif
if (res) return res;
if (writeInt(h,((struct j_evt_task *)ptr)->task)) return -4;
return 0;
}
 
int j_write_dlinepost(int h, void *ptr)
{
int res;
res=j_write_task(h,ptr);
if (res) return res;
if (writeInt(h,((struct j_evt_dlinepost *)ptr)->taskD)) return -5;
if (writeInt(h,((struct j_evt_dlinepost *)ptr)->taskD2)) return -6;
return 0;
}
 
int j_write_dlineset(int h, void *ptr)
{
int res;
res=j_write_task(h,ptr);
if (res) return res;
if (writeInt(h,((struct j_evt_dlineset *)ptr)->taskD)) return -7;
return 0;
}
 
int j_write_semaph(int h, void *ptr)
{
int res;
res=j_write_task(h,ptr);
if (res) return res;
if (writeInt(h,((struct j_evt_semaph *)ptr)->res)) return -8;
if (writeStr(h,((struct j_evt_semaph *)ptr)->name)) return -9;
return 0;
}
 
int j_write_name(int h, void *ptr)
{
int res;
res=j_write_task(h,ptr);
#ifdef DUMPOUT
printf("name='%s' ",((struct j_evt_name *)ptr)->name);
#endif
if (res) return res;
if (writeStr(h,((struct j_evt_name *)ptr)->name)) return -10;
return 0;
}
int writeEvent(int h, void *ptr)
{
int res;
//printf("<%i>",((struct j_evt_prolog*)ptr)->type);
((struct j_evt_prolog*)ptr)->time/=TIMESCALE;
 
switch(((struct j_evt_prolog*)ptr)->type) {
case TASK_ARRIVAL:
case TASK_SCHEDULE:
case TASK_DESCHEDULE:
case TASK_END:
case TASK_IDLE:
res=j_write_task(h,ptr);
break;
case TASK_DLINEPOST:
res=j_write_dlinepost(h,ptr);
break;
case TASK_DLINESET:
res=j_write_dlineset(h,ptr);
break;
case TASK_WAIT:
case TASK_SIGNAL:
res=j_write_semaph(h,ptr);
break;
case TASK_NAME:
res=j_write_name(h,ptr);
break;
default:
return -1;
}
 
#ifdef DUMPOUT
printf(" \n");
#endif
 
return res;
}
 
/*
*
*
*
*/
 
#define MAX_PROC 150
 
//int activated[MAX_PROC];
 
int cxx=0;
/* write MAXC-1 events */
#define MAXC 14
 
long lasttime;
 
int sys_event(int h, void *param)
{
static int prevtask=-1;
trc_event_t *ptr=(trc_event_t *)param;
struct j_evt_task evt;
 
evt.p.time=ptr->time;
evt.task=ptr->x.sys.task;
 
lasttime=ptr->time;
switch(ptr->event) {
case TRC_CREATE:
return 0;
 
case TRC_ACTIVATE:
case TRC_INTACTIVATION:
 
 
//activated[ptr->x.sys.task]=1;
 
 
evt.p.type=TASK_ARRIVAL;
break;
case TRC_DESTROY:
 
 
//activated[ptr->x.sys.task]=0;
 
 
 
return 0;
case TRC_DELAY:
prevtask=-1;
evt.p.type=TASK_DESCHEDULE;
break;
case TRC_SLEEP:
prevtask=-1;
evt.p.type=TASK_DESCHEDULE;
break;
case TRC_ENDCYCLE:
evt.p.type=TASK_END;
break;
 
case TRC_SCHEDULE:
if (prevtask!=-1) {
struct j_evt_task evt2;
int res;
evt2.p.time=ptr->time;
evt2.p.type=TASK_DESCHEDULE;
evt2.task=prevtask;
res=writeEvent(h,&evt2);
if (res!=0) return -1;
}
 
/*
if (!activated[ptr->x.sys.task]) {
struct j_evt_task evt2;
 
evt2.p.time=ptr->time-1;
evt2.task=ptr->x.sys.task;
evt2.p.type=TASK_ARRIVAL;
 
writeEvent(h,&evt2);
activated[ptr->x.sys.task]=1;
}
*/
 
evt.p.type=TASK_SCHEDULE;
prevtask=ptr->x.sys.task;
break;
 
default:
return 0;
}
 
cxx++;
if (cxx==MAXC) return -1;
 
return writeEvent(h,&evt);
}
 
 
int sem_event(int h,void *param)
{
//trc_event_t *ptr=(trc_event_t *)param;
//struct j_evt_semaph evt;
 
return 0;
/*
evt.t.p.time=ptr->x.norm.when;
evt.t.task=ptr->x.norm.who;
switch(ptr->what) {
case TRC_SEM_WAIT: evt.t.p.type=TASK_WAIT; break;
case TRC_SEM_SIGNAL: evt.t.p.type=TASK_SIGNAL; break;
case TRC_SEM_WAITNB: return 0;
default: return 0;
}
evt.res=1;
evt.name="NoName";
return j_write_semaph(h,&evt);
*/
}
 
/* -- */
 
#define MAX_PROC 150
int names[MAX_PROC];
 
int outfile;
 
int dumpfunc(trc_event_t *ptr)
{
//printf("{%i}",ptr->event);
 
if (!names[ptr->x.sys.task]) {
struct j_evt_name evtname;
static char name[24];
 
cxx++;
if (cxx==MAXC) return -1;
evtname.t.p.time=lasttime;
evtname.t.task=ptr->x.sys.task;
evtname.t.p.type=TASK_NAME;
sprintf(name,"task%03i",ptr->x.sys.task);
evtname.name=name;
writeEvent(outfile,&evtname);
names[ptr->x.sys.task]=1;
 
}
 
switch(event_class(ptr->event)) {
case TRC_CLASS_SYSTEM:
return sys_event(outfile,ptr);
case TRC_CLASS_SEM:
return 0;
return sem_event(outfile,ptr);
case TRC_CLASS_USER:
return 0;
}
return 0;
}
 
/*
*
*/
 
#ifndef O_BINARY
#define O_BINARY 0
#endif
 
int main(int argc, char *argv[])
{
int res;
int i;
 
if (argc!=3) {
fprintf(stderr,"missing filenames\n");
fprintf(stderr,"usage: jdump H4tracefilename JTRACERtracefilename\n");
return -1;
}
 
for (i=0;i<MAX_PROC;i++) {
names[i]=0;
//activated[i]=0;
}
 
outfile=open(argv[2],O_WRONLY|O_CREAT|O_TRUNC|O_BINARY,0777);
if (outfile==-1) {
perror("can't open outfile");
return -1;
}
res=read_trace(argv[1],dumpfunc);
close(outfile);
//fprintf(stderr,"result=%i",res);
return 0;
}
/demos/branches/pj/oldexamples/tracer/util.h
0,0 → 1,17
 
#ifndef __UTIL_H
#define __UTIL_H
 
#include "types.h"
 
char *event_name(int evt);
char *event_hexdump(u_int8_t *ptr, int maxsize);
char *event_strdump(u_int8_t *ptr, int maxsize);
int event_class(int evt);
 
int read_trace(char *filename,int (*func)(trc_event_t *));
 
char *format_time(long time);
 
#endif
/demos/branches/pj/oldexamples/tracer/treec1.c
0,0 → 1,211
/*
*
*
*
*/
 
#include <kernel/func.h>
#include <kernel/model.h>
 
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mount.h>
#include <dirent.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <semaphore.h>
#include <stdio.h>
 
#include "common.h"
 
#include <trace/trace.h>
#include <trace/queues.h>
 
 
int noscroll=0;
SEM console;
 
#define MPROC ((50<(MAX_PROC-10))?50:MAX_PROC-10)
 
TASK viewdir(void *prof);
sem_t actmutex,actsync;
char *globpathname;
PID globpid;
int counter=0,actcounter=0;
 
void activate_task(int prof, char *pathname)
{
char tname[32];
NRT_TASK_MODEL m;
PID pid;
 
REPEAT:
sem_wait(&actmutex);
 
if (actcounter>=MPROC) {
sem_signal(&actmutex);
task_delay(10000);
goto REPEAT;
}
globpathname=pathname;
counter++;
sprintf(tname,"tsk%i",counter);
 
nrt_task_default_model(m);
nrt_task_def_arg(m,(void*)counter);
globpid=pid=task_create(tname,viewdir,&m,NULL);
if (pid==-1) {
sem_wait(&console);
cprintf("can't create '%s'\n",tname);
perror("can't create task");
sem_signal(&console);
sys_end();
return;
}
task_activate(pid);
sem_wait(&actsync);
actcounter++;
 
sem_signal(&actmutex);
}
 
/*
*
*/
 
int filecounter=0;
 
TASK viewdir(void *pointer)
{
struct dirent *den;
struct stat st;
char *str;
DIR *d;
int res;
int x;
char pathname[1024];
PID mypid;
int prof=(int)pointer;
 
strcpy(pathname,globpathname);
mypid=globpid;
sem_signal(&actsync);
 
str=pathname+(x=strlen(pathname));
d=opendir(pathname);
if (d==NULL) {
sem_wait(&console);
cprintf("%03i ERR: can't open dir %s\n",prof,pathname);
cprintf("errno: %i '%s'\n",errno,strerror(errno));
sem_signal(&console);
 
sys_end();
l1_exit(0);
goto END;
}
 
while ((den=readdir(d))!=NULL) {
 
if (x==1&&*pathname=='/')
strcat(pathname,den->d_name);
else
strcat(strcat(pathname,"/"),den->d_name);
 
sem_wait(&console);
if (noscroll) {
place(0,10);
cprintf(" ");
place(0,10);
}
cprintf("t%03i %s\n",prof,pathname);
filecounter++;
sem_signal(&console);
 
if (!strcmp(den->d_name,".")) goto SKIP;
if (!strcmp(den->d_name,"..")) goto SKIP;
 
res=stat(pathname,&st);
if (res!=0) {
sem_wait(&console);
cprintf("t%03i can't stat %s\n",prof,pathname);
cprintf("errno: %i '%s'\n",errno,strerror(errno));
sem_signal(&console);
 
sys_end();
l1_exit(0);
closedir(d);
goto END;
} else {
if (S_ISDIR(st.st_mode)) {
sem_wait(&console);
sem_signal(&console);
activate_task(prof,pathname);
}
}
 
SKIP:
*str='\0';
}
 
closedir(d);
 
END:
sem_wait(&actmutex);
actcounter--;
sem_signal(&actmutex);
 
return 0;
}
 
/*
*
*/
 
int __register_sub_init_prologue(void)
{
TRC_init_phase1(NULL);
trc_register_circular_queue();
trc_create_queue(TRC_CIRCULAR_QUEUE,NULL);
return 0;
}
 
/*
*
*/
 
int main(int argc,char *argv[])
{
// int res;
 
showmessage("This test show all filenames of a directory of an hardisk\n"
"recursively using a soft task for every directory.\n"
"The tracer with a circular queue is activated.\n");
 
sem_init(&console,0,1);
sem_init(&actmutex,0,1);
sem_init(&actsync,0,0);
 
activate_task(-1,FROMDIR);
 
for(;;) {
sem_wait(&actmutex);
if (actcounter==0) break;
sem_signal(&actmutex);
task_delay(500000);
}
 
cprintf("\nfiles: %i\n",filecounter);
waitend();
return 0;
}
/demos/branches/pj/oldexamples/tracer/treec2.c
0,0 → 1,224
/*
*
*
*
*/
 
#include <kernel/func.h>
#include <kernel/model.h>
 
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mount.h>
#include <dirent.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <semaphore.h>
#include <stdio.h>
 
#include "common.h"
 
#include <trace/trace.h>
#include <trace/queues.h>
 
#define sem_signal sem_post
 
int noscroll=0;
SEM console;
 
#define MPROC ((50<(MAX_PROC-10))?50:MAX_PROC-10)
 
TASK viewdir(void *prof);
sem_t actmutex,actsync;
char *globpathname;
PID globpid;
int counter=0,actcounter=0;
 
void activate_task(int prof, char *pathname)
{
char tname[32];
NRT_TASK_MODEL m;
PID pid;
 
REPEAT:
sem_wait(&actmutex);
 
if (actcounter>=MPROC) {
sem_signal(&actmutex);
task_delay(10000);
goto REPEAT;
}
globpathname=pathname;
counter++;
sprintf(tname,"tsk%i",counter);
 
nrt_task_default_model(m);
nrt_task_def_arg(m,(void*)counter);
globpid=pid=task_create(tname,viewdir,&m,NULL);
if (pid==-1) {
sem_wait(&console);
cprintf("can't create '%s'\n",tname);
perror("can't create task");
sem_signal(&console);
sys_end();
return;
}
task_activate(pid);
sem_wait(&actsync);
actcounter++;
 
sem_signal(&actmutex);
}
 
/*
*
*/
 
int filecounter=0;
 
TASK viewdir(void *pointer)
{
struct dirent *den;
struct stat st;
char *str;
DIR *d;
int res;
int x;
char pathname[1024];
PID mypid;
int prof=(int)pointer;
 
strcpy(pathname,globpathname);
mypid=globpid;
sem_signal(&actsync);
 
str=pathname+(x=strlen(pathname));
d=opendir(pathname);
if (d==NULL) {
sem_wait(&console);
cprintf("%03i ERR: can't open dir %s\n",prof,pathname);
cprintf("errno: %i '%s'\n",errno,strerror(errno));
sem_signal(&console);
 
sys_end();
l1_exit(0);
goto END;
}
 
while ((den=readdir(d))!=NULL) {
 
if (x==1&&*pathname=='/')
strcat(pathname,den->d_name);
else
strcat(strcat(pathname,"/"),den->d_name);
 
sem_wait(&console);
if (noscroll) {
place(0,10);
cprintf(" ");
place(0,10);
}
cprintf("t%03i %s\n",prof,pathname);
filecounter++;
sem_signal(&console);
 
if (!strcmp(den->d_name,".")) goto SKIP;
if (!strcmp(den->d_name,"..")) goto SKIP;
 
res=stat(pathname,&st);
if (res!=0) {
sem_wait(&console);
cprintf("t%03i can't stat %s\n",prof,pathname);
cprintf("errno: %i '%s'\n",errno,strerror(errno));
sem_signal(&console);
 
sys_end();
l1_exit(0);
closedir(d);
goto END;
} else {
if (S_ISDIR(st.st_mode)) {
sem_wait(&console);
sem_signal(&console);
activate_task(prof,pathname);
}
}
 
SKIP:
*str='\0';
}
 
closedir(d);
 
END:
sem_wait(&actmutex);
actcounter--;
sem_signal(&actmutex);
 
return 0;
}
 
/*
*
*/
 
int __register_sub_init_prologue(void)
{
TRC_CIRCULAR_PARMS args;
int q;
TRC_init_phase1(NULL);
trc_register_circular_queue();
trc_circular_default_parms(args);
trc_circular_def_onlinetask(args);
q=trc_create_queue(TRC_CIRCULAR_QUEUE,&args);
 
trc_assign_class_to_queue(TRC_CLASS_SYSTEM,q);
trc_trace_class(TRC_CLASS_SYSTEM);
return 0;
}
 
/*
*
*/
 
int main(int argc,char *argv[])
{
// int res;
 
showmessage("This test show all filenames of a directory of an hardisk\n"
"recursively using a soft task for every directory.\n"
"The tracer with a circular queue is activated that write\n"
"on hardisk online (while the system is running)\n");
 
sem_init(&console,0,1);
sem_init(&actmutex,0,1);
sem_init(&actsync,0,0);
 
activate_task(-1,FROMDIR);
//activate_task(-1,"/");
 
for(;;) {
sem_wait(&actmutex);
if (actcounter==0) break;
sem_signal(&actmutex);
task_delay(500000);
}
 
cprintf("\nfiles: %i\n",filecounter);
waitend();
return 0;
}
/demos/branches/pj/oldexamples/tracer/hello1.c
0,0 → 1,27
/*
*
*
*
*/
 
#include <ll/i386/cons.h>
#include <stddef.h>
 
#include <trace/trace.h>
#include <trace/queues.h>
 
int __register_sub_init_prologue(void)
{
TRC_init_phase1(NULL);
trc_register_dummy_queue();
trc_create_queue(TRC_DUMMY_QUEUE,NULL);
return 0;
}
 
int main(int argc,char *argv[])
{
cprintf("\nHello, world!\n");
cprintf("The tracer has been activated!\n");
cprintf("(No result are produced)\n\n");
return 0;
}
/demos/branches/pj/oldexamples/tracer/distr.c
0,0 → 1,44
 
long t[PREC];
long counter;
long hoops;
long maxv=0;
 
void d_init(void)
{
int i;
hoops=counter=0;
for (i=0;i<PREC;i++) t[i]=0;
}
 
void d_insert(long d)
{
if (d>=MAXX) {
hoops++;
if (d>maxv) maxv=d;
return;
}
 
counter++;
t[(int)(d/DELTA)]++;
}
 
void d_dump(FILE *fout)
{
int i;
 
if (counter==0) {
fprintf(stderr,"nothing to write to the output file\n");
return;
}
if (hoops) {
fprintf(stderr,"%li values to big (max=%li)\n",hoops,maxv);
}
for (i=0;i<PREC;i++)
fprintf(fout,"%f %f\n",
DELTA/2.0+DELTA*i,
(double)t[i]/(double)counter
);
}
/demos/branches/pj/oldexamples/tracer/road.c
0,0 → 1,57
 
#include <stdio.h>
#include <stdlib.h>
#include "types.h"
#include <trace.h>
#include "util.h"
 
 
/* distribuzione degli spostamenti della testina */
 
#define MAXX 1000
#define PREC 1000
#define DELTA ((double)MAXX/(double)PREC)
 
#include "distr.c"
 
int dumpusr(int event, trc_user_event_t *usr)
{
static long last=-1;
long d;
if (event!=TRC_USER0) return 0;
if (last!=-1) {
d=abs(last-usr->n);
d_insert(d);
}
last=usr->n;
return 0;
}
 
int dumpfunc(trc_event_t *ev)
{
if (event_class(ev->event)==TRC_CLASS_USER) dumpusr(ev->event,&ev->x.usr);
return 0;
}
 
int main(int argc, char *argv[])
{
FILE *fout;
int res;
if (argc!=3) {
fprintf(stderr,"missing filename!\n");
return -1;
}
d_init();
res=read_trace(argv[1],dumpfunc);
if (res==0) {
fout=fopen(argv[2],"wt");
if (fout!=NULL) {
d_dump(fout);
fclose(fout);
} else
fprintf(stderr,"can't create output file!\n");
} else
fprintf(stderr,"read_trace error\n");
return 0;
}
/demos/branches/pj/oldexamples/tracer/hello2.c
0,0 → 1,30
/*
*
*
*
*/
 
#include <ll/i386/cons.h>
#include <stddef.h>
 
#include <trace/trace.h>
#include <trace/queues.h>
 
int __register_sub_init_prologue(void)
{
int q;
TRC_init_phase1(NULL);
trc_register_fixed_queue();
q=trc_create_queue(TRC_FIXED_QUEUE,NULL);
trc_assign_class_to_queue(TRC_CLASS_SYSTEM,q);
trc_trace_class(TRC_CLASS_SYSTEM);
return 0;
}
 
int main(int argc,char *argv[])
{
cprintf("\nHello, world!\n");
cprintf("The tracer has been activated! Look at the results.\n");
cprintf("(A fixed queue has been created)\n\n");
return 0;
}
/demos/branches/pj/oldexamples/tracer/treef1.c
0,0 → 1,215
/*
*
*
*
*/
 
#include <kernel/func.h>
#include <kernel/model.h>
 
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mount.h>
#include <dirent.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <semaphore.h>
#include <stdio.h>
 
#include "common.h"
 
#include <trace/trace.h>
#include <trace/queues.h>
 
#define sem_signal sem_post
 
int noscroll=0;
SEM console;
 
#define MPROC ((50<(MAX_PROC-10))?50:MAX_PROC-10)
 
TASK viewdir(void *prof);
sem_t actmutex,actsync;
char *globpathname;
PID globpid;
int counter=0,actcounter=0;
 
void activate_task(int prof, char *pathname)
{
char tname[32];
NRT_TASK_MODEL m;
PID pid;
 
REPEAT:
sem_wait(&actmutex);
 
if (actcounter>=MPROC) {
sem_signal(&actmutex);
task_delay(10000);
goto REPEAT;
}
globpathname=pathname;
counter++;
sprintf(tname,"tsk%i",counter);
 
nrt_task_default_model(m);
nrt_task_def_arg(m,(void*)counter);
globpid=pid=task_create(tname,viewdir,&m,NULL);
if (pid==-1) {
sem_wait(&console);
cprintf("can't create '%s'\n",tname);
perror("can't create task");
sem_signal(&console);
sys_end();
return;
}
task_activate(pid);
sem_wait(&actsync);
actcounter++;
 
sem_signal(&actmutex);
}
 
/*
*
*/
 
int filecounter=0;
 
TASK viewdir(void *pointer)
{
struct dirent *den;
struct stat st;
char *str;
DIR *d;
int res;
int x;
char pathname[1024];
PID mypid;
int prof=(int)pointer;
 
strcpy(pathname,globpathname);
mypid=globpid;
sem_signal(&actsync);
 
str=pathname+(x=strlen(pathname));
d=opendir(pathname);
if (d==NULL) {
sem_wait(&console);
cprintf("%03i ERR: can't open dir %s\n",prof,pathname);
cprintf("errno: %i '%s'\n",errno,strerror(errno));
sem_signal(&console);
 
sys_end();
l1_exit(0);
goto END;
}
 
while ((den=readdir(d))!=NULL) {
 
if (x==1&&*pathname=='/')
strcat(pathname,den->d_name);
else
strcat(strcat(pathname,"/"),den->d_name);
 
sem_wait(&console);
if (noscroll) {
place(0,10);
cprintf(" ");
place(0,10);
}
cprintf("t%03i %s\n",prof,pathname);
filecounter++;
sem_signal(&console);
 
if (!strcmp(den->d_name,".")) goto SKIP;
if (!strcmp(den->d_name,"..")) goto SKIP;
 
res=stat(pathname,&st);
if (res!=0) {
sem_wait(&console);
cprintf("t%03i can't stat %s\n",prof,pathname);
cprintf("errno: %i '%s'\n",errno,strerror(errno));
sem_signal(&console);
 
sys_end();
l1_exit(0);
closedir(d);
goto END;
} else {
if (S_ISDIR(st.st_mode)) {
sem_wait(&console);
sem_signal(&console);
activate_task(prof,pathname);
}
}
 
SKIP:
*str='\0';
}
 
closedir(d);
 
END:
sem_wait(&actmutex);
actcounter--;
sem_signal(&actmutex);
 
return 0;
}
 
/*
*
*/
 
int __register_sub_init_prologue(void)
{
int q;
TRC_init_phase1(NULL);
trc_register_fixed_queue();
q=trc_create_queue(TRC_FIXED_QUEUE,NULL);
trc_assign_class_to_queue(TRC_CLASS_SYSTEM,q);
trc_trace_class(TRC_CLASS_SYSTEM);
return 0;
}
 
/*
*
*/
 
int main(int argc,char *argv[])
{
// int res;
 
showmessage("This test show all filenames of a directory of an hardisk\n"
"recursively using a soft task for every directory.\n"
"The tracer with a circular queue is activated.\n");
 
sem_init(&console,0,1);
sem_init(&actmutex,0,1);
sem_init(&actsync,0,0);
 
activate_task(-1,FROMDIR);
 
for(;;) {
sem_wait(&actmutex);
if (actcounter==0) break;
sem_signal(&actmutex);
task_delay(500000);
}
 
cprintf("\nfiles: %i\n",filecounter);
waitend();
return 0;
}
/demos/branches/pj/oldexamples/tracer/common.c
0,0 → 1,134
 
#include <kernel/func.h>
#include <kernel/trace.h>
 
#include <fs/bdevinit.h>
#include <fs/fsinit.h>
#include <fs/bdev.h>
 
#include <drivers/keyb.h>
 
#include <trace/trace.h>
#include <trace/queues.h>
 
#include <sys/mount.h>
 
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
 
int __register_sub_init(void)
{
return 0;
}
 
/* -- */
 
__dev_t root_device;
__dev_t temp_device;
 
int choose_root_callback(__dev_t dev,__uint8_t fs)
{
if (fs==FS_MSDOS) return dev;
return -1;
}
 
int choose_temp_callback(__dev_t dev,__uint8_t fs)
{
static int flag=0;
if (fs==FS_MSDOS) {
if (flag) return dev;
flag=1;
}
return -1;
}
 
/* -- */
 
extern int bdev_scan_devices(int(*callback)(__dev_t,__uint8_t));
 
int __bdev_sub_init(void)
{
BDEV_PARMS bdev=BASE_BDEV;
bdev_def_showinfo(bdev,FALSE);
bdev_init(&bdev);
 
root_device=bdev_scan_devices(choose_root_callback);
if (root_device<0) {
cprintf("can't find root device to mount on /!!!\n");
sys_end();
return -1;
}
 
temp_device=bdev_scan_devices(choose_temp_callback);
if (temp_device<0) {
cprintf("can't find a filesystem to mount on /TEMP!!!\n");
}
return 0;
}
 
/* -- */
 
extern int libc_initialize(void);
 
int __fs_sub_init(void)
{
FILESYSTEM_PARMS fs=BASE_FILESYSTEM;
struct mount_opts opts;
int res;
filesystem_def_rootdevice(fs,root_device);
filesystem_def_fs(fs,FS_MSDOS);
filesystem_def_showinfo(fs,FALSE);
 
 
//filesystem_init_prologue();
filesystem_init(&fs);
libc_initialize();
 
if (temp_device>=0) {
memset(&opts,0,sizeof(struct mount_opts));
opts.flags=MOUNT_FLAG_RW;
res=mount(temp_device,FS_MSDOS,"/TEMP",&opts);
if (res!=0) {
cprintf("can't mount XXX on /TEMP (errno: %i)\n",errno);
}
}
TRC_init_phase2();
return 0;
}
 
/* -- */
 
void ctrlc_exit(KEY_EVT *k)
{
extern void dump_sem_table(void);
extern void dump_nop_table(void);
//dump_sem_table();
//dump_nop_table();
//sys_status(SCHED_STATUS);
sys_end();
}
 
/* -- */
 
void showmessage(char *s)
{
cputs(s);
cprintf("Press [x] to begin...");
while (keyb_getchar()!='x');
cprintf("\n");
}
 
void waitend(void)
{
int c;
cprintf("Press [x] to exit...");
while ((c=keyb_getchar())!='x');
cprintf("\n");
}
/demos/branches/pj/oldexamples/tracer/tdump.c
0,0 → 1,73
 
#include <netinet/in.h>
 
#include <stdio.h>
#include "types.h"
#include <trace.h>
#include "util.h"
 
int dumpsys(trc_system_event_t *sys)
{
/*
if (sys->event==TRC_SCHEDULE) {
//if (sys->prev!=65535)
// printf("%02i->%02i\n",sys->prev,sys->task);
//else
printf("??->%02i\n",sys->task);
return 0;
}
*/
printf("%02i\n",sys->task);
return 0;
}
 
int dumpusr(trc_user_event_t *usr)
{
printf("%8li ",usr->n);
printf("\n");
return 0;
}
 
int dumpsem(trc_sem_event_t *sem)
{
printf("on [%i]\n",sem->id);
return 0;
}
 
int dumpfunc(trc_event_t *ev)
{
static int counter=0;
printf("%4i ",counter);
counter++;
printf("%12s ",format_time(ev->time));
printf("%-10s ",event_name(ev->event));
 
//printf("%08x\n",(unsigned)ev->sys.event);
//return 0;
switch(event_class(ev->event)) {
case TRC_CLASS_SYSTEM: return dumpsys(&ev->x.sys);
case TRC_CLASS_USER: return dumpusr(&ev->x.usr);
case TRC_CLASS_SEM: return dumpsem(&ev->x.sem);
}
printf("\nEVENT %i... CLASS %i UNKNOWN!\n",ev->event,event_class(ev->event));
return -1;
}
 
int main(int argc, char *argv[])
{
int res;
if (argc!=2) {
fprintf(stderr,"missing filename!\n");
return -1;
}
 
res=read_trace(argv[1],dumpfunc);
 
//fprintf(stderr,"result=%i\n",res);
//fprintf(stderr,"size=%li\n",sizeof(trc_event_t));
return 0;
}
/demos/branches/pj/oldexamples/tracer/simple.c
0,0 → 1,132
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Massimiliano Giorgi <massy@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/*
* Copyright (C) 2000 Massimiliano Giorgi
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/*
* CVS : $Id: simple.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
*
* File: $File$
* Revision: $Revision: 1.1.1.1 $
* Last update: $Date: 2002-09-02 09:37:48 $
*/
 
/*
* Example of simple tracer initialization.
*/
 
#include <ll/i386/cons.h>
 
#include <kernel/func.h>
#include <kernel/trace.h>
 
#include <fs/bdevinit.h>
#include <fs/fsinit.h>
#include <fs/bdev.h>
 
#include <drivers/keyb.h>
 
#include <trace/trace.h>
 
#include <sys/mount.h>
#include <stddef.h>
 
#define ROOTDEVICE "ide/hda2"
 
int __register_sub_init_prologue(void)
{
int res;
/* tracer initialization phase 1 */
res=TRC_init_phase1_standard();
if (res!=0) {
cprintf("tracer initialization error (%i)!!!\n",res);
sys_end();
return -1;
}
return 0;
}
 
int __register_sub_init(void)
{
return 0;
}
 
__dev_t root_device;
 
int __bdev_sub_init(void)
{
/* block device initialization */
bdev_init(NULL);
 
/* choose root device */
root_device=bdev_find_byname(ROOTDEVICE);
if (root_device<0) {
cprintf("can't find root device to mount on /!!!\n");
sys_end();
return -1;
}
 
return 0;
}
 
int __fs_sub_init(void)
{
FILESYSTEM_PARMS fs=BASE_FILESYSTEM;
extern int libc_initialize(void);
 
/* filesystems initialization */
filesystem_def_rootdevice(fs,root_device);
filesystem_def_fs(fs,FS_MSDOS);
filesystem_def_showinfo(fs,FALSE);
filesystem_init(&fs);
 
/* libC initialization */
libc_initialize();
 
/* tracer initialization phase 2 */
TRC_init_phase2_standard();
return 0;
}
 
void ctrlc_exit(KEY_EVT *k)
{
sys_end();
}
 
int main(int argc,char *argv[])
{
cprintf("\nSimple hello world (with tracer)!\n\n");
return 0;
}
/demos/branches/pj/oldexamples/tracer/makefile
0,0 → 1,69
#
#
#
 
ifndef BASE
BASE=../../..
endif
include $(BASE)/config/config.mk
 
PROGS= simple hello hello1 hello2 test0 treef1 treec1 treec2
OBJS=common.o
 
include $(BASE)/config/example.mk
 
simple:
make -f $(SUBMAKE) APP=simple INIT=initfs.o OTHEROBJS=
hello:
make -f $(SUBMAKE) APP=hello INIT=initfs.o OTHEROBJS=
hello1:
make -f $(SUBMAKE) APP=hello1 INIT=initfs.o OTHEROBJS=common.o
hello2:
make -f $(SUBMAKE) APP=hello2 INIT=initfs.o OTHEROBJS=common.o
test0:
make -f $(SUBMAKE) APP=test0 INIT=initfs.o OTHEROBJS=common.o
treef1:
make -f $(SUBMAKE) APP=treef1 INIT=initfs.o OTHEROBJS=common.o
treec1:
make -f $(SUBMAKE) APP=treec1 INIT=initfs.o OTHEROBJS=common.o
treec2:
make -f $(SUBMAKE) APP=treec2 INIT=initfs.o OTHEROBJS=common.o
 
#
#
#
 
 
.PHONY: util
 
util: tdump.exe jdump.exe sa.exe road.exe wait.exe
 
tdump.exe: tdump.c util.c
gcc -s -Wimplicit-function-declaration -Wall \
-I$(BASE)/include/trace tdump.c util.c -o tdump.exe
 
jdump.exe: jdump.c util.c
gcc -s -Wimplicit-function-declaration -Wall \
-I$(BASE)/include/trace jdump.c util.c -o jdump.exe
 
sa.exe: sa.c util.c distr.c
gcc -s -Wimplicit-function-declaration -Wall \
-I$(BASE)/include/trace sa.c util.c -o sa.exe
 
road.exe: road.c util.c distr.c
gcc -s -Wimplicit-function-declaration -Wall \
-I$(BASE)/include/trace road.c util.c -o road.exe
 
wait.exe: wait.c util.c distr.c
gcc -s -Wimplicit-function-declaration -Wall \
-I$(BASE)/include/trace wait.c util.c -o wait.exe
 
 
 
#include $(BASE)/config/example.mk
 
 
 
 
 
 
/demos/branches/pj/oldexamples/tracer/common.h
0,0 → 1,28
 
#ifndef _COMMON_H
#define _COMMON_H
 
#include <sys/types.h>
 
/*
#include <kernel/int_sem.h>
#define SEM internal_sem_t
#define sem_init internal_sem_init
#define sem_signal internal_sem_post
#define sem_wait internal_sem_wait
*/
 
#define SEM sem_t
#define sem_signal sem_post
 
extern __dev_t root_device;
extern __dev_t temp_device;
 
int choose_temp_callback(__dev_t dev,__uint8_t fs);
 
void showmessage(char *s);
void waitend(void);
 
#define FROMDIR "/TEMP"
 
#endif
/demos/branches/pj/oldexamples/kernel/test7.ori
0,0 → 1,244
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test7.ori,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 7:
 
this is a part of the classic Hartik demo Aster.
 
It checks:
- jet functions
- The EDF level with many task, with almost full bandwidth used
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules//edf.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
//#define PER_WCET 6200
//#define CLOCK_WCET 100
//#define ASTER_WCET 100
#define PER_WCET 20000
#define CLOCK_WCET 1000
#define ASTER_WCET 1000
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; // 5000 + rand()%5000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
num_aster--;
return 0;
}
 
TASK aster()
{
PID p;
 
HARD_TASK_MODEL m;
int r;
int x; // adaptive bandwidth...
 
hard_task_default_model(m);
hard_task_def_wcet(m,PER_WCET);
hard_task_def_ctrl_jet(m);
 
x = 64;
 
srand(7);
while (1) {
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
hard_task_def_arg(m,(void *)((rand() % 7)+1));
hard_task_def_mit(m, (x+r)*1000);
p = task_create("aaa",asteroide,&m,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
}
else {
num_aster++;
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"U=%12u",EDF_usedbandwidth(0));
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"U=%12u",EDF_usedbandwidth(0));
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
kern_cli();
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
kern_sti();
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
kern_cli();
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
kern_sti();
i++;
}
}
}
 
int main(int argc, char **argv)
{
PID p1,p2,p3; //,p4,p5,p6;
HARD_TASK_MODEL m;
NRT_TASK_MODEL m_nrt;
 
hard_task_default_model(m);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_mit(m,10000);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
nrt_task_default_model(m_nrt);
nrt_task_def_group(m_nrt,1);
nrt_task_def_ctrl_jet(m_nrt);
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
exit(-1);
}
 
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
exit(-1);
}
 
p3 = task_create("JetControl",jetcontrol,&m_nrt,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
exit(-1);
}
 
group_activate(1);
 
{
struct timespec t;
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
} while (t.tv_sec < 6);
}
//sys_status(SCHED_STATUS);
sys_end();
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/perf1.c
0,0 → 1,186
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: perf1.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Performance test 1:
 
there is one RR task that is preempted N_EDF times by an EDF task.
 
the test prints the differences of the execution time.
 
the test have to be compiled with the one shot timer, and it does not
use any init file.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/rr.h"
#include "modules/dummy.h"
 
#define TIMESPEC_N 100
#define RR_N 1000000000
#define EDF_N 2500
 
 
TIME __kernel_register_levels__(void *arg)
{
struct multiboot_info *mb = (struct multiboot_info *)arg;
 
EDF_register_level(EDF_ENABLE_ALL);
RR_register_level(1000*1000*1000, RR_MAIN_NO, mb);
RR_register_level(10000, RR_MAIN_YES, mb);
dummy_register_level();
 
return 300;
}
 
void *crash_RR(void *arg);
void *crash_EDF(void *arg);
 
void *__init__(void *arg)
{
int i;
 
PID p1,p2;
 
HARD_TASK_MODEL m_hard;
NRT_TASK_MODEL m_nrt;
 
TIME t[TIMESPEC_N];
 
// JET data
TIME sum, max, curr;
int nact;
 
 
 
hard_task_default_model(m_hard);
hard_task_def_mit (m_hard,2000);
hard_task_def_wcet (m_hard,1000);
hard_task_def_group (m_hard,1);
hard_task_def_ctrl_jet (m_hard);
 
nrt_task_default_model (m_nrt);
nrt_task_def_group (m_nrt,1);
nrt_task_def_ctrl_jet (m_nrt);
 
p1 = task_create("crash_EDF",crash_EDF,&m_hard,NULL);
if (p1 == -1) {
perror("Could not create task <crask_EDF> ...");
sys_end();
}
 
p2 = task_create("crash_RR",crash_RR,&m_nrt,NULL);
if (p2 == -1) {
perror("Could not create task <crask_RR> ...");
sys_end();
}
 
kern_cli();
/* timespec read time */
for (i=0; i<TIMESPEC_N; i++) {
t[i] = ll_gettime(TIME_EXACT, NULL);
}
kern_sti();
 
kern_printf("\n");
for (i=0; i<TIMESPEC_N; i++) {
kern_printf("%d: %ld Û", i, t[i]);
}
kern_printf("\n");
 
task_activate(p2);
 
jet_getstat(p2, &sum, &max, &nact, &curr);
kern_printf("RR test (alone): sum=%ld, max=%ld, nact=%d, curr=%ld\n",
sum, max, nact, curr);
jet_delstat(p2);
 
group_activate(1);
 
jet_getstat(p2, &sum, &max, &nact, &curr);
kern_printf("\nRR test : sum=%ld, max=%ld, nact=%d, curr=%ld\n",
sum, max, nact, curr);
jet_getstat(p1, &sum, &max, &nact, &curr);
kern_printf("EDF test : sum=%ld, max=%ld, nact=%d, curr=%ld\n",
sum, max, nact, curr);
 
sys_end();
 
return 0;
}
 
void *crash_RR(void *arg)
{
int i;
 
for (;;) {
for (i=0; i<RR_N; i++);
task_sleep();
}
return 0;
}
 
void *crash_EDF(void *arg)
{
int i;
 
for (;;) {
for (i=0; i<EDF_N; i++)
task_endcycle();
task_sleep();
}
return 0;
}
 
// not used!!!
int main(int argc, char **argv)
{
return 0;
}
 
 
 
 
/demos/branches/pj/oldexamples/kernel/perf2.c
0,0 → 1,401
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: perf2.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Performance Test 2:
 
This test tries to measure the time spent into the event handlers.
It is based on test D.
 
WARNING: the symbol __PERF_TEST2__ must be defined into the file
kernel/config.h
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/cbs.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
#define PER_MAX 5
#define APER_MAX 8
 
#define PER_WCET 8200
#define APER_WCET 20400
#define CLOCK_WCET 1600
#define ASTER_WCET 1600
#define SOFT_MET 3300
 
#define APER_REP 22000
 
PID aper_table[APER_MAX];
 
int shutting_down = 0;
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
}
 
TASK aper_asteroid(void *a)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
int c;
 
char s[2];
 
c = (int)a;
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = APER_REP; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
s[0] = c;
puts_xy(i,y,rand()%15+1,s);
 
if (shutting_down) {
kern_printf("±%d±",exec_shadow);
return 0;
}
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
}
 
TASK soft_aster(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 1000 + rand()%9000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
s[0] = 1;
puts_xy(i,y,rand()%15+1,s);
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
num_aster--;
return 0;
}
 
TASK aster()
{
PID p;
 
HARD_TASK_MODEL m;
SOFT_TASK_MODEL m_soft;
int r;
int x; // adaptive bandwidth...
 
srand(7);
 
hard_task_default_model(m);
hard_task_def_wcet(m,PER_WCET);
hard_task_def_ctrl_jet(m);
for (x=0; x<PER_MAX; x++) {
r = (rand() % 200);
hard_task_def_mit(m, (64+r)*1000);
p = task_create("per",asteroide,&m,NULL);
if (p!=-1) task_activate(p);
}
 
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,SOFT_MET);
soft_task_def_ctrl_jet(m_soft);
 
x = 64;
 
while (1) {
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
soft_task_def_period(m_soft, (x+r)*1000);
p = task_create("aaa",soft_aster,&m_soft,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
}
else {
num_aster++;
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(4));
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(4));
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
kern_cli();
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
kern_sti();
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1 ||
(proc_table[p].pclass & 0xFF00) == HARD_PCLASS) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
kern_cli();
if (proc_table[p].task_level == 4)
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)CBS_get_nact(4,p), (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
else
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
kern_sti();
i++;
}
}
}
 
void fine()
{
sys_end();
}
 
void exiting(void *arg)
{
kern_printf("EXITING");
shutting_down = 1;
}
 
TIME perftime_prol[10001];
TIME perftime_epil[10001];
int perftime_count = 0;
 
void perftest_stat(void *arg)
{
int i;
TIME d, sum=0, max=0;
 
for (i=0; i<9000; i++) {
d = perftime_epil[i]-perftime_prol[i];
sum += d;
if (max < d) max = d;
kern_printf("Û%ld %ldÛ",perftime_epil[i],perftime_prol[i]);
}
kern_printf("\n°°° perftime_count=%u sum=%lu max=%lu °°°\n",perftime_count, sum, max);
}
 
int main(int argc, char **argv)
{
PID p1,p2,p3; //,p4,p5,p6;
HARD_TASK_MODEL m;
// NRT_TASK_MODEL m_nrt;
SOFT_TASK_MODEL m_aper;
SOFT_TASK_MODEL m_soft;
int i;
struct timespec fineprg;
 
kern_cli();
 
kern_sti();
 
sys_atrunlevel(exiting, NULL, RUNLEVEL_SHUTDOWN);
sys_atrunlevel(perftest_stat, NULL, RUNLEVEL_BEFORE_EXIT);
 
hard_task_default_model(m);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_mit(m,10000);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
// nrt_task_default_model(m_nrt);
// nrt_task_def_group(m_nrt,1);
// nrt_task_def_ctrl_jet(m_nrt);
 
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,1000);
soft_task_def_period(m_soft,100000);
soft_task_def_group(m_soft,1);
soft_task_def_ctrl_jet(m_soft);
soft_task_def_aperiodic(m_soft);
 
 
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
 
// p3 = task_create("JetControl",jetcontrol,&m_nrt,NULL);
p3 = task_create("JetControl",jetcontrol,&m_soft,NULL);
if (p3 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
 
soft_task_default_model(m_aper);
soft_task_def_wcet(m_aper,APER_WCET);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_system(m_aper);
soft_task_def_aperiodic(m_aper);
 
for (i=0; i<APER_MAX; i++) {
soft_task_def_level(m_aper, i/4 + 2);
soft_task_def_arg(m_aper, (void *)(i/4 ? 'Û' : '±'));
aper_table[i] = task_create("aper",aper_asteroid,&m_aper,NULL);
if (aper_table[i] == -1) {
perror("test7.c(main): Could not create task <aper> ...");
sys_end();
l1_exit(-1);
}
}
 
task_nopreempt();
fineprg.tv_sec = 60;
fineprg.tv_nsec = 0;
kern_event_post(&fineprg,fine,NULL);
group_activate(1);
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/perf3.c
0,0 → 1,434
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: perf3.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Performance Test 3:
 
this test is based on test D.
 
the test creates some random events. each event measure the difference
beetween his activation time and thecurrent time.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/cbs.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
#define PER_MAX 5
#define APER_MAX 8
 
#define PER_WCET 8200
#define APER_WCET 20400
#define CLOCK_WCET 1600
#define ASTER_WCET 1600
#define SOFT_MET 3300
 
#define APER_REP 22000
 
PID aper_table[APER_MAX];
 
int shutting_down = 0;
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
}
 
TASK aper_asteroid(void *a)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
int c;
 
char s[2];
 
c = (int)a;
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = APER_REP; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
s[0] = c;
puts_xy(i,y,rand()%15+1,s);
 
if (shutting_down) {
kern_printf("±%d±",exec_shadow);
return 0;
}
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
}
 
TASK soft_aster(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 1000 + rand()%9000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
s[0] = 1;
puts_xy(i,y,rand()%15+1,s);
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
num_aster--;
return 0;
}
 
TASK aster()
{
PID p;
 
HARD_TASK_MODEL m;
SOFT_TASK_MODEL m_soft;
int r;
int x; // adaptive bandwidth...
 
srand(7);
 
hard_task_default_model(m);
hard_task_def_wcet(m,PER_WCET);
hard_task_def_ctrl_jet(m);
for (x=0; x<PER_MAX; x++) {
r = (rand() % 200);
hard_task_def_mit(m, (64+r)*1000);
p = task_create("per",asteroide,&m,NULL);
if (p!=-1) task_activate(p);
}
 
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,SOFT_MET);
soft_task_def_ctrl_jet(m_soft);
 
x = 64;
 
while (1) {
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
soft_task_def_period(m_soft, (x+r)*1000);
p = task_create("aaa",soft_aster,&m_soft,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
}
else {
num_aster++;
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(4));
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(4));
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
kern_cli();
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
kern_sti();
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1 ||
((proc_table[p].pclass & 0xFF00) == HARD_PCLASS)) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
kern_cli();
if (proc_table[p].task_level == 4)
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)CBS_get_nact(4,p), (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
else
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
kern_sti();
i++;
}
}
}
 
void fine()
{
sys_end();
}
 
void exiting(void *arg)
{
kern_printf("EXITING");
shutting_down = 1;
}
 
 
 
 
 
struct timespec last_random_time;
TIME max=0;
TIME sum=0;
int n=0;
 
void random_event(void *arg)
{
struct timespec t, sub;
TIME delta;
 
// get the current time
ll_gettime(TIME_EXACT, &t);
 
// compute the delta
SUBTIMESPEC(&t, &last_random_time, &sub);
delta = TIMESPEC2USEC(&sub);
 
// update the statistics
if (max < delta) max = delta;
sum += delta;
n++;
 
/* kern_printf("sub=%d.%d t=%d.%d last=%d.%d °\n",sub.tv_sec, sub.tv_nsec/1000,
t.tv_sec, t.tv_nsec/1000,
last_random_time.tv_sec, last_random_time.tv_nsec/1000);
*/ //return;
// create a new event
if (shutting_down)
return;
 
delta = (rand()%30000)+100;
ADDUSEC2TIMESPEC(delta, &t);
TIMESPEC_ASSIGN(&last_random_time, &t);
kern_event_post(&last_random_time, random_event, NULL);
}
 
void perftest_printdata(void *arg)
{
kern_printf("\n°°° max=%ld sum=%ld n=%d °°°",max,sum,n);
}
 
int main(int argc, char **argv)
{
PID p2; //p1,p3; //,p4,p5,p6;
HARD_TASK_MODEL m;
// NRT_TASK_MODEL m_nrt;
// SOFT_TASK_MODEL m_aper;
SOFT_TASK_MODEL m_soft;
int i;
struct timespec fineprg;
 
sys_atrunlevel(exiting, NULL, RUNLEVEL_SHUTDOWN);
sys_atrunlevel(perftest_printdata, NULL, RUNLEVEL_BEFORE_EXIT);
 
kern_printf("\n\n");
 
srand(1234);
NULL_TIMESPEC(&last_random_time);
i = rand()%30000+2000;
ADDUSEC2TIMESPEC(i, &last_random_time);
// last_random_time.tv_sec = 2;
// last_random_time.tv_nsec = 0;
kern_cli();
kern_event_post(&last_random_time, random_event, NULL);
kern_sti();
 
hard_task_default_model(m);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_mit(m,10000);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
// nrt_task_default_model(m_nrt);
// nrt_task_def_group(m_nrt,1);
// nrt_task_def_ctrl_jet(m_nrt);
 
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,1000);
soft_task_def_period(m_soft,100000);
soft_task_def_group(m_soft,1);
soft_task_def_ctrl_jet(m_soft);
soft_task_def_aperiodic(m_soft);
 
/*
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
*/
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
/*
// p3 = task_create("JetControl",jetcontrol,&m_nrt,NULL);
p3 = task_create("JetControl",jetcontrol,&m_soft,NULL);
if (p3 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
 
soft_task_default_model(m_aper);
soft_task_def_wcet(m_aper,APER_WCET);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_system(m_aper);
soft_task_def_aperiodic(m_aper);
 
for (i=0; i<APER_MAX; i++) {
soft_task_def_level(m_aper, i/4 + 2);
soft_task_def_arg(m_aper, (void *)(i/4 ? 'Û' : '±'));
aper_table[i] = task_create("aper",aper_asteroid,&m_aper,NULL);
if (aper_table[i] == -1) {
perror("test7.c(main): Could not create task <aper> ...");
sys_end();
l1_exit(-1);
}
}
*/
task_nopreempt();
fineprg.tv_sec = 6;
fineprg.tv_nsec = 0;
kern_event_post(&fineprg,fine,NULL);
group_activate(1);
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/testa.c
0,0 → 1,308
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testa.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 10 (A):
 
this is a part of the classic Hartik demo Aster.
 
it is based on test 7, with the use of TBS to serve a set of aperiodic
tasks.
 
There are APER_MAX tasks sleeping, and when an asteroide task finish
the current activation, it activate also an aperiodic task chosen
randomly (if the task chosen is already active, the task_activate do
nothing!)
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules//edf.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
#define APER_MAX 8
 
#define PER_WCET 6200
#define APER_WCET 18400
#define CLOCK_WCET 200
#define ASTER_WCET 200
 
#define APER_REP 22000
 
PID aper_table[APER_MAX];
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
num_aster--;
return 0;
}
 
TASK aper_asteroid(void *a)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
int c;
 
char s[2];
 
c = (int)a;
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = APER_REP; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
s[0] = c;
puts_xy(i,y,rand()%15+1,s);
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
}
 
TASK aster()
{
PID p;
 
HARD_TASK_MODEL m;
int r;
int x; // adaptive bandwidth...
 
hard_task_default_model(m);
hard_task_def_wcet(m,PER_WCET);
hard_task_def_ctrl_jet(m);
 
x = 64;
 
srand(7);
while (1) {
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
hard_task_def_arg(m,(void *)((rand() % 7)+1));
hard_task_def_mit(m, (x+r)*1000);
p = task_create("aaa",asteroide,&m,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
}
else {
num_aster++;
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"U=%12u",EDF_usedbandwidth(0));
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"U=%12u",EDF_usedbandwidth(0));
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
kern_cli();
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
kern_sti();
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
kern_cli();
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, (int)nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
kern_sti();
i++;
}
task_endcycle();
}
}
 
int main(int argc, char **argv)
{
PID p1,p2;//,p3,p4,p5,p6;
HARD_TASK_MODEL m;
NRT_TASK_MODEL m_nrt;
SOFT_TASK_MODEL m_aper;
int i;
 
hard_task_default_model(m);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_mit(m,10000);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
nrt_task_default_model(m_nrt);
nrt_task_def_group(m_nrt,1);
nrt_task_def_ctrl_jet(m_nrt);
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
 
soft_task_default_model(m_aper);
soft_task_def_wcet(m_aper,APER_WCET);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_system(m_aper);
soft_task_def_aperiodic(m_aper);
 
soft_task_def_level(m_aper, 2);
aper_table[0] = task_create("JetControl",jetcontrol,&m_aper,NULL);
if (aper_table[0] == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
 
for (i=1; i<APER_MAX; i++) {
soft_task_def_level(m_aper, i/4 + 2);
soft_task_def_arg(m_aper, (void *)(i/4 ? 'Û' : '±'));
aper_table[i] = task_create("aper",aper_asteroid,&m_aper,NULL);
if (aper_table[i] == -1) {
perror("test7.c(main): Could not create task <aper> ...");
sys_end();
l1_exit(-1);
}
}
 
 
group_activate(1);
 
{
struct timespec t;
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
} while (t.tv_sec < 6);
}
//sys_status(SCHED_STATUS);
sys_end();
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/perf4.c
0,0 → 1,112
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: perf4.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Performance test 1:
 
there is one RR task that is preempted N_EDF times by an EDF task.
 
the test prints the differences of the execution time.
 
the test have to be compiled with the one shot timer, and it does not
use any init file.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/rr.h"
#include "modules/dummy.h"
#include "modules/pi.h"
 
#define TIMESPEC_N 100
#define RR_N 1000000000
#define EDF_N 2500
 
 
TIME __kernel_register_levels__(void *arg)
{
struct multiboot_info *mb = (struct multiboot_info *)arg;
 
EDF_register_level(EDF_ENABLE_ALL);
RR_register_level(1000*1000*1000, RR_MAIN_NO, mb);
RR_register_level(10000, RR_MAIN_YES, mb);
dummy_register_level();
 
PI_register_module();
 
return 1200;
}
 
void *crash_RR(void *arg);
void *crash_EDF(void *arg);
 
void *__init__(void *arg)
{
TIME t1, t2;
PI_mutexattr_t a;
mutex_t m1;
int i;
 
PI_mutexattr_default(a);
 
mutex_init(&m1, &a);
 
t1 = sys_gettime(NULL);
for (i=0; i<1000; i++) {
mutex_lock(&m1);
mutex_unlock(&m1);
}
t2 = sys_gettime(NULL);
 
kern_printf("t1=%ld, t2=%ld\n",t1,t2);
 
return 0;
}
 
// not used !!!
int main(int argc, char **argv)
{
return 0;
}
/demos/branches/pj/oldexamples/kernel/testb.c
0,0 → 1,244
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testb.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 11 (B):
 
CBS test, similar to Test 10
 
There are 4 CBS aperiodic tasks and 1 periodic task.
after 5 secs, there is another activation of two of the four tasks.
at sec. 10 the test stops.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
#if !defined(__TEST1__)
THE TEST REQUIRE THE DEFINITION __TEST1__ IN CONFIG.C
#endif
 
struct timespec s_stime[10000];
struct timespec s_send[10000];
TIME s_curr[10000];
PID s_PID[10000];
int useds=0;
int testactive=1;
 
 
TASK pippo()
{
int i;
struct timespec t;
int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
} while (t.tv_nsec <= 30000000L);
}
 
TASK pippo2()
{
int i;
struct timespec t;
int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
} while (t.tv_nsec <= 30000000L);
}
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 15;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < 60) {
load1 = 10000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
task_endcycle();
 
if (i==7) testactive = 0;
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
}
 
TASK aper(void *a)
{
int i;
int y;
 
int load1,j;
 
char s[2];
 
y = (int) a;
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < 60) {
load1 = 600000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
}
 
 
int main(int argc, char **argv)
{
struct timespec t;
int i;
NRT_TASK_MODEL m;
HARD_TASK_MODEL m_per;
SOFT_TASK_MODEL m_aper;
PID p1, p2, p3, p4, p5;
int k=1;
 
srand(7);
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
 
p1 = task_create("pippo", pippo, &m, NULL);
if (p1 == NIL)
{ kern_printf("Can't create pippo task...\n"); }
 
p2 = task_create("pippo2", pippo2, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo2 task...\n"); }
 
hard_task_default_model(m_per);
hard_task_def_mit(m_per,15000);
hard_task_def_wcet(m_per,6200);
hard_task_def_group(m_per,1);
p3 = task_create("asteroide", asteroide, &m_per, NULL);
if (p3 == NIL)
{ kern_printf("Can't create asteroide task...\n"); }
 
soft_task_default_model(m_aper);
soft_task_def_met(m_aper,10000);
soft_task_def_period(m_aper,100000);
soft_task_def_group(m_aper,1);
soft_task_def_system(m_aper);
soft_task_def_arg(m_aper, 14);
soft_task_def_aperiodic(m_aper);
p4 = task_create("aper", aper, &m_aper, NULL);
if (p4 == NIL)
{ kern_printf("Can't create aper task...\n"); }
 
soft_task_def_arg(m_aper, 13);
p5 = task_create("aper", aper, &m_aper, NULL);
if (p5 == NIL)
{ kern_printf("Can't create aper(2) task...\n"); }
 
soft_task_def_arg(m_aper, 12);
p5 = task_create("aper", aper, &m_aper, NULL);
if (p5 == NIL)
{ kern_printf("Can't create aper(2) task...\n"); }
 
soft_task_def_arg(m_aper, 11);
p5 = task_create("aper", aper, &m_aper, NULL);
if (p5 == NIL)
{ kern_printf("Can't create aper(2) task...\n"); }
 
// kern_printf("p1=%d p2=%d p3=%d p4=%d\n",p1,p2,p3,p4);
group_activate(1);
 
 
// task_kill(p2);
i = 1;
 
NULL_TIMESPEC(&t);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
if (i && t.tv_sec == 5) {
task_activate(p4);
task_activate(p5);
i = 0;
}
 
// task_kill(p3);
} while (t.tv_sec < 10);
testactive = 0;
 
kern_printf("FINE MAIN time=%d useds=%d\n",ll_gettime(TIME_EXACT,NULL),useds);
for (i=0; i<useds; i++)
kern_printf("%6d: pid %-9d stime %-9d reschedule %-9d avail %-9d\n",i,
s_PID[i], s_stime[i].tv_nsec, s_send[i].tv_nsec, s_curr[i]);
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testc.c
0,0 → 1,260
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testc.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 12 (C):
 
CBS test, similar to Test 11
 
then at start time two task are started, one of them
calling task_nopreempt. when the task releases, the other exec all
the pending activations.
at sec. 4 the test stops.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
TASK pippo()
{
// int i;
struct timespec t;
// int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
} while (t.tv_nsec <= 30000000L);
return 0;
}
 
TASK pippo2()
{
// int i;
struct timespec t;
// int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
} while (t.tv_nsec <= 30000000L);
return 0;
}
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 15;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < 60) {
load1 = 10000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_endcycle();
 
// if (i==7) testactive = 0;
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
return 0;
}
 
TASK aper(void *a)
{
int i;
int y;
 
int load1,j;
 
char s[2];
 
y = (int) a;
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < 60) {
load1 = 600000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
return 0;
}
 
 
TASK per(void)
{
int i;
int y = rand() % 7 + 15;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < 60) {
load1 = 1000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_endcycle();
 
// if (i==7) testactive = 0;
 
//puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
return 0;
}
 
TASK stoppa()
{
struct timespec t;
 
task_nopreempt();
kern_printf("\nTask nopreempt");
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
} while (t.tv_sec < 3);
kern_printf("\nTask preempt");
task_preempt();
kern_printf("\nFine STOPPA");
return 0;
}
 
 
 
int main(int argc, char **argv)
{
struct timespec t;
int i;
NRT_TASK_MODEL m;
// HARD_TASK_MODEL m_per;
SOFT_TASK_MODEL m_aper;
PID p8, p9; //p1, p2, p3, p4, p5, p6, p7,
 
// int k=1;
 
srand(7);
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
 
soft_task_default_model(m_aper);
soft_task_def_met(m_aper,10000);
soft_task_def_period(m_aper,100000);
soft_task_def_group(m_aper,1);
soft_task_def_system(m_aper);
soft_task_def_arg(m_aper, (void *)14);
soft_task_def_aperiodic(m_aper);
// soft_task_def_skip_arrivals(m_aper);
 
soft_task_def_periodic(m_aper);
p8 = task_create("per", per, &m_aper, NULL);
if (p8 == NIL)
{ kern_printf("Can't create per task...\n"); }
 
p9 = task_create("stoppa", stoppa, &m, NULL);
if (p9 == NIL)
{ kern_printf("Can't create stoppa task...\n"); }
 
task_activate(p8);
 
i = 0;
 
NULL_TIMESPEC(&t);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
if (i == 0 && t.tv_sec == 1 && t.tv_nsec >= 0) {
task_activate(p9);
i = 1;
}
} while (t.tv_sec < 10);
/*
testactive = 0;
kern_printf("FINE MAIN time=%d useds=%d\n",ll_gettime(TIME_EXACT,NULL),useds);
for (i=0; i<useds; i++)
kern_printf("%6d: pid %-9d stime %-9d reschedule %-9d avail %-9d\n",i,
s_PID[i], s_stime[i].tv_nsec, s_send[i].tv_nsec, s_curr[i]);
*/
return 0;
}
/demos/branches/pj/oldexamples/kernel/testd.c
0,0 → 1,381
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testd.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 13 (D):
 
this is a part of the classic Hartik demo Aster.
 
it is based on test 10 (A), and use the CBS to serve the periodic tasks.
 
There still remain some periodic tasks, that are guaranteed basing on their
wcet.
 
It also tests the shutdown...
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/cbs.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
#define PER_MAX 5
#define APER_MAX 8
 
#define PER_WCET 25000
#define APER_WCET 53000
#define CLOCK_WCET 1000
#define ASTER_WCET 1000
#define SOFT_MET 6300
 
#define APER_REP 22000
 
PID aper_table[APER_MAX];
 
int shutting_down = 0;
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
}
 
TASK aper_asteroid(void *a)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
int c;
 
char s[2];
 
c = (int)a;
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = APER_REP; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
s[0] = c;
puts_xy(i,y,rand()%15+1,s);
 
if (shutting_down) {
kern_printf("±%d±",exec_shadow);
return 0;
}
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
}
 
TASK soft_aster(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 1000 + rand()%9000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
s[0] = 1;
puts_xy(i,y,rand()%15+1,s);
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
num_aster--;
return 0;
}
 
TASK aster()
{
PID p;
 
HARD_TASK_MODEL m;
SOFT_TASK_MODEL m_soft;
int r;
int x; // adaptive bandwidth...
 
srand(7);
 
hard_task_default_model(m);
hard_task_def_wcet(m,PER_WCET);
hard_task_def_ctrl_jet(m);
for (x=0; x<PER_MAX; x++) {
r = (rand() % 200);
hard_task_def_mit(m, (64+r)*1000);
p = task_create("per",asteroide,&m,NULL);
if (p!=-1) task_activate(p);
}
 
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,SOFT_MET);
soft_task_def_ctrl_jet(m_soft);
 
x = 64;
 
while (1) {
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
soft_task_def_period(m_soft, (x+r)*1000);
p = task_create("aaa",soft_aster,&m_soft,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
}
else {
num_aster++;
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(4));
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(4));
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
kern_cli();
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
kern_sti();
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1 ||
(proc_table[p].pclass & 0xFF00) == HARD_PCLASS) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
kern_cli();
if (proc_table[p].task_level == 4)
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)CBS_get_nact(4,p), (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
else
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
kern_sti();
i++;
}
}
}
 
void fine()
{
sys_end();
}
 
void exiting(void *arg)
{
kern_printf("EXITING");
shutting_down = 1;
}
 
int main(int argc, char **argv)
{
PID p1,p2,p3; //,p4,p5,p6;
HARD_TASK_MODEL m;
// NRT_TASK_MODEL m_nrt;
SOFT_TASK_MODEL m_aper;
SOFT_TASK_MODEL m_soft;
int i;
struct timespec fineprg;
 
sys_atrunlevel(exiting, NULL, RUNLEVEL_SHUTDOWN);
 
hard_task_default_model(m);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_mit(m,10000);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
// nrt_task_default_model(m_nrt);
// nrt_task_def_group(m_nrt,1);
// nrt_task_def_ctrl_jet(m_nrt);
 
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,1000);
soft_task_def_period(m_soft,100000);
soft_task_def_group(m_soft,1);
soft_task_def_ctrl_jet(m_soft);
soft_task_def_aperiodic(m_soft);
 
 
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
 
// p3 = task_create("JetControl",jetcontrol,&m_nrt,NULL);
p3 = task_create("JetControl",jetcontrol,&m_soft,NULL);
if (p3 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
 
soft_task_default_model(m_aper);
soft_task_def_wcet(m_aper,APER_WCET);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_system(m_aper);
soft_task_def_aperiodic(m_aper);
 
for (i=0; i<APER_MAX; i++) {
soft_task_def_level(m_aper, i/4 + 2);
soft_task_def_arg(m_aper, (void *)(i/4 ? 'Û' : '±'));
aper_table[i] = task_create("aper",aper_asteroid,&m_aper,NULL);
if (aper_table[i] == -1) {
perror("test7.c(main): Could not create task <aper> ...");
sys_end();
l1_exit(-1);
}
}
 
task_nopreempt();
fineprg.tv_sec = 6;
fineprg.tv_nsec = 0;
// kern_event_post(&fineprg,fine,NULL);
group_activate(1);
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/teste.c
0,0 → 1,115
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: teste.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 14 (E):
 
this test is a simple main() function with one other task.
 
This test verify the correctness of the sem module.
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
#include <modules/sem.h>
 
sem_t s;
 
TASK pippo(void *a)
{
int i=0;
struct timespec t;
// int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
if (i==0 && t.tv_sec == (int)a) {
i = 1;
kern_printf("before sem_wait %d\n",(int)a);
sem_wait(&s);
kern_printf("after sem_wait %d\n",(int)a);
}
 
if (i==1 && t.tv_sec == 2+(int)a) {
i = 2;
kern_printf("before sem_post %d\n",(int)a);
sem_post(&s);
kern_printf("after sem_post %d\n",(int)a);
return 0;
}
 
 
} while (1);
}
 
int main(int argc, char **argv)
{
// struct timespec t;
// int i;
NRT_TASK_MODEL m;
PID p2,p3;
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
 
nrt_task_def_arg(m,(void *)1);
p2 = task_create("pippo1", pippo, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo1 task...\n"); return 1; }
 
nrt_task_def_arg(m,(void *)2);
p3 = task_create("pippo2", pippo, &m, NULL);
if (p3 == NIL)
{ kern_printf("Can't create pippo2 task...\n"); return 1; }
 
sem_init(&s,0,1);
 
group_activate(1);
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testf.c
0,0 → 1,128
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testf.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 15 (F):
 
This test verify the correctness of the PI module.
 
 
the main task (NRT) lock a PI mutex.
then 2 tasks arrives, with priority higher than the main
 
the first try to lock the mutex, but it can't, so the main inherit
his priority. The second simply prints a string.
 
If all works, the string of the second task is printed after the end of
the first task.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
mutex_t m1;
 
 
TASK pippo1(void *a)
{
// int i=0;
// struct timespec t;
// int last = 0;
 
kern_printf("pippo1 prima di mutex_lock\n");
mutex_lock(&m1);
kern_printf("pippo1 dopo mutex_lock\n");
 
mutex_unlock(&m1);
kern_printf("pippo1 dopo mutex_unlock\n");
return 0;
}
 
TASK pippo2()
{
kern_printf("pippo2 Dentro pippo2\n");
return 0;
}
 
int main(int argc, char **argv)
{
// struct timespec t;
// int i;
HARD_TASK_MODEL m;
PID p2,p3;
 
PI_mutexattr_t a;
 
hard_task_default_model(m);
hard_task_def_mit(m,50000);
hard_task_def_wcet(m,10000);
hard_task_def_group(m,1);
 
hard_task_def_arg(m,(void *)1);
p2 = task_create("pippo1", pippo1, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo1 task...\n"); return 1; }
 
hard_task_def_mit(m,100000);
p3 = task_create("pippo2", pippo2, &m, NULL);
if (p3 == NIL)
{ kern_printf("Can't create pippo2 task...\n"); return 1; }
 
PI_mutexattr_default(a);
mutex_init(&m1,&a);
 
kern_printf("main prima di mutex_lock\n");
mutex_lock(&m1);
kern_printf("main dopo mutex_lock, exec=%d, exec_shadow=%d\n", exec, exec_shadow);
 
group_activate(1);
 
kern_printf("main dopo group_activate, exec=%d, exec_shadow=%d\n", exec, exec_shadow);
mutex_unlock(&m1);
kern_printf("main dopo mutex_unlock\n");
 
mutex_destroy(&m1);
kern_printf("main dopo mutex_destroy\n");
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testg.c
0,0 → 1,485
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testg.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test 16 (G):
 
This is a part of the cbsmouse.c Hartik's example.
 
It only prints the task scheduling in graphic mode...
 
There is a parameter to choose the type of scheduling module
to initialize.
 
to init correctly the module and task bandwidth parameters, set the defines
NUM and DEN in initg.c and testg.c and remember the "s" (soft) parameter!!!
 
to plot the deadlines assigned by CBS or TBS, compile cbs.c or tbs.c with
the TESTG define
(gray dots over the mouse line are the deadlines, green dots are CBS
shifts)
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "drivers/glib.h"
#include "drivers/keyb.h"
#include "drivers/mouse.h"
 
/*--------------------------------------------------------------*/
/* TEST ON EDF SCHEDULING */
/*--------------------------------------------------------------*/
 
#define LMOUSE 20
#define LM 40 /* line of main */
#define OFFSET 20 /* initial phase */
#define CHAR_DIM 8 /* Height of chars in pixels */
 
int col[3] = {2, 4, 14}; /* colors of timelines */
int lev[3] = {80, 120, 160}; /* level of timelines */
int ptime[3] = {10, 20, 25}; /* number of cycles */
int period[3] = {40, 50,100}; /* tasks' periods */
int tick = 1; /* system tick */
int tscale = 1; /* time scale */
TIME starttime = 0; /* Simulation start time (scaled) */
 
char *title; /* used in initg.c */
 
/* period[] is scaled with a factor of PERIODSCALE usec */
#define PERIODSCALE 5000
 
// update also initg.c!!!
#define NUM 200
#define DEN 64000
 
//SEM mutex; /* Semaphore for graphix*/
 
//#define IY(y) (480 - y)
#define IY(y) y
 
/*
* mouse cursor
*
*/
 
#define W WHITE
#define R RED
#define G GREEN
#define M MAGENTA
 
/* shape */
 
BYTE mycursor[16*16]= {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,W,W,W,W,0,0,0,0,0,0,W,W,W,W,0,
0,W,M,0,0,0,0,0,0,0,0,0,0,M,W,0,
0,W,0,M,0,0,0,0,0,0,0,0,M,0,W,0,
0,W,0,0,M,0,0,0,0,0,0,M,0,0,W,0,
0,0,0,0,0,M,0,0,0,0,M,0,0,0,0,0,
0,0,0,0,0,0,G,G,G,G,0,0,0,0,0,0,
0,0,0,0,0,0,G,0,0,G,0,0,0,0,0,0,
0,0,0,0,0,0,G,0,0,G,0,0,0,0,0,0,
0,0,0,0,0,0,G,0,0,G,0,0,0,0,0,0,
0,0,0,0,0,0,G,G,G,G,0,0,0,0,0,0,
0,0,0,0,0,0,M,M,M,M,0,0,0,0,0,0,
0,0,0,0,0,0,M,M,M,M,0,0,0,0,0,0,
0,0,0,0,0,M,M,M,M,M,M,0,0,0,0,0,
0,0,0,0,M,M,M,M,M,M,M,M,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
};
 
#define F 0xff
#define B 0x00
 
/* mask */
BYTE mybkg[16*16]= {
B,B,B,B,B,B,F,F,F,F,B,B,B,B,B,B,
B,0,0,0,0,B,F,F,F,F,B,0,0,0,0,B,
B,0,0,B,B,F,F,F,F,F,B,B,B,0,0,B,
B,0,B,0,B,F,F,F,F,F,F,B,0,B,0,B,
B,0,B,B,0,B,F,F,F,F,B,0,B,B,0,B,
B,B,B,F,B,0,B,B,B,B,0,B,F,B,B,B,
F,F,F,F,F,B,0,0,0,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,B,B,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,B,B,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,B,B,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,0,0,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,0,0,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,0,0,0,B,F,F,F,F,F,
F,F,F,F,B,0,0,0,0,0,0,B,F,F,F,F,
F,F,F,B,0,0,0,0,0,0,0,0,B,F,F,F,
F,F,F,B,B,B,B,B,B,B,B,B,B,F,F,F,
};
 
#undef B
#define B 0xff
 
/* bad mask */
BYTE mybadbkg[16*16]= {
B,B,B,B,B,B,F,F,F,F,B,B,B,B,B,B,
B,0,0,0,0,B,F,F,F,F,B,0,0,0,0,B,
B,0,0,B,B,F,F,F,F,F,B,B,B,0,0,B,
B,0,B,0,B,F,F,F,F,F,F,B,0,B,0,B,
B,0,B,B,0,B,F,F,F,F,B,0,B,B,0,B,
B,B,B,F,B,0,B,B,B,B,0,B,F,B,B,B,
F,F,F,F,F,B,0,0,0,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,B,B,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,B,B,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,B,B,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,0,0,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,0,0,0,B,F,F,F,F,F,
F,F,F,F,F,B,0,0,0,0,B,F,F,F,F,F,
F,F,F,F,B,0,0,0,0,0,0,B,F,F,F,F,
F,F,F,B,0,0,0,0,0,0,0,0,B,F,F,F,
F,F,F,B,B,B,B,B,B,B,B,B,B,F,F,F,
};
 
/* very bad mask */
BYTE myverybadbkg[16*16]= {
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,
};
 
/*--------------------------------------------------------------*/
/* Prints a grid to show task periods during execution */
/*--------------------------------------------------------------*/
 
void print_grid()
{
int i;
int a1, a2, a3;
int temp;
// char str[50];
 
a1 = 0;
a2 = 0;
a3 = 0;
temp = 0;
 
grx_text(title, 0, 240-10 ,10, 0);
 
grx_line(OFFSET, lev[0], 639, lev[0], 5);
grx_line(OFFSET, lev[1], 639, lev[1], 5);
grx_line(OFFSET, lev[2], 639, lev[2], 5);
grx_text("T1", 0, lev[0]-8, 9, 0);
grx_text("T2", 0, lev[1]-8, 9, 0);
grx_text("T3", 0, lev[2]-8, 9, 0);
grx_text("MA", 0, LM, 8, 0);
grx_text("MO", 0, LMOUSE, 8, 0);
 
for (i = OFFSET; i < 640; i++) {
if (temp >= a1) {
grx_line(i, lev[0] - 1, i, lev[0] - 20, 3);
a1 += period[0];
}
if (temp >= a2) {
grx_line(i, lev[1] - 1, i, lev[1] - 20, 3);
a2 += period[1];
}
if (temp >= a3) {
grx_line(i, lev[2] - 1, i, lev[2] - 20, 3);
a3 += period[2];
}
temp += tick/tscale;
}
}
 
/*--------------------------------------------------------------*/
/* This function is called at system termination */
/*--------------------------------------------------------------*/
 
void my_end()
{
grx_close();
// sys_status(0xFFFF);
// sys_end();
}
 
/*--------------------------------------------------------------*/
/* GENERIC PERIODIC PROCESS */
/*--------------------------------------------------------------*/
 
TASK color(int k)
{
int i;
DWORD x = OFFSET;
TIME t;
while ( x < 640L) {
for (i = 0; i < ptime[k]; i++) {
 
t = sys_gettime(NULL) / PERIODSCALE;
x = (t - starttime) + OFFSET;
if (x>=640) break;
//sem_wait(mutex, BLOCK);
kern_cli();
grx_plot(x, lev[k] - 4, col[k]);
grx_plot(x, lev[k] - 5, col[k]);
grx_plot(x, lev[k] - 6, col[k]);
grx_plot(x, lev[k] - 7, col[k]);
//sem_signal(mutex);
kern_sti();
while (sys_gettime(NULL)/PERIODSCALE == t);
}
task_endcycle();
}
return 0;
}
 
void my_mouse_handler(MOUSE_EVT *ev)
{
int x;
 
x = (sys_gettime(NULL)/PERIODSCALE - starttime) + OFFSET;
if (x>=640) return;
//sem_wait(mutex, BLOCK);
grx_plot(x, LMOUSE, 8);
//while (sys_ticks()==s);
//sem_signal(mutex);
}
 
/*--------------------------------------------------------------*/
/* MAIN PROCESS */
/*--------------------------------------------------------------*/
 
int main(int argc, char *argv[])
{
int i;
int x = OFFSET;
 
MOUSE_PARMS mouse = BASE_MOUSE;
HARD_TASK_MODEL mouse_hard;
SOFT_TASK_MODEL mouse_soft;
NRT_TASK_MODEL mouse_nrt;
 
char c;
KEY_EVT emerg;
 
HARD_TASK_MODEL m_per;
int modenum;
 
//sys_def_nocheck(si);
//sys_def_tick(si, tick, mSec);
//sys_init(&si);
 
//cprintf("Sys GetTick... %lu 100000 / sys_tick: %lu \n", sys_gettick(), 100000 / sys_gettick());
 
if (argc>=3)
switch(*argv[2]) {
case 'h':
/* this is not correct, because it don't remember activations */
hard_task_default_model(mouse_hard);
hard_task_def_mit(mouse_hard,DEN);
hard_task_def_wcet(mouse_hard,NUM);
hard_task_def_system(mouse_hard);
hard_task_def_aperiodic(mouse_hard);
mouse_def_task(mouse,(TASK_MODEL *)&mouse_hard);
break;
case 's':
soft_task_default_model(mouse_soft);
soft_task_def_wcet(mouse_soft,NUM);
soft_task_def_met(mouse_soft,NUM);
soft_task_def_period(mouse_soft,DEN);
soft_task_def_system(mouse_soft);
soft_task_def_aperiodic(mouse_soft);
mouse_def_task(mouse,(TASK_MODEL *)&mouse_soft);
break;
case 'n':
/* this is not correct, because it don't remember activations */
nrt_task_default_model(mouse_nrt);
nrt_task_def_system(mouse_nrt);
mouse_def_task(mouse,(TASK_MODEL *)&mouse_nrt);
break;
default:
argc=0;
break;
}
mouse_def_ms(mouse,0);
 
if (argc>=4) {
period[0]=atoi(argv[3]);
if (period[0]<ptime[0]) period[0]=ptime[0]+5;
}
if (argc>=5) {
period[1]=atoi(argv[4]);
if (period[1]<ptime[1]) period[1]=ptime[1]+5;
}
if (argc>=6) {
period[2]=atoi(argv[5]);
if (period[2]<ptime[2]) period[2]=ptime[2]+5;
}
if (argc<2) {
cprintf("syntax: x testg <config> <mouse-task> [t1] [t2] [t3]\n");
cprintf("where <config> can be:\n");
cprintf("\t0 - EDF + CBS + RR\n");
cprintf("\t1 - RM + PS ( bkg, U=1/16) + RR, no check Ulub < 0.69\n");
cprintf("\t2 - RM + PS (nobkg, U=1/16) + RR, no check Ulub < 0.69\n");
cprintf("\t3 - EDF + PS ( bkg, U=1/16) + RR\n");
cprintf("\t4 - EDF + PS (nobkg, U=1/16) + RR\n");
cprintf("\t5 - EDF + TBS( U=1/16) + RR\n");
cprintf("\t6 - RM + DS ( bkg, U=1/16) + RR, no check Ulub < 0.69\n");
cprintf("\t7 - RM + DS (nobkg, U=1/16) + RR, no check Ulub < 0.69\n");
cprintf("\nwhere <mouse-task> can be:\n");
cprintf("\th - Hard\n");
cprintf("\ts - Soft (understimated wcet)\n");
cprintf("\tn - NRT\n");
sys_end();
return -1;
}
 
if (grx_init() == -1) {
cprintf("Error initing GraphLib!!!\n");
sys_end();
}
modenum = grx_getmode(640, 480, 8);
cprintf("Modenum :%d\n", modenum);
 
if (grx_setmode(modenum) == -1) {
cprintf("No SetMode!!!\n");
sys_end();
}
/* */
// grx_close();
print_grid();
#define DX (640/5-1)
grx_box(DX*0,240,DX*1-1,479,GREEN);
grx_box(DX*1,240,DX*2-1,479,WHITE);
grx_box(DX*2,240,DX*3-1,479,RED);
grx_box(DX*3,240,DX*4-1,479,MAGENTA);
grx_box(DX*4,240,DX*5-1,479,BLACK);
 
for (i=0;i<3;i++) {
period[i]=period[i]*PERIODSCALE;
//ptime[i]=ptime[i] *PERIODSCALE; ptime is not scaled
}
sys_atrunlevel(my_end, NULL, RUNLEVEL_BEFORE_EXIT);
 
/* mutex */
// mutex = sem_create(1);
 
/* keyboard */
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,(void (*)(KEY_EVT *))sys_end);
keyb_getchar();
 
/* mouse */
mouse_init(&mouse);
mouse_limit(XMINLIMIT(640,480),
240,
XMAXLIMIT(640,480),
YMAXLIMIT(640,480));
mouse_position(320,280);
mouse_threshold(2);
//grx_setcolor(255,255,255,255);
mouse_grxshape(mycursor,mybkg);
mouse_grxcursor(ENABLE);
mouse_on();
mouse_hook(my_mouse_handler);
 
/* hard task creation */
 
hard_task_default_model(m_per);
hard_task_def_mit(m_per,period[0]);
hard_task_def_wcet(m_per,ptime[0]*PERIODSCALE);
hard_task_def_group(m_per, 1);
//task_def_wcet(m, ptime[0] * sys_tick);
if (task_create("verde", color, &m_per, NULL) == -1) {
grx_close();
perror("Edf.C(main) Could not create <green>:");
sys_end();
l1_exit(-1);
}
hard_task_def_arg(m_per, (void *)1);
hard_task_def_wcet(m_per, ptime[1]*PERIODSCALE);
hard_task_def_mit(m_per,period[1]);
if (task_create("red", color, &m_per, NULL) == -1) {
grx_close();
perror("Edf.C(main) Could not create <red>:");
sys_end();
l1_exit(-1);
}
hard_task_def_arg(m_per, (void *)2);
hard_task_def_wcet(m_per, ptime[2]*PERIODSCALE);
hard_task_def_mit(m_per,period[2]);
if (task_create("yellow", color, &m_per, NULL) == -1) {
grx_close();
perror("Edf.C(main) Could not create <yellow>:");
sys_end();
l1_exit(-1);
}
starttime = sys_gettime(NULL) / PERIODSCALE;
group_activate(1);
 
/* main loop */
while (x < 640L) {
x = (sys_gettime(NULL)/PERIODSCALE - starttime) + OFFSET;
if (x>=640) break;
//sem_wait(mutex, BLOCK);
kern_cli();
grx_plot(x, LM, 7);
kern_sti(); // sem_signal(mutex);
}
 
c = keyb_getchar();
return 0;
}
 
/*--------------------------------------------------------------*/
/demos/branches/pj/oldexamples/kernel/testh.c
0,0 → 1,493
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testh.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 17 (h):
 
this is a part of the classic Hartik demo Aster.
 
it is based on test 13 (d), and use the CBS to serve the periodic tasks.
 
There are not periodic tasks, only CBS tasks.
 
The tasks use a PI, NPP or NOP mutex to access the video memory.
 
A flag (LONGSC) is provided to try long and short critical sections.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/cbs.h"
#include "drivers/keyb.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
#define PER_MAX 5
#define APER_MAX 8
 
#define PER_WCET 6200
#define APER_WCET 18400
#define JET_WCET 10000
#define JET_PERIOD 100000
 
#define APER_REP 22000
 
//PID aper_table[APER_MAX];
 
mutex_t m1;
 
 
#define PIMUTEX
//#define NPPMUTEX
//#define NOPMUTEX
 
#define LONGSC
 
#ifdef LONGSC
#define SOFT_MET 3000 /* 3000 12000 */
#define CLOCK_WCET 400 /* 200 300*/
#define ASTER_WCET 400 /* 200 300*/
#else
#define SOFT_MET 80000 /* 4500 */
#define CLOCK_WCET 2000 /* 200*/
#define ASTER_WCET 2000 /* 200*/
#endif
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; //8000 + rand()%2000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
#ifdef LONGSC
mutex_unlock(&m1);
#endif
 
// task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
//num_aster--;
}
 
TASK aper_asteroid(void *a)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
int c;
 
char s[2];
 
c = (int)a;
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = APER_REP; //8000 + rand()%2000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
s[0] = c;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
mutex_unlock(&m1);
 
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
}
 
TASK soft_aster(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 1000 + rand()%9000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
s[0] = 1;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
mutex_unlock(&m1);
 
// task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
num_aster--;
return 0;
}
 
TASK aster()
{
PID p;
// HARD_TASK_MODEL m;
SOFT_TASK_MODEL m_soft;
int r;
int x; // adaptive bandwidth...
 
srand(7);
 
/* periodic_task_default_model(m,0,PER_WCET);
periodic_task_def_ctrl_jet(m);
for (x=0; x<PER_MAX; x++) {
r = (rand() % 200);
periodic_task_def_period(m, (64+r)*1000);
p = task_create("per",asteroide,&m,NULL);
if (p!=-1) task_activate(p);
}
*/
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,SOFT_MET);
soft_task_def_ctrl_jet(m_soft);
 
x = 128; //64;
 
while (1) {
/* {
PID p;
int x;
p = level_table[0]->level_scheduler(0);
printf_xy(1,8,WHITE," ");
 
x = 0;
do {
printf_xy(3*x+1,8,WHITE,"%3d",p);
p = proc_table[p].next;
x++;
} while (p != NIL);
}
*/
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
soft_task_def_period(m_soft, (x+r)*1000);
p = task_create("aaa",soft_aster,&m_soft,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
mutex_lock(&m1);
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
mutex_unlock(&m1);
}
else {
num_aster++;
mutex_lock(&m1);
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
mutex_unlock(&m1);
 
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
mutex_lock(&m1);
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(2));
 
mutex_unlock(&m1);
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
mutex_lock(&m1);
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(2));
mutex_unlock(&m1);
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
mutex_lock(&m1);
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
mutex_unlock(&m1);
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1 /*||
(proc_table[p].pclass & 0xFF00) == APERIODIC_PCLASS ||
(proc_table[p].pclass & 0xFF00) == PERIODIC_PCLASS*/ ) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
mutex_lock(&m1);
if (proc_table[p].task_level == 2)
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³p%-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)CBS_get_nact(2,p), (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
// p, sum/(nact==0 ? 1 : nact), max, proc_table[p].avail_time, proc_table[p].status, proc_table[p].shadow, proc_table[p].timespec_priority.tv_sec,proc_table[p].timespec_priority.tv_nsec/1000 , CBS_get_nact(2,p), last[4]);
else
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
// p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)proc_table[p].status, (int)proc_table[p].shadow, (int)proc_table[p].timespec_priority.tv_sec,(int)proc_table[p].timespec_priority.tv_nsec/1000 , (int)last[3], (int)last[4]);
mutex_unlock(&m1);
i++;
}
}
}
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
int main(int argc, char **argv)
{
PID p1,p2,p3;//,p4,p5,p6;
HARD_TASK_MODEL m;
// NRT_TASK_MODEL m_nrt;
SOFT_TASK_MODEL m_aper;
SOFT_TASK_MODEL m_soft;
// int i;
struct timespec fineprg;
 
#ifdef PIMUTEX
PI_mutexattr_t a;
#endif
 
#ifdef NPPMUTEX
NPP_mutexattr_t a;
#endif
 
#ifdef NOPMUTEX
NOP_mutexattr_t a;
#endif
 
 
KEY_EVT emerg;
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
hard_task_default_model(m);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_mit(m,100000);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
// nrt_task_default_model(m_nrt);
// nrt_task_def_group(m_nrt,1);
// nrt_task_def_ctrl_jet(m_nrt);
 
 
soft_task_default_model(m_aper);
soft_task_def_group(m_aper,1);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_aperiodic(m_aper);
 
soft_task_default_model(m_soft);
soft_task_def_period(m_soft,JET_PERIOD);
soft_task_def_met(m_soft,JET_WCET);
soft_task_def_group(m_soft,1);
soft_task_def_ctrl_jet(m_soft);
soft_task_def_aperiodic(m_soft);
 
 
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
 
// p3 = task_create("JetControl",jetcontrol,&m_nrt,NULL);
p3 = task_create("JetControl",jetcontrol,&m_soft,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
/*
aperiodic_task_default_model(m_aper,APER_WCET);
aperiodic_task_def_ctrl_jet(m_aper);
aperiodic_task_def_system(m_aper);
 
for (i=0; i<APER_MAX; i++) {
aperiodic_task_def_level(m_aper, i/4 + 2);
aperiodic_task_def_arg(m_aper, (i/4 ? 'Û' : '±'));
aper_table[i] = task_create("aper",aper_asteroid,&m_aper,NULL);
if (aper_table[i] == -1) {
perror("test7.c(main): Could not create task <aper> ...");
sys_end();
l1_exit(-1);
}
}
*/
task_nopreempt();
 
#ifdef PIMUTEX
PI_mutexattr_default(a);
#endif
 
#ifdef NPPMUTEX
NPP_mutexattr_default(a);
#endif
 
#ifdef NOPMUTEX
NOP_mutexattr_default(a);
#endif
 
mutex_init(&m1, &a);
 
fineprg.tv_sec = 1800;
fineprg.tv_nsec = 0;
//kern_event_post(&fineprg,(void (*)(void *))fine,NULL);
group_activate(1);
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/testi.c
0,0 → 1,234
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testi.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 18 (I):
 
This test verify the correctness of the PC module.
 
The test uses 3 mutexes
m0 with ceiling 0
m1 with ceiling 0
m2 with ceiling 1
 
the main task (NRT) creates three tasks.
 
J0 with PC priority 0
starts at t=1.5 sec and lock m0, unlock m0, then lock and unlock m1
 
J1 with PC priority 1
starts at t=0.5 sec and try to lock m2
 
J2 with PC priority 2
it starts and locks m2
at t=1 sec it locks m1
at t=1.5 sec it unlocks m1
 
 
The example is similar to the scheduling diagram shown at p. 197 of the
book "Sistemi in tempo Reale", by Giorgio Buttazzo, Pitagora Editrice
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "drivers/keyb.h"
 
mutex_t m0,m1,m2;
 
 
TIME gt(void)
{
TIME t;
kern_cli();
t = ll_gettime(TIME_EXACT,NULL);
kern_sti();
return t;
}
 
void startJ(void *a)
{
// task_activate((PID)a);
PID p = (PID) a;
LEVEL l;
 
kern_printf("startJ: %d\n",p);
 
l = proc_table[p].task_level;
level_table[l]->task_activate(l,p);
event_need_reschedule();
}
 
TASK j0()
{
kern_printf("J0: before locking m0\n");
mutex_lock(&m0);
kern_printf("J0: locked m0\n");
mutex_unlock(&m0);
kern_printf("J0: unlocked m0, locking m1\n");
 
mutex_lock(&m1);
kern_printf("J0: locked m1\n");
mutex_unlock(&m1);
kern_printf("J0: unlocked m1, end task\n");
return 0;
}
 
 
TASK j1()
{
kern_printf("J1: before locking m2\n");
mutex_lock(&m2);
kern_printf("J1: locked m2\n");
mutex_unlock(&m2);
kern_printf("J1: unlocked m2, end task\n");
return 0;
}
 
 
TASK j2()
{
// struct timespec t;
kern_printf("J2: before locking m2\n");
mutex_lock(&m2);
kern_printf("J2: locked m2, waiting to t=1 sec\n");
 
while (gt() < 1000000);
 
kern_printf("J2: t = 1 sec reached\n");
mutex_lock(&m1);
kern_printf("J2: locked m1, waiting to t=2 sec\n");
 
while (gt() < 2000000);
 
kern_printf("J2: t = 2 sec reached\n");
mutex_unlock(&m1);
kern_printf("J2: unlocked m1\n");
 
mutex_unlock(&m2);
kern_printf("J2: unlocked m2, end task\n");
return 0;
}
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
 
int main(int argc, char **argv)
{
struct timespec t;
 
HARD_TASK_MODEL m;
PID p0,p1,p2;
 
PC_mutexattr_t a;
PI_mutexattr_t a2;
PC_RES_MODEL r;
 
KEY_EVT emerg;
 
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
/* ---------------------------------------------------------------------
Task creation
--------------------------------------------------------------------- */
 
hard_task_default_model(m);
hard_task_def_mit(m, 1000000);
hard_task_def_wcet(m, 20000);
PC_res_default_model(r,0);
p0 = task_create("J0", j0, &m, &r);
if (p0 == NIL)
{ kern_printf("Can't create J0 task...\n"); return 1; }
 
hard_task_default_model(m);
hard_task_def_mit(m, 2100000);
hard_task_def_wcet(m, 20000);
PC_res_default_model(r,1);
p1 = task_create("J1", j1, &m, &r);
if (p1 == NIL)
{ kern_printf("Can't create J1 task...\n"); return 1; }
 
hard_task_default_model(m);
hard_task_def_mit(m, 10000000);
hard_task_def_wcet(m, 3000000);
PC_res_default_model(r,2);
p2 = task_create("J2", j2, &m, &r);
if (p2 == NIL)
{ kern_printf("Can't create J2 task...\n"); return 1; }
 
/* ---------------------------------------------------------------------
Mutex creation
--------------------------------------------------------------------- */
 
PI_mutexattr_default(a2);
PC_mutexattr_default(a,0);
mutex_init(&m0,(mutexattr_t *)&a);
mutex_init(&m1,(mutexattr_t *)&a);
 
PC_mutexattr_default(a,1);
mutex_init(&m2,(mutexattr_t *)&a);
 
/* ---------------------------------------------------------------------
Event post
--------------------------------------------------------------------- */
 
t.tv_sec = 0;
t.tv_nsec = 500000000;
// t.tv_nsec = 30000000;
kern_event_post(&t,startJ,(void *)p1);
 
t.tv_sec = 1;
kern_event_post(&t,startJ,(void *)p0);
 
task_activate(p2);
 
kern_printf("END main\n");
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testj.c
0,0 → 1,268
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testj.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 19 (J):
 
This test verify the correctness of the SRP module.
 
There are 3 taks, Jh, Jm, Jl that uses 3 mutexes m1, m2, m3
 
the main task (NRT) creates the three tasks.
 
Jh with preemption level 3
starts at t=1.5 sec and lock m3, lock m1, unlock m1, unlock m3
 
Jm with preemption level 2
starts at t=0.5 sec and lock m3, lock m2, unlock m2, unlock m3
then lock and unlock m1
 
Jl with preemption level 1
it starts and locks m2
at t=1 sec it locks m1
at t=1.5 sec it unlocks m1
then it unlocks m2, and finally it locks and unlocks m3
 
 
The example is similar to the scheduling diagram shown at p. 210 of the
book "Sistemi in tempo Reale", by Giorgio Buttazzo, Pitagora Editrice
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "drivers/keyb.h"
 
#include <modules//srp.h>
 
mutex_t m1,m2,m3;
 
 
TIME gt(void)
{
TIME t;
kern_cli();
t = ll_gettime(TIME_EXACT,NULL);
kern_sti();
return t;
}
 
void startJ(void *a)
{
// task_activate((PID)a);
PID p = (PID) a;
LEVEL l;
 
kern_printf("startJ: %d\n",a);
 
l = proc_table[p].task_level;
level_table[l]->task_activate(l,p);
event_need_reschedule();
}
 
TASK Jlobby()
{
kern_printf("(*)");
return 0;
}
 
TASK Jh()
{
PID l;
HARD_TASK_MODEL m;
SRP_RES_MODEL r;
 
kern_printf("JH: creating Jy before locking m3\n");
 
hard_task_default_model(m);
hard_task_def_mit(m,30000);
hard_task_def_wcet(m,1000);
SRP_res_default_model(r,4);
l = task_create("Jlobby",Jlobby,&m,&r);
task_activate(l);
 
mutex_lock(&m3);
kern_printf("JH: locked m3, locking m1\n");
mutex_lock(&m1);
kern_printf("JH: locked m1, unlocking m1\n");
mutex_unlock(&m1);
kern_printf("JH: unlocked m1, unlocking m3\n");
mutex_unlock(&m3);
kern_printf("JH: unlocked m3, end task\n");
return 0;
}
 
 
TASK Jm()
{
kern_printf("JM: before locking m3\n");
mutex_lock(&m3);
kern_printf("JM: locked m3, locking m2\n");
mutex_lock(&m2);
kern_printf("JM: locked m2, unlocking m2\n");
mutex_unlock(&m2);
kern_printf("JM: unlocked m2, unlocking m3\n");
mutex_unlock(&m3);
kern_printf("JM: unlocked m3, locking m1\n");
mutex_lock(&m1);
kern_printf("JM: locked m1, unlocking m1\n");
mutex_unlock(&m1);
kern_printf("JM: unlocked m1, end task\n");
return 0;
}
 
 
TASK Jl()
{
// struct timespec t;
kern_printf("JL: before locking m2\n");
mutex_lock(&m2);
kern_printf("JL: locked m2, waiting to t=1 sec\n");
 
while (gt() < 1000000);
 
kern_printf("JL: t = 1 sec reached, locking m1\n");
mutex_lock(&m1);
kern_printf("JL: locked m1, waiting to t=2 sec\n");
 
while (gt() < 2000000);
 
kern_printf("JL: t = 2 sec reached, unlocking m1\n");
mutex_unlock(&m1);
kern_printf("JL: unlocked m1, unlocking m2\n");
 
mutex_unlock(&m2);
 
kern_printf("JL: unlocked m2, locking m3\n");
mutex_lock(&m3);
kern_printf("JL: locked m3, unlocking m3\n");
mutex_unlock(&m3);
kern_printf("JL: unlocked m3, end task\n");
return 0;
}
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
 
int main(int argc, char **argv)
{
struct timespec t;
 
HARD_TASK_MODEL m;
PID p0,p1,p2;
 
SRP_mutexattr_t a;
SRP_RES_MODEL r;
 
PI_mutexattr_t a2;
 
KEY_EVT emerg;
 
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
/* ---------------------------------------------------------------------
Mutex creation
--------------------------------------------------------------------- */
 
PI_mutexattr_default(a2);
SRP_mutexattr_default(a);
mutex_init(&m1,&a);
mutex_init(&m2,&a);
mutex_init(&m3,&a);
 
 
/* ---------------------------------------------------------------------
Task creation
--------------------------------------------------------------------- */
 
hard_task_default_model(m);
hard_task_def_mit(m, 1000000);
hard_task_def_wcet(m, 80000);
SRP_res_default_model(r, 3);
p0 = task_createn("JH", Jh, (TASK_MODEL *)&m, &r, SRP_usemutex(&m3), SRP_usemutex(&m1), NULL);
if (p0 == NIL)
{ kern_printf("Can't create JH task...\n"); return 1; }
 
hard_task_default_model(m);
hard_task_def_mit(m, 2100000);
hard_task_def_wcet(m, 80000);
SRP_res_default_model(r, 2);
p1 = task_createn("JM", Jm, (TASK_MODEL *)&m, &r, SRP_usemutex(&m3), SRP_usemutex(&m1),
SRP_usemutex(&m2), NULL);
if (p1 == NIL)
{ kern_printf("Can't create JM task...\n"); return 1; }
 
hard_task_default_model(m);
hard_task_def_mit(m, 10000000);
hard_task_def_wcet(m, 3000000);
SRP_res_default_model(r, 1);
p2 = task_createn("JL", Jl, (TASK_MODEL *)&m, &r, SRP_usemutex(&m3), SRP_usemutex(&m1),
SRP_usemutex(&m2), NULL);
if (p2 == NIL)
{ kern_printf("Can't create JL task...\n"); return 1; }
 
// sys_abort(1);
/* ---------------------------------------------------------------------
Event post
--------------------------------------------------------------------- */
 
t.tv_sec = 0;
t.tv_nsec = 500000000;
// t.tv_nsec = 30000000;
kern_event_post(&t,startJ,(void *)p1);
 
t.tv_sec = 1;
kern_event_post(&t,startJ,(void *)p0);
 
task_activate(p2);
 
kern_printf("END main\n");
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testk.c
0,0 → 1,226
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testk.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 20 (K):
 
This test verify the correctness of the NOP module. It works with the PI
module, too.
 
The test uses one mutex
 
the main task (NRT) creates three tasks.
 
J1 with PC priority 0
starts at t=0.5 sec and lock m0
 
J2 with PC priority 1
starts at t=1 sec and doesn't lock any mutex
 
J3 with PC priority 2
it starts and locks m0
at t=2 sec it unlocks m1
 
 
The example is similar to the scheduling diagram shown at p. 188 of the
book "Sistemi in tempo Reale", by Giorgio Buttazzo, Pitagora Editrice
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "drivers/keyb.h"
 
#include <modules//srp.h>
 
mutex_t m0;
 
 
TIME gt(void)
{
TIME t;
kern_cli();
t = ll_gettime(TIME_EXACT,NULL);
kern_sti();
return t;
}
 
void startJ(void *a)
{
// task_activate((PID)a);
PID p = (PID) a;
LEVEL l;
 
kern_printf("startJ: %d\n",p);
 
l = proc_table[p].task_level;
level_table[l]->task_activate(l,p);
event_need_reschedule();
}
 
TASK j1()
{
kern_printf("J1: before locking m0\n");
mutex_lock(&m0);
kern_printf("J1: locked m0\n");
mutex_unlock(&m0);
kern_printf("J1: unlocked m0, end task\n");
return 0;
}
 
 
TASK j2()
{
kern_printf("J2: waiting t=1.5 sec\n");
 
while (gt() < 1500000);
 
kern_printf("J2: end task\n");
return 0;
}
 
 
TASK j3()
{
kern_printf("J3: before locking m0\n");
mutex_lock(&m0);
kern_printf("J3: locked m0, waiting to t=2 sec\n");
 
while (gt() < 2000000);
 
kern_printf("J3: t = 1 sec reached, unlocking m0\n");
mutex_unlock(&m0);
kern_printf("J3: unlocked m0, end task\n");
return 0;
}
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
 
int main(int argc, char **argv)
{
struct timespec t;
 
HARD_TASK_MODEL m;
PID p0,p1,p2;
 
PC_mutexattr_t a;
PI_mutexattr_t a2;
NOP_mutexattr_t a3;
SRP_mutexattr_t a4;
NPP_mutexattr_t a5;
 
PC_RES_MODEL r;
SRP_RES_MODEL srp;
 
KEY_EVT emerg;
 
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
/* ---------------------------------------------------------------------
Mutex creation
--------------------------------------------------------------------- */
 
PC_mutexattr_default(a,0);
PI_mutexattr_default(a2);
NOP_mutexattr_default(a3);
SRP_mutexattr_default(a4);
NPP_mutexattr_default(a5);
mutex_init(&m0,&a4);
 
/* ---------------------------------------------------------------------
Task creation
--------------------------------------------------------------------- */
 
hard_task_default_model(m);
hard_task_def_wcet(m,20000);
hard_task_def_mit(m,10000000);
PC_res_default_model(r,0);
SRP_res_default_model(srp,3);
// p0 = task_createn("J1", j1, &m, &r, &srp, NULL);
p0 = task_createn("J1", j1, (TASK_MODEL *)&m, &r, &srp, SRP_usemutex(&m0), NULL);
if (p0 == NIL)
{ kern_printf("Can't create J1 task...\n"); return 1; }
 
hard_task_def_wcet(m,1600000);
hard_task_def_mit(m,21000000);
PC_res_default_model(r,1);
SRP_res_default_model(srp,2);
p1 = task_createn("J2", j2, (TASK_MODEL *)&m, &r, &srp, NULL);
if (p1 == NIL)
{ kern_printf("Can't create J2 task...\n"); return 1; }
 
hard_task_def_wcet(m,3000000);
hard_task_def_mit(m,100000000);
PC_res_default_model(r,2);
SRP_res_default_model(srp,1);
// p2 = task_createn("J3", j3, &m, &r, &srp, NULL);
p2 = task_createn("J3", j3, (TASK_MODEL *)&m, &r, &srp, SRP_usemutex(&m0), NULL);
if (p2 == NIL)
{ kern_printf("Can't create J3 task...\n"); return 1; }
 
 
/* ---------------------------------------------------------------------
Event post
--------------------------------------------------------------------- */
 
t.tv_sec = 0;
t.tv_nsec = 500000000;
// t.tv_nsec = 30000000;
kern_event_post(&t,startJ,(void *)p0);
 
t.tv_sec = 1;
kern_event_post(&t,startJ,(void *)p1);
 
task_activate(p2);
 
kern_printf("END main\n");
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testl.c
0,0 → 1,487
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testl.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 21 (l):
 
this is a part of the classic Hartik demo Aster.
 
it is based on test 17 (h), and the JobControl Task uses an
SOFT_TASK_MODEL served by a polling server
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/cbs.h"
#include "drivers/keyb.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
#define PER_MAX 5
#define APER_MAX 8
 
#define PER_WCET 6200
#define APER_WCET 18400
#define JET_WCET 10000
 
#define APER_REP 22000
 
PID aper_table[APER_MAX];
 
mutex_t m1;
 
 
#define PIMUTEX
//#define NPPMUTEX
//#define NOPMUTEX
 
#define LONGSC
 
#ifdef LONGSC
#define SOFT_MET 3000 /* 12000 */
#define CLOCK_WCET 200 /* 300*/
#define ASTER_WCET 200 /* 300*/
#else
#define SOFT_MET 80000 /* 4500 */
#define CLOCK_WCET 2000 /* 200*/
#define ASTER_WCET 2000 /* 200*/
#endif
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; //8000 + rand()%2000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
#ifdef LONGSC
mutex_unlock(&m1);
#endif
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
//num_aster--;
}
 
TASK aper_asteroid(void *a)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
int c;
 
char s[2];
 
c = (int)a;
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = APER_REP; //8000 + rand()%2000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
s[0] = c;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
mutex_unlock(&m1);
 
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
}
 
TASK soft_aster(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 1000 + rand()%9000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
s[0] = 1;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
mutex_unlock(&m1);
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
num_aster--;
return 0;
}
 
TASK aster()
{
PID p;
 
// HARD_TASK_MODEL m;
SOFT_TASK_MODEL m_soft;
int r;
int x; // adaptive bandwidth...
 
srand(7);
 
/* periodic_task_default_model(m,0,PER_WCET);
periodic_task_def_ctrl_jet(m);
for (x=0; x<PER_MAX; x++) {
r = (rand() % 200);
periodic_task_def_period(m, (64+r)*1000);
p = task_create("per",asteroide,&m,NULL);
if (p!=-1) task_activate(p);
}
*/
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,SOFT_MET);
soft_task_def_ctrl_jet(m_soft);
 
x = 128; //64;
 
while (1) {
/* {
PID p;
int x;
p = level_table[0]->level_scheduler(0);
printf_xy(1,8,WHITE," ");
 
x = 0;
do {
printf_xy(3*x+1,8,WHITE,"%3d",p);
p = proc_table[p].next;
x++;
} while (p != NIL);
}
*/
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
soft_task_def_period(m_soft, (x+r)*1000);
p = task_create("aaa",soft_aster,&m_soft,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
mutex_lock(&m1);
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
mutex_unlock(&m1);
}
else {
num_aster++;
mutex_lock(&m1);
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
mutex_unlock(&m1);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
mutex_lock(&m1);
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(2));
 
mutex_unlock(&m1);
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
mutex_lock(&m1);
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(0));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(2));
mutex_unlock(&m1);
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
mutex_lock(&m1);
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
mutex_unlock(&m1);
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1 /*||
(proc_table[p].pclass & 0xFF00) == APERIODIC_PCLASS ||
(proc_table[p].pclass & 0xFF00) == PERIODIC_PCLASS*/ ) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
mutex_lock(&m1);
if (proc_table[p].task_level == 2)
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)CBS_get_nact(2,p), (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
// p, sum/(nact==0 ? 1 : nact), max, proc_table[p].avail_time, proc_table[p].status, proc_table[p].shadow, proc_table[p].timespec_priority.tv_sec,proc_table[p].timespec_priority.tv_nsec/1000 , CBS_get_nact(2,p), last[4]);
else
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, (int)nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
// p, sum/(nact==0 ? 1 : nact), max, nact, proc_table[p].status, proc_table[p].shadow, proc_table[p].timespec_priority.tv_sec,proc_table[p].timespec_priority.tv_nsec/1000 , last[3], last[4]);
mutex_unlock(&m1);
i++;
}
}
}
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
int main(int argc, char **argv)
{
PID p1,p2,p3; //,p4,p5,p6;
HARD_TASK_MODEL m;
// NRT_TASK_MODEL m_nrt;
SOFT_TASK_MODEL m_aper;
SOFT_TASK_MODEL m_soft;
// int i;
struct timespec fineprg;
 
#ifdef PIMUTEX
PI_mutexattr_t a;
#endif
 
#ifdef NPPMUTEX
NPP_mutexattr_t a;
#endif
 
#ifdef NOPMUTEX
NOP_mutexattr_t a;
#endif
 
 
KEY_EVT emerg;
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
hard_task_default_model(m);
hard_task_def_mit(m,100000);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
// nrt_task_default_model(m_nrt);
// nrt_task_def_group(m_nrt,1);
// nrt_task_def_ctrl_jet(m_nrt);
 
 
soft_task_default_model(m_aper);
soft_task_def_group(m_aper,1);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_aperiodic(m_aper);
 
soft_task_default_model(m_soft);
soft_task_def_period(m_soft,100000);
soft_task_def_met(m_soft,JET_WCET);
soft_task_def_group(m_soft,1);
soft_task_def_ctrl_jet(m_soft);
soft_task_def_aperiodic(m_soft);
 
 
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
 
// p3 = task_create("JetControl",jetcontrol,&m_nrt,NULL);
p3 = task_create("JetControl",jetcontrol,&m_aper,NULL);
if (p3 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
/*
aperiodic_task_default_model(m_aper,APER_WCET);
aperiodic_task_def_ctrl_jet(m_aper);
aperiodic_task_def_system(m_aper);
 
for (i=0; i<APER_MAX; i++) {
aperiodic_task_def_level(m_aper, i/4 + 2);
aperiodic_task_def_arg(m_aper, (i/4 ? 'Û' : '±'));
aper_table[i] = task_create("aper",aper_asteroid,&m_aper,NULL);
if (aper_table[i] == -1) {
perror("test7.c(main): Could not create task <aper> ...");
sys_end();
l1_exit(-1);
}
}
*/
task_nopreempt();
 
#ifdef PIMUTEX
PI_mutexattr_default(a);
#endif
 
#ifdef NPPMUTEX
NPP_mutexattr_default(a);
#endif
 
#ifdef NOPMUTEX
NOP_mutexattr_default(a);
#endif
 
mutex_init(&m1, &a);
 
fineprg.tv_sec = 1800;
fineprg.tv_nsec = 0;
kern_event_post(&fineprg,(void (*)(void *))fine,NULL);
group_activate(1);
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/testm.c
0,0 → 1,318
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testm.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 22 (M):
 
this is a part of the classic Hartik demo Aster.
 
it is based on test 10(A), and test the PS with RM.
 
The JetControl is served by a dedicated Polling Server, too.
 
There are APER_MAX tasks sleeping, and when an asteroide task finish
the current activation, it activate also an aperiodic task chosen
randomly (if the task chosen is already active, the task_activate do
nothing!)
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules//edf.h"
#include "drivers/keyb.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
#define APER_MAX 8
 
#define PER_WCET 7800
#define APER_WCET 14000
#define CLOCK_WCET 200
#define ASTER_WCET 200
 
#define APER_REP 22000
 
PID aper_table[APER_MAX];
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
num_aster--;
return 0;
}
 
TASK aper_asteroid(void *a)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
int c;
 
char s[2];
 
c = (int)a;
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = APER_REP; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
s[0] = c;
puts_xy(i,y,rand()%15+1,s);
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
}
 
TASK aster()
{
PID p;
 
HARD_TASK_MODEL m;
int r;
int x; // adaptive bandwidth...
 
hard_task_default_model(m);
hard_task_def_wcet(m,PER_WCET);
hard_task_def_ctrl_jet(m);
 
x = 64;
 
srand(7);
while (1) {
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
hard_task_def_arg(m,(void *)((rand() % 7)+1));
hard_task_def_mit(m, (x+r)*1000);
p = task_create("aaa",asteroide,&m,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
}
else {
num_aster++;
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"U=%12u",EDF_usedbandwidth(0));
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"U=%12u",EDF_usedbandwidth(0));
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
kern_cli();
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
kern_sti();
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
kern_cli();
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
kern_sti();
i++;
}
}
}
 
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
 
int main(int argc, char **argv)
{
PID p1,p2,p3; //,p4,p5,p6;
HARD_TASK_MODEL m;
NRT_TASK_MODEL m_nrt;
SOFT_TASK_MODEL m_aper;
int i;
struct timespec fineprg;
 
KEY_EVT emerg;
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
hard_task_default_model(m);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_mit(m,10000);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
nrt_task_default_model(m_nrt);
nrt_task_def_group(m_nrt,1);
nrt_task_def_ctrl_jet(m_nrt);
 
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
 
soft_task_default_model(m_aper);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_level(m_aper, 1);
soft_task_def_group(m_aper,1);
soft_task_def_aperiodic(m_aper);
p3 = task_create("JetControl",jetcontrol,&m_aper,NULL);
if (p3 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
 
soft_task_def_wcet(m_aper,APER_WCET);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_aperiodic(m_aper);
 
for (i=0; i<APER_MAX; i++) {
soft_task_def_level(m_aper, i/4 + 3);
soft_task_def_arg(m_aper, (void *)(i/4 ? 'Û' : '±'));
aper_table[i] = task_create("aper",aper_asteroid,&m_aper,NULL);
if (aper_table[i] == -1) {
perror("test7.c(main): Could not create task <aper> ...");
sys_end();
l1_exit(-1);
}
}
 
fineprg.tv_sec = 1000;
fineprg.tv_nsec = 0;
kern_event_post(&fineprg,(void (*)(void *))fine,NULL);
 
group_activate(1);
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/testn.c
0,0 → 1,211
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testn.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 23 (N):
 
This is the mousfind.c Hartik's example.
 
It find the mouse...
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include <kernel/kern.h>
#include <drivers/mouse.h>
#include <drivers/keyb.h>
 
/* don't include this into real applications*/
#include <../drivers/char/_mouse.h>
 
#define cons_columns 80
#define cons_rows 25
 
int done;
 
void my_ctrlC_function(KEY_EVT *k)
{
CRSR_STD();
done=1;
//sys_status(0xffff);
sys_end();
l1_exit(0);
}
 
//extern int tindex;
//extern DWORD tdata[];
//int first=1;
 
 
void my_mouse_hook(MOUSE_EVT *m)
{
static int buttons=-1;
if (buttons!=m->buttons) {
buttons=m->buttons;
//mouse_off();
if (isLeftButton(*m)) puts_xy(9,22,RED,"active");
else puts_xy(9,22,RED," ");
if (isCentralButton(*m)) puts_xy(9,23,RED,"active");
else puts_xy(9,23,RED," ");
if (isRightButton(*m)) puts_xy(9,24,RED,"active");
else puts_xy(9,24,RED," ");
//mouse_on();
}
 
 
/*
if (tindex>20&&first) {
int i;
cprintf("\nSTART\n");
for (i=0;i<tindex;i++) {
cprintf("%i\n",(int)tdata[i]);
}
for (i=1;i<tindex;i++) {
cprintf("%i ",(int)(tdata[i]-tdata[i-1]));
}
first=0;
}
*/
}
 
int main(int argc,char *argv[])
{
// KEYB_PARMS keyb =BASE_KEYB;
MOUSE_PARMS mouse=BASE_MOUSE;
int ch,running,nm;
int sens=5;
 
/* keyboard initialization */
// keyb_def_ctrlC(keyb,my_ctrlC_function);
// keyb_init(&keyb);
 
/* screen */
clear();
nm=0;
while (*vmouse[nm].name!='\0') {
cprintf("%c %s:\t %s\n",(char)('a'+nm),vmouse[nm].name,vmouse[nm].desc);
nm++;
}
cprintf("\n[a-%c]\t select a mouse server\n",(char)(nm+'a'-1));
cprintf("[z]\t decrement mouse threshold\n");
cprintf("[x]\t incremnet mouse threshold\n");
cprintf("[ctrl-c]\t exit\n");
place(0,20);
cputs("mouse server:\n");
cputs("threshold:\n");
cputs("left :\n");
cputs("central:\n");
cputs("right :");
CRSR_OFF();
 
/* main loop */
running=done=0;
while (!done) {
ch=keyb_getch(TRUE);
switch(ch) {
 
/* decrement threshold */
case 'z':
sens--;
if (sens<2) sens=2;
mouse_threshold(sens);
/* threshold */
place(11,21);
cprintf("%i ",sens);
break;
 
/* increment threshold */
case 'x':
sens++;
if (sens>100) sens=100;
mouse_threshold(sens);
/* threshold */
place(11,21);
cprintf("%i ",sens);
break;
 
/* change mouse protocol */
default:
if (ch>='a'&&ch<='a'+nm-1) {
/* check if a mouse server is running... */
if (running) {
/* disable autocursor */
mouse_txtcursor(DISABLE);
/* destroy actual mouse server */
mouse_end();
}
/* mouse server name */
puts_xy(14,20,GREEN," ");
puts_xy(14,20,GREEN,vmouse[ch-'a'].name);
/* threshold */
place(11,21);
cprintf("%i ",sens);
/* don't use this method to change a mouse protocol */
/* use mouse_def_???? macros instead */
mouse.type=ch-'a';
/* start a new server */
running=(mouse_init(&mouse)==0?1:0);
/* if running ...*/
if (running) {
/* set mouse limit */
mouse_limit(0,0,cons_columns-1,cons_rows-1);
/* enable autocursor */
mouse_txtcursor(ENABLE|AUTOOFF);
/* hook my function */
mouse_hook(my_mouse_hook);
/* show mouse cursor */
mouse_on();
}
}
break;
}
}
 
CRSR_STD();
sys_end();
return 0;
}
/demos/branches/pj/oldexamples/kernel/testo.c
0,0 → 1,99
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testo.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test 24 (O):
 
This is the pcitest Hartik's example.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
 
#include <kernel/kern.h>
#include <drivers/keyb.h>
 
#include <drivers/llpci.h>
#include <drivers/pci.h>
 
void scan()
{
// int i, ndev;
// WORD Class;
// struct pci_regs *r;
BYTE bus, dev;
 
/* Scan the devices connected to the PCI bus */
if (pci_init() == 1) {
clear();
pci_show();
bus = 0; dev = 0;
if (pcibios_find_device(0x8086, 0x7000, 0, &bus, &dev) == NULL)
cprintf("Not found... %d %d\n", bus, dev);
else cprintf("Found: %d \t %d\n", bus, dev);
 
if (pcibios_find_class(0x300, 0, &bus, &dev) == NULL)
cprintf("Not found... %d %d\n", bus, dev);
else cprintf("Found: %d \t %d\n", bus, dev);
} else cprintf("PCI not found!!!\n");
}
 
void endfun(KEY_EVT *k)
{
sys_abort(60000);
}
 
int main (int argc, char *argv[])
{
KEY_EVT k;
k.flag = CNTR_BIT;
k.scan = KEY_C;
k.ascii = 'c';
keyb_hook(k,endfun);
 
scan();
while(1);
sys_end();
return -1;
}
/demos/branches/pj/oldexamples/kernel/testp.c
0,0 → 1,227
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testp.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test 25 (P):
 
This is the talkdx.c Hartik's example.
 
File: Talk.C
Revision: 1.00
Author: Luca Abeni
 
 
Simple Netlib demo: nothing of seriously real-time, only another Unix
Talk clone.
Read it to see how the UDP/IP layers of the networ library work.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include <kernel/kern.h>
//#include <mem.h>
//#include <stdlib.h>
#include <string.h>
//#include <cons.h>
#include <drivers/crtwin.h>
#include <drivers/keyb.h>
 
#include <drivers/udpip.h>
 
 
WIN dbg;
BYTE esc = FALSE;
 
char talk_myipaddr[20];
char talk_toipaddr[20];
 
/*
This non real-time task reads UDP packets from the network and writes
them in a window
*/
TASK scrittore(void)
{
char str[2000];
UDP_ADDR from, local;
WIN displ;
int s,n;
 
/* Connect on the local port #100 */
local.s_port = 100;
s = udp_bind(&local, NULL);
 
/* Open the window */
win_init(&displ,0,0,79,6);
win_frame(&displ,BLACK,WHITE,"Remote",2);
 
while (1) {
/* Clear the buffer for receiving the packet...*/
memset(str, 0, 1999);
/*...and receive the packet (block until a packet arrives */
n = udp_recvfrom(s, str, &from);
win_puts(&displ, str);
}
}
 
/*
This non real-time task reads strings from the keyoard and sends them
to the remote host
*/
TASK write(void)
{
WIN wr;
UDP_ADDR to,local;
char str[80];
int s;
IP_ADDR bindlist[5];
 
/* Create a socket for transitting */
ip_str2addr(talk_myipaddr,&(local.s_addr));
local.s_port = 101;
 
/*
If we want the address of the remote host in the ARP table before
begginning the transmission (to eliminate a possible source of
unpredictability), we can use the bindlist, otherwise we set the
second parameter of udp_bind to NULL
*/
ip_str2addr(talk_toipaddr,&(bindlist[0]));
memset(&(bindlist[1]), 0, sizeof(IP_ADDR));
s = udp_bind(&local, /*bindlist*/NULL);
 
win_init(&wr,0,7,79,6);
win_frame(&wr,BLACK,WHITE,"Local",2);
ip_str2addr(talk_toipaddr,&(to.s_addr));
to.s_port = 100;
sprintf(str,"Local IP address %d.%d.%d.%d\n", local.s_addr.ad[0],
local.s_addr.ad[1], local.s_addr.ad[2],
local.s_addr.ad[3]);
win_puts(&dbg,str);
sprintf(str,"Talk to %d.%d.%d.%d ",to.s_addr.ad[0],to.s_addr.ad[1],
to.s_addr.ad[2],to.s_addr.ad[3]);
win_puts(&dbg,str);
while (1) {
/* Get the string...*/
win_gets(&wr,str,78);
strcat(str,"\n");
/*...and send it!!! */
udp_sendto(s,str,strlen(str)+2,&to);
}
}
 
/* This function is called when the user presses CTRL-C (stops the systems) */
void esci(KEY_EVT *k)
{
esc = TRUE;
cprintf("Ctrl-Brk pressed!\n");
//sys_status(0xFFFF);
sys_abort(500);
//exit(1);
}
 
int main(void)
{
KEY_EVT k;
 
struct net_model m = net_base;
 
NRT_TASK_MODEL m_nrt;
 
k.flag = CNTL_BIT;
k.scan = KEY_C;
k.ascii = 'c';
keyb_hook(k,esci);
k.flag = CNTR_BIT;
k.scan = KEY_C;
k.ascii = 'c';
keyb_hook(k,esci);
 
clear();
cprintf(" Hartik Talk! Ver. 1.00\n");
// strcpy(talk_myipaddr, "193.205.82.46");
// strcpy(talk_toipaddr, "193.205.82.44");
 
strcpy(talk_myipaddr, "193.205.82.44");
strcpy(talk_toipaddr, "193.205.82.46");
 
/* We want a task for TX mutual exclusion */
net_setmode(m, TXTASK);
/* We use UDP/IP stack */
net_setudpip(m, talk_myipaddr);
/* OK: let's start the NetLib! */
if (net_init(&m) == 1) {
cprintf("Net Init OK...\n");
} else {
cprintf("Net Init Failed...\n");
sys_abort(300);
}
 
 
//dump_irq();
cprintf("\n\n\n\tPress ENTER\n");
while (!esc) {
keyb_getcode(&k,BLOCK);
if (k.ascii == 13) esc = TRUE;
}
 
esc = FALSE;
clear();
win_init(&dbg,0,20,60,3);
win_frame(&dbg,BLACK,WHITE,"Debug",2);
/* Start the sender and receiver tasks...*/
//task_nopreempt();
nrt_task_default_model(m_nrt);
task_activate(task_create("aaa",scrittore,&m_nrt,NULL));
task_activate(task_create("bbb",write,&m_nrt,NULL));
//clear();
//task_preempt();
/*...and wait!!! */
while (!esc) {
}
sys_end();
//clear();
return 0;
}
/demos/branches/pj/oldexamples/kernel/testq.c
0,0 → 1,229
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testq.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 26 (Q):
 
This test verify the correctness of the task_join primitive.
 
There are 4 taks, J1, J2, J3, are created as joinable, J4 as detached
(the standard with hartik...)
 
The main task:
Creates J1 and J2, locks m1 (a PI mitex), creates C3.
at t=0.8 sec it calls a task_join on J3 (that returns EDEADLK),
it unlocks m1, then it makes task_join on J3 another time.
Next it creates J4 as detached and finally it does a task_join on J4
(that returns EINVAL).
 
J1:
at t=0.2 sec it calls task_join on J2, the it ends.
 
J2:
it simply waits t=0.4 sec and it ends.
 
J3:
First, it calls task_join on J1.
Then, at t=0.6 sec it locks m1, then unlocks it
 
J4:
it simply waits t=1 sec and it ends.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "drivers/keyb.h"
 
#include <modules//srp.h>
 
 
PID j0, j1, j2, j3, j4;
mutex_t m1;
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
TASK J1()
{
int err;
void *ret;
 
kern_printf("J1: started, waiting 0.2 sec\n");
 
while (sys_gettime(NULL) < 200000);
 
kern_printf("J1: 0.2 sec reached, joining J2\n");
 
err = task_join(j2, &ret);
 
kern_printf("J1: join J2 returns %d error %d, exiting\n",
(int)ret,err);
return (void *)11;
}
 
TASK J2()
{
kern_printf("J2: started, waiting 0.4 sec\n");
 
while (sys_gettime(NULL) < 400000);
 
kern_printf("J2: 0.4 sec reached, exiting\n");
 
return (void *)22;
}
 
TASK J3()
{
int err;
void *ret;
 
kern_printf("J3: started, joining J1\n");
 
err = task_join(j1, &ret);
 
kern_printf("J3: join J1 returns %d error %d, waiting 0.6sec\n", (int)ret, err);
 
while (sys_gettime(NULL) < 600000);
 
kern_printf("J1: 0.6 sec reached, locking m1\n");
 
mutex_lock(&m1);
 
kern_printf("J3: locked m1, unlocking m1\n");
 
mutex_unlock(&m1);
 
kern_printf("J3: unlocked m1, exiting\n");
 
return (void *)33;
}
 
TASK J4()
{
kern_printf("J4: started, waiting 1 sec\n");
 
while (sys_gettime(NULL) < 1000000);
 
kern_printf("J4: 1 sec reached, exiting\n");
 
return (void *)44;
}
 
int main(int argc, char **argv)
{
NRT_TASK_MODEL m;
 
PI_mutexattr_t a;
 
KEY_EVT emerg;
 
int err;
void *ret;
 
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
j0 = exec_shadow;
nrt_task_default_model(m);
nrt_task_def_joinable(m);
 
/* ---------------------------------------------------------------------
Mutex creation
--------------------------------------------------------------------- */
 
PI_mutexattr_default(a);
mutex_init(&m1,&a);
 
 
/* ---------------------------------------------------------------------
Let's go !!!!
--------------------------------------------------------------------- */
 
kern_printf("main: creating J1,J2,J3, locking m1\n");
 
j1 = task_create("J1", J1, &m, NULL);
if (j1 == NIL) { kern_printf("Can't create J1 task...\n"); return 1; }
task_activate(j1);
 
j2 = task_create("J2", J2, &m, NULL);
if (j2 == NIL) { kern_printf("Can't create J2 task...\n"); return 1; }
task_activate(j2);
 
mutex_lock(&m1);
 
j3 = task_create("J3", J3, &m, NULL);
if (j3 == NIL) { kern_printf("Can't create J3 task...\n"); return 1; }
task_activate(j3);
 
kern_printf("main: waiting t=0.8 sec\n");
 
while (sys_gettime(NULL) < 800000);
 
err = task_join(j3, NULL);
 
kern_printf("main: join J3 error %d, unlocking m1\n",err);
 
mutex_unlock(&m1);
 
err = task_join(j3, &ret);
 
kern_printf("main: join J3 returns %d error %d, unlocked m1, creating J4\n",
(int)ret,err);
 
nrt_task_def_unjoinable(m);
j4 = task_create("J4", J4, &m, NULL);
if (j4 == NIL) { kern_printf("Can't create J4 task...\n"); return 1; }
 
task_activate(j4);
 
err = task_join(j4,&ret);
 
kern_printf("main: join J4 returns %d error %d, exiting\n", (int)ret, err);
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/test1.c
0,0 → 1,167
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test1.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 1:
 
this test is a simple main() function with other 2 task
 
This test has to be compiled with init1.c, that introduce 2 RR levels
with a timeslice of 300us (!)
 
This test can be useful to test functions like
 
task_nopreempt
task_preempt
task_create
task_activate
task_delay
group_activate
normal task termination (task_abort)
normal system termination (sys_end)
standard atexit functions (the keyboard...)
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
// for min
#include "ll/stdlib.h"
 
#include "ll/stdio.h"
 
 
#if !defined(__TEST1__)
THE TEST REQUIRE THE DEFINITION __TEST1__ IN CONFIG.C
#endif
 
struct timespec s_stime[10000];
struct timespec s_send[10000];
TIME s_curr[10000];
PID s_PID[10000];
int useds=0;
int testactive=1;
 
 
TASK pippo()
{
// int i;
struct timespec t;
int last = 0;
 
do {
//kern_printf("!");
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
if ((t.tv_nsec/1000000) != last) { //ogni 7000
// kern_printf("Û%dÛ",t);
last = t.tv_nsec/1000000;
// task_delay(3000000);
}
 
} while (t.tv_nsec <= 20000000L);
}
 
TASK pippo2()
{
struct timespec t;
do {
// kern_printf("pippo2");
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
if (t.tv_nsec > 5000000 && t.tv_nsec <= 12000000) task_nopreempt();
if (t.tv_nsec > 12000000) task_preempt();
 
} while (t.tv_nsec <= 20000000L);
}
 
int main(int argc, char **argv)
{
struct timespec t;
int i;
NRT_TASK_MODEL m;
PID p2,p3;
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
 
p2 = task_createn("pippo", pippo, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo task...\n"); return 1; }
 
p3 = task_createn("pippo2", pippo2, &m, NULL);
if (p3 == NIL)
{ kern_printf("Can't create pippo2 task...\n"); return 1; }
 
group_activate(1);
 
 
kern_printf("DENTRO MAIN %d\n",ll_context_save());
 
// testactive = 1;
NULL_TIMESPEC(&t);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
// task_delay(14000);
 
} while (t.tv_nsec <= 40000000L);
testactive = 0;
 
// sys_status(0xFFFF);
// return 0;
 
kern_printf("FINE MAIN time=%d useds=%d\n",ll_gettime(TIME_EXACT,NULL),useds);
for (i=0; i<min(useds,20); i++)
kern_printf("%6d: pid %6d stime %-9d reschedule %-9d avail %-9d\n",i,
s_PID[i], s_stime[i].tv_nsec, s_send[i].tv_nsec, s_curr[i]);
// sys_end();
 
kern_printf("DENTRO MAIN %d\n",ll_context_save());
return 0;
}
/demos/branches/pj/oldexamples/kernel/test2.c
0,0 → 1,161
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test2.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 2:
task_testcancel,
task_delay
task_setcancelstate
 
The task 2 disappear after time 10000 because we have reactivated
the cancelability and a testcancel is issued
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
#if !defined(__TEST1__)
THE TEST REQUIRE THE DEFINITION __TEST1__ IN CONFIG.C
#endif
 
struct timespec s_stime[10000];
struct timespec s_send[10000];
TIME s_curr[10000];
PID s_PID[10000];
int useds=0;
int testactive=1;
 
 
TASK pippo()
{
int i;
struct timespec t;
// int last = 0;
 
task_setcancelstate(TASK_CANCEL_DISABLE,&i);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
// printf_xy(10,8,WHITE,"%9d s%9d n%9d",exec_shadow,t.tv_sec,t.tv_nsec);
 
if (t.tv_nsec > 10000000)
{
task_setcancelstate(TASK_CANCEL_ENABLE,&i);
}
if (t.tv_nsec > 5000000)
{
// kern_printf("\n%d %dÄ", exec_shadow, proc_table[exec_shadow].control);
task_testcancel();
}
task_delay(1000);
// kern_printf("Dopo Delay %d ",exec_shadow);
 
} while (t.tv_nsec <= 30000000L);
}
 
TASK pippo2()
{
int i;
struct timespec t;
// int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
// printf_xy(10,9,WHITE,"%d s%9d n%9d\n",exec_shadow,t.tv_sec,t.tv_nsec);
// kern_printf("Û%dÛ",proc_table[exec_shadow].control);
 
if (t.tv_nsec > 15000000)
{
// kern_printf("XXXXXXXXXX");
task_setcanceltype(TASK_CANCEL_ASYNCHRONOUS,&i);
}
task_delay(1000);
 
} while (t.tv_nsec <= 30000000L);
}
 
int main(int argc, char **argv)
{
struct timespec t;
int i;
NRT_TASK_MODEL m;
PID p2,p3;
// int k=1;
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
 
p2 = task_create("pippo2", pippo, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo2 task...\n"); return 1; }
 
p3 = task_create("pippo3", pippo2, &m, NULL);
if (p3 == NIL)
{ kern_printf("Can't create pippo3 task...\n"); return 1; }
 
group_activate(1);
 
 
task_kill(p2);
 
NULL_TIMESPEC(&t);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
task_kill(p3);
 
} while (t.tv_nsec <= 20000000L);
testactive = 0;
 
kern_printf("FINE MAIN time=%d useds=%d\n",ll_gettime(TIME_EXACT,NULL),useds);
for (i=0; i<useds; i++)
kern_printf("%6d: pid %-9d stime %-9d reschedule %-9d avail %-9d\n",i,
s_PID[i], s_stime[i].tv_nsec, s_send[i].tv_nsec, s_curr[i]);
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testr.c
0,0 → 1,231
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testr.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 27 (R):
 
This test verify the correctness of the condition variables.
(... it doesn't test all...)
 
The test uses 1 mutex
 
the main task (NRT) creates three tasks.
 
J0, J1, J3
starts, lock the mutex, and wait on a condition variable
 
J2
at t = 0.5 lock the mutex and call cond_signal
at t = 1 lock the mutex and call cond_signal
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "drivers/keyb.h"
 
 
mutex_t m0;
cond_t c0;
 
int number = 0;
 
PID p0,p1,p2,p3;
 
TASK j0()
{
kern_printf("J0: before locking m0\n");
mutex_lock(&m0);
kern_printf("J0: locked m0, waiting on c0, number =%d\n", number);
while (!number) {
cond_wait(&c0,&m0);
kern_printf("J0: number = %d, if >0 unlocking m0\n",number);
}
number--;
mutex_unlock(&m0);
kern_printf("J0: unlocked m0, end task\n");
return 0;
}
 
 
TASK j1()
{
kern_printf("J1: before locking m0\n");
mutex_lock(&m0);
kern_printf("J1: locked m0, waiting on c0, number =%d\n", number);
while (!number) {
cond_wait(&c0,&m0);
kern_printf("J1: number = %d, if >0 unlocking m0\n",number);
}
number--;
mutex_unlock(&m0);
kern_printf("J1: unlocked m0, end task\n");
return 0;
}
 
 
TASK j2()
{
// struct timespec t;
 
kern_printf("J2: started, waiting t=0.5 sec\n");
while (sys_gettime(NULL) < 500000);
 
kern_printf("J2: before locking m0\n");
mutex_lock(&m0);
kern_printf("J2: locked m0, number++ (was %d), cond_signal\n", number);
 
number++;
cond_signal(&c0);
// cond_broadcast(&c0);
 
kern_printf("J2: unlocking m0\n");
mutex_unlock(&m0);
 
kern_printf("J2: waiting t=1 sec\n");
while (sys_gettime(NULL) < 1000000);
 
kern_printf("J2: Killing J3\n");
task_kill(p3);
kern_printf("J2: before locking m0\n");
mutex_lock(&m0);
kern_printf("J2: locked m0, number++ (was %d), cond_signal\n", number);
 
number++;
cond_signal(&c0);
// cond_broadcast(&c0);
 
kern_printf("J2: unlocking m0\n");
mutex_unlock(&m0);
kern_printf("J2: unlocked m0, end task\n");
return 0;
}
 
void cleanup_lock(void *arg)
{
kern_printf("J3: KILL!!!\n");
mutex_unlock(&m0);
kern_printf("J3: unlocked m0 by the cleanup function\n");
}
 
TASK j3()
{
kern_printf("J3: before locking m0\n");
mutex_lock(&m0);
kern_printf("J3: locked m0, waiting on c0, number =%d\n", number);
task_cleanup_push(cleanup_lock, (void *)&m0);
while (!number) {
cond_wait(&c0,&m0);
kern_printf("J3: number = %d, if >0 unlocking m0\n",number);
}
task_cleanup_pop(0);
// I hope this task never reach this point... it is killed by J2!!!
number--;
mutex_unlock(&m0);
kern_printf("J3: unlocked m0, end task\n");
return 0;
}
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
 
int main(int argc, char **argv)
{
// struct timespec t;
 
NRT_TASK_MODEL m;
 
PI_mutexattr_t a;
 
KEY_EVT emerg;
 
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
/* ---------------------------------------------------------------------
Task creation
--------------------------------------------------------------------- */
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
p0 = task_create("J0", j0, &m, NULL);
if (p0 == NIL)
{ kern_printf("Can't create J0 task...\n"); return 1; }
 
p1 = task_create("J1", j1, &m, NULL);
if (p1 == NIL)
{ kern_printf("Can't create J1 task...\n"); return 1; }
 
p2 = task_create("J2", j2, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create J2 task...\n"); return 1; }
 
p3 = task_create("J3", j3, &m, NULL);
if (p3 == NIL)
{ kern_printf("Can't create J3 task...\n"); return 1; }
 
/* ---------------------------------------------------------------------
Mutex creation
--------------------------------------------------------------------- */
 
PI_mutexattr_default(a);
mutex_init(&m0,&a);
 
cond_init(&c0);
 
/* ---------------------------------------------------------------------
Event post
--------------------------------------------------------------------- */
 
group_activate(1);
 
kern_printf("END main\n");
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/tests.c
0,0 → 1,79
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: tests.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
memtest.c:
 
try to allocate different regions of memory...
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
int main(int argc, char **argv)
{
void *a;
 
kern_cli(); a = DOS_alloc(4500); kern_sti();
kern_printf("below 1 M: %ld\n", (DWORD)a);
 
kern_cli(); a = kern_alloc_aligned(10000,MEMORY_UNDER_16M,10,0); kern_sti();
kern_printf("below 16M: %ld\n", (DWORD)a);
 
kern_cli(); a = kern_alloc_aligned(10000,MEMORY_FROM_1M_TO_16M,2,0); kern_sti();
kern_printf(">1M <16M : %ld\n", (DWORD)a);
 
kern_cli(); a = kern_alloc(10000); kern_sti();
kern_printf("normal : %ld\n", (DWORD)a);
 
kern_cli(); a = kern_alloc_page(MEMORY_UNDER_1M); kern_sti();
kern_printf("page <1M : %ld\n", (DWORD)a);
 
kern_cli(); a = kern_alloc_page(MEMORY_FROM_1M_TO_16M); kern_sti();
kern_printf("p>1<16M : %ld\n", (DWORD)a);
 
kern_cli(); a = kern_alloc_page(0); kern_sti();
kern_printf("page : %ld\n", (DWORD)a);
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/test3.c
0,0 → 1,137
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test3.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 3:
task_cleanup_push
task_cleanup_pop
 
It may print many 0 and then only one 1
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
#if !defined(__TEST1__)
THE TEST REQUIRE THE DEFINITION __TEST1__ IN CONFIG.C
#endif
 
struct timespec s_stime[10000];
struct timespec s_send[10000];
TIME s_curr[10000];
PID s_PID[10000];
int useds=0;
int testactive=1;
 
 
void fun1(void *p)
{
kern_printf("ÛÛ %d ÛÛ",(int)p);
}
 
 
TASK pippo()
{
int i;
struct timespec t;
int last = 0;
task_cleanup_push(fun1,(void *)1);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
if (t.tv_nsec > 5000000)
{
task_testcancel();
 
task_cleanup_push(fun1,(void *)-1);
task_cleanup_push(fun1,(void *)0);
task_cleanup_pop(1);
task_cleanup_pop(0);
}
task_delay(1000);
 
} while (t.tv_nsec <= 30000000L);
task_cleanup_pop(1);
}
 
 
 
int main(int argc, char **argv)
{
struct timespec t;
NRT_TASK_MODEL m;
PID p2,p3;
int k=1;
int i;
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
 
p2 = task_create("pippo2", pippo, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo2 task...\n"); return 1; }
 
group_activate(1);
 
 
NULL_TIMESPEC(&t);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
if (t.tv_nsec > 10000000) task_kill(p2);
} while (t.tv_nsec <= 20000000L);
testactive = 0;
 
return 0;
 
kern_printf("FINE MAIN time=%d useds=%d\n",ll_gettime(TIME_EXACT,NULL),useds);
for (i=0; i<useds; i++)
kern_printf("%6d: pid %6d stime %6d reschedule %6d avail %6d\n",i,
s_PID[i], s_stime[i].tv_nsec, s_send[i].tv_nsec, s_curr[i]);
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/test4.c
0,0 → 1,67
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test4.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 4:
 
this test is a simple main() function
 
This test has to be compiled with init1.c, that introduce 2 RR levels
with a timeslice of 300us (!)
 
This test can be useful to test functions like
 
perror
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
int main(int argc, char **argv)
{
errno = EUNVALID_KILL; kern_printf("code: %d ",errno); perror("EUNVALID_KILL");
errno = EINVAL; kern_printf("code: %d ",errno); perror("EINVAL");
errno = ENOMEDIUM; kern_printf("code: %d ",errno); perror("ENOMEDIUM");
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/test5.c
0,0 → 1,165
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test5.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 5:
 
this test is a simple main() function with one other task
 
This test has to be compiled with init1.c, that introduce 2 RR levels
with a timeslice of 300us (!)
 
This test can be useful to test functions like
 
sigemptyset
sigaddset
hartik_deliver_pending_signals
sys_end
task_sigmask
sigaction
sigqueue
task_signal
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
 
TASK pippo()
{
struct timespec t;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
} while (t.tv_nsec <= 20000000L);
cli(); kern_printf("pippo"); sti();
return 0;
}
 
void catchit(int signo, siginfo_t *info, void *extra)
{
kern_printf("\nÛ exec_shadow= %d signo=%d code=%d value=%d p=%d Û\n",
exec_shadow,
info->si_signo, info->si_code,
info->si_value.sival_int, info->si_task);
}
 
 
void catchit2(int signo)
{
kern_printf("\nSignal %d: AAARRRRRRGGGGHHHH!!!!\n",signo);
}
 
int main(int argc, char **argv)
{
struct timespec t;
NRT_TASK_MODEL m;
PID p2;
 
sigset_t newmask;
sigset_t oldmask;
struct sigaction action;
union sigval sval;
 
 
/* Set the signal action */
action.sa_flags = SA_SIGINFO;
action.sa_sigaction = catchit;
action.sa_handler = 0;
action.sa_mask = 0;
 
if (sigaction(SIGUSR1, &action, NULL) == -1) {
perror("Errore");
return -1;
}
 
action.sa_flags = 0;
action.sa_handler = catchit2;
// action.sa_sigaction = SIG_DFL;
 
if (sigaction(SIGILL, &action, NULL) == -1) {
perror("Errore");
return -1;
}
 
/* create another task */
nrt_task_default_model(m);
nrt_task_def_level(m,1);
nrt_task_def_group(m,1);
 
p2 = task_create("pippo", pippo, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo task...\n"); return 1; }
 
group_activate(1);
 
/* block the signal for the main task */
sigemptyset(&newmask);
sigaddset(&newmask,SIGUSR1);
task_sigmask(SIG_BLOCK, &newmask, &oldmask);
 
sval.sival_int = 123;
sigqueue(0,SIGUSR1,sval);
sval.sival_int = 999;
sigqueue(0,SIGUSR1,sval);
 
cli();kern_printf("\n()()()()\n"); sti();
 
task_signal(0 /* main */, SIGILL);
 
NULL_TIMESPEC(&t);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
} while (t.tv_nsec <= 50000000L);
 
cli();kern_printf("\n()*********()\n"); sti();
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testu.c
0,0 → 1,115
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testu.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number ?? (U):
 
this test is a simple main() function with one other task.
 
This test verify the correctness of the internal_sem functions.
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
#include <kernel/int_sem.h>
 
internal_sem_t s;
 
TASK pippo(void *a)
{
int i=0;
struct timespec t;
// int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
if (i==0 && t.tv_sec == (int)a) {
i = 1;
kern_printf("before internal_sem_wait %d\n",(int)a);
internal_sem_wait(&s);
kern_printf("after internal_sem_wait %d\n",(int)a);
}
 
if (i==1 && t.tv_sec == 2+(int)a) {
i = 2;
kern_printf("before internal_sem_post %d\n",(int)a);
internal_sem_post(&s);
kern_printf("after internal_sem_post %d\n",(int)a);
return 0;
}
 
 
} while (1);
}
 
int main(int argc, char **argv)
{
// struct timespec t;
// int i;
NRT_TASK_MODEL m;
PID p2,p3;
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
 
nrt_task_def_arg(m,(void *)1);
p2 = task_create("pippo1", pippo, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo1 task...\n"); return 1; }
 
nrt_task_def_arg(m,(void *)2);
p3 = task_create("pippo2", pippo, &m, NULL);
if (p3 == NIL)
{ kern_printf("Can't create pippo2 task...\n"); return 1; }
 
internal_sem_init(&s,1);
 
group_activate(1);
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/test6.c
0,0 → 1,465
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test6.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 6:
 
this is a part of the classic Hartik demo Aster.
 
It checks:
- EDF module
. periodic tasks
- an high number of task executing concurrently
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/*
Well, this is only a stupid demo which intend to show many
HARTIK+ capabilities; the application is structured in the followig
way: there is an ASTER task wich randomly creates some ASTEROID tasks
which are displayed into the first window; each task is HARD/PERIODIC
and auto-kills itself when it reaches the window end!
An other couple of tasks, TITLE & PUT give an example of port
communication facility; the server task creates the port, the client
task connect to it and uses the server to accomplish some stuff.
Port can be declared READ/WRITE and can model ONE-TO-ONE communication
or MANY-TO-ONE communication.
Finally a second couple of tasks realizes a communiation through CABs;
each time a key is pressed, the ascii code is posted into the CAB by the
CCC task while the second task, WRITE, displays it on the screen and
perform other silly actions.
Finally a CLOCK task is implemented to test system clock.
Please note that usually the HARTIK+ application is made up of a task
group which interacts among them, while the main() function, which
became a task itself when the kernel is activated, is suspended until
the system is ready to terminate; the MAIN task can also be used to make
other background activities, but it should not be killed; when the
application terminates, the control is passed to MAIN which kills
everybody, shut down the system and can handle other operations using
the services available with the previou operating system (I.E. the DOS).
If you need to manage sudden abort/exception you should install your own
exception handler and raise it through the exc_raise() primitive to
make the system abort safely!
Remember that the exit functions posted through sys_atexit() will be
executed in both cases, to allow clean system shutdown.
*/
 
//#include <string.h>
//#include <stdlib.h>
 
//#include "hartik.h"
 
//#define __VPAGING__
/* #define __TRACE__ */
 
//#ifdef __TRACE__
//#include "sys\log.h"
//#endif
 
//#include "keyb.h"
//#include "cons.h"
//#include "crtwin.h"
 
#include "kernel/kern.h"
 
 
int num_aster = 0;
#define ASTER_LIM 67
#define ASTER_MAX 90
 
//CAB cc;
//BYTE esc = FALSE;
 
TASK asteroide(void)
{
int i = 1;
int y = rand() % 20 + 1;
while (i < ASTER_LIM) {
puts_xy(i,y,WHITE,"*");
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
num_aster--;
return 0;
}
 
DWORD taskCreated = 0;
 
TASK aster(void)
{
PID p;
 
// MODEL m = BASE_MODEL;
HARD_TASK_MODEL m;
int r;
// WIN w;
 
// win_init(&w,0,0,ASTER_LIM,8);
// win_frame(&w,BLACK,WHITE,"Asteroids",2);
 
 
hard_task_default_model(m);
hard_task_def_wcet(m,500);
 
srand(7);
while (1) {
if (num_aster < ASTER_MAX) {
r = (rand() % 50) - 25;
 
hard_task_def_arg(m,(void *)((rand() % 7)+1));
hard_task_def_mit(m, (50+r)*1000);
p = task_create("aaa",asteroide,&m,NULL);
taskCreated++;
task_activate(p);
num_aster++;
}
 
task_endcycle();
}
}
 
TASK clock()
{
//WIN w;
int s = 0, m = 0;
 
//win_init(&w,68,0,11,2);
//win_frame(&w,BLACK,WHITE,"Clk",1);
 
while(1) {
printf_xy(70,1,WHITE,"%2d : %2d",m,s);
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(70,1,WHITE,"%2d : %2d",m,s);
task_endcycle();
}
}
 
/*
TASK title()
{
PORT t;
WIN w;
int i,pos = 77;
char msg[85],tmp[85],ss[2];
BYTE c;
win_init(&w,0,9,79,2);
win_frame(&w,BLACK,WHITE,"Title",2);
 
for (i=0; i < 77; i++) msg[i] = ' ';
msg[77] = 0;
 
t = port_connect("title",1,STREAM,READ);
 
while (1) {
port_receive(t,&c,BLOCK);
ss[0] = c;
ss[1] = 0;
strcat(msg,ss);
puts_xy(1,10,WHITE,msg);
pos++;
if (pos > 77) {
strcpy(tmp,&(msg[1]));
tmp[pos-1] = 0;
pos -= 1;
strcpy(msg,tmp);
}
task_endcycle();
}
}
 
#define STR "..................... Hartik+ ....................."\
" Guarantees hard tasks "\
" Includes soft periodic tasks "\
"TB server for decrementing the aperiodic response time "\
"SRP for both hard & soft aperiodic tasks "\
"Portability toward other compilers/system "\
"Support for different C compiler: Watcom C 16 bit & 32 bit"\
" -- GNU C (32 bit) -- Borland C (16 bit) -- MS C (16 bit)"\
" "\
"Programmers : Gerardo Lamastra (lamastra@sssup2.sssup.it) "\
" Giuseppe Lipari (lipari@sssup2.sssup.it) "\
"Alpha AXP PCI-33 porting by Antonino Casile "\
"(casile@sssup1.sssup.it) "\
"Research coordinator: Giorgio Buttazzo (giorgio@sssup1.sssup.it)"\
" "\
" "\
" "
 
static char GreetMsg[1600];
 
TASK put(void)
{
PORT p;
 
strcpy(GreetMsg,STR);
p = port_create("title",strlen(GreetMsg),1,STREAM,WRITE);
while(1) {
port_send(p,GreetMsg,BLOCK);
task_endcycle();
}
}
 
TASK ccc(void)
{
WIN w;
char *m;
 
win_init(&w,68,3,10,3);
win_frame(&w,BLACK,WHITE,"CCC",2);
puts_xy(70,4,WHITE,"Cab");
 
while(1) {
m = cab_getmes(cc);
puts_xy(72,5,WHITE,m);
cab_unget(cc,m);
task_endcycle();
}
}
TASK write()
{
BYTE c;
char *msg;
 
while (1) {
c = keyb_getchar();
if (c == ESC) {
esc = TRUE;
task_sleep();
}
else {
#ifdef __VPAGING__
if (c == 's') {
if (get_visual_page() == 0) set_visual_page(1);
else if (get_visual_page() == 1) set_visual_page(0);
}
#endif
msg = cab_reserve(cc);
msg[0] = c;
msg[1] = 0;
cab_putmes(cc,msg);
}
}
}
 
#define DELTA 200000.0
double carico(double rif,BYTE init)
{
double i;
DWORD t1 = 0,t2 = 1000;
double u;
 
i = 0.0;
do {
i += 1;
} while (i <= DELTA);
 
u = i / ((double) (t2 - t1));
 
if (init) return u;
else return (1.0 - u/rif);
}
 
void my_end(KEY_EVT *e)
{
sys_end();
cprintf("Ctrl-Brk pressed!\n");
l1_exit(1);
}
 
void res(void)
{
sys_status(NORM_STATUS|BLOCKED_STATUS|SLEEP_STATUS|IDLE_STATUS);
}
*/
 
int main(int argc, char **argv)
{
PID p1,p2; //,p3,p4,p5,p6;
HARD_TASK_MODEL m;
 
/* MODEL m = BASE_MODEL;
SYS_PARMS sp = BASE_SYS;
KEY_EVT emerg;
double rif;
 
#ifdef __TRACE__
LOG_INFO li = BASE_LOG;
log_set_limit(li,9000);
log_set_name(li,"aster.hrt");
#endif
sys_def_nocheck(sp);
sys_init(&sp);
sys_atexit(res, BEFORE_EXIT);
 
#ifdef __TRACE__
log_init(&li);
#endif
 
keyb_init(NULL);
keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,my_end);
 
#ifdef __VPAGING__
set_active_page(1);
set_visual_page(1);
#endif
CRSR_OFF();
clear();
puts_xy(0,20,WHITE,"Press ESC to exit demo.");
cc = cab_create("Cab",2,2);
*/
 
hard_task_default_model(m);
hard_task_def_mit(m,10000);
hard_task_def_wcet(m,2000);
hard_task_def_group(m,1);
// periodic_task_def_ctrl_jet(m);
 
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("Aster.C(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,500000);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("Aster.C(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
/* p3 = task_create("Title",title,SOFT,PERIODIC,50,&m);
if (p3 == -1) {
perror();
cprintf("Aster.C(main): Could not create task <Title>\n");
sys_end();
l1_exit(-1);
}
p4 = task_create("Put",put,SOFT,PERIODIC,1000,&m);
if (p4 == -1) {
perror();
cprintf("Aster.C(main): Could not create task <Put>\n");
sys_end();
l1_exit(-1);
}
p5 = task_create("Write",write,NRT,APERIODIC,10,&m);
if (p5 == -1) {
perror();
cprintf("Aster.C(main): Could not create task <Write>\n");
sys_end();
l1_exit(-1);
}
p6 = task_create("CabTask",ccc,HARD,PERIODIC,50,&m);
if (p6 == -1) {
perror();
cprintf("Aster.C(main): Could not create task <CabTask>\n");
sys_end();
l1_exit(-1);
}
#ifdef __TRACE__
log_loop();
#endif
 
task_activate(p1);
task_activate(p2);
task_activate(p3);
task_activate(p4);
task_activate(p5);
task_activate(p6);
 
group_activate(1);
 
while (!esc) {
printf_xy(0,21,WHITE,"Clock : %lu",sys_time());
}
 
#ifdef __TRACE__
log_fix();
#endif
group_kill(1);
clear();
CRSR_STD();
#ifdef __VPAGING__
set_active_page(0);
set_visual_page(0);
#endif
sys_end();
cprintf("System closed\n");
/ *
sys_status(NORM_STATUS|BLOCKED_STATUS|SLEEP_STATUS|IDLE_STATUS);
sys_status(NORM_STATUS|SLEEP_STATUS);
*/
 
group_activate(1);
 
{
struct timespec t;
do {
kern_cli();
ll_gettime(TIME_EXACT,&t);
kern_sti();
} while (t.tv_sec < 6);
}
kern_cli();
sys_status(SCHED_STATUS);
sys_end();
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/sysend.c
0,0 → 1,143
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: sysend.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
System termination:
 
the main task create J1, J2 and wait until 1 sec., then it calls sys_end
and cycles around a task_testcancel
 
J1 is a system task that ends at t=1.5 sec.
 
J2 is another user task that dies at t= 1.8 sec (it will not die!!!)
 
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include <sys/types.h>
#include <pthread.h>
#include <signal.h>
 
#include <kernel/kern.h>
#include <drivers/keyb.h>
 
void *J1(void *arg)
{
while (sys_gettime(NULL) < 1500000);
kern_printf("J1: t = 1.5 sec, ending...");
return 0;
}
 
void uscitaJ2(void *arg)
{
kern_printf("J2: AAAARRRRGGGHHH!!! killed by someone, time = %ld\n",sys_gettime(NULL));
}
 
void *J2(void *arg)
{
task_cleanup_push(uscitaJ2,NULL);
 
while (sys_gettime(NULL) < 1800000);
kern_printf("J1: t = 1.8 sec, ending...");
 
task_cleanup_pop(0);
return 0;
}
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
void uscitamain(void *arg)
{
kern_printf("main: AAAARRRRGGGHHH!!! killed by someone, time = %ld\n",sys_gettime(NULL));
}
 
 
int main(int argc, char **argv)
{
PID err;
 
NRT_TASK_MODEL m1, m2;
 
KEY_EVT emerg;
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
 
nrt_task_default_model(m1);
nrt_task_def_system(m1);
nrt_task_def_level(m1,1);
nrt_task_default_model(m2);
nrt_task_def_level(m2,1);
 
kern_printf("main: creating J1\n");
err = task_create("J1", J1, (TASK_MODEL *)&m1, NULL);
if (err == -1) kern_printf("Error creating J1\n");
task_activate(err);
 
kern_printf("main: creating J2\n");
err = task_create("J2", J2, (TASK_MODEL *)&m2, NULL);
if (err == -1) kern_printf("Error creating J2\n");
task_activate(err);
 
kern_printf("main: waiting 1 sec\n");
while (sys_gettime(NULL) < 1000000);
 
kern_printf("main: sys_end()\n");
 
sys_end();
 
task_cleanup_push(uscitamain,NULL);
 
while (1)
task_testcancel();
 
task_cleanup_pop(0);
 
return 0;
}
/demos/branches/pj/oldexamples/kernel/testw.c
0,0 → 1,42
//#include <string.h>
//#include <stdlib.h>
//#include <cons.h>
 
 
#include <kernel/kern.h>
#include <drivers/keyb.h>
 
int main(int argc, char **argv)
{
KEY_EVT k;
clear();
k.ascii = 0;
while (k.ascii != ESC) {
keyb_getcode(&k,BLOCK);
if (k.ascii == '2') {
keyb_set_map(itaMap);
cprintf("\nItalian Keymap set\n");
}
if (k.ascii == '3') {
keyb_set_map(engMap);
cprintf("\nEnglish Keymap set\n");
}
if (isLeftCtrl(k)) putc_xy(72+0,0,RED,'L');
else putc_xy(72+0,0,RED,' ');
if (isRightCtrl(k)) putc_xy(72+1,0,RED,'R');
else putc_xy(72+1,0,RED,' ');
if (isLeftAlt(k)) putc_xy(72+2,0,GREEN,'L');
else putc_xy(72+2,0,RED,' ');
if (isRightAlt(k)) putc_xy(72+3,0,GREEN,'R');
else putc_xy(72+3,0,RED,' ');
if (isLeftShift(k)) putc_xy(72+4,0,YELLOW,'L');
else putc_xy(72+4,0,RED,' ');
if (isRightShift(k)) putc_xy(72+5,0,YELLOW,'R');
else putc_xy(72+5,0,RED,' ');
cprintf("%d [%c]\t",k.scan,k.ascii);
 
}
sys_end();
return 0;
}
/demos/branches/pj/oldexamples/kernel/test7.c
0,0 → 1,253
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test7.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 7:
 
this is a part of the classic Hartik demo Aster.
 
It checks:
- jet functions
- The EDF level with many task, with almost full bandwidth used
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules//edf.h"
 
int num_aster = 0;
#define ASTER_LIM 60
#define DISPLAY_MAX 15
#define ASTER_MAX 70
#define STAT_Y 9
 
// first numbers for wcet and periods are for a 486/25, the others for a
// celeron 366
 
#define PER_WCET 13000 /*6200*/
#define CLOCK_WCET 1200 /* 100*/
#define ASTER_WCET 1200 /* 100*/
 
#define ASTER_MEAN_PERIOD 64 /*64*/
 
#define END_TEST_TIME 50
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 1000; //10000; // 5000 + rand()%5000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
num_aster--;
return 0;
}
 
TASK aster()
{
PID p;
 
HARD_TASK_MODEL m;
int r;
int x; // adaptive bandwidth...
 
hard_task_default_model(m);
hard_task_def_wcet(m,PER_WCET);
hard_task_def_ctrl_jet(m);
 
x = ASTER_MEAN_PERIOD;
 
srand(7);
while (1) {
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
hard_task_def_arg(m,(void *)((rand() % 7)+1));
hard_task_def_mit(m, (x+r)*1000);
p = task_create("aaa",asteroide,&m,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
}
else {
num_aster++;
printf_xy(62,3,WHITE,"adapt=%3u ",x);//,errno);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"U=%12u",EDF_usedbandwidth(0));
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"U=%12u",EDF_usedbandwidth(0));
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
kern_cli();
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
kern_sti();
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
kern_cli();
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
kern_sti();
i++;
}
}
}
 
int main(int argc, char **argv)
{
PID p1,p2,p3; //,p4,p5,p6;
HARD_TASK_MODEL m;
NRT_TASK_MODEL m_nrt;
 
hard_task_default_model(m);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_mit(m,10000);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
nrt_task_default_model(m_nrt);
nrt_task_def_group(m_nrt,1);
nrt_task_def_ctrl_jet(m_nrt);
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,500000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
 
p3 = task_create("JetControl",jetcontrol,&m_nrt,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
 
group_activate(1);
 
{
struct timespec t;
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
} while (t.tv_sec < END_TEST_TIME);
}
//sys_status(SCHED_STATUS);
kern_printf("ora chiamo sys_end\n");
sys_end();
kern_printf("ho chiamato sys_end\n");
return 0;
}
 
 
 
 
/demos/branches/pj/oldexamples/kernel/test8.c
0,0 → 1,81
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test8.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 8:
 
timer test
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
#define NT 10
 
int main(int argc, char **argv)
{
 
struct timespec t[NT];
int i;
 
kern_printf("Test di correttezza ll_gettime(). dura 1 secondo. ");
 
for (i=0; i<NT; i++) NULL_TIMESPEC(&t[i]);
 
do {
for (i=0; i<NT-1; i++) t[i+1] = t[i];
 
kern_cli();
ll_gettime(TIME_EXACT, &t[0]);
kern_sti();
 
if (TIMESPEC_A_LT_B(&t[0],&t[1])) {
for (i=0; i<NT; i++)
kern_printf("%d %ld\n",i, t[i].tv_nsec);
sys_end();
}
} while (t[0].tv_sec < 1);
 
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/test9.c
0,0 → 1,234
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: test9.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test Number 9:
 
same as Test 7, with 8 TBS tasks running
 
TBS test
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
 
#if !defined(__TEST1__)
THE TEST REQUIRE THE DEFINITION __TEST1__ IN CONFIG.C
#endif
 
struct timespec s_stime[10000];
struct timespec s_send[10000];
TIME s_curr[10000];
PID s_PID[10000];
int useds=0;
int testactive=1;
 
TASK pippo()
{
int i;
struct timespec t;
int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
} while (t.tv_nsec <= 30000000L);
}
 
TASK pippo2()
{
int i;
struct timespec t;
int last = 0;
 
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
} while (t.tv_nsec <= 30000000L);
}
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 15;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < 60) {
load1 = 10000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_endcycle();
 
if (i==7) testactive = 0;
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
}
 
TASK aper(void *a)
{
int i;
int y;
 
int load1,j;
 
char s[2];
 
y = (int) a;
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < 60) {
load1 = 100000; //8000 + rand()%2000;
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
puts_xy(i,y,rand()%15+1,s);
}
 
task_sleep();
 
puts_xy(i,y,WHITE," ");
i++;
}
}
//num_aster--;
}
 
 
int main(int argc, char **argv)
{
struct timespec t;
int i;
NRT_TASK_MODEL m;
HARD_TASK_MODEL m_per;
SOFT_TASK_MODEL m_aper;
PID p1, p2, p3, p4, p5;
int k=1;
 
srand(7);
 
nrt_task_default_model(m);
nrt_task_def_group(m,1);
 
p1 = task_create("pippo", pippo, &m, NULL);
if (p1 == NIL)
{ kern_printf("Can't create pippo task...\n"); sys_end(); }
 
p2 = task_create("pippo2", pippo2, &m, NULL);
if (p2 == NIL)
{ kern_printf("Can't create pippo2 task...\n"); sys_end(); }
 
hard_task_default_model(m_per);
hard_task_def_wcet(m_per,6200);
hard_task_def_mit(m_per,15000);
hard_task_def_group(m_per,1);
p3 = task_create("asteroide", asteroide, &m_per, NULL);
if (p3 == NIL)
{ kern_printf("Can't create asteroide task...\n"); sys_end(); }
 
soft_task_default_model(m_aper);
soft_task_def_wcet(m_aper,62000);
soft_task_def_group(m_aper,1);
soft_task_def_system(m_aper);
soft_task_def_arg(m_aper, 14);
soft_task_def_aperiodic(m_aper);
p4 = task_create("aper", aper, &m_aper, NULL);
if (p4 == NIL)
{ kern_printf("Can't create aper task...%d \n",errno); sys_end(); }
 
soft_task_def_arg(m_aper, 13);
p5 = task_create("aper", aper, &m_aper, NULL);
if (p5 == NIL)
{ kern_printf("Can't create aper(2) task...\n"); sys_end(); }
 
soft_task_def_arg(m_aper, 12);
p5 = task_create("aper", aper, &m_aper, NULL);
if (p5 == NIL)
{ kern_printf("Can't create aper(2) task...\n"); sys_end(); }
 
soft_task_def_arg(m_aper, 11);
p5 = task_create("aper", aper, &m_aper, NULL);
if (p5 == NIL)
{ kern_printf("Can't create aper(2) task...\n"); sys_end(); }
 
// kern_printf("p1=%d p2=%d p3=%d p4=%d\n",p1,p2,p3,p4);
group_activate(1);
 
 
// task_kill(p2);
 
NULL_TIMESPEC(&t);
do {
kern_cli();
ll_gettime(TIME_EXACT, &t);
kern_sti();
 
// task_kill(p3);
} while (t.tv_sec < 1);
testactive = 0;
/*
kern_printf("FINE MAIN time=%d useds=%d\n",ll_gettime(TIME_EXACT,NULL),useds);
for (i=0; i<useds; i++)
kern_printf("%6d: pid %-9d stime %-9d reschedule %-9d avail %-9d\n",i,
s_PID[i], s_stime[i].tv_nsec, s_send[i].tv_nsec, s_curr[i]);
*/
return 0;
}
/demos/branches/pj/oldexamples/kernel/testz.c
0,0 → 1,456
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testz.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Author: Gerardo Lamastra
Giuseppe Lipari
Date: 1/10/96
 
File: Aster.C
Revision: 1.6
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/*
Well, this is only a stupid demo which intend to show many
HARTIK+ capabilities; the application is structured in the followig
way: there is an ASTER task wich randomly creates some ASTEROID tasks
which are displayed into the first window; each task is HARD/PERIODIC
and auto-kills itself when it reaches the window end!
An other couple of tasks, TITLE & PUT give an example of port
communication facility; the server task creates the port, the client
task connect to it and uses the server to accomplish some stuff.
Port can be declared READ/WRITE and can model ONE-TO-ONE communication
or MANY-TO-ONE communication.
Finally a second couple of tasks realizes a communiation through CABs;
each time a key is pressed, the ascii code is posted into the CAB by the
CCC task while the second task, WRITE, displays it on the screen and
perform other silly actions.
Finally a CLOCK task is implemented to test system clock.
Please note that usually the HARTIK+ application is made up of a task
group which interacts among them, while the main() function, which
became a task itself when the kernel is activated, is suspended until
the system is ready to terminate; the MAIN task can also be used to make
other background activities, but it should not be killed; when the
application terminates, the control is passed to MAIN which kills
everybody, shut down the system and can handle other operations using
the services available with the previou operating system (I.E. the DOS).
If you need to manage sudden abort/exception you should install your own
exception handler and raise it through the exc_raise() primitive to
make the system abort safely!
Remember that the exit functions posted through sys_atexit() will be
executed in both cases, to allow clean system shutdown.
*/
 
//#include <string.h>
//#include <stdlib.h>
 
#include <kernel/kern.h>
#include <modules/sem.h>
#include <modules/hartport.h>
#include <modules/cabs.h>
#include <drivers/keyb.h>
#include <string.h>
 
 
#define __VPAGING__
 
 
#ifdef __TRACE__
#undef __TRACE__
#endif
 
/* #define __TRACE__ */
 
#ifdef __TRACE__
#include "sys\log.h"
#endif
 
#include <drivers/keyb.h>
//#include cons.h
#include <drivers/crtwin.h>
 
int num_aster = 0;
#define ASTER_LIM 67
 
CAB cc;
BYTE esc = FALSE;
 
TASK asteroide(void)
{
int i = 1;
int y = rand() % 7 + 1;
while (i < ASTER_LIM) {
puts_xy(i,y,WHITE,"*");
task_endcycle();
 
puts_xy(i,y,WHITE," ");
i++;
}
num_aster--;
return 0;
}
 
DWORD taskCreated = 0;
 
TASK aster(void)
{
PID p;
SOFT_TASK_MODEL m_soft;
int r;
WIN w;
 
win_init(&w,0,0,ASTER_LIM,8);
win_frame(&w,BLACK,WHITE,"Asteroids",2);
 
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,2000);
soft_task_def_ctrl_jet(m_soft);
 
srand(7);
while (1) {
if (num_aster < 5) {
r = (rand() % 50) - 25;
soft_task_def_arg(m_soft,(void *)((rand() % 7)+1));
soft_task_def_period(m_soft,(50 + r)*1000);
p = task_create("aaa",asteroide,(TASK_MODEL *)&m_soft,NULL);
taskCreated++;
task_activate(p);
num_aster++;
}
 
task_endcycle();
}
}
 
TASK clock()
{
WIN w;
int s = 0, m = 0;
 
win_init(&w,68,0,11,2);
win_frame(&w,BLACK,WHITE,"Clk",1);
 
while(1) {
printf_xy(70,1,WHITE,"%2d : %2d",m,s);
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
printf_xy(70,1,WHITE,"%2d : %2d",m,s);
task_endcycle();
}
}
 
TASK title()
{
PORT t;
WIN w;
int i,pos = 77;
char msg[85],tmp[85],ss[2];
BYTE c;
win_init(&w,0,9,79,2);
win_frame(&w,BLACK,WHITE,"Title",2);
 
for (i=0; i < 77; i++) msg[i] = ' ';
msg[77] = 0;
 
t = port_connect("title",1,STREAM,READ);
 
while (1) {
port_receive(t,&c,BLOCK);
ss[0] = c;
ss[1] = 0;
strcat(msg,ss);
puts_xy(1,10,WHITE,msg);
pos++;
if (pos > 77) {
strcpy(tmp,&(msg[1]));
tmp[pos-1] = 0;
pos -= 1;
strcpy(msg,tmp);
}
task_endcycle();
}
}
 
#define STR "..................... Hartik+ ....................."\
" Guarantees hard tasks "\
" Includes soft periodic tasks "\
"TB server for decrementing the aperiodic response time "\
"SRP for both hard & soft aperiodic tasks "\
"Portability toward other compilers/system "\
"Support for different C compiler: Watcom C 16 bit & 32 bit"\
" -- GNU C (32 bit) -- Borland C (16 bit) -- MS C (16 bit)"\
" "\
"Programmers : Gerardo Lamastra (lamastra@sssup2.sssup.it) "\
" Giuseppe Lipari (lipari@sssup2.sssup.it) "\
"Alpha AXP PCI-33 porting by Antonino Casile "\
"(casile@sssup1.sssup.it) "\
"Research coordinator: Giorgio Buttazzo (giorgio@sssup1.sssup.it)"\
" "\
" "\
" "
 
static char GreetMsg[1600];
 
TASK put(void)
{
PORT p;
 
strcpy(GreetMsg,STR);
p = port_create("title",strlen(GreetMsg),1,STREAM,WRITE);
while(1) {
port_send(p,GreetMsg,BLOCK);
task_endcycle();
}
}
 
TASK ccc(void)
{
WIN w;
char *m;
 
win_init(&w,68,3,10,3);
win_frame(&w,BLACK,WHITE,"CCC",2);
puts_xy(70,4,WHITE,"Cab");
 
while(1) {
m = cab_getmes(cc);
puts_xy(72,5,WHITE,m);
cab_unget(cc,m);
task_endcycle();
}
}
TASK write_keyb()
{
BYTE c;
char *msg;
 
while (1) {
c = keyb_getchar();
if (c == ESC) {
esc = TRUE;
task_sleep();
}
else {
#ifdef __VPAGING__
if (c == 's') {
if (get_visual_page() == 0) set_visual_page(1);
else if (get_visual_page() == 1) set_visual_page(0);
}
#endif
msg = cab_reserve(cc);
msg[0] = c;
msg[1] = 0;
cab_putmes(cc,msg);
}
}
}
 
#define DELTA 200000.0
double carico(double rif,BYTE init)
{
double i;
DWORD t1 = 0,t2 = 1000;
double u;
 
i = 0.0;
do {
i += 1;
} while (i <= DELTA);
 
u = i / ((double) (t2 - t1));
 
if (init) return u;
else return (1.0 - u/rif);
}
 
void my_end(KEY_EVT *e)
{
set_active_page(0);
set_visual_page(0);
cprintf("Ctrl-Brk pressed!\n");
sys_end();
}
 
void res(void *arg)
{
sys_status(CLOCK_STATUS|SCHED_STATUS);
}
 
int main(int argc, char **argv)
{
PID p1,p2,p3,p4,p5,p6;
 
HARD_TASK_MODEL m_per;
SOFT_TASK_MODEL m_soft;
NRT_TASK_MODEL m_nrt;
 
KEY_EVT emerg;
// double rif;
struct timespec t;
#ifdef __TRACE__
LOG_INFO li = BASE_LOG;
log_set_limit(li,9000);
log_set_name(li,"aster.hrt");
#endif
 
sys_atrunlevel(res, NULL, RUNLEVEL_BEFORE_EXIT);
 
#ifdef __TRACE__
log_init(&li);
#endif
 
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,my_end);
 
#ifdef __VPAGING__
set_active_page(1);
set_visual_page(1);
#endif
CRSR_OFF();
clear();
puts_xy(0,20,WHITE,"Press ESC to exit demo.");
cc = cab_create("Cab",2,2);
 
soft_task_default_model(m_soft);
soft_task_def_period(m_soft,500000);
soft_task_def_met(m_soft,1000);
soft_task_def_group(m_soft, 1);
p1 = task_create("Aster",aster,&m_soft,NULL);
if (p1 == -1) {
perror("Aster.C(main): Could not create task <aster>");
sys_abort(-1);
}
 
hard_task_default_model(m_per);
hard_task_def_mit(m_per,500000);
hard_task_def_wcet(m_per,1000);
hard_task_def_group(m_per, 1);
p2 = task_create("Clock",clock,&m_per,NULL);
if (p2 == -1) {
perror("Aster.C(main): Could not create task <Clock>");
sys_abort(-1);
}
 
soft_task_def_period(m_soft, 50000);
p3 = task_create("Title",title,&m_soft, NULL);
if (p3 == -1) {
perror("Aster.C(main): Could not create task <Title>");
sys_abort(-1);
}
 
soft_task_def_period(m_soft, 1000000);
p4 = task_create("Put",put,&m_soft, NULL);
if (p4 == -1) {
perror("Aster.C(main): Could not create task <Put>");
sys_abort(-1);
}
 
nrt_task_default_model(m_nrt);
nrt_task_def_group(m_nrt, 1);
p5 = task_create("Write",write_keyb,&m_nrt,NULL);
if (p5 == -1) {
perror("Aster.C(main): Could not create task <Write>");
sys_abort(-1);
}
 
hard_task_def_mit(m_per, 50000);
p6 = task_create("CabTask",ccc,&m_per,NULL);
if (p6 == -1) {
perror("Aster.C(main): Could not create task <CabTask>\n");
sys_abort(-1);
}
#ifdef __TRACE__
log_loop();
#endif
/*
task_activate(p1);
task_activate(p2);
task_activate(p3);
task_activate(p4);
task_activate(p5);
task_activate(p6);
*/
group_activate(1);
 
while (!esc) {
kern_cli();
ll_gettime(TIME_EXACT,&t);
kern_sti();
 
printf_xy(0,21,WHITE,"Clock : %-9ds %-9dns",(int)t.tv_sec, (int)t.tv_nsec);
}
 
#ifdef __TRACE__
log_fix();
#endif
group_kill(1);
clear();
CRSR_STD();
#ifdef __VPAGING__
set_active_page(0);
set_visual_page(0);
#endif
cprintf("System closed\n");
sys_end();
/*
sys_status(NORM_STATUS|BLOCKED_STATUS|SLEEP_STATUS|IDLE_STATUS);
sys_status(NORM_STATUS|SLEEP_STATUS);
*/
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/testss.c
0,0 → 1,547
/*
* Project: HARTIK (HA-rd R-eal TI-me K-ernel)
*
* Coordinators: Giorgio Buttazzo <giorgio@sssup.it>
* Gerardo Lamastra <gerardo@sssup.it>
*
* Authors : Paolo Gai <pj@hartik.sssup.it>
* (see authors.txt for full list of hartik's authors)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://hartik.sssup.it
*/
 
/**
------------
CVS : $Id: testss.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:48 $
------------
 
Test for Sporadic Server (ss):
 
this is a part of the classic Hartik demo Aster.
 
it is based on test 17 (h), and the JobControl Task uses an
SOFT_TASK_MODEL served by a sporadic server
There are two "dummy" tasks that increment a counter and print
the value. One uses a SOFT_TASK_MODEL served by sporadic server,
the other uses a NRT_TASK_MODEL handled by RR module.
 
**/
 
/*
* Copyright (C) 2000 Paolo Gai
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/cbs.h"
#include "modules/ss.h"
#include "drivers/keyb.h"
 
int num_aster = 0;
#define EDF_LEV 0
#define CBS_LEV 1
#define SS_LEV 2
 
#define ASTER_LIM 60
#define DISPLAY_MAX 8
#define ASTER_MAX 70
#define STAT_Y 9
 
#define PER_MAX 5
#define APER_MAX 8
 
#define PER_WCET 16000
#define APER_WCET 22000
#define JET_WCET 20000
 
#define APER_REP 22000
 
PID aper_table[APER_MAX];
 
mutex_t m1;
 
 
#define PIMUTEX
//#define PCMUTEX
//#define NPPMUTEX
//#define NOPMUTEX
 
#define LONGSC
 
#ifdef LONGSC
#define SOFT_MET 12000 /* 12000 */
#define CLOCK_WCET 300 /* 300*/
#define ASTER_WCET 300 /* 300*/
#else
#define SOFT_MET 5000 /* 4500 */
#define CLOCK_WCET 2000 /* 200*/
#define ASTER_WCET 2000 /* 200*/
#endif
 
PID p1,p2,p3,p4,p5;
 
TASK asteroide(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = 10000; //8000 + rand()%2000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
#ifdef LONGSC
mutex_unlock(&m1);
#endif
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
//num_aster--;
}
 
TASK aper_asteroid(void *a)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
int c;
 
char s[2];
 
c = (int)a;
s[0] = '*'; s[1] = 0;
 
for (;;) {
i = 1;
while (i < ASTER_LIM) {
load1 = APER_REP; //8000 + rand()%2000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
s[0] = c;
#ifndef LONGSC
mutex_unlock(&m1);
#endif
mutex_lock(&m1);
puts_xy(i,y,rand()%15+1,s);
mutex_unlock(&m1);
 
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
}
 
TASK soft_aster(void)
{
int i;
int y = rand() % 7 + 1;
 
int load1,j;
 
char s[2];
 
s[0] = '*'; s[1] = 0;
 
/*for (;;)*/ {
i = 1;
while (i < ASTER_LIM) {
load1 = 1000 + rand()%9000;
#ifdef LONGSC
mutex_lock(&m1);
#endif
for (j=0; j<load1; j++) {
s[0] = '*' + rand() % 100;
#ifndef LONGSC
mutex_lock(&m1);
#endif
puts_xy(i,y,rand()%15+1,s);
#ifndef LONGSC
mutex_unlock(&m1);
#endif
}
s[0] = 1;
#ifndef LONGSC
mutex_lock(&m1);
#endif
//mutex_lock(&m1);
puts_xy(i,y,rand()%15+1,s);
mutex_unlock(&m1);
 
task_activate(aper_table[rand()%APER_MAX]);
task_endcycle();
 
mutex_lock(&m1);
puts_xy(i,y,WHITE," ");
mutex_unlock(&m1);
i++;
}
}
num_aster--;
return 0;
}
 
TASK aster()
{
PID p;
 
// HARD_TASK_MODEL m;
SOFT_TASK_MODEL m_soft;
int r;
int x; // adaptive bandwidth...
 
srand(7);
 
/* periodic_task_default_model(m,0,PER_WCET);
periodic_task_def_ctrl_jet(m);
for (x=0; x<PER_MAX; x++) {
r = (rand() % 200);
periodic_task_def_period(m, (64+r)*1000);
p = task_create("per",asteroide,&m,NULL);
if (p!=-1) task_activate(p);
}
*/
soft_task_default_model(m_soft);
soft_task_def_met(m_soft,SOFT_MET);
soft_task_def_ctrl_jet(m_soft);
// soft_task_def_aperiodic(m_soft);
 
x = 128; //64;
 
while (1) {
/* {
PID p;
int x;
p = level_table[0]->level_scheduler(0);
printf_xy(1,8,WHITE," ");
 
x = 0;
do {
printf_xy(3*x+1,8,WHITE,"%3d",p);
p = proc_table[p].next;
x++;
} while (p != NIL);
}
*/
if (num_aster < ASTER_MAX) {
r = (rand() % 200);
 
soft_task_def_period(m_soft, (x+r)*1000);
p = task_create("aaa",soft_aster,&m_soft,NULL);
if (p == -1)
{
if (x < 500 && errno != ENO_AVAIL_TASK) x += 1;
mutex_lock(&m1);
printf_xy(62,3,WHITE,"adapt=%3u err=%d",freedesc,errno);
mutex_unlock(&m1);
}
else {
num_aster++;
mutex_lock(&m1);
printf_xy(62,3,WHITE,"adapt=%3u ",x);
mutex_unlock(&m1);
task_activate(p);
x /= 2;
if (x<50) x = 50;
}
}
task_endcycle();
}
}
 
TASK clock()
{
int s = 0, m = 0;
 
while(1) {
mutex_lock(&m1);
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(EDF_LEV));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(CBS_LEV));
printf_xy(62,5,WHITE,"CSss=%6d",SS_availCs(SS_LEV));
mutex_unlock(&m1);
 
task_endcycle();
 
if (++s > 59) {
s = 0;
m++;
}
mutex_lock(&m1);
printf_xy(62,1,WHITE,"%2d:%2d ast=%d",m,s, num_aster);
printf_xy(62,2,WHITE,"Uedf=%12u",EDF_usedbandwidth(EDF_LEV));
printf_xy(62,4,WHITE,"Ucbs=%12u",CBS_usedbandwidth(CBS_LEV));
printf_xy(62,5,WHITE,"CSss=%6d",SS_availCs(SS_LEV));
mutex_unlock(&m1);
task_endcycle();
}
}
 
 
 
/* we consider the first ASTER_MAX + 2 tasks from the PID 2
and plot on the screen the elapsed times... */
TASK jetcontrol()
{
int i; /* a counter */
TIME sum, max, curr, last[5];
int nact;
int j; /* the elements set by jet_gettable */
PID p;
 
 
mutex_lock(&m1);
printf_xy(0,STAT_Y,WHITE,"PID ³ Mean T.³ Max T. ³ N.A. ³ Curr. ³ Last1 ³ Last2 ³ Last3 ³ Last4 ³ Last5");
mutex_unlock(&m1);
 
for (;;) {
for (i=0,p=0; i<DISPLAY_MAX+5 && p<MAX_PROC; p++) {
if (jet_getstat(p, &sum, &max, &nact, &curr) == -1 /*||
(proc_table[p].pclass & 0xFF00) == APERIODIC_PCLASS ||
(proc_table[p].pclass & 0xFF00) == PERIODIC_PCLASS*/ ) continue;
 
for (j=0; j<5; j++) last[j] = 0;
jet_gettable(p, &last[0], 5);
mutex_lock(&m1);
if (proc_table[p].task_level == 1)
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, nact, (int)CBS_get_nact(2,p), (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
// p, sum/(nact==0 ? 1 : nact), max, proc_table[p].avail_time, proc_table[p].status, proc_table[p].shadow, proc_table[p].timespec_priority.tv_sec,proc_table[p].timespec_priority.tv_nsec/1000 , CBS_get_nact(2,p), last[4]);
else
printf_xy(0,STAT_Y+i+1,WHITE,"%-3d ³ %-6d ³ %-6d ³ %-4d ³ %-7d ³ %-5d ³ %-5d ³ %-5d ³ %-5d ³ %-5d",
p, (int)sum/(nact==0 ? 1 : nact), (int)max, (int)nact, (int)curr, (int)last[0], (int)last[1], (int)last[2], (int)last[3], (int)last[4]);
// p, sum/(nact==0 ? 1 : nact), max, nact, proc_table[p].status, proc_table[p].shadow, proc_table[p].timespec_priority.tv_sec,proc_table[p].timespec_priority.tv_nsec/1000 , last[3], last[4]);
mutex_unlock(&m1);
i++;
task_activate(p3);
task_endcycle();
}
}
}
 
void fine(KEY_EVT *e)
{
sys_end();
}
 
void mydummyaper(void) {
int i=0;
while(1) {
mutex_lock(&m1);
printf_xy(1,24,RED,"dummyAPER pid=%d: %d",p4,i++);
mutex_unlock(&m1);
task_activate(p4);
task_endcycle();
}
}
 
void mydummynrt(void) {
int i=0;
while(1) {
mutex_lock(&m1);
printf_xy(40,24,RED,"dummyNRT pid=%d: %d",p5,i++);
mutex_unlock(&m1);
}
}
 
int main(int argc, char **argv)
{
// PID p1,p2,p5;
HARD_TASK_MODEL m;
NRT_TASK_MODEL m_nrt;
SOFT_TASK_MODEL m_aper;
SOFT_TASK_MODEL m_soft;
struct timespec fineprg;
 
#ifdef PIMUTEX
PI_mutexattr_t a;
#endif
 
#ifdef PCMUTEX
PC_mutexattr_t a;
#endif
 
#ifdef NPPMUTEX
NPP_mutexattr_t a;
#endif
 
#ifdef NOPMUTEX
NOP_mutexattr_t a;
#endif
 
 
KEY_EVT emerg;
//keyb_set_map(itaMap);
emerg.ascii = 'x';
emerg.scan = KEY_X;
emerg.flag = ALTL_BIT;
keyb_hook(emerg,fine);
 
hard_task_default_model(m);
hard_task_def_mit(m,100000);
hard_task_def_wcet(m,ASTER_WCET);
hard_task_def_group(m,1);
hard_task_def_ctrl_jet(m);
 
nrt_task_default_model(m_nrt);
nrt_task_def_group(m_nrt,1);
nrt_task_def_ctrl_jet(m_nrt);
 
 
soft_task_default_model(m_aper);
soft_task_def_group(m_aper,1);
soft_task_def_ctrl_jet(m_aper);
soft_task_def_aperiodic(m_aper);
 
soft_task_default_model(m_soft);
soft_task_def_period(m_soft,10000);
soft_task_def_met(m_soft,JET_WCET);
soft_task_def_group(m_soft,1);
soft_task_def_ctrl_jet(m_soft);
soft_task_def_aperiodic(m_soft);
 
 
p1 = task_create("Aster",aster,&m,NULL);
if (p1 == -1) {
perror("test7.c(main): Could not create task <aster> ...");
sys_end();
l1_exit(-1);
}
 
hard_task_def_mit(m,50000);
hard_task_def_wcet(m,CLOCK_WCET);
p2 = task_create("Clock",clock,&m,NULL);
if (p2 == -1) {
perror("test7.c(main): Could not create task <Clock> ...");
sys_end();
l1_exit(-1);
}
 
// p3 = task_create("JetControl",jetcontrol,&m_nrt,NULL);
p3 = task_create("JetControl",jetcontrol,&m_aper,NULL);
if (p3 == -1) {
perror("test7.c(main): Could not create task <JetControl> ...");
sys_end();
l1_exit(-1);
}
 
p4 = task_create("MyDummyAper",(void *(*)(void*))mydummyaper,&m_aper,NULL);
if (p4 == -1) {
perror("Could not create task <MyDummyAper> ...");
sys_end();
l1_exit(-1);
}
 
p5 = task_create("MyDummyNRT",(void *(*)(void*))mydummynrt,&m_nrt,NULL);
if (p5 == -1) {
perror("Could not create task <MyDummyNRT> ...");
sys_end();
l1_exit(-1);
}
/*
aperiodic_task_default_model(m_aper,APER_WCET);
aperiodic_task_def_ctrl_jet(m_aper);
aperiodic_task_def_system(m_aper);
 
for (i=0; i<APER_MAX; i++) {
aperiodic_task_def_level(m_aper, i/4 + 2);
aperiodic_task_def_arg(m_aper, (i/4 ? 'Û' : '±'));
aper_table[i] = task_create("aper",aper_asteroid,&m_aper,NULL);
if (aper_table[i] == -1) {
perror("test7.c(main): Could not create task <aper> ...");
sys_end();
l1_exit(-1);
}
}
*/
// task_nopreempt();
 
 
#ifdef PIMUTEX
PI_mutexattr_default(a);
#endif
 
#ifdef PCMUTEX
PC_mutexattr_default(a);
#endif
 
#ifdef NPPMUTEX
NPP_mutexattr_default(a);
#endif
 
#ifdef NOPMUTEX
NOP_mutexattr_default(a);
#endif
 
mutex_init(&m1, &a);
 
fineprg.tv_sec = 1800;
fineprg.tv_nsec = 0;
kern_event_post(&fineprg,(void (*)(void *))fine,NULL);
group_activate(1);
return 0;
}
 
/demos/branches/pj/oldexamples/kernel/makefile
0,0 → 1,97
#
#
#
 
ifndef BASE
BASE=../../..
endif
include $(BASE)/config/config.mk
 
PROGS= test4 test5 test6 test7 test8 testa testc testd teste testf testg
PROGS+= testh testi testj testk testl testm testn testo testp
PROGS+= testq testr tests testu testw testz testss
PROGS+= ptest1 ptest2 ptest3 ptest4 ptest5 ptest6 sysend
PROGS+= perf1 perf2 perf3 perf4
 
include $(BASE)/config/example.mk
 
test4:
make -f $(SUBMAKE) APP=test4 INIT=init1.o OTHEROBJS=
test5:
make -f $(SUBMAKE) APP=test5 INIT=init1.o OTHEROBJS=
test6:
make -f $(SUBMAKE) APP=test6 INIT=init2.o OTHEROBJS=
test7:
make -f $(SUBMAKE) APP=test7 INIT=init2.o OTHEROBJS=
test8:
make -f $(SUBMAKE) APP=test8 INIT=init2.o OTHEROBJS=
testa:
make -f $(SUBMAKE) APP=testa INIT=init3.o OTHEROBJS=
testc:
make -f $(SUBMAKE) APP=testc INIT=init4.o OTHEROBJS=
testd:
make -f $(SUBMAKE) APP=testd INIT=init5.o OTHEROBJS=
teste:
make -f $(SUBMAKE) APP=teste INIT=init6.o OTHEROBJS=
testf:
make -f $(SUBMAKE) APP=testf INIT=h3pi.o OTHEROBJS=
testg:
make -f $(SUBMAKE) APP=testg INIT=initg.o OTHEROBJS=
testh:
make -f $(SUBMAKE) APP=testh INIT=h3pi.o OTHEROBJS=
testi:
make -f $(SUBMAKE) APP=testi INIT=h3pi.o OTHEROBJS=
testj:
make -f $(SUBMAKE) APP=testj INIT=h3pi.o OTHEROBJS=
testk:
make -f $(SUBMAKE) APP=testk INIT=h3pi.o OTHEROBJS=
testl:
make -f $(SUBMAKE) APP=testl INIT=h3pips.o OTHEROBJS=
testm:
make -f $(SUBMAKE) APP=testm INIT=rm1.o OTHEROBJS=
testn:
make -f $(SUBMAKE) APP=testn INIT=hartik3.o OTHEROBJS=
testo:
make -f $(SUBMAKE) APP=testo INIT=hartik3.o OTHEROBJS=
testp:
make -f $(SUBMAKE) APP=testp INIT=hartik3.o OTHEROBJS=
testq:
make -f $(SUBMAKE) APP=testq INIT=h3pips.o OTHEROBJS=
testr:
make -f $(SUBMAKE) APP=testr INIT=h3pips.o OTHEROBJS=
tests:
make -f $(SUBMAKE) APP=tests INIT=hartik3.o OTHEROBJS=
testu:
make -f $(SUBMAKE) APP=testu INIT=h3pips.o OTHEROBJS=
testw:
make -f $(SUBMAKE) APP=testw INIT=pinit.o OTHEROBJS=
testz:
make -f $(SUBMAKE) APP=testz INIT=hartik3.o OTHEROBJS=
testss:
make -f $(SUBMAKE) APP=testss INIT=h3piss.o OTHEROBJS=
 
 
ptest1:
make -f $(SUBMAKE) APP=ptest1 INIT=pinit.o OTHEROBJS=
ptest2:
make -f $(SUBMAKE) APP=ptest2 INIT=pinit.o OTHEROBJS=
ptest3:
make -f $(SUBMAKE) APP=ptest3 INIT=pinit.o OTHEROBJS=
ptest4:
make -f $(SUBMAKE) APP=ptest4 INIT=pinit.o OTHEROBJS=
ptest5:
make -f $(SUBMAKE) APP=ptest5 INIT=pinit.o OTHEROBJS=
ptest6:
make -f $(SUBMAKE) APP=ptest6 INIT=pinit.o OTHEROBJS=
sysend:
make -f $(SUBMAKE) APP=sysend INIT=init1.o OTHEROBJS=
 
perf1:
make -f $(SUBMAKE) APP=perf1 INIT= OTHEROBJS=
perf2:
make -f $(SUBMAKE) APP=perf2 INIT=init5.o OTHEROBJS=
perf3:
make -f $(SUBMAKE) APP=perf3 INIT=init5.o OTHEROBJS=
perf4:
make -f $(SUBMAKE) APP=perf4 INIT= OTHEROBJS=
 
/demos/branches/pj/oldexamples/stdio/initfs.c
File deleted
/demos/branches/pj/oldexamples/stdio/common.c
112,6 → 112,7
extern void dump_nop_table(void);
//dump_sem_table();
//dump_nop_table();
//sys_status(SCHED_STATUS);
cprintf("CTRL-C pressed!\n");
sys_end();
}
/demos/branches/pj/oldexamples/stdio/makefile
13,16 → 13,16
include $(BASE)/config/example.mk
 
test0:
make -f $(SUBMAKE) BASE=$(BASE) APP=test0 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=test0 INIT=initfs.o OTHEROBJS=common.o
 
test1:
make -f $(SUBMAKE) BASE=$(BASE) APP=test1 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=test1 INIT=initfs.o OTHEROBJS=common.o
 
test2:
make -f $(SUBMAKE) BASE=$(BASE) APP=test2 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=test2 INIT=initfs.o OTHEROBJS=common.o
 
test3:
make -f $(SUBMAKE) BASE=$(BASE) APP=test3 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=test3 INIT=initfs.o OTHEROBJS=common.o
 
test4:
make -f $(SUBMAKE) BASE=$(BASE) APP=test4 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=test4 INIT=initfs.o OTHEROBJS=common.o
/demos/branches/pj/oldexamples/fs/initfs.c
File deleted
/demos/branches/pj/oldexamples/fs/common.c
112,6 → 112,7
extern void dump_nop_table(void);
//dump_sem_table();
//dump_nop_table();
//sys_status(SCHED_STATUS);
cprintf("CTRL-C pressed!\n");
sys_end();
}
/demos/branches/pj/oldexamples/fs/makefile
21,25 → 21,25
#
 
hello:
make -f $(SUBMAKE) BASE=$(BASE) APP=hello INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=hello INIT=initfs.o OTHEROBJS=common.o
 
test0:
make -f $(SUBMAKE) BASE=$(BASE) APP=test0 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=test0 INIT=initfs.o OTHEROBJS=common.o
 
test1:
make -f $(SUBMAKE) BASE=$(BASE) APP=test1 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=test1 INIT=initfs.o OTHEROBJS=common.o
 
testu:
make -f $(SUBMAKE) BASE=$(BASE) APP=testu INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=testu INIT=initfs.o OTHEROBJS=common.o
 
testw0:
make -f $(SUBMAKE) BASE=$(BASE) APP=testw0 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=testw0 INIT=initfs.o OTHEROBJS=common.o
 
testw1:
make -f $(SUBMAKE) BASE=$(BASE) APP=testw1 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=testw1 INIT=initfs.o OTHEROBJS=common.o
 
tree1:
make -f $(SUBMAKE) BASE=$(BASE) APP=tree1 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=tree1 INIT=initfs.o OTHEROBJS=common.o
 
tree2:
make -f $(SUBMAKE) BASE=$(BASE) APP=tree2 INIT=initfs.o OTHEROBJS=common.o
make -f $(SUBMAKE) APP=tree2 INIT=initfs.o OTHEROBJS=common.o
/demos/branches/pj/oldexamples/mpeg/initfs.c
File deleted
/demos/branches/pj/oldexamples/mpeg/mplay.c
35,11 → 35,11
*/
 
/*
* CVS : $Id: mplay.c,v 1.2 2003-01-07 17:10:17 pj Exp $
* CVS : $Id: mplay.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
*
* File: $File$
* Revision: $Revision: 1.2 $
* Last update: $Date: 2003-01-07 17:10:17 $
* Revision: $Revision: 1.1.1.1 $
* Last update: $Date: 2002-09-02 09:37:48 $
*/
 
#include <ll/sys/types.h>
198,6 → 198,10
cprintf("Total time: %lu\n", t);*/
//cprintf("Frame rate: %lu\n", (n * 1000) / ttt);
/* cprintf("Max frame time: %lu\n", mft);*/
/*
sys_status(READY_RT_STATUS | READY_NRT_STATUS | BLOCKED_STATUS |
IDLE_STATUS | SLEEP_STATUS | EXEC_STATUS);
*/
}
 
#define MAINSLEEP 20000
/demos/branches/pj/oldexamples/mpeg/mplay2.c
35,11 → 35,11
*/
 
/*
* CVS : $Id: mplay2.c,v 1.2 2003-01-07 17:10:17 pj Exp $
* CVS : $Id: mplay2.c,v 1.1.1.1 2002-09-02 09:37:48 pj Exp $
*
* File: $File$
* Revision: $Revision: 1.2 $
* Last update: $Date: 2003-01-07 17:10:17 $
* Revision: $Revision: 1.1.1.1 $
* Last update: $Date: 2002-09-02 09:37:48 $
*/
 
#include <ll/sys/types.h>
96,6 → 96,7
grx_close();
#endif
cprintf("CTRL-C pressed!\n");
//sys_status(SCHED_STATUS);
#ifndef NOSHOW
grx_modeinfo();
#endif
/demos/branches/pj/oldexamples/block/idetest0.c
0,0 → 1,15
/*
*
*
*
*/
 
#include <fs/bdev.h>
 
#include "common.h"
 
int main(int argc,char *argv[])
{
showmessage("Have ide devices been found?\n");
return 0;
}
/demos/branches/pj/oldexamples/block/idetest1.c
0,0 → 1,20
/*
*
*
*
*/
 
#include <fs/bdev.h>
 
#include "common.h"
 
int main(int argc,char *argv[])
{
 
showmessage("This test try to identify the partions of all hard disks\n");
bdev_dump_names();
 
waitend();
return 0;
}
/demos/branches/pj/oldexamples/block/idetest2.c
0,0 → 1,77
/*
*
*
*
*/
 
#include <ll/i386/cons.h>
#include <drivers/keyb.h>
 
#include <fs/bdevinit.h>
#include <fs/bdev.h>
 
#include <string.h>
 
#include "common.h"
 
#define DISKDEVICE "ide/hda1"
 
__uint8_t buffer[2048] __attribute__ ((aligned (4)));
__dev_t dev;
 
extern char *ide_error_msg[];
 
int main(int argc,char *argv[])
{
__blkcnt_t blk;
int res;
int c;
 
showmessage("This test try to read some blocks from first hard disk\n");
 
dev=bdev_find_byname(DISKDEVICE);
if (dev<0) {
cprintf("Can't find device to operate with\n");
return -1;
}
cprintf("Using device %s (dev=%04x)\n",DISKDEVICE,dev);
 
blk=0;
for (;;) {
cprintf("Commands: x-exit r-read n-next block p-prev block\n");
c = keyb_getchar();
switch(c) {
case 'x':
return 0;
 
case 'n':
blk++;
cprintf("Block %li\n",(long)blk);
break;
 
case 'p':
if (blk>=0) blk--;
cprintf("Block %li\n",(long)blk);
break;
case 'r':
cprintf("Reading block %li...\n",(long)blk);
memset(buffer,0xff,sizeof(buffer));
res=bdev_read(dev,blk,buffer);
cprintf("Result %i\n",res);
//cprintf("Soft reset done %i\n",ide[0].errors);
if (res!=0) {
cprintf(" %s\n",(char*)ide_error_msg[-res]);
}
debug_dump_buffer(buffer,64);
break;
 
default:
cprintf("Invalid command!\n");
break;
}
cprintf("\n");
}
return 0;
}
/demos/branches/pj/oldexamples/block/idelin.c
0,0 → 1,71
/*
*
*
*
*/
 
#include <ll/i386/cons.h>
#include <kernel/func.h>
 
#include <fs/bdevinit.h>
#include <fs/bdev.h>
 
#include <stdlib.h>
#include <string.h>
 
#include "common.h"
 
#define DISKDEVICE "ide/hda"
 
#define TEST_MB 16
 
#define NUMBLOCK (TEST_MB*1024l*1024l/512l)
 
__dev_t dev;
 
__uint8_t buffer[2048];
 
int main(int argc,char *argv[])
{
__blkcnt_t blk;
int res;
int errors;
TIME sttime,etime;
 
showmessage("\n"
"This test read data from first hard disk to test\n"
"disk throughtput.\n"
"Remeber that the reads are made block by block so\n"
"don't worry if you see a low throughtput.\n"
);
dev=bdev_find_byname(DISKDEVICE);
if (dev<0) {
cprintf("\nCan't find device to operate with\n");
return -1;
}
cprintf("\nUsing device %s (dev=%04x)\n",DISKDEVICE,dev);
 
cprintf("Please wait (reading %i MB linearly?!?)...",TEST_MB);
 
sttime=sys_gettime(NULL);
errors=0;
for (blk=0;blk<NUMBLOCK;blk++) {
res=bdev_read(dev,blk,buffer);
//res=bdev_seek(dev,blk);
if (res!=0) errors++;
}
etime=sys_gettime(NULL)-sttime;
 
cprintf("\nDone\n\n");
cprintf("elapse time : %li sec %li msec\n",
etime/1000000l,
(etime/1000l)%1000l);
cprintf("throughtput : %6.3f MB/s\n",
NUMBLOCK*512.0/1024.0/1024.0/etime*1000000.0);
//cprintf("soft reset made: %i\n",ide[0].errors);
cprintf("errors : %i\n",errors);
cprintf("\n");
return 0;
}
/demos/branches/pj/oldexamples/block/idetest3.c
0,0 → 1,66
/*
*
*
*
*/
 
#include <ll/i386/cons.h>
#include <drivers/keyb.h>
 
#include <fs/bdevinit.h>
#include <fs/bdev.h>
 
#include <string.h>
 
#include "common.h"
 
#define DISKDEVICE "ide/hda1"
#define BLOCKNUMBER 58549
 
__uint8_t buffer[2048] __attribute__ ((aligned (4)));
 
extern char *ide_error_msg[];
 
int main(int argc,char *argv[])
{
__dev_t dev;
__blkcnt_t blk;
int res;
// int c;
 
showmessage("This test tries to read a block from the first hard disk\n"
"and then it tries to write it to disk\n"
"Press [CTRL-C] to abort...");
dev=bdev_find_byname(DISKDEVICE);
if ((int)dev<0) {
cprintf("Can't find device to operate with\n");
cprintf("%s not present!\n",DISKDEVICE);
return -1;
}
cprintf("Using device %s (dev=%04x)\n",DISKDEVICE,dev);
blk=BLOCKNUMBER;
 
cprintf("Reading block %li...\n",(long)blk);
memset(buffer,0xff,sizeof(buffer));
res=bdev_read(dev,blk,buffer);
cprintf("Result %i\n",res);
//cprintf("Soft reset done %i\n",ide[0].errors);
if (res!=0) {
cprintf(" %s\n",(char*)ide_error_msg[-res]);
return -1;
}
debug_dump_buffer(buffer,64);
 
cprintf("Writing block %li...\n",(long)blk);
res=bdev_write(dev,blk,buffer);
cprintf("Result %i\n",res);
//cprintf("Soft reset done %i\n",ide[0].errors);
if (res!=0) {
cprintf(" %s\n",(char*)ide_error_msg[-res]);
}
 
waitend();
return 0;
}
/demos/branches/pj/oldexamples/block/idetx430.c
0,0 → 1,79
/*
*
*
*
*/
 
#include <ll/ll.h>
#include <ll/stdlib.h>
#include <kernel/func.h>
#include <drivers/keyb.h>
 
#include <fs/bdevinit.h>
#include <fs/util.h>
#include <fs/bdev.h>
 
#include "../ide.h"
#include "../debug.h"
 
#define DISKDEVICE "ide/hda1"
 
#define NUMBLOCK 1000
 
__dev_t dev;
 
int __bdev_sub_init(void)
{
BDEV_PARMS bdev=BASE_BDEV;
bdev_def_showinfo(bdev,TRUE);
bdev_init(&bdev);
dev=bdev_find_byname(DISKDEVICE);
if (dev<0) {
cprintf("Can't find device to operate with\n");
sys_end();
return -1;
}
cprintf("Using device %s (dev=%04x)\n",DISKDEVICE,dev);
return 0;
}
 
int __fs_sub_init(void)
{
return 0;
}
 
__uint8_t buffer[2048];
 
int main(int argc,char *argv[])
{
__blkcnt_t blk;
int res;
int c,i,errors;
TIME sttime,etime;
cprintf("Press a key to continue\n\n");
c=keyb_getchar();
cprintf("Please wait (reading 100 blocks for 10 times)...");
 
sttime=sys_gettime(NULL);
errors=0;
for (blk=0;blk<100;blk++) {
for (i=0;i<10;i++) {
res=bdev_read(dev,blk,buffer);
if (res!=0) errors++;
}
}
etime=sys_gettime(NULL)-sttime;
 
cprintf("\nDone\n\n");
cprintf("elapse time : %li sec %li msec\n",
etime/1000000l,
(etime/1000l)%1000l);
cprintf("soft reset made: %i\n",ide[0].errors);
cprintf("errors : %i\n",errors);
cprintf("\n");
return 0;
}
/demos/branches/pj/oldexamples/block/idernd.c
0,0 → 1,68
/*
*
*
*
*/
 
#include <ll/i386/cons.h>
#include <kernel/func.h>
 
#include <fs/bdevinit.h>
#include <fs/bdev.h>
 
#include <stdlib.h>
#include <string.h>
 
#include "common.h"
 
#define DISKDEVICE "ide/hda1"
 
#define NUMBLOCK 1000
 
__dev_t dev;
__uint8_t buffer[2048];
 
int main(int argc,char *argv[])
{
__blkcnt_t blk;
int res;
int errors;
TIME sttime,etime;
showmessage("\n"
"This test read RAMDOMLY data from first hard disk to test\n"
"disk throughtput.\n"
"Remeber that the reads are made RANDOMLY block by block so\n"
"don't worry if you see a VERY low throughtput.\n"
);
srand(7);
 
dev=bdev_find_byname(DISKDEVICE);
if (dev<0) {
cprintf("\nCan't find device to operate with\n");
return -1;
}
cprintf("\nUsing device %s (dev=%04x)\n",DISKDEVICE,dev);
 
cprintf("Please wait (reading %i KB ramdomly)...",NUMBLOCK/2);
 
sttime=sys_gettime(NULL);
errors=0;
for (blk=0;blk<NUMBLOCK;blk++) {
res=bdev_read(dev,rand()%5000,buffer);
if (res!=0) errors++;
}
etime=sys_gettime(NULL)-sttime;
 
cprintf("\nDone\n\n");
cprintf("elapse time : %li sec %li msec\n",
etime/1000000l,
(etime/1000l)%1000l);
cprintf("throughtput : %6.3f KB/s\n",
NUMBLOCK*512.0/1024.0/etime*1000000.0);
//cprintf("soft reset made: %i\n",ide[0].errors);
cprintf("errors : %i\n",errors);
cprintf("\n");
return 0;
}
/demos/branches/pj/oldexamples/block/common.c
0,0 → 1,75
 
#include <kernel/func.h>
 
#include <fs/bdevinit.h>
#include <fs/fsinit.h>
#include <fs/bdev.h>
 
#include <drivers/keyb.h>
 
#include <sys/mount.h>
 
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
 
/* -- */
 
int __register_sub_init(void)
{
return 0;
}
 
/* -- */
 
int __bdev_sub_init(void)
{
BDEV_PARMS bdev=BASE_BDEV;
bdev_def_showinfo(bdev,TRUE);
bdev_init(&bdev);
 
return 0;
}
 
/* -- */
 
void ctrlc_exit(KEY_EVT *k)
{
//sys_status(SCHED_STATUS);
cprintf("CTRL-C pressed!\n");
sys_end();
}
 
/* -- */
 
void showmessage(char *s)
{
cputs(s);
cprintf("Press [x] to begin...");
while (keyb_getchar()!='x');
cprintf("\n");
}
 
void waitend(void)
{
int c;
cprintf("Press [x] to exit...");
while ((c=keyb_getchar())!='x');
cprintf("\n");
}
 
/* -- */
 
void debug_dump_buffer(char *buf, int size)
{
int i;
for (i=0;i<size;i++) {
if (i%16==0) {
if (i!=0) cprintf("\n");
cprintf("%04x: ",i);
}
cprintf("%02x ",(unsigned char)*(buf+i));
}
cprintf("\n");
}
/demos/branches/pj/oldexamples/block/makefile
0,0 → 1,35
#
#
#
 
ifndef BASE
BASE=../../..
endif
include $(BASE)/config/config.mk
 
PROGS=idetest0 idetest1 idetest2 idetest3 idelin idernd
OBJS=common.o
 
include $(BASE)/config/example.mk
 
#
#
#
 
idetest0:
make -f $(SUBMAKE) APP=idetest0 INIT=initblk.o OTHEROBJS=common.o
 
idetest1:
make -f $(SUBMAKE) APP=idetest1 INIT=initblk.o OTHEROBJS=common.o
 
idetest2:
make -f $(SUBMAKE) APP=idetest2 INIT=initblk.o OTHEROBJS=common.o
 
idetest3:
make -f $(SUBMAKE) APP=idetest3 INIT=initblk.o OTHEROBJS=common.o
 
idelin:
make -f $(SUBMAKE) APP=idelin INIT=initblk.o OTHEROBJS=common.o
 
idernd:
make -f $(SUBMAKE) APP=idernd INIT=initblk.o OTHEROBJS=common.o
/demos/branches/pj/oldexamples/block/common.h
0,0 → 1,11
 
#ifndef __COMMON_H
#define __COMMON_H
 
void showmessage(char *s);
void waitend(void);
 
void debug_dump_buffer(char *buf, int size);
 
#endif
/demos/branches/pj/fsdemo/xread.c
18,7 → 18,6
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
 
#include <assert.h>
 
205,11 → 204,8
nv=n;
n=filledspace(ptr)/objsize;
if (n==0) {
struct timespec delay;
delay.tv_sec=0;
delay.tv_nsec=15000000;
n=nv;
nanosleep(&delay, 0);
task_delay(15000);
goto REDO;
return 0;
}
/demos/branches/pj/fsdemo/mplay.c
36,11 → 36,11
*/
 
/*
* CVS : $Id: mplay.c,v 1.2 2002-11-11 08:17:31 pj Exp $
* CVS : $Id: mplay.c,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
*
* File: $File$
* Revision: $Revision: 1.2 $
* Last update: $Date: 2002-11-11 08:17:31 $
* Revision: $Revision: 1.1.1.1 $
* Last update: $Date: 2002-09-02 09:37:41 $
*/
 
#include "config.h"
66,7 → 66,6
 
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
#include "gclock.h"
#include "gvideo.h"
366,22 → 365,14
if (grp>0) group_activate(grp);
 
esc=0;
 
{
struct timespec delay;
 
delay.tv_sec = MAINSLEEP/1000000;
delay.tv_nsec = (MAINSLEEP%1000000)*1000;
 
while (!esc) {
if (keyb_getcode(&k,NON_BLOCK)) {
if(k.ascii==13) esc=1;
else if (k.ascii=='a') task_activate(ph1);
else if (k.ascii=='s') task_activate(ph2);
else if (k.ascii=='d') task_activate(ph3);
}
nanosleep(&delay, NULL);
while (!esc) {
if (keyb_getcode(&k,NON_BLOCK)) {
if(k.ascii==13) esc=1;
else if (k.ascii=='a') task_activate(ph1);
else if (k.ascii=='s') task_activate(ph2);
else if (k.ascii=='d') task_activate(ph3);
}
task_delay(MAINSLEEP);
}
 
#ifndef NOGRX
/demos/branches/pj/soccer/soccer.c
18,11 → 18,11
 
/*
------------
CVS : $Id: soccer.c,v 1.2 2003-01-07 17:10:18 pj Exp $
CVS : $Id: soccer.c,v 1.1.1.1 2002-09-02 09:37:44 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2003-01-07 17:10:18 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:44 $
------------
*/
 
571,6 → 571,9
 
TIME seme; /* used to init the random seed */
 
/* Set the exception handler */
set_exchandler_grx();
 
/* Set the closing function */
sys_atrunlevel(byebye, NULL, RUNLEVEL_BEFORE_EXIT);
 
/demos/branches/pj/cash/cash.c
20,11 → 20,11
 
/**
------------
CVS : $Id: cash.c,v 1.4 2003-01-07 17:10:16 pj Exp $
CVS : $Id: cash.c,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.4 $
Last update: $Date: 2003-01-07 17:10:16 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
 
This file contains the aperiodic server CBS (Total Bandwidth Server)
60,12 → 60,25
#include <kernel/descr.h>
#include <kernel/var.h>
#include <kernel/func.h>
#include <kernel/trace.h>
 
/*+ 4 debug purposes +*/
#undef CBS_TEST
 
#ifdef TESTG
#include "drivers/glib.h"
TIME x,oldx;
extern TIME starttime;
#endif
 
 
 
 
 
/*+ Status used in the level +*/
#define CBSGHD_IDLE APER_STATUS_BASE /*+ waiting the activation +*/
#define CBSGHD_ZOMBIE APER_STATUS_BASE+1 /*+ waiting the period end +*/
#define CBSGHD_DELAY APER_STATUS_BASE+2 /*+ waiting the delay end +*/
 
/* structure of an element of the capacity queue */
struct cap_queue {
95,7 → 108,6
TIME act_period[MAX_PROC]; /*+ actual period of each elastic task: it
must be less than maxperiod!!! +*/
 
struct timespec request_time[MAX_PROC]; /* used for the response time */
TIME last_response_time[MAX_PROC]; /* response time of the last instance */
TIME cnormal[MAX_PROC]; /*+ CBSGHD normal computation time +*/
140,7 → 152,7
new = (struct cap_queue *)kern_alloc(sizeof(struct cap_queue));
if (new == NULL) {
kern_printf("\nNew cash_queue element failed\n");
kern_raise(XINVALID_TASK, p);
kern_raise(XUNVALID_TASK, p);
return -1;
}
new->next = NULL;
262,10 → 274,28
job_task_default_model(job, lev->cbsghd_dline[p]);
job_task_def_yesexc(job);
level_table[ lev->scheduling_level ]->
private_insert(lev->scheduling_level, p, (TASK_MODEL *)&job);
guest_create(lev->scheduling_level, p, (TASK_MODEL *)&job);
level_table[ lev->scheduling_level ]->
guest_activate(lev->scheduling_level, p);
}
 
 
static char *CBSGHD_status_to_a(WORD status)
{
if (status < MODULE_STATUS_BASE)
return status_to_a(status);
 
switch (status) {
case CBSGHD_IDLE : return "CBSGHD_Idle";
case CBSGHD_ZOMBIE : return "CBSGHD_Zombie";
case CBSGHD_DELAY : return "CBSGHD_Delay";
default : return "CBSGHD_Unknown";
}
}
 
 
 
 
/* this is the periodic reactivation of the task... */
static void CBSGHD_timer_reactivate(void *par)
{
279,7 → 309,7
reactivated */
/* request_time represents the time of the last instance release!! */
TIMESPEC_ASSIGN(&lev->request_time[p], &lev->reactivation_time[p]);
TIMESPEC_ASSIGN(&proc_table[p].request_time, &lev->reactivation_time[p]);
/* If idle=1, then we have to discharge the capacities stored in
the capacity queue up to the length of the idle interval */
287,7 → 317,7
TIME interval;
struct timespec delta;
lev->idle = 0;
SUBTIMESPEC(&lev->request_time[p], &lev->start_idle, &delta);
SUBTIMESPEC(&proc_table[p].request_time, &lev->start_idle, &delta);
/* length of the idle interval expressed in usec! */
interval = TIMESPEC2NANOSEC(&delta) / 1000;
 
327,7 → 357,7
else {
/* this situation cannot occur */
kern_printf("Trying to reactivate a task which is not IDLE!!!/n");
kern_raise(XINVALID_TASK,p);
kern_raise(XUNVALID_TASK,p);
}
}
 
433,7 → 463,7
if (TIMESPEC_A_LT_B(&lev->reactivation_time[p], &lev->cbsghd_dline[p])) {
/* we delete the reactivation timer */
kern_event_delete(lev->reactivation_timer[p]);
event_delete(lev->reactivation_timer[p]);
/* repost the event at the next instance deadline... */
lev->reactivation_time[p] = lev->cbsghd_dline[p];
lev->reactivation_timer[p] = kern_event_post(&lev->reactivation_time[p],
468,7 → 498,7
 
/* we finally put the task in the FREE status */
proc_table[p].status = FREE;
iq_insertfirst(p,&freedesc);
q_insertfirst(p,&freedesc);
 
/* and free the allocated bandwidth */
lev->U -= (MAX_BANDWIDTH/lev->period[p]) * lev->cnormal[p];
475,14 → 505,69
 
}
 
static PID CBSGHD_public_scheduler(LEVEL l)
 
static int CBSGHD_level_accept_task_model(LEVEL l, TASK_MODEL *m)
{
 
if (m->pclass == ELASTIC_HARD_PCLASS || m->pclass ==
(ELASTIC_HARD_PCLASS | l)) {
ELASTIC_HARD_TASK_MODEL *s = (ELASTIC_HARD_TASK_MODEL *)m;
bandwidth_t b1, b2;
/* kern_printf("accept :ELASTIC TASK found!!!!!!\n"); */
b1 = (MAX_BANDWIDTH / s->period) * s->cnormal;
b2 = (MAX_BANDWIDTH / s->maxperiod) * s->wcet;
if (s->wcet && s->cnormal && s->period && s->maxperiod &&
s->wcet >= s->cnormal && b1 >= b2)
return 0;
/* kern_printf("period: %d maxperiod: %d cnormal: %d wcet: %d, b1: %d b2:
%d\n", s->period, s->maxperiod, s->cnormal, s->wcet, b1, b2); */
}
return -1;
}
 
static int CBSGHD_level_accept_guest_model(LEVEL l, TASK_MODEL *m)
{
return -1;
}
 
static char *onoff(int i)
{
if (i)
return "On ";
else
return "Off";
}
 
static void CBSGHD_level_status(LEVEL l)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
PID p;
 
kern_printf("On-line guarantee : %s\n",
onoff(lev->flags & CBSGHD_ENABLE_GUARANTEE));
kern_printf("Used Bandwidth : %u/%u\n",
lev->U, MAX_BANDWIDTH);
 
for (p=0; p<MAX_PROC; p++)
if (proc_table[p].task_level == l && proc_table[p].status != FREE )
kern_printf("Pid: %2d Name: %10s Period: %9ld Dline: %9ld.%6ld Stat: %s\n",
p,
proc_table[p].name,
lev->period[p],
lev->cbsghd_dline[p].tv_sec,
lev->cbsghd_dline[p].tv_nsec/1000,
CBSGHD_status_to_a(proc_table[p].status));
}
 
static PID CBSGHD_level_scheduler(LEVEL l)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
/* it stores the actual time and set the IDLE flag in order to handle
the capacity queue discharging!!! */
lev->idle = 1;
kern_gettime(&lev->start_idle);
ll_gettime(TIME_EXACT, &lev->start_idle);
 
/* the CBSGHD don't schedule anything...
491,7 → 576,7
}
 
/* The on-line guarantee is enabled only if the appropriate flag is set... */
static int CBSGHD_public_guarantee(LEVEL l, bandwidth_t *freebandwidth)
static int CBSGHD_level_guarantee(LEVEL l, bandwidth_t *freebandwidth)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
 
511,28 → 596,14
}
}
 
static int CBSGHD_public_create(LEVEL l, PID p, TASK_MODEL *m)
static int CBSGHD_task_create(LEVEL l, PID p, TASK_MODEL *m)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
ELASTIC_HARD_TASK_MODEL *s;
bandwidth_t b1, b2;
 
if (m->pclass != ELASTIC_HARD_PCLASS) return -1;
if (m->level != 0 && m->level != l) return -1;
s = (ELASTIC_HARD_TASK_MODEL *)m;
/* if the CBSGHD_task_create is called, then the pclass must be a
valid pclass. */
ELASTIC_HARD_TASK_MODEL *s = (ELASTIC_HARD_TASK_MODEL *)m;
 
/* kern_printf("accept :ELASTIC TASK found!!!!!!\n"); */
b1 = (MAX_BANDWIDTH / s->period) * s->cnormal;
b2 = (MAX_BANDWIDTH / s->maxperiod) * s->wcet;
if (!(s->wcet && s->cnormal && s->period && s->maxperiod &&
s->wcet >= s->cnormal && b1 >= b2) )
return -1;
/* kern_printf("period: %d maxperiod: %d cnormal: %d wcet: %d, b1: %d b2:
%d\n", s->period, s->maxperiod, s->cnormal, s->wcet, b1, b2); */
 
/* now we know that m is a valid model */
 
 
/* Enable wcet check */
proc_table[p].avail_time = 0;
proc_table[p].wcet = s->wcet;
542,9 → 613,8
lev->maxperiod[p] = s->maxperiod;
lev->cnormal[p] = s->cnormal;
NULL_TIMESPEC(&lev->cbsghd_dline[p]);
NULL_TIMESPEC(&lev->request_time[p]);
 
 
/* update the bandwidth... */
if (lev->flags & CBSGHD_ENABLE_GUARANTEE) {
bandwidth_t b;
564,7 → 634,7
return 0; /* OK, also if the task cannot be guaranteed... */
}
 
static void CBSGHD_public_detach(LEVEL l, PID p)
static void CBSGHD_task_detach(LEVEL l, PID p)
{
/* the CBSGHD level doesn't introduce any dinamic allocated new field.
we have only to reset the NO_GUARANTEE FIELD and decrement the allocated
580,15 → 650,37
}
 
static void CBSGHD_public_dispatch(LEVEL l, PID p, int nostop)
static int CBSGHD_task_eligible(LEVEL l, PID p)
{
return 0; /* if the task p is chosen, it is always eligible */
}
 
#ifdef __TEST1__
extern int testactive;
extern struct timespec s_stime[];
extern TIME s_curr[];
extern TIME s_PID[];
extern int useds;
#endif
 
static void CBSGHD_task_dispatch(LEVEL l, PID p, int nostop)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
level_table[ lev->scheduling_level ]->
private_dispatch(lev->scheduling_level,p,nostop);
guest_dispatch(lev->scheduling_level,p,nostop);
 
#ifdef __TEST1__
if (testactive)
{
TIMESPEC_ASSIGN(&s_stime[useds], &schedule_time);
s_curr[useds] = proc_table[p].avail_time;
s_PID[useds] = p;
useds++;
}
#endif
}
 
static void CBSGHD_public_epilogue(LEVEL l, PID p)
static void CBSGHD_task_epilogue(LEVEL l, PID p)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
JOB_TASK_MODEL job;
597,7 → 689,7
if ( proc_table[p].avail_time <= 0) {
/* we kill the current activation */
level_table[ lev->scheduling_level ]->
private_extract(lev->scheduling_level, p);
guest_end(lev->scheduling_level, p);
 
/* we modify the deadline */
CBSGHD_avail_time_check(lev, p);
606,7 → 698,9
job_task_default_model(job, lev->cbsghd_dline[p]);
job_task_def_yesexc(job);
level_table[ lev->scheduling_level ]->
private_insert(lev->scheduling_level, p, (TASK_MODEL *)&job);
guest_create(lev->scheduling_level, p, (TASK_MODEL *)&job);
level_table[ lev->scheduling_level ]->
guest_activate(lev->scheduling_level, p);
// kern_printf("epil : dl %d per %d p %d |\n",
// lev->cbsghd_dline[p].tv_nsec/1000,lev->period[p],p);
 
615,14 → 709,14
/* the task has been preempted. it returns into the ready queue by
calling the guest_epilogue... */
level_table[ lev->scheduling_level ]->
private_epilogue(lev->scheduling_level,p);
guest_epilogue(lev->scheduling_level,p);
}
 
static void CBSGHD_public_activate(LEVEL l, PID p)
static void CBSGHD_task_activate(LEVEL l, PID p)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
 
kern_gettime(&lev->request_time[p]);
ll_gettime(TIME_EXACT, &proc_table[p].request_time);
/* If idle=1, then we have to discharge the capacities stored in
the capacity queue up to the length of the idle interval */
630,7 → 724,7
TIME interval;
struct timespec delta;
lev->idle = 0;
SUBTIMESPEC(&lev->request_time[p], &lev->start_idle, &delta);
SUBTIMESPEC(&proc_table[p].request_time, &lev->start_idle, &delta);
/* length of the idle interval expressed in usec! */
interval = TIMESPEC2NANOSEC(&delta) / 1000;
 
650,7 → 744,7
}
}
CBSGHD_activation(lev, p, &lev->request_time[p]);
CBSGHD_activation(lev, p, &proc_table[p].request_time);
 
 
/* check the constraint on the maximum period permitted... */
669,31 → 763,31
// kern_printf("act : %d %d |",lev->cbsghd_dline[p].tv_nsec/1000,p);
}
 
static void CBSGHD_public_unblock(LEVEL l, PID p)
static void CBSGHD_task_insert(LEVEL l, PID p)
{
printk("CBSGHD_task_insert\n");
kern_raise(XINVALID_TASK,p);
kern_raise(XUNVALID_TASK,p);
}
 
static void CBSGHD_public_block(LEVEL l, PID p)
static void CBSGHD_task_extract(LEVEL l, PID p)
{
printk("CBSGHD_task_extract\n");
kern_raise(XINVALID_TASK,p);
kern_raise(XUNVALID_TASK,p);
}
 
static int CBSGHD_public_message(LEVEL l, PID p, void *m)
static void CBSGHD_task_endcycle(LEVEL l, PID p)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
struct timespec act_time, res;
 
/* It computes the response time of the current instance... */
kern_gettime(&act_time);
SUBTIMESPEC(&act_time, &lev->request_time[p], &res);
ll_gettime(TIME_EXACT, &act_time);
SUBTIMESPEC(&act_time, &proc_table[p].request_time, &res);
/* response time expressed in usec! */
lev->last_response_time[p] = TIMESPEC2NANOSEC(&res) / 1000;
level_table[ lev->scheduling_level ]->
private_extract(lev->scheduling_level,p);
guest_end(lev->scheduling_level,p);
 
/* A spare capacity is inserted in the capacity queue!! */
704,14 → 798,9
 
proc_table[p].status = CBSGHD_IDLE;
 
jet_update_endcycle(); /* Update the Jet data... */
trc_logevent(TRC_ENDCYCLE,&exec_shadow); /* tracer stuff */
 
return 0;
}
 
static void CBSGHD_public_end(LEVEL l, PID p)
static void CBSGHD_task_end(LEVEL l, PID p)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
 
725,10 → 814,10
}
level_table[ lev->scheduling_level ]->
private_extract(lev->scheduling_level,p);
guest_end(lev->scheduling_level,p);
 
/* we delete the reactivation timer */
kern_event_delete(lev->reactivation_timer[p]);
event_delete(lev->reactivation_timer[p]);
lev->reactivation_timer[p] = -1;
 
740,11 → 829,60
(void *)p);
}
 
static void CBSGHD_task_sleep(LEVEL l, PID p)
{
printk("CBSGHD_task_sleep\n");
kern_raise(XUNVALID_TASK,p);
}
 
static void CBSGHD_task_delay(LEVEL l, PID p, TIME usdelay)
{
printk("CBSGHD_task_delay\n");
kern_raise(XUNVALID_TASK,p);
}
 
 
static int CBSGHD_guest_create(LEVEL l, PID p, TASK_MODEL *m)
{ kern_raise(XUNVALID_GUEST,exec_shadow); return 0; }
 
static void CBSGHD_guest_detach(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_dispatch(LEVEL l, PID p, int nostop)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_epilogue(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_activate(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_insert(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_extract(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_endcycle(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_end(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_sleep(LEVEL l, PID p)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
static void CBSGHD_guest_delay(LEVEL l, PID p,DWORD tickdelay)
{ kern_raise(XUNVALID_GUEST,exec_shadow); }
 
 
 
 
/* Registration functions */
 
/*+ Registration function:
int flags the init flags ... see CBS.h +*/
LEVEL CBSGHD_register_level(int flags, LEVEL master)
void CBSGHD_register_level(int flags, LEVEL master)
{
LEVEL l; /* the level that we register */
CBSGHD_level_des *lev; /* for readableness only */
753,35 → 891,62
printk("CBSGHD_register_level\n");
 
/* request an entry in the level_table */
l = level_alloc_descriptor(sizeof(CBSGHD_level_des));
l = level_alloc_descriptor();
 
lev = (CBSGHD_level_des *)level_table[l];
printk(" alloco descrittore %d %d\n",l,sizeof(CBSGHD_level_des));
 
/* alloc the space needed for the CBSGHD_level_des */
lev = (CBSGHD_level_des *)kern_alloc(sizeof(CBSGHD_level_des));
 
printk(" lev=%d\n",(int)lev);
 
/* update the level_table with the new entry */
level_table[l] = (level_des *)lev;
 
/* fill the standard descriptor */
lev->l.public_scheduler = CBSGHD_public_scheduler;
strncpy(lev->l.level_name, CBSGHD_LEVELNAME, MAX_LEVELNAME);
lev->l.level_code = CBSGHD_LEVEL_CODE;
lev->l.level_version = CBSGHD_LEVEL_VERSION;
 
lev->l.level_accept_task_model = CBSGHD_level_accept_task_model;
lev->l.level_accept_guest_model = CBSGHD_level_accept_guest_model;
lev->l.level_status = CBSGHD_level_status;
lev->l.level_scheduler = CBSGHD_level_scheduler;
 
if (flags & CBSGHD_ENABLE_GUARANTEE)
lev->l.public_guarantee = CBSGHD_public_guarantee;
lev->l.level_guarantee = CBSGHD_level_guarantee;
else
lev->l.public_guarantee = NULL;
lev->l.level_guarantee = NULL;
 
lev->l.public_create = CBSGHD_public_create;
lev->l.public_detach = CBSGHD_public_detach;
lev->l.public_end = CBSGHD_public_end;
lev->l.public_dispatch = CBSGHD_public_dispatch;
lev->l.public_epilogue = CBSGHD_public_epilogue;
lev->l.public_activate = CBSGHD_public_activate;
lev->l.public_unblock = CBSGHD_public_unblock;
lev->l.public_block = CBSGHD_public_block;
lev->l.public_message = CBSGHD_public_message;
lev->l.task_create = CBSGHD_task_create;
lev->l.task_detach = CBSGHD_task_detach;
lev->l.task_eligible = CBSGHD_task_eligible;
lev->l.task_dispatch = CBSGHD_task_dispatch;
lev->l.task_epilogue = CBSGHD_task_epilogue;
lev->l.task_activate = CBSGHD_task_activate;
lev->l.task_insert = CBSGHD_task_insert;
lev->l.task_extract = CBSGHD_task_extract;
lev->l.task_endcycle = CBSGHD_task_endcycle;
lev->l.task_end = CBSGHD_task_end;
lev->l.task_sleep = CBSGHD_task_sleep;
lev->l.task_delay = CBSGHD_task_delay;
 
lev->l.guest_create = CBSGHD_guest_create;
lev->l.guest_detach = CBSGHD_guest_detach;
lev->l.guest_dispatch = CBSGHD_guest_dispatch;
lev->l.guest_epilogue = CBSGHD_guest_epilogue;
lev->l.guest_activate = CBSGHD_guest_activate;
lev->l.guest_insert = CBSGHD_guest_insert;
lev->l.guest_extract = CBSGHD_guest_extract;
lev->l.guest_endcycle = CBSGHD_guest_endcycle;
lev->l.guest_end = CBSGHD_guest_end;
lev->l.guest_sleep = CBSGHD_guest_sleep;
lev->l.guest_delay = CBSGHD_guest_delay;
 
/* fill the CBSGHD descriptor part */
for (i=0; i<MAX_PROC; i++) {
NULL_TIMESPEC(&lev->cbsghd_dline[i]);
lev->period[i] = 0;
NULL_TIMESPEC(&lev->request_time[i]);
lev->last_response_time[i] = 0;
NULL_TIMESPEC(&lev->reactivation_time[i]);
lev->reactivation_timer[i] = -1;
795,8 → 960,6
lev->scheduling_level = master;
 
lev->flags = flags & 0x07;
 
return l;
}
 
 
803,7 → 966,6
int CBSGHD_get_response_time(LEVEL l, PID p)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
 
return lev->last_response_time[p];
}
 
811,7 → 973,10
bandwidth_t CBSGHD_usedbandwidth(LEVEL l)
{
CBSGHD_level_des *lev = (CBSGHD_level_des *)(level_table[l]);
 
return lev->U;
if (lev->l.level_code == CBSGHD_LEVEL_CODE &&
lev->l.level_version == CBSGHD_LEVEL_VERSION)
return lev->U;
else
return 0;
}
 
/demos/branches/pj/cash/cash.h
20,11 → 20,11
 
/**
------------
CVS : $Id: cash.h,v 1.2 2003-01-07 17:10:16 pj Exp $
CVS : $Id: cash.h,v 1.1.1.1 2002-09-02 09:37:41 pj Exp $
 
File: $File$
Revision: $Revision: 1.2 $
Last update: $Date: 2003-01-07 17:10:16 $
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-09-02 09:37:41 $
------------
 
This file contains the server CBSHD (CASH Algorithm)
97,6 → 97,7
#include <kernel/config.h>
#include <sys/types.h>
#include <kernel/types.h>
#include <modules/codes.h>
 
 
 
165,10 → 166,8
int flags Options to be used in this level instance...
LEVEL master the level that must be used as master level for the
CBSGHD tasks
 
returns the level number at which the module has been registered.
+*/
LEVEL CBSGHD_register_level(int flags, LEVEL master);
void CBSGHD_register_level(int flags, LEVEL master);
 
/*+ Returns the used bandwidth of a level +*/
bandwidth_t CBSGHD_usedbandwidth(LEVEL l);