Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
*** empty log message ***
authoramad206 <amad206@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 19 May 2006 20:23:00 +0000 (20:23 +0000)
committeramad206 <amad206@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 19 May 2006 20:23:00 +0000 (20:23 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2257 48e7efb5-ca39-0410-a469-dd3cf9ba447f

examples/gras/pmm/pmm.c [new file with mode: 0755]
examples/gras/pmm/pmm_deployment.xml [new file with mode: 0644]
examples/gras/pmm/pmm_plateform.xml [new file with mode: 0644]

diff --git a/examples/gras/pmm/pmm.c b/examples/gras/pmm/pmm.c
new file mode 100755 (executable)
index 0000000..379cbb5
--- /dev/null
@@ -0,0 +1,394 @@
+/* pmm - paralel matrix multiplication "double diffusion"                       */
+
+/* Copyright (c) 2006- Ahmed Harbaoui. All rights reserved.                  */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include "gras.h"
+#define MATRIX_SIZE 3
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(pmm,"Messages specific to this example");
+
+GRAS_DEFINE_TYPE(s_matrix,struct s_matrix {
+       int rows;
+       int cols;
+       double *data GRAS_ANNOTE(size, rows*cols);
+};)
+typedef struct s_matrix matrix_t;
+
+/* struct for recovering results */
+GRAS_DEFINE_TYPE(s_result,struct s_result {
+       int i;
+       int j;
+       double value;
+});
+typedef struct s_result result_t;
+
+/* struct to send initial data to sensor */
+GRAS_DEFINE_TYPE(s_init_data,struct s_init_data {
+       int myrow;
+       int mycol;
+       double a;
+       double b;
+});
+typedef struct s_init_data init_data_t;
+
+/* register messages which may be sent (common to client and server) */
+static void register_messages(void) {
+       gras_datadesc_type_t result_type;
+       gras_datadesc_type_t init_data_type;
+       result_type=gras_datadesc_by_symbol(s_result);
+       init_data_type=gras_datadesc_by_symbol(s_init_data);
+       
+       gras_msgtype_declare("result", result_type);
+       gras_msgtype_declare("init_data", init_data_type);
+
+       gras_msgtype_declare("ask_result", gras_datadesc_by_name("int"));       
+       gras_msgtype_declare("step", gras_datadesc_by_name("int"));
+       gras_msgtype_declare("step_ack", gras_datadesc_by_name("int"));
+       gras_msgtype_declare("data", gras_datadesc_by_name("int"));
+}
+
+/* Function prototypes */
+int maestro (int argc,char *argv[]);
+int sensor (int argc,char *argv[]);
+
+/* **********************************************************************
+ * Maestro code
+ * **********************************************************************/
+
+/* Global private data */
+typedef struct {
+  int nbr_col,nbr_row;
+  int remaining_step;
+  int remaining_ack;
+} maestro_data_t;
+
+
+static int maestro_cb_data_handler(gras_msg_cb_ctx_t ctx, void *payload) {
+
+  xbt_ex_t e;
+  /* 1. Get the payload into the msg variable */
+  int msg=*(int*)payload_data;
+
+  gras_socket_t expeditor = gras_msg_cb_ctx_from(ctx);
+
+  /*code of callback */
+   
+  /* 8. Make sure we don't leak sockets */
+  gras_socket_close(expeditor);
+   
+  /* 9. Tell GRAS that we consummed this message */
+  return 1;
+} /* end_of_maestro_cb_data_handler */
+
+/***  Function initilaze matrixs ***/
+
+static void initmatrix(matrix_t *X){
+       int i;
+       for(i=0 ; i<X.rows*X.cols; i++)
+               X.data[i]=1.0;//1.0*rand()/(RAND_MAX+1.0);
+
+} /* end_of_initmatrixs */
+
+/***  Function Scatter Sequentiel ***/
+
+static void scatter(){
+
+}/* end_of_Scatter */
+
+/***  Function: Scatter // ***/
+
+static void scatter_parl(){
+
+}/* end_of_Scatter // */
+
+/***  Function: multiplication ***/
+
+static void multiplication(){
+       
+  int step,i;
+       
+  for (step=1; step <= MATRIX_SIZE; step++){
+    for (i=0; i< nbr_sensor; i++){
+       TRY {
+              gras_msg_send(proc[(i/3)+1][(i%3)+1], gras_msgtype_by_name("step"), &step);  /* initialize Mycol, MyRow, mydataA,mydataB*/
+  
+              myrow,mycol,mydataA,mydataB
+       } CATCH(e) {
+       gras_socket_close(proc[(i/3)+1][(i%3)+1]);
+       RETHROW0("Unable to send the msg : %s");
+       }
+    }
+    /* wait for computing and sensor messages exchange */
+    TRY {
+           gras_msg_wait(600,gras_msgtype_by_name("init_data"),&from,&mydata);
+    } CATCH(e) {
+           RETHROW0("I Can't get a init Data message from Maestro : %s");
+    }
+  }
+
+}/* end_of_multiplication */
+
+/***  Function: gather ***/
+
+static void gather(){
+
+       
+}/* end_of_gather */
+
+/***  Function: Display Matrix ***/
+
+static void display(matrix_t X){
+       
+int i,j,t=0;
+
+  printf("      ");
+  for(j=0;j<X.cols;j++)
+    printf("%.3d ",j);
+    printf("\n");
+    printf("    __");
+    for(j=0;j<X.cols;j++)
+       printf("____");
+       printf("_\n");
+
+       for(i=0;i<X.rows;i++){
+         printf("%.3d | ",i);
+         for(j=0;j<X.cols;j++)
+           printf("%.3g ",X.data[t++]);
+         printf("|\n");
+       }
+       printf("    --");
+       for(j=0;j<X.cols;j++)
+               printf("----");
+       printf("-\n");
+
+}/* end_of_display */
+
+int maestro (int argc,char *argv[]) {
+
+xbt_ex_t e;
+int i,ask_result,step;
+result_t result;
+matrix_t A,B,C;
+
+  gras_socket_t socket[MATRIX_SIZE*MATRIX_SIZE]; /* sockets for brodcast to other sensor */
+       
+
+  /*  Initialize Matrixs */
+
+       A.rows=A.cols=MATRIX_SIZE;
+       B.rows=B.cols=MATRIX_SIZE;
+       C.rows=C.cols=MATRIX_SIZE;
+       
+       A.data=xbt_malloc0(sizeof(double)*MATRIX_SIZE*MATRIX_SIZE);
+       B.data=xbt_malloc0(sizeof(double)*MATRIX_SIZE*MATRIX_SIZE);
+       C.data=xbt_malloc0(sizeof(double)*MATRIX_SIZE*MATRIX_SIZE);
+       
+       initmatrix(&A);
+       initmatrix(&B);
+       
+       /*  Init the GRAS's infrastructure */
+       gras_init(&argc, argv);
+       /*  Get arguments and create sockets */
+       port=atoi(argv[1]);
+       //scatter();multiplication();gather();
+       //scatter_parl();
+       /****************************** Init Data Send *********************************/
+       int j=0;
+       init_data_t mydata;
+       for( i=2;i< argc;i+=3){
+               
+               TRY {
+                       socket[j]=gras_socket_client(argv[i],port);
+                       
+               } CATCH(e) {
+                       RETHROW0("Unable to connect to the server: %s");
+               }
+               INFO2("Connected to %s:%d.",argv[i],port);
+               
+               mydata.myrow=argv[i+1];  // My rank of row
+               mydata.mycol=argv[i+2];  // My rank of column
+               mydata.a=A.data[(mydata.myrow-1)*MATRIX_SIZE+(mydata.mycol-1)];
+               mydata.b=B.data[(mydata.myrow-1)*MATRIX_SIZE+(mydata.mycol-1)];;
+               
+               gras_msg_send(socket[j],gras_msgtype_by_name("init_data"),&mydata);
+               j++;
+       } // end init Data Send
+
+       /******************************* multiplication ********************************/
+
+       for (step=1; step <= MATRIX_SIZE; step++){
+               for (i=0; i< nbr_sensor; i++){
+               TRY {
+               gras_msg_send(socket[i], gras_msgtype_by_name("step"), &step);  /* initialize Mycol, MyRow, mydataA,mydataB*/
+  
+               myrow,mycol,mydataA,mydataB
+                   } CATCH(e) {
+               gras_socket_close(socket[i]);
+               RETHROW0("Unable to send the msg : %s");
+               }
+       }
+       
+       /* wait for computing and sensor messages exchange */
+       for (i=0; i< nbr_sensor; i++){
+               TRY {
+               gras_msg_wait(600,gras_msgtype_by_name(""),&from,&mydata);
+               } CATCH(e) {
+               RETHROW0("I Can't get a init Data message from Maestro : %s");
+               }
+       }
+       }
+       /*********************************  gather ***************************************/
+       
+       int ask_result=0;
+       for( i=1;i< argc;i++){
+               gras_msg_send(socket[i],gras_msgtype_by_name("ask_result"),&ask_result);
+       }
+       /* wait for results */
+       for( i=1;i< argc;i++){
+               gras_msg_wait(600,gras_msgtype_by_name("result"),&from,&result);
+               C.data[(result.i-1)*MATRIX_SIZE+(result.j-1)]=result.value;
+       }
+       /*    end of gather   */
+       display(C);
+
+return 0;
+} /* end_of_maestro */
+
+/* **********************************************************************
+ * Sensor code
+ * **********************************************************************/
+
+int sensor(int argc,char *argv[]) {
+
+  xbt_ex_t e; 
+
+  static int bC=0;
+  static int myrow,mycol;
+  static double mydataA,mydataB;
+  int bA,bB;
+  int step,l,result=0;
+
+  gras_socket_t from;  /* to recive from server for steps */
+
+  gras_socket_t socket_row[2],socket_column[2]; /* sockets for brodcast to other sensor */
+
+  /* Init the GRAS's infrastructure */
+
+  gras_init(&argc, argv);
+
+  /* Get arguments and create sockets */
+
+  port=atoi(argv[1]);
+  int i;
+  for (i=1;i<MATRIX_SIZE;i++){
+  socket_row[i]=gras_socket_client(argv[i+1],port);
+  socket_column[i]=gras_socket_client(argv[i+MATRIX_SIZE],port);
+  }
+  INFO2("Launch %s (port=%d)",argv[0],port);
+
+  /*  Create my master socket */
+  sock = gras_socket_server(port);
+
+  /*  Register the known messages */
+  register_messages();
+
+  /* Recover my initialized Data and My Position*/
+  init_data_t mydata;
+
+  TRY {
+         gras_msg_wait(600,gras_msgtype_by_name("init_data"),&from,&mydata);
+  } CATCH(e) {
+       RETHROW0("I Can't get a init Data message from Maestro : %s");
+  }
+  myrow=mydata.myrow;
+  mycol=mydata.mycol;
+  mydataA=mydata.a;
+  mydataB=mydata.b;
+
+  INFO4("Recover MY POSITION (%d,%d) and MY INIT DATA ( A=%.3g | B=%.3g )",
+       myrow,mycol,mydataA,mydataB);
+
+
+  do {  //repeat until compute Cb
+       step=MATRIX_SIZE+1;  // juste intilization for loop
+
+  TRY {
+       gras_msg_wait(600,gras_msgtype_by_name("step"),&from,&step);
+  } CATCH(e) {
+         RETHROW0("I Can't get a Next Step message from Maestro : %s");
+  }
+
+  /*  Wait for sensors startup */
+  gras_os_sleep(1);
+
+  if (step < MATRIX_SIZE){
+         /* a row brodcast */
+         if(myrow==step){
+                 for (l=1;l < MATRIX_SIZE ;l++){
+                         gras_msg_send(socket_row[l], gras_msgtype_by_name("data"), &mydataB);
+                         bB=mydataB;
+                 }
+         }
+         else
+         {
+                 TRY {
+                         gras_msg_wait(600,gras_msgtype_by_name("data"),
+                                       &from,&bB);
+                 } CATCH(e) {
+                         RETHROW0("I Can't get a data message from row : %s");
+                 }
+         }
+         /* a column brodcast */       
+         if(mycol==step){
+                 for (l=1;l < MATRIX_SIZE ;l++){
+                         gras_msg_send(socket_column[l],gras_msgtype_by_name("data"), &mydataA);
+                         bA=mydataA;
+                 }
+         }
+         else
+         {
+                 TRY {
+                         gras_msg_wait(600,gras_msgtype_by_name("data"),
+                                       &from,&bA);
+                 } CATCH(e) {
+                         RETHROW0("I Can't get a data message from column : %s");
+                 }
+         }
+         bC+=bA*bB;
+         }
+         /* send a ack msg to Maestro */
+       
+         gras_msg_send(from,gras_msgtype_by_name("step_ack"),&step);
+       
+         INFO1("Send ack to maestro for to end %d th step",step);
+       
+         if(step==MATRIX_SIZE-1) break;
+
+  } while (step < MATRIX_SIZE);
+    /*  wait Message from maestro to send the result */
+           /*after finished the bC computing */
+         TRY {
+                 gras_msg_wait(600,gras_msgtype_by_name("result"),
+                               &from,&result);
+         } CATCH(e) {
+                 RETHROW0("I Can't get a data message from row : %s");
+         }
+         /* 5. send Result to the Maestro */
+         TRY {
+                 gras_msg_send(from, gras_msgtype_by_name("result"),&bC);
+         } CATCH(e) {
+                 gras_socket_close(from);
+                 RETHROW0("Failed to send PING to server: %s");
+         }
+         INFO3(">>>>>>>> Result: %d sent to %s:%d <<<<<<<<",
+               bC,
+               gras_socket_peer_name(from),gras_socket_peer_port(from));
+    /*  Free the allocated resources, and shut GRAS down */
+         gras_socket_close(from);
+         gras_exit();
+         INFO0("Done.");
+         return 0;
+} /* end_of_sensor */
\ No newline at end of file
diff --git a/examples/gras/pmm/pmm_deployment.xml b/examples/gras/pmm/pmm_deployment.xml
new file mode 100644 (file)
index 0000000..c5b1712
--- /dev/null
@@ -0,0 +1,98 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform_description SYSTEM "surfxml.dtd">
+<platform_description>
+  <!-- The Tremblay node, arguments :: all others nodes -->
+  <process host="Jacquelin" function="Maestro">
+     <argument value="4000"/>
+     <argument value="Boivin"/>
+     <argument value="1"/>
+     <argument value="1"/>
+     <argument value="Jean_Yves"/>
+     <argument value="1"/>
+     <argument value="2"/>
+     <argument value="TeX"/>
+     <argument value="1"/>
+     <argument value="3"/>
+     <argument value="Geoff"/>
+     <argument value="2"/>
+     <argument value="1"/>
+     <argument value="Disney"/>
+     <argument value="2"/>
+     <argument value="2"/>
+     <argument value="iRMX"/>
+     <argument value="2"/>
+     <argument value="3"/>
+     <argument value="McGee"/>
+     <argument value="3"/>
+     <argument value="1"/>
+     <argument value="Gatien"/>
+     <argument value="3"/>
+     <argument value="2"/>
+     <argument value="Laroche"/>
+     <argument value="3"/>
+     <argument value="3"/>
+  </process>
+  <process host="Boivin" function="sensor">
+         <argument value="4000"/>
+         <argument value="Jean_Yves"/>
+         <argument value="TeX"/>
+         <argument value="Geoff"/>
+         <argument value="Disney"/>
+  </process>
+  <process host="Jean_Yves" function="sensor">
+         <argument value="4000"/>
+         <argument value="Boivin"/>
+         <argument value="TeX"/>
+         <argument value="Disney"/>
+         <argument value="Gatien"/>
+  </process>
+  <process host="TeX" function="sensor">
+         <argument value="4000"/>
+         <argument value="Boivin"/>
+         <argument value="Jean_Yves"/>
+         <argument value="iRMX"/>
+         <argument value="Laroche"/>
+  </process>
+  <process host="Geoff" function="sensor">
+         <argument value="4000"/>
+         <argument value="Boivin"/>
+         <argument value="McGee"/>
+         <argument value="Disney"/>
+         <argument value="iRMX"/>
+  </process>
+  <process host="Disney" function="sensor">
+         <argument value="4000"/>
+         <argument value="Geoff"/>
+         <argument value="iRMX"/>
+         <argument value="Jean_Yves"/>
+         <argument value="Gatien"/>
+  </process>
+  <process host="iRMX" function="sensor">
+         <argument value="4000"/>
+         <argument value="Geoff"/>
+         <argument value="Disney"/>
+         <argument value="TeX"/>
+         <argument value="Laroche"/>
+  </process>
+  <process host="McGee" function="sensor">
+         <argument value="4000"/>
+         <argument value="Gatien"/>
+         <argument value="Laroche"/>
+         <argument value="Boivin"/>
+         <argument value="Geoff"/>
+  </process>
+  <process host="Gatien" function="sensor">
+         <argument value="4000"/>
+         <argument value="McGee"/>
+         <argument value="Laroche"/>
+         <argument value="Jean_Yves"/>
+         <argument value="Disney"/>
+  </process>
+  <process host="Laroche" function="sensor">
+         <argument value="4000"/>
+         <argument value="McGee"/>
+         <argument value="Gatien"/>
+         <argument value="TeX"/>
+         <argument value="iRMX"/>
+  </process>
+</platform_description>
diff --git a/examples/gras/pmm/pmm_plateform.xml b/examples/gras/pmm/pmm_plateform.xml
new file mode 100644 (file)
index 0000000..57e4219
--- /dev/null
@@ -0,0 +1,327 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform_description SYSTEM "surfxml.dtd">
+<platform_description>
+       <cpu name="Jacquelin" power="137.333"/>
+       <cpu name="Boivin" power="98.094999999999999"/>
+       <cpu name="Jean_Yves" power="98.094999999999999"/>
+       <cpu name="TeX" power="68.667000000000002"/>
+       <cpu name="Geoff" power="42.917000000000002"/>
+       <cpu name="Disney" power="114.444"/>
+       <cpu name="iRMX" power="68.667000000000002"/>
+       <cpu name="McGee" power="42.917000000000002"/>
+       <cpu name="Gatien" power="114.444"/>
+       <cpu name="Laroche" power="98.094999999999999"/>
+       <network_link name="127" bandwidth="3.430125" latency="0.000536941"/>
+       <network_link name="32" bandwidth="11.618875" latency="0.00018998"/>
+       <network_link name="90" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="118" bandwidth="1.467625" latency="0.000869727"/>
+       <network_link name="71" bandwidth="8.42725" latency="0.000156056"/>
+       <network_link name="102" bandwidth="4.817" latency="0.000117352"/>
+       <network_link name="18" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="125" bandwidth="5.574625" latency="0.00022743"/>
+       <network_link name="16" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="44" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="55" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="84" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="27" bandwidth="8.015125" latency="0.035076518"/>
+       <network_link name="190" bandwidth="1.23025" latency="0.001502106"/>
+       <network_link name="161" bandwidth="1.469125" latency="0.001114548"/>
+       <network_link name="95" bandwidth="5.7585" latency="0.004760145"/>
+       <network_link name="57" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="20" bandwidth="255.228625" latency="0.007413073"/>
+       <network_link name="163" bandwidth="2.583375" latency="0.000410463"/>
+       <network_link name="109" bandwidth="1.858" latency="0.000820952"/>
+       <network_link name="151" bandwidth="1.564125" latency="0.000788956"/>
+       <network_link name="89" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="175" bandwidth="1.37675" latency="0.000449267"/>
+       <network_link name="148" bandwidth="0.578625" latency="0.005473705"/>
+       <network_link name="31" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="35" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="11" bandwidth="118.6825" latency="0.000136931"/>
+       <network_link name="78" bandwidth="27.94625" latency="0.000278066"/>
+       <network_link name="93" bandwidth="2.608" latency="0.000637001"/>
+       <network_link name="106" bandwidth="0.251625" latency="0.004455826"/>
+       <network_link name="157" bandwidth="0.274375" latency="0.004669142"/>
+       <network_link name="65" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="29" bandwidth="8.158" latency="0.000270544"/>
+       <network_link name="138" bandwidth="0.253125" latency="0.005652577"/>
+       <network_link name="114" bandwidth="0.253125" latency="0.005652577"/>
+       <network_link name="58" bandwidth="21.41475" latency="0.295890617"/>
+       <network_link name="153" bandwidth="4.817" latency="0.000117352"/>
+       <network_link name="15" bandwidth="132.977875" latency="0.000131098"/>
+       <network_link name="137" bandwidth="4.416625" latency="1.9773e-05"/>
+       <network_link name="81" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="60" bandwidth="21.41475" latency="0.295890617"/>
+       <network_link name="101" bandwidth="0.290125" latency="0.004522355"/>
+       <network_link name="73" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="86" bandwidth="8.42725" latency="0.000156056"/>
+       <network_link name="76" bandwidth="27.94625" latency="0.000278066"/>
+       <network_link name="62" bandwidth="8.015125" latency="0.035076518"/>
+       <network_link name="67" bandwidth="27.94625" latency="0.000278066"/>
+       <network_link name="165" bandwidth="0.253125" latency="0.005652577"/>
+       <network_link name="139" bandwidth="1.888875" latency="0.001081287"/>
+       <network_link name="129" bandwidth="1.467625" latency="0.000869727"/>
+       <network_link name="2" bandwidth="132.977875" latency="0.000131098"/>
+       <network_link name="17" bandwidth="118.6825" latency="0.000136931"/>
+       <network_link name="186" bandwidth="4.39725" latency="0.000677601"/>
+       <network_link name="110" bandwidth="5.574625" latency="0.00022743"/>
+       <network_link name="82" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="147" bandwidth="2.368" latency="0.009547561"/>
+       <network_link name="168" bandwidth="1.858" latency="0.000820952"/>
+       <network_link name="184" bandwidth="0.303375" latency="0.004062241"/>
+       <network_link name="135" bandwidth="1.37675" latency="0.000449267"/>
+       <network_link name="14" bandwidth="118.6825" latency="0.000136931"/>
+       <network_link name="112" bandwidth="4.133375" latency="0.009693542"/>
+       <network_link name="69" bandwidth="8.42725" latency="0.000156056"/>
+       <network_link name="191" bandwidth="1.467625" latency="0.000869727"/>
+       <network_link name="172" bandwidth="0.605" latency="0.087981858"/>
+       <network_link name="145" bandwidth="2.583375" latency="0.000410463"/>
+       <network_link name="49" bandwidth="27.94625" latency="0.000278066"/>
+       <network_link name="178" bandwidth="1.469125" latency="0.001114548"/>
+       <network_link name="24" bandwidth="10.099625" latency="0.00047978"/>
+       <network_link name="187" bandwidth="1.467625" latency="0.000869727"/>
+       <network_link name="140" bandwidth="1.4655" latency="0.000863872"/>
+       <network_link name="124" bandwidth="0.556" latency="0.003101854"/>
+       <network_link name="104" bandwidth="4.485125" latency="0.000126045"/>
+       <network_link name="131" bandwidth="0.317375" latency="0.004583831"/>
+       <network_link name="181" bandwidth="4.485125" latency="0.000126045"/>
+       <network_link name="121" bandwidth="4.817" latency="0.000117352"/>
+       <network_link name="79" bandwidth="8.42725" latency="0.000156056"/>
+       <network_link name="154" bandwidth="0.272375" latency="0.005922616"/>
+       <network_link name="0" bandwidth="255.228625" latency="0.007413073"/>
+       <network_link name="23" bandwidth="10.099625" latency="0.00047978"/>
+       <network_link name="96" bandwidth="4.97825" latency="0.007164412"/>
+       <network_link name="126" bandwidth="3.9955" latency="0.000678645"/>
+       <network_link name="159" bandwidth="4.817" latency="0.000117352"/>
+       <network_link name="160" bandwidth="0.274375" latency="0.004669142"/>
+       <network_link name="176" bandwidth="3.1755" latency="0.000472524"/>
+       <network_link name="47" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="8" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="98" bandwidth="0.556" latency="0.003101854"/>
+       <network_link name="37" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="117" bandwidth="1.51525" latency="0.000844683"/>
+       <network_link name="43" bandwidth="27.94625" latency="0.000278066"/>
+       <network_link name="5" bandwidth="41.279125" latency="5.9904e-05"/>
+       <network_link name="170" bandwidth="4.485125" latency="0.000126045"/>
+       <network_link name="33" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="21" bandwidth="41.279125" latency="5.9904e-05"/>
+       <network_link name="63" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="7" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="26" bandwidth="21.41475" latency="0.295890617"/>
+       <network_link name="80" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="119" bandwidth="0.317375" latency="0.004583831"/>
+       <network_link name="180" bandwidth="0.251625" latency="0.004455826"/>
+       <network_link name="99" bandwidth="0.253125" latency="0.005652577"/>
+       <network_link name="179" bandwidth="5.816375" latency="0.000164758"/>
+       <network_link name="162" bandwidth="0.556" latency="0.003101854"/>
+       <network_link name="72" bandwidth="41.279125" latency="5.9904e-05"/>
+       <network_link name="74" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="182" bandwidth="4.416625" latency="1.9773e-05"/>
+       <network_link name="61" bandwidth="8.015125" latency="0.035076518"/>
+       <network_link name="108" bandwidth="0.9905" latency="0.001742977"/>
+       <network_link name="115" bandwidth="0.926625" latency="0.000601375"/>
+       <network_link name="92" bandwidth="1.564125" latency="0.000788956"/>
+       <network_link name="103" bandwidth="0.472125" latency="0.005161451"/>
+       <network_link name="10" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="113" bandwidth="1.858" latency="0.000820952"/>
+       <network_link name="152" bandwidth="7.20975" latency="0.001461517"/>
+       <network_link name="189" bandwidth="0.251625" latency="0.004455826"/>
+       <network_link name="142" bandwidth="1.62775" latency="0.000278175"/>
+       <network_link name="91" bandwidth="8.42725" latency="0.000156056"/>
+       <network_link name="167" bandwidth="0.76875" latency="0.00876244"/>
+       <network_link name="48" bandwidth="41.279125" latency="5.9904e-05"/>
+       <network_link name="107" bandwidth="1.281875" latency="0.006104672"/>
+       <network_link name="87" bandwidth="8.158" latency="0.000270544"/>
+       <network_link name="174" bandwidth="0.290875" latency="0.00447727"/>
+       <network_link name="77" bandwidth="27.94625" latency="0.000278066"/>
+       <network_link name="133" bandwidth="1.469125" latency="0.001114548"/>
+       <network_link name="149" bandwidth="1.04925" latency="0.009647856"/>
+       <network_link name="123" bandwidth="3.430125" latency="0.000536941"/>
+       <network_link name="50" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="39" bandwidth="8.015125" latency="0.035076518"/>
+       <network_link name="64" bandwidth="21.41475" latency="0.295890617"/>
+       <network_link name="97" bandwidth="7.534" latency="0.000125428"/>
+       <network_link name="12" bandwidth="41.279125" latency="5.9904e-05"/>
+       <network_link name="41" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="52" bandwidth="8.42725" latency="0.000156056"/>
+       <network_link name="173" bandwidth="7.534" latency="0.000125428"/>
+       <network_link name="56" bandwidth="21.41475" latency="0.295890617"/>
+       <network_link name="45" bandwidth="8.158" latency="0.000270544"/>
+       <network_link name="66" bandwidth="11.618875" latency="0.00018998"/>
+       <network_link name="19" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="54" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="70" bandwidth="41.279125" latency="5.9904e-05"/>
+       <network_link name="188" bandwidth="3.1755" latency="0.000472524"/>
+       <network_link name="68" bandwidth="41.279125" latency="5.9904e-05"/>
+       <network_link name="166" bandwidth="3.9955" latency="0.000678645"/>
+       <network_link name="1" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="136" bandwidth="0.926625" latency="0.000601375"/>
+       <network_link name="88" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="116" bandwidth="2.368" latency="0.009547561"/>
+       <network_link name="144" bandwidth="0.259125" latency="0.004460898"/>
+       <network_link name="141" bandwidth="0.472125" latency="0.005161451"/>
+       <network_link name="30" bandwidth="10.099625" latency="0.00047978"/>
+       <network_link name="100" bandwidth="0.721625" latency="6.406e-06"/>
+       <network_link name="25" bandwidth="8.015125" latency="0.035076518"/>
+       <network_link name="128" bandwidth="1.469125" latency="0.001114548"/>
+       <network_link name="28" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="120" bandwidth="4.461125" latency="0.000106949"/>
+       <network_link name="156" bandwidth="4.485125" latency="0.000126045"/>
+       <network_link name="134" bandwidth="0.259125" latency="0.004460898"/>
+       <network_link name="40" bandwidth="21.41475" latency="0.295890617"/>
+       <network_link name="75" bandwidth="11.618875" latency="0.00018998"/>
+       <network_link name="83" bandwidth="10.314625" latency="0.006932556"/>
+       <network_link name="59" bandwidth="11.845375" latency="0.000370788"/>
+       <network_link name="177" bandwidth="0.9905" latency="0.001742977"/>
+       <network_link name="150" bandwidth="4.27025" latency="0.000672289"/>
+       <network_link name="155" bandwidth="1.37675" latency="0.000449267"/>
+       <network_link name="130" bandwidth="4.485125" latency="0.000126045"/>
+       <network_link name="53" bandwidth="11.618875" latency="0.00018998"/>
+       <network_link name="122" bandwidth="1.126875" latency="0.00028784"/>
+       <network_link name="143" bandwidth="7.20975" latency="0.001461517"/>
+       <network_link name="158" bandwidth="3.028375" latency="0.000677908"/>
+       <network_link name="42" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="22" bandwidth="11.618875" latency="0.00018998"/>
+       <network_link name="46" bandwidth="8.158" latency="0.000270544"/>
+       <network_link name="13" bandwidth="255.228625" latency="0.007413073"/>
+       <network_link name="105" bandwidth="0.117125" latency="0.053930106"/>
+       <network_link name="6" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="85" bandwidth="15.376875" latency="0.035083019"/>
+       <network_link name="185" bandwidth="2.3485" latency="0.000259761"/>
+       <network_link name="36" bandwidth="11.618875" latency="0.00018998"/>
+       <network_link name="3" bandwidth="255.228625" latency="0.007413073"/>
+       <network_link name="183" bandwidth="3.9955" latency="0.000678645"/>
+       <network_link name="94" bandwidth="4.485125" latency="0.000126045"/>
+       <network_link name="146" bandwidth="3.37125" latency="0.000666676"/>
+       <network_link name="51" bandwidth="8.42725" latency="0.000156056"/>
+       <network_link name="9" bandwidth="34.285625" latency="0.000514433"/>
+       <network_link name="111" bandwidth="3.275625" latency="0.000658142"/>
+       <network_link name="38" bandwidth="41.279125" latency="5.9904e-05"/>
+       <network_link name="4" bandwidth="132.977875" latency="0.000131098"/>
+       <network_link name="34" bandwidth="11.845375" latency="0.000370788"/>
+       <network_link name="169" bandwidth="1.37675" latency="0.000449267"/>
+       <network_link name="164" bandwidth="0.76875" latency="0.00876244"/>
+       <network_link name="132" bandwidth="2.179125" latency="0.000320114"/>
+        <network_link name="171" bandwidth="3.29775" latency="0.000595883"/>
+       
+       <!-- Jacquelin routes-->
+       
+       <route src="Jacquelin" dst="Boivin"><route_element name="145"/><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="11"/><route_element name="44"/><route_element name="47"/></route>
+       <route src="Jacquelin" dst="Jean_Yves"><route_element name="145"/><route_element name="59"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+       <route src="Jacquelin" dst="TeX"><route_element name="145"/><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="35"/><route_element name="100"/></route>
+       <route src="Jacquelin" dst="Geoff"><route_element name="145"/></route>
+       <route src="Jacquelin" dst="Disney"><route_element name="145"/><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+       <route src="Jacquelin" dst="iRMX"><route_element name="145"/><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+       <route src="Jacquelin" dst="McGee"><route_element name="145"/><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="41"/></route>
+       <route src="Jacquelin" dst="Gatien"><route_element name="145"/><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="40"/><route_element name="115"/></route>
+  <route src="Jacquelin" dst="Laroche"><route_element name="145"/><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="91"/></route>
+  
+  <!-- Boivin routes-->
+  
+  <route src="Boivin" dst="Jacquelin"><route_element name="47"/><route_element name="44"/><route_element name="11"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/><route_element name="145"/></route>
+  <route src="Boivin" dst="Jean_Yves"><route_element name="47"/><route_element name="44"/><route_element name="11"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+  <route src="Boivin" dst="TeX"><route_element name="47"/><route_element name="44"/><route_element name="11"/><route_element name="6"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="35"/><route_element name="100"/></route>
+  <route src="Boivin" dst="Geoff"><route_element name="47"/><route_element name="44"/><route_element name="11"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/></route>
+  <route src="Boivin" dst="Disney"><route_element name="47"/><route_element name="44"/><route_element name="11"/><route_element name="6"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+  <route src="Boivin" dst="iRMX"><route_element name="47"/><route_element name="44"/><route_element name="11"/><route_element name="6"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+  <route src="Boivin" dst="McGee"><route_element name="47"/><route_element name="46"/><route_element name="49"/><route_element name="38"/><route_element name="41"/></route>
+  <route src="Boivin" dst="Gatien"><route_element name="47"/><route_element name="46"/><route_element name="49"/><route_element name="38"/><route_element name="40"/><route_element name="115"/></route>
+  <route src="Boivin" dst="Laroche"><route_element name="47"/><route_element name="44"/><route_element name="11"/><route_element name="6"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="91"/></route>
+  
+  <!-- Jean_Yves routes-->
+  
+  <route src="Jean_Yves" dst="Jacquelin"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="59"/><route_element name="145"/></route>
+  <route src="Jean_Yves" dst="Boivin"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="11"/><route_element name="44"/><route_element name="47"/></route>
+  <route src="Jean_Yves" dst="TeX"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="35"/><route_element name="100"/></route>
+  <route src="Jean_Yves" dst="Geoff"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="59"/></route>
+  <route src="Jean_Yves" dst="Disney"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+  <route src="Jean_Yves" dst="iRMX"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+  <route src="Jean_Yves" dst="McGee"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="41"/></route>
+  <route src="Jean_Yves" dst="Gatien"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="40"/><route_element name="115"/></route>
+  <route src="Jean_Yves" dst="Laroche"><route_element name="138"/><route_element name="63"/><route_element name="58"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="91"/></route>
+  
+  <!-- TeX routes-->
+  
+  <route src="TeX" dst="Jacquelin"><route_element name="100"/><route_element name="35"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/><route_element name="145"/></route>
+  <route src="TeX" dst="Boivin"><route_element name="100"/><route_element name="35"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="6"/><route_element name="11"/><route_element name="44"/><route_element name="47"/></route>
+  <route src="TeX" dst="Jean_Yves"><route_element name="100"/><route_element name="35"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+  <route src="TeX" dst="Geoff"><route_element name="100"/><route_element name="35"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/></route>
+  <route src="TeX" dst="Disney"><route_element name="100"/><route_element name="35"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+  <route src="TeX" dst="iRMX"><route_element name="100"/><route_element name="35"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="20"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+  <route src="TeX" dst="McGee"><route_element name="100"/><route_element name="35"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="41"/></route>
+  <route src="TeX" dst="Gatien"><route_element name="100"/><route_element name="35"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="40"/><route_element name="115"/></route>
+  <route src="TeX" dst="Laroche"><route_element name="100"/><route_element name="35"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="20"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="91"/></route>
+  
+  <!-- Geoff routes-->
+  
+  <route src="Geoff" dst="Jacquelin"><route_element name="145"/></route>
+  <route src="Geoff" dst="Boivin"><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="11"/><route_element name="44"/><route_element name="47"/></route>
+  <route src="Geoff" dst="Jean_Yves"><route_element name="59"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+  <route src="Geoff" dst="TeX"><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="35"/><route_element name="100"/></route>
+  <route src="Geoff" dst="Disney"><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+  <route src="Geoff" dst="iRMX"><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+  <route src="Geoff" dst="McGee"><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="41"/></route>
+  <route src="Geoff" dst="Gatien"><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="40"/><route_element name="115"/></route>
+  <route src="Geoff" dst="Laroche"><route_element name="59"/><route_element name="56"/><route_element name="54"/><route_element name="17"/><route_element name="16"/><route_element name="10"/><route_element name="6"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="91"/></route>
+  
+  <!-- Disney routes-->
+  
+  <route src="Disney" dst="Jacquelin"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/><route_element name="145"/></route>
+  <route src="Disney" dst="Boivin"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="6"/><route_element name="11"/><route_element name="44"/><route_element name="47"/></route>
+  <route src="Disney" dst="Jean_Yves"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+  <route src="Disney" dst="TeX"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="35"/><route_element name="100"/></route>
+  <route src="Disney" dst="Geoff"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/></route>
+  <route src="Disney" dst="iRMX"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="20"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+  <route src="Disney" dst="McGee"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="41"/></route>
+  <route src="Disney" dst="Gatien"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="7"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="40"/><route_element name="115"/></route>
+  <route src="Disney" dst="Laroche"><route_element name="111"/><route_element name="33"/><route_element name="32"/><route_element name="30"/><route_element name="27"/><route_element name="28"/><route_element name="19"/><route_element name="20"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="91"/></route>
+  
+  <!-- iRMX routes-->
+  
+  <route src="iRMX" dst="Jacquelin"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/><route_element name="145"/></route>
+  <route src="iRMX" dst="Boivin"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="6"/><route_element name="11"/><route_element name="44"/><route_element name="47"/></route>
+  <route src="iRMX" dst="Jean_Yves"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+  <route src="iRMX" dst="TeX"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="20"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="35"/><route_element name="100"/></route>
+  <route src="iRMX" dst="Geoff"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/></route>
+  <route src="iRMX" dst="Disney"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="20"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+  <route src="iRMX" dst="McGee"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="41"/></route>
+  <route src="iRMX" dst="Gatien"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="40"/><route_element name="115"/></route>
+  <route src="iRMX" dst="Laroche"><route_element name="172"/><route_element name="89"/><route_element name="88"/><route_element name="87"/><route_element name="91"/></route>
+  
+  <!-- McGee routes-->
+  
+  <route src="McGee" dst="Jacquelin"><route_element name="41"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/><route_element name="145"/></route>
+  <route src="McGee" dst="Boivin"><route_element name="41"/><route_element name="38"/><route_element name="49"/><route_element name="46"/><route_element name="47"/></route>
+  <route src="McGee" dst="Jean_Yves"><route_element name="41"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+  <route src="McGee" dst="TeX"><route_element name="41"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="35"/><route_element name="100"/></route>
+  <route src="McGee" dst="Geoff"><route_element name="41"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/></route>
+  <route src="McGee" dst="Disney"><route_element name="41"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+  <route src="McGee" dst="iRMX"><route_element name="41"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+  <route src="McGee" dst="Gatien"><route_element name="41"/><route_element name="40"/><route_element name="115"/></route>
+  <route src="McGee" dst="Laroche"><route_element name="41"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="91"/></route>
+  
+  <!-- Gatien routes-->
+  
+  <route src="Gatien" dst="Jacquelin"><route_element name="115"/><route_element name="40"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/><route_element name="145"/></route>
+  <route src="Gatien" dst="Boivin"><route_element name="115"/><route_element name="40"/><route_element name="38"/><route_element name="49"/><route_element name="46"/><route_element name="47"/></route>
+  <route src="Gatien" dst="Jean_Yves"><route_element name="115"/><route_element name="40"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+  <route src="Gatien" dst="TeX"><route_element name="115"/><route_element name="40"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="35"/><route_element name="100"/></route>
+  <route src="Gatien" dst="Geoff"><route_element name="115"/><route_element name="40"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/></route>
+  <route src="Gatien" dst="Disney"><route_element name="115"/><route_element name="40"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="7"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+  <route src="Gatien" dst="iRMX"><route_element name="115"/><route_element name="40"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+  <route src="Gatien" dst="McGee"><route_element name="115"/><route_element name="40"/><route_element name="41"/></route>
+  <route src="Gatien" dst="Laroche"><route_element name="115"/><route_element name="40"/><route_element name="38"/><route_element name="48"/><route_element name="8"/><route_element name="9"/><route_element name="79"/><route_element name="78"/><route_element name="80"/><route_element name="82"/><route_element name="91"/></route>
+  
+  <!-- Laroche routes-->
+  
+  <route src="Laroche" dst="Jacquelin"><route_element name="91"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/><route_element name="145"/></route>
+  <route src="Laroche" dst="Boivin"><route_element name="91"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="6"/><route_element name="11"/><route_element name="44"/><route_element name="47"/></route>
+  <route src="Laroche" dst="Jean_Yves"><route_element name="91"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="58"/><route_element name="63"/><route_element name="138"/></route>
+  <route src="Laroche" dst="TeX"><route_element name="91"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="20"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="35"/><route_element name="100"/></route>
+  <route src="Laroche" dst="Geoff"><route_element name="91"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="6"/><route_element name="10"/><route_element name="16"/><route_element name="17"/><route_element name="54"/><route_element name="56"/><route_element name="59"/></route>
+  <route src="Laroche" dst="Disney"><route_element name="91"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="20"/><route_element name="19"/><route_element name="28"/><route_element name="27"/><route_element name="30"/><route_element name="32"/><route_element name="33"/><route_element name="111"/></route>
+  <route src="Laroche" dst="iRMX"><route_element name="91"/><route_element name="87"/><route_element name="88"/><route_element name="89"/><route_element name="172"/></route>
+  <route src="Laroche" dst="McGee"><route_element name="91"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="41"/></route>
+  <route src="Laroche" dst="Gatien"><route_element name="91"/><route_element name="82"/><route_element name="80"/><route_element name="78"/><route_element name="79"/><route_element name="9"/><route_element name="8"/><route_element name="48"/><route_element name="38"/><route_element name="40"/><route_element name="115"/></route>
+</platform_description>
+  
\ No newline at end of file