/demos/tags/rel_1_5_beta1/servo/initfile.c |
File deleted |
|
Property changes: |
Deleted: svn:executable |
## -1 +0,0 ## |
-* |
\ No newline at end of property |
Index: rel_1_5_beta1/servo/README |
=================================================================== |
--- rel_1_5_beta1/servo/README (revision 1579) |
+++ rel_1_5_beta1/servo/README (nonexistent) |
@@ -1,2 +0,0 @@ |
-TODO |
- |
Index: rel_1_5_beta1/servo/makefile |
=================================================================== |
--- rel_1_5_beta1/servo/makefile (revision 1579) |
+++ rel_1_5_beta1/servo/makefile (nonexistent) |
@@ -1,15 +0,0 @@ |
-# |
-# |
-# |
- |
-ifndef BASE |
-BASE=../.. |
-endif |
-include $(BASE)/config/config.mk |
- |
-PROGS = load |
- |
-include $(BASE)/config/example.mk |
- |
-load: |
- make -f $(SUBMAKE) APP=load INIT= OTHEROBJS="initfile.o" OTHERINCL= SHARKOPT="__LINUXC26__ __INPUT__ __SERVO__" |
/rel_1_5_beta1/servo/makefile |
Property changes: |
Deleted: svn:executable |
## -1 +0,0 ## |
-* |
\ No newline at end of property |
Index: rel_1_5_beta1/servo/load.c |
=================================================================== |
--- rel_1_5_beta1/servo/load.c (revision 1579) |
+++ rel_1_5_beta1/servo/load.c (nonexistent) |
@@ -1,46 +0,0 @@ |
-#include "kernel/kern.h" |
-#include "drivers/shark_keyb26.h" |
-#include "unistd.h" |
- |
-#include "servo.h" |
- |
-#define N_SEND 10000 |
- |
-int main () { |
- |
- int res, i = 0, k; |
- |
- srand(sys_gettime(NULL)); |
- |
- cprintf("(Open Com2)"); |
- res = servo_open(COM2, 19200); |
- cprintf("(Res = %d)",res); |
- |
- cprintf("(Servo Turn On 0)"); |
- res = servo_turn_on(COM2, 0); |
- cprintf("(Res = %d)",res); |
- |
- while(i < N_SEND) { |
- |
- cprintf("(Cycle = %d)",i); |
- |
- k = rand() % 180 - 90; |
- |
- cprintf("(Set Servo 0 %d)",k); |
- res = servo_set_angle_sec(COM2, 0, ANGLE2SEC(k,0,0)); |
- cprintf("(Res = %d)",res); |
- |
- udelay(100000); |
- |
- i++; |
- |
- } |
- |
- servo_close(COM2); |
- |
- exit(0); |
- |
- return 0; |
- |
-} |
- |
Index: rel_1_5_beta1/input/initspk.c |
=================================================================== |
--- rel_1_5_beta1/input/initspk.c (revision 1579) |
+++ rel_1_5_beta1/input/initspk.c (nonexistent) |
@@ -1,153 +0,0 @@ |
-/* |
- * Project: HARTIK (HA-rd R-eal TI-me K-ernel) |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * Gerardo Lamastra <gerardo@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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 "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
-#include "intdrive/intdrive/intdrive.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_spk26.h> |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-PID shutdown_task_PID = 1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- CBS_register_level(CBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- return TICK; |
-} |
- |
-int device_drivers_close() { |
- |
- KEYB26_close(); |
- SPEAK26_close(); |
- INPUT26_close(); |
- |
- return 0; |
-} |
- |
-int device_drivers_init() { |
- |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- INPUT26_init(); |
- |
- /*keyb_def_map(kparms, KEYMAP_IT);*/ |
- keyb_def_ctrlC(kparms, NULL); |
- KEYB26_init(&kparms); |
- |
- SPEAK26_init(); |
- return 0; |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- return NULL; |
-} |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task", shutdown_task_body, &nrt, NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) { |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
Index: rel_1_5_beta1/input/joy.c |
=================================================================== |
--- rel_1_5_beta1/input/joy.c (revision 1579) |
+++ rel_1_5_beta1/input/joy.c (nonexistent) |
@@ -1,76 +0,0 @@ |
- |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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/func.h> |
-#include <stdlib.h> |
-#include <string.h> |
- |
-#include <drivers/shark_joy26.h> |
- |
-TASK my_getjoy(void *arg) { |
- |
- int a0, a1, a2, a3, btn; |
- |
- while (1) { |
- joy_getstatus(&a0, &a1, &a2, &a3, &btn); |
- cprintf("(%6d %6d) %2x\n", a0, a1, btn); |
- task_endcycle(); |
- if (btn == 0xF) |
- exit(1); |
- } |
-} |
- |
-int main(int argc, char **argv) |
-{ |
- SOFT_TASK_MODEL mp; |
- PID pid; |
- |
- if (!JOY26_installed()) { |
- cprintf("No Joystick found."); |
- exit(1); |
- } |
- soft_task_default_model(mp); |
- soft_task_def_level(mp,2); |
- soft_task_def_ctrl_jet(mp); |
- soft_task_def_met(mp,700); |
- soft_task_def_period(mp,10000); |
- soft_task_def_usemath(mp); |
- pid = task_create("Joy_Print", my_getjoy, &mp, NULL); |
- if (pid == NIL) { |
- sys_shutdown_message("Could not create task <Joy_Print>\n"); |
- exit(1); |
- } else |
- task_activate(pid); |
- |
- return 0; |
-} |
/rel_1_5_beta1/input/joy.c |
Property changes: |
Deleted: svn:executable |
## -1 +0,0 ## |
-* |
\ No newline at end of property |
Index: rel_1_5_beta1/input/speak.c |
=================================================================== |
--- rel_1_5_beta1/input/speak.c (revision 1579) |
+++ rel_1_5_beta1/input/speak.c (nonexistent) |
@@ -1,208 +0,0 @@ |
- |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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/func.h> |
-#include <stdlib.h> |
-#include <string.h> |
- |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_spk26.h> |
- |
-void my_sysclose(KEY_EVT *e) |
-{ |
- speaker_sound(0, 0); |
- |
- kern_printf("S.Ha.R.K. closed.\n\n"); |
- exit(0); |
-} |
- |
-void no_note(KEY_EVT *e){ |
- speaker_sound(0, 0); |
-} |
- |
-void my_note(KEY_EVT *e){ |
- |
- switch (e->scan) { |
- case KEY_Q: |
- speaker_sound(262, 0); |
- break; |
- case KEY_W: |
- speaker_sound(277, 0); |
- break; |
- case KEY_E: |
- speaker_sound(294, 0); |
- break; |
- case KEY_R: |
- speaker_sound(311, 0); |
- break; |
- case KEY_T: |
- speaker_sound(330, 0); |
- break; |
- case KEY_Y: |
- speaker_sound(349, 0); |
- break; |
- case KEY_U: |
- speaker_sound(370, 0); |
- break; |
- case KEY_I: |
- speaker_sound(392, 0); |
- break; |
- case KEY_O: |
- speaker_sound(415, 0); |
- break; |
- case KEY_P: |
- speaker_sound(440, 0); |
- break; |
- case KEY_BRL: |
- speaker_sound(466, 0); |
- break; |
- case KEY_BRR: |
- speaker_sound(494, 0); |
- break; |
- } |
-} |
- |
-int main(int argc, char **argv) |
-{ |
- KEY_EVT ev; |
- |
- ev.ascii = 'c'; |
- ev.scan = KEY_C; |
- ev.status = KEY_PRESSED; |
- ev.flag = CNTL_BIT; |
- keyb_hook(ev, my_sysclose, FALSE); |
- ev.flag = CNTR_BIT; |
- keyb_hook(ev, my_sysclose, FALSE); |
- |
- speaker_sound(440, 400); |
- while ( (sys_gettime(NULL)/1000) < 1000); |
- |
- ev.ascii = 'q'; |
- ev.scan = KEY_Q; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'w'; |
- ev.scan = KEY_W; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'e'; |
- ev.scan = KEY_E; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'r'; |
- ev.scan = KEY_R; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 't'; |
- ev.scan = KEY_T; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'y'; |
- ev.scan = KEY_Y; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'u'; |
- ev.scan = KEY_U; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'i'; |
- ev.scan = KEY_I; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'o'; |
- ev.scan = KEY_O; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'p'; |
- ev.scan = KEY_P; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = '['; |
- ev.scan = KEY_BRL; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = ']'; |
- ev.scan = KEY_BRR; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- while(1); |
- return 0; |
-} |
Index: rel_1_5_beta1/input/initfile.c |
=================================================================== |
--- rel_1_5_beta1/input/initfile.c (revision 1579) |
+++ rel_1_5_beta1/input/initfile.c (nonexistent) |
@@ -1,214 +0,0 @@ |
-/* |
- * Project: HARTIK (HA-rd R-eal TI-me K-ernel) |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * Gerardo Lamastra <gerardo@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 "intdrive/intdrive/intdrive.h" |
-#include "edf/edf/edf.h" |
-#include "hardcbs/hardcbs/hardcbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "cabs/cabs/cabs.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
- |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_mouse26.h> |
-#include <drivers/shark_spk26.h> |
-#include <drivers/shark_joy26.h> |
- |
-#include <drivers/shark_fb26.h> |
- |
-#define FRAME_BUFFER_DEVICE 0 |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 2000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = -1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- HCBS_register_level(HCBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- CABS_register_module(); |
- |
- return TICK; |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- /* Create the shutdown task. It will be activated at RUNLEVEL SHUTDOWN */ |
- set_shutdown_task(); |
- |
- /* Init the drivers */ |
- device_drivers_init(); |
- |
- /* Set the shutdown task activation */ |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
-void set_shutdown_task() |
-{ |
-/* WARNING: the shutdown task is a background thread. It cannot execute if the system is overloaded */ |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
-} |
- |
-int device_drivers_init() |
-{ |
- int res; |
- KEYB_PARMS kparms = BASE_KEYB; |
- MOUSE_PARMS mparms = BASE_MOUSE; |
- |
- LINUXC26_register_module(); |
- |
- PCI26_init(); |
- |
- INPUT26_init(); |
- |
- /* keyb_def_map(kparms, KEYMAP_IT);*/ |
- keyb_def_ctrlC(kparms, NULL); |
- KEYB26_init(&kparms); |
- |
- mouse_def_threshold(mparms, 5); |
- mouse_def_xmin(mparms, 0); |
- mouse_def_ymin(mparms, 0); |
- mouse_def_xmax(mparms, 639); |
- mouse_def_ymax(mparms, 479); |
- MOUSE26_init(&mparms); |
- |
- SPEAK26_init(); |
- |
- JOY26_init(); |
- |
- FB26_init(); |
- res = FB26_open(FRAME_BUFFER_DEVICE); |
- if (res) { |
- cprintf("Error: Cannot open graphical mode\n"); |
- MOUSE26_close(); |
- SPEAK26_close(); |
- JOY26_close(); |
- KEYB26_close(); |
- INPUT26_close(); |
- exit(1); |
- } |
- |
- FB26_use_grx(FRAME_BUFFER_DEVICE); |
- FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
- |
- return 0; |
-} |
- |
-int device_drivers_close() { |
- |
- mouse_grxcursor(DISABLE, 0); |
- |
- FB26_close(FRAME_BUFFER_DEVICE); |
- |
- MOUSE26_close(); |
- SPEAK26_close(); |
- JOY26_close(); |
- KEYB26_close(); |
- INPUT26_close(); |
- |
- return 0; |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) |
-{ |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK shutdown_task_body(void *arg) |
-{ |
- device_drivers_close(); |
- |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- |
- return NULL; |
-} |
Index: rel_1_5_beta1/input/initjoy.c |
=================================================================== |
--- rel_1_5_beta1/input/initjoy.c (revision 1579) |
+++ rel_1_5_beta1/input/initjoy.c (nonexistent) |
@@ -1,146 +0,0 @@ |
-/* |
- * Project: HARTIK (HA-rd R-eal TI-me K-ernel) |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * Gerardo Lamastra <gerardo@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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 "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
-#include "intdrive/intdrive/intdrive.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_joy26.h> |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-PID shutdown_task_PID = 1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- CBS_register_level(CBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- return TICK; |
-} |
- |
-int device_drivers_close() { |
- |
- JOY26_close(); |
- INPUT26_close(); |
- |
- return 0; |
-} |
- |
-int device_drivers_init() { |
- |
- LINUXC26_register_module(); |
- INPUT26_init(); |
- |
- JOY26_init(); |
- |
- return 0; |
- |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- return NULL; |
-} |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task", shutdown_task_body, &nrt, NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) { |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
/rel_1_5_beta1/input/initjoy.c |
Property changes: |
Deleted: svn:executable |
## -1 +0,0 ## |
-* |
\ No newline at end of property |
Index: rel_1_5_beta1/input/key.c |
=================================================================== |
--- rel_1_5_beta1/input/key.c (revision 1579) |
+++ rel_1_5_beta1/input/key.c (nonexistent) |
@@ -1,106 +0,0 @@ |
- |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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/func.h> |
-#include <stdlib.h> |
-#include <string.h> |
- |
-#include <drivers/shark_keyb26.h> |
- |
-void my_sysclose(KEY_EVT *e) |
-{ |
- kern_printf("S.Ha.R.K. closed.\n\n"); |
- exit(0); |
-} |
- |
-TASK my_getch(void *arg) { |
- |
- BYTE ch; |
- |
- while (1) { |
- ch = keyb_getch(NON_BLOCK); |
- if (ch) |
- cprintf("%c", ch); |
- task_endcycle(); |
- } |
-} |
- |
-void my_pause(KEY_EVT *e){ |
- |
- TIME t; |
- |
- cprintf("Start Pause.\n"); |
- keyb_disable(); |
- cprintf("Keyboard Disabled.\n"); |
- t = sys_gettime(NULL); |
- while ( ( (sys_gettime(NULL) -t) / 1000) < 5000); |
- keyb_enable(); |
- cprintf("Keyboard Enabled.\n"); |
-} |
- |
-int main(int argc, char **argv) |
-{ |
- SOFT_TASK_MODEL mp; |
- PID pid; |
- |
- KEY_EVT ev; |
- |
- ev.ascii = 'p'; |
- ev.scan = KEY_P; |
- ev.status = KEY_PRESSED; |
- ev.flag = CNTR_BIT; |
- keyb_hook(ev, my_pause, FALSE); |
- |
- ev.ascii = 'c'; |
- ev.scan = KEY_C; |
- ev.status = KEY_PRESSED; |
- ev.flag = CNTR_BIT; |
- keyb_hook(ev, my_sysclose, FALSE); |
- ev.flag = CNTL_BIT; |
- keyb_hook(ev, my_sysclose, FALSE); |
- |
- soft_task_default_model(mp); |
- soft_task_def_level(mp,2); |
- soft_task_def_ctrl_jet(mp); |
- soft_task_def_met(mp,700); |
- soft_task_def_period(mp,1000); |
- soft_task_def_usemath(mp); |
- pid = task_create("Keyb_Print", my_getch, &mp, NULL); |
- if (pid == NIL) { |
- perror("Could not create task <Keyb_Print>"); |
- exit(1); |
- } else |
- task_activate(pid); |
- |
- return 0; |
-} |
Index: rel_1_5_beta1/input/mouse.c |
=================================================================== |
--- rel_1_5_beta1/input/mouse.c (revision 1579) |
+++ rel_1_5_beta1/input/mouse.c (nonexistent) |
@@ -1,95 +0,0 @@ |
- |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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/func.h> |
-#include <stdlib.h> |
-#include <string.h> |
- |
-#include <drivers/shark_mouse26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_spk26.h> |
- |
-void my_sysclose(KEY_EVT *e) |
-{ |
- mouse_txtcursor(DISABLE); |
- |
- exit(0); |
-} |
- |
-TASK my_putxy(void *arg) { |
- |
- int x, y, z; |
- unsigned long btn; |
- |
- clear(); |
- |
- while (1) { |
- mouse_getposition(&x, &y, &z, &btn); |
- place(10, 10); |
- cprintf("X: %2d - Y: %2d - Z: %3d - Btn: %4d\n", x, y, z, (int)btn); |
- |
- task_endcycle(); |
- } |
-} |
- |
-int main(int argc, char **argv) |
-{ |
- SOFT_TASK_MODEL mp; |
- PID pid; |
- KEY_EVT ev; |
- |
- ev.ascii = 'c'; |
- ev.scan = KEY_C; |
- ev.status = KEY_PRESSED; |
- ev.flag = CNTL_BIT; |
- keyb_hook(ev, my_sysclose, FALSE); |
- ev.flag = CNTR_BIT; |
- keyb_hook(ev, my_sysclose, FALSE); |
- |
- mouse_txtcursor(ENABLE); |
- |
- soft_task_default_model(mp); |
- soft_task_def_level(mp,2); |
- soft_task_def_ctrl_jet(mp); |
- soft_task_def_met(mp,700); |
- soft_task_def_period(mp,1000); |
- soft_task_def_usemath(mp); |
- pid = task_create("Mouse_Print", my_putxy, &mp, NULL); |
- if (pid == NIL) { |
- sys_shutdown_message("Could not create task <Mouse_Print>\n"); |
- my_sysclose(NULL); |
- } else |
- task_activate(pid); |
- |
- return 0; |
-} |
/rel_1_5_beta1/input/mouse.c |
Property changes: |
Deleted: svn:executable |
## -1 +0,0 ## |
-* |
\ No newline at end of property |
Index: rel_1_5_beta1/input/initkey.c |
=================================================================== |
--- rel_1_5_beta1/input/initkey.c (revision 1579) |
+++ rel_1_5_beta1/input/initkey.c (nonexistent) |
@@ -1,158 +0,0 @@ |
-/* |
- * Project: HARTIK (HA-rd R-eal TI-me K-ernel) |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * Gerardo Lamastra <gerardo@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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 "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
-#include "intdrive/intdrive/intdrive.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = 1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- CBS_register_level(CBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- return TICK; |
-} |
- |
-int device_drivers_close() { |
- |
- KEYB26_close(); |
- INPUT26_close(); |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_init() { |
- |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- INPUT26_init(); |
- |
- /*keyb_def_map(kparms, KEYMAP_IT);*/ |
- keyb_def_ctrlC(kparms, NULL); |
- KEYB26_init(&kparms); |
- |
- return 0; |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- return NULL; |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task", shutdown_task_body, &nrt, NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-void call_shutdown_task(void *arg) { |
- |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
Index: rel_1_5_beta1/input/makefile |
=================================================================== |
--- rel_1_5_beta1/input/makefile (revision 1579) |
+++ rel_1_5_beta1/input/makefile (nonexistent) |
@@ -1,28 +0,0 @@ |
-# |
-# |
-# |
- |
-ifndef BASE |
-BASE=../.. |
-endif |
-include $(BASE)/config/config.mk |
- |
-PROGS= input speak key mouse joy |
- |
-include $(BASE)/config/example.mk |
- |
-input: |
- make -f $(SUBMAKE) APP=input INIT= OTHEROBJS="initfile.o" SHARKOPT="__INPUT__ __LINUXC26__ __PCI__ __FB__" |
- |
-speak: |
- make -f $(SUBMAKE) APP=speak INIT= OTHEROBJS="initspk.o" SHARKOPT="__INPUT__ __LINUXC26__ __PCI__" |
- |
-key: |
- make -f $(SUBMAKE) APP=key INIT= OTHEROBJS="initkey.o" SHARKOPT="__INPUT__ __LINUXC26__ __PCI__" |
- |
-mouse: |
- make -f $(SUBMAKE) APP=mouse INIT= OTHEROBJS="initcur.o" SHARKOPT="__INPUT__ __LINUXC26__ __PCI__" |
- |
-joy: |
- make -f $(SUBMAKE) APP=joy INIT= OTHEROBJS="initjoy.o" SHARKOPT="__INPUT__ __LINUXC26__ __PCI__" |
- |
Index: rel_1_5_beta1/input/initcur.c |
=================================================================== |
--- rel_1_5_beta1/input/initcur.c (revision 1579) |
+++ rel_1_5_beta1/input/initcur.c (nonexistent) |
@@ -1,161 +0,0 @@ |
-/* |
- * Project: HARTIK (HA-rd R-eal TI-me K-ernel) |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * Gerardo Lamastra <gerardo@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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 "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
-#include "intdrive/intdrive/intdrive.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_mouse26.h> |
-#include <drivers/shark_keyb26.h> |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = 1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- CBS_register_level(CBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- return TICK; |
-} |
- |
-int device_drivers_close() { |
- |
- MOUSE26_close(); |
- KEYB26_close(); |
- INPUT26_close(); |
- |
- return 0; |
-} |
- |
-int device_drivers_init() { |
- |
- KEYB_PARMS kparms = BASE_KEYB; |
- MOUSE_PARMS mparms = BASE_MOUSE; |
- |
- LINUXC26_register_module(); |
- INPUT26_init(); |
- |
- /*keyb_def_map(kparms, KEYMAP_IT);*/ |
- keyb_def_ctrlC(kparms, NULL); |
- KEYB26_init(&kparms); |
- |
- MOUSE26_init(&mparms); |
- |
- return 0; |
- |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- return NULL; |
-} |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task", shutdown_task_body, &nrt, NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) { |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
/rel_1_5_beta1/input/initcur.c |
Property changes: |
Deleted: svn:executable |
## -1 +0,0 ## |
-* |
\ No newline at end of property |
Index: rel_1_5_beta1/input/input.c |
=================================================================== |
--- rel_1_5_beta1/input/input.c (revision 1579) |
+++ rel_1_5_beta1/input/input.c (nonexistent) |
@@ -1,452 +0,0 @@ |
- |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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/func.h> |
-#include <stdlib.h> |
-#include <string.h> |
- |
-#include <drivers/shark_fb26.h> |
- |
-#include <drivers/shark_mouse26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_spk26.h> |
-#include <drivers/shark_joy26.h> |
- |
-#define RGB_BLACK rgb16( 0, 0, 0) |
-#define RGB_GRAY rgb16(127,127,127) |
-#define RGB_WHITE rgb16(255,255,255) |
-#define RGB_RED rgb16(255, 0, 0) |
-#define RGB_GREEN rgb16( 0,255, 0) |
-#define RGB_BLUE rgb16( 0, 0,255) |
-#define RGB_YELLOW rgb16(255,255, 0) |
-#define RGB_MAGENTA rgb16(255, 0,255) |
-#define RGB_CYAN rgb16( 0,255,255) |
-#define RGB_D_RED rgb16(127, 0, 0) |
-#define RGB_D_GREEN rgb16( 0,127, 0) |
-#define RGB_D_BLUE rgb16( 0, 0,127) |
-#define RGB_D_YELLOW rgb16(127,127, 0) |
-#define RGB_D_MAGENTA rgb16(127, 0,127) |
-#define RGB_D_CYAN rgb16( 0,127,127) |
- |
-void my_sysend(KEY_EVT *e) |
-{ |
- exit(0); |
-} |
- |
-void no_note(KEY_EVT *e) |
-{ |
- speaker_sound(0, 0); |
-} |
- |
-void my_note(KEY_EVT *e) |
-{ |
- switch (e->scan) { |
- case KEY_Q: |
- speaker_sound(262, 0); /* DO */ |
- break; |
- case KEY_W: |
- speaker_sound(277, 0); /* DO# */ |
- break; |
- case KEY_E: |
- speaker_sound(294, 0); /* RE */ |
- break; |
- case KEY_R: |
- speaker_sound(311, 0); /* RE# */ |
- break; |
- case KEY_T: |
- speaker_sound(330, 0); /* MI */ |
- break; |
- case KEY_Y: |
- speaker_sound(349, 0); /* FA */ |
- break; |
- case KEY_U: |
- speaker_sound(370, 0); /* FA# */ |
- break; |
- case KEY_I: |
- speaker_sound(392, 0); /* SOL */ |
- break; |
- case KEY_O: |
- speaker_sound(415, 0); /* SOL# */ |
- break; |
- case KEY_P: |
- speaker_sound(440, 0); /* LA */ |
- break; |
- case KEY_BRL: |
- speaker_sound(466, 0); /* LA# */ |
- break; |
- case KEY_BRR: |
- speaker_sound(494, 0); /* SI */ |
- break; |
- } |
-} |
- |
-TASK my_getjoy(void *arg) |
-{ |
- int a0, a1, a2, a3, btn; |
- char st[20]; |
- |
- while (1) { |
- joy_getstatus(&a0, &a1, &a2, &a3, &btn); |
- |
- sprintf(st, "X Axis : %6d ", a0); |
- grx_text(st, 100, 64, RGB_CYAN, RGB_BLACK); |
- sprintf(st, "Y Axis : %6d ", a1); |
- grx_text(st, 100, 114, RGB_CYAN, RGB_BLACK); |
- sprintf(st, "Buttons: %2x ", btn); |
- grx_text(st, 100, 164, RGB_CYAN, RGB_BLACK); |
- |
- task_endcycle(); |
- if (btn == 0xF) |
- my_sysend(NULL); |
- } |
-} |
- |
-TASK my_getch(void *arg) |
-{ |
-#define MYNCHAR 25 |
- |
- BYTE ch; |
- int i = 0; |
- char st[20]; |
- |
- while (1) { |
- ch = keyb_getch(NON_BLOCK); |
- if (ch) { |
- if (ch == BACKSPACE) { //backspace |
- i--; |
- //ch = 0x20; |
- } |
- if (ch == ENTER) { //enter |
- i = ((i / MYNCHAR) + 1) * MYNCHAR - 1; |
- ch = 0x20; |
- } |
- sprintf(st, "%c", ch); |
- grx_text(st, 340 + 10 * (i%MYNCHAR), 25 + 20 * (i/MYNCHAR), RGB_BLUE, RGB_BLACK); |
- |
- if (ch == BACKSPACE) //backspace |
- i--; |
- if (++i >= MYNCHAR * 9) { |
- i = 0; |
- grx_box(315, 15, 623, 223, RGB_BLACK); |
- } |
- } |
- |
- task_endcycle(); |
- } |
-} |
- |
-void my_mouse(MOUSE_EVT *e) |
-{ |
- char st[20]; |
- char pressed = 0; |
- |
- sprintf(st, "X Axis : %3d (%4d)", e->x, e->dx); |
- grx_text(st, 100, 280, RGB_YELLOW, RGB_BLACK); |
- sprintf(st, "Y Axis : %3d (%4d)", e->y, e->dy); |
- grx_text(st, 100, 320, RGB_YELLOW, RGB_BLACK); |
- sprintf(st, "Z Axis : %3d (%4d)", e->z, e->dz); |
- grx_text(st, 100, 360, RGB_YELLOW, RGB_BLACK); |
- sprintf(st, "Buttons: %6x ", (int)e->buttons); |
- grx_text(st, 100, 400, RGB_YELLOW, RGB_BLACK); |
- |
- if ((e->x > 377) && (e->x < 401) && (e->y > 300) && (e->y < 360) && (e->buttons == MOUSE_LBUTTON)){ |
- if (!pressed) { |
- speaker_sound(277, 0); /* DO# */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 407) && (e->x < 431) && (e->y > 300) && (e->y < 360) && (e->buttons == MOUSE_LBUTTON)){ |
- if (!pressed) { |
- speaker_sound(311, 0); /* RE# */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 467) && (e->x < 491) && (e->y > 300) && (e->y < 360) && (e->buttons == MOUSE_LBUTTON)){ |
- if (!pressed) { |
- speaker_sound(370, 0); /* FA# */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 497) && (e->x < 521) && (e->y > 300) && (e->y < 360) && (e->buttons == MOUSE_LBUTTON)){ |
- if (!pressed) { |
- speaker_sound(415, 0); /* SOL# */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 527) && (e->x < 551) && (e->y > 300) && (e->y < 360) && (e->buttons == MOUSE_LBUTTON)){ |
- if (!pressed) { |
- speaker_sound(466, 0); /* LA# */ |
- pressed = 1; |
- } |
- return; |
- } |
- |
- if ((e->x > 360) && (e->x < 388) && (e->y > 300) && (e->y < 400) && (e->buttons == MOUSE_LBUTTON)){ |
- if (!pressed) { |
- speaker_sound(262, 0); /* DO */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 390) && (e->x < 418) && (e->y > 300) && (e->y < 400) && (e->buttons == MOUSE_LBUTTON)) { |
- if (!pressed) { |
- speaker_sound(294, 0); /* RE */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 420) && (e->x < 448) && (e->y > 300) && (e->y < 400) && (e->buttons == MOUSE_LBUTTON)) { |
- if (!pressed) { |
- speaker_sound(330, 0); /* MI */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 450) && (e->x < 478) && (e->y > 300) && (e->y < 400) && (e->buttons == MOUSE_LBUTTON)) { |
- if (!pressed) { |
- speaker_sound(349, 0); /* FA */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 480) && (e->x < 508) && (e->y > 300) && (e->y < 400) && (e->buttons == MOUSE_LBUTTON)) { |
- if (!pressed) { |
- speaker_sound(392, 0); /* SOL */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 510) && (e->x < 538) && (e->y > 300) && (e->y < 400) && (e->buttons == MOUSE_LBUTTON)) { |
- if (!pressed) { |
- speaker_sound(440, 0); /* LA */ |
- pressed = 1; |
- } |
- return; |
- } |
- if ((e->x > 540) && (e->x < 568) && (e->y > 300) && (e->y < 400) && (e->buttons == MOUSE_LBUTTON)) { |
- if (!pressed) { |
- speaker_sound(494, 0); /* SI */ |
- pressed = 1; |
- } |
- return; |
- } |
- |
- speaker_sound(0, 0); |
- pressed = 0; |
-} |
- |
-void graph_init(void) |
-{ |
- grx_rect( 4, 4, 634, 474, RGB_WHITE); |
- grx_rect( 14, 14, 304, 224, RGB_YELLOW); |
- grx_rect(314, 14, 624, 224, RGB_RED); |
- grx_rect( 14, 234, 304, 464, RGB_GREEN); |
- grx_rect(314, 234, 624, 464, RGB_BLUE); |
- |
- /* Draw Teyboard */ |
- grx_box(360, 300, 388, 400, RGB_WHITE); /* DO */ |
- grx_box(390, 300, 418, 400, RGB_WHITE); /* RE */ |
- grx_box(420, 300, 448, 400, RGB_WHITE); /* MI */ |
- grx_box(450, 300, 478, 400, RGB_WHITE); /* FA */ |
- grx_box(480, 300, 508, 400, RGB_WHITE); /* SOL */ |
- grx_box(510, 300, 538, 400, RGB_WHITE); /* LA */ |
- grx_box(540, 300, 568, 400, RGB_WHITE); /* SI */ |
- |
- grx_box(377, 301, 401, 360, RGB_BLACK); /* DO# */ |
- grx_box(407, 301, 431, 360, RGB_BLACK); /* RE# */ |
- grx_box(467, 301, 491, 360, RGB_BLACK); /* FA# */ |
- grx_box(497, 301, 521, 360, RGB_BLACK); /* SOL# */ |
- grx_box(527, 301, 551, 360, RGB_BLACK); /* LA# */ |
-} |
- |
-void start_sound(void) |
-{ |
- KEY_EVT ev; |
- |
- speaker_sound(440, 400); |
- while ( (sys_gettime(NULL)/1000) < 1000); |
- |
- ev.ascii = 'q'; |
- ev.scan = KEY_Q; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'w'; |
- ev.scan = KEY_W; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'e'; |
- ev.scan = KEY_E; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'r'; |
- ev.scan = KEY_R; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 't'; |
- ev.scan = KEY_T; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'y'; |
- ev.scan = KEY_Y; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'u'; |
- ev.scan = KEY_U; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'i'; |
- ev.scan = KEY_I; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'o'; |
- ev.scan = KEY_O; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = 'p'; |
- ev.scan = KEY_P; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = '['; |
- ev.scan = KEY_BRL; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
- |
- ev.ascii = ']'; |
- ev.scan = KEY_BRR; |
- ev.flag = 0; |
- ev.status = KEY_PRESSED; |
- keyb_hook(ev, my_note, FALSE); |
- ev.status = KEY_RELEASED; |
- keyb_hook(ev, no_note, FALSE); |
-} |
- |
-int main(int argc, char **argv) |
-{ |
- SOFT_TASK_MODEL mp; |
- PID pid; |
- |
- KEY_EVT ev; |
- |
- ev.ascii = 'c'; |
- ev.scan = KEY_C; |
- ev.status = KEY_PRESSED; |
- ev.flag = CNTL_BIT; |
- keyb_hook(ev, my_sysend, FALSE); |
- ev.flag = CNTR_BIT; |
- keyb_hook(ev, my_sysend, FALSE); |
- |
- graph_init(); |
- |
- mouse_grxlimits(639, 479); |
- mouse_setposition(319, 239, 0); |
- mouse_hook(my_mouse); |
- mouse_grxcursor(ENABLE, 2); |
- |
- soft_task_default_model(mp); |
- soft_task_def_level(mp,2); |
- soft_task_def_ctrl_jet(mp); |
- soft_task_def_met(mp,700); |
- soft_task_def_period(mp,10000); |
- soft_task_def_usemath(mp); |
- pid = task_create("Key_Print", my_getch, &mp, NULL); |
- if (pid == NIL) { |
- sys_shutdown_message("Could not create task <Key_Print>\n"); |
- exit(1); |
- } else |
- task_activate(pid); |
- |
- if (JOY26_installed()) { |
- soft_task_default_model(mp); |
- soft_task_def_level(mp,2); |
- soft_task_def_ctrl_jet(mp); |
- soft_task_def_met(mp,700); |
- soft_task_def_period(mp,10000); |
- soft_task_def_usemath(mp); |
- pid = task_create("Joy_Print", my_getjoy, &mp, NULL); |
- if (pid == NIL) { |
- sys_shutdown_message("Could not create task <Joy_Print>\n"); |
- exit(1); |
- } else |
- task_activate(pid); |
- } |
- |
- start_sound(); |
- return 0; |
-} |
Index: rel_1_5_beta1/cpufreq/initfile.c |
=================================================================== |
--- rel_1_5_beta1/cpufreq/initfile.c (revision 1579) |
+++ rel_1_5_beta1/cpufreq/initfile.c (nonexistent) |
@@ -1,184 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@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 |
- */ |
- |
-/* |
- * 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 "intdrive/intdrive/intdrive.h" |
-#include "edf/edf/edf.h" |
-#include "hardcbs/hardcbs/hardcbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "cabs/cabs/cabs.h" |
- |
-#include "drivers/shark_linuxc26.h" |
-#include "drivers/shark_input26.h" |
-#include "drivers/shark_keyb26.h" |
- |
-#include <drivers/shark_cpu26.h> |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ IntDrive Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAGS 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = -1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAGS); |
- EDF_register_level(EDF_ENABLE_ALL); |
- HCBS_register_level(HCBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- CABS_register_module(); |
- |
- return TICK; |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- /* Create the shutdown task. It will be activated at RUNLEVEL |
- SHUTDOWN */ |
- set_shutdown_task(); |
- |
- /* Init the drivers */ |
- device_drivers_init(); |
- |
- /* Set the shutdown task activation */ |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- //sys_set_reboot(EXIT_MODE_HALT); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
-void set_shutdown_task() { |
- |
- /* WARNING: the shutdown task is a background thread. It cannot execute |
- if the system is overloaded */ |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-int device_drivers_init() { |
- |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- |
- CPU26_init(); |
- |
- CPU26_DVS_init(); |
- |
- INPUT26_init(); |
- |
- keyb_def_ctrlC(kparms, NULL); |
- |
- KEYB26_init(&kparms); |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_close() { |
- |
- //CPU26_DVS_close(); |
- |
- KEYB26_close(); |
- |
- INPUT26_close(); |
- |
- return 0; |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) |
-{ |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- |
- return NULL; |
- |
-} |
- |
Index: rel_1_5_beta1/cpufreq/cpufreq.c |
=================================================================== |
--- rel_1_5_beta1/cpufreq/cpufreq.c (revision 1579) |
+++ rel_1_5_beta1/cpufreq/cpufreq.c (nonexistent) |
@@ -1,75 +0,0 @@ |
- |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni |
- * Giacomo Guidi <giacomo@gandalf.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 |
- */ |
- |
-/* |
- * 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/shark_keyb26.h> |
-#include <drivers/shark_cpu26.h> |
- |
-void endfunc(KEY_EVT *e) |
-{ |
- exit(0); |
-} |
- |
-int main(int argc, char **argv) |
-{ |
- int val, num; |
- char buf[1000]; |
- |
- CPU26_showinfo(); |
- |
- val = CPU26_get_min_frequency(); |
- cprintf("Min freq: %d\n", val); |
- |
- val = CPU26_get_max_frequency(); |
- cprintf("Max freq: %d\n", val); |
- |
- val = CPU26_get_cur_frequency(); |
- cprintf("Current freq: %d\n", val); |
- |
- num = CPU26_show_frequencies(buf); |
- if (num>0) |
- cprintf("Allowed frequencys: %s\n", buf); |
- num = CPU26_get_frequencies(cpu26_freqs); |
- |
- if (num>0) { |
- CPU26_set_frequency(cpu26_freqs[0], DVS_RELATION_L); |
- val = CPU26_get_cur_frequency(); |
- cprintf("Actual freq: %d\n", val); |
- } |
- |
- endfunc(NULL); |
- |
- return 0; |
-} |
/rel_1_5_beta1/cpufreq/cpufreq.c |
Property changes: |
Deleted: svn:executable |
## -1 +0,0 ## |
-* |
\ No newline at end of property |
Index: rel_1_5_beta1/cpufreq/makefile |
=================================================================== |
--- rel_1_5_beta1/cpufreq/makefile (revision 1579) |
+++ rel_1_5_beta1/cpufreq/makefile (nonexistent) |
@@ -1,16 +0,0 @@ |
-# |
-# |
-# |
- |
-ifndef BASE |
-BASE=../.. |
-endif |
-include $(BASE)/config/config.mk |
- |
-PROGS= cpufreq |
- |
-include $(BASE)/config/example.mk |
- |
-cpufreq: |
- make -f $(SUBMAKE) APP=cpufreq INIT= OTHEROBJS="initfile.o" SHARKOPT="__INPUT__ __CPU__ __LINUXC26__ __PCI__" |
- |
Index: rel_1_5_beta1/loader/makefile |
=================================================================== |
--- rel_1_5_beta1/loader/makefile (revision 1579) |
+++ rel_1_5_beta1/loader/makefile (nonexistent) |
@@ -1,88 +0,0 @@ |
-# |
-# help can be found in readme.txt |
-# |
- |
-# ----------------------------------------------------- |
-# |
-# OS dependent variables: |
- |
-# all the OS dependent variables and dependencies are under $(OS)/makefile.in |
- |
-# This makefile will execute the dependency os_specific_dep to "fill" |
-# the out directory with OS-specific stuffs; Then, the makefile |
-# generated in the out directory will be executed with $(TEST) as |
-# parameter. |
- |
-ifndef $(BASE) |
-BASE=../.. |
-endif |
- |
-include $(BASE)/config/config.mk |
- |
-ifeq ($(OS),MARTE) |
-OSINCLUDE=marte/makefile.in |
-endif |
- |
-ifeq ($(OS),SHARK) |
-OSINCLUDE=shark/makefile.in |
-endif |
- |
-# ----------------------------------------------------- |
- |
-.PHONY: all clean help |
- |
-help: |
-ifeq ($(CAT),cat) |
- cat readme.txt |
-endif |
- |
-all: out out/common.done out/$(TEST).done os_specific_dep |
- make -C out $(TEST) |
- |
-clean: |
- make -C generators clean |
- make -C generators/java clean |
- rm -rf out |
- |
-out/common.done: |
- cd out; cp -sf ../common/*.c . |
- cd out; cp -sf ../common/*.h . |
- touch out/common.done |
- |
-# note: the out dependency is present only in the "all" dependency |
-# (there is some strange case with the updating of the out date that I |
-# do not know how to resolve... |
-out: |
- mkdir out |
- |
-# ----------------------------------------------------- |
-# |
-# Testcase generation |
- |
-# .FSF Format |
-# ----------------------- |
- |
-generators/event_gen: |
- make -C generators event_gen |
- |
-out/%.done: loadfile/%.fsf generators/event_gen |
- cd out; ../generators/event_gen ../loadfile/$(TEST).fsf |
- touch out/$*.done |
- |
-# .FSF2 Format |
-# ----------------------- |
- |
-generators/java/Applicazione.class: |
- make -C generators/java all |
- |
-out/%.done: loadfile/%.fsf2 generators/java/Applicazione.class |
- cd generators/java; ./java_gen ../../loadfile/$(TEST).fsf2; mv event.c ../../out/ |
- touch out/$*.done |
- |
-# other file formats |
-# ----------------------- |
-out/%.done: loadfile/%.otherformat |
- echo Other file formats that are not specified yet... |
- touch out/$*.done |
- |
-include $(OSINCLUDE) |
Index: rel_1_5_beta1/loader/loadfile/loadm.fsf |
=================================================================== |
--- rel_1_5_beta1/loader/loadfile/loadm.fsf (revision 1579) |
+++ rel_1_5_beta1/loader/loadfile/loadm.fsf (nonexistent) |
@@ -1,72 +0,0 @@ |
-# CONTRACT SECTION |
-# |
-# CONTRACT NUMBER:CMIN:TMAX:CMAX:TMIN:WORKLOAD:DEADLINE:LOCAL SCHEDULER |
-# |
-# YOU WILL HAVE A SERVER FOR EACH SPECIFIED CONTRACT, |
-# SO IN THE TASK SECTION YOU CAN SPECIFY THE "CONTRACT NUMBER" |
-# INSTEAD OF THE SERVER NUMBER, WHICH IS CALCULATED INSIDE THE |
-# LOADER |
-# |
-# ALL THE TIME PARAMETERS INSIDE THIS FILE ARE ALWAYS EXPRESSED AS |
-# "[SECONDS][MICROSECONDS]" TO AVOID FLOATING POINT CALCULATIONS |
-# |
-# WORKLOAD |
-# 0 BOUNDED |
-# 1 INDETERMINATED |
-# |
-# LOCAL SCHEDULER |
-# NONE - DEFAULT FOR THE FRAMEWORK |
-# POSIX |
-# EDF |
-# RM |
-# |
-# TASK SECTION |
-# |
-# TASK TYPE:CONTRACT NUMBER:LOCAL SCHEDULER:NUMBER OF TASK:DEADLINE:WCET:TASK ACT TYPE (PAR1,PAR2,...): |
-# :TASK EXEC TYPE (PAR1,PAR2,...):CRITICAL SESSION (PAR1,PAR2,PAR3,PAR4); |
-# |
-# TASK TYPE |
-# OS - ONE_SHOT |
-# CT - CYCLICAL_TASK |
-# BT - BACKGROUND_TASK |
-# |
-# TASK EXEC TYPE |
-# EXEC_CONST(TIME) |
-# - CONSTANT EXEC TIME |
-# EXEC_MEAN(MEAN, DELTA) |
-# - VARIABLE EXEC TIME WITH CONSTANT DISTRIBUTION |
-# |
-# TASK ACTIVATION TIME |
-# ACT_SINGLE(START_TIME) |
-# ACT_PERIODIC(START_TIME, PERIOD) |
-# ACT_MEAN(START_TIME, MEAN, DELTA) |
-# |
-# CRITICAL SESSION |
-# CRIT(RES NUMBER, BLOCKING_TIME) |
-# NO_CRIT |
-# |
- |
-TOTAL_EXEC_TIME:[20][0]; |
-# SIMULATION TOTAL TIME |
- |
-CONTRACT SECTION |
- |
-[0]:[0][6000]:[0][30000]:[0][6000]:[0][30000]:[0]:[0][0]:EDF; |
-[1]:[0][6000]:[0][60000]:[0][6000]:[0][60000]:[0]:[0][0]:EDF; |
-[2]:[0][12000]:[0][60000]:[0][12000]:[0][60000]:[0]:[0][0]:POSIX; |
- |
-END |
- |
-TASK SECTION |
- |
-CT:[0]:EDF:[2]:[1][0]:[0][40000]:ACT_PERIODIC([1][0],[1][0]): |
-:EXEC_CONST([0][16000]):CRIT([0],[0][2000]); |
- |
-CT:[1]:EDF:[2]:[1][0]:[0][40000]:ACT_PERIODIC([2][0],[1][0]): |
-:EXEC_MEAN([0][16000],[0][10000]):CRIT([0],[0][2000]); |
- |
-BT:[2]:POSIX:[2]:[0][0]:[0][0]:ACT_SINGLE([3][0]): |
-:EXEC_CONST([0][10000]):CRIT([0],[0][2000]); |
- |
-END |
- |
Index: rel_1_5_beta1/loader/loadfile/load.fsf |
=================================================================== |
--- rel_1_5_beta1/loader/loadfile/load.fsf (revision 1579) |
+++ rel_1_5_beta1/loader/loadfile/load.fsf (nonexistent) |
@@ -1,76 +0,0 @@ |
-# CONTRACT SECTION |
-# |
-# CONTRACT NUMBER:CMIN:TMAX:CMAX:TMIN:WORKLOAD:DEADLINE:LOCAL SCHEDULER |
-# |
-# YOU WILL HAVE A SERVER FOR EACH SPECIFIED CONTRACT, |
-# SO IN THE TASK SECTION YOU CAN SPECIFY THE "CONTRACT NUMBER" |
-# INSTEAD OF THE SERVER NUMBER, WHICH IS CALCULATED INSIDE THE |
-# LOADER |
-# |
-# ALL THE TIME PARAMETERS INSIDE THIS FILE ARE ALWAYS EXPRESSED AS |
-# "[SECONDS][MICROSECONDS]" TO AVOID FLOATING POINT CALCULATIONS |
-# |
-# WORKLOAD |
-# 0 BOUNDED |
-# 1 INDETERMINATED |
-# |
-# LOCAL SCHEDULER |
-# POSIX |
-# EDF |
-# RM |
-# NONE DEFAULT FROM THE FRAMEWORK |
-# |
-# TASK SECTION |
-# |
-# TASK TYPE:CONTRACT NUMBER:LOCAL SCHEDULER:NUMBER OF TASK:DEADLINE:WCET:TASK ACT TYPE (PAR1,PAR2,...): |
-# :TASK EXEC TYPE (PAR1,PAR2,...):CRITICAL SESSION (PAR1,PAR2,PAR3,PAR4); |
-# |
-# TASK TYPE |
-# OS - ONE_SHOT |
-# CT - CYCLICAL_TASK |
-# BT - BACKGROUND_TASK |
-# |
-# TASK EXEC TYPE |
-# EXEC_CONST(TIME) |
-# - CONSTANT EXEC TIME |
-# EXEC_MEAN(MEAN, DELTA) |
-# - VARIABLE EXEC TIME WITH CONSTANT DISTRIBUTION |
-# |
-# TASK ACTIVATION TIME |
-# ACT_SINGLE(START_TIME) |
-# ACT_PERIODIC(START_TIME, PERIOD) |
-# ACT_MEAN(START_TIME, MEAN, DELTA) |
-# |
-# CRITICAL SESSION |
-# CRIT(RES NUMBER, BLOCKING_TIME) |
-# NO_CRIT |
-# |
- |
-TOTAL_EXEC_TIME:[20][0]; |
-# SIMULATION TOTAL TIME |
- |
-CONTRACT SECTION |
- |
-[0]:[0][3000]:[0][10000]:[0][3000]:[0][10000]:[0]:[0][9000]:POSIX; |
-[1]:[0][6000]:[0][30000]:[0][6000]:[0][30000]:[0]:[0][0]:POSIX; |
-[2]:[0][3000]:[0][30000]:[0][3000]:[0][30000]:[0]:[0][0]:POSIX; |
-[3]:[0][3000]:[0][20000]:[0][3000]:[0][20000]:[0]:[0][0]:POSIX; |
- |
-END |
- |
-TASK SECTION |
- |
-BT:[0]:POSIX:[1]:[0][0]:[0][0]:ACT_SINGLE([1][0]): |
-:EXEC_CONST([0][25000]):NO_CRIT; |
- |
-BT:[1]:POSIX:[1]:[0][0]:[0][0]:ACT_SINGLE([2][0]): |
-:EXEC_CONST([0][16000]):NO_CRIT; |
- |
-OS:[2]:POSIX:[1]:[0][0]:[0][0]:ACT_SINGLE([3][0]): |
-:EXEC_CONST([1][0]):NO_CRIT; |
- |
-BT:[3]:POSIX:[5]:[0][0]:[0][0]:ACT_SINGLE([4][0]): |
-:EXEC_CONST([0][10000]):NO_CRIT; |
- |
-END |
- |
Index: rel_1_5_beta1/loader/loadfile/loadxml.fsf2 |
=================================================================== |
--- rel_1_5_beta1/loader/loadfile/loadxml.fsf2 (revision 1579) |
+++ rel_1_5_beta1/loader/loadfile/loadxml.fsf2 (nonexistent) |
@@ -1,59 +0,0 @@ |
-<?xml version="1.0" encoding="UTF-8"?> |
-<fsf_framework xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../generators/java/fsf-schema.xsd"> |
- |
-<simulation> |
-<time>20s 0u</time> |
-</simulation> |
-<contract> |
- <cmin>0s 3000u</cmin> |
- <tmax>0s 10000u</tmax> |
- <cmax>0s 3000u</cmax> |
- <tmin>0s 10000u</tmin> |
- <workload>0</workload> |
- <localscheduler type="POSIX"> |
- <task_section type="BackTask"> |
- <number>1</number> |
- <act_section> |
- <start_time>3s 0u</start_time> |
- </act_section> |
- <exec_section> |
- <exec_time>3s 0u</exec_time> |
- </exec_section> |
- </task_section> |
- <task_section type="OneShot"> |
- <number>2</number> |
- <dline>0s 0u</dline> |
- <wcet>0s 0u</wcet> |
- <act_section> |
- <start_time>3s 0u</start_time> |
- </act_section> |
- <exec_section> |
- <exec_time>3s 0u</exec_time> |
- </exec_section> |
- </task_section> |
- </localscheduler> |
-</contract> |
-<contract> |
- <cmin>0s 3000u</cmin> |
- <tmax>0s 10000u</tmax> |
- <cmax>0s 3000u</cmax> |
- <tmin>0s 10000u</tmin> |
- <workload>0</workload> |
- <localscheduler type="EDF"> |
- <task_section type="CyclicalTask"> |
- <number>1</number> |
- <dline>1s 0u</dline> |
- <wcet>0s 100000u</wcet> |
- <act_section> |
- <start_time>3s 0u</start_time> |
- <period_time>1s 0u</period_time> |
- </act_section> |
- <exec_section> |
- <exec_time>0s 10000u</exec_time> |
- <delta_time>0s 10000u</delta_time> |
- </exec_section> |
- </task_section> |
- </localscheduler> |
-</contract> |
- |
-</fsf_framework> |
Index: rel_1_5_beta1/loader/common/time.h |
=================================================================== |
--- rel_1_5_beta1/loader/common/time.h (revision 1579) |
+++ rel_1_5_beta1/loader/common/time.h (nonexistent) |
@@ -1,65 +0,0 @@ |
-#ifndef __TIME_H__ |
-#define __TIME_H__ |
- |
-#define TIMESPEC2NANOSEC(t) ((t)->tv_sec * 1000000000 + (t)->tv_nsec) |
-#define TIMESPEC2USEC(t) ((t)->tv_sec * 1000000 + (t)->tv_nsec / 1000) |
-#define NULL_TIMESPEC(t) ((t)->tv_sec = (t)->tv_nsec = 0) |
-#define ADDNANO2TIMESPEC(n, t) ((t)->tv_nsec += (n), \ |
- (t)->tv_sec += (t)->tv_nsec / 1000000000, \ |
- (t)->tv_nsec %= 1000000000) |
- |
-#define SUBTIMESPEC(s1, s2, d) \ |
- ((d)->tv_nsec = ((s1)->tv_nsec >= (s2)->tv_nsec) ? \ |
- (((d)->tv_sec = (s1)->tv_sec - (s2)->tv_sec), \ |
- (s1)->tv_nsec - (s2)->tv_nsec) \ |
- : \ |
- (((d)->tv_sec = (s1)->tv_sec - (s2)->tv_sec - 1), \ |
- (1000000000 + (s1)->tv_nsec - (s2)->tv_nsec))) |
- |
-/* |
- * ...and these not! |
- */ |
- |
-extern __inline__ void ADDTIMESPEC(const struct timespec *s1, |
- const struct timespec *s2, |
- struct timespec *d) |
-{ |
- d->tv_sec = s1->tv_sec + s2->tv_sec; |
- d->tv_nsec = s1->tv_nsec + s2->tv_nsec; |
- |
- if (d->tv_nsec < 0) { |
- d->tv_sec--; |
- d->tv_nsec += 1000000000; |
- } else if (d->tv_nsec >= 1000000000) { |
- d->tv_sec++; |
- d->tv_nsec -= 1000000000; |
- } |
-} |
- |
- |
-#define ADDUSEC2TIMESPEC(m, t) ((t)->tv_nsec += (m%1000000)*1000, \ |
- (t)->tv_sec += ((t)->tv_nsec / 1000000000) + (m/1000000), \ |
- (t)->tv_nsec %= 1000000000) |
- |
-#define TIMESPEC_A_LT_B(a,b) \ |
- ( \ |
- ((a)->tv_sec < (b)->tv_sec) || \ |
- ((a)->tv_sec == (b)->tv_sec && (a)->tv_nsec < (b)->tv_nsec) \ |
- ) |
- |
-#define TIMESPEC_A_GT_B(a,b) \ |
- ( \ |
- ((a)->tv_sec > (b)->tv_sec) || \ |
- ((a)->tv_sec == (b)->tv_sec && (a)->tv_nsec > (b)->tv_nsec) \ |
- ) |
- |
-#define TIMESPEC_A_EQ_B(a,b) \ |
- ((a)->tv_sec == (b)->tv_sec && (a)->tv_nsec == (b)->tv_nsec) |
- |
-#define TIMESPEC_A_NEQ_B(a,b) \ |
- ((a)->tv_sec != (b)->tv_sec || (a)->tv_nsec != (b)->tv_nsec) |
- |
-#define TIMESPEC_ASSIGN(t1,t2) \ |
- ((t1)->tv_sec = (t2)->tv_sec, (t1)->tv_nsec = (t2)->tv_nsec) |
- |
-#endif |
Index: rel_1_5_beta1/loader/common/lconst.h |
=================================================================== |
--- rel_1_5_beta1/loader/common/lconst.h (revision 1579) |
+++ rel_1_5_beta1/loader/common/lconst.h (nonexistent) |
@@ -1,37 +0,0 @@ |
-#define PAR_TOTAL_EXEC_TIME 0 |
-#define PAR_TIME 1 |
-#define PAR_ACT_TYPE 2 |
-#define PAR_TASK_NUMBER 3 |
-#define PAR_EXEC_TYPE 4 |
-#define PAR_TASK_TYPE 5 |
-#define PAR_NOTHING 6 |
-#define PAR_DEADLINE 7 |
-#define PAR_ERROR 8 |
-#define PAR_FOUND 9 |
-#define PAR_CRIT_SESSION 10 |
-#define PAR_END 11 |
- |
-#define PAR_EXEC_CONST 12 |
-#define PAR_EXEC_MEAN 13 |
- |
-#define PAR_CONTRACT_SECTION 14 |
-#define PAR_TASK_SECTION 15 |
- |
-#define PAR_ACT_SINGLE 16 |
-#define PAR_ACT_PERIODIC 17 |
-#define PAR_ACT_MEAN 18 |
- |
-#define PAR_TASK_OS 21 |
-#define PAR_TASK_CT 22 |
-#define PAR_TASK_BT 23 |
- |
-#define PAR_NO_CRIT 26 |
-#define PAR_CRIT 27 |
- |
-#define PAR_LOCAL_SCHEDULER 29 |
-#define PAR_POSIX 30 |
-#define PAR_EDF 31 |
-#define PAR_RM 32 |
-#define PAR_NONE 33 |
- |
-#define PAR_FSF_SERVER 34 |
Index: rel_1_5_beta1/loader/common/calibrate.h |
=================================================================== |
--- rel_1_5_beta1/loader/common/calibrate.h (revision 1579) |
+++ rel_1_5_beta1/loader/common/calibrate.h (nonexistent) |
@@ -1,8 +0,0 @@ |
- |
-/* Nunber of calibration iterations */ |
-#define CALIBRATION_DELTA 100000 |
- |
-/* Usec of exec time for CALIBRATING_DELTA iterations |
- Set to 0 if you calibrate during loader execution */ |
-#define CALIBRATION_RESULT 0 |
- |
Index: rel_1_5_beta1/loader/common/nload.c |
=================================================================== |
--- rel_1_5_beta1/loader/common/nload.c (revision 1579) |
+++ rel_1_5_beta1/loader/common/nload.c (nonexistent) |
@@ -1,315 +0,0 @@ |
-/* FSF Loader |
- * |
- * Load and run a specific set of tasks/contracts |
- * |
- * This is the system indipendent part |
- * |
- * Giacomo Guidi <giacomo@gandalf.sssup.it> |
- * Michael Timarchi <trimarchi@gandalf.sssup.it> |
- * |
- */ |
- |
-#include "fsf.h" |
- |
-#include "calibrate.h" |
-#include "func.h" //Generic function definitions |
-#include "lconst.h" |
- |
-/* Activate task output debug */ |
-#define TASK_OUTPUT |
- |
-int cal_cycles = CALIBRATION_RESULT; //Calibration const, it converts usec to cycles |
-struct timespec zero_time; //Zero time of the simulation |
-extern struct loader_task loader_task_list[]; //Loader task array |
-extern int total_loader_task; //Loader task number |
- |
-/* OS: Oneshot Task: |
- begin |
- - execution |
- end |
-*/ |
-void *oneshot_task(void *arg) |
-{ |
- long long i,exec_cycles = 0; |
- struct loader_task *l = (struct loader_task *)(arg); |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- char tmp[20]; |
- #endif |
- #endif |
- |
- start_oneshot_task(); |
- |
- /* to avoid problem if the task start inside the create function */ |
- if (l->act_current == 0) l->act_current = 1; |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"[ONESHOT]"); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, GREEN, tmp); |
- #endif |
- #endif |
- |
- exec_cycles = (long long)(TIMESPEC2USEC(&l->exec[l->act_current-1])) * CALIBRATION_DELTA / cal_cycles; |
- |
- /* Execution delay */ |
- for (i=0;i<exec_cycles;i++) |
- __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- "cpuid\n\t" |
- :::"eax","ebx","ecx","edx"); |
- |
- end_oneshot_task(); |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"[--END--]"); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, GREEN, tmp); |
- #endif |
- #endif |
- |
- return NULL; |
- |
-} |
- |
-/* CT: Cyclical Task: |
- begin |
- while (1) { |
- - execution |
- - end_cycle |
- } |
- end (never end) |
-*/ |
-void *periodic_task(void *arg) |
-{ |
- long long i,exec_cycles = 0,block_cycles = 0; |
- int act = 0; |
- struct loader_task *l = (struct loader_task *)(arg); |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- char tmp[20]; |
- #endif |
- #endif |
- |
- start_periodic_task(); |
- |
- if (l->act_current == 0) l->act_current = 1; |
- |
- while(1) { |
- |
- start_job_periodic_task(); |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"C[%06d]",act); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, GREEN, tmp); |
- #endif |
- #endif |
- |
- exec_cycles = (long long)(TIMESPEC2USEC(&l->exec[l->act_current-1])) * CALIBRATION_DELTA / cal_cycles; |
- block_cycles = (long long)(TIMESPEC2USEC(&l->block[l->act_current-1])) * CALIBRATION_DELTA / cal_cycles; |
- |
- /* Execution delay */ |
- for (i=0;i<exec_cycles;i++) |
- __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- "cpuid\n\t" |
- :::"eax","ebx","ecx","edx"); |
- if (l->muxstatus == 2) { |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"C[LOCK%02d]",l->resource); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, RED, tmp); |
- #endif |
- #endif |
- |
- generic_lock_mutex(l->resource); |
- for (i=0;i<block_cycles;i++) |
- __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- "cpuid\n\t" |
- :::"eax","ebx","ecx","edx"); |
- generic_unlock_mutex(l->resource); |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"C[FREE%02d]",l->resource); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, GREEN, tmp); |
- #endif |
- #endif |
- |
- } |
- |
- end_job_periodic_task(); |
- |
- generic_task_endcycle(); |
- |
- act++; |
- |
- } |
- |
- end_periodic_task(); |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"[--END--]"); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, GREEN, tmp); |
- #endif |
- #endif |
- |
- return NULL; |
- |
-} |
- |
-/* BT: Background Task: |
- begin |
- while (1) { |
- - execution |
- } |
- end (never end) |
-*/ |
-void *back_task(void *arg) |
-{ |
- long long i,exec_cycles = 0,block_cycles = 0; |
- int act = 0; |
- struct loader_task *l = (struct loader_task *)(arg); |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- char tmp[20]; |
- #endif |
- #endif |
- |
- start_back_task(); |
- |
- if (l->act_current == 0) l->act_current = 1; |
- |
- while(1) { |
- |
- start_job_back_task(); |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"B[%06d]",act); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, GREEN, tmp); |
- #endif |
- #endif |
- |
- exec_cycles = (long long)(TIMESPEC2USEC(&l->exec[l->act_current-1])) * CALIBRATION_DELTA / cal_cycles; |
- block_cycles = (long long)(TIMESPEC2USEC(&l->block[l->act_current-1])) * CALIBRATION_DELTA / cal_cycles; |
- |
- /* Execution delay */ |
- for (i=0;i<exec_cycles;i++) |
- __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- "cpuid\n\t" |
- :::"eax","ebx","ecx","edx"); |
- if (l->muxstatus == 2) { |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"B[LOCK%02d]",l->resource); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, RED, tmp); |
- #endif |
- #endif |
- |
- generic_lock_mutex(l->resource); |
- for (i=0;i<block_cycles;i++) |
- __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- "cpuid\n\t" |
- :::"eax","ebx","ecx","edx"); |
- generic_unlock_mutex(l->resource); |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"C[FREE%02d]",l->resource); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, GREEN, tmp); |
- #endif |
- #endif |
- |
- } |
- |
- end_job_back_task(); |
- |
- act++; |
- |
- } |
- |
- end_back_task(); |
- |
- #ifdef TASK_OUTPUT |
- #ifdef OS_SHARK |
- sprintf(tmp,"[--END--]"); |
- printf_xy((get_current_exec_task() % 5) * 9 + 34,get_current_exec_task() / 5 + 5, GREEN, tmp); |
- #endif |
- #endif |
- |
- return NULL; |
- |
-} |
- |
-/* Task create */ |
-/* this function create the task struct in memory */ |
-void loader_task_create() |
-{ |
- |
- struct loader_task *current = loader_task_list; |
- int i=0, k=0; |
- |
- while (k <total_loader_task) { |
- k++; |
- |
- for (i=0; i < current->number; i++) { |
- |
- pthread_t j; |
- int err = 0; |
- |
- switch(current->task_type) { |
- case PAR_TASK_OS: |
- err = fsf_create_local_thread(generic_get_server_from_contract(current->contract),generic_get_task_model(current), &j,NULL, |
- oneshot_task,(void *)current); |
- break; |
- case PAR_TASK_BT: |
- err = fsf_create_local_thread(generic_get_server_from_contract(current->contract),generic_get_task_model(current), &j,NULL, |
- back_task,(void *)current); |
- break; |
- case PAR_TASK_CT: |
- err = fsf_create_local_thread(generic_get_server_from_contract(current->contract),generic_get_task_model(current), &j,NULL, periodic_task,(void *)current); |
- break; |
- } |
- if (err) { |
- printf("Error fsf task creating %d\n", err); |
- generic_end_simulation(); |
- } |
- |
- } |
- |
- current = &loader_task_list[k]; |
- |
- } |
- |
- printf("Created %d loader tasks\n",k); |
- |
- |
-} |
- |
-/* Main Function */ |
-int start_environment() |
-{ |
- |
- extern struct timespec total_time; |
- |
- /* Calibrate the exec time */ |
- generic_calibrate_cycle(); |
- |
- /* Create the servers usign defined contracts */ |
- generic_fsfinit(); |
- |
- /* Create the tasks */ |
- loader_task_create(); |
- |
- /* Start the simulation */ |
- generic_start_simulation(); |
- |
- /* Set the simulation end time */ |
- generic_set_simulation_time(&total_time); |
- |
- return 0; |
- |
-} |
Index: rel_1_5_beta1/loader/common/nload.h |
=================================================================== |
--- rel_1_5_beta1/loader/common/nload.h (revision 1579) |
+++ rel_1_5_beta1/loader/common/nload.h (nonexistent) |
@@ -1,46 +0,0 @@ |
-/* Generic Struct for loader task */ |
-#ifndef __NLOAD_H__ |
-#define __NLOAD_H__ |
- |
-#include "func.h" //Constant definition for loader and linux parser |
- |
-struct loader_task { |
- |
- char name[20]; //Task name |
- int task_type; //Tast type (OS,CT,BT) |
- int contract; //Contract number |
- int local_scheduler; //Local scheduler for the task |
- int number; //How many copies of this task |
- int group; //Group number |
- |
- struct timespec deadline; //Task deadline |
- struct timespec wcet; //Task wcet |
- |
- int act_number; //Number of activations precalcolated |
- int act_current; //Actual activation number |
- |
- int resource; |
- int muxstatus; |
- |
- struct timespec *act; //Activation list |
- struct timespec *exec; //Execution time list |
- struct timespec *block; //Blocking time |
- |
-}; |
- |
-struct loader_contract { |
- |
- int number; //Contract number |
- struct timespec cmin; |
- struct timespec tmax; |
- struct timespec cmax; |
- struct timespec tmin; |
- int workload; |
- struct timespec deadline; |
- int local_scheduler; |
- int server; //Server number linked to this contract |
- |
-}; |
- |
-#endif |
- |
Index: rel_1_5_beta1/loader/marte/makefile.in |
=================================================================== |
--- rel_1_5_beta1/loader/marte/makefile.in (revision 1579) |
+++ rel_1_5_beta1/loader/marte/makefile.in (nonexistent) |
@@ -1,7 +0,0 @@ |
-# |
-# MaRTE OS dependecies |
-# |
- |
-os_specific_dep: |
- echo MaRTE dependencies here |
- |
Index: rel_1_5_beta1/loader/shark/func.h |
=================================================================== |
--- rel_1_5_beta1/loader/shark/func.h (revision 1579) |
+++ rel_1_5_beta1/loader/shark/func.h (nonexistent) |
@@ -1,112 +0,0 @@ |
-#ifndef __FUNC_H__ |
-#define __FUNC_H__ |
- |
-#include "kernel/kern.h" |
-#include "fsf_basic_types.h" |
-#include "fsf_core.h" |
-#include "fsf_server.h" |
-#include "shark.h" |
- |
-#define OS_SHARK |
- |
- |
-#define get_current_exec_task() exec_shadow |
-/* Return the PID/pthread_t of calling task */ |
- |
-#define generic_get_server_from_contract get_server_from_contract |
-/* Return the server_id from the contract number used |
- * inside .fsf file to define contract parameters |
- * |
- * generic_get_server_from_contract(int contract_number) */ |
- |
-#define generic_calibrate_cycle calibrate_cycle |
-/* Set the calibration parameter "cal_cycle" |
- * only if it's initialized to 0. The calibration routine |
- * calculates cal_cycle from CALIBRATION_DELTA. |
- * This step can also be performed outside the demo. |
- * Inside calibrate.h you can set the calibration parameters |
- * for calibration step performed outside. |
- * |
- * cal_cycle is the number of cycles that are needed to |
- * make CALIBRATION_DELTA number of iteration. |
- * |
- * kern_cli(); |
- * kern_gettime(&start); |
- * for (i=0;i<CALIBRATION_DELTA;i++) |
- * __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- * "cpuid\n\t" |
- * :::"eax","ebx","ecx","edx"); |
- * kern_gettime(&end); |
- * kern_sti(); |
- * |
- * SUBTIMESPEC(&end,&start,&diff); |
- * cal_cycles = TIMESPEC2USEC(&diff); |
- * |
- */ |
- |
-#define generic_set_next_activation set_next_activation |
-/* Set the next activation time. It's like fsf_schedule_next_timed_job |
- * but it don't return nothing |
- */ |
- |
-#define generic_set_simulation_time set_simulation_time |
-/* Set the end time of simulation */ |
- |
-#define generic_get_task_model get_task_model |
-/* Return a pointer to the struct that contains the |
- * local shceduler parameter */ |
- |
-#define generic_start_simulation start_simulation |
-/* Start the simulation */ |
- |
-#define generic_fsfinit() fsfinit() |
-/* Create the fsf_server */ |
- |
-#define generic_task_endcycle() task_endcycle() |
-/* The job is finished */ |
- |
-#define generic_end_simulation() exit(0) |
-/* Exit from simulation */ |
- |
-#define printf cprintf |
-/* Printf standard function */ |
- |
-/* Mutex */ |
-extern __inline__ void generic_lock_mutex(int res) { |
- extern mutex_t mutex_table[MAX_MUTEX]; |
- |
- mutex_lock(&mutex_table[res]); |
-} |
- |
-extern __inline__ void generic_unlock_mutex(int res) { |
- extern mutex_t mutex_table[MAX_MUTEX]; |
- |
- mutex_unlock(&mutex_table[res]); |
-} |
- |
-/* TASK RUNTIME FUNCTIONS */ |
- |
-extern __inline__ void start_oneshot_task(void) {} |
-extern __inline__ void end_oneshot_task(void) {} |
- |
-extern __inline__ void start_periodic_task(void) {} |
-extern __inline__ void start_job_periodic_task(void) { |
- task_testcancel(); |
-} |
-extern __inline__ void end_job_periodic_task(void) { |
- task_testcancel(); |
-} |
-extern __inline__ void end_periodic_task(void) {} |
- |
-extern __inline__ void start_back_task(void) {} |
-extern __inline__ void start_job_back_task(void) { |
- task_testcancel(); |
-} |
-extern __inline__ void end_job_back_task(void) { |
- task_testcancel(); |
-} |
-extern __inline__ void end_back_task(void) {} |
- |
-#endif |
- |
- |
Index: rel_1_5_beta1/loader/shark/makefile.in |
=================================================================== |
--- rel_1_5_beta1/loader/shark/makefile.in (revision 1579) |
+++ rel_1_5_beta1/loader/shark/makefile.in (nonexistent) |
@@ -1,14 +0,0 @@ |
-# |
-# Shark dependecies |
-# |
- |
-os_specific_dep: out/shark.done out/makefile |
- |
- |
-out/shark.done: |
- cd out; cp -sf ../shark/*.c . |
- cd out; cp -sf ../shark/*.h . |
- touch out/shark.done |
- |
-out/makefile: shark/shark.mak |
- sed -e "s/TEST/$(TEST)/" shark/shark.mak > out/makefile |
Index: rel_1_5_beta1/loader/shark/fsfinit.c |
=================================================================== |
--- rel_1_5_beta1/loader/shark/fsfinit.c (revision 1579) |
+++ rel_1_5_beta1/loader/shark/fsfinit.c (nonexistent) |
@@ -1,56 +0,0 @@ |
-#include "kernel/kern.h" |
-#include "fsf.h" |
-#include "fsf_server.h" |
- |
-#include "func.h" |
- |
-extern struct loader_contract loader_contract_list[]; |
-extern int total_loader_contract; |
- |
-void fsfinit() |
-{ |
- |
- struct loader_contract *c; |
- fsf_contract_parameters_t contract; |
- fsf_server_id_t server; |
- union sigval no_sigval = {0}; |
- int i; |
- |
- FSF_start_service_task(); |
- |
- for (i=0;i<total_loader_contract;i++) { |
- |
- c = &loader_contract_list[i]; |
- |
- fsf_initialize_contract(&contract); |
- |
- fsf_set_contract_basic_parameters(&contract,&c->cmin,&c->tmax,c->workload); |
- fsf_set_contract_reclamation_parameters(&contract,&c->cmax,&c->tmin,FSF_DEFAULT_GRANULARITY, NULL, 1,1); |
- |
- if (TIMESPEC2USEC(&c->deadline) != 0) |
- fsf_set_contract_timing_requirements(&contract,false,&c->deadline,0,no_sigval,0,no_sigval); |
- else |
- fsf_set_contract_timing_requirements(&contract,true,NULL,0,no_sigval,0,no_sigval); |
- |
- switch (c->local_scheduler) { |
- case PAR_EDF: |
- fsf_set_contract_scheduling_policy(&contract,FSF_EDF); |
- break; |
- case PAR_RM: |
- fsf_set_contract_scheduling_policy(&contract,FSF_FP); |
- break; |
- case PAR_POSIX: |
- fsf_set_contract_scheduling_policy(&contract,FSF_RR); |
- break; |
- |
- } |
- |
- |
- fsf_negotiate_contract(&contract,&server); |
- c->server = server; |
- |
- } |
- |
- print_server_list(); |
- |
-} |
Index: rel_1_5_beta1/loader/shark/initfile.c |
=================================================================== |
--- rel_1_5_beta1/loader/shark/initfile.c (revision 1579) |
+++ rel_1_5_beta1/loader/shark/initfile.c (nonexistent) |
@@ -1,179 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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 "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
-#include "intdrive/intdrive/intdrive.h" |
- |
-#include "posix/posix/posix.h" |
-#include "grubstar.h" |
-#include "fsf_basic_types.h" |
-#include "fsf_core.h" |
- |
-#include "pi/pi/pi.h" |
-#include "pc/pc/pc.h" |
- |
-#include "pthread.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "nop/nop/nop.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = 1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- int grubstar_level; |
- int posix_level; |
- int pi_level; |
- int pc_level; |
- |
- INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- posix_level=POSIX_register_level(RRTICK, 1, mb, 32); |
- grubstar_level = GRUBSTAR_register_level(FSF_MAX_N_SERVERS, 1); |
- |
- FSF_register_module(posix_level,grubstar_level, (int)(MAX_BANDWIDTH * 0.8)); |
- dummy_register_level(); |
- //posix_level=POSIX_register_level(RRTICK, 1, mb, 32); |
- CBS_register_level(CBS_ENABLE_ALL,1); |
- |
- SEM_register_module(); |
- |
- pi_level=PI_register_module(); |
- pc_level=PC_register_module(); |
- NOP_register_module(); |
- |
- PTHREAD_register_module(2, pi_level, pc_level); |
- |
- return TICK; |
-} |
- |
-int device_drivers_close() { |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_init() { |
- |
- LINUXC26_register_module(); |
- PCI26_init(); |
- |
- return 0; |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- return NULL; |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task", shutdown_task_body, &nrt, NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(0); |
- } |
- |
-} |
- |
-void call_shutdown_task(void *arg) { |
- |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
-int main() { |
- |
- return start_environment(); |
- |
-} |
- |
Index: rel_1_5_beta1/loader/shark/shark.c |
=================================================================== |
--- rel_1_5_beta1/loader/shark/shark.c (revision 1579) |
+++ rel_1_5_beta1/loader/shark/shark.c (nonexistent) |
@@ -1,258 +0,0 @@ |
-#include "func.h" |
-#include "calibrate.h" |
-#include <tracer.h> |
- |
-#include "FTrace_udp.h" |
-#include "FTrace_chunk.h" |
- |
-extern int cal_cycles; |
-extern struct timespec zero_time; |
-extern struct loader_task loader_task_list[]; |
-extern struct loader_contract loader_contract_list[]; |
-extern int total_loader_task; |
-extern int total_loader_contract; |
- |
-mutex_t mutex_table[MAX_MUTEX]; |
-int main_chunk; |
- |
-/* Runtime Calibration */ |
-int calibrate_cycle() |
-{ |
- long long i; |
- struct timespec start,end,diff; |
- |
- if (cal_cycles != 0) return 0; |
- |
- kern_cli(); |
- __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- "cpuid\n\t" |
- :::"eax","ebx","ecx","edx"); |
- kern_gettime(&start); |
- for (i=0;i<CALIBRATION_DELTA;i++) |
- __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- "cpuid\n\t" |
- :::"eax","ebx","ecx","edx"); |
- __asm__ __volatile__ ("xorl %%eax,%%eax\n\t" |
- "cpuid\n\t" |
- :::"eax","ebx","ecx","edx"); |
- kern_gettime(&end); |
- kern_sti(); |
- |
- SUBTIMESPEC(&end,&start,&diff); |
- cal_cycles = TIMESPEC2USEC(&diff); |
- cprintf("Calibration usec/[%d cycles] = %d\n",CALIBRATION_DELTA,cal_cycles); |
- |
- return 0; |
- |
-} |
- |
-int get_server_from_contract(int contract) |
-{ |
- |
- int i; |
- |
- for(i=0;i<total_loader_contract;i++) |
- if (loader_contract_list[i].number == contract) |
- return loader_contract_list[i].server; |
- |
- return -1; |
- |
-} |
- |
-void *get_task_model(struct loader_task *current) { |
- if (current->local_scheduler == PAR_POSIX) { |
- static NRT_TASK_MODEL nrt; |
- static fsf_sched_params_t pr; |
- |
- pr.policy=FSF_RR; |
- pr.params=&nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_save_arrivals(nrt); |
- nrt_task_def_ctrl_jet(nrt); |
- nrt_task_def_group(nrt,current->group); |
- nrt_task_def_usemath(nrt); |
- |
- return ≺ |
- |
- } |
- |
- if (current->local_scheduler == PAR_EDF) { |
- static HARD_TASK_MODEL ht; |
- static fsf_sched_params_t pr; |
- |
- pr.policy=FSF_EDF; |
- pr.params=&ht; |
- |
- hard_task_default_model(ht); |
- hard_task_def_ctrl_jet(ht); |
- hard_task_def_mit(ht,TIMESPEC2USEC(¤t->deadline)); |
- hard_task_def_wcet(ht,TIMESPEC2USEC(¤t->wcet)); |
- hard_task_def_group(ht,current->group); |
- hard_task_def_aperiodic(ht); |
- hard_task_def_usemath(ht); |
- return ≺ |
- } |
- |
- if (current->local_scheduler == PAR_NONE) { |
- static DUMMY_TASK_MODEL d; |
- static fsf_sched_params_t pr; |
- |
- pr.policy=FSF_NONE; |
- pr.params=&d; |
- |
- dummy_task_default_model(d); |
- dummy_task_def_group(d,current->group); |
- |
- return ≺ |
- } |
- |
- |
- if (current->local_scheduler == PAR_RM) { |
- static HARD_TASK_MODEL ht; |
- static fsf_sched_params_t pr; |
- |
- pr.policy=FSF_FP; |
- pr.params=&ht; |
- |
- hard_task_default_model(ht); |
- hard_task_def_mit(ht,TIMESPEC2USEC(¤t->deadline)); |
- hard_task_def_wcet(ht,TIMESPEC2USEC(¤t->wcet)); |
- hard_task_def_ctrl_jet(ht); |
- hard_task_def_group(ht,current->group); |
- hard_task_def_usemath(ht); |
- |
- return ≺ |
- } |
- |
- return NULL; |
- |
-} |
- |
-TASK finish_task() { |
- |
- #ifdef __NEW_TRACER__ |
- |
- FTrace_OSD_init_udp(1,"192.168.82.43","192.168.82.41"); |
- |
- FTrace_send_chunk(main_chunk, 0, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- |
- exit(0); |
- |
- #else |
- |
- exit(0); |
- |
- #endif |
- |
- return NULL; |
- |
-} |
- |
-void end_simulation() { |
- |
- #ifdef __NEW_TRACER__ |
- |
- int i; |
- struct loader_task *l = loader_task_list; |
- |
- NRT_TASK_MODEL nrt; |
- |
- TRACER_LOGEVENT(FTrace_EVT_trace_stop,0,0); |
- |
- FTrace_disable(); |
- |
- i = 0; |
- while (i < total_loader_task) { |
- |
- group_kill(l->group); |
- |
- i++; |
- l=&loader_task_list[i]; |
- |
- } |
- |
- nrt_task_default_model(nrt); |
- |
- task_activate(task_create("Finish",finish_task,&nrt,NULL)); |
- |
- #else |
- |
- exit(0); |
- |
- #endif |
- |
-} |
- |
-void set_simulation_time (struct timespec *total) { |
- struct timespec end_time; |
- |
- ADDTIMESPEC(&zero_time,total,&end_time); |
- kern_event_post(&end_time,(void *)((void *)(end_simulation)),NULL); |
- |
-} |
- |
-/* Set the zero_time and post the first activation event */ |
-void start_simulation() { |
- |
- int i; |
- struct loader_task *l = loader_task_list; |
- struct timespec end_time; |
- PISTAR_mutexattr_t a; |
- |
- PISTAR_mutexattr_default(a); |
- |
- i = 0; |
- |
- #ifdef __NEW_TRACER__ |
- |
- main_chunk = FTrace_chunk_create(10000000, 1000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- |
- FTrace_actual_chunk_select(main_chunk); |
- |
- FTrace_enable(); |
- |
- #endif |
- |
- TRACER_LOGEVENT(FTrace_EVT_trace_start,0,0); |
- |
- kern_gettime(&zero_time); |
- |
- while (i < total_loader_task) { |
- |
- if (l->muxstatus == 1) { |
- mutex_init(&mutex_table[l->resource],&a); |
- l->muxstatus = 2; |
- } |
- |
- if (l->act_number > 0) { |
- ADDTIMESPEC(&zero_time, &l->act[0], &end_time); |
- l->act_current++; |
- kern_event_post(&end_time,(void *)((void *)(loader_task_activate)),l); |
- } |
- |
- i++; |
- l=&loader_task_list[i]; |
- |
- } |
- |
-} |
- |
-/* Activate task and post the new activation event */ |
-void loader_task_activate(struct loader_task *l) { |
- |
- struct timespec actual_time,end_time; |
- |
- kern_gettime(&actual_time); |
- group_activate(l->group); |
- |
- if (l->act_number > l->act_current) { |
- |
- ADDTIMESPEC(&actual_time, &l->act[l->act_current], &end_time); |
- |
- l->act_current++; |
- kern_event_post(&end_time,(void *)((void *)(loader_task_activate)),l); |
- |
- } |
- |
-} |
Index: rel_1_5_beta1/loader/shark/shark.h |
=================================================================== |
--- rel_1_5_beta1/loader/shark/shark.h (revision 1579) |
+++ rel_1_5_beta1/loader/shark/shark.h (nonexistent) |
@@ -1,19 +0,0 @@ |
-#ifndef __SHARK_H__ |
-#define __SHARK_H__ |
- |
-#include "nload.h" |
-#include "lconst.h" |
- |
-#define MAX_MUTEX 20 |
- |
-int calibrate_cycle(); |
-void start_simulation(); |
-void *get_task_model(struct loader_task *current); |
-void set_simulation_time (struct timespec *total); |
-void set_next_activation(struct timespec *next); |
-void loader_task_activate(struct loader_task *l); |
-int get_server_from_contract(int contract); |
- |
-void fsfinit(); |
- |
-#endif |
Index: rel_1_5_beta1/loader/shark/shark.mak |
=================================================================== |
--- rel_1_5_beta1/loader/shark/shark.mak (revision 1579) |
+++ rel_1_5_beta1/loader/shark/shark.mak (nonexistent) |
@@ -1,13 +0,0 @@ |
-ifndef BASE |
-BASE=../../.. |
-endif |
- |
-include $(BASE)/config/config.mk |
- |
-PROGS = TEST |
- |
-include $(BASE)/config/example.mk |
- |
-TEST: |
- make -f $(SUBMAKE) APP="nload" BASE=../../.. INIT= OTHEROBJS="event.o initfile.o shark.o fsfinit.o" OTHERINCL="-I." SHARKOPT="__LINUXC26__ __PCI__ __NET__ __FIRST__" |
- cp nload TEST |
Index: rel_1_5_beta1/loader/generators/lparser.h |
=================================================================== |
--- rel_1_5_beta1/loader/generators/lparser.h (revision 1579) |
+++ rel_1_5_beta1/loader/generators/lparser.h (nonexistent) |
@@ -1,58 +0,0 @@ |
-#ifndef __LPARSER_H__ |
-#define __LPARSER_H__ |
- |
-#include "common/lconst.h" |
- |
-struct loader_task { |
- |
- char name[20]; |
- int number; |
- int group; |
- int server; |
- int local_scheduler; |
- int task_type; |
- |
- int act_type; |
- struct timespec act_par_1; |
- struct timespec act_par_2; |
- struct timespec act_par_3; |
- int exec_type; |
- struct timespec exec_par_1; |
- struct timespec exec_par_2; |
- |
- struct timespec deadline; |
- struct timespec wcet; |
- |
- int act_number; |
- struct timespec *act; |
- struct timespec *exec; |
- |
- int crit_type; |
- int resource; |
- struct timespec crit_par; |
- |
- struct loader_task *next; |
- |
-}; |
- |
-struct loader_contract { |
- |
- int number; |
- struct timespec cmin; |
- struct timespec tmax; |
- struct timespec cmax; |
- struct timespec tmin; |
- int workload; |
- struct timespec deadline; |
- int local_scheduler; |
- |
- struct loader_contract *next; |
- |
-}; |
- |
-int line_parser_contract(char **buf, int line_num, struct timespec *total_time, struct loader_contract **last); |
- |
-int line_parser_task(char **buf, int line_num, struct loader_task **last); |
- |
-#endif |
- |
Index: rel_1_5_beta1/loader/generators/java/makefile |
=================================================================== |
--- rel_1_5_beta1/loader/generators/java/makefile (revision 1579) |
+++ rel_1_5_beta1/loader/generators/java/makefile (nonexistent) |
@@ -1,17 +0,0 @@ |
-ifdef CLASSPATH |
-all: |
- javac Application.java timespec.java task_class.java -classpath "$(CLASSPATH)/jdom.jar" |
-else |
-all: |
- @echo ---------------------------------------------------------------- |
- @echo Please define the CLASSPATH environment variable!!! |
- @echo ...something like: export CLASSPATH=/usr/java/j2sdk1.4.2/jre/lib |
- @echo ---------------------------------------------------------------- |
- @exit 1 |
-endif |
- |
- |
-clean: |
- rm -f *.class |
- rm -f event.c |
- |
Index: rel_1_5_beta1/loader/generators/java/Application.java |
=================================================================== |
--- rel_1_5_beta1/loader/generators/java/Application.java (revision 1579) |
+++ rel_1_5_beta1/loader/generators/java/Application.java (nonexistent) |
@@ -1,856 +0,0 @@ |
-//package first_filter; |
- |
-import java.io.*; |
-import java.net.*; |
-import java.util.List; |
-import java.util.ArrayList; |
-import java.util.Iterator; |
-import org.jdom.*; |
-import org.jdom.input.SAXBuilder; |
-import org.jdom.output.XMLOutputter; |
-import java.util.regex.*; |
-import java.util.Random; |
- |
-/** |
- * <p>Title: First XML filter</p> |
- * <p>Description: </p> |
- * <p>Copyright: Copyright (c) 2003</p> |
- * <p>Company: Retis Lab</p> |
- * @author not attributable |
- * @version 1.0 |
- */ |
- |
-public class Application { |
- private int numElements = 0; |
- final String LOADFILE_DIR="../loadfile/"; |
- final String EVENT_DEFINE="event.c"; |
- final String ACT_LIST="event.c"; |
- private int servernumber=0; |
- private timespec simulation_time=new timespec(); |
- ArrayList local_scheduler=new ArrayList(); |
- ArrayList Task_Section=new ArrayList(); |
- private int task_group=0; |
- private int task_server=0; |
- private int current_scheduler=0; |
- |
- |
- |
- //Construct the frame |
- public Application() { |
- try { |
- jbInit(); |
- } |
- catch(Exception e) { |
- e.printStackTrace(); |
- } |
- } |
- //Component initialization |
- private void jbInit() throws Exception { |
- } |
- |
- public void process (String url) throws MalformedURLException { |
- try { |
- // Use SAXBuilder |
- SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true); |
- builder.setFeature("http://apache.org/xml/features/validation/schema", true); |
- |
- |
- Document doc = builder.build(url); |
- Element root = doc.getRootElement(); |
- |
- try { |
- // Funzione per il salvataggio del file XML |
- OutputStream fout = new FileOutputStream(EVENT_DEFINE); |
- OutputStream bout = new BufferedOutputStream(fout); |
- OutputStreamWriter out = new OutputStreamWriter(bout, "8859_1"); |
- out.write("\n#include \"func.h\"\n"); |
- |
- processElement (root,out); |
- out.flush(); |
- out.close(); |
- } catch (UnsupportedEncodingException e) { |
- System.out.println("Non sono supportati i caratteri latini"); |
- System.exit(1); |
- |
- } catch (IOException e){ |
- System.out.println("Salvatagio fallito"); |
- System.exit(1); |
- } |
- |
- |
- |
- System.out.println ("Total Number of Elements Processed: " |
- +numElements); |
- } catch (JDOMException e) { |
- System.out.println ("JDOM Exception: "+e.getMessage()); |
- } catch (java.io.IOException e) { |
- System.out.println ("File Exception: "+e.getMessage()); |
- |
- } |
-} |
- |
-// Recursive Function to Process Elements |
-// Prints the Element Name and keeps a running count |
-// out total number of elements. |
-private void processElement(Element element, OutputStreamWriter out) { |
- numElements++; |
- String elementName = element.getName(); |
- |
- System.out.println(elementName); |
- List servers = element.getChildren(); |
- Iterator iterator = servers.iterator(); |
- /* get simulation parameter */ |
- Element SimulationInfo = (Element) iterator.next(); |
- |
- Pattern pattern = Pattern.compile("[us\\s]+"); |
- try { |
- /*simulation time */ |
- |
- String[] stime = pattern.split(SimulationInfo.getChild("time").getText()); |
- out.write("struct timespec total_time={" + stime[0] + "," + stime[1] + |
- "};\n\n"); |
- simulation_time.tv_sec = Long.valueOf(stime[0].trim()).longValue(); |
- simulation_time.tv_nsec = Long.valueOf(stime[1].trim()).longValue() / |
- 1000; |
-//float f = Float.valueOf(s.trim()).floatValue(); |
- /* server section start */ |
- out.write("struct loader_contract loader_contract_list[] = {\n"); |
- int total_server=0; |
- while (iterator.hasNext()) { |
- /* get server */ |
- Element server = (Element) iterator.next(); |
- process_server_section(server, out); |
- total_server++; |
- } |
- |
- out.write("};\n\n"); |
- |
- out.write("int total_loader_contract="+total_server+";\n\n"); |
- iterator = local_scheduler.iterator(); |
- while (iterator.hasNext()) { |
- /* get server */ |
- Element loc_sched = (Element) iterator.next(); |
- process_scheduler_section(loc_sched, out); |
- task_server++; |
- } |
- |
- iterator = Task_Section.iterator(); |
- int total_task_section=0; |
- out.write("\nstruct loader_task loader_task_list[] = {\n"); |
- while (iterator.hasNext()) { |
- /* get server */ |
- task_class tsk_sec = (task_class) iterator.next(); |
- out.write(" {\"" + tsk_sec.name + "\"," + tsk_sec.task_type + "," + |
- tsk_sec.contract + |
- "," + tsk_sec.localscheduler + "," + tsk_sec.number + "," |
- + tsk_sec.group + ",{" + tsk_sec.deadline.tv_sec + |
- "," + |
- tsk_sec.deadline.tv_nsec + "}," + "{" + |
- tsk_sec.wcet.tv_sec + "," + |
- tsk_sec.wcet.tv_nsec + "}," + tsk_sec.act_number + |
- ",0,act_" + tsk_sec.name + |
- ",exec_" + tsk_sec.name + "},\n"); |
- total_task_section++; |
- } |
- out.write("};\n\n"); |
- out.write("int total_loader_task="+total_task_section+";\n\n"); |
- |
- |
- } |
- catch (java.io.IOException e) { |
- System.out.println("File Exception: " + e.getMessage()); |
- |
- } |
- |
-} |
- |
-void process_scheduler_section(Element e, OutputStreamWriter out) { |
- Attribute t; |
- t=e.getAttribute("type"); |
- |
- List localpars = e.getChildren(); |
- Iterator iterator = localpars.iterator(); |
- while (iterator.hasNext()) { |
- /* get task section */ |
- Element loc_task = (Element) iterator.next(); |
- process_task_section(loc_task, out, t); |
- |
- } |
- |
-} |
- |
-void process_task_section(Element e, OutputStreamWriter out, Attribute loc) { |
- Attribute t; |
- int act; |
- act=1; |
- int task_type=0; |
- int localscheduler=0; |
- timespec time = new timespec(); |
- Pattern pattern = Pattern.compile("[us\\s]+"); |
- String scheduler=loc.getValue(); |
- if (scheduler.equals("POSIX")) { |
- localscheduler=30; |
- } |
- else if (scheduler.equals("EDF")) { |
- localscheduler=31; |
- } |
- else if (scheduler.equals("RM")) { |
- localscheduler=32; |
- } |
- |
- /* get task section */ |
- t=e.getAttribute("type"); |
- |
- if (t.getValue().equals("BackTask")) { |
- process_back_task(e, out); |
- task_type=23; |
- } else if (t.getValue().equals("OneShot")) { |
- process_oneshot_task(e, out); |
- task_type=21; |
- } else if (t.getValue().equals("CyclicalTask")) { |
- task_type=22; |
- act=process_cyclical_task(e, out); |
- } |
- |
- task_class section=new task_class(); |
- section.deadline=new timespec(); |
- section.wcet=new timespec(); |
- section.name="task"+task_group; |
- section.contract=task_server; |
- section.group=task_group; |
- section.act_number=act; |
- section.task_type=task_type; |
- section.localscheduler=localscheduler; |
- section.number=Integer.valueOf(e.getChild("number").getText()).intValue(); |
- |
- Element dl = e.getChild("dline"); |
- if (dl != null) { |
- |
- String[] dline=pattern.split(dl.getText()); |
- time.tv_sec = Long.valueOf(dline[0]).longValue(); |
- time.tv_nsec = Long.valueOf(dline[1]).longValue() * 1000; |
- |
- section.deadline.tv_sec=time.tv_sec; |
- section.deadline.tv_nsec=time.tv_nsec; |
- |
- } |
- |
- |
- Element wc = e.getChild("wcet"); |
- if (wc != null) { |
- |
- String[] wcet=pattern.split(e.getChild("wcet").getText()); |
- time.tv_sec = Long.valueOf(wcet[0]).longValue(); |
- time.tv_nsec = Long.valueOf(wcet[1]).longValue() * 1000; |
- |
- section.wcet.tv_sec=time.tv_sec; |
- section.wcet.tv_nsec=time.tv_nsec; |
- |
- } |
- |
- Task_Section.add(section); |
- task_group++; |
- |
-} |
- |
-void process_back_task(Element e, OutputStreamWriter out) { |
- |
- Pattern pattern = Pattern.compile("[us\\s]+"); |
- |
- Element act_section=e.getChild("act_section"); |
- String[] start_time=pattern.split(act_section.getChild("start_time").getText()); |
- Element exec_section=e.getChild("exec_section"); |
- |
- String[] exec_const=pattern.split(exec_section.getChild("exec_time").getText()); |
- try { |
- out.write("struct timespec act_task"+task_group+"[]={{"+start_time[0]+","+start_time[1]+"},};\n\n"); |
- out.write("struct timespec exec_task"+task_group+"[]={{"+exec_const[0]+","+exec_const[1]+"},};\n\n"); |
- |
- } |
- catch (java.io.IOException ex) { |
- System.out.println("File Exception: " + ex.getMessage()); |
- |
- } |
-} |
-void process_oneshot_task(Element e, OutputStreamWriter out) { |
- Pattern pattern = Pattern.compile("[us\\s]+"); |
- |
- Element act_section=e.getChild("act_section"); |
- String[] start_time=pattern.split(act_section.getChild("start_time").getText()); |
- |
- Element exec_section=e.getChild("exec_section"); |
- String[] exec_const=pattern.split(exec_section.getChild("exec_time").getText()); |
- |
- try { |
- out.write("struct timespec act_task"+task_group+"[]={{"+start_time[0]+","+start_time[1]+"},};\n\n"); |
- out.write("struct timespec exec_task"+task_group+"[]={{"+exec_const[0]+","+exec_const[1]+"},};\n\n"); |
- } |
- catch (java.io.IOException ex) { |
- System.out.println("File Exception: " + ex.getMessage()); |
- } |
-} |
- |
-int process_cyclical_task(Element e, OutputStreamWriter out) { |
- |
- int activated=1; |
- Pattern pattern = Pattern.compile("[us\\s]+"); |
- Element act_section=e.getChild("act_section"); |
- String[] start_time=pattern.split(act_section.getChild("start_time").getText()); |
- String[] period=pattern.split(act_section.getChild("period_time").getText()); |
- Element deltatime=act_section.getChild("delta_time"); |
- String[] delta_time; |
- |
- long act_delta=0; |
- timespec delta_act_ts = new timespec(); |
- |
- if (deltatime != null) { |
- delta_time = pattern.split(deltatime.getText()); |
- delta_act_ts.tv_sec = Long.valueOf(delta_time[0]).longValue(); |
- delta_act_ts.tv_nsec = Long.valueOf(delta_time[1]).longValue() * 1000; |
- act_delta = delta_act_ts.TIMESPEC2USEC(); |
- } |
- |
- Element exec_section=e.getChild("exec_section"); |
- String[] exec_const=pattern.split(exec_section.getChild("exec_time").getText()); |
- Element execdelta=exec_section.getChild("delta_time"); |
- String[] exec_delta; |
- |
- long exec_delta_long = 0; |
- timespec exec_delta_ts = new timespec(); |
- |
- if (execdelta != null) { |
- exec_delta=pattern.split(execdelta.getText()); |
- exec_delta_ts.tv_sec = Long.valueOf(exec_delta[0]).longValue(); |
- exec_delta_ts.tv_nsec = Long.valueOf(exec_delta[1]).longValue() * 1000; |
- exec_delta_long = exec_delta_ts.TIMESPEC2USEC(); |
- } |
- |
- try { |
- out.write("struct timespec act_task"+task_group+"[]={{"+ |
- start_time[0]+","+start_time[1]+"},\n"); |
- |
- timespec time = new timespec(); |
- time.tv_sec = Long.valueOf(period[0]).longValue(); |
- time.tv_nsec = Long.valueOf(period[1]).longValue() * 1000; |
- |
- long usecperiod = time.TIMESPEC2USEC(); |
- timespec nextact = new timespec(); |
- |
- time.tv_sec = Long.valueOf(start_time[0]).longValue(); |
- time.tv_nsec = Long.valueOf(start_time[1]).longValue() * 1000; |
- |
- Random rd = new Random(); |
- |
- while (simulation_time.TIMESPEC_A_GT_B(time)) { |
- |
- nextact.tv_sec = Long.valueOf(period[0]).longValue(); |
- nextact.tv_nsec = Long.valueOf(period[1]).longValue() * 1000; |
- |
- if (act_delta != 0) { |
- nextact.ADDUSEC2TIMESPEC((rd.nextInt() & Integer.MAX_VALUE) % act_delta - act_delta/2); |
- } |
- |
- time.ADDUSEC2TIMESPEC(usecperiod); |
- out.write(" {"+nextact.tv_sec+","+nextact.tv_nsec/1000+"},\n"); |
- activated++; |
- } |
- out.write("};\n"); |
- |
- out.write("struct timespec exec_task"+task_group+"[]={\n"); |
- |
- timespec nextexec = new timespec(); |
- |
- for (int i=0; i<activated; i++) { |
- |
- nextexec.tv_sec = Long.valueOf(exec_const[0]).longValue(); |
- nextexec.tv_nsec = Long.valueOf(exec_const[1]).longValue() * 1000; |
- |
- if (exec_delta_long != 0) { |
- nextexec.ADDUSEC2TIMESPEC((rd.nextInt() & Integer.MAX_VALUE) % exec_delta_long - exec_delta_long/2); |
- } |
- |
- out.write(" {"+nextexec.tv_sec+","+nextexec.tv_nsec/1000+"},\n"); |
- |
- } |
- out.write("};\n"); |
- } |
- catch (java.io.IOException ex) { |
- System.out.println("File Exception: " + ex.getMessage()); |
- } |
- |
- return activated; |
-} |
- |
-void process_server_section(Element e, OutputStreamWriter out) { |
- |
- |
- List serverpars = e.getChildren(); |
- Iterator iterator = serverpars.iterator(); |
- Element serverpar = (Element) iterator.next(); |
- String current_value; |
- current_value=serverpar.getText(); |
- try { |
- out.write("{" + servernumber + ",{"); |
- servernumber++; |
- |
- Pattern pattern = Pattern.compile("[us\\s]+"); |
- /* cmin */ |
- String[] cmin = pattern.split(current_value); |
- out.write(cmin[0] + "," + Long.valueOf(cmin[1]).longValue()*1000+"},{"); |
- |
- /* tmax */ |
- serverpar = (Element) iterator.next(); |
- current_value=serverpar.getText(); |
- String[] tmax = pattern.split(current_value); |
- out.write(tmax[0] + "," + Long.valueOf(tmax[1]).longValue()*1000+"},{"); |
- |
- /* cmax */ |
- serverpar = (Element) iterator.next(); |
- current_value=serverpar.getText(); |
- String[] cmax = pattern.split(current_value); |
- out.write(cmax[0] + "," + Long.valueOf(cmax[1]).longValue()*1000+"},{"); |
- |
- /* tmin */ |
- serverpar = (Element) iterator.next(); |
- current_value=serverpar.getText(); |
- String[] tmin = pattern.split(current_value); |
- out.write(tmin[0] + "," + Long.valueOf(tmin[1]).longValue()*1000+"},"); |
- |
- /*work load */ |
- serverpar = (Element) iterator.next(); |
- current_value=serverpar.getText(); |
- out.write(current_value+","); |
- |
- serverpar = (Element) iterator.next(); |
- current_value=serverpar.getName(); |
- Attribute loc_type=serverpar.getAttribute("type"); |
- String scheduler=loc_type.getValue(); |
- if (scheduler.equals("POSIX")) { |
- out.write("30"); |
- } |
- else if (scheduler.equals("EDF")) { |
- out.write("31"); |
- } |
- else if (scheduler.equals("RM")) { |
- out.write("32"); |
- } |
- out.write(",-1},\n"); |
- local_scheduler.add(servernumber-1,serverpar); |
- |
- } catch (java.io.IOException ex) { |
- System.out.println ("File Exception: "+ex.getMessage()); |
- } |
- |
- /* |
- fprintf(file_event_header, " {%d,{%d,%d},{%d,%d},{%d,%d},{%d,%d},%d,%d,-1},\n", |
- (int)c->number,(int)c->cmin.tv_sec,(int)c->cmin.tv_nsec, |
- (int)c->tmax.tv_sec,(int)c->tmax.tv_nsec, |
- (int)c->cmax.tv_sec,(int)c->cmax.tv_nsec, |
- (int)c->tmin.tv_sec,(int)c->tmin.tv_nsec, |
- (int)c->workload,(int)c->local_scheduler); |
- |
-*/ |
- //processElement (kid); |
- } |
- |
- |
- |
-public static void main(String[] args) throws Exception { |
- System.out.println("Parser Versione 1.0"); |
- Application app = new Application(); |
- if (args.length > 0) |
- app.process(args[0]); |
-} |
- |
-/* Event Generator |
- * |
- * Giacomo Guidi |
- */ |
- |
- |
- |
- |
- |
-/* |
-int write_basic_par_start(void) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header, "struct loader_task loader_task_list[] = {\n"); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
- |
-int write_basic_par(struct loader_task *c) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header, " {\"%s\",%d,%d,%d,%d,%d,{%d,%d},{%d,%d},%d,0,act_%s,exec_%s},\n", |
- c->name,(int)c->task_type,(int)c->server,(int)c->local_scheduler,(int)c->number,(int)c->group, |
- (int)c->deadline.tv_sec, (int)c->deadline.tv_nsec, |
- (int)c->wcet.tv_sec, (int)c->wcet.tv_nsec, |
- (int)c->act_number, c->name, c->name); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int write_contract(struct loader_contract *c) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header, " {%d,{%d,%d},{%d,%d},{%d,%d},{%d,%d},%d,%d,-1},\n", |
- (int)c->number,(int)c->cmin.tv_sec,(int)c->cmin.tv_nsec, |
- (int)c->tmax.tv_sec,(int)c->tmax.tv_nsec, |
- (int)c->cmax.tv_sec,(int)c->cmax.tv_nsec, |
- (int)c->tmin.tv_sec,(int)c->tmin.tv_nsec, |
- (int)c->workload,(int)c->local_scheduler); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int close_loader_task(int total_task_number) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header,"};\n\n"); |
- |
- fprintf(file_event_header,"int total_loader_task = %d;\n\n",total_task_number); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int close_loader_contract(int total_contract_number) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header,"};\n\n"); |
- |
- fprintf(file_event_header,"int total_loader_contract = %d;\n\n",total_contract_number); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int write_simulation_time(struct timespec *total) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header,"struct timespec total_time = {%d,%d};\n\n",(int)total->tv_sec,(int)total->tv_nsec); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
- |
-} |
- |
-int write_single_act(struct timespec *t, struct loader_task *c) |
-{ |
- |
- FILE *file_act_header; |
- |
- file_act_header = fopen(ACT_LIST,"a+"); |
- if (file_act_header == NULL) return 1; |
- |
- if (TIMESPEC_A_GT_B(t,&c->act_par_1)) { |
- fprintf(file_act_header,"struct timespec act_%s[] = {{%d,%d}};\n\n",c->name, |
- (int)c->act_par_1.tv_sec,(int)c->act_par_1.tv_nsec); |
- c->act_number = 1; |
- } else { |
- fprintf(file_act_header,"struct timespec act_%s[] = {{0,0}};\n\n",c->name); |
- c->act_number = 0; |
- } |
- |
- fclose(file_act_header); |
- |
- return 0; |
- |
-} |
- |
-int write_periodic_act(struct timespec *t, struct loader_task *c) |
-{ |
- |
- FILE *file_act_header; |
- struct timespec tot_time; |
- int period; |
- |
- file_act_header = fopen(ACT_LIST,"a+"); |
- if (file_act_header == NULL) return 1; |
- |
- fprintf(file_act_header,"struct timespec act_%s[] = {{%d,%d},\n",c->name, |
- (int)c->act_par_1.tv_sec,(int)c->act_par_1.tv_nsec); |
- |
- c->act_number = 1; |
- TIMESPEC_ASSIGN(&tot_time,&c->act_par_1); |
- period = TIMESPEC2USEC(&c->act_par_2); |
- while (TIMESPEC_A_GT_B(t, &tot_time)) { |
- c->act_number++; |
- ADDUSEC2TIMESPEC(period,&tot_time); |
- fprintf(file_act_header," {%d,%d},\n", |
- (int)c->act_par_2.tv_sec,(int)c->act_par_2.tv_nsec); |
- } |
- |
- fprintf(file_act_header," };\n\n"); |
- |
- fclose(file_act_header); |
- |
- return 0; |
- |
-} |
- |
-int write_mean_act(struct timespec *t,struct loader_task *c) |
-{ |
- |
- FILE *file_act_header; |
- struct timespec tot_time; |
- int next_act; |
- |
- file_act_header = fopen(ACT_LIST,"a+"); |
- if (file_act_header == NULL) return 1; |
- |
- fprintf(file_act_header,"struct timespec act_%s[] = {{%d,%d},\n",c->name, |
- (int)c->act_par_1.tv_sec,(int)c->act_par_1.tv_nsec); |
- |
- c->act_number = 1; |
- TIMESPEC_ASSIGN(&tot_time,&c->act_par_1); |
- while (TIMESPEC_A_GT_B(t, &tot_time)) { |
- c->act_number++; |
- next_act = TIMESPEC2USEC(&c->act_par_2) + random() % TIMESPEC2USEC(&c->act_par_3) - TIMESPEC2USEC(&c->act_par_3) / 2; |
- ADDUSEC2TIMESPEC(next_act,&tot_time); |
- fprintf(file_act_header," {%d,%d},\n", |
- next_act / 1000000, next_act % 1000000 * 1000); |
- } |
- |
- fprintf(file_act_header," };\n\n"); |
- |
- fclose(file_act_header); |
- |
- return 0; |
- |
-} |
- |
-int write_exec_const(struct loader_task *c) |
-{ |
- |
- FILE *file_exec_header; |
- int i; |
- |
- file_exec_header = fopen(ACT_LIST,"a+"); |
- if (file_exec_header == NULL) return 1; |
- |
- fprintf(file_exec_header,"struct timespec exec_%s[] = {{%d,%d},\n",c->name, |
- (int)c->exec_par_1.tv_sec,(int)c->exec_par_1.tv_nsec); |
- |
- for (i=0; i< c->act_number-1; i++) |
- fprintf(file_exec_header," {%d,%d},\n", |
- (int)c->exec_par_1.tv_sec,(int)c->exec_par_1.tv_nsec); |
- |
- fprintf(file_exec_header," };\n\n"); |
- |
- fclose(file_exec_header); |
- |
- return 0; |
- |
-} |
- |
-int write_exec_mean(struct loader_task *c) |
-{ |
- |
- FILE *file_exec_header; |
- int exec_time_usec; |
- int i; |
- |
- file_exec_header = fopen(ACT_LIST,"a+"); |
- if (file_exec_header == NULL) return 1; |
- |
- exec_time_usec = TIMESPEC2USEC(&c->exec_par_1) |
- + random() % TIMESPEC2USEC(&c->exec_par_2) - TIMESPEC2USEC(&c->exec_par_2) / 2; |
- fprintf(file_exec_header,"struct timespec exec_%s[] = {{%d,%d},\n",c->name, |
- exec_time_usec / 1000000, exec_time_usec % 1000000 * 1000); |
- |
- for (i=0; i< c->act_number-1; i++) { |
- exec_time_usec = TIMESPEC2USEC(&c->exec_par_1) |
- + random() % TIMESPEC2USEC(&c->exec_par_2) - TIMESPEC2USEC(&c->exec_par_2) / 2; |
- fprintf(file_exec_header," {%d,%d},\n", |
- exec_time_usec / 1000000, exec_time_usec % 1000000 * 1000); |
- } |
- |
- fprintf(file_exec_header," };\n\n"); |
- |
- fclose(file_exec_header); |
- |
- return 0; |
- |
-} |
- |
-void *start; |
-void *end; |
- |
-int main(int argc, char **argv) { |
- |
- char loadfile[100]; |
- struct timespec total_time; |
- struct loader_task *start_loader_task = NULL, *current_t; |
- struct loader_contract *start_loader_contract = NULL, *current_c; |
- int err,ldnum; |
- int total_task_number; |
- int total_contract_number; |
- |
- printf("\nEvent Generator\n"); |
- |
- if (argc < 2) { |
- printf("Error: event_gen loadfile.fsf\n"); |
- exit(1); |
- } |
- |
- printf("Read loader file %s\n",argv[1]); |
- |
- sprintf(loadfile,"%s%s",LOADFILE_DIR,argv[1]); |
- err = dos_preload(loadfile,100000,&start,&end); |
- |
- if (err != 0) { |
- printf("Error: File not found\n"); |
- exit(1); |
- } |
- |
- printf("Parsing file\n"); |
- |
- line_reader(start, end, &total_time, &start_loader_task, &start_loader_contract); |
- |
- srandom(time(NULL)); |
- |
- write_struct(); |
- |
- current_t = start_loader_task; |
- ldnum = 1; |
- |
- while(current_t != NULL) { |
- |
- sprintf(current_t->name,"ltask%d",ldnum); |
- current_t->group = ldnum; |
- ldnum++; |
- |
- switch (current_t->act_type) { |
- case PAR_ACT_SINGLE: |
- err = write_single_act(&total_time,current_t); |
- if (err != 0) { |
- printf("Error writing activation header\n"); |
- exit(1); |
- } |
- break; |
- case PAR_ACT_PERIODIC: |
- err = write_periodic_act(&total_time,current_t); |
- if (err != 0) { |
- printf("Error writing activation header\n"); |
- exit(1); |
- } |
- break; |
- case PAR_ACT_MEAN: |
- err = write_mean_act(&total_time,current_t); |
- if (err != 0) { |
- printf("Error writing activation header\n"); |
- exit(1); |
- } |
- break; |
- } |
- |
- switch (current_t->exec_type) { |
- case PAR_EXEC_CONST: |
- err = write_exec_const(current_t); |
- if (err != 0) { |
- printf("Error writing exec header\n"); |
- exit(1); |
- } |
- break; |
- case PAR_EXEC_MEAN: |
- err = write_exec_mean(current_t); |
- if (err != 0) { |
- printf("Error writing exec header\n"); |
- exit(1); |
- } |
- break; |
- } |
- |
- current_t = current_t->next; |
- |
- } |
- |
- write_basic_par_start(); |
- |
- total_task_number = 0; |
- current_t = start_loader_task; |
- while(current_t != NULL) { |
- |
- write_basic_par(current_t); |
- |
- current_t = current_t->next; |
- |
- total_task_number++; |
- |
- } |
- |
- close_loader_task(total_task_number); |
- |
- write_contract_start(); |
- |
- total_contract_number = 0; |
- current_c = start_loader_contract; |
- while(current_c != NULL) { |
- |
- write_contract(current_c); |
- |
- current_c = current_c->next; |
- |
- total_contract_number++; |
- |
- } |
- |
- close_loader_contract(total_contract_number); |
- |
- write_simulation_time(&total_time); |
- |
- return 0; |
- |
-} |
- |
-*/ |
-} |
Index: rel_1_5_beta1/loader/generators/java/task_class.java |
=================================================================== |
--- rel_1_5_beta1/loader/generators/java/task_class.java (revision 1579) |
+++ rel_1_5_beta1/loader/generators/java/task_class.java (nonexistent) |
@@ -1,26 +0,0 @@ |
-//package first_filter; |
- |
-/** |
- * <p>Title: First XML filter</p> |
- * <p>Description: </p> |
- * <p>Copyright: Copyright (c) 2003</p> |
- * <p>Company: Retis Lab</p> |
- * @author not attributable |
- * @version 1.0 |
- */ |
- |
-public class task_class { |
- String name; |
- int task_type; |
- int contract; |
- int localscheduler; |
- int number; |
- int group; |
- timespec deadline; |
- timespec wcet; |
- int act_number; |
- |
- public task_class() { |
- } |
- |
-} |
Index: rel_1_5_beta1/loader/generators/java/fsf-schema.xsd |
=================================================================== |
--- rel_1_5_beta1/loader/generators/java/fsf-schema.xsd (revision 1579) |
+++ rel_1_5_beta1/loader/generators/java/fsf-schema.xsd (nonexistent) |
@@ -1,75 +0,0 @@ |
-<?xml version="1.0" encoding="UTF-8"?> |
-<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> |
- |
-<xs:element name="fsf_framework"> |
- <xs:complexType> |
- <xs:sequence> |
- <xs:element ref="simulation"/> |
- <xs:element ref="contract" minOccurs='1' maxOccurs='unbounded'/> |
- </xs:sequence> |
- </xs:complexType> |
-</xs:element> |
- |
-<xs:element name="simulation"> |
- <xs:complexType> |
- <xs:sequence> |
- <xs:element name="time" type="xs:string"/> |
- </xs:sequence> |
- </xs:complexType> |
-</xs:element> |
- |
-<xs:element name="contract"> |
- <xs:complexType> |
- <xs:sequence> |
- <xs:element name="cmin" type="xs:string"/> |
- <xs:element name="tmax" type="xs:string" /> |
- <xs:element name="cmax" type="xs:string" /> |
- <xs:element name="tmin" type="xs:string" /> |
- <xs:element name="workload" type="xs:string" /> |
- <xs:element ref="localscheduler"/> |
- </xs:sequence> |
- </xs:complexType> |
-</xs:element> |
- |
-<xs:element name="localscheduler"> |
- <xs:complexType> |
- <xs:sequence> |
- <xs:element ref="task_section" minOccurs='1' maxOccurs='unbounded'/> |
- </xs:sequence> |
- <xs:attribute name="type" type="xs:string" use='required'/> |
- </xs:complexType> |
-</xs:element> |
- |
-<xs:element name="task_section"> |
- <xs:complexType> |
- <xs:sequence> |
- <xs:element name="number" type="xs:integer"/> |
- <xs:element name="dline" type="xs:string" minOccurs="0" /> |
- <xs:element name="wcet" type="xs:string" minOccurs="0"/> |
- <xs:element ref="act_section"/> |
- <xs:element ref="exec_section"/> |
- </xs:sequence> |
- <xs:attribute name="type" type="xs:string" use='required'/> |
- </xs:complexType> |
-</xs:element> |
- |
-<xs:element name="act_section"> |
- <xs:complexType> |
- <xs:sequence> |
- <xs:element name="start_time" type="xs:string"/> |
- <xs:element name="period_time" type="xs:string" minOccurs="0" /> |
- <xs:element name="delta_time" type="xs:string" minOccurs="0" /> |
- </xs:sequence> |
- </xs:complexType> |
-</xs:element> |
- |
-<xs:element name="exec_section"> |
- <xs:complexType> |
- <xs:sequence> |
- <xs:element name="exec_time" type="xs:string"/> |
- <xs:element name="delta_time" type="xs:string" minOccurs="0" /> |
- </xs:sequence> |
- </xs:complexType> |
-</xs:element> |
- |
-</xs:schema> |
Index: rel_1_5_beta1/loader/generators/java/timespec.java |
=================================================================== |
--- rel_1_5_beta1/loader/generators/java/timespec.java (revision 1579) |
+++ rel_1_5_beta1/loader/generators/java/timespec.java (nonexistent) |
@@ -1,37 +0,0 @@ |
-//package first_filter; |
- |
-/** |
- * <p>Title: First XML filter</p> |
- * <p>Description: </p> |
- * <p>Copyright: Copyright (c) 2003</p> |
- * <p>Company: Retis Lab</p> |
- * @author not attributable |
- * @version 1.0 |
- */ |
- |
-public class timespec { |
- long tv_sec; |
- long tv_nsec; |
- |
- public timespec() { |
- tv_sec=0; |
- tv_nsec=0; |
- } |
- |
- |
- void ADDUSEC2TIMESPEC(long t1) { |
- tv_nsec+=(t1%1000000)*1000; |
- tv_sec+=(tv_nsec / 1000000000)+(t1/1000000); |
- tv_nsec%=1000000000; |
- } |
- long TIMESPEC2USEC() { |
- return (tv_sec*1000000+tv_nsec/1000); |
- } |
- boolean TIMESPEC_A_GT_B(timespec t1) { |
- |
- return (tv_sec>t1.tv_sec || |
- (tv_sec==t1.tv_sec && tv_nsec>t1.tv_nsec)); |
- |
- } |
- |
-} |
Index: rel_1_5_beta1/loader/generators/java/java_gen |
=================================================================== |
--- rel_1_5_beta1/loader/generators/java/java_gen (revision 1579) |
+++ rel_1_5_beta1/loader/generators/java/java_gen (nonexistent) |
@@ -1,10 +0,0 @@ |
-#!/bin/bash |
- |
-#if $CLASSPATH; then |
-#echo Please define the CLASSPATH environment variable!!! |
-#echo ...something like: export CLASSPATH=/usr/java/j2sdk1.4.2/jre/lib |
-#exit 1; |
-#fi |
- |
-java -classpath ".:$CLASSPATH/jdom.jar:$CLASSPATH/xercesImpl.jar:$CLASSPATH/xml-apis.jar" Application $1 |
- |
/rel_1_5_beta1/loader/generators/java/java_gen |
Property changes: |
Deleted: svn:executable |
## -1 +0,0 ## |
-* |
\ No newline at end of property |
Index: rel_1_5_beta1/loader/generators/lread.c |
=================================================================== |
--- rel_1_5_beta1/loader/generators/lread.c (revision 1579) |
+++ rel_1_5_beta1/loader/generators/lread.c (nonexistent) |
@@ -1,95 +0,0 @@ |
-#include <stdio.h> |
-#include <stdlib.h> |
-#include "lparser.h" |
-#include "common/time.h" |
- |
-int dos_preload(char *file_name, long max_size, void **start_file, void **end_file) |
-{ |
- FILE *file; |
- void *buf; |
- long rd; |
- |
- |
- file = fopen(file_name,"r"); |
- if (file == NULL) return -1; |
- |
- buf = malloc(max_size); |
- *start_file = buf; |
- |
- while(((rd = fread(buf, 1, 2048, file)) == 2048) && |
- ((buf - *start_file + rd) < (max_size-2048))) { |
- buf += rd; |
- } |
- |
- *end_file = buf + rd; |
- |
- fclose(file); |
- return(0); |
- |
-} |
- |
-int line_reader(void *start_file, void *end_file, struct timespec *total, |
- struct loader_task **start_loader_task, struct loader_contract **start_loader_contract) |
-{ |
- |
- char *pbuf = start_file; |
- int res,line_num,total_loader_task,total_loader_contract; |
- struct loader_task *current_t = NULL; |
- struct loader_contract *current_c = NULL; |
- |
- NULL_TIMESPEC(total); |
- |
- line_num = 0; |
- total_loader_task = 0; |
- total_loader_contract = 0; |
- |
- while ((void *)(pbuf) < end_file) { |
- |
- line_num++; |
- |
- if (*start_loader_contract == NULL) |
- res = line_parser_contract(&pbuf, line_num, total, ¤t_c); |
- else |
- res = line_parser_contract(&pbuf, line_num, total, ¤t_c->next); |
- |
- if (res == 2) { |
- total_loader_contract++; |
- if (*start_loader_contract == NULL) |
- *start_loader_contract = current_c; |
- else |
- current_c = current_c->next; |
- } |
- |
- if (res == 3) break; |
- |
- } |
- |
- while ((void *)(pbuf) < end_file) { |
- |
- line_num++; |
- |
- if (*start_loader_task == NULL) |
- res = line_parser_task(&pbuf, line_num, ¤t_t); |
- else |
- res = line_parser_task(&pbuf, line_num, ¤t_t->next); |
- |
- if (res == 2) { |
- total_loader_task++; |
- if (*start_loader_task == NULL) |
- *start_loader_task = current_t; |
- else |
- current_t = current_t->next; |
- } |
- |
- if (res == 3) break; |
- |
- } |
- |
- printf("Total decoded lines %d\n",line_num); |
- printf("Total loader contract %d\n",total_loader_contract); |
- printf("Total loader task %d\n",total_loader_task); |
- printf("Simulation time sec = %ld usec = %ld\n",total->tv_sec,total->tv_nsec/1000); |
- |
- return 0; |
- |
-} |
Index: rel_1_5_beta1/loader/generators/lparser.c |
=================================================================== |
--- rel_1_5_beta1/loader/generators/lparser.c (revision 1579) |
+++ rel_1_5_beta1/loader/generators/lparser.c (nonexistent) |
@@ -1,486 +0,0 @@ |
-#include <stdlib.h> |
-#include <string.h> |
-#include <stdio.h> |
-#include "lparser.h" |
-#include "common/time.h" |
- |
-#define PARSER_DEBUG |
- |
-static int find_break(char **buf, int find_type, struct timespec *time, int *val) |
-{ |
- |
- int i; |
- char str[20]; |
- |
- i = 0; |
- while (((char *)(*buf))[i] == ' ' || ((char *)(*buf))[i] == ':' || |
- ((char *)(*buf))[i] == '\n' || ((char *)(*buf))[i] == '\r') i++; |
- *buf += i; |
- |
- if (!strncmp(*buf,"END",3) && find_type == PAR_NOTHING) { |
- *buf += 3; |
- return PAR_END; |
- } |
- |
- if (!strncmp(*buf,"CONTRACT SECTION",16) && find_type == PAR_NOTHING) { |
- *buf += 16; |
- return PAR_CONTRACT_SECTION; |
- } |
- |
- if (!strncmp(*buf,"TASK SECTION",12) && find_type == PAR_NOTHING) { |
- *buf += 12; |
- return PAR_TASK_SECTION; |
- } |
- |
- i = 0; |
- if (((char *)(*buf))[0] == '#' && find_type == PAR_NOTHING) { |
- while (((char *)(*buf))[i] != '\n' && ((char *)(*buf))[i] != '\r') i++; |
- *buf += i; |
- return PAR_FOUND; |
- } |
- |
- switch (find_type) { |
- |
- case PAR_NOTHING: |
- if (((char *)(*buf))[0] == ';' || |
- ((char *)(*buf))[0] < 32) { |
- *buf += 1; |
- return PAR_FOUND; |
- } |
- break; |
- |
- case PAR_TOTAL_EXEC_TIME: |
- if (!strncmp(*buf, "TOTAL_EXEC_TIME:",16)) { |
- *buf += 16; |
- return PAR_FOUND; |
- } |
- break; |
- |
- case PAR_TIME: |
- if (((char *)(*buf))[0] != '[') return PAR_ERROR; |
- *buf += 1; |
- i = 0; |
- while (((char *)(*buf))[i] >= '0' && ((char *)(*buf))[i] <= '9') { |
- str[i] = ((char *)(*buf))[i]; |
- i++; |
- } |
- if (((char *)(*buf))[i] != ']') return PAR_ERROR; |
- str[i] = 0; |
- time->tv_sec = atoi(str); |
- i += 2; |
- *buf += i; |
- i = 0; |
- while (((char *)(*buf))[i] >= '0' && ((char *)(*buf))[i] <= '9') { |
- str[i] = ((char *)(*buf))[i]; |
- i++; |
- } |
- if (((char *)(*buf))[i] != ']') return PAR_ERROR; |
- str[i] = 0; |
- time->tv_nsec = atoi(str) * 1000; |
- i += 2; |
- *buf += i; |
- return PAR_FOUND; |
- break; |
- |
- case PAR_TASK_TYPE: |
- if (!strncmp(*buf, "OS:",3)) { |
- *val = PAR_TASK_OS; |
- *buf += 3; |
- return PAR_FOUND; |
- } |
- if (!strncmp(*buf, "CT:",3)) { |
- *val = PAR_TASK_CT; |
- *buf += 3; |
- return PAR_FOUND; |
- } |
- if (!strncmp(*buf, "BT:",3)) { |
- *val = PAR_TASK_BT; |
- *buf += 3; |
- return PAR_FOUND; |
- } |
- break; |
- |
- case PAR_TASK_NUMBER: |
- if (((char *)(*buf))[0] != '[') return PAR_ERROR; |
- *buf += 1; |
- i = 0; |
- while (((char *)(*buf))[i] >= '0' && ((char *)(*buf))[i] <= '9') { |
- str[i] = ((char *)(*buf))[i]; |
- i++; |
- } |
- if (((char *)(*buf))[i] != ']') return PAR_ERROR; |
- str[i] = 0; |
- *val = atoi(str); |
- i += 2; |
- *buf += i; |
- return PAR_FOUND; |
- break; |
- |
- case PAR_ACT_TYPE: |
- if (!strncmp(*buf,"ACT_SINGLE(",11)) { |
- *buf += 11; |
- *val = PAR_ACT_SINGLE; |
- return PAR_FOUND; |
- } |
- if (!strncmp(*buf,"ACT_PERIODIC(",13)) { |
- *buf += 13; |
- *val = PAR_ACT_PERIODIC; |
- return PAR_FOUND; |
- } |
- if (!strncmp(*buf,"ACT_MEAN(",9)) { |
- *buf += 9; |
- *val = PAR_ACT_MEAN; |
- return PAR_FOUND; |
- } |
- return PAR_ERROR; |
- break; |
- |
- case PAR_LOCAL_SCHEDULER: |
- if (!strncmp(*buf,"POSIX",5)) { |
- *buf += 5; |
- *val = PAR_POSIX; |
- return PAR_FOUND; |
- } |
- if (!strncmp(*buf,"EDF",3)) { |
- *buf += 3; |
- *val = PAR_EDF; |
- return PAR_FOUND; |
- } |
- if (!strncmp(*buf,"RM",2)) { |
- *buf += 2; |
- *val = PAR_RM; |
- return PAR_FOUND; |
- } |
- |
- if (!strncmp(*buf,"NONE",2)) { |
- *buf += 4; |
- *val = PAR_NONE; |
- return PAR_FOUND; |
- } |
- |
- return PAR_ERROR; |
- break; |
- |
- case PAR_EXEC_TYPE: |
- if (!strncmp(*buf,"EXEC_CONST(",11)) { |
- *buf += 11; |
- *val = PAR_EXEC_CONST; |
- return PAR_FOUND; |
- } |
- if (!strncmp(*buf,"EXEC_MEAN(",10)) { |
- *buf += 10; |
- *val = PAR_EXEC_MEAN; |
- return PAR_FOUND; |
- } |
- return PAR_ERROR; |
- break; |
- |
- case PAR_CRIT_SESSION: |
- if (!strncmp(*buf,"NO_CRIT",7)) { |
- *buf += 7; |
- *val = PAR_NO_CRIT; |
- return PAR_FOUND; |
- } |
- if (!strncmp(*buf,"CRIT(",5)) { |
- *buf += 5; |
- *val = PAR_CRIT; |
- return PAR_FOUND; |
- } |
- return PAR_ERROR; |
- break; |
- |
- } |
- |
- return PAR_ERROR; |
- |
-} |
- |
-void par_error(int line_num) |
-{ |
- |
- printf("\nParser error: line [%d]\n",line_num); |
- exit(1); |
- |
-} |
- |
-/* result: |
- * 0 -> nothing |
- * 1 -> total |
- * 2 -> new task-loader |
- * 3 -> end file |
- */ |
-int line_parser_task(char **pbuf, int line_num, struct loader_task **last) |
-{ |
- struct timespec time; |
- struct loader_task *ld = NULL; |
- int val, res; |
- |
- res = find_break(pbuf, PAR_NOTHING, &time, &val); |
- if (res == PAR_FOUND) return 0; |
- if (res == PAR_END) return 3; |
- |
- res = find_break(pbuf,PAR_TASK_TYPE, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("TASK TYPE = %d\n",val); |
- #endif |
- |
- ld = malloc(sizeof(struct loader_task)); |
- if (ld == NULL) par_error(line_num); |
- |
- ld->next = NULL; |
- *last = ld; |
- |
- ld->task_type = val; |
- |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TASK_NUMBER, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("TASK SERVER = %d\n",val); |
- #endif |
- |
- ld->server = val; |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_LOCAL_SCHEDULER, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("TASK LOCAL SCHEDULER = %d\n",val); |
- #endif |
- |
- ld->local_scheduler = val; |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TASK_NUMBER, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("TASK NUMBER = %d\n",val); |
- #endif |
- |
- ld->number = val; |
- |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("DEADLINE: [%ld][%ld]\n",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&ld->deadline,&time); |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("WCET: [%ld][%ld]\n",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&ld->wcet,&time); |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_ACT_TYPE, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("ACTIVATION TYPE: %d (",val); |
- #endif |
- |
- ld->act_type = val; |
- |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&ld->act_par_1,&time); |
- } else par_error(line_num); |
- |
- if (ld->act_type != PAR_ACT_SINGLE) { |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&ld->act_par_2,&time); |
- } else par_error(line_num); |
- } |
- |
- if (ld->act_type != PAR_ACT_SINGLE && ld->act_type != PAR_ACT_PERIODIC) { |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&ld->act_par_3,&time); |
- } else par_error(line_num); |
- } |
- |
- #ifdef PARSER_DEBUG |
- printf(")\n"); |
- #endif |
- |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_EXEC_TYPE, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("EXEC TYPE: %d (",val); |
- #endif |
- ld->exec_type = val; |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&ld->exec_par_1,&time); |
- } else par_error(line_num); |
- |
- if (ld->exec_type != PAR_EXEC_CONST) { |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&ld->exec_par_2,&time); |
- } else par_error(line_num); |
- } |
- |
- #ifdef PARSER_DEBUG |
- printf(")\n"); |
- #endif |
- |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_CRIT_SESSION, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("CRITITCAL SESSION: %d (",val); |
- #endif |
- ld->crit_type = val; |
- if (ld->crit_type == PAR_CRIT) { |
- res = find_break(pbuf,PAR_TASK_NUMBER, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("[%d]",val); |
- #endif |
- ld->resource = val; |
- } else par_error(line_num); |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&ld->crit_par,&time); |
- } else par_error(line_num); |
- } |
- |
- #ifdef PARSER_DEBUG |
- printf(")\n"); |
- #endif |
- |
- } else par_error(line_num); |
- |
- return 2; |
- |
-} |
- |
-int line_parser_contract(char **pbuf, int line_num, struct timespec *total, struct loader_contract **last) |
-{ |
- |
- struct timespec time; |
- struct loader_contract *lc = NULL; |
- int val, res; |
- |
- res = find_break(pbuf, PAR_NOTHING, &time, &val); |
- if (res == PAR_FOUND) return 0; |
- if (res == PAR_END) return 3; |
- |
- res = find_break(pbuf,PAR_TOTAL_EXEC_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- NULL_TIMESPEC(total); |
- res = find_break(pbuf, PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- TIMESPEC_ASSIGN(total,&time); |
- #ifdef PARSER_DEBUG |
- printf("TOTAL EXEC TIME SEC = %ld NSEC = %ld\n",total->tv_sec,total->tv_nsec); |
- #endif |
- return 1; |
- } else par_error(line_num); |
- } |
- |
- res = find_break(pbuf,PAR_TASK_NUMBER, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("CONTRACT [%d]",val); |
- #endif |
- |
- lc = malloc(sizeof(struct loader_contract)); |
- if (lc == NULL) par_error(line_num); |
- |
- lc->next = NULL; |
- *last = lc; |
- |
- lc->number = val; |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&lc->cmin,&time); |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&lc->tmax,&time); |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld]",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&lc->cmax,&time); |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld],",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&lc->tmin,&time); |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TASK_NUMBER, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%d]\n",val); |
- #endif |
- |
- lc->workload = val; |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_TIME, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf(",[%ld][%ld],",time.tv_sec,time.tv_nsec/1000); |
- #endif |
- TIMESPEC_ASSIGN(&lc->deadline,&time); |
- } else par_error(line_num); |
- |
- res = find_break(pbuf,PAR_LOCAL_SCHEDULER, &time, &val); |
- if (res == PAR_FOUND) { |
- #ifdef PARSER_DEBUG |
- printf("LOCAL SCHEDULER = %d\n",val); |
- #endif |
- |
- lc->local_scheduler = val; |
- } else par_error(line_num); |
- |
- return 2; |
- |
-} |
Index: rel_1_5_beta1/loader/generators/event_gen.c |
=================================================================== |
--- rel_1_5_beta1/loader/generators/event_gen.c (revision 1579) |
+++ rel_1_5_beta1/loader/generators/event_gen.c (nonexistent) |
@@ -1,474 +0,0 @@ |
-/* Event Generator |
- * |
- * Giacomo Guidi |
- */ |
- |
-#include <stdio.h> |
-#include <stdlib.h> |
- |
-#include "lparser.h" |
-#include "lread.h" |
-#include "time.h" |
-#include "common/time.h" |
- |
-#define LOADFILE_DIR "../loadfile/" |
- |
-#define EVENT_DEFINE "event.c" |
-#define ACT_LIST "event.c" |
- |
-int write_struct(void) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"w"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header, "\n#include \"func.h\"\n"); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int write_basic_par_start(void) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header, "struct loader_task loader_task_list[] = {\n"); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int write_contract_start(void) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header, "struct loader_contract loader_contract_list[] = {\n"); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int write_basic_par(struct loader_task *c) |
-{ |
- |
- FILE *file_event_header; |
- int muxpres; |
- char muxtemp[30]; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- if (c->crit_type == PAR_CRIT) { |
- muxpres = 1; |
- sprintf(muxtemp,"block_%s",c->name); |
- } else { |
- muxpres = 0; |
- sprintf(muxtemp,"NULL"); |
- } |
- |
- fprintf(file_event_header, " {\"%s\",%d,%d,%d,%d,%d,{%d,%d},{%d,%d},%d,0,%d,%d,act_%s,exec_%s,%s},\n", |
- c->name,(int)c->task_type,(int)c->server,(int)c->local_scheduler,(int)c->number,(int)c->group, |
- (int)c->deadline.tv_sec, (int)c->deadline.tv_nsec, |
- (int)c->wcet.tv_sec, (int)c->wcet.tv_nsec, |
- (int)c->act_number, (int)c->resource, muxpres, c->name, c->name, muxtemp); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int write_contract(struct loader_contract *c) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header, " {%d,{%d,%d},{%d,%d},{%d,%d},{%d,%d},%d,{%d,%d},%d,-1},\n", |
- (int)c->number,(int)c->cmin.tv_sec,(int)c->cmin.tv_nsec, |
- (int)c->tmax.tv_sec,(int)c->tmax.tv_nsec, |
- (int)c->cmax.tv_sec,(int)c->cmax.tv_nsec, |
- (int)c->tmin.tv_sec,(int)c->tmin.tv_nsec, |
- (int)c->workload, |
- (int)c->deadline.tv_sec,(int)c->deadline.tv_nsec, |
- (int)c->local_scheduler); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int close_loader_task(int total_task_number) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header,"};\n\n"); |
- |
- fprintf(file_event_header,"int total_loader_task = %d;\n\n",total_task_number); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int close_loader_contract(int total_contract_number) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header,"};\n\n"); |
- |
- fprintf(file_event_header,"int total_loader_contract = %d;\n\n",total_contract_number); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
-} |
- |
-int write_simulation_time(struct timespec *total) |
-{ |
- |
- FILE *file_event_header; |
- |
- file_event_header = fopen(EVENT_DEFINE,"a+"); |
- if (file_event_header == NULL) return 1; |
- |
- fprintf(file_event_header,"struct timespec total_time = {%d,%d};\n\n",(int)total->tv_sec,(int)total->tv_nsec); |
- |
- fclose(file_event_header); |
- |
- return 0; |
- |
- |
-} |
- |
-int write_single_act(struct timespec *t, struct loader_task *c) |
-{ |
- |
- FILE *file_act_header; |
- |
- file_act_header = fopen(ACT_LIST,"a+"); |
- if (file_act_header == NULL) return 1; |
- |
- if (TIMESPEC_A_GT_B(t,&c->act_par_1)) { |
- fprintf(file_act_header,"struct timespec act_%s[] = {{%d,%d}};\n\n",c->name, |
- (int)c->act_par_1.tv_sec,(int)c->act_par_1.tv_nsec); |
- c->act_number = 1; |
- } else { |
- fprintf(file_act_header,"struct timespec act_%s[] = {{0,0}};\n\n",c->name); |
- c->act_number = 0; |
- } |
- |
- fclose(file_act_header); |
- |
- return 0; |
- |
-} |
- |
-int write_periodic_act(struct timespec *t, struct loader_task *c) |
-{ |
- |
- FILE *file_act_header; |
- struct timespec tot_time; |
- int period; |
- |
- file_act_header = fopen(ACT_LIST,"a+"); |
- if (file_act_header == NULL) return 1; |
- |
- fprintf(file_act_header,"struct timespec act_%s[] = {{%d,%d},\n",c->name, |
- (int)c->act_par_1.tv_sec,(int)c->act_par_1.tv_nsec); |
- |
- c->act_number = 1; |
- TIMESPEC_ASSIGN(&tot_time,&c->act_par_1); |
- period = TIMESPEC2USEC(&c->act_par_2); |
- while (TIMESPEC_A_GT_B(t, &tot_time)) { |
- c->act_number++; |
- ADDUSEC2TIMESPEC(period,&tot_time); |
- fprintf(file_act_header," {%d,%d},\n", |
- (int)c->act_par_2.tv_sec,(int)c->act_par_2.tv_nsec); |
- } |
- |
- fprintf(file_act_header," };\n\n"); |
- |
- fclose(file_act_header); |
- |
- return 0; |
- |
-} |
- |
-int write_mean_act(struct timespec *t,struct loader_task *c) |
-{ |
- |
- FILE *file_act_header; |
- struct timespec tot_time; |
- int next_act; |
- |
- file_act_header = fopen(ACT_LIST,"a+"); |
- if (file_act_header == NULL) return 1; |
- |
- fprintf(file_act_header,"struct timespec act_%s[] = {{%d,%d},\n",c->name, |
- (int)c->act_par_1.tv_sec,(int)c->act_par_1.tv_nsec); |
- |
- c->act_number = 1; |
- TIMESPEC_ASSIGN(&tot_time,&c->act_par_1); |
- while (TIMESPEC_A_GT_B(t, &tot_time)) { |
- c->act_number++; |
- next_act = TIMESPEC2USEC(&c->act_par_2) + random() % TIMESPEC2USEC(&c->act_par_3) - TIMESPEC2USEC(&c->act_par_3) / 2; |
- ADDUSEC2TIMESPEC(next_act,&tot_time); |
- fprintf(file_act_header," {%d,%d},\n", |
- next_act / 1000000, next_act % 1000000 * 1000); |
- } |
- |
- fprintf(file_act_header," };\n\n"); |
- |
- fclose(file_act_header); |
- |
- return 0; |
- |
-} |
- |
-int write_block_const(struct loader_task *c) |
-{ |
- |
- FILE *file_block_header; |
- int i; |
- |
- file_block_header = fopen(ACT_LIST,"a+"); |
- if (file_block_header == NULL) return 1; |
- |
- fprintf(file_block_header,"struct timespec block_%s[] = {{%d,%d},\n",c->name, |
- (int)c->crit_par.tv_sec,(int)c->crit_par.tv_nsec); |
- |
- for (i=0; i< c->act_number-1; i++) |
- fprintf(file_block_header," {%d,%d},\n", |
- (int)c->crit_par.tv_sec,(int)c->crit_par.tv_nsec); |
- |
- fprintf(file_block_header," };\n\n"); |
- |
- fclose(file_block_header); |
- |
- return 0; |
- |
-} |
- |
-int write_exec_const(struct loader_task *c) |
-{ |
- |
- FILE *file_exec_header; |
- int i; |
- |
- file_exec_header = fopen(ACT_LIST,"a+"); |
- if (file_exec_header == NULL) return 1; |
- |
- fprintf(file_exec_header,"struct timespec exec_%s[] = {{%d,%d},\n",c->name, |
- (int)c->exec_par_1.tv_sec,(int)c->exec_par_1.tv_nsec); |
- |
- for (i=0; i< c->act_number-1; i++) |
- fprintf(file_exec_header," {%d,%d},\n", |
- (int)c->exec_par_1.tv_sec,(int)c->exec_par_1.tv_nsec); |
- |
- fprintf(file_exec_header," };\n\n"); |
- |
- fclose(file_exec_header); |
- |
- return 0; |
- |
-} |
- |
-int write_exec_mean(struct loader_task *c) |
-{ |
- |
- FILE *file_exec_header; |
- int exec_time_usec; |
- int i; |
- |
- file_exec_header = fopen(ACT_LIST,"a+"); |
- if (file_exec_header == NULL) return 1; |
- |
- exec_time_usec = TIMESPEC2USEC(&c->exec_par_1) |
- + random() % TIMESPEC2USEC(&c->exec_par_2) - TIMESPEC2USEC(&c->exec_par_2) / 2; |
- fprintf(file_exec_header,"struct timespec exec_%s[] = {{%d,%d},\n",c->name, |
- exec_time_usec / 1000000, exec_time_usec % 1000000 * 1000); |
- |
- for (i=0; i< c->act_number-1; i++) { |
- exec_time_usec = TIMESPEC2USEC(&c->exec_par_1) |
- + random() % TIMESPEC2USEC(&c->exec_par_2) - TIMESPEC2USEC(&c->exec_par_2) / 2; |
- fprintf(file_exec_header," {%d,%d},\n", |
- exec_time_usec / 1000000, exec_time_usec % 1000000 * 1000); |
- } |
- |
- fprintf(file_exec_header," };\n\n"); |
- |
- fclose(file_exec_header); |
- |
- return 0; |
- |
-} |
- |
-void *start; |
-void *end; |
- |
-int main(int argc, char **argv) { |
- |
- char loadfile[100]; |
- struct timespec total_time; |
- struct loader_task *start_loader_task = NULL, *current_t; |
- struct loader_contract *start_loader_contract = NULL, *current_c; |
- int err,ldnum; |
- int total_task_number; |
- int total_contract_number; |
- |
- printf("\nEvent Generator\n"); |
- |
- if (argc < 2) { |
- printf("Error: event_gen loadfile.fsf\n"); |
- exit(1); |
- } |
- |
- printf("Read loader file %s\n",argv[1]); |
- |
- sprintf(loadfile,"%s%s",LOADFILE_DIR,argv[1]); |
- err = dos_preload(loadfile,100000,&start,&end); |
- |
- if (err != 0) { |
- printf("Error: File not found\n"); |
- exit(1); |
- } |
- |
- printf("Parsing file\n"); |
- |
- line_reader(start, end, &total_time, &start_loader_task, &start_loader_contract); |
- |
- srandom(time(NULL)); |
- |
- write_struct(); |
- |
- current_t = start_loader_task; |
- ldnum = 1; |
- |
- while(current_t != NULL) { |
- |
- sprintf(current_t->name,"ltask%d",ldnum); |
- current_t->group = ldnum; |
- ldnum++; |
- |
- switch (current_t->act_type) { |
- case PAR_ACT_SINGLE: |
- err = write_single_act(&total_time,current_t); |
- if (err != 0) { |
- printf("Error writing activation header\n"); |
- exit(1); |
- } |
- break; |
- case PAR_ACT_PERIODIC: |
- err = write_periodic_act(&total_time,current_t); |
- if (err != 0) { |
- printf("Error writing activation header\n"); |
- exit(1); |
- } |
- break; |
- case PAR_ACT_MEAN: |
- err = write_mean_act(&total_time,current_t); |
- if (err != 0) { |
- printf("Error writing activation header\n"); |
- exit(1); |
- } |
- break; |
- } |
- |
- switch (current_t->exec_type) { |
- case PAR_EXEC_CONST: |
- err = write_exec_const(current_t); |
- if (err != 0) { |
- printf("Error writing exec header\n"); |
- exit(1); |
- } |
- break; |
- case PAR_EXEC_MEAN: |
- err = write_exec_mean(current_t); |
- if (err != 0) { |
- printf("Error writing exec header\n"); |
- exit(1); |
- } |
- break; |
- } |
- |
- switch (current_t->crit_type) { |
- case PAR_CRIT: |
- err = write_block_const(current_t); |
- if (err != 0) { |
- printf("Error writing block header\n"); |
- exit(1); |
- } |
- break; |
- } |
- |
- current_t = current_t->next; |
- |
- } |
- |
- write_basic_par_start(); |
- |
- total_task_number = 0; |
- current_t = start_loader_task; |
- while(current_t != NULL) { |
- |
- write_basic_par(current_t); |
- |
- current_t = current_t->next; |
- |
- total_task_number++; |
- |
- } |
- |
- close_loader_task(total_task_number); |
- |
- write_contract_start(); |
- |
- total_contract_number = 0; |
- current_c = start_loader_contract; |
- while(current_c != NULL) { |
- |
- write_contract(current_c); |
- |
- current_c = current_c->next; |
- |
- total_contract_number++; |
- |
- } |
- |
- close_loader_contract(total_contract_number); |
- |
- write_simulation_time(&total_time); |
- |
- return 0; |
- |
-} |
Index: rel_1_5_beta1/loader/generators/lread.h |
=================================================================== |
--- rel_1_5_beta1/loader/generators/lread.h (revision 1579) |
+++ rel_1_5_beta1/loader/generators/lread.h (nonexistent) |
@@ -1,11 +0,0 @@ |
-#ifndef __LREAD_H__ |
-#define __LREAD_H__ |
- |
-#include "lparser.h" |
- |
-int dos_preload(char *file_name, long max_size, void **start, void **end); |
- |
-int line_reader(void *start, void *end, struct timespec *total, |
- struct loader_task **start_loader_task, struct loader_contract **start_loader_contract); |
- |
-#endif |
Index: rel_1_5_beta1/loader/generators/makefile |
=================================================================== |
--- rel_1_5_beta1/loader/generators/makefile (revision 1579) |
+++ rel_1_5_beta1/loader/generators/makefile (nonexistent) |
@@ -1,9 +0,0 @@ |
-event_gen: |
- gcc -o lparser.o -c -Wall lparser.c -I. -I.. |
- gcc -o lread.o -c -Wall lread.c -I. -I.. |
- gcc -o event_gen -Wall lparser.o lread.o -I. -I.. -lc event_gen.c |
- |
-clean: |
- rm -f *.o |
- rm -f event_gen |
- |
Index: rel_1_5_beta1/loader/readme.txt |
=================================================================== |
--- rel_1_5_beta1/loader/readme.txt (revision 1579) |
+++ rel_1_5_beta1/loader/readme.txt (nonexistent) |
@@ -1,64 +0,0 @@ |
-FIRST Framework Evaluation architecture |
---------------------------------------- |
- |
-makefile usage: |
- |
-$ make OS=<osname> TEST=<demo> all |
- |
-where: |
- |
-<osname> is the name of the target operating system and it can be: |
- |
-- MARTE for MaRTE OS |
-- SHARK for Shark |
- |
-<demo> is the name of the test case that have to be compiled. The |
-specification of the test case is contained inside the loadfile |
-directory. |
- |
-Valid extensions for the test case specification files are: |
-.fsf - old script file |
-.fsf2 - XML version |
-(other extensions can be added easily) |
- |
-For example: |
- |
-make OS=SHARK TEST=load all |
- |
-these makefile will: |
-- prepare the out directory with the common files |
-- add the shark initialization files |
-- parse a file loadfile/load.fsf (the file extension is guessed automatically |
- by the makefile) to produce source code inside out |
-- compile the resulting shark application |
- |
-------------------------------------------------------------------------- |
- |
-XML Parser & Java setup |
- |
-To use the XML parser (file extension .fsf2) you need to properly setup |
-your system, and you need toinstall the following libraries: |
- |
-- JDOM BETA 9 - http://www.jdom.org |
-- XERCES (Parser SAX with XSD support) - http://xml.apache.org |
- |
-On my Linux system, after installing the Sun's j2re, |
-I did the following commands (as root): |
- |
-# mkdir j |
-# cd j |
-# wget http://www.jdom.org/dist/binary/jdom-b9.tar.gz |
-# tar xvzf jdom-b9.tar.gz |
-# cp jdom-b9/build/jdom.jar /usr/java/j2re1.4.1_02/lib/ |
-# wget http://www.apache.org/dist/xml/xerces-j/Xerces-J-bin.2.6.0.tar.gz |
-# tar xvzf Xerces-J-bin.2.6.0.tar.gz |
-# cp ./xerces-2_6_0/xercesImpl.jar /usr/java/j2re1.4.1_02/lib/ |
-# cp ./xerces-2_6_0/xml-apis.jar /usr/java/j2re1.4.1_02/lib/ |
- |
-then, as user, I did |
- |
-$ export CLASSPATH=/usr/java/j2re1.4.1_02/lib |
- |
-Enjoy, |
- |
-Michael, Giacomo, PJ |
Index: rel_1_5_beta1/mesatex/makefile |
=================================================================== |
--- rel_1_5_beta1/mesatex/makefile (revision 1579) |
+++ rel_1_5_beta1/mesatex/makefile (nonexistent) |
@@ -1,16 +0,0 @@ |
-# |
-# |
-# |
- |
-ifndef BASE |
-BASE=../.. |
-endif |
-include $(BASE)/config/config.mk |
- |
-PROGS = mesatex |
- |
-include $(BASE)/config/example.mk |
- |
-mesatex: |
- make -f $(SUBMAKE) APP=mesatex INIT= OTHEROBJS="initfile.o" SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __FB__ __OSMESA__" |
- |
Index: rel_1_5_beta1/mesatex/initfile.c |
=================================================================== |
--- rel_1_5_beta1/mesatex/initfile.c (revision 1579) |
+++ rel_1_5_beta1/mesatex/initfile.c (nonexistent) |
@@ -1,200 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@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 |
- */ |
- |
-/* |
- * |
- * 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 "intdrive/intdrive/intdrive.h" |
-#include "edf/edf/edf.h" |
-#include "hardcbs/hardcbs/hardcbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "cabs/cabs/cabs.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_fb26.h> |
- |
-#define FRAME_BUFFER_DEVICE 0 |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = -1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- HCBS_register_level(HCBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- CABS_register_module(); |
- |
- return TICK; |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- /* Create the shutdown task. It will be activated at RUNLEVEL |
- SHUTDOWN */ |
- set_shutdown_task(); |
- |
- /* Init the drivers */ |
- device_drivers_init(); |
- |
- /* Set the shutdown task activation */ |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
-void set_shutdown_task() { |
- |
- /* WARNING: the shutdown task is a background thread. It cannot execute |
- if the system is overloaded */ |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-int device_drivers_init() { |
- |
- int res; |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- |
- PCI26_init(); |
- |
- INPUT26_init(); |
- |
- keyb_def_ctrlC(kparms, NULL); |
- |
- KEYB26_init(&kparms); |
- |
- FB26_init(); |
- |
- res = FB26_open(FRAME_BUFFER_DEVICE); |
- if (res) { |
- cprintf("Error: Cannot open graphical mode\n"); |
- KEYB26_close(); |
- INPUT26_close(); |
- exit(1); |
- } |
- |
- FB26_use_grx(FRAME_BUFFER_DEVICE); |
- |
- FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_close() { |
- |
- FB26_close(FRAME_BUFFER_DEVICE); |
- |
- KEYB26_close(); |
- |
- INPUT26_close(); |
- |
- return 0; |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) |
-{ |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- |
- return NULL; |
- |
-} |
- |
- |
Index: rel_1_5_beta1/mesatex/mesatex.c |
=================================================================== |
--- rel_1_5_beta1/mesatex/mesatex.c (revision 1579) |
+++ rel_1_5_beta1/mesatex/mesatex.c (nonexistent) |
@@ -1,370 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@gandalf.sssup.it> |
- * |
- * |
- * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
- * |
- * http://www.sssup.it |
- * http://retis.sssup.it |
- * http://shark.sssup.it |
- */ |
- |
-#include <GL/osmesa.h> |
-#include <GL/glut.h> |
- |
-#include <math.h> |
-#include <stdlib.h> |
-#include <assert.h> |
-#include <kernel/log.h> |
-#include <kernel/kern.h> |
- |
-#include <drivers/shark_fb26.h> |
-#include <drivers/shark_keyb26.h> |
- |
-#ifndef M_PI |
-#define M_PI 3.14159265 |
-#endif |
- |
-#define WIDTH 640 |
-#define HEIGHT 430 |
-#define BYTES_PP 2 //BytesPerPixel |
- |
-OSMesaContext ctx; |
- |
-static GLuint TexObj[2]; |
-static GLfloat Angle = 0.0f; |
-static GLboolean UseObj = GL_FALSE; |
- |
-extern void *video_memory; |
- |
-#if defined(GL_VERSION_1_1) || defined(GL_VERSION_1_2) |
-# define TEXTURE_OBJECT 1 |
-#elif defined(GL_EXT_texture_object) |
-# define TEXTURE_OBJECT 1 |
-# define glBindTexture(A,B) glBindTextureEXT(A,B) |
-# define glGenTextures(A,B) glGenTexturesEXT(A,B) |
-# define glDeleteTextures(A,B) glDeleteTexturesEXT(A,B) |
-#endif |
- |
-unsigned char *rgb_565_buf = NULL; //RGB 16 bpp Buffer |
-unsigned char *video_buf = NULL; //Video Buffer |
- |
-unsigned long int RGB565MEM = WIDTH * HEIGHT * BYTES_PP; // Total video mem |
- |
-unsigned long int PERIOD_REFRESH = 30000; |
-unsigned long int PERIOD_DISEGNA = 30000; |
- |
-unsigned long int WCET_REFRESH, WCET_DISEGNA; |
- |
-TASK refesh(void); |
-TASK disegna(void); |
- |
-PID refresh_PID, disegna_PID; |
- |
-static void draw( void ) |
-{ |
- glDepthFunc(GL_EQUAL); |
- /* glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );*/ |
- glClear( GL_COLOR_BUFFER_BIT ); |
- |
- glColor3f( 1.0, 1.0, 1.0 ); |
- |
- /* draw first polygon */ |
- glPushMatrix(); |
- glTranslatef( -1.0, 0.0, 0.0 ); |
- glRotatef( Angle, 0.0, 0.0, 1.0 ); |
- if (UseObj) { |
-#ifdef TEXTURE_OBJECT |
- glBindTexture( GL_TEXTURE_2D, TexObj[0] ); |
-#endif |
- } |
- else { |
- glCallList( TexObj[0] ); |
- } |
- glBegin( GL_POLYGON ); |
- glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 ); |
- glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 ); |
- glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 ); |
- glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 ); |
- glEnd(); |
- glPopMatrix(); |
- |
- /* draw second polygon */ |
- glPushMatrix(); |
- glTranslatef( 1.0, 0.0, 0.0 ); |
- glRotatef( Angle-90.0, 0.0, 1.0, 0.0 ); |
- if (UseObj) { |
-#ifdef TEXTURE_OBJECT |
- glBindTexture( GL_TEXTURE_2D, TexObj[1] ); |
-#endif |
- } |
- else { |
- glCallList( TexObj[1] ); |
- } |
- glBegin( GL_POLYGON ); |
- glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 ); |
- glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 ); |
- glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 ); |
- glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 ); |
- glEnd(); |
- glPopMatrix(); |
- |
-} |
- |
-static void gl_init() |
-{ |
- |
- static int twidth=8, theight=8; |
- static GLubyte tex1[] = { |
- 0, 0, 0, 1, 1, 1, 0, 0, |
- 0, 0, 1, 0, 0, 0, 0, 0, |
- 0, 0, 1, 0, 0, 0, 0, 0, |
- 0, 0, 1, 0, 0, 0, 0, 0, |
- 0, 0, 1, 0, 0, 0, 0, 0, |
- 0, 0, 1, 0, 0, 0, 0, 0, |
- 0, 0, 1, 0, 0, 0, 0, 0, |
- 0, 0, 0, 1, 1, 1, 0, 0 }; |
- |
- static GLubyte tex2[] = { |
- 0, 0, 0, 2, 2, 2, 0, 0, |
- 0, 0, 2, 0, 0, 0, 0, 0, |
- 0, 0, 2, 0, 0, 0, 0, 0, |
- 0, 0, 0, 2, 0, 0, 0, 0, |
- 0, 0, 0, 0, 2, 0, 0, 0, |
- 0, 0, 0, 0, 0, 2, 0, 0, |
- 0, 0, 0, 0, 0, 2, 0, 0, |
- 0, 0, 2, 2, 2, 0, 0, 0 }; |
- |
- GLubyte tex[64][3]; |
- GLint i, j; |
- |
- //Create the OSMesa Context |
- ctx = OSMesaCreateContext(OSMESA_RGB_565, NULL); |
- |
- //Make Current Context |
- OSMesaMakeCurrent(ctx, rgb_565_buf, GL_UNSIGNED_SHORT_5_6_5, WIDTH, HEIGHT); |
- |
- UseObj = GL_TRUE; |
- |
- glDisable( GL_DITHER ); |
- |
- /* Setup texturing */ |
- glEnable( GL_TEXTURE_2D ); |
- glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL ); |
- glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST ); |
- |
- /* generate texture object IDs */ |
- if (UseObj) { |
-#ifdef TEXTURE_OBJECT |
- glGenTextures( 2, TexObj ); |
-#endif |
- } |
- else { |
- TexObj[0] = glGenLists(2); |
- TexObj[1] = TexObj[0]+1; |
- } |
- |
- /* setup first texture object */ |
- if (UseObj) { |
-#ifdef TEXTURE_OBJECT |
- glBindTexture( GL_TEXTURE_2D, TexObj[0] ); |
- assert(glIsTexture(TexObj[0])); |
-#endif |
- } |
- else { |
- glNewList( TexObj[0], GL_COMPILE ); |
- } |
- /* red on white */ |
- for (i=0;i<theight;i++) { |
- for (j=0;j<twidth;j++) { |
- int p = i*twidth+j; |
- if (tex1[(theight-i-1)*twidth+j]) { |
- tex[p][0] = 255; tex[p][1] = 0; tex[p][2] = 0; |
- } |
- else { |
- tex[p][0] = 255; tex[p][1] = 255; tex[p][2] = 255; |
- } |
- } |
- } |
- |
- glTexImage2D( GL_TEXTURE_2D, 0, 3, twidth, theight, 0, |
- GL_RGB, GL_UNSIGNED_BYTE, tex ); |
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); |
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST ); |
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); |
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); |
- if (!UseObj) { |
- glEndList(); |
- } |
- /* end of texture object */ |
- |
- /* setup second texture object */ |
- if (UseObj) { |
-#ifdef TEXTURE_OBJECT |
- glBindTexture( GL_TEXTURE_2D, TexObj[1] ); |
- assert(glIsTexture(TexObj[1])); |
-#endif |
- assert(!glIsTexture(TexObj[1] + 999)); |
- } |
- else { |
- glNewList( TexObj[1], GL_COMPILE ); |
- } |
- /* green on blue */ |
- for (i=0;i<theight;i++) { |
- for (j=0;j<twidth;j++) { |
- int p = i*twidth+j; |
- if (tex2[(theight-i-1)*twidth+j]) { |
- tex[p][0] = 0; tex[p][1] = 255; tex[p][2] = 0; |
- } |
- else { |
- tex[p][0] = 0; tex[p][1] = 0; tex[p][2] = 255; |
- } |
- } |
- } |
- glTexImage2D( GL_TEXTURE_2D, 0, 3, twidth, theight, 0, |
- GL_RGB, GL_UNSIGNED_BYTE, tex ); |
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); |
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST ); |
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); |
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); |
- if (!UseObj) { |
- glEndList(); |
- } |
- /* end texture object */ |
- |
- glViewport(0, 0, (GLint)WIDTH, (GLint)HEIGHT); |
- glMatrixMode(GL_PROJECTION); |
- glLoadIdentity(); |
- /* glOrtho( -3.0, 3.0, -3.0, 3.0, -10.0, 10.0 );*/ |
- glFrustum( -2.0, 2.0, 2.0, -2.0, 6.0, 20.0 ); |
- glMatrixMode(GL_MODELVIEW); |
- glLoadIdentity(); |
- glTranslatef( 0.0, 0.0, -8.0 ); |
- |
-} |
- |
-void program_end(void *arg) |
-{ |
- |
- OSMesaDestroyContext(ctx); |
- free(rgb_565_buf); |
- |
- exit(0); |
- |
-} |
- |
-void program_key_end(KEY_EVT *k) |
-{ |
- |
- exit(0); |
- |
-} |
- |
-TASK refresh(void) |
-{ |
- |
- while(1) { |
- |
- memcpy((video_buf+40*WIDTH*2), rgb_565_buf, RGB565MEM); |
- task_endcycle(); |
- |
- } |
- |
- exit(0); |
- |
-} |
- |
- |
-TASK disegna(void) |
-{ |
- |
- char text[100]; |
- TIME disegna_TIME, refresh_TIME; |
- |
- while(1) { |
- |
- jet_gettable(refresh_PID, &refresh_TIME, 1); |
- jet_gettable(disegna_PID, &disegna_TIME, 1); |
- |
- Angle += 2.0; |
- |
- draw(); |
- |
- sprintf(text,"Hard Task Refresh PER:%6d us EX:%6d us",(int)PERIOD_REFRESH,(int)refresh_TIME); |
- grx_text(text,10,5,rgb16(0,0,255),0); |
- sprintf(text,"Hard Task Draw PER:%6d us EX:%6d us",(int)PERIOD_DISEGNA,(int)disegna_TIME); |
- grx_text(text,10,15,rgb16(0,0,255),0); |
- |
- task_endcycle(); |
- |
- } |
- |
- exit(0); |
- |
-} |
- |
-int main (int argc, char *argv[]) |
-{ |
- |
- HARD_TASK_MODEL ht_refresh, ht_disegna; |
- |
- clear(); |
- |
- WCET_REFRESH =((long int) PERIOD_REFRESH * (0.45)); |
- WCET_DISEGNA =((long int) PERIOD_DISEGNA * (0.45)); |
- |
- hard_task_default_model(ht_refresh); |
- hard_task_def_wcet(ht_refresh,WCET_REFRESH); |
- hard_task_def_mit(ht_refresh,PERIOD_REFRESH); |
- hard_task_def_usemath(ht_refresh); |
- hard_task_def_group(ht_refresh,1); |
- hard_task_def_ctrl_jet(ht_refresh); |
- |
- refresh_PID = task_create("refresh", refresh, &ht_refresh, NULL); |
- if (refresh_PID == -1) { |
- exit(4); |
- } |
- |
- hard_task_default_model(ht_disegna); |
- hard_task_def_mit(ht_disegna,PERIOD_DISEGNA); |
- hard_task_def_wcet(ht_disegna,WCET_DISEGNA); |
- hard_task_def_group(ht_disegna,1); |
- hard_task_def_ctrl_jet(ht_disegna); |
- hard_task_def_usemath(ht_disegna); |
- hard_task_def_stack(ht_disegna,30000); |
- |
- disegna_PID = task_create("disegna", disegna, &ht_disegna, NULL); |
- if (disegna_PID == -1) { |
- exit(4); |
- } |
- |
- { |
- KEY_EVT k; |
- k.flag = ALTL_BIT; |
- k.scan = KEY_C; |
- k.ascii = 'c'; |
- k.status = KEY_PRESSED; |
- keyb_hook(k,program_key_end,FALSE); |
- } |
- |
- rgb_565_buf = malloc(RGB565MEM); |
- |
- gl_init(); |
- |
- video_buf = (unsigned char *)video_memory; |
- //video_buf = (unsigned char *)malloc(640*480*2); |
- |
- memset(rgb_565_buf, 0, RGB565MEM); |
- |
- group_activate(1); |
- |
- return 0; |
- |
-} |
Index: rel_1_5_beta1/mesatex/readme.txt |
=================================================================== |
--- rel_1_5_beta1/mesatex/readme.txt (revision 1579) |
+++ rel_1_5_beta1/mesatex/readme.txt (nonexistent) |
@@ -1,44 +0,0 @@ |
--------------------------------------- |
-MESA Demo (tex) |
- |
-by |
- |
-Giacomo Guidi <giacomo@gandalf.sssup.it> |
- |
-Last update 17/03/2003 |
--------------------------------------- |
- |
-This is a simple test demo for the MESA (5.0) |
-libraries, the low level graphic drivers is |
-the SVGA (from the SVGAlib) |
- |
-See drivers/svga/readme for supported cards |
- |
--------------------------------------- |
- |
-The demo is composed by: |
- |
-MAKEFILE The makefile used to compile the application |
-README.TXT This file |
-INITFILE.C The init file |
-MESATEX.C The MESA Demo |
- |
--------------------------------------- |
- |
-- To specify your card change the line |
- |
-#define CARD <driver name> |
- |
-- The demo calls the grx and off-screen Mesa functions. |
-The resolution must be 16 bitsperpixel (64K colors) and |
-the graphic access mode must be linear. |
- |
-- There are two buffers |
- |
- The video buffer (video_buf) |
- The virtual buffer (rgb_565_buf) |
- |
- copy_videomem_16to16 links these buffers |
- |
- |
- |
Index: rel_1_5_beta1/jumpball/ecp.c |
=================================================================== |
--- rel_1_5_beta1/jumpball/ecp.c (revision 1579) |
+++ rel_1_5_beta1/jumpball/ecp.c (nonexistent) |
@@ -1,214 +0,0 @@ |
-/* |
- * 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 |
- */ |
- |
-/** |
- ------------ |
- CVS : $Id: ecp.c,v 1.7 2005-02-25 11:08:58 pj Exp $ |
- |
- File: $File$ |
- Revision: $Revision: 1.7 $ |
- Last update: $Date: 2005-02-25 11:08:58 $ |
- ------------ |
-**/ |
- |
-/* |
- * Copyright (C) 2003 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 "intdrive/intdrive/intdrive.h" |
-#include "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "cabs/cabs/cabs.h" |
- |
-#include "pi/pi/pi.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_fb26.h> |
- |
-#define FRAME_BUFFER_DEVICE 0 |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 2000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = -1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- CBS_register_level(CBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- CABS_register_module(); |
- PI_register_module(); |
- |
- return TICK; |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-int device_drivers_init() { |
- |
- int res; |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- |
- PCI26_init(); |
- |
- INPUT26_init(); |
- |
- keyb_def_ctrlC(kparms, NULL); |
- |
- KEYB26_init(&kparms); |
- |
- FB26_init(); |
- |
- res = FB26_open(FRAME_BUFFER_DEVICE); |
- if (res) { |
- cprintf("Error: Cannot open graphical mode\n"); |
- KEYB26_close(); |
- INPUT26_close(); |
- exit(1); |
- } |
- |
- FB26_use_grx(FRAME_BUFFER_DEVICE); |
- |
- FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_close() { |
- |
- FB26_close(FRAME_BUFFER_DEVICE); |
- |
- KEYB26_close(); |
- |
- INPUT26_close(); |
- |
- return 0; |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) |
-{ |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- |
- return NULL; |
- |
-} |
- |
-void app_mutex_init(mutex_t *m) |
-{ |
- PI_mutexattr_t attr; |
- |
- PI_mutexattr_default(attr); |
- |
- mutex_init(m, &attr); |
-} |
Index: rel_1_5_beta1/jumpball/jetctrl.c |
=================================================================== |
--- rel_1_5_beta1/jumpball/jetctrl.c (revision 1579) |
+++ rel_1_5_beta1/jumpball/jetctrl.c (nonexistent) |
@@ -1,236 +0,0 @@ |
-/* |
- * 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 |
- */ |
- |
-/** |
- ------------ |
- CVS : $Id: jetctrl.c,v 1.5 2005-01-08 14:35:17 pj Exp $ |
- |
- File: $File$ |
- Revision: $Revision: 1.5 $ |
- Last update: $Date: 2005-01-08 14:35:17 $ |
- ------------ |
-**/ |
- |
-/* |
- * 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 |
- * |
- */ |
- |
- |
-// JetControl |
- |
-#include "demo.h" |
-#include "kernel/func.h" |
- |
-TASK jetdummy_task(void *arg) |
-{ |
- TIME now_dummy, last_dummy, diff_dummy, slice; |
- struct timespec now, last, diff; |
- int x = 0; |
- int height; |
- |
- NULL_TIMESPEC(&last); |
- last_dummy = 0; |
- for (;;) { |
- task_nopreempt(); |
- jet_getstat(DUMMY_PID, NULL, NULL, NULL, &now_dummy); |
- sys_gettime(&now); |
- task_preempt(); |
- |
- SUBTIMESPEC(&now, &last, &diff); |
- slice = diff.tv_sec * 1000000 + diff.tv_nsec/1000; |
- diff_dummy = now_dummy - last_dummy; |
- |
- height = (int)(JET_DUMMY_HEIGHT*((float)diff_dummy)/((float)slice)); |
- |
- TIMESPEC_ASSIGN(&last, &now); |
- last_dummy = now_dummy; |
- |
- grx_line(JET_DUMMY_X+x,JET_DUMMY_Y, |
- JET_DUMMY_X+x,JET_DUMMY_Y+height ,black); |
- grx_line(JET_DUMMY_X+x,JET_DUMMY_Y+height, |
- JET_DUMMY_X+x,JET_DUMMY_Y+JET_DUMMY_HEIGHT,white); |
- grx_line(JET_DUMMY_X+(x+1)%JET_DUMMY_WIDTH,JET_DUMMY_Y, |
- JET_DUMMY_X+(x+1)%JET_DUMMY_WIDTH,JET_DUMMY_Y+JET_DUMMY_HEIGHT,255); |
- |
- x = (x+1)%JET_DUMMY_WIDTH; |
- |
- task_endcycle(); |
- } |
-} |
- |
- |
-TASK jetctrl_task(void *arg) |
-{ |
- char st[50]; |
- TIME sum, max; |
- int n; |
- |
- PID i; |
- int printed = 0; |
- |
- for (;;) { |
- for (i=2, printed=0; i<MAX_PROC && printed<JET_NTASK; i++) { |
- if (jet_getstat(i, &sum, &max, &n, NULL) != -1) { |
- if (!n) n=1; |
- sprintf(st, "%6d %6d %10s", (int)sum/n, (int)max, proc_table[i].name); |
- grx_text(st, 384, JET_Y_NAME+16+printed*8, gray, black); |
- printed++; |
- } |
- } |
- while (printed<JET_NTASK) { |
- grx_text(" ", |
- 384, JET_Y_NAME+16+printed*8, gray, black); |
- printed++; |
- } |
- task_endcycle(); |
- } |
-} |
- |
-TASK jetslide_task(void *arg) |
-{ |
- TIME sum, curr, max; |
- |
- TIME total[JET_NTASK]; |
- int slides[JET_NTASK]; |
- |
- PID i; |
- int printed = 0; |
- |
- for (;;) { |
- // Fill the total array in a nonpreemptive section |
- task_nopreempt(); |
- for (i=2, printed=0; i<MAX_PROC && printed<JET_NTASK; i++) { |
- if (jet_getstat(i, &sum, NULL, NULL, &curr) != -1) { |
- total[printed] = sum+curr; |
- printed++; |
- } |
- } |
- task_preempt(); |
- |
- while (printed < JET_NTASK) |
- total[printed++] = 0; |
- |
- // Compute the Max elapsed time |
- max = 0; |
- for (i=0; i<JET_NTASK; i++) |
- if (total[i] > max) max = total[i]; |
- if (!max) max = 1; |
- |
- // Compute the slides width |
- for (i=0; i<JET_NTASK; i++) |
- slides[i] = (int)( (((float)total[i])/max) * JET_SLIDE_WIDTH); |
- |
- // print the data |
- for (i=0; i<JET_NTASK; i++) { |
- grx_box(JET_SLIDE_X, JET_Y_NAME+16+i*8, |
- JET_SLIDE_X+slides[i], JET_Y_NAME+23+i*8, gray); |
- grx_box(JET_SLIDE_X+slides[i], JET_Y_NAME+16+i*8, |
- JET_SLIDE_X+JET_SLIDE_WIDTH, JET_Y_NAME+23+i*8, black); |
- } |
- |
- while (i<JET_NTASK) { |
- grx_box(JET_SLIDE_X, JET_Y_NAME+16+i*8, |
- JET_SLIDE_X+JET_SLIDE_WIDTH, JET_Y_NAME+20+i*8, black); |
- i++; |
- } |
- task_endcycle(); |
- } |
-} |
- |
- |
-void scenario_jetcontrol(void) |
-{ |
- grx_text("System load" , 384, 45, rgb16(0,0,255), black); |
- grx_line(384,55,639,55,red); |
- |
- grx_text(" Mean Max Name Slide", 384, JET_Y_NAME, gray, black); |
- grx_line(384,JET_Y_NAME+10,639,JET_Y_NAME+10,gray); |
- |
- grx_rect(JET_DUMMY_X-1, JET_DUMMY_Y-1, |
- JET_DUMMY_X+JET_DUMMY_WIDTH, JET_DUMMY_Y+JET_DUMMY_HEIGHT+1, gray); |
- |
- grx_text("100%", JET_DUMMY_X-40, JET_DUMMY_Y, gray, black); |
- grx_text(" 0%", JET_DUMMY_X-40, JET_DUMMY_Y+JET_DUMMY_HEIGHT-8, gray, black); |
- |
- grx_line(JET_DUMMY_X-1, JET_DUMMY_Y, JET_DUMMY_X-5, JET_DUMMY_Y, gray); |
- grx_line(JET_DUMMY_X-1, JET_DUMMY_Y+JET_DUMMY_HEIGHT, JET_DUMMY_X-5, JET_DUMMY_Y+JET_DUMMY_HEIGHT, gray); |
-} |
- |
-void init_jetcontrol(void) |
-{ |
- SOFT_TASK_MODEL m3, m4, m5; |
- |
- PID p3, p4, p5; |
- |
- soft_task_default_model(m3); |
- soft_task_def_level(m3,2); |
- soft_task_def_period(m3, PERIOD_JETCTRL); |
- soft_task_def_met(m3, WCET_JETCTRL); |
- soft_task_def_ctrl_jet(m3); |
- soft_task_def_group(m3, 1); |
- p3 = task_create("jctrl", jetctrl_task, &m3, NULL); |
- if (p3 == -1) { |
- sys_shutdown_message("Could not create task <jetctrl> errno=%d", |
- errno); |
- exit(1); |
- } |
- |
- soft_task_default_model(m4); |
- soft_task_def_level(m4,2); |
- soft_task_def_period(m4, PERIOD_JETDUMMY); |
- soft_task_def_met(m4, WCET_JETDUMMY); |
- soft_task_def_group(m4, 1); |
- soft_task_def_usemath(m4); |
- soft_task_def_ctrl_jet(m4); |
- p4 = task_create("jdmy", jetdummy_task, &m4, NULL); |
- if (p4 == -1) { |
- sys_shutdown_message("Could not create task <jetdummy> errno=%d", |
- errno); |
- exit(1); |
- } |
- |
- soft_task_default_model(m5); |
- soft_task_def_level(m5,2); |
- soft_task_def_period(m5, PERIOD_JETSLIDE); |
- soft_task_def_met(m5, WCET_JETSLIDE); |
- soft_task_def_group(m5, 1); |
- soft_task_def_usemath(m5); |
- soft_task_def_ctrl_jet(m5); |
- p5 = task_create("jsli", jetslide_task, &m5, NULL); |
- if (p5 == -1) { |
- sys_shutdown_message("Could not create task <jetslide> errno=%d", |
- errno); |
- exit(1); |
- } |
-} |
- |
Index: rel_1_5_beta1/jumpball/demo.h |
=================================================================== |
--- rel_1_5_beta1/jumpball/demo.h (revision 1579) |
+++ rel_1_5_beta1/jumpball/demo.h (nonexistent) |
@@ -1,183 +0,0 @@ |
-/* |
- * 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 |
- */ |
- |
-/** |
- ------------ |
- CVS : $Id: demo.h,v 1.7 2004-09-14 09:21:13 giacomo Exp $ |
- |
- File: $File$ |
- Revision: $Revision: 1.7 $ |
- Last update: $Date: 2004-09-14 09:21:13 $ |
- ------------ |
-**/ |
- |
-/* |
- * 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 <ll/ll.h> |
-#include <kernel/types.h> |
-#include <kernel/descr.h> |
-#include <math.h> |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_fb26.h> |
- |
-#define FRAME_BUFFER_DEVICE 0 |
- |
-/* Subparts */ |
-#define JET_ON |
-#define BALL_ON |
- |
- |
-/* CPU Speed Selection |
- -------------------------------------------------------------------- |
- 1700 - Pentium 4 1.7 GHz |
- 1300 - Centrino 1.3 GHz |
- 400 - Pentium 2 400 MHz |
- 133 - Pentium 1 133 MHz |
-*/ |
-#define CPU 400 |
- |
-/* |
- * |
- * WCET, Periods and Models |
- * |
- */ |
- |
-#if CPU==133 |
-#define WCET_JETCTRL 10000 |
-#define WCET_JETDUMMY 300 |
-#define WCET_JETSLIDE 2000 |
-#define WCET_BALL 250 |
-#define WCET_HARD_BALL 1000 |
-#define BALL_DELAY 10000 |
-#endif |
- |
-#if CPU==400 |
-#define WCET_JETCTRL 7500 |
-#define WCET_JETDUMMY 400 |
-#define WCET_JETSLIDE 2100 |
-#define WCET_BALL 250 |
-#define WCET_HARD_BALL 480 |
-#define BALL_DELAY 10000 |
-#endif |
- |
-#if CPU==1300 |
-#define WCET_JETCTRL 4500 |
-#define WCET_JETDUMMY 200 |
-#define WCET_JETSLIDE 1300 |
-#define WCET_BALL 250 |
-#define WCET_HARD_BALL 650 |
-#define BALL_DELAY 100000 |
-#endif |
- |
-#if CPU==1700 |
-#define WCET_JETCTRL 4500 |
-#define WCET_JETDUMMY 100 |
-#define WCET_JETSLIDE 1300 |
-#define WCET_BALL 250 |
-#define WCET_HARD_BALL 410 |
-#define BALL_DELAY 100000 |
-#endif |
- |
-#define PERIOD_JETCTRL 100000 |
-#define PERIOD_JETDUMMY 100000 |
-#define PERIOD_JETSLIDE 100000 |
-#define PERIOD_BALL 10000 |
- |
-/* |
- * |
- * Global Stuffs |
- * |
- */ |
- |
-extern PID shutdown_task_PID; |
- |
-/* graphic mutex... */ |
-extern mutex_t mutex; |
- |
-/* useful colors... */ |
-extern int white; |
-extern int black; |
-extern int red; |
-extern int gray; |
- |
-void init_jetcontrol(); |
-void init_ball(void); |
-void scenario_jetcontrol(); |
-void scenario_ball(); |
-char *itoa(int n, char *s); |
-int myrand(int x); |
- |
-/* |
- * |
- * JETCONTROL stuffs |
- * |
- */ |
- |
-#define JET_NTASK 35 |
-#define JET_Y_NAME 170 |
- |
-#define DUMMY_PID 1 |
- |
-#define JET_DUMMY_WIDTH 210 |
-#define JET_DUMMY_HEIGHT 80 |
- |
-/* the point (x, y) is the top left corner */ |
-#define JET_DUMMY_X 428 |
-#define JET_DUMMY_Y 65 |
- |
-#define JET_SLIDE_WIDTH 50 |
-#define JET_SLIDE_X 576 |
- |
-/* |
- * |
- * BALL stuffs |
- * |
- */ |
- |
-// x and y corners are specified whithout consider a border of 3 pixels |
-#define BALL_Y 450 /* position of the floor */ |
-#define BALL_HEIGHT 385 /* initial height of the ball */ |
-#define BALL_XMIN 10 /* min position X of the ball */ |
-#define BALL_XMAX 370 /* max position X of the ball */ |
-#define BALL_VELX 5. /* horizontal ball velocity */ |
-#define BALL_VYMIN 11. /* min ground speed */ |
-#define BALL_MAX_P 60 /* max number of balls */ |
- |
-#define BALL_GROUP 2 /* task group of the balls */ |
Index: rel_1_5_beta1/jumpball/readme.txt |
=================================================================== |
--- rel_1_5_beta1/jumpball/readme.txt (revision 1579) |
+++ rel_1_5_beta1/jumpball/readme.txt (nonexistent) |
@@ -1,94 +0,0 @@ |
----------------------------------- |
-Jumping Balls demo |
- |
-by |
- |
-Paolo Gai 1999-2001 - pj@sssup.it |
- |
----------------------------------- |
- |
-This demo was created to show some S.Ha.R.K. functionalities in the course |
-of Informatica Industriale , University of Pavia, Italy. |
- |
-The demo is composed by an application (derived by the template application |
-distributed on the web site) and two init files. |
- |
-The demo is composed by: |
- |
-MAKEFILE The makefile used to compile the application; |
- demo is the rule to compile the application with a CBS scheduler |
- demo2 is the rule to compile the application with a RR scheduler |
-README.TXT This file |
-DEMO.H Some constants used into the demo |
-ECP.C, ERN.C, RRP.C, RRN.C Various initfiles |
-INITFIL2.C The EDF initfile |
-INITFILE.C A makefile that cover either EDF+CBS and RR |
-BALL.C The Jumping balls part of the demo |
-DEMO.C The main() function and some other utility function |
-JETCTRL.C The JET part of the demo |
- |
-The demo works as follows: |
-- It works at 640x480 16 bit colors |
-- on the left, there is the jumping ball arena, on the rigth there is the |
- statistics about the tasks into the system. |
- |
-- the tasks are guaranteed using CBS and EDF. The wcet and mean execution |
- time on my portable after a few minutes are (us): |
- |
- JetCtrl 7400 max 7500 CBS met |
- JetDummy 135 max 200 CBS met |
- JetSlide 2100 max 2100 CBS met |
- Balls 276 max 380 EDF wcet for hard ball,100 CBS met for soft ones |
- |
- The system should go overloaded with 40 soft balls. |
- |
-- The idea is the following: |
- - first, an edf guaranteed ball is created. |
- - then, create a set of soft ball using space. since their met is < than the |
- real met, they posticipate the deadlines. |
- - if they are killed, they remain for some seconds in the zombie state |
- - if a set of soft ball arde created (i.e., 10), and after a while all the |
- others are created, the bandwidth is fully used, and the task posticipate |
- their deadlines. the first set of tasks stops jumping when the bandwidth |
- is full utilized by the newest balls until all the tasks have similar |
- deadlines. |
- - Note on the left the slides that represents the relative ratio |
- between the tasks. |
- - Note that in overload conditions the EDF task is still guaranteed |
- - Note that PI is used with EDF, also if no theory says that it is good: |
- - S.Ha.R.K. allows that, it is the user that have to choose if that is |
- a non-sense |
- - PI is independent from the implemnentation of the scheduling modules |
- - if the second init file is used, RR is used instead of EDF+CBS. |
- - In overload condition RR perform differently from EDF+CBS, giving to |
- each task an equal fraction of bandwidth |
- |
- - note also: |
- - the redefinition of the standard exception handler |
- - the redefinition of the keys and the initialization of the keyboard |
- - the myend exit function |
- - the main() that terminates |
- - the two parts (ball and jet) can be excluded using a #define |
- |
-If You have any question, please contact the author... |
- |
-Update (2003/12/19): |
-Just some more notes... |
-I usually show the four demos in the following order: |
- |
-(first of all, tune the demo depending on how fast your notebook is; see demo.h) |
- |
-ECP - EDF with CBS and PI... the white EDF ball still work also in overload; CBS balls just slow down but they still get their guaranteed bandwidth |
- |
-RRP - Round Robin with Priority inheritance ... the EDF ball is at the same level of the others, all slow down... |
- |
-RRN - 2 levels of Round Robin, without Priority inheritance ... when |
-there is overload, the white ball works ok, but the other have an impredicible |
-behavior (they execute many instances in one RR period) |
- |
-ERN - EDF, RR, no priority inheritance - the white ball misses his deadline |
-just when there is an overload (all the other balls are queued on the same |
-semaphore, so the blocking time increase, and when there is overload the EDF |
-task misses also if it has not consumed his bandwidth). Note that it happens |
-also if the EDF task consume just a few microseconds... Real time does not |
-means "fast" :-) |
Index: rel_1_5_beta1/jumpball/ball.c |
=================================================================== |
--- rel_1_5_beta1/jumpball/ball.c (revision 1579) |
+++ rel_1_5_beta1/jumpball/ball.c (nonexistent) |
@@ -1,246 +0,0 @@ |
-/* |
- * 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 |
- */ |
- |
-/** |
- ------------ |
- CVS : $Id: ball.c,v 1.7 2005-01-08 14:35:17 pj Exp $ |
- |
- File: $File$ |
- Revision: $Revision: 1.7 $ |
- Last update: $Date: 2005-01-08 14:35:17 $ |
- ------------ |
-**/ |
- |
-/* |
- * 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 |
- * |
- */ |
- |
-/*--------------------------------------------------------------*/ |
-/* SIMULATION OF JUMPING BALLS */ |
-/*--------------------------------------------------------------*/ |
- |
-#include "demo.h" |
-#include <kernel/func.h> |
-#include <stdlib.h> |
- |
-#define R 8 /* dimension of a ball */ |
-#define G 9.8 /* acceleration of gravity */ |
- |
-static int ballexit = 0; |
-static int npc = 0; /* number of tasks created */ |
- |
-/*--------------------------------------------------------------*/ |
-/* Delay function for jumping balls */ |
-/*--------------------------------------------------------------*/ |
- |
-void my_delay(void) |
-{ |
- int xxx; |
- for (xxx=0; xxx<BALL_DELAY; xxx++); |
-} |
- |
-/*--------------------------------------------------------------*/ |
-/* Periodic task for ball simulation */ |
-/*--------------------------------------------------------------*/ |
- |
-TASK palla(int i) |
-{ |
-int x, y; /* coordinate grafiche pallina */ |
-int ox, oy; /* vecchia posizione pallina */ |
-int x0, y0; /* posizione iniziale X pallina */ |
-float vx, vy; /* velocit
della pallina */ |
-float vy0; /* velocita' pallina al primo rimbalzo */ |
-float ty, tx; /* variabile temporale */ |
-float dt; /* incremento temporale */ |
- |
- y = oy = y0 = BALL_HEIGHT; |
- x = ox = x0 = BALL_XMIN; |
- |
- vy0= sqrt(2. * G * (float)BALL_HEIGHT); |
- vy = 0; |
- vx = BALL_VELX + myrand(9); |
- tx = 0; |
- ty = 0; |
- dt = ((float)PERIOD_BALL)/100000; |
- |
- while (1) { |
- y = y0 + vy*ty - .5*G*ty*ty; |
- x = x0 + vx * tx; |
- |
- if (y < 0) { |
- y = 0; |
- |
- if (vy == 0.0) |
- vy = vy0; |
- else if (vy < BALL_VYMIN) |
- vy = vy0 * (1.0 - myrand(50)/100.0); |
- else |
- vy = 0.9 * vy; |
- |
- ty = 0.0; |
- y0 = 0; |
- } |
- |
- if (x > BALL_XMAX) { |
- tx = 0.0; |
- x0 = BALL_XMAX; |
- vx = -vx; |
- x = x0 + vx * tx; |
- } |
- |
- if (x < BALL_XMIN) { |
- tx = 0.0; |
- x0 = BALL_XMIN; |
- vx = -vx; |
- x = x0 + vx * tx; |
- } |
- |
- mutex_lock(&mutex); |
- grx_disc(ox, oy, R, 0); |
- ox = x; |
- oy = BALL_Y - y; |
- mutex_unlock(&mutex); |
- |
- if (ballexit && i!=0xFFFF) { |
- npc--; |
- return 0; |
- } |
- |
- mutex_lock(&mutex); |
- grx_disc(ox, oy, R, i); |
- mutex_unlock(&mutex); |
- |
- my_delay(); |
- |
- ty += dt; |
- tx += dt; |
- task_endcycle(); |
- } |
-} |
- |
-void killball(KEY_EVT *k) |
-{ |
- ballexit = 1; |
-} |
- |
-void ballfun(KEY_EVT *k) |
-{ |
- SOFT_TASK_MODEL mp; |
- int r,g,b; |
- PID pid; |
- char palla_str[]="palla "; |
- |
- if (npc == BALL_MAX_P) return; |
- |
- ballexit = 0; |
- |
- r = 64 + myrand(190); |
- g = 64 + myrand(190); |
- b = 64 + myrand(190); |
- |
- itoa(npc,palla_str+5); |
- |
- soft_task_default_model(mp); |
- soft_task_def_level(mp,2); |
- soft_task_def_ctrl_jet(mp); |
- soft_task_def_arg(mp, (void *)rgb16(r,g,b)); |
- soft_task_def_group(mp, BALL_GROUP); |
- soft_task_def_met(mp, WCET_BALL); |
- soft_task_def_period(mp,PERIOD_BALL); |
- soft_task_def_usemath(mp); |
- pid = task_create(palla_str, palla, &mp, NULL); |
- |
- if (pid != NIL) { |
- task_activate(pid); |
- npc++; |
- } |
-} |
- |
-void hardball() |
-{ |
- HARD_TASK_MODEL mp; |
- int r,g,b; |
- PID pid; |
- |
- r = 255; |
- g = 255; |
- b = 255; |
- |
- hard_task_default_model(mp); |
- hard_task_def_ctrl_jet(mp); |
- hard_task_def_arg(mp, (void *)rgb16(r,g,b)); |
- hard_task_def_wcet(mp, WCET_HARD_BALL); |
- hard_task_def_mit(mp,PERIOD_BALL); |
- hard_task_def_usemath(mp); |
- pid = task_create("pallaEDF", palla, &mp, NULL); |
- if (pid == NIL) { |
- sys_shutdown_message("Could not create task <pallaEDF>"); |
- exit(1); |
- } |
- else |
- task_activate(pid); |
-} |
- |
- |
-/*--------------------------------------------------------------*/ |
-/* MAIN process */ |
-/*--------------------------------------------------------------*/ |
- |
-void scenario_ball() |
-{ |
- grx_text("Noise", 0, 45 /*BALL_Y-BALL_HEIGHT-15*/, rgb16(0,0,255), black); |
- grx_line(0,55,383,55,red); |
- grx_rect(BALL_XMIN-R-1, BALL_Y-BALL_HEIGHT-R-1, |
- BALL_XMAX+R+1, BALL_Y+R+1, rgb16(0,200,0)); |
-} |
- |
-void init_ball(void) |
-{ |
- KEY_EVT k; |
- |
- hardball(); |
- |
- k.flag = 0; |
- k.scan = KEY_SPC; |
- k.ascii = ' '; |
- k.status = KEY_PRESSED; |
- keyb_hook(k,ballfun,FALSE); |
- |
- k.flag = 0; |
- k.scan = KEY_BKS; |
- k.ascii = ' '; |
- k.status = KEY_PRESSED; |
- keyb_hook(k,killball,FALSE); |
-} |
- |
-/*--------------------------------------------------------------*/ |
Index: rel_1_5_beta1/jumpball/makefile |
=================================================================== |
--- rel_1_5_beta1/jumpball/makefile (revision 1579) |
+++ rel_1_5_beta1/jumpball/makefile (nonexistent) |
@@ -1,24 +0,0 @@ |
-# |
-# |
-# |
- |
-ifndef BASE |
-BASE=../.. |
-endif |
-include $(BASE)/config/config.mk |
- |
-PROGS= ecp ern rrp rrn |
- |
-include $(BASE)/config/example.mk |
- |
-ecp: |
- make -f $(SUBMAKE) APP=ecp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __FB__" |
- |
-ern: |
- make -f $(SUBMAKE) APP=ern INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __FB__" |
- |
-rrp: |
- make -f $(SUBMAKE) APP=rrp INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __FB__" |
- |
-rrn: |
- make -f $(SUBMAKE) APP=rrn INIT= OTHEROBJS="demo.o ball.o jetctrl.o" OTHERINCL= SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __FB__" |
Index: rel_1_5_beta1/jumpball/rrn.c |
=================================================================== |
--- rel_1_5_beta1/jumpball/rrn.c (revision 1579) |
+++ rel_1_5_beta1/jumpball/rrn.c (nonexistent) |
@@ -1,217 +0,0 @@ |
-/* |
- * 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 |
- */ |
- |
-/** |
- ------------ |
- CVS : $Id: rrn.c,v 1.7 2005-02-25 11:08:58 pj Exp $ |
- |
- File: $File$ |
- Revision: $Revision: 1.7 $ |
- Last update: $Date: 2005-02-25 11:08:58 $ |
- ------------ |
-**/ |
- |
-/* |
- * Copyright (C) 2003 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 "intdrive/intdrive/intdrive.h" |
-#include "edf/edf/edf.h" |
-#include "rr/rr/rr.h" |
-#include "rrsoft/rrsoft/rrsoft.h" |
-#include "dummy/dummy/dummy.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "cabs/cabs/cabs.h" |
- |
-#include "nop/nop/nop.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_fb26.h> |
- |
-#define FRAME_BUFFER_DEVICE 0 |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 2000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = -1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
- RR_register_level(RRTICK, RR_MAIN_NO, mb); // this module remains empty!!! |
- RRSOFT_register_level(RRTICK, RR_MAIN_NO, mb, RRSOFT_ONLY_HARD|RRSOFT_ONLY_SOFT); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- CABS_register_module(); |
- |
- NOP_register_module(); |
- |
- return TICK; |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-int device_drivers_init() { |
- |
- int res; |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- |
- PCI26_init(); |
- |
- INPUT26_init(); |
- |
- keyb_def_ctrlC(kparms, NULL); |
- |
- KEYB26_init(&kparms); |
- |
- FB26_init(); |
- |
- res = FB26_open(FRAME_BUFFER_DEVICE); |
- if (res) { |
- cprintf("Error: Cannot open graphical mode\n"); |
- KEYB26_close(); |
- INPUT26_close(); |
- exit(1); |
- } |
- |
- FB26_use_grx(FRAME_BUFFER_DEVICE); |
- |
- FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_close() { |
- |
- FB26_close(FRAME_BUFFER_DEVICE); |
- |
- KEYB26_close(); |
- |
- INPUT26_close(); |
- |
- return 0; |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) |
-{ |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- |
- return NULL; |
- |
-} |
- |
-void app_mutex_init(mutex_t *m) |
-{ |
- NOP_mutexattr_t attr; |
- |
- NOP_mutexattr_default(attr); |
- |
- mutex_init(m, &attr); |
-} |
- |
Index: rel_1_5_beta1/jumpball/rrp.c |
=================================================================== |
--- rel_1_5_beta1/jumpball/rrp.c (revision 1579) |
+++ rel_1_5_beta1/jumpball/rrp.c (nonexistent) |
@@ -1,217 +0,0 @@ |
-/* |
- * 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 |
- */ |
- |
-/** |
- ------------ |
- CVS : $Id: rrp.c,v 1.7 2005-02-25 11:08:58 pj Exp $ |
- |
- File: $File$ |
- Revision: $Revision: 1.7 $ |
- Last update: $Date: 2005-02-25 11:08:58 $ |
- ------------ |
-**/ |
- |
-/* |
- * Copyright (C) 2003 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 "intdrive/intdrive/intdrive.h" |
-#include "edf/edf/edf.h" |
-#include "rr/rr/rr.h" |
-#include "rrsoft/rrsoft/rrsoft.h" |
-#include "dummy/dummy/dummy.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "cabs/cabs/cabs.h" |
- |
-#include "pi/pi/pi.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_fb26.h> |
- |
-#define FRAME_BUFFER_DEVICE 0 |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 2000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = -1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
- RRSOFT_register_level(RRTICK, RR_MAIN_NO, mb, RRSOFT_ONLY_HARD); |
- RRSOFT_register_level(RRTICK, RR_MAIN_NO, mb, RRSOFT_ONLY_SOFT); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- CABS_register_module(); |
- |
- PI_register_module(); |
- |
- return TICK; |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-int device_drivers_init() { |
- |
- int res; |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- |
- PCI26_init(); |
- |
- INPUT26_init(); |
- |
- keyb_def_ctrlC(kparms, NULL); |
- |
- KEYB26_init(&kparms); |
- |
- FB26_init(); |
- |
- res = FB26_open(FRAME_BUFFER_DEVICE); |
- if (res) { |
- cprintf("Error: Cannot open graphical mode\n"); |
- KEYB26_close(); |
- INPUT26_close(); |
- exit(1); |
- } |
- |
- FB26_use_grx(FRAME_BUFFER_DEVICE); |
- |
- FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_close() { |
- |
- FB26_close(FRAME_BUFFER_DEVICE); |
- |
- KEYB26_close(); |
- |
- INPUT26_close(); |
- |
- return 0; |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) |
-{ |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- |
- return NULL; |
- |
-} |
- |
-void app_mutex_init(mutex_t *m) |
-{ |
- PI_mutexattr_t attr; |
- |
- PI_mutexattr_default(attr); |
- |
- mutex_init(m, &attr); |
-} |
- |
Index: rel_1_5_beta1/jumpball/demo.c |
=================================================================== |
--- rel_1_5_beta1/jumpball/demo.c (revision 1579) |
+++ rel_1_5_beta1/jumpball/demo.c (nonexistent) |
@@ -1,198 +0,0 @@ |
-/* |
- * 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 |
- */ |
- |
-/** |
- ------------ |
- CVS : $Id: demo.c,v 1.8 2005-01-08 14:35:17 pj Exp $ |
- |
- File: $File$ |
- Revision: $Revision: 1.8 $ |
- Last update: $Date: 2005-01-08 14:35:17 $ |
- ------------ |
-**/ |
- |
-/* |
- * Copyright (C) 2000-2003 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 "demo.h" |
-#include <kernel/func.h> |
-#include <string.h> |
-#include <stdlib.h> |
- |
-/* useful colors... */ |
-int white; |
-int black; |
-int red; |
-int gray; |
- |
-void app_mutex_init(mutex_t *m); |
- |
-static void version( void ) |
-{ |
- cprintf( "S.Ha.R.K. Jumpball Demo 1.0\n" ); |
- cprintf( "---------------------------\n" ); |
- cprintf( "by Paolo Gai 1999-2001\n" ); |
- cprintf( " <pj@sssup.it>\n" ); |
- cprintf( "---------------------------\n" ); |
-} |
- |
-int myrand(int x) |
-{ |
- return rand()%x; |
-} |
- |
-void reverse(char s[]) |
-{ |
- int c, i, j; |
- |
- for (i = 0, j = strlen(s)-1; i<j; i++, j--) |
- { |
- c = s[i]; |
- s[i] = s[j]; |
- s[j] = c; |
- } |
-} |
- |
-char * itoa(int n, char *s) |
-{ |
- int i, sign; |
- |
- if ((sign = n) < 0) |
- n = -n; |
- |
- i = 0; |
- |
- do |
- { |
- s[i++] = n % 10 + '0'; |
- } while ((n /= 10) > 0); |
- |
- if (sign < 0) |
- s[i++] = '-'; |
- |
- s[i] = 0; |
- |
- reverse(s); |
- |
- return s; |
-} |
- |
- |
-void scenario() |
-{ |
- grx_text("S.Ha.R.K. Jumpball Demo 1.0", 0, 0, rgb16(0,255,0), black ); |
- grx_text(" by Paolo Gai 1999-2001" , 0, 8, rgb16(0,255,0), black ); |
- grx_text(" pj@sssup.it" , 0,16, rgb16(0,255,0), black ); |
- |
- grx_text("Ctrl-C, Ctrr-C, Enter: exit" ,320, 0, gray, black ); |
- grx_text("Alt-C : void statistics" ,320, 8, gray, black ); |
- grx_text("Space : create noise ball",320,16, gray, black ); |
- grx_text("Backspace : kill noise balls" ,320,24, gray, black ); |
- |
- |
- #ifdef JET_ON |
- scenario_jetcontrol(); |
- #endif |
- |
- #ifdef BALL_ON |
- scenario_ball(); |
- #endif |
-} |
- |
-void endfun(KEY_EVT *k) |
-{ |
- exit(0); |
-} |
- |
-void zerofun(KEY_EVT *k) |
-{ |
- int i; |
- for (i=0; i<MAX_PROC; i++) jet_delstat(i); |
-} |
- |
-int main(int argc, char **argv) |
-{ |
- |
- KEY_EVT k; |
- |
- version(); |
- |
- srand(4); |
- |
- k.flag = CNTR_BIT; |
- k.scan = KEY_C; |
- k.ascii = 'c'; |
- k.status = KEY_PRESSED; |
- keyb_hook(k,endfun,FALSE); |
- k.flag = CNTL_BIT; |
- k.scan = KEY_C; |
- k.ascii = 'c'; |
- k.status = KEY_PRESSED; |
- keyb_hook(k,endfun,FALSE); |
- k.flag = ALTL_BIT; |
- k.scan = KEY_C; |
- k.ascii = 'c'; |
- k.status = KEY_PRESSED; |
- keyb_hook(k,zerofun,FALSE); |
- k.flag = 0; |
- k.scan = KEY_ENT; |
- k.ascii = 13; |
- k.status = KEY_PRESSED; |
- keyb_hook(k,endfun,FALSE); |
- |
- /* init the graphic mutex */ |
- app_mutex_init(&mutex); |
- |
- /* useful colors ... */ |
- white = rgb16(255,255,255); |
- black = rgb16(0,0,0); |
- red = rgb16(255,0,0); |
- gray = rgb16(128,128,128); |
- |
- scenario(); |
- |
- #ifdef JET_ON |
- init_jetcontrol(); |
- #endif |
- |
- #ifdef BALL_ON |
- init_ball(); |
- #endif |
- |
- group_activate(1); |
- |
- return 0; |
-} |
- |
- |
Index: rel_1_5_beta1/jumpball/ern.c |
=================================================================== |
--- rel_1_5_beta1/jumpball/ern.c (revision 1579) |
+++ rel_1_5_beta1/jumpball/ern.c (nonexistent) |
@@ -1,218 +0,0 @@ |
-/* |
- * 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 |
- */ |
- |
-/** |
- ------------ |
- CVS : $Id: ern.c,v 1.7 2005-02-25 11:08:58 pj Exp $ |
- |
- File: $File$ |
- Revision: $Revision: 1.7 $ |
- Last update: $Date: 2005-02-25 11:08:58 $ |
- ------------ |
-**/ |
- |
-/* |
- * Copyright (C) 2003 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 "intdrive/intdrive/intdrive.h" |
-#include "edf/edf/edf.h" |
-#include "rr/rr/rr.h" |
-#include "rrsoft/rrsoft/rrsoft.h" |
-#include "dummy/dummy/dummy.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "cabs/cabs/cabs.h" |
- |
-#include "nop/nop/nop.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
-#include <drivers/shark_fb26.h> |
- |
-#define FRAME_BUFFER_DEVICE 0 |
- |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 2000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = -1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q,INTDRIVE_T,INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- RRSOFT_register_level(RRTICK, RR_MAIN_NO, mb, RRSOFT_ONLY_HARD|RRSOFT_ONLY_SOFT); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- CABS_register_module(); |
- |
- NOP_register_module(); |
- |
- return TICK; |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task",shutdown_task_body,&nrt,NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-int device_drivers_init() { |
- |
- int res; |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- |
- PCI26_init(); |
- |
- INPUT26_init(); |
- |
- keyb_def_ctrlC(kparms, NULL); |
- |
- KEYB26_init(&kparms); |
- |
- FB26_init(); |
- |
- res = FB26_open(FRAME_BUFFER_DEVICE); |
- if (res) { |
- cprintf("Error: Cannot open graphical mode\n"); |
- KEYB26_close(); |
- INPUT26_close(); |
- exit(1); |
- } |
- |
- FB26_use_grx(FRAME_BUFFER_DEVICE); |
- |
- FB26_setmode(FRAME_BUFFER_DEVICE,"640x480-16"); |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_close() { |
- |
- FB26_close(FRAME_BUFFER_DEVICE); |
- |
- KEYB26_close(); |
- |
- INPUT26_close(); |
- |
- return 0; |
- |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void call_shutdown_task(void *arg) |
-{ |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- |
- return NULL; |
- |
-} |
- |
-void app_mutex_init(mutex_t *m) |
-{ |
- NOP_mutexattr_t attr; |
- |
- NOP_mutexattr_default(attr); |
- |
- mutex_init(m, &attr); |
-} |
- |
Index: rel_1_5_beta1/newtrace/udp/initfile.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/udp/initfile.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/udp/initfile.c (nonexistent) |
@@ -1,159 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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 "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
-#include "intdrive/intdrive/intdrive.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = 1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- CBS_register_level(CBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- return TICK; |
-} |
- |
-int device_drivers_close() { |
- |
- KEYB26_close(); |
- INPUT26_close(); |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_init() { |
- |
- KEYB_PARMS kparms = BASE_KEYB; |
- |
- LINUXC26_register_module(); |
- PCI26_init(); |
- INPUT26_init(); |
- |
- /*keyb_def_map(kparms, KEYMAP_IT);*/ |
- keyb_def_ctrlC(kparms, NULL); |
- KEYB26_init(&kparms); |
- |
- return 0; |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- return NULL; |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task", shutdown_task_body, &nrt, NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-void call_shutdown_task(void *arg) { |
- |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
Index: rel_1_5_beta1/newtrace/udp/udptrace.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/udp/udptrace.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/udp/udptrace.c (nonexistent) |
@@ -1,86 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@gandalf.sssup.it> |
- * |
- * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
- * |
- * http://www.sssup.it |
- * http://retis.sssup.it |
- * http://shark.sssup.it |
- */ |
- |
-#include <kernel/kern.h> |
-#include <FTrace_chunk.h> |
-#include <FTrace_udp.h> |
-#include <tracer.h> |
- |
-extern unsigned int clk_per_msec; |
- |
-int main(int argc, char **argv) |
-{ |
- |
- long long i; |
- |
- int a,b,c; |
- struct timespec start,end,diff; |
- SYS_FLAGS f; |
- |
- a = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- b = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_JTN); |
- c = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- |
- FTrace_chunk_link(a,b); |
- FTrace_chunk_link(b,c); |
- |
- FTrace_actual_chunk_select(a); |
- |
- kern_gettime(&start); |
- FTrace_enable(); |
- |
- TRACER_LOGEVENT(FTrace_EVT_trace_start,proc_table[exec_shadow].context,clk_per_msec); |
- |
- for (i=0;i<10;i++) |
- if (proc_table[i].context != 0) TRACER_LOGEVENT(FTrace_EVT_id, |
- (unsigned short int)proc_table[i].context,i); |
- |
- for (i=0;i<1000000000;i++); |
- |
- TRACER_LOGEVENT(FTrace_EVT_next_chunk,0,0); |
- |
- f = kern_fsave(); |
- __asm__("cpuid":::"eax","ebx","ecx","edx"); |
- FAST_TRACER_LOGEVENT(FTrace_EVT_ipoint,1000,0); |
- FAST_TRACER_LOGEVENT(FTrace_EVT_ipoint,2000,0); |
- FAST_TRACER_LOGEVENT(FTrace_EVT_ipoint,3000,0); |
- FAST_TRACER_LOGEVENT(FTrace_EVT_ipoint,4000,0); |
- FAST_TRACER_LOGEVENT(FTrace_EVT_ipoint,5000,0); |
- __asm__("cpuid":::"eax","ebx","ecx","edx"); |
- kern_frestore(f); |
- |
- TRACER_LOGEVENT(FTrace_EVT_ipoint,6000,0); |
- |
- for (i=0;i<1000000000;i++); |
- |
- TRACER_LOGEVENT(FTrace_EVT_trace_stop,0,0); |
- |
- FTrace_disable(); |
- kern_gettime(&end); |
- |
- SUBTIMESPEC(&end,&start,&diff); |
- |
- cprintf("Logged Time %d s %d us\n",(int)diff.tv_sec,(int)diff.tv_nsec/1000); |
- |
- FTrace_OSD_init_udp(1, "192.168.1.10", "192.168.1.1"); |
- |
- FTrace_send_chunk(a, 0, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- FTrace_send_chunk(b, 0, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_JTN); |
- |
- return 0; |
- |
-} |
Index: rel_1_5_beta1/newtrace/udp/makefile |
=================================================================== |
--- rel_1_5_beta1/newtrace/udp/makefile (revision 1579) |
+++ rel_1_5_beta1/newtrace/udp/makefile (nonexistent) |
@@ -1,16 +0,0 @@ |
-# |
-# |
-# |
- |
-ifndef BASE |
-BASE=../../.. |
-endif |
-include $(BASE)/config/config.mk |
- |
-PROGS = udptrace |
- |
-include $(BASE)/config/example.mk |
- |
-udptrace: |
- make -f $(SUBMAKE) BASE=$(BASE) APP=udptrace INIT= OTHEROBJS="initfile.o" OTHERINCL= SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __NET__" |
- |
Index: rel_1_5_beta1/newtrace/nosave/initfile.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/nosave/initfile.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/nosave/initfile.c (nonexistent) |
@@ -1,61 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@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 |
- */ |
- |
-#include "kernel/kern.h" |
-#include "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
-#include "cabs/cabs/cabs.h" |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- EDF_register_level(EDF_ENABLE_ALL); |
- CBS_register_level(CBS_ENABLE_ALL, 0); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- CABS_register_module(); |
- |
- return TICK; |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
- |
Index: rel_1_5_beta1/newtrace/nosave/nosave.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/nosave/nosave.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/nosave/nosave.c (nonexistent) |
@@ -1,58 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@gandalf.sssup.it> |
- * |
- * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
- * |
- * http://www.sssup.it |
- * http://retis.sssup.it |
- * http://shark.sssup.it |
- */ |
- |
-#include <kernel/kern.h> |
-#include <tracer.h> |
- |
-int main(int argc, char **argv) |
-{ |
- |
- long long i; |
- |
- int a,b,c; |
- struct timespec start,end,diff; |
- |
- a = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- b = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_JTN); |
- c = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- |
- FTrace_chunk_link(a,b); |
- FTrace_chunk_link(b,c); |
- |
- FTrace_actual_chunk_select(a); |
- |
- kern_gettime(&start); |
- FTrace_enable(); |
- |
- for (i=0;i<1000000000;i++); |
- |
- TRACER_LOGEVENT(FTrace_EVT_next_chunk,0,0); |
- |
- for (i=0;i<1000000000;i++); |
- |
- FTrace_disable(); |
- kern_gettime(&end); |
- |
- SUBTIMESPEC(&end,&start,&diff); |
- |
- cprintf("Logged Time %d s %d us\n",(int)diff.tv_sec,(int)diff.tv_nsec/1000); |
- |
- FTrace_chunk_dump(a); |
- |
- return 0; |
- |
-} |
Index: rel_1_5_beta1/newtrace/nosave/makefile |
=================================================================== |
--- rel_1_5_beta1/newtrace/nosave/makefile (revision 1579) |
+++ rel_1_5_beta1/newtrace/nosave/makefile (nonexistent) |
@@ -1,16 +0,0 @@ |
-# |
-# |
-# |
- |
-ifndef BASE |
-BASE=../../.. |
-endif |
-include $(BASE)/config/config.mk |
- |
-PROGS = nosave |
- |
-include $(BASE)/config/example.mk |
- |
-nosave: |
- make -f $(SUBMAKE) BASE=$(BASE) APP=nosave INIT= OTHEROBJS="initfile.o" OTHERINCL= SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __NET__" |
- |
Index: rel_1_5_beta1/newtrace/readme |
=================================================================== |
--- rel_1_5_beta1/newtrace/readme (revision 1579) |
+++ rel_1_5_beta1/newtrace/readme (nonexistent) |
@@ -1,13 +0,0 @@ |
-This directory contains a set of sub directories containing all the tracer |
-examples and utilities. |
- |
-Here a short description of the contents |
- |
-utils - some small utilities: |
- |
- udpdump - save on a file the logged events sent through network |
- |
-udp - a small application that sends its trace data through the network |
- |
-nosave - a simple tracer implementation without saving logged events |
- |
Index: rel_1_5_beta1/newtrace/makefile |
=================================================================== |
--- rel_1_5_beta1/newtrace/makefile (revision 1579) |
+++ rel_1_5_beta1/newtrace/makefile (nonexistent) |
@@ -1,15 +0,0 @@ |
-.PHONY: all clean |
- |
-all: |
- make -C udp |
- make -C nosave |
- make -C instr |
- make -C utils util_linux |
- |
-clean: |
- make -C udp clean |
- make -C nosave clean |
- make -C instr clean |
- make -C utils clean |
- |
- |
Index: rel_1_5_beta1/newtrace/instr/instr.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/instr/instr.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/instr/instr.c (nonexistent) |
@@ -1,151 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@gandalf.sssup.it> |
- * |
- * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
- * |
- * http://www.sssup.it |
- * http://retis.sssup.it |
- * http://shark.sssup.it |
- */ |
- |
-/* The tracer instrumentation ideas come from the York PWCET analisys tool |
- * |
- * Real-Time System Group |
- * University of York |
- * |
- */ |
- |
-#include <kernel/kern.h> |
-#include <time.h> |
-#include <tracer.h> |
- |
-#define PWCET_Automatic_Ipoint(a) TRACER_LOGEVENT(FTrace_EVT_ipoint,(a),0); |
- |
-extern int instrumented_function(); |
- |
-TASK ext_call(void) |
-{ |
- |
- while(1) { |
- |
- instrumented_function(); |
- |
- task_testcancel(); |
- task_endcycle(); |
- |
- } |
- |
- return 0; |
- |
-} |
- |
-#define TASKMAX 4 |
-#define TASKDELAY 1000000 |
-#define TASKDELAY_DELTA 100000 |
- |
-int exec_code() { |
- |
- int num; |
- struct timespec t; |
- |
- HARD_TASK_MODEL m; |
- PID p; |
- |
- clear(); |
- |
- cprintf("Start"); |
- |
- hard_task_default_model(m); |
- hard_task_def_mit(m,200000 + rand() % 100000); |
- hard_task_def_wcet(m,40000); |
- hard_task_def_group(m,2); |
- |
- num = 0; |
- |
- while(num < TASKMAX) { |
- |
- cprintf("."); |
- |
- p = task_create("Instr",ext_call,&m,NULL); |
- if (p == -1) { |
- sys_shutdown_message("Could not create task <instr> ..."); |
- exit(1); |
- } |
- |
- num++; |
- task_activate(p); |
- |
- usleep(TASKDELAY + rand() % TASKDELAY_DELTA); |
- |
- } |
- |
- do { |
- sys_gettime(&t); |
- } while (t.tv_sec < 12); |
- |
- cprintf("End\n"); |
- |
- return 0; |
- |
-} |
- |
-extern unsigned int clk_per_msec; |
- |
-int main(int argc, char **argv) |
-{ |
- |
- int a,b,c,i; |
- struct timespec t,start,end,diff; |
- |
- srand(sys_gettime(NULL)); |
- |
- a = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- b = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_JTN); |
- c = FTrace_chunk_create(1000000, 1000000, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- |
- FTrace_chunk_link(a,b); |
- FTrace_chunk_link(b,c); |
- |
- FTrace_actual_chunk_select(a); |
- |
- kern_gettime(&start); |
- FTrace_enable(); |
- |
- TRACER_LOGEVENT(FTrace_EVT_trace_start,proc_table[exec_shadow].context,clk_per_msec); |
- |
- for (i=0;i<10;i++) |
- if (proc_table[i].context != 0) TRACER_LOGEVENT(FTrace_EVT_id, |
- (unsigned short int)proc_table[i].context,i); |
- |
- exec_code(); |
- |
- TRACER_LOGEVENT(FTrace_EVT_trace_stop,0,0); |
- |
- FTrace_disable(); |
- kern_gettime(&end); |
- |
- SUBTIMESPEC(&end,&start,&diff); |
- |
- printf_xy(1,21,WHITE,"Logged Time %d s %d us",(int)diff.tv_sec,(int)diff.tv_nsec/1000); |
- |
- group_kill(2); |
- |
- do { |
- sys_gettime(&t); |
- } while (t.tv_sec < 12); |
- |
- FTrace_OSD_init_udp(1, "192.168.0.15", "192.168.0.12"); |
- |
- FTrace_send_chunk(a, 0, FTRACE_CHUNK_FLAG_FREE | FTRACE_CHUNK_FLAG_CYC); |
- |
- return 0; |
- |
-} |
- |
Index: rel_1_5_beta1/newtrace/instr/bezier.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/instr/bezier.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/instr/bezier.c (nonexistent) |
@@ -1,110 +0,0 @@ |
- |
-#include <kernel/kern.h> |
-#include <tracer.h> |
- |
-#define PWCET_Automatic_Ipoint(a) TRACER_LOGEVENT(FTrace_EVT_ipoint,(a),0); |
- |
-/* here are the bezier curves defined |
-format: |
-{startpoint, endpoint, controlpoint1, controlpoint} |
-. |
-. |
-. */ |
-int curveno = 20; |
-int data[20][4][2] = { |
- {{123,321},{ 23,432},{345,120},{123, 98}}, |
- {{567, 31},{ 23, 24},{ 35,421},{123,398}}, |
- {{ 0, 21},{623,532},{145,323},{153, 68}}, |
- {{253,321},{ 23,432},{745,525},{423,198}}, |
- {{123,456},{ 23,482},{ 0,123},{123,128}}, |
- {{322, 21},{223,232},{ 45,224},{123,98}}, |
- {{423, 32},{123,332},{144,329},{123,98}}, |
- {{276, 35},{ 23,492},{476,423},{123,98}}, |
- {{783,121},{723,139},{ 78,528},{123,98}}, |
- {{723,221},{623, 98},{734,683},{123,98}}, |
- {{ 60,421},{523,132},{364,753},{123,98}}, |
- {{100,521},{423,432},{633,623},{123,98}}, |
- {{ 23,371},{323,599},{343,533},{123,98}}, |
- {{123,123},{123, 0},{343,403},{123,98}}, |
- {{253,321},{490, 32},{347,393},{123,98}}, |
- {{ 68,321},{260,272},{674,283},{123,98}}, |
- {{500,321},{245,373},{ 98,173},{123,98}}, |
- {{423,321},{198,532},{306, 63},{123,98}}, |
- {{197,321},{203,432},{307,443},{123,98}}, |
- {{143,321},{293,132},{334,393},{123,98}} |
-}; |
-#define STEPWIDTH 0.01 /* draws 1/STEPWIDTH +1 points between SP and EP */ |
-#define XSIZE 800 |
-#define YSIZE 600 |
- |
-char screen[YSIZE][XSIZE]; |
-int xco[4],yco[4]; |
- |
-int init() |
-{ |
- int y,x; |
- |
- /*initialize screen*/ |
- for (x = 0;x < XSIZE;x++) { |
- for (y = 0;y < YSIZE;y++) { |
- screen[y][x] = 255; /*white*/ |
- } |
- } |
- |
- return 0; |
- |
-} |
- |
-void rand_init() |
-{ |
- int i,j,x,y; |
- for (i=0;i<20;i++) |
- for (j=0;j<4;j++) { |
- x=rand()%800; |
- y=rand()%600; |
- data[i][j][0]=x; |
- data[i][j][1]=y; |
- } |
-} |
- |
-int bezier() |
-{ |
- |
- int i,y,x; |
- float k; |
- |
- init(); |
- |
- for (i = 0;i < curveno;i++) { |
- xco[3] = data[i][0][0]; |
- yco[3] = data[i][0][1]; |
- xco[2] = 3*(data[i][2][0] - data[i][0][0]); |
- yco[2] = 3*(data[i][2][1] - data[i][0][1]); |
- xco[1] = 3*(data[i][3][0] - data[i][2][0]) - xco[2]; |
- yco[1] = 3*(data[i][3][1] - data[i][2][1]) - yco[2]; |
- xco[0] = data[i][1][0] - data[i][0][0] - xco[2]- xco[1]; |
- yco[0] = data[i][1][1] - data[i][0][1] - yco[2]- yco[1]; |
- |
- /*scan curve for t = 0 to t = 1 with STEPWIDTH*/ |
- for (k = 0;k <=1;k+=STEPWIDTH) { /* PAN_FIXED_LOOP PAN_VARPATH */ |
- x = (int)(((float)xco[0]*k*k*k)+((float)xco[1]*k*k)+((float)xco[2]*k)+(float)xco[3]); |
- y = (int)(((float)yco[0]*k*k*k)+((float)yco[1]*k*k)+((float)yco[2]*k)+(float)yco[3]); |
- if ((x < XSIZE)&&(x > 0)&&(y < YSIZE)&&(y > 0)) { |
- /*write dot to screen*/ |
- screen[y][x] = 0; /*black*/ |
- } |
- } |
- } |
- |
- return 0; |
-} |
- |
-int instrumented_function() { |
- |
- rand_init(); |
- |
- bezier(); |
- |
- return 0; |
-} |
- |
Index: rel_1_5_beta1/newtrace/instr/initfile.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/instr/initfile.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/instr/initfile.c (nonexistent) |
@@ -1,150 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: Giorgio Buttazzo <giorgio@sssup.it> |
- * |
- * Authors : Mauro Marinoni <mauro.marinoni@unipv.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 |
- */ |
- |
-/* |
- * 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 "edf/edf/edf.h" |
-#include "cbs/cbs/cbs.h" |
-#include "rr/rr/rr.h" |
-#include "dummy/dummy/dummy.h" |
-#include "intdrive/intdrive/intdrive.h" |
- |
-#include "sem/sem/sem.h" |
-#include "hartport/hartport/hartport.h" |
- |
-#include <drivers/shark_linuxc26.h> |
-#include <drivers/shark_pci26.h> |
-#include <drivers/shark_input26.h> |
-#include <drivers/shark_keyb26.h> |
- |
-/*+ sysyem tick in us +*/ |
-#define TICK 0 |
- |
-/*+ RR tick in us +*/ |
-#define RRTICK 10000 |
- |
-/*+ Interrupt Server +*/ |
-#define INTDRIVE_Q 1000 |
-#define INTDRIVE_T 10000 |
-#define INTDRIVE_FLAG 0 |
- |
-void call_shutdown_task(void *arg); |
-int device_drivers_init(); |
-int device_drivers_close(); |
-void set_shutdown_task(); |
-TASK shutdown_task_body(void *arg); |
- |
-PID shutdown_task_PID = 1; |
- |
-TIME __kernel_register_levels__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- INTDRIVE_register_level(INTDRIVE_Q, INTDRIVE_T, INTDRIVE_FLAG); |
- EDF_register_level(EDF_ENABLE_ALL); |
- CBS_register_level(CBS_ENABLE_ALL, 1); |
- RR_register_level(RRTICK, RR_MAIN_YES, mb); |
- dummy_register_level(); |
- |
- SEM_register_module(); |
- |
- return TICK; |
-} |
- |
-int device_drivers_close() { |
- |
- return 0; |
- |
-} |
- |
-int device_drivers_init() { |
- |
- LINUXC26_register_module(); |
- PCI26_init(); |
- |
- return 0; |
-} |
- |
-TASK shutdown_task_body(void *arg) { |
- |
- device_drivers_close(); |
- sys_shutdown_message("-- S.Ha.R.K. Closed --\n"); |
- |
- return NULL; |
-} |
- |
-#define SHUTDOWN_TIMEOUT_SEC 3 |
- |
-void set_shutdown_task() { |
- |
- NRT_TASK_MODEL nrt; |
- |
- nrt_task_default_model(nrt); |
- nrt_task_def_system(nrt); |
- |
- shutdown_task_PID = task_create("Shutdown Task", shutdown_task_body, &nrt, NULL); |
- if (shutdown_task_PID == NIL) { |
- sys_shutdown_message("Error: Cannot create shutdown task\n"); |
- exit(1); |
- } |
- |
-} |
- |
-void call_shutdown_task(void *arg) { |
- |
- struct timespec t; |
- |
- sys_gettime(&t); |
- t.tv_sec += SHUTDOWN_TIMEOUT_SEC; |
- |
- /* Emergency timeout to exit from RUNLEVEL_SHUTDOWN */ |
- kern_event_post(&t,(void *)((void *)sys_abort_shutdown),(void *)0); |
- |
- task_activate(shutdown_task_PID); |
-} |
- |
-TASK __init__(void *arg) |
-{ |
- struct multiboot_info *mb = (struct multiboot_info *)arg; |
- |
- HARTPORT_init(); |
- |
- set_shutdown_task(); |
- |
- device_drivers_init(); |
- |
- sys_atrunlevel(call_shutdown_task, NULL, RUNLEVEL_SHUTDOWN); |
- |
- __call_main__(mb); |
- |
- return (void *)0; |
-} |
Index: rel_1_5_beta1/newtrace/instr/bezier_i.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/instr/bezier_i.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/instr/bezier_i.c (nonexistent) |
@@ -1,120 +0,0 @@ |
- |
-#include <kernel/kern.h> |
-#include <tracer.h> |
- |
-#define PWCET_Automatic_Ipoint(a) TRACER_LOGEVENT(FTrace_EVT_ipoint,(a),0); |
- |
-/* here are the bezier curves defined |
-format: |
-{startpoint, endpoint, controlpoint1, controlpoint} |
-. |
-. |
-. */ |
-int curveno = 20; |
-int data[20][4][2] = { |
- {{123,321},{ 23,432},{345,120},{123, 98}}, |
- {{567, 31},{ 23, 24},{ 35,421},{123,398}}, |
- {{ 0, 21},{623,532},{145,323},{153, 68}}, |
- {{253,321},{ 23,432},{745,525},{423,198}}, |
- {{123,456},{ 23,482},{ 0,123},{123,128}}, |
- {{322, 21},{223,232},{ 45,224},{123,98}}, |
- {{423, 32},{123,332},{144,329},{123,98}}, |
- {{276, 35},{ 23,492},{476,423},{123,98}}, |
- {{783,121},{723,139},{ 78,528},{123,98}}, |
- {{723,221},{623, 98},{734,683},{123,98}}, |
- {{ 60,421},{523,132},{364,753},{123,98}}, |
- {{100,521},{423,432},{633,623},{123,98}}, |
- {{ 23,371},{323,599},{343,533},{123,98}}, |
- {{123,123},{123, 0},{343,403},{123,98}}, |
- {{253,321},{490, 32},{347,393},{123,98}}, |
- {{ 68,321},{260,272},{674,283},{123,98}}, |
- {{500,321},{245,373},{ 98,173},{123,98}}, |
- {{423,321},{198,532},{306, 63},{123,98}}, |
- {{197,321},{203,432},{307,443},{123,98}}, |
- {{143,321},{293,132},{334,393},{123,98}} |
-}; |
-#define STEPWIDTH 0.01 /* draws 1/STEPWIDTH +1 points between SP and EP */ |
-#define XSIZE 800 |
-#define YSIZE 600 |
- |
-char screen[YSIZE][XSIZE]; |
-int xco[4],yco[4]; |
- |
-void init() |
-{ /*FB1*/PWCET_Automatic_Ipoint( 3157); /*FB2*/{ |
- int y,x; |
- |
- |
- { /*forx1*/for (x = 0; x < XSIZE;x++) { /*forx2*/PWCET_Automatic_Ipoint( 3158); /*forx3*/{ |
- { /*forx1*/for (y = 0;y < YSIZE;y++) { /*forx2*/PWCET_Automatic_Ipoint( 3159); /*forx3*/{ |
- screen[y][x] = 255; |
- } } /*forx4*/PWCET_Automatic_Ipoint( 3160); /*forx5*/ } /*forx6*/ |
- } } /*forx4*/PWCET_Automatic_Ipoint( 3161); /*forx5*/ } /*forx6*/ |
- |
-}PWCET_Automatic_Ipoint( 3162); /*FB3*/} /*FB4*/ |
- |
-void rand_init() |
-{ /*FB1*/PWCET_Automatic_Ipoint( 33519); /*FB2*/{ |
- int i,j,x,y; |
- |
- |
- |
- { /*forx1*/for (i=0;i<20;i++) |
- { /*forx1*/ { /*forx2*/PWCET_Automatic_Ipoint( 33520); /*forx3*/for (j=0;j<4;j++) { /*forx2*/PWCET_Automatic_Ipoint( 33521); /*forx3*/{ |
- x=rand()%XSIZE; |
- y=rand()%YSIZE; |
- data[i][j][0]=x; |
- data[i][j][1]=y; |
- } } /*forx4*/PWCET_Automatic_Ipoint( 33522); /*forx5*/ } /*forx6*/ } /*forx4*/PWCET_Automatic_Ipoint( 33523); /*forx5*/ } /*forx6*/ |
- |
- |
-}PWCET_Automatic_Ipoint( 33524); /*FB3*/} /*FB4*/ |
- |
-void pepe(){ /*FB1*/PWCET_Automatic_Ipoint( 64662); /*FB2*/{ |
- int a; |
- |
- a=a+2; |
- }PWCET_Automatic_Ipoint( 64663); /*FB3*/} /*FB4*/ |
- |
-int bezier() |
-{ /*FB1*/PWCET_Automatic_Ipoint( 23955); /*FB2*/{ |
- int i,y,x; |
- float k; |
- init(); |
- |
- { /*forx1*/for (i = 0;i < curveno;i++) { /*forx2*/PWCET_Automatic_Ipoint( 23956); /*forx3*/{ |
- xco[3] = data[i][0][0]; |
- yco[3] = data[i][0][1]; |
- xco[2] = 3*(data[i][2][0] - data[i][0][0]); |
- yco[2] = 3*(data[i][2][1] - data[i][0][1]); |
- xco[1] = 3*(data[i][3][0] - data[i][2][0]) - xco[2]; |
- yco[1] = 3*(data[i][3][1] - data[i][2][1]) - yco[2]; |
- xco[0] = data[i][1][0] - data[i][0][0] - xco[2]- xco[1]; |
- yco[0] = data[i][1][1] - data[i][0][1] - yco[2]- yco[1]; |
- |
- |
- { /*forx1*/for (k = 0;k <=1;k+=0.01) { /*forx2*/PWCET_Automatic_Ipoint( 23957); /*forx3*/{ |
- x = (int)(((float)xco[0]*k*k*k)+((float)xco[1]*k*k)+((float)xco[2]*k)+(float)xco[3]); |
- y = (int)(((float)yco[0]*k*k*k)+((float)yco[1]*k*k)+((float)yco[2]*k)+(float)yco[3]); |
- if ((x < XSIZE)&&(x > 0)&&(y < YSIZE)&&(y > 0)) { /*if1*/ PWCET_Automatic_Ipoint( 23958); /*if2*/ { |
- |
- screen[y][x] = 0; |
- } } /*if3*/ PWCET_Automatic_Ipoint( 23959); /*ifxxx2*/ |
- } } /*forx4*/PWCET_Automatic_Ipoint( 23960); /*forx5*/ } /*forx6*/ |
- } } /*forx4*/PWCET_Automatic_Ipoint( 23961); /*forx5*/ } /*forx6*/ |
- if (1==0) { /*if1*/ PWCET_Automatic_Ipoint( 23962); /*if2*/ { |
- k++; |
- pepe(); |
- } } /*if3*/ PWCET_Automatic_Ipoint( 23963); /*ifxxx2*/ |
- |
- |
- { /*returnE1*/PWCET_Automatic_Ipoint( 23964); /*returnE2*/return 0; } /*returnE3*/ |
-}PWCET_Automatic_Ipoint( 23965); /*FB3*/} /*FB4*/ |
- |
- |
-int instrumented_function(){ /*FB1*/PWCET_Automatic_Ipoint( 18549); /*FB2*/{ |
- |
- rand_init(); |
- bezier(); |
- { /*returnE1*/PWCET_Automatic_Ipoint( 18550); /*returnE2*/return 0; } /*returnE3*/ |
-}PWCET_Automatic_Ipoint( 18551); /*FB3*/} /*FB4*/ |
Index: rel_1_5_beta1/newtrace/instr/makefile |
=================================================================== |
--- rel_1_5_beta1/newtrace/instr/makefile (revision 1579) |
+++ rel_1_5_beta1/newtrace/instr/makefile (nonexistent) |
@@ -1,17 +0,0 @@ |
-# |
-# |
-# |
- |
-ifndef BASE |
-BASE=../../.. |
-endif |
-include $(BASE)/config/config.mk |
- |
-PROGS = instr |
- |
-include $(BASE)/config/example.mk |
- |
-instr: |
- make -f $(SUBMAKE) BASE=$(BASE) APP=instr INIT= OTHEROBJS="initfile.o bezier.o" OTHERINCL= SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __NET__" |
- #make -f $(SUBMAKE) BASE=$(BASE) APP=instr INIT= OTHEROBJS="initfile.o bezier_i.o" OTHERINCL= SHARKOPT="__LINUXC26__ __PCI__ __INPUT__ __NET__ |
- |
Index: rel_1_5_beta1/newtrace/utils/test.pwc |
=================================================================== |
--- rel_1_5_beta1/newtrace/utils/test.pwc (revision 1579) |
+++ rel_1_5_beta1/newtrace/utils/test.pwc (nonexistent) |
@@ -1,10629 +0,0 @@ |
-0 24305936302 256 367483 |
-9 24305936577 256 0 |
-9 24305936918 264 1 |
-9 24305937215 272 2 |
-9 24305937550 280 3 |
-9 24305937856 288 4 |
-5 24306061849 296 5 |
-6 24306065670 296 |
-4 24306079938 296 |
-8 24306119945 296 |
-4 24306122948 256 |
-7 24306144840 256 |
-4 24306149927 264 |
-2 24309691444 0 |
-6 24309695081 280 |
-3 24309700697 280 |
-8 24309710296 280 |
-4 24309711468 264 |
-2 24309738764 0 |
-3 24309743114 296 |
-8 24309767392 296 |
-4 24309768135 264 |
-2 24313371544 0 |
-3 24313372582 264 |
-2 24313413011 0 |
-3 24313416059 296 |
-8 24313438977 296 |
-4 24313439696 264 |
-2 24317087616 0 |
-3 24317090559 296 |
-8 24317113289 296 |
-4 24317114015 264 |
-2 24320762661 0 |
-3 24320765576 296 |
-8 24320788250 296 |
-4 24320788953 264 |
-2 24324437255 0 |
-3 24324440220 296 |
-8 24324462781 296 |
-4 24324463489 264 |
-2 24328064791 0 |
-6 24328065547 280 |
-3 24328067603 280 |
-8 24328070958 280 |
-4 24328071648 264 |
-2 24328112075 0 |
-3 24328115188 296 |
-8 24328138099 296 |
-4 24328138817 264 |
-2 24331741191 0 |
-3 24331741861 264 |
-2 24331787070 0 |
-3 24331790129 296 |
-8 24331812934 296 |
-4 24331813645 264 |
-2 24335461939 0 |
-3 24335464894 296 |
-8 24335487561 296 |
-4 24335488281 264 |
-2 24339136566 0 |
-3 24339139466 296 |
-8 24339162171 296 |
-4 24339162879 264 |
-2 24342811540 0 |
-3 24342814477 296 |
-8 24342837012 296 |
-4 24342837717 264 |
-2 24346438652 0 |
-6 24346439353 280 |
-3 24346441425 280 |
-8 24346444700 280 |
-4 24346445390 264 |
-2 24346486266 0 |
-3 24346489483 296 |
-8 24346512440 296 |
-4 24346513164 264 |
-2 24350114794 0 |
-3 24350115469 264 |
-2 24350161047 0 |
-3 24350164012 296 |
-8 24350186748 296 |
-4 24350187469 264 |
-2 24353836114 0 |
-3 24353839034 296 |
-8 24353861713 296 |
-4 24353862423 264 |
-2 24357510719 0 |
-3 24357513613 296 |
-8 24357536269 296 |
-4 24357536976 264 |
-2 24361185637 0 |
-3 24361188558 296 |
-8 24361211120 296 |
-4 24361211830 264 |
-2 24364813129 0 |
-6 24364813834 280 |
-3 24364815864 280 |
-8 24364819113 280 |
-4 24364819815 264 |
-2 24364860336 0 |
-3 24364863427 296 |
-8 24364886247 296 |
-4 24364886965 264 |
-2 24368489353 0 |
-3 24368490028 264 |
-2 24368535238 0 |
-3 24368538202 296 |
-8 24368561017 296 |
-4 24368561743 264 |
-2 24372210024 0 |
-3 24372213082 296 |
-8 24372235784 296 |
-4 24372236484 264 |
-2 24375885152 0 |
-3 24375888117 296 |
-8 24375910763 296 |
-4 24375911471 264 |
-2 24379559768 0 |
-3 24379562694 296 |
-8 24379585210 296 |
-4 24379585915 264 |
-2 24383187188 0 |
-6 24383187889 280 |
-3 24383189939 280 |
-8 24383193193 280 |
-4 24383193883 264 |
-2 24383234780 0 |
-3 24383237838 296 |
-8 24383260670 296 |
-4 24383261394 264 |
-2 24386863396 0 |
-3 24386864071 264 |
-2 24386909649 0 |
-3 24386912603 296 |
-8 24386935314 296 |
-4 24386936035 264 |
-2 24390584303 0 |
-3 24390587225 296 |
-8 24390609886 296 |
-4 24390610592 264 |
-2 24394259227 0 |
-3 24394262120 296 |
-8 24394284755 296 |
-4 24394285453 264 |
-2 24397934096 0 |
-3 24397937017 296 |
-8 24397959532 296 |
-4 24397960238 264 |
-2 24401561143 0 |
-6 24401561855 280 |
-3 24401563893 280 |
-8 24401567493 280 |
-4 24401568183 264 |
-2 24401608734 0 |
-3 24401611788 296 |
-8 24401634568 296 |
-4 24401635286 264 |
-2 24405237295 0 |
-3 24405237970 264 |
-2 24405283548 0 |
-3 24405286513 296 |
-8 24405309282 296 |
-4 24405309993 264 |
-2 24408958637 0 |
-3 24408961581 296 |
-8 24408984268 296 |
-4 24408984968 264 |
-2 24412633242 0 |
-3 24412636147 296 |
-8 24412658850 296 |
-4 24412659558 264 |
-2 24416308188 0 |
-3 24416311110 296 |
-8 24416333675 296 |
-4 24416334380 264 |
-2 24419935284 0 |
-6 24419935989 280 |
-3 24419938045 280 |
-8 24419941576 280 |
-4 24419942266 264 |
-2 24419982887 0 |
-3 24419985934 296 |
-8 24420008825 296 |
-4 24420009549 264 |
-2 24423611536 0 |
-3 24423612211 264 |
-2 24423657789 0 |
-3 24423660743 296 |
-8 24423683484 296 |
-4 24423684205 264 |
-2 24427332476 0 |
-3 24427335398 296 |
-8 24427358095 296 |
-4 24427358805 264 |
-2 24431007433 0 |
-3 24431010326 296 |
-8 24431033015 296 |
-4 24431033728 264 |
-2 24434682352 0 |
-3 24434685273 296 |
-8 24434707837 296 |
-4 24434708543 264 |
-2 24438309448 0 |
-6 24438310149 280 |
-3 24438312177 280 |
-8 24438315424 280 |
-4 24438316114 264 |
-2 24438357017 0 |
-3 24438360042 296 |
-8 24438383016 296 |
-4 24438383734 264 |
-2 24441985743 0 |
-3 24441986418 264 |
-2 24442031996 0 |
-3 24442034961 296 |
-8 24442057755 296 |
-4 24442058466 264 |
-2 24445706744 0 |
-3 24445709688 296 |
-8 24445732381 296 |
-4 24445733086 264 |
-2 24449381718 0 |
-3 24449384628 296 |
-8 24449407353 296 |
-4 24449408061 264 |
-2 24453056328 0 |
-3 24453059250 296 |
-8 24453081815 296 |
-4 24453082520 264 |
-2 24456683793 0 |
-6 24456684494 280 |
-3 24456686554 280 |
-8 24456689809 280 |
-4 24456690499 264 |
-2 24456731395 0 |
-3 24456734442 296 |
-8 24456757317 296 |
-4 24456758041 264 |
-2 24460360028 0 |
-3 24460360703 264 |
-2 24460406281 0 |
-3 24460409235 296 |
-8 24460431976 296 |
-4 24460432697 264 |
-2 24464080968 0 |
-3 24464083890 296 |
-8 24464106598 296 |
-4 24464107308 264 |
-2 24467755573 0 |
-3 24467758466 296 |
-8 24467781155 296 |
-4 24467781862 264 |
-2 24471430492 0 |
-3 24471433413 296 |
-8 24471455977 296 |
-4 24471456683 264 |
-2 24475057956 0 |
-6 24475058657 280 |
-3 24475060685 280 |
-8 24475063927 280 |
-4 24475064617 264 |
-2 24475105526 0 |
-3 24475108585 296 |
-8 24475131453 296 |
-4 24475132171 264 |
-2 24478734189 0 |
-3 24478734866 264 |
-2 24478780076 0 |
-3 24478783041 296 |
-8 24478805853 296 |
-4 24478806564 264 |
-2 24482455203 0 |
-3 24482458147 296 |
-8 24482480834 296 |
-4 24482481534 264 |
-2 24486129808 0 |
-3 24486132708 296 |
-8 24486155411 296 |
-4 24486156119 264 |
-2 24489804749 0 |
-3 24489807675 296 |
-8 24489830241 296 |
-4 24489830946 264 |
-2 24493432219 0 |
-6 24493432924 280 |
-3 24493434996 280 |
-8 24493438245 280 |
-4 24493438935 264 |
-2 24493479469 0 |
-3 24493482523 296 |
-8 24493505424 296 |
-4 24493506148 264 |
-2 24497108503 0 |
-3 24497109178 264 |
-2 24497154388 0 |
-3 24497157348 296 |
-8 24497180086 296 |
-4 24497180807 264 |
-2 24500829075 0 |
-3 24500831997 296 |
-8 24500854705 296 |
-4 24500855415 264 |
-2 24504504043 0 |
-3 24504506936 296 |
-8 24504529625 296 |
-4 24504530332 264 |
-2 24508178962 0 |
-3 24508181883 296 |
-8 24508204447 296 |
-4 24508205153 264 |
-2 24511806058 0 |
-6 24511806759 280 |
-3 24511808787 280 |
-8 24511812034 280 |
-4 24511812724 264 |
-2 24511853627 0 |
-3 24511856648 296 |
-8 24511879494 296 |
-4 24511880212 264 |
-2 24515482221 0 |
-3 24515482902 264 |
-2 24515528480 0 |
-3 24515531445 296 |
-8 24515554239 296 |
-4 24515554950 264 |
-2 24519203228 0 |
-3 24519206176 296 |
-8 24519228870 296 |
-4 24519229575 264 |
-2 24522878207 0 |
-3 24522881111 296 |
-8 24522903837 296 |
-4 24522904545 264 |
-2 24526553175 0 |
-3 24526556101 296 |
-8 24526578667 296 |
-4 24526579372 264 |
-2 24530180276 0 |
-6 24530180977 280 |
-3 24530183038 280 |
-8 24530186286 280 |
-4 24530186976 264 |
-2 24530227879 0 |
-3 24530230926 296 |
-8 24530253788 296 |
-4 24530254512 264 |
-2 24533856500 0 |
-3 24533857175 264 |
-2 24533902753 0 |
-3 24533905707 296 |
-8 24533928446 296 |
-4 24533929167 264 |
-2 24537577435 0 |
-3 24537580357 296 |
-8 24537603065 296 |
-4 24537603775 264 |
-2 24541252403 0 |
-3 24541255296 296 |
-8 24541277985 296 |
-4 24541278692 264 |
-2 24544927322 0 |
-3 24544930243 296 |
-8 24544952807 296 |
-4 24544953513 264 |
-2 24548554418 0 |
-6 24548555119 280 |
-3 24548557169 280 |
-8 24548560395 280 |
-4 24548561079 264 |
-2 24548602009 0 |
-3 24548605068 296 |
-8 24548627914 296 |
-4 24548628632 264 |
-2 24552230642 0 |
-3 24552231317 264 |
-2 24552276895 0 |
-3 24552279860 296 |
-8 24552302672 296 |
-4 24552303383 264 |
-2 24555951659 0 |
-3 24555954603 296 |
-8 24555977290 296 |
-4 24555977990 264 |
-2 24559626627 0 |
-3 24559629527 296 |
-8 24559652235 296 |
-4 24559652943 264 |
-2 24563301210 0 |
-3 24563304132 296 |
-8 24563326697 296 |
-4 24563327402 264 |
-2 24566928675 0 |
-6 24566929382 280 |
-3 24566931436 280 |
-8 24566934889 280 |
-4 24566935579 264 |
-2 24566976277 0 |
-3 24566979331 296 |
-8 24567002247 296 |
-4 24567002971 264 |
-2 24570604959 0 |
-3 24570605634 264 |
-2 24570650844 0 |
-3 24570653798 296 |
-8 24570676539 296 |
-4 24570677264 264 |
-2 24574325894 0 |
-3 24574328816 296 |
-8 24574351508 296 |
-4 24574352218 264 |
-2 24578000483 0 |
-3 24578003376 296 |
-8 24578026064 296 |
-4 24578026771 264 |
-2 24581675401 0 |
-3 24581678322 296 |
-8 24581700886 296 |
-4 24581701596 264 |
-2 24585302866 0 |
-6 24585303567 280 |
-3 24585305595 280 |
-8 24585308842 280 |
-4 24585309532 264 |
-2 24585350435 0 |
-3 24585353456 296 |
-8 24585376302 296 |
-4 24585377020 264 |
-2 24588979029 0 |
-3 24588979704 264 |
-2 24589025282 0 |
-3 24589028247 296 |
-8 24589051041 296 |
-4 24589051752 264 |
-2 24592700030 0 |
-3 24592702974 296 |
-8 24592725667 296 |
-4 24592726372 264 |
-2 24596374641 0 |
-3 24596377545 296 |
-8 24596400271 296 |
-4 24596400979 264 |
-2 24600049609 0 |
-3 24600052535 296 |
-8 24600075101 296 |
-4 24600075806 264 |
-2 24603677079 0 |
-6 24603677780 280 |
-3 24603679829 280 |
-8 24603683077 280 |
-4 24603683767 264 |
-2 24603724302 0 |
-3 24603727360 296 |
-8 24603750222 296 |
-4 24603750946 264 |
-2 24607353303 0 |
-3 24607353978 264 |
-2 24607399187 0 |
-3 24607402141 296 |
-8 24607424880 296 |
-4 24607425601 264 |
-2 24611074232 0 |
-3 24611077154 296 |
-8 24611099862 296 |
-4 24611100572 264 |
-2 24614748837 0 |
-3 24614751730 296 |
-8 24614774419 296 |
-4 24614775122 264 |
-2 24618423756 0 |
-3 24618426677 296 |
-8 24618449241 296 |
-4 24618449947 264 |
-2 24622051220 0 |
-6 24622051925 280 |
-3 24622053977 280 |
-8 24622057218 280 |
-4 24622057908 264 |
-2 24622098449 0 |
-3 24622101508 296 |
-8 24622124365 296 |
-4 24622125083 264 |
-2 24625727461 0 |
-3 24625728136 264 |
-2 24625773345 0 |
-3 24625776310 296 |
-8 24625799128 296 |
-4 24625799839 264 |
-2 24629448115 0 |
-3 24629451059 296 |
-8 24629473752 296 |
-4 24629474452 264 |
-2 24633123089 0 |
-3 24633125993 296 |
-8 24633148697 296 |
-4 24633149405 264 |
-2 24636798035 0 |
-3 24636800961 296 |
-8 24636823527 296 |
-4 24636824232 264 |
-2 24640425136 0 |
-6 24640425837 280 |
-3 24640427886 280 |
-8 24640431146 280 |
-4 24640431836 264 |
-2 24640472728 0 |
-3 24640475786 296 |
-8 24640498681 296 |
-4 24640499405 264 |
-2 24644101393 0 |
-3 24644102068 264 |
-2 24644147646 0 |
-3 24644150600 296 |
-8 24644173339 296 |
-4 24644174060 264 |
-2 24647822328 0 |
-3 24647825250 296 |
-8 24647847942 296 |
-4 24647848653 264 |
-2 24651497280 0 |
-3 24651500173 296 |
-8 24651522861 296 |
-4 24651523568 264 |
-2 24655172198 0 |
-3 24655175119 296 |
-8 24655197690 296 |
-4 24655198401 264 |
-2 24658799300 0 |
-6 24658800001 280 |
-3 24658802039 280 |
-8 24658805287 280 |
-4 24658805977 264 |
-2 24658846880 0 |
-3 24658849901 296 |
-8 24658872747 296 |
-4 24658873465 264 |
-2 24662475474 0 |
-3 24662476149 264 |
-2 24662521727 0 |
-3 24662524692 296 |
-8 24662547486 296 |
-4 24662548197 264 |
-2 24666196475 0 |
-3 24666199419 296 |
-8 24666222112 296 |
-4 24666222817 264 |
-2 24669871449 0 |
-3 24669874353 296 |
-8 24669897079 296 |
-4 24669897787 264 |
-2 24673546417 0 |
-3 24673549343 296 |
-8 24673571909 296 |
-4 24673572614 264 |
-2 24677173518 0 |
-6 24677174219 280 |
-3 24677176268 280 |
-8 24677179517 280 |
-4 24677180207 264 |
-2 24677221110 0 |
-3 24677224168 296 |
-8 24677247030 296 |
-4 24677247754 264 |
-2 24680849742 0 |
-3 24680850417 264 |
-2 24680895995 0 |
-3 24680898949 296 |
-8 24680921688 296 |
-4 24680922409 264 |
-2 24684570677 0 |
-3 24684573599 296 |
-8 24684596307 296 |
-4 24684597017 264 |
-2 24688245645 0 |
-3 24688248538 296 |
-8 24688271227 296 |
-4 24688271934 264 |
-2 24691920564 0 |
-3 24691923485 296 |
-8 24691946054 296 |
-4 24691946760 264 |
-2 24695547665 0 |
-6 24695548370 280 |
-3 24695550400 280 |
-8 24695553641 280 |
-4 24695554331 264 |
-2 24695595240 0 |
-3 24695598299 296 |
-8 24695621151 296 |
-4 24695621869 264 |
-2 24699223878 0 |
-3 24699224553 264 |
-2 24699270131 0 |
-3 24699273096 296 |
-8 24699295920 296 |
-4 24699296631 264 |
-2 24702944912 0 |
-3 24702947856 296 |
-8 24702970543 296 |
-4 24702971243 264 |
-2 24706619880 0 |
-3 24706622780 296 |
-8 24706645483 296 |
-4 24706646191 264 |
-2 24710294458 0 |
-3 24710297379 296 |
-8 24710319944 296 |
-4 24710320649 264 |
-2 24713921922 0 |
-6 24713922623 280 |
-3 24713924672 280 |
-8 24713928214 280 |
-4 24713928904 264 |
-2 24713969514 0 |
-3 24713972572 296 |
-8 24713995474 296 |
-4 24713996198 264 |
-2 24717598185 0 |
-3 24717598860 264 |
-2 24717644069 0 |
-3 24717647023 296 |
-8 24717669762 296 |
-4 24717670483 264 |
-2 24721319114 0 |
-3 24721322036 296 |
-8 24721344728 296 |
-4 24721345438 264 |
-2 24724993703 0 |
-3 24724996596 296 |
-8 24725019284 296 |
-4 24725019991 264 |
-2 24728668621 0 |
-3 24728671542 296 |
-8 24728694106 296 |
-4 24728694812 264 |
-2 24732296086 0 |
-6 24732296787 280 |
-3 24732298825 280 |
-8 24732302084 280 |
-4 24732302774 264 |
-2 24732343666 0 |
-3 24732346731 296 |
-8 24732369588 296 |
-4 24732370306 264 |
-2 24735972315 0 |
-3 24735972990 264 |
-2 24736018200 0 |
-3 24736021164 296 |
-8 24736043995 296 |
-4 24736044721 264 |
-2 24739693349 0 |
-3 24739696392 296 |
-8 24739719096 296 |
-4 24739719796 264 |
-2 24743368070 0 |
-3 24743370996 296 |
-8 24743393674 296 |
-4 24743394382 264 |
-2 24747043010 0 |
-3 24747045932 296 |
-8 24747068430 296 |
-4 24747069135 264 |
-2 24750670040 0 |
-6 24750670745 280 |
-3 24750672801 280 |
-8 24750676050 280 |
-4 24750676753 264 |
-2 24750717643 0 |
-3 24750720701 296 |
-8 24750743490 296 |
-4 24750744214 264 |
-2 24754346215 0 |
-3 24754346890 264 |
-2 24754392468 0 |
-3 24754395422 296 |
-8 24754418133 296 |
-4 24754418854 264 |
-2 24758067485 0 |
-3 24758070407 296 |
-8 24758093071 296 |
-4 24758093781 264 |
-2 24761742046 0 |
-3 24761744939 296 |
-8 24761767578 296 |
-4 24761768285 264 |
-2 24765416915 0 |
-3 24765419836 296 |
-8 24765442341 296 |
-4 24765443052 264 |
-2 24769044319 0 |
-6 24769045020 280 |
-3 24769047048 280 |
-8 24769050306 280 |
-4 24769050996 264 |
-2 24769091889 0 |
-3 24769094948 296 |
-8 24769117750 296 |
-4 24769118468 264 |
-2 24772720477 0 |
-3 24772721152 264 |
-2 24772766730 0 |
-3 24772769695 296 |
-8 24772792464 296 |
-4 24772793175 264 |
-2 24776441456 0 |
-3 24776444400 296 |
-8 24776467087 296 |
-4 24776467787 264 |
-2 24780116424 0 |
-3 24780119323 296 |
-8 24780142027 296 |
-4 24780142735 264 |
-2 24783791002 0 |
-3 24783793928 296 |
-8 24783816477 296 |
-4 24783817182 264 |
-2 24787418455 0 |
-6 24787419156 280 |
-3 24787421217 280 |
-8 24787424465 280 |
-4 24787425155 264 |
-2 24787466058 0 |
-3 24787469116 296 |
-8 24787492011 296 |
-4 24787492735 264 |
-2 24791094723 0 |
-3 24791095398 264 |
-2 24791140976 0 |
-3 24791143930 296 |
-8 24791166669 296 |
-4 24791167390 264 |
-2 24794815658 0 |
-3 24794818580 296 |
-8 24794841272 296 |
-4 24794841982 264 |
-2 24798490610 0 |
-3 24798493503 296 |
-8 24798516191 296 |
-4 24798516898 264 |
-2 24802165165 0 |
-3 24802168086 296 |
-8 24802190640 296 |
-4 24802191351 264 |
-2 24805792619 0 |
-6 24805793320 280 |
-3 24805795348 280 |
-8 24805798595 280 |
-4 24805799285 264 |
-2 24805840188 0 |
-3 24805843209 296 |
-8 24805866055 296 |
-4 24805866773 264 |
-2 24809468782 0 |
-3 24809469457 264 |
-2 24809515035 0 |
-3 24809518000 296 |
-8 24809540800 296 |
-4 24809541511 264 |
-2 24813189789 0 |
-3 24813192737 296 |
-8 24813215431 296 |
-4 24813216136 264 |
-2 24816864768 0 |
-3 24816867672 296 |
-8 24816890398 296 |
-4 24816891139 264 |
-2 24820539373 0 |
-3 24820542299 296 |
-8 24820564848 296 |
-4 24820565553 264 |
-2 24824166826 0 |
-6 24824167531 280 |
-3 24824169587 280 |
-8 24824172836 280 |
-4 24824173526 264 |
-2 24824214429 0 |
-3 24824217487 296 |
-8 24824240356 296 |
-4 24824241080 264 |
-2 24827843067 0 |
-3 24827843742 264 |
-2 24827888951 0 |
-3 24827891905 296 |
-8 24827914650 296 |
-4 24827915371 264 |
-2 24831564002 0 |
-3 24831566922 296 |
-8 24831589632 296 |
-4 24831590342 264 |
-2 24835238607 0 |
-3 24835241500 296 |
-8 24835264188 296 |
-4 24835264895 264 |
-2 24838913525 0 |
-3 24838916446 296 |
-8 24838939000 296 |
-4 24838939711 264 |
-2 24842540979 0 |
-6 24842541680 280 |
-3 24842543708 280 |
-8 24842546960 280 |
-4 24842547650 264 |
-2 24842588548 0 |
-3 24842591607 296 |
-8 24842614464 296 |
-4 24842615182 264 |
-2 24846217192 0 |
-3 24846217867 264 |
-2 24846263445 0 |
-3 24846266410 296 |
-8 24846289222 296 |
-4 24846289933 264 |
-2 24849938209 0 |
-3 24849941153 296 |
-8 24849963840 296 |
-4 24849964540 264 |
-2 24853612814 0 |
-3 24853615714 296 |
-8 24853638417 296 |
-4 24853639125 264 |
-2 24857287755 0 |
-3 24857290681 296 |
-8 24857313230 296 |
-4 24857313935 264 |
-2 24860915208 0 |
-6 24860915909 280 |
-3 24860917970 280 |
-8 24860921500 280 |
-4 24860922190 264 |
-2 24860962442 0 |
-3 24860965496 296 |
-8 24860988390 296 |
-4 24860989114 264 |
-2 24864591471 0 |
-3 24864592146 264 |
-2 24864637355 0 |
-3 24864640309 296 |
-8 24864663048 296 |
-4 24864663769 264 |
-2 24868312400 0 |
-3 24868315322 296 |
-8 24868338014 296 |
-4 24868338724 264 |
-2 24871986989 0 |
-3 24871989882 296 |
-8 24872012570 296 |
-4 24872013277 264 |
-2 24875661907 0 |
-3 24875664829 296 |
-8 24875687382 296 |
-4 24875688093 264 |
-2 24879289361 0 |
-6 24879290062 280 |
-3 24879292112 280 |
-8 24879295359 280 |
-4 24879296049 264 |
-2 24879336584 0 |
-3 24879339603 296 |
-8 24879362450 296 |
-4 24879363168 264 |
-2 24882965546 0 |
-3 24882966221 264 |
-2 24883011431 0 |
-3 24883014396 296 |
-8 24883037190 296 |
-4 24883037901 264 |
-2 24886686542 0 |
-3 24886689490 296 |
-8 24886712184 296 |
-4 24886712889 264 |
-2 24890361158 0 |
-3 24890364062 296 |
-8 24890386793 296 |
-4 24890387506 264 |
-2 24894036131 0 |
-3 24894039053 296 |
-8 24894061601 296 |
-4 24894062306 264 |
-2 24897663211 0 |
-6 24897663912 280 |
-3 24897665972 280 |
-8 24897669231 280 |
-4 24897669921 264 |
-2 24897710813 0 |
-3 24897713867 296 |
-8 24897736746 296 |
-4 24897737470 264 |
-2 24901339457 0 |
-3 24901340132 264 |
-2 24901385710 0 |
-3 24901388664 296 |
-8 24901411405 296 |
-4 24901412126 264 |
-2 24905060397 0 |
-3 24905063319 296 |
-8 24905086027 296 |
-4 24905086737 264 |
-2 24908735365 0 |
-3 24908738258 296 |
-8 24908760947 296 |
-4 24908761654 264 |
-2 24912410284 0 |
-3 24912413205 296 |
-8 24912435759 296 |
-4 24912436470 264 |
-2 24916037369 0 |
-6 24916038070 280 |
-3 24916040108 280 |
-8 24916043350 280 |
-4 24916044040 264 |
-2 24916084949 0 |
-3 24916088008 296 |
-8 24916110865 296 |
-4 24916111583 264 |
-2 24919713593 0 |
-3 24919714268 264 |
-2 24919759846 0 |
-3 24919762811 296 |
-8 24919785623 296 |
-4 24919786334 264 |
-2 24923434610 0 |
-3 24923437554 296 |
-8 24923460241 296 |
-4 24923460941 264 |
-2 24927109578 0 |
-3 24927112478 296 |
-8 24927135181 296 |
-4 24927135889 264 |
-2 24930784519 0 |
-3 24930787440 296 |
-8 24930809988 296 |
-4 24930810693 264 |
-2 24934411598 0 |
-6 24934412299 280 |
-3 24934414348 280 |
-8 24934417597 280 |
-4 24934418287 264 |
-2 24934459190 0 |
-3 24934462248 296 |
-8 24934485143 296 |
-4 24934485867 264 |
-2 24938087855 0 |
-3 24938088530 264 |
-2 24938134108 0 |
-3 24938137062 296 |
-8 24938159801 296 |
-4 24938160522 264 |
-2 24941808790 0 |
-3 24941811711 296 |
-8 24941834404 296 |
-4 24941835114 264 |
-2 24945483742 0 |
-3 24945486635 296 |
-8 24945509323 296 |
-4 24945510030 264 |
-2 24949158660 0 |
-3 24949161581 296 |
-8 24949184135 296 |
-4 24949184846 264 |
-2 24952785745 0 |
-6 24952786450 280 |
-3 24952788502 280 |
-8 24952791749 280 |
-4 24952792439 264 |
-2 24952833342 0 |
-3 24952836363 296 |
-8 24952859209 296 |
-4 24952859927 264 |
-2 24956461936 0 |
-3 24956462611 264 |
-2 24956508189 0 |
-3 24956511154 296 |
-8 24956533954 296 |
-4 24956534665 264 |
-2 24960182943 0 |
-3 24960185891 296 |
-8 24960208585 296 |
-4 24960209296 264 |
-2 24963857922 0 |
-3 24963860826 296 |
-8 24963883552 296 |
-4 24963884260 264 |
-2 24967532527 0 |
-3 24967535453 296 |
-8 24967558002 296 |
-4 24967558707 264 |
-2 24971159980 0 |
-6 24971160681 280 |
-3 24971162730 280 |
-8 24971165979 280 |
-4 24971166669 264 |
-2 24971207572 0 |
-3 24971210630 296 |
-8 24971233492 296 |
-4 24971234216 264 |
-2 24974836204 0 |
-3 24974836879 264 |
-2 24974882457 0 |
-3 24974885411 296 |
-8 24974908150 296 |
-4 24974908871 264 |
-2 24978557139 0 |
-3 24978560061 296 |
-8 24978582769 296 |
-4 24978583479 264 |
-2 24982232107 0 |
-3 24982235000 296 |
-8 24982257689 296 |
-4 24982258396 264 |
-2 24985906663 0 |
-3 24985909584 296 |
-8 24985932138 296 |
-4 24985932849 264 |
-2 24989534116 0 |
-6 24989534817 280 |
-3 24989536855 280 |
-8 24989540098 280 |
-4 24989540788 264 |
-2 24989581697 0 |
-3 24989584756 296 |
-8 24989607613 296 |
-4 24989608331 264 |
-2 24993210340 0 |
-3 24993211015 264 |
-2 24993256593 0 |
-3 24993259558 296 |
-8 24993282371 296 |
-4 24993283082 264 |
-2 24996931363 0 |
-3 24996934306 296 |
-8 24996956994 296 |
-4 24996957694 264 |
-2 25000605968 0 |
-3 25000608868 296 |
-8 25000631571 296 |
-4 25000632279 264 |
-2 25004280909 0 |
-3 25004283835 296 |
-8 25004306384 296 |
-4 25004307089 264 |
-2 25007908362 0 |
-6 25007909063 280 |
-3 25007911141 280 |
-8 25007914599 280 |
-4 25007915289 264 |
-2 25007955613 0 |
-3 25007958671 296 |
-8 25007981566 296 |
-4 25007982290 264 |
-2 25011584647 0 |
-3 25011585322 264 |
-2 25011630531 0 |
-3 25011633485 296 |
-8 25011656224 296 |
-4 25011656945 264 |
-2 25015305576 0 |
-3 25015308498 296 |
-8 25015331190 296 |
-4 25015331900 264 |
-2 25018980165 0 |
-3 25018983058 296 |
-8 25019005746 296 |
-4 25019006453 264 |
-2 25022655083 0 |
-3 25022658004 296 |
-8 25022680564 296 |
-4 25022681275 264 |
-2 25026282542 0 |
-6 25026283247 280 |
-3 25026285277 280 |
-8 25026288524 280 |
-4 25026289214 264 |
-2 25026330117 0 |
-3 25026333138 296 |
-8 25026355990 296 |
-4 25026356708 264 |
-2 25029958711 0 |
-3 25029959386 264 |
-2 25030004596 0 |
-3 25030007561 296 |
-8 25030030371 296 |
-4 25030031082 264 |
-2 25033679723 0 |
-3 25033682667 296 |
-8 25033705360 296 |
-4 25033706065 264 |
-2 25037354334 0 |
-3 25037357238 296 |
-8 25037379964 296 |
-4 25037380672 264 |
-2 25041029302 0 |
-3 25041032228 296 |
-8 25041054777 296 |
-4 25041055482 264 |
-2 25044656387 0 |
-6 25044657088 280 |
-3 25044659137 280 |
-8 25044662385 280 |
-4 25044663075 264 |
-2 25044703978 0 |
-3 25044707025 296 |
-8 25044729896 296 |
-4 25044730620 264 |
-2 25048332600 0 |
-3 25048333275 264 |
-2 25048378853 0 |
-3 25048381807 296 |
-8 25048404548 296 |
-4 25048405269 264 |
-2 25052053903 0 |
-3 25052056825 296 |
-8 25052079533 296 |
-4 25052080243 264 |
-2 25055728508 0 |
-3 25055731401 296 |
-8 25055754090 296 |
-4 25055754797 264 |
-2 25059403427 0 |
-3 25059406348 296 |
-8 25059428902 296 |
-4 25059429613 264 |
-2 25063030880 0 |
-6 25063031581 280 |
-3 25063033619 280 |
-8 25063036862 280 |
-4 25063037552 264 |
-2 25063078092 0 |
-3 25063081151 296 |
-8 25063104008 296 |
-4 25063104726 264 |
-2 25066707104 0 |
-3 25066707779 264 |
-2 25066752989 0 |
-3 25066755954 296 |
-8 25066778766 296 |
-4 25066779477 264 |
-2 25070427753 0 |
-3 25070430697 296 |
-8 25070453384 296 |
-4 25070454084 264 |
-2 25074102721 0 |
-3 25074105626 296 |
-8 25074128329 296 |
-4 25074129037 264 |
-2 25077777667 0 |
-3 25077780594 296 |
-8 25077803142 296 |
-4 25077803847 264 |
-2 25081404752 0 |
-6 25081405457 280 |
-3 25081407531 280 |
-8 25081410778 280 |
-4 25081411468 264 |
-2 25081452371 0 |
-3 25081455424 296 |
-8 25081478319 296 |
-4 25081479043 264 |
-2 25085081031 0 |
-3 25085081706 264 |
-2 25085127284 0 |
-3 25085130238 296 |
-8 25085152977 296 |
-4 25085153698 264 |
-2 25088801966 0 |
-3 25088804888 296 |
-8 25088827585 296 |
-4 25088828295 264 |
-2 25092476923 0 |
-3 25092479816 296 |
-8 25092502505 296 |
-4 25092503212 264 |
-2 25096151842 0 |
-3 25096154769 296 |
-8 25096177322 296 |
-4 25096178033 264 |
-2 25099778932 0 |
-6 25099779633 280 |
-3 25099781661 280 |
-8 25099784936 280 |
-4 25099785626 264 |
-2 25099826502 0 |
-3 25099829555 296 |
-8 25099852412 296 |
-4 25099853130 264 |
-2 25103455140 0 |
-3 25103455815 264 |
-2 25103501393 0 |
-3 25103504357 296 |
-8 25103527188 296 |
-4 25103527914 264 |
-2 25107176179 0 |
-3 25107179222 296 |
-8 25107201926 296 |
-4 25107202626 264 |
-2 25110850900 0 |
-3 25110853826 296 |
-8 25110876493 296 |
-4 25110877202 264 |
-2 25114525829 0 |
-3 25114528750 296 |
-8 25114551249 296 |
-4 25114551954 264 |
-2 25118153228 0 |
-6 25118153929 280 |
-3 25118155990 280 |
-8 25118159237 280 |
-4 25118159940 264 |
-2 25118200830 0 |
-3 25118203888 296 |
-8 25118226814 296 |
-4 25118227538 264 |
-2 25121829540 0 |
-3 25121830215 264 |
-2 25121875424 0 |
-3 25121878378 296 |
-8 25121901092 296 |
-4 25121901813 264 |
-2 25125550447 0 |
-3 25125553369 296 |
-8 25125576028 296 |
-4 25125576738 264 |
-2 25129225003 0 |
-3 25129227896 296 |
-8 25129250535 296 |
-4 25129251238 264 |
-2 25132899872 0 |
-3 25132902793 296 |
-8 25132925297 296 |
-4 25132926008 264 |
-2 25136527276 0 |
-6 25136527977 280 |
-3 25136530005 280 |
-8 25136533239 280 |
-4 25136533929 264 |
-2 25136574845 0 |
-3 25136577887 296 |
-8 25136600695 296 |
-4 25136601413 264 |
-2 25140203423 0 |
-3 25140204098 264 |
-2 25140249676 0 |
-3 25140252641 296 |
-8 25140275409 296 |
-4 25140276120 264 |
-2 25143924396 0 |
-3 25143927340 296 |
-8 25143950027 296 |
-4 25143950727 264 |
-2 25147599364 0 |
-3 25147602264 296 |
-8 25147624967 296 |
-4 25147625675 264 |
-2 25151274305 0 |
-3 25151277226 296 |
-8 25151299774 296 |
-4 25151300479 264 |
-2 25154901384 0 |
-6 25154902089 280 |
-3 25154904163 280 |
-8 25154907461 280 |
-4 25154908151 264 |
-2 25154949003 0 |
-3 25154952056 296 |
-8 25154975005 296 |
-4 25154975729 264 |
-2 25158577718 0 |
-3 25158578393 264 |
-2 25158623971 0 |
-3 25158626925 296 |
-8 25158649664 296 |
-4 25158650391 264 |
-2 25162298653 0 |
-3 25162301575 296 |
-8 25162324267 296 |
-4 25162324977 264 |
-2 25165973605 0 |
-3 25165976498 296 |
-8 25165999186 296 |
-4 25165999893 264 |
-2 25169648160 0 |
-3 25169651081 296 |
-8 25169673635 296 |
-4 25169674346 264 |
-2 25173275614 0 |
-6 25173276315 280 |
-3 25173278343 280 |
-8 25173281590 280 |
-4 25173282280 264 |
-2 25173323183 0 |
-3 25173326198 296 |
-8 25173349050 296 |
-4 25173349768 264 |
-2 25176951777 0 |
-3 25176952452 264 |
-2 25176998030 0 |
-3 25177000995 296 |
-8 25177023789 296 |
-4 25177024500 264 |
-2 25180672778 0 |
-3 25180675722 296 |
-8 25180698415 296 |
-4 25180699120 264 |
-2 25184347752 0 |
-3 25184350656 296 |
-8 25184373382 296 |
-4 25184374090 264 |
-2 25188022357 0 |
-3 25188025283 296 |
-8 25188047832 296 |
-4 25188048537 264 |
-2 25191649810 0 |
-6 25191650511 280 |
-3 25191652572 280 |
-8 25191655820 280 |
-4 25191656510 264 |
-2 25191697413 0 |
-3 25191700471 296 |
-8 25191723382 296 |
-4 25191724106 264 |
-2 25195326095 0 |
-3 25195326770 264 |
-2 25195371979 0 |
-3 25195374933 296 |
-8 25195397672 296 |
-4 25195398393 264 |
-2 25199047024 0 |
-3 25199049946 296 |
-8 25199072654 296 |
-4 25199073364 264 |
-2 25202721629 0 |
-3 25202724522 296 |
-8 25202747211 296 |
-4 25202747918 264 |
-2 25206396548 0 |
-3 25206399469 296 |
-8 25206422023 296 |
-4 25206422734 264 |
-2 25210024008 0 |
-6 25210024709 280 |
-3 25210026757 280 |
-8 25210029999 280 |
-4 25210030689 264 |
-2 25210071598 0 |
-3 25210074640 296 |
-8 25210097481 296 |
-4 25210098199 264 |
-2 25213700209 0 |
-3 25213700884 264 |
-2 25213746462 0 |
-3 25213749427 296 |
-8 25213772239 296 |
-4 25213772950 264 |
-2 25217421226 0 |
-3 25217424170 296 |
-8 25217446857 296 |
-4 25217447557 264 |
-2 25221095831 0 |
-3 25221098731 296 |
-8 25221121439 296 |
-4 25221122152 264 |
-2 25224770777 0 |
-3 25224773699 296 |
-8 25224796247 296 |
-4 25224796952 264 |
-2 25228398225 0 |
-6 25228398926 280 |
-3 25228400975 280 |
-8 25228404229 280 |
-4 25228404919 264 |
-2 25228445448 0 |
-3 25228448501 296 |
-8 25228471446 296 |
-4 25228472170 264 |
-2 25232074526 0 |
-3 25232075201 264 |
-2 25232120411 0 |
-3 25232123365 296 |
-8 25232146106 296 |
-4 25232146827 264 |
-2 25235795098 0 |
-3 25235798020 296 |
-8 25235820712 296 |
-4 25235821422 264 |
-2 25239470050 0 |
-3 25239472954 296 |
-8 25239495642 296 |
-4 25239496349 264 |
-2 25243144979 0 |
-3 25243147900 296 |
-8 25243170475 296 |
-4 25243171189 264 |
-2 25246772086 0 |
-6 25246772787 280 |
-3 25246774825 280 |
-8 25246778073 280 |
-4 25246778775 264 |
-2 25246819667 0 |
-3 25246822731 296 |
-8 25246845588 296 |
-4 25246846306 264 |
-2 25250448316 0 |
-3 25250448991 264 |
-2 25250494569 0 |
-3 25250497534 296 |
-8 25250520328 296 |
-4 25250521039 264 |
-2 25254169317 0 |
-3 25254172265 296 |
-8 25254194959 296 |
-4 25254195664 264 |
-2 25257844296 0 |
-3 25257847200 296 |
-8 25257869926 296 |
-4 25257870634 264 |
-2 25261518901 0 |
-3 25261521827 296 |
-8 25261544376 296 |
-4 25261545081 264 |
-2 25265146354 0 |
-6 25265147055 280 |
-3 25265149104 280 |
-8 25265152353 280 |
-4 25265153043 264 |
-2 25265193946 0 |
-3 25265197004 296 |
-8 25265219916 296 |
-4 25265220640 264 |
-2 25268822628 0 |
-3 25268823303 264 |
-2 25268868881 0 |
-3 25268871835 296 |
-8 25268894576 296 |
-4 25268895297 264 |
-2 25272543568 0 |
-3 25272546490 296 |
-8 25272569198 296 |
-4 25272569908 264 |
-2 25276218536 0 |
-3 25276221429 296 |
-8 25276244118 296 |
-4 25276244825 264 |
-2 25279893092 0 |
-3 25279896013 296 |
-8 25279918567 296 |
-4 25279919278 264 |
-2 25283520545 0 |
-6 25283521250 280 |
-3 25283523302 280 |
-8 25283526543 280 |
-4 25283527233 264 |
-2 25283568142 0 |
-3 25283571201 296 |
-8 25283594053 296 |
-4 25283594771 264 |
-2 25287196780 0 |
-3 25287197455 264 |
-2 25287243033 0 |
-3 25287245998 296 |
-8 25287268816 296 |
-4 25287269527 264 |
-2 25290917803 0 |
-3 25290920747 296 |
-8 25290943434 296 |
-4 25290944134 264 |
-2 25294592408 0 |
-3 25294595318 296 |
-8 25294618022 296 |
-4 25294618730 264 |
-2 25298267360 0 |
-3 25298270286 296 |
-8 25298292851 296 |
-4 25298293556 264 |
-2 25301894830 0 |
-6 25301895531 280 |
-3 25301897580 280 |
-8 25301900841 280 |
-4 25301901531 264 |
-2 25301942053 0 |
-3 25301945111 296 |
-8 25301968056 296 |
-4 25301968780 264 |
-2 25305571136 0 |
-3 25305571811 264 |
-2 25305617021 0 |
-3 25305619975 296 |
-8 25305642716 296 |
-4 25305643437 264 |
-2 25309291708 0 |
-3 25309294630 296 |
-8 25309317322 296 |
-4 25309318033 264 |
-2 25312966660 0 |
-3 25312969553 296 |
-8 25312992241 296 |
-4 25312992944 264 |
-2 25316641578 0 |
-3 25316644499 296 |
-8 25316667053 296 |
-4 25316667764 264 |
-2 25320268663 0 |
-6 25320269375 280 |
-3 25320271403 280 |
-8 25320274813 280 |
-4 25320275503 264 |
-2 25320316244 0 |
-3 25320319263 296 |
-8 25320342116 296 |
-4 25320342834 264 |
-2 25323944843 0 |
-3 25323945518 264 |
-2 25323991096 0 |
-3 25323994061 296 |
-8 25324016855 296 |
-4 25324017566 264 |
-2 25327665844 0 |
-3 25327668788 296 |
-8 25327691481 296 |
-4 25327692186 264 |
-2 25331340818 0 |
-3 25331343722 296 |
-8 25331366448 296 |
-4 25331367156 264 |
-2 25335015786 0 |
-3 25335018712 296 |
-8 25335041261 296 |
-4 25335041966 264 |
-2 25338642871 0 |
-6 25338643572 280 |
-3 25338645622 280 |
-8 25338648869 280 |
-4 25338649559 264 |
-2 25338690462 0 |
-3 25338693520 296 |
-8 25338716431 296 |
-4 25338717155 264 |
-2 25342319144 0 |
-3 25342319819 264 |
-2 25342365397 0 |
-3 25342368351 296 |
-8 25342391090 296 |
-4 25342391811 264 |
-2 25346040079 0 |
-3 25346043001 296 |
-8 25346065709 296 |
-4 25346066419 264 |
-2 25349715047 0 |
-3 25349717940 296 |
-8 25349740629 296 |
-4 25349741336 264 |
-2 25353389966 0 |
-3 25353392887 296 |
-8 25353415441 296 |
-4 25353416152 264 |
-2 25357017051 0 |
-6 25357017756 280 |
-3 25357019784 280 |
-8 25357023027 280 |
-4 25357023717 264 |
-2 25357064626 0 |
-3 25357067685 296 |
-8 25357090536 296 |
-4 25357091260 264 |
-2 25360693264 0 |
-3 25360693939 264 |
-2 25360739517 0 |
-3 25360742482 296 |
-8 25360765294 296 |
-4 25360766005 264 |
-2 25364414281 0 |
-3 25364417225 296 |
-8 25364439912 296 |
-4 25364440612 264 |
-2 25368089249 0 |
-3 25368092148 296 |
-8 25368114852 296 |
-4 25368115560 264 |
-2 25371763827 0 |
-3 25371766753 296 |
-8 25371789302 296 |
-4 25371790007 264 |
-2 25375391280 0 |
-6 25375391981 280 |
-3 25375394030 280 |
-8 25375397279 280 |
-4 25375397969 264 |
-2 25375438872 0 |
-3 25375441930 296 |
-8 25375464882 296 |
-4 25375465606 264 |
-2 25379067587 0 |
-3 25379068262 264 |
-2 25379113471 0 |
-3 25379116425 296 |
-8 25379139164 296 |
-4 25379139885 264 |
-2 25382788516 0 |
-3 25382791438 296 |
-8 25382814137 296 |
-4 25382814849 264 |
-2 25386463473 0 |
-3 25386466366 296 |
-8 25386489055 296 |
-4 25386489758 264 |
-2 25390138029 0 |
-3 25390140950 296 |
-8 25390163504 296 |
-4 25390164215 264 |
-2 25393765482 0 |
-6 25393766183 280 |
-3 25393768221 280 |
-8 25393771610 280 |
-4 25393772300 264 |
-2 25393813063 0 |
-3 25393816082 296 |
-8 25393838935 296 |
-4 25393839653 264 |
-2 25397441662 0 |
-3 25397442337 264 |
-2 25397487915 0 |
-3 25397490880 296 |
-8 25397513674 296 |
-4 25397514385 264 |
-2 25401162663 0 |
-3 25401165607 296 |
-8 25401188300 296 |
-4 25401189005 264 |
-2 25404837274 0 |
-3 25404840179 296 |
-8 25404862904 296 |
-4 25404863612 264 |
-2 25408512242 0 |
-3 25408515168 296 |
-8 25408537717 296 |
-4 25408538422 264 |
-2 25412139695 0 |
-6 25412140400 280 |
-3 25412142456 280 |
-8 25412145705 280 |
-4 25412146395 264 |
-2 25412186929 0 |
-3 25412189982 296 |
-8 25412212894 296 |
-4 25412213618 264 |
-2 25415815974 0 |
-3 25415816649 264 |
-2 25415861859 0 |
-3 25415864813 296 |
-8 25415887554 296 |
-4 25415888275 264 |
-2 25419536909 0 |
-3 25419539831 296 |
-8 25419562545 296 |
-4 25419563255 264 |
-2 25423211520 0 |
-3 25423214413 296 |
-8 25423237101 296 |
-4 25423237808 264 |
-2 25426886438 0 |
-3 25426889365 296 |
-8 25426911919 296 |
-4 25426912630 264 |
-2 25430513897 0 |
-6 25430514598 280 |
-3 25430516626 280 |
-8 25430519869 280 |
-4 25430520553 264 |
-2 25430561098 0 |
-3 25430564140 296 |
-8 25430586970 296 |
-4 25430587688 264 |
-2 25434190066 0 |
-3 25434190741 264 |
-2 25434235951 0 |
-3 25434238916 296 |
-8 25434261728 296 |
-4 25434262439 264 |
-2 25437911078 0 |
-3 25437914022 296 |
-8 25437936709 296 |
-4 25437937409 264 |
-2 25441585683 0 |
-3 25441588583 296 |
-8 25441611286 296 |
-4 25441611998 264 |
-2 25445260624 0 |
-3 25445263550 296 |
-8 25445286099 296 |
-4 25445286804 264 |
-2 25448887709 0 |
-6 25448888410 280 |
-3 25448890471 280 |
-8 25448893726 280 |
-4 25448894416 264 |
-2 25448935311 0 |
-3 25448938364 296 |
-8 25448961309 296 |
-4 25448962033 264 |
-2 25452564021 0 |
-3 25452564696 264 |
-2 25452610274 0 |
-3 25452613228 296 |
-8 25452635969 296 |
-4 25452636690 264 |
-2 25456284961 0 |
-3 25456287883 296 |
-8 25456310575 296 |
-4 25456311285 264 |
-2 25459959913 0 |
-3 25459962806 296 |
-8 25459985494 296 |
-4 25459986201 264 |
-2 25463634831 0 |
-3 25463637752 296 |
-8 25463660306 296 |
-4 25463661017 264 |
-2 25467261916 0 |
-6 25467262617 280 |
-3 25467264645 280 |
-8 25467267903 280 |
-4 25467268593 264 |
-2 25467309486 0 |
-3 25467312533 296 |
-8 25467335385 296 |
-4 25467336103 264 |
-2 25470938113 0 |
-3 25470938788 264 |
-2 25470984366 0 |
-3 25470987326 296 |
-8 25471010138 296 |
-4 25471010864 264 |
-2 25474659130 0 |
-3 25474662173 296 |
-8 25474684867 296 |
-4 25474685567 264 |
-2 25478334208 0 |
-3 25478337134 296 |
-8 25478359794 296 |
-4 25478360502 264 |
-2 25482008769 0 |
-3 25482011691 296 |
-8 25482034189 296 |
-4 25482034894 264 |
-2 25485636168 0 |
-6 25485636870 280 |
-3 25485638924 280 |
-8 25485642172 280 |
-4 25485642875 264 |
-2 25485683765 0 |
-3 25485686824 296 |
-8 25485709648 296 |
-4 25485710372 264 |
-2 25489312375 0 |
-3 25489313050 264 |
-2 25489358628 0 |
-3 25489361582 296 |
-8 25489384296 296 |
-4 25489385017 264 |
-2 25493033288 0 |
-3 25493036210 296 |
-8 25493058869 296 |
-4 25493059579 264 |
-2 25496708207 0 |
-3 25496711100 296 |
-8 25496733739 296 |
-4 25496734442 264 |
-2 25500383076 0 |
-3 25500385997 296 |
-8 25500408501 296 |
-4 25500409212 264 |
-2 25504010480 0 |
-6 25504011185 280 |
-3 25504013208 280 |
-8 25504016443 280 |
-4 25504017133 264 |
-2 25504058049 0 |
-3 25504061091 296 |
-8 25504083883 296 |
-4 25504084601 264 |
-2 25507686610 0 |
-3 25507687285 264 |
-2 25507732863 0 |
-3 25507735828 296 |
-8 25507758597 296 |
-4 25507759308 264 |
-2 25511407589 0 |
-3 25511410533 296 |
-8 25511433220 296 |
-4 25511433920 264 |
-2 25515082194 0 |
-3 25515085094 296 |
-8 25515107797 296 |
-4 25515108505 264 |
-2 25518757135 0 |
-3 25518760061 296 |
-8 25518782610 296 |
-4 25518783315 264 |
-2 25522384588 0 |
-6 25522385289 280 |
-3 25522387345 280 |
-8 25522390592 280 |
-4 25522391282 264 |
-2 25522432185 0 |
-3 25522435239 296 |
-8 25522458176 296 |
-4 25522458900 264 |
-2 25526060889 0 |
-3 25526061564 264 |
-2 25526106774 0 |
-3 25526109728 296 |
-8 25526132469 296 |
-4 25526133190 264 |
-2 25529781824 0 |
-3 25529784746 296 |
-8 25529807438 296 |
-4 25529808148 264 |
-2 25533456413 0 |
-3 25533459306 296 |
-8 25533481994 296 |
-4 25533482701 264 |
-2 25537131331 0 |
-3 25537134252 296 |
-8 25537156806 296 |
-4 25537157517 264 |
-2 25540758792 0 |
-6 25540759493 280 |
-3 25540761541 280 |
-8 25540764788 280 |
-4 25540765478 264 |
-2 25540806013 0 |
-3 25540809028 296 |
-8 25540831874 296 |
-4 25540832592 264 |
-2 25544434970 0 |
-3 25544435645 264 |
-2 25544480855 0 |
-3 25544483820 296 |
-8 25544506614 296 |
-4 25544507325 264 |
-2 25548155966 0 |
-3 25548158914 296 |
-8 25548181608 296 |
-4 25548182313 264 |
-2 25551830582 0 |
-3 25551833486 296 |
-8 25551856217 296 |
-4 25551856930 264 |
-2 25555505555 0 |
-3 25555508477 296 |
-8 25555531030 296 |
-4 25555531735 264 |
-2 25559132640 0 |
-6 25559133341 280 |
-3 25559135385 280 |
-8 25559138633 280 |
-4 25559139329 264 |
-2 25559180226 0 |
-3 25559183279 296 |
-8 25559206266 296 |
-4 25559206990 264 |
-2 25562808980 0 |
-3 25562809655 264 |
-2 25562855233 0 |
-3 25562858187 296 |
-8 25562880928 296 |
-4 25562881649 264 |
-2 25566529920 0 |
-3 25566532842 296 |
-8 25566555550 296 |
-4 25566556260 264 |
-2 25570204888 0 |
-3 25570207781 296 |
-8 25570230470 296 |
-4 25570231177 264 |
-2 25573879807 0 |
-3 25573882728 296 |
-8 25573905286 296 |
-4 25573905992 264 |
-2 25577506892 0 |
-6 25577507593 280 |
-3 25577509621 280 |
-8 25577512862 280 |
-4 25577513552 264 |
-2 25577554461 0 |
-3 25577557520 296 |
-8 25577580366 296 |
-4 25577581084 264 |
-2 25581183094 0 |
-3 25581183769 264 |
-2 25581229347 0 |
-3 25581232312 296 |
-8 25581255124 296 |
-4 25581255835 264 |
-2 25584904111 0 |
-3 25584907055 296 |
-8 25584929742 296 |
-4 25584930442 264 |
-2 25588579079 0 |
-3 25588581979 296 |
-8 25588604682 296 |
-4 25588605390 264 |
-2 25592253657 0 |
-3 25592256583 296 |
-8 25592279132 296 |
-4 25592279837 264 |
-2 25595881110 0 |
-6 25595881811 280 |
-3 25595883855 280 |
-8 25595887154 280 |
-4 25595887844 264 |
-2 25595928696 0 |
-3 25595931750 296 |
-8 25595954687 296 |
-4 25595955411 264 |
-2 25599557400 0 |
-3 25599558075 264 |
-2 25599603285 0 |
-3 25599606239 296 |
-8 25599628980 296 |
-4 25599629701 264 |
-2 25603278335 0 |
-3 25603281257 296 |
-8 25603303949 296 |
-4 25603304659 264 |
-2 25606953287 0 |
-3 25606956180 296 |
-8 25606978868 296 |
-4 25606979575 264 |
-2 25610627842 0 |
-3 25610630763 296 |
-8 25610653317 296 |
-4 25610654028 264 |
-2 25614255296 0 |
-6 25614256001 280 |
-3 25614258051 280 |
-8 25614261299 280 |
-4 25614261989 264 |
-2 25614302893 0 |
-3 25614305912 296 |
-8 25614328748 296 |
-4 25614329466 264 |
-2 25617931476 0 |
-3 25617932151 264 |
-2 25617977729 0 |
-3 25617980694 296 |
-8 25618003493 296 |
-4 25618004209 264 |
-2 25621652482 0 |
-3 25621655426 296 |
-8 25621678119 296 |
-4 25621678824 264 |
-2 25625327093 0 |
-3 25625330003 296 |
-8 25625352728 296 |
-4 25625353436 264 |
-2 25629002066 0 |
-3 25629004988 296 |
-8 25629027552 296 |
-4 25629028257 264 |
-2 25632629531 0 |
-6 25632630232 280 |
-3 25632632281 280 |
-8 25632635529 280 |
-4 25632636219 264 |
-2 25632676754 0 |
-3 25632679812 296 |
-8 25632702717 296 |
-4 25632703441 264 |
-2 25636305799 0 |
-3 25636306474 264 |
-2 25636351683 0 |
-3 25636354637 296 |
-8 25636377376 296 |
-4 25636378097 264 |
-2 25640026728 0 |
-3 25640029650 296 |
-8 25640052358 296 |
-4 25640053068 264 |
-2 25643701333 0 |
-3 25643704226 296 |
-8 25643726915 296 |
-4 25643727622 264 |
-2 25647376252 0 |
-3 25647379173 296 |
-8 25647401727 296 |
-4 25647402438 264 |
-2 25651003705 0 |
-6 25651004406 280 |
-3 25651006439 280 |
-8 25651009681 280 |
-4 25651010371 264 |
-2 25651050912 0 |
-3 25651053971 296 |
-8 25651076817 296 |
-4 25651077535 264 |
-2 25654679913 0 |
-3 25654680588 264 |
-2 25654725797 0 |
-3 25654728762 296 |
-8 25654751575 296 |
-4 25654752286 264 |
-2 25658400567 0 |
-3 25658403511 296 |
-8 25658426198 296 |
-4 25658426898 264 |
-2 25662075535 0 |
-3 25662078435 296 |
-8 25662101138 296 |
-4 25662101846 264 |
-2 25665750476 0 |
-3 25665753397 296 |
-8 25665775945 296 |
-4 25665776650 264 |
-2 25669377555 0 |
-6 25669378256 280 |
-3 25669380305 280 |
-8 25669383554 280 |
-4 25669384244 264 |
-2 25669425147 0 |
-3 25669428205 296 |
-8 25669451143 296 |
-4 25669451867 264 |
-2 25673053856 0 |
-3 25673054531 264 |
-2 25673100109 0 |
-3 25673103063 296 |
-8 25673125802 296 |
-4 25673126523 264 |
-2 25676774791 0 |
-3 25676777713 296 |
-8 25676800405 296 |
-4 25676801115 264 |
-2 25680449743 0 |
-3 25680452637 296 |
-8 25680475324 296 |
-4 25680476027 264 |
-2 25684124661 0 |
-3 25684127582 296 |
-8 25684150157 296 |
-4 25684150867 264 |
-2 25687751768 0 |
-6 25687752473 280 |
-3 25687754496 280 |
-8 25687757731 280 |
-4 25687758433 264 |
-2 25687799338 0 |
-3 25687802397 296 |
-8 25687825259 296 |
-4 25687825977 264 |
-2 25691427987 0 |
-3 25691428668 264 |
-2 25691474245 0 |
-3 25691477210 296 |
-8 25691500004 296 |
-4 25691500715 264 |
-2 25695148993 0 |
-3 25695151937 296 |
-8 25695174630 296 |
-4 25695175335 264 |
-2 25698823967 0 |
-3 25698826871 296 |
-8 25698849597 296 |
-4 25698850305 264 |
-2 25702498572 0 |
-3 25702501498 296 |
-8 25702524047 296 |
-4 25702524752 264 |
-2 25706126025 0 |
-6 25706126726 280 |
-3 25706128770 280 |
-8 25706132018 280 |
-4 25706132708 264 |
-2 25706173611 0 |
-3 25706176665 296 |
-8 25706199577 296 |
-4 25706200305 264 |
-2 25709802282 0 |
-3 25709802957 264 |
-2 25709848535 0 |
-3 25709851489 296 |
-8 25709874228 296 |
-4 25709874949 264 |
-2 25713523217 0 |
-3 25713526139 296 |
-8 25713548847 296 |
-4 25713549557 264 |
-2 25717198185 0 |
-3 25717201078 296 |
-8 25717223767 296 |
-4 25717224474 264 |
-2 25720872741 0 |
-3 25720875662 296 |
-8 25720898216 296 |
-4 25720898927 264 |
-2 25724500194 0 |
-6 25724500895 280 |
-3 25724502918 280 |
-8 25724506159 280 |
-4 25724506849 264 |
-2 25724547758 0 |
-3 25724550800 296 |
-8 25724573636 296 |
-4 25724574354 264 |
-2 25728176363 0 |
-3 25728177038 264 |
-2 25728222616 0 |
-3 25728225581 296 |
-8 25728248394 296 |
-4 25728249105 264 |
-2 25731897386 0 |
-3 25731900330 296 |
-8 25731923017 296 |
-4 25731923717 264 |
-2 25735571991 0 |
-3 25735574891 296 |
-8 25735597594 296 |
-4 25735598302 264 |
-2 25739246939 0 |
-3 25739249864 296 |
-8 25739272412 296 |
-4 25739273117 264 |
-2 25742874391 0 |
-6 25742875096 280 |
-3 25742877168 280 |
-8 25742880530 280 |
-4 25742881220 264 |
-2 25742922010 0 |
-3 25742925063 296 |
-8 25742948000 296 |
-4 25742948724 264 |
-2 25746550714 0 |
-3 25746551389 264 |
-2 25746596598 0 |
-3 25746599552 296 |
-8 25746622291 296 |
-4 25746623012 264 |
-2 25750271643 0 |
-3 25750274565 296 |
-8 25750297262 296 |
-4 25750297972 264 |
-2 25753946237 0 |
-3 25753949130 296 |
-8 25753971824 296 |
-4 25753972531 264 |
-2 25757621161 0 |
-3 25757624088 296 |
-8 25757646642 296 |
-4 25757647353 264 |
-2 25761248620 0 |
-6 25761249321 280 |
-3 25761251344 280 |
-8 25761254591 280 |
-4 25761255281 264 |
-2 25761295816 0 |
-3 25761298831 296 |
-8 25761321677 296 |
-4 25761322395 264 |
-2 25764924773 0 |
-3 25764925448 264 |
-2 25764970657 0 |
-3 25764973622 296 |
-8 25764996416 296 |
-4 25764997127 264 |
-2 25768645768 0 |
-3 25768648712 296 |
-8 25768671405 296 |
-4 25768672110 264 |
-2 25772320379 0 |
-3 25772323283 296 |
-8 25772346009 296 |
-4 25772346717 264 |
-2 25775995347 0 |
-3 25775998273 296 |
-8 25776020822 296 |
-4 25776021527 264 |
-2 25779622432 0 |
-6 25779623133 280 |
-3 25779625188 280 |
-8 25779628491 280 |
-4 25779629181 264 |
-2 25779670029 0 |
-3 25779673082 296 |
-8 25779695986 296 |
-4 25779696710 264 |
-2 25783298700 0 |
-3 25783299375 264 |
-2 25783344953 0 |
-3 25783347907 296 |
-8 25783370648 296 |
-4 25783371369 264 |
-2 25787019640 0 |
-3 25787022562 296 |
-8 25787045270 296 |
-4 25787045980 264 |
-2 25790694608 0 |
-3 25790697501 296 |
-8 25790720190 296 |
-4 25790720897 264 |
-2 25794369527 0 |
-3 25794372448 296 |
-8 25794395002 296 |
-4 25794395713 264 |
-2 25797996612 0 |
-6 25797997313 280 |
-3 25797999340 280 |
-8 25798002582 280 |
-4 25798003272 264 |
-2 25798044181 0 |
-3 25798047223 296 |
-8 25798070064 296 |
-4 25798070782 264 |
-2 25801672792 0 |
-3 25801673467 264 |
-2 25801719045 0 |
-3 25801722009 296 |
-8 25801744822 296 |
-4 25801745548 264 |
-2 25805393809 0 |
-3 25805396769 296 |
-8 25805419458 296 |
-4 25805420158 264 |
-2 25809068799 0 |
-3 25809071699 296 |
-8 25809094402 296 |
-4 25809095110 264 |
-2 25812743740 0 |
-3 25812746661 296 |
-8 25812769209 296 |
-4 25812769914 264 |
-2 25816370819 0 |
-6 25816371524 280 |
-3 25816373598 280 |
-8 25816376845 280 |
-4 25816377535 264 |
-2 25816418438 0 |
-3 25816421491 296 |
-8 25816444398 296 |
-4 25816445122 264 |
-2 25820047126 0 |
-3 25820047801 264 |
-2 25820093379 0 |
-3 25820096333 296 |
-8 25820119096 296 |
-4 25820119817 264 |
-2 25823768088 0 |
-3 25823771014 296 |
-8 25823793707 296 |
-4 25823794417 264 |
-2 25827443045 0 |
-3 25827445938 296 |
-8 25827468643 296 |
-4 25827469350 264 |
-2 25831117617 0 |
-3 25831120538 296 |
-8 25831143109 296 |
-4 25831143820 264 |
-2 25834745087 0 |
-6 25834745788 280 |
-3 25834747811 280 |
-8 25834751069 280 |
-4 25834751759 264 |
-2 25834792651 0 |
-3 25834795715 296 |
-8 25834818545 296 |
-4 25834819263 264 |
-2 25838421273 0 |
-3 25838421948 264 |
-2 25838467526 0 |
-3 25838470486 296 |
-8 25838493298 296 |
-4 25838494029 264 |
-2 25842142290 0 |
-3 25842145333 296 |
-8 25842168159 296 |
-4 25842168859 264 |
-2 25845817137 0 |
-3 25845820063 296 |
-8 25845842855 296 |
-4 25845843563 264 |
-2 25849491830 0 |
-3 25849494752 296 |
-8 25849517322 296 |
-4 25849518027 264 |
-2 25853119300 0 |
-6 25853120001 280 |
-3 25853122045 280 |
-8 25853125310 280 |
-4 25853126013 264 |
-2 25853166886 0 |
-3 25853169944 296 |
-8 25853192835 296 |
-4 25853193559 264 |
-2 25856795563 0 |
-3 25856796238 264 |
-2 25856841447 0 |
-3 25856844401 296 |
-8 25856867159 296 |
-4 25856867880 264 |
-2 25860516514 0 |
-3 25860519436 296 |
-8 25860542139 296 |
-4 25860542849 264 |
-2 25864191114 0 |
-3 25864194007 296 |
-8 25864216690 296 |
-4 25864217397 264 |
-2 25867866027 0 |
-3 25867868948 296 |
-8 25867891496 296 |
-4 25867892207 264 |
-2 25871493475 0 |
-6 25871494176 280 |
-3 25871496208 280 |
-8 25871499456 280 |
-4 25871500146 264 |
-2 25871541050 0 |
-3 25871544092 296 |
-8 25871566916 296 |
-4 25871567634 264 |
-2 25875169644 0 |
-3 25875170319 264 |
-2 25875215897 0 |
-3 25875218862 296 |
-8 25875241674 296 |
-4 25875242385 264 |
-2 25878890661 0 |
-3 25878893605 296 |
-8 25878916336 296 |
-4 25878917036 264 |
-2 25882565310 0 |
-3 25882568210 296 |
-8 25882590957 296 |
-4 25882591670 264 |
-2 25886240295 0 |
-3 25886243221 296 |
-8 25886265819 296 |
-4 25886266528 264 |
-2 25889867429 0 |
-6 25889868134 280 |
-3 25889870180 280 |
-8 25889873441 280 |
-4 25889874131 264 |
-2 25889915021 0 |
-3 25889918074 296 |
-8 25889941038 296 |
-4 25889941762 264 |
-2 25893543741 0 |
-3 25893544416 264 |
-2 25893589994 0 |
-3 25893592948 296 |
-8 25893615731 296 |
-4 25893616452 264 |
-2 25897264720 0 |
-3 25897267642 296 |
-8 25897290378 296 |
-4 25897291088 264 |
-2 25900939353 0 |
-3 25900942246 296 |
-8 25900964978 296 |
-4 25900965685 264 |
-2 25904614315 0 |
-3 25904617236 296 |
-8 25904639834 296 |
-4 25904640545 264 |
-2 25908241813 0 |
-6 25908242514 280 |
-3 25908244541 280 |
-8 25908247789 280 |
-4 25908248479 264 |
-2 25908289014 0 |
-3 25908292033 296 |
-8 25908314919 296 |
-4 25908315637 264 |
-2 25911918015 0 |
-3 25911918690 264 |
-2 25911963899 0 |
-3 25911966864 296 |
-8 25911989702 296 |
-4 25911990413 264 |
-2 25915638691 0 |
-3 25915641634 296 |
-8 25915664372 296 |
-4 25915665077 264 |
-2 25919313709 0 |
-3 25919316608 296 |
-8 25919339377 296 |
-4 25919340085 264 |
-2 25922988352 0 |
-3 25922991274 296 |
-8 25923013866 296 |
-4 25923014571 264 |
-2 25926615844 0 |
-6 25926616545 280 |
-3 25926618601 280 |
-8 25926622079 280 |
-4 25926622769 264 |
-2 25926663441 0 |
-3 25926666495 296 |
-8 25926689426 296 |
-4 25926690150 264 |
-2 25930292129 0 |
-3 25930292804 264 |
-2 25930338013 0 |
-3 25930340967 296 |
-8 25930363750 296 |
-4 25930364471 264 |
-2 25934013102 0 |
-3 25934016024 296 |
-8 25934038776 296 |
-4 25934039486 264 |
-2 25937687758 0 |
-3 25937690651 296 |
-8 25937713382 296 |
-4 25937714089 264 |
-2 25941362719 0 |
-3 25941365640 296 |
-8 25941388238 296 |
-4 25941388949 264 |
-2 25944989848 0 |
-6 25944990553 280 |
-3 25944992605 280 |
-8 25944995846 280 |
-4 25944996536 264 |
-2 25945037445 0 |
-3 25945040504 296 |
-8 25945063394 296 |
-4 25945064112 264 |
-2 25948666122 0 |
-3 25948666797 264 |
-2 25948712375 0 |
-3 25948715340 296 |
-8 25948738202 296 |
-4 25948738918 264 |
-2 25952387194 0 |
-3 25952390138 296 |
-8 25952412869 296 |
-4 25952413569 264 |
-2 25956061843 0 |
-3 25956064748 296 |
-8 25956087495 296 |
-4 25956088203 264 |
-2 25959736833 0 |
-3 25959739755 296 |
-8 25959762363 296 |
-4 25959763068 264 |
-2 25963363973 0 |
-6 25963364674 280 |
-3 25963366718 280 |
-8 25963369966 280 |
-4 25963370656 264 |
-2 25963411559 0 |
-3 25963414613 296 |
-8 25963437577 296 |
-4 25963438301 264 |
-2 25967040280 0 |
-3 25967040955 264 |
-2 25967086533 0 |
-3 25967089487 296 |
-8 25967112272 296 |
-4 25967112993 264 |
-2 25970761264 0 |
-3 25970764186 296 |
-8 25970786922 296 |
-4 25970787636 264 |
-2 25974436260 0 |
-3 25974439153 296 |
-8 25974461885 296 |
-4 25974462588 264 |
-2 25978110859 0 |
-3 25978113780 296 |
-8 25978136378 296 |
-4 25978137089 264 |
-2 25981738357 0 |
-6 25981739058 280 |
-3 25981741091 280 |
-8 25981744325 280 |
-4 25981745015 264 |
-2 25981785932 0 |
-3 25981788951 296 |
-8 25981811842 296 |
-4 25981812560 264 |
-2 25985414570 0 |
-3 25985415245 264 |
-2 25985460454 0 |
-3 25985463419 296 |
-8 25985486257 296 |
-4 25985486968 264 |
-2 25989135609 0 |
-3 25989138553 296 |
-8 25989161290 296 |
-4 25989161995 264 |
-2 25992810264 0 |
-3 25992813168 296 |
-8 25992835938 296 |
-4 25992836646 264 |
-2 25996485276 0 |
-3 25996488202 296 |
-8 25996510795 296 |
-4 25996511500 264 |
-2 26000112405 0 |
-6 26000113106 280 |
-3 26000115155 280 |
-8 26000118403 280 |
-4 26000119093 264 |
-2 26000159996 0 |
-3 26000163052 296 |
-8 26000185993 296 |
-4 26000186717 264 |
-2 26003788700 0 |
-3 26003789375 264 |
-2 26003834953 0 |
-3 26003837907 296 |
-8 26003860690 296 |
-4 26003861411 264 |
-2 26007509679 0 |
-3 26007512601 296 |
-8 26007535353 296 |
-4 26007536063 264 |
-2 26011184328 0 |
-3 26011187221 296 |
-8 26011209954 296 |
-4 26011210661 264 |
-2 26014859291 0 |
-3 26014862212 296 |
-8 26014884810 296 |
-4 26014885521 264 |
-2 26018486420 0 |
-6 26018487125 280 |
-3 26018489153 280 |
-8 26018492396 280 |
-4 26018493086 264 |
-2 26018533995 0 |
-3 26018537054 296 |
-8 26018559949 296 |
-4 26018560667 264 |
-2 26022162677 0 |
-3 26022163352 264 |
-2 26022208930 0 |
-3 26022211901 296 |
-8 26022234757 296 |
-4 26022235468 264 |
-2 26025883749 0 |
-3 26025886693 296 |
-8 26025909442 296 |
-4 26025910142 264 |
-2 26029558420 0 |
-3 26029561320 296 |
-8 26029584067 296 |
-4 26029584775 264 |
-2 26033233405 0 |
-3 26033236331 296 |
-8 26033258924 296 |
-4 26033259629 264 |
-2 26036860534 0 |
-6 26036861235 280 |
-3 26036863284 280 |
-8 26036866583 280 |
-4 26036867273 264 |
-2 26036908125 0 |
-3 26036911179 296 |
-8 26036934158 296 |
-4 26036934882 264 |
-2 26040536857 0 |
-3 26040537532 264 |
-2 26040583110 0 |
-3 26040586064 296 |
-8 26040608849 296 |
-4 26040609570 264 |
-2 26044257841 0 |
-3 26044260763 296 |
-8 26044283499 296 |
-4 26044284209 264 |
-2 26047932837 0 |
-3 26047935731 296 |
-8 26047958462 296 |
-4 26047959169 264 |
-2 26051607436 0 |
-3 26051610357 296 |
-8 26051632976 296 |
-4 26051633686 264 |
-2 26055234956 0 |
-6 26055235657 280 |
-3 26055237695 280 |
-8 26055240943 280 |
-4 26055241645 264 |
-2 26055282536 0 |
-3 26055285595 296 |
-8 26055308496 296 |
-4 26055309214 264 |
-2 26058911224 0 |
-3 26058911899 264 |
-2 26058957108 0 |
-3 26058960073 296 |
-8 26058982911 296 |
-4 26058983622 264 |
-2 26062631900 0 |
-3 26062634844 296 |
-8 26062657581 296 |
-4 26062658286 264 |
-2 26066306918 0 |
-3 26066309817 296 |
-8 26066332586 296 |
-4 26066333294 264 |
-2 26069981561 0 |
-3 26069984482 296 |
-8 26070007080 296 |
-4 26070007785 264 |
-2 26073609059 0 |
-6 26073609761 280 |
-3 26073611815 280 |
-8 26073615063 280 |
-4 26073615753 264 |
-2 26073656656 0 |
-3 26073659709 296 |
-8 26073682647 296 |
-4 26073683371 264 |
-2 26077285354 0 |
-3 26077286029 264 |
-2 26077331239 0 |
-3 26077334193 296 |
-8 26077356978 296 |
-4 26077357699 264 |
-2 26081006333 0 |
-3 26081009255 296 |
-8 26081032007 296 |
-4 26081032717 264 |
-2 26084680982 0 |
-3 26084683875 296 |
-8 26084706613 296 |
-4 26084707316 264 |
-2 26088355950 0 |
-3 26088358871 296 |
-8 26088381475 296 |
-4 26088382186 264 |
-2 26091983085 0 |
-6 26091983786 280 |
-3 26091985814 280 |
-8 26091989042 280 |
-4 26091989732 264 |
-2 26092030654 0 |
-3 26092033696 296 |
-8 26092056592 296 |
-4 26092057310 264 |
-2 26095659320 0 |
-3 26095659995 264 |
-2 26095705573 0 |
-3 26095708538 296 |
-8 26095731394 296 |
-4 26095732105 264 |
-2 26099380381 0 |
-3 26099383324 296 |
-8 26099406056 296 |
-4 26099406756 264 |
-2 26103055030 0 |
-3 26103057929 296 |
-8 26103080677 296 |
-4 26103081385 264 |
-2 26106730015 0 |
-3 26106732941 296 |
-8 26106755534 296 |
-4 26106756241 264 |
-2 26110357144 0 |
-6 26110357845 280 |
-3 26110359906 280 |
-8 26110363153 280 |
-4 26110363843 264 |
-2 26110404746 0 |
-3 26110407799 296 |
-8 26110430772 296 |
-4 26110431496 264 |
-2 26114033478 0 |
-3 26114034153 264 |
-2 26114079731 0 |
-3 26114082685 296 |
-8 26114105470 296 |
-4 26114106191 264 |
-2 26117754462 0 |
-3 26117757384 296 |
-8 26117780120 296 |
-4 26117780830 264 |
-2 26121429458 0 |
-3 26121432352 296 |
-8 26121455083 296 |
-4 26121455790 264 |
-2 26125104057 0 |
-3 26125106978 296 |
-8 26125129597 296 |
-4 26125130307 264 |
-2 26128731577 0 |
-6 26128732278 280 |
-3 26128734306 280 |
-8 26128737553 280 |
-4 26128738255 264 |
-2 26128779146 0 |
-3 26128782188 296 |
-8 26128805084 296 |
-4 26128805802 264 |
-2 26132407812 0 |
-3 26132408487 264 |
-2 26132453696 0 |
-3 26132456662 296 |
-8 26132479499 296 |
-4 26132480225 264 |
-2 26136128488 0 |
-3 26136131443 296 |
-8 26136154180 296 |
-4 26136154885 264 |
-2 26139803517 0 |
-3 26139806416 296 |
-8 26139829185 296 |
-4 26139829899 264 |
-2 26143478160 0 |
-3 26143481081 296 |
-8 26143503674 296 |
-4 26143504379 264 |
-2 26147105652 0 |
-6 26147106357 280 |
-3 26147108413 280 |
-8 26147111662 280 |
-4 26147112352 264 |
-2 26147153255 0 |
-3 26147156308 296 |
-8 26147179221 296 |
-4 26147179945 264 |
-2 26150781942 0 |
-3 26150782617 264 |
-2 26150827827 0 |
-3 26150830781 296 |
-8 26150853599 296 |
-4 26150854320 264 |
-2 26154502954 0 |
-3 26154505880 296 |
-8 26154528634 296 |
-4 26154529344 264 |
-2 26158177609 0 |
-3 26158180502 296 |
-8 26158203251 296 |
-4 26158203958 264 |
-2 26161852588 0 |
-3 26161855509 296 |
-8 26161878090 296 |
-4 26161878801 264 |
-2 26165479700 0 |
-6 26165480401 280 |
-3 26165482429 280 |
-8 26165485676 280 |
-4 26165486366 264 |
-2 26165527270 0 |
-3 26165530285 296 |
-8 26165553180 296 |
-4 26165553898 264 |
-2 26169155908 0 |
-3 26169156583 264 |
-2 26169202161 0 |
-3 26169205126 296 |
-8 26169227986 296 |
-4 26169228701 264 |
-2 26172876975 0 |
-3 26172879918 296 |
-8 26172902655 296 |
-4 26172903360 264 |
-2 26176551629 0 |
-3 26176554528 296 |
-8 26176577281 296 |
-4 26176577989 264 |
-2 26180226619 0 |
-3 26180229540 296 |
-8 26180252133 296 |
-4 26180252838 264 |
-2 26183853743 0 |
-6 26183854444 280 |
-3 26183856505 280 |
-8 26183859848 280 |
-4 26183860538 264 |
-2 26183901345 0 |
-3 26183904398 296 |
-8 26183927359 296 |
-4 26183928083 264 |
-2 26187530066 0 |
-3 26187530741 264 |
-2 26187576319 0 |
-3 26187579273 296 |
-8 26187602058 296 |
-4 26187602779 264 |
-2 26191251050 0 |
-3 26191253972 296 |
-8 26191276708 296 |
-4 26191277418 264 |
-2 26194926046 0 |
-3 26194928940 296 |
-8 26194951671 296 |
-4 26194952374 264 |
-2 26198600645 0 |
-3 26198603566 296 |
-8 26198626192 296 |
-4 26198626903 264 |
-2 26202228170 0 |
-6 26202228871 280 |
-3 26202230921 280 |
-8 26202234161 280 |
-4 26202234869 264 |
-2 26202275762 0 |
-3 26202278897 296 |
-8 26202301793 296 |
-4 26202302511 264 |
-2 26205904521 0 |
-3 26205905196 264 |
-2 26205950405 0 |
-3 26205953365 296 |
-8 26205976221 296 |
-4 26205976947 264 |
-2 26209625208 0 |
-3 26209628251 296 |
-8 26209650989 296 |
-4 26209651694 264 |
-2 26213299967 0 |
-3 26213302893 296 |
-8 26213325603 296 |
-4 26213326311 264 |
-2 26216974941 0 |
-3 26216977862 296 |
-8 26217000410 296 |
-4 26217001115 264 |
-2 26220602389 0 |
-6 26220603091 280 |
-3 26220605145 280 |
-8 26220608398 280 |
-4 26220609101 264 |
-2 26220649617 0 |
-3 26220652676 296 |
-8 26220675552 296 |
-4 26220676276 264 |
-2 26224278640 0 |
-3 26224279315 264 |
-2 26224324525 0 |
-3 26224327479 296 |
-8 26224350234 296 |
-4 26224350955 264 |
-2 26227999586 0 |
-3 26228002508 296 |
-8 26228025211 296 |
-4 26228025921 264 |
-2 26231674186 0 |
-3 26231677079 296 |
-8 26231699762 296 |
-4 26231700465 264 |
-2 26235349099 0 |
-3 26235352020 296 |
-8 26235374568 296 |
-4 26235375279 264 |
-2 26238976547 0 |
-6 26238977259 280 |
-3 26238979287 280 |
-8 26238982521 280 |
-4 26238983211 264 |
-2 26239023759 0 |
-3 26239026818 296 |
-8 26239049669 296 |
-4 26239050387 264 |
-2 26242652765 0 |
-3 26242653440 264 |
-2 26242698650 0 |
-3 26242701615 296 |
-8 26242724427 296 |
-4 26242725138 264 |
-2 26246373414 0 |
-3 26246376358 296 |
-8 26246399089 296 |
-4 26246399789 264 |
-2 26250048426 0 |
-3 26250051325 296 |
-8 26250074073 296 |
-4 26250074781 264 |
-2 26253723048 0 |
-3 26253725974 296 |
-8 26253748567 296 |
-4 26253749272 264 |
-2 26257350545 0 |
-6 26257351246 280 |
-3 26257353307 280 |
-8 26257356555 280 |
-4 26257357245 264 |
-2 26257398148 0 |
-3 26257401206 296 |
-8 26257424178 296 |
-4 26257424902 264 |
-2 26261026885 0 |
-3 26261027560 264 |
-2 26261072769 0 |
-3 26261075723 296 |
-8 26261098506 296 |
-4 26261099227 264 |
-2 26264747858 0 |
-3 26264750780 296 |
-8 26264773516 296 |
-4 26264774226 264 |
-2 26268422491 0 |
-3 26268425384 296 |
-8 26268448116 296 |
-4 26268448819 264 |
-2 26272097453 0 |
-3 26272100374 296 |
-8 26272122972 296 |
-4 26272123683 264 |
-2 26275724582 0 |
-6 26275725287 280 |
-3 26275727339 280 |
-8 26275730573 280 |
-4 26275731263 264 |
-2 26275772179 0 |
-3 26275775200 296 |
-8 26275798095 296 |
-4 26275798813 264 |
-2 26279400823 0 |
-3 26279401498 264 |
-2 26279447076 0 |
-3 26279450041 296 |
-8 26279472884 296 |
-4 26279473600 264 |
-2 26283121873 0 |
-3 26283124816 296 |
-8 26283147559 296 |
-4 26283148264 264 |
-2 26286796533 0 |
-3 26286799433 296 |
-8 26286822196 296 |
-4 26286822904 264 |
-2 26290471534 0 |
-3 26290474455 296 |
-8 26290497064 296 |
-4 26290497769 264 |
-2 26294098674 0 |
-6 26294099375 280 |
-3 26294101424 280 |
-8 26294104673 280 |
-4 26294105363 264 |
-2 26294146266 0 |
-3 26294149313 296 |
-8 26294172263 296 |
-4 26294172987 264 |
-2 26297774970 0 |
-3 26297775645 264 |
-2 26297821223 0 |
-3 26297824177 296 |
-8 26297846962 296 |
-4 26297847683 264 |
-2 26301495954 0 |
-3 26301498876 296 |
-8 26301521632 296 |
-4 26301522342 264 |
-2 26305170972 0 |
-3 26305173865 296 |
-8 26305196597 296 |
-4 26305197300 264 |
-2 26308845571 0 |
-3 26308848492 296 |
-8 26308871090 296 |
-4 26308871801 264 |
-2 26312473069 0 |
-6 26312473770 280 |
-3 26312475808 280 |
-8 26312479022 280 |
-4 26312479706 264 |
-2 26312520649 0 |
-3 26312523708 296 |
-8 26312546593 296 |
-4 26312547311 264 |
-2 26316149320 0 |
-3 26316149995 264 |
-2 26316195205 0 |
-3 26316198170 296 |
-8 26316221026 296 |
-4 26316221737 264 |
-2 26319870013 0 |
-3 26319872957 296 |
-8 26319895688 296 |
-4 26319896388 264 |
-2 26323545025 0 |
-3 26323547925 296 |
-8 26323570672 296 |
-4 26323571380 264 |
-2 26327219647 0 |
-3 26327222573 296 |
-8 26327245166 296 |
-4 26327245871 264 |
-2 26330847144 0 |
-6 26330847845 280 |
-3 26330849923 280 |
-8 26330853278 280 |
-4 26330853968 264 |
-2 26330894763 0 |
-3 26330897810 296 |
-8 26330920782 296 |
-4 26330921506 264 |
-2 26334523498 0 |
-3 26334524175 264 |
-2 26334569385 0 |
-3 26334572339 296 |
-8 26334595124 296 |
-4 26334595845 264 |
-2 26338244479 0 |
-3 26338247401 296 |
-8 26338270137 296 |
-4 26338270847 264 |
-2 26341919112 0 |
-3 26341922006 296 |
-8 26341944737 296 |
-4 26341945440 264 |
-2 26345594074 0 |
-3 26345596995 296 |
-8 26345619614 296 |
-4 26345620324 264 |
-2 26349221225 0 |
-6 26349221930 280 |
-3 26349223960 280 |
-8 26349227207 280 |
-4 26349227909 264 |
-2 26349268800 0 |
-3 26349271859 296 |
-8 26349294755 296 |
-4 26349295473 264 |
-2 26352897482 0 |
-3 26352898157 264 |
-2 26352943735 0 |
-3 26352946706 296 |
-8 26352969544 296 |
-4 26352970255 264 |
-2 26356618533 0 |
-3 26356621481 296 |
-8 26356644230 296 |
-4 26356644935 264 |
-2 26360293204 0 |
-3 26360296103 296 |
-8 26360318872 296 |
-4 26360319580 264 |
-2 26363968210 0 |
-3 26363971131 296 |
-8 26363993724 296 |
-4 26363994429 264 |
-2 26367595334 0 |
-6 26367596039 280 |
-3 26367598085 280 |
-8 26367601332 280 |
-4 26367602022 264 |
-2 26367642925 0 |
-3 26367645979 296 |
-8 26367668910 296 |
-4 26367669638 264 |
-2 26371271613 0 |
-3 26371272288 264 |
-2 26371317866 0 |
-3 26371320820 296 |
-8 26371343605 296 |
-4 26371344326 264 |
-2 26374992597 0 |
-3 26374995519 296 |
-8 26375018271 296 |
-4 26375018981 264 |
-2 26378667609 0 |
-3 26378670502 296 |
-8 26378693235 296 |
-4 26378693938 264 |
-2 26382342209 0 |
-3 26382345130 296 |
-8 26382367728 296 |
-4 26382368439 264 |
-2 26385969706 0 |
-6 26385970407 280 |
-3 26385972440 280 |
-8 26385975757 280 |
-4 26385976447 264 |
-2 26386017281 0 |
-3 26386020340 296 |
-8 26386043236 296 |
-4 26386043954 264 |
-2 26389645963 0 |
-3 26389646638 264 |
-2 26389691848 0 |
-3 26389694813 296 |
-8 26389717669 296 |
-4 26389718380 264 |
-2 26393366656 0 |
-3 26393369600 296 |
-8 26393392331 296 |
-4 26393393031 264 |
-2 26397041668 0 |
-3 26397044568 296 |
-8 26397067315 296 |
-4 26397068023 264 |
-2 26400716290 0 |
-3 26400719217 296 |
-8 26400741809 296 |
-4 26400742514 264 |
-2 26404343787 0 |
-6 26404344489 280 |
-3 26404346560 280 |
-8 26404349808 280 |
-4 26404350498 264 |
-2 26404391401 0 |
-3 26404394459 296 |
-8 26404417424 296 |
-4 26404418148 264 |
-2 26408020127 0 |
-3 26408020802 264 |
-2 26408066011 0 |
-3 26408068965 296 |
-8 26408091748 296 |
-4 26408092469 264 |
-2 26411740737 0 |
-3 26411743659 296 |
-8 26411766395 296 |
-4 26411767105 264 |
-2 26415415733 0 |
-3 26415418627 296 |
-8 26415441364 296 |
-4 26415442071 264 |
-2 26419090701 0 |
-3 26419093622 296 |
-8 26419116241 296 |
-4 26419116957 264 |
-2 26422717852 0 |
-6 26422718557 280 |
-3 26422720580 280 |
-8 26422723828 280 |
-4 26422724530 264 |
-2 26422765421 0 |
-3 26422768480 296 |
-8 26422791403 296 |
-4 26422792121 264 |
-2 26426394131 0 |
-3 26426394806 264 |
-2 26426440384 0 |
-3 26426443349 296 |
-8 26426466187 296 |
-4 26426466898 264 |
-2 26430115176 0 |
-3 26430118124 296 |
-8 26430140862 296 |
-4 26430141567 264 |
-2 26433789836 0 |
-3 26433792740 296 |
-8 26433815510 296 |
-4 26433816218 264 |
-2 26437464848 0 |
-3 26437467774 296 |
-8 26437490367 296 |
-4 26437491072 264 |
-2 26441091977 0 |
-6 26441092678 280 |
-3 26441094733 280 |
-8 26441097981 280 |
-4 26441098671 264 |
-2 26441139574 0 |
-3 26441142632 296 |
-8 26441165564 296 |
-4 26441166288 264 |
-2 26444768267 0 |
-3 26444768942 264 |
-2 26444814520 0 |
-3 26444817474 296 |
-8 26444840259 296 |
-4 26444840980 264 |
-2 26448489251 0 |
-3 26448492173 296 |
-8 26448514925 296 |
-4 26448515635 264 |
-2 26452163900 0 |
-3 26452166793 296 |
-8 26452189526 296 |
-4 26452190233 264 |
-2 26455838863 0 |
-3 26455841784 296 |
-8 26455864382 296 |
-4 26455865093 264 |
-2 26459466360 0 |
-6 26459467061 280 |
-3 26459469084 280 |
-8 26459472589 280 |
-4 26459473279 264 |
-2 26459513556 0 |
-3 26459516615 296 |
-8 26459539510 296 |
-4 26459540228 264 |
-2 26463142606 0 |
-3 26463143281 264 |
-2 26463188491 0 |
-3 26463191456 296 |
-8 26463214312 296 |
-4 26463215023 264 |
-2 26466863299 0 |
-3 26466866243 296 |
-8 26466888974 296 |
-4 26466889674 264 |
-2 26470538311 0 |
-3 26470541211 296 |
-8 26470563958 296 |
-4 26470564666 264 |
-2 26474212933 0 |
-3 26474215859 296 |
-8 26474238452 296 |
-4 26474239157 264 |
-2 26477840430 0 |
-6 26477841131 280 |
-3 26477843180 280 |
-8 26477846442 280 |
-4 26477847132 264 |
-2 26477888022 0 |
-3 26477891080 296 |
-8 26477914045 296 |
-4 26477914769 264 |
-2 26481516748 0 |
-3 26481517423 264 |
-2 26481562632 0 |
-3 26481565586 296 |
-8 26481588377 296 |
-4 26481589098 264 |
-2 26485237369 0 |
-3 26485240295 296 |
-8 26485263032 296 |
-4 26485263742 264 |
-2 26488912370 0 |
-3 26488915263 296 |
-8 26488938012 296 |
-4 26488938719 264 |
-2 26492587349 0 |
-3 26492590270 296 |
-8 26492612868 296 |
-4 26492613579 264 |
-2 26496214478 0 |
-6 26496215179 280 |
-3 26496217202 280 |
-8 26496220449 280 |
-4 26496221139 264 |
-2 26496262042 0 |
-3 26496265063 296 |
-8 26496287942 296 |
-4 26496288660 264 |
-2 26499890669 0 |
-3 26499891344 264 |
-2 26499936922 0 |
-3 26499939887 296 |
-8 26499962725 296 |
-4 26499963436 264 |
-2 26503611714 0 |
-3 26503614658 296 |
-8 26503637395 296 |
-4 26503638100 264 |
-2 26507286369 0 |
-3 26507289273 296 |
-8 26507312043 296 |
-4 26507312751 264 |
-2 26510961381 0 |
-3 26510964307 296 |
-8 26510986900 296 |
-4 26510987605 264 |
-2 26514588510 0 |
-6 26514589211 280 |
-3 26514591266 280 |
-8 26514594514 280 |
-4 26514595204 264 |
-2 26514636107 0 |
-3 26514639165 296 |
-8 26514662097 296 |
-4 26514662821 264 |
-2 26518264800 0 |
-3 26518265475 264 |
-2 26518311053 0 |
-3 26518314007 296 |
-8 26518336792 296 |
-4 26518337513 264 |
-2 26521985784 0 |
-3 26521988706 296 |
-8 26522011458 296 |
-4 26522012168 264 |
-2 26525660796 0 |
-3 26525663689 296 |
-8 26525686422 296 |
-4 26525687129 264 |
-2 26529335396 0 |
-3 26529338317 296 |
-8 26529360915 296 |
-4 26529361626 264 |
-2 26532962893 0 |
-6 26532963594 280 |
-3 26532965622 280 |
-8 26532968864 280 |
-4 26532969554 264 |
-2 26533010463 0 |
-3 26533013522 296 |
-8 26533036412 296 |
-4 26533037130 264 |
-2 26536639139 0 |
-3 26536639814 264 |
-2 26536685024 0 |
-3 26536687989 296 |
-8 26536710845 296 |
-4 26536711556 264 |
-2 26540359832 0 |
-3 26540362776 296 |
-8 26540385507 296 |
-4 26540386207 264 |
-2 26544034844 0 |
-3 26544037744 296 |
-8 26544060491 296 |
-4 26544061199 264 |
-2 26547709466 0 |
-3 26547712392 296 |
-8 26547734990 296 |
-4 26547735695 264 |
-2 26551336969 0 |
-6 26551337670 280 |
-3 26551339719 280 |
-8 26551342967 280 |
-4 26551343657 264 |
-2 26551384560 0 |
-3 26551387624 296 |
-8 26551410589 296 |
-4 26551411313 264 |
-2 26555013292 0 |
-3 26555013967 264 |
-2 26555059176 0 |
-3 26555062130 296 |
-8 26555084932 296 |
-4 26555085653 264 |
-2 26558734287 0 |
-3 26558737209 296 |
-8 26558759945 296 |
-4 26558760655 264 |
-2 26562408920 0 |
-3 26562411813 296 |
-8 26562434545 296 |
-4 26562435252 264 |
-2 26566083882 0 |
-3 26566086803 296 |
-8 26566109401 296 |
-4 26566110112 264 |
-2 26569711011 0 |
-6 26569711712 280 |
-3 26569713735 280 |
-8 26569716993 280 |
-4 26569717683 264 |
-2 26569758575 0 |
-3 26569761611 296 |
-8 26569784508 296 |
-4 26569785226 264 |
-2 26573387235 0 |
-3 26573387910 264 |
-2 26573433488 0 |
-3 26573436454 296 |
-8 26573459310 296 |
-4 26573460036 264 |
-2 26577108302 0 |
-3 26577111345 296 |
-8 26577134083 296 |
-4 26577134783 264 |
-2 26580783061 0 |
-3 26580785987 296 |
-8 26580808691 296 |
-4 26580809399 264 |
-2 26584458029 0 |
-3 26584460951 296 |
-8 26584483493 296 |
-4 26584484198 264 |
-2 26588085103 0 |
-6 26588085804 280 |
-3 26588087860 280 |
-8 26588091107 280 |
-4 26588091810 264 |
-2 26588132700 0 |
-3 26588135758 296 |
-8 26588158617 296 |
-4 26588159341 264 |
-2 26591761338 0 |
-3 26591762013 264 |
-2 26591807591 0 |
-3 26591810545 296 |
-8 26591833303 296 |
-4 26591834024 264 |
-2 26595482295 0 |
-3 26595485217 296 |
-8 26595507920 296 |
-4 26595508630 264 |
-2 26599157258 0 |
-3 26599160151 296 |
-8 26599182834 296 |
-4 26599183541 264 |
-2 26602832171 0 |
-3 26602835092 296 |
-8 26602857640 296 |
-4 26602858351 264 |
-2 26606459250 0 |
-6 26606459951 280 |
-3 26606461979 280 |
-8 26606465226 280 |
-4 26606465916 264 |
-2 26606506820 0 |
-3 26606509879 296 |
-8 26606532714 296 |
-4 26606533432 264 |
-2 26610135441 0 |
-3 26610136116 264 |
-2 26610181694 0 |
-3 26610184659 296 |
-8 26610207472 296 |
-4 26610208188 264 |
-2 26613856464 0 |
-3 26613859408 296 |
-8 26613882146 296 |
-4 26613882846 264 |
-2 26617531487 0 |
-3 26617534387 296 |
-8 26617557140 296 |
-4 26617557848 264 |
-2 26621206114 0 |
-3 26621209036 296 |
-8 26621231628 296 |
-4 26621232333 264 |
-2 26624833606 0 |
-6 26624834307 280 |
-3 26624836351 280 |
-8 26624839712 280 |
-4 26624840402 264 |
-2 26624881192 0 |
-3 26624884246 296 |
-8 26624907210 296 |
-4 26624907934 264 |
-2 26628509913 0 |
-3 26628510588 264 |
-2 26628555797 0 |
-3 26628558751 296 |
-8 26628581534 296 |
-4 26628582255 264 |
-2 26632230886 0 |
-3 26632233808 296 |
-8 26632256544 296 |
-4 26632257254 264 |
-2 26635905519 0 |
-3 26635908412 296 |
-8 26635931144 296 |
-4 26635931851 264 |
-2 26639580481 0 |
-3 26639583402 296 |
-8 26639606000 296 |
-4 26639606711 264 |
-2 26643207610 0 |
-6 26643208311 280 |
-3 26643210344 280 |
-8 26643213592 280 |
-4 26643214282 264 |
-2 26643255185 0 |
-3 26643258206 296 |
-8 26643281085 296 |
-4 26643281803 264 |
-2 26646883812 0 |
-3 26646884487 264 |
-2 26646930065 0 |
-3 26646933030 296 |
-8 26646955868 296 |
-4 26646956579 264 |
-2 26650604857 0 |
-3 26650607801 296 |
-8 26650630538 296 |
-4 26650631243 264 |
-2 26654279875 0 |
-3 26654282779 296 |
-8 26654305549 296 |
-4 26654306257 264 |
-2 26657954524 0 |
-3 26657957450 296 |
-8 26657980043 296 |
-4 26657980748 264 |
-2 26661582021 0 |
-6 26661582722 280 |
-3 26661584766 280 |
-8 26661588014 280 |
-4 26661588704 264 |
-2 26661629239 0 |
-3 26661632297 296 |
-8 26661655237 296 |
-4 26661655961 264 |
-2 26665258311 0 |
-3 26665258986 264 |
-2 26665304196 0 |
-3 26665307150 296 |
-8 26665329935 296 |
-4 26665330656 264 |
-2 26668978927 0 |
-3 26668981849 296 |
-8 26669004601 296 |
-4 26669005311 264 |
-2 26672653939 0 |
-3 26672656832 296 |
-8 26672679565 296 |
-4 26672680272 264 |
-2 26676328539 0 |
-3 26676331460 296 |
-8 26676354058 296 |
-4 26676354769 264 |
-2 26679956036 0 |
-6 26679956737 280 |
-3 26679958765 280 |
-8 26679962007 280 |
-4 26679962697 264 |
-2 26680003606 0 |
-3 26680006665 296 |
-8 26680029555 296 |
-4 26680030273 264 |
-2 26683632282 0 |
-3 26683632957 264 |
-2 26683678535 0 |
-3 26683681506 296 |
-8 26683704362 296 |
-4 26683705073 264 |
-2 26687353349 0 |
-3 26687356293 296 |
-8 26687379042 296 |
-4 26687379742 264 |
-2 26691028020 0 |
-3 26691030920 296 |
-8 26691053667 296 |
-4 26691054375 264 |
-2 26694703005 0 |
-3 26694705931 296 |
-8 26694728524 296 |
-4 26694729229 264 |
-2 26698330134 0 |
-6 26698330835 280 |
-3 26698332884 280 |
-8 26698336132 280 |
-4 26698336822 264 |
-2 26698377725 0 |
-3 26698380779 296 |
-8 26698403748 296 |
-4 26698404472 264 |
-2 26702006446 0 |
-3 26702007121 264 |
-2 26702052330 0 |
-3 26702055284 296 |
-8 26702078067 296 |
-4 26702078788 264 |
-2 26705727419 0 |
-3 26705730341 296 |
-8 26705753077 296 |
-4 26705753787 264 |
-2 26709402052 0 |
-3 26709404945 296 |
-8 26709427677 296 |
-4 26709428384 264 |
-2 26713077014 0 |
-3 26713079935 296 |
-8 26713102533 296 |
-4 26713103244 264 |
-2 26716704143 0 |
-6 26716704844 280 |
-3 26716706877 280 |
-8 26716710125 280 |
-4 26716710815 264 |
-2 26716751718 0 |
-3 26716754739 296 |
-8 26716777618 296 |
-4 26716778336 264 |
-2 26720380345 0 |
-3 26720381020 264 |
-2 26720426598 0 |
-3 26720429563 296 |
-8 26720452401 296 |
-4 26720453112 264 |
-2 26724101390 0 |
-3 26724104334 296 |
-8 26724127071 296 |
-4 26724127776 264 |
-2 26727776408 0 |
-3 26727779312 296 |
-8 26727802082 296 |
-4 26727802790 264 |
-2 26731451057 0 |
-3 26731453983 296 |
-8 26731476576 296 |
-4 26731477281 264 |
-2 26735078554 0 |
-6 26735079255 280 |
-3 26735081304 280 |
-8 26735084553 280 |
-4 26735085243 264 |
-2 26735126146 0 |
-3 26735129204 296 |
-8 26735152136 296 |
-4 26735152860 264 |
-2 26738754839 0 |
-3 26738755514 264 |
-2 26738800723 0 |
-3 26738803677 296 |
-8 26738826460 296 |
-4 26738827181 264 |
-2 26742475812 0 |
-3 26742478734 296 |
-8 26742501486 296 |
-4 26742502196 264 |
-2 26746150461 0 |
-3 26746153354 296 |
-8 26746176092 296 |
-4 26746176799 264 |
-2 26749825429 0 |
-3 26749828350 296 |
-8 26749850948 296 |
-4 26749851659 264 |
-2 26753452558 0 |
-6 26753453259 280 |
-3 26753455282 280 |
-8 26753458523 280 |
-4 26753459213 264 |
-2 26753500122 0 |
-3 26753503181 296 |
-8 26753526082 296 |
-4 26753526800 264 |
-2 26757128810 0 |
-3 26757129485 264 |
-2 26757175063 0 |
-3 26757178028 296 |
-8 26757200884 296 |
-4 26757201595 264 |
-2 26760849871 0 |
-3 26760852815 296 |
-8 26760875546 296 |
-4 26760876246 264 |
-2 26764524520 0 |
-3 26764527420 296 |
-8 26764550167 296 |
-4 26764550875 264 |
-2 26768199505 0 |
-3 26768202431 296 |
-8 26768225024 296 |
-4 26768225729 264 |
-2 26771826634 0 |
-6 26771827335 280 |
-3 26771829384 280 |
-8 26771832683 280 |
-4 26771833373 264 |
-2 26771874225 0 |
-3 26771877279 296 |
-8 26771900243 296 |
-4 26771900967 264 |
-2 26775502946 0 |
-3 26775503621 264 |
-2 26775549199 0 |
-3 26775552153 296 |
-8 26775574938 296 |
-4 26775575659 264 |
-2 26779223930 0 |
-3 26779226852 296 |
-8 26779249588 296 |
-4 26779250298 264 |
-2 26782898926 0 |
-3 26782901819 296 |
-8 26782924551 296 |
-4 26782925258 264 |
-2 26786573525 0 |
-3 26786576446 296 |
-8 26786599044 296 |
-4 26786599755 264 |
-2 26790201023 0 |
-6 26790201724 280 |
-3 26790203751 280 |
-8 26790206999 280 |
-4 26790207689 264 |
-2 26790248592 0 |
-3 26790251613 296 |
-8 26790274492 296 |
-4 26790275210 264 |
-2 26793877219 0 |
-3 26793877894 264 |
-2 26793923104 0 |
-3 26793926069 296 |
-8 26793948907 296 |
-4 26793949618 264 |
-2 26797598259 0 |
-3 26797601207 296 |
-8 26797623950 296 |
-4 26797624655 264 |
-2 26801272924 0 |
-3 26801275824 296 |
-8 26801298593 296 |
-4 26801299301 264 |
-2 26804947568 0 |
-3 26804950494 296 |
-8 26804973087 296 |
-4 26804973792 264 |
-2 26808575065 0 |
-6 26808575766 280 |
-3 26808577815 280 |
-8 26808581064 280 |
-4 26808581754 264 |
-2 26808622657 0 |
-3 26808625715 296 |
-8 26808648647 296 |
-4 26808649371 264 |
-2 26812251350 0 |
-3 26812252025 264 |
-2 26812297234 0 |
-3 26812300188 296 |
-8 26812322979 296 |
-4 26812323700 264 |
-2 26815972334 0 |
-3 26815975256 296 |
-8 26815998014 296 |
-4 26815998724 264 |
-2 26819646989 0 |
-3 26819649882 296 |
-8 26819672614 296 |
-4 26819673317 264 |
-2 26823321951 0 |
-3 26823324872 296 |
-8 26823347470 296 |
-4 26823348181 264 |
-2 26826949080 0 |
-6 26826949781 280 |
-3 26826951804 280 |
-8 26826955032 280 |
-4 26826955722 264 |
-2 26826996644 0 |
-3 26826999703 296 |
-8 26827022599 296 |
-4 26827023317 264 |
-2 26830625326 0 |
-3 26830626001 264 |
-2 26830671579 0 |
-3 26830674544 296 |
-8 26830697401 296 |
-4 26830698112 264 |
-2 26834346393 0 |
-3 26834349337 296 |
-8 26834372068 296 |
-4 26834372773 264 |
-2 26838021042 0 |
-3 26838023942 296 |
-8 26838046689 296 |
-4 26838047418 264 |
-2 26841696027 0 |
-3 26841698953 296 |
-8 26841721546 296 |
-4 26841722251 264 |
-2 26845323524 0 |
-6 26845324225 280 |
-3 26845326281 280 |
-8 26845329528 280 |
-4 26845330218 264 |
-2 26845370753 0 |
-3 26845373811 296 |
-8 26845396776 296 |
-4 26845397500 264 |
-2 26848999847 0 |
-3 26849000522 264 |
-2 26849045732 0 |
-3 26849048686 296 |
-8 26849071471 296 |
-4 26849072192 264 |
-2 26852720463 0 |
-3 26852723385 296 |
-8 26852746121 296 |
-4 26852746831 264 |
-2 26856395459 0 |
-3 26856398352 296 |
-8 26856421084 296 |
-4 26856421791 264 |
-2 26860070058 0 |
-3 26860072979 296 |
-8 26860095577 296 |
-4 26860096288 264 |
-2 26863697556 0 |
-6 26863698257 280 |
-3 26863700307 280 |
-8 26863703554 280 |
-4 26863704244 264 |
-2 26863745147 0 |
-3 26863748168 296 |
-8 26863771047 296 |
-4 26863771765 264 |
-2 26867373774 0 |
-3 26867374449 264 |
-2 26867420027 0 |
-3 26867422992 296 |
-8 26867445830 296 |
-4 26867446541 264 |
-2 26871094819 0 |
-3 26871097763 296 |
-8 26871120500 296 |
-4 26871121205 264 |
-2 26874769474 0 |
-3 26874772378 296 |
-8 26874795148 296 |
-4 26874795856 264 |
-2 26878444486 0 |
-3 26878447412 296 |
-8 26878470010 296 |
-4 26878470719 264 |
-2 26882071620 0 |
-6 26882072321 280 |
-3 26882074365 280 |
-8 26882077613 280 |
-4 26882078303 264 |
-2 26882119206 0 |
-3 26882122270 296 |
-8 26882145202 296 |
-4 26882145926 264 |
-2 26885747905 0 |
-3 26885748580 264 |
-2 26885794158 0 |
-3 26885797112 296 |
-8 26885819911 296 |
-4 26885820632 264 |
-2 26889468900 0 |
-3 26889471822 296 |
-8 26889494574 296 |
-4 26889495284 264 |
-2 26893143549 0 |
-3 26893146442 296 |
-8 26893169175 296 |
-4 26893169882 264 |
-2 26896818512 0 |
-3 26896821433 296 |
-8 26896844031 296 |
-4 26896844742 264 |
-2 26900445641 0 |
-6 26900446342 280 |
-3 26900448369 280 |
-8 26900451611 280 |
-4 26900452301 264 |
-2 26900493210 0 |
-3 26900496269 296 |
-8 26900519165 296 |
-4 26900519883 264 |
-2 26904121892 0 |
-3 26904122567 264 |
-2 26904168145 0 |
-3 26904171110 296 |
-8 26904193967 296 |
-4 26904194678 264 |
-2 26907842959 0 |
-3 26907845903 296 |
-8 26907868634 296 |
-4 26907869334 264 |
-2 26911517971 0 |
-3 26911520871 296 |
-8 26911543618 296 |
-4 26911544326 264 |
-2 26915192593 0 |
-3 26915195519 296 |
-8 26915218112 296 |
-4 26915218817 264 |
-2 26918820090 0 |
-6 26918820791 280 |
-3 26918822847 280 |
-8 26918826228 280 |
-4 26918826918 264 |
-2 26918867319 0 |
-3 26918870377 296 |
-8 26918893342 296 |
-4 26918894066 264 |
-2 26922496413 0 |
-3 26922497088 264 |
-2 26922542298 0 |
-3 26922545252 296 |
-8 26922568037 296 |
-4 26922568758 264 |
-2 26926217029 0 |
-3 26926219951 296 |
-8 26926242687 296 |
-4 26926243397 264 |
-2 26929892025 0 |
-3 26929894918 296 |
-8 26929917650 296 |
-4 26929918357 264 |
-2 26933566624 0 |
-3 26933569545 296 |
-8 26933592143 296 |
-4 26933592854 264 |
-2 26937194122 0 |
-6 26937194823 280 |
-3 26937196873 280 |
-8 26937200131 280 |
-4 26937200821 264 |
-2 26937241713 0 |
-3 26937244749 296 |
-8 26937267640 296 |
-4 26937268358 264 |
-2 26940870368 0 |
-3 26940871043 264 |
-2 26940916621 0 |
-3 26940919585 296 |
-8 26940942442 296 |
-4 26940943168 264 |
-2 26944591429 0 |
-3 26944594472 296 |
-8 26944617221 296 |
-4 26944617921 264 |
-2 26948266199 0 |
-3 26948269125 296 |
-8 26948291829 296 |
-4 26948292543 264 |
-2 26951940804 0 |
-3 26951943726 296 |
-8 26951966268 296 |
-4 26951966973 264 |
-2 26955568247 0 |
-6 26955568948 280 |
-3 26955570997 280 |
-8 26955574245 280 |
-4 26955574948 264 |
-2 26955615838 0 |
-3 26955618896 296 |
-8 26955641755 296 |
-4 26955642479 264 |
-2 26959244476 0 |
-3 26959245151 264 |
-2 26959290729 0 |
-3 26959293683 296 |
-8 26959316441 296 |
-4 26959317162 264 |
-2 26962965433 0 |
-3 26962968355 296 |
-8 26962991058 296 |
-4 26962991768 264 |
-2 26966640396 0 |
-3 26966643289 296 |
-8 26966665972 296 |
-4 26966666679 264 |
-2 26970314946 0 |
-3 26970317867 296 |
-8 26970340415 296 |
-4 26970341126 264 |
-2 26973942394 0 |
-6 26973943095 280 |
-3 26973945128 280 |
-8 26973948375 280 |
-4 26973949065 264 |
-2 26973989969 0 |
-3 26973993028 296 |
-8 26974015863 296 |
-4 26974016581 264 |
-2 26977618590 0 |
-3 26977619265 264 |
-2 26977664843 0 |
-3 26977667808 296 |
-8 26977690621 296 |
-4 26977691332 264 |
-2 26981339613 0 |
-3 26981342557 296 |
-8 26981365288 296 |
-4 26981365988 264 |
-2 26985014262 0 |
-3 26985017162 296 |
-8 26985039909 296 |
-4 26985040617 264 |
-2 26988689247 0 |
-3 26988692173 296 |
-8 26988714766 296 |
-4 26988715471 264 |
-2 26992316376 0 |
-6 26992317077 280 |
-3 26992319126 280 |
-8 26992322374 280 |
-4 26992323064 264 |
-2 26992363967 0 |
-3 26992367021 296 |
-8 26992389999 296 |
-4 26992390723 264 |
-2 26995992704 0 |
-3 26995993379 264 |
-2 26996038957 0 |
-3 26996041911 296 |
-8 26996064694 296 |
-4 26996065415 264 |
-2 26999713683 0 |
-3 26999716605 296 |
-8 26999739341 296 |
-4 26999740051 264 |
-2 27003388679 0 |
-3 27003391572 296 |
-8 27003414304 296 |
-4 27003415011 264 |
-2 27007063278 0 |
-3 27007066199 296 |
-8 27007088797 296 |
-4 27007089508 264 |
-2 27010690776 0 |
-6 27010691477 280 |
-3 27010693527 280 |
-8 27010696774 280 |
-4 27010697464 264 |
-2 27010738367 0 |
-3 27010741388 296 |
-8 27010764267 296 |
-4 27010764985 264 |
-2 27014366994 0 |
-3 27014367669 264 |
-2 27014413247 0 |
-3 27014416212 296 |
-8 27014439050 296 |
-4 27014439761 264 |
-2 27018088039 0 |
-3 27018090983 296 |
-8 27018113731 296 |
-4 27018114436 264 |
-2 27021762705 0 |
-3 27021765609 296 |
-8 27021788379 296 |
-4 27021789087 264 |
-2 27025437717 0 |
-3 27025440643 296 |
-8 27025463236 296 |
-4 27025463941 264 |
-2 27029064846 0 |
-6 27029065547 280 |
-3 27029067596 280 |
-8 27029070844 280 |
-4 27029071534 264 |
-2 27029112437 0 |
-3 27029115491 296 |
-8 27029138422 296 |
-4 27029139146 264 |
-2 27032741125 0 |
-3 27032741800 264 |
-2 27032787378 0 |
-3 27032790332 296 |
-8 27032813117 296 |
-4 27032813838 264 |
-2 27036462109 0 |
-3 27036465031 296 |
-8 27036487783 296 |
-4 27036488493 264 |
-2 27040136758 0 |
-3 27040139651 296 |
-8 27040162384 296 |
-4 27040163091 264 |
-2 27043811721 0 |
-3 27043814642 296 |
-8 27043837240 296 |
-4 27043837951 264 |
-2 27047438850 0 |
-6 27047439551 280 |
-3 27047441584 280 |
-8 27047444826 280 |
-4 27047445516 264 |
-2 27047486425 0 |
-3 27047489484 296 |
-8 27047512374 296 |
-4 27047513092 264 |
-2 27051115101 0 |
-3 27051115776 264 |
-2 27051161354 0 |
-3 27051164319 296 |
-8 27051187176 296 |
-4 27051187887 264 |
-2 27054836168 0 |
-3 27054839112 296 |
-8 27054861843 296 |
-4 27054862543 264 |
-2 27058511180 0 |
-3 27058514080 296 |
-8 27058536827 296 |
-4 27058537535 264 |
-2 27062185802 0 |
-3 27062188729 296 |
-8 27062211321 296 |
-4 27062212026 264 |
-2 27065813299 0 |
-6 27065814002 280 |
-3 27065816071 280 |
-8 27065819333 280 |
-4 27065820023 264 |
-2 27065860544 0 |
-3 27065863598 296 |
-8 27065886562 296 |
-4 27065887286 264 |
-2 27069489633 0 |
-3 27069490308 264 |
-2 27069535518 0 |
-3 27069538472 296 |
-8 27069561257 296 |
-4 27069561978 264 |
-2 27073210249 0 |
-3 27073213171 296 |
-8 27073235907 296 |
-4 27073236617 264 |
-2 27076885245 0 |
-3 27076888138 296 |
-8 27076910870 296 |
-4 27076911577 264 |
-2 27080559844 0 |
-3 27080562765 296 |
-8 27080585363 296 |
-4 27080586074 264 |
-2 27084187342 0 |
-6 27084188043 280 |
-3 27084190076 280 |
-8 27084193323 280 |
-4 27084194013 264 |
-2 27084234917 0 |
-3 27084237936 296 |
-8 27084260833 296 |
-4 27084261551 264 |
-2 27087863560 0 |
-3 27087864235 264 |
-2 27087909813 0 |
-3 27087912778 296 |
-8 27087935616 296 |
-4 27087936327 264 |
-2 27091584605 0 |
-3 27091587549 296 |
-8 27091610286 296 |
-4 27091610991 264 |
-2 27095259260 0 |
-3 27095262164 296 |
-8 27095284934 296 |
-4 27095285642 264 |
-2 27098934272 0 |
-3 27098937198 296 |
-8 27098959797 296 |
-4 27098960504 264 |
-2 27102561406 0 |
-6 27102562107 280 |
-3 27102564163 280 |
-8 27102567410 280 |
-4 27102568100 264 |
-2 27102609003 0 |
-3 27102612057 296 |
-8 27102634993 296 |
-4 27102635717 264 |
-2 27106237696 0 |
-3 27106238371 264 |
-2 27106283949 0 |
-3 27106286903 296 |
-8 27106309686 296 |
-4 27106310407 264 |
-2 27109958675 0 |
-3 27109961597 296 |
-8 27109984349 296 |
-4 27109985059 264 |
-2 27113633324 0 |
-3 27113636217 296 |
-8 27113658950 296 |
-4 27113659657 264 |
-2 27117308287 0 |
-3 27117311208 296 |
-8 27117333806 296 |
-4 27117334517 264 |
-2 27120935784 0 |
-6 27120936485 280 |
-3 27120938508 280 |
-8 27120941749 280 |
-4 27120942439 264 |
-2 27120982980 0 |
-3 27120986039 296 |
-8 27121008929 296 |
-4 27121009647 264 |
-2 27124612025 0 |
-3 27124612700 264 |
-2 27124657909 0 |
-3 27124660874 296 |
-8 27124683731 296 |
-4 27124684442 264 |
-2 27128332723 0 |
-3 27128335672 296 |
-8 27128358405 296 |
-4 27128359105 264 |
-2 27132007746 0 |
-3 27132010646 296 |
-8 27132033393 296 |
-4 27132034101 264 |
-2 27135682368 0 |
-3 27135685294 296 |
-8 27135707887 296 |
-4 27135708592 264 |
-2 27139309865 0 |
-6 27139310566 280 |
-3 27139312644 280 |
-8 27139315891 280 |
-4 27139316581 264 |
-2 27139357116 0 |
-3 27139360174 296 |
-8 27139383139 296 |
-4 27139383863 264 |
-2 27142986210 0 |
-3 27142986885 264 |
-2 27143032095 0 |
-3 27143035049 296 |
-8 27143057837 296 |
-4 27143058558 264 |
-2 27146706826 0 |
-3 27146709748 296 |
-8 27146732484 296 |
-4 27146733200 264 |
-2 27150381822 0 |
-3 27150384715 296 |
-8 27150407447 296 |
-4 27150408154 264 |
-2 27154056784 0 |
-3 27154059705 296 |
-8 27154082303 296 |
-4 27154083014 264 |
-2 27157683913 0 |
-6 27157684625 280 |
-3 27157686648 280 |
-8 27157689895 280 |
-4 27157690585 264 |
-2 27157731488 0 |
-3 27157734509 296 |
-8 27157757481 296 |
-4 27157758199 264 |
-2 27161360209 0 |
-3 27161360884 264 |
-2 27161406462 0 |
-3 27161409433 296 |
-8 27161432270 296 |
-4 27161432981 264 |
-2 27165081259 0 |
-3 27165084203 296 |
-8 27165106940 296 |
-4 27165107645 264 |
-2 27168755914 0 |
-3 27168758818 296 |
-8 27168781588 296 |
-4 27168782296 264 |
-2 27172430926 0 |
-3 27172433852 296 |
-8 27172456445 296 |
-4 27172457150 264 |
-2 27176058055 0 |
-6 27176058756 280 |
-3 27176060811 280 |
-8 27176064059 280 |
-4 27176064749 264 |
-2 27176105652 0 |
-3 27176108710 296 |
-8 27176131642 296 |
-4 27176132366 264 |
-2 27179734345 0 |
-3 27179735020 264 |
-2 27179780598 0 |
-3 27179783552 296 |
-8 27179806337 296 |
-4 27179807058 264 |
-2 27183455329 0 |
-3 27183458251 296 |
-8 27183481003 296 |
-4 27183481713 264 |
-2 27187129978 0 |
-3 27187132871 296 |
-8 27187155604 296 |
-4 27187156311 264 |
-2 27190804941 0 |
-3 27190807862 296 |
-8 27190830460 296 |
-4 27190831171 264 |
-2 27194432070 0 |
-6 27194432771 280 |
-3 27194434804 280 |
-8 27194438031 280 |
-4 27194438715 264 |
-2 27194479645 0 |
-3 27194482704 296 |
-8 27194505588 296 |
-4 27194506306 264 |
-2 27198108316 0 |
-3 27198108991 264 |
-2 27198154569 0 |
-3 27198157534 296 |
-8 27198180390 296 |
-4 27198181101 264 |
-2 27201829377 0 |
-3 27201832321 296 |
-8 27201855052 296 |
-4 27201855752 264 |
-2 27205504389 0 |
-3 27205507289 296 |
-8 27205530036 296 |
-4 27205530744 264 |
-2 27209179011 0 |
-3 27209181937 296 |
-8 27209204535 296 |
-4 27209205244 264 |
-2 27212806514 0 |
-6 27212807215 280 |
-3 27212809264 280 |
-8 27212812789 280 |
-4 27212813479 264 |
-2 27212853737 0 |
-3 27212856795 296 |
-8 27212879768 296 |
-4 27212880492 264 |
-2 27216482842 0 |
-3 27216483517 264 |
-2 27216528727 0 |
-3 27216531681 296 |
-8 27216554480 296 |
-4 27216555201 264 |
-2 27220203469 0 |
-3 27220206391 296 |
-8 27220229127 296 |
-4 27220229837 264 |
-2 27223878465 0 |
-3 27223881358 296 |
-8 27223904090 296 |
-4 27223904797 264 |
-2 27227553064 0 |
-3 27227555985 296 |
-8 27227578583 296 |
-4 27227579294 264 |
-2 27231180562 0 |
-6 27231181267 280 |
-3 27231183295 280 |
-8 27231186543 280 |
-4 27231187233 264 |
-2 27231228137 0 |
-3 27231231156 296 |
-8 27231254047 296 |
-4 27231254765 264 |
-2 27234856775 0 |
-3 27234857450 264 |
-2 27234903028 0 |
-3 27234905993 296 |
-8 27234928831 296 |
-4 27234929542 264 |
-2 27238577820 0 |
-3 27238580768 296 |
-8 27238603506 296 |
-4 27238604211 264 |
-2 27242252480 0 |
-3 27242255384 296 |
-8 27242278154 296 |
-4 27242278862 264 |
-2 27245927492 0 |
-3 27245930418 296 |
-8 27245953011 296 |
-4 27245953716 264 |
-2 27249554621 0 |
-6 27249555322 280 |
-3 27249557383 280 |
-8 27249560630 280 |
-4 27249561320 264 |
-2 27249602223 0 |
-3 27249605277 296 |
-8 27249628216 296 |
-4 27249628940 264 |
-2 27253230922 0 |
-3 27253231597 264 |
-2 27253277175 0 |
-3 27253280129 296 |
-8 27253302914 296 |
-4 27253303635 264 |
-2 27256951906 0 |
-3 27256954828 296 |
-8 27256977580 296 |
-4 27256978290 264 |
-2 27260626555 0 |
-3 27260629448 296 |
-8 27260652181 296 |
-4 27260652888 264 |
-2 27264301518 0 |
-3 27264304439 296 |
-8 27264327037 296 |
-4 27264327748 264 |
-2 27267928647 0 |
-6 27267929348 280 |
-3 27267931398 280 |
-8 27267934639 280 |
-4 27267935329 264 |
-2 27267976238 0 |
-3 27267979297 296 |
-8 27268002193 296 |
-4 27268002911 264 |
-2 27271604920 0 |
-3 27271605595 264 |
-2 27271651173 0 |
-3 27271654138 296 |
-8 27271676995 296 |
-4 27271677706 264 |
-2 27275325987 0 |
-3 27275328931 296 |
-8 27275351669 296 |
-4 27275352369 264 |
-2 27279001010 0 |
-3 27279003910 296 |
-8 27279026657 296 |
-4 27279027365 264 |
-2 27282675632 0 |
-3 27282678564 296 |
-8 27282701156 296 |
-4 27282701861 264 |
-2 27286303135 0 |
-6 27286303840 280 |
-3 27286305891 280 |
-8 27286309155 280 |
-4 27286309845 264 |
-2 27286350363 0 |
-3 27286353417 296 |
-8 27286376389 296 |
-4 27286377113 264 |
-2 27289979463 0 |
-3 27289980138 264 |
-2 27290025348 0 |
-3 27290028302 296 |
-8 27290051087 296 |
-4 27290051808 264 |
-2 27293700079 0 |
-3 27293703001 296 |
-8 27293725737 296 |
-4 27293726447 264 |
-2 27297375075 0 |
-3 27297377968 296 |
-8 27297400700 296 |
-4 27297401407 264 |
-2 27301049674 0 |
-3 27301052595 296 |
-8 27301075193 296 |
-4 27301075904 264 |
-2 27304677172 0 |
-6 27304677873 280 |
-3 27304679901 280 |
-8 27304683159 280 |
-4 27304683849 264 |
-2 27304724741 0 |
-3 27304727777 296 |
-8 27304750674 296 |
-4 27304751392 264 |
-2 27308353401 0 |
-3 27308354076 264 |
-2 27308399654 0 |
-3 27308402620 296 |
-8 27308425476 296 |
-4 27308426202 264 |
-2 27312074468 0 |
-3 27312077511 296 |
-8 27312100249 296 |
-4 27312100949 264 |
-2 27315749227 0 |
-3 27315752153 296 |
-8 27315774857 296 |
-4 27315775565 264 |
-2 27319423832 0 |
-3 27319426754 296 |
-8 27319449296 296 |
-4 27319450001 264 |
-2 27323051275 0 |
-6 27323051976 280 |
-3 27323054025 280 |
-8 27323057273 280 |
-4 27323057976 264 |
-2 27323098866 0 |
-3 27323101924 296 |
-8 27323124790 296 |
-4 27323125514 264 |
-2 27326727510 0 |
-3 27326728185 264 |
-2 27326773763 0 |
-3 27326776717 296 |
-8 27326799472 296 |
-4 27326800193 264 |
-2 27330448461 0 |
-3 27330451383 296 |
-8 27330474086 296 |
-4 27330474796 264 |
-2 27334123424 0 |
-3 27334126317 296 |
-8 27334149000 296 |
-4 27334149707 264 |
-2 27337797974 0 |
-3 27337800895 296 |
-8 27337823443 296 |
-4 27337824154 264 |
-2 27341425422 0 |
-6 27341426123 280 |
-3 27341428173 280 |
-8 27341431420 280 |
-4 27341432110 264 |
-2 27341473013 0 |
-3 27341476072 296 |
-8 27341498918 296 |
-4 27341499636 264 |
-2 27345101646 0 |
-3 27345102321 264 |
-2 27345147899 0 |
-3 27345150864 296 |
-8 27345173682 296 |
-4 27345174393 264 |
-2 27348822674 0 |
-3 27348825618 296 |
-8 27348848349 296 |
-4 27348849049 264 |
-2 27352497323 0 |
-3 27352500223 296 |
-8 27352522970 296 |
-4 27352523678 264 |
-2 27356172308 0 |
-3 27356175234 296 |
-8 27356197827 296 |
-4 27356198532 264 |
-2 27359799437 0 |
-6 27359800138 280 |
-3 27359802187 280 |
-8 27359805486 280 |
-4 27359806176 264 |
-2 27359847028 0 |
-3 27359850082 296 |
-8 27359873054 296 |
-4 27359873778 264 |
-2 27363475760 0 |
-3 27363476435 264 |
-2 27363522013 0 |
-3 27363524967 296 |
-8 27363547752 296 |
-4 27363548473 264 |
-2 27367196744 0 |
-3 27367199666 296 |
-8 27367222402 296 |
-4 27367223112 264 |
-2 27370871740 0 |
-3 27370874633 296 |
-8 27370897365 296 |
-4 27370898072 264 |
-2 27374546339 0 |
-3 27374549260 296 |
-8 27374571858 296 |
-4 27374572569 264 |
-2 27378173837 0 |
-6 27378174538 280 |
-3 27378176576 280 |
-8 27378179923 280 |
-4 27378180613 264 |
-2 27378221417 0 |
-3 27378224438 296 |
-8 27378247322 296 |
-4 27378248040 264 |
-2 27381850050 0 |
-3 27381850725 264 |
-2 27381895934 0 |
-3 27381898899 296 |
-8 27381921737 296 |
-4 27381922448 264 |
-2 27385571089 0 |
-3 27385574033 296 |
-8 27385596770 296 |
-4 27385597475 264 |
-2 27389245744 0 |
-3 27389248648 296 |
-8 27389271418 296 |
-4 27389272126 264 |
-2 27392920393 0 |
-3 27392923320 296 |
-8 27392945912 296 |
-4 27392946617 264 |
-2 27396547890 0 |
-6 27396548591 280 |
-3 27396550640 280 |
-8 27396553889 280 |
-4 27396554592 264 |
-2 27396595482 0 |
-3 27396598540 296 |
-8 27396621480 296 |
-4 27396622204 264 |
-2 27400224186 0 |
-3 27400224861 264 |
-2 27400270070 0 |
-3 27400273024 296 |
-8 27400295807 296 |
-4 27400296528 264 |
-2 27403945159 0 |
-3 27403948081 296 |
-8 27403970833 296 |
-4 27403971543 264 |
-2 27407619808 0 |
-3 27407622701 296 |
-8 27407645439 296 |
-4 27407646146 264 |
-2 27411294776 0 |
-3 27411297697 296 |
-8 27411320295 296 |
-4 27411321006 264 |
-2 27414921905 0 |
-6 27414922606 280 |
-3 27414924640 280 |
-8 27414927881 280 |
-4 27414928571 264 |
-2 27414969480 0 |
-3 27414972539 296 |
-8 27414995446 296 |
-4 27414996164 264 |
-2 27418598173 0 |
-3 27418598848 264 |
-2 27418644426 0 |
-3 27418647391 296 |
-8 27418670248 296 |
-4 27418670959 264 |
-2 27422319240 0 |
-3 27422322184 296 |
-8 27422344915 296 |
-4 27422345615 264 |
-2 27425993889 0 |
-3 27425996789 296 |
-8 27426019536 296 |
-4 27426020244 264 |
-2 27429668874 0 |
-3 27429671800 296 |
-8 27429694393 296 |
-4 27429695102 264 |
-2 27433296003 0 |
-6 27433296704 280 |
-3 27433298765 280 |
-8 27433302012 280 |
-4 27433302702 264 |
-2 27433343605 0 |
-3 27433346659 296 |
-8 27433369635 296 |
-4 27433370359 264 |
-2 27436972342 0 |
-3 27436973017 264 |
-2 27437018595 0 |
-3 27437021549 296 |
-8 27437044332 296 |
-4 27437045053 264 |
-2 27440693321 0 |
-3 27440696243 296 |
-8 27440718979 296 |
-4 27440719689 264 |
-2 27444368317 0 |
-3 27444371210 296 |
-8 27444393942 296 |
-4 27444394649 264 |
-2 27448042916 0 |
-3 27448045837 296 |
-8 27448068435 296 |
-4 27448069146 264 |
-2 27451670414 0 |
-6 27451671115 280 |
-3 27451673143 280 |
-8 27451676720 280 |
-4 27451677410 264 |
-2 27451717983 0 |
-3 27451721004 296 |
-8 27451743888 296 |
-4 27451744606 264 |
-2 27455346616 0 |
-3 27455347291 264 |
-2 27455392869 0 |
-3 27455395834 296 |
-8 27455418672 296 |
-4 27455419383 264 |
-2 27459067661 0 |
-3 27459070609 296 |
-8 27459093347 296 |
-4 27459094052 264 |
-2 27462742321 0 |
-3 27462745225 296 |
-8 27462767995 296 |
-4 27462768703 264 |
-2 27466417333 0 |
-3 27466420259 296 |
-8 27466442852 296 |
-4 27466443557 264 |
-2 27470044462 0 |
-6 27470045163 280 |
-3 27470047212 280 |
-8 27470050460 280 |
-4 27470051150 264 |
-2 27470092053 0 |
-3 27470095107 296 |
-8 27470118046 296 |
-4 27470118770 264 |
-2 27473720752 0 |
-3 27473721427 264 |
-2 27473767005 0 |
-3 27473769959 296 |
-8 27473792747 296 |
-4 27473793468 264 |
-2 27477441736 0 |
-3 27477444658 296 |
-8 27477467410 296 |
-4 27477468120 264 |
-2 27481116385 0 |
-3 27481119278 296 |
-8 27481142011 296 |
-4 27481142718 264 |
-2 27484791348 0 |
-3 27484794269 296 |
-8 27484816867 296 |
-4 27484817578 264 |
-2 27488418477 0 |
-6 27488419178 280 |
-3 27488421206 280 |
-8 27488424447 280 |
-4 27488425137 264 |
-2 27488466046 0 |
-3 27488469105 296 |
-8 27488492001 296 |
-4 27488492719 264 |
-2 27492094728 0 |
-3 27492095403 264 |
-2 27492140981 0 |
-3 27492143946 296 |
-8 27492166803 296 |
-4 27492167514 264 |
-2 27495815795 0 |
-3 27495818739 296 |
-8 27495841470 296 |
-4 27495842170 264 |
-2 27499490807 0 |
-3 27499493707 296 |
-8 27499516454 296 |
-4 27499517162 264 |
-2 27503165429 0 |
-3 27503168355 296 |
-8 27503190948 296 |
-4 27503191653 264 |
-2 27506792926 0 |
-6 27506793627 280 |
-3 27506795688 280 |
-8 27506798949 280 |
-4 27506799639 264 |
-2 27506840160 0 |
-3 27506843214 296 |
-8 27506866186 296 |
-4 27506866910 264 |
-2 27510469260 0 |
-3 27510469935 264 |
-2 27510515145 0 |
-3 27510518099 296 |
-8 27510540884 296 |
-4 27510541605 264 |
-2 27514189876 0 |
-3 27514192798 296 |
-8 27514215534 296 |
-4 27514216244 264 |
-2 27517864872 0 |
-3 27517867765 296 |
-8 27517890497 296 |
-4 27517891204 264 |
-2 27521539471 0 |
-3 27521542392 296 |
-8 27521564990 296 |
-4 27521565701 264 |
-2 27525166969 0 |
-6 27525167670 280 |
-3 27525169720 280 |
-8 27525172975 280 |
-4 27525173665 264 |
-2 27525214560 0 |
-3 27525217581 296 |
-8 27525240465 296 |
-4 27525241183 264 |
-2 27528843193 0 |
-3 27528843868 264 |
-2 27528889446 0 |
-3 27528892411 296 |
-8 27528915249 296 |
-4 27528915960 264 |
-2 27532564238 0 |
-3 27532567186 296 |
-8 27532589924 296 |
-4 27532590629 264 |
-2 27536238898 0 |
-3 27536241802 296 |
-8 27536264572 296 |
-4 27536265280 264 |
-2 27539913910 0 |
-3 27539916836 296 |
-8 27539939434 296 |
-4 27539940143 264 |
-2 27543541044 0 |
-6 27543541745 280 |
-3 27543543794 280 |
-8 27543547043 280 |
-4 27543547733 264 |
-2 27543588636 0 |
-3 27543591694 296 |
-8 27543614638 296 |
-4 27543615368 264 |
-2 27547217345 0 |
-3 27547218020 264 |
-2 27547263598 0 |
-3 27547266552 296 |
-8 27547289335 296 |
-4 27547290056 264 |
-2 27550938324 0 |
-3 27550941246 296 |
-8 27550963998 296 |
-4 27550964708 264 |
-2 27554612973 0 |
-3 27554615866 296 |
-8 27554638599 296 |
-4 27554639306 264 |
-2 27558287936 0 |
-3 27558290857 296 |
-8 27558313455 296 |
-4 27558314166 264 |
-2 27561915065 0 |
-6 27561915766 280 |
-3 27561917794 280 |
-8 27561921035 280 |
-4 27561921725 264 |
-2 27561962634 0 |
-3 27561965693 296 |
-8 27561988602 296 |
-4 27561989320 264 |
-2 27565591322 0 |
-3 27565591997 264 |
-2 27565637575 0 |
-3 27565640540 296 |
-8 27565663396 296 |
-4 27565664107 264 |
-2 27569312383 0 |
-3 27569315327 296 |
-8 27569338058 296 |
-4 27569338758 264 |
-2 27572987395 0 |
-3 27572990295 296 |
-8 27573013042 296 |
-4 27573013750 264 |
-2 27576662017 0 |
-3 27576664943 296 |
-8 27576687536 296 |
-4 27576688241 264 |
-2 27580289514 0 |
-6 27580290215 280 |
-3 27580292276 280 |
-8 27580295524 280 |
-4 27580296214 264 |
-2 27580336748 0 |
-3 27580339802 296 |
-8 27580362774 296 |
-4 27580363498 264 |
-2 27583965848 0 |
-3 27583966523 264 |
-2 27584011733 0 |
-3 27584014687 296 |
-8 27584037472 296 |
-4 27584038193 264 |
-2 27587686464 0 |
-3 27587689386 296 |
-8 27587712122 296 |
-4 27587712832 264 |
-2 27591361460 0 |
-3 27591364351 296 |
-8 27591387085 296 |
-4 27591387792 264 |
-2 27595036059 0 |
-3 27595038980 296 |
-8 27595061578 296 |
-4 27595062289 264 |
-2 27598663557 0 |
-6 27598664258 280 |
-3 27598666308 280 |
-8 27598669555 280 |
-4 27598670245 264 |
-2 27598711148 0 |
-3 27598714163 296 |
-8 27598737059 296 |
-4 27598737777 264 |
-2 27602339786 0 |
-3 27602340461 264 |
-2 27602386039 0 |
-3 27602389004 296 |
-8 27602411842 296 |
-4 27602412553 264 |
-2 27606060831 0 |
-3 27606063775 296 |
-8 27606086517 296 |
-4 27606087226 264 |
-2 27609735491 0 |
-3 27609738391 296 |
-8 27609761160 296 |
-4 27609761868 264 |
-2 27613410498 0 |
-3 27613413430 296 |
-8 27613436022 296 |
-4 27613436727 264 |
-2 27617037632 0 |
-6 27617038333 280 |
-3 27617040383 280 |
-8 27617043642 280 |
-4 27617044332 264 |
-2 27617085224 0 |
-3 27617088277 296 |
-8 27617111215 296 |
-4 27617111939 264 |
-2 27620713922 0 |
-3 27620714597 264 |
-2 27620760175 0 |
-3 27620763129 296 |
-8 27620785912 296 |
-4 27620786633 264 |
-2 27624434901 0 |
-3 27624437823 296 |
-8 27624460575 296 |
-4 27624461285 264 |
-2 27628109550 0 |
-3 27628112443 296 |
-8 27628135185 296 |
-4 27628135892 264 |
-2 27631784524 0 |
-3 27631787445 296 |
-8 27631810043 296 |
-4 27631810754 264 |
-2 27635412021 0 |
-6 27635412722 280 |
-3 27635414760 280 |
-8 27635418003 280 |
-4 27635418693 264 |
-2 27635459233 0 |
-3 27635462275 296 |
-8 27635485160 296 |
-4 27635485878 264 |
-2 27639088256 0 |
-3 27639088931 264 |
-2 27639134141 0 |
-3 27639137106 296 |
-8 27639159962 296 |
-4 27639160673 264 |
-2 27642808949 0 |
-3 27642811893 296 |
-8 27642834624 296 |
-4 27642835324 264 |
-2 27646483961 0 |
-3 27646486861 296 |
-8 27646509608 296 |
-4 27646510316 264 |
-2 27650158583 0 |
-3 27650161509 296 |
-8 27650184102 296 |
-4 27650184807 264 |
-2 27653786080 0 |
-6 27653786781 280 |
-3 27653788830 280 |
-8 27653792224 280 |
-4 27653792914 264 |
-2 27653833672 0 |
-3 27653836725 296 |
-8 27653859703 296 |
-4 27653860427 264 |
-2 27657462409 0 |
-3 27657463084 264 |
-2 27657508293 0 |
-3 27657511248 296 |
-8 27657534030 296 |
-4 27657534751 264 |
-2 27661183019 0 |
-3 27661185941 296 |
-8 27661208677 296 |
-4 27661209387 264 |
-2 27664858015 0 |
-3 27664860908 296 |
-8 27664883640 296 |
-4 27664884347 264 |
-2 27668532977 0 |
-3 27668535898 296 |
-8 27668558496 296 |
-4 27668559207 264 |
-2 27672160106 0 |
-6 27672160807 280 |
-3 27672162857 280 |
-8 27672166115 280 |
-4 27672166805 264 |
-2 27672207698 0 |
-3 27672210734 296 |
-8 27672233625 296 |
-4 27672234343 264 |
-2 27675836352 0 |
-3 27675837027 264 |
-2 27675882605 0 |
-3 27675885571 296 |
-8 27675908427 296 |
-4 27675909159 264 |
-2 27679557419 0 |
-3 27679560462 296 |
-8 27679583200 296 |
-4 27679583900 264 |
-2 27683232178 0 |
-3 27683235104 296 |
-8 27683257808 296 |
-4 27683258516 264 |
-2 27686907146 0 |
-3 27686910068 296 |
-8 27686932610 296 |
-4 27686933315 264 |
-2 27690534220 0 |
-6 27690534921 280 |
-3 27690536965 280 |
-8 27690540213 280 |
-4 27690540916 264 |
-2 27690581806 0 |
-3 27690584865 296 |
-8 27690607723 296 |
-4 27690608447 264 |
-2 27694210444 0 |
-3 27694211119 264 |
-2 27694256697 0 |
-3 27694259651 296 |
-8 27694282409 296 |
-4 27694283130 264 |
-2 27697931401 0 |
-3 27697934323 296 |
-8 27697957026 296 |
-4 27697957736 264 |
-2 27701606364 0 |
-3 27701609257 296 |
-8 27701631940 296 |
-4 27701632647 264 |
-2 27705281277 0 |
-3 27705284198 296 |
-8 27705306746 296 |
-4 27705307457 264 |
-2 27708908356 0 |
-6 27708909057 280 |
-3 27708911090 280 |
-8 27708914338 280 |
-4 27708915028 264 |
-2 27708955931 0 |
-3 27708958990 296 |
-8 27708981820 296 |
-4 27708982538 264 |
-2 27712584547 0 |
-3 27712585222 264 |
-2 27712630800 0 |
-3 27712633765 296 |
-8 27712656578 296 |
-4 27712657289 264 |
-2 27716305570 0 |
-3 27716308514 296 |
-8 27716331245 296 |
-4 27716331945 264 |
-2 27719980582 0 |
-3 27719983482 296 |
-8 27720006229 296 |
-4 27720006937 264 |
-2 27723655204 0 |
-3 27723658130 296 |
-8 27723680723 296 |
-4 27723681428 264 |
-2 27727282708 0 |
-6 27727283409 280 |
-3 27727285480 280 |
-8 27727288733 280 |
-4 27727289423 264 |
-2 27727329952 0 |
-3 27727333005 296 |
-8 27727355969 296 |
-4 27727356693 264 |
-2 27730959041 0 |
-3 27730959716 264 |
-2 27731004925 0 |
-3 27731007879 296 |
-8 27731030662 296 |
-4 27731031383 264 |
-2 27734679651 0 |
-3 27734682573 296 |
-8 27734705309 296 |
-4 27734706019 264 |
-2 27738354647 0 |
-3 27738357540 296 |
-8 27738380278 296 |
-4 27738380985 264 |
-2 27742029615 0 |
-3 27742032536 296 |
-8 27742055139 296 |
-4 27742055850 264 |
-2 27745656749 0 |
-6 27745657450 280 |
-3 27745659473 280 |
-8 27745662726 280 |
-4 27745663416 264 |
-2 27745704313 0 |
-3 27745707328 296 |
-8 27745730218 296 |
-4 27745730936 264 |
-2 27749332946 0 |
-3 27749333621 264 |
-2 27749379199 0 |
-3 27749382164 296 |
-8 27749405002 296 |
-4 27749405713 264 |
-2 27753053991 0 |
-3 27753056939 296 |
-8 27753079677 296 |
-4 27753080382 264 |
-2 27756728651 0 |
-3 27756731556 296 |
-8 27756754325 296 |
-4 27756755033 264 |
-2 27760403663 0 |
-3 27760406589 296 |
-8 27760429182 296 |
-4 27760429887 264 |
-2 27764030792 0 |
-6 27764031493 280 |
-3 27764033680 280 |
-8 27764036935 280 |
-4 27764037625 264 |
-2 27764078521 0 |
-3 27764081579 296 |
-8 27764104516 296 |
-4 27764105240 264 |
-2 27767706851 0 |
-3 27767707526 264 |
-2 27767753104 0 |
-3 27767756058 296 |
-8 27767778846 296 |
-4 27767779567 264 |
-2 27771428198 0 |
-3 27771431120 296 |
-8 27771453872 296 |
-4 27771454582 264 |
-2 27775102847 0 |
-3 27775105740 296 |
-8 27775128473 296 |
-4 27775129180 264 |
-2 27778777810 0 |
-3 27778780731 296 |
-8 27778803329 296 |
-4 27778804040 264 |
-2 27782404939 0 |
-6 27782405640 280 |
-3 27782407667 280 |
-8 27782410909 280 |
-4 27782411599 264 |
-2 27782452508 0 |
-3 27782455567 296 |
-8 27782478457 296 |
-4 27782479175 264 |
-2 27786081185 0 |
-3 27786081860 264 |
-2 27786127438 0 |
-3 27786130403 296 |
-8 27786153259 296 |
-4 27786153970 264 |
-2 27789802246 0 |
-3 27789805195 296 |
-8 27789827917 296 |
-4 27789828617 264 |
-2 27793476895 0 |
-3 27793479794 296 |
-8 27793502542 296 |
-4 27793503250 264 |
-2 27797151880 0 |
-3 27797154806 296 |
-8 27797177399 296 |
-4 27797178104 264 |
-2 27800779377 0 |
-6 27800780078 280 |
-3 27800782156 280 |
-8 27800785422 280 |
-4 27800786125 264 |
-2 27800826628 0 |
-3 27800829686 296 |
-8 27800852651 296 |
-4 27800853375 264 |
-2 27804455722 0 |
-3 27804456397 264 |
-2 27804501607 0 |
-3 27804504561 296 |
-8 27804527349 296 |
-4 27804528070 264 |
-2 27808176338 0 |
-3 27808179260 296 |
-8 27808201996 296 |
-4 27808202706 264 |
-2 27811851334 0 |
-3 27811854232 296 |
-8 27811876965 296 |
-4 27811877672 264 |
-2 27815525939 0 |
-3 27815528859 296 |
-8 27815551474 296 |
-4 27815552185 264 |
-2 27819153453 0 |
-6 27819154154 280 |
-3 27819156181 280 |
-8 27819159429 280 |
-4 27819160119 264 |
-2 27819201022 0 |
-3 27819204043 296 |
-8 27819226922 296 |
-4 27819227640 264 |
-2 27822829649 0 |
-3 27822830324 264 |
-2 27822875534 0 |
-3 27822878499 296 |
-8 27822901337 296 |
-4 27822902048 264 |
-2 27826550689 0 |
-3 27826553637 296 |
-8 27826576381 296 |
-4 27826577088 264 |
-2 27830225354 0 |
-3 27830228254 296 |
-8 27830251023 296 |
-4 27830251731 264 |
-2 27833900361 0 |
-3 27833903287 296 |
-8 27833925880 296 |
-4 27833926585 264 |
-2 27837527490 0 |
-6 27837528191 280 |
-3 27837530246 280 |
-8 27837533549 280 |
-4 27837534239 264 |
-2 27837575087 0 |
-3 27837578145 296 |
-8 27837601077 296 |
-4 27837601801 264 |
-2 27841203780 0 |
-3 27841204455 264 |
-2 27841250033 0 |
-3 27841252987 296 |
-8 27841275772 296 |
-4 27841276493 264 |
-2 27844924764 0 |
-3 27844927686 296 |
-8 27844950438 296 |
-4 27844951148 264 |
-2 27848599413 0 |
-3 27848602306 296 |
-8 27848625039 296 |
-4 27848625746 264 |
-2 27852274376 0 |
-3 27852277297 296 |
-8 27852299895 296 |
-4 27852300606 264 |
-2 27855901505 0 |
-6 27855902206 280 |
-3 27855904234 280 |
-8 27855907475 280 |
-4 27855908165 264 |
-2 27855949074 0 |
-3 27855952210 296 |
-8 27855975100 296 |
-4 27855975818 264 |
-2 27859577828 0 |
-3 27859578503 264 |
-2 27859624081 0 |
-3 27859627046 296 |
-8 27859649902 296 |
-4 27859650613 264 |
-2 27863298889 0 |
-3 27863301833 296 |
-8 27863324564 296 |
-4 27863325264 264 |
-2 27866973538 0 |
-3 27866976438 296 |
-8 27866999185 296 |
-4 27866999893 264 |
-2 27870648523 0 |
-3 27870651449 296 |
-8 27870674042 296 |
-4 27870674751 264 |
-2 27874275652 0 |
-6 27874276353 280 |
-3 27874278402 280 |
-8 27874281650 280 |
-4 27874282340 264 |
-2 27874323243 0 |
-3 27874326297 296 |
-8 27874349266 296 |
-4 27874349990 264 |
-2 27877951969 0 |
-3 27877952644 264 |
-2 27877998222 0 |
-3 27878001176 296 |
-8 27878023959 296 |
-4 27878024680 264 |
-2 27881672948 0 |
-3 27881675870 296 |
-8 27881698606 296 |
-4 27881699316 264 |
-2 27885347944 0 |
-3 27885350837 296 |
-8 27885373569 296 |
-4 27885374276 264 |
-2 27889022543 0 |
-3 27889025464 296 |
-8 27889048062 296 |
-4 27889048773 264 |
-2 27892650041 0 |
-6 27892650742 280 |
-3 27892652769 280 |
-8 27892656017 280 |
-4 27892656707 264 |
-2 27892697610 0 |
-3 27892700631 296 |
-8 27892723578 296 |
-4 27892724296 264 |
-2 27896326298 0 |
-3 27896326973 264 |
-2 27896372182 0 |
-3 27896375147 296 |
-8 27896397985 296 |
-4 27896398696 264 |
-2 27900046974 0 |
-3 27900049918 296 |
-8 27900072655 296 |
-4 27900073360 264 |
-2 27903721992 0 |
-3 27903724896 296 |
-8 27903747666 296 |
-4 27903748374 264 |
-2 27907396641 0 |
-3 27907399567 296 |
-8 27907422160 296 |
-4 27907422865 264 |
-2 27911024138 0 |
-6 27911024839 280 |
-3 27911026895 280 |
-8 27911030351 280 |
-4 27911031041 264 |
-2 27911071735 0 |
-3 27911074788 296 |
-8 27911097720 296 |
-4 27911098444 264 |
-2 27914700423 0 |
-3 27914701098 264 |
-2 27914746307 0 |
-3 27914749261 296 |
-8 27914772044 296 |
-4 27914772765 264 |
-2 27918421396 0 |
-3 27918424318 296 |
-8 27918447070 296 |
-4 27918447780 264 |
-2 27922096045 0 |
-3 27922098938 296 |
-8 27922121671 296 |
-4 27922122378 264 |
-2 27925771015 0 |
-3 27925773934 296 |
-8 27925796532 296 |
-4 27925797243 264 |
-2 27929398142 0 |
-6 27929398843 280 |
-3 27929400871 280 |
-8 27929404113 280 |
-4 27929404803 264 |
-2 27929445712 0 |
-3 27929448754 296 |
-8 27929471633 296 |
-4 27929472351 264 |
-2 27933074361 0 |
-3 27933075036 264 |
-2 27933120614 0 |
-3 27933123579 296 |
-8 27933146435 296 |
-4 27933147146 264 |
-2 27936795422 0 |
-3 27936798366 296 |
-8 27936821104 296 |
-4 27936821804 264 |
-2 27940470445 0 |
-3 27940473345 296 |
-8 27940496092 296 |
-4 27940496800 264 |
-2 27944145067 0 |
-3 27944147994 296 |
-8 27944170586 296 |
-4 27944171291 264 |
-2 27947772564 0 |
-6 27947773265 280 |
-3 27947775309 280 |
-8 27947778587 280 |
-4 27947779277 264 |
-2 27947819782 0 |
-3 27947822835 296 |
-8 27947845799 296 |
-4 27947846523 264 |
-2 27951448871 0 |
-3 27951449546 264 |
-2 27951494755 0 |
-3 27951497709 296 |
-8 27951520492 296 |
-4 27951521213 264 |
-2 27955169481 0 |
-3 27955172403 296 |
-8 27955195139 296 |
-4 27955195849 264 |
-2 27958844477 0 |
-3 27958847370 296 |
-8 27958870102 296 |
-4 27958870813 264 |
-2 27962519076 0 |
-3 27962521997 296 |
-8 27962544595 296 |
-4 27962545306 264 |
-2 27966146574 0 |
-6 27966147275 280 |
-3 27966149308 280 |
-8 27966152638 280 |
-4 27966153328 264 |
-2 27966194149 0 |
-3 27966197164 296 |
-8 27966220054 296 |
-4 27966220772 264 |
-2 27969822781 0 |
-3 27969823456 264 |
-2 27969869034 0 |
-3 27969871999 296 |
-8 27969894837 296 |
-4 27969895548 264 |
-2 27973543826 0 |
-3 27973546770 296 |
-8 27973569507 296 |
-4 27973570212 264 |
-2 27977218481 0 |
-3 27977221385 296 |
-8 27977244155 296 |
-4 27977244863 264 |
-2 27980893493 0 |
-3 27980896419 296 |
-8 27980919012 296 |
-4 27980919717 264 |
-2 27984520622 0 |
-6 27984521323 280 |
-3 27984523372 280 |
-8 27984526620 280 |
-4 27984527310 264 |
-2 27984568213 0 |
-3 27984571266 296 |
-8 27984594198 296 |
-4 27984594922 264 |
-2 27988196901 0 |
-3 27988197576 264 |
-2 27988243154 0 |
-3 27988246108 296 |
-8 27988268893 296 |
-4 27988269614 264 |
-2 27991917885 0 |
-3 27991920807 296 |
-8 27991943559 296 |
-4 27991944269 264 |
-2 27995592897 0 |
-3 27995595790 296 |
-8 27995618523 296 |
-4 27995619230 264 |
-2 27999267497 0 |
-3 27999270418 296 |
-8 27999293016 296 |
-4 27999293727 264 |
-2 28002894994 0 |
-6 28002895695 280 |
-3 28002897723 280 |
-8 28002900965 280 |
-4 28002901655 264 |
-2 28002942564 0 |
-3 28002945606 296 |
-8 28002968485 296 |
-4 28002969207 264 |
-2 28006571213 0 |
-3 28006571888 264 |
-2 28006617097 0 |
-3 28006620062 296 |
-8 28006642919 296 |
-4 28006643630 264 |
-2 28010291911 0 |
-3 28010294865 296 |
-8 28010317597 296 |
-4 28010318297 264 |
-2 28013966934 0 |
-3 28013969834 296 |
-8 28013992597 296 |
-4 28013993305 264 |
-2 28017641572 0 |
-3 28017644494 296 |
-8 28017667086 296 |
-4 28017667791 264 |
-2 28021269064 0 |
-6 28021269765 280 |
-3 28021271809 280 |
-8 28021275057 280 |
-4 28021275747 264 |
-2 28021316650 0 |
-3 28021319703 296 |
-8 28021342717 296 |
-4 28021343441 264 |
-2 28024945420 0 |
-3 28024946095 264 |
-2 28024991305 0 |
-3 28024994259 296 |
-8 28025017044 296 |
-4 28025017770 264 |
-2 28028666036 0 |
-3 28028668958 296 |
-8 28028691694 296 |
-4 28028692404 264 |
-2 28032341032 0 |
-3 28032343925 296 |
-8 28032366657 296 |
-4 28032367364 264 |
-2 28036015994 0 |
-3 28036018915 296 |
-8 28036041513 296 |
-4 28036042224 264 |
-2 28039643123 0 |
-6 28039643824 280 |
-3 28039645857 280 |
-8 28039649121 280 |
-4 28039649811 264 |
-2 28039690698 0 |
-3 28039693734 296 |
-8 28039716625 296 |
-4 28039717343 264 |
-2 28043319353 0 |
-3 28043320028 264 |
-2 28043365606 0 |
-3 28043368570 296 |
-8 28043391427 296 |
-4 28043392153 264 |
-2 28047040414 0 |
-3 28047043457 296 |
-8 28047066195 296 |
-4 28047066895 264 |
-2 28050715173 0 |
-3 28050718099 296 |
-8 28050740803 296 |
-4 28050741511 264 |
-2 28054390141 0 |
-3 28054393063 296 |
-8 28054415605 296 |
-4 28054416310 264 |
-2 28058017222 0 |
-6 28058017923 280 |
-3 28058019977 280 |
-8 28058023225 280 |
-4 28058023928 264 |
-2 28058064818 0 |
-3 28058067877 296 |
-8 28058090734 296 |
-4 28058091458 264 |
-2 28061693450 0 |
-3 28061694125 264 |
-2 28061739703 0 |
-3 28061742657 296 |
-8 28061765415 296 |
-4 28061766136 264 |
-2 28065414407 0 |
-3 28065417329 296 |
-8 28065440032 296 |
-4 28065440742 264 |
-2 28069089370 0 |
-3 28069092263 296 |
-8 28069114946 296 |
-4 28069115653 264 |
-2 28072764283 0 |
-3 28072767204 296 |
-8 28072789758 296 |
-4 28072790469 264 |
-2 28076391368 0 |
-6 28076392080 280 |
-3 28076394107 280 |
-8 28076397340 280 |
-4 28076398030 264 |
-2 28076438948 0 |
-3 28076441990 296 |
-8 28076464798 296 |
-4 28076465516 264 |
-2 28080067526 0 |
-3 28080068201 264 |
-2 28080113779 0 |
-3 28080116744 296 |
-8 28080139556 296 |
-4 28080140267 264 |
-2 28083788543 0 |
-3 28083791487 296 |
-8 28083814218 296 |
-4 28083814918 264 |
-2 28087463555 0 |
-3 28087466455 296 |
-8 28087489202 296 |
-4 28087489910 264 |
-2 28091138177 0 |
-3 28091141103 296 |
-8 28091163696 296 |
-4 28091164401 264 |
-2 28094765674 0 |
-6 28094766375 280 |
-3 28094768431 280 |
-8 28094771693 280 |
-4 28094772383 264 |
-2 28094813271 0 |
-3 28094816325 296 |
-8 28094839289 296 |
-4 28094840013 264 |
-2 28098441992 0 |
-3 28098442667 264 |
-2 28098487876 0 |
-3 28098490830 296 |
-8 28098513613 296 |
-4 28098514334 264 |
-2 28102162965 0 |
-3 28102165887 296 |
-8 28102188623 296 |
-4 28102189333 264 |
-2 28105837598 0 |
-3 28105840491 296 |
-8 28105863223 296 |
-4 28105863930 264 |
-2 28109512560 0 |
-3 28109515481 296 |
-8 28109538079 296 |
-4 28109538790 264 |
-2 28113139689 0 |
-6 28113140390 280 |
-3 28113142423 280 |
-8 28113145671 280 |
-4 28113146361 264 |
-2 28113187264 0 |
-3 28113190285 296 |
-8 28113213164 296 |
-4 28113213882 264 |
-2 28116815891 0 |
-3 28116816566 264 |
-2 28116862144 0 |
-3 28116865109 296 |
-8 28116887947 296 |
-4 28116888658 264 |
-2 28120536936 0 |
-3 28120539885 296 |
-8 28120562617 296 |
-4 28120563322 264 |
-2 28124211954 0 |
-3 28124214858 296 |
-8 28124237628 296 |
-4 28124238336 264 |
-2 28127886603 0 |
-3 28127889529 296 |
-8 28127912122 296 |
-4 28127912827 264 |
-2 28131513732 0 |
-6 28131514433 280 |
-3 28131516482 280 |
-8 28131519730 280 |
-4 28131520433 264 |
-2 28131561323 0 |
-3 28131564381 296 |
-8 28131587313 296 |
-4 28131588037 264 |
-2 28135190016 0 |
-3 28135190691 264 |
-2 28135236269 0 |
-3 28135239223 296 |
-8 28135262014 296 |
-4 28135262735 264 |
-2 28138911006 0 |
-3 28138913928 296 |
-8 28138936680 296 |
-4 28138937390 264 |
-2 28142586018 0 |
-3 28142588918 296 |
-8 28142611649 296 |
-4 28142612356 264 |
-2 28146260623 0 |
-3 28146263544 296 |
-8 28146286181 296 |
-4 28146286892 264 |
-2 28149888159 0 |
-6 28149888864 280 |
-3 28149890887 280 |
-8 28149894130 280 |
-4 28149894832 264 |
-2 28149935729 0 |
-3 28149938788 296 |
-8 28149961793 296 |
-4 28149962511 264 |
-2 28153564521 0 |
-3 28153565196 264 |
-2 28153610405 0 |
-3 28153613370 296 |
-8 28153636205 296 |
-4 28153636916 264 |
-2 28157285197 0 |
-3 28157288141 296 |
-8 28157310872 296 |
-4 28157311576 264 |
-2 28160960209 0 |
-3 28160963109 296 |
-8 28160985872 296 |
-4 28160986580 264 |
-2 28164634847 0 |
-3 28164637769 296 |
-8 28164660361 296 |
-4 28164661066 264 |
-2 28168262339 0 |
-6 28168263040 280 |
-3 28168265096 280 |
-8 28168268350 280 |
-4 28168269040 264 |
-2 28168309568 0 |
-3 28168312626 296 |
-8 28168335569 296 |
-4 28168336293 264 |
-2 28171938640 0 |
-3 28171939315 264 |
-2 28171984525 0 |
-3 28171987479 296 |
-8 28172010264 296 |
-4 28172010985 264 |
-2 28175659256 0 |
-3 28175662178 296 |
-8 28175684930 296 |
-4 28175685640 264 |
-2 28179334268 0 |
-3 28179337161 296 |
-8 28179359894 296 |
-4 28179360601 264 |
-2 28183009231 0 |
-3 28183012152 296 |
-8 28183034733 296 |
-4 28183035444 264 |
-2 28186636343 0 |
-6 28186637044 280 |
-3 28186639072 280 |
-8 28186642319 280 |
-4 28186643009 264 |
-2 28186683913 0 |
-3 28186686933 296 |
-8 28186709818 296 |
-4 28186710536 264 |
-2 28190312545 0 |
-3 28190313226 264 |
-2 28190358804 0 |
-3 28190361769 296 |
-8 28190384629 296 |
-4 28190385340 264 |
-2 28194033618 0 |
-3 28194036566 296 |
-8 28194059304 296 |
-4 28194060009 264 |
-2 28197708278 0 |
-3 28197711182 296 |
-8 28197733935 296 |
-4 28197734643 264 |
-2 28201383273 0 |
-3 28201386195 296 |
-8 28201408787 296 |
-4 28201409492 264 |
-2 28205010397 0 |
-6 28205011098 280 |
-3 28205013147 280 |
-8 28205016395 280 |
-4 28205017085 264 |
-2 28205057988 0 |
-3 28205061042 296 |
-8 28205084000 296 |
-4 28205084724 264 |
-2 28208686703 0 |
-3 28208687378 264 |
-2 28208732956 0 |
-3 28208735910 296 |
-8 28208758693 296 |
-4 28208759414 264 |
-2 28212407682 0 |
-3 28212410604 296 |
-8 28212433340 296 |
-4 28212434050 264 |
-2 28216082678 0 |
-3 28216085571 296 |
-8 28216108303 296 |
-4 28216109010 264 |
-2 28219757277 0 |
-3 28219760198 296 |
-8 28219782813 296 |
-4 28219783524 264 |
-2 28223384791 0 |
-6 28223385492 280 |
-3 28223387515 280 |
-8 28223390756 280 |
-4 28223391446 264 |
-2 28223432355 0 |
-3 28223435414 296 |
-8 28223458318 296 |
-4 28223459041 264 |
-2 28227061037 0 |
-3 28227061712 264 |
-2 28227106922 0 |
-3 28227109887 296 |
-8 28227132721 296 |
-4 28227133432 264 |
-2 28230781708 0 |
-3 28230784652 296 |
-8 28230807383 296 |
-4 28230808083 264 |
-2 28234456720 0 |
-3 28234459620 296 |
-8 28234482383 296 |
-4 28234483091 264 |
-2 28238131358 0 |
-3 28238134280 296 |
-8 28238156872 296 |
-4 28238157577 264 |
-2 28241758850 0 |
-6 28241759551 280 |
-3 28241761607 280 |
-8 28241764911 280 |
-4 28241765601 264 |
-2 28241806447 0 |
-3 28241809500 296 |
-8 28241832443 296 |
-4 28241833167 264 |
-2 28245435146 0 |
-3 28245435821 264 |
-2 28245481030 0 |
-3 28245483984 296 |
-8 28245506767 296 |
-4 28245507488 264 |
-2 28249156119 0 |
-3 28249159041 296 |
-8 28249181793 296 |
-4 28249182503 264 |
-2 28252830768 0 |
-3 28252833661 296 |
-8 28252856394 296 |
-4 28252857101 264 |
-2 28256505731 0 |
-3 28256508652 296 |
-8 28256531233 296 |
-4 28256531944 264 |
-2 28260132843 0 |
-6 28260133544 280 |
-3 28260135567 280 |
-8 28260138814 280 |
-4 28260139504 264 |
-2 28260180407 0 |
-3 28260183422 296 |
-8 28260206312 296 |
-4 28260207030 264 |
-2 28263809040 0 |
-3 28263809715 264 |
-2 28263855293 0 |
-3 28263858258 296 |
-8 28263881118 296 |
-4 28263881829 264 |
-2 28267530107 0 |
-3 28267533055 296 |
-8 28267555798 296 |
-4 28267556507 264 |
-2 28271205135 0 |
-3 28271208035 296 |
-8 28271230793 296 |
-4 28271231501 264 |
-2 28274879768 0 |
-3 28274882694 296 |
-8 28274905287 296 |
-4 28274905992 264 |
-2 28278507265 0 |
-6 28278507966 280 |
-3 28278510010 280 |
-8 28278513258 280 |
-4 28278513948 264 |
-2 28278554483 0 |
-3 28278557536 296 |
-8 28278580489 296 |
-4 28278581213 264 |
-2 28282183561 0 |
-3 28282184236 264 |
-2 28282229445 0 |
-3 28282232399 296 |
-8 28282255182 296 |
-4 28282255903 264 |
-2 28285904171 0 |
-3 28285907093 296 |
-8 28285929829 296 |
-4 28285930539 264 |
-2 28289579167 0 |
-3 28289582060 296 |
-8 28289604796 296 |
-4 28289605503 264 |
-2 28293254135 0 |
-3 28293257056 296 |
-8 28293279670 296 |
-4 28293280381 264 |
-2 28296881280 0 |
-6 28296881981 280 |
-3 28296884014 280 |
-8 28296887261 280 |
-4 28296887951 264 |
-2 28296928855 0 |
-3 28296931897 296 |
-8 28296954777 296 |
-4 28296955495 264 |
-2 28300557504 0 |
-3 28300558179 264 |
-2 28300603757 0 |
-3 28300606722 296 |
-8 28300629557 296 |
-4 28300630268 264 |
-2 28304278549 0 |
-3 28304281493 296 |
-8 28304304224 296 |
-4 28304304924 264 |
-2 28307953198 0 |
-3 28307956098 296 |
-8 28307978861 296 |
-4 28307979569 264 |
-2 28311628199 0 |
-3 28311631121 296 |
-8 28311653713 296 |
-4 28311654418 264 |
-2 28315255323 0 |
-6 28315256024 280 |
-3 28315258073 280 |
-8 28315261321 280 |
-4 28315262011 264 |
-2 28315302914 0 |
-3 28315305967 296 |
-8 28315328910 296 |
-4 28315329634 264 |
-2 28318931613 0 |
-3 28318932288 264 |
-2 28318977866 0 |
-3 28318980820 296 |
-8 28319003605 296 |
-4 28319004326 264 |
-2 28322652597 0 |
-3 28322655519 296 |
-8 28322678271 296 |
-4 28322678981 264 |
-2 28326327609 0 |
-3 28326330502 296 |
-8 28326353235 296 |
-4 28326353942 264 |
-2 28330002209 0 |
-3 28330005130 296 |
-8 28330027711 296 |
-4 28330028422 264 |
-2 28333629690 0 |
-6 28333630391 280 |
-3 28333632419 280 |
-8 28333635666 280 |
-4 28333636356 264 |
-2 28333677259 0 |
-3 28333680274 296 |
-8 28333703170 296 |
-4 28333703888 264 |
-2 28337305897 0 |
-3 28337306572 264 |
-2 28337351782 0 |
-3 28337354747 296 |
-8 28337377607 296 |
-4 28337378318 264 |
-2 28341026596 0 |
-3 28341029550 296 |
-8 28341052287 296 |
-4 28341052992 264 |
-2 28344701624 0 |
-3 28344704524 296 |
-8 28344727287 296 |
-4 28344727995 264 |
-2 28348376262 0 |
-3 28348379184 296 |
-8 28348401776 296 |
-4 28348402481 264 |
-2 28352003754 0 |
-6 28352004455 280 |
-3 28352006504 280 |
-8 28352009753 280 |
-4 28352010443 264 |
-2 28352051346 0 |
-3 28352054399 296 |
-8 28352077359 296 |
-4 28352078083 264 |
-2 28355680066 0 |
-3 28355680741 264 |
-2 28355725951 0 |
-3 28355728905 296 |
-8 28355751698 296 |
-4 28355752419 264 |
-2 28359401051 0 |
-3 28359403971 296 |
-8 28359426708 296 |
-4 28359427418 264 |
-2 28363075683 0 |
-3 28363078576 296 |
-8 28363101309 296 |
-4 28363102016 264 |
-2 28366750646 0 |
-3 28366753567 296 |
-8 28366776181 296 |
-4 28366776892 264 |
-2 28370377791 0 |
-6 28370378492 280 |
-3 28370380530 280 |
-8 28370384064 280 |
-4 28370384754 264 |
-2 28370425372 0 |
-3 28370428414 296 |
-8 28370451299 296 |
-4 28370452017 264 |
-2 28374054026 0 |
-3 28374054701 264 |
-2 28374100279 0 |
-3 28374103244 296 |
-8 28374126079 296 |
-4 28374126790 264 |
-2 28377775071 0 |
-3 28377778015 296 |
-8 28377800746 296 |
-4 28377801446 264 |
-2 28381449720 0 |
-3 28381452620 296 |
-8 28381475383 296 |
-4 28381476091 264 |
-2 28385124721 0 |
-3 28385127643 296 |
-8 28385150235 296 |
-4 28385150940 264 |
-2 28388751845 0 |
-6 28388752546 280 |
-3 28388754595 280 |
-8 28388757956 280 |
-4 28388758646 264 |
-2 28388799436 0 |
-3 28388802489 296 |
-8 28388825440 296 |
-4 28388826164 264 |
-2 28392428146 0 |
-3 28392428821 264 |
-2 28392474399 0 |
-3 28392477353 296 |
-8 28392500138 296 |
-4 28392500859 264 |
-2 28396149130 0 |
-3 28396152052 296 |
-8 28396174804 296 |
-4 28396175514 264 |
-2 28399824142 0 |
-3 28399827035 296 |
-8 28399849768 296 |
-4 28399850475 264 |
-2 28403498742 0 |
-3 28403501663 296 |
-8 28403524250 296 |
-4 28403524961 264 |
-2 28407126228 0 |
-6 28407126929 280 |
-3 28407128957 280 |
-8 28407132215 280 |
-4 28407132905 264 |
-2 28407173798 0 |
-3 28407176840 296 |
-8 28407199736 296 |
-4 28407200454 264 |
-2 28410802463 0 |
-3 28410803138 264 |
-2 28410848716 0 |
-3 28410851682 296 |
-8 28410874560 296 |
-4 28410875286 264 |
-2 28414523552 0 |
-3 28414526595 296 |
-8 28414549333 296 |
-4 28414550033 264 |
-2 28418198311 0 |
-3 28418201237 296 |
-8 28418223925 296 |
-4 28418224633 264 |
-2 28421872900 0 |
-3 28421875826 296 |
-8 28421898369 296 |
-4 28421899074 264 |
-2 28425500348 0 |
-6 28425501049 280 |
-3 28425503099 280 |
-8 28425506353 280 |
-4 28425507056 264 |
-2 28425547939 0 |
-3 28425550997 296 |
-8 28425573879 296 |
-4 28425574603 264 |
-2 28429176599 0 |
-3 28429177274 264 |
-2 28429222852 0 |
-3 28429225806 296 |
-8 28429248564 296 |
-4 28429249285 264 |
-2 28432897556 0 |
-3 28432900478 296 |
-8 28432923164 296 |
-4 28432923874 264 |
-2 28436572502 0 |
-3 28436575395 296 |
-8 28436598078 296 |
-4 28436598785 264 |
-2 28440247052 0 |
-3 28440249973 296 |
-8 28440272538 296 |
-4 28440273249 264 |
-2 28443874517 0 |
-6 28443875218 280 |
-3 28443877256 280 |
-8 28443880834 280 |
-4 28443881524 264 |
-2 28443922097 0 |
-3 28443925156 296 |
-8 28443947991 296 |
-4 28443948709 264 |
-2 28447550719 0 |
-3 28447551394 264 |
-2 28447596972 0 |
-3 28447599937 296 |
-8 28447622727 296 |
-4 28447623438 264 |
-2 28451271714 0 |
-3 28451274658 296 |
-8 28451297389 296 |
-4 28451298089 264 |
-2 28454946370 0 |
-3 28454949273 296 |
-8 28454972037 296 |
-4 28454972745 264 |
-2 28458621375 0 |
-3 28458624297 296 |
-8 28458646889 296 |
-4 28458647594 264 |
-2 28462248499 0 |
-6 28462249200 280 |
-3 28462251249 280 |
-8 28462254497 280 |
-4 28462255187 264 |
-2 28462296090 0 |
-3 28462299144 296 |
-8 28462322098 296 |
-4 28462322822 264 |
-2 28465924805 0 |
-3 28465925480 264 |
-2 28465971058 0 |
-3 28465974012 296 |
-8 28465996803 296 |
-4 28465997524 264 |
-2 28469645795 0 |
-3 28469648717 296 |
-8 28469671475 296 |
-4 28469672185 264 |
-2 28473320813 0 |
-3 28473323712 296 |
-8 28473346444 296 |
-4 28473347151 264 |
-2 28476995418 0 |
-3 28476998339 296 |
-8 28477020937 296 |
-4 28477021648 264 |
-2 28480622915 0 |
-6 28480623616 280 |
-3 28480625644 280 |
-8 28480628891 280 |
-4 28480629581 264 |
-2 28480670485 0 |
-3 28480673504 296 |
-8 28480696390 296 |
-4 28480697108 264 |
-2 28484299117 0 |
-3 28484299792 264 |
-2 28484345002 0 |
-3 28484347967 296 |
-8 28484370827 296 |
-4 28484371538 264 |
-2 28488019816 0 |
-3 28488022764 296 |
-8 28488045502 296 |
-4 28488046207 264 |
-2 28491694839 0 |
-3 28491697743 296 |
-8 28491720496 296 |
-4 28491721204 264 |
-2 28495369471 0 |
-3 28495372393 296 |
-8 28495394985 296 |
-4 28495395690 264 |
-2 28498996963 0 |
-6 28498997664 280 |
-3 28498999725 280 |
-8 28499002980 280 |
-4 28499003670 264 |
-2 28499044566 0 |
-3 28499047624 296 |
-8 28499070586 296 |
-4 28499071310 264 |
-2 28502673292 0 |
-3 28502673967 264 |
-2 28502719176 0 |
-3 28502722130 296 |
-8 28502744913 296 |
-4 28502745634 264 |
-2 28506394265 0 |
-3 28506397187 296 |
-8 28506419923 296 |
-4 28506420633 264 |
-2 28510068898 0 |
-3 28510071791 296 |
-8 28510094523 296 |
-4 28510095230 264 |
-2 28513743860 0 |
-3 28513746781 296 |
-8 28513769396 296 |
-4 28513770107 264 |
-2 28517371006 0 |
-6 28517371707 280 |
-3 28517373735 280 |
-8 28517376976 280 |
-4 28517377666 264 |
-2 28517418575 0 |
-3 28517421640 296 |
-8 28517444535 296 |
-4 28517445253 264 |
-2 28521047263 0 |
-3 28521047938 264 |
-2 28521093516 0 |
-3 28521096487 296 |
-8 28521119321 296 |
-4 28521120032 264 |
-2 28524768313 0 |
-3 28524771257 296 |
-8 28524793988 296 |
-4 28524794688 264 |
-2 28528442962 0 |
-3 28528445862 296 |
-8 28528468625 296 |
-4 28528469333 264 |
-2 28532117963 0 |
-3 28532120885 296 |
-8 28532143477 296 |
-4 28532144182 264 |
-2 28535745087 0 |
-6 28535745788 280 |
-3 28535747837 280 |
-8 28535751098 280 |
-4 28535751788 264 |
-2 28535792678 0 |
-3 28535795732 296 |
-8 28535818679 296 |
-4 28535819403 264 |
-2 28539421382 0 |
-3 28539422057 264 |
-2 28539467635 0 |
-3 28539470595 296 |
-8 28539493380 296 |
-4 28539494101 264 |
-2 28543142372 0 |
-3 28543145294 296 |
-8 28543168063 296 |
-4 28543168773 264 |
-2 28546817401 0 |
-3 28546820294 296 |
-8 28546843026 296 |
-4 28546843733 264 |
-2 28550492000 0 |
-3 28550494921 296 |
-8 28550517503 296 |
-4 28550518214 264 |
-2 28554119481 0 |
-6 28554120182 280 |
-3 28554122210 280 |
-8 28554125457 280 |
-4 28554126147 264 |
-2 28554167051 0 |
-3 28554170070 296 |
-8 28554192950 296 |
-4 28554193672 264 |
-2 28557795678 0 |
-3 28557796353 264 |
-2 28557841931 0 |
-3 28557844896 296 |
-8 28557867756 296 |
-4 28557868467 264 |
-2 28561516745 0 |
-3 28561519693 296 |
-8 28561542431 296 |
-4 28561543136 264 |
-2 28565191405 0 |
-3 28565194309 296 |
-8 28565217062 296 |
-4 28565217772 264 |
-2 28568866400 0 |
-3 28568869322 296 |
-8 28568891914 296 |
-4 28568892619 264 |
-2 28572493524 0 |
-6 28572494225 280 |
-3 28572496280 280 |
-8 28572499535 280 |
-4 28572500225 264 |
-2 28572541121 0 |
-3 28572544179 296 |
-8 28572567133 296 |
-4 28572567857 264 |
-2 28576169836 0 |
-3 28576170511 264 |
-2 28576215720 0 |
-3 28576218674 296 |
-8 28576241457 296 |
-4 28576242178 264 |
-2 28579890809 0 |
-3 28579893731 296 |
-8 28579916467 296 |
-4 28579917177 264 |
-2 28583565442 0 |
-3 28583568335 296 |
-8 28583591067 296 |
-4 28583591774 264 |
-2 28587240411 0 |
-3 28587243330 296 |
-8 28587265945 296 |
-4 28587266656 264 |
-2 28590867555 0 |
-6 28590868256 280 |
-3 28590870284 280 |
-8 28590873526 280 |
-4 28590874216 264 |
-2 28590915125 0 |
-3 28590918184 296 |
-8 28590941074 296 |
-4 28590941792 264 |
-2 28594543801 0 |
-3 28594544476 264 |
-2 28594590054 0 |
-3 28594593019 296 |
-8 28594615854 296 |
-4 28594616565 264 |
-2 28598264846 0 |
-3 28598267790 296 |
-8 28598290521 296 |
-4 28598291225 264 |
-2 28601939858 0 |
-3 28601942758 296 |
-8 28601965527 296 |
-4 28601966240 264 |
-2 28605614502 0 |
-3 28605617428 296 |
-8 28605640027 296 |
-4 28605640732 264 |
-2 28609241999 0 |
-6 28609242700 280 |
-3 28609244744 280 |
-8 28609247992 280 |
-4 28609248682 264 |
-2 28609289217 0 |
-3 28609292275 296 |
-8 28609315218 296 |
-4 28609315942 264 |
-2 28612918289 0 |
-3 28612918964 264 |
-2 28612964174 0 |
-3 28612967128 296 |
-8 28612989913 296 |
-4 28612990634 264 |
-2 28616638905 0 |
-3 28616641827 296 |
-8 28616664579 296 |
-4 28616665289 264 |
-2 28620313917 0 |
-3 28620316810 296 |
-8 28620339543 296 |
-4 28620340250 264 |
-2 28623988517 0 |
-3 28623991438 296 |
-8 28624014019 296 |
-4 28624014732 264 |
-2 28627615998 0 |
-6 28627616699 280 |
-3 28627618732 280 |
-8 28627621984 280 |
-4 28627622674 264 |
-2 28627663573 0 |
-3 28627666592 296 |
-8 28627689472 296 |
-4 28627690190 264 |
-2 28631292200 0 |
-3 28631292875 264 |
-2 28631338453 0 |
-3 28631341418 296 |
-8 28631364278 296 |
-4 28631364989 264 |
-2 28635013267 0 |
-3 28635016215 296 |
-8 28635038953 296 |
-4 28635039658 264 |
-2 28638687927 0 |
-3 28638690831 296 |
-8 28638713584 296 |
-4 28638714292 264 |
-2 28642362922 0 |
-3 28642365844 296 |
-8 28642388436 296 |
-4 28642389141 264 |
-2 28645990046 0 |
-6 28645990747 280 |
-3 28645992796 280 |
-8 28645996044 280 |
-4 28645996734 264 |
-2 28646037637 0 |
-3 28646040691 296 |
-8 28646063644 296 |
-4 28646064368 264 |
-2 28649666347 0 |
-3 28649667022 264 |
-2 28649712600 0 |
-3 28649715554 296 |
-8 28649738339 296 |
-4 28649739060 264 |
-2 28653387338 0 |
-3 28653390258 296 |
-8 28653412994 296 |
-4 28653413704 264 |
-2 28657062332 0 |
-3 28657065225 296 |
-8 28657087958 296 |
-4 28657088665 264 |
-2 28660736932 0 |
-3 28660739853 296 |
-8 28660762467 296 |
-4 28660763178 264 |
-2 28664364446 0 |
-6 28664365147 280 |
-3 28664367175 280 |
-8 28664370416 280 |
-4 28664371106 264 |
-2 28664411647 0 |
-3 28664414706 296 |
-8 28664437596 296 |
-4 28664438314 264 |
-2 28668040692 0 |
-3 28668041367 264 |
-2 28668086576 0 |
-3 28668089541 296 |
-8 28668112381 296 |
-4 28668113092 264 |
-2 28671761368 0 |
-3 28671764317 296 |
-8 28671787050 296 |
-4 28671787750 264 |
-2 28675436391 0 |
-3 28675439291 296 |
-8 28675462071 296 |
-4 28675462779 264 |
-2 28679111046 0 |
-3 28679113972 296 |
-8 28679136565 296 |
-4 28679137270 264 |
-2 28682738543 0 |
-6 28682739244 280 |
-3 28682741288 280 |
-8 28682744549 280 |
-4 28682745239 264 |
-2 28682786129 0 |
-3 28682789183 296 |
-8 28682812130 296 |
-4 28682812854 264 |
-2 28686414833 0 |
-3 28686415508 264 |
-2 28686460718 0 |
-3 28686463672 296 |
-8 28686486457 296 |
-4 28686487182 264 |
-2 28690135812 0 |
-3 28690138734 296 |
-8 28690161486 296 |
-4 28690162196 264 |
-2 28693810461 0 |
-3 28693813354 296 |
-8 28693836087 296 |
-4 28693836794 264 |
-2 28697485424 0 |
-3 28697488345 296 |
-8 28697510926 296 |
-4 28697511637 264 |
-2 28701112536 0 |
-6 28701113237 280 |
-3 28701115270 280 |
-8 28701118523 280 |
-4 28701119213 264 |
-2 28701160111 0 |
-3 28701163132 296 |
-8 28701186011 296 |
-4 28701186729 264 |
-2 28704788738 0 |
-3 28704789413 264 |
-2 28704834991 0 |
-3 28704837956 296 |
-8 28704860816 296 |
-4 28704861527 264 |
-2 28708509805 0 |
-3 28708512749 296 |
-8 28708535486 296 |
-4 28708536191 264 |
-2 28712184460 0 |
-3 28712187364 296 |
-8 28712210117 296 |
-4 28712210825 264 |
-2 28715859455 0 |
-3 28715862377 296 |
-8 28715884969 296 |
-4 28715885674 264 |
-2 28719486579 0 |
-6 28719487280 280 |
-3 28719489329 280 |
-8 28719492577 280 |
-4 28719493267 264 |
-2 28719534170 0 |
-3 28719537224 296 |
-8 28719560177 296 |
-4 28719560901 264 |
-2 28723162880 0 |
-3 28723163555 264 |
-2 28723209133 0 |
-3 28723212087 296 |
-8 28723234872 296 |
-4 28723235593 264 |
-2 28726883864 0 |
-3 28726886786 296 |
-8 28726909522 296 |
-4 28726910232 264 |
-2 28730558860 0 |
-3 28730561753 296 |
-8 28730584485 296 |
-4 28730585192 264 |
-2 28734233459 0 |
-3 28734236380 296 |
-8 28734259000 296 |
-4 28734259711 264 |
-2 28737860979 0 |
-6 28737861680 280 |
-3 28737863707 280 |
-8 28737866949 280 |
-4 28737867639 264 |
-2 28737908548 0 |
-3 28737911613 296 |
-8 28737934503 296 |
-4 28737935221 264 |
-2 28741537230 0 |
-3 28741537905 264 |
-2 28741583115 0 |
-3 28741586080 296 |
-8 28741608931 296 |
-4 28741609642 264 |
-2 28745257923 0 |
-3 28745260867 296 |
-8 28745283598 296 |
-4 28745284298 264 |
-2 28748932935 0 |
-3 28748935835 296 |
-8 28748958604 296 |
-4 28748959312 264 |
-2 28752607579 0 |
-3 28752610505 296 |
-8 28752633098 296 |
-4 28752633803 264 |
-2 28756235076 0 |
-6 28756235777 280 |
-3 28756237821 280 |
-8 28756241069 280 |
-4 28756241759 264 |
-2 28756282662 0 |
-3 28756285716 296 |
-8 28756308663 296 |
-4 28756309387 264 |
-2 28759911366 0 |
-3 28759912041 264 |
-2 28759957251 0 |
-3 28759960205 296 |
-8 28759982990 296 |
-4 28759983711 264 |
-2 28763632345 0 |
-3 28763635267 296 |
-8 28763658019 296 |
-4 28763658729 264 |
-2 28767306994 0 |
-3 28767309887 296 |
-8 28767332620 296 |
-4 28767333327 264 |
-2 28770981957 0 |
-3 28770984878 296 |
-8 28771007459 296 |
-4 28771008170 264 |
-2 28774609069 0 |
-6 28774609770 280 |
-3 28774611803 280 |
-8 28774615062 280 |
-4 28774615752 264 |
-2 28774656644 0 |
-3 28774659680 296 |
-8 28774682571 296 |
-4 28774683289 264 |
-2 28778285299 0 |
-3 28778285974 264 |
-2 28778331552 0 |
-3 28778334516 296 |
-8 28778357390 296 |
-4 28778358116 264 |
-2 28782006382 0 |
-3 28782009425 296 |
-8 28782032163 296 |
-4 28782032863 264 |
-2 28785681141 0 |
-3 28785684067 296 |
-8 28785706760 296 |
-4 28785707468 264 |
-2 28789356098 0 |
-3 28789359020 296 |
-8 28789381562 296 |
-4 28789382267 264 |
-2 28792983172 0 |
-6 28792983873 280 |
-3 28792985922 280 |
-8 28792989171 280 |
-4 28792989874 264 |
-2 28793030764 0 |
-3 28793033822 296 |
-8 28793056697 296 |
-4 28793057421 264 |
-2 28796659418 0 |
-3 28796660093 264 |
-2 28796705671 0 |
-3 28796708625 296 |
-8 28796731383 296 |
-4 28796732104 264 |
-2 28800380375 0 |
-3 28800383297 296 |
-8 28800405989 296 |
-4 28800406699 264 |
-2 28804055327 0 |
-3 28804058220 296 |
-8 28804080915 296 |
-4 28804081622 264 |
-2 28807730256 0 |
-3 28807733177 296 |
-8 28807755742 296 |
-4 28807756453 264 |
-2 28811357352 0 |
-6 28811358053 280 |
-3 28811360076 280 |
-8 28811363323 280 |
-4 28811364013 264 |
-2 28811404916 0 |
-3 28811407975 296 |
-8 28811430805 296 |
-4 28811431523 264 |
-2 28815033532 0 |
-3 28815034207 264 |
-2 28815079785 0 |
-3 28815082750 296 |
-8 28815105541 296 |
-4 28815106252 264 |
-2 28818754533 0 |
-3 28818757477 296 |
-8 28818780208 296 |
-4 28818780908 264 |
-2 28822429545 0 |
-3 28822432445 296 |
-8 28822455208 296 |
-4 28822455917 264 |
-2 28826104183 0 |
-3 28826107105 296 |
-8 28826129697 296 |
-4 28826130402 264 |
-2 28829731675 0 |
-6 28829732376 280 |
-3 28829734432 280 |
-8 28829737803 280 |
-4 28829738493 264 |
-2 28829779272 0 |
-3 28829782326 296 |
-8 28829805273 296 |
-4 28829805997 264 |
-2 28833407976 0 |
-3 28833408651 264 |
-2 28833453861 0 |
-3 28833456815 296 |
-8 28833479600 296 |
-4 28833480321 264 |
-2 28837128955 0 |
-3 28837131877 296 |
-8 28837154629 296 |
-4 28837155339 264 |
-2 28840803604 0 |
-3 28840806497 296 |
-8 28840829230 296 |
-4 28840829937 264 |
-2 28844478567 0 |
-3 28844481488 296 |
-8 28844504069 296 |
-4 28844504780 264 |
-2 28848105679 0 |
-6 28848106380 280 |
-3 28848108403 280 |
-8 28848111650 280 |
-4 28848112340 264 |
-2 28848153243 0 |
-3 28848156264 296 |
-8 28848179148 296 |
-4 28848179866 264 |
-2 28851781885 0 |
-3 28851782562 264 |
-2 28851828140 0 |
-3 28851831105 296 |
-8 28851853965 296 |
-4 28851854676 264 |
-2 28855502954 0 |
-3 28855505902 296 |
-8 28855528640 296 |
-4 28855529345 264 |
-2 28859177977 0 |
-3 28859180881 296 |
-8 28859203634 296 |
-4 28859204342 264 |
-2 28862852609 0 |
-3 28862855531 296 |
-8 28862878123 296 |
-4 28862878828 264 |
-2 28866480101 0 |
-6 28866480802 280 |
-3 28866482852 280 |
-8 28866486100 280 |
-4 28866486790 264 |
-2 28866527324 0 |
-3 28866530378 296 |
-8 28866553336 296 |
-4 28866554060 264 |
-2 28870156408 0 |
-3 28870157083 264 |
-2 28870202292 0 |
-3 28870205252 296 |
-8 28870228037 296 |
-4 28870228758 264 |
-2 28873877029 0 |
-3 28873879951 296 |
-8 28873902703 296 |
-4 28873903413 264 |
-2 28877552041 0 |
-3 28877554934 296 |
-8 28877577667 296 |
-4 28877578374 264 |
-2 28881226641 0 |
-3 28881229562 296 |
-8 28881252176 296 |
-4 28881252887 264 |
-2 28884854155 0 |
-6 28884854856 280 |
-3 28884856883 280 |
-8 28884860125 280 |
-4 28884860815 264 |
-2 28884901724 0 |
-3 28884904783 296 |
-8 28884927673 296 |
-4 28884928391 264 |
-2 28888530401 0 |
-3 28888531082 264 |
-2 28888576291 0 |
-3 28888579256 296 |
-8 28888602090 296 |
-4 28888602801 264 |
-2 28892251440 0 |
-3 28892254384 296 |
-8 28892277115 296 |
-4 28892277815 264 |
-2 28895926089 0 |
-3 28895928989 296 |
-8 28895951752 296 |
-4 28895952460 264 |
-2 28899601090 0 |
-3 28899604012 296 |
-8 28899626604 296 |
-4 28899627309 264 |
-2 28903228214 0 |
-6 28903228915 280 |
-3 28903230970 280 |
-8 28903234515 280 |
-4 28903235205 264 |
-2 28903275811 0 |
-3 28903278869 296 |
-8 28903301812 296 |
-4 28903302536 264 |
-2 28906904515 0 |
-3 28906905190 264 |
-2 28906950768 0 |
-3 28906953722 296 |
-8 28906976507 296 |
-4 28906977228 264 |
-2 28910625499 0 |
-3 28910628421 296 |
-8 28910651173 296 |
-4 28910651883 264 |
-2 28914300148 0 |
-3 28914303041 296 |
-8 28914325774 296 |
-4 28914326481 264 |
-2 28917975111 0 |
-3 28917978031 296 |
-8 28918000613 296 |
-4 28918001324 264 |
-2 28921602223 0 |
-6 28921602924 280 |
-3 28921604952 280 |
-8 28921608199 280 |
-4 28921608898 264 |
-2 28921649793 0 |
-3 28921652812 296 |
-8 28921675692 296 |
-4 28921676410 264 |
-2 28925278420 0 |
-3 28925279095 264 |
-2 28925324673 0 |
-3 28925327638 296 |
-8 28925350498 296 |
-4 28925351209 264 |
-2 28928999487 0 |
-3 28929002435 296 |
-8 28929025173 296 |
-4 28929025878 264 |
-2 28932674510 0 |
-3 28932677414 296 |
-8 28932700173 296 |
-4 28932700881 264 |
-2 28936349148 0 |
-3 28936352074 296 |
-8 28936374667 296 |
-4 28936375378 264 |
-2 28939976645 0 |
-6 28939977346 280 |
-3 28939979390 280 |
-8 28939982638 280 |
-4 28939983328 264 |
-2 28940024231 0 |
-3 28940027278 296 |
-8 28940050243 296 |
-4 28940050967 264 |
-2 28943652946 0 |
-3 28943653621 264 |
-2 28943698831 0 |
-3 28943701785 296 |
-8 28943724570 296 |
-4 28943725291 264 |
-2 28947373562 0 |
-3 28947376484 296 |
-8 28947399220 296 |
-4 28947399930 264 |
-2 28951048558 0 |
-3 28951051451 296 |
-8 28951074183 296 |
-4 28951074890 264 |
-2 28954723520 0 |
-3 28954726441 296 |
-8 28954749056 296 |
-4 28954749767 264 |
-2 28958350666 0 |
-6 28958351367 280 |
-3 28958353400 280 |
-8 28958356627 280 |
-4 28958357311 264 |
-2 28958398241 0 |
-3 28958401300 296 |
-8 28958424173 296 |
-4 28958424891 264 |
-2 28962026901 0 |
-3 28962027576 264 |
-2 28962073154 0 |
-3 28962076119 296 |
-8 28962098953 296 |
-4 28962099664 264 |
-2 28965747940 0 |
-3 28965750884 296 |
-8 28965773615 296 |
-4 28965774315 264 |
-2 28969422589 0 |
-3 28969425489 296 |
-8 28969448252 296 |
-4 28969448960 264 |
-2 28973097590 0 |
-3 28973100512 296 |
-8 28973123104 296 |
-4 28973123809 264 |
-2 28976724714 0 |
-6 28976725415 280 |
-3 28976727464 280 |
-8 28976730820 280 |
-4 28976731510 264 |
-2 28976772305 0 |
-3 28976775359 296 |
-8 28976798306 296 |
-4 28976799030 264 |
-2 28980401009 0 |
-3 28980401684 264 |
-2 28980447262 0 |
-3 28980450216 296 |
-8 28980472999 296 |
-4 28980473720 264 |
-2 28984121995 0 |
-3 28984124915 296 |
-8 28984147668 296 |
-4 28984148378 264 |
-2 28987797006 0 |
-3 28987799899 296 |
-8 28987822631 296 |
-4 28987823338 264 |
-2 28991471605 0 |
-3 28991474526 296 |
-8 28991497108 296 |
-4 28991497819 264 |
-2 28995099086 0 |
-6 28995099798 280 |
-3 28995101826 280 |
-8 28995105073 280 |
-4 28995105763 264 |
-2 28995146667 0 |
-3 28995149686 296 |
-8 28995172566 296 |
-4 28995173288 264 |
-2 28998775294 0 |
-3 28998775969 264 |
-2 28998821547 0 |
-3 28998824512 296 |
-8 28998847372 296 |
-4 28998848088 264 |
-2 29002496361 0 |
-3 29002499309 296 |
-8 29002522047 296 |
-4 29002522752 264 |
-2 29006171021 0 |
-3 29006173925 296 |
-8 29006196689 296 |
-4 29006197397 264 |
-2 29009846027 0 |
-3 29009848949 296 |
-8 29009871541 296 |
-4 29009872246 264 |
-2 29013473151 0 |
-6 29013473856 280 |
-3 29013475902 280 |
-8 29013479149 280 |
-4 29013479839 264 |
-2 29013520742 0 |
-3 29013523796 296 |
-8 29013546754 296 |
-4 29013547478 264 |
-2 29017149457 0 |
-3 29017150132 264 |
-2 29017195342 0 |
-3 29017198296 296 |
-8 29017221085 296 |
-4 29017221806 264 |
-2 29020870436 0 |
-3 29020873358 296 |
-8 29020896094 296 |
-4 29020896804 264 |
-2 29024545069 0 |
-3 29024547962 296 |
-8 29024570694 296 |
-4 29024571401 264 |
-2 29028220031 0 |
-3 29028222952 296 |
-8 29028245567 296 |
-4 29028246278 264 |
-2 29031847177 0 |
-6 29031847878 280 |
-3 29031849911 280 |
-8 29031853153 280 |
-4 29031853843 264 |
-2 29031894752 0 |
-3 29031897811 296 |
-8 29031920701 296 |
-4 29031921419 264 |
-2 29035523428 0 |
-3 29035524103 264 |
-2 29035569681 0 |
-3 29035572646 296 |
-8 29035595481 296 |
-4 29035596192 264 |
-2 29039244473 0 |
-3 29039247417 296 |
-8 29039270148 296 |
-4 29039270848 264 |
-2 29042919485 0 |
-3 29042922385 296 |
-8 29042945148 296 |
-4 29042945856 264 |
-2 29046594123 0 |
-3 29046597045 296 |
-8 29046619637 296 |
-4 29046620342 264 |
-2 29050221615 0 |
-6 29050222316 280 |
-3 29050224366 280 |
-8 29050227614 280 |
-4 29050228304 264 |
-2 29050268838 0 |
-3 29050271892 296 |
-8 29050294839 296 |
-4 29050295563 264 |
-2 29053897911 0 |
-3 29053898586 264 |
-2 29053943795 0 |
-3 29053946749 296 |
-8 29053969532 296 |
-4 29053970253 264 |
-2 29057618521 0 |
-3 29057621443 296 |
-8 29057644195 296 |
-4 29057644905 264 |
-2 29061293533 0 |
-3 29061296426 296 |
-8 29061319159 296 |
-4 29061319866 264 |
-2 29064968133 0 |
-3 29064971054 296 |
-8 29064993635 296 |
-4 29064994346 264 |
-2 29068595614 0 |
-6 29068596315 280 |
-3 29068598342 280 |
-8 29068601590 280 |
-4 29068602280 264 |
-2 29068643183 0 |
-3 29068646208 296 |
-8 29068669176 296 |
-4 29068669894 264 |
-2 29072271904 0 |
-3 29072272579 264 |
-2 29072318157 0 |
-3 29072321122 296 |
-8 29072343993 296 |
-4 29072344704 264 |
-2 29075992982 0 |
-3 29075995930 296 |
-8 29076018668 296 |
-4 29076019373 264 |
-2 29079667642 0 |
-3 29079670546 296 |
-8 29079693299 296 |
-4 29079694007 264 |
-2 29083342637 0 |
-3 29083345564 296 |
-8 29083368162 296 |
-4 29083368867 264 |
-2 29086969772 0 |
-6 29086970473 280 |
-3 29086972522 280 |
-8 29086975886 280 |
-4 29086976576 264 |
-2 29087017363 0 |
-3 29087020410 296 |
-8 29087043364 296 |
-4 29087044088 264 |
-2 29090646067 0 |
-3 29090646742 264 |
-2 29090691952 0 |
-3 29090694906 296 |
-8 29090717691 296 |
-4 29090718412 264 |
-2 29094367046 0 |
-3 29094369968 296 |
-8 29094392704 296 |
-4 29094393414 264 |
-2 29098041679 0 |
-3 29098044572 296 |
-8 29098067304 296 |
-4 29098068011 264 |
-2 29101716641 0 |
-3 29101719562 296 |
-8 29101742177 296 |
-4 29101742888 264 |
-2 29105343787 0 |
-6 29105344488 280 |
-3 29105346521 280 |
-8 29105349763 280 |
-4 29105350453 264 |
-2 29105391362 0 |
-3 29105394421 296 |
-8 29105417311 296 |
-4 29105418029 264 |
-2 29109020038 0 |
-3 29109020713 264 |
-2 29109066291 0 |
-3 29109069256 296 |
-8 29109092091 296 |
-4 29109092802 264 |
-2 29112741083 0 |
-3 29112744027 296 |
-8 29112766758 296 |
-4 29112767458 264 |
-2 29116416095 0 |
-3 29116419000 296 |
-8 29116441764 296 |
-4 29116442472 264 |
-2 29120090739 0 |
-3 29120093665 296 |
-8 29120116258 296 |
-4 29120116963 264 |
-2 29123718236 0 |
-6 29123718937 280 |
-3 29123720986 280 |
-8 29123724248 280 |
-4 29123724938 264 |
-2 29123765459 0 |
-3 29123768513 296 |
-8 29123791460 296 |
-4 29123792184 264 |
-2 29127394532 0 |
-3 29127395207 264 |
-2 29127440416 0 |
-3 29127443370 296 |
-8 29127466153 296 |
-4 29127466874 264 |
-2 29131115142 0 |
-3 29131118064 296 |
-8 29131140822 296 |
-4 29131141532 264 |
-2 29134790160 0 |
-3 29134793053 296 |
-8 29134815785 296 |
-4 29134816498 264 |
-2 29138464759 0 |
-3 29138467680 296 |
-8 29138490262 296 |
-4 29138490973 264 |
-2 29142092240 0 |
-6 29142092941 280 |
-3 29142094964 280 |
-8 29142098222 280 |
-4 29142098912 264 |
-2 29142139804 0 |
-3 29142142840 296 |
-8 29142165737 296 |
-4 29142166556 264 |
-2 29145768464 0 |
-3 29145769139 264 |
-2 29145814717 0 |
-3 29145817683 296 |
-8 29145840566 296 |
-4 29145841292 264 |
-2 29149489553 0 |
-3 29149492596 296 |
-8 29149515334 296 |
-4 29149516034 264 |
-2 29153164312 0 |
-3 29153167238 296 |
-8 29153189926 296 |
-4 29153190634 264 |
-2 29156838901 0 |
-3 29156841827 296 |
-8 29156864370 296 |
-4 29156865075 264 |
-2 29160466349 0 |
-6 29160467050 280 |
-3 29160469105 280 |
-8 29160472353 280 |
-4 29160473056 264 |
-2 29160513946 0 |
-3 29160517004 296 |
-8 29160539879 296 |
-4 29160540603 264 |
-2 29164142600 0 |
-3 29164143275 264 |
-2 29164188853 0 |
-3 29164191807 296 |
-8 29164214565 296 |
-4 29164215286 264 |
-2 29167863557 0 |
-3 29167866479 296 |
-8 29167889165 296 |
-4 29167889875 264 |
-2 29171538503 0 |
-3 29171541396 296 |
-8 29171564079 296 |
-4 29171564786 264 |
-2 29175213053 0 |
-3 29175215974 296 |
-8 29175238539 296 |
-4 29175239250 264 |
-2 29178840518 0 |
-6 29178841219 280 |
-3 29178843246 280 |
-8 29178846494 280 |
-4 29178847184 264 |
-2 29178888087 0 |
-3 29178891146 296 |
-8 29178913981 296 |
-4 29178914699 264 |
-2 29182516718 0 |
-3 29182517395 264 |
-2 29182562973 0 |
-3 29182565938 296 |
-8 29182588728 296 |
-4 29182589439 264 |
-2 29186237715 0 |
-3 29186240659 296 |
-8 29186263390 296 |
-4 29186264090 264 |
-2 29189912364 0 |
-3 29189915264 296 |
-8 29189938027 296 |
-4 29189938735 264 |
-2 29193587365 0 |
-3 29193590287 296 |
-8 29193612879 296 |
-4 29193613584 264 |
-2 29197214489 0 |
-6 29197215190 280 |
-3 29197217239 280 |
-8 29197220487 280 |
-4 29197221177 264 |
-2 29197262080 0 |
-3 29197265134 296 |
-8 29197288081 296 |
-4 29197288805 264 |
-2 29200890784 0 |
-3 29200891459 264 |
-2 29200937037 0 |
-3 29200939997 296 |
-8 29200962782 296 |
-4 29200963503 264 |
-2 29204611774 0 |
-3 29204614696 296 |
-8 29204637465 296 |
-4 29204638175 264 |
-2 29208286803 0 |
-3 29208289696 296 |
-8 29208312428 296 |
-4 29208313135 264 |
-2 29211961402 0 |
-3 29211964323 296 |
-8 29211986905 296 |
-4 29211987616 264 |
-2 29215588883 0 |
-6 29215589584 280 |
-3 29215591607 280 |
-8 29215594854 280 |
-4 29215595544 264 |
-2 29215636447 0 |
-3 29215639468 296 |
-8 29215662347 296 |
-4 29215663065 264 |
-2 29219265074 0 |
-3 29219265749 264 |
-2 29219311327 0 |
-3 29219314292 296 |
-8 29219337152 296 |
-4 29219337863 264 |
-2 29222986141 0 |
-3 29222989085 296 |
-8 29223011822 296 |
-4 29223012527 264 |
-2 29226660796 0 |
-3 29226663711 296 |
-8 29226686464 296 |
-4 29226687172 264 |
-2 29230335802 0 |
-3 29230338724 296 |
-8 29230361316 296 |
-4 29230362021 264 |
-2 29233962926 0 |
-6 29233963627 280 |
-3 29233965682 280 |
-8 29233968930 280 |
-4 29233969620 264 |
-2 29234010523 0 |
-3 29234013581 296 |
-8 29234036535 296 |
-4 29234037259 264 |
-2 29237639238 0 |
-3 29237639913 264 |
-2 29237685491 0 |
-3 29237688445 296 |
-8 29237711230 296 |
-4 29237711951 264 |
-2 29241360222 0 |
-3 29241363144 296 |
-8 29241385880 296 |
-4 29241386590 264 |
-2 29245034855 0 |
-3 29245037748 296 |
-8 29245060480 296 |
-4 29245061187 264 |
-2 29248709817 0 |
-3 29248712738 296 |
-8 29248735353 296 |
-4 29248736064 264 |
-2 29252336963 0 |
-6 29252337664 280 |
-3 29252339692 280 |
-8 29252342983 280 |
-4 29252343673 264 |
-2 29252384532 0 |
-3 29252387591 296 |
-8 29252410481 296 |
-4 29252411199 264 |
-2 29256013209 0 |
-3 29256013884 264 |
-2 29256059462 0 |
-3 29256062427 296 |
-8 29256085261 296 |
-4 29256085972 264 |
-2 29259734248 0 |
-3 29259737192 296 |
-8 29259759923 296 |
-4 29259760623 264 |
-2 29263409260 0 |
-3 29263412160 296 |
-8 29263434929 296 |
-4 29263435637 264 |
-2 29267083904 0 |
-3 29267086830 296 |
-8 29267109423 296 |
-4 29267110128 264 |
-2 29270711401 0 |
-6 29270712108 280 |
-3 29270714157 280 |
-8 29270717518 280 |
-4 29270718208 264 |
-2 29270758630 0 |
-3 29270761688 296 |
-8 29270784647 296 |
-4 29270785371 264 |
-2 29274387719 0 |
-3 29274388394 264 |
-2 29274433603 0 |
-3 29274436557 296 |
-8 29274459340 296 |
-4 29274460065 264 |
-2 29278108329 0 |
-3 29278111251 296 |
-8 29278134003 296 |
-4 29278134713 264 |
-2 29281783341 0 |
-3 29281786234 296 |
-8 29281808967 296 |
-4 29281809674 264 |
-2 29285457941 0 |
-3 29285460862 296 |
-8 29285483443 296 |
-4 29285484156 264 |
-2 29289085422 0 |
-6 29289086123 280 |
-3 29289088156 280 |
-8 29289091403 280 |
-4 29289092093 264 |
-2 29289132997 0 |
-3 29289136016 296 |
-8 29289158896 296 |
-4 29289159614 264 |
-2 29292761624 0 |
-3 29292762299 264 |
-2 29292807877 0 |
-3 29292810842 296 |
-8 29292833702 296 |
-4 29292834413 264 |
-2 29296482691 0 |
-3 29296485639 296 |
-8 29296508377 296 |
-4 29296509082 264 |
-2 29300157351 0 |
-3 29300160255 296 |
-8 29300183008 296 |
-4 29300183716 264 |
-2 29303832346 0 |
-3 29303835268 296 |
-8 29303857860 296 |
-4 29303858565 264 |
-2 29307459470 0 |
-6 29307460171 280 |
-3 29307462220 280 |
-8 29307465468 280 |
-4 29307466158 264 |
-2 29307507061 0 |
-3 29307510115 296 |
-8 29307533068 296 |
-4 29307533792 264 |
-2 29311135771 0 |
-3 29311136446 264 |
-2 29311182024 0 |
-3 29311184978 296 |
-8 29311207763 296 |
-4 29311208484 264 |
-2 29314856755 0 |
-3 29314859677 296 |
-8 29314882413 296 |
-4 29314883123 264 |
-2 29318531751 0 |
-3 29318534644 296 |
-8 29318557376 296 |
-4 29318558083 264 |
-2 29322206350 0 |
-3 29322209271 296 |
-8 29322231886 296 |
-4 29322232597 264 |
-2 29325833864 0 |
-6 29325834636 280 |
-3 29325836664 280 |
-8 29325839906 280 |
-4 29325840596 264 |
-2 29325881137 0 |
-3 29325884196 296 |
-8 29325907086 296 |
-4 29325907804 264 |
-2 29329510182 0 |
-3 29329510857 264 |
-2 29329556066 0 |
-3 29329559031 296 |
-8 29329581871 296 |
-4 29329582582 264 |
-2 29333230858 0 |
-3 29333233802 296 |
-8 29333256539 296 |
-4 29333257239 264 |
-2 29336905876 0 |
-3 29336908780 296 |
-8 29336931544 296 |
-4 29336932252 264 |
-2 29340580519 0 |
-3 29340583441 296 |
-8 29340606033 296 |
-4 29340606738 264 |
-2 29344208011 0 |
-6 29344208712 280 |
-3 29344210756 280 |
-8 29344214004 280 |
-4 29344214694 264 |
-2 29344255229 0 |
-3 29344258287 296 |
-8 29344281230 296 |
-4 29344281954 264 |
-2 29347884301 0 |
-3 29347884976 264 |
-2 29347930186 0 |
-3 29347933140 296 |
-8 29347955925 296 |
-4 29347956646 264 |
-2 29351604917 0 |
-3 29351607839 296 |
-8 29351630591 296 |
-4 29351631302 264 |
-2 29355279929 0 |
-3 29355282822 296 |
-8 29355305555 296 |
-4 29355306262 264 |
-2 29358954892 0 |
-3 29358957813 296 |
-8 29358980395 296 |
-4 29358981101 264 |
-2 29362582004 0 |
-6 29362582705 280 |
-3 29362584738 280 |
-8 29362588184 280 |
-4 29362588874 264 |
-2 29362629579 0 |
-3 29362632600 296 |
-8 29362655479 296 |
-4 29362656197 264 |
-2 29366258206 0 |
-3 29366258881 264 |
-2 29366304459 0 |
-3 29366307424 296 |
-8 29366330284 296 |
-4 29366330995 264 |
-2 29369979273 0 |
-3 29369982217 296 |
-8 29370004954 296 |
-4 29370005659 264 |
-2 29373653928 0 |
-3 29373656832 296 |
-8 29373679585 296 |
-4 29373680293 264 |
-2 29377328923 0 |
-3 29377331845 296 |
-8 29377354437 296 |
-4 29377355142 264 |
-2 29380956047 0 |
-6 29380956748 280 |
-3 29380958797 280 |
-8 29380962045 280 |
-4 29380962735 264 |
-2 29381003638 0 |
-3 29381006692 296 |
-8 29381029645 296 |
-4 29381030369 264 |
-2 29384632348 0 |
-3 29384633023 264 |
-2 29384678601 0 |
-3 29384681555 296 |
-8 29384704340 296 |
-4 29384705061 264 |
-2 29388353332 0 |
-3 29388356254 296 |
-8 29388378990 296 |
-4 29388379700 264 |
-2 29392028328 0 |
-3 29392031221 296 |
-8 29392053953 296 |
-4 29392054660 264 |
-2 29395702927 0 |
-3 29395705848 296 |
-8 29395728468 296 |
-4 29395729179 264 |
-2 29399330447 0 |
-6 29399331152 280 |
-3 29399333175 280 |
-8 29399336417 280 |
-4 29399337107 264 |
-2 29399378016 0 |
-3 29399381075 296 |
-8 29399403960 296 |
-4 29399404678 264 |
-2 29403006687 0 |
-3 29403007362 264 |
-2 29403052572 0 |
-3 29403055537 296 |
-8 29403078388 296 |
-4 29403079099 264 |
-2 29406727380 0 |
-3 29406730324 296 |
-8 29406753055 296 |
-4 29406753755 264 |
-2 29410402392 0 |
-3 29410405292 296 |
-8 29410428055 296 |
-4 29410428763 264 |
-2 29414077030 0 |
-3 29414079952 296 |
-8 29414102544 296 |
-4 29414103249 264 |
-2 29417704522 0 |
-6 29417705223 280 |
-3 29417707267 280 |
-8 29417710566 280 |
-4 29417711256 264 |
-2 29417752108 0 |
-3 29417755162 296 |
-8 29417778109 296 |
-4 29417778833 264 |
-2 29421380812 0 |
-3 29421381487 264 |
-2 29421426697 0 |
-3 29421429651 296 |
-8 29421452436 296 |
-4 29421453157 264 |
-2 29425101791 0 |
-3 29425104713 296 |
-8 29425127465 296 |
-4 29425128175 264 |
-2 29428776440 0 |
-3 29428779333 296 |
-8 29428802066 296 |
-4 29428802773 264 |
-2 29432451403 0 |
-3 29432454324 296 |
-8 29432476905 296 |
-4 29432477616 264 |
-2 29436078515 0 |
-6 29436079216 280 |
-3 29436081249 280 |
-8 29436084497 280 |
-4 29436085187 264 |
-2 29436126090 0 |
-3 29436129111 296 |
-8 29436151990 296 |
-4 29436152708 264 |
-2 29439754717 0 |
-3 29439755392 264 |
-2 29439800970 0 |
-3 29439803935 296 |
-8 29439826795 296 |
-4 29439827506 264 |
-2 29443475784 0 |
-3 29443478728 296 |
-8 29443501465 296 |
-4 29443502170 264 |
-2 29447150802 0 |
-3 29447153706 296 |
-8 29447176459 296 |
-4 29447177167 264 |
-2 29450825434 0 |
-3 29450828356 296 |
-8 29450850948 296 |
-4 29450851653 264 |
-2 29454452926 0 |
-6 29454453631 280 |
-3 29454455687 280 |
-8 29454458936 280 |
-4 29454459626 264 |
-2 29454500160 0 |
-3 29454503214 296 |
-8 29454526167 296 |
-4 29454526891 264 |
-2 29458129238 0 |
-3 29458129913 264 |
-2 29458175123 0 |
-3 29458178077 296 |
-8 29458200862 296 |
-4 29458201583 264 |
-2 29461849854 0 |
-3 29461852776 296 |
-8 29461875517 296 |
-4 29461876227 264 |
-2 29465524855 0 |
-3 29465527748 296 |
-8 29465550481 296 |
-4 29465551188 264 |
-2 29469199455 0 |
-3 29469202376 296 |
-8 29469224990 296 |
-4 29469225701 264 |
-2 29472826969 0 |
-6 29472827670 280 |
-3 29472829697 280 |
-8 29472832939 280 |
-4 29472833629 264 |
-2 29472874538 0 |
-3 29472877597 296 |
-8 29472900487 296 |
-4 29472901205 264 |
-2 29476503215 0 |
-3 29476503890 264 |
-2 29476549468 0 |
-3 29476552433 296 |
-8 29476575267 296 |
-4 29476575978 264 |
-2 29480224254 0 |
-3 29480227198 296 |
-8 29480249929 296 |
-4 29480250629 264 |
-2 29483898903 0 |
-3 29483901803 296 |
-8 29483924566 296 |
-4 29483925274 264 |
-2 29487573904 0 |
-3 29487576826 296 |
-8 29487599418 296 |
-4 29487600123 264 |
-2 29491201028 0 |
-6 29491201729 280 |
-3 29491203784 280 |
-8 29491207032 280 |
-4 29491207722 264 |
-2 29491248625 0 |
-3 29491251683 296 |
-8 29491274626 296 |
-4 29491275350 264 |
-2 29494877329 0 |
-3 29494878004 264 |
-2 29494923582 0 |
-3 29494926536 296 |
-8 29494949321 296 |
-4 29494950042 264 |
-2 29498598313 0 |
-3 29498601235 296 |
-8 29498623987 296 |
-4 29498624697 264 |
-2 29502272962 0 |
-3 29502275855 296 |
-8 29502298588 296 |
-4 29502299295 264 |
-2 29505947925 0 |
-3 29505950846 296 |
-8 29505973427 296 |
-4 29505974138 264 |
-2 29509575406 0 |
-6 29509576107 280 |
-3 29509578134 280 |
-8 29509581393 280 |
-4 29509582083 264 |
-2 29509622607 0 |
-3 29509625643 296 |
-8 29509648539 296 |
-4 29509649257 264 |
-2 29513251635 0 |
-3 29513252310 264 |
-2 29513297520 0 |
-3 29513300484 296 |
-8 29513323368 296 |
-4 29513324094 264 |
-2 29516972356 0 |
-3 29516975397 296 |
-8 29516998136 296 |
-4 29516998836 264 |
-2 29520647109 0 |
-3 29520650035 296 |
-8 29520672723 296 |
-4 29520673431 264 |
-2 29524322061 0 |
-3 29524324987 296 |
-8 29524347530 296 |
-4 29524348235 264 |
-2 29527949509 0 |
-6 29527950214 280 |
-3 29527952265 280 |
-8 29527955513 280 |
-4 29527956216 264 |
-2 29527996737 0 |
-3 29527999795 296 |
-8 29528022670 296 |
-4 29528023394 264 |
-2 29531625755 0 |
-3 29531626430 264 |
-2 29531671639 0 |
-3 29531674593 296 |
-8 29531697354 296 |
-4 29531698075 264 |
-2 29535346706 0 |
-3 29535349628 296 |
-8 29535372314 296 |
-4 29535373024 264 |
-2 29539021289 0 |
-3 29539024182 296 |
-8 29539046865 296 |
-4 29539047572 264 |
-2 29542696202 0 |
-3 29542699123 296 |
-8 29542721688 296 |
-4 29542722399 264 |
-2 29546323667 0 |
-6 29546324368 280 |
-3 29546326395 280 |
-8 29546329643 280 |
-4 29546330333 264 |
-2 29546371236 0 |
-3 29546374295 296 |
-8 29546397125 296 |
-4 29546397843 264 |
-2 29549999852 0 |
-3 29550000527 264 |
-2 29550045737 0 |
-3 29550048702 296 |
-8 29550071492 296 |
-4 29550072203 264 |
-2 29553720842 0 |
-3 29553723786 296 |
-8 29553746517 296 |
-4 29553747217 264 |
-2 29557395491 0 |
-3 29557398391 296 |
-8 29557421154 296 |
-4 29557421862 264 |
-2 29561070492 0 |
-3 29561073414 296 |
-8 29561096006 296 |
-4 29561096711 264 |
-2 29564697616 0 |
-6 29564698317 280 |
-3 29564700372 280 |
-8 29564703633 280 |
-4 29564704323 264 |
-2 29564745213 0 |
-3 29564748271 296 |
-8 29564771214 296 |
-4 29564771938 264 |
-2 29568373917 0 |
-3 29568374592 264 |
-2 29568420170 0 |
-3 29568423124 296 |
-8 29568445909 296 |
-4 29568446630 264 |
-2 29572094901 0 |
-3 29572097823 296 |
-8 29572120575 296 |
-4 29572121285 264 |
-2 29575769550 0 |
-3 29575772443 296 |
-8 29575795176 296 |
-4 29575795883 264 |
-2 29579444513 0 |
-3 29579447433 296 |
-8 29579470015 296 |
-4 29579470726 264 |
-2 29583071994 0 |
-6 29583072695 280 |
-3 29583074723 280 |
-8 29583077970 280 |
-4 29583078660 264 |
-2 29583119195 0 |
-3 29583122214 296 |
-8 29583145094 296 |
-4 29583145812 264 |
-2 29586748190 0 |
-3 29586748865 264 |
-2 29586794075 0 |
-3 29586797040 296 |
-8 29586819900 296 |
-4 29586820611 264 |
-2 29590468889 0 |
-3 29590471837 296 |
-8 29590494575 296 |
-4 29590495280 264 |
-2 29594143912 0 |
-3 29594146816 296 |
-8 29594169575 296 |
-4 29594170288 264 |
-2 29597818550 0 |
-3 29597821476 296 |
-8 29597844069 296 |
-4 29597844774 264 |
-2 29601446047 0 |
-6 29601446748 280 |
-3 29601448804 280 |
-8 29601452051 280 |
-4 29601452741 264 |
-2 29601493644 0 |
-3 29601496698 296 |
-8 29601519662 296 |
-4 29601520386 264 |
-2 29605122365 0 |
-3 29605123040 264 |
-2 29605168249 0 |
-3 29605171203 296 |
-8 29605193986 296 |
-4 29605194707 264 |
-2 29608843338 0 |
-3 29608846260 296 |
-8 29608868996 296 |
-4 29608869706 264 |
-2 29612517971 0 |
-3 29612520864 296 |
-8 29612543596 296 |
-4 29612544303 264 |
-2 29616192933 0 |
-3 29616195854 296 |
-8 29616218469 296 |
-4 29616219180 264 |
-2 29619820079 0 |
-6 29619820780 280 |
-3 29619822813 280 |
-8 29619826055 280 |
-4 29619826745 264 |
-2 29619867654 0 |
-3 29619870713 296 |
-8 29619893603 296 |
-4 29619894321 264 |
-2 29623496330 0 |
-3 29623497005 264 |
-2 29623542583 0 |
-3 29623545548 296 |
-8 29623568383 296 |
-4 29623569094 264 |
-2 29627217375 0 |
-3 29627220319 296 |
-8 29627243050 296 |
-4 29627243750 264 |
-2 29630892024 0 |
-3 29630894924 296 |
-8 29630917687 296 |
-4 29630918395 264 |
-2 29634567025 0 |
-3 29634569947 296 |
-8 29634592539 296 |
-4 29634593244 264 |
-2 29638194149 0 |
-6 29638194850 280 |
-3 29638196899 280 |
-8 29638200147 280 |
-4 29638200837 264 |
-2 29638241740 0 |
-3 29638244794 296 |
-8 29638267741 296 |
-4 29638268465 264 |
-2 29641870444 0 |
-3 29641871119 264 |
-2 29641916697 0 |
-3 29641919651 296 |
-8 29641942434 296 |
-4 29641943155 264 |
-2 29645591423 0 |
-3 29645594344 296 |
-8 29645617097 296 |
-4 29645617807 264 |
-2 29649266435 0 |
-3 29649269328 296 |
-8 29649292061 296 |
-4 29649292768 264 |
-2 29652941035 0 |
-3 29652943956 296 |
-8 29652966537 296 |
-4 29652967248 264 |
-2 29656568516 0 |
-6 29656569221 280 |
-3 29656571249 280 |
-8 29656574497 280 |
-4 29656575187 264 |
-2 29656616091 0 |
-3 29656619110 296 |
-8 29656641990 296 |
-4 29656642708 264 |
-2 29660244718 0 |
-3 29660245393 264 |
-2 29660290971 0 |
-3 29660293936 296 |
-8 29660316796 296 |
-4 29660317507 264 |
-2 29663965785 0 |
-3 29663968733 296 |
-8 29663991471 296 |
-4 29663992182 264 |
-2 29667640445 0 |
-3 29667643349 296 |
-8 29667666102 296 |
-4 29667666810 264 |
-2 29671315440 0 |
-3 29671318362 296 |
-8 29671340954 296 |
-4 29671341659 264 |
-2 29674942564 0 |
-6 29674943265 280 |
-3 29674945314 280 |
-8 29674948562 280 |
-4 29674949252 264 |
-2 29674990155 0 |
-3 29674993209 296 |
-8 29675016162 296 |
-4 29675016886 264 |
-2 29678618865 0 |
-3 29678619540 264 |
-2 29678665118 0 |
-3 29678668072 296 |
-8 29678690857 296 |
-4 29678691578 264 |
-2 29682339849 0 |
-3 29682342771 296 |
-8 29682365507 296 |
-4 29682366217 264 |
-2 29686014482 0 |
-3 29686017375 296 |
-8 29686040107 296 |
-4 29686040814 264 |
-2 29689689444 0 |
-3 29689692365 296 |
-8 29689714980 296 |
-4 29689715691 264 |
-2 29693316590 0 |
-6 29693317291 280 |
-3 29693319324 280 |
-8 29693322566 280 |
-4 29693323256 264 |
-2 29693364165 0 |
-3 29693367224 296 |
-8 29693390114 296 |
-4 29693390832 264 |
-2 29696992841 0 |
-3 29696993516 264 |
-2 29697039094 0 |
-3 29697042059 296 |
-8 29697064894 296 |
-4 29697065605 264 |
-2 29700713886 0 |
-3 29700716830 296 |
-8 29700739561 296 |
-4 29700740261 264 |
-2 29704388898 0 |
-3 29704391798 296 |
-8 29704414561 296 |
-4 29704415269 264 |
-2 29708063536 0 |
-3 29708066458 296 |
-8 29708089050 296 |
-4 29708089755 264 |
-2 29711691028 0 |
-6 29711691729 280 |
-3 29711693778 280 |
-8 29711697040 280 |
-4 29711697730 264 |
-2 29711738251 0 |
-3 29711741305 296 |
-8 29711764259 296 |
-4 29711764983 264 |
-2 29715367335 0 |
-3 29715368010 264 |
-2 29715413219 0 |
-3 29715416173 296 |
-8 29715438956 296 |
-4 29715439677 264 |
-2 29719087945 0 |
-3 29719090867 296 |
-8 29719113619 296 |
-4 29719114329 264 |
-2 29722762957 0 |
-3 29722765850 296 |
-8 29722788583 296 |
-4 29722789290 264 |
-2 29726437557 0 |
-3 29726440478 296 |
-8 29726463065 296 |
-4 29726463776 264 |
-2 29730065043 0 |
-6 29730065748 280 |
-3 29730067771 280 |
-8 29730071019 280 |
-4 29730071709 264 |
-2 29730112613 0 |
-3 29730115632 296 |
-8 29730138518 296 |
-4 29730139236 264 |
-2 29733741240 0 |
-3 29733741915 264 |
-2 29733787493 0 |
-3 29733790458 296 |
-8 29733813329 296 |
-4 29733814040 264 |
-2 29737462318 0 |
-3 29737465266 296 |
-8 29737488004 296 |
-4 29737488709 264 |
-2 29741136978 0 |
-3 29741139882 296 |
-8 29741162635 296 |
-4 29741163343 264 |
-2 29744811973 0 |
-3 29744814895 296 |
-8 29744837487 296 |
-4 29744838192 264 |
-2 29748439097 0 |
-6 29748439798 280 |
-3 29748441841 280 |
-8 29748445090 280 |
-4 29748445780 264 |
-2 29748486683 0 |
-3 29748489730 296 |
-8 29748512692 296 |
-4 29748513416 264 |
-2 29752115387 0 |
-3 29752116062 264 |
-2 29752161640 0 |
-3 29752164594 296 |
-8 29752187379 296 |
-4 29752188100 264 |
-2 29755836371 0 |
-3 29755839293 296 |
-8 29755862029 296 |
-4 29755862739 264 |
-2 29759511367 0 |
-3 29759514260 296 |
-8 29759536992 296 |
-4 29759537699 264 |
-2 29763185966 0 |
-3 29763188887 296 |
-8 29763211502 296 |
-4 29763212213 264 |
-2 29766813480 0 |
-6 29766814181 280 |
-3 29766816214 280 |
-8 29766819456 280 |
-4 29766820146 264 |
-2 29766861055 0 |
-3 29766864114 296 |
-8 29766887004 296 |
-4 29766887722 264 |
-2 29770489732 0 |
-3 29770490407 264 |
-2 29770535616 0 |
-3 29770538581 296 |
-8 29770561416 296 |
-4 29770562127 264 |
-2 29774210408 0 |
-3 29774213352 296 |
-8 29774236083 296 |
-4 29774236783 264 |
-2 29777885420 0 |
-3 29777888325 296 |
-8 29777911089 296 |
-4 29777911797 264 |
-2 29781560064 0 |
-3 29781562991 296 |
-8 29781585583 296 |
-4 29781586288 264 |
-2 29785187561 0 |
-6 29785188266 280 |
-3 29785190322 280 |
-8 29785193571 280 |
-4 29785194261 264 |
-2 29785235164 0 |
-3 29785238217 296 |
-8 29785261159 296 |
-4 29785261883 264 |
-2 29788863862 0 |
-3 29788864537 264 |
-2 29788909747 0 |
-3 29788912701 296 |
-8 29788935486 296 |
-4 29788936207 264 |
-2 29792584841 0 |
-3 29792587763 296 |
-8 29792610521 296 |
-4 29792611231 264 |
-2 29796259496 0 |
-3 29796262389 296 |
-8 29796285121 296 |
-4 29796285828 264 |
-2 29799934458 0 |
-3 29799937385 296 |
-8 29799959966 296 |
-4 29799960677 264 |
-2 29803561576 0 |
-6 29803562277 280 |
-3 29803564300 280 |
-8 29803567547 280 |
-4 29803568237 264 |
-2 29803609140 0 |
-3 29803612155 296 |
-8 29803635045 296 |
-4 29803635763 264 |
-2 29807237773 0 |
-3 29807238448 264 |
-2 29807284026 0 |
-3 29807286991 296 |
-8 29807309851 296 |
-4 29807310562 264 |
-2 29810958840 0 |
-3 29810961788 296 |
-8 29810984526 296 |
-4 29810985231 264 |
-2 29814633500 0 |
-3 29814636404 296 |
-8 29814659164 296 |
-4 29814659873 264 |
-2 29818308501 0 |
-3 29818311427 296 |
-8 29818334020 296 |
-4 29818334725 264 |
-2 29821935630 0 |
-6 29821936331 280 |
-3 29821938386 280 |
-8 29821941843 280 |
-4 29821942533 264 |
-2 29821983227 0 |
-3 29821986285 296 |
-8 29822009239 296 |
-4 29822009963 264 |
-2 29825611942 0 |
-3 29825612617 264 |
-2 29825658195 0 |
-3 29825661149 296 |
-8 29825683934 296 |
-4 29825684655 264 |
-2 29829332926 0 |
-3 29829335848 296 |
-8 29829358584 296 |
-4 29829359294 264 |
-2 29833007922 0 |
-3 29833010815 296 |
-8 29833033547 296 |
-4 29833034254 264 |
-2 29836682521 0 |
-3 29836685442 296 |
-8 29836708057 296 |
-4 29836708768 264 |
-2 29840310035 0 |
-6 29840310736 280 |
-3 29840312759 280 |
-8 29840315985 280 |
-4 29840316669 264 |
-2 29840357599 0 |
-3 29840360641 296 |
-8 29840383510 296 |
-4 29840384228 264 |
-2 29843986237 0 |
-3 29843986912 264 |
-2 29844032490 0 |
-3 29844035461 296 |
-8 29844058295 296 |
-4 29844059006 264 |
-2 29847707282 0 |
-3 29847710226 296 |
-8 29847732957 296 |
-4 29847733657 264 |
-2 29851381931 0 |
-3 29851384831 296 |
-8 29851407594 296 |
-4 29851408302 264 |
-2 29855056932 0 |
-3 29855059854 296 |
-8 29855082446 296 |
-4 29855083151 264 |
-2 29858684056 0 |
-6 29858684761 280 |
-3 29858686812 280 |
-8 29858690298 280 |
-4 29858690988 264 |
-2 29858731653 0 |
-3 29858734706 296 |
-8 29858757736 296 |
-4 29858758460 264 |
-2 29862360439 0 |
-3 29862361114 264 |
-2 29862406324 0 |
-3 29862409278 296 |
-8 29862432063 296 |
-4 29862432790 264 |
-2 29866081418 0 |
-3 29866084340 296 |
-8 29866107092 296 |
-4 29866107802 264 |
-2 29869756067 0 |
-3 29869758960 296 |
-8 29869781693 296 |
-4 29869782400 264 |
-2 29873431030 0 |
-3 29873433951 296 |
-8 29873456532 296 |
-4 29873457243 264 |
-2 29877058142 0 |
-6 29877058843 280 |
-3 29877060866 280 |
-8 29877064135 280 |
-4 29877064825 264 |
-2 29877105706 0 |
-3 29877108742 296 |
-8 29877131633 296 |
-4 29877132351 264 |
-2 29880734361 0 |
-3 29880735036 264 |
-2 29880780614 0 |
-3 29880783578 296 |
-8 29880806452 296 |
-4 29880807178 264 |
-2 29884455444 0 |
-3 29884458487 296 |
-8 29884481225 296 |
-4 29884481925 264 |
-2 29888130203 0 |
-3 29888133129 296 |
-8 29888155817 296 |
-4 29888156525 264 |
-2 29891805155 0 |
-3 29891808081 296 |
-8 29891830624 296 |
-4 29891831329 264 |
-2 29895432234 0 |
-6 29895432935 280 |
-3 29895434995 280 |
-8 29895438244 280 |
-4 29895438947 264 |
-2 29895479837 0 |
-3 29895482895 296 |
-8 29895505770 296 |
-4 29895506494 264 |
-2 29899108491 0 |
-3 29899109166 264 |
-2 29899154744 0 |
-3 29899157698 296 |
-8 29899180456 296 |
-4 29899181177 264 |
-2 29902829448 0 |
-3 29902832370 296 |
-8 29902855056 296 |
-4 29902855766 264 |
-2 29906504394 0 |
-3 29906507287 296 |
-8 29906529970 296 |
-4 29906530677 264 |
-2 29910179307 0 |
-3 29910182228 296 |
-8 29910204793 296 |
-4 29910205504 264 |
-2 29913806410 0 |
-6 29913807122 280 |
-3 29913809149 280 |
-8 29913812456 280 |
-4 29913813146 264 |
-2 29913853989 0 |
-3 29913857031 296 |
-8 29913879861 296 |
-4 29913880579 264 |
-2 29917482589 0 |
-3 29917483264 264 |
-2 29917528842 0 |
-3 29917531807 296 |
-8 29917554597 296 |
-4 29917555308 264 |
-2 29921203584 0 |
-3 29921206528 296 |
-8 29921229259 296 |
-4 29921229959 264 |
-2 29924878596 0 |
-3 29924881496 296 |
-8 29924904265 296 |
-4 29924904978 264 |
-2 29928553240 0 |
-3 29928556166 296 |
-8 29928578759 296 |
-4 29928579464 264 |
-2 29932180737 0 |
-6 29932181438 280 |
-3 29932183487 280 |
-8 29932186741 280 |
-4 29932187431 264 |
-2 29932228329 0 |
-3 29932231382 296 |
-8 29932254342 296 |
-4 29932255066 264 |
-2 29935857049 0 |
-3 29935857724 264 |
-2 29935902934 0 |
-3 29935905888 296 |
-8 29935928673 296 |
-4 29935929394 264 |
-2 29939578028 0 |
-3 29939580950 296 |
-8 29939603702 296 |
-4 29939604412 264 |
-2 29943252677 0 |
-3 29943255570 296 |
-8 29943278303 296 |
-4 29943279010 264 |
-2 29946927640 0 |
-3 29946930561 296 |
-8 29946953142 296 |
-4 29946953857 264 |
-2 29950554752 0 |
-6 29950555453 280 |
-3 29950557491 280 |
-8 29950560739 280 |
-4 29950561429 264 |
-2 29950602333 0 |
-3 29950605353 296 |
-8 29950628238 296 |
-4 29950628956 264 |
-2 29954230965 0 |
-3 29954231640 264 |
-2 29954277218 0 |
-3 29954280183 296 |
-8 29954303043 296 |
-4 29954303754 264 |
-2 29957952032 0 |
-3 29957954976 296 |
-8 29957977713 296 |
-4 29957978418 264 |
-2 29961627050 0 |
-3 29961629954 296 |
-8 29961652707 296 |
-4 29961653415 264 |
-2 29965301682 0 |
-3 29965304604 296 |
-8 29965327196 296 |
-4 29965327901 264 |
-2 29968929174 0 |
-6 29968929875 280 |
-3 29968931924 280 |
-8 29968935437 280 |
-4 29968936127 264 |
-2 29968976397 0 |
-3 29968979451 296 |
-8 29969002412 296 |
-4 29969003136 264 |
-2 29972605486 0 |
-3 29972606161 264 |
-2 29972651371 0 |
-3 29972654325 296 |
-8 29972677110 296 |
-4 29972677831 264 |
-2 29976326102 0 |
-3 29976329024 296 |
-8 29976351760 296 |
-4 29976352470 264 |
-2 29980001098 0 |
-3 29980003991 296 |
-8 29980026723 296 |
-4 29980027430 264 |
-2 29983675697 0 |
-3 29983678618 296 |
-8 29983701233 296 |
-4 29983701944 264 |
-2 29987303211 0 |
-6 29987303916 280 |
-3 29987305946 280 |
-8 29987309187 280 |
-4 29987309877 264 |
-2 29987350786 0 |
-3 29987353845 296 |
-8 29987376741 296 |
-4 29987377459 264 |
-2 29990979468 0 |
-3 29990980143 264 |
-2 29991025353 0 |
-3 29991028318 296 |
-8 29991051158 296 |
-4 29991051869 264 |
-2 29994700513 0 |
-3 29994703457 296 |
-8 29994726188 296 |
-4 29994726888 264 |
-2 29998375162 0 |
-3 29998378072 296 |
-8 29998400836 296 |
-4 29998401544 264 |
-2 30002050174 0 |
-3 30002053096 296 |
-8 30002075704 296 |
-4 30002076409 264 |
-2 30005677314 0 |
-6 30005678015 280 |
-3 30005680064 280 |
-8 30005683375 280 |
-4 30005684065 264 |
-2 30005724906 0 |
-3 30005727964 296 |
-8 30005750925 296 |
-4 30005751649 264 |
-2 30009353632 0 |
-3 30009354307 264 |
-2 30009399516 0 |
-3 30009402470 296 |
-8 30009425253 296 |
-4 30009425974 264 |
-2 30013074605 0 |
-3 30013077527 296 |
-8 30013100279 296 |
-4 30013100990 264 |
-2 30016749254 0 |
-3 30016752147 296 |
-8 30016774880 296 |
-4 30016775587 264 |
-2 30020424217 0 |
-3 30020427138 296 |
-8 30020449719 296 |
-4 30020450430 264 |
-2 30024051329 0 |
-6 30024052030 280 |
-3 30024054068 280 |
-8 30024057316 280 |
-4 30024058006 264 |
-2 30024098910 0 |
-3 30024101929 296 |
-8 30024124815 296 |
-4 30024125533 264 |
-2 30027727542 0 |
-3 30027728217 264 |
-2 30027773795 0 |
-3 30027776760 296 |
-8 30027799620 296 |
-4 30027800331 264 |
-2 30031448609 0 |
-3 30031451553 296 |
-8 30031474290 296 |
-4 30031474995 264 |
-2 30035123627 0 |
-3 30035126531 296 |
-8 30035149284 296 |
-4 30035149992 264 |
-2 30038798259 0 |
-3 30038801181 296 |
-8 30038823773 296 |
-4 30038824478 264 |
-2 30042425751 0 |
-6 30042426452 280 |
-3 30042428507 280 |
-8 30042431755 280 |
-4 30042432445 264 |
-2 30042472980 0 |
-3 30042476038 296 |
-8 30042499000 296 |
-4 30042499724 264 |
-2 30046102074 0 |
-3 30046102749 264 |
-2 30046147959 0 |
-3 30046150913 296 |
-8 30046173698 296 |
-4 30046174419 264 |
-2 30049822690 0 |
-3 30049825612 296 |
-8 30049848348 296 |
-4 30049849058 264 |
-2 30053497686 0 |
-3 30053500579 296 |
-8 30053523311 296 |
-4 30053524018 264 |
-2 30057172285 0 |
-3 30057175206 296 |
-8 30057197821 296 |
-4 30057198532 264 |
-2 30060799799 0 |
-6 30060800504 280 |
-3 30060802534 280 |
-8 30060805775 280 |
-4 30060806465 264 |
-2 30060847374 0 |
-3 30060850433 296 |
-8 30060873329 296 |
-4 30060874053 264 |
-2 30064476056 0 |
-3 30064476731 264 |
-2 30064522309 0 |
-3 30064525274 296 |
-8 30064548109 296 |
-4 30064548820 264 |
-2 30068197101 0 |
-3 30068200045 296 |
-8 30068222776 296 |
-4 30068223476 264 |
-2 30071871750 0 |
-3 30071874650 296 |
-8 30071897413 296 |
-4 30071898121 264 |
-2 30075546751 0 |
-3 30075549673 296 |
-8 30075572265 296 |
-4 30075572970 264 |
-2 30079173875 0 |
-6 30079174576 280 |
-3 30079176625 280 |
-8 30079179884 280 |
-4 30079180574 264 |
-2 30079221466 0 |
-3 30079224520 296 |
-8 30079247482 296 |
-4 30079248206 264 |
-2 30082850181 0 |
-3 30082850856 264 |
-2 30082896434 0 |
-3 30082899388 296 |
-8 30082922171 296 |
-4 30082922892 264 |
-2 30086571160 0 |
-3 30086574082 296 |
-8 30086596841 296 |
-4 30086597551 264 |
-2 30090245815 0 |
-3 30090248708 296 |
-8 30090271440 296 |
-4 30090272143 264 |
-2 30093920777 0 |
-3 30093923698 296 |
-8 30093946280 296 |
-4 30093946991 264 |
-2 30097547890 0 |
-6 30097548591 280 |
-3 30097550629 280 |
-8 30097553864 280 |
-4 30097554554 264 |
-2 30097595470 0 |
-3 30097598491 296 |
-8 30097621386 296 |
-4 30097622104 264 |
-2 30101224114 0 |
-3 30101224789 264 |
-2 30101270367 0 |
-3 30101273332 296 |
-8 30101296192 296 |
-4 30101296903 264 |
-2 30104945181 0 |
-3 30104948129 296 |
-8 30104970867 296 |
-4 30104971572 264 |
-2 30108620204 0 |
-3 30108623109 296 |
-8 30108645861 296 |
-4 30108646569 264 |
-2 30112294836 0 |
-3 30112297758 296 |
-8 30112320350 296 |
-4 30112321055 264 |
-2 30115922328 0 |
-6 30115923033 280 |
-3 30115925089 280 |
-8 30115928338 280 |
-4 30115929028 264 |
-2 30115969562 0 |
-3 30115972615 296 |
-8 30115995577 296 |
-4 30115996301 264 |
-2 30119598651 0 |
-3 30119599326 264 |
-2 30119644536 0 |
-3 30119647490 296 |
-8 30119670275 296 |
-4 30119670996 264 |
-2 30123319267 0 |
-3 30123322189 296 |
-8 30123344930 296 |
-4 30123345640 264 |
-2 30126994268 0 |
-3 30126997161 296 |
-8 30127019894 296 |
-4 30127020601 264 |
-2 30130669231 0 |
-3 30130672158 296 |
-8 30130694772 296 |
-4 30130695483 264 |
-2 30134296382 0 |
-6 30134297083 280 |
-3 30134299111 280 |
-8 30134302380 280 |
-4 30134303070 264 |
-2 30134343951 0 |
-3 30134346993 296 |
-8 30134369884 296 |
-4 30134370602 264 |
-2 30137972611 0 |
-3 30137973286 264 |
-2 30138018864 0 |
-3 30138021829 296 |
-8 30138044664 296 |
-4 30138045375 264 |
-2 30141693656 0 |
-3 30141696600 296 |
-8 30141719331 296 |
-4 30141720031 264 |
-2 30145368305 0 |
-3 30145371205 296 |
-8 30145393968 296 |
-4 30145394680 264 |
-2 30149043306 0 |
-3 30149046228 296 |
-8 30149068820 296 |
-4 30149069525 264 |
-2 30152670430 0 |
-6 30152671131 280 |
-3 30152673192 280 |
-8 30152676452 280 |
-4 30152677142 264 |
-2 30152718032 0 |
-3 30152721085 296 |
-8 30152744036 296 |
-4 30152744760 264 |
-2 30156346742 0 |
-3 30156347417 264 |
-2 30156392995 0 |
-3 30156395949 296 |
-8 30156418734 296 |
-4 30156419455 264 |
-2 30160067726 0 |
-3 30160070648 296 |
-8 30160093400 296 |
-4 30160094110 264 |
-2 30163742375 0 |
-3 30163745268 296 |
-8 30163768001 296 |
-4 30163768708 264 |
-2 30167417338 0 |
-3 30167420259 296 |
-8 30167442840 296 |
-4 30167443551 264 |
-2 30171044819 0 |
-6 30171045520 280 |
-3 30171047548 280 |
-8 30171050795 280 |
-4 30171051485 264 |
-2 30171092020 0 |
-3 30171095035 296 |
-8 30171117930 296 |
-4 30171118648 264 |
-2 30174721026 0 |
-3 30174721701 264 |
-2 30174766911 0 |
-3 30174769876 296 |
-8 30174792736 296 |
-4 30174793447 264 |
-2 30178441725 0 |
-3 30178444673 296 |
-8 30178467411 296 |
-4 30178468116 264 |
-2 30182116748 0 |
-3 30182119652 296 |
-8 30182142405 296 |
-4 30182143113 264 |
-2 30185791380 0 |
-3 30185794302 296 |
-8 30185816894 296 |
-4 30185817599 264 |
-2 30189418872 0 |
-6 30189419577 280 |
-3 30189421633 280 |
-8 30189424882 280 |
-4 30189425572 264 |
-2 30189466475 0 |
-3 30189469528 296 |
-8 30189492481 296 |
-4 30189493205 264 |
-2 30193095184 0 |
-3 30193095859 264 |
-2 30193141069 0 |
-3 30193144023 296 |
-8 30193166808 296 |
-4 30193167529 264 |
-2 30196816163 0 |
-3 30196819085 296 |
-8 30196841821 296 |
-4 30196842531 264 |
-2 30200490796 0 |
-3 30200493689 296 |
-8 30200516421 296 |
-4 30200517128 264 |
-2 30204165758 0 |
-3 30204168679 296 |
-8 30204191294 296 |
-4 30204192005 264 |
-2 30207792904 0 |
-6 30207793605 280 |
-3 30207795632 280 |
-8 30207798885 280 |
-4 30207799575 264 |
-2 30207840473 0 |
-3 30207843515 296 |
-8 30207866395 296 |
-4 30207867113 264 |
-2 30211469122 0 |
-3 30211469797 264 |
-2 30211515375 0 |
-3 30211518340 296 |
-8 30211541175 296 |
-4 30211541886 264 |
-2 30215190167 0 |
-3 30215193111 296 |
-8 30215215842 296 |
-4 30215216542 264 |
-2 30218864816 0 |
-3 30218867716 296 |
-8 30218890479 296 |
-4 30218891187 264 |
-2 30222539817 0 |
-3 30222542739 296 |
-8 30222565331 296 |
-4 30222566036 264 |
-2 30226166941 0 |
-6 30226167642 280 |
-3 30226169697 280 |
-8 30226172945 280 |
-4 30226173635 264 |
-2 30226214538 0 |
-3 30226217596 296 |
-8 30226240539 296 |
-4 30226241263 264 |
-2 30229843242 0 |
-3 30229843917 264 |
-2 30229889495 0 |
-3 30229892449 296 |
-8 30229915234 296 |
-4 30229915955 264 |
-2 30233564226 0 |
-3 30233567148 296 |
-8 30233589900 296 |
-4 30233590610 264 |
-2 30237239238 0 |
-3 30237242131 296 |
-8 30237264864 296 |
-4 30237265571 264 |
-2 30240913838 0 |
-3 30240916759 296 |
-8 30240939340 296 |
-4 30240940051 264 |
-2 30244541326 0 |
-6 30244542027 280 |
-3 30244544059 280 |
-8 30244547317 280 |
-4 30244548007 264 |
-2 30244588899 0 |
-3 30244591935 296 |
-8 30244614826 296 |
-4 30244615544 264 |
-2 30248217554 0 |
-3 30248218229 264 |
-2 30248263807 0 |
-3 30248266771 296 |
-8 30248289645 296 |
-4 30248290371 264 |
-2 30251938637 0 |
-3 30251941680 296 |
-8 30251964418 296 |
-4 30251965118 264 |
-2 30255613396 0 |
-3 30255616322 296 |
-8 30255639015 296 |
-4 30255639728 264 |
-2 30259287990 0 |
-3 30259290912 296 |
-8 30259313460 296 |
-4 30259314165 264 |
-2 30262915438 0 |
-6 30262916139 280 |
-3 30262918183 280 |
-8 30262921431 280 |
-4 30262922140 264 |
-2 30262963024 0 |
-3 30262966083 296 |
-8 30262988968 296 |
-4 30262989692 264 |
-2 30266591684 0 |
-3 30266592359 264 |
-2 30266637937 0 |
-3 30266640891 296 |
-8 30266663649 296 |
-4 30266664370 264 |
-2 30270312641 0 |
-3 30270315563 296 |
-8 30270338249 296 |
-4 30270338959 264 |
-2 30273987587 0 |
-3 30273990480 296 |
-8 30274013163 296 |
-4 30274013870 264 |
-2 30277662137 0 |
-3 30277665058 296 |
-8 30277687627 296 |
-4 30277688333 264 |
-2 30281289602 0 |
-6 30281290303 280 |
-3 30281292331 280 |
-8 30281295589 280 |
-4 30281296279 264 |
-2 30281337171 0 |
-3 30281340230 296 |
-8 30281363065 296 |
-4 30281363783 264 |
-2 30284965793 0 |
-3 30284966468 264 |
-2 30285012046 0 |
-3 30285015011 296 |
-8 30285037801 296 |
-4 30285038512 264 |
-2 30288686788 0 |
-3 30288689732 296 |
-8 30288712463 296 |
-4 30288713163 264 |
-2 30292361437 0 |
-3 30292364337 296 |
-8 30292387100 296 |
-4 30292387808 264 |
-2 30296036438 0 |
-3 30296039360 296 |
-8 30296061952 296 |
-4 30296062657 264 |
-2 30299663562 0 |
-6 30299664263 280 |
-3 30299666312 280 |
-8 30299669611 280 |
-4 30299670301 264 |
-2 30299711153 0 |
-3 30299714207 296 |
-8 30299737154 296 |
-4 30299737878 264 |
-2 30303339857 0 |
-3 30303340532 264 |
-2 30303386110 0 |
-3 30303389064 296 |
-8 30303411847 296 |
-4 30303412568 264 |
-2 30307060836 0 |
-3 30307063758 296 |
-8 30307086510 296 |
-4 30307087220 264 |
-2 30310735848 0 |
-3 30310738741 296 |
-8 30310761474 296 |
-4 30310762181 264 |
-2 30314410448 0 |
-3 30314413369 296 |
-8 30314435950 296 |
-4 30314436661 264 |
-2 30318037929 0 |
-6 30318038634 280 |
-3 30318040662 280 |
-8 30318043910 280 |
-4 30318044600 264 |
-2 30318085504 0 |
-3 30318088523 296 |
-8 30318111403 296 |
-4 30318112121 264 |
-2 30321714131 0 |
-3 30321714806 264 |
-2 30321760384 0 |
-3 30321763349 296 |
-8 30321786209 296 |
-4 30321786925 264 |
-2 30325435198 0 |
-3 30325438146 296 |
-8 30325460884 296 |
-4 30325461589 264 |
-2 30329109858 0 |
-3 30329112768 296 |
-8 30329135515 296 |
-4 30329136223 264 |
-2 30332784853 0 |
-3 30332787775 296 |
-8 30332810383 296 |
-4 30332811088 264 |
-2 30336411993 0 |
-6 30336412694 280 |
-3 30336414738 280 |
-8 30336417997 280 |
-4 30336418687 264 |
-2 30336459579 0 |
-3 30336462633 296 |
-8 30336485586 296 |
-4 30336486310 264 |
-2 30340088289 0 |
-3 30340088964 264 |
-2 30340134542 0 |
-3 30340137496 296 |
-8 30340160281 296 |
-4 30340161002 264 |
-2 30343809273 0 |
-3 30343812195 296 |
-8 30343834931 296 |
-4 30343835641 264 |
-2 30347483906 0 |
-3 30347486799 296 |
-8 30347509531 296 |
-4 30347510238 264 |
-2 30351158868 0 |
-3 30351161789 296 |
-8 30351184404 296 |
-4 30351185115 264 |
-2 30354786014 0 |
-6 30354786715 280 |
-3 30354788748 280 |
-8 30354792309 280 |
-4 30354792999 264 |
-2 30354833589 0 |
-3 30354836648 296 |
-8 30354859538 296 |
-4 30354860256 264 |
-2 30358462265 0 |
-3 30358462940 264 |
-2 30358508518 0 |
-3 30358511483 296 |
-8 30358534318 296 |
-4 30358535029 264 |
-2 30362183310 0 |
-3 30362186254 296 |
-8 30362208985 296 |
-4 30362209685 264 |
-2 30365858322 0 |
-3 30365861222 296 |
-8 30365883985 296 |
-4 30365884693 264 |
-2 30369532960 0 |
-3 30369535882 296 |
-8 30369558474 296 |
-4 30369559179 264 |
-2 30373160452 0 |
-6 30373161153 280 |
-3 30373163202 280 |
-8 30373166451 280 |
-4 30373167141 264 |
-2 30373207675 0 |
-3 30373210729 296 |
-8 30373233676 296 |
-4 30373234400 264 |
-2 30376836748 0 |
-3 30376837423 264 |
-2 30376882632 0 |
-3 30376885586 296 |
-8 30376908369 296 |
-4 30376909090 264 |
-2 30380557358 0 |
-3 30380560280 296 |
-8 30380583032 296 |
-4 30380583742 264 |
-2 30384232370 0 |
-3 30384235263 296 |
-8 30384257996 296 |
-4 30384258703 264 |
-2 30387907333 0 |
-3 30387910254 296 |
-8 30387932835 296 |
-4 30387933546 264 |
-2 30391534445 0 |
-6 30391535150 280 |
-3 30391537173 280 |
-8 30391540421 280 |
-4 30391541111 264 |
-2 30391582015 0 |
-3 30391585034 296 |
-8 30391607914 296 |
-4 30391608632 264 |
-2 30395210642 0 |
-3 30395211323 264 |
-2 30395256900 0 |
-3 30395259865 296 |
-8 30395282725 296 |
-4 30395283436 264 |
-2 30398931714 0 |
-3 30398934658 296 |
-8 30398957395 296 |
-4 30398958100 264 |
-2 30402606369 0 |
-3 30402609273 296 |
-8 30402632026 296 |
-4 30402632734 264 |
-2 30406281364 0 |
-3 30406284286 296 |
-8 30406306878 296 |
-4 30406307583 264 |
-2 30409908488 0 |
-6 30409909189 280 |
-3 30409911238 280 |
-8 30409914497 280 |
-4 30409915187 264 |
-2 30409956079 0 |
-3 30409959133 296 |
-8 30409982094 296 |
-4 30409982822 264 |
-2 30413584789 0 |
-3 30413585464 264 |
-2 30413631042 0 |
-3 30413633996 296 |
-8 30413656781 296 |
-4 30413657502 264 |
-2 30417305773 0 |
-3 30417308695 296 |
-8 30417331431 296 |
-4 30417332141 264 |
-2 30420980769 0 |
-3 30420983662 296 |
-8 30421006394 296 |
-4 30421007101 264 |
-2 30424655368 0 |
-3 30424658289 296 |
-8 30424680904 296 |
-4 30424681615 264 |
-2 30428282882 0 |
-6 30428283583 280 |
-3 30428285616 280 |
-8 30428289111 280 |
-4 30428289801 264 |
-2 30428330457 0 |
-3 30428333499 296 |
-8 30428356379 296 |
-4 30428357097 264 |
-2 30431959106 0 |
-3 30431959781 264 |
-2 30432004991 0 |
-3 30432007956 296 |
-8 30432030790 296 |
-4 30432031501 264 |
-2 30435680140 0 |
-3 30435683084 296 |
-8 30435705815 296 |
-4 30435706515 264 |
-2 30439354789 0 |
-3 30439357689 296 |
-8 30439380452 296 |
-4 30439381160 264 |
-2 30443029797 0 |
-3 30443032722 296 |
-8 30443055315 296 |
-4 30443056020 264 |
-2 30446656925 0 |
-6 30446657630 280 |
-3 30446659681 280 |
-8 30446662942 280 |
-4 30446663632 264 |
-2 30446704522 0 |
-3 30446707575 296 |
-8 30446730517 296 |
-4 30446731241 264 |
-2 30450333220 0 |
-3 30450333895 264 |
-2 30450379473 0 |
-3 30450382427 296 |
-8 30450405210 296 |
-4 30450405931 264 |
-2 30454054199 0 |
-3 30454057121 296 |
-8 30454079879 296 |
-4 30454080589 264 |
-2 30457728854 0 |
-3 30457731747 296 |
-8 30457754485 296 |
-4 30457755192 264 |
-2 30461403822 0 |
-3 30461406749 296 |
-8 30461429330 296 |
-4 30461430041 264 |
-2 30465030940 0 |
-6 30465031641 280 |
-3 30465033668 280 |
-8 30465036927 280 |
-4 30465037617 264 |
-2 30465078509 0 |
-3 30465081524 296 |
-8 30465104425 296 |
-4 30465105143 264 |
-2 30468707153 0 |
-3 30468707828 264 |
-2 30468753406 0 |
-3 30468756371 296 |
-8 30468779231 296 |
-4 30468779942 264 |
-2 30472428220 0 |
-3 30472431168 296 |
-8 30472453906 296 |
-4 30472454611 264 |
-2 30476103243 0 |
-3 30476106147 296 |
-8 30476128900 296 |
-4 30476129608 264 |
-2 30479777875 0 |
-3 30479780797 296 |
-8 30479803389 296 |
-4 30479804094 264 |
-2 30483405367 0 |
-6 30483406068 280 |
-3 30483408124 280 |
-8 30483411371 280 |
-4 30483412061 264 |
-2 30483452596 0 |
-3 30483455649 296 |
-8 30483478602 296 |
-4 30483479326 264 |
-2 30487081674 0 |
-3 30487082349 264 |
-2 30487127558 0 |
-3 30487130512 296 |
-8 30487153295 296 |
-4 30487154016 264 |
-2 30490802284 0 |
-3 30490805206 296 |
-8 30490827942 296 |
-4 30490828652 264 |
-2 30494477280 0 |
-3 30494480173 296 |
-8 30494502905 296 |
-4 30494503612 264 |
-2 30498152242 0 |
-3 30498155163 296 |
-8 30498177778 296 |
-4 30498178489 264 |
-2 30501779388 0 |
-6 30501780089 280 |
-3 30501782116 280 |
-8 30501785358 280 |
-4 30501786048 264 |
-2 30501826957 0 |
-3 30501829999 296 |
-8 30501852879 296 |
-4 30501853597 264 |
-2 30505455606 0 |
-3 30505456281 264 |
-2 30505501859 0 |
-3 30505504825 296 |
-8 30505527659 296 |
-4 30505528385 264 |
-2 30509176651 0 |
-3 30509179611 296 |
-8 30509202344 296 |
-4 30509203044 264 |
-2 30512851322 0 |
-3 30512854222 296 |
-8 30512876985 296 |
-4 30512877693 264 |
-2 30516526323 0 |
-3 30516529245 296 |
-8 30516551837 296 |
-4 30516552542 264 |
-2 30520153447 0 |
-6 30520154149 280 |
-3 30520156203 280 |
-8 30520159451 280 |
-4 30520160141 264 |
-2 30520201044 0 |
-3 30520204097 296 |
-8 30520227014 296 |
-4 30520227738 264 |
-2 30523829731 0 |
-3 30523830406 264 |
-2 30523875984 0 |
-3 30523878938 296 |
-8 30523901743 296 |
-4 30523902464 264 |
-2 30527550732 0 |
-3 30527553658 296 |
-8 30527576412 296 |
-4 30527577122 264 |
-2 30531225387 0 |
-3 30531228280 296 |
-8 30531251029 296 |
-4 30531251736 264 |
-2 30534900366 0 |
-3 30534903287 296 |
-8 30534925885 296 |
-4 30534926596 264 |
-2 30538527863 0 |
-6 30538528564 280 |
-3 30538530587 280 |
-8 30538533845 280 |
-4 30538534535 264 |
-2 30538575059 0 |
-3 30538578101 296 |
-8 30538600975 296 |
-4 30538601693 264 |
-2 30542204071 0 |
-3 30542204746 264 |
-2 30542249955 0 |
-3 30542252920 296 |
-8 30542275782 296 |
-4 30542276498 264 |
-2 30545924769 0 |
-3 30545927713 296 |
-8 30545950444 296 |
-4 30545951144 264 |
-2 30549599781 0 |
-3 30549602681 296 |
-8 30549625428 296 |
-4 30549626136 264 |
-2 30553274403 0 |
-3 30553277329 296 |
-8 30553299922 296 |
-4 30553300627 264 |
-2 30556901900 0 |
-6 30556902601 280 |
-3 30556904657 280 |
-8 30556907904 280 |
-4 30556908594 264 |
-2 30556949497 0 |
-3 30556952551 296 |
-8 30556975515 296 |
-4 30556976239 264 |
-2 30560578218 0 |
-3 30560578893 264 |
-2 30560624102 0 |
-3 30560627056 296 |
-8 30560649839 296 |
-4 30560650560 264 |
-2 30564299191 0 |
-3 30564302113 296 |
-8 30564324849 296 |
-4 30564325559 264 |
-2 30567973824 0 |
-3 30567976717 296 |
-8 30567999449 296 |
-4 30568000156 264 |
-2 30571648786 0 |
-3 30571651707 296 |
-8 30571674305 296 |
-4 30571675016 264 |
-2 30575275915 0 |
-6 30575276616 280 |
-3 30575278650 280 |
-8 30575281897 280 |
-4 30575282587 264 |
-2 30575323490 0 |
-3 30575326505 296 |
-8 30575349395 296 |
-4 30575350113 264 |
-2 30578952123 0 |
-3 30578952798 264 |
-2 30578998376 0 |
-3 30579001341 296 |
-8 30579024179 296 |
-4 30579024890 264 |
-2 30582673168 0 |
-3 30582676116 296 |
-8 30582698854 296 |
-4 30582699559 264 |
-2 30586347828 0 |
-3 30586350732 296 |
-8 30586373502 296 |
-4 30586374215 264 |
-2 30590022840 0 |
-3 30590025766 296 |
-8 30590048364 296 |
-4 30590049073 264 |
-2 30593649974 0 |
-6 30593650679 280 |
-3 30593652725 280 |
-8 30593655986 280 |
-4 30593656676 264 |
-2 30593697566 0 |
-3 30593700614 296 |
-8 30593723550 296 |
-4 30593724274 264 |
-2 30597326253 0 |
-3 30597326928 264 |
-2 30597372506 0 |
-3 30597375460 296 |
-8 30597398243 296 |
-4 30597398964 264 |
-2 30601047232 0 |
-3 30601050154 296 |
-8 30601072906 296 |
-4 30601073616 264 |
-2 30604722244 0 |
-3 30604725137 296 |
-8 30604747870 296 |
-4 30604748577 264 |
-2 30608396844 0 |
-3 30608399765 296 |
-8 30608422363 296 |
-4 30608423074 264 |
-2 30612024341 0 |
-6 30612025042 280 |
-3 30612027065 280 |
-8 30612030328 280 |
-4 30612031018 264 |
-2 30612071905 0 |
-3 30612074969 296 |
-8 30612097854 296 |
-4 30612098572 264 |
-2 30615700582 0 |
-3 30615701257 264 |
-2 30615746835 0 |
-3 30615749799 296 |
-8 30615772672 296 |
-4 30615773398 264 |
-2 30619421291 0 |
-3 30619424334 296 |
-8 30619447072 296 |
-4 30619447777 264 |
-2 30623096413 0 |
-3 30623099339 296 |
-8 30623122027 296 |
-4 30623122735 264 |
-2 30626771002 0 |
-3 30626773928 296 |
-8 30626796471 296 |
-4 30626797176 264 |
-2 30630398450 0 |
-6 30630399151 280 |
-3 30630401206 280 |
-8 30630404459 280 |
-4 30630405162 264 |
-2 30630446047 0 |
-3 30630449105 296 |
-8 30630471995 296 |
-4 30630472719 264 |
-2 30634074712 0 |
-3 30634075387 264 |
-2 30634120965 0 |
-3 30634123919 296 |
-8 30634146677 296 |
-4 30634147398 264 |
-2 30637795669 0 |
-3 30637798591 296 |
-8 30637821277 296 |
-4 30637821987 264 |
-2 30641470622 0 |
-3 30641473514 296 |
-8 30641496197 296 |
-4 30641496904 264 |
-2 30645145171 0 |
-3 30645148092 296 |
-8 30645170657 296 |
-4 30645171368 264 |
-2 30648772635 0 |
-6 30648773340 280 |
-3 30648775370 280 |
-8 30648778617 280 |
-4 30648779307 264 |
-2 30648820210 0 |
-3 30648823269 296 |
-8 30648846099 296 |
-4 30648846817 264 |
-2 30652448826 0 |
-3 30652449501 264 |
-2 30652495079 0 |
-3 30652498044 296 |
-8 30652520840 296 |
-4 30652521556 264 |
-2 30656169827 0 |
-3 30656172771 296 |
-8 30656195502 296 |
-4 30656196202 264 |
-2 30659844476 0 |
-3 30659847381 296 |
-8 30659870145 296 |
-4 30659870853 264 |
-2 30663519483 0 |
-3 30663522409 296 |
-8 30663545018 296 |
-4 30663545723 264 |
-2 30667146628 0 |
-6 30667147329 280 |
-3 30667149373 280 |
-8 30667152632 280 |
-4 30667153322 264 |
-2 30667194214 0 |
-3 30667197268 296 |
-8 30667220292 296 |
-4 30667221016 264 |
-2 30670822995 0 |
-3 30670823670 264 |
-2 30670869248 0 |
-3 30670872202 296 |
-8 30670894985 296 |
-4 30670895706 264 |
-2 30674543974 0 |
-3 30674546896 296 |
-8 30674569648 296 |
-4 30674570362 264 |
-2 30678218623 0 |
-3 30678221516 296 |
-8 30678244249 296 |
-4 30678244956 264 |
-2 30681893586 0 |
-3 30681896507 296 |
-8 30681919088 296 |
-4 30681919799 264 |
-2 30685521067 0 |
-6 30685521768 280 |
-3 30685523801 280 |
-8 30685527048 280 |
-4 30685527738 264 |
-2 30685568273 0 |
-3 30685571294 296 |
-8 30685594173 296 |
-4 30685594891 264 |
-2 30689197269 0 |
-3 30689197944 264 |
-2 30689243153 0 |
-3 30689246118 296 |
-8 30689268978 296 |
-4 30689269689 264 |
-2 30692917967 0 |
-3 30692920911 296 |
-8 30692943648 296 |
-4 30692944353 264 |
-2 30696592985 0 |
-3 30696595889 296 |
-8 30696618642 296 |
-4 30696619350 264 |
-2 30700267617 0 |
-3 30700270539 296 |
-8 30700293131 296 |
-4 30700293836 264 |
-2 30703895109 0 |
-6 30703895810 280 |
-3 30703897854 280 |
-8 30703901102 280 |
-4 30703901792 264 |
-2 30703942695 0 |
-3 30703945751 296 |
-8 30703968710 296 |
-4 30703969434 264 |
-2 30707571416 0 |
-3 30707572091 264 |
-2 30707617300 0 |
-3 30707620254 296 |
-8 30707643037 296 |
-4 30707643758 264 |
-2 30711292389 0 |
-3 30711295311 296 |
-8 30711318047 296 |
-4 30711318757 264 |
-2 30714967022 0 |
-3 30714969915 296 |
-8 30714992647 296 |
-4 30714993354 264 |
-2 30718641984 0 |
-3 30718644905 296 |
-8 30718667520 296 |
-4 30718668231 264 |
-2 30722269130 0 |
-6 30722269835 280 |
-3 30722271863 280 |
-8 30722275091 280 |
-4 30722275775 264 |
-2 30722316705 0 |
-3 30722319764 296 |
-8 30722342643 296 |
-4 30722343361 264 |
-2 30725945370 0 |
-3 30725946045 264 |
-2 30725991623 0 |
-3 30725994594 296 |
-8 30726017428 296 |
-4 30726018139 264 |
-2 30729666415 0 |
-3 30729669359 296 |
-8 30729692108 296 |
-4 30729692808 264 |
-2 30733341086 0 |
-3 30733343986 296 |
-8 30733366749 296 |
-4 30733367457 264 |
-2 30737016087 0 |
-3 30737019009 296 |
-8 30737041601 296 |
-4 30737042306 264 |
-2 30740643211 0 |
-6 30740643912 280 |
-3 30740645961 280 |
-8 30740649215 280 |
-4 30740649905 264 |
-2 30740690802 0 |
-3 30740693856 296 |
-8 30740716818 296 |
-4 30740717542 264 |
-2 30744319517 0 |
-3 30744320192 264 |
-2 30744365770 0 |
-3 30744368724 296 |
-8 30744391507 296 |
-4 30744392228 264 |
-2 30748040496 0 |
-3 30748043418 296 |
-8 30748066170 296 |
-4 30748066880 264 |
-2 30751715508 0 |
-3 30751718401 296 |
-8 30751741134 296 |
-4 30751741841 264 |
-2 30755390108 0 |
-3 30755393029 296 |
-8 30755415610 296 |
-4 30755416321 264 |
-2 30759017589 0 |
-6 30759018290 280 |
-3 30759020328 280 |
-8 30759023576 280 |
-4 30759024266 264 |
-2 30759065169 0 |
-3 30759068190 296 |
-8 30759091074 296 |
-4 30759091792 264 |
-2 30762693802 0 |
-3 30762694477 264 |
-2 30762739686 0 |
-3 30762742651 296 |
-8 30762765511 296 |
-4 30762766222 264 |
-2 30766414500 0 |
-3 30766417444 296 |
-8 30766440181 296 |
-4 30766440886 264 |
-2 30770089518 0 |
-3 30770092422 296 |
-8 30770115175 296 |
-4 30770115883 264 |
-2 30773764513 0 |
-3 30773767435 296 |
-8 30773790032 296 |
-4 30773790737 264 |
-2 30777391642 0 |
-6 30777392347 280 |
-3 30777394403 280 |
-8 30777397652 280 |
-4 30777398342 264 |
-2 30777439245 0 |
-3 30777442298 296 |
-8 30777465258 296 |
-4 30777465982 264 |
-2 30781067965 0 |
-3 30781068640 264 |
-2 30781113850 0 |
-3 30781116804 296 |
-8 30781139589 296 |
-4 30781140310 264 |
-2 30784788944 0 |
-3 30784791866 296 |
-8 30784814602 296 |
-4 30784815312 264 |
-2 30788463577 0 |
-3 30788466470 296 |
-8 30788489208 296 |
-4 30788489915 264 |
-2 30792138545 0 |
-3 30792141466 296 |
-8 30792164086 296 |
-4 30792164797 264 |
-2 30795765696 0 |
-6 30795766397 280 |
-3 30795768425 280 |
-8 30795771677 280 |
-4 30795772367 264 |
-2 30795813265 0 |
-3 30795816307 296 |
-8 30795839198 296 |
-4 30795839916 264 |
-2 30799441925 0 |
-3 30799442600 264 |
-2 30799488178 0 |
-3 30799491143 296 |
-8 30799513978 296 |
-4 30799514689 264 |
-2 30803162970 0 |
-3 30803165914 296 |
-8 30803188645 296 |
-4 30803189345 264 |
-2 30806837982 0 |
-3 30806840881 296 |
-8 30806863645 296 |
-4 30806864353 264 |
-2 30810512620 0 |
-3 30810515542 296 |
-8 30810538134 296 |
-4 30810538841 264 |
-2 30814140112 0 |
-6 30814140813 280 |
-3 30814142874 280 |
-8 30814146122 280 |
-4 30814146812 264 |
-2 30814187346 0 |
-3 30814190399 296 |
-8 30814213350 296 |
-4 30814214074 264 |
-2 30817816424 0 |
-3 30817817099 264 |
-2 30817862309 0 |
-3 30817865263 296 |
-8 30817888048 296 |
-4 30817888769 264 |
-2 30821537040 0 |
-3 30821539962 296 |
-8 30821562714 296 |
-4 30821563424 264 |
-2 30825212052 0 |
-3 30825214945 296 |
-8 30825237678 296 |
-4 30825238385 264 |
-2 30828886652 0 |
-3 30828889573 296 |
-8 30828912154 296 |
-4 30828912865 264 |
-2 30832514133 0 |
-6 30832514845 280 |
-3 30832516873 280 |
-8 30832520120 280 |
-4 30832520810 264 |
-2 30832561713 0 |
-3 30832564728 296 |
-8 30832587624 296 |
-4 30832588342 264 |
-2 30836190351 0 |
-3 30836191026 264 |
-2 30836236604 0 |
-3 30836239570 296 |
-8 30836262429 296 |
-4 30836263155 264 |
-2 30839911418 0 |
-3 30839914373 296 |
-8 30839937110 296 |
-4 30839937815 264 |
-2 30843586084 0 |
-3 30843588988 296 |
-8 30843611741 296 |
-4 30843612449 264 |
-2 30847261079 0 |
-3 30847264001 296 |
-8 30847286593 296 |
-4 30847287298 264 |
-2 30850888203 0 |
-6 30850888905 280 |
-3 30850890959 280 |
-8 30850894207 280 |
-4 30850894897 264 |
-2 30850935800 0 |
-3 30850938853 296 |
-8 30850961784 296 |
-4 30850962508 264 |
-2 30854564504 0 |
-3 30854565179 264 |
-2 30854610757 0 |
-3 30854613711 296 |
-8 30854636529 296 |
-4 30854637250 264 |
-2 30858285521 0 |
-3 30858288447 296 |
-8 30858311184 296 |
-4 30858311894 264 |
-2 30861960159 0 |
-3 30861963052 296 |
-8 30861985801 296 |
-4 30861986508 264 |
-2 30865635138 0 |
-3 30865638059 296 |
-8 30865660657 296 |
-4 30865661368 264 |
-2 30869262267 0 |
-6 30869262968 280 |
-3 30869264996 280 |
-8 30869268254 280 |
-4 30869268944 264 |
-2 30869309837 0 |
-3 30869312852 296 |
-8 30869335747 296 |
-4 30869336465 264 |
-2 30872938475 0 |
-3 30872939150 264 |
-2 30872984728 0 |
-3 30872987693 296 |
-8 30873010531 296 |
-4 30873011246 264 |
-2 30876659520 0 |
-3 30876662468 296 |
-8 30876685206 296 |
-4 30876685911 264 |
-2 30880334543 0 |
-3 30880337447 296 |
-8 30880360217 296 |
-4 30880360925 264 |
-2 30884009192 0 |
-3 30884012118 296 |
-8 30884034711 296 |
-4 30884035416 264 |
-2 30887636689 0 |
-6 30887637390 280 |
-3 30887639451 280 |
-8 30887642827 280 |
-4 30887643517 264 |
-2 30887683923 0 |
-3 30887686976 296 |
-8 30887709916 296 |
-4 30887710640 264 |
-2 30891312990 0 |
-3 30891313665 264 |
-2 30891358875 0 |
-3 30891361829 296 |
-8 30891384614 296 |
-4 30891385335 264 |
-2 30895033606 0 |
-3 30895036528 296 |
-8 30895059280 296 |
-4 30895059990 264 |
-2 30898708618 0 |
-3 30898711511 296 |
-8 30898734244 296 |
-4 30898734951 264 |
-2 30902383218 0 |
-3 30902386139 296 |
-8 30902408737 296 |
-4 30902409448 264 |
-2 30906010715 0 |
-6 30906011416 280 |
-3 30906013450 280 |
-8 30906016691 280 |
-4 30906017387 264 |
-2 30906058290 0 |
-3 30906061403 296 |
-8 30906084289 296 |
-4 30906085007 264 |
-2 30909687016 0 |
-3 30909687691 264 |
-2 30909732901 0 |
-3 30909735866 296 |
-8 30909758722 296 |
-4 30909759433 264 |
-2 30913407709 0 |
-3 30913410653 296 |
-8 30913433384 296 |
-4 30913434084 264 |
-2 30917082721 0 |
-3 30917085621 296 |
-8 30917108368 296 |
-4 30917109076 264 |
-2 30920757706 0 |
-3 30920760632 296 |
-8 30920783230 296 |
-4 30920783935 264 |
-2 30924384840 0 |
-6 30924385545 280 |
-3 30924387601 280 |
-8 30924390850 280 |
-4 30924391540 264 |
-2 30924432443 0 |
-3 30924435496 296 |
-8 30924458478 296 |
-4 30924459202 264 |
-2 30928061185 0 |
-3 30928061860 264 |
-2 30928107070 0 |
-3 30928110024 296 |
-8 30928132809 296 |
-4 30928133530 264 |
-2 30931782164 0 |
-3 30931785086 296 |
-8 30931807822 296 |
-4 30931808532 264 |
-2 30935456797 0 |
-3 30935459690 296 |
-8 30935482422 296 |
-4 30935483129 264 |
-2 30939131759 0 |
-3 30939134680 296 |
-8 30939157278 296 |
-4 30939157989 264 |
-2 30942758888 0 |
-6 30942759589 280 |
-3 30942761617 280 |
-8 30942764875 280 |
-4 30942765565 264 |
-2 30942806458 0 |
-3 30942809477 296 |
-8 30942832368 296 |
-4 30942833086 264 |
-2 30946435096 0 |
-3 30946435771 264 |
-2 30946481349 0 |
-3 30946484314 296 |
-8 30946507152 296 |
-4 30946507863 264 |
-2 30950156141 0 |
-3 30950159089 296 |
-8 30950181827 296 |
-4 30950182532 264 |
-2 30953831164 0 |
-3 30953834068 296 |
-8 30953856838 296 |
-4 30953857546 264 |
-2 30957505813 0 |
-3 30957508739 296 |
-8 30957531332 296 |
-4 30957532037 264 |
-2 30961133310 0 |
-6 30961134011 280 |
-3 30961136072 280 |
-8 30961139573 280 |
-4 30961140263 264 |
-2 30961180544 0 |
-3 30961183598 296 |
-8 30961206537 296 |
-4 30961207261 264 |
-2 30964809611 0 |
-3 30964810286 264 |
-2 30964855496 0 |
-3 30964858450 296 |
-8 30964881235 296 |
-4 30964881956 264 |
-2 30968530227 0 |
-3 30968533149 296 |
-8 30968555901 296 |
-4 30968556611 264 |
-2 30972205239 0 |
-3 30972208132 296 |
-8 30972230865 296 |
-4 30972231572 264 |
-2 30975879839 0 |
-3 30975882760 296 |
-8 30975905358 296 |
-4 30975906069 264 |
-2 30979507336 0 |
-6 30979508041 280 |
-3 30979510071 280 |
-8 30979513323 280 |
-4 30979514013 264 |
-2 30979554911 0 |
-3 30979557975 296 |
-8 30979580860 296 |
-4 30979581578 264 |
-2 30983183588 0 |
-3 30983184263 264 |
-2 30983229841 0 |
-3 30983232805 296 |
-8 30983255684 296 |
-4 30983256410 264 |
-2 30986904671 0 |
-3 30986907714 296 |
-8 30986930463 296 |
-4 30986931168 264 |
-2 30990579441 0 |
-3 30990582367 296 |
-8 30990605055 296 |
-4 30990605763 264 |
-2 30994254030 0 |
-3 30994256956 296 |
-8 30994279516 296 |
-4 30994280221 264 |
-2 30997881494 0 |
-6 30997882195 280 |
-3 30997884244 280 |
-8 30997887509 280 |
-4 30997888212 264 |
-2 30997929086 0 |
-3 30997932144 296 |
-8 30997955041 296 |
-4 30997955765 264 |
-2 31001557762 0 |
-3 31001558437 264 |
-2 31001603647 0 |
-3 31001606601 296 |
-8 31001629356 296 |
-4 31001630077 264 |
-2 31005278708 0 |
-3 31005281630 296 |
-8 31005304320 296 |
-4 31005305030 264 |
-2 31008953297 0 |
-3 31008956190 296 |
-8 31008978873 296 |
-4 31008979580 264 |
-2 31012628210 0 |
-3 31012631131 296 |
-8 31012653696 296 |
-4 31012654407 264 |
-2 31016255674 0 |
-6 31016256375 280 |
-3 31016258413 280 |
-8 31016261661 280 |
-4 31016262351 264 |
-2 31016303255 0 |
-3 31016306314 296 |
-8 31016329154 296 |
-4 31016329872 264 |
-2 31019931882 0 |
-3 31019932557 264 |
-2 31019978135 0 |
-3 31019981100 296 |
-8 31020003890 296 |
-4 31020004601 264 |
-2 31023652877 0 |
-3 31023655821 296 |
-8 31023678552 296 |
-4 31023679252 264 |
-2 31027327526 0 |
-3 31027330426 296 |
-8 31027353189 296 |
-4 31027353897 264 |
-2 31031002527 0 |
-3 31031005449 296 |
-8 31031028041 296 |
-4 31031028746 264 |
-2 31034629651 0 |
-6 31034630352 280 |
-3 31034632401 280 |
-8 31034635762 280 |
-4 31034636452 264 |
-2 31034677242 0 |
-3 31034680289 296 |
-8 31034703239 296 |
-4 31034703963 264 |
-2 31038305955 0 |
-3 31038306632 264 |
-2 31038352210 0 |
-3 31038355164 296 |
-8 31038377947 296 |
-4 31038378668 264 |
-2 31042026936 0 |
-3 31042029858 296 |
-8 31042052610 296 |
-4 31042053320 264 |
-2 31045701948 0 |
-3 31045704841 296 |
-8 31045727574 296 |
-4 31045728281 264 |
-2 31049376548 0 |
-3 31049379469 296 |
-8 31049402050 296 |
-4 31049402761 264 |
-2 31053004029 0 |
-6 31053004734 280 |
-3 31053006762 280 |
-8 31053010010 280 |
-4 31053010700 264 |
-2 31053051604 0 |
-3 31053054623 296 |
-8 31053077503 296 |
-4 31053078221 264 |
-2 31056680231 0 |
-3 31056680906 264 |
-2 31056726115 0 |
-3 31056729086 296 |
-8 31056751946 296 |
-4 31056752657 264 |
-2 31060400935 0 |
-3 31060403883 296 |
-8 31060426632 296 |
-4 31060427337 264 |
-2 31064075969 0 |
-3 31064078873 296 |
-8 31064101626 296 |
-4 31064102334 264 |
-2 31067750601 0 |
-3 31067753523 296 |
-8 31067776115 296 |
-4 31067776820 264 |
-2 31071378093 0 |
-6 31071378794 280 |
-3 31071380838 280 |
-8 31071384097 280 |
-4 31071384787 264 |
-2 31071425679 0 |
-3 31071428733 296 |
-8 31071451686 296 |
-4 31071452414 264 |
-2 31075054389 0 |
-3 31075055064 264 |
-2 31075100273 0 |
-3 31075103227 296 |
-8 31075126010 296 |
-4 31075126731 264 |
-2 31078775362 0 |
-3 31078778284 296 |
-8 31078801020 296 |
-4 31078801730 264 |
-2 31082449995 0 |
-3 31082452888 296 |
-8 31082475620 296 |
-4 31082476327 264 |
-2 31086124957 0 |
-3 31086127878 296 |
-8 31086150493 296 |
-4 31086151204 264 |
-2 31089752103 0 |
-6 31089752804 280 |
-3 31089754837 280 |
-8 31089758079 280 |
-4 31089758769 264 |
-2 31089799678 0 |
-3 31089802737 296 |
-8 31089825627 296 |
-4 31089826378 264 |
-2 31093428354 0 |
-3 31093429029 264 |
-2 31093474607 0 |
-3 31093477572 296 |
-8 31093500407 296 |
-4 31093501118 264 |
-2 31097149399 0 |
-3 31097152343 296 |
-8 31097175074 296 |
-4 31097175774 264 |
-2 31100824048 0 |
-3 31100826948 296 |
-8 31100849711 296 |
-4 31100850419 264 |
-2 31104499049 0 |
-3 31104501976 296 |
-8 31104524568 296 |
-4 31104525273 264 |
-2 31108126178 0 |
-6 31108126883 280 |
-3 31108128939 280 |
-8 31108132188 280 |
-4 31108132878 264 |
-2 31108173781 0 |
-3 31108176839 296 |
-8 31108199782 296 |
-4 31108200506 264 |
-2 31111802485 0 |
-3 31111803160 264 |
-2 31111848738 0 |
-3 31111851692 296 |
-8 31111874477 296 |
-4 31111875198 264 |
-2 31115523469 0 |
-3 31115526391 296 |
-8 31115549143 296 |
-4 31115549853 264 |
-2 31119198481 0 |
-3 31119201374 296 |
-8 31119224112 296 |
-4 31119224819 264 |
-2 31122873086 0 |
-3 31122876007 296 |
-8 31122898589 296 |
-4 31122899301 264 |
-2 31126500567 0 |
-6 31126501268 280 |
-3 31126503291 280 |
-8 31126506549 280 |
-4 31126507239 264 |
-2 31126548131 0 |
-3 31126551152 296 |
-8 31126574058 296 |
-4 31126574776 264 |
-2 31130176786 0 |
-3 31130177461 264 |
-2 31130223039 0 |
-3 31130226004 296 |
-8 31130248864 296 |
-4 31130249575 264 |
-2 31133897853 0 |
-3 31133900801 296 |
-8 31133923539 296 |
-4 31133924244 264 |
-2 31137572513 0 |
-3 31137575417 296 |
-8 31137598170 296 |
-4 31137598878 264 |
-2 31141247508 0 |
-3 31141250430 296 |
-8 31141273022 296 |
-4 31141273727 264 |
-2 31144874632 0 |
-6 31144875333 280 |
-3 31144877388 280 |
-8 31144880636 280 |
-4 31144881326 264 |
-2 31144922229 0 |
-3 31144925287 296 |
-8 31144948241 296 |
-4 31144948965 264 |
-2 31148550944 0 |
-3 31148551619 264 |
-2 31148597197 0 |
-3 31148600151 296 |
-8 31148622936 296 |
-4 31148623657 264 |
-2 31152271928 0 |
-3 31152274850 296 |
-8 31152297586 296 |
-4 31152298296 264 |
-2 31155946561 0 |
-3 31155949454 296 |
-8 31155972186 296 |
-4 31155972893 264 |
-2 31159621523 0 |
-3 31159624444 296 |
-8 31159647059 296 |
-4 31159647770 264 |
-2 31163248669 0 |
-6 31163249370 280 |
-3 31163251397 280 |
-8 31163254639 280 |
-4 31163255329 264 |
-2 31163296238 0 |
-3 31163299297 296 |
-8 31163322187 296 |
-4 31163322905 264 |
-2 31166924915 0 |
-3 31166925590 264 |
-2 31166971168 0 |
-3 31166974133 296 |
-8 31166996967 296 |
-4 31166997678 264 |
-2 31170645954 0 |
-3 31170648898 296 |
-8 31170671629 296 |
-4 31170672329 264 |
-2 31174320966 0 |
-3 31174323866 296 |
-8 31174346629 296 |
-4 31174347337 264 |
-2 31177995604 0 |
-3 31177998526 296 |
-8 31178021118 296 |
-4 31178021823 264 |
-2 31181623096 0 |
-6 31181623797 280 |
-3 31181625846 280 |
-8 31181629108 280 |
-4 31181629798 264 |
-2 31181670319 0 |
-3 31181673373 296 |
-8 31181696320 296 |
-4 31181697044 264 |
-2 31185299392 0 |
-3 31185300067 264 |
-2 31185345276 0 |
-3 31185348230 296 |
-8 31185371021 296 |
-4 31185371742 264 |
-2 31189020013 0 |
-3 31189022939 296 |
-8 31189045693 296 |
-4 31189046403 264 |
-2 31192695031 0 |
-3 31192697924 296 |
-8 31192720673 296 |
-4 31192721380 264 |
-2 31196369647 0 |
-3 31196372568 296 |
-8 31196395149 296 |
-4 31196395860 264 |
-2 31199997128 0 |
-6 31199997829 280 |
-3 31199999856 280 |
-8 31200003115 280 |
-4 31200003805 264 |
-2 31200044697 0 |
-3 31200047718 296 |
-8 31200070597 296 |
-4 31200071315 264 |
-2 31203673324 0 |
-3 31203673999 264 |
-2 31203719577 0 |
-3 31203722542 296 |
-8 31203745402 296 |
-4 31203746113 264 |
-2 31207394391 0 |
-3 31207397335 296 |
-8 31207420072 296 |
-4 31207420777 264 |
-2 31211069046 0 |
-3 31211071950 296 |
-8 31211094703 296 |
-4 31211095411 264 |
-2 31214744041 0 |
-3 31214746963 296 |
-8 31214769555 296 |
-4 31214770260 264 |
-2 31218371165 0 |
-6 31218371866 280 |
-3 31218373921 280 |
-8 31218377169 280 |
-4 31218377859 264 |
-2 31218418762 0 |
-3 31218421820 296 |
-8 31218444774 296 |
-4 31218445498 264 |
-2 31222047477 0 |
-3 31222048152 264 |
-2 31222093730 0 |
-3 31222096684 296 |
-8 31222119469 296 |
-4 31222120190 264 |
-2 31225768461 0 |
-3 31225771383 296 |
-8 31225794119 296 |
-4 31225794829 264 |
-2 31229443457 0 |
-3 31229446350 296 |
-8 31229469082 296 |
-4 31229469789 264 |
-2 31233118056 0 |
-3 31233120977 296 |
-8 31233143592 296 |
-4 31233144303 264 |
-2 31236745570 0 |
-6 31236746271 280 |
-3 31236748299 280 |
-8 31236751541 280 |
-4 31236752231 264 |
-2 31236792771 0 |
-3 31236795830 296 |
-8 31236818720 296 |
-4 31236819438 264 |
-2 31240421816 0 |
-3 31240422491 264 |
-2 31240467701 0 |
-3 31240470666 296 |
-8 31240493500 296 |
-4 31240494211 264 |
-2 31244142487 0 |
-3 31244145431 296 |
-8 31244168162 296 |
-4 31244168862 264 |
-2 31247817499 0 |
-3 31247820399 296 |
-8 31247843162 296 |
-4 31247843870 264 |
-2 31251492137 0 |
-3 31251495059 296 |
-8 31251517656 296 |
-4 31251518361 264 |
-2 31255119635 0 |
-6 31255120336 280 |
-3 31255122385 280 |
-8 31255125633 280 |
-4 31255126323 264 |
-2 31255167226 0 |
-3 31255170290 296 |
-8 31255193238 296 |
-4 31255193962 264 |
-2 31258795941 0 |
-3 31258796616 264 |
-2 31258841826 0 |
-3 31258844780 296 |
-8 31258867579 296 |
-4 31258868300 264 |
-2 31262516931 0 |
-3 31262519853 296 |
-8 31262542605 296 |
-4 31262543315 264 |
-2 31266191580 0 |
-3 31266194473 296 |
-8 31266217206 296 |
-4 31266217913 264 |
-2 31269866543 0 |
-3 31269869464 296 |
-8 31269892045 296 |
-4 31269892756 264 |
-2 31273493655 0 |
-6 31273494356 280 |
-3 31273496379 280 |
-8 31273499637 280 |
-4 31273500327 264 |
-2 31273541219 0 |
-3 31273544240 296 |
-8 31273567124 296 |
-4 31273567842 264 |
-2 31277169852 0 |
-3 31277170527 264 |
-2 31277216105 0 |
-3 31277219070 296 |
-8 31277241930 296 |
-4 31277242641 264 |
-2 31280890919 0 |
-3 31280893867 296 |
-8 31280916605 296 |
-4 31280917310 264 |
-2 31284565579 0 |
-3 31284568483 296 |
-8 31284591236 296 |
-4 31284591944 264 |
-2 31288240574 0 |
-3 31288243496 296 |
-8 31288266088 296 |
-4 31288266793 264 |
-2 31291867698 0 |
-6 31291868399 280 |
-3 31291870454 280 |
-8 31291873702 280 |
-4 31291874392 264 |
-2 31291915295 0 |
-3 31291918353 296 |
-8 31291941307 296 |
-4 31291942031 264 |
-2 31295544010 0 |
-3 31295544685 264 |
-2 31295590263 0 |
-3 31295593217 296 |
-8 31295616002 296 |
-4 31295616723 264 |
-2 31299264994 0 |
-3 31299267916 296 |
-8 31299290652 296 |
-4 31299291362 264 |
-2 31302939990 0 |
-3 31302942883 296 |
-8 31302965615 296 |
-4 31302966322 264 |
-2 31306614589 0 |
-3 31306617510 296 |
-8 31306640125 296 |
-4 31306640836 264 |
-2 31310242103 0 |
-6 31310242804 280 |
-3 31310244832 280 |
-8 31310248074 280 |
-4 31310248764 264 |
-2 31310289673 0 |
-3 31310292732 296 |
-8 31310315622 296 |
-4 31310316340 264 |
-2 31313918349 0 |
-3 31313919024 264 |
-2 31313964234 0 |
-3 31313967199 296 |
-8 31313990033 296 |
-4 31313990749 264 |
-2 31317639383 0 |
-3 31317642327 296 |
-8 31317665065 296 |
-4 31317665765 264 |
-2 31321314043 0 |
-3 31321316943 296 |
-8 31321339712 296 |
-4 31321340420 264 |
-2 31324988687 0 |
-3 31324991613 296 |
-8 31325014206 296 |
-4 31325014911 264 |
-2 31328616184 0 |
-6 31328616885 280 |
-3 31328618929 280 |
-8 31328622201 280 |
-4 31328622891 264 |
-2 31328663770 0 |
-3 31328666817 296 |
-8 31328689760 296 |
-4 31328690484 264 |
-2 31332292463 0 |
-3 31332293138 264 |
-2 31332338716 0 |
-3 31332341670 296 |
-8 31332364453 296 |
-4 31332365174 264 |
-2 31336013442 0 |
-3 31336016364 296 |
-8 31336039116 296 |
-4 31336039826 264 |
-2 31339688091 0 |
-3 31339690984 296 |
-8 31339713717 296 |
-4 31339714424 264 |
-2 31343363054 0 |
-3 31343365975 296 |
-8 31343388556 296 |
-4 31343389267 264 |
-2 31346990166 0 |
-6 31346990867 280 |
-3 31346992900 280 |
-8 31346996467 280 |
-4 31346997157 264 |
-2 31347037741 0 |
-3 31347040777 296 |
-8 31347063668 296 |
-4 31347064386 264 |
-2 31350666396 0 |
-3 31350667071 264 |
-2 31350712649 0 |
-3 31350715613 296 |
-8 31350738487 296 |
-4 31350739213 264 |
-2 31354387479 0 |
-3 31354390522 296 |
-8 31354413260 296 |
-4 31354413960 264 |
-2 31358062238 0 |
-3 31358065164 296 |
-8 31358087852 296 |
-4 31358088560 264 |
-2 31361737190 0 |
-3 31361740116 296 |
-8 31361762659 296 |
-4 31361763364 264 |
-2 31365364638 0 |
-6 31365365339 280 |
-3 31365367388 280 |
-8 31365370636 280 |
-4 31365371339 264 |
-2 31365411861 0 |
-3 31365414919 296 |
-8 31365437801 296 |
-4 31365438525 264 |
-2 31369040889 0 |
-3 31369041564 264 |
-2 31369086774 0 |
-3 31369089728 296 |
-8 31369112483 296 |
-4 31369113204 264 |
-2 31372761835 0 |
-3 31372764757 296 |
-8 31372787464 296 |
-4 31372788174 264 |
-2 31376436418 0 |
-3 31376439311 296 |
-8 31376461994 296 |
-4 31376462701 264 |
-2 31380111331 0 |
-3 31380114252 296 |
-8 31380136817 296 |
-4 31380137528 264 |
-2 31383738796 0 |
-6 31383739497 280 |
-3 31383741525 280 |
-8 31383744772 280 |
-4 31383745462 264 |
-2 31383785997 0 |
-3 31383789056 296 |
-8 31383811896 296 |
-4 31383812614 264 |
-2 31387414992 0 |
-3 31387415667 264 |
-2 31387460877 0 |
-3 31387463848 296 |
-8 31387486638 296 |
-4 31387487349 264 |
-2 31391135993 0 |
-3 31391138937 296 |
-8 31391161686 296 |
-4 31391162386 264 |
-2 31394810664 0 |
-3 31394813564 296 |
-8 31394836327 296 |
-4 31394837035 264 |
-2 31398485302 0 |
-3 31398488224 296 |
-8 31398510816 296 |
-4 31398511521 264 |
-2 31402112794 0 |
-6 31402113495 280 |
-3 31402115545 280 |
-8 31402118804 280 |
-4 31402119494 264 |
-2 31402160386 0 |
-3 31402163433 296 |
-8 31402186381 296 |
-4 31402187105 264 |
-2 31405789079 0 |
-3 31405789754 264 |
-2 31405834963 0 |
-3 31405837917 296 |
-8 31405860700 296 |
-4 31405861421 264 |
-2 31409510052 0 |
-3 31409512974 296 |
-8 31409535726 296 |
-4 31409536436 264 |
-2 31413184701 0 |
-3 31413187594 296 |
-8 31413210327 296 |
-4 31413211034 264 |
-2 31416859664 0 |
-3 31416862585 296 |
-8 31416885166 296 |
-4 31416885877 264 |
-2 31420486776 0 |
-6 31420487477 280 |
-3 31420489510 280 |
-8 31420492758 280 |
-4 31420493448 264 |
-2 31420534351 0 |
-3 31420537372 296 |
-8 31420560251 296 |
-4 31420560969 264 |
-2 31424162978 0 |
-3 31424163653 264 |
-2 31424209231 0 |
-3 31424212196 296 |
-8 31424235056 296 |
-4 31424235767 264 |
-2 31427884045 0 |
-3 31427886989 296 |
-8 31427909726 296 |
-4 31427910431 264 |
-2 31431559063 0 |
-3 31431561967 296 |
-8 31431584720 296 |
-4 31431585428 264 |
-2 31435233695 0 |
-3 31435236617 296 |
-8 31435259209 296 |
-4 31435259914 264 |
-2 31438861187 0 |
-6 31438861888 280 |
-3 31438863937 280 |
-6 31438876665 288 |
-4 31438883629 280 |
-8 31438886324 280 |
-4 31438888163 288 |
-8 31438895103 288 |
-4 31438896190 264 |
-2 31438908823 0 |
-3 31438913952 296 |
-8 31438939508 296 |
-4 31438940352 264 |
-2 31442537519 0 |
-3 31442538328 264 |
-2 31442583538 0 |
-3 31442586597 296 |
-8 31442609490 296 |
-4 31442610234 264 |
-2 31446258451 0 |
-3 31446261378 296 |
-8 31446284230 296 |
-4 31446284936 264 |
-2 31449933204 0 |
-3 31449936092 296 |
-8 31449958841 296 |
-4 31449959545 264 |
-2 31453607820 0 |
-3 31453610746 296 |
-8 31453633356 296 |
-4 31453634067 264 |
-2 31457235334 0 |
-6 31457236351 280 |
-3 31457238663 280 |
-8 31457242167 280 |
-4 31457242875 264 |
-2 31457282768 0 |
-3 31457285864 296 |
-8 31457308788 296 |
-4 31457309497 264 |
-2 31460911892 0 |
-3 31460912564 264 |
-2 31460957773 0 |
-3 31460960743 296 |
-8 31460983613 296 |
-4 31460984343 264 |
-2 31464632592 0 |
-3 31464635535 296 |
-8 31464658289 296 |
-4 31464658995 264 |
-2 31468307263 0 |
-3 31468310152 296 |
-8 31468332900 296 |
-4 31468333608 264 |
-2 31471982242 0 |
-3 31471985163 296 |
-8 31472007760 296 |
-4 31472008466 264 |
-2 31475609371 0 |
-6 31475610068 280 |
-3 31475612100 280 |
-8 31475615478 280 |
-4 31475616186 264 |
-2 31475656943 0 |
-3 31475659999 296 |
-8 31475682876 296 |
-4 31475683585 264 |
-2 31479285615 0 |
-3 31479286292 264 |
-2 31479331870 0 |
-3 31479334825 296 |
-8 31479357650 296 |
-4 31479358380 264 |
-2 31483006629 0 |
-3 31483009562 296 |
-8 31483032315 296 |
-4 31483033021 264 |
-2 31486681289 0 |
-3 31486684177 296 |
-8 31486706897 296 |
-4 31486707601 264 |
-2 31490356235 0 |
-3 31490359157 296 |
-8 31490381761 296 |
-4 31490382467 264 |
-2 31493983370 0 |
-6 31493984071 280 |
-3 31493986104 280 |
-8 31493989356 280 |
-4 31493990064 264 |
-2 31494030947 0 |
-3 31494033982 296 |
-8 31494056876 296 |
-4 31494057585 264 |
-2 31497659614 0 |
-3 31497660291 264 |
-2 31497705869 0 |
-3 31497708817 296 |
-8 31497731676 296 |
-4 31497732406 264 |
-2 31501380655 0 |
-3 31501383620 296 |
-8 31501406363 296 |
-4 31501407069 264 |
-2 31505055700 0 |
-3 31505058589 296 |
-8 31505081337 296 |
-4 31505082041 264 |
-2 31508730316 0 |
-3 31508733237 296 |
-8 31508755834 296 |
-4 31508756540 264 |
-2 31512357814 0 |
-6 31512358515 280 |
-3 31512360553 280 |
-8 31512363803 280 |
-4 31512364511 264 |
-2 31512405396 0 |
-3 31512408452 296 |
-8 31512431363 296 |
-4 31512432072 264 |
-2 31516034102 0 |
-3 31516034779 264 |
-2 31516079988 0 |
-3 31516082926 296 |
-8 31516105749 296 |
-4 31516106479 264 |
-2 31517231091 1 |
-6 31517232913 280 |
-3 31517234015 1 |
-6 31517241494 288 |
-4 31517243463 280 |
-8 31517244982 280 |
-4 31517247210 288 |
-4 31517253379 248 |
-4 31517280291 288 |
-4 31517285547 288 |
-8 31517287792 288 |
-4 31517289581 272 |
-1 31517292059 |
Index: rel_1_5_beta1/newtrace/utils/extract.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/utils/extract.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/utils/extract.c (nonexistent) |
@@ -1,1050 +0,0 @@ |
-#include <stdio.h> |
-#include <stdlib.h> |
-#include <math.h> |
-#include <unistd.h> |
-#include <string.h> |
- |
-#define MAXCONTEXT 100 |
-#define MAXJOB 300000 |
- |
-#define INT_CTX 1 |
-#define INT_PID 9999 |
-#define PID_NO_DEF -1 |
- |
-#define BACKGROUND 0 |
-#define PERIODICAL 1 |
-#define INTERRUPT 2 |
- |
-#define DRAW_NUM 1000 |
- |
-#define DISABLE_PLOT |
- |
-struct ctx_exec { |
- int ctx; |
- unsigned long long dtsc; |
- unsigned long long dnsec; |
- unsigned long long tsc_start; |
- unsigned long long nsec_start; |
-}; |
- |
-struct ctx_to_pid { |
- int ctx; |
- int pid; |
-}; |
- |
-struct task_event { |
- int ctx; |
- unsigned long long tsc; |
- unsigned long long nsec; |
-}; |
- |
-void Error(int num, int line) { |
- printf("Finite-State machine error %d at line %d\n",num,line); |
- exit(2); |
-} |
- |
-int context_total = 0,endcycle_total = 0,job_total = 0,exec_total = 0; |
-struct ctx_exec *exec_list; |
-struct ctx_to_pid *context_list; |
-struct task_event *endcycle_list; |
-struct task_event *deadline_miss_list; |
-struct task_event *wcet_miss_list; |
-struct task_event *act_list; |
-struct ctx_exec *job_list; |
-int deadline_miss = 0, wcet_miss = 0, act_total = 0; |
- |
-unsigned int clk_per_msec = 0; |
-unsigned int skip_clk_per_msec = 0; |
- |
-unsigned long long log_start_tsc = 0; |
-unsigned long long log_end_tsc = 0; |
-unsigned long long total_tsc = 0; |
-unsigned long long total_nsec = 0; |
- |
-/* Data for gnuplot external call */ |
-int draw_data[DRAW_NUM+1]; |
- |
-int gnuplot_clear() { |
- |
- int i; |
- |
- for (i=0;i<DRAW_NUM;i++) |
- draw_data[i] = 0; |
- |
- return 0; |
- |
-} |
- |
-int gnuplot_draw(char *title,unsigned long long max_limit,int type) { |
- |
-#ifndef DISABLE_PLOT |
- |
- FILE *gnuplot_data, *gnuplot_command; |
- char temp_name[30]; |
- int i,pid,*current_mem; |
- |
- current_mem = malloc(sizeof(int)*(DRAW_NUM+1)); |
- memcpy(current_mem,draw_data,sizeof(int)*(DRAW_NUM+1)); |
- |
- pid = fork(); |
- if (pid == 0) { |
- |
- srand(getpid()); |
- |
- sprintf(temp_name,"/tmp/pwcet%d",rand()%10000); |
- |
- gnuplot_data = fopen(temp_name,"w"); |
- gnuplot_command = popen("gnuplot -persist","w"); |
- |
- for (i=0;i<DRAW_NUM;i++) |
- fprintf(gnuplot_data,"%f\t%f\n",(double)i * (double)max_limit / (double)DRAW_NUM / 1000.0,(float)(current_mem[i])); |
- |
- fflush(gnuplot_data); |
- fclose(gnuplot_data); |
- |
- fprintf(gnuplot_command,"set xlabel \"Time [us]\"\n"); |
- if (type == 0) { |
- fprintf(gnuplot_command,"set ylabel \"Frequency [#]\"\n"); |
- |
- fprintf(gnuplot_command,"plot \"%s\" using 1:2 title \"%s\" with lines\n",temp_name,title); |
- fflush(gnuplot_command); |
- } else { |
- fprintf(gnuplot_command,"set ylabel \"Time [us]\"\n"); |
- |
- fprintf(gnuplot_command,"plot \"%s\" using 1:2 title \"%s\" with lines\n",temp_name,title); |
- fflush(gnuplot_command); |
- } |
- |
- pclose(gnuplot_command); |
- exit(0); |
- |
- } |
- |
-#endif |
- |
- return 0; |
- |
-} |
- |
-int stats_from_execs(int ctx_num, unsigned long long *tot_nsec, |
- unsigned long long *min_nsec, |
- unsigned long long *mean_nsec, |
- unsigned long long *max_nsec, |
- unsigned long long *first_nsec, |
- int *number) { |
- |
- unsigned long long temp_nsec; |
- int k,i; |
- |
- temp_nsec = 0; |
- *max_nsec = 0; |
- *mean_nsec = 0; |
- *min_nsec = 0xFFFFFFFF; |
- *first_nsec = 0; |
- k = 0; |
- for (i=0;i<exec_total;i++) |
- if (exec_list[i].ctx == context_list[ctx_num].ctx) { |
- if (*first_nsec == 0) *first_nsec = exec_list[i].nsec_start; |
- if (exec_list[i].dnsec > *max_nsec) *max_nsec = exec_list[i].dnsec; |
- if (exec_list[i].dnsec < *min_nsec) *min_nsec = exec_list[i].dnsec; |
- temp_nsec += exec_list[i].dnsec; |
- k++; |
- } |
- |
- *number = k; |
- *tot_nsec = temp_nsec; |
- if (k != 0) *mean_nsec = temp_nsec / k; |
- |
- return 0; |
- |
-} |
- |
-int stats_from_jobs(int ctx_num, unsigned long long *tot_nsec, |
- unsigned long long *min_nsec, |
- unsigned long long *mean_nsec, |
- unsigned long long *max_nsec, |
- unsigned long long *first_nsec, |
- int *number) { |
- |
- unsigned long long temp_nsec; |
- int k,i; |
- |
- temp_nsec = 0; |
- *max_nsec = 0; |
- *mean_nsec = 0; |
- *min_nsec = 0xFFFFFFFF; |
- *first_nsec = 0; |
- k = 0; |
- for (i=0;i<job_total;i++) |
- if (job_list[i].ctx == context_list[ctx_num].ctx) { |
- if (*first_nsec == 0) *first_nsec = job_list[i].nsec_start; |
- if (job_list[i].dnsec > *max_nsec) *max_nsec = job_list[i].dnsec; |
- if (job_list[i].dnsec < *min_nsec) *min_nsec = job_list[i].dnsec; |
- temp_nsec += job_list[i].dnsec; |
- k++; |
- } |
- |
- *number = k; |
- *tot_nsec = temp_nsec; |
- if (k != 0) *mean_nsec = temp_nsec / k; |
- |
- return 0; |
- |
-} |
- |
-int arr_stats_from_execs(int ctx_num, unsigned long long *min_nsec, |
- unsigned long long *mean_nsec, |
- unsigned long long *max_nsec) { |
- |
- unsigned long long last_start,temp_nsec,delta_start; |
- int i,k; |
- |
- last_start = 0; |
- temp_nsec = 0; |
- *max_nsec = 0; |
- *min_nsec = 0xFFFFFFFF; |
- *mean_nsec = 0; |
- k = 0; |
- for (i=0;i<exec_total;i++) |
- if (exec_list[i].ctx == context_list[ctx_num].ctx) { |
- if (last_start == 0) { |
- last_start = exec_list[i].nsec_start; |
- } else { |
- delta_start = exec_list[i].nsec_start - last_start; |
- if (delta_start > *max_nsec) *max_nsec = delta_start; |
- if (delta_start < *min_nsec) *min_nsec = delta_start; |
- temp_nsec += delta_start; |
- k++; |
- last_start = exec_list[i].nsec_start; |
- } |
- } |
- |
- if (k != 0) *mean_nsec = temp_nsec / k; |
- |
- return 0; |
- |
-} |
- |
-int arr_stats_from_jobs(int ctx_num, unsigned long long *min_nsec, |
- unsigned long long *mean_nsec, |
- unsigned long long *max_nsec) { |
- |
- unsigned long long last_start,temp_nsec,delta_start; |
- int i,k; |
- |
- last_start = 0; |
- temp_nsec = 0; |
- *max_nsec = 0; |
- *min_nsec = 0xFFFFFFFF; |
- *mean_nsec = 0; |
- k = 0; |
- for (i=0;i<job_total;i++) |
- if (job_list[i].ctx == context_list[ctx_num].ctx) { |
- if (last_start == 0) { |
- last_start = job_list[i].nsec_start; |
- } else { |
- delta_start = job_list[i].nsec_start - last_start; |
- if (delta_start > *max_nsec) *max_nsec = delta_start; |
- if (delta_start < *min_nsec) *min_nsec = delta_start; |
- temp_nsec += delta_start; |
- k++; |
- last_start = job_list[i].nsec_start; |
- } |
- } |
- |
- if (k != 0) *mean_nsec = temp_nsec / k; |
- |
- return 0; |
- |
-} |
- |
-int plot_exec_demand_function(int ctx_num, char *pidstr) { |
- |
- unsigned long long max_limit; |
- char tmpstr[50]; |
- int i; |
- |
- gnuplot_clear(); |
- |
- max_limit = total_nsec; |
- |
- for (i=0;i<exec_total;i++) |
- if (exec_list[i].ctx == context_list[ctx_num].ctx) { |
- int h1,h2,h3; |
- |
- h1 = exec_list[i].nsec_start * DRAW_NUM / max_limit; |
- h2 = (exec_list[i].nsec_start+exec_list[i].dnsec) * DRAW_NUM / max_limit; |
- for (h3=h1;h3<h2;h3++) |
- if (h3 <= DRAW_NUM) draw_data[h3] += exec_list[i].dnsec/1000*(h3-h1)/(h2-h1); |
- for (h3=h2;h3<=DRAW_NUM;h3++) |
- if (h3 <= DRAW_NUM) draw_data[h3] += exec_list[i].dnsec/1000; |
- |
- } |
- |
- sprintf(tmpstr,"Ctx [%d:%s] Demand-Function",context_list[ctx_num].ctx,pidstr); |
- gnuplot_draw(tmpstr,max_limit,1); |
- |
- return 0; |
- |
-} |
- |
-int plot_exec_c_distrib(int ctx_num, unsigned long long max_nsec, char *pidstr) { |
- |
- unsigned long long max_limit; |
- char tmpstr[50]; |
- int i,h; |
- |
- if (max_nsec == 0) return 0; |
- |
- gnuplot_clear(); |
- |
- max_limit = max_nsec; |
- |
- for (i=0;i<exec_total;i++) |
- if (exec_list[i].ctx == context_list[ctx_num].ctx) { |
- h = exec_list[i].dnsec * DRAW_NUM / max_limit; |
- if (h <= DRAW_NUM) draw_data[h]++; |
- } |
- |
- sprintf(tmpstr,"Ctx [%d:%s] Exec C-dist",context_list[ctx_num].ctx,pidstr); |
- gnuplot_draw(tmpstr,max_limit,0); |
- |
- return 0; |
- |
-} |
- |
-int plot_job_c_distrib(int ctx_num, unsigned long long max_nsec, char *pidstr) { |
- |
- unsigned long long max_limit; |
- char tmpstr[50]; |
- int i,h; |
- |
- if (max_nsec == 0) return 0; |
- |
- gnuplot_clear(); |
- |
- max_limit = max_nsec; |
- |
- for (i=0;i<job_total;i++) |
- if (job_list[i].ctx == context_list[ctx_num].ctx) { |
- h = job_list[i].dnsec * DRAW_NUM / max_limit; |
- if (h <= DRAW_NUM) draw_data[h]++; |
- } |
- |
- sprintf(tmpstr,"Ctx [%d:%s] Job C-dist",context_list[ctx_num].ctx,pidstr); |
- gnuplot_draw(tmpstr,max_limit,0); |
- |
- return 0; |
- |
-} |
- |
-int plot_exec_arr_distrib(int ctx_num, unsigned long long max_nsec, char *pidstr) { |
- |
- unsigned long long max_limit,last_start,delta_start; |
- char tmpstr[50]; |
- int i,h; |
- |
- if (max_nsec == 0) return 0; |
- |
- gnuplot_clear(); |
- |
- max_limit = max_nsec; |
- |
- last_start = 0; |
- for (i=0;i<exec_total;i++) |
- if (exec_list[i].ctx == context_list[ctx_num].ctx) { |
- if (last_start == 0) { |
- last_start = exec_list[i].nsec_start; |
- } else { |
- delta_start = exec_list[i].nsec_start - last_start; |
- |
- h = delta_start * DRAW_NUM / max_limit; |
- if (h <= DRAW_NUM) draw_data[h]++; |
- |
- last_start = exec_list[i].nsec_start; |
- } |
- } |
- |
- sprintf(tmpstr,"Ctx [%d:%s] Exec Arr.Delta",context_list[ctx_num].ctx,pidstr); |
- gnuplot_draw(tmpstr,max_limit,0); |
- |
- return 0; |
- |
-} |
- |
-int plot_job_arr_distrib(int ctx_num, unsigned long long max_nsec, char *pidstr) { |
- |
- unsigned long long max_limit,last_start,delta_start; |
- char tmpstr[50]; |
- int i,h; |
- |
- if (max_nsec == 0) return 0; |
- |
- gnuplot_clear(); |
- |
- max_limit = max_nsec; |
- |
- last_start = 0; |
- for (i=0;i<job_total;i++) |
- if (job_list[i].ctx == context_list[ctx_num].ctx) { |
- if (last_start == 0) { |
- last_start = job_list[i].nsec_start; |
- } else { |
- delta_start = job_list[i].nsec_start - last_start; |
- |
- h = delta_start * DRAW_NUM / max_limit; |
- if (h <= DRAW_NUM) draw_data[h]++; |
- |
- last_start = job_list[i].nsec_start; |
- } |
- } |
- |
- sprintf(tmpstr,"Ctx [%d:%s] Job Arr.Delta",context_list[ctx_num].ctx,pidstr); |
- gnuplot_draw(tmpstr,max_limit,0); |
- |
- return 0; |
- |
-} |
- |
-int create_lists(char *filename) { |
- |
- FILE *input_file; |
- |
- int type,par1,par2,k,i,state; |
- |
- int current_context = 0; |
- int current_exec = 0; |
- int current_endcycle = 0; |
- |
- int kill_delta = 0; |
- |
- unsigned long long last_tsc, tsc; |
- unsigned long long current_nsec = 0; |
- |
- input_file = fopen(filename,"r"); |
- |
- /* Memory alloc */ |
- exec_list = malloc(sizeof(struct ctx_exec) * MAXJOB); |
- context_list = malloc(sizeof(struct ctx_to_pid) * MAXCONTEXT); |
- endcycle_list = malloc(sizeof(struct task_event) * MAXJOB); |
- deadline_miss_list = malloc(sizeof(struct task_event) * MAXJOB); |
- wcet_miss_list = malloc(sizeof(struct task_event) * MAXJOB); |
- act_list = malloc(sizeof(struct task_event) * MAXJOB); |
- |
- /* Finite-State machine |
- * |
- * FS-Machine states: |
- |
- 0 - Start |
- 1 - Context running |
- 2 - Interrupt running |
- |
- 10 - End |
- |
- */ |
- |
- for(i=0;i<MAXCONTEXT;i++) { |
- context_list[i].ctx = 0; |
- context_list[i].pid = PID_NO_DEF; |
- } |
- |
- /* The start context + interrupt context */ |
- context_total = 2; |
- current_context = 0; |
- last_tsc = 0; |
- context_list[0].ctx = 0; |
- context_list[0].pid = PID_NO_DEF; |
- context_list[1].ctx = INT_CTX; |
- context_list[1].pid = INT_PID; |
- |
- state = 0; |
- |
- k = 0; |
- while(!feof(input_file)) { |
- |
- fscanf(input_file,"%d %llu",&type,&tsc); |
- k++; |
- |
- switch (type) { |
- |
- case 1: |
- |
- /* No par */ |
- break; |
- |
- case 2: |
- case 3: |
- case 4: |
- case 6: |
- case 7: |
- case 8: |
- case 10: |
- |
- /* 1 par */ |
- fscanf(input_file,"%d",&par1); |
- break; |
- |
- case 5: |
- case 9: |
- case 0: |
- case 20: |
- case 21: |
- |
- /* 2 par */ |
- fscanf(input_file,"%d %d",&par1,&par2); |
- break; |
- |
- } |
- |
- switch (type) { |
- |
- case 0: |
- if (state != 0) Error(1,k); |
- printf("EVT:Log starts at [%12llu]\n",tsc); |
- last_tsc = tsc; |
- log_start_tsc = tsc; |
- current_nsec = 0; |
- |
- if (par1 == 0) Error(11,k); |
- if (par2 == 0) Error(12,k); |
- |
- current_context = par1; |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) break; |
- if (i == context_total) { |
- context_list[context_total].ctx = par1; |
- context_total++; |
- } |
- |
- clk_per_msec = par2; |
- |
- exec_list[current_exec].tsc_start = tsc; |
- exec_list[current_exec].nsec_start = current_nsec; |
- state = 1; |
- break; |
- |
- case 1: |
- printf("EVT:Log ends at [%12llu]\n",tsc); |
- exec_list[current_exec].dtsc = tsc - last_tsc; |
- exec_list[current_exec].dnsec = exec_list[current_exec].dtsc * 1000000 / clk_per_msec; |
- current_nsec += exec_list[current_exec].dnsec; |
- exec_list[current_exec].ctx = current_context; |
- current_exec++; |
- last_tsc = tsc; |
- log_end_tsc = tsc; |
- total_nsec = current_nsec; |
- state = 10; |
- break; |
- |
- /* Int start */ |
- case 2: |
- if (state == 0) Error(2,k); |
- exec_list[current_exec].dtsc = tsc - last_tsc; |
- exec_list[current_exec].dnsec = exec_list[current_exec].dtsc * 1000000 / clk_per_msec; |
- current_nsec += exec_list[current_exec].dnsec; |
- exec_list[current_exec].ctx = current_context; |
- current_exec++; |
- last_tsc = tsc; |
- current_context = INT_CTX; |
- exec_list[current_exec].tsc_start = tsc - log_start_tsc; |
- exec_list[current_exec].nsec_start = current_nsec; |
- state = 2; |
- break; |
- |
- /* Int end */ |
- case 3: |
- if (state != 2) Error(3,k); |
- exec_list[current_exec].dtsc = tsc - last_tsc; |
- exec_list[current_exec].dnsec = exec_list[current_exec].dtsc * 1000000 / clk_per_msec; |
- current_nsec += exec_list[current_exec].dnsec; |
- exec_list[current_exec].ctx = current_context; |
- current_exec++; |
- last_tsc = tsc; |
- if (par1 > 16) { |
- current_context = par1; |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) break; |
- if (i == context_total) { |
- context_list[context_total].ctx = par1; |
- context_total++; |
- } |
- } |
- |
- exec_list[current_exec].tsc_start = tsc; |
- exec_list[current_exec].nsec_start = current_nsec; |
- state = 1; |
- break; |
- |
- /* Change ctx */ |
- case 4: |
- |
- exec_list[current_exec].dtsc = tsc - last_tsc; |
- exec_list[current_exec].dnsec = exec_list[current_exec].dtsc * 1000000 / clk_per_msec; |
- current_nsec += exec_list[current_exec].dnsec; |
- exec_list[current_exec].ctx = current_context; |
- current_exec++; |
- last_tsc = tsc; |
- current_context = par1; |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) break; |
- if (i == context_total) { |
- context_list[context_total].ctx = par1; |
- context_total++; |
- } |
- |
- exec_list[current_exec].tsc_start = tsc; |
- exec_list[current_exec].nsec_start = current_nsec; |
- state = 1; |
- break; |
- |
- /* Task create */ |
- case 5: |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) { |
- context_list[i].pid = par2; |
- break; |
- } |
- if (i == context_total) { |
- context_list[context_total].ctx = par1; |
- context_list[context_total].pid = par2; |
- context_total++; |
- } |
- |
- break; |
- |
- /* Task kill */ |
- case 7: |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) break; |
- if (i == context_total) Error(5,k); |
- else { |
- |
- kill_delta += 1000; |
- |
- for (k=0;k<current_endcycle;k++) |
- if (endcycle_list[k].ctx == par1) |
- endcycle_list[k].ctx += kill_delta; |
- for (k=0;k<current_exec;k++) |
- if (exec_list[k].ctx == par1) |
- exec_list[k].ctx += kill_delta; |
- context_list[context_total].ctx = context_list[i].ctx + kill_delta; |
- context_list[context_total].pid = context_list[i].pid; |
- context_total++; |
- |
- if (current_context == par1) current_context += kill_delta; |
- |
- } |
- |
- break; |
- |
- /* Task endcycle */ |
- case 8: |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) break; |
- if (i == context_total) Error(4,k); |
- |
- endcycle_list[current_endcycle].ctx = par1; |
- endcycle_list[current_endcycle].tsc = tsc; |
- endcycle_list[current_endcycle].nsec = current_nsec + (tsc-last_tsc) * 1000000 / clk_per_msec; |
- current_endcycle++; |
- |
- break; |
- |
- /* Task activate */ |
- case 6: |
- |
- act_list[act_total].ctx = par1; |
- act_list[act_total].tsc = tsc; |
- act_list[act_total].nsec = current_nsec + (tsc-last_tsc) * 1000000 / clk_per_msec; |
- act_total++; |
- |
- break; |
- |
- /* Deadline miss */ |
- case 20: |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) break; |
- //if (i == context_total) Error(4,k); |
- |
- deadline_miss_list[deadline_miss].ctx = par1; |
- deadline_miss_list[deadline_miss].tsc = tsc; |
- deadline_miss_list[deadline_miss].nsec = current_nsec + (tsc-last_tsc) * 1000000 / clk_per_msec; |
- deadline_miss++; |
- |
- break; |
- |
- /* Wcet miss */ |
- case 21: |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) break; |
- //if (i == context_total) Error(4,k); |
- |
- wcet_miss_list[wcet_miss].ctx = par1; |
- wcet_miss_list[wcet_miss].tsc = tsc; |
- wcet_miss_list[wcet_miss].nsec = current_nsec + (tsc-last_tsc) * 1000000 / clk_per_msec; |
- wcet_miss++; |
- |
- break; |
- |
- /* Task id */ |
- case 9: |
- |
- for (i=0;i<context_total;i++) |
- if (par1 == context_list[i].ctx) { |
- context_list[i].pid = par2; |
- break; |
- } |
- if (i == context_total) { |
- context_list[context_total].ctx = par1; |
- context_list[context_total].pid = par2; |
- context_total++; |
- } |
- |
- break; |
- |
- case 10: |
- |
- exec_list[current_exec].dtsc = tsc - last_tsc; |
- exec_list[current_exec].dnsec = exec_list[current_exec].dtsc * 1000000 / clk_per_msec; |
- current_nsec += exec_list[current_exec].dnsec; |
- exec_list[current_exec].ctx = current_context; |
- current_exec++; |
- last_tsc = tsc; |
- |
- exec_list[current_exec].tsc_start = tsc; |
- exec_list[current_exec].nsec_start = current_nsec; |
- |
- if (!skip_clk_per_msec) clk_per_msec = par1; |
- |
- break; |
- |
- } |
- |
- if (current_exec == MAXJOB-1) { |
- printf("Too many execs...\n"); |
- exit(3); |
- } |
- |
- if (current_endcycle == MAXJOB-1 || act_total == MAXJOB-1 |
- || deadline_miss == MAXJOB-1 || wcet_miss == MAXJOB-1) { |
- printf("Too many jobs...\n"); |
- exit(4); |
- } |
- |
- if (state == 10) break; |
- |
- } |
- |
- endcycle_total = current_endcycle; |
- exec_total = current_exec; |
- |
- return k; |
- |
-} |
- |
-int task_events(int num, int *act, int *dlinemiss, int *wcetmiss) { |
- |
- unsigned long long i; |
- int tmp = 0; |
- |
- *act = 0; |
- *dlinemiss = 0; |
- *wcetmiss = 0; |
- |
- tmp = 0; |
- for (i=0;i<act_total;i++) |
- if (act_list[i].ctx == context_list[num].ctx) tmp++; |
- *act = tmp; |
- tmp = 0; |
- for (i=0;i<deadline_miss;i++) |
- if (deadline_miss_list[i].ctx == context_list[num].ctx) tmp++; |
- *dlinemiss = tmp; |
- tmp = 0; |
- for (i=0;i<wcet_miss;i++) |
- if (wcet_miss_list[i].ctx == context_list[num].ctx) tmp++; |
- *wcetmiss = tmp; |
- |
- return 0; |
- |
-} |
- |
-int create_job_list() { |
- |
- int current_job = 0, h, i, k; |
- int temp_ctx; |
- unsigned long long temp_nsec, endcycle_start_nsec; |
- unsigned long long temp_tsc, endcycle_end_nsec; |
- |
- job_list = malloc(sizeof(struct ctx_exec) * MAXJOB); |
- |
- for (k=0;k<context_total;k++) { |
- |
- temp_ctx = context_list[k].ctx; |
- endcycle_start_nsec = 0; |
- |
- for (h=0;h<endcycle_total;h++) { |
- |
- if (endcycle_list[h].ctx == temp_ctx) { |
- |
- if (endcycle_start_nsec == 0) |
- endcycle_start_nsec = 0; |
- |
- endcycle_end_nsec = endcycle_list[h].nsec; |
- temp_nsec = 0; |
- temp_tsc = 0; |
- |
- job_list[current_job].nsec_start = 0; |
- |
- for(i=0;i<exec_total;i++) |
- if (exec_list[i].ctx == temp_ctx) { |
- if (exec_list[i].nsec_start < endcycle_end_nsec && |
- exec_list[i].nsec_start >= endcycle_start_nsec) { |
- if (job_list[current_job].nsec_start == 0) |
- job_list[current_job].nsec_start = exec_list[i].nsec_start; |
- temp_nsec += exec_list[i].dnsec; |
- temp_tsc += exec_list[i].dtsc; |
- } |
- } |
- |
- job_list[current_job].dtsc = temp_tsc; |
- job_list[current_job].dnsec = temp_nsec; |
- job_list[current_job].ctx = temp_ctx; |
- current_job++; |
- |
- endcycle_start_nsec = endcycle_end_nsec; |
- |
- } |
- |
- } |
- |
- } |
- |
- job_total = current_job; |
- |
- return 0; |
- |
-} |
- |
-int elaborate_statistics(int num, int task_type) { |
- |
- char pidstr[10]; |
- unsigned long long tot_nsec,mean_nsec,max_nsec,min_nsec,first_nsec; |
- int number,act,dlinemiss,wcetmiss; |
- |
- switch (context_list[num].pid) { |
- case PID_NO_DEF: |
- sprintf(pidstr,"NODEF"); |
- break; |
- case INT_PID: |
- sprintf(pidstr," INT"); |
- break; |
- default: |
- sprintf(pidstr,"%5d",context_list[num].pid); |
- break; |
- } |
- |
- if (task_type == BACKGROUND) { |
- |
- printf("Background Task CTX [%5d] PID [%s]\n",context_list[num].ctx,pidstr); |
- |
- stats_from_execs(num,&tot_nsec,&min_nsec,&mean_nsec,&max_nsec,&first_nsec,&number); |
- |
- if (number > 0) { |
- |
- printf(" Total Execution [%12llu ns]\n",tot_nsec); |
- printf(" Mean CPU Bandwidth [%11f%c ]\n",(double)(tot_nsec)/(double)(total_nsec)*100.0,'%'); |
- printf(" after first exec [%11f%c ]\n",(double)(tot_nsec)/(double)(total_nsec-first_nsec)*100.0,'%'); |
- printf(" Execs Number [%12d ]\n",number); |
- printf(" Min Exec [%12llu ns]\n",min_nsec); |
- printf(" Mean Exec [%12llu ns]\n",mean_nsec); |
- printf(" Max Exec [%12llu ns]\n\n",max_nsec); |
- |
- plot_exec_demand_function(num,pidstr); |
- |
- } else { |
- |
- printf(" Total Execution [%12llu ns]\n\n",tot_nsec); |
- |
- } |
- |
- } |
- |
- if (task_type == INTERRUPT) { |
- |
- printf("Interrupts\n"); |
- |
- stats_from_execs(num,&tot_nsec,&min_nsec,&mean_nsec,&max_nsec,&first_nsec,&number); |
- |
- if (number > 0) { |
- |
- printf(" Total Execution [%12llu ns]\n",tot_nsec); |
- printf(" Mean CPU Bandwidth [%11f%c ]\n",(double)(tot_nsec)/(double)(total_nsec)*100.0,'%'); |
- printf(" after first int [%11f%c ]\n",(double)(tot_nsec)/(double)(total_nsec-first_nsec)*100.0,'%'); |
- printf(" Interrupts Number [%12d ]\n",number); |
- printf(" Min Interrupt [%12llu ns]\n",min_nsec); |
- printf(" Mean Interrupt [%12llu ns]\n",mean_nsec); |
- printf(" Max Interrupt [%12llu ns]\n\n",max_nsec); |
- |
- plot_exec_demand_function(num,pidstr); |
- |
- plot_exec_c_distrib(num,max_nsec,pidstr); |
- |
- arr_stats_from_execs(num,&min_nsec,&mean_nsec,&max_nsec); |
- |
- if (max_nsec > 0) { |
- |
- printf(" Min Arr. Delta [%12llu ns]\n",min_nsec); |
- printf(" Mean Arr. Delta [%12llu ns]\n",mean_nsec); |
- printf(" Max Arr. Delta [%12llu ns]\n\n",max_nsec); |
- |
- plot_exec_arr_distrib(num,max_nsec,pidstr); |
- |
- } |
- |
- } else { |
- |
- printf(" Total Execution [%12llu ns]\n\n",tot_nsec); |
- |
- } |
- |
- } |
- |
- if (task_type == PERIODICAL) { |
- |
- printf("Periodical Task CTX [%5d] PID [%s]\n",context_list[num].ctx,pidstr); |
- |
- stats_from_execs(num,&tot_nsec,&min_nsec,&mean_nsec,&max_nsec,&first_nsec,&number); |
- |
- if (number > 0) { |
- |
- printf(" Total Execution [%12llu ns]\n",tot_nsec); |
- printf(" Mean CPU Bandwidth [%11f%c ]\n",(double)(tot_nsec)/(double)(total_nsec)*100.0,'%'); |
- printf(" after first exec [%11f%c ]\n",(double)(tot_nsec)/(double)(total_nsec-first_nsec)*100.0,'%'); |
- printf(" Execs Number [%12d ]\n",number); |
- printf(" Min Exec [%12llu ns]\n",min_nsec); |
- printf(" Mean Exec [%12llu ns]\n",mean_nsec); |
- printf(" Max Exec [%12llu ns]\n\n",max_nsec); |
- |
- plot_exec_demand_function(num,pidstr); |
- |
- stats_from_jobs(num,&tot_nsec,&min_nsec,&mean_nsec,&max_nsec,&first_nsec,&number); |
- |
- printf(" Total Job Exec [%12llu ns]\n",tot_nsec); |
- printf(" Jobs Number [%12d ]\n",number); |
- printf(" Min Job [%12llu ns]\n",min_nsec); |
- printf(" Mean Job [%12llu ns]\n",mean_nsec); |
- printf(" Max Job [%12llu ns]\n\n",max_nsec); |
- |
- task_events(num,&act,&dlinemiss,&wcetmiss); |
- |
- printf(" Activations [%12d ]\n",act); |
- printf(" Deadline Miss [%12d ]\n",dlinemiss); |
- printf(" Wcet Miss [%12d ]\n\n",wcetmiss); |
- |
- plot_job_c_distrib(num,max_nsec,pidstr); |
- |
- arr_stats_from_jobs(num,&min_nsec,&mean_nsec,&max_nsec); |
- |
- if (max_nsec > 0) { |
- |
- printf(" Min Arr. Delta [%12llu ns]\n",min_nsec); |
- printf(" Mean Arr. Delta [%12llu ns]\n",mean_nsec); |
- printf(" Max Arr. Delta [%12llu ns]\n\n",max_nsec); |
- |
- plot_job_arr_distrib(num,max_nsec,pidstr); |
- |
- } |
- |
- } else { |
- |
- printf(" Total Execution [%12llu ns]\n\n",tot_nsec); |
- |
- } |
- |
- } |
- |
- return 0; |
- |
-} |
- |
-int main(int argc, char *argv[]) { |
- |
- int events_total,k,i; |
- int task_type; |
- |
- unsigned long long temp_nsec; |
- |
- srand(getpid()); |
- |
- if (argc < 2) { |
- printf("%s: Enter the input file name \"%s filename.pwc [clk_per_msec]\"\n",argv[0],argv[0]); |
- exit(1); |
- } |
- |
- printf("\n"); |
- |
- if (argc == 3) { |
- skip_clk_per_msec = 1; |
- clk_per_msec = atoi(argv[2]); |
- printf("Clk/msec = %u\n\n",clk_per_msec); |
- } |
- |
- events_total = create_lists(argv[1]); |
- |
- total_tsc = log_end_tsc - log_start_tsc; |
- |
- printf("\nTotal dTSC [%12llu] ns [%12llu]\n", total_tsc, total_nsec); |
- printf("Events [%12d]\n",events_total); |
- printf("Execs [%12d]\n",exec_total); |
- printf("EndCycles [%12d]\n",endcycle_total); |
- printf("Dline miss [%12d]\n",deadline_miss); |
- printf("WCET miss [%12d]\n",wcet_miss); |
- |
- printf("\nPreemption Removing.... \n"); |
- |
- /* Remove preemption from the computation time */ |
- create_job_list(); |
- |
- temp_nsec = 0; |
- for (i=0;i<job_total;i++) |
- temp_nsec += job_list[i].dnsec; |
- |
- printf("Total nsec of jobs [%12llu]\n",temp_nsec); |
- |
- temp_nsec = 0; |
- for (i=0;i<exec_total;i++) |
- temp_nsec += exec_list[i].dnsec; |
- |
- printf("Total nsec of exec [%12llu]\n",temp_nsec); |
- printf("Total nsec considering last clk/msec [%12llu]\n",total_tsc*1000000/clk_per_msec); |
- |
- printf("\nCompute Task Statistics.... \n\n"); |
- |
- for (i=0;i<context_total;i++) { |
- |
- task_type = BACKGROUND; |
- |
- if (context_list[i].ctx == INT_CTX) task_type = INTERRUPT; |
- |
- for (k=0;k<job_total;k++) |
- if (job_list[k].ctx == context_list[i].ctx) { |
- task_type = PERIODICAL; |
- break; |
- } |
- |
- elaborate_statistics(i,task_type); |
- |
- } |
- |
- return 0; |
- |
-} |
- |
Index: rel_1_5_beta1/newtrace/utils/example_results |
=================================================================== |
--- rel_1_5_beta1/newtrace/utils/example_results (revision 1579) |
+++ rel_1_5_beta1/newtrace/utils/example_results (nonexistent) |
@@ -1,382 +0,0 @@ |
-This is an example file from "extract" utility, |
-some comments are added to make it clearer. |
- |
-Jumpball demo (ecp) statistics |
- |
-Clk/msec = 2202900 (CPU Athlon 64 3200+) |
- |
-EVT:Log starts at [147140694139] |
-EVT:Log ends at [196093930505] |
- |
-Total dTSC [ 48953236366] ns [ 22222113928] |
-Events [ 144915] |
-Execs [ 131127] |
-EndCycles [ 13759] |
- |
-Preemption Removing.... |
- |
-Total nsec of jobs [ 3604781671] |
-Total nsec of exec [ 22222113928] |
-Total nsec considering last clk/msec [ 22222178204] |
- |
-Compute Task Statistics.... |
- |
-Interrupts |
- Total Execution [ 29399348 ns] |
- Mean CPU Bandwidth [ 0.132298% ] |
- after first int [ 0.132298% ] |
- Interrupts Number [ 45842 ] |
- Min Interrupt [ 189 ns] |
- Mean Interrupt [ 641 ns] |
- Max Interrupt [ 13056 ns] |
- |
- Min Arr. Delta [ 1881 ns] |
- Mean Arr. Delta [ 484763 ns] |
- Max Arr. Delta [ 10000131 ns] |
- |
-- System Interrupts: All the hardware interrupts |
- |
-Periodical Task CTX [ 256] PID [ 9] |
- Total Execution [ 276253550 ns] |
- Mean CPU Bandwidth [ 1.243147% ] |
- after first exec [ 1.630252% ] |
- Execs Number [ 9335 ] |
- Min Exec [ 240 ns] |
- Mean Exec [ 29593 ns] |
- Max Exec [ 91661 ns] |
- |
- Total Job Exec [ 276253550 ns] |
- Jobs Number [ 1695 ] |
- Min Job [ 162239 ns] |
- Mean Job [ 162981 ns] |
- Max Job [ 164505 ns] |
- |
- Min Arr. Delta [ 4411818 ns] |
- Mean Arr. Delta [ 9999965 ns] |
- Max Arr. Delta [ 15588054 ns] |
- |
-- Task 9 "palla0": Soft Task. The CTX 256 was at the beginning assigned |
-to the "main" task. After the task death, the context was free until the |
-new "palla0" task was created. "main" task context number is converted to |
-1256 to make independent statistics. |
- |
-Background Task CTX [ 264] PID [ 1] |
- Total Execution [ 18583350900 ns] |
- Mean CPU Bandwidth [ 83.625487% ] |
- after first exec [ 83.669980% ] |
- Execs Number [ 16908 ] |
- Min Exec [ 515 ns] |
- Mean Exec [ 1099086 ns] |
- Max Exec [ 9836143 ns] |
- |
-- Task 1 "dummy": The dummy task, it represents the system |
-idle time, near 83% as mean value |
- |
-Background Task CTX [ 272] PID [ 2] |
- Total Execution [ 926 ns] |
- Mean CPU Bandwidth [ 0.000004% ] |
- after first exec [ 100.000000% ] |
- Execs Number [ 1 ] |
- Min Exec [ 926 ns] |
- Mean Exec [ 926 ns] |
- Max Exec [ 926 ns] |
- |
-- Task 2 "shutdown task": Shutting down the system. It closes |
-the tracer too (this is the reason of only 3 us exec time). |
- |
-Periodical Task CTX [ 280] PID [ 3] |
- Total Execution [ 1445626 ns] |
- Mean CPU Bandwidth [ 0.006505% ] |
- after first exec [ 0.006512% ] |
- Execs Number [ 461 ] |
- Min Exec [ 2583 ns] |
- Mean Exec [ 3135 ns] |
- Max Exec [ 4206 ns] |
- |
- Total Job Exec [ 1445626 ns] |
- Jobs Number [ 461 ] |
- Min Job [ 2583 ns] |
- Mean Job [ 3135 ns] |
- Max Job [ 4206 ns] |
- |
- Min Arr. Delta [ 2021387 ns] |
- Mean Arr. Delta [ 48260445 ns] |
- Max Arr. Delta [ 50010461 ns] |
- |
-- Task 3 "interrupt server": The interrupt context |
- |
-Periodical Task CTX [ 288] PID [ 4] |
- Total Execution [ 59506 ns] |
- Mean CPU Bandwidth [ 0.000268% ] |
- after first exec [ 0.000351% ] |
- Execs Number [ 43 ] |
- Min Exec [ 566 ns] |
- Mean Exec [ 1383 ns] |
- Max Exec [ 5850 ns] |
- |
- Total Job Exec [ 59506 ns] |
- Jobs Number [ 17 ] |
- Min Job [ 1217 ns] |
- Mean Job [ 3500 ns] |
- Max Job [ 9358 ns] |
- |
- Min Arr. Delta [ 65650086 ns] |
- Mean Arr. Delta [ 1059090305 ns] |
- Max Arr. Delta [ 7168628909 ns] |
- |
-- Task 4 "key task": The task for keyboard handler |
- |
-Periodical Task CTX [ 296] PID [ 5] |
- Total Execution [ 1201275196 ns] |
- Mean CPU Bandwidth [ 5.405765% ] |
- after first exec [ 5.406917% ] |
- Execs Number [ 825 ] |
- Min Exec [ 11133 ns] |
- Mean Exec [ 1456091 ns] |
- Max Exec [ 4500554 ns] |
- |
- Total Job Exec [ 1201275196 ns] |
- Jobs Number [ 223 ] |
- Min Job [ 5296076 ns] |
- Mean Job [ 5386884 ns] |
- Max Job [ 5515636 ns] |
- |
- Min Arr. Delta [ 99757430 ns] |
- Mean Arr. Delta [ 100006689 ns] |
- Max Arr. Delta [ 101061945 ns] |
- |
-- Task 5 "jetctrl" : Soft task |
- |
-Periodical Task CTX [ 304] PID [ 6] |
- Total Execution [ 4254996 ns] |
- Mean CPU Bandwidth [ 0.019148% ] |
- after first exec [ 0.019156% ] |
- Execs Number [ 446 ] |
- Min Exec [ 1111 ns] |
- Mean Exec [ 9540 ns] |
- Max Exec [ 18912 ns] |
- |
- Total Job Exec [ 4254996 ns] |
- Jobs Number [ 223 ] |
- Min Job [ 18971 ns] |
- Mean Job [ 19080 ns] |
- Max Job [ 21052 ns] |
- |
- Min Arr. Delta [ 95501610 ns] |
- Mean Arr. Delta [ 99979413 ns] |
- Max Arr. Delta [ 102456106 ns] |
- |
-- Task 6 "jetdummy" : Soft Task |
- |
-Periodical Task CTX [ 312] PID [ 7] |
- Total Execution [ 341582118 ns] |
- Mean CPU Bandwidth [ 1.537127% ] |
- after first exec [ 1.537767% ] |
- Execs Number [ 936 ] |
- Min Exec [ 520 ns] |
- Mean Exec [ 364938 ns] |
- Max Exec [ 1300811 ns] |
- |
- Total Job Exec [ 341582118 ns] |
- Jobs Number [ 223 ] |
- Min Job [ 1530776 ns] |
- Mean Job [ 1531758 ns] |
- Max Job [ 1533632 ns] |
- |
- Min Arr. Delta [ 95494710 ns] |
- Mean Arr. Delta [ 99979490 ns] |
- Max Arr. Delta [ 102948741 ns] |
- |
-- Task 7 "jetslice": Soft Task |
- |
-Periodical Task CTX [ 320] PID [ 8] |
- Total Execution [ 361875645 ns] |
- Mean CPU Bandwidth [ 1.628448% ] |
- after first exec [ 1.628782% ] |
- Execs Number [ 6750 ] |
- Min Exec [ 2540 ns] |
- Mean Exec [ 53611 ns] |
- Max Exec [ 92451 ns] |
- |
- Total Job Exec [ 361875645 ns] |
- Jobs Number [ 2222 ] |
- Min Job [ 162349 ns] |
- Mean Job [ 162860 ns] |
- Max Job [ 166904 ns] |
- |
- Min Arr. Delta [ 9989352 ns] |
- Mean Arr. Delta [ 9999971 ns] |
- Max Arr. Delta [ 10010719 ns] |
- |
-- Task 8 "pallaEDF": Hard Task |
- |
-Background Task CTX [ 1256] PID [ 0] |
- Total Execution [ 4573409 ns] |
- Mean CPU Bandwidth [ 0.020580% ] |
- after first exec [ 0.020580% ] |
- Execs Number [ 6 ] |
- Min Exec [ 7166 ns] |
- Mean Exec [ 762234 ns] |
- Max Exec [ 2000656 ns] |
- |
-- Task 0 "main": Main task was killed, so the original context |
-number 256 became 1256 |
- |
-Periodical Task CTX [ 328] PID [ 10] |
- Total Execution [ 270267226 ns] |
- Mean CPU Bandwidth [ 1.216208% ] |
- after first exec [ 1.629184% ] |
- Execs Number [ 8846 ] |
- Min Exec [ 241 ns] |
- Mean Exec [ 30552 ns] |
- Max Exec [ 91592 ns] |
- |
- Total Job Exec [ 270267226 ns] |
- Jobs Number [ 1659 ] |
- Min Job [ 162232 ns] |
- Mean Job [ 162909 ns] |
- Max Job [ 164270 ns] |
- |
- Min Arr. Delta [ 9988124 ns] |
- Mean Arr. Delta [ 9999982 ns] |
- Max Arr. Delta [ 10032718 ns] |
- |
-- Task 10 "palla1": Soft Task |
- |
-Periodical Task CTX [ 336] PID [ 11] |
- Total Execution [ 264105857 ns] |
- Mean CPU Bandwidth [ 1.188482% ] |
- after first exec [ 1.630505% ] |
- Execs Number [ 8949 ] |
- Min Exec [ 239 ns] |
- Mean Exec [ 29512 ns] |
- Max Exec [ 91573 ns] |
- |
- Total Job Exec [ 264105857 ns] |
- Jobs Number [ 1620 ] |
- Min Job [ 162271 ns] |
- Mean Job [ 163028 ns] |
- Max Job [ 164299 ns] |
- |
- Min Arr. Delta [ 9989381 ns] |
- Mean Arr. Delta [ 9999964 ns] |
- Max Arr. Delta [ 10010620 ns] |
- |
-- Task 11 "palla2": Soft Task |
- |
-Periodical Task CTX [ 344] PID [ 12] |
- Total Execution [ 257971822 ns] |
- Mean CPU Bandwidth [ 1.160879% ] |
- after first exec [ 1.634880% ] |
- Execs Number [ 10631 ] |
- Min Exec [ 238 ns] |
- Mean Exec [ 24265 ns] |
- Max Exec [ 63831 ns] |
- |
- Total Job Exec [ 257971822 ns] |
- Jobs Number [ 1578 ] |
- Min Job [ 162684 ns] |
- Mean Job [ 163480 ns] |
- Max Job [ 164782 ns] |
- |
- Min Arr. Delta [ 9989399 ns] |
- Mean Arr. Delta [ 9999963 ns] |
- Max Arr. Delta [ 10010599 ns] |
- |
-- Task 12 "palla3": Soft Task |
- |
-Periodical Task CTX [ 352] PID [ 13] |
- Total Execution [ 250406676 ns] |
- Mean CPU Bandwidth [ 1.126836% ] |
- after first exec [ 1.630586% ] |
- Execs Number [ 8461 ] |
- Min Exec [ 240 ns] |
- Mean Exec [ 29595 ns] |
- Max Exec [ 91753 ns] |
- |
- Total Job Exec [ 250406676 ns] |
- Jobs Number [ 1536 ] |
- Min Job [ 162225 ns] |
- Mean Job [ 163025 ns] |
- Max Job [ 164557 ns] |
- |
- Min Arr. Delta [ 3184436 ns] |
- Mean Arr. Delta [ 9999970 ns] |
- Max Arr. Delta [ 16815492 ns] |
- |
-- Task 13 "palla4": Soft Task |
- |
-Periodical Task CTX [ 360] PID [ 14] |
- Total Execution [ 132048658 ns] |
- Mean CPU Bandwidth [ 0.594222% ] |
- after first exec [ 1.631180% ] |
- Execs Number [ 4462 ] |
- Min Exec [ 244 ns] |
- Mean Exec [ 29594 ns] |
- Max Exec [ 91702 ns] |
- |
- Total Job Exec [ 132048658 ns] |
- Jobs Number [ 810 ] |
- Min Job [ 162240 ns] |
- Mean Job [ 163023 ns] |
- Max Job [ 164337 ns] |
- |
- Min Arr. Delta [ 4934088 ns] |
- Mean Arr. Delta [ 9999968 ns] |
- Max Arr. Delta [ 15066505 ns] |
- |
-- Task 14 "palla5": Soft Task |
- |
-Periodical Task CTX [ 368] PID [ 15] |
- Total Execution [ 125033245 ns] |
- Mean CPU Bandwidth [ 0.562652% ] |
- after first exec [ 1.632032% ] |
- Execs Number [ 4239 ] |
- Min Exec [ 242 ns] |
- Mean Exec [ 29495 ns] |
- Max Exec [ 91828 ns] |
- |
- Total Job Exec [ 125033245 ns] |
- Jobs Number [ 767 ] |
- Min Job [ 162266 ns] |
- Mean Job [ 163015 ns] |
- Max Job [ 164284 ns] |
- |
- Min Arr. Delta [ 9187114 ns] |
- Mean Arr. Delta [ 9999969 ns] |
- Max Arr. Delta [ 10802835 ns] |
- |
-- Task 15 "palla6": Soft Task |
- |
-Periodical Task CTX [ 376] PID [ 16] |
- Total Execution [ 118201550 ns] |
- Mean CPU Bandwidth [ 0.531910% ] |
- after first exec [ 1.631159% ] |
- Execs Number [ 3985 ] |
- Min Exec [ 244 ns] |
- Mean Exec [ 29661 ns] |
- Max Exec [ 91622 ns] |
- |
- Total Job Exec [ 118201550 ns] |
- Jobs Number [ 725 ] |
- Min Job [ 162270 ns] |
- Mean Job [ 163036 ns] |
- Max Job [ 164089 ns] |
- |
- Min Arr. Delta [ 7797571 ns] |
- Mean Arr. Delta [ 9999955 ns] |
- Max Arr. Delta [ 12192001 ns] |
- |
-- Task 16 "palla7": Soft Task |
- |
-Background Task CTX [ 248] PID [NODEF] |
- Total Execution [ 7674 ns] |
- Mean CPU Bandwidth [ 0.000035% ] |
- after first exec [ 72.711768% ] |
- Execs Number [ 1 ] |
- Min Exec [ 7674 ns] |
- Mean Exec [ 7674 ns] |
- Max Exec [ 7674 ns] |
- |
-- Global context: the kernel context |
- |
Index: rel_1_5_beta1/newtrace/utils/list.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/utils/list.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/utils/list.c (nonexistent) |
@@ -1,88 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@gandalf.sssup.it> |
- * |
- * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
- * |
- * http://www.sssup.it |
- * http://retis.sssup.it |
- * http://shark.sssup.it |
- */ |
- |
-#include <stdio.h> |
-#include <unistd.h> |
-#include <stdlib.h> |
-#include <string.h> |
- |
-#define READ_BUFFER 2000 |
-#define DELTA_BUFFER 100 |
- |
-int main(int argc, char *argv[]) |
-{ |
- |
- char buffer[READ_BUFFER+DELTA_BUFFER]; |
- void *p, *last; |
- int n,delta,size; |
- |
- unsigned long long ev = 0; |
- |
- FILE *input_file; |
- |
- if (argc < 2) { |
- printf("%s: Enter the input file name [%s filename]\n",argv[0],argv[0]); |
- exit(1); |
- } |
- |
- input_file = fopen(argv[1],"rb"); |
- |
- last = buffer + READ_BUFFER; |
- |
- while(!feof(input_file)) { |
- |
- //move remaining byte |
- delta = (unsigned int)(buffer) + READ_BUFFER - (unsigned int)(last); |
- if (delta > 0) memcpy(buffer,last,delta); |
- |
- n = fread(buffer+delta,1,READ_BUFFER+10,input_file); |
- fseek(input_file,-(delta+10),SEEK_CUR); |
- |
- p = buffer; |
- |
- while ((unsigned int)(p) + 16 <= (unsigned int)(buffer + READ_BUFFER) && |
- (unsigned int)(p) + 16 <= (unsigned int)(buffer + n + delta)) { |
- |
- printf("%08d Type = %02x ",(unsigned int)ev,*(unsigned short int *)(p)); |
- |
- printf("TSC = %08x:%08x",*(unsigned int *)(p+4),*(unsigned int *)(p+8)); |
- |
- size = 16; |
- |
- printf(" Par1 = %d",*(unsigned short int *)(p+2)); |
- printf(" Par2 = %d\n",*(unsigned int *)(p+12)); |
- |
- ev++; |
- |
- p += 16; |
- |
- if ((unsigned int)(p) + 10 > (unsigned int)(buffer + n + delta)) break; |
- |
- last = p; |
- |
- } |
- |
- if ((unsigned int)(p) + 10 > (unsigned int)(buffer + n + delta)) break; |
- |
- } |
- |
- fclose(input_file); |
- |
- return 0; |
- |
-} |
- |
Index: rel_1_5_beta1/newtrace/utils/pwcet_gen.c |
=================================================================== |
--- rel_1_5_beta1/newtrace/utils/pwcet_gen.c (revision 1579) |
+++ rel_1_5_beta1/newtrace/utils/pwcet_gen.c (nonexistent) |
@@ -1,239 +0,0 @@ |
-/* |
- * Project: S.Ha.R.K. |
- * |
- * Coordinators: |
- * Giorgio Buttazzo <giorgio@sssup.it> |
- * Paolo Gai <pj@gandalf.sssup.it> |
- * |
- * Authors : |
- * Giacomo Guidi <giacomo@gandalf.sssup.it> |
- * |
- * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
- * |
- * http://www.sssup.it |
- * http://retis.sssup.it |
- * http://shark.sssup.it |
- */ |
- |
-#include <stdio.h> |
-#include <unistd.h> |
-#include <stdlib.h> |
-#include <string.h> |
- |
-#include <FTrace.h> |
- |
-#define READ_BUFFER 2000 |
-#define DELTA_BUFFER 100 |
- |
-int main(int argc, char *argv[]) |
-{ |
- |
- char buffer[READ_BUFFER+DELTA_BUFFER]; |
- void *p, *last; |
- int n,delta,size,tsc; |
- |
- unsigned long long ev = 0, tsc_value; |
- |
- FILE *input_file; |
- |
- if (argc < 2) { |
- printf("%s: Enter the input file name [%s filename]\n",argv[0],argv[0]); |
- exit(1); |
- } |
- |
- input_file = fopen(argv[1],"rb"); |
- |
- last = buffer + READ_BUFFER; |
- |
- while(!feof(input_file)) { |
- |
- //move remaining byte |
- delta = (unsigned int)(buffer) + READ_BUFFER - (unsigned int)(last); |
- if (delta > 0) memcpy(buffer,last,delta); |
- |
- n = fread(buffer+delta,1,READ_BUFFER+10,input_file); |
- fseek(input_file,-(delta+10),SEEK_CUR); |
- |
- p = buffer; |
- |
- while ((unsigned int)(p) + 16 <= (unsigned int)(buffer + READ_BUFFER) && |
- (unsigned int)(p) + 16 <= (unsigned int)(buffer + n + delta)) { |
- |
- tsc = 0; |
- |
- switch (*(unsigned short int *)(p) & 0x00FF) { |
- |
- case FTrace_EVT_ipoint: |
- printf("%d ",*(unsigned short int *)(p+2)); |
- tsc = 1; |
- break; |
- |
- /* Tracer start */ |
- case FTrace_EVT_trace_start: |
- printf("0 "); |
- tsc = 1; |
- break; |
- |
- /* Tracer stop */ |
- case FTrace_EVT_trace_stop: |
- printf("1 "); |
- tsc = 1; |
- break; |
- |
- /* Interrupt start (int num) */ |
- case FTrace_EVT_timer_wakeup_start: |
- case FTrace_EVT_interrupt_start: |
- printf("2 "); |
- tsc = 1; |
- break; |
- |
- /* Interrupt Stop (int num, or context num is int 3) */ |
- case FTrace_EVT_timer_wakeup_end: |
- case FTrace_EVT_interrupt_end: |
- printf("3 "); |
- tsc = 1; |
- break; |
- |
- /* Context to (context num) */ |
- case FTrace_EVT_context_switch: |
- printf("4 "); |
- tsc = 1; |
- break; |
- |
- /* Task Create (context num, pid num) */ |
- case FTrace_EVT_task_create: |
- printf("5 "); |
- tsc = 1; |
- break; |
- |
- /* Task Activate (context num) */ |
- case FTrace_EVT_task_activate: |
- printf("6 "); |
- tsc = 1; |
- break; |
- |
- /* Task End (context num) */ |
- case FTrace_EVT_task_end: |
- printf("7 "); |
- tsc = 1; |
- break; |
- |
- /* Task End-Cycle (context num) */ |
- case FTrace_EVT_task_end_cycle: |
- printf("8 "); |
- tsc = 1; |
- break; |
- |
- /* Task Context - PID declaration */ |
- case FTrace_EVT_id: |
- printf("9 "); |
- tsc = 1; |
- break; |
- |
- case FTrace_EVT_cycles_per_msec: |
- printf("10 "); |
- tsc = 1; |
- break; |
- |
- case FTrace_EVT_task_deadline_miss: |
- printf("20 "); |
- tsc = 1; |
- break; |
- |
- case FTrace_EVT_task_wcet_violation: |
- printf("21 "); |
- tsc = 1; |
- break; |
- |
- } |
- |
- tsc_value = (unsigned long long)(*(unsigned int *)(p+4)) << 32; |
- tsc_value += (unsigned long long)(*(unsigned int *)(p+8)); |
- |
- if (tsc == 1) { |
- |
- printf("%llu ",tsc_value); |
- |
- switch (*(unsigned short int *)(p) & 0x00FF) { |
- |
- case FTrace_EVT_trace_start: |
- printf("%d %d ",*(unsigned short int *)(p+2),*(unsigned int *)(p+12)); |
- break; |
- |
- case FTrace_EVT_interrupt_start: |
- printf("%d ",*(unsigned short int *)(p+2)); |
- break; |
- |
- case FTrace_EVT_timer_wakeup_start: |
- printf("%d ",0); |
- break; |
- |
- case FTrace_EVT_timer_wakeup_end: |
- case FTrace_EVT_interrupt_end: |
- printf("%d ",*(unsigned short int *)(p+2)); |
- break; |
- |
- case FTrace_EVT_context_switch: |
- printf("%d ",*(unsigned short int *)(p+2)); |
- break; |
- |
- case FTrace_EVT_task_create: |
- printf("%d %d",*(unsigned short int *)(p+2),*(unsigned int *)(p+12)); |
- break; |
- |
- case FTrace_EVT_task_deadline_miss: |
- printf("%d %d",*(unsigned short int *)(p+2),*(unsigned int *)(p+12)); |
- break; |
- |
- case FTrace_EVT_task_wcet_violation: |
- printf("%d %d",*(unsigned short int *)(p+2),*(unsigned int *)(p+12)); |
- break; |
- |
- case FTrace_EVT_task_activate: |
- printf("%d ",*(unsigned short int *)(p+2)); |
- break; |
- |
- case FTrace_EVT_task_end_cycle: |
- printf("%d ",*(unsigned short int *)(p+2)); |
- break; |
- |
- case FTrace_EVT_task_end: |
- printf("%d ",*(unsigned short int *)(p+2)); |
- break; |
- |
- case FTrace_EVT_id: |
- printf("%d %d",*(unsigned short int *)(p+2),*(unsigned int *)(p+12)); |
- break; |
- |
- case FTrace_EVT_cycles_per_msec: |
- printf("%d ",*(unsigned int *)(p+12)); |
- break; |
- |
- } |
- |
- printf("\n"); |
- |
- } |
- |
- size = 16; |
- |
- ev++; |
- |
- p += 16; |
- |
- if ((unsigned int)(p) + 10 > (unsigned int)(buffer + n + delta)) break; |
- |
- last = p; |
- |
- } |
- |
- if ((unsigned int)(p) + 10 > (unsigned int)(buffer + n + delta)) break; |
- |
- } |
- |
- fclose(input_file); |
- |
- return 0; |
- |
-} |
- |
Index: rel_1_5_beta1/newtrace/utils/README |
=================================================================== |
--- rel_1_5_beta1/newtrace/utils/README (revision 1579) |
+++ rel_1_5_beta1/newtrace/utils/README (nonexistent) |
@@ -1,19 +0,0 @@ |
-Utility usage: |
- |
-1) udpdump: ./udpdump dumptest |
- |
- - It receives all the UDP tracer packets, |
- saving them inside the "dumptest" file |
- |
-2) pwcet_gen: ./pwcet_gen dumptest > dumptest.pwc |
- |
- - It converts the binary file to a text |
- version with only significative tracer events |
- |
-3) extract: ./extract dumptest.pwc |
- |
- - It shows all the recorded tasks main |
- statistics, usign also "gnuplot" to display |
- execution time distributions, inter-arrival times, |
- and task demand functions. |
- |
Index: rel_1_5_beta1/newtrace/utils/makefile |
=================================================================== |
--- rel_1_5_beta1/newtrace/utils/makefile (revision 1579) |
+++ rel_1_5_beta1/newtrace/utils/makefile (nonexistent) |
@@ -1,36 +0,0 @@ |
-# |
-# util_linux -> compiles the tracer utilities under Linux |
-# |
- |
-ifndef BASE |
-BASE=../../.. |
-endif |
- |
-.PHONY: util_dos util_linux clean |
- |
-all: |
- @echo Targets: util_dos util_linux clean |
- @echo Note: udpdump and list are available only under linux |
- |
-util_linux: udpdump list pwcet_gen extract |
- |
-udpdump: udpdump.c |
- gcc -Wimplicit-function-declaration -Wall -ggdb\ |
- -I$(BASE)/tracer/include -I$(BASE)/oslib udpdump.c -o udpdump |
- |
-list: list.c |
- gcc -Wimplicit-function-declaration -Wall -ggdb\ |
- -I$(BASE)/tracer/include -I$(BASE)/oslib list.c -o list |
- |
-pwcet_gen: pwcet_gen.c |
- gcc -Wimplicit-function-declaration -Wall -ggdb\ |
- -I$(BASE)/tracer/include -I$(BASE)/oslib pwcet_gen.c -o pwcet_gen |
- |
-extract: extract.c |
- gcc -Wimplicit-function-declaration -Wall -ggdb -lm\ |
- -I$(BASE)/tracer/include -I$(BASE)/oslib extract.c -o extract |
- |
-clean: |
- rm -rf *.o udpdump list pwcet_gen extract |
- |
- |
Index: rel_1_5_beta1/newtrace/utils/test |
=================================================================== |
--- rel_1_5_beta1/newtrace/utils/test (revision 1579) |
+++ rel_1_5_beta1/newtrace/utils/test (nonexistent) |
@@ -1,919 +0,0 @@ |
- ®'¿¨{ ` Á(¿¨ ` *¿¨ ` ?+¿¨ ` ,¿¨ ` À-¿¨ ( Á¨ ( !Á¨ ,Á¨ W8Á¨ ( $:Á¨ BÁ¨ ( OÁ¨( SÁ¨ ( ÂXÁ¨ Á¨ ËïÁ¨ b ( õÁ¨ ,ùÁ¨ 0ûÁ¨ Ä Â¨ B HV¨ =d¨ Ih¨ 'j¨ + 4tø¨ iø¨ ø¨ Íø¨ ; Yø¨ ¶ø¨ b ؽø¨ PÁø¨ lÂø¨ + -ù¨ Û1ù¨ B4ù¨ ( n5ù¨ ( "8ù¨( ï:ù¨ ; ( |
->ù¨ èù¨ >ù¨ b ( àù¨ ¯ù¨ Çù¨ + 0© ; ¦0© + =1© Ô?1© B1© ( >C1© ( ÈE1©( uG1© ; ( {I1© ¶1© Ù 1© b ( £1© ä1© Ð¥1© + Oi© ÂQi© Ti© ( (Ui© ( Wi©( Yi© ; ( ÿZi© §¯i© ¥±i© b ( ɳi© µi© ¶i© + %c¡© Xe¡© g¡© ( °h¡© ( k¡©( l¡© ; ( n¡© á© öÄ¡© b ( Ç¡© ÌÈ¡© ÙÉ¡© + uÙ© MwÙ© yÙ© ( ¸zÙ© ( }Ù©( ~Ù© ; ( Ù© DÕÙ© 5×Ù© b ( ½ØÙ© rÚÙ© ÛÙ© + Ϫ Òª Ôª ïÖª ; Úª ¡ãª b .çª Ñèª àéª + ˪ ,ª oª ( £ª ( ª( Áª ; ( ôª §éª ìëª b ( síª 2ïª Aðª + èHª ; ¥êHª + >Iª Iª ÖIª ( ú Iª ( £Iª( 7¥Iª ; ( 1§Iª üIª þIª b ( F Jª Jª
-Jª + 3®ª p°ª IJª ( 볪 ( K¶ª( Í·ª ; ( ¾¹ª 3ª %ª b ( Iª |
-ª ª + 6À¹ª h¹ª Ĺª ( ¸Å¹ª ( ȹª( ɹª ; ( ˹ª & ºª "ºª b ( ;$ºª ò%ºª ÿ&ºª + Óñª ÑÕñª 'Øñª ( CÙñª ( Ûñª( Ýñª ; (
-ßñª 3òª 5òª b ( 7òª Æ8òª Õ9òª + ü+)« ¹.)« å0)« ³3)« ; Ñ6)« Q@)« b C)« ?E)« NF)« + úå)« [è)« Cë)« ( Wì)« ( °î)«( ^ð)« ; ( ò)« JH*« °J*« b ( 8L*« ýM*« O*« + êCa« ; Fa« + øa« Øúa« ýa« ( :þa« ( b«( (b« ; ( ,b« ÍXb« ÌZb« b ( ü\b« ±^b« Í_b« + R« « ׫ ( è« ( H«( É« ; ( º« <l« -n« b ( Qp« r« s« + ?Ò« m Ò« ¡"Ò« ( ¹#Ò« ( &Ò«( 'Ò« ; ( )Ò« ÷}Ò« éÒ« b (
-Ò« ÃÒ« ÐÒ« + e1 |
-¬ ¦3 |
-¬ í5 |
-¬ ( ø6 |
-¬ ( K9 |
-¬( Ì: |
-¬ ; ( Î< |
-¬ t |
-¬ h |
-¬ b ( ð |
-¬ § |
-¬ ¶ |
-¬ + IA¬ |
-A¬ A¬ ×A¬ ; øA¬ aA¬ b ©¢A¬ X¤A¬ g¥A¬ + °CB¬
-FB¬ lHB¬ ( IB¬ ( õKB¬( ¤MB¬ ; ( ÃOB¬ +¥B¬ n§B¬ b ( ç¨B¬ ¦ªB¬ µ«B¬ + £y¬ ; ,¦y¬ + ÆVz¬ Yz¬ C[z¬ ( Z\z¬ ( ¸^z¬( U`z¬ ; ( Zbz¬ .·z¬ S¹z¬ b ( y»z¬ 3½z¬ O¾z¬ + hi²¬ °k²¬ n²¬ ( 8o²¬ ( ×q²¬( is²¬ ; ( Zu²¬ ¥É²¬ Ó˲¬ b ( β¬ µÏ²¬ Äв¬ + `}ê¬ ê¬ ×ê¬ ( ûê¬ ( ~
ê¬( ê¬ ; ( õê¬ QÝê¬ Gßê¬ b ( káê¬ "ãê¬ /äê¬ + X" " à" ( ü" ( O"( Ñ" ; ( Æ" ï" ñ" b ( ºò" lô" {õ" + ôèY ±ëY ÉíY ðY ; ³óY #ýY b i Z Z Z + Ü¢Z >¥Z §Z ( ¨¨Z ( «Z( ¬Z ; ( ήZ [ {[ b ( þ[ à [ Ò |
-[ + $ ; Ç + ѵ ¸ Pº ( g» ( º½( U¿ ; ( [Á á Ý b ( Ç ã + ïÇÊ 0ÊÊ tÌÊ (
ÍÊ ( åÏÊ( fÑÊ ; ( YÓÊ §'Ë )Ë b ( Þ+Ë -Ë .Ë + Û® IÝ® }ß® ( à® ( öâ®( wä® ; ( hæ® :® <® b ( Ó>® @® A® + î:® Qð:® ò:® ( £ó:® ( öõ:®( w÷:® ; ( yù:® ÔM;® ÅO;® b ( lQ;® S;® .T;® + 7Fr® ÿHr® Kr® ÖMr® ; õPr® ¿[r® b _r® ¨`r® ·ar® + s® {s® Ás® ( ës® ( Js®( ë s® ; ( s® Aas®
cs® b ( es® Çfs® Ögs® + /^ª® ; Ò`ª® + Ü«® !«® d«® ( «® ( Ü«®( w«® ; ( q«® )s«® -u«® b ( bw«® y«® )z«® + &ã® ê(ã® 3+ã® ( Z,ã® ( º.ã®( <0ã® ; ( -2ã® ã® ã® b ( Ìã® yã® ã® + 8¯ Ì:¯ =¯ ( >¯ ( {@¯( þA¯ ; ( óC¯ n¯ _¯ b ( ¢¯ Y¯ f¯ + ÜKS¯ NS¯ dPS¯ ( QS¯ ( ÓSS¯( UUS¯ ; ( FWS¯ ЫS¯ ÄS¯ b ( k¯S¯ ±S¯ ,²S¯ + 4¤¯ õ¦¯
-©¯ ᫯ ; ý®¯ ¹¯ b ȼ¯ k¾¯ z¿¯ + '^¯ `¯ Øb¯ ( ìc¯ ( Ef¯( ág¯ ; ( j¯ ¿¯ çÁ¯ b ( yï >ů MƯ + ¼Â¯ ; 3¿Â¯ + =qï ~sï ¼uï ( Óvï ( &yï( Ázï ; ( Ç|ï hÑï gÓï b ( Õï Q×ï mØï + |û¯ ½
û¯ û¯ ( û¯ ( rû¯( óû¯ ; ( æû¯ [ãû¯ Låû¯ b ( çû¯ Féû¯ Uêû¯ + É3° ÷3° +3° ( C3° ( ¤3°( % 3° ; ( ¢3° ö3° tø3° b ( ·ú3° sü3° ý3° + ð©k° 1¬k° x®k° ( ¯k° ( Ö±k°( W³k° ; ( Yµk° å l° Öl° b ( }
-l° 0l° ?l° + H£° £° £° Ò £° ; ñ£° Z£° b £° C£° R£° + ¼£° m¾£° ³À£° ( ÝÁ£° ( <Ä£°( ÝÅ£° ; ( êÇ£° ᤰ % ¤° b ( ¨!¤° g#¤° v$¤° + ÏÛ° ; rÛ° + |ÏÛ° ÁÑÛ° ÔÛ° ( )ÕÛ° ( |×Û°( ÙÛ° ; ( ÛÛ° å/Ü° æ1Ü° b ( 4Ü° Õ5Ü° â6Ü° + øá± 5ä± ~æ± ( ¥ç± ( ê±( ë± ; ( xí± èA± ÚC± b ( F± ÏG± ÞH± + VõK± ÷K± ÆùK± ( ÞúK± ( =ýK±( ¿þK± ; ( ´ L± EUL± 6WL± b ( yYL± 0[L± =\L± + H±
± б ( ì± ( ?±( Á± ; ( ²± <g± 0i± b ( ×j± l± m± + a»± Îc»± æe»± ¼h»± ; Úk»± Ku»± b x»± 4z»± C{»± + ¼± d¼± ´¼± ( È ¼± ( !#¼±( ½$¼± ; ( ê&¼± M|¼± ³~¼± b ( E¼± |
-¼± ¼± + \yó± ; ÿ{ó± + .ô± J0ô± 2ô± ( 3ô± ( ò5ô±( 7ô± ; ( 9ô± 4ô± 3ô± b ( hô± ô± 9ô± + H@,² B,² ÍD,² ( ÞE,² ( >H,²( ¿I,² ; ( ²K,² 2 ,² #¢,² b ( f¤,² ¦,² ,§,² + 5Rd² cTd² Vd² ( ¯Wd² ( Zd²( [d² ; ( ]d² î±d² à³d² b ( #¶d² Ù·d² æ¸d² + \e² g² äi² ( ïj² ( Bm²( Ãn² ; ( Åp² QŲ BDz b ( éȲ ʲ «Ë² + $¿Ó² áÁÓ² íÃÓ² ®ÆÓ² ; ÍÉÓ² 1ÓÓ² b wÖÓ² ØÓ² )ÙÓ² + öxÔ² S{Ô² }Ô² ( Ã~Ô² ( "Ô²( ÃÔ² ; ( éÔ² rÚÔ² ºÜÔ² b ( =ÞÔ² üßÔ² áÔ² + m׳ ; Ú³ + ¬³ ñ³ 4³ ( Y³ ( ¬³( G³ ; ( A³ $ë³ (í³ b ( ]ï³ ñ³ $ò³ + £D³ à D³ )£D³ ( P¤D³ ( °¦D³( 2¨D³ ; ( #ªD³ þD³ E³ b ( ÂE³ oE³ ~E³ + °|³ ²|³ ú´|³ ( ¶|³ ( q¸|³( ó¹|³ ; ( ä»|³ _}³ P}³ b ( }³ J}³ W}³ + Íô³ |
-Æ´³ UÈ´³ ( qÉ´³ ( ÄË´³( FÍ´³ ; ( ;Ï´³ Æ#µ³ º%µ³ b ( a'µ³ )µ³ "*µ³ + ì³ \ ì³ "ì³ V%ì³ ; t(ì³ ß1ì³ b %5ì³ È6ì³ ×7ì³ + -Öì³ Øì³ áÚì³ ( õÛì³ ( NÞì³( êßì³ ; ( âì³ 7í³ þ9í³ b ( ;í³ U=í³ d>í³ + 6$´ ; º8$´ + Té$´ ë$´ Óí$´ ( êî$´ ( =ñ$´( Øò$´ ; ( äô$´
I%´ K%´ b ( ¶M%´ kO%´ P%´ + û\´ Ôý\´ ]´ ( )]´ ( ]´( |
-]´ ; ( ý]´ }[]´ n]]´ b ( ±_]´ ha]´ wb]´ + ë´ ´ M´ ( e´ ( Ä´( E´ ; ( 8´ ¤n´ p´ b ( Ùr´ t´ u´ + "Í´ S$Í´ &Í´ ( ¥'Í´ ( ø)Í´( y+Í´ ; ( {-Í´ Í´ øÍ´ b (
Í´ RÍ´ aÍ´ + jzµ '}µ 3µ ôµ ;
µ |µ b µ eµ tµ + ;4µ 6µ Õ8µ ( ÿ9µ ( ^<µ( ÿ=µ ; ( @µ µ õ b ( Fµ µ µ + m<µ ; <µ + G=µ eI=µ ¨K=µ ( ÍL=µ ( O=µ( »P=µ ; ( µR=µ §=µ ©=µ b ( ¿«=µ y=µ ®=µ + Yuµ Ù[uµ "^uµ ( I_uµ ( ©auµ( +cuµ ; ( euµ ¹uµ »uµ b ( ƽuµ x¿uµ Àuµ + ÿlµ 1oµ iqµ ( rµ ( àtµ( bvµ ; ( Wxµ é̵ Úε b ( ѵ ÔÒµ áÓµ + Wåµ åµ ßåµ ( û
åµ ( Nåµ( Ðåµ ; ( Ååµ Pàåµ Dâåµ b ( ëãåµ ååµ ¬æåµ + ´Ø¶ qÛ¶ ݶ `ච; ~㶠èì¶ b .ð¶ Ññ¶ àò¶ + §¶ ¶ X¶ ( l¶ ( Ŷ( a¶ ; ( ¶ åó¶ Jö¶ b ( Ü÷¶ ¡ù¶ °ú¶ + ôðT¶ ; óT¶ + ¡¥U¶ â§U¶ ªU¶ ( 7«U¶ ( U¶( %¯U¶ ; ( +±U¶ ÍV¶ ÉV¶ b ( þ V¶ ³V¶ ÏV¶ + Û·¶ º¶ `¼¶ ( q½¶ ( Ñ¿¶( RÁ¶ ; ( Eö Ŷ ¶¶ b ( ù¶ °¶ ¿¶ + 3ËŶ aÍŶ ÏŶ ( ÐŶ ( ÓŶ( ÔŶ ; ( ÖŶ ì*ƶ Þ,ƶ b ( !/ƶ ×0ƶ ä1ƶ + ZÞý¶ àý¶ ââý¶ ( íãý¶ ( @æý¶( Áçý¶ ; ( Ãéý¶ O>þ¶ @@þ¶ b ( çAþ¶ Cþ¶ ©Dþ¶ + ²65· o95· ;5· P>5· ; qA5· ÅJ5· b N5· ¨O5· ·P5· + ð5· öò5· <õ5· ( fö5· ( Åø5·( fú5· ; ( ü5· R6· GT6· b ( ÊU6· W6· X6· + òNm· ; Qm· + n· än· 'n· ( L n· ( n·( :
-n· ; ( 4n· dn· fn· b ( Phn· |
-jn· kn· + +¦· h¦· ±¦· ( ئ· ( 8¦·( º¦· ; ( «!¦· v¦· x¦· b ( Jz¦· ÷{¦· }¦· + )Þ· µ+Þ· í-Þ· ( /Þ· ( d1Þ·( æ2Þ· ; ( ×4Þ· WÞ· HÞ· b ( Þ· BÞ· OÞ· + Z;¸ =¸ â?¸ ( þ@¸ ( QC¸( ÓD¸ ; ( ÄF¸ N¸ B¸ b ( é¸ ¸ ª¡¸ + #M¸ æM¸ þM¸ ÌM¸ ; ìM¸ #ªM¸ b iM¸ ¯M¸ °M¸ + ON¸ vQN¸ ÍSN¸ ( áTN¸ ( :WN¸( ÖXN¸ ; ( [N¸ °N¸ õ²N¸ b ( ´N¸ L¶N¸ [·N¸ +
¸ ; B°
¸ + Ü`¸ c¸ [e¸ ( rf¸ ( Åh¸( `j¸ ; ( fl¸ Á¸ ø b ( ;Ÿ ðƸ ȸ + t¾¸ Çv¾¸ y¾¸ ( z¾¸ ( ||¾¸( ý}¾¸ ; ( 𾸠`Ô¾¸ QÖ¾¸ b ( ؾ¸ KÚ¾¸ ZÛ¾¸ + cö¸ ö¸ Åö¸ ( Ýö¸ ( >ö¸( ¿ö¸ ; ( °ö¸ æö¸
-èö¸ b ( Pêö¸ ìö¸ íö¸ + .¹ Ê.¹ .¹ ( .¹ ( o¡.¹( ð¢.¹ ; ( ò¤.¹ ~ù.¹ oû.¹ b ( ý.¹ Íþ.¹ Üÿ.¹ + Róe¹ öe¹ øe¹ Üúe¹ ; ûýe¹ df¹ b ª |
-f¹ Mf¹ \
-f¹ + #f¹ w¯f¹ ½±f¹ ( ç²f¹ ( Fµf¹( ç¶f¹ ; ( ð¸f¹ gg¹ «g¹ b ( .g¹ íg¹ üg¹ + U¹ ; ø
-¹ + À¹ G¹ Ĺ ( ¯Å¹ ( ȹ( ɹ ; ( ˹ k ¹ l"¹ b ( ¡$¹ [&¹ h'¹ + ~ÒÖ¹ »ÔÖ¹ ×Ö¹ ( +ØÖ¹ ( ÚÖ¹(
-ÜÖ¹ ; ( þÝÖ¹ n2×¹ `4×¹ b ( £6×¹ U8×¹ d9×¹ + qäº £æº Ûèº ( óéº ( Rìº( Ôíº ; ( Éïº [Dº LFº b ( Hº FJº SKº + É÷Fº úFº QüFº ( mýFº ( ÀÿFº( BGº ; ( 7Gº ÂWGº ¶YGº b ( ][Gº ]Gº ^Gº + Q~º TT~º lV~º 9Y~º ; U\~º ¿e~º b i~º ¨j~º ·k~º + |
-º oº ƺ ( Úº ( 3º( Ϻ ; ( º Wkº ¼mº b ( Noº qº "rº + ×i¶º ; zl¶º + ·º T·º !·º ( ©"·º ( ü$·º( &·º ; ( (·º ?}·º ;·º b ( p·º %·º A·º + ¸0ïº ù2ïº =5ïº ( N6ïº ( ®8ïº( /:ïº ; ( "<ïº ¢ïº ïº b ( Öïº ïº ïº + ¥B'» ÓD'» G'» ( H'» ( J'»( L'» ; ( òM'» ^¢'» P¤'» b ( ¦'» E¨'» R©'» + ÌU_»
-X_» TZ_» ( _[_» ( ²]_»( 3__» ; ( 5a_» Áµ_» ²·_» b ( Y¹_» »_» ¼_» + ¯» U²» u´» 6·» ; Yº» ¼Ã» b Ç» ¥È» ´É» + h» nj» ´l» ( Þm» ( =p»( Þq» ; ( t» É» ÊË» b ( MÍ» Ï» л + åÇλ ; Êλ + !{Ï» f}Ï» ©Ï» ( ÎÏ» ( !Ï»( ¼Ï» ; ( ¶Ï» ÛÏ» £ÝÏ» b ( ØßÏ» áÏ» âÏ» + ³¼ ð¼ 9¼ ( `¼ ( À¼( B¼ ; ( 3¼ í¼ ï¼ b ( Øñ¼
ó¼ ô¼ + ¡?¼ C£?¼ {¥?¼ ( ¦?¼ ( ò¨?¼( tª?¼ ; ( i¬?¼ å @¼ Ö@¼ b ( @¼ Ð@¼ Ý@¼ + S´w¼ ¶w¼ Û¸w¼ ( ÷¹w¼ ( J¼w¼( ̽w¼ ; ( Á¿w¼ Lx¼ @x¼ b ( çx¼ x¼ ¨x¼ + °¯¼ m¯¼
¯¼ R¯¼ ; n¯¼ ä ¯¼ b *$¯¼ Í%¯¼ Ü&¯¼ + Ư¼ ùȯ¼ P˯¼ ( d̯¼ ( ½Î¯¼( YЯ¼ ; ( Ò¯¼ (°¼ g*°¼ b ( ù+°¼ ¾-°¼ Í.°¼ + %ç¼ ; ´'ç¼ + ¾Ùç¼ ÿÛç¼ =Þç¼ ( Tßç¼ ( §áç¼( Bãç¼ ; ( Håç¼ ê9è¼ æ;è¼ b ( >è¼ Ð?è¼ ì@è¼ + øë½ 9î½ }ð½ ( ñ½ ( îó½( oõ½ ; ( b÷½ ÒK ½ ÃM ½ b ( P ½ ¾Q ½ ÍR ½ + @ÿW½ nX½ ¢X½ ( ºX½ ( X½( X½ ; ( |
-X½ ø^X½ ê`X½ b ( -cX½ ãdX½ ðeX½ + f½ §½ î½ ( ù½ ( L½( ͽ ; ( Ͻ [r½ St½ b ( úu½ ²w½ Áx½ + Äjǽ mǽ oǽ Xrǽ ; wuǽ á~ǽ b 'ǽ Êǽ Ùǽ + $Ƚ ô&Ƚ :)Ƚ ( d*Ƚ ( Ã,Ƚ( d.Ƚ ; ( m0Ƚ ä
Ƚ (Ƚ b ( «È½ jȽ yȽ + Òÿ½ ; u
ÿ½ + 7 ¾ Ä9 ¾ < |
---|