--- /dev/null
+/* 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
--- /dev/null
+<?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